From 7c9a08b8bc5e2542184d4abb25c33c516bc0adc7 Mon Sep 17 00:00:00 2001 From: John Bowler Date: Sun, 20 Sep 2015 20:55:19 -0700 Subject: [PATCH] Test PNG files These files were generated by contrib/testpngs/makepngs.sh --small with MAKEPNG set to the makepng compiled from the current contrib/libtests/makepngs.sh Signed-off-by: John Bowler --- contrib/testpngs/gray-1-1.8.png | Bin 0 -> 2719 bytes contrib/testpngs/gray-1-linear.png | Bin 0 -> 2719 bytes contrib/testpngs/gray-1-sRGB.png | Bin 0 -> 2672 bytes contrib/testpngs/gray-1.png | Bin 0 -> 2659 bytes contrib/testpngs/gray-16-1.8.png | Bin 0 -> 3755 bytes contrib/testpngs/gray-16-linear.png | Bin 0 -> 3755 bytes contrib/testpngs/gray-16-sRGB.png | Bin 0 -> 3708 bytes contrib/testpngs/gray-16.png | Bin 0 -> 3695 bytes contrib/testpngs/gray-2-1.8.png | Bin 0 -> 2719 bytes contrib/testpngs/gray-2-linear.png | Bin 0 -> 2719 bytes contrib/testpngs/gray-2-sRGB.png | Bin 0 -> 2672 bytes contrib/testpngs/gray-2.png | Bin 0 -> 2659 bytes contrib/testpngs/gray-4-1.8.png | Bin 0 -> 2721 bytes contrib/testpngs/gray-4-linear.png | Bin 0 -> 2721 bytes contrib/testpngs/gray-4-sRGB.png | Bin 0 -> 2674 bytes contrib/testpngs/gray-4.png | Bin 0 -> 2661 bytes contrib/testpngs/gray-8-1.8.png | Bin 0 -> 2721 bytes contrib/testpngs/gray-8-linear.png | Bin 0 -> 2721 bytes contrib/testpngs/gray-8-sRGB.png | Bin 0 -> 2674 bytes contrib/testpngs/gray-8.png | Bin 0 -> 2661 bytes contrib/testpngs/gray-alpha-16-1.8.png | Bin 0 -> 4504 bytes contrib/testpngs/gray-alpha-16-linear.png | Bin 0 -> 4504 bytes contrib/testpngs/gray-alpha-16-sRGB.png | Bin 0 -> 4457 bytes contrib/testpngs/gray-alpha-16.png | Bin 0 -> 4444 bytes contrib/testpngs/gray-alpha-8-1.8.png | Bin 0 -> 3755 bytes contrib/testpngs/gray-alpha-8-linear.png | Bin 0 -> 3755 bytes contrib/testpngs/gray-alpha-8-sRGB.png | Bin 0 -> 3708 bytes contrib/testpngs/gray-alpha-8.png | Bin 0 -> 3695 bytes contrib/testpngs/palette-1-1.8.png | Bin 0 -> 2750 bytes contrib/testpngs/palette-1-linear.png | Bin 0 -> 2750 bytes contrib/testpngs/palette-1-sRGB.png | Bin 0 -> 2703 bytes contrib/testpngs/palette-1.png | Bin 0 -> 2690 bytes contrib/testpngs/palette-2-1.8.png | Bin 0 -> 2758 bytes contrib/testpngs/palette-2-linear.png | Bin 0 -> 2758 bytes contrib/testpngs/palette-2-sRGB.png | Bin 0 -> 2711 bytes contrib/testpngs/palette-2.png | Bin 0 -> 2698 bytes contrib/testpngs/palette-4-1.8.png | Bin 0 -> 2808 bytes contrib/testpngs/palette-4-linear.png | Bin 0 -> 2808 bytes contrib/testpngs/palette-4-sRGB.png | Bin 0 -> 2761 bytes contrib/testpngs/palette-4.png | Bin 0 -> 2748 bytes contrib/testpngs/palette-8-1.8.png | Bin 0 -> 3768 bytes contrib/testpngs/palette-8-linear.png | Bin 0 -> 3768 bytes contrib/testpngs/palette-8-sRGB.png | Bin 0 -> 3721 bytes contrib/testpngs/palette-8.png | Bin 0 -> 3708 bytes contrib/testpngs/rgb-16-1.8.png | Bin 0 -> 5367 bytes contrib/testpngs/rgb-16-linear.png | Bin 0 -> 5367 bytes contrib/testpngs/rgb-16-sRGB.png | Bin 0 -> 5320 bytes contrib/testpngs/rgb-16.png | Bin 0 -> 5307 bytes contrib/testpngs/rgb-8-1.8.png | Bin 0 -> 4116 bytes contrib/testpngs/rgb-8-linear.png | Bin 0 -> 4116 bytes contrib/testpngs/rgb-8-sRGB.png | Bin 0 -> 4069 bytes contrib/testpngs/rgb-8.png | Bin 0 -> 4056 bytes contrib/testpngs/rgb-alpha-16-1.8.png | Bin 0 -> 4437 bytes contrib/testpngs/rgb-alpha-16-linear.png | Bin 0 -> 4437 bytes contrib/testpngs/rgb-alpha-16-sRGB.png | Bin 0 -> 4390 bytes contrib/testpngs/rgb-alpha-16.png | Bin 0 -> 4377 bytes contrib/testpngs/rgb-alpha-8-1.8.png | Bin 0 -> 4504 bytes contrib/testpngs/rgb-alpha-8-linear.png | Bin 0 -> 4504 bytes contrib/testpngs/rgb-alpha-8-sRGB.png | Bin 0 -> 4457 bytes contrib/testpngs/rgb-alpha-8.png | Bin 0 -> 4444 bytes 60 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 contrib/testpngs/gray-1-1.8.png create mode 100644 contrib/testpngs/gray-1-linear.png create mode 100644 contrib/testpngs/gray-1-sRGB.png create mode 100644 contrib/testpngs/gray-1.png create mode 100644 contrib/testpngs/gray-16-1.8.png create mode 100644 contrib/testpngs/gray-16-linear.png create mode 100644 contrib/testpngs/gray-16-sRGB.png create mode 100644 contrib/testpngs/gray-16.png create mode 100644 contrib/testpngs/gray-2-1.8.png create mode 100644 contrib/testpngs/gray-2-linear.png create mode 100644 contrib/testpngs/gray-2-sRGB.png create mode 100644 contrib/testpngs/gray-2.png create mode 100644 contrib/testpngs/gray-4-1.8.png create mode 100644 contrib/testpngs/gray-4-linear.png create mode 100644 contrib/testpngs/gray-4-sRGB.png create mode 100644 contrib/testpngs/gray-4.png create mode 100644 contrib/testpngs/gray-8-1.8.png create mode 100644 contrib/testpngs/gray-8-linear.png create mode 100644 contrib/testpngs/gray-8-sRGB.png create mode 100644 contrib/testpngs/gray-8.png create mode 100644 contrib/testpngs/gray-alpha-16-1.8.png create mode 100644 contrib/testpngs/gray-alpha-16-linear.png create mode 100644 contrib/testpngs/gray-alpha-16-sRGB.png create mode 100644 contrib/testpngs/gray-alpha-16.png create mode 100644 contrib/testpngs/gray-alpha-8-1.8.png create mode 100644 contrib/testpngs/gray-alpha-8-linear.png create mode 100644 contrib/testpngs/gray-alpha-8-sRGB.png create mode 100644 contrib/testpngs/gray-alpha-8.png create mode 100644 contrib/testpngs/palette-1-1.8.png create mode 100644 contrib/testpngs/palette-1-linear.png create mode 100644 contrib/testpngs/palette-1-sRGB.png create mode 100644 contrib/testpngs/palette-1.png create mode 100644 contrib/testpngs/palette-2-1.8.png create mode 100644 contrib/testpngs/palette-2-linear.png create mode 100644 contrib/testpngs/palette-2-sRGB.png create mode 100644 contrib/testpngs/palette-2.png create mode 100644 contrib/testpngs/palette-4-1.8.png create mode 100644 contrib/testpngs/palette-4-linear.png create mode 100644 contrib/testpngs/palette-4-sRGB.png create mode 100644 contrib/testpngs/palette-4.png create mode 100644 contrib/testpngs/palette-8-1.8.png create mode 100644 contrib/testpngs/palette-8-linear.png create mode 100644 contrib/testpngs/palette-8-sRGB.png create mode 100644 contrib/testpngs/palette-8.png create mode 100644 contrib/testpngs/rgb-16-1.8.png create mode 100644 contrib/testpngs/rgb-16-linear.png create mode 100644 contrib/testpngs/rgb-16-sRGB.png create mode 100644 contrib/testpngs/rgb-16.png create mode 100644 contrib/testpngs/rgb-8-1.8.png create mode 100644 contrib/testpngs/rgb-8-linear.png create mode 100644 contrib/testpngs/rgb-8-sRGB.png create mode 100644 contrib/testpngs/rgb-8.png create mode 100644 contrib/testpngs/rgb-alpha-16-1.8.png create mode 100644 contrib/testpngs/rgb-alpha-16-linear.png create mode 100644 contrib/testpngs/rgb-alpha-16-sRGB.png create mode 100644 contrib/testpngs/rgb-alpha-16.png create mode 100644 contrib/testpngs/rgb-alpha-8-1.8.png create mode 100644 contrib/testpngs/rgb-alpha-8-linear.png create mode 100644 contrib/testpngs/rgb-alpha-8-sRGB.png create mode 100644 contrib/testpngs/rgb-alpha-8.png diff --git a/contrib/testpngs/gray-1-1.8.png b/contrib/testpngs/gray-1-1.8.png new file mode 100644 index 0000000000000000000000000000000000000000..ee22ab161bfe8472d584850fc287998888709c42 GIT binary patch literal 2719 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 eR0!8&$N>NVZUAjq@a?Do0000#5@k}Fp8of# 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 m|H8z7&hS6J#JPzk@(E4aM+&Z}IgV?%vO_ literal 0 HcmV?d00001 diff --git a/contrib/testpngs/gray-16-sRGB.png b/contrib/testpngs/gray-16-sRGB.png new file mode 100644 index 0000000000000000000000000000000000000000..4eeb86558b69ed5ddcbe8fdbf3b301b93b46d0df GIT binary patch literal 3708 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 literal 0 HcmV?d00001 diff --git a/contrib/testpngs/gray-16.png b/contrib/testpngs/gray-16.png new file mode 100644 index 0000000000000000000000000000000000000000..dc12126e0ca352ced09e1b5f2cd7b2e5a6221065 GIT binary patch literal 3695 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 literal 0 HcmV?d00001 diff --git a/contrib/testpngs/gray-2-1.8.png b/contrib/testpngs/gray-2-1.8.png new file mode 100644 index 0000000000000000000000000000000000000000..03e46655ba827de7f78eeeb178c3815f44c776b4 GIT binary patch literal 2719 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 eR0!8&kOlw%9RM68dhKHX0000#5@k}Fp8of# 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 literal 0 HcmV?d00001 diff --git a/contrib/testpngs/gray-4.png b/contrib/testpngs/gray-4.png new file mode 100644 index 0000000000000000000000000000000000000000..2fd4290d3cbb1682d156f3593534c82eeba485f7 GIT binary patch literal 2661 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 literal 0 HcmV?d00001 diff --git a/contrib/testpngs/gray-8.png b/contrib/testpngs/gray-8.png new file mode 100644 index 0000000000000000000000000000000000000000..ceac2efc8b6074acf89e99ec0acc70161741623b GIT binary patch literal 2661 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 literal 0 HcmV?d00001 diff --git a/contrib/testpngs/gray-alpha-16-linear.png b/contrib/testpngs/gray-alpha-16-linear.png new file mode 100644 index 0000000000000000000000000000000000000000..e8a7e8c36af672f5628addc3a210b6572e616765 GIT binary patch literal 4504 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 literal 0 HcmV?d00001 diff --git a/contrib/testpngs/gray-alpha-16-sRGB.png b/contrib/testpngs/gray-alpha-16-sRGB.png new file mode 100644 index 0000000000000000000000000000000000000000..1e76d3d000f39c86e09cea01f8697d6cfe238421 GIT binary patch literal 4457 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 literal 0 HcmV?d00001 diff --git a/contrib/testpngs/gray-alpha-8-linear.png b/contrib/testpngs/gray-alpha-8-linear.png new file mode 100644 index 0000000000000000000000000000000000000000..0d9557ceebd810a74d2bc54a0ff209b4cb3f7c06 GIT binary patch literal 3755 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 literal 0 HcmV?d00001 diff --git a/contrib/testpngs/gray-alpha-8.png b/contrib/testpngs/gray-alpha-8.png new file mode 100644 index 0000000000000000000000000000000000000000..fdfb89d96e315e0c0273fcd2bd3e17e81e0cd7cb GIT binary patch literal 3695 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 literal 0 HcmV?d00001 diff --git a/contrib/testpngs/palette-1-1.8.png b/contrib/testpngs/palette-1-1.8.png new file mode 100644 index 0000000000000000000000000000000000000000..e6abd01c7225936d8b14108cd00caeed4c30e01c GIT binary patch literal 2750 zcmV;v3PJUWP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 Eg2Z+-wEzGB literal 0 HcmV?d00001 diff --git a/contrib/testpngs/palette-1-linear.png b/contrib/testpngs/palette-1-linear.png new file mode 100644 index 0000000000000000000000000000000000000000..7c1988a8fe5950fe245d18ea12c204c3091dd628 GIT binary patch literal 2750 zcmV;v3PJUWP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 Eg4U5V=Kufz literal 0 HcmV?d00001 diff --git a/contrib/testpngs/palette-1-sRGB.png b/contrib/testpngs/palette-1-sRGB.png new file mode 100644 index 0000000000000000000000000000000000000000..6745f9a3f1d711dc460f5605964ef3da04e1de42 GIT binary patch literal 2703 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 literal 0 HcmV?d00001 diff --git a/contrib/testpngs/palette-1.png b/contrib/testpngs/palette-1.png new file mode 100644 index 0000000000000000000000000000000000000000..58e8246eee27f7257556d7d49bf8ec757530962d GIT binary patch literal 2690 zcmV-|3Vrp7P)AMOlf0fZgXV-Si|L5O^@WZ6}<2&2HXiIROPXT##{B2xZST&R4~Lj%`*}$rccGm_9J8HIDK5uTTxR_1?K!5tGj5sV z;O5Y}zQ5Qujt8Hte`)(Ahi7je<8(>kc$%#nJNs|n!!G{vNjCSLKZFs#_r8zk2fIvh zl&#z3-5isw$;&?b-xu-qJoAI!aX?MdFkYJ-35oxHnypzHV>c;Eotxd>Wp8CWY-8_!!{>JoJ7XSwnq3&xWVYv!Pj-%W@@a4*d_k;YyN&ZG&ZZ%ELb!hV^E|WEf5|`_ zU@;s*E8%2&fA^@15bu0)vr!}a9$&PGo}RfqT;%F=n5AR~?-D&=1(I!h7lv%`JB)_} zXS5skOXxePLxT?J!r{{3gEqqdgmsn~fw5%7kp`9)#6>g7cOh$Nc#!QOc~1|rMd&%~ zds*zpi$PWfdxqON`e(02K1i`IHB(uv_Djbsl>kg1hJdz3D@x9MY6B8fSL`ghmpRsg z4eoNywP#J3qmnkMWQs$Ct9%?fkDb^#;&#ct#3iXcEQvvLO}7Xbq?BK)R!tJSAlf6_ zDfwwBG2rQuJ7C{6b9|0e&}c~7Ls&GqG*|G6zcuInfRAT^t5hYUaX)F#=@;ztsIHeZ z$vOlcp2dsYNRYKhSOWht`L_CqlyqI-|A-Fx%t%$L{u`8G@?)0YjdnVmz&n?7M0KRe zA0PiLC9I&h$9LxL$HO6{frxEvDUN@c*@A3ni=S{kvo=}q%&M|mzr-iZ6*r=p#y-b> z8E2P5e=)vCNK$q;P3TJcRIG|m+)MF;m)AZv>j%q-xNYDbU;t!IB6=F*x%b^skbQ!u z@R{KFRwv~(e+=G@$d%#mFd_{dzVH1JNk@(0I}Olj;m0f2px*CyU(CtQ{-~w~*P$hz zUFg9K-e^GFl1SNm_Vx@zBx53HyJONF4Wb)8p6(+Fqqrbs^oD(-_Ccm!s~K?)5bfE2 z$(u3GR-le==BRCTh&=`bjQ-6?O>{R@5O@+yV!i9!G&h^-HS9)`O=IwI>K(X@#IcMR zR(vhlPj1X~sI=!tfP+XbT%J6qfF@;@rYv(s=Lu#}g;}vB^Xa3}W(u=X@RR_z_EIx8 z>1j18;loyWmTzVYX%`~IE`cp_W`|Qn!AKra<_wyrnWKDivQk(!F`-@AMdossp zw!D6f%h(3eyLtcK{?jFxc>m$U54LCxg;|YCNv}Fq=usUYIcjM5J`7VYBU8zc9P8s@ zJGMCL=nSDuE?e3b6~%v;dAZn;c)J?d!$21SLr-^9;16!bzUCZsA1bkSqW=pS(<4 z%mo<^GUb<1{x$d4-taGADQOZ&OW*e*m=@6-f7suw`#&@{!{a_Y2$--OLn#Fa<^Xr3 z`e)4P1{U#26`_NB3BxkjZYcvCE&m)k<+j_3n6*dj#_8hV9ELKh*~J-7!Ax-lE#FF_ zrB};>0m=||w=!>BhP_X!hbK7QNG0#X^TTT;xDkrqtO+>_*g?u3F%_++z^y{aP=`S9 zOH*@7txY(%C!aOV@^a1K9-Mp#GYcZ;kHOa{Hu@Xl1+YCT^A(NJd5k2&>Q&!S<>k_z zg&lHf`XU3AWufqeDT+V&#F`UbnA;mFS6pZ(f+Sk7G560~TtD$|J5O3@|Rsu7h5 z@raZ&i%ihQ)xXwh!oenQ}T*FNp+uPA@7>?QKJx*!=cwTaNfl%q(~=LIsYXe!Ar zC^ZN%W4w#R;$$gAe@jo?c-;1b=3g`ubar|cp<=ceD^m7KiL-lRDN$4m;kLy{nm36s ze@MjUSiZA=A6FIrN-Ud=SCF4M);M1?D#rP!0+^j^oJ5T8s$RD#UR*z4zT^3)L2r$! zjBuD|9^?snkj0?juaB+={VgwR@89sU=}QIa!3$xE|G&n-<_*RCRnj9HJ(&N2^mw58 zKOwyWC$b)|d@8!uzV1Alu(K;J0Ao`C)=?_Ukq*$71m2>0d#tJ`HLp=x4So%#=53hT zw_z$2Ni%^;MpsgS-!2weePz({ozt5D==}jwy1TM^aaBbGsx3xZx9Q#jF=7h8^Xv2L zITTCm+_m+EbnBVXkbKp$9GJiL^oW%*;h|1Yc-iwRRO}aoigc2pj=UZM%EiC6F8t_Q`O28@cgWlINI@5V3RxV|ONxI*(o2VsB@9$e__D~^lkabP3dcf~bsaFH zvJU@VH64Exf{|X4adwtGSE56KW@fvK?LvnkY1i!|K1z9WD$n1Aa#12uV2p<6OmO`w zjA7*L5=k|b#3K2i_>LKCeH!cWNV8h<)yT0Si0{~G0eM|+{N12^y_4CX{njK-c%)(C z|AeP*A9}QVV<1ta$pu{sh<1S{sVtz(y}kBptll|6Gb6^<*K0y$G!+M(XC|qpTd*BY zvwE+^QLmX1Epc5BauzjHB{44#fC9*fmhxUkh!Glp^Ejcivs@g$#=8ODw*~Al-J$H!37dSB~@Fd=0d-pY(#U zSwk{k3@PsG{ejFCPw5Dd8eY&Lcez=!S9(=^Y1zqn}LzY5o=aqDBfG69WFi=Kl%0=lpLRTE!%1ri#nXp!FzLM2jg!NKx wXZ{N=1^OT-XD?L%000U}L_t&t*JH>5003?PZCLQ_r~m)}07*qoM6N<$f{@20-2eap literal 0 HcmV?d00001 diff --git a/contrib/testpngs/palette-2-1.8.png b/contrib/testpngs/palette-2-1.8.png new file mode 100644 index 0000000000000000000000000000000000000000..009256ab731a8e78d68a04d6613783799d09482e GIT binary patch literal 2758 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 M07*qoM6N<$g1(10bpQYW literal 0 HcmV?d00001 diff --git a/contrib/testpngs/palette-2-linear.png b/contrib/testpngs/palette-2-linear.png new file mode 100644 index 0000000000000000000000000000000000000000..d3a1c8ff1cb3b70afe4f9b439b202eb118ebeb8d GIT binary patch literal 2758 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 M07*qoM6N<$fBX0000@X;fHrLvL_- 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 Ef>;15ivR!s literal 0 HcmV?d00001 diff --git a/contrib/testpngs/palette-4-1.8.png b/contrib/testpngs/palette-4-1.8.png new file mode 100644 index 0000000000000000000000000000000000000000..24a5c3f8a1fefc2bce1f3f8aa8dc5de04c66c443 GIT binary patch literal 2808 zcmV004R>004l5008;`004mK004C`008P>0026e000+ooVrmw0000m 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 KMNUMnLSTY^uTt;; literal 0 HcmV?d00001 diff --git a/contrib/testpngs/palette-4-linear.png b/contrib/testpngs/palette-4-linear.png new file mode 100644 index 0000000000000000000000000000000000000000..54ba29c4dd9807cfa807468a9d38168029708330 GIT binary patch literal 2808 zcmV004R>004l5008;`004mK004C`008P>0026e000+ooVrmw0000m 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 KMNUMnLSTaUt4|UD literal 0 HcmV?d00001 diff --git a/contrib/testpngs/palette-4-sRGB.png b/contrib/testpngs/palette-4-sRGB.png new file mode 100644 index 0000000000000000000000000000000000000000..a4765253ffd72570369c5d43a060559db827bcb2 GIT binary patch literal 2761 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 GC;Si2BD2>3 literal 0 HcmV?d00001 diff --git a/contrib/testpngs/palette-8-sRGB.png b/contrib/testpngs/palette-8-sRGB.png new file mode 100644 index 0000000000000000000000000000000000000000..49bcb4106265ac71925a17b0bd4923e2f72c3e95 GIT binary patch literal 3721 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 Ee>*Qjz5oCK literal 0 HcmV?d00001 diff --git a/contrib/testpngs/rgb-16-1.8.png b/contrib/testpngs/rgb-16-1.8.png new file mode 100644 index 0000000000000000000000000000000000000000..b58f18553e47aceabaa77714e14d020a2d2a6ae3 GIT binary patch literal 5367 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 G&wl~eC(!i( literal 0 HcmV?d00001 diff --git a/contrib/testpngs/rgb-16-linear.png b/contrib/testpngs/rgb-16-linear.png new file mode 100644 index 0000000000000000000000000000000000000000..82d22cd46342ff4fe29e5287dc7bf1fc55292bcf GIT binary patch literal 5367 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 E1?Ym&CjbBd literal 0 HcmV?d00001 diff --git a/contrib/testpngs/rgb-16-sRGB.png b/contrib/testpngs/rgb-16-sRGB.png new file mode 100644 index 0000000000000000000000000000000000000000..7b7dcdf692b196d415985b2633ac4b52ea041884 GIT binary patch literal 5320 zcmd6rXHZjJx5opDNE1Z?>0P8t4MjjeB%z3Okfs8Lju4~;h=BCoLzmub=v_l^Qlvuy z(tGbE7oU0WymRN?Pw(@5xM%j9eb)Te{?9&Zt$og(9r)(80tq2CApig%0fSzu0{}QT zk2rw)xHp~8mj#DE7F1n9_7<>HMdQX$vC!0Yl(YNf>R9Pb_kWKrM%J`j_7J<)K|1po*d z{s=2un3&m`nEfTo^BD^G%Z8c(bWuyXD&dROY zn-kRk;0#qDGgD7Yy*|lz3)d{{^qG|}5$msH-S^OLVuq*8ZsJQ1h|q8HDJ6b5?zmi8 zwAmR*AoWK;E?mJ(&gm&~w8#`y4&F`;gO8URTVgrQg0=|@bIXJE%`FomVfbl9aEl8z ze~2B!f+Kj|C9#-B;=≫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 PjRb(@U%xDoedqmO_7KGl literal 0 HcmV?d00001 diff --git a/contrib/testpngs/rgb-16.png b/contrib/testpngs/rgb-16.png new file mode 100644 index 0000000000000000000000000000000000000000..cfd89148d9bdbd7ccac3fe83cd4407c782bc1f19 GIT binary patch literal 5307 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 literal 0 HcmV?d00001 diff --git a/contrib/testpngs/rgb-8-linear.png b/contrib/testpngs/rgb-8-linear.png new file mode 100644 index 0000000000000000000000000000000000000000..47ca3745c06087d67da5021f497a8930e91d75e6 GIT binary patch literal 4116 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 literal 0 HcmV?d00001 diff --git a/contrib/testpngs/rgb-8.png b/contrib/testpngs/rgb-8.png new file mode 100644 index 0000000000000000000000000000000000000000..2122fce82ff144824566559479c65917c64100a2 GIT binary patch literal 4056 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 literal 0 HcmV?d00001 diff --git a/contrib/testpngs/rgb-alpha-16-1.8.png b/contrib/testpngs/rgb-alpha-16-1.8.png new file mode 100644 index 0000000000000000000000000000000000000000..0a97eb38cb4642359910456d9973bc8157a25eb7 GIT binary patch literal 4437 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 literal 0 HcmV?d00001 diff --git a/contrib/testpngs/rgb-alpha-16-linear.png b/contrib/testpngs/rgb-alpha-16-linear.png new file mode 100644 index 0000000000000000000000000000000000000000..6c8eefb2f9ab28af343d8bbe72fb5285801d3e0d GIT binary patch literal 4437 zcmdUzXHe7Mn#X^rR4IxgBE1O-O*#=!0fB^S=qODA10wAgB!prp3Md@|2?_xO1*r;1 zk*X+2f{1#h2qvI}BGsV8&~n-PVt00CXJ_|+_r={8XP)yt=gep3`Of!wbM9QQvlQSv z!3O|<00MsA0RTAmwj97AuD!zlEkbdx96*`angAThC7Sd3-g{cc7w%vS0MRD_ApRBr zZ0;S!&jY}XQvmS82LMhJ0YEgY@CDLn@4`0F$t}VxGz<#{q5>lJ!2Th?e@LED^pHlS zD%s|}GSZ;Q;pN+&VK;6#5gJ8D%|HwYvvmL2M<|6^r~#cYSAL8GxWX@#aMCf-4FGuC z{|#&t=<6Ti>;Dg|+6^@D4~_N*+!}|V}jlS)< znc&r-0-+QlY72{y#grDANi-JOL)7~nJ+5vqF2f#oX@?YipPC(h(bYYsm&sjRgA3eJ zOhJW8e~&;+N8PU#H{1%P^{VeO5PHm_v$qa+GrO|pxZ7>Q@wF2(UnTC<3{cK&(L{g# zHrk9RmLBZHEF-9|t|j4?iaOe3N*4c!UDi&otGH($Wub4cNp~c+E=e+*iynNX`iJ@( zUiV$S**k|3GW3;-yYG4YvtRREwtZw~BqK0PKGvjWfO&a4E=ON!=KaYGzG4_9V~OMH z@u70w$D#1y!dEv7dZU^c{^BVKotswMJ~)KzQhfj6Zg@SFjblMi@`A~(+;i1 zf{jS|Eh+D&R1&Gp*kk4gn)t|%dsW!jhch=gMl|{Qnqhj%0aTOthV{JR6SE}2`B&2) zr;_wuv2WeT7fX2N_d16w|JZAD?E#EzP(W1nvMknKsKI<5wiM&O)R$)B!WEM|0oz2? zo1cL{)6jKvui3EfSIq-#q?6;D%~h<1Vz2ENc5+=(eL;YYBnqs6@1CPTFznHn{wCT96-Rahy+l|jcB~&{pmW7`Ue7_*Nv|d?9&>1*=K#KGxZ4#dS+|q3y zTZ`4anTn6_oMNX6vIgPKRlDN&%M9OqT1MpQ!X85c`uvUZ0cmNrs$xw^Yd>aorN39U zJRvpsIwTWUFrIilAgwsexKYo2ZLq50Quk}6K@t6j1$}4wZ;GJ^rZ~+mOSnU%zU{o# zrc=#b`$_AcNrcfedW+nY)YjlBDIdVkRxbL)_crENWOiI)#ahAC9~ULME{>m?@iuRI z^^}}|WY_A>VT5JIw4uOo;B>#rXbE){<2^Vqv|IU@YqV66z-z z2hw-n!EGb-oeo6_+g#~foYc{O@I!aWBG=Y;E$oM6Yx?VF>Bn7S)yC~Z1|uq)<}Blr z;OZVEql);G{`rqp(dKi!SCO~fpDC^{lzq6$*XXc@2U<29wDlIQyDP;f&f33yGnGjS zT0Y7c0D;@?8CHn;(=PK!Ng3F+fInyW9W~?~2eKs=zh5?NHuy2mUuvU%>B}*Z zH#j1;Z7e6M{lr+WQdFByeN2nys@s`n})J81WFFN|-@7d1e7j`6g;`f$P{$gh**p3~#U2 zSO{dlgc@7oG`)G^F7dhLQs2V2DT!pQ>hU*Xb}wzhIn`)Z4X^@u?ha;&gFmvmM=B=kf9qVUt3bjZbg!(LHM1-O zK7>$jnoh-xo>^Y1SH{&ZDKc7L$cSk@zcbv6FN1%Y+)#&cBH-j<_9^C zv$mg%n%qd5_0~BO5gC1~^h)z_6^9M0JB=|{AV??v>E<`^`}%iI;oz@l-MSia(yk)A zR;mv&T(gT|BL?2u&^}h>K4MW&;raB{Dz6rZm&aM}uJ5c0lhBN+^e`eyYKAvD`%TGI zeO4X!j+#c$Ds8P{!J2d7<-yB$+1-6TvjT6noj=Np8xz?HzoJT5XJtG0DK$vd$3kC> zbgdZOf7+;`4){6(BS7OoBn zH1%WdasI=MqE8Qi`5g|27wrwv;m+mfZ}PcIe6+rcGyiCvlC8+^Wc#P#?fAXb&=|gc)4Us!r^*@x*8U6wy%g+)W(({6)EIR~HguTi;T~2pUI}KjsB*NGnQ-!nYRO<{=SENs6=tF>-#0QEWa_UY!d-+q`Q-7Xr;>J!(e-bT^#zC3 z!aaq+W4extni@j!``)JJGrTNP51+uT8#;Q}v5 zX*dG_R}bR6iBr^<bww$$b{=*Pb{Fkj?7ZxdcJ6l0cAmSH+u<-Ju^xasU=pK+o=jgQ zXOJ@}wq#q%JMue<8d;4}ORl8^lY=QV!bIK#!4PklZHKqzvLr7UjRR}7iE(8%$6H*b<$WqQy&4OmBXF;;mvQ)A(*lwf?BsY>1$%EuT zx=3;%d6AGLcak&7bN7i+g;9%9y-{~ZNypQU%8u5K@{XpCnr$=|i#5mkW1U$9#t+7Q z#uvs5#wMelP9t{{^zr)n`gv^SQ1wtqs9LB>s0Q1eiln;lR&Qglu2>A#9vh1F#^PA# zSU#)^tS}aw6~J<1MX}Da{8&z`2v#wpo32f7q@(HU^n-LZS(HK`6DY1^SIQ`Pl%h}8 zr?ik;C>Sz^!Xz^(LS!Kdn;@MhO(@0}=NIP{6TI=>`QCZn1R8!nIe}gRrh|iE7_404 zVy1JZr=Us-L7tpLuQZ_rwj8eeUnE%>L)&`R~ks qI_Ur6q(40WX9N9LhKFUmsWxF=5EPH#1o!?r0ED^S`8rdd#J>aTd6C=z literal 0 HcmV?d00001 diff --git a/contrib/testpngs/rgb-alpha-16-sRGB.png b/contrib/testpngs/rgb-alpha-16-sRGB.png new file mode 100644 index 0000000000000000000000000000000000000000..8ef615d8f7a2d025246528a3c128be5bb1b1e35e GIT binary patch literal 4390 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 literal 0 HcmV?d00001 diff --git a/contrib/testpngs/rgb-alpha-8-1.8.png b/contrib/testpngs/rgb-alpha-8-1.8.png new file mode 100644 index 0000000000000000000000000000000000000000..b49149a33413f9d6bc417420f41753d69a6ade9e GIT binary patch literal 4504 zcmb{0`8U*28vyVx5sH*TvXf-bPC^J{Z;&N>mLdC+v5zH7_T9+7WM^U+$y#IImuz9i zzGN5?Ld>i8ocFx{K=<5pKF@RSInTMvPxroiuB}RS?cOy20I1YJ&vXHR=rSY%$gf^v z>QQEQ2?<0&O93DvdV@@9i@MC&tUUF>Lc8nU4f#AG8 zYmikQsf_hC+w~8S`|G??YZ)8GbVR@_O6rgYdfr9=K+*iSu%?5xt&6qof6EHI@dW;x zd)fj<=rtp)gjE!6%Yord&pt}FW4qhv4m+Lhnd>AVV$K_jq9(7Po~ksqy6m= zGDn9;ut(3-?$7p)bV-}2OXkYr`snAj_8EzIvb-vo!x>j3#Fcf$OKr*LeKn)ZnJX48 zc(Jc0ahxOn_E!6GTfzoev!;7$_1x+LQ%Y6efZQ3D{^#M7Q?ESM!B*&w8s_WkFc>bU zrP)7!`!|D?XlzYsijI$pq>k{K9{dxI`52XxwScj8wUu$Q#s{G{pwu$fEP?OM?oQgE zHWGEbPYn(^M+;Q9jVd&+1j%%sS-WaAGzE{nN|5AZ;OInP)u>Z5XVn`BK_e|W+_ z*pT6AWGzXPo&D(}oc3g5BS|3jj7J)qGUZBPH#Wa6jW32td?mbnlg0##KieJ^X2aCTm16 zN|{f6IN1|~I)8mAk8R=#3zP3)Ta#{X& z3Z7bxpV)Ma2bU zs@1-AIyTPxadwAHhUc?4#eJ--1b(in{7*g5_1zvcdvQpVvlCA|EOR#0$v!5}O%^F( zyf;`;XVTuuJxD8AnAt7Y6T|??P=pD$se*L9CABuyPxY&!b>=mGhGk64NoU05DuG!`nN{s!}`DD_k>fiLC(R|gqJufDi z^+Oz|lB{LD=k|m7Q*38#>|KKZfmt1wL9ep<4b|W`^TOjAx$*|JfYbwm0(n?Y`*3A-oOLRHxF%ADa3x%?ybZwVvvM#LjR-k*t_NpW_2g zsEt;Txo$SVb{3-n_ZR80N3{gS4$NE~Z}uf%E+)9(K7=JSHOihU+&E5M4e{7u6U@ve z{o4Mw9HpKRr(Rzo)Aov$3`*+9CS`%9pviYS+AbK}w`nHHr}^FtTJ_N6s*{SAU&g)b zJ7K$9%7l+7o|D*Q4NC3RkePl9#3MW`987b`KE^e3YpP%aB7=Hr#{Nz1*X zKS;1y?<1N$rlwPlfOkJc81E5no@q)Nf0D&aQABE5GYr6a7^KxIz>B*vBwT8|2bA?C zU)6F^E=$kW68QnCycSK9K~jbrB5N7o3-RM=%$|@Xj{^-z1AEK?ryFB}&0wp} zD{@cB;UAflcu2|D0ci0lWN_;$-A^^zf-rvyw8)GL&lM&C0@LF))Lb;YK^51%wY8Ex6}fN3y(fPJ92%x6^*T;kiI^n z(9a@FTV2{wt=RiK^68$2o~L@XmeeQiJn^A@kD*1D>;Q7n>l_;iU#1^QoH8zxew5`s zpp6^zjlKW%#|tcYZEZX^oY}+Sl;cXOZNXkRPqh3==lk1c@Hs|aLsNV1(EBex3KJxy zXzK0jcqgJJ)W^7HD{iGx{ESK!jnN$KURhr}s@L?}M>|r_C*-Ys$Yr0d`KI9TTB5E4 z8)j%aMwj)QUHo?GJmOI7bxkQ4l-0hwr-V9DwI6fA1Su~1Ps{D#5D#Gp9M}G*&uk1L z4ev(LsYRfP4N{S6d)_|5hvMYI)-5re%QigEU>Z8}KJ!Om>lR|Sy}bSC3SOb^^64I_ zzeD=J;sNVZE}^-3nzs9^2tAuXKy9uu46$2@P3|Z+kNu>Ba%-Lu+{^nz`O%VH%8M*Fok~p zRTU4#5#X0pK~yE{&hYPzR=juAL_^e740S`Wf^^1#wxjzw6IsCKIg#$?<~l$37s@0R z0xB;Xw=l%QudcNpY#(e(-_gL$Hynn0ZD)=p229p5!P^giMWu->6=*;AnLXgu$I-uy z_DU{@Z($+s?*q=x*e0Ha>hGir{@FA+>4)Q?y>o{k1^S?C#!TZH(Jm>(6@-5{8YGsEtLCYdL>d#67!EK~}yvulpoQH*4FnBL)(Q}^}c z9l?fsfH`z6V+-OhPqtyXa~YT~J#94Gm|;~5+S?`{7CAz$uK_SUjT;b$C(e9c_` zEaV5arp)G_Pu2c_svzJZry_&NEINF zrc7-H+p58k-J5b z_r9iK`~fzAsvep5E40>FNyLJZXLtKNWRO;8i#+k3`6xTI$rx$q_u`5m1t=BTF{s{7 zKH_wLUILly`|HO{TG;bujIYD;pmh_e8QwrCUD0tP&C4a2doKIYa~1o3K3o&r^Etu1U2mg)3>8mXu@Bk{>pP{(qGjtExNe0{!*2MJ6tbgd%;CLu`~iI zRb^w=-SKps2HBg!);)2z__SN#wJY5TwA|*QGwv${=1XDA-2@q{781h!Xae+WC&h(Y z>MH*2yOfKRhiY|~KF~?MZyepJmQt#j%&%Ng+^1KfozC&%{VI=Msa6uN*5}mni4vW( z2WAo993~)|DS}ER^;@EL+8OM6>Ax66Aw!8g8mQPzq}@m=mr4AfF>+%tSwOX>YSwdo zIGxil7boqxF_gro)0W+Ius)K;Z4ol>dq6*!g6L?!lt1;-@JscJFO8wQbmp%@`o%`? zzADFL@atARD=+NQNEb9H)X!Yz(#Q}1S79DH9Cz~DOZ*Z znV?*z3SVTc3z#%Ik5yA0=G<0f1? z^4reIZtO~0jwW7QA){t~WZ(NSBrNgH$Sd7E1&=aEBy{kxP>?L0Bt@3DP) zr6buQ&fQhz6OiFt3G1osEm6owj1K2Ew$?sjK3{fMJa}>eb}?H9kXxS?%kg&uNv@H5Lta z3lWo!)2^mS7j#L(wxo-Bqt!(EA)}=0!bgVzR9sf03%1^NE`G?Q5kFt&+*4CM2i?V> ztfzB#WT5zkTE~&LoaW5Jn`K9`T@Bi zWG)9?8c#c*7qVz|+v;zK$v~L5d#!zs8!$v*TRe8Ut1G8nF>T%}Q#sp`uGm)h?cvs} zMm(nd%?2iH4vLp=@x*^AYCdL_Ydc;XOF5%vl@Hw8>_bK-<77;4TyVB27a>kE<7u2@*W!7jSA5icJUbi6c?am*?YJKx(H zXiUg!4J@@QApTTvWqMdfCRV+JpKD@{#OB!8!pL6b=IdjWT_kMV(sZ37#fD`}#auv`EZ2-W#4)Fluo7Wh- zmDpTE0Fl#>1MtFf1vgX8u5%VkkhTT@_&frD!1n-fc0Clh2>|b&0Km3606c{Q0If^r z7x1&|2@N}40}lmf7jHK^h^@zUVQVMg|0(gb`>;R>Z@>D;W3WV>_SfEyQ3E0noZD*+ zvdSfqw!UV){t5DMom*lpZKIF|4|qdH8T3fU(*OWSn*SD7x3jc%vb6qhS-yAfz<+ah zYrp`tW}p$billBi)W7ZCN5*nua~IWNqt!igivWbrPO&I#^akp#Ol7V8G5hkQ)F)22 zyeDKqu}X5N?%{#IUMm|cYXM6nJ1oY86;S*5=D7RM#;PN3IGr*a4mtN$VTI;pDKH?i zw7B?tbc}8O?CeSwwFx_=uPm;Qerao;5sM|tsesv?bA&^jnO8himb^Yz(o3B?V^I8; z2P$GGS+ei%w4b!aZ4fo9yCzr8tu8PmRrC$WoMUKz9z8qr$YCCAh3=}Lzr78CVY6DA zeRFqy(^&{dR~08|c`1o&39jkD8?lTh$gGS7w6(Lfl!GNM0JQ<7l(J;<|7dc5(h9i| zujLu*d0^+l?k88#cVh9!KS7*xb>vYDX^!MT3>MGk{%|2lkuzvC^IJeV%B$|cnm#;e zHZ+M!tafU~b8Ca+E3EH1y}2NRJkOGqFYKfw>Nd{L4FP69XELjc$j)w(HeTI!hkvpn z!cj?^6DB(P(uO(gOGSqhKIO)mw|QR&i4j>uZSZj*`>6=^HjDc?PLglmXQUi0T+t9IN&4rU2^9VSz|R z9@SyLw>PMC^|8EP(j=#X$@kob>LD8Nf<&=Wt4M|S<$erLul6$}ZCXZbhiD+8(Q%Q< z9I(=0^Len+bg}@B_YW@KPhb44$GIj7BSXjZrYzx}u#q#i;V$l|D90>Gk&oIf_3%vR zqH$2O!M@?klA@c_c^ug$n_tP$w$JAiL9@Qc$7Bi*E!iN=mg9`%`SjA+d+a0yjVxBb z!u$)4<%-P8>0Bvp@6N*dG6aY9a$}v>OB~-tNZ%xgz8nH+c!=xX_M%dM)4DS+BA&4= zid9O~u-tdqW^9b^tckv_=f^jzKj3L!J2ic&Vt6ceH%>p{}c` z&k9P2h|sqUhJ#=8WV(BlPV5QHbf{kpR%w$tz(r}>TzgiFk}fXMcsW8@nA(B*=ZQB|pas<#PdWRZMp z`&))gM}S?YFP>p%#X<@xvAs!_r_OKmgNC{b2KR27N$_fZFoRM)GP>!Yq~VkH;MQ)) z-j?FkXC&8Y^y$1Kix&ZO#{d$XK3C#KZV%Zt^E?(O zV!pdxK~+p45b4aaRo;RFUHM$}%q0yy8v)cZU9DH$l62^97DM(CvZ{_!6K z*rfLf)jmVh8JpjSZ6W#xc$??y;)adV=qZwLbxXPdI2WCyN*Q=@FN%Oeh5L}KuIQUe zHqvS7#acWsAd%CeZZt?pMlGGG+P^3*Tbfi2FMISnP~`neekT_aSx6 zn0NHUZ`-dh;I*~!>`+EGyEC>M$<}%MpMvT&68X!pwc;&Gk2&jHGway~9+jl{i|4D4MBY{vgFzYXd;1E=Q)SyRCv<@PqVKfKF1GqHtQyO4(D;RgPN@FF zC@Q%CG_gS_RB6lI$NyNASkSU1s&mjg|rYu;=AIAq;S-RQeW}Wu5u+cUBRM5uCd}P^T7nPHvd?@GjVm*4 z;4(FqHEUZrEtYeRDT{W2Lzq@ceB!%u7pvo{h%Wd9>~Wa=+ATH0t*^H%BCp!JJJ!j& z{=6Dzr8!@2Lm}sVeDf2VwYW4E?P~53(jQfXxd$?Jv!>KCZ763Cj4C zUN>x^@de+Iwjb^s?nvHK!_L0&-C*Zf^2M>qju%PS?#8G*=1C{-ML3F zp>AL{ZS&}`4Rx0b?r4iuER~9Aawpqq?(bMSd;bSJKS7As2a~-utP!{wJ3Ma_r#}n1 z{;f%~xffFpHN6TgmapCyJ2Csz`C77o3;PI7NFzLh9+mRu4z{))+gG3^<%HS0r>5=Y ztwpGbvLKI2i;O-qY9f59yTH}yclcaQDBWm8bvOhCC3tl6Xfz1Kj9e*Cq&>C01(|!c_F9k^<($@1oD0uzT((jDLaR{8b{6; z$2sKxdRw~-M(X7LA<;34^xp03);oBabc^`jLxYG8xsY%&D&7|*xnC8+C}`Mp;ft&a z;pBI?)f?mUP+^qRkBr}sTA;4}8u3@IYZLyedTqhwwRP7j#ogn09o-8q=!vG{Q>rK# zv+RzgVb{yt6twJ#xx=H`0{LlAR!`(rEGz8ODbh@3d-ZXZOQ%>Pfm`ECa_K~oR>~uj zuk~cF+*9F__4wTvajazCN7F zuAhySbl(_C;L&Q!Y&u*YN#QgLn)g1W9Zah3Xup;>`P$HHbqlYJqPceFuL8P-1|PmD zMy2s;SG*|A?@~+U*UQ&UU*=Ft;{%teHzj@=NELWhWE?tfJ)qC4QzieYc8y1mUq4Sf z<$#(;zw%|NYJFr%xn8yIr`Iw4uga$@v@4Y=%O>ros`Lu12(vBIWpu3}`Y7Mbj z&7QdLpN!&$O`1=zU+PyTtAQ!DF znL>`;6{Qo9;cPL>smv{5$Vir;{cuY9%k6n6fa-*iaJpWR?SmUw!L zR>0)5ZC`C@R2siooz-k)ms(o2ajipF*{1>hDpTZ}$&YJ1`qd^iZ->65luuWg)!QtD zP1;X88zY=hMfE%4PNoeO6RAh^;?4`7?FNuB84XUDI_tUEA)^M|e63?oRplIX4~?{( z&fb-R;udP`N7}NQPxdhN5KPd5?+Nof0@sn(dQQoNhAxgKTo6$*OS^3L)`Wz|G0A$Y z&U`>A$K^b8!*-Sy^k`+vcrJfWU*Xisk#^l4Y)UE~$(DV$J|8*(88Lh2zW41DVne`G z2D&t!a!4y+*6Om=UmulLZQAa!_9JFMzZ%oxw%c7?eBoNS9b?rTBw3A0Sw$>LbjIVH2K|NdqlB0Mff2KH-pHmXM}r`_)W+f`mX zV%8RLygZq)Az;?-|8sk&IjtJg20L0`2%mPw!2AyPP{j>6*?@qPrHQl?W?9(9{?q3_J4YofA8dbO&Ubfz+Kqapr9w{nh!g+-kgEb;>Hq+EHz6K?`1TE^ z?qzm=GY=gVg>s__3~+5dc8a_P4NxgSD-T zwe5e)^1t^0{5SWo1sEYWjWiQB5Y+9*hIc&%$ymR!BjPA_F`}n_Hk?*VOLM-o8{xr-)1D`pVYC=gzKq@pz)VDyYLHX9U=ldEHZW z)%#;Lz4WCk8Yysnq$+-vBlqE6*I8%6Hc^{~TWa;<#xg@n)!?w~C7Sl<$@2@(Jm!%O z$i6D->)TK$Ca1m4FMsbhos~#zO=*g@x3Yw`(55b|1;coT$jMqp*}B?FJ6U4`k=qbT zX=|o{k7f^NY!KUt+FtQqM-K1U{pG6$&#e9gBuQ{>j6aSe&666A!{FIH94jU%aRp9f ze+|q;dN&@~(nka@gr!i4H_Xm^?QU~^feyZ)w-jPf;9a%xgPxVe+{OC4!$ItqOcsri zxw)+}rW-#zV4rM=uv9XZgvri+wBb&N(yN45`@=@&otLCa@-~C|SJRCR*`Br9Z>7gq(S) zHLtSxtuM;4=cI+}@ZaU}BSs5k5}%9B~nu>S?xu zi=;Ro0qR#=)2CV;S*N4pyq;xuOJ{hzd|y1s%#7pXtjcfchio16BUy`sBb}YNL#~6%8g`JzOKy5`~$4vi*T{;0y(*P^St|$4f$UN9{tdDq4F<{by*# zoUHgB(Qsso^9qwCz($kJ_tARm*)k|GAf)s#bLF=I*QOYh3>7z!wu*hqM$XuYy}GBW z61OT%KH;$1&pVfo!a^)Y2FI?;N^Z{;aORrrd?7>GzgS8JF8H0Ek|}anvw_>Jrx?i# z>1A>c*hz|7SZscU2Na#kmsnKNxl!ERUw{r~35^-#$GdKoIlqsTxlIszJqpzHl+e5D zO{MXsV{b`RBI}13Mmbs2`taQk#+KNg`q+mC{`?EtE+d|0joT_gp+EuC+~=i1k8RUS z_&k)hN$fyj#`T=XyG4_Bq;Q?XR6z5oj)?fKlQCCN$d>j%?@D~G!vQjdIbaNNteaSv zC>;~}o|gY1#BC$}c~Kb=5$dkdSjcPMY!A=!=>x&}ZjGyv8XYnxm>6xRTmME$%GEUr zFHblJ-7wtr!r8rA7%-K674&Cke9zv<^S9fI3!Bg$pr$&NHvYuamtlTXw5a1k7btp( z8I52@1$dtwvqNk&1I=}^0W6m>>M%dyetSfFVC?Yx?Wr~&9O`0ziN= z7t7qq9l`q+UZ)a7%=fpds7fgWBVTShD>^)|Vca5vnk9+Qu%;V^annhuR)AIx zVhA`@d5*~%OTMb+B3xEqZYJ^pB=g!eOhyRlD1OKt}$pgQ`D4MsD` z0G&ryUCN0{AlGG|6T|8l6uAkBw*Zjh3-HM9ZJM8|)CHk_BuL?T7w%gO{5XbZn~23| zSd$8-Z+C5lAzZj}p_fkUi-sE^KU%Huli_d(-q2mIW?@&;@DA;Y2rkKGASV`ijCAB| zxfhMDB9Xc?FF(X2L|t9lU9B+iD&obVx~_*>wWeeXSDx7Dk^AThQ?@^`$Q`!rgfDYX z#4qUA223w@(F*LR3 z3gLKNCxnxbq-wNp;F*q`R-5EpsJNF#@-s43Bt~PRZ+&a!v{A$N2m>VZ0Dsp%xlb1!o;(SN3a0oHZ$D>6-ZwLt5Y z_rfuc9)|Wqv}bZbd^;2V&>-OQl4bfuh~9p>z@HtH^C1`(GO&08l&1|OHD;JnkA^Bu zsYfJolIdywZWvfd!Mgg9_A8{lXM9@JK!GzCV}w2kNit7z^GbhiSg06mXV(_9uMolN zFt^VxtLEduGmZ{(2eIi`#)fZeyu0Fwwc5Z?sfwlcu$|}sj;C`Bc(nHu2!DMvGf>YO ziJf=A^D%Szvz#B$k+P6~HOrypU2L_6`%vn_?Az#P%>pVOBs3$9^a_4l&X+&Z(Q)cn zg_4pNVegxrb5yVur6$S&KQ1pZsbkcF`_}e?YBTTgyO~kC(}?ME3JFpM;SWTnADJsh z-g^W+mMnn7O&L1-+VD`#gcvms+e$EdRkA6N^gBvg`K=mcX1GE4lGM`YP9a2b(T{bL z3%R~W&($u$!=Ygqe~k7gZ-nRl3aK|%6t*DaKG?eo9--FWB~E-~KEVoUHHI7d>faI| z0j5H_N7TBA$DKHq#No+4zkbZ8g}!P-`8ceNSho_IVGR`16&$zIJY9mg7PFteQnnvb z+Lcl;WLO^3I1SINGjQolo-z4wqT>R-z9T?*!NLU=)CT~FZmGVM*Yp0q|7{xaFdScL z^1if#Q)9g|SDf=A;(xQV>m6G9?BOxdDU$TT-J3Bma-DLA_yLDeWVd{11Q`|I%d-40 zis2MAYcVNdpsH~i3P}TO6td^A117jxW7jJmHWn|zpC9>bbVvvjmilRIA6yO zfQtHKsrZ$v$|kM*;%V3ovUh~6`{VBMYPG}a*ZUHvxy(c6-PUo8H$vC?aMD)o1UQap z9OP>c$+c?g2KGZ#%5};U)rK1%Yo~G;NB5|vlxigNDOD5?>XvAwv*~}_;MOhGOybe} zoLW9zqMi2GEc~0pG*}}=K(VB8SHw;$gH<>E7o7-rG?7~!5t|9O8&Bmli61eBZ;vGN ztJG92cx;WOvm54Oq&&7qlX$f|vs;h1#?!bgf|q=bX-86OySr}WOT97dM!n)2V`y%i z|Er*0u~F1lrI-vpovN4Rg}v(O0tSV8nQNTt8T_CMjn?E(!|8(hC8l9hw!?;ex-|-) z8a8@?q+dB#rBkh3T`}W0TVqgUkn=;#ajqIv zsnzkZX>YbxztlYR`};kKD&1Q7qR%Jv;x%*mpp*-8dI{%=GF5nZT$Z@&w_@X%KFzFV zr>QEX%92qNgv)H9e%2PhNwf20g=SlN^&-M`ro=2_)_D=)G+m=uirAO-a+xd8%{XP0 zhU`z2t2f8zw0U8_eKJWHGiy7;OjWDY)-3y-9?TXQ<{ilRo$XInYIo&!T%KZQO3^{6 zfJ;iuv}<>M=M@pffrRBm;`J>eO2()519icn5fsd#HuI5R6eAKCgq?cI3Xm%COyY08 z!B*K-5*UTvjkt5OMihT))nx#Ux=hmHP8Omv+umhoQ!(lv1rc zQQPmagSw^T*}~3!Rpry*v0QQM+3Z~r@OX}p<5+tpe0wZU42%j{@Yoj27IFPj*m_JW zklSoInS6eSR?w`@ey|}dCPToY(PkmKS3RTFw85#j;?uBUjXC1Y%*Rb$!&GTtN3D@O1hhaoqRa`&Yn*yVc1@y?vKvjcP!7#+OqcgDN~$95NVTv9TjAS)9|S45P|GVgW< z>O&(EnB+V+=A)1*33<=mF+Jr){o1**UTfbn*SWOwWZZs?w5F7f=gPg`S_+#6k6S$V zIQaSrzAb1j3t62?JEj%1=yP%^je?I*^_WZ zcew41b!0VTQC;u1QK5?vtX#VX_DfOQ8MAEX*~(95LsLhWZ~LAWNIEa)E(otJ4{0 z%yQ7H!`&o}Hq+EHz6K?`1TE^ z?qzm2XgcT_c`CZT^Ko|o+k4(@+PVP#za*aX7!xex8`2nm0+MXh`7+QwVMGLk@px~7 zH@GD;wl;0IK7l#5cqBJ7wu@=-0B^`BgCFa9836z!ZGRJMI9S`dSlj+LE&qEDz<<{s zwg4mKrjcgC27zdmA+1r;Y=@fCvTwmFm_}tkwFCI^nR|R#rpJU9*d}Vza7(RT+*oEvsTv%Xy+qUgJb8ZMna4cR0ohkYeSI4W#pJZN z`Q`8Zrn3@>ttm~>_EwhA7TVN>wO|;}5II@PC|g%sX(wxJAaWZ*DQ(RZ@X_qyj16Kt zQQIrt>&W39yT5$Z;F;B*fFud7jq%5EqwX#&qL{2kes# z5td5Ek}%oXk2c)tP&zh(0NhA_s=gy#t{6(O^L2Go z@v4pazr97JXNckZoFO$ELVn;r+62~w6(x(8+e9mVsPt!emXI?qwdOV0*~3{b!xts* zq1jCQusGGC(m<1{jpaN0BKNrix6sONlC&jS%)>ukZ^9ns!MG9Iw%1g zT&c%dl-nD#1WasFF~Y|QpCc|JQ$5XAaFG<}BS8I%Yx-2H zBkOc@oY%ALZs`nUc?L?x}lA+=T(pIrg*~l3?u~+w0RpM5q$tN6E`+4W` zQCNt@$l%y@S;_6W0?u5soiAi4`xi^ezy-h4Q!+&kYc_D3^%Ns{A-zoQ0Xs=i3yaOK z@PMLI`4WptIyZ{D`wP&)ETJ)j{CL-`GUxY^GPen0uSbEJo)UU@y{RI z!zd?fS|7gq!PpYpQy=@#z@L9X+hxSFtZ`c_ zKQAgHB0}9Y8Vh;No9*FQK7AlK->q>qQlmrW1QVm}bnD+JNx8a4;pGYEpc{spUO2l~ z3j?OIuY&&UjPKbSdH!}=abXkM1JqQf(#D^d`ZCOqiWYTT=mJGAF{2U8r~vP?V|Iv* zW}vxFHh|?aMjhrS+;5L)4~!k2zdhCFgF{_UbHcoFt4KsHbT$sapp1sVb--)X3Op)jA;`6TbQNApOP6O-Fc%9_3zkM8V; z9_%XN>JZ%LvFA(9EZ)2$vBVil9OlbDwXpXJo)!CSXk6t*{x(!_z-- zklDafszZj>3pW3#AHwvH@OCaWB#c{RP_rZv8rF2fFm5_2)e6wcK@0(>D$g-lW64+5 zT!hQ&%gsbSfMi~~hRFya9fj~_2IyMsYz}oOXvytB1yo0$vB7928KCp%s!KUh3FNx$ zb7EK>gCaK}@fHA5d;uQWy-o8|mAW9*j|3?^@4|hHfgi{4Y!k5<4Qo=t^zE*#FoX+N zF7(oAebI0um!5g~k)hz648s4E@5y2(74CKTjkCBd?E%&0)RU}e(=H-W& zgs7`ayQ>ujUPZh(RM+)TtJaik;mQ*mJ#rsiVaoO=7P-T=o$zJuiTDNm8eyFb&oOn} zq)#lz*B|<5(B|e;ZWyDx!v))|RNI2XFz#r%^PZ3Q&0vf4Jcg$BTp=8<>x6I;l2ncM z4LsA4(`u8P3l;a$NPb49io|G4^sR5LoHlCs9w8kmmlE>UKjpH{)qIn8cq`t}jSe+5 zoutY7%_?@kbgA}4^leQk2$1{&cYI~kRfhS_bLe}juJ!>}HFQMw%OWsSTp<5QB_dUIQX$syT9`fp(szt&5 z-f)BT$W{@(z>gA9Pocn`Eu&62l-ZE_T8%F&&M+}gYF5%hgs1Pk3?G)`nEf&qTVdYJ zZEh-O(YbzJD(@Os5&I4XX4)X}P3+BIsZFRMy5bjf#G(%ycGU@Yzud8k#&z{|Z;|)@ z(Vt?cmx1Aee|hJh%dvLgb2Tv4`ty9A?L2t?u@25F0I=2t%z}7^lPD(A2~dT;epMAu z#A-pW$pgttwwz(#o2_^rsEP!uDI4kpqXlS;18gUba;CEYJ6Cu*pW7OI-Sm|RD)^OO zH}9hGh2D^M9q%3QNj*@4bFu=M_enqAUuNG*%@?JRR(ZkSwi1th_ zh;L`Y9~uN)Ub0NT2+`Y57x=Sday|sZLIxI3fbz6~q{a+W>d{c8DfNg%PBJ~s-wgu` zDOguO(td@s_l!@A8Ypn)VvNuSAxY**ZeHon4GR^6?d;lO_7x&n9p?7gWz~ER3jdxc(u~r)xDpj%69=7xR-|=*g0gv{60^zTZW(Mk6BeC-ics^z>f0pwD zI#L$$uVy*4yo;^Ya34xtn0*`ltXV+CgM?=C?AKl5$je$GpvDPx`N|&nx{(;*JAe5SIYK7O1n}Dh78L?8mHlz zbp|e-$ulM&PIO$r*LMU6FIc$1g8Bde(Jj@N@_OFi_rFae9){y9P2QJwaB8e~=8AJ( zMEq}dcD+MOpFKP#Iz^H`xO+1OMy^xt5I^8BitLsTjUc1qds&wMMKPR$hD{H)!m1cS zeve0^C9wb*PD%aP^uvS|68G20zjEK0^jEbTi>_~Myiqyf0q5)30Z>tYEET_URoSF< zUpx)FLH3T2b${GFUafXm{d!*lHJ5qFyxTgC@kZ!cA5Pk;odCxXje~scA-Psf-N1f` zO1VyXqS|odW9?K9Ch;T2@a>UgewCW41&^(XLjrH)_5A1Mevf(G3`i7ZFkp=e5p5v-KbZ5V+_rW^M4i8D>jPysuYvK zr&IN^ys%e2UBIAFFLRAkJ%b-qq0yTBX*gX_zr-|b%68b0Pq#+lQ^O{&fq-FwPTCPQ zuVMA8ahV(1vs&uNAt1D(4XKM_K403*mInGssDz!R3Hto&U>X({_ zet*9wQKefeU-bEeUc6>5ACz)IPA}m+QKkwHkINEw{Z?!o)2Er$>@-!SR9P}=f^eBF z)X&=DH)(dBtk7&ruU}W*Oes1D6>v$3nRe~Y@4ON&=(M+mV)} zqW*YhF}tM?lh*y(3?eRHi|g09w3sBUrc!_2=hDu3>M+z8l~SseCu;jWc2Ku;JX_eg zuc~|+JeDhNJ)6BN0v^v1avW>Vgl~`KiGfie3m)5o*&?oA3R{n91#+7$CzH?b& z*$*~^#bgLrG}qnl?D~R(u*ZtT9KtnfbWMYglVm|913qTIF1gMU&lf_>AM6 zt0~+CS<57PwS?1l&Kz(RL0+XEQ#(We~ zB_Z#*JEo_+s9!r*)@$us<~o;lo{Za%k=B&b@m#t0TT5Zn;BkxR9tU4P!M6p?Wg)9m zX~(pJ79H<)hniwCYR$VmH^0XX8`h%R-S_*dE9YEMonGs+IeQYW=nl8Nv5u@}EUN4M zHY#)xf|YCcz617vA4RxU8`Y;`*0j9CtPb+|j+oRHTQ zi2Jpx q2eJRtv;2D}|Ge>kmGYVrck7`8rUNu8s(15U0#H@bdRe1j8S)