From 990ae8fd84722ad45ded53231e5383d548e7c932 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:03:59 +0200 Subject: [PATCH 01/61] update documentation --- README.md | 15 +++++++++++++++ draw2d.go | 12 ++++++++++++ 2 files changed, 27 insertions(+) diff --git a/README.md b/README.md index c9aca0c..d747d15 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ Features Operations in draw2d include stroking and filling polygons, arcs, Bézier curves, drawing images and text rendering with truetype fonts. All drawing operations can be transformed by affine transformations (scale, rotation, translation). +Package draw2d follows the conventions of the [HTML Canvas 2D Context](http://www.w3.org/TR/2dcontext/) for coordinate system, angles, etc... + Installation ------------ @@ -72,6 +74,19 @@ There are more examples here: https://github.com/llgcode/draw2d.samples Drawing on opengl is provided by the draw2dgl package. +Testing +------- + +The samples are run as tests from the root package folder `draw2d` by: +``` +go test ./... +``` +Or if you want to run with test coverage: +``` +go test -cover ./... | grep -v "no test" +``` +This will generate output by the different backends in the output folder. + Acknowledgments --------------- diff --git a/draw2d.go b/draw2d.go index 3711927..79a5a0a 100644 --- a/draw2d.go +++ b/draw2d.go @@ -13,6 +13,8 @@ // All drawing operations can be transformed by affine transformations // (scale, rotation, translation). // +// Package draw2d follows the conventions of http://www.w3.org/TR/2dcontext for coordinate system, angles, etc... +// // Installation // // To install or update the package draw2d on your system, run: @@ -49,6 +51,16 @@ // Drawing on opengl is provided by the draw2dgl package. // See subdirectories at the bottom of this page. // +// Testing +// +// The samples are run as tests from the root package folder `draw2d` by: +// go test ./... +// +// Or if you want to run with test coverage: +// go test -cover ./... | grep -v "no test" +// +// This will generate output by the different backends in the output folder. +// // Acknowledgments // // Laurent Le Goff wrote this library, inspired by Postscript and From 903829eb548ac6bdc48a54712f4bf14abb8a4ce3 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:05:22 +0200 Subject: [PATCH 02/61] fix fontdir bug --- draw2dpdf/gc.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/draw2dpdf/gc.go b/draw2dpdf/gc.go index ed159de..8c7c3aa 100644 --- a/draw2dpdf/gc.go +++ b/draw2dpdf/gc.go @@ -12,7 +12,6 @@ import ( "log" "math" "os" - "path/filepath" "strconv" "code.google.com/p/freetype-go/freetype/truetype" @@ -240,8 +239,7 @@ func (gc *GraphicContext) SetFontData(fontData draw2d.FontData) { } fn := draw2d.FontFileName(fontData) fn = fn[:len(fn)-4] - jfn := filepath.Join(draw2d.GetFontFolder(), fn+".json") - gc.pdf.AddFont(fn, style, jfn) + gc.pdf.AddFont(fn, style, fn+".json") } // SetFontSize sets the font size in points (as in ``a 12 point font''). From f5ef2c01542df06ad3edc2a37319fbee849938f5 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:06:47 +0200 Subject: [PATCH 03/61] use clean path for font folder --- font.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/font.go b/font.go index e62ef28..cdc1c18 100644 --- a/font.go +++ b/font.go @@ -7,6 +7,7 @@ import ( "io/ioutil" "log" "path" + "path/filepath" "code.google.com/p/freetype-go/freetype/truetype" ) @@ -80,7 +81,7 @@ func GetFontFolder() string { } func SetFontFolder(folder string) { - fontFolder = folder + fontFolder = filepath.Clean(folder) } func loadFont(fontFileName string) *truetype.Font { From 10796a3100936b3046abd2782a2a24fdc24ce133 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:07:18 +0200 Subject: [PATCH 04/61] prepare testing for including samples --- draw2dpdf/samples_test.go | 21 ++++++++++----------- draw2dpdf/test_test.go | 21 +++++++++++---------- samples_test.go | 19 +++++++++---------- test_test.go | 8 ++++---- 4 files changed, 34 insertions(+), 35 deletions(-) diff --git a/draw2dpdf/samples_test.go b/draw2dpdf/samples_test.go index 5ceeb3c..ac6a4ce 100644 --- a/draw2dpdf/samples_test.go +++ b/draw2dpdf/samples_test.go @@ -6,14 +6,13 @@ import ( "testing" "github.com/llgcode/draw2d" - "github.com/llgcode/draw2d.samples" - "github.com/llgcode/draw2d.samples/android" - "github.com/llgcode/draw2d.samples/frameimage" - "github.com/llgcode/draw2d.samples/gopher" - "github.com/llgcode/draw2d.samples/helloworld" - "github.com/llgcode/draw2d.samples/line" - "github.com/llgcode/draw2d.samples/linecapjoin" - "github.com/llgcode/draw2d.samples/postscript" + "github.com/llgcode/draw2d/samples/android" + "github.com/llgcode/draw2d/samples/frameimage" + "github.com/llgcode/draw2d/samples/gopher" + "github.com/llgcode/draw2d/samples/helloworld" + "github.com/llgcode/draw2d/samples/line" + "github.com/llgcode/draw2d/samples/linecapjoin" + "github.com/llgcode/draw2d/samples/postscript" ) func TestSampleAndroid(t *testing.T) { @@ -26,9 +25,9 @@ func TestSampleGopher(t *testing.T) { func TestSampleHelloWorld(t *testing.T) { // Set the global folder for searching fonts - // The pdf backend needs for every ttf file its corresponding json - // file which is generated by gofpdf/makefont. - draw2d.SetFontFolder(samples.Dir("helloworld", "../")) + // The pdf backend needs for every ttf file its corresponding + // json/.z file which is generated by gofpdf/makefont. + draw2d.SetFontFolder("../resource/font") test(t, helloworld.Main) } diff --git a/draw2dpdf/test_test.go b/draw2dpdf/test_test.go index a763c59..88e1f43 100644 --- a/draw2dpdf/test_test.go +++ b/draw2dpdf/test_test.go @@ -4,7 +4,6 @@ package draw2dpdf_test import ( - "os" "testing" "github.com/llgcode/draw2d" @@ -18,18 +17,20 @@ func test(t *testing.T, draw sample) { dest := draw2dpdf.NewPdf("L", "mm", "A4") gc := draw2dpdf.NewGraphicContext(dest) // Draw sample - fn, err := draw(gc, "pdf") + output, err := draw(gc, "pdf") if err != nil { - t.Errorf("Drawing %q failed: %v", fn, err) + t.Errorf("Drawing %q failed: %v", output, err) return } - // Save to pdf only if it doesn't exist because of git - if _, err = os.Stat(fn); err == nil { - t.Skipf("Saving %q skipped, as it exists already. (Git would consider it modified.)", fn) - return - } - err = draw2dpdf.SaveToPdfFile(fn, dest) + /* + // Save to pdf only if it doesn't exist because of git + if _, err = os.Stat(output); err == nil { + t.Skipf("Saving %q skipped, as it exists already. (Git would consider it modified.)", output) + return + } + */ + err = draw2dpdf.SaveToPdfFile(output, dest) if err != nil { - t.Errorf("Saving %q failed: %v", fn, err) + t.Errorf("Saving %q failed: %v", output, err) } } diff --git a/samples_test.go b/samples_test.go index 2d49caf..fdf7614 100644 --- a/samples_test.go +++ b/samples_test.go @@ -6,14 +6,13 @@ import ( "testing" "github.com/llgcode/draw2d" - "github.com/llgcode/draw2d.samples" - "github.com/llgcode/draw2d.samples/android" - "github.com/llgcode/draw2d.samples/frameimage" - "github.com/llgcode/draw2d.samples/gopher" - "github.com/llgcode/draw2d.samples/helloworld" - "github.com/llgcode/draw2d.samples/line" - "github.com/llgcode/draw2d.samples/linecapjoin" - "github.com/llgcode/draw2d.samples/postscript" + "github.com/llgcode/draw2d/samples/android" + "github.com/llgcode/draw2d/samples/frameimage" + "github.com/llgcode/draw2d/samples/gopher" + "github.com/llgcode/draw2d/samples/helloworld" + "github.com/llgcode/draw2d/samples/line" + "github.com/llgcode/draw2d/samples/linecapjoin" + "github.com/llgcode/draw2d/samples/postscript" ) func TestSampleAndroid(t *testing.T) { @@ -26,7 +25,7 @@ func TestSampleGopher(t *testing.T) { func TestSampleHelloWorld(t *testing.T) { // Set the global folder for searching fonts - draw2d.SetFontFolder(samples.Dir("helloworld", "")) + draw2d.SetFontFolder("resource/font") test(t, helloworld.Main) } @@ -38,7 +37,7 @@ func TestSampleLine(t *testing.T) { test(t, line.Main) } -func TestSampleLineCap(t *testing.T) { +func TestSampleLineCapJoin(t *testing.T) { test(t, linecapjoin.Main) } diff --git a/test_test.go b/test_test.go index ca58f79..1796a9d 100644 --- a/test_test.go +++ b/test_test.go @@ -16,14 +16,14 @@ func test(t *testing.T, draw sample) { dest := image.NewRGBA(image.Rect(0, 0, 297, 210.0)) gc := draw2d.NewGraphicContext(dest) // Draw Android logo - fn, err := draw(gc, "png") + output, err := draw(gc, "png") if err != nil { - t.Errorf("Drawing %q failed: %v", fn, err) + t.Errorf("Drawing %q failed: %v", output, err) return } // Save to png - err = draw2d.SaveToPngFile(fn, dest) + err = draw2d.SaveToPngFile(output, dest) if err != nil { - t.Errorf("Saving %q failed: %v", fn, err) + t.Errorf("Saving %q failed: %v", output, err) } } From 96c95d0346e3cdd3df752948d0eab16abbe563ea Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:08:05 +0200 Subject: [PATCH 05/61] add empty output folder for sample tests --- .gitignore | 1 + output/.empty | 0 2 files changed, 1 insertion(+) create mode 100644 output/.empty diff --git a/.gitignore b/.gitignore index 2736c60..5aafa34 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ _test* **/*.dll **/core*[0-9] .private +output diff --git a/output/.empty b/output/.empty new file mode 100644 index 0000000..e69de29 From b1417d86fa78264dca740aebbafcf4c09a47d6cb Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:10:10 +0200 Subject: [PATCH 06/61] add makefont files of luxi so it can be loaded by gofpdf --- resource/font/luximbi.json | 1 + resource/font/luximbi.z | Bin 0 -> 31788 bytes 2 files changed, 1 insertion(+) create mode 100644 resource/font/luximbi.json create mode 100644 resource/font/luximbi.z diff --git a/resource/font/luximbi.json b/resource/font/luximbi.json new file mode 100644 index 0000000..cc5cd35 --- /dev/null +++ b/resource/font/luximbi.json @@ -0,0 +1 @@ +{"Tp":"TrueType","Name":"LuxiMono-BoldOblique","Desc":{"Ascent":783,"Descent":-205,"CapHeight":783,"Flags":97,"FontBBox":{"Xmin":-29,"Ymin":-211,"Xmax":764,"Ymax":1012},"ItalicAngle":-8,"StemV":120,"MissingWidth":600},"Up":0,"Ut":0,"Cw":[600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,653,600,653,600,600,653,600,653,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600],"Enc":"cp1252","Diff":"","File":"luximbi.z","Size1":0,"Size2":0,"OriginalSize":69872,"I":0,"N":0,"DiffN":0} \ No newline at end of file diff --git a/resource/font/luximbi.z b/resource/font/luximbi.z new file mode 100644 index 0000000000000000000000000000000000000000..4dfb443ab9ef3f734939ca8bb1f664c25b25e109 GIT binary patch literal 31788 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 Date: Fri, 10 Jul 2015 02:10:50 +0200 Subject: [PATCH 07/61] add resource images for sample tests --- resource/image/gopher.png | Bin 0 -> 67555 bytes resource/image/tiger.ps | 2733 +++++++++++++++++++++++++++++++++++++ 2 files changed, 2733 insertions(+) create mode 100644 resource/image/gopher.png create mode 100644 resource/image/tiger.ps diff --git a/resource/image/gopher.png b/resource/image/gopher.png new file mode 100644 index 0000000000000000000000000000000000000000..85987235a9a6b188cb3d87c054627b3a42b73815 GIT binary patch literal 67555 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

?I}B^d)4zQ(t#a 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 literal 0 HcmV?d00001 diff --git a/resource/image/tiger.ps b/resource/image/tiger.ps new file mode 100644 index 0000000..24a9dce --- /dev/null +++ b/resource/image/tiger.ps @@ -0,0 +1,2733 @@ +%!PS-Adobe-2.0 EPSF-1.2 +%%Creator: Adobe Illustrator(TM) 1.2d4 +%%For: OpenWindows Version 2 +%%Title: tiger.eps +%%CreationDate: 4/12/90 3:20 AM +%%DocumentProcSets: Adobe_Illustrator_1.2d1 0 0 +%%DocumentSuppliedProcSets: Adobe_Illustrator_1.2d1 0 0 +%%BoundingBox: 22 171 567 738 +%%EndComments + +%%BeginProcSet:Adobe_Illustrator_1.2d1 0 0 + +/Adobe_Illustrator_1.2d1 dup 100 dict def load begin +% definition operators +/bdef {bind def} bind def +/ldef {load def} bdef +/xdef {exch def} bdef +% graphic state operators +/_K { 3 index add neg dup 0 lt {pop 0} if 3 1 roll } bdef +/_k /setcmybcolor where { + /setcmybcolor get +} { + { 1 sub 4 1 roll _K _K _K setrgbcolor pop } bind +} ifelse def +/g {/_b xdef /p {_b setgray} def} bdef +/G {/_B xdef /P {_B setgray} def} bdef +/k {/_b xdef /_y xdef /_m xdef /_c xdef /p {_c _m _y _b _k} def} bdef +/K {/_B xdef /_Y xdef /_M xdef /_C xdef /P {_C _M _Y _B _k} def} bdef +/d /setdash ldef +/_i currentflat def +/i {dup 0 eq {pop _i} if setflat} bdef +/j /setlinejoin ldef +/J /setlinecap ldef +/M /setmiterlimit ldef +/w /setlinewidth ldef +% path construction operators +/_R {.25 sub round .25 add} bdef +/_r {transform _R exch _R exch itransform} bdef +/c {_r curveto} bdef +/C /c ldef +/v {currentpoint 6 2 roll _r curveto} bdef +/V /v ldef +/y {_r 2 copy curveto} bdef +/Y /y ldef +/l {_r lineto} bdef +/L /l ldef +/m {_r moveto} bdef +% path painting operators +/n /newpath ldef +/N /n ldef +/F {p fill} bdef +/f {closepath F} bdef +/S {P stroke} bdef +/s {closepath S} bdef +/B {gsave F grestore S} bdef +/b {closepath B} bdef +end +%%EndProcSet +%%EndProlog + +%%Page: 1 1 + +Adobe_Illustrator_1.2d1 begin + +.8 setgray +clippath fill +-110 -300 translate +1.1 dup scale + +0 g +0 G +0 i +0 J +0 j +0.172 w +10 M +[]0 d +0 0 0 0 k + +177.696 715.715 m +177.797 713.821 176.973 713.84 v +176.149 713.859 159.695 761.934 139.167 759.691 C +156.95 767.044 177.696 715.715 V +b +181.226 718.738 m +180.677 716.922 179.908 717.221 v +179.14 717.519 180.023 768.325 159.957 773.199 C +179.18 774.063 181.226 718.738 V +b +208.716 676.41 m +210.352 675.45 209.882 674.773 v +209.411 674.096 160.237 686.898 150.782 668.541 C +154.461 687.428 208.716 676.41 V +b +205.907 666.199 m +207.763 665.803 207.529 665.012 v +207.296 664.221 156.593 660.879 153.403 640.478 C +150.945 659.563 205.907 666.199 V +b +201.696 671.724 m +203.474 671.061 203.128 670.313 v +202.782 669.565 152.134 673.654 146.002 653.936 C +146.354 673.175 201.696 671.724 V +b +190.991 689.928 m +192.299 688.554 191.66 688.033 v +191.021 687.512 147.278 713.366 133.131 698.324 C +141.872 715.467 190.991 689.928 V +b +183.446 685.737 m +184.902 684.52 184.326 683.929 v +183.75 683.339 137.362 704.078 125.008 687.531 C +131.753 705.553 183.446 685.737 V +b +180.846 681.665 m +182.454 680.657 181.964 679.994 v +181.474 679.331 132.692 693.554 122.709 675.478 C +126.934 694.251 180.846 681.665 V +b +191.58 681.051 m +192.702 679.52 192.001 679.085 v +191.3 678.65 151.231 709.898 135.273 696.793 C +146.138 712.674 191.58 681.051 V +b +171.8 710 m +172.4 708.2 171.6 708 v +170.8 707.8 142.2 749.8 122.999 742.2 C +138.2 754 171.8 710 V +b +172.495 703.021 m +173.47 701.392 172.731 701.025 v +171.993 700.657 135.008 735.501 117.899 723.939 C +130.196 738.739 172.495 703.021 V +b +172.38 698.651 m +173.502 697.12 172.801 696.685 v +172.1 696.251 132.031 727.498 116.073 714.393 C +126.938 730.274 172.38 698.651 V +b +0 J 1 w +170.17 696.935 m +170.673 690.887 171.661 684.318 173.4 681.199 C +169.8 668.799 178.6 655.599 V +178.2 648.399 179.8 645.199 V +183.8 636.799 188.6 635.999 v +192.484 635.352 201.207 632.283 211.068 630.879 c +228.2 616.799 225 603.999 V +224.6 587.599 221 585.999 V +232.6 597.199 223 580.399 V +218.6 561.599 l +244.2 583.199 228.6 564.799 V +218.6 538.799 l +238.2 557.199 231 548.799 V +227.8 539.999 l +271 567.199 240.2 537.599 V +248.2 541.199 252.6 538.399 V +259.4 539.599 258.6 537.999 V +237.8 527.599 234.2 509.199 V +242.6 519.199 239.4 508.399 V +239.8 496.799 l +243.8 518.399 243.4 480.799 V +262.6 498.799 251 477.999 V +251 461.199 l +266.2 477.599 259.8 464.799 V +269.8 473.599 265.8 458.399 V +265 447.999 269.4 459.199 V +285.4 489.799 279.4 463.599 V +278.6 444.399 283.4 459.199 V +283.8 448.799 293 441.599 V +291.8 492.399 304.6 456.399 V +308.6 439.999 l +311.4 449.199 311 454.399 V +325.8 470.799 319 446.399 V +334.2 469.199 331 455.999 V +323.4 439.999 325 435.199 V +341.8 469.999 343 471.599 V +341 429.198 351.8 465.199 V +357.4 453.199 354.6 448.799 V +362.6 456.799 361.8 459.999 V +366.4 468.199 369.2 454.599 V +371 445.199 372.6 448.399 V +376.6 424.398 377.8 447.199 V +379.4 460.799 372.2 472.399 V +373 475.599 370.2 479.599 v +383.8 457.999 376.6 486.799 V +387.801 478.799 389.001 478.799 V +375.4 501.999 384.2 497.199 V +379 507.599 397.001 495.599 V +381 511.599 398.601 501.999 V +406.601 495.599 399.001 505.599 V +384.6 521.599 406.601 503.599 V +418.201 487.199 419.001 484.399 V +409.001 513.599 404.601 516.399 V +413.001 552.799 454.201 537.199 V +461.001 519.999 465.401 538.399 V +478.201 544.799 489.401 517.199 V +493.401 530.799 492.601 533.599 V +499.401 532.399 498.601 533.599 V +511.801 529.199 513.001 529.999 V +519.801 523.199 520.201 526.799 V +529.401 523.999 527.401 527.599 V +536.201 511.999 536.601 508.399 V +539.001 522.399 l +541.001 519.599 l +542.601 527.199 541.801 528.399 v +541.001 529.599 561.801 521.599 566.601 500.799 C +568.601 492.399 l +574.601 507.199 573.001 511.199 V +578.201 510.399 578.601 505.999 V +582.601 529.199 577.801 535.199 V +582.201 535.999 583.401 532.399 V +583.401 539.599 l +590.601 538.799 590.601 541.199 V +595.001 545.199 597.001 540.399 V +584.601 575.599 603.001 556.399 V +610.201 545.599 606.601 564.399 v +603.001 583.199 599.001 584.799 603.801 585.199 C +604.601 588.799 602.601 590.399 v +600.601 591.999 603.801 590.399 y +608.601 586.399 603.401 608.399 V +609.801 606.799 597.801 635.999 V +600.601 638.399 596.601 646.799 V +604.601 642.399 607.401 643.999 V +607.001 645.599 603.801 649.599 V +582.201 704.4 602.601 682.399 V +614.451 668.849 608.051 691.649 V +598.94 715.659 599.717 719.955 V +170.17 696.935 l +b +0.2 0.55 0.85 0 k +599.717 719.755 m +600.345 719.574 602.551 718.45 603.801 716.8 C +610.601 706 605.401 724.4 V +596.201 753.2 605.001 742 V +611.001 734.8 607.801 748.4 v +603.936 764.827 601.401 771.2 y +613.001 766.4 586.201 806 V +595.001 802.4 l +575.401 842 553.801 847.2 V +545.801 853.2 l +584.201 891.2 571.401 928 V +564.601 933.2 555.001 924 V +548.601 919.2 542.601 920.8 V +511.801 919.6 509.801 919.6 v +507.801 919.6 473.001 956.8 407.401 939.2 C +402.201 937.2 397.801 938.4 V +379.4 954.4 330.6 931.6 v +320.6 929.6 319 929.6 v +317.4 929.6 314.6 929.6 306.6 923.2 c +298.6 916.8 298.2 916 296.2 914.4 C +279.8 903.2 275 902.4 V +263.4 896 259 886 V +255.4 884.8 l +253.8 877.6 253.4 876.4 V +248.6 872.8 247.8 867.2 V +239 861.2 239.4 856.8 V +237.8 851.6 237 846.8 V +229.8 842 230.6 839.2 V +223 825.2 224.2 818.4 V +217.8 818.8 215 816.4 V +214.2 811.6 212.6 811.2 V +209.8 810 212.2 806 V +210.6 803.2 210.2 801.6 V +211 798.8 206.6 793.2 V +200.2 774.4 202.2 769.2 V +202.6 764.4 199.8 762.8 V +196.2 763.2 204.6 751.2 V +205.4 750 202.2 747.6 V +185 744 182.6 727.6 V +169 712.8 169 707.6 v +169 705.295 169.271 702.148 169.97 697.535 C +169.4 689.199 197 688.399 v +224.6 687.599 599.717 719.755 Y +b +184.4 697.4 m +159.4 736.8 173.8 680.399 Y +182.6 645.999 312.2 683.599 y +481.001 714 492.201 718 v +503.401 722 598.601 715.6 y +593.001 732.4 L +528.201 778.8 509.001 755.6 495.401 759.6 c +481.801 763.6 484.201 754 481.001 753.2 c +477.801 752.4 438.601 777.2 432.201 776.4 c +425.801 775.6 400.459 799.351 415.401 767.6 c +431.401 733.6 357 728.4 340.2 739.6 c +323.4 750.8 347.4 721.2 Y +365.8 701.2 331.4 718 y +297 730.8 273 705.2 269.8 704.4 c +266.6 703.6 261.8 700.4 261 706.8 c +260.2 713.2 252.69 729.901 221 703.6 c +201 686.999 187.2 709 Y +184.4 697.4 L +f +0.09 0.5 0.772 0 k +433.51 774.654 m +427.11 773.854 401.743 797.593 416.71 765.854 c +433.31 730.654 358.31 726.654 341.51 737.854 c +324.709 749.054 348.71 719.454 Y +367.11 699.454 332.709 716.254 y +298.309 729.054 274.309 703.454 271.109 702.654 c +267.909 701.854 263.109 698.654 262.309 705.054 c +261.509 711.454 254.13 727.988 222.309 701.854 c +201.073 684.508 187.582 705.963 Y +184.382 695.854 L +159.382 735.654 174.454 677.345 Y +183.255 642.944 313.509 681.854 y +482.31 712.254 493.51 716.254 v +504.71 720.254 599.038 713.927 y +593.51 731.236 L +528.71 777.636 510.31 753.854 496.71 757.854 c +483.11 761.854 485.51 752.254 482.31 751.454 c +479.11 750.654 439.91 775.454 433.51 774.654 c +f +0.081 0.45 0.695 0 k +434.819 772.909 m +428.419 772.109 403.685 796.138 418.019 764.109 c +434.219 727.908 359.619 724.908 342.819 736.108 c +326.019 747.308 350.019 717.708 Y +368.419 697.708 334.019 714.508 y +299.619 727.308 275.618 701.708 272.418 700.908 c +269.218 700.108 264.418 696.908 263.618 703.308 c +262.818 709.708 255.57 726.075 223.618 700.108 c +201.145 682.017 187.964 702.926 Y +184.364 694.308 L +160.564 733.308 175.109 674.29 Y +183.909 639.89 314.819 680.108 y +483.619 710.508 494.819 714.508 v +506.019 718.508 599.474 712.254 y +594.02 730.072 L +529.219 776.472 511.619 752.109 498.019 756.109 c +484.419 760.109 486.819 750.509 483.619 749.708 c +480.419 748.908 441.219 773.709 434.819 772.909 c +f +0.072 0.4 0.618 0 k +436.128 771.163 m +429.728 770.363 404.999 794.395 419.328 762.363 c +436.128 724.807 360.394 723.518 344.128 734.363 c +327.328 745.563 351.328 715.963 Y +369.728 695.963 335.328 712.763 y +300.928 725.563 276.928 699.963 273.728 699.163 c +270.528 698.363 265.728 695.163 264.928 701.563 c +264.128 707.963 257.011 724.161 224.927 698.363 c +201.218 679.526 188.345 699.89 Y +184.345 692.763 L +162.545 729.563 175.764 671.235 Y +184.564 636.835 316.128 678.363 y +484.928 708.763 496.129 712.763 v +507.329 716.763 599.911 710.581 y +594.529 728.908 L +529.729 775.309 512.929 750.363 499.329 754.363 c +485.728 758.363 488.128 748.763 484.928 747.963 c +481.728 747.163 442.528 771.963 436.128 771.163 c +f +0.063 0.35 0.54 0 k +437.438 769.417 m +431.037 768.617 406.814 792.871 420.637 760.617 c +437.438 721.417 362.237 721.417 345.437 732.617 c +328.637 743.817 352.637 714.217 Y +371.037 694.217 336.637 711.017 y +302.237 723.817 278.237 698.217 275.037 697.417 c +271.837 696.617 267.037 693.417 266.237 699.817 c +265.437 706.217 258.452 722.248 226.237 696.617 c +201.291 677.035 188.727 696.854 Y +184.327 691.217 L +164.527 726.018 176.418 668.181 Y +185.218 633.78 317.437 676.617 y +486.238 707.017 497.438 711.017 v +508.638 715.017 600.347 708.908 y +595.038 727.745 L +530.238 774.145 514.238 748.617 500.638 752.617 c +487.038 756.617 489.438 747.017 486.238 746.217 c +483.038 745.417 443.838 770.217 437.438 769.417 c +f +0.054 0.3 0.463 0 k +438.747 767.672 m +432.347 766.872 406.383 790.323 421.947 758.872 c +441.147 720.072 363.546 719.672 346.746 730.872 c +329.946 742.072 353.946 712.472 Y +372.346 692.472 337.946 709.272 y +303.546 722.072 279.546 696.472 276.346 695.672 c +273.146 694.872 268.346 691.672 267.546 698.072 c +266.746 704.472 259.892 720.335 227.546 694.872 c +201.364 674.544 189.109 693.817 Y +184.309 689.672 L +166.309 722.872 177.073 665.126 Y +185.873 630.726 318.746 674.872 y +487.547 705.272 498.747 709.272 v +509.947 713.272 600.783 707.236 y +595.547 726.581 L +530.747 772.981 515.547 746.872 501.947 750.872 c +488.347 754.872 490.747 745.272 487.547 744.472 c +484.347 743.672 445.147 768.472 438.747 767.672 c +f +0.045 0.25 0.386 0 k +440.056 765.927 m +433.655 765.127 407.313 788.387 423.255 757.127 c +443.656 717.126 364.855 717.926 348.055 729.126 c +331.255 740.326 355.255 710.726 Y +373.655 690.726 339.255 707.526 y +304.855 720.326 280.855 694.726 277.655 693.926 c +274.455 693.126 269.655 689.926 268.855 696.326 c +268.055 702.726 261.332 718.422 228.855 693.126 c +201.436 672.053 189.491 690.781 Y +184.291 688.126 L +168.291 718.326 177.727 662.071 Y +186.527 627.671 320.055 673.126 y +488.856 703.526 500.056 707.526 v +511.256 711.526 601.22 705.563 y +596.056 725.417 L +531.256 771.817 516.856 745.126 503.256 749.126 c +489.656 753.127 492.056 743.526 488.856 742.726 c +485.656 741.926 446.456 766.727 440.056 765.927 c +f +0.036 0.2 0.309 0 k +441.365 764.181 m +434.965 763.381 407.523 786.056 424.565 755.381 c +446.565 715.781 366.164 716.181 349.364 727.381 c +332.564 738.581 356.564 708.981 Y +374.964 688.981 340.564 705.781 y +306.164 718.581 282.164 692.981 278.964 692.181 c +275.764 691.381 270.964 688.181 270.164 694.581 c +269.364 700.981 262.773 716.508 230.164 691.381 c +201.509 669.562 189.873 687.744 Y +184.273 686.581 L +169.872 714.981 178.382 659.017 Y +187.182 624.616 321.364 671.381 y +490.165 701.781 501.365 705.781 v +512.565 709.781 601.656 703.89 y +596.565 724.254 L +531.765 770.654 518.165 743.381 504.565 747.381 c +490.965 751.381 493.365 741.781 490.165 740.981 c +486.965 740.181 447.765 764.981 441.365 764.181 c +f +0.027 0.15 0.231 0 k +442.674 762.435 m +436.274 761.635 408.832 784.311 425.874 753.635 c +447.874 714.035 367.474 714.435 350.674 725.635 c +333.874 736.835 357.874 707.235 Y +376.274 687.235 341.874 704.035 y +307.473 716.835 283.473 691.235 280.273 690.435 c +277.073 689.635 272.273 686.435 271.473 692.835 c +270.673 699.235 264.214 714.595 231.473 689.635 c +201.582 667.071 190.255 684.707 Y +184.255 685.035 L +170.654 711.436 179.037 655.962 Y +187.837 621.562 322.673 669.635 y +491.474 700.035 502.674 704.035 v +513.874 708.035 602.093 702.217 y +597.075 723.09 L +532.274 769.49 519.474 741.635 505.874 745.635 c +492.274 749.635 494.674 740.035 491.474 739.235 c +488.274 738.435 449.074 763.235 442.674 762.435 c +f +0.018 0.1 0.154 0 k +443.983 760.69 m +437.583 759.89 410.529 782.777 427.183 751.89 c +449.183 711.09 368.783 712.69 351.983 723.89 c +335.183 735.09 359.183 705.49 Y +377.583 685.49 343.183 702.29 y +308.783 715.09 284.783 689.49 281.583 688.69 c +278.382 687.89 273.582 684.69 272.782 691.09 c +271.982 697.49 265.654 712.682 232.782 687.89 c +201.655 664.58 190.637 681.671 Y +184.236 683.49 L +171.236 707.49 179.691 652.907 Y +188.491 618.507 323.983 667.89 y +492.783 698.29 503.983 702.29 v +515.183 706.29 602.529 700.544 y +597.583 721.926 L +532.783 768.327 520.783 739.89 507.183 743.89 c +493.583 747.89 495.983 738.29 492.783 737.49 c +489.583 736.69 450.383 761.49 443.983 760.69 c +f +0.009 0.05 0.077 0 k +445.292 758.945 m +438.892 758.145 412.917 781.589 428.492 750.145 c +449.692 707.344 370.092 710.944 353.292 722.144 c +336.492 733.344 360.492 703.744 Y +378.892 683.744 344.492 700.544 y +310.092 713.344 286.092 687.744 282.892 686.944 c +279.692 686.144 274.892 682.944 274.092 689.344 c +273.292 695.744 267.095 710.768 234.092 686.144 c +201.727 662.089 191.018 678.635 Y +184.218 681.944 L +171.418 705.144 180.346 649.853 Y +189.146 615.453 325.292 666.144 y +494.093 696.544 505.293 700.544 v +516.493 704.544 602.965 698.872 y +598.093 720.763 L +533.292 767.163 522.093 738.144 508.493 742.144 c +494.893 746.145 497.293 736.544 494.093 735.744 c +490.892 734.944 451.692 759.745 445.292 758.945 c +f +1 g +184.2 680.399 m +171.4 702.4 181 646.799 Y +189.8 612.399 326.6 664.399 y +495.401 694.8 506.601 698.8 v +517.801 702.8 603.401 697.2 y +598.601 719.6 L +533.801 766 523.401 736.4 509.801 740.4 c +496.201 744.4 498.601 734.8 495.401 734 c +492.201 733.2 453.001 758 446.601 757.2 c +440.201 756.4 414.981 780.207 429.801 748.4 c +452.028 700.693 369.041 710.773 354.6 720.4 c +337.8 731.6 361.8 702 Y +380.2 681.999 345.8 698.8 y +311.4 711.6 287.4 685.999 284.2 685.199 c +281 684.399 276.2 681.199 275.4 687.599 c +274.6 694 268.535 708.856 235.4 684.399 c +201.8 659.599 191.4 675.599 Y +184.2 680.399 L +f +0 g +225.8 650.399 m +218.6 638.799 239.4 625.599 V +240.8 624.199 222.8 628.399 V +216.6 630.399 215 640.799 V +210.2 645.199 205.4 650.799 v +200.6 656.399 225.8 650.399 y +f +0.8 g +365.8 698 m +383.498 671.179 382.9 666.399 v +381.6 655.999 381.4 646.399 384.6 642.399 c +387.801 638.399 396.601 605.199 y +396.201 603.999 408.601 641.999 V +420.201 657.999 400.201 676.399 V +365 705.2 365.8 698 v +f +0 g +1 J 0.1 w +245.8 623.599 m +257 616.399 242.6 585.199 V +249 587.599 l +248.2 576.399 245 573.999 V +252.2 577.199 l +257 569.199 253 564.399 V +269.8 556.399 269 549.999 V +275.4 557.999 271.4 564.399 v +267.4 570.799 260.2 566.799 261 585.199 C +252.2 581.999 l +257.8 590.799 257.8 597.199 V +249.8 594.799 l +265.269 621.377 254.6 622.799 v +248.6 623.599 245.8 623.599 Y +f +0.8 g +278.2 606.799 m +281 611.199 278.2 610.399 v +275.4 609.599 244.2 594.799 238.2 585.199 C +272.6 609.599 278.2 606.799 V +f +288.6 598.799 m +291.4 603.199 288.6 602.399 v +285.8 601.599 254.6 586.799 248.6 577.199 C +283 601.599 288.6 598.799 V +f +301.8 613.999 m +304.6 618.399 301.8 617.599 v +299 616.799 267.8 601.999 261.8 592.399 C +296.2 616.799 301.8 613.999 V +f +278.6 570.399 m +278.6 576.399 275.8 575.599 v +273 574.799 237 557.199 231 547.599 C +273 573.199 278.6 570.399 V +f +279.8 581.199 m +281 585.999 278.2 585.199 V +276.2 585.199 249.8 573.599 243.8 563.999 C +273.4 585.599 279.8 581.199 V +f +265.4 533.599 m +255.4 525.999 l +265.8 533.599 269.4 532.399 V +262.6 521.199 261.8 515.999 V +272.2 528.799 277.8 528.399 V +285.4 527.999 285.4 517.199 V +291 527.599 294.2 527.199 V +295.4 520.799 294.2 513.999 V +298.2 521.599 302.2 519.999 V +308.6 521.999 307.8 510.399 V +307.8 499.999 307 497.199 V +312.6 523.599 315 523.999 V +323 525.199 327.8 516.399 V +323.8 523.999 328.6 521.999 V +339.4 520.399 342.6 513.599 V +335.8 525.599 341.4 522.399 V +348.2 522.399 349.4 515.999 V +357.8 494.799 359.8 493.199 V +352.2 514.799 353.8 514.799 V +351.8 526.799 357 511.999 V +353.8 525.999 359.4 525.199 v +365 524.399 369.4 514.399 377.8 516.799 C +387.401 511.199 389.401 580.399 V +265.4 533.599 L +f +0 g +0 J 1 w +270.2 626.399 m +285 632.399 325 626.399 V +332.2 625.999 339 634.799 v +345.8 643.599 372.6 650.799 379 648.799 C +388.601 642.399 l +389.401 641.199 l +401.801 630.799 402.201 623.199 v +402.601 615.599 387.801 567.599 378.2 551.599 c +368.6 535.599 359 523.199 339.8 525.599 C +319 529.599 293.4 525.599 v +264.2 527.199 261.4 535.199 v +258.6 543.199 272.6 558.399 y +277 566.799 275.8 581.199 v +274.6 595.599 275 623.599 270.2 626.399 c +f +0.1 0.6 0.45 0 k +292.2 624.399 m +300.6 605.999 271 540.799 y +269 539.199 283.66 533.154 293.8 535.599 c +304.746 538.237 345 533.999 Y +368.6 549.599 381.4 593.999 y +391.801 617.999 374.2 621.199 v +356.6 624.399 292.2 624.399 y +f +0.1 0.6 0.45 0.2 k +290.169 593.503 m +293.495 606.293 295.079 618.094 292.2 624.399 c +354.6 617.999 365.8 638.799 v +370.041 646.674 384.801 615.999 384.4 606.399 c +321.4 591.999 306.6 603.199 V +290.169 593.503 L +f +0.1 0.6 0.45 0.25 k +294.6 577.199 m +296.6 569.999 294.2 565.999 V +292.6 565.199 291.4 564.799 V +292.6 561.199 298.6 559.599 V +300.6 555.199 303 554.799 v +305.4 554.399 310.2 548.799 314.2 549.999 c +318.2 551.199 329.4 555.199 y +335 558.399 343.8 554.799 V +346.175 555.601 346.6 559.599 v +347.1 564.299 350.2 567.999 352.2 569.999 c +354.2 571.999 363.8 584.799 362.6 585.199 c +361.4 585.599 294.6 577.199 Y +f +0 0.55 0.5 0 k +290.2 625.599 m +287.4 603.199 290.6 594.799 v +293.8 586.399 293 584.399 292.2 580.399 c +291.4 576.399 295.8 566.399 301.4 560.399 C +313.4 558.799 l +328.6 562.399 337.8 559.599 V +346.794 558.256 350.2 573.199 V +355 579.599 362.2 582.399 v +369.4 585.199 376.6 626.799 372.6 634.799 c +368.6 642.799 354.2 647.199 338.2 631.599 c +322.2 615.999 320.2 632.799 290.2 625.599 C +b +0 0 0.2 0 k +0.5 w +291.8 550.799 m +291 552.799 286.6 553.199 V +264.2 556.799 255.8 569.199 V +249 574.799 253.4 563.199 V +263.8 542.799 270.6 539.999 V +287 535.999 291.8 550.799 V +b +0 0.55 0.5 0.2 k +1 w +371.742 614.771 m +372.401 622.677 374.354 631.291 372.6 634.799 c +366.154 647.693 349.181 642.305 338.2 631.599 c +322.2 615.999 320.2 632.799 290.2 625.599 C +288.455 611.636 289.295 601.624 v +326.6 613.199 327.4 607.599 V +329 610.799 338.2 610.799 v +347.4 610.799 370.142 611.971 371.742 614.771 C +f +0 g +0 0.55 0.5 0.35 K +2 w +328.6 624.799 m +333.4 619.999 329.8 610.399 V +315.4 594.399 317.4 580.399 v +S +0 0 0.2 0 k +0 G +0.5 w +280.6 539.999 m +276.2 552.799 285 545.999 V +289.8 543.999 288.6 542.399 v +287.4 540.799 281.8 536.799 280.6 539.999 C +b +285.64 538.799 m +282.12 549.039 289.16 543.599 V +293.581 541.151 292.04 540.719 v +287.48 539.439 292.04 536.879 285.64 538.799 C +b +290.44 538.799 m +286.92 549.039 293.96 543.599 V +298.335 541.289 296.84 540.719 v +293.48 539.439 296.84 536.879 290.44 538.799 C +b +297.04 538.599 m +293.52 548.839 300.56 543.399 V +304.943 541.067 303.441 540.519 v +300.48 539.439 303.441 536.679 297.04 538.599 C +b +303.52 538.679 m +300 548.919 307.041 543.479 V +310.881 541.879 309.921 540.599 v +308.961 539.319 309.921 536.759 303.52 538.679 C +b +310.2 537.999 m +305.4 550.399 314.6 543.999 V +319.4 541.999 318.2 540.399 v +317 538.799 318.2 535.599 310.2 537.999 C +b +0 g +0.1 0.6 0.45 0.25 K +2 w +281.8 555.199 m +295 557.999 301 554.799 V +307 553.599 308.2 553.999 v +309.4 554.399 312.6 554.799 y +S +315.8 546.399 m +327.8 559.999 339.8 555.599 v +346.816 553.026 345.8 556.399 346.6 559.199 c +347.4 561.999 347.6 566.199 352.6 569.199 c +S +0 0 0.2 0 k +0 G +0.5 w +333 562.399 m +329 573.199 326.2 560.399 v +323.4 547.599 320.2 543.999 318.6 541.199 C +318.6 535.999 327 536.399 V +337.8 536.799 338.2 539.599 v +338.6 542.399 337 553.999 333 562.399 C +b +0 g +0.1 0.6 0.45 0.25 K +2 w +347 555.199 m +350.6 557.599 353 556.399 v +S +353.5 571.599 m +356.4 576.499 361.2 577.299 v +S +0.7 g +0 G +1 w +274.2 534.799 m +292.2 531.599 296.6 533.199 V +305.4 533.199 297 531.199 V +284.2 531.199 276.2 532.399 V +264.6 537.999 274.2 534.799 V +f +0 0 0.2 0 k +0.5 w +288.2 627.999 m +305.8 627.999 307.8 627.199 V +315 596.399 311.4 588.799 V +310.2 585.999 307.4 591.599 V +289 624.399 285.8 626.399 v +282.6 628.399 287 627.999 288.2 627.999 C +b +211.1 630.699 m +220 628.999 232.6 626.399 V +237.4 603.999 240.6 599.199 v +243.8 594.399 240.2 594.399 236.6 597.199 c +233 599.999 218.2 613.999 216.2 618.399 c +214.2 622.799 211.1 630.699 y +b +232.961 626.182 m +238.761 624.634 239.77 622.419 v +240.778 620.205 238.568 616.908 y +237.568 613.603 236.366 615.765 v +235.164 617.928 232.292 625.588 232.961 626.182 c +b +0 g +233 626.399 m +236.6 621.199 240.2 621.199 v +243.8 621.199 244.182 621.612 247 620.999 c +251.6 619.999 251.2 621.999 257.8 620.799 c +260.44 620.319 263 621.199 265.8 619.999 c +268.6 618.799 271.8 619.599 273 621.599 c +274.2 623.599 279 627.799 Y +266.2 625.999 263.4 625.199 V +241 623.999 233 626.399 V +f +0 0 0.2 0 k +277.6 626.199 m +271.15 622.699 270.75 620.299 v +270.35 617.899 276 614.199 y +278.75 609.599 279.35 611.999 v +279.95 614.399 278.4 625.799 277.6 626.199 c +b +240.115 620.735 m +247.122 609.547 247.339 620.758 V +247.896 622.016 246.136 622.038 v +240.061 622.114 241.582 626.216 240.115 620.735 C +b +247.293 620.486 m +255.214 609.299 254.578 620.579 V +254.585 620.911 252.832 621.064 v +248.085 621.478 248.43 625.996 247.293 620.486 C +b +254.506 620.478 m +262.466 609.85 261.797 619.516 V +261.916 620.749 260.262 621.05 v +256.37 621.756 256.159 625.005 254.506 620.478 C +b +261.382 620.398 m +269.282 608.837 269.63 618.618 V +271.274 619.996 269.528 620.218 v +263.71 620.958 264.508 625.412 261.382 620.398 C +b +0 0 0.2 0.1 k +225.208 616.868 m +217.55 618.399 l +214.95 623.399 212.85 629.549 y +219.2 628.549 231.7 625.749 V +232.576 622.431 234.048 616.636 v +225.208 616.868 l +f +290.276 621.53 m +288.61 624.036 287.293 625.794 286.643 626.2 c +283.63 628.083 287.773 627.706 288.902 627.706 C +305.473 627.706 307.356 626.953 V +307.88 624.711 308.564 621.32 V +298.476 623.33 290.276 621.53 V +f +0.2 0.55 0.85 0 k +1 w +343.88 759.679 m +371.601 755.719 397.121 791.359 398.881 801.04 c +400.641 810.72 390.521 822.6 Y +391.841 825.68 387.001 839.76 381.721 849 c +376.441 858.24 360.54 857.266 343 858.24 c +327.16 859.12 308.68 835.8 307.36 834.04 c +306.04 832.28 312.2 793.999 313.52 788.279 c +314.84 782.559 312.2 756.159 y +346.44 765.259 316.16 763.639 343.88 759.679 c +f +0.08 0.44 0.68 0 k +308.088 833.392 m +306.792 831.664 312.84 794.079 314.136 788.463 c +315.432 782.847 312.84 756.927 y +345.512 765.807 316.728 764.271 343.944 760.383 c +371.161 756.495 396.217 791.487 397.945 800.992 c +399.673 810.496 389.737 822.16 Y +391.033 825.184 386.281 839.008 381.097 848.08 c +375.913 857.152 360.302 856.195 343.08 857.152 c +327.528 858.016 309.384 835.12 308.088 833.392 c +f +0.06 0.33 0.51 0 k +308.816 832.744 m +307.544 831.048 313.48 794.159 314.752 788.647 c +316.024 783.135 313.48 757.695 y +344.884 766.855 317.296 764.903 344.008 761.087 c +370.721 757.271 395.313 791.615 397.009 800.944 c +398.705 810.272 388.953 821.72 Y +390.225 824.688 385.561 838.256 380.473 847.16 c +375.385 856.064 360.063 855.125 343.16 856.064 c +327.896 856.912 310.088 834.44 308.816 832.744 c +f +0.04 0.22 0.34 0 k +309.544 832.096 m +308.296 830.432 314.12 794.239 315.368 788.831 c +316.616 783.423 314.12 758.463 y +343.556 767.503 317.864 765.535 344.072 761.791 c +370.281 758.047 394.409 791.743 396.073 800.895 c +397.737 810.048 388.169 821.28 Y +389.417 824.192 384.841 837.504 379.849 846.24 c +374.857 854.976 359.824 854.055 343.24 854.976 c +328.264 855.808 310.792 833.76 309.544 832.096 c +f +0.02 0.11 0.17 0 k +310.272 831.448 m +309.048 829.816 314.76 794.319 315.984 789.015 c +317.208 783.711 314.76 759.231 y +342.628 768.151 318.432 766.167 344.136 762.495 c +369.841 758.823 393.505 791.871 395.137 800.848 c +396.769 809.824 387.385 820.84 Y +388.609 823.696 384.121 836.752 379.225 845.32 c +374.329 853.888 359.585 852.985 343.32 853.888 c +328.632 854.704 311.496 833.08 310.272 831.448 c +f +1 g +344.2 763.2 m +369.4 759.6 392.601 792 394.201 800.8 c +395.801 809.6 386.601 820.4 Y +387.801 823.2 383.4 836 378.6 844.4 c +373.8 852.8 359.346 851.914 343.4 852.8 c +329 853.6 312.2 832.4 311 830.8 c +309.8 829.2 315.4 794.4 316.6 789.2 c +317.8 784 315.4 760 y +340.9 768.6 319 766.8 344.2 763.2 c +f +0.8 g +390.601 797.2 m +362.8 789.6 351.2 791.2 V +335.4 797.8 326.6 776 V +323 768.8 321 766.8 v +319 764.8 390.601 797.2 Y +f +0 g +394.401 799.4 m +365.4 787.2 355.4 787.6 v +339 792.2 330.6 777.6 V +322.2 768.4 319 766.8 V +318.6 765.2 325 769.2 V +335.4 764 l +350.2 754.4 359.8 770.4 V +363.8 781.6 363.8 783.6 v +363.8 785.6 385 791.2 386.601 791.6 c +388.201 792 394.801 796.2 394.401 799.4 C +f +0.4 0.2 0.8 0 k +347 763.486 m +340.128 763.486 331.755 767.351 331.755 773.6 c +331.755 779.848 340.128 786.113 347 786.113 c +353.874 786.113 359.446 781.048 359.446 774.8 c +359.446 768.551 353.874 763.486 347 763.486 c +f +0.4 0.2 0.8 0.2 k +343.377 780.17 m +338.531 779.448 333.442 777.945 333.514 778.161 c +335.054 782.78 341.415 786.113 347 786.113 c +351.296 786.113 355.084 784.135 357.32 781.125 c +352.004 781.455 343.377 780.17 v +f +1 g +355.4 780.4 m +351 783.6 351 781.4 V +354.6 777 355.4 780.4 V +f +0 g +345.4 772.274 m +342.901 772.274 340.875 774.3 340.875 776.8 c +340.875 779.299 342.901 781.325 345.4 781.325 c +347.9 781.325 349.926 779.299 349.926 776.8 c +349.926 774.3 347.9 772.274 345.4 772.274 c +f +0.2 0.55 0.85 0 k +241.4 785.6 m +238.2 806.8 240.6 811.2 V +251.4 821.2 251 824.8 V +250.6 842.8 249.4 843.6 v +248.2 844.4 240.6 850.4 234.6 844 C +224.2 826 225 819.6 V +225 817.6 l +217.4 818 215.8 816 V +214.6 810.8 213.4 810.4 V +210.6 808 212.6 805.2 V +210.6 802.8 211 798.8 V +218.6 794.8 L +220.6 780.4 231.4 775.2 v +236.236 772.871 239.4 779.6 241.4 785.6 c +f +1 g +240.4 787.44 m +237.52 806.52 239.68 810.48 V +249.4 819.48 249.04 822.72 V +248.68 838.92 247.6 839.64 v +246.52 840.36 239.68 845.76 234.28 840 C +224.92 823.8 225.64 818.04 V +225.64 816.24 l +218.8 816.6 217.36 814.8 V +216.28 810.12 215.2 809.76 V +212.68 807.6 214.48 805.08 V +212.68 802.92 213.04 799.32 V +219.88 795.72 L +221.68 782.76 231.4 778.08 v +235.752 775.985 238.6 782.04 240.4 787.44 c +f +0.075 0.412 0.637 0 k +248.95 842.61 m +247.86 843.47 240.37 849.24 234.52 843 C +224.38 825.45 225.16 819.21 V +225.16 817.26 l +217.75 817.65 216.19 815.7 V +215.02 810.63 213.85 810.24 V +211.12 807.9 213.07 805.17 V +211.12 802.83 211.51 798.93 V +218.92 795.03 L +220.87 780.99 231.4 775.92 v +236.114 773.65 239.2 780.21 241.15 786.06 c +238.03 806.73 240.37 811.02 V +250.9 820.77 250.51 824.28 V +250.12 841.83 248.95 842.61 V +f +0.05 0.275 0.425 0 k +248.5 841.62 m +247.52 842.54 240.14 848.08 234.44 842 C +224.56 824.9 225.32 818.82 V +225.32 816.92 l +218.1 817.3 216.58 815.4 V +215.44 810.46 214.3 810.08 V +211.64 807.8 213.54 805.14 V +211.64 802.86 212.02 799.06 V +219.24 795.26 L +221.14 781.58 231.4 776.64 v +235.994 774.428 239 780.82 240.9 786.52 c +237.86 806.66 240.14 810.84 V +250.4 820.34 250.02 823.76 V +249.64 840.86 248.5 841.62 V +f +0.025 0.137 0.212 0 k +248.05 840.63 m +247.18 841.61 239.91 846.92 234.36 841 C +224.74 824.35 225.48 818.43 V +225.48 816.58 l +218.45 816.95 216.97 815.1 V +215.86 810.29 214.75 809.92 V +212.16 807.7 214.01 805.11 V +212.16 802.89 212.53 799.19 V +219.56 795.49 L +221.41 782.17 231.4 777.36 v +235.873 775.206 238.8 781.43 240.65 786.98 c +237.69 806.59 239.91 810.66 V +249.9 819.91 249.53 823.24 V +249.16 839.89 248.05 840.63 V +f +1 g +240.4 787.54 m +237.52 806.52 239.68 810.48 V +249.4 819.48 249.04 822.72 V +248.68 838.92 247.6 839.64 V +246.84 840.68 239.68 845.76 234.28 840 C +224.92 823.8 225.64 818.04 V +225.64 816.24 l +218.8 816.6 217.36 814.8 V +216.28 810.12 215.2 809.76 V +212.68 807.6 214.48 805.08 V +212.68 802.92 213.04 799.32 V +219.88 795.72 L +221.68 782.76 231.4 778.08 v +235.752 775.985 238.6 782.14 240.4 787.54 c +f +0.8 g +237.3 793.8 m +215.7 804 214.8 804.8 V +223.9 796.6 224.7 796.6 v +225.5 796.6 237.3 793.8 Y +f +0 g +220.2 800 m +238.6 796.4 238.6 792 v +238.6 789.088 238.357 775.669 233 777.2 c +224.6 779.6 228.2 794 220.2 800 c +f +0.4 0.2 0.8 0 k +228.6 796.2 m +237.578 794.726 238.6 792 v +239.2 790.4 239.863 782.092 234.4 781 c +229.848 780.089 227.618 790.31 228.6 796.2 c +f +0 g +314.595 753.651 m +314.098 755.393 315.409 755.262 317.2 755.8 c +319.2 756.4 331.4 760.2 332.2 762.8 c +333 765.4 346.2 761 Y +348 760.2 352.4 757.6 Y +357.2 756.4 363.8 756 Y +366.2 755 369.6 752.2 Y +384.2 742 396.601 749.2 Y +416.601 755.8 410.601 773 Y +407.601 782 410.801 785.4 Y +411.001 789.2 418.201 782.8 Y +420.801 778.6 421.601 773.6 Y +429.601 762.4 426.201 780.2 Y +426.401 781.2 423.601 784.8 423.601 786 c +423.601 787.2 421.801 790.6 Y +418.801 794 421.201 801 Y +423.001 814.8 420.801 813 Y +419.601 814.8 410.401 804.8 Y +408.201 801.4 402.201 799.8 Y +399.401 798 396.001 799.4 Y +393.401 799.8 387.801 792.8 Y +390.601 793 393.001 788.6 395.401 788.4 c +397.801 788.2 399.601 790.8 401.201 791.4 c +402.801 792 405.601 786.2 Y +406.001 783.6 400.401 778.8 Y +400.001 774.2 398.401 775.8 Y +395.401 776.4 394.201 772.6 393.201 768 c +392.201 763.4 388.001 763 y +386.401 755.6 385.2 758.6 Y +385 764.2 379 758.4 Y +377.8 756.4 373.2 758.6 Y +366.4 760.6 368.8 762.6 Y +370.6 764.8 381.8 762.6 Y +384 764.2 376 768.2 Y +375.4 770 376.4 774.4 Y +377.6 777.6 384.4 783.2 Y +393.801 784.4 391.001 786 Y +384.801 791.2 379 783.6 Y +376.8 777.4 359.4 762.4 Y +354.6 759 357.2 765.8 353.2 762.4 c +349.2 759 328.6 768 y +317.038 769.193 314.306 753.451 310.777 756.571 c +316.195 748.051 314.595 753.651 v +f +509.401 920 m +483.801 912 481.001 893.2 V +478.601 870.4 499.001 852.8 V +499.401 846.4 501.401 843.2 v +499.801 838.4 518.601 846 V +545.801 854.4 l +552.201 856.8 557.401 865.6 v +562.601 874.4 577.801 893.2 574.201 918.4 C +575.401 929.6 569.401 930 V +561.001 931.6 553.801 924 V +547.001 920.8 544.601 921.2 V +509.401 920 L +f +564.022 920.99 m +566.122 929.92 561.282 925.08 V +554.242 919.36 546.761 919.36 V +532.241 917.16 527.841 903.96 V +523.881 877.12 531.801 871.4 V +536.641 863.92 543.681 870.52 v +550.722 877.12 566.222 907.35 564.022 920.99 C +f +0.2 g +563.648 920.632 m +565.738 929.376 560.986 924.624 V +554.074 919.008 546.729 919.008 V +532.473 916.848 528.153 903.888 V +524.265 877.536 532.041 871.92 V +536.793 864.576 543.705 871.056 v +550.618 877.536 565.808 907.24 563.648 920.632 C +f +0.4 g +563.274 920.274 m +565.354 928.832 560.69 924.168 V +553.906 918.656 546.697 918.656 V +532.705 916.536 528.465 903.816 V +524.649 877.952 532.281 872.44 V +536.945 865.232 543.729 871.592 v +550.514 877.952 565.394 907.13 563.274 920.274 C +f +0.6 g +562.9 919.916 m +564.97 928.288 560.394 923.712 V +553.738 918.304 546.665 918.304 V +532.937 916.224 528.777 903.744 V +525.033 878.368 532.521 872.96 V +537.097 865.888 543.753 872.128 v +550.41 878.368 564.98 907.02 562.9 919.916 C +f +0.8 g +562.526 919.558 m +564.586 927.744 560.098 923.256 V +553.569 917.952 546.633 917.952 V +533.169 915.912 529.089 903.672 V +525.417 878.784 532.761 873.48 V +537.249 866.544 543.777 872.664 v +550.305 878.784 564.566 906.91 562.526 919.558 C +f +1 g +562.151 919.2 m +564.201 927.2 559.801 922.8 V +553.401 917.6 546.601 917.6 V +533.401 915.6 529.401 903.6 V +525.801 879.2 533.001 874 V +537.401 867.2 543.801 873.2 v +550.201 879.2 564.151 906.8 562.151 919.2 C +f +0.1 0.55 0.85 0.3 k +350.6 716 m +330.2 735.2 322.2 736 V +287.8 740 273 722 V +290.6 742.4 318.2 736.8 V +296.6 741.2 284.2 738 V +267.4 738 257.8 724 V +255 719.2 l +259 734 277.4 740 V +300.2 744.8 311 740 V +289.4 746.8 279.4 744.8 V +249 747.2 236.2 720.8 V +240.2 735.2 255 742.4 V +268.6 751.2 289 748.4 V +303.4 745.2 308.6 742.8 v +313.8 740.4 312.6 743.2 304.2 748 C +298.6 758 284.6 757.6 V +241.8 754 231.4 742 V +245 753.2 255.4 756 V +277.8 764 286.2 763.2 V +311 762.2 318.6 766.2 V +307.4 761.2 310.6 758 v +313.8 754.8 320.6 747.2 320.6 746 c +320.6 744.8 344.8 722.7 348.4 718.3 C +350.6 716 l +f +0.8 g +1 J 0.1 w +489 522 m +473.5 558.5 461 568 V +487 552 490.5 534 V +490.5 524 489 522 V +f +536 514.5 m +509.5 569.5 491 593.5 V +534.5 556 539.5 529.5 V +540 524 l +537 526.5 l +536.5 517.5 536 514.5 V +f +592.5 563 m +530 622.5 528.5 625 V +589 559 592 551.5 V +590 560.5 592.5 563 V +f +404 519.5 m +423.5 571.5 442.5 549 V +457.5 539 457 536 V +453 542.5 435 542 V +416 545 404 519.5 V +f +594.5 647 m +549.5 675.5 542 677 v +530.193 679.361 591.5 648 596.5 637.5 C +598.5 640 594.5 647 V +f +0 g +0 J 1 w +443.801 540.399 m +464.201 542.399 471.001 549.199 V +475.401 545.599 l +493.001 583.999 l +496.601 578.799 l +511.001 593.599 510.201 601.599 v +509.401 609.599 523.001 595.599 y +522.201 607.199 529.401 600.399 V +527.001 615.999 535.401 607.999 V +524.864 638.156 547.401 612.399 v +553.001 605.999 548.601 612.799 y +522.601 660.799 544.201 646.399 v +546.201 669.199 545.001 673.599 v +543.801 677.999 541.801 700.4 537.001 705.6 c +532.201 710.8 537.401 712.4 543.001 707.2 C +531.801 731.2 545.001 719.2 V +541.401 734.4 537.001 737.2 V +531.401 754.4 546.601 743.6 V +542.201 756 539.001 759.2 V +527.401 786.8 534.601 782 V +539.001 778.4 l +532.201 792.4 538.601 788 v +545.001 783.6 545.001 784 y +523.801 817.2 544.201 799.6 V +536.042 813.518 532.601 820.4 V +513.801 840.8 528.201 834.4 V +533.001 832.8 l +524.201 842.8 516.201 844.4 v +508.201 846 518.601 852.4 525.001 850.4 c +531.401 848.4 547.001 840.8 y +559.801 822 563.801 821.6 V +543.801 829.2 549.801 821.2 V +564.201 807.2 557.001 807.6 V +551.001 800.4 555.801 791.6 V +537.342 809.991 552.201 784.4 v +559.001 768 l +534.601 792.8 545.801 770.8 V +563.001 747.2 565.001 746.8 v +567.001 746.4 571.401 737.6 y +567.001 739.6 l +572.201 730.8 l +561.001 742.8 567.001 729.6 V +572.601 715.2 l +552.201 737.2 565.801 707.6 V +549.401 712.8 558.201 695.6 V +556.601 679.599 557.001 674.399 v +557.401 669.199 558.601 640.799 554.201 632.799 c +549.801 624.799 560.201 605.599 562.201 601.599 c +564.201 597.599 567.801 586.799 559.001 595.999 c +550.201 605.199 554.601 599.599 556.601 590.799 c +558.601 581.999 564.601 566.399 563.801 560.799 C +562.601 559.599 559.401 563.199 V +544.601 585.999 546.201 571.599 V +545.001 563.599 541.801 554.799 V +538.601 543.999 538.601 552.799 V +535.401 569.599 532.601 561.999 v +529.801 554.399 526.201 548.399 523.401 545.999 c +520.601 543.599 515.401 566.399 514.201 555.999 C +502.201 568.399 497.401 551.999 V +485.801 535.599 l +485.401 547.999 484.201 541.999 V +454.201 535.999 443.801 540.399 V +f +409.401 897.2 m +397.801 905.2 393.801 904.8 v +389.801 904.4 421.401 913.6 462.601 886 C +467.401 883.2 471.001 883.6 V +474.201 881.2 471.401 877.6 V +462.601 868 473.801 856.8 V +492.201 850 486.601 858.8 V +497.401 854.8 499.801 850.8 v +502.201 846.8 501.001 850.8 y +494.601 858 488.601 863.2 V +483.401 865.2 480.601 873.6 v +477.801 882 475.401 892 479.801 895.2 C +475.801 890.8 476.601 894.8 v +477.401 898.8 481.001 902.4 482.601 902.8 c +484.201 903.2 500.601 919 507.401 919.4 C +498.201 918 495.201 919 v +492.201 920 465.601 931.4 459.601 932.6 C +442.801 939.2 454.801 937.2 V +490.601 933.4 508.801 920.2 V +501.601 928.6 483.201 935.6 V +461.001 948.2 425.801 943.2 V +408.001 940 400.201 938.2 V +397.601 938.8 397.001 939.2 v +396.401 939.6 384.6 948.6 357 941.6 C +340 937 331.4 932.2 V +316.2 931 312.6 927.8 V +294 913.2 292 912.4 v +290 911.6 278.6 904 277.8 903.6 C +302.4 910.2 304.8 912.6 v +307.2 915 324.6 917.6 327 916.2 c +329.4 914.8 337.8 915.4 328.2 914.8 C +403.801 900 404.601 898 v +405.401 896 409.401 897.2 y +f +0.2 0.55 0.85 0 k +480.801 906.4 m +470.601 913.8 468.601 913.8 v +466.601 913.8 454.201 924 450.001 923.6 c +445.801 923.2 433.601 933.2 406.201 925 C +405.601 927 409.201 927.8 V +415.601 930 416.001 930.6 V +436.201 934.8 443.401 931.2 V +452.601 928.6 458.801 922.4 V +470.001 919.2 473.201 920.2 V +482.001 918 482.401 916.2 V +488.201 913.2 486.401 910.6 V +486.801 909 480.801 906.4 V +f +468.33 908.509 m +469.137 907.877 470.156 907.779 470.761 906.97 c +470.995 906.656 470.706 906.33 470.391 906.233 c +469.348 905.916 468.292 906.486 467.15 905.898 c +466.748 905.691 466.106 905.873 465.553 906.022 c +463.921 906.463 462.092 906.488 460.401 905.8 C +458.416 906.929 456.056 906.345 453.975 907.346 c +453.917 907.373 453.695 907.027 453.621 907.054 c +450.575 908.199 446.832 907.916 444.401 910.2 C +441.973 910.612 439.616 911.074 437.188 911.754 c +435.37 912.263 433.961 913.252 432.341 914.084 c +430.964 914.792 429.507 915.314 427.973 915.686 c +426.11 916.138 424.279 916.026 422.386 916.546 c +422.293 916.571 422.101 916.227 422.019 916.254 c +421.695 916.362 421.405 916.945 421.234 916.892 c +419.553 916.37 418.065 917.342 416.401 917 C +415.223 918.224 413.495 917.979 411.949 918.421 c +408.985 919.269 405.831 917.999 402.801 919 C +406.914 920.842 411.601 919.61 415.663 921.679 c +417.991 922.865 420.653 921.763 423.223 922.523 c +423.71 922.667 424.401 922.869 424.801 922.2 C +424.935 922.335 425.117 922.574 425.175 922.546 c +427.625 921.389 429.94 920.115 432.422 919.049 c +432.763 918.903 433.295 919.135 433.547 918.933 c +435.067 917.717 437.01 917.82 438.401 916.6 C +440.099 917.102 441.892 916.722 443.621 917.346 c +443.698 917.373 443.932 917.032 443.965 917.054 c +445.095 917.802 446.25 917.531 447.142 917.227 c +447.48 917.112 448.143 916.865 448.448 916.791 c +449.574 916.515 450.43 916.035 451.609 915.852 c +451.723 915.834 451.908 916.174 451.98 916.146 c +453.103 915.708 454.145 915.764 454.801 914.6 C +454.936 914.735 455.101 914.973 455.183 914.946 c +456.21 914.608 456.859 913.853 457.96 913.612 c +458.445 913.506 459.057 912.88 459.633 912.704 c +462.025 911.973 463.868 910.444 466.062 909.549 c +466.821 909.239 467.697 909.005 468.33 908.509 c +f +391.696 922.739 m +389.178 924.464 386.81 925.57 384.368 927.356 c +384.187 927.489 383.827 927.319 383.625 927.441 c +382.618 928.05 381.73 928.631 380.748 929.327 c +380.209 929.709 379.388 929.698 378.88 929.956 c +376.336 931.248 373.707 931.806 371.2 933 C +371.882 933.638 373.004 933.394 373.6 934.2 C +373.795 933.92 374.033 933.636 374.386 933.827 c +376.064 934.731 377.914 934.884 379.59 934.794 c +381.294 934.702 383.014 934.397 384.789 934.125 c +385.096 934.078 385.295 933.555 385.618 933.458 c +387.846 932.795 390.235 933.32 392.354 932.482 c +393.945 931.853 395.515 931.03 396.754 929.755 c +397.006 929.495 396.681 929.194 396.401 929 C +396.789 929.109 397.062 928.903 397.173 928.59 c +397.257 928.351 397.257 928.049 397.173 927.81 c +397.061 927.498 396.782 927.397 396.408 927.346 c +395.001 927.156 396.773 928.536 396.073 928.088 c +394.8 927.274 395.546 925.868 394.801 924.6 C +394.521 924.794 394.291 925.012 394.401 925.4 C +394.635 924.878 394.033 924.588 393.865 924.272 c +393.48 923.547 392.581 922.132 391.696 922.739 c +f +359.198 915.391 m +356.044 916.185 352.994 916.07 349.978 917.346 c +349.911 917.374 349.688 917.027 349.624 917.054 c +348.258 917.648 347.34 918.614 346.264 919.66 c +345.351 920.548 343.693 920.161 342.419 920.648 c +342.095 920.772 341.892 921.284 341.591 921.323 c +340.372 921.48 339.445 922.429 338.4 923 C +340.736 923.795 343.147 923.764 345.609 924.148 c +345.722 924.166 345.867 923.845 346 923.845 c +346.136 923.845 346.266 924.066 346.4 924.2 C +346.595 923.92 346.897 923.594 347.154 923.848 c +347.702 924.388 348.258 924.198 348.798 924.158 c +348.942 924.148 349.067 923.845 349.2 923.845 c +349.336 923.845 349.467 924.156 349.6 924.156 c +349.736 924.155 349.867 923.845 350 923.845 c +350.136 923.845 350.266 924.066 350.4 924.2 C +351.092 923.418 351.977 923.972 352.799 923.793 c +353.837 923.566 354.104 922.418 355.178 922.12 c +359.893 920.816 364.03 918.671 368.393 916.584 c +368.7 916.437 368.91 916.189 368.8 915.8 C +369.067 915.8 369.38 915.888 369.57 915.756 c +370.628 915.024 371.669 914.476 372.366 913.378 c +372.582 913.039 372.253 912.632 372.02 912.684 c +367.591 913.679 363.585 914.287 359.198 915.391 c +f +345.338 871.179 m +343.746 872.398 343.162 874.429 342.034 876.221 c +341.82 876.561 342.094 876.875 342.411 876.964 c +342.971 877.123 343.514 876.645 343.923 876.443 c +345.668 875.581 347.203 874.339 349.2 874.2 C +351.19 871.966 355.45 871.581 355.457 868.2 c +355.458 867.341 354.03 868.259 353.6 867.4 C +351.149 868.403 348.76 868.3 346.38 869.767 c +345.763 870.148 346.093 870.601 345.338 871.179 c +f +317.8 923.756 m +317.935 923.755 324.966 923.522 324.949 923.408 c +324.904 923.099 317.174 922.05 316.81 922.22 c +316.646 922.296 309.134 919.866 309 920 C +309.268 920.135 317.534 923.756 317.8 923.756 c +f +0 g +333.2 914 m +318.4 912.2 314 911 v +309.6 909.8 291 902.2 288 900.2 C +274.6 894.8 257.6 874.8 V +265.2 878.2 267.4 881 V +281 893.6 280.8 891 V +293 899.6 292.4 897.4 V +316.8 908.6 314.8 905.4 V +336.4 910 335.4 908 V +354.2 903.6 351.4 903.4 V +345.6 902.2 352 898.6 V +348.6 894.2 343.2 898.2 v +337.8 902.2 340.8 900 335.8 899 C +333.2 898.2 328.6 902.2 V +323 906.8 314.2 903.2 V +283.6 890.6 281.6 890 V +278 887.2 275.6 883.6 V +269.8 879.2 266.8 877.8 V +254 866.2 252.8 864.8 V +249.4 859.6 248.6 859.2 V +255 863 257 865 V +271 875 276.4 875.8 V +280.8 878.8 281.6 880.2 V +296 889.4 300.2 889.4 V +309.4 884.2 311.8 891.2 V +317.6 893 323.2 891.8 V +326.4 894.4 325.6 896.6 V +327.2 898.4 328.2 894.6 V +331.6 891 336.4 893 V +340.4 893.2 338.4 890.8 V +334 887 322.2 886.8 V +309.8 886.2 293.4 878.6 V +263.6 868.2 254.4 857.8 V +248 849 242.6 847.8 V +236.8 847 230.8 839.6 V +240.6 845.4 249.6 845.4 V +253.6 847.8 249.8 844.2 V +246.2 836.6 247.8 831.2 V +247.2 826 246.4 824.4 V +238.6 811.6 238.6 809.2 v +238.6 806.8 239.8 797 240.2 796.4 c +240.6 795.8 239.2 798 243 795.6 c +246.8 793.2 249.6 791.6 250.4 788.8 c +251.2 786 248.4 794.2 248.2 796 c +248 797.8 243.8 805 244.6 807.4 C +245.6 806.4 246.4 805 V +245.8 805.6 246.4 809.2 V +247.2 814.4 248.6 817.6 v +250 820.8 252 824.6 252.4 825.4 c +252.8 826.2 252.8 832 254.2 829.4 C +257.6 826.8 l +254.8 829.4 257 831.6 V +256 837.2 257.8 839.8 V +264.8 848.2 266.4 849.2 v +268 850.2 266.6 849.8 y +272.6 854 266.8 852.4 V +262.8 850.8 259.8 850.8 V +252.2 848.8 256.2 853 v +260.2 857.2 270.2 862.6 274 862.4 C +274.8 860.8 l +286 863.2 l +284.8 862.4 l +284.6 862.6 288.8 863 v +293 863.4 298.8 862 300.2 863.8 c +301.6 865.6 305 866.6 304.6 865.2 c +304.2 863.8 304 861.8 y +309 867.6 308.4 865.4 v +307.8 863.2 299.6 858 298.2 851.8 C +308.6 860 l +312.2 863 l +315.8 860.8 316 862.4 v +316.2 864 320.8 869.8 322 869.6 c +323.2 869.4 325.2 872.2 325 869.6 c +324.8 867 332.4 861.6 y +335.6 863.4 337 862 v +338.4 860.6 342.6 881.8 y +367.6 892.4 l +411.201 895.8 l +394.201 902.6 l +333.2 914 l +f +0.2 0.55 0.85 0.5 K +1 J 2 w +351.4 715 m +336.4 731.8 328 734.4 V +314.6 741.2 290 733.4 v +S +324.8 735.8 m +299.6 743.8 284.2 739.6 V +265.8 737.6 257.4 723.8 v +S +321.2 737 m +304.2 744.2 289.4 746.4 V +272.8 749 256.2 741.8 V +244 735.8 238.6 725.6 v +S +322.2 736.6 m +306.8 747.6 305.8 749 V +298.8 760 285.8 760.4 V +264.4 759.6 247.2 751.6 v +S +0 G +0 J 1 w +320.895 745.593 m +322.437 744.13 349.4 715.2 Y +384.6 678.599 356.6 712.8 Y +349 717.6 339.8 736.4 Y +338.6 739.2 353.8 729.2 Y +357.8 728.4 371.4 709.2 Y +364.6 711.6 369.4 704.4 Y +372.2 702.4 392.601 686.799 Y +396.201 682.799 400.201 681.199 Y +414.201 686.399 407.801 673.199 Y +410.201 666.399 415.801 677.999 Y +427.001 694.8 410.601 692.399 Y +380.6 689.599 373.8 705.6 Y +371.4 708 380.2 705.6 Y +388.601 703.6 373 718 Y +375.4 718 384.6 711.2 Y +395.001 702 397.001 704 Y +415.001 712.8 425.401 705.2 Y +427.401 703.6 421.801 696.8 423.401 691.599 c +425.001 686.399 429.801 673.999 Y +427.401 672.399 427.801 661.599 Y +444.601 638.399 435.001 640.399 Y +419.401 640.799 434.201 633.199 Y +437.401 631.199 446.201 623.999 Y +443.401 625.199 441.801 619.999 Y +446.601 615.999 443.801 611.199 Y +437.801 609.999 436.601 605.999 Y +443.401 597.999 433.401 597.599 Y +437.001 593.199 432.201 581.199 Y +427.401 581.199 421.001 575.599 Y +423.401 570.799 413.001 565.199 Y +404.601 563.599 407.401 556.799 Y +399.401 550.799 397.001 534.799 Y +396.201 524.399 393.801 521.199 399.001 523.199 c +404.201 525.199 403.401 537.599 Y +398.601 553.199 441.401 569.199 Y +445.401 570.799 446.201 575.999 Y +448.201 575.599 457.001 567.999 Y +464.601 556.799 465.001 565.999 Y +466.201 569.599 464.601 575.599 Y +470.601 597.199 456.601 603.599 Y +446.601 637.199 460.601 628.799 Y +463.401 623.199 474.201 617.999 y +477.801 620.399 L +476.201 625.199 484.601 631.199 Y +487.401 624.799 493.401 632.799 Y +497.001 657.199 509.401 642.799 Y +513.401 641.599 514.601 648.399 Y +518.201 658.799 514.601 672.399 Y +518.201 672.799 527.801 666.799 Y +530.601 670.399 521.401 687.199 525.401 684.799 c +529.401 682.399 533.801 680.799 Y +534.601 682.799 524.601 695.199 Y +520.201 698 515.001 718.4 Y +522.201 714.8 512.201 730 Y +512.201 733.2 518.201 744.4 Y +517.401 751.2 518.201 750.8 Y +521.001 749.6 529.001 748 522.201 754.4 c +515.401 760.8 523.001 765.6 Y +527.401 768.4 513.801 768 Y +508.601 772.4 509.001 776.4 Y +517.001 774.4 502.601 788.8 500.201 792.4 c +497.801 796 507.401 801.2 Y +520.601 804.8 509.001 808 Y +489.401 807.6 500.201 818.4 Y +506.201 818 504.601 820.4 Y +499.401 821.6 489.801 828 Y +485.801 831.6 489.401 830.8 Y +506.201 829.6 477.401 840.8 Y +485.401 840.8 467.401 851.2 Y +465.401 852.8 462.201 860.4 Y +456.201 865.6 451.401 872.4 Y +451.001 876.8 446.201 881.6 Y +434.601 895.2 429.001 894.8 Y +414.201 898.4 409.001 897.6 Y +356.2 893.2 l +329.8 880.4 337.6 859.4 Y +344 851 353.2 854.8 Y +357.8 861 369.4 858.8 Y +389.801 855.6 387.201 859.2 Y +384.801 863.8 368.6 870 368.4 870.6 c +368.2 871.2 359.4 874.6 Y +356.4 875.8 352 885 Y +348.8 888.4 364.6 882.6 Y +363.4 881.6 370.8 877.6 Y +388.201 878.6 398.801 867.8 Y +409.601 851.2 409.801 859.4 Y +412.601 868.8 400.801 890 Y +401.201 892 409.401 885.4 Y +410.801 887.4 411.601 881.6 Y +411.801 879.2 415.601 871.2 Y +418.401 858.2 422.001 865.6 Y +426.601 856.2 L +428.001 853.6 422.001 846 Y +421.801 843.2 422.601 843.4 417.001 835.8 c +411.401 828.2 414.801 823.8 Y +413.401 817.2 422.201 817.6 Y +424.801 815.4 428.201 815.4 Y +430.001 813.4 432.401 814 Y +434.001 817.8 440.201 815.8 Y +441.601 818.2 449.801 818.6 Y +450.801 821.2 451.201 822.8 454.601 823.4 c +458.001 824 433.401 867 Y +439.801 867.8 431.601 880.2 Y +429.401 886.8 440.801 872.2 443.001 870.8 c +445.201 869.4 446.201 867.2 444.601 867.4 c +443.001 867.6 441.201 865.4 442.601 865.2 c +444.001 865 457.001 850 460.401 839.8 c +463.801 829.6 469.801 825.6 476.001 819.6 c +482.201 813.6 481.401 789.4 Y +481.001 780.6 487.001 770 Y +489.001 766.2 484.801 748 Y +482.801 745.8 484.201 745 Y +485.201 743.8 492.001 730.6 Y +490.201 730.8 493.801 727.2 Y +499.001 721.2 492.601 724.2 Y +486.601 725.8 493.601 716 Y +494.801 714.2 485.801 718.8 Y +476.601 719.4 488.201 712.2 Y +496.801 705 485.401 709.4 Y +480.801 711.2 484.001 704.4 Y +487.201 702.8 504.401 695.8 Y +504.801 691.999 501.801 686.999 Y +502.201 682.999 500.001 679.599 Y +498.801 671.399 498.201 670.599 Y +494.001 670.399 486.601 656.599 Y +484.801 653.999 474.601 641.999 Y +472.601 634.999 454.601 642.199 Y +448.001 638.799 450.001 642.199 Y +449.601 644.399 454.401 650.399 Y +461.401 652.999 458.801 663.799 Y +462.801 665.199 451.601 667.999 451.801 669.199 c +452.001 670.399 457.801 671.799 Y +465.801 673.799 461.401 676.199 Y +460.801 680.199 463.801 685.799 Y +475.401 686.599 463.801 702.8 Y +453.001 710.4 452.001 716.2 Y +464.601 724.4 456.401 736.8 456.601 740.4 c +456.801 744 458.001 765.6 Y +456.001 771.8 453.001 785.4 Y +455.201 790.6 462.601 803.2 Y +465.401 807.4 474.201 812.2 472.001 815.2 c +469.801 818.2 462.001 816.4 Y +454.201 817.8 454.801 812.6 Y +453.201 811.6 452.401 806.6 Y +451.68 798.667 442.801 792.4 Y +431.601 786.2 440.801 782.2 Y +446.801 775.6 437.001 775.4 Y +426.001 777.2 434.201 767 Y +445.001 754.2 442.001 751.4 Y +431.801 750.4 444.401 741.2 y +443.601 743.2 443.801 741.4 v +444.001 739.6 447.001 735.4 447.801 733.4 c +448.601 731.4 444.601 731.2 Y +445.201 721.6 429.801 725.8 y +429.801 725.8 428.201 725.6 v +426.601 725.4 415.401 726.2 409.601 728.4 c +403.801 730.6 397.001 730.6 y +393.001 728.8 385.4 729 v +377.8 729.2 369.8 726.4 Y +365.4 726.8 374 731.2 374.2 731 c +374.4 730.8 380 736.4 372 735.8 c +350.203 734.165 339.4 744.4 Y +337.4 745.8 334.8 748.6 Y +324.8 750.6 336.2 736.2 Y +337.4 734.8 336 733.8 Y +335.2 735.4 327.4 740.8 Y +324.589 741.773 323.226 743.107 320.895 745.593 C +f +0.2 0.55 0.85 0.5 k +1 J 2 w +297 757.2 m +308.6 751.6 311.2 748.8 v +313.8 746 327.8 734.6 y +322.4 736.6 319.8 738.4 v +317.2 740.2 306.4 748.4 y +302.6 754.4 297 757.2 v +f +0.4 0.2 0.8 0 k +0 J 1 w +238.991 788.397 m +239.328 788.545 238.804 791.257 238.6 791.8 c +237.578 794.526 228.6 796 y +228.373 794.635 228.318 793.039 228.424 791.401 c +233.292 785.882 238.991 788.397 v +f +0.4 0.2 0.8 0.2 k +238.991 788.597 m +238.542 788.439 238.976 791.331 238.8 791.8 c +237.778 794.526 228.6 796.1 y +228.373 794.735 228.318 793.139 228.424 791.501 c +232.692 786.382 238.991 788.597 v +f +0 g +234.6 788.454 m +233.975 788.454 233.469 789.594 233.469 791 c +233.469 792.405 233.975 793.545 234.6 793.545 c +235.225 793.545 235.732 792.405 235.732 791 c +235.732 789.594 235.225 788.454 234.6 788.454 c +f +234.6 791 m +F +189 690.399 m +183.4 680.399 208.2 686.399 V +222.2 687.599 224.6 689.999 V +225.8 689.199 234.166 686.266 237 685.599 c +243.8 683.999 252.2 694 y +256.8 704.5 259.6 704.5 v +262.4 704.5 259.2 702.9 y +252.6 692.799 253 691.199 V +247.8 671.199 231.8 670.399 V +215.65 669.449 217 663.599 V +225.8 665.999 228.2 663.599 V +239 663.999 231 657.599 V +224.2 645.999 l +224.34 642.081 214.2 645.599 v +204.4 648.999 194.1 661.899 y +178.15 676.449 189 690.399 V +f +0.1 0.4 0.4 0 k +187.8 686.399 m +185.8 676.799 222.6 687.199 V +227 687.199 229.4 686.399 v +231.8 685.599 243.8 682.799 245.8 683.999 C +238.6 670.399 227 671.999 V +213.8 670.399 214.2 665.599 V +218.2 658.399 223 655.999 V +225.8 653.599 225.4 650.399 v +225 647.199 222.2 645.599 220.2 644.799 c +218.2 643.999 215 647.199 213.4 647.199 c +211.8 647.199 203.4 653.599 199 658.399 c +194.6 663.199 186.2 675.199 186.6 677.999 c +187 680.799 187.8 686.399 Y +f +0.1 0.4 0.4 0.2 k +191 668.949 m +193.6 664.999 196.8 660.799 199 658.399 c +203.4 653.599 211.8 647.199 213.4 647.199 c +215 647.199 218.2 643.999 220.2 644.799 c +222.2 645.599 225 647.199 225.4 650.399 c +225.8 653.599 223 655.999 Y +219.934 657.532 217.194 661.024 215.615 663.347 C +215.8 660.799 210.6 661.599 v +205.4 662.399 200.2 665.199 198.6 668.399 c +197 671.599 194.6 673.999 196.2 670.399 c +197.8 666.799 200.2 663.199 201.8 662.799 c +203.4 662.399 203 661.199 200.6 661.599 c +198.2 661.999 195.4 662.399 191 667.599 c +F +0.1 0.55 0.85 0.3 k +188.4 689.999 m +190.2 703.6 191.4 707.6 V +190.6 714.4 193 718.6 v +195.4 722.8 197.4 729 200.4 734.4 c +203.4 739.8 203.6 743.8 207.6 745.4 c +211.6 747 217.6 755.6 220.4 756.6 c +223.2 757.6 223 756.8 y +229.8 771.6 243.4 767.6 V +227.2 770.4 243 779.8 V +238.2 778.7 241.5 785.7 v +243.701 790.368 243.2 783.6 232.2 771.8 C +227.2 763.2 222 760.2 v +216.8 757.2 204.8 750.2 203.6 746.4 c +202.4 742.6 199.2 736.8 197.2 735.2 c +195.2 733.6 192.4 729.4 192 726 C +190.8 722 189.4 720.8 v +188 719.6 187.8 716.4 187.8 714.4 c +187.8 712.4 185.8 709.6 186 707.2 C +186.8 688.199 186.4 686.199 V +188.4 689.999 L +f +1 g +179.8 685.399 m +177.8 686.799 173.4 680.799 V +180.7 647.799 180.7 646.399 V +181.8 648.499 180.5 655.699 v +179.2 662.899 178.3 675.599 y +179.8 685.399 l +f +0.1 0.55 0.85 0.3 k +201.4 746 m +183.8 742.8 184.2 713.6 V +183.4 688.799 l +182.2 714.4 181 716 v +179.8 717.6 183.8 728.8 180.6 722.8 C +166.6 708.8 174.6 687.599 V +176.1 684.299 173.1 688.899 V +168.5 701.5 169.6 707.9 V +169.8 710.1 171.7 712.9 V +180.3 724.6 183 726.9 V +184.8 741.3 200.2 746.5 V +205.9 748.8 201.4 746 V +f +0 g +340.8 812.2 m +341.46 812.554 341.451 813.524 342.031 813.697 c +343.18 814.041 343.344 815.108 343.862 815.892 c +344.735 817.211 344.928 818.744 345.51 820.235 c +345.782 820.935 345.809 821.89 345.496 822.55 c +344.322 825.031 343.62 827.48 342.178 829.906 c +341.91 830.356 341.648 831.15 341.447 831.748 c +340.984 833.132 339.727 834.123 338.867 835.443 c +338.579 835.884 339.104 836.809 338.388 836.893 c +337.491 836.998 336.042 837.578 335.809 836.552 c +335.221 833.965 336.232 831.442 337.2 829 C +336.418 828.308 336.752 827.387 336.904 826.62 c +337.614 823.014 336.416 819.662 335.655 816.188 c +335.632 816.084 335.974 815.886 335.946 815.824 c +334.724 813.138 333.272 810.693 331.453 808.312 c +330.695 807.32 329.823 806.404 329.326 805.341 c +328.958 804.554 328.55 803.588 328.8 802.6 C +325.365 799.82 323.115 795.975 320.504 792.129 c +320.042 791.449 320.333 790.24 320.884 789.971 c +321.697 789.573 322.653 790.597 323.123 791.443 c +323.512 792.141 323.865 792.791 324.356 793.434 c +324.489 793.609 324.31 794.028 324.445 794.149 c +327.078 796.496 328.747 799.432 331.2 801.8 C +333.15 802.129 334.687 803.127 336.435 804.14 c +336.743 804.319 337.267 804.07 337.557 804.265 c +339.31 805.442 339.308 807.478 339.414 809.388 c +339.464 810.272 339.66 811.589 340.8 812.2 c +f +331.959 816.666 m +332.083 816.743 331.928 817.166 332.037 817.382 c +332.199 817.706 332.602 817.894 332.764 818.218 c +332.873 818.434 332.71 818.814 332.846 818.956 c +335.179 821.403 335.436 824.427 334.4 827.4 C +335.424 828.02 335.485 829.282 335.06 830.129 c +334.207 831.829 334.014 833.755 333.039 835.298 c +332.237 836.567 330.659 837.811 329.288 836.508 c +328.867 836.108 328.546 835.321 328.824 834.609 c +328.888 834.446 329.173 834.3 329.146 834.218 c +329.039 833.894 328.493 833.67 328.487 833.398 c +328.457 831.902 327.503 830.391 328.133 829.062 c +328.905 827.433 329.724 825.576 330.4 823.8 C +329.166 821.684 330.199 819.235 328.446 817.358 c +328.31 817.212 328.319 816.826 328.441 816.624 c +328.733 816.138 329.139 815.732 329.625 815.44 c +329.827 815.319 330.175 815.317 330.375 815.441 c +330.953 815.803 331.351 816.29 331.959 816.666 c +f +394.771 826.977 m +396.16 825.185 396.45 822.39 394.401 821 C +394.951 817.691 398.302 819.67 400.401 820.2 C +400.292 820.588 400.519 820.932 400.802 820.937 c +401.859 820.952 402.539 821.984 403.601 821.8 C +404.035 823.357 405.673 824.059 406.317 825.439 c +408.043 829.134 407.452 833.407 404.868 836.653 c +404.666 836.907 404.883 837.424 404.759 837.786 c +404.003 839.997 401.935 840.312 400.001 841 C +398.824 844.875 398.163 848.906 396.401 852.6 C +394.787 852.85 394.089 854.589 392.752 855.309 c +391.419 856.028 390.851 854.449 390.892 853.403 c +390.899 853.198 391.351 852.974 391.181 852.609 c +391.105 852.445 390.845 852.334 390.845 852.2 c +390.846 852.065 391.067 851.934 391.201 851.8 C +390.283 850.98 388.86 850.503 388.565 849.358 c +387.611 845.648 390.184 842.523 391.852 839.322 c +392.443 838.187 391.707 836.916 390.947 835.708 c +390.509 835.013 390.617 833.886 390.893 833.03 c +391.645 830.699 393.236 828.96 394.771 826.977 c +f +357.611 808.591 m +356.124 806.74 352.712 804.171 355.629 802.243 c +355.823 802.114 356.193 802.11 356.366 802.244 c +358.387 803.809 360.39 804.712 362.826 805.294 c +362.95 805.323 363.224 804.856 363.593 805.017 c +365.206 805.72 367.216 805.662 368.4 807 C +372.167 806.776 375.732 807.892 379.123 809.2 c +380.284 809.648 381.554 810.207 382.755 810.709 c +384.131 811.285 385.335 812.213 386.447 813.354 c +386.58 813.49 386.934 813.4 387.201 813.4 C +387.161 814.263 388.123 814.39 388.37 815.012 c +388.462 815.244 388.312 815.64 388.445 815.742 c +390.583 817.372 391.503 819.39 390.334 821.767 c +390.049 822.345 389.8 822.963 389.234 823.439 c +388.149 824.35 387.047 823.496 386 823.8 C +385.841 823.172 385.112 823.344 384.726 823.146 c +383.867 822.707 382.534 823.292 381.675 822.854 c +380.313 822.159 379.072 821.99 377.65 821.613 c +377.338 821.531 376.56 821.627 376.4 821 C +376.266 821.134 376.118 821.368 376.012 821.346 c +374.104 820.95 372.844 820.736 371.543 819.044 c +371.44 818.911 370.998 819.09 370.839 818.955 c +369.882 818.147 369.477 816.913 368.376 816.241 c +368.175 816.118 367.823 816.286 367.629 816.157 c +366.983 815.726 366.616 815.085 365.974 814.638 c +365.645 814.409 365.245 814.734 365.277 814.99 c +365.522 816.937 366.175 818.724 365.6 820.6 C +367.677 823.12 370.194 825.069 372 827.8 C +372.015 829.966 372.707 832.112 372.594 834.189 c +372.584 834.382 372.296 835.115 372.17 835.462 c +371.858 836.316 372.764 837.382 371.92 838.106 c +370.516 839.309 369.224 838.433 368.4 837 C +366.562 836.61 364.496 835.917 362.918 837.151 c +361.911 837.938 361.333 838.844 360.534 839.9 c +359.549 841.202 359.884 842.638 359.954 844.202 c +359.96 844.33 359.645 844.466 359.645 844.6 c +359.646 844.735 359.866 844.866 360 845 C +359.294 845.626 359.019 846.684 358 847 C +358.305 848.092 357.629 848.976 356.758 849.278 c +354.763 849.969 353.086 848.057 351.194 847.984 c +350.68 847.965 350.213 849.003 349.564 849.328 c +349.132 849.544 348.428 849.577 348.066 849.311 c +347.378 848.807 346.789 848.693 346.031 848.488 c +344.414 848.052 343.136 846.958 341.656 846.103 c +340.171 845.246 339.216 843.809 338.136 842.489 c +337.195 841.337 337.059 838.923 338.479 838.423 c +340.322 837.773 341.626 840.476 343.592 840.15 c +343.904 840.099 344.11 839.788 344 839.4 C +344.389 839.291 344.607 839.52 344.8 839.8 C +345.658 838.781 346.822 838.444 347.76 837.571 c +348.73 836.667 350.476 837.085 351.491 836.088 c +353.02 834.586 352.461 831.905 354.4 830.6 C +353.814 829.287 353.207 828.01 352.872 826.583 c +352.59 825.377 353.584 824.18 354.795 824.271 c +356.053 824.365 356.315 825.124 356.8 826.2 C +357.067 825.933 357.536 825.636 357.495 825.42 c +357.038 823.033 356.011 821.04 355.553 818.609 c +355.494 818.292 355.189 818.09 354.8 818.2 C +354.332 814.051 350.28 811.657 347.735 808.492 c +347.332 807.99 347.328 806.741 347.737 806.338 c +349.14 804.951 351.1 806.497 352.8 807 C +353.013 808.206 353.872 809.148 355.204 809.092 c +355.46 809.082 355.695 809.624 356.019 809.754 c +356.367 809.892 356.869 809.668 357.155 809.866 c +358.884 811.061 360.292 812.167 362.03 813.356 c +362.222 813.487 362.566 813.328 362.782 813.436 c +363.107 813.598 363.294 813.985 363.617 814.17 c +363.965 814.37 364.207 814.08 364.4 813.8 C +363.754 813.451 363.75 812.494 363.168 812.292 c +362.393 812.024 361.832 811.511 361.158 811.064 c +360.866 810.871 360.207 811.119 360.103 810.94 c +359.505 809.912 358.321 809.474 357.611 808.591 c +f +302.2 858 m +292.962 860.872 281.8 835.2 V +279.4 830 277 828 v +274.6 826 263.4 822.4 261.4 818.4 C +251 802.4 L +265.8 818.4 269 820.8 V +277 829.2 273.8 822.4 V +259.8 811.6 261 802.4 V +255.4 788 254.6 786 V +270.6 818 273 819.2 v +275.4 820.4 276.6 820.4 275.4 816.8 c +274.2 813.2 273.8 796.8 271 794.8 C +279 815.2 278.2 818.4 V +281.4 822 283.8 816.8 V +282.6 800.8 l +287 788.8 l +284.6 800 286.2 815.6 V +284.2 826 288.2 820.4 v +292.2 814.8 301.8 808.8 301.8 804 C +296.6 821.6 287.4 826.4 V +283.4 820.4 l +282.2 822.4 l +278.6 823.2 283 830 v +287.4 836.8 287 837.6 y +293.4 830.4 295 830.4 V +308.2 838 309.4 813.6 V +316.2 828 307 834.8 V +292.2 836.8 293.4 842 V +300.6 854.4 L +304.2 859.6 302.6 856.8 y +F +282.2 841.6 m +269.4 841.6 266.2 836.4 V +259 826.8 l +276.2 836.8 280.2 838 v +284.2 839.2 282.2 841.6 Y +f +242.2 835.2 m +240.2 834 239.8 831.2 v +239.4 828.4 237 828 237.8 825.2 c +238.6 822.4 240.6 820 240.6 824 c +240.6 828 242.2 830 243 831.2 c +243.8 832.4 245.4 836.8 242.2 835.2 c +f +233.4 774 m +225 778 221.8 781.6 v +218.6 785.2 219.052 780.034 214.2 780.4 c +208.353 780.841 209.4 796.8 y +205.4 789.2 l +204.2 774.8 212.2 777.2 v +216.107 778.372 217.4 776.8 215.8 776 c +214.2 775.2 221.4 774.8 218.6 773.2 c +215.8 771.6 230.2 776.8 227.8 766.4 C +233.4 774 L +f +220.8 759.6 m +205.4 755.2 201.8 764.8 V +197 762.4 199.2 759.4 v +201.4 756.4 202.6 756 y +208 754.8 207.4 754 v +206.8 753.2 204.4 749.8 y +214.6 755.8 220.8 759.6 v +f +1 g +449.201 681.399 m +448.774 679.265 447.103 678.464 445.201 677.799 C +443.284 678.757 440.686 681.863 438.801 679.799 C +438.327 680.279 437.548 680.339 437.204 681.001 c +436.739 681.899 437.011 682.945 436.669 683.743 c +436.124 685.015 435.415 686.381 435.601 687.799 C +437.407 688.511 438.002 690.417 437.528 692.18 c +437.459 692.437 437.03 692.634 437.23 692.983 c +437.416 693.306 437.734 693.533 438.001 693.8 C +437.866 693.665 437.721 693.432 437.61 693.452 c +437 693.558 437.124 694.195 437.254 694.582 c +437.839 696.328 439.853 696.592 441.201 695.4 C +441.457 695.965 441.966 695.771 442.401 695.8 C +442.351 696.379 442.759 696.906 442.957 697.326 c +443.475 698.424 445.104 697.318 445.901 697.93 c +446.977 698.755 448.04 699.454 449.118 698.851 c +450.927 697.838 452.636 696.626 453.835 694.885 c +454.41 694.051 454.65 692.77 454.592 691.812 c +454.554 691.165 453.173 691.517 452.83 690.588 c +452.185 688.84 454.016 688.321 454.772 686.983 c +454.97 686.634 454.706 686.33 454.391 686.232 c +453.98 686.104 453.196 686.293 453.334 685.84 c +454.306 682.647 451.55 681.969 449.201 681.399 C +f +439.6 661.799 m +439.593 663.537 437.992 665.293 439.201 666.999 C +439.336 666.865 439.467 666.644 439.601 666.644 c +439.736 666.644 439.867 666.865 440.001 666.999 C +441.496 664.783 445.148 663.855 445.006 661.009 c +444.984 660.562 443.897 659.644 444.801 658.999 C +442.988 657.651 442.933 655.281 442.001 653.399 C +440.763 653.685 439.551 654.048 438.401 654.599 C +438.753 656.085 438.636 657.769 439.456 659.089 c +439.89 659.787 439.603 660.866 439.6 661.799 c +f +0.8 g +273.4 670.799 m +256.542 660.663 270.6 675.999 v +279.4 685.599 289.4 691.199 y +299.8 695.6 303.4 696.8 v +307 698 322.2 703.2 325.4 703.6 c +328.6 704 338.2 708 345 704 c +351.8 700 359.8 695.6 y +343.4 704 339.8 701.6 v +336.2 699.2 329 699.6 323 696.4 C +308.2 691.999 305 689.999 v +301.8 687.999 291.4 676.399 289.8 677.199 c +288.2 677.999 290.2 678.399 291.4 681.199 c +292.6 683.999 290.6 685.599 282.6 679.199 c +274.6 672.799 273.4 670.799 Y +f +0 g +280.805 676.766 m +282.215 689.806 290.693 688.141 V +298.919 692.311 301.641 694.279 V +309.78 695.981 311.09 696.598 v +329.569 705.298 344.288 700.779 344.835 701.899 c +345.381 703.018 365.006 695.901 368.615 691.815 c +369.006 691.372 358.384 697.412 348.686 699.303 c +340.413 700.917 318.811 699.056 307.905 693.52 c +304.932 692.011 295.987 686.227 293.456 686.338 c +290.925 686.45 280.805 676.766 Y +f +0.8 g +277 651.199 m +261.8 653.599 278.6 655.199 V +296.6 657.199 300.6 662.399 V +314.2 671.599 317 671.999 v +319.8 672.399 349.8 679.599 350.2 681.999 c +350.6 684.399 356.2 684.399 357.8 683.599 c +359.4 682.799 358.6 681.599 355.8 680.799 c +353 679.999 321.8 663.599 315.4 662.399 c +309 661.199 297.4 653.599 292.6 652.399 c +287.8 651.199 277 651.199 Y +f +0 g +296.52 658.597 m +287.938 659.426 296.539 660.245 V +305.355 663.669 307.403 666.332 V +314.367 671.043 315.8 671.247 v +317.234 671.452 331.194 675.139 331.399 676.367 c +331.604 677.596 365.67 690.177 370.09 686.987 c +373.001 684.886 363.1 686.563 353.466 682.153 c +352.111 681.533 318.258 666.946 314.981 666.332 c +311.704 665.717 305.765 661.826 303.307 661.212 c +300.85 660.597 296.52 658.597 Y +f +288.6 656.399 m +293.8 656.799 292.6 655.199 v +291.4 653.599 289 654.399 y +288.6 656.399 l +f +281.4 654.799 m +286.6 655.199 285.4 653.599 v +284.2 651.999 281.8 652.799 y +281.4 654.799 l +f +271 653.199 m +276.2 653.599 275 651.999 v +273.8 650.399 271.4 651.199 y +271 653.199 l +f +263.4 652.399 m +268.6 652.799 267.4 651.199 v +266.2 649.599 263.8 650.399 y +263.4 652.399 l +f +301.8 691.999 m +306.2 691.999 305 690.399 v +303.8 688.799 300.6 689.199 y +301.8 691.999 l +f +291.8 686.399 m +298.306 688.54 295.8 685.199 v +294.6 683.599 292.2 684.399 y +291.8 686.399 l +f +280.6 681.599 m +285.8 681.999 284.6 680.399 v +283.4 678.799 281 679.599 y +280.6 681.599 l +f +273 675.599 m +278.2 675.999 277 674.399 v +275.8 672.799 273.4 673.599 y +273 675.599 l +f +266.2 670.799 m +271.4 671.199 270.2 669.599 v +269 667.999 266.6 668.799 y +266.2 670.799 l +f +305.282 664.402 m +312.203 664.934 310.606 662.805 v +309.009 660.675 305.814 661.74 y +305.282 664.402 l +f +315.682 669.202 m +322.603 669.734 321.006 667.605 v +319.409 665.475 316.214 666.54 y +315.682 669.202 l +f +326.482 673.602 m +333.403 674.134 331.806 672.005 v +330.209 669.875 327.014 670.94 y +326.482 673.602 l +f +336.882 678.402 m +343.803 678.934 342.206 676.805 v +340.609 674.675 337.414 675.74 y +336.882 678.402 l +f +309.282 696.402 m +316.203 696.934 314.606 694.805 v +313.009 692.675 309.014 692.94 y +309.282 696.402 l +f +319.282 699.602 m +326.203 700.134 324.606 698.005 v +323.009 695.875 318.614 696.14 y +319.282 699.602 l +f +296.6 659.599 m +301.8 659.999 300.6 658.399 v +299.4 656.799 297 657.599 y +296.6 659.599 l +f +0.1 0.55 0.85 0.3 k +223.4 758.8 m +219 750 218.6 746.8 V +219.4 755.6 220.6 757.6 v +221.8 759.6 223.4 758.8 y +f +205 744.8 m +201.8 730.4 202.2 727.6 V +201 739.2 201.4 740.4 v +201.8 741.6 205 744.8 y +f +0.8 g +225.8 819.4 m +225.6 816.2 l +223.4 816 l +237.6 803.4 238.2 795.8 V +239 804 225.8 819.4 V +f +0 g +229.784 818.135 m +229.353 818.551 229.572 819.296 229.164 819.556 c +228.355 820.072 230.462 820.129 230.234 820.845 c +229.851 822.051 230.038 822.072 229.916 823.348 c +229.859 823.946 230.447 825.486 230.832 825.926 c +232.278 827.578 230.954 830.51 232.594 832.061 c +232.898 832.35 233.274 832.902 233.559 833.32 c +234.218 834.283 235.402 834.771 236.352 835.599 c +236.67 835.875 236.469 836.702 237.038 836.61 c +237.752 836.495 238.993 836.625 238.948 835.784 c +238.835 833.664 237.506 831.944 236.226 830.276 C +236.677 829.572 236.219 828.937 235.935 828.38 c +234.6 825.76 234.789 822.919 234.615 820.079 c +234.61 819.994 234.303 819.916 234.311 819.863 c +234.664 817.528 235.248 815.329 236.127 813.1 c +236.493 812.17 236.964 811.275 237.114 810.348 c +237.225 809.662 237.328 808.829 236.92 808.124 C +238.955 805.234 237.646 802.583 238.815 799.052 c +239.022 798.427 240.714 796.513 240.251 796.674 c +237.738 797.545 237.626 797.943 237.449 798.696 c +237.303 799.319 236.973 800.696 236.736 801.298 c +236.672 801.462 236.501 803.346 236.423 803.468 c +234.91 805.85 236.268 805.674 234.898 808.032 C +233.47 808.712 232.504 809.816 231.381 810.978 c +231.183 811.182 232.326 811.906 232.145 812.119 c +231.053 813.408 229.9 814.175 230.236 815.668 c +230.391 816.358 230.528 817.415 229.784 818.135 c +f +226.2 816.4 m +226.6 809.6 229 808 v +231.4 806.4 230.2 807.2 227 808.4 c +223.8 809.6 225 810.4 y +222.2 810 224.6 808 v +227 806 230.6 803.6 229 803.6 c +227.4 803.6 219.8 807.6 219.8 810.4 c +219.8 813.2 218.8 817.3 y +219.9 818.1 224.7 818 V +226.1 817.3 226.2 816.4 V +f +1 g +1 J 0.1 w +225.4 797.8 m +216.88 800.591 198.4 797.2 V +207.431 799.278 226.2 797 v +236.5 795.75 225.4 797.8 Y +b +227.498 797.871 m +219.252 801.389 200.547 799.608 V +209.725 800.897 228.226 797.005 v +238.38 794.869 227.498 797.871 Y +b +229.286 797.778 m +221.324 801.899 202.539 801.514 V +211.787 802.118 229.948 796.86 v +239.914 793.975 229.286 797.778 Y +b +230.556 797.555 m +223.732 801.862 206.858 802.96 V +215.197 802.79 231.078 796.681 v +239.794 793.328 230.556 797.555 Y +b +345.84 787.039 m +344.91 786.395 345.124 787.576 v +345.339 788.757 373.547 801.927 377.161 801.677 C +346.913 788.471 345.84 787.039 V +b +342.446 786.4 m +341.57 785.685 341.691 786.879 v +341.812 788.073 368.899 803.418 372.521 803.452 C +343.404 787.911 342.446 786.4 V +b +339.16 785.025 m +338.332 784.253 338.374 785.453 v +338.416 786.652 358.233 802.149 368.045 804.023 C +350.015 795.896 339.16 785.025 V +b +336.284 783.162 m +335.539 782.468 335.577 783.547 v +335.615 784.627 353.449 798.574 362.28 800.26 C +346.054 792.946 336.284 783.162 V +b +0.8 g +0 J 1 w +304.6 635.199 m +289.4 637.599 306.2 639.199 V +324.2 641.199 328.2 646.399 V +341.8 655.599 344.6 655.999 v +347.4 656.399 363.8 659.999 364.2 662.399 c +364.6 664.799 370.6 667.199 372.2 666.399 c +373.8 665.599 373.8 656.399 371 655.599 c +368.2 654.799 349.4 647.599 343 646.399 c +336.6 645.199 325 637.599 320.2 636.399 c +315.4 635.199 304.6 635.199 Y +f +0 g +377.6 672.599 m +374.6 670.999 373.4 668.399 V +367 657.799 352.8 654.599 V +329.8 645.599 322 643.599 V +308.6 638.599 301.2 639.399 V +294.2 639.199 300.4 637.599 V +320.6 639.599 324 641.399 V +339.6 646.599 342.6 649.199 v +345.6 651.799 363.8 656.799 366 658.799 c +368.2 660.799 378 669.199 377.6 672.599 C +f +318.882 641.089 m +324.111 641.315 322.958 639.766 v +321.805 638.216 319.357 639.09 y +318.882 641.089 l +f +311.68 639.737 m +316.908 639.963 315.756 638.414 v +314.603 636.864 312.155 637.737 y +311.68 639.737 l +f +301.251 638.489 m +306.48 638.716 305.327 637.166 v +304.174 635.617 301.726 636.49 y +301.251 638.489 l +f +293.617 637.945 m +298.846 638.171 297.693 636.622 v +296.54 635.072 294.092 635.946 y +293.617 637.945 l +f +335.415 648.487 m +342.375 648.788 340.84 646.726 v +339.306 644.664 336.047 645.826 y +335.415 648.487 l +f +345.73 652.912 m +351.689 656.213 351.155 651.151 v +350.885 648.595 346.362 650.251 y +345.73 652.912 l +f +354.862 655.726 m +362.021 659.427 360.287 653.965 v +359.509 651.515 355.493 653.065 y +354.862 655.726 l +f +364.376 660.551 m +368.735 665.452 369.801 658.79 v +370.207 656.252 365.008 657.89 y +364.376 660.551 l +f +326.834 644.003 m +332.062 644.23 330.91 642.68 v +329.757 641.131 327.308 642.004 y +326.834 644.003 l +f +1 g +1 J 0.1 w +362.434 765.397 m +361.708 764.732 361.707 765.803 v +361.707 766.873 379.191 780.137 388.034 781.521 C +371.935 774.792 362.434 765.397 V +b +0 g +0 J 1 w +365.4 701.6 m +387.401 679.199 396.601 675.599 V +405.801 664.399 401.801 638.399 V +398.601 630.799 395.401 651.599 V +398.601 676.799 387.401 660.799 V +379 670.699 385.4 670.399 V +388.601 668.399 389.001 669.999 v +389.401 671.599 381.4 685.199 364.2 699.6 c +347 714 365.4 701.6 Y +f +1 g +1 J 0.1 w +307 662.799 m +306.8 664.599 308.6 663.799 v +310.4 662.999 404.601 656.799 436.201 632.799 C +391.001 655.999 307 662.799 V +b +317.4 667.199 m +317.2 668.999 319 668.199 v +320.8 667.399 457.401 668.399 481.001 635.999 C +459.001 661.199 317.4 667.199 V +b +329 671.199 m +328.8 672.999 330.6 672.199 v +332.4 671.399 505.801 684.399 529.401 651.999 C +519.801 677.599 329 671.199 V +b +339 675.999 m +338.8 677.799 340.6 676.999 v +342.4 676.199 464.601 714.8 488.201 682.399 C +474.801 707 339 675.999 V +b +281 653.199 m +280.8 654.999 282.6 654.199 v +284.4 653.399 302.2 651.199 304.2 612.399 C +297 654.399 281 653.199 V +b +272.2 651.599 m +272 653.399 273.8 652.599 v +275.6 651.799 289.8 656.399 287 617.599 C +288.2 652.799 272.2 651.599 V +b +264.2 651.199 m +264 652.999 265.8 652.199 v +267.6 651.399 283 650.799 270.6 628.399 C +280.2 652.399 264.2 651.199 V +b +311.526 695.535 m +311.082 693.536 312.631 694.753 v +328.699 707.378 361.141 766.28 416.826 771.914 C +378.518 784.024 311.526 695.535 V +b +322.726 697.335 m +321.363 698.528 323.231 699.153 v +325.099 699.778 437.541 772.28 476.826 764.314 C +449.719 771.824 322.726 697.335 V +b +301.885 691.233 m +301.376 689.634 303.087 690.61 v +312.062 695.73 315.677 752.941 359.254 754.196 C +326.843 768.91 301.885 691.233 V +b +281.962 680.207 m +280.885 678.921 282.838 679.175 v +293.084 680.507 314.489 721.778 358.928 716.699 C +326.962 731.045 281.962 680.207 V +b +293.2 686.333 m +292.389 684.864 294.258 685.489 v +304.057 688.763 317.141 733.375 361.729 736.922 C +327.603 744.865 293.2 686.333 V +b +274.922 675.088 m +274.049 674.046 275.631 674.252 v +283.93 675.331 301.268 708.76 337.264 704.646 C +311.371 716.266 274.922 675.088 V +b +267.323 669.179 m +266.318 668.134 267.909 668.252 v +272.077 668.561 302.715 701.64 321.183 686.138 C +309.168 704.861 267.323 669.179 V +b +336.855 701.102 m +335.654 702.457 337.586 702.842 v +339.518 703.226 460.221 760.939 498.184 748.073 C +472.243 758.947 336.855 701.102 V +b +303.4 636.799 m +303.2 638.599 305 637.799 v +306.8 636.999 322.2 636.399 309.8 613.999 C +319.4 637.999 303.4 636.799 V +b +313.8 638.399 m +313.6 640.199 315.4 639.399 v +317.2 638.599 335 636.399 337 597.599 C +329.8 639.599 313.8 638.399 V +b +320.6 639.999 m +320.4 641.799 322.2 640.999 v +324 640.199 348.6 636.799 372.2 604.399 C +336.6 641.199 320.6 639.999 V +b +328.225 642.028 m +327.788 643.786 329.678 643.232 v +331.568 642.678 352.002 644.577 390.099 610.401 C +343.924 645.344 328.225 642.028 V +b +338.625 646.428 m +338.188 648.186 340.078 647.632 v +341.968 647.078 376.802 642.577 428.499 607.601 C +354.324 649.744 338.625 646.428 V +b +298.2 657.999 m +298 659.799 299.8 658.999 v +301.6 658.199 355 655.599 385.4 628.799 C +350.499 653.574 298.2 657.999 V +b +288.2 653.999 m +288 655.799 289.8 654.999 v +291.6 654.199 316.2 650.799 339.8 618.399 C +304.2 655.199 288.2 653.999 V +b +349.503 651.038 m +348.938 652.759 350.864 652.345 v +352.79 651.932 387.86 649.996 441.981 618.902 C +364.317 653.296 349.503 651.038 V +b +357.903 653.438 m +357.338 655.159 359.264 654.745 v +361.19 654.332 396.26 652.396 450.381 621.302 C +373.317 656.096 357.903 653.438 V +b +367.503 658.438 m +366.938 660.159 368.864 659.745 v +370.79 659.332 413.86 654.996 503.582 620.702 C +382.917 661.096 367.503 658.438 V +b +0 g +0 J 1 w +256.2 651.599 m +261.4 651.999 260.2 650.399 v +259 648.799 256.6 649.599 y +256.2 651.599 l +f +287 637.599 m +292.2 637.999 291 636.399 v +289.8 634.799 287.4 635.599 y +287 637.599 l +f +278.2 637.999 m +283.4 638.399 282.2 636.799 v +281 635.199 278.6 635.999 y +278.2 637.999 l +f +182.831 649.818 m +187.876 648.495 186.218 647.376 v +184.561 646.256 182.554 647.798 y +182.831 649.818 l +f +184.831 659.418 m +189.876 658.095 188.218 656.976 v +186.561 655.856 184.554 657.398 y +184.831 659.418 l +f +177.631 663.818 m +182.676 662.495 181.018 661.376 v +179.361 660.256 177.354 661.798 y +177.631 663.818 l +f +0.8 g +1 J 0.1 w +257.4 588.799 m +255.8 588.799 251.8 586.799 V +249.8 586.799 238.6 583.199 233 573.199 C +245.4 582.799 257.4 588.799 V +f +345.116 496.153 m +345.257 495.895 345.312 495.475 345.604 495.458 c +346.262 495.418 347.495 495.117 347.37 495.753 c +346.522 500.059 345.648 504.996 341.515 506.803 c +340.876 507.082 339.434 506.669 339.36 505.785 c +339.233 504.261 339.116 502.912 339.425 501.446 c +339.725 500.025 341.883 500.015 342.8 501.399 C +343.736 499.727 344.168 497.884 345.116 496.153 c +f +334.038 491.419 m +334.786 490.006 334.659 488.147 336.074 487.584 c +336.814 487.29 338.664 488.265 338.246 489.339 c +337.444 491.4 337.056 493.639 335.667 495.45 c +335.467 495.712 335.707 496.245 335.547 496.573 c +334.953 497.793 333.808 498.528 332.4 498.199 C +331.285 495.996 332.433 493.867 333.955 492.158 c +334.091 492.006 333.925 491.63 334.038 491.419 c +f +294.436 496.609 m +294.328 496.986 294.29 497.449 294.455 497.77 c +294.986 498.803 295.779 499.925 295.442 500.947 c +295.094 502.003 293.978 501.821 293.328 501.252 c +292.193 500.258 292.144 498.432 291.453 497.073 c +291.257 496.687 291.308 496.114 290.867 495.723 c +290.393 495.302 289.953 493.778 290.049 493.207 c +290.102 492.894 289.919 482.986 290.141 483.249 c +290.76 483.982 293.81 493.716 293.879 494.608 c +293.936 495.339 294.668 495.804 294.436 496.609 c +f +268.798 503.401 m +271.432 505.9 274.222 508.861 273.78 512.573 c +273.664 513.549 271.889 513.022 271.702 512.176 c +270.9 508.551 268.861 505.89 266.293 503.498 c +264.097 501.451 262.235 495.107 262 494.599 C +265.697 499.855 267.954 502.601 268.798 503.401 c +f +255.224 509.365 m +255.747 509.735 255.445 510.226 255.662 510.558 c +256.615 512.016 257.916 513.262 257.934 515 c +257.937 515.277 257.559 515.586 257.224 515.362 c +256.947 515.178 256.605 515.048 256.497 514.918 c +254.467 512.469 253.067 509.798 251.624 506.986 c +251.441 506.629 250.297 502.138 250.61 502.027 c +250.849 501.942 252.569 506.123 252.779 506.237 c +254.042 506.923 254.054 508.538 255.224 509.365 c +f +271.957 489.821 m +272.401 490.69 273.977 491.892 273.864 492.781 c +273.746 493.709 274.214 495.152 273.302 494.464 c +272.045 493.516 268.596 492.167 268.326 486.359 c +268.3 485.788 271.274 488.481 271.957 489.821 c +f +286.4 506.999 m +286.8 507.667 287.508 507.194 287.967 507.457 c +288.615 507.829 289.226 508.387 289.518 509.036 c +290.488 511.185 292.257 513.005 292.4 515.399 C +290.909 516.804 290.23 514.764 289.6 513.799 C +288.277 515.446 287.278 513.572 285.978 513.053 c +285.908 513.025 285.695 513.372 285.62 513.345 c +284.443 512.905 283.763 511.824 282.765 511.043 c +282.594 510.909 282.189 511.089 282.042 510.953 c +281.39 510.35 280.417 510.025 280.137 509.343 c +279.027 506.636 275.887 504.541 274 496.999 C +274.381 496.09 278.512 503.641 278.999 504.339 c +279.835 505.535 279.953 502.678 281.229 503.344 c +281.28 503.371 281.466 503.133 281.6 502.999 C +281.794 503.279 282.012 503.508 282.4 503.399 C +282.4 503.799 282.266 504.355 282.467 504.514 c +283.704 505.491 283.62 506.559 284.4 507.799 C +284.858 507.01 285.919 507.729 286.4 506.999 C +f +346.2 452.599 m +353.6 472.999 349.2 484.199 V +360.6 462.599 356 451.399 V +355.6 461.799 351.6 466.799 V +347.6 453.999 346.2 452.599 V +f +331.4 455.199 m +336.8 463.999 328.8 482.399 V +328 461.999 321.2 450.999 V +335.4 471.199 331.4 455.199 V +f +321.4 457.199 m +321.2 477.199 321.6 480.199 V +317.8 463.599 307.6 453.999 V +322 465.999 321.4 457.199 V +f +311.8 489.199 m +317.8 475.599 307.8 457.199 V +314.2 469.399 309.4 476.399 V +312 479.799 311.8 489.199 V +f +292.6 457.599 m +291.6 473.199 293.4 475.399 V +293.6 481.799 293.2 482.799 V +297.2 488.999 297.4 481.599 V +298.8 473.799 301.6 469.199 V +305.2 463.799 305 457.399 V +295 487.599 292.6 457.599 V +f +289 485.199 m +282.4 474.399 280.6 455.399 V +279.2 461.599 283 475.999 V +287.2 491.399 289 485.199 V +f +267.2 465.399 m +272.2 470.799 273.6 475.799 V +277.2 491.599 270.8 482.999 V +271 474.999 262.8 467.599 V +267.6 469.999 267.2 465.399 V +f +261.4 470.399 m +264.8 487.799 265.6 488.599 V +267.4 491.999 264.6 488.799 V +255.8 469.599 251.8 462.999 V +259.8 472.199 261.4 470.399 V +f +255.6 486.999 m +267.2 509.399 245.4 483.599 V +256.4 493.399 255.6 486.999 V +f +240.2 501.599 m +245 520.399 247.6 520.199 V +255.8 529.199 249.2 518.599 V +243.2 508.999 243.8 499.199 V +243.2 508.799 240.2 501.599 V +f +570.5 513 m +558.5 523 556 526.5 V +569.5 508 569.5 501 V +572 508.5 570.5 513 V +f +576 535 m +555 550 551.5 557.5 V +578 528 578 523.5 V +578.5 532.5 576 535 V +f +593 689 m +581 697 579.5 695 V +590 688.5 592.5 680 V +591 689 593 689 V +f +601.5 608.5 m +584 620.5 l +603 603.5 603.5 599.5 V +601.5 608.5 L +f +0 g +1 w +210.75 631 m +232.75 626.25 l +S +261 469 m +260.5 472.5 251.5 462 v +S +266.5 464 m +268.5 470.5 262 466 v +S +320.5 455.5 m +322 466.5 310.5 453.5 v +S + +showpage + +%%Trailer From 51d0dc23f4f11baa6fd7c4026ec7fe93abccc275 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:11:22 +0200 Subject: [PATCH 08/61] add samples folder --- samples/README.md | 88 ++++++++++++++++++++++++++++++++++++++++++++++ samples/samples.go | 24 +++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 samples/README.md create mode 100644 samples/samples.go diff --git a/samples/README.md b/samples/README.md new file mode 100644 index 0000000..55d08f5 --- /dev/null +++ b/samples/README.md @@ -0,0 +1,88 @@ +draw2d samples +============== + +Various Samples to using draw2d + +Using the image backend +----------------------- + +The following Go code draws the android sample on a png image: + +``` +import ( + "image" + + "github.com/llgcode/draw2d" + "github.com/llgcode/draw2d/samples/android" +) + +function main(){} + // Initialize the graphic context on an RGBA image + dest := image.NewRGBA(image.Rect(0, 0, 297, 210.0)) + gc := draw2d.NewGraphicContext(dest) + // Draw Android logo + fn, err := android.Main(gc, "png") + if err != nil { + t.Errorf("Drawing %q failed: %v", fn, err) + return + } + // Save to png + err = draw2d.SaveToPngFile(fn, dest) + if err != nil { + t.Errorf("Saving %q failed: %v", fn, err) + } +} +``` + +Using the pdf backend +--------------------- + +The following Go code draws the android sample on a pdf document: + +``` +import ( + "image" + + "github.com/llgcode/draw2d/draw2dpdf" + "github.com/llgcode/draw2d/samples/android" +) + +function main(){} + // Initialize the graphic context on a pdf document + dest := draw2dpdf.NewPdf("L", "mm", "A4") + gc := draw2dpdf.NewGraphicContext(dest) + // Draw Android logo + fn, err := android.Main(gc, "png") + if err != nil { + t.Errorf("Drawing %q failed: %v", fn, err) + return + } + // Save to pdf + err = draw2dpdf.SaveToPdfFile(fn, dest) + if err != nil { + t.Errorf("Saving %q failed: %v", fn, err) + } +} +``` + +Testing +------- + +These samples are run as tests from the root package folder `draw2d` by: +``` +go test ./... +``` +Or if you want to run with test coverage: +``` +go test -cover ./... | grep -v "no test" +``` +The following files are responsible to run the image tests: +``` +draw2d/test_test.go +draw2d/samples_test.go +``` +The following files are responsible to run the pdf tests: +``` +draw2d/pdf/test_test.go +draw2dpdf/samples_test.go +``` diff --git a/samples/samples.go b/samples/samples.go new file mode 100644 index 0000000..ee08db4 --- /dev/null +++ b/samples/samples.go @@ -0,0 +1,24 @@ +// Package samples provides examples which can be used with different +// backends. They are also used for testing and coverage of the +// draw2d package. +package samples + +import "fmt" + +// Resource returns a resource filename for testing. +func Resource(folder, filename, ext string) string { + var root string + if ext == "pdf" { + root = "../" + } + return fmt.Sprintf("%sresource/%s/%s", root, folder, filename) +} + +// Output returns the output filename for testing. +func Output(name, ext string) string { + var root string + if ext == "pdf" { + root = "../" + } + return fmt.Sprintf("%soutput/%s.%s", root, name, ext) +} From 851731f1915a4e06b44590d0bc784fe2bd85a622 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:12:22 +0200 Subject: [PATCH 09/61] add android sample --- samples/android/android.go | 75 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 samples/android/android.go diff --git a/samples/android/android.go b/samples/android/android.go new file mode 100644 index 0000000..37c9c60 --- /dev/null +++ b/samples/android/android.go @@ -0,0 +1,75 @@ +// Copyright 2010 The draw2d Authors. All rights reserved. +// created: 21/11/2010 by Laurent Le Goff + +// Package android draws an android avatar. +package android + +import ( + "image/color" + "math" + + "github.com/llgcode/draw2d" + "github.com/llgcode/draw2d/samples" +) + +// Main draws a droid and returns the filename. This should only be +// used during testing. +func Main(gc draw2d.GraphicContext, ext string) (string, error) { + // Draw the droid + Draw(gc, 65, 0) + + // Return the output filename + return samples.Output("android", ext), nil +} + +// Draw the droid on a certain position. +func Draw(gc draw2d.GraphicContext, x, y float64) { + // set the fill and stroke color of the droid + gc.SetFillColor(color.RGBA{0x44, 0xff, 0x44, 0xff}) + gc.SetStrokeColor(color.RGBA{0x44, 0x44, 0x44, 0xff}) + + // set line properties + gc.SetLineCap(draw2d.RoundCap) + gc.SetLineWidth(5) + + // head + gc.MoveTo(x+30, y+70) + gc.ArcTo(x+80, y+70, 50, 50, 180*(math.Pi/180), 180*(math.Pi/180)) + gc.Close() + gc.FillStroke() + gc.MoveTo(x+60, y+25) + gc.LineTo(x+50, y+10) + gc.MoveTo(x+100, y+25) + gc.LineTo(x+110, y+10) + gc.Stroke() + + // left eye + draw2d.Circle(gc, x+60, y+45, 5) + gc.FillStroke() + + // right eye + draw2d.Circle(gc, x+100, y+45, 5) + gc.FillStroke() + + // body + draw2d.RoundRect(gc, x+30, y+75, x+30+100, y+75+90, 10, 10) + gc.FillStroke() + draw2d.Rect(gc, x+30, y+75, x+30+100, y+75+80) + gc.FillStroke() + + // left arm + draw2d.RoundRect(gc, x+5, y+80, x+5+20, y+80+70, 10, 10) + gc.FillStroke() + + // right arm + draw2d.RoundRect(gc, x+135, y+80, x+135+20, y+80+70, 10, 10) + gc.FillStroke() + + // left leg + draw2d.RoundRect(gc, x+50, y+150, x+50+20, y+150+50, 10, 10) + gc.FillStroke() + + // right leg + draw2d.RoundRect(gc, x+90, y+150, x+90+20, y+150+50, 10, 10) + gc.FillStroke() +} From 0c996233414c1867d7c96839fbde2102c1b762ed Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:12:40 +0200 Subject: [PATCH 10/61] add sample: appengine --- samples/appengine/app.yaml | 8 ++++ samples/appengine/server.go | 73 +++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 samples/appengine/app.yaml create mode 100644 samples/appengine/server.go diff --git a/samples/appengine/app.yaml b/samples/appengine/app.yaml new file mode 100644 index 0000000..361cfca --- /dev/null +++ b/samples/appengine/app.yaml @@ -0,0 +1,8 @@ +application: draw2d-test +version: 1 +runtime: go +api_version: go1 + +handlers: +- url: /.* + script: _go_app \ No newline at end of file diff --git a/samples/appengine/server.go b/samples/appengine/server.go new file mode 100644 index 0000000..bbfa584 --- /dev/null +++ b/samples/appengine/server.go @@ -0,0 +1,73 @@ +// +build appengine + +// Package gae demonstrates draw2d on a Google appengine server. +package gae + +import ( + "fmt" + "image" + "image/png" + "net/http" + + "github.com/llgcode/draw2d" + "github.com/llgcode/draw2d/draw2dpdf" + "github.com/llgcode/draw2d/samples/android" + + "appengine" +) + +type appError struct { + Error error + Message string + Code int +} + +type appHandler func(http.ResponseWriter, *http.Request) *appError + +func (fn appHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { + if e := fn(w, r); e != nil { // e is *appError, not os.Error. + c := appengine.NewContext(r) + c.Errorf("%v", e.Error) + http.Error(w, e.Message, e.Code) + } +} + +func init() { + http.Handle("/pdf", appHandler(pdf)) + http.Handle("/png", appHandler(imgPng)) +} + +func pdf(w http.ResponseWriter, r *http.Request) *appError { + w.Header().Set("Content-type", "application/pdf") + + // Initialize the graphic context on an pdf document + dest := draw2dpdf.NewPdf("L", "mm", "A4") + gc := draw2dpdf.NewGraphicContext(dest) + + // Draw sample + android.Draw(gc, 65, 0) + + err := dest.Output(w) + if err != nil { + return &appError{err, fmt.Sprintf("Can't write: %s", err), 500} + } + return nil +} + +func imgPng(w http.ResponseWriter, r *http.Request) *appError { + w.Header().Set("Content-type", "image/png") + + // Initialize the graphic context on an RGBA image + dest := image.NewRGBA(image.Rect(0, 0, 297, 210.0)) + gc := draw2d.NewGraphicContext(dest) + + // Draw sample + android.Draw(gc, 65, 0) + + err := png.Encode(w, dest) + if err != nil { + return &appError{err, fmt.Sprintf("Can't encode: %s", err), 500} + } + + return nil +} From 14bf3f50521d23f6040f5e71593137fef29a87cc Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:13:27 +0200 Subject: [PATCH 11/61] add sample: frameimage --- samples/frameimage/frameimage.go | 59 ++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 samples/frameimage/frameimage.go diff --git a/samples/frameimage/frameimage.go b/samples/frameimage/frameimage.go new file mode 100644 index 0000000..33e2050 --- /dev/null +++ b/samples/frameimage/frameimage.go @@ -0,0 +1,59 @@ +// Copyright 2010 The draw2d Authors. All rights reserved. +// created: 21/11/2010 by Laurent Le Goff, Stani Michiels + +// Package frameimage centers a png image and rotates it. +package frameimage + +import ( + "math" + + "github.com/llgcode/draw2d" + "github.com/llgcode/draw2d/samples" +) + +// Main draws the image frame and returns the filename. +// This should only be used during testing. +func Main(gc draw2d.GraphicContext, ext string) (string, error) { + // Margin between the image and the frame + const margin = 30 + // Line width od the frame + const lineWidth = 3 + + // Gopher image + gopher := samples.Resource("image", "gopher.png", ext) + + // Draw gopher + err := Draw(gc, gopher, 297, 210, margin, lineWidth) + + // Return the output filename + return samples.Output("frameimage", ext), err +} + +// Draw the image frame with certain parameters. +func Draw(gc draw2d.GraphicContext, png string, + dw, dh, margin, lineWidth float64) error { + // Draw frame + draw2d.RoundRect(gc, lineWidth, lineWidth, + dw-lineWidth, dh-lineWidth, 100, 100) + gc.SetLineWidth(lineWidth) + gc.FillStroke() + + // load the source image + source, err := draw2d.LoadFromPngFile(png) + if err != nil { + return err + } + // Size of source image + sw, sh := float64(source.Bounds().Dx()), float64(source.Bounds().Dy()) + // Draw image to fit in the frame + // TODO Seems to have a transform bug here on draw image + scale := math.Min((dw-margin*2)/sw, (dh-margin*2)/sh) + gc.Save() + gc.Translate((dw-sw*scale)/2, (dh-sh*scale)/2) + gc.Scale(scale, scale) + gc.Rotate(0.2) + + gc.DrawImage(source) + gc.Restore() + return nil +} From 401ff36d5a8227a0fed47adb4f1ca4cca31c30f9 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:13:43 +0200 Subject: [PATCH 12/61] add sample: gopher --- samples/gopher/gopher.go | 63 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 samples/gopher/gopher.go diff --git a/samples/gopher/gopher.go b/samples/gopher/gopher.go new file mode 100644 index 0000000..dbd488d --- /dev/null +++ b/samples/gopher/gopher.go @@ -0,0 +1,63 @@ +// Copyright 2010 The draw2d Authors. All rights reserved. +// created: 21/11/2010 by Laurent Le Goff + +// Package gopher draws a gopher avatar based on a svg of: +// https://github.com/golang-samples/gopher-vector/ +package gopher + +import ( + "image/color" + + "github.com/llgcode/draw2d" + "github.com/llgcode/draw2d/samples" +) + +// Main draws a left hand and ear of a gopher. Afterwards it returns +// the filename. This should only be during testing. +func Main(gc draw2d.GraphicContext, ext string) (string, error) { + gc.Save() + gc.Scale(0.5, 0.5) + // Draw a (partial) gopher + Draw(gc) + gc.Restore() + + // Return the output filename + return samples.Output("gopher", ext), nil +} + +// Draw a left hand and ear of a gopher using a gc thanks to +// https://github.com/golang-samples/gopher-vector/ +func Draw(gc draw2d.GraphicContext) { + // Initialize Stroke Attribute + gc.SetLineWidth(3) + gc.SetLineCap(draw2d.RoundCap) + gc.SetStrokeColor(color.Black) + + // Left hand + // + gc.SetFillColor(color.RGBA{0xF6, 0xD2, 0xA2, 0xff}) + gc.MoveTo(10.634, 300.493) + gc.RCubicCurveTo(0.764, 15.751, 16.499, 8.463, 23.626, 3.539) + gc.RCubicCurveTo(6.765, -4.675, 8.743, -0.789, 9.337, -10.015) + gc.RCubicCurveTo(0.389, -6.064, 1.088, -12.128, 0.744, -18.216) + gc.RCubicCurveTo(-10.23, -0.927, -21.357, 1.509, -29.744, 7.602) + gc.CubicCurveTo(10.277, 286.542, 2.177, 296.561, 10.634, 300.493) + gc.FillStroke() + + // + gc.MoveTo(10.634, 300.493) + gc.RCubicCurveTo(2.29, -0.852, 4.717, -1.457, 6.271, -3.528) + gc.Stroke() + + // Left Ear + // + gc.MoveTo(46.997, 112.853) + gc.CubicCurveTo(-13.3, 95.897, 31.536, 19.189, 79.956, 50.74) + gc.LineTo(46.997, 112.853) + gc.Close() + gc.Stroke() +} From bdf30d74eb1873ae61006d48e57ec213cb249e72 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:14:03 +0200 Subject: [PATCH 13/61] add sample: helloworld --- samples/helloworld/helloworld.go | 51 ++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 samples/helloworld/helloworld.go diff --git a/samples/helloworld/helloworld.go b/samples/helloworld/helloworld.go new file mode 100644 index 0000000..8d7f330 --- /dev/null +++ b/samples/helloworld/helloworld.go @@ -0,0 +1,51 @@ +// Copyright 2010 The draw2d Authors. All rights reserved. +// created: 21/11/2010 by Laurent Le Goff, Stani Michiels + +// Package helloworld displays "Hello World" twice (one rotated) in a +// rounded rectangle. +package helloworld + +import ( + "image" + "image/color" + "math" + + "github.com/llgcode/draw2d" + "github.com/llgcode/draw2d/samples" +) + +// Main draws "Hello World" and returns the filename. This should only be +// used during testing. +func Main(gc draw2d.GraphicContext, ext string) (string, error) { + // Draw hello world + Draw(gc) + + // Return the output filename + return samples.Output("helloworld", ext), nil +} + +// Draw "Hello World" +func Draw(gc draw2d.GraphicContext) { + // Draw a rounded rectangle using default colors + draw2d.RoundRect(gc, 5, 5, 292, 205, 10, 10) + gc.FillStroke() + + // Set the font luximbi.ttf + gc.SetFontData(draw2d.FontData{ + Name: "luxi", + Family: draw2d.FontFamilyMono, + Style: draw2d.FontStyleBold | draw2d.FontStyleItalic}) + // Set the fill text color to black + gc.SetFillColor(image.Black) + gc.SetDPI(72) + gc.SetFontSize(14) + // Display Hello World + gc.FillStringAt("Hello World", 8, 52) + + gc.Save() + gc.SetFillColor(color.NRGBA{0xFF, 0x33, 0x33, 0xFF}) + gc.Translate(145, 105) + gc.Rotate(math.Pi / 4) + gc.FillStringAt("Hello World", 0, 0) + gc.Restore() +} From 18946de1534ab6df32b0b6c1e569d857ac67fbcd Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:14:14 +0200 Subject: [PATCH 14/61] add sample: helloworldgl --- samples/helloworldgl/helloworldgl.go | 116 +++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 samples/helloworldgl/helloworldgl.go diff --git a/samples/helloworldgl/helloworldgl.go b/samples/helloworldgl/helloworldgl.go new file mode 100644 index 0000000..15ba1e9 --- /dev/null +++ b/samples/helloworldgl/helloworldgl.go @@ -0,0 +1,116 @@ +// Open an OpenGl window and display a rectangle using a OpenGl GraphicContext +package main + +import ( + "image/color" + "log" + "runtime" + + "github.com/go-gl/gl/v2.1/gl" + "github.com/go-gl/glfw/v3.1/glfw" + "github.com/llgcode/draw2d" + "github.com/llgcode/draw2d/draw2dgl" +) + +var ( + // global rotation + rotate int + width, height int + redraw = true + font draw2d.FontData +) + +func reshape(window *glfw.Window, w, h int) { + gl.ClearColor(1, 1, 1, 1) + /* Establish viewing area to cover entire window. */ + gl.Viewport(0, 0, int32(w), int32(h)) + /* PROJECTION Matrix mode. */ + gl.MatrixMode(gl.PROJECTION) + /* Reset project matrix. */ + gl.LoadIdentity() + /* Map abstract coords directly to window coords. */ + gl.Ortho(0, float64(w), 0, float64(h), -1, 1) + /* Invert Y axis so increasing Y goes down. */ + gl.Scalef(1, -1, 1) + /* Shift origin up to upper-left corner. */ + gl.Translatef(0, float32(-h), 0) + gl.Enable(gl.BLEND) + gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA) + gl.Disable(gl.DEPTH_TEST) + width, height = w, h + redraw = true +} + +// Ask to refresh +func invalidate() { + redraw = true +} + +func display() { + gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT) + + gl.LineWidth(1) + gc := draw2dgl.NewGraphicContext(width, height) + gc.SetFontData(draw2d.FontData{ + Name: "luxi", + Family: draw2d.FontFamilyMono, + Style: draw2d.FontStyleBold | draw2d.FontStyleItalic}) + + gc.BeginPath() + draw2d.RoundRect(gc, 200, 200, 600, 600, 100, 100) + + gc.SetFillColor(color.RGBA{0, 0, 0, 0xff}) + gc.Fill() + + gl.Flush() /* Single buffered, so needs a flush. */ +} + +func init() { + runtime.LockOSThread() +} + +func main() { + err := glfw.Init() + if err != nil { + panic(err) + } + defer glfw.Terminate() + width, height = 800, 800 + window, err := glfw.CreateWindow(width, height, "Show RoundedRect", nil, nil) + if err != nil { + panic(err) + } + + window.MakeContextCurrent() + window.SetSizeCallback(reshape) + window.SetKeyCallback(onKey) + window.SetCharCallback(onChar) + + glfw.SwapInterval(1) + + err = gl.Init() + if err != nil { + panic(err) + } + + reshape(window, width, height) + for !window.ShouldClose() { + if redraw { + display() + window.SwapBuffers() + redraw = false + } + glfw.PollEvents() + // time.Sleep(2 * time.Second) + } +} +func onChar(w *glfw.Window, char rune) { + log.Println(char) +} +func onKey(w *glfw.Window, key glfw.Key, scancode int, action glfw.Action, mods glfw.ModifierKey) { + switch { + case key == glfw.KeyEscape && action == glfw.Press, + key == glfw.KeyQ && action == glfw.Press: + w.SetShouldClose(true) + } +} From f24cc0d0ec567331b3cdc8b8b03afea63e56cbda Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:14:48 +0200 Subject: [PATCH 15/61] add sample: line --- samples/line/line.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 samples/line/line.go diff --git a/samples/line/line.go b/samples/line/line.go new file mode 100644 index 0000000..7331cd5 --- /dev/null +++ b/samples/line/line.go @@ -0,0 +1,30 @@ +// Copyright 2010 The draw2d Authors. All rights reserved. +// created: 21/11/2010 by Laurent Le Goff, Stani Michiels + +// Package line draws vertically spaced lines. +package line + +import ( + "github.com/llgcode/draw2d" + "github.com/llgcode/draw2d/samples" +) + +// Main draws vertically spaced lines and returns the filename. +// This should only be used during testing. +func Main(gc draw2d.GraphicContext, ext string) (string, error) { + // Draw the line + for x := 5.0; x < 297; x += 10 { + Draw(gc, x, 0, x, 210) + } + + // Return the output filename + return samples.Output("line", ext), nil +} + +// Draw vertically spaced lines +func Draw(gc draw2d.GraphicContext, x0, y0, x1, y1 float64) { + // Draw a line + gc.MoveTo(x0, y0) + gc.LineTo(x1, y1) + gc.Stroke() +} From aee8e4254170c7102279191642d742855f765c6a Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:15:00 +0200 Subject: [PATCH 16/61] add sample: linecapjoin --- samples/linecapjoin/linecapjoin.go | 54 ++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 samples/linecapjoin/linecapjoin.go diff --git a/samples/linecapjoin/linecapjoin.go b/samples/linecapjoin/linecapjoin.go new file mode 100644 index 0000000..6acf659 --- /dev/null +++ b/samples/linecapjoin/linecapjoin.go @@ -0,0 +1,54 @@ +// Copyright 2010 The draw2d Authors. All rights reserved. +// created: 21/11/2010 by Laurent Le Goff + +// Package linecapjoin demonstrates the different line caps and joins. +package linecapjoin + +import ( + "image/color" + + "github.com/llgcode/draw2d" + "github.com/llgcode/draw2d/samples" +) + +// Main draws the different line caps and joins. +// This should only be used during testing. +func Main(gc draw2d.GraphicContext, ext string) (string, error) { + // Draw the line + const offset = 75.0 + x := 35.0 + caps := []draw2d.Cap{draw2d.ButtCap, draw2d.SquareCap, draw2d.RoundCap} + joins := []draw2d.Join{draw2d.BevelJoin, draw2d.MiterJoin, draw2d.RoundJoin} + for i := range caps { + Draw(gc, caps[i], joins[i], x, 50, x, 160, offset) + x += offset + } + + // Return the output filename + return samples.Output("linecapjoin", ext), nil +} + +// Draw a line with an angle with specified line cap and join +func Draw(gc draw2d.GraphicContext, cap draw2d.Cap, join draw2d.Join, + x0, y0, x1, y1, offset float64) { + gc.Save() // pdf: save & restore needed to isolate caps and joins + gc.SetLineCap(cap) + gc.SetLineJoin(join) + + // Draw thick line + gc.SetStrokeColor(color.NRGBA{0x33, 0x33, 0x33, 0xFF}) + gc.SetLineWidth(30.0) + gc.MoveTo(x0, y0) + gc.LineTo((x0+x1)/2+offset, (y0+y1)/2) + gc.LineTo(x1, y1) + gc.Stroke() + + // Draw thin helping line + gc.SetStrokeColor(color.NRGBA{0xFF, 0x33, 0x33, 0xFF}) + gc.SetLineWidth(2.56) + gc.MoveTo(x0, y0) + gc.LineTo((x0+x1)/2+offset, (y0+y1)/2) + gc.LineTo(x1, y1) + gc.Stroke() + gc.Restore() +} From dc12ec8ca5f4fe455ab48c0185e736d3343e2fd8 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:15:13 +0200 Subject: [PATCH 17/61] add sample: postscript --- samples/postscript/postscript.go | 49 ++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 samples/postscript/postscript.go diff --git a/samples/postscript/postscript.go b/samples/postscript/postscript.go new file mode 100644 index 0000000..f1d88c1 --- /dev/null +++ b/samples/postscript/postscript.go @@ -0,0 +1,49 @@ +// Package postscript reads the tiger.ps file and draws it to a backend. +package postscript + +import ( + "io/ioutil" + "os" + "strings" + + "github.com/llgcode/ps" + + "github.com/llgcode/draw2d" + "github.com/llgcode/draw2d/samples" +) + +// Main draws the tiger +func Main(gc draw2d.GraphicContext, ext string) (string, error) { + gc.Save() + + // flip the image + gc.Translate(0, 200) + gc.Scale(0.35, -0.35) + gc.Translate(70, -200) + + // Tiger postscript drawing + tiger := samples.Resource("image", "tiger.ps", ext) + + // Draw tiger + Draw(gc, tiger) + gc.Restore() + + // Return the output filename + return samples.Output("postscript", ext), nil +} + +// Draw a tiger +func Draw(gc draw2d.GraphicContext, filename string) { + // Open the postscript + src, err := os.OpenFile(filename, 0, 0) + if err != nil { + panic(err) + } + defer src.Close() + bytes, err := ioutil.ReadAll(src) + reader := strings.NewReader(string(bytes)) + + // Initialize and interpret the postscript + interpreter := ps.NewInterpreter(gc) + interpreter.Execute(reader) +} From a6fc7c06e1c8526845ee30702e41d4cf2bf45fc4 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:15:23 +0200 Subject: [PATCH 18/61] add sample: postscriptgl --- samples/postscriptgl/postscriptgl.go | 114 ++ samples/postscriptgl/tiger.ps | 2733 ++++++++++++++++++++++++++ 2 files changed, 2847 insertions(+) create mode 100644 samples/postscriptgl/postscriptgl.go create mode 100644 samples/postscriptgl/tiger.ps diff --git a/samples/postscriptgl/postscriptgl.go b/samples/postscriptgl/postscriptgl.go new file mode 100644 index 0000000..9e75adb --- /dev/null +++ b/samples/postscriptgl/postscriptgl.go @@ -0,0 +1,114 @@ +// Open a OpenGL window and display a tiger interpreting a postscript file +package main + +import ( + "io/ioutil" + "log" + "math" + "os" + "runtime" + "strings" + "time" + + "github.com/go-gl/gl/v2.1/gl" + "github.com/go-gl/glfw/v3.1/glfw" + "github.com/llgcode/draw2d/draw2dgl" + "github.com/llgcode/ps" +) + +var postscriptContent string + +var ( + width, height int + rotate int + window *glfw.Window +) + +func reshape(window *glfw.Window, w, h int) { + gl.ClearColor(1, 1, 1, 1) + //fmt.Println(gl.GetString(gl.EXTENSIONS)) + gl.Viewport(0, 0, int32(w), int32(h)) /* Establish viewing area to cover entire window. */ + gl.MatrixMode(gl.PROJECTION) /* Start modifying the projection matrix. */ + gl.LoadIdentity() /* Reset project matrix. */ + gl.Ortho(0, float64(w), 0, float64(h), -1, 1) /* Map abstract coords directly to window coords. */ + gl.Scalef(1, -1, 1) /* Invert Y axis so increasing Y goes down. */ + gl.Translatef(0, float32(-h), 0) /* Shift origin up to upper-left corner. */ + gl.Enable(gl.BLEND) + gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA) + gl.Disable(gl.DEPTH_TEST) + width, height = w, h +} + +func display() { + + gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT) + + lastTime := time.Now() + gl.LineWidth(1) + gc := draw2dgl.NewGraphicContext(width, height) + + gc.Translate(380, 400) + gc.Scale(1, -1) + rotate = (rotate + 1) % 360 + gc.Rotate(float64(rotate) * math.Pi / 180) + gc.Translate(-380, -400) + + interpreter := ps.NewInterpreter(gc) + reader := strings.NewReader(postscriptContent) + + interpreter.Execute(reader) + dt := time.Now().Sub(lastTime) + log.Printf("Redraw in : %f ms\n", float64(dt)*1e-6) + gl.Flush() /* Single buffered, so needs a flush. */ +} + +func main() { + src, err := os.OpenFile("tiger.ps", 0, 0) + if err != nil { + log.Println("can't find postscript file.") + return + } + defer src.Close() + bytes, err := ioutil.ReadAll(src) + postscriptContent = string(bytes) + err = glfw.Init() + if err != nil { + panic(err) + } + defer glfw.Terminate() + + window, err = glfw.CreateWindow(800, 800, "Show Tiger in OpenGL", nil, nil) + if err != nil { + panic(err) + } + + window.MakeContextCurrent() + window.SetSizeCallback(reshape) + window.SetKeyCallback(onKey) + + glfw.SwapInterval(1) + + err = gl.Init() + if err != nil { + panic(err) + } + reshape(window, 800, 800) + for !window.ShouldClose() { + display() + window.SwapBuffers() + glfw.PollEvents() + // time.Sleep(2 * time.Second) + } +} + +func onKey(w *glfw.Window, key glfw.Key, scancode int, action glfw.Action, mods glfw.ModifierKey) { + switch { + case key == glfw.KeyEscape && action == glfw.Press, + key == glfw.KeyQ && action == glfw.Press: + w.SetShouldClose(true) + } +} + +func init() { + runtime.LockOSThread() +} diff --git a/samples/postscriptgl/tiger.ps b/samples/postscriptgl/tiger.ps new file mode 100644 index 0000000..24a9dce --- /dev/null +++ b/samples/postscriptgl/tiger.ps @@ -0,0 +1,2733 @@ +%!PS-Adobe-2.0 EPSF-1.2 +%%Creator: Adobe Illustrator(TM) 1.2d4 +%%For: OpenWindows Version 2 +%%Title: tiger.eps +%%CreationDate: 4/12/90 3:20 AM +%%DocumentProcSets: Adobe_Illustrator_1.2d1 0 0 +%%DocumentSuppliedProcSets: Adobe_Illustrator_1.2d1 0 0 +%%BoundingBox: 22 171 567 738 +%%EndComments + +%%BeginProcSet:Adobe_Illustrator_1.2d1 0 0 + +/Adobe_Illustrator_1.2d1 dup 100 dict def load begin +% definition operators +/bdef {bind def} bind def +/ldef {load def} bdef +/xdef {exch def} bdef +% graphic state operators +/_K { 3 index add neg dup 0 lt {pop 0} if 3 1 roll } bdef +/_k /setcmybcolor where { + /setcmybcolor get +} { + { 1 sub 4 1 roll _K _K _K setrgbcolor pop } bind +} ifelse def +/g {/_b xdef /p {_b setgray} def} bdef +/G {/_B xdef /P {_B setgray} def} bdef +/k {/_b xdef /_y xdef /_m xdef /_c xdef /p {_c _m _y _b _k} def} bdef +/K {/_B xdef /_Y xdef /_M xdef /_C xdef /P {_C _M _Y _B _k} def} bdef +/d /setdash ldef +/_i currentflat def +/i {dup 0 eq {pop _i} if setflat} bdef +/j /setlinejoin ldef +/J /setlinecap ldef +/M /setmiterlimit ldef +/w /setlinewidth ldef +% path construction operators +/_R {.25 sub round .25 add} bdef +/_r {transform _R exch _R exch itransform} bdef +/c {_r curveto} bdef +/C /c ldef +/v {currentpoint 6 2 roll _r curveto} bdef +/V /v ldef +/y {_r 2 copy curveto} bdef +/Y /y ldef +/l {_r lineto} bdef +/L /l ldef +/m {_r moveto} bdef +% path painting operators +/n /newpath ldef +/N /n ldef +/F {p fill} bdef +/f {closepath F} bdef +/S {P stroke} bdef +/s {closepath S} bdef +/B {gsave F grestore S} bdef +/b {closepath B} bdef +end +%%EndProcSet +%%EndProlog + +%%Page: 1 1 + +Adobe_Illustrator_1.2d1 begin + +.8 setgray +clippath fill +-110 -300 translate +1.1 dup scale + +0 g +0 G +0 i +0 J +0 j +0.172 w +10 M +[]0 d +0 0 0 0 k + +177.696 715.715 m +177.797 713.821 176.973 713.84 v +176.149 713.859 159.695 761.934 139.167 759.691 C +156.95 767.044 177.696 715.715 V +b +181.226 718.738 m +180.677 716.922 179.908 717.221 v +179.14 717.519 180.023 768.325 159.957 773.199 C +179.18 774.063 181.226 718.738 V +b +208.716 676.41 m +210.352 675.45 209.882 674.773 v +209.411 674.096 160.237 686.898 150.782 668.541 C +154.461 687.428 208.716 676.41 V +b +205.907 666.199 m +207.763 665.803 207.529 665.012 v +207.296 664.221 156.593 660.879 153.403 640.478 C +150.945 659.563 205.907 666.199 V +b +201.696 671.724 m +203.474 671.061 203.128 670.313 v +202.782 669.565 152.134 673.654 146.002 653.936 C +146.354 673.175 201.696 671.724 V +b +190.991 689.928 m +192.299 688.554 191.66 688.033 v +191.021 687.512 147.278 713.366 133.131 698.324 C +141.872 715.467 190.991 689.928 V +b +183.446 685.737 m +184.902 684.52 184.326 683.929 v +183.75 683.339 137.362 704.078 125.008 687.531 C +131.753 705.553 183.446 685.737 V +b +180.846 681.665 m +182.454 680.657 181.964 679.994 v +181.474 679.331 132.692 693.554 122.709 675.478 C +126.934 694.251 180.846 681.665 V +b +191.58 681.051 m +192.702 679.52 192.001 679.085 v +191.3 678.65 151.231 709.898 135.273 696.793 C +146.138 712.674 191.58 681.051 V +b +171.8 710 m +172.4 708.2 171.6 708 v +170.8 707.8 142.2 749.8 122.999 742.2 C +138.2 754 171.8 710 V +b +172.495 703.021 m +173.47 701.392 172.731 701.025 v +171.993 700.657 135.008 735.501 117.899 723.939 C +130.196 738.739 172.495 703.021 V +b +172.38 698.651 m +173.502 697.12 172.801 696.685 v +172.1 696.251 132.031 727.498 116.073 714.393 C +126.938 730.274 172.38 698.651 V +b +0 J 1 w +170.17 696.935 m +170.673 690.887 171.661 684.318 173.4 681.199 C +169.8 668.799 178.6 655.599 V +178.2 648.399 179.8 645.199 V +183.8 636.799 188.6 635.999 v +192.484 635.352 201.207 632.283 211.068 630.879 c +228.2 616.799 225 603.999 V +224.6 587.599 221 585.999 V +232.6 597.199 223 580.399 V +218.6 561.599 l +244.2 583.199 228.6 564.799 V +218.6 538.799 l +238.2 557.199 231 548.799 V +227.8 539.999 l +271 567.199 240.2 537.599 V +248.2 541.199 252.6 538.399 V +259.4 539.599 258.6 537.999 V +237.8 527.599 234.2 509.199 V +242.6 519.199 239.4 508.399 V +239.8 496.799 l +243.8 518.399 243.4 480.799 V +262.6 498.799 251 477.999 V +251 461.199 l +266.2 477.599 259.8 464.799 V +269.8 473.599 265.8 458.399 V +265 447.999 269.4 459.199 V +285.4 489.799 279.4 463.599 V +278.6 444.399 283.4 459.199 V +283.8 448.799 293 441.599 V +291.8 492.399 304.6 456.399 V +308.6 439.999 l +311.4 449.199 311 454.399 V +325.8 470.799 319 446.399 V +334.2 469.199 331 455.999 V +323.4 439.999 325 435.199 V +341.8 469.999 343 471.599 V +341 429.198 351.8 465.199 V +357.4 453.199 354.6 448.799 V +362.6 456.799 361.8 459.999 V +366.4 468.199 369.2 454.599 V +371 445.199 372.6 448.399 V +376.6 424.398 377.8 447.199 V +379.4 460.799 372.2 472.399 V +373 475.599 370.2 479.599 v +383.8 457.999 376.6 486.799 V +387.801 478.799 389.001 478.799 V +375.4 501.999 384.2 497.199 V +379 507.599 397.001 495.599 V +381 511.599 398.601 501.999 V +406.601 495.599 399.001 505.599 V +384.6 521.599 406.601 503.599 V +418.201 487.199 419.001 484.399 V +409.001 513.599 404.601 516.399 V +413.001 552.799 454.201 537.199 V +461.001 519.999 465.401 538.399 V +478.201 544.799 489.401 517.199 V +493.401 530.799 492.601 533.599 V +499.401 532.399 498.601 533.599 V +511.801 529.199 513.001 529.999 V +519.801 523.199 520.201 526.799 V +529.401 523.999 527.401 527.599 V +536.201 511.999 536.601 508.399 V +539.001 522.399 l +541.001 519.599 l +542.601 527.199 541.801 528.399 v +541.001 529.599 561.801 521.599 566.601 500.799 C +568.601 492.399 l +574.601 507.199 573.001 511.199 V +578.201 510.399 578.601 505.999 V +582.601 529.199 577.801 535.199 V +582.201 535.999 583.401 532.399 V +583.401 539.599 l +590.601 538.799 590.601 541.199 V +595.001 545.199 597.001 540.399 V +584.601 575.599 603.001 556.399 V +610.201 545.599 606.601 564.399 v +603.001 583.199 599.001 584.799 603.801 585.199 C +604.601 588.799 602.601 590.399 v +600.601 591.999 603.801 590.399 y +608.601 586.399 603.401 608.399 V +609.801 606.799 597.801 635.999 V +600.601 638.399 596.601 646.799 V +604.601 642.399 607.401 643.999 V +607.001 645.599 603.801 649.599 V +582.201 704.4 602.601 682.399 V +614.451 668.849 608.051 691.649 V +598.94 715.659 599.717 719.955 V +170.17 696.935 l +b +0.2 0.55 0.85 0 k +599.717 719.755 m +600.345 719.574 602.551 718.45 603.801 716.8 C +610.601 706 605.401 724.4 V +596.201 753.2 605.001 742 V +611.001 734.8 607.801 748.4 v +603.936 764.827 601.401 771.2 y +613.001 766.4 586.201 806 V +595.001 802.4 l +575.401 842 553.801 847.2 V +545.801 853.2 l +584.201 891.2 571.401 928 V +564.601 933.2 555.001 924 V +548.601 919.2 542.601 920.8 V +511.801 919.6 509.801 919.6 v +507.801 919.6 473.001 956.8 407.401 939.2 C +402.201 937.2 397.801 938.4 V +379.4 954.4 330.6 931.6 v +320.6 929.6 319 929.6 v +317.4 929.6 314.6 929.6 306.6 923.2 c +298.6 916.8 298.2 916 296.2 914.4 C +279.8 903.2 275 902.4 V +263.4 896 259 886 V +255.4 884.8 l +253.8 877.6 253.4 876.4 V +248.6 872.8 247.8 867.2 V +239 861.2 239.4 856.8 V +237.8 851.6 237 846.8 V +229.8 842 230.6 839.2 V +223 825.2 224.2 818.4 V +217.8 818.8 215 816.4 V +214.2 811.6 212.6 811.2 V +209.8 810 212.2 806 V +210.6 803.2 210.2 801.6 V +211 798.8 206.6 793.2 V +200.2 774.4 202.2 769.2 V +202.6 764.4 199.8 762.8 V +196.2 763.2 204.6 751.2 V +205.4 750 202.2 747.6 V +185 744 182.6 727.6 V +169 712.8 169 707.6 v +169 705.295 169.271 702.148 169.97 697.535 C +169.4 689.199 197 688.399 v +224.6 687.599 599.717 719.755 Y +b +184.4 697.4 m +159.4 736.8 173.8 680.399 Y +182.6 645.999 312.2 683.599 y +481.001 714 492.201 718 v +503.401 722 598.601 715.6 y +593.001 732.4 L +528.201 778.8 509.001 755.6 495.401 759.6 c +481.801 763.6 484.201 754 481.001 753.2 c +477.801 752.4 438.601 777.2 432.201 776.4 c +425.801 775.6 400.459 799.351 415.401 767.6 c +431.401 733.6 357 728.4 340.2 739.6 c +323.4 750.8 347.4 721.2 Y +365.8 701.2 331.4 718 y +297 730.8 273 705.2 269.8 704.4 c +266.6 703.6 261.8 700.4 261 706.8 c +260.2 713.2 252.69 729.901 221 703.6 c +201 686.999 187.2 709 Y +184.4 697.4 L +f +0.09 0.5 0.772 0 k +433.51 774.654 m +427.11 773.854 401.743 797.593 416.71 765.854 c +433.31 730.654 358.31 726.654 341.51 737.854 c +324.709 749.054 348.71 719.454 Y +367.11 699.454 332.709 716.254 y +298.309 729.054 274.309 703.454 271.109 702.654 c +267.909 701.854 263.109 698.654 262.309 705.054 c +261.509 711.454 254.13 727.988 222.309 701.854 c +201.073 684.508 187.582 705.963 Y +184.382 695.854 L +159.382 735.654 174.454 677.345 Y +183.255 642.944 313.509 681.854 y +482.31 712.254 493.51 716.254 v +504.71 720.254 599.038 713.927 y +593.51 731.236 L +528.71 777.636 510.31 753.854 496.71 757.854 c +483.11 761.854 485.51 752.254 482.31 751.454 c +479.11 750.654 439.91 775.454 433.51 774.654 c +f +0.081 0.45 0.695 0 k +434.819 772.909 m +428.419 772.109 403.685 796.138 418.019 764.109 c +434.219 727.908 359.619 724.908 342.819 736.108 c +326.019 747.308 350.019 717.708 Y +368.419 697.708 334.019 714.508 y +299.619 727.308 275.618 701.708 272.418 700.908 c +269.218 700.108 264.418 696.908 263.618 703.308 c +262.818 709.708 255.57 726.075 223.618 700.108 c +201.145 682.017 187.964 702.926 Y +184.364 694.308 L +160.564 733.308 175.109 674.29 Y +183.909 639.89 314.819 680.108 y +483.619 710.508 494.819 714.508 v +506.019 718.508 599.474 712.254 y +594.02 730.072 L +529.219 776.472 511.619 752.109 498.019 756.109 c +484.419 760.109 486.819 750.509 483.619 749.708 c +480.419 748.908 441.219 773.709 434.819 772.909 c +f +0.072 0.4 0.618 0 k +436.128 771.163 m +429.728 770.363 404.999 794.395 419.328 762.363 c +436.128 724.807 360.394 723.518 344.128 734.363 c +327.328 745.563 351.328 715.963 Y +369.728 695.963 335.328 712.763 y +300.928 725.563 276.928 699.963 273.728 699.163 c +270.528 698.363 265.728 695.163 264.928 701.563 c +264.128 707.963 257.011 724.161 224.927 698.363 c +201.218 679.526 188.345 699.89 Y +184.345 692.763 L +162.545 729.563 175.764 671.235 Y +184.564 636.835 316.128 678.363 y +484.928 708.763 496.129 712.763 v +507.329 716.763 599.911 710.581 y +594.529 728.908 L +529.729 775.309 512.929 750.363 499.329 754.363 c +485.728 758.363 488.128 748.763 484.928 747.963 c +481.728 747.163 442.528 771.963 436.128 771.163 c +f +0.063 0.35 0.54 0 k +437.438 769.417 m +431.037 768.617 406.814 792.871 420.637 760.617 c +437.438 721.417 362.237 721.417 345.437 732.617 c +328.637 743.817 352.637 714.217 Y +371.037 694.217 336.637 711.017 y +302.237 723.817 278.237 698.217 275.037 697.417 c +271.837 696.617 267.037 693.417 266.237 699.817 c +265.437 706.217 258.452 722.248 226.237 696.617 c +201.291 677.035 188.727 696.854 Y +184.327 691.217 L +164.527 726.018 176.418 668.181 Y +185.218 633.78 317.437 676.617 y +486.238 707.017 497.438 711.017 v +508.638 715.017 600.347 708.908 y +595.038 727.745 L +530.238 774.145 514.238 748.617 500.638 752.617 c +487.038 756.617 489.438 747.017 486.238 746.217 c +483.038 745.417 443.838 770.217 437.438 769.417 c +f +0.054 0.3 0.463 0 k +438.747 767.672 m +432.347 766.872 406.383 790.323 421.947 758.872 c +441.147 720.072 363.546 719.672 346.746 730.872 c +329.946 742.072 353.946 712.472 Y +372.346 692.472 337.946 709.272 y +303.546 722.072 279.546 696.472 276.346 695.672 c +273.146 694.872 268.346 691.672 267.546 698.072 c +266.746 704.472 259.892 720.335 227.546 694.872 c +201.364 674.544 189.109 693.817 Y +184.309 689.672 L +166.309 722.872 177.073 665.126 Y +185.873 630.726 318.746 674.872 y +487.547 705.272 498.747 709.272 v +509.947 713.272 600.783 707.236 y +595.547 726.581 L +530.747 772.981 515.547 746.872 501.947 750.872 c +488.347 754.872 490.747 745.272 487.547 744.472 c +484.347 743.672 445.147 768.472 438.747 767.672 c +f +0.045 0.25 0.386 0 k +440.056 765.927 m +433.655 765.127 407.313 788.387 423.255 757.127 c +443.656 717.126 364.855 717.926 348.055 729.126 c +331.255 740.326 355.255 710.726 Y +373.655 690.726 339.255 707.526 y +304.855 720.326 280.855 694.726 277.655 693.926 c +274.455 693.126 269.655 689.926 268.855 696.326 c +268.055 702.726 261.332 718.422 228.855 693.126 c +201.436 672.053 189.491 690.781 Y +184.291 688.126 L +168.291 718.326 177.727 662.071 Y +186.527 627.671 320.055 673.126 y +488.856 703.526 500.056 707.526 v +511.256 711.526 601.22 705.563 y +596.056 725.417 L +531.256 771.817 516.856 745.126 503.256 749.126 c +489.656 753.127 492.056 743.526 488.856 742.726 c +485.656 741.926 446.456 766.727 440.056 765.927 c +f +0.036 0.2 0.309 0 k +441.365 764.181 m +434.965 763.381 407.523 786.056 424.565 755.381 c +446.565 715.781 366.164 716.181 349.364 727.381 c +332.564 738.581 356.564 708.981 Y +374.964 688.981 340.564 705.781 y +306.164 718.581 282.164 692.981 278.964 692.181 c +275.764 691.381 270.964 688.181 270.164 694.581 c +269.364 700.981 262.773 716.508 230.164 691.381 c +201.509 669.562 189.873 687.744 Y +184.273 686.581 L +169.872 714.981 178.382 659.017 Y +187.182 624.616 321.364 671.381 y +490.165 701.781 501.365 705.781 v +512.565 709.781 601.656 703.89 y +596.565 724.254 L +531.765 770.654 518.165 743.381 504.565 747.381 c +490.965 751.381 493.365 741.781 490.165 740.981 c +486.965 740.181 447.765 764.981 441.365 764.181 c +f +0.027 0.15 0.231 0 k +442.674 762.435 m +436.274 761.635 408.832 784.311 425.874 753.635 c +447.874 714.035 367.474 714.435 350.674 725.635 c +333.874 736.835 357.874 707.235 Y +376.274 687.235 341.874 704.035 y +307.473 716.835 283.473 691.235 280.273 690.435 c +277.073 689.635 272.273 686.435 271.473 692.835 c +270.673 699.235 264.214 714.595 231.473 689.635 c +201.582 667.071 190.255 684.707 Y +184.255 685.035 L +170.654 711.436 179.037 655.962 Y +187.837 621.562 322.673 669.635 y +491.474 700.035 502.674 704.035 v +513.874 708.035 602.093 702.217 y +597.075 723.09 L +532.274 769.49 519.474 741.635 505.874 745.635 c +492.274 749.635 494.674 740.035 491.474 739.235 c +488.274 738.435 449.074 763.235 442.674 762.435 c +f +0.018 0.1 0.154 0 k +443.983 760.69 m +437.583 759.89 410.529 782.777 427.183 751.89 c +449.183 711.09 368.783 712.69 351.983 723.89 c +335.183 735.09 359.183 705.49 Y +377.583 685.49 343.183 702.29 y +308.783 715.09 284.783 689.49 281.583 688.69 c +278.382 687.89 273.582 684.69 272.782 691.09 c +271.982 697.49 265.654 712.682 232.782 687.89 c +201.655 664.58 190.637 681.671 Y +184.236 683.49 L +171.236 707.49 179.691 652.907 Y +188.491 618.507 323.983 667.89 y +492.783 698.29 503.983 702.29 v +515.183 706.29 602.529 700.544 y +597.583 721.926 L +532.783 768.327 520.783 739.89 507.183 743.89 c +493.583 747.89 495.983 738.29 492.783 737.49 c +489.583 736.69 450.383 761.49 443.983 760.69 c +f +0.009 0.05 0.077 0 k +445.292 758.945 m +438.892 758.145 412.917 781.589 428.492 750.145 c +449.692 707.344 370.092 710.944 353.292 722.144 c +336.492 733.344 360.492 703.744 Y +378.892 683.744 344.492 700.544 y +310.092 713.344 286.092 687.744 282.892 686.944 c +279.692 686.144 274.892 682.944 274.092 689.344 c +273.292 695.744 267.095 710.768 234.092 686.144 c +201.727 662.089 191.018 678.635 Y +184.218 681.944 L +171.418 705.144 180.346 649.853 Y +189.146 615.453 325.292 666.144 y +494.093 696.544 505.293 700.544 v +516.493 704.544 602.965 698.872 y +598.093 720.763 L +533.292 767.163 522.093 738.144 508.493 742.144 c +494.893 746.145 497.293 736.544 494.093 735.744 c +490.892 734.944 451.692 759.745 445.292 758.945 c +f +1 g +184.2 680.399 m +171.4 702.4 181 646.799 Y +189.8 612.399 326.6 664.399 y +495.401 694.8 506.601 698.8 v +517.801 702.8 603.401 697.2 y +598.601 719.6 L +533.801 766 523.401 736.4 509.801 740.4 c +496.201 744.4 498.601 734.8 495.401 734 c +492.201 733.2 453.001 758 446.601 757.2 c +440.201 756.4 414.981 780.207 429.801 748.4 c +452.028 700.693 369.041 710.773 354.6 720.4 c +337.8 731.6 361.8 702 Y +380.2 681.999 345.8 698.8 y +311.4 711.6 287.4 685.999 284.2 685.199 c +281 684.399 276.2 681.199 275.4 687.599 c +274.6 694 268.535 708.856 235.4 684.399 c +201.8 659.599 191.4 675.599 Y +184.2 680.399 L +f +0 g +225.8 650.399 m +218.6 638.799 239.4 625.599 V +240.8 624.199 222.8 628.399 V +216.6 630.399 215 640.799 V +210.2 645.199 205.4 650.799 v +200.6 656.399 225.8 650.399 y +f +0.8 g +365.8 698 m +383.498 671.179 382.9 666.399 v +381.6 655.999 381.4 646.399 384.6 642.399 c +387.801 638.399 396.601 605.199 y +396.201 603.999 408.601 641.999 V +420.201 657.999 400.201 676.399 V +365 705.2 365.8 698 v +f +0 g +1 J 0.1 w +245.8 623.599 m +257 616.399 242.6 585.199 V +249 587.599 l +248.2 576.399 245 573.999 V +252.2 577.199 l +257 569.199 253 564.399 V +269.8 556.399 269 549.999 V +275.4 557.999 271.4 564.399 v +267.4 570.799 260.2 566.799 261 585.199 C +252.2 581.999 l +257.8 590.799 257.8 597.199 V +249.8 594.799 l +265.269 621.377 254.6 622.799 v +248.6 623.599 245.8 623.599 Y +f +0.8 g +278.2 606.799 m +281 611.199 278.2 610.399 v +275.4 609.599 244.2 594.799 238.2 585.199 C +272.6 609.599 278.2 606.799 V +f +288.6 598.799 m +291.4 603.199 288.6 602.399 v +285.8 601.599 254.6 586.799 248.6 577.199 C +283 601.599 288.6 598.799 V +f +301.8 613.999 m +304.6 618.399 301.8 617.599 v +299 616.799 267.8 601.999 261.8 592.399 C +296.2 616.799 301.8 613.999 V +f +278.6 570.399 m +278.6 576.399 275.8 575.599 v +273 574.799 237 557.199 231 547.599 C +273 573.199 278.6 570.399 V +f +279.8 581.199 m +281 585.999 278.2 585.199 V +276.2 585.199 249.8 573.599 243.8 563.999 C +273.4 585.599 279.8 581.199 V +f +265.4 533.599 m +255.4 525.999 l +265.8 533.599 269.4 532.399 V +262.6 521.199 261.8 515.999 V +272.2 528.799 277.8 528.399 V +285.4 527.999 285.4 517.199 V +291 527.599 294.2 527.199 V +295.4 520.799 294.2 513.999 V +298.2 521.599 302.2 519.999 V +308.6 521.999 307.8 510.399 V +307.8 499.999 307 497.199 V +312.6 523.599 315 523.999 V +323 525.199 327.8 516.399 V +323.8 523.999 328.6 521.999 V +339.4 520.399 342.6 513.599 V +335.8 525.599 341.4 522.399 V +348.2 522.399 349.4 515.999 V +357.8 494.799 359.8 493.199 V +352.2 514.799 353.8 514.799 V +351.8 526.799 357 511.999 V +353.8 525.999 359.4 525.199 v +365 524.399 369.4 514.399 377.8 516.799 C +387.401 511.199 389.401 580.399 V +265.4 533.599 L +f +0 g +0 J 1 w +270.2 626.399 m +285 632.399 325 626.399 V +332.2 625.999 339 634.799 v +345.8 643.599 372.6 650.799 379 648.799 C +388.601 642.399 l +389.401 641.199 l +401.801 630.799 402.201 623.199 v +402.601 615.599 387.801 567.599 378.2 551.599 c +368.6 535.599 359 523.199 339.8 525.599 C +319 529.599 293.4 525.599 v +264.2 527.199 261.4 535.199 v +258.6 543.199 272.6 558.399 y +277 566.799 275.8 581.199 v +274.6 595.599 275 623.599 270.2 626.399 c +f +0.1 0.6 0.45 0 k +292.2 624.399 m +300.6 605.999 271 540.799 y +269 539.199 283.66 533.154 293.8 535.599 c +304.746 538.237 345 533.999 Y +368.6 549.599 381.4 593.999 y +391.801 617.999 374.2 621.199 v +356.6 624.399 292.2 624.399 y +f +0.1 0.6 0.45 0.2 k +290.169 593.503 m +293.495 606.293 295.079 618.094 292.2 624.399 c +354.6 617.999 365.8 638.799 v +370.041 646.674 384.801 615.999 384.4 606.399 c +321.4 591.999 306.6 603.199 V +290.169 593.503 L +f +0.1 0.6 0.45 0.25 k +294.6 577.199 m +296.6 569.999 294.2 565.999 V +292.6 565.199 291.4 564.799 V +292.6 561.199 298.6 559.599 V +300.6 555.199 303 554.799 v +305.4 554.399 310.2 548.799 314.2 549.999 c +318.2 551.199 329.4 555.199 y +335 558.399 343.8 554.799 V +346.175 555.601 346.6 559.599 v +347.1 564.299 350.2 567.999 352.2 569.999 c +354.2 571.999 363.8 584.799 362.6 585.199 c +361.4 585.599 294.6 577.199 Y +f +0 0.55 0.5 0 k +290.2 625.599 m +287.4 603.199 290.6 594.799 v +293.8 586.399 293 584.399 292.2 580.399 c +291.4 576.399 295.8 566.399 301.4 560.399 C +313.4 558.799 l +328.6 562.399 337.8 559.599 V +346.794 558.256 350.2 573.199 V +355 579.599 362.2 582.399 v +369.4 585.199 376.6 626.799 372.6 634.799 c +368.6 642.799 354.2 647.199 338.2 631.599 c +322.2 615.999 320.2 632.799 290.2 625.599 C +b +0 0 0.2 0 k +0.5 w +291.8 550.799 m +291 552.799 286.6 553.199 V +264.2 556.799 255.8 569.199 V +249 574.799 253.4 563.199 V +263.8 542.799 270.6 539.999 V +287 535.999 291.8 550.799 V +b +0 0.55 0.5 0.2 k +1 w +371.742 614.771 m +372.401 622.677 374.354 631.291 372.6 634.799 c +366.154 647.693 349.181 642.305 338.2 631.599 c +322.2 615.999 320.2 632.799 290.2 625.599 C +288.455 611.636 289.295 601.624 v +326.6 613.199 327.4 607.599 V +329 610.799 338.2 610.799 v +347.4 610.799 370.142 611.971 371.742 614.771 C +f +0 g +0 0.55 0.5 0.35 K +2 w +328.6 624.799 m +333.4 619.999 329.8 610.399 V +315.4 594.399 317.4 580.399 v +S +0 0 0.2 0 k +0 G +0.5 w +280.6 539.999 m +276.2 552.799 285 545.999 V +289.8 543.999 288.6 542.399 v +287.4 540.799 281.8 536.799 280.6 539.999 C +b +285.64 538.799 m +282.12 549.039 289.16 543.599 V +293.581 541.151 292.04 540.719 v +287.48 539.439 292.04 536.879 285.64 538.799 C +b +290.44 538.799 m +286.92 549.039 293.96 543.599 V +298.335 541.289 296.84 540.719 v +293.48 539.439 296.84 536.879 290.44 538.799 C +b +297.04 538.599 m +293.52 548.839 300.56 543.399 V +304.943 541.067 303.441 540.519 v +300.48 539.439 303.441 536.679 297.04 538.599 C +b +303.52 538.679 m +300 548.919 307.041 543.479 V +310.881 541.879 309.921 540.599 v +308.961 539.319 309.921 536.759 303.52 538.679 C +b +310.2 537.999 m +305.4 550.399 314.6 543.999 V +319.4 541.999 318.2 540.399 v +317 538.799 318.2 535.599 310.2 537.999 C +b +0 g +0.1 0.6 0.45 0.25 K +2 w +281.8 555.199 m +295 557.999 301 554.799 V +307 553.599 308.2 553.999 v +309.4 554.399 312.6 554.799 y +S +315.8 546.399 m +327.8 559.999 339.8 555.599 v +346.816 553.026 345.8 556.399 346.6 559.199 c +347.4 561.999 347.6 566.199 352.6 569.199 c +S +0 0 0.2 0 k +0 G +0.5 w +333 562.399 m +329 573.199 326.2 560.399 v +323.4 547.599 320.2 543.999 318.6 541.199 C +318.6 535.999 327 536.399 V +337.8 536.799 338.2 539.599 v +338.6 542.399 337 553.999 333 562.399 C +b +0 g +0.1 0.6 0.45 0.25 K +2 w +347 555.199 m +350.6 557.599 353 556.399 v +S +353.5 571.599 m +356.4 576.499 361.2 577.299 v +S +0.7 g +0 G +1 w +274.2 534.799 m +292.2 531.599 296.6 533.199 V +305.4 533.199 297 531.199 V +284.2 531.199 276.2 532.399 V +264.6 537.999 274.2 534.799 V +f +0 0 0.2 0 k +0.5 w +288.2 627.999 m +305.8 627.999 307.8 627.199 V +315 596.399 311.4 588.799 V +310.2 585.999 307.4 591.599 V +289 624.399 285.8 626.399 v +282.6 628.399 287 627.999 288.2 627.999 C +b +211.1 630.699 m +220 628.999 232.6 626.399 V +237.4 603.999 240.6 599.199 v +243.8 594.399 240.2 594.399 236.6 597.199 c +233 599.999 218.2 613.999 216.2 618.399 c +214.2 622.799 211.1 630.699 y +b +232.961 626.182 m +238.761 624.634 239.77 622.419 v +240.778 620.205 238.568 616.908 y +237.568 613.603 236.366 615.765 v +235.164 617.928 232.292 625.588 232.961 626.182 c +b +0 g +233 626.399 m +236.6 621.199 240.2 621.199 v +243.8 621.199 244.182 621.612 247 620.999 c +251.6 619.999 251.2 621.999 257.8 620.799 c +260.44 620.319 263 621.199 265.8 619.999 c +268.6 618.799 271.8 619.599 273 621.599 c +274.2 623.599 279 627.799 Y +266.2 625.999 263.4 625.199 V +241 623.999 233 626.399 V +f +0 0 0.2 0 k +277.6 626.199 m +271.15 622.699 270.75 620.299 v +270.35 617.899 276 614.199 y +278.75 609.599 279.35 611.999 v +279.95 614.399 278.4 625.799 277.6 626.199 c +b +240.115 620.735 m +247.122 609.547 247.339 620.758 V +247.896 622.016 246.136 622.038 v +240.061 622.114 241.582 626.216 240.115 620.735 C +b +247.293 620.486 m +255.214 609.299 254.578 620.579 V +254.585 620.911 252.832 621.064 v +248.085 621.478 248.43 625.996 247.293 620.486 C +b +254.506 620.478 m +262.466 609.85 261.797 619.516 V +261.916 620.749 260.262 621.05 v +256.37 621.756 256.159 625.005 254.506 620.478 C +b +261.382 620.398 m +269.282 608.837 269.63 618.618 V +271.274 619.996 269.528 620.218 v +263.71 620.958 264.508 625.412 261.382 620.398 C +b +0 0 0.2 0.1 k +225.208 616.868 m +217.55 618.399 l +214.95 623.399 212.85 629.549 y +219.2 628.549 231.7 625.749 V +232.576 622.431 234.048 616.636 v +225.208 616.868 l +f +290.276 621.53 m +288.61 624.036 287.293 625.794 286.643 626.2 c +283.63 628.083 287.773 627.706 288.902 627.706 C +305.473 627.706 307.356 626.953 V +307.88 624.711 308.564 621.32 V +298.476 623.33 290.276 621.53 V +f +0.2 0.55 0.85 0 k +1 w +343.88 759.679 m +371.601 755.719 397.121 791.359 398.881 801.04 c +400.641 810.72 390.521 822.6 Y +391.841 825.68 387.001 839.76 381.721 849 c +376.441 858.24 360.54 857.266 343 858.24 c +327.16 859.12 308.68 835.8 307.36 834.04 c +306.04 832.28 312.2 793.999 313.52 788.279 c +314.84 782.559 312.2 756.159 y +346.44 765.259 316.16 763.639 343.88 759.679 c +f +0.08 0.44 0.68 0 k +308.088 833.392 m +306.792 831.664 312.84 794.079 314.136 788.463 c +315.432 782.847 312.84 756.927 y +345.512 765.807 316.728 764.271 343.944 760.383 c +371.161 756.495 396.217 791.487 397.945 800.992 c +399.673 810.496 389.737 822.16 Y +391.033 825.184 386.281 839.008 381.097 848.08 c +375.913 857.152 360.302 856.195 343.08 857.152 c +327.528 858.016 309.384 835.12 308.088 833.392 c +f +0.06 0.33 0.51 0 k +308.816 832.744 m +307.544 831.048 313.48 794.159 314.752 788.647 c +316.024 783.135 313.48 757.695 y +344.884 766.855 317.296 764.903 344.008 761.087 c +370.721 757.271 395.313 791.615 397.009 800.944 c +398.705 810.272 388.953 821.72 Y +390.225 824.688 385.561 838.256 380.473 847.16 c +375.385 856.064 360.063 855.125 343.16 856.064 c +327.896 856.912 310.088 834.44 308.816 832.744 c +f +0.04 0.22 0.34 0 k +309.544 832.096 m +308.296 830.432 314.12 794.239 315.368 788.831 c +316.616 783.423 314.12 758.463 y +343.556 767.503 317.864 765.535 344.072 761.791 c +370.281 758.047 394.409 791.743 396.073 800.895 c +397.737 810.048 388.169 821.28 Y +389.417 824.192 384.841 837.504 379.849 846.24 c +374.857 854.976 359.824 854.055 343.24 854.976 c +328.264 855.808 310.792 833.76 309.544 832.096 c +f +0.02 0.11 0.17 0 k +310.272 831.448 m +309.048 829.816 314.76 794.319 315.984 789.015 c +317.208 783.711 314.76 759.231 y +342.628 768.151 318.432 766.167 344.136 762.495 c +369.841 758.823 393.505 791.871 395.137 800.848 c +396.769 809.824 387.385 820.84 Y +388.609 823.696 384.121 836.752 379.225 845.32 c +374.329 853.888 359.585 852.985 343.32 853.888 c +328.632 854.704 311.496 833.08 310.272 831.448 c +f +1 g +344.2 763.2 m +369.4 759.6 392.601 792 394.201 800.8 c +395.801 809.6 386.601 820.4 Y +387.801 823.2 383.4 836 378.6 844.4 c +373.8 852.8 359.346 851.914 343.4 852.8 c +329 853.6 312.2 832.4 311 830.8 c +309.8 829.2 315.4 794.4 316.6 789.2 c +317.8 784 315.4 760 y +340.9 768.6 319 766.8 344.2 763.2 c +f +0.8 g +390.601 797.2 m +362.8 789.6 351.2 791.2 V +335.4 797.8 326.6 776 V +323 768.8 321 766.8 v +319 764.8 390.601 797.2 Y +f +0 g +394.401 799.4 m +365.4 787.2 355.4 787.6 v +339 792.2 330.6 777.6 V +322.2 768.4 319 766.8 V +318.6 765.2 325 769.2 V +335.4 764 l +350.2 754.4 359.8 770.4 V +363.8 781.6 363.8 783.6 v +363.8 785.6 385 791.2 386.601 791.6 c +388.201 792 394.801 796.2 394.401 799.4 C +f +0.4 0.2 0.8 0 k +347 763.486 m +340.128 763.486 331.755 767.351 331.755 773.6 c +331.755 779.848 340.128 786.113 347 786.113 c +353.874 786.113 359.446 781.048 359.446 774.8 c +359.446 768.551 353.874 763.486 347 763.486 c +f +0.4 0.2 0.8 0.2 k +343.377 780.17 m +338.531 779.448 333.442 777.945 333.514 778.161 c +335.054 782.78 341.415 786.113 347 786.113 c +351.296 786.113 355.084 784.135 357.32 781.125 c +352.004 781.455 343.377 780.17 v +f +1 g +355.4 780.4 m +351 783.6 351 781.4 V +354.6 777 355.4 780.4 V +f +0 g +345.4 772.274 m +342.901 772.274 340.875 774.3 340.875 776.8 c +340.875 779.299 342.901 781.325 345.4 781.325 c +347.9 781.325 349.926 779.299 349.926 776.8 c +349.926 774.3 347.9 772.274 345.4 772.274 c +f +0.2 0.55 0.85 0 k +241.4 785.6 m +238.2 806.8 240.6 811.2 V +251.4 821.2 251 824.8 V +250.6 842.8 249.4 843.6 v +248.2 844.4 240.6 850.4 234.6 844 C +224.2 826 225 819.6 V +225 817.6 l +217.4 818 215.8 816 V +214.6 810.8 213.4 810.4 V +210.6 808 212.6 805.2 V +210.6 802.8 211 798.8 V +218.6 794.8 L +220.6 780.4 231.4 775.2 v +236.236 772.871 239.4 779.6 241.4 785.6 c +f +1 g +240.4 787.44 m +237.52 806.52 239.68 810.48 V +249.4 819.48 249.04 822.72 V +248.68 838.92 247.6 839.64 v +246.52 840.36 239.68 845.76 234.28 840 C +224.92 823.8 225.64 818.04 V +225.64 816.24 l +218.8 816.6 217.36 814.8 V +216.28 810.12 215.2 809.76 V +212.68 807.6 214.48 805.08 V +212.68 802.92 213.04 799.32 V +219.88 795.72 L +221.68 782.76 231.4 778.08 v +235.752 775.985 238.6 782.04 240.4 787.44 c +f +0.075 0.412 0.637 0 k +248.95 842.61 m +247.86 843.47 240.37 849.24 234.52 843 C +224.38 825.45 225.16 819.21 V +225.16 817.26 l +217.75 817.65 216.19 815.7 V +215.02 810.63 213.85 810.24 V +211.12 807.9 213.07 805.17 V +211.12 802.83 211.51 798.93 V +218.92 795.03 L +220.87 780.99 231.4 775.92 v +236.114 773.65 239.2 780.21 241.15 786.06 c +238.03 806.73 240.37 811.02 V +250.9 820.77 250.51 824.28 V +250.12 841.83 248.95 842.61 V +f +0.05 0.275 0.425 0 k +248.5 841.62 m +247.52 842.54 240.14 848.08 234.44 842 C +224.56 824.9 225.32 818.82 V +225.32 816.92 l +218.1 817.3 216.58 815.4 V +215.44 810.46 214.3 810.08 V +211.64 807.8 213.54 805.14 V +211.64 802.86 212.02 799.06 V +219.24 795.26 L +221.14 781.58 231.4 776.64 v +235.994 774.428 239 780.82 240.9 786.52 c +237.86 806.66 240.14 810.84 V +250.4 820.34 250.02 823.76 V +249.64 840.86 248.5 841.62 V +f +0.025 0.137 0.212 0 k +248.05 840.63 m +247.18 841.61 239.91 846.92 234.36 841 C +224.74 824.35 225.48 818.43 V +225.48 816.58 l +218.45 816.95 216.97 815.1 V +215.86 810.29 214.75 809.92 V +212.16 807.7 214.01 805.11 V +212.16 802.89 212.53 799.19 V +219.56 795.49 L +221.41 782.17 231.4 777.36 v +235.873 775.206 238.8 781.43 240.65 786.98 c +237.69 806.59 239.91 810.66 V +249.9 819.91 249.53 823.24 V +249.16 839.89 248.05 840.63 V +f +1 g +240.4 787.54 m +237.52 806.52 239.68 810.48 V +249.4 819.48 249.04 822.72 V +248.68 838.92 247.6 839.64 V +246.84 840.68 239.68 845.76 234.28 840 C +224.92 823.8 225.64 818.04 V +225.64 816.24 l +218.8 816.6 217.36 814.8 V +216.28 810.12 215.2 809.76 V +212.68 807.6 214.48 805.08 V +212.68 802.92 213.04 799.32 V +219.88 795.72 L +221.68 782.76 231.4 778.08 v +235.752 775.985 238.6 782.14 240.4 787.54 c +f +0.8 g +237.3 793.8 m +215.7 804 214.8 804.8 V +223.9 796.6 224.7 796.6 v +225.5 796.6 237.3 793.8 Y +f +0 g +220.2 800 m +238.6 796.4 238.6 792 v +238.6 789.088 238.357 775.669 233 777.2 c +224.6 779.6 228.2 794 220.2 800 c +f +0.4 0.2 0.8 0 k +228.6 796.2 m +237.578 794.726 238.6 792 v +239.2 790.4 239.863 782.092 234.4 781 c +229.848 780.089 227.618 790.31 228.6 796.2 c +f +0 g +314.595 753.651 m +314.098 755.393 315.409 755.262 317.2 755.8 c +319.2 756.4 331.4 760.2 332.2 762.8 c +333 765.4 346.2 761 Y +348 760.2 352.4 757.6 Y +357.2 756.4 363.8 756 Y +366.2 755 369.6 752.2 Y +384.2 742 396.601 749.2 Y +416.601 755.8 410.601 773 Y +407.601 782 410.801 785.4 Y +411.001 789.2 418.201 782.8 Y +420.801 778.6 421.601 773.6 Y +429.601 762.4 426.201 780.2 Y +426.401 781.2 423.601 784.8 423.601 786 c +423.601 787.2 421.801 790.6 Y +418.801 794 421.201 801 Y +423.001 814.8 420.801 813 Y +419.601 814.8 410.401 804.8 Y +408.201 801.4 402.201 799.8 Y +399.401 798 396.001 799.4 Y +393.401 799.8 387.801 792.8 Y +390.601 793 393.001 788.6 395.401 788.4 c +397.801 788.2 399.601 790.8 401.201 791.4 c +402.801 792 405.601 786.2 Y +406.001 783.6 400.401 778.8 Y +400.001 774.2 398.401 775.8 Y +395.401 776.4 394.201 772.6 393.201 768 c +392.201 763.4 388.001 763 y +386.401 755.6 385.2 758.6 Y +385 764.2 379 758.4 Y +377.8 756.4 373.2 758.6 Y +366.4 760.6 368.8 762.6 Y +370.6 764.8 381.8 762.6 Y +384 764.2 376 768.2 Y +375.4 770 376.4 774.4 Y +377.6 777.6 384.4 783.2 Y +393.801 784.4 391.001 786 Y +384.801 791.2 379 783.6 Y +376.8 777.4 359.4 762.4 Y +354.6 759 357.2 765.8 353.2 762.4 c +349.2 759 328.6 768 y +317.038 769.193 314.306 753.451 310.777 756.571 c +316.195 748.051 314.595 753.651 v +f +509.401 920 m +483.801 912 481.001 893.2 V +478.601 870.4 499.001 852.8 V +499.401 846.4 501.401 843.2 v +499.801 838.4 518.601 846 V +545.801 854.4 l +552.201 856.8 557.401 865.6 v +562.601 874.4 577.801 893.2 574.201 918.4 C +575.401 929.6 569.401 930 V +561.001 931.6 553.801 924 V +547.001 920.8 544.601 921.2 V +509.401 920 L +f +564.022 920.99 m +566.122 929.92 561.282 925.08 V +554.242 919.36 546.761 919.36 V +532.241 917.16 527.841 903.96 V +523.881 877.12 531.801 871.4 V +536.641 863.92 543.681 870.52 v +550.722 877.12 566.222 907.35 564.022 920.99 C +f +0.2 g +563.648 920.632 m +565.738 929.376 560.986 924.624 V +554.074 919.008 546.729 919.008 V +532.473 916.848 528.153 903.888 V +524.265 877.536 532.041 871.92 V +536.793 864.576 543.705 871.056 v +550.618 877.536 565.808 907.24 563.648 920.632 C +f +0.4 g +563.274 920.274 m +565.354 928.832 560.69 924.168 V +553.906 918.656 546.697 918.656 V +532.705 916.536 528.465 903.816 V +524.649 877.952 532.281 872.44 V +536.945 865.232 543.729 871.592 v +550.514 877.952 565.394 907.13 563.274 920.274 C +f +0.6 g +562.9 919.916 m +564.97 928.288 560.394 923.712 V +553.738 918.304 546.665 918.304 V +532.937 916.224 528.777 903.744 V +525.033 878.368 532.521 872.96 V +537.097 865.888 543.753 872.128 v +550.41 878.368 564.98 907.02 562.9 919.916 C +f +0.8 g +562.526 919.558 m +564.586 927.744 560.098 923.256 V +553.569 917.952 546.633 917.952 V +533.169 915.912 529.089 903.672 V +525.417 878.784 532.761 873.48 V +537.249 866.544 543.777 872.664 v +550.305 878.784 564.566 906.91 562.526 919.558 C +f +1 g +562.151 919.2 m +564.201 927.2 559.801 922.8 V +553.401 917.6 546.601 917.6 V +533.401 915.6 529.401 903.6 V +525.801 879.2 533.001 874 V +537.401 867.2 543.801 873.2 v +550.201 879.2 564.151 906.8 562.151 919.2 C +f +0.1 0.55 0.85 0.3 k +350.6 716 m +330.2 735.2 322.2 736 V +287.8 740 273 722 V +290.6 742.4 318.2 736.8 V +296.6 741.2 284.2 738 V +267.4 738 257.8 724 V +255 719.2 l +259 734 277.4 740 V +300.2 744.8 311 740 V +289.4 746.8 279.4 744.8 V +249 747.2 236.2 720.8 V +240.2 735.2 255 742.4 V +268.6 751.2 289 748.4 V +303.4 745.2 308.6 742.8 v +313.8 740.4 312.6 743.2 304.2 748 C +298.6 758 284.6 757.6 V +241.8 754 231.4 742 V +245 753.2 255.4 756 V +277.8 764 286.2 763.2 V +311 762.2 318.6 766.2 V +307.4 761.2 310.6 758 v +313.8 754.8 320.6 747.2 320.6 746 c +320.6 744.8 344.8 722.7 348.4 718.3 C +350.6 716 l +f +0.8 g +1 J 0.1 w +489 522 m +473.5 558.5 461 568 V +487 552 490.5 534 V +490.5 524 489 522 V +f +536 514.5 m +509.5 569.5 491 593.5 V +534.5 556 539.5 529.5 V +540 524 l +537 526.5 l +536.5 517.5 536 514.5 V +f +592.5 563 m +530 622.5 528.5 625 V +589 559 592 551.5 V +590 560.5 592.5 563 V +f +404 519.5 m +423.5 571.5 442.5 549 V +457.5 539 457 536 V +453 542.5 435 542 V +416 545 404 519.5 V +f +594.5 647 m +549.5 675.5 542 677 v +530.193 679.361 591.5 648 596.5 637.5 C +598.5 640 594.5 647 V +f +0 g +0 J 1 w +443.801 540.399 m +464.201 542.399 471.001 549.199 V +475.401 545.599 l +493.001 583.999 l +496.601 578.799 l +511.001 593.599 510.201 601.599 v +509.401 609.599 523.001 595.599 y +522.201 607.199 529.401 600.399 V +527.001 615.999 535.401 607.999 V +524.864 638.156 547.401 612.399 v +553.001 605.999 548.601 612.799 y +522.601 660.799 544.201 646.399 v +546.201 669.199 545.001 673.599 v +543.801 677.999 541.801 700.4 537.001 705.6 c +532.201 710.8 537.401 712.4 543.001 707.2 C +531.801 731.2 545.001 719.2 V +541.401 734.4 537.001 737.2 V +531.401 754.4 546.601 743.6 V +542.201 756 539.001 759.2 V +527.401 786.8 534.601 782 V +539.001 778.4 l +532.201 792.4 538.601 788 v +545.001 783.6 545.001 784 y +523.801 817.2 544.201 799.6 V +536.042 813.518 532.601 820.4 V +513.801 840.8 528.201 834.4 V +533.001 832.8 l +524.201 842.8 516.201 844.4 v +508.201 846 518.601 852.4 525.001 850.4 c +531.401 848.4 547.001 840.8 y +559.801 822 563.801 821.6 V +543.801 829.2 549.801 821.2 V +564.201 807.2 557.001 807.6 V +551.001 800.4 555.801 791.6 V +537.342 809.991 552.201 784.4 v +559.001 768 l +534.601 792.8 545.801 770.8 V +563.001 747.2 565.001 746.8 v +567.001 746.4 571.401 737.6 y +567.001 739.6 l +572.201 730.8 l +561.001 742.8 567.001 729.6 V +572.601 715.2 l +552.201 737.2 565.801 707.6 V +549.401 712.8 558.201 695.6 V +556.601 679.599 557.001 674.399 v +557.401 669.199 558.601 640.799 554.201 632.799 c +549.801 624.799 560.201 605.599 562.201 601.599 c +564.201 597.599 567.801 586.799 559.001 595.999 c +550.201 605.199 554.601 599.599 556.601 590.799 c +558.601 581.999 564.601 566.399 563.801 560.799 C +562.601 559.599 559.401 563.199 V +544.601 585.999 546.201 571.599 V +545.001 563.599 541.801 554.799 V +538.601 543.999 538.601 552.799 V +535.401 569.599 532.601 561.999 v +529.801 554.399 526.201 548.399 523.401 545.999 c +520.601 543.599 515.401 566.399 514.201 555.999 C +502.201 568.399 497.401 551.999 V +485.801 535.599 l +485.401 547.999 484.201 541.999 V +454.201 535.999 443.801 540.399 V +f +409.401 897.2 m +397.801 905.2 393.801 904.8 v +389.801 904.4 421.401 913.6 462.601 886 C +467.401 883.2 471.001 883.6 V +474.201 881.2 471.401 877.6 V +462.601 868 473.801 856.8 V +492.201 850 486.601 858.8 V +497.401 854.8 499.801 850.8 v +502.201 846.8 501.001 850.8 y +494.601 858 488.601 863.2 V +483.401 865.2 480.601 873.6 v +477.801 882 475.401 892 479.801 895.2 C +475.801 890.8 476.601 894.8 v +477.401 898.8 481.001 902.4 482.601 902.8 c +484.201 903.2 500.601 919 507.401 919.4 C +498.201 918 495.201 919 v +492.201 920 465.601 931.4 459.601 932.6 C +442.801 939.2 454.801 937.2 V +490.601 933.4 508.801 920.2 V +501.601 928.6 483.201 935.6 V +461.001 948.2 425.801 943.2 V +408.001 940 400.201 938.2 V +397.601 938.8 397.001 939.2 v +396.401 939.6 384.6 948.6 357 941.6 C +340 937 331.4 932.2 V +316.2 931 312.6 927.8 V +294 913.2 292 912.4 v +290 911.6 278.6 904 277.8 903.6 C +302.4 910.2 304.8 912.6 v +307.2 915 324.6 917.6 327 916.2 c +329.4 914.8 337.8 915.4 328.2 914.8 C +403.801 900 404.601 898 v +405.401 896 409.401 897.2 y +f +0.2 0.55 0.85 0 k +480.801 906.4 m +470.601 913.8 468.601 913.8 v +466.601 913.8 454.201 924 450.001 923.6 c +445.801 923.2 433.601 933.2 406.201 925 C +405.601 927 409.201 927.8 V +415.601 930 416.001 930.6 V +436.201 934.8 443.401 931.2 V +452.601 928.6 458.801 922.4 V +470.001 919.2 473.201 920.2 V +482.001 918 482.401 916.2 V +488.201 913.2 486.401 910.6 V +486.801 909 480.801 906.4 V +f +468.33 908.509 m +469.137 907.877 470.156 907.779 470.761 906.97 c +470.995 906.656 470.706 906.33 470.391 906.233 c +469.348 905.916 468.292 906.486 467.15 905.898 c +466.748 905.691 466.106 905.873 465.553 906.022 c +463.921 906.463 462.092 906.488 460.401 905.8 C +458.416 906.929 456.056 906.345 453.975 907.346 c +453.917 907.373 453.695 907.027 453.621 907.054 c +450.575 908.199 446.832 907.916 444.401 910.2 C +441.973 910.612 439.616 911.074 437.188 911.754 c +435.37 912.263 433.961 913.252 432.341 914.084 c +430.964 914.792 429.507 915.314 427.973 915.686 c +426.11 916.138 424.279 916.026 422.386 916.546 c +422.293 916.571 422.101 916.227 422.019 916.254 c +421.695 916.362 421.405 916.945 421.234 916.892 c +419.553 916.37 418.065 917.342 416.401 917 C +415.223 918.224 413.495 917.979 411.949 918.421 c +408.985 919.269 405.831 917.999 402.801 919 C +406.914 920.842 411.601 919.61 415.663 921.679 c +417.991 922.865 420.653 921.763 423.223 922.523 c +423.71 922.667 424.401 922.869 424.801 922.2 C +424.935 922.335 425.117 922.574 425.175 922.546 c +427.625 921.389 429.94 920.115 432.422 919.049 c +432.763 918.903 433.295 919.135 433.547 918.933 c +435.067 917.717 437.01 917.82 438.401 916.6 C +440.099 917.102 441.892 916.722 443.621 917.346 c +443.698 917.373 443.932 917.032 443.965 917.054 c +445.095 917.802 446.25 917.531 447.142 917.227 c +447.48 917.112 448.143 916.865 448.448 916.791 c +449.574 916.515 450.43 916.035 451.609 915.852 c +451.723 915.834 451.908 916.174 451.98 916.146 c +453.103 915.708 454.145 915.764 454.801 914.6 C +454.936 914.735 455.101 914.973 455.183 914.946 c +456.21 914.608 456.859 913.853 457.96 913.612 c +458.445 913.506 459.057 912.88 459.633 912.704 c +462.025 911.973 463.868 910.444 466.062 909.549 c +466.821 909.239 467.697 909.005 468.33 908.509 c +f +391.696 922.739 m +389.178 924.464 386.81 925.57 384.368 927.356 c +384.187 927.489 383.827 927.319 383.625 927.441 c +382.618 928.05 381.73 928.631 380.748 929.327 c +380.209 929.709 379.388 929.698 378.88 929.956 c +376.336 931.248 373.707 931.806 371.2 933 C +371.882 933.638 373.004 933.394 373.6 934.2 C +373.795 933.92 374.033 933.636 374.386 933.827 c +376.064 934.731 377.914 934.884 379.59 934.794 c +381.294 934.702 383.014 934.397 384.789 934.125 c +385.096 934.078 385.295 933.555 385.618 933.458 c +387.846 932.795 390.235 933.32 392.354 932.482 c +393.945 931.853 395.515 931.03 396.754 929.755 c +397.006 929.495 396.681 929.194 396.401 929 C +396.789 929.109 397.062 928.903 397.173 928.59 c +397.257 928.351 397.257 928.049 397.173 927.81 c +397.061 927.498 396.782 927.397 396.408 927.346 c +395.001 927.156 396.773 928.536 396.073 928.088 c +394.8 927.274 395.546 925.868 394.801 924.6 C +394.521 924.794 394.291 925.012 394.401 925.4 C +394.635 924.878 394.033 924.588 393.865 924.272 c +393.48 923.547 392.581 922.132 391.696 922.739 c +f +359.198 915.391 m +356.044 916.185 352.994 916.07 349.978 917.346 c +349.911 917.374 349.688 917.027 349.624 917.054 c +348.258 917.648 347.34 918.614 346.264 919.66 c +345.351 920.548 343.693 920.161 342.419 920.648 c +342.095 920.772 341.892 921.284 341.591 921.323 c +340.372 921.48 339.445 922.429 338.4 923 C +340.736 923.795 343.147 923.764 345.609 924.148 c +345.722 924.166 345.867 923.845 346 923.845 c +346.136 923.845 346.266 924.066 346.4 924.2 C +346.595 923.92 346.897 923.594 347.154 923.848 c +347.702 924.388 348.258 924.198 348.798 924.158 c +348.942 924.148 349.067 923.845 349.2 923.845 c +349.336 923.845 349.467 924.156 349.6 924.156 c +349.736 924.155 349.867 923.845 350 923.845 c +350.136 923.845 350.266 924.066 350.4 924.2 C +351.092 923.418 351.977 923.972 352.799 923.793 c +353.837 923.566 354.104 922.418 355.178 922.12 c +359.893 920.816 364.03 918.671 368.393 916.584 c +368.7 916.437 368.91 916.189 368.8 915.8 C +369.067 915.8 369.38 915.888 369.57 915.756 c +370.628 915.024 371.669 914.476 372.366 913.378 c +372.582 913.039 372.253 912.632 372.02 912.684 c +367.591 913.679 363.585 914.287 359.198 915.391 c +f +345.338 871.179 m +343.746 872.398 343.162 874.429 342.034 876.221 c +341.82 876.561 342.094 876.875 342.411 876.964 c +342.971 877.123 343.514 876.645 343.923 876.443 c +345.668 875.581 347.203 874.339 349.2 874.2 C +351.19 871.966 355.45 871.581 355.457 868.2 c +355.458 867.341 354.03 868.259 353.6 867.4 C +351.149 868.403 348.76 868.3 346.38 869.767 c +345.763 870.148 346.093 870.601 345.338 871.179 c +f +317.8 923.756 m +317.935 923.755 324.966 923.522 324.949 923.408 c +324.904 923.099 317.174 922.05 316.81 922.22 c +316.646 922.296 309.134 919.866 309 920 C +309.268 920.135 317.534 923.756 317.8 923.756 c +f +0 g +333.2 914 m +318.4 912.2 314 911 v +309.6 909.8 291 902.2 288 900.2 C +274.6 894.8 257.6 874.8 V +265.2 878.2 267.4 881 V +281 893.6 280.8 891 V +293 899.6 292.4 897.4 V +316.8 908.6 314.8 905.4 V +336.4 910 335.4 908 V +354.2 903.6 351.4 903.4 V +345.6 902.2 352 898.6 V +348.6 894.2 343.2 898.2 v +337.8 902.2 340.8 900 335.8 899 C +333.2 898.2 328.6 902.2 V +323 906.8 314.2 903.2 V +283.6 890.6 281.6 890 V +278 887.2 275.6 883.6 V +269.8 879.2 266.8 877.8 V +254 866.2 252.8 864.8 V +249.4 859.6 248.6 859.2 V +255 863 257 865 V +271 875 276.4 875.8 V +280.8 878.8 281.6 880.2 V +296 889.4 300.2 889.4 V +309.4 884.2 311.8 891.2 V +317.6 893 323.2 891.8 V +326.4 894.4 325.6 896.6 V +327.2 898.4 328.2 894.6 V +331.6 891 336.4 893 V +340.4 893.2 338.4 890.8 V +334 887 322.2 886.8 V +309.8 886.2 293.4 878.6 V +263.6 868.2 254.4 857.8 V +248 849 242.6 847.8 V +236.8 847 230.8 839.6 V +240.6 845.4 249.6 845.4 V +253.6 847.8 249.8 844.2 V +246.2 836.6 247.8 831.2 V +247.2 826 246.4 824.4 V +238.6 811.6 238.6 809.2 v +238.6 806.8 239.8 797 240.2 796.4 c +240.6 795.8 239.2 798 243 795.6 c +246.8 793.2 249.6 791.6 250.4 788.8 c +251.2 786 248.4 794.2 248.2 796 c +248 797.8 243.8 805 244.6 807.4 C +245.6 806.4 246.4 805 V +245.8 805.6 246.4 809.2 V +247.2 814.4 248.6 817.6 v +250 820.8 252 824.6 252.4 825.4 c +252.8 826.2 252.8 832 254.2 829.4 C +257.6 826.8 l +254.8 829.4 257 831.6 V +256 837.2 257.8 839.8 V +264.8 848.2 266.4 849.2 v +268 850.2 266.6 849.8 y +272.6 854 266.8 852.4 V +262.8 850.8 259.8 850.8 V +252.2 848.8 256.2 853 v +260.2 857.2 270.2 862.6 274 862.4 C +274.8 860.8 l +286 863.2 l +284.8 862.4 l +284.6 862.6 288.8 863 v +293 863.4 298.8 862 300.2 863.8 c +301.6 865.6 305 866.6 304.6 865.2 c +304.2 863.8 304 861.8 y +309 867.6 308.4 865.4 v +307.8 863.2 299.6 858 298.2 851.8 C +308.6 860 l +312.2 863 l +315.8 860.8 316 862.4 v +316.2 864 320.8 869.8 322 869.6 c +323.2 869.4 325.2 872.2 325 869.6 c +324.8 867 332.4 861.6 y +335.6 863.4 337 862 v +338.4 860.6 342.6 881.8 y +367.6 892.4 l +411.201 895.8 l +394.201 902.6 l +333.2 914 l +f +0.2 0.55 0.85 0.5 K +1 J 2 w +351.4 715 m +336.4 731.8 328 734.4 V +314.6 741.2 290 733.4 v +S +324.8 735.8 m +299.6 743.8 284.2 739.6 V +265.8 737.6 257.4 723.8 v +S +321.2 737 m +304.2 744.2 289.4 746.4 V +272.8 749 256.2 741.8 V +244 735.8 238.6 725.6 v +S +322.2 736.6 m +306.8 747.6 305.8 749 V +298.8 760 285.8 760.4 V +264.4 759.6 247.2 751.6 v +S +0 G +0 J 1 w +320.895 745.593 m +322.437 744.13 349.4 715.2 Y +384.6 678.599 356.6 712.8 Y +349 717.6 339.8 736.4 Y +338.6 739.2 353.8 729.2 Y +357.8 728.4 371.4 709.2 Y +364.6 711.6 369.4 704.4 Y +372.2 702.4 392.601 686.799 Y +396.201 682.799 400.201 681.199 Y +414.201 686.399 407.801 673.199 Y +410.201 666.399 415.801 677.999 Y +427.001 694.8 410.601 692.399 Y +380.6 689.599 373.8 705.6 Y +371.4 708 380.2 705.6 Y +388.601 703.6 373 718 Y +375.4 718 384.6 711.2 Y +395.001 702 397.001 704 Y +415.001 712.8 425.401 705.2 Y +427.401 703.6 421.801 696.8 423.401 691.599 c +425.001 686.399 429.801 673.999 Y +427.401 672.399 427.801 661.599 Y +444.601 638.399 435.001 640.399 Y +419.401 640.799 434.201 633.199 Y +437.401 631.199 446.201 623.999 Y +443.401 625.199 441.801 619.999 Y +446.601 615.999 443.801 611.199 Y +437.801 609.999 436.601 605.999 Y +443.401 597.999 433.401 597.599 Y +437.001 593.199 432.201 581.199 Y +427.401 581.199 421.001 575.599 Y +423.401 570.799 413.001 565.199 Y +404.601 563.599 407.401 556.799 Y +399.401 550.799 397.001 534.799 Y +396.201 524.399 393.801 521.199 399.001 523.199 c +404.201 525.199 403.401 537.599 Y +398.601 553.199 441.401 569.199 Y +445.401 570.799 446.201 575.999 Y +448.201 575.599 457.001 567.999 Y +464.601 556.799 465.001 565.999 Y +466.201 569.599 464.601 575.599 Y +470.601 597.199 456.601 603.599 Y +446.601 637.199 460.601 628.799 Y +463.401 623.199 474.201 617.999 y +477.801 620.399 L +476.201 625.199 484.601 631.199 Y +487.401 624.799 493.401 632.799 Y +497.001 657.199 509.401 642.799 Y +513.401 641.599 514.601 648.399 Y +518.201 658.799 514.601 672.399 Y +518.201 672.799 527.801 666.799 Y +530.601 670.399 521.401 687.199 525.401 684.799 c +529.401 682.399 533.801 680.799 Y +534.601 682.799 524.601 695.199 Y +520.201 698 515.001 718.4 Y +522.201 714.8 512.201 730 Y +512.201 733.2 518.201 744.4 Y +517.401 751.2 518.201 750.8 Y +521.001 749.6 529.001 748 522.201 754.4 c +515.401 760.8 523.001 765.6 Y +527.401 768.4 513.801 768 Y +508.601 772.4 509.001 776.4 Y +517.001 774.4 502.601 788.8 500.201 792.4 c +497.801 796 507.401 801.2 Y +520.601 804.8 509.001 808 Y +489.401 807.6 500.201 818.4 Y +506.201 818 504.601 820.4 Y +499.401 821.6 489.801 828 Y +485.801 831.6 489.401 830.8 Y +506.201 829.6 477.401 840.8 Y +485.401 840.8 467.401 851.2 Y +465.401 852.8 462.201 860.4 Y +456.201 865.6 451.401 872.4 Y +451.001 876.8 446.201 881.6 Y +434.601 895.2 429.001 894.8 Y +414.201 898.4 409.001 897.6 Y +356.2 893.2 l +329.8 880.4 337.6 859.4 Y +344 851 353.2 854.8 Y +357.8 861 369.4 858.8 Y +389.801 855.6 387.201 859.2 Y +384.801 863.8 368.6 870 368.4 870.6 c +368.2 871.2 359.4 874.6 Y +356.4 875.8 352 885 Y +348.8 888.4 364.6 882.6 Y +363.4 881.6 370.8 877.6 Y +388.201 878.6 398.801 867.8 Y +409.601 851.2 409.801 859.4 Y +412.601 868.8 400.801 890 Y +401.201 892 409.401 885.4 Y +410.801 887.4 411.601 881.6 Y +411.801 879.2 415.601 871.2 Y +418.401 858.2 422.001 865.6 Y +426.601 856.2 L +428.001 853.6 422.001 846 Y +421.801 843.2 422.601 843.4 417.001 835.8 c +411.401 828.2 414.801 823.8 Y +413.401 817.2 422.201 817.6 Y +424.801 815.4 428.201 815.4 Y +430.001 813.4 432.401 814 Y +434.001 817.8 440.201 815.8 Y +441.601 818.2 449.801 818.6 Y +450.801 821.2 451.201 822.8 454.601 823.4 c +458.001 824 433.401 867 Y +439.801 867.8 431.601 880.2 Y +429.401 886.8 440.801 872.2 443.001 870.8 c +445.201 869.4 446.201 867.2 444.601 867.4 c +443.001 867.6 441.201 865.4 442.601 865.2 c +444.001 865 457.001 850 460.401 839.8 c +463.801 829.6 469.801 825.6 476.001 819.6 c +482.201 813.6 481.401 789.4 Y +481.001 780.6 487.001 770 Y +489.001 766.2 484.801 748 Y +482.801 745.8 484.201 745 Y +485.201 743.8 492.001 730.6 Y +490.201 730.8 493.801 727.2 Y +499.001 721.2 492.601 724.2 Y +486.601 725.8 493.601 716 Y +494.801 714.2 485.801 718.8 Y +476.601 719.4 488.201 712.2 Y +496.801 705 485.401 709.4 Y +480.801 711.2 484.001 704.4 Y +487.201 702.8 504.401 695.8 Y +504.801 691.999 501.801 686.999 Y +502.201 682.999 500.001 679.599 Y +498.801 671.399 498.201 670.599 Y +494.001 670.399 486.601 656.599 Y +484.801 653.999 474.601 641.999 Y +472.601 634.999 454.601 642.199 Y +448.001 638.799 450.001 642.199 Y +449.601 644.399 454.401 650.399 Y +461.401 652.999 458.801 663.799 Y +462.801 665.199 451.601 667.999 451.801 669.199 c +452.001 670.399 457.801 671.799 Y +465.801 673.799 461.401 676.199 Y +460.801 680.199 463.801 685.799 Y +475.401 686.599 463.801 702.8 Y +453.001 710.4 452.001 716.2 Y +464.601 724.4 456.401 736.8 456.601 740.4 c +456.801 744 458.001 765.6 Y +456.001 771.8 453.001 785.4 Y +455.201 790.6 462.601 803.2 Y +465.401 807.4 474.201 812.2 472.001 815.2 c +469.801 818.2 462.001 816.4 Y +454.201 817.8 454.801 812.6 Y +453.201 811.6 452.401 806.6 Y +451.68 798.667 442.801 792.4 Y +431.601 786.2 440.801 782.2 Y +446.801 775.6 437.001 775.4 Y +426.001 777.2 434.201 767 Y +445.001 754.2 442.001 751.4 Y +431.801 750.4 444.401 741.2 y +443.601 743.2 443.801 741.4 v +444.001 739.6 447.001 735.4 447.801 733.4 c +448.601 731.4 444.601 731.2 Y +445.201 721.6 429.801 725.8 y +429.801 725.8 428.201 725.6 v +426.601 725.4 415.401 726.2 409.601 728.4 c +403.801 730.6 397.001 730.6 y +393.001 728.8 385.4 729 v +377.8 729.2 369.8 726.4 Y +365.4 726.8 374 731.2 374.2 731 c +374.4 730.8 380 736.4 372 735.8 c +350.203 734.165 339.4 744.4 Y +337.4 745.8 334.8 748.6 Y +324.8 750.6 336.2 736.2 Y +337.4 734.8 336 733.8 Y +335.2 735.4 327.4 740.8 Y +324.589 741.773 323.226 743.107 320.895 745.593 C +f +0.2 0.55 0.85 0.5 k +1 J 2 w +297 757.2 m +308.6 751.6 311.2 748.8 v +313.8 746 327.8 734.6 y +322.4 736.6 319.8 738.4 v +317.2 740.2 306.4 748.4 y +302.6 754.4 297 757.2 v +f +0.4 0.2 0.8 0 k +0 J 1 w +238.991 788.397 m +239.328 788.545 238.804 791.257 238.6 791.8 c +237.578 794.526 228.6 796 y +228.373 794.635 228.318 793.039 228.424 791.401 c +233.292 785.882 238.991 788.397 v +f +0.4 0.2 0.8 0.2 k +238.991 788.597 m +238.542 788.439 238.976 791.331 238.8 791.8 c +237.778 794.526 228.6 796.1 y +228.373 794.735 228.318 793.139 228.424 791.501 c +232.692 786.382 238.991 788.597 v +f +0 g +234.6 788.454 m +233.975 788.454 233.469 789.594 233.469 791 c +233.469 792.405 233.975 793.545 234.6 793.545 c +235.225 793.545 235.732 792.405 235.732 791 c +235.732 789.594 235.225 788.454 234.6 788.454 c +f +234.6 791 m +F +189 690.399 m +183.4 680.399 208.2 686.399 V +222.2 687.599 224.6 689.999 V +225.8 689.199 234.166 686.266 237 685.599 c +243.8 683.999 252.2 694 y +256.8 704.5 259.6 704.5 v +262.4 704.5 259.2 702.9 y +252.6 692.799 253 691.199 V +247.8 671.199 231.8 670.399 V +215.65 669.449 217 663.599 V +225.8 665.999 228.2 663.599 V +239 663.999 231 657.599 V +224.2 645.999 l +224.34 642.081 214.2 645.599 v +204.4 648.999 194.1 661.899 y +178.15 676.449 189 690.399 V +f +0.1 0.4 0.4 0 k +187.8 686.399 m +185.8 676.799 222.6 687.199 V +227 687.199 229.4 686.399 v +231.8 685.599 243.8 682.799 245.8 683.999 C +238.6 670.399 227 671.999 V +213.8 670.399 214.2 665.599 V +218.2 658.399 223 655.999 V +225.8 653.599 225.4 650.399 v +225 647.199 222.2 645.599 220.2 644.799 c +218.2 643.999 215 647.199 213.4 647.199 c +211.8 647.199 203.4 653.599 199 658.399 c +194.6 663.199 186.2 675.199 186.6 677.999 c +187 680.799 187.8 686.399 Y +f +0.1 0.4 0.4 0.2 k +191 668.949 m +193.6 664.999 196.8 660.799 199 658.399 c +203.4 653.599 211.8 647.199 213.4 647.199 c +215 647.199 218.2 643.999 220.2 644.799 c +222.2 645.599 225 647.199 225.4 650.399 c +225.8 653.599 223 655.999 Y +219.934 657.532 217.194 661.024 215.615 663.347 C +215.8 660.799 210.6 661.599 v +205.4 662.399 200.2 665.199 198.6 668.399 c +197 671.599 194.6 673.999 196.2 670.399 c +197.8 666.799 200.2 663.199 201.8 662.799 c +203.4 662.399 203 661.199 200.6 661.599 c +198.2 661.999 195.4 662.399 191 667.599 c +F +0.1 0.55 0.85 0.3 k +188.4 689.999 m +190.2 703.6 191.4 707.6 V +190.6 714.4 193 718.6 v +195.4 722.8 197.4 729 200.4 734.4 c +203.4 739.8 203.6 743.8 207.6 745.4 c +211.6 747 217.6 755.6 220.4 756.6 c +223.2 757.6 223 756.8 y +229.8 771.6 243.4 767.6 V +227.2 770.4 243 779.8 V +238.2 778.7 241.5 785.7 v +243.701 790.368 243.2 783.6 232.2 771.8 C +227.2 763.2 222 760.2 v +216.8 757.2 204.8 750.2 203.6 746.4 c +202.4 742.6 199.2 736.8 197.2 735.2 c +195.2 733.6 192.4 729.4 192 726 C +190.8 722 189.4 720.8 v +188 719.6 187.8 716.4 187.8 714.4 c +187.8 712.4 185.8 709.6 186 707.2 C +186.8 688.199 186.4 686.199 V +188.4 689.999 L +f +1 g +179.8 685.399 m +177.8 686.799 173.4 680.799 V +180.7 647.799 180.7 646.399 V +181.8 648.499 180.5 655.699 v +179.2 662.899 178.3 675.599 y +179.8 685.399 l +f +0.1 0.55 0.85 0.3 k +201.4 746 m +183.8 742.8 184.2 713.6 V +183.4 688.799 l +182.2 714.4 181 716 v +179.8 717.6 183.8 728.8 180.6 722.8 C +166.6 708.8 174.6 687.599 V +176.1 684.299 173.1 688.899 V +168.5 701.5 169.6 707.9 V +169.8 710.1 171.7 712.9 V +180.3 724.6 183 726.9 V +184.8 741.3 200.2 746.5 V +205.9 748.8 201.4 746 V +f +0 g +340.8 812.2 m +341.46 812.554 341.451 813.524 342.031 813.697 c +343.18 814.041 343.344 815.108 343.862 815.892 c +344.735 817.211 344.928 818.744 345.51 820.235 c +345.782 820.935 345.809 821.89 345.496 822.55 c +344.322 825.031 343.62 827.48 342.178 829.906 c +341.91 830.356 341.648 831.15 341.447 831.748 c +340.984 833.132 339.727 834.123 338.867 835.443 c +338.579 835.884 339.104 836.809 338.388 836.893 c +337.491 836.998 336.042 837.578 335.809 836.552 c +335.221 833.965 336.232 831.442 337.2 829 C +336.418 828.308 336.752 827.387 336.904 826.62 c +337.614 823.014 336.416 819.662 335.655 816.188 c +335.632 816.084 335.974 815.886 335.946 815.824 c +334.724 813.138 333.272 810.693 331.453 808.312 c +330.695 807.32 329.823 806.404 329.326 805.341 c +328.958 804.554 328.55 803.588 328.8 802.6 C +325.365 799.82 323.115 795.975 320.504 792.129 c +320.042 791.449 320.333 790.24 320.884 789.971 c +321.697 789.573 322.653 790.597 323.123 791.443 c +323.512 792.141 323.865 792.791 324.356 793.434 c +324.489 793.609 324.31 794.028 324.445 794.149 c +327.078 796.496 328.747 799.432 331.2 801.8 C +333.15 802.129 334.687 803.127 336.435 804.14 c +336.743 804.319 337.267 804.07 337.557 804.265 c +339.31 805.442 339.308 807.478 339.414 809.388 c +339.464 810.272 339.66 811.589 340.8 812.2 c +f +331.959 816.666 m +332.083 816.743 331.928 817.166 332.037 817.382 c +332.199 817.706 332.602 817.894 332.764 818.218 c +332.873 818.434 332.71 818.814 332.846 818.956 c +335.179 821.403 335.436 824.427 334.4 827.4 C +335.424 828.02 335.485 829.282 335.06 830.129 c +334.207 831.829 334.014 833.755 333.039 835.298 c +332.237 836.567 330.659 837.811 329.288 836.508 c +328.867 836.108 328.546 835.321 328.824 834.609 c +328.888 834.446 329.173 834.3 329.146 834.218 c +329.039 833.894 328.493 833.67 328.487 833.398 c +328.457 831.902 327.503 830.391 328.133 829.062 c +328.905 827.433 329.724 825.576 330.4 823.8 C +329.166 821.684 330.199 819.235 328.446 817.358 c +328.31 817.212 328.319 816.826 328.441 816.624 c +328.733 816.138 329.139 815.732 329.625 815.44 c +329.827 815.319 330.175 815.317 330.375 815.441 c +330.953 815.803 331.351 816.29 331.959 816.666 c +f +394.771 826.977 m +396.16 825.185 396.45 822.39 394.401 821 C +394.951 817.691 398.302 819.67 400.401 820.2 C +400.292 820.588 400.519 820.932 400.802 820.937 c +401.859 820.952 402.539 821.984 403.601 821.8 C +404.035 823.357 405.673 824.059 406.317 825.439 c +408.043 829.134 407.452 833.407 404.868 836.653 c +404.666 836.907 404.883 837.424 404.759 837.786 c +404.003 839.997 401.935 840.312 400.001 841 C +398.824 844.875 398.163 848.906 396.401 852.6 C +394.787 852.85 394.089 854.589 392.752 855.309 c +391.419 856.028 390.851 854.449 390.892 853.403 c +390.899 853.198 391.351 852.974 391.181 852.609 c +391.105 852.445 390.845 852.334 390.845 852.2 c +390.846 852.065 391.067 851.934 391.201 851.8 C +390.283 850.98 388.86 850.503 388.565 849.358 c +387.611 845.648 390.184 842.523 391.852 839.322 c +392.443 838.187 391.707 836.916 390.947 835.708 c +390.509 835.013 390.617 833.886 390.893 833.03 c +391.645 830.699 393.236 828.96 394.771 826.977 c +f +357.611 808.591 m +356.124 806.74 352.712 804.171 355.629 802.243 c +355.823 802.114 356.193 802.11 356.366 802.244 c +358.387 803.809 360.39 804.712 362.826 805.294 c +362.95 805.323 363.224 804.856 363.593 805.017 c +365.206 805.72 367.216 805.662 368.4 807 C +372.167 806.776 375.732 807.892 379.123 809.2 c +380.284 809.648 381.554 810.207 382.755 810.709 c +384.131 811.285 385.335 812.213 386.447 813.354 c +386.58 813.49 386.934 813.4 387.201 813.4 C +387.161 814.263 388.123 814.39 388.37 815.012 c +388.462 815.244 388.312 815.64 388.445 815.742 c +390.583 817.372 391.503 819.39 390.334 821.767 c +390.049 822.345 389.8 822.963 389.234 823.439 c +388.149 824.35 387.047 823.496 386 823.8 C +385.841 823.172 385.112 823.344 384.726 823.146 c +383.867 822.707 382.534 823.292 381.675 822.854 c +380.313 822.159 379.072 821.99 377.65 821.613 c +377.338 821.531 376.56 821.627 376.4 821 C +376.266 821.134 376.118 821.368 376.012 821.346 c +374.104 820.95 372.844 820.736 371.543 819.044 c +371.44 818.911 370.998 819.09 370.839 818.955 c +369.882 818.147 369.477 816.913 368.376 816.241 c +368.175 816.118 367.823 816.286 367.629 816.157 c +366.983 815.726 366.616 815.085 365.974 814.638 c +365.645 814.409 365.245 814.734 365.277 814.99 c +365.522 816.937 366.175 818.724 365.6 820.6 C +367.677 823.12 370.194 825.069 372 827.8 C +372.015 829.966 372.707 832.112 372.594 834.189 c +372.584 834.382 372.296 835.115 372.17 835.462 c +371.858 836.316 372.764 837.382 371.92 838.106 c +370.516 839.309 369.224 838.433 368.4 837 C +366.562 836.61 364.496 835.917 362.918 837.151 c +361.911 837.938 361.333 838.844 360.534 839.9 c +359.549 841.202 359.884 842.638 359.954 844.202 c +359.96 844.33 359.645 844.466 359.645 844.6 c +359.646 844.735 359.866 844.866 360 845 C +359.294 845.626 359.019 846.684 358 847 C +358.305 848.092 357.629 848.976 356.758 849.278 c +354.763 849.969 353.086 848.057 351.194 847.984 c +350.68 847.965 350.213 849.003 349.564 849.328 c +349.132 849.544 348.428 849.577 348.066 849.311 c +347.378 848.807 346.789 848.693 346.031 848.488 c +344.414 848.052 343.136 846.958 341.656 846.103 c +340.171 845.246 339.216 843.809 338.136 842.489 c +337.195 841.337 337.059 838.923 338.479 838.423 c +340.322 837.773 341.626 840.476 343.592 840.15 c +343.904 840.099 344.11 839.788 344 839.4 C +344.389 839.291 344.607 839.52 344.8 839.8 C +345.658 838.781 346.822 838.444 347.76 837.571 c +348.73 836.667 350.476 837.085 351.491 836.088 c +353.02 834.586 352.461 831.905 354.4 830.6 C +353.814 829.287 353.207 828.01 352.872 826.583 c +352.59 825.377 353.584 824.18 354.795 824.271 c +356.053 824.365 356.315 825.124 356.8 826.2 C +357.067 825.933 357.536 825.636 357.495 825.42 c +357.038 823.033 356.011 821.04 355.553 818.609 c +355.494 818.292 355.189 818.09 354.8 818.2 C +354.332 814.051 350.28 811.657 347.735 808.492 c +347.332 807.99 347.328 806.741 347.737 806.338 c +349.14 804.951 351.1 806.497 352.8 807 C +353.013 808.206 353.872 809.148 355.204 809.092 c +355.46 809.082 355.695 809.624 356.019 809.754 c +356.367 809.892 356.869 809.668 357.155 809.866 c +358.884 811.061 360.292 812.167 362.03 813.356 c +362.222 813.487 362.566 813.328 362.782 813.436 c +363.107 813.598 363.294 813.985 363.617 814.17 c +363.965 814.37 364.207 814.08 364.4 813.8 C +363.754 813.451 363.75 812.494 363.168 812.292 c +362.393 812.024 361.832 811.511 361.158 811.064 c +360.866 810.871 360.207 811.119 360.103 810.94 c +359.505 809.912 358.321 809.474 357.611 808.591 c +f +302.2 858 m +292.962 860.872 281.8 835.2 V +279.4 830 277 828 v +274.6 826 263.4 822.4 261.4 818.4 C +251 802.4 L +265.8 818.4 269 820.8 V +277 829.2 273.8 822.4 V +259.8 811.6 261 802.4 V +255.4 788 254.6 786 V +270.6 818 273 819.2 v +275.4 820.4 276.6 820.4 275.4 816.8 c +274.2 813.2 273.8 796.8 271 794.8 C +279 815.2 278.2 818.4 V +281.4 822 283.8 816.8 V +282.6 800.8 l +287 788.8 l +284.6 800 286.2 815.6 V +284.2 826 288.2 820.4 v +292.2 814.8 301.8 808.8 301.8 804 C +296.6 821.6 287.4 826.4 V +283.4 820.4 l +282.2 822.4 l +278.6 823.2 283 830 v +287.4 836.8 287 837.6 y +293.4 830.4 295 830.4 V +308.2 838 309.4 813.6 V +316.2 828 307 834.8 V +292.2 836.8 293.4 842 V +300.6 854.4 L +304.2 859.6 302.6 856.8 y +F +282.2 841.6 m +269.4 841.6 266.2 836.4 V +259 826.8 l +276.2 836.8 280.2 838 v +284.2 839.2 282.2 841.6 Y +f +242.2 835.2 m +240.2 834 239.8 831.2 v +239.4 828.4 237 828 237.8 825.2 c +238.6 822.4 240.6 820 240.6 824 c +240.6 828 242.2 830 243 831.2 c +243.8 832.4 245.4 836.8 242.2 835.2 c +f +233.4 774 m +225 778 221.8 781.6 v +218.6 785.2 219.052 780.034 214.2 780.4 c +208.353 780.841 209.4 796.8 y +205.4 789.2 l +204.2 774.8 212.2 777.2 v +216.107 778.372 217.4 776.8 215.8 776 c +214.2 775.2 221.4 774.8 218.6 773.2 c +215.8 771.6 230.2 776.8 227.8 766.4 C +233.4 774 L +f +220.8 759.6 m +205.4 755.2 201.8 764.8 V +197 762.4 199.2 759.4 v +201.4 756.4 202.6 756 y +208 754.8 207.4 754 v +206.8 753.2 204.4 749.8 y +214.6 755.8 220.8 759.6 v +f +1 g +449.201 681.399 m +448.774 679.265 447.103 678.464 445.201 677.799 C +443.284 678.757 440.686 681.863 438.801 679.799 C +438.327 680.279 437.548 680.339 437.204 681.001 c +436.739 681.899 437.011 682.945 436.669 683.743 c +436.124 685.015 435.415 686.381 435.601 687.799 C +437.407 688.511 438.002 690.417 437.528 692.18 c +437.459 692.437 437.03 692.634 437.23 692.983 c +437.416 693.306 437.734 693.533 438.001 693.8 C +437.866 693.665 437.721 693.432 437.61 693.452 c +437 693.558 437.124 694.195 437.254 694.582 c +437.839 696.328 439.853 696.592 441.201 695.4 C +441.457 695.965 441.966 695.771 442.401 695.8 C +442.351 696.379 442.759 696.906 442.957 697.326 c +443.475 698.424 445.104 697.318 445.901 697.93 c +446.977 698.755 448.04 699.454 449.118 698.851 c +450.927 697.838 452.636 696.626 453.835 694.885 c +454.41 694.051 454.65 692.77 454.592 691.812 c +454.554 691.165 453.173 691.517 452.83 690.588 c +452.185 688.84 454.016 688.321 454.772 686.983 c +454.97 686.634 454.706 686.33 454.391 686.232 c +453.98 686.104 453.196 686.293 453.334 685.84 c +454.306 682.647 451.55 681.969 449.201 681.399 C +f +439.6 661.799 m +439.593 663.537 437.992 665.293 439.201 666.999 C +439.336 666.865 439.467 666.644 439.601 666.644 c +439.736 666.644 439.867 666.865 440.001 666.999 C +441.496 664.783 445.148 663.855 445.006 661.009 c +444.984 660.562 443.897 659.644 444.801 658.999 C +442.988 657.651 442.933 655.281 442.001 653.399 C +440.763 653.685 439.551 654.048 438.401 654.599 C +438.753 656.085 438.636 657.769 439.456 659.089 c +439.89 659.787 439.603 660.866 439.6 661.799 c +f +0.8 g +273.4 670.799 m +256.542 660.663 270.6 675.999 v +279.4 685.599 289.4 691.199 y +299.8 695.6 303.4 696.8 v +307 698 322.2 703.2 325.4 703.6 c +328.6 704 338.2 708 345 704 c +351.8 700 359.8 695.6 y +343.4 704 339.8 701.6 v +336.2 699.2 329 699.6 323 696.4 C +308.2 691.999 305 689.999 v +301.8 687.999 291.4 676.399 289.8 677.199 c +288.2 677.999 290.2 678.399 291.4 681.199 c +292.6 683.999 290.6 685.599 282.6 679.199 c +274.6 672.799 273.4 670.799 Y +f +0 g +280.805 676.766 m +282.215 689.806 290.693 688.141 V +298.919 692.311 301.641 694.279 V +309.78 695.981 311.09 696.598 v +329.569 705.298 344.288 700.779 344.835 701.899 c +345.381 703.018 365.006 695.901 368.615 691.815 c +369.006 691.372 358.384 697.412 348.686 699.303 c +340.413 700.917 318.811 699.056 307.905 693.52 c +304.932 692.011 295.987 686.227 293.456 686.338 c +290.925 686.45 280.805 676.766 Y +f +0.8 g +277 651.199 m +261.8 653.599 278.6 655.199 V +296.6 657.199 300.6 662.399 V +314.2 671.599 317 671.999 v +319.8 672.399 349.8 679.599 350.2 681.999 c +350.6 684.399 356.2 684.399 357.8 683.599 c +359.4 682.799 358.6 681.599 355.8 680.799 c +353 679.999 321.8 663.599 315.4 662.399 c +309 661.199 297.4 653.599 292.6 652.399 c +287.8 651.199 277 651.199 Y +f +0 g +296.52 658.597 m +287.938 659.426 296.539 660.245 V +305.355 663.669 307.403 666.332 V +314.367 671.043 315.8 671.247 v +317.234 671.452 331.194 675.139 331.399 676.367 c +331.604 677.596 365.67 690.177 370.09 686.987 c +373.001 684.886 363.1 686.563 353.466 682.153 c +352.111 681.533 318.258 666.946 314.981 666.332 c +311.704 665.717 305.765 661.826 303.307 661.212 c +300.85 660.597 296.52 658.597 Y +f +288.6 656.399 m +293.8 656.799 292.6 655.199 v +291.4 653.599 289 654.399 y +288.6 656.399 l +f +281.4 654.799 m +286.6 655.199 285.4 653.599 v +284.2 651.999 281.8 652.799 y +281.4 654.799 l +f +271 653.199 m +276.2 653.599 275 651.999 v +273.8 650.399 271.4 651.199 y +271 653.199 l +f +263.4 652.399 m +268.6 652.799 267.4 651.199 v +266.2 649.599 263.8 650.399 y +263.4 652.399 l +f +301.8 691.999 m +306.2 691.999 305 690.399 v +303.8 688.799 300.6 689.199 y +301.8 691.999 l +f +291.8 686.399 m +298.306 688.54 295.8 685.199 v +294.6 683.599 292.2 684.399 y +291.8 686.399 l +f +280.6 681.599 m +285.8 681.999 284.6 680.399 v +283.4 678.799 281 679.599 y +280.6 681.599 l +f +273 675.599 m +278.2 675.999 277 674.399 v +275.8 672.799 273.4 673.599 y +273 675.599 l +f +266.2 670.799 m +271.4 671.199 270.2 669.599 v +269 667.999 266.6 668.799 y +266.2 670.799 l +f +305.282 664.402 m +312.203 664.934 310.606 662.805 v +309.009 660.675 305.814 661.74 y +305.282 664.402 l +f +315.682 669.202 m +322.603 669.734 321.006 667.605 v +319.409 665.475 316.214 666.54 y +315.682 669.202 l +f +326.482 673.602 m +333.403 674.134 331.806 672.005 v +330.209 669.875 327.014 670.94 y +326.482 673.602 l +f +336.882 678.402 m +343.803 678.934 342.206 676.805 v +340.609 674.675 337.414 675.74 y +336.882 678.402 l +f +309.282 696.402 m +316.203 696.934 314.606 694.805 v +313.009 692.675 309.014 692.94 y +309.282 696.402 l +f +319.282 699.602 m +326.203 700.134 324.606 698.005 v +323.009 695.875 318.614 696.14 y +319.282 699.602 l +f +296.6 659.599 m +301.8 659.999 300.6 658.399 v +299.4 656.799 297 657.599 y +296.6 659.599 l +f +0.1 0.55 0.85 0.3 k +223.4 758.8 m +219 750 218.6 746.8 V +219.4 755.6 220.6 757.6 v +221.8 759.6 223.4 758.8 y +f +205 744.8 m +201.8 730.4 202.2 727.6 V +201 739.2 201.4 740.4 v +201.8 741.6 205 744.8 y +f +0.8 g +225.8 819.4 m +225.6 816.2 l +223.4 816 l +237.6 803.4 238.2 795.8 V +239 804 225.8 819.4 V +f +0 g +229.784 818.135 m +229.353 818.551 229.572 819.296 229.164 819.556 c +228.355 820.072 230.462 820.129 230.234 820.845 c +229.851 822.051 230.038 822.072 229.916 823.348 c +229.859 823.946 230.447 825.486 230.832 825.926 c +232.278 827.578 230.954 830.51 232.594 832.061 c +232.898 832.35 233.274 832.902 233.559 833.32 c +234.218 834.283 235.402 834.771 236.352 835.599 c +236.67 835.875 236.469 836.702 237.038 836.61 c +237.752 836.495 238.993 836.625 238.948 835.784 c +238.835 833.664 237.506 831.944 236.226 830.276 C +236.677 829.572 236.219 828.937 235.935 828.38 c +234.6 825.76 234.789 822.919 234.615 820.079 c +234.61 819.994 234.303 819.916 234.311 819.863 c +234.664 817.528 235.248 815.329 236.127 813.1 c +236.493 812.17 236.964 811.275 237.114 810.348 c +237.225 809.662 237.328 808.829 236.92 808.124 C +238.955 805.234 237.646 802.583 238.815 799.052 c +239.022 798.427 240.714 796.513 240.251 796.674 c +237.738 797.545 237.626 797.943 237.449 798.696 c +237.303 799.319 236.973 800.696 236.736 801.298 c +236.672 801.462 236.501 803.346 236.423 803.468 c +234.91 805.85 236.268 805.674 234.898 808.032 C +233.47 808.712 232.504 809.816 231.381 810.978 c +231.183 811.182 232.326 811.906 232.145 812.119 c +231.053 813.408 229.9 814.175 230.236 815.668 c +230.391 816.358 230.528 817.415 229.784 818.135 c +f +226.2 816.4 m +226.6 809.6 229 808 v +231.4 806.4 230.2 807.2 227 808.4 c +223.8 809.6 225 810.4 y +222.2 810 224.6 808 v +227 806 230.6 803.6 229 803.6 c +227.4 803.6 219.8 807.6 219.8 810.4 c +219.8 813.2 218.8 817.3 y +219.9 818.1 224.7 818 V +226.1 817.3 226.2 816.4 V +f +1 g +1 J 0.1 w +225.4 797.8 m +216.88 800.591 198.4 797.2 V +207.431 799.278 226.2 797 v +236.5 795.75 225.4 797.8 Y +b +227.498 797.871 m +219.252 801.389 200.547 799.608 V +209.725 800.897 228.226 797.005 v +238.38 794.869 227.498 797.871 Y +b +229.286 797.778 m +221.324 801.899 202.539 801.514 V +211.787 802.118 229.948 796.86 v +239.914 793.975 229.286 797.778 Y +b +230.556 797.555 m +223.732 801.862 206.858 802.96 V +215.197 802.79 231.078 796.681 v +239.794 793.328 230.556 797.555 Y +b +345.84 787.039 m +344.91 786.395 345.124 787.576 v +345.339 788.757 373.547 801.927 377.161 801.677 C +346.913 788.471 345.84 787.039 V +b +342.446 786.4 m +341.57 785.685 341.691 786.879 v +341.812 788.073 368.899 803.418 372.521 803.452 C +343.404 787.911 342.446 786.4 V +b +339.16 785.025 m +338.332 784.253 338.374 785.453 v +338.416 786.652 358.233 802.149 368.045 804.023 C +350.015 795.896 339.16 785.025 V +b +336.284 783.162 m +335.539 782.468 335.577 783.547 v +335.615 784.627 353.449 798.574 362.28 800.26 C +346.054 792.946 336.284 783.162 V +b +0.8 g +0 J 1 w +304.6 635.199 m +289.4 637.599 306.2 639.199 V +324.2 641.199 328.2 646.399 V +341.8 655.599 344.6 655.999 v +347.4 656.399 363.8 659.999 364.2 662.399 c +364.6 664.799 370.6 667.199 372.2 666.399 c +373.8 665.599 373.8 656.399 371 655.599 c +368.2 654.799 349.4 647.599 343 646.399 c +336.6 645.199 325 637.599 320.2 636.399 c +315.4 635.199 304.6 635.199 Y +f +0 g +377.6 672.599 m +374.6 670.999 373.4 668.399 V +367 657.799 352.8 654.599 V +329.8 645.599 322 643.599 V +308.6 638.599 301.2 639.399 V +294.2 639.199 300.4 637.599 V +320.6 639.599 324 641.399 V +339.6 646.599 342.6 649.199 v +345.6 651.799 363.8 656.799 366 658.799 c +368.2 660.799 378 669.199 377.6 672.599 C +f +318.882 641.089 m +324.111 641.315 322.958 639.766 v +321.805 638.216 319.357 639.09 y +318.882 641.089 l +f +311.68 639.737 m +316.908 639.963 315.756 638.414 v +314.603 636.864 312.155 637.737 y +311.68 639.737 l +f +301.251 638.489 m +306.48 638.716 305.327 637.166 v +304.174 635.617 301.726 636.49 y +301.251 638.489 l +f +293.617 637.945 m +298.846 638.171 297.693 636.622 v +296.54 635.072 294.092 635.946 y +293.617 637.945 l +f +335.415 648.487 m +342.375 648.788 340.84 646.726 v +339.306 644.664 336.047 645.826 y +335.415 648.487 l +f +345.73 652.912 m +351.689 656.213 351.155 651.151 v +350.885 648.595 346.362 650.251 y +345.73 652.912 l +f +354.862 655.726 m +362.021 659.427 360.287 653.965 v +359.509 651.515 355.493 653.065 y +354.862 655.726 l +f +364.376 660.551 m +368.735 665.452 369.801 658.79 v +370.207 656.252 365.008 657.89 y +364.376 660.551 l +f +326.834 644.003 m +332.062 644.23 330.91 642.68 v +329.757 641.131 327.308 642.004 y +326.834 644.003 l +f +1 g +1 J 0.1 w +362.434 765.397 m +361.708 764.732 361.707 765.803 v +361.707 766.873 379.191 780.137 388.034 781.521 C +371.935 774.792 362.434 765.397 V +b +0 g +0 J 1 w +365.4 701.6 m +387.401 679.199 396.601 675.599 V +405.801 664.399 401.801 638.399 V +398.601 630.799 395.401 651.599 V +398.601 676.799 387.401 660.799 V +379 670.699 385.4 670.399 V +388.601 668.399 389.001 669.999 v +389.401 671.599 381.4 685.199 364.2 699.6 c +347 714 365.4 701.6 Y +f +1 g +1 J 0.1 w +307 662.799 m +306.8 664.599 308.6 663.799 v +310.4 662.999 404.601 656.799 436.201 632.799 C +391.001 655.999 307 662.799 V +b +317.4 667.199 m +317.2 668.999 319 668.199 v +320.8 667.399 457.401 668.399 481.001 635.999 C +459.001 661.199 317.4 667.199 V +b +329 671.199 m +328.8 672.999 330.6 672.199 v +332.4 671.399 505.801 684.399 529.401 651.999 C +519.801 677.599 329 671.199 V +b +339 675.999 m +338.8 677.799 340.6 676.999 v +342.4 676.199 464.601 714.8 488.201 682.399 C +474.801 707 339 675.999 V +b +281 653.199 m +280.8 654.999 282.6 654.199 v +284.4 653.399 302.2 651.199 304.2 612.399 C +297 654.399 281 653.199 V +b +272.2 651.599 m +272 653.399 273.8 652.599 v +275.6 651.799 289.8 656.399 287 617.599 C +288.2 652.799 272.2 651.599 V +b +264.2 651.199 m +264 652.999 265.8 652.199 v +267.6 651.399 283 650.799 270.6 628.399 C +280.2 652.399 264.2 651.199 V +b +311.526 695.535 m +311.082 693.536 312.631 694.753 v +328.699 707.378 361.141 766.28 416.826 771.914 C +378.518 784.024 311.526 695.535 V +b +322.726 697.335 m +321.363 698.528 323.231 699.153 v +325.099 699.778 437.541 772.28 476.826 764.314 C +449.719 771.824 322.726 697.335 V +b +301.885 691.233 m +301.376 689.634 303.087 690.61 v +312.062 695.73 315.677 752.941 359.254 754.196 C +326.843 768.91 301.885 691.233 V +b +281.962 680.207 m +280.885 678.921 282.838 679.175 v +293.084 680.507 314.489 721.778 358.928 716.699 C +326.962 731.045 281.962 680.207 V +b +293.2 686.333 m +292.389 684.864 294.258 685.489 v +304.057 688.763 317.141 733.375 361.729 736.922 C +327.603 744.865 293.2 686.333 V +b +274.922 675.088 m +274.049 674.046 275.631 674.252 v +283.93 675.331 301.268 708.76 337.264 704.646 C +311.371 716.266 274.922 675.088 V +b +267.323 669.179 m +266.318 668.134 267.909 668.252 v +272.077 668.561 302.715 701.64 321.183 686.138 C +309.168 704.861 267.323 669.179 V +b +336.855 701.102 m +335.654 702.457 337.586 702.842 v +339.518 703.226 460.221 760.939 498.184 748.073 C +472.243 758.947 336.855 701.102 V +b +303.4 636.799 m +303.2 638.599 305 637.799 v +306.8 636.999 322.2 636.399 309.8 613.999 C +319.4 637.999 303.4 636.799 V +b +313.8 638.399 m +313.6 640.199 315.4 639.399 v +317.2 638.599 335 636.399 337 597.599 C +329.8 639.599 313.8 638.399 V +b +320.6 639.999 m +320.4 641.799 322.2 640.999 v +324 640.199 348.6 636.799 372.2 604.399 C +336.6 641.199 320.6 639.999 V +b +328.225 642.028 m +327.788 643.786 329.678 643.232 v +331.568 642.678 352.002 644.577 390.099 610.401 C +343.924 645.344 328.225 642.028 V +b +338.625 646.428 m +338.188 648.186 340.078 647.632 v +341.968 647.078 376.802 642.577 428.499 607.601 C +354.324 649.744 338.625 646.428 V +b +298.2 657.999 m +298 659.799 299.8 658.999 v +301.6 658.199 355 655.599 385.4 628.799 C +350.499 653.574 298.2 657.999 V +b +288.2 653.999 m +288 655.799 289.8 654.999 v +291.6 654.199 316.2 650.799 339.8 618.399 C +304.2 655.199 288.2 653.999 V +b +349.503 651.038 m +348.938 652.759 350.864 652.345 v +352.79 651.932 387.86 649.996 441.981 618.902 C +364.317 653.296 349.503 651.038 V +b +357.903 653.438 m +357.338 655.159 359.264 654.745 v +361.19 654.332 396.26 652.396 450.381 621.302 C +373.317 656.096 357.903 653.438 V +b +367.503 658.438 m +366.938 660.159 368.864 659.745 v +370.79 659.332 413.86 654.996 503.582 620.702 C +382.917 661.096 367.503 658.438 V +b +0 g +0 J 1 w +256.2 651.599 m +261.4 651.999 260.2 650.399 v +259 648.799 256.6 649.599 y +256.2 651.599 l +f +287 637.599 m +292.2 637.999 291 636.399 v +289.8 634.799 287.4 635.599 y +287 637.599 l +f +278.2 637.999 m +283.4 638.399 282.2 636.799 v +281 635.199 278.6 635.999 y +278.2 637.999 l +f +182.831 649.818 m +187.876 648.495 186.218 647.376 v +184.561 646.256 182.554 647.798 y +182.831 649.818 l +f +184.831 659.418 m +189.876 658.095 188.218 656.976 v +186.561 655.856 184.554 657.398 y +184.831 659.418 l +f +177.631 663.818 m +182.676 662.495 181.018 661.376 v +179.361 660.256 177.354 661.798 y +177.631 663.818 l +f +0.8 g +1 J 0.1 w +257.4 588.799 m +255.8 588.799 251.8 586.799 V +249.8 586.799 238.6 583.199 233 573.199 C +245.4 582.799 257.4 588.799 V +f +345.116 496.153 m +345.257 495.895 345.312 495.475 345.604 495.458 c +346.262 495.418 347.495 495.117 347.37 495.753 c +346.522 500.059 345.648 504.996 341.515 506.803 c +340.876 507.082 339.434 506.669 339.36 505.785 c +339.233 504.261 339.116 502.912 339.425 501.446 c +339.725 500.025 341.883 500.015 342.8 501.399 C +343.736 499.727 344.168 497.884 345.116 496.153 c +f +334.038 491.419 m +334.786 490.006 334.659 488.147 336.074 487.584 c +336.814 487.29 338.664 488.265 338.246 489.339 c +337.444 491.4 337.056 493.639 335.667 495.45 c +335.467 495.712 335.707 496.245 335.547 496.573 c +334.953 497.793 333.808 498.528 332.4 498.199 C +331.285 495.996 332.433 493.867 333.955 492.158 c +334.091 492.006 333.925 491.63 334.038 491.419 c +f +294.436 496.609 m +294.328 496.986 294.29 497.449 294.455 497.77 c +294.986 498.803 295.779 499.925 295.442 500.947 c +295.094 502.003 293.978 501.821 293.328 501.252 c +292.193 500.258 292.144 498.432 291.453 497.073 c +291.257 496.687 291.308 496.114 290.867 495.723 c +290.393 495.302 289.953 493.778 290.049 493.207 c +290.102 492.894 289.919 482.986 290.141 483.249 c +290.76 483.982 293.81 493.716 293.879 494.608 c +293.936 495.339 294.668 495.804 294.436 496.609 c +f +268.798 503.401 m +271.432 505.9 274.222 508.861 273.78 512.573 c +273.664 513.549 271.889 513.022 271.702 512.176 c +270.9 508.551 268.861 505.89 266.293 503.498 c +264.097 501.451 262.235 495.107 262 494.599 C +265.697 499.855 267.954 502.601 268.798 503.401 c +f +255.224 509.365 m +255.747 509.735 255.445 510.226 255.662 510.558 c +256.615 512.016 257.916 513.262 257.934 515 c +257.937 515.277 257.559 515.586 257.224 515.362 c +256.947 515.178 256.605 515.048 256.497 514.918 c +254.467 512.469 253.067 509.798 251.624 506.986 c +251.441 506.629 250.297 502.138 250.61 502.027 c +250.849 501.942 252.569 506.123 252.779 506.237 c +254.042 506.923 254.054 508.538 255.224 509.365 c +f +271.957 489.821 m +272.401 490.69 273.977 491.892 273.864 492.781 c +273.746 493.709 274.214 495.152 273.302 494.464 c +272.045 493.516 268.596 492.167 268.326 486.359 c +268.3 485.788 271.274 488.481 271.957 489.821 c +f +286.4 506.999 m +286.8 507.667 287.508 507.194 287.967 507.457 c +288.615 507.829 289.226 508.387 289.518 509.036 c +290.488 511.185 292.257 513.005 292.4 515.399 C +290.909 516.804 290.23 514.764 289.6 513.799 C +288.277 515.446 287.278 513.572 285.978 513.053 c +285.908 513.025 285.695 513.372 285.62 513.345 c +284.443 512.905 283.763 511.824 282.765 511.043 c +282.594 510.909 282.189 511.089 282.042 510.953 c +281.39 510.35 280.417 510.025 280.137 509.343 c +279.027 506.636 275.887 504.541 274 496.999 C +274.381 496.09 278.512 503.641 278.999 504.339 c +279.835 505.535 279.953 502.678 281.229 503.344 c +281.28 503.371 281.466 503.133 281.6 502.999 C +281.794 503.279 282.012 503.508 282.4 503.399 C +282.4 503.799 282.266 504.355 282.467 504.514 c +283.704 505.491 283.62 506.559 284.4 507.799 C +284.858 507.01 285.919 507.729 286.4 506.999 C +f +346.2 452.599 m +353.6 472.999 349.2 484.199 V +360.6 462.599 356 451.399 V +355.6 461.799 351.6 466.799 V +347.6 453.999 346.2 452.599 V +f +331.4 455.199 m +336.8 463.999 328.8 482.399 V +328 461.999 321.2 450.999 V +335.4 471.199 331.4 455.199 V +f +321.4 457.199 m +321.2 477.199 321.6 480.199 V +317.8 463.599 307.6 453.999 V +322 465.999 321.4 457.199 V +f +311.8 489.199 m +317.8 475.599 307.8 457.199 V +314.2 469.399 309.4 476.399 V +312 479.799 311.8 489.199 V +f +292.6 457.599 m +291.6 473.199 293.4 475.399 V +293.6 481.799 293.2 482.799 V +297.2 488.999 297.4 481.599 V +298.8 473.799 301.6 469.199 V +305.2 463.799 305 457.399 V +295 487.599 292.6 457.599 V +f +289 485.199 m +282.4 474.399 280.6 455.399 V +279.2 461.599 283 475.999 V +287.2 491.399 289 485.199 V +f +267.2 465.399 m +272.2 470.799 273.6 475.799 V +277.2 491.599 270.8 482.999 V +271 474.999 262.8 467.599 V +267.6 469.999 267.2 465.399 V +f +261.4 470.399 m +264.8 487.799 265.6 488.599 V +267.4 491.999 264.6 488.799 V +255.8 469.599 251.8 462.999 V +259.8 472.199 261.4 470.399 V +f +255.6 486.999 m +267.2 509.399 245.4 483.599 V +256.4 493.399 255.6 486.999 V +f +240.2 501.599 m +245 520.399 247.6 520.199 V +255.8 529.199 249.2 518.599 V +243.2 508.999 243.8 499.199 V +243.2 508.799 240.2 501.599 V +f +570.5 513 m +558.5 523 556 526.5 V +569.5 508 569.5 501 V +572 508.5 570.5 513 V +f +576 535 m +555 550 551.5 557.5 V +578 528 578 523.5 V +578.5 532.5 576 535 V +f +593 689 m +581 697 579.5 695 V +590 688.5 592.5 680 V +591 689 593 689 V +f +601.5 608.5 m +584 620.5 l +603 603.5 603.5 599.5 V +601.5 608.5 L +f +0 g +1 w +210.75 631 m +232.75 626.25 l +S +261 469 m +260.5 472.5 251.5 462 v +S +266.5 464 m +268.5 470.5 262 466 v +S +320.5 455.5 m +322 466.5 310.5 453.5 v +S + +showpage + +%%Trailer From 730589cb956cd3d042024b06b454e5fb3cffc861 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:33:06 +0200 Subject: [PATCH 19/61] correct draw2d/samples path --- README.md | 2 +- draw2d.go | 2 +- draw2dpdf/doc.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d747d15..6fca447 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ gc.FillStroke() draw2dpdf.SaveToPdfFile(fn, dest) ``` -There are more examples here: https://github.com/llgcode/draw2d.samples +There are more examples here: https://github.com/llgcode/draw2d/samples Drawing on opengl is provided by the draw2dgl package. diff --git a/draw2d.go b/draw2d.go index 79a5a0a..18be136 100644 --- a/draw2d.go +++ b/draw2d.go @@ -45,7 +45,7 @@ // draw2d.SaveToPngFile(fn, dest) // // There are more examples here: -// https://github.com/llgcode/draw2d.samples +// https://github.com/llgcode/draw2d/samples // // Drawing on pdf documents is provided by the draw2dpdf package. // Drawing on opengl is provided by the draw2dgl package. diff --git a/draw2dpdf/doc.go b/draw2dpdf/doc.go index b8ccdb4..bcdd002 100644 --- a/draw2dpdf/doc.go +++ b/draw2dpdf/doc.go @@ -28,7 +28,7 @@ // draw2dpdf.SaveToPdfFile(fn, dest) // // There are more examples here: -// https://github.com/llgcode/draw2d.samples +// https://github.com/llgcode/draw2d/samples // // Drawing on images is provided by the draw2d package. // Drawing on opengl is provided by the draw2dgl package. From 61b036038cebbad05923932321b56fb8763edcef Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 02:42:12 +0200 Subject: [PATCH 20/61] correct draw2d/samples path --- README.md | 2 +- draw2d.go | 2 +- draw2dpdf/doc.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6fca447..3359c92 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ gc.FillStroke() draw2dpdf.SaveToPdfFile(fn, dest) ``` -There are more examples here: https://github.com/llgcode/draw2d/samples +There are more examples here: https://github.com/llgcode/draw2d/tree/master/samples Drawing on opengl is provided by the draw2dgl package. diff --git a/draw2d.go b/draw2d.go index 18be136..2887bc8 100644 --- a/draw2d.go +++ b/draw2d.go @@ -45,7 +45,7 @@ // draw2d.SaveToPngFile(fn, dest) // // There are more examples here: -// https://github.com/llgcode/draw2d/samples +// https://github.com/llgcode/draw2d/tree/master/samples // // Drawing on pdf documents is provided by the draw2dpdf package. // Drawing on opengl is provided by the draw2dgl package. diff --git a/draw2dpdf/doc.go b/draw2dpdf/doc.go index bcdd002..846f336 100644 --- a/draw2dpdf/doc.go +++ b/draw2dpdf/doc.go @@ -28,7 +28,7 @@ // draw2dpdf.SaveToPdfFile(fn, dest) // // There are more examples here: -// https://github.com/llgcode/draw2d/samples +// https://github.com/llgcode/draw2d/tree/master/samples // // Drawing on images is provided by the draw2d package. // Drawing on opengl is provided by the draw2dgl package. From bf2e1c01745a3f39a426ed2a522074e3e556017c Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 12:45:52 +0200 Subject: [PATCH 21/61] add license to README --- README.md | 2 +- draw2d.go | 1 + samples/README.md | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6fca447..4970238 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ See the [documentation](http://godoc.org/github.com/llgcode/draw2d) for more det Features -------- -Operations in draw2d include stroking and filling polygons, arcs, Bézier curves, drawing images and text rendering with truetype fonts. All drawing operations can be transformed by affine transformations (scale, rotation, translation). +Operations in draw2d include stroking and filling polygons, arcs, Bézier curves, drawing images and text rendering with truetype fonts. All drawing operations can be transformed by affine transformations (scale, rotation, translation). draw2d is released under the BSD license. Package draw2d follows the conventions of the [HTML Canvas 2D Context](http://www.w3.org/TR/2dcontext/) for coordinate system, angles, etc... diff --git a/draw2d.go b/draw2d.go index 18be136..3eb697b 100644 --- a/draw2d.go +++ b/draw2d.go @@ -5,6 +5,7 @@ // for multiple output devices such as images (draw2d), pdf documents // (draw2dpdf) and opengl (draw2dopengl), which can also be used on the // google app engine. It can be used as a pure go Cairo alternative. +// draw2d is released under the BSD license. // // Features // diff --git a/samples/README.md b/samples/README.md index 55d08f5..939c475 100644 --- a/samples/README.md +++ b/samples/README.md @@ -1,7 +1,7 @@ draw2d samples ============== -Various Samples to using draw2d +Various samples for using draw2d Using the image backend ----------------------- From 72c9be4ed0a135dad4f89e891fac12e22cc74300 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 15:11:19 +0200 Subject: [PATCH 22/61] add copyright information --- draw2dpdf/fileutil.go | 3 +++ draw2dpdf/gc.go | 4 ++-- draw2dpdf/samples_test.go | 2 ++ draw2dpdf/test_test.go | 3 +++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/draw2dpdf/fileutil.go b/draw2dpdf/fileutil.go index c3c8e66..349545d 100644 --- a/draw2dpdf/fileutil.go +++ b/draw2dpdf/fileutil.go @@ -1,3 +1,6 @@ +// Copyright 2015 The draw2d Authors. All rights reserved. +// created: 26/06/2015 by Stani Michiels + package draw2dpdf import "github.com/jung-kurt/gofpdf" diff --git a/draw2dpdf/gc.go b/draw2dpdf/gc.go index 8c7c3aa..e1844fb 100644 --- a/draw2dpdf/gc.go +++ b/draw2dpdf/gc.go @@ -1,6 +1,6 @@ // Copyright 2015 The draw2d Authors. All rights reserved. // created: 26/06/2015 by Stani Michiels -// TODO: fonts, dpi +// TODO: dashed line package draw2dpdf @@ -88,7 +88,7 @@ func NewGraphicContext(pdf *gofpdf.Fpdf) *GraphicContext { // TODO: add type (tp) as parameter to argument list? func (gc *GraphicContext) DrawImage(image image.Image) { name := strconv.Itoa(int(imageCount)) - imageCount += 1 + imageCount++ tp := "PNG" // "JPG", "JPEG", "PNG" and "GIF" b := &bytes.Buffer{} png.Encode(b, image) diff --git a/draw2dpdf/samples_test.go b/draw2dpdf/samples_test.go index ac6a4ce..8da8b8d 100644 --- a/draw2dpdf/samples_test.go +++ b/draw2dpdf/samples_test.go @@ -1,3 +1,5 @@ +// Copyright 2015 The draw2d Authors. All rights reserved. +// created: 26/06/2015 by Stani Michiels // See also test_test.go package draw2dpdf_test diff --git a/draw2dpdf/test_test.go b/draw2dpdf/test_test.go index 88e1f43..801ff36 100644 --- a/draw2dpdf/test_test.go +++ b/draw2dpdf/test_test.go @@ -1,3 +1,6 @@ +// Copyright 2015 The draw2d Authors. All rights reserved. +// created: 26/06/2015 by Stani Michiels + // Package draw2dpdf_test gives test coverage with the command: // go test -cover ./... | grep -v "no test" // (It should be run from its parent draw2d directory.) From fb6189e2461346abd4279811656b962c809729a1 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 15:11:57 +0200 Subject: [PATCH 23/61] add test script --- test | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100755 test diff --git a/test b/test new file mode 100755 index 0000000..f643b46 --- /dev/null +++ b/test @@ -0,0 +1,8 @@ +echo golint +golint ./... | grep "draw2dpdf\|samples" +echo +echo go vet +go vet ./... +echo +echo go test +go test -cover ./... | grep -v "no test" \ No newline at end of file From bb793d237f7ff90813b3639d2c16474ba3ecaef2 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 15:24:23 +0200 Subject: [PATCH 24/61] go vet fixes --- arc.go | 10 ++++++---- path_adder.go | 37 ++++++++++++++++++++++++++++++------- raster/raster_test.go | 33 +++++++++++++++++++++++++-------- 3 files changed, 61 insertions(+), 19 deletions(-) diff --git a/arc.go b/arc.go index 1bfef06..9fb8352 100644 --- a/arc.go +++ b/arc.go @@ -35,7 +35,6 @@ func arc(t VertexConverter, x, y, rx, ry, start, angle, scale float64) (lastX, l angle += da t.Vertex(curX, curY) } - return curX, curY } func arcAdder(adder raster.Adder, x, y, rx, ry, start, angle, scale float64) raster.Point { @@ -56,13 +55,16 @@ func arcAdder(adder raster.Adder, x, y, rx, ry, start, angle, scale float64) ras if (angle < end-da/4) != clockWise { curX = x + math.Cos(end)*rx curY = y + math.Sin(end)*ry - return raster.Point{raster.Fix32(curX * 256), raster.Fix32(curY * 256)} + return raster.Point{ + X: raster.Fix32(curX * 256), + Y: raster.Fix32(curY * 256)} } curX = x + math.Cos(angle)*rx curY = y + math.Sin(angle)*ry angle += da - adder.Add1(raster.Point{raster.Fix32(curX * 256), raster.Fix32(curY * 256)}) + adder.Add1(raster.Point{ + X: raster.Fix32(curX * 256), + Y: raster.Fix32(curY * 256)}) } - return raster.Point{raster.Fix32(curX * 256), raster.Fix32(curY * 256)} } diff --git a/path_adder.go b/path_adder.go index 5731bb5..526108b 100644 --- a/path_adder.go +++ b/path_adder.go @@ -23,9 +23,13 @@ func (vertexAdder *VertexAdder) NextCommand(cmd VertexCommand) { func (vertexAdder *VertexAdder) Vertex(x, y float64) { switch vertexAdder.command { case VertexStartCommand: - vertexAdder.adder.Start(raster.Point{raster.Fix32(x * 256), raster.Fix32(y * 256)}) + vertexAdder.adder.Start(raster.Point{ + X: raster.Fix32(x * 256), + Y: raster.Fix32(y * 256)}) default: - vertexAdder.adder.Add1(raster.Point{raster.Fix32(x * 256), raster.Fix32(y * 256)}) + vertexAdder.adder.Add1(raster.Point{ + X: raster.Fix32(x * 256), + Y: raster.Fix32(y * 256)}) } vertexAdder.command = VertexNoCommand } @@ -37,7 +41,7 @@ type PathAdder struct { } func NewPathAdder(adder raster.Adder) *PathAdder { - return &PathAdder{adder, raster.Point{0, 0}, 1} + return &PathAdder{adder, raster.Point{X: 0, Y: 0}, 1} } func (pathAdder *PathAdder) Convert(paths ...*PathStorage) { @@ -46,17 +50,36 @@ func (pathAdder *PathAdder) Convert(paths ...*PathStorage) { for _, cmd := range path.Commands { switch cmd { case MoveTo: - pathAdder.firstPoint = raster.Point{raster.Fix32(path.Vertices[j] * 256), raster.Fix32(path.Vertices[j+1] * 256)} + pathAdder.firstPoint = raster.Point{ + X: raster.Fix32(path.Vertices[j] * 256), + Y: raster.Fix32(path.Vertices[j+1] * 256)} pathAdder.adder.Start(pathAdder.firstPoint) j += 2 case LineTo: - pathAdder.adder.Add1(raster.Point{raster.Fix32(path.Vertices[j] * 256), raster.Fix32(path.Vertices[j+1] * 256)}) + pathAdder.adder.Add1(raster.Point{ + X: raster.Fix32(path.Vertices[j] * 256), + Y: raster.Fix32(path.Vertices[j+1] * 256)}) j += 2 case QuadCurveTo: - pathAdder.adder.Add2(raster.Point{raster.Fix32(path.Vertices[j] * 256), raster.Fix32(path.Vertices[j+1] * 256)}, raster.Point{raster.Fix32(path.Vertices[j+2] * 256), raster.Fix32(path.Vertices[j+3] * 256)}) + pathAdder.adder.Add2( + raster.Point{ + X: raster.Fix32(path.Vertices[j] * 256), + Y: raster.Fix32(path.Vertices[j+1] * 256)}, + raster.Point{ + X: raster.Fix32(path.Vertices[j+2] * 256), + Y: raster.Fix32(path.Vertices[j+3] * 256)}) j += 4 case CubicCurveTo: - pathAdder.adder.Add3(raster.Point{raster.Fix32(path.Vertices[j] * 256), raster.Fix32(path.Vertices[j+1] * 256)}, raster.Point{raster.Fix32(path.Vertices[j+2] * 256), raster.Fix32(path.Vertices[j+3] * 256)}, raster.Point{raster.Fix32(path.Vertices[j+4] * 256), raster.Fix32(path.Vertices[j+5] * 256)}) + pathAdder.adder.Add3( + raster.Point{ + X: raster.Fix32(path.Vertices[j] * 256), + Y: raster.Fix32(path.Vertices[j+1] * 256)}, + raster.Point{ + X: raster.Fix32(path.Vertices[j+2] * 256), + Y: raster.Fix32(path.Vertices[j+3] * 256)}, + raster.Point{ + X: raster.Fix32(path.Vertices[j+4] * 256), + Y: raster.Fix32(path.Vertices[j+5] * 256)}) j += 6 case ArcTo: lastPoint := arcAdder(pathAdder.adder, path.Vertices[j], path.Vertices[j+1], path.Vertices[j+2], path.Vertices[j+3], path.Vertices[j+4], path.Vertices[j+5], pathAdder.ApproximationScale) diff --git a/raster/raster_test.go b/raster/raster_test.go index 7d595cc..21840d7 100644 --- a/raster/raster_test.go +++ b/raster/raster_test.go @@ -62,9 +62,13 @@ func TestFreetype(t *testing.T) { img := image.NewRGBA(image.Rect(0, 0, 200, 200)) rasterizer := raster.NewRasterizer(200, 200) rasterizer.UseNonZeroWinding = false - rasterizer.Start(raster.Point{raster.Fix32(10 * 256), raster.Fix32(190 * 256)}) + rasterizer.Start(raster.Point{ + X: raster.Fix32(10 * 256), + Y: raster.Fix32(190 * 256)}) for j := 0; j < len(poly); j = j + 2 { - rasterizer.Add1(raster.Point{raster.Fix32(poly[j] * 256), raster.Fix32(poly[j+1] * 256)}) + rasterizer.Add1(raster.Point{ + X: raster.Fix32(poly[j] * 256), + Y: raster.Fix32(poly[j+1] * 256)}) } painter := raster.NewRGBAPainter(img) painter.SetColor(color) @@ -84,9 +88,13 @@ func TestFreetypeNonZeroWinding(t *testing.T) { img := image.NewRGBA(image.Rect(0, 0, 200, 200)) rasterizer := raster.NewRasterizer(200, 200) rasterizer.UseNonZeroWinding = true - rasterizer.Start(raster.Point{raster.Fix32(10 * 256), raster.Fix32(190 * 256)}) + rasterizer.Start(raster.Point{ + X: raster.Fix32(10 * 256), + Y: raster.Fix32(190 * 256)}) for j := 0; j < len(poly); j = j + 2 { - rasterizer.Add1(raster.Point{raster.Fix32(poly[j] * 256), raster.Fix32(poly[j+1] * 256)}) + rasterizer.Add1(raster.Point{ + X: raster.Fix32(poly[j] * 256), + Y: raster.Fix32(poly[j+1] * 256)}) } painter := raster.NewRGBAPainter(img) painter.SetColor(color) @@ -139,15 +147,20 @@ func BenchmarkFreetype(b *testing.B) { img := image.NewRGBA(image.Rect(0, 0, 200, 200)) rasterizer := raster.NewRasterizer(200, 200) rasterizer.UseNonZeroWinding = false - rasterizer.Start(raster.Point{raster.Fix32(10 * 256), raster.Fix32(190 * 256)}) + rasterizer.Start(raster.Point{ + X: raster.Fix32(10 * 256), + Y: raster.Fix32(190 * 256)}) for j := 0; j < len(poly); j = j + 2 { - rasterizer.Add1(raster.Point{raster.Fix32(poly[j] * 256), raster.Fix32(poly[j+1] * 256)}) + rasterizer.Add1(raster.Point{ + X: raster.Fix32(poly[j] * 256), + Y: raster.Fix32(poly[j+1] * 256)}) } painter := raster.NewRGBAPainter(img) painter.SetColor(color) rasterizer.Rasterize(painter) } } + func BenchmarkFreetypeNonZeroWinding(b *testing.B) { var p Path p.LineTo(10, 190) @@ -160,9 +173,13 @@ func BenchmarkFreetypeNonZeroWinding(b *testing.B) { img := image.NewRGBA(image.Rect(0, 0, 200, 200)) rasterizer := raster.NewRasterizer(200, 200) rasterizer.UseNonZeroWinding = true - rasterizer.Start(raster.Point{raster.Fix32(10 * 256), raster.Fix32(190 * 256)}) + rasterizer.Start(raster.Point{ + X: raster.Fix32(10 * 256), + Y: raster.Fix32(190 * 256)}) for j := 0; j < len(poly); j = j + 2 { - rasterizer.Add1(raster.Point{raster.Fix32(poly[j] * 256), raster.Fix32(poly[j+1] * 256)}) + rasterizer.Add1(raster.Point{ + X: raster.Fix32(poly[j] * 256), + Y: raster.Fix32(poly[j+1] * 256)}) } painter := raster.NewRGBAPainter(img) painter.SetColor(color) From 572711ae7ef9a11355091b82dc7b5ab730930a80 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 16:18:49 +0200 Subject: [PATCH 25/61] redirect results of raster_test to output --- raster/raster_test.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/raster/raster_test.go b/raster/raster_test.go index 21840d7..7a70968 100644 --- a/raster/raster_test.go +++ b/raster/raster_test.go @@ -74,7 +74,7 @@ func TestFreetype(t *testing.T) { painter.SetColor(color) rasterizer.Rasterize(painter) - savepng("_testFreetype.png", img) + savepng("../output/raster_TestFreetype.png", img) } func TestFreetypeNonZeroWinding(t *testing.T) { @@ -100,7 +100,7 @@ func TestFreetypeNonZeroWinding(t *testing.T) { painter.SetColor(color) rasterizer.Rasterize(painter) - savepng("_testFreetypeNonZeroWinding.png", img) + savepng("../output/raster_TestFreetypeNonZeroWinding.png", img) } func TestRasterizer(t *testing.T) { @@ -116,7 +116,7 @@ func TestRasterizer(t *testing.T) { //PolylineBresenham(img, image.Black, poly...) r.RenderEvenOdd(img, &color, &poly, tr) - savepng("_testRasterizer.png", img) + savepng("../output/raster_TestRasterizer.png", img) } func TestRasterizerNonZeroWinding(t *testing.T) { @@ -132,7 +132,7 @@ func TestRasterizerNonZeroWinding(t *testing.T) { //PolylineBresenham(img, image.Black, poly...) r.RenderNonZeroWinding(img, &color, &poly, tr) - savepng("_testRasterizerNonZeroWinding.png", img) + savepng("../output/raster_TestRasterizerNonZeroWinding.png", img) } func BenchmarkFreetype(b *testing.B) { From fe06e5046c6104589c885e819c7ef189efac16e3 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 16:57:21 +0200 Subject: [PATCH 26/61] fix license position in README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 958b213..db90f91 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ draw2d ====== -Package draw2d is a pure [go](http://golang.org) 2D vector graphics library with support for multiple output devices such as [images](http://golang.org/pkg/image) (draw2d), pdf documents (draw2dpdf) and opengl (draw2dopengl), which can also be used on the google app engine. It can be used as a pure go [Cairo](http://www.cairographics.org/) alternative. +Package draw2d is a pure [go](http://golang.org) 2D vector graphics library with support for multiple output devices such as [images](http://golang.org/pkg/image) (draw2d), pdf documents (draw2dpdf) and opengl (draw2dopengl), which can also be used on the google app engine. It can be used as a pure go [Cairo](http://www.cairographics.org/) alternative. draw2d is released under the BSD license. See the [documentation](http://godoc.org/github.com/llgcode/draw2d) for more details. Features -------- -Operations in draw2d include stroking and filling polygons, arcs, Bézier curves, drawing images and text rendering with truetype fonts. All drawing operations can be transformed by affine transformations (scale, rotation, translation). draw2d is released under the BSD license. +Operations in draw2d include stroking and filling polygons, arcs, Bézier curves, drawing images and text rendering with truetype fonts. All drawing operations can be transformed by affine transformations (scale, rotation, translation). Package draw2d follows the conventions of the [HTML Canvas 2D Context](http://www.w3.org/TR/2dcontext/) for coordinate system, angles, etc... From 55b5c931cf59817bb0ab58e7a47bdd0cdf29d711 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 16:58:36 +0200 Subject: [PATCH 27/61] golint fixes --- curve/curve_test.go | 20 ++++++++++---------- raster/raster_test.go | 18 +++++++++--------- rgba_interpolation.go | 5 +++++ test | 2 +- vertex2d.go | 7 +++++++ 5 files changed, 32 insertions(+), 20 deletions(-) diff --git a/curve/curve_test.go b/curve/curve_test.go index c101e6a..1196761 100644 --- a/curve/curve_test.go +++ b/curve/curve_test.go @@ -15,8 +15,8 @@ import ( ) var ( - flattening_threshold float64 = 0.5 - testsCubicFloat64 = []CubicCurveFloat64{ + flatteningThreshold = 0.5 + testsCubicFloat64 = []CubicCurveFloat64{ CubicCurveFloat64{100, 100, 200, 100, 100, 200, 200, 200}, CubicCurveFloat64{100, 100, 300, 200, 200, 200, 300, 100}, CubicCurveFloat64{100, 100, 0, 300, 200, 0, 300, 300}, @@ -110,7 +110,7 @@ func TestCubicCurveRec(t *testing.T) { for i, curve := range testsCubicFloat64 { var p Path p.LineTo(curve[0], curve[1]) - curve.SegmentRec(&p, flattening_threshold) + curve.SegmentRec(&p, flatteningThreshold) img := image.NewNRGBA(image.Rect(0, 0, 300, 300)) raster.PolylineBresenham(img, color.NRGBA{0xff, 0, 0, 0xff}, curve[:]...) raster.PolylineBresenham(img, image.Black, p.points...) @@ -126,7 +126,7 @@ func TestCubicCurve(t *testing.T) { for i, curve := range testsCubicFloat64 { var p Path p.LineTo(curve[0], curve[1]) - curve.Segment(&p, flattening_threshold) + curve.Segment(&p, flatteningThreshold) img := image.NewNRGBA(image.Rect(0, 0, 300, 300)) raster.PolylineBresenham(img, color.NRGBA{0xff, 0, 0, 0xff}, curve[:]...) raster.PolylineBresenham(img, image.Black, p.points...) @@ -174,7 +174,7 @@ func TestCubicCurveParabolic(t *testing.T) { for i, curve := range testsCubicFloat64 { var p Path p.LineTo(curve[0], curve[1]) - curve.ParabolicSegment(&p, flattening_threshold) + curve.ParabolicSegment(&p, flatteningThreshold) img := image.NewNRGBA(image.Rect(0, 0, 300, 300)) raster.PolylineBresenham(img, color.NRGBA{0xff, 0, 0, 0xff}, curve[:]...) raster.PolylineBresenham(img, image.Black, p.points...) @@ -190,7 +190,7 @@ func TestQuadCurve(t *testing.T) { for i, curve := range testsQuadFloat64 { var p Path p.LineTo(curve[0], curve[1]) - curve.Segment(&p, flattening_threshold) + curve.Segment(&p, flatteningThreshold) img := image.NewNRGBA(image.Rect(0, 0, 300, 300)) raster.PolylineBresenham(img, color.NRGBA{0xff, 0, 0, 0xff}, curve[:]...) raster.PolylineBresenham(img, image.Black, p.points...) @@ -207,7 +207,7 @@ func BenchmarkCubicCurveRec(b *testing.B) { for _, curve := range testsCubicFloat64 { p := Path{make([]float64, 0, 32)} p.LineTo(curve[0], curve[1]) - curve.SegmentRec(&p, flattening_threshold) + curve.SegmentRec(&p, flatteningThreshold) } } } @@ -217,7 +217,7 @@ func BenchmarkCubicCurve(b *testing.B) { for _, curve := range testsCubicFloat64 { p := Path{make([]float64, 0, 32)} p.LineTo(curve[0], curve[1]) - curve.Segment(&p, flattening_threshold) + curve.Segment(&p, flatteningThreshold) } } } @@ -247,7 +247,7 @@ func BenchmarkCubicCurveParabolic(b *testing.B) { for _, curve := range testsCubicFloat64 { p := Path{make([]float64, 0, 32)} p.LineTo(curve[0], curve[1]) - curve.ParabolicSegment(&p, flattening_threshold) + curve.ParabolicSegment(&p, flatteningThreshold) } } } @@ -257,7 +257,7 @@ func BenchmarkQuadCurve(b *testing.B) { for _, curve := range testsQuadFloat64 { p := Path{make([]float64, 0, 32)} p.LineTo(curve[0], curve[1]) - curve.Segment(&p, flattening_threshold) + curve.Segment(&p, flatteningThreshold) } } } diff --git a/raster/raster_test.go b/raster/raster_test.go index 7a70968..40dc3a9 100644 --- a/raster/raster_test.go +++ b/raster/raster_test.go @@ -13,7 +13,7 @@ import ( "github.com/llgcode/draw2d/curve" ) -var flattening_threshold float64 = 0.5 +var flatteningThreshold = 0.5 func savepng(filePath string, m image.Image) { f, err := os.Create(filePath) @@ -55,7 +55,7 @@ func TestFreetype(t *testing.T) { var p Path p.LineTo(10, 190) c := curve.CubicCurveFloat64{10, 190, 10, 10, 190, 10, 190, 190} - c.Segment(&p, flattening_threshold) + c.Segment(&p, flatteningThreshold) poly := Polygon(p.points) color := color.RGBA{0, 0, 0, 0xff} @@ -81,7 +81,7 @@ func TestFreetypeNonZeroWinding(t *testing.T) { var p Path p.LineTo(10, 190) c := curve.CubicCurveFloat64{10, 190, 10, 10, 190, 10, 190, 190} - c.Segment(&p, flattening_threshold) + c.Segment(&p, flatteningThreshold) poly := Polygon(p.points) color := color.RGBA{0, 0, 0, 0xff} @@ -108,7 +108,7 @@ func TestRasterizer(t *testing.T) { var p Path p.LineTo(10, 190) c := curve.CubicCurveFloat64{10, 190, 10, 10, 190, 10, 190, 190} - c.Segment(&p, flattening_threshold) + c.Segment(&p, flatteningThreshold) poly := Polygon(p.points) color := color.RGBA{0, 0, 0, 0xff} tr := [6]float64{1, 0, 0, 1, 0, 0} @@ -124,7 +124,7 @@ func TestRasterizerNonZeroWinding(t *testing.T) { var p Path p.LineTo(10, 190) c := curve.CubicCurveFloat64{10, 190, 10, 10, 190, 10, 190, 190} - c.Segment(&p, flattening_threshold) + c.Segment(&p, flatteningThreshold) poly := Polygon(p.points) color := color.RGBA{0, 0, 0, 0xff} tr := [6]float64{1, 0, 0, 1, 0, 0} @@ -139,7 +139,7 @@ func BenchmarkFreetype(b *testing.B) { var p Path p.LineTo(10, 190) c := curve.CubicCurveFloat64{10, 190, 10, 10, 190, 10, 190, 190} - c.Segment(&p, flattening_threshold) + c.Segment(&p, flatteningThreshold) poly := Polygon(p.points) color := color.RGBA{0, 0, 0, 0xff} @@ -165,7 +165,7 @@ func BenchmarkFreetypeNonZeroWinding(b *testing.B) { var p Path p.LineTo(10, 190) c := curve.CubicCurveFloat64{10, 190, 10, 10, 190, 10, 190, 190} - c.Segment(&p, flattening_threshold) + c.Segment(&p, flatteningThreshold) poly := Polygon(p.points) color := color.RGBA{0, 0, 0, 0xff} @@ -191,7 +191,7 @@ func BenchmarkRasterizerNonZeroWinding(b *testing.B) { var p Path p.LineTo(10, 190) c := curve.CubicCurveFloat64{10, 190, 10, 10, 190, 10, 190, 190} - c.Segment(&p, flattening_threshold) + c.Segment(&p, flatteningThreshold) poly := Polygon(p.points) color := color.RGBA{0, 0, 0, 0xff} tr := [6]float64{1, 0, 0, 1, 0, 0} @@ -206,7 +206,7 @@ func BenchmarkRasterizer(b *testing.B) { var p Path p.LineTo(10, 190) c := curve.CubicCurveFloat64{10, 190, 10, 10, 190, 10, 190, 190} - c.Segment(&p, flattening_threshold) + c.Segment(&p, flatteningThreshold) poly := Polygon(p.points) color := color.RGBA{0, 0, 0, 0xff} tr := [6]float64{1, 0, 0, 1, 0, 0} diff --git a/rgba_interpolation.go b/rgba_interpolation.go index 92534e7..1265fe0 100644 --- a/rgba_interpolation.go +++ b/rgba_interpolation.go @@ -11,11 +11,15 @@ import ( "math" ) +// ImageFilter defines sampling filter (linear, bilinear or bicubic) type ImageFilter int const ( + // LinearFilter uses linear interpolation LinearFilter ImageFilter = iota + // BilinearFilter uses bilinear interpolation BilinearFilter + // BicubicFilter uses bicubic interpolation BicubicFilter ) @@ -103,6 +107,7 @@ func cubic(offset, v0, v1, v2, v3 float64) uint32 { (-9*v0+9*v2))*offset + (v0 + 16*v1 + v2)) / 18.0) } +// DrawImage draws a source image on an destination image. func DrawImage(src image.Image, dest draw.Image, tr MatrixTransform, op draw.Op, filter ImageFilter) { bounds := src.Bounds() x0, y0, x1, y1 := float64(bounds.Min.X), float64(bounds.Min.Y), float64(bounds.Max.X), float64(bounds.Max.Y) diff --git a/test b/test index f643b46..2a387e6 100755 --- a/test +++ b/test @@ -1,5 +1,5 @@ echo golint -golint ./... | grep "draw2dpdf\|samples" +golint ./... | grep "draw2dpdf\|samples\|^advanced_path\|^arc\|draw2d[.]\|fileutil\|^gc\|math\|^path[.]\|rgba_interpolation\|test\|vertex2d" echo echo go vet go vet ./... diff --git a/vertex2d.go b/vertex2d.go index 4e4d4fd..5bc2f52 100644 --- a/vertex2d.go +++ b/vertex2d.go @@ -3,16 +3,23 @@ package draw2d +// VertexCommand defines different commands to describe the vertex of a path. type VertexCommand byte const ( + // VertexNoCommand does nothing VertexNoCommand VertexCommand = iota + // VertexStartCommand starts a (sub)path VertexStartCommand + // VertexJoinCommand joins the two edges at the vertex VertexJoinCommand + // VertexCloseCommand closes the subpath VertexCloseCommand + // VertexStopCommand is the endpoint of the path. VertexStopCommand ) +// VertexConverter allows to convert vertices. type VertexConverter interface { NextCommand(cmd VertexCommand) Vertex(x, y float64) From d00980730fad16af6f01b5050a77122ec8013797 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 17:20:23 +0200 Subject: [PATCH 28/61] redirect curve tests results to output.curve folder --- .gitignore | 2 +- curve/curve_test.go | 18 +++++++++--------- output/.empty | 0 output/curve/.gitignore | 4 ++++ output/raster/.gitignore | 4 ++++ output/samples/.gitignore | 4 ++++ raster/raster_test.go | 8 ++++---- samples/samples.go | 2 +- 8 files changed, 27 insertions(+), 15 deletions(-) delete mode 100644 output/.empty create mode 100644 output/curve/.gitignore create mode 100644 output/raster/.gitignore create mode 100644 output/samples/.gitignore diff --git a/.gitignore b/.gitignore index 5aafa34..3527a30 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,4 @@ _test* **/*.dll **/core*[0-9] .private -output + diff --git a/curve/curve_test.go b/curve/curve_test.go index 1196761..0978e11 100644 --- a/curve/curve_test.go +++ b/curve/curve_test.go @@ -51,7 +51,7 @@ func (p *Path) LineTo(x, y float64) { } func init() { - f, err := os.Create("_test.html") + f, err := os.Create("../output/curve/test.html") if err != nil { log.Println(err) os.Exit(1) @@ -60,10 +60,10 @@ func init() { log.Printf("Create html viewer") f.Write([]byte("")) for i := 0; i < len(testsCubicFloat64); i++ { - f.Write([]byte(fmt.Sprintf("

\n\n\n\n\n
\n", i, i, i, i, i))) + f.Write([]byte(fmt.Sprintf("
\n\n\n\n\n
\n", i, i, i, i, i))) } for i := 0; i < len(testsQuadFloat64); i++ { - f.Write([]byte(fmt.Sprintf("
\n
\n", i))) + f.Write([]byte(fmt.Sprintf("
\n
\n", i))) } f.Write([]byte("")) @@ -116,7 +116,7 @@ func TestCubicCurveRec(t *testing.T) { raster.PolylineBresenham(img, image.Black, p.points...) //drawPoints(img, image.NRGBAColor{0, 0, 0, 0xff}, curve[:]...) drawPoints(img, color.NRGBA{0, 0, 0, 0xff}, p.points...) - savepng(fmt.Sprintf("_testRec%d.png", i), img) + savepng(fmt.Sprintf("../output/curve/testRec%d.png", i), img) log.Printf("Num of points: %d\n", len(p.points)) } fmt.Println() @@ -132,7 +132,7 @@ func TestCubicCurve(t *testing.T) { raster.PolylineBresenham(img, image.Black, p.points...) //drawPoints(img, image.NRGBAColor{0, 0, 0, 0xff}, curve[:]...) drawPoints(img, color.NRGBA{0, 0, 0, 0xff}, p.points...) - savepng(fmt.Sprintf("_test%d.png", i), img) + savepng(fmt.Sprintf("../output/curve/test%d.png", i), img) log.Printf("Num of points: %d\n", len(p.points)) } fmt.Println() @@ -148,7 +148,7 @@ func TestCubicCurveAdaptiveRec(t *testing.T) { raster.PolylineBresenham(img, image.Black, p.points...) //drawPoints(img, image.NRGBAColor{0, 0, 0, 0xff}, curve[:]...) drawPoints(img, color.NRGBA{0, 0, 0, 0xff}, p.points...) - savepng(fmt.Sprintf("_testAdaptiveRec%d.png", i), img) + savepng(fmt.Sprintf("../output/curve/testAdaptiveRec%d.png", i), img) log.Printf("Num of points: %d\n", len(p.points)) } fmt.Println() @@ -164,7 +164,7 @@ func TestCubicCurveAdaptive(t *testing.T) { raster.PolylineBresenham(img, image.Black, p.points...) //drawPoints(img, image.NRGBAColor{0, 0, 0, 0xff}, curve[:]...) drawPoints(img, color.NRGBA{0, 0, 0, 0xff}, p.points...) - savepng(fmt.Sprintf("_testAdaptive%d.png", i), img) + savepng(fmt.Sprintf("../output/curve/testAdaptive%d.png", i), img) log.Printf("Num of points: %d\n", len(p.points)) } fmt.Println() @@ -180,7 +180,7 @@ func TestCubicCurveParabolic(t *testing.T) { raster.PolylineBresenham(img, image.Black, p.points...) //drawPoints(img, image.NRGBAColor{0, 0, 0, 0xff}, curve[:]...) drawPoints(img, color.NRGBA{0, 0, 0, 0xff}, p.points...) - savepng(fmt.Sprintf("_testParabolic%d.png", i), img) + savepng(fmt.Sprintf("../output/curve/testParabolic%d.png", i), img) log.Printf("Num of points: %d\n", len(p.points)) } fmt.Println() @@ -196,7 +196,7 @@ func TestQuadCurve(t *testing.T) { raster.PolylineBresenham(img, image.Black, p.points...) //drawPoints(img, image.NRGBAColor{0, 0, 0, 0xff}, curve[:]...) drawPoints(img, color.NRGBA{0, 0, 0, 0xff}, p.points...) - savepng(fmt.Sprintf("_testQuad%d.png", i), img) + savepng(fmt.Sprintf("../output/curve/testQuad%d.png", i), img) log.Printf("Num of points: %d\n", len(p.points)) } fmt.Println() diff --git a/output/.empty b/output/.empty deleted file mode 100644 index e69de29..0000000 diff --git a/output/curve/.gitignore b/output/curve/.gitignore new file mode 100644 index 0000000..86d0cb2 --- /dev/null +++ b/output/curve/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/output/raster/.gitignore b/output/raster/.gitignore new file mode 100644 index 0000000..86d0cb2 --- /dev/null +++ b/output/raster/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/output/samples/.gitignore b/output/samples/.gitignore new file mode 100644 index 0000000..86d0cb2 --- /dev/null +++ b/output/samples/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/raster/raster_test.go b/raster/raster_test.go index 40dc3a9..e01373e 100644 --- a/raster/raster_test.go +++ b/raster/raster_test.go @@ -74,7 +74,7 @@ func TestFreetype(t *testing.T) { painter.SetColor(color) rasterizer.Rasterize(painter) - savepng("../output/raster_TestFreetype.png", img) + savepng("../output/raster/TestFreetype.png", img) } func TestFreetypeNonZeroWinding(t *testing.T) { @@ -100,7 +100,7 @@ func TestFreetypeNonZeroWinding(t *testing.T) { painter.SetColor(color) rasterizer.Rasterize(painter) - savepng("../output/raster_TestFreetypeNonZeroWinding.png", img) + savepng("../output/raster/TestFreetypeNonZeroWinding.png", img) } func TestRasterizer(t *testing.T) { @@ -116,7 +116,7 @@ func TestRasterizer(t *testing.T) { //PolylineBresenham(img, image.Black, poly...) r.RenderEvenOdd(img, &color, &poly, tr) - savepng("../output/raster_TestRasterizer.png", img) + savepng("../output/raster/TestRasterizer.png", img) } func TestRasterizerNonZeroWinding(t *testing.T) { @@ -132,7 +132,7 @@ func TestRasterizerNonZeroWinding(t *testing.T) { //PolylineBresenham(img, image.Black, poly...) r.RenderNonZeroWinding(img, &color, &poly, tr) - savepng("../output/raster_TestRasterizerNonZeroWinding.png", img) + savepng("../output/raster/TestRasterizerNonZeroWinding.png", img) } func BenchmarkFreetype(b *testing.B) { diff --git a/samples/samples.go b/samples/samples.go index ee08db4..ff30559 100644 --- a/samples/samples.go +++ b/samples/samples.go @@ -20,5 +20,5 @@ func Output(name, ext string) string { if ext == "pdf" { root = "../" } - return fmt.Sprintf("%soutput/%s.%s", root, name, ext) + return fmt.Sprintf("%soutput/samples/%s.%s", root, name, ext) } From f879ad32a7d9538777cb59573b335c0043153ba0 Mon Sep 17 00:00:00 2001 From: Stani Date: Fri, 10 Jul 2015 21:50:07 +0200 Subject: [PATCH 29/61] get 100% test coverage for draw2dpdf --- draw2dpdf/gc.go | 3 ++- draw2dpdf/path_converter.go | 3 +-- samples/helloworld/helloworld.go | 18 +++++++++++------- samples/line/line.go | 8 ++++++++ 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/draw2dpdf/gc.go b/draw2dpdf/gc.go index e1844fb..50a7137 100644 --- a/draw2dpdf/gc.go +++ b/draw2dpdf/gc.go @@ -105,7 +105,8 @@ func (gc *GraphicContext) Clear() { clearRect(gc, 0, 0, width, height) } -// ClearRect draws a white rectangle over the specified area +// ClearRect draws a white rectangle over the specified area. +// Samples: line. func (gc *GraphicContext) ClearRect(x1, y1, x2, y2 int) { clearRect(gc, float64(x1), float64(y1), float64(x2), float64(y2)) } diff --git a/draw2dpdf/path_converter.go b/draw2dpdf/path_converter.go index c58d53e..77bbfb6 100644 --- a/draw2dpdf/path_converter.go +++ b/draw2dpdf/path_converter.go @@ -52,9 +52,8 @@ func (c *PathConverter) ConvertCommand(cmd draw2d.PathCmd, vertices ...float64) vertices[4]*deg, // degStart = startAngle (vertices[4]-vertices[5])*deg) // degEnd = startAngle-angle return 6 - case draw2d.Close: + default: // case draw2d.Close: c.pdf.ClosePath() return 0 } - return 0 } diff --git a/samples/helloworld/helloworld.go b/samples/helloworld/helloworld.go index 8d7f330..301edcd 100644 --- a/samples/helloworld/helloworld.go +++ b/samples/helloworld/helloworld.go @@ -1,11 +1,12 @@ // Copyright 2010 The draw2d Authors. All rights reserved. // created: 21/11/2010 by Laurent Le Goff, Stani Michiels -// Package helloworld displays "Hello World" twice (one rotated) in a -// rounded rectangle. +// Package helloworld displays multiple "Hello World" (one rotated) +// in a rounded rectangle. package helloworld import ( + "fmt" "image" "image/color" "math" @@ -18,14 +19,14 @@ import ( // used during testing. func Main(gc draw2d.GraphicContext, ext string) (string, error) { // Draw hello world - Draw(gc) + Draw(gc, fmt.Sprintf("Hello World %d dpi", gc.GetDPI())) // Return the output filename return samples.Output("helloworld", ext), nil } // Draw "Hello World" -func Draw(gc draw2d.GraphicContext) { +func Draw(gc draw2d.GraphicContext, text string) { // Draw a rounded rectangle using default colors draw2d.RoundRect(gc, 5, 5, 292, 205, 10, 10) gc.FillStroke() @@ -40,12 +41,15 @@ func Draw(gc draw2d.GraphicContext) { gc.SetDPI(72) gc.SetFontSize(14) // Display Hello World - gc.FillStringAt("Hello World", 8, 52) + gc.FillString(text) + gc.FillStringAt(text, 8, 52) gc.Save() gc.SetFillColor(color.NRGBA{0xFF, 0x33, 0x33, 0xFF}) - gc.Translate(145, 105) + gc.Translate(145, 85) + gc.StrokeStringAt(text, -50, 0) gc.Rotate(math.Pi / 4) - gc.FillStringAt("Hello World", 0, 0) + gc.SetFillColor(color.NRGBA{0x33, 0x33, 0xFF, 0xFF}) + gc.StrokeString(text) gc.Restore() } diff --git a/samples/line/line.go b/samples/line/line.go index 7331cd5..2899d94 100644 --- a/samples/line/line.go +++ b/samples/line/line.go @@ -5,6 +5,8 @@ package line import ( + "image/color" + "github.com/llgcode/draw2d" "github.com/llgcode/draw2d/samples" ) @@ -12,10 +14,16 @@ import ( // Main draws vertically spaced lines and returns the filename. // This should only be used during testing. func Main(gc draw2d.GraphicContext, ext string) (string, error) { + gc.SetFillRule(draw2d.FillRuleWinding) + gc.Clear() // Draw the line for x := 5.0; x < 297; x += 10 { Draw(gc, x, 0, x, 210) } + gc.ClearRect(100, 75, 197, 135) + draw2d.Ellipse(gc, 148.5, 105, 35, 25) + gc.SetFillColor(color.RGBA{0xff, 0xff, 0x44, 0xff}) + gc.FillStroke() // Return the output filename return samples.Output("line", ext), nil From a826fc72168978c1057d2f1e7cb9c9c10bcc1145 Mon Sep 17 00:00:00 2001 From: Stani Date: Sat, 11 Jul 2015 01:12:09 +0200 Subject: [PATCH 30/61] fix path drawing --- draw2dpdf/gc.go | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/draw2dpdf/gc.go b/draw2dpdf/gc.go index 50a7137..51c0fd5 100644 --- a/draw2dpdf/gc.go +++ b/draw2dpdf/gc.go @@ -44,8 +44,13 @@ var ( // a page and set fill color to white. func NewPdf(orientationStr, unitStr, sizeStr string) *gofpdf.Fpdf { pdf := gofpdf.New(orientationStr, unitStr, sizeStr, draw2d.GetFontFolder()) + // to be compatible with draw2d + pdf.SetDrawColor(0, 0, 0) + pdf.SetFillColor(255, 255, 255) + pdf.SetLineCapStyle("round") + pdf.SetLineJoinStyle("round") + pdf.SetLineWidth(1) pdf.AddPage() - pdf.SetFillColor(255, 255, 255) // to be compatible with draw2d return pdf } @@ -176,12 +181,20 @@ func (gc *GraphicContext) Stroke(paths ...*draw2d.PathStorage) { // Fill fills the paths with the color specified by SetFillColor func (gc *GraphicContext) Fill(paths ...*draw2d.PathStorage) { - gc.draw("F", paths...) + style := "F" + if !gc.Current.FillRule.UseNonZeroWinding() { + style += "*" + } + gc.draw(style, paths...) } // FillStroke first fills the paths and than strokes them func (gc *GraphicContext) FillStroke(paths ...*draw2d.PathStorage) { - gc.draw("FD", paths...) + style := "FD" + if !gc.Current.FillRule.UseNonZeroWinding() { + style += "*" + } + gc.draw(style, paths...) } var logger = log.New(os.Stdout, "", log.Lshortfile) @@ -190,12 +203,9 @@ var logger = log.New(os.Stdout, "", log.Lshortfile) func (gc *GraphicContext) draw(style string, paths ...*draw2d.PathStorage) { paths = append(paths, gc.Current.Path) pathConverter := NewPathConverter(gc.pdf) - // pathConverter := NewPathConverter(NewPathLogger(logger, gc.pdf)) pathConverter.Convert(paths...) - if gc.Current.FillRule.UseNonZeroWinding() { - style += "*" - } gc.pdf.DrawPath(style) + gc.Current.Path.Clear() } // overwrite StackGraphicContext methods From 781a0defe5066768ac26705897251183c299e6f2 Mon Sep 17 00:00:00 2001 From: Stani Date: Sat, 11 Jul 2015 01:13:39 +0200 Subject: [PATCH 31/61] previous fix makes Save and Restore for line caps join unnecessary --- samples/linecapjoin/linecapjoin.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/samples/linecapjoin/linecapjoin.go b/samples/linecapjoin/linecapjoin.go index 6acf659..81d78f0 100644 --- a/samples/linecapjoin/linecapjoin.go +++ b/samples/linecapjoin/linecapjoin.go @@ -31,7 +31,6 @@ func Main(gc draw2d.GraphicContext, ext string) (string, error) { // Draw a line with an angle with specified line cap and join func Draw(gc draw2d.GraphicContext, cap draw2d.Cap, join draw2d.Join, x0, y0, x1, y1, offset float64) { - gc.Save() // pdf: save & restore needed to isolate caps and joins gc.SetLineCap(cap) gc.SetLineJoin(join) @@ -50,5 +49,4 @@ func Draw(gc draw2d.GraphicContext, cap draw2d.Cap, join draw2d.Join, gc.LineTo((x0+x1)/2+offset, (y0+y1)/2) gc.LineTo(x1, y1) gc.Stroke() - gc.Restore() } From 08a6c87a0be561f1d6db6a0831cd55168a58dca8 Mon Sep 17 00:00:00 2001 From: Stani Date: Sat, 11 Jul 2015 01:22:50 +0200 Subject: [PATCH 32/61] replace gc.Current.Path.Clear() with gc.Current.Path = draw2d.NewPathStorage(); fixes #61 --- draw2dgl/gc.go | 4 ++-- draw2dpdf/gc.go | 2 +- image.go | 2 +- path_storage.go | 6 ------ stack_gc.go | 2 +- 5 files changed, 5 insertions(+), 11 deletions(-) diff --git a/draw2dgl/gc.go b/draw2dgl/gc.go index 2833dcc..66e25cb 100644 --- a/draw2dgl/gc.go +++ b/draw2dgl/gc.go @@ -199,7 +199,7 @@ func (gc *GraphicContext) Stroke(paths ...*draw2d.PathStorage) { pathConverter.Convert(paths...) gc.paint(gc.strokeRasterizer, gc.Current.StrokeColor) - gc.Current.Path.Clear() + gc.Current.Path = draw2d.NewPathStorage() } func (gc *GraphicContext) Fill(paths ...*draw2d.PathStorage) { @@ -211,7 +211,7 @@ func (gc *GraphicContext) Fill(paths ...*draw2d.PathStorage) { pathConverter.Convert(paths...) gc.paint(gc.fillRasterizer, gc.Current.FillColor) - gc.Current.Path.Clear() + gc.Current.Path = draw2d.NewPathStorage() } func (gc *GraphicContext) FillStroke(paths ...*draw2d.PathStorage) { diff --git a/draw2dpdf/gc.go b/draw2dpdf/gc.go index 51c0fd5..fd9563a 100644 --- a/draw2dpdf/gc.go +++ b/draw2dpdf/gc.go @@ -205,7 +205,7 @@ func (gc *GraphicContext) draw(style string, paths ...*draw2d.PathStorage) { pathConverter := NewPathConverter(gc.pdf) pathConverter.Convert(paths...) gc.pdf.DrawPath(style) - gc.Current.Path.Clear() + gc.Current.Path = draw2d.NewPathStorage() } // overwrite StackGraphicContext methods diff --git a/image.go b/image.go index bc4d403..8e5fa72 100644 --- a/image.go +++ b/image.go @@ -269,7 +269,7 @@ func (gc *ImageGraphicContext) paint(rasterizer *raster.Rasterizer, color color. gc.painter.SetColor(color) rasterizer.Rasterize(gc.painter) rasterizer.Clear() - gc.Current.Path.Clear() + gc.Current.Path = NewPathStorage() } // Stroke strokes the paths with the color specified by SetStrokeColor diff --git a/path_storage.go b/path_storage.go index a7e1662..b19ea3d 100644 --- a/path_storage.go +++ b/path_storage.go @@ -32,12 +32,6 @@ func NewPathStorage() (p *PathStorage) { return } -func (p *PathStorage) Clear() { - p.Commands = p.Commands[0:0] - p.Vertices = p.Vertices[0:0] - return -} - func (p *PathStorage) appendToPath(cmd PathCmd, Vertices ...float64) { if cap(p.Vertices) <= len(p.Vertices)+6 { a := make([]PathCmd, len(p.Commands), cap(p.Commands)+256) diff --git a/stack_gc.go b/stack_gc.go index c1ac309..1e09e8f 100644 --- a/stack_gc.go +++ b/stack_gc.go @@ -125,7 +125,7 @@ func (gc *StackGraphicContext) GetFontData() FontData { } func (gc *StackGraphicContext) BeginPath() { - gc.Current.Path.Clear() + gc.Current.Path = NewPathStorage() } func (gc *StackGraphicContext) IsEmpty() bool { From 743e1133496600cc0746912b2f3e35146ba5c3e4 Mon Sep 17 00:00:00 2001 From: Stani Date: Sat, 11 Jul 2015 18:39:51 +0200 Subject: [PATCH 33/61] fix arc angle bug --- draw2dpdf/path_converter.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/draw2dpdf/path_converter.go b/draw2dpdf/path_converter.go index 77bbfb6..befb3f8 100644 --- a/draw2dpdf/path_converter.go +++ b/draw2dpdf/path_converter.go @@ -47,10 +47,11 @@ func (c *PathConverter) ConvertCommand(cmd draw2d.PathCmd, vertices ...float64) c.pdf.CurveBezierCubicTo(vertices[0], vertices[1], vertices[2], vertices[3], vertices[4], vertices[5]) return 6 case draw2d.ArcTo: + // draw2d: angles clockwise, fpdf angles counter clockwise c.pdf.ArcTo(vertices[0], vertices[1], vertices[2], vertices[3], - 0, // degRotate - vertices[4]*deg, // degStart = startAngle - (vertices[4]-vertices[5])*deg) // degEnd = startAngle-angle + 0, // degRotate + -vertices[4]*deg, // degStart = -startAngle + (-vertices[4]-vertices[5])*deg) // degEnd = -startAngle-angle return 6 default: // case draw2d.Close: c.pdf.ClosePath() From 6e1b43c32fbf155b99ffa962374b53be8643764b Mon Sep 17 00:00:00 2001 From: Stani Date: Sat, 11 Jul 2015 18:41:38 +0200 Subject: [PATCH 34/61] fix typo --- samples/gopher/gopher.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/gopher/gopher.go b/samples/gopher/gopher.go index dbd488d..2d5119f 100644 --- a/samples/gopher/gopher.go +++ b/samples/gopher/gopher.go @@ -13,7 +13,7 @@ import ( ) // Main draws a left hand and ear of a gopher. Afterwards it returns -// the filename. This should only be during testing. +// the filename. This should only be used during testing. func Main(gc draw2d.GraphicContext, ext string) (string, error) { gc.Save() gc.Scale(0.5, 0.5) From a43544c31db04d651e65ea93a4399ca9e868ec5b Mon Sep 17 00:00:00 2001 From: Stani Date: Sat, 11 Jul 2015 18:44:36 +0200 Subject: [PATCH 35/61] add geometry and gopher2 samples --- draw2dpdf/samples_test.go | 15 ++ samples/geometry/geometry.go | 317 +++++++++++++++++++++++++++++++++++ samples/gopher2/gopher2.go | 106 ++++++++++++ samples_test.go | 14 ++ 4 files changed, 452 insertions(+) create mode 100644 samples/geometry/geometry.go create mode 100644 samples/gopher2/gopher2.go diff --git a/draw2dpdf/samples_test.go b/draw2dpdf/samples_test.go index 8da8b8d..ca3441f 100644 --- a/draw2dpdf/samples_test.go +++ b/draw2dpdf/samples_test.go @@ -10,7 +10,9 @@ import ( "github.com/llgcode/draw2d" "github.com/llgcode/draw2d/samples/android" "github.com/llgcode/draw2d/samples/frameimage" + "github.com/llgcode/draw2d/samples/geometry" "github.com/llgcode/draw2d/samples/gopher" + "github.com/llgcode/draw2d/samples/gopher2" "github.com/llgcode/draw2d/samples/helloworld" "github.com/llgcode/draw2d/samples/line" "github.com/llgcode/draw2d/samples/linecapjoin" @@ -21,10 +23,23 @@ func TestSampleAndroid(t *testing.T) { test(t, android.Main) } +// TODO: FillString: w (width) is incorrect +func TestSampleGeometry(t *testing.T) { + // Set the global folder for searching fonts + // The pdf backend needs for every ttf file its corresponding + // json/.z file which is generated by gofpdf/makefont. + draw2d.SetFontFolder("../resource/font") + test(t, geometry.Main) +} + func TestSampleGopher(t *testing.T) { test(t, gopher.Main) } +func TestSampleGopher2(t *testing.T) { + test(t, gopher2.Main) +} + func TestSampleHelloWorld(t *testing.T) { // Set the global folder for searching fonts // The pdf backend needs for every ttf file its corresponding diff --git a/samples/geometry/geometry.go b/samples/geometry/geometry.go new file mode 100644 index 0000000..f6b6551 --- /dev/null +++ b/samples/geometry/geometry.go @@ -0,0 +1,317 @@ +// Copyright 2010 The draw2d Authors. All rights reserved. +// created: 21/11/2010 by Laurent Le Goff + +// Package geometry draws some geometric tests. +package geometry + +import ( + "image" + "image/color" + "math" + + "github.com/llgcode/draw2d" + "github.com/llgcode/draw2d/samples" + "github.com/llgcode/draw2d/samples/gopher2" +) + +// Main draws geometry and returns the filename. This should only be +// used during testing. +func Main(gc draw2d.GraphicContext, ext string) (string, error) { + // Draw the droid + Draw(gc, 297, 210) + + // Return the output filename + return samples.Output("geometry", ext), nil +} + +// Bubble draws a text balloon +func Bubble(gc draw2d.GraphicContext, x, y, width, height float64) { + sx, sy := width/100, height/100 + gc.MoveTo(x+sx*50, y) + gc.QuadCurveTo(x, y, x, y+sy*37.5) + gc.QuadCurveTo(x, y+sy*75, x+sx*25, y+sy*75) + gc.QuadCurveTo(x+sx*25, y+sy*95, x+sx*5, y+sy*100) + gc.QuadCurveTo(x+sx*35, y+sy*95, x+sx*40, y+sy*75) + gc.QuadCurveTo(x+sx*100, y+sy*75, x+sx*100, y+sy*37.5) + gc.QuadCurveTo(x+sx*100, y, x+sx*50, y) + gc.Stroke() +} + +func CurveRectangle(gc draw2d.GraphicContext, x0, y0, + rect_width, rect_height float64, stroke, fill color.Color) { + radius := (rect_width + rect_height) / 4 + + x1 := x0 + rect_width + y1 := y0 + rect_height + if rect_width/2 < radius { + if rect_height/2 < radius { + gc.MoveTo(x0, (y0+y1)/2) + gc.CubicCurveTo(x0, y0, x0, y0, (x0+x1)/2, y0) + gc.CubicCurveTo(x1, y0, x1, y0, x1, (y0+y1)/2) + gc.CubicCurveTo(x1, y1, x1, y1, (x1+x0)/2, y1) + gc.CubicCurveTo(x0, y1, x0, y1, x0, (y0+y1)/2) + } else { + gc.MoveTo(x0, y0+radius) + gc.CubicCurveTo(x0, y0, x0, y0, (x0+x1)/2, y0) + gc.CubicCurveTo(x1, y0, x1, y0, x1, y0+radius) + gc.LineTo(x1, y1-radius) + gc.CubicCurveTo(x1, y1, x1, y1, (x1+x0)/2, y1) + gc.CubicCurveTo(x0, y1, x0, y1, x0, y1-radius) + } + } else { + if rect_height/2 < radius { + gc.MoveTo(x0, (y0+y1)/2) + gc.CubicCurveTo(x0, y0, x0, y0, x0+radius, y0) + gc.LineTo(x1-radius, y0) + gc.CubicCurveTo(x1, y0, x1, y0, x1, (y0+y1)/2) + gc.CubicCurveTo(x1, y1, x1, y1, x1-radius, y1) + gc.LineTo(x0+radius, y1) + gc.CubicCurveTo(x0, y1, x0, y1, x0, (y0+y1)/2) + } else { + gc.MoveTo(x0, y0+radius) + gc.CubicCurveTo(x0, y0, x0, y0, x0+radius, y0) + gc.LineTo(x1-radius, y0) + gc.CubicCurveTo(x1, y0, x1, y0, x1, y0+radius) + gc.LineTo(x1, y1-radius) + gc.CubicCurveTo(x1, y1, x1, y1, x1-radius, y1) + gc.LineTo(x0+radius, y1) + gc.CubicCurveTo(x0, y1, x0, y1, x0, y1-radius) + } + } + gc.Close() + + gc.SetStrokeColor(stroke) + gc.SetFillColor(fill) + gc.SetLineWidth(10.0) + gc.FillStroke() +} + +func Dash(gc draw2d.GraphicContext, x, y, width, height float64) { + sx, sy := width/162, height/205 + gc.SetStrokeColor(image.Black) + gc.SetLineDash([]float64{height / 10, height / 50, height / 50, height / 50}, -50.0) + gc.SetLineCap(draw2d.ButtCap) + gc.SetLineJoin(draw2d.RoundJoin) + gc.SetLineWidth(height / 50) + + gc.MoveTo(x+sx*60.0, y) + gc.LineTo(x+sx*60.0, y) + gc.LineTo(x+sx*162, y+sy*205) + gc.RLineTo(sx*-102.4, 0.0) + gc.CubicCurveTo(x+sx*-17, y+sy*205, x+sx*-17, y+sy*103, x+sx*60.0, y+sy*103.0) + gc.Stroke() + gc.SetLineDash(nil, 0.0) +} + +func Arc(gc draw2d.GraphicContext, xc, yc, width, height float64) { + // draw an arc + xc += width / 2 + yc += height / 2 + radiusX, radiusY := width/2, height/2 + startAngle := 45 * (math.Pi / 180.0) /* angles are specified */ + angle := 135 * (math.Pi / 180.0) /* clockwise in radians */ + gc.SetLineWidth(width / 10) + gc.SetLineCap(draw2d.ButtCap) + gc.SetStrokeColor(image.Black) + gc.MoveTo(xc+math.Cos(startAngle)*radiusX, yc+math.Sin(startAngle)*radiusY) + gc.ArcTo(xc, yc, radiusX, radiusY, startAngle, angle) + gc.Stroke() + + // fill a circle + gc.SetStrokeColor(color.NRGBA{255, 0x33, 0x33, 0x80}) + gc.SetFillColor(color.NRGBA{255, 0x33, 0x33, 0x80}) + gc.SetLineWidth(width / 20) + + gc.MoveTo(xc, yc) + gc.LineTo(xc+math.Cos(startAngle)*radiusX, yc+math.Sin(startAngle)*radiusY) + gc.MoveTo(xc, yc) + gc.LineTo(xc-radiusX, yc) + gc.Stroke() + + gc.MoveTo(xc, yc) + gc.ArcTo(xc, yc, width/10.0, height/10.0, 0, 2*math.Pi) + gc.Fill() +} + +func ArcNegative(gc draw2d.GraphicContext, xc, yc, width, height float64) { + xc += width / 2 + yc += height / 2 + radiusX, radiusY := width/2, height/2 + startAngle := 45.0 * (math.Pi / 180.0) /* angles are specified */ + angle := -225 * (math.Pi / 180.0) /* clockwise in radians */ + gc.SetLineWidth(width / 10) + gc.SetLineCap(draw2d.ButtCap) + gc.SetStrokeColor(image.Black) + + gc.ArcTo(xc, yc, radiusX, radiusY, startAngle, angle) + gc.Stroke() + // fill a circle + gc.SetStrokeColor(color.NRGBA{255, 0x33, 0x33, 0x80}) + gc.SetFillColor(color.NRGBA{255, 0x33, 0x33, 0x80}) + gc.SetLineWidth(width / 20) + + gc.MoveTo(xc, yc) + gc.LineTo(xc+math.Cos(startAngle)*radiusX, yc+math.Sin(startAngle)*radiusY) + gc.MoveTo(xc, yc) + gc.LineTo(xc-radiusX, yc) + gc.Stroke() + + gc.ArcTo(xc, yc, width/10.0, height/10.0, 0, 2*math.Pi) + gc.Fill() +} + +func CubicCurve(gc draw2d.GraphicContext, x, y, width, height float64) { + sx, sy := width/162, height/205 + x0, y0 := x, y+sy*100.0 + x1, y1 := x+sx*75, y+sy*205 + x2, y2 := x+sx*125, y + x3, y3 := x+sx*205, y+sy*100 + + gc.SetStrokeColor(image.Black) + gc.SetFillColor(color.NRGBA{0xAA, 0xAA, 0xAA, 0xFF}) + gc.SetLineWidth(width / 10) + gc.MoveTo(x0, y0) + gc.CubicCurveTo(x1, y1, x2, y2, x3, y3) + gc.Stroke() + + gc.SetStrokeColor(color.NRGBA{0xFF, 0x33, 0x33, 0x88}) + + gc.SetLineWidth(width / 20) + // draw segment of curve + gc.MoveTo(x0, y0) + gc.LineTo(x1, y1) + gc.LineTo(x2, y2) + gc.LineTo(x3, y3) + gc.Stroke() +} + +func FillString(gc draw2d.GraphicContext, x, y, width, height float64) { + sx, sy := width/100, height/100 + gc.Save() + gc.SetStrokeColor(image.Black) + gc.SetLineWidth(1) + draw2d.RoundRect(gc, x+sx*5, y+sy*5, x+sx*95, y+sy*95, sx*10, sy*10) + gc.FillStroke() + gc.SetFillColor(image.Black) + gc.SetFontSize(height / 6) + gc.Translate(x+sx*6, y+sy*52) + gc.SetFontData(draw2d.FontData{"luxi", draw2d.FontFamilyMono, draw2d.FontStyleBold | draw2d.FontStyleItalic}) + w := gc.FillString("cou") + gc.Translate(w+sx, 0) + left, top, right, bottom := gc.GetStringBounds("cou") + gc.SetStrokeColor(color.NRGBA{255, 0x33, 0x33, 0x80}) + draw2d.Rect(gc, left, top, right, bottom) + gc.SetLineWidth(height / 20) + gc.Stroke() + gc.SetStrokeColor(color.NRGBA{0x33, 0x33, 0xff, 0xff}) + gc.SetLineWidth(height / 100) + gc.StrokeString("cou") + gc.Restore() +} + +func FillStroke(gc draw2d.GraphicContext, x, y, width, height float64) { + sx, sy := width/210, height/215 + gc.MoveTo(x+sx*113.0, y) + gc.LineTo(x+sx*215.0, y+sy*215) + gc.RLineTo(sx*-100, 0) + gc.CubicCurveTo(x+sx*35, y+sy*215, x+sx*35, y+sy*113, x+sx*113.0, y+sy*113) + gc.Close() + + gc.MoveTo(x+sx*50.0, y) + gc.RLineTo(sx*51.2, sy*51.2) + gc.RLineTo(sx*-51.2, sy*51.2) + gc.RLineTo(sx*-51.2, sy*-51.2) + gc.Close() + + gc.SetLineWidth(width / 20.0) + gc.SetFillColor(color.NRGBA{0, 0, 0xFF, 0xFF}) + gc.SetStrokeColor(image.Black) + gc.FillStroke() +} + +func FillStyle(gc draw2d.GraphicContext, x, y, width, height float64) { + sx, sy := width/232, height/220 + gc.SetLineWidth(width / 40) + + draw2d.Rect(gc, x+sx*0, y+sy*12, x+sx*232, y+sy*70) + + wheel1 := new(draw2d.PathStorage) + wheel1.ArcTo(x+sx*52, y+sy*70, sx*40, sy*40, 0, 2*math.Pi) + wheel2 := new(draw2d.PathStorage) + wheel2.ArcTo(x+sx*180, y+sy*70, sx*40, sy*40, 0, -2*math.Pi) + + gc.SetFillRule(draw2d.FillRuleEvenOdd) + gc.SetFillColor(color.NRGBA{0, 0xB2, 0, 0xFF}) + + gc.SetStrokeColor(image.Black) + gc.FillStroke(wheel1, wheel2) + + draw2d.Rect(gc, x, y+sy*140, x+sx*232, y+sy*198) + wheel1 = new(draw2d.PathStorage) + wheel1.ArcTo(x+sx*52, y+sy*198, sx*40, sy*40, 0, 2*math.Pi) + wheel2 = new(draw2d.PathStorage) + wheel2.ArcTo(x+sx*180, y+sy*198, sx*40, sy*40, 0, -2*math.Pi) + + gc.SetFillRule(draw2d.FillRuleWinding) + gc.SetFillColor(color.NRGBA{0, 0, 0xE5, 0xFF}) + gc.FillStroke(wheel1, wheel2) +} + +func PathTransform(gc draw2d.GraphicContext, x, y, width, height float64) { + gc.Save() + gc.SetLineWidth(width / 10) + gc.Translate(x+width/2, y+height/2) + gc.Scale(1, 4) + gc.ArcTo(0, 0, width/8, height/8, 0, math.Pi*2) + gc.Close() + gc.Stroke() + gc.Restore() +} + +func Star(gc draw2d.GraphicContext, x, y, width, height float64) { + gc.Save() + gc.Translate(x+width/2, y+height/2) + gc.SetLineWidth(width / 40) + for i := 0.0; i < 360; i = i + 10 { // Go from 0 to 360 degrees in 10 degree steps + gc.Save() // Keep rotations temporary + gc.Rotate(i * (math.Pi / 180.0)) // Rotate by degrees on stack from 'for' + gc.MoveTo(0, 0) + gc.LineTo(width/2, 0) + gc.Stroke() + gc.Restore() + } + gc.Restore() +} + +func Draw(gc draw2d.GraphicContext, width, height float64) { + mx, my := width*0.025, height*0.025 // margin + dx, dy := (width-2*mx)/4, (height-2*my)/3 + w, h := dx-2*mx, dy-2*my + x0, y := 2*mx, 2*my + x := x0 + Bubble(gc, x, y, w, h) + x += dx + CurveRectangle(gc, x, y, w, h, color.NRGBA{0x80, 0, 0, 0x80}, color.NRGBA{0x80, 0x80, 0xFF, 0xFF}) + x += dx + Dash(gc, x, y, w, h) + x += dx + Arc(gc, x, y, w, h) + x = x0 + y += dy + ArcNegative(gc, x, y, w, h) + x += dx + CubicCurve(gc, x, y, w, h) + x += dx + FillString(gc, x, y, w, h) + x += dx + FillStroke(gc, x, y, w, h) + x = x0 + y += dy + FillStyle(gc, x, y, w, h) + x += dx + PathTransform(gc, x, y, w, h) + x += dx + Star(gc, x, y, w, h) + x += dx + gopher2.Draw(gc, x, y, w, h/2) +} diff --git a/samples/gopher2/gopher2.go b/samples/gopher2/gopher2.go new file mode 100644 index 0000000..012c3ca --- /dev/null +++ b/samples/gopher2/gopher2.go @@ -0,0 +1,106 @@ +// Copyright 2010 The draw2d Authors. All rights reserved. +// created: 21/11/2010 by Laurent Le Goff + +// Package gopher2 draws a gopher avatar based on a svg of: +// https://github.com/golang-samples/gopher-vector/ +package gopher2 + +import ( + "image" + "image/color" + "math" + + "github.com/llgcode/draw2d" + "github.com/llgcode/draw2d/samples" +) + +// Main draws a rotated face of the gopher. Afterwards it returns +// the filename. This should only be used during testing. +func Main(gc draw2d.GraphicContext, ext string) (string, error) { + gc.SetStrokeColor(image.Black) + gc.SetFillColor(image.White) + gc.Save() + // Draw a (partial) gopher + gc.Translate(-65, 65) + gc.Rotate(-30 * (math.Pi / 180.0)) + Draw(gc, 48, 48, 240, 72) + gc.Restore() + + // Return the output filename + return samples.Output("gopher2", ext), nil +} + +// Draw a gopher head (not rotated) +func Draw(gc draw2d.GraphicContext, x, y, w, h float64) { + h23 := (h * 2) / 3 + + blf := color.RGBA{0, 0, 0, 0xff} // black + wf := color.RGBA{0xff, 0xff, 0xff, 0xff} // white + nf := color.RGBA{0x8B, 0x45, 0x13, 0xff} // brown opaque + brf := color.RGBA{0x8B, 0x45, 0x13, 0x99} // brown transparant + brb := color.RGBA{0x8B, 0x45, 0x13, 0xBB} // brown transparant + + // round head top + gc.MoveTo(x, y+h) + gc.CubicCurveTo(x, y+h*1.05, x+w/2, y-h, x+w, y+h*1.05) + gc.Close() + gc.SetFillColor(brb) + gc.Fill() + // rectangle head bottom + draw2d.RoundRect(gc, x, y+h, x+w, y+h+h, w/5, h/5) + gc.Fill() + // left ear outside + draw2d.Circle(gc, x, y+h, w/12) + gc.SetFillColor(brf) + gc.Fill() + // left ear inside + draw2d.Circle(gc, x, y+h, 0.5*w/12) + gc.SetFillColor(nf) + gc.Fill() + // right ear outside + draw2d.Circle(gc, x+w, y+h, w/12) + gc.SetFillColor(brf) + gc.Fill() + // right ear inside + draw2d.Circle(gc, x+w, y+h, 0.5*w/12) + gc.SetFillColor(nf) + gc.Fill() + // left eye outside white + draw2d.Circle(gc, x+w/3, y+h23, w/9) + gc.SetFillColor(wf) + gc.Fill() + // left eye black + draw2d.Circle(gc, x+w/3+w/24, y+h23, 0.5*w/9) + gc.SetFillColor(blf) + gc.Fill() + // left eye inside white + draw2d.Circle(gc, x+w/3+w/24+w/48, y+h23, 0.2*w/9) + gc.SetFillColor(wf) + gc.Fill() + // right eye outside white + draw2d.Circle(gc, x+w-w/3, y+h23, w/9) + gc.Fill() + // right eye black + draw2d.Circle(gc, x+w-w/3+w/24, y+h23, 0.5*w/9) + gc.SetFillColor(blf) + gc.Fill() + // right eye inside white + draw2d.Circle(gc, x+w-(w/3)+w/24+w/48, y+h23, 0.2*w/9) + gc.SetFillColor(wf) + gc.Fill() + // left tooth + gc.SetFillColor(wf) + draw2d.RoundRect(gc, x+w/2-w/8, y+h+h/2.5, x+w/2-w/8+w/8, y+h+h/2.5+w/6, w/10, w/10) + gc.Fill() + // right tooth + draw2d.RoundRect(gc, x+w/2, y+h+h/2.5, x+w/2+w/8, y+h+h/2.5+w/6, w/10, w/10) + gc.Fill() + // snout + draw2d.Ellipse(gc, x+(w/2), y+h+h/2.5, w/6, w/12) + gc.SetFillColor(nf) + gc.Fill() + // nose + draw2d.Ellipse(gc, x+(w/2), y+h+h/7, w/10, w/12) + gc.SetFillColor(blf) + gc.Fill() +} diff --git a/samples_test.go b/samples_test.go index fdf7614..fe22f06 100644 --- a/samples_test.go +++ b/samples_test.go @@ -8,7 +8,9 @@ import ( "github.com/llgcode/draw2d" "github.com/llgcode/draw2d/samples/android" "github.com/llgcode/draw2d/samples/frameimage" + "github.com/llgcode/draw2d/samples/geometry" "github.com/llgcode/draw2d/samples/gopher" + "github.com/llgcode/draw2d/samples/gopher2" "github.com/llgcode/draw2d/samples/helloworld" "github.com/llgcode/draw2d/samples/line" "github.com/llgcode/draw2d/samples/linecapjoin" @@ -19,10 +21,22 @@ func TestSampleAndroid(t *testing.T) { test(t, android.Main) } +func TestSampleGeometry(t *testing.T) { + // Set the global folder for searching fonts + // The pdf backend needs for every ttf file its corresponding + // json/.z file which is generated by gofpdf/makefont. + draw2d.SetFontFolder("resource/font") + test(t, geometry.Main) +} + func TestSampleGopher(t *testing.T) { test(t, gopher.Main) } +func TestSampleGopher2(t *testing.T) { + test(t, gopher2.Main) +} + func TestSampleHelloWorld(t *testing.T) { // Set the global folder for searching fonts draw2d.SetFontFolder("resource/font") From 99f1fece69aa19a9f40779874e9bf0310aa8bdf5 Mon Sep 17 00:00:00 2001 From: Stani Date: Sat, 11 Jul 2015 18:58:28 +0200 Subject: [PATCH 36/61] implement SetLineDash for draw2dpdf --- draw2dpdf/gc.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/draw2dpdf/gc.go b/draw2dpdf/gc.go index fd9563a..2eb5ed8 100644 --- a/draw2dpdf/gc.go +++ b/draw2dpdf/gc.go @@ -261,6 +261,12 @@ func (gc *GraphicContext) SetFontSize(fontSize float64) { gc.pdf.SetFontSize(fontSize * gc.Current.Scale) } +// SetLineDash sets the line dash pattern +func (gc *GraphicContext) SetLineDash(Dash []float64, DashOffset float64) { + gc.StackGraphicContext.SetLineDash(Dash, DashOffset) + gc.pdf.SetDashPattern(Dash, DashOffset) +} + // SetLineWidth sets the line width func (gc *GraphicContext) SetLineWidth(LineWidth float64) { gc.StackGraphicContext.SetLineWidth(LineWidth) From 224b85d99a68fa69f8650c20f638a603415c8987 Mon Sep 17 00:00:00 2001 From: Stani Date: Sat, 11 Jul 2015 19:04:02 +0200 Subject: [PATCH 37/61] include geometry sample to show on the frontpage --- output/samples/.gitignore | 3 ++- output/samples/geometry.pdf | Bin 0 -> 38125 bytes output/samples/geometry.png | Bin 0 -> 24640 bytes 3 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 output/samples/geometry.pdf create mode 100644 output/samples/geometry.png diff --git a/output/samples/.gitignore b/output/samples/.gitignore index 86d0cb2..7abb424 100644 --- a/output/samples/.gitignore +++ b/output/samples/.gitignore @@ -1,4 +1,5 @@ # Ignore everything in this directory * # Except this file -!.gitignore \ No newline at end of file +!.gitignore +!geometry.png \ No newline at end of file diff --git a/output/samples/geometry.pdf b/output/samples/geometry.pdf new file mode 100644 index 0000000000000000000000000000000000000000..78f689a5d77eb6644f071880d516ec76d27f5503 GIT binary patch literal 38125 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 T{^}Yn7+e!7qM~AMV}djz>tHKV1<;h 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 D2|}S^ literal 0 HcmV?d00001 From 16a86e75881113cd95f2c19a8e22dc1e3e448755 Mon Sep 17 00:00:00 2001 From: Stani Date: Sat, 11 Jul 2015 19:06:10 +0200 Subject: [PATCH 38/61] remove resource/result --- resource/result/TestAndroid.png | Bin 4597 -> 0 bytes resource/result/TestBigPicture.png | Bin 1883 -> 0 bytes resource/result/TestBubble.png | Bin 4317 -> 0 bytes resource/result/TestCurveRectangle.png | Bin 9670 -> 0 bytes resource/result/TestDash.png | Bin 4835 -> 0 bytes resource/result/TestDrawArc.png | Bin 5332 -> 0 bytes resource/result/TestDrawArcNegative.png | Bin 6539 -> 0 bytes resource/result/TestDrawCubicCurve.png | Bin 8271 -> 0 bytes resource/result/TestDrawImage.png | Bin 23445 -> 0 bytes resource/result/TestFillString.png | Bin 3267 -> 0 bytes resource/result/TestFillStroke.png | Bin 5887 -> 0 bytes resource/result/TestFillStyle.png | Bin 10021 -> 0 bytes resource/result/TestGopher.png | Bin 13826 -> 0 bytes resource/result/TestLineCap.png | Bin 2234 -> 0 bytes resource/result/TestLineJoin.png | Bin 3710 -> 0 bytes resource/result/TestMultiSegmentCaps.png | Bin 2228 -> 0 bytes resource/result/TestPath.png | Bin 2295 -> 0 bytes resource/result/TestPathTransform.png | Bin 10413 -> 0 bytes resource/result/TestRoundRectangle.png | Bin 5122 -> 0 bytes resource/result/TestStar.png | Bin 12855 -> 0 bytes resource/result/TestTransform.png | Bin 6210 -> 0 bytes 21 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 resource/result/TestAndroid.png delete mode 100644 resource/result/TestBigPicture.png delete mode 100644 resource/result/TestBubble.png delete mode 100644 resource/result/TestCurveRectangle.png delete mode 100644 resource/result/TestDash.png delete mode 100644 resource/result/TestDrawArc.png delete mode 100644 resource/result/TestDrawArcNegative.png delete mode 100644 resource/result/TestDrawCubicCurve.png delete mode 100644 resource/result/TestDrawImage.png delete mode 100644 resource/result/TestFillString.png delete mode 100644 resource/result/TestFillStroke.png delete mode 100644 resource/result/TestFillStyle.png delete mode 100644 resource/result/TestGopher.png delete mode 100644 resource/result/TestLineCap.png delete mode 100644 resource/result/TestLineJoin.png delete mode 100644 resource/result/TestMultiSegmentCaps.png delete mode 100644 resource/result/TestPath.png delete mode 100644 resource/result/TestPathTransform.png delete mode 100644 resource/result/TestRoundRectangle.png delete mode 100644 resource/result/TestStar.png delete mode 100644 resource/result/TestTransform.png diff --git a/resource/result/TestAndroid.png b/resource/result/TestAndroid.png deleted file mode 100644 index ffa068bbfaf0c68fe2479eb60bdc3d73cf820cb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4597 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 U>jIUYf9KGc8d@4OLOf9a0kFr%o&W#< diff --git a/resource/result/TestBigPicture.png b/resource/result/TestBigPicture.png deleted file mode 100644 index 791a9dfc6db2e5c020768350f908b950ab22b591..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1883 zcmeAS@N?(olHy`uVBq!ia0y~yU;;9k7&t&wwUqN(1_pK|PZ!6KiaBqt8VWKf@EmaH zJG}p?(qiX-qA90m&t!Huf0vITp`DSzMUuf`$|yA&1f!{7G$V|b1*65`h^P^+@G~&{ Z|KC{4&T#3s3aA=o@O1TaS?83{1OT+@O>zJL diff --git a/resource/result/TestBubble.png b/resource/result/TestBubble.png deleted file mode 100644 index 29fff3fe60e616bf3d02df4794785d135c5bfdce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4317 zcmeHJ`&*Mo7M?^9C>2Ck(W+pfmbyiy;ulaZK|!fS#o`5&KvGdIfeZi(gwRP?xw zi$?fPJAv-WPitMTK93d#a?wf6aGCMV8v0bEIkSK8HQQ^}d{I^-vD{gw4UYopM;j= z??O7ylTO~VboS~XKQV!egQIDqPC+=3_PpMPKTIpR6NmC8KzCC3gQcVe@919mJ9=)20TXJ6R);{AjF}wl>*x$Vr*p;|xf<^AeE#5bqVCZYEhjkGiI&-^&(BjsTJY z=k^}{bvUm4xg)F92E;^}#gbAv@_gx13 zqv|hZaYWVKzRUL*WvS_Rbp;D(A7PLkFdB49?eXQiI*PtJI6>_JPWziK1Y3@&*44Tm z+bMs;j*O}d&T#>fyES(;)6D3S_>-67`q%-EJ2oz5T$)u;c8v9Qi_S+{WSTN8F~Dl6 zI8gV7sFL(uw()O3dvH~2?SX~*l#&5ILVY2g@9+b`V4Mnq3}jhAmMge0*IPfo+|rq@ z_SmVfT0~7tIN=Q3W`1Py)^WqG)3*-K7sq261oz}%jo)vV$uhqj2e36RO7#GJX>loT z&{g1uQd~gdoQN5HCEi1F3W{E^4{Q}x`sNgoBJZ|ktCxY3V->fC@Hq|xanPMB*6rD1 z*4P<+w>fy5AmPkOQ_`^KRq%2pa1|O=`$~QHls~dpZw<_Ig zx57rv)(8BG+B2l&o=Ph?XbZWg z3xY7f9v2Ss9&X3p|6=n!-LPTnoY_FSWlEZEngwj=Yd&Y)k~J#;-x{RKb^r z&xhkjlyb7hdOX05`_*RmC^j5D4F3)vLY6O9VnAWm5kz?<{)8>}AzF^(B3R%!`VLq1 zan>`%?xRl~Al^}0J`%k|W($hP=OA8CPSJ{2p5sFhm3k-!!`~$pu*)#Ke6>eJJ&|AM z{+`!}evjVz29*EnHl=;%D_P%V?`ui@#spTpj_6}8AxXL4HmYq}|20Z`4P3&maIzA2 zdQVVovvvhMq@R#akb@s*tJc9lAHv56g&~ z(K6SN;{$R^3-m?#y$x*-Q4Ukyl>HrR{wxA~o(RaYXcfwQYp2{=LD!fC(u`!DyX~0Q z{G8{fcZvxg0rY$n;@&dW!Jr?L9&s$7=bM#eL1{5BO<-GU=I$@l_OAKG6?k8aAe-wq zW!eX}qivLSU-=QJRWul{>S0EUJFcT&b+s&7KX8*6!Y<^mptN_Ih~f^I!f9xuzB=HX zDp;WvjjI1<&a9!ocx!$qqvi>nCt%W)n6-G)5fsL#K};qcX-?hD(dltj+q5@uLmI1Y z<&x>O=rf8@8rhhAjK!(r1$(7y^WoSNZ_DzW837_xk5 zn|ue<-xx|Eyo_CDM{K#FT(o~ZsE1w$BSwv@v2kSUf8wiZSKTSQmQ$z%R)ba zxVFqH)zMnHh~2tsda!^CNE_GsE zdxOF3r8MpU_q9hy)-ocb8KqT?!+hmZ-WIt2?z4%}LFL-))md~1K}n{yRG)~1m= zknvshp%(3EO_ZvRNz0^o0+KjClQmu6y27-q)5J95ALUK}K+_sA58`l`}YW z4lss9O@GXfwCIX{n20n}DYAJx#%)pWJ6;Q#i__7njTq9Uj++#7AFr9rNncoQAPCvg z_rX(Nz-;%`+LOq?DG=uz0DW!(Hp|?hu(xnw@B74eqr}wB)hS+pgE2)E8f;ch#r z)VZ%+4EW2&3ytvY{a(hPq$$fplE#w3s#Y6Z3Mz13It>3CMWn*iPlx+06VRwIkBAV3 zlT^W8x?I@thaKbR(`2NipFpH#BC!J*cX&?*GQO&zck>FJrA|Qdl?fYUEe;N9ULxp4 zl}%l!Z^D~7ybkK C*vfwZ diff --git a/resource/result/TestCurveRectangle.png b/resource/result/TestCurveRectangle.png deleted file mode 100644 index 2220ee7fda2fe06699a637cc71f60d53c0884a1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9670 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 diff --git a/resource/result/TestDrawCubicCurve.png b/resource/result/TestDrawCubicCurve.png deleted file mode 100644 index 7cff37136a05b0293508720914b40d3925125347..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8271 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 diff --git a/resource/result/TestDrawImage.png b/resource/result/TestDrawImage.png deleted file mode 100644 index c1b377dacf0a99a82aeb03bccca753cf1d2c5ff9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23445 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 z zL^leKVKhr8i5qY5)~26PF{lUn>--)wPHwUdkcOmC;}e!S}xe0>5P6?|H4T)V*TiGS`pgYhY%L;B^?a!GvTVJro!4AJ^;LnGrLply_a}jM{--kh; zYkHp46#ge?pB2Th(vZWFcPsAC$ICy@#@!lNIU77wyWD6M0px^N6bUx#mDBeK7NlBc z*RGY4qt9fne8nY@d_68j@tQurp6Et%GgR@6l)>2sy4J;$9Iel^DeTK!U)VA=!>BJ~ z76d9yke8wG;!F?HXq=#gN1KkHvHst%X8jZAYV&nm(=l_rMKE1+72E9fRv z$WqeeS|VHafKz0v^dZq=SmAL7wn1=GM|(@=ZSi_uZLPwoZmYnKywJnld}kk2yyOb3 zB{4+9W~ov^jVm{a7e}$yCI$NYH-kXj+wt^z^ zlkWr_)_yCB5z{BomJbxo(*920;ku{Fis^e1>!RE^4sLy{0?d{5)_z6=B-c>t#w5@0 zrdaekfOR%a?XkJQg_M<4$jC}XrU0D!x@{~G+}QCQ$LG*%3tg4%v&CBE1=0{be4Is? zCNCZQ<5`|HL$v~q^x$i%{F$b@nXy*Nhbjv)i9;Yz<33IfOlto5iC|;4>+-u4_C{D1 zG&FxIlLd3VF?{;;OIDRDcI|WyZU2ztJ~IdG?%zV^^yiUpl@MbP_Vg^TKdD+QpE5i8 z)3iy3J@d*NC9dya{QR`2daGc9m!0f-!n?%}1VjnzI%dvsyx61ab7BJZwo2UOp9MOA zKi*V){pEtvs9Q&3#?ea@Drch!SXDH?u0538m(7l}EzF`tqm2?KuYuF`?|nmNm)vC+ z_5M*Z#9Y?H?5>@(`ObgYEgz7bAx`+5%|CogPkE06McbIUPZdbWuAEYGRG%3HO~;RHZ6tn6-yZxto4^ChE;EX@mbEgF^@0_j4QruKpYHAHB~2 diff --git a/resource/result/TestFillStyle.png b/resource/result/TestFillStyle.png deleted file mode 100644 index ad23dda9f4464a266c489428367bba9b87734c5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10021 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 diff --git a/resource/result/TestGopher.png b/resource/result/TestGopher.png deleted file mode 100644 index aac6491b7073390c632c0ff3c1b5e02ae2d6a26d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13826 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 delta 3739 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 TL2bpx9Lj0{DXE)Qw*dbJlo&!v diff --git a/samples/geometry/geometry.go b/samples/geometry/geometry.go index 692c43a..8fb105f 100644 --- a/samples/geometry/geometry.go +++ b/samples/geometry/geometry.go @@ -210,8 +210,9 @@ func FillString(gc draw2d.GraphicContext, x, y, width, height float64) { left, top, right, bottom := gc.GetStringBounds("cou") gc.SetStrokeColor(color.NRGBA{255, 0x33, 0x33, 0x80}) draw2d.Rect(gc, left, top, right, bottom) - gc.SetLineWidth(height / 20) + gc.SetLineWidth(height / 50) gc.Stroke() + gc.SetFillColor(color.NRGBA{0x33, 0x33, 0xff, 0xff}) gc.SetStrokeColor(color.NRGBA{0x33, 0x33, 0xff, 0xff}) gc.SetLineWidth(height / 100) gc.StrokeString("cou") From 316bf1b039482953d0b01a22d6ee76e35ec27b2f Mon Sep 17 00:00:00 2001 From: Stani Date: Sun, 12 Jul 2015 03:03:27 +0200 Subject: [PATCH 49/61] Add README to draw2dpdf --- draw2dpdf/README.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 draw2dpdf/README.md diff --git a/draw2dpdf/README.md b/draw2dpdf/README.md new file mode 100644 index 0000000..6ac7e99 --- /dev/null +++ b/draw2dpdf/README.md @@ -0,0 +1,42 @@ +draw2d pdf +========== + +Package draw2dpdf provides a graphic context that can draw vector graphics and text on pdf file with the [gofpdf](https://github.com/jung-kurt/gofpdf) package. + +Quick Start +----------- + +The following Go code generates a simple drawing and saves it to a pdf document: +```go +// Initialize the graphic context on an RGBA image +dest := draw2dpdf.NewPdf("L", "mm", "A4") +gc := draw2d.NewGraphicContext(dest) + +// Set some properties +gc.SetFillColor(color.RGBA{0x44, 0xff, 0x44, 0xff}) +gc.SetStrokeColor(color.RGBA{0x44, 0x44, 0x44, 0xff}) +gc.SetLineWidth(5) + +// Draw a closed shape +gc.MoveTo(10, 10) // should always be called first for a new path +gc.LineTo(100, 50) +gc.QuadCurveTo(100, 10, 10, 10) +gc.Close() +gc.FillStroke() + +// Save to file +draw2dpdf.SaveToPdfFile("hello.pdf", dest) +``` + +There are more examples here: https://github.com/llgcode/draw2d/tree/master/samples + +Alternative backends +-------------------- + +- Drawing on images is provided by the draw2d package. +- Drawing on opengl is provided by the draw2dgl package. + +Acknowledgments +--------------- + +The pdf backend uses https://github.com/jung-kurt/gofpdf \ No newline at end of file From 9bd0ecf14ed351b78aff3f8e7ff9c96afaebd6f4 Mon Sep 17 00:00:00 2001 From: Stani Date: Sun, 12 Jul 2015 03:04:30 +0200 Subject: [PATCH 50/61] use filenames in examples README --- README.md | 7 ++++--- draw2d.go | 2 +- draw2dpdf/doc.go | 6 ++++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 31b1091..21c2d94 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ draw2d ====== -Package draw2d is a pure [go](http://golang.org) 2D vector graphics library with support for multiple output devices such as [images](http://golang.org/pkg/image) (draw2d), pdf documents (draw2dpdf) and opengl (draw2dopengl), which can also be used on the google app engine. It can be used as a pure go [Cairo](http://www.cairographics.org/) alternative. draw2d is released under the BSD license. See the [documentation](http://godoc.org/github.com/llgcode/draw2d) for more details. +Package draw2d is a pure [go](http://golang.org) 2D vector graphics library with support for multiple output devices such as [images](http://golang.org/pkg/image) (draw2d), pdf documents (draw2dpdf) and opengl (draw2dgl), which can also be used on the google app engine. It can be used as a pure go [Cairo](http://www.cairographics.org/) alternative. draw2d is released under the BSD license. See the [documentation](http://godoc.org/github.com/llgcode/draw2d) for more details. [![geometry](https://raw.githubusercontent.com/llgcode/draw2d/master/output/samples/geometry.png)](https://raw.githubusercontent.com/llgcode/draw2d/master/resource/image/geometry.pdf)[![postscript](https://raw.githubusercontent.com/llgcode/draw2d/master/output/samples/postscript.png)](https://raw.githubusercontent.com/llgcode/draw2d/master/resource/image/postscript.pdf) @@ -46,7 +46,7 @@ gc.Close() gc.FillStroke() // Save to file -draw2d.SaveToPngFile(fn, dest) +draw2d.SaveToPngFile("hello.png", dest) ``` The same Go code can also generate a pdf document with package draw2dpdf: @@ -69,7 +69,7 @@ gc.Close() gc.FillStroke() // Save to file -draw2dpdf.SaveToPdfFile(fn, dest) +draw2dpdf.SaveToPdfFile("hello.pdf", dest) ``` There are more examples here: https://github.com/llgcode/draw2d/tree/master/samples @@ -111,3 +111,4 @@ References - [antigrain.com](http://www.antigrain.com) - [freetype-go](http://code.google.com/p/freetype-go) + - diff --git a/draw2d.go b/draw2d.go index a547c28..9e6a731 100644 --- a/draw2d.go +++ b/draw2d.go @@ -43,7 +43,7 @@ // gc.FillStroke() // // // Save to file -// draw2d.SaveToPngFile(fn, dest) +// draw2d.SaveToPngFile("hello.png", dest) // // There are more examples here: // https://github.com/llgcode/draw2d/tree/master/samples diff --git a/draw2dpdf/doc.go b/draw2dpdf/doc.go index 846f336..922099c 100644 --- a/draw2dpdf/doc.go +++ b/draw2dpdf/doc.go @@ -2,7 +2,7 @@ // created: 26/06/2015 by Stani Michiels // Package draw2dpdf provides a graphic context that can draw vector -// graphics and text on pdf file. +// graphics and text on pdf file with the gofpdf package. // // Quick Start // @@ -25,11 +25,13 @@ // gc.FillStroke() // // // Save to file -// draw2dpdf.SaveToPdfFile(fn, dest) +// draw2dpdf.SaveToPdfFile("hello.pdf", dest) // // There are more examples here: // https://github.com/llgcode/draw2d/tree/master/samples // +// Alternative backends +// // Drawing on images is provided by the draw2d package. // Drawing on opengl is provided by the draw2dgl package. // From bbb2a4b372ed4b1fdf902c42d42ff036d754709f Mon Sep 17 00:00:00 2001 From: Stani Date: Sun, 12 Jul 2015 20:47:35 +0200 Subject: [PATCH 51/61] add extra lines to check baseline --- samples/helloworld/helloworld.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/samples/helloworld/helloworld.go b/samples/helloworld/helloworld.go index 1c1eba1..9287fc2 100644 --- a/samples/helloworld/helloworld.go +++ b/samples/helloworld/helloworld.go @@ -41,6 +41,11 @@ func Draw(gc draw2d.GraphicContext, text string) { gc.SetDPI(72) gc.SetFontSize(14) // Display Hello World + gc.SetStrokeColor(color.NRGBA{0x33, 0xFF, 0x33, 0xFF}) + gc.MoveTo(8, 0) + gc.LineTo(8, 52) + gc.LineTo(297, 52) + gc.Stroke() gc.FillString(text) gc.FillStringAt(text, 8, 52) From 1f0b304e2e07fe006a09a0a1cc29a992cb80126f Mon Sep 17 00:00:00 2001 From: Stani Date: Sun, 12 Jul 2015 20:48:52 +0200 Subject: [PATCH 52/61] fix string alignment with new gofpdf api --- draw2dpdf/gc.go | 16 +++++++++++++--- image.go | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/draw2dpdf/gc.go b/draw2dpdf/gc.go index 1d3f068..9314986 100644 --- a/draw2dpdf/gc.go +++ b/draw2dpdf/gc.go @@ -138,10 +138,21 @@ func (gc *GraphicContext) GetDPI() int { } // GetStringBounds returns the approximate pixel bounds of the string s at x, y. +// The left edge of the em square of the first character of s +// and the baseline intersect at 0, 0 in the returned coordinates. +// Therefore the top and left coordinates may well be negative. func (gc *GraphicContext) GetStringBounds(s string) (left, top, right, bottom float64) { _, h := gc.pdf.GetFontSize() + d := gc.pdf.GetFontDesc("", "") + if d.Ascent == 0 { + // not defined (standard font?), use average of 81% + top = 0.81 * h + } else { + top = -float64(d.Ascent) * h / float64(d.Ascent-d.Descent) + } + bottom = top + h margin := gc.pdf.GetCellMargin() - return margin, -h, margin + gc.pdf.GetStringWidth(s), 0 + return -margin, top, -margin + gc.pdf.GetStringWidth(s), bottom } // CreateStringPath creates a path from the string s at x, y, and returns the string width. @@ -151,8 +162,7 @@ func (gc *GraphicContext) CreateStringPath(text string, x, y float64) (cursor fl w := right - left h := bottom - top // gc.pdf.SetXY(x, y-h) do not use this as y-h might be negative - margin := gc.pdf.GetCellMargin() - gc.pdf.MoveTo(x-margin, y-margin-0.82*h) + gc.pdf.MoveTo(x+left, y+top) gc.pdf.CellFormat(w, h, text, "", 0, "BL", false, 0, "") return w } diff --git a/image.go b/image.go index 8e5fa72..2030a32 100644 --- a/image.go +++ b/image.go @@ -204,7 +204,7 @@ func (gc *ImageGraphicContext) CreateStringPath(s string, x, y float64) float64 } // GetStringBounds returns the approximate pixel bounds of the string s at x, y. -// The the left edge of the em square of the first character of s +// The left edge of the em square of the first character of s // and the baseline intersect at 0, 0 in the returned coordinates. // Therefore the top and left coordinates may well be negative. func (gc *ImageGraphicContext) GetStringBounds(s string) (left, top, right, bottom float64) { From 6b72c6dec7fbadd61e89cae88c84cd5c8efe37bf Mon Sep 17 00:00:00 2001 From: Stani Date: Sun, 12 Jul 2015 21:17:39 +0200 Subject: [PATCH 53/61] fix horizontal alignment of text --- draw2dpdf/gc.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/draw2dpdf/gc.go b/draw2dpdf/gc.go index 9314986..b81bdbe 100644 --- a/draw2dpdf/gc.go +++ b/draw2dpdf/gc.go @@ -150,9 +150,7 @@ func (gc *GraphicContext) GetStringBounds(s string) (left, top, right, bottom fl } else { top = -float64(d.Ascent) * h / float64(d.Ascent-d.Descent) } - bottom = top + h - margin := gc.pdf.GetCellMargin() - return -margin, top, -margin + gc.pdf.GetStringWidth(s), bottom + return 0, top, gc.pdf.GetStringWidth(s), top + h } // CreateStringPath creates a path from the string s at x, y, and returns the string width. @@ -162,7 +160,8 @@ func (gc *GraphicContext) CreateStringPath(text string, x, y float64) (cursor fl w := right - left h := bottom - top // gc.pdf.SetXY(x, y-h) do not use this as y-h might be negative - gc.pdf.MoveTo(x+left, y+top) + margin := gc.pdf.GetCellMargin() + gc.pdf.MoveTo(x-left-margin, y+top) gc.pdf.CellFormat(w, h, text, "", 0, "BL", false, 0, "") return w } From fcd849f2e4bc2aec31864ca7972beae4550fb76b Mon Sep 17 00:00:00 2001 From: Stani Date: Mon, 13 Jul 2015 00:31:57 +0200 Subject: [PATCH 54/61] support different transparencies for fillstroke --- draw2dpdf/gc.go | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/draw2dpdf/gc.go b/draw2dpdf/gc.go index b81bdbe..3d7cc5f 100644 --- a/draw2dpdf/gc.go +++ b/draw2dpdf/gc.go @@ -190,7 +190,9 @@ func (gc *GraphicContext) StrokeStringAt(text string, x, y float64) (cursor floa // Stroke strokes the paths with the color specified by SetStrokeColor func (gc *GraphicContext) Stroke(paths ...*draw2d.PathStorage) { - gc.draw("D", paths...) + _, _, _, alphaS := gc.Current.StrokeColor.RGBA() + gc.draw("D", alphaS, paths...) + gc.Current.Path = draw2d.NewPathStorage() } // Fill fills the paths with the color specified by SetFillColor @@ -199,27 +201,43 @@ func (gc *GraphicContext) Fill(paths ...*draw2d.PathStorage) { if !gc.Current.FillRule.UseNonZeroWinding() { style += "*" } - gc.draw(style, paths...) + _, _, _, alphaF := gc.Current.FillColor.RGBA() + gc.draw(style, alphaF, paths...) + gc.Current.Path = draw2d.NewPathStorage() } // FillStroke first fills the paths and than strokes them func (gc *GraphicContext) FillStroke(paths ...*draw2d.PathStorage) { - style := "FD" + var rule string if !gc.Current.FillRule.UseNonZeroWinding() { - style += "*" + rule = "*" } - gc.draw(style, paths...) + _, _, _, alphaS := gc.Current.StrokeColor.RGBA() + _, _, _, alphaF := gc.Current.FillColor.RGBA() + if alphaS == alphaF { + gc.draw("FD"+rule, alphaF, paths...) + } else { + gc.draw("F"+rule, alphaF, paths...) + gc.draw("S", alphaS, paths...) + } + gc.Current.Path = draw2d.NewPathStorage() } var logger = log.New(os.Stdout, "", log.Lshortfile) +const alphaMax = float64(0xFFFF) + // draw fills and/or strokes paths -func (gc *GraphicContext) draw(style string, paths ...*draw2d.PathStorage) { +func (gc *GraphicContext) draw(style string, alpha uint32, paths ...*draw2d.PathStorage) { paths = append(paths, gc.Current.Path) pathConverter := NewPathConverter(gc.pdf) pathConverter.Convert(paths...) + a := float64(alpha) / alphaMax + current, blendMode := gc.pdf.GetAlpha() + if a != current { + gc.pdf.SetAlpha(a, blendMode) + } gc.pdf.DrawPath(style) - gc.Current.Path = draw2d.NewPathStorage() } // overwrite StackGraphicContext methods From b1e17999b651df5c9d58ef734cec8356ddbe0778 Mon Sep 17 00:00:00 2001 From: Stani Date: Mon, 13 Jul 2015 00:33:03 +0200 Subject: [PATCH 55/61] fix gopher drawing in gopher2 --- samples/gopher2/gopher2.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/gopher2/gopher2.go b/samples/gopher2/gopher2.go index 012c3ca..232aa03 100644 --- a/samples/gopher2/gopher2.go +++ b/samples/gopher2/gopher2.go @@ -21,7 +21,7 @@ func Main(gc draw2d.GraphicContext, ext string) (string, error) { gc.SetFillColor(image.White) gc.Save() // Draw a (partial) gopher - gc.Translate(-65, 65) + gc.Translate(-60, 65) gc.Rotate(-30 * (math.Pi / 180.0)) Draw(gc, 48, 48, 240, 72) gc.Restore() @@ -41,13 +41,13 @@ func Draw(gc draw2d.GraphicContext, x, y, w, h float64) { brb := color.RGBA{0x8B, 0x45, 0x13, 0xBB} // brown transparant // round head top - gc.MoveTo(x, y+h) - gc.CubicCurveTo(x, y+h*1.05, x+w/2, y-h, x+w, y+h*1.05) + gc.MoveTo(x, y+h*1.002) + gc.CubicCurveTo(x+w/4, y-h/3, x+3*w/4, y-h/3, x+w, y+h*1.002) gc.Close() gc.SetFillColor(brb) gc.Fill() // rectangle head bottom - draw2d.RoundRect(gc, x, y+h, x+w, y+h+h, w/5, h/5) + draw2d.RoundRect(gc, x, y+h, x+w, y+h+h, h/5, h/5) gc.Fill() // left ear outside draw2d.Circle(gc, x, y+h, w/12) From 64dc9744589e3c2f46fe0d8a0cb469ee7a8f53ee Mon Sep 17 00:00:00 2001 From: Stani Date: Mon, 13 Jul 2015 00:37:15 +0200 Subject: [PATCH 56/61] geometry: make line continuous in arcs and replace "coucou" with "HugHug" to test better ascent, descent and capheight of font --- output/samples/geometry.png | Bin 24563 -> 24728 bytes resource/image/geometry.pdf | Bin 38144 -> 38780 bytes samples/geometry/geometry.go | 15 ++++++--------- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/output/samples/geometry.png b/output/samples/geometry.png index 99494ff579ebdfd8e3ffae7de38bb5be9766de5d..c4ae6e345eeaba311d9ce921d97b0747342e2cef 100644 GIT binary patch delta 24585 zcmV*NKw`i1zX6!R0gxkqU|&f@K~#90?41XE9M!q@-`Q1{EEl=kxPT4D72ALz1Y$xD zkV4`Vs)0Z{7f9tMp?&EELP!HbE&)P-kPuQx=%!a!z+i0L3$`WMmaMMb`ObgNjI`3u zN?T^O*z^2;N7|j;nK`>V^PIQ8Aqfy5K!7|(KvDq$1juUyBo!ckK!ChPKvDq$1juUy zBo!b)fV@Ugt|t&c98NO zO}!RTFLtW2w^O7+ov`sbYnK24@()I?C$K-^Qjy{jA_uE4eS#V_YE!j6N^(3k2x_ky z4T`w-sIgTM+A2kVT(vo#SAYNkNo4`XcSNSBn|`K}XeKE(D9-hSQos&1=QkC5E%}L( zwsJk00Q)BblJXHsjhmqUeMpVrIi5;JFtwWa!h0gm+$z$M>-hxOzYvg=KQOKqIaz(V zN9TGX9;053dzBivBi9oNu>T+*NNSWCbJRFMjWKGBwFi%Xhlw^MW3xd`VnuJa#~wAd z*kiLjc)UuD6_PtcFa&j$`eJ7!zej12RF51e6*bjHNp*!83KxkH4v7&8TmM7$fA!oj zLWU`3GQXR8TQn-sNJRZtBcdML|9Kv1ZI_l^4brr|L0amYlAWrOs#?^^|EP%Sy`(>% zzqnG37u0xvDc2JT;16;^QX|!vug3BA|DkHUqQ)laCK`uywyV)9-Nb~4t5h^;4VHLP ztKk%tZuzl)UMO;n@2c?$HRh_(nd7+x@B!H( zDct5C6}{>mDm@7VsmE&qfu!b3HxUk0HdcUlG&~=KC|Co!Z^#TjlGBxf{<0rYDN&r9L z_sxQTgm9r6SBQ3J|4fYsCHtz_6g9r8#>dsTSB)FgSmWgh7APris>qkr!y$1m&N%yI z88Yc;BQLb;6w%RKZ@&4!J+fz=8@WHA)V?>eKBssbtHyssOVR6dJCy)l!_SEG`D(0I z<0Lf}iZ&wuRdQo1dRvW4L`!jyB{qy7h*lqeJ%M7unc_xJ)6YHC7&5sq2?`Wf43Qb1 zS}0Yc2lakQT|6Ji#gtrtWX|IA>s(JHfcNm@&Vl&;SB)>Kae*3-`EZU*fkFN*(URV0 z)YzKo0k6?SJfX+NQFA652cLO}w*GrpWj>`WScINv=CUL?dUZZ|gvj3dNTtRjHAW z*MOv2cZ)P`QQyo;kvbPmxN_JeNLRLhEm_y=6{Y3o#qYdJjg4xk4`7j1OKztVz$ndoqVd* z&oo0LTv8#!XO4Awcl_ti9f+%c`;8j6N@3+m21o!eNQxLFyec0PZ5Jq1d|h-!f(ujK z(bV5TPZU+ed-`f7r!%kI0D>AgK7M=U(D=`#zqfqCPeotbU(NMI0%Q&^ND9~f!=lCP zLI$ep)uIDVlZMi5OAQ?b-wh)imZIXyp4-&BD)LF-NCK5EdC{fSafIZ5O47LnNzk7Y zE524H=6EgvGDM~%g|QqP)Quj@B_Du&iVOUdWOt}?lOhI;s*a0`vOIVNX3s5i5s*r% z+@z*_lcd1&qSg0vb3Ks&nIY4=h6rxFJxe{9OTGZYy&~B+huv<_ilOn_O7rnP?gwsj zF0L#Tk^)~=<5z0T%k@Nm0;G>jN$Nb&IdS_E{wz8{IH?*?hT9EVHpGRb@=YU30xl$F z6j#J;bS3Ki08%lrYG26pL;|FbOi7B&^B29CNFIS|3rL2ulX-JUN3HinNmW(cHUc;c z4Q`TDQEA*~izwMK8`DV>_p9+gqCL+63J{r)6qN=r7;p4wF8PEuq)AHLzC-Fk^+q_? zWz5q+DBgo_8b;h_3+I3EB=zKPQ{$LiPb5I<$mHTWOmvBieGz=F!;+Iv2Ood$sd0-0 zu~P+yfTY~P=So)Hi@QOUv=M*Py4>)250{T&x)V~qOH$zHqEn&1p6iJONDY}>T%*<4 z;MGL(41BKmygL`T-n1b%NvaU;<6dx^b0}VtawFSsvq`zwZQM2$1l-hAqbP3UHH9HffnSP_@B4JFClVkzWKyaHg34(F z0UyEl!fM-Zk2%!6-pjH{SC`&zEJR5PSo7}H-yl>HvKqJd+M1;qd4Ye|L^t`^FJYS~ zqDGdQlVplaND7sx(yNK&83<}hs$;L=raBld#+*X5NddQc7lp&Ui}5rRjwA)15S=db zMSJWQFz3!aNKA9C8k2EBo2J>Q{;!mVhDFAjHA$3b%?&cSbM}gry0%Y(GAkLxf9*>q z54X=!poH5K&xtOOcWi&ICz1^)f|{qu>0C9ab5^YW^CJ#a|BsgH>aUp7r;o_>91|gv zt8HJFq~0gGVrPJT7wgryUUckK0Y=&;4@FQ@BpN+U5t94rX_{41Qu1-r`*Px*AQO_J zc2td56Uj3`QqSjl5&?V%t<5m5eIwTs@fFc%|B?2lIb7z45Fz1`16O8vo z(0*&*zHkEoJOac{QKOw|p7pt!h&gA@v5F{;@czIiUikRdV}{YL##%*SyJEH-AbHrX zJ`<9nbvex#5g`l0OOPbc+4)SplfDTTe{BZGep&QyPF!5JNot%LXQ)y2m5m!`99>m) zP={%j99vcO(t#xGa;!xqFa`8!L0UXI(dO> z)wn6wli1Hed>Y+*J|en_D-|{=V25f(N1wloZlguTiY*?Tk7Lk47DIYAB?-vUe`;vD zytP$I>{z<7#l=e%Ni}$Mj&?;tJw100X<rHB0s# zlA`ns_NWVTJ(2wsT#pOY_^xPs=|AlMpNx6W!# zv4aqad%Ze|IeRuSVFz??uoR!Ee~O%jTj4UMIo%>E!`STAIlV-tB;`~Kc))|X z|DObnC368h#ZHA+QdhW1v)OqF$>ny@@o^Vr>70oqm-tRYnIIH;UZT<75%w#s>?RE6 zI<9Y`w72i}^t>J+(}0&HvhVaaL)52e|LwV+$bN|HMBA7?FS^kxEyi-uOd9QLYAg^p zL$g1inW>YscqQ$Pzm3b;^I$O0iSt>OiAid(O;-b z@1ueOJp*ZO`eBL70Z9k@l9Qhc7=LRed$ChoYj3)2PpXz#DlnEWe?>Yv?ov|Ko0exU z6pE<-yVN!oeR`Fuk9|;@phk0XKFs-7ot;UP&u#5!uc?n^zIsqM1P-jYF4r^ zUVok9e{0n>8!}>68lKCXIiIkj(KS)cm~oH&{+z>${02J3qQjSYaI9>D&dYa*_987$ z=KzMw&1sm?_#4(Nq|Wm(aGQ6u-HmZmWnl;aiQ${6Ps&&Dfr*_uAWP?SyY3+Hqy0Le z(d)Oeo-bMQfRe1gQTm(lr5@?g@%#dr`n2ArR0qU5$9|j%+*G@LLw}OORc-dPNtrGi zO>MYJ#SnL`XbINM9+NL128-&mes{tlF3T-&lbTn9d_H#%bP-jz*`rv(;j?p1R9=x3 zUou2>pBj@rI;NN4OGdrGn}Y2Lk0gfje(Oc`2RC(3Ngw-$P0DS~(Rh*2^*cxmt`DND zzn}KJvIFcvw8A34&wtNIY_7q(UA9xJ?Q9><>k5mgmM*#_dT_12Ul1JiWts?D{?hY4!BvuJ``JL!%(k~>ErdVXNYMXLk5!K?w_jM7K zX_km#oRe*$@~gxmQViZ3qK6?Z>=3^aU0HyOd`chtlBdPWOo%>7q~rxcM8q-?kxXvg z0Q*=EiEdGJfPGAi_egN8N?9p~8g)ydX}6QGV$tSRzGxQVGH0{1E$*|aRi``KHk%CLdV@CC?!zS2Q`EW?UeM!>!ij|^G4iEWw4i@JBx@?EkF=yl~ zxYClSAS%OHV{L$_O!FLb`gGreUb9V7c-V%CR^!}&%l8kWMeBmVUbh>6v~gR5**k2g zeQ)7~A++v^-`2i2Q<5S+tx%gE;1K$X(7?by(7nd33dcw_9+M^W+Wn=9X-1{6aUzhmo>!_qiIL{wzh^i zLNas##AHDdF`hC%Z*;$Zz~V`8C-#|PKAi(eGg0;ik`zh(gMB)8zc8>TLR2E}zS`V; z;6uB2A8!%Wj2UD7I%l>?iZqCSxNPT#rzRDt2!#+o(*v$IX=ihM;k5cS*_e(up!w$> z7jr{Xty@93R3s^El6d$2C%uW~9C)mW^ZL1u=O8ZY$po)avYVQJ?AgjKi~~efv2^L+ zU+vs^&a#%4lb&vDoGsz7Z_;r#NeUx96$k$5^4f1j=S%$|i}Udk@o5daH@*|MZQGJ; z%*7jQUm?A_6q}LuX4$dAZ4pVe9{07Pjl_A|>#ZN4@(~z(f=|cqw2z-CWs7vKW%hfr z4esOLDplyFd+O_dLu=dGOjVBpX=oMCF5s1AI_)$c>-zTd^Qun%|C4Ad5*AQOVtZ_4Os&J3Id-KH1B%)f$`J zIlfQ=F&!NOaTV2XjOd8oL>|Aq#}P^~Qg_<>dbC_`+tVT=XCGn|l?~|e=EkjBqH4EI zRw1=8g-gUL<(eyWw&Iag^3WrYR`o}f8fxv_w8%NEVXdHaz`Tg!piRqFm zwI-|IxkPbVSW%u4*4sn&f1W#!lYv#NAfije@ZTDLQB6KP?r4EXb(leC|IzSf(~dRr z+He2l^3tu>CHB_#2UcEAj@m-*XI|FW?gK3H1T6Cz;?;ZaKrl3(#r`U0u21UsRYSc`gm;D)e2Q$*vD9i5rgY4bfgGAJox$}CvB~u2##(|WLcNao`F~j3!8(hzr zF>dquJV+`OnEX@{@5PNwtRcpCq||LGoQEb52oXqcy(@;g0cnp!e&3q0_(@V&`w1uD z!sZ7=B&EPT;s108Zu0TmS;qpks!r8*wIOkTFHZZ+$ue~E(MG`qS}P*zXs(wx@4rX( zY;Y@1_rP^JS29!Z#Za!7oXka{ixC!5ejfyjl=JT_oQqP+s9vemxuTFAsbV-dcG-jb zlF0E1F@w*Liq{a^9Qm=ndW8JAYlxRX68UyzkcaGB>INt;-u8Cf`&8&D+?KxhG%N{n1u@aks4I7~aBt7EnyV&eTE z=V-l0=gE60qWX~ZRiU(WP=$<{H$?`2kDn~Xm4l?Htl9{d_+9<6Z1=IKQd5J` zQoq&Q{`yMU`9{Ldz)FX2ii+HFUFtb|$$}C;w3b48@ zal=qY4D$kuqnqa~nfD-Na7{a1Y}~wOyayGm$$tHx_OZ`O`cq~G)MOS!Vhgi>m1czP z3G)p}{l4eyIq-_45OY6dKc=}R?#MzC*S&Kml#y#{I9ok|r0-h1bD z?iu@jfHEc6NifbMp<_fwVs-O>c1;kyC}LjV#{FNH_aLodghmR$ByqXRdq{vMMu}K1 z2=Y>w_wXCg0*l0B5`Y~E8uG|y@i6SZ%n=E6u21K{f%k}LH9YIVetEBU6eu97lMNp` ze&hn`Zm3gY&AmTN+<7;fKnlX9f~4bI$4GWarASxYylzsG^ByEA2*pi*N-eXL!7{5s;LRP%`oOBHfKim#E=ef56==E^Fgc;0duIOA^SfAH!q?7%j}VEf@^>P0Rr?3yj>(T-XS^< z3|onr;vj~DU^AlL3*FrxAV7dT!35D!zeFylN=khV0_rIHK|S?AolOAsMTN}SvrjeW z%=x1F|2cEgq+EM{7y~2^LJ3%ux!!Sld?3x^P$!DS|F3#9FJF)g?;ZhWG!8vk{3j7& zK&V?q)_4K75cUt|+_?vdXz4nNpyJH$o(sFN}{_IEPa*H>gqlA>%2r5#dj0|e7k`^K?TIi*o4o|kIm zHv3aFjI43r%S+@tl#2HaF$|~n6>(Ee{M9C@tGnIUu)&MUj{RYDadGjtOG`@+H4LL* zBJn{q8m()8X=(YV`hRI`LSfsk-X{EJXW8#d2K?@hu)zH>TaD#j zOx8>IO;Q-KDI0udlJ6&fh*r{6>|A0GH$owq6G`AOdr%tXC`s<~P(tP+aqkqnU%;F? zb)=M)>Fob#bd9vP|4YitFH!1WrTvy{5Y_0Cl9E?{PB`I&k<+G43oH0|D(|s(?_Rm@ zzWbW@?Ai0Pj*gCNd_El>ZfsCT>8E70&?w_@(bZ}&EB)PhFX}pusARf;<0X%kobQ+9 zDt~4bev;G#(W+g4t)Y>UXkGm~`~B%gK64%#JzOaLcdh8O-*K#+;aXIoaRRbd(p`RlB(spll%v-peDSpsZ!58~0Wb^laj@_H2&{SCb zS7kP3Z{e3+i26UzNZ$lS$qb6*QLYr`=bO)eBsGKVZHjSWhoZhtUt%lqVN_Bq#}t(0H0|)i4=-4P0s{vQl!+53 zBDqZV=@c*$3%5;BSUKn@HM`f_xSani+Nxp!O#`Xu<0+mGK5(nSl~edZQgm2_p!%wR zm5eAlO>}`guZyR#tgwP03uAvuBncoz;`#fw$LG&$n3E<|ODHtPdSVz`jpfU`nk!gD z6^Y!ch^oD3X9J?j3RvJ5Nmu#l(e~3rliZzKnznnN zbvD3Um^Loxdp}z1b@j1bC_2zHFW@Cf(R3kE$x^C1Vyw+s2~yEDpug3}>;EVEir8mi zPMwNc;xw4tV=P^oFz3-&wrr<=MO03+1&GQt1BuFC;P6=_+ITIx@zT?xYbK@w1Z94@ z&pR6&=DIlXKB#+NaGsET@U;|A>KnWwDT>j5Cc$ec(nvD-5S#R4(Z8HqD{5>21e@-= zsWe4JI5c!pc{J)OMa9A*D#Pd|DsCc(YUa#J|0cQL0?7qNvOB+wx1UabO7n0K6>`Iu zoef;qG^qGo;(f@D=`ugkd?MAjMql8?4T+KMR|#IDRx({=@~IK%E#lrG1R(A8C2bWp zii%>R%=;xNU@Tr-8%I<{MFCNH3p~;=lIQdM6p&EV}891&6s3c(pOkcV$W; zF< zme-x->8Ei*>;^)Af!;~{ek>kcakj8#PJiD_NQz+0(_FUmjpUqtlf<*4i|zFW@@`(} zB6WGcyK= zxS!4PT>OE5VRWl{E>Y&az%@a;?jMS-1+rSSclLGBMbX|>qrrIn^=(5}thnrk?b|>4 z^xnNQnj?`h0a0ZHh>Gj&R{a#BS|~bvFCCC=HeX`+Xp6le$wX*^N6&JejF24O3+Xmu zAUfME@rrM>HvQ@34BU{PblFae^q*vTF5V*??k1^!#PLx?IG- zdrv+$bm$?kG&P+(vbcEl*y7?tSBx9?^_d$t?#g`P`yEKINA*MJ`=aKpi|wbEq;MEw zbdjLC%ubu^4ezEl9nxC6)^F_3cz8QfJ4WV6SCX2aVEc_}9xvCRCO|bp?*?p{6V^slw09< zjInDnm`kofQL$rtZNq?0CB(`Z8XI+*;Kx4pF?r~rhp2ohm6erp+G%dSnf}q% zR;-RYR~@5O_U(`Hvii$SbwW~@_J$13tPJJnrv@eLs|$t>{q&%4nEr@;CT}lZyjbqP|9(Xt zyQHI|Ltc96CF?mvl`dLaOBC^y%LhMyxLlf>OVqLSrGE6$Z>g`LSV~K?uC=5CB-@z8 zc%0^mlog2S0}?|}YwQgf5EMX}=(+`nH2rjD$4edQNK*3?Z1;tvti}LCh8&`#fnjPi zNKw&y#^S{pe(|n&Rdjox-iF_TB`I_6++y{eS&_^e+S|hu-gtxDMSRQ2R%FG0V2q^gusBTq6b*Yl5ASs4=JW_4@r;@gao%@owq(}`Kq=T9lELflf zzcNK2rPluwPdri9tkJ^xgb5R*si{eJ?j)Vikb@4=0otZ%TJM42C_>lL(jt{=9%m}D zTO$LddeM5BUlx-0H7}NbHk~Mc#-e&Tw(NO%_it4aF++0Hh^4ZlrA9XG9WCwAVmWc_ z^D?lcL26qE%k$d~m*&n2DJyDK+yvp9-QPW&b-L;0}_Pa+iD^Qsd(jloM5^VRJq|7;UP`{2>S7JziU72DHwYr*z z9kxns`%i4aHV?psfL-cCy|yQ+GM4}7>^#^Ehf5x5XgK2cwY8|N$rNWp2cn!a{%^|G zcJ}jrY92WW=A$i%N)gGW!-mOFMN&gFQ9)i8D54@Q2mP&wUF_X=-<83G2U}!?^t5i> zI*WuhZQ3N)Uw^$s)G_aWyz@?Z`Q?}8jyvvL}SeVv0n^l*_A?M@iX`c6rh~Q7Wbwvb_E<+0|AplO}DJqL3+X7SERF z7SEIukA6)yZ5t@7$IXy-MMx`F9VA1??NNMCBr|5Lm*<{5R7&=Lwo6G#P9(7JivAt0 z)lW%?U>+E@u|1*Db@36BD+J|XF-ea9KGDTYtO^ZOzWtkb$L|~IsCy$_whki4Fjm}>~4*|KGeB_&;P z#TC|QZ*R9qYSN@hGGM>}89#nJ<%Z>i6Hc(Cr~?nwiMQCU-hA^-x#pT{-Lf}YB}W{8yISfy2g%OX8mXDsEc4#K zO6sG7l_Xd#RR?s+tE;EU%y}E7AzCfXp$cg%RsW50IcMfS)cLa}K=cNM8DrW`@es`m zjjoHJ=m0)nysvgEy$aZ7wVG`@B;{7rZbzmQiG`AsQ01TR9dRuz=|fRD9*W|{rl1*uk=2N;Ug9cL>^D?#crTr%yFK~k$8>6 zH>9KPStM1eRhxie0lOlmn0DNZyjG!a!^G`uR*I7LAkhNxZ`khW2f>` zZN@M{{jf_KqtTx$iE03<-!Mf|gVp%d;K7gmuC|uAG>fR#uGPgD=FXifhaP&Uy!hga z)^o_ldCegn=lR5mx&-&Br=BXWyz+`%dF7RVifHO(;lhRbwOzZUv7=JT%lB9$blh>T zE9tDrGNca}&@4N443?vgdP@X z>4UgEnE&T7+sJt#0Jq-XQ)7<$g!2Sx>S2G+r;!dxq1p{n#5DB70|#0v#Hga83bhP> zeb}>E83rCGH|eEQy|%(Kpo3_%OsRZBtx_W1AY)1D!m6raBPuJOA5>H{nJejqrly~Y zE?47sBt9uTT(}E)GPSH*Lw&QQhXerG<3`5L;gMn06%<%|S`pP_im1k2qNFI(G+(Z( zt?dz0;6_B{YVjL2YLqNlvc%ekO$rZx;63-;)8oC*J@=faMMV+Wy0u0I4s2EuScR07bSk~HLLPs7wu~FMQ|juf)p^@3uOQyP z7hagEB&e`OQYW3XR7!W}RhNEhui)gNV=>)*NL$H5@GK#9n53*o7K~I#Zcq7teb#hH z%JO#APM%!TQdV~5uFlR1!+S+Nk@t!D&QwITysQ3pQXJ z6i?0^G)UAubSAc+Kzvb*bW0Z7DZun(}sQ*D3M(5W4IZxatSc z!H$8bZmX@`G)FCDPshaAEL*mJOp$?QjFnekeN~Z0gXO8i?zDXQa?6+wZoBO^nLK&2 zrP_h#pMT!6Phm(WzG}sa6^e99dF8FCGPtTyI@U+zr0Floi*HPqWt%6+Df3>EwQmoXgQ_;jxB**#WaRjI*;+eP zsw$f0>4&GvhsSLZqa06MO!PkCDK$^M;fH5yd)`&&d$B% z;qYI}{pdWa6IWwf|I9(5kInT0)$}o0XMsGH|fA?4CENh=g*&SJ;&2mq&@@QIxueBI4jHm`xWo~$3OmI z8Pk9K;~!f=pB(4OC!drHF1SEu%~~saS5;eCho2e$ciG)GKw36`m0L+BpC0pfsVUnn zPcG3W&ohVqSJoDflUDVMd}PccvUuqX8CkhQHg6jwHRVde+CE5*t$9)Eb`Frr83hqr z6$_+mQk@n`SLYcwB-`WxV65kovjW(u|3V`OeHOBc+;4%?&% zsAq{&!@wpqLlG8#M52i*8okrwQ%^{+eM6G_ljwB$BMl8V4G4wgaCP$(DXHN6ni~1t z&YkjJXD4bbE#x7r`!bj(O&=kgDQ+*us(KrB04E0gH!?V1rf^lqiG>l(}QV(_uKJ=m2q%Kr28B(l|RmX4Xam&%1I7aWnebX(=z84%iIo_wFt=t4tBrMcM_=Q>q>!J3cu|5r&pJ(U!`F5#WzzQZz@ zZ@)-i-SZj7k|mFrbLKQFvYM|5O6!ymRVcK=iaw7<_o&y1lOkT~PGj-nZ62IisEZX*{Z>g-%{tu!UprCQc>b^mLs}c`fiV>8 zFk#hy$OL$92yE?lQK>?LtEhPQ^nn8(9T5(%HkK|e#Htki0tqWt%JKpb(Y$#{Rx-&? zaJ>*3KCXKc>mX4JQ$0Klw;k(cS8YpdQwuyiK@a3DNdZMv&zj@MziOq$7)FgErbe~2 zy{Gho_tX`2t|BY0(sH%^e2<9AO*&bh=CS^N)M1)S?x?H#>*t3JI}|$+W1&+0ZmX>o z^_ufOQcV6Q&2#j|t5*yke#b>MHO@tvR+-=c1qtFZo{_F97CgOOv;)o$pzaa2Wwp}8 z?T2B@Ef_ju3IcVA;f3uEJyRCV@{Azpv+EdKBeFrcq!V3YMgRv2ta*QvX;%Vu|W}bNcjjexZ-MY=cxh ziK>06sp-b!%gc{Ati1fcRiRMr5tWs4(txxo?PAa(HU)CRUPWDOEv7}Iw7YeG@)>;* zy#wSOxQMRS54oK&bGl`&`2i|ycUdYh9r@B&x1dQ1#1NGuHB?A(@dYUo6}Bk1U=gYS z?9FtJ4vty7_Kj1jtH1fB;lqD_T6OiG&lxi0ouex&lL=*pgfOf-iM#~VLQcH{L%Xe` zp-`ae?H?er(q8QrijLRJCMd#x*VP*sx1U?Bxr~t4hVx_rQ7JX=E+s`#G6dhKCaRe; z?=V)ZNG9R(iUiv|FGpc4S+c^MHEY1k^71p)*m!PDjdACW9Zz1gc{6cmG(jNUqFEfWiignH{4vQ+y6r>I0a> zDx4>{{rbD-Qo=q%QoxFTg5R^}t}dc7%}R@?DE*QcECFs3C2eGVOWHJ+E`@-ci2Wip z&vb2R4!Tvnp0&&a?7JY<#lDA+%;7Y+y}BaMi466$vF<)aQoxm{LZO8ThzbS%BQD#K zT)yk$G&Pnic|gt2Y3orgB_$V`bLS?T%-kDV)uThPVFX6={R5MKx*tx@-7GAi<#i=b zp#LSxgH0Lx97%yLqB0Df&f-o~s7ALWI0VJp(r5vc8YqTr8U0PuQBemfRqbMP?AVm@ z6ew3?brIIsXe?gb?Cneg zMrLYwyX6W{tLplHtj!Z!S|rllR28xrF=C;aic=#Rjr|;fs<;0jCS5BZOpusTyDnQu z%9C!^`z%QTqSbAp(#73Ovr3JHlS)e|4)@UnyHV04tNCumiWN=L+WLpC8d;?K%$|L= znS585AoO7WL`=2V)w!ER7f8i9+j&Bi=NG*=>OM_Uz$U7HI~}50)Yv%hBZCHAQR7|* ziz*8@WOafzlte}8*Z)%lrRzNz##BXAAM0;FB^lyY(Ybo2xx>RMr2+CEuXR6sC3myv z0gB>v(Fz9ijO*L%^CShjh)QHzRVdUvI23AKICQ8C>`7GI+>}7}x^iaHFqSTbNKr$z z7;hLynui^Kc4D79ndYJDea`O~7|i!C;C;3oFU0!hLl)E_5|g}vo%E7SkGNlu6tIYD z=gvD1uc&z8+#y45+u7c}#Yy@V?ad=WcYV$#XhRXz8bv(!clAyRg-$eQ%}VTFHqF2u zwSVK!`XATwuX8$)ZuIDQh1)Ngevb*U-;fkAHg9f!fvCopmj3;pyLL^BcIV|0s+%`$ z;;H%|F%9??QGHZNRB=Xr%eWp2ISIvkW$98sIy(o*Z&2LMPOXBZ*5-09HVEJ9D%MGw z%mtYoZNDNZ08vr)Majw3k3Ca#H`YX<2swkXc=2-*jXtBFD0MCr`iwbycF!trbLUP{ zQg0bqY<(RdZ$Lq(+x0`zOvwyOwML^K_)hE-5|7hvhOpm}R4-6b;P1JfL?Rf= zmLcgawVzUkWnqsrp8^g&Fbt!EMxTWa^%+KNI5sNXsocN+^y*B5%I-+H3i+)|j^7wvT3Y(b@y8!Oa@w?M;i96#D#$^P!29pNzghkNsgkCD zuFds)Y|#3gCLOlhpSWeh{%97Rt6QDY{LeX0sDu7Msz(S&sz9KKs!Gbrz94QD%}nzF zMN+S2e^wb|bV*6cRccH%bW@FjK{OhzZE9-zr=->oDjPUXjfbR1rx^M(oM#VTif8tL z|Ekf|w0fE7GTkX5AgKa^Ib}+Xl$U>hp{pc|gVxsX87o(MR-7+D!Gl`o1SNke{w17k z)9gVEFxsjQ4Ssvz(%2`s{r;WG-T_G!7|dC-#z;}om+9)<5Q!9Bx?#h_`*!c9gDfEw z`4V;Tgy|xol@k!BbX#)gE1k^$FJuK_!d)e|@khb-F zmd+I*$DklzqScBX+Cy?TwEzJE?C(HyZ<4;n>T7c~xc~tI1o(yYulplSRpn}e0RjZr ze?gvJvW8Dj+X@8;5FkJ@plL*ZvYwQsIhtdD00H)6+$*WMd?(~&mH`3;*e^ku;QkEe zy~mewGSdJ7JVd@kp$6z5$4g9`*d%ef9}@`>Ae$(x)bsrtA53E(huHR)K70fx#}@vh zpdkT-Z|7z@`GZ^LO7THcMou;jb7IKo7EaU`)>LFh-a78?+HJXSn7bmTyrmfag`$nyo;d#LylCWSArnc8)QkhXnn)gk^1?fEJqa76F3d@D z-(zIoBPn`{lc-8t5~s3%8?j*@>Sws#QxD%~jvsa5Q|Ct?>@ekDC*QTbDGO8X6X}ywkvyol_EZn& zl5aq5pb*cxTu(%F4W4v6Zp`&^B6$K9kN1ntQ~aI1jh=}_<5Nd}X?KGCASs$v?6IG7 z@8Vo|%(t0l5l>w(a8NW_ak-erF`4N|MvW=q&lVYS_T%S{`o9zJ-j>r6+v$^(DN}_$ zB^P=(nY;n*%YJM9%%~6fKvG9%u%_4XBjA$pox%P8N>QT{E++s-zKt#_bIL?fi z_W_7*g6Lj{4pexSzrYV6E#-dV$w=Z% z^)C%MsYjeXNf{Ecgzo9yO(t*P<w;V=mhOu-b~$J+`m9dYD!0cQ3&x2zs_MAp(9GlDsO$_ z+_D=^xO>M7ew`-~f)Iqlz>Ey{FGOi7woLMaqU~x_n{3Ql!&CJ$GivN1%$X9RgdNccmb(f9&4le zo*LATPc=r(SG>4D%A?UyKUC^n))pW`v0=zC{^zNG^G1CnTjvD+#YsU1e^ylSf^EV> zJq#(ziddeMkXjF;>M{vgYgf6)=cb76?P?|5W`DkrWhgb&8LO@5!_;f%tJjW`LI}dZ zE>@P|F)}5&Yy&Cje?=1p9w&Z3$mLeiwY2DrgS`lXxzK(OOAuiNiKGgM+L5*Z5*Sy? zJN9#b+JTQ09kL-Y@A+T*wY-Tnd-S{!l`UfYKoL}2S8KlkQK|L+%TJveW$jD?gmX zUN5Qlen9rhI*X`k(>%BT=#Qk@)Y#I`dvbPDr2wQ{t{H+f9m(klHNIjGhb(@7BU&Q5 z$$pN?hhZCoF2N%#S8gPQP0G2#ki7mQn)HyE2ysBIgQ$@7|0UWef0lG#!>Eg>hewK* z#IlaZ&Kq@#Qt|R9AJZ_3LZQ%iiO=%$G~SWaazXeu6hYBdH&tEr5=9t`ln@`W%%Q0Q zp?#CuGit568&cSFr`l(}x~yw|<@O#qU-^WIeZ0mEIZHGN_0_=`qi)!Th+c-t4r`!*(~`ebM!T%YemNg z0lFKL7LsU{=f=xPFkTA4Fpf=#R@~$&awQN01%Vx`#$QC|FA~U!w1b-V57C6fV~7|c zI=0tw9n#`8Y^0DoM)`$*q9gK=zA;e{;()D+@9`~rAJS&Hwurh$0?WDq9YeVp4PB$8 zDEF*`P{^3@kt@aynSSih%CUzIq`h+M_H}#f-gv5Z-QRB5WJV)NFTj-tOsSY~##hD- zm^f=-+0e0-ZM)uUY2LbK?}mThyngrFFE_gFV;aU`^UoV~;dOU^ZM!|qkJu-?VL#TD z)k;K=IN{D zcRuD>VjE;xiVX=S9tt920mUYS#DqN)69Q^2zc^$Bag7q~c|-aM+3#_rrPyRzNQ&hQ zb&!w+eraxaBFnLVOCcp)B3eSD?DC`b{@ipw6`iDveas=KBKv(+@y{NQ;%c=Cv<@zW}kInM#7 zUNY+NtN%4`_)#AnTRvjq03%!+DjRx0<&c@jk2vg`e>w7hkcB^hXr8f7YuXFycu~?NbZ935#V)-L6E_8>8GF22%=9y>Y zj5E%V88c?cMHgKptwjSWC!KSBLI+H!v?4tDGgrsO(zUg<$q#<;1DQU3y3C(HU+%c$ z4jF&?mnK(@o#GnVsOEX-6X%cgyy!qC3C3Yd*hPt0e{8Ym5#mj{aY*iwk<)=|EX@Sf3oOq;?0NyjC63Bq~C&CT5`BA-)%rT^6 zA0o01yA;w5cBMPiK;}luAN`~fg7G1Khf(W-}mu2>G-X;-jdT!J58FK_3f~7 z0ob(#{%ar!`ggr8c zlMoS-Iwh&C_2ii8qb9+2RNF*hsHAYXkyN!OGx7$+IH6*(966F7F>H_z5)vLa)HjUV zU$vj30%AWR^cPze(i1_JkP?YkNJWqb(o$@C3=$;j-#~j{h$ko%+Z4pebvw^~?wpr6 ze<~y->{NsXBduI-pD$L$W&y!wc9cCI&!BGf0c{<|XA><^p_0;2$-rT8#B%e^H+K;f zQq)a1-6U6BafK{i`EF_Hpb^DwySK-M1yzoj9GCKg6ve*Qxs)LH^2;yFkRe0lf(tH? z1;4r`;kBg5th%kEggCZeB>7SMMfxPwe<>HJzZY4LL+T%TPHy*tj6RUx|mRUt4F%r?}x0y$<0R zp?Gy;_wMdu7c*zhl&Y#KIsEX$t?i=*4KHycsp5gd;=G1?_UsYU)R%u{Wu+W)$RSc* zUT!@ut{RlE!Y42c^R%bV8S=pKe}Ae^)^O7&GPOxXtPz#B)p{7Uj+V*b`|YqEt?W8> z-(#B+=672*tW3|{T{&otee7Hl6d0Uf`#XK?vns*%d?G2llBgdPoI|>CBr5DrNLa`Z zgd0ExNHP!zpZO?zpthidwJAmu=E3q`AH5YqwnaX1e-1=yF?i?%h9e|C-<2{}PP zNKB}hH`;SSW#(pvtRN!@3WRjyHp4eu^%=)GGvlA>O_xXgAu7w&C6hU!yr7N| zvM%C$iX}?aD!s3a!}a1$u=%9!0hD^k3JHgs96J%-H$o6FkpED$RD=YD#DupEyAqM& z*od$lL26h=DX$DE@flgNjJ5JH>qL_k(hCvi*r!;mu(46g9H|FFL&}B7ASP7C%k1|}6DoFMa#!1E%J7P$wkxu@ zLkZlSY5#Ose+xFKi^{Y__f&AV`V?!`-}I|QJ!t(!6!ymO?;R4w;Jnw*er{!N^M$04 zV31glgfL)p)8ig@OvFT*6FmK%OW!7_I2SZUs}YR}5we>IUg!R134A9`%TVC%D(mr9>@ ztiIr7f8f^`k=hmaE zM6b;G1f+zUT()zAyxhlr*i?F_hTvu&;nBP@0jdlHFvA{>a{y97B7!7dj~U$jNJ6Mx z1Xe;w*if)Xag`xuK{mzqaLCx{;>C!RHnc}OBBqga zOR1{yGb#^0|9b}yoOF1%qs5GxO`G4|^Uhu0UbTDGE6IfeC`KCpp)ZUYcgB||6;%xE ze=??bHaB$aT=K}acmD4iYZ9r9ZYT{)`S8ln<^iQ)C;ITcXf*oxs2evuXQW{B^*TEA zWOc-cWxl$2E>H64todJ81hre%sY~e?Nx%3#E9~W#IWyUCGAs_)sk25b@6y6F&+8{p zaenTyotUn^>~;hl_Rf~)Ldn1C?OMv|e@y}yw;d@GsSyHj$O|Gt5@KP(W(6q_(0Q=^ z9}-HWA#h_rR;a`Tbvlv{h6<;w&!I8%;c=<`o^8G6!N7ptJL*3vY`t_;g;7;}wc>>? z=SX`;bWCeR4(p6c>w8U|8;Iph<(Q>|N0wBKo>W#cpr*L~&1d&?G}forJFloXe^fc@ zpt8zQlgc{w?&{q2)(eeYuD&EuUSw3(l!wL{Vs;ED3$qY(eU@lc{yX}{4G$)JEI;Z} z5@T|Yj8~JoM3GgZ!nIr~#7y67RX*6F-pvY`X=Nv*j>|0n5VLU2b`pKN;;`ncGt^(x zN+|8GtV}L|oy1MLn;?BxdmxwXf789TaRcXz%GV!|kcjZ^O`|C{zNjbKW1MKIJ-F^0dhxmF+4HN9q zA5cw`DistC$t+It!sgb)*YEDMzLUBZD~e~&Suu8sB=SnpOY8mVtGMb)KS}=Ybep&u*%6S5*FVeM z68%2?UA=Cv=R-AjRGZg)Jbr(lF;)$PFelpMB#+LIP3p7#y=m9~j33lyOMG?Bksehp zb~Z=D2iHhbv0}zL0dO8ZXY+UMg6?x!z#m@8{0dFJFnH0hoYt_ zl~K!d6CUMW7$r3zIep`?U9;Y*>*!JVFlvgiVtdEL72Eer{Os)LTW8N0&|ihuq|gyH zD)|hhN?fZde=$1uwriqNA0;}nD!fCVJDPM~!)&Smb&@;DrB;%>fbtB9h^4>Z&CM>; zp5a`)0H0?`67S>l#d_5oyA&xXj!lXP^lkQk4BRO6EPj32q#!812h>9BQK)7Z=n2kr z60jXFV{e<3XWfjAzewc0D~%QElgyhprfg}*XpQb}e~C;OS`jWeq^893#I>}Wo;4@^ z{D?D6u!P7xq65_xC(YXasL1nNuhp$8z+ySITHL$*UU*oYvBzu5nAdk}(w zV}Pm!e_QPLAXPz9NRfubOQEK{jsF3u1KjyM~^LA(%NA*w?|B?oJyx@w(n|-)Ow+zH?&2I7H@0oH}r%r z<%xC8BfTIglK1MHqg#elgbt`E4s{+es;s`Ue^{OmheJ9iC1flbal?kB!>?& zf9A@(lTw+6|7Pdj`fm=tv7^2EbTecgt|n?I6)Do(Y3|w88rhj@_(39U*xgay5lt>= zdv#rBQbDB2przAns%!4tSX~mXDGnP|hQa4CYn2lF(8wD%zmm$a0+PyaBueD$uc<;l zlN9k=q^59FKPuff_k_^Q|J_Yp9Q_YmSFik*@z7u)lp0s=8~4@l1%Qb?+#;lz>`l^E_z z<%<~d<6Vjrcim$yko%sl7tWZ$%RWDjDu-$cZR(+D{R#OD!`hiQQ;#M;e=MzmAmSBpDNb#|;9(e<3MAEJ#gM zP=FB0AH?=F&psaHL_-lO98j9&OnYuO*yF$Uyy#Ms&)=y9(=?6C=MCJlsiD4RW}rnj;6@S_x5&9>WE6&myW2G#oO9s(fU?mvxFvB)F3M|J&BW|2`SPV(%i4@$5i;F2p%N4#oo>! zJi?Lu2;Rg~g=f;wrVL3VYMP;U>N*Z<>M*-(mm$NDBSx25gEYLBPE)CZhPB-R#{0&0 zbC}w*32Y_g}@sWHmj$?3k2#PK& zNK)8;NCD@wLOj@~KV!QPKd1JpdK98d!T zX$V64l067Tz_vvaGX#W0M%4t=LMQa&9s4<|DP|8mgLy$vU~@y~#8`sr4a%=n6o+~c ze^e|KS%o$=bWU&SjP@7mk`)9bmETAdvx3cOe1g{!MRa=>jOYO%ABZ6~6$667g%8IgOdTDdydi-=$ zn>23Us-$|g0`LBT(stC!`SM@YfAzdZm#{t~(s$jsya3*#MADR7)hxc;M6Tw1Bq<`s z3E)Jk!2peco31NdFi2C_tN5|#=ZMNTLA22vRSngQ>KT>xYe+>@^>ivC#CFu-F={Xu zBaQ{6FYH{958p8o7)D5>J1!tReWb=bVILPD(GibD!%~dscoA=t#3i0{e})4F7Oe^! zndQe0C^2>nugDLZln-%IsOywA<~k$1h3m`hcf=V(jeQnQ7ANeU{nnoE2OQ(usMN%J zTq)A|_xSf%nIsE>AXU)=D!sQvB*H<8py4e?yIi`<2vx}Yw!2)S8T>udDZ49@F25)}gEi@iAJITFO@`Z!LL+*T}qv*s2g1<4Vf zfSrMhltg2Q2VzI9!yblOiG+2Ey+47ckQove%@>@DnU(Hl(Kd{Hs4fwQ0VScvGcNl< z{n@{GSf-uyDH(FWWXoXghT^gc89ns~Ip+Lt%IE&HTxQHUa&yS=CN0MccqmEX++ab1 zpa>&L)H1F&Q28JU7Bw6)CO=5y+^B6|R;+Jw0V0|uvjXrQR$(QLTz8cw%`?(Cx9`~2 z$7|SQaIHJdDf{};`#O`kS2BNxXbB264{sh~HHLD?4g)$;)eZJJv3o(7sC=F@z03wi zPd(BapuM?KYS+Ilk&bq0*}0*)Z0G?MRW&1J@YsVCf#t6c&BK{t!(@R&I!>0L9LyKp z(TIH$HQ?z#Dze|}gb$#K;nBRyem_y?y-A7)c07BK6of<6ImE`bf{KVS z9=in6!`b%x@%TCEM?A);I>g>LZ;j@Cp`>DfB{3Z^>lhh3_3+MdhaGE6Soup(z@yob zz)mb2j+1^^rA_*QsnotrMOtOdJM@=Ng(}qFm(ER> zH{yE&V5EhRkc6Gp0(;ai?Qx5}4TCxAykkhju#E(TB!xOh@^NpH0vPCL*pDGJ!VMrH zjO|ECNTrZI7c){8>N7@qrzA1QJkoxDK8156M5MhX;i?;HOZUX8R4N|#QwAfCp6-E~F?yxUlV{%Byjig?WdHr7dztgM&?;s5wzH2{sjQL0Q zniFJDc|8 z)ne_D;hcNm5D$(+pe$hs$(Ef#dfUU3!CEqZh*;V#gsVc3uYi7n&q>hv@KQ zgxH$+ga$xJH`~vN5pyaUIDn*{PjJjPV&3z*eSGo&Av)AN;>{pHJbT1QJ!-%IyY@K> zj-d7xWI$4##E^W#4so&Lb7pxkB_~k$%|9gZX2koW^xiSkLKRg4YmFA6~*j>@c*?!6UJR|y|QI=v+mka-Y7_g|L$KAq311-3Ko5UDQQ(W!$v z^P)dpZxE=OuG{fhFDH^GplSiZocG6UL)}M3PgH{oKvGmla2i!`<6scac_-`6eOPKU z&8Rs#QkVAU^NOS%R1%GnKz@@!7yzE*Kd2iqieWUBDu0qc71|xFaBQkr}%<8oLZG0G;|tNsvs@q_ey<>68Dl~M6aP3YS_mW*%WnG z>PQv{Zhs$E!g28MX;NA` zWaI}!VWURf*go`*$u`Um(}=7(@y^;z%oU!ZLyzq2*^0{D#)iY%}VsGH=p zsK`?Z$mtd}#&_uVc~&F(NOkT#>V8(z(HGQlSGb(}4O?=nP~;TGKC!@~b7uq8=1zsA z4u8(gGy??4f1ppFt4M${BQ_z-RpV6k_`r6NqKMueB7e&3vKQoieNU@!xIKrf^UYJ| zJ4HPn)vnKLaQi!``14AZR z#IO2zZV2e3q7z0BROcS5&b{0|CpU23=YK4@fS^XArjyC!PBtJmK!5-NJO$N6`;($* z!;?uua)1B<0;CNZYLa)>7fJmrXR`|sAV2`oWknJZ6j9fMayPXA0RjZjwkaw!xRKOp zIh&00000NkvXXt^-0~ Ef`r%0A^-pY delta 24456 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 diff --git a/resource/image/geometry.pdf b/resource/image/geometry.pdf index 6c5c1bc7d257c7d69f87b2bad7156e33911e6967..755e4ea6a60b7bf6eb52187af11f3ce821cc9a61 100644 GIT binary patch delta 5206 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 delta 4626 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 Date: Tue, 14 Jul 2015 13:04:10 +0200 Subject: [PATCH 57/61] fix typo of draw2dgl in docstring of draw2d.go --- draw2d.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draw2d.go b/draw2d.go index 9e6a731..6343ee7 100644 --- a/draw2d.go +++ b/draw2d.go @@ -3,7 +3,7 @@ // Package draw2d is a pure go 2D vector graphics library with support // for multiple output devices such as images (draw2d), pdf documents -// (draw2dpdf) and opengl (draw2dopengl), which can also be used on the +// (draw2dpdf) and opengl (draw2dgl), which can also be used on the // google app engine. It can be used as a pure go Cairo alternative. // draw2d is released under the BSD license. // From 994e11cd6d240fcf02d3eb1394dfec7a4cc1af84 Mon Sep 17 00:00:00 2001 From: Stani Date: Tue, 14 Jul 2015 13:53:27 +0200 Subject: [PATCH 58/61] Update draw2d.go --- draw2d.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/draw2d.go b/draw2d.go index 6343ee7..d7fbdda 100644 --- a/draw2d.go +++ b/draw2d.go @@ -71,9 +71,6 @@ // graphic context (https://github.com/llgcode/ps). Stani Michiels // implemented the pdf backend with the gofpdf package. // -// The package depends on freetype-go package for its rasterization -// algorithm. -// // Packages using draw2d // // - https://github.com/llgcode/ps: Postscript interpreter written in Go From d0cd53826141540323323351273102c60a76d157 Mon Sep 17 00:00:00 2001 From: Steven Edwards Date: Sun, 9 Aug 2015 12:43:37 -0400 Subject: [PATCH 59/61] Add FontFileNamer type, set default fontNamer. --- font.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/font.go b/font.go index cdc1c18..0c3305f 100644 --- a/font.go +++ b/font.go @@ -13,8 +13,9 @@ import ( ) var ( - fontFolder = "../resource/font/" - fonts = make(map[string]*truetype.Font) + fontFolder = "../resource/font/" + fonts = make(map[string]*truetype.Font) + fontNamer FontFileNamer = FontFileName ) type FontStyle byte @@ -39,6 +40,8 @@ type FontData struct { Style FontStyle } +type FontFileNamer func(fontData FontData) string + func FontFileName(fontData FontData) string { fontFileName := fontData.Name switch fontData.Family { From be5a5617ef0e4ae4e2b25cce383d7be2ce584cf7 Mon Sep 17 00:00:00 2001 From: Steven Edwards Date: Sun, 9 Aug 2015 12:44:50 -0400 Subject: [PATCH 60/61] Add SetFontNamer func. SetFontNamer changs draw2d's default font naming convention. Accepts a func of type FontFileNamer, which accepts a FontData and returns the filename as a string. --- font.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/font.go b/font.go index 0c3305f..ef7274c 100644 --- a/font.go +++ b/font.go @@ -87,6 +87,10 @@ func SetFontFolder(folder string) { fontFolder = filepath.Clean(folder) } +func SetFontNamer(fn FontFileNamer) { + fontNamer = fn +} + func loadFont(fontFileName string) *truetype.Font { fontBytes, err := ioutil.ReadFile(path.Join(fontFolder, fontFileName)) if err != nil { From a78b24d408c4f73ad2bf8bce705f5cfc0d654200 Mon Sep 17 00:00:00 2001 From: Steven Edwards Date: Sun, 9 Aug 2015 12:47:30 -0400 Subject: [PATCH 61/61] Modify font loading functions to use fontNamer. --- font.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/font.go b/font.go index ef7274c..279706c 100644 --- a/font.go +++ b/font.go @@ -66,11 +66,11 @@ func FontFileName(fontData FontData) string { } func RegisterFont(fontData FontData, font *truetype.Font) { - fonts[FontFileName(fontData)] = font + fonts[fontNamer(fontData)] = font } func GetFont(fontData FontData) *truetype.Font { - fontFileName := FontFileName(fontData) + fontFileName := fontNamer(fontData) font := fonts[fontFileName] if font != nil { return font

WTzvbx}+k*el`VlTGvm!MmLL6d&#ZmpVU<4s&Z( zq{L*5zQp~1&f>s|P;v#XdCE+r%l#5+#~L$i=P?^}`t%S^btXHO#ui<<{k!8>2s5;Q wB?KD3U$*sQxM+Sz4fn7MJiNnv`0)Oopgpd}+YOTm{cqO?IVojum4tENf9P=mCIA2c diff --git a/resource/result/TestLineCap.png b/resource/result/TestLineCap.png deleted file mode 100644 index 0474d9172ff5d5cf31d460383c6ab96e73f25e8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2234 zcmeAS@N?(olHy`uVBq!ia0y~yU;;9k7&zE~)R&4YzZe)e8a-VcLn`LHxp9z_$xwnV zaASkXWTh?t+ZNquNa3$Ov4`FMP3FVhyp?tg4Kj=j430n(nphYZSU7=tg%}tFR2Uc( zJQx@pCNMBGC=3||%UKTG+WTE1`|Qu%*T4ThWuF)Qeg5CKe;IE30sWQGJf!?GJYr;I z`GSE#q=IoMWtfo_Jwv>78;z_XR27Zj$a*2n!0`Y7=e&%FMS&URz%~hkr>mdKI;Vst E0P6Yj+W-In diff --git a/resource/result/TestLineJoin.png b/resource/result/TestLineJoin.png deleted file mode 100644 index f6605e56a636070acee339aeb59515891198cf09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3710 zcmeH~dsGuw9>?#5YzPBL4~SG3Caa}I z5a7CAfVahu~Z-}LMmbI-aDS2{kPltr~hQ~o!{f$ znfZS1ojD)4&u95k>!kpI<$L#d1p&Z9e_4R@20F~9_PhY#Ey-T5KL)23f8VdoiVuHG z846pM*)P4}y}9C4=^NhXO8rN9M{j&}db#zaB<|4DjZZW4LQ6T(hsM3k%BIdne$bg5 zT2g(pxi^x$*0m(v!9VFvO5dCA!$&*SmcYUX0MB&<0DoZvz+MS}#hzbxLIo!mL9pTa zGY@j+7@efi+L#J~?p#9re0K`mW$di^>A6|D2N=nV)Z4Rw>e3KCjL6EBS`Lt(Q*Nhi z0kB?u(j)=E+3AH*0YF9k6@wK40`JD-RN0r|?NT<-U5&LNxd6CE9LA~dAF0PVGiMJl zK~V@3%>9Dty5tBh%=~Nz>MakOU_=bAio)S_N?iG|BMv%HsI>)!M{VJu_MSYP%=yL1 zV(L74N-?JP9jG>mB0DSz;EbdPk|!xL2g%?V(-?~CKBUM_BnR&syVB6eMSSS8j|~#* zFB@Q@M*P-{0G*r)qM+-*B5Ykuk&kf+kbG%7oq=W?@*krW3cF3{rI`Rk^I!n#w6)79 z-M|82R}AD%E~u>yZMIRBJAo|=GR=I$f-y&Yh87JEO`SSW66bCXZNSXmf4VfR-M1*t z$eFzh>+(smlcp=#b}CG?RS zmW+HT^ww?EOO-s_;jwp?yqnVUHnEgq@SW0vD9<4scjI<9C;3EqF4--@k^8fm@^DH! z&c!vOIZF8>O6%r?BcHx&%ZgnCpJs9#XdtLQ%{^Hog>^^{j7^SdSwQ8#l0m+O_CcDfTp* zo=umxT@{YFCzfbt>Q^+JNzmkOY3kGrq}^_rzuh+6u#lE9os=V&Cd^kYlP-)u8HTr8 zCV{T>oy85RQ9C%DFkkZU8*Mn*byfP~nf&xm{IupXcWvYo&3s~ulAOfz->Mf7TK6gu zU1d8GYNuZTtg@ZxZ3vV`+1J>-5B^z!eX7dq#_sn#e2cNYZ|rJJ$j#T?Fh`@_OVm|!r3oqTNlqMhGKdKm5 zeBMLKz1P6#=N#j`6lukb2jP&HFH})RE44Q=EThesw{|Y z?b?D}*dGCi2p=WscnrJknoA5@@GjjJk5NeN_UAr`F)6|s6zci5sxhNgIfFv1&_~BX zC|F}#YqEKS5Wy6IJEW}M#PUXiUdDq4i*~b>?zCi@5q%<7EDx52;347MP2R?b=if@c+077)bkfOJ8T}{3YL- zB-%q-HQQW$GN&klNJ_U)pY1sI=Ohgoe0mLV>$pD5?lJufDi93^v}5U!hOtyr5hyVc z1w%#L+J6}Tss#EKI;T!<;zZxzymgf6PhPs*0LliuV|@hu2WUmhWH2brV=yoiF&JdU zT4M}Wb+};+QqY}1EB|0r1~zx%xqQ6h>sEyba85$q4-6ygqHs>r+eh%B*a>&D*v8c5 zz3Ls~B`6Ce$k~AuS&W=5XffuVLe9RSglO>raY&L#-c&+&Br95sT{wDB37e2?R2WJi zx^!1ZdJ@4hve{e@r=JZCPia=b!G(`djhJ-6_3<*I$Fk8n)3R7f-%|M&%A#;>$M4+Rw0chdeZoKmC%{i_nIn_R-liEcj>4o6FBvS`+oi``81X zwcpvQ=1^FI0FiypiF2XbHZx{FKF5heo51&si0Opt$grAM;xkzvN?l&1Os1U zm8~ov2^>)s^>b_cjaKzc&A}>8*h!Nj0(aw4L!7WQlcJdsoz2_}PITK#(Obp6u$^wJ zVj@HJ+zUJCwt6fIC_nB654z2d5uHisAbxfmUyuLf2{sSjTZ<C8APD$%uVb&`mF{(q-~3km`WC*vg}?2)>Qy*M1%C$sgw9~c VvRzI6PtbQI*eluRRlQqw_P?dYpaB2? diff --git a/resource/result/TestMultiSegmentCaps.png b/resource/result/TestMultiSegmentCaps.png deleted file mode 100644 index 1ac6698a528b77e32ae1f27fe941006ac14cd153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2228 zcmeAS@N?(olHy`uVBq!ia0y~yU;;9k7&zE~)R&4YzZe)esy$sCLn`LHxpA@6RZ)cH z;NI?^%inlAStf+L8q7cY=RYHZB~Vin3j+fSCs4T%1A~AH1A~GG1B1f^28IR&Mg|7Q z;in+#GBe+;%ghy*%xxJSu<;Lw=Yb*I$WGOuAN3VggA*w)P(QAa3?I%JZPc41s$3n7 l?$PK5wHE4t&4&N~+0U>uCWh@61GYvOJYD@<);T3K0RT3$>7D=p diff --git a/resource/result/TestPath.png b/resource/result/TestPath.png deleted file mode 100644 index d961ad24faaac8a4c6e03bf2109faba1d55e9e6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2295 zcmeAS@N?(olHy`uVBq!ia0y~yU;;9k7&zE~)R&4YzZe)e_IbKEhE&XXbL-&BR}Ktr ziT4lNZP`*%l&l^+tE?!QeeraGLqF{#3JkmDW1i?d`_Ia7LXd$$K!t%p!GnRpVFCj~ zg90N1gCo%3CKd(;7EYj%yZr9$&QHIY&lWFnyHaisW5eWGybVvwcK_8mz3I7_TCbtr z`s=U%7TZ>EF{qnLGfe+}ygv52?D7wt#~&AdVPWt)BMme}h>$I#3Lv3Phj7?+E>0%- zjYYHn4}FFotLrC!e|J0b+w6nl$I9lh=L3_{1D!pLSkeI%*Raw$KW k9!Ar{0H%ivpo-`Jf3a`k9y6cw*#bEXp00i_>zopr0KPXA_5c6? diff --git a/resource/result/TestPathTransform.png b/resource/result/TestPathTransform.png deleted file mode 100644 index 45bf578c54a5f2f93592b2aff6e294fb91492b58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10413 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 FJ^i^GljJ;k()~~OsmbP1 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 GH~#`J+RSVK From 99aee4504518297e613221736dbd4d4d06d5e91d Mon Sep 17 00:00:00 2001 From: Stani Date: Sat, 11 Jul 2015 19:17:24 +0200 Subject: [PATCH 39/61] golint fixes --- samples/geometry/geometry.go | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/samples/geometry/geometry.go b/samples/geometry/geometry.go index f6b6551..692c43a 100644 --- a/samples/geometry/geometry.go +++ b/samples/geometry/geometry.go @@ -24,7 +24,7 @@ func Main(gc draw2d.GraphicContext, ext string) (string, error) { return samples.Output("geometry", ext), nil } -// Bubble draws a text balloon +// Bubble draws a text balloon. func Bubble(gc draw2d.GraphicContext, x, y, width, height float64) { sx, sy := width/100, height/100 gc.MoveTo(x+sx*50, y) @@ -37,14 +37,15 @@ func Bubble(gc draw2d.GraphicContext, x, y, width, height float64) { gc.Stroke() } +// CurveRectangle draws a rectangle with bezier curves (not rounded rectangle). func CurveRectangle(gc draw2d.GraphicContext, x0, y0, - rect_width, rect_height float64, stroke, fill color.Color) { - radius := (rect_width + rect_height) / 4 + rectWidth, rectHeight float64, stroke, fill color.Color) { + radius := (rectWidth + rectHeight) / 4 - x1 := x0 + rect_width - y1 := y0 + rect_height - if rect_width/2 < radius { - if rect_height/2 < radius { + x1 := x0 + rectWidth + y1 := y0 + rectHeight + if rectWidth/2 < radius { + if rectHeight/2 < radius { gc.MoveTo(x0, (y0+y1)/2) gc.CubicCurveTo(x0, y0, x0, y0, (x0+x1)/2, y0) gc.CubicCurveTo(x1, y0, x1, y0, x1, (y0+y1)/2) @@ -59,7 +60,7 @@ func CurveRectangle(gc draw2d.GraphicContext, x0, y0, gc.CubicCurveTo(x0, y1, x0, y1, x0, y1-radius) } } else { - if rect_height/2 < radius { + if rectHeight/2 < radius { gc.MoveTo(x0, (y0+y1)/2) gc.CubicCurveTo(x0, y0, x0, y0, x0+radius, y0) gc.LineTo(x1-radius, y0) @@ -86,6 +87,7 @@ func CurveRectangle(gc draw2d.GraphicContext, x0, y0, gc.FillStroke() } +// Dash draws a line with a dash pattern func Dash(gc draw2d.GraphicContext, x, y, width, height float64) { sx, sy := width/162, height/205 gc.SetStrokeColor(image.Black) @@ -103,6 +105,7 @@ func Dash(gc draw2d.GraphicContext, x, y, width, height float64) { gc.SetLineDash(nil, 0.0) } +// Arc draws an arc with a positive angle (clockwise) func Arc(gc draw2d.GraphicContext, xc, yc, width, height float64) { // draw an arc xc += width / 2 @@ -133,6 +136,7 @@ func Arc(gc draw2d.GraphicContext, xc, yc, width, height float64) { gc.Fill() } +// ArcNegative draws an arc with a negative angle (anti clockwise). func ArcNegative(gc draw2d.GraphicContext, xc, yc, width, height float64) { xc += width / 2 yc += height / 2 @@ -160,6 +164,7 @@ func ArcNegative(gc draw2d.GraphicContext, xc, yc, width, height float64) { gc.Fill() } +// CubicCurve draws a cubic curve with its control points. func CubicCurve(gc draw2d.GraphicContext, x, y, width, height float64) { sx, sy := width/162, height/205 x0, y0 := x, y+sy*100.0 @@ -185,6 +190,7 @@ func CubicCurve(gc draw2d.GraphicContext, x, y, width, height float64) { gc.Stroke() } +// FillString draws a filled and stroked string. func FillString(gc draw2d.GraphicContext, x, y, width, height float64) { sx, sy := width/100, height/100 gc.Save() @@ -195,7 +201,10 @@ func FillString(gc draw2d.GraphicContext, x, y, width, height float64) { gc.SetFillColor(image.Black) gc.SetFontSize(height / 6) gc.Translate(x+sx*6, y+sy*52) - gc.SetFontData(draw2d.FontData{"luxi", draw2d.FontFamilyMono, draw2d.FontStyleBold | draw2d.FontStyleItalic}) + gc.SetFontData(draw2d.FontData{ + Name: "luxi", + Family: draw2d.FontFamilyMono, + Style: draw2d.FontStyleBold | draw2d.FontStyleItalic}) w := gc.FillString("cou") gc.Translate(w+sx, 0) left, top, right, bottom := gc.GetStringBounds("cou") @@ -209,6 +218,7 @@ func FillString(gc draw2d.GraphicContext, x, y, width, height float64) { gc.Restore() } +// FillStroke first fills and afterwards strokes a path. func FillStroke(gc draw2d.GraphicContext, x, y, width, height float64) { sx, sy := width/210, height/215 gc.MoveTo(x+sx*113.0, y) @@ -229,6 +239,7 @@ func FillStroke(gc draw2d.GraphicContext, x, y, width, height float64) { gc.FillStroke() } +// FillStyle demonstrates the difference between even odd and non zero winding rule. func FillStyle(gc draw2d.GraphicContext, x, y, width, height float64) { sx, sy := width/232, height/220 gc.SetLineWidth(width / 40) @@ -257,6 +268,7 @@ func FillStyle(gc draw2d.GraphicContext, x, y, width, height float64) { gc.FillStroke(wheel1, wheel2) } +// PathTransform scales a path differently in horizontal and vertical direction. func PathTransform(gc draw2d.GraphicContext, x, y, width, height float64) { gc.Save() gc.SetLineWidth(width / 10) @@ -268,6 +280,7 @@ func PathTransform(gc draw2d.GraphicContext, x, y, width, height float64) { gc.Restore() } +// Star draws many lines from a center. func Star(gc draw2d.GraphicContext, x, y, width, height float64) { gc.Save() gc.Translate(x+width/2, y+height/2) @@ -283,6 +296,7 @@ func Star(gc draw2d.GraphicContext, x, y, width, height float64) { gc.Restore() } +// Draw all figures in a nice 4x3 grid. func Draw(gc draw2d.GraphicContext, width, height float64) { mx, my := width*0.025, height*0.025 // margin dx, dy := (width-2*mx)/4, (height-2*my)/3 From a5918dc963458898ff51c07b9a9ab7bb140da661 Mon Sep 17 00:00:00 2001 From: Stani Date: Sat, 11 Jul 2015 19:19:03 +0200 Subject: [PATCH 40/61] only regenerate pdf if it has been deleted --- draw2dpdf/test_test.go | 15 ++++++++------- output/samples/.gitignore | 2 +- output/samples/geometry.pdf | Bin 38125 -> 38125 bytes 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/draw2dpdf/test_test.go b/draw2dpdf/test_test.go index 801ff36..332f278 100644 --- a/draw2dpdf/test_test.go +++ b/draw2dpdf/test_test.go @@ -7,6 +7,7 @@ package draw2dpdf_test import ( + "os" "testing" "github.com/llgcode/draw2d" @@ -25,13 +26,13 @@ func test(t *testing.T, draw sample) { t.Errorf("Drawing %q failed: %v", output, err) return } - /* - // Save to pdf only if it doesn't exist because of git - if _, err = os.Stat(output); err == nil { - t.Skipf("Saving %q skipped, as it exists already. (Git would consider it modified.)", output) - return - } - */ + + // Save to pdf only if it doesn't exist because of git + if _, err = os.Stat(output); err == nil { + t.Skipf("Saving %q skipped, as it exists already. (Git would consider it modified.)", output) + return + } + err = draw2dpdf.SaveToPdfFile(output, dest) if err != nil { t.Errorf("Saving %q failed: %v", output, err) diff --git a/output/samples/.gitignore b/output/samples/.gitignore index 7abb424..1996c5a 100644 --- a/output/samples/.gitignore +++ b/output/samples/.gitignore @@ -2,4 +2,4 @@ * # Except this file !.gitignore -!geometry.png \ No newline at end of file +!geometry.* \ No newline at end of file diff --git a/output/samples/geometry.pdf b/output/samples/geometry.pdf index 78f689a5d77eb6644f071880d516ec76d27f5503..ee16da2079e78a6ef9ba8cc59d6bedafd77ac4f5 100644 GIT binary patch delta 20 ccmaF6lIiVArVVwISuG7sOpG@-PtIZl0AU>nFaQ7m delta 20 ccmaF6lIiVArVVwISuIS>3=B6nPtIZl0AU{pF8}}l From d3a9977ae5b8c69a34ed4c0b03780966d8f5bac0 Mon Sep 17 00:00:00 2001 From: Stani Date: Sat, 11 Jul 2015 19:21:23 +0200 Subject: [PATCH 41/61] Added Stani to authors --- AUTHORS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index a7d71ab..6490085 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1 +1,2 @@ -Laurent Le Goff \ No newline at end of file +Laurent Le Goff +Stani Michiels, gmail:stani.be \ No newline at end of file From 790eaf6842f3527fe6afa06b85675d8566267a4c Mon Sep 17 00:00:00 2001 From: Stani Date: Sat, 11 Jul 2015 19:31:36 +0200 Subject: [PATCH 42/61] add image to README --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index db90f91..6f7eed3 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,9 @@ Package draw2d is a pure [go](http://golang.org) 2D vector graphics library with See the [documentation](http://godoc.org/github.com/llgcode/draw2d) for more details. +![demonstration of the image backend](https://raw.githubusercontent.com/llgcode/draw2d/master/output/samples/geometry.png) +The image above is generated with the image backend. The pdf which is generated with exactly the same code is [here](https://raw.githubusercontent.com/llgcode/draw2d/master/output/samples/geometry.pdf). + Features -------- From 2099d15a26a6a4f3a8b659dc4f60b9fa3e56737f Mon Sep 17 00:00:00 2001 From: Stani Date: Sat, 11 Jul 2015 19:34:48 +0200 Subject: [PATCH 43/61] add readme to output folder --- output/README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 output/README.md diff --git a/output/README.md b/output/README.md new file mode 100644 index 0000000..037f0e2 --- /dev/null +++ b/output/README.md @@ -0,0 +1,11 @@ +Demo output +=========== + +These folders are empty when you check out the git repository. The output is generated by the tests: +``` +go test ./... +``` +or with coverage: +``` +go test -cover ./... | grep -v "no test" +``` From 8d08b5e8163c2e7761032b3de15230213828a3f5 Mon Sep 17 00:00:00 2001 From: Stani Date: Sat, 11 Jul 2015 19:42:10 +0200 Subject: [PATCH 44/61] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6f7eed3..7f0d8c7 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,8 @@ Package draw2d is a pure [go](http://golang.org) 2D vector graphics library with See the [documentation](http://godoc.org/github.com/llgcode/draw2d) for more details. ![demonstration of the image backend](https://raw.githubusercontent.com/llgcode/draw2d/master/output/samples/geometry.png) -The image above is generated with the image backend. The pdf which is generated with exactly the same code is [here](https://raw.githubusercontent.com/llgcode/draw2d/master/output/samples/geometry.pdf). + +This image above is generated with the image backend. The pdf which is generated with exactly the same code is [here](https://raw.githubusercontent.com/llgcode/draw2d/master/output/samples/geometry.pdf). Features -------- From ce7f6b422e91999a1454377257bc1b34679e6930 Mon Sep 17 00:00:00 2001 From: Stani Date: Sat, 11 Jul 2015 22:07:20 +0200 Subject: [PATCH 45/61] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7f0d8c7..0a6027a 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,9 @@ Package draw2d is a pure [go](http://golang.org) 2D vector graphics library with See the [documentation](http://godoc.org/github.com/llgcode/draw2d) for more details. -![demonstration of the image backend](https://raw.githubusercontent.com/llgcode/draw2d/master/output/samples/geometry.png) +[![demonstration of the image backend](https://raw.githubusercontent.com/llgcode/draw2d/master/output/samples/geometry.png)](https://raw.githubusercontent.com/llgcode/draw2d/master/output/samples/geometry.pdf) -This image above is generated with the image backend. The pdf which is generated with exactly the same code is [here](https://raw.githubusercontent.com/llgcode/draw2d/master/output/samples/geometry.pdf). +This image above is generated with the image backend. Click on the image to get the pdf which is generated with exactly the same code. Features -------- From 6e588279216aaa32b16e85ffef53d6d03189708f Mon Sep 17 00:00:00 2001 From: Stani Date: Sat, 11 Jul 2015 22:53:24 +0200 Subject: [PATCH 46/61] update readme --- README.md | 8 +++----- draw2dpdf/test_test.go | 15 +++++++-------- output/samples/.gitignore | 3 ++- output/samples/postscript.png | Bin 0 -> 41958 bytes {output/samples => resource/image}/geometry.pdf | Bin resource/image/postscript.pdf | Bin 0 -> 52078 bytes 6 files changed, 12 insertions(+), 14 deletions(-) create mode 100644 output/samples/postscript.png rename {output/samples => resource/image}/geometry.pdf (100%) create mode 100644 resource/image/postscript.pdf diff --git a/README.md b/README.md index 0a6027a..31b1091 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,11 @@ draw2d ====== -Package draw2d is a pure [go](http://golang.org) 2D vector graphics library with support for multiple output devices such as [images](http://golang.org/pkg/image) (draw2d), pdf documents (draw2dpdf) and opengl (draw2dopengl), which can also be used on the google app engine. It can be used as a pure go [Cairo](http://www.cairographics.org/) alternative. draw2d is released under the BSD license. +Package draw2d is a pure [go](http://golang.org) 2D vector graphics library with support for multiple output devices such as [images](http://golang.org/pkg/image) (draw2d), pdf documents (draw2dpdf) and opengl (draw2dopengl), which can also be used on the google app engine. It can be used as a pure go [Cairo](http://www.cairographics.org/) alternative. draw2d is released under the BSD license. See the [documentation](http://godoc.org/github.com/llgcode/draw2d) for more details. -See the [documentation](http://godoc.org/github.com/llgcode/draw2d) for more details. +[![geometry](https://raw.githubusercontent.com/llgcode/draw2d/master/output/samples/geometry.png)](https://raw.githubusercontent.com/llgcode/draw2d/master/resource/image/geometry.pdf)[![postscript](https://raw.githubusercontent.com/llgcode/draw2d/master/output/samples/postscript.png)](https://raw.githubusercontent.com/llgcode/draw2d/master/resource/image/postscript.pdf) -[![demonstration of the image backend](https://raw.githubusercontent.com/llgcode/draw2d/master/output/samples/geometry.png)](https://raw.githubusercontent.com/llgcode/draw2d/master/output/samples/geometry.pdf) - -This image above is generated with the image backend. Click on the image to get the pdf which is generated with exactly the same code. +Click on an image above to get the pdf, generated with exactly the same draw2d code. The first image is the output of `samples/geometry`. The second image is the result of `samples/postcript`, which demonstrates that draw2d can draw postscript files into images or pdf documents with the [ps](https://github.com/llgcode/ps) package. Features -------- diff --git a/draw2dpdf/test_test.go b/draw2dpdf/test_test.go index 332f278..801ff36 100644 --- a/draw2dpdf/test_test.go +++ b/draw2dpdf/test_test.go @@ -7,7 +7,6 @@ package draw2dpdf_test import ( - "os" "testing" "github.com/llgcode/draw2d" @@ -26,13 +25,13 @@ func test(t *testing.T, draw sample) { t.Errorf("Drawing %q failed: %v", output, err) return } - - // Save to pdf only if it doesn't exist because of git - if _, err = os.Stat(output); err == nil { - t.Skipf("Saving %q skipped, as it exists already. (Git would consider it modified.)", output) - return - } - + /* + // Save to pdf only if it doesn't exist because of git + if _, err = os.Stat(output); err == nil { + t.Skipf("Saving %q skipped, as it exists already. (Git would consider it modified.)", output) + return + } + */ err = draw2dpdf.SaveToPdfFile(output, dest) if err != nil { t.Errorf("Saving %q failed: %v", output, err) diff --git a/output/samples/.gitignore b/output/samples/.gitignore index 1996c5a..e39d62f 100644 --- a/output/samples/.gitignore +++ b/output/samples/.gitignore @@ -2,4 +2,5 @@ * # Except this file !.gitignore -!geometry.* \ No newline at end of file +!geometry.png +!postscript.png \ No newline at end of file diff --git a/output/samples/postscript.png b/output/samples/postscript.png new file mode 100644 index 0000000000000000000000000000000000000000..eca78088ebd1871cf198c5475b1661223b4fadac GIT binary patch literal 41958 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 N1{x+WZ*<%k_Fs;J88!d_ literal 0 HcmV?d00001 From da9799659c002a321e196dc8e70e13024ea06d9b Mon Sep 17 00:00:00 2001 From: Stani Date: Sun, 12 Jul 2015 02:34:34 +0200 Subject: [PATCH 47/61] fix colors for stroke font in helloworld --- samples/helloworld/helloworld.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/samples/helloworld/helloworld.go b/samples/helloworld/helloworld.go index 301edcd..1c1eba1 100644 --- a/samples/helloworld/helloworld.go +++ b/samples/helloworld/helloworld.go @@ -46,10 +46,12 @@ func Draw(gc draw2d.GraphicContext, text string) { gc.Save() gc.SetFillColor(color.NRGBA{0xFF, 0x33, 0x33, 0xFF}) + gc.SetStrokeColor(color.NRGBA{0xFF, 0x33, 0x33, 0xFF}) gc.Translate(145, 85) gc.StrokeStringAt(text, -50, 0) gc.Rotate(math.Pi / 4) gc.SetFillColor(color.NRGBA{0x33, 0x33, 0xFF, 0xFF}) + gc.SetStrokeColor(color.NRGBA{0x33, 0x33, 0xFF, 0xFF}) gc.StrokeString(text) gc.Restore() } From b4e9f9c266ee42dfc0cfcbc54a36187e4bb840a9 Mon Sep 17 00:00:00 2001 From: Stani Date: Sun, 12 Jul 2015 02:36:44 +0200 Subject: [PATCH 48/61] fix SetFontData for pdf --- draw2dpdf/gc.go | 17 ++++++++++++----- output/samples/geometry.png | Bin 24640 -> 24563 bytes resource/image/geometry.pdf | Bin 38125 -> 38144 bytes samples/geometry/geometry.go | 3 ++- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/draw2dpdf/gc.go b/draw2dpdf/gc.go index 2eb5ed8..1d3f068 100644 --- a/draw2dpdf/gc.go +++ b/draw2dpdf/gc.go @@ -45,6 +45,7 @@ var ( func NewPdf(orientationStr, unitStr, sizeStr string) *gofpdf.Fpdf { pdf := gofpdf.New(orientationStr, unitStr, sizeStr, draw2d.GetFontFolder()) // to be compatible with draw2d + pdf.SetMargins(0, 0, 0) pdf.SetDrawColor(0, 0, 0) pdf.SetFillColor(255, 255, 255) pdf.SetLineCapStyle("round") @@ -139,16 +140,20 @@ func (gc *GraphicContext) GetDPI() int { // GetStringBounds returns the approximate pixel bounds of the string s at x, y. func (gc *GraphicContext) GetStringBounds(s string) (left, top, right, bottom float64) { _, h := gc.pdf.GetFontSize() - return 0, 0, gc.pdf.GetStringWidth(s), h + margin := gc.pdf.GetCellMargin() + return margin, -h, margin + gc.pdf.GetStringWidth(s), 0 } // CreateStringPath creates a path from the string s at x, y, and returns the string width. func (gc *GraphicContext) CreateStringPath(text string, x, y float64) (cursor float64) { - _, _, w, h := gc.GetStringBounds(text) + //fpdf uses the top left corner + left, top, right, bottom := gc.GetStringBounds(text) + w := right - left + h := bottom - top + // gc.pdf.SetXY(x, y-h) do not use this as y-h might be negative margin := gc.pdf.GetCellMargin() - gc.pdf.MoveTo(x-margin, y+margin-0.82*h) + gc.pdf.MoveTo(x-margin, y-margin-0.82*h) gc.pdf.CellFormat(w, h, text, "", 0, "BL", false, 0, "") - // gc.pdf.Cell(w, h, text) return w } @@ -250,7 +255,9 @@ func (gc *GraphicContext) SetFontData(fontData draw2d.FontData) { } fn := draw2d.FontFileName(fontData) fn = fn[:len(fn)-4] - gc.pdf.AddFont(fn, style, fn+".json") + size, _ := gc.pdf.GetFontSize() + gc.pdf.AddFont(fontData.Name, style, fn+".json") + gc.pdf.SetFont(fontData.Name, style, size) } // SetFontSize sets the font size in points (as in ``a 12 point font''). diff --git a/output/samples/geometry.png b/output/samples/geometry.png index 216541a65957cd7b62137ef1a842b8febb0ec656..99494ff579ebdfd8e3ffae7de38bb5be9766de5d 100644 GIT binary patch delta 24494 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 R?%x0a002ovPDHLkV1g6U!oUCk delta 24549 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