1 /*
2  * Copyright 2012 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 #include "tests/PathOpsExtendedTest.h"
8 
9 #define TEST(name) { name, #name }
10 
testLine1(skiatest::Reporter * reporter,const char * filename)11 static void testLine1(skiatest::Reporter* reporter, const char* filename) {
12     SkPath path;
13     path.moveTo(2,0);
14     path.lineTo(1,1);
15     path.lineTo(0,0);
16     path.close();
17     testSimplify(reporter, path, filename);
18 }
19 
testLine1x(skiatest::Reporter * reporter,const char * filename)20 static void testLine1x(skiatest::Reporter* reporter, const char* filename) {
21     SkPath path;
22     path.setFillType(SkPathFillType::kEvenOdd);
23     path.moveTo(2,0);
24     path.lineTo(1,1);
25     path.lineTo(0,0);
26     path.close();
27     testSimplify(reporter, path, filename);
28 }
29 
addInnerCWTriangle(SkPath & path)30 static void addInnerCWTriangle(SkPath& path) {
31     path.moveTo(3,0);
32     path.lineTo(4,1);
33     path.lineTo(2,1);
34     path.close();
35 }
36 
addInnerCCWTriangle(SkPath & path)37 static void addInnerCCWTriangle(SkPath& path) {
38     path.moveTo(3,0);
39     path.lineTo(2,1);
40     path.lineTo(4,1);
41     path.close();
42 }
43 
addOuterCWTriangle(SkPath & path)44 static void addOuterCWTriangle(SkPath& path) {
45     path.moveTo(3,0);
46     path.lineTo(6,2);
47     path.lineTo(0,2);
48     path.close();
49 }
50 
addOuterCCWTriangle(SkPath & path)51 static void addOuterCCWTriangle(SkPath& path) {
52     path.moveTo(3,0);
53     path.lineTo(0,2);
54     path.lineTo(6,2);
55     path.close();
56 }
57 
testLine2(skiatest::Reporter * reporter,const char * filename)58 static void testLine2(skiatest::Reporter* reporter, const char* filename) {
59     SkPath path;
60     addInnerCWTriangle(path);
61     addOuterCWTriangle(path);
62     testSimplify(reporter, path, filename);
63 }
64 
testLine2x(skiatest::Reporter * reporter,const char * filename)65 static void testLine2x(skiatest::Reporter* reporter, const char* filename) {
66     SkPath path;
67     path.setFillType(SkPathFillType::kEvenOdd);
68     addInnerCWTriangle(path);
69     addOuterCWTriangle(path);
70     testSimplify(reporter, path, filename);
71 }
72 
testLine3(skiatest::Reporter * reporter,const char * filename)73 static void testLine3(skiatest::Reporter* reporter, const char* filename) {
74     SkPath path;
75     addInnerCCWTriangle(path);
76     addOuterCWTriangle(path);
77     testSimplify(reporter, path, filename);
78 }
79 
testLine3x(skiatest::Reporter * reporter,const char * filename)80 static void testLine3x(skiatest::Reporter* reporter, const char* filename) {
81     SkPath path;
82     path.setFillType(SkPathFillType::kEvenOdd);
83     addInnerCCWTriangle(path);
84     addOuterCWTriangle(path);
85     testSimplify(reporter, path, filename);
86 }
87 
testLine3a(skiatest::Reporter * reporter,const char * filename)88 static void testLine3a(skiatest::Reporter* reporter, const char* filename) {
89     SkPath path;
90     addInnerCWTriangle(path);
91     addOuterCCWTriangle(path);
92     testSimplify(reporter, path, filename);
93 }
94 
testLine3ax(skiatest::Reporter * reporter,const char * filename)95 static void testLine3ax(skiatest::Reporter* reporter, const char* filename) {
96     SkPath path;
97     path.setFillType(SkPathFillType::kEvenOdd);
98     addInnerCWTriangle(path);
99     addOuterCCWTriangle(path);
100     testSimplify(reporter, path, filename);
101 }
102 
testLine3b(skiatest::Reporter * reporter,const char * filename)103 static void testLine3b(skiatest::Reporter* reporter, const char* filename) {
104     SkPath path;
105     addInnerCCWTriangle(path);
106     addOuterCCWTriangle(path);
107     testSimplify(reporter, path, filename);
108 }
109 
testLine3bx(skiatest::Reporter * reporter,const char * filename)110 static void testLine3bx(skiatest::Reporter* reporter, const char* filename) {
111     SkPath path;
112     path.setFillType(SkPathFillType::kEvenOdd);
113     addInnerCCWTriangle(path);
114     addOuterCCWTriangle(path);
115     testSimplify(reporter, path, filename);
116 }
117 
testLine4(skiatest::Reporter * reporter,const char * filename)118 static void testLine4(skiatest::Reporter* reporter, const char* filename) {
119     SkPath path;
120     addOuterCCWTriangle(path);
121     addOuterCWTriangle(path);
122     testSimplify(reporter, path, filename);
123 }
124 
testLine4x(skiatest::Reporter * reporter,const char * filename)125 static void testLine4x(skiatest::Reporter* reporter, const char* filename) {
126     SkPath path;
127     path.setFillType(SkPathFillType::kEvenOdd);
128     addOuterCCWTriangle(path);
129     addOuterCWTriangle(path);
130     testSimplify(reporter, path, filename);
131 }
132 
testLine5(skiatest::Reporter * reporter,const char * filename)133 static void testLine5(skiatest::Reporter* reporter, const char* filename) {
134     SkPath path;
135     addOuterCWTriangle(path);
136     addOuterCWTriangle(path);
137     testSimplify(reporter, path, filename);
138 }
139 
testLine5x(skiatest::Reporter * reporter,const char * filename)140 static void testLine5x(skiatest::Reporter* reporter, const char* filename) {
141     SkPath path;
142     path.setFillType(SkPathFillType::kEvenOdd);
143     addOuterCWTriangle(path);
144     addOuterCWTriangle(path);
145     testSimplify(reporter, path, filename);
146 }
147 
testLine6(skiatest::Reporter * reporter,const char * filename)148 static void testLine6(skiatest::Reporter* reporter, const char* filename) {
149     SkPath path;
150     path.moveTo(0,0);
151     path.lineTo(4,0);
152     path.lineTo(2,2);
153     path.close();
154     path.moveTo(2,0);
155     path.lineTo(6,0);
156     path.lineTo(4,2);
157     path.close();
158     testSimplify(reporter, path, filename);
159 }
160 
testLine6x(skiatest::Reporter * reporter,const char * filename)161 static void testLine6x(skiatest::Reporter* reporter, const char* filename) {
162     SkPath path;
163     path.setFillType(SkPathFillType::kEvenOdd);
164     path.moveTo(0,0);
165     path.lineTo(4,0);
166     path.lineTo(2,2);
167     path.close();
168     path.moveTo(2,0);
169     path.lineTo(6,0);
170     path.lineTo(4,2);
171     path.close();
172     testSimplify(reporter, path, filename);
173 }
174 
testLine7(skiatest::Reporter * reporter,const char * filename)175 static void testLine7(skiatest::Reporter* reporter, const char* filename) {
176     SkPath path;
177     path.moveTo(0,0);
178     path.lineTo(4,0);
179     path.lineTo(2,2);
180     path.close();
181     path.moveTo(6,0);
182     path.lineTo(2,0);
183     path.lineTo(4,2);
184     path.close();
185     testSimplify(reporter, path, filename);
186 }
187 
testLine7x(skiatest::Reporter * reporter,const char * filename)188 static void testLine7x(skiatest::Reporter* reporter, const char* filename) {
189     SkPath path;
190     path.setFillType(SkPathFillType::kEvenOdd);
191     path.moveTo(0,0);
192     path.lineTo(4,0);
193     path.lineTo(2,2);
194     path.close();
195     path.moveTo(6,0);
196     path.lineTo(2,0);
197     path.lineTo(4,2);
198     path.close();
199     testSimplify(reporter, path, filename);
200 }
201 
testLine7a(skiatest::Reporter * reporter,const char * filename)202 static void testLine7a(skiatest::Reporter* reporter, const char* filename) {
203     SkPath path;
204     path.moveTo(0,0);
205     path.lineTo(4,0);
206     path.lineTo(2,2);
207     path.close();
208     testSimplify(reporter, path, filename);
209 }
210 
testLine7ax(skiatest::Reporter * reporter,const char * filename)211 static void testLine7ax(skiatest::Reporter* reporter, const char* filename) {
212     SkPath path;
213     path.setFillType(SkPathFillType::kEvenOdd);
214     path.moveTo(0,0);
215     path.lineTo(4,0);
216     path.lineTo(2,2);
217     path.close();
218     testSimplify(reporter, path, filename);
219 }
220 
testLine7b(skiatest::Reporter * reporter,const char * filename)221 static void testLine7b(skiatest::Reporter* reporter, const char* filename) {
222     SkPath path;
223     path.moveTo(0,0);
224     path.lineTo(4,0);
225     path.close();
226     path.moveTo(6,0);
227     path.lineTo(2,0);
228     path.lineTo(4,2);
229     path.close();
230     testSimplify(reporter, path, filename);
231 }
232 
testLine7bx(skiatest::Reporter * reporter,const char * filename)233 static void testLine7bx(skiatest::Reporter* reporter, const char* filename) {
234     SkPath path;
235     path.setFillType(SkPathFillType::kEvenOdd);
236     path.moveTo(0,0);
237     path.lineTo(4,0);
238     path.close();
239     path.moveTo(6,0);
240     path.lineTo(2,0);
241     path.lineTo(4,2);
242     path.close();
243     testSimplify(reporter, path, filename);
244 }
245 
testLine8(skiatest::Reporter * reporter,const char * filename)246 static void testLine8(skiatest::Reporter* reporter, const char* filename) {
247     SkPath path;
248     path.moveTo(0,4);
249     path.lineTo(4,4);
250     path.lineTo(2,2);
251     path.close();
252     path.moveTo(2,4);
253     path.lineTo(6,4);
254     path.lineTo(4,2);
255     path.close();
256     testSimplify(reporter, path, filename);
257 }
258 
testLine8x(skiatest::Reporter * reporter,const char * filename)259 static void testLine8x(skiatest::Reporter* reporter, const char* filename) {
260     SkPath path;
261     path.setFillType(SkPathFillType::kEvenOdd);
262     path.moveTo(0,4);
263     path.lineTo(4,4);
264     path.lineTo(2,2);
265     path.close();
266     path.moveTo(2,4);
267     path.lineTo(6,4);
268     path.lineTo(4,2);
269     path.close();
270     testSimplify(reporter, path, filename);
271 }
272 
testLine9(skiatest::Reporter * reporter,const char * filename)273 static void testLine9(skiatest::Reporter* reporter, const char* filename) {
274     SkPath path;
275     path.moveTo(0,4);
276     path.lineTo(4,4);
277     path.lineTo(2,2);
278     path.close();
279     path.moveTo(6,4);
280     path.lineTo(2,4);
281     path.lineTo(4,2);
282     path.close();
283     testSimplify(reporter, path, filename);
284 }
285 
testLine9x(skiatest::Reporter * reporter,const char * filename)286 static void testLine9x(skiatest::Reporter* reporter, const char* filename) {
287     SkPath path;
288     path.setFillType(SkPathFillType::kEvenOdd);
289     path.moveTo(0,4);
290     path.lineTo(4,4);
291     path.lineTo(2,2);
292     path.close();
293     path.moveTo(6,4);
294     path.lineTo(2,4);
295     path.lineTo(4,2);
296     path.close();
297     testSimplify(reporter, path, filename);
298 }
299 
testLine10(skiatest::Reporter * reporter,const char * filename)300 static void testLine10(skiatest::Reporter* reporter, const char* filename) {
301     SkPath path;
302     path.moveTo(0,4);
303     path.lineTo(4,4);
304     path.lineTo(2,2);
305     path.close();
306     path.moveTo(2,1);
307     path.lineTo(3,4);
308     path.lineTo(6,1);
309     path.close();
310     testSimplify(reporter, path, filename);
311 }
312 
testLine10x(skiatest::Reporter * reporter,const char * filename)313 static void testLine10x(skiatest::Reporter* reporter, const char* filename) {
314     SkPath path;
315     path.setFillType(SkPathFillType::kEvenOdd);
316     path.moveTo(0,4);
317     path.lineTo(4,4);
318     path.lineTo(2,2);
319     path.close();
320     path.moveTo(2,1);
321     path.lineTo(3,4);
322     path.lineTo(6,1);
323     path.close();
324     testSimplify(reporter, path, filename);
325 }
326 
testLine10a(skiatest::Reporter * reporter,const char * filename)327 static void testLine10a(skiatest::Reporter* reporter, const char* filename) {
328     SkPath path;
329     path.moveTo(0,4);
330     path.lineTo(8,4);
331     path.lineTo(4,0);
332     path.close();
333     path.moveTo(2,2);
334     path.lineTo(3,3);
335     path.lineTo(4,2);
336     path.close();
337     testSimplify(reporter, path, filename);
338 }
339 
testLine10ax(skiatest::Reporter * reporter,const char * filename)340 static void testLine10ax(skiatest::Reporter* reporter, const char* filename) {
341     SkPath path;
342     path.setFillType(SkPathFillType::kEvenOdd);
343     path.moveTo(0,4);
344     path.lineTo(8,4);
345     path.lineTo(4,0);
346     path.close();
347     path.moveTo(2,2);
348     path.lineTo(3,3);
349     path.lineTo(4,2);
350     path.close();
351     testSimplify(reporter, path, filename);
352 }
353 
addCWContainer(SkPath & path)354 static void addCWContainer(SkPath& path) {
355     path.moveTo(6,4);
356     path.lineTo(0,4);
357     path.lineTo(3,1);
358     path.close();
359 }
360 
addCCWContainer(SkPath & path)361 static void addCCWContainer(SkPath& path) {
362     path.moveTo(0,4);
363     path.lineTo(6,4);
364     path.lineTo(3,1);
365     path.close();
366 }
367 
addCWContents(SkPath & path)368 static void addCWContents(SkPath& path) {
369     path.moveTo(2,3);
370     path.lineTo(3,2);
371     path.lineTo(4,3);
372     path.close();
373 }
374 
addCCWContents(SkPath & path)375 static void addCCWContents(SkPath& path) {
376     path.moveTo(3,2);
377     path.lineTo(2,3);
378     path.lineTo(4,3);
379     path.close();
380 }
381 
testLine11(skiatest::Reporter * reporter,const char * filename)382 static void testLine11(skiatest::Reporter* reporter, const char* filename) {
383     SkPath path;
384     addCWContainer(path);
385     addCWContents(path);
386     testSimplify(reporter, path, filename);
387 }
388 
testLine11x(skiatest::Reporter * reporter,const char * filename)389 static void testLine11x(skiatest::Reporter* reporter, const char* filename) {
390     SkPath path;
391     path.setFillType(SkPathFillType::kEvenOdd);
392     addCWContainer(path);
393     addCWContents(path);
394     testSimplify(reporter, path, filename);
395 }
396 
testLine12(skiatest::Reporter * reporter,const char * filename)397 static void testLine12(skiatest::Reporter* reporter, const char* filename) {
398     SkPath path;
399     addCCWContainer(path);
400     addCWContents(path);
401     testSimplify(reporter, path, filename);
402 }
403 
testLine12x(skiatest::Reporter * reporter,const char * filename)404 static void testLine12x(skiatest::Reporter* reporter, const char* filename) {
405     SkPath path;
406     path.setFillType(SkPathFillType::kEvenOdd);
407     addCCWContainer(path);
408     addCWContents(path);
409     testSimplify(reporter, path, filename);
410 }
411 
testLine13(skiatest::Reporter * reporter,const char * filename)412 static void testLine13(skiatest::Reporter* reporter, const char* filename) {
413     SkPath path;
414     addCWContainer(path);
415     addCCWContents(path);
416     testSimplify(reporter, path, filename);
417 }
418 
testLine13x(skiatest::Reporter * reporter,const char * filename)419 static void testLine13x(skiatest::Reporter* reporter, const char* filename) {
420     SkPath path;
421     path.setFillType(SkPathFillType::kEvenOdd);
422     addCWContainer(path);
423     addCCWContents(path);
424     testSimplify(reporter, path, filename);
425 }
426 
testLine14(skiatest::Reporter * reporter,const char * filename)427 static void testLine14(skiatest::Reporter* reporter, const char* filename) {
428     SkPath path;
429     addCCWContainer(path);
430     addCCWContents(path);
431     testSimplify(reporter, path, filename);
432 }
433 
testLine14x(skiatest::Reporter * reporter,const char * filename)434 static void testLine14x(skiatest::Reporter* reporter, const char* filename) {
435     SkPath path;
436     path.setFillType(SkPathFillType::kEvenOdd);
437     addCCWContainer(path);
438     addCCWContents(path);
439     testSimplify(reporter, path, filename);
440 }
441 
testLine15(skiatest::Reporter * reporter,const char * filename)442 static void testLine15(skiatest::Reporter* reporter, const char* filename) {
443     SkPath path;
444     path.addRect(0, 0, 9, 9, SkPathDirection::kCW);
445     testSimplify(reporter, path, filename);
446 }
447 
testLine15x(skiatest::Reporter * reporter,const char * filename)448 static void testLine15x(skiatest::Reporter* reporter, const char* filename) {
449     SkPath path;
450     path.setFillType(SkPathFillType::kEvenOdd);
451     path.addRect(0, 0, 9, 9, SkPathDirection::kCW);
452     testSimplify(reporter, path, filename);
453 }
454 
testLine16(skiatest::Reporter * reporter,const char * filename)455 static void testLine16(skiatest::Reporter* reporter, const char* filename) {
456     SkPath path;
457     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
458     path.addRect(0, 4, 9, 9, SkPathDirection::kCW);
459     testSimplify(reporter, path, filename);
460 }
461 
testLine16x(skiatest::Reporter * reporter,const char * filename)462 static void testLine16x(skiatest::Reporter* reporter, const char* filename) {
463     SkPath path;
464     path.setFillType(SkPathFillType::kEvenOdd);
465     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
466     path.addRect(0, 4, 9, 9, SkPathDirection::kCW);
467     testSimplify(reporter, path, filename);
468 }
469 
testLine17(skiatest::Reporter * reporter,const char * filename)470 static void testLine17(skiatest::Reporter* reporter, const char* filename) {
471     SkPath path;
472     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
473     path.addRect(4, 12, 13, 13, SkPathDirection::kCW);
474     testSimplify(reporter, path, filename);
475 }
476 
testLine17x(skiatest::Reporter * reporter,const char * filename)477 static void testLine17x(skiatest::Reporter* reporter, const char* filename) {
478     SkPath path;
479     path.setFillType(SkPathFillType::kEvenOdd);
480     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
481     path.addRect(4, 12, 13, 13, SkPathDirection::kCW);
482     testSimplify(reporter, path, filename);
483 }
484 
testLine18(skiatest::Reporter * reporter,const char * filename)485 static void testLine18(skiatest::Reporter* reporter, const char* filename) {
486     SkPath path;
487     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
488     path.addRect(12, 4, 21, 21, SkPathDirection::kCW);
489     testSimplify(reporter, path, filename);
490 }
491 
testLine18x(skiatest::Reporter * reporter,const char * filename)492 static void testLine18x(skiatest::Reporter* reporter, const char* filename) {
493     SkPath path;
494     path.setFillType(SkPathFillType::kEvenOdd);
495     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
496     path.addRect(12, 4, 21, 21, SkPathDirection::kCW);
497     testSimplify(reporter, path, filename);
498 }
499 
testLine19(skiatest::Reporter * reporter,const char * filename)500 static void testLine19(skiatest::Reporter* reporter, const char* filename) {
501     SkPath path;
502     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
503     path.addRect(12, 16, 21, 21, SkPathDirection::kCW);
504     testSimplify(reporter, path, filename);
505 }
506 
testLine19x(skiatest::Reporter * reporter,const char * filename)507 static void testLine19x(skiatest::Reporter* reporter, const char* filename) {
508     SkPath path;
509     path.setFillType(SkPathFillType::kEvenOdd);
510     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
511     path.addRect(12, 16, 21, 21, SkPathDirection::kCW);
512     testSimplify(reporter, path, filename);
513 }
514 
testLine20(skiatest::Reporter * reporter,const char * filename)515 static void testLine20(skiatest::Reporter* reporter, const char* filename) {
516     SkPath path;
517     path.addRect(0, 12, 12, 12, SkPathDirection::kCW);
518     path.addRect(0, 12, 9, 9, SkPathDirection::kCW);
519     testSimplify(reporter, path, filename);
520 }
521 
testLine20x(skiatest::Reporter * reporter,const char * filename)522 static void testLine20x(skiatest::Reporter* reporter, const char* filename) {
523     SkPath path;
524     path.setFillType(SkPathFillType::kEvenOdd);
525     path.addRect(0, 12, 12, 12, SkPathDirection::kCW);
526     path.addRect(0, 12, 9, 9, SkPathDirection::kCW);
527     testSimplify(reporter, path, filename);
528 }
529 
testLine21(skiatest::Reporter * reporter,const char * filename)530 static void testLine21(skiatest::Reporter* reporter, const char* filename) {
531     SkPath path;
532     path.addRect(0, 12, 12, 12, SkPathDirection::kCW);
533     path.addRect(0, 16, 9, 9, SkPathDirection::kCW);
534     testSimplify(reporter, path, filename);
535 }
536 
testLine21x(skiatest::Reporter * reporter,const char * filename)537 static void testLine21x(skiatest::Reporter* reporter, const char* filename) {
538     SkPath path;
539     path.setFillType(SkPathFillType::kEvenOdd);
540     path.addRect(0, 12, 12, 12, SkPathDirection::kCW);
541     path.addRect(0, 16, 9, 9, SkPathDirection::kCW);
542     testSimplify(reporter, path, filename);
543 }
544 
testLine22(skiatest::Reporter * reporter,const char * filename)545 static void testLine22(skiatest::Reporter* reporter, const char* filename) {
546     SkPath path;
547     path.addRect(0, 12, 12, 12, SkPathDirection::kCW);
548     path.addRect(4, 12, 13, 13, SkPathDirection::kCW);
549     testSimplify(reporter, path, filename);
550 }
551 
testLine22x(skiatest::Reporter * reporter,const char * filename)552 static void testLine22x(skiatest::Reporter* reporter, const char* filename) {
553     SkPath path;
554     path.setFillType(SkPathFillType::kEvenOdd);
555     path.addRect(0, 12, 12, 12, SkPathDirection::kCW);
556     path.addRect(4, 12, 13, 13, SkPathDirection::kCW);
557     testSimplify(reporter, path, filename);
558 }
559 
testLine23(skiatest::Reporter * reporter,const char * filename)560 static void testLine23(skiatest::Reporter* reporter, const char* filename) {
561     SkPath path;
562     path.addRect(0, 12, 12, 12, SkPathDirection::kCW);
563     path.addRect(12, 0, 21, 21, SkPathDirection::kCW);
564     testSimplify(reporter, path, filename);
565 }
566 
testLine23x(skiatest::Reporter * reporter,const char * filename)567 static void testLine23x(skiatest::Reporter* reporter, const char* filename) {
568     SkPath path;
569     path.setFillType(SkPathFillType::kEvenOdd);
570     path.addRect(0, 12, 12, 12, SkPathDirection::kCW);
571     path.addRect(12, 0, 21, 21, SkPathDirection::kCW);
572     testSimplify(reporter, path, filename);
573 }
574 
testLine24a(skiatest::Reporter * reporter,const char * filename)575 static void testLine24a(skiatest::Reporter* reporter, const char* filename) {
576     SkPath path;
577     path.moveTo(2,0);
578     path.lineTo(4,4);
579     path.lineTo(0,4);
580     path.close();
581     path.moveTo(2,0);
582     path.lineTo(1,2);
583     path.lineTo(2,2);
584     path.close();
585     testSimplify(reporter, path, filename);
586 }
587 
testLine24ax(skiatest::Reporter * reporter,const char * filename)588 static void testLine24ax(skiatest::Reporter* reporter, const char* filename) {
589     SkPath path;
590     path.setFillType(SkPathFillType::kEvenOdd);
591     path.moveTo(2,0);
592     path.lineTo(4,4);
593     path.lineTo(0,4);
594     path.close();
595     path.moveTo(2,0);
596     path.lineTo(1,2);
597     path.lineTo(2,2);
598     path.close();
599     testSimplify(reporter, path, filename);
600 }
601 
testLine24(skiatest::Reporter * reporter,const char * filename)602 static void testLine24(skiatest::Reporter* reporter, const char* filename) {
603     SkPath path;
604     path.addRect(0, 18, 12, 12, SkPathDirection::kCW);
605     path.addRect(4, 12, 13, 13, SkPathDirection::kCW);
606     testSimplify(reporter, path, filename);
607 }
608 
testLine24x(skiatest::Reporter * reporter,const char * filename)609 static void testLine24x(skiatest::Reporter* reporter, const char* filename) {
610     SkPath path;
611     path.setFillType(SkPathFillType::kEvenOdd);
612     path.addRect(0, 18, 12, 12, SkPathDirection::kCW);
613     path.addRect(4, 12, 13, 13, SkPathDirection::kCW);
614     testSimplify(reporter, path, filename);
615 }
616 
testLine25(skiatest::Reporter * reporter,const char * filename)617 static void testLine25(skiatest::Reporter* reporter, const char* filename) {
618     SkPath path;
619     path.addRect(0, 6, 12, 12, SkPathDirection::kCW);
620     path.addRect(12, 0, 21, 21, SkPathDirection::kCW);
621     testSimplify(reporter, path, filename);
622 }
623 
testLine25x(skiatest::Reporter * reporter,const char * filename)624 static void testLine25x(skiatest::Reporter* reporter, const char* filename) {
625     SkPath path;
626     path.setFillType(SkPathFillType::kEvenOdd);
627     path.addRect(0, 6, 12, 12, SkPathDirection::kCW);
628     path.addRect(12, 0, 21, 21, SkPathDirection::kCW);
629     testSimplify(reporter, path, filename);
630 }
631 
testLine26(skiatest::Reporter * reporter,const char * filename)632 static void testLine26(skiatest::Reporter* reporter, const char* filename) {
633     SkPath path;
634     path.addRect(0, 18, 12, 12, SkPathDirection::kCW);
635     path.addRect(0, 12, 9, 9, SkPathDirection::kCW);
636     testSimplify(reporter, path, filename);
637 }
638 
testLine26x(skiatest::Reporter * reporter,const char * filename)639 static void testLine26x(skiatest::Reporter* reporter, const char* filename) {
640     SkPath path;
641     path.setFillType(SkPathFillType::kEvenOdd);
642     path.addRect(0, 18, 12, 12, SkPathDirection::kCW);
643     path.addRect(0, 12, 9, 9, SkPathDirection::kCW);
644     testSimplify(reporter, path, filename);
645 }
646 
testLine27(skiatest::Reporter * reporter,const char * filename)647 static void testLine27(skiatest::Reporter* reporter, const char* filename) {
648     SkPath path;
649     path.addRect(0, 18, 12, 12, SkPathDirection::kCW);
650     path.addRect(12, 8, 21, 21, SkPathDirection::kCW);
651     testSimplify(reporter, path, filename);
652 }
653 
testLine27x(skiatest::Reporter * reporter,const char * filename)654 static void testLine27x(skiatest::Reporter* reporter, const char* filename) {
655     SkPath path;
656     path.setFillType(SkPathFillType::kEvenOdd);
657     path.addRect(0, 18, 12, 12, SkPathDirection::kCW);
658     path.addRect(12, 8, 21, 21, SkPathDirection::kCW);
659     testSimplify(reporter, path, filename);
660 }
661 
testLine28(skiatest::Reporter * reporter,const char * filename)662 static void testLine28(skiatest::Reporter* reporter, const char* filename) {
663     SkPath path;
664     path.addRect(0, 6, 12, 12, SkPathDirection::kCW);
665     path.addRect(0, 0, 9, 9, SkPathDirection::kCW);
666     testSimplify(reporter, path, filename);
667 }
668 
testLine28x(skiatest::Reporter * reporter,const char * filename)669 static void testLine28x(skiatest::Reporter* reporter, const char* filename) {
670     SkPath path;
671     path.setFillType(SkPathFillType::kEvenOdd);
672     path.addRect(0, 6, 12, 12, SkPathDirection::kCW);
673     path.addRect(0, 0, 9, 9, SkPathDirection::kCW);
674     testSimplify(reporter, path, filename);
675 }
676 
testLine29(skiatest::Reporter * reporter,const char * filename)677 static void testLine29(skiatest::Reporter* reporter, const char* filename) {
678     SkPath path;
679     path.addRect(0, 18, 12, 12, SkPathDirection::kCW);
680     path.addRect(12, 12, 21, 21, SkPathDirection::kCW);
681     testSimplify(reporter, path, filename);
682 }
683 
testLine29x(skiatest::Reporter * reporter,const char * filename)684 static void testLine29x(skiatest::Reporter* reporter, const char* filename) {
685     SkPath path;
686     path.setFillType(SkPathFillType::kEvenOdd);
687     path.addRect(0, 18, 12, 12, SkPathDirection::kCW);
688     path.addRect(12, 12, 21, 21, SkPathDirection::kCW);
689     testSimplify(reporter, path, filename);
690 }
691 
testLine30(skiatest::Reporter * reporter,const char * filename)692 static void testLine30(skiatest::Reporter* reporter, const char* filename) {
693     SkPath path;
694     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
695     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
696     path.addRect(4, 4, 13, 13, SkPathDirection::kCW);
697     testSimplify(reporter, path, filename);
698 }
699 
testLine30x(skiatest::Reporter * reporter,const char * filename)700 static void testLine30x(skiatest::Reporter* reporter, const char* filename) {
701     SkPath path;
702     path.setFillType(SkPathFillType::kEvenOdd);
703     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
704     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
705     path.addRect(4, 4, 13, 13, SkPathDirection::kCW);
706     testSimplify(reporter, path, filename);
707 }
708 
testLine31(skiatest::Reporter * reporter,const char * filename)709 static void testLine31(skiatest::Reporter* reporter, const char* filename) {
710     SkPath path;
711     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
712     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
713     path.addRect(0, 4, 9, 9, SkPathDirection::kCW);
714     testSimplify(reporter, path, filename);
715 }
716 
testLine31x(skiatest::Reporter * reporter,const char * filename)717 static void testLine31x(skiatest::Reporter* reporter, const char* filename) {
718     SkPath path;
719     path.setFillType(SkPathFillType::kEvenOdd);
720     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
721     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
722     path.addRect(0, 4, 9, 9, SkPathDirection::kCW);
723     testSimplify(reporter, path, filename);
724 }
725 
testLine32(skiatest::Reporter * reporter,const char * filename)726 static void testLine32(skiatest::Reporter* reporter, const char* filename) {
727     SkPath path;
728     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
729     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
730     path.addRect(4, 12, 13, 13, SkPathDirection::kCW);
731     testSimplify(reporter, path, filename);
732 }
733 
testLine32x(skiatest::Reporter * reporter,const char * filename)734 static void testLine32x(skiatest::Reporter* reporter, const char* filename) {
735     SkPath path;
736     path.setFillType(SkPathFillType::kEvenOdd);
737     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
738     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
739     path.addRect(4, 12, 13, 13, SkPathDirection::kCW);
740     testSimplify(reporter, path, filename);
741 }
742 
testLine33(skiatest::Reporter * reporter,const char * filename)743 static void testLine33(skiatest::Reporter* reporter, const char* filename) {
744     SkPath path;
745     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
746     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
747     path.addRect(4, 16, 13, 13, SkPathDirection::kCW);
748     testSimplify(reporter, path, filename);
749 }
750 
testLine33x(skiatest::Reporter * reporter,const char * filename)751 static void testLine33x(skiatest::Reporter* reporter, const char* filename) {
752     SkPath path;
753     path.setFillType(SkPathFillType::kEvenOdd);
754     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
755     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
756     path.addRect(4, 16, 13, 13, SkPathDirection::kCW);
757     testSimplify(reporter, path, filename);
758 }
759 
testLine34(skiatest::Reporter * reporter,const char * filename)760 static void testLine34(skiatest::Reporter* reporter, const char* filename) {
761     SkPath path;
762     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
763     path.addRect(0, 6, 12, 12, SkPathDirection::kCW);
764     path.addRect(4, 12, 13, 13, SkPathDirection::kCW);
765     testSimplify(reporter, path, filename);
766 }
767 
testLine34x(skiatest::Reporter * reporter,const char * filename)768 static void testLine34x(skiatest::Reporter* reporter, const char* filename) {
769     SkPath path;
770     path.setFillType(SkPathFillType::kEvenOdd);
771     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
772     path.addRect(0, 6, 12, 12, SkPathDirection::kCW);
773     path.addRect(4, 12, 13, 13, SkPathDirection::kCW);
774     testSimplify(reporter, path, filename);
775 }
776 
testLine35(skiatest::Reporter * reporter,const char * filename)777 static void testLine35(skiatest::Reporter* reporter, const char* filename) {
778     SkPath path;
779     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
780     path.addRect(6, 0, 18, 18, SkPathDirection::kCW);
781     path.addRect(4, 16, 13, 13, SkPathDirection::kCW);
782     testSimplify(reporter, path, filename);
783 }
784 
testLine35x(skiatest::Reporter * reporter,const char * filename)785 static void testLine35x(skiatest::Reporter* reporter, const char* filename) {
786     SkPath path;
787     path.setFillType(SkPathFillType::kEvenOdd);
788     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
789     path.addRect(6, 0, 18, 18, SkPathDirection::kCW);
790     path.addRect(4, 16, 13, 13, SkPathDirection::kCW);
791     testSimplify(reporter, path, filename);
792 }
793 
testLine36(skiatest::Reporter * reporter,const char * filename)794 static void testLine36(skiatest::Reporter* reporter, const char* filename) {
795     SkPath path;
796     path.addRect(0, 10, 20, 20, SkPathDirection::kCW);
797     path.addRect(6, 12, 18, 18, SkPathDirection::kCW);
798     path.addRect(4, 16, 13, 13, SkPathDirection::kCW);
799     testSimplify(reporter, path, filename);
800 }
801 
testLine36x(skiatest::Reporter * reporter,const char * filename)802 static void testLine36x(skiatest::Reporter* reporter, const char* filename) {
803     SkPath path;
804     path.setFillType(SkPathFillType::kEvenOdd);
805     path.addRect(0, 10, 20, 20, SkPathDirection::kCW);
806     path.addRect(6, 12, 18, 18, SkPathDirection::kCW);
807     path.addRect(4, 16, 13, 13, SkPathDirection::kCW);
808     testSimplify(reporter, path, filename);
809 }
810 
testLine37(skiatest::Reporter * reporter,const char * filename)811 static void testLine37(skiatest::Reporter* reporter, const char* filename) {
812     SkPath path;
813     path.addRect(0, 20, 20, 20, SkPathDirection::kCW);
814     path.addRect(18, 24, 30, 30, SkPathDirection::kCW);
815     path.addRect(0, 0, 9, 9, SkPathDirection::kCW);
816     testSimplify(reporter, path, filename);
817 }
818 
testLine37x(skiatest::Reporter * reporter,const char * filename)819 static void testLine37x(skiatest::Reporter* reporter, const char* filename) {
820     SkPath path;
821     path.setFillType(SkPathFillType::kEvenOdd);
822     path.addRect(0, 20, 20, 20, SkPathDirection::kCW);
823     path.addRect(18, 24, 30, 30, SkPathDirection::kCW);
824     path.addRect(0, 0, 9, 9, SkPathDirection::kCW);
825     testSimplify(reporter, path, filename);
826 }
827 
testLine38(skiatest::Reporter * reporter,const char * filename)828 static void testLine38(skiatest::Reporter* reporter, const char* filename) {
829     SkPath path;
830     path.addRect(10, 0, 30, 30, SkPathDirection::kCW);
831     path.addRect(6, 12, 18, 18, SkPathDirection::kCW);
832     path.addRect(12, 12, 21, 21, SkPathDirection::kCW);
833     testSimplify(reporter, path, filename);
834 }
835 
testLine38x(skiatest::Reporter * reporter,const char * filename)836 static void testLine38x(skiatest::Reporter* reporter, const char* filename) {
837     SkPath path;
838     path.setFillType(SkPathFillType::kEvenOdd);
839     path.addRect(10, 0, 30, 30, SkPathDirection::kCW);
840     path.addRect(6, 12, 18, 18, SkPathDirection::kCW);
841     path.addRect(12, 12, 21, 21, SkPathDirection::kCW);
842     testSimplify(reporter, path, filename);
843 }
844 
testLine40(skiatest::Reporter * reporter,const char * filename)845 static void testLine40(skiatest::Reporter* reporter, const char* filename) {
846     SkPath path;
847     path.addRect(10, 0, 30, 30, SkPathDirection::kCW);
848     path.addRect(12, 18, 24, 24, SkPathDirection::kCW);
849     path.addRect(4, 16, 13, 13, SkPathDirection::kCW);
850     testSimplify(reporter, path, filename);
851 }
852 
testLine40x(skiatest::Reporter * reporter,const char * filename)853 static void testLine40x(skiatest::Reporter* reporter, const char* filename) {
854     SkPath path;
855     path.setFillType(SkPathFillType::kEvenOdd);
856     path.addRect(10, 0, 30, 30, SkPathDirection::kCW);
857     path.addRect(12, 18, 24, 24, SkPathDirection::kCW);
858     path.addRect(4, 16, 13, 13, SkPathDirection::kCW);
859     testSimplify(reporter, path, filename);
860 }
861 
testLine41(skiatest::Reporter * reporter,const char * filename)862 static void testLine41(skiatest::Reporter* reporter, const char* filename) {
863     SkPath path;
864     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
865     path.addRect(18, 24, 30, 30, SkPathDirection::kCW);
866     path.addRect(12, 0, 21, 21, SkPathDirection::kCW);
867     testSimplify(reporter, path, filename);
868 }
869 
testLine41x(skiatest::Reporter * reporter,const char * filename)870 static void testLine41x(skiatest::Reporter* reporter, const char* filename) {
871     SkPath path;
872     path.setFillType(SkPathFillType::kEvenOdd);
873     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
874     path.addRect(18, 24, 30, 30, SkPathDirection::kCW);
875     path.addRect(12, 0, 21, 21, SkPathDirection::kCW);
876     testSimplify(reporter, path, filename);
877 }
878 
testLine42(skiatest::Reporter * reporter,const char * filename)879 static void testLine42(skiatest::Reporter* reporter, const char* filename) {
880     SkPath path;
881     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
882     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
883     path.addRect(8, 16, 17, 17, SkPathDirection::kCW);
884     testSimplify(reporter, path, filename);
885 }
886 
testLine42x(skiatest::Reporter * reporter,const char * filename)887 static void testLine42x(skiatest::Reporter* reporter, const char* filename) {
888     SkPath path;
889     path.setFillType(SkPathFillType::kEvenOdd);
890     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
891     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
892     path.addRect(8, 16, 17, 17, SkPathDirection::kCW);
893     testSimplify(reporter, path, filename);
894 }
895 
testLine43(skiatest::Reporter * reporter,const char * filename)896 static void testLine43(skiatest::Reporter* reporter, const char* filename) {
897     SkPath path;
898     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
899     path.addRect(6, 24, 18, 18, SkPathDirection::kCW);
900     path.addRect(0, 32, 9, 36, SkPathDirection::kCCW);
901     testSimplify(reporter, path, filename);
902 }
903 
testLine43x(skiatest::Reporter * reporter,const char * filename)904 static void testLine43x(skiatest::Reporter* reporter, const char* filename) {
905     SkPath path;
906     path.setFillType(SkPathFillType::kEvenOdd);
907     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
908     path.addRect(6, 24, 18, 18, SkPathDirection::kCW);
909     path.addRect(0, 32, 9, 36, SkPathDirection::kCCW);
910     testSimplify(reporter, path, filename);
911 }
912 
testLine44(skiatest::Reporter * reporter,const char * filename)913 static void testLine44(skiatest::Reporter* reporter, const char* filename) {
914     SkPath path;
915     path.addRect(10, 40, 30, 30, SkPathDirection::kCW);
916     path.addRect(18, 0, 30, 30, SkPathDirection::kCW);
917     path.addRect(18, 32, 27, 36, SkPathDirection::kCCW);
918     testSimplify(reporter, path, filename);
919 }
920 
testLine44x(skiatest::Reporter * reporter,const char * filename)921 static void testLine44x(skiatest::Reporter* reporter, const char* filename) {
922     SkPath path;
923     path.setFillType(SkPathFillType::kEvenOdd);
924     path.addRect(10, 40, 30, 30, SkPathDirection::kCW);
925     path.addRect(18, 0, 30, 30, SkPathDirection::kCW);
926     path.addRect(18, 32, 27, 36, SkPathDirection::kCCW);
927     testSimplify(reporter, path, filename);
928 }
929 
testLine45(skiatest::Reporter * reporter,const char * filename)930 static void testLine45(skiatest::Reporter* reporter, const char* filename) {
931     SkPath path;
932     path.addRect(10, 0, 30, 30, SkPathDirection::kCW);
933     path.addRect(18, 0, 30, 30, SkPathDirection::kCW);
934     path.addRect(24, 32, 33, 36, SkPathDirection::kCW);
935     testSimplify(reporter, path, filename);
936 }
937 
testLine45x(skiatest::Reporter * reporter,const char * filename)938 static void testLine45x(skiatest::Reporter* reporter, const char* filename) {
939     SkPath path;
940     path.setFillType(SkPathFillType::kEvenOdd);
941     path.addRect(10, 0, 30, 30, SkPathDirection::kCW);
942     path.addRect(18, 0, 30, 30, SkPathDirection::kCW);
943     path.addRect(24, 32, 33, 36, SkPathDirection::kCW);
944     testSimplify(reporter, path, filename);
945 }
946 
testLine46(skiatest::Reporter * reporter,const char * filename)947 static void testLine46(skiatest::Reporter* reporter, const char* filename) {
948     SkPath path;
949     path.addRect(10, 40, 30, 30, SkPathDirection::kCW);
950     path.addRect(24, 0, 36, 36, SkPathDirection::kCW);
951     path.addRect(24, 32, 33, 36, SkPathDirection::kCW);
952     testSimplify(reporter, path, filename);
953 }
954 
testLine46x(skiatest::Reporter * reporter,const char * filename)955 static void testLine46x(skiatest::Reporter* reporter, const char* filename) {
956     SkPath path;
957     path.setFillType(SkPathFillType::kEvenOdd);
958     path.addRect(10, 40, 30, 30, SkPathDirection::kCW);
959     path.addRect(24, 0, 36, 36, SkPathDirection::kCW);
960     path.addRect(24, 32, 33, 36, SkPathDirection::kCW);
961     testSimplify(reporter, path, filename);
962 }
963 
testLine47(skiatest::Reporter * reporter,const char * filename)964 static void testLine47(skiatest::Reporter* reporter, const char* filename) {
965     SkPath path;
966     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
967     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
968     path.addRect(0, 0, 9, 9, SkPathDirection::kCCW);
969     testSimplify(reporter, path, filename);
970 }
971 
testLine47x(skiatest::Reporter * reporter,const char * filename)972 static void testLine47x(skiatest::Reporter* reporter, const char* filename) {
973     SkPath path;
974     path.setFillType(SkPathFillType::kEvenOdd);
975     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
976     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
977     path.addRect(0, 0, 9, 9, SkPathDirection::kCCW);
978     testSimplify(reporter, path, filename);
979 }
980 
testLine48(skiatest::Reporter * reporter,const char * filename)981 static void testLine48(skiatest::Reporter* reporter, const char* filename) {
982     SkPath path;
983     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
984     path.addRect(0, 6, 12, 12, SkPathDirection::kCW);
985     path.addRect(0, 0, 9, 9, SkPathDirection::kCCW);
986     testSimplify(reporter, path, filename);
987 }
988 
testLine48x(skiatest::Reporter * reporter,const char * filename)989 static void testLine48x(skiatest::Reporter* reporter, const char* filename) {
990     SkPath path;
991     path.setFillType(SkPathFillType::kEvenOdd);
992     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
993     path.addRect(0, 6, 12, 12, SkPathDirection::kCW);
994     path.addRect(0, 0, 9, 9, SkPathDirection::kCCW);
995     testSimplify(reporter, path, filename);
996 }
997 
testLine49(skiatest::Reporter * reporter,const char * filename)998 static void testLine49(skiatest::Reporter* reporter, const char* filename) {
999     SkPath path;
1000     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1001     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
1002     path.addRect(0, 0, 9, 9, SkPathDirection::kCW);
1003     testSimplify(reporter, path, filename);
1004 }
1005 
testLine49x(skiatest::Reporter * reporter,const char * filename)1006 static void testLine49x(skiatest::Reporter* reporter, const char* filename) {
1007     SkPath path;
1008     path.setFillType(SkPathFillType::kEvenOdd);
1009     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1010     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
1011     path.addRect(0, 0, 9, 9, SkPathDirection::kCW);
1012     testSimplify(reporter, path, filename);
1013 }
1014 
testLine50(skiatest::Reporter * reporter,const char * filename)1015 static void testLine50(skiatest::Reporter* reporter, const char* filename) {
1016     SkPath path;
1017     path.addRect(10, 30, 30, 30, SkPathDirection::kCW);
1018     path.addRect(24, 20, 36, 30, SkPathDirection::kCW);
1019     testSimplify(reporter, path, filename);
1020 }
1021 
testLine50x(skiatest::Reporter * reporter,const char * filename)1022 static void testLine50x(skiatest::Reporter* reporter, const char* filename) {
1023     SkPath path;
1024     path.setFillType(SkPathFillType::kEvenOdd);
1025     path.addRect(10, 30, 30, 30, SkPathDirection::kCW);
1026     path.addRect(24, 20, 36, 30, SkPathDirection::kCW);
1027     testSimplify(reporter, path, filename);
1028 }
1029 
testLine51(skiatest::Reporter * reporter,const char * filename)1030 static void testLine51(skiatest::Reporter* reporter, const char* filename) {
1031     SkPath path;
1032     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1033     path.addRect(0, 12, 12, 12, SkPathDirection::kCW);
1034     path.addRect(4, 12, 13, 13, SkPathDirection::kCCW);
1035     testSimplify(reporter, path, filename);
1036 }
1037 
testLine51x(skiatest::Reporter * reporter,const char * filename)1038 static void testLine51x(skiatest::Reporter* reporter, const char* filename) {
1039     SkPath path;
1040     path.setFillType(SkPathFillType::kEvenOdd);
1041     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1042     path.addRect(0, 12, 12, 12, SkPathDirection::kCW);
1043     path.addRect(4, 12, 13, 13, SkPathDirection::kCCW);
1044     testSimplify(reporter, path, filename);
1045 }
1046 
testLine52(skiatest::Reporter * reporter,const char * filename)1047 static void testLine52(skiatest::Reporter* reporter, const char* filename) {
1048     SkPath path;
1049     path.addRect(0, 30, 20, 20, SkPathDirection::kCW);
1050     path.addRect(6, 20, 18, 30, SkPathDirection::kCW);
1051     path.addRect(32, 0, 36, 41, SkPathDirection::kCW);
1052     testSimplify(reporter, path, filename);
1053 }
1054 
testLine52x(skiatest::Reporter * reporter,const char * filename)1055 static void testLine52x(skiatest::Reporter* reporter, const char* filename) {
1056     SkPath path;
1057     path.setFillType(SkPathFillType::kEvenOdd);
1058     path.addRect(0, 30, 20, 20, SkPathDirection::kCW);
1059     path.addRect(6, 20, 18, 30, SkPathDirection::kCW);
1060     path.addRect(32, 0, 36, 41, SkPathDirection::kCW);
1061     testSimplify(reporter, path, filename);
1062 }
1063 
testLine53(skiatest::Reporter * reporter,const char * filename)1064 static void testLine53(skiatest::Reporter* reporter, const char* filename) {
1065     SkPath path;
1066     path.addRect(10, 30, 30, 30, SkPathDirection::kCW);
1067     path.addRect(12, 20, 24, 30, SkPathDirection::kCW);
1068     path.addRect(12, 32, 21, 36, SkPathDirection::kCCW);
1069     testSimplify(reporter, path, filename);
1070 }
1071 
testLine53x(skiatest::Reporter * reporter,const char * filename)1072 static void testLine53x(skiatest::Reporter* reporter, const char* filename) {
1073     SkPath path;
1074     path.setFillType(SkPathFillType::kEvenOdd);
1075     path.addRect(10, 30, 30, 30, SkPathDirection::kCW);
1076     path.addRect(12, 20, 24, 30, SkPathDirection::kCW);
1077     path.addRect(12, 32, 21, 36, SkPathDirection::kCCW);
1078     testSimplify(reporter, path, filename);
1079 }
1080 
testLine54(skiatest::Reporter * reporter,const char * filename)1081 static void testLine54(skiatest::Reporter* reporter, const char* filename) {
1082     SkPath path;
1083     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1084     path.addRect(6, 0, 18, 18, SkPathDirection::kCW);
1085     path.addRect(8, 4, 17, 17, SkPathDirection::kCCW);
1086     testSimplify(reporter, path, filename);
1087 }
1088 
testLine54x(skiatest::Reporter * reporter,const char * filename)1089 static void testLine54x(skiatest::Reporter* reporter, const char* filename) {
1090     SkPath path;
1091     path.setFillType(SkPathFillType::kEvenOdd);
1092     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1093     path.addRect(6, 0, 18, 18, SkPathDirection::kCW);
1094     path.addRect(8, 4, 17, 17, SkPathDirection::kCCW);
1095     testSimplify(reporter, path, filename);
1096 }
1097 
testLine55(skiatest::Reporter * reporter,const char * filename)1098 static void testLine55(skiatest::Reporter* reporter, const char* filename) {
1099     SkPath path;
1100     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1101     path.addRect(6, 6, 18, 18, SkPathDirection::kCW);
1102     path.addRect(4, 4, 13, 13, SkPathDirection::kCCW);
1103     testSimplify(reporter, path, filename);
1104 }
1105 
testLine55x(skiatest::Reporter * reporter,const char * filename)1106 static void testLine55x(skiatest::Reporter* reporter, const char* filename) {
1107     SkPath path;
1108     path.setFillType(SkPathFillType::kEvenOdd);
1109     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1110     path.addRect(6, 6, 18, 18, SkPathDirection::kCW);
1111     path.addRect(4, 4, 13, 13, SkPathDirection::kCCW);
1112     testSimplify(reporter, path, filename);
1113 }
1114 
testLine56(skiatest::Reporter * reporter,const char * filename)1115 static void testLine56(skiatest::Reporter* reporter, const char* filename) {
1116     SkPath path;
1117     path.addRect(0, 20, 20, 20, SkPathDirection::kCW);
1118     path.addRect(18, 20, 30, 30, SkPathDirection::kCW);
1119     path.addRect(12, 0, 21, 21, SkPathDirection::kCCW);
1120     testSimplify(reporter, path, filename);
1121 }
1122 
testLine56x(skiatest::Reporter * reporter,const char * filename)1123 static void testLine56x(skiatest::Reporter* reporter, const char* filename) {
1124     SkPath path;
1125     path.setFillType(SkPathFillType::kEvenOdd);
1126     path.addRect(0, 20, 20, 20, SkPathDirection::kCW);
1127     path.addRect(18, 20, 30, 30, SkPathDirection::kCW);
1128     path.addRect(12, 0, 21, 21, SkPathDirection::kCCW);
1129     testSimplify(reporter, path, filename);
1130 }
1131 
testLine57(skiatest::Reporter * reporter,const char * filename)1132 static void testLine57(skiatest::Reporter* reporter, const char* filename) {
1133     SkPath path;
1134     path.addRect(20, 0, 40, 40, SkPathDirection::kCW);
1135     path.addRect(20, 0, 30, 40, SkPathDirection::kCW);
1136     path.addRect(12, 0, 21, 21, SkPathDirection::kCCW);
1137     testSimplify(reporter, path, filename);
1138 }
1139 
testLine57x(skiatest::Reporter * reporter,const char * filename)1140 static void testLine57x(skiatest::Reporter* reporter, const char* filename) {
1141     SkPath path;
1142     path.setFillType(SkPathFillType::kEvenOdd);
1143     path.addRect(20, 0, 40, 40, SkPathDirection::kCW);
1144     path.addRect(20, 0, 30, 40, SkPathDirection::kCW);
1145     path.addRect(12, 0, 21, 21, SkPathDirection::kCCW);
1146     testSimplify(reporter, path, filename);
1147 }
1148 
testLine58(skiatest::Reporter * reporter,const char * filename)1149 static void testLine58(skiatest::Reporter* reporter, const char* filename) {
1150     SkPath path;
1151     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1152     path.addRect(0, 0, 12, 12, SkPathDirection::kCCW);
1153     path.addRect(0, 12, 9, 9, SkPathDirection::kCCW);
1154     testSimplify(reporter, path, filename);
1155 }
1156 
testLine58x(skiatest::Reporter * reporter,const char * filename)1157 static void testLine58x(skiatest::Reporter* reporter, const char* filename) {
1158     SkPath path;
1159     path.setFillType(SkPathFillType::kEvenOdd);
1160     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1161     path.addRect(0, 0, 12, 12, SkPathDirection::kCCW);
1162     path.addRect(0, 12, 9, 9, SkPathDirection::kCCW);
1163     testSimplify(reporter, path, filename);
1164 }
1165 
testLine59(skiatest::Reporter * reporter,const char * filename)1166 static void testLine59(skiatest::Reporter* reporter, const char* filename) {
1167     SkPath path;
1168     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1169     path.addRect(6, 6, 18, 18, SkPathDirection::kCCW);
1170     path.addRect(4, 4, 13, 13, SkPathDirection::kCCW);
1171     testSimplify(reporter, path, filename);
1172 }
1173 
testLine59x(skiatest::Reporter * reporter,const char * filename)1174 static void testLine59x(skiatest::Reporter* reporter, const char* filename) {
1175     SkPath path;
1176     path.setFillType(SkPathFillType::kEvenOdd);
1177     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1178     path.addRect(6, 6, 18, 18, SkPathDirection::kCCW);
1179     path.addRect(4, 4, 13, 13, SkPathDirection::kCCW);
1180     testSimplify(reporter, path, filename);
1181 }
1182 
testLine60(skiatest::Reporter * reporter,const char * filename)1183 static void testLine60(skiatest::Reporter* reporter, const char* filename) {
1184     SkPath path;
1185     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1186     path.addRect(6, 12, 18, 18, SkPathDirection::kCCW);
1187     path.addRect(4, 12, 13, 13, SkPathDirection::kCCW);
1188     testSimplify(reporter, path, filename);
1189 }
1190 
testLine60x(skiatest::Reporter * reporter,const char * filename)1191 static void testLine60x(skiatest::Reporter* reporter, const char* filename) {
1192     SkPath path;
1193     path.setFillType(SkPathFillType::kEvenOdd);
1194     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1195     path.addRect(6, 12, 18, 18, SkPathDirection::kCCW);
1196     path.addRect(4, 12, 13, 13, SkPathDirection::kCCW);
1197     testSimplify(reporter, path, filename);
1198 }
1199 
testLine61(skiatest::Reporter * reporter,const char * filename)1200 static void testLine61(skiatest::Reporter* reporter, const char* filename) {
1201     SkPath path;
1202     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1203     path.addRect(12, 0, 24, 24, SkPathDirection::kCCW);
1204     path.addRect(12, 0, 21, 21, SkPathDirection::kCCW);
1205     testSimplify(reporter, path, filename);
1206 }
1207 
testLine61x(skiatest::Reporter * reporter,const char * filename)1208 static void testLine61x(skiatest::Reporter* reporter, const char* filename) {
1209     SkPath path;
1210     path.setFillType(SkPathFillType::kEvenOdd);
1211     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1212     path.addRect(12, 0, 24, 24, SkPathDirection::kCCW);
1213     path.addRect(12, 0, 21, 21, SkPathDirection::kCCW);
1214     testSimplify(reporter, path, filename);
1215 }
1216 
testLine62(skiatest::Reporter * reporter,const char * filename)1217 static void testLine62(skiatest::Reporter* reporter, const char* filename) {
1218     SkPath path;
1219     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1220     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1221     path.addRect(0, 12, 12, 12, SkPathDirection::kCW);
1222     path.addRect(4, 12, 13, 13, SkPathDirection::kCCW);
1223     testSimplify(reporter, path, filename);
1224 }
1225 
testLine62x(skiatest::Reporter * reporter,const char * filename)1226 static void testLine62x(skiatest::Reporter* reporter, const char* filename) {
1227     SkPath path;
1228     path.setFillType(SkPathFillType::kEvenOdd);
1229     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1230     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1231     path.addRect(0, 12, 12, 12, SkPathDirection::kCW);
1232     path.addRect(4, 12, 13, 13, SkPathDirection::kCCW);
1233     testSimplify(reporter, path, filename);
1234 }
1235 
testLine63(skiatest::Reporter * reporter,const char * filename)1236 static void testLine63(skiatest::Reporter* reporter, const char* filename) {
1237     SkPath path;
1238     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1239     path.addRect(0, 10, 20, 20, SkPathDirection::kCW);
1240     path.addRect(0, 6, 12, 12, SkPathDirection::kCCW);
1241     path.addRect(0, 32, 9, 36, SkPathDirection::kCCW);
1242     testSimplify(reporter, path, filename);
1243 }
1244 
testLine63x(skiatest::Reporter * reporter,const char * filename)1245 static void testLine63x(skiatest::Reporter* reporter, const char* filename) {
1246     SkPath path;
1247     path.setFillType(SkPathFillType::kEvenOdd);
1248     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1249     path.addRect(0, 10, 20, 20, SkPathDirection::kCW);
1250     path.addRect(0, 6, 12, 12, SkPathDirection::kCCW);
1251     path.addRect(0, 32, 9, 36, SkPathDirection::kCCW);
1252     testSimplify(reporter, path, filename);
1253 }
1254 
testLine64(skiatest::Reporter * reporter,const char * filename)1255 static void testLine64(skiatest::Reporter* reporter, const char* filename) {
1256     SkPath path;
1257     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1258     path.addRect(10, 40, 30, 30, SkPathDirection::kCW);
1259     path.addRect(18, 6, 30, 30, SkPathDirection::kCW);
1260     testSimplify(reporter, path, filename);
1261 }
1262 
testLine64x(skiatest::Reporter * reporter,const char * filename)1263 static void testLine64x(skiatest::Reporter* reporter, const char* filename) {
1264     SkPath path;
1265     path.setFillType(SkPathFillType::kEvenOdd);
1266     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1267     path.addRect(10, 40, 30, 30, SkPathDirection::kCW);
1268     path.addRect(18, 6, 30, 30, SkPathDirection::kCW);
1269     testSimplify(reporter, path, filename);
1270 }
1271 
testLine65(skiatest::Reporter * reporter,const char * filename)1272 static void testLine65(skiatest::Reporter* reporter, const char* filename) {
1273     SkPath path;
1274     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1275     path.addRect(10, 0, 30, 30, SkPathDirection::kCW);
1276     path.addRect(24, 0, 36, 36, SkPathDirection::kCW);
1277     path.addRect(32, 6, 36, 41, SkPathDirection::kCCW);
1278     testSimplify(reporter, path, filename);
1279 }
1280 
testLine65x(skiatest::Reporter * reporter,const char * filename)1281 static void testLine65x(skiatest::Reporter* reporter, const char* filename) {
1282     SkPath path;
1283     path.setFillType(SkPathFillType::kEvenOdd);
1284     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1285     path.addRect(10, 0, 30, 30, SkPathDirection::kCW);
1286     path.addRect(24, 0, 36, 36, SkPathDirection::kCW);
1287     path.addRect(32, 6, 36, 41, SkPathDirection::kCCW);
1288     testSimplify(reporter, path, filename);
1289 }
1290 
testLine66(skiatest::Reporter * reporter,const char * filename)1291 static void testLine66(skiatest::Reporter* reporter, const char* filename) {
1292     SkPath path;
1293     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1294     path.addRect(0, 30, 20, 20, SkPathDirection::kCW);
1295     path.addRect(12, 20, 24, 30, SkPathDirection::kCW);
1296     testSimplify(reporter, path, filename);
1297 }
1298 
testLine66x(skiatest::Reporter * reporter,const char * filename)1299 static void testLine66x(skiatest::Reporter* reporter, const char* filename) {
1300     SkPath path;
1301     path.setFillType(SkPathFillType::kEvenOdd);
1302     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1303     path.addRect(0, 30, 20, 20, SkPathDirection::kCW);
1304     path.addRect(12, 20, 24, 30, SkPathDirection::kCW);
1305     testSimplify(reporter, path, filename);
1306 }
1307 
testLine67(skiatest::Reporter * reporter,const char * filename)1308 static void testLine67(skiatest::Reporter* reporter, const char* filename) {
1309     SkPath path;
1310     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1311     path.addRect(10, 40, 30, 30, SkPathDirection::kCW);
1312     path.addRect(24, 20, 36, 30, SkPathDirection::kCW);
1313     path.addRect(32, 0, 36, 41, SkPathDirection::kCW);
1314     testSimplify(reporter, path, filename);
1315 }
1316 
testLine67x(skiatest::Reporter * reporter,const char * filename)1317 static void testLine67x(skiatest::Reporter* reporter, const char* filename) {
1318     SkPath path;
1319     path.setFillType(SkPathFillType::kEvenOdd);
1320     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1321     path.addRect(10, 40, 30, 30, SkPathDirection::kCW);
1322     path.addRect(24, 20, 36, 30, SkPathDirection::kCW);
1323     path.addRect(32, 0, 36, 41, SkPathDirection::kCW);
1324     testSimplify(reporter, path, filename);
1325 }
1326 
testLine68a(skiatest::Reporter * reporter,const char * filename)1327 static void testLine68a(skiatest::Reporter* reporter, const char* filename) {
1328     SkPath path;
1329     path.addRect(0, 0, 8, 8, SkPathDirection::kCW);
1330     path.addRect(2, 2, 6, 6, SkPathDirection::kCW);
1331     path.addRect(1, 2, 4, 2, SkPathDirection::kCW);
1332     testSimplify(reporter, path, filename);
1333 }
1334 
testLine68ax(skiatest::Reporter * reporter,const char * filename)1335 static void testLine68ax(skiatest::Reporter* reporter, const char* filename) {
1336     SkPath path;
1337     path.setFillType(SkPathFillType::kEvenOdd);
1338     path.addRect(0, 0, 8, 8, SkPathDirection::kCW);
1339     path.addRect(2, 2, 6, 6, SkPathDirection::kCW);
1340     path.addRect(1, 2, 4, 2, SkPathDirection::kCW);
1341     testSimplify(reporter, path, filename);
1342 }
1343 
testLine68b(skiatest::Reporter * reporter,const char * filename)1344 static void testLine68b(skiatest::Reporter* reporter, const char* filename) {
1345     SkPath path;
1346     path.addRect(0, 0, 8, 8, SkPathDirection::kCW);
1347     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1348     path.addRect(1, 2, 2, 2, SkPathDirection::kCW);
1349     testSimplify(reporter, path, filename);
1350 }
1351 
testLine68bx(skiatest::Reporter * reporter,const char * filename)1352 static void testLine68bx(skiatest::Reporter* reporter, const char* filename) {
1353     SkPath path;
1354     path.setFillType(SkPathFillType::kEvenOdd);
1355     path.addRect(0, 0, 8, 8, SkPathDirection::kCW);
1356     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1357     path.addRect(1, 2, 2, 2, SkPathDirection::kCW);
1358     testSimplify(reporter, path, filename);
1359 }
1360 
testLine68c(skiatest::Reporter * reporter,const char * filename)1361 static void testLine68c(skiatest::Reporter* reporter, const char* filename) {
1362     SkPath path;
1363     path.addRect(0, 0, 8, 8, SkPathDirection::kCCW);
1364     path.addRect(2, 2, 6, 6, SkPathDirection::kCW);
1365     path.addRect(1, 2, 4, 2, SkPathDirection::kCW);
1366     testSimplify(reporter, path, filename);
1367 }
1368 
testLine68cx(skiatest::Reporter * reporter,const char * filename)1369 static void testLine68cx(skiatest::Reporter* reporter, const char* filename) {
1370     SkPath path;
1371     path.setFillType(SkPathFillType::kEvenOdd);
1372     path.addRect(0, 0, 8, 8, SkPathDirection::kCCW);
1373     path.addRect(2, 2, 6, 6, SkPathDirection::kCW);
1374     path.addRect(1, 2, 4, 2, SkPathDirection::kCW);
1375     testSimplify(reporter, path, filename);
1376 }
1377 
testLine68d(skiatest::Reporter * reporter,const char * filename)1378 static void testLine68d(skiatest::Reporter* reporter, const char* filename) {
1379     SkPath path;
1380     path.addRect(0, 0, 8, 8, SkPathDirection::kCCW);
1381     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1382     path.addRect(1, 2, 4, 2, SkPathDirection::kCW);
1383     testSimplify(reporter, path, filename);
1384 }
1385 
testLine68dx(skiatest::Reporter * reporter,const char * filename)1386 static void testLine68dx(skiatest::Reporter* reporter, const char* filename) {
1387     SkPath path;
1388     path.setFillType(SkPathFillType::kEvenOdd);
1389     path.addRect(0, 0, 8, 8, SkPathDirection::kCCW);
1390     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1391     path.addRect(1, 2, 4, 2, SkPathDirection::kCW);
1392     testSimplify(reporter, path, filename);
1393 }
1394 
testLine68e(skiatest::Reporter * reporter,const char * filename)1395 static void testLine68e(skiatest::Reporter* reporter, const char* filename) {
1396     SkPath path;
1397     path.addRect(0, 0, 8, 8, SkPathDirection::kCW);
1398     path.addRect(0, 0, 8, 8, SkPathDirection::kCW);
1399     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1400     path.addRect(1, 2, 2, 2, SkPathDirection::kCW);
1401     testSimplify(reporter, path, filename);
1402 }
1403 
testLine68ex(skiatest::Reporter * reporter,const char * filename)1404 static void testLine68ex(skiatest::Reporter* reporter, const char* filename) {
1405     SkPath path;
1406     path.setFillType(SkPathFillType::kEvenOdd);
1407     path.addRect(0, 0, 8, 8, SkPathDirection::kCW);
1408     path.addRect(0, 0, 8, 8, SkPathDirection::kCW);
1409     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1410     path.addRect(1, 2, 2, 2, SkPathDirection::kCW);
1411     testSimplify(reporter, path, filename);
1412 }
1413 
testLine68f(skiatest::Reporter * reporter,const char * filename)1414 static void testLine68f(skiatest::Reporter* reporter, const char* filename) {
1415     SkPath path;
1416     path.addRect(0, 0, 8, 8, SkPathDirection::kCW);
1417     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1418     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1419     path.addRect(1, 2, 2, 2, SkPathDirection::kCW);
1420     testSimplify(reporter, path, filename);
1421 }
1422 
testLine68fx(skiatest::Reporter * reporter,const char * filename)1423 static void testLine68fx(skiatest::Reporter* reporter, const char* filename) {
1424     SkPath path;
1425     path.setFillType(SkPathFillType::kEvenOdd);
1426     path.addRect(0, 0, 8, 8, SkPathDirection::kCW);
1427     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1428     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1429     path.addRect(1, 2, 2, 2, SkPathDirection::kCW);
1430     testSimplify(reporter, path, filename);
1431 }
1432 
testLine68g(skiatest::Reporter * reporter,const char * filename)1433 static void testLine68g(skiatest::Reporter* reporter, const char* filename) {
1434     SkPath path;
1435     path.addRect(0, 0, 8, 8, SkPathDirection::kCW);
1436     path.addRect(0, 0, 8, 8, SkPathDirection::kCW);
1437     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1438     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1439     path.addRect(1, 2, 2, 2, SkPathDirection::kCW);
1440     testSimplify(reporter, path, filename);
1441 }
1442 
testLine68gx(skiatest::Reporter * reporter,const char * filename)1443 static void testLine68gx(skiatest::Reporter* reporter, const char* filename) {
1444     SkPath path;
1445     path.setFillType(SkPathFillType::kEvenOdd);
1446     path.addRect(0, 0, 8, 8, SkPathDirection::kCW);
1447     path.addRect(0, 0, 8, 8, SkPathDirection::kCW);
1448     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1449     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1450     path.addRect(1, 2, 2, 2, SkPathDirection::kCW);
1451     testSimplify(reporter, path, filename);
1452 }
1453 
testLine68h(skiatest::Reporter * reporter,const char * filename)1454 static void testLine68h(skiatest::Reporter* reporter, const char* filename) {
1455     SkPath path;
1456     path.addRect(0, 0, 8, 8, SkPathDirection::kCW);
1457     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1458     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1459     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1460     path.addRect(1, 2, 2, 2, SkPathDirection::kCW);
1461     testSimplify(reporter, path, filename);
1462 }
1463 
testLine68hx(skiatest::Reporter * reporter,const char * filename)1464 static void testLine68hx(skiatest::Reporter* reporter, const char* filename) {
1465     SkPath path;
1466     path.setFillType(SkPathFillType::kEvenOdd);
1467     path.addRect(0, 0, 8, 8, SkPathDirection::kCW);
1468     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1469     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1470     path.addRect(2, 2, 6, 6, SkPathDirection::kCCW);
1471     path.addRect(1, 2, 2, 2, SkPathDirection::kCW);
1472     testSimplify(reporter, path, filename);
1473 }
1474 
testLine69(skiatest::Reporter * reporter,const char * filename)1475 static void testLine69(skiatest::Reporter* reporter, const char* filename) {
1476     SkPath path;
1477     path.addRect(0, 20, 20, 20, SkPathDirection::kCW);
1478     path.addRect(0, 20, 12, 30, SkPathDirection::kCW);
1479     path.addRect(12, 32, 21, 36, SkPathDirection::kCW);
1480     testSimplify(reporter, path, filename);
1481 }
1482 
testLine69x(skiatest::Reporter * reporter,const char * filename)1483 static void testLine69x(skiatest::Reporter* reporter, const char* filename) {
1484     SkPath path;
1485     path.setFillType(SkPathFillType::kEvenOdd);
1486     path.addRect(0, 20, 20, 20, SkPathDirection::kCW);
1487     path.addRect(0, 20, 12, 30, SkPathDirection::kCW);
1488     path.addRect(12, 32, 21, 36, SkPathDirection::kCW);
1489     testSimplify(reporter, path, filename);
1490 }
1491 
testLine70(skiatest::Reporter * reporter,const char * filename)1492 static void testLine70(skiatest::Reporter* reporter, const char* filename) {
1493     SkPath path;
1494     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1495     path.addRect(0, 24, 12, 12, SkPathDirection::kCW);
1496     path.addRect(12, 32, 21, 36, SkPathDirection::kCCW);
1497     testSimplify(reporter, path, filename);
1498 }
1499 
testLine70x(skiatest::Reporter * reporter,const char * filename)1500 static void testLine70x(skiatest::Reporter* reporter, const char* filename) {
1501     SkPath path;
1502     path.setFillType(SkPathFillType::kEvenOdd);
1503     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1504     path.addRect(0, 24, 12, 12, SkPathDirection::kCW);
1505     path.addRect(12, 32, 21, 36, SkPathDirection::kCCW);
1506     testSimplify(reporter, path, filename);
1507 }
1508 
testLine71(skiatest::Reporter * reporter,const char * filename)1509 static void testLine71(skiatest::Reporter* reporter, const char* filename) {
1510     SkPath path;
1511     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1512     path.addRect(12, 0, 24, 24, SkPathDirection::kCW);
1513     path.addRect(12, 32, 21, 36, SkPathDirection::kCW);
1514     testSimplify(reporter, path, filename);
1515 }
1516 
testLine71x(skiatest::Reporter * reporter,const char * filename)1517 static void testLine71x(skiatest::Reporter* reporter, const char* filename) {
1518     SkPath path;
1519     path.setFillType(SkPathFillType::kEvenOdd);
1520     path.addRect(0, 0, 20, 20, SkPathDirection::kCW);
1521     path.addRect(12, 0, 24, 24, SkPathDirection::kCW);
1522     path.addRect(12, 32, 21, 36, SkPathDirection::kCW);
1523     testSimplify(reporter, path, filename);
1524 }
1525 
testLine72(skiatest::Reporter * reporter,const char * filename)1526 static void testLine72(skiatest::Reporter* reporter, const char* filename) {
1527     SkPath path;
1528     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1529     path.addRect(10, 40, 30, 30, SkPathDirection::kCW);
1530     path.addRect(6, 20, 18, 30, SkPathDirection::kCW);
1531     testSimplify(reporter, path, filename);
1532 }
1533 
testLine72x(skiatest::Reporter * reporter,const char * filename)1534 static void testLine72x(skiatest::Reporter* reporter, const char* filename) {
1535     SkPath path;
1536     path.setFillType(SkPathFillType::kEvenOdd);
1537     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1538     path.addRect(10, 40, 30, 30, SkPathDirection::kCW);
1539     path.addRect(6, 20, 18, 30, SkPathDirection::kCW);
1540     testSimplify(reporter, path, filename);
1541 }
1542 
testLine73(skiatest::Reporter * reporter,const char * filename)1543 static void testLine73(skiatest::Reporter* reporter, const char* filename) {
1544     SkPath path;
1545     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1546     path.addRect(0, 40, 20, 20, SkPathDirection::kCW);
1547     path.addRect(0, 20, 12, 30, SkPathDirection::kCW);
1548     path.addRect(0, 0, 9, 9, SkPathDirection::kCCW);
1549     testSimplify(reporter, path, filename);
1550 }
1551 
testLine73x(skiatest::Reporter * reporter,const char * filename)1552 static void testLine73x(skiatest::Reporter* reporter, const char* filename) {
1553     SkPath path;
1554     path.setFillType(SkPathFillType::kEvenOdd);
1555     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1556     path.addRect(0, 40, 20, 20, SkPathDirection::kCW);
1557     path.addRect(0, 20, 12, 30, SkPathDirection::kCW);
1558     path.addRect(0, 0, 9, 9, SkPathDirection::kCCW);
1559     testSimplify(reporter, path, filename);
1560 }
1561 
testLine74(skiatest::Reporter * reporter,const char * filename)1562 static void testLine74(skiatest::Reporter* reporter, const char* filename) {
1563     SkPath path;
1564     path.addRect(20, 30, 40, 40, SkPathDirection::kCW);
1565     path.addRect(24, 20, 36, 30, SkPathDirection::kCCW);
1566     path.addRect(32, 24, 36, 41, SkPathDirection::kCCW);
1567     testSimplify(reporter, path, filename);
1568 }
1569 
testLine74x(skiatest::Reporter * reporter,const char * filename)1570 static void testLine74x(skiatest::Reporter* reporter, const char* filename) {
1571     SkPath path;
1572     path.setFillType(SkPathFillType::kEvenOdd);
1573     path.addRect(20, 30, 40, 40, SkPathDirection::kCW);
1574     path.addRect(24, 20, 36, 30, SkPathDirection::kCCW);
1575     path.addRect(32, 24, 36, 41, SkPathDirection::kCCW);
1576     testSimplify(reporter, path, filename);
1577 }
1578 
testLine75(skiatest::Reporter * reporter,const char * filename)1579 static void testLine75(skiatest::Reporter* reporter, const char* filename) {
1580     SkPath path;
1581     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1582     path.addRect(10, 0, 30, 30, SkPathDirection::kCCW);
1583     path.addRect(18, 0, 30, 30, SkPathDirection::kCCW);
1584     path.addRect(12, 0, 21, 21, SkPathDirection::kCCW);
1585     testSimplify(reporter, path, filename);
1586 }
1587 
testLine75x(skiatest::Reporter * reporter,const char * filename)1588 static void testLine75x(skiatest::Reporter* reporter, const char* filename) {
1589     SkPath path;
1590     path.setFillType(SkPathFillType::kEvenOdd);
1591     path.addRect(0, 0, 60, 60, SkPathDirection::kCW);
1592     path.addRect(10, 0, 30, 30, SkPathDirection::kCCW);
1593     path.addRect(18, 0, 30, 30, SkPathDirection::kCCW);
1594     path.addRect(12, 0, 21, 21, SkPathDirection::kCCW);
1595     testSimplify(reporter, path, filename);
1596 }
1597 
testLine76(skiatest::Reporter * reporter,const char * filename)1598 static void testLine76(skiatest::Reporter* reporter, const char* filename) {
1599     SkPath path;
1600     path.addRect(36, 0, 66, 60, SkPathDirection::kCW);
1601     path.addRect(10, 20, 40, 30, SkPathDirection::kCW);
1602     path.addRect(24, 20, 36, 30, SkPathDirection::kCCW);
1603     path.addRect(32, 6, 36, 41, SkPathDirection::kCCW);
1604     testSimplify(reporter, path, filename);
1605 }
1606 
testLine76x(skiatest::Reporter * reporter,const char * filename)1607 static void testLine76x(skiatest::Reporter* reporter, const char* filename) {
1608     SkPath path;
1609     path.setFillType(SkPathFillType::kEvenOdd);
1610     path.addRect(36, 0, 66, 60, SkPathDirection::kCW);
1611     path.addRect(10, 20, 40, 30, SkPathDirection::kCW);
1612     path.addRect(24, 20, 36, 30, SkPathDirection::kCCW);
1613     path.addRect(32, 6, 36, 41, SkPathDirection::kCCW);
1614     testSimplify(reporter, path, filename);
1615 }
1616 
testLine77(skiatest::Reporter * reporter,const char * filename)1617 static void testLine77(skiatest::Reporter* reporter, const char* filename) {
1618     SkPath path;
1619     path.addRect(20, 0, 40, 40, SkPathDirection::kCW);
1620     path.addRect(24, 6, 36, 36, SkPathDirection::kCCW);
1621     path.addRect(24, 32, 33, 36, SkPathDirection::kCCW);
1622     testSimplify(reporter, path, filename);
1623 }
1624 
testLine77x(skiatest::Reporter * reporter,const char * filename)1625 static void testLine77x(skiatest::Reporter* reporter, const char* filename) {
1626     SkPath path;
1627     path.setFillType(SkPathFillType::kEvenOdd);
1628     path.addRect(20, 0, 40, 40, SkPathDirection::kCW);
1629     path.addRect(24, 6, 36, 36, SkPathDirection::kCCW);
1630     path.addRect(24, 32, 33, 36, SkPathDirection::kCCW);
1631     testSimplify(reporter, path, filename);
1632 }
1633 
testLine78(skiatest::Reporter * reporter,const char * filename)1634 static void testLine78(skiatest::Reporter* reporter, const char* filename) {
1635     SkPath path;
1636     path.addRect(0, 0, 30, 60, SkPathDirection::kCW);
1637     path.addRect(10, 20, 30, 30, SkPathDirection::kCCW);
1638     path.addRect(18, 20, 30, 30, SkPathDirection::kCCW);
1639     path.addRect(32, 0, 36, 41, SkPathDirection::kCCW);
1640     testSimplify(reporter, path, filename);
1641 }
1642 
testLine78x(skiatest::Reporter * reporter,const char * filename)1643 static void testLine78x(skiatest::Reporter* reporter, const char* filename) {
1644     SkPath path;
1645     path.setFillType(SkPathFillType::kEvenOdd);
1646     path.addRect(0, 0, 30, 60, SkPathDirection::kCW);
1647     path.addRect(10, 20, 30, 30, SkPathDirection::kCCW);
1648     path.addRect(18, 20, 30, 30, SkPathDirection::kCCW);
1649     path.addRect(32, 0, 36, 41, SkPathDirection::kCCW);
1650     testSimplify(reporter, path, filename);
1651 }
1652 
testLine79(skiatest::Reporter * reporter,const char * filename)1653 static void testLine79(skiatest::Reporter* reporter, const char* filename) {
1654     SkPath path;
1655     path.addRect(0, 36, 60, 30, SkPathDirection::kCW);
1656     path.addRect(10, 30, 40, 30, SkPathDirection::kCW);
1657     path.addRect(0, 20, 12, 30, SkPathDirection::kCCW);
1658     path.addRect(0, 32, 9, 36, SkPathDirection::kCCW);
1659     testSimplify(reporter, path, filename);
1660 }
1661 
testLine79x(skiatest::Reporter * reporter,const char * filename)1662 static void testLine79x(skiatest::Reporter* reporter, const char* filename) {
1663     SkPath path;
1664     path.setFillType(SkPathFillType::kEvenOdd);
1665     path.addRect(0, 36, 60, 30, SkPathDirection::kCW);
1666     path.addRect(10, 30, 40, 30, SkPathDirection::kCW);
1667     path.addRect(0, 20, 12, 30, SkPathDirection::kCCW);
1668     path.addRect(0, 32, 9, 36, SkPathDirection::kCCW);
1669     testSimplify(reporter, path, filename);
1670 }
1671 
testLine81(skiatest::Reporter * reporter,const char * filename)1672 static void testLine81(skiatest::Reporter* reporter, const char* filename) {
1673     SkPath path;
1674     path.addRect(-1, -1, 3, 3, SkPathDirection::kCW);
1675     path.addRect(0, 0, 1, 1, SkPathDirection::kCW);
1676     path.addRect(0, 0, 1, 1, SkPathDirection::kCW);
1677     path.addRect(0, 0, 1, 1, SkPathDirection::kCW);
1678     path.addRect(1, 1, 2, 2, SkPathDirection::kCCW);
1679     testSimplify(reporter, path, filename);
1680 }
1681 
testDegenerate1(skiatest::Reporter * reporter,const char * filename)1682 static void testDegenerate1(skiatest::Reporter* reporter, const char* filename) {
1683     SkPath path;
1684     path.moveTo(0, 0);
1685     path.lineTo(0, 0);
1686     path.lineTo(2, 0);
1687     path.close();
1688     path.moveTo(0, 0);
1689     path.lineTo(1, 0);
1690     path.lineTo(2, 0);
1691     path.close();
1692     testSimplify(reporter, path, filename);
1693 }
1694 
testDegenerate1x(skiatest::Reporter * reporter,const char * filename)1695 static void testDegenerate1x(skiatest::Reporter* reporter, const char* filename) {
1696     SkPath path;
1697     path.setFillType(SkPathFillType::kEvenOdd);
1698     path.moveTo(0, 0);
1699     path.lineTo(0, 0);
1700     path.lineTo(2, 0);
1701     path.close();
1702     path.moveTo(0, 0);
1703     path.lineTo(1, 0);
1704     path.lineTo(2, 0);
1705     path.close();
1706     testSimplify(reporter, path, filename);
1707 }
1708 
testDegenerate2(skiatest::Reporter * reporter,const char * filename)1709 static void testDegenerate2(skiatest::Reporter* reporter, const char* filename) {
1710     SkPath path;
1711     path.moveTo(0, 0);
1712     path.lineTo(0, 0);
1713     path.lineTo(0, 0);
1714     path.close();
1715     path.moveTo(0, 0);
1716     path.lineTo(1, 0);
1717     path.lineTo(0, 1);
1718     path.close();
1719     testSimplify(reporter, path, filename);
1720 }
1721 
testDegenerate2x(skiatest::Reporter * reporter,const char * filename)1722 static void testDegenerate2x(skiatest::Reporter* reporter, const char* filename) {
1723     SkPath path;
1724     path.setFillType(SkPathFillType::kEvenOdd);
1725     path.moveTo(0, 0);
1726     path.lineTo(0, 0);
1727     path.lineTo(0, 0);
1728     path.close();
1729     path.moveTo(0, 0);
1730     path.lineTo(1, 0);
1731     path.lineTo(0, 1);
1732     path.close();
1733     testSimplify(reporter, path, filename);
1734 }
1735 
testDegenerate3(skiatest::Reporter * reporter,const char * filename)1736 static void testDegenerate3(skiatest::Reporter* reporter, const char* filename) {
1737     SkPath path;
1738     path.moveTo(0, 0);
1739     path.lineTo(2, 0);
1740     path.lineTo(1, 0);
1741     path.close();
1742     path.moveTo(0, 0);
1743     path.lineTo(0, 0);
1744     path.lineTo(3, 0);
1745     path.close();
1746     testSimplify(reporter, path, filename);
1747 }
1748 
testDegenerate3x(skiatest::Reporter * reporter,const char * filename)1749 static void testDegenerate3x(skiatest::Reporter* reporter, const char* filename) {
1750     SkPath path;
1751     path.setFillType(SkPathFillType::kEvenOdd);
1752     path.moveTo(0, 0);
1753     path.lineTo(2, 0);
1754     path.lineTo(1, 0);
1755     path.close();
1756     path.moveTo(0, 0);
1757     path.lineTo(0, 0);
1758     path.lineTo(3, 0);
1759     path.close();
1760     testSimplify(reporter, path, filename);
1761 }
1762 
testDegenerate4(skiatest::Reporter * reporter,const char * filename)1763 static void testDegenerate4(skiatest::Reporter* reporter, const char* filename) {
1764     SkPath path;
1765     path.moveTo(0, 0);
1766     path.lineTo(1, 0);
1767     path.lineTo(1, 3);
1768     path.close();
1769     path.moveTo(1, 0);
1770     path.lineTo(1, 1);
1771     path.lineTo(1, 2);
1772     path.close();
1773     testSimplify(reporter, path, filename);
1774 }
1775 
testDegenerate4x(skiatest::Reporter * reporter,const char * filename)1776 static void testDegenerate4x(skiatest::Reporter* reporter, const char* filename) {
1777     SkPath path;
1778     path.setFillType(SkPathFillType::kEvenOdd);
1779     path.moveTo(0, 0);
1780     path.lineTo(1, 0);
1781     path.lineTo(1, 3);
1782     path.close();
1783     path.moveTo(1, 0);
1784     path.lineTo(1, 1);
1785     path.lineTo(1, 2);
1786     path.close();
1787     testSimplify(reporter, path, filename);
1788 }
1789 
testNondegenerate1(skiatest::Reporter * reporter,const char * filename)1790 static void testNondegenerate1(skiatest::Reporter* reporter, const char* filename) {
1791     SkPath path;
1792     path.moveTo(0, 0);
1793     path.lineTo(3, 0);
1794     path.lineTo(1, 3);
1795     path.close();
1796     path.moveTo(1, 1);
1797     path.lineTo(2, 1);
1798     path.lineTo(1, 2);
1799     path.close();
1800     testSimplify(reporter, path, filename);
1801 }
1802 
testNondegenerate1x(skiatest::Reporter * reporter,const char * filename)1803 static void testNondegenerate1x(skiatest::Reporter* reporter, const char* filename) {
1804     SkPath path;
1805     path.setFillType(SkPathFillType::kEvenOdd);
1806     path.moveTo(0, 0);
1807     path.lineTo(3, 0);
1808     path.lineTo(1, 3);
1809     path.close();
1810     path.moveTo(1, 1);
1811     path.lineTo(2, 1);
1812     path.lineTo(1, 2);
1813     path.close();
1814     testSimplify(reporter, path, filename);
1815 }
1816 
testNondegenerate2(skiatest::Reporter * reporter,const char * filename)1817 static void testNondegenerate2(skiatest::Reporter* reporter, const char* filename) {
1818     SkPath path;
1819     path.moveTo(1, 0);
1820     path.lineTo(0, 1);
1821     path.lineTo(1, 1);
1822     path.close();
1823     path.moveTo(0, 2);
1824     path.lineTo(0, 3);
1825     path.lineTo(1, 2);
1826     path.close();
1827     testSimplify(reporter, path, filename);
1828 }
1829 
testNondegenerate2x(skiatest::Reporter * reporter,const char * filename)1830 static void testNondegenerate2x(skiatest::Reporter* reporter, const char* filename) {
1831     SkPath path;
1832     path.setFillType(SkPathFillType::kEvenOdd);
1833     path.moveTo(1, 0);
1834     path.lineTo(0, 1);
1835     path.lineTo(1, 1);
1836     path.close();
1837     path.moveTo(0, 2);
1838     path.lineTo(0, 3);
1839     path.lineTo(1, 2);
1840     path.close();
1841     testSimplify(reporter, path, filename);
1842 }
1843 
testNondegenerate3(skiatest::Reporter * reporter,const char * filename)1844 static void testNondegenerate3(skiatest::Reporter* reporter, const char* filename) {
1845     SkPath path;
1846     path.moveTo(0, 0);
1847     path.lineTo(1, 0);
1848     path.lineTo(2, 1);
1849     path.close();
1850     path.moveTo(0, 1);
1851     path.lineTo(1, 1);
1852     path.lineTo(0, 2);
1853     path.close();
1854     testSimplify(reporter, path, filename);
1855 }
1856 
testNondegenerate3x(skiatest::Reporter * reporter,const char * filename)1857 static void testNondegenerate3x(skiatest::Reporter* reporter, const char* filename) {
1858     SkPath path;
1859     path.setFillType(SkPathFillType::kEvenOdd);
1860     path.moveTo(0, 0);
1861     path.lineTo(1, 0);
1862     path.lineTo(2, 1);
1863     path.close();
1864     path.moveTo(0, 1);
1865     path.lineTo(1, 1);
1866     path.lineTo(0, 2);
1867     path.close();
1868     testSimplify(reporter, path, filename);
1869 }
1870 
testNondegenerate4(skiatest::Reporter * reporter,const char * filename)1871 static void testNondegenerate4(skiatest::Reporter* reporter, const char* filename) {
1872     SkPath path;
1873     path.moveTo(1, 0);
1874     path.lineTo(0, 1);
1875     path.lineTo(1, 2);
1876     path.close();
1877     path.moveTo(0, 2);
1878     path.lineTo(0, 3);
1879     path.lineTo(1, 3);
1880     path.close();
1881     testSimplify(reporter, path, filename);
1882 }
1883 
testNondegenerate4x(skiatest::Reporter * reporter,const char * filename)1884 static void testNondegenerate4x(skiatest::Reporter* reporter, const char* filename) {
1885     SkPath path;
1886     path.setFillType(SkPathFillType::kEvenOdd);
1887     path.moveTo(1, 0);
1888     path.lineTo(0, 1);
1889     path.lineTo(1, 2);
1890     path.close();
1891     path.moveTo(0, 2);
1892     path.lineTo(0, 3);
1893     path.lineTo(1, 3);
1894     path.close();
1895     testSimplify(reporter, path, filename);
1896 }
1897 
testQuadralateral5(skiatest::Reporter * reporter,const char * filename)1898 static void testQuadralateral5(skiatest::Reporter* reporter, const char* filename) {
1899     SkPath path;
1900     path.moveTo(0, 0);
1901     path.lineTo(0, 0);
1902     path.lineTo(1, 0);
1903     path.lineTo(1, 1);
1904     path.close();
1905     path.moveTo(0, 0);
1906     path.lineTo(2, 2);
1907     path.lineTo(3, 2);
1908     path.lineTo(3, 3);
1909     path.close();
1910     testSimplify(reporter, path, filename);
1911 }
1912 
testQuadralateral5x(skiatest::Reporter * reporter,const char * filename)1913 static void testQuadralateral5x(skiatest::Reporter* reporter, const char* filename) {
1914     SkPath path;
1915     path.setFillType(SkPathFillType::kEvenOdd);
1916     path.moveTo(0, 0);
1917     path.lineTo(0, 0);
1918     path.lineTo(1, 0);
1919     path.lineTo(1, 1);
1920     path.close();
1921     path.moveTo(0, 0);
1922     path.lineTo(2, 2);
1923     path.lineTo(3, 2);
1924     path.lineTo(3, 3);
1925     path.close();
1926     testSimplify(reporter, path, filename);
1927 }
1928 
testQuadralateral6(skiatest::Reporter * reporter,const char * filename)1929 static void testQuadralateral6(skiatest::Reporter* reporter, const char* filename) {
1930     SkPath path;
1931     path.moveTo(0, 0);
1932     path.lineTo(0, 0);
1933     path.lineTo(1, 0);
1934     path.lineTo(1, 1);
1935     path.close();
1936     path.moveTo(1, 0);
1937     path.lineTo(2, 0);
1938     path.lineTo(0, 2);
1939     path.lineTo(2, 2);
1940     path.close();
1941     testSimplify(reporter, path, filename);
1942 }
1943 
testQuadralateral6x(skiatest::Reporter * reporter,const char * filename)1944 static void testQuadralateral6x(skiatest::Reporter* reporter, const char* filename) {
1945     SkPath path;
1946     path.setFillType(SkPathFillType::kEvenOdd);
1947     path.moveTo(0, 0);
1948     path.lineTo(0, 0);
1949     path.lineTo(1, 0);
1950     path.lineTo(1, 1);
1951     path.close();
1952     path.moveTo(1, 0);
1953     path.lineTo(2, 0);
1954     path.lineTo(0, 2);
1955     path.lineTo(2, 2);
1956     path.close();
1957     testSimplify(reporter, path, filename);
1958 }
1959 
testFauxQuadralateral6(skiatest::Reporter * reporter,const char * filename)1960 static void testFauxQuadralateral6(skiatest::Reporter* reporter, const char* filename) {
1961     SkPath path;
1962     path.moveTo(0, 0);
1963     path.lineTo(1, 0);
1964     path.lineTo(1, 1);
1965     path.close();
1966     path.moveTo(1, 0);
1967     path.lineTo(2, 0);
1968     path.lineTo(1 + 1.0f/3, 2.0f/3);
1969     path.close();
1970     path.moveTo(1 + 1.0f/3, 2.0f/3);
1971     path.lineTo(0, 2);
1972     path.lineTo(2, 2);
1973     path.close();
1974     testSimplify(reporter, path, filename);
1975 }
1976 
testFauxQuadralateral6x(skiatest::Reporter * reporter,const char * filename)1977 static void testFauxQuadralateral6x(skiatest::Reporter* reporter, const char* filename) {
1978     SkPath path;
1979     path.setFillType(SkPathFillType::kEvenOdd);
1980     path.moveTo(0, 0);
1981     path.lineTo(1, 0);
1982     path.lineTo(1, 1);
1983     path.close();
1984     path.moveTo(1, 0);
1985     path.lineTo(2, 0);
1986     path.lineTo(1 + 1.0f/3, 2.0f/3);
1987     path.close();
1988     path.moveTo(1 + 1.0f/3, 2.0f/3);
1989     path.lineTo(0, 2);
1990     path.lineTo(2, 2);
1991     path.close();
1992     testSimplify(reporter, path, filename);
1993 }
1994 
testFauxQuadralateral6a(skiatest::Reporter * reporter,const char * filename)1995 static void testFauxQuadralateral6a(skiatest::Reporter* reporter, const char* filename) {
1996     SkPath path;
1997     path.moveTo(0, 0);
1998     path.lineTo(3, 0);
1999     path.lineTo(3, 3);
2000     path.close();
2001     path.moveTo(3, 0);
2002     path.lineTo(6, 0);
2003     path.lineTo(4, 2);
2004     path.close();
2005     path.moveTo(4, 2);
2006     path.lineTo(0, 6);
2007     path.lineTo(6, 6);
2008     path.close();
2009     testSimplify(reporter, path, filename);
2010 }
2011 
testFauxQuadralateral6ax(skiatest::Reporter * reporter,const char * filename)2012 static void testFauxQuadralateral6ax(skiatest::Reporter* reporter, const char* filename) {
2013     SkPath path;
2014     path.setFillType(SkPathFillType::kEvenOdd);
2015     path.moveTo(0, 0);
2016     path.lineTo(3, 0);
2017     path.lineTo(3, 3);
2018     path.close();
2019     path.moveTo(3, 0);
2020     path.lineTo(6, 0);
2021     path.lineTo(4, 2);
2022     path.close();
2023     path.moveTo(4, 2);
2024     path.lineTo(0, 6);
2025     path.lineTo(6, 6);
2026     path.close();
2027     testSimplify(reporter, path, filename);
2028 }
2029 
testFauxQuadralateral6b(skiatest::Reporter * reporter,const char * filename)2030 static void testFauxQuadralateral6b(skiatest::Reporter* reporter, const char* filename) {
2031     SkPath path;
2032     path.moveTo(0, 0);
2033     path.lineTo(3, 0);
2034     path.lineTo(3, 3);
2035     path.close();
2036     path.moveTo(3, 0);
2037     path.lineTo(6, 0);
2038     path.lineTo(4, 2);
2039     path.close();
2040     path.moveTo(4, 2);
2041     path.lineTo(6, 6);
2042     path.lineTo(0, 6);
2043     path.close();
2044     testSimplify(reporter, path, filename);
2045 }
2046 
testFauxQuadralateral6bx(skiatest::Reporter * reporter,const char * filename)2047 static void testFauxQuadralateral6bx(skiatest::Reporter* reporter, const char* filename) {
2048     SkPath path;
2049     path.setFillType(SkPathFillType::kEvenOdd);
2050     path.moveTo(0, 0);
2051     path.lineTo(3, 0);
2052     path.lineTo(3, 3);
2053     path.close();
2054     path.moveTo(3, 0);
2055     path.lineTo(6, 0);
2056     path.lineTo(4, 2);
2057     path.close();
2058     path.moveTo(4, 2);
2059     path.lineTo(6, 6);
2060     path.lineTo(0, 6);
2061     path.close();
2062     testSimplify(reporter, path, filename);
2063 }
2064 
testFauxQuadralateral6c(skiatest::Reporter * reporter,const char * filename)2065 static void testFauxQuadralateral6c(skiatest::Reporter* reporter, const char* filename) {
2066     SkPath path;
2067     path.moveTo(0, 0);
2068     path.lineTo(3, 3);
2069     path.lineTo(3, 0);
2070     path.close();
2071     path.moveTo(3, 0);
2072     path.lineTo(6, 0);
2073     path.lineTo(4, 2);
2074     path.close();
2075     path.moveTo(4, 2);
2076     path.lineTo(0, 6);
2077     path.lineTo(6, 6);
2078     path.close();
2079     testSimplify(reporter, path, filename);
2080 }
2081 
testFauxQuadralateral6cx(skiatest::Reporter * reporter,const char * filename)2082 static void testFauxQuadralateral6cx(skiatest::Reporter* reporter, const char* filename) {
2083     SkPath path;
2084     path.setFillType(SkPathFillType::kEvenOdd);
2085     path.moveTo(0, 0);
2086     path.lineTo(3, 3);
2087     path.lineTo(3, 0);
2088     path.close();
2089     path.moveTo(3, 0);
2090     path.lineTo(6, 0);
2091     path.lineTo(4, 2);
2092     path.close();
2093     path.moveTo(4, 2);
2094     path.lineTo(0, 6);
2095     path.lineTo(6, 6);
2096     path.close();
2097     testSimplify(reporter, path, filename);
2098 }
2099 
testFauxQuadralateral6d(skiatest::Reporter * reporter,const char * filename)2100 static void testFauxQuadralateral6d(skiatest::Reporter* reporter, const char* filename) {
2101     SkPath path;
2102     path.moveTo(0, 0);
2103     path.lineTo(3, 3);
2104     path.lineTo(3, 0);
2105     path.close();
2106     path.moveTo(3, 0);
2107     path.lineTo(6, 0);
2108     path.lineTo(4, 2);
2109     path.close();
2110     path.moveTo(4, 2);
2111     path.lineTo(6, 6);
2112     path.lineTo(0, 6);
2113     path.close();
2114     testSimplify(reporter, path, filename);
2115 }
2116 
testFauxQuadralateral6dx(skiatest::Reporter * reporter,const char * filename)2117 static void testFauxQuadralateral6dx(skiatest::Reporter* reporter, const char* filename) {
2118     SkPath path;
2119     path.setFillType(SkPathFillType::kEvenOdd);
2120     path.moveTo(0, 0);
2121     path.lineTo(3, 3);
2122     path.lineTo(3, 0);
2123     path.close();
2124     path.moveTo(3, 0);
2125     path.lineTo(6, 0);
2126     path.lineTo(4, 2);
2127     path.close();
2128     path.moveTo(4, 2);
2129     path.lineTo(6, 6);
2130     path.lineTo(0, 6);
2131     path.close();
2132     testSimplify(reporter, path, filename);
2133 }
2134 
testQuadralateral6a(skiatest::Reporter * reporter,const char * filename)2135 static void testQuadralateral6a(skiatest::Reporter* reporter, const char* filename) {
2136     SkPath path;
2137     path.moveTo(0, 0);
2138     path.lineTo(0, 0);
2139     path.lineTo(3, 0);
2140     path.lineTo(3, 3);
2141     path.close();
2142     path.moveTo(3, 0);
2143     path.lineTo(6, 0);
2144     path.lineTo(0, 6);
2145     path.lineTo(6, 6);
2146     path.close();
2147     testSimplify(reporter, path, filename);
2148 }
2149 
testQuadralateral6ax(skiatest::Reporter * reporter,const char * filename)2150 static void testQuadralateral6ax(skiatest::Reporter* reporter, const char* filename) {
2151     SkPath path;
2152     path.setFillType(SkPathFillType::kEvenOdd);
2153     path.moveTo(0, 0);
2154     path.lineTo(0, 0);
2155     path.lineTo(3, 0);
2156     path.lineTo(3, 3);
2157     path.close();
2158     path.moveTo(3, 0);
2159     path.lineTo(6, 0);
2160     path.lineTo(0, 6);
2161     path.lineTo(6, 6);
2162     path.close();
2163     testSimplify(reporter, path, filename);
2164 }
2165 
testQuadralateral7(skiatest::Reporter * reporter,const char * filename)2166 static void testQuadralateral7(skiatest::Reporter* reporter, const char* filename) {
2167     SkPath path;
2168     path.moveTo(0, 0);
2169     path.lineTo(0, 0);
2170     path.lineTo(1, 0);
2171     path.lineTo(2, 1);
2172     path.close();
2173     path.moveTo(1, 0);
2174     path.lineTo(1, 1);
2175     path.lineTo(2, 2);
2176     path.lineTo(1, 3);
2177     path.close();
2178     testSimplify(reporter, path, filename);
2179 }
2180 
testQuadralateral7x(skiatest::Reporter * reporter,const char * filename)2181 static void testQuadralateral7x(skiatest::Reporter* reporter, const char* filename) {
2182     SkPath path;
2183     path.setFillType(SkPathFillType::kEvenOdd);
2184     path.moveTo(0, 0);
2185     path.lineTo(0, 0);
2186     path.lineTo(1, 0);
2187     path.lineTo(2, 1);
2188     path.close();
2189     path.moveTo(1, 0);
2190     path.lineTo(1, 1);
2191     path.lineTo(2, 2);
2192     path.lineTo(1, 3);
2193     path.close();
2194     testSimplify(reporter, path, filename);
2195 }
2196 
testQuadralateral8(skiatest::Reporter * reporter,const char * filename)2197 static void testQuadralateral8(skiatest::Reporter* reporter, const char* filename) {
2198     SkPath path;
2199     path.moveTo(0, 0);
2200     path.lineTo(3, 1);
2201     path.lineTo(1, 3);
2202     path.lineTo(3, 3);
2203     path.close();
2204     path.moveTo(2, 1);
2205     path.lineTo(0, 2);
2206     path.lineTo(3, 2);
2207     path.lineTo(2, 3);
2208     path.close();
2209     testSimplify(reporter, path, filename);
2210 }
2211 
testQuadralateral8x(skiatest::Reporter * reporter,const char * filename)2212 static void testQuadralateral8x(skiatest::Reporter* reporter, const char* filename) {
2213     SkPath path;
2214     path.setFillType(SkPathFillType::kEvenOdd);
2215     path.moveTo(0, 0);
2216     path.lineTo(3, 1);
2217     path.lineTo(1, 3);
2218     path.lineTo(3, 3);
2219     path.close();
2220     path.moveTo(2, 1);
2221     path.lineTo(0, 2);
2222     path.lineTo(3, 2);
2223     path.lineTo(2, 3);
2224     path.close();
2225     testSimplify(reporter, path, filename);
2226 }
2227 
testQuadralateral9(skiatest::Reporter * reporter,const char * filename)2228 static void testQuadralateral9(skiatest::Reporter* reporter, const char* filename) {
2229     SkPath path;
2230     path.moveTo(0, 0);
2231     path.lineTo(1, 0);
2232     path.lineTo(1, 2);
2233     path.lineTo(2, 2);
2234     path.close();
2235     path.moveTo(1, 1);
2236     path.lineTo(2, 1);
2237     path.lineTo(1, 3);
2238     path.lineTo(2, 3);
2239     path.close();
2240     testSimplify(reporter, path, filename);
2241 }
2242 
testQuadralateral9x(skiatest::Reporter * reporter,const char * filename)2243 static void testQuadralateral9x(skiatest::Reporter* reporter, const char* filename) {
2244     SkPath path;
2245     path.setFillType(SkPathFillType::kEvenOdd);
2246     path.moveTo(0, 0);
2247     path.lineTo(1, 0);
2248     path.lineTo(1, 2);
2249     path.lineTo(2, 2);
2250     path.close();
2251     path.moveTo(1, 1);
2252     path.lineTo(2, 1);
2253     path.lineTo(1, 3);
2254     path.lineTo(2, 3);
2255     path.close();
2256     testSimplify(reporter, path, filename);
2257 }
2258 
testLine1a(skiatest::Reporter * reporter,const char * filename)2259 static void testLine1a(skiatest::Reporter* reporter, const char* filename) {
2260     SkPath path;
2261     path.setFillType(SkPathFillType::kWinding);
2262     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
2263     path.addRect(4, 0, 13, 13, SkPathDirection::kCCW);
2264     testSimplify(reporter, path, filename);
2265 }
2266 
testLine1ax(skiatest::Reporter * reporter,const char * filename)2267 static void testLine1ax(skiatest::Reporter* reporter, const char* filename) {
2268     SkPath path;
2269     path.setFillType(SkPathFillType::kEvenOdd);
2270     path.addRect(0, 0, 12, 12, SkPathDirection::kCW);
2271     path.addRect(4, 0, 13, 13, SkPathDirection::kCCW);
2272     testSimplify(reporter, path, filename);
2273 }
2274 
testLine2ax(skiatest::Reporter * reporter,const char * filename)2275 static void testLine2ax(skiatest::Reporter* reporter, const char* filename) {
2276     SkPath path;
2277     path.setFillType(SkPathFillType::kEvenOdd);
2278     path.addRect(0, 20, 20, 20, SkPathDirection::kCW);
2279     path.addRect(0, 20, 12, 30, SkPathDirection::kCW);
2280     path.addRect(12, 0, 21, 21, SkPathDirection::kCCW);
2281     testSimplify(reporter, path, filename);
2282 }
2283 
testLine3aax(skiatest::Reporter * reporter,const char * filename)2284 static void testLine3aax(skiatest::Reporter* reporter, const char* filename) {
2285     SkPath path;
2286     path.setFillType(SkPathFillType::kEvenOdd);
2287     path.addRect(10, 30, 30, 30, SkPathDirection::kCW);
2288     path.addRect(18, 20, 30, 30, SkPathDirection::kCCW);
2289     path.addRect(0, 32, 9, 36, SkPathDirection::kCCW);
2290     testSimplify(reporter, path, filename);
2291 }
2292 
testLine4ax(skiatest::Reporter * reporter,const char * filename)2293 static void testLine4ax(skiatest::Reporter* reporter, const char* filename) {
2294     SkPath path;
2295     path.setFillType(SkPathFillType::kEvenOdd);
2296     path.addRect(10, 30, 30, 30, SkPathDirection::kCW);
2297     path.addRect(24, 20, 36, 30, SkPathDirection::kCCW);
2298     path.addRect(0, 32, 9, 36, SkPathDirection::kCCW);
2299     testSimplify(reporter, path, filename);
2300 }
2301 
testQuadratic1(skiatest::Reporter * reporter,const char * filename)2302 static void testQuadratic1(skiatest::Reporter* reporter, const char* filename) {
2303     SkPath path;
2304     path.moveTo(0, 0);
2305     path.quadTo(0, 0, 0, 0);
2306     path.lineTo(1, 0);
2307     path.close();
2308     path.moveTo(0, 0);
2309     path.lineTo(0, 0);
2310     path.quadTo(0, 0, 0, 0);
2311     path.close();
2312     testSimplify(reporter, path, filename);
2313 }
2314 
testQuadratic1x(skiatest::Reporter * reporter,const char * filename)2315 static void testQuadratic1x(skiatest::Reporter* reporter, const char* filename) {
2316     SkPath path;
2317     path.setFillType(SkPathFillType::kEvenOdd);
2318     path.moveTo(0, 0);
2319     path.quadTo(0, 0, 0, 0);
2320     path.lineTo(1, 0);
2321     path.close();
2322     path.moveTo(0, 0);
2323     path.lineTo(0, 0);
2324     path.quadTo(0, 0, 0, 0);
2325     path.close();
2326     testSimplify(reporter, path, filename);
2327 }
2328 
testQuadratic2(skiatest::Reporter * reporter,const char * filename)2329 static void testQuadratic2(skiatest::Reporter* reporter, const char* filename) {
2330     SkPath path;
2331     path.moveTo(0, 0);
2332     path.quadTo(0, 0, 0, 0);
2333     path.lineTo(3, 0);
2334     path.close();
2335     path.moveTo(0, 0);
2336     path.lineTo(0, 0);
2337     path.quadTo(1, 0, 0, 1);
2338     path.close();
2339     testSimplify(reporter, path, filename);
2340 }
2341 
testQuadratic2x(skiatest::Reporter * reporter,const char * filename)2342 static void testQuadratic2x(skiatest::Reporter* reporter, const char* filename) {
2343     SkPath path;
2344     path.setFillType(SkPathFillType::kEvenOdd);
2345     path.moveTo(0, 0);
2346     path.quadTo(0, 0, 0, 0);
2347     path.lineTo(3, 0);
2348     path.close();
2349     path.moveTo(0, 0);
2350     path.lineTo(0, 0);
2351     path.quadTo(1, 0, 0, 1);
2352     path.close();
2353     testSimplify(reporter, path, filename);
2354 }
2355 
testQuadratic3(skiatest::Reporter * reporter,const char * filename)2356 static void testQuadratic3(skiatest::Reporter* reporter, const char* filename) {
2357     SkPath path;
2358     path.moveTo(0, 0);
2359     path.quadTo(0, 0, 1, 0);
2360     path.lineTo(0, 2);
2361     path.close();
2362     path.moveTo(0, 0);
2363     path.lineTo(0, 0);
2364     path.quadTo(1, 0, 0, 1);
2365     path.close();
2366     testSimplify(reporter, path, filename);
2367 }
2368 
testQuadratic3x(skiatest::Reporter * reporter,const char * filename)2369 static void testQuadratic3x(skiatest::Reporter* reporter, const char* filename) {
2370     SkPath path;
2371     path.setFillType(SkPathFillType::kEvenOdd);
2372     path.moveTo(0, 0);
2373     path.quadTo(0, 0, 1, 0);
2374     path.lineTo(0, 2);
2375     path.close();
2376     path.moveTo(0, 0);
2377     path.lineTo(0, 0);
2378     path.quadTo(1, 0, 0, 1);
2379     path.close();
2380     testSimplify(reporter, path, filename);
2381 }
2382 
testQuadratic4(skiatest::Reporter * reporter,const char * filename)2383 static void testQuadratic4(skiatest::Reporter* reporter, const char* filename) {
2384     SkPath path;
2385     path.moveTo(0, 0);
2386     path.quadTo(0, 0, 1, 0);
2387     path.lineTo(0, 2);
2388     path.close();
2389     path.moveTo(0, 0);
2390     path.lineTo(0, 0);
2391     path.quadTo(1, 0, 0, 2);
2392     path.close();
2393     testSimplify(reporter, path, filename);
2394 }
2395 
testQuadratic4x(skiatest::Reporter * reporter,const char * filename)2396 static void testQuadratic4x(skiatest::Reporter* reporter, const char* filename) {
2397     SkPath path;
2398     path.setFillType(SkPathFillType::kEvenOdd);
2399     path.moveTo(0, 0);
2400     path.quadTo(0, 0, 1, 0);
2401     path.lineTo(0, 2);
2402     path.close();
2403     path.moveTo(0, 0);
2404     path.lineTo(0, 0);
2405     path.quadTo(1, 0, 0, 2);
2406     path.close();
2407     testSimplify(reporter, path, filename);
2408 }
2409 
testQuadratic5(skiatest::Reporter * reporter,const char * filename)2410 static void testQuadratic5(skiatest::Reporter* reporter, const char* filename) {
2411     SkPath path;
2412     path.moveTo(0, 0);
2413     path.quadTo(0, 0, 0, 0);
2414     path.lineTo(0, 1);
2415     path.close();
2416     path.moveTo(0, 0);
2417     path.lineTo(1, 0);
2418     path.quadTo(0, 1, 0, 2);
2419     path.close();
2420     testSimplify(reporter, path, filename);
2421 }
2422 
testQuadratic6(skiatest::Reporter * reporter,const char * filename)2423 static void testQuadratic6(skiatest::Reporter* reporter, const char* filename) {
2424     SkPath path;
2425     path.moveTo(0, 0);
2426     path.quadTo(0, 0, 1, 0);
2427     path.lineTo(2, 1);
2428     path.close();
2429     path.moveTo(0, 0);
2430     path.lineTo(0, 0);
2431     path.quadTo(2, 0, 0, 1);
2432     path.close();
2433     testSimplify(reporter, path, filename);
2434 }
2435 
testQuadratic7(skiatest::Reporter * reporter,const char * filename)2436 static void testQuadratic7(skiatest::Reporter* reporter, const char* filename) {
2437     SkPath path;
2438     path.moveTo(0, 0);
2439     path.quadTo(0, 0, 1, 0);
2440     path.lineTo(3, 1);
2441     path.close();
2442     path.moveTo(0, 0);
2443     path.lineTo(0, 0);
2444     path.quadTo(3, 0, 1, 2);
2445     path.close();
2446     markTestFlakyForPathKit();
2447     testSimplify(reporter, path, filename);
2448 }
2449 
testQuadratic8(skiatest::Reporter * reporter,const char * filename)2450 static void testQuadratic8(skiatest::Reporter* reporter, const char* filename) {
2451     SkPath path;
2452     path.moveTo(0, 0);
2453     path.quadTo(0, 0, 1, 0);
2454     path.lineTo(0, 2);
2455     path.close();
2456     path.moveTo(0, 0);
2457     path.lineTo(1, 0);
2458     path.quadTo(0, 1, 1, 2);
2459     path.close();
2460     testSimplify(reporter, path, filename);
2461 }
2462 
testQuadratic9(skiatest::Reporter * reporter,const char * filename)2463 static void testQuadratic9(skiatest::Reporter* reporter, const char* filename) {
2464     SkPath path;
2465     path.moveTo(0, 0);
2466     path.quadTo(0, 0, 1, 0);
2467     path.lineTo(3, 1);
2468     path.close();
2469     path.moveTo(0, 0);
2470     path.lineTo(1, 0);
2471     path.quadTo(1, 2, 3, 2);
2472     path.close();
2473     testSimplify(reporter, path, filename);
2474 }
2475 
testQuadratic14(skiatest::Reporter * reporter,const char * filename)2476 static void testQuadratic14(skiatest::Reporter* reporter, const char* filename) {
2477     SkPath path;
2478     path.moveTo(0, 0);
2479     path.quadTo(0, 0, 1, 0);
2480     path.lineTo(3, 2);
2481     path.close();
2482     path.moveTo(0, 0);
2483     path.lineTo(1, 0);
2484     path.quadTo(3, 2, 3, 3);
2485     path.close();
2486     testSimplify(reporter, path, filename);
2487 }
2488 
testQuadratic15(skiatest::Reporter * reporter,const char * filename)2489 static void testQuadratic15(skiatest::Reporter* reporter, const char* filename) {
2490     SkPath path;
2491     path.moveTo(0, 0);
2492     path.quadTo(0, 0, 1, 0);
2493     path.lineTo(1, 3);
2494     path.close();
2495     path.moveTo(1, 0);
2496     path.lineTo(0, 1);
2497     path.quadTo(1, 1, 0, 3);
2498     path.close();
2499     testSimplify(reporter, path, filename);
2500 }
2501 
testQuadratic17x(skiatest::Reporter * reporter,const char * filename)2502 static void testQuadratic17x(skiatest::Reporter* reporter, const char* filename) {
2503     SkPath path;
2504     path.setFillType(SkPathFillType::kEvenOdd);
2505     path.moveTo(0, 0);
2506     path.quadTo(0, 0, 3, 1);
2507     path.lineTo(0, 2);
2508     path.close();
2509     path.moveTo(0, 0);
2510     path.lineTo(1, 0);
2511     path.quadTo(3, 1, 0, 2);
2512     path.close();
2513     testSimplify(reporter, path, filename);
2514 }
2515 
testQuadratic18(skiatest::Reporter * reporter,const char * filename)2516 static void testQuadratic18(skiatest::Reporter* reporter, const char* filename) {
2517     SkPath path;
2518     path.moveTo(0, 0);
2519     path.quadTo(1, 0, 0, 1);
2520     path.lineTo(0, 1);
2521     path.close();
2522     path.moveTo(0, 0);
2523     path.lineTo(0, 0);
2524     path.quadTo(1, 0, 1, 1);
2525     path.close();
2526     testSimplify(reporter, path, filename);
2527 }
2528 
testQuadratic19(skiatest::Reporter * reporter,const char * filename)2529 static void testQuadratic19(skiatest::Reporter* reporter, const char* filename) {
2530     SkPath path;
2531     path.moveTo(0, 0);
2532     path.quadTo(1, 0, 0, 1);
2533     path.lineTo(0, 1);
2534     path.close();
2535     path.moveTo(0, 0);
2536     path.lineTo(0, 0);
2537     path.quadTo(2, 0, 0, 1);
2538     path.close();
2539     testSimplify(reporter, path, filename);
2540 }
2541 
testQuadratic20(skiatest::Reporter * reporter,const char * filename)2542 static void testQuadratic20(skiatest::Reporter* reporter, const char* filename) {
2543     SkPath path;
2544     path.moveTo(0, 0);
2545     path.quadTo(1, 0, 0, 1);
2546     path.lineTo(0, 1);
2547     path.close();
2548     path.moveTo(0, 0);
2549     path.lineTo(0, 0);
2550     path.quadTo(1, 0, 0, 1);
2551     path.close();
2552     testSimplify(reporter, path, filename);
2553 }
2554 
testQuadratic21(skiatest::Reporter * reporter,const char * filename)2555 static void testQuadratic21(skiatest::Reporter* reporter, const char* filename) {
2556     SkPath path;
2557     path.moveTo(0, 0);
2558     path.quadTo(1, 0, 0, 1);
2559     path.lineTo(0, 1);
2560     path.close();
2561     path.moveTo(0, 0);
2562     path.lineTo(0, 0);
2563     path.quadTo(1, 0, 0, 2);
2564     path.close();
2565     testSimplify(reporter, path, filename);
2566 }
2567 
testQuadratic22(skiatest::Reporter * reporter,const char * filename)2568 static void testQuadratic22(skiatest::Reporter* reporter, const char* filename) {
2569     SkPath path;
2570     path.moveTo(0, 0);
2571     path.quadTo(1, 0, 0, 1);
2572     path.lineTo(0, 1);
2573     path.close();
2574     path.moveTo(0, 0);
2575     path.lineTo(0, 0);
2576     path.quadTo(0, 1, 2, 1);
2577     path.close();
2578     testSimplify(reporter, path, filename);
2579 }
2580 
testQuadratic23(skiatest::Reporter * reporter,const char * filename)2581 static void testQuadratic23(skiatest::Reporter* reporter, const char* filename) {
2582     SkPath path;
2583     path.moveTo(0, 0);
2584     path.quadTo(1, 0, 0, 1);
2585     path.lineTo(0, 1);
2586     path.close();
2587     path.moveTo(0, 0);
2588     path.lineTo(0, 0);
2589     path.quadTo(0, 2, 1, 2);
2590     path.close();
2591     testSimplify(reporter, path, filename);
2592 }
2593 
testQuadratic24(skiatest::Reporter * reporter,const char * filename)2594 static void testQuadratic24(skiatest::Reporter* reporter, const char* filename) {
2595     SkPath path;
2596     path.moveTo(0, 0);
2597     path.quadTo(1, 0, 0, 1);
2598     path.lineTo(0, 1);
2599     path.close();
2600     path.moveTo(0, 0);
2601     path.lineTo(1, 0);
2602     path.quadTo(2, 0, 0, 1);
2603     path.close();
2604     testSimplify(reporter, path, filename);
2605 }
2606 
testQuadratic25(skiatest::Reporter * reporter,const char * filename)2607 static void testQuadratic25(skiatest::Reporter* reporter, const char* filename) {
2608     SkPath path;
2609     path.moveTo(0, 0);
2610     path.quadTo(1, 0, 1, 1);
2611     path.lineTo(1, 1);
2612     path.close();
2613     path.moveTo(0, 0);
2614     path.lineTo(0, 0);
2615     path.quadTo(2, 1, 0, 2);
2616     path.close();
2617     testSimplify(reporter, path, filename);
2618 }
2619 
testQuadratic26(skiatest::Reporter * reporter,const char * filename)2620 static void testQuadratic26(skiatest::Reporter* reporter, const char* filename) {
2621     SkPath path;
2622     path.moveTo(0, 0);
2623     path.quadTo(1, 0, 1, 1);
2624     path.lineTo(0, 2);
2625     path.close();
2626     path.moveTo(0, 0);
2627     path.lineTo(0, 0);
2628     path.quadTo(1, 0, 0, 1);
2629     path.close();
2630     testSimplify(reporter, path, filename);
2631 }
2632 
testQuadratic27(skiatest::Reporter * reporter,const char * filename)2633 static void testQuadratic27(skiatest::Reporter* reporter, const char* filename) {
2634     SkPath path;
2635     path.moveTo(0, 0);
2636     path.quadTo(1, 0, 1, 1);
2637     path.lineTo(2, 1);
2638     path.close();
2639     path.moveTo(0, 0);
2640     path.lineTo(0, 0);
2641     path.quadTo(2, 1, 0, 2);
2642     path.close();
2643     testSimplify(reporter, path, filename);
2644 }
2645 
testQuadratic28(skiatest::Reporter * reporter,const char * filename)2646 static void testQuadratic28(skiatest::Reporter* reporter, const char* filename) {
2647     SkPath path;
2648     path.moveTo(0, 0);
2649     path.quadTo(1, 0, 0, 1);
2650     path.lineTo(0, 1);
2651     path.close();
2652     path.moveTo(0, 0);
2653     path.lineTo(0, 2);
2654     path.quadTo(1, 2, 0, 3);
2655     path.close();
2656     testSimplify(reporter, path, filename);
2657 }
2658 
testQuadratic29(skiatest::Reporter * reporter,const char * filename)2659 static void testQuadratic29(skiatest::Reporter* reporter, const char* filename) {
2660     SkPath path;
2661     path.moveTo(0, 0);
2662     path.quadTo(1, 0, 2, 1);
2663     path.lineTo(0, 2);
2664     path.close();
2665     path.moveTo(0, 0);
2666     path.lineTo(0, 0);
2667     path.quadTo(1, 0, 0, 1);
2668     path.close();
2669     testSimplify(reporter, path, filename);
2670 }
2671 
testQuadratic30(skiatest::Reporter * reporter,const char * filename)2672 static void testQuadratic30(skiatest::Reporter* reporter, const char* filename) {
2673     SkPath path;
2674     path.moveTo(0, 0);
2675     path.quadTo(1, 0, 1, 2);
2676     path.lineTo(1, 2);
2677     path.close();
2678     path.moveTo(0, 0);
2679     path.lineTo(1, 0);
2680     path.quadTo(0, 1, 1, 2);
2681     path.close();
2682     testSimplify(reporter, path, filename);
2683 }
2684 
testQuadratic31(skiatest::Reporter * reporter,const char * filename)2685 static void testQuadratic31(skiatest::Reporter* reporter, const char* filename) {
2686     SkPath path;
2687     path.moveTo(0, 0);
2688     path.quadTo(1, 0, 1, 2);
2689     path.lineTo(1, 2);
2690     path.close();
2691     path.moveTo(0, 0);
2692     path.lineTo(1, 0);
2693     path.quadTo(0, 1, 1, 3);
2694     path.close();
2695     testSimplify(reporter, path, filename);
2696 }
2697 
testQuadratic32(skiatest::Reporter * reporter,const char * filename)2698 static void testQuadratic32(skiatest::Reporter* reporter, const char* filename) {
2699     SkPath path;
2700     path.moveTo(0, 0);
2701     path.quadTo(1, 0, 2, 3);
2702     path.lineTo(2, 3);
2703     path.close();
2704     path.moveTo(0, 0);
2705     path.lineTo(0, 0);
2706     path.quadTo(3, 1, 0, 2);
2707     path.close();
2708     testSimplify(reporter, path, filename);
2709 }
2710 
testQuadratic33(skiatest::Reporter * reporter,const char * filename)2711 static void testQuadratic33(skiatest::Reporter* reporter, const char* filename) {
2712     SkPath path;
2713     path.moveTo(0, 0);
2714     path.quadTo(2, 0, 0, 1);
2715     path.lineTo(0, 1);
2716     path.close();
2717     path.moveTo(0, 0);
2718     path.lineTo(1, 1);
2719     path.quadTo(2, 1, 2, 2);
2720     path.close();
2721     testSimplify(reporter, path, filename);
2722 }
2723 
testQuadratic34(skiatest::Reporter * reporter,const char * filename)2724 static void testQuadratic34(skiatest::Reporter* reporter, const char* filename) {
2725     SkPath path;
2726     path.moveTo(0, 0);
2727     path.quadTo(2, 0, 0, 1);
2728     path.lineTo(0, 1);
2729     path.close();
2730     path.moveTo(1, 0);
2731     path.lineTo(1, 1);
2732     path.quadTo(2, 1, 1, 2);
2733     path.close();
2734     markTestFlakyForPathKit();
2735     testSimplify(reporter, path, filename);
2736 }
2737 
testQuadratic35(skiatest::Reporter * reporter,const char * filename)2738 static void testQuadratic35(skiatest::Reporter* reporter, const char* filename) {
2739     SkPath path;
2740     path.moveTo(0, 0);
2741     path.quadTo(0, 1, 1, 1);
2742     path.lineTo(1, 3);
2743     path.close();
2744     path.moveTo(2, 0);
2745     path.lineTo(3, 0);
2746     path.quadTo(0, 1, 1, 1);
2747     path.close();
2748     testSimplify(reporter, path, filename);
2749 }
2750 
testQuadratic36(skiatest::Reporter * reporter,const char * filename)2751 static void testQuadratic36(skiatest::Reporter* reporter, const char* filename) {
2752     SkPath path;
2753     path.moveTo(0, 0);
2754     path.quadTo(2, 1, 2, 3);
2755     path.lineTo(2, 3);
2756     path.close();
2757     path.moveTo(3, 1);
2758     path.lineTo(1, 2);
2759     path.quadTo(3, 2, 1, 3);
2760     path.close();
2761     testSimplify(reporter, path, filename);
2762 }
2763 
testQuadratic37(skiatest::Reporter * reporter,const char * filename)2764 static void testQuadratic37(skiatest::Reporter* reporter, const char* filename) {
2765     SkPath path;
2766     path.moveTo(0, 0);
2767     path.quadTo(0, 2, 1, 2);
2768     path.lineTo(1, 2);
2769     path.close();
2770     path.moveTo(0, 0);
2771     path.lineTo(3, 1);
2772     path.quadTo(0, 2, 1, 2);
2773     path.close();
2774     testSimplify(reporter, path, filename);
2775 }
2776 
testQuadratic38(skiatest::Reporter * reporter,const char * filename)2777 static void testQuadratic38(skiatest::Reporter* reporter, const char* filename) {
2778     SkPath path;
2779     path.moveTo(1, 0);
2780     path.quadTo(0, 1, 1, 1);
2781     path.lineTo(1, 1);
2782     path.close();
2783     path.moveTo(1, 0);
2784     path.lineTo(1, 2);
2785     path.quadTo(2, 2, 1, 3);
2786     path.close();
2787     testSimplify(reporter, path, filename);
2788 }
2789 
testQuadratic51(skiatest::Reporter * reporter,const char * filename)2790 static void testQuadratic51(skiatest::Reporter* reporter, const char* filename) {
2791     SkPath path;
2792     path.moveTo(369.863983f, 145.645813f);
2793     path.quadTo(382.380371f, 121.254936f, 406.236359f, 121.254936f);
2794     path.lineTo(369.863983f, 145.645813f);
2795     path.close();
2796     path.moveTo(369.970581f, 137.94342f);
2797     path.quadTo(383.98465f, 121.254936f, 406.235992f, 121.254936f);
2798     path.lineTo(369.970581f, 137.94342f);
2799     path.close();
2800     testSimplify(reporter, path, filename);
2801 }
2802 
testQuadratic53(skiatest::Reporter * reporter,const char * filename)2803 static void testQuadratic53(skiatest::Reporter* reporter, const char* filename) {
2804     SkPath path;
2805     path.moveTo(303.12088f, 141.299606f);
2806     path.lineTo(330.463562f, 217.659027f);
2807     path.lineTo(303.12088f, 141.299606f);
2808     path.close();
2809     path.moveTo(371.919067f, 205.854996f);
2810     path.lineTo(326.236786f, 205.854996f);
2811     path.quadTo(329.104431f, 231.663818f, 351.512085f, 231.663818f);
2812     path.lineTo(371.919067f, 205.854996f);
2813     path.close();
2814     testSimplify(reporter, path, filename);
2815 }
2816 
testQuadratic55(skiatest::Reporter * reporter,const char * filename)2817 static void testQuadratic55(skiatest::Reporter* reporter, const char* filename) {
2818     SkPath path;
2819 path.moveTo(303.12088f, 141.299606f);
2820 path.lineTo(330.463562f, 217.659027f);
2821 path.lineTo(358.606506f, 141.299606f);
2822 path.lineTo(303.12088f, 141.299606f);
2823 path.close();
2824 path.moveTo(326.236786f, 205.854996f);
2825 path.quadTo(329.104431f, 231.663818f, 351.512085f, 231.663818f);
2826 path.lineTo(326.236786f, 205.854996f);
2827 path.close();
2828     testSimplify(reporter, path, filename);
2829 }
2830 
testQuadratic56(skiatest::Reporter * reporter,const char * filename)2831 static void testQuadratic56(skiatest::Reporter* reporter, const char* filename) {
2832     SkPath path;
2833 path.moveTo(366.608826f, 151.196014f);
2834 path.quadTo(378.803101f, 136.674606f, 398.164948f, 136.674606f);
2835 path.lineTo(354.009216f, 208.816208f);
2836 path.lineTo(393.291473f, 102.232819f);
2837 path.lineTo(359.978058f, 136.581512f);
2838 path.quadTo(378.315979f, 136.581512f, 388.322723f, 149.613556f);
2839 path.lineTo(364.390686f, 157.898193f);
2840 path.quadTo(375.281769f, 136.674606f, 396.039917f, 136.674606f);
2841 path.lineTo(350, 120);
2842 path.lineTo(366.608826f, 151.196014f);
2843 path.close();
2844     testSimplify(reporter, path, filename);
2845 }
2846 
testLine80(skiatest::Reporter * reporter,const char * filename)2847 static void testLine80(skiatest::Reporter* reporter, const char* filename) {
2848     SkPath path;
2849 path.moveTo(4, 0);
2850 path.lineTo(3, 7);
2851 path.lineTo(7, 5);
2852 path.lineTo(2, 2);
2853 path.close();
2854 path.moveTo(0, 6);
2855 path.lineTo(6, 12);
2856 path.lineTo(8, 3);
2857 path.close();
2858     testSimplify(reporter, path, filename);
2859 }
2860 
testQuadratic58(skiatest::Reporter * reporter,const char * filename)2861 static void testQuadratic58(skiatest::Reporter* reporter, const char* filename) {
2862     SkPath path;
2863     path.moveTo(283.714233f, 240);
2864     path.lineTo(283.714233f, 141.299606f);
2865     path.lineTo(303.12088f, 141.299606f);
2866     path.lineTo(330.463562f, 217.659027f);
2867     path.lineTo(358.606506f, 141.299606f);
2868     path.lineTo(362.874634f, 159.705902f);
2869     path.lineTo(335.665344f, 233.397751f);
2870     path.lineTo(322.12738f, 233.397751f);
2871     path.lineTo(295.718353f, 159.505829f);
2872     path.lineTo(295.718353f, 240);
2873     path.lineTo(283.714233f, 240);
2874     path.close();
2875     path.moveTo(322.935669f, 231.030273f);
2876     path.quadTo(312.832214f, 220.393295f, 312.832214f, 203.454178f);
2877     path.quadTo(312.832214f, 186.981888f, 321.73526f, 176.444946f);
2878     path.quadTo(330.638306f, 165.90802f, 344.509705f, 165.90802f);
2879     path.quadTo(357.647522f, 165.90802f, 364.81665f, 175.244537f);
2880     path.lineTo(371.919067f, 205.854996f);
2881     path.lineTo(326.236786f, 205.854996f);
2882     path.quadTo(329.104431f, 231.663818f, 351.512085f, 231.663818f);
2883     path.lineTo(322.935669f, 231.030273f);
2884     path.close();
2885     path.moveTo(326.837006f, 195.984955f);
2886     path.lineTo(358.78125f, 195.984955f);
2887     path.quadTo(358.78125f, 175.778046f, 343.709442f, 175.778046f);
2888     path.quadTo(328.570923f, 175.778046f, 326.837006f, 195.984955f);
2889     path.close();
2890     testSimplify(reporter, path, filename);
2891 }
2892 
testQuadratic59x(skiatest::Reporter * reporter,const char * filename)2893 static void testQuadratic59x(skiatest::Reporter* reporter, const char* filename) {
2894     SkPath path;
2895     path.setFillType(SkPathFillType::kEvenOdd);
2896     path.moveTo(0, 0);
2897     path.quadTo(0, 0, 0, 0);
2898     path.lineTo(2, 2);
2899     path.close();
2900     path.moveTo(0, 0);
2901     path.lineTo(2, 0);
2902     path.quadTo(3, 1, 1, 2);
2903     path.close();
2904     testSimplify(reporter, path, filename);
2905 }
2906 
testQuadratic59(skiatest::Reporter * reporter,const char * filename)2907 static void testQuadratic59(skiatest::Reporter* reporter, const char* filename) {
2908     SkPath path;
2909     path.setFillType(SkPathFillType::kWinding);
2910     path.moveTo(0, 0);
2911     path.quadTo(0, 0, 0, 0);
2912     path.lineTo(2, 2);
2913     path.close();
2914     path.moveTo(0, 0);
2915     path.lineTo(2, 0);
2916     path.quadTo(3, 1, 1, 2);
2917     path.close();
2918     testSimplify(reporter, path, filename);
2919 }
2920 
testQuadratic63(skiatest::Reporter * reporter,const char * filename)2921 static void testQuadratic63(skiatest::Reporter* reporter, const char* filename) {
2922     SkPath path;
2923     path.moveTo(0, 0);
2924     path.quadTo(0, 0, 0, 0);
2925     path.lineTo(3, 2);
2926     path.close();
2927     path.moveTo(1, 0);
2928     path.lineTo(2, 1);
2929     path.quadTo(2, 1, 2, 2);
2930     path.close();
2931     testSimplify(reporter, path, filename);
2932 }
2933 
testQuadratic64(skiatest::Reporter * reporter,const char * filename)2934 static void testQuadratic64(skiatest::Reporter* reporter, const char* filename) {
2935     SkPath path;
2936     path.moveTo(0, 0);
2937     path.quadTo(0, 0, 0, 0);
2938     path.lineTo(2, 3);
2939     path.close();
2940     path.moveTo(1, 2);
2941     path.lineTo(2, 2);
2942     path.quadTo(0, 3, 3, 3);
2943     path.close();
2944     testSimplify(reporter, path, filename);
2945 }
2946 
testQuadratic65(skiatest::Reporter * reporter,const char * filename)2947 static void testQuadratic65(skiatest::Reporter* reporter, const char* filename) {
2948     SkPath path;
2949     path.moveTo(0, 0);
2950     path.quadTo(0, 0, 0, 0);
2951     path.lineTo(3, 2);
2952     path.close();
2953     path.moveTo(2, 1);
2954     path.lineTo(2, 2);
2955     path.quadTo(0, 3, 1, 3);
2956     path.close();
2957     testSimplify(reporter, path, filename);
2958 }
2959 
testQuadratic67x(skiatest::Reporter * reporter,const char * filename)2960 static void testQuadratic67x(skiatest::Reporter* reporter, const char* filename) {
2961     SkPath path;
2962     path.setFillType(SkPathFillType::kEvenOdd);
2963     path.moveTo(0, 0);
2964     path.quadTo(0, 0, 2, 1);
2965     path.lineTo(2, 2);
2966     path.close();
2967     path.moveTo(0, 0);
2968     path.lineTo(2, 0);
2969     path.quadTo(1, 1, 3, 2);
2970     path.close();
2971     testSimplify(reporter, path, filename);
2972 }
2973 
testQuadratic68(skiatest::Reporter * reporter,const char * filename)2974 static void testQuadratic68(skiatest::Reporter* reporter, const char* filename) {
2975     SkPath path;
2976     path.moveTo(0, 0);
2977     path.quadTo(1, 0, 0, 1);
2978     path.lineTo(1, 2);
2979     path.close();
2980     path.moveTo(0, 0);
2981     path.lineTo(0, 0);
2982     path.quadTo(0, 1, 2, 1);
2983     path.close();
2984     testSimplify(reporter, path, filename);
2985 }
2986 
testQuadratic69(skiatest::Reporter * reporter,const char * filename)2987 static void testQuadratic69(skiatest::Reporter* reporter, const char* filename) {
2988     SkPath path;
2989     path.moveTo(0, 0);
2990     path.quadTo(0, 0, 0, 1);
2991     path.lineTo(3, 2);
2992     path.close();
2993     path.moveTo(2, 0);
2994     path.lineTo(1, 1);
2995     path.quadTo(3, 2, 2, 3);
2996     path.close();
2997     markTestFlakyForPathKit();
2998     testSimplify(reporter, path, filename);
2999 }
3000 
testQuadratic70x(skiatest::Reporter * reporter,const char * filename)3001 static void testQuadratic70x(skiatest::Reporter* reporter, const char* filename) {
3002     SkPath path;
3003     path.setFillType(SkPathFillType::kEvenOdd);
3004     path.moveTo(0, 0);
3005     path.quadTo(1, 0, 0, 1);
3006     path.lineTo(1, 2);
3007     path.close();
3008     path.moveTo(0, 0);
3009     path.lineTo(0, 0);
3010     path.quadTo(0, 1, 2, 1);
3011     path.close();
3012     testSimplify(reporter, path, filename);
3013 }
3014 
testQuadratic71(skiatest::Reporter * reporter,const char * filename)3015 static void testQuadratic71(skiatest::Reporter* reporter, const char* filename) {
3016     SkPath path;
3017     path.moveTo(0, 0);
3018     path.quadTo(1, 0, 1, 1);
3019     path.lineTo(3, 2);
3020     path.close();
3021     path.moveTo(0, 0);
3022     path.lineTo(0, 0);
3023     path.quadTo(1, 1, 3, 1);
3024     path.close();
3025     testSimplify(reporter, path, filename);
3026 }
3027 
testQuadratic72(skiatest::Reporter * reporter,const char * filename)3028 static void testQuadratic72(skiatest::Reporter* reporter, const char* filename) {
3029     SkPath path;
3030     path.moveTo(0, 0);
3031     path.quadTo(1, 0, 1, 2);
3032     path.lineTo(1, 2);
3033     path.close();
3034     path.moveTo(0, 0);
3035     path.lineTo(1, 0);
3036     path.quadTo(0, 1, 3, 2);
3037     path.close();
3038     testSimplify(reporter, path, filename);
3039 }
3040 
testQuadratic73(skiatest::Reporter * reporter,const char * filename)3041 static void testQuadratic73(skiatest::Reporter* reporter, const char* filename) {
3042     SkPath path;
3043     path.moveTo(0, 0);
3044     path.quadTo(1, 0, 0, 3);
3045     path.lineTo(0, 3);
3046     path.close();
3047     path.moveTo(0, 0);
3048     path.lineTo(1, 0);
3049     path.quadTo(0, 1, 1, 1);
3050     path.close();
3051     testSimplify(reporter, path, filename);
3052 }
3053 
testQuadratic74(skiatest::Reporter * reporter,const char * filename)3054 static void testQuadratic74(skiatest::Reporter* reporter, const char* filename) {
3055     SkPath path;
3056     path.moveTo(0, 0);
3057     path.quadTo(1, 0, 1, 3);
3058     path.lineTo(1, 3);
3059     path.close();
3060     path.moveTo(0, 0);
3061     path.lineTo(0, 1);
3062     path.quadTo(3, 2, 2, 3);
3063     path.close();
3064     testSimplify(reporter, path, filename);
3065 }
3066 
testQuadratic75(skiatest::Reporter * reporter,const char * filename)3067 static void testQuadratic75(skiatest::Reporter* reporter, const char* filename) {
3068     SkPath path;
3069     path.moveTo(0, 0);
3070     path.quadTo(1, 0, 1, 3);
3071     path.lineTo(2, 3);
3072     path.close();
3073     path.moveTo(0, 0);
3074     path.lineTo(0, 1);
3075     path.quadTo(3, 2, 2, 3);
3076     path.close();
3077     testSimplify(reporter, path, filename);
3078 }
3079 
testQuadratic76(skiatest::Reporter * reporter,const char * filename)3080 static void testQuadratic76(skiatest::Reporter* reporter, const char* filename) {
3081     SkPath path;
3082     path.moveTo(0, 0);
3083     path.quadTo(0, 0, 0, 0);
3084     path.lineTo(2, 3);
3085     path.close();
3086     path.moveTo(1, 0);
3087     path.lineTo(1, 2);
3088     path.quadTo(1, 2, 2, 2);
3089     path.close();
3090     testSimplify(reporter, path, filename);
3091 }
3092 
testQuadratic77(skiatest::Reporter * reporter,const char * filename)3093 static void testQuadratic77(skiatest::Reporter* reporter, const char* filename) {
3094     SkPath path;
3095     path.moveTo(0, 0);
3096     path.quadTo(1, 0, 1, 1);
3097     path.lineTo(3, 1);
3098     path.close();
3099     path.moveTo(0, 0);
3100     path.lineTo(1, 0);
3101     path.quadTo(0, 1, 3, 2);
3102     path.close();
3103     testSimplify(reporter, path, filename);
3104 }
3105 
testQuadratic78(skiatest::Reporter * reporter,const char * filename)3106 static void testQuadratic78(skiatest::Reporter* reporter, const char* filename) {
3107     SkPath path;
3108     path.moveTo(0, 0);
3109     path.quadTo(1, 0, 1, 2);
3110     path.lineTo(3, 2);
3111     path.close();
3112     path.moveTo(0, 0);
3113     path.lineTo(0, 0);
3114     path.quadTo(2, 1, 0, 2);
3115     path.close();
3116     testSimplify(reporter, path, filename);
3117 }
3118 
testQuadratic79(skiatest::Reporter * reporter,const char * filename)3119 static void testQuadratic79(skiatest::Reporter* reporter, const char* filename) {
3120     SkPath path;
3121     path.moveTo(0, 0);
3122     path.quadTo(1, 0, 1, 2);
3123     path.lineTo(3, 2);
3124     path.close();
3125     path.moveTo(0, 0);
3126     path.lineTo(1, 0);
3127     path.quadTo(0, 1, 3, 2);
3128     path.close();
3129     testSimplify(reporter, path, filename);
3130 }
3131 
testEight1(skiatest::Reporter * reporter,const char * filename)3132 static void testEight1(skiatest::Reporter* reporter, const char* filename) {
3133     SkPath path;
3134     path.moveTo(0, 0);
3135     path.lineTo(2, 2);
3136     path.lineTo(0, 2);
3137     path.lineTo(2, 0);
3138     path.close();
3139     testSimplify(reporter, path, filename);
3140 }
3141 
testEight2(skiatest::Reporter * reporter,const char * filename)3142 static void testEight2(skiatest::Reporter* reporter, const char* filename) {
3143     SkPath path;
3144     path.moveTo(0, 0);
3145     path.lineTo(2, 0);
3146     path.lineTo(0, 2);
3147     path.lineTo(2, 2);
3148     path.close();
3149     testSimplify(reporter, path, filename);
3150 }
3151 
testEight3(skiatest::Reporter * reporter,const char * filename)3152 static void testEight3(skiatest::Reporter* reporter, const char* filename) {
3153     SkPath path;
3154     path.moveTo(0, 0);
3155     path.lineTo(0, 2);
3156     path.lineTo(2, 0);
3157     path.lineTo(2, 2);
3158     path.close();
3159     testSimplify(reporter, path, filename);
3160 }
3161 
testEight4(skiatest::Reporter * reporter,const char * filename)3162 static void testEight4(skiatest::Reporter* reporter, const char* filename) {
3163     SkPath path;
3164     path.moveTo(0, 0);
3165     path.lineTo(2, 2);
3166     path.lineTo(2, 0);
3167     path.lineTo(0, 2);
3168     path.close();
3169     testSimplify(reporter, path, filename);
3170 }
3171 
testEight5(skiatest::Reporter * reporter,const char * filename)3172 static void testEight5(skiatest::Reporter* reporter, const char* filename) {
3173     SkPath path;
3174     path.moveTo(1, 0);
3175     path.lineTo(1, 2);
3176     path.lineTo(0, 2);
3177     path.lineTo(2, 0);
3178     path.close();
3179     testSimplify(reporter, path, filename);
3180 }
3181 
testEight6(skiatest::Reporter * reporter,const char * filename)3182 static void testEight6(skiatest::Reporter* reporter, const char* filename) {
3183     SkPath path;
3184     path.moveTo(1, 0);
3185     path.lineTo(2, 0);
3186     path.lineTo(0, 2);
3187     path.lineTo(1, 2);
3188     path.close();
3189     testSimplify(reporter, path, filename);
3190 }
3191 
testEight7(skiatest::Reporter * reporter,const char * filename)3192 static void testEight7(skiatest::Reporter* reporter, const char* filename) {
3193     SkPath path;
3194     path.moveTo(0, 0);
3195     path.lineTo(0, 1);
3196     path.lineTo(2, 1);
3197     path.lineTo(2, 2);
3198     path.close();
3199     testSimplify(reporter, path, filename);
3200 }
3201 
testEight8(skiatest::Reporter * reporter,const char * filename)3202 static void testEight8(skiatest::Reporter* reporter, const char* filename) {
3203     SkPath path;
3204     path.moveTo(0, 0);
3205     path.lineTo(2, 2);
3206     path.lineTo(2, 1);
3207     path.lineTo(0, 1);
3208     path.close();
3209     testSimplify(reporter, path, filename);
3210 }
3211 
testEight9(skiatest::Reporter * reporter,const char * filename)3212 static void testEight9(skiatest::Reporter* reporter, const char* filename) {
3213     SkPath path;
3214     path.moveTo(1, 0);
3215     path.lineTo(1, 2);
3216     path.lineTo(2, 1);
3217     path.lineTo(0, 1);
3218     path.close();
3219     testSimplify(reporter, path, filename);
3220 }
3221 
testEight10(skiatest::Reporter * reporter,const char * filename)3222 static void testEight10(skiatest::Reporter* reporter, const char* filename) {
3223     SkPath path;
3224     path.moveTo(1, 0);
3225     path.lineTo(0, 1);
3226     path.lineTo(2, 1);
3227     path.lineTo(1, 2);
3228     path.close();
3229     testSimplify(reporter, path, filename);
3230 }
3231 
testQuadratic80(skiatest::Reporter * reporter,const char * filename)3232 static void testQuadratic80(skiatest::Reporter* reporter, const char* filename) {
3233     SkPath path;
3234     path.moveTo(0, 0);
3235     path.quadTo(1, 0, 2, 3);
3236     path.lineTo(2, 3);
3237     path.close();
3238     path.moveTo(1, 0);
3239     path.lineTo(3, 0);
3240     path.quadTo(0, 1, 1, 1);
3241     path.close();
3242     testSimplify(reporter, path, filename);
3243 }
3244 
testQuadratic81(skiatest::Reporter * reporter,const char * filename)3245 static void testQuadratic81(skiatest::Reporter* reporter, const char* filename) {
3246     SkPath path;
3247     path.moveTo(0, 0);
3248     path.quadTo(2, 0, 1, 1);
3249     path.lineTo(1, 1);
3250     path.close();
3251     path.moveTo(0, 0);
3252     path.lineTo(0, 0);
3253     path.quadTo(2, 1, 0, 2);
3254     path.close();
3255     testSimplify(reporter, path, filename);
3256 }
3257 
testQuadratic82(skiatest::Reporter * reporter,const char * filename)3258 static void testQuadratic82(skiatest::Reporter* reporter, const char* filename) {
3259     SkPath path;
3260     path.moveTo(0, 0);
3261     path.quadTo(2, 0, 1, 1);
3262     path.lineTo(0, 3);
3263     path.close();
3264     path.moveTo(0, 0);
3265     path.lineTo(0, 0);
3266     path.quadTo(2, 1, 0, 2);
3267     path.close();
3268     testSimplify(reporter, path, filename);
3269 }
3270 
testQuadratic83(skiatest::Reporter * reporter,const char * filename)3271 static void testQuadratic83(skiatest::Reporter* reporter, const char* filename) {
3272     SkPath path;
3273     path.moveTo(0, 0);
3274     path.quadTo(0, 0, 2, 0);
3275     path.lineTo(2, 2);
3276     path.close();
3277     path.moveTo(0, 1);
3278     path.lineTo(0, 2);
3279     path.quadTo(2, 2, 1, 3);
3280     path.close();
3281     testSimplify(reporter, path, filename);
3282 }
3283 
testQuadratic84(skiatest::Reporter * reporter,const char * filename)3284 static void testQuadratic84(skiatest::Reporter* reporter, const char* filename) {
3285     SkPath path;
3286     path.moveTo(0, 0);
3287     path.quadTo(2, 0, 1, 1);
3288     path.lineTo(2, 1);
3289     path.close();
3290     path.moveTo(1, 0);
3291     path.lineTo(2, 0);
3292     path.quadTo(0, 1, 2, 2);
3293     path.close();
3294     testSimplify(reporter, path, filename);
3295 }
3296 
testQuadratic85(skiatest::Reporter * reporter,const char * filename)3297 static void testQuadratic85(skiatest::Reporter* reporter, const char* filename) {
3298     SkPath path;
3299     path.moveTo(0, 0);
3300     path.quadTo(3, 0, 1, 1);
3301     path.lineTo(1, 1);
3302     path.close();
3303     path.moveTo(1, 0);
3304     path.lineTo(3, 0);
3305     path.quadTo(0, 1, 1, 2);
3306     path.close();
3307     testSimplify(reporter, path, filename);
3308 }
3309 
testQuadratic86(skiatest::Reporter * reporter,const char * filename)3310 static void testQuadratic86(skiatest::Reporter* reporter, const char* filename) {
3311     SkPath path;
3312     path.moveTo(0, 0);
3313     path.quadTo(0, 1, 1, 1);
3314     path.lineTo(2, 3);
3315     path.close();
3316     path.moveTo(0, 0);
3317     path.lineTo(0, 0);
3318     path.quadTo(1, 1, 1, 3);
3319     path.close();
3320     testSimplify(reporter, path, filename);
3321 }
3322 
testQuadratic87(skiatest::Reporter * reporter,const char * filename)3323 static void testQuadratic87(skiatest::Reporter* reporter, const char* filename) {
3324     SkPath path;
3325     path.moveTo(0, 0);
3326     path.quadTo(2, 1, 0, 2);
3327     path.lineTo(2, 3);
3328     path.close();
3329     path.moveTo(0, 0);
3330     path.lineTo(1, 1);
3331     path.quadTo(0, 2, 3, 2);
3332     path.close();
3333     testSimplify(reporter, path, filename);
3334 }
3335 
testQuadratic88(skiatest::Reporter * reporter,const char * filename)3336 static void testQuadratic88(skiatest::Reporter* reporter, const char* filename) {
3337     SkPath path;
3338     path.moveTo(0, 0);
3339     path.quadTo(2, 1, 0, 2);
3340     path.lineTo(2, 2);
3341     path.close();
3342     path.moveTo(1, 0);
3343     path.lineTo(1, 1);
3344     path.quadTo(0, 2, 2, 2);
3345     path.close();
3346     testSimplify(reporter, path, filename);
3347 }
3348 
testQuadratic89x(skiatest::Reporter * reporter,const char * filename)3349 static void testQuadratic89x(skiatest::Reporter* reporter, const char* filename) {
3350     SkPath path;
3351     path.setFillType(SkPathFillType::kEvenOdd);
3352     path.moveTo(0, 0);
3353     path.quadTo(3, 1, 2, 2);
3354     path.lineTo(0, 3);
3355     path.close();
3356     path.moveTo(0, 0);
3357     path.lineTo(2, 1);
3358     path.quadTo(3, 1, 3, 3);
3359     path.close();
3360     testSimplify(reporter, path, filename);
3361 }
3362 
testQuadratic90x(skiatest::Reporter * reporter,const char * filename)3363 static void testQuadratic90x(skiatest::Reporter* reporter, const char* filename) {
3364     SkPath path;
3365     path.setFillType(SkPathFillType::kEvenOdd);
3366     path.moveTo(0, 0);
3367     path.quadTo(3, 0, 2, 2);
3368     path.lineTo(1, 3);
3369     path.close();
3370     path.moveTo(0, 0);
3371     path.lineTo(0, 1);
3372     path.quadTo(3, 2, 2, 3);
3373     path.close();
3374     testSimplify(reporter, path, filename);
3375 }
3376 
testQuadratic91(skiatest::Reporter * reporter,const char * filename)3377 static void testQuadratic91(skiatest::Reporter* reporter, const char* filename) {
3378     SkPath path;
3379     path.moveTo(0, 0);
3380     path.quadTo(3, 2, 2, 3);
3381     path.lineTo(2, 3);
3382     path.close();
3383     path.moveTo(0, 0);
3384     path.lineTo(1, 1);
3385     path.quadTo(2, 1, 2, 3);
3386     path.close();
3387     testSimplify(reporter, path, filename);
3388 }
3389 
testQuadratic92x(skiatest::Reporter * reporter,const char * filename)3390 static void testQuadratic92x(skiatest::Reporter* reporter, const char* filename) {
3391     SkPath path;
3392     path.setFillType(SkPathFillType::kEvenOdd);
3393     path.moveTo(1, 0);
3394     path.quadTo(3, 0, 2, 2);
3395     path.lineTo(2, 2);
3396     path.close();
3397     path.moveTo(2, 0);
3398     path.lineTo(0, 1);
3399     path.quadTo(3, 2, 2, 3);
3400     path.close();
3401     testSimplify(reporter, path, filename);
3402 }
3403 
testLine82(skiatest::Reporter * reporter,const char * filename)3404 static void testLine82(skiatest::Reporter* reporter, const char* filename) {
3405     SkPath path;
3406     path.addRect(20, 0, 40, 40, SkPathDirection::kCCW);
3407     path.addRect(24, 20, 36, 30, SkPathDirection::kCCW);
3408     path.addRect(24, 32, 33, 36, SkPathDirection::kCCW);
3409     testSimplify(reporter, path, filename);
3410 }
3411 
testLine82a(skiatest::Reporter * reporter,const char * filename)3412 static void testLine82a(skiatest::Reporter* reporter, const char* filename) {
3413     SkPath path;
3414     path.addRect(0, 0, 6, 10, SkPathDirection::kCW);
3415     path.addRect(2, 2, 4, 4, SkPathDirection::kCW);
3416     path.addRect(2, 6, 4, 8, SkPathDirection::kCW);
3417     testSimplify(reporter, path, filename);
3418 }
3419 
testLine82b(skiatest::Reporter * reporter,const char * filename)3420 static void testLine82b(skiatest::Reporter* reporter, const char* filename) {
3421     SkPath path;
3422     path.addRect(0, 0, 6, 10, SkPathDirection::kCW);
3423     path.addRect(2, 2, 4, 4, SkPathDirection::kCW);
3424     path.addRect(2, 6, 4, 8, SkPathDirection::kCCW);
3425     testSimplify(reporter, path, filename);
3426 }
3427 
testLine82c(skiatest::Reporter * reporter,const char * filename)3428 static void testLine82c(skiatest::Reporter* reporter, const char* filename) {
3429     SkPath path;
3430     path.addRect(0, 0, 6, 10, SkPathDirection::kCW);
3431     path.addRect(2, 2, 4, 4, SkPathDirection::kCCW);
3432     path.addRect(2, 6, 4, 8, SkPathDirection::kCW);
3433     testSimplify(reporter, path, filename);
3434 }
3435 
testLine82d(skiatest::Reporter * reporter,const char * filename)3436 static void testLine82d(skiatest::Reporter* reporter, const char* filename) {
3437     SkPath path;
3438     path.addRect(0, 0, 6, 10, SkPathDirection::kCW);
3439     path.addRect(2, 2, 4, 4, SkPathDirection::kCCW);
3440     path.addRect(2, 6, 4, 8, SkPathDirection::kCCW);
3441     testSimplify(reporter, path, filename);
3442 }
3443 
testLine82e(skiatest::Reporter * reporter,const char * filename)3444 static void testLine82e(skiatest::Reporter* reporter, const char* filename) {
3445     SkPath path;
3446     path.addRect(0, 0, 6, 10, SkPathDirection::kCCW);
3447     path.addRect(2, 2, 4, 4, SkPathDirection::kCW);
3448     path.addRect(2, 6, 4, 8, SkPathDirection::kCW);
3449     testSimplify(reporter, path, filename);
3450 }
3451 
testLine82f(skiatest::Reporter * reporter,const char * filename)3452 static void testLine82f(skiatest::Reporter* reporter, const char* filename) {
3453     SkPath path;
3454     path.addRect(0, 0, 6, 10, SkPathDirection::kCCW);
3455     path.addRect(2, 2, 4, 4, SkPathDirection::kCW);
3456     path.addRect(2, 6, 4, 8, SkPathDirection::kCCW);
3457     testSimplify(reporter, path, filename);
3458 }
3459 
testLine82g(skiatest::Reporter * reporter,const char * filename)3460 static void testLine82g(skiatest::Reporter* reporter, const char* filename) {
3461     SkPath path;
3462     path.addRect(0, 0, 6, 10, SkPathDirection::kCCW);
3463     path.addRect(2, 2, 4, 4, SkPathDirection::kCCW);
3464     path.addRect(2, 6, 4, 8, SkPathDirection::kCW);
3465     testSimplify(reporter, path, filename);
3466 }
3467 
testLine82h(skiatest::Reporter * reporter,const char * filename)3468 static void testLine82h(skiatest::Reporter* reporter, const char* filename) {
3469     SkPath path;
3470     path.addRect(0, 0, 6, 10, SkPathDirection::kCCW);
3471     path.addRect(2, 2, 4, 4, SkPathDirection::kCCW);
3472     path.addRect(2, 6, 4, 8, SkPathDirection::kCCW);
3473     testSimplify(reporter, path, filename);
3474 }
3475 
testLine83(skiatest::Reporter * reporter,const char * filename)3476 static void testLine83(skiatest::Reporter* reporter, const char* filename) {
3477     SkPath path;
3478 path.addRect(10, 30, 30, 40, SkPathDirection::kCCW);
3479 path.addRect(0, 12, 12, 18, SkPathDirection::kCCW);
3480 path.addRect(4, 13, 13, 16, SkPathDirection::kCCW);
3481     testSimplify(reporter, path, filename);
3482 }
3483 
testLine84(skiatest::Reporter * reporter,const char * filename)3484 static void testLine84(skiatest::Reporter* reporter, const char* filename) {
3485     SkPath path;
3486     path.addRect(0, 12, 60, 30, SkPathDirection::kCCW);
3487     path.addRect(10, 20, 40, 30, SkPathDirection::kCW);
3488     path.addRect(0, 12, 12, 12, SkPathDirection::kCW);
3489     path.addRect(4, 12, 13, 13, SkPathDirection::kCW);
3490     testSimplify(reporter, path, filename);
3491 }
3492 
testLine84x(skiatest::Reporter * reporter,const char * filename)3493 static void testLine84x(skiatest::Reporter* reporter, const char* filename) {
3494     SkPath path;
3495     path.setFillType(SkPathFillType::kEvenOdd);
3496     path.addRect(0, 12, 60, 30, SkPathDirection::kCCW);
3497     path.addRect(10, 20, 40, 30, SkPathDirection::kCCW);
3498     path.addRect(0, 12, 12, 12, SkPathDirection::kCCW);
3499     path.addRect(4, 12, 13, 13, SkPathDirection::kCCW);
3500     testSimplify(reporter, path, filename);
3501 }
3502 
testLine85(skiatest::Reporter * reporter,const char * filename)3503 static void testLine85(skiatest::Reporter* reporter, const char* filename) {
3504     SkPath path;
3505     path.addRect(36, 0, 66, 60, SkPathDirection::kCCW);
3506     path.addRect(20, 0, 40, 40, SkPathDirection::kCCW);
3507     path.addRect(12, 0, 24, 24, SkPathDirection::kCCW);
3508     path.addRect(32, 0, 36, 41, SkPathDirection::kCCW);
3509     testSimplify(reporter, path, filename);
3510 }
3511 
testQuadralateral1(skiatest::Reporter * reporter,const char * filename)3512 static void testQuadralateral1(skiatest::Reporter* reporter, const char* filename) {
3513     SkPath path;
3514     path.moveTo(0, 0);
3515     path.lineTo(0, 0);
3516     path.lineTo(0, 0);
3517     path.lineTo(3, 2);
3518     path.close();
3519     path.moveTo(0, 0);
3520     path.lineTo(2, 1);
3521     path.lineTo(2, 2);
3522     path.lineTo(2, 3);
3523     path.close();
3524     testSimplify(reporter, path, filename);
3525 }
3526 
testCubic1(skiatest::Reporter * reporter,const char * filename)3527 static void testCubic1(skiatest::Reporter* reporter, const char* filename) {
3528     SkPath path;
3529     path.moveTo(0, 0);
3530     path.cubicTo(0, 1, 1, 1, 1, 0);
3531     path.close();
3532     path.moveTo(1, 0);
3533     path.cubicTo(0, 0, 0, 1, 1, 1);
3534     path.close();
3535     testSimplify(reporter, path, filename);
3536 }
3537 
testQuadratic93(skiatest::Reporter * reporter,const char * filename)3538 static void testQuadratic93(skiatest::Reporter* reporter, const char* filename) {
3539     SkPath path;
3540     path.moveTo(3, 0);
3541     path.quadTo(0, 1, 3, 2);
3542     path.lineTo(0, 3);
3543     path.close();
3544     path.moveTo(1, 0);
3545     path.lineTo(2, 0);
3546     path.quadTo(1, 1, 2, 2);
3547     path.close();
3548     testSimplify(reporter, path, filename);
3549 }
3550 
testCubic2(skiatest::Reporter * reporter,const char * filename)3551 static void testCubic2(skiatest::Reporter* reporter, const char* filename) {
3552     SkPath path;
3553     path.moveTo(0,2);
3554     path.cubicTo(0,3, 2,1, 4,0);
3555     path.close();
3556     path.moveTo(1,2);
3557     path.cubicTo(0,4, 2,0, 3,0);
3558     path.close();
3559     testSimplify(reporter, path, filename);
3560 }
3561 
testQuad1(skiatest::Reporter * reporter,const char * filename)3562 static void testQuad1(skiatest::Reporter* reporter, const char* filename) {
3563     SkPath path;
3564     path.moveTo(0,0);
3565     path.quadTo(0,0, 0,1);
3566     path.lineTo(1,1);
3567     path.close();
3568     path.moveTo(0,0);
3569     path.quadTo(1,1, 0,2);
3570     path.close();
3571     testSimplify(reporter, path, filename);
3572 }
3573 
testQuadralateral2(skiatest::Reporter * reporter,const char * filename)3574 static void testQuadralateral2(skiatest::Reporter* reporter, const char* filename) {
3575     SkPath path;
3576     path.moveTo(0, 0);
3577     path.lineTo(2, 2);
3578     path.lineTo(0, 3);
3579     path.lineTo(3, 3);
3580     path.close();
3581     path.moveTo(2, 0);
3582     path.lineTo(3, 0);
3583     path.lineTo(0, 1);
3584     path.lineTo(1, 2);
3585     path.close();
3586     markTestFlakyForPathKit();
3587     testSimplify(reporter, path, filename);
3588 }
3589 
testQuadratic94(skiatest::Reporter * reporter,const char * filename)3590 static void testQuadratic94(skiatest::Reporter* reporter, const char* filename) {
3591     SkPath path;
3592     path.moveTo(0, 0);
3593     path.lineTo(8, 8);
3594     path.quadTo(8, 4, 4, 4);
3595     path.quadTo(4, 0, 0, 0);
3596     path.close();
3597     testSimplify(reporter, path, filename);
3598 }
3599 
testQuadratic95(skiatest::Reporter * reporter,const char * filename)3600 static void testQuadratic95(skiatest::Reporter* reporter, const char* filename) {
3601     SkPath path;
3602     path.moveTo(8, 8);
3603     path.lineTo(0, 0);
3604     path.quadTo(4, 0, 4, 4);
3605     path.quadTo(8, 4, 8, 8);
3606     path.close();
3607     testSimplify(reporter, path, filename);
3608 }
3609 
testQuadratic96(skiatest::Reporter * reporter,const char * filename)3610 static void testQuadratic96(skiatest::Reporter* reporter, const char* filename) {
3611     SkPath path;
3612     path.moveTo(8, 0);
3613     path.lineTo(0, 8);
3614     path.quadTo(0, 4, 4, 4);
3615     path.quadTo(4, 0, 8, 0);
3616     path.close();
3617     testSimplify(reporter, path, filename);
3618 }
3619 
testQuadratic97(skiatest::Reporter * reporter,const char * filename)3620 static void testQuadratic97(skiatest::Reporter* reporter, const char* filename) {
3621     SkPath path;
3622     path.moveTo(0, 8);
3623     path.lineTo(8, 0);
3624     path.quadTo(4, 0, 4, 4);
3625     path.quadTo(0, 4, 0, 8);
3626     path.close();
3627     testSimplify(reporter, path, filename);
3628 }
3629 
testTriangles1(skiatest::Reporter * reporter,const char * filename)3630 static void testTriangles1(skiatest::Reporter* reporter, const char* filename) {
3631     SkPath path;
3632     path.moveTo(0, 0);
3633     path.lineTo(1, 0);
3634     path.lineTo(3, 3);
3635     path.close();
3636     path.moveTo(0, 0);
3637     path.lineTo(1, 2);
3638     path.lineTo(1, 1);
3639     path.close();
3640     testSimplify(reporter, path, filename);
3641 }
3642 
testTriangles2(skiatest::Reporter * reporter,const char * filename)3643 static void testTriangles2(skiatest::Reporter* reporter, const char* filename) {
3644     SkPath path;
3645     path.moveTo(0, 0);
3646     path.lineTo(1, 0);
3647     path.lineTo(3, 3);
3648     path.close();
3649     path.moveTo(1, 1);
3650     path.lineTo(2, 3);
3651     path.lineTo(1, 2);
3652     path.close();
3653     testSimplify(reporter, path, filename);
3654 }
3655 
3656 // A test for this case:
3657 // contourA has two segments that are coincident
3658 // contourB has two segments that are coincident in the same place
3659 // each ends up with +2/0 pairs for winding count
3660 // since logic in OpSegment::addTCoincident doesn't transfer count (only increments/decrements)
3661 // can this be resolved to +4/0 ?
testAddTCoincident1(skiatest::Reporter * reporter,const char * filename)3662 static void testAddTCoincident1(skiatest::Reporter* reporter, const char* filename) {
3663     SkPath path;
3664     path.moveTo(2, 0);
3665     path.lineTo(2, 2);
3666     path.lineTo(1, 1);
3667     path.lineTo(2, 0);
3668     path.lineTo(2, 2);
3669     path.lineTo(1, 1);
3670     path.close();
3671     path.moveTo(2, 0);
3672     path.lineTo(2, 2);
3673     path.lineTo(3, 1);
3674     path.lineTo(2, 0);
3675     path.lineTo(2, 2);
3676     path.lineTo(3, 1);
3677     path.close();
3678     testSimplify(reporter, path, filename);
3679 }
3680 
3681 // test with implicit close
testAddTCoincident2(skiatest::Reporter * reporter,const char * filename)3682 static void testAddTCoincident2(skiatest::Reporter* reporter, const char* filename) {
3683     SkPath path;
3684     path.moveTo(2, 0);
3685     path.lineTo(2, 2);
3686     path.lineTo(1, 1);
3687     path.lineTo(2, 0);
3688     path.lineTo(2, 2);
3689     path.lineTo(1, 1);
3690     path.moveTo(2, 0);
3691     path.lineTo(2, 2);
3692     path.lineTo(3, 1);
3693     path.lineTo(2, 0);
3694     path.lineTo(2, 2);
3695     path.lineTo(3, 1);
3696     testSimplify(reporter, path, filename);
3697 }
3698 
testQuad2(skiatest::Reporter * reporter,const char * filename)3699 static void testQuad2(skiatest::Reporter* reporter, const char* filename) {
3700     SkPath path;
3701     path.moveTo(1, 0);
3702     path.quadTo(0, 1, 3, 2);
3703     path.lineTo(2, 3);
3704     path.close();
3705     path.moveTo(0, 0);
3706     path.lineTo(1, 0);
3707     path.quadTo(0, 1, 1, 1);
3708     path.close();
3709 }
3710 
testQuad3(skiatest::Reporter * reporter,const char * filename)3711 static void testQuad3(skiatest::Reporter* reporter, const char* filename) {
3712     SkPath path;
3713     path.moveTo(1, 0);
3714     path.quadTo(0, 1, 3, 2);
3715     path.lineTo(3, 3);
3716     path.close();
3717     path.moveTo(0, 0);
3718     path.lineTo(1, 0);
3719     path.quadTo(0, 1, 1, 1);
3720     path.close();
3721     testSimplify(reporter, path, filename);
3722 }
3723 
testQuad4(skiatest::Reporter * reporter,const char * filename)3724 static void testQuad4(skiatest::Reporter* reporter, const char* filename) {
3725     SkPath path;
3726     path.moveTo(2, 0);
3727     path.quadTo(0, 1, 1, 1);
3728     path.lineTo(3, 3);
3729     path.close();
3730     path.moveTo(0, 0);
3731     path.lineTo(2, 0);
3732     path.quadTo(0, 1, 2, 2);
3733     path.close();
3734     testSimplify(reporter, path, filename);
3735 }
3736 
testQuad5(skiatest::Reporter * reporter,const char * filename)3737 static void testQuad5(skiatest::Reporter* reporter, const char* filename) {
3738     SkPath path;
3739     path.moveTo(2, 0);
3740     path.quadTo(0, 1, 2, 2);
3741     path.lineTo(1, 3);
3742     path.close();
3743     path.moveTo(0, 0);
3744     path.lineTo(2, 0);
3745     path.quadTo(0, 1, 1, 1);
3746     path.close();
3747     testSimplify(reporter, path, filename);
3748 }
3749 
testQuad6(skiatest::Reporter * reporter,const char * filename)3750 static void testQuad6(skiatest::Reporter* reporter, const char* filename) {
3751     SkPath path;
3752     path.moveTo(2, 0);
3753     path.quadTo(0, 1, 2, 2);
3754     path.lineTo(1, 3);
3755     path.close();
3756     path.moveTo(1, 0);
3757     path.lineTo(2, 0);
3758     path.quadTo(0, 1, 1, 1);
3759     path.close();
3760     testSimplify(reporter, path, filename);
3761 }
3762 
testQuad7(skiatest::Reporter * reporter,const char * filename)3763 static void testQuad7(skiatest::Reporter* reporter, const char* filename) {
3764     SkPath path;
3765     path.moveTo(3, 0);
3766     path.quadTo(0, 1, 1, 1);
3767     path.lineTo(1, 3);
3768     path.close();
3769     path.moveTo(1, 0);
3770     path.lineTo(3, 0);
3771     path.quadTo(0, 1, 1, 2);
3772     path.close();
3773     testSimplify(reporter, path, filename);
3774 }
3775 
testQuadLineIntersect1(skiatest::Reporter * reporter,const char * filename)3776 static void testQuadLineIntersect1(skiatest::Reporter* reporter, const char* filename) {
3777     SkPath path;
3778     path.moveTo(0, 0);
3779     path.quadTo(3, 1, 0, 3);
3780     path.lineTo(2, 3);
3781     path.close();
3782     path.moveTo(2, 0);
3783     path.lineTo(0, 1);
3784     path.quadTo(3, 1, 0, 2);
3785     path.close();
3786     testSimplify(reporter, path, filename);
3787 }
3788 
testQuadLineIntersect2(skiatest::Reporter * reporter,const char * filename)3789 static void testQuadLineIntersect2(skiatest::Reporter* reporter, const char* filename) {
3790     SkPath path;
3791     path.moveTo(0, 0);
3792     path.quadTo(3, 1, 0, 3);
3793     path.lineTo(0, 3);
3794     path.close();
3795     path.moveTo(2, 0);
3796     path.lineTo(0, 1);
3797     path.quadTo(3, 1, 0, 2);
3798     path.close();
3799     testSimplify(reporter, path, filename);
3800 }
3801 
testQuadLineIntersect3(skiatest::Reporter * reporter,const char * filename)3802 static void testQuadLineIntersect3(skiatest::Reporter* reporter, const char* filename) {
3803     SkPath path;
3804     path.moveTo(0, 0);
3805     path.quadTo(3, 1, 0, 3);
3806     path.lineTo(1, 3);
3807     path.close();
3808     path.moveTo(2, 0);
3809     path.lineTo(0, 1);
3810     path.quadTo(3, 1, 0, 2);
3811     path.close();
3812     testSimplify(reporter, path, filename);
3813 }
3814 
skphealth_com76s(skiatest::Reporter * reporter,const char * filename)3815 static void skphealth_com76s(skiatest::Reporter* reporter, const char* filename) {
3816     SkPath path;
3817     path.setFillType(SkPathFillType::kWinding);
3818     path.moveTo(708.099182f, 7.09919119f);
3819     path.lineTo(708.099182f, 7.09920025f);
3820     path.quadTo(704.000000f, 11.2010098f, 704.000000f, 17.0000000f);
3821     path.lineTo(704.000000f, 33.0000000f);
3822     path.lineTo(705.000000f, 33.0000000f);
3823     path.lineTo(705.000000f, 17.0000000f);
3824     path.cubicTo(705.000000f, 13.4101496f, 706.455078f, 10.1601505f, 708.807617f, 7.80761385f);
3825     path.lineTo(708.099182f, 7.09919119f);
3826     path.close();
3827     path.moveTo(704.000000f, 3.00000000f);
3828     path.lineTo(704.000000f, 33.0000000f);
3829     path.lineTo(705.000000f, 33.0000000f);
3830     path.lineTo(719.500000f, 3.00000000f);
3831     testSimplify(reporter, path, filename);
3832 }
3833 
tooCloseTest(skiatest::Reporter * reporter,const char * filename)3834 static void tooCloseTest(skiatest::Reporter* reporter, const char* filename) {
3835     SkPath path;
3836     path.moveTo(0, 0);
3837     path.lineTo(1, 1);
3838     path.lineTo(1,-1);
3839     path.close();
3840     path.moveTo(0, 0);
3841     path.lineTo(1,-2);
3842     path.lineTo(1, 2);
3843     path.lineTo(2, 0);
3844     path.close();
3845     testSimplify(reporter, path, filename);
3846 }
3847 
testRect1s(skiatest::Reporter * reporter,const char * filename)3848 static void testRect1s(skiatest::Reporter* reporter, const char* filename) {
3849     SkPath path;
3850     path.addRect(0, 0, 60, 60, SkPathDirection::kCCW);
3851     path.addRect(30, 20, 50, 50, SkPathDirection::kCCW);
3852     path.addRect(24, 20, 36, 30, SkPathDirection::kCCW);
3853     path.addRect(32, 24, 36, 41, SkPathDirection::kCCW);
3854     testSimplify(reporter, path, filename);
3855 }
3856 
testRect2s(skiatest::Reporter * reporter,const char * filename)3857 static void testRect2s(skiatest::Reporter* reporter, const char* filename) {
3858     SkPath path;
3859     path.setFillType(SkPathFillType::kWinding);
3860     path.moveTo(0, 0);
3861     path.lineTo(60, 0);
3862     path.lineTo(60, 60);
3863     path.lineTo(0, 60);
3864     path.close();
3865     path.moveTo(30, 20);
3866     path.lineTo(30, 50);
3867     path.lineTo(50, 50);
3868     path.lineTo(50, 20);
3869     path.close();
3870     path.moveTo(24, 20);
3871     path.lineTo(24, 30);
3872     path.lineTo(36, 30);
3873     path.lineTo(36, 20);
3874     path.close();
3875     path.moveTo(32, 24);
3876     path.lineTo(32, 41);
3877     path.lineTo(36, 41);
3878     path.lineTo(36, 24);
3879     path.close();
3880     testSimplify(reporter, path, filename);
3881 }
3882 
testTriangles3x(skiatest::Reporter * reporter,const char * filename)3883 static void testTriangles3x(skiatest::Reporter* reporter, const char* filename) {
3884     SkPath path;
3885     path.setFillType(SkPathFillType::kEvenOdd);
3886     path.moveTo(1, 0);
3887     path.quadTo(0, 1, 3, 2);
3888     path.lineTo(1, 3);
3889     path.close();
3890     path.moveTo(0, 0);
3891     path.lineTo(1, 1);
3892     path.quadTo(2, 1, 0, 2);
3893     path.close();
3894     testSimplify(reporter, path, filename);
3895 }
3896 
testQuad8(skiatest::Reporter * reporter,const char * filename)3897 static void testQuad8(skiatest::Reporter* reporter, const char* filename) {
3898     SkPath path;
3899     path.moveTo(3, 0);
3900     path.quadTo(0, 1, 3, 2);
3901     path.lineTo(0, 3);
3902     path.close();
3903     path.moveTo(1, 0);
3904     path.lineTo(3, 0);
3905     path.quadTo(1, 1, 2, 2);
3906     path.close();
3907     testSimplify(reporter, path, filename);
3908 }
3909 
testTriangles4x(skiatest::Reporter * reporter,const char * filename)3910 static void testTriangles4x(skiatest::Reporter* reporter, const char* filename) {
3911     SkPath path;
3912     path.setFillType(SkPathFillType::kEvenOdd);
3913     path.moveTo(0, 0);
3914     path.quadTo(2, 0, 0, 3);
3915     path.lineTo(2, 3);
3916     path.close();
3917     path.moveTo(0, 0);
3918     path.lineTo(0, 1);
3919     path.quadTo(3, 2, 2, 3);
3920     path.close();
3921     testSimplify(reporter, path, filename);
3922 }
3923 
testQuad9(skiatest::Reporter * reporter,const char * filename)3924 static void testQuad9(skiatest::Reporter* reporter, const char* filename) {
3925     SkPath path;
3926     path.setFillType(SkPathFillType::kEvenOdd);
3927     path.moveTo(1, 0);
3928     path.quadTo(0, 1, 3, 2);
3929     path.lineTo(1, 3);
3930     path.close();
3931     path.moveTo(1, 0);
3932     path.lineTo(1, 1);
3933     path.quadTo(2, 1, 1, 3);
3934     path.close();
3935     testSimplify(reporter, path, filename);
3936 }
3937 
testQuad10(skiatest::Reporter * reporter,const char * filename)3938 static void testQuad10(skiatest::Reporter* reporter, const char* filename) {
3939     SkPath path;
3940     path.moveTo(1, 0);
3941     path.quadTo(0, 1, 3, 2);
3942     path.lineTo(3, 3);
3943     path.close();
3944     path.moveTo(1, 0);
3945     path.lineTo(2, 0);
3946     path.quadTo(2, 3, 3, 3);
3947     path.close();
3948     testSimplify(reporter, path, filename);
3949 }
3950 
testQuad11(skiatest::Reporter * reporter,const char * filename)3951 static void testQuad11(skiatest::Reporter* reporter, const char* filename) {
3952     SkPath path;
3953     path.moveTo(2, 0);
3954     path.quadTo(0, 1, 1, 2);
3955     path.lineTo(1, 2);
3956     path.close();
3957     path.moveTo(0, 0);
3958     path.lineTo(1, 1);
3959     path.quadTo(1, 3, 3, 3);
3960     path.close();
3961     testSimplify(reporter, path, filename);
3962 }
3963 
testQuad12(skiatest::Reporter * reporter,const char * filename)3964 static void testQuad12(skiatest::Reporter* reporter, const char* filename) {
3965     SkPath path;
3966     path.moveTo(0, 0);
3967     path.quadTo(0, 0, 0, 0);
3968     path.lineTo(0, 1);
3969     path.close();
3970     path.moveTo(0, 0);
3971     path.lineTo(0, 0);
3972     path.quadTo(1, 0, 0, 1);
3973     path.close();
3974     testSimplify(reporter, path, filename);
3975 }
3976 
testQuadralateral3(skiatest::Reporter * reporter,const char * filename)3977 static void testQuadralateral3(skiatest::Reporter* reporter, const char* filename) {
3978     SkPath path;
3979     path.setFillType(SkPathFillType::kEvenOdd);
3980     path.moveTo(0, 0);
3981     path.lineTo(0, 0);
3982     path.lineTo(0, 0);
3983     path.lineTo(1, 0);
3984     path.close();
3985     path.moveTo(0, 0);
3986     path.lineTo(0, 0);
3987     path.lineTo(1, 0);
3988     path.lineTo(0, 1);
3989     path.close();
3990     testSimplify(reporter, path, filename);
3991 }
3992 
3993 
testDegenerate5(skiatest::Reporter * reporter,const char * filename)3994 static void testDegenerate5(skiatest::Reporter* reporter, const char* filename) {
3995     SkPath path;
3996     path.moveTo(0, 0);
3997     path.lineTo(0, 0);
3998     path.lineTo(1, 0);
3999     path.close();
4000     path.moveTo(0, 0);
4001     path.lineTo(1, 0);
4002     path.lineTo(0, 1);
4003     path.close();
4004     testSimplify(reporter, path, filename);
4005 }
4006 
testQuadralateral4(skiatest::Reporter * reporter,const char * filename)4007 static void testQuadralateral4(skiatest::Reporter* reporter, const char* filename) {
4008     SkPath path;
4009     path.moveTo(0, 0);
4010     path.lineTo(0, 0);
4011     path.lineTo(0, 0);
4012     path.lineTo(3, 1);
4013     path.close();
4014     path.moveTo(0, 0);
4015     path.lineTo(0, 0);
4016     path.lineTo(0, 1);
4017     path.lineTo(3, 1);
4018     path.close();
4019     testSimplify(reporter, path, filename);
4020 }
4021 
testDegenerates1(skiatest::Reporter * reporter,const char * filename)4022 static void testDegenerates1(skiatest::Reporter* reporter, const char* filename) {
4023     SkPath path;
4024     path.moveTo(0, 0);
4025     path.quadTo(0, 0, 1, 1);
4026     path.lineTo(2, 3);
4027     path.close();
4028     path.moveTo(0, 0);
4029     path.lineTo(0, 0);
4030     path.quadTo(3, 2, 2, 3);
4031     path.close();
4032     testSimplify(reporter, path, filename);
4033 }
4034 
testQuad13(skiatest::Reporter * reporter,const char * filename)4035 static void testQuad13(skiatest::Reporter* reporter, const char* filename) {
4036     SkPath path;
4037     path.moveTo(0, 0);
4038     path.quadTo(0, 0, 1, 1);
4039     path.lineTo(2, 3);
4040     path.close();
4041     path.moveTo(0, 0);
4042     path.lineTo(0, 0);
4043     path.quadTo(3, 2, 2, 3);
4044     path.close();
4045     testSimplify(reporter, path, filename);
4046 }
4047 
testQuad14(skiatest::Reporter * reporter,const char * filename)4048 static void testQuad14(skiatest::Reporter* reporter, const char* filename) {
4049     SkPath path;
4050     path.setFillType(SkPathFillType::kWinding);
4051     path.moveTo(0, 0);
4052     path.quadTo(0, 0, 1, 1);
4053     path.lineTo(1, 2);
4054     path.close();
4055     path.moveTo(0, 0);
4056     path.lineTo(0, 0);
4057     path.quadTo(3, 1, 1, 3);
4058     path.close();
4059     testSimplify(reporter, path, filename);
4060 }
4061 
testQuad15(skiatest::Reporter * reporter,const char * filename)4062 static void testQuad15(skiatest::Reporter* reporter, const char* filename) {
4063     SkPath path;
4064     path.moveTo(0, 0);
4065     path.quadTo(0, 0, 1, 1);
4066     path.lineTo(1, 3);
4067     path.close();
4068     path.moveTo(0, 0);
4069     path.lineTo(0, 0);
4070     path.quadTo(2, 0, 1, 3);
4071     path.close();
4072     testSimplify(reporter, path, filename);
4073 }
4074 
testQuads16(skiatest::Reporter * reporter,const char * filename)4075 static void testQuads16(skiatest::Reporter* reporter, const char* filename) {
4076     SkPath path;
4077     path.moveTo(0, 0);
4078     path.quadTo(0, 0, 1, 1);
4079     path.lineTo(3, 2);
4080     path.close();
4081     path.moveTo(0, 0);
4082     path.lineTo(0, 0);
4083     path.quadTo(0, 1, 3, 2);
4084     path.close();
4085     testSimplify(reporter, path, filename);
4086 }
4087 
testQuads17(skiatest::Reporter * reporter,const char * filename)4088 static void testQuads17(skiatest::Reporter* reporter, const char* filename) {
4089     SkPath path;
4090     path.moveTo(0, 0);
4091     path.quadTo(0, 0, 1, 1);
4092     path.lineTo(3, 2);
4093     path.close();
4094     path.moveTo(0, 0);
4095     path.lineTo(0, 0);
4096     path.quadTo(0, 2, 3, 2);
4097     path.close();
4098     testSimplify(reporter, path, filename);
4099 }
4100 
testQuads18(skiatest::Reporter * reporter,const char * filename)4101 static void testQuads18(skiatest::Reporter* reporter, const char* filename) {
4102     SkPath path;
4103     path.moveTo(0, 0);
4104     path.quadTo(0, 0, 1, 1);
4105     path.lineTo(3, 2);
4106     path.close();
4107     path.moveTo(0, 0);
4108     path.lineTo(0, 0);
4109     path.quadTo(1, 2, 3, 2);
4110     path.close();
4111     testSimplify(reporter, path, filename);
4112 }
4113 
testQuads19(skiatest::Reporter * reporter,const char * filename)4114 static void testQuads19(skiatest::Reporter* reporter, const char* filename) {
4115     SkPath path;
4116     path.moveTo(0, 0);
4117     path.quadTo(0, 0, 2, 1);
4118     path.lineTo(1, 2);
4119     path.close();
4120     path.moveTo(0, 0);
4121     path.lineTo(0, 0);
4122     path.quadTo(2, 1, 1, 2);
4123     path.close();
4124     testSimplify(reporter, path, filename);
4125 }
4126 
testQuads20(skiatest::Reporter * reporter,const char * filename)4127 static void testQuads20(skiatest::Reporter* reporter, const char* filename) {
4128     SkPath path;
4129     path.moveTo(0, 0);
4130     path.quadTo(0, 0, 2, 1);
4131     path.lineTo(1, 3);
4132     path.close();
4133     path.moveTo(0, 0);
4134     path.lineTo(0, 0);
4135     path.quadTo(2, 1, 1, 3);
4136     path.close();
4137     testSimplify(reporter, path, filename);
4138 }
4139 
testQuads21(skiatest::Reporter * reporter,const char * filename)4140 static void testQuads21(skiatest::Reporter* reporter, const char* filename) {
4141     SkPath path;
4142     path.moveTo(0, 0);
4143     path.quadTo(0, 0, 1, 1);
4144     path.lineTo(2, 1);
4145     path.close();
4146     path.moveTo(0, 0);
4147     path.lineTo(0, 0);
4148     path.quadTo(3, 0, 2, 3);
4149     path.close();
4150     testSimplify(reporter, path, filename);
4151 }
4152 
testQuads22(skiatest::Reporter * reporter,const char * filename)4153 static void testQuads22(skiatest::Reporter* reporter, const char* filename) {
4154     SkPath path;
4155     path.moveTo(0, 0);
4156     path.quadTo(0, 0, 2, 0);
4157     path.lineTo(1, 1);
4158     path.close();
4159     path.moveTo(0, 0);
4160     path.lineTo(0, 0);
4161     path.quadTo(0, 1, 3, 2);
4162     path.close();
4163     testSimplify(reporter, path, filename);
4164 }
4165 
testQuads23(skiatest::Reporter * reporter,const char * filename)4166 static void testQuads23(skiatest::Reporter* reporter, const char* filename) {
4167     SkPath path;
4168     path.moveTo(0, 0);
4169     path.quadTo(0, 0, 1, 0);
4170     path.lineTo(1, 1);
4171     path.close();
4172     path.moveTo(0, 0);
4173     path.lineTo(0, 0);
4174     path.quadTo(0, 1, 3, 2);
4175     path.close();
4176     testSimplify(reporter, path, filename);
4177 }
4178 
testQuads24(skiatest::Reporter * reporter,const char * filename)4179 static void testQuads24(skiatest::Reporter* reporter, const char* filename) {
4180     SkPath path;
4181     path.moveTo(0, 0);
4182     path.quadTo(0, 0, 0, 1);
4183     path.lineTo(1, 2);
4184     path.close();
4185     path.moveTo(0, 1);
4186     path.lineTo(0, 1);
4187     path.quadTo(0, 2, 3, 3);
4188     path.close();
4189     testSimplify(reporter, path, filename);
4190 }
4191 
testQuads25(skiatest::Reporter * reporter,const char * filename)4192 static void testQuads25(skiatest::Reporter* reporter, const char* filename) {
4193     SkPath path;
4194     path.moveTo(0, 0);
4195     path.quadTo(0, 0, 0, 1);
4196     path.lineTo(2, 1);
4197     path.close();
4198     path.moveTo(0, 0);
4199     path.lineTo(0, 0);
4200     path.quadTo(3, 0, 2, 3);
4201     path.close();
4202     testSimplify(reporter, path, filename);
4203 }
4204 
testQuads26(skiatest::Reporter * reporter,const char * filename)4205 static void testQuads26(skiatest::Reporter* reporter, const char* filename) {
4206     SkPath path;
4207     path.moveTo(0, 0);
4208     path.quadTo(0, 0, 3, 0);
4209     path.lineTo(1, 1);
4210     path.close();
4211     path.moveTo(0, 0);
4212     path.lineTo(0, 0);
4213     path.quadTo(0, 1, 3, 2);
4214     path.close();
4215     testSimplify(reporter, path, filename);
4216 }
4217 
testQuads27(skiatest::Reporter * reporter,const char * filename)4218 static void testQuads27(skiatest::Reporter* reporter, const char* filename) {
4219     SkPath path;
4220     path.moveTo(0, 0);
4221     path.quadTo(0, 0, 2, 0);
4222     path.lineTo(2, 1);
4223     path.close();
4224     path.moveTo(2, 0);
4225     path.lineTo(2, 0);
4226     path.quadTo(3, 0, 1, 3);
4227     path.close();
4228     testSimplify(reporter, path, filename);
4229 }
4230 
testQuads28(skiatest::Reporter * reporter,const char * filename)4231 static void testQuads28(skiatest::Reporter* reporter, const char* filename) {
4232     SkPath path;
4233     path.moveTo(0, 0);
4234     path.quadTo(0, 0, 0, 1);
4235     path.lineTo(2, 2);
4236     path.close();
4237     path.moveTo(0, 0);
4238     path.lineTo(0, 0);
4239     path.quadTo(3, 0, 2, 3);
4240     path.close();
4241     testSimplify(reporter, path, filename);
4242 }
4243 
testQuads29(skiatest::Reporter * reporter,const char * filename)4244 static void testQuads29(skiatest::Reporter* reporter, const char* filename) {
4245     SkPath path;
4246     path.moveTo(0, 0);
4247     path.quadTo(0, 0, 3, 0);
4248     path.lineTo(2, 1);
4249     path.close();
4250     path.moveTo(3, 0);
4251     path.lineTo(3, 0);
4252     path.quadTo(3, 1, 0, 2);
4253     path.close();
4254     testSimplify(reporter, path, filename);
4255 }
4256 
testQuads30(skiatest::Reporter * reporter,const char * filename)4257 static void testQuads30(skiatest::Reporter* reporter, const char* filename) {
4258     SkPath path;
4259     path.moveTo(0, 0);
4260 
4261     path.quadTo(0, 0, 2, 0);
4262     path.lineTo(2, 2);
4263     path.close();
4264     path.moveTo(2, 0);
4265     path.lineTo(2, 0);
4266     path.quadTo(3, 2, 1, 3);
4267     path.close();
4268     testSimplify(reporter, path, filename);
4269 }
4270 
testQuads31(skiatest::Reporter * reporter,const char * filename)4271 static void testQuads31(skiatest::Reporter* reporter, const char* filename) {
4272     SkPath path;
4273     path.moveTo(0, 0);
4274     path.quadTo(0, 0, 2, 1);
4275     path.lineTo(1, 3);
4276     path.close();
4277     path.moveTo(3, 0);
4278     path.lineTo(0, 1);
4279 
4280     path.quadTo(2, 1, 1, 3);
4281     path.close();
4282     testSimplify(reporter, path, filename);
4283 }
4284 
testQuads32(skiatest::Reporter * reporter,const char * filename)4285 static void testQuads32(skiatest::Reporter* reporter, const char* filename) {
4286     SkPath path;
4287     path.moveTo(0, 0);
4288     path.quadTo(0, 0, 1, 1);
4289     path.lineTo(1, 2);
4290     path.close();
4291     path.moveTo(1, 1);
4292     path.lineTo(1, 1);
4293     path.quadTo(3, 1, 0, 3);
4294     path.close();
4295     testSimplify(reporter, path, filename);
4296 }
4297 
testQuads33(skiatest::Reporter * reporter,const char * filename)4298 static void testQuads33(skiatest::Reporter* reporter, const char* filename) {
4299     SkPath path;
4300     path.moveTo(0, 0);
4301     path.quadTo(0, 0, 1, 1);
4302     path.lineTo(2, 1);
4303     path.close();
4304     path.moveTo(0, 0);
4305     path.lineTo(0, 0);
4306     path.quadTo(3, 0, 2, 3);
4307     path.close();
4308     testSimplify(reporter, path, filename);
4309 }
4310 
testQuads34(skiatest::Reporter * reporter,const char * filename)4311 static void testQuads34(skiatest::Reporter* reporter, const char* filename) {
4312     SkPath path;
4313     path.moveTo(0, 0);
4314     path.quadTo(0, 0, 1, 0);
4315     path.lineTo(2, 1);
4316     path.close();
4317     path.moveTo(1, 0);
4318     path.lineTo(1, 0);
4319     path.quadTo(2, 0, 3, 3);
4320     path.close();
4321     testSimplify(reporter, path, filename);
4322 }
4323 
testQuads35(skiatest::Reporter * reporter,const char * filename)4324 static void testQuads35(skiatest::Reporter* reporter, const char* filename) {
4325     SkPath path;
4326     path.moveTo(0, 0);
4327     path.quadTo(0, 0, 1, 0);
4328     path.lineTo(1, 2);
4329     path.close();
4330     path.moveTo(1, 0);
4331     path.lineTo(1, 0);
4332     path.quadTo(3, 1, 0, 3);
4333     path.close();
4334     testSimplify(reporter, path, filename);
4335 }
4336 
testQuads36(skiatest::Reporter * reporter,const char * filename)4337 static void testQuads36(skiatest::Reporter* reporter, const char* filename) {
4338     SkPath path;
4339     path.moveTo(1, 0);
4340     path.quadTo(2, 0, 1, 2);
4341     path.lineTo(2, 2);
4342     path.close();
4343     path.moveTo(1, 0);
4344     path.lineTo(1, 0);
4345     path.quadTo(3, 0, 2, 3);
4346     path.close();
4347     testSimplify(reporter, path, filename);
4348 }
4349 
testQuads37(skiatest::Reporter * reporter,const char * filename)4350 static void testQuads37(skiatest::Reporter* reporter, const char* filename) {
4351     SkPath path;
4352     path.setFillType(SkPathFillType::kEvenOdd);
4353     path.moveTo(1, 0);
4354     path.quadTo(2, 0, 1, 2);
4355     path.lineTo(2, 2);
4356     path.close();
4357     path.moveTo(1, 0);
4358     path.lineTo(1, 0);
4359     path.quadTo(3, 0, 2, 3);
4360     path.close();
4361     testSimplify(reporter, path, filename);
4362 }
4363 
testQuads38(skiatest::Reporter * reporter,const char * filename)4364 static void testQuads38(skiatest::Reporter* reporter, const char* filename) {
4365     SkPath path;
4366     path.moveTo(1, 0);
4367     path.quadTo(3, 0, 0, 2);
4368     path.lineTo(3, 2);
4369     path.close();
4370     path.moveTo(1, 0);
4371     path.lineTo(1, 0);
4372     path.quadTo(2, 1, 3, 1);
4373     path.close();
4374     testSimplify(reporter, path, filename);
4375 }
4376 
testQuads39(skiatest::Reporter * reporter,const char * filename)4377 static void testQuads39(skiatest::Reporter* reporter, const char* filename) {
4378     SkPath path;
4379     path.moveTo(1, 0);
4380     path.quadTo(3, 0, 0, 3);
4381     path.lineTo(0, 3);
4382     path.close();
4383     path.moveTo(1, 1);
4384     path.lineTo(0, 2);
4385     path.quadTo(1, 2, 0, 3);
4386     path.close();
4387     testSimplify(reporter, path, filename);
4388 }
testQuads40(skiatest::Reporter * reporter,const char * filename)4389 static void testQuads40(skiatest::Reporter* reporter, const char* filename) {
4390     SkPath path;
4391     path.moveTo(1, 0);
4392     path.quadTo(3, 0, 3, 3);
4393     path.lineTo(3, 3);
4394     path.close();
4395     path.moveTo(2, 1);
4396     path.lineTo(2, 2);
4397     path.quadTo(3, 2, 3, 3);
4398     path.close();
4399     testSimplify(reporter, path, filename);
4400 }
4401 
testQuads41(skiatest::Reporter * reporter,const char * filename)4402 static void testQuads41(skiatest::Reporter* reporter, const char* filename) {
4403     SkPath path;
4404     path.moveTo(0, 0);
4405     path.quadTo(0, 0, 1, 0);
4406     path.lineTo(2, 1);
4407     path.close();
4408     path.moveTo(0, 0);
4409     path.lineTo(0, 0);
4410     path.quadTo(0, 1, 1, 2);
4411     path.close();
4412     testSimplify(reporter, path, filename);
4413 }
4414 
4415 
testQuads54(skiatest::Reporter * reporter,const char * filename)4416 static void testQuads54(skiatest::Reporter* reporter, const char* filename) {
4417     SkPath path;
4418     path.moveTo(1, 0);
4419     path.quadTo(2, 0, 1, 1);
4420     path.lineTo(3, 1);
4421     path.close();
4422     path.moveTo(2, 0);
4423     path.lineTo(1, 1);
4424     path.quadTo(1, 1, 2, 3);
4425     path.close();
4426     testSimplify(reporter, path, filename);
4427 }
testQuads53(skiatest::Reporter * reporter,const char * filename)4428 static void testQuads53(skiatest::Reporter* reporter, const char* filename) {
4429     SkPath path;
4430     path.moveTo(1, 0);
4431     path.quadTo(2, 0, 1, 1);
4432     path.lineTo(3, 1);
4433     path.close();
4434     path.moveTo(2, 0);
4435     path.lineTo(1, 1);
4436     path.quadTo(2, 3, 2, 3);
4437     path.close();
4438     testSimplify(reporter, path, filename);
4439 }
testQuads52(skiatest::Reporter * reporter,const char * filename)4440 static void testQuads52(skiatest::Reporter* reporter, const char* filename) {
4441     SkPath path;
4442     path.moveTo(1, 0);
4443     path.quadTo(2, 0, 1, 1);
4444     path.lineTo(3, 1);
4445     path.close();
4446     path.moveTo(2, 0);
4447     path.lineTo(1, 1);
4448     path.quadTo(2, 3, 3, 3);
4449     path.close();
4450     testSimplify(reporter, path, filename);
4451 }
testQuads51(skiatest::Reporter * reporter,const char * filename)4452 static void testQuads51(skiatest::Reporter* reporter, const char* filename) {
4453     SkPath path;
4454     path.moveTo(2, 0);
4455     path.quadTo(3, 0, 2, 1);
4456     path.lineTo(3, 2);
4457     path.close();
4458     path.moveTo(3, 0);
4459     path.lineTo(3, 1);
4460     path.quadTo(3, 1, 1, 2);
4461     path.close();
4462     testSimplify(reporter, path, filename);
4463 }
testQuads50(skiatest::Reporter * reporter,const char * filename)4464 static void testQuads50(skiatest::Reporter* reporter, const char* filename) {
4465     SkPath path;
4466     path.moveTo(2, 0);
4467     path.quadTo(3, 0, 2, 1);
4468     path.lineTo(3, 2);
4469     path.close();
4470     path.moveTo(3, 0);
4471     path.lineTo(3, 1);
4472     path.quadTo(1, 2, 1, 2);
4473     path.close();
4474     testSimplify(reporter, path, filename);
4475 }
testQuads49(skiatest::Reporter * reporter,const char * filename)4476 static void testQuads49(skiatest::Reporter* reporter, const char* filename) {
4477     SkPath path;
4478     path.moveTo(2, 0);
4479     path.quadTo(3, 0, 2, 1);
4480     path.lineTo(3, 2);
4481     path.close();
4482     path.moveTo(3, 0);
4483     path.lineTo(2, 2);
4484     path.quadTo(2, 2, 0, 3);
4485     path.close();
4486     testSimplify(reporter, path, filename);
4487 }
testQuads48(skiatest::Reporter * reporter,const char * filename)4488 static void testQuads48(skiatest::Reporter* reporter, const char* filename) {
4489     SkPath path;
4490     path.moveTo(2, 0);
4491     path.quadTo(3, 0, 2, 1);
4492     path.lineTo(3, 2);
4493     path.close();
4494     path.moveTo(3, 0);
4495     path.lineTo(2, 2);
4496     path.quadTo(3, 2, 0, 3);
4497     path.close();
4498     testSimplify(reporter, path, filename);
4499 }
testQuads47(skiatest::Reporter * reporter,const char * filename)4500 static void testQuads47(skiatest::Reporter* reporter, const char* filename) {
4501     SkPath path;
4502     path.moveTo(2, 0);
4503     path.quadTo(3, 0, 2, 1);
4504     path.lineTo(3, 2);
4505     path.close();
4506     path.moveTo(3, 0);
4507     path.lineTo(2, 2);
4508     path.quadTo(0, 3, 0, 3);
4509     path.close();
4510     testSimplify(reporter, path, filename);
4511 }
4512 
testQuads46x(skiatest::Reporter * reporter,const char * filename)4513 static void testQuads46x(skiatest::Reporter* reporter, const char* filename) {
4514     SkPath path;
4515     path.setFillType(SkPathFillType::kEvenOdd);
4516     path.moveTo(2, 0);
4517     path.quadTo(0, 1, 3, 2);
4518     path.lineTo(1, 3);
4519     path.close();
4520     path.moveTo(0, 0);
4521     path.lineTo(1, 1);
4522     path.quadTo(3, 2, 1, 3);
4523     path.close();
4524     testSimplify(reporter, path, filename);
4525 }
4526 
testQuads45(skiatest::Reporter * reporter,const char * filename)4527 static void testQuads45(skiatest::Reporter* reporter, const char* filename) {
4528     SkPath path;
4529     path.moveTo(2, 0);
4530     path.quadTo(3, 2, 3, 3);
4531     path.lineTo(3, 3);
4532     path.close();
4533     path.moveTo(0, 0);
4534     path.lineTo(0, 2);
4535     path.quadTo(3, 2, 3, 3);
4536     path.close();
4537     testSimplify(reporter, path, filename);
4538 }
4539 
testQuads44(skiatest::Reporter * reporter,const char * filename)4540 static void testQuads44(skiatest::Reporter* reporter, const char* filename) {
4541     SkPath path;
4542     path.moveTo(2, 0);
4543     path.quadTo(3, 2, 3, 3);
4544     path.lineTo(3, 3);
4545     path.close();
4546     path.moveTo(1, 0);
4547     path.lineTo(0, 2);
4548     path.quadTo(3, 2, 3, 3);
4549     path.close();
4550     testSimplify(reporter, path, filename);
4551 }
4552 
testQuads43(skiatest::Reporter * reporter,const char * filename)4553 static void testQuads43(skiatest::Reporter* reporter, const char* filename) {
4554     SkPath path;
4555     path.moveTo(2, 0);
4556     path.quadTo(2, 3, 3, 3);
4557     path.lineTo(3, 3);
4558     path.close();
4559     path.moveTo(0, 2);
4560     path.lineTo(0, 2);
4561     path.quadTo(2, 3, 3, 3);
4562     path.close();
4563     testSimplify(reporter, path, filename);
4564 }
4565 
testQuads42(skiatest::Reporter * reporter,const char * filename)4566 static void testQuads42(skiatest::Reporter* reporter, const char* filename) {
4567     SkPath path;
4568     path.moveTo(2, 0);
4569     path.quadTo(3, 2, 3, 3);
4570     path.lineTo(3, 3);
4571     path.close();
4572     path.moveTo(2, 0);
4573     path.lineTo(0, 2);
4574     path.quadTo(3, 2, 3, 3);
4575     path.close();
4576     testSimplify(reporter, path, filename);
4577 }
4578 
testQuads56(skiatest::Reporter * reporter,const char * filename)4579 static void testQuads56(skiatest::Reporter* reporter, const char* filename) {
4580     SkPath path;
4581     path.moveTo(2, 0);
4582     path.quadTo(3, 1, 0, 2);
4583     path.lineTo(3, 2);
4584     path.close();
4585     path.moveTo(3, 0);
4586     path.lineTo(2, 1);
4587     path.quadTo(2, 1, 3, 3);
4588     path.close();
4589     testSimplify(reporter, path, filename);
4590 }
4591 
testQuads57(skiatest::Reporter * reporter,const char * filename)4592 static void testQuads57(skiatest::Reporter* reporter, const char* filename) {
4593     SkPath path;
4594     path.moveTo(1, 0);
4595     path.quadTo(3, 0, 3, 1);
4596     path.lineTo(2, 2);
4597     path.close();
4598     path.moveTo(2, 0);
4599     path.lineTo(3, 1);
4600     path.quadTo(2, 2, 3, 2);
4601     path.close();
4602     testSimplify(reporter, path, filename);
4603 }
4604 
testQuads58(skiatest::Reporter * reporter,const char * filename)4605 static void testQuads58(skiatest::Reporter* reporter, const char* filename) {
4606     SkPath path;
4607     path.moveTo(1, 0);
4608     path.quadTo(3, 0, 3, 1);
4609     path.lineTo(1, 3);
4610     path.close();
4611     path.moveTo(2, 0);
4612     path.lineTo(3, 1);
4613     path.quadTo(2, 2, 3, 2);
4614     path.close();
4615     testSimplify(reporter, path, filename);
4616 }
4617 
testQuads59(skiatest::Reporter * reporter,const char * filename)4618 static void testQuads59(skiatest::Reporter* reporter, const char* filename) {
4619     SkPath path;
4620     path.moveTo(3, 0);
4621     path.quadTo(3, 1, 3, 1);
4622     path.lineTo(2, 2);
4623     path.close();
4624     path.moveTo(2, 0);
4625     path.lineTo(3, 1);
4626     path.quadTo(2, 2, 3, 2);
4627     path.close();
4628     testSimplify(reporter, path, filename);
4629 }
4630 
testQuads60(skiatest::Reporter * reporter,const char * filename)4631 static void testQuads60(skiatest::Reporter* reporter, const char* filename) {
4632     SkPath path;
4633     path.moveTo(2, 1);
4634     path.quadTo(0, 2, 3, 2);
4635     path.lineTo(2, 3);
4636     path.close();
4637     path.moveTo(0, 0);
4638     path.lineTo(2, 0);
4639     path.quadTo(1, 1, 2, 2);
4640     path.close();
4641     testSimplify(reporter, path, filename);
4642 }
4643 
testQuads61(skiatest::Reporter * reporter,const char * filename)4644 static void testQuads61(skiatest::Reporter* reporter, const char* filename) {
4645     SkPath path;
4646     path.setFillType(SkPathFillType::kEvenOdd);
4647     path.moveTo(0, 0);
4648     path.quadTo(0, 0, 2, 0);
4649     path.lineTo(1, 1);
4650     path.close();
4651     path.moveTo(0, 0);
4652     path.lineTo(0, 0);
4653     path.quadTo(1, 0, 2, 2);
4654     path.close();
4655     testSimplify(reporter, path, filename);
4656 }
4657 
testQuadralateral10(skiatest::Reporter * reporter,const char * filename)4658 static void testQuadralateral10(skiatest::Reporter* reporter, const char* filename) {
4659     SkPath path;
4660     path.setFillType(SkPathFillType::kWinding);
4661     path.moveTo(0, 0);
4662     path.lineTo(0, 0);
4663     path.lineTo(0, 0);
4664     path.lineTo(2, 2);
4665     path.close();
4666     path.moveTo(1, 0);
4667     path.lineTo(1, 1);
4668     path.lineTo(2, 2);
4669     path.lineTo(1, 3);
4670     path.close();
4671     testSimplify(reporter, path, filename);
4672 }
4673 
testRect3(skiatest::Reporter * reporter,const char * filename)4674 static void testRect3(skiatest::Reporter* reporter, const char* filename) {
4675     SkPath path;
4676     path.setFillType(SkPathFillType::kEvenOdd);
4677     path.addRect(0, 0, 60, 60, SkPathDirection::kCCW);
4678     path.addRect(10, 30, 40, 30, SkPathDirection::kCCW);
4679     path.addRect(24, 6, 36, 36, SkPathDirection::kCCW);
4680     path.addRect(32, 6, 36, 41, SkPathDirection::kCCW);
4681     testSimplify(reporter, path, filename);
4682 }
4683 
testRect4(skiatest::Reporter * reporter,const char * filename)4684 static void testRect4(skiatest::Reporter* reporter, const char* filename) {
4685     SkPath path;
4686     path.setFillType(SkPathFillType::kEvenOdd);
4687     path.addRect(0, 0, 30, 60, SkPathDirection::kCCW);
4688     path.addRect(10, 0, 40, 30, SkPathDirection::kCCW);
4689     path.addRect(20, 0, 30, 40, SkPathDirection::kCCW);
4690     path.addRect(32, 0, 36, 41, SkPathDirection::kCCW);
4691     testSimplify(reporter, path, filename);
4692 }
4693 
testQuads62(skiatest::Reporter * reporter,const char * filename)4694 static void testQuads62(skiatest::Reporter* reporter, const char* filename) {
4695     SkPath path;
4696     path.moveTo(3, 2);
4697     path.quadTo(1, 3, 3, 3);
4698     path.lineTo(3, 3);
4699     path.close();
4700     path.moveTo(0, 0);
4701     path.lineTo(2, 0);
4702     path.quadTo(1, 3, 3, 3);
4703     path.close();
4704     testSimplify(reporter, path, filename);
4705 }
4706 
testQuads63(skiatest::Reporter * reporter,const char * filename)4707 static void testQuads63(skiatest::Reporter* reporter,const char* filename) {
4708     SkPath path;
4709     path.moveTo(3, 0);
4710     path.quadTo(0, 1, 1, 2);
4711     path.lineTo(3, 3);
4712     path.close();
4713     path.moveTo(0, 0);
4714     path.lineTo(1, 1);
4715     path.quadTo(0, 2, 3, 3);
4716     path.close();
4717     testSimplify(reporter, path, filename);
4718 }
4719 
testQuads64(skiatest::Reporter * reporter,const char * filename)4720 static void testQuads64(skiatest::Reporter* reporter,const char* filename) {
4721     SkPath path;
4722     path.moveTo(3, 0);
4723     path.quadTo(0, 1, 1, 2);
4724     path.lineTo(2, 2);
4725     path.close();
4726     path.moveTo(1, 0);
4727     path.lineTo(1, 1);
4728     path.quadTo(0, 2, 3, 3);
4729     path.close();
4730     testSimplify(reporter, path, filename);
4731 }
4732 
testTriangle1(skiatest::Reporter * reporter,const char * filename)4733 static void testTriangle1(skiatest::Reporter* reporter,const char* filename) {
4734     SkPath path;
4735     path.moveTo(0, 0);
4736     path.lineTo(1, 0);
4737     path.lineTo(2, 3);
4738     path.close();
4739     path.moveTo(0, 0);
4740     path.lineTo(1, 2);
4741     path.lineTo(1, 0);
4742     path.close();
4743     testSimplify(reporter, path, filename);
4744 }
4745 
testTriangle2(skiatest::Reporter * reporter,const char * filename)4746 static void testTriangle2(skiatest::Reporter* reporter,const char* filename) {
4747     SkPath path;
4748     path.moveTo(0, 0);
4749     path.lineTo(1, 0);
4750     path.lineTo(0, 1);
4751     path.close();
4752     path.moveTo(2, 0);
4753     path.lineTo(0, 2);
4754     path.lineTo(2, 2);
4755     path.close();
4756     testSimplify(reporter, path, filename);
4757 }
4758 
testArc(skiatest::Reporter * reporter,const char * filename)4759 static void testArc(skiatest::Reporter* reporter,const char* filename) {
4760     SkRect r = SkRect::MakeWH(150, 100);
4761     SkPath path;
4762     path.arcTo(r, 0, 0.0025f, false);
4763     testSimplify(reporter, path, filename);
4764 }
4765 
testIssue3838(skiatest::Reporter * reporter,const char * filename)4766 static void testIssue3838(skiatest::Reporter* reporter,const char* filename) {
4767     SkPath path;
4768     path.moveTo(220, 170);
4769     path.lineTo(200, 170);
4770     path.lineTo(200, 190);
4771     path.lineTo(180, 190);
4772     path.lineTo(180, 210);
4773     path.lineTo(200, 210);
4774     path.lineTo(200, 250);
4775     path.lineTo(260, 250);
4776     path.lineTo(260, 190);
4777     path.lineTo(220, 190);
4778     path.lineTo(220, 170);
4779     path.close();
4780     path.moveTo(220, 210);
4781     path.lineTo(220, 230);
4782     path.lineTo(240, 230);
4783     path.lineTo(240, 210);
4784     path.lineTo(220, 210);
4785     path.close();
4786     testSimplify(reporter, path, filename);
4787 }
4788 
testIssue3838_3(skiatest::Reporter * reporter,const char * filename)4789 static void testIssue3838_3(skiatest::Reporter* reporter,const char* filename) {
4790     SkPath path;
4791     path.moveTo(40, 10);
4792     path.lineTo(60, 10);
4793     path.lineTo(60, 30);
4794     path.lineTo(40, 30);
4795     path.lineTo(40, 10);
4796     path.moveTo(41, 11);
4797     path.lineTo(41, 29);
4798     path.lineTo(59, 29);
4799     path.lineTo(59, 11);
4800     path.lineTo(41, 11);
4801     testSimplify(reporter, path, filename);
4802 }
4803 
testQuads65(skiatest::Reporter * reporter,const char * filename)4804 static void testQuads65(skiatest::Reporter* reporter,const char* filename) {
4805     SkPath path;
4806     path.moveTo(1, 2);
4807     path.quadTo(3, 2, 0, 3);
4808     path.lineTo(1, 3);
4809     path.close();
4810     path.moveTo(1, 0);
4811     path.lineTo(1, 2);
4812     path.quadTo(3, 2, 1, 3);
4813     path.close();
4814     testSimplify(reporter, path, filename);
4815 }
4816 
fuzz864a(skiatest::Reporter * reporter,const char * filename)4817 static void fuzz864a(skiatest::Reporter* reporter,const char* filename) {
4818     SkPath path;
4819     path.moveTo(10, 90);
4820     path.lineTo(10, 90);
4821     path.lineTo(10, 30);
4822     path.lineTo(10, 30);
4823     path.lineTo(10, 90);
4824     path.close();
4825     path.moveTo(10, 90);
4826     path.lineTo(10, 90);
4827     path.lineTo(10, 30);
4828     path.lineTo(10, 30);
4829     path.lineTo(10, 90);
4830     path.close();
4831     path.moveTo(10, 90);
4832     path.lineTo(110, 90);
4833     path.lineTo(110, 30);
4834     path.lineTo(10, 30);
4835     path.lineTo(10, 90);
4836     path.close();
4837     path.moveTo(10, 30);
4838     path.lineTo(32678, 30);
4839     path.lineTo(32678, 30);
4840     path.lineTo(10, 30);
4841     path.close();
4842     path.moveTo(10, 3.35545e+07f);
4843     path.lineTo(110, 3.35545e+07f);
4844     path.lineTo(110, 30);
4845     path.lineTo(10, 30);
4846     path.lineTo(10, 3.35545e+07f);
4847     path.close();
4848     path.moveTo(10, 315);
4849     path.lineTo(110, 315);
4850     path.lineTo(110, 255);
4851     path.lineTo(10, 255);
4852     path.lineTo(10, 315);
4853     path.close();
4854     path.moveTo(0, 60);
4855     path.lineTo(100, 60);
4856     path.lineTo(100, 0);
4857     path.lineTo(0, 0);
4858     path.lineTo(0, 60);
4859     path.close();
4860     path.moveTo(10, 90);
4861     path.lineTo(110, 90);
4862     path.lineTo(110, 30);
4863     path.lineTo(10, 30);
4864     path.lineTo(10, 90);
4865     path.close();
4866     path.moveTo(10, 3.35545e+07f);
4867     path.lineTo(110, 3.35545e+07f);
4868     path.lineTo(110, 30);
4869     path.lineTo(10, 30);
4870     path.lineTo(10, 3.35545e+07f);
4871     path.close();
4872     path.moveTo(10, 90);
4873     path.lineTo(110, 90);
4874     path.lineTo(110, 30);
4875     path.lineTo(10, 30);
4876     path.lineTo(10, 90);
4877     path.close();
4878     testSimplify(reporter, path, filename);
4879 }
4880 
cr514118(skiatest::Reporter * reporter,const char * filename)4881 static void cr514118(skiatest::Reporter* reporter,const char* filename) {
4882     SkPath path;
4883 path.moveTo(SkBits2Float(0x42c80000), SkBits2Float(0x42480000));  // 100, 50
4884 path.conicTo(SkBits2Float(0x42c80000), SkBits2Float(0x00000000), SkBits2Float(0x42480000), SkBits2Float(0x00000000), SkBits2Float(0x3f3504f3));  // 100, 0, 50, 0, 0.707107f
4885 path.conicTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000), SkBits2Float(0x00000000), SkBits2Float(0x42480000), SkBits2Float(0x3f3504f3));  // 0, 0, 0, 50, 0.707107f
4886 path.conicTo(SkBits2Float(0x00000000), SkBits2Float(0x42c80000), SkBits2Float(0x42480000), SkBits2Float(0x42c80000), SkBits2Float(0x3f3504f3));  // 0, 100, 50, 100, 0.707107f
4887 path.conicTo(SkBits2Float(0x42c80000), SkBits2Float(0x42c80000), SkBits2Float(0x42c80000), SkBits2Float(0x42480000), SkBits2Float(0x3f3504f3));  // 100, 100, 100, 50, 0.707107f
4888 path.close();
4889 path.moveTo(SkBits2Float(0x42c80133), SkBits2Float(0x42480000));  // 100.002f, 50
4890 path.conicTo(SkBits2Float(0x42c80133), SkBits2Float(0x00000000), SkBits2Float(0x42480267), SkBits2Float(0x00000000), SkBits2Float(0x3f3504f3));  // 100.002f, 0, 50.0023f, 0, 0.707107f
4891 path.conicTo(SkBits2Float(0x3b19b530), SkBits2Float(0x00000000), SkBits2Float(0x3b19b530), SkBits2Float(0x42480000), SkBits2Float(0x3f3504f3));  // 0.00234539f, 0, 0.00234539f, 50, 0.707107f
4892 path.conicTo(SkBits2Float(0x3b19b530), SkBits2Float(0x42c80000), SkBits2Float(0x42480267), SkBits2Float(0x42c80000), SkBits2Float(0x3f3504f3));  // 0.00234539f, 100, 50.0023f, 100, 0.707107f
4893 path.conicTo(SkBits2Float(0x42c80133), SkBits2Float(0x42c80000), SkBits2Float(0x42c80133), SkBits2Float(0x42480000), SkBits2Float(0x3f3504f3));  // 100.002f, 100, 100.002f, 50, 0.707107f
4894 path.close();
4895     testSimplify(reporter, path, filename);
4896 }
4897 
fuzz994s_11(skiatest::Reporter * reporter,const char * filename)4898 static void fuzz994s_11(skiatest::Reporter* reporter, const char* filename) {
4899     SkPath path;
4900     path.setFillType((SkPathFillType) 0);
4901 path.moveTo(SkBits2Float(0x41200000), SkBits2Float(0x42b40000));  // 10, 90
4902 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x42b40000));  // 10, 90
4903 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x41f00000));  // 10, 30
4904 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x41f00000));  // 10, 30
4905 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x42b40000));  // 10, 90
4906 path.close();
4907 path.moveTo(SkBits2Float(0x41200000), SkBits2Float(0x42b40000));  // 10, 90
4908 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x42b40000));  // 10, 90
4909 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x41f00000));  // 10, 30
4910 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x41f00000));  // 10, 30
4911 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x42b40000));  // 10, 90
4912 path.close();
4913 path.moveTo(SkBits2Float(0x41200000), SkBits2Float(0x42b40000));  // 10, 90
4914 path.lineTo(SkBits2Float(0x42dc0000), SkBits2Float(0x42b40000));  // 110, 90
4915 path.lineTo(SkBits2Float(0x42dc0000), SkBits2Float(0x41f00000));  // 110, 30
4916 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x41f00000));  // 10, 30
4917 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x42b40000));  // 10, 90
4918 path.close();
4919 path.moveTo(SkBits2Float(0x41200000), SkBits2Float(0x41f00000));  // 10, 30
4920 path.lineTo(SkBits2Float(0x46ff4c00), SkBits2Float(0x41f00000));  // 32678, 30
4921 path.lineTo(SkBits2Float(0x46ff4c00), SkBits2Float(0x41f00000));  // 32678, 30
4922 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x41f00000));  // 10, 30
4923 path.close();
4924 path.moveTo(SkBits2Float(0x41200000), SkBits2Float(0x4c000006));  // 10, 3.35545e+07f
4925 path.lineTo(SkBits2Float(0x42dc0000), SkBits2Float(0x4c000006));  // 110, 3.35545e+07f
4926 path.lineTo(SkBits2Float(0x42dc0000), SkBits2Float(0x41f00000));  // 110, 30
4927 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x41f00000));  // 10, 30
4928 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x4c000006));  // 10, 3.35545e+07f
4929 path.close();
4930 path.moveTo(SkBits2Float(0x41200000), SkBits2Float(0x439d8000));  // 10, 315
4931 path.lineTo(SkBits2Float(0x42dc0000), SkBits2Float(0x439d8000));  // 110, 315
4932 path.lineTo(SkBits2Float(0x42dc0000), SkBits2Float(0x437f0000));  // 110, 255
4933 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x437f0000));  // 10, 255
4934 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x439d8000));  // 10, 315
4935 path.close();
4936 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x42700000));  // 0, 60
4937 path.lineTo(SkBits2Float(0x42c80000), SkBits2Float(0x42700000));  // 100, 60
4938 path.lineTo(SkBits2Float(0x42c80000), SkBits2Float(0x00000000));  // 100, 0
4939 path.lineTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000));  // 0, 0
4940 path.lineTo(SkBits2Float(0x00000000), SkBits2Float(0x42700000));  // 0, 60
4941 path.close();
4942 path.moveTo(SkBits2Float(0x41200000), SkBits2Float(0x42b40000));  // 10, 90
4943 path.lineTo(SkBits2Float(0x42dc0000), SkBits2Float(0x42b40000));  // 110, 90
4944 path.lineTo(SkBits2Float(0x42dc0000), SkBits2Float(0x41f00000));  // 110, 30
4945 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x41f00000));  // 10, 30
4946 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x42b40000));  // 10, 90
4947 path.close();
4948 path.moveTo(SkBits2Float(0x41200000), SkBits2Float(0x4c000006));  // 10, 3.35545e+07f
4949 path.lineTo(SkBits2Float(0x42dc0000), SkBits2Float(0x4c000006));  // 110, 3.35545e+07f
4950 path.lineTo(SkBits2Float(0x42dc0000), SkBits2Float(0x41f00000));  // 110, 30
4951 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x41f00000));  // 10, 30
4952 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x4c000006));  // 10, 3.35545e+07f
4953 path.close();
4954 path.moveTo(SkBits2Float(0x41200000), SkBits2Float(0x42b40000));  // 10, 90
4955 path.lineTo(SkBits2Float(0x42dc0000), SkBits2Float(0x42b40000));  // 110, 90
4956 path.lineTo(SkBits2Float(0x42dc0000), SkBits2Float(0x41f00000));  // 110, 30
4957 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x41f00000));  // 10, 30
4958 path.lineTo(SkBits2Float(0x41200000), SkBits2Float(0x42b40000));  // 10, 90
4959 path.close();
4960 
4961     testSimplify(reporter, path, filename);
4962 }
4963 
fuzz994s_3414(skiatest::Reporter * reporter,const char * filename)4964 static void fuzz994s_3414(skiatest::Reporter* reporter, const char* filename) {
4965     SkPath path;
4966     path.setFillType((SkPathFillType) 0);
4967 path.moveTo(SkBits2Float(0x42c80000), SkBits2Float(0x42480000));  // 100, 50
4968 path.conicTo(SkBits2Float(0x42c80000), SkBits2Float(0x00000000), SkBits2Float(0x42480000), SkBits2Float(0x00000000), SkBits2Float(0x3f3504f3));  // 100, 0, 50, 0, 0.707107f
4969 path.conicTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000), SkBits2Float(0x00000000), SkBits2Float(0x42480000), SkBits2Float(0x3f3504f3));  // 0, 0, 0, 50, 0.707107f
4970 path.conicTo(SkBits2Float(0x00000000), SkBits2Float(0x42c80000), SkBits2Float(0x42480000), SkBits2Float(0x42c80000), SkBits2Float(0x3f3504f3));  // 0, 100, 50, 100, 0.707107f
4971 path.conicTo(SkBits2Float(0x42c80000), SkBits2Float(0x42c80000), SkBits2Float(0x42c80000), SkBits2Float(0x42480000), SkBits2Float(0x3f3504f3));  // 100, 100, 100, 50, 0.707107f
4972 path.close();
4973 path.moveTo(SkBits2Float(0x42c84964), SkBits2Float(0x42480000));  // 100.143f, 50
4974 path.conicTo(SkBits2Float(0x42c84964), SkBits2Float(0x00000000), SkBits2Float(0x424892c8), SkBits2Float(0x00000000), SkBits2Float(0x3f3504f3));  // 100.143f, 0, 50.1433f, 0, 0.707107f
4975 path.conicTo(SkBits2Float(0x3e12c788), SkBits2Float(0x00000000), SkBits2Float(0x3e12c788), SkBits2Float(0x42480000), SkBits2Float(0x3f3504f3));  // 0.143339f, 0, 0.143339f, 50, 0.707107f
4976 path.conicTo(SkBits2Float(0x3e12c788), SkBits2Float(0x42c80000), SkBits2Float(0x424892c8), SkBits2Float(0x42c80000), SkBits2Float(0x3f3504f3));  // 0.143339f, 100, 50.1433f, 100, 0.707107f
4977 path.conicTo(SkBits2Float(0x42c84964), SkBits2Float(0x42c80000), SkBits2Float(0x42c84964), SkBits2Float(0x42480000), SkBits2Float(0x3f3504f3));  // 100.143f, 100, 100.143f, 50, 0.707107f
4978 path.close();
4979 path.moveTo(SkBits2Float(0x42c80000), SkBits2Float(0x42480000));  // 100, 50
4980 path.conicTo(SkBits2Float(0x42c80000), SkBits2Float(0x00000000), SkBits2Float(0x42480000), SkBits2Float(0x00000000), SkBits2Float(0x3f3504f3));  // 100, 0, 50, 0, 0.707107f
4981 path.conicTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000), SkBits2Float(0x00000000), SkBits2Float(0x42480000), SkBits2Float(0x3f3504f3));  // 0, 0, 0, 50, 0.707107f
4982 path.conicTo(SkBits2Float(0x00000000), SkBits2Float(0x42c80000), SkBits2Float(0x42480000), SkBits2Float(0x42c80000), SkBits2Float(0x3f3504f3));  // 0, 100, 50, 100, 0.707107f
4983 path.conicTo(SkBits2Float(0x42c80000), SkBits2Float(0x42c80000), SkBits2Float(0x42c80000), SkBits2Float(0x42480000), SkBits2Float(0x3f3504f3));  // 100, 100, 100, 50, 0.707107f
4984 path.close();
4985 path.moveTo(SkBits2Float(0x4c00006b), SkBits2Float(0x424c0000));  // 3.35549e+07f, 51
4986 path.conicTo(SkBits2Float(0x4c00006b), SkBits2Float(0xcbffffe5), SkBits2Float(0x43d6e720), SkBits2Float(0xcbffffe5), SkBits2Float(0x3f3504f3));  // 3.35549e+07f, -3.35544e+07f, 429.806f, -3.35544e+07f, 0.707107f
4987 path.conicTo(SkBits2Float(0xcbffff28), SkBits2Float(0xcbffffe5), SkBits2Float(0xcbffff28), SkBits2Float(0x424c0000), SkBits2Float(0x3f3504f3));  // -3.3554e+07f, -3.35544e+07f, -3.3554e+07f, 51, 0.707107f
4988 path.conicTo(SkBits2Float(0xcbffff28), SkBits2Float(0x4c00000c), SkBits2Float(0x43d6e720), SkBits2Float(0x4c00000c), SkBits2Float(0x3f3504f3));  // -3.3554e+07f, 3.35545e+07f, 429.806f, 3.35545e+07f, 0.707107f
4989 path.conicTo(SkBits2Float(0x4c00006b), SkBits2Float(0x4c00000c), SkBits2Float(0x4c00006b), SkBits2Float(0x424c0000), SkBits2Float(0x3f3504f3));  // 3.35549e+07f, 3.35545e+07f, 3.35549e+07f, 51, 0.707107f
4990 path.close();
4991 path.moveTo(SkBits2Float(0x43ef6720), SkBits2Float(0x42480000));  // 478.806f, 50
4992 path.conicTo(SkBits2Float(0x43ef6720), SkBits2Float(0x00000000), SkBits2Float(0x43d66720), SkBits2Float(0x00000000), SkBits2Float(0x3f3504f3));  // 478.806f, 0, 428.806f, 0, 0.707107f
4993 path.conicTo(SkBits2Float(0x43bd6720), SkBits2Float(0x00000000), SkBits2Float(0x43bd6720), SkBits2Float(0x42480000), SkBits2Float(0x3f3504f3));  // 378.806f, 0, 378.806f, 50, 0.707107f
4994 path.conicTo(SkBits2Float(0x43bd6720), SkBits2Float(0x42c80000), SkBits2Float(0x43d66720), SkBits2Float(0x42c80000), SkBits2Float(0x3f3504f3));  // 378.806f, 100, 428.806f, 100, 0.707107f
4995 path.conicTo(SkBits2Float(0x43ef6720), SkBits2Float(0x42c80000), SkBits2Float(0x43ef6720), SkBits2Float(0x42480000), SkBits2Float(0x3f3504f3));  // 478.806f, 100, 478.806f, 50, 0.707107f
4996 path.close();
4997 
4998     testSimplify(reporter, path, filename);
4999 }
5000 
fuzz_twister(skiatest::Reporter * reporter,const char * filename)5001 static void fuzz_twister(skiatest::Reporter* reporter, const char* filename) {
5002     SkPath path;
5003     path.setFillType((SkPathFillType) 0);
5004 path.moveTo(0, 600);
5005 path.lineTo(3.35544e+07f, 600);
5006 path.lineTo(3.35544e+07f, 0);
5007 path.lineTo(0, 0);
5008 path.lineTo(0, 600);
5009 path.close();
5010 path.moveTo(63, 600);
5011 path.lineTo(3.35545e+07f, 600);
5012 path.lineTo(3.35545e+07f, 0);
5013 path.lineTo(63, 0);
5014 path.lineTo(63, 600);
5015 path.close();
5016 path.moveTo(93, 600);
5017 path.lineTo(3.35545e+07f, 600);
5018 path.lineTo(3.35545e+07f, 0);
5019 path.lineTo(93, 0);
5020 path.lineTo(93, 600);
5021 path.close();
5022 path.moveTo(123, 600);
5023 path.lineTo(3.35546e+07f, 600);
5024 path.lineTo(3.35546e+07f, 0);
5025 path.lineTo(123, 0);
5026 path.lineTo(123, 600);
5027 path.close();
5028     testSimplify(reporter, path, filename);
5029 }
5030 
fuzz_twister2(skiatest::Reporter * reporter,const char * filename)5031 static void fuzz_twister2(skiatest::Reporter* reporter, const char* filename) {
5032     SkPath path;
5033 
5034 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x44160000));  // 0, 600
5035 path.lineTo(SkBits2Float(0x4bfffffe), SkBits2Float(0x44160000));  // 3.35544e+07f, 600
5036 path.lineTo(SkBits2Float(0x4bfffffe), SkBits2Float(0x00000000));  // 3.35544e+07f, 0
5037 path.lineTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000));  // 0, 0
5038 path.lineTo(SkBits2Float(0x00000000), SkBits2Float(0x44160000));  // 0, 600
5039 path.close();
5040 
5041 path.moveTo(SkBits2Float(0x427c0000), SkBits2Float(0x00000000));  // 63, 0
5042 path.lineTo(SkBits2Float(0x4c00000f), SkBits2Float(0x00000000));  // 3.35545e+07f, 0
5043 path.lineTo(SkBits2Float(0x4c00000f), SkBits2Float(0x00000000));  // 3.35545e+07f, 0
5044 path.lineTo(SkBits2Float(0x427c0000), SkBits2Float(0x00000000));  // 63, 0
5045 path.close();
5046 
5047 path.moveTo(SkBits2Float(0x42ba0000), SkBits2Float(0x00000000));  // 93, 0
5048 path.lineTo(SkBits2Float(0x4c000016), SkBits2Float(0x00000000));  // 3.35545e+07f, 0
5049 path.lineTo(SkBits2Float(0x4c000016), SkBits2Float(0x00000000));  // 3.35545e+07f, 0
5050 path.lineTo(SkBits2Float(0x42ba0000), SkBits2Float(0x00000000));  // 93, 0
5051 path.close();
5052 
5053 path.moveTo(SkBits2Float(0x42f60000), SkBits2Float(0x00000000));  // 123, 0
5054 path.lineTo(SkBits2Float(0x4c00001e), SkBits2Float(0x00000000));  // 3.35546e+07f, 0
5055 path.lineTo(SkBits2Float(0x4c00001e), SkBits2Float(0x00000000));  // 3.35546e+07f, 0
5056 path.lineTo(SkBits2Float(0x42f60000), SkBits2Float(0x00000000));  // 123, 0
5057 path.close();
5058 
5059     testSimplify(reporter, path, filename);
5060 }
5061 
fuzz763_4713_b(skiatest::Reporter * reporter,const char * filename)5062 static void fuzz763_4713_b(skiatest::Reporter* reporter, const char* filename) {
5063     SkPath path;
5064     path.setFillType((SkPathFillType) 0);
5065 path.moveTo(SkBits2Float(0x42240000), SkBits2Float(0x42040000));
5066 path.quadTo(SkBits2Float(0x42240000), SkBits2Float(0x4211413d), SkBits2Float(0x421aa09e), SkBits2Float(0x421aa09e));
5067 path.quadTo(SkBits2Float(0x4211413d), SkBits2Float(0x42240000), SkBits2Float(0x42040000), SkBits2Float(0x42240000));
5068 path.quadTo(SkBits2Float(0x41ed7d86), SkBits2Float(0x42240000), SkBits2Float(0x41dabec3), SkBits2Float(0x421aa09e));
5069 path.quadTo(SkBits2Float(0x41c80000), SkBits2Float(0x4211413d), SkBits2Float(0x41c80000), SkBits2Float(0x42040000));
5070 path.quadTo(SkBits2Float(0x41c80000), SkBits2Float(0x41ed7d86), SkBits2Float(0x41dabec3), SkBits2Float(0x41dabec3));
5071 path.quadTo(SkBits2Float(0x41ed7d86), SkBits2Float(0x41c80000), SkBits2Float(0x42040000), SkBits2Float(0x41c80000));
5072 path.quadTo(SkBits2Float(0x4211413d), SkBits2Float(0x41c80000), SkBits2Float(0x421aa09e), SkBits2Float(0x41dabec3));
5073 path.quadTo(SkBits2Float(0x42240000), SkBits2Float(0x41ed7d86), SkBits2Float(0x42240000), SkBits2Float(0x42040000));
5074 path.close();
5075 
5076 path.moveTo(SkBits2Float(0x4204f72e), SkBits2Float(0x41c56cd2));
5077 path.quadTo(SkBits2Float(0x42123842), SkBits2Float(0x41c52adf), SkBits2Float(0x421baed7), SkBits2Float(0x41d7bac6));
5078 path.quadTo(SkBits2Float(0x4225256d), SkBits2Float(0x41ea4aad), SkBits2Float(0x42254667), SkBits2Float(0x4202666b));
5079 path.quadTo(SkBits2Float(0x42256760), SkBits2Float(0x420fa77f), SkBits2Float(0x421c1f6c), SkBits2Float(0x42191e14));
5080 path.quadTo(SkBits2Float(0x421bff97), SkBits2Float(0x42193e89), SkBits2Float(0x421bdf6b), SkBits2Float(0x42195eb8));
5081 path.quadTo(SkBits2Float(0x421bbff6), SkBits2Float(0x42197f32), SkBits2Float(0x421ba03b), SkBits2Float(0x42199f57));
5082 path.quadTo(SkBits2Float(0x421b605e), SkBits2Float(0x4219e00a), SkBits2Float(0x421b1fa8), SkBits2Float(0x421a1f22));
5083 path.quadTo(SkBits2Float(0x421ae0f1), SkBits2Float(0x421a604b), SkBits2Float(0x421aa09e), SkBits2Float(0x421aa09e));
5084 path.quadTo(SkBits2Float(0x4211413d), SkBits2Float(0x42240000), SkBits2Float(0x42040000), SkBits2Float(0x42240000));
5085 path.quadTo(SkBits2Float(0x41ed7d86), SkBits2Float(0x42240000), SkBits2Float(0x41dabec3), SkBits2Float(0x421aa09e));
5086 path.quadTo(SkBits2Float(0x41c80000), SkBits2Float(0x4211413d), SkBits2Float(0x41c80000), SkBits2Float(0x42040000));
5087 path.quadTo(SkBits2Float(0x41c80000), SkBits2Float(0x41ed7d86), SkBits2Float(0x41dabec3), SkBits2Float(0x41dabec3));
5088 path.quadTo(SkBits2Float(0x41db19b1), SkBits2Float(0x41da63d5), SkBits2Float(0x41db755b), SkBits2Float(0x41da0a9b));
5089 path.quadTo(SkBits2Float(0x41dbce01), SkBits2Float(0x41d9ae59), SkBits2Float(0x41dc285e), SkBits2Float(0x41d952ce));
5090 path.quadTo(SkBits2Float(0x41dc55b6), SkBits2Float(0x41d924df), SkBits2Float(0x41dc82cd), SkBits2Float(0x41d8f7cd));
5091 path.quadTo(SkBits2Float(0x41dcaf1e), SkBits2Float(0x41d8ca01), SkBits2Float(0x41dcdc4c), SkBits2Float(0x41d89bf0));
5092 path.quadTo(SkBits2Float(0x41ef6c33), SkBits2Float(0x41c5aec5), SkBits2Float(0x4204f72e), SkBits2Float(0x41c56cd2));
5093 path.close();
5094 testSimplify(reporter, path, filename);
5095 }
5096 
dean4(skiatest::Reporter * reporter,const char * filename)5097 static void dean4(skiatest::Reporter* reporter, const char* filename) {
5098   SkPath path;
5099 
5100   // start region
5101   // start loop, contour: 1
5102   // Segment 1145.3381097316742 2017.6783947944641 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1145.3381097316742 2017.0033947825432
5103   path.moveTo(1145.3381347656250, 2017.6783447265625);
5104   path.lineTo(1145.3381347656250, 2017.0034179687500);
5105   // Segment 1145.3381097316742 2017.0033947825432 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1143.6927231521568 2017.0033947825432
5106   path.lineTo(1143.6927490234375, 2017.0034179687500);
5107   // Segment 1143.6927231521568 2017.0033947825432 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1144.8640675112890 2018.1589246992417
5108   path.lineTo(1144.8640136718750, 2018.1589355468750);
5109   // Segment 1144.8640675112890 2018.1589246992417 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1145.3381097316742 2017.6783947944641
5110   path.lineTo(1145.3381347656250, 2017.6783447265625);
5111   path.close();
5112   // start loop, contour: 2
5113   // Segment 1145.3381097316742 2016.3216052055359 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1144.8640675258462 2015.8410752863977
5114   path.moveTo(1145.3381347656250, 2016.3216552734375);
5115   path.lineTo(1144.8640136718750, 2015.8410644531250);
5116   // Segment 1144.8640675258462 2015.8410752863977 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1143.6927230811802 2016.9966052174568
5117   path.lineTo(1143.6927490234375, 2016.9965820312500);
5118   // Segment 1143.6927230811802 2016.9966052174568 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1145.3381097316742 2016.9966052174568
5119   path.lineTo(1145.3381347656250, 2016.9965820312500);
5120   // Segment 1145.3381097316742 2016.9966052174568 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1145.3381097316742 2016.3216052055359
5121   path.lineTo(1145.3381347656250, 2016.3216552734375);
5122   path.close();
5123   // start loop, contour: 3
5124   // Segment 1147.3323798179626 2014.3542600870132 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1147.8064220239557 2014.8347900059885
5125   path.moveTo(1147.3323974609375, 2014.3542480468750);
5126   path.lineTo(1147.8063964843750, 2014.8348388671875);
5127   // Segment 1147.8064220239557 2014.8347900059885 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1147.8064220516883 2014.8347899786306
5128   path.lineTo(1147.8063964843750, 2014.8348388671875);
5129   // Segment 1147.8064220516883 2014.8347899786306 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1147.3323798179626 2014.3542600870132
5130   path.lineTo(1147.3323974609375, 2014.3542480468750);
5131   path.close();
5132   // start loop, contour: 4
5133   // Segment 1146.3696286678314 2013.4045072346926 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1146.8436708778083 2013.8850371497379
5134   path.moveTo(1146.3696289062500, 2013.4045410156250);
5135   path.lineTo(1146.8436279296875, 2013.8850097656250);
5136   // Segment 1146.8436708778083 2013.8850371497379 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1146.8436709015571 2013.8850371263100
5137   path.lineTo(1146.8436279296875, 2013.8850097656250);
5138   // Segment 1146.8436709015571 2013.8850371263100 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1146.3696286678314 2013.4045072346926
5139   path.lineTo(1146.3696289062500, 2013.4045410156250);
5140   path.close();
5141   // start loop, contour: 5
5142   // Segment 1143.2063037902117 2016.5251235961914 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1142.7322615802348 2016.0445936811461
5143   path.moveTo(1143.2062988281250, 2016.5251464843750);
5144   path.lineTo(1142.7322998046875, 2016.0445556640625);
5145   // Segment 1142.7322615802348 2016.0445936811461 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1142.7322615564860 2016.0445937045740
5146   path.lineTo(1142.7322998046875, 2016.0445556640625);
5147   // Segment 1142.7322615564860 2016.0445937045740 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1143.2063037902117 2016.5251235961914
5148   path.lineTo(1143.2062988281250, 2016.5251464843750);
5149   path.close();
5150   // start loop, contour: 6
5151   // Segment 1143.0687679275870 2016.7286419868469 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1143.5428101613127 2017.2091718784643
5152   path.moveTo(1143.0687255859375, 2016.7286376953125);
5153   path.lineTo(1143.5428466796875, 2017.2092285156250);
5154   // Segment 1143.5428101613127 2017.2091718784643 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1143.7437679395080 2017.0109272411960
5155   path.lineTo(1143.7437744140625, 2017.0109863281250);
5156   // Segment 1143.7437679395080 2017.0109272411960 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1143.7437679395080 2016.7286419868469
5157   path.lineTo(1143.7437744140625, 2016.7286376953125);
5158   // Segment 1143.7437679395080 2016.7286419868469 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1143.0687679275870 2016.7286419868469
5159   path.lineTo(1143.0687255859375, 2016.7286376953125);
5160   path.close();
5161   // start loop, contour: 7
5162   // Segment 1143.2063037902117 2017.4748764038086 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1142.7322615603032 2017.9554062991915
5163   path.moveTo(1143.2062988281250, 2017.4748535156250);
5164   path.lineTo(1142.7322998046875, 2017.9554443359375);
5165   // Segment 1142.7322615603032 2017.9554062991915 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1142.7322615746241 2017.9554063133189
5166   path.lineTo(1142.7322998046875, 2017.9554443359375);
5167   // Segment 1142.7322615746241 2017.9554063133189 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1143.2063037902117 2017.4748764038086
5168   path.lineTo(1143.2062988281250, 2017.4748535156250);
5169   path.close();
5170   // start loop, contour: 8
5171   // Segment 1146.3696286678314 2020.5954928398132 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1146.8436708977399 2020.1149629444303
5172   path.moveTo(1146.3696289062500, 2020.5954589843750);
5173   path.lineTo(1146.8436279296875, 2020.1149902343750);
5174   // Segment 1146.8436708977399 2020.1149629444303 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1146.8436708834190 2020.1149629303029
5175   path.lineTo(1146.8436279296875, 2020.1149902343750);
5176   // Segment 1146.8436708834190 2020.1149629303029 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1146.3696286678314 2020.5954928398132
5177   path.lineTo(1146.3696289062500, 2020.5954589843750);
5178   path.close();
5179   // start loop, contour: 9
5180   // Segment 1147.3323798179626 2019.6457400321960 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1147.8064220484741 2019.1652101374082
5181   path.moveTo(1147.3323974609375, 2019.6457519531250);
5182   path.lineTo(1147.8063964843750, 2019.1651611328125);
5183   // Segment 1147.8064220484741 2019.1652101374082 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1147.8064220383478 2019.1652101274185
5184   path.lineTo(1147.8063964843750, 2019.1651611328125);
5185   // Segment 1147.8064220383478 2019.1652101274185 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1147.3323798179626 2019.6457400321960
5186   path.lineTo(1147.3323974609375, 2019.6457519531250);
5187   path.close();
5188   // start loop, contour: 10
5189   // Segment 1145.3381097316742 2018.3533948063850 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1156.6848182678223 2018.3533948063850
5190   path.moveTo(1145.3381347656250, 2018.3533935546875);
5191   path.lineTo(1156.6848144531250, 2018.3533935546875);
5192   // Segment 1156.6848182678223 2018.3533948063850 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1156.6848182678223 2017.0033947825432
5193   path.lineTo(1156.6848144531250, 2017.0034179687500);
5194   // Segment 1156.6848182678223 2017.0033947825432 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1145.3381097316742 2017.0033947825432
5195   path.lineTo(1145.3381347656250, 2017.0034179687500);
5196   // Segment 1145.3381097316742 2017.0033947825432 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1145.3381097316742 2018.3533948063850
5197   path.lineTo(1145.3381347656250, 2018.3533935546875);
5198   path.close();
5199   // start loop, contour: 11
5200   // Segment 1156.6848182678223 2018.3533948063850 0.3569631313191 0.0000000000000 -0.2645167304388 0.2609454237780 1157.6574279406423 2017.9723661860094
5201   path.moveTo(1156.6848144531250, 2018.3533935546875);
5202   path.cubicTo(1157.0417480468750, 2018.3533935546875, 1157.3929443359375, 2018.2332763671875, 1157.6574707031250, 2017.9724121093750);
5203   // Segment 1157.6574279406423 2017.9723661860094 0.2653344079822 -0.2617520616521 0.0000000000000 0.3596905289350 1158.0474975705147 2017.0000000000000
5204   path.cubicTo(1157.9227294921875, 2017.7105712890625, 1158.0474853515625, 2017.3597412109375, 1158.0474853515625, 2017.0000000000000);
5205   // Segment 1158.0474975705147 2017.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1156.6974975466728 2017.0000000000000
5206   path.lineTo(1156.6975097656250, 2017.0000000000000);
5207   // Segment 1156.6974975466728 2017.0000000000000 0.0028009248351 0.0403311981485 0.0118595244351 -0.0220843520393 1156.6941780622435 2017.0325257649940
5208   path.cubicTo(1156.7003173828125, 2017.0402832031250, 1156.7060546875000, 2017.0104980468750, 1156.6942138671875, 2017.0324707031250);
5209   // Segment 1156.6941780622435 2017.0325257649940 -0.0032637855860 0.0184860248562 0.0120617528380 -0.0065934603083 1156.7093435710913 2017.0113063061967
5210   path.cubicTo(1156.6909179687500, 2017.0510253906250, 1156.7214355468750, 2017.0047607421875, 1156.7093505859375, 2017.0113525390625);
5211   // split at 0.4496445953846
5212   // path.cubicTo(1156.6927490234375, 2017.0407714843750, 1156.6981201171875, 2017.0360107421875, 1156.7033691406250, 2017.0289306640625);
5213   // path.cubicTo(1156.7097167968750, 2017.0201416015625, 1156.7159423828125, 2017.0076904296875, 1156.7093505859375, 2017.0113525390625);
5214   // Segment 1156.7093435710913 2017.0113063061967 -0.0070717276929 0.0122220954353 0.0203483811973 -0.0039136894418 1156.7268834554304 2016.9985353221975
5215   path.cubicTo(1156.7022705078125, 2017.0235595703125, 1156.7471923828125, 2016.9946289062500, 1156.7269287109375, 2016.9985351562500);
5216   // Segment 1156.7268834554304 2016.9985353221975 -0.0244396787691 0.0123649140586 0.0433322464027 0.0026558844666 1156.6848182678223 2017.0033947825432
5217   path.cubicTo(1156.7023925781250, 2017.0108642578125, 1156.7281494140625, 2017.0061035156250, 1156.6848144531250, 2017.0034179687500);
5218   // split at 0.4418420493603
5219   // path.cubicTo(1156.7160644531250, 2017.0040283203125, 1156.7150878906250, 2017.0061035156250, 1156.7136230468750, 2017.0065917968750);
5220   // path.cubicTo(1156.7116699218750, 2017.0070800781250, 1156.7089843750000, 2017.0048828125000, 1156.6848144531250, 2017.0034179687500);
5221   // Segment 1156.6848182678223 2017.0033947825432 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1156.6848182678223 2018.3533948063850
5222   path.lineTo(1156.6848144531250, 2018.3533935546875);
5223   path.close();
5224   // start loop, contour: 12
5225   // Segment 1158.0474975705147 2017.0000000000000 0.0000000000000 -0.3596905289350 0.2653344079822 0.2617520616521 1157.6574279406423 2016.0276338139906
5226   path.moveTo(1158.0474853515625, 2017.0000000000000);
5227   path.cubicTo(1158.0474853515625, 2016.6402587890625, 1157.9227294921875, 2016.2894287109375, 1157.6574707031250, 2016.0275878906250);
5228   // Segment 1157.6574279406423 2016.0276338139906 -0.2645167304388 -0.2609454237780 0.3569631313191 0.0000000000000 1156.6848182678223 2015.6466051936150
5229   path.cubicTo(1157.3929443359375, 2015.7667236328125, 1157.0417480468750, 2015.6466064453125, 1156.6848144531250, 2015.6466064453125);
5230   // split at 0.5481675863266
5231   // path.cubicTo(1157.5124511718750, 2015.8846435546875, 1157.3414306640625, 2015.7839355468750, 1157.1577148437500, 2015.7220458984375);
5232   // path.cubicTo(1157.0062255859375, 2015.6711425781250, 1156.8460693359375, 2015.6466064453125, 1156.6848144531250, 2015.6466064453125);
5233   // Segment 1156.6848182678223 2015.6466051936150 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1156.6848182678223 2016.9966052174568
5234   path.lineTo(1156.6848144531250, 2016.9965820312500);
5235   // Segment 1156.6848182678223 2016.9966052174568 0.0433322464027 -0.0026558844666 -0.0244396787691 -0.0123649140586 1156.7268834554304 2017.0014646778025
5236   path.cubicTo(1156.7281494140625, 2016.9938964843750, 1156.7023925781250, 2016.9891357421875, 1156.7269287109375, 2017.0014648437500);
5237   // split at 0.5581579208374
5238   // path.cubicTo(1156.7089843750000, 2016.9951171875000, 1156.7116699218750, 2016.9929199218750, 1156.7136230468750, 2016.9934082031250);
5239   // path.cubicTo(1156.7150878906250, 2016.9938964843750, 1156.7160644531250, 2016.9959716796875, 1156.7269287109375, 2017.0014648437500);
5240   // Segment 1156.7268834554304 2017.0014646778025 0.0203483811973 0.0039136894418 -0.0070717276929 -0.0122220954353 1156.7093435710913 2016.9886936938033
5241   path.cubicTo(1156.7471923828125, 2017.0053710937500, 1156.7022705078125, 2016.9764404296875, 1156.7093505859375, 2016.9886474609375);
5242   // Segment 1156.7093435710913 2016.9886936938033 0.0120617528380 0.0065934603083 -0.0032637855860 -0.0184860248562 1156.6941780622435 2016.9674742350060
5243   path.cubicTo(1156.7214355468750, 2016.9952392578125, 1156.6909179687500, 2016.9489746093750, 1156.6942138671875, 2016.9675292968750);
5244   // Segment 1156.6941780622435 2016.9674742350060 0.0118595244351 0.0220843520393 0.0028009248351 -0.0403311981485 1156.6974975466728 2017.0000000000000
5245   path.cubicTo(1156.7060546875000, 2016.9895019531250, 1156.7003173828125, 2016.9597167968750, 1156.6975097656250, 2017.0000000000000);
5246   // split at 0.4572408795357
5247   // path.cubicTo(1156.6995849609375, 2016.9775390625000, 1156.7014160156250, 2016.9768066406250, 1156.7014160156250, 2016.9768066406250);
5248   // path.cubicTo(1156.7014160156250, 2016.9769287109375, 1156.6989746093750, 2016.9781494140625, 1156.6975097656250, 2017.0000000000000);
5249   // Segment 1156.6974975466728 2017.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1158.0474975705147 2017.0000000000000
5250   path.lineTo(1158.0474853515625, 2017.0000000000000);
5251   path.close();
5252   // start loop, contour: 13
5253   // Segment 1156.6848182678223 2015.6466051936150 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1145.3381097316742 2015.6466051936150
5254   path.moveTo(1156.6848144531250, 2015.6466064453125);
5255   path.lineTo(1145.3381347656250, 2015.6466064453125);
5256   // Segment 1145.3381097316742 2015.6466051936150 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1145.3381097316742 2016.9966052174568
5257   path.lineTo(1145.3381347656250, 2016.9965820312500);
5258   // Segment 1145.3381097316742 2016.9966052174568 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1156.6848182678223 2016.9966052174568
5259   path.lineTo(1156.6848144531250, 2016.9965820312500);
5260   // Segment 1156.6848182678223 2016.9966052174568 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1156.6848182678223 2015.6466051936150
5261   path.lineTo(1156.6848144531250, 2015.6466064453125);
5262   path.close();
5263   // start loop, contour: 14
5264   // Segment 1145.8121519375022 2016.8021351246741 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1147.8064220237907 2014.8347900061515
5265   path.moveTo(1145.8121337890625, 2016.8021240234375);
5266   path.lineTo(1147.8063964843750, 2014.8348388671875);
5267   // Segment 1147.8064220237907 2014.8347900061515 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1146.8583376121346 2013.8737301678750
5268   path.lineTo(1146.8583984375000, 2013.8737792968750);
5269   // Segment 1146.8583376121346 2013.8737301678750 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1144.8640675258462 2015.8410752863977
5270   path.lineTo(1144.8640136718750, 2015.8410644531250);
5271   // Segment 1144.8640675258462 2015.8410752863977 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1145.8121519375022 2016.8021351246741
5272   path.lineTo(1145.8121337890625, 2016.8021240234375);
5273   path.close();
5274   // start loop, contour: 15
5275   // Segment 1147.8064220516883 2014.8347899786306 0.5430154146087 -0.5356841365729 0.5430154146087 0.5356841365729 1147.8064220516883 2012.9239773430752
5276   path.moveTo(1147.8063964843750, 2014.8348388671875);
5277   path.cubicTo(1148.3494873046875, 2014.2990722656250, 1148.3494873046875, 2013.4597167968750, 1147.8063964843750, 2012.9239501953125);
5278   // Segment 1147.8064220516883 2012.9239773430752 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1146.8583375842370 2013.8850371263100
5279   path.lineTo(1146.8583984375000, 2013.8850097656250);
5280   // Segment 1146.8583375842370 2013.8850371263100 0.0071280060876 0.0070317705240 0.0071280060876 -0.0070317705240 1146.8583375842370 2013.8737301953959
5281   path.cubicTo(1146.8654785156250, 2013.8920898437500, 1146.8654785156250, 2013.8666992187500, 1146.8583984375000, 2013.8737792968750);
5282   // Segment 1146.8583375842370 2013.8737301953959 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1147.8064220516883 2014.8347899786306
5283   path.lineTo(1147.8063964843750, 2014.8348388671875);
5284   path.close();
5285   // start loop, contour: 16
5286   // Segment 1147.8064220516883 2012.9239773430752 -0.5379138488298 -0.5306514472866 0.5379138488298 -0.5306514472866 1145.8955864341058 2012.9239773430752
5287   path.moveTo(1147.8063964843750, 2012.9239501953125);
5288   path.cubicTo(1147.2685546875000, 2012.3933105468750, 1146.4334716796875, 2012.3933105468750, 1145.8956298828125, 2012.9239501953125);
5289   // Segment 1145.8955864341058 2012.9239773430752 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1146.8436709015571 2013.8850371263100
5290   path.lineTo(1146.8436279296875, 2013.8850097656250);
5291   // Segment 1146.8436709015571 2013.8850371263100 0.0122295718664 -0.0120644598103 -0.0122295718664 -0.0120644598103 1146.8583375842370 2013.8850371263100
5292   path.cubicTo(1146.8559570312500, 2013.8729248046875, 1146.8460693359375, 2013.8729248046875, 1146.8583984375000, 2013.8850097656250);
5293   // Segment 1146.8583375842370 2013.8850371263100 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1147.8064220516883 2012.9239773430752
5294   path.lineTo(1147.8063964843750, 2012.9239501953125);
5295   path.close();
5296   // start loop, contour: 17
5297   // Segment 1145.8955864579798 2012.9239773195236 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1142.7322615803600 2016.0445936810224
5298   path.moveTo(1145.8956298828125, 2012.9239501953125);
5299   path.lineTo(1142.7322998046875, 2016.0445556640625);
5300   // Segment 1142.7322615803600 2016.0445936810224 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1143.6803460000633 2017.0056535113604
5301   path.lineTo(1143.6802978515625, 2017.0056152343750);
5302   // Segment 1143.6803460000633 2017.0056535113604 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1146.8436708776831 2013.8850371498615
5303   path.lineTo(1146.8436279296875, 2013.8850097656250);
5304   // Segment 1146.8436708776831 2013.8850371498615 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1145.8955864579798 2012.9239773195236
5305   path.lineTo(1145.8956298828125, 2012.9239501953125);
5306   path.close();
5307   // start loop, contour: 18
5308   // Segment 1142.7322615564860 2016.0445937045740 -0.0343838913237 0.0339196727021 0.0561572931720 -0.0710493024751 1142.5744069596683 2016.2183613784646
5309   path.moveTo(1142.7322998046875, 2016.0445556640625);
5310   path.cubicTo(1142.6978759765625, 2016.0784912109375, 1142.6306152343750, 2016.1473388671875, 1142.5744628906250, 2016.2183837890625);
5311   // Segment 1142.5744069596683 2016.2183613784646 -0.0547779032556 0.0720510806539 0.0000000000000 -0.2570904015602 1142.3937679156661 2016.7286419868469
5312   path.cubicTo(1142.5196533203125, 2016.2904052734375, 1142.3937988281250, 2016.4715576171875, 1142.3937988281250, 2016.7286376953125);
5313   // Segment 1142.3937679156661 2016.7286419868469 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1143.7437679395080 2016.7286419868469
5314   path.lineTo(1143.7437744140625, 2016.7286376953125);
5315   // Segment 1143.7437679395080 2016.7286419868469 -0.0051909534315 0.0665915567290 0.0133980913650 -0.0361675066532 1143.6976291086639 2016.9514128270803
5316   path.cubicTo(1143.7385253906250, 2016.7952880859375, 1143.7110595703125, 2016.9152832031250, 1143.6976318359375, 2016.9514160156250);
5317   // Segment 1143.6976291086639 2016.9514128270803 -0.0142876819622 0.0277028472317 0.0040377216094 -0.0063254385208 1143.6490888124401 2017.0354042045738
5318   path.cubicTo(1143.6833496093750, 2016.9791259765625, 1143.6530761718750, 2017.0290527343750, 1143.6490478515625, 2017.0354003906250);
5319   // Segment 1143.6490888124401 2017.0354042045738 -0.0045813437564 0.0032098513409 -0.0343840362634 0.0339198156850 1143.6803460239373 2017.0056534878088
5320   path.cubicTo(1143.6445312500000, 2017.0385742187500, 1143.6459960937500, 2017.0395507812500, 1143.6802978515625, 2017.0056152343750);
5321   // Segment 1143.6803460239373 2017.0056534878088 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1142.7322615564860 2016.0445937045740
5322   path.lineTo(1142.7322998046875, 2016.0445556640625);
5323   path.close();
5324   // start loop, contour: 19
5325   // Segment 1142.5947256938614 2016.2481120952295 -0.1857487117715 0.1832409092043 0.0167379373694 -0.0990717748979 1142.3430278987244 2016.7518748698508
5326   path.moveTo(1142.5947265625000, 2016.2481689453125);
5327   path.cubicTo(1142.4089355468750, 2016.4313964843750, 1142.3597412109375, 2016.6528320312500, 1142.3430175781250, 2016.7518310546875);
5328   // Segment 1142.3430278987244 2016.7518748698508 -0.0156657977007 0.1069052535795 0.0000000000000 -0.0339197441936 1142.3249999880791 2017.0000000000000
5329   path.cubicTo(1142.3273925781250, 2016.8587646484375, 1142.3249511718750, 2016.9660644531250, 1142.3249511718750, 2017.0000000000000);
5330   // Segment 1142.3249999880791 2017.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1143.6750000119209 2017.0000000000000
5331   path.lineTo(1143.6750488281250, 2017.0000000000000);
5332   // Segment 1143.6750000119209 2017.0000000000000 0.0000000000000 -0.0339197441936 -0.0015261841961 -0.0051459911965 1143.6741640831724 2016.9767671169961
5333   path.cubicTo(1143.6750488281250, 2016.9660644531250, 1143.6726074218750, 2016.9716796875000, 1143.6741943359375, 2016.9768066406250);
5334   // Segment 1143.6741640831724 2016.9767671169961 -0.0007886982052 0.0013596649622 0.0074114058388 -0.0224954551713 1143.6525251830094 2017.0486861571169
5335   path.cubicTo(1143.6733398437500, 2016.9781494140625, 1143.6599121093750, 2017.0262451171875, 1143.6524658203125, 2017.0487060546875);
5336   // split at 0.4203657805920
5337   // path.cubicTo(1143.6738281250000, 2016.9774169921875, 1143.6712646484375, 2016.9862060546875, 1143.6678466796875, 2016.9979248046875);
5338   // path.cubicTo(1143.6630859375000, 2017.0140380859375, 1143.6567382812500, 2017.0356445312500, 1143.6524658203125, 2017.0487060546875);
5339   // Segment 1143.6525251830094 2017.0486861571169 -0.0119644334077 0.0236755853369 0.0381324473830 -0.0447670202574 1143.5428101613127 2017.2091718784643
5340   path.cubicTo(1143.6405029296875, 2017.0723876953125, 1143.5809326171875, 2017.1644287109375, 1143.5428466796875, 2017.2092285156250);
5341   // Segment 1143.5428101613127 2017.2091718784643 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1142.5947256938614 2016.2481120952295
5342   path.lineTo(1142.5947265625000, 2016.2481689453125);
5343   path.close();
5344   // start loop, contour: 20
5345   // Segment 1142.3249999880791 2017.0000000000000 0.0000000000000 0.0339197441936 -0.0156657977007 -0.1069052535795 1142.3430278987244 2017.2481251301492
5346   path.moveTo(1142.3249511718750, 2017.0000000000000);
5347   path.cubicTo(1142.3249511718750, 2017.0339355468750, 1142.3273925781250, 2017.1412353515625, 1142.3430175781250, 2017.2481689453125);
5348   // Segment 1142.3430278987244 2017.2481251301492 0.0167379373694 0.0990717748979 -0.1857487117715 -0.1832409092043 1142.5947256938614 2017.7518879047705
5349   path.cubicTo(1142.3597412109375, 2017.3471679687500, 1142.4089355468750, 2017.5686035156250, 1142.5947265625000, 2017.7518310546875);
5350   // split at 0.4008532166481
5351   // path.cubicTo(1142.3497314453125, 2017.2878417968750, 1142.3616943359375, 2017.3471679687500, 1142.3854980468750, 2017.4158935546875);
5352   // path.cubicTo(1142.4211425781250, 2017.5185546875000, 1142.4833984375000, 2017.6420898437500, 1142.5947265625000, 2017.7518310546875);
5353   // Segment 1142.5947256938614 2017.7518879047705 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1143.5428101613127 2016.7908281215357
5354   path.lineTo(1143.5428466796875, 2016.7907714843750);
5355   // Segment 1143.5428101613127 2016.7908281215357 0.0381324473830 0.0447670202574 -0.0119644334077 -0.0236755853369 1143.6525251830094 2016.9513138428831
5356   path.cubicTo(1143.5809326171875, 2016.8355712890625, 1143.6405029296875, 2016.9276123046875, 1143.6524658203125, 2016.9512939453125);
5357   // Segment 1143.6525251830094 2016.9513138428831 0.0074114058388 0.0224954551713 -0.0007886982052 -0.0013596649622 1143.6741640831724 2017.0232328830039
5358   path.cubicTo(1143.6599121093750, 2016.9737548828125, 1143.6733398437500, 2017.0218505859375, 1143.6741943359375, 2017.0231933593750);
5359   // Segment 1143.6741640831724 2017.0232328830039 -0.0015261841961 0.0051459911965 0.0000000000000 0.0339197441936 1143.6750000119209 2017.0000000000000
5360   path.cubicTo(1143.6726074218750, 2017.0283203125000, 1143.6750488281250, 2017.0339355468750, 1143.6750488281250, 2017.0000000000000);
5361   // Segment 1143.6750000119209 2017.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1142.3249999880791 2017.0000000000000
5362   path.lineTo(1142.3249511718750, 2017.0000000000000);
5363   path.close();
5364   // start loop, contour: 21
5365   // Segment 1142.5947256938614 2017.7518879047705 -0.0799271403989 -0.1522613934208 -0.2174629955730 -0.2879403701950 1142.7322615564860 2017.9554062954260
5366   path.moveTo(1142.5947265625000, 2017.7518310546875);
5367   path.cubicTo(1142.5147705078125, 2017.5996093750000, 1142.5147705078125, 2017.6674804687500, 1142.7322998046875, 2017.9554443359375);
5368   // Segment 1142.7322615564860 2017.9554062954260 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1143.6803460239373 2016.9943465121912
5369   path.lineTo(1143.6802978515625, 2016.9943847656250);
5370   // Segment 1143.6803460239373 2016.9943465121912 0.0799271403989 0.1522613934208 0.2174629955730 0.2879403701950 1143.5428101613127 2016.7908281215357
5371   path.cubicTo(1143.7602539062500, 2017.1466064453125, 1143.7602539062500, 2017.0787353515625, 1143.5428466796875, 2016.7907714843750);
5372   // Segment 1143.5428101613127 2016.7908281215357 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1142.5947256938614 2017.7518879047705
5373   path.lineTo(1142.5947265625000, 2017.7518310546875);
5374   path.close();
5375   // start loop, contour: 22
5376   // Segment 1142.7322615746241 2017.9554063133189 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1145.8955864522438 2021.0760227493236
5377   path.moveTo(1142.7322998046875, 2017.9554443359375);
5378   path.lineTo(1145.8956298828125, 2021.0760498046875);
5379   // Segment 1145.8955864522438 2021.0760227493236 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1146.8436708834190 2020.1149629303029
5380   path.lineTo(1146.8436279296875, 2020.1149902343750);
5381   // Segment 1146.8436708834190 2020.1149629303029 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1143.6803460057993 2016.9943464942983
5382   path.lineTo(1143.6802978515625, 2016.9943847656250);
5383   // Segment 1143.6803460057993 2016.9943464942983 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1142.7322615746241 2017.9554063133189
5384   path.lineTo(1142.7322998046875, 2017.9554443359375);
5385   path.close();
5386   // start loop, contour: 23
5387   // Segment 1145.8955864341058 2021.0760227314306 0.2730164534637 0.2693304447891 -0.3016608168437 0.0000000000000 1146.8510041236877 2021.4740112423897
5388   path.moveTo(1145.8956298828125, 2021.0760498046875);
5389   path.cubicTo(1146.1685791015625, 2021.3453369140625, 1146.5493164062500, 2021.4739990234375, 1146.8509521484375, 2021.4739990234375);
5390   // Segment 1146.8510041236877 2021.4740112423897 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1146.8510041236877 2020.1240112185478
5391   path.lineTo(1146.8509521484375, 2020.1240234375000);
5392   // Segment 1146.8510041236877 2020.1240112185478 -0.0031276099109 0.0031991747760 0.0281856144058 0.0140930868099 1146.8580791488898 2020.1202473991566
5393   path.cubicTo(1146.8479003906250, 2020.1271972656250, 1146.8862304687500, 2020.1343994140625, 1146.8580322265625, 2020.1202392578125);
5394   // split at 0.3845077157021
5395   // path.cubicTo(1146.8497314453125, 2020.1252441406250, 1146.8547363281250, 2020.1270751953125, 1146.8596191406250, 2020.1280517578125);
5396   // path.cubicTo(1146.8675537109375, 2020.1296386718750, 1146.8753662109375, 2020.1289062500000, 1146.8580322265625, 2020.1202392578125);
5397   // Segment 1146.8580791488898 2020.1202473991566 -0.0369995545027 -0.0123195805663 0.0067223483810 0.0136883790721 1146.8436709015571 2020.1149629481959
5398   path.cubicTo(1146.8210449218750, 2020.1079101562500, 1146.8503417968750, 2020.1286621093750, 1146.8436279296875, 2020.1149902343750);
5399   // Segment 1146.8436709015571 2020.1149629481959 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1145.8955864341058 2021.0760227314306
5400   path.lineTo(1145.8956298828125, 2021.0760498046875);
5401   path.close();
5402   // start loop, contour: 24
5403   // Segment 1146.8510041236877 2021.4740112423897 0.3016605789999 0.0000000000000 -0.2730166120260 0.2693306012106 1147.8064220516883 2021.0760227314306
5404   path.moveTo(1146.8509521484375, 2021.4739990234375);
5405   path.cubicTo(1147.1527099609375, 2021.4739990234375, 1147.5334472656250, 2021.3453369140625, 1147.8063964843750, 2021.0760498046875);
5406   // Segment 1147.8064220516883 2021.0760227314306 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1146.8583375842370 2020.1149629481959
5407   path.lineTo(1146.8583984375000, 2020.1149902343750);
5408   // Segment 1146.8583375842370 2020.1149629481959 -0.0067222671256 0.0136883164611 0.0369996293611 -0.0123196021258 1146.8439293663473 2020.1202473404985
5409   path.cubicTo(1146.8515625000000, 2020.1286621093750, 1146.8809814453125, 2020.1079101562500, 1146.8438720703125, 2020.1202392578125);
5410   // Segment 1146.8439293663473 2020.1202473404985 -0.0281857033438 0.0140931104690 0.0031276541428 0.0031991704542 1146.8510041236877 2020.1240112185478
5411   path.cubicTo(1146.8157958984375, 2020.1343994140625, 1146.8541259765625, 2020.1271972656250, 1146.8509521484375, 2020.1240234375000);
5412   // Segment 1146.8510041236877 2020.1240112185478 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1146.8510041236877 2021.4740112423897
5413   path.lineTo(1146.8509521484375, 2021.4739990234375);
5414   path.close();
5415   // start loop, contour: 25
5416   // Segment 1147.8064220516883 2021.0760227314306 0.5430154146087 -0.5356841365729 0.5430154146087 0.5356841365729 1147.8064220516883 2019.1652101405787
5417   path.moveTo(1147.8063964843750, 2021.0760498046875);
5418   path.cubicTo(1148.3494873046875, 2020.5402832031250, 1148.3494873046875, 2019.7009277343750, 1147.8063964843750, 2019.1651611328125);
5419   // Segment 1147.8064220516883 2019.1652101405787 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1146.8583375842370 2020.1262699238134
5420   path.lineTo(1146.8583984375000, 2020.1262207031250);
5421   // Segment 1146.8583375842370 2020.1262699238134 0.0071280060876 0.0070317705240 0.0071280060876 -0.0070317705240 1146.8583375842370 2020.1149629481959
5422   path.cubicTo(1146.8654785156250, 2020.1333007812500, 1146.8654785156250, 2020.1079101562500, 1146.8583984375000, 2020.1149902343750);
5423   // Segment 1146.8583375842370 2020.1149629481959 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1147.8064220516883 2021.0760227314306
5424   path.lineTo(1147.8063964843750, 2021.0760498046875);
5425   path.close();
5426   // start loop, contour: 26
5427   // Segment 1147.8064220383478 2019.1652101274185 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1145.8121519520594 2017.1978648896866
5428   path.moveTo(1147.8063964843750, 2019.1651611328125);
5429   path.lineTo(1145.8121337890625, 2017.1978759765625);
5430   // Segment 1145.8121519520594 2017.1978648896866 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1144.8640675112890 2018.1589246992417
5431   path.lineTo(1144.8640136718750, 2018.1589355468750);
5432   // Segment 1144.8640675112890 2018.1589246992417 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1146.8583375975775 2020.1262699369736
5433   path.lineTo(1146.8583984375000, 2020.1262207031250);
5434   // Segment 1146.8583375975775 2020.1262699369736 0.0000000000000 0.0000000000000 0.0000000000000 0.0000000000000 1147.8064220383478 2019.1652101274185
5435   path.lineTo(1147.8063964843750, 2019.1651611328125);
5436   path.close();
5437 
5438 testSimplify(reporter, path, filename);
5439 }
5440 
testQuads66(skiatest::Reporter * reporter,const char * filename)5441 static void testQuads66(skiatest::Reporter* reporter,const char* filename) {
5442     SkPath path;
5443     path.moveTo(2, 0);
5444     path.quadTo(3, 1, 2, 2);
5445     path.lineTo(2, 3);
5446     path.close();
5447     path.moveTo(2, 1);
5448     path.lineTo(2, 1);
5449     path.quadTo(1, 2, 2, 2);
5450     path.close();
5451     testSimplify(reporter, path, filename);
5452 }
5453 
testQuads67(skiatest::Reporter * reporter,const char * filename)5454 static void testQuads67(skiatest::Reporter* reporter,const char* filename) {
5455     SkPath path;
5456     path.moveTo(3, 2);
5457     path.quadTo(1, 3, 3, 3);
5458     path.lineTo(3, 3);
5459     path.close();
5460     path.moveTo(0, 0);
5461     path.lineTo(1, 0);
5462     path.quadTo(2, 3, 3, 3);
5463     path.close();
5464     testSimplify(reporter, path, filename);
5465 }
5466 
testQuads68(skiatest::Reporter * reporter,const char * filename)5467 static void testQuads68(skiatest::Reporter* reporter,const char* filename) {
5468     SkPath path;
5469     path.moveTo(1, 2);
5470     path.quadTo(0, 3, 2, 3);
5471     path.lineTo(2, 3);
5472     path.close();
5473     path.moveTo(1, 0);
5474     path.lineTo(0, 1);
5475     path.quadTo(1, 3, 2, 3);
5476     path.close();
5477     testSimplify(reporter, path, filename);
5478 }
5479 
testQuads69(skiatest::Reporter * reporter,const char * filename)5480 static void testQuads69(skiatest::Reporter* reporter,const char* filename) {
5481     SkPath path;
5482     path.moveTo(1, 0);
5483     path.quadTo(2, 2, 2, 3);
5484     path.lineTo(2, 3);
5485     path.close();
5486     path.moveTo(1, 0);
5487     path.lineTo(1, 0);
5488     path.quadTo(3, 0, 1, 3);
5489     path.close();
5490     testSimplify(reporter, path, filename);
5491 }
5492 
testQuads70(skiatest::Reporter * reporter,const char * filename)5493 static void testQuads70(skiatest::Reporter* reporter, const char* filename) {
5494     SkPath path;
5495     path.moveTo(1, 1);
5496     path.quadTo(2, 3, 3, 3);
5497     path.lineTo(3, 3);
5498     path.close();
5499     path.moveTo(2, 0);
5500     path.lineTo(2, 2);
5501     path.quadTo(1, 3, 3, 3);
5502     path.close();
5503     testSimplify(reporter, path, filename);
5504 }
5505 
testQuads71(skiatest::Reporter * reporter,const char * filename)5506 static void testQuads71(skiatest::Reporter* reporter, const char* filename) {
5507     SkPath path;
5508     path.moveTo(1, 1);
5509     path.quadTo(2, 3, 3, 3);
5510     path.lineTo(3, 3);
5511     path.close();
5512     path.moveTo(3, 0);
5513     path.lineTo(2, 2);
5514     path.quadTo(1, 3, 3, 3);
5515     path.close();
5516     testSimplify(reporter, path, filename);
5517 }
5518 
testQuads72(skiatest::Reporter * reporter,const char * filename)5519 static void testQuads72(skiatest::Reporter* reporter, const char* filename) {
5520     SkPath path;
5521     path.moveTo(1, 1);
5522     path.quadTo(2, 3, 3, 3);
5523     path.lineTo(3, 3);
5524     path.close();
5525     path.moveTo(0, 1);
5526     path.lineTo(2, 2);
5527     path.quadTo(1, 3, 3, 3);
5528     path.close();
5529     testSimplify(reporter, path, filename);
5530 }
5531 
testQuads73(skiatest::Reporter * reporter,const char * filename)5532 static void testQuads73(skiatest::Reporter* reporter, const char* filename) {
5533     SkPath path;
5534     path.moveTo(0, 0);
5535     path.quadTo(0, 1, 1, 2);
5536     path.lineTo(0, 3);
5537     path.close();
5538     path.moveTo(0, 0);
5539     path.lineTo(0, 0);
5540     path.quadTo(0, 1, 1, 1);
5541     path.close();
5542     testSimplify(reporter, path, filename);
5543 }
5544 
bug5169(skiatest::Reporter * reporter,const char * filename)5545 static void bug5169(skiatest::Reporter* reporter, const char* filename) {
5546     SkPath path;
5547 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x4281c71c));  // 0, 64.8889f
5548 path.cubicTo(SkBits2Float(0x434e0000), SkBits2Float(0x4281c71c), SkBits2Float(0x00000000), SkBits2Float(0xc2a238e4), SkBits2Float(0x00000000), SkBits2Float(0x4281c71c));  // 206, 64.8889f, 0, -81.1111f, 0, 64.8889f
5549 path.moveTo(SkBits2Float(0x43300000), SkBits2Float(0x41971c72));  // 176, 18.8889f
5550 path.cubicTo(SkBits2Float(0xc29e0000), SkBits2Float(0xc25c71c7), SkBits2Float(0x42b20000), SkBits2Float(0x42fbc71c), SkBits2Float(0x43300000), SkBits2Float(0x41971c72));  // -79, -55.1111f, 89, 125.889f, 176, 18.8889f
5551     testSimplify(reporter, path, filename);
5552 }
5553 
tiger8_393(skiatest::Reporter * reporter,const char * filename)5554 static void tiger8_393(skiatest::Reporter* reporter, const char* filename) {
5555     SkPath path;
5556     path.setFillType((SkPathFillType) 0);
5557 path.moveTo(SkBits2Float(0x42b93333), SkBits2Float(0x43d5a666));  // 92.6f, 427.3f
5558 path.cubicTo(SkBits2Float(0x42b93333), SkBits2Float(0x43d5a666), SkBits2Float(0x42b5cccd), SkBits2Float(0x43da1999), SkBits2Float(0x42b80000), SkBits2Float(0x43ddf333));  // 92.6f, 427.3f, 90.9f, 436.2f, 92, 443.9f
5559 path.cubicTo(SkBits2Float(0x42b80000), SkBits2Float(0x43ddf333), SkBits2Float(0x42b30000), SkBits2Float(0x43e17333), SkBits2Float(0x42cf999a), SkBits2Float(0x43e1b333));  // 92, 443.9f, 89.5f, 450.9f, 103.8f, 451.4f
5560 path.cubicTo(SkBits2Float(0x42ec3334), SkBits2Float(0x43e14ccd), SkBits2Float(0x42e73334), SkBits2Float(0x43ddf333), SkBits2Float(0x42e73334), SkBits2Float(0x43ddf333));  // 118.1f, 450.6f, 115.6f, 443.9f, 115.6f, 443.9f
5561 path.cubicTo(SkBits2Float(0x42e7999a), SkBits2Float(0x43de8000), SkBits2Float(0x42ea6667), SkBits2Float(0x43db4000), SkBits2Float(0x42e60001), SkBits2Float(0x43d5a666));  // 115.8f, 445, 117.2f, 438.5f, 115, 427.3f
5562     testSimplify(reporter, path, filename);
5563 }
5564 
5565 // triggers angle assert from distance field code
carsvg_1(skiatest::Reporter * reporter,const char * filename)5566 static void carsvg_1(skiatest::Reporter* reporter, const char* filename) {
5567     SkPath path;
5568     path.setFillType((SkPathFillType) 0);
5569 path.moveTo(SkBits2Float(0x4393d61e), SkBits2Float(0x43e768f9));  // 295.673f, 462.82f
5570 path.cubicTo(SkBits2Float(0x4396b50e), SkBits2Float(0x43e63c20), SkBits2Float(0x43998931), SkBits2Float(0x43e6c43e), SkBits2Float(0x439cb6a8), SkBits2Float(0x43e70ef9));  // 301.414f, 460.47f, 307.072f, 461.533f, 313.427f, 462.117f
5571 path.cubicTo(SkBits2Float(0x439dfc1e), SkBits2Float(0x43e72ce0), SkBits2Float(0x439a285c), SkBits2Float(0x43e717fb), SkBits2Float(0x4398e23c), SkBits2Float(0x43e7027c));  // 315.97f, 462.351f, 308.315f, 462.187f, 305.767f, 462.019f
5572 path.cubicTo(SkBits2Float(0x4398136f), SkBits2Float(0x43e6f4db), SkBits2Float(0x439a7e14), SkBits2Float(0x43e6d390), SkBits2Float(0x439b4ba9), SkBits2Float(0x43e6b956));  // 304.152f, 461.913f, 308.985f, 461.653f, 310.591f, 461.448f
5573 path.cubicTo(SkBits2Float(0x439c2b19), SkBits2Float(0x43e68603), SkBits2Float(0x43abf4df), SkBits2Float(0x43e9ca9e), SkBits2Float(0x43a1daea), SkBits2Float(0x43e912a5));  // 312.337f, 461.047f, 343.913f, 467.583f, 323.71f, 466.146f
5574 path.cubicTo(SkBits2Float(0x43a4f45a), SkBits2Float(0x43e78baf), SkBits2Float(0x43a2a391), SkBits2Float(0x43e86a82), SkBits2Float(0x43a946bd), SkBits2Float(0x43e90c56));  // 329.909f, 463.091f, 325.278f, 464.832f, 338.553f, 466.096f
5575 path.lineTo(SkBits2Float(0x43a4250b), SkBits2Float(0x43e998dc));  // 328.289f, 467.194f
5576 path.cubicTo(SkBits2Float(0x43a8a9c8), SkBits2Float(0x43e8f06c), SkBits2Float(0x43a95cb5), SkBits2Float(0x43e84ea6), SkBits2Float(0x43a6f7c1), SkBits2Float(0x43e9bdb5));  // 337.326f, 465.878f, 338.724f, 464.614f, 333.936f, 467.482f
5577 path.cubicTo(SkBits2Float(0x43a59ed0), SkBits2Float(0x43e9d2ca), SkBits2Float(0x4395ea4d), SkBits2Float(0x43e92afe), SkBits2Float(0x43a06569), SkBits2Float(0x43e7773d));  // 331.241f, 467.647f, 299.83f, 466.336f, 320.792f, 462.932f
5578 path.cubicTo(SkBits2Float(0x438bf0ff), SkBits2Float(0x43ea0fef), SkBits2Float(0x43a0e17a), SkBits2Float(0x43e5f41b), SkBits2Float(0x4398f3fb), SkBits2Float(0x43e804c8));  // 279.883f, 468.124f, 321.762f, 459.907f, 305.906f, 464.037f
5579 path.lineTo(SkBits2Float(0x4393d61e), SkBits2Float(0x43e768f9));  // 295.673f, 462.82f
5580 path.close();
5581 
5582     testSimplify(reporter, path, filename);
5583 }
5584 
simplifyTest_1(skiatest::Reporter * reporter,const char * filename)5585 static void simplifyTest_1(skiatest::Reporter* reporter, const char* filename) {
5586     SkPath path;
5587     path.setFillType((SkPathFillType) 0);
5588 path.moveTo(SkBits2Float(0x42bfefd4), SkBits2Float(0x42ef80ef));  // 95.9684f, 119.752f
5589 path.quadTo(SkBits2Float(0x42c26810), SkBits2Float(0x42e214b8), SkBits2Float(0x42cdcad5), SkBits2Float(0x42d82aa2));  // 97.2032f, 113.04f, 102.896f, 108.083f
5590 path.lineTo(SkBits2Float(0x42cdcb21), SkBits2Float(0x42d82a61));  // 102.897f, 108.083f
5591 path.quadTo(SkBits2Float(0x42d5e3c8), SkBits2Float(0x42d12140), SkBits2Float(0x42e20ee8), SkBits2Float(0x42cdc937));  // 106.945f, 104.565f, 113.029f, 102.893f
5592 path.lineTo(SkBits2Float(0x42e256e3), SkBits2Float(0x42cdbc92));  // 113.17f, 102.868f
5593 path.lineTo(SkBits2Float(0x42f5eadb), SkBits2Float(0x42cc2cb3));  // 122.959f, 102.087f
5594 path.lineTo(SkBits2Float(0x42f746a6), SkBits2Float(0x42cccf85));  // 123.638f, 102.405f
5595 path.quadTo(SkBits2Float(0x42fa586c), SkBits2Float(0x42d126c4), SkBits2Float(0x42f6c657), SkBits2Float(0x42d5d315));  // 125.173f, 104.576f, 123.387f, 106.912f
5596 path.lineTo(SkBits2Float(0x42f591eb), SkBits2Float(0x42d4e76d));  // 122.785f, 106.452f
5597 path.lineTo(SkBits2Float(0x42f6c6e0), SkBits2Float(0x42d5d261));  // 123.388f, 106.911f
5598 path.quadTo(SkBits2Float(0x42f6bb33), SkBits2Float(0x42d5e1bb), SkBits2Float(0x42f6a3d8), SkBits2Float(0x42d6007c));  // 123.366f, 106.941f, 123.32f, 107.001f
5599 path.quadTo(SkBits2Float(0x42ea3850), SkBits2Float(0x42e65af0), SkBits2Float(0x42d97a6e), SkBits2Float(0x42ed841c));  // 117.11f, 115.178f, 108.739f, 118.758f
5600 path.lineTo(SkBits2Float(0x42d91d92), SkBits2Float(0x42ed9ec0));  // 108.558f, 118.81f
5601 path.lineTo(SkBits2Float(0x42c1a959), SkBits2Float(0x42f146b0));  // 96.8308f, 120.638f
5602 path.lineTo(SkBits2Float(0x42bfefd4), SkBits2Float(0x42ef80f0));  // 95.9684f, 119.752f
5603 path.lineTo(SkBits2Float(0x42bfefd4), SkBits2Float(0x42ef80ef));  // 95.9684f, 119.752f
5604 path.close();
5605 path.moveTo(SkBits2Float(0x42c2eb4e), SkBits2Float(0x42f00d68));  // 97.4596f, 120.026f
5606 path.lineTo(SkBits2Float(0x42c16d91), SkBits2Float(0x42efc72c));  // 96.714f, 119.889f
5607 path.lineTo(SkBits2Float(0x42c131c9), SkBits2Float(0x42ee47a8));  // 96.5972f, 119.14f
5608 path.lineTo(SkBits2Float(0x42d8a602), SkBits2Float(0x42ea9fb8));  // 108.324f, 117.312f
5609 path.lineTo(SkBits2Float(0x42d8e1ca), SkBits2Float(0x42ec1f3c));  // 108.441f, 118.061f
5610 path.lineTo(SkBits2Float(0x42d84926), SkBits2Float(0x42eaba5c));  // 108.143f, 117.364f
5611 path.quadTo(SkBits2Float(0x42e84a40), SkBits2Float(0x42e3e1f0), SkBits2Float(0x42f439a2), SkBits2Float(0x42d42af8));  // 116.145f, 113.941f, 122.113f, 106.084f
5612 path.quadTo(SkBits2Float(0x42f45121), SkBits2Float(0x42d40c08), SkBits2Float(0x42f45cf6), SkBits2Float(0x42d3fc79));  // 122.158f, 106.023f, 122.182f, 105.993f
5613 path.lineTo(SkBits2Float(0x42f45d7f), SkBits2Float(0x42d3fbc5));  // 122.183f, 105.992f
5614 path.quadTo(SkBits2Float(0x42f69510), SkBits2Float(0x42d114f4), SkBits2Float(0x42f4ccce), SkBits2Float(0x42ce8fb7));  // 123.291f, 104.541f, 122.4f, 103.281f
5615 path.lineTo(SkBits2Float(0x42f609ba), SkBits2Float(0x42cdaf9e));  // 123.019f, 102.843f
5616 path.lineTo(SkBits2Float(0x42f62899), SkBits2Float(0x42cf3289));  // 123.079f, 103.599f
5617 path.lineTo(SkBits2Float(0x42e294a1), SkBits2Float(0x42d0c268));  // 113.29f, 104.38f
5618 path.lineTo(SkBits2Float(0x42e275c2), SkBits2Float(0x42cf3f7d));  // 113.23f, 103.624f
5619 path.lineTo(SkBits2Float(0x42e2dc9c), SkBits2Float(0x42d0b5c3));  // 113.431f, 104.355f
5620 path.quadTo(SkBits2Float(0x42d75bb8), SkBits2Float(0x42d3df08), SkBits2Float(0x42cfc853), SkBits2Float(0x42da7457));  // 107.679f, 105.936f, 103.891f, 109.227f
5621 path.lineTo(SkBits2Float(0x42cec9ba), SkBits2Float(0x42d94f5c));  // 103.394f, 108.655f
5622 path.lineTo(SkBits2Float(0x42cfc89f), SkBits2Float(0x42da7416));  // 103.892f, 109.227f
5623 path.quadTo(SkBits2Float(0x42c53268), SkBits2Float(0x42e3ac00), SkBits2Float(0x42c2eb4e), SkBits2Float(0x42f00d67));  // 98.5984f, 113.836f, 97.4596f, 120.026f
5624 path.lineTo(SkBits2Float(0x42c2eb4e), SkBits2Float(0x42f00d68));  // 97.4596f, 120.026f
5625 path.close();
5626 
5627     testSimplify(reporter, path, filename);
5628 }
5629 
joel_1(skiatest::Reporter * reporter,const char * filename)5630 static void joel_1(skiatest::Reporter* reporter, const char* filename) {
5631     SkPath path;
5632     path.setFillType((SkPathFillType) 0);
5633 path.moveTo(144.859f, 285.172f);
5634 path.lineTo(144.859f, 285.172f);
5635 path.lineTo(144.859f, 285.172f);
5636 path.lineTo(143.132f, 284.617f);
5637 path.lineTo(144.859f, 285.172f);
5638 path.close();
5639 path.moveTo(135.922f, 286.844f);
5640 path.lineTo(135.922f, 286.844f);
5641 path.lineTo(135.922f, 286.844f);
5642 path.lineTo(135.367f, 288.571f);
5643 path.lineTo(135.922f, 286.844f);
5644 path.close();
5645 path.moveTo(135.922f, 286.844f);
5646 path.cubicTo(137.07f, 287.219f, 138.242f, 287.086f, 139.242f, 286.578f);
5647 path.cubicTo(140.234f, 286.078f, 141.031f, 285.203f, 141.406f, 284.055f);
5648 path.lineTo(144.859f, 285.172f);
5649 path.cubicTo(143.492f, 289.375f, 138.992f, 291.656f, 134.797f, 290.297f);
5650 path.lineTo(135.922f, 286.844f);
5651 path.close();
5652 path.moveTo(129.68f, 280.242f);
5653 path.lineTo(129.68f, 280.242f);
5654 path.lineTo(129.68f, 280.242f);
5655 path.lineTo(131.407f, 280.804f);
5656 path.lineTo(129.68f, 280.242f);
5657 path.close();
5658 path.moveTo(133.133f, 281.367f);
5659 path.cubicTo(132.758f, 282.508f, 132.883f, 283.687f, 133.391f, 284.679f);
5660 path.cubicTo(133.907f, 285.679f, 134.774f, 286.468f, 135.922f, 286.843f);
5661 path.lineTo(134.797f, 290.296f);
5662 path.cubicTo(130.602f, 288.929f, 128.313f, 284.437f, 129.68f, 280.241f);
5663 path.lineTo(133.133f, 281.367f);
5664 path.close();
5665 path.moveTo(139.742f, 275.117f);
5666 path.lineTo(139.742f, 275.117f);
5667 path.lineTo(139.18f, 276.844f);
5668 path.lineTo(139.742f, 275.117f);
5669 path.close();
5670 path.moveTo(138.609f, 278.57f);
5671 path.cubicTo(137.461f, 278.203f, 136.297f, 278.328f, 135.297f, 278.836f);
5672 path.cubicTo(134.297f, 279.344f, 133.508f, 280.219f, 133.133f, 281.367f);
5673 path.lineTo(129.68f, 280.242f);
5674 path.cubicTo(131.047f, 276.039f, 135.539f, 273.758f, 139.742f, 275.117f);
5675 path.lineTo(138.609f, 278.57f);
5676 path.close();
5677 path.moveTo(141.406f, 284.055f);
5678 path.cubicTo(141.773f, 282.907f, 141.648f, 281.735f, 141.148f, 280.735f);
5679 path.cubicTo(140.625f, 279.735f, 139.757f, 278.946f, 138.609f, 278.571f);
5680 path.lineTo(139.742f, 275.118f);
5681 path.cubicTo(143.937f, 276.493f, 146.219f, 280.977f, 144.859f, 285.173f);
5682 path.lineTo(141.406f, 284.055f);
5683 path.close();
5684     testSimplify(reporter, path, filename);
5685 }
5686 
joel_2(skiatest::Reporter * reporter,const char * filename)5687 static void joel_2(skiatest::Reporter* reporter, const char* filename) {
5688     SkPath path;
5689     path.setFillType((SkPathFillType) 0);
5690 
5691 path.moveTo(403.283f, 497.197f);
5692 path.cubicTo(403.424f, 497.244f, 391.111f, 495.556f, 391.111f, 495.556f);
5693 path.lineTo(392.291f, 493.165f);
5694 path.cubicTo(392.291f, 493.165f, 388.994f, 492.056f, 386.65f, 491.821f);
5695 path.cubicTo(384.244f, 491.454f, 381.603f, 490.774f, 381.603f, 490.774f);
5696 path.lineTo(383.392f, 488.383f);
5697 path.cubicTo(383.392f, 488.383f, 379.119f, 487.453f, 378.939f, 485.695f);
5698 path.cubicTo(378.791f, 483.57f, 383.064f, 485.25f, 384.877f, 485.843f);
5699 path.lineTo(387.697f, 484.351f);
5700 path.cubicTo(382.752f, 483.835f, 376.595f, 482.124f, 374.478f, 480.312f);
5701 path.lineTo(356.22f, 496.304f);
5702 path.lineTo(368.095f, 510.499f);
5703 path.lineTo(373.884f, 510.202f);
5704 path.lineTo(374.478f, 509.007f);
5705 path.lineTo(370.916f, 506.913f);
5706 path.lineTo(371.807f, 506.022f);
5707 path.cubicTo(371.807f, 506.022f, 374.807f, 507.28f, 377.752f, 507.514f);
5708 path.cubicTo(380.752f, 507.881f, 387.4f, 508.108f, 387.4f, 508.108f);
5709 path.lineTo(388.884f, 506.764f);
5710 path.cubicTo(388.884f, 506.764f, 378.345f, 504.998f, 378.345f, 504.819f);
5711 path.lineTo(378.04f, 503.03f);
5712 path.cubicTo(378.04f, 503.03f, 391.415f, 505.796f, 391.399f, 505.866f);
5713 path.lineTo(386.063f, 502.132f);
5714 path.lineTo(387.547f, 500.335f);
5715 path.lineTo(398.375f, 501.976f);
5716 path.lineTo(403.283f, 497.197f);
5717 path.lineTo(403.283f, 497.197f);
5718 path.close();
5719     testSimplify(reporter, path, filename);
5720 }
5721 
joel_3(skiatest::Reporter * reporter,const char * filename)5722 static void joel_3(skiatest::Reporter* reporter, const char* filename) {
5723     SkPath path;
5724     path.setFillType((SkPathFillType) 0);
5725 path.moveTo(391.097f, 334.453f);
5726 path.lineTo(390.761f, 334.617f);
5727 path.lineTo(390.425f, 333.937f);
5728 path.lineTo(390.761f, 333.765f);
5729 path.lineTo(391.097f, 334.453f);
5730 path.close();
5731 path.moveTo(391.128f, 334.438f);
5732 path.lineTo(390.808f, 334.633f);
5733 path.lineTo(390.402f, 333.992f);
5734 path.lineTo(390.73f, 333.781f);
5735 path.lineTo(391.128f, 334.438f);
5736 path.lineTo(391.128f, 334.438f);
5737 path.close();
5738 path.moveTo(455.073f, 302.219f);
5739 path.lineTo(455.018f, 302.375f);
5740 path.lineTo(454.87f, 302.453f);
5741 path.lineTo(454.706f, 302.109f);
5742 path.lineTo(455.073f, 302.219f);
5743 path.close();
5744 path.moveTo(454.87f, 302.453f);
5745 path.lineTo(391.097f, 334.453f);
5746 path.lineTo(390.761f, 333.765f);
5747 path.lineTo(454.534f, 301.765f);
5748 path.lineTo(454.87f, 302.453f);
5749 path.close();
5750 path.moveTo(456.245f, 296.867f);
5751 path.lineTo(456.659f, 296.953f);
5752 path.lineTo(456.526f, 297.351f);
5753 path.lineTo(456.174f, 297.242f);
5754 path.lineTo(456.245f, 296.867f);
5755 path.lineTo(456.245f, 296.867f);
5756 path.close();
5757 path.moveTo(456.526f, 297.352f);
5758 path.lineTo(455.073f, 302.219f);
5759 path.lineTo(454.339f, 302);
5760 path.lineTo(455.808f, 297.133f);
5761 path.lineTo(456.526f, 297.352f);
5762 path.lineTo(456.526f, 297.352f);
5763 path.close();
5764 path.moveTo(450.979f, 295.891f);
5765 path.lineTo(451.112f, 295.813f);
5766 path.lineTo(451.26f, 295.836f);
5767 path.lineTo(451.19f, 296.211f);
5768 path.lineTo(450.979f, 295.891f);
5769 path.close();
5770 path.moveTo(451.261f, 295.836f);
5771 path.lineTo(456.245f, 296.867f);
5772 path.lineTo(456.089f, 297.617f);
5773 path.lineTo(451.105f, 296.586f);
5774 path.lineTo(451.261f, 295.836f);
5775 path.close();
5776 path.moveTo(390.729f, 333.781f);
5777 path.lineTo(450.979f, 295.89f);
5778 path.lineTo(451.385f, 296.531f);
5779 path.lineTo(391.127f, 334.437f);
5780 path.lineTo(390.729f, 333.781f);
5781 path.close();
5782     testSimplify(reporter, path, filename);
5783 }
5784 
joel_4(skiatest::Reporter * reporter,const char * filename)5785 static void joel_4(skiatest::Reporter* reporter, const char* filename) {
5786     SkPath path;
5787     path.setFillType((SkPathFillType) 0);
5788 path.moveTo(SkBits2Float(0x4199d4fe), SkBits2Float(0x4265ac08));  // 19.229f, 57.418f
5789 path.cubicTo(SkBits2Float(0x419be979), SkBits2Float(0x426574bc), SkBits2Float(0x419c2b02), SkBits2Float(0x42653c6a), SkBits2Float(0x419af5c3), SkBits2Float(0x42645f3b));  // 19.489f, 57.364f, 19.521f, 57.309f, 19.37f, 57.093f
5790 path.cubicTo(SkBits2Float(0x419a1894), SkBits2Float(0x4263a3d7), SkBits2Float(0x4198cccd), SkBits2Float(0x4262f2b0), SkBits2Float(0x4197c290), SkBits2Float(0x4262374b));  // 19.262f, 56.91f, 19.1f, 56.737f, 18.97f, 56.554f
5791 path.cubicTo(SkBits2Float(0x41960832), SkBits2Float(0x42610c49), SkBits2Float(0x41944dd4), SkBits2Float(0x425fd709), SkBits2Float(0x41927cee), SkBits2Float(0x425ea0c4));  // 18.754f, 56.262f, 18.538f, 55.96f, 18.311f, 55.657f
5792 path.cubicTo(SkBits2Float(0x4191b646), SkBits2Float(0x425e1cab), SkBits2Float(0x418edd30), SkBits2Float(0x425ca4dd), SkBits2Float(0x418f4bc7), SkBits2Float(0x425bdd2e));  // 18.214f, 55.528f, 17.858f, 55.161f, 17.912f, 54.966f
5793 path.lineTo(SkBits2Float(0x41903f7d), SkBits2Float(0x425b6e96));  // 18.031f, 54.858f
5794 path.cubicTo(SkBits2Float(0x41921062), SkBits2Float(0x425aa6e8), SkBits2Float(0x4193872b), SkBits2Float(0x425bd1ea), SkBits2Float(0x41947ae1), SkBits2Float(0x425c77cd));  // 18.258f, 54.663f, 18.441f, 54.955f, 18.56f, 55.117f
5795 path.cubicTo(SkBits2Float(0x4195dd2f), SkBits2Float(0x425d6b83), SkBits2Float(0x4197ae14), SkBits2Float(0x425e1caa), SkBits2Float(0x419924dd), SkBits2Float(0x425ef9d9));  // 18.733f, 55.355f, 18.96f, 55.528f, 19.143f, 55.744f
5796 path.cubicTo(SkBits2Float(0x419a1893), SkBits2Float(0x425f9479), SkBits2Float(0x419adf3b), SkBits2Float(0x42601997), SkBits2Float(0x419bd2f1), SkBits2Float(0x42609db0));  // 19.262f, 55.895f, 19.359f, 56.025f, 19.478f, 56.154f
5797 path.cubicTo(SkBits2Float(0x419c147a), SkBits2Float(0x4260c9b8), SkBits2Float(0x419c8312), SkBits2Float(0x4260e03f), SkBits2Float(0x419cb020), SkBits2Float(0x42610104));  // 19.51f, 56.197f, 19.564f, 56.219f, 19.586f, 56.251f
5798 path.cubicTo(SkBits2Float(0x419d0830), SkBits2Float(0x42613850), SkBits2Float(0x419da3d6), SkBits2Float(0x4261bd6e), SkBits2Float(0x419e126e), SkBits2Float(0x4261d2f0));  // 19.629f, 56.305f, 19.705f, 56.435f, 19.759f, 56.456f
5799 path.lineTo(SkBits2Float(0x419e28f5), SkBits2Float(0x4261d2f0));  // 19.77f, 56.456f
5800 path.lineTo(SkBits2Float(0x419e28f5), SkBits2Float(0x4261f4bb));  // 19.77f, 56.489f
5801 path.cubicTo(SkBits2Float(0x419e3d70), SkBits2Float(0x4261fef8), SkBits2Float(0x419e53f7), SkBits2Float(0x4261f4bb), SkBits2Float(0x419e8105), SkBits2Float(0x4261fef8));  // 19.78f, 56.499f, 19.791f, 56.489f, 19.813f, 56.499f
5802 path.cubicTo(SkBits2Float(0x419eac07), SkBits2Float(0x426220c3), SkBits2Float(0x419eac07), SkBits2Float(0x42624187), SkBits2Float(0x419eef9d), SkBits2Float(0x4262580f));  // 19.834f, 56.532f, 19.834f, 56.564f, 19.867f, 56.586f
5803 path.cubicTo(SkBits2Float(0x419fe353), SkBits2Float(0x4262f2af), SkBits2Float(0x41a0eb84), SkBits2Float(0x426377cd), SkBits2Float(0x41a1b22c), SkBits2Float(0x4263fbe6));  // 19.986f, 56.737f, 20.115f, 56.867f, 20.212f, 56.996f
5804 path.cubicTo(SkBits2Float(0x41a20a3c), SkBits2Float(0x42641db1), SkBits2Float(0x41a2e76b), SkBits2Float(0x4264a1c9), SkBits2Float(0x41a34188), SkBits2Float(0x4264ad0d));  // 20.255f, 57.029f, 20.363f, 57.158f, 20.407f, 57.169f
5805 path.cubicTo(SkBits2Float(0x41a36c8a), SkBits2Float(0x4264ad0d), SkBits2Float(0x41a3c6a7), SkBits2Float(0x4264a1c9), SkBits2Float(0x41a3f1a9), SkBits2Float(0x4264ad0d));  // 20.428f, 57.169f, 20.472f, 57.158f, 20.493f, 57.169f
5806 path.cubicTo(SkBits2Float(0x41a3f1a9), SkBits2Float(0x42648c48), SkBits2Float(0x41a41eb7), SkBits2Float(0x42648105), SkBits2Float(0x41a449b9), SkBits2Float(0x426475c1));  // 20.493f, 57.137f, 20.515f, 57.126f, 20.536f, 57.115f
5807 path.cubicTo(SkBits2Float(0x41a48d4f), SkBits2Float(0x4263f1a8), SkBits2Float(0x41a46040), SkBits2Float(0x42634082), SkBits2Float(0x41a48d4f), SkBits2Float(0x4262bb63));  // 20.569f, 56.986f, 20.547f, 56.813f, 20.569f, 56.683f
5808 path.cubicTo(SkBits2Float(0x41a51061), SkBits2Float(0x426122d0), SkBits2Float(0x41a63126), SkBits2Float(0x425f51ea), SkBits2Float(0x41a82d0d), SkBits2Float(0x425e0624));  // 20.633f, 56.284f, 20.774f, 55.83f, 21.022f, 55.506f
5809 path.cubicTo(SkBits2Float(0x41a90a3c), SkBits2Float(0x425d820b), SkBits2Float(0x41aab01f), SkBits2Float(0x425cba5d), SkBits2Float(0x41ab0830), SkBits2Float(0x425c147a));  // 21.13f, 55.377f, 21.336f, 55.182f, 21.379f, 55.02f
5810 path.cubicTo(SkBits2Float(0x41aa147a), SkBits2Float(0x425bf3b5), SkBits2Float(0x41a8df3a), SkBits2Float(0x425c0936), SkBits2Float(0x41a7d4fd), SkBits2Float(0x425c147a));  // 21.26f, 54.988f, 21.109f, 55.009f, 20.979f, 55.02f
5811 path.cubicTo(SkBits2Float(0x41a74fde), SkBits2Float(0x425c147a), SkBits2Float(0x41a65e34), SkBits2Float(0x425c4082), SkBits2Float(0x41a5c28e), SkBits2Float(0x425c4082));  // 20.914f, 55.02f, 20.796f, 55.063f, 20.72f, 55.063f
5812 path.cubicTo(SkBits2Float(0x41a56a7e), SkBits2Float(0x425c353e), SkBits2Float(0x41a4fbe6), SkBits2Float(0x425c147a), SkBits2Float(0x41a4ced8), SkBits2Float(0x425c0936));  // 20.677f, 55.052f, 20.623f, 55.02f, 20.601f, 55.009f
5813 path.cubicTo(SkBits2Float(0x41a53d70), SkBits2Float(0x425af4bb), SkBits2Float(0x41a5ed90), SkBits2Float(0x425abd6f), SkBits2Float(0x41a85a1c), SkBits2Float(0x425aa6e8));  // 20.655f, 54.739f, 20.741f, 54.685f, 21.044f, 54.663f
5814 path.cubicTo(SkBits2Float(0x41a920c4), SkBits2Float(0x425a9cab), SkBits2Float(0x41a9d0e5), SkBits2Float(0x425aa6e8), SkBits2Float(0x41aa5603), SkBits2Float(0x425a9167));  // 21.141f, 54.653f, 21.227f, 54.663f, 21.292f, 54.642f
5815 path.cubicTo(SkBits2Float(0x41aa8311), SkBits2Float(0x425a8623), SkBits2Float(0x41aa9999), SkBits2Float(0x425a655f), SkBits2Float(0x41aab020), SkBits2Float(0x425a655f));  // 21.314f, 54.631f, 21.325f, 54.599f, 21.336f, 54.599f
5816 path.cubicTo(SkBits2Float(0x41aa3f7c), SkBits2Float(0x42599eb7), SkBits2Float(0x41a9a5e3), SkBits2Float(0x42591998), SkBits2Float(0x41a9374b), SkBits2Float(0x42586871));  // 21.281f, 54.405f, 21.206f, 54.275f, 21.152f, 54.102f
5817 path.cubicTo(SkBits2Float(0x41a8c8b3), SkBits2Float(0x4257e458), SkBits2Float(0x41a8b22c), SkBits2Float(0x42575f3a), SkBits2Float(0x41a85a1c), SkBits2Float(0x4256c49a));  // 21.098f, 53.973f, 21.087f, 53.843f, 21.044f, 53.692f
5818 path.cubicTo(SkBits2Float(0x41a76666), SkBits2Float(0x42551479), SkBits2Float(0x41a68937), SkBits2Float(0x4252cabf), SkBits2Float(0x41a74fdf), SkBits2Float(0x4250a1c9));  // 20.925f, 53.27f, 20.817f, 52.698f, 20.914f, 52.158f
5819 path.cubicTo(SkBits2Float(0x41a77ced), SkBits2Float(0x42500729), SkBits2Float(0x41a870a4), SkBits2Float(0x424e8417), SkBits2Float(0x41a8b22d), SkBits2Float(0x424e4ccb));  // 20.936f, 52.007f, 21.055f, 51.629f, 21.087f, 51.575f
5820 path.cubicTo(SkBits2Float(0x41a8b22d), SkBits2Float(0x424e4187), SkBits2Float(0x41aa147b), SkBits2Float(0x424cc9b9), SkBits2Float(0x41aab021), SkBits2Float(0x424c2f19));  // 21.087f, 51.564f, 21.26f, 51.197f, 21.336f, 51.046f
5821 path.cubicTo(SkBits2Float(0x41aac49c), SkBits2Float(0x424c1892), SkBits2Float(0x41ab49bb), SkBits2Float(0x424b9eb7), SkBits2Float(0x41ab8b44), SkBits2Float(0x424b676b));  // 21.346f, 51.024f, 21.411f, 50.905f, 21.443f, 50.851f
5822 path.cubicTo(SkBits2Float(0x41ac3d71), SkBits2Float(0x424ab644), SkBits2Float(0x41ad45a2), SkBits2Float(0x424a26e8), SkBits2Float(0x41ae22d1), SkBits2Float(0x42498105));  // 21.53f, 50.678f, 21.659f, 50.538f, 21.767f, 50.376f
5823 path.cubicTo(SkBits2Float(0x41ae6667), SkBits2Float(0x42496b84), SkBits2Float(0x41aeeb85), SkBits2Float(0x42491db1), SkBits2Float(0x41af0000), SkBits2Float(0x4248fbe6));  // 21.8f, 50.355f, 21.865f, 50.279f, 21.875f, 50.246f
5824 path.cubicTo(SkBits2Float(0x41b0624e), SkBits2Float(0x4248353e), SkBits2Float(0x41b1db23), SkBits2Float(0x424779da), SkBits2Float(0x41b353f8), SkBits2Float(0x4246bd6f));  // 22.048f, 50.052f, 22.232f, 49.869f, 22.416f, 49.685f
5825 path.cubicTo(SkBits2Float(0x41b3c083), SkBits2Float(0x42468623), SkBits2Float(0x41b445a2), SkBits2Float(0x42464ed7), SkBits2Float(0x41b4cac1), SkBits2Float(0x4246178c));  // 22.469f, 49.631f, 22.534f, 49.577f, 22.599f, 49.523f
5826 path.cubicTo(SkBits2Float(0x41b56667), SkBits2Float(0x4245c9b9), SkBits2Float(0x41b62d0f), SkBits2Float(0x4245872a), SkBits2Float(0x41b6c8b5), SkBits2Float(0x4245449a));  // 22.675f, 49.447f, 22.772f, 49.382f, 22.848f, 49.317f
5827 path.cubicTo(SkBits2Float(0x41b7624f), SkBits2Float(0x42450311), SkBits2Float(0x41b7e76d), SkBits2Float(0x4244a9fa), SkBits2Float(0x41b88313), SkBits2Float(0x42445d2d));  // 22.923f, 49.253f, 22.988f, 49.166f, 23.064f, 49.091f
5828 path.cubicTo(SkBits2Float(0x41b949bb), SkBits2Float(0x4243ee95), SkBits2Float(0x41ba1063), SkBits2Float(0x424374ba), SkBits2Float(0x41baed92), SkBits2Float(0x42431166));  // 23.161f, 48.983f, 23.258f, 48.864f, 23.366f, 48.767f
5829 path.cubicTo(SkBits2Float(0x41bb45a2), SkBits2Float(0x4242c393), SkBits2Float(0x41bbb43a), SkBits2Float(0x424276c6), SkBits2Float(0x41bc0e57), SkBits2Float(0x424228f3));  // 23.409f, 48.691f, 23.463f, 48.616f, 23.507f, 48.54f
5830 path.cubicTo(SkBits2Float(0x41bc6667), SkBits2Float(0x4241e664), SkBits2Float(0x41bc7ae2), SkBits2Float(0x4241a4da), SkBits2Float(0x41bcd2f3), SkBits2Float(0x4241624b));  // 23.55f, 48.475f, 23.56f, 48.411f, 23.603f, 48.346f
5831 path.cubicTo(SkBits2Float(0x41bd0001), SkBits2Float(0x42411478), SkBits2Float(0x41bd0001), SkBits2Float(0x4240c6a5), SkBits2Float(0x41bd1689), SkBits2Float(0x4240851c));  // 23.625f, 48.27f, 23.625f, 48.194f, 23.636f, 48.13f
5832 path.cubicTo(SkBits2Float(0x41bd2d10), SkBits2Float(0x42404cca), SkBits2Float(0x41bdb023), SkBits2Float(0x423fd3f5), SkBits2Float(0x41bd8521), SkBits2Float(0x423f7adf));  // 23.647f, 48.075f, 23.711f, 47.957f, 23.69f, 47.87f
5833 path.lineTo(SkBits2Float(0x41bd6e9a), SkBits2Float(0x423f7adf));  // 23.679f, 47.87f
5834 path.cubicTo(SkBits2Float(0x41bd6e9a), SkBits2Float(0x423f7adf), SkBits2Float(0x41bd5813), SkBits2Float(0x423f4ed7), SkBits2Float(0x41bd168a), SkBits2Float(0x423f4499));  // 23.679f, 47.87f, 23.668f, 47.827f, 23.636f, 47.817f
5835 path.cubicTo(SkBits2Float(0x41bc916b), SkBits2Float(0x423f22ce), SkBits2Float(0x41bc22d4), SkBits2Float(0x423f3955), SkBits2Float(0x41bb893a), SkBits2Float(0x423f178b));  // 23.571f, 47.784f, 23.517f, 47.806f, 23.442f, 47.773f
5836 path.cubicTo(SkBits2Float(0x41bb2f1d), SkBits2Float(0x423f0c47), SkBits2Float(0x41bb041b), SkBits2Float(0x423ee03f), SkBits2Float(0x41baac0b), SkBits2Float(0x423ec9b8));  // 23.398f, 47.762f, 23.377f, 47.719f, 23.334f, 47.697f
5837 path.cubicTo(SkBits2Float(0x41baac0b), SkBits2Float(0x423ebf7b), SkBits2Float(0x41bac086), SkBits2Float(0x423ea8f3), SkBits2Float(0x41bac086), SkBits2Float(0x423e926c));  // 23.334f, 47.687f, 23.344f, 47.665f, 23.344f, 47.643f
5838 path.cubicTo(SkBits2Float(0x41bb2f1e), SkBits2Float(0x423e882f), SkBits2Float(0x41bc0e59), SkBits2Float(0x423e6664), SkBits2Float(0x41bc916b), SkBits2Float(0x423e5c26));  // 23.398f, 47.633f, 23.507f, 47.6f, 23.571f, 47.59f
5839 path.cubicTo(SkBits2Float(0x41be4bc9), SkBits2Float(0x423e50e2), SkBits2Float(0x41c53542), SkBits2Float(0x423e926c), SkBits2Float(0x41c5ba61), SkBits2Float(0x423e24da));  // 23.787f, 47.579f, 24.651f, 47.643f, 24.716f, 47.536f
5840 path.cubicTo(SkBits2Float(0x41c61271), SkBits2Float(0x423de24b), SkBits2Float(0x41c61271), SkBits2Float(0x423d1a9d), SkBits2Float(0x41c63f80), SkBits2Float(0x423ca1c8));  // 24.759f, 47.471f, 24.759f, 47.276f, 24.781f, 47.158f
5841 path.cubicTo(SkBits2Float(0x41c68109), SkBits2Float(0x423bda1a), SkBits2Float(0x41c6ae18), SkBits2Float(0x423afceb), SkBits2Float(0x41c70628), SkBits2Float(0x423a2aff));  // 24.813f, 46.963f, 24.835f, 46.747f, 24.878f, 46.542f
5842 path.cubicTo(SkBits2Float(0x41c71caf), SkBits2Float(0x42399ba3), SkBits2Float(0x41c81065), SkBits2Float(0x42379eb5), SkBits2Float(0x41c79fc2), SkBits2Float(0x4237459f));  // 24.889f, 46.402f, 25.008f, 45.905f, 24.953f, 45.818f
5843 path.cubicTo(SkBits2Float(0x41c70628), SkBits2Float(0x4236e24b), SkBits2Float(0x41c4dd33), SkBits2Float(0x4237459f), SkBits2Float(0x41c45814), SkBits2Float(0x423750e3));  // 24.878f, 45.721f, 24.608f, 45.818f, 24.543f, 45.829f
5844 path.cubicTo(SkBits2Float(0x41c245a5), SkBits2Float(0x42379eb6), SkBits2Float(0x41bea5e7), SkBits2Float(0x42380d4d), SkBits2Float(0x41bbf5c6), SkBits2Float(0x4237ec89));  // 24.284f, 45.905f, 23.831f, 46.013f, 23.495f, 45.981f
5845 path.cubicTo(SkBits2Float(0x41b9f9df), SkBits2Float(0x4237e145), SkBits2Float(0x41b7e770), SkBits2Float(0x4237a9fa), SkBits2Float(0x41b62d12), SkBits2Float(0x4237676a));  // 23.247f, 45.97f, 22.988f, 45.916f, 22.772f, 45.851f
5846 path.cubicTo(SkBits2Float(0x41b4312b), SkBits2Float(0x423724db), SkBits2Float(0x41b1f1ae), SkBits2Float(0x42369fbc), SkBits2Float(0x41af9baa), SkBits2Float(0x423673b4));  // 22.524f, 45.786f, 22.243f, 45.656f, 21.951f, 45.613f
5847 path.cubicTo(SkBits2Float(0x41ae7ae5), SkBits2Float(0x42366977), SkBits2Float(0x41aced96), SkBits2Float(0x42365d2d), SkBits2Float(0x41ab8b48), SkBits2Float(0x42366977));  // 21.81f, 45.603f, 21.616f, 45.591f, 21.443f, 45.603f
5848 path.cubicTo(SkBits2Float(0x41a9e771), SkBits2Float(0x42368a3c), SkBits2Float(0x41a82d13), SkBits2Float(0x4236d708), SkBits2Float(0x41a65e3a), SkBits2Float(0x4236b644));  // 21.238f, 45.635f, 21.022f, 45.71f, 20.796f, 45.678f
5849 path.cubicTo(SkBits2Float(0x41a65e3a), SkBits2Float(0x4236ab00), SkBits2Float(0x41a647b3), SkBits2Float(0x42369fbd), SkBits2Float(0x41a65e3a), SkBits2Float(0x42369479));  // 20.796f, 45.667f, 20.785f, 45.656f, 20.796f, 45.645f
5850 path.cubicTo(SkBits2Float(0x41a672b5), SkBits2Float(0x42366977), SkBits2Float(0x41a7a7f4), SkBits2Float(0x42363125), SkBits2Float(0x41a81898), SkBits2Float(0x42361ba4));  // 20.806f, 45.603f, 20.957f, 45.548f, 21.012f, 45.527f
5851 path.cubicTo(SkBits2Float(0x41a85a21), SkBits2Float(0x42361060), SkBits2Float(0x41a8df40), SkBits2Float(0x4235d915), SkBits2Float(0x41a94dd7), SkBits2Float(0x4235cdd1));  // 21.044f, 45.516f, 21.109f, 45.462f, 21.163f, 45.451f
5852 path.cubicTo(SkBits2Float(0x41ab8b48), SkBits2Float(0x42356a7d), SkBits2Float(0x41af8523), SkBits2Float(0x423575c1), SkBits2Float(0x41b249be), SkBits2Float(0x42359685));  // 21.443f, 45.354f, 21.94f, 45.365f, 22.286f, 45.397f
5853 path.cubicTo(SkBits2Float(0x41b3d70e), SkBits2Float(0x4235a1c9), SkBits2Float(0x41b6168b), SkBits2Float(0x4235cdd1), SkBits2Float(0x41b7e770), SkBits2Float(0x4235ad0c));  // 22.48f, 45.408f, 22.761f, 45.451f, 22.988f, 45.419f
5854 path.cubicTo(SkBits2Float(0x41bac087), SkBits2Float(0x42359685), SkBits2Float(0x41bd6e9b), SkBits2Float(0x4234fbe5), SkBits2Float(0x41c03337), SkBits2Float(0x4234af18));  // 23.344f, 45.397f, 23.679f, 45.246f, 24.025f, 45.171f
5855 path.cubicTo(SkBits2Float(0x41c2cac4), SkBits2Float(0x42346145), SkBits2Float(0x41c56252), SkBits2Float(0x4234820a), SkBits2Float(0x41c81066), SkBits2Float(0x42346145));  // 24.349f, 45.095f, 24.673f, 45.127f, 25.008f, 45.095f
5856 path.cubicTo(SkBits2Float(0x41c824e1), SkBits2Float(0x42340935), SkBits2Float(0x41c89378), SkBits2Float(0x42330a3b), SkBits2Float(0x41c7b649), SkBits2Float(0x4232fef7));  // 25.018f, 45.009f, 25.072f, 44.76f, 24.964f, 44.749f
5857 path.cubicTo(SkBits2Float(0x41c6d91a), SkBits2Float(0x4232e976), SkBits2Float(0x41c5a3da), SkBits2Float(0x42338416), SkBits2Float(0x41c51ebc), SkBits2Float(0x4233a4da));  // 24.856f, 44.728f, 24.705f, 44.879f, 24.64f, 44.911f
5858 path.cubicTo(SkBits2Float(0x41c42b06), SkBits2Float(0x4233bb61), SkBits2Float(0x41c2cac4), SkBits2Float(0x4233d0e2), SkBits2Float(0x41c1d70e), SkBits2Float(0x4233e769));  // 24.521f, 44.933f, 24.349f, 44.954f, 24.23f, 44.976f
5859 path.cubicTo(SkBits2Float(0x41c08b47), SkBits2Float(0x4233f2ad), SkBits2Float(0x41bf1272), SkBits2Float(0x4233c6a4), SkBits2Float(0x41bdf3ba), SkBits2Float(0x4233bb61));  // 24.068f, 44.987f, 23.884f, 44.944f, 23.744f, 44.933f
5860 path.cubicTo(SkBits2Float(0x41bcd2f5), SkBits2Float(0x4233b01d), SkBits2Float(0x41bbf5c6), SkBits2Float(0x4233b01d), SkBits2Float(0x41baed95), SkBits2Float(0x4233a4da));  // 23.603f, 44.922f, 23.495f, 44.922f, 23.366f, 44.911f
5861 path.cubicTo(SkBits2Float(0x41ba26ed), SkBits2Float(0x42338f59), SkBits2Float(0x41b91cb0), SkBits2Float(0x4233580d), SkBits2Float(0x41b83f81), SkBits2Float(0x4233580d));  // 23.269f, 44.89f, 23.139f, 44.836f, 23.031f, 44.836f
5862 path.cubicTo(SkBits2Float(0x41b4b43d), SkBits2Float(0x42333642), SkBits2Float(0x41b19791), SkBits2Float(0x4233a4da), SkBits2Float(0x41aea7f4), SkBits2Float(0x4233d0e2));  // 22.588f, 44.803f, 22.199f, 44.911f, 21.832f, 44.954f
5863 path.cubicTo(SkBits2Float(0x41aba1cf), SkBits2Float(0x42340934), SkBits2Float(0x41a7666b), SkBits2Float(0x4233e769), SkBits2Float(0x41a4b856), SkBits2Float(0x42338415));  // 21.454f, 45.009f, 20.925f, 44.976f, 20.59f, 44.879f
5864 path.cubicTo(SkBits2Float(0x41a46046), SkBits2Float(0x423378d1), SkBits2Float(0x41a3f1ae), SkBits2Float(0x4233580d), SkBits2Float(0x41a3c6ac), SkBits2Float(0x42334cc9));  // 20.547f, 44.868f, 20.493f, 44.836f, 20.472f, 44.825f
5865 path.cubicTo(SkBits2Float(0x41a28f60), SkBits2Float(0x4233157d), SkBits2Float(0x41a19db6), SkBits2Float(0x42330a3a), SkBits2Float(0x41a0c087), SkBits2Float(0x4232c7aa));  // 20.32f, 44.771f, 20.202f, 44.76f, 20.094f, 44.695f
5866 path.cubicTo(SkBits2Float(0x41a0eb89), SkBits2Float(0x4232bc66), SkBits2Float(0x41a0eb89), SkBits2Float(0x4232905e), SkBits2Float(0x41a10210), SkBits2Float(0x4232905e));  // 20.115f, 44.684f, 20.115f, 44.641f, 20.126f, 44.641f
5867 path.cubicTo(SkBits2Float(0x41a19db6), SkBits2Float(0x42325912), SkBits2Float(0x41a2645e), SkBits2Float(0x42326f99), SkBits2Float(0x41a35608), SkBits2Float(0x42326f99));  // 20.202f, 44.587f, 20.299f, 44.609f, 20.417f, 44.609f
5868 path.cubicTo(SkBits2Float(0x41a476cd), SkBits2Float(0x42324ed4), SkBits2Float(0x41a5ed95), SkBits2Float(0x4232384d), SkBits2Float(0x41a724e1), SkBits2Float(0x42320c45));  // 20.558f, 44.577f, 20.741f, 44.555f, 20.893f, 44.512f
5869 path.cubicTo(SkBits2Float(0x41a8c8b8), SkBits2Float(0x4231c9b6), SkBits2Float(0x41aa999d), SkBits2Float(0x42316662), SkBits2Float(0x41ac26ed), SkBits2Float(0x4231188f));  // 21.098f, 44.447f, 21.325f, 44.35f, 21.519f, 44.274f
5870 path.cubicTo(SkBits2Float(0x41af168b), SkBits2Float(0x423072ac), SkBits2Float(0x41b249be), SkBits2Float(0x42300f58), SkBits2Float(0x41b57ae5), SkBits2Float(0x422fe249));  // 21.886f, 44.112f, 22.286f, 44.015f, 22.685f, 43.971f
5871 path.cubicTo(SkBits2Float(0x41b66e9b), SkBits2Float(0x422fd80c), SkBits2Float(0x41b7d0e9), SkBits2Float(0x422fee93), SkBits2Float(0x41b89791), SkBits2Float(0x422fee93));  // 22.804f, 43.961f, 22.977f, 43.983f, 23.074f, 43.983f
5872 path.cubicTo(SkBits2Float(0x41bb1897), SkBits2Float(0x42300f58), SkBits2Float(0x41bd2d12), SkBits2Float(0x423024d9), SkBits2Float(0x41bfc49f), SkBits2Float(0x4230301c));  // 23.387f, 44.015f, 23.647f, 44.036f, 23.971f, 44.047f
5873 path.cubicTo(SkBits2Float(0x41c0e357), SkBits2Float(0x423046a3), SkBits2Float(0x41c245a5), SkBits2Float(0x42305c24), SkBits2Float(0x41c3a7f3), SkBits2Float(0x423051e7));  // 24.111f, 44.069f, 24.284f, 44.09f, 24.457f, 44.08f
5874 path.cubicTo(SkBits2Float(0x41c50835), SkBits2Float(0x423046a3), SkBits2Float(0x41c69791), SkBits2Float(0x42300f58), SkBits2Float(0x41c79fc2), SkBits2Float(0x422fb641));  // 24.629f, 44.069f, 24.824f, 44.015f, 24.953f, 43.928f
5875 path.cubicTo(SkBits2Float(0x41c7f9df), SkBits2Float(0x422fa0c0), SkBits2Float(0x41c86876), SkBits2Float(0x422f5e31), SkBits2Float(0x41c8eb89), SkBits2Float(0x422f52ed));  // 24.997f, 43.907f, 25.051f, 43.842f, 25.115f, 43.831f
5876 path.cubicTo(SkBits2Float(0x41c9b43d), SkBits2Float(0x422f3c66), SkBits2Float(0x41c9df3f), SkBits2Float(0x422fb641), SkBits2Float(0x41c9f5c6), SkBits2Float(0x42300f57));  // 25.213f, 43.809f, 25.234f, 43.928f, 25.245f, 44.015f
5877 path.cubicTo(SkBits2Float(0x41ca0c4d), SkBits2Float(0x4230e143), SkBits2Float(0x41c9df3f), SkBits2Float(0x42319ca7), SkBits2Float(0x41c9f5c6), SkBits2Float(0x4232384d));  // 25.256f, 44.22f, 25.234f, 44.403f, 25.245f, 44.555f
5878 path.cubicTo(SkBits2Float(0x41ca395c), SkBits2Float(0x4234fbe2), SkBits2Float(0x41ca22d4), SkBits2Float(0x4237cabc), SkBits2Float(0x41ca7ae5), SkBits2Float(0x423a6d8c));  // 25.278f, 45.246f, 25.267f, 45.948f, 25.31f, 46.607f
5879 path.cubicTo(SkBits2Float(0x41ca916c), SkBits2Float(0x423b3f78), SkBits2Float(0x41ca645e), SkBits2Float(0x423ca1c5), SkBits2Float(0x41ca916c), SkBits2Float(0x423d9475));  // 25.321f, 46.812f, 25.299f, 47.158f, 25.321f, 47.395f
5880 path.cubicTo(SkBits2Float(0x41ca916c), SkBits2Float(0x423daafc), SkBits2Float(0x41ca7ae5), SkBits2Float(0x423dd704), SkBits2Float(0x41ca916c), SkBits2Float(0x423dec85));  // 25.321f, 47.417f, 25.31f, 47.46f, 25.321f, 47.481f
5881 path.cubicTo(SkBits2Float(0x41caa5e7), SkBits2Float(0x423e0e50), SkBits2Float(0x41cb0004), SkBits2Float(0x423e459c), SkBits2Float(0x41cb2b06), SkBits2Float(0x423e50df));  // 25.331f, 47.514f, 25.375f, 47.568f, 25.396f, 47.579f
5882 path.cubicTo(SkBits2Float(0x41cb6e9c), SkBits2Float(0x423e5c23), SkBits2Float(0x41ce47b2), SkBits2Float(0x423e7ce7), SkBits2Float(0x41ce8b48), SkBits2Float(0x423e6660));  // 25.429f, 47.59f, 25.785f, 47.622f, 25.818f, 47.6f
5883 path.lineTo(SkBits2Float(0x41ceb64a), SkBits2Float(0x423e5c23));  // 25.839f, 47.59f
5884 path.cubicTo(SkBits2Float(0x41d1395c), SkBits2Float(0x423e5c23), SkBits2Float(0x41d41273), SkBits2Float(0x423e50df), SkBits2Float(0x41d6666b), SkBits2Float(0x423e6660));  // 26.153f, 47.59f, 26.509f, 47.579f, 26.8f, 47.6f
5885 path.cubicTo(SkBits2Float(0x41d71898), SkBits2Float(0x423e7ce7), SkBits2Float(0x41d80a42), SkBits2Float(0x423e5c23), SkBits2Float(0x41d8a5e8), SkBits2Float(0x423e7ce7));  // 26.887f, 47.622f, 27.005f, 47.59f, 27.081f, 47.622f
5886 path.cubicTo(SkBits2Float(0x41d8d2f6), SkBits2Float(0x423e882b), SkBits2Float(0x41d8d2f6), SkBits2Float(0x423e9268), SkBits2Float(0x41d8fdf8), SkBits2Float(0x423e9eb2));  // 27.103f, 47.633f, 27.103f, 47.643f, 27.124f, 47.655f
5887 path.cubicTo(SkBits2Float(0x41d8e771), SkBits2Float(0x423ebf77), SkBits2Float(0x41d8fdf8), SkBits2Float(0x423ed4f8), SkBits2Float(0x41d8e771), SkBits2Float(0x423eeb7f));  // 27.113f, 47.687f, 27.124f, 47.708f, 27.113f, 47.73f
5888 path.cubicTo(SkBits2Float(0x41d88f61), SkBits2Float(0x423f4496), SkBits2Float(0x41d71898), SkBits2Float(0x423f4496), SkBits2Float(0x41d6aa00), SkBits2Float(0x423f9162));  // 27.07f, 47.817f, 26.887f, 47.817f, 26.833f, 47.892f
5889 path.cubicTo(SkBits2Float(0x41d547b2), SkBits2Float(0x42406e91), SkBits2Float(0x41d43d75), SkBits2Float(0x4241ba58), SkBits2Float(0x41d38d54), SkBits2Float(0x4242b952));  // 26.66f, 48.108f, 26.53f, 48.432f, 26.444f, 48.681f
5890 path.cubicTo(SkBits2Float(0x41d1395c), SkBits2Float(0x4245a8f0), SkBits2Float(0x41d0b231), SkBits2Float(0x42491dac), SkBits2Float(0x41d2147f), SkBits2Float(0x424c2f15));  // 26.153f, 49.415f, 26.087f, 50.279f, 26.26f, 51.046f
5891 path.cubicTo(SkBits2Float(0x41d2418d), SkBits2Float(0x424c7be2), SkBits2Float(0x41d2999e), SkBits2Float(0x424cc9b5), SkBits2Float(0x41d2b025), SkBits2Float(0x424d0c44));  // 26.282f, 51.121f, 26.325f, 51.197f, 26.336f, 51.262f
5892 path.cubicTo(SkBits2Float(0x41d33544), SkBits2Float(0x424dc7a8), SkBits2Float(0x41d3a3db), SkBits2Float(0x424e8413), SkBits2Float(0x41d453fc), SkBits2Float(0x424f136f));  // 26.401f, 51.445f, 26.455f, 51.629f, 26.541f, 51.769f
5893 path.cubicTo(SkBits2Float(0x41d453fc), SkBits2Float(0x424f136f), SkBits2Float(0x41d59fc3), SkBits2Float(0x42506a79), SkBits2Float(0x41d6c087), SkBits2Float(0x4250e454));  // 26.541f, 51.769f, 26.703f, 52.104f, 26.844f, 52.223f
5894 path.cubicTo(SkBits2Float(0x41d6c087), SkBits2Float(0x4250ef98), SkBits2Float(0x41d6eb89), SkBits2Float(0x4251105c), SkBits2Float(0x41d70210), SkBits2Float(0x4251105c));  // 26.844f, 52.234f, 26.865f, 52.266f, 26.876f, 52.266f
5895 path.cubicTo(SkBits2Float(0x41d71897), SkBits2Float(0x42511ba0), SkBits2Float(0x41d75a20), SkBits2Float(0x4251105c), SkBits2Float(0x41d7872f), SkBits2Float(0x4251105c));  // 26.887f, 52.277f, 26.919f, 52.266f, 26.941f, 52.266f
5896 path.cubicTo(SkBits2Float(0x41d87ae5), SkBits2Float(0x42501ca6), SkBits2Float(0x41d9147f), SkBits2Float(0x424f136e), SkBits2Float(0x41da0835), SkBits2Float(0x424e157b));  // 27.06f, 52.028f, 27.135f, 51.769f, 27.254f, 51.521f
5897 path.cubicTo(SkBits2Float(0x41da1ebc), SkBits2Float(0x424df4b6), SkBits2Float(0x41db1066), SkBits2Float(0x424d0c44), SkBits2Float(0x41db1066), SkBits2Float(0x424d0100));  // 27.265f, 51.489f, 27.383f, 51.262f, 27.383f, 51.251f
5898 path.cubicTo(SkBits2Float(0x41db3d74), SkBits2Float(0x424cc9b4), SkBits2Float(0x41db9585), SkBits2Float(0x424c8725), SkBits2Float(0x41dbd91a), SkBits2Float(0x424c5b1d));  // 27.405f, 51.197f, 27.448f, 51.132f, 27.481f, 51.089f
5899 path.cubicTo(SkBits2Float(0x41dc5e39), SkBits2Float(0x424bcbc1), SkBits2Float(0x41dcf7d2), SkBits2Float(0x424b301b), SkBits2Float(0x41dd7cf1), SkBits2Float(0x424aac02));  // 27.546f, 50.949f, 27.621f, 50.797f, 27.686f, 50.668f
5900 path.cubicTo(SkBits2Float(0x41ddd501), SkBits2Float(0x424a5e2f), SkBits2Float(0x41ddeb89), SkBits2Float(0x424a105c), SkBits2Float(0x41de4399), SkBits2Float(0x4249b84c));  // 27.729f, 50.592f, 27.74f, 50.516f, 27.783f, 50.43f
5901 path.cubicTo(SkBits2Float(0x41de70a7), SkBits2Float(0x4249a1c5), SkBits2Float(0x41def5c6), SkBits2Float(0x42490725), SkBits2Float(0x41df20c8), SkBits2Float(0x4248e660));  // 27.805f, 50.408f, 27.87f, 50.257f, 27.891f, 50.225f
5902 path.cubicTo(SkBits2Float(0x41df8f60), SkBits2Float(0x42488206), SkBits2Float(0x41e0c49f), SkBits2Float(0x42474cc6), SkBits2Float(0x41e10835), SkBits2Float(0x42472c02));  // 27.945f, 50.127f, 28.096f, 49.825f, 28.129f, 49.793f
5903 path.cubicTo(SkBits2Float(0x41e11ebc), SkBits2Float(0x42472c02), SkBits2Float(0x41e13337), SkBits2Float(0x4246fef4), SkBits2Float(0x41e13337), SkBits2Float(0x4246f4b6));  // 28.14f, 49.793f, 28.15f, 49.749f, 28.15f, 49.739f
5904 path.cubicTo(SkBits2Float(0x41e149be), SkBits2Float(0x4246c7a8), SkBits2Float(0x41e226ed), SkBits2Float(0x42461787), SkBits2Float(0x41e253fc), SkBits2Float(0x4245df35));  // 28.161f, 49.695f, 28.269f, 49.523f, 28.291f, 49.468f
5905 path.cubicTo(SkBits2Float(0x41e27efe), SkBits2Float(0x4245d3f1), SkBits2Float(0x41e2ac0c), SkBits2Float(0x42459ca6), SkBits2Float(0x41e2ac0c), SkBits2Float(0x42459162));  // 28.312f, 49.457f, 28.334f, 49.403f, 28.334f, 49.392f
5906 path.cubicTo(SkBits2Float(0x41e372b4), SkBits2Float(0x4244e141), SkBits2Float(0x41e4666a), SkBits2Float(0x42445c23), SkBits2Float(0x41e4eb89), SkBits2Float(0x42437ef3));  // 28.431f, 49.22f, 28.55f, 49.09f, 28.615f, 48.874f
5907 path.cubicTo(SkBits2Float(0x41e4a7f3), SkBits2Float(0x424373af), SkBits2Float(0x41e47ae5), SkBits2Float(0x42435e2e), SkBits2Float(0x41e4666a), SkBits2Float(0x42435e2e));  // 28.582f, 48.863f, 28.56f, 48.842f, 28.55f, 48.842f
5908 path.cubicTo(SkBits2Float(0x41e3893b), SkBits2Float(0x42433c63), SkBits2Float(0x41e1fbeb), SkBits2Float(0x4243686b), SkBits2Float(0x41e18b47), SkBits2Float(0x42431b9f));  // 28.442f, 48.809f, 28.248f, 48.852f, 28.193f, 48.777f
5909 path.cubicTo(SkBits2Float(0x41e16045), SkBits2Float(0x4242f9d4), SkBits2Float(0x41e18b47), SkBits2Float(0x4242ee91), SkBits2Float(0x41e16045), SkBits2Float(0x4242d910));  // 28.172f, 48.744f, 28.193f, 48.733f, 28.172f, 48.712f
5910 path.cubicTo(SkBits2Float(0x41e1a1ce), SkBits2Float(0x4242b84b), SkBits2Float(0x41e1fbeb), SkBits2Float(0x42429681), SkBits2Float(0x41e226ed), SkBits2Float(0x42429681));  // 28.204f, 48.68f, 28.248f, 48.647f, 28.269f, 48.647f
5911 path.cubicTo(SkBits2Float(0x41e3cac4), SkBits2Float(0x42425f35), SkBits2Float(0x41e9c087), SkBits2Float(0x4242b84c), SkBits2Float(0x41ea5c2c), SkBits2Float(0x424248ae));  // 28.474f, 48.593f, 29.219f, 48.68f, 29.295f, 48.571f
5912 path.cubicTo(SkBits2Float(0x41eacac4), SkBits2Float(0x4241fbe1), SkBits2Float(0x41eacac4), SkBits2Float(0x42414aba), SkBits2Float(0x41eaf7d2), SkBits2Float(0x4240d0df));  // 29.349f, 48.496f, 29.349f, 48.323f, 29.371f, 48.204f
5913 path.cubicTo(SkBits2Float(0x41eb395b), SkBits2Float(0x4240580a), SkBits2Float(0x41eba7f3), SkBits2Float(0x423fb121), SkBits2Float(0x41ebd501), SkBits2Float(0x423f21c4));  // 29.403f, 48.086f, 29.457f, 47.923f, 29.479f, 47.783f
5914 path.cubicTo(SkBits2Float(0x41ec2d11), SkBits2Float(0x423e4fd8), SkBits2Float(0x41ec5813), SkBits2Float(0x423d936e), SkBits2Float(0x41ecb230), SkBits2Float(0x423cb63f));  // 29.522f, 47.578f, 29.543f, 47.394f, 29.587f, 47.178f
5915 path.cubicTo(SkBits2Float(0x41ecc8b7), SkBits2Float(0x423c5e2f), SkBits2Float(0x41edba61), SkBits2Float(0x423b332d), SkBits2Float(0x41ed8f5f), SkBits2Float(0x423ac495));  // 29.598f, 47.092f, 29.716f, 46.8f, 29.695f, 46.692f
5916 path.cubicTo(SkBits2Float(0x41ed6251), SkBits2Float(0x423a8d49), SkBits2Float(0x41ec9ba9), SkBits2Float(0x423a407c), SkBits2Float(0x41ec2d11), SkBits2Float(0x423a3539));  // 29.673f, 46.638f, 29.576f, 46.563f, 29.522f, 46.552f
5917 path.cubicTo(SkBits2Float(0x41ec0003), SkBits2Float(0x423a29f5), SkBits2Float(0x41ebeb88), SkBits2Float(0x423a3539), SkBits2Float(0x41ebd501), SkBits2Float(0x423a3539));  // 29.5f, 46.541f, 29.49f, 46.552f, 29.479f, 46.552f
5918 path.cubicTo(SkBits2Float(0x41eb6669), SkBits2Float(0x423a29f5), SkBits2Float(0x41ea72b3), SkBits2Float(0x4239f2aa), SkBits2Float(0x41e9c086), SkBits2Float(0x423a0931));  // 29.425f, 46.541f, 29.306f, 46.487f, 29.219f, 46.509f
5919 path.cubicTo(SkBits2Float(0x41e99584), SkBits2Float(0x423a0931), SkBits2Float(0x41e96876), SkBits2Float(0x423a29f6), SkBits2Float(0x41e953fb), SkBits2Float(0x423a3539));  // 29.198f, 46.509f, 29.176f, 46.541f, 29.166f, 46.552f
5920 path.cubicTo(SkBits2Float(0x41e96876), SkBits2Float(0x423a8d49), SkBits2Float(0x41e9c086), SkBits2Float(0x423acfd9), SkBits2Float(0x41e9d70d), SkBits2Float(0x423b28ef));  // 29.176f, 46.638f, 29.219f, 46.703f, 29.23f, 46.79f
5921 path.cubicTo(SkBits2Float(0x41ea041b), SkBits2Float(0x423bd910), SkBits2Float(0x41e8fbea), SkBits2Float(0x423c73b0), SkBits2Float(0x41e849bd), SkBits2Float(0x423cac01));  // 29.252f, 46.962f, 29.123f, 47.113f, 29.036f, 47.168f
5922 path.cubicTo(SkBits2Float(0x41e75607), SkBits2Float(0x423cf8ce), SkBits2Float(0x41e5f3b9), SkBits2Float(0x423ced8a), SkBits2Float(0x41e4eb88), SkBits2Float(0x423cd809));  // 28.917f, 47.243f, 28.744f, 47.232f, 28.615f, 47.211f
5923 path.cubicTo(SkBits2Float(0x41e372b3), SkBits2Float(0x423cb63e), SkBits2Float(0x41e2ac0b), SkBits2Float(0x423c0517), SkBits2Float(0x41e10834), SkBits2Float(0x423c52ea));  // 28.431f, 47.178f, 28.334f, 47.005f, 28.129f, 47.081f
5924 path.cubicTo(SkBits2Float(0x41e0db26), SkBits2Float(0x423cd809), SkBits2Float(0x41e0999c), SkBits2Float(0x423d46a0), SkBits2Float(0x41dfd0e8), SkBits2Float(0x423d72a8));  // 28.107f, 47.211f, 28.075f, 47.319f, 27.977f, 47.362f
5925 path.cubicTo(SkBits2Float(0x41deb230), SkBits2Float(0x423dcab8), SkBits2Float(0x41dd3b67), SkBits2Float(0x423d8829), SkBits2Float(0x41dc312a), SkBits2Float(0x423d46a0));  // 27.837f, 47.448f, 27.654f, 47.383f, 27.524f, 47.319f
5926 path.cubicTo(SkBits2Float(0x41dae563), SkBits2Float(0x423cf8cd), SkBits2Float(0x41d98316), SkBits2Float(0x423cccc5), SkBits2Float(0x41d8645d), SkBits2Float(0x423c6971));  // 27.362f, 47.243f, 27.189f, 47.2f, 27.049f, 47.103f
5927 path.cubicTo(SkBits2Float(0x41d7df3e), SkBits2Float(0x423c52ea), SkBits2Float(0x41d72d11), SkBits2Float(0x423c311f), SkBits2Float(0x41d6a9ff), SkBits2Float(0x423c0517));  // 26.984f, 47.081f, 26.897f, 47.048f, 26.833f, 47.005f
5928 path.cubicTo(SkBits2Float(0x41d67cf1), SkBits2Float(0x423bfada), SkBits2Float(0x41d572b3), SkBits2Float(0x423b967f), SkBits2Float(0x41d5893a), SkBits2Float(0x423b967f));  // 26.811f, 46.995f, 26.681f, 46.897f, 26.692f, 46.897f
5929 path.cubicTo(SkBits2Float(0x41d5893a), SkBits2Float(0x423b967f), SkBits2Float(0x41d5b648), SkBits2Float(0x423b6a77), SkBits2Float(0x41d5ccd0), SkBits2Float(0x423b6a77));  // 26.692f, 46.897f, 26.714f, 46.854f, 26.725f, 46.854f
5930 path.cubicTo(SkBits2Float(0x41d6eb88), SkBits2Float(0x423b3e6f), SkBits2Float(0x41d8374f), SkBits2Float(0x423b967f), SkBits2Float(0x41d8fdf7), SkBits2Float(0x423bad06));  // 26.865f, 46.811f, 27.027f, 46.897f, 27.124f, 46.919f
5931 path.cubicTo(SkBits2Float(0x41d9c6ab), SkBits2Float(0x423bb84a), SkBits2Float(0x41da49be), SkBits2Float(0x423bb84a), SkBits2Float(0x41db1066), SkBits2Float(0x423bd90e));  // 27.222f, 46.93f, 27.286f, 46.93f, 27.383f, 46.962f
5932 path.cubicTo(SkBits2Float(0x41db810a), SkBits2Float(0x423bd90e), SkBits2Float(0x41dc5e39), SkBits2Float(0x423bfad9), SkBits2Float(0x41dcf7d3), SkBits2Float(0x423bef95));  // 27.438f, 46.962f, 27.546f, 46.995f, 27.621f, 46.984f
5933 path.cubicTo(SkBits2Float(0x41ddd502), SkBits2Float(0x423bc38d), SkBits2Float(0x41dd4fe3), SkBits2Float(0x423b332b), SkBits2Float(0x41dd7cf2), SkBits2Float(0x423ab94f));  // 27.729f, 46.941f, 27.664f, 46.8f, 27.686f, 46.681f
5934 path.cubicTo(SkBits2Float(0x41dda7f4), SkBits2Float(0x423a77c6), SkBits2Float(0x41de2d13), SkBits2Float(0x423a29f3), SkBits2Float(0x41de70a8), SkBits2Float(0x423a136c));  // 27.707f, 46.617f, 27.772f, 46.541f, 27.805f, 46.519f
5935 path.cubicTo(SkBits2Float(0x41dfba62), SkBits2Float(0x4239c69f), SkBits2Float(0x41e253fc), SkBits2Float(0x423a092f), SkBits2Float(0x41e372b4), SkBits2Float(0x423a4bbe));  // 27.966f, 46.444f, 28.291f, 46.509f, 28.431f, 46.574f
5936 path.cubicTo(SkBits2Float(0x41e40e5a), SkBits2Float(0x423a6c83), SkBits2Float(0x41e49379), SkBits2Float(0x423a8d47), SkBits2Float(0x41e55a21), SkBits2Float(0x423ab94f));  // 28.507f, 46.606f, 28.572f, 46.638f, 28.669f, 46.681f
5937 path.lineTo(SkBits2Float(0x41e58523), SkBits2Float(0x423acfd6));  // 28.69f, 46.703f
5938 path.cubicTo(SkBits2Float(0x41e5b231), SkBits2Float(0x423acfd6), SkBits2Float(0x41e60a42), SkBits2Float(0x423ac492), SkBits2Float(0x41e66252), SkBits2Float(0x423acfd6));  // 28.712f, 46.703f, 28.755f, 46.692f, 28.798f, 46.703f
5939 path.cubicTo(SkBits2Float(0x41e66252), SkBits2Float(0x423ab94f), SkBits2Float(0x41e68f60), SkBits2Float(0x423ab94f), SkBits2Float(0x41e6a5e8), SkBits2Float(0x423aae0b));  // 28.798f, 46.681f, 28.82f, 46.681f, 28.831f, 46.67f
5940 path.cubicTo(SkBits2Float(0x41e6fdf8), SkBits2Float(0x423a136b), SkBits2Float(0x41e5dd34), SkBits2Float(0x423978cc), SkBits2Float(0x41e68f61), SkBits2Float(0x4238fef0));  // 28.874f, 46.519f, 28.733f, 46.368f, 28.82f, 46.249f
5941 path.cubicTo(SkBits2Float(0x41e72b07), SkBits2Float(0x42389058), SkBits2Float(0x41eaf7d4), SkBits2Float(0x42391577), SkBits2Float(0x41ec5815), SkBits2Float(0x4238f3ac));  // 28.896f, 46.141f, 29.371f, 46.271f, 29.543f, 46.238f
5942 path.cubicTo(SkBits2Float(0x41ef1cb1), SkBits2Float(0x4238bd66), SkBits2Float(0x41ed6252), SkBits2Float(0x4237d4f4), SkBits2Float(0x41ede771), SkBits2Float(0x42369eae));  // 29.889f, 46.185f, 29.673f, 45.958f, 29.738f, 45.655f
5943 path.cubicTo(SkBits2Float(0x41ee28fa), SkBits2Float(0x423651e1), SkBits2Float(0x41ee8317), SkBits2Float(0x42366868), SkBits2Float(0x41eedb27), SkBits2Float(0x42365c1f));  // 29.77f, 45.58f, 29.814f, 45.602f, 29.857f, 45.59f
5944 path.cubicTo(SkBits2Float(0x41ef0629), SkBits2Float(0x4236a9f2), SkBits2Float(0x41ef3337), SkBits2Float(0x42371889), SkBits2Float(0x41ef3337), SkBits2Float(0x42375b19));  // 29.878f, 45.666f, 29.9f, 45.774f, 29.9f, 45.839f
5945 path.cubicTo(SkBits2Float(0x41ef49be), SkBits2Float(0x4237e038), SkBits2Float(0x41ef3337), SkBits2Float(0x42386450), SkBits2Float(0x41ef49be), SkBits2Float(0x4238d2e8));  // 29.911f, 45.969f, 29.9f, 46.098f, 29.911f, 46.206f
5946 path.cubicTo(SkBits2Float(0x41ef8b47), SkBits2Float(0x42394cc3), SkBits2Float(0x41eff9df), SkBits2Float(0x4239e763), SkBits2Float(0x41f026ed), SkBits2Float(0x423a613e));  // 29.943f, 46.325f, 29.997f, 46.476f, 30.019f, 46.595f
5947 path.cubicTo(SkBits2Float(0x41f0ac0c), SkBits2Float(0x423b967d), SkBits2Float(0x41f11897), SkBits2Float(0x423ca0bb), SkBits2Float(0x41f1893b), SkBits2Float(0x423dd5fa));  // 30.084f, 46.897f, 30.137f, 47.157f, 30.192f, 47.459f
5948 path.cubicTo(SkBits2Float(0x41f19db6), SkBits2Float(0x423e1889), SkBits2Float(0x41f1f5c6), SkBits2Float(0x423e7bdd), SkBits2Float(0x41f20e5a), SkBits2Float(0x423ebe6d));  // 30.202f, 47.524f, 30.245f, 47.621f, 30.257f, 47.686f
5949 path.cubicTo(SkBits2Float(0x41f27ae5), SkBits2Float(0x423f9059), SkBits2Float(0x41f2be7b), SkBits2Float(0x42406d88), SkBits2Float(0x41f3168b), SkBits2Float(0x424128ec));  // 30.31f, 47.891f, 30.343f, 48.107f, 30.386f, 48.29f
5950 path.cubicTo(SkBits2Float(0x41f35814), SkBits2Float(0x42418203), SkBits2Float(0x41f35814), SkBits2Float(0x4241e556), SkBits2Float(0x41f38523), SkBits2Float(0x42423329));  // 30.418f, 48.377f, 30.418f, 48.474f, 30.44f, 48.55f
5951 path.cubicTo(SkBits2Float(0x41f3b025), SkBits2Float(0x424248aa), SkBits2Float(0x41f420c9), SkBits2Float(0x424275b8), SkBits2Float(0x41f46252), SkBits2Float(0x424280fc));  // 30.461f, 48.571f, 30.516f, 48.615f, 30.548f, 48.626f
5952 path.cubicTo(SkBits2Float(0x41f4fdf8), SkBits2Float(0x4242967d), SkBits2Float(0x41f5db27), SkBits2Float(0x424275b8), SkBits2Float(0x41f674c1), SkBits2Float(0x424280fc));  // 30.624f, 48.647f, 30.732f, 48.615f, 30.807f, 48.626f
5953 path.cubicTo(SkBits2Float(0x41f8f5c7), SkBits2Float(0x4242967d), SkBits2Float(0x41fc5609), SkBits2Float(0x424280fc), SkBits2Float(0x41feeb8a), SkBits2Float(0x4242a1c1));  // 31.12f, 48.647f, 31.542f, 48.626f, 31.865f, 48.658f
5954 path.cubicTo(SkBits2Float(0x41ff45a7), SkBits2Float(0x4242a1c1), SkBits2Float(0x41ffdf40), SkBits2Float(0x424280fc), SkBits2Float(0x4200322f), SkBits2Float(0x4242a1c1));  // 31.909f, 48.658f, 31.984f, 48.626f, 32.049f, 48.658f
5955 path.cubicTo(SkBits2Float(0x420048b6), SkBits2Float(0x4242a1c1), SkBits2Float(0x42005e37), SkBits2Float(0x4242c286), SkBits2Float(0x420074be), SkBits2Float(0x4242d90d));  // 32.071f, 48.658f, 32.092f, 48.69f, 32.114f, 48.712f
5956 path.cubicTo(SkBits2Float(0x420074be), SkBits2Float(0x4242ee8e), SkBits2Float(0x42008002), SkBits2Float(0x42431b9c), SkBits2Float(0x420074be), SkBits2Float(0x4243311d));  // 32.114f, 48.733f, 32.125f, 48.777f, 32.114f, 48.798f
5957 path.lineTo(SkBits2Float(0x420052f3), SkBits2Float(0x42433c61));  // 32.081f, 48.809f
5958 path.cubicTo(SkBits2Float(0x42001cad), SkBits2Float(0x42439fb5), SkBits2Float(0x41ff2f1d), SkBits2Float(0x42436869), SkBits2Float(0x41fe7cf0), SkBits2Float(0x4243aaf9));  // 32.028f, 48.906f, 31.898f, 48.852f, 31.811f, 48.917f
5959 path.cubicTo(SkBits2Float(0x41fe24e0), SkBits2Float(0x4243cbbe), SkBits2Float(0x41fd3336), SkBits2Float(0x4244cab7), SkBits2Float(0x41fd0627), SkBits2Float(0x42450203));  // 31.768f, 48.949f, 31.65f, 49.198f, 31.628f, 49.252f
5960 path.cubicTo(SkBits2Float(0x41fcc291), SkBits2Float(0x4245438c), SkBits2Float(0x41fcc291), SkBits2Float(0x42457bde), SkBits2Float(0x41fcae17), SkBits2Float(0x4245be6d));  // 31.595f, 49.316f, 31.595f, 49.371f, 31.585f, 49.436f
5961 path.cubicTo(SkBits2Float(0x41fc9790), SkBits2Float(0x4245fff6), SkBits2Float(0x41fc28f8), SkBits2Float(0x4246634a), SkBits2Float(0x41fc1271), SkBits2Float(0x4246b11d));  // 31.574f, 49.5f, 31.52f, 49.597f, 31.509f, 49.673f
5962 path.cubicTo(SkBits2Float(0x41fbba61), SkBits2Float(0x42478e4c), SkBits2Float(0x41fba3d9), SkBits2Float(0x424880fc), SkBits2Float(0x41fbba61), SkBits2Float(0x424974b2));  // 31.466f, 49.889f, 31.455f, 50.126f, 31.466f, 50.364f
5963 path.cubicTo(SkBits2Float(0x41fbd0e8), SkBits2Float(0x424a7de9), SkBits2Float(0x41fc8109), SkBits2Float(0x424b5b18), SkBits2Float(0x41fd47b1), SkBits2Float(0x424c4ecf));  // 31.477f, 50.623f, 31.563f, 50.839f, 31.66f, 51.077f
5964 path.cubicTo(SkBits2Float(0x41fd8b47), SkBits2Float(0x424c915e), SkBits2Float(0x41fdccd0), SkBits2Float(0x424cde2b), SkBits2Float(0x41fe3b67), SkBits2Float(0x424d167d));  // 31.693f, 51.142f, 31.725f, 51.217f, 31.779f, 51.272f
5965 path.cubicTo(SkBits2Float(0x41fe9377), SkBits2Float(0x424d4dc9), SkBits2Float(0x41fec086), SkBits2Float(0x424d8f52), SkBits2Float(0x41ff2f1d), SkBits2Float(0x424dc69e));  // 31.822f, 51.326f, 31.844f, 51.39f, 31.898f, 51.444f
5966 path.cubicTo(SkBits2Float(0x41ff70a6), SkBits2Float(0x424df3ac), SkBits2Float(0x41ffdf3e), SkBits2Float(0x424e092d), SkBits2Float(0x42000626), SkBits2Float(0x424e3536));  // 31.93f, 51.488f, 31.984f, 51.509f, 32.006f, 51.552f
5967 path.cubicTo(SkBits2Float(0x42003d72), SkBits2Float(0x424e6c82), SkBits2Float(0x4200c18a), SkBits2Float(0x424f3e6d), SkBits2Float(0x4201041a), SkBits2Float(0x424f49b1));  // 32.06f, 51.606f, 32.189f, 51.811f, 32.254f, 51.822f
5968 path.cubicTo(SkBits2Float(0x420172b2), SkBits2Float(0x424f6b7c), SkBits2Float(0x4201ec8d), SkBits2Float(0x424e8309), SkBits2Float(0x42020d51), SkBits2Float(0x424e4bbd));  // 32.362f, 51.855f, 32.481f, 51.628f, 32.513f, 51.574f
5969 path.cubicTo(SkBits2Float(0x4202be78), SkBits2Float(0x424d5807), SkBits2Float(0x42037ae2), SkBits2Float(0x424c6557), SkBits2Float(0x42044cce), SkBits2Float(0x424b9265));  // 32.686f, 51.336f, 32.87f, 51.099f, 33.075f, 50.893f
5970 path.cubicTo(SkBits2Float(0x42049aa1), SkBits2Float(0x424b4598), SkBits2Float(0x4204e874), SkBits2Float(0x424ae13e), SkBits2Float(0x42054084), SkBits2Float(0x424a9471));  // 33.151f, 50.818f, 33.227f, 50.72f, 33.313f, 50.645f
5971 path.cubicTo(SkBits2Float(0x42058d51), SkBits2Float(0x424a51e2), SkBits2Float(0x4206ef9f), SkBits2Float(0x4248fad7), SkBits2Float(0x42071063), SkBits2Float(0x4248cecf));  // 33.388f, 50.58f, 33.734f, 50.245f, 33.766f, 50.202f
5972 path.cubicTo(SkBits2Float(0x42075e36), SkBits2Float(0x424876bf), SkBits2Float(0x4207cccd), SkBits2Float(0x4248342f), SkBits2Float(0x42083021), SkBits2Float(0x4247e65c));  // 33.842f, 50.116f, 33.95f, 50.051f, 34.047f, 49.975f
5973 path.cubicTo(SkBits2Float(0x42088831), SkBits2Float(0x42478308), SkBits2Float(0x4208f6c9), SkBits2Float(0x4247363b), SkBits2Float(0x420970a4), SkBits2Float(0x4246f3ac));  // 34.133f, 49.878f, 34.241f, 49.803f, 34.36f, 49.738f
5974 path.cubicTo(SkBits2Float(0x4209f5c3), SkBits2Float(0x42469a95), SkBits2Float(0x420a645a), SkBits2Float(0x42464285), SkBits2Float(0x420add2f), SkBits2Float(0x4245f4b2));  // 34.49f, 49.651f, 34.598f, 49.565f, 34.716f, 49.489f
5975 path.cubicTo(SkBits2Float(0x420b2b02), SkBits2Float(0x4245be6c), SkBits2Float(0x420bc5a2), SkBits2Float(0x42455a12), SkBits2Float(0x420b8418), SkBits2Float(0x4244eb7b));  // 34.792f, 49.436f, 34.943f, 49.338f, 34.879f, 49.23f
5976 path.cubicTo(SkBits2Float(0x420b624d), SkBits2Float(0x4244cab6), SkBits2Float(0x420b1fbe), SkBits2Float(0x42449eae), SkBits2Float(0x420b0a3d), SkBits2Float(0x42448827));  // 34.846f, 49.198f, 34.781f, 49.155f, 34.76f, 49.133f
5977 path.cubicTo(SkBits2Float(0x420abd70), SkBits2Float(0x424450db), SkBits2Float(0x420a9ba5), SkBits2Float(0x42440e4c), SkBits2Float(0x420a5916), SkBits2Float(0x4243d700));  // 34.685f, 49.079f, 34.652f, 49.014f, 34.587f, 48.96f
5978 path.cubicTo(SkBits2Float(0x420a3851), SkBits2Float(0x4243b63b), SkBits2Float(0x420a21ca), SkBits2Float(0x4243b63b), SkBits2Float(0x4209f5c2), SkBits2Float(0x42439fb4));  // 34.555f, 48.928f, 34.533f, 48.928f, 34.49f, 48.906f
5979 path.cubicTo(SkBits2Float(0x4209ea7e), SkBits2Float(0x42439470), SkBits2Float(0x4209ea7e), SkBits2Float(0x424373ac), SkBits2Float(0x4209d3f7), SkBits2Float(0x42436868));  // 34.479f, 48.895f, 34.479f, 48.863f, 34.457f, 48.852f
5980 path.cubicTo(SkBits2Float(0x4209b332), SkBits2Float(0x424352e7), SkBits2Float(0x42099db1), SkBits2Float(0x42435e2b), SkBits2Float(0x42097be7), SkBits2Float(0x424352e7));  // 34.425f, 48.831f, 34.404f, 48.842f, 34.371f, 48.831f
5981 path.cubicTo(SkBits2Float(0x420970a3), SkBits2Float(0x42433c60), SkBits2Float(0x42096560), SkBits2Float(0x42431b9b), SkBits2Float(0x4209449b), SkBits2Float(0x42431b9b));  // 34.36f, 48.809f, 34.349f, 48.777f, 34.317f, 48.777f
5982 path.cubicTo(SkBits2Float(0x4208f6c8), SkBits2Float(0x4242e349), SkBits2Float(0x42089eb8), SkBits2Float(0x4242c284), SkBits2Float(0x42083020), SkBits2Float(0x4242a1c0));  // 34.241f, 48.722f, 34.155f, 48.69f, 34.047f, 48.658f
5983 path.cubicTo(SkBits2Float(0x42080f5b), SkBits2Float(0x4242967c), SkBits2Float(0x4207d810), SkBits2Float(0x42425f31), SkBits2Float(0x4207c188), SkBits2Float(0x42425f31));  // 34.015f, 48.647f, 33.961f, 48.593f, 33.939f, 48.593f
5984 path.cubicTo(SkBits2Float(0x420748b3), SkBits2Float(0x424227e5), SkBits2Float(0x42066040), SkBits2Float(0x4241fbdd), SkBits2Float(0x4205b957), SkBits2Float(0x42421ca2));  // 33.821f, 48.539f, 33.594f, 48.496f, 33.431f, 48.528f
5985 path.cubicTo(SkBits2Float(0x4204c6a7), SkBits2Float(0x42423329), SkBits2Float(0x42041580), SkBits2Float(0x4242ad04), SkBits2Float(0x42032d0d), SkBits2Float(0x4242c285));  // 33.194f, 48.55f, 33.021f, 48.669f, 32.794f, 48.69f
5986 path.cubicTo(SkBits2Float(0x42032d0d), SkBits2Float(0x4242b848), SkBits2Float(0x420322d0), SkBits2Float(0x4242a1c0), SkBits2Float(0x42032d0d), SkBits2Float(0x4242a1c0));  // 32.794f, 48.68f, 32.784f, 48.658f, 32.794f, 48.658f
5987 path.cubicTo(SkBits2Float(0x42032d0d), SkBits2Float(0x424280fb), SkBits2Float(0x42036459), SkBits2Float(0x424275b8), SkBits2Float(0x42036f9c), SkBits2Float(0x42426a74));  // 32.794f, 48.626f, 32.848f, 48.615f, 32.859f, 48.604f
5988 path.cubicTo(SkBits2Float(0x4203e977), SkBits2Float(0x4241cfd4), SkBits2Float(0x4204580f), SkBits2Float(0x42418201), SkBits2Float(0x420529fa), SkBits2Float(0x42413f72));  // 32.978f, 48.453f, 33.086f, 48.377f, 33.291f, 48.312f
5989 path.lineTo(SkBits2Float(0x42054abf), SkBits2Float(0x424128eb));  // 33.323f, 48.29f
5990 path.cubicTo(SkBits2Float(0x4205cfde), SkBits2Float(0x4240fde9), SkBits2Float(0x420649b9), SkBits2Float(0x4240fde9), SkBits2Float(0x4206b850), SkBits2Float(0x4240b016));  // 33.453f, 48.248f, 33.572f, 48.248f, 33.68f, 48.172f
5991 path.cubicTo(SkBits2Float(0x4206a1c9), SkBits2Float(0x4240998f), SkBits2Float(0x4206b850), SkBits2Float(0x42408e4b), SkBits2Float(0x4206a1c9), SkBits2Float(0x424078ca));  // 33.658f, 48.15f, 33.68f, 48.139f, 33.658f, 48.118f
5992 path.cubicTo(SkBits2Float(0x42068104), SkBits2Float(0x4240363b), SkBits2Float(0x42054081), SkBits2Float(0x423fb11c), SkBits2Float(0x4204d1ea), SkBits2Float(0x423f9057));  // 33.626f, 48.053f, 33.313f, 47.923f, 33.205f, 47.891f
5993 path.cubicTo(SkBits2Float(0x42044ccb), SkBits2Float(0x423f79d0), SkBits2Float(0x42035915), SkBits2Float(0x423f644f), SkBits2Float(0x4202be75), SkBits2Float(0x423f8513));  // 33.075f, 47.869f, 32.837f, 47.848f, 32.686f, 47.88f
5994 path.cubicTo(SkBits2Float(0x42022f19), SkBits2Float(0x423f9b9a), SkBits2Float(0x4201c081), SkBits2Float(0x423fde2a), SkBits2Float(0x420125e2), SkBits2Float(0x423ff3ab));  // 32.546f, 47.902f, 32.438f, 47.967f, 32.287f, 47.988f
5995 path.lineTo(SkBits2Float(0x42010f5b), SkBits2Float(0x423fc7a3));  // 32.265f, 47.945f
5996 path.cubicTo(SkBits2Float(0x4201a9fb), SkBits2Float(0x423f167c), SkBits2Float(0x42036459), SkBits2Float(0x423d5c1e), SkBits2Float(0x4204580f), SkBits2Float(0x423d198f));  // 32.416f, 47.772f, 32.848f, 47.34f, 33.086f, 47.275f
5997 path.cubicTo(SkBits2Float(0x4205b957), SkBits2Float(0x423cabfe), SkBits2Float(0x4207c188), SkBits2Float(0x423cd806), SkBits2Float(0x42090d4e), SkBits2Float(0x423d24d3));  // 33.431f, 47.168f, 33.939f, 47.211f, 34.263f, 47.286f
5998 path.cubicTo(SkBits2Float(0x420ae871), SkBits2Float(0x423d936b), SkBits2Float(0x420c9892), SkBits2Float(0x423e7bdd), SkBits2Float(0x420e6871), SkBits2Float(0x423ed3ee));  // 34.727f, 47.394f, 35.149f, 47.621f, 35.602f, 47.707f
5999 path.cubicTo(SkBits2Float(0x42103956), SkBits2Float(0x423f438c), SkBits2Float(0x42121479), SkBits2Float(0x423f0b3a), SkBits2Float(0x4213c49a), SkBits2Float(0x423e2e0b));  // 36.056f, 47.816f, 36.52f, 47.761f, 36.942f, 47.545f
6000 path.cubicTo(SkBits2Float(0x4214cdd1), SkBits2Float(0x423db536), SkBits2Float(0x4215c081), SkBits2Float(0x423d24d4), SkBits2Float(0x42169db1), SkBits2Float(0x423c696f));  // 37.201f, 47.427f, 37.438f, 47.286f, 37.654f, 47.103f
6001 path.cubicTo(SkBits2Float(0x4216eb84), SkBits2Float(0x423c26e0), SkBits2Float(0x4217df3a), SkBits2Float(0x423afbde), SkBits2Float(0x4218580f), SkBits2Float(0x423b75b9));  // 37.73f, 47.038f, 37.968f, 46.746f, 38.086f, 46.865f
6002 path.cubicTo(SkBits2Float(0x42189a9e), SkBits2Float(0x423bad05), SkBits2Float(0x421820c3), SkBits2Float(0x423c1b9c), SkBits2Float(0x4217ffff), SkBits2Float(0x423c311d));  // 38.151f, 46.919f, 38.032f, 47.027f, 38, 47.048f
6003 path.cubicTo(SkBits2Float(0x4217a6e8), SkBits2Float(0x423c9577), SkBits2Float(0x42173851), SkBits2Float(0x423ced87), SkBits2Float(0x4216cac0), SkBits2Float(0x423d5c1f));  // 37.913f, 47.146f, 37.805f, 47.232f, 37.698f, 47.34f
6004 path.cubicTo(SkBits2Float(0x42168831), SkBits2Float(0x423d9eae), SkBits2Float(0x421650e5), SkBits2Float(0x423deb7b), SkBits2Float(0x4215f7ce), SkBits2Float(0x423e23cd));  // 37.633f, 47.405f, 37.579f, 47.48f, 37.492f, 47.535f
6005 path.lineTo(SkBits2Float(0x4215f7ce), SkBits2Float(0x423e4492));  // 37.492f, 47.567f
6006 path.cubicTo(SkBits2Float(0x4215ed91), SkBits2Float(0x423e4fd6), SkBits2Float(0x4215d709), SkBits2Float(0x423e4492), SkBits2Float(0x4215cbc6), SkBits2Float(0x423e4fd6));  // 37.482f, 47.578f, 37.46f, 47.567f, 37.449f, 47.578f
6007 path.cubicTo(SkBits2Float(0x42158937), SkBits2Float(0x423e8722), SkBits2Float(0x42153126), SkBits2Float(0x423f00fd), SkBits2Float(0x4214ee97), SkBits2Float(0x423f3849));  // 37.384f, 47.632f, 37.298f, 47.751f, 37.233f, 47.805f
6008 path.cubicTo(SkBits2Float(0x4214d810), SkBits2Float(0x423f438d), SkBits2Float(0x4214cdd2), SkBits2Float(0x423f590e), SkBits2Float(0x4214cdd2), SkBits2Float(0x423f590e));  // 37.211f, 47.816f, 37.201f, 47.837f, 37.201f, 47.837f
6009 path.lineTo(SkBits2Float(0x4214b74b), SkBits2Float(0x423f590e));  // 37.179f, 47.837f
6010 path.lineTo(SkBits2Float(0x4214b74b), SkBits2Float(0x423f79d3));  // 37.179f, 47.869f
6011 path.cubicTo(SkBits2Float(0x42147fff), SkBits2Float(0x423f905a), SkBits2Float(0x421474bc), SkBits2Float(0x423fb11f), SkBits2Float(0x421448b3), SkBits2Float(0x423fc7a6));  // 37.125f, 47.891f, 37.114f, 47.923f, 37.071f, 47.945f
6012 path.lineTo(SkBits2Float(0x421448b3), SkBits2Float(0x423fdd27));  // 37.071f, 47.966f
6013 path.lineTo(SkBits2Float(0x42143332), SkBits2Float(0x423fdd27));  // 37.05f, 47.966f
6014 path.lineTo(SkBits2Float(0x4213b957), SkBits2Float(0x424077c7));  // 36.931f, 48.117f
6015 path.cubicTo(SkBits2Float(0x4213a2d0), SkBits2Float(0x4240830b), SkBits2Float(0x4213b957), SkBits2Float(0x4240988c), SkBits2Float(0x4213b957), SkBits2Float(0x4240988c));  // 36.909f, 48.128f, 36.931f, 48.149f, 36.931f, 48.149f
6016 path.cubicTo(SkBits2Float(0x4213c49b), SkBits2Float(0x4240988c), SkBits2Float(0x4213b957), SkBits2Float(0x4240ba57), SkBits2Float(0x4213da1c), SkBits2Float(0x4240af13));  // 36.942f, 48.149f, 36.931f, 48.182f, 36.963f, 48.171f
6017 path.cubicTo(SkBits2Float(0x42141cab), SkBits2Float(0x4240af13), SkBits2Float(0x4214a1ca), SkBits2Float(0x42405703), SkBits2Float(0x4214ee97), SkBits2Float(0x42403538));  // 37.028f, 48.171f, 37.158f, 48.085f, 37.233f, 48.052f
6018 path.cubicTo(SkBits2Float(0x42153126), SkBits2Float(0x42401473), SkBits2Float(0x42157ef9), SkBits2Float(0x423ffdec), SkBits2Float(0x4215cbc6), SkBits2Float(0x423fd1e4));  // 37.298f, 48.02f, 37.374f, 47.998f, 37.449f, 47.955f
6019 path.cubicTo(SkBits2Float(0x421650e5), SkBits2Float(0x423f8f55), SkBits2Float(0x4216cac0), SkBits2Float(0x423f4288), SkBits2Float(0x42178624), SkBits2Float(0x423f20bd));  // 37.579f, 47.89f, 37.698f, 47.815f, 37.881f, 47.782f
6020 path.cubicTo(SkBits2Float(0x42177ae0), SkBits2Float(0x423f8f55), SkBits2Float(0x421770a3), SkBits2Float(0x423fc6a0), SkBits2Float(0x42174395), SkBits2Float(0x423ffdec));  // 37.87f, 47.89f, 37.86f, 47.944f, 37.816f, 47.998f
6021 path.cubicTo(SkBits2Float(0x4216bf7c), SkBits2Float(0x4240ba56), SkBits2Float(0x4215ab02), SkBits2Float(0x4241332b), SkBits2Float(0x4214f9db), SkBits2Float(0x4241c38e));  // 37.687f, 48.182f, 37.417f, 48.3f, 37.244f, 48.441f
6022 path.cubicTo(SkBits2Float(0x42143333), SkBits2Float(0x424274b5), SkBits2Float(0x42136b85), SkBits2Float(0x42433019), SkBits2Float(0x4212c5a2), SkBits2Float(0x4243f7c7));  // 37.05f, 48.614f, 36.855f, 48.797f, 36.693f, 48.992f
6023 path.cubicTo(SkBits2Float(0x42115917), SkBits2Float(0x42459b9e), SkBits2Float(0x421022d1), SkBits2Float(0x42476c83), SkBits2Float(0x420f0313), SkBits2Float(0x4249311f));  // 36.337f, 49.402f, 36.034f, 49.856f, 35.753f, 50.298f
6024 path.cubicTo(SkBits2Float(0x420e1ba6), SkBits2Float(0x424a936d), SkBits2Float(0x420d75c3), SkBits2Float(0x424c21c3), SkBits2Float(0x420cdb23), SkBits2Float(0x424dba56));  // 35.527f, 50.644f, 35.365f, 51.033f, 35.214f, 51.432f
6025 path.cubicTo(SkBits2Float(0x420c3f7d), SkBits2Float(0x424f6a77), SkBits2Float(0x420b8419), SkBits2Float(0x42510e4e), SkBits2Float(0x420b1fbf), SkBits2Float(0x4252d3f0));  // 35.062f, 51.854f, 34.879f, 52.264f, 34.781f, 52.707f
6026 path.cubicTo(SkBits2Float(0x420ad2f2), SkBits2Float(0x42548e4e), SkBits2Float(0x420ab127), SkBits2Float(0x42565e2d), SkBits2Float(0x420a9063), SkBits2Float(0x4258188c));  // 34.706f, 53.139f, 34.673f, 53.592f, 34.641f, 54.024f
6027 path.cubicTo(SkBits2Float(0x420a7ae2), SkBits2Float(0x4258882a), SkBits2Float(0x420a9ba7), SkBits2Float(0x4258e03a), SkBits2Float(0x420a9ba7), SkBits2Float(0x42594ed2));  // 34.62f, 54.133f, 34.652f, 54.219f, 34.652f, 54.327f
6028 path.cubicTo(SkBits2Float(0x420aa6eb), SkBits2Float(0x425e301a), SkBits2Float(0x420c820d), SkBits2Float(0x4262c495), SkBits2Float(0x420ecbc8), SkBits2Float(0x4266fff9));  // 34.663f, 55.547f, 35.127f, 56.692f, 35.699f, 57.75f
6029 path.cubicTo(SkBits2Float(0x420eed93), SkBits2Float(0x426721c4), SkBits2Float(0x420f0e57), SkBits2Float(0x42674dcc), SkBits2Float(0x420f3022), SkBits2Float(0x42676e91));  // 35.732f, 57.783f, 35.764f, 57.826f, 35.797f, 57.858f
6030 path.cubicTo(SkBits2Float(0x420f7df5), SkBits2Float(0x42680a37), SkBits2Float(0x420fbf7e), SkBits2Float(0x42689993), SkBits2Float(0x42100d51), SkBits2Float(0x42693433));  // 35.873f, 58.01f, 35.937f, 58.15f, 36.013f, 58.301f
6031 path.cubicTo(SkBits2Float(0x42102e16), SkBits2Float(0x426955fe), SkBits2Float(0x42105a1e), SkBits2Float(0x426976c2), SkBits2Float(0x42106561), SkBits2Float(0x42698d4a));  // 36.045f, 58.334f, 36.088f, 58.366f, 36.099f, 58.388f
6032 path.cubicTo(SkBits2Float(0x4210872c), SkBits2Float(0x4269e55a), SkBits2Float(0x4210a7f0), SkBits2Float(0x426a3d6b), SkBits2Float(0x4210ea80), SkBits2Float(0x426a6a79));  // 36.132f, 58.474f, 36.164f, 58.56f, 36.229f, 58.604f
6033 path.cubicTo(SkBits2Float(0x42119aa1), SkBits2Float(0x426acdcd), SkBits2Float(0x42131376), SkBits2Float(0x426a48ae), SkBits2Float(0x4213e561), SkBits2Float(0x426a6a79));  // 36.401f, 58.701f, 36.769f, 58.571f, 36.974f, 58.604f
6034 path.cubicTo(SkBits2Float(0x4213fae2), SkBits2Float(0x426a75bd), SkBits2Float(0x42141cad), SkBits2Float(0x426a8b3e), SkBits2Float(0x42143d71), SkBits2Float(0x426a8b3e));  // 36.995f, 58.615f, 37.028f, 58.636f, 37.06f, 58.636f
6035 path.cubicTo(SkBits2Float(0x42141cac), SkBits2Float(0x426acdcd), SkBits2Float(0x42143334), SkBits2Float(0x426aee92), SkBits2Float(0x42141cac), SkBits2Float(0x426b25de));  // 37.028f, 58.701f, 37.05f, 58.733f, 37.028f, 58.787f
6036 path.cubicTo(SkBits2Float(0x4213e560), SkBits2Float(0x426b9fb9), SkBits2Float(0x4212dc29), SkBits2Float(0x426d0d4b), SkBits2Float(0x4212f1aa), SkBits2Float(0x426da7ea));  // 36.974f, 58.906f, 36.715f, 59.263f, 36.736f, 59.414f
6037 path.cubicTo(SkBits2Float(0x4212f1aa), SkBits2Float(0x426dfffa), SkBits2Float(0x4213b958), SkBits2Float(0x426ed1e6), SkBits2Float(0x4213c49c), SkBits2Float(0x426edd29));  // 36.736f, 59.5f, 36.931f, 59.705f, 36.942f, 59.716f
6038 path.cubicTo(SkBits2Float(0x4213e561), SkBits2Float(0x426f1fb8), SkBits2Float(0x42143d71), SkBits2Float(0x426f9993), SkBits2Float(0x421448b5), SkBits2Float(0x426ffce7));  // 36.974f, 59.781f, 37.06f, 59.9f, 37.071f, 59.997f
6039 path.cubicTo(SkBits2Float(0x421448b5), SkBits2Float(0x427076c2), SkBits2Float(0x4214072c), SkBits2Float(0x4270ef97), SkBits2Float(0x4213fae2), SkBits2Float(0x427148ae));  // 37.071f, 60.116f, 37.007f, 60.234f, 36.995f, 60.321f
6040 path.cubicTo(SkBits2Float(0x4213e561), SkBits2Float(0x42717ffa), SkBits2Float(0x4213fae2), SkBits2Float(0x42718b3d), SkBits2Float(0x4213e561), SkBits2Float(0x4271b746));  // 36.974f, 60.375f, 36.995f, 60.386f, 36.974f, 60.429f
6041 path.cubicTo(SkBits2Float(0x4213da1d), SkBits2Float(0x4271ccc7), SkBits2Float(0x4213b959), SkBits2Float(0x42721a9a), SkBits2Float(0x4213a2d2), SkBits2Float(0x42721a9a));  // 36.963f, 60.45f, 36.931f, 60.526f, 36.909f, 60.526f
6042 path.cubicTo(SkBits2Float(0x42134ac2), SkBits2Float(0x42723c65), SkBits2Float(0x4212d0e6), SkBits2Float(0x427225de), SkBits2Float(0x42126d93), SkBits2Float(0x427225de));  // 36.823f, 60.559f, 36.704f, 60.537f, 36.607f, 60.537f
6043 path.cubicTo(SkBits2Float(0x42124bc8), SkBits2Float(0x427225de), SkBits2Float(0x4211bc6c), SkBits2Float(0x42723c65), SkBits2Float(0x42119064), SkBits2Float(0x42723c65));  // 36.574f, 60.537f, 36.434f, 60.559f, 36.391f, 60.559f
6044 path.cubicTo(SkBits2Float(0x4210d3fa), SkBits2Float(0x427246a2), SkBits2Float(0x420ff6ca), SkBits2Float(0x4272301b), SkBits2Float(0x420f676e), SkBits2Float(0x4272686d));  // 36.207f, 60.569f, 35.991f, 60.547f, 35.851f, 60.602f
6045 path.cubicTo(SkBits2Float(0x420eb647), SkBits2Float(0x4272b53a), SkBits2Float(0x420e52f3), SkBits2Float(0x42737ce8), SkBits2Float(0x420dc291), SkBits2Float(0x4273f5bd));  // 35.678f, 60.677f, 35.581f, 60.872f, 35.44f, 60.99f
6046 path.cubicTo(SkBits2Float(0x420d116a), SkBits2Float(0x4274861f), SkBits2Float(0x420c5606), SkBits2Float(0x4274e973), SkBits2Float(0x420b999b), SkBits2Float(0x4275580b));  // 35.267f, 61.131f, 35.084f, 61.228f, 34.9f, 61.336f
6047 path.cubicTo(SkBits2Float(0x420a9ba7), SkBits2Float(0x4275fdee), SkBits2Float(0x4209b335), SkBits2Float(0x42768d4a), SkBits2Float(0x42089eba), SkBits2Float(0x4276f1a5));  // 34.652f, 61.498f, 34.425f, 61.638f, 34.155f, 61.736f
6048 path.cubicTo(SkBits2Float(0x4207ab04), SkBits2Float(0x42773e72), SkBits2Float(0x4206a1cc), SkBits2Float(0x42778101), SkBits2Float(0x4205b95a), SkBits2Float(0x4277c391));  // 33.917f, 61.811f, 33.658f, 61.876f, 33.431f, 61.941f
6049 path.cubicTo(SkBits2Float(0x4203bd73), SkBits2Float(0x42786974), SkBits2Float(0x4201cbc9), SkBits2Float(0x42793b60), SkBits2Float(0x4200ac0a), SkBits2Float(0x427af5be));  // 32.935f, 62.103f, 32.449f, 62.308f, 32.168f, 62.74f
6050 path.cubicTo(SkBits2Float(0x420074be), SkBits2Float(0x427b428b), SkBits2Float(0x41ffb43d), SkBits2Float(0x427c4cc8), SkBits2Float(0x41ff872f), SkBits2Float(0x427ca4d9));  // 32.114f, 62.815f, 31.963f, 63.075f, 31.941f, 63.161f
6051 path.cubicTo(SkBits2Float(0x41ff872f), SkBits2Float(0x427cbb60), SkBits2Float(0x41ff9db6), SkBits2Float(0x427cd0e1), SkBits2Float(0x41ff872f), SkBits2Float(0x427ce768));  // 31.941f, 63.183f, 31.952f, 63.204f, 31.941f, 63.226f
6052 path.cubicTo(SkBits2Float(0x41ffb43d), SkBits2Float(0x427cfce9), SkBits2Float(0x41ffb43d), SkBits2Float(0x427cfce9), SkBits2Float(0x41ffdf3f), SkBits2Float(0x427d1370));  // 31.963f, 63.247f, 31.963f, 63.247f, 31.984f, 63.269f
6053 path.cubicTo(SkBits2Float(0x4200ac0a), SkBits2Float(0x427cfce9), SkBits2Float(0x42010f5e), SkBits2Float(0x427cd0e1), SkBits2Float(0x4201a9fe), SkBits2Float(0x427ca4d8));  // 32.168f, 63.247f, 32.265f, 63.204f, 32.416f, 63.161f
6054 path.cubicTo(SkBits2Float(0x4201c085), SkBits2Float(0x427c9994), SkBits2Float(0x4201f7d1), SkBits2Float(0x427c78d0), SkBits2Float(0x42020315), SkBits2Float(0x427c78d0));  // 32.438f, 63.15f, 32.492f, 63.118f, 32.503f, 63.118f
6055 path.cubicTo(SkBits2Float(0x420223da), SkBits2Float(0x427c6249), SkBits2Float(0x42022f1d), SkBits2Float(0x427c78d0), SkBits2Float(0x42023a61), SkBits2Float(0x427c78d0));  // 32.535f, 63.096f, 32.546f, 63.118f, 32.557f, 63.118f
6056 path.cubicTo(SkBits2Float(0x42025b26), SkBits2Float(0x427c6249), SkBits2Float(0x42028834), SkBits2Float(0x427c4184), SkBits2Float(0x4202a8f9), SkBits2Float(0x427c4184));  // 32.589f, 63.096f, 32.633f, 63.064f, 32.665f, 63.064f
6057 path.cubicTo(SkBits2Float(0x4203e97c), SkBits2Float(0x427bc7a9), SkBits2Float(0x42061db5), SkBits2Float(0x427ba6e4), SkBits2Float(0x4207b649), SkBits2Float(0x427bfef5));  // 32.978f, 62.945f, 33.529f, 62.913f, 33.928f, 62.999f
6058 path.cubicTo(SkBits2Float(0x42089ebc), SkBits2Float(0x427c20c0), SkBits2Float(0x420970a7), SkBits2Float(0x427c78d0), SkBits2Float(0x420a21ce), SkBits2Float(0x427cc59d));  // 34.155f, 63.032f, 34.36f, 63.118f, 34.533f, 63.193f
6059 path.cubicTo(SkBits2Float(0x420a6fa1), SkBits2Float(0x427cdc24), SkBits2Float(0x420ab12a), SkBits2Float(0x427ce768), SkBits2Float(0x420af3ba), SkBits2Float(0x427d1370));  // 34.609f, 63.215f, 34.673f, 63.226f, 34.738f, 63.269f
6060 path.cubicTo(SkBits2Float(0x420b0a41), SkBits2Float(0x427d1370), SkBits2Float(0x420af3ba), SkBits2Float(0x427d353b), SkBits2Float(0x420b1585), SkBits2Float(0x427d407e));  // 34.76f, 63.269f, 34.738f, 63.302f, 34.771f, 63.313f
6061 path.cubicTo(SkBits2Float(0x420b0a41), SkBits2Float(0x427d6143), SkBits2Float(0x420b0a41), SkBits2Float(0x427d8207), SkBits2Float(0x420af3ba), SkBits2Float(0x427dae0f));  // 34.76f, 63.345f, 34.76f, 63.377f, 34.738f, 63.42f
6062 path.cubicTo(SkBits2Float(0x420ad2f5), SkBits2Float(0x427df09e), SkBits2Float(0x420a2d12), SkBits2Float(0x427e54f8), SkBits2Float(0x420a4293), SkBits2Float(0x427ee455));  // 34.706f, 63.485f, 34.544f, 63.583f, 34.565f, 63.723f
6063 path.cubicTo(SkBits2Float(0x420a591a), SkBits2Float(0x427f051a), SkBits2Float(0x420ad2f5), SkBits2Float(0x427f3122), SkBits2Float(0x420af3ba), SkBits2Float(0x427f47a9));  // 34.587f, 63.755f, 34.706f, 63.798f, 34.738f, 63.82f
6064 path.cubicTo(SkBits2Float(0x420af3ba), SkBits2Float(0x427f5d2a), SkBits2Float(0x420af3ba), SkBits2Float(0x427f73b1), SkBits2Float(0x420b0a41), SkBits2Float(0x427f7ef5));  // 34.738f, 63.841f, 34.738f, 63.863f, 34.76f, 63.874f
6065 path.cubicTo(SkBits2Float(0x420add33), SkBits2Float(0x427fccc8), SkBits2Float(0x420a21ce), SkBits2Float(0x42803e74), SkBits2Float(0x420a2d12), SkBits2Float(0x4280701e));  // 34.716f, 63.95f, 34.533f, 64.122f, 34.544f, 64.219f
6066 path.cubicTo(SkBits2Float(0x420a3856), SkBits2Float(0x42808bc4), SkBits2Float(0x420ad2f5), SkBits2Float(0x4280a7ed), SkBits2Float(0x420ae876), SkBits2Float(0x4280b2ad));  // 34.555f, 64.273f, 34.706f, 64.328f, 34.727f, 64.349f
6067 path.cubicTo(SkBits2Float(0x420af3ba), SkBits2Float(0x4280bdf1), SkBits2Float(0x420add32), SkBits2Float(0x4280c8b1), SkBits2Float(0x420af3ba), SkBits2Float(0x4280d3f5));  // 34.738f, 64.371f, 34.716f, 64.392f, 34.738f, 64.414f
6068 path.cubicTo(SkBits2Float(0x420abd74), SkBits2Float(0x4280f53d), SkBits2Float(0x4209f5c6), SkBits2Float(0x4281428d), SkBits2Float(0x420a21ce), SkBits2Float(0x42816e95));  // 34.685f, 64.479f, 34.49f, 64.63f, 34.533f, 64.716f
6069 path.cubicTo(SkBits2Float(0x420a4293), SkBits2Float(0x4281957e), SkBits2Float(0x420ad2f5), SkBits2Float(0x4281a664), SkBits2Float(0x420ae876), SkBits2Float(0x4281c187));  // 34.565f, 64.792f, 34.706f, 64.825f, 34.727f, 64.878f
6070 path.cubicTo(SkBits2Float(0x420ae876), SkBits2Float(0x4281c729), SkBits2Float(0x420add32), SkBits2Float(0x4281d26c), SkBits2Float(0x420ae876), SkBits2Float(0x4281d26c));  // 34.727f, 64.889f, 34.716f, 64.911f, 34.727f, 64.911f
6071 path.cubicTo(SkBits2Float(0x420aa6ed), SkBits2Float(0x4281fe74), SkBits2Float(0x420a591a), SkBits2Float(0x42821a1a), SkBits2Float(0x4209f5c6), SkBits2Float(0x42823b62));  // 34.663f, 64.997f, 34.587f, 65.051f, 34.49f, 65.116f
6072 path.cubicTo(SkBits2Float(0x420a168b), SkBits2Float(0x42825caa), SkBits2Float(0x420a010a), SkBits2Float(0x4282624b), SkBits2Float(0x420a2d12), SkBits2Float(0x42827850));  // 34.522f, 65.181f, 34.501f, 65.192f, 34.544f, 65.235f
6073 path.cubicTo(SkBits2Float(0x420a645e), SkBits2Float(0x428288b2), SkBits2Float(0x420a9baa), SkBits2Float(0x428293f6), SkBits2Float(0x420ad2f5), SkBits2Float(0x4282a458));  // 34.598f, 65.267f, 34.652f, 65.289f, 34.706f, 65.321f
6074 path.cubicTo(SkBits2Float(0x420ad2f5), SkBits2Float(0x4282a458), SkBits2Float(0x420add32), SkBits2Float(0x4282d685), SkBits2Float(0x420abd74), SkBits2Float(0x4282c5a0));  // 34.706f, 65.321f, 34.716f, 65.419f, 34.685f, 65.386f
6075 path.cubicTo(SkBits2Float(0x420aa6ed), SkBits2Float(0x4282cb42), SkBits2Float(0x420a9066), SkBits2Float(0x4282e146), SkBits2Float(0x420a6fa1), SkBits2Float(0x4282e6e8));  // 34.663f, 65.397f, 34.641f, 65.44f, 34.609f, 65.451f
6076 path.cubicTo(SkBits2Float(0x4209df3f), SkBits2Float(0x42830830), SkBits2Float(0x4208f6cc), SkBits2Float(0x4282bae0), SkBits2Float(0x42088834), SkBits2Float(0x4282a459));  // 34.468f, 65.516f, 34.241f, 65.365f, 34.133f, 65.321f
6077 path.cubicTo(SkBits2Float(0x420846ab), SkBits2Float(0x42829915), SkBits2Float(0x42080f5f), SkBits2Float(0x42829915), SkBits2Float(0x4207c18c), SkBits2Float(0x428293f7));  // 34.069f, 65.299f, 34.015f, 65.299f, 33.939f, 65.289f
6078 path.cubicTo(SkBits2Float(0x42079584), SkBits2Float(0x428288b3), SkBits2Float(0x420748b7), SkBits2Float(0x42826d0e), SkBits2Float(0x42071ba9), SkBits2Float(0x42826d0e));  // 33.896f, 65.267f, 33.821f, 65.213f, 33.777f, 65.213f
6079 path.cubicTo(SkBits2Float(0x4206cedc), SkBits2Float(0x4282624d), SkBits2Float(0x42068109), SkBits2Float(0x4282624d), SkBits2Float(0x42061272), SkBits2Float(0x4282624d));  // 33.702f, 65.192f, 33.626f, 65.192f, 33.518f, 65.192f
6080 path.cubicTo(SkBits2Float(0x4205cfe3), SkBits2Float(0x42825cab), SkBits2Float(0x4205614b), SkBits2Float(0x42824bc6), SkBits2Float(0x42051ebc), SkBits2Float(0x42824bc6));  // 33.453f, 65.181f, 33.345f, 65.148f, 33.28f, 65.148f
6081 path.cubicTo(SkBits2Float(0x42037ae5), SkBits2Float(0x428246a7), SkBits2Float(0x4201cbca), SkBits2Float(0x42829eb8), SkBits2Float(0x4200ac0c), SkBits2Float(0x4282e147));  // 32.87f, 65.138f, 32.449f, 65.31f, 32.168f, 65.44f
6082 path.cubicTo(SkBits2Float(0x42008b47), SkBits2Float(0x4282e6e9), SkBits2Float(0x42005e39), SkBits2Float(0x4282fced), SkBits2Float(0x42003d74), SkBits2Float(0x4283028f));  // 32.136f, 65.451f, 32.092f, 65.494f, 32.06f, 65.505f
6083 path.cubicTo(SkBits2Float(0x41fdf9e2), SkBits2Float(0x42833f7d), SkBits2Float(0x41fa4190), SkBits2Float(0x42836041), SkBits2Float(0x41f674c3), SkBits2Float(0x42834fdf));  // 31.747f, 65.624f, 31.282f, 65.688f, 30.807f, 65.656f
6084 path.cubicTo(SkBits2Float(0x41f59794), SkBits2Float(0x4283451e), SkBits2Float(0x41f48d56), SkBits2Float(0x4283451e), SkBits2Float(0x41f3b027), SkBits2Float(0x428339db));  // 30.699f, 65.635f, 30.569f, 65.635f, 30.461f, 65.613f
6085 path.cubicTo(SkBits2Float(0x41f32d15), SkBits2Float(0x42832e97), SkBits2Float(0x41f2666d), SkBits2Float(0x428312f2), SkBits2Float(0x41f1b440), SkBits2Float(0x42830831));  // 30.397f, 65.591f, 30.3f, 65.537f, 30.213f, 65.516f
6086 path.cubicTo(SkBits2Float(0x41f1041f), SkBits2Float(0x4282fced), SkBits2Float(0x41f07f01), SkBits2Float(0x4282f74c), SkBits2Float(0x41efb859), SkBits2Float(0x4282e6e9));  // 30.127f, 65.494f, 30.062f, 65.483f, 29.965f, 65.451f
6087 path.cubicTo(SkBits2Float(0x41efa1d2), SkBits2Float(0x4282e147), SkBits2Float(0x41ef6049), SkBits2Float(0x4282d687), SkBits2Float(0x41ef49c1), SkBits2Float(0x4282d687));  // 29.954f, 65.44f, 29.922f, 65.419f, 29.911f, 65.419f
6088 path.cubicTo(SkBits2Float(0x41ef062b), SkBits2Float(0x4282cb43), SkBits2Float(0x41eec4a2), SkBits2Float(0x4282cb43), SkBits2Float(0x41ee560b), SkBits2Float(0x4282c5a2));  // 29.878f, 65.397f, 29.846f, 65.397f, 29.792f, 65.386f
6089 path.cubicTo(SkBits2Float(0x41ee1275), SkBits2Float(0x4282c000), SkBits2Float(0x41ed8f63), SkBits2Float(0x4282a45a), SkBits2Float(0x41ed3546), SkBits2Float(0x42829eb9));  // 29.759f, 65.375f, 29.695f, 65.321f, 29.651f, 65.31f
6090 path.cubicTo(SkBits2Float(0x41ebbe7d), SkBits2Float(0x42827d71), SkBits2Float(0x41ea72b7), SkBits2Float(0x42825cad), SkBits2Float(0x41e91069), SkBits2Float(0x42823b65));  // 29.468f, 65.245f, 29.306f, 65.181f, 29.133f, 65.116f
6091 path.cubicTo(SkBits2Float(0x41e6fdfa), SkBits2Float(0x42820419), SkBits2Float(0x41e4a7f6), SkBits2Float(0x4281ab86), SkBits2Float(0x41e18b4a), SkBits2Float(0x4281ab86));  // 28.874f, 65.008f, 28.582f, 64.835f, 28.193f, 64.835f
6092 path.cubicTo(SkBits2Float(0x41de9bac), SkBits2Float(0x4281b128), SkBits2Float(0x41dcf7d5), SkBits2Float(0x4281fe78), SkBits2Float(0x41db3d77), SkBits2Float(0x428246a9));  // 27.826f, 64.846f, 27.621f, 64.997f, 27.405f, 65.138f
6093 path.cubicTo(SkBits2Float(0x41dacedf), SkBits2Float(0x4282570b), SkBits2Float(0x41da76cf), SkBits2Float(0x4282570b), SkBits2Float(0x41da0838), SkBits2Float(0x4282676e));  // 27.351f, 65.17f, 27.308f, 65.17f, 27.254f, 65.202f
6094 path.cubicTo(SkBits2Float(0x41d9f1b1), SkBits2Float(0x4282676e), SkBits2Float(0x41d9f1b1), SkBits2Float(0x42827853), SkBits2Float(0x41d9db2a), SkBits2Float(0x42827d72));  // 27.243f, 65.202f, 27.243f, 65.235f, 27.232f, 65.245f
6095 path.cubicTo(SkBits2Float(0x41d96c92), SkBits2Float(0x428288b6), SkBits2Float(0x41d91482), SkBits2Float(0x428288b6), SkBits2Float(0x41d8a5eb), SkBits2Float(0x42829eba));  // 27.178f, 65.267f, 27.135f, 65.267f, 27.081f, 65.31f
6096 path.lineTo(SkBits2Float(0x41d88f64), SkBits2Float(0x4282a9fe));  // 27.07f, 65.332f
6097 path.cubicTo(SkBits2Float(0x41d6eb8d), SkBits2Float(0x4282e14a), SkBits2Float(0x41d4ac10), SkBits2Float(0x42830291), SkBits2Float(0x41d25818), SkBits2Float(0x428312f4));  // 26.865f, 65.44f, 26.584f, 65.505f, 26.293f, 65.537f
6098 path.cubicTo(SkBits2Float(0x41d0b235), SkBits2Float(0x42831896), SkBits2Float(0x41ce74c4), SkBits2Float(0x428312f4), SkBits2Float(0x41cce568), SkBits2Float(0x42830292));  // 26.087f, 65.548f, 25.807f, 65.537f, 25.612f, 65.505f
6099 path.cubicTo(SkBits2Float(0x41cca3df), SkBits2Float(0x4282fcf0), SkBits2Float(0x41cc1ec0), SkBits2Float(0x4282f1ad), SkBits2Float(0x41cbf3be), SkBits2Float(0x4282f1ad));  // 25.58f, 65.494f, 25.515f, 65.472f, 25.494f, 65.472f
6100 path.cubicTo(SkBits2Float(0x41ca9170), SkBits2Float(0x4282dba9), SkBits2Float(0x41c99dba), SkBits2Float(0x4282e14b), SkBits2Float(0x41c8687a), SkBits2Float(0x4282cb47));  // 25.321f, 65.429f, 25.202f, 65.44f, 25.051f, 65.397f
6101 path.cubicTo(SkBits2Float(0x41c7b64d), SkBits2Float(0x4282c003), SkBits2Float(0x41c71cb3), SkBits2Float(0x4282bae5), SkBits2Float(0x41c6560b), SkBits2Float(0x4282a9ff));  // 24.964f, 65.375f, 24.889f, 65.365f, 24.792f, 65.332f
6102 path.lineTo(SkBits2Float(0x41c628fd), SkBits2Float(0x42829ebb));  // 24.77f, 65.31f
6103 path.cubicTo(SkBits2Float(0x41c58d57), SkBits2Float(0x428293fa), SkBits2Float(0x41c53547), SkBits2Float(0x42829919), SkBits2Float(0x41c4b028), SkBits2Float(0x428293fa));  // 24.694f, 65.289f, 24.651f, 65.299f, 24.586f, 65.289f
6104 path.lineTo(SkBits2Float(0x41c46e9f), SkBits2Float(0x42828315));  // 24.554f, 65.256f
6105 path.cubicTo(SkBits2Float(0x41c1d712), SkBits2Float(0x4282570d), SkBits2Float(0x41be20cc), SkBits2Float(0x428209bd), SkBits2Float(0x41bb0420), SkBits2Float(0x42820f5f));  // 24.23f, 65.17f, 23.766f, 65.019f, 23.377f, 65.03f
6106 path.cubicTo(SkBits2Float(0x41b9a1d2), SkBits2Float(0x42820f5f), SkBits2Float(0x41b7e774), SkBits2Float(0x42823024), SkBits2Float(0x41b6dd37), SkBits2Float(0x428246ab));  // 23.204f, 65.03f, 22.988f, 65.094f, 22.858f, 65.138f
6107 path.cubicTo(SkBits2Float(0x41b5eb8d), SkBits2Float(0x4282570d), SkBits2Float(0x41b54fe7), SkBits2Float(0x4282570d), SkBits2Float(0x41b45c31), SkBits2Float(0x42826770));  // 22.74f, 65.17f, 22.664f, 65.17f, 22.545f, 65.202f
6108 path.cubicTo(SkBits2Float(0x41b3ed99), SkBits2Float(0x42826d12), SkBits2Float(0x41b35400), SkBits2Float(0x428288b8), SkBits2Float(0x41b2fbef), SkBits2Float(0x428293fb));  // 22.491f, 65.213f, 22.416f, 65.267f, 22.373f, 65.289f
6109 path.cubicTo(SkBits2Float(0x41b274c4), SkBits2Float(0x4282991a), SkBits2Float(0x41b249c2), SkBits2Float(0x428293fb), SkBits2Float(0x41b1c4a3), SkBits2Float(0x42829ebc));  // 22.307f, 65.299f, 22.286f, 65.289f, 22.221f, 65.31f
6110 path.cubicTo(SkBits2Float(0x41b1560b), SkBits2Float(0x4282a45e), SkBits2Float(0x41b08f64), SkBits2Float(0x4282c004), SkBits2Float(0x41aff3be), SkBits2Float(0x4282cb47));  // 22.167f, 65.321f, 22.07f, 65.375f, 21.994f, 65.397f
6111 path.cubicTo(SkBits2Float(0x41aea7f7), SkBits2Float(0x4282e14b), SkBits2Float(0x41ad893f), SkBits2Float(0x4282f1ad), SkBits2Float(0x41ac3d78), SkBits2Float(0x42830835));  // 21.832f, 65.44f, 21.692f, 65.472f, 21.53f, 65.516f
6112 path.cubicTo(SkBits2Float(0x41ac106a), SkBits2Float(0x428312f6), SkBits2Float(0x41aba1d2), SkBits2Float(0x42831e39), SkBits2Float(0x41ab76d0), SkBits2Float(0x428323db));  // 21.508f, 65.537f, 21.454f, 65.559f, 21.433f, 65.57f
6113 path.cubicTo(SkBits2Float(0x41aac4a3), SkBits2Float(0x4283343d), SkBits2Float(0x41aa560b), SkBits2Float(0x4283343d), SkBits2Float(0x41a9ba66), SkBits2Float(0x42833f81));  // 21.346f, 65.602f, 21.292f, 65.602f, 21.216f, 65.624f
6114 path.lineTo(SkBits2Float(0x41a98f64), SkBits2Float(0x42834fe3));  // 21.195f, 65.656f
6115 path.cubicTo(SkBits2Float(0x41a96256), SkBits2Float(0x42834fe3), SkBits2Float(0x41a93754), SkBits2Float(0x42834522), SkBits2Float(0x41a920cc), SkBits2Float(0x42834fe3));  // 21.173f, 65.656f, 21.152f, 65.635f, 21.141f, 65.656f
6116 path.cubicTo(SkBits2Float(0x41a90a45), SkBits2Float(0x42834fe3), SkBits2Float(0x41a8b234), SkBits2Float(0x42836045), SkBits2Float(0x41a89bad), SkBits2Float(0x42836b89));  // 21.13f, 65.656f, 21.087f, 65.688f, 21.076f, 65.71f
6117 path.cubicTo(SkBits2Float(0x41a7d505), SkBits2Float(0x42837beb), SkBits2Float(0x41a7666e), SkBits2Float(0x4283818d), SkBits2Float(0x41a6cac8), SkBits2Float(0x42839d33));  // 20.979f, 65.742f, 20.925f, 65.753f, 20.849f, 65.807f
6118 path.cubicTo(SkBits2Float(0x41a6b64d), SkBits2Float(0x4283a2d5), SkBits2Float(0x41a672b8), SkBits2Float(0x4283b3ba), SkBits2Float(0x41a65e3d), SkBits2Float(0x4283b8d9));  // 20.839f, 65.818f, 20.806f, 65.851f, 20.796f, 65.861f
6119 path.cubicTo(SkBits2Float(0x41a6312f), SkBits2Float(0x4283be7b), SkBits2Float(0x41a60420), SkBits2Float(0x4283b8d9), SkBits2Float(0x41a5ed99), SkBits2Float(0x4283be7b));  // 20.774f, 65.872f, 20.752f, 65.861f, 20.741f, 65.872f
6120 path.cubicTo(SkBits2Float(0x41a5810e), SkBits2Float(0x4283cedd), SkBits2Float(0x41a4e568), SkBits2Float(0x428406ac), SkBits2Float(0x41a48d57), SkBits2Float(0x42840bcb));  // 20.688f, 65.904f, 20.612f, 66.013f, 20.569f, 66.023f
6121 path.lineTo(SkBits2Float(0x41a41ebf), SkBits2Float(0x42840bcb));  // 20.515f, 66.023f
6122 path.cubicTo(SkBits2Float(0x41a40838), SkBits2Float(0x4283fb69), SkBits2Float(0x41a3f1b1), SkBits2Float(0x428406ac), SkBits2Float(0x41a3f1b1), SkBits2Float(0x4283fb69));  // 20.504f, 65.991f, 20.493f, 66.013f, 20.493f, 65.991f
6123 path.cubicTo(SkBits2Float(0x41a38319), SkBits2Float(0x4283b8da), SkBits2Float(0x41a4b859), SkBits2Float(0x4282f750), SkBits2Float(0x41a4e567), SkBits2Float(0x4282cb48));  // 20.439f, 65.861f, 20.59f, 65.483f, 20.612f, 65.397f
6124 path.cubicTo(SkBits2Float(0x41a5ed98), SkBits2Float(0x4281d273), SkBits2Float(0x41a74fe6), SkBits2Float(0x4280ea00), SkBits2Float(0x41a96255), SkBits2Float(0x42802e19));  // 20.741f, 64.911f, 20.914f, 64.457f, 21.173f, 64.09f
6125 path.cubicTo(SkBits2Float(0x41aa2b09), SkBits2Float(0x427fccd6), SkBits2Float(0x41ab1ebf), SkBits2Float(0x427f6982), SkBits2Float(0x41abfbef), SkBits2Float(0x427eefa7));  // 21.271f, 63.95f, 21.39f, 63.853f, 21.498f, 63.734f
6126 path.cubicTo(SkBits2Float(0x41ac7f01), SkBits2Float(0x427e9690), SkBits2Float(0x41aced99), SkBits2Float(0x427e49c4), SkBits2Float(0x41ad893f), SkBits2Float(0x427e0734));  // 21.562f, 63.647f, 21.616f, 63.572f, 21.692f, 63.507f
6127 path.cubicTo(SkBits2Float(0x41aed506), SkBits2Float(0x427d8215), SkBits2Float(0x41b020cc), SkBits2Float(0x427d137e), SkBits2Float(0x41b1831a), SkBits2Float(0x427cbb6d));  // 21.854f, 63.377f, 22.016f, 63.269f, 22.189f, 63.183f
6128 path.cubicTo(SkBits2Float(0x41b1f1b2), SkBits2Float(0x427c99a2), SkBits2Float(0x41b26049), SkBits2Float(0x427c6256), SkBits2Float(0x41b2cee1), SkBits2Float(0x427c4cd5));  // 22.243f, 63.15f, 22.297f, 63.096f, 22.351f, 63.075f
6129 path.cubicTo(SkBits2Float(0x41b3106a), SkBits2Float(0x427c2b0a), SkBits2Float(0x41b445aa), SkBits2Float(0x427bff02), SkBits2Float(0x41b49dba), SkBits2Float(0x427bde3d));  // 22.383f, 63.042f, 22.534f, 62.999f, 22.577f, 62.967f
6130 path.cubicTo(SkBits2Float(0x41b49dba), SkBits2Float(0x427bd2f9), SkBits2Float(0x41b4cac8), SkBits2Float(0x427ba6f1), SkBits2Float(0x41b4cac8), SkBits2Float(0x427ba6f1));  // 22.577f, 62.956f, 22.599f, 62.913f, 22.599f, 62.913f
6131 path.cubicTo(SkBits2Float(0x41b4cac8), SkBits2Float(0x427b6462), SkBits2Float(0x41b33b6c), SkBits2Float(0x427a4fe7), SkBits2Float(0x41b2fbef), SkBits2Float(0x427a189b));  // 22.599f, 62.848f, 22.404f, 62.578f, 22.373f, 62.524f
6132 path.cubicTo(SkBits2Float(0x41b2cee1), SkBits2Float(0x4279f7d6), SkBits2Float(0x41b19795), SkBits2Float(0x42796774), SkBits2Float(0x41b1560c), SkBits2Float(0x42795c31));  // 22.351f, 62.492f, 22.199f, 62.351f, 22.167f, 62.34f
6133 path.cubicTo(SkBits2Float(0x41b0e774), SkBits2Float(0x42793b6c), SkBits2Float(0x41aff3be), SkBits2Float(0x42795c31), SkBits2Float(0x41af70ac), SkBits2Float(0x42795c31));  // 22.113f, 62.308f, 21.994f, 62.34f, 21.93f, 62.34f
6134 path.cubicTo(SkBits2Float(0x41ae0e5e), SkBits2Float(0x42796775), SkBits2Float(0x41ac9589), SkBits2Float(0x427946b0), SkBits2Float(0x41ab76d1), SkBits2Float(0x42793b6c));  // 21.757f, 62.351f, 21.573f, 62.319f, 21.433f, 62.308f
6135 path.cubicTo(SkBits2Float(0x41aa3f85), SkBits2Float(0x42793028), SkBits2Float(0x41a94ddb), SkBits2Float(0x42793b6c), SkBits2Float(0x41a82d17), SkBits2Float(0x42793028));  // 21.281f, 62.297f, 21.163f, 62.308f, 21.022f, 62.297f
6136 path.cubicTo(SkBits2Float(0x41a5c298), SkBits2Float(0x42791aa7), SkBits2Float(0x41a2e775), SkBits2Float(0x4278ed99), SkBits2Float(0x41a07cf6), SkBits2Float(0x4278c190));  // 20.72f, 62.276f, 20.363f, 62.232f, 20.061f, 62.189f
6137 path.cubicTo(SkBits2Float(0x419f47b7), SkBits2Float(0x4278b753), SkBits2Float(0x419e810f), SkBits2Float(0x4278b753), SkBits2Float(0x419d4bcf), SkBits2Float(0x4278a0cb));  // 19.91f, 62.179f, 19.813f, 62.179f, 19.662f, 62.157f
6138 path.cubicTo(SkBits2Float(0x419c831b), SkBits2Float(0x42788a44), SkBits2Float(0x419b20cd), SkBits2Float(0x42785e3c), SkBits2Float(0x419a45aa), SkBits2Float(0x427847b4));  // 19.564f, 62.135f, 19.391f, 62.092f, 19.284f, 62.07f
6139 path.cubicTo(SkBits2Float(0x41949171), SkBits2Float(0x4277e460), SkBits2Float(0x418e5819), SkBits2Float(0x42778c50), SkBits2Float(0x41896a87), SkBits2Float(0x4275dd35));  // 18.571f, 61.973f, 17.793f, 61.887f, 17.177f, 61.466f
6140 path.cubicTo(SkBits2Float(0x4182efa6), SkBits2Float(0x4273a8fc), SkBits2Float(0x417fd71a), SkBits2Float(0x42703f83), SkBits2Float(0x4180dd37), SkBits2Float(0x426c5b29));  // 16.367f, 60.915f, 15.99f, 60.062f, 16.108f, 59.089f
6141 path.cubicTo(SkBits2Float(0x41813547), SkBits2Float(0x426b5d35), SkBits2Float(0x41821276), SkBits2Float(0x426a8006), SkBits2Float(0x4182560c), SkBits2Float(0x426976cf));  // 16.151f, 58.841f, 16.259f, 58.625f, 16.292f, 58.366f
6142 path.cubicTo(SkBits2Float(0x418228fe), SkBits2Float(0x426976cf), SkBits2Float(0x41823f85), SkBits2Float(0x42696b8b), SkBits2Float(0x418228fe), SkBits2Float(0x42694ac7));  // 16.27f, 58.366f, 16.281f, 58.355f, 16.27f, 58.323f
6143 path.cubicTo(SkBits2Float(0x4181a5ec), SkBits2Float(0x42696b8c), SkBits2Float(0x41813548), SkBits2Float(0x42696b8c), SkBits2Float(0x41809bae), SkBits2Float(0x4269560b));  // 16.206f, 58.355f, 16.151f, 58.355f, 16.076f, 58.334f
6144 path.cubicTo(SkBits2Float(0x4180b235), SkBits2Float(0x4269560b), SkBits2Float(0x4180439e), SkBits2Float(0x426976d0), SkBits2Float(0x4180168f), SkBits2Float(0x42696b8c));  // 16.087f, 58.334f, 16.033f, 58.366f, 16.011f, 58.355f
6145 path.cubicTo(SkBits2Float(0x417eccdc), SkBits2Float(0x4269560b), SkBits2Float(0x417e9fce), SkBits2Float(0x4268d0ec), SkBits2Float(0x417f4fef), SkBits2Float(0x42688319));  // 15.925f, 58.334f, 15.914f, 58.204f, 15.957f, 58.128f
6146 path.cubicTo(SkBits2Float(0x4180168f), SkBits2Float(0x4268364c), SkBits2Float(0x41849589), SkBits2Float(0x4267a5ea), SkBits2Float(0x4185b441), SkBits2Float(0x42679069));  // 16.011f, 58.053f, 16.573f, 57.912f, 16.713f, 57.891f
6147 path.cubicTo(SkBits2Float(0x41891276), SkBits2Float(0x42674296), SkBits2Float(0x418c9dba), SkBits2Float(0x4266df42), SkBits2Float(0x418fd0ed), SkBits2Float(0x4266916f));  // 17.134f, 57.815f, 17.577f, 57.718f, 17.977f, 57.642f
6148 path.cubicTo(SkBits2Float(0x4190ae1c), SkBits2Float(0x42668732), SkBits2Float(0x4191333b), SkBits2Float(0x42668732), SkBits2Float(0x4192106a), SkBits2Float(0x426670aa));  // 18.085f, 57.632f, 18.15f, 57.632f, 18.258f, 57.61f
6149 path.cubicTo(SkBits2Float(0x4193189b), SkBits2Float(0x42665a23), SkBits2Float(0x4194a5eb), SkBits2Float(0x426622d7), SkBits2Float(0x4195dd37), SkBits2Float(0x42660d56));  // 18.387f, 57.588f, 18.581f, 57.534f, 18.733f, 57.513f
6150 path.cubicTo(SkBits2Float(0x41975400), SkBits2Float(0x4265e254), SkBits2Float(0x41988b4b), SkBits2Float(0x4265c18f), SkBits2Float(0x4199d506), SkBits2Float(0x4265ac0e));  // 18.916f, 57.471f, 19.068f, 57.439f, 19.229f, 57.418f
6151 path.moveTo(SkBits2Float(0x41a4e568), SkBits2Float(0x4277d0eb));  // 20.612f, 61.954f
6152 path.cubicTo(SkBits2Float(0x41a4cee1), SkBits2Float(0x4277d0eb), SkBits2Float(0x41a48d58), SkBits2Float(0x4277f1b0), SkBits2Float(0x41a48d58), SkBits2Float(0x4277f1b0));  // 20.601f, 61.954f, 20.569f, 61.986f, 20.569f, 61.986f
6153 path.cubicTo(SkBits2Float(0x41a3831b), SkBits2Float(0x42781275), SkBits2Float(0x41a0c08b), SkBits2Float(0x4277c5a8), SkBits2Float(0x419fe35c), SkBits2Float(0x4277af21));  // 20.439f, 62.018f, 20.094f, 61.943f, 19.986f, 61.921f
6154 path.cubicTo(SkBits2Float(0x419dd0ed), SkBits2Float(0x42778319), SkBits2Float(0x419bbc73), SkBits2Float(0x42775711), SkBits2Float(0x4199c08b), SkBits2Float(0x42771481));  // 19.727f, 61.878f, 19.467f, 61.835f, 19.219f, 61.77f
6155 path.cubicTo(SkBits2Float(0x4199687b), SkBits2Float(0x4277093d), SkBits2Float(0x4198f7d7), SkBits2Float(0x4276f3bc), SkBits2Float(0x4198b64e), SkBits2Float(0x4276dd35));  // 19.176f, 61.759f, 19.121f, 61.738f, 19.089f, 61.716f
6156 path.cubicTo(SkBits2Float(0x419847b6), SkBits2Float(0x4276d1f1), SkBits2Float(0x4198062d), SkBits2Float(0x4276dd35), SkBits2Float(0x4197ae1d), SkBits2Float(0x4276d1f1));  // 19.035f, 61.705f, 19.003f, 61.716f, 18.96f, 61.705f
6157 path.cubicTo(SkBits2Float(0x4196fbf0), SkBits2Float(0x4276c6ad), SkBits2Float(0x4196083a), SkBits2Float(0x42768f62), SkBits2Float(0x4195831b), SkBits2Float(0x427679e1));  // 18.873f, 61.694f, 18.754f, 61.64f, 18.689f, 61.619f
6158 path.cubicTo(SkBits2Float(0x41951690), SkBits2Float(0x4276635a), SkBits2Float(0x41950009), SkBits2Float(0x427679e1), SkBits2Float(0x4194a5ec), SkBits2Float(0x4276635a));  // 18.636f, 61.597f, 18.625f, 61.619f, 18.581f, 61.597f
6159 path.cubicTo(SkBits2Float(0x41940c52), SkBits2Float(0x42764dd9), SkBits2Float(0x41935a25), SkBits2Float(0x4276168d), SkBits2Float(0x4192c08c), SkBits2Float(0x42760006));  // 18.506f, 61.576f, 18.419f, 61.522f, 18.344f, 61.5f
6160 path.cubicTo(SkBits2Float(0x4190c298), SkBits2Float(0x42759cb2), SkBits2Float(0x418f6257), SkBits2Float(0x427544a2), SkBits2Float(0x418e2b0b), SkBits2Float(0x42748837));  // 18.095f, 61.403f, 17.923f, 61.317f, 17.771f, 61.133f
6161 path.cubicTo(SkBits2Float(0x418e1690), SkBits2Float(0x4274666c), SkBits2Float(0x418dd2fb), SkBits2Float(0x4274666c), SkBits2Float(0x418dbe80), SkBits2Float(0x42745c2f));  // 17.761f, 61.1f, 17.728f, 61.1f, 17.718f, 61.09f
6162 path.cubicTo(SkBits2Float(0x418da7f9), SkBits2Float(0x42742f21), SkBits2Float(0x418da7f9), SkBits2Float(0x42740e5c), SkBits2Float(0x418d6670), SkBits2Float(0x4273ed97));  // 17.707f, 61.046f, 17.707f, 61.014f, 17.675f, 60.982f
6163 path.cubicTo(SkBits2Float(0x418d22da), SkBits2Float(0x42739fc4), SkBits2Float(0x418ccaca), SkBits2Float(0x427373bc), SkBits2Float(0x418c9dbc), SkBits2Float(0x42731aa5));  // 17.642f, 60.906f, 17.599f, 60.863f, 17.577f, 60.776f
6164 path.cubicTo(SkBits2Float(0x418bd714), SkBits2Float(0x4271b95d), SkBits2Float(0x418d22db), SkBits2Float(0x4270999f), SkBits2Float(0x418fd0ef), SkBits2Float(0x4270418e));  // 17.48f, 60.431f, 17.642f, 60.15f, 17.977f, 60.064f
6165 path.cubicTo(SkBits2Float(0x41919fc8), SkBits2Float(0x426ffeff), SkBits2Float(0x4193df45), SkBits2Float(0x42701fc3), SkBits2Float(0x4195f3c0), SkBits2Float(0x4270841d));  // 18.203f, 59.999f, 18.484f, 60.031f, 18.744f, 60.129f
6166 path.cubicTo(SkBits2Float(0x419847b8), SkBits2Float(0x4270e771), SkBits2Float(0x419a5a26), SkBits2Float(0x42718211), SkBits2Float(0x419bd2fb), SkBits2Float(0x42723231));  // 19.035f, 60.226f, 19.294f, 60.377f, 19.478f, 60.549f
6167 path.cubicTo(SkBits2Float(0x419be982), SkBits2Float(0x42723e7b), SkBits2Float(0x419be982), SkBits2Float(0x42726a83), SkBits2Float(0x419c1484), SkBits2Float(0x42726a83));  // 19.489f, 60.561f, 19.489f, 60.604f, 19.51f, 60.604f
6168 path.cubicTo(SkBits2Float(0x419c4192), SkBits2Float(0x42728004), SkBits2Float(0x419c831c), SkBits2Float(0x42728004), SkBits2Float(0x419c99a3), SkBits2Float(0x4272968b));  // 19.532f, 60.625f, 19.564f, 60.625f, 19.575f, 60.647f
6169 path.cubicTo(SkBits2Float(0x419cdb2c), SkBits2Float(0x4272b750), SkBits2Float(0x419d083b), SkBits2Float(0x4272ee9b), SkBits2Float(0x419d3549), SkBits2Float(0x427325e7));  // 19.607f, 60.679f, 19.629f, 60.733f, 19.651f, 60.787f
6170 path.cubicTo(SkBits2Float(0x419e28ff), SkBits2Float(0x4273cbca), SkBits2Float(0x419f062e), SkBits2Float(0x4274666a), SkBits2Float(0x419ff7d8), SkBits2Float(0x42750c4d));  // 19.77f, 60.949f, 19.878f, 61.1f, 19.996f, 61.262f
6171 path.cubicTo(SkBits2Float(0x41a0c08c), SkBits2Float(0x42758628), SkBits2Float(0x41a1f5cc), SkBits2Float(0x4275df3f), SkBits2Float(0x41a2d2fb), SkBits2Float(0x42766357));  // 20.094f, 61.381f, 20.245f, 61.468f, 20.353f, 61.597f
6172 path.cubicTo(SkBits2Float(0x41a31484), SkBits2Float(0x42769aa3), SkBits2Float(0x41a36c95), SkBits2Float(0x4276f3b9), SkBits2Float(0x41a3db2c), SkBits2Float(0x42771fc1));  // 20.385f, 61.651f, 20.428f, 61.738f, 20.482f, 61.781f
6173 path.cubicTo(SkBits2Float(0x41a4083a), SkBits2Float(0x42774bc9), SkBits2Float(0x41a4b85b), SkBits2Float(0x42778315), SkBits2Float(0x41a4e569), SkBits2Float(0x4277af1d));  // 20.504f, 61.824f, 20.59f, 61.878f, 20.612f, 61.921f
6174 path.cubicTo(SkBits2Float(0x41a4e569), SkBits2Float(0x4277ba61), SkBits2Float(0x41a4cee2), SkBits2Float(0x4277c5a4), SkBits2Float(0x41a4e569), SkBits2Float(0x4277d0e8));  // 20.612f, 61.932f, 20.601f, 61.943f, 20.612f, 61.954f
6175 path.moveTo(SkBits2Float(0x41ad72b9), SkBits2Float(0x42786044));  // 21.681f, 62.094f
6176 path.cubicTo(SkBits2Float(0x41ac106b), SkBits2Float(0x42788c4c), SkBits2Float(0x41a9d0ee), SkBits2Float(0x4277d0e8), SkBits2Float(0x41a8b236), SkBits2Float(0x42778e58));  // 21.508f, 62.137f, 21.227f, 61.954f, 21.087f, 61.889f
6177 path.cubicTo(SkBits2Float(0x41a2fdfd), SkBits2Float(0x42761689), SkBits2Float(0x41a10215), SkBits2Float(0x42733c6c), SkBits2Float(0x419fb64f), SkBits2Float(0x42704ccf));  // 20.374f, 61.522f, 20.126f, 60.809f, 19.964f, 60.075f
6178 path.cubicTo(SkBits2Float(0x419f9fc8), SkBits2Float(0x42700a40), SkBits2Float(0x419f47b7), SkBits2Float(0x426f9ba8), SkBits2Float(0x419f3130), SkBits2Float(0x426f5919));  // 19.953f, 60.01f, 19.91f, 59.902f, 19.899f, 59.837f
6179 path.cubicTo(SkBits2Float(0x419f3130), SkBits2Float(0x426f0b46), SkBits2Float(0x419f47b7), SkBits2Float(0x426ec9bd), SkBits2Float(0x419f3130), SkBits2Float(0x426e70a6));  // 19.899f, 59.761f, 19.91f, 59.697f, 19.899f, 59.61f
6180 path.cubicTo(SkBits2Float(0x419f1aa9), SkBits2Float(0x426de14a), SkBits2Float(0x419f062e), SkBits2Float(0x426ced94), SkBits2Float(0x419f3130), SkBits2Float(0x426c5d31));  // 19.888f, 59.47f, 19.878f, 59.232f, 19.899f, 59.091f
6181 path.cubicTo(SkBits2Float(0x419f72b9), SkBits2Float(0x426befa0), SkBits2Float(0x419fe35d), SkBits2Float(0x426b8108), SkBits2Float(0x41a00e5f), SkBits2Float(0x426b3335));  // 19.931f, 58.984f, 19.986f, 58.876f, 20.007f, 58.8f
6182 path.cubicTo(SkBits2Float(0x41a0666f), SkBits2Float(0x426acfe1), SkBits2Float(0x41a10215), SkBits2Float(0x4269c6aa), SkBits2Float(0x41a19dbb), SkBits2Float(0x4269bb66));  // 20.05f, 58.703f, 20.126f, 58.444f, 20.202f, 58.433f
6183 path.cubicTo(SkBits2Float(0x41a220cd), SkBits2Float(0x4269bb66), SkBits2Float(0x41a2a5ec), SkBits2Float(0x4269f2b2), SkBits2Float(0x41a31484), SkBits2Float(0x426a3f7f));  // 20.266f, 58.433f, 20.331f, 58.487f, 20.385f, 58.562f
6184 path.cubicTo(SkBits2Float(0x41a3c6b1), SkBits2Float(0x426aa3d9), SkBits2Float(0x41a449c3), SkBits2Float(0x426b1cae), SkBits2Float(0x41a476d2), SkBits2Float(0x426b3e79));  // 20.472f, 58.66f, 20.536f, 58.778f, 20.558f, 58.811f
6185 path.cubicTo(SkBits2Float(0x41a5ac11), SkBits2Float(0x426c0521), SkBits2Float(0x41a6caca), SkBits2Float(0x426ce250), SkBits2Float(0x41a8189d), SkBits2Float(0x426da9fe));  // 20.709f, 59.005f, 20.849f, 59.221f, 21.012f, 59.416f
6186 path.cubicTo(SkBits2Float(0x41aa3f86), SkBits2Float(0x426f1689), SkBits2Float(0x41ac5401), SkBits2Float(0x4270841b), SkBits2Float(0x41ae7aeb), SkBits2Float(0x4271f0a6));  // 21.281f, 59.772f, 21.541f, 60.129f, 21.81f, 60.485f
6187 path.cubicTo(SkBits2Float(0x41af000a), SkBits2Float(0x427248b6), SkBits2Float(0x41afb237), SkBits2Float(0x4272a1cd), SkBits2Float(0x41b020ce), SkBits2Float(0x4272ee9a));  // 21.875f, 60.571f, 21.962f, 60.658f, 22.016f, 60.733f
6188 path.cubicTo(SkBits2Float(0x41b06257), SkBits2Float(0x42731aa2), SkBits2Float(0x41b19797), SkBits2Float(0x4273f7d1), SkBits2Float(0x41b19797), SkBits2Float(0x4274199c));  // 22.048f, 60.776f, 22.199f, 60.992f, 22.199f, 61.025f
6189 path.cubicTo(SkBits2Float(0x41b1c4a5), SkBits2Float(0x427424e0), SkBits2Float(0x41b1831c), SkBits2Float(0x42746669), SkBits2Float(0x41b1831c), SkBits2Float(0x42746669));  // 22.221f, 61.036f, 22.189f, 61.1f, 22.189f, 61.1f
6190 path.cubicTo(SkBits2Float(0x41ac3d7a), SkBits2Float(0x42742f1d), SkBits2Float(0x41a96257), SkBits2Float(0x4271ae17), SkBits2Float(0x41a7a7f9), SkBits2Float(0x426fb12a));  // 21.53f, 61.046f, 21.173f, 60.42f, 20.957f, 59.923f
6191 path.cubicTo(SkBits2Float(0x41a77cf7), SkBits2Float(0x426f9ba9), SkBits2Float(0x41a73b6e), SkBits2Float(0x426f79de), SkBits2Float(0x41a73b6e), SkBits2Float(0x426f591a));  // 20.936f, 59.902f, 20.904f, 59.869f, 20.904f, 59.837f
6192 path.cubicTo(SkBits2Float(0x41a6e151), SkBits2Float(0x426eea82), SkBits2Float(0x41a68941), SkBits2Float(0x426e6564), SkBits2Float(0x41a672ba), SkBits2Float(0x426dec8f));  // 20.86f, 59.729f, 20.817f, 59.599f, 20.806f, 59.481f
6193 path.cubicTo(SkBits2Float(0x41a65e3f), SkBits2Float(0x426daa00), SkBits2Float(0x41a68941), SkBits2Float(0x426d71ae), SkBits2Float(0x41a65e3f), SkBits2Float(0x426d50e9));  // 20.796f, 59.416f, 20.817f, 59.361f, 20.796f, 59.329f
6194 path.cubicTo(SkBits2Float(0x41a63131), SkBits2Float(0x426d24e1), SkBits2Float(0x41a56a89), SkBits2Float(0x426cf8d9), SkBits2Float(0x41a4fbf1), SkBits2Float(0x426cf8d9));  // 20.774f, 59.286f, 20.677f, 59.243f, 20.623f, 59.243f
6195 path.cubicTo(SkBits2Float(0x41a449c4), SkBits2Float(0x426ced95), SkBits2Float(0x41a36c95), SkBits2Float(0x426cf8d9), SkBits2Float(0x41a31484), SkBits2Float(0x426d24e1));  // 20.536f, 59.232f, 20.428f, 59.243f, 20.385f, 59.286f
6196 path.cubicTo(SkBits2Float(0x41a20a47), SkBits2Float(0x426d71ae), SkBits2Float(0x41a1f5cc), SkBits2Float(0x426f645e), SkBits2Float(0x41a220ce), SkBits2Float(0x42701fc2));  // 20.255f, 59.361f, 20.245f, 59.848f, 20.266f, 60.031f
6197 path.cubicTo(SkBits2Float(0x41a28f66), SkBits2Float(0x4272e45e), SkBits2Float(0x41a4b85b), SkBits2Float(0x4274c9be), SkBits2Float(0x41a7eb8e), SkBits2Float(0x427621ce));  // 20.32f, 60.723f, 20.59f, 61.197f, 20.99f, 61.533f
6198 path.cubicTo(SkBits2Float(0x41a82d17), SkBits2Float(0x42764293), SkBits2Float(0x41a870ad), SkBits2Float(0x42764293), SkBits2Float(0x41a8b236), SkBits2Float(0x4276591a));  // 21.022f, 61.565f, 21.055f, 61.565f, 21.087f, 61.587f
6199 path.cubicTo(SkBits2Float(0x41a90a46), SkBits2Float(0x427679df), SkBits2Float(0x41a93755), SkBits2Float(0x4276b12a), SkBits2Float(0x41a98f65), SkBits2Float(0x4276c6ab));  // 21.13f, 61.619f, 21.152f, 61.673f, 21.195f, 61.694f
6200 path.cubicTo(SkBits2Float(0x41aadb2c), SkBits2Float(0x42774086), SkBits2Float(0x41ac958a), SkBits2Float(0x42778e59), SkBits2Float(0x41adb64e), SkBits2Float(0x427828f9));  // 21.357f, 61.813f, 21.573f, 61.889f, 21.714f, 62.04f
6201 path.cubicTo(SkBits2Float(0x41adb64e), SkBits2Float(0x427828f9), SkBits2Float(0x41ad8940), SkBits2Float(0x42786045), SkBits2Float(0x41ad72b8), SkBits2Float(0x42786045));  // 21.714f, 62.04f, 21.692f, 62.094f, 21.681f, 62.094f
6202 path.moveTo(SkBits2Float(0x41bd168f), SkBits2Float(0x4267be7a));  // 23.636f, 57.936f
6203 path.cubicTo(SkBits2Float(0x41bd168f), SkBits2Float(0x42679caf), SkBits2Float(0x41bd2d16), SkBits2Float(0x4267666a), SkBits2Float(0x41bd168f), SkBits2Float(0x42674fe2));  // 23.636f, 57.903f, 23.647f, 57.85f, 23.636f, 57.828f
6204 path.cubicTo(SkBits2Float(0x41bd168f), SkBits2Float(0x4267449e), SkBits2Float(0x41bd0008), SkBits2Float(0x42674fe2), SkBits2Float(0x41bce981), SkBits2Float(0x42672f1d));  // 23.636f, 57.817f, 23.625f, 57.828f, 23.614f, 57.796f
6205 path.cubicTo(SkBits2Float(0x41bcd2fa), SkBits2Float(0x42672f1d), SkBits2Float(0x41bc9171), SkBits2Float(0x4267449e), SkBits2Float(0x41bc7ae9), SkBits2Float(0x42672f1d));  // 23.603f, 57.796f, 23.571f, 57.817f, 23.56f, 57.796f
6206 path.cubicTo(SkBits2Float(0x41bb9dba), SkBits2Float(0x4267d500), SkBits2Float(0x41bbb441), SkBits2Float(0x42693648), SkBits2Float(0x41bb72b8), SkBits2Float(0x426a1377));  // 23.452f, 57.958f, 23.463f, 58.303f, 23.431f, 58.519f
6207 path.cubicTo(SkBits2Float(0x41bb45aa), SkBits2Float(0x426a6c8e), SkBits2Float(0x41bb2f22), SkBits2Float(0x426acfe1), SkBits2Float(0x41bb189b), SkBits2Float(0x426b3335));  // 23.409f, 58.606f, 23.398f, 58.703f, 23.387f, 58.8f
6208 path.lineTo(SkBits2Float(0x41baed99), SkBits2Float(0x426b5f3d));  // 23.366f, 58.843f
6209 path.cubicTo(SkBits2Float(0x41baac10), SkBits2Float(0x426bd918), SkBits2Float(0x41bac08b), SkBits2Float(0x426c3129), SkBits2Float(0x41baac10), SkBits2Float(0x426cab04));  // 23.334f, 58.962f, 23.344f, 59.048f, 23.334f, 59.167f
6210 path.cubicTo(SkBits2Float(0x41ba7f02), SkBits2Float(0x426d50e7), SkBits2Float(0x41ba3b6c), SkBits2Float(0x426e0d52), SkBits2Float(0x41ba106a), SkBits2Float(0x426ec9bc));  // 23.312f, 59.329f, 23.279f, 59.513f, 23.258f, 59.697f
6211 path.cubicTo(SkBits2Float(0x41b9ccd4), SkBits2Float(0x426f645c), SkBits2Float(0x41b974c4), SkBits2Float(0x42701fc0), SkBits2Float(0x41b949c2), SkBits2Float(0x4270c5a3));  // 23.225f, 59.848f, 23.182f, 60.031f, 23.161f, 60.193f
6212 path.cubicTo(SkBits2Float(0x41b9333b), SkBits2Float(0x42713f7e), SkBits2Float(0x41b98b4b), SkBits2Float(0x4271820d), SkBits2Float(0x41b9f9e3), SkBits2Float(0x4271ae16));  // 23.15f, 60.312f, 23.193f, 60.377f, 23.247f, 60.42f
6213 path.cubicTo(SkBits2Float(0x41ba3b6c), SkBits2Float(0x42718d51), SkBits2Float(0x41ba7f02), SkBits2Float(0x4271b95a), SkBits2Float(0x41ba9589), SkBits2Float(0x42716b87));  // 23.279f, 60.388f, 23.312f, 60.431f, 23.323f, 60.355f
6214 path.cubicTo(SkBits2Float(0x41baac10), SkBits2Float(0x4271343b), SkBits2Float(0x41ba9589), SkBits2Float(0x4270e76e), SkBits2Float(0x41ba9589), SkBits2Float(0x4270999b));  // 23.334f, 60.301f, 23.323f, 60.226f, 23.323f, 60.15f
6215 path.cubicTo(SkBits2Float(0x41ba9589), SkBits2Float(0x4270418b), SkBits2Float(0x41bac08b), SkBits2Float(0x426fd1ed), SkBits2Float(0x41baed99), SkBits2Float(0x426f645c));  // 23.323f, 60.064f, 23.344f, 59.955f, 23.366f, 59.848f
6216 path.cubicTo(SkBits2Float(0x41bb2f22), SkBits2Float(0x426e6562), SkBits2Float(0x41bb9dba), SkBits2Float(0x426d3b66), SkBits2Float(0x41bbf5ca), SkBits2Float(0x426c3c6c));  // 23.398f, 59.599f, 23.452f, 59.308f, 23.495f, 59.059f
6217 path.cubicTo(SkBits2Float(0x41bc0e5d), SkBits2Float(0x426bb853), SkBits2Float(0x41bc0e5d), SkBits2Float(0x426b5f3d), SkBits2Float(0x41bc22d8), SkBits2Float(0x426ae562));  // 23.507f, 58.93f, 23.507f, 58.843f, 23.517f, 58.724f
6218 path.cubicTo(SkBits2Float(0x41bc395f), SkBits2Float(0x426a820e), SkBits2Float(0x41bc9170), SkBits2Float(0x4269f2b2), SkBits2Float(0x41bca7f7), SkBits2Float(0x42698f5e));  // 23.528f, 58.627f, 23.571f, 58.487f, 23.582f, 58.39f
6219 path.cubicTo(SkBits2Float(0x41bcd2f9), SkBits2Float(0x426920c6), SkBits2Float(0x41bca7f7), SkBits2Float(0x4268d2f4), SkBits2Float(0x41bcd2f9), SkBits2Float(0x4268645c));  // 23.603f, 58.282f, 23.582f, 58.206f, 23.603f, 58.098f
6220 path.cubicTo(SkBits2Float(0x41bcd2f9), SkBits2Float(0x42684291), SkBits2Float(0x41bd168f), SkBits2Float(0x4267df3d), SkBits2Float(0x41bd168f), SkBits2Float(0x4267be79));  // 23.603f, 58.065f, 23.636f, 57.968f, 23.636f, 57.936f
6221 path.moveTo(SkBits2Float(0x41bd6e9f), SkBits2Float(0x426e916b));  // 23.679f, 59.642f
6222 path.cubicTo(SkBits2Float(0x41bdb028), SkBits2Float(0x426d199c), SkBits2Float(0x41bdf3be), SkBits2Float(0x426bb854), SkBits2Float(0x41be6255), SkBits2Float(0x426a343c));  // 23.711f, 59.275f, 23.744f, 58.93f, 23.798f, 58.551f
6223 path.cubicTo(SkBits2Float(0x41be78dc), SkBits2Float(0x4269f2b3), SkBits2Float(0x41bed0ed), SkBits2Float(0x4269841b), SkBits2Float(0x41bed0ed), SkBits2Float(0x4269418c));  // 23.809f, 58.487f, 23.852f, 58.379f, 23.852f, 58.314f
6224 path.cubicTo(SkBits2Float(0x41bee774), SkBits2Float(0x4268bc6d), SkBits2Float(0x41bee774), SkBits2Float(0x42684edc), SkBits2Float(0x41bf1276), SkBits2Float(0x4267df3e));  // 23.863f, 58.184f, 23.863f, 58.077f, 23.884f, 57.968f
6225 path.cubicTo(SkBits2Float(0x41bf3f84), SkBits2Float(0x4267a7f2), SkBits2Float(0x41bf3f84), SkBits2Float(0x4267872e), SkBits2Float(0x41bf9795), SkBits2Float(0x426770a6));  // 23.906f, 57.914f, 23.906f, 57.882f, 23.949f, 57.86f
6226 path.cubicTo(SkBits2Float(0x41c0ccd4), SkBits2Float(0x42675b25), SkBits2Float(0x41c6810e), SkBits2Float(0x4268d2f4), SkBits2Float(0x41c6d91e), SkBits2Float(0x426920c7));  // 24.1f, 57.839f, 24.813f, 58.206f, 24.856f, 58.282f
6227 path.cubicTo(SkBits2Float(0x41c7333b), SkBits2Float(0x42696d94), SkBits2Float(0x41c7062c), SkBits2Float(0x4270e76f), SkBits2Float(0x41c6ae1c), SkBits2Float(0x42713f7f));  // 24.9f, 58.357f, 24.878f, 60.226f, 24.835f, 60.312f
6228 path.cubicTo(SkBits2Float(0x41c63f84), SkBits2Float(0x4271a2d3), SkBits2Float(0x41c3a7f7), SkBits2Float(0x42716b87), SkBits2Float(0x41c2cac8), SkBits2Float(0x427176cb));  // 24.781f, 60.409f, 24.457f, 60.355f, 24.349f, 60.366f
6229 path.cubicTo(SkBits2Float(0x41c2b441), SkBits2Float(0x427176cb), SkBits2Float(0x41c270ab), SkBits2Float(0x4271a2d3), SkBits2Float(0x41c245a9), SkBits2Float(0x4271a2d3));  // 24.338f, 60.366f, 24.305f, 60.409f, 24.284f, 60.409f
6230 path.cubicTo(SkBits2Float(0x41c1aa03), SkBits2Float(0x4271b95a), SkBits2Float(0x41c1106a), SkBits2Float(0x4271ae17), SkBits2Float(0x41c05e3c), SkBits2Float(0x4271b95a));  // 24.208f, 60.431f, 24.133f, 60.42f, 24.046f, 60.431f
6231 path.cubicTo(SkBits2Float(0x41bf1275), SkBits2Float(0x4271e562), SkBits2Float(0x41be4bcd), SkBits2Float(0x427227f2), SkBits2Float(0x41bcd2f8), SkBits2Float(0x4272322f));  // 23.884f, 60.474f, 23.787f, 60.539f, 23.603f, 60.549f
6232 path.cubicTo(SkBits2Float(0x41bc395e), SkBits2Float(0x427128f8), SkBits2Float(0x41bd2d15), SkBits2Float(0x426f8f5e), SkBits2Float(0x41bd6e9e), SkBits2Float(0x426e916a));  // 23.528f, 60.29f, 23.647f, 59.89f, 23.679f, 59.642f
6233 path.moveTo(SkBits2Float(0x41d21481), SkBits2Float(0x42700a3f));  // 26.26f, 60.01f
6234 path.cubicTo(SkBits2Float(0x41d22b08), SkBits2Float(0x42704cce), SkBits2Float(0x41d299a0), SkBits2Float(0x4270f1ac), SkBits2Float(0x41d2418f), SkBits2Float(0x42713f7e));  // 26.271f, 60.075f, 26.325f, 60.236f, 26.282f, 60.312f
6235 path.cubicTo(SkBits2Float(0x41d2418f), SkBits2Float(0x42714ac2), SkBits2Float(0x41d22b08), SkBits2Float(0x42713f7e), SkBits2Float(0x41d21481), SkBits2Float(0x42715605));  // 26.282f, 60.323f, 26.271f, 60.312f, 26.26f, 60.334f
6236 path.cubicTo(SkBits2Float(0x41d1bc71), SkBits2Float(0x42715605), SkBits2Float(0x41d1916f), SkBits2Float(0x42715605), SkBits2Float(0x41d1395e), SkBits2Float(0x42714ac1));  // 26.217f, 60.334f, 26.196f, 60.334f, 26.153f, 60.323f
6237 path.cubicTo(SkBits2Float(0x41d0b233), SkBits2Float(0x42708419), SkBits2Float(0x41d0c8ba), SkBits2Float(0x426f645b), SkBits2Float(0x41d09db8), SkBits2Float(0x426e5a1d));  // 26.087f, 60.129f, 26.098f, 59.848f, 26.077f, 59.588f
6238 path.cubicTo(SkBits2Float(0x41d09db8), SkBits2Float(0x426e23d7), SkBits2Float(0x41d05a22), SkBits2Float(0x426d9375), SkBits2Float(0x41d070aa), SkBits2Float(0x426d50e6));  // 26.077f, 59.535f, 26.044f, 59.394f, 26.055f, 59.329f
6239 path.cubicTo(SkBits2Float(0x41d09db8), SkBits2Float(0x426d3b65), SkBits2Float(0x41d0b233), SkBits2Float(0x426d50e6), SkBits2Float(0x41d0b233), SkBits2Float(0x426d2f1b));  // 26.077f, 59.308f, 26.087f, 59.329f, 26.087f, 59.296f
6240 path.cubicTo(SkBits2Float(0x41d1395e), SkBits2Float(0x426d3b65), SkBits2Float(0x41d14dd9), SkBits2Float(0x426d2f1b), SkBits2Float(0x41d1916e), SkBits2Float(0x426d50e6));  // 26.153f, 59.308f, 26.163f, 59.296f, 26.196f, 59.329f
6241 path.cubicTo(SkBits2Float(0x41d1a5e9), SkBits2Float(0x426d50e6), SkBits2Float(0x41d1e97e), SkBits2Float(0x426de148), SkBits2Float(0x41d1e97e), SkBits2Float(0x426dec8c));  // 26.206f, 59.329f, 26.239f, 59.47f, 26.239f, 59.481f
6242 path.cubicTo(SkBits2Float(0x41d22b07), SkBits2Float(0x426e9cad), SkBits2Float(0x41d1e97e), SkBits2Float(0x426f4dd4), SkBits2Float(0x41d21480), SkBits2Float(0x42700a3e));  // 26.271f, 59.653f, 26.239f, 59.826f, 26.26f, 60.01f
6243 path.moveTo(SkBits2Float(0x41ee1274), SkBits2Float(0x42564ac1));  // 29.759f, 53.573f
6244 path.cubicTo(SkBits2Float(0x41ee1274), SkBits2Float(0x42566b86), SkBits2Float(0x41ee3f82), SkBits2Float(0x4256c49c), SkBits2Float(0x41ee28fb), SkBits2Float(0x4256fbe8));  // 29.759f, 53.605f, 29.781f, 53.692f, 29.77f, 53.746f
6245 path.cubicTo(SkBits2Float(0x41ee28fb), SkBits2Float(0x42571cad), SkBits2Float(0x41ede772), SkBits2Float(0x425748b5), SkBits2Float(0x41ede772), SkBits2Float(0x42576a80));  // 29.77f, 53.778f, 29.738f, 53.821f, 29.738f, 53.854f
6246 path.cubicTo(SkBits2Float(0x41ed8f62), SkBits2Float(0x425774bd), SkBits2Float(0x41ed20ca), SkBits2Float(0x42579688), SkBits2Float(0x41ec6e9d), SkBits2Float(0x42579688));  // 29.695f, 53.864f, 29.641f, 53.897f, 29.554f, 53.897f
6247 path.cubicTo(SkBits2Float(0x41ebeb8b), SkBits2Float(0x42579688), SkBits2Float(0x41eb666c), SkBits2Float(0x425774bd), SkBits2Float(0x41eaf7d4), SkBits2Float(0x42576a80));  // 29.49f, 53.897f, 29.425f, 53.864f, 29.371f, 53.854f
6248 path.cubicTo(SkBits2Float(0x41eacac6), SkBits2Float(0x425676ca), SkBits2Float(0x41eb666c), SkBits2Float(0x42556d92), SkBits2Float(0x41ebbe7c), SkBits2Float(0x42549063));  // 29.349f, 53.616f, 29.425f, 53.357f, 29.468f, 53.141f
6249 path.cubicTo(SkBits2Float(0x41ebd503), SkBits2Float(0x425421cb), SkBits2Float(0x41ebd503), SkBits2Float(0x4253d3f9), SkBits2Float(0x41ec0005), SkBits2Float(0x42537be8));  // 29.479f, 53.033f, 29.479f, 52.957f, 29.5f, 52.871f
6250 path.cubicTo(SkBits2Float(0x41ec2d13), SkBits2Float(0x42535a1d), SkBits2Float(0x41ec6e9d), SkBits2Float(0x42531894), SkBits2Float(0x41ecb232), SkBits2Float(0x42531894));  // 29.522f, 52.838f, 29.554f, 52.774f, 29.587f, 52.774f
6251 path.cubicTo(SkBits2Float(0x41ed3544), SkBits2Float(0x4253020d), SkBits2Float(0x41edd0ea), SkBits2Float(0x42531894), SkBits2Float(0x41ede771), SkBits2Float(0x4253449c));  // 29.651f, 52.752f, 29.727f, 52.774f, 29.738f, 52.817f
6252 path.cubicTo(SkBits2Float(0x41ee1273), SkBits2Float(0x42534fe0), SkBits2Float(0x41ede771), SkBits2Float(0x42536561), SkBits2Float(0x41ede771), SkBits2Float(0x42537be8));  // 29.759f, 52.828f, 29.738f, 52.849f, 29.738f, 52.871f
6253 path.cubicTo(SkBits2Float(0x41ee3f81), SkBits2Float(0x42544290), SkBits2Float(0x41ede771), SkBits2Float(0x42554ccd), SkBits2Float(0x41ee1273), SkBits2Float(0x42564ac1));  // 29.781f, 53.065f, 29.738f, 53.325f, 29.759f, 53.573f
6254 path.moveTo(SkBits2Float(0x41f51273), SkBits2Float(0x4258cbc7));  // 30.634f, 54.199f
6255 path.cubicTo(SkBits2Float(0x41f4e771), SkBits2Float(0x4259199a), SkBits2Float(0x41f3b025), SkBits2Float(0x4259bf7d), SkBits2Float(0x41f35815), SkBits2Float(0x4259eb85));  // 30.613f, 54.275f, 30.461f, 54.437f, 30.418f, 54.48f
6256 path.cubicTo(SkBits2Float(0x41f2395d), SkBits2Float(0x425aa6e9), SkBits2Float(0x41f2395d), SkBits2Float(0x425a449c), SkBits2Float(0x41f222d6), SkBits2Float(0x42596666));  // 30.278f, 54.663f, 30.278f, 54.567f, 30.267f, 54.35f
6257 path.cubicTo(SkBits2Float(0x41f222d6), SkBits2Float(0x425945a1), SkBits2Float(0x41f1f5c8), SkBits2Float(0x4258e24d), SkBits2Float(0x41f222d6), SkBits2Float(0x4258ab02));  // 30.267f, 54.318f, 30.245f, 54.221f, 30.267f, 54.167f
6258 path.cubicTo(SkBits2Float(0x41f2395d), SkBits2Float(0x42589fbe), SkBits2Float(0x41f2e97e), SkBits2Float(0x42588a3d), SkBits2Float(0x41f30005), SkBits2Float(0x425873b6));  // 30.278f, 54.156f, 30.364f, 54.135f, 30.375f, 54.113f
6259 path.cubicTo(SkBits2Float(0x41f3b026), SkBits2Float(0x42586872), SkBits2Float(0x41f48d55), SkBits2Float(0x42588937), SkBits2Float(0x41f51274), SkBits2Float(0x4258947b));  // 30.461f, 54.102f, 30.569f, 54.134f, 30.634f, 54.145f
6260 path.cubicTo(SkBits2Float(0x41f4fdf9), SkBits2Float(0x42589fbf), SkBits2Float(0x41f51274), SkBits2Float(0x4258b646), SkBits2Float(0x41f51274), SkBits2Float(0x4258cbc7));  // 30.624f, 54.156f, 30.634f, 54.178f, 30.634f, 54.199f
6261 path.moveTo(SkBits2Float(0x41f20e5b), SkBits2Float(0x425727f0));  // 30.257f, 53.789f
6262 path.cubicTo(SkBits2Float(0x41f1cac5), SkBits2Float(0x4256da1d), SkBits2Float(0x41f222d6), SkBits2Float(0x42561375), SkBits2Float(0x41f222d6), SkBits2Float(0x4255d0e6));  // 30.224f, 53.713f, 30.267f, 53.519f, 30.267f, 53.454f
6263 path.cubicTo(SkBits2Float(0x41f222d6), SkBits2Float(0x42553646), SkBits2Float(0x41f1b43e), SkBits2Float(0x4254374c), SkBits2Float(0x41f20e5b), SkBits2Float(0x42539169));  // 30.267f, 53.303f, 30.213f, 53.054f, 30.257f, 52.892f
6264 path.cubicTo(SkBits2Float(0x41f222d6), SkBits2Float(0x42536561), SkBits2Float(0x41f2916d), SkBits2Float(0x4253449c), SkBits2Float(0x41f2be7c), SkBits2Float(0x4253449c));  // 30.267f, 52.849f, 30.321f, 52.817f, 30.343f, 52.817f
6265 path.cubicTo(SkBits2Float(0x41f3b026), SkBits2Float(0x42532e15), SkBits2Float(0x41f845a7), SkBits2Float(0x42539cac), SkBits2Float(0x41f88730), SkBits2Float(0x4253d3f8));  // 30.461f, 52.795f, 31.034f, 52.903f, 31.066f, 52.957f
6266 path.cubicTo(SkBits2Float(0x41f8cac6), SkBits2Float(0x42540000), SkBits2Float(0x41f8cac6), SkBits2Float(0x42544290), SkBits2Float(0x41f8e14d), SkBits2Float(0x4254851f));  // 31.099f, 53, 31.099f, 53.065f, 31.11f, 53.13f
6267 path.cubicTo(SkBits2Float(0x41f8f5c8), SkBits2Float(0x4254d1ec), SkBits2Float(0x41f97ae7), SkBits2Float(0x425578d5), SkBits2Float(0x41f9666c), SkBits2Float(0x4255e76d));  // 31.12f, 53.205f, 31.185f, 53.368f, 31.175f, 53.476f
6268 path.cubicTo(SkBits2Float(0x41f94dd9), SkBits2Float(0x42561375), SkBits2Float(0x41f88731), SkBits2Float(0x4256a2d1), SkBits2Float(0x41f85c2f), SkBits2Float(0x4256c49c));  // 31.163f, 53.519f, 31.066f, 53.659f, 31.045f, 53.692f
6269 path.cubicTo(SkBits2Float(0x41f845a8), SkBits2Float(0x4256da1d), SkBits2Float(0x41f7d710), SkBits2Float(0x4256f0a4), SkBits2Float(0x41f7d710), SkBits2Float(0x4256fbe8));  // 31.034f, 53.713f, 30.98f, 53.735f, 30.98f, 53.746f
6270 path.lineTo(SkBits2Float(0x41f7d710), SkBits2Float(0x42571cad));  // 30.98f, 53.778f
6271 path.cubicTo(SkBits2Float(0x41f79587), SkBits2Float(0x4257322e), SkBits2Float(0x41f73b6a), SkBits2Float(0x425748b5), SkBits2Float(0x41f6f9e1), SkBits2Float(0x42575f3c));  // 30.948f, 53.799f, 30.904f, 53.821f, 30.872f, 53.843f
6272 path.cubicTo(SkBits2Float(0x41f6062b), SkBits2Float(0x425774bd), SkBits2Float(0x41f2395e), SkBits2Float(0x425774bd), SkBits2Float(0x41f20e5c), SkBits2Float(0x425727f0));  // 30.753f, 53.864f, 30.278f, 53.864f, 30.257f, 53.789f
6273 path.moveTo(SkBits2Float(0x42048f5f), SkBits2Float(0x426b072b));  // 33.14f, 58.757f
6274 path.cubicTo(SkBits2Float(0x42046d94), SkBits2Float(0x426acfdf), SkBits2Float(0x42048f5f), SkBits2Float(0x426ab958), SkBits2Float(0x420478d8), SkBits2Float(0x426a77cf));  // 33.107f, 58.703f, 33.14f, 58.681f, 33.118f, 58.617f
6275 path.cubicTo(SkBits2Float(0x42045813), SkBits2Float(0x4269d0e6), SkBits2Float(0x42042c0b), SkBits2Float(0x42693646), SkBits2Float(0x42041584), SkBits2Float(0x4268851f));  // 33.086f, 58.454f, 33.043f, 58.303f, 33.021f, 58.13f
6276 path.cubicTo(SkBits2Float(0x4203e97c), SkBits2Float(0x4267c9bb), SkBits2Float(0x42039caf), SkBits2Float(0x42670d50), SkBits2Float(0x4203a6ec), SkBits2Float(0x426624dd));  // 32.978f, 57.947f, 32.903f, 57.763f, 32.913f, 57.536f
6277 path.cubicTo(SkBits2Float(0x4203a6ec), SkBits2Float(0x426624dd), SkBits2Float(0x4203de38), SkBits2Float(0x4265f8d5), SkBits2Float(0x4203e97b), SkBits2Float(0x4265f8d5));  // 32.913f, 57.536f, 32.967f, 57.493f, 32.978f, 57.493f
6278 path.cubicTo(SkBits2Float(0x42042c0a), SkBits2Float(0x4265ee98), SkBits2Float(0x4204c6aa), SkBits2Float(0x4266199a), SkBits2Float(0x4204e875), SkBits2Float(0x42663b64));  // 33.043f, 57.483f, 33.194f, 57.525f, 33.227f, 57.558f
6279 path.cubicTo(SkBits2Float(0x42051ebb), SkBits2Float(0x42668937), SkBits2Float(0x42051ebb), SkBits2Float(0x42671893), SkBits2Float(0x42054085), SkBits2Float(0x426770a3));  // 33.28f, 57.634f, 33.28f, 57.774f, 33.313f, 57.86f
6280 path.cubicTo(SkBits2Float(0x42058314), SkBits2Float(0x4268a6e9), SkBits2Float(0x4206072d), SkBits2Float(0x4269d0e5), SkBits2Float(0x42061271), SkBits2Float(0x426b3e76));  // 33.378f, 58.163f, 33.507f, 58.454f, 33.518f, 58.811f
6281 path.cubicTo(SkBits2Float(0x4205e669), SkBits2Float(0x426b3e76), SkBits2Float(0x4205e669), SkBits2Float(0x426b49ba), SkBits2Float(0x4205b95a), SkBits2Float(0x426b5f3b));  // 33.475f, 58.811f, 33.475f, 58.822f, 33.431f, 58.843f
6282 path.cubicTo(SkBits2Float(0x42056c8d), SkBits2Float(0x426b5f3b), SkBits2Float(0x4204e875), SkBits2Float(0x426b75c2), SkBits2Float(0x4204b023), SkBits2Float(0x426b49ba));  // 33.356f, 58.843f, 33.227f, 58.865f, 33.172f, 58.822f
6283 path.lineTo(SkBits2Float(0x4204b023), SkBits2Float(0x426b3333));  // 33.172f, 58.8f
6284 path.cubicTo(SkBits2Float(0x4204b023), SkBits2Float(0x426b27ef), SkBits2Float(0x42048f5e), SkBits2Float(0x426b072b), SkBits2Float(0x42048f5e), SkBits2Float(0x426b072b));  // 33.172f, 58.789f, 33.14f, 58.757f, 33.14f, 58.757f
6285 path.moveTo(SkBits2Float(0x42035918), SkBits2Float(0x426b6a7f));  // 32.837f, 58.854f
6286 path.cubicTo(SkBits2Float(0x42032d10), SkBits2Float(0x426b6a7f), SkBits2Float(0x42030108), SkBits2Float(0x426b75c3), SkBits2Float(0x4202d4ff), SkBits2Float(0x426b75c3));  // 32.794f, 58.854f, 32.751f, 58.865f, 32.708f, 58.865f
6287 path.cubicTo(SkBits2Float(0x42026667), SkBits2Float(0x426b75c3), SkBits2Float(0x42020d51), SkBits2Float(0x426b5f3c), SkBits2Float(0x4201ec8c), SkBits2Float(0x426b27f0));  // 32.6f, 58.865f, 32.513f, 58.843f, 32.481f, 58.789f
6288 path.cubicTo(SkBits2Float(0x4201cbc7), SkBits2Float(0x426ae561), SkBits2Float(0x4201cbc7), SkBits2Float(0x426a6c8c), SkBits2Float(0x4201b540), SkBits2Float(0x426a0832));  // 32.449f, 58.724f, 32.449f, 58.606f, 32.427f, 58.508f
6289 path.cubicTo(SkBits2Float(0x42018938), SkBits2Float(0x426920c5), SkBits2Float(0x42016873), SkBits2Float(0x42683853), SkBits2Float(0x42013021), SkBits2Float(0x42672f1b));  // 32.384f, 58.282f, 32.352f, 58.055f, 32.297f, 57.796f
6290 path.cubicTo(SkBits2Float(0x42013021), SkBits2Float(0x4267020d), SkBits2Float(0x4200f9db), SkBits2Float(0x42669375), SkBits2Float(0x4200f9db), SkBits2Float(0x426651ec));  // 32.297f, 57.752f, 32.244f, 57.644f, 32.244f, 57.58f
6291 path.cubicTo(SkBits2Float(0x42010418), SkBits2Float(0x4266199a), SkBits2Float(0x420151eb), SkBits2Float(0x4265ee98), SkBits2Float(0x42018937), SkBits2Float(0x4265ee98));  // 32.254f, 57.525f, 32.33f, 57.483f, 32.384f, 57.483f
6292 path.cubicTo(SkBits2Float(0x4201e147), SkBits2Float(0x4265e24e), SkBits2Float(0x42022f1a), SkBits2Float(0x4265ee98), SkBits2Float(0x42023a5e), SkBits2Float(0x4266199a));  // 32.47f, 57.471f, 32.546f, 57.483f, 32.557f, 57.525f
6293 path.cubicTo(SkBits2Float(0x420271aa), SkBits2Float(0x42665c29), SkBits2Float(0x42027be7), SkBits2Float(0x42670d50), SkBits2Float(0x42029db2), SkBits2Float(0x426770a4));  // 32.611f, 57.59f, 32.621f, 57.763f, 32.654f, 57.86f
6294 path.cubicTo(SkBits2Float(0x42029db2), SkBits2Float(0x4267be77), SkBits2Float(0x4202d4fe), SkBits2Float(0x4268178d), SkBits2Float(0x4202e041), SkBits2Float(0x42684ed9));  // 32.654f, 57.936f, 32.708f, 58.023f, 32.719f, 58.077f
6295 path.cubicTo(SkBits2Float(0x4202ea7e), SkBits2Float(0x4268bc6a), SkBits2Float(0x4202ea7e), SkBits2Float(0x4268fefa), SkBits2Float(0x42030106), SkBits2Float(0x42695810));  // 32.729f, 58.184f, 32.729f, 58.249f, 32.751f, 58.336f
6296 path.cubicTo(SkBits2Float(0x420322d1), SkBits2Float(0x4269fced), SkBits2Float(0x4203645a), SkBits2Float(0x426a820c), SkBits2Float(0x4203645a), SkBits2Float(0x426b49ba));  // 32.784f, 58.497f, 32.848f, 58.627f, 32.848f, 58.822f
6297 path.cubicTo(SkBits2Float(0x42034395), SkBits2Float(0x426b49ba), SkBits2Float(0x42035916), SkBits2Float(0x426b49ba), SkBits2Float(0x42035916), SkBits2Float(0x426b6a7f));  // 32.816f, 58.822f, 32.837f, 58.822f, 32.837f, 58.854f
6298 path.moveTo(SkBits2Float(0x42009580), SkBits2Float(0x426b6a7f));  // 32.146f, 58.854f
6299 path.lineTo(SkBits2Float(0x42008b43), SkBits2Float(0x426b8106));  // 32.136f, 58.876f
6300 path.cubicTo(SkBits2Float(0x42007fff), SkBits2Float(0x426b8106), SkBits2Float(0x42005e35), SkBits2Float(0x426b75c2), SkBits2Float(0x420048b4), SkBits2Float(0x426b8106));  // 32.125f, 58.876f, 32.092f, 58.865f, 32.071f, 58.876f
6301 path.cubicTo(SkBits2Float(0x41fdcccc), SkBits2Float(0x426bad0e), SkBits2Float(0x41f94dd2), SkBits2Float(0x426b8c4a), SkBits2Float(0x41f6cccc), SkBits2Float(0x426b8c4a));  // 31.725f, 58.919f, 31.163f, 58.887f, 30.85f, 58.887f
6302 path.cubicTo(SkBits2Float(0x41f65e34), SkBits2Float(0x426b8106), SkBits2Float(0x41f39ba5), SkBits2Float(0x426b8106), SkBits2Float(0x41f35810), SkBits2Float(0x426b49bb));  // 30.796f, 58.876f, 30.451f, 58.876f, 30.418f, 58.822f
6303 path.cubicTo(SkBits2Float(0x41f35810), SkBits2Float(0x426b3334), SkBits2Float(0x41f2e978), SkBits2Float(0x4267926f), SkBits2Float(0x41f31687), SkBits2Float(0x426723d8));  // 30.418f, 58.8f, 30.364f, 57.893f, 30.386f, 57.785f
6304 path.lineTo(SkBits2Float(0x41f36e97), SkBits2Float(0x4266ec8c));  // 30.429f, 57.731f
6305 path.cubicTo(SkBits2Float(0x41f3f3b6), SkBits2Float(0x4266b540), SkBits2Float(0x41f4d0e5), SkBits2Float(0x4266b540), SkBits2Float(0x41f58106), SkBits2Float(0x42669eb9));  // 30.494f, 57.677f, 30.602f, 57.677f, 30.688f, 57.655f
6306 path.cubicTo(SkBits2Float(0x41f7ed91), SkBits2Float(0x42663b65), SkBits2Float(0x41fac6a8), SkBits2Float(0x4265ee98), SkBits2Float(0x41fdb646), SkBits2Float(0x4265d811));  // 30.991f, 57.558f, 31.347f, 57.483f, 31.714f, 57.461f
6307 path.cubicTo(SkBits2Float(0x41fe51ec), SkBits2Float(0x4265c18a), SkBits2Float(0x41ff2f1b), SkBits2Float(0x4265d811), SkBits2Float(0x41ff872b), SkBits2Float(0x4265f8d6));  // 31.79f, 57.439f, 31.898f, 57.461f, 31.941f, 57.493f
6308 path.cubicTo(SkBits2Float(0x41ffb439), SkBits2Float(0x4266199b), SkBits2Float(0x41ffb439), SkBits2Float(0x42669eb9), SkBits2Float(0x41ffdf3b), SkBits2Float(0x4266d605));  // 31.963f, 57.525f, 31.963f, 57.655f, 31.984f, 57.709f
6309 path.cubicTo(SkBits2Float(0x41fff5c2), SkBits2Float(0x42670d51), SkBits2Float(0x42001cac), SkBits2Float(0x42675b24), SkBits2Float(0x42001cac), SkBits2Float(0x4267926f));  // 31.995f, 57.763f, 32.028f, 57.839f, 32.028f, 57.893f
6310 path.cubicTo(SkBits2Float(0x42003d71), SkBits2Float(0x42684290), SkBits2Float(0x420048b4), SkBits2Float(0x4268c7ae), SkBits2Float(0x42005e35), SkBits2Float(0x42696d92));  // 32.06f, 58.065f, 32.071f, 58.195f, 32.092f, 58.357f
6311 path.cubicTo(SkBits2Float(0x42008000), SkBits2Float(0x4269d0e6), SkBits2Float(0x4200ac08), SkBits2Float(0x426a5605), SkBits2Float(0x4200b74c), SkBits2Float(0x426acfe0));  // 32.125f, 58.454f, 32.168f, 58.584f, 32.179f, 58.703f
6312 path.cubicTo(SkBits2Float(0x4200c189), SkBits2Float(0x426b072c), SkBits2Float(0x4200b74c), SkBits2Float(0x426b49bb), SkBits2Float(0x42009581), SkBits2Float(0x426b6a80));  // 32.189f, 58.757f, 32.179f, 58.822f, 32.146f, 58.854f
6313 path.moveTo(SkBits2Float(0x41eeae14), SkBits2Float(0x426bef9f));  // 29.835f, 58.984f
6314 path.cubicTo(SkBits2Float(0x41ee8312), SkBits2Float(0x426c26eb), SkBits2Float(0x41ed353f), SkBits2Float(0x426c52f3), SkBits2Float(0x41ecc8b4), SkBits2Float(0x426c73b8));  // 29.814f, 59.038f, 29.651f, 59.081f, 29.598f, 59.113f
6315 path.cubicTo(SkBits2Float(0x41eb7ae1), SkBits2Float(0x426cd70c), SkBits2Float(0x41ea3127), SkBits2Float(0x426d9376), SkBits2Float(0x41e96872), SkBits2Float(0x426e2e16));  // 29.435f, 59.21f, 29.274f, 59.394f, 29.176f, 59.545f
6316 path.cubicTo(SkBits2Float(0x41e88b43), SkBits2Float(0x426ed3f9), SkBits2Float(0x41e7c49b), SkBits2Float(0x426fdd31), SkBits2Float(0x41e6a5e3), SkBits2Float(0x4270570c));  // 29.068f, 59.707f, 28.971f, 59.966f, 28.831f, 60.085f
6317 path.cubicTo(SkBits2Float(0x41e678d5), SkBits2Float(0x427078d7), SkBits2Float(0x41e6624d), SkBits2Float(0x42706d93), SkBits2Float(0x41e620c4), SkBits2Float(0x427078d7));  // 28.809f, 60.118f, 28.798f, 60.107f, 28.766f, 60.118f
6318 path.cubicTo(SkBits2Float(0x41e60a3d), SkBits2Float(0x4270841b), SkBits2Float(0x41e5f3b6), SkBits2Float(0x4270999c), SkBits2Float(0x41e5f3b6), SkBits2Float(0x4270999c));  // 28.755f, 60.129f, 28.744f, 60.15f, 28.744f, 60.15f
6319 path.cubicTo(SkBits2Float(0x41e52d0e), SkBits2Float(0x4270d0e8), SkBits2Float(0x41e49374), SkBits2Float(0x4270e76f), SkBits2Float(0x41e39fbe), SkBits2Float(0x4270fcf0));  // 28.647f, 60.204f, 28.572f, 60.226f, 28.453f, 60.247f
6320 path.cubicTo(SkBits2Float(0x41e2c28f), SkBits2Float(0x42711377), SkBits2Float(0x41e1a1ca), SkBits2Float(0x42714ac3), SkBits2Float(0x41e03f7c), SkBits2Float(0x4271343c));  // 28.345f, 60.269f, 28.204f, 60.323f, 28.031f, 60.301f
6321 path.cubicTo(SkBits2Float(0x41de2d0d), SkBits2Float(0x42711377), SkBits2Float(0x41e0c49b), SkBits2Float(0x426e9caf), SkBits2Float(0x41e149b9), SkBits2Float(0x426e23da));  // 27.772f, 60.269f, 28.096f, 59.653f, 28.161f, 59.535f
6322 path.cubicTo(SkBits2Float(0x41e23d6f), SkBits2Float(0x426d2f1e), SkBits2Float(0x41e38936), SkBits2Float(0x426c52f5), SkBits2Float(0x41e4eb84), SkBits2Float(0x426b8109));  // 28.28f, 59.296f, 28.442f, 59.081f, 28.615f, 58.876f
6323 path.cubicTo(SkBits2Float(0x41e55a1c), SkBits2Float(0x426b49bd), SkBits2Float(0x41e5dd2e), SkBits2Float(0x426b1caf), SkBits2Float(0x41e6624d), SkBits2Float(0x426ae563));  // 28.669f, 58.822f, 28.733f, 58.778f, 28.798f, 58.724f
6324 path.cubicTo(SkBits2Float(0x41e78312), SkBits2Float(0x426a77d2), SkBits2Float(0x41e88b43), SkBits2Float(0x4269fcf0), SkBits2Float(0x41e99580), SkBits2Float(0x42698f5f));  // 28.939f, 58.617f, 29.068f, 58.497f, 29.198f, 58.39f
6325 path.cubicTo(SkBits2Float(0x41ea3126), SkBits2Float(0x42695813), SkBits2Float(0x41edd0e4), SkBits2Float(0x4267a7f2), SkBits2Float(0x41eeae13), SkBits2Float(0x42684292));  // 29.274f, 58.336f, 29.727f, 57.914f, 29.835f, 58.065f
6326 path.cubicTo(SkBits2Float(0x41eeae13), SkBits2Float(0x42684292), SkBits2Float(0x41eec49a), SkBits2Float(0x42684edc), SkBits2Float(0x41eec49a), SkBits2Float(0x42685919));  // 29.835f, 58.065f, 29.846f, 58.077f, 29.846f, 58.087f
6327 path.cubicTo(SkBits2Float(0x41ef0623), SkBits2Float(0x4268a6ec), SkBits2Float(0x41eedb21), SkBits2Float(0x426bb854), SkBits2Float(0x41eeae13), SkBits2Float(0x426befa0));  // 29.878f, 58.163f, 29.857f, 58.93f, 29.835f, 58.984f
6328 path.moveTo(SkBits2Float(0x41eaf7cd), SkBits2Float(0x4258947d));  // 29.371f, 54.145f
6329 path.cubicTo(SkBits2Float(0x41ebd4fc), SkBits2Float(0x425873b8), SkBits2Float(0x41ed353e), SkBits2Float(0x42589fc1), SkBits2Float(0x41edba5c), SkBits2Float(0x4258ab04));  // 29.479f, 54.113f, 29.651f, 54.156f, 29.716f, 54.167f
6330 path.cubicTo(SkBits2Float(0x41ede76a), SkBits2Float(0x4259c9bc), SkBits2Float(0x41ee3f7b), SkBits2Float(0x425b6e9a), SkBits2Float(0x41ee126c), SkBits2Float(0x425c8314));  // 29.738f, 54.447f, 29.781f, 54.858f, 29.759f, 55.128f
6331 path.cubicTo(SkBits2Float(0x41ede76a), SkBits2Float(0x425d343b), SkBits2Float(0x41ee5602), SkBits2Float(0x425dda1e), SkBits2Float(0x41edd0e3), SkBits2Float(0x425e74be));  // 29.738f, 55.301f, 29.792f, 55.463f, 29.727f, 55.614f
6332 path.cubicTo(SkBits2Float(0x41ed624b), SkBits2Float(0x425f1aa1), SkBits2Float(0x41ec6e95), SkBits2Float(0x425f947c), SkBits2Float(0x41ebd4fc), SkBits2Float(0x426023d9));  // 29.673f, 55.776f, 29.554f, 55.895f, 29.479f, 56.035f
6333 path.cubicTo(SkBits2Float(0x41eb22cf), SkBits2Float(0x4260c9bc), SkBits2Float(0x41ea5c27), SkBits2Float(0x4261645c), SkBits2Float(0x41e9957f), SkBits2Float(0x42621583));  // 29.392f, 56.197f, 29.295f, 56.348f, 29.198f, 56.521f
6334 path.cubicTo(SkBits2Float(0x41e8e55e), SkBits2Float(0x4262c6aa), SkBits2Float(0x41e849b8), SkBits2Float(0x42638314), SkBits2Float(0x41e78310), SkBits2Float(0x426427f2));  // 29.112f, 56.694f, 29.036f, 56.878f, 28.939f, 57.039f
6335 path.cubicTo(SkBits2Float(0x41e72b00), SkBits2Float(0x42646b88), SkBits2Float(0x41e6e76a), SkBits2Float(0x4264b854), SkBits2Float(0x41e68f5a), SkBits2Float(0x4264efa0));  // 28.896f, 57.105f, 28.863f, 57.18f, 28.82f, 57.234f
6336 path.cubicTo(SkBits2Float(0x41e6624c), SkBits2Float(0x42651ba8), SkBits2Float(0x41e60a3b), SkBits2Float(0x4265322f), SkBits2Float(0x41e5dd2d), SkBits2Float(0x426552f4));  // 28.798f, 57.277f, 28.755f, 57.299f, 28.733f, 57.331f
6337 path.cubicTo(SkBits2Float(0x41e570a2), SkBits2Float(0x4264ad11), SkBits2Float(0x41e620c3), SkBits2Float(0x4263c49e), SkBits2Float(0x41e6624c), SkBits2Float(0x426329fe));  // 28.68f, 57.169f, 28.766f, 56.942f, 28.798f, 56.791f
6338 path.cubicTo(SkBits2Float(0x41e6a5e2), SkBits2Float(0x4262418b), SkBits2Float(0x41e6e76b), SkBits2Float(0x42617ae3), SkBits2Float(0x41e72b00), SkBits2Float(0x42609271));  // 28.831f, 56.564f, 28.863f, 56.37f, 28.896f, 56.143f
6339 path.cubicTo(SkBits2Float(0x41e75602), SkBits2Float(0x42604fe2), SkBits2Float(0x41e7978b), SkBits2Float(0x425fe250), SkBits2Float(0x41e7c49a), SkBits2Float(0x425f9fc1));  // 28.917f, 56.078f, 28.949f, 55.971f, 28.971f, 55.906f
6340 path.cubicTo(SkBits2Float(0x41e7db21), SkBits2Float(0x425f25e6), SkBits2Float(0x41e7db21), SkBits2Float(0x425ec18c), SkBits2Float(0x41e80623), SkBits2Float(0x425e53fa));  // 28.982f, 55.787f, 28.982f, 55.689f, 29.003f, 55.582f
6341 path.lineTo(SkBits2Float(0x41e849b9), SkBits2Float(0x425e26ec));  // 29.036f, 55.538f
6342 path.cubicTo(SkBits2Float(0x41e874bb), SkBits2Float(0x425da2d3), SkBits2Float(0x41e8b851), SkBits2Float(0x425d28f8), SkBits2Float(0x41e8e55f), SkBits2Float(0x425caf1d));  // 29.057f, 55.409f, 29.09f, 55.29f, 29.112f, 55.171f
6343 path.cubicTo(SkBits2Float(0x41e93b63), SkBits2Float(0x425b8f5f), SkBits2Float(0x41e97ef9), SkBits2Float(0x425a7ae4), SkBits2Float(0x41ea0417), SkBits2Float(0x42596669));  // 29.154f, 54.89f, 29.187f, 54.62f, 29.252f, 54.35f
6344 path.cubicTo(SkBits2Float(0x41ea3125), SkBits2Float(0x4259199c), SkBits2Float(0x41ea5c27), SkBits2Float(0x4258ab05), SkBits2Float(0x41eaf7cd), SkBits2Float(0x4258947d));  // 29.274f, 54.275f, 29.295f, 54.167f, 29.371f, 54.145f
6345 path.moveTo(SkBits2Float(0x41e96871), SkBits2Float(0x4256a2d3));  // 29.176f, 53.659f
6346 path.cubicTo(SkBits2Float(0x41e953f6), SkBits2Float(0x4256e562), SkBits2Float(0x41e96871), SkBits2Float(0x425727f2), SkBits2Float(0x41e93b63), SkBits2Float(0x42575f3d));  // 29.166f, 53.724f, 29.176f, 53.789f, 29.154f, 53.843f
6347 path.cubicTo(SkBits2Float(0x41e8fbe6), SkBits2Float(0x42578002), SkBits2Float(0x41e88b42), SkBits2Float(0x42578002), SkBits2Float(0x41e81cab), SkBits2Float(0x42578002));  // 29.123f, 53.875f, 29.068f, 53.875f, 29.014f, 53.875f
6348 path.cubicTo(SkBits2Float(0x41e7db22), SkBits2Float(0x42578002), SkBits2Float(0x41e78311), SkBits2Float(0x42576a81), SkBits2Float(0x41e75603), SkBits2Float(0x42575f3d));  // 28.982f, 53.875f, 28.939f, 53.854f, 28.917f, 53.843f
6349 path.cubicTo(SkBits2Float(0x41e72b01), SkBits2Float(0x4257322f), SkBits2Float(0x41e72b01), SkBits2Float(0x4257322f), SkBits2Float(0x41e72b01), SkBits2Float(0x4256fbe9));  // 28.896f, 53.799f, 28.896f, 53.799f, 28.896f, 53.746f
6350 path.cubicTo(SkBits2Float(0x41e72b01), SkBits2Float(0x4256b95a), SkBits2Float(0x41e78311), SkBits2Float(0x42564ac2), SkBits2Float(0x41e7978c), SkBits2Float(0x42561376));  // 28.896f, 53.681f, 28.939f, 53.573f, 28.949f, 53.519f
6351 path.cubicTo(SkBits2Float(0x41e7db22), SkBits2Float(0x4255570c), SkBits2Float(0x41e80624), SkBits2Float(0x4254b128), SkBits2Float(0x41e86040), SkBits2Float(0x42540b45));  // 28.982f, 53.335f, 29.003f, 53.173f, 29.047f, 53.011f
6352 path.cubicTo(SkBits2Float(0x41e874bb), SkBits2Float(0x4253cac2), SkBits2Float(0x41e86040), SkBits2Float(0x4253916a), SkBits2Float(0x41e8b850), SkBits2Float(0x42536562));  // 29.057f, 52.948f, 29.047f, 52.892f, 29.09f, 52.849f
6353 path.cubicTo(SkBits2Float(0x41e8ced7), SkBits2Float(0x42534fe1), SkBits2Float(0x41e953f6), SkBits2Float(0x42532e16), SkBits2Float(0x41e97ef8), SkBits2Float(0x42532e16));  // 29.101f, 52.828f, 29.166f, 52.795f, 29.187f, 52.795f
6354 path.cubicTo(SkBits2Float(0x41ea0417), SkBits2Float(0x425323d9), SkBits2Float(0x41ea3125), SkBits2Float(0x42534fe1), SkBits2Float(0x41ea72ae), SkBits2Float(0x42535a1e));  // 29.252f, 52.785f, 29.274f, 52.828f, 29.306f, 52.838f
6355 path.cubicTo(SkBits2Float(0x41ea72ae), SkBits2Float(0x42548520), SkBits2Float(0x41e9d708), SkBits2Float(0x4255a4df), SkBits2Float(0x41e96871), SkBits2Float(0x4256a2d2));  // 29.306f, 53.13f, 29.23f, 53.411f, 29.176f, 53.659f
6356 path.moveTo(SkBits2Float(0x41e874bb), SkBits2Float(0x4258b647));  // 29.057f, 54.178f
6357 path.cubicTo(SkBits2Float(0x41e86040), SkBits2Float(0x42595c2a), SkBits2Float(0x41e849b9), SkBits2Float(0x4259bf7e), SkBits2Float(0x41e80623), SkBits2Float(0x425a4eda));  // 29.047f, 54.34f, 29.036f, 54.437f, 29.003f, 54.577f
6358 path.cubicTo(SkBits2Float(0x41e7db21), SkBits2Float(0x425ad3f9), SkBits2Float(0x41e76c89), SkBits2Float(0x425b8520), SkBits2Float(0x41e72b00), SkBits2Float(0x425c147c));  // 28.982f, 54.707f, 28.928f, 54.88f, 28.896f, 55.02f
6359 path.cubicTo(SkBits2Float(0x41e71479), SkBits2Float(0x425c570b), SkBits2Float(0x41e72b00), SkBits2Float(0x425c77d0), SkBits2Float(0x41e71479), SkBits2Float(0x425cba5f));  // 28.885f, 55.085f, 28.896f, 55.117f, 28.885f, 55.182f
6360 path.cubicTo(SkBits2Float(0x41e68f5a), SkBits2Float(0x425dfae2), SkBits2Float(0x41e5dd2d), SkBits2Float(0x425f676d), SkBits2Float(0x41e570a2), SkBits2Float(0x4260a8f7));  // 28.82f, 55.495f, 28.733f, 55.851f, 28.68f, 56.165f
6361 path.cubicTo(SkBits2Float(0x41e52d0c), SkBits2Float(0x42610c4b), SkBits2Float(0x41e55a1b), SkBits2Float(0x42614eda), SkBits2Float(0x41e52d0c), SkBits2Float(0x42619ba7));  // 28.647f, 56.262f, 28.669f, 56.327f, 28.647f, 56.402f
6362 path.cubicTo(SkBits2Float(0x41e51685), SkBits2Float(0x4261f4be), SkBits2Float(0x41e4be74), SkBits2Float(0x42624cce), SkBits2Float(0x41e4a7ed), SkBits2Float(0x42628f5d));  // 28.636f, 56.489f, 28.593f, 56.575f, 28.582f, 56.64f
6363 path.cubicTo(SkBits2Float(0x41e46664), SkBits2Float(0x42634bc7), SkBits2Float(0x41e43b62), SkBits2Float(0x4263e667), SkBits2Float(0x41e3f7cc), SkBits2Float(0x4264a1cc));  // 28.55f, 56.824f, 28.529f, 56.975f, 28.496f, 57.158f
6364 path.cubicTo(SkBits2Float(0x41e39fbc), SkBits2Float(0x42657efb), SkBits2Float(0x41e31a9d), SkBits2Float(0x42669376), SkBits2Float(0x41e2ac05), SkBits2Float(0x426770a5));  // 28.453f, 57.374f, 28.388f, 57.644f, 28.334f, 57.86f
6365 path.cubicTo(SkBits2Float(0x41e27ef7), SkBits2Float(0x426821cc), SkBits2Float(0x41e253f5), SkBits2Float(0x4268bc6c), SkBits2Float(0x41e2105f), SkBits2Float(0x42695812));  // 28.312f, 58.033f, 28.291f, 58.184f, 28.258f, 58.336f
6366 path.cubicTo(SkBits2Float(0x41e1ced6), SkBits2Float(0x4269f2b2), SkBits2Float(0x41e1082e), SkBits2Float(0x426aa3d9), SkBits2Float(0x41e09996), SkBits2Float(0x426b3335));  // 28.226f, 58.487f, 28.129f, 58.66f, 28.075f, 58.8f
6367 path.lineTo(SkBits2Float(0x41e05600), SkBits2Float(0x426b3e79));  // 28.042f, 58.811f
6368 path.cubicTo(SkBits2Float(0x41dfe768), SkBits2Float(0x426bb854), SkBits2Float(0x41dfba5a), SkBits2Float(0x426c3129), SkBits2Float(0x41df4dcf), SkBits2Float(0x426ccccf));  // 27.988f, 58.93f, 27.966f, 59.048f, 27.913f, 59.2f
6369 path.cubicTo(SkBits2Float(0x41def5bf), SkBits2Float(0x426d50e8), SkBits2Float(0x41de5a19), SkBits2Float(0x426de14a), SkBits2Float(0x41ddeb81), SkBits2Float(0x426e70a6));  // 27.87f, 59.329f, 27.794f, 59.47f, 27.74f, 59.61f
6370 path.cubicTo(SkBits2Float(0x41dd3b60), SkBits2Float(0x426f79dd), SkBits2Float(0x41dd4fdb), SkBits2Float(0x426e1896), SkBits2Float(0x41dd6662), SkBits2Float(0x426db43c));  // 27.654f, 59.869f, 27.664f, 59.524f, 27.675f, 59.426f
6371 path.cubicTo(SkBits2Float(0x41de9ba1), SkBits2Float(0x426aa3da), SkBits2Float(0x41e01476), SkBits2Float(0x42679271), SkBits2Float(0x41e1332f), SkBits2Float(0x42648109));  // 27.826f, 58.66f, 28.01f, 57.893f, 28.15f, 57.126f
6372 path.cubicTo(SkBits2Float(0x41e149b6), SkBits2Float(0x42645f3e), SkBits2Float(0x41e1a1c7), SkBits2Float(0x4264072e), SkBits2Float(0x41e1a1c7), SkBits2Float(0x4263f1ad));  // 28.161f, 57.093f, 28.204f, 57.007f, 28.204f, 56.986f
6373 path.cubicTo(SkBits2Float(0x41e253f4), SkBits2Float(0x42626e9b), SkBits2Float(0x41e2c28c), SkBits2Float(0x42610109), SkBits2Float(0x41e3459e), SkBits2Float(0x425f72b3));  // 28.291f, 56.608f, 28.345f, 56.251f, 28.409f, 55.862f
6374 path.cubicTo(SkBits2Float(0x41e372ac), SkBits2Float(0x425f51ee), SkBits2Float(0x41e3b642), SkBits2Float(0x425ef9de), SkBits2Float(0x41e3b642), SkBits2Float(0x425ed813));  // 28.431f, 55.83f, 28.464f, 55.744f, 28.464f, 55.711f
6375 path.cubicTo(SkBits2Float(0x41e46663), SkBits2Float(0x425d76cb), SkBits2Float(0x41e4be73), SkBits2Float(0x425c3542), SkBits2Float(0x41e570a0), SkBits2Float(0x425ad3fa));  // 28.55f, 55.366f, 28.593f, 55.052f, 28.68f, 54.707f
6376 path.cubicTo(SkBits2Float(0x41e570a0), SkBits2Float(0x425a916b), SkBits2Float(0x41e5dd2b), SkBits2Float(0x425a22d3), SkBits2Float(0x41e5f3b2), SkBits2Float(0x4259e044));  // 28.68f, 54.642f, 28.733f, 54.534f, 28.744f, 54.469f
6377 path.cubicTo(SkBits2Float(0x41e620c0), SkBits2Float(0x42595c2b), SkBits2Float(0x41e60a39), SkBits2Float(0x4258ab05), SkBits2Float(0x41e72afe), SkBits2Float(0x4258947d));  // 28.766f, 54.34f, 28.755f, 54.167f, 28.896f, 54.145f
6378 path.cubicTo(SkBits2Float(0x41e79789), SkBits2Float(0x4258947d), SkBits2Float(0x41e80621), SkBits2Float(0x4258ab04), SkBits2Float(0x41e874b8), SkBits2Float(0x4258b648));  // 28.949f, 54.145f, 29.003f, 54.167f, 29.057f, 54.178f
6379 path.moveTo(SkBits2Float(0x41e5b229), SkBits2Float(0x4256a2d3));  // 28.712f, 53.659f
6380 path.cubicTo(SkBits2Float(0x41e5851b), SkBits2Float(0x4256e562), SkBits2Float(0x41e59ba2), SkBits2Float(0x425727f2), SkBits2Float(0x41e570a0), SkBits2Float(0x42575f3d));  // 28.69f, 53.724f, 28.701f, 53.789f, 28.68f, 53.843f
6381 path.cubicTo(SkBits2Float(0x41e52d0a), SkBits2Float(0x42578002), SkBits2Float(0x41e4a7ec), SkBits2Float(0x42579689), SkBits2Float(0x41e43b61), SkBits2Float(0x42578002));  // 28.647f, 53.875f, 28.582f, 53.897f, 28.529f, 53.875f
6382 path.cubicTo(SkBits2Float(0x41e3f7cb), SkBits2Float(0x42578002), SkBits2Float(0x41e39fbb), SkBits2Float(0x425748b6), SkBits2Float(0x41e3459e), SkBits2Float(0x42573e79));  // 28.496f, 53.875f, 28.453f, 53.821f, 28.409f, 53.811f
6383 path.cubicTo(SkBits2Float(0x41e39fbb), SkBits2Float(0x42566044), SkBits2Float(0x41e40e52), SkBits2Float(0x42558e58), SkBits2Float(0x41e47add), SkBits2Float(0x4254c7b0));  // 28.453f, 53.594f, 28.507f, 53.389f, 28.56f, 53.195f
6384 path.cubicTo(SkBits2Float(0x41e49370), SkBits2Float(0x425479dd), SkBits2Float(0x41e49370), SkBits2Float(0x42541689), SkBits2Float(0x41e4eb81), SkBits2Float(0x4253df3d));  // 28.572f, 53.119f, 28.572f, 53.022f, 28.615f, 52.968f
6385 path.cubicTo(SkBits2Float(0x41e4fffc), SkBits2Float(0x4253c9bc), SkBits2Float(0x41e5b229), SkBits2Float(0x4253916a), SkBits2Float(0x41e60a39), SkBits2Float(0x4253916a));  // 28.625f, 52.947f, 28.712f, 52.892f, 28.755f, 52.892f
6386 path.cubicTo(SkBits2Float(0x41e68f58), SkBits2Float(0x4253872d), SkBits2Float(0x41e68f58), SkBits2Float(0x4253a7f1), SkBits2Float(0x41e6e768), SkBits2Float(0x4253be78));  // 28.82f, 52.882f, 28.82f, 52.914f, 28.863f, 52.936f
6387 path.cubicTo(SkBits2Float(0x41e68f58), SkBits2Float(0x4254c7af), SkBits2Float(0x41e60a39), SkBits2Float(0x4255af1c), SkBits2Float(0x41e5b229), SkBits2Float(0x4256a2d2));  // 28.82f, 53.195f, 28.755f, 53.421f, 28.712f, 53.659f
6388 path.moveTo(SkBits2Float(0x41e372ac), SkBits2Float(0x42589fc0));  // 28.431f, 54.156f
6389 path.cubicTo(SkBits2Float(0x41e55a19), SkBits2Float(0x42586874), SkBits2Float(0x41e40e52), SkBits2Float(0x425a178f), SkBits2Float(0x41e3cabc), SkBits2Float(0x425a7ae3));  // 28.669f, 54.102f, 28.507f, 54.523f, 28.474f, 54.62f
6390 path.cubicTo(SkBits2Float(0x41e1fbe3), SkBits2Float(0x425f3b66), SkBits2Float(0x41dfd0e1), SkBits2Float(0x4263f1ac), SkBits2Float(0x41ddeb81), SkBits2Float(0x4268c7b0));  // 28.248f, 55.808f, 27.977f, 56.986f, 27.74f, 58.195f
6391 path.cubicTo(SkBits2Float(0x41ddd4fa), SkBits2Float(0x42690a3f), SkBits2Float(0x41dd7ce9), SkBits2Float(0x42696d93), SkBits2Float(0x41dd6662), SkBits2Float(0x4269999c));  // 27.729f, 58.26f, 27.686f, 58.357f, 27.675f, 58.4f
6392 path.cubicTo(SkBits2Float(0x41dd3b60), SkBits2Float(0x426a29fe), SkBits2Float(0x41dd3b60), SkBits2Float(0x426a8d52), SkBits2Float(0x41dcf7ca), SkBits2Float(0x426b1cae));  // 27.654f, 58.541f, 27.654f, 58.638f, 27.621f, 58.778f
6393 path.cubicTo(SkBits2Float(0x41dcb641), SkBits2Float(0x426bf9dd), SkBits2Float(0x41dc0414), SkBits2Float(0x426cf8d7), SkBits2Float(0x41db957c), SkBits2Float(0x426dec8d));  // 27.589f, 58.994f, 27.502f, 59.243f, 27.448f, 59.481f
6394 path.cubicTo(SkBits2Float(0x41db53f3), SkBits2Float(0x426e916a), SkBits2Float(0x41db3d6c), SkBits2Float(0x426eea81), SkBits2Float(0x41daa3d2), SkBits2Float(0x426f5918));  // 27.416f, 59.642f, 27.405f, 59.729f, 27.33f, 59.837f
6395 path.cubicTo(SkBits2Float(0x41da76c4), SkBits2Float(0x426f4dd4), SkBits2Float(0x41da49b5), SkBits2Float(0x426f4291), SkBits2Float(0x41da082c), SkBits2Float(0x426f21cc));  // 27.308f, 59.826f, 27.286f, 59.815f, 27.254f, 59.783f
6396 path.cubicTo(SkBits2Float(0x41d9db1e), SkBits2Float(0x426f0b45), SkBits2Float(0x41d9f1a5), SkBits2Float(0x426f0b45), SkBits2Float(0x41d9c6a3), SkBits2Float(0x426eea80));  // 27.232f, 59.761f, 27.243f, 59.761f, 27.222f, 59.729f
6397 path.lineTo(SkBits2Float(0x41d99995), SkBits2Float(0x426edf3c));  // 27.2f, 59.718f
6398 path.cubicTo(SkBits2Float(0x41d91476), SkBits2Float(0x426ea7f0), SkBits2Float(0x41d8e768), SkBits2Float(0x426e6561), SkBits2Float(0x41d8a5df), SkBits2Float(0x426e020d));  // 27.135f, 59.664f, 27.113f, 59.599f, 27.081f, 59.502f
6399 path.cubicTo(SkBits2Float(0x41d8a5df), SkBits2Float(0x426e020d), SkBits2Float(0x41d86456), SkBits2Float(0x426dd605), SkBits2Float(0x41d8a5df), SkBits2Float(0x426dd605));  // 27.081f, 59.502f, 27.049f, 59.459f, 27.081f, 59.459f
6400 path.cubicTo(SkBits2Float(0x41d8e768), SkBits2Float(0x426d5c2a), SkBits2Float(0x41d8fdef), SkBits2Float(0x426cf8d6), SkBits2Float(0x41d92afe), SkBits2Float(0x426c7efb));  // 27.113f, 59.34f, 27.124f, 59.243f, 27.146f, 59.124f
6401 path.cubicTo(SkBits2Float(0x41d9830e), SkBits2Float(0x426bb853), SkBits2Float(0x41da1eb4), SkBits2Float(0x426ae561), SkBits2Float(0x41da8d4c), SkBits2Float(0x426a29fd));  // 27.189f, 58.93f, 27.265f, 58.724f, 27.319f, 58.541f
6402 path.cubicTo(SkBits2Float(0x41dccabd), SkBits2Float(0x4265d811), SkBits2Float(0x41e02afe), SkBits2Float(0x42617ae2), SkBits2Float(0x41e1332f), SkBits2Float(0x425cfcef));  // 27.599f, 57.461f, 28.021f, 56.37f, 28.15f, 55.247f
6403 path.cubicTo(SkBits2Float(0x41e149b6), SkBits2Float(0x425c4085), SkBits2Float(0x41e1a1c7), SkBits2Float(0x425b8f5e), SkBits2Float(0x41e1fbe3), SkBits2Float(0x425adf3d));  // 28.161f, 55.063f, 28.204f, 54.89f, 28.248f, 54.718f
6404 path.cubicTo(SkBits2Float(0x41e226e5), SkBits2Float(0x425a4edb), SkBits2Float(0x41e226e5), SkBits2Float(0x42598833), SkBits2Float(0x41e2ac04), SkBits2Float(0x4258f7d0));  // 28.269f, 54.577f, 28.269f, 54.383f, 28.334f, 54.242f
6405 path.cubicTo(SkBits2Float(0x41e2c28b), SkBits2Float(0x4258ec8c), SkBits2Float(0x41e372ac), SkBits2Float(0x42589fc0), SkBits2Float(0x41e372ac), SkBits2Float(0x42589fc0));  // 28.345f, 54.231f, 28.431f, 54.156f, 28.431f, 54.156f
6406 path.moveTo(SkBits2Float(0x41d9830e), SkBits2Float(0x427128f7));  // 27.189f, 60.29f
6407 path.cubicTo(SkBits2Float(0x41d95600), SkBits2Float(0x42714ac2), SkBits2Float(0x41d92afe), SkBits2Float(0x427176ca), SkBits2Float(0x41d8e768), SkBits2Float(0x427176ca));  // 27.167f, 60.323f, 27.146f, 60.366f, 27.113f, 60.366f
6408 path.cubicTo(SkBits2Float(0x41d86456), SkBits2Float(0x42718d51), SkBits2Float(0x41d67ce9), SkBits2Float(0x4271820e), SkBits2Float(0x41d60e51), SkBits2Float(0x42716b86));  // 27.049f, 60.388f, 26.811f, 60.377f, 26.757f, 60.355f
6409 path.cubicTo(SkBits2Float(0x41d5f7ca), SkBits2Float(0x42716b86), SkBits2Float(0x41d5ccc8), SkBits2Float(0x42714ac1), SkBits2Float(0x41d5b641), SkBits2Float(0x42713f7e));  // 26.746f, 60.355f, 26.725f, 60.323f, 26.714f, 60.312f
6410 path.cubicTo(SkBits2Float(0x41d5b641), SkBits2Float(0x42708e57), SkBits2Float(0x41d5f7ca), SkBits2Float(0x426ffefb), SkBits2Float(0x41d69370), SkBits2Float(0x426f8f5d));  // 26.714f, 60.139f, 26.746f, 59.999f, 26.822f, 59.89f
6411 path.cubicTo(SkBits2Float(0x41d6eb80), SkBits2Float(0x426f9ba7), SkBits2Float(0x41d7188f), SkBits2Float(0x426f8f5d), SkBits2Float(0x41d7709f), SkBits2Float(0x426f9ba7));  // 26.865f, 59.902f, 26.887f, 59.89f, 26.93f, 59.902f
6412 path.cubicTo(SkBits2Float(0x41d7b228), SkBits2Float(0x426fb128), SkBits2Float(0x41d99995), SkBits2Float(0x42706d93), SkBits2Float(0x41d9c6a3), SkBits2Float(0x42708e57));  // 26.962f, 59.923f, 27.2f, 60.107f, 27.222f, 60.139f
6413 path.cubicTo(SkBits2Float(0x41d9db1e), SkBits2Float(0x4270d0e6), SkBits2Float(0x41d99995), SkBits2Float(0x42710832), SkBits2Float(0x41d9830d), SkBits2Float(0x427128f7));  // 27.232f, 60.204f, 27.2f, 60.258f, 27.189f, 60.29f
6414 path.moveTo(SkBits2Float(0x41e1603c), SkBits2Float(0x4255f1ab));  // 28.172f, 53.486f
6415 path.cubicTo(SkBits2Float(0x41e149b5), SkBits2Float(0x42563f7e), SkBits2Float(0x41e1603c), SkBits2Float(0x425676ca), SkBits2Float(0x41e1332e), SkBits2Float(0x4256c49d));  // 28.161f, 53.562f, 28.172f, 53.616f, 28.15f, 53.692f
6416 path.cubicTo(SkBits2Float(0x41e11eb3), SkBits2Float(0x4256f0a5), SkBits2Float(0x41e0db1e), SkBits2Float(0x425727f1), SkBits2Float(0x41e0b01c), SkBits2Float(0x425748b6));  // 28.14f, 53.735f, 28.107f, 53.789f, 28.086f, 53.821f
6417 path.lineTo(SkBits2Float(0x41e055ff), SkBits2Float(0x425748b6));  // 28.042f, 53.821f
6418 path.cubicTo(SkBits2Float(0x41e055ff), SkBits2Float(0x425748b6), SkBits2Float(0x41df4dce), SkBits2Float(0x4256e562), SkBits2Float(0x41df3747), SkBits2Float(0x4256da1e));  // 28.042f, 53.821f, 27.913f, 53.724f, 27.902f, 53.713f
6419 path.cubicTo(SkBits2Float(0x41deb228), SkBits2Float(0x4256820e), SkBits2Float(0x41de4391), SkBits2Float(0x42561376), SkBits2Float(0x41ddbe72), SkBits2Float(0x4255ba60));  // 27.837f, 53.627f, 27.783f, 53.519f, 27.718f, 53.432f
6420 path.lineTo(SkBits2Float(0x41dd7ce9), SkBits2Float(0x4255af1c));  // 27.686f, 53.421f
6421 path.cubicTo(SkBits2Float(0x41dd7ce9), SkBits2Float(0x4255a4df), SkBits2Float(0x41dda7eb), SkBits2Float(0x425578d6), SkBits2Float(0x41dd7ce9), SkBits2Float(0x42556d93));  // 27.686f, 53.411f, 27.707f, 53.368f, 27.686f, 53.357f
6422 path.cubicTo(SkBits2Float(0x41de9ba1), SkBits2Float(0x4255147c), SkBits2Float(0x41df8f58), SkBits2Float(0x4254c7b0), SkBits2Float(0x41e0b01c), SkBits2Float(0x42549064));  // 27.826f, 53.27f, 27.945f, 53.195f, 28.086f, 53.141f
6423 path.cubicTo(SkBits2Float(0x41e0c497), SkBits2Float(0x42548520), SkBits2Float(0x41e11eb4), SkBits2Float(0x4254645c), SkBits2Float(0x41e1332e), SkBits2Float(0x4254645c));  // 28.096f, 53.13f, 28.14f, 53.098f, 28.15f, 53.098f
6424 path.cubicTo(SkBits2Float(0x41e18b3e), SkBits2Float(0x42545918), SkBits2Float(0x41e1ced4), SkBits2Float(0x425479dd), SkBits2Float(0x41e1fbe2), SkBits2Float(0x425479dd));  // 28.193f, 53.087f, 28.226f, 53.119f, 28.248f, 53.119f
6425 path.cubicTo(SkBits2Float(0x41e1fbe2), SkBits2Float(0x4255147d), SkBits2Float(0x41e1a1c5), SkBits2Float(0x4255841a), SkBits2Float(0x41e1603c), SkBits2Float(0x4255f1ac));  // 28.248f, 53.27f, 28.204f, 53.379f, 28.172f, 53.486f
6426 path.moveTo(SkBits2Float(0x41df6248), SkBits2Float(0x425b4ccf));  // 27.923f, 54.825f
6427 path.cubicTo(SkBits2Float(0x41dfe767), SkBits2Float(0x425b9aa2), SkBits2Float(0x41df4dcd), SkBits2Float(0x425c6c8d), SkBits2Float(0x41df20bf), SkBits2Float(0x425cd0e8));  // 27.988f, 54.901f, 27.913f, 55.106f, 27.891f, 55.204f
6428 path.cubicTo(SkBits2Float(0x41ddeb80), SkBits2Float(0x425f893a), SkBits2Float(0x41dc8932), SkBits2Float(0x4262374e), SkBits2Float(0x41db105d), SkBits2Float(0x4264e45d));  // 27.74f, 55.884f, 27.567f, 56.554f, 27.383f, 57.223f
6429 path.cubicTo(SkBits2Float(0x41daced4), SkBits2Float(0x42657efd), SkBits2Float(0x41d78726), SkBits2Float(0x426c52f5), SkBits2Float(0x41d6c07e), SkBits2Float(0x426c3c6d));  // 27.351f, 57.374f, 26.941f, 59.081f, 26.844f, 59.059f
6430 path.cubicTo(SkBits2Float(0x41d58932), SkBits2Float(0x426c3129), SkBits2Float(0x41d50620), SkBits2Float(0x426b1caf), SkBits2Float(0x41d48101), SkBits2Float(0x426aa3da));  // 26.692f, 59.048f, 26.628f, 58.778f, 26.563f, 58.66f
6431 path.cubicTo(SkBits2Float(0x41d3d0e0), SkBits2Float(0x426a0834), SkBits2Float(0x41d34bc2), SkBits2Float(0x42696d94), SkBits2Float(0x41d2db1e), SkBits2Float(0x4268bc6d));  // 26.477f, 58.508f, 26.412f, 58.357f, 26.357f, 58.184f
6432 path.cubicTo(SkBits2Float(0x41d21476), SkBits2Float(0x42674fe2), SkBits2Float(0x41d19164), SkBits2Float(0x4265c18c), SkBits2Float(0x41d19164), SkBits2Float(0x426449bd));  // 26.26f, 57.828f, 26.196f, 57.439f, 26.196f, 57.072f
6433 path.cubicTo(SkBits2Float(0x41d1a5df), SkBits2Float(0x4261bd73), SkBits2Float(0x41d3d0e1), SkBits2Float(0x425f51ee), SkBits2Float(0x41d79dae), SkBits2Float(0x425d820f));  // 26.206f, 56.435f, 26.477f, 55.83f, 26.952f, 55.377f
6434 path.cubicTo(SkBits2Float(0x41d8a5df), SkBits2Float(0x425cfcf0), SkBits2Float(0x41d9db1f), SkBits2Float(0x425c8e59), SkBits2Float(0x41db105e), SkBits2Float(0x425c3542));  // 27.081f, 55.247f, 27.232f, 55.139f, 27.383f, 55.052f
6435 path.cubicTo(SkBits2Float(0x41dbed8d), SkBits2Float(0x425bf4bf), SkBits2Float(0x41ddbe72), SkBits2Float(0x425b21cd), SkBits2Float(0x41dec8b0), SkBits2Float(0x425b21cd));  // 27.491f, 54.989f, 27.718f, 54.783f, 27.848f, 54.783f
6436 path.cubicTo(SkBits2Float(0x41df20c0), SkBits2Float(0x425b374e), SkBits2Float(0x41df4dcf), SkBits2Float(0x425b4292), SkBits2Float(0x41df624a), SkBits2Float(0x425b4ccf));  // 27.891f, 54.804f, 27.913f, 54.815f, 27.923f, 54.825f
6437 path.moveTo(SkBits2Float(0x41d453f4), SkBits2Float(0x426fbc6d));  // 26.541f, 59.934f
6438 path.cubicTo(SkBits2Float(0x41d48102), SkBits2Float(0x426f8521), SkBits2Float(0x41d51a9c), SkBits2Float(0x426ea7f2), SkBits2Float(0x41d4957d), SkBits2Float(0x426e872e));  // 26.563f, 59.88f, 26.638f, 59.664f, 26.573f, 59.632f
6439 path.cubicTo(SkBits2Float(0x41d453f4), SkBits2Float(0x426e70a7), SkBits2Float(0x41d428f2), SkBits2Float(0x426e872e), SkBits2Float(0x41d3fbe3), SkBits2Float(0x426e70a7));  // 26.541f, 59.61f, 26.52f, 59.632f, 26.498f, 59.61f
6440 path.cubicTo(SkBits2Float(0x41d3d0e1), SkBits2Float(0x426e916c), SkBits2Float(0x41d3b84d), SkBits2Float(0x426e872e), SkBits2Float(0x41d3a3d3), SkBits2Float(0x426e916c));  // 26.477f, 59.642f, 26.465f, 59.632f, 26.455f, 59.642f
6441 path.cubicTo(SkBits2Float(0x41d3603d), SkBits2Float(0x426f010a), SkBits2Float(0x41d3d0e1), SkBits2Float(0x426f9ba9), SkBits2Float(0x41d4126b), SkBits2Float(0x426fdd33));  // 26.422f, 59.751f, 26.477f, 59.902f, 26.509f, 59.966f
6442 path.lineTo(SkBits2Float(0x41d43d6d), SkBits2Float(0x426fdd33));  // 26.53f, 59.966f
6443 path.cubicTo(SkBits2Float(0x41d43d6d), SkBits2Float(0x426fd1ef), SkBits2Float(0x41d43d6d), SkBits2Float(0x426fbc6e), SkBits2Float(0x41d453f4), SkBits2Float(0x426fbc6e));  // 26.53f, 59.955f, 26.53f, 59.934f, 26.541f, 59.934f
6444 path.moveTo(SkBits2Float(0x42071ba4), SkBits2Float(0x42670210));  // 33.777f, 57.752f
6445 path.cubicTo(SkBits2Float(0x42075e33), SkBits2Float(0x42670d54), SkBits2Float(0x4207957f), SkBits2Float(0x42671897), SkBits2Float(0x4207cccb), SkBits2Float(0x42672f1e));  // 33.842f, 57.763f, 33.896f, 57.774f, 33.95f, 57.796f
6446 path.cubicTo(SkBits2Float(0x4208a9fa), SkBits2Float(0x4267872e), SkBits2Float(0x42097be6), SkBits2Float(0x42681791), SkBits2Float(0x420a3850), SkBits2Float(0x42688522));  // 34.166f, 57.882f, 34.371f, 58.023f, 34.555f, 58.13f
6447 path.cubicTo(SkBits2Float(0x420b0a3c), SkBits2Float(0x4268fefd), SkBits2Float(0x420d1167), SkBits2Float(0x4269e770), SkBits2Float(0x420d27ee), SkBits2Float(0x426ae564));  // 34.76f, 58.249f, 35.267f, 58.476f, 35.289f, 58.724f
6448 path.cubicTo(SkBits2Float(0x420d0729), SkBits2Float(0x426af0a8), SkBits2Float(0x420cdb21), SkBits2Float(0x426afbeb), SkBits2Float(0x420cb956), SkBits2Float(0x426b072f));  // 35.257f, 58.735f, 35.214f, 58.746f, 35.181f, 58.757f
6449 path.cubicTo(SkBits2Float(0x420b9998), SkBits2Float(0x426b27f4), SkBits2Float(0x420a6f9c), SkBits2Float(0x426b27f4), SkBits2Float(0x42095b21), SkBits2Float(0x426b3337));  // 34.9f, 58.789f, 34.609f, 58.789f, 34.339f, 58.8f
6450 path.cubicTo(SkBits2Float(0x42090d4e), SkBits2Float(0x426b3337), SkBits2Float(0x4207b644), SkBits2Float(0x426b49be), SkBits2Float(0x420773b4), SkBits2Float(0x426b3337));  // 34.263f, 58.8f, 33.928f, 58.822f, 33.863f, 58.8f
6451 path.cubicTo(SkBits2Float(0x4207322b), SkBits2Float(0x426b072f), SkBits2Float(0x4206ef9b), SkBits2Float(0x4269999d), SkBits2Float(0x4206ced7), SkBits2Float(0x426920c8));  // 33.799f, 58.757f, 33.734f, 58.4f, 33.702f, 58.282f
6452 path.cubicTo(SkBits2Float(0x42069685), SkBits2Float(0x4268645e), SkBits2Float(0x4205c49a), SkBits2Float(0x4266b543), SkBits2Float(0x42071ba4), SkBits2Float(0x42670210));  // 33.647f, 58.098f, 33.442f, 57.677f, 33.777f, 57.752f
6453 path.moveTo(SkBits2Float(0x41f026e6), SkBits2Float(0x423f0c4e));  // 30.019f, 47.762f
6454 path.cubicTo(SkBits2Float(0x41effbe4), SkBits2Float(0x42400004), SkBits2Float(0x41f0105f), SkBits2Float(0x4240e877), SkBits2Float(0x41f03b61), SkBits2Float(0x4241d0ea));  // 29.998f, 48, 30.008f, 48.227f, 30.029f, 48.454f
6455 path.lineTo(SkBits2Float(0x41f03b61), SkBits2Float(0x424228fa));  // 30.029f, 48.54f
6456 path.cubicTo(SkBits2Float(0x41f051e8), SkBits2Float(0x42423f81), SkBits2Float(0x41f0c080), SkBits2Float(0x424276cd), SkBits2Float(0x41f11890), SkBits2Float(0x424276cd));  // 30.04f, 48.562f, 30.094f, 48.616f, 30.137f, 48.616f
6457 path.cubicTo(SkBits2Float(0x41f11890), SkBits2Float(0x424276cd), SkBits2Float(0x41f18934), SkBits2Float(0x42426b89), SkBits2Float(0x41f12f17), SkBits2Float(0x42426b89));  // 30.137f, 48.616f, 30.192f, 48.605f, 30.148f, 48.605f
6458 path.cubicTo(SkBits2Float(0x41f1459e), SkBits2Float(0x42426045), SkBits2Float(0x41f18934), SkBits2Float(0x42426b89), SkBits2Float(0x41f18934), SkBits2Float(0x42426b89));  // 30.159f, 48.594f, 30.192f, 48.605f, 30.192f, 48.605f
6459 path.cubicTo(SkBits2Float(0x41f19daf), SkBits2Float(0x424249be), SkBits2Float(0x41f19daf), SkBits2Float(0x42423f81), SkBits2Float(0x41f1b436), SkBits2Float(0x42423f81));  // 30.202f, 48.572f, 30.202f, 48.562f, 30.213f, 48.562f
6460 path.cubicTo(SkBits2Float(0x41f18934), SkBits2Float(0x42414087), SkBits2Float(0x41f11890), SkBits2Float(0x424079df), SkBits2Float(0x41f0ac05), SkBits2Float(0x423f9cb0));  // 30.192f, 48.313f, 30.137f, 48.119f, 30.084f, 47.903f
6461 path.cubicTo(SkBits2Float(0x41f0957e), SkBits2Float(0x423f7ae5), SkBits2Float(0x41f0c080), SkBits2Float(0x423f5a21), SkBits2Float(0x41f0957e), SkBits2Float(0x423f395c));  // 30.073f, 47.87f, 30.094f, 47.838f, 30.073f, 47.806f
6462 path.lineTo(SkBits2Float(0x41f026e6), SkBits2Float(0x423f0c4e));  // 30.019f, 47.762f
6463 path.moveTo(SkBits2Float(0x41ed4dcf), SkBits2Float(0x423fd3fc));  // 29.663f, 47.957f
6464 path.cubicTo(SkBits2Float(0x41ecc8b0), SkBits2Float(0x42408523), SkBits2Float(0x41ec580c), SkBits2Float(0x42414bcb), SkBits2Float(0x41ec580c), SkBits2Float(0x42423f81));  // 29.598f, 48.13f, 29.543f, 48.324f, 29.543f, 48.562f
6465 path.cubicTo(SkBits2Float(0x41ec6e93), SkBits2Float(0x42423f81), SkBits2Float(0x41ec9ba2), SkBits2Float(0x42426046), SkBits2Float(0x41ecb229), SkBits2Float(0x42426b89));  // 29.554f, 48.562f, 29.576f, 48.594f, 29.587f, 48.605f
6466 path.cubicTo(SkBits2Float(0x41ecc8b0), SkBits2Float(0x42426b89), SkBits2Float(0x41ecdd2b), SkBits2Float(0x42426045), SkBits2Float(0x41ecf3b2), SkBits2Float(0x42426b89));  // 29.598f, 48.605f, 29.608f, 48.594f, 29.619f, 48.605f
6467 path.cubicTo(SkBits2Float(0x41ecf3b2), SkBits2Float(0x42426b89), SkBits2Float(0x41eda5df), SkBits2Float(0x42426045), SkBits2Float(0x41edba5a), SkBits2Float(0x42423f81));  // 29.619f, 48.605f, 29.706f, 48.594f, 29.716f, 48.562f
6468 path.cubicTo(SkBits2Float(0x41ee126a), SkBits2Float(0x4241e66a), SkBits2Float(0x41edd0e1), SkBits2Float(0x42403750), SkBits2Float(0x41eda5df), SkBits2Float(0x423fdf3f));  // 29.759f, 48.475f, 29.727f, 48.054f, 29.706f, 47.968f
6469 path.lineTo(SkBits2Float(0x41ed4dcf), SkBits2Float(0x423fd3fb));  // 29.663f, 47.957f
6470 path.moveTo(SkBits2Float(0x41d05a19), SkBits2Float(0x4258ab05));  // 26.044f, 54.167f
6471 path.cubicTo(SkBits2Float(0x41d05a19), SkBits2Float(0x42589fc1), SkBits2Float(0x41d070a0), SkBits2Float(0x42588a40), SkBits2Float(0x41d05a19), SkBits2Float(0x42586876));  // 26.044f, 54.156f, 26.055f, 54.135f, 26.044f, 54.102f
6472 path.cubicTo(SkBits2Float(0x41d05a19), SkBits2Float(0x42583c6e), SkBits2Float(0x41d02f17), SkBits2Float(0x4257ee9b), SkBits2Float(0x41d00209), SkBits2Float(0x4257c293));  // 26.044f, 54.059f, 26.023f, 53.983f, 26.001f, 53.94f
6473 path.cubicTo(SkBits2Float(0x41cfeb82), SkBits2Float(0x42571cb0), SkBits2Float(0x41d00209), SkBits2Float(0x42568210), SkBits2Float(0x41cfeb82), SkBits2Float(0x4255c5a5));  // 25.99f, 53.778f, 26.001f, 53.627f, 25.99f, 53.443f
6474 path.cubicTo(SkBits2Float(0x41cfeb82), SkBits2Float(0x4255a4e0), SkBits2Float(0x41cfc080), SkBits2Float(0x42552b05), SkBits2Float(0x41cfd4fb), SkBits2Float(0x4254dd32));  // 25.99f, 53.411f, 25.969f, 53.292f, 25.979f, 53.216f
6475 path.cubicTo(SkBits2Float(0x41cfeb82), SkBits2Float(0x4254b12a), SkBits2Float(0x41d05a1a), SkBits2Float(0x4254b12a), SkBits2Float(0x41d0df38), SkBits2Float(0x4254c7b1));  // 25.99f, 53.173f, 26.044f, 53.173f, 26.109f, 53.195f
6476 path.cubicTo(SkBits2Float(0x41d24186), SkBits2Float(0x42552b05), SkBits2Float(0x41d4ac05), SkBits2Float(0x42563f80), SkBits2Float(0x41d50621), SkBits2Float(0x42566044));  // 26.282f, 53.292f, 26.584f, 53.562f, 26.628f, 53.594f
6477 path.cubicTo(SkBits2Float(0x41d60e52), SkBits2Float(0x4256da1f), SkBits2Float(0x41d70208), SkBits2Float(0x425748b7), SkBits2Float(0x41d80a3a), SkBits2Float(0x4257c292));  // 26.757f, 53.713f, 26.876f, 53.821f, 27.005f, 53.94f
6478 path.cubicTo(SkBits2Float(0x41d8a5e0), SkBits2Float(0x4257f9de), SkBits2Float(0x41da1eb5), SkBits2Float(0x4258947e), SkBits2Float(0x41d8a5e0), SkBits2Float(0x4258ab05));  // 27.081f, 53.994f, 27.265f, 54.145f, 27.081f, 54.167f
6479 path.cubicTo(SkBits2Float(0x41d7df38), SkBits2Float(0x4258cbca), SkBits2Float(0x41d72d0b), SkBits2Float(0x4258b649), SkBits2Float(0x41d66663), SkBits2Float(0x4258b649));  // 26.984f, 54.199f, 26.897f, 54.178f, 26.8f, 54.178f
6480 path.cubicTo(SkBits2Float(0x41d547ab), SkBits2Float(0x4258cbca), SkBits2Float(0x41d1bc67), SkBits2Float(0x42592f1e), SkBits2Float(0x41d0b22a), SkBits2Float(0x4258e251));  // 26.66f, 54.199f, 26.217f, 54.296f, 26.087f, 54.221f
6481 path.lineTo(SkBits2Float(0x41d0b22a), SkBits2Float(0x4258d70d));  // 26.087f, 54.21f
6482 path.cubicTo(SkBits2Float(0x41d09daf), SkBits2Float(0x4258d70d), SkBits2Float(0x41d070a1), SkBits2Float(0x4258b648), SkBits2Float(0x41d05a1a), SkBits2Float(0x4258ab05));  // 26.077f, 54.21f, 26.055f, 54.178f, 26.044f, 54.167f
6483 path.moveTo(SkBits2Float(0x41ce8b41), SkBits2Float(0x42588a40));  // 25.818f, 54.135f
6484 path.cubicTo(SkBits2Float(0x41ceb643), SkBits2Float(0x4258ab05), SkBits2Float(0x41ce74ba), SkBits2Float(0x4258ab05), SkBits2Float(0x41ceccca), SkBits2Float(0x4258ab05));  // 25.839f, 54.167f, 25.807f, 54.167f, 25.85f, 54.167f
6485 path.cubicTo(SkBits2Float(0x41cef7cc), SkBits2Float(0x4258ab05), SkBits2Float(0x41cf0e53), SkBits2Float(0x4258b336), SkBits2Float(0x41cf0e53), SkBits2Float(0x42589db5));  // 25.871f, 54.167f, 25.882f, 54.175f, 25.882f, 54.154f
6486 path.cubicTo(SkBits2Float(0x41cf0e53), SkBits2Float(0x4258395b), SkBits2Float(0x41cf0a3a), SkBits2Float(0x42579790), SkBits2Float(0x41cedd2c), SkBits2Float(0x4257343c));  // 25.882f, 54.056f, 25.88f, 53.898f, 25.858f, 53.801f
6487 path.cubicTo(SkBits2Float(0x41cec8b1), SkBits2Float(0x42564086), SkBits2Float(0x41ceccca), SkBits2Float(0x4254f3b9), SkBits2Float(0x41ce5e32), SkBits2Float(0x425421cd));  // 25.848f, 53.563f, 25.85f, 53.238f, 25.796f, 53.033f
6488 path.lineTo(SkBits2Float(0x41cdef9a), SkBits2Float(0x425421cd));  // 25.742f, 53.033f
6489 path.cubicTo(SkBits2Float(0x41cdd913), SkBits2Float(0x4254dd31), SkBits2Float(0x41ce126b), SkBits2Float(0x425626ec), SkBits2Float(0x41ce28f2), SkBits2Float(0x4256e250));  // 25.731f, 53.216f, 25.759f, 53.538f, 25.77f, 53.721f
6490 path.cubicTo(SkBits2Float(0x41ce3f79), SkBits2Float(0x42579377), SkBits2Float(0x41ce47aa), SkBits2Float(0x42580f5e), SkBits2Float(0x41ce8b40), SkBits2Float(0x42588a40));  // 25.781f, 53.894f, 25.785f, 54.015f, 25.818f, 54.135f
6491 path.moveTo(SkBits2Float(0x41c58d4c), SkBits2Float(0x425271ad));  // 24.694f, 52.611f
6492 path.cubicTo(SkBits2Float(0x41c58d4c), SkBits2Float(0x42525c2c), SkBits2Float(0x41c5ba5a), SkBits2Float(0x42523024), SkBits2Float(0x41c5fbe4), SkBits2Float(0x425224e0));  // 24.694f, 52.59f, 24.716f, 52.547f, 24.748f, 52.536f
6493 path.lineTo(SkBits2Float(0x41c6126b), SkBits2Float(0x4252199c));  // 24.759f, 52.525f
6494 path.cubicTo(SkBits2Float(0x41c6978a), SkBits2Float(0x42520f5f), SkBits2Float(0x41c774b9), SkBits2Float(0x42523023), SkBits2Float(0x41c79fbb), SkBits2Float(0x42525c2b));  // 24.824f, 52.515f, 24.932f, 52.547f, 24.953f, 52.59f
6495 path.cubicTo(SkBits2Float(0x41c7f9d8), SkBits2Float(0x4252a9fe), SkBits2Float(0x41c79fbb), SkBits2Float(0x4258e250), SkBits2Float(0x41c78b40), SkBits2Float(0x4259199c));  // 24.997f, 52.666f, 24.953f, 54.221f, 24.943f, 54.275f
6496 path.lineTo(SkBits2Float(0x41c78b40), SkBits2Float(0x42592f1d));  // 24.943f, 54.296f
6497 path.cubicTo(SkBits2Float(0x41c747aa), SkBits2Float(0x42595c2b), SkBits2Float(0x41c68103), SkBits2Float(0x42596669), SkBits2Float(0x41c5fbe4), SkBits2Float(0x42596669));  // 24.91f, 54.34f, 24.813f, 54.35f, 24.748f, 54.35f
6498 path.cubicTo(SkBits2Float(0x41c5353c), SkBits2Float(0x425971ad), SkBits2Float(0x41c41684), SkBits2Float(0x425971ad), SkBits2Float(0x41c3e975), SkBits2Float(0x42592f1d));  // 24.651f, 54.361f, 24.511f, 54.361f, 24.489f, 54.296f
6499 path.cubicTo(SkBits2Float(0x41c3a7ec), SkBits2Float(0x4258cbc9), SkBits2Float(0x41c42afe), SkBits2Float(0x4257d919), SkBits2Float(0x41c44185), SkBits2Float(0x42578002));  // 24.457f, 54.199f, 24.521f, 53.962f, 24.532f, 53.875f
6500 path.cubicTo(SkBits2Float(0x41c46e93), SkBits2Float(0x42563f7f), SkBits2Float(0x41c4c6a4), SkBits2Float(0x42550a3f), SkBits2Float(0x41c5353b), SkBits2Float(0x4253df3d));  // 24.554f, 53.562f, 24.597f, 53.26f, 24.651f, 52.968f
6501 path.cubicTo(SkBits2Float(0x41c54bc2), SkBits2Float(0x42537be9), SkBits2Float(0x41c56249), SkBits2Float(0x42530d51), SkBits2Float(0x41c58d4b), SkBits2Float(0x4252cac2));  // 24.662f, 52.871f, 24.673f, 52.763f, 24.694f, 52.698f
6502 path.cubicTo(SkBits2Float(0x41c58d4b), SkBits2Float(0x4252a9fd), SkBits2Float(0x41c56249), SkBits2Float(0x42528833), SkBits2Float(0x41c58d4b), SkBits2Float(0x425271ab));  // 24.694f, 52.666f, 24.673f, 52.633f, 24.694f, 52.611f
6503 path.moveTo(SkBits2Float(0x41c36662), SkBits2Float(0x42534fe0));  // 24.425f, 52.828f
6504 path.cubicTo(SkBits2Float(0x41c33954), SkBits2Float(0x4253c9bb), SkBits2Float(0x41c34dcf), SkBits2Float(0x42541688), SkBits2Float(0x41c322cc), SkBits2Float(0x42549063));  // 24.403f, 52.947f, 24.413f, 53.022f, 24.392f, 53.141f
6505 path.cubicTo(SkBits2Float(0x41c2f5be), SkBits2Float(0x4254fefb), SkBits2Float(0x41c2b434), SkBits2Float(0x42558e57), SkBits2Float(0x41c29dad), SkBits2Float(0x42560832));  // 24.37f, 53.249f, 24.338f, 53.389f, 24.327f, 53.508f
6506 path.cubicTo(SkBits2Float(0x41c2709f), SkBits2Float(0x4256e561), SkBits2Float(0x41c2459d), SkBits2Float(0x4257ad0f), SkBits2Float(0x41c1ed8c), SkBits2Float(0x42586874));  // 24.305f, 53.724f, 24.284f, 53.919f, 24.241f, 54.102f
6507 path.cubicTo(SkBits2Float(0x41c1d705), SkBits2Float(0x4258cbc8), SkBits2Float(0x41c20207), SkBits2Float(0x42590e57), SkBits2Float(0x41c1c07e), SkBits2Float(0x425950e7));  // 24.23f, 54.199f, 24.251f, 54.264f, 24.219f, 54.329f
6508 path.cubicTo(SkBits2Float(0x41c1c07e), SkBits2Float(0x42596668), SkBits2Float(0x41c1686e), SkBits2Float(0x42599270), SkBits2Float(0x41c13b5f), SkBits2Float(0x42599270));  // 24.219f, 54.35f, 24.176f, 54.393f, 24.154f, 54.393f
6509 path.cubicTo(SkBits2Float(0x41c0ccc7), SkBits2Float(0x4259a8f7), SkBits2Float(0x41c074b7), SkBits2Float(0x42599270), SkBits2Float(0x41c00620), SkBits2Float(0x425971ab));  // 24.1f, 54.415f, 24.057f, 54.393f, 24.003f, 54.361f
6510 path.cubicTo(SkBits2Float(0x41c00620), SkBits2Float(0x425825e4), SkBits2Float(0x41c08b3f), SkBits2Float(0x4256da1e), SkBits2Float(0x41c0f9d6), SkBits2Float(0x42558e57));  // 24.003f, 54.037f, 24.068f, 53.713f, 24.122f, 53.389f
6511 path.cubicTo(SkBits2Float(0x41c151e6), SkBits2Float(0x425479dc), SkBits2Float(0x41c151e6), SkBits2Float(0x42534fe0), SkBits2Float(0x41c1ed8c), SkBits2Float(0x425245a3));  // 24.165f, 53.119f, 24.165f, 52.828f, 24.241f, 52.568f
6512 path.cubicTo(SkBits2Float(0x41c22f15), SkBits2Float(0x42520f5d), SkBits2Float(0x41c22f15), SkBits2Float(0x4251d70b), SkBits2Float(0x41c25c24), SkBits2Float(0x4251ccce));  // 24.273f, 52.515f, 24.273f, 52.46f, 24.295f, 52.45f
6513 path.cubicTo(SkBits2Float(0x41c2e143), SkBits2Float(0x4251b647), SkBits2Float(0x41c34dce), SkBits2Float(0x4251e24f), SkBits2Float(0x41c3a7eb), SkBits2Float(0x4251e24f));  // 24.36f, 52.428f, 24.413f, 52.471f, 24.457f, 52.471f
6514 path.cubicTo(SkBits2Float(0x41c3be72), SkBits2Float(0x42525c2a), SkBits2Float(0x41c37add), SkBits2Float(0x4252e149), SkBits2Float(0x41c36662), SkBits2Float(0x42534fe0));  // 24.468f, 52.59f, 24.435f, 52.72f, 24.425f, 52.828f
6515 path.moveTo(SkBits2Float(0x41b3105e), SkBits2Float(0x426e020d));  // 22.383f, 59.502f
6516 path.cubicTo(SkBits2Float(0x41b2ced5), SkBits2Float(0x426dcac1), SkBits2Float(0x41b28b3f), SkBits2Float(0x426d9375), SkBits2Float(0x41b21ca8), SkBits2Float(0x426d676d));  // 22.351f, 59.448f, 22.318f, 59.394f, 22.264f, 59.351f
6517 path.lineTo(SkBits2Float(0x41b1f1a6), SkBits2Float(0x426d676d));  // 22.243f, 59.351f
6518 path.lineTo(SkBits2Float(0x41b1f1a6), SkBits2Float(0x426d50e6));  // 22.243f, 59.329f
6519 path.cubicTo(SkBits2Float(0x41b1f1a6), SkBits2Float(0x426d2f1b), SkBits2Float(0x41b1830e), SkBits2Float(0x426d199a), SkBits2Float(0x41b15600), SkBits2Float(0x426d0f5d));  // 22.243f, 59.296f, 22.189f, 59.275f, 22.167f, 59.265f
6520 path.cubicTo(SkBits2Float(0x41b0e768), SkBits2Float(0x426cccce), SkBits2Float(0x41af1683), SkBits2Float(0x426bd917), SkBits2Float(0x41aefffc), SkBits2Float(0x426b8107));  // 22.113f, 59.2f, 21.886f, 58.962f, 21.875f, 58.876f
6521 path.cubicTo(SkBits2Float(0x41aeeb81), SkBits2Float(0x426b3334), SkBits2Float(0x41af5a19), SkBits2Float(0x426acfe0), SkBits2Float(0x41af70a0), SkBits2Float(0x426a8d51));  // 21.865f, 58.8f, 21.919f, 58.703f, 21.93f, 58.638f
6522 path.cubicTo(SkBits2Float(0x41b04dcf), SkBits2Float(0x42693647), SkBits2Float(0x41b1db1f), SkBits2Float(0x4268645b), SkBits2Float(0x41b43123), SkBits2Float(0x4267c9bc));  // 22.038f, 58.303f, 22.232f, 58.098f, 22.524f, 57.947f
6523 path.cubicTo(SkBits2Float(0x41b472ac), SkBits2Float(0x4267a7f1), SkBits2Float(0x41b4f7cb), SkBits2Float(0x426770a5), SkBits2Float(0x41b56662), SkBits2Float(0x42676668));  // 22.556f, 57.914f, 22.621f, 57.86f, 22.675f, 57.85f
6524 path.cubicTo(SkBits2Float(0x41b5a7eb), SkBits2Float(0x42675b24), SkBits2Float(0x41b5d4fa), SkBits2Float(0x42676668), SkBits2Float(0x41b62d0a), SkBits2Float(0x42675b24));  // 22.707f, 57.839f, 22.729f, 57.85f, 22.772f, 57.839f
6525 path.cubicTo(SkBits2Float(0x41b69ba2), SkBits2Float(0x42674fe0), SkBits2Float(0x41b78f58), SkBits2Float(0x42671895), SkBits2Float(0x41b828f1), SkBits2Float(0x42671895));  // 22.826f, 57.828f, 22.945f, 57.774f, 23.02f, 57.774f
6526 path.cubicTo(SkBits2Float(0x41b8ae10), SkBits2Float(0x42671895), SkBits2Float(0x41b8c497), SkBits2Float(0x42672f1c), SkBits2Float(0x41b91ca7), SkBits2Float(0x4267449d));  // 23.085f, 57.774f, 23.096f, 57.796f, 23.139f, 57.817f
6527 path.lineTo(SkBits2Float(0x41b91ca7), SkBits2Float(0x42675b24));  // 23.139f, 57.839f
6528 path.cubicTo(SkBits2Float(0x41b91ca7), SkBits2Float(0x42674fe0), SkBits2Float(0x41b9332e), SkBits2Float(0x426770a5), SkBits2Float(0x41b9332e), SkBits2Float(0x4267872c));  // 23.139f, 57.828f, 23.15f, 57.86f, 23.15f, 57.882f
6529 path.cubicTo(SkBits2Float(0x41b91ca7), SkBits2Float(0x4267df3c), SkBits2Float(0x41b90620), SkBits2Float(0x42685918), SkBits2Float(0x41b8db1e), SkBits2Float(0x4268bc6b));  // 23.139f, 57.968f, 23.128f, 58.087f, 23.107f, 58.184f
6530 path.cubicTo(SkBits2Float(0x41b855ff), SkBits2Float(0x426a29fc), SkBits2Float(0x41b7d0e1), SkBits2Float(0x426bc290), SkBits2Float(0x41b76249), SkBits2Float(0x426d2f1b));  // 23.042f, 58.541f, 22.977f, 58.94f, 22.923f, 59.296f
6531 path.cubicTo(SkBits2Float(0x41b720c0), SkBits2Float(0x426e0d50), SkBits2Float(0x41b720c0), SkBits2Float(0x426ed3f8), SkBits2Float(0x41b69ba1), SkBits2Float(0x426f79dc));  // 22.891f, 59.513f, 22.891f, 59.707f, 22.826f, 59.869f
6532 path.cubicTo(SkBits2Float(0x41b64391), SkBits2Float(0x426f645b), SkBits2Float(0x41b62d09), SkBits2Float(0x426f79dc), SkBits2Float(0x41b5eb80), SkBits2Float(0x426f645b));  // 22.783f, 59.848f, 22.772f, 59.869f, 22.74f, 59.848f
6533 path.cubicTo(SkBits2Float(0x41b5a7ea), SkBits2Float(0x426f5917), SkBits2Float(0x41b57adc), SkBits2Float(0x426f374d), SkBits2Float(0x41b53953), SkBits2Float(0x426f1688));  // 22.707f, 59.837f, 22.685f, 59.804f, 22.653f, 59.772f
6534 path.lineTo(SkBits2Float(0x41b53953), SkBits2Float(0x426f0107));  // 22.653f, 59.751f
6535 path.cubicTo(SkBits2Float(0x41b472ab), SkBits2Float(0x426ea7f0), SkBits2Float(0x41b3ac03), SkBits2Float(0x426e5a1e), SkBits2Float(0x41b3105d), SkBits2Float(0x426e020d));  // 22.556f, 59.664f, 22.459f, 59.588f, 22.383f, 59.502f
6536     testSimplify(reporter, path, filename);
6537 }
6538 
joel_5(skiatest::Reporter * reporter,const char * filename)6539 static void joel_5(skiatest::Reporter* reporter, const char* filename) {
6540     SkPath path;
6541     path.setFillType((SkPathFillType) 0);
6542 path.moveTo(SkBits2Float(0x43c5145a), SkBits2Float(0x43dc82f2));  // 394.159f, 441.023f
6543 path.lineTo(SkBits2Float(0x43c5145a), SkBits2Float(0x43dc82f2));  // 394.159f, 441.023f
6544 path.close();
6545 path.moveTo(SkBits2Float(0x43af4e56), SkBits2Float(0x43dbc604));  // 350.612f, 439.547f
6546 path.lineTo(SkBits2Float(0x43af4e56), SkBits2Float(0x43dbc604));  // 350.612f, 439.547f
6547 path.close();
6548 path.moveTo(SkBits2Float(0x43af4e56), SkBits2Float(0x43dbc604));  // 350.612f, 439.547f
6549 path.cubicTo(SkBits2Float(0x43b64a5e), SkBits2Float(0x43dc9604), SkBits2Float(0x43be0958), SkBits2Float(0x43dbb604), SkBits2Float(0x43c5145a), SkBits2Float(0x43dc8312));  // 364.581f, 441.172f, 380.073f, 439.422f, 394.159f, 441.024f
6550 path.cubicTo(SkBits2Float(0x43be0958), SkBits2Float(0x43dbb604), SkBits2Float(0x43b64a5e), SkBits2Float(0x43dc9604), SkBits2Float(0x43af4e56), SkBits2Float(0x43dbc604));  // 380.073f, 439.422f, 364.581f, 441.172f, 350.612f, 439.547f
6551 path.close();
6552 path.moveTo(SkBits2Float(0x43a9126f), SkBits2Float(0x43e11604));  // 338.144f, 450.172f
6553 path.lineTo(SkBits2Float(0x43a9126f), SkBits2Float(0x43e11604));  // 338.144f, 450.172f
6554 path.close();
6555 path.moveTo(SkBits2Float(0x43a9126f), SkBits2Float(0x43e11604));  // 338.144f, 450.172f
6556 path.cubicTo(SkBits2Float(0x43ab3c6b), SkBits2Float(0x43debc08), SkBits2Float(0x43ad1b65), SkBits2Float(0x43de18f6), SkBits2Float(0x43af4e77), SkBits2Float(0x43dbc604));  // 342.472f, 445.469f, 346.214f, 444.195f, 350.613f, 439.547f
6557 path.cubicTo(SkBits2Float(0x43ad1b65), SkBits2Float(0x43de18f6), SkBits2Float(0x43ab3c6b), SkBits2Float(0x43debc08), SkBits2Float(0x43a9126f), SkBits2Float(0x43e11604));  // 346.214f, 444.195f, 342.472f, 445.469f, 338.144f, 450.172f
6558 path.close();
6559 path.moveTo(SkBits2Float(0x43aa9d50), SkBits2Float(0x43e173f8));  // 341.229f, 450.906f
6560 path.lineTo(SkBits2Float(0x43aa9d50), SkBits2Float(0x43e173f8));  // 341.229f, 450.906f
6561 path.close();
6562 path.moveTo(SkBits2Float(0x43aa9d50), SkBits2Float(0x43e173f8));  // 341.229f, 450.906f
6563 path.cubicTo(SkBits2Float(0x43aa0852), SkBits2Float(0x43e183f8), SkBits2Float(0x43a9be56), SkBits2Float(0x43e0d2f2), SkBits2Float(0x43a9124e), SkBits2Float(0x43e11604));  // 340.065f, 451.031f, 339.487f, 449.648f, 338.143f, 450.172f
6564 path.cubicTo(SkBits2Float(0x43a9be56), SkBits2Float(0x43e0d2f2), SkBits2Float(0x43aa0852), SkBits2Float(0x43e183f8), SkBits2Float(0x43aa9d50), SkBits2Float(0x43e173f8));  // 339.487f, 449.648f, 340.065f, 451.031f, 341.229f, 450.906f
6565 path.close();
6566 path.moveTo(SkBits2Float(0x43b13667), SkBits2Float(0x43dce106));  // 354.425f, 441.758f
6567 path.lineTo(SkBits2Float(0x43b13667), SkBits2Float(0x43dce106));  // 354.425f, 441.758f
6568 path.close();
6569 path.moveTo(SkBits2Float(0x43b13667), SkBits2Float(0x43dce106));  // 354.425f, 441.758f
6570 path.cubicTo(SkBits2Float(0x43aead71), SkBits2Float(0x43dd9d0e), SkBits2Float(0x43acd375), SkBits2Float(0x43dff20c), SkBits2Float(0x43aa9d71), SkBits2Float(0x43e173f8));  // 349.355f, 443.227f, 345.652f, 447.891f, 341.23f, 450.906f
6571 path.cubicTo(SkBits2Float(0x43acd354), SkBits2Float(0x43dff20c), SkBits2Float(0x43aead50), SkBits2Float(0x43dd9d0f), SkBits2Float(0x43b13667), SkBits2Float(0x43dce106));  // 345.651f, 447.891f, 349.354f, 443.227f, 354.425f, 441.758f
6572 path.close();
6573 path.moveTo(SkBits2Float(0x43ac8561), SkBits2Float(0x43e30106));  // 345.042f, 454.008f
6574 path.lineTo(SkBits2Float(0x43ac8561), SkBits2Float(0x43e30106));  // 345.042f, 454.008f
6575 path.close();
6576 path.moveTo(SkBits2Float(0x43ac8561), SkBits2Float(0x43e30106));  // 345.042f, 454.008f
6577 path.cubicTo(SkBits2Float(0x43adc76d), SkBits2Float(0x43e0f4fe), SkBits2Float(0x43b21a5f), SkBits2Float(0x43df7efa), SkBits2Float(0x43b13667), SkBits2Float(0x43dce106));  // 347.558f, 449.914f, 356.206f, 446.992f, 354.425f, 441.758f
6578 path.cubicTo(SkBits2Float(0x43b21a5f), SkBits2Float(0x43df7efa), SkBits2Float(0x43adc76d), SkBits2Float(0x43e0f4fe), SkBits2Float(0x43ac8561), SkBits2Float(0x43e30106));  // 356.206f, 446.992f, 347.558f, 449.914f, 345.042f, 454.008f
6579 path.close();
6580 path.moveTo(SkBits2Float(0x43b33169), SkBits2Float(0x43dc82f2));  // 358.386f, 441.023f
6581 path.lineTo(SkBits2Float(0x43b33169), SkBits2Float(0x43dc82f2));  // 358.386f, 441.023f
6582 path.close();
6583 path.moveTo(SkBits2Float(0x43b33169), SkBits2Float(0x43dc82f2));  // 358.386f, 441.023f
6584 path.cubicTo(SkBits2Float(0x43b16169), SkBits2Float(0x43ded7f0), SkBits2Float(0x43aef375), SkBits2Float(0x43e13be8), SkBits2Float(0x43ac8561), SkBits2Float(0x43e300e6));  // 354.761f, 445.687f, 349.902f, 450.468f, 345.042f, 454.007f
6585 path.cubicTo(SkBits2Float(0x43aef355), SkBits2Float(0x43e13c09), SkBits2Float(0x43b16169), SkBits2Float(0x43ded811), SkBits2Float(0x43b33169), SkBits2Float(0x43dc82f2));  // 349.901f, 450.469f, 354.761f, 445.688f, 358.386f, 441.023f
6586 path.close();
6587 path.moveTo(SkBits2Float(0x43b4bb65), SkBits2Float(0x43dd4000));  // 361.464f, 442.5f
6588 path.lineTo(SkBits2Float(0x43b4bb65), SkBits2Float(0x43dd4000));  // 361.464f, 442.5f
6589 path.close();
6590 path.moveTo(SkBits2Float(0x43b4bb65), SkBits2Float(0x43dd4000));  // 361.464f, 442.5f
6591 path.cubicTo(SkBits2Float(0x43b44959), SkBits2Float(0x43dcddf4), SkBits2Float(0x43b3e76d), SkBits2Float(0x43dc48f6), SkBits2Float(0x43b33169), SkBits2Float(0x43dc82f2));  // 360.573f, 441.734f, 359.808f, 440.57f, 358.386f, 441.023f
6592 path.cubicTo(SkBits2Float(0x43b3e76d), SkBits2Float(0x43dc48f6), SkBits2Float(0x43b44959), SkBits2Float(0x43dcddf4), SkBits2Float(0x43b4bb65), SkBits2Float(0x43dd4000));  // 359.808f, 440.57f, 360.573f, 441.734f, 361.464f, 442.5f
6593 path.close();
6594 path.moveTo(SkBits2Float(0x43ae7f5d), SkBits2Float(0x43e5a70a));  // 348.995f, 459.305f
6595 path.lineTo(SkBits2Float(0x43ae7f5d), SkBits2Float(0x43e5a70a));  // 348.995f, 459.305f
6596 path.close();
6597 path.moveTo(SkBits2Float(0x43ae7f5d), SkBits2Float(0x43e5a70a));  // 348.995f, 459.305f
6598 path.cubicTo(SkBits2Float(0x43af945b), SkBits2Float(0x43e21d0e), SkBits2Float(0x43b3a74d), SkBits2Float(0x43e0ce14), SkBits2Float(0x43b4bb65), SkBits2Float(0x43dd4000));  // 351.159f, 452.227f, 359.307f, 449.61f, 361.464f, 442.5f
6599 path.cubicTo(SkBits2Float(0x43b3a76d), SkBits2Float(0x43e0cdf4), SkBits2Float(0x43af945b), SkBits2Float(0x43e21d0e), SkBits2Float(0x43ae7f5d), SkBits2Float(0x43e5a70a));  // 359.308f, 449.609f, 351.159f, 452.227f, 348.995f, 459.305f
6600 path.close();
6601 path.moveTo(SkBits2Float(0x43b58a5f), SkBits2Float(0x43dce106));  // 363.081f, 441.758f
6602 path.lineTo(SkBits2Float(0x43b58a5f), SkBits2Float(0x43dce106));  // 363.081f, 441.758f
6603 path.close();
6604 path.moveTo(SkBits2Float(0x43b58a5f), SkBits2Float(0x43dce106));  // 363.081f, 441.758f
6605 path.cubicTo(SkBits2Float(0x43b2c063), SkBits2Float(0x43dfa604), SkBits2Float(0x43b1d561), SkBits2Float(0x43e374fe), SkBits2Float(0x43ae7f5d), SkBits2Float(0x43e5a70a));  // 357.503f, 447.297f, 355.667f, 454.914f, 348.995f, 459.305f
6606 path.cubicTo(SkBits2Float(0x43b1d561), SkBits2Float(0x43e374fe), SkBits2Float(0x43b2c063), SkBits2Float(0x43dfa604), SkBits2Float(0x43b58a5f), SkBits2Float(0x43dce106));  // 355.667f, 454.914f, 357.503f, 447.297f, 363.081f, 441.758f
6607 path.close();
6608 path.moveTo(SkBits2Float(0x43b6b561), SkBits2Float(0x43dd4000));  // 365.417f, 442.5f
6609 path.lineTo(SkBits2Float(0x43b6b561), SkBits2Float(0x43dd4000));  // 365.417f, 442.5f
6610 path.close();
6611 path.moveTo(SkBits2Float(0x43b6b561), SkBits2Float(0x43dd4000));  // 365.417f, 442.5f
6612 path.lineTo(SkBits2Float(0x43b58a5f), SkBits2Float(0x43dce106));  // 363.081f, 441.758f
6613 path.lineTo(SkBits2Float(0x43b6b561), SkBits2Float(0x43dd4000));  // 365.417f, 442.5f
6614 path.close();
6615 path.moveTo(SkBits2Float(0x43b07a5f), SkBits2Float(0x43e7220c));  // 352.956f, 462.266f
6616 path.lineTo(SkBits2Float(0x43b07a5f), SkBits2Float(0x43e7220c));  // 352.956f, 462.266f
6617 path.close();
6618 path.moveTo(SkBits2Float(0x43b07a5f), SkBits2Float(0x43e7220c));  // 352.956f, 462.266f
6619 path.cubicTo(SkBits2Float(0x43b29f5d), SkBits2Float(0x43e3e810), SkBits2Float(0x43b59667), SkBits2Float(0x43e0f916), SkBits2Float(0x43b6b561), SkBits2Float(0x43dd4000));  // 357.245f, 455.813f, 363.175f, 449.946f, 365.417f, 442.5f
6620 path.cubicTo(SkBits2Float(0x43b59667), SkBits2Float(0x43e0f8f6), SkBits2Float(0x43b29f5d), SkBits2Float(0x43e3e7f0), SkBits2Float(0x43b07a5f), SkBits2Float(0x43e7220c));  // 363.175f, 449.945f, 357.245f, 455.812f, 352.956f, 462.266f
6621 path.close();
6622 path.moveTo(SkBits2Float(0x43b0d853), SkBits2Float(0x43e84efa));  // 353.69f, 464.617f
6623 path.lineTo(SkBits2Float(0x43b0d853), SkBits2Float(0x43e84efa));  // 353.69f, 464.617f
6624 path.close();
6625 path.moveTo(SkBits2Float(0x43b0d853), SkBits2Float(0x43e84efa));  // 353.69f, 464.617f
6626 path.cubicTo(SkBits2Float(0x43b03a5f), SkBits2Float(0x43e934fe), SkBits2Float(0x43b1345b), SkBits2Float(0x43e7870a), SkBits2Float(0x43b07a5f), SkBits2Float(0x43e721ec));  // 352.456f, 466.414f, 354.409f, 463.055f, 352.956f, 462.265f
6627 path.cubicTo(SkBits2Float(0x43b1345b), SkBits2Float(0x43e7870b), SkBits2Float(0x43b03a5f), SkBits2Float(0x43e934fe), SkBits2Float(0x43b0d853), SkBits2Float(0x43e84efa));  // 354.409f, 463.055f, 352.456f, 466.414f, 353.69f, 464.617f
6628 path.close();
6629 path.moveTo(SkBits2Float(0x43b84063), SkBits2Float(0x43ddb106));  // 368.503f, 443.383f
6630 path.lineTo(SkBits2Float(0x43b84063), SkBits2Float(0x43ddb106));  // 368.503f, 443.383f
6631 path.close();
6632 path.moveTo(SkBits2Float(0x43b84063), SkBits2Float(0x43ddb106));  // 368.503f, 443.383f
6633 path.cubicTo(SkBits2Float(0x43b42667), SkBits2Float(0x43e039fc), SkBits2Float(0x43b39d71), SkBits2Float(0x43e4e000), SkBits2Float(0x43b0d873), SkBits2Float(0x43e84efa));  // 360.3f, 448.453f, 359.23f, 457.75f, 353.691f, 464.617f
6634 path.cubicTo(SkBits2Float(0x43b39d50), SkBits2Float(0x43e4e000), SkBits2Float(0x43b42667), SkBits2Float(0x43e039fc), SkBits2Float(0x43b84063), SkBits2Float(0x43ddb106));  // 359.229f, 457.75f, 360.3f, 448.453f, 368.503f, 443.383f
6635 path.close();
6636 path.moveTo(SkBits2Float(0x43b89d51), SkBits2Float(0x43de0efa));  // 369.229f, 444.117f
6637 path.lineTo(SkBits2Float(0x43b89d51), SkBits2Float(0x43de0efa));  // 369.229f, 444.117f
6638 path.close();
6639 path.moveTo(SkBits2Float(0x43b89d51), SkBits2Float(0x43de0efa));  // 369.229f, 444.117f
6640 path.lineTo(SkBits2Float(0x43b84043), SkBits2Float(0x43ddb106));  // 368.502f, 443.383f
6641 path.lineTo(SkBits2Float(0x43b89d51), SkBits2Float(0x43de0efa));  // 369.229f, 444.117f
6642 path.close();
6643 path.moveTo(SkBits2Float(0x43b26270), SkBits2Float(0x43e90c08));  // 356.769f, 466.094f
6644 path.lineTo(SkBits2Float(0x43b26270), SkBits2Float(0x43e90c08));  // 356.769f, 466.094f
6645 path.close();
6646 path.moveTo(SkBits2Float(0x43b26270), SkBits2Float(0x43e90c08));  // 356.769f, 466.094f
6647 path.cubicTo(SkBits2Float(0x43b48d72), SkBits2Float(0x43e569fc), SkBits2Float(0x43b7897a), SkBits2Float(0x43e21d0e), SkBits2Float(0x43b89d72), SkBits2Float(0x43de0efa));  // 361.105f, 458.828f, 367.074f, 452.227f, 369.23f, 444.117f
6648 path.cubicTo(SkBits2Float(0x43b78959), SkBits2Float(0x43e21d0e), SkBits2Float(0x43b48d51), SkBits2Float(0x43e569fc), SkBits2Float(0x43b26270), SkBits2Float(0x43e90c08));  // 367.073f, 452.227f, 361.104f, 458.828f, 356.769f, 466.094f
6649 path.close();
6650 path.moveTo(SkBits2Float(0x43b3316a), SkBits2Float(0x43e90c08));  // 358.386f, 466.094f
6651 path.lineTo(SkBits2Float(0x43b3316a), SkBits2Float(0x43e90c08));  // 358.386f, 466.094f
6652 path.close();
6653 path.moveTo(SkBits2Float(0x43b3316a), SkBits2Float(0x43e90c08));  // 358.386f, 466.094f
6654 path.lineTo(SkBits2Float(0x43b26270), SkBits2Float(0x43e90c08));  // 356.769f, 466.094f
6655 path.lineTo(SkBits2Float(0x43b3316a), SkBits2Float(0x43e90c08));  // 358.386f, 466.094f
6656 path.close();
6657 path.moveTo(SkBits2Float(0x43ba2853), SkBits2Float(0x43ddb106));  // 372.315f, 443.383f
6658 path.lineTo(SkBits2Float(0x43ba2853), SkBits2Float(0x43ddb106));  // 372.315f, 443.383f
6659 path.close();
6660 path.moveTo(SkBits2Float(0x43ba2853), SkBits2Float(0x43ddb106));  // 372.315f, 443.383f
6661 path.cubicTo(SkBits2Float(0x43b7d74d), SkBits2Float(0x43e17604), SkBits2Float(0x43b5824f), SkBits2Float(0x43e59604), SkBits2Float(0x43b33149), SkBits2Float(0x43e90c08));  // 367.682f, 450.922f, 363.018f, 459.172f, 358.385f, 466.094f
6662 path.cubicTo(SkBits2Float(0x43b58270), SkBits2Float(0x43e59604), SkBits2Float(0x43b7d76e), SkBits2Float(0x43e17604), SkBits2Float(0x43ba2853), SkBits2Float(0x43ddb106));  // 363.019f, 459.172f, 367.683f, 450.922f, 372.315f, 443.383f
6663 path.close();
6664 path.moveTo(SkBits2Float(0x43bb5355), SkBits2Float(0x43de0efa));  // 374.651f, 444.117f
6665 path.lineTo(SkBits2Float(0x43bb5355), SkBits2Float(0x43de0efa));  // 374.651f, 444.117f
6666 path.close();
6667 path.moveTo(SkBits2Float(0x43bb5355), SkBits2Float(0x43de0efa));  // 374.651f, 444.117f
6668 path.cubicTo(SkBits2Float(0x43bb1853), SkBits2Float(0x43dd92f2), SkBits2Float(0x43ba9e57), SkBits2Float(0x43ddab02), SkBits2Float(0x43ba2853), SkBits2Float(0x43ddb106));  // 374.19f, 443.148f, 373.237f, 443.336f, 372.315f, 443.383f
6669 path.cubicTo(SkBits2Float(0x43ba9e57), SkBits2Float(0x43ddab02), SkBits2Float(0x43bb1853), SkBits2Float(0x43dd92f2), SkBits2Float(0x43bb5355), SkBits2Float(0x43de0efa));  // 373.237f, 443.336f, 374.19f, 443.148f, 374.651f, 444.117f
6670 path.close();
6671 path.moveTo(SkBits2Float(0x43b58a5f), SkBits2Float(0x43e90c08));  // 363.081f, 466.094f
6672 path.lineTo(SkBits2Float(0x43b58a5f), SkBits2Float(0x43e90c08));  // 363.081f, 466.094f
6673 path.close();
6674 path.moveTo(SkBits2Float(0x43b58a5f), SkBits2Float(0x43e90c08));  // 363.081f, 466.094f
6675 path.cubicTo(SkBits2Float(0x43b76c6b), SkBits2Float(0x43e55d0e), SkBits2Float(0x43ba4a5f), SkBits2Float(0x43e21312), SkBits2Float(0x43bb5355), SkBits2Float(0x43de0efa));  // 366.847f, 458.727f, 372.581f, 452.149f, 374.651f, 444.117f
6676 path.cubicTo(SkBits2Float(0x43ba4a5f), SkBits2Float(0x43e212f2), SkBits2Float(0x43b76c6c), SkBits2Float(0x43e55d0e), SkBits2Float(0x43b58a5f), SkBits2Float(0x43e90c08));  // 372.581f, 452.148f, 366.847f, 458.727f, 363.081f, 466.094f
6677 path.close();
6678 path.moveTo(SkBits2Float(0x43b6b561), SkBits2Float(0x43e90c08));  // 365.417f, 466.094f
6679 path.lineTo(SkBits2Float(0x43b6b561), SkBits2Float(0x43e90c08));  // 365.417f, 466.094f
6680 path.close();
6681 path.moveTo(SkBits2Float(0x43b6b561), SkBits2Float(0x43e90c08));  // 365.417f, 466.094f
6682 path.lineTo(SkBits2Float(0x43b58a5f), SkBits2Float(0x43e90c08));  // 363.081f, 466.094f
6683 path.lineTo(SkBits2Float(0x43b6b561), SkBits2Float(0x43e90c08));  // 365.417f, 466.094f
6684 path.close();
6685 path.moveTo(SkBits2Float(0x43bc8063), SkBits2Float(0x43e058f6));  // 377.003f, 448.695f
6686 path.lineTo(SkBits2Float(0x43bc8063), SkBits2Float(0x43e058f6));  // 377.003f, 448.695f
6687 path.close();
6688 path.moveTo(SkBits2Float(0x43bc8063), SkBits2Float(0x43e058f6));  // 377.003f, 448.695f
6689 path.cubicTo(SkBits2Float(0x43b9de57), SkBits2Float(0x43e29df4), SkBits2Float(0x43b84355), SkBits2Float(0x43e5fefa), SkBits2Float(0x43b6b561), SkBits2Float(0x43e90be8));  // 371.737f, 453.234f, 368.526f, 459.992f, 365.417f, 466.093f
6690 path.cubicTo(SkBits2Float(0x43b84355), SkBits2Float(0x43e5fefa), SkBits2Float(0x43b9de57), SkBits2Float(0x43e29df4), SkBits2Float(0x43bc8063), SkBits2Float(0x43e058f6));  // 368.526f, 459.992f, 371.737f, 453.234f, 377.003f, 448.695f
6691 path.close();
6692 path.moveTo(SkBits2Float(0x43b89d51), SkBits2Float(0x43e969fc));  // 369.229f, 466.828f
6693 path.lineTo(SkBits2Float(0x43b89d51), SkBits2Float(0x43e969fc));  // 369.229f, 466.828f
6694 path.close();
6695 path.moveTo(SkBits2Float(0x43b89d51), SkBits2Float(0x43e969fc));  // 369.229f, 466.828f
6696 path.cubicTo(SkBits2Float(0x43b98149), SkBits2Float(0x43e637f0), SkBits2Float(0x43bd3355), SkBits2Float(0x43e3adf4), SkBits2Float(0x43bc8043), SkBits2Float(0x43e058f6));  // 371.01f, 460.437f, 378.401f, 455.359f, 377.002f, 448.695f
6697 path.cubicTo(SkBits2Float(0x43bd3355), SkBits2Float(0x43e3adf4), SkBits2Float(0x43b9816a), SkBits2Float(0x43e638f6), SkBits2Float(0x43b89d51), SkBits2Float(0x43e969fc));  // 378.401f, 455.359f, 371.011f, 460.445f, 369.229f, 466.828f
6698 path.close();
6699 path.moveTo(SkBits2Float(0x43ba8668), SkBits2Float(0x43e9c7f0));  // 373.05f, 467.562f
6700 path.lineTo(SkBits2Float(0x43ba8668), SkBits2Float(0x43e9c7f0));  // 373.05f, 467.562f
6701 path.close();
6702 path.moveTo(SkBits2Float(0x43ba8668), SkBits2Float(0x43e9c7f0));  // 373.05f, 467.562f
6703 path.cubicTo(SkBits2Float(0x43ba1376), SkBits2Float(0x43e90000), SkBits2Float(0x43b94270), SkBits2Float(0x43e8f1ec), SkBits2Float(0x43b89d72), SkBits2Float(0x43e969fc));  // 372.152f, 466, 370.519f, 465.89f, 369.23f, 466.828f
6704 path.cubicTo(SkBits2Float(0x43b94270), SkBits2Float(0x43e8f20c), SkBits2Float(0x43ba1355), SkBits2Float(0x43e90000), SkBits2Float(0x43ba8668), SkBits2Float(0x43e9c7f0));  // 370.519f, 465.891f, 372.151f, 466, 373.05f, 467.562f
6705 path.close();
6706 path.moveTo(SkBits2Float(0x43c0c064), SkBits2Float(0x43dc82f2));  // 385.503f, 441.023f
6707 path.lineTo(SkBits2Float(0x43c0c064), SkBits2Float(0x43dc82f2));  // 385.503f, 441.023f
6708 path.close();
6709 path.moveTo(SkBits2Float(0x43c0c064), SkBits2Float(0x43dc82f2));  // 385.503f, 441.023f
6710 path.cubicTo(SkBits2Float(0x43be095a), SkBits2Float(0x43e0acee), SkBits2Float(0x43bd8a60), SkBits2Float(0x43e5c0e6), SkBits2Float(0x43ba8668), SkBits2Float(0x43e9c7f0));  // 380.073f, 449.351f, 379.081f, 459.507f, 373.05f, 467.562f
6711 path.cubicTo(SkBits2Float(0x43bd8a60), SkBits2Float(0x43e5c107), SkBits2Float(0x43be095a), SkBits2Float(0x43e0ad0f), SkBits2Float(0x43c0c064), SkBits2Float(0x43dc82f2));  // 379.081f, 459.508f, 380.073f, 449.352f, 385.503f, 441.023f
6712 path.close();
6713 path.moveTo(SkBits2Float(0x43c00562), SkBits2Float(0x43e23000));  // 384.042f, 452.375f
6714 path.lineTo(SkBits2Float(0x43c00562), SkBits2Float(0x43e23000));  // 384.042f, 452.375f
6715 path.close();
6716 path.moveTo(SkBits2Float(0x43c00562), SkBits2Float(0x43e23000));  // 384.042f, 452.375f
6717 path.cubicTo(SkBits2Float(0x43bfaf5e), SkBits2Float(0x43e013f8), SkBits2Float(0x43c40668), SkBits2Float(0x43ddc2f2), SkBits2Float(0x43c0c064), SkBits2Float(0x43dc82f2));  // 383.37f, 448.156f, 392.05f, 443.523f, 385.503f, 441.023f
6718 path.cubicTo(SkBits2Float(0x43c40668), SkBits2Float(0x43ddc2f2), SkBits2Float(0x43bfaf5e), SkBits2Float(0x43e013f8), SkBits2Float(0x43c00562), SkBits2Float(0x43e23000));  // 392.05f, 443.523f, 383.37f, 448.156f, 384.042f, 452.375f
6719 path.close();
6720 path.moveTo(SkBits2Float(0x43bed854), SkBits2Float(0x43e5370a));  // 381.69f, 458.43f
6721 path.lineTo(SkBits2Float(0x43bed854), SkBits2Float(0x43e5370a));  // 381.69f, 458.43f
6722 path.close();
6723 path.moveTo(SkBits2Float(0x43bed854), SkBits2Float(0x43e5370a));  // 381.69f, 458.43f
6724 path.cubicTo(SkBits2Float(0x43c06562), SkBits2Float(0x43e4b4fe), SkBits2Float(0x43bf095a), SkBits2Float(0x43e2fd0e), SkBits2Float(0x43c00562), SkBits2Float(0x43e23000));  // 384.792f, 457.414f, 382.073f, 453.977f, 384.042f, 452.375f
6725 path.cubicTo(SkBits2Float(0x43bf095a), SkBits2Float(0x43e2fdf4), SkBits2Float(0x43c06562), SkBits2Float(0x43e4b4fe), SkBits2Float(0x43bed854), SkBits2Float(0x43e5370a));  // 382.073f, 453.984f, 384.792f, 457.414f, 381.69f, 458.43f
6726 path.close();
6727 path.moveTo(SkBits2Float(0x43bf3668), SkBits2Float(0x43e5a70a));  // 382.425f, 459.305f
6728 path.lineTo(SkBits2Float(0x43bf3668), SkBits2Float(0x43e5a70a));  // 382.425f, 459.305f
6729 path.close();
6730 path.moveTo(SkBits2Float(0x43bf3668), SkBits2Float(0x43e5a70a));  // 382.425f, 459.305f
6731 path.lineTo(SkBits2Float(0x43bed874), SkBits2Float(0x43e5370a));  // 381.691f, 458.43f
6732 path.lineTo(SkBits2Float(0x43bf3668), SkBits2Float(0x43e5a70a));  // 382.425f, 459.305f
6733 path.close();
6734 path.moveTo(SkBits2Float(0x43bcde58), SkBits2Float(0x43e9c7ef));  // 377.737f, 467.562f
6735 path.lineTo(SkBits2Float(0x43bcde58), SkBits2Float(0x43e9c7ef));  // 377.737f, 467.562f
6736 path.close();
6737 path.moveTo(SkBits2Float(0x43bcde58), SkBits2Float(0x43e9c7ef));  // 377.737f, 467.562f
6738 path.cubicTo(SkBits2Float(0x43bdfb66), SkBits2Float(0x43e888f5), SkBits2Float(0x43bd6854), SkBits2Float(0x43e69ced), SkBits2Float(0x43bf3668), SkBits2Float(0x43e5a6e9));  // 379.964f, 465.07f, 378.815f, 461.226f, 382.425f, 459.304f
6739 path.cubicTo(SkBits2Float(0x43bd6854), SkBits2Float(0x43e69d0e), SkBits2Float(0x43bdfb66), SkBits2Float(0x43e888f5), SkBits2Float(0x43bcde58), SkBits2Float(0x43e9c7ef));  // 378.815f, 461.227f, 379.964f, 465.07f, 377.737f, 467.562f
6740 path.close();
6741 path.moveTo(SkBits2Float(0x43bf3668), SkBits2Float(0x43ea9810));  // 382.425f, 469.188f
6742 path.lineTo(SkBits2Float(0x43bf3668), SkBits2Float(0x43ea9810));  // 382.425f, 469.188f
6743 path.close();
6744 path.moveTo(SkBits2Float(0x43bf3668), SkBits2Float(0x43ea9810));  // 382.425f, 469.188f
6745 path.cubicTo(SkBits2Float(0x43bebf5e), SkBits2Float(0x43e99e14), SkBits2Float(0x43bdc562), SkBits2Float(0x43e9d70a), SkBits2Float(0x43bcde58), SkBits2Float(0x43e9c810));  // 381.495f, 467.235f, 379.542f, 467.68f, 377.737f, 467.563f
6746 path.cubicTo(SkBits2Float(0x43bdc562), SkBits2Float(0x43e9d70a), SkBits2Float(0x43bebf5e), SkBits2Float(0x43e99df3), SkBits2Float(0x43bf3668), SkBits2Float(0x43ea9810));  // 379.542f, 467.68f, 381.495f, 467.234f, 382.425f, 469.188f
6747 path.close();
6748 path.moveTo(SkBits2Float(0x43c0c064), SkBits2Float(0x43e78000));  // 385.503f, 463
6749 path.lineTo(SkBits2Float(0x43c0c064), SkBits2Float(0x43e78000));  // 385.503f, 463
6750 path.close();
6751 path.moveTo(SkBits2Float(0x43c0c064), SkBits2Float(0x43e78000));  // 385.503f, 463
6752 path.cubicTo(SkBits2Float(0x43bfaf5e), SkBits2Float(0x43e7f9fc), SkBits2Float(0x43bfbe58), SkBits2Float(0x43e98b02), SkBits2Float(0x43bf3668), SkBits2Float(0x43ea9810));  // 383.37f, 463.953f, 383.487f, 467.086f, 382.425f, 469.188f
6753 path.cubicTo(SkBits2Float(0x43bfbe58), SkBits2Float(0x43e98b02), SkBits2Float(0x43bfaf5e), SkBits2Float(0x43e7f9fc), SkBits2Float(0x43c0c064), SkBits2Float(0x43e78000));  // 383.487f, 467.086f, 383.37f, 463.953f, 385.503f, 463
6754 path.close();
6755 path.moveTo(SkBits2Float(0x43c1316a), SkBits2Float(0x43e35efa));  // 386.386f, 454.742f
6756 path.lineTo(SkBits2Float(0x43c1316a), SkBits2Float(0x43e35efa));  // 386.386f, 454.742f
6757 path.close();
6758 path.moveTo(SkBits2Float(0x43c1316a), SkBits2Float(0x43e35efa));  // 386.386f, 454.742f
6759 path.cubicTo(SkBits2Float(0x43c35270), SkBits2Float(0x43e586ea), SkBits2Float(0x43beb064), SkBits2Float(0x43e561ec), SkBits2Float(0x43c0c064), SkBits2Float(0x43e78000));  // 390.644f, 459.054f, 381.378f, 458.765f, 385.503f, 463
6760 path.cubicTo(SkBits2Float(0x43beb064), SkBits2Float(0x43e5620c), SkBits2Float(0x43c35270), SkBits2Float(0x43e5870a), SkBits2Float(0x43c1316a), SkBits2Float(0x43e35efa));  // 381.378f, 458.766f, 390.644f, 459.055f, 386.386f, 454.742f
6761 path.close();
6762 path.moveTo(SkBits2Float(0x43c3e76e), SkBits2Float(0x43df2b02));  // 391.808f, 446.336f
6763 path.lineTo(SkBits2Float(0x43c3e76e), SkBits2Float(0x43df2b02));  // 391.808f, 446.336f
6764 path.close();
6765 path.moveTo(SkBits2Float(0x43c3e76e), SkBits2Float(0x43df2b02));  // 391.808f, 446.336f
6766 path.cubicTo(SkBits2Float(0x43c2ba60), SkBits2Float(0x43e07810), SkBits2Float(0x43c32a60), SkBits2Float(0x43e31106), SkBits2Float(0x43c1316a), SkBits2Float(0x43e35efa));  // 389.456f, 448.938f, 390.331f, 454.133f, 386.386f, 454.742f
6767 path.cubicTo(SkBits2Float(0x43c32a60), SkBits2Float(0x43e31106), SkBits2Float(0x43c2ba60), SkBits2Float(0x43e07811), SkBits2Float(0x43c3e76e), SkBits2Float(0x43df2b02));  // 390.331f, 454.133f, 389.456f, 448.938f, 391.808f, 446.336f
6768 path.close();
6769 path.moveTo(SkBits2Float(0x43c3e76e), SkBits2Float(0x43dd4000));  // 391.808f, 442.5f
6770 path.lineTo(SkBits2Float(0x43c3e76e), SkBits2Float(0x43dd4000));  // 391.808f, 442.5f
6771 path.close();
6772 path.moveTo(SkBits2Float(0x43c3e76e), SkBits2Float(0x43dd4000));  // 391.808f, 442.5f
6773 path.cubicTo(SkBits2Float(0x43c2a668), SkBits2Float(0x43ddbefa), SkBits2Float(0x43c35f7e), SkBits2Float(0x43def4fe), SkBits2Float(0x43c3e76e), SkBits2Float(0x43df2b02));  // 389.3f, 443.492f, 390.746f, 445.914f, 391.808f, 446.336f
6774 path.cubicTo(SkBits2Float(0x43c35f5e), SkBits2Float(0x43def4fe), SkBits2Float(0x43c2a668), SkBits2Float(0x43ddbefa), SkBits2Float(0x43c3e76e), SkBits2Float(0x43dd4000));  // 390.745f, 445.914f, 389.3f, 443.492f, 391.808f, 442.5f
6775 path.close();
6776 path.moveTo(SkBits2Float(0x43c44562), SkBits2Float(0x43ddb106));  // 392.542f, 443.383f
6777 path.lineTo(SkBits2Float(0x43c44562), SkBits2Float(0x43ddb106));  // 392.542f, 443.383f
6778 path.close();
6779 path.moveTo(SkBits2Float(0x43c44562), SkBits2Float(0x43ddb106));  // 392.542f, 443.383f
6780 path.lineTo(SkBits2Float(0x43c3e76e), SkBits2Float(0x43dd4000));  // 391.808f, 442.5f
6781 path.lineTo(SkBits2Float(0x43c44562), SkBits2Float(0x43ddb106));  // 392.542f, 443.383f
6782 path.close();
6783 path.moveTo(SkBits2Float(0x43c5145c), SkBits2Float(0x43dc82f2));  // 394.159f, 441.023f
6784 path.lineTo(SkBits2Float(0x43c44562), SkBits2Float(0x43ddb0e6));  // 392.542f, 443.382f
6785 path.lineTo(SkBits2Float(0x43c5145c), SkBits2Float(0x43dc82f2));  // 394.159f, 441.023f
6786 path.close();
6787     testSimplify(reporter, path, filename);
6788 }
6789 
joel_6(skiatest::Reporter * reporter,const char * filename)6790 static void joel_6(skiatest::Reporter* reporter, const char* filename) {
6791     SkPath path;
6792 path.moveTo(SkBits2Float(0x43c38c6a), SkBits2Float(0x43a739fc));  // 391.097f, 334.453f
6793 path.lineTo(SkBits2Float(0x43c36168), SkBits2Float(0x43a74efa));  // 390.761f, 334.617f
6794 path.lineTo(SkBits2Float(0x43c33666), SkBits2Float(0x43a6f7f0));  // 390.425f, 333.937f
6795 path.lineTo(SkBits2Float(0x43c36168), SkBits2Float(0x43a6e1ec));  // 390.761f, 333.765f
6796 path.lineTo(SkBits2Float(0x43c38c6a), SkBits2Float(0x43a739fc));  // 391.097f, 334.453f
6797 path.close();
6798 path.moveTo(SkBits2Float(0x43c39062), SkBits2Float(0x43a73810));  // 391.128f, 334.438f
6799 path.lineTo(SkBits2Float(0x43c3676c), SkBits2Float(0x43a75106));  // 390.808f, 334.633f
6800 path.lineTo(SkBits2Float(0x43c33374), SkBits2Float(0x43a6fefa));  // 390.402f, 333.992f
6801 path.lineTo(SkBits2Float(0x43c35d70), SkBits2Float(0x43a6e3f8));  // 390.73f, 333.781f
6802 path.lineTo(SkBits2Float(0x43c39062), SkBits2Float(0x43a73811));  // 391.128f, 334.438f
6803 path.lineTo(SkBits2Float(0x43c39062), SkBits2Float(0x43a73810));  // 391.128f, 334.438f
6804 path.close();
6805 path.moveTo(SkBits2Float(0x43e38958), SkBits2Float(0x43971c08));  // 455.073f, 302.219f
6806 path.lineTo(SkBits2Float(0x43e3824e), SkBits2Float(0x43973000));  // 455.018f, 302.375f
6807 path.lineTo(SkBits2Float(0x43e36f5c), SkBits2Float(0x439739fc));  // 454.87f, 302.453f
6808 path.lineTo(SkBits2Float(0x43e35a5e), SkBits2Float(0x43970df4));  // 454.706f, 302.109f
6809 path.lineTo(SkBits2Float(0x43e38958), SkBits2Float(0x43971c08));  // 455.073f, 302.219f
6810 path.close();
6811 path.moveTo(SkBits2Float(0x43e36f5c), SkBits2Float(0x439739fc));  // 454.87f, 302.453f
6812 path.lineTo(SkBits2Float(0x43c38c6a), SkBits2Float(0x43a739fc));  // 391.097f, 334.453f
6813 path.lineTo(SkBits2Float(0x43c36168), SkBits2Float(0x43a6e1ec));  // 390.761f, 333.765f
6814 path.lineTo(SkBits2Float(0x43e3445a), SkBits2Float(0x4396e1ec));  // 454.534f, 301.765f
6815 path.lineTo(SkBits2Float(0x43e36f5c), SkBits2Float(0x439739fc));  // 454.87f, 302.453f
6816 path.close();
6817 path.moveTo(SkBits2Float(0x43e41f5c), SkBits2Float(0x43946efa));  // 456.245f, 296.867f
6818 path.lineTo(SkBits2Float(0x43e4545a), SkBits2Float(0x439479fc));  // 456.659f, 296.953f
6819 path.lineTo(SkBits2Float(0x43e44354), SkBits2Float(0x4394acee));  // 456.526f, 297.351f
6820 path.lineTo(SkBits2Float(0x43e41646), SkBits2Float(0x43949efa));  // 456.174f, 297.242f
6821 path.lineTo(SkBits2Float(0x43e41f5d), SkBits2Float(0x43946efa));  // 456.245f, 296.867f
6822 path.lineTo(SkBits2Float(0x43e41f5c), SkBits2Float(0x43946efa));  // 456.245f, 296.867f
6823 path.close();
6824 path.moveTo(SkBits2Float(0x43e44354), SkBits2Float(0x4394ad0e));  // 456.526f, 297.352f
6825 path.lineTo(SkBits2Float(0x43e38958), SkBits2Float(0x43971c08));  // 455.073f, 302.219f
6826 path.lineTo(SkBits2Float(0x43e32b64), SkBits2Float(0x43970000));  // 454.339f, 302
6827 path.lineTo(SkBits2Float(0x43e3e76c), SkBits2Float(0x43949106));  // 455.808f, 297.133f
6828 path.lineTo(SkBits2Float(0x43e44353), SkBits2Float(0x4394ad0e));  // 456.526f, 297.352f
6829 path.lineTo(SkBits2Float(0x43e44354), SkBits2Float(0x4394ad0e));  // 456.526f, 297.352f
6830 path.close();
6831 path.moveTo(SkBits2Float(0x43e17d50), SkBits2Float(0x4393f20c));  // 450.979f, 295.891f
6832 path.lineTo(SkBits2Float(0x43e18e56), SkBits2Float(0x4393e810));  // 451.112f, 295.813f
6833 path.lineTo(SkBits2Float(0x43e1a148), SkBits2Float(0x4393eb02));  // 451.26f, 295.836f
6834 path.lineTo(SkBits2Float(0x43e19852), SkBits2Float(0x43941b02));  // 451.19f, 296.211f
6835 path.lineTo(SkBits2Float(0x43e17d50), SkBits2Float(0x4393f20c));  // 450.979f, 295.891f
6836 path.close();
6837 path.moveTo(SkBits2Float(0x43e1a169), SkBits2Float(0x4393eb02));  // 451.261f, 295.836f
6838 path.lineTo(SkBits2Float(0x43e41f5d), SkBits2Float(0x43946efa));  // 456.245f, 296.867f
6839 path.lineTo(SkBits2Float(0x43e40b65), SkBits2Float(0x4394cefa));  // 456.089f, 297.617f
6840 path.lineTo(SkBits2Float(0x43e18d71), SkBits2Float(0x43944b02));  // 451.105f, 296.586f
6841 path.lineTo(SkBits2Float(0x43e1a169), SkBits2Float(0x4393eb02));  // 451.261f, 295.836f
6842 path.close();
6843 path.moveTo(SkBits2Float(0x43c35d50), SkBits2Float(0x43a6e3f8));  // 390.729f, 333.781f
6844 path.lineTo(SkBits2Float(0x43e17d50), SkBits2Float(0x4393f1ec));  // 450.979f, 295.89f
6845 path.lineTo(SkBits2Float(0x43e1b148), SkBits2Float(0x439443f8));  // 451.385f, 296.531f
6846 path.lineTo(SkBits2Float(0x43c39042), SkBits2Float(0x43a737f0));  // 391.127f, 334.437f
6847 path.lineTo(SkBits2Float(0x43c35d50), SkBits2Float(0x43a6e3f8));  // 390.729f, 333.781f
6848 path.close();
6849 testSimplify(reporter, path, filename);
6850 }
6851 
joel_7(skiatest::Reporter * reporter,const char * filename)6852 static void joel_7(skiatest::Reporter* reporter, const char* filename) {
6853     SkPath path;
6854 path.moveTo(SkBits2Float(0x4321220c), SkBits2Float(0x43eac70a));  // 161.133f, 469.555f
6855 path.lineTo(SkBits2Float(0x4321220c), SkBits2Float(0x43eac70a));  // 161.133f, 469.555f
6856 path.lineTo(SkBits2Float(0x431f8e14), SkBits2Float(0x43eb3b02));  // 159.555f, 470.461f
6857 path.lineTo(SkBits2Float(0x4321220c), SkBits2Float(0x43eac70a));  // 161.133f, 469.555f
6858 path.close();
6859 path.moveTo(SkBits2Float(0x431e33f8), SkBits2Float(0x43f03b02));  // 158.203f, 480.461f
6860 path.lineTo(SkBits2Float(0x431e33f8), SkBits2Float(0x43f03b02));  // 158.203f, 480.461f
6861 path.lineTo(SkBits2Float(0x431e33f8), SkBits2Float(0x43f03b02));  // 158.203f, 480.461f
6862 path.lineTo(SkBits2Float(0x431d4c08), SkBits2Float(0x43ef720c));  // 157.297f, 478.891f
6863 path.lineTo(SkBits2Float(0x431e33f8), SkBits2Float(0x43f03b02));  // 158.203f, 480.461f
6864 path.close();
6865 path.moveTo(SkBits2Float(0x431c6419), SkBits2Float(0x43eea7f0));  // 156.391f, 477.312f
6866 path.cubicTo(SkBits2Float(0x431d6e15), SkBits2Float(0x43ee5ae2), SkBits2Float(0x431e2000), SkBits2Float(0x43ede000), SkBits2Float(0x431e69fc), SkBits2Float(0x43ed55e4));  // 157.43f, 476.71f, 158.125f, 475.75f, 158.414f, 474.671f
6867 path.cubicTo(SkBits2Float(0x431eb3f8), SkBits2Float(0x43eccbc8), SkBits2Float(0x431e93f8), SkBits2Float(0x43ec35e4), SkBits2Float(0x431df9db), SkBits2Float(0x43ebafe0));  // 158.703f, 473.592f, 158.578f, 472.421f, 157.976f, 471.374f
6868 path.lineTo(SkBits2Float(0x432121cb), SkBits2Float(0x43eac6ea));  // 161.132f, 469.554f
6869 path.cubicTo(SkBits2Float(0x432355c3), SkBits2Float(0x43ecb0e6), SkBits2Float(0x432207ae), SkBits2Float(0x43ef1fe0), SkBits2Float(0x431e33b7), SkBits2Float(0x43f03ae2));  // 163.335f, 473.382f, 162.03f, 478.249f, 158.202f, 480.46f
6870 path.lineTo(SkBits2Float(0x431c6419), SkBits2Float(0x43eea7f0));  // 156.391f, 477.312f
6871 path.close();
6872 path.moveTo(SkBits2Float(0x43134c08), SkBits2Float(0x43eec4fe));  // 147.297f, 477.539f
6873 path.lineTo(SkBits2Float(0x43134c08), SkBits2Float(0x43eec4fe));  // 147.297f, 477.539f
6874 path.lineTo(SkBits2Float(0x43134c08), SkBits2Float(0x43eec4fe));  // 147.297f, 477.539f
6875 path.lineTo(SkBits2Float(0x4314e20c), SkBits2Float(0x43ee5106));  // 148.883f, 476.633f
6876 path.lineTo(SkBits2Float(0x43134c08), SkBits2Float(0x43eec4fe));  // 147.297f, 477.539f
6877 path.close();
6878 path.moveTo(SkBits2Float(0x431673f8), SkBits2Float(0x43eddc08));  // 150.453f, 475.719f
6879 path.cubicTo(SkBits2Float(0x43170e15), SkBits2Float(0x43ee620c), SkBits2Float(0x43180000), SkBits2Float(0x43eebb02), SkBits2Float(0x43191604), SkBits2Float(0x43eee000));  // 151.055f, 476.766f, 152, 477.461f, 153.086f, 477.75f
6880 path.cubicTo(SkBits2Float(0x431a2c08), SkBits2Float(0x43ef04fe), SkBits2Float(0x431b5810), SkBits2Float(0x43eef4fe), SkBits2Float(0x431c6418), SkBits2Float(0x43eea7f0));  // 154.172f, 478.039f, 155.344f, 477.914f, 156.391f, 477.312f
6881 path.lineTo(SkBits2Float(0x431e33f7), SkBits2Float(0x43f03ae2));  // 158.203f, 480.46f
6882 path.cubicTo(SkBits2Float(0x431a620b), SkBits2Float(0x43f154de), SkBits2Float(0x4315820c), SkBits2Float(0x43f0add4), SkBits2Float(0x43134c07), SkBits2Float(0x43eec4de));  // 154.383f, 482.663f, 149.508f, 481.358f, 147.297f, 477.538f
6883 path.lineTo(SkBits2Float(0x431673f8), SkBits2Float(0x43eddc08));  // 150.453f, 475.719f
6884 path.close();
6885 path.moveTo(SkBits2Float(0x43163a1d), SkBits2Float(0x43e95106));  // 150.227f, 466.633f
6886 path.lineTo(SkBits2Float(0x43163a1d), SkBits2Float(0x43e95106));  // 150.227f, 466.633f
6887 path.lineTo(SkBits2Float(0x4317220d), SkBits2Float(0x43ea19fc));  // 151.133f, 468.203f
6888 path.lineTo(SkBits2Float(0x43163a1d), SkBits2Float(0x43e95106));  // 150.227f, 466.633f
6889 path.close();
6890 path.moveTo(SkBits2Float(0x43180c08), SkBits2Float(0x43eae3f8));  // 152.047f, 469.781f
6891 path.cubicTo(SkBits2Float(0x43170000), SkBits2Float(0x43eb31ec), SkBits2Float(0x43164e14), SkBits2Float(0x43ebabe8), SkBits2Float(0x43160418), SkBits2Float(0x43ec3604));  // 151, 470.39f, 150.305f, 471.343f, 150.016f, 472.422f
6892 path.cubicTo(SkBits2Float(0x4315ba1c), SkBits2Float(0x43ecc106), SkBits2Float(0x4315d810), SkBits2Float(0x43ed570a), SkBits2Float(0x43167439), SkBits2Float(0x43eddc08));  // 149.727f, 473.508f, 149.844f, 474.68f, 150.454f, 475.719f
6893 path.lineTo(SkBits2Float(0x43134c49), SkBits2Float(0x43eec4fe));  // 147.298f, 477.539f
6894 path.cubicTo(SkBits2Float(0x43111851), SkBits2Float(0x43ecdb02), SkBits2Float(0x43126830), SkBits2Float(0x43ea6c08), SkBits2Float(0x43163a5d), SkBits2Float(0x43e95106));  // 145.095f, 473.711f, 146.407f, 468.844f, 150.228f, 466.633f
6895 path.lineTo(SkBits2Float(0x43180c08), SkBits2Float(0x43eae3f8));  // 152.047f, 469.781f
6896 path.close();
6897 path.moveTo(SkBits2Float(0x431dfa1d), SkBits2Float(0x43ebb000));  // 157.977f, 471.375f
6898 path.cubicTo(SkBits2Float(0x431d620d), SkBits2Float(0x43eb29fc), SkBits2Float(0x431c6e15), SkBits2Float(0x43ead20c), SkBits2Float(0x431b5811), SkBits2Float(0x43eaad0e));  // 157.383f, 470.328f, 156.43f, 469.641f, 155.344f, 469.352f
6899 path.cubicTo(SkBits2Float(0x431a420d), SkBits2Float(0x43ea8810), SkBits2Float(0x43191605), SkBits2Float(0x43ea970a), SkBits2Float(0x43180c09), SkBits2Float(0x43eae418));  // 154.258f, 469.063f, 153.086f, 469.18f, 152.047f, 469.782f
6900 path.lineTo(SkBits2Float(0x43163a1d), SkBits2Float(0x43e95126));  // 150.227f, 466.634f
6901 path.cubicTo(SkBits2Float(0x431a0c09), SkBits2Float(0x43e8372a), SkBits2Float(0x431eec08), SkBits2Float(0x43e8de34), SkBits2Float(0x4321220d), SkBits2Float(0x43eac72a));  // 154.047f, 464.431f, 158.922f, 465.736f, 161.133f, 469.556f
6902 path.lineTo(SkBits2Float(0x431dfa1d), SkBits2Float(0x43ebb000));  // 157.977f, 471.375f
6903 path.close();
6904 testSimplify(reporter, path, filename);
6905 }
6906 
joel_8(skiatest::Reporter * reporter,const char * filename)6907 static void joel_8(skiatest::Reporter* reporter, const char* filename) {
6908     SkPath path;
6909 path.moveTo(SkBits2Float(0x42d97520), SkBits2Float(0x410ac429)); // 108.729f, 8.67289f
6910 path.cubicTo(SkBits2Float(0x42d97520), SkBits2Float(0x410ac429), SkBits2Float(0x42e9a9ce), SkBits2Float(0x41834e87), SkBits2Float(0x42e99c8c), SkBits2Float(0x41c5c960)); // 108.729f, 8.67289f, 116.832f, 16.4133f, 116.806f, 24.7233f
6911 path.cubicTo(SkBits2Float(0x42e98f49), SkBits2Float(0x4204221c), SkBits2Float(0x42d97520), SkBits2Float(0x4223825f), SkBits2Float(0x42d97520), SkBits2Float(0x4223825f)); // 116.78f, 33.0333f, 108.729f, 40.8773f, 108.729f, 40.8773f
6912 path.cubicTo(SkBits2Float(0x42d97520), SkBits2Float(0x4223825f), SkBits2Float(0x42dbbc54), SkBits2Float(0x42099f18), SkBits2Float(0x42d1cb74), SkBits2Float(0x41f77dc0)); // 108.729f, 40.8773f, 109.868f, 34.4054f, 104.897f, 30.9364f
6913 path.cubicTo(SkBits2Float(0x42c7da94), SkBits2Float(0x41dbbd4f), SkBits2Float(0x42b1b1a1), SkBits2Float(0x41d802fb), SkBits2Float(0x42b1b1a1), SkBits2Float(0x41d802fb)); // 99.9269f, 27.4674f, 88.8469f, 27.0015f, 88.8469f, 27.0015f
6914 path.cubicTo(SkBits2Float(0x42a75637), SkBits2Float(0x41d6909f), SkBits2Float(0x4296c543), SkBits2Float(0x41f1b139), SkBits2Float(0x4296c543), SkBits2Float(0x41f1b139)); // 83.6684f, 26.8206f, 75.3853f, 30.2115f, 75.3853f, 30.2115f
6915 path.lineTo(SkBits2Float(0x42824475), SkBits2Float(0x41c69d70)); // 65.1337f, 24.8269f
6916 path.lineTo(SkBits2Float(0x4296c543), SkBits2Float(0x419b89a8)); // 75.3853f, 19.4422f
6917 path.cubicTo(SkBits2Float(0x4296c543), SkBits2Float(0x419b89a8), SkBits2Float(0x42a6b798), SkBits2Float(0x41b89815), SkBits2Float(0x42b1b1a1), SkBits2Float(0x41b95c48)); // 75.3853f, 19.4422f, 83.3586f, 23.0743f, 88.8469f, 23.1701f
6918 path.cubicTo(SkBits2Float(0x42b1b1a1), SkBits2Float(0x41b95c48), SkBits2Float(0x42c80258), SkBits2Float(0x41b03f7a), SkBits2Float(0x42d1cb74), SkBits2Float(0x419340ee)); // 88.8469f, 23.1701f, 100.005f, 22.031f, 104.897f, 18.4067f
6919 path.cubicTo(SkBits2Float(0x42db9490), SkBits2Float(0x416c84c2), SkBits2Float(0x42d97520), SkBits2Float(0x410ac42a), SkBits2Float(0x42d97520), SkBits2Float(0x410ac42a)); // 109.79f, 14.7824f, 108.729f, 8.67289f, 108.729f, 8.67289f
6920 path.lineTo(SkBits2Float(0x42d97520), SkBits2Float(0x410ac429)); // 108.729f, 8.67289f
6921 path.close();
6922 testSimplify(reporter, path, filename);
6923 }
6924 
joel_9(skiatest::Reporter * reporter,const char * filename)6925 static void joel_9(skiatest::Reporter* reporter, const char* filename) {
6926 #if DEBUG_UNDER_DEVELOPMENT
6927 // fails with image mismatch
6928     SkPath path;
6929 path.moveTo(SkBits2Float(0x4310dbe7), SkBits2Float(0x438e9604));  // 144.859f, 285.172f
6930 path.lineTo(SkBits2Float(0x4310dbe7), SkBits2Float(0x438e9604));  // 144.859f, 285.172f
6931 path.lineTo(SkBits2Float(0x4310dbe7), SkBits2Float(0x438e9604));  // 144.859f, 285.172f
6932 path.lineTo(SkBits2Float(0x430f21ca), SkBits2Float(0x438e4efa));  // 143.132f, 284.617f
6933 path.lineTo(SkBits2Float(0x4310dbe7), SkBits2Float(0x438e9604));  // 144.859f, 285.172f
6934 path.close();
6935 path.moveTo(SkBits2Float(0x4307ec08), SkBits2Float(0x438f6c08));  // 135.922f, 286.844f
6936 path.lineTo(SkBits2Float(0x4307ec08), SkBits2Float(0x438f6c08));  // 135.922f, 286.844f
6937 path.lineTo(SkBits2Float(0x4307ec08), SkBits2Float(0x438f6c08));  // 135.922f, 286.844f
6938 path.lineTo(SkBits2Float(0x43075df4), SkBits2Float(0x43904916));  // 135.367f, 288.571f
6939 path.lineTo(SkBits2Float(0x4307ec08), SkBits2Float(0x438f6c08));  // 135.922f, 286.844f
6940 path.close();
6941 path.moveTo(SkBits2Float(0x4307ec08), SkBits2Float(0x438f6c08));  // 135.922f, 286.844f
6942 path.cubicTo(SkBits2Float(0x430911eb), SkBits2Float(0x438f9c08), SkBits2Float(0x430a3df4), SkBits2Float(0x438f8b02), SkBits2Float(0x430b3df4), SkBits2Float(0x438f49fc));  // 137.07f, 287.219f, 138.242f, 287.086f, 139.242f, 286.578f
6943 path.cubicTo(SkBits2Float(0x430c3be8), SkBits2Float(0x438f09fc), SkBits2Float(0x430d07f0), SkBits2Float(0x438e99fc), SkBits2Float(0x430d67f0), SkBits2Float(0x438e070a));  // 140.234f, 286.078f, 141.031f, 285.203f, 141.406f, 284.055f
6944 path.lineTo(SkBits2Float(0x4310dbe8), SkBits2Float(0x438e9604));  // 144.859f, 285.172f
6945 path.cubicTo(SkBits2Float(0x430f7df4), SkBits2Float(0x4390b000), SkBits2Float(0x430afdf4), SkBits2Float(0x4391d3f8), SkBits2Float(0x4306cc09), SkBits2Float(0x43912604));  // 143.492f, 289.375f, 138.992f, 291.656f, 134.797f, 290.297f
6946 path.lineTo(SkBits2Float(0x4307ec08), SkBits2Float(0x438f6c08));  // 135.922f, 286.844f
6947 path.close();
6948 path.moveTo(SkBits2Float(0x4301ae14), SkBits2Float(0x438c1efa));  // 129.68f, 280.242f
6949 path.lineTo(SkBits2Float(0x4301ae14), SkBits2Float(0x438c1efa));  // 129.68f, 280.242f
6950 path.lineTo(SkBits2Float(0x4301ae14), SkBits2Float(0x438c1efa));  // 129.68f, 280.242f
6951 path.lineTo(SkBits2Float(0x43036831), SkBits2Float(0x438c66ea));  // 131.407f, 280.804f
6952 path.lineTo(SkBits2Float(0x4301ae14), SkBits2Float(0x438c1efa));  // 129.68f, 280.242f
6953 path.close();
6954 path.moveTo(SkBits2Float(0x4305220c), SkBits2Float(0x438caefa));  // 133.133f, 281.367f
6955 path.cubicTo(SkBits2Float(0x4304c20c), SkBits2Float(0x438d4106), SkBits2Float(0x4304e20c), SkBits2Float(0x438dd7f0), SkBits2Float(0x43056418), SkBits2Float(0x438e56ea));  // 132.758f, 282.508f, 132.883f, 283.687f, 133.391f, 284.679f
6956 path.cubicTo(SkBits2Float(0x4305e831), SkBits2Float(0x438ed6ea), SkBits2Float(0x4306c624), SkBits2Float(0x438f3be8), SkBits2Float(0x4307ec08), SkBits2Float(0x438f6be8));  // 133.907f, 285.679f, 134.774f, 286.468f, 135.922f, 286.843f
6957 path.lineTo(SkBits2Float(0x4306cc08), SkBits2Float(0x439125e4));  // 134.797f, 290.296f
6958 path.cubicTo(SkBits2Float(0x43029a1c), SkBits2Float(0x439076ea), SkBits2Float(0x43005021), SkBits2Float(0x438e37f0), SkBits2Float(0x4301ae14), SkBits2Float(0x438c1eda));  // 130.602f, 288.929f, 128.313f, 284.437f, 129.68f, 280.241f
6959 path.lineTo(SkBits2Float(0x4305220c), SkBits2Float(0x438caefa));  // 133.133f, 281.367f
6960 path.close();
6961 path.moveTo(SkBits2Float(0x430bbdf4), SkBits2Float(0x43898efa));  // 139.742f, 275.117f
6962 path.lineTo(SkBits2Float(0x430bbdf4), SkBits2Float(0x43898efa));  // 139.742f, 275.117f
6963 path.lineTo(SkBits2Float(0x430b2e15), SkBits2Float(0x438a6c08));  // 139.18f, 276.844f
6964 path.lineTo(SkBits2Float(0x430bbdf4), SkBits2Float(0x43898efa));  // 139.742f, 275.117f
6965 path.close();
6966 path.moveTo(SkBits2Float(0x430a9be7), SkBits2Float(0x438b48f6));  // 138.609f, 278.57f
6967 path.cubicTo(SkBits2Float(0x43097604), SkBits2Float(0x438b19fc), SkBits2Float(0x43084c08), SkBits2Float(0x438b29fc), SkBits2Float(0x43074c08), SkBits2Float(0x438b6b02));  // 137.461f, 278.203f, 136.297f, 278.328f, 135.297f, 278.836f
6968 path.cubicTo(SkBits2Float(0x43064c08), SkBits2Float(0x438bac08), SkBits2Float(0x4305820c), SkBits2Float(0x438c1c08), SkBits2Float(0x4305220c), SkBits2Float(0x438caefa));  // 134.297f, 279.344f, 133.508f, 280.219f, 133.133f, 281.367f
6969 path.lineTo(SkBits2Float(0x4301ae14), SkBits2Float(0x438c1efa));  // 129.68f, 280.242f
6970 path.cubicTo(SkBits2Float(0x43030c08), SkBits2Float(0x438a04fe), SkBits2Float(0x430789fb), SkBits2Float(0x4388e106), SkBits2Float(0x430bbdf3), SkBits2Float(0x43898efa));  // 131.047f, 276.039f, 135.539f, 273.758f, 139.742f, 275.117f
6971 path.lineTo(SkBits2Float(0x430a9be7), SkBits2Float(0x438b48f6));  // 138.609f, 278.57f
6972 path.close();
6973 path.moveTo(SkBits2Float(0x430d67f0), SkBits2Float(0x438e070a));  // 141.406f, 284.055f
6974 path.cubicTo(SkBits2Float(0x430dc5e4), SkBits2Float(0x438d7418), SkBits2Float(0x430da5e4), SkBits2Float(0x438cde14), SkBits2Float(0x430d25e4), SkBits2Float(0x438c5e14));  // 141.773f, 282.907f, 141.648f, 281.735f, 141.148f, 280.735f
6975 path.cubicTo(SkBits2Float(0x430ca001), SkBits2Float(0x438bde14), SkBits2Float(0x430bc1cb), SkBits2Float(0x438b7916), SkBits2Float(0x430a9be8), SkBits2Float(0x438b4916));  // 140.625f, 279.735f, 139.757f, 278.946f, 138.609f, 278.571f
6976 path.lineTo(SkBits2Float(0x430bbdf4), SkBits2Float(0x43898f1a));  // 139.742f, 275.118f
6977 path.cubicTo(SkBits2Float(0x430fefe0), SkBits2Float(0x438a3f1a), SkBits2Float(0x43123811), SkBits2Float(0x438c7d0e), SkBits2Float(0x4310dbe8), SkBits2Float(0x438e9624));  // 143.937f, 276.493f, 146.219f, 280.977f, 144.859f, 285.173f
6978 path.lineTo(SkBits2Float(0x430d67f0), SkBits2Float(0x438e070a));  // 141.406f, 284.055f
6979 path.close();
6980 testSimplify(reporter, path, filename);
6981 #endif
6982 }
6983 
joel_10(skiatest::Reporter * reporter,const char * filename)6984 static void joel_10(skiatest::Reporter* reporter, const char* filename) {
6985 #if DEBUG_UNDER_DEVELOPMENT
6986 // fails with image mismatch
6987     SkPath path;
6988 path.moveTo(SkBits2Float(0x440fc979), SkBits2Float(0x43d88000));  // 575.148f, 433
6989 path.lineTo(SkBits2Float(0x440fc979), SkBits2Float(0x43d88000));  // 575.148f, 433
6990 path.lineTo(SkBits2Float(0x440fc979), SkBits2Float(0x43d88000));  // 575.148f, 433
6991 path.lineTo(SkBits2Float(0x44103800), SkBits2Float(0x43d8c7f0));  // 576.875f, 433.562f
6992 path.lineTo(SkBits2Float(0x440fc979), SkBits2Float(0x43d88000));  // 575.148f, 433
6993 path.close();
6994 path.moveTo(SkBits2Float(0x44124d81), SkBits2Float(0x43d5f000));  // 585.211f, 427.875f
6995 path.lineTo(SkBits2Float(0x44124d81), SkBits2Float(0x43d5f000));  // 585.211f, 427.875f
6996 path.lineTo(SkBits2Float(0x44122906), SkBits2Float(0x43d6cdf4));  // 584.641f, 429.609f
6997 path.lineTo(SkBits2Float(0x44124d81), SkBits2Float(0x43d5f000));  // 585.211f, 427.875f
6998 path.close();
6999 path.moveTo(SkBits2Float(0x44120581), SkBits2Float(0x43d7ab02));  // 584.086f, 431.336f
7000 path.cubicTo(SkBits2Float(0x4411bc08), SkBits2Float(0x43d77b02), SkBits2Float(0x44117083), SkBits2Float(0x43d78b02), SkBits2Float(0x44113106), SkBits2Float(0x43d7cc08));  // 582.938f, 430.961f, 581.758f, 431.086f, 580.766f, 431.594f
7001 path.cubicTo(SkBits2Float(0x4410f189), SkBits2Float(0x43d80d0e), SkBits2Float(0x4410be87), SkBits2Float(0x43d87d0e), SkBits2Float(0x4410a687), SkBits2Float(0x43d91000));  // 579.774f, 432.102f, 578.977f, 432.977f, 578.602f, 434.125f
7002 path.lineTo(SkBits2Float(0x440fc979), SkBits2Float(0x43d88000));  // 575.148f, 433
7003 path.cubicTo(SkBits2Float(0x441020f6), SkBits2Float(0x43d66604), SkBits2Float(0x441140f6), SkBits2Float(0x43d5420c), SkBits2Float(0x44124d71), SkBits2Float(0x43d5f000));  // 576.515f, 428.797f, 581.015f, 426.516f, 585.21f, 427.875f
7004 path.lineTo(SkBits2Float(0x44120581), SkBits2Float(0x43d7ab02));  // 584.086f, 431.336f
7005 path.close();
7006 path.moveTo(SkBits2Float(0x441394fe), SkBits2Float(0x43daf810));  // 590.328f, 437.938f
7007 path.lineTo(SkBits2Float(0x441394fe), SkBits2Float(0x43daf810));  // 590.328f, 437.938f
7008 path.lineTo(SkBits2Float(0x441394fe), SkBits2Float(0x43daf810));  // 590.328f, 437.938f
7009 path.lineTo(SkBits2Float(0x44132677), SkBits2Float(0x43dab020));  // 588.601f, 437.376f
7010 path.lineTo(SkBits2Float(0x441394fe), SkBits2Float(0x43daf810));  // 590.328f, 437.938f
7011 path.close();
7012 path.moveTo(SkBits2Float(0x4412b800), SkBits2Float(0x43da67f0));  // 586.875f, 436.812f
7013 path.cubicTo(SkBits2Float(0x4412d000), SkBits2Float(0x43d9d4fe), SkBits2Float(0x4412c800), SkBits2Float(0x43d94000), SkBits2Float(0x4412a77d), SkBits2Float(0x43d8befa));  // 587.25f, 435.664f, 587.125f, 434.5f, 586.617f, 433.492f
7014 path.cubicTo(SkBits2Float(0x44128677), SkBits2Float(0x43d84000), SkBits2Float(0x44124efa), SkBits2Float(0x43d7d9fc), SkBits2Float(0x44120581), SkBits2Float(0x43d7ab02));  // 586.101f, 432.5f, 585.234f, 431.703f, 584.086f, 431.336f
7015 path.lineTo(SkBits2Float(0x44124d81), SkBits2Float(0x43d5f000));  // 585.211f, 427.875f
7016 path.cubicTo(SkBits2Float(0x441359fc), SkBits2Float(0x43d69efa), SkBits2Float(0x4413ec7b), SkBits2Float(0x43d8ddf4), SkBits2Float(0x441394fe), SkBits2Float(0x43daf7f0));  // 589.406f, 429.242f, 591.695f, 433.734f, 590.328f, 437.937f
7017 path.lineTo(SkBits2Float(0x4412b800), SkBits2Float(0x43da67f0));  // 586.875f, 436.812f
7018 path.close();
7019 path.moveTo(SkBits2Float(0x44111106), SkBits2Float(0x43dd870a));  // 580.266f, 443.055f
7020 path.lineTo(SkBits2Float(0x44111106), SkBits2Float(0x43dd870a));  // 580.266f, 443.055f
7021 path.lineTo(SkBits2Float(0x44111106), SkBits2Float(0x43dd870a));  // 580.266f, 443.055f
7022 path.lineTo(SkBits2Float(0x441134fe), SkBits2Float(0x43dca9fc));  // 580.828f, 441.328f
7023 path.lineTo(SkBits2Float(0x44111106), SkBits2Float(0x43dd870a));  // 580.266f, 443.055f
7024 path.close();
7025 path.moveTo(SkBits2Float(0x44115979), SkBits2Float(0x43dbcd0e));  // 581.398f, 439.602f
7026 path.cubicTo(SkBits2Float(0x4411a27f), SkBits2Float(0x43dbfc08), SkBits2Float(0x4411ed71), SkBits2Float(0x43dbed0e), SkBits2Float(0x44122d71), SkBits2Float(0x43dbac08));  // 582.539f, 439.969f, 583.71f, 439.852f, 584.71f, 439.344f
7027 path.cubicTo(SkBits2Float(0x44126cee), SkBits2Float(0x43db6b02), SkBits2Float(0x44129ff0), SkBits2Float(0x43dafb02), SkBits2Float(0x4412b7f0), SkBits2Float(0x43da6810));  // 585.702f, 438.836f, 586.499f, 437.961f, 586.874f, 436.813f
7028 path.lineTo(SkBits2Float(0x441394ee), SkBits2Float(0x43daf810));  // 590.327f, 437.938f
7029 path.cubicTo(SkBits2Float(0x44133cee), SkBits2Float(0x43dd1106), SkBits2Float(0x44121df4), SkBits2Float(0x43de3604), SkBits2Float(0x441110f6), SkBits2Float(0x43dd870a));  // 588.952f, 442.133f, 584.468f, 444.422f, 580.265f, 443.055f
7030 path.lineTo(SkBits2Float(0x44115979), SkBits2Float(0x43dbcd0e));  // 581.398f, 439.602f
7031 path.close();
7032 path.moveTo(SkBits2Float(0x4410a687), SkBits2Float(0x43d91000));  // 578.602f, 434.125f
7033 path.cubicTo(SkBits2Float(0x44108f0a), SkBits2Float(0x43d9a2f2), SkBits2Float(0x44109687), SkBits2Float(0x43da37f0), SkBits2Float(0x4410b70a), SkBits2Float(0x43dab8f6));  // 578.235f, 435.273f, 578.352f, 436.437f, 578.86f, 437.445f
7034 path.cubicTo(SkBits2Float(0x4410d78d), SkBits2Float(0x43db37f0), SkBits2Float(0x44111010), SkBits2Float(0x43db9cee), SkBits2Float(0x44115989), SkBits2Float(0x43dbccee));  // 579.368f, 438.437f, 580.251f, 439.226f, 581.399f, 439.601f
7035 path.lineTo(SkBits2Float(0x44111106), SkBits2Float(0x43dd86ea));  // 580.266f, 443.054f
7036 path.cubicTo(SkBits2Float(0x4410048b), SkBits2Float(0x43dcd7f0), SkBits2Float(0x440f720c), SkBits2Float(0x43da99dc), SkBits2Float(0x440fc989), SkBits2Float(0x43d87fe0));  // 576.071f, 441.687f, 573.782f, 437.202f, 575.149f, 432.999f
7037 path.lineTo(SkBits2Float(0x4410a687), SkBits2Float(0x43d91000));  // 578.602f, 434.125f
7038 path.close();
7039 testSimplify(reporter, path, filename);
7040 #endif
7041 }
7042 
joel_11(skiatest::Reporter * reporter,const char * filename)7043 static void joel_11(skiatest::Reporter* reporter, const char* filename) {
7044 #if DEBUG_UNDER_DEVELOPMENT
7045 // fails with image mismatch
7046     SkPath path;
7047 path.moveTo(SkBits2Float(0x43c9d000), SkBits2Float(0x4411977d));  // 403.625f, 582.367f
7048 path.lineTo(SkBits2Float(0x43c9d000), SkBits2Float(0x4411977d));  // 403.625f, 582.367f
7049 path.lineTo(SkBits2Float(0x43c9d000), SkBits2Float(0x4411977d));  // 403.625f, 582.367f
7050 path.lineTo(SkBits2Float(0x43ca0106), SkBits2Float(0x441208f6));  // 404.008f, 584.14f
7051 path.lineTo(SkBits2Float(0x43c9d000), SkBits2Float(0x4411977d));  // 403.625f, 582.367f
7052 path.close();
7053 path.moveTo(SkBits2Float(0x43ce8d0e), SkBits2Float(0x44132106));  // 413.102f, 588.516f
7054 path.lineTo(SkBits2Float(0x43ce8d0e), SkBits2Float(0x44132106));  // 413.102f, 588.516f
7055 path.lineTo(SkBits2Float(0x43ce8d0e), SkBits2Float(0x44132106));  // 413.102f, 588.516f
7056 path.lineTo(SkBits2Float(0x43cda916), SkBits2Float(0x44133989));  // 411.321f, 588.899f
7057 path.lineTo(SkBits2Float(0x43ce8d0e), SkBits2Float(0x44132106));  // 413.102f, 588.516f
7058 path.close();
7059 path.moveTo(SkBits2Float(0x43ccc4fe), SkBits2Float(0x44135179));  // 409.539f, 589.273f
7060 path.cubicTo(SkBits2Float(0x43cca604), SkBits2Float(0x44130571), SkBits2Float(0x43cc4c08), SkBits2Float(0x4412c8f6), SkBits2Float(0x43cbd4fe), SkBits2Float(0x4412a179));  // 409.297f, 588.085f, 408.594f, 587.14f, 407.664f, 586.523f
7061 path.cubicTo(SkBits2Float(0x43cb5c08), SkBits2Float(0x44127a7f), SkBits2Float(0x43cac7f0), SkBits2Float(0x44126af2), SkBits2Float(0x43ca3106), SkBits2Float(0x44127af2));  // 406.719f, 585.914f, 405.562f, 585.671f, 404.383f, 585.921f
7062 path.lineTo(SkBits2Float(0x43c9d000), SkBits2Float(0x4411976d));  // 403.625f, 582.366f
7063 path.cubicTo(SkBits2Float(0x43cbf9fc), SkBits2Float(0x44115cee), SkBits2Float(0x43ce170a), SkBits2Float(0x44120cee), SkBits2Float(0x43ce8d0e), SkBits2Float(0x441320e6));  // 407.953f, 581.452f, 412.18f, 584.202f, 413.102f, 588.514f
7064 path.lineTo(SkBits2Float(0x43ccc4fe), SkBits2Float(0x44135179));  // 409.539f, 589.273f
7065 path.close();
7066 path.moveTo(SkBits2Float(0x43cb78f6), SkBits2Float(0x44157efa));  // 406.945f, 597.984f
7067 path.lineTo(SkBits2Float(0x43cb78f6), SkBits2Float(0x44157f7d));  // 406.945f, 597.992f
7068 path.lineTo(SkBits2Float(0x43cb78f6), SkBits2Float(0x44157efa));  // 406.945f, 597.984f
7069 path.lineTo(SkBits2Float(0x43cb49fc), SkBits2Float(0x44150d81));  // 406.578f, 596.211f
7070 path.lineTo(SkBits2Float(0x43cb78f6), SkBits2Float(0x44157efa));  // 406.945f, 597.984f
7071 path.close();
7072 path.moveTo(SkBits2Float(0x43cb18f6), SkBits2Float(0x44149b85));  // 406.195f, 594.43f
7073 path.cubicTo(SkBits2Float(0x43cbb000), SkBits2Float(0x44148b85), SkBits2Float(0x43cc28f6), SkBits2Float(0x44145f0a), SkBits2Float(0x43cc76ea), SkBits2Float(0x44142302));  // 407.375f, 594.18f, 408.32f, 593.485f, 408.929f, 592.547f
7074 path.cubicTo(SkBits2Float(0x43ccc4de), SkBits2Float(0x4413e687), SkBits2Float(0x43cce4de), SkBits2Float(0x44139cfe), SkBits2Float(0x43ccc4de), SkBits2Float(0x44135189));  // 409.538f, 591.602f, 409.788f, 590.453f, 409.538f, 589.274f
7075 path.lineTo(SkBits2Float(0x43ce8cce), SkBits2Float(0x44132106));  // 413.1f, 588.516f
7076 path.cubicTo(SkBits2Float(0x43cf00c6), SkBits2Float(0x44143581), SkBits2Float(0x43cda2d2), SkBits2Float(0x44154408), SkBits2Float(0x43cb78d6), SkBits2Float(0x44157f0a));  // 414.006f, 592.836f, 411.272f, 597.063f, 406.944f, 597.985f
7077 path.lineTo(SkBits2Float(0x43cb18f6), SkBits2Float(0x44149b85));  // 406.195f, 594.43f
7078 path.close();
7079 path.moveTo(SkBits2Float(0x43c883f8), SkBits2Float(0x4413c4fe));  // 401.031f, 591.078f
7080 path.lineTo(SkBits2Float(0x43c883f8), SkBits2Float(0x4413c4fe));  // 401.031f, 591.078f
7081 path.lineTo(SkBits2Float(0x43c883f8), SkBits2Float(0x4413c4fe));  // 401.031f, 591.078f
7082 path.lineTo(SkBits2Float(0x43c7a106), SkBits2Float(0x4413dd81));  // 399.258f, 591.461f
7083 path.lineTo(SkBits2Float(0x43c883f8), SkBits2Float(0x4413c4fe));  // 401.031f, 591.078f
7084 path.close();
7085 path.moveTo(SkBits2Float(0x43c883f8), SkBits2Float(0x4413c4fe));  // 401.031f, 591.078f
7086 path.cubicTo(SkBits2Float(0x43c8a4fe), SkBits2Float(0x44141083), SkBits2Float(0x43c8fdf4), SkBits2Float(0x44144d81), SkBits2Float(0x43c974fe), SkBits2Float(0x4414747b));  // 401.289f, 592.258f, 401.984f, 593.211f, 402.914f, 593.82f
7087 path.cubicTo(SkBits2Float(0x43c9edf4), SkBits2Float(0x44149b75), SkBits2Float(0x43ca820c), SkBits2Float(0x4414ab75), SkBits2Float(0x43cb18f6), SkBits2Float(0x44149b75));  // 403.859f, 594.429f, 405.016f, 594.679f, 406.195f, 594.429f
7088 path.lineTo(SkBits2Float(0x43cb78f6), SkBits2Float(0x44157efa));  // 406.945f, 597.984f
7089 path.cubicTo(SkBits2Float(0x43c95000), SkBits2Float(0x4415b979), SkBits2Float(0x43c732f2), SkBits2Float(0x441509fc), SkBits2Float(0x43c6bcee), SkBits2Float(0x4413f581));  // 402.625f, 598.898f, 398.398f, 596.156f, 397.476f, 591.836f
7090 path.lineTo(SkBits2Float(0x43c883f8), SkBits2Float(0x4413c4fe));  // 401.031f, 591.078f
7091 path.close();
7092 path.moveTo(SkBits2Float(0x43ca3106), SkBits2Float(0x44127b02));  // 404.383f, 585.922f
7093 path.cubicTo(SkBits2Float(0x43c999fc), SkBits2Float(0x44128b02), SkBits2Float(0x43c92000), SkBits2Float(0x4412b77d), SkBits2Float(0x43c8d20c), SkBits2Float(0x4412f408));  // 403.203f, 586.172f, 402.25f, 586.867f, 401.641f, 587.813f
7094 path.cubicTo(SkBits2Float(0x43c88418), SkBits2Float(0x44133010), SkBits2Float(0x43c86418), SkBits2Float(0x44137989), SkBits2Float(0x43c88418), SkBits2Float(0x4413c50e));  // 401.032f, 588.751f, 400.782f, 589.899f, 401.032f, 591.079f
7095 path.lineTo(SkBits2Float(0x43c6bd0e), SkBits2Float(0x4413f591));  // 397.477f, 591.837f
7096 path.cubicTo(SkBits2Float(0x43c64810), SkBits2Float(0x4412e116), SkBits2Float(0x43c7a70a), SkBits2Float(0x4411d28f), SkBits2Float(0x43c9d000), SkBits2Float(0x4411978d));  // 396.563f, 587.517f, 399.305f, 583.29f, 403.625f, 582.368f
7097 path.lineTo(SkBits2Float(0x43ca3106), SkBits2Float(0x44127b02));  // 404.383f, 585.922f
7098 path.close();
7099 testSimplify(reporter, path, filename);
7100 #endif
7101 }
7102 
make_joel_12(SkPath & path)7103 static void make_joel_12(SkPath& path) {
7104 path.moveTo(SkBits2Float(0x4324e9fc), SkBits2Float(0x437211ec));  // 164.914f, 242.07f
7105 path.lineTo(SkBits2Float(0x4324e9fc), SkBits2Float(0x437211ec));  // 164.914f, 242.07f
7106 path.lineTo(SkBits2Float(0x4324e9fc), SkBits2Float(0x437211ec));  // 164.914f, 242.07f
7107 path.lineTo(SkBits2Float(0x43235810), SkBits2Float(0x437129fc));  // 163.344f, 241.164f
7108 path.lineTo(SkBits2Float(0x4324e9fc), SkBits2Float(0x437211ec));  // 164.914f, 242.07f
7109 path.close();
7110 path.moveTo(SkBits2Float(0x431a020c), SkBits2Float(0x4374fdf4));  // 154.008f, 244.992f
7111 path.lineTo(SkBits2Float(0x431a020c), SkBits2Float(0x4374fdf4));  // 154.008f, 244.992f
7112 path.lineTo(SkBits2Float(0x431a020c), SkBits2Float(0x4374fdf4));  // 154.008f, 244.992f
7113 path.lineTo(SkBits2Float(0x431aec08), SkBits2Float(0x437369fc));  // 154.922f, 243.414f
7114 path.lineTo(SkBits2Float(0x431a020c), SkBits2Float(0x4374fdf4));  // 154.008f, 244.992f
7115 path.close();
7116 path.moveTo(SkBits2Float(0x431bd3f8), SkBits2Float(0x4371d810));  // 155.828f, 241.844f
7117 path.cubicTo(SkBits2Float(0x431ce000), SkBits2Float(0x4372722d), SkBits2Float(0x431e0e15), SkBits2Float(0x43729020), SkBits2Float(0x431f2000), SkBits2Float(0x43724831));  // 156.875f, 242.446f, 158.055f, 242.563f, 159.125f, 242.282f
7118 path.cubicTo(SkBits2Float(0x43203604), SkBits2Float(0x4371fe35), SkBits2Float(0x43212c08), SkBits2Float(0x43714a3d), SkBits2Float(0x4321c5e3), SkBits2Float(0x43704041));  // 160.211f, 241.993f, 161.172f, 241.29f, 161.773f, 240.251f
7119 path.lineTo(SkBits2Float(0x4324e9fc), SkBits2Float(0x4372122d));  // 164.914f, 242.071f
7120 path.cubicTo(SkBits2Float(0x4322b3f8), SkBits2Float(0x4375e419), SkBits2Float(0x431dd810), SkBits2Float(0x4377322d), SkBits2Float(0x431a020c), SkBits2Float(0x4374fe35));  // 162.703f, 245.891f, 157.844f, 247.196f, 154.008f, 244.993f
7121 path.lineTo(SkBits2Float(0x431bd3f8), SkBits2Float(0x4371d810));  // 155.828f, 241.844f
7122 path.close();
7123 path.moveTo(SkBits2Float(0x43171810), SkBits2Float(0x436a1604));  // 151.094f, 234.086f
7124 path.lineTo(SkBits2Float(0x43171810), SkBits2Float(0x436a1604));  // 151.094f, 234.086f
7125 path.lineTo(SkBits2Float(0x43171810), SkBits2Float(0x436a1604));  // 151.094f, 234.086f
7126 path.lineTo(SkBits2Float(0x4318a9fc), SkBits2Float(0x436afdf4));  // 152.664f, 234.992f
7127 path.lineTo(SkBits2Float(0x43171810), SkBits2Float(0x436a1604));  // 151.094f, 234.086f
7128 path.close();
7129 path.moveTo(SkBits2Float(0x431a4000), SkBits2Float(0x436be7f0));  // 154.25f, 235.906f
7130 path.cubicTo(SkBits2Float(0x4319a20c), SkBits2Float(0x436cf3f8), SkBits2Float(0x431985e3), SkBits2Float(0x436e1df4), SkBits2Float(0x4319ce14), SkBits2Float(0x436f33f8));  // 153.633f, 236.953f, 153.523f, 238.117f, 153.805f, 239.203f
7131 path.cubicTo(SkBits2Float(0x431a1a1c), SkBits2Float(0x437047f0), SkBits2Float(0x431ac831), SkBits2Float(0x43713df4), SkBits2Float(0x431bd3f7), SkBits2Float(0x4371d811));  // 154.102f, 240.281f, 154.782f, 241.242f, 155.828f, 241.844f
7132 path.lineTo(SkBits2Float(0x431a020b), SkBits2Float(0x4374fdf4));  // 154.008f, 244.992f
7133 path.cubicTo(SkBits2Float(0x4316322c), SkBits2Float(0x4372c5e4), SkBits2Float(0x4314e417), SkBits2Float(0x436de9fc), SkBits2Float(0x4317180f), SkBits2Float(0x436a1604));  // 150.196f, 242.773f, 148.891f, 237.914f, 151.094f, 234.086f
7134 path.lineTo(SkBits2Float(0x431a4000), SkBits2Float(0x436be7f0));  // 154.25f, 235.906f
7135 path.close();
7136 path.moveTo(SkBits2Float(0x43220000), SkBits2Float(0x436729fc));  // 162, 231.164f
7137 path.lineTo(SkBits2Float(0x43220000), SkBits2Float(0x436729fc));  // 162, 231.164f
7138 path.lineTo(SkBits2Float(0x43220000), SkBits2Float(0x436729fc));  // 162, 231.164f
7139 path.lineTo(SkBits2Float(0x43211810), SkBits2Float(0x4368bbe8));  // 161.094f, 232.734f
7140 path.lineTo(SkBits2Float(0x43220000), SkBits2Float(0x436729fc));  // 162, 231.164f
7141 path.close();
7142 path.moveTo(SkBits2Float(0x43202e14), SkBits2Float(0x436a4fdf));  // 160.18f, 234.312f
7143 path.cubicTo(SkBits2Float(0x431f2418), SkBits2Float(0x4369b5c2), SkBits2Float(0x431df810), SkBits2Float(0x436995c2), SkBits2Float(0x431ce20c), SkBits2Float(0x4369dfbe));  // 159.141f, 233.71f, 157.969f, 233.585f, 156.883f, 233.874f
7144 path.cubicTo(SkBits2Float(0x431bcc08), SkBits2Float(0x436a2bc6), SkBits2Float(0x431ad810), SkBits2Float(0x436adba5), SkBits2Float(0x431a4000), SkBits2Float(0x436be7ae));  // 155.797f, 234.171f, 154.844f, 234.858f, 154.25f, 235.905f
7145 path.lineTo(SkBits2Float(0x43171810), SkBits2Float(0x436a15c2));  // 151.094f, 234.085f
7146 path.cubicTo(SkBits2Float(0x43194e14), SkBits2Float(0x436643d6), SkBits2Float(0x431e2c08), SkBits2Float(0x4364f3b6), SkBits2Float(0x43220000), SkBits2Float(0x436729ba));  // 153.305f, 230.265f, 158.172f, 228.952f, 162, 231.163f
7147 path.lineTo(SkBits2Float(0x43202e14), SkBits2Float(0x436a4fdf));  // 160.18f, 234.312f
7148 path.close();
7149 path.moveTo(SkBits2Float(0x4321c5e3), SkBits2Float(0x43704000));  // 161.773f, 240.25f
7150 path.cubicTo(SkBits2Float(0x43226000), SkBits2Float(0x436f3604), SkBits2Float(0x43228000), SkBits2Float(0x436e09fc), SkBits2Float(0x43223604), SkBits2Float(0x436cf3f8));  // 162.375f, 239.211f, 162.5f, 238.039f, 162.211f, 236.953f
7151 path.cubicTo(SkBits2Float(0x4321ec08), SkBits2Float(0x436be000), SkBits2Float(0x43213a1d), SkBits2Float(0x436ae9fc), SkBits2Float(0x43202e14), SkBits2Float(0x436a4fdf));  // 161.922f, 235.875f, 161.227f, 234.914f, 160.18f, 234.312f
7152 path.lineTo(SkBits2Float(0x43220000), SkBits2Float(0x436729fc));  // 162, 231.164f
7153 path.cubicTo(SkBits2Float(0x4325d1ec), SkBits2Float(0x43696000), SkBits2Float(0x4327220c), SkBits2Float(0x436e4000), SkBits2Float(0x4324e9fc), SkBits2Float(0x437211ec));  // 165.82f, 233.375f, 167.133f, 238.25f, 164.914f, 242.07f
7154 path.lineTo(SkBits2Float(0x4321c5e3), SkBits2Float(0x43704000));  // 161.773f, 240.25f
7155 path.close();
7156 }
7157 
joel_12(skiatest::Reporter * reporter,const char * filename)7158 static void joel_12(skiatest::Reporter* reporter, const char* filename) {
7159     SkPath path;
7160     make_joel_12(path);
7161     testSimplify(reporter, path, filename);
7162 }
7163 
joel_12x(skiatest::Reporter * reporter,const char * filename)7164 static void joel_12x(skiatest::Reporter* reporter, const char* filename) {
7165     SkPath path;
7166     path.setFillType(SkPathFillType::kEvenOdd);
7167     make_joel_12(path);
7168     testSimplify(reporter, path, filename);
7169 }
7170 
make_joel_13(SkPath & path)7171 static void make_joel_13(SkPath& path) {
7172 path.moveTo(SkBits2Float(0x43b4126f), SkBits2Float(0x43c058f6));  // 360.144f, 384.695f
7173 path.cubicTo(SkBits2Float(0x43bd7c6b), SkBits2Float(0x43c05b02), SkBits2Float(0x43c51d71), SkBits2Float(0x43b8e8f6), SkBits2Float(0x43c5276d), SkBits2Float(0x43afc1ec));  // 378.972f, 384.711f, 394.23f, 369.82f, 394.308f, 351.515f
7174 path.cubicTo(SkBits2Float(0x43c51d71), SkBits2Float(0x43a688f6), SkBits2Float(0x43bd7c6b), SkBits2Float(0x439f16ea), SkBits2Float(0x43b4126f), SkBits2Float(0x439f16ea));  // 394.23f, 333.07f, 378.972f, 318.179f, 360.144f, 318.179f
7175 path.cubicTo(SkBits2Float(0x43aaa979), SkBits2Float(0x439f16ea), SkBits2Float(0x43a3076d), SkBits2Float(0x43a688f6), SkBits2Float(0x43a31063), SkBits2Float(0x43afc1ec));  // 341.324f, 318.179f, 326.058f, 333.07f, 326.128f, 351.515f
7176 path.cubicTo(SkBits2Float(0x43a3076d), SkBits2Float(0x43b8e8f6), SkBits2Float(0x43aaa959), SkBits2Float(0x43c05b02), SkBits2Float(0x43b4126f), SkBits2Float(0x43c058f6));  // 326.058f, 369.82f, 341.323f, 384.711f, 360.144f, 384.695f
7177 path.close();
7178 }
7179 
joel_13(skiatest::Reporter * reporter,const char * filename)7180 static void joel_13(skiatest::Reporter* reporter, const char* filename) {
7181     SkPath path;
7182     make_joel_13(path);
7183     testSimplify(reporter, path, filename);
7184 }
7185 
7186 
joel_13x(skiatest::Reporter * reporter,const char * filename)7187 static void joel_13x(skiatest::Reporter* reporter, const char* filename) {
7188     SkPath path;
7189     path.setFillType(SkPathFillType::kEvenOdd);
7190     make_joel_13(path);
7191     testSimplify(reporter, path, filename);
7192 }
7193 
make_joel_14(SkPath & path)7194 static void make_joel_14(SkPath& path) {
7195 path.moveTo(SkBits2Float(0x43f3b354), SkBits2Float(0x43d6770a));  // 487.401f, 428.93f
7196 path.lineTo(SkBits2Float(0x43f3b354), SkBits2Float(0x43d6770a));  // 487.401f, 428.93f
7197 path.close();
7198 path.moveTo(SkBits2Float(0x43f0fd50), SkBits2Float(0x43d6770a));  // 481.979f, 428.93f
7199 path.lineTo(SkBits2Float(0x43f0fd50), SkBits2Float(0x43d6770a));  // 481.979f, 428.93f
7200 path.close();
7201 path.moveTo(SkBits2Float(0x43f0fd50), SkBits2Float(0x43d6770a));  // 481.979f, 428.93f
7202 path.lineTo(SkBits2Float(0x43f3b354), SkBits2Float(0x43d6770a));  // 487.401f, 428.93f
7203 path.lineTo(SkBits2Float(0x43f0fd50), SkBits2Float(0x43d6770a));  // 481.979f, 428.93f
7204 path.close();
7205 path.moveTo(SkBits2Float(0x43dfe76d), SkBits2Float(0x43d792f1));  // 447.808f, 431.148f
7206 path.lineTo(SkBits2Float(0x43dfe76d), SkBits2Float(0x43d792f1));  // 447.808f, 431.148f
7207 path.close();
7208 path.moveTo(SkBits2Float(0x43dfe76d), SkBits2Float(0x43d792f1));  // 447.808f, 431.148f
7209 path.cubicTo(SkBits2Float(0x43e51979), SkBits2Float(0x43d611eb), SkBits2Float(0x43eb8667), SkBits2Float(0x43d765e3), SkBits2Float(0x43f0fd71), SkBits2Float(0x43d676e9));  // 458.199f, 428.14f, 471.05f, 430.796f, 481.98f, 428.929f
7210 path.cubicTo(SkBits2Float(0x43eb8667), SkBits2Float(0x43d76604), SkBits2Float(0x43e51958), SkBits2Float(0x43d6120c), SkBits2Float(0x43dfe76d), SkBits2Float(0x43d792f1));  // 471.05f, 430.797f, 458.198f, 428.141f, 447.808f, 431.148f
7211 path.close();
7212 path.moveTo(SkBits2Float(0x43df776d), SkBits2Float(0x43d6d603));  // 446.933f, 429.672f
7213 path.lineTo(SkBits2Float(0x43df776d), SkBits2Float(0x43d6d603));  // 446.933f, 429.672f
7214 path.close();
7215 path.moveTo(SkBits2Float(0x43df776d), SkBits2Float(0x43d6d603));  // 446.933f, 429.672f
7216 path.lineTo(SkBits2Float(0x43dfe76d), SkBits2Float(0x43d79311));  // 447.808f, 431.149f
7217 path.lineTo(SkBits2Float(0x43df776d), SkBits2Float(0x43d6d603));  // 446.933f, 429.672f
7218 path.close();
7219 path.moveTo(SkBits2Float(0x43dd3169), SkBits2Float(0x43d792f1));  // 442.386f, 431.148f
7220 path.lineTo(SkBits2Float(0x43dd3169), SkBits2Float(0x43d792f1));  // 442.386f, 431.148f
7221 path.close();
7222 path.moveTo(SkBits2Float(0x43dd3169), SkBits2Float(0x43d792f1));  // 442.386f, 431.148f
7223 path.cubicTo(SkBits2Float(0x43de376d), SkBits2Float(0x43d743f7), SkBits2Float(0x43de2873), SkBits2Float(0x43d68df3), SkBits2Float(0x43df776d), SkBits2Float(0x43d6d5e3));  // 444.433f, 430.531f, 444.316f, 429.109f, 446.933f, 429.671f
7224 path.cubicTo(SkBits2Float(0x43de2852), SkBits2Float(0x43d68df3), SkBits2Float(0x43de376d), SkBits2Float(0x43d743f7), SkBits2Float(0x43dd3169), SkBits2Float(0x43d792f1));  // 444.315f, 429.109f, 444.433f, 430.531f, 442.386f, 431.148f
7225 path.close();
7226 path.moveTo(SkBits2Float(0x43dcc169), SkBits2Float(0x43d6d603));  // 441.511f, 429.672f
7227 path.lineTo(SkBits2Float(0x43dcc169), SkBits2Float(0x43d6d603));  // 441.511f, 429.672f
7228 path.close();
7229 path.moveTo(SkBits2Float(0x43dcc169), SkBits2Float(0x43d6d603));  // 441.511f, 429.672f
7230 path.lineTo(SkBits2Float(0x43dd3169), SkBits2Float(0x43d79311));  // 442.386f, 431.149f
7231 path.lineTo(SkBits2Float(0x43dcc169), SkBits2Float(0x43d6d603));  // 441.511f, 429.672f
7232 path.close();
7233 path.moveTo(SkBits2Float(0x43dad959), SkBits2Float(0x43d6d603));  // 437.698f, 429.672f
7234 path.lineTo(SkBits2Float(0x43dad959), SkBits2Float(0x43d6d603));  // 437.698f, 429.672f
7235 path.close();
7236 path.moveTo(SkBits2Float(0x43dad959), SkBits2Float(0x43d6d603));  // 437.698f, 429.672f
7237 path.lineTo(SkBits2Float(0x43dcc149), SkBits2Float(0x43d6d603));  // 441.51f, 429.672f
7238 path.lineTo(SkBits2Float(0x43dad959), SkBits2Float(0x43d6d603));  // 437.698f, 429.672f
7239 path.close();
7240 path.moveTo(SkBits2Float(0x43e3cb65), SkBits2Float(0x43e3bd0d));  // 455.589f, 455.477f
7241 path.lineTo(SkBits2Float(0x43e3cb65), SkBits2Float(0x43e3bd0d));  // 455.589f, 455.477f
7242 path.close();
7243 path.moveTo(SkBits2Float(0x43e3cb65), SkBits2Float(0x43e3bd0d));  // 455.589f, 455.477f
7244 path.lineTo(SkBits2Float(0x43dad959), SkBits2Float(0x43d6d603));  // 437.698f, 429.672f
7245 path.lineTo(SkBits2Float(0x43e3cb65), SkBits2Float(0x43e3bd0d));  // 455.589f, 455.477f
7246 path.close();
7247 path.moveTo(SkBits2Float(0x43e22d51), SkBits2Float(0x43e41b01));  // 452.354f, 456.211f
7248 path.lineTo(SkBits2Float(0x43e22d51), SkBits2Float(0x43e41b01));  // 452.354f, 456.211f
7249 path.close();
7250 path.moveTo(SkBits2Float(0x43e22d51), SkBits2Float(0x43e41b01));  // 452.354f, 456.211f
7251 path.cubicTo(SkBits2Float(0x43e2ba5f), SkBits2Float(0x43e3f9fb), SkBits2Float(0x43e37e57), SkBits2Float(0x43e46df3), SkBits2Float(0x43e3cb45), SkBits2Float(0x43e3bd0d));  // 453.456f, 455.953f, 454.987f, 456.859f, 455.588f, 455.477f
7252 path.cubicTo(SkBits2Float(0x43e37e57), SkBits2Float(0x43e46df2), SkBits2Float(0x43e2ba60), SkBits2Float(0x43e3f9fb), SkBits2Float(0x43e22d51), SkBits2Float(0x43e41b01));  // 454.987f, 456.859f, 453.456f, 455.953f, 452.354f, 456.211f
7253 path.close();
7254 path.moveTo(SkBits2Float(0x43e22d51), SkBits2Float(0x43e479fb));  // 452.354f, 456.953f
7255 path.lineTo(SkBits2Float(0x43e22d51), SkBits2Float(0x43e479fb));  // 452.354f, 456.953f
7256 path.close();
7257 path.moveTo(SkBits2Float(0x43e22d51), SkBits2Float(0x43e479fb));  // 452.354f, 456.953f
7258 path.lineTo(SkBits2Float(0x43e22d51), SkBits2Float(0x43e41b01));  // 452.354f, 456.211f
7259 path.lineTo(SkBits2Float(0x43e22d51), SkBits2Float(0x43e479fb));  // 452.354f, 456.953f
7260 path.close();
7261 path.moveTo(SkBits2Float(0x43e35a5f), SkBits2Float(0x43e479fb));  // 454.706f, 456.953f
7262 path.lineTo(SkBits2Float(0x43e35a5f), SkBits2Float(0x43e479fb));  // 454.706f, 456.953f
7263 path.close();
7264 path.moveTo(SkBits2Float(0x43e35a5f), SkBits2Float(0x43e479fb));  // 454.706f, 456.953f
7265 path.lineTo(SkBits2Float(0x43e22d51), SkBits2Float(0x43e479fb));  // 452.354f, 456.953f
7266 path.lineTo(SkBits2Float(0x43e35a5f), SkBits2Float(0x43e479fb));  // 454.706f, 456.953f
7267 path.close();
7268 path.moveTo(SkBits2Float(0x43e35a5f), SkBits2Float(0x43e41b01));  // 454.706f, 456.211f
7269 path.lineTo(SkBits2Float(0x43e35a5f), SkBits2Float(0x43e41b01));  // 454.706f, 456.211f
7270 path.close();
7271 path.moveTo(SkBits2Float(0x43e35a5f), SkBits2Float(0x43e41b01));  // 454.706f, 456.211f
7272 path.lineTo(SkBits2Float(0x43e35a5f), SkBits2Float(0x43e479fb));  // 454.706f, 456.953f
7273 path.lineTo(SkBits2Float(0x43e35a5f), SkBits2Float(0x43e41b01));  // 454.706f, 456.211f
7274 path.close();
7275 path.moveTo(SkBits2Float(0x43e1726f), SkBits2Float(0x43e90c07));  // 450.894f, 466.094f
7276 path.lineTo(SkBits2Float(0x43e1726f), SkBits2Float(0x43e90c07));  // 450.894f, 466.094f
7277 path.close();
7278 path.moveTo(SkBits2Float(0x43e1726f), SkBits2Float(0x43e90c07));  // 450.894f, 466.094f
7279 path.cubicTo(SkBits2Float(0x43e2226f), SkBits2Float(0x43e769fb), SkBits2Float(0x43e50a7f), SkBits2Float(0x43e63915), SkBits2Float(0x43e35a5f), SkBits2Float(0x43e41b01));  // 452.269f, 462.828f, 458.082f, 460.446f, 454.706f, 456.211f
7280 path.cubicTo(SkBits2Float(0x43e50a5f), SkBits2Float(0x43e638f5), SkBits2Float(0x43e2226f), SkBits2Float(0x43e769fb), SkBits2Float(0x43e1726f), SkBits2Float(0x43e90c07));  // 458.081f, 460.445f, 452.269f, 462.828f, 450.894f, 466.094f
7281 path.close();
7282 path.moveTo(SkBits2Float(0x43f09f5d), SkBits2Float(0x43ea2709));  // 481.245f, 468.305f
7283 path.lineTo(SkBits2Float(0x43f09f5d), SkBits2Float(0x43ea2709));  // 481.245f, 468.305f
7284 path.close();
7285 path.moveTo(SkBits2Float(0x43f09f5d), SkBits2Float(0x43ea2709));  // 481.245f, 468.305f
7286 path.cubicTo(SkBits2Float(0x43ebbc6b), SkBits2Float(0x43ea4105), SkBits2Float(0x43e56c6b), SkBits2Float(0x43ec9fff), SkBits2Float(0x43e1724f), SkBits2Float(0x43e90c07));  // 471.472f, 468.508f, 458.847f, 473.25f, 450.893f, 466.094f
7287 path.cubicTo(SkBits2Float(0x43e56c6c), SkBits2Float(0x43ec9fff), SkBits2Float(0x43ebbc6c), SkBits2Float(0x43ea4105), SkBits2Float(0x43f09f5d), SkBits2Float(0x43ea2709));  // 458.847f, 473.25f, 471.472f, 468.508f, 481.245f, 468.305f
7288 path.close();
7289 path.moveTo(SkBits2Float(0x43eea45b), SkBits2Float(0x43e9c7ee));  // 477.284f, 467.562f
7290 path.lineTo(SkBits2Float(0x43eea45b), SkBits2Float(0x43e9c7ee));  // 477.284f, 467.562f
7291 path.close();
7292 path.moveTo(SkBits2Float(0x43eea45b), SkBits2Float(0x43e9c7ee));  // 477.284f, 467.562f
7293 path.cubicTo(SkBits2Float(0x43ef0c4b), SkBits2Float(0x43ea7ef8), SkBits2Float(0x43eff355), SkBits2Float(0x43ea10e4), SkBits2Float(0x43f09f5d), SkBits2Float(0x43ea26e8));  // 478.096f, 468.992f, 479.901f, 468.132f, 481.245f, 468.304f
7294 path.cubicTo(SkBits2Float(0x43eff355), SkBits2Float(0x43ea1105), SkBits2Float(0x43ef0c6b), SkBits2Float(0x43ea7ef8), SkBits2Float(0x43eea45b), SkBits2Float(0x43e9c7ee));  // 479.901f, 468.133f, 478.097f, 468.992f, 477.284f, 467.562f
7295 path.close();
7296 path.moveTo(SkBits2Float(0x43ee4667), SkBits2Float(0x43ea2709));  // 476.55f, 468.305f
7297 path.lineTo(SkBits2Float(0x43ee4667), SkBits2Float(0x43ea2709));  // 476.55f, 468.305f
7298 path.close();
7299 path.moveTo(SkBits2Float(0x43ee4667), SkBits2Float(0x43ea2709));  // 476.55f, 468.305f
7300 path.lineTo(SkBits2Float(0x43eea45b), SkBits2Float(0x43e9c80f));  // 477.284f, 467.563f
7301 path.lineTo(SkBits2Float(0x43ee4667), SkBits2Float(0x43ea2709));  // 476.55f, 468.305f
7302 path.close();
7303 path.moveTo(SkBits2Float(0x43e9f26f), SkBits2Float(0x43e6c2f0));  // 467.894f, 461.523f
7304 path.lineTo(SkBits2Float(0x43e9f26f), SkBits2Float(0x43e6c2f0));  // 467.894f, 461.523f
7305 path.close();
7306 path.moveTo(SkBits2Float(0x43e9f26f), SkBits2Float(0x43e6c2f0));  // 467.894f, 461.523f
7307 path.cubicTo(SkBits2Float(0x43eb8873), SkBits2Float(0x43e7dcec), SkBits2Float(0x43eb747b), SkBits2Float(0x43ea9b00), SkBits2Float(0x43ee4667), SkBits2Float(0x43ea26e8));  // 471.066f, 463.726f, 470.91f, 469.211f, 476.55f, 468.304f
7308 path.cubicTo(SkBits2Float(0x43eb745b), SkBits2Float(0x43ea9b01), SkBits2Float(0x43eb8853), SkBits2Float(0x43e7dd0d), SkBits2Float(0x43e9f26f), SkBits2Float(0x43e6c2f0));  // 470.909f, 469.211f, 471.065f, 463.727f, 467.894f, 461.523f
7309 path.close();
7310 path.moveTo(SkBits2Float(0x43ebee56), SkBits2Float(0x43decc07));  // 471.862f, 445.594f
7311 path.lineTo(SkBits2Float(0x43ebee56), SkBits2Float(0x43decc07));  // 471.862f, 445.594f
7312 path.close();
7313 path.moveTo(SkBits2Float(0x43ebee56), SkBits2Float(0x43decc07));  // 471.862f, 445.594f
7314 path.cubicTo(SkBits2Float(0x43e85f5c), SkBits2Float(0x43e04915), SkBits2Float(0x43eaa148), SkBits2Float(0x43e41c07), SkBits2Float(0x43e9f24e), SkBits2Float(0x43e6c311));  // 464.745f, 448.571f, 469.26f, 456.219f, 467.893f, 461.524f
7315 path.cubicTo(SkBits2Float(0x43eaa169), SkBits2Float(0x43e41c07), SkBits2Float(0x43e85f5c), SkBits2Float(0x43e048f4), SkBits2Float(0x43ebee56), SkBits2Float(0x43decc07));  // 469.261f, 456.219f, 464.745f, 448.57f, 471.862f, 445.594f
7316 path.close();
7317 path.moveTo(SkBits2Float(0x43eac168), SkBits2Float(0x43dd3fff));  // 469.511f, 442.5f
7318 path.lineTo(SkBits2Float(0x43eac168), SkBits2Float(0x43dd3fff));  // 469.511f, 442.5f
7319 path.close();
7320 path.moveTo(SkBits2Float(0x43eac168), SkBits2Float(0x43dd3fff));  // 469.511f, 442.5f
7321 path.cubicTo(SkBits2Float(0x43eb245a), SkBits2Float(0x43ddc7ef), SkBits2Float(0x43eaf45a), SkBits2Float(0x43dedd0d), SkBits2Float(0x43ebee76), SkBits2Float(0x43decc07));  // 470.284f, 443.562f, 469.909f, 445.727f, 471.863f, 445.594f
7322 path.cubicTo(SkBits2Float(0x43eaf459), SkBits2Float(0x43dedd0d), SkBits2Float(0x43eb2459), SkBits2Float(0x43ddc7ee), SkBits2Float(0x43eac168), SkBits2Float(0x43dd3fff));  // 469.909f, 445.727f, 470.284f, 443.562f, 469.511f, 442.5f
7323 path.close();
7324 path.moveTo(SkBits2Float(0x43ec4c6a), SkBits2Float(0x43dce105));  // 472.597f, 441.758f
7325 path.lineTo(SkBits2Float(0x43ec4c6a), SkBits2Float(0x43dce105));  // 472.597f, 441.758f
7326 path.close();
7327 path.moveTo(SkBits2Float(0x43ec4c6a), SkBits2Float(0x43dce105));  // 472.597f, 441.758f
7328 path.cubicTo(SkBits2Float(0x43ebcb64), SkBits2Float(0x43dd08f5), SkBits2Float(0x43eb0c6a), SkBits2Float(0x43dc9603), SkBits2Float(0x43eac168), SkBits2Float(0x43dd3fff));  // 471.589f, 442.07f, 470.097f, 441.172f, 469.511f, 442.5f
7329 path.cubicTo(SkBits2Float(0x43eb0c6a), SkBits2Float(0x43dc9603), SkBits2Float(0x43ebcb64), SkBits2Float(0x43dd08f5), SkBits2Float(0x43ec4c6a), SkBits2Float(0x43dce105));  // 470.097f, 441.172f, 471.589f, 442.07f, 472.597f, 441.758f
7330 path.close();
7331 path.moveTo(SkBits2Float(0x43ecbb64), SkBits2Float(0x43ddb105));  // 473.464f, 443.383f
7332 path.lineTo(SkBits2Float(0x43ecbb64), SkBits2Float(0x43ddb105));  // 473.464f, 443.383f
7333 path.close();
7334 path.moveTo(SkBits2Float(0x43ecbb64), SkBits2Float(0x43ddb105));  // 473.464f, 443.383f
7335 path.lineTo(SkBits2Float(0x43ec4c6a), SkBits2Float(0x43dce105));  // 472.597f, 441.758f
7336 path.lineTo(SkBits2Float(0x43ecbb64), SkBits2Float(0x43ddb105));  // 473.464f, 443.383f
7337 path.close();
7338 path.moveTo(SkBits2Float(0x43eea45a), SkBits2Float(0x43dc24fd));  // 477.284f, 440.289f
7339 path.lineTo(SkBits2Float(0x43eea45a), SkBits2Float(0x43dc24fd));  // 477.284f, 440.289f
7340 path.close();
7341 path.moveTo(SkBits2Float(0x43eea45a), SkBits2Float(0x43dc24fd));  // 477.284f, 440.289f
7342 path.cubicTo(SkBits2Float(0x43eef354), SkBits2Float(0x43dd4c07), SkBits2Float(0x43ed4a5e), SkBits2Float(0x43dcfef9), SkBits2Float(0x43ecbb64), SkBits2Float(0x43ddb105));  // 477.901f, 442.594f, 474.581f, 441.992f, 473.464f, 443.383f
7343 path.cubicTo(SkBits2Float(0x43ed4a5e), SkBits2Float(0x43dcfef9), SkBits2Float(0x43eef354), SkBits2Float(0x43dd4c07), SkBits2Float(0x43eea45a), SkBits2Float(0x43dc24fd));  // 474.581f, 441.992f, 477.901f, 442.594f, 477.284f, 440.289f
7344 path.close();
7345 path.moveTo(SkBits2Float(0x43f09f5c), SkBits2Float(0x43dc24fd));  // 481.245f, 440.289f
7346 path.lineTo(SkBits2Float(0x43f09f5c), SkBits2Float(0x43dc24fd));  // 481.245f, 440.289f
7347 path.close();
7348 path.moveTo(SkBits2Float(0x43f09f5c), SkBits2Float(0x43dc24fd));  // 481.245f, 440.289f
7349 path.cubicTo(SkBits2Float(0x43effc6a), SkBits2Float(0x43daeced), SkBits2Float(0x43ef6a5e), SkBits2Float(0x43dbe4fd), SkBits2Float(0x43eea45a), SkBits2Float(0x43dc24fd));  // 479.972f, 437.851f, 478.831f, 439.789f, 477.284f, 440.289f
7350 path.cubicTo(SkBits2Float(0x43ef6a5e), SkBits2Float(0x43dbe4fd), SkBits2Float(0x43effc6a), SkBits2Float(0x43daed0d), SkBits2Float(0x43f09f5c), SkBits2Float(0x43dc24fd));  // 478.831f, 439.789f, 479.972f, 437.852f, 481.245f, 440.289f
7351 path.close();
7352 path.moveTo(SkBits2Float(0x43f2f76c), SkBits2Float(0x43dbc603));  // 485.933f, 439.547f
7353 path.lineTo(SkBits2Float(0x43f2f76c), SkBits2Float(0x43dbc603));  // 485.933f, 439.547f
7354 path.close();
7355 path.moveTo(SkBits2Float(0x43f2f76c), SkBits2Float(0x43dbc603));  // 485.933f, 439.547f
7356 path.cubicTo(SkBits2Float(0x43f24c6a), SkBits2Float(0x43dc3b01), SkBits2Float(0x43f16b64), SkBits2Float(0x43dc2311), SkBits2Float(0x43f09f5c), SkBits2Float(0x43dc24fd));  // 484.597f, 440.461f, 482.839f, 440.274f, 481.245f, 440.289f
7357 path.cubicTo(SkBits2Float(0x43f16b64), SkBits2Float(0x43dc23f7), SkBits2Float(0x43f24c6a), SkBits2Float(0x43dc3b01), SkBits2Float(0x43f2f76c), SkBits2Float(0x43dbc603));  // 482.839f, 440.281f, 484.597f, 440.461f, 485.933f, 439.547f
7358 path.close();
7359 path.moveTo(SkBits2Float(0x43f4de55), SkBits2Float(0x43d97d0d));  // 489.737f, 434.977f
7360 path.lineTo(SkBits2Float(0x43f4de55), SkBits2Float(0x43d97d0d));  // 489.737f, 434.977f
7361 path.close();
7362 path.moveTo(SkBits2Float(0x43f4de55), SkBits2Float(0x43d97d0d));  // 489.737f, 434.977f
7363 path.cubicTo(SkBits2Float(0x43f47665), SkBits2Float(0x43da020b), SkBits2Float(0x43f42851), SkBits2Float(0x43db9417), SkBits2Float(0x43f2f74b), SkBits2Float(0x43dbc603));  // 488.925f, 436.016f, 488.315f, 439.157f, 485.932f, 439.547f
7364 path.cubicTo(SkBits2Float(0x43f42851), SkBits2Float(0x43db93f7), SkBits2Float(0x43f47666), SkBits2Float(0x43da020b), SkBits2Float(0x43f4de55), SkBits2Float(0x43d97d0d));  // 488.315f, 439.156f, 488.925f, 436.016f, 489.737f, 434.977f
7365 path.close();
7366 path.moveTo(SkBits2Float(0x43f48061), SkBits2Float(0x43d97d0d));  // 489.003f, 434.977f
7367 path.lineTo(SkBits2Float(0x43f48061), SkBits2Float(0x43d97d0d));  // 489.003f, 434.977f
7368 path.close();
7369 path.moveTo(SkBits2Float(0x43f48061), SkBits2Float(0x43d97d0d));  // 489.003f, 434.977f
7370 path.lineTo(SkBits2Float(0x43f4de55), SkBits2Float(0x43d97d0d));  // 489.737f, 434.977f
7371 path.lineTo(SkBits2Float(0x43f48061), SkBits2Float(0x43d97d0d));  // 489.003f, 434.977f
7372 path.close();
7373 path.moveTo(SkBits2Float(0x43f3b353), SkBits2Float(0x43d67709));  // 487.401f, 428.93f
7374 path.cubicTo(SkBits2Float(0x43f39957), SkBits2Float(0x43d79ef9), SkBits2Float(0x43f3ca5d), SkBits2Float(0x43d8a603), SkBits2Float(0x43f48061), SkBits2Float(0x43d97d0d));  // 487.198f, 431.242f, 487.581f, 433.297f, 489.003f, 434.977f
7375 path.cubicTo(SkBits2Float(0x43f3ca5d), SkBits2Float(0x43d8a603), SkBits2Float(0x43f39957), SkBits2Float(0x43d79ef9), SkBits2Float(0x43f3b353), SkBits2Float(0x43d67709));  // 487.581f, 433.297f, 487.198f, 431.242f, 487.401f, 428.93f
7376 path.close();
7377 }
7378 
joel_14(skiatest::Reporter * reporter,const char * filename)7379 static void joel_14(skiatest::Reporter* reporter, const char* filename) {
7380     SkPath path;
7381     make_joel_14(path);
7382 testSimplify(reporter, path, filename);
7383 }
7384 
joel_14x(skiatest::Reporter * reporter,const char * filename)7385 static void joel_14x(skiatest::Reporter* reporter, const char* filename) {
7386     SkPath path;
7387     path.setFillType(SkPathFillType::kEvenOdd);
7388     make_joel_14(path);
7389 testSimplify(reporter, path, filename);
7390 }
7391 
make_joel_15(SkPath & path)7392 static void make_joel_15(SkPath& path) {
7393 path.moveTo(SkBits2Float(0x439e276d), SkBits2Float(0x43dad106));  // 316.308f, 437.633f
7394 path.lineTo(SkBits2Float(0x439e276d), SkBits2Float(0x43dad106));  // 316.308f, 437.633f
7395 path.close();
7396 path.moveTo(SkBits2Float(0x439c1959), SkBits2Float(0x43d78000));  // 312.198f, 431
7397 path.lineTo(SkBits2Float(0x439c1959), SkBits2Float(0x43d78000));  // 312.198f, 431
7398 path.close();
7399 path.moveTo(SkBits2Float(0x439c1959), SkBits2Float(0x43d78000));  // 312.198f, 431
7400 path.cubicTo(SkBits2Float(0x439ea45b), SkBits2Float(0x43d6d000), SkBits2Float(0x439cce57), SkBits2Float(0x43d9f3f8), SkBits2Float(0x439e274d), SkBits2Float(0x43dad106));  // 317.284f, 429.625f, 313.612f, 435.906f, 316.307f, 437.633f
7401 path.cubicTo(SkBits2Float(0x439cce57), SkBits2Float(0x43d9f3f8), SkBits2Float(0x439ea45b), SkBits2Float(0x43d6d000), SkBits2Float(0x439c1959), SkBits2Float(0x43d78000));  // 313.612f, 435.906f, 317.284f, 429.625f, 312.198f, 431
7402 path.close();
7403 path.moveTo(SkBits2Float(0x439c1959), SkBits2Float(0x43d8f8f6));  // 312.198f, 433.945f
7404 path.lineTo(SkBits2Float(0x439c1959), SkBits2Float(0x43d8f8f6));  // 312.198f, 433.945f
7405 path.close();
7406 path.moveTo(SkBits2Float(0x439c1959), SkBits2Float(0x43d8f8f6));  // 312.198f, 433.945f
7407 path.lineTo(SkBits2Float(0x439c1959), SkBits2Float(0x43d78000));  // 312.198f, 431
7408 path.lineTo(SkBits2Float(0x439c1959), SkBits2Float(0x43d8f8f6));  // 312.198f, 433.945f
7409 path.close();
7410 path.moveTo(SkBits2Float(0x439f7853), SkBits2Float(0x43e5820c));  // 318.94f, 459.016f
7411 path.lineTo(SkBits2Float(0x439f7853), SkBits2Float(0x43e5820c));  // 318.94f, 459.016f
7412 path.close();
7413 path.moveTo(SkBits2Float(0x439f7853), SkBits2Float(0x43e5820c));  // 318.94f, 459.016f
7414 path.cubicTo(SkBits2Float(0x439e1647), SkBits2Float(0x43e17106), SkBits2Float(0x439d945b), SkBits2Float(0x43dd020c), SkBits2Float(0x439c1959), SkBits2Float(0x43d8f916));  // 316.174f, 450.883f, 315.159f, 442.016f, 312.198f, 433.946f
7415 path.cubicTo(SkBits2Float(0x439d945b), SkBits2Float(0x43dd020c), SkBits2Float(0x439e1667), SkBits2Float(0x43e17106), SkBits2Float(0x439f7853), SkBits2Float(0x43e5820c));  // 315.159f, 442.016f, 316.175f, 450.883f, 318.94f, 459.016f
7416 path.close();
7417 path.moveTo(SkBits2Float(0x439ffc6c), SkBits2Float(0x43e7f106));  // 319.972f, 463.883f
7418 path.lineTo(SkBits2Float(0x439ffc6c), SkBits2Float(0x43e7f106));  // 319.972f, 463.883f
7419 path.close();
7420 path.moveTo(SkBits2Float(0x439ffc6c), SkBits2Float(0x43e7f106));  // 319.972f, 463.883f
7421 path.cubicTo(SkBits2Float(0x439f5668), SkBits2Float(0x43e758f6), SkBits2Float(0x439fec6c), SkBits2Float(0x43e63604), SkBits2Float(0x439f7874), SkBits2Float(0x43e5820c));  // 318.675f, 462.695f, 319.847f, 460.422f, 318.941f, 459.016f
7422 path.cubicTo(SkBits2Float(0x439fec6c), SkBits2Float(0x43e63604), SkBits2Float(0x439f5668), SkBits2Float(0x43e758f5), SkBits2Float(0x439ffc6c), SkBits2Float(0x43e7f106));  // 319.847f, 460.422f, 318.675f, 462.695f, 319.972f, 463.883f
7423 path.close();
7424 path.moveTo(SkBits2Float(0x43a12853), SkBits2Float(0x43ede9fc));  // 322.315f, 475.828f
7425 path.lineTo(SkBits2Float(0x43a12853), SkBits2Float(0x43ede9fc));  // 322.315f, 475.828f
7426 path.close();
7427 path.moveTo(SkBits2Float(0x43a12853), SkBits2Float(0x43ede9fc));  // 322.315f, 475.828f
7428 path.cubicTo(SkBits2Float(0x43a18c4b), SkBits2Float(0x43eb7604), SkBits2Float(0x439fe45b), SkBits2Float(0x43ea4b02), SkBits2Float(0x439ffc4b), SkBits2Float(0x43e7f106));  // 323.096f, 470.922f, 319.784f, 468.586f, 319.971f, 463.883f
7429 path.cubicTo(SkBits2Float(0x439fe45b), SkBits2Float(0x43ea4b02), SkBits2Float(0x43a18c6c), SkBits2Float(0x43eb7604), SkBits2Float(0x43a12853), SkBits2Float(0x43ede9fc));  // 319.784f, 468.586f, 323.097f, 470.922f, 322.315f, 475.828f
7430 path.close();
7431 path.moveTo(SkBits2Float(0x43a1e45b), SkBits2Float(0x43ef63f8));  // 323.784f, 478.781f
7432 path.lineTo(SkBits2Float(0x43a1e45b), SkBits2Float(0x43ef63f8));  // 323.784f, 478.781f
7433 path.close();
7434 path.moveTo(SkBits2Float(0x43a1e45b), SkBits2Float(0x43ef63f8));  // 323.784f, 478.781f
7435 path.cubicTo(SkBits2Float(0x43a20561), SkBits2Float(0x43eeb9fc), SkBits2Float(0x43a1ae57), SkBits2Float(0x43ee4be8), SkBits2Float(0x43a12853), SkBits2Float(0x43ede9fc));  // 324.042f, 477.453f, 323.362f, 476.593f, 322.315f, 475.828f
7436 path.cubicTo(SkBits2Float(0x43a1ae57), SkBits2Float(0x43ee4c08), SkBits2Float(0x43a20561), SkBits2Float(0x43eeb9fc), SkBits2Float(0x43a1e45b), SkBits2Float(0x43ef63f8));  // 323.362f, 476.594f, 324.042f, 477.453f, 323.784f, 478.781f
7437 path.close();
7438 path.moveTo(SkBits2Float(0x439fb169), SkBits2Float(0x43f032f2));  // 319.386f, 480.398f
7439 path.lineTo(SkBits2Float(0x439fb169), SkBits2Float(0x43f032f2));  // 319.386f, 480.398f
7440 path.close();
7441 path.moveTo(SkBits2Float(0x439fb169), SkBits2Float(0x43f032f2));  // 319.386f, 480.398f
7442 path.cubicTo(SkBits2Float(0x43a08063), SkBits2Float(0x43f022f2), SkBits2Float(0x43a1ec6b), SkBits2Float(0x43f078f6), SkBits2Float(0x43a1e45b), SkBits2Float(0x43ef63f8));  // 321.003f, 480.273f, 323.847f, 480.945f, 323.784f, 478.781f
7443 path.cubicTo(SkBits2Float(0x43a1ec6b), SkBits2Float(0x43f078f6), SkBits2Float(0x43a08063), SkBits2Float(0x43f022f2), SkBits2Float(0x439fb169), SkBits2Float(0x43f032f2));  // 323.847f, 480.945f, 321.003f, 480.273f, 319.386f, 480.398f
7444 path.close();
7445 path.moveTo(SkBits2Float(0x439e4d50), SkBits2Float(0x43f16106));  // 316.604f, 482.758f
7446 path.lineTo(SkBits2Float(0x439e4d50), SkBits2Float(0x43f16106));  // 316.604f, 482.758f
7447 path.close();
7448 path.moveTo(SkBits2Float(0x439e4d50), SkBits2Float(0x43f16106));  // 316.604f, 482.758f
7449 path.cubicTo(SkBits2Float(0x439de45a), SkBits2Float(0x43f05000), SkBits2Float(0x439f445a), SkBits2Float(0x43f0b20c), SkBits2Float(0x439fb148), SkBits2Float(0x43f03312));  // 315.784f, 480.625f, 318.534f, 481.391f, 319.385f, 480.399f
7450 path.cubicTo(SkBits2Float(0x439f445a), SkBits2Float(0x43f0b20c), SkBits2Float(0x439de45a), SkBits2Float(0x43f05000), SkBits2Float(0x439e4d50), SkBits2Float(0x43f16106));  // 318.534f, 481.391f, 315.784f, 480.625f, 316.604f, 482.758f
7451 path.close();
7452 path.moveTo(SkBits2Float(0x43a0de56), SkBits2Float(0x43f7470a));  // 321.737f, 494.555f
7453 path.lineTo(SkBits2Float(0x43a0de56), SkBits2Float(0x43f7470a));  // 321.737f, 494.555f
7454 path.close();
7455 path.moveTo(SkBits2Float(0x43a0de56), SkBits2Float(0x43f7470a));  // 321.737f, 494.555f
7456 path.cubicTo(SkBits2Float(0x439f4062), SkBits2Float(0x43f5a106), SkBits2Float(0x439f2b64), SkBits2Float(0x43f33106), SkBits2Float(0x439e4d50), SkBits2Float(0x43f16106));  // 318.503f, 491.258f, 318.339f, 486.383f, 316.604f, 482.758f
7457 path.cubicTo(SkBits2Float(0x439f2b64), SkBits2Float(0x43f33106), SkBits2Float(0x439f4062), SkBits2Float(0x43f5a106), SkBits2Float(0x43a0de56), SkBits2Float(0x43f7470a));  // 318.339f, 486.383f, 318.503f, 491.258f, 321.737f, 494.555f
7458 path.close();
7459 path.moveTo(SkBits2Float(0x43a3945a), SkBits2Float(0x43fa13f8));  // 327.159f, 500.156f
7460 path.lineTo(SkBits2Float(0x43a3945a), SkBits2Float(0x43fa13f8));  // 327.159f, 500.156f
7461 path.close();
7462 path.moveTo(SkBits2Float(0x43a3945a), SkBits2Float(0x43fa13f8));  // 327.159f, 500.156f
7463 path.cubicTo(SkBits2Float(0x43a2dc4a), SkBits2Float(0x43f8ab02), SkBits2Float(0x43a0d74c), SkBits2Float(0x43f8f4fe), SkBits2Float(0x43a0de56), SkBits2Float(0x43f746ea));  // 325.721f, 497.336f, 321.682f, 497.914f, 321.737f, 494.554f
7464 path.cubicTo(SkBits2Float(0x43a0d76d), SkBits2Float(0x43f8f4fe), SkBits2Float(0x43a2dc6a), SkBits2Float(0x43f8ab03), SkBits2Float(0x43a3945a), SkBits2Float(0x43fa13f8));  // 321.683f, 497.914f, 325.722f, 497.336f, 327.159f, 500.156f
7465 path.close();
7466 path.moveTo(SkBits2Float(0x43a58e56), SkBits2Float(0x43fa98f6));  // 331.112f, 501.195f
7467 path.lineTo(SkBits2Float(0x43a58e56), SkBits2Float(0x43fa98f6));  // 331.112f, 501.195f
7468 path.close();
7469 path.moveTo(SkBits2Float(0x43a58e56), SkBits2Float(0x43fa98f6));  // 331.112f, 501.195f
7470 path.cubicTo(SkBits2Float(0x43a50148), SkBits2Float(0x43fa2be8), SkBits2Float(0x43a45646), SkBits2Float(0x43fa02f2), SkBits2Float(0x43a3945a), SkBits2Float(0x43fa13f8));  // 330.01f, 500.343f, 328.674f, 500.023f, 327.159f, 500.156f
7471 path.cubicTo(SkBits2Float(0x43a45666), SkBits2Float(0x43fa02f2), SkBits2Float(0x43a50168), SkBits2Float(0x43fa2c08), SkBits2Float(0x43a58e56), SkBits2Float(0x43fa98f6));  // 328.675f, 500.023f, 330.011f, 500.344f, 331.112f, 501.195f
7472 path.close();
7473 path.moveTo(SkBits2Float(0x43a64958), SkBits2Float(0x43f8c000));  // 332.573f, 497.5f
7474 path.lineTo(SkBits2Float(0x43a64958), SkBits2Float(0x43f8c000));  // 332.573f, 497.5f
7475 path.close();
7476 path.moveTo(SkBits2Float(0x43a64958), SkBits2Float(0x43f8c000));  // 332.573f, 497.5f
7477 path.lineTo(SkBits2Float(0x43a58e56), SkBits2Float(0x43fa98f6));  // 331.112f, 501.195f
7478 path.lineTo(SkBits2Float(0x43a64958), SkBits2Float(0x43f8c000));  // 332.573f, 497.5f
7479 path.close();
7480 path.moveTo(SkBits2Float(0x43a73e56), SkBits2Float(0x43f5820c));  // 334.487f, 491.016f
7481 path.lineTo(SkBits2Float(0x43a73e56), SkBits2Float(0x43f5820c));  // 334.487f, 491.016f
7482 path.close();
7483 path.moveTo(SkBits2Float(0x43a73e56), SkBits2Float(0x43f5820c));  // 334.487f, 491.016f
7484 path.cubicTo(SkBits2Float(0x43a64d50), SkBits2Float(0x43f654fe), SkBits2Float(0x43a7174c), SkBits2Float(0x43f7de14), SkBits2Float(0x43a64958), SkBits2Float(0x43f8c000));  // 332.604f, 492.664f, 334.182f, 495.735f, 332.573f, 497.5f
7485 path.cubicTo(SkBits2Float(0x43a7176c), SkBits2Float(0x43f7ddf4), SkBits2Float(0x43a64d50), SkBits2Float(0x43f654fe), SkBits2Float(0x43a73e56), SkBits2Float(0x43f5820c));  // 334.183f, 495.734f, 332.604f, 492.664f, 334.487f, 491.016f
7486 path.close();
7487 path.moveTo(SkBits2Float(0x43a6f26f), SkBits2Float(0x43f20b02));  // 333.894f, 484.086f
7488 path.lineTo(SkBits2Float(0x43a6f26f), SkBits2Float(0x43f20b02));  // 333.894f, 484.086f
7489 path.close();
7490 path.moveTo(SkBits2Float(0x43a6f26f), SkBits2Float(0x43f20b02));  // 333.894f, 484.086f
7491 path.cubicTo(SkBits2Float(0x43a78d71), SkBits2Float(0x43f2f810), SkBits2Float(0x43a72873), SkBits2Float(0x43f453f8), SkBits2Float(0x43a73e77), SkBits2Float(0x43f5820c));  // 335.105f, 485.938f, 334.316f, 488.656f, 334.488f, 491.016f
7492 path.cubicTo(SkBits2Float(0x43a72852), SkBits2Float(0x43f453f8), SkBits2Float(0x43a78d50), SkBits2Float(0x43f2f810), SkBits2Float(0x43a6f26f), SkBits2Float(0x43f20b02));  // 334.315f, 488.656f, 335.104f, 485.938f, 333.894f, 484.086f
7493 path.close();
7494 path.moveTo(SkBits2Float(0x43a6ba5f), SkBits2Float(0x43ef3d0e));  // 333.456f, 478.477f
7495 path.lineTo(SkBits2Float(0x43a6ba5f), SkBits2Float(0x43ef3d0e));  // 333.456f, 478.477f
7496 path.close();
7497 path.moveTo(SkBits2Float(0x43a6ba5f), SkBits2Float(0x43ef3d0e));  // 333.456f, 478.477f
7498 path.cubicTo(SkBits2Float(0x43a60e57), SkBits2Float(0x43f04000), SkBits2Float(0x43a82355), SkBits2Float(0x43f0fc08), SkBits2Float(0x43a6f26f), SkBits2Float(0x43f20b02));  // 332.112f, 480.5f, 336.276f, 481.969f, 333.894f, 484.086f
7499 path.cubicTo(SkBits2Float(0x43a82354), SkBits2Float(0x43f0fc08), SkBits2Float(0x43a60e56), SkBits2Float(0x43f04000), SkBits2Float(0x43a6ba5f), SkBits2Float(0x43ef3d0e));  // 336.276f, 481.969f, 332.112f, 480.5f, 333.456f, 478.477f
7500 path.close();
7501 path.moveTo(SkBits2Float(0x43a35c6b), SkBits2Float(0x43ef88f5));  // 326.722f, 479.07f
7502 path.lineTo(SkBits2Float(0x43a35c6b), SkBits2Float(0x43ef88f5));  // 326.722f, 479.07f
7503 path.close();
7504 path.moveTo(SkBits2Float(0x43a35c6b), SkBits2Float(0x43ef88f5));  // 326.722f, 479.07f
7505 path.cubicTo(SkBits2Float(0x43a4b26f), SkBits2Float(0x43efe105), SkBits2Float(0x43a5b76d), SkBits2Float(0x43ee2ef9), SkBits2Float(0x43a6ba5f), SkBits2Float(0x43ef3ced));  // 329.394f, 479.758f, 331.433f, 476.367f, 333.456f, 478.476f
7506 path.cubicTo(SkBits2Float(0x43a5b76d), SkBits2Float(0x43ee2ef9), SkBits2Float(0x43a4b26f), SkBits2Float(0x43efe106), SkBits2Float(0x43a35c6b), SkBits2Float(0x43ef88f5));  // 331.433f, 476.367f, 329.394f, 479.758f, 326.722f, 479.07f
7507 path.close();
7508 path.moveTo(SkBits2Float(0x43a08063), SkBits2Float(0x43e5a70a));  // 321.003f, 459.305f
7509 path.lineTo(SkBits2Float(0x43a08063), SkBits2Float(0x43e5a70a));  // 321.003f, 459.305f
7510 path.close();
7511 path.moveTo(SkBits2Float(0x43a08063), SkBits2Float(0x43e5a70a));  // 321.003f, 459.305f
7512 path.cubicTo(SkBits2Float(0x43a15169), SkBits2Float(0x43e90312), SkBits2Float(0x43a2626f), SkBits2Float(0x43ec4312), SkBits2Float(0x43a35c6b), SkBits2Float(0x43ef8916));  // 322.636f, 466.024f, 324.769f, 472.524f, 326.722f, 479.071f
7513 path.cubicTo(SkBits2Float(0x43a2626f), SkBits2Float(0x43ec42f1), SkBits2Float(0x43a15169), SkBits2Float(0x43e902f1), SkBits2Float(0x43a08063), SkBits2Float(0x43e5a70a));  // 324.769f, 472.523f, 322.636f, 466.023f, 321.003f, 459.305f
7514 path.close();
7515 path.moveTo(SkBits2Float(0x43a05a5f), SkBits2Float(0x43e407ef));  // 320.706f, 456.062f
7516 path.lineTo(SkBits2Float(0x43a05a5f), SkBits2Float(0x43e407ef));  // 320.706f, 456.062f
7517 path.close();
7518 path.moveTo(SkBits2Float(0x43a05a5f), SkBits2Float(0x43e407ef));  // 320.706f, 456.062f
7519 path.lineTo(SkBits2Float(0x43a08063), SkBits2Float(0x43e5a6e9));  // 321.003f, 459.304f
7520 path.lineTo(SkBits2Float(0x43a05a5f), SkBits2Float(0x43e407ef));  // 320.706f, 456.062f
7521 path.close();
7522 path.moveTo(SkBits2Float(0x439ecf5d), SkBits2Float(0x43dd3fff));  // 317.62f, 442.5f
7523 path.lineTo(SkBits2Float(0x439ecf5d), SkBits2Float(0x43dd3fff));  // 317.62f, 442.5f
7524 path.close();
7525 path.moveTo(SkBits2Float(0x439ecf5d), SkBits2Float(0x43dd3fff));  // 317.62f, 442.5f
7526 path.cubicTo(SkBits2Float(0x439e9c6b), SkBits2Float(0x43dfcb01), SkBits2Float(0x439fbe57), SkBits2Float(0x43e1cc07), SkBits2Float(0x43a05a5f), SkBits2Float(0x43e407ef));  // 317.222f, 447.586f, 319.487f, 451.594f, 320.706f, 456.062f
7527 path.cubicTo(SkBits2Float(0x439fbe57), SkBits2Float(0x43e1cc08), SkBits2Float(0x439e9c6b), SkBits2Float(0x43dfcb01), SkBits2Float(0x439ecf5d), SkBits2Float(0x43dd3fff));  // 319.487f, 451.594f, 317.222f, 447.586f, 317.62f, 442.5f
7528 path.close();
7529 path.moveTo(SkBits2Float(0x439e276d), SkBits2Float(0x43dad105));  // 316.308f, 437.633f
7530 path.cubicTo(SkBits2Float(0x439e4979), SkBits2Float(0x43dba4fd), SkBits2Float(0x439dc375), SkBits2Float(0x43dce915), SkBits2Float(0x439ecf5d), SkBits2Float(0x43dd3fff));  // 316.574f, 439.289f, 315.527f, 441.821f, 317.62f, 442.5f
7531 path.cubicTo(SkBits2Float(0x439dc355), SkBits2Float(0x43dce8f5), SkBits2Float(0x439e4959), SkBits2Float(0x43dba4fd), SkBits2Float(0x439e276d), SkBits2Float(0x43dad105));  // 315.526f, 441.82f, 316.573f, 439.289f, 316.308f, 437.633f
7532 path.close();
7533 }
7534 
joel_15(skiatest::Reporter * reporter,const char * filename)7535 static void joel_15(skiatest::Reporter* reporter, const char* filename) {
7536     SkPath path;
7537     make_joel_15(path);
7538 testSimplify(reporter, path, filename);
7539 }
7540 
joel_15x(skiatest::Reporter * reporter,const char * filename)7541 static void joel_15x(skiatest::Reporter* reporter, const char* filename) {
7542     SkPath path;
7543     path.setFillType(SkPathFillType::kEvenOdd);
7544     make_joel_15(path);
7545 testSimplify(reporter, path, filename);
7546 }
7547 
make_joel_16(SkPath & path)7548 static void make_joel_16(SkPath& path) {
7549 path.moveTo(SkBits2Float(0x420e6c8b), SkBits2Float(0x426bdf3b));  // 35.606f, 58.968f
7550 path.lineTo(SkBits2Float(0x420fcccd), SkBits2Float(0x426c7ef9));  // 35.95f, 59.124f
7551 path.cubicTo(SkBits2Float(0x420fcccd), SkBits2Float(0x426c7ef9), SkBits2Float(0x42093d71), SkBits2Float(0x426c6e97), SkBits2Float(0x42036c8b), SkBits2Float(0x426cbf7c));  // 35.95f, 59.124f, 34.31f, 59.108f, 32.856f, 59.187f
7552 path.cubicTo(SkBits2Float(0x41fb3958), SkBits2Float(0x426d0f5b), SkBits2Float(0x41f076c8), SkBits2Float(0x426d48b3), SkBits2Float(0x41ef47ae), SkBits2Float(0x426d947a));  // 31.403f, 59.265f, 30.058f, 59.321f, 29.91f, 59.395f
7553 path.cubicTo(SkBits2Float(0x41ee1aa0), SkBits2Float(0x426ddf3b), SkBits2Float(0x41ec6041), SkBits2Float(0x426edb22), SkBits2Float(0x41eb1aa0), SkBits2Float(0x426fee97));  // 29.763f, 59.468f, 29.547f, 59.714f, 29.388f, 59.983f
7554 path.cubicTo(SkBits2Float(0x41eb1eb9), SkBits2Float(0x426feb85), SkBits2Float(0x41e9ba5e), SkBits2Float(0x42711eb8), SkBits2Float(0x41e9ba5e), SkBits2Float(0x42711eb8));  // 29.39f, 59.98f, 29.216f, 60.28f, 29.216f, 60.28f
7555 path.lineTo(SkBits2Float(0x41e99999), SkBits2Float(0x42718f5c));  // 29.2f, 60.39f
7556 path.cubicTo(SkBits2Float(0x41ea76c8), SkBits2Float(0x4271a5e3), SkBits2Float(0x4212dd2f), SkBits2Float(0x42707efa), SkBits2Float(0x4212dd2f), SkBits2Float(0x42707efa));  // 29.308f, 60.412f, 36.716f, 60.124f, 36.716f, 60.124f
7557 path.cubicTo(SkBits2Float(0x4212dd2f), SkBits2Float(0x42707efa), SkBits2Float(0x42124395), SkBits2Float(0x42707be8), SkBits2Float(0x42131ba6), SkBits2Float(0x4270b646));  // 36.716f, 60.124f, 36.566f, 60.121f, 36.777f, 60.178f
7558 path.cubicTo(SkBits2Float(0x42131581), SkBits2Float(0x42710000), SkBits2Float(0x42130831), SkBits2Float(0x42711688), SkBits2Float(0x4213072b), SkBits2Float(0x42711688));  // 36.771f, 60.25f, 36.758f, 60.272f, 36.757f, 60.272f
7559 path.cubicTo(SkBits2Float(0x4212fae1), SkBits2Float(0x42711aa1), SkBits2Float(0x42127cee), SkBits2Float(0x42714eda), SkBits2Float(0x42127cee), SkBits2Float(0x42714eda));  // 36.745f, 60.276f, 36.622f, 60.327f, 36.622f, 60.327f
7560 path.cubicTo(SkBits2Float(0x42127ae2), SkBits2Float(0x42714eda), SkBits2Float(0x41c67ae2), SkBits2Float(0x42730f5d), SkBits2Float(0x41c345a2), SkBits2Float(0x427329fd));  // 36.62f, 60.327f, 24.81f, 60.765f, 24.409f, 60.791f
7561 path.cubicTo(SkBits2Float(0x41c247ae), SkBits2Float(0x42733e78), SkBits2Float(0x41c04396), SkBits2Float(0x42738e57), SkBits2Float(0x41bf4bc7), SkBits2Float(0x4273e45b));  // 24.285f, 60.811f, 24.033f, 60.889f, 23.912f, 60.973f
7562 path.cubicTo(SkBits2Float(0x41bf5c29), SkBits2Float(0x4273e042), SkBits2Float(0x41be9db3), SkBits2Float(0x4274322e), SkBits2Float(0x41be9db3), SkBits2Float(0x4274322e));  // 23.92f, 60.969f, 23.827f, 61.049f, 23.827f, 61.049f
7563 path.lineTo(SkBits2Float(0x41be26ea), SkBits2Float(0x42746c8c));  // 23.769f, 61.106f
7564 path.cubicTo(SkBits2Float(0x41be1eb9), SkBits2Float(0x427470a5), SkBits2Float(0x41bde354), SkBits2Float(0x42748313), SkBits2Float(0x41bde354), SkBits2Float(0x42748313));  // 23.765f, 61.11f, 23.736f, 61.128f, 23.736f, 61.128f
7565 path.lineTo(SkBits2Float(0x41bcc083), SkBits2Float(0x42751582));  // 23.594f, 61.271f
7566 path.lineTo(SkBits2Float(0x41bcf3b6), SkBits2Float(0x427526ea));  // 23.619f, 61.288f
7567 path.lineTo(SkBits2Float(0x41bd0e56), SkBits2Float(0x42756979));  // 23.632f, 61.353f
7568 path.lineTo(SkBits2Float(0x41bd7cee), SkBits2Float(0x42758313));  // 23.686f, 61.378f
7569 path.cubicTo(SkBits2Float(0x41be8107), SkBits2Float(0x427572b1), SkBits2Float(0x41bf2d0f), SkBits2Float(0x42754290), SkBits2Float(0x41bfd2f2), SkBits2Float(0x4275147b));  // 23.813f, 61.362f, 23.897f, 61.315f, 23.978f, 61.27f
7570 path.lineTo(SkBits2Float(0x41c0ba5f), SkBits2Float(0x4274da1d));  // 24.091f, 61.213f
7571 path.lineTo(SkBits2Float(0x41c0ef9e), SkBits2Float(0x4274de36));  // 24.117f, 61.217f
7572 path.lineTo(SkBits2Float(0x41c13f7d), SkBits2Float(0x4274d3f9));  // 24.156f, 61.207f
7573 path.cubicTo(SkBits2Float(0x41c13f7d), SkBits2Float(0x4274d3f9), SkBits2Float(0x41c174bc), SkBits2Float(0x4274c18a), SkBits2Float(0x41c17cee), SkBits2Float(0x4274be78));  // 24.156f, 61.207f, 24.182f, 61.189f, 24.186f, 61.186f
7574 path.cubicTo(SkBits2Float(0x41c18107), SkBits2Float(0x4274bf7e), SkBits2Float(0x41c1e561), SkBits2Float(0x4274b022), SkBits2Float(0x41c1e561), SkBits2Float(0x4274b022));  // 24.188f, 61.187f, 24.237f, 61.172f, 24.237f, 61.172f
7575 path.lineTo(SkBits2Float(0x41c45e36), SkBits2Float(0x42746e99));  // 24.546f, 61.108f
7576 path.cubicTo(SkBits2Float(0x41c4624f), SkBits2Float(0x42746e99), SkBits2Float(0x41cf999a), SkBits2Float(0x42743853), SkBits2Float(0x41cf999a), SkBits2Float(0x42743853));  // 24.548f, 61.108f, 25.95f, 61.055f, 25.95f, 61.055f
7577 path.lineTo(SkBits2Float(0x420d126f), SkBits2Float(0x4272b43a));  // 35.268f, 60.676f
7578 path.cubicTo(SkBits2Float(0x420d0938), SkBits2Float(0x4272c084), SkBits2Float(0x420cfcee), SkBits2Float(0x4272c49c), SkBits2Float(0x420cfcee), SkBits2Float(0x4272d917));  // 35.259f, 60.688f, 35.247f, 60.692f, 35.247f, 60.712f
7579 path.lineTo(SkBits2Float(0x420d0938), SkBits2Float(0x4272b43a));  // 35.259f, 60.676f
7580 path.cubicTo(SkBits2Float(0x420c7be8), SkBits2Float(0x42737efb), SkBits2Float(0x420b3128), SkBits2Float(0x42743128), SkBits2Float(0x420a27f0), SkBits2Float(0x4274c18a));  // 35.121f, 60.874f, 34.798f, 61.048f, 34.539f, 61.189f
7581 path.lineTo(SkBits2Float(0x42099eb9), SkBits2Float(0x42750c4b));  // 34.405f, 61.262f
7582 path.cubicTo(SkBits2Float(0x420872b1), SkBits2Float(0x4275b022), SkBits2Float(0x4206fbe8), SkBits2Float(0x42764397), SkBits2Float(0x42054396), SkBits2Float(0x4276c084));  // 34.112f, 61.422f, 33.746f, 61.566f, 33.316f, 61.688f
7583 path.cubicTo(SkBits2Float(0x42028313), SkBits2Float(0x42776b86), SkBits2Float(0x42007be8), SkBits2Float(0x4278de36), SkBits2Float(0x41fe7ae2), SkBits2Float(0x427b0f5d));  // 32.628f, 61.855f, 32.121f, 62.217f, 31.81f, 62.765f
7584 path.cubicTo(SkBits2Float(0x41fe4fe0), SkBits2Float(0x427b21cc), SkBits2Float(0x41fdbe78), SkBits2Float(0x427b8419), SkBits2Float(0x41fdbe78), SkBits2Float(0x427b8419));  // 31.789f, 62.783f, 31.718f, 62.879f, 31.718f, 62.879f
7585 path.cubicTo(SkBits2Float(0x41fdccce), SkBits2Float(0x427b71aa), SkBits2Float(0x41fd1cad), SkBits2Float(0x427c27f0), SkBits2Float(0x41fd1cad), SkBits2Float(0x427c27f0));  // 31.725f, 62.861f, 31.639f, 63.039f, 31.639f, 63.039f
7586 path.lineTo(SkBits2Float(0x41fc1eb9), SkBits2Float(0x427d178e));  // 31.515f, 63.273f
7587 path.lineTo(SkBits2Float(0x41fc7efb), SkBits2Float(0x427d020d));  // 31.562f, 63.252f
7588 path.lineTo(SkBits2Float(0x41fbb647), SkBits2Float(0x427d3646));  // 31.464f, 63.303f
7589 path.lineTo(SkBits2Float(0x41fbe76e), SkBits2Float(0x427d25e4));  // 31.488f, 63.287f
7590 path.lineTo(SkBits2Float(0x41fae149), SkBits2Float(0x427d1fbf));  // 31.36f, 63.281f
7591 path.lineTo(SkBits2Float(0x41fa5812), SkBits2Float(0x427d178e));  // 31.293f, 63.273f
7592 path.cubicTo(SkBits2Float(0x41f88108), SkBits2Float(0x427cf9dc), SkBits2Float(0x41f73541), SkBits2Float(0x427cb646), SkBits2Float(0x41f5d70c), SkBits2Float(0x427c6d92));  // 31.063f, 63.244f, 30.901f, 63.178f, 30.73f, 63.107f
7593 path.lineTo(SkBits2Float(0x41f5999b), SkBits2Float(0x427c6148));  // 30.7f, 63.095f
7594 path.cubicTo(SkBits2Float(0x41f5999b), SkBits2Float(0x427c6148), SkBits2Float(0x41f2d0e7), SkBits2Float(0x427bdc29), SkBits2Float(0x41f2a9fd), SkBits2Float(0x427bd4fe));  // 30.7f, 63.095f, 30.352f, 62.965f, 30.333f, 62.958f
7595 path.cubicTo(SkBits2Float(0x41f28d51), SkBits2Float(0x427bc49c), SkBits2Float(0x41f26667), SkBits2Float(0x427bb021), SkBits2Float(0x41f26667), SkBits2Float(0x427bb021));  // 30.319f, 62.942f, 30.3f, 62.922f, 30.3f, 62.922f
7596 path.lineTo(SkBits2Float(0x41efed92), SkBits2Float(0x427b1db2));  // 29.991f, 62.779f
7597 path.lineTo(SkBits2Float(0x41ec9582), SkBits2Float(0x427a624e));  // 29.573f, 62.596f
7598 path.cubicTo(SkBits2Float(0x41eca1cc), SkBits2Float(0x427a645a), SkBits2Float(0x41eaf9dc), SkBits2Float(0x427a3021), SkBits2Float(0x41eaf9dc), SkBits2Float(0x427a3021));  // 29.579f, 62.598f, 29.372f, 62.547f, 29.372f, 62.547f
7599 path.cubicTo(SkBits2Float(0x41eaf9dc), SkBits2Float(0x427a3021), SkBits2Float(0x41ea126f), SkBits2Float(0x427a1894), SkBits2Float(0x41e9f3b7), SkBits2Float(0x427a1687));  // 29.372f, 62.547f, 29.259f, 62.524f, 29.244f, 62.522f
7600 path.cubicTo(SkBits2Float(0x41e9ccce), SkBits2Float(0x427a072b), SkBits2Float(0x41e99375), SkBits2Float(0x4279f1aa), SkBits2Float(0x41e99375), SkBits2Float(0x4279f1aa));  // 29.225f, 62.507f, 29.197f, 62.486f, 29.197f, 62.486f
7601 path.lineTo(SkBits2Float(0x41e86e98), SkBits2Float(0x4279d604));  // 29.054f, 62.459f
7602 path.lineTo(SkBits2Float(0x41e6147b), SkBits2Float(0x4279a3d7));  // 28.76f, 62.41f
7603 path.cubicTo(SkBits2Float(0x41e00625), SkBits2Float(0x42796b85), SkBits2Float(0x41db49ba), SkBits2Float(0x427a7ae1), SkBits2Float(0x41d62b02), SkBits2Float(0x427bc8b4));  // 28.003f, 62.355f, 27.411f, 62.62f, 26.771f, 62.946f
7604 path.cubicTo(SkBits2Float(0x41d24fdf), SkBits2Float(0x427cba5e), SkBits2Float(0x41cecccd), SkBits2Float(0x427ce872), SkBits2Float(0x41ca0e56), SkBits2Float(0x427c6872));  // 26.289f, 63.182f, 25.85f, 63.227f, 25.257f, 63.102f
7605 path.cubicTo(SkBits2Float(0x41ca0a3d), SkBits2Float(0x427c676c), SkBits2Float(0x41c9353f), SkBits2Float(0x427c570a), SkBits2Float(0x41c9353f), SkBits2Float(0x427c570a));  // 25.255f, 63.101f, 25.151f, 63.085f, 25.151f, 63.085f
7606 path.lineTo(SkBits2Float(0x41c73b64), SkBits2Float(0x427c26e9));  // 24.904f, 63.038f
7607 path.lineTo(SkBits2Float(0x41c774bc), SkBits2Float(0x427c374b));  // 24.932f, 63.054f
7608 path.lineTo(SkBits2Float(0x41c67ef9), SkBits2Float(0x427c0312));  // 24.812f, 63.003f
7609 path.cubicTo(SkBits2Float(0x41c4df3b), SkBits2Float(0x427bc5a1), SkBits2Float(0x41c2a3d6), SkBits2Float(0x427b8d4f), SkBits2Float(0x41c0851e), SkBits2Float(0x427b6978));  // 24.609f, 62.943f, 24.33f, 62.888f, 24.065f, 62.853f
7610 path.cubicTo(SkBits2Float(0x41bf1893), SkBits2Float(0x427b52f1), SkBits2Float(0x41bd2d0e), SkBits2Float(0x427b52f1), SkBits2Float(0x41bc020c), SkBits2Float(0x427b5e34));  // 23.887f, 62.831f, 23.647f, 62.831f, 23.501f, 62.842f
7611 path.lineTo(SkBits2Float(0x41bac6a8), SkBits2Float(0x427b6871));  // 23.347f, 62.852f
7612 path.cubicTo(SkBits2Float(0x41b9db23), SkBits2Float(0x427b72ae), SkBits2Float(0x41b87cee), SkBits2Float(0x427b820b), SkBits2Float(0x41b7fbe7), SkBits2Float(0x427b655f));  // 23.232f, 62.862f, 23.061f, 62.877f, 22.998f, 62.849f
7613 path.cubicTo(SkBits2Float(0x41b7fbe7), SkBits2Float(0x427b5f3a), SkBits2Float(0x41b7dd2f), SkBits2Float(0x427b48b3), SkBits2Float(0x41b7dd2f), SkBits2Float(0x427b48b3));  // 22.998f, 62.843f, 22.983f, 62.821f, 22.983f, 62.821f
7614 path.lineTo(SkBits2Float(0x41b7a5e3), SkBits2Float(0x427b22d0));  // 22.956f, 62.784f
7615 path.cubicTo(SkBits2Float(0x41b7be76), SkBits2Float(0x427b3332), SkBits2Float(0x41b74395), SkBits2Float(0x427aed91), SkBits2Float(0x41b74395), SkBits2Float(0x427aed91));  // 22.968f, 62.8f, 22.908f, 62.732f, 22.908f, 62.732f
7616 path.lineTo(SkBits2Float(0x41b70c49), SkBits2Float(0x427acfdf));  // 22.881f, 62.703f
7617 path.cubicTo(SkBits2Float(0x41b70418), SkBits2Float(0x427ad916), SkBits2Float(0x41b6d70a), SkBits2Float(0x427a9168), SkBits2Float(0x41b6d70a), SkBits2Float(0x427a9168));  // 22.877f, 62.712f, 22.855f, 62.642f, 22.855f, 62.642f
7618 path.lineTo(SkBits2Float(0x41b6bc6a), SkBits2Float(0x427a645a));  // 22.842f, 62.598f
7619 path.lineTo(SkBits2Float(0x41b66e97), SkBits2Float(0x427a75c2));  // 22.804f, 62.615f
7620 path.cubicTo(SkBits2Float(0x41b6872a), SkBits2Float(0x427a71a9), SkBits2Float(0x41b5a9fb), SkBits2Float(0x4279c6a7), SkBits2Float(0x41b5a9fb), SkBits2Float(0x4279c6a7));  // 22.816f, 62.611f, 22.708f, 62.444f, 22.708f, 62.444f
7621 path.lineTo(SkBits2Float(0x41b59580), SkBits2Float(0x4279b645));  // 22.698f, 62.428f
7622 path.lineTo(SkBits2Float(0x41b549b9), SkBits2Float(0x42799fbe));  // 22.661f, 62.406f
7623 path.lineTo(SkBits2Float(0x41b53957), SkBits2Float(0x42799ba5));  // 22.653f, 62.402f
7624 path.cubicTo(SkBits2Float(0x41b52b01), SkBits2Float(0x42798d4f), SkBits2Float(0x41b4a3d6), SkBits2Float(0x427920c4), SkBits2Float(0x41b4a3d6), SkBits2Float(0x427920c4));  // 22.646f, 62.388f, 22.58f, 62.282f, 22.58f, 62.282f
7625 path.lineTo(SkBits2Float(0x41b43126), SkBits2Float(0x4278be76));  // 22.524f, 62.186f
7626 path.lineTo(SkBits2Float(0x41b3ed90), SkBits2Float(0x4278ab01));  // 22.491f, 62.167f
7627 path.lineTo(SkBits2Float(0x41b3be75), SkBits2Float(0x42789ba5));  // 22.468f, 62.152f
7628 path.lineTo(SkBits2Float(0x41b3d0e4), SkBits2Float(0x4278b957));  // 22.477f, 62.181f
7629 path.lineTo(SkBits2Float(0x41b351ea), SkBits2Float(0x42786353));  // 22.415f, 62.097f
7630 path.lineTo(SkBits2Float(0x41b33957), SkBits2Float(0x42786353));  // 22.403f, 62.097f
7631 path.cubicTo(SkBits2Float(0x41b326e8), SkBits2Float(0x42785a1c), SkBits2Float(0x41b2fbe6), SkBits2Float(0x427846a7), SkBits2Float(0x41b2fbe6), SkBits2Float(0x427846a7));  // 22.394f, 62.088f, 22.373f, 62.069f, 22.373f, 62.069f
7632 path.lineTo(SkBits2Float(0x41b2353e), SkBits2Float(0x4277f8d4));  // 22.276f, 61.993f
7633 path.cubicTo(SkBits2Float(0x41b26040), SkBits2Float(0x42780624), SkBits2Float(0x41b16e96), SkBits2Float(0x4277d0e4), SkBits2Float(0x41b16e96), SkBits2Float(0x4277d0e4));  // 22.297f, 62.006f, 22.179f, 61.954f, 22.179f, 61.954f
7634 path.cubicTo(SkBits2Float(0x41b16e96), SkBits2Float(0x4277d0e4), SkBits2Float(0x41b10417), SkBits2Float(0x4277c188), SkBits2Float(0x41b0fffe), SkBits2Float(0x4277c188));  // 22.179f, 61.954f, 22.127f, 61.939f, 22.125f, 61.939f
7635 path.cubicTo(SkBits2Float(0x41b0fffe), SkBits2Float(0x4277bf7c), SkBits2Float(0x41b03f7b), SkBits2Float(0x427778d4), SkBits2Float(0x41b03f7b), SkBits2Float(0x427778d4));  // 22.125f, 61.937f, 22.031f, 61.868f, 22.031f, 61.868f
7636 path.lineTo(SkBits2Float(0x41ae8729), SkBits2Float(0x4276f7ce));  // 21.816f, 61.742f
7637 path.cubicTo(SkBits2Float(0x41adb644), SkBits2Float(0x4276d0e5), SkBits2Float(0x41ad22cf), SkBits2Float(0x42768e55), SkBits2Float(0x41ac8729), SkBits2Float(0x427648b3));  // 21.714f, 61.704f, 21.642f, 61.639f, 21.566f, 61.571f
7638 path.lineTo(SkBits2Float(0x41ab957f), SkBits2Float(0x4275e24d));  // 21.448f, 61.471f
7639 path.cubicTo(SkBits2Float(0x41aa8f5a), SkBits2Float(0x42757df3), SkBits2Float(0x41a9b644), SkBits2Float(0x42751fbe), SkBits2Float(0x41a8a3d5), SkBits2Float(0x42747fff));  // 21.32f, 61.373f, 21.214f, 61.281f, 21.08f, 61.125f
7640 path.cubicTo(SkBits2Float(0x41a6d708), SkBits2Float(0x4273a3d6), SkBits2Float(0x41a645a0), SkBits2Float(0x4272dd2e), SkBits2Float(0x41a58935), SkBits2Float(0x4271b126));  // 20.855f, 60.91f, 20.784f, 60.716f, 20.692f, 60.423f
7641 path.lineTo(SkBits2Float(0x41a5851c), SkBits2Float(0x4271a7ef));  // 20.69f, 60.414f
7642 path.lineTo(SkBits2Float(0x41a56a7c), SkBits2Float(0x42719687));  // 20.677f, 60.397f
7643 path.lineTo(SkBits2Float(0x41a54dd0), SkBits2Float(0x4271820c));  // 20.663f, 60.377f
7644 path.cubicTo(SkBits2Float(0x41a50209), SkBits2Float(0x42711062), SkBits2Float(0x41a4ced6), SkBits2Float(0x42707efa), SkBits2Float(0x41a4be74), SkBits2Float(0x426ff4bc));  // 20.626f, 60.266f, 20.601f, 60.124f, 20.593f, 59.989f
7645 path.cubicTo(SkBits2Float(0x41a51478), SkBits2Float(0x427073b6), SkBits2Float(0x41a576c6), SkBits2Float(0x42710b43), SkBits2Float(0x41a576c6), SkBits2Float(0x42710b43));  // 20.635f, 60.113f, 20.683f, 60.261f, 20.683f, 60.261f
7646 path.cubicTo(SkBits2Float(0x41a71478), SkBits2Float(0x42730418), SkBits2Float(0x41a9df39), SkBits2Float(0x42746666), SkBits2Float(0x41adc6a5), SkBits2Float(0x427526e9));  // 20.885f, 60.754f, 21.234f, 61.1f, 21.722f, 61.288f
7647 path.cubicTo(SkBits2Float(0x41adc499), SkBits2Float(0x427525e3), SkBits2Float(0x41ae47ab), SkBits2Float(0x42754395), SkBits2Float(0x41ae47ab), SkBits2Float(0x42754395));  // 21.721f, 61.287f, 21.785f, 61.316f, 21.785f, 61.316f
7648 path.lineTo(SkBits2Float(0x41afe55d), SkBits2Float(0x4275978d));  // 21.987f, 61.398f
7649 path.cubicTo(SkBits2Float(0x41b27cea), SkBits2Float(0x4275e147), SkBits2Float(0x41b54dd0), SkBits2Float(0x4275d916), SkBits2Float(0x41b772ad), SkBits2Float(0x42758106));  // 22.311f, 61.47f, 22.663f, 61.462f, 22.931f, 61.376f
7650 path.cubicTo(SkBits2Float(0x41b8df38), SkBits2Float(0x42753d70), SkBits2Float(0x41ba1684), SkBits2Float(0x4274d1eb), SkBits2Float(0x41bb4186), SkBits2Float(0x42746979));  // 23.109f, 61.31f, 23.261f, 61.205f, 23.407f, 61.103f
7651 path.lineTo(SkBits2Float(0x41bdbc67), SkBits2Float(0x4273a1cb));  // 23.717f, 60.908f
7652 path.cubicTo(SkBits2Float(0x41c0f1a6), SkBits2Float(0x4272cccd), SkBits2Float(0x41c3cabd), SkBits2Float(0x4272b958), SkBits2Float(0x41c71684), SkBits2Float(0x4272a3d7));  // 24.118f, 60.7f, 24.474f, 60.681f, 24.886f, 60.66f
7653 path.lineTo(SkBits2Float(0x41ca4392), SkBits2Float(0x42728831));  // 25.283f, 60.633f
7654 path.lineTo(SkBits2Float(0x41def9d8), SkBits2Float(0x42723f7d));  // 27.872f, 60.562f
7655 path.cubicTo(SkBits2Float(0x41e15a1a), SkBits2Float(0x42722d0e), SkBits2Float(0x41e4105f), SkBits2Float(0x42723333), SkBits2Float(0x41e60e53), SkBits2Float(0x4271c7ae));  // 28.169f, 60.544f, 28.508f, 60.55f, 28.757f, 60.445f
7656 path.cubicTo(SkBits2Float(0x41e87ceb), SkBits2Float(0x42715810), SkBits2Float(0x41e97ef7), SkBits2Float(0x427077cf), SkBits2Float(0x41ea9165), SkBits2Float(0x426f8a3d));  // 29.061f, 60.336f, 29.187f, 60.117f, 29.321f, 59.885f
7657 path.lineTo(SkBits2Float(0x41ebccc9), SkBits2Float(0x426e8a3d));  // 29.475f, 59.635f
7658 path.cubicTo(SkBits2Float(0x41ebced5), SkBits2Float(0x426e8937), SkBits2Float(0x41ec2d0b), SkBits2Float(0x426e4ccc), SkBits2Float(0x41ec2d0b), SkBits2Float(0x426e4ccc));  // 29.476f, 59.634f, 29.522f, 59.575f, 29.522f, 59.575f
7659 path.lineTo(SkBits2Float(0x41ecae11), SkBits2Float(0x426dde34));  // 29.585f, 59.467f
7660 path.lineTo(SkBits2Float(0x41ecdf38), SkBits2Float(0x426dde34));  // 29.609f, 59.467f
7661 path.lineTo(SkBits2Float(0x41ed26e6), SkBits2Float(0x426dc082));  // 29.644f, 59.438f
7662 path.cubicTo(SkBits2Float(0x41ee1ca9), SkBits2Float(0x426d5a1c), SkBits2Float(0x41eeccc9), SkBits2Float(0x426d1061), SkBits2Float(0x41f01684), SkBits2Float(0x426ce978));  // 29.764f, 59.338f, 29.85f, 59.266f, 30.011f, 59.228f
7663 path.cubicTo(SkBits2Float(0x41f29fbb), SkBits2Float(0x426c8e55), SkBits2Float(0x420cced8), SkBits2Float(0x426bd4fd), SkBits2Float(0x420e6c8a), SkBits2Float(0x426bdf3b));  // 30.328f, 59.139f, 35.202f, 58.958f, 35.606f, 58.968f
7664 path.moveTo(SkBits2Float(0x41b60622), SkBits2Float(0x427adb22));  // 22.753f, 62.714f
7665 path.lineTo(SkBits2Float(0x41b60416), SkBits2Float(0x427ad709));  // 22.752f, 62.71f
7666 path.cubicTo(SkBits2Float(0x41b60416), SkBits2Float(0x427ad603), SkBits2Float(0x41b60416), SkBits2Float(0x427ad915), SkBits2Float(0x41b60622), SkBits2Float(0x427adb22));  // 22.752f, 62.709f, 22.752f, 62.712f, 22.753f, 62.714f
7667 path.moveTo(SkBits2Float(0x41bed2ef), SkBits2Float(0x4274cbc6));  // 23.853f, 61.199f
7668 path.close();
7669 path.moveTo(SkBits2Float(0x41c04fdd), SkBits2Float(0x42746560));  // 24.039f, 61.099f
7670 path.close();
7671 }
7672 
joel_16(skiatest::Reporter * reporter,const char * filename)7673 static void joel_16(skiatest::Reporter* reporter, const char* filename) {
7674     SkPath path;
7675     make_joel_16(path);
7676 testSimplify(reporter, path, filename);
7677 }
7678 
joel_16x(skiatest::Reporter * reporter,const char * filename)7679 static void joel_16x(skiatest::Reporter* reporter, const char* filename) {
7680     SkPath path;
7681     path.setFillType(SkPathFillType::kEvenOdd);
7682     make_joel_16(path);
7683 testSimplify(reporter, path, filename);
7684 }
7685 
coincubics(skiatest::Reporter * reporter,const char * filename)7686 static void coincubics(skiatest::Reporter* reporter, const char* filename) {
7687     SkPath path;
7688     path.moveTo(SkDoubleToScalar(0.00000000000000000), SkDoubleToScalar(0.00000000000000000));
7689     path.cubicTo(SkDoubleToScalar(0.00022939755581319332), SkDoubleToScalar(0.00022927834652364254),
7690         SkDoubleToScalar(0.00022930106206331402), SkDoubleToScalar(0.00022929999977350235),
7691         SkDoubleToScalar(0.00022930069826543331), SkDoubleToScalar(0.00022913678549230099));
7692     path.lineTo(SkDoubleToScalar(0.00022930069826543331), SkDoubleToScalar(0.00022930069826543331));
7693     path.cubicTo(SkDoubleToScalar(0.00011465034913271666), SkDoubleToScalar(0.00011465034913271666),
7694             SkDoubleToScalar(0.00011465061106719077), SkDoubleToScalar(0.00011460937093943357),
7695             SkDoubleToScalar(0.00014331332931760699), SkDoubleToScalar(0.00014325146912597120));
7696 testSimplify(reporter, path, filename);
7697 }
7698 
grshapearc(skiatest::Reporter * reporter,const char * filename)7699 static void grshapearc(skiatest::Reporter* reporter, const char* filename) {
7700     SkPath path;
7701 path.setFillType(SkPathFillType::kWinding);
7702 path.moveTo(25.0098f, 23.1973f);
7703 path.lineTo(25.5689f, 22.3682f);
7704 path.conicTo(26.1281f, 21.5392f, 26.9572f, 22.0984f, 0.707107f);
7705 path.conicTo(27.7862f, 22.6576f, 27.227f, 23.4866f, 0.707107f);
7706 path.lineTo(26.6678f, 24.3156f);
7707 path.conicTo(26.1086f, 25.1447f, 25.2796f, 24.5855f, 0.707107f);
7708 path.conicTo(24.4506f, 24.0263f, 25.0098f, 23.1973f, 0.707107f);
7709 path.close();
7710 path.moveTo(26.6873f, 20.7101f);
7711 path.lineTo(27.2465f, 19.8811f);
7712 path.conicTo(27.8057f, 19.0521f, 28.6348f, 19.6113f, 0.707107f);
7713 path.conicTo(29.4638f, 20.1704f, 28.9046f, 20.9995f, 0.707107f);
7714 path.lineTo(28.3454f, 21.8285f);
7715 path.conicTo(27.7862f, 22.6576f, 26.9572f, 22.0984f, 0.707107f);
7716 path.conicTo(26.1281f, 21.5392f, 26.6873f, 20.7101f, 0.707107f);
7717 path.close();
7718 path.moveTo(28.3649f, 18.223f);
7719 path.lineTo(28.9241f, 17.394f);
7720 path.conicTo(29.4833f, 16.565f, 30.3123f, 17.1241f, 0.707107f);
7721 path.conicTo(31.1414f, 17.6833f, 30.5822f, 18.5124f, 0.707107f);
7722 path.lineTo(30.023f, 19.3414f);
7723 path.conicTo(29.4638f, 20.1704f, 28.6348f, 19.6113f, 0.707107f);
7724 path.conicTo(27.8057f, 19.0521f, 28.3649f, 18.223f, 0.707107f);
7725 path.close();
7726 path.moveTo(30.0425f, 15.7359f);
7727 path.lineTo(30.6017f, 14.9069f);
7728 path.conicTo(31.1609f, 14.0778f, 31.9899f, 14.637f, 0.707107f);
7729 path.conicTo(32.8189f, 15.1962f, 32.2598f, 16.0253f, 0.707107f);
7730 path.lineTo(31.7006f, 16.8543f);
7731 path.conicTo(31.1414f, 17.6833f, 30.3123f, 17.1241f, 0.707107f);
7732 path.conicTo(29.4833f, 16.565f, 30.0425f, 15.7359f, 0.707107f);
7733 path.close();
7734 path.moveTo(31.7201f, 13.2488f);
7735 path.lineTo(32.2793f, 12.4198f);
7736 path.conicTo(32.8385f, 11.5907f, 33.6675f, 12.1499f, 0.707107f);
7737 path.conicTo(34.4965f, 12.7091f, 33.9373f, 13.5381f, 0.707107f);
7738 path.lineTo(33.3781f, 14.3672f);
7739 path.conicTo(32.8189f, 15.1962f, 31.9899f, 14.637f, 0.707107f);
7740 path.conicTo(31.1609f, 14.0778f, 31.7201f, 13.2488f, 0.707107f);
7741 path.close();
7742 path.moveTo(33.3976f, 10.7617f);
7743 path.lineTo(33.9568f, 9.93265f);
7744 path.conicTo(34.516f, 9.10361f, 35.3451f, 9.6628f, 0.707107f);
7745 path.conicTo(36.1741f, 10.222f, 35.6149f, 11.051f, 0.707107f);
7746 path.lineTo(35.0557f, 11.8801f);
7747 path.conicTo(34.4965f, 12.7091f, 33.6675f, 12.1499f, 0.707107f);
7748 path.conicTo(32.8385f, 11.5907f, 33.3976f, 10.7617f, 0.707107f);
7749 path.close();
7750 path.moveTo(35.0752f, 8.27457f);
7751 path.lineTo(35.6344f, 7.44554f);
7752 path.conicTo(36.1936f, 6.6165f, 37.0226f, 7.17569f, 0.707107f);
7753 path.conicTo(37.8517f, 7.73488f, 37.2925f, 8.56392f, 0.707107f);
7754 path.lineTo(36.7333f, 9.39296f);
7755 path.conicTo(36.1741f, 10.222f, 35.3451f, 9.6628f, 0.707107f);
7756 path.conicTo(34.516f, 9.10361f, 35.0752f, 8.27457f, 0.707107f);
7757 path.close();
7758 path.moveTo(36.7528f, 5.78746f);
7759 path.lineTo(37.312f, 4.95842f);
7760 path.conicTo(37.8712f, 4.12939f, 38.7002f, 4.68858f, 0.707107f);
7761 path.conicTo(39.5293f, 5.24777f, 38.9701f, 6.07681f, 0.707107f);
7762 path.lineTo(38.4109f, 6.90585f);
7763 path.conicTo(37.8517f, 7.73488f, 37.0226f, 7.17569f, 0.707107f);
7764 path.conicTo(36.1936f, 6.6165f, 36.7528f, 5.78746f, 0.707107f);
7765 path.close();
7766 path.moveTo(39.9447f, 3.72429f);
7767 path.quadTo(40.3524f, 4.01069f, 40.7489f, 4.31248f);
7768 path.conicTo(41.5445f, 4.9182f, 40.9388f, 5.71387f, 0.707107f);
7769 path.conicTo(40.3331f, 6.50955f, 39.5374f, 5.90383f, 0.707107f);
7770 path.quadTo(39.1714f, 5.62521f, 38.7951f, 5.36088f);
7771 path.conicTo(37.9768f, 4.78608f, 38.5516f, 3.96779f, 0.707107f);
7772 path.conicTo(39.1264f, 3.14949f, 39.9447f, 3.72429f, 0.707107f);
7773 path.close();
7774 path.moveTo(42.3194f, 5.60826f);
7775 path.quadTo(42.707f, 5.95446f, 43.0804f, 6.31583f);
7776 path.conicTo(43.7991f, 7.01122f, 43.1037f, 7.72985f, 0.707107f);
7777 path.conicTo(42.4083f, 8.44848f, 41.6896f, 7.75308f, 0.707107f);
7778 path.quadTo(41.3448f, 7.41944f, 40.9871f, 7.09992f);
7779 path.conicTo(40.2413f, 6.43379f, 40.9074f, 5.68796f, 0.707107f);
7780 path.conicTo(41.5735f, 4.94212f, 42.3194f, 5.60826f, 0.707107f);
7781 path.close();
7782 path.moveTo(44.5406f, 7.84871f);
7783 path.quadTo(44.8959f, 8.25352f, 45.2341f, 8.67266f);
7784 path.conicTo(45.862f, 9.4509f, 45.0838f, 10.0789f, 0.707107f);
7785 path.conicTo(44.3056f, 10.7068f, 43.6776f, 9.9286f, 0.707107f);
7786 path.quadTo(43.3654f, 9.54174f, 43.0374f, 9.16805f);
7787 path.conicTo(42.3778f, 8.41649f, 43.1293f, 7.75682f, 0.707107f);
7788 path.conicTo(43.8809f, 7.09715f, 44.5406f, 7.84871f, 0.707107f);
7789 path.close();
7790 path.moveTo(46.528f, 10.4211f);
7791 path.quadTo(46.815f, 10.8449f, 47.0851f, 11.2796f);
7792 path.conicTo(47.6128f, 12.129f, 46.7633f, 12.6567f, 0.707107f);
7793 path.conicTo(45.9139f, 13.1844f, 45.3862f, 12.335f, 0.707107f);
7794 path.quadTo(45.1369f, 11.9337f, 44.872f, 11.5426f);
7795 path.conicTo(44.3113f, 10.7146f, 45.1393f, 10.1538f, 0.707107f);
7796 path.conicTo(45.9673f, 9.5931f, 46.528f, 10.4211f, 0.707107f);
7797 path.close();
7798 path.moveTo(48.1056f, 13.0782f);
7799 path.quadTo(48.3449f, 13.542f, 48.5654f, 14.015f);
7800 path.conicTo(48.9879f, 14.9213f, 48.0816f, 15.3438f, 0.707107f);
7801 path.conicTo(47.1752f, 15.7663f, 46.7527f, 14.86f, 0.707107f);
7802 path.quadTo(46.5492f, 14.4234f, 46.3283f, 13.9953f);
7803 path.conicTo(45.8698f, 13.1066f, 46.7584f, 12.6481f, 0.707107f);
7804 path.conicTo(47.6471f, 12.1895f, 48.1056f, 13.0782f, 0.707107f);
7805 path.close();
7806 path.moveTo(49.3755f, 15.9538f);
7807 path.quadTo(49.5594f, 16.4493f, 49.7229f, 16.9516f);
7808 path.conicTo(50.0325f, 17.9025f, 49.0816f, 18.2121f, 0.707107f);
7809 path.conicTo(48.1307f, 18.5216f, 47.8212f, 17.5707f, 0.707107f);
7810 path.quadTo(47.6702f, 17.1069f, 47.5005f, 16.6497f);
7811 path.conicTo(47.1526f, 15.7122f, 48.0901f, 15.3642f, 0.707107f);
7812 path.conicTo(49.0276f, 15.0163f, 49.3755f, 15.9538f, 0.707107f);
7813 path.close();
7814 path.moveTo(50.2964f, 18.9923f);
7815 path.quadTo(50.4191f, 19.5089f, 50.5206f, 20.0302f);
7816 path.conicTo(50.7117f, 21.0117f, 49.7302f, 21.2029f, 0.707107f);
7817 path.conicTo(48.7486f, 21.394f, 48.5575f, 20.4125f, 0.707107f);
7818 path.quadTo(48.4638f, 19.9313f, 48.3505f, 19.4544f);
7819 path.conicTo(48.1194f, 18.4815f, 49.0924f, 18.2504f, 0.707107f);
7820 path.conicTo(50.0653f, 18.0193f, 50.2964f, 18.9923f, 0.707107f);
7821 path.close();
7822 path.moveTo(50.8373f, 22.0956f);
7823 path.quadTo(50.8955f, 22.6138f, 50.933f, 23.1341f);
7824 path.conicTo(51.0047f, 24.1315f, 50.0073f, 24.2033f, 0.707107f);
7825 path.conicTo(49.0099f, 24.275f, 48.9381f, 23.2776f, 0.707107f);
7826 path.quadTo(48.9036f, 22.7975f, 48.8498f, 22.3191f);
7827 path.conicTo(48.7381f, 21.3253f, 49.7318f, 21.2136f, 0.707107f);
7828 path.conicTo(50.7255f, 21.1019f, 50.8373f, 22.0956f, 0.707107f);
7829 path.close();
7830 path.moveTo(50.9992f, 25.2099f);
7831 path.quadTo(50.9949f, 25.7358f, 50.9694f, 26.2608f);
7832 path.conicTo(50.9209f, 27.2596f, 49.9221f, 27.2111f, 0.707107f);
7833 path.conicTo(48.9233f, 27.1626f, 48.9718f, 26.1638f, 0.707107f);
7834 path.quadTo(48.9953f, 25.679f, 48.9992f, 25.1938f);
7835 path.conicTo(49.0073f, 24.1938f, 50.0073f, 24.2019f, 0.707107f);
7836 path.conicTo(51.0072f, 24.21f, 50.9992f, 25.2099f, 0.707107f);
7837 path.close();
7838 path.moveTo(50.7839f, 28.3454f);
7839 path.quadTo(50.7172f, 28.8596f, 50.63f, 29.3708f);
7840 path.conicTo(50.4619f, 30.3565f, 49.4761f, 30.1884f, 0.707107f);
7841 path.conicTo(48.4903f, 30.0203f, 48.6584f, 29.0346f, 0.707107f);
7842 path.quadTo(48.7389f, 28.5627f, 48.8005f, 28.088f);
7843 path.conicTo(48.9292f, 27.0963f, 49.9209f, 27.225f, 0.707107f);
7844 path.conicTo(50.9126f, 27.3537f, 50.7839f, 28.3454f, 0.707107f);
7845 path.close();
7846 path.moveTo(50.1906f, 31.437f);
7847 path.quadTo(50.0558f, 31.9646f, 49.899f, 32.4861f);
7848 path.conicTo(49.611f, 33.4438f, 48.6534f, 33.1558f, 0.707107f);
7849 path.conicTo(47.6957f, 32.8679f, 47.9837f, 31.9103f, 0.707107f);
7850 path.quadTo(48.1284f, 31.4289f, 48.2528f, 30.9418f);
7851 path.conicTo(48.5004f, 29.9729f, 49.4693f, 30.2205f, 0.707107f);
7852 path.conicTo(50.4382f, 30.4681f, 50.1906f, 31.437f, 0.707107f);
7853 path.close();
7854 path.moveTo(49.1978f, 34.5114f);
7855 path.quadTo(49.0051f, 35.0016f, 48.7927f, 35.4837f);
7856 path.conicTo(48.3895f, 36.3988f, 47.4744f, 35.9956f, 0.707107f);
7857 path.conicTo(46.5593f, 35.5923f, 46.9625f, 34.6772f, 0.707107f);
7858 path.quadTo(47.1586f, 34.2323f, 47.3364f, 33.7797f);
7859 path.conicTo(47.7023f, 32.849f, 48.6329f, 33.2149f, 0.707107f);
7860 path.conicTo(49.5636f, 33.5807f, 49.1978f, 34.5114f, 0.707107f);
7861 path.close();
7862 path.moveTo(47.8852f, 37.3397f);
7863 path.quadTo(47.6449f, 37.7853f, 47.3876f, 38.2211f);
7864 path.conicTo(46.879f, 39.0821f, 46.018f, 38.5736f, 0.707107f);
7865 path.conicTo(45.1569f, 38.0651f, 45.6655f, 37.204f, 0.707107f);
7866 path.quadTo(45.903f, 36.8018f, 46.1248f, 36.3906f);
7867 path.conicTo(46.5993f, 35.5103f, 47.4796f, 35.9849f, 0.707107f);
7868 path.conicTo(48.3598f, 36.4595f, 47.8852f, 37.3397f, 0.707107f);
7869 path.close();
7870 path.moveTo(46.3154f, 39.8881f);
7871 path.quadTo(46.0303f, 40.2962f, 45.7299f, 40.693f);
7872 path.conicTo(45.1264f, 41.4903f, 44.3291f, 40.8867f, 0.707107f);
7873 path.conicTo(43.5318f, 40.2831f, 44.1353f, 39.4858f, 0.707107f);
7874 path.quadTo(44.4126f, 39.1195f, 44.6757f, 38.7428f);
7875 path.conicTo(45.2483f, 37.923f, 46.0682f, 38.4956f, 0.707107f);
7876 path.conicTo(46.888f, 39.0682f, 46.3154f, 39.8881f, 0.707107f);
7877 path.close();
7878 path.moveTo(44.4398f, 42.2654f);
7879 path.quadTo(44.095f, 42.6536f, 43.7349f, 43.0278f);
7880 path.conicTo(43.0415f, 43.7484f, 42.321f, 43.055f, 0.707107f);
7881 path.conicTo(41.6004f, 42.3616f, 42.2938f, 41.641f, 0.707107f);
7882 path.quadTo(42.6261f, 41.2957f, 42.9444f, 40.9374f);
7883 path.conicTo(43.6084f, 40.1897f, 44.3561f, 40.8537f, 0.707107f);
7884 path.conicTo(45.1038f, 41.5177f, 44.4398f, 42.2654f, 0.707107f);
7885 path.close();
7886 path.moveTo(42.2075f, 44.4911f);
7887 path.quadTo(41.804f, 44.8473f, 41.3862f, 45.1865f);
7888 path.conicTo(40.6098f, 45.8167f, 39.9795f, 45.0403f, 0.707107f);
7889 path.conicTo(39.3493f, 44.2639f, 40.1257f, 43.6336f, 0.707107f);
7890 path.quadTo(40.5114f, 43.3205f, 40.8838f, 42.9918f);
7891 path.conicTo(41.6335f, 42.3299f, 42.2953f, 43.0796f, 0.707107f);
7892 path.conicTo(42.9572f, 43.8292f, 42.2075f, 44.4911f, 0.707107f);
7893 path.close();
7894 path.moveTo(39.6379f, 46.488f);
7895 path.quadTo(39.2151f, 46.776f, 38.7814f, 47.0471f);
7896 path.conicTo(37.9334f, 47.5771f, 37.4034f, 46.7292f, 0.707107f);
7897 path.conicTo(36.8733f, 45.8812f, 37.7213f, 45.3511f, 0.707107f);
7898 path.quadTo(38.1217f, 45.1009f, 38.5119f, 44.835f);
7899 path.conicTo(39.3383f, 44.2721f, 39.9013f, 45.0985f, 0.707107f);
7900 path.conicTo(40.4643f, 45.925f, 39.6379f, 46.488f, 0.707107f);
7901 path.close();
7902 path.moveTo(36.9864f, 48.0722f);
7903 path.quadTo(36.5234f, 48.3127f, 36.0513f, 48.5344f);
7904 path.conicTo(35.1461f, 48.9595f, 34.7211f, 48.0543f, 0.707107f);
7905 path.conicTo(34.296f, 47.1491f, 35.2012f, 46.7241f, 0.707107f);
7906 path.quadTo(35.6371f, 46.5194f, 36.0644f, 46.2974f);
7907 path.conicTo(36.9518f, 45.8364f, 37.4128f, 46.7238f, 0.707107f);
7908 path.conicTo(37.8738f, 47.6112f, 36.9864f, 48.0722f, 0.707107f);
7909 path.close();
7910 path.moveTo(34.1153f, 49.3498f);
7911 path.quadTo(33.6206f, 49.535f, 33.1187f, 49.6999f);
7912 path.conicTo(32.1687f, 50.0122f, 31.8565f, 49.0622f, 0.707107f);
7913 path.conicTo(31.5442f, 48.1122f, 32.4942f, 47.7999f, 0.707107f);
7914 path.quadTo(32.9575f, 47.6477f, 33.4141f, 47.4767f);
7915 path.conicTo(34.3507f, 47.1261f, 34.7012f, 48.0627f, 0.707107f);
7916 path.conicTo(35.0518f, 48.9992f, 34.1153f, 49.3498f, 0.707107f);
7917 path.close();
7918 path.moveTo(31.08f, 50.2791f);
7919 path.quadTo(30.5637f, 50.4033f, 30.0427f, 50.5063f);
7920 path.conicTo(29.0617f, 50.7002f, 28.8678f, 49.7192f, 0.707107f);
7921 path.conicTo(28.6738f, 48.7382f, 29.6548f, 48.5443f, 0.707107f);
7922 path.quadTo(30.1357f, 48.4492f, 30.6122f, 48.3346f);
7923 path.conicTo(31.5845f, 48.1007f, 31.8184f, 49.073f, 0.707107f);
7924 path.conicTo(32.0522f, 50.0453f, 31.08f, 50.2791f, 0.707107f);
7925 path.close();
7926 path.moveTo(27.9769f, 50.829f);
7927 path.quadTo(27.4588f, 50.8887f, 26.9386f, 50.9276f);
7928 path.conicTo(25.9414f, 51.0022f, 25.8668f, 50.005f, 0.707107f);
7929 path.conicTo(25.7923f, 49.0078f, 26.7895f, 48.9332f, 0.707107f);
7930 path.quadTo(27.2696f, 48.8973f, 27.7479f, 48.8422f);
7931 path.conicTo(28.7413f, 48.7277f, 28.8558f, 49.7211f, 0.707107f);
7932 path.conicTo(28.9703f, 50.7145f, 27.9769f, 50.829f, 0.707107f);
7933 path.close();
7934 path.moveTo(24.8625f, 50.9996f);
7935 path.quadTo(24.3373f, 50.9969f, 23.8128f, 50.9729f);
7936 path.conicTo(22.8138f, 50.9272f, 22.8595f, 49.9283f, 0.707107f);
7937 path.conicTo(22.9051f, 48.9293f, 23.9041f, 48.975f, 0.707107f);
7938 path.quadTo(24.3884f, 48.9971f, 24.8731f, 48.9997f);
7939 path.conicTo(25.8731f, 49.005f, 25.8678f, 50.005f, 0.707107f);
7940 path.conicTo(25.8624f, 51.0049f, 24.8625f, 50.9996f, 0.707107f);
7941 path.close();
7942 path.moveTo(21.7268f, 50.7931f);
7943 path.quadTo(21.2121f, 50.7278f, 20.7005f, 50.642f);
7944 path.conicTo(19.7143f, 50.4767f, 19.8796f, 49.4905f, 0.707107f);
7945 path.conicTo(20.045f, 48.5042f, 21.0312f, 48.6696f, 0.707107f);
7946 path.quadTo(21.5036f, 48.7488f, 21.9786f, 48.8091f);
7947 path.conicTo(22.9707f, 48.9349f, 22.8448f, 49.927f, 0.707107f);
7948 path.conicTo(22.7189f, 50.919f, 21.7268f, 50.7931f, 0.707107f);
7949 path.close();
7950 path.moveTo(18.6372f, 50.2094f);
7951 path.quadTo(18.1089f, 50.0761f, 17.5865f, 49.9207f);
7952 path.conicTo(16.628f, 49.6356f, 16.9132f, 48.6771f, 0.707107f);
7953 path.conicTo(17.1983f, 47.7186f, 18.1568f, 48.0037f, 0.707107f);
7954 path.quadTo(18.639f, 48.1472f, 19.1267f, 48.2702f);
7955 path.conicTo(20.0963f, 48.515f, 19.8516f, 49.4846f, 0.707107f);
7956 path.conicTo(19.6068f, 50.4542f, 18.6372f, 50.2094f, 0.707107f);
7957 path.close();
7958 path.moveTo(15.5577f, 49.2248f);
7959 path.quadTo(15.0665f, 49.0334f, 14.5834f, 48.8222f);
7960 path.conicTo(13.6672f, 48.4215f, 14.0678f, 47.5053f, 0.707107f);
7961 path.conicTo(14.4684f, 46.589f, 15.3847f, 46.9897f, 0.707107f);
7962 path.quadTo(15.8306f, 47.1846f, 16.284f, 47.3614f);
7963 path.conicTo(17.2158f, 47.7246f, 16.8526f, 48.6563f, 0.707107f);
7964 path.conicTo(16.4894f, 49.588f, 15.5577f, 49.2248f, 0.707107f);
7965 path.close();
7966 path.moveTo(12.7231f, 47.9189f);
7967 path.quadTo(12.2765f, 47.6797f, 11.8395f, 47.4233f);
7968 path.conicTo(10.9771f, 46.9171f, 11.4833f, 46.0547f, 0.707107f);
7969 path.conicTo(11.9894f, 45.1922f, 12.8519f, 45.6984f, 0.707107f);
7970 path.quadTo(13.2552f, 45.9351f, 13.6675f, 46.156f);
7971 path.conicTo(14.549f, 46.6282f, 14.0768f, 47.5096f, 0.707107f);
7972 path.conicTo(13.6046f, 48.3911f, 12.7231f, 47.9189f, 0.707107f);
7973 path.close();
7974 path.moveTo(10.1686f, 46.3548f);
7975 path.quadTo(9.76024f, 46.0712f, 9.363f, 45.7722f);
7976 path.conicTo(8.56406f, 45.1708f, 9.16549f, 44.3718f, 0.707107f);
7977 path.conicTo(9.76691f, 43.5729f, 10.5658f, 44.1743f, 0.707107f);
7978 path.quadTo(10.9325f, 44.4504f, 11.3095f, 44.7122f);
7979 path.conicTo(12.1308f, 45.2826f, 11.5604f, 46.1039f, 0.707107f);
7980 path.conicTo(10.9899f, 46.9253f, 10.1686f, 46.3548f, 0.707107f);
7981 path.close();
7982 path.moveTo(7.78853f, 44.4876f);
7983 path.quadTo(7.39972f, 44.1442f, 7.02492f, 43.7855f);
7984 path.conicTo(6.3024f, 43.0942f, 6.99374f, 42.3717f, 0.707107f);
7985 path.conicTo(7.68509f, 41.6492f, 8.40761f, 42.3405f, 0.707107f);
7986 path.quadTo(8.7536f, 42.6715f, 9.11249f, 42.9885f);
7987 path.conicTo(9.86201f, 43.6505f, 9.20003f, 44.4f, 0.707107f);
7988 path.conicTo(8.53805f, 45.1496f, 7.78853f, 44.4876f, 0.707107f);
7989 path.close();
7990 path.moveTo(5.55855f, 42.2635f);
7991 path.quadTo(5.20148f, 41.8614f, 4.86131f, 41.4449f);
7992 path.conicTo(4.22883f, 40.6703f, 5.0034f, 40.0378f, 0.707107f);
7993 path.conicTo(5.77797f, 39.4053f, 6.41046f, 40.1799f, 0.707107f);
7994 path.quadTo(6.72443f, 40.5644f, 7.05403f, 40.9356f);
7995 path.conicTo(7.71802f, 41.6833f, 6.97028f, 42.3473f, 0.707107f);
7996 path.conicTo(6.22254f, 43.0113f, 5.55855f, 42.2635f, 0.707107f);
7997 path.close();
7998 path.moveTo(3.55261f, 39.6973f);
7999 path.quadTo(3.26341f, 39.2752f, 2.99107f, 38.8422f);
8000 path.conicTo(2.45867f, 37.9957f, 3.30517f, 37.4633f, 0.707107f);
8001 path.conicTo(4.15167f, 36.9309f, 4.68406f, 37.7774f, 0.707107f);
8002 path.quadTo(4.93548f, 38.1772f, 5.20241f, 38.5667f);
8003 path.conicTo(5.76769f, 39.3916f, 4.94279f, 39.9569f, 0.707107f);
8004 path.conicTo(4.11789f, 40.5222f, 3.55261f, 39.6973f, 0.707107f);
8005 path.close();
8006 path.moveTo(1.96145f, 37.0509f);
8007 path.quadTo(1.71975f, 36.5889f, 1.49677f, 36.1175f);
8008 path.conicTo(1.06917f, 35.2135f, 1.97315f, 34.7859f, 0.707107f);
8009 path.conicTo(2.87712f, 34.3583f, 3.30471f, 35.2623f, 0.707107f);
8010 path.quadTo(3.51053f, 35.6974f, 3.73364f, 36.1239f);
8011 path.conicTo(4.19714f, 37.01f, 3.31105f, 37.4735f, 0.707107f);
8012 path.conicTo(2.42495f, 37.937f, 1.96145f, 37.0509f, 0.707107f);
8013 path.close();
8014 path.moveTo(0.676191f, 34.1844f);
8015 path.quadTo(0.489621f, 33.6902f, 0.323275f, 33.189f);
8016 path.conicTo(0.00831527f, 32.2399f, 0.95742f, 31.9249f, 0.707107f);
8017 path.conicTo(1.90653f, 31.6099f, 2.22149f, 32.559f, 0.707107f);
8018 path.quadTo(2.37504f, 33.0218f, 2.54726f, 33.4779f);
8019 path.conicTo(2.9005f, 34.4134f, 1.96497f, 34.7666f, 0.707107f);
8020 path.conicTo(1.02943f, 35.1199f, 0.676191f, 34.1844f, 0.707107f);
8021 path.close();
8022 path.moveTo(-0.261658f, 31.1521f);
8023 path.quadTo(-0.387304f, 30.6362f, -0.491779f, 30.1156f);
8024 path.conicTo(-0.68853f, 29.1351f, 0.291923f, 28.9384f, 0.707107f);
8025 path.conicTo(1.27238f, 28.7416f, 1.46913f, 29.7221f, 0.707107f);
8026 path.quadTo(1.56557f, 30.2026f, 1.68155f, 30.6789f);
8027 path.conicTo(1.91817f, 31.6505f, 0.946565f, 31.8871f, 0.707107f);
8028 path.conicTo(-0.0250367f, 32.1237f, -0.261658f, 31.1521f, 0.707107f);
8029 path.close();
8030 path.moveTo(-0.820549f, 28.0495f);
8031 path.quadTo(-0.881733f, 27.5314f, -0.922089f, 27.0113f);
8032 path.conicTo(-0.999449f, 26.0143f, -0.00244591f, 25.9369f, 0.707107f);
8033 path.conicTo(0.994557f, 25.8596f, 1.07192f, 26.8566f, 0.707107f);
8034 path.quadTo(1.10917f, 27.3367f, 1.16565f, 27.8149f);
8035 path.conicTo(1.28293f, 28.808f, 0.289834f, 28.9253f, 0.707107f);
8036 path.conicTo(-0.703265f, 29.0426f, -0.820549f, 28.0495f, 0.707107f);
8037 path.close();
8038 path.moveTo(-0.999918f, 24.9349f);
8039 path.quadTo(-0.998605f, 24.4104f, -0.976138f, 23.8863f);
8040 path.conicTo(-0.933305f, 22.8873f, 0.0657772f, 22.9301f, 0.707107f);
8041 path.conicTo(1.06486f, 22.9729f, 1.02203f, 23.972f, 0.707107f);
8042 path.quadTo(1.00129f, 24.4557f, 1.00008f, 24.9399f);
8043 path.conicTo(0.997572f, 25.9399f, -0.0024244f, 25.9374f, 0.707107f);
8044 path.conicTo(-1.00242f, 25.9349f, -0.999918f, 24.9349f, 0.707107f);
8045 path.close();
8046 path.moveTo(-0.802212f, 21.7991f);
8047 path.quadTo(-0.738311f, 21.284f, -0.653903f, 20.7719f);
8048 path.conicTo(-0.491283f, 19.7852f, 0.495406f, 19.9478f, 0.707107f);
8049 path.conicTo(1.48209f, 20.1104f, 1.31948f, 21.0971f, 0.707107f);
8050 path.quadTo(1.24156f, 21.5698f, 1.18257f, 22.0453f);
8051 path.conicTo(1.05946f, 23.0377f, 0.0670681f, 22.9146f, 0.707107f);
8052 path.conicTo(-0.925325f, 22.7915f, -0.802212f, 21.7991f, 0.707107f);
8053 path.close();
8054 path.moveTo(-0.228066f, 18.7115f);
8055 path.quadTo(-0.096172f, 18.1824f, 0.0577899f, 17.6593f);
8056 path.conicTo(0.340124f, 16.7f, 1.29944f, 16.9823f, 0.707107f);
8057 path.conicTo(2.25876f, 17.2646f, 1.97642f, 18.2239f, 0.707107f);
8058 path.quadTo(1.8343f, 18.7068f, 1.71255f, 19.1953f);
8059 path.conicTo(1.47069f, 20.1656f, 0.50038f, 19.9237f, 0.707107f);
8060 path.conicTo(-0.46993f, 19.6819f, -0.228066f, 18.7115f, 0.707107f);
8061 path.close();
8062 path.moveTo(0.74831f, 15.6269f);
8063 path.quadTo(0.938539f, 15.1347f, 1.14857f, 14.6506f);
8064 path.conicTo(1.54662f, 13.7333f, 2.46398f, 14.1313f, 0.707107f);
8065 path.conicTo(3.38135f, 14.5294f, 2.9833f, 15.4467f, 0.707107f);
8066 path.quadTo(2.78942f, 15.8936f, 2.61382f, 16.3479f);
8067 path.conicTo(2.25331f, 17.2806f, 1.32056f, 16.9201f, 0.707107f);
8068 path.conicTo(0.387801f, 16.5596f, 0.74831f, 15.6269f, 0.707107f);
8069 path.close();
8070 path.moveTo(2.04744f, 12.7861f);
8071 path.quadTo(2.28569f, 12.3384f, 2.5412f, 11.9003f);
8072 path.conicTo(3.04504f, 11.0365f, 3.90884f, 11.5403f, 0.707107f);
8073 path.conicTo(4.77264f, 12.0442f, 4.26881f, 12.908f, 0.707107f);
8074 path.quadTo(4.03293f, 13.3123f, 3.81302f, 13.7256f);
8075 path.conicTo(3.34325f, 14.6084f, 2.46046f, 14.1386f, 0.707107f);
8076 path.conicTo(1.57767f, 13.6689f, 2.04744f, 12.7861f, 0.707107f);
8077 path.close();
8078 path.moveTo(3.60589f, 10.2253f);
8079 path.quadTo(3.88812f, 9.81661f, 4.18576f, 9.419f);
8080 path.conicTo(4.78503f, 8.61845f, 5.58558f, 9.21772f, 0.707107f);
8081 path.conicTo(6.38613f, 9.81699f, 5.78686f, 10.6175f, 0.707107f);
8082 path.quadTo(5.51211f, 10.9846f, 5.25159f, 11.3618f);
8083 path.conicTo(4.68333f, 12.1847f, 3.86048f, 11.6164f, 0.707107f);
8084 path.conicTo(3.03763f, 11.0481f, 3.60589f, 10.2253f, 0.707107f);
8085 path.close();
8086 path.moveTo(5.46482f, 7.84259f);
8087 path.quadTo(5.80682f, 7.4532f, 6.16407f, 7.07773f);
8088 path.conicTo(6.85339f, 6.35327f, 7.57785f, 7.04259f, 0.707107f);
8089 path.conicTo(8.30231f, 7.73191f, 7.61299f, 8.45636f, 0.707107f);
8090 path.quadTo(7.28322f, 8.80295f, 6.96752f, 9.16239f);
8091 path.conicTo(6.30762f, 9.91375f, 5.55627f, 9.25385f, 0.707107f);
8092 path.conicTo(4.80492f, 8.59395f, 5.46482f, 7.84259f, 0.707107f);
8093 path.close();
8094 path.moveTo(7.68062f, 5.60827f);
8095 path.quadTo(8.08142f, 5.25031f, 8.49666f, 4.90921f);
8096 path.conicTo(9.26938f, 4.27447f, 9.90412f, 5.04719f, 0.707107f);
8097 path.conicTo(10.5389f, 5.81992f, 9.76614f, 6.45466f, 0.707107f);
8098 path.quadTo(9.38285f, 6.76951f, 9.01289f, 7.09994f);
8099 path.conicTo(8.26705f, 7.76607f, 7.60092f, 7.02024f, 0.707107f);
8100 path.conicTo(6.93479f, 6.2744f, 7.68062f, 5.60827f, 0.707107f);
8101 path.close();
8102 path.moveTo(10.2392f, 3.59627f);
8103 path.quadTo(10.6626f, 3.30433f, 11.0971f, 3.02935f);
8104 path.conicTo(11.9421f, 2.49463f, 12.4768f, 3.33965f, 0.707107f);
8105 path.conicTo(13.0116f, 4.18467f, 12.1666f, 4.7194f, 0.707107f);
8106 path.quadTo(11.7654f, 4.97322f, 11.3747f, 5.24271f);
8107 path.conicTo(10.5515f, 5.81043f, 9.98373f, 4.98721f, 0.707107f);
8108 path.conicTo(9.41601f, 4.16399f, 10.2392f, 3.59627f, 0.707107f);
8109 path.close();
8110 path.moveTo(12.8847f, 1.99524f);
8111 path.quadTo(13.3459f, 1.75234f, 13.8165f, 1.52812f);
8112 path.conicTo(14.7193f, 1.09799f, 15.1494f, 2.00075f, 0.707107f);
8113 path.conicTo(15.5795f, 2.90352f, 14.6768f, 3.33365f, 0.707107f);
8114 path.quadTo(14.2424f, 3.54063f, 13.8166f, 3.76484f);
8115 path.conicTo(12.9318f, 4.23081f, 12.4658f, 3.34601f, 0.707107f);
8116 path.conicTo(11.9999f, 2.46122f, 12.8847f, 1.99524f, 0.707107f);
8117 path.close();
8118 path.moveTo(15.7467f, 0.702339f);
8119 path.quadTo(16.2402f, 0.514409f, 16.7409f, 0.346672f);
8120 path.conicTo(17.6891f, 0.029011f, 18.0067f, 0.977215f, 0.707107f);
8121 path.conicTo(18.3244f, 1.92542f, 17.3762f, 2.24308f, 0.707107f);
8122 path.quadTo(16.914f, 2.39792f, 16.4585f, 2.57139f);
8123 path.conicTo(15.524f, 2.92729f, 15.1681f, 1.99276f, 0.707107f);
8124 path.conicTo(14.8122f, 1.05824f, 15.7467f, 0.702339f, 0.707107f);
8125 path.close();
8126 path.moveTo(18.7758f, -0.24399f);
8127 path.quadTo(19.2913f, -0.371107f, 19.8116f, -0.477061f);
8128 path.conicTo(20.7915f, -0.676608f, 20.9911f, 0.303281f, 0.707107f);
8129 path.conicTo(21.1906f, 1.28317f, 20.2107f, 1.48272f, 0.707107f);
8130 path.quadTo(19.7304f, 1.58052f, 19.2546f, 1.69785f);
8131 path.conicTo(18.2836f, 1.93725f, 18.0443f, 0.966329f, 0.707107f);
8132 path.conicTo(17.8049f, -0.00459272f, 18.7758f, -0.24399f, 0.707107f);
8133 path.close();
8134 path.moveTo(21.878f, -0.811882f);
8135 path.quadTo(22.396f, -0.874528f, 22.916f, -0.916348f);
8136 path.conicTo(23.9128f, -0.996504f, 23.993f, 0.000278629f, 0.707107f);
8137 path.conicTo(24.0731f, 0.997061f, 23.0764f, 1.07722f, 0.707107f);
8138 path.quadTo(22.5963f, 1.11582f, 22.1182f, 1.17365f);
8139 path.conicTo(21.1254f, 1.29372f, 21.0053f, 0.300958f, 0.707107f);
8140 path.conicTo(20.8853f, -0.691807f, 21.878f, -0.811882f, 0.707107f);
8141 path.close();
8142 path.moveTo(24.9926f, -0.999999f);
8143 path.quadTo(25.5166f, -1.00015f, 26.0401f, -0.979188f);
8144 path.conicTo(27.0393f, -0.939179f, 26.9992f, 0.0600199f, 0.707107f);
8145 path.conicTo(26.9592f, 1.05922f, 25.96f, 1.01921f, 0.707107f);
8146 path.quadTo(25.4768f, 0.999863f, 24.9932f, 1);
8147 path.conicTo(23.9932f, 1.00029f, 23.9929f, 0.000287339f, 0.707107f);
8148 path.conicTo(23.9926f, -0.999713f, 24.9926f, -0.999999f, 0.707107f);
8149 path.close();
8150 path.moveTo(28.1286f, -0.811081f);
8151 path.quadTo(28.6441f, -0.748593f, 29.1567f, -0.665572f);
8152 path.conicTo(30.1439f, -0.505698f, 29.984f, 0.48144f, 0.707107f);
8153 path.conicTo(29.8241f, 1.46858f, 28.837f, 1.3087f, 0.707107f);
8154 path.quadTo(28.3638f, 1.23207f, 27.8879f, 1.17439f);
8155 path.conicTo(26.8952f, 1.05406f, 27.0155f, 0.0613233f, 0.707107f);
8156 path.conicTo(27.1359f, -0.931411f, 28.1286f, -0.811081f, 0.707107f);
8157 path.close();
8158 path.moveTo(31.214f, -0.246499f);
8159 path.quadTo(31.7439f, -0.116076f, 32.2679f, 0.0364622f);
8160 path.conicTo(33.228f, 0.315996f, 32.9485f, 1.27613f, 0.707107f);
8161 path.conicTo(32.6689f, 2.23627f, 31.7088f, 1.95673f, 0.707107f);
8162 path.quadTo(31.2252f, 1.81593f, 30.736f, 1.69554f);
8163 path.conicTo(29.765f, 1.45654f, 30.004f, 0.48552f, 0.707107f);
8164 path.conicTo(30.243f, -0.485499f, 31.214f, -0.246499f, 0.707107f);
8165 path.close();
8166 path.moveTo(34.3038f, 0.721629f);
8167 path.quadTo(34.797f, 0.910612f, 35.282f, 1.11946f);
8168 path.conicTo(36.2005f, 1.51493f, 35.805f, 2.43341f, 0.707107f);
8169 path.conicTo(35.4096f, 3.35189f, 34.4911f, 2.95642f, 0.707107f);
8170 path.quadTo(34.0434f, 2.76365f, 33.5881f, 2.5892f);
8171 path.conicTo(32.6543f, 2.23137f, 33.0122f, 1.29758f, 0.707107f);
8172 path.conicTo(33.37f, 0.363796f, 34.3038f, 0.721629f, 0.707107f);
8173 path.close();
8174 path.moveTo(37.1508f, 2.01396f);
8175 path.quadTo(37.5996f, 2.2512f, 38.0388f, 2.50578f);
8176 path.conicTo(38.904f, 3.00727f, 38.4025f, 3.87244f, 0.707107f);
8177 path.conicTo(37.901f, 4.7376f, 37.0358f, 4.23612f, 0.707107f);
8178 path.quadTo(36.6304f, 4.00111f, 36.2161f, 3.78211f);
8179 path.conicTo(35.332f, 3.31476f, 35.7994f, 2.43069f, 0.707107f);
8180 path.conicTo(36.2667f, 1.54661f, 37.1508f, 2.01396f, 0.707107f);
8181 path.close();
8182 path.moveTo(39.718f, 3.56681f);
8183 path.quadTo(40.1269f, 3.84765f, 40.5249f, 4.14392f);
8184 path.conicTo(41.3271f, 4.74104f, 40.73f, 5.54319f, 0.707107f);
8185 path.conicTo(40.1329f, 6.34535f, 39.3307f, 5.74823f, 0.707107f);
8186 path.quadTo(38.9634f, 5.47478f, 38.5858f, 5.21552f);
8187 path.conicTo(37.7615f, 4.64945f, 38.3275f, 3.82509f, 0.707107f);
8188 path.conicTo(38.8936f, 3.00074f, 39.718f, 3.56681f, 0.707107f);
8189 path.close();
8190 path.moveTo(42.1033f, 5.41741f);
8191 path.quadTo(42.4933f, 5.75802f, 42.8694f, 6.11388f);
8192 path.conicTo(43.5958f, 6.80115f, 42.9085f, 7.52755f, 0.707107f);
8193 path.conicTo(42.2212f, 8.25394f, 41.4948f, 7.56667f, 0.707107f);
8194 path.quadTo(41.1476f, 7.23817f, 40.7876f, 6.92375f);
8195 path.conicTo(40.0345f, 6.26593f, 40.6923f, 5.51275f, 0.707107f);
8196 path.conicTo(41.3501f, 4.75958f, 42.1033f, 5.41741f, 0.707107f);
8197 path.close();
8198 path.moveTo(44.3419f, 7.62498f);
8199 path.quadTo(44.7007f, 8.02444f, 45.0428f, 8.43835f);
8200 path.conicTo(45.6797f, 9.20922f, 44.9089f, 9.84622f, 0.707107f);
8201 path.conicTo(44.138f, 10.4832f, 43.501f, 9.71234f, 0.707107f);
8202 path.quadTo(43.1852f, 9.3302f, 42.854f, 8.96151f);
8203 path.conicTo(42.1858f, 8.21759f, 42.9297f, 7.54932f, 0.707107f);
8204 path.conicTo(43.6736f, 6.88106f, 44.3419f, 7.62498f, 0.707107f);
8205 path.close();
8206 path.moveTo(46.3599f, 10.1759f);
8207 path.quadTo(46.6546f, 10.6005f, 46.9322f, 11.0366f);
8208 path.conicTo(47.4693f, 11.8801f, 46.6257f, 12.4172f, 0.707107f);
8209 path.conicTo(45.7822f, 12.9542f, 45.2451f, 12.1107f, 0.707107f);
8210 path.quadTo(44.9889f, 11.7082f, 44.7168f, 11.3162f);
8211 path.conicTo(44.1467f, 10.4947f, 44.9682f, 9.92452f, 0.707107f);
8212 path.conicTo(45.7897f, 9.35435f, 46.3599f, 10.1759f, 0.707107f);
8213 path.close();
8214 path.moveTo(47.9708f, 12.8204f);
8215 path.quadTo(48.2149f, 13.2808f, 48.4403f, 13.7506f);
8216 path.conicTo(48.873f, 14.6521f, 47.9715f, 15.0848f, 0.707107f);
8217 path.conicTo(47.0699f, 15.5174f, 46.6372f, 14.6159f, 0.707107f);
8218 path.quadTo(46.4291f, 14.1822f, 46.2038f, 13.7573f);
8219 path.conicTo(45.7354f, 12.8738f, 46.6188f, 12.4054f, 0.707107f);
8220 path.conicTo(47.5023f, 11.9369f, 47.9708f, 12.8204f, 0.707107f);
8221 path.close();
8222 path.moveTo(49.2713f, 15.6778f);
8223 path.quadTo(49.4606f, 16.1706f, 49.6297f, 16.6708f);
8224 path.conicTo(49.9501f, 17.6181f, 49.0028f, 17.9384f, 0.707107f);
8225 path.conicTo(48.0555f, 18.2588f, 47.7351f, 17.3115f, 0.707107f);
8226 path.quadTo(47.5791f, 16.8499f, 47.4043f, 16.3949f);
8227 path.conicTo(47.0458f, 15.4614f, 47.9793f, 15.1029f, 0.707107f);
8228 path.conicTo(48.9128f, 14.7443f, 49.2713f, 15.6778f, 0.707107f);
8229 path.close();
8230 path.moveTo(50.2261f, 18.7037f);
8231 path.quadTo(50.3547f, 19.2188f, 50.4621f, 19.7388f);
8232 path.conicTo(50.6645f, 20.7182f, 49.6852f, 20.9205f, 0.707107f);
8233 path.conicTo(48.7059f, 21.1229f, 48.5035f, 20.1436f, 0.707107f);
8234 path.quadTo(48.4043f, 19.6636f, 48.2856f, 19.1881f);
8235 path.conicTo(48.0435f, 18.2178f, 49.0137f, 17.9757f, 0.707107f);
8236 path.conicTo(49.984f, 17.7335f, 50.2261f, 18.7037f, 0.707107f);
8237 path.close();
8238 path.moveTo(50.803f, 21.8055f);
8239 path.quadTo(50.8671f, 22.3234f, 50.9104f, 22.8434f);
8240 path.conicTo(50.9934f, 23.8399f, 49.9968f, 23.9229f, 0.707107f);
8241 path.conicTo(49.0002f, 24.0058f, 48.9173f, 23.0093f, 0.707107f);
8242 path.quadTo(48.8773f, 22.5293f, 48.8182f, 22.0513f);
8243 path.conicTo(48.6953f, 21.0588f, 49.6877f, 20.936f, 0.707107f);
8244 path.conicTo(50.6801f, 20.8131f, 50.803f, 21.8055f, 0.707107f);
8245 path.close();
8246 path.moveTo(50.9999f, 24.9202f);
8247 path.quadTo(51.0015f, 25.4434f, 50.982f, 25.9664f);
8248 path.conicTo(50.9449f, 26.9657f, 49.9456f, 26.9286f, 0.707107f);
8249 path.conicTo(48.9463f, 26.8914f, 48.9834f, 25.8921f, 0.707107f);
8250 path.quadTo(49.0014f, 25.4094f, 48.9999f, 24.9263f);
8251 path.conicTo(48.9968f, 23.9263f, 49.9968f, 23.9232f, 0.707107f);
8252 path.conicTo(50.9968f, 23.9202f, 50.9999f, 24.9202f, 0.707107f);
8253 path.close();
8254 path.moveTo(50.8198f, 28.0562f);
8255 path.quadTo(50.7587f, 28.5721f, 50.677f, 29.0852f);
8256 path.conicTo(50.5199f, 30.0728f, 49.5323f, 29.9157f, 0.707107f);
8257 path.conicTo(48.5448f, 29.7586f, 48.7019f, 28.771f, 0.707107f);
8258 path.quadTo(48.7772f, 28.2974f, 48.8336f, 27.8211f);
8259 path.conicTo(48.9512f, 26.8281f, 49.9442f, 26.9456f, 0.707107f);
8260 path.conicTo(50.9373f, 27.0632f, 50.8198f, 28.0562f, 0.707107f);
8261 path.close();
8262 path.moveTo(50.2647f, 31.1395f);
8263 path.quadTo(50.1358f, 31.6701f, 49.9847f, 32.1949f);
8264 path.conicTo(49.7079f, 33.1558f, 48.747f, 32.8791f, 0.707107f);
8265 path.conicTo(47.786f, 32.6024f, 48.0628f, 31.6414f, 0.707107f);
8266 path.quadTo(48.2022f, 31.1571f, 48.3213f, 30.6672f);
8267 path.conicTo(48.5574f, 29.6955f, 49.5291f, 29.9317f, 0.707107f);
8268 path.conicTo(50.5009f, 30.1678f, 50.2647f, 31.1395f, 0.707107f);
8269 path.close();
8270 path.moveTo(49.3049f, 34.2343f);
8271 path.quadTo(49.1171f, 34.7285f, 48.9095f, 35.2145f);
8272 path.conicTo(48.5166f, 36.1341f, 47.597f, 35.7412f, 0.707107f);
8273 path.conicTo(46.6774f, 35.3483f, 47.0703f, 34.4288f, 0.707107f);
8274 path.quadTo(47.262f, 33.9801f, 47.4353f, 33.524f);
8275 path.conicTo(47.7904f, 32.5892f, 48.7252f, 32.9444f, 0.707107f);
8276 path.conicTo(49.66f, 33.2995f, 49.3049f, 34.2343f, 0.707107f);
8277 path.close();
8278 path.moveTo(48.0194f, 37.0875f);
8279 path.quadTo(47.7831f, 37.5374f, 47.5295f, 37.9777f);
8280 path.conicTo(47.0304f, 38.8443f, 46.1638f, 38.3451f, 0.707107f);
8281 path.conicTo(45.2973f, 37.846f, 45.7965f, 36.9795f, 0.707107f);
8282 path.quadTo(46.0306f, 36.5729f, 46.2487f, 36.1577f);
8283 path.conicTo(46.7136f, 35.2723f, 47.5989f, 35.7372f, 0.707107f);
8284 path.conicTo(48.4843f, 36.2021f, 48.0194f, 37.0875f, 0.707107f);
8285 path.close();
8286 path.moveTo(46.4721f, 39.6612f);
8287 path.quadTo(46.1926f, 40.0705f, 45.8977f, 40.4688f);
8288 path.conicTo(45.3028f, 41.2726f, 44.499f, 40.6776f, 0.707107f);
8289 path.conicTo(43.6953f, 40.0827f, 44.2902f, 39.2789f, 0.707107f);
8290 path.quadTo(44.5624f, 38.9112f, 44.8204f, 38.5334f);
8291 path.conicTo(45.3843f, 37.7075f, 46.2101f, 38.2714f, 0.707107f);
8292 path.conicTo(47.036f, 38.8353f, 46.4721f, 39.6612f, 0.707107f);
8293 path.close();
8294 path.moveTo(44.6298f, 42.0491f);
8295 path.quadTo(44.2906f, 42.4396f, 43.9361f, 42.8164f);
8296 path.conicTo(43.2509f, 43.5447f, 42.5226f, 42.8595f, 0.707107f);
8297 path.conicTo(41.7942f, 42.1742f, 42.4795f, 41.4459f, 0.707107f);
8298 path.quadTo(42.8067f, 41.0981f, 43.1198f, 40.7376f);
8299 path.conicTo(43.7756f, 39.9826f, 44.5306f, 40.6383f, 0.707107f);
8300 path.conicTo(45.2856f, 41.2941f, 44.6298f, 42.0491f, 0.707107f);
8301 path.close();
8302 path.moveTo(42.4305f, 44.2919f);
8303 path.quadTo(42.0324f, 44.6516f, 41.6198f, 44.9946f);
8304 path.conicTo(40.8507f, 45.6338f, 40.2115f, 44.8648f, 0.707107f);
8305 path.conicTo(39.5723f, 44.0958f, 40.3413f, 43.4566f, 0.707107f);
8306 path.quadTo(40.7222f, 43.1399f, 41.0897f, 42.8079f);
8307 path.conicTo(41.8317f, 42.1375f, 42.5021f, 42.8795f, 0.707107f);
8308 path.conicTo(43.1725f, 43.6215f, 42.4305f, 44.2919f, 0.707107f);
8309 path.close();
8310 path.moveTo(39.8873f, 46.3159f);
8311 path.quadTo(39.4613f, 46.6134f, 39.0238f, 46.8936f);
8312 path.conicTo(38.1818f, 47.433f, 37.6424f, 46.5909f, 0.707107f);
8313 path.conicTo(37.103f, 45.7489f, 37.9451f, 45.2095f, 0.707107f);
8314 path.quadTo(38.3489f, 44.9508f, 38.7421f, 44.6763f);
8315 path.conicTo(39.5619f, 44.1037f, 40.1345f, 44.9235f, 0.707107f);
8316 path.conicTo(40.7071f, 45.7434f, 39.8873f, 46.3159f, 0.707107f);
8317 path.close();
8318 path.moveTo(37.2437f, 47.9367f);
8319 path.quadTo(36.7842f, 48.182f, 36.3153f, 48.4086f);
8320 path.conicTo(35.415f, 48.8439f, 34.9797f, 47.9435f, 0.707107f);
8321 path.conicTo(34.5445f, 47.0432f, 35.4449f, 46.608f, 0.707107f);
8322 path.quadTo(35.8778f, 46.3987f, 36.3019f, 46.1723f);
8323 path.conicTo(37.1841f, 45.7014f, 37.655f, 46.5836f, 0.707107f);
8324 path.conicTo(38.1259f, 47.4658f, 37.2437f, 47.9367f, 0.707107f);
8325 path.close();
8326 path.moveTo(34.3909f, 49.2448f);
8327 path.quadTo(33.8988f, 49.4354f, 33.3992f, 49.606f);
8328 path.conicTo(32.4528f, 49.929f, 32.1298f, 48.9826f, 0.707107f);
8329 path.conicTo(31.8068f, 48.0362f, 32.7532f, 47.7132f, 0.707107f);
8330 path.quadTo(33.2142f, 47.5558f, 33.6685f, 47.3798f);
8331 path.conicTo(34.601f, 47.0186f, 34.9622f, 47.9511f, 0.707107f);
8332 path.conicTo(35.3234f, 48.8836f, 34.3909f, 49.2448f, 0.707107f);
8333 path.close();
8334 path.moveTo(31.3682f, 50.208f);
8335 path.quadTo(30.8535f, 50.3381f, 30.3338f, 50.447f);
8336 path.conicTo(29.3551f, 50.6521f, 29.15f, 49.6734f, 0.707107f);
8337 path.conicTo(28.9448f, 48.6947f, 29.9236f, 48.4895f, 0.707107f);
8338 path.quadTo(30.4033f, 48.389f, 30.8784f, 48.269f);
8339 path.conicTo(31.8479f, 48.024f, 32.0929f, 48.9936f, 0.707107f);
8340 path.conicTo(32.3378f, 49.9631f, 31.3682f, 50.208f, 0.707107f);
8341 path.close();
8342 path.moveTo(28.2669f, 50.7939f);
8343 path.quadTo(27.7491f, 50.8595f, 27.2292f, 50.9043f);
8344 path.conicTo(26.2329f, 50.99f, 26.1472f, 49.9937f, 0.707107f);
8345 path.conicTo(26.0615f, 48.9973f, 27.0578f, 48.9116f, 0.707107f);
8346 path.quadTo(27.5378f, 48.8703f, 28.0156f, 48.8098f);
8347 path.conicTo(29.0077f, 48.6841f, 29.1334f, 49.6762f, 0.707107f);
8348 path.conicTo(29.259f, 50.6683f, 28.2669f, 50.7939f, 0.707107f);
8349 path.close();
8350 path.moveTo(25.1523f, 50.9996f);
8351 path.quadTo(24.6297f, 51.0026f, 24.1072f, 50.9847f);
8352 path.conicTo(23.1078f, 50.9503f, 23.1422f, 49.9509f, 0.707107f);
8353 path.conicTo(23.1765f, 48.9515f, 24.1759f, 48.9858f, 0.707107f);
8354 path.quadTo(24.658f, 49.0024f, 25.1406f, 48.9996f);
8355 path.conicTo(26.1406f, 48.9937f, 26.1464f, 49.9937f, 0.707107f);
8356 path.conicTo(26.1523f, 50.9937f, 25.1523f, 50.9996f, 0.707107f);
8357 path.close();
8358 path.moveTo(22.0162f, 50.8282f);
8359 path.quadTo(21.4999f, 50.7686f, 20.9863f, 50.6883f);
8360 path.conicTo(19.9983f, 50.5339f, 20.1527f, 49.5459f, 0.707107f);
8361 path.conicTo(20.307f, 48.5579f, 21.295f, 48.7123f, 0.707107f);
8362 path.quadTo(21.7691f, 48.7864f, 22.2457f, 48.8414f);
8363 path.conicTo(23.2391f, 48.9562f, 23.1243f, 49.9496f, 0.707107f);
8364 path.conicTo(23.0096f, 50.943f, 22.0162f, 50.8282f, 0.707107f);
8365 path.close();
8366 path.moveTo(18.9351f, 50.2827f);
8367 path.quadTo(18.4037f, 50.1553f, 17.8782f, 50.0056f);
8368 path.conicTo(16.9164f, 49.7317f, 17.1904f, 48.7699f, 0.707107f);
8369 path.conicTo(17.4643f, 47.8082f, 18.426f, 48.0821f, 0.707107f);
8370 path.quadTo(18.9112f, 48.2203f, 19.4016f, 48.3379f);
8371 path.conicTo(20.374f, 48.5712f, 20.1408f, 49.5436f, 0.707107f);
8372 path.conicTo(19.9075f, 50.516f, 18.9351f, 50.2827f, 0.707107f);
8373 path.close();
8374 path.moveTo(15.8352f, 49.3312f);
8375 path.quadTo(15.3403f, 49.1448f, 14.8531f, 48.9383f);
8376 path.conicTo(13.9324f, 48.548f, 14.3227f, 47.6273f, 0.707107f);
8377 path.conicTo(14.713f, 46.7066f, 15.6337f, 47.0969f, 0.707107f);
8378 path.quadTo(16.0832f, 47.2874f, 16.5402f, 47.4596f);
8379 path.conicTo(17.476f, 47.812f, 17.1235f, 48.7479f, 0.707107f);
8380 path.conicTo(16.771f, 49.6837f, 15.8352f, 49.3312f, 0.707107f);
8381 path.close();
8382 path.moveTo(12.9759f, 48.0526f);
8383 path.quadTo(12.5249f, 47.8173f, 12.0835f, 47.5647f);
8384 path.conicTo(11.2156f, 47.0679f, 11.7124f, 46.2f, 0.707107f);
8385 path.conicTo(12.2092f, 45.3321f, 13.0771f, 45.8289f, 0.707107f);
8386 path.quadTo(13.4846f, 46.0622f, 13.9009f, 46.2793f);
8387 path.conicTo(14.7875f, 46.7418f, 14.325f, 47.6284f, 0.707107f);
8388 path.conicTo(13.8626f, 48.5151f, 12.9759f, 48.0526f, 0.707107f);
8389 path.close();
8390 path.moveTo(10.3957f, 46.5108f);
8391 path.quadTo(9.9861f, 46.2327f, 9.58733f, 45.9392f);
8392 path.conicTo(8.78198f, 45.3464f, 9.37478f, 44.541f, 0.707107f);
8393 path.conicTo(9.96757f, 43.7357f, 10.7729f, 44.3285f, 0.707107f);
8394 path.quadTo(11.141f, 44.5994f, 11.5191f, 44.8561f);
8395 path.conicTo(12.3464f, 45.4178f, 11.7847f, 46.2451f, 0.707107f);
8396 path.conicTo(11.223f, 47.0725f, 10.3957f, 46.5108f, 0.707107f);
8397 path.close();
8398 path.moveTo(8.00525f, 44.6769f);
8399 path.quadTo(7.6141f, 44.339f, 7.23672f, 43.9859f);
8400 path.conicTo(6.50649f, 43.3027f, 7.18969f, 42.5725f, 0.707107f);
8401 path.conicTo(7.87289f, 41.8423f, 8.60312f, 42.5255f, 0.707107f);
8402 path.quadTo(8.95149f, 42.8514f, 9.31254f, 43.1632f);
8403 path.conicTo(10.0693f, 43.8169f, 9.4157f, 44.5737f, 0.707107f);
8404 path.conicTo(8.76206f, 45.3305f, 8.00525f, 44.6769f, 0.707107f);
8405 path.close();
8406 path.moveTo(5.75818f, 42.4858f);
8407 path.quadTo(5.39763f, 42.089f, 5.05371f, 41.6777f);
8408 path.conicTo(4.41226f, 40.9105f, 5.17942f, 40.2691f, 0.707107f);
8409 path.conicTo(5.94658f, 39.6276f, 6.58804f, 40.3948f, 0.707107f);
8410 path.quadTo(6.90548f, 40.7744f, 7.23832f, 41.1407f);
8411 path.conicTo(7.91085f, 41.8808f, 7.17078f, 42.5533f, 0.707107f);
8412 path.conicTo(6.43071f, 43.2258f, 5.75818f, 42.4858f, 0.707107f);
8413 path.close();
8414 path.moveTo(3.72821f, 39.9503f);
8415 path.quadTo(3.42794f, 39.523f, 3.1451f, 39.0842f);
8416 path.conicTo(2.6034f, 38.2436f, 3.44397f, 37.7019f, 0.707107f);
8417 path.conicTo(4.28454f, 37.1602f, 4.82624f, 38.0008f, 0.707107f);
8418 path.quadTo(5.08734f, 38.4059f, 5.3645f, 38.8003f);
8419 path.conicTo(5.93951f, 39.6184f, 5.12137f, 40.1934f, 0.707107f);
8420 path.conicTo(4.30322f, 40.7684f, 3.72821f, 39.9503f, 0.707107f);
8421 path.close();
8422 path.moveTo(2.09762f, 37.3078f);
8423 path.quadTo(1.85114f, 36.8491f, 1.62324f, 36.381f);
8424 path.conicTo(1.18551f, 35.4819f, 2.08461f, 35.0442f, 0.707107f);
8425 path.conicTo(2.98372f, 34.6064f, 3.42145f, 35.5055f, 0.707107f);
8426 path.quadTo(3.63184f, 35.9377f, 3.85934f, 36.361f);
8427 path.conicTo(4.33272f, 37.2419f, 3.45185f, 37.7153f, 0.707107f);
8428 path.conicTo(2.57099f, 38.1886f, 2.09762f, 37.3078f, 0.707107f);
8429 path.close();
8430 path.moveTo(0.781912f, 34.4596f);
8431 path.quadTo(0.589924f, 33.9681f, 0.418029f, 33.4692f);
8432 path.conicTo(0.0922952f, 32.5237f, 1.03776f, 32.198f, 0.707107f);
8433 path.conicTo(1.98322f, 31.8722f, 2.30895f, 32.8177f, 0.707107f);
8434 path.quadTo(2.46761f, 33.2782f, 2.64484f, 33.7319f);
8435 path.conicTo(3.00867f, 34.6634f, 2.07721f, 35.0272f, 0.707107f);
8436 path.conicTo(1.14575f, 35.3911f, 0.781912f, 34.4596f, 0.707107f);
8437 path.close();
8438 path.moveTo(-0.189761f, 31.4402f);
8439 path.quadTo(-0.321263f, 30.9258f, -0.431662f, 30.4065f);
8440 path.conicTo(-0.639608f, 29.4284f, 0.338532f, 29.2205f, 0.707107f);
8441 path.conicTo(1.31667f, 29.0125f, 1.52462f, 29.9906f, 0.707107f);
8442 path.quadTo(1.62653f, 30.47f, 1.74791f, 30.9448f);
8443 path.conicTo(1.99561f, 31.9136f, 1.02677f, 32.1613f, 0.707107f);
8444 path.conicTo(0.0579369f, 32.409f, -0.189761f, 31.4402f, 0.707107f);
8445 path.close();
8446 path.moveTo(-0.784658f, 28.3394f);
8447 path.quadTo(-0.851693f, 27.8218f, -0.897902f, 27.3019f);
8448 path.conicTo(-0.986437f, 26.3058f, 0.00963629f, 26.2173f, 0.707107f);
8449 path.conicTo(1.00571f, 26.1288f, 1.09424f, 27.1248f, 0.707107f);
8450 path.quadTo(1.1369f, 27.6047f, 1.19878f, 28.0825f);
8451 path.conicTo(1.32721f, 29.0742f, 0.335496f, 29.2027f, 0.707107f);
8452 path.conicTo(-0.656222f, 29.3311f, -0.784658f, 28.3394f, 0.707107f);
8453 path.close();
8454 path.moveTo(-0.999031f, 25.2248f);
8455 path.quadTo(-1.00354f, 24.7027f, -0.987098f, 24.1809f);
8456 path.conicTo(-0.955596f, 23.1814f, 0.0439078f, 23.2129f, 0.707107f);
8457 path.conicTo(1.04341f, 23.2444f, 1.01191f, 24.2439f, 0.707107f);
8458 path.quadTo(0.996728f, 24.7256f, 1.00089f, 25.2075f);
8459 path.conicTo(1.00954f, 26.2075f, 0.00957754f, 26.2161f, 0.707107f);
8460 path.conicTo(-0.990385f, 26.2248f, -0.999031f, 25.2248f, 0.707107f);
8461 path.close();
8462 path.moveTo(-0.836492f, 22.0887f);
8463 path.quadTo(-0.778263f, 21.5719f, -0.699419f, 21.0579f);
8464 path.conicTo(-0.5478f, 20.0695f, 0.440639f, 20.2211f, 0.707107f);
8465 path.conicTo(1.42908f, 20.3727f, 1.27746f, 21.3612f, 0.707107f);
8466 path.quadTo(1.20468f, 21.8356f, 1.15093f, 22.3126f);
8467 path.conicTo(1.03896f, 23.3063f, 0.0452449f, 23.1944f, 0.707107f);
8468 path.conicTo(-0.948466f, 23.0824f, -0.836492f, 22.0887f, 0.707107f);
8469 path.close();
8470 path.moveTo(-0.300548f, 19.0098f);
8471 path.quadTo(-0.174573f, 18.4777f, -0.0263361f, 17.9514f);
8472 path.conicTo(0.244762f, 16.9889f, 1.20731f, 17.26f, 0.707107f);
8473 path.conicTo(2.16987f, 17.5311f, 1.89877f, 18.4936f, 0.707107f);
8474 path.quadTo(1.76193f, 18.9794f, 1.64565f, 19.4706f);
8475 path.conicTo(1.41526f, 20.4437f, 0.442159f, 20.2133f, 0.707107f);
8476 path.conicTo(-0.530939f, 19.9829f, -0.300548f, 19.0098f, 0.707107f);
8477 path.close();
8478 path.moveTo(0.642658f, 15.9049f);
8479 path.quadTo(0.827861f, 15.409f, 1.0331f, 14.9209f);
8480 path.conicTo(1.42076f, 13.9991f, 2.34256f, 14.3868f, 0.707107f);
8481 path.conicTo(3.26437f, 14.7744f, 2.87671f, 15.6962f, 0.707107f);
8482 path.quadTo(2.68726f, 16.1467f, 2.5163f, 16.6046f);
8483 path.conicTo(2.16648f, 17.5414f, 1.22967f, 17.1916f, 0.707107f);
8484 path.conicTo(0.292846f, 16.8418f, 0.642658f, 15.9049f, 0.707107f);
8485 path.close();
8486 path.moveTo(1.91434f, 13.0395f);
8487 path.quadTo(2.14856f, 12.5875f, 2.40031f, 12.1449f);
8488 path.conicTo(2.89473f, 11.2757f, 3.76395f, 11.7701f, 0.707107f);
8489 path.conicTo(4.63317f, 12.2645f, 4.13875f, 13.1337f, 0.707107f);
8490 path.quadTo(3.90637f, 13.5423f, 3.69016f, 13.9596f);
8491 path.conicTo(3.23014f, 14.8475f, 2.34223f, 14.3875f, 0.707107f);
8492 path.conicTo(1.45432f, 13.9275f, 1.91434f, 13.0395f, 0.707107f);
8493 path.close();
8494 path.moveTo(3.45073f, 10.4525f);
8495 path.quadTo(3.72744f, 10.0426f, 4.01954f, 9.64356f);
8496 path.conicTo(4.61017f, 8.83661f, 5.41711f, 9.42725f, 0.707107f);
8497 path.conicTo(6.22405f, 10.0179f, 5.63342f, 10.8248f, 0.707107f);
8498 path.quadTo(5.36379f, 11.1932f, 5.10836f, 11.5716f);
8499 path.conicTo(4.54884f, 12.4004f, 3.72003f, 11.8409f, 0.707107f);
8500 path.conicTo(2.89121f, 11.2813f, 3.45073f, 10.4525f, 0.707107f);
8501 path.close();
8502 path.moveTo(5.2763f, 8.05964f);
8503 path.quadTo(5.61273f, 7.66793f, 5.96445f, 7.2899f);
8504 path.conicTo(6.6456f, 6.55776f, 7.37774f, 7.23892f, 0.707107f);
8505 path.conicTo(8.10988f, 7.92008f, 7.42872f, 8.65221f, 0.707107f);
8506 path.quadTo(7.10407f, 9.00116f, 6.79351f, 9.36274f);
8507 path.conicTo(6.14196f, 10.1213f, 5.38336f, 9.46979f, 0.707107f);
8508 path.conicTo(4.62475f, 8.81824f, 5.2763f, 8.05964f, 0.707107f);
8509 path.close();
8510 path.moveTo(7.45913f, 5.80839f);
8511 path.quadTo(7.85457f, 5.44696f, 8.26455f, 5.10214f);
8512 path.conicTo(9.02985f, 4.45847f, 9.67352f, 5.22377f, 0.707107f);
8513 path.conicTo(10.3172f, 5.98907f, 9.5519f, 6.63274f, 0.707107f);
8514 path.quadTo(9.17345f, 6.95105f, 8.80843f, 7.28467f);
8515 path.conicTo(8.07029f, 7.95931f, 7.39564f, 7.22117f, 0.707107f);
8516 path.conicTo(6.72099f, 6.48303f, 7.45913f, 5.80839f, 0.707107f);
8517 path.close();
8518 path.moveTo(9.98688f, 3.77251f);
8519 path.quadTo(10.4153f, 3.46948f, 10.8557f, 3.18397f);
8520 path.conicTo(11.6948f, 2.63996f, 12.2388f, 3.47904f, 0.707107f);
8521 path.conicTo(12.7828f, 4.31812f, 11.9437f, 4.86213f, 0.707107f);
8522 path.quadTo(11.5373f, 5.12566f, 11.1417f, 5.40539f);
8523 path.conicTo(10.3253f, 5.98282f, 9.74787f, 5.16638f, 0.707107f);
8524 path.conicTo(9.17044f, 4.34994f, 9.98688f, 3.77251f, 0.707107f);
8525 path.close();
8526 path.moveTo(12.6283f, 2.13208f);
8527 path.quadTo(13.0861f, 1.88442f, 13.5534f, 1.65529f);
8528 path.conicTo(14.4513f, 1.21504f, 14.8915f, 2.11291f, 0.707107f);
8529 path.conicTo(15.3318f, 3.01078f, 14.4339f, 3.45104f, 0.707107f);
8530 path.quadTo(14.0025f, 3.66255f, 13.58f, 3.89115f);
8531 path.conicTo(12.7005f, 4.36698f, 12.2246f, 3.48744f, 0.707107f);
8532 path.conicTo(11.7488f, 2.60791f, 12.6283f, 2.13208f, 0.707107f);
8533 path.close();
8534 path.moveTo(15.4718f, 0.808815f);
8535 path.quadTo(15.9627f, 0.615476f, 16.461f, 0.442208f);
8536 path.conicTo(17.4055f, 0.113784f, 17.7339f, 1.05831f, 0.707107f);
8537 path.conicTo(18.0624f, 2.00284f, 17.1178f, 2.33127f, 0.707107f);
8538 path.quadTo(16.6578f, 2.49121f, 16.2047f, 2.66968f);
8539 path.conicTo(15.2743f, 3.03614f, 14.9078f, 2.10571f, 0.707107f);
8540 path.conicTo(14.5414f, 1.17528f, 15.4718f, 0.808815f, 0.707107f);
8541 path.close();
8542 path.moveTo(18.4879f, -0.171272f);
8543 path.quadTo(19.0019f, -0.304236f, 19.5208f, -0.416111f);
8544 path.conicTo(20.4984f, -0.62685f, 20.7091f, 0.350692f, 0.707107f);
8545 path.conicTo(20.9198f, 1.32823f, 19.9423f, 1.53897f, 0.707107f);
8546 path.quadTo(19.4633f, 1.64224f, 18.9889f, 1.76498f);
8547 path.conicTo(18.0207f, 2.01544f, 17.7703f, 1.04732f, 0.707107f);
8548 path.conicTo(17.5198f, 0.0791926f, 18.4879f, -0.171272f, 0.707107f);
8549 path.close();
8550 path.moveTo(21.5882f, -0.77517f);
8551 path.quadTo(22.1056f, -0.843665f, 22.6254f, -0.891339f);
8552 path.conicTo(23.6212f, -0.982672f, 23.7126f, 0.0131486f, 0.707107f);
8553 path.conicTo(23.8039f, 1.00897f, 22.8081f, 1.1003f, 0.707107f);
8554 path.quadTo(22.3283f, 1.14431f, 21.8506f, 1.20754f);
8555 path.conicTo(20.8592f, 1.33876f, 20.728f, 0.347405f, 0.707107f);
8556 path.conicTo(20.5968f, -0.643948f, 21.5882f, -0.77517f, 0.707107f);
8557 path.close();
8558 path.moveTo(24.7026f, -0.998301f);
8559 path.quadTo(25.2241f, -1.00426f, 25.7453f, -0.989316f);
8560 path.conicTo(26.7449f, -0.960651f, 26.7162f, 0.0389383f, 0.707107f);
8561 path.conicTo(26.6876f, 1.03853f, 25.688f, 1.00986f, 0.707107f);
8562 path.quadTo(25.2068f, 0.996064f, 24.7255f, 1.00157f);
8563 path.conicTo(23.7256f, 1.013f, 23.7141f, 0.0130688f, 0.707107f);
8564 path.conicTo(23.7027f, -0.986866f, 24.7026f, -0.998301f, 0.707107f);
8565 path.close();
8566 path.moveTo(27.8388f, -0.844563f);
8567 path.quadTo(28.3559f, -0.787759f, 28.8704f, -0.710314f);
8568 path.conicTo(29.8592f, -0.561454f, 29.7104f, 0.427404f, 0.707107f);
8569 path.conicTo(29.5615f, 1.41626f, 28.5726f, 1.2674f, 0.707107f);
8570 path.quadTo(28.0978f, 1.19591f, 27.6204f, 1.14348f);
8571 path.conicTo(26.6264f, 1.0343f, 26.7356f, 0.0402742f, 0.707107f);
8572 path.conicTo(26.8447f, -0.953747f, 27.8388f, -0.844563f, 0.707107f);
8573 path.close();
8574 path.moveTo(30.9153f, -0.318153f);
8575 path.quadTo(31.4481f, -0.193671f, 31.9752f, -0.046875f);
8576 path.conicTo(32.9386f, 0.221405f, 32.6703f, 1.18475f, 0.707107f);
8577 path.conicTo(32.402f, 2.14809f, 31.4387f, 1.87981f, 0.707107f);
8578 path.quadTo(30.9521f, 1.74431f, 30.4603f, 1.6294f);
8579 path.conicTo(29.4865f, 1.40189f, 29.714f, 0.428111f, 0.707107f);
8580 path.conicTo(29.9416f, -0.545664f, 30.9153f, -0.318153f, 0.707107f);
8581 path.close();
8582 path.moveTo(34.0252f, 0.616677f);
8583 path.quadTo(34.5221f, 0.800609f, 35.0111f, 1.00465f);
8584 path.conicTo(35.934f, 1.3897f, 35.549f, 2.31259f, 0.707107f);
8585 path.conicTo(35.1639f, 3.23549f, 34.241f, 2.85044f, 0.707107f);
8586 path.quadTo(33.7896f, 2.66211f, 33.3309f, 2.49232f);
8587 path.conicTo(32.3931f, 2.1452f, 32.7402f, 1.20738f, 0.707107f);
8588 path.conicTo(33.0873f, 0.269559f, 34.0252f, 0.616677f, 0.707107f);
8589 path.close();
8590 path.moveTo(36.8967f, 1.88141f);
8591 path.quadTo(37.3499f, 2.11462f, 37.7936f, 2.3654f);
8592 path.conicTo(38.6641f, 2.85746f, 38.1721f, 3.72802f, 0.707107f);
8593 path.conicTo(37.68f, 4.59858f, 36.8094f, 4.10652f, 0.707107f);
8594 path.quadTo(36.3999f, 3.87504f, 35.9815f, 3.65976f);
8595 path.conicTo(35.0924f, 3.2022f, 35.5499f, 2.31302f, 0.707107f);
8596 path.conicTo(36.0075f, 1.42384f, 36.8967f, 1.88141f, 0.707107f);
8597 path.close();
8598 path.moveTo(39.4914f, 3.413f);
8599 path.lineTo(39.5381f, 3.44439f);
8600 path.quadTo(39.9244f, 3.70494f, 40.3002f, 3.97845f);
8601 path.conicTo(41.1087f, 4.56692f, 40.5202f, 5.37544f, 0.707107f);
8602 path.conicTo(39.9317f, 6.18396f, 39.1232f, 5.59549f, 0.707107f);
8603 path.quadTo(38.7763f, 5.34298f, 38.4215f, 5.10371f);
8604 path.lineTo(38.3749f, 5.07232f);
8605 path.conicTo(37.5452f, 4.51406f, 38.1035f, 3.68439f, 0.707107f);
8606 path.conicTo(38.6618f, 2.85473f, 39.4914f, 3.413f, 0.707107f);
8607 path.close();
8608 path.moveTo(41.8859f, 5.22965f);
8609 path.quadTo(42.2782f, 5.56471f, 42.6568f, 5.91499f);
8610 path.conicTo(43.3908f, 6.5941f, 42.7117f, 7.32814f, 0.707107f);
8611 path.conicTo(42.0326f, 8.06218f, 41.2986f, 7.38308f, 0.707107f);
8612 path.quadTo(40.949f, 7.05968f, 40.587f, 6.75043f);
8613 path.conicTo(39.8266f, 6.10097f, 40.476f, 5.34058f, 0.707107f);
8614 path.conicTo(41.1255f, 4.58018f, 41.8859f, 5.22965f, 0.707107f);
8615 path.close();
8616 path.moveTo(44.1413f, 7.40421f);
8617 path.quadTo(44.5035f, 7.79829f, 44.8493f, 8.20695f);
8618 path.conicTo(45.4952f, 8.97038f, 44.7317f, 9.61627f, 0.707107f);
8619 path.conicTo(43.9683f, 10.2622f, 43.3224f, 9.49874f, 0.707107f);
8620 path.quadTo(43.0033f, 9.1215f, 42.6689f, 8.75773f);
8621 path.conicTo(41.9921f, 8.02152f, 42.7283f, 7.34476f, 0.707107f);
8622 path.conicTo(43.4645f, 6.668f, 44.1413f, 7.40421f, 0.707107f);
8623 path.close();
8624 path.moveTo(46.183f, 9.9242f);
8625 path.quadTo(46.4888f, 10.3539f, 46.777f, 10.7957f);
8626 path.conicTo(47.3233f, 11.6332f, 46.4857f, 12.1796f, 0.707107f);
8627 path.conicTo(45.6482f, 12.7259f, 45.1018f, 11.8883f, 0.707107f);
8628 path.quadTo(44.8358f, 11.4805f, 44.5535f, 11.0839f);
8629 path.conicTo(43.9737f, 10.2691f, 44.7884f, 9.6893f, 0.707107f);
8630 path.conicTo(45.6032f, 9.10947f, 46.183f, 9.9242f, 0.707107f);
8631 path.close();
8632 path.moveTo(47.8333f, 12.5645f);
8633 path.quadTo(48.0821f, 13.0214f, 48.3125f, 13.4879f);
8634 path.conicTo(48.7552f, 14.3845f, 47.8586f, 14.8273f, 0.707107f);
8635 path.conicTo(46.962f, 15.2701f, 46.5192f, 14.3734f, 0.707107f);
8636 path.quadTo(46.3065f, 13.9428f, 46.0769f, 13.5211f);
8637 path.conicTo(45.5986f, 12.6429f, 46.4768f, 12.1646f, 0.707107f);
8638 path.conicTo(47.355f, 11.6863f, 47.8333f, 12.5645f, 0.707107f);
8639 path.close();
8640 path.moveTo(49.1641f, 15.4033f);
8641 path.quadTo(49.3588f, 15.8935f, 49.5334f, 16.3912f);
8642 path.conicTo(49.8645f, 17.3348f, 48.9209f, 17.6659f, 0.707107f);
8643 path.conicTo(47.9773f, 17.997f, 47.6462f, 17.0534f, 0.707107f);
8644 path.quadTo(47.485f, 16.5939f, 47.3053f, 16.1415f);
8645 path.conicTo(46.9362f, 15.2121f, 47.8656f, 14.843f, 0.707107f);
8646 path.conicTo(48.795f, 14.4739f, 49.1641f, 15.4033f, 0.707107f);
8647 path.close();
8648 path.moveTo(50.1526f, 18.4161f);
8649 path.quadTo(50.287f, 18.9296f, 50.4003f, 19.4482f);
8650 path.conicTo(50.6139f, 20.4252f, 49.6369f, 20.6387f, 0.707107f);
8651 path.conicTo(48.66f, 20.8522f, 48.4465f, 19.8753f, 0.707107f);
8652 path.quadTo(48.3419f, 19.3966f, 48.2178f, 18.9225f);
8653 path.conicTo(47.9645f, 17.9551f, 48.9319f, 17.7019f, 0.707107f);
8654 path.conicTo(49.8993f, 17.4487f, 50.1526f, 18.4161f, 0.707107f);
8655 path.close();
8656 path.moveTo(50.7655f, 21.5157f);
8657 path.quadTo(50.8354f, 22.033f, 50.8846f, 22.5528f);
8658 path.conicTo(50.9787f, 23.5483f, 49.9831f, 23.6425f, 0.707107f);
8659 path.conicTo(48.9876f, 23.7366f, 48.8935f, 22.741f, 0.707107f);
8660 path.quadTo(48.8481f, 22.2613f, 48.7835f, 21.7837f);
8661 path.conicTo(48.6495f, 20.7928f, 49.6405f, 20.6587f, 0.707107f);
8662 path.conicTo(50.6315f, 20.5247f, 50.7655f, 21.5157f, 0.707107f);
8663 path.close();
8664 path.moveTo(50.9974f, 24.6301f);
8665 path.quadTo(51.0048f, 25.1509f, 50.9913f, 25.6715f);
8666 path.conicTo(50.9655f, 26.6712f, 49.9658f, 26.6454f, 0.707107f);
8667 path.conicTo(48.9662f, 26.6196f, 48.992f, 25.6199f, 0.707107f);
8668 path.quadTo(49.0044f, 25.1393f, 48.9976f, 24.6585f);
8669 path.conicTo(48.9834f, 23.6586f, 49.9833f, 23.6444f, 0.707107f);
8670 path.conicTo(50.9832f, 23.6302f, 50.9974f, 24.6301f, 0.707107f);
8671 path.close();
8672 path.moveTo(50.8524f, 27.7662f);
8673 path.quadTo(50.7971f, 28.2837f, 50.721f, 28.7986f);
8674 path.conicTo(50.5749f, 29.7879f, 49.5856f, 29.6418f, 0.707107f);
8675 path.conicTo(48.5963f, 29.4957f, 48.7425f, 28.5064f, 0.707107f);
8676 path.quadTo(48.8127f, 28.0311f, 48.8638f, 27.5534f);
8677 path.conicTo(48.9702f, 26.5591f, 49.9645f, 26.6655f, 0.707107f);
8678 path.conicTo(50.9588f, 26.7718f, 50.8524f, 27.7662f, 0.707107f);
8679 path.close();
8680 path.moveTo(50.3355f, 30.8404f);
8681 path.quadTo(50.2125f, 31.3739f, 50.0672f, 31.9018f);
8682 path.conicTo(49.8018f, 32.8659f, 48.8376f, 32.6005f, 0.707107f);
8683 path.conicTo(47.8735f, 32.335f, 48.139f, 31.3709f, 0.707107f);
8684 path.quadTo(48.2731f, 30.8836f, 48.3867f, 30.3912f);
8685 path.conicTo(48.6113f, 29.4167f, 49.5857f, 29.6413f, 0.707107f);
8686 path.conicTo(50.5602f, 29.866f, 50.3355f, 30.8404f, 0.707107f);
8687 path.close();
8688 path.moveTo(49.4091f, 33.9552f);
8689 path.quadTo(49.2264f, 34.4531f, 49.0236f, 34.9431f);
8690 path.conicTo(48.6412f, 35.8671f, 47.7172f, 35.4846f, 0.707107f);
8691 path.conicTo(46.7932f, 35.1022f, 47.1757f, 34.1782f, 0.707107f);
8692 path.quadTo(47.3629f, 33.7259f, 47.5315f, 33.2663f);
8693 path.conicTo(47.8759f, 32.3275f, 48.8147f, 32.672f, 0.707107f);
8694 path.conicTo(49.7535f, 33.0164f, 49.4091f, 33.9552f, 0.707107f);
8695 path.close();
8696 path.moveTo(48.1514f, 36.8328f);
8697 path.quadTo(47.9191f, 37.2871f, 47.6694f, 37.7318f);
8698 path.conicTo(47.1797f, 38.6038f, 46.3078f, 38.1141f, 0.707107f);
8699 path.conicTo(45.4359f, 37.6244f, 45.9256f, 36.7525f, 0.707107f);
8700 path.quadTo(46.1562f, 36.3418f, 46.3705f, 35.9226f);
8701 path.conicTo(46.8256f, 35.0321f, 47.716f, 35.4872f, 0.707107f);
8702 path.conicTo(48.6065f, 35.9423f, 48.1514f, 36.8328f, 0.707107f);
8703 path.close();
8704 path.moveTo(46.6245f, 39.4354f);
8705 path.lineTo(46.5563f, 39.537f);
8706 path.quadTo(46.3146f, 39.8955f, 46.0624f, 40.2438f);
8707 path.conicTo(45.4761f, 41.0539f, 44.666f, 40.4676f, 0.707107f);
8708 path.conicTo(43.8559f, 39.8813f, 44.4422f, 39.0712f, 0.707107f);
8709 path.quadTo(44.6749f, 38.7498f, 44.8955f, 38.4226f);
8710 path.lineTo(44.9637f, 38.3211f);
8711 path.conicTo(45.5209f, 37.4907f, 46.3513f, 38.0479f, 0.707107f);
8712 path.conicTo(47.1817f, 38.605f, 46.6245f, 39.4354f, 0.707107f);
8713 path.close();
8714 path.moveTo(44.8168f, 41.8314f);
8715 path.quadTo(44.4832f, 42.2241f, 44.1342f, 42.6034f);
8716 path.conicTo(43.4572f, 43.3394f, 42.7212f, 42.6623f, 0.707107f);
8717 path.conicTo(41.9853f, 41.9853f, 42.6623f, 41.2494f, 0.707107f);
8718 path.quadTo(42.9845f, 40.8992f, 43.2924f, 40.5366f);
8719 path.conicTo(43.9398f, 39.7745f, 44.702f, 40.4218f, 0.707107f);
8720 path.conicTo(45.4642f, 41.0692f, 44.8168f, 41.8314f, 0.707107f);
8721 path.close();
8722 path.moveTo(42.6505f, 44.0908f);
8723 path.quadTo(42.2577f, 44.454f, 41.8504f, 44.8006f);
8724 path.conicTo(41.0888f, 45.4487f, 40.4408f, 44.6871f, 0.707107f);
8725 path.conicTo(39.7927f, 43.9256f, 40.5542f, 43.2775f, 0.707107f);
8726 path.quadTo(40.9302f, 42.9575f, 41.2928f, 42.6223f);
8727 path.conicTo(42.027f, 41.9434f, 42.7059f, 42.6777f, 0.707107f);
8728 path.conicTo(43.3848f, 43.412f, 42.6505f, 44.0908f, 0.707107f);
8729 path.close();
8730 path.moveTo(40.1383f, 46.1384f);
8731 path.quadTo(39.7073f, 46.4471f, 39.2641f, 46.7378f);
8732 path.conicTo(38.4281f, 47.2865f, 37.8795f, 46.4504f, 0.707107f);
8733 path.conicTo(37.3308f, 45.6143f, 38.1669f, 45.0657f, 0.707107f);
8734 path.quadTo(38.576f, 44.7972f, 38.9738f, 44.5124f);
8735 path.conicTo(39.7868f, 43.9301f, 40.369f, 44.7432f, 0.707107f);
8736 path.conicTo(40.9513f, 45.5562f, 40.1383f, 46.1384f, 0.707107f);
8737 path.close();
8738 path.moveTo(37.4991f, 47.7985f);
8739 path.quadTo(37.0431f, 48.0485f, 36.5775f, 48.2801f);
8740 path.conicTo(35.6821f, 48.7254f, 35.2368f, 47.83f, 0.707107f);
8741 path.conicTo(34.7915f, 46.9346f, 35.6869f, 46.4893f, 0.707107f);
8742 path.quadTo(36.1167f, 46.2755f, 36.5376f, 46.0448f);
8743 path.conicTo(37.4145f, 45.5641f, 37.8952f, 46.4409f, 0.707107f);
8744 path.conicTo(38.376f, 47.3178f, 37.4991f, 47.7985f, 0.707107f);
8745 path.close();
8746 path.moveTo(34.6651f, 49.1368f);
8747 path.quadTo(34.1756f, 49.3328f, 33.6785f, 49.5089f);
8748 path.conicTo(32.7358f, 49.8427f, 32.402f, 48.9f, 0.707107f);
8749 path.conicTo(32.0682f, 47.9574f, 33.0109f, 47.6236f, 0.707107f);
8750 path.quadTo(33.4697f, 47.4611f, 33.9216f, 47.2801f);
8751 path.conicTo(34.85f, 46.9084f, 35.2217f, 47.8368f, 0.707107f);
8752 path.conicTo(35.5934f, 48.7651f, 34.6651f, 49.1368f, 0.707107f);
8753 path.close();
8754 path.moveTo(31.6557f, 50.1337f);
8755 path.quadTo(31.1425f, 50.2696f, 30.6243f, 50.3844f);
8756 path.conicTo(29.648f, 50.6007f, 29.4317f, 49.6244f, 0.707107f);
8757 path.conicTo(29.2153f, 48.6481f, 30.1917f, 48.4317f, 0.707107f);
8758 path.quadTo(30.6701f, 48.3257f, 31.1437f, 48.2003f);
8759 path.conicTo(32.1104f, 47.9443f, 32.3664f, 48.911f, 0.707107f);
8760 path.conicTo(32.6223f, 49.8777f, 31.6557f, 50.1337f, 0.707107f);
8761 path.close();
8762 path.moveTo(28.5567f, 50.7556f);
8763 path.quadTo(28.0395f, 50.827f, 27.5198f, 50.8776f);
8764 path.conicTo(26.5245f, 50.9745f, 26.4276f, 49.9792f, 0.707107f);
8765 path.conicTo(26.3307f, 48.9839f, 27.326f, 48.887f, 0.707107f);
8766 path.quadTo(27.8056f, 48.8403f, 28.2831f, 48.7744f);
8767 path.conicTo(29.2737f, 48.6376f, 29.4105f, 49.6282f, 0.707107f);
8768 path.conicTo(29.5473f, 50.6188f, 28.5567f, 50.7556f, 0.707107f);
8769 path.close();
8770 path.moveTo(25.4424f, 50.9962f);
8771 path.quadTo(24.9222f, 51.0051f, 24.4022f, 50.9931f);
8772 path.conicTo(23.4025f, 50.9701f, 23.4255f, 49.9704f, 0.707107f);
8773 path.conicTo(23.4485f, 48.9707f, 24.4482f, 48.9937f, 0.707107f);
8774 path.quadTo(24.9283f, 49.0047f, 25.4084f, 48.9965f);
8775 path.conicTo(26.4083f, 48.9795f, 26.4253f, 49.9794f, 0.707107f);
8776 path.conicTo(26.4423f, 50.9792f, 25.4424f, 50.9962f, 0.707107f);
8777 path.close();
8778 path.moveTo(22.3065f, 50.8601f);
8779 path.quadTo(21.7885f, 50.8062f, 21.2732f, 50.7315f);
8780 path.conicTo(20.2835f, 50.5882f, 20.4268f, 49.5985f, 0.707107f);
8781 path.conicTo(20.5702f, 48.6088f, 21.5599f, 48.7522f, 0.707107f);
8782 path.quadTo(22.0355f, 48.8211f, 22.5136f, 48.8709f);
8783 path.conicTo(23.5083f, 48.9745f, 23.4047f, 49.9691f, 0.707107f);
8784 path.conicTo(23.3011f, 50.9637f, 22.3065f, 50.8601f, 0.707107f);
8785 path.close();
8786 path.moveTo(19.2346f, 50.3527f);
8787 path.quadTo(18.7003f, 50.2312f, 18.1717f, 50.0873f);
8788 path.conicTo(17.2068f, 49.8247f, 17.4694f, 48.8598f, 0.707107f);
8789 path.conicTo(17.732f, 47.8949f, 18.6969f, 48.1575f, 0.707107f);
8790 path.quadTo(19.185f, 48.2904f, 19.6781f, 48.4025f);
8791 path.conicTo(20.6532f, 48.6243f, 20.4314f, 49.5994f, 0.707107f);
8792 path.conicTo(20.2097f, 50.5745f, 19.2346f, 50.3527f, 0.707107f);
8793 path.close();
8794 path.moveTo(16.1149f, 49.4347f);
8795 path.quadTo(15.6161f, 49.2533f, 15.1251f, 49.0517f);
8796 path.conicTo(14.2f, 48.6719f, 14.5798f, 47.7469f, 0.707107f);
8797 path.conicTo(14.9596f, 46.8218f, 15.8847f, 47.2016f, 0.707107f);
8798 path.quadTo(16.3379f, 47.3877f, 16.7984f, 47.5551f);
8799 path.conicTo(17.7382f, 47.8969f, 17.3964f, 48.8366f, 0.707107f);
8800 path.conicTo(17.0547f, 49.7764f, 16.1149f, 49.4347f, 0.707107f);
8801 path.close();
8802 path.moveTo(13.2313f, 48.184f);
8803 path.quadTo(12.776f, 47.9529f, 12.33f, 47.704f);
8804 path.conicTo(11.4568f, 47.2167f, 11.9441f, 46.3434f, 0.707107f);
8805 path.conicTo(12.4314f, 45.4702f, 13.3046f, 45.9575f, 0.707107f);
8806 path.quadTo(13.7162f, 46.1872f, 14.1365f, 46.4006f);
8807 path.conicTo(15.0282f, 46.8532f, 14.5756f, 47.7449f, 0.707107f);
8808 path.conicTo(14.123f, 48.6366f, 13.2313f, 48.184f, 0.707107f);
8809 path.close();
8810 path.moveTo(10.6208f, 46.6619f);
8811 path.lineTo(10.4641f, 46.5571f);
8812 path.quadTo(10.1333f, 46.334f, 9.81253f, 46.1031f);
8813 path.conicTo(9.00087f, 45.519f, 9.585f, 44.7073f, 0.707107f);
8814 path.conicTo(10.1691f, 43.8957f, 10.9808f, 44.4798f, 0.707107f);
8815 path.quadTo(11.2769f, 44.6929f, 11.5763f, 44.8948f);
8816 path.lineTo(11.7329f, 44.9996f);
8817 path.conicTo(12.564f, 45.5557f, 12.008f, 46.3868f, 0.707107f);
8818 path.conicTo(11.4519f, 47.2179f, 10.6208f, 46.6619f, 0.707107f);
8819 path.close();
8820 path.moveTo(8.22326f, 44.8631f);
8821 path.quadTo(7.82986f, 44.5308f, 7.44999f, 44.1833f);
8822 path.conicTo(6.71217f, 43.5082f, 7.38718f, 42.7704f, 0.707107f);
8823 path.conicTo(8.06219f, 42.0326f, 8.8f, 42.7076f, 0.707107f);
8824 path.quadTo(9.15066f, 43.0284f, 9.51375f, 43.3351f);
8825 path.conicTo(10.2777f, 43.9804f, 9.63248f, 44.7443f, 0.707107f);
8826 path.conicTo(8.98724f, 45.5083f, 8.22326f, 44.8631f, 0.707107f);
8827 path.close();
8828 path.moveTo(5.95972f, 42.705f);
8829 path.quadTo(5.59577f, 42.3136f, 5.24823f, 41.9076f);
8830 path.conicTo(4.59793f, 41.148f, 5.3576f, 40.4977f, 0.707107f);
8831 path.conicTo(6.11728f, 39.8473f, 6.76758f, 40.607f, 0.707107f);
8832 path.quadTo(7.08843f, 40.9818f, 7.42436f, 41.3431f);
8833 path.conicTo(8.10532f, 42.0754f, 7.373f, 42.7564f, 0.707107f);
8834 path.conicTo(6.64068f, 43.4373f, 5.95972f, 42.705f, 0.707107f);
8835 path.close();
8836 path.moveTo(3.90635f, 40.2006f);
8837 path.quadTo(3.59492f, 39.7684f, 3.30147f, 39.3239f);
8838 path.conicTo(2.75055f, 38.4893f, 3.58511f, 37.9384f, 0.707107f);
8839 path.conicTo(4.41967f, 37.3875f, 4.97059f, 38.222f, 0.707107f);
8840 path.quadTo(5.24148f, 38.6324f, 5.52894f, 39.0313f);
8841 path.conicTo(6.11358f, 39.8426f, 5.30228f, 40.4272f, 0.707107f);
8842 path.conicTo(4.49099f, 41.0119f, 3.90635f, 40.2006f, 0.707107f);
8843 path.close();
8844 path.moveTo(2.23643f, 37.5626f);
8845 path.quadTo(1.98525f, 37.1075f, 1.75248f, 36.6427f);
8846 path.conicTo(1.30469f, 35.7486f, 2.19883f, 35.3008f, 0.707107f);
8847 path.conicTo(3.09296f, 34.853f, 3.54076f, 35.7471f, 0.707107f);
8848 path.quadTo(3.75563f, 36.1762f, 3.98747f, 36.5963f);
8849 path.conicTo(4.47065f, 37.4718f, 3.59513f, 37.955f, 0.707107f);
8850 path.conicTo(2.71961f, 38.4382f, 2.23643f, 37.5626f, 0.707107f);
8851 path.close();
8852 path.moveTo(0.890647f, 34.7334f);
8853 path.quadTo(0.69328f, 34.2445f, 0.515902f, 33.7481f);
8854 path.conicTo(0.179435f, 32.8064f, 1.12113f, 32.4699f, 0.707107f);
8855 path.conicTo(2.06282f, 32.1335f, 2.39929f, 33.0752f, 0.707107f);
8856 path.quadTo(2.56303f, 33.5334f, 2.74521f, 33.9847f);
8857 path.conicTo(3.11957f, 34.912f, 2.19229f, 35.2863f, 0.707107f);
8858 path.conicTo(1.26501f, 35.6607f, 0.890647f, 34.7334f, 0.707107f);
8859 path.close();
8860 path.moveTo(-0.114587f, 31.7274f);
8861 path.quadTo(-0.251922f, 31.2147f, -0.368218f, 30.6968f);
8862 path.conicTo(-0.587327f, 29.7211f, 0.388373f, 29.502f, 0.707107f);
8863 path.conicTo(1.36407f, 29.2829f, 1.58318f, 30.2586f, 0.707107f);
8864 path.quadTo(1.69053f, 30.7366f, 1.8173f, 31.2099f);
8865 path.conicTo(2.07605f, 32.1758f, 1.1101f, 32.4346f, 0.707107f);
8866 path.conicTo(0.144159f, 32.6933f, -0.114587f, 31.7274f, 0.707107f);
8867 path.close();
8868 path.moveTo(-0.745485f, 28.6291f);
8869 path.quadTo(-0.818367f, 28.112f, -0.870432f, 27.5925f);
8870 path.conicTo(-0.970142f, 26.5974f, 0.0248742f, 26.4977f, 0.707107f);
8871 path.conicTo(1.01989f, 26.398f, 1.1196f, 27.393f, 0.707107f);
8872 path.quadTo(1.16766f, 27.8726f, 1.23494f, 28.3499f);
8873 path.conicTo(1.37452f, 29.3401f, 0.384305f, 29.4797f, 0.707107f);
8874 path.conicTo(-0.605905f, 29.6193f, -0.745485f, 28.6291f, 0.707107f);
8875 path.close();
8876 path.moveTo(-0.994901f, 25.515f);
8877 path.quadTo(-1.00519f, 24.9955f, -0.994722f, 24.4761f);
8878 path.conicTo(-0.97457f, 23.4763f, 0.0252273f, 23.4964f, 0.707107f);
8879 path.conicTo(1.02502f, 23.5166f, 1.00487f, 24.5164f, 0.707107f);
8880 path.quadTo(0.995207f, 24.9959f, 1.00471f, 25.4754f);
8881 path.conicTo(1.02451f, 26.4752f, 0.0247103f, 26.495f, 0.707107f);
8882 path.conicTo(-0.975093f, 26.5148f, -0.994901f, 25.515f, 0.707107f);
8883 path.close();
8884 path.moveTo(-0.867571f, 22.3792f);
8885 path.quadTo(-0.81506f, 21.8609f, -0.741825f, 21.3451f);
8886 path.conicTo(-0.60125f, 20.355f, 0.38882f, 20.4956f, 0.707107f);
8887 path.conicTo(1.37889f, 20.6361f, 1.23831f, 21.6262f, 0.707107f);
8888 path.quadTo(1.17071f, 22.1023f, 1.12224f, 22.5807f);
8889 path.conicTo(1.02144f, 23.5757f, 0.026537f, 23.4749f, 0.707107f);
8890 path.conicTo(-0.96837f, 23.3741f, -0.867571f, 22.3792f, 0.707107f);
8891 path.close();
8892 path.moveTo(-0.369678f, 19.3097f);
8893 path.quadTo(-0.249693f, 18.7748f, -0.107265f, 18.2453f);
8894 path.conicTo(0.152529f, 17.2797f, 1.11819f, 17.5395f, 0.707107f);
8895 path.conicTo(2.08386f, 17.7993f, 1.82406f, 18.7649f, 0.707107f);
8896 path.quadTo(1.69259f, 19.2536f, 1.58184f, 19.7474f);
8897 path.conicTo(1.36298f, 20.7232f, 0.387221f, 20.5043f, 0.707107f);
8898 path.conicTo(-0.588536f, 20.2855f, -0.369678f, 19.3097f, 0.707107f);
8899 path.close();
8900 path.moveTo(0.539863f, 16.1851f);
8901 path.quadTo(0.719962f, 15.6854f, 0.920307f, 15.1934f);
8902 path.conicTo(1.29748f, 14.2673f, 2.22362f, 14.6445f, 0.707107f);
8903 path.conicTo(3.14976f, 15.0216f, 2.7726f, 15.9478f, 0.707107f);
8904 path.quadTo(2.58765f, 16.4019f, 2.42141f, 16.8632f);
8905 path.conicTo(2.08237f, 17.804f, 1.1416f, 17.4649f, 0.707107f);
8906 path.conicTo(0.200823f, 17.1259f, 0.539863f, 16.1851f, 0.707107f);
8907 path.close();
8908 path.moveTo(1.78353f, 13.2955f);
8909 path.quadTo(2.01364f, 12.8391f, 2.26151f, 12.392f);
8910 path.conicTo(2.74643f, 11.5175f, 3.62099f, 12.0024f, 0.707107f);
8911 path.conicTo(4.49555f, 12.4873f, 4.01063f, 13.3618f, 0.707107f);
8912 path.quadTo(3.78183f, 13.7745f, 3.56941f, 14.1958f);
8913 path.conicTo(3.11923f, 15.0888f, 2.22629f, 14.6386f, 0.707107f);
8914 path.conicTo(1.33336f, 14.1884f, 1.78353f, 13.2955f, 0.707107f);
8915 path.close();
8916 path.moveTo(3.30083f, 10.6771f);
8917 path.lineTo(3.44218f, 10.4652f);
8918 path.quadTo(3.6466f, 10.1621f, 3.85641f, 9.86895f);
8919 path.conicTo(4.43837f, 9.05574f, 5.25159f, 9.6377f, 0.707107f);
8920 path.conicTo(6.0648f, 10.2197f, 5.48284f, 11.0329f, 0.707107f);
8921 path.quadTo(5.28917f, 11.3035f, 5.10592f, 11.5752f);
8922 path.lineTo(4.96457f, 11.787f);
8923 path.conicTo(4.4096f, 12.6189f, 3.57773f, 12.0639f, 0.707107f);
8924 path.conicTo(2.74586f, 11.509f, 3.30083f, 10.6771f, 0.707107f);
8925 path.close();
8926 path.moveTo(5.0909f, 8.27793f);
8927 path.quadTo(5.42174f, 7.88403f, 5.76791f, 7.50353f);
8928 path.conicTo(6.44085f, 6.76383f, 7.18054f, 7.43678f, 0.707107f);
8929 path.conicTo(7.92024f, 8.10972f, 7.24729f, 8.84942f, 0.707107f);
8930 path.quadTo(6.92775f, 9.20065f, 6.62237f, 9.56424f);
8931 path.conicTo(5.97921f, 10.33f, 5.21348f, 9.68682f, 0.707107f);
8932 path.conicTo(4.44774f, 9.04367f, 5.0909f, 8.27793f, 0.707107f);
8933 path.close();
8934 path.moveTo(7.24064f, 6.0104f);
8935 path.quadTo(7.63069f, 5.64561f, 8.03537f, 5.29717f);
8936 path.conicTo(8.79318f, 4.64469f, 9.44566f, 5.40249f, 0.707107f);
8937 path.conicTo(10.0981f, 6.16029f, 9.34034f, 6.81278f, 0.707107f);
8938 path.quadTo(8.96678f, 7.13442f, 8.60675f, 7.47113f);
8939 path.conicTo(7.87638f, 8.15419f, 7.19332f, 7.42382f, 0.707107f);
8940 path.conicTo(6.51027f, 6.69345f, 7.24064f, 6.0104f, 0.707107f);
8941 path.close();
8942 path.moveTo(9.73726f, 3.95128f);
8943 path.quadTo(10.1706f, 3.63704f, 10.6165f, 3.34092f);
8944 path.conicTo(11.4496f, 2.78771f, 12.0028f, 3.62075f, 0.707107f);
8945 path.conicTo(12.556f, 4.4538f, 11.7229f, 5.007f, 0.707107f);
8946 path.quadTo(11.3113f, 5.28035f, 10.9113f, 5.57041f);
8947 path.conicTo(10.1018f, 6.15744f, 9.51472f, 5.34787f, 0.707107f);
8948 path.conicTo(8.92769f, 4.53831f, 9.73726f, 3.95128f, 0.707107f);
8949 path.close();
8950 path.moveTo(12.374f, 2.27153f);
8951 path.quadTo(12.8282f, 2.01921f, 13.2921f, 1.78522f);
8952 path.conicTo(14.185f, 1.33492f, 14.6353f, 2.22779f, 0.707107f);
8953 path.conicTo(15.0856f, 3.12067f, 14.1927f, 3.57097f, 0.707107f);
8954 path.quadTo(13.7645f, 3.78696f, 13.3452f, 4.01988f);
8955 path.conicTo(12.471f, 4.5055f, 11.9854f, 3.63132f, 0.707107f);
8956 path.conicTo(11.4998f, 2.75715f, 12.374f, 2.27153f, 0.707107f);
8957 path.close();
8958 path.moveTo(15.1984f, 0.918296f);
8959 path.quadTo(15.6866f, 0.719602f, 16.1824f, 0.540851f);
8960 path.conicTo(17.1231f, 0.20171f, 17.4623f, 1.14245f, 0.707107f);
8961 path.conicTo(17.8014f, 2.08318f, 16.8607f, 2.42232f, 0.707107f);
8962 path.quadTo(16.403f, 2.58733f, 15.9524f, 2.77074f);
8963 path.conicTo(15.0261f, 3.14772f, 14.6492f, 2.2215f, 0.707107f);
8964 path.conicTo(14.2722f, 1.29528f, 15.1984f, 0.918296f, 0.707107f);
8965 path.close();
8966 path.moveTo(18.201f, -0.0952874f);
8967 path.quadTo(18.7132f, -0.234075f, 19.2308f, -0.351842f);
8968 path.conicTo(20.2058f, -0.573734f, 20.4277f, 0.401338f, 0.707107f);
8969 path.conicTo(20.6496f, 1.37641f, 19.6745f, 1.5983f, 0.707107f);
8970 path.quadTo(19.1968f, 1.70701f, 18.724f, 1.83512f);
8971 path.conicTo(17.7588f, 2.09662f, 17.4973f, 1.13142f, 0.707107f);
8972 path.conicTo(17.2358f, 0.166216f, 18.201f, -0.0952874f, 0.707107f);
8973 path.close();
8974 path.moveTo(21.2986f, -0.73518f);
8975 path.quadTo(21.8155f, -0.809526f, 22.3349f, -0.863052f);
8976 path.conicTo(23.3297f, -0.965552f, 23.4322f, 0.029181f, 0.707107f);
8977 path.conicTo(23.5347f, 1.02391f, 22.5399f, 1.12641f, 0.707107f);
8978 path.quadTo(22.0604f, 1.17582f, 21.5833f, 1.24445f);
8979 path.conicTo(20.5935f, 1.38681f, 20.4511f, 0.397f, 0.707107f);
8980 path.conicTo(20.3088f, -0.592814f, 21.2986f, -0.73518f, 0.707107f);
8981 path.close();
8982 path.moveTo(24.4124f, -0.993361f);
8983 path.quadTo(24.9312f, -1.00509f, 25.4501f, -0.996107f);
8984 path.conicTo(26.4499f, -0.978799f, 26.4326f, 0.0210512f, 0.707107f);
8985 path.conicTo(26.4153f, 1.0209f, 25.4155f, 1.00359f, 0.707107f);
8986 path.quadTo(24.9365f, 0.995302f, 24.4576f, 1.00613f);
8987 path.conicTo(23.4578f, 1.02873f, 23.4352f, 0.0289853f, 0.707107f);
8988 path.conicTo(23.4126f, -0.970759f, 24.4124f, -0.993361f, 0.707107f);
8989 path.close();
8990 path.moveTo(27.5481f, -0.87484f);
8991 path.quadTo(28.0668f, -0.823762f, 28.583f, -0.75194f);
8992 path.conicTo(29.5734f, -0.614138f, 29.4356f, 0.376322f, 0.707107f);
8993 path.conicTo(29.2978f, 1.36678f, 28.3074f, 1.22898f, 0.707107f);
8994 path.quadTo(27.8309f, 1.16268f, 27.3521f, 1.11553f);
8995 path.conicTo(26.3569f, 1.01753f, 26.4549f, 0.0223428f, 0.707107f);
8996 path.conicTo(26.5529f, -0.972843f, 27.5481f, -0.87484f, 0.707107f);
8997 path.close();
8998 path.moveTo(30.6151f, -0.386432f);
8999 path.quadTo(31.1507f, -0.267954f, 31.6809f, -0.126991f);
9000 path.conicTo(32.6473f, 0.129965f, 32.3904f, 1.09639f, 0.707107f);
9001 path.conicTo(32.1334f, 2.06281f, 31.167f, 1.80585f, 0.707107f);
9002 path.quadTo(30.6776f, 1.67574f, 30.1832f, 1.56637f);
9003 path.conicTo(29.2068f, 1.35041f, 29.4227f, 0.374005f, 0.707107f);
9004 path.conicTo(29.6387f, -0.602396f, 30.6151f, -0.386432f, 0.707107f);
9005 path.close();
9006 path.moveTo(33.7445f, 0.514616f);
9007 path.quadTo(34.2452f, 0.693421f, 34.7381f, 0.892536f);
9008 path.conicTo(35.6653f, 1.26708f, 35.2908f, 2.19429f, 0.707107f);
9009 path.conicTo(34.9162f, 3.1215f, 33.989f, 2.74696f, 0.707107f);
9010 path.quadTo(33.534f, 2.56316f, 33.0718f, 2.3981f);
9011 path.conicTo(32.1301f, 2.06177f, 32.4664f, 1.12003f, 0.707107f);
9012 path.conicTo(32.8027f, 0.178285f, 33.7445f, 0.514616f, 0.707107f);
9013 path.close();
9014 path.moveTo(36.6402f, 1.7512f);
9015 path.quadTo(37.0977f, 1.98026f, 37.5458f, 2.22715f);
9016 path.conicTo(38.4217f, 2.70968f, 37.9392f, 3.58556f, 0.707107f);
9017 path.conicTo(37.4566f, 4.46144f, 36.5808f, 3.97891f, 0.707107f);
9018 path.quadTo(36.1671f, 3.75102f, 35.7448f, 3.53956f);
9019 path.conicTo(34.8506f, 3.09185f, 35.2983f, 2.19767f, 0.707107f);
9020 path.conicTo(35.746f, 1.30349f, 36.6402f, 1.7512f, 0.707107f);
9021 path.close();
9022 path.moveTo(39.2611f, 3.26012f);
9023 path.quadTo(39.4005f, 3.35159f, 39.539f, 3.44501f);
9024 path.quadTo(39.8091f, 3.62717f, 40.0746f, 3.81611f);
9025 path.conicTo(40.8893f, 4.3959f, 40.3096f, 5.21067f, 0.707107f);
9026 path.conicTo(39.7298f, 6.02543f, 38.915f, 5.44564f, 0.707107f);
9027 path.quadTo(38.67f, 5.2713f, 38.4206f, 5.10309f);
9028 path.quadTo(38.293f, 5.017f, 38.164f, 4.9324f);
9029 path.conicTo(37.3279f, 4.38388f, 37.8764f, 3.54775f, 0.707107f);
9030 path.conicTo(38.4249f, 2.71161f, 39.2611f, 3.26012f, 0.707107f);
9031 path.close();
9032 path.moveTo(41.6673f, 5.04503f);
9033 path.quadTo(42.0618f, 5.37449f, 42.4428f, 5.71927f);
9034 path.conicTo(43.1844f, 6.39015f, 42.5135f, 7.13171f, 0.707107f);
9035 path.conicTo(41.8426f, 7.87327f, 41.1011f, 7.20239f, 0.707107f);
9036 path.quadTo(40.7493f, 6.88414f, 40.3852f, 6.58004f);
9037 path.conicTo(39.6177f, 5.93899f, 40.2588f, 5.17149f, 0.707107f);
9038 path.conicTo(40.8998f, 4.40399f, 41.6673f, 5.04503f, 0.707107f);
9039 path.close();
9040 path.moveTo(43.9388f, 7.1865f);
9041 path.quadTo(44.3044f, 7.57519f, 44.6538f, 7.97856f);
9042 path.conicTo(45.3084f, 8.73448f, 44.5525f, 9.38914f, 0.707107f);
9043 path.conicTo(43.7966f, 10.0438f, 43.1419f, 9.28789f, 0.707107f);
9044 path.quadTo(42.8195f, 8.91555f, 42.482f, 8.55677f);
9045 path.conicTo(41.7969f, 7.82836f, 42.5253f, 7.14322f, 0.707107f);
9046 path.conicTo(43.2537f, 6.45808f, 43.9388f, 7.1865f, 0.707107f);
9047 path.close();
9048 path.moveTo(46.0036f, 9.6753f);
9049 path.quadTo(46.3207f, 10.1098f, 46.6195f, 10.5571f);
9050 path.conicTo(47.175f, 11.3886f, 46.3435f, 11.9441f, 0.707107f);
9051 path.conicTo(45.5119f, 12.4996f, 44.9564f, 11.6681f, 0.707107f);
9052 path.quadTo(44.6806f, 11.2552f, 44.388f, 10.8541f);
9053 path.conicTo(43.7986f, 10.0463f, 44.6064f, 9.45688f, 0.707107f);
9054 path.conicTo(45.4142f, 8.86747f, 46.0036f, 9.6753f, 0.707107f);
9055 path.close();
9056 path.moveTo(47.6932f, 12.3107f);
9057 path.quadTo(47.9467f, 12.764f, 48.1819f, 13.2271f);
9058 path.conicTo(48.6347f, 14.1187f, 47.7431f, 14.5715f, 0.707107f);
9059 path.conicTo(46.8514f, 15.0243f, 46.3986f, 14.1327f, 0.707107f);
9060 path.quadTo(46.1816f, 13.7053f, 45.9476f, 13.2868f);
9061 path.conicTo(45.4595f, 12.414f, 46.3323f, 11.9259f, 0.707107f);
9062 path.conicTo(47.2051f, 11.4379f, 47.6932f, 12.3107f, 0.707107f);
9063 path.close();
9064 path.moveTo(49.0539f, 15.1303f);
9065 path.quadTo(49.2539f, 15.6178f, 49.434f, 16.113f);
9066 path.conicTo(49.7758f, 17.0527f, 48.836f, 17.3946f, 0.707107f);
9067 path.conicTo(47.8963f, 17.7364f, 47.5545f, 16.7966f, 0.707107f);
9068 path.quadTo(47.3882f, 16.3395f, 47.2036f, 15.8895f);
9069 path.conicTo(46.824f, 14.9643f, 47.7491f, 14.5847f, 0.707107f);
9070 path.conicTo(48.6743f, 14.2051f, 49.0539f, 15.1303f, 0.707107f);
9071 path.close();
9072 path.moveTo(50.0758f, 18.1294f);
9073 path.quadTo(50.216f, 18.6412f, 50.3352f, 19.1584f);
9074 path.conicTo(50.5599f, 20.1328f, 49.5855f, 20.3575f, 0.707107f);
9075 path.conicTo(48.6111f, 20.5821f, 48.3864f, 19.6077f, 0.707107f);
9076 path.quadTo(48.2763f, 19.1304f, 48.1469f, 18.6579f);
9077 path.conicTo(47.8826f, 17.6935f, 48.8471f, 17.4292f, 0.707107f);
9078 path.conicTo(49.8115f, 17.165f, 50.0758f, 18.1294f, 0.707107f);
9079 path.close();
9080 path.moveTo(50.7247f, 21.2262f);
9081 path.quadTo(50.8005f, 21.743f, 50.8555f, 22.2623f);
9082 path.conicTo(50.9607f, 23.2568f, 49.9663f, 23.3621f, 0.707107f);
9083 path.conicTo(48.9719f, 23.4673f, 48.8666f, 22.4729f, 0.707107f);
9084 path.quadTo(48.8158f, 21.9935f, 48.7458f, 21.5165f);
9085 path.conicTo(48.6007f, 20.5271f, 49.5901f, 20.382f, 0.707107f);
9086 path.conicTo(50.5795f, 20.2368f, 50.7247f, 21.2262f, 0.707107f);
9087 path.close();
9088 path.moveTo(50.9916f, 24.3398f);
9089 path.quadTo(51.0048f, 24.858f, 50.9973f, 25.3762f);
9090 path.conicTo(50.9828f, 26.3761f, 49.9829f, 26.3616f, 0.707107f);
9091 path.conicTo(48.983f, 26.3472f, 48.9975f, 25.3473f, 0.707107f);
9092 path.quadTo(49.0044f, 24.8687f, 48.9923f, 24.3906f);
9093 path.conicTo(48.9669f, 23.3909f, 49.9665f, 23.3655f, 0.707107f);
9094 path.conicTo(50.9662f, 23.3401f, 50.9916f, 24.3398f, 0.707107f);
9095 path.close();
9096 path.moveTo(50.8819f, 27.4753f);
9097 path.quadTo(50.8323f, 27.9943f, 50.7618f, 28.511f);
9098 path.conicTo(50.6268f, 29.5018f, 49.636f, 29.3668f, 0.707107f);
9099 path.conicTo(48.6451f, 29.2317f, 48.7802f, 28.2409f, 0.707107f);
9100 path.quadTo(48.8452f, 27.7641f, 48.891f, 27.2849f);
9101 path.conicTo(48.9862f, 26.2894f, 49.9816f, 26.3846f, 0.707107f);
9102 path.conicTo(50.9771f, 26.4798f, 50.8819f, 27.4753f, 0.707107f);
9103 path.close();
9104 path.moveTo(50.4023f, 30.5429f);
9105 path.quadTo(50.2856f, 31.0775f, 50.1465f, 31.607f);
9106 path.conicTo(49.8924f, 32.5742f, 48.9252f, 32.3201f, 0.707107f);
9107 path.conicTo(47.9581f, 32.066f, 48.2122f, 31.0988f, 0.707107f);
9108 path.quadTo(48.3405f, 30.6102f, 48.4483f, 30.1165f);
9109 path.conicTo(48.6614f, 29.1395f, 49.6385f, 29.3527f, 0.707107f);
9110 path.conicTo(50.6155f, 29.5659f, 50.4023f, 30.5429f, 0.707107f);
9111 path.close();
9112 path.moveTo(49.5104f, 33.674f);
9113 path.quadTo(49.3329f, 34.1756f, 49.1351f, 34.6695f);
9114 path.conicTo(48.7632f, 35.5977f, 47.8349f, 35.2258f, 0.707107f);
9115 path.conicTo(46.9066f, 34.854f, 47.2785f, 33.9257f, 0.707107f);
9116 path.quadTo(47.4612f, 33.4697f, 47.625f, 33.0067f);
9117 path.conicTo(47.9587f, 32.064f, 48.9014f, 32.3977f, 0.707107f);
9118 path.conicTo(49.8441f, 32.7313f, 49.5104f, 33.674f, 0.707107f);
9119 path.close();
9120 path.moveTo(48.281f, 36.5756f);
9121 path.quadTo(48.053f, 37.0342f, 47.8071f, 37.4835f);
9122 path.conicTo(47.3269f, 38.3607f, 46.4497f, 37.8805f, 0.707107f);
9123 path.conicTo(45.5725f, 37.4004f, 46.0527f, 36.5232f, 0.707107f);
9124 path.quadTo(46.2797f, 36.1085f, 46.4901f, 35.6852f);
9125 path.conicTo(46.9353f, 34.7898f, 47.8307f, 35.235f, 0.707107f);
9126 path.conicTo(48.7262f, 35.6802f, 48.281f, 36.5756f, 0.707107f);
9127 path.close();
9128 path.moveTo(46.7777f, 39.2033f);
9129 path.quadTo(46.6677f, 39.3719f, 46.555f, 39.539f);
9130 path.quadTo(46.3865f, 39.7888f, 46.2121f, 40.0349f);
9131 path.conicTo(45.6338f, 40.8507f, 44.818f, 40.2724f, 0.707107f);
9132 path.conicTo(44.0021f, 39.6942f, 44.5804f, 38.8783f, 0.707107f);
9133 path.quadTo(44.7413f, 38.6513f, 44.8969f, 38.4206f);
9134 path.quadTo(45.0008f, 38.2665f, 45.1025f, 38.1107f);
9135 path.conicTo(45.6488f, 37.2731f, 46.4864f, 37.8194f, 0.707107f);
9136 path.conicTo(47.324f, 38.3657f, 46.7777f, 39.2033f, 0.707107f);
9137 path.close();
9138 path.moveTo(44.9527f, 41.6701f);
9139 path.quadTo(44.6177f, 42.0709f, 44.267f, 42.458f);
9140 path.conicTo(43.5955f, 43.1991f, 42.8545f, 42.5276f, 0.707107f);
9141 path.conicTo(42.1135f, 41.8561f, 42.7849f, 41.1151f, 0.707107f);
9142 path.quadTo(43.1087f, 40.7578f, 43.4178f, 40.3878f);
9143 path.conicTo(44.059f, 39.6203f, 44.8264f, 40.2615f, 0.707107f);
9144 path.conicTo(45.5938f, 40.9027f, 44.9527f, 41.6701f, 0.707107f);
9145 path.close();
9146 path.moveTo(42.7884f, 43.9624f);
9147 path.quadTo(42.4083f, 44.319f, 42.014f, 44.6602f);
9148 path.conicTo(41.2578f, 45.3146f, 40.6034f, 44.5585f, 0.707107f);
9149 path.conicTo(39.949f, 43.8023f, 40.7052f, 43.1479f, 0.707107f);
9150 path.quadTo(41.0691f, 42.833f, 41.4201f, 42.5037f);
9151 path.conicTo(42.1494f, 41.8196f, 42.8336f, 42.5489f, 0.707107f);
9152 path.conicTo(43.5178f, 43.2782f, 42.7884f, 43.9624f, 0.707107f);
9153 path.close();
9154 path.moveTo(40.3892f, 45.9564f);
9155 path.quadTo(39.9683f, 46.2655f, 39.5354f, 46.5574f);
9156 path.conicTo(38.7062f, 47.1165f, 38.1472f, 46.2873f, 0.707107f);
9157 path.conicTo(37.5881f, 45.4582f, 38.4173f, 44.8992f, 0.707107f);
9158 path.quadTo(38.8169f, 44.6297f, 39.2054f, 44.3444f);
9159 path.conicTo(40.0114f, 43.7525f, 40.6033f, 44.5585f, 0.707107f);
9160 path.conicTo(41.1952f, 45.3645f, 40.3892f, 45.9564f, 0.707107f);
9161 path.close();
9162 path.moveTo(37.7543f, 47.6568f);
9163 path.quadTo(37.2977f, 47.9138f, 36.8312f, 48.1522f);
9164 path.conicTo(35.9407f, 48.6072f, 35.4857f, 47.7167f, 0.707107f);
9165 path.conicTo(35.0306f, 46.8263f, 35.9211f, 46.3712f, 0.707107f);
9166 path.quadTo(36.3518f, 46.1511f, 36.7732f, 45.9139f);
9167 path.conicTo(37.6446f, 45.4234f, 38.1351f, 46.2948f, 0.707107f);
9168 path.conicTo(38.6257f, 47.1662f, 37.7543f, 47.6568f, 0.707107f);
9169 path.close();
9170 path.moveTo(34.9311f, 49.0286f);
9171 path.quadTo(34.4488f, 49.2279f, 33.9589f, 49.4077f);
9172 path.conicTo(33.0202f, 49.7523f, 32.6756f, 48.8136f, 0.707107f);
9173 path.conicTo(32.331f, 47.8748f, 33.2698f, 47.5302f, 0.707107f);
9174 path.quadTo(33.722f, 47.3642f, 34.1672f, 47.1802f);
9175 path.conicTo(35.0914f, 46.7983f, 35.4733f, 47.7224f, 0.707107f);
9176 path.conicTo(35.8553f, 48.6466f, 34.9311f, 49.0286f, 0.707107f);
9177 path.close();
9178 path.moveTo(31.9824f, 50.0449f);
9179 path.quadTo(31.4774f, 50.1857f, 30.9668f, 50.3061f);
9180 path.conicTo(29.9935f, 50.5355f, 29.764f, 49.5622f, 0.707107f);
9181 path.conicTo(29.5346f, 48.5889f, 30.5079f, 48.3594f, 0.707107f);
9182 path.quadTo(30.9789f, 48.2484f, 31.4453f, 48.1184f);
9183 path.conicTo(32.4086f, 47.8498f, 32.6771f, 48.8131f, 0.707107f);
9184 path.conicTo(32.9457f, 49.7763f, 31.9824f, 50.0449f, 0.707107f);
9185 path.close();
9186 path.moveTo(28.899f, 50.706f);
9187 path.quadTo(28.3834f, 50.7842f, 27.8652f, 50.8416f);
9188 path.conicTo(26.8713f, 50.9518f, 26.7611f, 49.9579f, 0.707107f);
9189 path.conicTo(26.6509f, 48.964f, 27.6448f, 48.8538f, 0.707107f);
9190 path.quadTo(28.1231f, 48.8008f, 28.599f, 48.7286f);
9191 path.conicTo(29.5877f, 48.5786f, 29.7377f, 49.5673f, 0.707107f);
9192 path.conicTo(29.8877f, 50.556f, 28.899f, 50.706f, 0.707107f);
9193 path.close();
9194 path.moveTo(25.8106f, 50.9874f);
9195 path.quadTo(25.6321f, 50.9929f, 25.4537f, 50.996f);
9196 path.conicTo(24.4539f, 51.0135f, 24.4365f, 50.0136f, 0.707115f);
9197 path.lineTo(24.4251f, 49.3638f);
9198 path.conicTo(24.4077f, 48.364f, 25.4075f, 48.3465f, 0.707107f);
9199 path.conicTo(26.4073f, 48.3291f, 26.4248f, 49.3289f, 0.707107f);
9200 path.lineTo(26.4361f, 49.9787f);
9201 path.lineTo(25.4363f, 49.9962f);
9202 path.lineTo(25.4189f, 48.9963f);
9203 path.quadTo(25.5836f, 48.9935f, 25.7482f, 48.9883f);
9204 path.conicTo(26.7477f, 48.9571f, 26.7789f, 49.9567f, 0.707107f);
9205 path.conicTo(26.8101f, 50.9562f, 25.8106f, 50.9874f, 0.707107f);
9206 path.close();
9207 path.moveTo(24.3902f, 47.3641f);
9208 path.lineTo(24.3728f, 46.3643f);
9209 path.conicTo(24.3553f, 45.3645f, 25.3551f, 45.347f, 0.707107f);
9210 path.conicTo(26.355f, 45.3295f, 26.3724f, 46.3294f, 0.707107f);
9211 path.lineTo(26.3899f, 47.3292f);
9212 path.conicTo(26.4074f, 48.3291f, 25.4075f, 48.3465f, 0.707107f);
9213 path.conicTo(24.4077f, 48.364f, 24.3902f, 47.3641f, 0.707107f);
9214 path.close();
9215 path.moveTo(24.3378f, 44.3646f);
9216 path.lineTo(24.3204f, 43.3648f);
9217 path.conicTo(24.3029f, 42.3649f, 25.3028f, 42.3475f, 0.707107f);
9218 path.conicTo(26.3026f, 42.33f, 26.3201f, 43.3298f, 0.707107f);
9219 path.lineTo(26.3375f, 44.3297f);
9220 path.conicTo(26.355f, 45.3295f, 25.3551f, 45.347f, 0.707107f);
9221 path.conicTo(24.3553f, 45.3645f, 24.3378f, 44.3646f, 0.707107f);
9222 path.close();
9223 path.moveTo(24.2855f, 41.3651f);
9224 path.lineTo(24.268f, 40.3652f);
9225 path.conicTo(24.2506f, 39.3654f, 25.2504f, 39.3479f, 0.707107f);
9226 path.conicTo(26.2503f, 39.3305f, 26.2677f, 40.3303f, 0.707107f);
9227 path.lineTo(26.2852f, 41.3302f);
9228 path.conicTo(26.3026f, 42.33f, 25.3028f, 42.3475f, 0.707107f);
9229 path.conicTo(24.3029f, 42.3649f, 24.2855f, 41.3651f, 0.707107f);
9230 path.close();
9231 path.moveTo(24.2331f, 38.3655f);
9232 path.lineTo(24.2157f, 37.3657f);
9233 path.conicTo(24.1982f, 36.3658f, 25.1981f, 36.3484f, 0.707107f);
9234 path.conicTo(26.1979f, 36.3309f, 26.2154f, 37.3308f, 0.707107f);
9235 path.lineTo(26.2328f, 38.3306f);
9236 path.conicTo(26.2503f, 39.3305f, 25.2504f, 39.3479f, 0.707107f);
9237 path.conicTo(24.2506f, 39.3654f, 24.2331f, 38.3655f, 0.707107f);
9238 path.close();
9239 path.moveTo(24.1808f, 35.366f);
9240 path.lineTo(24.1633f, 34.3661f);
9241 path.conicTo(24.1459f, 33.3663f, 25.1457f, 33.3488f, 0.707107f);
9242 path.conicTo(26.1456f, 33.3314f, 26.163f, 34.3312f, 0.707107f);
9243 path.lineTo(26.1805f, 35.3311f);
9244 path.conicTo(26.1979f, 36.3309f, 25.1981f, 36.3484f, 0.707107f);
9245 path.conicTo(24.1982f, 36.3658f, 24.1808f, 35.366f, 0.707107f);
9246 path.close();
9247 path.moveTo(24.1284f, 32.3664f);
9248 path.lineTo(24.111f, 31.3666f);
9249 path.conicTo(24.0935f, 30.3667f, 25.0934f, 30.3493f, 0.707107f);
9250 path.conicTo(26.0932f, 30.3318f, 26.1107f, 31.3317f, 0.707107f);
9251 path.lineTo(26.1281f, 32.3315f);
9252 path.conicTo(26.1456f, 33.3314f, 25.1457f, 33.3488f, 0.707107f);
9253 path.conicTo(24.1459f, 33.3663f, 24.1284f, 32.3664f, 0.707107f);
9254 path.close();
9255 path.moveTo(24.0761f, 29.3669f);
9256 path.lineTo(24.0586f, 28.367f);
9257 path.conicTo(24.0412f, 27.3672f, 25.041f, 27.3497f, 0.707107f);
9258 path.conicTo(26.0409f, 27.3323f, 26.0583f, 28.3321f, 0.707107f);
9259 path.lineTo(26.0758f, 29.332f);
9260 path.conicTo(26.0932f, 30.3318f, 25.0934f, 30.3493f, 0.707107f);
9261 path.conicTo(24.0935f, 30.3667f, 24.0761f, 29.3669f, 0.707107f);
9262 path.close();
9263 path.moveTo(24.0237f, 26.3673f);
9264 path.lineTo(24.0063f, 25.3675f);
9265 path.conicTo(23.9888f, 24.3676f, 24.9887f, 24.3502f, 0.707107f);
9266 path.conicTo(25.9885f, 24.3327f, 26.006f, 25.3326f, 0.707107f);
9267 path.lineTo(26.0234f, 26.3324f);
9268 path.conicTo(26.0409f, 27.3323f, 25.041f, 27.3497f, 0.707107f);
9269 path.conicTo(24.0412f, 27.3672f, 24.0237f, 26.3673f, 0.707107f);
9270 path.close();
9271 testSimplifyFail(reporter, path, filename);
9272 }
9273 
bug8249(skiatest::Reporter * reporter,const char * filename)9274 static void bug8249(skiatest::Reporter* reporter, const char* filename) {
9275 SkPath path;
9276 path.setFillType(SkPathFillType::kWinding);
9277 path.moveTo(SkBits2Float(0x43310000), SkBits2Float(0x43810000));  // 177, 258
9278 path.lineTo(SkBits2Float(0x43480000), SkBits2Float(0x43868000));  // 200, 269
9279 path.cubicTo(SkBits2Float(0x43480000), SkBits2Float(0x43b20000), SkBits2Float(0x437a0000), SkBits2Float(0x43cd0000), SkBits2Float(0x43c80000), SkBits2Float(0x43cd0000));  // 200, 356, 250, 410, 400, 410
9280 path.cubicTo(SkBits2Float(0x44098000), SkBits2Float(0x43cd0000), SkBits2Float(0x44160000), SkBits2Float(0x43b20000), SkBits2Float(0x44160000), SkBits2Float(0x43868000));  // 550, 410, 600, 356, 600, 269
9281 path.lineTo(SkBits2Float(0x44160000), SkBits2Float(0x43808000));  // 600, 257
9282 path.cubicTo(SkBits2Float(0x44160000), SkBits2Float(0x43330000), SkBits2Float(0x44110000), SkBits2Float(0x429c0000), SkBits2Float(0x43cd0000), SkBits2Float(0x429c0000));  // 600, 179, 580, 78, 410, 78
9283 path.cubicTo(SkBits2Float(0x43700000), SkBits2Float(0x429c0000), SkBits2Float(0x43480000), SkBits2Float(0x431f0000), SkBits2Float(0x43480000), SkBits2Float(0x438a8000));  // 240, 78, 200, 159, 200, 277
9284 path.lineTo(SkBits2Float(0x43480000), SkBits2Float(0x4401c000));  // 200, 519
9285 path.cubicTo(SkBits2Float(0x43480000), SkBits2Float(0x441f0000), SkBits2Float(0x43660000), SkBits2Float(0x44340000), SkBits2Float(0x43c80000), SkBits2Float(0x44340000));  // 200, 636, 230, 720, 400, 720
9286 path.cubicTo(SkBits2Float(0x4404c000), SkBits2Float(0x44340000), SkBits2Float(0x440d0000), SkBits2Float(0x442b8000), SkBits2Float(0x44118000), SkBits2Float(0x4416c000));  // 531, 720, 564, 686, 582, 603
9287 path.lineTo(SkBits2Float(0x442cc000), SkBits2Float(0x441c8000));  // 691, 626
9288 path.cubicTo(SkBits2Float(0x44260000), SkBits2Float(0x443d4000), SkBits2Float(0x44114000), SkBits2Float(0x444a8000), SkBits2Float(0x43c88000), SkBits2Float(0x444a8000));  // 664, 757, 581, 810, 401, 810
9289 path.cubicTo(SkBits2Float(0x43350000), SkBits2Float(0x444a8000), SkBits2Float(0x42c80000), SkBits2Float(0x442e0000), SkBits2Float(0x42c80000), SkBits2Float(0x4401c000));  // 181, 810, 100, 696, 100, 519
9290 path.lineTo(SkBits2Float(0x42c80000), SkBits2Float(0x438a8000));  // 100, 277
9291 path.cubicTo(SkBits2Float(0x42c80000), SkBits2Float(0x42cc0000), SkBits2Float(0x433e0000), SkBits2Float(0xc1200000), SkBits2Float(0x43cd0000), SkBits2Float(0xc1200000));  // 100, 102, 190, -10, 410, -10
9292 path.cubicTo(SkBits2Float(0x441d8000), SkBits2Float(0xc1200000), SkBits2Float(0x442f0000), SkBits2Float(0x42e60000), SkBits2Float(0x442f0000), SkBits2Float(0x437a0000));  // 630, -10, 700, 115, 700, 250
9293 path.lineTo(SkBits2Float(0x442f0000), SkBits2Float(0x43880000));  // 700, 272
9294 path.cubicTo(SkBits2Float(0x442f0000), SkBits2Float(0x43d18000), SkBits2Float(0x44164000), SkBits2Float(0x43fa0000), SkBits2Float(0x43c88000), SkBits2Float(0x43fa0000));  // 700, 419, 601, 500, 401, 500
9295 path.cubicTo(SkBits2Float(0x43490000), SkBits2Float(0x43fa0000), SkBits2Float(0x43160000), SkBits2Float(0x43d00000), SkBits2Float(0x43160000), SkBits2Float(0x43868000));  // 201, 500, 150, 416, 150, 269
9296 path.lineTo(SkBits2Float(0x43310000), SkBits2Float(0x43810000));  // 177, 258
9297 path.close();
9298 testSimplify(reporter, path, filename);
9299 }
9300 
bug8290(skiatest::Reporter * reporter,const char * filename)9301 static void bug8290(skiatest::Reporter* reporter, const char* filename) {
9302     SkPath path;
9303     path.setFillType(SkPathFillType::kEvenOdd);
9304     path.moveTo(-1e+09, -1e+09);
9305     path.lineTo(1e+09, -1e+09);
9306     path.lineTo(1e+09, 1e+09);
9307     path.lineTo(-1e+09, 1e+09);
9308     path.lineTo(-1e+09, -1e+09);
9309     path.close();
9310     path.moveTo(0, 45);
9311     path.lineTo(270, 45);
9312     path.lineTo(270, 45.381f);
9313     path.lineTo(0, 45.381f);
9314     path.lineTo(0, 45);
9315     path.close();
9316     path.moveTo(0, 90.381f);
9317     path.lineTo(270, 90.381f);
9318     path.lineTo(270, 90.7619f);
9319     path.lineTo(0, 90.7619f);
9320     path.lineTo(0, 90.381f);
9321     path.close();
9322     path.moveTo(0, 135.762f);
9323     path.lineTo(270, 135.762f);
9324     path.lineTo(270, 136.143f);
9325     path.lineTo(0, 136.143f);
9326     path.lineTo(0, 135.762f);
9327     path.close();
9328     path.moveTo(0, 181.143f);
9329     path.lineTo(270, 181.143f);
9330     path.lineTo(270, 181.524f);
9331     path.lineTo(0, 181.524f);
9332     path.lineTo(0, 181.143f);
9333     path.close();
9334     path.moveTo(0, 226.524f);
9335     path.lineTo(270, 226.524f);
9336     path.lineTo(270, 226.905f);
9337     path.lineTo(0, 226.905f);
9338     path.lineTo(0, 226.524f);
9339     path.close();
9340     path.moveTo(0, 271.905f);
9341     path.lineTo(270, 271.905f);
9342     path.lineTo(270, 272.286f);
9343     path.lineTo(0, 272.286f);
9344     path.lineTo(0, 271.905f);
9345     path.close();
9346     path.moveTo(0, 317.286f);
9347     path.lineTo(270, 317.286f);
9348     path.lineTo(270, 317.667f);
9349     path.lineTo(0, 317.667f);
9350     path.lineTo(0, 317.286f);
9351     path.close();
9352     SkMatrix matrix = SkMatrix::MakeAll(
9353             2.625,	0,	186,
9354             0,	2.625,	620,
9355             0,	0,	1);
9356     path.transform(matrix);
9357     testSimplify(reporter, path, filename);
9358 }
9359 
9360 static void (*skipTest)(skiatest::Reporter* , const char* filename) = nullptr;
9361 static void (*firstTest)(skiatest::Reporter* , const char* filename) = nullptr;
9362 static void (*stopTest)(skiatest::Reporter* , const char* filename) = nullptr;
9363 
9364 static TestDesc tests[] = {
9365     TEST(bug8290),
9366     TEST(bug8249),
9367     TEST(grshapearc),
9368     TEST(coincubics),
9369     TEST(joel_16x),
9370     TEST(joel_16),
9371     TEST(joel_15x),
9372     TEST(joel_15),
9373     TEST(joel_14x),
9374     TEST(joel_14),
9375     TEST(joel_13x),
9376     TEST(joel_13),
9377     TEST(joel_12x),
9378     TEST(joel_12),
9379     TEST(joel_11),
9380     TEST(joel_10),
9381     TEST(joel_9),
9382     TEST(joel_8),
9383     TEST(joel_7),
9384     TEST(joel_6),
9385     TEST(joel_5),
9386     TEST(joel_4),
9387     TEST(joel_3),
9388     TEST(joel_2),
9389     TEST(joel_1),
9390     TEST(simplifyTest_1),
9391     TEST(carsvg_1),
9392     TEST(tiger8_393),
9393     TEST(bug5169),
9394     TEST(testQuads73),
9395     TEST(testQuads72),
9396     TEST(testQuads71),
9397     TEST(testQuads70),
9398     TEST(testQuads69),
9399     TEST(testQuads68),
9400     TEST(testQuads67),
9401     TEST(testQuads66),
9402     TEST(dean4),
9403     TEST(fuzz763_4713_b),
9404     TEST(fuzz_twister2),
9405     TEST(fuzz_twister),
9406     TEST(fuzz994s_3414),
9407     TEST(fuzz994s_11),
9408     TEST(cr514118),
9409     TEST(fuzz864a),
9410     TEST(testQuads65),
9411     TEST(testIssue3838_3),
9412     TEST(testIssue3838),
9413     TEST(testArc),
9414     TEST(testTriangle2),
9415     TEST(testTriangle1),
9416     TEST(testQuads64),
9417     TEST(testQuads63),
9418     TEST(testQuads62),
9419     TEST(testRect4),
9420     TEST(testRect3),
9421     TEST(testQuadralateral10),
9422     TEST(testQuads61),
9423     TEST(testQuads60),
9424     TEST(testQuads59),
9425     TEST(testQuads58),
9426     TEST(testQuads57),
9427     TEST(testQuads56),
9428     TEST(testQuads54),
9429     TEST(testQuads53),
9430     TEST(testQuads52),
9431     TEST(testQuads51),
9432     TEST(testQuads50),
9433     TEST(testQuads49),
9434     TEST(testQuads48),
9435     TEST(testQuads47),
9436     TEST(testQuads46x),
9437     TEST(testQuads45),
9438     TEST(testQuads44),
9439     TEST(testQuads43),
9440     TEST(testQuads42),
9441     TEST(testQuads41),
9442     TEST(testQuads36),
9443     TEST(testQuads37),
9444     TEST(testQuads38),
9445     TEST(testQuads39),
9446     TEST(testQuads40),
9447     TEST(testQuads16),
9448     TEST(testQuads17),
9449     TEST(testQuads18),
9450     TEST(testQuads19),
9451     TEST(testQuads20),
9452     TEST(testQuads21),
9453     TEST(testQuads22),
9454     TEST(testQuads23),
9455     TEST(testQuads24),
9456     TEST(testQuads25),
9457     TEST(testQuads26),
9458     TEST(testQuads27),
9459     TEST(testQuads28),
9460     TEST(testQuads29),
9461     TEST(testQuads30),
9462     TEST(testQuads31),
9463     TEST(testQuads32),
9464     TEST(testQuads33),
9465     TEST(testQuads34),
9466     TEST(testQuads35),
9467     TEST(testDegenerates1),
9468     TEST(testQuad13),
9469     TEST(testQuad14),
9470     TEST(testQuad15),
9471     TEST(testQuadratic56),
9472     TEST(testQuadralateral4),
9473     TEST(testQuadralateral3),
9474     TEST(testDegenerate5),
9475     TEST(testQuad12),
9476     TEST(testQuadratic51),
9477     TEST(testQuad8),
9478     TEST(testQuad11),
9479     TEST(testQuad10),
9480     TEST(testQuad9),
9481     TEST(testTriangles4x),
9482     TEST(testTriangles3x),
9483     TEST(testRect2s),
9484     TEST(testRect1s),
9485     TEST(tooCloseTest),
9486     TEST(skphealth_com76s),
9487     TEST(testQuadLineIntersect1),
9488     TEST(testQuadLineIntersect2),
9489     TEST(testQuadLineIntersect3),
9490     TEST(testQuad7),
9491     TEST(testQuad6),
9492     TEST(testQuad5),
9493     TEST(testQuad4),
9494     TEST(testQuad3),
9495     TEST(testQuad2),
9496     TEST(testAddTCoincident2),
9497     TEST(testAddTCoincident1),
9498     TEST(testTriangles2),
9499     TEST(testTriangles1),
9500     TEST(testQuadratic97),
9501     TEST(testQuadratic96),
9502     TEST(testQuadratic95),
9503     TEST(testQuadratic94),
9504     TEST(testQuadralateral2),
9505     TEST(testQuad1),
9506     TEST(testCubic2),
9507     TEST(testCubic1),
9508     TEST(testQuadralateral1),
9509     TEST(testLine85),
9510     TEST(testLine84),
9511     TEST(testLine84x),
9512     TEST(testLine83),
9513     TEST(testLine82h),
9514     TEST(testLine82g),
9515     TEST(testLine82f),
9516     TEST(testLine82e),
9517     TEST(testLine82d),
9518     TEST(testLine82c),
9519     TEST(testLine82b),
9520     TEST(testLine82a),
9521     TEST(testLine82),
9522     TEST(testQuadratic93),
9523     TEST(testQuadratic92x),
9524     TEST(testQuadratic91),
9525     TEST(testQuadratic90x),
9526     TEST(testQuadratic89x),
9527     TEST(testQuadratic88),
9528     TEST(testQuadratic87),
9529     TEST(testQuadratic86),
9530     TEST(testQuadratic85),
9531     TEST(testQuadratic84),
9532     TEST(testQuadratic83),
9533     TEST(testQuadratic82),
9534     TEST(testQuadratic81),
9535     TEST(testQuadratic80),
9536     TEST(testEight1),
9537     TEST(testEight2),
9538     TEST(testEight3),
9539     TEST(testEight4),
9540     TEST(testEight5),
9541     TEST(testEight6),
9542     TEST(testEight7),
9543     TEST(testEight8),
9544     TEST(testEight9),
9545     TEST(testEight10),
9546     TEST(testQuadratic79),
9547     TEST(testQuadratic78),
9548     TEST(testQuadratic77),
9549     TEST(testQuadratic76),
9550     TEST(testQuadratic75),
9551     TEST(testQuadratic74),
9552     TEST(testQuadratic73),
9553     TEST(testQuadratic72),
9554     TEST(testQuadratic71),
9555     TEST(testQuadratic70x),
9556     TEST(testQuadratic69),
9557     TEST(testQuadratic68),
9558     TEST(testQuadratic67x),
9559     TEST(testQuadratic65),
9560     TEST(testQuadratic64),
9561     TEST(testQuadratic63),
9562     TEST(testLine1a),
9563     TEST(testQuadratic59),
9564     TEST(testQuadratic59x),
9565     TEST(testQuadratic58),
9566     TEST(testQuadratic55),
9567     TEST(testQuadratic53),
9568     TEST(testQuadratic38),
9569     TEST(testQuadratic37),
9570     TEST(testQuadratic36),
9571     TEST(testQuadratic35),
9572     TEST(testQuadratic34),
9573     TEST(testQuadratic33),
9574     TEST(testQuadratic32),
9575     TEST(testQuadratic31),
9576     TEST(testQuadratic30),
9577     TEST(testQuadratic29),
9578     TEST(testQuadratic28),
9579     TEST(testQuadratic27),
9580     TEST(testQuadratic26),
9581     TEST(testQuadratic25),
9582     TEST(testQuadratic24),
9583     TEST(testQuadratic23),
9584     TEST(testQuadratic22),
9585     TEST(testQuadratic21),
9586     TEST(testQuadratic20),
9587     TEST(testQuadratic19),
9588     TEST(testQuadratic18),
9589     TEST(testQuadratic17x),
9590     TEST(testQuadratic15),
9591     TEST(testQuadratic14),
9592     TEST(testQuadratic9),
9593     TEST(testQuadratic8),
9594     TEST(testQuadratic7),
9595     TEST(testQuadratic6),
9596     TEST(testQuadratic5),
9597     TEST(testQuadratic4x),
9598     TEST(testQuadratic3x),
9599     TEST(testQuadratic2x),
9600     TEST(testQuadratic1x),
9601     TEST(testQuadratic4),
9602     TEST(testQuadratic3),
9603     TEST(testQuadratic2),
9604     TEST(testQuadratic1),
9605     TEST(testLine4ax),
9606     TEST(testLine3aax),
9607     TEST(testLine2ax),
9608     TEST(testLine1ax),
9609     TEST(testQuadralateral9x),
9610     TEST(testQuadralateral8x),
9611     TEST(testQuadralateral7x),
9612     TEST(testQuadralateral6x),
9613     TEST(testQuadralateral6ax),
9614     TEST(testQuadralateral9),
9615     TEST(testQuadralateral8),
9616     TEST(testQuadralateral7),
9617     TEST(testQuadralateral6),
9618     TEST(testQuadralateral6a),
9619     TEST(testFauxQuadralateral6dx),
9620     TEST(testFauxQuadralateral6cx),
9621     TEST(testFauxQuadralateral6bx),
9622     TEST(testFauxQuadralateral6ax),
9623     TEST(testFauxQuadralateral6x),
9624     TEST(testFauxQuadralateral6d),
9625     TEST(testFauxQuadralateral6c),
9626     TEST(testFauxQuadralateral6b),
9627     TEST(testFauxQuadralateral6a),
9628     TEST(testFauxQuadralateral6),
9629     TEST(testQuadralateral5x),
9630     TEST(testQuadralateral5),
9631     TEST(testNondegenerate4x),
9632     TEST(testNondegenerate3x),
9633     TEST(testNondegenerate2x),
9634     TEST(testNondegenerate1x),
9635     TEST(testNondegenerate4),
9636     TEST(testNondegenerate3),
9637     TEST(testNondegenerate2),
9638     TEST(testNondegenerate1),
9639     TEST(testDegenerate4x),
9640     TEST(testDegenerate3x),
9641     TEST(testDegenerate2x),
9642     TEST(testDegenerate1x),
9643     TEST(testDegenerate4),
9644     TEST(testDegenerate3),
9645     TEST(testDegenerate2),
9646     TEST(testDegenerate1),
9647     TEST(testLine79x),
9648     TEST(testLine78x),
9649     TEST(testLine77x),
9650     TEST(testLine76x),
9651     TEST(testLine75x),
9652     TEST(testLine74x),
9653     TEST(testLine73x),
9654     TEST(testLine72x),
9655     TEST(testLine71x),
9656     TEST(testLine70x),
9657     TEST(testLine69x),
9658     TEST(testLine68hx),
9659     TEST(testLine68gx),
9660     TEST(testLine68fx),
9661     TEST(testLine68ex),
9662     TEST(testLine68dx),
9663     TEST(testLine68cx),
9664     TEST(testLine68bx),
9665     TEST(testLine68ax),
9666     TEST(testLine67x),
9667     TEST(testLine66x),
9668     TEST(testLine65x),
9669     TEST(testLine64x),
9670     TEST(testLine63x),
9671     TEST(testLine62x),
9672     TEST(testLine61x),
9673     TEST(testLine60x),
9674     TEST(testLine59x),
9675     TEST(testLine58x),
9676     TEST(testLine57x),
9677     TEST(testLine56x),
9678     TEST(testLine55x),
9679     TEST(testLine54x),
9680     TEST(testLine53x),
9681     TEST(testLine52x),
9682     TEST(testLine51x),
9683     TEST(testLine50x),
9684     TEST(testLine49x),
9685     TEST(testLine48x),
9686     TEST(testLine47x),
9687     TEST(testLine46x),
9688     TEST(testLine45x),
9689     TEST(testLine44x),
9690     TEST(testLine43x),
9691     TEST(testLine42x),
9692     TEST(testLine41x),
9693     TEST(testLine40x),
9694     TEST(testLine38x),
9695     TEST(testLine37x),
9696     TEST(testLine36x),
9697     TEST(testLine35x),
9698     TEST(testLine34x),
9699     TEST(testLine33x),
9700     TEST(testLine32x),
9701     TEST(testLine31x),
9702     TEST(testLine30x),
9703     TEST(testLine29x),
9704     TEST(testLine28x),
9705     TEST(testLine27x),
9706     TEST(testLine26x),
9707     TEST(testLine25x),
9708     TEST(testLine24ax),
9709     TEST(testLine24x),
9710     TEST(testLine23x),
9711     TEST(testLine22x),
9712     TEST(testLine21x),
9713     TEST(testLine20x),
9714     TEST(testLine19x),
9715     TEST(testLine18x),
9716     TEST(testLine17x),
9717     TEST(testLine16x),
9718     TEST(testLine15x),
9719     TEST(testLine14x),
9720     TEST(testLine13x),
9721     TEST(testLine12x),
9722     TEST(testLine11x),
9723     TEST(testLine10ax),
9724     TEST(testLine10x),
9725     TEST(testLine9x),
9726     TEST(testLine8x),
9727     TEST(testLine7bx),
9728     TEST(testLine7ax),
9729     TEST(testLine7x),
9730     TEST(testLine6x),
9731     TEST(testLine5x),
9732     TEST(testLine4x),
9733     TEST(testLine3bx),
9734     TEST(testLine3ax),
9735     TEST(testLine3x),
9736     TEST(testLine2x),
9737     TEST(testLine1x),
9738     TEST(testLine81),
9739     TEST(testLine80),
9740     TEST(testLine79),
9741     TEST(testLine78),
9742     TEST(testLine77),
9743     TEST(testLine76),
9744     TEST(testLine75),
9745     TEST(testLine74),
9746     TEST(testLine73),
9747     TEST(testLine72),
9748     TEST(testLine71),
9749     TEST(testLine70),
9750     TEST(testLine69),
9751     TEST(testLine68h),
9752     TEST(testLine68g),
9753     TEST(testLine68f),
9754     TEST(testLine68e),
9755     TEST(testLine68d),
9756     TEST(testLine68c),
9757     TEST(testLine68b),
9758     TEST(testLine68a),
9759     TEST(testLine67),
9760     TEST(testLine66),
9761     TEST(testLine65),
9762     TEST(testLine64),
9763     TEST(testLine63),
9764     TEST(testLine62),
9765     TEST(testLine61),
9766     TEST(testLine60),
9767     TEST(testLine59),
9768     TEST(testLine58),
9769     TEST(testLine57),
9770     TEST(testLine56),
9771     TEST(testLine55),
9772     TEST(testLine54),
9773     TEST(testLine53),
9774     TEST(testLine52),
9775     TEST(testLine51),
9776     TEST(testLine50),
9777     TEST(testLine49),
9778     TEST(testLine48),
9779     TEST(testLine47),
9780     TEST(testLine46),
9781     TEST(testLine45),
9782     TEST(testLine44),
9783     TEST(testLine43),
9784     TEST(testLine42),
9785     TEST(testLine41),
9786     TEST(testLine40),
9787     TEST(testLine38),
9788     TEST(testLine37),
9789     TEST(testLine36),
9790     TEST(testLine35),
9791     TEST(testLine34),
9792     TEST(testLine33),
9793     TEST(testLine32),
9794     TEST(testLine31),
9795     TEST(testLine30),
9796     TEST(testLine29),
9797     TEST(testLine28),
9798     TEST(testLine27),
9799     TEST(testLine26),
9800     TEST(testLine25),
9801     TEST(testLine24a),
9802     TEST(testLine24),
9803     TEST(testLine23),
9804     TEST(testLine22),
9805     TEST(testLine21),
9806     TEST(testLine20),
9807     TEST(testLine19),
9808     TEST(testLine18),
9809     TEST(testLine17),
9810     TEST(testLine16),
9811     TEST(testLine15),
9812     TEST(testLine14),
9813     TEST(testLine13),
9814     TEST(testLine12),
9815     TEST(testLine11),
9816     TEST(testLine10a),
9817     TEST(testLine10),
9818     TEST(testLine9),
9819     TEST(testLine8),
9820     TEST(testLine7b),
9821     TEST(testLine7a),
9822     TEST(testLine7),
9823     TEST(testLine6),
9824     TEST(testLine5),
9825     TEST(testLine4),
9826     TEST(testLine3b),
9827     TEST(testLine3a),
9828     TEST(testLine3),
9829     TEST(testLine2),
9830     TEST(testLine1),
9831 };
9832 
9833 static const size_t testCount = SK_ARRAY_COUNT(tests);
9834 
9835 static TestDesc subTests[] = {
9836     TEST(fuzz994s_3414),
9837     TEST(fuzz994s_11),
9838 };
9839 
9840 static const size_t subTestCount = SK_ARRAY_COUNT(subTests);
9841 
9842 static void (*firstSubTest)(skiatest::Reporter* , const char* filename) = nullptr;
9843 
9844 static bool runSubTests = false;
9845 static bool runSubTestsFirst = false;
9846 static bool runReverse = false;
9847 
DEF_TEST(PathOpsSimplify,reporter)9848 DEF_TEST(PathOpsSimplify, reporter) {
9849     if (runSubTests && runSubTestsFirst) {
9850         RunTestSet(reporter, subTests, subTestCount, firstSubTest, nullptr, stopTest, runReverse);
9851     }
9852     RunTestSet(reporter, tests, testCount, firstTest, skipTest, stopTest, runReverse);
9853     if (runSubTests && !runSubTestsFirst) {
9854         RunTestSet(reporter, subTests, subTestCount, firstSubTest, nullptr, stopTest, runReverse);
9855     }
9856 }
9857