From 4537590033169915e68f6480e2463bc4b2175f78 Mon Sep 17 00:00:00 2001 From: Ross Johnson Date: Tue, 6 Dec 2016 16:07:16 -0600 Subject: [PATCH] Consitently apply textAdvanceScale during building of textContentItems for improved highlighting. Fixes #7878. --- src/core/evaluator.js | 20 ++++++++++---------- test/pdfs/.gitignore | 1 + test/pdfs/issue7878.pdf | Bin 0 -> 36048 bytes test/test_manifest.json | 7 +++++++ 4 files changed, 18 insertions(+), 10 deletions(-) create mode 100644 test/pdfs/issue7878.pdf diff --git a/src/core/evaluator.js b/src/core/evaluator.js index d72cba2dd..2932523fd 100644 --- a/src/core/evaluator.js +++ b/src/core/evaluator.js @@ -1366,10 +1366,10 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { if (!font.vertical) { textChunk.lastAdvanceWidth = width; - textChunk.width += width * textChunk.textAdvanceScale; + textChunk.width += width; } else { textChunk.lastAdvanceHeight = height; - textChunk.height += Math.abs(height * textChunk.textAdvanceScale); + textChunk.height += Math.abs(height); } return textChunk; @@ -1393,6 +1393,10 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { if (!textContentItem.initialized) { return; } + + // Do final text scaling + textContentItem.width *= textContentItem.textAdvanceScale; + textContentItem.height *= textContentItem.textAdvanceScale; textContent.items.push(runBidiTransform(textContentItem)); textContentItem.initialized = false; @@ -1545,10 +1549,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { advance = items[j] * textState.fontSize / 1000; var breakTextRun = false; if (textState.font.vertical) { - offset = advance * - (textState.textHScale * textState.textMatrix[2] + - textState.textMatrix[3]); - textState.translateTextMatrix(0, advance); + offset = advance; + textState.translateTextMatrix(0, offset); breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax; if (!breakTextRun) { @@ -1557,10 +1559,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { } } else { advance = -advance; - offset = advance * ( - textState.textHScale * textState.textMatrix[0] + - textState.textMatrix[1]); - textState.translateTextMatrix(advance, 0); + offset = advance * textState.textHScale; + textState.translateTextMatrix(offset, 0); breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax; if (!breakTextRun) { diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index aa088e3d4..c4abf5721 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -267,3 +267,4 @@ !annotation-choice-widget.pdf !zero_descent.pdf !operator-in-TJ-array.pdf +!issue7878.pdf diff --git a/test/pdfs/issue7878.pdf b/test/pdfs/issue7878.pdf new file mode 100644 index 0000000000000000000000000000000000000000..13fcbbfb45edacdc20ac15249b69331710bb5d0e GIT binary patch literal 36048 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%0D3TJp|Oen*ujzPrrN zLvc_p8Q&jUTp1Gmd|doz0;daUxCWDs;iC|kL)sS#gF{4_Gaxr zdG`ySzV>hk0qECaofJ1OV}l%f3WI^X22s3h3^*ZD+o8L zC=^b&oFZ}{z zZ{)ZX58Shq@iAaIk$GfWWLhyQ0%B3D*%KoC+0Z|wFpA%fCxd-$dv%e>PN6WtWd}));u_g-fL2U2%SKCjkt-Y>MHhQ5v?2&w4)x0XaBfuU% zH|THz!kWOSauc>^zoaegnIxg@V=&;r5!tx8Oip@GjTssuAbCnG;yZ#(@`XI81N?Wr zw%mnwq;{*m>%2z8GUVU(nBT};xeHyjV;bgh_{qL82i@)jHsKM$-v{bCBYkJb7HJxU zxqwpa$3;v4OTc!HqY*+l4#wvX@@b{+&C(wP9$tv7IukS>7->LdZrPd3<%o7B2f25F z*K&KJL3(v$sAWYLlVH{_L;4n==j|R#y*<9dLKnI*#l66 zd0GW&e>-eMY=yRI!wweSPl?fp^&t7;@e+8Kyz}YULA{h<*AsZtr3f8JO|@ALU~Dg?C`i~&dt zQII!t5rtqdropnBU#I>1Xeg-o2xwIM7sh;81JsyKs%)QFTNYN4{}*lG!_Kdv7kozo z?o`{9;;2nM$ujI7go608s^4D=z3v)pWQH?&a7B;UAl_>-{O)dApYBLce_G_jO32N} z2NWG+9*c2we1eG+fv~iXDKpal8KvC`bCMxCN1i6P~pXT)TV?C6w zcC|t12Z&~`4}fEN4T4R5n5Hz$zu}q0AXCz9*p1^WDc$*ye@G|L^!aIa5wb)gHl~e| za{Nq?J%Fw<98R~#H)FAkc(t6EsQSjHnPnY+0mh^;lWufsozfjvaTn6U^p))UHOJ}c z@;UV=Pj@!{ZtAiR$Is9`Q+}Y3>E`PrSHH8kPJJNif6T2>31m#!puWDjbux;~ zZLbcG!%q=4N_e$0Yx{4zJq4@B*9ZFthnxstA{KhKk*}D}2oB3TJJxq-8uIuEo0%%y zky2IQuLRch~$Y`C&Xt{Y`pTdl5C1swI2qKmqzifO_5P>9A zv62gB0F9`@Txc9HH611rPv^#xj08@cRb>*ib6PlD?<5h7@hHWZBNbJUMp-)Lw3yQ7 z?#MSk$x5}Dv@RAIW}!L^xi7rh8F!}xQ}CEP?iH}(`y=;I%LGM8{o?$gRA`&oYeHUq z1%JOl<3Qu)Ei>q|qI*V=9g$y(z_+Z}cZJ9Yu{N|Q(%$vz84HKw?A-oYARWA*cvD3c zCkvVmn@u+WvJPkPA=)*uu!AVtiuesK%Yhon4u1Wr3x^qW8BLTXT=F=s&56^2@-Q>m zHHc|rp~uirNgb{P{q`iCD}_!G_vg4kW6*V7;)`$2?8y6TR;QbmXtJ7J7><|wa-qIE z)TH@iQ%h_jip8^!zK?)~?9?6%&jCVA@;uY?1XZZF+Jfiuyaj?8k#X0v^d%f23WVh2 z8=4ksnNW3dVs^HfdG<0zePwCUJ|FR<8-wi=axeeIb_#I+%-n;sg8ksEtW}Q6cv94d z@J4sO*Ej$NlKmoYEI5c|o)`kHE`jufwZ{ZJ)gLMxqAwc+Gn4Fh<~O0)3pdUv3pSH| zUpqs2@)W4(;DS!Z-Vo6*^E1IZ!oqY6H7?@x3B>*koJI9b<0yk+7nV|{VaR2eFv{_% z40qGtgWE1@Bnm(Z#os8ryCOUj%4LH0uSSrSGGN+0!gHw60Pc?Kpr{n0P?APD9D=f4 zOdxsFrl7uc=3MU5GUi;tX&6!luwwZLbGT2ESaxBgTukGM!o}h^Feu@X8SF2q88Dkg zCq}oPa|i1udIb0V2HIIevmWEmau0Xt)>N;ncJl-TS?GXiuHX~lDOmLHbEeF()@oioPJKG-z+K5xII)1=&Gzi2ehV7`f- zr~@>r0qHI?!?;Q)jN;-w=x6ra63UZ7lD$j{N}Y)FtYFy zc?0ZDtm-0Ikj|oE_%_WeLS|&tuq|4i9Gqi6{2)!kG<0~0s>Q7CKoiL7!||0nmOi-M zrG-Ev#Qfh;kKk$=#vdR&RYaFZGZ3nSD2{tRAO5N7sX2SSRi-umG%%MUn-PvN1t}c4 za;Wu3P>&ecqs3Hy#Cf-s7VUGC2uJeYiNzYz9;c0g_NviH<0Yh{Y+oBGd6`YHexZ}p{^R_S!{cM@Jfq7SLU6#S=6xLdSHs{>l;C@7HAv5Bfa z#M@WW?#j#Eg$!=OvX z3@$My*8${V0rZP^U@5XlVTFBX!skIxD_xO1ZZdEBri;b)V(fQb#+!3OP`j!P%Gb4VF6=zMwyIVaw4X z^gAK44J>(bZt18_y6m~XEN&Jdznkj6p@dEBu8vZ8bF>2l1Tp!-w%)?@CEA>6ig`Hd zDIXODe>Fi($|sRo+8=o59GarpC3JVG%ST%hEYMpT%(sIfo<0Iu#iQIi)zMUC&32rN8J(C;_c{6}}gFnGa?ZI&I}t@5pHf9uM4>soH;ZsSX)W=#^(-@SpxZre z?h~$Ml4 zyC0{E>tZ2EPFN90k)#x?HskO#7IhB(oRusnoRUH?pBDjd$^O+R)2j(b#HBEIxalpSWE2 z%WERiN00l{IZ_J)L8ncTj2Y8#nH+*wuWQdoe+nNRCjU|=g!F!BALKc!v?;5~xvIm2 zePmgOQaQEbEk!arsgW~lT0tQRZZ?cf6r~niR?hScZnIFS`i*CG2_{ASv>D=H+1G;$ zTgP00i#mQTsn}KCMz~^8ILutasIxx#oM7v3n}kDn5>h0(BE@_sxIb=;y8R9aQ$G(R zjjKk1m$XLpHdl8XJMi_M%_z;E@AR>FR}aDyj*`lNokasXHv%rUz37QXvF;w+{>4>!p8#%%EYhFjB29lL4M)+;0NjRC}rKJvB^LE8xBAxbG+E8V< z6xQn7bK}lgh`C-14gshnV?LpDD&x0N^y#P-gtGXZLZ+LaIH05bAiLs>eefqlWH8vW zkU)PLic`2Y?>@VGV^%-F^)Fv|R1KWbL2RM0Au19~tDptRs@ZR|m|`P4m*$I@zg7w~ zSLySGJQCl;36={KF^m$)TNEbPL%>E?6*(5#%j$Ol)|O6k7ZJ#W0 zNG9fZU!QyBctGA6q5m1e-h)Hhi<|Y+Pk2%pgF5CxvqBRCC?}k=PLLWiMTRw*9$Me*z58{>nejw)F;w#v znTr&qD}IGsu7MV#P@qc8y`CgsiJ}C(0-|IJ><_$(xusb?SHE^7H(kIvbQv0)i-U&) zR&jq5)-g+*mx#-8?LuMU9bLn)DYU~tae)G_p#te#-Hx=hv|IbrQJAC+IR?Vfr0B7n zrye?QIqhD&3Bt8x!V*UID61;E)S+e_O{sw~`8V5cv{j@4{R#6~T@D%m_Ng(f6|BXq zp@w=8tLy@Ha7{$3cjB+Wt~K%tgzJ{k!x)SUqS=q|2;v)H9?n-bbl8Adkkc+>%4cAHjZrO}`4t9vdyV?^MRAZ9KEw&rGK*NYQv1YJWcH zRSyH_=bM~`%k`^k^MQ~PD3xR_V$(M$7} zNtB8cis(hEVs9zb#begzW~`ZoQEHJhThaz{*=Gi|O||t-rKf{AsCKPXgW9@R4h|OO zk#%HG~tGX`~v0?#4uqOIE13I5C89nN0dazJ&>SBs4{YP+o9;e`a|DE}2m+47A? zKY7(JkOh&gBl=+2GF?f z;4$mDGls&}a-6)`0bjo5tCVTg4wg?Cn|S_z07XE$zh|&=QG=>`iJ-WPOVVR~OXi~2 zC^yBdKMkIefidh&4ga4WmDv)S2L`D92NNfEo5M-MZoZS;*1>UZj+;~e>6FKqA!vAw z<;7&`Z%S1BG}%Ve+ z$U_N`1leR%;KeuQn}DTPPD5t0(Ix8zvhkM@d~B-JM+$yZIJJ3fa0gj@HiBo}$z?z7D!hdRdiWaU?k7J@KjW z8E##wPoAYen)rGK*U{0%GsCgiQI+|S<0;2Mhnyy3NZ|vpnyD=K2(ikUj!4d(9GUG% zvZi>=NnY7zwPj^zn`LU2-5#CRuFcREX?tpiYA0zWZ4Fr%Nb!5Xpf^yRVU6Lq;gsQm z;YWjLh|5h%#-IZ9Kz~FRz>?E-R){B%# z-ta-65V;S|-ZV60%aA_HhclAXe0RdQ7Cjf$nLCeb6}Y!8`!?a=dHxQ5H?)NFfqVTX zk^x1~6F9*fZSEH{(sY-3Z2Dx=RP*H612O6r3Hg~_&0X^c#th6G7c(YrQNqRybxxMf z5$__v$&u!m7TFHBO^4B;QR6<~GkRKRmh(1`uLZ|bpDNNTS2(@ixYqGrU6ws7BdaKj z&$6^yauX4{UuD|9zMi39xql2{Us3l=tvR!U?7-KsUcyHzLl8h|!D0X-Ij37A`A z4SsjfY>r8YHHU3|IWzSr>5aD>VW%@maV%NFCQx*A*hVu=p3ddv) zg?`f>9M&)3ZI_fl^am#FDm6qK&AvNNjvY9p^N?lPi@siRinq66B>9IuE;hbTakxf?@4Rbm|6TVH_C?gN6=iP*%AOTfoi^ZHrCz34YFrkz z%(NnUwSBdt%DFPBDrI%5R+CJU94QG-_Vuf(jY$Wcv_y`vGJUIwOM$pJD_CP>%AWIt z6y^TODjU*ucAMF3wZ+Ijn@UA(GEMaAbVR3f=%_9(J(e8BO z(fQJe%V$!LCgi-J~0uP>~8|W0Mrguy#^Z;E8d2(tD;@?^!hB z{)Ph9vYBL!J3QEu*e-EJuZH)+LQ&Ro=(z4t9*{`z|u`-aRvlNN_C|X5RT#PR& z${LrO&KR6#`SS9t=}CSTtI<@S*K74-urwi15J!nu<4*L($rcr&JeIKdJ;(p4XcWe!ZXiYtSN^J)T4~nyNdaGK@bMe>8GNOMcf$ zv0=(xt!FnO*O(>K51w)rRa;n_)rYP^*bizijQf8X{82$uC9KhuN1v~;qp6);(-K4D zRiUBjZlsY)hQ<))#+Yym=}Q+gwAT$|6q%yvFm5Vqsoz1AI3B4GOY<7+iXCe>aKl

