From 70f95872190b02acf1b3ead7d8df66353677dd51 Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Mon, 26 Mar 2018 21:52:37 -0700 Subject: [PATCH] resume in glyph _getName --- pitfall/fontkit/glyph.rkt | 27 +++++++++++++++--- pitfall/pitfall/test/test20.pdf | Bin 8175 -> 0 bytes .../test => ptest}/assets/charter-italic.ttf | Bin .../test => ptest}/assets/charter.otf | Bin .../test => ptest}/assets/charter.ttf | Bin .../{pitfall/test => ptest}/assets/death.png | Bin .../{pitfall/test => ptest}/assets/fira.otf | Bin .../{pitfall/test => ptest}/assets/fira.ttf | Bin .../{pitfall/test => ptest}/assets/test.jpeg | Bin .../{pitfall/test => ptest}/assets/test.png | Bin .../{pitfall/test => ptest}/assets/tiger.js | 0 .../{pitfall/test => ptest}/assets/tiger.json | 0 pitfall/{pitfall/test => ptest}/minimal.pdf | 0 .../{pitfall/test => ptest}/minion-test.pdf | Bin pitfall/{pitfall/test => ptest}/minion.coffee | 0 .../{pitfall/test => ptest}/out-racket.txt | 0 pitfall/{pitfall/test => ptest}/out.bin | Bin pitfall/{pitfall/test => ptest}/out.tx | 0 pitfall/{pitfall/test => ptest}/out.txt | 0 .../test-cff/indesign-cff-hello | Bin .../test-cff/indesign-cff-hello.pdf | 0 .../test-cff/textedit-sample.pdf | Bin .../test-cff/textedit-sample.rtf | 0 pitfall/{pitfall/test => ptest}/test.coffee | 0 pitfall/{pitfall/test => ptest}/test.pdf | Bin pitfall/{pitfall/test => ptest}/test0.coffee | 0 pitfall/{pitfall/test => ptest}/test0.pdf | 0 pitfall/{pitfall/test => ptest}/test0.rkt | 0 pitfall/{pitfall/test => ptest}/test09.coffee | 0 pitfall/{pitfall/test => ptest}/test09.rkt | 0 pitfall/{pitfall/test => ptest}/test09c.pdf | 0 .../test => ptest}/test09crkt copy.pdf | 0 .../test => ptest}/test09rkt copy.pdf | 0 pitfall/{pitfall/test => ptest}/test0c.pdf | Bin .../test => ptest}/test0crkt copy.pdf | Bin .../{pitfall/test => ptest}/test0rkt copy.pdf | 0 pitfall/{pitfall/test => ptest}/test1.coffee | 0 pitfall/{pitfall/test => ptest}/test1.pdf | 0 pitfall/{pitfall/test => ptest}/test1.rkt | 0 pitfall/{pitfall/test => ptest}/test10.coffee | 0 pitfall/{pitfall/test => ptest}/test10.pdf | 0 pitfall/{pitfall/test => ptest}/test10.rkt | 0 pitfall/{pitfall/test => ptest}/test10c.pdf | Bin .../test => ptest}/test10crkt copy.pdf | Bin .../test => ptest}/test10rkt copy.pdf | 0 pitfall/{pitfall/test => ptest}/test11.coffee | 0 pitfall/{pitfall/test => ptest}/test11.pdf | 0 pitfall/{pitfall/test => ptest}/test11.rkt | 0 pitfall/{pitfall/test => ptest}/test11c.pdf | 0 .../test => ptest}/test11crkt copy.pdf | 0 .../test => ptest}/test11rkt copy.pdf | 0 pitfall/{pitfall/test => ptest}/test12.coffee | 0 pitfall/{pitfall/test => ptest}/test12.pdf | Bin pitfall/{pitfall/test => ptest}/test12.rkt | 0 pitfall/{pitfall/test => ptest}/test12c.pdf | Bin .../test => ptest}/test12crkt copy.pdf | Bin .../test => ptest}/test12rkt copy.pdf | Bin pitfall/{pitfall/test => ptest}/test13.coffee | 0 pitfall/{pitfall/test => ptest}/test13.pdf | Bin pitfall/{pitfall/test => ptest}/test13.rkt | 0 .../test => ptest}/test13crkt copy.pdf | Bin .../test => ptest}/test13rkt copy.pdf | Bin pitfall/{pitfall/test => ptest}/test14.coffee | 0 pitfall/{pitfall/test => ptest}/test14.pdf | Bin pitfall/{pitfall/test => ptest}/test14.rkt | 0 .../test => ptest}/test14crkt copy.pdf | Bin .../test => ptest}/test14rkt copy 2.pdf | Bin .../test => ptest}/test14rkt copy.pdf | Bin pitfall/{pitfall/test => ptest}/test15.coffee | 0 pitfall/{pitfall/test => ptest}/test15.pdf | Bin pitfall/{pitfall/test => ptest}/test15.rkt | 0 .../test => ptest}/test15crkt copy.pdf | Bin .../test => ptest}/test15rkt copy.pdf | Bin pitfall/{pitfall/test => ptest}/test16.coffee | 0 pitfall/{pitfall/test => ptest}/test16.pdf | Bin pitfall/{pitfall/test => ptest}/test16.rkt | 0 .../test => ptest}/test16crkt copy.pdf | Bin .../test => ptest}/test16rkt copy.pdf | Bin pitfall/{pitfall/test => ptest}/test17.coffee | 0 pitfall/{pitfall/test => ptest}/test17.pdf | Bin pitfall/{pitfall/test => ptest}/test17.rkt | 0 .../test => ptest}/test17crkt copy.pdf | Bin .../test => ptest}/test17rkt copy.pdf | Bin pitfall/{pitfall/test => ptest}/test18.coffee | 0 pitfall/{pitfall/test => ptest}/test18.pdf | Bin pitfall/{pitfall/test => ptest}/test18.rkt | 0 .../test => ptest}/test18crkt copy.pdf | Bin .../test => ptest}/test18rkt copy.pdf | Bin pitfall/{pitfall/test => ptest}/test19.coffee | 0 pitfall/{pitfall/test => ptest}/test19.pdf | Bin pitfall/{pitfall/test => ptest}/test19.rkt | 0 .../test => ptest}/test19crkt copy.pdf | Bin pitfall/ptest/test19crkt.pdf | Bin 0 -> 4637 bytes .../test => ptest}/test19rkt copy.pdf | Bin pitfall/ptest/test19rkt.pdf | Bin 0 -> 6731 bytes pitfall/{pitfall/test => ptest}/test1c.pdf | 0 .../test => ptest}/test1crkt copy.pdf | 0 .../{pitfall/test => ptest}/test1rkt copy.pdf | 0 pitfall/{pitfall/test => ptest}/test2.coffee | 0 pitfall/{pitfall/test => ptest}/test2.pdf | 0 pitfall/{pitfall/test => ptest}/test2.rkt | 0 pitfall/{pitfall/test => ptest}/test20.coffee | 0 pitfall/ptest/test20.pdf | Bin 0 -> 3599 bytes pitfall/{pitfall/test => ptest}/test20.rkt | 0 pitfall/ptest/test20rkt.pdf | 0 pitfall/{pitfall/test => ptest}/test2c.pdf | Bin .../test => ptest}/test2crkt copy.pdf | Bin .../{pitfall/test => ptest}/test2rkt copy.pdf | 0 pitfall/{pitfall/test => ptest}/test3.coffee | 0 pitfall/{pitfall/test => ptest}/test3.pdf | 0 pitfall/{pitfall/test => ptest}/test3.rkt | 0 pitfall/{pitfall/test => ptest}/test3c.pdf | Bin .../test => ptest}/test3crkt copy.pdf | Bin .../{pitfall/test => ptest}/test3rkt copy.pdf | 0 pitfall/{pitfall/test => ptest}/test4.coffee | 0 pitfall/{pitfall/test => ptest}/test4.pdf | 0 pitfall/{pitfall/test => ptest}/test4.rkt | 0 pitfall/{pitfall/test => ptest}/test4c.pdf | Bin .../test => ptest}/test4crkt copy.pdf | Bin .../{pitfall/test => ptest}/test4rkt copy.pdf | 0 pitfall/{pitfall/test => ptest}/test5.coffee | 0 pitfall/{pitfall/test => ptest}/test5.pdf | Bin pitfall/{pitfall/test => ptest}/test5.rkt | 0 pitfall/{pitfall/test => ptest}/test5c.pdf | Bin .../test => ptest}/test5crkt copy.pdf | Bin .../{pitfall/test => ptest}/test5rkt copy.pdf | Bin pitfall/{pitfall/test => ptest}/test6.coffee | 0 pitfall/{pitfall/test => ptest}/test6.pdf | 0 pitfall/{pitfall/test => ptest}/test6.rkt | 0 pitfall/{pitfall/test => ptest}/test6c.pdf | Bin .../test => ptest}/test6crkt copy.pdf | Bin .../{pitfall/test => ptest}/test6rkt copy.pdf | 0 pitfall/{pitfall/test => ptest}/test7.coffee | 0 pitfall/{pitfall/test => ptest}/test7.pdf | Bin pitfall/{pitfall/test => ptest}/test7.rkt | 0 pitfall/{pitfall/test => ptest}/test7c.pdf | Bin .../test => ptest}/test7crkt copy.pdf | Bin .../{pitfall/test => ptest}/test7rkt copy.pdf | Bin pitfall/{pitfall/test => ptest}/test8.coffee | 0 pitfall/{pitfall/test => ptest}/test8.pdf | Bin pitfall/{pitfall/test => ptest}/test8.rkt | 0 pitfall/{pitfall/test => ptest}/test8c.pdf | Bin .../test => ptest}/test8crkt copy.pdf | Bin .../{pitfall/test => ptest}/test8rkt copy.pdf | Bin pitfall/{pitfall/test => ptest}/testrkt.rkt | 0 145 files changed, 23 insertions(+), 4 deletions(-) delete mode 100644 pitfall/pitfall/test/test20.pdf rename pitfall/{pitfall/test => ptest}/assets/charter-italic.ttf (100%) rename pitfall/{pitfall/test => ptest}/assets/charter.otf (100%) rename pitfall/{pitfall/test => ptest}/assets/charter.ttf (100%) rename pitfall/{pitfall/test => ptest}/assets/death.png (100%) rename pitfall/{pitfall/test => ptest}/assets/fira.otf (100%) rename pitfall/{pitfall/test => ptest}/assets/fira.ttf (100%) rename pitfall/{pitfall/test => ptest}/assets/test.jpeg (100%) rename pitfall/{pitfall/test => ptest}/assets/test.png (100%) rename pitfall/{pitfall/test => ptest}/assets/tiger.js (100%) rename pitfall/{pitfall/test => ptest}/assets/tiger.json (100%) rename pitfall/{pitfall/test => ptest}/minimal.pdf (100%) rename pitfall/{pitfall/test => ptest}/minion-test.pdf (100%) rename pitfall/{pitfall/test => ptest}/minion.coffee (100%) rename pitfall/{pitfall/test => ptest}/out-racket.txt (100%) rename pitfall/{pitfall/test => ptest}/out.bin (100%) rename pitfall/{pitfall/test => ptest}/out.tx (100%) rename pitfall/{pitfall/test => ptest}/out.txt (100%) rename pitfall/{pitfall/test => ptest}/test-cff/indesign-cff-hello (100%) rename pitfall/{pitfall/test => ptest}/test-cff/indesign-cff-hello.pdf (100%) rename pitfall/{pitfall/test => ptest}/test-cff/textedit-sample.pdf (100%) rename pitfall/{pitfall/test => ptest}/test-cff/textedit-sample.rtf (100%) rename pitfall/{pitfall/test => ptest}/test.coffee (100%) rename pitfall/{pitfall/test => ptest}/test.pdf (100%) rename pitfall/{pitfall/test => ptest}/test0.coffee (100%) rename pitfall/{pitfall/test => ptest}/test0.pdf (100%) rename pitfall/{pitfall/test => ptest}/test0.rkt (100%) rename pitfall/{pitfall/test => ptest}/test09.coffee (100%) rename pitfall/{pitfall/test => ptest}/test09.rkt (100%) rename pitfall/{pitfall/test => ptest}/test09c.pdf (100%) rename pitfall/{pitfall/test => ptest}/test09crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test09rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test0c.pdf (100%) rename pitfall/{pitfall/test => ptest}/test0crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test0rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test1.coffee (100%) rename pitfall/{pitfall/test => ptest}/test1.pdf (100%) rename pitfall/{pitfall/test => ptest}/test1.rkt (100%) rename pitfall/{pitfall/test => ptest}/test10.coffee (100%) rename pitfall/{pitfall/test => ptest}/test10.pdf (100%) rename pitfall/{pitfall/test => ptest}/test10.rkt (100%) rename pitfall/{pitfall/test => ptest}/test10c.pdf (100%) rename pitfall/{pitfall/test => ptest}/test10crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test10rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test11.coffee (100%) rename pitfall/{pitfall/test => ptest}/test11.pdf (100%) rename pitfall/{pitfall/test => ptest}/test11.rkt (100%) rename pitfall/{pitfall/test => ptest}/test11c.pdf (100%) rename pitfall/{pitfall/test => ptest}/test11crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test11rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test12.coffee (100%) rename pitfall/{pitfall/test => ptest}/test12.pdf (100%) rename pitfall/{pitfall/test => ptest}/test12.rkt (100%) rename pitfall/{pitfall/test => ptest}/test12c.pdf (100%) rename pitfall/{pitfall/test => ptest}/test12crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test12rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test13.coffee (100%) rename pitfall/{pitfall/test => ptest}/test13.pdf (100%) rename pitfall/{pitfall/test => ptest}/test13.rkt (100%) rename pitfall/{pitfall/test => ptest}/test13crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test13rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test14.coffee (100%) rename pitfall/{pitfall/test => ptest}/test14.pdf (100%) rename pitfall/{pitfall/test => ptest}/test14.rkt (100%) rename pitfall/{pitfall/test => ptest}/test14crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test14rkt copy 2.pdf (100%) rename pitfall/{pitfall/test => ptest}/test14rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test15.coffee (100%) rename pitfall/{pitfall/test => ptest}/test15.pdf (100%) rename pitfall/{pitfall/test => ptest}/test15.rkt (100%) rename pitfall/{pitfall/test => ptest}/test15crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test15rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test16.coffee (100%) rename pitfall/{pitfall/test => ptest}/test16.pdf (100%) rename pitfall/{pitfall/test => ptest}/test16.rkt (100%) rename pitfall/{pitfall/test => ptest}/test16crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test16rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test17.coffee (100%) rename pitfall/{pitfall/test => ptest}/test17.pdf (100%) rename pitfall/{pitfall/test => ptest}/test17.rkt (100%) rename pitfall/{pitfall/test => ptest}/test17crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test17rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test18.coffee (100%) rename pitfall/{pitfall/test => ptest}/test18.pdf (100%) rename pitfall/{pitfall/test => ptest}/test18.rkt (100%) rename pitfall/{pitfall/test => ptest}/test18crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test18rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test19.coffee (100%) rename pitfall/{pitfall/test => ptest}/test19.pdf (100%) rename pitfall/{pitfall/test => ptest}/test19.rkt (100%) rename pitfall/{pitfall/test => ptest}/test19crkt copy.pdf (100%) create mode 100644 pitfall/ptest/test19crkt.pdf rename pitfall/{pitfall/test => ptest}/test19rkt copy.pdf (100%) create mode 100644 pitfall/ptest/test19rkt.pdf rename pitfall/{pitfall/test => ptest}/test1c.pdf (100%) rename pitfall/{pitfall/test => ptest}/test1crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test1rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test2.coffee (100%) rename pitfall/{pitfall/test => ptest}/test2.pdf (100%) rename pitfall/{pitfall/test => ptest}/test2.rkt (100%) rename pitfall/{pitfall/test => ptest}/test20.coffee (100%) create mode 100644 pitfall/ptest/test20.pdf rename pitfall/{pitfall/test => ptest}/test20.rkt (100%) create mode 100644 pitfall/ptest/test20rkt.pdf rename pitfall/{pitfall/test => ptest}/test2c.pdf (100%) rename pitfall/{pitfall/test => ptest}/test2crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test2rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test3.coffee (100%) rename pitfall/{pitfall/test => ptest}/test3.pdf (100%) rename pitfall/{pitfall/test => ptest}/test3.rkt (100%) rename pitfall/{pitfall/test => ptest}/test3c.pdf (100%) rename pitfall/{pitfall/test => ptest}/test3crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test3rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test4.coffee (100%) rename pitfall/{pitfall/test => ptest}/test4.pdf (100%) rename pitfall/{pitfall/test => ptest}/test4.rkt (100%) rename pitfall/{pitfall/test => ptest}/test4c.pdf (100%) rename pitfall/{pitfall/test => ptest}/test4crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test4rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test5.coffee (100%) rename pitfall/{pitfall/test => ptest}/test5.pdf (100%) rename pitfall/{pitfall/test => ptest}/test5.rkt (100%) rename pitfall/{pitfall/test => ptest}/test5c.pdf (100%) rename pitfall/{pitfall/test => ptest}/test5crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test5rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test6.coffee (100%) rename pitfall/{pitfall/test => ptest}/test6.pdf (100%) rename pitfall/{pitfall/test => ptest}/test6.rkt (100%) rename pitfall/{pitfall/test => ptest}/test6c.pdf (100%) rename pitfall/{pitfall/test => ptest}/test6crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test6rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test7.coffee (100%) rename pitfall/{pitfall/test => ptest}/test7.pdf (100%) rename pitfall/{pitfall/test => ptest}/test7.rkt (100%) rename pitfall/{pitfall/test => ptest}/test7c.pdf (100%) rename pitfall/{pitfall/test => ptest}/test7crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test7rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test8.coffee (100%) rename pitfall/{pitfall/test => ptest}/test8.pdf (100%) rename pitfall/{pitfall/test => ptest}/test8.rkt (100%) rename pitfall/{pitfall/test => ptest}/test8c.pdf (100%) rename pitfall/{pitfall/test => ptest}/test8crkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/test8rkt copy.pdf (100%) rename pitfall/{pitfall/test => ptest}/testrkt.rkt (100%) diff --git a/pitfall/fontkit/glyph.rkt b/pitfall/fontkit/glyph.rkt index 0b09adef..577e7457 100644 --- a/pitfall/fontkit/glyph.rkt +++ b/pitfall/fontkit/glyph.rkt @@ -15,9 +15,10 @@ |# -;; approximates -;; https://github.com/devongovett/fontkit/blob/master/src/glyph/Glyph.js - +#| +approximates +https://github.com/mbutterick/fontkit/blob/master/src/glyph/Glyph.js +|# (define-subclass object% (Glyph id codePoints font) (field [_font font] @@ -56,6 +57,24 @@ 'leftBearing (FT_Glyph_Metrics-horiBearingX glyph-metrics))) (· this _metrics)) +#| +approximates +https://github.com/mbutterick/fontkit/blob/master/src/glyph/CFFGlyph.js +|# (define-subclass Glyph (CFFGlyph) - (error 'cff-glyph-unimplemented)) + (error 'cff-glyph-unimplemented) + + #;(define/override (_getName this) + (->m any/c) + (if (send (· this _font) _getTable 'CFF2) + (super _getName) + (send (send (· this _font) _getTable 'CFF_) getGlyphName (· this id)))) + (as-methods + #;_getName + #;bias + #;_getPath)) + + + + diff --git a/pitfall/pitfall/test/test20.pdf b/pitfall/pitfall/test/test20.pdf deleted file mode 100644 index 371656722f973fbee4e48cd7c8a95f433766936e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8175 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 L+tEnkdQ$m61Wn*F literal 0 HcmV?d00001 diff --git a/pitfall/pitfall/test/test1c.pdf b/pitfall/ptest/test1c.pdf similarity index 100% rename from pitfall/pitfall/test/test1c.pdf rename to pitfall/ptest/test1c.pdf diff --git a/pitfall/pitfall/test/test1crkt copy.pdf b/pitfall/ptest/test1crkt copy.pdf similarity index 100% rename from pitfall/pitfall/test/test1crkt copy.pdf rename to pitfall/ptest/test1crkt copy.pdf diff --git a/pitfall/pitfall/test/test1rkt copy.pdf b/pitfall/ptest/test1rkt copy.pdf similarity index 100% rename from pitfall/pitfall/test/test1rkt copy.pdf rename to pitfall/ptest/test1rkt copy.pdf diff --git a/pitfall/pitfall/test/test2.coffee b/pitfall/ptest/test2.coffee similarity index 100% rename from pitfall/pitfall/test/test2.coffee rename to pitfall/ptest/test2.coffee diff --git a/pitfall/pitfall/test/test2.pdf b/pitfall/ptest/test2.pdf similarity index 100% rename from pitfall/pitfall/test/test2.pdf rename to pitfall/ptest/test2.pdf diff --git a/pitfall/pitfall/test/test2.rkt b/pitfall/ptest/test2.rkt similarity index 100% rename from pitfall/pitfall/test/test2.rkt rename to pitfall/ptest/test2.rkt diff --git a/pitfall/pitfall/test/test20.coffee b/pitfall/ptest/test20.coffee similarity index 100% rename from pitfall/pitfall/test/test20.coffee rename to pitfall/ptest/test20.coffee diff --git a/pitfall/ptest/test20.pdf b/pitfall/ptest/test20.pdf new file mode 100644 index 0000000000000000000000000000000000000000..53d9003ced9dce62e9a6ecf080d94adc4b032044 GIT binary patch literal 3599 zcmai14{Q_H8MmF-X16p9LfDi*{9uKKHi_^2-w;J4PSO}kk~&T)gp^(EvvbA1bI<1n zCq%TBh&rVj&^FLCMYLN-uL(SeeZc)dt-AoQ)8#r{TCj}iD)GDJWkctQr2KP!69oq8|5hYl{i60 z3@isI>ozXTvkl^2)I|fq#n_PBYwM=0K2eZ?Es5+Iz5tgLQ&NaaB8Nt(tD`s}OyrY! zPEWfehB`PIby>j{WDRnAWn}foL2pBL^kqjs=x7EVh?v)GL#~|EykMd^C-@;wh|0Z) zu{$YXNXin&#wp?gjjG82Mx#)idg3m$hG3S+Ach7Powgbe3dS|94jKg`R97uc)38R{ z;I+f+fY+IQbKfqQyW#b~>#aj{Hwtc{nu65B6bVGuqHIXqb1a9Dgi|3-LX{Abt-QPe zVhh&G;vxz!3XQDHp~}XMHk$F!cALvaI~`8%&JD!rtZeTb*_pJGFg9|@ki;iIY9_3$ zY#b8q^R)$Ac0AzgWhI#-D={_-3CyrGXj!jjTnwtV*(BJ5q^6jEfVOXkwXWZ9bZagd56aJE@N@o7;n&ZWr=6 z?8s^NB8QhjPL~rAy4w!lUN_L)-Q9D2B=F4nn1!)}aTAU#XslqoU*Mrqa^(}@g|L(@ zIMf4<2ow}%m=DR>nMMo6*#x9uq2~x$7x@mfy!V~Hjtvx07PyYWTm-~zV-p$hXkn|) zg{m5M$)MON@Fa>* zry3;l9l^H97#|A-EJjJMk3z>@xM40LGuCT-kbE%(bpW-yl@Eh*a)N;Fye3k=Ik)dx zqCU!+>(owY2ziX_b%iFKUaw!0?M38!tAdm@!$lQJxlUQ7S5_O8iUP$_sD_FPE*2H8 z*8Su5OZTWw^{G{bCvI;yuGZ-cA1)=oe^@qBv=%;$Ulpw*!#73u>dXe6UbnCLUBlW1jb~l2l^`~kd-7Ci&Y_32qOuOVlavCNx>l?_i}L3=8eq84OL1Tkd`wB zi77b-kVO#Xq4;VC>mg%3|H|LO*AKl}RmfnSx}9$%>(#qRB< z{`G?cM)g%ZjyXN82 z_L2IHxqqN@$QZ@qgt_Zb|CkYfW-fW}wbLh$jF-Rv=HpEk^%!t;5e|OByz5X}<9PMd z&yN1I{8Dy3J+O}ibIebQ0eGWIjHFjM8=?wnijRO4L zTXLzo6x9FeYX+|{~!~roX7v?#K4aT^2lU{<^tPDKd|YpE&$R`4<qoxjzsrI%bB*1@VD@?-+%Ju>n9F8{kEkTuzZ0TiGeVM9%hyI