#Zthye-e=vc~85b(!`|n(52U zwffPF=dII`N{Tls`dR}kI`}HuBqb8Gr$k&JI z!7ig%U|3&pgBG`AA8w|?;6EV(8GQRad6)z({xc1>gf7q<;u~q8)7ZF28RF~b-b#d9 z{DlbhpOXM-P>Ggf5n7G{;tjN1;n?J$8Tul9Pd(Q~+cB}9X0Wzj;ttJ@#G_)ZR>iwx z++J;x+nbo5DCR?}HPEURSo8BTn8M1@Ws~gu^z7`6bZeekwkPTRQN$J#i{{CnpK7=2 zIcI!4td;U3!H>^;^{3;Ey7p(be)TjJhMfO0w#p+-uaA*V?&pmT-9^g z_bc9BA+h^_Sfe3^i0{vtcBEH6fs1$C-#d^Ya<|&BrqM zP^h4Z@P#9UIEUi->#fAHx*yZdrmw#>`5wsE^` zK#0nc?M+MbIlOTmug@2X84B98QDZ=nV@u4nC6)vd?77=Y_LR`oCFe_MNew*`i0@#u zIh_VuCJoRvl~wrP<%p` z8^SK)?X2>rPk;UJpJv^@hN1zKYl{ptJu024$Q-~d0}auk$S8ckEOZ6o{KGYNSXDP& zb36aga(lS3u>M0uT{oOn#6Fh=7QZVRg!(7j;w<*xSxfHF#xWNAWSZY#yEWuc6!{(G zKx4hm+}MvicNqhae<07<;gf(rgHIRST1SM#n*# zqPr#ZwDz<`v;QpsIY*nX{2CKE$*w#nM&9jum+FQh@uAM%A_jqEuoI^Pf-Z8TV8 z?Ouz~Yl)@QE9<-}mCS-rLr*=?TO2FS$2R#ujOs{iM)j-z3n~AMT7USxrt>DpUv$&8 zxBYJOg5u;qsN8_Jy@9M7$Yk1g7i!-HZc z+$Q>{v{U+8f7x`|Eb{tM`WN&snD}hj>u~2`faS2*6VAlOTJ4g~sL}8aJ2j#DWs>!Xb9}Up^r6 z5Fe;p|15NJ>CIG(Hk&Xv2s+fdI#G(^V*Ereq7F7wqd(*vGSTy;h65->X-H=pLPm~b zH^nSox(&13o=aPY9-6=m8|nT?*E_qk7}#)#F)SSwLT-KB#tZ#NkbH%Gf9}*N*|w?| z{i+Gg1jz8$+=#{|nVmaOwpEcGsHtWIMJ^p9&zj6KU|2TXyi(e zAQA{cL|uuiE8wxH$SR(^tE>u&$e{sLd|gzO-G%)N>#^>F{t%B>l-)nFDrEAjs-8(E z;rQ>qpU;1isd~D)y1Kino~NGYsc+RFhH+9g)zOB=My-~O$~rCRrf%LI2sm{W-EhjQ z(y(FWU|6(b7kmx`sheeoJidHJ`NDD?7(IO&{ef6j}d#X_&R-nL9i~_!(QQ5M7>I&5__5yr?Gv7~BdU1)J@8M})bWx$L zF|+mc3JhT<2=*S`CWe#PlG}=6^axY2m>?$Vg+z8BC!paVi48Hv#F0CqqA_^YV`Or2 zeZQ^^XW*2_sNvV(_+L0Fn5npKWn*|o8&3J{o!eKy_cM2&D`sC z1aaGeLZSg8?wEqOBLL>hHONRxVIv8v;7GQ(k&*P*tWA`{HW3vyxUrdI(LtRHY12L% zCk8hx%Y#ZCZ${cN5*jD+b>MR}V^mjY;JT0%lAT;UOqCFv!VLVf`}UDq_#!7z;pKRs z%3M20s6yaG@AD>lpBgGA*M06i?xRM6(KT;^gWv=Bk>}6e)8I5b?bSy>%p3DXYesn{ zd!F;{^c@0+;34lf@GGxriVqqI=h>dZX0{)h*>Ri2!r8n=KT&O15F8(*g7IiD7>RoQ zr9`blFt%~s)+;*ifC$u>IPRbeQolZONb(a(<9G@7Upc3&| zB2f_YmUQ>tBYV6MNFJ}(2Pq!n&{qS1&+Fq+65>{`Z16>*e!tJ>@kSv&9_{hCYpN;Q z9(7YCrLn4LX{o_rWNcBRHX5s`@%nt;>MCDM1_z)&Ha*rJdnvXjri#h2crqq)DNAg1 z>|pF@>?BI-raqJHUO$`;snzfRq#$HG9)_YAZ#T6}7HksD@QiPq?SSow?Ry(z6Kmhf z+N@(S6T3wAgwtAEs{A)ELWj+X#3Cnq+(qW^aVj>TdK4bVQ6m-)+EA>;CUa1 zqf$8h6KsIBeZ2DU^r67faDVKgw^{EC~8BF^_9Qr1I* zUJtcij}Ic_Om+iMBu7$~qH#sji`t7;7ab{57r9C(+Q+$Zb{jX{)^1yEJ85GqHfR%z z>#pxJ>K0*72dj9gu&QxfQP%3S${N9b5QkN66tF-olK7CfdQiZ+$&B4p;@ba@6}xkl zaw5J1p$iJ|N;p`QGt~T^wTi6XPe3I^R)0#(e+)|}MJE}>IL;0kU>)1-J zQmAuk3#o*$l#Or^q12hCG_P6quv@vUwypLp!XD=?QTw80GrNKNt?g<1Gr~*GjiPq4 z?FymU`4qd>wnli|xlYuMu#K>f5Jo#M6Q^0Gu@g9L+*xO-vQ^t_otIlivm-dIL9N%i z)oyLv60^nZ$SxKkqqSK~4A3}`l4_0UX>$a-@+D9P)&mt-%11QfHdoWlPGvF~16%ME zGI1H>c|z=X&-&gG=QcN^KCwg4d#sIIckk(KC}z8Rf85478wCuTH1qC8!6|qfojA~; z!FroT#HYT&v8ucGFMY=b4j;dTV_i13;TS2(c6^-@pOVc;X|_uyuEFL*0mReIHnGu^ zjVTrNLH(-vyixYqiq z!TRj^t+Dbx^|XlCVjly!{xzg=eD&gA zM^%g&Uw2jJCunSbdd$XOW)8!nna+V6{fAXo{4!GGvQ515riR&1Dm-l^JY53n;Cu4) z6^Xmb?oK|OSeJaR;CF@3lxVqmFeyf#(PSXftFS9@uARN}tyJ+V6ycb42)wyNr}@MEzxiTg{| zmaVJW0DhPFAn|qW&t<2Rr>lOh^Hf#W)-lP-GP)=lgh&Ai1^Ey%H|8K7MS}mTt%f<8 zZn#Re(Gf>Y6zD1CAJAKsRjO3QtIQcyOjlBiIcq6_pjOFH#jPO+}(&8gY1c zA7lh^IeWV27b68qhb-L=bVxB$VR9t&UPD%)gk6ZFw9_bu7HHYRaVgK;0;hk#p$nqid=P9~x19 zN$U_^XLUMuKl?pmZp7f3gMaN~@4!T>HO2G#Jtc7j0fUioq<(2(FA&W5W~bIO;L)0#wG`RMX#t|{f6 zQfJXksrynJ3OAM?h#vNTARUPwF8)4hwM2F0Bm5%+Hx>QLe|OOX{@?mH744JW3mi|F ze7k#p1Ug_juY?$Az^3~pgkLI51k}OeqL9A?RAsHvV&E$+!AxI*`Msn>iwxapVIlVC z_;*n^gJNpEYy#*-d~9XJ1EMgBy4Q~7p4A?tkH7*M|G47#;QHXf;K?8p#QLzsDzmVZ zJ;_q6STlP5!1>|kMaP=h}&9pZM@sk5B8m zPsT?JAK%oT`QeKN+pc(iS!O?_&x{@@w%+~4w5L)HkN=YxgpM~-6UWc5nfM6OKX)RH zgh$eAIQXkvIHdA2_qfXD%B8|x!V1?a_r102hUqVrMh>NLmw0~YbHffhjyryEXx#WE zZO$qTf1R3;<3rLer$xmBSZ%H-3(+M>JgaOqh|&7`q&3oHxQ8jZCzgx^nrH?MI{`Ae zTpgM2Yxhw;*GN7hmq$ZUd1!lld3<&JsrXBARa_kL#4hO1!$clCffPkDjAUn=b5qVe zRs!W#ppgm~mdp{9mtiCs#OlM~*<=Ok9YWfsPm1NCK5LRmCpEZT>SrPnB$9OrzM|LYyNT9q@qpM3Jwkt50;`SUf`eDLBHron?-=Py1y!F<>1 znH3W%{Z@}RcK5aS?_X7hPkn{wp09cM$@#;s^VwaYOD_4gT<*!~L3T79SpM9LEDDfP_o9Pls} zPorm?XS!!0;-;58M?6~3*AZ;cVej9mEE2ns48DUVvCf&&I;RWgCbIeo>i$oNkCb>X zKFK^skdZIq>Ko`H&HN4bYPdABio_xG-dCdjcq@AEG8o(qJV^BTdw<;OXFYh)lpAS! z!KLnF>f@eo{6A4YsDE((=szRr3>2e=ZiD|&Z$`LcGgbWD@D8ADSA1@9cKo` zus9Bii_3tw(5hGFN#Z(_Nw4!-6`$LvXl2&dR)!=~C>oDDqntjFc_d)ic_b2C13H@{6 zIWJ}8mH8*O($2EH-D|W9!9tvb1pLA%1)^+pM)Y8miALjzXtXfl4JLqrOguT;HPE8* zYuYu)u8mU~4NZ9s6by*?`Wj9#^K~04yQvXj0VMM zfR7sKs38~#7>x!BKrQ~Q%4nH$ymO25q?2*tDPx0!ik8}^+xOUMJ38Lh>wu13@D3nQ z2e%awELsbOHy&?3)l5*Y&4gESUJU$KTAK4^oCkt77-B|z85d2+HZ!tOv(QD-gbL~? z1S`*%N^Mw@nL5KXDym8-cZ{S) z3PT-J;nl(v$4bX@j`yg2!YAmp$mFAy9nV5G#j~u9_nLTnAcj+YVJW;YOo1>P9v^-) zd@!sE-(L_8#|pfG0$@~=EINzMucIuwJ-Q>h?{&S1QSVpjbZV8?sA41+&cb`Ad!aWa zdc7{uD~V2kURdhR{46K!3@!00hVj{X9*rRdsEav8-su!6NYT*ebRgP6(G;Y8b^+xO zsHmfxx>5EyqX0tM9;F#=EE;g(e@U`MP3ox0NWnK?5ddg}YX%~!^k%u@fC&8}6y?H{ zC?~6uVpl05LgAz+M`KAbDq9Nt1=9JRVCS9N4Mhvjc(1rV%hHJ;hQ|i z4*nkE>C<9_rV8;#AJGrlMCF0O?)-~^IL}Q`cxKF&C{oM{kz)2L)kV1+F2R*m!NzQH z^#RbR-fy>3T1R*9$(IE-r=nq(eslBGKnUYD2l;<&wo03AP#XQ=o!@C&@*rvIKNMaLsf>%z16RHeL@OToH8O(@kQ z8^;ObN`}^4VVo{Bmt0XZ)3`ubP%^XT$&&kPo(*<$-GT08chf#@UtnKyU(-k6+vN9+ zCz}2R{sI5N2A!zb3dl8Cxuy^s46%V^Wd#f*lT94Q`2tBk5J*;pSdR6<3Le4=3hCKw z)DqR(qFgi(m7=a;(WYoJnu?~&qZLu9o4QH%AU$2Lb!pR7A@zL{CZkPFjWsomp-@Rl ztO={;T;os`8--A1G^)H_qab)8PPST9rK(2MucoV1D%XgLXb7e5h|Te$JK^*Cafs*I zy|h;xz8gjfq|L63o8s70P9$nY6yniS9DB^k<-E-zZgPB*q>1RDFR?kR7!qaiM1Fuf zAT}9&ES^+i@uU)qCzaSB=WArmCIJOTK4%I}%}R1IchB`6+J>&-x>1ZSBQd&?!@eJM zF*!!p<9O@9A}r`b1UV_EviBdd&FpBjTCAQ%tICc8*4~JHOR^0m1)S()6AoCXg;&Z) zaRrKBMX}Y4Y&zIyq!QS`V94>HgesIUcn)fC0<{jVR=gqq#Nl0;4VmZfBFCpNG^G;W zomolx_!qcGUkiuBVb@~nI8KwO$vr)N809xI!xY*qsF7g&vTru389trY=VzlnKNt1+ z3ivplVEb~L!;e>Te<`PIV&f}8s0-;T#E@9g7HX?dPvfo?rhBIa7;T^>_)u^|koi~O z#}K6s=tA~@7-DkHt5nuBRq!sRKCnw5m?%dn+t?CV(oMZ38!Adl$}7By3Xn5mQ&}Tc zwC$pvK|?;u(+83-3=_;#ED?&u!Xa;AC>Vrn&02a&kiKjqgEDCvLz4&+&FGE2LDy&>xW}ckd=L>nonfaZ)HN1AQi0M=QCFSzx&dfKE+@3f09{U zfsek#!IiKMR!->aHx(3{8Q#}#UZYC-x=IXwoR6G13;>-$eFcq-a_ur2ax--^?K6ah z`bCC?g1Vdjiu%ezYbo@#_-TiwfGVYHs787my_{ZZxshE(t)wlA24K)#l^yUE98)2( zos?!~Efj5KR6etb;*jYCwH8@QS!6Hzik_q;%HY|Jkf`YV?SKI;w>4@UDnU37w!`J{ zBxIoILanN}9+0JqMOOXT9y~PmZ6<-&mgO%c8@#S;%ocm!_+;t*=gX8iheg8(q8&8e z9D(ib{d`+Ce$`=aq-cx3UXcXNfk3K%ZJIS;hxXjWE1fy}A+@pR&v=rRI^1&=btkUf zo9Wjz{~~tRn5Acj>0kuYNSU}FSzuSuU7!F|!CCSZ8#T}PHrx-|pJ!+iyNqZr4K*7DD<_>q9Q;mXf}%C!Z-Zfdjaij)Q-kzgQLzriWmhQCQ(isz@W!Jb)~y`Z)ivv7Nyj?$=Gl*re`@PO+>URj@4WQY>n>l~ zal`J}%N||Ve)B69cIAjUwR$IK)mvPJPt5K)M0`QNwX);V6E2%Oc{=uG7o)bH%zOzv zpa6zn#wzz_*}#?(bvtPC2>940mfA&8um?Rp4Gj%a)Yxq3hO>7>13D>yM*Z1xA?-n2 ztI-*}0Sl^mO6@8PO$0{C&f|qa7QUT7!lUjSzxLPp&4C-?SZv^$FDaLFuW*bAEI8O)53}xX_1y>cc6g(f?5PlWzG`!|}CAL?!Uwer8RC`SIjn*nK z<*-6E#LxuC87}o*1t+PRHO+<=I7c<#u!Oore~WLKf0b{S|MlRGh=9iElUogJL3i&r zFZ%>#H-=`oXezX#HUf4YU=LDgkW&xltr&!bk9^n-)tP_o_;k(NdC2M~KY8%MPwPd(_^Gz5?AJ%;#7?_Z zYM02`U2!(fMO=5YkFmdTu61p&Z$NoNQO;@+c{f=tB6=K(PY;3S4|C@fw?<(R0QQXMuqY#6a?vK(@F|jwVoe{SYd@mA{r(BH8vs<(f^ zh~mD(ehv&ELt|0Sfv3)Q;0gKbKte%~N`lG?`fUOsBWpm^FFmyTt-oxXwSR)0wK`g# z-nTz<1{(JNH*NA@E_uW6a=1rzee>|shb|eA0r@tY`3qM->n~y&F&DxKcFVEb7Wy`bsmK|Ms(~+C^!B3Q)y#CWq z*W;c{5j1)!>d7LIz(Ki9FRZgu71S_l0yUd@hkD2MzW53EiTJ7e|2V(!|16k9PoXDC z)%ZrcFY{mHp5||N&-dTvzSq6Zv(ERb%Cbb*<=IQ`<=*qW=TmFnwz?z*u?%r?vL_JcTU_cNCEl^T=CeSFbai;j}bHW$TU;C$_HZ$vF%YL~1 zqs$R#+4m=?pDZ3;v*wTsKJoOs4V4zrYGo@XL-%{HBFXXp-hR*K7w*G4(T7NXo`!m6 z66}{FvT?ksOLd3w_VV?{t;X$%w-SdEdWY7cGwx&Ape|Vg${|vKnO6V^mQY$%H#IN!lw1c$*IX-`O6{_Jq5Ytpv5ToCJK-O) z2-2}+(MmmgoM^7~Sk37n+Y}61ch@`!MQScgxKV=^`9Z=R_e1QCyZ!bHu9QGTcA0Mf zegkT|JqO1vg+z|_wBvC9D>!`RgnDNAO(Dha;L;PB-EB>-#cRw|sDHPc>Z%l$B2+5LRaOjGH-Eb_ z_Jy4buNg}gr~G5|(wMN~@QY{8ym)xU{`>BG|NZ;!+fVI#lt_%76NeRDTR>JlTy|;U z(6c)s+_3|K%$SG%@W(X|{qc{87bYQIxB>A(4eXGM*SXF}6a($BMZH9QKYWN<51*m7 zz-^R%gZg)x?W!G`cQhYqj<_@~t<^!~wuSfe6n~AA=N--o}z2Yii%3hf^k-_ z$a@nsT|=e`f~=yy8Y0(Z_1BsTd>l%ZmZwq`<-r<=m;EvEf&$dsHGt8udaX_pk2oP3 zC!UrKbs!*>?dInS5ks;rw@RaqxK*Mbx-=ezCGk!%{j;1qfx7q94$0`}742uLGOecUA=9s; z_OY&_$7(J#-3cd*Uvu@WRo7hW7e#;Od*WEQW63o`OXugWTOyo|^rAD9M~zrLuIFEU z{7YYbbFs9v=i9!$#2S?SWx(sGHwY?Zo+Ax*xm*|&D@0kGAkG#$#XCif&BRXOkshly z>ZYhvL8IUi*V>UDOTSHZ!-rn+s7*#afV&}{*rAXaVrCeXWFN;vUi4nEynmSi+e2EZ zzVY;lL2y@)zw*l-O4-g?O^~es>i%1o!_oM?dz{2wIQj>S9aLFA{y1~R*?;CqDx}L` zxwJiV8(l-*%nP296D;1!jbiDmEmJ*6yYqBfx@QbDv#EU zC#OA#n^gvFH+=CGh6x&!7naQiwQHg%aW=EC#)l^ir^{A~qG_MsXp+3%aSUWc-!8ZV z{uwy?C$q>hn%sn8&#}hSJ^gDA@tz%M0K{+J_s01PK~)u1DeB0rw`WY)K|qa~GG)lb z%nzgjbl2aB-@fN8;r!Xx-(Tz}jDPQSh|Bk&c3p$GJVkZy1aZ`j1yf@juj=HDB$mf< zhQ{k`zq3($ldzC4jFiL+lLe{TaARahyfHbCpBFOBvB8k7%0?ylaq*8MA1A+!e49KI zIg`}ZMe36C!t+v__)Q^oI28&3MT{HzWVi=2{dVAoem}mck!|#otqYLm?Y}1E_Xk5k zPY4uO5@}IZHZoaOR+$VICsS4fDac%^H=7OmpcNy8kp-o|gPrRLJ~-&+ZADR>J}Mr+ zCK8WFBf+9bI1&y^sU)9DB}2T8vq>Pt0}ukXRG3$VU@-0R*wb!xG+k7gE-o%Aq6}%y z3bbiR>3M8I>)Jyw^k^hJDYXl(2N9HFTA1ugQc|)kIU`9Yu{82l+tApLMxTYcE*-_{ zBwZOI@HnK_iB-Gd6QE0(0O*JJvsgwg%I^JwUHw@PKUsE@#c(=mS1=`t=hW7FXq&Gd z1MCiM^HeLbSfRv@ViIrd2lhjZ>|bHdVu3F{gLYxR*WkQJl%11(0L0(cdvu#Coa6~= z(3-Si@rYuwRV4At^lQ)|q(SrA2;R0c*?T&FwIIrYa*faC`f*!COiF#L*|F2M4^rB% z*Yx?*0)76pbKJSF8auTPeGY`WXGk52ijz7a9EIu%u z`7SfH&)v2danx?aQ9R-(Cuo+Fv+RrQci55gVVr_>Mx-T9!5Sjxw6C>VgHC`HLjWZ! z%Z_9Burw=*`O=VV8+l1^107|9C2JFZJ4SO06 zG|&y=sKOVWc|H?FBX3!GFJ=!7b_T>&s{2$;~F)V!bF)EtW;#R3aKFO z6!k_%Wr)O?m>;UtqTb<$1*$?nbQ)cL2y*+5kxiePn~}QV?q8^@@BI!i=&R}d1l{Ws zq`Z8P(>u}*@;JuSh4*IO312g#5nLcPg5Dpq+eY> zf9R}0&EmSNt45Js3m&_?vSiNCk%SyqUR*S!i6nnc5a5KQXH8l>V&upX>C2||?7+R5 zdRU$~qP6D(LO;+n*&ABrm~)YL8hZE!n9d;IhK6o3px`Lvwki?G=JcFI1IKwpB~V4YSOlFYyi z%_Fm;lA_bHAi_qdL5i&@HBwP*E7CP;xCUDa_bwq?B9#B}K z-rirf9;vq?)@}P$rmSYGbk3erXt4OtSJ(chdM)qvsI(fbT1%-tD%9cJTCbwp782do z-G|`g(WQTX+0856YZ2M@rMVeta8+5u^PJu>uos=9-cFwK>!~xw)m%;b!)Ii{z%OsO z^5#YP+HJP4ET1|&?z`vGp6~m$+o`uS{i^35gE|P(0Uzi+!qlT4VgL?!iCn`8jKDht z`aSrb;V|`A)!#IS4eIMPZC0w4YGvBAZTfkp`PNq39Ea8(pe+F%ZP00q0YG-c5F1Hs zc92*$*;88pWI-92fmFj{*%2tauYUFVgrlyn#a}Q6TVEM+1)o8;_?-yL6QJbi*H+8~W3Oh;+zgNGh z|5)>}?vvQZ<;T@u=(QqUMBk#hmtIG|K&u50VOg=%D~cX(P*6rG1GjI$kTf({njMXx zDPC$x+dXO2Q_ZCTgFYUBYZwjirz7fUz@mj(S7i|}OFoNNnQv#jVnx35ov3y>*ZYZj z;y^f`|KQ@V*nIa`fw2tR9mNC`Ymy*t_43}oy&MY-*k%DQJXW|2dv~xC{emntz?VMe zg(bKCKZ`RxuYY#$9|%je=eg9M_~4OshYqcK_z*p7-PPB09_ZMS>3ub$Rxp}KuSgSx zsO^CR2k(F2-~sH7L~XYbwOt65!praugQvGzYU8-`)mUmbgJ<2FBlH9?-PHmXxaI{G zgIirUmfQjEbKO<4F8X-U!zIs0Unu%riS?Nfd@R06+7zc1`@x*=22y0R!M-mmmK8BP z0gK_BaR6MgVrQDeioCfv;L+=_hbR^RYl50E6m_E1rH2;%QT<6ht#_3d2Jp6R>-}5& z%mM#V|4BdX7t3-^vDvb%+0B>gX;Yb=J z)cQsi4Ti`T!zP(qZ_%98P#RY;;H9u7G(My_@J@!*A+f0E*Zl*cvVc}uKTGxqCx&%y zpG0V_{deK$7aasq%UQE6x5LJp1?ErD4cLm`PnN*ZvkpBpsnul@HMWpz%BD<`G!AEVP_Je6n*+T^=nUer;qV{wO1{xE zl;SP}Q$gGC7o-=e|EuN?w)ckp-S!vZFAaYk_CK~`$*+c;wVg`-IE*vc)Pkx(H_UId z3-$*0uzP}Qle;a3$+l@VZ8h`KH`m;jURARyy@B7#>wlfz;is<9CgP!Jxjdvk>2g}k z8oRL;BrD27Oi7i+Y^3#owuWFbOC$H}$+_B5Z=dtU4P5;zd|4o7U;z*i&g-4+z;J^g-N0{u|H zN;PPV)giMZ&7+_OkGM|Oj*d_;91pR>c{HdF=M9!d4=xAQ49@f_RxEfNKj(zhzsES}e^nXux%%hMyv?s{qX%;|r6_ub`MyNN*X zMMr2|`!nmWn2>pQB3@XmY#U)HC`W`nU8S=#S}DH=6G< zuQmV9{Ep!-2DL+rck|v17}z1(wG5-t1|iGq>{bhF<#?57jCaGQWvee84r|g70<|$9 z8u*n=H+){^i;A>5DH?bOcvz3*S?Jm0Q6UZBi*3c&&_kW*7@1}{mD>ynFQ8T?O3&Hh zO_^VDx%CEvOXmlAx6u!j`IYQe961iR@`IoiDY*$T#r|ydYnqn0x=|sje2H> zKotnkrM2jY1U8mxjYgd|Xi+9o4erac6REKPJ}$;vWsj7?;eZs3LBYaHfi#He9nQ4h z=d);aY1X3V1GGVs0B{J{2GPY?tE4@kfg0>!FBt4#udgRR%8)}^WuZC$?r@kBx3V6} zSlCJf+~}MQ?_z6XtbV|$d8OtRHne5g@O5BE>?a^)i0l14J7Y)yAhEpaCv8*Rf0)C6 z-1Wk~TjVPhPte@U|G0@X!}r9DxaIMtDN86HX^i_O%zI5C6+bd=gESfqA4F{sg45;l zO>h(Uf{m8+l0m}T_n0M%geyy9h`19t*6s^ojR1}yWu?9V58Ed)<)|~R@%A?&I2~6lT9)Q%eZ!K zJ$H~}xYyxJsLw=TAd6i_iqLU_+CKsER$esLUlg!E7=C;ntnqoU$Ji67Aod41^(qIa zP+NYTdG;#e_9FXF-UE{nSVDFOh4pwwWD;#6d%WT19HrQQIbT>!Z!hx@YRLk+NZwE& z#2k0g8-)#yZfd8n-Jt~(ODz{x3oi+82uFmBpj}UGp$<^AmeJasjMH8~#hC(o%u&PC z*e_u&u}@|u^Hc0o#3==H;PuR0`*n`%#On%fVQ#WNBK*ejJ8Bd2oPE7x2eq5&wr_E~ zD!y9qp75^Yufie6*TOMJ!XUVX1eFjHjuqmHf)|9{!aJ&W_)mqe;8%_xsWZZl4y%G8 zGP8XkA_cR*SuR=_h9E434}U!mJYbmk}Yjgr;PzgGMS9(b|-ZHUW9lW zJqp%{a#>203ld3Dj>J&l^`Ss?p}=BIifMU90W8=JpCu6fdt`?&iIU4}lN8QJ;e3?L zT9Z^ad{#E8q#1T-|2@yF;nOPY>MBd&Xj@Hfk{l+KLv$MwqY_Art|u`n497AjIFc&a zo?5P2t)ejEpHjUJKL_zVjyc`j+&6Zgz^MLa4Ejf(9s>Dq&O!bYr;g*3z&UUwOyj9~ z_82DqW6=LOPX6ZRMdz%PIbUKHKbiA5>?qKRT88acXkbS`L(?&O5Lz`K)SpYESI*tp zJ$G}w54d{$+HEb}tLI_w^l_~87C_3=a}4Hj=p2gg`IdS#pG#Yjyq$-*w2699UhB8| zIf|>XPPS5R>|^l}-3DV~S@DtF! zq=5Dbm|s%B{8SpIEomeuZD}qYNK0u~dAcGUPKVNk!_rOZR63bX%Q?V)tfVB?I8~MG zh9%pjrbioDJXz$%!2Li#Fd9`rfEc|0s72L|x`t~+1v1|vH$Dd>07K;DA)m`6k4ya!au~m2(KvCZ^06n^l^(tHX$NZkAeUWF1YywR>q;SX6#~%2D1C*UjXQ>4pHmj?NQ!>tn`0k zrno1wGqalvV43fIE{iP+Z_jKD+tB$h@Oah&-O$^DS?CLVHVog+tkwvo>~vIZ=3T|t zX%aNZFug=e&R`$S_t2_vl~K?lu3DS9jd=udRRw$vDHFiSIfDsPz>$I}>o}9_IAi-M zXwccl*hUBE!nxL)Y&Qj0+Exa4T3@&A3ceHkFla`s$yIRH3Y((S_)MnKK4r!o^mX~5 zZ(Y#m3kKc65MDK~d3#A2u?-#BWdp%Pg-xe`09C4W3ItFG0p4&24LOc72XvH@O?QGW zTLoS_uvxw#7Aqx-2ZDv6psk`pQg&CcBK8H42b>MS3Uq?ALZJ1jI2~4f+-^SYav_eU zu<8>|7nY|Ji9$2*jrUOteMfyKv1OVZkC$w*DoM3abyRgyrB;cRg}aCpSAN>0c@cXY ziNBnaAy4_qA}v>FOUO*?3PmViOcwvU3Q_Km9h_UEW$U%|%A!V?`=zoAcCSJ6paE)r z=4R37GT8;PdSDTp3@0qgu1R6}lAdqxAbpQ4wuTxcn>mwRM}+e@>Sd)1q0ZIsF~TzX z1OW7Rs5d#l*RtM>UBpmp)>E(do(87gAAue)*dEc8l1-I@dVzGA;kHtX&Bj`Sf*DdA zC7H~;$z(PeDKivIlo6UO5^x}`S27s&u$f6)^o{y-(F=ULiBJqj~`T!KC+ z=8-H7fr0sBmZpG)`6x@%pqM$5rJ1}uDqvI@v$PtRRn9D}0kc)nER9BF=BX^LLwQzZ zX%if)dKi@q85-Tos6Iw$6{1=7NkXe}x&{zhgVQxeLTd@_A+#=AhYGFKp+YNlsL)Cs zDm0UqN2x=FR_aipl{!>tr4AKZsY8WU>JZcVyyrKNXDcGKF)!Ur-ld+2dC#xS zyO%L9-I#lq=Ya$&P>qy<8bnP5bCIqlfw7<+EI{8*una6DDNX381JO8~iPGChjuLcc zD437_BrpM`U5Bpk1dGX0D~elD?i*3qf^y;#mZ0M{k}84AQM{DoyAGw#N2PY0bKklP zTvbO(?Lc=>omT{E2WPISE4c|Uf|vm zI>u$3dpHwp8^DWD4)uDKzDP|qhsh3R6VpT`=VnE68Zyga#tco&@uhrX&XO6gQxZDN zA?5THnp0Y-m)0~nj8NI4eHI^G-_`eBujjA({yq2My6@-t>$$GyCLL3WL0J=7B_j3b zLR<#ti^iI;@L2^I00h0Yw>U!-Y=6s0Dz3_&AP(@TTW$1#K&$e(MFs9u(!~thXbSnL9`gE4qX(l^+TZ-Te{C7>=wL9)Ft<*1NhKSlupC z#d5-RY7~lqo{oS zpxnYylxkyS|6EWY4s%F}VTLOlig?c*?BXQ7>8jN*YHZ9gY=F#M4xFchNggJp-&%k| zLc~N}Z6C@h@={=r&-vsWkS-)&zPoW?;WCbku7cB?Jfo0iz3A26`zpe^yirwKc*S7) zP5oM<{<&t)0A^TcO3tXN6+^%+mmxB0^*Ol=ILhs1mx8O!J5+fDrSfFq`!-*5ZBSGw z8#r%Eh+tV=az&x0n%Sf2p*Cc%9{i2j|;<1~ISsV)nLMLiyAHdqWkdk5&| zTxe=;uHIrx_@vZ4WimSC;WnBNE*L|@*D3|21W-omY;C>NyL<}Rouk{p;{Anuyl4GQ z$t0FvVq`&n%n12t$9bWA&_ZRFAjF(qDSSS~H9p*R>$E42Kjikf5_b-9DQtN*~ zqg)&mPaC5iU};(}KW$Ocw67)ToH!R|)qGwiQ*EiJP*(A{f0o_&6p(bs|F%yHF9&f9 zywd9Ybjuz%ag_DdRqc*rf@9wnghPSlwHd)f&=qzf|Hk)oEo)4|GX1HOIkjx@qM7*1 zuJ!`7_=~l)bolHFyXUs7$u}qUDc!Y+%Zt1Ea@VfE4g)>9_s>&aSl*f9*Kl#lOiF&X zz&=~{ABHON0jBq)ulbBv{EnQ8X|clcCzzG7_oIo)r#$Y;sx@dX@w_KTTSu-9OO-`% zy5nPQd_H%W)yNjgdhBNf#LpDfXzNxd*5kw{pwVm)_}CMsppdd4x4X_`wM)d*B4~YE zQuZj?St#n{=bLu?ky8I)O4*=FPU}Z^!>eK@#Q|Debc-cPVYg0i)23>$1TTbE*XY#a z_XOGl??Q&Vg)+S(!o1Xk+{koASB7573wam0>^UkAxx5e8JU!RViw&NQS*zf6PO#U^ zdRd<|1EVo-{^%4-cW!t2SnjV5S*@QasRWDZw5AN?W%|P!Tmpr=Cv)^aNyKDzYTi|Jz*tW}EF(0bs5WRcz8rIyP>|lY_%FA7<$FTg?CC^_1UpU z&DztQ7e7Tok3-uXQiRzns1;!iqySg1EoO)()h{a+lsayVh09 z!|d3LG}>W<80%=&SJJ{;c1L1uX|!|5_L-yWX^d`Jueu4DW4AfFlgtfwRRy+LNsK+H z6}!66Zdd<{2S?W8mKuD8Zi8M?UbLFriGxFJs=53Gv2pr_=+}@nCV{U9Y8nZlVXel5 z_W}+ZzgSIMFOXWiVc^_wy{PG@J|D3?RPkOH^N>w5PAhzwfX>CC>Q41oLTCFSUkJhg|VKMbKxk2(d-^nXHHKP_PaBfc90I zTJ(UXWE7xyN3QauJ0Iz5thg_Sw&PDKX8T0^a-3dhi<4Yh%fmG_%C6?UFTofYEk(Pk zZ5-Kfuk}HmI+FAQye&tQ;Z<_2X5XBbil`mN*aJ8EvOBDxu^$j3h_Xg_LENxNsQV>$ zt8Ra#x;#GEH;h8YdlNS#l23p<3sj?mOonJE^FTf04v*><{g@0P?! z0H-{498ZHrtk)K#(dh5H>B7xU=S6BD^0r{k@+7&zc%t8E}yGgLHlLn-P1O`jXEVcDDw5eHn&SQ#iF6*;0x%InO>1=_74!d^ns(a}1F zC}wi0W?7<(j!dMV>E|GQGMm-FL*(O{)jAb-lT#Z9!t619u|J+7(#8jg=l7c1tE&ym z;UsqkOOLW$)NT30Z4-ElCKnr3wn1jb^=O|SuA%PH-3J!z^pJruL*H9q-p?xyiw}CK zs<`tdTl901x;A(63K{Pw4+X#s&LtmS_I>Ol(V literal 0 HcmV?d00001 diff --git a/test/test_manifest.json b/test/test_manifest.json index 5d669044e..938d9a539 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -3324,5 +3324,12 @@ "link": false, "rounds": 1, "type": "text" + }, + { "id": "issue7878", + "file": "pdfs/issue7878.pdf", + "md5": "59194e30037e8c09ae846ddd0ace4c81", + "link": false, + "rounds": 1, + "type": "text" } ]