From 284705c01b22d6c19b8c613fbbaa0fdd5085c545 Mon Sep 17 00:00:00 2001 From: Spoike Date: Sat, 25 Oct 2014 01:24:12 +0000 Subject: [PATCH] update libpng in mingw builds to 1.6.13. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4777 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/gl/gl_shadow.c | 2 +- engine/gl/gl_vidnt.c | 2 +- engine/libs/mingw-libs/libpng.a | Bin 605402 -> 268782 bytes engine/libs/mingw-libs/png.h | 1976 ++++++--- engine/libs/mingw-libs/pngconf.h | 557 ++- engine/libs/mingw-libs/pnglibconf.h | 320 +- engine/libs/mingw64-libs/libpng.a | Bin 970426 -> 320860 bytes engine/libs/mingw64-libs/png.h | 5580 +++++++++++++++---------- engine/libs/mingw64-libs/pngconf.h | 1293 +++--- engine/libs/mingw64-libs/pnglibconf.h | 389 +- engine/libs/mingw64-libs/pngpriv.h | 3190 ++++++++------ 11 files changed, 7991 insertions(+), 5318 deletions(-) diff --git a/engine/gl/gl_shadow.c b/engine/gl/gl_shadow.c index 6f91e0723..c6a33180c 100644 --- a/engine/gl/gl_shadow.c +++ b/engine/gl/gl_shadow.c @@ -3452,7 +3452,7 @@ void Sh_DrawLights(qbyte *vis) continue; //just switch these off. if (dl->rotation[0] || dl->rotation[1] || dl->rotation[2]) - { + { //auto-rotating (static) rtlights vec3_t rot; vec3_t rotationaxis[3]; VectorScale(dl->rotation, cl.time, rot); diff --git a/engine/gl/gl_vidnt.c b/engine/gl/gl_vidnt.c index c3751f7fa..0539041a1 100644 --- a/engine/gl/gl_vidnt.c +++ b/engine/gl/gl_vidnt.c @@ -1319,7 +1319,7 @@ qboolean VID_AttachGL (rendererstate_t *info) if (qwglCreateContextAttribsARB) { HGLRC opengl3; - int attribs[9]; + int attribs[11]; char *mv; int i = 0; char *ver; diff --git a/engine/libs/mingw-libs/libpng.a b/engine/libs/mingw-libs/libpng.a index b27700cb2da78aa95f2910e74d197a8239fd463f..0d988845f1bfdb52d7eb6dc832d3a3fb2953e28c 100755 GIT binary patch literal 268782 zcmd>n33!y%_4k{QK)}ch8Z~0nK|w$e!YT;punb!PBN9aghb$8k&E{l60woYgqKso| z+G?e)*s8U4-*Kr1qy&{JTB;x*5z!`2)Tj}nqI|z|?()9x%mnTK-#*{>Jm0`f&OP_s zbI(2Z+}8xS$|!w@ngoohdxVs8AjXFAZ@HcMg7UO^Qeeql)PJLf_$B6qcedCvG zF#ezXe!9zu|9|k?ZOAs`KmMKkxzR21J7ba2?f=&I4{MEXPd5DD{(4J`mwL;50dHBs zQg8P1fUnFDC^&P9N`+%ZR$*aDj)e34KA!;nJ_?xQmp(aJg*oMgSplDkDlhZ-y~}+5 zvVxLgZ%)21=UNdm$L}LLjyvEl&k5Mj1;u$K-ZBe5*9TY0a&MFeBMOQO0^U)ALvB_e z%S#gag_}SxA%$}(p6mMZcHl-IFO|pDnR<6)cEF5V~;IqpM3Uj?n{aMS) zpk*iyKY@VEhWxDJT;Q_GyyeB$7ME1WFgf{fDwLOr3W}Esej?{qK&!s2B7w@v$?=ty z>C7rFFUnSuN;8OR%Zqb3&qNFnKG8@rrhI=% zQC6TJryx+EOwk$+B);O@(h_8oG}H*+viUQn2+jpLIl|<;g}&mYf&56U(0wE}khRns z$jUC1x+NxDIyBpe_-0L=8Z#mOrP`6v0OXwxS9ueYpagXM#oLg}DXG1X{q}iY&i055F&`pwwRia}orc zg;Wa^7eMB$VrjW1nJg57Zd^9XTuzA}-pa(u1iT~0cHv>8RpnXmvZ!0yIkU2$DF;eQ z1G+dA6lE>-aWNON3%A8Q$qKC5$nNZ{GMTIF%=HzjYQY*ZE6D?W&4W3!deEiN=xk|gs>zJ|u8lOks%fpAa=7Dv-ly(loc zN-jeN*rFk~O=dw+>B}isH6XEBmQ`3FivT(OB^8#|Ok!k}K`vo36$QDfVla{UK6}MY z7M<%WwGwhA;0-JlQ$BwoRg-q&oRXqaRKnaY+I=d$rORC-JD@+jwu3Ud4<#TFGV@6tzy z5kkodh7%x}MS2J~r@5dwN7mIM`Yyd}+K3D#;~})KEHX`6^4Q*5eBm8K{78?|nOBr~ zb4v?M(i}9n#mGhzLuEWGQ0}*wO!hBkOfv~`X3n2$cX=0Hab+|nGBp$~61Q~n+{v+U zCO5O8BsCXIotk0s%b2skbmh;w)Z#K5FA7&OeYz!yrBf%*F~gO?6)6MZA}Flkp+?ge zLU>G9*_2rpDFVJqSuc?kfmw4cl!5v4E;Yl+J`uVCfGpgpfkwxU`c!CWkuerO?zW05 zP}fTokG0f_o*){`6_yO;fLy6~i?S*$LQp?g)GKxm5lK!KtTdKK5qG@pKIp%ayp~vj z5q#`5iR>hrp;faR)$O))?`4c;TPYD)eke*L2z^Ex4tOmnK_t9ofLvc*R(YY!B#EPH zTo9Rq2+>2g5_4taLqA8-lIDxx)>%Q_7V4{-{dy|~tueAeL}SC3U0Wb~P6}OCQe+(+ zl$Mv}dy%?a>IO*$8pRs6ATjLmS~wCNq4F@KD3kRU^Fy;xXd5;#md6^_!Gw&vEKuV2 zMU%5ov!+d!B|ynf7^@aY2<3+cP)N&Rr6?pDHI0^ZHo@^ADka6f|N0ON#{UuAe z`ND_^g(AD4*k`h({DTylfCaE-rqxqtsvHsu^;^b%(Ri=yi83jT04?b(FNIOiC{AHf zR4{@Qq||G)(CXB%FI=()h)Jxqp$ZXGSqG_A}WM4K<;P~=3+qTiA2TUt;osJTmD z7RXhta%=)vkrX|)KgvgmUzSfnAqxi)y3GumSPBPx>dzV>c$rqKr)LoqDVw^;h8^Az{;+#9uAO? zb-u;MiHaENaTPQE=KAC?g2OHKo0(NsktMscl@(c206+i^KghtE_ zlOJ_j)od2IvvPAITQ%YxiG#vuzC5D+lh~q?V%bwe9U*WcF>soK!a+%~A!r`76jcw8 zsCAfZr3?fSQ>LojX02HbCZdrvdxzXUQKstl&KzZsUrsq@II$uC!?Dc*TK!71Fch)Q z-&Xhw&;>QSRH~;HiO(xUe_bX=jDNfq6scW=P!=p)yyTJXgO&I!rQY-t424^FTGdj8 z>}=ACi#H%A{%wAN0*r{Hk;tC6U}f#;#_&)zgCI7`nUu@yd20e8CmWlo2jOecg6eGx z533N;O!cIz>Bd02++R?JMFdOPl5LOa6;=0JX5S+&d^?aGJ)$`T7t)8!EZ1r>;zt!_iudSX#eYbiJ z_o}IKCN1mPoeOCeSLB~enXi_ahpLHoYp@nIH!L?FhxkIgds0a2PdiriyNNFQN2K-A1-%J@FZ9C zrBwEZ+mcE_n-=nPI3A-&I{+b$1Ph6bA{A0};RC)TwV|}w#IYExMhG5U>$a$^$N9V-o$8p9xZ88$MZiAr?^fkocOa4kO?ty#}seb`(v} z1EoP1Z8cSG(07xkjWizew2|g?653TRGkIGa6zpjm>~V4?y+X_~+k*{S>`T|Q-3LL) zBm!O;dngmSLasTUO;zbFbs$}t9fUK+y&5=Ch<&_a#2Z0mUQ#flQjvNVaY6t}(EFyf?+b}rx@}=xyOdL^uA)uPZcneh% zs2Bq=rFS=r_k-*W40)d^`J_AQ_K4_2$cf_|H@^-AZByMs357f^Az~V7DC9}Sp9DLrkS9fu za6yOWqe)1!LWY$V8DJN6kF#WqtuuZ&dbFu70lz|qBcLUStk4$g86ZKKsvx$MM7ume z&%v6igGOLsQ{55}z6B0Vb-92>LRTTr!C+lJ98DaZh$vQ+2ZNjI?;?$DB!daQ7yKZ& z>FfIuTvn}Xwvdvqy4uTHuW1`(t;a4P$&xubT{m-8hr)jvWeoW#rBLl9>u-Rna@6$& zSNVlpjHxaNp|(Js2}TRyYN7=cB7Bk=FXKhluMKagugP$x;d>0u^Bu8=9TV z*Hk4R2VNDU;2|Qmh^|tsjGN@*su|T%N6>kUM60@*6d34E2}NX=qE?G5Ka~<(O?C2d zFfvp<$-xG4g-63Xz8uxB^bTdF9Db*tg@9Yfl^~5y*EmZ=iLKka6OCkZw#PXD?K0O` z-H_Cps+6OS+7Pn=$vOa3nUM$-rhyPJ|4q&D^~rw&Yz*EM+!nVZ z4nYZK-MF|h8_UQ$fsDn5@bn=fcT!FB7b4>_*m^lLnHAKFGJF-YGT?}26{=2%iEpYV zdKpC%6G;c+t3LQj%=oH7LYeY0{&Ji<0K|%ux`)yDrfQ<64+1w;6A^uwQ!@Z0rAoFc z;Yk{c7J1Wwco;+sj-hG_rzk{us`0c_hB=llK_lUK#52U2Hz#FN-)j%>?D2W-uHdV8Bm4kxNhohGDNKJDR1Q4~zcKF3&LU{U6II2Zrmukbw zX&KK{)c>%yV!D1ojvL??#Vj{~mVMCb*k5R6z z6slYwWCgktCU_23Y-C*!RSbbSR*Fs}y!zm3B{Q2xk2OB${=d@TKsH&SOsB2o6Rjx? z6y=zzJ2m6(C8C=m29P}om6;sO5Locq)R{`rB&~Der#^#(-PGw^7tb#I!j&Xl-QZdm zZ|n8++DHPoZWPAjc+SY1s#^m1^(+%{4bCd&yXBG}$2Lxg7?td%`C-lU+KHjL%b`$eZz@UQ8N4-CT3 z>K-+nae?09IW?ULfq|HE35*Q8n>7#( zLWHRp`G@CApS-%pfqqmdPA+D*YTDA|9KkRYOenZ!^Pu|mdy#h=PlVv+OpP^}?;rzewxn66 zYbYg@4;ZU+9S5~>^&;^}p}8HHv*vyUTkrzRU&CJC8&0|@@5PNq>jC79;DIhf{p1; zWSFK$AOwvmS&}W#i9#~2xFJGvoJWY}jFY0#e0s>8CPj0ZqNQ>yh%06+e;8&}nrJ+U z4+l!=B2bYC)Pprm#j-=mm8#@QW4X{@gt8+^X?0CW992=X_u$TG_EFDCU(*TIc z51+@P%2>rJ3R@oR4uO$hb&ZvrL&hYsi&fGRew(N)0sgF}3~H7_#`8o)(?a7nE83-s z7WGLb+9#+Y$;NEDB1i@S&w)v!NQ%MjR7H#-zU1b#aqC1&$&sXJZYk_`#^CmbB2LxZ zQf=J+q6pG7H>eXyNR7d*N)iiQxKjpGofMkMGeK@AX@zR19#m`>V2ucQP>=ap6tmKy z(qd4ojn=V}jVP~9$wictl-OLFiOab*F72qbF>nicng?$VQcr?pAzOg(KVPzUhgc=M zlXwyvQ8IqMXgAx~WLiXHdD5sF5d}l4rHvAF1&0c-&5-16<2SFA26#ejN!SRHyslN9 zXp`g(ZapLQa?A{4RljnsRV{VIMXI`s^t4cVf*i_BPm7tJDN+!38WCOvA%m|{v4&$F z9E0It7L(Z#+=c42rmEdoE!EMDg3smZi@IX5s`6wdGHN}e^&P7FGDUrt5Sp7*vne4~ zRsJ42aAy5~7gv~V)DE2>%>QkI=O+xtUo=dVce+wiOQ5&dSX{~Ra?S5Xql0*pW5w&W z1sY%pl+1ymx?9xloNEizj$}ekM~F@a@5yxb}8w7Ggb4>2;!wg{Zn~ zwu~0bVpyO-V4j$-#5^bd?B|B zoi1r{8itVn=O!-6Gke9 zId#>4$hHOA!FG&5=s7^VuKEw>*#e1?2?B|p3VvhuR5}N6nxx?taOR0_3VvgT*lG)b z*)7E3V!`kmGsG>n5SA_mg_R9S>JX1}{AR~Z8B(hPJrk{rGY&lo$Ia&}57B<5NqU-p zXEuzUiC;-ii-6?8O{gKMzml3{WRj*8OXiS8G#&|(dW)nM=$Y`8ydP2?U_pHuNiXJ6 z!G_V)=rjH5)hwWBy_1=CWub|h2@gScIU`v%w^PtfGf^|)A?SuPQgmrj1Rc_ico{Vl zzk<%zr;|h2nUI*e9iXR{CFKytO>%iP5j{>GG>dM@PV(RMb%g)9sEd-&0mH1oPQiy~ zB8H3co}AXOjXOC;u*%2sf-S0R?4n#285PFw7_kI1cOYManLDA@VCF827J`|3Lm9v~ zBf&wmxf!X!%og-(f@sX#E-{fJlCXo4kcgVeK60E*BS$&EO2dYls?@mEWr$6W?P*|_ z4FqOYD80EzuSl$uI8G50VP8=yAK4E8Y(th{#YQskhjMP-{3ty@If< z*$F{d%|u6t5V<|u8AM*rP6?tE%uWr$w&$k>GhC#V%oGaLp92lzKtnlDItLof zfyQy5iJ{qP!I|#Rd{;07#w17K@jS+)Q8*>91@hu=f}7>$BzmzA06I8Hhj8lEjQT7YZSbG6TjGzD&jvrQMZw z?KZG_!vnh_zr{{2Euj(-lWoDOU|X;%*cPk`wgsyK9##e0f>pt`+Ss<**|s{Q+1GoX zCQCT&SZO1gsI&zTqU*H1XczW>lD0LzB$^(@lK+{@j>GS&3Y6<4Ow(QjELQ>;*pa5U z8qir%{lYkCZc|GtCFidwD(kS^0c<>D*%tm}VreO4Qwv-6uT3ntaV4-yp|BtU?loHy zWLKmr$rb1iS%xpeELYO_Wi)ZGHBR!2jxAwhzU`I;FP?JGn#3rzuDpE?d9nK7-i|U{gzg_BOyMW@4Ujg2x$9+!7Lw#qB=gCZ@ei zZs?XWID!l`OrI zZhnHIv?h2+D;bkhRqNDBlkKZ{Osdp@qCGg@aZoI&w^U0gIlWv$&Ly8pC}sTx5=t#S zMM7!ktdNkaR)y_<%Doad$a$%RhSp<7gkwv8G$f(Xi%-EQizFC#GiJ0HnpizuLhey% z5}G!*jOm2%Q&f6bcta*z_=&kznJ_{nZ_w0iaI$R}w5BSh1}d$fzK*kul}hC;c4PHC zx;4^ZW%zN}G$__$HZ}7ib1Ifw6oO|tfxsFot=4R6<{iU8&_+%m? ziE4`2@sCIRt*PjdA=a8kRCmNh^s~AxL+?DLrnwtTiFw`e6KVMjTOV4tGf`?yOSKYF zBqDJQbfQoq8HsBxD3Opv(wrqJ7|G4f%sdH;+!!0s@)~XB;B_LTa2ZP_CfK@8;pHTi zm=Qw?-AV+d+Q|x`R69i>lxnBi<@piqqlo!sPHNXN@B0=pzl7q3?T6i#4W{gPFDeMI zz>)sBME@CKI4k-qF_fSK6haAljzTCw2igTK#YuOOaUD^yqCCJPsBxrfWHbqSA_V1_ zr$MBoWQatfEk#gO)4&ecrn|#j;723~!9B2uRD9GaQ-Nj{*$F#Uspz8+DitRvgi6JU zmQnsmkF`7;9UNvjYF{;XD;kC?w-20-j9) z<0&A=v+^g%I}U@KRv1}-*o|RN^YIFy(%f4iRGJ+TX)equDt6S~5B*Leu;PqK*B0Zz z$2F7uf#M=Z?E&%#lx1fHhP2XPa+1F|r_53N27x(Qr2rcl8}OGpYM%kvT8AIxk@L=< zNXfaBlAcHj5pVek;vdk6wCi-oWO`lt}CxtC=7U1lmPbf(4XS(-e9fO(ZKzO>a;d+5-Z)F zcDae5)x);at`fpYZI7(>fv{KmKv=5%7A(@}WqeuSfJjtKSzSP2r-(35Ru>RGOm!V( z9a~)Jy97KIyfkp0v7@X2_ z!vs%r8CNzdqr%(ssuID&r_vS*Yz9RXX!_b5Yac_u)|!2TtlKr>u&JXBW(y-kQmY4{ zoHw@6HXw*y)7cF}Z1QYfjta5K!~OHttGRMSZ)$-`Ip+}&nF_(W0pc=+VBG+5xzr8% z-7TA%6B9R3ifD?{QP)keU8n*nwpS>GVtb`RD7IHcu)WV@`!G@jE!8wGQh^lP#R{R= zUab&{tv7=0gC<+rOvY@Ns6dKsmO?1D*$Sc9=0vc4*kt=7jGs2>JL>8rTcACLT6W1XPqa*y-)m zX!;tFf#GzkX13cygnQF|*_x`B?vCr%(*Y9VEIY%gV$cbd@tlzCuM8H`OPKI+ZUmHViDNy30Z-uEi#* z$y}O~9M4ssgIWl-%pEI7t=Ptgy=DnOFe+*?E}Bg^NTUv3O?3Qf z7Z;N@C}G{-1t^xfc-(AM^Qae#)@-6L;yf2=ODwu@nBR*qlZeuBbBJ9n#H?C?F`2bc z2enu-yW9*jM}U&qh3q;=%ti??CNo}6?0w%?=#Jho)O^w}~ z5+pWFVV)#>n%$GmAg!hokBE+|!ob`RW)FF}`V@u^VxjkVhH#7!8(*;hjAI8H1jqv?){PW~xzn0xb~) zFjbkFNC&o3yRYI9BfARGjkoh9t;R%WYCMNa5aG%xz8VQnoEP~}4;-BT+wGxhs`?v&fTpTxra7;Ez`E(MnT1t3r9PhYmD*jz z|AU>A)R!%gAUv&CY{hoOm9t3W?f%jvQR6!4G~N-^y!5xT^-?a(omgw+!@G``u}ghO zP3HxU8)lGCLfsrNI@%0DFy_S$PXM(9oDG0B0*3nnfN>b%J_I04I0=9Yn1+z&2s)2c zTsmr+C*qiQOF~WO>5dzC4?#lRxZ}k3R1i&sf)ZP)o&ar6&yiMY?l?GX6+W*hCvBd@ zhJL0IOM@M9!{3nsjflJ_>VYHSDjl>pAoi%))`yb~ayKFfU&$n3hhu`dCQ&>E$FX5W zHp)VVnM1{k$xdNE5iGu1_doNm@a6$u*+psWwgm!IW zt+|u_BHf7Jacd*G12TVH_WjiLo=$32>pe%J+cTP^M$}lOq?iH@Fol_LCZaQf^@$_) zhEB2G-Lh{nnx!OT`6+9vl4wt9Rl@Gi!xtlF=+8L3IEg%0P288b4(Am1EvDv;H|7R< z?(?+oolC*@d0H4~dAo|KSMRB*I${KpcDL*;Z)g8@P7qc_Pz+Lno(C1 zX%55$hjSU~_cSsinu%ykq#oW4Z^6)Zf4s!m$;t9R-qkh2Lf5|*+vSa0BK@vVc)KhXWO-nb8#Xi=-CFC zTFaeK2BZ%o)3>32MyO4U+M&4a5K)!IQwNY~Jlpnpc2JU85@<+JRJ=ryY1gB0v1&Gi zPazN1?FZj-qBNTgyIUmty*M9z`v2tuFxxUtUv`OiN%i-gvn&=xOGJ9Ho*g zQ;Pyq)jX{Hv`E4lEVCn(WQjFJblj=Are%20vwn|fy^L#Bp9rZceiMOMhHW^|+tKm? z5!|=eRBazte!L})@Nr=rW0Ep)a$tFjk#Udj{(OJyiZkhV->!0uq}$LJr-ahP5%tVl z9|k~Hgso6*G&Ya(9F*hYF#41fKQ$D{#&Q&OZMeh8aLKzRj_po+q?1BPwX0EG{>;#s z$@NpfCYi*oy4&%b=kBMI^Mal`cNg8cXYu;oMR$ih>uVa**WoM$sZtvR)yQNICvmP@ zO3)1(vBn~zUx}4?h!MYfa5&i_f4W6>GEvNppg0<>=OM??-@-)_7GjS~Ea>`L&|G-I zhfI2J7^`gC@K+s=bBE?0te=cj9Skkr`@-M1Z{Hr=b@;%hPrJ!Oi*b#EUk$z=+(GG@ zcKpjBk03gH0RAoAz^JBbuTlO2+BqDOTQwwXMojipKlf!S6|XyJn zE)HK2sgB<^*0jfAB#7aPnNNZ~e31o*9X{H>*aBmIm3WIj;^S!TP?f4_xV#v=*Sqcbd^H7>L6XAGNqkdFurQX4W0O-ZlUnBadSKeZ5OLeYXlwLgQoIm z!)iNMqwQEdsM(ypZb9PvusbL9MQ|SgqG;#w%|Wr=VU#~gJ0b(Wv}v*(ntUH41+B^U z#ENEcNvycUlKx>R5Qz|x&ar3(!O-a(Xgf}T`dg00lxf<^K8UnGkzL%$iO{KRL{a>3 zp9?b92`k#?Y2KIkI8|(~?MsZT;Lwnv;@+q$xQage5*y*t75B0eNaN<3020HVRUe?V zeZZw{@9v_#dlv87UGzc7vr9^VBT6aQXh++{cnOvkO^tHw@sKwj@FZO88hGzP>0R8u z$KynlkdVL>0>7jtg@lV1ndQ|I`o}XFNi7-={~+?K`UC=g!U7)LU375I;^y5&pMl~rp=lO@7QhGIyW(Bk0)tg;xi9!vq0KOUtB?Mb?_7|aeG?R?q?tX3GBJ`0| z2T5SNC^Wkx3c&uw@1p>~3B*-9l*Zc2dDbNA**l{d3e(S(Hse>s^4A^favl*}<2lN_J2+qYYw*G>FDv=9c|M zjp%gQ5z)5MRj!~X-CmypnRmu*-sjo2yXs}w#LHX_y|laNr9F!`?k+-`y)iF{K1qAr znyPjfhT*vWGMfKcqOMe!XA0eB5xRwHQ4Dx8Tc|m64&Fif+Z!jOKV06-N1xhM^yry! zENzITjbd5$XK|zyYas_6YwtkL*KAoJ+F&}CqvEt>b6Z#0j8ReBPh}|jgPft^!PeY7 z*i~+7>Dv5n=|){x#O)9tJc8(E(&mO8=;R%MVh_|eRI?8^QM7ZZ4px9kOE$Q@xYrEL zFDPEXG+edl4>)LCgI*W9FU}W8E70$!!5wE)wn=ltpdsW`+6XNsvk3=x(IH-nQsx{t z&U^jOlhEjnP%Y!Q{tC)PjFL6y?|vrd9eGU#ZMmX*OQ2S)Ewoo`)VuDHJN?=Ixm=j` zZ!10Rh?dI10WlXmM(MsE^ak69(usgu@(!Z=CpJK=>n6o#^LUr%G>{NXWr#pDjoU%J zXHFv%eNwZfzwWo8X2F~sq>3olz&A0Tm@&~UAVLeek{#>dc!8!&XxLygHw@*3#hjx< zp_3N-k_c@sEi2#A)UgDixaq@0>${Ma@S5n(E{F)Pi8jFTGm?ZtK+`=&SR{!;Av?NC z5*Yw`h6iPmh&oo12u~kQ5>1r<3_+Sz?IHx>>GjOEt^}bQTiUSPDg`0xSb`9qKC0ix z0+B^v*oX5~Fb|pYXOIDZVedAegS4(NA`x;^g3E-gJ02n(1MRG9{Xlr90{~cT(qYCw1Lq zu_soJXFV;@65>Av8|SgPg(@c6LXSKp|1d9H6BN_inqJy7ZUiu1=2L3{J_CdFU{<>P zY*Gd0OsU>V%cKP8h8G~ILTinB*!6sdf-D>XsBPm_a5w&{`&vPSb7(c&_?QGP1f^0; zBA21lAP0~ON=jTsS;fm;{4$^mSE#!(=FM=K53_+?Mo9n{z87Q_x=L`DeO_Tng{z?0 zMK5NFM{oxXHjK%orGsyE2YfTd)2uGK z2iot_4@N5HbP=z7x7IZTR|uyYvz8W@(DR?5;8zG-bTzvRV7U+Mj9wx(7lfoo1YIMB zjU9$dhtG3OE?-(+7I2LmG1N6OeZ=TqQ`Jkfu0c72U3fNr+B+`A{*ya{CW z!`<7il04U(D_ywYoSwBUD!}`SP#`e51^jwZ7M@6A7PBsPi6>;TvvSSMD02l$I0_>- zi*BsXwJ<9vF2mEm;xSj3d~FG@R29Pv@T@1^_be}^w=$KCGFz!zT7>!=Rnyw1=E_kJG+!+A&@WJYGe_3q!cv z93{vV@sh8y;s`Xt;709Y6gSQfgu)XTlxY!kDmZ1beEk=%h|v}Bu7SqD3tUD%zKVzx z11llR76pg|GFV-986#=R3{w}ZUKhQ#KyScO5ySh9cyuAxFz8xz2#9x0VrB_4@Lhvy zed8bJ1yJRb<j!dehpEY%=OXZv;F75Bbv(ve`h;DK=y;G1Aa9Kh?rIyNInr~S_ zj&Du@vcW>*$|=Ny99Ft{c&#XRDm_>olMYW9m*COk6^QegY{-*z=Yy5!!mbR%N=`Y( zPX(~nvRrs?IZ#jv^F%2d4Y?y}Rcqo=-CxD_k2Cmjau?MS z{BE=;VHO2IC+C&qorkv2XY&({XfaBXenQolhiXve92IiGn@hejuRwlQz?F|iE8FKQ zcKLGgDoZXG7E67@Z((tL!)4m~U^mrgwz|nid)|fgHtQ^ECLkVO5vGE)!sjnR`ds{= z!z|fu^K*QPM*6`XEFpcBIX+)*nTsCCK)Z5c`BT6bgFRHze{VIi~?{Jd^p02>Nkh119Wm5eh{m23uQ+h?j%2&~-*Dt8@ zjij23j+=TJ%9Z8!iDHL$Nh?r}kp)@YwWDs8>T=9Miw~1x+u9m^iB#I7!rN1uQY0=-|XXH@@P$BpG zxVs)vb6K1z#vo&&kzwQ*6-LOo$9T$UGWHl>8cA`kxbbld;!5IfihC&T^|)|c@A#4N zm&aGd-yi>G{I~G~x?S3BZMUboecUZIVQxZg!b=H<5=JJLBtDY(S>o{SW!*P+|FQdw z9>4CfugAGbE0SJMI=!dA=eC}%Udwy^v)9Puetq0m$7LqJknB2s-SJ-?e|7Key(c;z zb@X%I=Iq^PU7v0zRG(m+xaP!!lwgYUq}xv#aPpHUPd?=zr{tx6pZeQVhxXmpH}ACW zX@5$abNW}O-+solGrv4@gDaz7!dcIsReJWh{Xg#i#{s$LoHH;y@QFdc96bHplp!At zd3NZH=VcAMVE9StU!}h@;^~pUA5}fNU`*!NDd&$GH(-3<3r?7D+{7M}x?kAiqF!$2 z`@>z8NcL-a6}v*>C-#ea?yV#$TM3anmKw&u_i-w9JglZn%8Y!XK}g zbk(Xwn-}-=&R=qO)@Rul=Kk8(lIPC9v*5dHt}1-FsDDX)Y3Fr$W$y)MFKetAzx?SH zBUe6Eb^hwVR!?91c8#~L{rcK zyUWT0eaasypSEn@vOqg(6^UVH1>w3>Ts2G%}QJG}16x-r*3d;Pc@Hr_CP-Ntq22cHR!y7BQF&kOxI)c>Y? zZt7cqOa1Y`y8c%`{%YCHpWU3>u&3dYUvK^Ogx@^&oBqGO?YF&dsk-HhTe5C_=hmse zd-`|%Z~N_S-PZfpH?N=f`J z_k4d(&W1NOjJ)^v_a431_lGzBFyfED`{Vb2^xpUCeFN_g-T(Rhmpt(F1E>6H`JeXu zY2t%-J^15;-aj|~+4Yy|zwH0ZMGxKm(2<9(dieQ=PkE&Lk$*gr{%HN9pFTSMu|GWa z<6~Do{_Nv@o+x~x>4|<%u6**{C)1w_KK0R46Q92I>Cc~@{>ai_z+aI=lv2D_8H@^1XYiGY+`ua<+_k1JsjeFnt?2U2T zYq#&%e%jyj{{F<@kNkbco4-1gZC8gd1}w$Jrnm<@BQ1}p8MwR`}Mwm?mP8^MIUVV z;G+))?!RXLBm3L;k7{1l{CxBG%@=-H{o$)0CLWk^Ab8-71IK@K@kb3Gz4OtD2Qv@; z?%;a|Q$N1q=%JA zp7`SPFNU<|x8L7>p#97*7k#<@%YS~^=c{>N-T2kkueyDG(bvEH`nj*a`g&N$H60Ih zeAsdNHw(Y{?Kf|I)9aAuQ1zh~4;?x*;&9>N2M&LD__WT;IvYCQ=uG_fqHmXf`_#9e zeLL{GtncplZs&Kszn}U2n(tryzT^Azj^rKLaAfz96Mp!`54AtM^usql4Er(f$9sN! z??>m+nMceD2 z^>ew-JoAh*&N%(_w6wI-@afyP@2U8t;&TdpPUg=^{7I3Y6XoXw{pn+VoVJf6;?q0& zbA0Si@-aWh{hUv)fAiDxfB8xJFMWFa&pxxWijC>MY-4VgA9H+u{9SI$E-%Kn(7?2s zajCD=xHu<(vBxrFnlH!FZxA4zlBe_WbTXdK#M5bbItNcD;OXo;oq9Jv{oMj~Vrh~- zU#u4HX7qgMbC#QajcYpbw-NsPC$rmV-h{s{?}qp(U*>AWe#?Y9yV?m?zlCKRD2iX+ub-DznI)GQjFK|OLIXf z#*g?FzH~e_k8wi*Vekvz>45SXx&}}ILp?DIE}$#BsjwA*u3_K1HS}lgyH(>3X{dLC zift~SYdP$CK!psw2&jmmw*eJ1^evzgK;4Z&iAuf+fbg6da2^f40;rTjd;~~vzP!7F z3IK@|-3{nErh5{Q2(e4kjYSR%y-Ws_EBFBtVHYJS=#LuuTtnS^D&K4ktO2jbm@RZ*a?6{9GMz-v&P*HD34`%M&sVm z&|VD0Sne2|d_pJ0QXNsD}DrZdKr18XB&l3pF%XLyI(Yt%g=;D5#-?lN4tM zpa4rSMB~P4oKNF^r6K3ZD#T0u6_+MJ<;(>qM5N4p&r#3-K*D#H#w`FOZ1RxC#SK(+ z0|1GXrvnmn^@9}dAwVKOc4}z9_C2C;D+a3^yaSL3@c0$hB1DQY5s(ObwT40(`ba~LDVR&<5H3I>#JPZ$ zGj6QLZP(B~4V^qqg&5#bP?d((0TStWd%E)73rOI;)wsAB%J(=xBHmLpZh(fS0K!5P z()P5*y$nc%XwtYn8k#jzab5sO~S2g1FB-kIY&t_4Uph6TjS2hlV;e zbVNhOaZ2L}8lv91$c1DLIW?4`p;Qf}X~?Ca{u&yjp`jW|*U)GU(P3B-??er`H8f2_ zGc`0vLm3)cprM5tTBM;R8p_pBzJ>}lRH~tXhAK6*QbW}ms@2ds4c(-n1`XY!q4gTN zQ$rgxbf1PE)X>8k8br+6u1;WPW0Yv>FaS%J48GCTx(os0z=p3;lI@L zP=L#ZT4|;L^Q;ZC5STd_ftk5{9WWbU^Y|nAtOa-+Mqg$s?g!@8^R1zt1LmS}Rt%jk zcZ|1U=wgFwP{hr+5>Wnrm}JG!^C)*=-p`~N227{KKn?he2d3CubpkB ziGz;YZ5X^4n3K^{G&Mg3n5XAiF$;m2eX*7Eb-*mT#EMx5Ox*%2W<4;p z+tlRz1Te|y*O{r<1k8LJ<{e;`=sIdxz*iaI9HCIKmbeX|K9fNG874Lfu$xK=J<}Zd z8J3N0O7cVLj!EM;8NrM|(+)XuR51Pb03@Uj)D0R`aWOuhfyR|AEL@b_9|(imm^cee zat~loADWmnV8jP)oZ-dJ$DE>43x>dfHX6c=j>33s7;lb0XB5hx_z-9MTx_R7TxC9` zX+^WhMnj`tx!|j2Jn}D>kwiUfvq&Eh;GvZ9y9Bro&w6r58*Q!T z(9uRD2x4JFzA06Ncf_XXNOh4)v|u9Uf}9*Lwx&XpSkq*Bg(=3aSi@UT=EcrbDz(_E zSMEodW5P(Z8B}hr>>|Us20%yB@M1r)w|MF-k4`DYE3_i_IBRJHR@kcdkh-lJ>f zHezfS9yVH0p9oq@&M9=DWSlia1)5{D5UYw>$Yb%4l~qHIHZIsJD&n!@M@F}9G(fV*!sOXmXiGV#*qQ4q3}gwnrADJ{(pEtG z7E5w0S!XtcWm$PXoF|d|kS6qiym>NBlt$*s7;0U?Tw z1$R+{`+am~MPRah#i#_V<(h5Jihy-NbU`kn6tK#!3O}}3$82%YPUqS@D5+jwr7x!( zO%2KjK;t5<456?l4}IcLb+UHaI}fxv7><-n?3?K`Yh=+Cyx5O_@L7} zmVtygYY&}JPakg>d-1o{!35~zP(LSqiM5w5e4>BdMtY;QryflqFx5n7>8%sC8Q%u< zueUhKMRUo90e1=vE4wmzwLpm=)|-oS>=SSYq=)X9 z35=#kmYsZ`55Invj01xy?4&Eg*Wna1{l!^9T)mZy3o3BKTE&|P!T0@brDJ_gc~y$j zym~GUiIgYNOGn+}yM+;^wAJ z!Po2F35;T<$DnaM`xbH5p{9NdCf+uO&S$uO+vewnGFwVE8;8iM(Ntcu- z^Tj}Q&*1V297Ubr>2%!mXNHs2338=(I+%$&=I9EwiD#Ghmud)~gyXBg@-=@GUAVij z7u^GZ_#9$uJO*U4YPp8sX z;~ubNdhV+SZt3Qev~(*1-K1bU>FI)c=%nXm*rqF)AkEe*h3au?RX&R&-rT$%q|qg2 zC8Dx2z%7YT_Ht}MSRDNq4QbXsG9knogGIh!Yx1(;OaEZ&eab0ljpNJ4w)(H~6>kfA~v;%8| z6U2QM?TI_#0t5Ks&MREh=+P)#)QG#c+Iy_d22$!5c`J?+BNi*_U>F%HpC7`NbM>?1 zf^*yG9G^nE!tpZVslZJ(z*31vRfHQ14*Fjs0d0Yu92kj;4BT6!gDyh;0cKf$ zD{)4waXX-g`Z{t!hw6chUzmAKM}R}_$^qD4hXd1rY3$U`pZ6nYbsEYs{8C^~7ACYl z7hYh;eT7Q{!frbct}qo3B+|;`J8-sReuLXRq!pQ>xne|r14R|VE;CkOcZ|TZV+2k$ z1G{vxahBYyT~m=wt&ige7AbD!!38V>u#ABt=WVc8+^E^+UWMCn+g7Z`oosDauDTAt zOIBYC`{$bd2;Un-d2&?*3MI2`09oIrPTbsIO);&Dk3qwgTx@S}U5r}B9u@J$Jt$S3 zh9fu~MnH%0alb_-iX_Yxwh^wBMJFO4{4R(_x#%(wYg+1)A*Hl!N}QAHw{>*0%x0uv zH7++rbtSMUGn*|jb1tj*#*&Qkh`bE)n=522N%eJS+3ojoGVw^{LIgllYvCASuw)%! zsuW}L>=ujXS*A^x*2o1Vf_DuBjI_qnfwP&iE>^>k4RNa@Sh$G=UQDx=kF|v3w`u7T z<7z5~b?v4{$8Ci;2Y z#Tkf%x|tVV2&Hi2H;bE~rwJtKqc`83f!n6!RoJC80v&R@k;1bWLXHMRsc}<2&Yu>Vn=Bt|KDt9bCBZQr-66QJ zqn;GXMU-Ou1H}%he$jK^xQx`b4=zLQ%@*B4UIRt zN{ztRG`fIIeg-`87hO8bO&rkwv-}`z8wgEVP`Rt@bAy}|bu-9XC@iZKLL*Jo|Kc=t zQp4p=gOQB|Wb%oM4~(XRksz1Xbax_6%E(PsQNqyrQFaK#6KUwgHop`jI)hgYx-dK!@4 zV%UoBarmZV+IRGrvFDE)KY7a3X`bn^Pc9a_NW3`(*%%VLFutdWVjL^SaeWt$y)lSK zF}L17qKPm|i8~4CJ_ovvLS6!3s5>D1{u2KMt^s96FNKnm5{#rTSW-mD*1dU?ckD4w4yFIWZ4Brz02`(;;8=`SH0y>ZB zZqvSh*1peb+$N2y#~K^On_}DnNO0Z{hz9*B#uCg$2>BiaG=_2bF-V8qdEHGwNg9Ws z($}dW8ZHXDn0r;kY>Hkc^yZaf7BY~BKt`P5in-EAel!I^nkAZeLKuDVEyCBt41{Z& z4RZlpG@hlB)eT?6n2GN^Ffc=5$<^3t!xRE@D#%Tmn}DG+BPQlAz-+T&HW43u&A4c< zN@AilR2Y~IHp~%V_SrC0BB_^Q@;MopzOXxrU8G_#FxO-4%#`N>V0PIsbAcI#tTJhQ zz+7v?Q~(pUVd(0wN?5TOimpe?gl(FbM}VOnXM_>*Gy*dlR%X&r{X%=6Oqv70yk(=I z*^R?C4BeLIfKi!zP66g48)h&t7r;IRjdeZ^>|j4nz|RH9{8;DG5ICldS?AFxO+RnN z`vXuSV6=T#e2G>AvyuhkHRd~7_xa@-!5HF0q{|!V7ZNkd~UR1Vy`gM zeo*mY&RN+s)oQ^Ic(;w_QMe-4R4voUw&~%B8Q$E2r3C?6Ld4Xmn3T0mI!gx@_xxD) z!L1fH8WW8*Jz5GkJaxtfEOSeEp#~eNV9W~ia^X;-t)N}B>42%{RVyKz#yewSw zVwFPeHsD18G{fv~6Usi5Pf4L=T~4>Tq%0=Lso54WvD?nZI)!dE8*c$R4qhx!XB+q> z*i%^$$iV6lR$<*R53d(@|17QWE>rCS%W7Mgu&*zeOBCkH3eDO>ZZ&6bnYAAid)9v3 z_>obw_KUEy?NTli(X;m3(a6!PeFu*L45L3_bWZ;3v-aZ<&x0~f77agc!yR+hzB!7H zXYF|+y$=s&XkHwh&$B&F3~7j+?%xM`GXXl8AfN${-PaPlnzmL(5#afC43>IO@Mupf zZ@e25!P~(>akC<(f8D9a_CEF4-lrYgJMGxseWScF>3~!X5?UKj4V{QSIV7##2G_(m z>UJlGsvF_>pNHNOEA%vu`$Bu%80cE!##Cc+sDa{UA&AZR&0R^@UJVNG8;d{@~ki{O-@?D2L}M9JOl@j^p{IJ)T0% z1MzruJaEjn_*8l zTvtQLpP{xkjJ>T>Ygx4DfN}M`n5>c+9zpRc=Ff;?b(a+TCBp0 z2NOh5R2Ayl>9;s$8tbPhFvVK}? zGQCp4@)gFas=@K>4tj!0kpK=EHJx#ey7kNp(M-o=LdcK>xh0s{w!f%lU!n`%^m51` z`nxIeS&jWwE%dAgzX8Pa)77d6Y05i2(mRd3UCMiOq_>N_@gkpydt9V<-G!0f>9KT*mRb~Q zQDZy9Bb8JM(%O|#tzL9diw8$jQj7-wd$RwplCTVnJlEy_QX<}rO+?=GCDF_VbZp~n8X2hX>K@P*RX*n*G zfi{;a7gQXvDwn_{=5T%_2RtSU4ld&09u#RKC>vIOW<5EAnGNAkNdpW_>_C__W_7ZN zq15pl8UqrDd~LNI8`+aOM;;V8Ld}wR`_oZ-tIQ8aZHOUy=V=W?sJ?#5mQ+r0X9PG3 z1}iyBSfWbW2=Hv9d_^7!s}!3F7$@EdXI#W%-i%Z4d1JK-Hi~?2LcDn4g+z-?MPLA{ z;Y?09S1%16pw%)}cfu7FD59Bg+nR|`!*<1CqdOw><(FY2)I{!0pTQB!+~=}~MQrE> zZ(!l^N4Z}25pzloAr;66RuZ}_+~lFfcBiW58a{BI%1$nqD27-vBV=Djs-h^7r!kU? zBTBGDrZEzwSOf%3BlnvHlTLvJQM-<9mw+I~Hb5bF0zF3ufI8V}!Ik|}gMt1j!A1R@ zScpo-gLU{rm!%^KdPR$kvu4Z0tFHFy!X8+}y1{+_;0cpLd4Psza2`!&RZU=3jUj>t z>iBB)G;Cy-(hzsgIa#Q_HWH)AymZuVLkNn`QA-;`RGg@Uu%uG^5PLe|c`rj`#2}^VocIT6Q>5_H)8fdi71x z)F>HHiJ;Dlii}3EvpJ?|_L#_uV#L%yN>F7j)Ih1^>dDGku4Sq%fn2Vy;W%<-9Mw<; zY&Vl_S9HT0fnt03c|CMB&?GZemMlZs`n?x$ylAsXi~M44U?9iJL;Va`n8;o91X8$S zhYj-UMK-G;Ek)FB@wVEnzTp-n|HgPgQK6@^9Bz`Mx*7y{pJf!wflX5=t?N{1F2@2# zWLnc4D2%5e&X9nIXJ+gIeSSo$#U+geVDx*ZQu#=*|giD2{mxkQ_6+ zXkcv0p=TN?b?`x8jMk4X#&UMq)X8(i)zt=r;x1{d%Dp!8lXLD%xafgi(+8Bt-+mF& zg-`QE>PEU)tHhr}gn6J!F$SQ{70|1IE@m9v)ixVYccVZ<=V94L;KpcZxrWwgs0eFv zg6<{_J*1)6HPou1q$Cw$poXSv=nop&q@iXF9o5hoSi=+XPSVgK4gFF>w`=HSRPrK3 zc5j@l=9G7H8pb6I9S2DG_60Pbap~H3oc5ieeec%3PirXViZIR8=YXN*L#w^?;Wa*F zd#ukHK=#8|tOF87I=+fqffWIm^1}&-C@J5go`FaOqvF`Xf@Zw+z%J^ zBTdX-;libg7R-CVjJ09D1}0#`IN*BHhM~3H?yyIbGu=aQjSaIDnD}m1nl-?^1?Ku*R?KW*W}>8+G*<(2gAG#%%zHM>3Sd&voq)g}$ybNMG5 zCJmS`ZJ2X`8GeE_)Hq;nv0q=I?s6OEI9QY4h8X}1p3bz$b3QP4*f8^e`Lo7E?>cxLe*G!a^yj~~>tLLY z!wTd;Li*63u67+1OB%ya`v+D;VL~>HH!Dz*$9(BWg}TE=^8j4dMP9XR%q#97{2NOq_TzAp)sicZk4S zUUZ1?sq~iO)MH_p7Z1*07lz)VK$0v!hF{mA*at_K>FFr1pB|zxg^u>~T25M0oR!{^ zygXW|FDl6K<5eRw?D8&sbQmF2j3C;hRG$7UEiE$1gfD9VkEGZx$@qvYUOIX1PQ&~7eQeS4>g*;5W-`+%BIY+NWu4%=;9ohHP=EJ zm_P4QGn_o!kMr4pEZpe?G;S@R%K>nD69>dCetai`*hi!9LEs#~iEP{fKo<G5{2;jL>-%Xznr^1TUycuSYLbjV+IUdM!La&F{Z`XOajw}yG3Yr_T8y`@rau#h zh{O?#Kwsg-rwS;jZ7+9+InjpQD3~I`@P8l=odbvya~ueb(K0zA4%Uj}H4u(?%3-)< z#=>|ycyP_@z=z9m(ze5oskjcjrENVmvKr%WdtglY;m9N=xp6Y;#F)yV@JaUc)`5+R zoF+|HfeX#B5SL0!nC*}fsV!+H)gn71tHr|j;$#WhpJtEo6JSLm}L)_Z{##vQ)<1=Z}rZqSb zA_groAO#8tEuV!J38e!qwosu#UQ?x#ymH?z!iFpL=io zVkdv1wr=rGkRv?m5mU}g<%qI}nRD$6mW5J9NfczS5Tjb_wJ?6M)Gp&Y=hen5@cB=Xh3L&IWxW{<-tFi}CesA7&Q5Kp->_0zY@-ADsf+SgU|(_F867>sd25FL*tyve^BqFT(`#I9+fQ=>wC-Z^dzP2`X~fUg8*386 zbB87Nwhhhzy|-HhZ|A6TF9b1zB&nx*4UhHW_J-(S%v9AXAy$;hpw~~>xHfyk^ImEq zKGQy8nN@jiHsPQUS{C2u+{^|%u08JI)*E^PG=U*!^%6Voa_$eAmVeYW_2SDe<9#CD z`$K+muCB-8Oi1AVkZB*#QP-Zcv}_jR&p%?+#jSxdEO>kdvhfFtZK07yUE7RoLTKnb zrygw=gVWNyGy&rT?{MRDSUSo*7tA9v(jN^2z+tyvd;8D$Ty|OU6HFI$Eta`V??q}k zpIF?LAj}_OGlUO}b{et0gOL-z(DP5;Cr_l4$g+2i_;M3=qm7MP27kISP1t!w>_NoF zAZ)38sC;@nmW+V3y`Ga4h-Fm3Rh`^$GP4pB<_~DP5=@id?$|;0UC~j)0|Qd1OyT%> zaP-?S7D>D_dt-9A01hj|W8#-*XZptm72uSG>I1W)OgEPPE&F0y2Y>8mk9^%cYxbO`Iua%rH935O*49`2ln%j``78r1@GJJM zw&nc{>P)86Bq^NK61_DJ97CBXXproz8)I{t;5%oM9f9jIay^P&4Tms4R|Kn8*h>4W z`4=!i&2U3fYo6DD%n9yzgTs9UF?ct9X02BY-t7UO{QS}&d$9#`=SNz36DxVM1Pg2l zX5J61A!)*ePory~hDr0TScfownwf6UfUBD6m$mTH?Y1(t&p_FNh1YhxMRNm&_6UY$ z-VQ?4e!14AUEP5#x?=!dY8{a$_ra|#dje7u&EQ;{ zCDyR3u<*C+*t+-_wyrXNz+mxMy4Y)Jg!zIwGaHZ1{0Qta^N5W|y^WygDoZ2G=iNMe z@v)hIiOjj@axBSt=@v?H=Jhuphsblt_19<|kHwX%M?xba&%gHC+GC462rJFB*odR( z<0jD1@aE1x4v{}Yt`{5!*T0StuD9HHbNtw{R*-8iVjN2mUs0~JuK)0&V{?5CCYsrF z99-uq*9EuCS$=G;kC5y6$HDatwD8bt%-*A4fSKm`e#%^XaHP~!?I?O>p^W}v@08-{(ech#^%jA4$Jy2 zOf_@gad4fZT;sRJj)QAExt?I&{AH&nk(Q?ok<51J75gPt+BST5s|Y|&PPy0WaAktYl(xvnWJ()0K?lGB*hY2kklo0 z^{}^;aXr&&D54Z)nbipy$^0eDahxex&ocSYWE>ca4TX92C&bs{w56O=oEDu^oI^$j zEL<+ls}HuYv*mcd6_yBB*g+#Kv9@#rW#yW^%oSWegiy5`LB`wYGJy2rgDX4O=tyC_vgiez%4^%MRm)P)YNx>>E zL2*TE=>(m!uGkm3|23ncb{|m@*9P9`!TdvJw!=!~F`KlXK8)8fM52BXUZv|x$NJHn z`DO%a%?x)4F`1f_j`ihG(po1fS^i`t4VYHCvJVzk=n~~}VnUVusdnaA5Z!0zNr$sbAwnuWf?m(xGvE$6eeujg&XI_EIlOTE*vHI zUvh`zwaTWp--yCJ3oDjMNj9gz#2TKZ)fT|C&(iwyk~;9=+JTu|1lJBeft{SpC1~Z{ zxxcrd{`@yw?H4Gz(bo=gm5w!nK3O9uPjS8A*8-Qydci9K>)OF@0FPIjm}qjJe~sWO z&bzoHWx6O3i+*tgs1K8Go!eI^3u_APnfYcA6qu%^6EjpvEp*D1@@Mg}f$R1nZ0kpA zse1q2ZcIu)(96+pQxYeCx0mCWpjq5*cV-J;nhzIkZE>VtE|AkB;OfgM5w;y9_5V{Z zC-o@M2|8LO|MSpwYN7MXlhglx`|4;Bws4oj(c1~G=hc%l^LK*&!4RW!MWI-Ql$ENk zL;`lfAG=V;F2`(cN*l>L!4T6LADOUHw;+nZsMKwMGhee==ENP+a*gI6wk&|OiYO7) zfV$xv(Se=IHO!6p9geT0z^GY{2CzepdY3>1{xGz?+-9Q~z!m!%xtxn^RN`yK*wwN% zyk1GHMl!!cTqgWQKVH~z&4NIJs~G46>yIOmi^=TiAhVGr&q~e`M)N#uK;b@$w3+WF zU2M$BcRImhLw{jI+1^B2uE1ux2y8;d2Bem|HegKUHlbr{oQfR;Y?de6Vu$qOHiWdr zUeXVmQCsX+`oXoLw%E&PKwrj^(TVBGg9M#rqU=cqgH}{ljkqq9iuEG0DpKz<{KfVO7tg=Q^yr zAc)-Ps%&m6AGg6%*>G1in^G%jLDSWi=^4}wOxJQa-DMVcnT_!>n^6#d-ovcW%!vz; z-{f%Nnh{w)ht&}y=P54hu#a`2kM-Cl__!d?mh}g6gpIo#yD(76JjP$2=8(l)5I&O1 zrn?az0y(b{mrKGuDw`1ws%(gg%I2!@ur$nFY!#bB5$=VAOm)j{-M>ohrNr zkgoxMzQ*_zUPv2Nrn!RgP>5mHL!*lcv!Gxp1a`&xM-^3XjhuV|k-{6+X5p*NXquNEsH>&JSZp3a7CS!e&z0WUukx!{( zn{p@kQ(Yb{;E}y8OTR?z82ru5IG6HvP=d-fCu8FUfrW#gqm+$e&L`h-fB*%Y}goISi$Ovp0J{(Gd=ObYfg5z(t}e<2+!KmBw7K|B#De*xsF+WBlW&?x~iuC*meqd~b z$5pg5e_jSkG-2Liz!B02tYkF}l}M%w?}b4!JIJYbbC9KAvM-`V;k5-XPVj8- zQ88;Zb@fflmP2$s4dCWlIiP{w9SIFWe^cJ-2Kyd$={hJ}JNNKvS%2@g~?)Gw1W4G6#qD@Q$$*U3UI z4G%rgX5=kPN7B&#_o6w$PIo(e0+z$6Gz?eNXYjAMxUjGQkBAq-t0;^w`Q!z~_{?{j z`j1Ha4E!4#`a6D~g@0us-g2h6QvoUNF0?dfODH`&6?zzu(tQDt(tXvz?R0Qc(CM8c zac2Qy@sx#l67yVvb^tn0pz#<+D8Dj5%I|Uq$Jdt?_ZbKG1R(Z|WuXoS_aleyB#ga2 zD4{$Het|$=0(7B3ZvdJi&^=@AUD|6faKA`!2LaJjwk$NY*xtGQ0H8|+*AM72fvy}M z3SBNxJ0SXnm4$u_=n8>mz~$jefgT1lU7!I#GX(k&TtcoA=n+6466iHRJQrOSswfGC zDg^orplbxm0GcV#v=glKzXEiv;J${lr3zJ`shTCYJ%C~Y)s$Lj1w6!5&uajwPWdkS zbwc+`K-UZO8;9<7hwh{kEtg4vlrHYzR-9x@nrB9}q(28pOZucTo9_DoX}Vtpq%wc% z-4=?$U0S7Y2c(jI9+1YE^B%n!ye#x(KpOfDKyyUqrybl60BMYI<(BS5KuY(BgZq+$ zTYrk4n=cF94@f!xA3)0GyMR=aKLzw*No@jZq0+q@kkVb~;I4FVPXL-LF~0AFPKn|j zcfl2&Zn>Q5K+_#)qXT`;f%Z7ikC6P0!e!hC)PsF&=oCOV3667LG!UrW3ms^Q1M!r% zhOTfRy5=h`uNS)d$1Vm-=LZHRKj9F3n8Oa*2S8l8r9fyT69} zm=}DQdx?RBF3qQaxd}DE#e5lFJ2BKLCjlnkbTujV@**FdVJ9n9l&i(VdIo zP3}id_j2w8X7U+c42LSW`Y^8o^Mnt>)yNlonA3qd4K|}P2fgbrN7!PK-2VFC^R91) zEMsjl&fhD6!g^6TqwwV73G>UkqTL3}ATEfj_Mm0+?3< zm_G$Dg*1QpvD$cd0CQFV!!d(D)(t*P{xcM}`)C;d9v_BJLG$%fKj$VN4Z}7CF#i<5 z?DApqpAF$SMt^MH5BV^^!&mMx2k&e{PgHm@xKJO5X7k`Vzwo0Q>sNXoDqq#qxV%aq zU#+#T5IZP24{M?mi5J*q#*%|tir38>&0%!mhoSKbJ0Xx0A%gWz6I?7t&2h|8g5)BU z%v_Y%Ot*;fJhU#Httv3`R?#G`5rwkx)&nDSHKuGhc+R)fFTqXsG9x1nr-2*dg1y*- zU1v!z^CDf^OAVUZS+38zFEzIaNb-Wii`%(mt~~C<0WT`ATvS_E;|j}jFrHb1mXm$% zmxp4!fjncKYc-y;FgQ40wRoj5203MoiAmMPQ&lpQ0@$H^^^*ln9hxsW$*hN?^-*wY zE%;`Fc?;e>+inrD8_fZI!b_Al$?J2H~E=w}{wnaUaur z7vvyn9fX}v;+=MHVS1~mInTwzQOebQyulurl4>E9$Xwpx*z1ydwL;9I>l*dV4NP54 zo^7B^c~?{~HZ4+KyH@UXA)d`5Y>#F+Z#(lXhX=ze} zXS0eI>e;N&$FRde@mo<*2gQ{&(93o;|B}$z((@g*HZA}~na`r< z3ogWA8P7(vz9bV-i0~!Z*gT|X2{sCUaXD}gwP>PFT(H3k?udt4F!e*)UTQipaHCq! znp~7O+&%P?eLt5Q8KuzK==M55Kvp@%03%LB{E?;II#V`qEa_nRjvO18#WerSx zZee)4wRtcUznjjKVj3ePgA{o3qls(h;-lf7`Y2NYRHtS~qf6X;s7u+Rv$02!@84l2 zAR`xb2Y}CxobAZ)#56NV*Y;5uY*8{fwlE6WQYDjf8KaP0ZN#DH`zU1PO4dlH^HIqD z0Lw!b#EX0svgaML#?iQaMajf}eiUx>0-;8ENMsZ;E~|q~4rYu(c7c+~5sOjC#+gKU zW?~ewK3E146{qr1$iAy&;?X_|*~3aEM=J0L<_IR7t&z6;Wo!^wTPDtv+f2tG0VygJe1rqwWB z=~Nfmy&3NEXoBNsltx;|JD*l2E)C?$#O?z!9l{^83(rO~Hk9Gb0^+pG4Z6-gaWcch zqZAK_@jY@|HV}}^PhoB_Cq*9^Bs=g*wV$HMSg4AVHrOlwhDf zj~5ig#6~X5uC+t?EC9@R=PyNT$w0^3=S)Sod!*v2^E;MvVe2gXIojtiOZJUJ7m2He z;r-{?&f`$V+oOTr_WPMfVV{`}a%wdTQ>v)9-ramalyY}eE zDd-?7SLQu_u47P&-aYYxw63hd1w2JZulaI! z#6&xR2#%DqGqbRL+%F-O5=|&Hm)q^SX=wN;tqT-@C(NJ;)Se5Sj}cuJ^kM{D15kG6 z(H=X|GL3guG{jCyj`UziJ{005^%$7nWSt6eixc~YR3+Zf7B}%h`5NR`zn=GylTofk z9{Q_3SufpbS;N0&T11IpeU)X3=1SQ0xmxp{C-|Ij7%HUuqv7)J*=t0u=^hp$1Nyx~ zs1Az>EAw1UaV0_wAg%q-heeP~nUHq)gg9)*I>#>J18VbT5|H+=oXR^fK15$=O_5HqKYInfRSbxJo?Wxg6 z53T>M$)voaheKUk(Qi;f&Tl;V3-;8=o|$dR0I!{UV9fRI#B4x#y6TF3dav5nKwjOP z9j0c?6%U;69&2*=2Q=#-JJwY5d63DaVmSQ7LAJN;%X|ZYFsB?eh8$uqaj=)U9Tajn z)Py%q*rJ;Y9!8ievoXVB#R$WBFf?}&NW#)Vc<&<6EJ>PIAAg#GZ1L!^NouqS4L$Ba zcC1Nio01)Cl3J}~$C{*aAB=iE#w7J5B|Fw6br1#xZpWIW{=gv{b%w{Y2H7vU8vujiaFZ&tDfgPVF4vi3f`v^Ip!$pp~wqG#) zCr1Erblfrlm!m+q2w(1Zz5UL@dxlw>%TY;fgqM z!WZ~VNm_64D$48v>e;6zM9ZbW$iG`t?sZOXZp%dE3N8 zD@zVRB$qw|(Yb^gK=K`!05X~ni8(Ouq}1nQIKe@eRZ{c_)Rj{nQ1v9_fTOq^&XYpW zRz5UTl@E;`J|8-oA6=0L?WuO&l6d-eM~~XtjK9T*ibD5N06|PzoVQV(Tfc4)6@{IB z1vxpUk;4`^9I}Hr47p5XTnNzlN#Qmuo+VBTvmQOTO|}+kEW0z}*<3dniG+ z5@~Favz^X)YjQ@A!+8tFUJ(6@XvmpZp;TzcqI7C%)?2KUrY*8BFd<1Z`n1b~@j|?R zgq0~Dp4D|M@L`;SlYuEa=cPcBn5PQBO;0e7{TEGd(0cw4rD%BgWGwJW&Bvfr2)~ae zS62;r&Yh2X^=lJ%4hS$}KMP|}jMyj5OrXjP7jR!=C|yyO?3Sz8zzC&`1vDA(L*-D+ zI9~F1S{Cz3;;BX8dD1eJ>U{APXij3D++PRU=wDVm=%l4ppTunJsXmI2pXjB=v_a5A=L?cqw2=M&6uA?b=k{_ zoSS29XJqkEFM76jGcb`8sLxUvY0N|89a10|#8aY3>o@U9sr1?lGI>Url-OkLZsP(Y z%9}8INX<;B)W|iZPD6pHQqLD?l^Q7%OH3zFv0yGLwp)R#J_ckag$XL|K`Cvx+}Xw* zRPh|$AOLL&m)zA>@ij16ze=;*yeOm#wnucLX8TcITZy#Ltx{yw(n;V`Y^FxmOR5a3 z)mV%|8O$T4+6^j-fTdD7Ov&I1!i9vL2%`Ee`kaq^!+4TBlU3L@p4G>~2Bo z(qIua*%JYuXmqsrL_2&iz_MsZ@9nCG3uZap^amlVD2m<$2;&Xz>=el0T@uEA5VyCN zrS|Q?o(XO#;9c%Rkd%kxCl)lF#YW5sFBOY zu_V2WQz@mnZ^GD;_t`fgb7j+G<)D>9RYOF*-Pl~he60qZ^hY$XKYLV|Y>tlM;sOiQ zvm%tjZ6S(G#bEEzF_G2>!B|jdvfsfmCD97%c0ZMBFHn_IMXfIzB^Vd)myZ&RPGTU` zgxSGhLDMPe%88EpCw9f6)I{d<6vap|8G7_6zT3r5qViMEx(E_Jl>h_wY>_9Q?Hnix zciU2MWDYXayiCTnnqg=WqcU`I8Dyxr_b{}GQ5lva`z+kdf zqoQ*F&t*D|2MCh;Dmq^q=c#&vIC+%XXS51_R2y0XX1f$x%bX%P7{r)>@9kM#2a8jy zf~PnwV$|Yv$}7mw+SmWz250SNa!=8QglX(p32B9J)WVf$oZC9>%8BShY||_w2(({l zRN~Mo#-3(gp3^|}*)YzporVtl(ZL;J6A)?LOy#qI!hodLlJhE5wA3XSp8JvLiXtt4 zLwo>h-pLVNOBf6?*WeesrnA{K6=g2sXLDZ&X)-Z1uIz@>mAy2}iAz%j8=EJ-g_d*8 z3VEUY78?GOv57@&0-g>hLWwspBo-qrXC=uWgpBjukbJR9F)NC3c808#dkpVTa!A~p z`Y`J#Lzu`@4tcPbk1V^mGQl0fO;}#aQed+mBkhof)|;PmB|jJ)j3{&#LwNDs0~>#O z?U`pqU@eP-fwJIDCtA`h9*zuFvlJ$9WN=^R0mNkqe1IiTkj2yQUiHgBrShPtpFRj4 zMQ{o(0p$$n6R!pNE)zmgfkRW;hJ&}N00%b_bd`OE2_m&8_s_CZ_i1(sVLH0Ta!P@} zWhi+lpDXfgk?;q@NwXQ?U8cWYc47{PG5KMP)q6o@1|)vIu(r3u_xIRw;zC7$uRa@Z zuP?X@oiD~!TV^*tU9@f2`!GFyCDlE-=Y;_dF2+f1>4&ybmHo_{Pln1~>{O!(;-3=z zBa0NMXsp6@5MX0-|8JS8&mol{7lbfJrOY?}$|wVWi}~#tWlaL3F5F}QY__T^M%S27 zb}q{2o*`W9b?Ba6`Q0tQd+@t|%i3_N*^$@#Y<$kv`j5B-6FY=E5)Kuu{@0}5mQc9* z^WfomMV?m=OfmO|z&P2btg`!Uci9^$Zos@oBpJMik__ELNe*vW6;3rB&efcK#6Cxw zt3(>PxuR(GPIJ*m(dsXlyGV*wKM0P={Zq_Ic6mFh1X`iKTi0?-t-nL5*0_AhZ!RFT zu5!OI6>D7~pZuL~blAEa0Y=YVvEC4p=!$hy>uF)+PWdG^oGKN)J7Jbm%$=T+jI5+a zS|3B~{O3jJ@k6=g`p*?z$ zPJYb_iR7_qk)s_hd|>(LjI@>mmP|MXZ#q#4x@7LP6$?h$QZMFHST*o*)`b?)?b1{` z({fVa9xJkw93C5a;7d4a3V);h=zQRBWJ^e7D2_bvX(_$ET8Pq5`AERTw?5NvWiFo{ z>u;2DhzHAoRqUutcAjQIzVSw?b&1$aA3vQ;*p;0bJDig792fr%54dZ!}D6w zkxB~?+tU^65QZ_t*q_-<-m(4DV|(K>Sf%_8ZHG3r{DX#;e=wifFU^P;0gdRFf5a~Q z^t2c_LeTB*!5?(72k-~2bPxU@@d)2LUDY$oiT3B zNs6!roOuuC9+?yI3)Ks%0KL@Fit?+N<29o1$AbEHGVovUN8r>cP~qf8K)1rhOS)p* z*b8N@Lo&$G^jJ@%^$dY~rpFFMT2EFu729c)A8Acfpvs*Xlk^n_2b31?3@9yP)Dh}V z78EC3_*-Txmsi(RIdr`fe+sp>Qdt-M;poxlS}%f4LHM0ZQ?1hgMs~{|e9?mtU;Klw zOZ1C>@O35rATc>HfWNYdh`-z~2yGFTniQKvTQ2Bb5E^RF)Sl=zQ#r=C3vD2IfL8Jo z>wODfUR&A)#`$dt=@%+Bn`x%{ks(+j3aJk~LYY6}M0)0T_~n>|w#{5@z9FBD>>b5M zP8k*(LCgIrc$E<}1Dk#W>^>O#!Xjx---unfp7 zRFbxk4$GWYsy?YNaMHE(-*3)?uXyp+@D15!|y;U{qkC9kYSLyGF)PGF<=f+o+wHKSi`afOPD5C8$m<Z zOpm$>G-il8V{F_Ey0GJ9MXK3nu`s;$2}DUG(MTwW5*u1typAtk7@1Qg&xpL!-2L6g=iK8*yFonEz|!$ z?r*a%%HRNsXU<>;Cy$TNp;)}rp;*MI9m?ZuMD5^&4TFvVk0sor1ME=V4>LoA$I(rk zNsHSpfADpNe(?{!qWZ-@_&N)J>^Ne?eubPz?pOW;w&V;G{6>_gc<&a=TLF$b5o?*s z@^-qVKOxgP>Rg}4MAuRfSl;lE+L@=zp|+sCyi<3~p8ch{_?ROpv_B(IFFCral4|gQHH>6_NP;O^G zwt7c8_K3kfva$IQ!F?(nd(7Y-+t~aVagqD$JmnMX!+0l@d9P>SG=}R&W|UpnIZz-A zi2G8lvk@(yQn!tw)UW(rl$x)GkNfQ#mYR)XK3rjs89V zRKVgLh88g@!#0i^@-wt}hoMD`%CLp6Gh!0IS?1<#^1DUb!1Qd4OExn#xL*`)f_k|8 z4}S}~VuU-mqtliX8t(Onw*8DWgYG`$-tLF5EzW~W7$z)*nY8WQko~5>3mZw zt*luBlN!LuY$$UH@LjPsflCE$5qJ>49m}wD3e<;^1Oo6^W;5wni@%;-h8`mIoHw4d zwZV98{&;V_f_Tq*<8cOD8jQEuAMZKF!@_F6j1v3ZQ6geWV~?e`Qj8DeoTBwz0WQ@xPJr!e)ctys>$+;{OeJ+n{QN&8~Q^wG3R)HXlTb zd$KU>0aOkMtu+7OYog!}0D3PV2t2|dpR81Lwzami!=OdF+!&l4oyPP(Q8wC`9vG$G z{|iP%I_x2b%p3Tfkvn6(b9z}LNhF&Sq4+y(pG)UY^Za?Lbr!{!80o|;1f*IkfJr_> zdnRL=GS8!vO+LevLy?wJe5568dMpu1hMmv!qm(|}gVnnkMh=8mPbPn~4}m<5AU~HF zz3e&B8-@MuUr|*ix8~fZV@ea zqY*~~EL!eXEf1yh2SGu-`Gc4@Xh{|kk*zYPsY1!92>!C!ip(WNG>iZ!1}s0a>1_Hq zXvH;NgM4Y#H!sPSXJuJ0g7sN{NV2&*6u;c5ZFYV#$zf<$d1dw3v;(#U;_eo<#NNl< zuuG7U!gB)rX#@-J7{mU8Bbl7kom990G^2QR4u6cDq^7R{K920BE8G>~xq+k%4c!Rg zdeK+7=2mRapz|&2BPrIUH#W;Y0`}}~&Mw6Vm!|L$<3?jI8q8#r&PnV5Rv+lM)}6-x z+%1Xi$I32dkUSCyE5R&L{F2_0JrVnSz=g8dz&<>VfV^dJm`P))86#!j0CvkhbB6#( z06TgI(iP{VVtWL@R_!hUCSvi`Y%66x$x)`0>J0b`j6q89qzm8o-aSm}yx7nS!=9!3 z5IwV;0cByKECk63x9o@P0QrxQ!l*uo769ouZ)AU1A6Jb;eEod#N`JL z(h7CH_*$w53-Lvn-{Tv*SC}j?3J!~hUl>kx3f1Ipb>hS!WH=DHOguutSx6&e%=1VG zT2g%FkKYGT3hsM1sRxk6)0jBZNAyj3`C2|={h3=KjMFu7NQAF`764}$v4PBGA}n-U zhK+u#6Jr$CN3nO&8Kf6E=3YENE*z34;_;9lX01|K_jbapaXOu(d$7qIX?Z_&4nH*A z^M494G6&dM43CMlq$I2`(((;pGT&jZ6+0wrafj@7)Aj&n+s5W?{{=RyF^1b-+d-?h zt|$kybFdV0${JiwaFF=ymFdcDIb%-Gh_o|ZxjiQ|++FkvBAUG{0)`#^%SLrP}c(`9D@fnbRhlAHRBy>a#by1{;V!hb$^dOUF8#x$J>s zq_LVL?>m4;xq~wl$Y_AV;0y(H5}*K1>bfcmhVGVGWK%E3%I&B+VcrALH$B!7+4TJ* z=+)q>hwzZn#Za$$ms++sLT=%LB9gi@I}29McaPCkT`jTf(b; z%F5M`b`R|ewp;}XH6Y4i&f26J3i5N`vy^b^h&=EM>Z-7H8k#m`uk(!wSj2eXL05s|syHWI*2|b zofDERkv4WRs(24>st8M$Wg?*QpI^?Hn61yBC?`elfn*;2B4r(Cddr|&qI8Q7KUWsS zH@(9F6AK6PID|@8hhN~I3$;L_7hkgB?R9L}rVP z@3GMv!xButEgp0-_F<2mzgO=6E{y}7IxGl{%N};>(xvT{T(FyCpT1Lj?#xRl4WyB- z#2q#0W!hp-CYqnbER&tL@iWPMQD_cY8jR^s$v}1#ho5wjtCaqrh#z}WCK{<1CU>F| z$?!otch53-~Z*=YmfR$kO9k7AqaB+NM za=0|o@<9x~IfvMuo6c6T!ZvEI0xd&}>Ebe38F*^wAk<*QVKcy<1&x?HY(G5Wu>G(Z zw!`6glwtd34%@-c4%@*mIBe%gna*L_48W^-gkk%D8Mga{!g7>Gb{hc@0?!mzzB`##5aYyhRe_JGC0j)mz!YjE+3v`z;yGYP*0h4uiIy#-bL5J&KBtl|gL zutKc96r{-U9Te z$c;1yiO8n&kQVeNZNZ`GvG&NO|3ID3EVo)K)$HB}GKemJOoN1VO)gSoWV?qthk`ND z^(z>I04TT{3YK}Yt7ERF6~eAr(--VAI_}OqCki{DiLL?r#54R29e>7#sE+q*z|lCy z-}~J*lKN!?(J$~KV&thuiSw&;KjP&!ulrqyrHzqG7_=6Ov8Y=jJDi|5> zo-TQ|I%WkA^Q@Xz+0R1R&do1FktsSg3w#nhekN%eC9SHu%w=};H z+dEcEgME@EP&w8<+y*E8sG!V2P>iz3P8qRn{__Fb z=uf{*@)heaGQz;O!BbxsvP1Oe>aY&`+r#?|XA;DApepYX5wQp{U2+!Lbc^I~SC|8- zozk@YD#zL%!f>Kp#uFR&a}=RNij9NYsa`Iep$PYIM6rwGFIhMPFG3tqKrOpq%;uC0 zJ9bkMV%yCa+PF{~2Wm*+jw=K_Z69i1-y5kI6uAw@a;BoF`q4h>!2Bk$9}dw^@I=jC z0$Lq8Kx2a}c@$rM?-4h_WKI9yB_5=Nj|2rbF1uKq=@n01aO;J}U=r+qWVWQm;Ygiq z-X4m7z)2o4#UF(wCm!qQ28Gi*-ET6KL$M!47SiGtOle8RMA&1Z9o`aavzmc;C}+or$ z7g0q2W*Y6V2i03zDkvPYl;{MC0-5>K@|$L1vgYvb!QuBp$iyevHZXn?k16q`V24|l z;CV zmE*q7UDX3r3>z`5z@T)r-r-IJcA_ql=7n_!FustCn{XCb8}|5VAPr|vVVDXwm@62$ zlaxpq+;c^fZhMCf4 zE(cLNSQ!!=Ci8o}%RzfRTKMDF*sg94bEBj~mV-J_dRPvUqcFbZpyc3fJUNf)y|hs{ zM5agj{~4dj=CV)|OaMrXp>P3@-t5T_9wjqtIDCKc=3?n?Q4z{Q>tL^CZ}jp|4;H#H zNZUq9lx^+?ObHnrnn%!SkkcwW#Wie3O!QBJlmNWqkYZ5JSpF3#7#n1#Yc z-Mf)Q)02awutXieLytW;v5v_RPv+pqo5(yyHU@L zH7i%eqw)GEW63j#^3LVRuPQdye4@#`H;D%*JdY|mZz|?cjPRsl=qJ$bd&Y-CAIHBA z{5xp^uDQX#Idyo#kq=cw<*5z6o7uR$zG(%X)~t!fn;Poy%4B_Abj|Xbx@eO;t4U2r zrbSgO@|&5NRn;qMkUzW>xuj-ov}Wz%nwll#R@bx=Z}UhPY3ESC(b`5Rp+362cG+@j z!@OP-mG?g#{s7LI9GZH;Wfx4nSoALmO4?UO>zm?ycvD~31YgGTg|DiH=Ax_WMN!c@ zJhypc<=nX*xEE*+EK5Lpc$>WGKN|G#(MK$Z{>z3e+QIy|OeNNS8%{)oU zLL4O>rOGFrtLt2SxN%074jU$QHEUNvTQIGfy2bTkCV_WO7uT<-Z}{NK>Q%;~Oo8Lk zm1Q*{R+y2aR!0|AFTQ741D|n?3ZLl8rp7oey0K{$DmD_9I=B*VxJIj2tXf`up}gj@ zs=5JO*U?UwHB_&=W7=IBonl-m7Q3`&4HAww)Ydc_nyHtKN<=>ANfM*7lJq`!JapB^ zrfOKW=#FL8qly(08pt*}Rfu%QBR=VlEg19)x=|Hjn-Qn@gL=1S%;$i$bmQw*)qppx zLSCz_$NRKsv;sB-8e*b7o#M3r2=^uny1q%7ampg_miT*ouwFk!gCYOF#oMLjA43jq~?w&|^mc%^7nePfN#T)3>dmTmuHbPIJgD`4%u zdOPidi)zu4`JO=XvSR3xnpN@TjOVoI(m-DsZNmG=t5(%FumQ+n;c1W9JYA`^(@GJg z^gcPX#x$-$dFFBorfUtyPub{6Qy+wm%XeLg?!#5Ox3BTg=V>V2cG5?;q?&!; zl01EdysjnhcFFTz@;;Zm>($7oyF&TiI9>z&PQ$;l5XXO42s9R>%_{}s-GS2unh9tM zps}HOfMy78m4o}FgKKwiyb?!W@O>Q+OcrUp8?)%E1v(#4g+P^nt`Ue{Ff#@E3m_OX zVw^fA6oNSengu8(5Z`9JPN0VYT`$mg0nHYu4-m$qh%pXBV3;hR3jlpsph`fP`~bHe z&^&>@0!ZJ9eI5{|DG2=op!ouo7llF}5oiXWn*~}3=oW#JfK>W#16m-s9{{Qph^H%5 zYrg<=tKgtQLpK4ChQ1q+hQ15qEah?lkcPem2t#H_H6A0c+XVUuAjRG3;QraceapeU z>EMbc*tqinY1}&;+*SwoFAna<4#anvRhB;i`j|-Y?stSjw+nPHpgRO=0i<-F0;F`i z0o^H~B_+6URiJACDcxK^O1IR(eZs-@0=ipb3r+YA;i8KvzSj1JclWfRsxd&`ja-c|g|+v=7iMfii$%0+r&3 zvDSsl0cl;h8<5t8RzP!vZU>+n1bPwBhXr~Q&|HB|KgrgG*?_bz)C0OnLO%m&zCh0a z`iMZk26VGPMP;@woC8SnHW$zm30(rHMxgZ$^oRrPaG?DT^g5uW65~Q#MWAtS1++|X zbq?-+2l}D|{S?r0p?lSV#-5B9s8OIsKyiT{1k@zZ6M$9=vy5dXS z8kaA1ZxFiE9Nf7M?k|865_<9ba2dEjizn&}=3_&3fHnzkEg8^2b4>-7o9bEYRwnaJ{ zkjA(O(8q+|l@2cE;JyXuTuHanfervt`F;*ax%2~4Sq?k6qYiHBX`#^llEyWFG{yo4 zw+>K3LZ1NifI#O*L!mZ-t_E}|ps}H4fHZDBAeDLC>7meN5_$%p%LV#6Af@{jAf+of z!}2@bfhrs*0Z6%Q2c%s18n)v8>fp}!fW_SaNa>yjr1JgJfd(CD{h2n#RzMo#4-W2> zNftK~kf!!=2lr_Q_dN$!aF)&61VEa%6VA7|_W@Gej1OAeqYm^HKpJ}J0$aO_F0^zf z0n*S<15#PO2S{a(L!l{Xw=6Vys*Q0uAdT@w2e-q)y$ndXjJwEk=>Vi$`T=Pf{SlCI zdFf)S$=4m|r~|Er`KzA41V}me08;thba3Z^NO6^blEQa% zg;z;x@3_Ho`K<%}0g&>mM7REs&@BP9PM{5d&IL3!^dO*3g8Lev8iDSdYxyk$q+Gsu zqb=$00Me4_0i-4KrJHPwuLIH;oeu7RgZmYrPe~fDIiY`cLf)U3I&)$;ScxAHjVWkn-yV)F8NVci54_G(d5| zT?c3ips}Hk00K+2IgNnS4qkRbUvok~cBhT81dzs9>)?_OZU~TC$x%S-g!6mvvQ{z) zkXp$sKx!pR0BMXyKpNvAKx$W?1*9?d0MZx}Am)1E{9!;!cPk*Jt95X32ltqR`-+46 zCZLCf%l84PHhu_bgWz6taKCbJuRFNEI=ES3E5U3B;>|QF)qDry`5eXF=0Lm!OL5%} zbijdn9O$3}^*YcY2kLX6eg_(Gpg{*3av-{^Yq~QWsKS9}InZnex`0c;&GNS|0q;Ye z$Y%`TQ0Ni-8K`OCn3?F298o51|@JH41rU^YW=H`adub9I?wlryE<_HHlDo4}Nu z?8TfI#uF+&Oca20A@VE`H;VwjOG^ZZ`=5`;=Wx)KvhnWS;x~P}W?Z8}px);*~ z%(u?*Vjco!!elSz%fKx1VfZx4r(v3IF1mo>_MnUD1BTB3E@l`QZW6kfGGvCk&@Scz zV7N!@V&(v|^`l)B*&4t+8NmFT zgF#&uK0ga!UJYP)*S7xHSS8Gm{8-GX0nDWV%yj|GM+2C~0Oo-Jh8NWNQ~z23^K=07 zqX6bm0Q0*5=B)rG!h(_?oA+n{Gc|yj8Nl2Uz$^)1ngW>n1DJmbV73P^-wj}X9KifG zfcbL(GZt;LKksa<{g|@?m@9plDs0&;Ud1s1f2g!~o{~0nFtA%uNAIbpX>C!0-ryKlRTBF#i(3d@q3M31D6h zVA$XK(+Z(K@nhZ@z~~8AQdzBD5ulkHz}ykQEDK=P`7pGf#v0p-+q6wDtO9B|IU3IX8g0GJv@yfLZCo zNNrlVDkrTr9}NS)6u^8pfca4X^HKnl31E)+FeMX0p$nwvJM-Rq?+sOPM`|%fm2iIH z*b+Vu4NZ&VBjKwq(hwn~vyA7{<3gj@Tpt?6E~(dqu)W$)y{dL?%?b|>c(nMx8apU!=3;lB4M&J=tYqX)rrS%Ofs|{vZ z^~#miRd6J!lHEAbr6=lg=(DE5%Q4qELL5v+BakV8hp&25NDfAeret1<#(Qd4RW;Q$ zHP$StTD%-v$xy8Rt%}!InQiS0F1z^BE2f01s3fLbWgRL)RZD8%l~GeAIaa>18453m zD!WJQH6* zJaX_h!m1i$M4p1v9M#5a0UG=I}-tvQ0FM@mYc^AB(XWOu31ne6D7%};LtX}HO6IRn{-ErYC78(UD`l#r=i=53P)pgP&u}; zrn;dH4lGJ&Qmm_OTwXSb>3P&Lu!1~KBG;*za`W15p$YJ~{8uec=ejYBi$e#2{} z1{Scg-f2G&t#NtnQe$c4vS^v9&io*|s+@HFNf?$nG}2d&wo)ypS}7@e+%*D~^|U$bak9NvbKVPYJQEWxaVt8VRT zSE}kIOT5g@Fou-?8EmMnzo7oYsQyg71pi%e#l;s*jYg+VnKC6By>#lu2m*ZBC70mu z)Qb_qpM?|VhIR6}1IrXA$>_E)>|MPPR5%nm1c1*3^M?cVXlTkp?+T6t+1RtzOPn35EUwzlsYl@gM+VxiQ2yl)XQst4#e@au5eIa8Te*_{HnX zWq0yzCfsAqcjFe|@GBngEIadPkKXV^4xqQr^!B|ty0YUgkeR}2Aw2I(=&WxX@Sz;U zab7jlgK&8HP*0p-F)|NFdD{{kZzD%}xl&#z#4#Uy;uXR>%}aZCUaQg56}KS+c!&ot z@nPFTP7@TK<7dsl#Cl4DpC3Nk-rjyK>M*?l=^m|q=}VjH7PC!P$L^R67U08DU3Ydo z3j2;Os*f)hN@)o&s*a+;imqwE7|Oxa)8#z+!jhV$)lDnRjLSt!i^$0)2CBInJPot$IVP~3 z;@HBrR8BjE#wlMrb;;DJQ!Yg-hW8L+%;T;+x zPB?yhc0I+p5aQ_V3cOoM;~lZwtw?ge9A(Vn1*#Ef#@I;ND@LS|m(GL_E|bgQ(+(j` zTP-bXe36nQ`zp|E%HzK0`?Hy?kcVN<5W2XWMZ|MOP{;BdI_*BzCJx9;;!IyoO5>0j z6=xI8QDg%StRi9iX#Mvn9yOxUR z?IhVbBHxDQM>u^xg4(7d2&ef9W44gH6&l$nEF-cOB3}jN{f9ASdFyiT`v`JtIFjf2V{Hw*2mE1*CV@QukR|ssqDd@ zuN?g4T?0Q~`8sY}vE^=VrpU4Jhj2#*)L4`mi;)+?ieXd89EU}=sK1G_!3&uin@j8A zu6`dhTH5#N!q9ypNWWhY#xzZk=mZU5IDP|uZ5WT5RGxVrjE?5x}JNEnGqQ|+6<2$yGs;u}C(#Fl`?f%RejmG<3gmTWCg z+a?r0mtb>Hz%XC6SHz?Q_@D%&%qD^mXfL~p^(Bd5LjjA1UGtDFZPjfc3Q_l9AUIU- zZ4w>@R*VhTSRM3;ZIU|kO=D?QP^(In?5?nh@`=i(nBVZg!)U*~gw`25OiUK+3c3~pH?>mjl> z_bn=GT%-i8WPSvCdt*gxfRQs>@k>P0_;`^~FH(>TK+5s88!alVLxSfGBs;@l+;zhn zc(#-vVmZEchn8NkuMwB=B7h%aMWY~=thslv4)PsKjpR$%U&NaE%t zvTbf*HGFTSbGFk8w#RyUQc77?!3Uy#g7Pv|FbG@=-v}p^@bDWeBW<&(c&W?kpmo zw)s*9#yITJVsR(+57=Sv>E+|R!wW({*1DP@bNO4pujy_+wOIyPZ)fOMZ9RmR@*yxxG| z9h09;^}6Ct%qwmnJ?5c<8CA(~l|Vc0LYN*q)QshTcDX4PxP!Re3l@cYc~L@_(nM(E zoSBuQ_uzCD<_9lfTB9-j{xR@cK@uwoq<9$1r07;UZA5`>mJj#a8XfdWLSb_9@lN);Cjdy-=T2GR?bY8!6e z!7F(i?q-HL7?@!^E-14@+Z9Yap9V``qMSfZ$ zd0$fpRNFBf_m*wus~5a+gkxV-c{jQXzUBC-r%h0#Gl?|ugOP`A8F;Z$y^1Np%TP+wVLfDKa@mq zy3HoQ{&L#Brqg{?CKEPSBbls${wP+(Hds$`K*edBMGa&xe0Oed&}e0XXki0=}5rUgZJB}k+n7^jN0 z$O9`Fexo@r=BjKv9h5nqU}0gir(RQ?6E8MxTGs14BWveuRe|kpV{OSdwjZFW=KJpRou;F1pz5BD#$EJ zbUuDxAmNzFAm4T$>#q(Wk;F*`MpkUAX z=c>06cc*#qRP+BT)wuu6k<{}^y!hl_StBw8o4OLdkj!+T<$rI3(r_* z4mVv*8;~`@g=Vlje|`2U2U+1F&vB4Z7b)iUc)+S~p)()fnK7m*s7spZ+Ip^&uC0aX zV67$Ga}`&HHr$R*p|da2IZ*WU4{l#S;f+@?1sNEJ^|QZ#E^h!Y8;k6&{0n-KMQr8e z>oC5S=+|?JY5?JEr6h{0^pL2C+z}LccY-XI!qUzbJ_+*RC)cW%c1h^8_bJSv2k-FI z1`O7RbY({B0cr!5a|clpCBH{X{#wB*nR=FCCxDH=c1Rdsd<(4RM7@;+QfQ%-Iz>Sg zw>+2FWl$zSwX&)TH+f@tOYE>6bYr}MR~fvYzDvx^I%Tvgc7#%O#fJF@$#~v^U1HaO z<}ms8U82>)GVYvl6r=770%*KHfhFEy5Qeg)20#k(eX_0^*#z*28}5SJ@YQ7Vkx-K{ z$lg-1SCbRfHX#*6dBLK6+k9!W03`g^PYk-pR>O<_167@&TTe?jLC&jQ}F8Rr; zE9mesqn3`P2hm_&`T#OUlcP{`0&mDynDj;^*Qq?Y*LlRl-YCim7o4iJSW$#U&c>%H z1$pUi&@Kzna&0ll(gsA-LK%__ydn4Ho8_g!^)Hw*<}l4vS&U}n8hLx$tk$pudlb|K ziyh*^=<${buC_dmGMVbhv?&ulCzK-@avy2sbuFp^?!|}(j_5b5wR{h2JRWRgj?mzT;x%^##UA)R8d<>|V&lVg>R}MQL!`Tbdu_O0%R1zN>7GOC0K0{x~>y9nGd=q6f}E9_!JYH(8*UBQ4A2`!;v&211Oz4$eTpaSW_2(8j?>V7;a) zBI9BrCKOsoG3aGtIoJ>| zMaX&h^j0r1;x?0VMLcl;FFrBy{CE}@zDv3Zgd*lr%cw#=*$lvvOzQ(Ju0R4

Fz6 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

cZYl4;W&Y+X}6;F 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 S<3#jU!$}Djt2gL(TE74Ww*)@` literal 605402 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ⅇW3b{7UP^6?1=P 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®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 JH}pNU{|6^6614yT diff --git a/engine/libs/mingw-libs/png.h b/engine/libs/mingw-libs/png.h index 0af42b170..0071c1686 100755 --- a/engine/libs/mingw-libs/png.h +++ b/engine/libs/mingw-libs/png.h @@ -1,8 +1,8 @@ /* png.h - header file for PNG reference library * - * libpng version 1.5.2 - March 31, 2011 - * Copyright (c) 1998-2011 Glenn Randers-Pehrson + * libpng version 1.6.13 - August 21, 2014 + * Copyright (c) 1998-2014 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * @@ -11,7 +11,7 @@ * Authors and maintainers: * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.5.2 - March 31, 2011: Glenn + * libpng versions 0.97, January 1998, through 1.6.13 - August 21, 2014: Glenn * See also "Contributing Authors", below. * * Note about libpng version numbers: @@ -150,6 +150,59 @@ * 1.5.2beta01-03 15 10502 15.so.15.2[.0] * 1.5.2rc01-03 15 10502 15.so.15.2[.0] * 1.5.2 15 10502 15.so.15.2[.0] + * 1.5.3beta01-10 15 10503 15.so.15.3[.0] + * 1.5.3rc01-02 15 10503 15.so.15.3[.0] + * 1.5.3beta11 15 10503 15.so.15.3[.0] + * 1.5.3 [omitted] + * 1.5.4beta01-08 15 10504 15.so.15.4[.0] + * 1.5.4rc01 15 10504 15.so.15.4[.0] + * 1.5.4 15 10504 15.so.15.4[.0] + * 1.5.5beta01-08 15 10505 15.so.15.5[.0] + * 1.5.5rc01 15 10505 15.so.15.5[.0] + * 1.5.5 15 10505 15.so.15.5[.0] + * 1.5.6beta01-07 15 10506 15.so.15.6[.0] + * 1.5.6rc01-03 15 10506 15.so.15.6[.0] + * 1.5.6 15 10506 15.so.15.6[.0] + * 1.5.7beta01-05 15 10507 15.so.15.7[.0] + * 1.5.7rc01-03 15 10507 15.so.15.7[.0] + * 1.5.7 15 10507 15.so.15.7[.0] + * 1.6.0beta01-40 16 10600 16.so.16.0[.0] + * 1.6.0rc01-08 16 10600 16.so.16.0[.0] + * 1.6.0 16 10600 16.so.16.0[.0] + * 1.6.1beta01-09 16 10601 16.so.16.1[.0] + * 1.6.1rc01 16 10601 16.so.16.1[.0] + * 1.6.1 16 10601 16.so.16.1[.0] + * 1.6.2beta01 16 10602 16.so.16.2[.0] + * 1.6.2rc01-06 16 10602 16.so.16.2[.0] + * 1.6.2 16 10602 16.so.16.2[.0] + * 1.6.3beta01-11 16 10603 16.so.16.3[.0] + * 1.6.3rc01 16 10603 16.so.16.3[.0] + * 1.6.3 16 10603 16.so.16.3[.0] + * 1.6.4beta01-02 16 10604 16.so.16.4[.0] + * 1.6.4rc01 16 10604 16.so.16.4[.0] + * 1.6.4 16 10604 16.so.16.4[.0] + * 1.6.5 16 10605 16.so.16.5[.0] + * 1.6.6 16 10606 16.so.16.6[.0] + * 1.6.7beta01-04 16 10607 16.so.16.7[.0] + * 1.6.7rc01-03 16 10607 16.so.16.7[.0] + * 1.6.7 16 10607 16.so.16.7[.0] + * 1.6.8beta01-02 16 10608 16.so.16.8[.0] + * 1.6.8rc01-02 16 10608 16.so.16.8[.0] + * 1.6.8 16 10608 16.so.16.8[.0] + * 1.6.9beta01-04 16 10609 16.so.16.9[.0] + * 1.6.9rc01-02 16 10609 16.so.16.9[.0] + * 1.6.9 16 10609 16.so.16.9[.0] + * 1.6.10beta01-03 16 10610 16.so.16.10[.0] + * 1.6.10rc01-03 16 10610 16.so.16.10[.0] + * 1.6.10 16 10610 16.so.16.10[.0] + * 1.6.11beta01-06 16 10611 16.so.16.11[.0] + * 1.6.11rc01-02 16 10611 16.so.16.11[.0] + * 1.6.11 16 10611 16.so.16.11[.0] + * 1.6.12rc01-03 16 10612 16.so.16.12[.0] + * 1.6.12 16 10612 16.so.16.12[.0] + * 1.6.13beta01-04 16 10613 16.so.16.13[.0] + * 1.6.13rc01-02 16 10613 16.so.16.13[.0] + * 1.6.13 16 10613 16.so.16.13[.0] * * Henceforth the source version will match the shared-library major * and minor numbers; the shared-library major version number will be @@ -159,7 +212,7 @@ * to the source version x.y.z (leading zeros in y and z). Beta versions * were given the previous public release number plus a letter, until * version 1.0.6j; from then on they were given the upcoming public - * release number plus "betaNN" or "rcN". + * release number plus "betaNN" or "rcNN". * * Binary incompatibility exists only when applications make direct access * to the info_ptr or png_ptr members through png.h, and the compiled @@ -181,8 +234,8 @@ * * This code is released under the libpng license. * - * libpng versions 1.2.6, August 15, 2004, through 1.5.2, March 31, 2011, are - * Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are + * libpng versions 1.2.6, August 15, 2004, through 1.6.13, August 21, 2014, are + * Copyright (c) 2004, 2006-2014 Glenn Randers-Pehrson, and are * distributed according to the same disclaimer and license as libpng-1.2.5 * with the following individual added to the list of Contributing Authors: * @@ -293,29 +346,30 @@ * Y2K compliance in libpng: * ========================= * - * March 31, 2011 + * August 21, 2014 * * Since the PNG Development group is an ad-hoc body, we can't make * an official declaration. * * This is your unofficial assurance that libpng from version 0.71 and - * upward through 1.5.2 are Y2K compliant. It is my belief that + * upward through 1.6.13 are Y2K compliant. It is my belief that * earlier versions were also Y2K compliant. * - * Libpng only has three year fields. One is a 2-byte unsigned integer - * that will hold years up to 65535. The other two hold the date in text - * format, and will hold years up to 9999. + * Libpng only has two year fields. One is a 2-byte unsigned integer + * that will hold years up to 65535. The other, which is deprecated, + * holds the date in text format, and will hold years up to 9999. * * The integer is * "png_uint_16 year" in png_time_struct. * - * The strings are - * "png_charp time_buffer" in png_struct and - * "near_time_buffer", which is a local character string in png.c. + * The string is + * "char time_buffer[29]" in png_struct. This is no longer used + * in libpng-1.6.x and will be removed from libpng-1.7.0. * * There are seven time-related functions: - * png.c: png_convert_to_rfc_1123() in png.c - * (formerly png_convert_to_rfc_1152() in error) + * png.c: png_convert_to_rfc_1123_buffer() in png.c + * (formerly png_convert_to_rfc_1123() prior to libpng-1.5.x and + * png_convert_to_rfc_1152() in error prior to libpng-0.98) * png_convert_from_struct_tm() in pngwrite.c, called in pngwrite.c * png_convert_from_time_t() in pngwrite.c * png_get_tIME() in pngget.c @@ -326,8 +380,8 @@ * All handle dates properly in a Y2K environment. The * png_convert_from_time_t() function calls gmtime() to convert from system * clock time, which returns (year - 1900), which we properly convert to - * the full 4-digit year. There is a possibility that applications using - * libpng are not passing 4-digit years into the png_convert_to_rfc_1123() + * the full 4-digit year. There is a possibility that libpng applications + * are not passing 4-digit years into the png_convert_to_rfc_1123_buffer() * function, or that they are incorrectly passing only a 2-digit year * instead of "year - 1900" into the png_convert_from_struct_tm() function, * but this is not under our control. The libpng documentation has always @@ -351,21 +405,27 @@ /* This is not the place to learn how to use libpng. The file libpng-manual.txt * describes how to use libpng, and the file example.c summarizes it * with some code on which to build. This file is useful for looking - * at the actual function definitions and structure components. + * at the actual function definitions and structure components. If that + * file has been stripped from your copy of libpng, you can find it at + * + * + * If you just need to read a PNG file and don't want to read the documentation + * skip to the end of this file and read the section entitled 'simplified API'. */ /* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.5.2" +#define PNG_LIBPNG_VER_STRING "1.6.13" #define PNG_HEADER_VERSION_STRING \ - " libpng version 1.5.2 - March 31, 2011\n" + " libpng version 1.6.13 - August 21, 2014\n" -#define PNG_LIBPNG_VER_SONUM 15 -#define PNG_LIBPNG_VER_DLLNUM 15 +#define PNG_LIBPNG_VER_SONUM 16 +#define PNG_LIBPNG_VER_DLLNUM 16 /* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ #define PNG_LIBPNG_VER_MAJOR 1 -#define PNG_LIBPNG_VER_MINOR 5 -#define PNG_LIBPNG_VER_RELEASE 2 +#define PNG_LIBPNG_VER_MINOR 6 +#define PNG_LIBPNG_VER_RELEASE 13 + /* This should match the numeric part of the final component of * PNG_LIBPNG_VER_STRING, omitting any leading zero: */ @@ -387,7 +447,7 @@ #define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with PNG_LIBPNG_BUILD_PRIVATE */ -#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_BETA +#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE /* Careful here. At one time, Guy wanted to use 082, but that would be octal. * We must not include leading zeros. @@ -395,7 +455,7 @@ * version 1.0.0 was mis-numbered 100 instead of 10000). From * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release */ -#define PNG_LIBPNG_VER 10502 /* 1.5.2 */ +#define PNG_LIBPNG_VER 10613 /* 1.6.13 */ /* Library configuration: these options cannot be changed after * the library has been built. @@ -408,25 +468,7 @@ #endif #ifndef PNG_VERSION_INFO_ONLY -# ifndef PNG_BUILDING_SYMBOL_TABLE - /* - * Standard header files (not needed for the version info or while - * building symbol table -- see scripts/pnglibconf.dfa) - */ -# ifdef PNG_SETJMP_SUPPORTED -# include -# endif - - /* Need the time information for converting tIME chunks, it - * defines struct tm: - */ -# ifdef PNG_CONVERT_tIME_SUPPORTED - /* "time.h" functions are not supported on all operating systems */ -# include -# endif -# endif - -/* Machine specific configuration. */ + /* Machine specific configuration. */ # include "pngconf.h" #endif @@ -475,6 +517,7 @@ extern "C" { * 2. Type definitions (base types are defined in pngconf.h), structure * definitions. * 3. Exported library functions. + * 4. Simplified API. * * The library source code has additional files (principally pngpriv.h) that * allow configuration of the library. @@ -517,7 +560,48 @@ extern "C" { /* This triggers a compiler error in png.c, if png.c and png.h * do not agree upon the version number. */ -typedef char* png_libpng_version_1_5_2; +typedef char* png_libpng_version_1_6_13; + +/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info. + * + * png_struct is the cache of information used while reading or writing a single + * PNG file. One of these is always required, although the simplified API + * (below) hides the creation and destruction of it. + */ +typedef struct png_struct_def png_struct; +typedef const png_struct * png_const_structp; +typedef png_struct * png_structp; +typedef png_struct * * png_structpp; + +/* png_info contains information read from or to be written to a PNG file. One + * or more of these must exist while reading or creating a PNG file. The + * information is not used by libpng during read but is used to control what + * gets written when a PNG file is created. "png_get_" function calls read + * information during read and "png_set_" functions calls write information + * when creating a PNG. + * been moved into a separate header file that is not accessible to + * applications. Read libpng-manual.txt or libpng.3 for more info. + */ +typedef struct png_info_def png_info; +typedef png_info * png_infop; +typedef const png_info * png_const_infop; +typedef png_info * * png_infopp; + +/* Types with names ending 'p' are pointer types. The corresponding types with + * names ending 'rp' are identical pointer types except that the pointer is + * marked 'restrict', which means that it is the only pointer to the object + * passed to the function. Applications should not use the 'restrict' types; + * it is always valid to pass 'p' to a pointer with a function argument of the + * corresponding 'rp' type. Different compilers have different rules with + * regard to type matching in the presence of 'restrict'. For backward + * compatibility libpng callbacks never have 'restrict' in their parameters and, + * consequentially, writing portable application code is extremely difficult if + * an attempt is made to use 'restrict'. + */ +typedef png_struct * PNG_RESTRICT png_structrp; +typedef const png_struct * PNG_RESTRICT png_const_structrp; +typedef png_info * PNG_RESTRICT png_inforp; +typedef const png_info * PNG_RESTRICT png_const_inforp; /* Three color definitions. The order of the red, green, and blue, (and the * exact size) is not important, although the size of the fields need to @@ -529,9 +613,9 @@ typedef struct png_color_struct png_byte green; png_byte blue; } png_color; -typedef png_color FAR * png_colorp; -typedef PNG_CONST png_color FAR * png_const_colorp; -typedef png_color FAR * FAR * png_colorpp; +typedef png_color * png_colorp; +typedef const png_color * png_const_colorp; +typedef png_color * * png_colorpp; typedef struct png_color_16_struct { @@ -541,9 +625,9 @@ typedef struct png_color_16_struct png_uint_16 blue; png_uint_16 gray; /* for use in grayscale files */ } png_color_16; -typedef png_color_16 FAR * png_color_16p; -typedef PNG_CONST png_color_16 FAR * png_const_color_16p; -typedef png_color_16 FAR * FAR * png_color_16pp; +typedef png_color_16 * png_color_16p; +typedef const png_color_16 * png_const_color_16p; +typedef png_color_16 * * png_color_16pp; typedef struct png_color_8_struct { @@ -553,9 +637,9 @@ typedef struct png_color_8_struct png_byte gray; /* for use in grayscale files */ png_byte alpha; /* for alpha channel files */ } png_color_8; -typedef png_color_8 FAR * png_color_8p; -typedef PNG_CONST png_color_8 FAR * png_const_color_8p; -typedef png_color_8 FAR * FAR * png_color_8pp; +typedef png_color_8 * png_color_8p; +typedef const png_color_8 * png_const_color_8p; +typedef png_color_8 * * png_color_8pp; /* * The following two structures are used for the in-core representation @@ -569,9 +653,9 @@ typedef struct png_sPLT_entry_struct png_uint_16 alpha; png_uint_16 frequency; } png_sPLT_entry; -typedef png_sPLT_entry FAR * png_sPLT_entryp; -typedef PNG_CONST png_sPLT_entry FAR * png_const_sPLT_entryp; -typedef png_sPLT_entry FAR * FAR * png_sPLT_entrypp; +typedef png_sPLT_entry * png_sPLT_entryp; +typedef const png_sPLT_entry * png_const_sPLT_entryp; +typedef png_sPLT_entry * * png_sPLT_entrypp; /* When the depth of the sPLT palette is 8 bits, the color and alpha samples * occupy the LSB of their respective members, and the MSB of each member @@ -585,18 +669,27 @@ typedef struct png_sPLT_struct png_sPLT_entryp entries; /* palette entries */ png_int_32 nentries; /* number of palette entries */ } png_sPLT_t; -typedef png_sPLT_t FAR * png_sPLT_tp; -typedef PNG_CONST png_sPLT_t FAR * png_const_sPLT_tp; -typedef png_sPLT_t FAR * FAR * png_sPLT_tpp; +typedef png_sPLT_t * png_sPLT_tp; +typedef const png_sPLT_t * png_const_sPLT_tp; +typedef png_sPLT_t * * png_sPLT_tpp; #ifdef PNG_TEXT_SUPPORTED /* png_text holds the contents of a text/ztxt/itxt chunk in a PNG file, * and whether that contents is compressed or not. The "key" field - * points to a regular zero-terminated C string. The "text", "lang", and - * "lang_key" fields can be regular C strings, empty strings, or NULL pointers. - * However, the * structure returned by png_get_text() will always contain - * regular zero-terminated C strings (possibly empty), never NULL pointers, - * so they can be safely used in printf() and other string-handling functions. + * points to a regular zero-terminated C string. The "text" fields can be a + * regular C string, an empty string, or a NULL pointer. + * However, the structure returned by png_get_text() will always contain + * the "text" field as a regular zero-terminated C string (possibly + * empty), never a NULL pointer, so it can be safely used in printf() and + * other string-handling functions. Note that the "itxt_length", "lang", and + * "lang_key" members of the structure only exist when the library is built + * with iTXt chunk support. Prior to libpng-1.4.0 the library was built by + * default without iTXt support. Also note that when iTXt *is* supported, + * the "lang" and "lang_key" fields contain NULL pointers when the + * "compression" field contains * PNG_TEXT_COMPRESSION_NONE or + * PNG_TEXT_COMPRESSION_zTXt. Note that the "compression value" is not the + * same as what appears in the PNG tEXt/zTXt/iTXt chunk's "compression flag" + * which is always 0 or 1, or its "compression method" which is always 0. */ typedef struct png_text_struct { @@ -615,9 +708,9 @@ typedef struct png_text_struct png_charp lang_key; /* keyword translated UTF-8 string, 0 or more chars or a NULL pointer */ } png_text; -typedef png_text FAR * png_textp; -typedef PNG_CONST png_text FAR * png_const_textp; -typedef png_text FAR * FAR * png_textpp; +typedef png_text * png_textp; +typedef const png_text * png_const_textp; +typedef png_text * * png_textpp; #endif /* Supported compression types for text in PNG files (tEXt, and zTXt). @@ -645,36 +738,44 @@ typedef struct png_time_struct png_byte minute; /* minute of hour, 0 - 59 */ png_byte second; /* second of minute, 0 - 60 (for leap seconds) */ } png_time; -typedef png_time FAR * png_timep; -typedef PNG_CONST png_time FAR * png_const_timep; -typedef png_time FAR * FAR * png_timepp; +typedef png_time * png_timep; +typedef const png_time * png_const_timep; +typedef png_time * * png_timepp; -#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \ - defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED) +#if defined(PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED) ||\ + defined(PNG_USER_CHUNKS_SUPPORTED) /* png_unknown_chunk is a structure to hold queued chunks for which there is * no specific support. The idea is that we can use this to queue * up private chunks for output even though the library doesn't actually * know about their semantics. + * + * The data in the structure is set by libpng on read and used on write. */ typedef struct png_unknown_chunk_t { - png_byte name[5]; - png_byte *data; + png_byte name[5]; /* Textual chunk name with '\0' terminator */ + png_byte *data; /* Data, should not be modified on read! */ png_size_t size; - /* libpng-using applications should NOT directly modify this byte. */ + /* On write 'location' must be set using the flag values listed below. + * Notice that on read it is set by libpng however the values stored have + * more bits set than are listed below. Always treat the value as a + * bitmask. On write set only one bit - setting multiple bits may cause the + * chunk to be written in multiple places. + */ png_byte location; /* mode of operation at read time */ } png_unknown_chunk; -typedef png_unknown_chunk FAR * png_unknown_chunkp; -typedef PNG_CONST png_unknown_chunk FAR * png_const_unknown_chunkp; -typedef png_unknown_chunk FAR * FAR * png_unknown_chunkpp; + +typedef png_unknown_chunk * png_unknown_chunkp; +typedef const png_unknown_chunk * png_const_unknown_chunkp; +typedef png_unknown_chunk * * png_unknown_chunkpp; #endif -typedef struct png_info_def png_info; -typedef png_info FAR * png_infop; -typedef PNG_CONST png_info FAR * png_const_infop; -typedef png_info FAR * FAR * png_infopp; +/* Flag values for the unknown chunk location byte. */ +#define PNG_HAVE_IHDR 0x01 +#define PNG_HAVE_PLTE 0x02 +#define PNG_AFTER_IDAT 0x08 /* Maximum positive integer used in PNG is (2^31)-1 */ #define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL) @@ -686,6 +787,8 @@ typedef png_info FAR * FAR * png_infopp; */ #define PNG_FP_1 100000 #define PNG_FP_HALF 50000 +#define PNG_FP_MAX ((png_fixed_point)0x7fffffffL) +#define PNG_FP_MIN (-PNG_FP_MAX) /* These describe the color_type field in png_info. */ /* color type masks */ @@ -773,7 +876,7 @@ typedef png_info FAR * FAR * png_infopp; #define PNG_INFO_iCCP 0x1000 /* ESR, 1.0.6 */ #define PNG_INFO_sPLT 0x2000 /* ESR, 1.0.6 */ #define PNG_INFO_sCAL 0x4000 /* ESR, 1.0.6 */ -#define PNG_INFO_IDAT 0x8000L /* ESR, 1.0.6 */ +#define PNG_INFO_IDAT 0x8000 /* ESR, 1.0.6 */ /* This is used for the transformation routines, as some of them * change these values for the row. It also should enable using @@ -789,8 +892,8 @@ typedef struct png_row_info_struct png_byte pixel_depth; /* bits per pixel (depth * channels) */ } png_row_info; -typedef png_row_info FAR * png_row_infop; -typedef png_row_info FAR * FAR * png_row_infopp; +typedef png_row_info * png_row_infop; +typedef png_row_info * * png_row_infopp; /* These are the function types for the I/O functions and for the functions * that allow the user to override the default I/O functions with his or her @@ -800,10 +903,6 @@ typedef png_row_info FAR * FAR * png_row_infopp; * modify the buffer it is passed. The 'read' function, on the other hand, is * expected to return the read data in the buffer. */ -typedef struct png_struct_def png_struct; -typedef PNG_CONST png_struct FAR * png_const_structp; -typedef png_struct FAR * png_structp; - typedef PNG_CALLBACK(void, *png_error_ptr, (png_structp, png_const_charp)); typedef PNG_CALLBACK(void, *png_rw_ptr, (png_structp, png_bytep, png_size_t)); typedef PNG_CALLBACK(void, *png_flush_ptr, (png_structp)); @@ -841,29 +940,23 @@ typedef PNG_CALLBACK(int, *png_user_chunk_ptr, (png_structp, png_unknown_chunkp)); #endif #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED -typedef PNG_CALLBACK(void, *png_unknown_chunk_ptr, (png_structp)); +/* not used anywhere */ +/* typedef PNG_CALLBACK(void, *png_unknown_chunk_ptr, (png_structp)); */ #endif #ifdef PNG_SETJMP_SUPPORTED -/* This must match the function definition in , and the - * application must include this before png.h to obtain the definition - * of jmp_buf. The function is required to be PNG_NORETURN. (Note that - * PNG_PTR_NORETURN is used here because current versions of the Microsoft - * C compiler do not support the PNG_NORETURN attribute on a pointer.) +/* This must match the function definition in , and the application + * must include this before png.h to obtain the definition of jmp_buf. The + * function is required to be PNG_NORETURN, but this is not checked. If the + * function does return the application will crash via an abort() or similar + * system level call. * - * If you get a type warning from the compiler when linking against this line - * then your compiler has 'longjmp' that does not match the requirements of the - * compiler that built libpng. You will have to write a wrapper function for - * your compiler's longjmp and call png_set_longjmp_fn directly (not via the - * png_jmpbuf macro.) - * - * If you get a warning here while building the library you will need to make + * If you get a warning here while building the library you may need to make * changes to ensure that pnglibconf.h records the calling convention used by * your compiler. This may be very difficult - try using a different compiler * to build the library! */ -typedef PNG_FUNCTION(void, (PNGCAPI *png_longjmp_ptr), PNGARG((jmp_buf, int)), - PNG_PTR_NORETURN); +PNG_FUNCTION(void, (PNGCAPI *png_longjmp_ptr), PNGARG((jmp_buf, int)), typedef); #endif /* Transform masks for the high-level interface */ @@ -885,6 +978,9 @@ typedef PNG_FUNCTION(void, (PNGCAPI *png_longjmp_ptr), PNGARG((jmp_buf, int)), #define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */ /* Added to libpng-1.4.0 */ #define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 /* read only */ +/* Added to libpng-1.5.4 */ +#define PNG_TRANSFORM_EXPAND_16 0x4000 /* read only */ +#define PNG_TRANSFORM_SCALE_16 0x8000 /* read only */ /* Flags for MNG supported features */ #define PNG_FLAG_MNG_EMPTY_PLTE 0x01 @@ -901,8 +997,6 @@ typedef PNG_CALLBACK(png_voidp, *png_malloc_ptr, (png_structp, png_alloc_size_t)); typedef PNG_CALLBACK(void, *png_free_ptr, (png_structp, png_voidp)); -typedef png_struct FAR * FAR * png_structpp; - /* Section 3: exported functions * Here are the function definitions most commonly used. This is not * the place to find out how to use libpng. See libpng-manual.txt for the @@ -938,7 +1032,7 @@ PNG_EXPORT(1, png_uint_32, png_access_version_number, (void)); /* Tell lib we have already handled the first magic bytes. * Handling more than 8 bytes from the beginning of the file is an error. */ -PNG_EXPORT(2, void, png_set_sig_bytes, (png_structp png_ptr, int num_bytes)); +PNG_EXPORT(2, void, png_set_sig_bytes, (png_structrp png_ptr, int num_bytes)); /* Check sig[start] through sig[start + num_to_check - 1] to see if it's a * PNG file. Returns zero if the supplied bytes match the 8-byte PNG @@ -966,9 +1060,9 @@ PNG_EXPORTA(5, png_structp, png_create_write_struct, PNG_ALLOCATED); PNG_EXPORT(6, png_size_t, png_get_compression_buffer_size, - (png_const_structp png_ptr)); + (png_const_structrp png_ptr)); -PNG_EXPORT(7, void, png_set_compression_buffer_size, (png_structp png_ptr, +PNG_EXPORT(7, void, png_set_compression_buffer_size, (png_structrp png_ptr, png_size_t size)); /* Moved from pngconf.h in 1.4.0 and modified to ensure setjmp/longjmp @@ -982,10 +1076,10 @@ PNG_EXPORT(7, void, png_set_compression_buffer_size, (png_structp png_ptr, * allocated by the library - the call will return NULL on a mismatch * indicating an ABI mismatch. */ -PNG_EXPORT(8, jmp_buf*, png_set_longjmp_fn, (png_structp png_ptr, +PNG_EXPORT(8, jmp_buf*, png_set_longjmp_fn, (png_structrp png_ptr, png_longjmp_ptr longjmp_fn, size_t jmp_buf_size)); # define png_jmpbuf(png_ptr) \ - (*png_set_longjmp_fn((png_ptr), longjmp, sizeof (jmp_buf))) + (*png_set_longjmp_fn((png_ptr), longjmp, (sizeof (jmp_buf)))) #else # define png_jmpbuf(png_ptr) \ (LIBPNG_WAS_COMPILED_WITH__PNG_NO_SETJMP) @@ -995,12 +1089,12 @@ PNG_EXPORT(8, jmp_buf*, png_set_longjmp_fn, (png_structp png_ptr, * will use it; otherwise it will call PNG_ABORT(). This function was * added in libpng-1.5.0. */ -PNG_EXPORTA(9, void, png_longjmp, (png_structp png_ptr, int val), +PNG_EXPORTA(9, void, png_longjmp, (png_const_structrp png_ptr, int val), PNG_NORETURN); #ifdef PNG_READ_SUPPORTED /* Reset the compression stream */ -PNG_EXPORT(10, int, png_reset_zstream, (png_structp png_ptr)); +PNG_EXPORTA(10, int, png_reset_zstream, (png_structrp png_ptr), PNG_DEPRECATED); #endif /* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */ @@ -1018,143 +1112,294 @@ PNG_EXPORTA(12, png_structp, png_create_write_struct_2, #endif /* Write the PNG file signature. */ -PNG_EXPORT(13, void, png_write_sig, (png_structp png_ptr)); +PNG_EXPORT(13, void, png_write_sig, (png_structrp png_ptr)); /* Write a PNG chunk - size, type, (optional) data, CRC. */ -PNG_EXPORT(14, void, png_write_chunk, (png_structp png_ptr, png_const_bytep +PNG_EXPORT(14, void, png_write_chunk, (png_structrp png_ptr, png_const_bytep chunk_name, png_const_bytep data, png_size_t length)); /* Write the start of a PNG chunk - length and chunk name. */ -PNG_EXPORT(15, void, png_write_chunk_start, (png_structp png_ptr, +PNG_EXPORT(15, void, png_write_chunk_start, (png_structrp png_ptr, png_const_bytep chunk_name, png_uint_32 length)); /* Write the data of a PNG chunk started with png_write_chunk_start(). */ -PNG_EXPORT(16, void, png_write_chunk_data, (png_structp png_ptr, +PNG_EXPORT(16, void, png_write_chunk_data, (png_structrp png_ptr, png_const_bytep data, png_size_t length)); /* Finish a chunk started with png_write_chunk_start() (includes CRC). */ -PNG_EXPORT(17, void, png_write_chunk_end, (png_structp png_ptr)); +PNG_EXPORT(17, void, png_write_chunk_end, (png_structrp png_ptr)); /* Allocate and initialize the info structure */ -PNG_EXPORTA(18, png_infop, png_create_info_struct, (png_structp png_ptr), +PNG_EXPORTA(18, png_infop, png_create_info_struct, (png_const_structrp png_ptr), PNG_ALLOCATED); -PNG_EXPORT(19, void, png_info_init_3, (png_infopp info_ptr, - png_size_t png_info_struct_size)); +/* DEPRECATED: this function allowed init structures to be created using the + * default allocation method (typically malloc). Use is deprecated in 1.6.0 and + * the API will be removed in the future. + */ +PNG_EXPORTA(19, void, png_info_init_3, (png_infopp info_ptr, + png_size_t png_info_struct_size), PNG_DEPRECATED); /* Writes all the PNG information before the image. */ PNG_EXPORT(20, void, png_write_info_before_PLTE, - (png_structp png_ptr, png_infop info_ptr)); + (png_structrp png_ptr, png_const_inforp info_ptr)); PNG_EXPORT(21, void, png_write_info, - (png_structp png_ptr, png_infop info_ptr)); + (png_structrp png_ptr, png_const_inforp info_ptr)); #ifdef PNG_SEQUENTIAL_READ_SUPPORTED /* Read the information before the actual image data. */ PNG_EXPORT(22, void, png_read_info, - (png_structp png_ptr, png_infop info_ptr)); + (png_structrp png_ptr, png_inforp info_ptr)); #endif #ifdef PNG_TIME_RFC1123_SUPPORTED -PNG_EXPORT(23, png_const_charp, png_convert_to_rfc1123, - (png_structp png_ptr, + /* Convert to a US string format: there is no localization support in this + * routine. The original implementation used a 29 character buffer in + * png_struct, this will be removed in future versions. + */ +#if PNG_LIBPNG_VER < 10700 +/* To do: remove this from libpng17 (and from libpng17/png.c and pngstruct.h) */ +PNG_EXPORTA(23, png_const_charp, png_convert_to_rfc1123, (png_structrp png_ptr, + png_const_timep ptime),PNG_DEPRECATED); +#endif +PNG_EXPORT(241, int, png_convert_to_rfc1123_buffer, (char out[29], png_const_timep ptime)); #endif #ifdef PNG_CONVERT_tIME_SUPPORTED /* Convert from a struct tm to png_time */ PNG_EXPORT(24, void, png_convert_from_struct_tm, (png_timep ptime, - PNG_CONST struct tm FAR * ttime)); + const struct tm * ttime)); /* Convert from time_t to png_time. Uses gmtime() */ -PNG_EXPORT(25, void, png_convert_from_time_t, - (png_timep ptime, time_t ttime)); +PNG_EXPORT(25, void, png_convert_from_time_t, (png_timep ptime, time_t ttime)); #endif /* PNG_CONVERT_tIME_SUPPORTED */ #ifdef PNG_READ_EXPAND_SUPPORTED /* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */ -PNG_EXPORT(26, void, png_set_expand, (png_structp png_ptr)); -PNG_EXPORT(27, void, png_set_expand_gray_1_2_4_to_8, (png_structp png_ptr)); -PNG_EXPORT(28, void, png_set_palette_to_rgb, (png_structp png_ptr)); -PNG_EXPORT(29, void, png_set_tRNS_to_alpha, (png_structp png_ptr)); +PNG_EXPORT(26, void, png_set_expand, (png_structrp png_ptr)); +PNG_EXPORT(27, void, png_set_expand_gray_1_2_4_to_8, (png_structrp png_ptr)); +PNG_EXPORT(28, void, png_set_palette_to_rgb, (png_structrp png_ptr)); +PNG_EXPORT(29, void, png_set_tRNS_to_alpha, (png_structrp png_ptr)); #endif #ifdef PNG_READ_EXPAND_16_SUPPORTED -/* Expand to 16 bit channels, forces conversion of palette to RGB and expansion +/* Expand to 16-bit channels, forces conversion of palette to RGB and expansion * of a tRNS chunk if present. */ -PNG_EXPORT(221, void, png_set_expand_16, (png_structp png_ptr)); +PNG_EXPORT(221, void, png_set_expand_16, (png_structrp png_ptr)); #endif #if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) /* Use blue, green, red order for pixels. */ -PNG_EXPORT(30, void, png_set_bgr, (png_structp png_ptr)); +PNG_EXPORT(30, void, png_set_bgr, (png_structrp png_ptr)); #endif #ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED /* Expand the grayscale to 24-bit RGB if necessary. */ -PNG_EXPORT(31, void, png_set_gray_to_rgb, (png_structp png_ptr)); +PNG_EXPORT(31, void, png_set_gray_to_rgb, (png_structrp png_ptr)); #endif #ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED /* Reduce RGB to grayscale. */ -PNG_FP_EXPORT(32, void, png_set_rgb_to_gray, (png_structp png_ptr, - int error_action, double red, double green)); -PNG_FIXED_EXPORT(33, void, png_set_rgb_to_gray_fixed, (png_structp png_ptr, - int error_action, png_fixed_point red, png_fixed_point green)); +#define PNG_ERROR_ACTION_NONE 1 +#define PNG_ERROR_ACTION_WARN 2 +#define PNG_ERROR_ACTION_ERROR 3 +#define PNG_RGB_TO_GRAY_DEFAULT (-1)/*for red/green coefficients*/ -PNG_EXPORT(34, png_byte, png_get_rgb_to_gray_status, (png_const_structp +PNG_FP_EXPORT(32, void, png_set_rgb_to_gray, (png_structrp png_ptr, + int error_action, double red, double green)) +PNG_FIXED_EXPORT(33, void, png_set_rgb_to_gray_fixed, (png_structrp png_ptr, + int error_action, png_fixed_point red, png_fixed_point green)) + +PNG_EXPORT(34, png_byte, png_get_rgb_to_gray_status, (png_const_structrp png_ptr)); #endif +#ifdef PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED PNG_EXPORT(35, void, png_build_grayscale_palette, (int bit_depth, png_colorp palette)); +#endif + +#ifdef PNG_READ_ALPHA_MODE_SUPPORTED +/* How the alpha channel is interpreted - this affects how the color channels + * of a PNG file are returned to the calling application when an alpha channel, + * or a tRNS chunk in a palette file, is present. + * + * This has no effect on the way pixels are written into a PNG output + * datastream. The color samples in a PNG datastream are never premultiplied + * with the alpha samples. + * + * The default is to return data according to the PNG specification: the alpha + * channel is a linear measure of the contribution of the pixel to the + * corresponding composited pixel, and the color channels are unassociated + * (not premultiplied). The gamma encoded color channels must be scaled + * according to the contribution and to do this it is necessary to undo + * the encoding, scale the color values, perform the composition and reencode + * the values. This is the 'PNG' mode. + * + * The alternative is to 'associate' the alpha with the color information by + * storing color channel values that have been scaled by the alpha. + * image. These are the 'STANDARD', 'ASSOCIATED' or 'PREMULTIPLIED' modes + * (the latter being the two common names for associated alpha color channels). + * + * For the 'OPTIMIZED' mode, a pixel is treated as opaque only if the alpha + * value is equal to the maximum value. + * + * The final choice is to gamma encode the alpha channel as well. This is + * broken because, in practice, no implementation that uses this choice + * correctly undoes the encoding before handling alpha composition. Use this + * choice only if other serious errors in the software or hardware you use + * mandate it; the typical serious error is for dark halos to appear around + * opaque areas of the composited PNG image because of arithmetic overflow. + * + * The API function png_set_alpha_mode specifies which of these choices to use + * with an enumerated 'mode' value and the gamma of the required output: + */ +#define PNG_ALPHA_PNG 0 /* according to the PNG standard */ +#define PNG_ALPHA_STANDARD 1 /* according to Porter/Duff */ +#define PNG_ALPHA_ASSOCIATED 1 /* as above; this is the normal practice */ +#define PNG_ALPHA_PREMULTIPLIED 1 /* as above */ +#define PNG_ALPHA_OPTIMIZED 2 /* 'PNG' for opaque pixels, else 'STANDARD' */ +#define PNG_ALPHA_BROKEN 3 /* the alpha channel is gamma encoded */ + +PNG_FP_EXPORT(227, void, png_set_alpha_mode, (png_structrp png_ptr, int mode, + double output_gamma)) +PNG_FIXED_EXPORT(228, void, png_set_alpha_mode_fixed, (png_structrp png_ptr, + int mode, png_fixed_point output_gamma)) +#endif + +#if defined(PNG_GAMMA_SUPPORTED) || defined(PNG_READ_ALPHA_MODE_SUPPORTED) +/* The output_gamma value is a screen gamma in libpng terminology: it expresses + * how to decode the output values, not how they are encoded. + */ +#define PNG_DEFAULT_sRGB -1 /* sRGB gamma and color space */ +#define PNG_GAMMA_MAC_18 -2 /* Old Mac '1.8' gamma and color space */ +#define PNG_GAMMA_sRGB 220000 /* Television standards--matches sRGB gamma */ +#define PNG_GAMMA_LINEAR PNG_FP_1 /* Linear */ +#endif + +/* The following are examples of calls to png_set_alpha_mode to achieve the + * required overall gamma correction and, where necessary, alpha + * premultiplication. + * + * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB); + * This is the default libpng handling of the alpha channel - it is not + * pre-multiplied into the color components. In addition the call states + * that the output is for a sRGB system and causes all PNG files without gAMA + * chunks to be assumed to be encoded using sRGB. + * + * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC); + * In this case the output is assumed to be something like an sRGB conformant + * display preceeded by a power-law lookup table of power 1.45. This is how + * early Mac systems behaved. + * + * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_GAMMA_LINEAR); + * This is the classic Jim Blinn approach and will work in academic + * environments where everything is done by the book. It has the shortcoming + * of assuming that input PNG data with no gamma information is linear - this + * is unlikely to be correct unless the PNG files where generated locally. + * Most of the time the output precision will be so low as to show + * significant banding in dark areas of the image. + * + * png_set_expand_16(pp); + * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_DEFAULT_sRGB); + * This is a somewhat more realistic Jim Blinn inspired approach. PNG files + * are assumed to have the sRGB encoding if not marked with a gamma value and + * the output is always 16 bits per component. This permits accurate scaling + * and processing of the data. If you know that your input PNG files were + * generated locally you might need to replace PNG_DEFAULT_sRGB with the + * correct value for your system. + * + * png_set_alpha_mode(pp, PNG_ALPHA_OPTIMIZED, PNG_DEFAULT_sRGB); + * If you just need to composite the PNG image onto an existing background + * and if you control the code that does this you can use the optimization + * setting. In this case you just copy completely opaque pixels to the + * output. For pixels that are not completely transparent (you just skip + * those) you do the composition math using png_composite or png_composite_16 + * below then encode the resultant 8-bit or 16-bit values to match the output + * encoding. + * + * Other cases + * If neither the PNG nor the standard linear encoding work for you because + * of the software or hardware you use then you have a big problem. The PNG + * case will probably result in halos around the image. The linear encoding + * will probably result in a washed out, too bright, image (it's actually too + * contrasty.) Try the ALPHA_OPTIMIZED mode above - this will probably + * substantially reduce the halos. Alternatively try: + * + * png_set_alpha_mode(pp, PNG_ALPHA_BROKEN, PNG_DEFAULT_sRGB); + * This option will also reduce the halos, but there will be slight dark + * halos round the opaque parts of the image where the background is light. + * In the OPTIMIZED mode the halos will be light halos where the background + * is dark. Take your pick - the halos are unavoidable unless you can get + * your hardware/software fixed! (The OPTIMIZED approach is slightly + * faster.) + * + * When the default gamma of PNG files doesn't match the output gamma. + * If you have PNG files with no gamma information png_set_alpha_mode allows + * you to provide a default gamma, but it also sets the ouput gamma to the + * matching value. If you know your PNG files have a gamma that doesn't + * match the output you can take advantage of the fact that + * png_set_alpha_mode always sets the output gamma but only sets the PNG + * default if it is not already set: + * + * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB); + * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC); + * The first call sets both the default and the output gamma values, the + * second call overrides the output gamma without changing the default. This + * is easier than achieving the same effect with png_set_gamma. You must use + * PNG_ALPHA_PNG for the first call - internal checking in png_set_alpha will + * fire if more than one call to png_set_alpha_mode and png_set_background is + * made in the same read operation, however multiple calls with PNG_ALPHA_PNG + * are ignored. + */ #ifdef PNG_READ_STRIP_ALPHA_SUPPORTED -PNG_EXPORT(36, void, png_set_strip_alpha, (png_structp png_ptr)); +PNG_EXPORT(36, void, png_set_strip_alpha, (png_structrp png_ptr)); #endif #if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) -PNG_EXPORT(37, void, png_set_swap_alpha, (png_structp png_ptr)); +PNG_EXPORT(37, void, png_set_swap_alpha, (png_structrp png_ptr)); #endif #if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) -PNG_EXPORT(38, void, png_set_invert_alpha, (png_structp png_ptr)); +PNG_EXPORT(38, void, png_set_invert_alpha, (png_structrp png_ptr)); #endif #if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) /* Add a filler byte to 8-bit Gray or 24-bit RGB images. */ -PNG_EXPORT(39, void, png_set_filler, (png_structp png_ptr, png_uint_32 filler, +PNG_EXPORT(39, void, png_set_filler, (png_structrp png_ptr, png_uint_32 filler, int flags)); /* The values of the PNG_FILLER_ defines should NOT be changed */ # define PNG_FILLER_BEFORE 0 # define PNG_FILLER_AFTER 1 /* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */ -PNG_EXPORT(40, void, png_set_add_alpha, - (png_structp png_ptr, png_uint_32 filler, - int flags)); +PNG_EXPORT(40, void, png_set_add_alpha, (png_structrp png_ptr, + png_uint_32 filler, int flags)); #endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */ #if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) /* Swap bytes in 16-bit depth files. */ -PNG_EXPORT(41, void, png_set_swap, (png_structp png_ptr)); +PNG_EXPORT(41, void, png_set_swap, (png_structrp png_ptr)); #endif #if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) /* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */ -PNG_EXPORT(42, void, png_set_packing, (png_structp png_ptr)); +PNG_EXPORT(42, void, png_set_packing, (png_structrp png_ptr)); #endif #if defined(PNG_READ_PACKSWAP_SUPPORTED) || \ defined(PNG_WRITE_PACKSWAP_SUPPORTED) /* Swap packing order of pixels in bytes. */ -PNG_EXPORT(43, void, png_set_packswap, (png_structp png_ptr)); +PNG_EXPORT(43, void, png_set_packswap, (png_structrp png_ptr)); #endif #if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) /* Converts files to legal bit depths. */ -PNG_EXPORT(44, void, png_set_shift, (png_structp png_ptr, png_const_color_8p +PNG_EXPORT(44, void, png_set_shift, (png_structrp png_ptr, png_const_color_8p true_bits)); #endif @@ -1166,22 +1411,26 @@ PNG_EXPORT(44, void, png_set_shift, (png_structp png_ptr, png_const_color_8p * necessary to call png_read_row or png_read_rows png_get_image_height * times for each pass. */ -PNG_EXPORT(45, int, png_set_interlace_handling, (png_structp png_ptr)); +PNG_EXPORT(45, int, png_set_interlace_handling, (png_structrp png_ptr)); #endif #if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) /* Invert monochrome files */ -PNG_EXPORT(46, void, png_set_invert_mono, (png_structp png_ptr)); +PNG_EXPORT(46, void, png_set_invert_mono, (png_structrp png_ptr)); #endif #ifdef PNG_READ_BACKGROUND_SUPPORTED -/* Handle alpha and tRNS by replacing with a background color. */ -PNG_FP_EXPORT(47, void, png_set_background, (png_structp png_ptr, +/* Handle alpha and tRNS by replacing with a background color. Prior to + * libpng-1.5.4 this API must not be called before the PNG file header has been + * read. Doing so will result in unexpected behavior and possible warnings or + * errors if the PNG file contains a bKGD chunk. + */ +PNG_FP_EXPORT(47, void, png_set_background, (png_structrp png_ptr, png_const_color_16p background_color, int background_gamma_code, - int need_expand, double background_gamma)); -PNG_FIXED_EXPORT(215, void, png_set_background_fixed, (png_structp png_ptr, + int need_expand, double background_gamma)) +PNG_FIXED_EXPORT(215, void, png_set_background_fixed, (png_structrp png_ptr, png_const_color_16p background_color, int background_gamma_code, - int need_expand, png_fixed_point background_gamma)); + int need_expand, png_fixed_point background_gamma)) #endif #ifdef PNG_READ_BACKGROUND_SUPPORTED # define PNG_BACKGROUND_GAMMA_UNKNOWN 0 @@ -1190,19 +1439,24 @@ PNG_FIXED_EXPORT(215, void, png_set_background_fixed, (png_structp png_ptr, # define PNG_BACKGROUND_GAMMA_UNIQUE 3 #endif -#ifdef PNG_READ_16_TO_8_SUPPORTED +#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED +/* Scale a 16-bit depth file down to 8-bit, accurately. */ +PNG_EXPORT(229, void, png_set_scale_16, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED +#define PNG_READ_16_TO_8 SUPPORTED /* Name prior to 1.5.4 */ /* Strip the second byte of information from a 16-bit depth file. */ -PNG_EXPORT(48, void, png_set_strip_16, (png_structp png_ptr)); +PNG_EXPORT(48, void, png_set_strip_16, (png_structrp png_ptr)); #endif #ifdef PNG_READ_QUANTIZE_SUPPORTED /* Turn on quantizing, and reduce the palette to the number of colors * available. */ -PNG_EXPORT(49, void, png_set_quantize, - (png_structp png_ptr, png_colorp palette, - int num_palette, int maximum_colors, png_const_uint_16p histogram, - int full_quantize)); +PNG_EXPORT(49, void, png_set_quantize, (png_structrp png_ptr, + png_colorp palette, int num_palette, int maximum_colors, + png_const_uint_16p histogram, int full_quantize)); #endif #ifdef PNG_READ_GAMMA_SUPPORTED @@ -1211,72 +1465,80 @@ PNG_EXPORT(49, void, png_set_quantize, */ #define PNG_GAMMA_THRESHOLD (PNG_GAMMA_THRESHOLD_FIXED*.00001) -/* Handle gamma correction. Screen_gamma=(display_exponent) */ -PNG_FP_EXPORT(50, void, png_set_gamma, - (png_structp png_ptr, double screen_gamma, - double default_file_gamma)); -PNG_FIXED_EXPORT(208, void, png_set_gamma_fixed, (png_structp png_ptr, - png_fixed_point screen_gamma, png_fixed_point default_file_gamma)); +/* Handle gamma correction. Screen_gamma=(display_exponent). + * NOTE: this API simply sets the screen and file gamma values. It will + * therefore override the value for gamma in a PNG file if it is called after + * the file header has been read - use with care - call before reading the PNG + * file for best results! + * + * These routines accept the same gamma values as png_set_alpha_mode (described + * above). The PNG_GAMMA_ defines and PNG_DEFAULT_sRGB can be passed to either + * API (floating point or fixed.) Notice, however, that the 'file_gamma' value + * is the inverse of a 'screen gamma' value. + */ +PNG_FP_EXPORT(50, void, png_set_gamma, (png_structrp png_ptr, + double screen_gamma, double override_file_gamma)) +PNG_FIXED_EXPORT(208, void, png_set_gamma_fixed, (png_structrp png_ptr, + png_fixed_point screen_gamma, png_fixed_point override_file_gamma)) #endif #ifdef PNG_WRITE_FLUSH_SUPPORTED /* Set how many lines between output flushes - 0 for no flushing */ -PNG_EXPORT(51, void, png_set_flush, (png_structp png_ptr, int nrows)); +PNG_EXPORT(51, void, png_set_flush, (png_structrp png_ptr, int nrows)); /* Flush the current PNG output buffer */ -PNG_EXPORT(52, void, png_write_flush, (png_structp png_ptr)); +PNG_EXPORT(52, void, png_write_flush, (png_structrp png_ptr)); #endif /* Optional update palette with requested transformations */ -PNG_EXPORT(53, void, png_start_read_image, (png_structp png_ptr)); +PNG_EXPORT(53, void, png_start_read_image, (png_structrp png_ptr)); /* Optional call to update the users info structure */ -PNG_EXPORT(54, void, png_read_update_info, - (png_structp png_ptr, png_infop info_ptr)); +PNG_EXPORT(54, void, png_read_update_info, (png_structrp png_ptr, + png_inforp info_ptr)); #ifdef PNG_SEQUENTIAL_READ_SUPPORTED /* Read one or more rows of image data. */ -PNG_EXPORT(55, void, png_read_rows, (png_structp png_ptr, png_bytepp row, +PNG_EXPORT(55, void, png_read_rows, (png_structrp png_ptr, png_bytepp row, png_bytepp display_row, png_uint_32 num_rows)); #endif #ifdef PNG_SEQUENTIAL_READ_SUPPORTED /* Read a row of data. */ -PNG_EXPORT(56, void, png_read_row, (png_structp png_ptr, png_bytep row, +PNG_EXPORT(56, void, png_read_row, (png_structrp png_ptr, png_bytep row, png_bytep display_row)); #endif #ifdef PNG_SEQUENTIAL_READ_SUPPORTED /* Read the whole image into memory at once. */ -PNG_EXPORT(57, void, png_read_image, (png_structp png_ptr, png_bytepp image)); +PNG_EXPORT(57, void, png_read_image, (png_structrp png_ptr, png_bytepp image)); #endif /* Write a row of image data */ -PNG_EXPORT(58, void, png_write_row, - (png_structp png_ptr, png_const_bytep row)); +PNG_EXPORT(58, void, png_write_row, (png_structrp png_ptr, + png_const_bytep row)); /* Write a few rows of image data: (*row) is not written; however, the type * is declared as writeable to maintain compatibility with previous versions * of libpng and to allow the 'display_row' array from read_rows to be passed * unchanged to write_rows. */ -PNG_EXPORT(59, void, png_write_rows, (png_structp png_ptr, png_bytepp row, +PNG_EXPORT(59, void, png_write_rows, (png_structrp png_ptr, png_bytepp row, png_uint_32 num_rows)); /* Write the image data */ -PNG_EXPORT(60, void, png_write_image, - (png_structp png_ptr, png_bytepp image)); +PNG_EXPORT(60, void, png_write_image, (png_structrp png_ptr, png_bytepp image)); /* Write the end of the PNG file. */ -PNG_EXPORT(61, void, png_write_end, - (png_structp png_ptr, png_infop info_ptr)); +PNG_EXPORT(61, void, png_write_end, (png_structrp png_ptr, + png_inforp info_ptr)); #ifdef PNG_SEQUENTIAL_READ_SUPPORTED /* Read the end of the PNG file. */ -PNG_EXPORT(62, void, png_read_end, (png_structp png_ptr, png_infop info_ptr)); +PNG_EXPORT(62, void, png_read_end, (png_structrp png_ptr, png_inforp info_ptr)); #endif /* Free any memory associated with the png_info_struct */ -PNG_EXPORT(63, void, png_destroy_info_struct, (png_structp png_ptr, +PNG_EXPORT(63, void, png_destroy_info_struct, (png_const_structrp png_ptr, png_infopp info_ptr_ptr)); /* Free any memory associated with the png_struct and the png_info_structs */ @@ -1288,8 +1550,8 @@ PNG_EXPORT(65, void, png_destroy_write_struct, (png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)); /* Set the libpng method of handling chunk CRC errors */ -PNG_EXPORT(66, void, png_set_crc_action, - (png_structp png_ptr, int crit_action, int ancil_action)); +PNG_EXPORT(66, void, png_set_crc_action, (png_structrp png_ptr, int crit_action, + int ancil_action)); /* Values for png_set_crc_action() say how to handle CRC errors in * ancillary and critical chunks, and whether to use the data contained @@ -1318,8 +1580,8 @@ PNG_EXPORT(66, void, png_set_crc_action, /* Set the filtering method(s) used by libpng. Currently, the only valid * value for "method" is 0. */ -PNG_EXPORT(67, void, png_set_filter, - (png_structp png_ptr, int method, int filters)); +PNG_EXPORT(67, void, png_set_filter, (png_structrp png_ptr, int method, + int filters)); /* Flags for png_set_filter() to say which filters to use. The flags * are chosen so that they don't conflict with real filter types @@ -1374,13 +1636,13 @@ PNG_EXPORT(67, void, png_set_filter, * the weights and costs are set to 1.0, this degenerates the WEIGHTED method * to the UNWEIGHTED method, but with added encoding time/computation. */ -PNG_FP_EXPORT(68, void, png_set_filter_heuristics, (png_structp png_ptr, +PNG_FP_EXPORT(68, void, png_set_filter_heuristics, (png_structrp png_ptr, int heuristic_method, int num_weights, png_const_doublep filter_weights, - png_const_doublep filter_costs)); + png_const_doublep filter_costs)) PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed, - (png_structp png_ptr, - int heuristic_method, int num_weights, png_const_fixed_point_p - filter_weights, png_const_fixed_point_p filter_costs)); + (png_structrp png_ptr, int heuristic_method, int num_weights, + png_const_fixed_point_p filter_weights, + png_const_fixed_point_p filter_costs)) #endif /* PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */ /* Heuristic used for row filter selection. These defines should NOT be @@ -1391,6 +1653,7 @@ PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed, #define PNG_FILTER_HEURISTIC_WEIGHTED 2 /* Experimental feature */ #define PNG_FILTER_HEURISTIC_LAST 3 /* Not a valid value */ +#ifdef PNG_WRITE_SUPPORTED /* Set the library compression level. Currently, valid values range from * 0 - 9, corresponding directly to the zlib compression levels 0 - 9 * (0 - no compression, 9 - "maximal" compression). Note that tests have @@ -1398,20 +1661,45 @@ PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed, * for PNG images, and do considerably fewer caclulations. In the future, * these values may not correspond directly to the zlib compression levels. */ -PNG_EXPORT(69, void, png_set_compression_level, - (png_structp png_ptr, int level)); +PNG_EXPORT(69, void, png_set_compression_level, (png_structrp png_ptr, + int level)); -PNG_EXPORT(70, void, png_set_compression_mem_level, (png_structp png_ptr, +PNG_EXPORT(70, void, png_set_compression_mem_level, (png_structrp png_ptr, int mem_level)); -PNG_EXPORT(71, void, png_set_compression_strategy, (png_structp png_ptr, +PNG_EXPORT(71, void, png_set_compression_strategy, (png_structrp png_ptr, int strategy)); -PNG_EXPORT(72, void, png_set_compression_window_bits, (png_structp png_ptr, +/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a + * smaller value of window_bits if it can do so safely. + */ +PNG_EXPORT(72, void, png_set_compression_window_bits, (png_structrp png_ptr, int window_bits)); -PNG_EXPORT(73, void, png_set_compression_method, (png_structp png_ptr, +PNG_EXPORT(73, void, png_set_compression_method, (png_structrp png_ptr, int method)); +#endif + +#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED +/* Also set zlib parameters for compressing non-IDAT chunks */ +PNG_EXPORT(222, void, png_set_text_compression_level, (png_structrp png_ptr, + int level)); + +PNG_EXPORT(223, void, png_set_text_compression_mem_level, (png_structrp png_ptr, + int mem_level)); + +PNG_EXPORT(224, void, png_set_text_compression_strategy, (png_structrp png_ptr, + int strategy)); + +/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a + * smaller value of window_bits if it can do so safely. + */ +PNG_EXPORT(225, void, png_set_text_compression_window_bits, + (png_structrp png_ptr, int window_bits)); + +PNG_EXPORT(226, void, png_set_text_compression_method, (png_structrp png_ptr, + int method)); +#endif /* PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */ /* These next functions are called for input/output, memory, and error * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c, @@ -1424,7 +1712,7 @@ PNG_EXPORT(73, void, png_set_compression_method, (png_structp png_ptr, #ifdef PNG_STDIO_SUPPORTED /* Initialize the input/output for the PNG file to the default functions. */ -PNG_EXPORT(74, void, png_init_io, (png_structp png_ptr, png_FILE_p fp)); +PNG_EXPORT(74, void, png_init_io, (png_structrp png_ptr, png_FILE_p fp)); #endif /* Replace the (error and abort), and warning functions with user @@ -1435,12 +1723,11 @@ PNG_EXPORT(74, void, png_init_io, (png_structp png_ptr, png_FILE_p fp)); * default function will be used. */ -PNG_EXPORT(75, void, png_set_error_fn, - (png_structp png_ptr, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warning_fn)); +PNG_EXPORT(75, void, png_set_error_fn, (png_structrp png_ptr, + png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn)); /* Return the user pointer associated with the error functions */ -PNG_EXPORT(76, png_voidp, png_get_error_ptr, (png_const_structp png_ptr)); +PNG_EXPORT(76, png_voidp, png_get_error_ptr, (png_const_structrp png_ptr)); /* Replace the default data output functions with a user supplied one(s). * If buffered output is not used, then output_flush_fn can be set to NULL. @@ -1452,47 +1739,47 @@ PNG_EXPORT(76, png_voidp, png_get_error_ptr, (png_const_structp png_ptr)); * default flush function, which uses the standard *FILE structure, will * be used. */ -PNG_EXPORT(77, void, png_set_write_fn, (png_structp png_ptr, png_voidp io_ptr, +PNG_EXPORT(77, void, png_set_write_fn, (png_structrp png_ptr, png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)); /* Replace the default data input function with a user supplied one. */ -PNG_EXPORT(78, void, png_set_read_fn, (png_structp png_ptr, png_voidp io_ptr, +PNG_EXPORT(78, void, png_set_read_fn, (png_structrp png_ptr, png_voidp io_ptr, png_rw_ptr read_data_fn)); /* Return the user pointer associated with the I/O functions */ -PNG_EXPORT(79, png_voidp, png_get_io_ptr, (png_structp png_ptr)); +PNG_EXPORT(79, png_voidp, png_get_io_ptr, (png_const_structrp png_ptr)); -PNG_EXPORT(80, void, png_set_read_status_fn, (png_structp png_ptr, +PNG_EXPORT(80, void, png_set_read_status_fn, (png_structrp png_ptr, png_read_status_ptr read_row_fn)); -PNG_EXPORT(81, void, png_set_write_status_fn, (png_structp png_ptr, +PNG_EXPORT(81, void, png_set_write_status_fn, (png_structrp png_ptr, png_write_status_ptr write_row_fn)); #ifdef PNG_USER_MEM_SUPPORTED /* Replace the default memory allocation functions with user supplied one(s). */ -PNG_EXPORT(82, void, png_set_mem_fn, (png_structp png_ptr, png_voidp mem_ptr, +PNG_EXPORT(82, void, png_set_mem_fn, (png_structrp png_ptr, png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn)); /* Return the user pointer associated with the memory functions */ -PNG_EXPORT(83, png_voidp, png_get_mem_ptr, (png_const_structp png_ptr)); +PNG_EXPORT(83, png_voidp, png_get_mem_ptr, (png_const_structrp png_ptr)); #endif #ifdef PNG_READ_USER_TRANSFORM_SUPPORTED -PNG_EXPORT(84, void, png_set_read_user_transform_fn, (png_structp png_ptr, +PNG_EXPORT(84, void, png_set_read_user_transform_fn, (png_structrp png_ptr, png_user_transform_ptr read_user_transform_fn)); #endif #ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED -PNG_EXPORT(85, void, png_set_write_user_transform_fn, (png_structp png_ptr, +PNG_EXPORT(85, void, png_set_write_user_transform_fn, (png_structrp png_ptr, png_user_transform_ptr write_user_transform_fn)); #endif #ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED -PNG_EXPORT(86, void, png_set_user_transform_info, (png_structp png_ptr, +PNG_EXPORT(86, void, png_set_user_transform_info, (png_structrp png_ptr, png_voidp user_transform_ptr, int user_transform_depth, int user_transform_channels)); /* Return the user pointer associated with the user transform functions */ PNG_EXPORT(87, png_voidp, png_get_user_transform_ptr, - (png_const_structp png_ptr)); + (png_const_structrp png_ptr)); #endif #ifdef PNG_USER_TRANSFORM_INFO_SUPPORTED @@ -1507,31 +1794,53 @@ PNG_EXPORT(87, png_voidp, png_get_user_transform_ptr, * find the output pixel (x,y) given an interlaced sub-image pixel * (row,col,pass). (See below for these macros.) */ -PNG_EXPORT(217, png_uint_32, png_get_current_row_number, (png_const_structp)); -PNG_EXPORT(218, png_byte, png_get_current_pass_number, (png_const_structp)); +PNG_EXPORT(217, png_uint_32, png_get_current_row_number, (png_const_structrp)); +PNG_EXPORT(218, png_byte, png_get_current_pass_number, (png_const_structrp)); +#endif + +#ifdef PNG_READ_USER_CHUNKS_SUPPORTED +/* This callback is called only for *unknown* chunks. If + * PNG_HANDLE_AS_UNKNOWN_SUPPORTED is set then it is possible to set known + * chunks to be treated as unknown, however in this case the callback must do + * any processing required by the chunk (e.g. by calling the appropriate + * png_set_ APIs.) + * + * There is no write support - on write, by default, all the chunks in the + * 'unknown' list are written in the specified position. + * + * The integer return from the callback function is interpreted thus: + * + * negative: An error occured, png_chunk_error will be called. + * zero: The chunk was not handled, the chunk will be saved. A critical + * chunk will cause an error at this point unless it is to be saved. + * positive: The chunk was handled, libpng will ignore/discard it. + * + * See "INTERACTION WTIH USER CHUNK CALLBACKS" below for important notes about + * how this behavior will change in libpng 1.7 + */ +PNG_EXPORT(88, void, png_set_read_user_chunk_fn, (png_structrp png_ptr, + png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn)); #endif #ifdef PNG_USER_CHUNKS_SUPPORTED -PNG_EXPORT(88, void, png_set_read_user_chunk_fn, (png_structp png_ptr, - png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn)); -PNG_EXPORT(89, png_voidp, png_get_user_chunk_ptr, (png_const_structp png_ptr)); +PNG_EXPORT(89, png_voidp, png_get_user_chunk_ptr, (png_const_structrp png_ptr)); #endif #ifdef PNG_PROGRESSIVE_READ_SUPPORTED /* Sets the function callbacks for the push reader, and a pointer to a * user-defined structure available to the callback functions. */ -PNG_EXPORT(90, void, png_set_progressive_read_fn, (png_structp png_ptr, +PNG_EXPORT(90, void, png_set_progressive_read_fn, (png_structrp png_ptr, png_voidp progressive_ptr, png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn, png_progressive_end_ptr end_fn)); /* Returns the user pointer associated with the push read functions */ -PNG_EXPORT(91, png_voidp, png_get_progressive_ptr, (png_const_structp png_ptr)); +PNG_EXPORT(91, png_voidp, png_get_progressive_ptr, + (png_const_structrp png_ptr)); /* Function to be called when data becomes available */ -PNG_EXPORT(92, void, png_process_data, - (png_structp png_ptr, png_infop info_ptr, - png_bytep buffer, png_size_t buffer_size)); +PNG_EXPORT(92, void, png_process_data, (png_structrp png_ptr, + png_inforp info_ptr, png_bytep buffer, png_size_t buffer_size)); /* A function which may be called *only* within png_process_data to stop the * processing of any more data. The function returns the number of bytes @@ -1540,7 +1849,7 @@ PNG_EXPORT(92, void, png_process_data, * 'save' is set to true the routine will first save all the pending data and * will always return 0. */ -PNG_EXPORT(219, png_size_t, png_process_data_pause, (png_structp, int save)); +PNG_EXPORT(219, png_size_t, png_process_data_pause, (png_structrp, int save)); /* A function which may be called *only* outside (after) a call to * png_process_data. It returns the number of bytes of data to skip in the @@ -1548,40 +1857,43 @@ PNG_EXPORT(219, png_size_t, png_process_data_pause, (png_structp, int save)); * application must skip than number of bytes of input data and pass the * following data to the next call to png_process_data. */ -PNG_EXPORT(220, png_uint_32, png_process_data_skip, (png_structp)); +PNG_EXPORT(220, png_uint_32, png_process_data_skip, (png_structrp)); /* Function that combines rows. 'new_row' is a flag that should come from * the callback and be non-NULL if anything needs to be done; the library * stores its own version of the new data internally and ignores the passed * in value. */ -PNG_EXPORT(93, void, png_progressive_combine_row, (png_structp png_ptr, +PNG_EXPORT(93, void, png_progressive_combine_row, (png_const_structrp png_ptr, png_bytep old_row, png_const_bytep new_row)); #endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ -PNG_EXPORTA(94, png_voidp, png_malloc, - (png_structp png_ptr, png_alloc_size_t size), - PNG_ALLOCATED); +PNG_EXPORTA(94, png_voidp, png_malloc, (png_const_structrp png_ptr, + png_alloc_size_t size), PNG_ALLOCATED); /* Added at libpng version 1.4.0 */ -PNG_EXPORTA(95, png_voidp, png_calloc, - (png_structp png_ptr, png_alloc_size_t size), - PNG_ALLOCATED); +PNG_EXPORTA(95, png_voidp, png_calloc, (png_const_structrp png_ptr, + png_alloc_size_t size), PNG_ALLOCATED); /* Added at libpng version 1.2.4 */ -PNG_EXPORTA(96, png_voidp, png_malloc_warn, (png_structp png_ptr, +PNG_EXPORTA(96, png_voidp, png_malloc_warn, (png_const_structrp png_ptr, png_alloc_size_t size), PNG_ALLOCATED); /* Frees a pointer allocated by png_malloc() */ -PNG_EXPORT(97, void, png_free, (png_structp png_ptr, png_voidp ptr)); +PNG_EXPORT(97, void, png_free, (png_const_structrp png_ptr, png_voidp ptr)); /* Free data that was allocated internally */ -PNG_EXPORT(98, void, png_free_data, - (png_structp png_ptr, png_infop info_ptr, png_uint_32 free_me, int num)); +PNG_EXPORT(98, void, png_free_data, (png_const_structrp png_ptr, + png_inforp info_ptr, png_uint_32 free_me, int num)); /* Reassign responsibility for freeing existing data, whether allocated - * by libpng or by the application */ -PNG_EXPORT(99, void, png_data_freer, - (png_structp png_ptr, png_infop info_ptr, int freer, png_uint_32 mask)); + * by libpng or by the application; this works on the png_info structure passed + * in, it does not change the state for other png_info structures. + * + * It is unlikely that this function works correctly as of 1.6.0 and using it + * may result either in memory leaks or double free of allocated data. + */ +PNG_EXPORT(99, void, png_data_freer, (png_const_structrp png_ptr, + png_inforp info_ptr, int freer, png_uint_32 mask)); /* Assignments for png_data_freer */ #define PNG_DESTROY_WILL_FREE_DATA 1 @@ -1594,8 +1906,10 @@ PNG_EXPORT(99, void, png_data_freer, #define PNG_FREE_ROWS 0x0040 #define PNG_FREE_PCAL 0x0080 #define PNG_FREE_SCAL 0x0100 -#define PNG_FREE_UNKN 0x0200 -#define PNG_FREE_LIST 0x0400 +#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED +# define PNG_FREE_UNKN 0x0200 +#endif +/* PNG_FREE_LIST 0x0400 removed in 1.6.0 because it is ignored */ #define PNG_FREE_PLTE 0x1000 #define PNG_FREE_TRNS 0x2000 #define PNG_FREE_TEXT 0x4000 @@ -1603,48 +1917,55 @@ PNG_EXPORT(99, void, png_data_freer, #define PNG_FREE_MUL 0x4220 /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */ #ifdef PNG_USER_MEM_SUPPORTED -PNG_EXPORTA(100, png_voidp, png_malloc_default, (png_structp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED); -PNG_EXPORT(101, void, png_free_default, (png_structp png_ptr, png_voidp ptr)); +PNG_EXPORTA(100, png_voidp, png_malloc_default, (png_const_structrp png_ptr, + png_alloc_size_t size), PNG_ALLOCATED PNG_DEPRECATED); +PNG_EXPORTA(101, void, png_free_default, (png_const_structrp png_ptr, + png_voidp ptr), PNG_DEPRECATED); #endif #ifdef PNG_ERROR_TEXT_SUPPORTED /* Fatal error in PNG image of libpng - can't continue */ -PNG_EXPORTA(102, void, png_error, - (png_structp png_ptr, png_const_charp error_message), - PNG_NORETURN); +PNG_EXPORTA(102, void, png_error, (png_const_structrp png_ptr, + png_const_charp error_message), PNG_NORETURN); /* The same, but the chunk name is prepended to the error string. */ -PNG_EXPORTA(103, void, png_chunk_error, (png_structp png_ptr, +PNG_EXPORTA(103, void, png_chunk_error, (png_const_structrp png_ptr, png_const_charp error_message), PNG_NORETURN); #else /* Fatal error in PNG image of libpng - can't continue */ -PNG_EXPORTA(104, void, png_err, (png_structp png_ptr), PNG_NORETURN); +PNG_EXPORTA(104, void, png_err, (png_const_structrp png_ptr), PNG_NORETURN); +# define png_error(s1,s2) png_err(s1) +# define png_chunk_error(s1,s2) png_err(s1) #endif +#ifdef PNG_WARNINGS_SUPPORTED /* Non-fatal error in libpng. Can continue, but may have a problem. */ -PNG_EXPORT(105, void, png_warning, (png_structp png_ptr, +PNG_EXPORT(105, void, png_warning, (png_const_structrp png_ptr, png_const_charp warning_message)); /* Non-fatal error in libpng, chunk name is prepended to message. */ -PNG_EXPORT(106, void, png_chunk_warning, (png_structp png_ptr, +PNG_EXPORT(106, void, png_chunk_warning, (png_const_structrp png_ptr, png_const_charp warning_message)); +#else +# define png_warning(s1,s2) ((void)(s1)) +# define png_chunk_warning(s1,s2) ((void)(s1)) +#endif #ifdef PNG_BENIGN_ERRORS_SUPPORTED /* Benign error in libpng. Can continue, but may have a problem. * User can choose whether to handle as a fatal error or as a warning. */ -# undef png_benign_error -PNG_EXPORT(107, void, png_benign_error, (png_structp png_ptr, +PNG_EXPORT(107, void, png_benign_error, (png_const_structrp png_ptr, png_const_charp warning_message)); -/* Same, chunk name is prepended to message. */ -# undef png_chunk_benign_error -PNG_EXPORT(108, void, png_chunk_benign_error, (png_structp png_ptr, +#ifdef PNG_READ_SUPPORTED +/* Same, chunk name is prepended to message (only during read) */ +PNG_EXPORT(108, void, png_chunk_benign_error, (png_const_structrp png_ptr, png_const_charp warning_message)); +#endif PNG_EXPORT(109, void, png_set_benign_errors, - (png_structp png_ptr, int allowed)); + (png_structrp png_ptr, int allowed)); #else # ifdef PNG_ALLOW_BENIGN_ERRORS # define png_benign_error png_warning @@ -1668,268 +1989,274 @@ PNG_EXPORT(109, void, png_set_benign_errors, * png_info_struct. */ /* Returns "flag" if chunk data is valid in info_ptr. */ -PNG_EXPORT(110, png_uint_32, png_get_valid, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_uint_32 flag)); +PNG_EXPORT(110, png_uint_32, png_get_valid, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_uint_32 flag)); /* Returns number of bytes needed to hold a transformed row. */ -PNG_EXPORT(111, png_size_t, png_get_rowbytes, (png_const_structp png_ptr, - png_const_infop info_ptr)); +PNG_EXPORT(111, png_size_t, png_get_rowbytes, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); #ifdef PNG_INFO_IMAGE_SUPPORTED /* Returns row_pointers, which is an array of pointers to scanlines that was * returned from png_read_png(). */ -PNG_EXPORT(112, png_bytepp, png_get_rows, - (png_const_structp png_ptr, png_const_infop info_ptr)); +PNG_EXPORT(112, png_bytepp, png_get_rows, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + /* Set row_pointers, which is an array of pointers to scanlines for use * by png_write_png(). */ -PNG_EXPORT(113, void, png_set_rows, (png_structp png_ptr, - png_infop info_ptr, png_bytepp row_pointers)); +PNG_EXPORT(113, void, png_set_rows, (png_const_structrp png_ptr, + png_inforp info_ptr, png_bytepp row_pointers)); #endif /* Returns number of color channels in image. */ -PNG_EXPORT(114, png_byte, png_get_channels, - (png_const_structp png_ptr, png_const_infop info_ptr)); +PNG_EXPORT(114, png_byte, png_get_channels, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); #ifdef PNG_EASY_ACCESS_SUPPORTED /* Returns image width in pixels. */ -PNG_EXPORT(115, png_uint_32, png_get_image_width, (png_const_structp png_ptr, - png_const_infop info_ptr)); +PNG_EXPORT(115, png_uint_32, png_get_image_width, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); /* Returns image height in pixels. */ -PNG_EXPORT(116, png_uint_32, png_get_image_height, (png_const_structp png_ptr, - png_const_infop info_ptr)); +PNG_EXPORT(116, png_uint_32, png_get_image_height, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); /* Returns image bit_depth. */ -PNG_EXPORT(117, png_byte, png_get_bit_depth, - (png_const_structp png_ptr, png_const_infop info_ptr)); +PNG_EXPORT(117, png_byte, png_get_bit_depth, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); /* Returns image color_type. */ -PNG_EXPORT(118, png_byte, png_get_color_type, (png_const_structp png_ptr, - png_const_infop info_ptr)); +PNG_EXPORT(118, png_byte, png_get_color_type, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); /* Returns image filter_type. */ -PNG_EXPORT(119, png_byte, png_get_filter_type, (png_const_structp png_ptr, - png_const_infop info_ptr)); +PNG_EXPORT(119, png_byte, png_get_filter_type, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); /* Returns image interlace_type. */ -PNG_EXPORT(120, png_byte, png_get_interlace_type, (png_const_structp png_ptr, - png_const_infop info_ptr)); +PNG_EXPORT(120, png_byte, png_get_interlace_type, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); /* Returns image compression_type. */ -PNG_EXPORT(121, png_byte, png_get_compression_type, (png_const_structp png_ptr, - png_const_infop info_ptr)); +PNG_EXPORT(121, png_byte, png_get_compression_type, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); /* Returns image resolution in pixels per meter, from pHYs chunk data. */ PNG_EXPORT(122, png_uint_32, png_get_pixels_per_meter, - (png_const_structp png_ptr, png_const_infop info_ptr)); + (png_const_structrp png_ptr, png_const_inforp info_ptr)); PNG_EXPORT(123, png_uint_32, png_get_x_pixels_per_meter, - (png_const_structp png_ptr, png_const_infop info_ptr)); + (png_const_structrp png_ptr, png_const_inforp info_ptr)); PNG_EXPORT(124, png_uint_32, png_get_y_pixels_per_meter, - (png_const_structp png_ptr, png_const_infop info_ptr)); + (png_const_structrp png_ptr, png_const_inforp info_ptr)); /* Returns pixel aspect ratio, computed from pHYs chunk data. */ PNG_FP_EXPORT(125, float, png_get_pixel_aspect_ratio, - (png_const_structp png_ptr, png_const_infop info_ptr)); + (png_const_structrp png_ptr, png_const_inforp info_ptr)) PNG_FIXED_EXPORT(210, png_fixed_point, png_get_pixel_aspect_ratio_fixed, - (png_const_structp png_ptr, png_const_infop info_ptr)); + (png_const_structrp png_ptr, png_const_inforp info_ptr)) /* Returns image x, y offset in pixels or microns, from oFFs chunk data. */ PNG_EXPORT(126, png_int_32, png_get_x_offset_pixels, - (png_const_structp png_ptr, png_const_infop info_ptr)); + (png_const_structrp png_ptr, png_const_inforp info_ptr)); PNG_EXPORT(127, png_int_32, png_get_y_offset_pixels, - (png_const_structp png_ptr, png_const_infop info_ptr)); + (png_const_structrp png_ptr, png_const_inforp info_ptr)); PNG_EXPORT(128, png_int_32, png_get_x_offset_microns, - (png_const_structp png_ptr, png_const_infop info_ptr)); + (png_const_structrp png_ptr, png_const_inforp info_ptr)); PNG_EXPORT(129, png_int_32, png_get_y_offset_microns, - (png_const_structp png_ptr, png_const_infop info_ptr)); + (png_const_structrp png_ptr, png_const_inforp info_ptr)); #endif /* PNG_EASY_ACCESS_SUPPORTED */ +#ifdef PNG_READ_SUPPORTED /* Returns pointer to signature string read from PNG header */ -PNG_EXPORT(130, png_const_bytep, png_get_signature, - (png_const_structp png_ptr, png_infop info_ptr)); - -#ifdef PNG_bKGD_SUPPORTED -PNG_EXPORT(131, png_uint_32, png_get_bKGD, - (png_const_structp png_ptr, png_infop info_ptr, - png_color_16p *background)); +PNG_EXPORT(130, png_const_bytep, png_get_signature, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); #endif #ifdef PNG_bKGD_SUPPORTED -PNG_EXPORT(132, void, png_set_bKGD, (png_structp png_ptr, png_infop info_ptr, - png_const_color_16p background)); +PNG_EXPORT(131, png_uint_32, png_get_bKGD, (png_const_structrp png_ptr, + png_inforp info_ptr, png_color_16p *background)); +#endif + +#ifdef PNG_bKGD_SUPPORTED +PNG_EXPORT(132, void, png_set_bKGD, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_color_16p background)); #endif #ifdef PNG_cHRM_SUPPORTED -PNG_FP_EXPORT(133, png_uint_32, png_get_cHRM, (png_const_structp png_ptr, - png_const_infop info_ptr, double *white_x, double *white_y, double *red_x, +PNG_FP_EXPORT(133, png_uint_32, png_get_cHRM, (png_const_structrp png_ptr, + png_const_inforp info_ptr, double *white_x, double *white_y, double *red_x, double *red_y, double *green_x, double *green_y, double *blue_x, - double *blue_y)); -#ifdef PNG_FIXED_POINT_SUPPORTED /* Otherwise not implemented */ + double *blue_y)) +PNG_FP_EXPORT(230, png_uint_32, png_get_cHRM_XYZ, (png_const_structrp png_ptr, + png_const_inforp info_ptr, double *red_X, double *red_Y, double *red_Z, + double *green_X, double *green_Y, double *green_Z, double *blue_X, + double *blue_Y, double *blue_Z)) PNG_FIXED_EXPORT(134, png_uint_32, png_get_cHRM_fixed, - (png_const_structp png_ptr, - png_const_infop info_ptr, png_fixed_point *int_white_x, - png_fixed_point *int_white_y, png_fixed_point *int_red_x, - png_fixed_point *int_red_y, png_fixed_point *int_green_x, - png_fixed_point *int_green_y, png_fixed_point *int_blue_x, - png_fixed_point *int_blue_y)); -#endif + (png_const_structrp png_ptr, png_const_inforp info_ptr, + png_fixed_point *int_white_x, png_fixed_point *int_white_y, + png_fixed_point *int_red_x, png_fixed_point *int_red_y, + png_fixed_point *int_green_x, png_fixed_point *int_green_y, + png_fixed_point *int_blue_x, png_fixed_point *int_blue_y)) +PNG_FIXED_EXPORT(231, png_uint_32, png_get_cHRM_XYZ_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr, + png_fixed_point *int_red_X, png_fixed_point *int_red_Y, + png_fixed_point *int_red_Z, png_fixed_point *int_green_X, + png_fixed_point *int_green_Y, png_fixed_point *int_green_Z, + png_fixed_point *int_blue_X, png_fixed_point *int_blue_Y, + png_fixed_point *int_blue_Z)) #endif #ifdef PNG_cHRM_SUPPORTED -PNG_FP_EXPORT(135, void, png_set_cHRM, - (png_structp png_ptr, png_infop info_ptr, +PNG_FP_EXPORT(135, void, png_set_cHRM, (png_const_structrp png_ptr, + png_inforp info_ptr, double white_x, double white_y, double red_x, double red_y, double green_x, - double green_y, double blue_x, double blue_y)); -PNG_FIXED_EXPORT(136, void, png_set_cHRM_fixed, (png_structp png_ptr, - png_infop info_ptr, png_fixed_point int_white_x, + double green_y, double blue_x, double blue_y)) +PNG_FP_EXPORT(232, void, png_set_cHRM_XYZ, (png_const_structrp png_ptr, + png_inforp info_ptr, double red_X, double red_Y, double red_Z, + double green_X, double green_Y, double green_Z, double blue_X, + double blue_Y, double blue_Z)) +PNG_FIXED_EXPORT(136, void, png_set_cHRM_fixed, (png_const_structrp png_ptr, + png_inforp info_ptr, png_fixed_point int_white_x, png_fixed_point int_white_y, png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x, - png_fixed_point int_blue_y)); + png_fixed_point int_blue_y)) +PNG_FIXED_EXPORT(233, void, png_set_cHRM_XYZ_fixed, (png_const_structrp png_ptr, + png_inforp info_ptr, png_fixed_point int_red_X, png_fixed_point int_red_Y, + png_fixed_point int_red_Z, png_fixed_point int_green_X, + png_fixed_point int_green_Y, png_fixed_point int_green_Z, + png_fixed_point int_blue_X, png_fixed_point int_blue_Y, + png_fixed_point int_blue_Z)) #endif #ifdef PNG_gAMA_SUPPORTED -PNG_FP_EXPORT(137, png_uint_32, png_get_gAMA, - (png_const_structp png_ptr, png_const_infop info_ptr, - double *file_gamma)); +PNG_FP_EXPORT(137, png_uint_32, png_get_gAMA, (png_const_structrp png_ptr, + png_const_inforp info_ptr, double *file_gamma)) PNG_FIXED_EXPORT(138, png_uint_32, png_get_gAMA_fixed, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_fixed_point *int_file_gamma)); + (png_const_structrp png_ptr, png_const_inforp info_ptr, + png_fixed_point *int_file_gamma)) #endif #ifdef PNG_gAMA_SUPPORTED -PNG_FP_EXPORT(139, void, png_set_gAMA, (png_structp png_ptr, - png_infop info_ptr, double file_gamma)); -PNG_FIXED_EXPORT(140, void, png_set_gAMA_fixed, (png_structp png_ptr, - png_infop info_ptr, png_fixed_point int_file_gamma)); +PNG_FP_EXPORT(139, void, png_set_gAMA, (png_const_structrp png_ptr, + png_inforp info_ptr, double file_gamma)) +PNG_FIXED_EXPORT(140, void, png_set_gAMA_fixed, (png_const_structrp png_ptr, + png_inforp info_ptr, png_fixed_point int_file_gamma)) #endif #ifdef PNG_hIST_SUPPORTED -PNG_EXPORT(141, png_uint_32, png_get_hIST, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_uint_16p *hist)); +PNG_EXPORT(141, png_uint_32, png_get_hIST, (png_const_structrp png_ptr, + png_inforp info_ptr, png_uint_16p *hist)); #endif #ifdef PNG_hIST_SUPPORTED -PNG_EXPORT(142, void, png_set_hIST, (png_structp png_ptr, - png_infop info_ptr, png_const_uint_16p hist)); +PNG_EXPORT(142, void, png_set_hIST, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_uint_16p hist)); #endif -PNG_EXPORT(143, png_uint_32, png_get_IHDR, - (png_structp png_ptr, png_infop info_ptr, - png_uint_32 *width, png_uint_32 *height, int *bit_depth, int *color_type, - int *interlace_method, int *compression_method, int *filter_method)); +PNG_EXPORT(143, png_uint_32, png_get_IHDR, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_uint_32 *width, png_uint_32 *height, + int *bit_depth, int *color_type, int *interlace_method, + int *compression_method, int *filter_method)); -PNG_EXPORT(144, void, png_set_IHDR, - (png_structp png_ptr, png_infop info_ptr, - png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, - int interlace_method, int compression_method, int filter_method)); +PNG_EXPORT(144, void, png_set_IHDR, (png_const_structrp png_ptr, + png_inforp info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, + int color_type, int interlace_method, int compression_method, + int filter_method)); #ifdef PNG_oFFs_SUPPORTED -PNG_EXPORT(145, png_uint_32, png_get_oFFs, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type)); +PNG_EXPORT(145, png_uint_32, png_get_oFFs, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, + int *unit_type)); #endif #ifdef PNG_oFFs_SUPPORTED -PNG_EXPORT(146, void, png_set_oFFs, - (png_structp png_ptr, png_infop info_ptr, - png_int_32 offset_x, png_int_32 offset_y, int unit_type)); +PNG_EXPORT(146, void, png_set_oFFs, (png_const_structrp png_ptr, + png_inforp info_ptr, png_int_32 offset_x, png_int_32 offset_y, + int unit_type)); #endif #ifdef PNG_pCAL_SUPPORTED -PNG_EXPORT(147, png_uint_32, png_get_pCAL, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_charp *purpose, png_int_32 *X0, png_int_32 *X1, int *type, - int *nparams, - png_charp *units, png_charpp *params)); +PNG_EXPORT(147, png_uint_32, png_get_pCAL, (png_const_structrp png_ptr, + png_inforp info_ptr, png_charp *purpose, png_int_32 *X0, + png_int_32 *X1, int *type, int *nparams, png_charp *units, + png_charpp *params)); #endif #ifdef PNG_pCAL_SUPPORTED -PNG_EXPORT(148, void, png_set_pCAL, (png_structp png_ptr, - png_infop info_ptr, - png_const_charp purpose, png_int_32 X0, png_int_32 X1, int type, - int nparams, png_const_charp units, png_charpp params)); +PNG_EXPORT(148, void, png_set_pCAL, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_charp purpose, png_int_32 X0, png_int_32 X1, + int type, int nparams, png_const_charp units, png_charpp params)); #endif #ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(149, png_uint_32, png_get_pHYs, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)); +PNG_EXPORT(149, png_uint_32, png_get_pHYs, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, + int *unit_type)); #endif #ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(150, void, png_set_pHYs, - (png_structp png_ptr, png_infop info_ptr, - png_uint_32 res_x, png_uint_32 res_y, int unit_type)); +PNG_EXPORT(150, void, png_set_pHYs, (png_const_structrp png_ptr, + png_inforp info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)); #endif -PNG_EXPORT(151, png_uint_32, png_get_PLTE, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_colorp *palette, int *num_palette)); +PNG_EXPORT(151, png_uint_32, png_get_PLTE, (png_const_structrp png_ptr, + png_inforp info_ptr, png_colorp *palette, int *num_palette)); -PNG_EXPORT(152, void, png_set_PLTE, - (png_structp png_ptr, png_infop info_ptr, - png_const_colorp palette, int num_palette)); +PNG_EXPORT(152, void, png_set_PLTE, (png_structrp png_ptr, + png_inforp info_ptr, png_const_colorp palette, int num_palette)); #ifdef PNG_sBIT_SUPPORTED -PNG_EXPORT(153, png_uint_32, png_get_sBIT, - (png_const_structp png_ptr, png_infop info_ptr, - png_color_8p *sig_bit)); +PNG_EXPORT(153, png_uint_32, png_get_sBIT, (png_const_structrp png_ptr, + png_inforp info_ptr, png_color_8p *sig_bit)); #endif #ifdef PNG_sBIT_SUPPORTED -PNG_EXPORT(154, void, png_set_sBIT, - (png_structp png_ptr, png_infop info_ptr, png_const_color_8p sig_bit)); +PNG_EXPORT(154, void, png_set_sBIT, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_color_8p sig_bit)); #endif #ifdef PNG_sRGB_SUPPORTED -PNG_EXPORT(155, png_uint_32, png_get_sRGB, (png_const_structp png_ptr, - png_const_infop info_ptr, int *file_srgb_intent)); +PNG_EXPORT(155, png_uint_32, png_get_sRGB, (png_const_structrp png_ptr, + png_const_inforp info_ptr, int *file_srgb_intent)); #endif #ifdef PNG_sRGB_SUPPORTED -PNG_EXPORT(156, void, png_set_sRGB, - (png_structp png_ptr, png_infop info_ptr, int srgb_intent)); -PNG_EXPORT(157, void, png_set_sRGB_gAMA_and_cHRM, (png_structp png_ptr, - png_infop info_ptr, int srgb_intent)); +PNG_EXPORT(156, void, png_set_sRGB, (png_const_structrp png_ptr, + png_inforp info_ptr, int srgb_intent)); +PNG_EXPORT(157, void, png_set_sRGB_gAMA_and_cHRM, (png_const_structrp png_ptr, + png_inforp info_ptr, int srgb_intent)); #endif #ifdef PNG_iCCP_SUPPORTED -PNG_EXPORT(158, png_uint_32, png_get_iCCP, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_charpp name, int *compression_type, png_bytepp profile, - png_uint_32 *proflen)); +PNG_EXPORT(158, png_uint_32, png_get_iCCP, (png_const_structrp png_ptr, + png_inforp info_ptr, png_charpp name, int *compression_type, + png_bytepp profile, png_uint_32 *proflen)); #endif #ifdef PNG_iCCP_SUPPORTED -PNG_EXPORT(159, void, png_set_iCCP, - (png_structp png_ptr, png_infop info_ptr, - png_const_charp name, int compression_type, png_const_bytep profile, - png_uint_32 proflen)); +PNG_EXPORT(159, void, png_set_iCCP, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_charp name, int compression_type, + png_const_bytep profile, png_uint_32 proflen)); #endif #ifdef PNG_sPLT_SUPPORTED -PNG_EXPORT(160, png_uint_32, png_get_sPLT, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_sPLT_tpp entries)); +PNG_EXPORT(160, int, png_get_sPLT, (png_const_structrp png_ptr, + png_inforp info_ptr, png_sPLT_tpp entries)); #endif #ifdef PNG_sPLT_SUPPORTED -PNG_EXPORT(161, void, png_set_sPLT, - (png_structp png_ptr, png_infop info_ptr, - png_const_sPLT_tp entries, int nentries)); +PNG_EXPORT(161, void, png_set_sPLT, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_sPLT_tp entries, int nentries)); #endif #ifdef PNG_TEXT_SUPPORTED /* png_get_text also returns the number of text chunks in *num_text */ -PNG_EXPORT(162, png_uint_32, png_get_text, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_textp *text_ptr, int *num_text)); +PNG_EXPORT(162, int, png_get_text, (png_const_structrp png_ptr, + png_inforp info_ptr, png_textp *text_ptr, int *num_text)); #endif /* Note while png_set_text() will accept a structure whose text, @@ -1940,116 +2267,220 @@ PNG_EXPORT(162, png_uint_32, png_get_text, */ #ifdef PNG_TEXT_SUPPORTED -PNG_EXPORT(163, void, png_set_text, - (png_structp png_ptr, png_infop info_ptr, - png_const_textp text_ptr, int num_text)); +PNG_EXPORT(163, void, png_set_text, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_textp text_ptr, int num_text)); #endif #ifdef PNG_tIME_SUPPORTED -PNG_EXPORT(164, png_uint_32, png_get_tIME, - (png_const_structp png_ptr, png_infop info_ptr, png_timep *mod_time)); +PNG_EXPORT(164, png_uint_32, png_get_tIME, (png_const_structrp png_ptr, + png_inforp info_ptr, png_timep *mod_time)); #endif #ifdef PNG_tIME_SUPPORTED -PNG_EXPORT(165, void, png_set_tIME, - (png_structp png_ptr, png_infop info_ptr, png_const_timep mod_time)); +PNG_EXPORT(165, void, png_set_tIME, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_timep mod_time)); #endif #ifdef PNG_tRNS_SUPPORTED -PNG_EXPORT(166, png_uint_32, png_get_tRNS, - (png_const_structp png_ptr, png_infop info_ptr, - png_bytep *trans_alpha, int *num_trans, png_color_16p *trans_color)); +PNG_EXPORT(166, png_uint_32, png_get_tRNS, (png_const_structrp png_ptr, + png_inforp info_ptr, png_bytep *trans_alpha, int *num_trans, + png_color_16p *trans_color)); #endif #ifdef PNG_tRNS_SUPPORTED -PNG_EXPORT(167, void, png_set_tRNS, - (png_structp png_ptr, png_infop info_ptr, - png_const_bytep trans_alpha, int num_trans, +PNG_EXPORT(167, void, png_set_tRNS, (png_structrp png_ptr, + png_inforp info_ptr, png_const_bytep trans_alpha, int num_trans, png_const_color_16p trans_color)); #endif #ifdef PNG_sCAL_SUPPORTED -PNG_FP_EXPORT(168, png_uint_32, png_get_sCAL, - (png_const_structp png_ptr, png_const_infop info_ptr, - int *unit, double *width, double *height)); -#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED +PNG_FP_EXPORT(168, png_uint_32, png_get_sCAL, (png_const_structrp png_ptr, + png_const_inforp info_ptr, int *unit, double *width, double *height)) +#if defined(PNG_FLOATING_ARITHMETIC_SUPPORTED) || \ + defined(PNG_FLOATING_POINT_SUPPORTED) /* NOTE: this API is currently implemented using floating point arithmetic, * consequently it can only be used on systems with floating point support. * In any case the range of values supported by png_fixed_point is small and it * is highly recommended that png_get_sCAL_s be used instead. */ PNG_FIXED_EXPORT(214, png_uint_32, png_get_sCAL_fixed, - (png_structp png_ptr, png_const_infop info_ptr, int *unit, - png_fixed_point *width, - png_fixed_point *height)); + (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, + png_fixed_point *width, png_fixed_point *height)) #endif PNG_EXPORT(169, png_uint_32, png_get_sCAL_s, - (png_const_structp png_ptr, png_const_infop info_ptr, - int *unit, png_charpp swidth, png_charpp sheight)); + (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, + png_charpp swidth, png_charpp sheight)); -PNG_FP_EXPORT(170, void, png_set_sCAL, - (png_structp png_ptr, png_infop info_ptr, - int unit, double width, double height)); -PNG_FIXED_EXPORT(213, void, png_set_sCAL_fixed, (png_structp png_ptr, - png_infop info_ptr, int unit, png_fixed_point width, - png_fixed_point height)); -PNG_EXPORT(171, void, png_set_sCAL_s, - (png_structp png_ptr, png_infop info_ptr, - int unit, png_const_charp swidth, png_const_charp sheight)); +PNG_FP_EXPORT(170, void, png_set_sCAL, (png_const_structrp png_ptr, + png_inforp info_ptr, int unit, double width, double height)) +PNG_FIXED_EXPORT(213, void, png_set_sCAL_fixed, (png_const_structrp png_ptr, + png_inforp info_ptr, int unit, png_fixed_point width, + png_fixed_point height)) +PNG_EXPORT(171, void, png_set_sCAL_s, (png_const_structrp png_ptr, + png_inforp info_ptr, int unit, + png_const_charp swidth, png_const_charp sheight)); #endif /* PNG_sCAL_SUPPORTED */ -#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED -/* Provide a list of chunks and how they are to be handled, if the built-in - handling or default unknown chunk handling is not desired. Any chunks not - listed will be handled in the default manner. The IHDR and IEND chunks - must not be listed. - keep = 0: follow default behaviour - = 1: do not keep - = 2: keep only if safe-to-copy - = 3: keep even if unsafe-to-copy -*/ -PNG_EXPORT(172, void, png_set_keep_unknown_chunks, - (png_structp png_ptr, int keep, - png_const_bytep chunk_list, int num_chunks)); -PNG_EXPORT(173, int, png_handle_as_unknown, (png_structp png_ptr, +#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED +/* Provide the default handling for all unknown chunks or, optionally, for + * specific unknown chunks. + * + * NOTE: prior to 1.6.0 the handling specified for particular chunks on read was + * ignored and the default was used, the per-chunk setting only had an effect on + * write. If you wish to have chunk-specific handling on read in code that must + * work on earlier versions you must use a user chunk callback to specify the + * desired handling (keep or discard.) + * + * The 'keep' parameter is a PNG_HANDLE_CHUNK_ value as listed below. The + * parameter is interpreted as follows: + * + * READ: + * PNG_HANDLE_CHUNK_AS_DEFAULT: + * Known chunks: do normal libpng processing, do not keep the chunk (but + * see the comments below about PNG_HANDLE_AS_UNKNOWN_SUPPORTED) + * Unknown chunks: for a specific chunk use the global default, when used + * as the default discard the chunk data. + * PNG_HANDLE_CHUNK_NEVER: + * Discard the chunk data. + * PNG_HANDLE_CHUNK_IF_SAFE: + * Keep the chunk data if the chunk is not critical else raise a chunk + * error. + * PNG_HANDLE_CHUNK_ALWAYS: + * Keep the chunk data. + * + * If the chunk data is saved it can be retrieved using png_get_unknown_chunks, + * below. Notice that specifying "AS_DEFAULT" as a global default is equivalent + * to specifying "NEVER", however when "AS_DEFAULT" is used for specific chunks + * it simply resets the behavior to the libpng default. + * + * INTERACTION WTIH USER CHUNK CALLBACKS: + * The per-chunk handling is always used when there is a png_user_chunk_ptr + * callback and the callback returns 0; the chunk is then always stored *unless* + * it is critical and the per-chunk setting is other than ALWAYS. Notice that + * the global default is *not* used in this case. (In effect the per-chunk + * value is incremented to at least IF_SAFE.) + * + * IMPORTANT NOTE: this behavior will change in libpng 1.7 - the global and + * per-chunk defaults will be honored. If you want to preserve the current + * behavior when your callback returns 0 you must set PNG_HANDLE_CHUNK_IF_SAFE + * as the default - if you don't do this libpng 1.6 will issue a warning. + * + * If you want unhandled unknown chunks to be discarded in libpng 1.6 and + * earlier simply return '1' (handled). + * + * PNG_HANDLE_AS_UNKNOWN_SUPPORTED: + * If this is *not* set known chunks will always be handled by libpng and + * will never be stored in the unknown chunk list. Known chunks listed to + * png_set_keep_unknown_chunks will have no effect. If it is set then known + * chunks listed with a keep other than AS_DEFAULT will *never* be processed + * by libpng, in addition critical chunks must either be processed by the + * callback or saved. + * + * The IHDR and IEND chunks must not be listed. Because this turns off the + * default handling for chunks that would otherwise be recognized the + * behavior of libpng transformations may well become incorrect! + * + * WRITE: + * When writing chunks the options only apply to the chunks specified by + * png_set_unknown_chunks (below), libpng will *always* write known chunks + * required by png_set_ calls and will always write the core critical chunks + * (as required for PLTE). + * + * Each chunk in the png_set_unknown_chunks list is looked up in the + * png_set_keep_unknown_chunks list to find the keep setting, this is then + * interpreted as follows: + * + * PNG_HANDLE_CHUNK_AS_DEFAULT: + * Write safe-to-copy chunks and write other chunks if the global + * default is set to _ALWAYS, otherwise don't write this chunk. + * PNG_HANDLE_CHUNK_NEVER: + * Do not write the chunk. + * PNG_HANDLE_CHUNK_IF_SAFE: + * Write the chunk if it is safe-to-copy, otherwise do not write it. + * PNG_HANDLE_CHUNK_ALWAYS: + * Write the chunk. + * + * Note that the default behavior is effectively the opposite of the read case - + * in read unknown chunks are not stored by default, in write they are written + * by default. Also the behavior of PNG_HANDLE_CHUNK_IF_SAFE is very different + * - on write the safe-to-copy bit is checked, on read the critical bit is + * checked and on read if the chunk is critical an error will be raised. + * + * num_chunks: + * =========== + * If num_chunks is positive, then the "keep" parameter specifies the manner + * for handling only those chunks appearing in the chunk_list array, + * otherwise the chunk list array is ignored. + * + * If num_chunks is 0 the "keep" parameter specifies the default behavior for + * unknown chunks, as described above. + * + * If num_chunks is negative, then the "keep" parameter specifies the manner + * for handling all unknown chunks plus all chunks recognized by libpng + * except for the IHDR, PLTE, tRNS, IDAT, and IEND chunks (which continue to + * be processed by libpng. + */ +PNG_EXPORT(172, void, png_set_keep_unknown_chunks, (png_structrp png_ptr, + int keep, png_const_bytep chunk_list, int num_chunks)); + +/* The "keep" PNG_HANDLE_CHUNK_ parameter for the specified chunk is returned; + * the result is therefore true (non-zero) if special handling is required, + * false for the default handling. + */ +PNG_EXPORT(173, int, png_handle_as_unknown, (png_const_structrp png_ptr, png_const_bytep chunk_name)); #endif -#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED -PNG_EXPORT(174, void, png_set_unknown_chunks, (png_structp png_ptr, - png_infop info_ptr, png_const_unknown_chunkp unknowns, + +#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED +PNG_EXPORT(174, void, png_set_unknown_chunks, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_unknown_chunkp unknowns, int num_unknowns)); + /* NOTE: prior to 1.6.0 this routine set the 'location' field of the added + * unknowns to the location currently stored in the png_struct. This is + * invariably the wrong value on write. To fix this call the following API + * for each chunk in the list with the correct location. If you know your + * code won't be compiled on earlier versions you can rely on + * png_set_unknown_chunks(write-ptr, png_get_unknown_chunks(read-ptr)) doing + * the correct thing. + */ + PNG_EXPORT(175, void, png_set_unknown_chunk_location, - (png_structp png_ptr, png_infop info_ptr, int chunk, int location)); -PNG_EXPORT(176, int, png_get_unknown_chunks, (png_const_structp png_ptr, - png_const_infop info_ptr, png_unknown_chunkpp entries)); + (png_const_structrp png_ptr, png_inforp info_ptr, int chunk, int location)); + +PNG_EXPORT(176, int, png_get_unknown_chunks, (png_const_structrp png_ptr, + png_inforp info_ptr, png_unknown_chunkpp entries)); #endif /* Png_free_data() will turn off the "valid" flag for anything it frees. * If you need to turn it off for a chunk that your application has freed, * you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); */ -PNG_EXPORT(177, void, png_set_invalid, - (png_structp png_ptr, png_infop info_ptr, int mask)); +PNG_EXPORT(177, void, png_set_invalid, (png_const_structrp png_ptr, + png_inforp info_ptr, int mask)); #ifdef PNG_INFO_IMAGE_SUPPORTED /* The "params" pointer is currently not used and is for future expansion. */ -PNG_EXPORT(178, void, png_read_png, (png_structp png_ptr, png_infop info_ptr, +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +PNG_EXPORT(178, void, png_read_png, (png_structrp png_ptr, png_inforp info_ptr, int transforms, png_voidp params)); -PNG_EXPORT(179, void, png_write_png, (png_structp png_ptr, png_infop info_ptr, +#endif +#ifdef PNG_WRITE_SUPPORTED +PNG_EXPORT(179, void, png_write_png, (png_structrp png_ptr, png_inforp info_ptr, int transforms, png_voidp params)); #endif +#endif PNG_EXPORT(180, png_const_charp, png_get_copyright, - (png_const_structp png_ptr)); + (png_const_structrp png_ptr)); PNG_EXPORT(181, png_const_charp, png_get_header_ver, - (png_const_structp png_ptr)); + (png_const_structrp png_ptr)); PNG_EXPORT(182, png_const_charp, png_get_header_version, - (png_const_structp png_ptr)); + (png_const_structrp png_ptr)); PNG_EXPORT(183, png_const_charp, png_get_libpng_ver, - (png_const_structp png_ptr)); + (png_const_structrp png_ptr)); #ifdef PNG_MNG_FEATURES_SUPPORTED -PNG_EXPORT(184, png_uint_32, png_permit_mng_features, (png_structp png_ptr, +PNG_EXPORT(184, png_uint_32, png_permit_mng_features, (png_structrp png_ptr, png_uint_32 mng_features_permitted)); #endif @@ -2058,75 +2489,77 @@ PNG_EXPORT(184, png_uint_32, png_permit_mng_features, (png_structp png_ptr, #define PNG_HANDLE_CHUNK_NEVER 1 #define PNG_HANDLE_CHUNK_IF_SAFE 2 #define PNG_HANDLE_CHUNK_ALWAYS 3 +#define PNG_HANDLE_CHUNK_LAST 4 /* Strip the prepended error numbers ("#nnn ") from error and warning * messages before passing them to the error or warning handler. */ #ifdef PNG_ERROR_NUMBERS_SUPPORTED -PNG_EXPORT(185, void, png_set_strip_error_numbers, - (png_structp png_ptr, +PNG_EXPORT(185, void, png_set_strip_error_numbers, (png_structrp png_ptr, png_uint_32 strip_mode)); #endif /* Added in libpng-1.2.6 */ #ifdef PNG_SET_USER_LIMITS_SUPPORTED -PNG_EXPORT(186, void, png_set_user_limits, (png_structp png_ptr, +PNG_EXPORT(186, void, png_set_user_limits, (png_structrp png_ptr, png_uint_32 user_width_max, png_uint_32 user_height_max)); PNG_EXPORT(187, png_uint_32, png_get_user_width_max, - (png_const_structp png_ptr)); + (png_const_structrp png_ptr)); PNG_EXPORT(188, png_uint_32, png_get_user_height_max, - (png_const_structp png_ptr)); + (png_const_structrp png_ptr)); /* Added in libpng-1.4.0 */ -PNG_EXPORT(189, void, png_set_chunk_cache_max, (png_structp png_ptr, +PNG_EXPORT(189, void, png_set_chunk_cache_max, (png_structrp png_ptr, png_uint_32 user_chunk_cache_max)); PNG_EXPORT(190, png_uint_32, png_get_chunk_cache_max, - (png_const_structp png_ptr)); + (png_const_structrp png_ptr)); /* Added in libpng-1.4.1 */ -PNG_EXPORT(191, void, png_set_chunk_malloc_max, (png_structp png_ptr, +PNG_EXPORT(191, void, png_set_chunk_malloc_max, (png_structrp png_ptr, png_alloc_size_t user_chunk_cache_max)); PNG_EXPORT(192, png_alloc_size_t, png_get_chunk_malloc_max, - (png_const_structp png_ptr)); + (png_const_structrp png_ptr)); #endif #if defined(PNG_INCH_CONVERSIONS_SUPPORTED) PNG_EXPORT(193, png_uint_32, png_get_pixels_per_inch, - (png_const_structp png_ptr, png_const_infop info_ptr)); + (png_const_structrp png_ptr, png_const_inforp info_ptr)); PNG_EXPORT(194, png_uint_32, png_get_x_pixels_per_inch, - (png_const_structp png_ptr, png_const_infop info_ptr)); + (png_const_structrp png_ptr, png_const_inforp info_ptr)); PNG_EXPORT(195, png_uint_32, png_get_y_pixels_per_inch, - (png_const_structp png_ptr, png_const_infop info_ptr)); + (png_const_structrp png_ptr, png_const_inforp info_ptr)); PNG_FP_EXPORT(196, float, png_get_x_offset_inches, - (png_const_structp png_ptr, png_const_infop info_ptr)); + (png_const_structrp png_ptr, png_const_inforp info_ptr)) #ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ PNG_FIXED_EXPORT(211, png_fixed_point, png_get_x_offset_inches_fixed, - (png_structp png_ptr, png_const_infop info_ptr)); + (png_const_structrp png_ptr, png_const_inforp info_ptr)) #endif -PNG_FP_EXPORT(197, float, png_get_y_offset_inches, (png_const_structp png_ptr, - png_const_infop info_ptr)); +PNG_FP_EXPORT(197, float, png_get_y_offset_inches, (png_const_structrp png_ptr, + png_const_inforp info_ptr)) #ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ PNG_FIXED_EXPORT(212, png_fixed_point, png_get_y_offset_inches_fixed, - (png_structp png_ptr, png_const_infop info_ptr)); + (png_const_structrp png_ptr, png_const_inforp info_ptr)) #endif # ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(198, png_uint_32, png_get_pHYs_dpi, (png_const_structp png_ptr, - png_const_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, +PNG_EXPORT(198, png_uint_32, png_get_pHYs_dpi, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)); # endif /* PNG_pHYs_SUPPORTED */ #endif /* PNG_INCH_CONVERSIONS_SUPPORTED */ /* Added in libpng-1.4.0 */ #ifdef PNG_IO_STATE_SUPPORTED -PNG_EXPORT(199, png_uint_32, png_get_io_state, (png_structp png_ptr)); +PNG_EXPORT(199, png_uint_32, png_get_io_state, (png_const_structrp png_ptr)); + +/* Removed from libpng 1.6; use png_get_io_chunk_type. */ +PNG_REMOVED(200, png_const_bytep, png_get_io_chunk_name, (png_structrp png_ptr), + PNG_DEPRECATED) -PNG_EXPORTA(200, png_const_bytep, png_get_io_chunk_name, - (png_structp png_ptr), PNG_DEPRECATED); PNG_EXPORT(216, png_uint_32, png_get_io_chunk_type, - (png_const_structp png_ptr)); + (png_const_structrp png_ptr)); /* The flags returned by png_get_io_state() are the following: */ # define PNG_IO_NONE 0x0000 /* no I/O at this moment */ @@ -2150,8 +2583,16 @@ PNG_EXPORT(216, png_uint_32, png_get_io_chunk_type, * full, image which appears in a given pass. 'pass' is in the range 0 * to 6 and the result is in the range 0 to 7. */ -#define PNG_PASS_START_ROW(pass) (((1U&~(pass))<<(3-((pass)>>1)))&7) -#define PNG_PASS_START_COL(pass) (((1U& (pass))<<(3-(((pass)+1)>>1)))&7) +#define PNG_PASS_START_ROW(pass) (((1&~(pass))<<(3-((pass)>>1)))&7) +#define PNG_PASS_START_COL(pass) (((1& (pass))<<(3-(((pass)+1)>>1)))&7) + +/* A macro to return the offset between pixels in the output row for a pair of + * pixels in the input - effectively the inverse of the 'COL_SHIFT' macro that + * follows. Note that ROW_OFFSET is the offset from one row to the next whereas + * COL_OFFSET is from one column to the next, within a row. + */ +#define PNG_PASS_ROW_OFFSET(pass) ((pass)>2?(8>>(((pass)-1)>>1)):8) +#define PNG_PASS_COL_OFFSET(pass) (1<<((7-(pass))>>1)) /* Two macros to help evaluate the number of rows or columns in each * pass. This is expressed as a shift - effectively log2 of the number or @@ -2174,10 +2615,10 @@ PNG_EXPORT(216, png_uint_32, png_get_io_chunk_type, * necessary to find the row in the output image given a row in an interlaced * image, so two more macros: */ -#define PNG_ROW_FROM_PASS_ROW(yIn, pass) \ - (((yIn)<>(((7-(off))-(pass))<<2)) & 0xFU) | \ - ((0x01145AF0U>>(((7-(off))-(pass))<<2)) & 0xF0U)) + ((0x110145AF>>(((7-(off))-(pass))<<2)) & 0xF) | \ + ((0x01145AF0>>(((7-(off))-(pass))<<2)) & 0xF0)) #define PNG_ROW_IN_INTERLACE_PASS(y, pass) \ ((PNG_PASS_MASK(pass,0) >> ((y)&7)) & 1) @@ -2213,14 +2654,14 @@ PNG_EXPORT(216, png_uint_32, png_get_io_chunk_type, { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) \ * (png_uint_16)(alpha) \ + (png_uint_16)(bg)*(png_uint_16)(255 \ - - (png_uint_16)(alpha)) + (png_uint_16)128); \ + - (png_uint_16)(alpha)) + 128); \ (composite) = (png_byte)((temp + (temp >> 8)) >> 8); } # define png_composite_16(composite, fg, alpha, bg) \ { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) \ * (png_uint_32)(alpha) \ - + (png_uint_32)(bg)*(png_uint_32)(65535L \ - - (png_uint_32)(alpha)) + (png_uint_32)32768L); \ + + (png_uint_32)(bg)*(65535 \ + - (png_uint_32)(alpha)) + 32768); \ (composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); } #else /* Standard method using integer division */ @@ -2228,12 +2669,12 @@ PNG_EXPORT(216, png_uint_32, png_get_io_chunk_type, # define png_composite(composite, fg, alpha, bg) \ (composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) + \ (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \ - (png_uint_16)127) / 255) + 127) / 255) # define png_composite_16(composite, fg, alpha, bg) \ (composite) = (png_uint_16)(((png_uint_32)(fg) * (png_uint_32)(alpha) + \ - (png_uint_32)(bg)*(png_uint_32)(65535L - (png_uint_32)(alpha)) + \ - (png_uint_32)32767) / (png_uint_32)65535L) + (png_uint_32)(bg)*(png_uint_32)(65535 - (png_uint_32)(alpha)) + \ + 32767) / 65535) #endif /* PNG_READ_COMPOSITE_NODIV_SUPPORTED */ #ifdef PNG_READ_INT_FUNCTIONS_SUPPORTED @@ -2242,7 +2683,7 @@ PNG_EXPORT(202, png_uint_16, png_get_uint_16, (png_const_bytep buf)); PNG_EXPORT(203, png_int_32, png_get_int_32, (png_const_bytep buf)); #endif -PNG_EXPORT(204, png_uint_32, png_get_uint_31, (png_structp png_ptr, +PNG_EXPORT(204, png_uint_32, png_get_uint_31, (png_const_structrp png_ptr, png_const_bytep buf)); /* No png_get_int_16 -- may be added if there's a real need for it. */ @@ -2268,7 +2709,7 @@ PNG_EXPORT(207, void, png_save_uint_16, (png_bytep buf, unsigned int i)); * The png_get_int_32() routine assumes we are using two's complement * format for negative values, which is almost certainly true. */ -# define png_get_uint_32(buf) \ +# define PNG_get_uint_32(buf) \ (((png_uint_32)(*(buf)) << 24) + \ ((png_uint_32)(*((buf) + 1)) << 16) + \ ((png_uint_32)(*((buf) + 2)) << 8) + \ @@ -2277,19 +2718,540 @@ PNG_EXPORT(207, void, png_save_uint_16, (png_bytep buf, unsigned int i)); /* From libpng-1.4.0 until 1.4.4, the png_get_uint_16 macro (but not the * function) incorrectly returned a value of type png_uint_32. */ -# define png_get_uint_16(buf) \ +# define PNG_get_uint_16(buf) \ ((png_uint_16) \ (((unsigned int)(*(buf)) << 8) + \ ((unsigned int)(*((buf) + 1))))) -# define png_get_int_32(buf) \ +# define PNG_get_int_32(buf) \ ((png_int_32)((*(buf) & 0x80) \ ? -((png_int_32)((png_get_uint_32(buf) ^ 0xffffffffL) + 1)) \ : (png_int_32)png_get_uint_32(buf))) + + /* If PNG_PREFIX is defined the same thing as below happens in pnglibconf.h, + * but defining a macro name prefixed with PNG_PREFIX. + */ +# ifndef PNG_PREFIX +# define png_get_uint_32(buf) PNG_get_uint_32(buf) +# define png_get_uint_16(buf) PNG_get_uint_16(buf) +# define png_get_int_32(buf) PNG_get_int_32(buf) +# endif +#else +# ifdef PNG_PREFIX + /* No macros; revert to the (redefined) function */ +# define PNG_get_uint_32 (png_get_uint_32) +# define PNG_get_uint_16 (png_get_uint_16) +# define PNG_get_int_32 (png_get_int_32) +# endif #endif +/******************************************************************************* + * SIMPLIFIED API + ******************************************************************************* + * + * Please read the documentation in libpng-manual.txt (TODO: write said + * documentation) if you don't understand what follows. + * + * The simplified API hides the details of both libpng and the PNG file format + * itself. It allows PNG files to be read into a very limited number of + * in-memory bitmap formats or to be written from the same formats. If these + * formats do not accomodate your needs then you can, and should, use the more + * sophisticated APIs above - these support a wide variety of in-memory formats + * and a wide variety of sophisticated transformations to those formats as well + * as a wide variety of APIs to manipulate ancillary information. + * + * To read a PNG file using the simplified API: + * + * 1) Declare a 'png_image' structure (see below) on the stack and set the + * version field to PNG_IMAGE_VERSION. + * 2) Call the appropriate png_image_begin_read... function. + * 3) Set the png_image 'format' member to the required sample format. + * 4) Allocate a buffer for the image and, if required, the color-map. + * 5) Call png_image_finish_read to read the image and, if required, the + * color-map into your buffers. + * + * There are no restrictions on the format of the PNG input itself; all valid + * color types, bit depths, and interlace methods are acceptable, and the + * input image is transformed as necessary to the requested in-memory format + * during the png_image_finish_read() step. The only caveat is that if you + * request a color-mapped image from a PNG that is full-color or makes + * complex use of an alpha channel the transformation is extremely lossy and the + * result may look terrible. + * + * To write a PNG file using the simplified API: + * + * 1) Declare a 'png_image' structure on the stack and memset() it to all zero. + * 2) Initialize the members of the structure that describe the image, setting + * the 'format' member to the format of the image samples. + * 3) Call the appropriate png_image_write... function with a pointer to the + * image and, if necessary, the color-map to write the PNG data. + * + * png_image is a structure that describes the in-memory format of an image + * when it is being read or defines the in-memory format of an image that you + * need to write: + */ +#define PNG_IMAGE_VERSION 1 + +typedef struct png_control *png_controlp; +typedef struct +{ + png_controlp opaque; /* Initialize to NULL, free with png_image_free */ + png_uint_32 version; /* Set to PNG_IMAGE_VERSION */ + png_uint_32 width; /* Image width in pixels (columns) */ + png_uint_32 height; /* Image height in pixels (rows) */ + png_uint_32 format; /* Image format as defined below */ + png_uint_32 flags; /* A bit mask containing informational flags */ + png_uint_32 colormap_entries; + /* Number of entries in the color-map */ + + /* In the event of an error or warning the following field will be set to a + * non-zero value and the 'message' field will contain a '\0' terminated + * string with the libpng error or warning message. If both warnings and + * an error were encountered, only the error is recorded. If there + * are multiple warnings, only the first one is recorded. + * + * The upper 30 bits of this value are reserved, the low two bits contain + * a value as follows: + */ +# define PNG_IMAGE_WARNING 1 +# define PNG_IMAGE_ERROR 2 + /* + * The result is a two bit code such that a value more than 1 indicates + * a failure in the API just called: + * + * 0 - no warning or error + * 1 - warning + * 2 - error + * 3 - error preceded by warning + */ +# define PNG_IMAGE_FAILED(png_cntrl) ((((png_cntrl).warning_or_error)&0x03)>1) + + png_uint_32 warning_or_error; + + char message[64]; +} png_image, *png_imagep; + +/* The samples of the image have one to four channels whose components have + * original values in the range 0 to 1.0: + * + * 1: A single gray or luminance channel (G). + * 2: A gray/luminance channel and an alpha channel (GA). + * 3: Three red, green, blue color channels (RGB). + * 4: Three color channels and an alpha channel (RGBA). + * + * The components are encoded in one of two ways: + * + * a) As a small integer, value 0..255, contained in a single byte. For the + * alpha channel the original value is simply value/255. For the color or + * luminance channels the value is encoded according to the sRGB specification + * and matches the 8-bit format expected by typical display devices. + * + * The color/gray channels are not scaled (pre-multiplied) by the alpha + * channel and are suitable for passing to color management software. + * + * b) As a value in the range 0..65535, contained in a 2-byte integer. All + * channels can be converted to the original value by dividing by 65535; all + * channels are linear. Color channels use the RGB encoding (RGB end-points) of + * the sRGB specification. This encoding is identified by the + * PNG_FORMAT_FLAG_LINEAR flag below. + * + * When the simplified API needs to convert between sRGB and linear colorspaces, + * the actual sRGB transfer curve defined in the sRGB specification (see the + * article at http://en.wikipedia.org/wiki/SRGB) is used, not the gamma=1/2.2 + * approximation used elsewhere in libpng. + * + * When an alpha channel is present it is expected to denote pixel coverage + * of the color or luminance channels and is returned as an associated alpha + * channel: the color/gray channels are scaled (pre-multiplied) by the alpha + * value. + * + * The samples are either contained directly in the image data, between 1 and 8 + * bytes per pixel according to the encoding, or are held in a color-map indexed + * by bytes in the image data. In the case of a color-map the color-map entries + * are individual samples, encoded as above, and the image data has one byte per + * pixel to select the relevant sample from the color-map. + */ + +/* PNG_FORMAT_* + * + * #defines to be used in png_image::format. Each #define identifies a + * particular layout of sample data and, if present, alpha values. There are + * separate defines for each of the two component encodings. + * + * A format is built up using single bit flag values. All combinations are + * valid. Formats can be built up from the flag values or you can use one of + * the predefined values below. When testing formats always use the FORMAT_FLAG + * macros to test for individual features - future versions of the library may + * add new flags. + * + * When reading or writing color-mapped images the format should be set to the + * format of the entries in the color-map then png_image_{read,write}_colormap + * called to read or write the color-map and set the format correctly for the + * image data. Do not set the PNG_FORMAT_FLAG_COLORMAP bit directly! + * + * NOTE: libpng can be built with particular features disabled, if you see + * compiler errors because the definition of one of the following flags has been + * compiled out it is because libpng does not have the required support. It is + * possible, however, for the libpng configuration to enable the format on just + * read or just write; in that case you may see an error at run time. You can + * guard against this by checking for the definition of the appropriate + * "_SUPPORTED" macro, one of: + * + * PNG_SIMPLIFIED_{READ,WRITE}_{BGR,AFIRST}_SUPPORTED + */ +#define PNG_FORMAT_FLAG_ALPHA 0x01U /* format with an alpha channel */ +#define PNG_FORMAT_FLAG_COLOR 0x02U /* color format: otherwise grayscale */ +#define PNG_FORMAT_FLAG_LINEAR 0x04U /* 2 byte channels else 1 byte */ +#define PNG_FORMAT_FLAG_COLORMAP 0x08U /* image data is color-mapped */ + +#ifdef PNG_FORMAT_BGR_SUPPORTED +# define PNG_FORMAT_FLAG_BGR 0x10U /* BGR colors, else order is RGB */ +#endif + +#ifdef PNG_FORMAT_AFIRST_SUPPORTED +# define PNG_FORMAT_FLAG_AFIRST 0x20U /* alpha channel comes first */ +#endif + +/* Commonly used formats have predefined macros. + * + * First the single byte (sRGB) formats: + */ +#define PNG_FORMAT_GRAY 0 +#define PNG_FORMAT_GA PNG_FORMAT_FLAG_ALPHA +#define PNG_FORMAT_AG (PNG_FORMAT_GA|PNG_FORMAT_FLAG_AFIRST) +#define PNG_FORMAT_RGB PNG_FORMAT_FLAG_COLOR +#define PNG_FORMAT_BGR (PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_BGR) +#define PNG_FORMAT_RGBA (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_ALPHA) +#define PNG_FORMAT_ARGB (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_AFIRST) +#define PNG_FORMAT_BGRA (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_ALPHA) +#define PNG_FORMAT_ABGR (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_AFIRST) + +/* Then the linear 2-byte formats. When naming these "Y" is used to + * indicate a luminance (gray) channel. + */ +#define PNG_FORMAT_LINEAR_Y PNG_FORMAT_FLAG_LINEAR +#define PNG_FORMAT_LINEAR_Y_ALPHA (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_ALPHA) +#define PNG_FORMAT_LINEAR_RGB (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR) +#define PNG_FORMAT_LINEAR_RGB_ALPHA \ + (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA) + +/* With color-mapped formats the image data is one byte for each pixel, the byte + * is an index into the color-map which is formatted as above. To obtain a + * color-mapped format it is sufficient just to add the PNG_FOMAT_FLAG_COLORMAP + * to one of the above definitions, or you can use one of the definitions below. + */ +#define PNG_FORMAT_RGB_COLORMAP (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_BGR_COLORMAP (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_RGBA_COLORMAP (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_ARGB_COLORMAP (PNG_FORMAT_ARGB|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_BGRA_COLORMAP (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_ABGR_COLORMAP (PNG_FORMAT_ABGR|PNG_FORMAT_FLAG_COLORMAP) + +/* PNG_IMAGE macros + * + * These are convenience macros to derive information from a png_image + * structure. The PNG_IMAGE_SAMPLE_ macros return values appropriate to the + * actual image sample values - either the entries in the color-map or the + * pixels in the image. The PNG_IMAGE_PIXEL_ macros return corresponding values + * for the pixels and will always return 1 for color-mapped formats. The + * remaining macros return information about the rows in the image and the + * complete image. + * + * NOTE: All the macros that take a png_image::format parameter are compile time + * constants if the format parameter is, itself, a constant. Therefore these + * macros can be used in array declarations and case labels where required. + * Similarly the macros are also pre-processor constants (sizeof is not used) so + * they can be used in #if tests. + * + * First the information about the samples. + */ +#define PNG_IMAGE_SAMPLE_CHANNELS(fmt)\ + (((fmt)&(PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA))+1) + /* Return the total number of channels in a given format: 1..4 */ + +#define PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)\ + ((((fmt) & PNG_FORMAT_FLAG_LINEAR) >> 2)+1) + /* Return the size in bytes of a single component of a pixel or color-map + * entry (as appropriate) in the image: 1 or 2. + */ + +#define PNG_IMAGE_SAMPLE_SIZE(fmt)\ + (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)) + /* This is the size of the sample data for one sample. If the image is + * color-mapped it is the size of one color-map entry (and image pixels are + * one byte in size), otherwise it is the size of one image pixel. + */ + +#define PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(fmt)\ + (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * 256) + /* The maximum size of the color-map required by the format expressed in a + * count of components. This can be used to compile-time allocate a + * color-map: + * + * png_uint_16 colormap[PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(linear_fmt)]; + * + * png_byte colormap[PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(sRGB_fmt)]; + * + * Alternatively use the PNG_IMAGE_COLORMAP_SIZE macro below to use the + * information from one of the png_image_begin_read_ APIs and dynamically + * allocate the required memory. + */ + +/* Corresponding information about the pixels */ +#define PNG_IMAGE_PIXEL_(test,fmt)\ + (((fmt)&PNG_FORMAT_FLAG_COLORMAP)?1:test(fmt)) + +#define PNG_IMAGE_PIXEL_CHANNELS(fmt)\ + PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_CHANNELS,fmt) + /* The number of separate channels (components) in a pixel; 1 for a + * color-mapped image. + */ + +#define PNG_IMAGE_PIXEL_COMPONENT_SIZE(fmt)\ + PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_COMPONENT_SIZE,fmt) + /* The size, in bytes, of each component in a pixel; 1 for a color-mapped + * image. + */ + +#define PNG_IMAGE_PIXEL_SIZE(fmt) PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_SIZE,fmt) + /* The size, in bytes, of a complete pixel; 1 for a color-mapped image. */ + +/* Information about the whole row, or whole image */ +#define PNG_IMAGE_ROW_STRIDE(image)\ + (PNG_IMAGE_PIXEL_CHANNELS((image).format) * (image).width) + /* Return the total number of components in a single row of the image; this + * is the minimum 'row stride', the minimum count of components between each + * row. For a color-mapped image this is the minimum number of bytes in a + * row. + */ + +#define PNG_IMAGE_BUFFER_SIZE(image, row_stride)\ + (PNG_IMAGE_PIXEL_COMPONENT_SIZE((image).format)*(image).height*(row_stride)) + /* Return the size, in bytes, of an image buffer given a png_image and a row + * stride - the number of components to leave space for in each row. + */ + +#define PNG_IMAGE_SIZE(image)\ + PNG_IMAGE_BUFFER_SIZE(image, PNG_IMAGE_ROW_STRIDE(image)) + /* Return the size, in bytes, of the image in memory given just a png_image; + * the row stride is the minimum stride required for the image. + */ + +#define PNG_IMAGE_COLORMAP_SIZE(image)\ + (PNG_IMAGE_SAMPLE_SIZE((image).format) * (image).colormap_entries) + /* Return the size, in bytes, of the color-map of this image. If the image + * format is not a color-map format this will return a size sufficient for + * 256 entries in the given format; check PNG_FORMAT_FLAG_COLORMAP if + * you don't want to allocate a color-map in this case. + */ + +/* PNG_IMAGE_FLAG_* + * + * Flags containing additional information about the image are held in the + * 'flags' field of png_image. + */ +#define PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB 0x01 + /* This indicates the the RGB values of the in-memory bitmap do not + * correspond to the red, green and blue end-points defined by sRGB. + */ + +#define PNG_IMAGE_FLAG_FAST 0x02 + /* On write emphasise speed over compression; the resultant PNG file will be + * larger but will be produced significantly faster, particular for large + * images. Do not use this option for images which will be distributed, only + * used it when producing intermediate files that will be read back in + * repeatedly. For a typical 24-bit image the option will double the read + * speed at the cost of increasing the image size by 25%, however for many + * more compressible images the PNG file can be 10 times larger with only a + * slight speed gain. + */ + +#define PNG_IMAGE_FLAG_16BIT_sRGB 0x04 + /* On read if the image is a 16-bit per component image and there is no gAMA + * or sRGB chunk assume that the components are sRGB encoded. Notice that + * images output by the simplified API always have gamma information; setting + * this flag only affects the interpretation of 16-bit images from an + * external source. It is recommended that the application expose this flag + * to the user; the user can normally easily recognize the difference between + * linear and sRGB encoding. This flag has no effect on write - the data + * passed to the write APIs must have the correct encoding (as defined + * above.) + * + * If the flag is not set (the default) input 16-bit per component data is + * assumed to be linear. + * + * NOTE: the flag can only be set after the png_image_begin_read_ call, + * because that call initializes the 'flags' field. + */ + +#ifdef PNG_SIMPLIFIED_READ_SUPPORTED +/* READ APIs + * --------- + * + * The png_image passed to the read APIs must have been initialized by setting + * the png_controlp field 'opaque' to NULL (or, safer, memset the whole thing.) + */ +#ifdef PNG_STDIO_SUPPORTED +PNG_EXPORT(234, int, png_image_begin_read_from_file, (png_imagep image, + const char *file_name)); + /* The named file is opened for read and the image header is filled in + * from the PNG header in the file. + */ + +PNG_EXPORT(235, int, png_image_begin_read_from_stdio, (png_imagep image, + FILE* file)); + /* The PNG header is read from the stdio FILE object. */ +#endif /* PNG_STDIO_SUPPORTED */ + +PNG_EXPORT(236, int, png_image_begin_read_from_memory, (png_imagep image, + png_const_voidp memory, png_size_t size)); + /* The PNG header is read from the given memory buffer. */ + +PNG_EXPORT(237, int, png_image_finish_read, (png_imagep image, + png_const_colorp background, void *buffer, png_int_32 row_stride, + void *colormap)); + /* Finish reading the image into the supplied buffer and clean up the + * png_image structure. + * + * row_stride is the step, in byte or 2-byte units as appropriate, + * between adjacent rows. A positive stride indicates that the top-most row + * is first in the buffer - the normal top-down arrangement. A negative + * stride indicates that the bottom-most row is first in the buffer. + * + * background need only be supplied if an alpha channel must be removed from + * a png_byte format and the removal is to be done by compositing on a solid + * color; otherwise it may be NULL and any composition will be done directly + * onto the buffer. The value is an sRGB color to use for the background, + * for grayscale output the green channel is used. + * + * background must be supplied when an alpha channel must be removed from a + * single byte color-mapped output format, in other words if: + * + * 1) The original format from png_image_begin_read_from_* had + * PNG_FORMAT_FLAG_ALPHA set. + * 2) The format set by the application does not. + * 3) The format set by the application has PNG_FORMAT_FLAG_COLORMAP set and + * PNG_FORMAT_FLAG_LINEAR *not* set. + * + * For linear output removing the alpha channel is always done by compositing + * on black and background is ignored. + * + * colormap must be supplied when PNG_FORMAT_FLAG_COLORMAP is set. It must + * be at least the size (in bytes) returned by PNG_IMAGE_COLORMAP_SIZE. + * image->colormap_entries will be updated to the actual number of entries + * written to the colormap; this may be less than the original value. + */ + +PNG_EXPORT(238, void, png_image_free, (png_imagep image)); + /* Free any data allocated by libpng in image->opaque, setting the pointer to + * NULL. May be called at any time after the structure is initialized. + */ +#endif /* PNG_SIMPLIFIED_READ_SUPPORTED */ + +#ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED +#ifdef PNG_STDIO_SUPPORTED +/* WRITE APIS + * ---------- + * For write you must initialize a png_image structure to describe the image to + * be written. To do this use memset to set the whole structure to 0 then + * initialize fields describing your image. + * + * version: must be set to PNG_IMAGE_VERSION + * opaque: must be initialized to NULL + * width: image width in pixels + * height: image height in rows + * format: the format of the data (image and color-map) you wish to write + * flags: set to 0 unless one of the defined flags applies; set + * PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB for color format images where the RGB + * values do not correspond to the colors in sRGB. + * colormap_entries: set to the number of entries in the color-map (0 to 256) + */ +PNG_EXPORT(239, int, png_image_write_to_file, (png_imagep image, + const char *file, int convert_to_8bit, const void *buffer, + png_int_32 row_stride, const void *colormap)); + /* Write the image to the named file. */ + +PNG_EXPORT(240, int, png_image_write_to_stdio, (png_imagep image, FILE *file, + int convert_to_8_bit, const void *buffer, png_int_32 row_stride, + const void *colormap)); + /* Write the image to the given (FILE*). */ + +/* With both write APIs if image is in one of the linear formats with 16-bit + * data then setting convert_to_8_bit will cause the output to be an 8-bit PNG + * gamma encoded according to the sRGB specification, otherwise a 16-bit linear + * encoded PNG file is written. + * + * With color-mapped data formats the colormap parameter point to a color-map + * with at least image->colormap_entries encoded in the specified format. If + * the format is linear the written PNG color-map will be converted to sRGB + * regardless of the convert_to_8_bit flag. + * + * With all APIs row_stride is handled as in the read APIs - it is the spacing + * from one row to the next in component sized units (1 or 2 bytes) and if + * negative indicates a bottom-up row layout in the buffer. + * + * Note that the write API does not support interlacing or sub-8-bit pixels. + */ +#endif /* PNG_STDIO_SUPPORTED */ +#endif /* PNG_SIMPLIFIED_WRITE_SUPPORTED */ +/******************************************************************************* + * END OF SIMPLIFIED API + ******************************************************************************/ + +#ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED +PNG_EXPORT(242, void, png_set_check_for_invalid_index, + (png_structrp png_ptr, int allowed)); +# ifdef PNG_GET_PALETTE_MAX_SUPPORTED +PNG_EXPORT(243, int, png_get_palette_max, (png_const_structp png_ptr, + png_const_infop info_ptr)); +# endif +#endif /* CHECK_FOR_INVALID_INDEX */ + +/******************************************************************************* + * IMPLEMENTATION OPTIONS + ******************************************************************************* + * + * Support for arbitrary implementation-specific optimizations. The API allows + * particular options to be turned on or off. 'Option' is the number of the + * option and 'onoff' is 0 (off) or non-0 (on). The value returned is given + * by the PNG_OPTION_ defines below. + * + * HARDWARE: normally hardware capabilites, such as the Intel SSE instructions, + * are detected at run time, however sometimes it may be impossible + * to do this in user mode, in which case it is necessary to discover + * the capabilities in an OS specific way. Such capabilities are + * listed here when libpng has support for them and must be turned + * ON by the application if present. + * + * SOFTWARE: sometimes software optimizations actually result in performance + * decrease on some architectures or systems, or with some sets of + * PNG images. 'Software' options allow such optimizations to be + * selected at run time. + */ +#ifdef PNG_SET_OPTION_SUPPORTED +#ifdef PNG_ARM_NEON_API_SUPPORTED +# define PNG_ARM_NEON 0 /* HARDWARE: ARM Neon SIMD instructions supported */ +#endif +#define PNG_MAXIMUM_INFLATE_WINDOW 2 /* SOFTWARE: force maximum window */ +#define PNG_SKIP_sRGB_CHECK_PROFILE 4 /* SOFTWARE: Check ICC profile for sRGB */ +#define PNG_OPTION_NEXT 6 /* Next option - numbers must be even */ + +/* Return values: NOTE: there are four values and 'off' is *not* zero */ +#define PNG_OPTION_UNSET 0 /* Unset - defaults to off */ +#define PNG_OPTION_INVALID 1 /* Option number out of range */ +#define PNG_OPTION_OFF 2 +#define PNG_OPTION_ON 3 + +PNG_EXPORT(244, int, png_set_option, (png_structrp png_ptr, int option, + int onoff)); +#endif + +/******************************************************************************* + * END OF HARDWARE AND SOFTWARE OPTIONS + ******************************************************************************/ + /* Maintainer: Put new public prototypes here ^, in libpng.3, and project - * defs + * defs, scripts/pnglibconf.h, and scripts/pnglibconf.h.prebuilt */ /* The last ordinal number (this is the *last* one already used; the next @@ -2297,7 +3259,7 @@ PNG_EXPORT(207, void, png_save_uint_16, (png_bytep buf, unsigned int i)); * scripts/symbols.def as well. */ #ifdef PNG_EXPORT_LAST_ORDINAL - PNG_EXPORT_LAST_ORDINAL(221); + PNG_EXPORT_LAST_ORDINAL(244); #endif #ifdef __cplusplus diff --git a/engine/libs/mingw-libs/pngconf.h b/engine/libs/mingw-libs/pngconf.h index c82fa5866..62e075fd6 100755 --- a/engine/libs/mingw-libs/pngconf.h +++ b/engine/libs/mingw-libs/pngconf.h @@ -1,9 +1,9 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.5.2 - March 31, 2011 + * libpng version 1.6.13 - August 21, 2014 * - * Copyright (c) 1998-2011 Glenn Randers-Pehrson + * Copyright (c) 1998-2014 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * @@ -22,37 +22,73 @@ #ifndef PNGCONF_H #define PNGCONF_H -#ifndef PNG_BUILDING_SYMBOL_TABLE -/* PNG_NO_LIMITS_H may be used to turn off the use of the standard C - * definition file for machine specific limits, this may impact the - * correctness of the definitons below (see uses of INT_MAX). - */ -# ifndef PNG_NO_LIMITS_H -# include +/* To do: Do all of this in scripts/pnglibconf.dfa */ +#ifdef PNG_SAFE_LIMITS_SUPPORTED +# ifdef PNG_USER_WIDTH_MAX +# undef PNG_USER_WIDTH_MAX +# define PNG_USER_WIDTH_MAX 1000000L # endif - -/* For the memory copy APIs (i.e. the standard definitions of these), - * because this file defines png_memcpy and so on the base APIs must - * be defined here. - */ -# ifdef BSD -# include -# else -# include +# ifdef PNG_USER_HEIGHT_MAX +# undef PNG_USER_HEIGHT_MAX +# define PNG_USER_HEIGHT_MAX 1000000L # endif - -/* For png_FILE_p - this provides the standard definition of a - * FILE - */ -# ifdef PNG_STDIO_SUPPORTED -# include +# ifdef PNG_USER_CHUNK_MALLOC_MAX +# undef PNG_USER_CHUNK_MALLOC_MAX +# define PNG_USER_CHUNK_MALLOC_MAX 4000000L +# endif +# ifdef PNG_USER_CHUNK_CACHE_MAX +# undef PNG_USER_CHUNK_CACHE_MAX +# define PNG_USER_CHUNK_CACHE_MAX 128 # endif #endif +#ifndef PNG_BUILDING_SYMBOL_TABLE /* else includes may cause problems */ + +/* From libpng 1.6.0 libpng requires an ANSI X3.159-1989 ("ISOC90") compliant C + * compiler for correct compilation. The following header files are required by + * the standard. If your compiler doesn't provide these header files, or they + * do not match the standard, you will need to provide/improve them. + */ +#include +#include + +/* Library header files. These header files are all defined by ISOC90; libpng + * expects conformant implementations, however, an ISOC90 conformant system need + * not provide these header files if the functionality cannot be implemented. + * In this case it will be necessary to disable the relevant parts of libpng in + * the build of pnglibconf.h. + * + * Prior to 1.6.0 string.h was included here; the API changes in 1.6.0 to not + * include this unnecessary header file. + */ + +#ifdef PNG_STDIO_SUPPORTED + /* Required for the definition of FILE: */ +# include +#endif + +#ifdef PNG_SETJMP_SUPPORTED + /* Required for the definition of jmp_buf and the declaration of longjmp: */ +# include +#endif + +#ifdef PNG_CONVERT_tIME_SUPPORTED + /* Required for struct tm: */ +# include +#endif + +#endif /* PNG_BUILDING_SYMBOL_TABLE */ + +/* Prior to 1.6.0 it was possible to turn off 'const' in declarations using + * PNG_NO_CONST; this is no longer supported except for data declarations which + * apparently still cause problems in 2011 on some compilers. + */ +#define PNG_CONST const /* backward compatibility only */ + /* This controls optimization of the reading of 16 and 32 bit values * from PNG files. It can be set on a per-app-file basis - it - * just changes whether a macro is used to the function is called. - * The library builder sets the default, if read functions are not + * just changes whether a macro is used when the function is called. + * The library builder sets the default; if read functions are not * built into the library the macro implementation is forced on. */ #ifndef PNG_READ_INT_FUNCTIONS_SUPPORTED @@ -72,28 +108,13 @@ * may be changed on a per-file basis when compiling against libpng. */ -/* The PNGARG macro protects us against machines that don't have function - * prototypes (ie K&R style headers). If your compiler does not handle - * function prototypes, define this macro and use the included ansi2knr. - * I've always been able to use _NO_PROTO as the indicator, but you may - * need to drag the empty declaration out in front of here, or change the - * ifdef to suit your own needs. +/* The PNGARG macro was used in versions of libpng prior to 1.6.0 to protect + * against legacy (pre ISOC90) compilers that did not understand function + * prototypes. It is not required for modern C compilers. */ #ifndef PNGARG - -# ifdef OF /* zlib prototype munger */ -# define PNGARG(arglist) OF(arglist) -# else - -# ifdef _NO_PROTO -# define PNGARG(arglist) () -# else -# define PNGARG(arglist) arglist -# endif /* _NO_PROTO */ - -# endif /* OF */ - -#endif /* PNGARG */ +# define PNGARG(arglist) arglist +#endif /* Function calling conventions. * ============================= @@ -164,7 +185,9 @@ * 'type', compiler specific. * * PNG_DLL_EXPORT Set to the magic to use during a libpng build to - * make a symbol exported from the DLL. + * make a symbol exported from the DLL. Not used in the + * public header files; see pngpriv.h for how it is used + * in the libpng build. * * PNG_DLL_IMPORT Set to the magic to force the libpng symbols to come * from a DLL - used to define PNG_IMPEXP when @@ -175,18 +198,16 @@ * ========================== * This code is used at build time to find PNG_IMPEXP, the API settings * and PNG_EXPORT_TYPE(), it may also set a macro to indicate the DLL - * import processing is possible. On Windows/x86 systems it also sets + * import processing is possible. On Windows systems it also sets * compiler-specific macros to the values required to change the calling * conventions of the various functions. */ -#if ( defined(_Windows) || defined(_WINDOWS) || defined(WIN32) ||\ - defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) ) &&\ - ( defined(_X86_) || defined(_X64_) || defined(_M_IX86) ||\ - defined(_M_X64) || defined(_M_IA64) ) - /* Windows system (DOS doesn't support DLLs) running on x86/x64. Includes - * builds under Cygwin or MinGW. Also includes Watcom builds but these need - * special treatment because they are not compatible with GCC or Visual C - * because of different calling conventions. +#if defined(_Windows) || defined(_WINDOWS) || defined(WIN32) ||\ + defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) + /* Windows system (DOS doesn't support DLLs). Includes builds under Cygwin or + * MinGW on any architecture currently supported by Windows. Also includes + * Watcom builds but these need special treatment because they are not + * compatible with GCC or Visual C because of different calling conventions. */ # if PNG_API_RULE == 2 /* If this line results in an error, either because __watcall is not @@ -197,9 +218,12 @@ # define PNGCAPI __watcall # endif -# if defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800)) +# if defined(__GNUC__) || (defined(_MSC_VER) && (_MSC_VER >= 800)) # define PNGCAPI __cdecl # if PNG_API_RULE == 1 + /* If this line results in an error __stdcall is not understood and + * PNG_API_RULE should not have been set to '1'. + */ # define PNGAPI __stdcall # endif # else @@ -214,10 +238,11 @@ # define PNGAPI _stdcall # endif # endif /* compiler/api */ + /* NOTE: PNGCBAPI always defaults to PNGCAPI. */ # if defined(PNGAPI) && !defined(PNG_USER_PRIVATEBUILD) - ERROR: PNG_USER_PRIVATEBUILD must be defined if PNGAPI is changed +# error "PNG_USER_PRIVATEBUILD must be defined if PNGAPI is changed" # endif # if (defined(_MSC_VER) && _MSC_VER < 800) ||\ @@ -237,7 +262,7 @@ # endif # endif /* compiler */ -#else /* !Windows/x86 */ +#else /* !Windows */ # if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) # define PNGAPI _System # else /* !Windows/x86 && !OS/2 */ @@ -258,25 +283,14 @@ # define PNGAPI PNGCAPI #endif -/* The default for PNG_IMPEXP depends on whether the library is - * being built or used. +/* PNG_IMPEXP may be set on the compilation system command line or (if not set) + * then in an internal header file when building the library, otherwise (when + * using the library) it is set here. */ #ifndef PNG_IMPEXP -# ifdef PNGLIB_BUILD - /* Building the library */ -# if (defined(DLL_EXPORT)/*from libtool*/ ||\ - defined(_WINDLL) || defined(_DLL) || defined(__DLL__) ||\ - defined(_USRDLL) ||\ - defined(PNG_BUILD_DLL)) && defined(PNG_DLL_EXPORT) - /* Building a DLL. */ -# define PNG_IMPEXP PNG_DLL_EXPORT -# endif /* DLL */ -# else - /* Using the library */ -# if defined(PNG_USE_DLL) && defined(PNG_DLL_IMPORT) - /* This forces use of a DLL, disallowing static linking */ -# define PNG_IMPEXP PNG_DLL_IMPORT -# endif +# if defined(PNG_USE_DLL) && defined(PNG_DLL_IMPORT) + /* This forces use of a DLL, disallowing static linking */ +# define PNG_IMPEXP PNG_DLL_IMPORT # endif # ifndef PNG_IMPEXP @@ -342,49 +356,51 @@ #ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED /* Support for compiler specific function attributes. These are used - * so that where compiler support is available incorrect use of API + * so that where compiler support is available, incorrect use of API * functions in png.h will generate compiler warnings. Added at libpng - * version 1.2.41. + * version 1.2.41. Disabling these removes the warnings but may also produce + * less efficient code. */ -# if defined(__GNUC__) +# if defined(__clang__) && defined(__has_attribute) + /* Clang defines both __clang__ and __GNUC__. Check __clang__ first. */ +# if !defined(PNG_USE_RESULT) && __has_attribute(__warn_unused_result__) +# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) +# endif +# if !defined(PNG_NORETURN) && __has_attribute(__noreturn__) +# define PNG_NORETURN __attribute__((__noreturn__)) +# endif +# if !defined(PNG_ALLOCATED) && __has_attribute(__malloc__) +# define PNG_ALLOCATED __attribute__((__malloc__)) +# endif +# if !defined(PNG_DEPRECATED) && __has_attribute(__deprecated__) +# define PNG_DEPRECATED __attribute__((__deprecated__)) +# endif +# if !defined(PNG_PRIVATE) +# ifdef __has_extension +# if __has_extension(attribute_unavailable_with_message) +# define PNG_PRIVATE __attribute__((__unavailable__(\ + "This function is not exported by libpng."))) +# endif +# endif +# endif +# ifndef PNG_RESTRICT +# define PNG_RESTRICT __restrict +# endif + +# elif defined(__GNUC__) # ifndef PNG_USE_RESULT # define PNG_USE_RESULT __attribute__((__warn_unused_result__)) # endif # ifndef PNG_NORETURN # define PNG_NORETURN __attribute__((__noreturn__)) # endif -# ifndef PNG_PTR_NORETURN - /* It's not enough to have the compiler be the correct compiler at - * this point - it's necessary for the library (which defines - * the type of the library longjmp) to also be the GNU library. - * This is because many systems use the GNU compiler with a - * non-GNU libc implementation. Min/GW headers are also compatible - * with GCC as well as uclibc, so it seems best to exclude known - * problem libcs here rather than just including known libcs. - * - * NOTE: this relies on the only use of PNG_PTR_NORETURN being with - * the system longjmp. If the same type is used elsewhere then this - * will need to be changed. - */ -# if !defined(__CYGWIN__) -# define PNG_PTR_NORETURN __attribute__((__noreturn__)) +# if __GNUC__ >= 3 +# ifndef PNG_ALLOCATED +# define PNG_ALLOCATED __attribute__((__malloc__)) # endif -# endif -# ifndef PNG_ALLOCATED -# define PNG_ALLOCATED __attribute__((__malloc__)) -# endif - - /* This specifically protects structure members that should only be - * accessed from within the library, therefore should be empty during - * a library build. - */ -# ifndef PNGLIB_BUILD # ifndef PNG_DEPRECATED # define PNG_DEPRECATED __attribute__((__deprecated__)) # endif -# ifndef PNG_DEPSTRUCT -# define PNG_DEPSTRUCT __attribute__((__deprecated__)) -# endif # ifndef PNG_PRIVATE # if 0 /* Doesn't work so we use deprecated instead*/ # define PNG_PRIVATE \ @@ -394,39 +410,42 @@ __attribute__((__deprecated__)) # endif # endif -# endif /* PNGLIB_BUILD */ -# endif /* __GNUC__ */ +# if ((__GNUC__ > 3) || !defined(__GNUC_MINOR__) || (__GNUC_MINOR__ >= 1)) +# ifndef PNG_RESTRICT +# define PNG_RESTRICT __restrict +# endif +# endif /* __GNUC__.__GNUC_MINOR__ > 3.0 */ +# endif /* __GNUC__ >= 3 */ -# if defined(_MSC_VER) && (_MSC_VER >= 1300) +# elif defined(_MSC_VER) && (_MSC_VER >= 1300) # ifndef PNG_USE_RESULT # define PNG_USE_RESULT /* not supported */ # endif # ifndef PNG_NORETURN # define PNG_NORETURN __declspec(noreturn) # endif -# ifndef PNG_PTR_NORETURN -# define PNG_PTR_NORETURN /* not supported */ -# endif # ifndef PNG_ALLOCATED -# define PNG_ALLOCATED __declspec(restrict) +# if (_MSC_VER >= 1400) +# define PNG_ALLOCATED __declspec(restrict) +# endif +# endif +# ifndef PNG_DEPRECATED +# define PNG_DEPRECATED __declspec(deprecated) +# endif +# ifndef PNG_PRIVATE +# define PNG_PRIVATE __declspec(deprecated) +# endif +# ifndef PNG_RESTRICT +# if (_MSC_VER >= 1400) +# define PNG_RESTRICT __restrict +# endif # endif - /* This specifically protects structure members that should only be - * accessed from within the library, therefore should be empty during - * a library build. - */ -# ifndef PNGLIB_BUILD -# ifndef PNG_DEPRECATED -# define PNG_DEPRECATED __declspec(deprecated) -# endif -# ifndef PNG_DEPSTRUCT -# define PNG_DEPSTRUCT __declspec(deprecated) -# endif -# ifndef PNG_PRIVATE -# define PNG_PRIVATE __declspec(deprecated) -# endif -# endif /* PNGLIB_BUILD */ -# endif /* _MSC_VER */ +# elif defined(__WATCOMC__) +# ifndef PNG_RESTRICT +# define PNG_RESTRICT __restrict +# endif +# endif #endif /* PNG_PEDANTIC_WARNINGS */ #ifndef PNG_DEPRECATED @@ -438,22 +457,20 @@ #ifndef PNG_NORETURN # define PNG_NORETURN /* This function does not return */ #endif -#ifndef PNG_PTR_NORETURN -# define PNG_PTR_NORETURN /* This function does not return */ -#endif #ifndef PNG_ALLOCATED # define PNG_ALLOCATED /* The result of the function is new memory */ #endif -#ifndef PNG_DEPSTRUCT -# define PNG_DEPSTRUCT /* Access to this struct member is deprecated */ -#endif #ifndef PNG_PRIVATE # define PNG_PRIVATE /* This is a private libpng function */ #endif +#ifndef PNG_RESTRICT +# define PNG_RESTRICT /* The C99 "restrict" feature */ +#endif + #ifndef PNG_FP_EXPORT /* A floating point API. */ # ifdef PNG_FLOATING_POINT_SUPPORTED # define PNG_FP_EXPORT(ordinal, type, name, args)\ - PNG_EXPORT(ordinal, type, name, args) + PNG_EXPORT(ordinal, type, name, args); # else /* No floating point APIs */ # define PNG_FP_EXPORT(ordinal, type, name, args) # endif @@ -461,189 +478,167 @@ #ifndef PNG_FIXED_EXPORT /* A fixed point API. */ # ifdef PNG_FIXED_POINT_SUPPORTED # define PNG_FIXED_EXPORT(ordinal, type, name, args)\ - PNG_EXPORT(ordinal, type, name, args) + PNG_EXPORT(ordinal, type, name, args); # else /* No fixed point APIs */ # define PNG_FIXED_EXPORT(ordinal, type, name, args) # endif #endif -/* The following uses const char * instead of char * for error - * and warning message functions, so some compilers won't complain. - * If you do not want to use const, define PNG_NO_CONST here. +#ifndef PNG_BUILDING_SYMBOL_TABLE +/* Some typedefs to get us started. These should be safe on most of the common + * platforms. * - * This should not change how the APIs are called, so it can be done - * on a per-file basis in the application. + * png_uint_32 and png_int_32 may, currently, be larger than required to hold a + * 32-bit value however this is not normally advisable. + * + * png_uint_16 and png_int_16 should always be two bytes in size - this is + * verified at library build time. + * + * png_byte must always be one byte in size. + * + * The checks below use constants from limits.h, as defined by the ISOC90 + * standard. */ -#ifndef PNG_CONST -# ifndef PNG_NO_CONST -# define PNG_CONST const -# else -# define PNG_CONST -# endif +#if CHAR_BIT == 8 && UCHAR_MAX == 255 + typedef unsigned char png_byte; +#else +# error "libpng requires 8 bit bytes" #endif -/* Some typedefs to get us started. These should be safe on most of the - * common platforms. The typedefs should be at least as large as the - * numbers suggest (a png_uint_32 must be at least 32 bits long), but they - * don't have to be exactly that size. Some compilers dislike passing - * unsigned shorts as function parameters, so you may be better off using - * unsigned int for png_uint_16. - */ - -#if defined(INT_MAX) && (INT_MAX > 0x7ffffffeL) -typedef unsigned int png_uint_32; -typedef int png_int_32; +#if INT_MIN == -32768 && INT_MAX == 32767 + typedef int png_int_16; +#elif SHRT_MIN == -32768 && SHRT_MAX == 32767 + typedef short png_int_16; #else -typedef unsigned long png_uint_32; -typedef long png_int_32; +# error "libpng requires a signed 16 bit type" #endif -typedef unsigned short png_uint_16; -typedef short png_int_16; -typedef unsigned char png_byte; -#ifdef PNG_NO_SIZE_T -typedef unsigned int png_size_t; +#if UINT_MAX == 65535 + typedef unsigned int png_uint_16; +#elif USHRT_MAX == 65535 + typedef unsigned short png_uint_16; #else +# error "libpng requires an unsigned 16 bit type" +#endif + +#if INT_MIN < -2147483646 && INT_MAX > 2147483646 + typedef int png_int_32; +#elif LONG_MIN < -2147483646 && LONG_MAX > 2147483646 + typedef long int png_int_32; +#else +# error "libpng requires a signed 32 bit (or more) type" +#endif + +#if UINT_MAX > 4294967294 + typedef unsigned int png_uint_32; +#elif ULONG_MAX > 4294967294 + typedef unsigned long int png_uint_32; +#else +# error "libpng requires an unsigned 32 bit (or more) type" +#endif + +/* Prior to 1.6.0 it was possible to disable the use of size_t, 1.6.0, however, + * requires an ISOC90 compiler and relies on consistent behavior of sizeof. + */ typedef size_t png_size_t; -#endif -#define png_sizeof(x) (sizeof (x)) +typedef ptrdiff_t png_ptrdiff_t; -/* The following is needed for medium model support. It cannot be in the - * pngpriv.h header. Needs modification for other compilers besides - * MSC. Model independent support declares all arrays and pointers to be - * large using the far keyword. The zlib version used must also support - * model independent data. As of version zlib 1.0.4, the necessary changes - * have been made in zlib. The USE_FAR_KEYWORD define triggers other - * changes that are needed. (Tim Wegner) +/* libpng needs to know the maximum value of 'size_t' and this controls the + * definition of png_alloc_size_t, below. This maximum value of size_t limits + * but does not control the maximum allocations the library makes - there is + * direct application control of this through png_set_user_limits(). */ - -/* Separate compiler dependencies (problem here is that zlib.h always - * defines FAR. (SJT) - */ -#ifdef __BORLANDC__ -# if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__) -# define LDATA 1 -# else -# define LDATA 0 -# endif - /* GRR: why is Cygwin in here? Cygwin is not Borland C... */ -# if !defined(__WIN32__) && !defined(__FLAT__) && !defined(__CYGWIN__) -# define PNG_MAX_MALLOC_64K /* only used in build */ -# if (LDATA != 1) -# ifndef FAR -# define FAR __far -# endif -# define USE_FAR_KEYWORD -# endif /* LDATA != 1 */ - /* Possibly useful for moving data out of default segment. - * Uncomment it if you want. Could also define FARDATA as - * const if your compiler supports it. (SJT) -# define FARDATA FAR - */ -# endif /* __WIN32__, __FLAT__, __CYGWIN__ */ -#endif /* __BORLANDC__ */ - - -/* Suggest testing for specific compiler first before testing for - * FAR. The Watcom compiler defines both __MEDIUM__ and M_I86MM, - * making reliance oncertain keywords suspect. (SJT) - */ - -/* MSC Medium model */ -#ifdef FAR -# ifdef M_I86MM -# define USE_FAR_KEYWORD -# define FARDATA FAR -# include +#ifndef PNG_SMALL_SIZE_T + /* Compiler specific tests for systems where size_t is known to be less than + * 32 bits (some of these systems may no longer work because of the lack of + * 'far' support; see above.) + */ +# if (defined(__TURBOC__) && !defined(__FLAT__)) ||\ + (defined(_MSC_VER) && defined(MAXSEG_64K)) +# define PNG_SMALL_SIZE_T # endif #endif -/* SJT: default case */ -#ifndef FAR -# define FAR +/* png_alloc_size_t is guaranteed to be no smaller than png_size_t, and no + * smaller than png_uint_32. Casts from png_size_t or png_uint_32 to + * png_alloc_size_t are not necessary; in fact, it is recommended not to use + * them at all so that the compiler can complain when something turns out to be + * problematic. + * + * Casts in the other direction (from png_alloc_size_t to png_size_t or + * png_uint_32) should be explicitly applied; however, we do not expect to + * encounter practical situations that require such conversions. + * + * PNG_SMALL_SIZE_T must be defined if the maximum value of size_t is less than + * 4294967295 - i.e. less than the maximum value of png_uint_32. + */ +#ifdef PNG_SMALL_SIZE_T + typedef png_uint_32 png_alloc_size_t; +#else + typedef png_size_t png_alloc_size_t; #endif -/* At this point FAR is always defined */ -#ifndef FARDATA -# define FARDATA -#endif +/* Prior to 1.6.0 libpng offered limited support for Microsoft C compiler + * implementations of Intel CPU specific support of user-mode segmented address + * spaces, where 16-bit pointers address more than 65536 bytes of memory using + * separate 'segment' registers. The implementation requires two different + * types of pointer (only one of which includes the segment value.) + * + * If required this support is available in version 1.2 of libpng and may be + * available in versions through 1.5, although the correctness of the code has + * not been verified recently. + */ -/* Typedef for floating-point numbers that are converted - * to fixed-point with a multiple of 100,000, e.g., gamma +/* Typedef for floating-point numbers that are converted to fixed-point with a + * multiple of 100,000, e.g., gamma */ typedef png_int_32 png_fixed_point; /* Add typedefs for pointers */ -typedef void FAR * png_voidp; -typedef PNG_CONST void FAR * png_const_voidp; -typedef png_byte FAR * png_bytep; -typedef PNG_CONST png_byte FAR * png_const_bytep; -typedef png_uint_32 FAR * png_uint_32p; -typedef PNG_CONST png_uint_32 FAR * png_const_uint_32p; -typedef png_int_32 FAR * png_int_32p; -typedef PNG_CONST png_int_32 FAR * png_const_int_32p; -typedef png_uint_16 FAR * png_uint_16p; -typedef PNG_CONST png_uint_16 FAR * png_const_uint_16p; -typedef png_int_16 FAR * png_int_16p; -typedef PNG_CONST png_int_16 FAR * png_const_int_16p; -typedef char FAR * png_charp; -typedef PNG_CONST char FAR * png_const_charp; -typedef png_fixed_point FAR * png_fixed_point_p; -typedef PNG_CONST png_fixed_point FAR * png_const_fixed_point_p; -typedef png_size_t FAR * png_size_tp; -typedef PNG_CONST png_size_t FAR * png_const_size_tp; +typedef void * png_voidp; +typedef const void * png_const_voidp; +typedef png_byte * png_bytep; +typedef const png_byte * png_const_bytep; +typedef png_uint_32 * png_uint_32p; +typedef const png_uint_32 * png_const_uint_32p; +typedef png_int_32 * png_int_32p; +typedef const png_int_32 * png_const_int_32p; +typedef png_uint_16 * png_uint_16p; +typedef const png_uint_16 * png_const_uint_16p; +typedef png_int_16 * png_int_16p; +typedef const png_int_16 * png_const_int_16p; +typedef char * png_charp; +typedef const char * png_const_charp; +typedef png_fixed_point * png_fixed_point_p; +typedef const png_fixed_point * png_const_fixed_point_p; +typedef png_size_t * png_size_tp; +typedef const png_size_t * png_const_size_tp; #ifdef PNG_STDIO_SUPPORTED typedef FILE * png_FILE_p; #endif #ifdef PNG_FLOATING_POINT_SUPPORTED -typedef double FAR * png_doublep; -typedef PNG_CONST double FAR * png_const_doublep; +typedef double * png_doublep; +typedef const double * png_const_doublep; #endif /* Pointers to pointers; i.e. arrays */ -typedef png_byte FAR * FAR * png_bytepp; -typedef png_uint_32 FAR * FAR * png_uint_32pp; -typedef png_int_32 FAR * FAR * png_int_32pp; -typedef png_uint_16 FAR * FAR * png_uint_16pp; -typedef png_int_16 FAR * FAR * png_int_16pp; -typedef PNG_CONST char FAR * FAR * png_const_charpp; -typedef char FAR * FAR * png_charpp; -typedef png_fixed_point FAR * FAR * png_fixed_point_pp; +typedef png_byte * * png_bytepp; +typedef png_uint_32 * * png_uint_32pp; +typedef png_int_32 * * png_int_32pp; +typedef png_uint_16 * * png_uint_16pp; +typedef png_int_16 * * png_int_16pp; +typedef const char * * png_const_charpp; +typedef char * * png_charpp; +typedef png_fixed_point * * png_fixed_point_pp; #ifdef PNG_FLOATING_POINT_SUPPORTED -typedef double FAR * FAR * png_doublepp; +typedef double * * png_doublepp; #endif /* Pointers to pointers to pointers; i.e., pointer to array */ -typedef char FAR * FAR * FAR * png_charppp; +typedef char * * * png_charppp; -/* png_alloc_size_t is guaranteed to be no smaller than png_size_t, - * and no smaller than png_uint_32. Casts from png_size_t or png_uint_32 - * to png_alloc_size_t are not necessary; in fact, it is recommended - * not to use them at all so that the compiler can complain when something - * turns out to be problematic. - * Casts in the other direction (from png_alloc_size_t to png_size_t or - * png_uint_32) should be explicitly applied; however, we do not expect - * to encounter practical situations that require such conversions. - */ -#if defined(__TURBOC__) && !defined(__FLAT__) - typedef unsigned long png_alloc_size_t; -#else -# if defined(_MSC_VER) && defined(MAXSEG_64K) - typedef unsigned long png_alloc_size_t; -# else - /* This is an attempt to detect an old Windows system where (int) is - * actually 16 bits, in that case png_malloc must have an argument with a - * bigger size to accomodate the requirements of the library. - */ -# if (defined(_Windows) || defined(_WINDOWS) || defined(_WINDOWS_)) && \ - (!defined(INT_MAX) || INT_MAX <= 0x7ffffffeL) - typedef DWORD png_alloc_size_t; -# else - typedef png_size_t png_alloc_size_t; -# endif -# endif -#endif +#endif /* PNG_BUILDING_SYMBOL_TABLE */ #endif /* PNGCONF_H */ diff --git a/engine/libs/mingw-libs/pnglibconf.h b/engine/libs/mingw-libs/pnglibconf.h index cd203f88c..08e16dc0f 100644 --- a/engine/libs/mingw-libs/pnglibconf.h +++ b/engine/libs/mingw-libs/pnglibconf.h @@ -1,8 +1,8 @@ /* pnglibconf.h - library build configuration */ -/* libpng version 1.5.0 - January 6, 2011 */ +/* libpng version 1.6.13 - August 21, 2014 */ -/* Copyright (c) 1998-2011 Glenn Randers-Pehrson */ +/* Copyright (c) 1998-2012 Glenn Randers-Pehrson */ /* This code is released under the libpng license. */ /* For conditions of distribution and use, see the disclaimer */ @@ -13,162 +13,196 @@ /* Derived from: scripts/pnglibconf.dfa */ #ifndef PNGLCONF_H #define PNGLCONF_H -/* settings */ -#define PNG_MAX_GAMMA_8 11 -#define PNG_CALLOC_SUPPORTED -#define PNG_QUANTIZE_RED_BITS 5 -#define PNG_USER_WIDTH_MAX 1000000L -#define PNG_QUANTIZE_GREEN_BITS 5 -#define PNG_API_RULE 0 -#define PNG_QUANTIZE_BLUE_BITS 5 -#define PNG_USER_CHUNK_CACHE_MAX 0 -#define PNG_USER_HEIGHT_MAX 1000000L -#define PNG_sCAL_PRECISION 5 -#define PNG_COST_SHIFT 3 -#define PNG_WEIGHT_SHIFT 8 -#define PNG_USER_CHUNK_MALLOC_MAX 0 -#define PNG_DEFAULT_READ_MACROS 1 -#define PNG_ZBUF_SIZE 8192 -#define PNG_GAMMA_THRESHOLD_FIXED 5000 -/* end of settings */ /* options */ -#define PNG_INFO_IMAGE_SUPPORTED -#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED -#define PNG_POINTER_INDEXING_SUPPORTED -#define PNG_WARNINGS_SUPPORTED -#define PNG_FLOATING_ARITHMETIC_SUPPORTED -#define PNG_WRITE_SUPPORTED -#define PNG_WRITE_INTERLACING_SUPPORTED -#define PNG_WRITE_16BIT_SUPPORTED +#define PNG_16BIT_SUPPORTED +#define PNG_ALIGNED_MEMORY_SUPPORTED +/*#undef PNG_ARM_NEON_API_SUPPORTED*/ +/*#undef PNG_ARM_NEON_CHECK_SUPPORTED*/ +#define PNG_BENIGN_ERRORS_SUPPORTED +#define PNG_BENIGN_READ_ERRORS_SUPPORTED +/*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/ +#define PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED +#define PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_COLORSPACE_SUPPORTED +#define PNG_CONSOLE_IO_SUPPORTED +#define PNG_CONVERT_tIME_SUPPORTED #define PNG_EASY_ACCESS_SUPPORTED -#define PNG_ALIGN_MEMORY_SUPPORTED -#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED -#define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_USER_LIMITS_SUPPORTED -#define PNG_FIXED_POINT_SUPPORTED /*#undef PNG_ERROR_NUMBERS_SUPPORTED*/ #define PNG_ERROR_TEXT_SUPPORTED -#define PNG_READ_SUPPORTED -/*#undef PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED*/ -#define PNG_BENIGN_ERRORS_SUPPORTED -#define PNG_SETJMP_SUPPORTED -#define PNG_WRITE_FLUSH_SUPPORTED -#define PNG_MNG_FEATURES_SUPPORTED +#define PNG_FIXED_POINT_SUPPORTED +#define PNG_FLOATING_ARITHMETIC_SUPPORTED #define PNG_FLOATING_POINT_SUPPORTED +#define PNG_FORMAT_AFIRST_SUPPORTED +#define PNG_FORMAT_BGR_SUPPORTED +#define PNG_GAMMA_SUPPORTED +#define PNG_GET_PALETTE_MAX_SUPPORTED +#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED #define PNG_INCH_CONVERSIONS_SUPPORTED -#define PNG_STDIO_SUPPORTED -#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_USER_MEM_SUPPORTED +#define PNG_INFO_IMAGE_SUPPORTED #define PNG_IO_STATE_SUPPORTED -#define PNG_SET_USER_LIMITS_SUPPORTED -#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED -#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED -#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED -#define PNG_WRITE_FILTER_SUPPORTED -#define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED -#define PNG_WRITE_iCCP_SUPPORTED -#define PNG_READ_TRANSFORMS_SUPPORTED -#define PNG_READ_GAMMA_SUPPORTED -#define PNG_READ_bKGD_SUPPORTED -#define PNG_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_READ_sCAL_SUPPORTED -#define PNG_WRITE_hIST_SUPPORTED -#define PNG_READ_OPT_PLTE_SUPPORTED -#define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED -#define PNG_WRITE_gAMA_SUPPORTED -#define PNG_READ_GRAY_TO_RGB_SUPPORTED -#define PNG_WRITE_pCAL_SUPPORTED -#define PNG_READ_INVERT_ALPHA_SUPPORTED -#define PNG_WRITE_TRANSFORMS_SUPPORTED -#define PNG_READ_sBIT_SUPPORTED -#define PNG_READ_PACK_SUPPORTED -#define PNG_WRITE_SWAP_SUPPORTED -#define PNG_READ_cHRM_SUPPORTED -#define PNG_WRITE_tIME_SUPPORTED -#define PNG_READ_INTERLACING_SUPPORTED -#define PNG_READ_tRNS_SUPPORTED -#define PNG_WRITE_pHYs_SUPPORTED -#define PNG_WRITE_INVERT_SUPPORTED -#define PNG_READ_RGB_TO_GRAY_SUPPORTED -#define PNG_WRITE_sRGB_SUPPORTED -#define PNG_READ_oFFs_SUPPORTED -#define PNG_WRITE_FILLER_SUPPORTED -#define PNG_WRITE_TEXT_SUPPORTED -#define PNG_WRITE_SHIFT_SUPPORTED +#define PNG_MNG_FEATURES_SUPPORTED +#define PNG_POINTER_INDEXING_SUPPORTED #define PNG_PROGRESSIVE_READ_SUPPORTED -#define PNG_READ_SHIFT_SUPPORTED -#define PNG_CONVERT_tIME_SUPPORTED -#define PNG_READ_USER_TRANSFORM_SUPPORTED -#define PNG_READ_INT_FUNCTIONS_SUPPORTED -#define PNG_READ_USER_CHUNKS_SUPPORTED -#define PNG_READ_hIST_SUPPORTED #define PNG_READ_16BIT_SUPPORTED -#define PNG_READ_SWAP_ALPHA_SUPPORTED -#define PNG_READ_COMPOSITE_NODIV_SUPPORTED -#define PNG_SEQUENTIAL_READ_SUPPORTED +#define PNG_READ_ALPHA_MODE_SUPPORTED +#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED #define PNG_READ_BACKGROUND_SUPPORTED -#define PNG_READ_QUANTIZE_SUPPORTED -#define PNG_READ_iCCP_SUPPORTED -#define PNG_READ_STRIP_ALPHA_SUPPORTED -#define PNG_READ_PACKSWAP_SUPPORTED -#define PNG_READ_sRGB_SUPPORTED -#define PNG_WRITE_tEXt_SUPPORTED -#define PNG_READ_gAMA_SUPPORTED -#define PNG_READ_pCAL_SUPPORTED -#define PNG_WRITE_sPLT_SUPPORTED -#define PNG_READ_SWAP_SUPPORTED -#define PNG_READ_tIME_SUPPORTED -#define PNG_READ_pHYs_SUPPORTED -#define PNG_WRITE_SWAP_ALPHA_SUPPORTED -#define PNG_TIME_RFC1123_SUPPORTED -#define PNG_READ_TEXT_SUPPORTED -#define PNG_WRITE_BGR_SUPPORTED -#define PNG_USER_CHUNKS_SUPPORTED -#define PNG_CONSOLE_IO_SUPPORTED -#define PNG_WRITE_PACK_SUPPORTED -#define PNG_READ_FILLER_SUPPORTED -#define PNG_WRITE_bKGD_SUPPORTED -#define PNG_WRITE_tRNS_SUPPORTED -#define PNG_READ_sPLT_SUPPORTED -#define PNG_WRITE_sCAL_SUPPORTED -#define PNG_WRITE_oFFs_SUPPORTED -#define PNG_READ_tEXt_SUPPORTED -#define PNG_WRITE_sBIT_SUPPORTED -#define PNG_READ_INVERT_SUPPORTED -#define PNG_READ_16_TO_8_SUPPORTED -#define PNG_WRITE_cHRM_SUPPORTED -#define PNG_16BIT_SUPPORTED -#define PNG_WRITE_USER_TRANSFORM_SUPPORTED #define PNG_READ_BGR_SUPPORTED -#define PNG_WRITE_PACKSWAP_SUPPORTED -#define PNG_WRITE_INVERT_ALPHA_SUPPORTED -#define PNG_sCAL_SUPPORTED -#define PNG_WRITE_zTXt_SUPPORTED -#define PNG_USER_TRANSFORM_INFO_SUPPORTED -#define PNG_sBIT_SUPPORTED -#define PNG_cHRM_SUPPORTED -#define PNG_bKGD_SUPPORTED -#define PNG_tRNS_SUPPORTED -#define PNG_WRITE_iTXt_SUPPORTED -#define PNG_oFFs_SUPPORTED +#define PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_READ_COMPOSITE_NODIV_SUPPORTED +#define PNG_READ_COMPRESSED_TEXT_SUPPORTED #define PNG_READ_EXPAND_16_SUPPORTED +#define PNG_READ_EXPAND_SUPPORTED +#define PNG_READ_FILLER_SUPPORTED +#define PNG_READ_GAMMA_SUPPORTED +#define PNG_READ_GET_PALETTE_MAX_SUPPORTED +#define PNG_READ_GRAY_TO_RGB_SUPPORTED +#define PNG_READ_INTERLACING_SUPPORTED +#define PNG_READ_INT_FUNCTIONS_SUPPORTED +#define PNG_READ_INVERT_ALPHA_SUPPORTED +#define PNG_READ_INVERT_SUPPORTED +#define PNG_READ_OPT_PLTE_SUPPORTED +#define PNG_READ_PACKSWAP_SUPPORTED +#define PNG_READ_PACK_SUPPORTED +#define PNG_READ_QUANTIZE_SUPPORTED +#define PNG_READ_RGB_TO_GRAY_SUPPORTED +#define PNG_READ_SCALE_16_TO_8_SUPPORTED +#define PNG_READ_SHIFT_SUPPORTED +#define PNG_READ_STRIP_16_TO_8_SUPPORTED +#define PNG_READ_STRIP_ALPHA_SUPPORTED +#define PNG_READ_SUPPORTED +#define PNG_READ_SWAP_ALPHA_SUPPORTED +#define PNG_READ_SWAP_SUPPORTED +#define PNG_READ_TEXT_SUPPORTED +#define PNG_READ_TRANSFORMS_SUPPORTED +#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_READ_USER_CHUNKS_SUPPORTED +#define PNG_READ_USER_TRANSFORM_SUPPORTED +#define PNG_READ_bKGD_SUPPORTED +#define PNG_READ_cHRM_SUPPORTED +#define PNG_READ_gAMA_SUPPORTED +#define PNG_READ_hIST_SUPPORTED +#define PNG_READ_iCCP_SUPPORTED +#define PNG_READ_iTXt_SUPPORTED +#define PNG_READ_oFFs_SUPPORTED +#define PNG_READ_pCAL_SUPPORTED +#define PNG_READ_pHYs_SUPPORTED +#define PNG_READ_sBIT_SUPPORTED +#define PNG_READ_sCAL_SUPPORTED +#define PNG_READ_sPLT_SUPPORTED +#define PNG_READ_sRGB_SUPPORTED +#define PNG_READ_tEXt_SUPPORTED +#define PNG_READ_tIME_SUPPORTED +#define PNG_READ_tRNS_SUPPORTED +#define PNG_READ_zTXt_SUPPORTED +/*#undef PNG_SAFE_LIMITS_SUPPORTED*/ +#define PNG_SAVE_INT_32_SUPPORTED +#define PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_SEQUENTIAL_READ_SUPPORTED +#define PNG_SETJMP_SUPPORTED +#define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED +#define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED +#define PNG_SET_OPTION_SUPPORTED +#define PNG_SET_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_SET_USER_LIMITS_SUPPORTED +#define PNG_SIMPLIFIED_READ_AFIRST_SUPPORTED +#define PNG_SIMPLIFIED_READ_BGR_SUPPORTED +#define PNG_SIMPLIFIED_READ_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_SUPPORTED +#define PNG_STDIO_SUPPORTED +#define PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_TEXT_SUPPORTED +#define PNG_TIME_RFC1123_SUPPORTED +#define PNG_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_USER_CHUNKS_SUPPORTED +#define PNG_USER_LIMITS_SUPPORTED +#define PNG_USER_MEM_SUPPORTED +#define PNG_USER_TRANSFORM_INFO_SUPPORTED #define PNG_USER_TRANSFORM_PTR_SUPPORTED +#define PNG_WARNINGS_SUPPORTED +#define PNG_WRITE_16BIT_SUPPORTED +#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED +#define PNG_WRITE_BGR_SUPPORTED +#define PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_WRITE_COMPRESSED_TEXT_SUPPORTED +#define PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED +#define PNG_WRITE_FILLER_SUPPORTED +#define PNG_WRITE_FILTER_SUPPORTED +#define PNG_WRITE_FLUSH_SUPPORTED +#define PNG_WRITE_GET_PALETTE_MAX_SUPPORTED +#define PNG_WRITE_INTERLACING_SUPPORTED +#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED +#define PNG_WRITE_INVERT_ALPHA_SUPPORTED +#define PNG_WRITE_INVERT_SUPPORTED +#define PNG_WRITE_OPTIMIZE_CMF_SUPPORTED +#define PNG_WRITE_PACKSWAP_SUPPORTED +#define PNG_WRITE_PACK_SUPPORTED +#define PNG_WRITE_SHIFT_SUPPORTED +#define PNG_WRITE_SUPPORTED +#define PNG_WRITE_SWAP_ALPHA_SUPPORTED +#define PNG_WRITE_SWAP_SUPPORTED +#define PNG_WRITE_TEXT_SUPPORTED +#define PNG_WRITE_TRANSFORMS_SUPPORTED +#define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_WRITE_USER_TRANSFORM_SUPPORTED +#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED +#define PNG_WRITE_bKGD_SUPPORTED +#define PNG_WRITE_cHRM_SUPPORTED +#define PNG_WRITE_gAMA_SUPPORTED +#define PNG_WRITE_hIST_SUPPORTED +#define PNG_WRITE_iCCP_SUPPORTED +#define PNG_WRITE_iTXt_SUPPORTED +#define PNG_WRITE_oFFs_SUPPORTED +#define PNG_WRITE_pCAL_SUPPORTED +#define PNG_WRITE_pHYs_SUPPORTED +#define PNG_WRITE_sBIT_SUPPORTED +#define PNG_WRITE_sCAL_SUPPORTED +#define PNG_WRITE_sPLT_SUPPORTED +#define PNG_WRITE_sRGB_SUPPORTED +#define PNG_WRITE_tEXt_SUPPORTED +#define PNG_WRITE_tIME_SUPPORTED +#define PNG_WRITE_tRNS_SUPPORTED +#define PNG_WRITE_zTXt_SUPPORTED +#define PNG_bKGD_SUPPORTED +#define PNG_cHRM_SUPPORTED +#define PNG_gAMA_SUPPORTED #define PNG_hIST_SUPPORTED #define PNG_iCCP_SUPPORTED -#define PNG_sRGB_SUPPORTED -#define PNG_READ_zTXt_SUPPORTED -#define PNG_gAMA_SUPPORTED -#define PNG_pCAL_SUPPORTED -#define PNG_CHECK_cHRM_SUPPORTED -#define PNG_tIME_SUPPORTED -#define PNG_READ_EXPAND_SUPPORTED -#define PNG_pHYs_SUPPORTED -#define PNG_READ_iTXt_SUPPORTED -#define PNG_TEXT_SUPPORTED -#define PNG_SAVE_INT_32_SUPPORTED -#define PNG_sPLT_SUPPORTED -#define PNG_tEXt_SUPPORTED -#define PNG_zTXt_SUPPORTED #define PNG_iTXt_SUPPORTED +#define PNG_oFFs_SUPPORTED +#define PNG_pCAL_SUPPORTED +#define PNG_pHYs_SUPPORTED +#define PNG_sBIT_SUPPORTED +#define PNG_sCAL_SUPPORTED +#define PNG_sPLT_SUPPORTED +#define PNG_sRGB_SUPPORTED +#define PNG_tEXt_SUPPORTED +#define PNG_tIME_SUPPORTED +#define PNG_tRNS_SUPPORTED +#define PNG_zTXt_SUPPORTED /* end of options */ +/* settings */ +#define PNG_API_RULE 0 +#define PNG_COST_SHIFT 3 +#define PNG_DEFAULT_READ_MACROS 1 +#define PNG_GAMMA_THRESHOLD_FIXED 5000 +#define PNG_IDAT_READ_SIZE PNG_ZBUF_SIZE +#define PNG_INFLATE_BUF_SIZE 1024 +#define PNG_MAX_GAMMA_8 11 +#define PNG_QUANTIZE_BLUE_BITS 5 +#define PNG_QUANTIZE_GREEN_BITS 5 +#define PNG_QUANTIZE_RED_BITS 5 +#define PNG_TEXT_Z_DEFAULT_COMPRESSION (-1) +#define PNG_TEXT_Z_DEFAULT_STRATEGY 0 +#define PNG_WEIGHT_SHIFT 8 +#define PNG_ZBUF_SIZE 8192 +#define PNG_ZLIB_VERNUM 0x1280 +#define PNG_Z_DEFAULT_COMPRESSION (-1) +#define PNG_Z_DEFAULT_NOFILTER_STRATEGY 0 +#define PNG_Z_DEFAULT_STRATEGY 1 +#define PNG_sCAL_PRECISION 5 +#define PNG_sRGB_PROFILE_CHECKS 2 +/* end of settings */ #endif /* PNGLCONF_H */ diff --git a/engine/libs/mingw64-libs/libpng.a b/engine/libs/mingw64-libs/libpng.a index 5b1f58d9171d774f19ac27176c20ae0f62ee2fd5..99b9639f3cb04da3812fa09da55950545398c36d 100755 GIT binary patch literal 320860 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¥p9`lfj%O&B+J%&3tg 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 z

b+^d=4@v3PUcMdGbL^&8%<3O%Z4|~8?WG@@o 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 literal 970426 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

    LERRb+GkwZuJ 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
      PJU^kp*E;Nx=WNiO&o|HRBxX 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

      U1U{`X*H&~p*@bK}j9P~SKj{&l6E2o7VY zDHfd4I;+1wg7ZHUE$$}~myg;e(k6z&&0*7o3*gNCG9!kYLU2*K({ke4ec@kRjgV2F zlgD;V9B7Q#H8IO<$%D;LLkf;g!(L`u8flr9rXKypLzEk?C~W1N6tqu!_JMpG&Q!9M&R0T^RJ-WMEZ3AWbr6I zh^Je>{@zU1?HN()Y=m0VRw@#^q9=@4^PM>}zT($L%h7Q2g8<>jr(}j7pV`lJ>1+F& z_cdG)e&T}A=)ISgMp{y7Txe<|u_q>l%41Et0gYsM!gJ-Z@qIDxNVC0^j(UDta&&p#<`$lgv z{yn%F4DkmJusrd`%>00cUYd;E)(TtPbWWA_l-bPX+g zrAM~!59GN!57HP^j`f-Gp`3NOnLOa-w=TgM^g$exWDm)U`7`-Y8ENT`v0OaSGP7sS zR=PJ+j~=uJD)BQ2fCC!Hcqm!vu2wMFnJ+E--yh7akVzJe8jOsRD3(eO3fscdVHRS>cs zfiEE-?&OHq>tEjaH_vaVKQId!Yv(s_(uq+4IxIK#a$E=Dxb`FS5cFJO-1R)_yVuZn z1L5jO%XR6rIY!@wn_nZ}wcKO`w7agPV)?P(5WD6V)LmwO<{tZW2(5=eSqQWNm{-7$ zrjSb>Zu;EC0@F1VhUCqb6zo$p8OnJ+7k6&wpeqmb{s4LC5bE=uH1IqmzO)?}iuOi+ zD8B^@eKzVNz05WgNqYdl&1u>m`t-W?*Iz?8W>V0` z_BQPg#MaO$6zT}!6ekxUiS@~;vFCGU=fz&inUxcJef9-&W}=Za%Lq5;!OWbd?^EE_ z11J{0vcM4E;(YgEAOzC{EdF40!Z|(;RG{)&9vleCoR-_@UVIu?F&2Lo&V6fKtN-kC zhT#{!l2-60V1;t+RRGyXv%gvUPPq9GRo+c@lcO_4^62x7NOM zeycwiZZ<2fu>;xrK0V1B51XFFtg9_B`p@B}?W8gGJl0*Y;`EPu8a~Wjw-CO17E`kw zfeEAET>dE4`#U3bFhYv3;_0W-ID9#{q&|9kv~x>VEIa&ot$*ygi;=ZGfLR?hjDBtT zn>c+~5s7_n8yp$^c~0ypYIF2NG#Eof>=UeCn%>HbJw`r((+A2X@?t2J2(P~ywS$X(VuWF*}Tk%X(D_7U^NxkwU*4GU-mZ# zmw?HQ-H{F^++0W5&*1qOEYb{5#~ls_Ct#3jJ-$&aUi%K_gyH5&uz4*v8slTzbC>Q2 znD!i;1zsz|MEfYx?aoK{M7!q4*6=awT6#>w2HaSH?5FHw6xtt;lyLz;H z{^+)7S99bZ3qwuCk+t7MVvmwUG?mU<8X@YfA7EJBLF@Ijl$v;5CwhLQb==X&IWTl} z_{ta*+B+v2rscN8YN<}l_0SnO+BIAdY5GrK+2ocrZxKKG`RH+x)@%0y8zW+m8oGVG zy1&M*-%ZWMc^}RsXlaA2g6_AdqvJ0sQ3iK&YmXJkG`hX@na<>o)SQ3q%{_Ho$as&h zXP|wUkL`(eiCudsD$0$mY4qHii#lw6Fm`RTWF*{=ValgQV%M(o1mfpgp|$%Odak)+ z2^xI#=r1r*(;|=@pVq{Pr)Sm-Z?2DIw_)bLu?;i9*qW_A?3Jk}8gPax3UO$l}C1iq7tWUvbhA#W6p z=&7!o*PZy#sZL(^A$XjlgVkaRcO)%%s;@sX9jCKV6%bWjpsFh+SXEb>MD?UOY%8+K zG&LhY)phIP4(LqaxPVdJoziT{@sRB58QcT**jgOtgu!SGHIanVO@mGh#I?HTS#gPz z;)TgyV}n#tY(|cRCCZq&zyd7g-{`0FBjj20baAooPnJXD90hP2E~b? zs?$2Tvypvzd=+`!y-LoYd~(s5ar#hh@X2m=_Zi45>@*iU*N}jdZJM2RmIc}I8d)Er zx)pb~A%O7;|A91veI<=%DFET z@Nx{{ORZm0Qx{EdFXj)JOg~E#_J?R$!sky-5agQLlWs`U#ynrhUs}^Zca-}4{_@Hi z+{Wum^BY4fA4vLMd|FEF73lL|0ewa+*QnvuP9ptm} zDGemt;b->C@+sH9h-B)6`120_8zo^pS{h&{P(xGb?oN96!STQ2o(3U9*srWR{!iUE zP_f}4T{LW{&?pv46X^fcd8-I$A7M%>$?rZe^{yutc-(MII^+U@sIJ{4$dDsAoaz6rQUyzkDlT8hn~gXPAVebjCcIwe19?d z-?lI935@ssU<6Wd{@cluGGCkJXtq^yJ(`W4iC;M(kMrZ0Zrp(u>3j)FQJ28t1 z+MX{mpSE*?*Kb2Z5lBIbKFTYvc7iw1hrv@a8ht8F9{>#A*gJ#hbskM!=>&gi`Y~g@ zFKBKVH!3zv>P@m6d_j8?v|(>yc9TdNwYRRIwq@K4QS&)TOQoVD%z}M!iUnSNq0VZGF7r$DmjM8JuI@<7fi@BRzAp8yp@#8Useo0 zWP&MUe^Nd|fIlu6e3(Vv^9Au;Klts@bkpz;eL>vrzqsBBZeikpFPM0Tb?`CHI^+wk zs##u*JHCTYFmo6TKOEo$xBfnz8hHei{lZ{nMSau>{vrKT;`gQ~&mFhzZPU+hfyYRT zTjH0MRXV|^&EA{w7t2=RIjNdbC-@B0`z^h^qPi5%li=HuFuaZPKGY&rqHH_o9I!dC z6b}n5Ug-p%<%~l%!`z&14S1fj4##JS6}vd^>-fBOrtD^cBk=-wFiz~*!`a`*XM0Ay zz`2cnb_m`5Zf$ynbDHCF#H78PwJt8Jokg#5{?&2$aR%+<-1Tv}o;|N|<_-QXPh-#s zzQJ9-!QX{miV}R2lehYV^bJWoS%aQ}Hpo*h)5k1T21pmtHR)0`Gd>Q;3O=VLu+PFMo&k4TA z)NX$e5A2yIa)N(nYAyFfGqoS;%@ca`z)}BA?B;H4vtUd8{w}mc1NL(J58f0@CgI&`pkOsT= z8t1JGhHaaMTBbGFm2M0Qjl8p%Is%%`2e3Io@|%r z1jku^e=uCqP*+!m8K^z-nS=Itn|&ZL+X?2{ti!=@Erp4F9xOP)cK#96w6vmD`H7bQ zzMTbj#F^ysIMkTh&U7=1L~P!=)UY*;559SpU!R(2I_FQe`5RKhwRJTmW%w*JPaCG# zFx+Gc>bHY~`If&61^5%tnB>(g#dFcY3vFZXO$}e%P+T3wv<(mbmX=|Vn`g5&r-ql5 zHPm6hs3<9tLtByEGqn_%C=M*1TYd7EjOP%Mwvw} zz1{`$uvA2c=<>2lZ1!F)SyEF^6O2-u@m9NXHnYrT?oSQV$CBlH&B0o?ubHqOfHv%| zXq6LOX1j4+sOw6K@0Bjk>(+<5PNeiD?$;&=H-y6SKwN2Ac`+UUcY=-L_>l1i9~60p zwT4e`GVTg>rKh}tmy5$g;kw0(im*2>uEWE)c6D zXgtavyvhpxuDxI##$6-q1h2Nk>m%(Y%vZBTrq#-935Bb0T2NjFEAVVzQEgdWRRum3 zj-%8K)-PK_T|Xv2+-xh}h9a0fnZ0R~^;H`EZG2->5!R+rk+cKrY|GS%*#^Gqj{MxqoGUw8oc_Y353)<2lu@3-x~L1WxtuLQ$MLky8V@oQo2vlQ=c73(byF z^EoxhOr27va_Y1oo;$9?5JKx6sneJ|JxD7?W}k6VXIup5`7+MvLcUBbCs+D1&I;lg zVmypX6XevTA#!I%qst@)Z}bHCN}dd?i{t4R8w9~15WBgW{D-^bvL+Dxrdp1%MG#=7ToY8FulpcN!?5?O3C;O z=`b@vGpZN~Cv_{gY(FVW%6yVDKXik&OIFs$>-;_IJm3bG&@?S|Cm%BoL$ai}vZ%J9 zuC@lxwWq$ujy_`f!Yn8Cbv6|%7e=%&+e!TsQ_Yql+v}awH@Ga;GFT^GMN$R&%{tR} zSjsRoxA85u2WuIItVVAxJfQi#>1OP}(ntFo zI@@wmKjL1-8VKInfG5ED_>E$p{<|mn7i%ExGPu+sE`^1VdU6ak%}KTACEF}nZ%+bK zk8q2zMq-5PiJ)b&)vZlKYuHREu^zA{x~adnNa z1yX#hB*#Qy$>qKf{C~OV@flW4@*7Y5dzSAt0!_aU=bOkL}RWFV%aRR@#bb7cF?^tpI zciB<{O}fZvzQ=M|+#pteukWX@#I%qI*#BGK7sh_FFfMRx?tQ*4I0E@Y-SM{*iE!&^ z9&TF~3Owzjqf~fh87|EP+H7At;i{TyGIhJgaw+X$&uSD`~oxt-rdl&%4&3o=z$ag*0z8*H-NA z*sd}s@Sg7lv9w(djQzk@iLw|v@Heh0iDDo6t~X*g<8LRDHEp7Kx0$Eep6D5vlX3!1 z+q=?gVxTaEXJbxRS``e;P2uTSs4Fc&1ujhCF+8m+EkOn5*=Q)nr!s5K(V{})gJZVZiV@l8hhACmy(wj~A1da7q zr+jRrKQq#_s=@lnYsb+p%H??ZBfem*DQFso$sf+d>g#b4lzYP15lzW~Hh*Xm{&q8~ z9;}(B(X2GS9IcO-VhyHPl3sGG$zPMQ!Kl66sHLkJaSlna`WTlu0#~NIWy=4}l&AAx zE`K^XioD9UnWB91YpT6EC5)3jf2arkb~mTUboq#j(xit=$@L{uWK+sGQzU}F-Q2k( zZvGgr`a^U%(lpbaW|}h3r7SaLF2&#O=1i2%F}WH#W8)HLCT8S!rQBoWAHd&k?o%pD z=lgV_*j@!T7i3e$(R@Et#n(3*@^INRRKutA4f(h*=7eh99%K~Bl{=wj?jNBq#ax9% za zcc}_f2`8|M#?rFlD!kgKu*2+?={Sq4#^8*QayrbRBnBodp%+(F8tMY70%KD!S`)>* zkfaJfGE`?ShXqon!-dVJV45vxxOrT%r!8r?`CPPju&REs)8Qhzl8F68Ck(q)HhZHAntTJEFn(^_z+QrQ)%p}HPy0!lomX<CW(IoHa%` z&@AU5{{qerF#!onbPm$g8UlqZkY>`zx9Q`9%a>H(i0uUDvOrHJAYqB#Y%nYeUU;6^ zS2*`VCo@&pff6(Y*wEG(LmY+e~FFlV%x|vdrUMTj3s)r1d3Q9o$V$|gQf4n@Z+y{aIaqQVmdPq@=L{nQ8C(#r8S6``XXxS3Ua+K z!yk;}ji!~8i=vn;I>A+Zz7Ua%wwG~wveSbq4zAvSlKv1~R!^lX z{j~OCBBHmGS_nK&(kV3bBXOJ#ugBem&PQ1iG0{{lvZ>Aq#igZ1cz-0HPde@=elt9| zdmwV6S%U;cWAuq7H4QKmDZ1g}L=+=TnonF>hUpIyv^VsuaNI*i#5u{n5UmEUlSA}7 z?nu581S#_?7l3WAO#H8hVhGXg1X1E>#)CAey^mynLbm{!*O8fboVh2twM650CvO~j zsId~NdK*9@7phd=aZMsQA;4~9U z*ADE%ORSKvOqOLlnNfXA^g`rxDwJ|Mwe&F0DF|G=wyhLjYsrHk`-tR)jys84 znQl04Dau=RU>pkt5thx0W1+#aqYP{O00nvK2dc~N+rsW<3k(YdlUa7JlTN!N-bK)t zT)264f{z@x%pGezQtfBYoQm!A0pgi5@(g8h9F&n~o^(@|qK&$7&FdQ7J6+L-r(n$Q zHEat9p`;mq?j*f=9YpV)r1x$lPch4y?yuj6!Ji|2D#qfwY4jY4yD{Tx$&2L9aNL*N z0;|0mvh=HlSnxEdDfu)+-Ivo*$*j&u(k&yL+<|0oI;(SErdrYY zz1LC7+~eZAc3^K>EtgbQZ(3KE)TrJcQ;KhS!EhF5t$9(Ud(^G9R^Dm1-=elgSj%Jm zQL09JOEoOm;H$C}ZBn>!!KxW?SWa zR7t-HT`;pi9mp=JHzjMshEywvMBtvIN8|zIQ8;_GV)|)ndfpkB!I_yS``YGKZ za6hylZ5oVp#t1To(`e!VUP)Sx5rVI39S{4MTO!;o;1aBK+%2v<*4j3WLI=NL@blwp z;}&D%jo`Q+wip|~MB3W8#n?C%%c;Fg3_s@5F8E8NGfWV38a58xXe;{4ZU>n*?Qp5G zlxsJw9%S0I)216&+d0|u$ToAbZVA@QNVLy&3#{$uqVwtZE~;O3CQLHB_CC{w9L!F* z4f{+RZbRC(VV`Nkw+JS+RP-gR%`nz}VXSp$WSF@B!q|%4jxGUXpF8Z*7=e9`(%9i_+U{_NO+#R4 zoU6<$e6g#$jkdZD2r&A6f@&8G7AGBb=_2CoSQBI?9W@mX!%|nT;ShEmUk#l44yEZ< zETj*CUO-C*UK7nrf8DcvZknxQtlfSExkphKH}PyA4=miov(3c{cX~!T)icJo4gG*= zWSrI+lg43&;d4dXO;+oApeT{w z&LI#7hN26XpeS%~z!*?nhK0rwxdQ6enuX;Yl=pH}(ZxPGO}Pr0Jp9#}mD7)q#z6ul z5QTKNh1+C|=zS`Yr|VcxtIkD39rqcZiOV+I;Bygp^ecn-?b*`sXH3I8Wk|!HF%75F zt6nYCeQmyfA~#7j8^{aI|R8BOtZnwK3*mJ1(YK!qz!9elV7UQd%DQ$f9 znDNy%N*iB2X4?8L(r4D;!m;~=NxKDc;c4DJ?KY;kwYJ8;+pTX9=AfvVciqMm-gP-R z8&l}0ybKZc3>^KWph`DUXz z7g5&hTL`}q+%{v{pOEgyx9GS}nNt(|7z7PVS7piDk{vb9!9+Xq`n| zBG><2U%)M}dT&mrra8{{(7$km_}v#E{Z&Z!jQAT7-k30s$wN=sOB^}_l@;&7>)FN|(ND3!*n{-H8jNNzX!2RsHYZWul-yANO# zfm;Du2wVg39KZ!zA)EFbLKhFGvWaXjVn$TNTL;WAGjH>oTSG$5ct-s$hTe!y?;Qr6Dy14$fvU^Rr2mABFd{B*7A zHUeSM0w3_x$uWe&xDp!Xul+Q6;tGT#+5>Ov;teg!sbA*Pev<}_>G(+fZiQ-_PVQ-u ziPDj%a`BoG8uVi8T@VrWF_ThEuQHGM%|pu059)XRD8u*w_GFe z)bBO0c}Uyr&Nj=*=^hTfOfnzX(yfPVup|9?P??<<>^G+*4*&=4LVKDZo!Enn(e@MRM1;vhfagnosHOT|N%VaE-( zTdlBZCt=F2RfpKwJ?wa^%`)vp)*6WPSWz%^bKPLKa@xi@?|d-+!Oe3XxpQO=QkZy| z8=BWzu+WZccTatFXzP$gaM^NpioYA_Z!Y~AA<&KE?M3czJAN~MQtj^H&xcy)^|Je= z+T~%mInrJ_eEf(BLksN1J1@1DEz+BO_ptEyj{P~?sj}N znO$yQ0c&UNE4X+3!j_h~?xpTpSh5Bs3#G%3+vi{F>?LItbrgQCh5lOodeD#Cyw`4O zw|kV?^M~6#@>UOB(o}zN;^hnHY*3GsKN?hD)7zqi>u<=Ji61*I^#BaCSpCgUAGzONZ1pqk%CbX;>`M-xGS(V=%Gedp)!A{IADR4( z`>Z?FUTBRpzqU_1zBt_)-2EQJ_Kj-Ziw&Y z&Ycj(_WoE=N&YOB74bjWcz!OP}sTKj&FAl4jr}HKCjlEX{DLdpMK=> zjHddH!^$5WI_lB`?#LD#cK%`eJh%J9cH(Bci83E@Q{9=U#}mQ~YOy~7yPLbu{-?2G zq-i&UKYkAp&Q-)Q>P6}A899)ZM=FydbwS( z!cHA-7w6fjZb+2^&bpO#ZY$bcm)cKnu#-05c-hL81#`YBKv|D>#|*GPxC%Ae%dK^9 zuy-3fS610&VZe*a>?O5!FM>BN+k7Pg1JM-RqnBmQM|QT@bKQ_#?uJ%P&9AZdn(hiN zzV|8Fr|Hj>@xp^VN3=&L>|8mb`5Aj@*;0FHp566$!BF?zM?Z(>2VWg}@VOiEbLg}( zg-$Lid*nrK-!&7)Z?)&S`=;jR=N8z_?q)mLO}!}J4)4sh`@rE=k-%oh-fxrqQZZ^kK?-e7mFZCs$K!;5 z_wq$)<&P|~pQ4j{uMq~w!|!nX?zFcpE1P-auo3pvW_aT(7uj(;?IjP{*DnjV+P!OQ z>~nTLdf})!xO9Z=P`lmz-GXT?Ew|DsBP(a8Q~v(tiw3lOH-6aWIRn4NiL$84PAs$I zYae;~3N)aw-LKXTAGW(}w!`n*v&!tWcgJsOd3@ruIW6~&FQ4Nkk1uce9?fCmR(t8Y z+w8>J3Ex_N+za`YWQT{3<`CxShH4f!)>MU?LzN-XkHRtm>P;x!mDJr?lUOz&6x)_T zLp`CA)KE4R(U3l#D*S9StJ zYU*%^`imEZ=tV_HOw17Pc0=?@QzLpLB;VY^ADe{miAO`zl2C0!lhhEss1VK1@a$q| zsSqY?N;_iwTPI0TVsyI(ANz#l3uumnP3+AjOw%~MCr3`>IGG<(SWWf*UvhG+{r_N3 z&fNar>5?2}MrWT!;ISqICRlUE1S7wn?Let%)djLhBg(!O({oV2c==pk6T)y9ebR-A z1tBsN!)gfM95moHUdJeDJt~fCT@KJ|75;)ol%H(eG-ik@(vw|K_u~8RSoIKYU_V1r zjXnbwr5wB7I?MBzU$~(mG{17ek`RqWh1BDwvLmTTfADR5sIEDLN6k<}ZAfeiYIus5 zbA)WO$ZB*uh9Avgl$}V=$fa_mg054i2+aefQyr6$FoU6ZLWy)KG`CWudT~ST#Uj;^ z9P()vjo16?R_BJsdpI|IIuduePDzXi2{Dx$<+L`Tu10L7L$GsBWr1-fI*974ljwq3k{2+uDuz##3h<1ytIG^nBx5B);nzsl=;d3DVGMm9P5U6i;)8Dk=tNWk&IEPyBB{uZ&G#0`DLCix;RS|>r;-#^8 z!z;$u#onB97d|>s#pZnCrGz+dWet~R7aL+jz%Xs}DaJj;7M~F*(Lgnp62r2*=Hg(N zfZHyfeekFqAw#fMg)g!76K|Jvlzn-LpG4!Mb|)o=AC~RI*#kH+Gc2LCTk^_zd;5ma2ZoB_1;?SGgCYpOI$DcNfx zOn;n-GVm7A5Avoda6VmrF9R(xVk*6zd%IFz3GBE(-x>_7T7DE|>QUWchS65X7H zNsxlu|5Yk8K{~|c!0)j?ROKMrX<(&0b-izcy~e-V$+^z52bd^H)n-s0+X*#$N5Swn1GqzxQ$zv>w0b{ktl!aYD~o87SFct+z|o z_*VO^YoI6_ZmuqOe&gD?+_RJ&el@yI=dZ9}m2aiLU=0@TvGQP%PK2BUt5rdqnrjuL z%yIqlYflWdiv#ETyvXyHUts>P_RZ%5zlNNp?R7jKU|gIJoDcnKQRf5K2dbwH_IjVH zCu$)wkgd#w@l@Qpz3@Ay5?vmsS2VLp>n+j9UWSfnWGaEM zvd8a)u2y<7|Cx!QHNN%s2Ap{PSNpRP(^ffIiRmi?;}RQ7;&ICD#woW4C+drdA)I>2 zIQ4=!_285}#!O7dnHe*hk{qtm<(EA-Xn%1(fWHOgZO(cNmmKNu_yqf6Tt|iP(B*RE zH!}Ards&Idue#2mEa^IzN9Q89SAL0dhL#UbrUK;a5x)eXeOKs^oeB2kL(c`OWQPmx`~D zVsu{+_Ytc=o-kbAJfQzvXSo^_7L`?LJl#+;6Usz5$`2mESFaF}PH+TV2NSN)}v@aka;#F{XYw9VEw?`$c3=#zy~5R+MQJGh}tsD2bMr42$}Wg~qVc zw{Vaz9Hvo-7vdn$2&8l&J?_3OtfpHSxDWJN=gA!h)Tiqt>cr{ik{<&p8-N{Y&Y z@jV_FRTkX;dptshvFLDtw~f|A1_usB2r{0dYD@@nfG1hUssTskNf&jkSKzT4fA5P0QF=rc+UX)#&vn9i~yvFhXs*jP(9;|2VAF zMBONStNKMT9WywvHA0Z_AWIq)f*jy!+_B1&Q%zEeC{Kpm@s3fRtVI*@=|FihJYO4% zDo@thskO=&a+;R0SXzwu%W5xbwQ`26W*ZwHUlySvAU{BeZ??ct_8Hgtq%@V2$pN0! z9jlz!SWxvUP)-bwYpR4HTY}Wdykcz>9Yb3=g#u^j87lhUhN{@mkJ_U-|68k?wYur# z=XTcOXQoyqLM6obfFq?*lx-FVcoKQ6qGV%}{ZbKy#Bi#zg^MUdwiKf%qYV|YA=W~} zc;Kp&<%We#ql)1y?Lbt?MWp6pO^y9^El6-k1O2So~U zfTymFcETxFTW0{1N>whs|46smG-ijVOUco4B1kQ5{Ncb#D*HQp;CsPp{NpwHdNKA01Vb% zr3_QX7+$(&HRG zrVSM_JWCrYVcWwz>SRvdtqqki?5nj(*-(Z@bvE>+GQe50jI=EQCEio3MP0UeG^I$1 zP>C}x^SB`63Xe->e4XM@g@+6dTpuCGxZUG|j5m6m%ebE!k`V?u&|i`8Fq!fB9v5Vs z=5a3L{78cwDDVW68Bg%IAmc)ha~boOB*MeaRl#L?KxHjP`(csATBL{}7Z&anTppZV zP!}j?*kMo;6~#V*I+;gPbaG`3xgKzH=H$*+20?LhTo$0BlPf)0a#!f&${BiP5_O$y zRLO?bFEvHRcY9orF@GOJa-BWcuH=8~>A8#__qZVACp<2h@eYp*F@DP9`ZM0?acPX7 z^SE@zFDOo2={WGRNA5E?a8!-WL9*TCz~4M_pTU8@d*m*I179l=1(VMBn8&3tKJIb- z8Gqw(A;#Z&Tr%Sm9v5V6bdl8{Dn#L4>Q`ii1E+Z8K7#|NdgLyH1Idb{tS~;!R7QKLF)Yzk*#-rFt*M#26#UeqI{Q?jGS#4d>1N7!xz2FK zZxnpgqn0V7oGxi@Q=I3+jLr%2V19K(yJP%9S1FBlcgWztZbj0$#yBxCLXZPJ6iI@N z`O`OH@no*NU4J zjYiupW7|(@Lo?X6U;8~H+V)9nY@7DGoZ)Y@?MZC=TaSvi9d$~u-*4*HkhX>K7dpK{ zh6Azb*;hk5Hl2O^Z;tV+tMN*W+B)NY^g$L5wDs*K2htQtf{giFOCczAyuX~nbK0?D zhK90*D`|fPhiR&qAzP2pIb+*9we2E?t~ON4wlC9E5kt>*)J=hH->hwyF$`)$li0Rr zD5^=aAh2h$`SfNRcGSn7=8FSy!CG z4(&uS!y}q1NmgbrRKK`dF=Xp8>WXbYt_>A2bhV-BY`dSPiWqvfqXtUZ_G8+18N;A9 zG=pukvlwt-=-H0CTCr^|2#noE8!As#$qduU(Tx5M2fww=QX*6tS%zN%g#7^zkP8BhHM^h#2 z=PBBD5yMhVm9U?`&{Pq_k2O`oPWie^4=~!xkc%(I*~5N5teq-jcvw@D8G1!r#;#Xs z4<@sp-*^-|<$1ubj&y-Vdr;0Ee5^f~#L)AgoIRMSlbggI(1NaXVC0CQSAFHtPDNc? zd4@tyRhZOj8ISU~AY-1f5bK=cxGYc4Wjsf5XxO_94m3sxGQJ^FkOTaI_kThwyuoql*4RzCoCeKiCp+}v}HhYG}*Jj6f*P-O=d$^dQuEmYAWhN{HAj5NA2WH zhU{#NcDO=GuhUwE486jh!G+BQf!ua3S)NSwg7T1>ALBh97i9dB$0ak~=W!v%FMC{n z#;8spbJE}iikiWAoy4!rA;`wR{^r^@_5vfboBz$5n=9B@5ym%)KJMIzJbjN?5n zjd2%`>(4mR<3fys9+%9xyT=6?_wYEEF|RuzvU0Lo>fcMo;5=r?dYGutSKVH%TD6=VlMX$uOlAuc_Lu%SIV|C1TM zs;NSToQ7#kXLzahppc>GLDZ8|XAh_Z*oA+n^oU~|?^$Qa3FGd;kP{@$&Uxmt{W` zlZ-`%8#>1go$IFe4jX;9aP6?ID1px2^8DFM)!673!#Ky|f{bZtD>@*T#+cUTS6qb~o>_@)R!$p)Ko5Xdlv!xi9zGy>HUCC&XGS3l-qD7)QFg%ku9FbGT zZ+l#j@jD*pGCt&SLB@LZ9MnW-w>ZrYlpgK|oke)!@;9Dom+{AH7AJ0F`wb2pQY6(p zV_s=T2%ap3(Ml0j#gH}zpaa*Z&Zc4vs z9&IS5W>ekhN?z(98-HQQdO3JMg%s}yA$&7mzE;EIZIp^r|moD<}Bg|V*a1SfHV zVVz*hvMn6o8i#7<(tA+l>@}UkLWV~*HJ#x!ox|x2Ibpn4nze-k+;q^F>71aYOt2`P z5bsgcZf!lPkHBAo99AOK?igQkrc47T#vy|P8Hyx9#`DjL5aa+aBo?bBbE?V87+N30 zi!?R)QUzyes+eK5N)auYA*UCkB}XS$#L4y3wkL6NC7LQ?SgwZ1uUWa}}mVeCB{M2CbSZJ9y`YMyO>r>P=_p6#egj<#LKhS;+hLrKwE z$2?=OF^HAEE%RSe@ij|(#9#qnaD>-=q3v8U%UF7>z|W7_kD4%kX& zJk#SsjAwgXf5ufFm&Ul- zaNq?+A~WfXcY9nK;}<=yKjXa~7h?Rf$0aj<)#HMUU-LMZ@q3CBS>eE+J#wGHfe$=# zm%)J#J(KB-Kk~RV#)mwvKjXi6T!`^uk4t9!na2egf9Y{9g+>|ky!TNm)e6OhFrP0K(Ys1NT8x^PxtaA5!>FX zZI?0R24NaA*)|s}D7HO3Bn^RLI89S!47r3MCB?nJ>;V@lhV(c&ub9f&c8#_jb(LWQ z-|4JO-lWQTn=bFt3zPviNJCfi6t_|vFJyRwrlKCRxSR^K@d}2OiX!8TYqZ#;l?t+Z z=RMyKNuRY*^%U)yNf=5ioOr&w}|g2O#3OTni- zD%#Z&cJ*gZiXnTCF3Pek9N_xEJuce)s2f`6f=0)!b2-~aqkqd9l{y!%AUhR>@n4L! zY43{}vZ)vyL)txx4sL-|{ajj{h-pk^$R5XTB}JWmk1^g7r`%(U5$8OYD=6ud_cvOr zjBCr&D)Zzeiq`tS)NzbwCpN@Q3w6h^pDyk~hF;bR*~!0asmTmIzoUAEos*-|PEi&H zXiG(%jgwgCBG?*|%r^B){S(Gddt8w5GaeW9^u0^P?TL_K+`Eq<4$+_B0529Bt5d|r zep1F_w9ROdB9`u@l8aGStaVTuE@ODQ){5%)^Y`iJC=qg*@hyrIdE>y=2tme=M+$P_ z_Ys1O{}?IAfj>nEGUoMfMbff_y}#`9a;1nOWVk_7CATX02Tc_-d|6W^4BymLac3W5 z)DU|xOKTM|yg^f?>;dNfePxZ2amJ^6T#zv@9URLEUcKNPPtRpM z*yDnXd6nQ;ws@t3EKkp6TMog!(m7ZVd=UP-Ff;O&*q{QwFn#e847Mmt$0t?rP-42)# zOOeqw15BtT;&|!zv>_*n@|NJ=u0&$3l20q)v*j3z#fg>dIX=dU?X)txj;6)dX;F11 zA{K{Jn{Ub$(rG1hmQf4IiPg-Ri(H+YRv~9zt^)2YEKUoEcZ`czA)HnM=g5vrebbWO z9CNbuy6L2<#aHCs*>xuvT746nNY5~_es)QAXpyyULH5#c0O^!Zlf_-1=&KQK^tdj6OG2TDyX)%rhTF* zRt6gln$AjLT7lf4y_Gr8X#A)`RSor6fnDim;pMroP9!?M5urwdwknd5lyjliXxykt zGBfZ}wq#)5gSJFf)k_mv8+4;FT=Qfgo%J8+NE@_&QK!T!(oxWgrZc~S_6}LX2I$o| zDR?mkZExR^LIFl{suXC4dMy_=XrmD?*l5tcBovk{K-kCLGqh(svEoXm4ADDZ<_y{c zhXaiUZM)+cA*DuxHft9W5nIR8?(EDNv=2;#lGx0h_Dv_Q!=(=GnzlfX;*FwMELxSK zWtKXaYBV;hNZ!7jOZXIwh*Jv88?=pUB++P$Q;fH}Ic;YyWaN(Bv}ZX5y)DXLWr0qc zk<;$uBpJ2Yct}NHsa0&?*lDBjvKW!PoA}}walDf_Z5>XjiOXvkYoRvND!yWqaoRXT zN6E`9?Y2!jeiI$J%Xfw1A~x}+9lJ@a7KjW%7&{ej*btl-1iev5r25(%@?_>0RX9Raz|NELc=i-eCgZ7Ug}Cy>Iyz6O zVmY?M^OWcU8S7Yt3j-ZIsiN~l2%aku#Cad@vAHi81>)=r#9ysEW1|GTV ztiwCo7-(s9usn}(@PI~!inrCTU;Rog@9+QD_QV-07Nr&&RYkUJv1B(ky|2JZ#)df4 z>26=s)NJr7(bz6UZfq8#`z8#_^F5;LX;P`OzHx4)p@e9)ZYd(Xk>}n5-eQaP zMBx@#0zTbn+>Hz`J*h05|ErId*Lrd zG&jweO?@=lJv^eAyxyr^Z(f$KSZi6Njr*c8zoEK<7OXaAS60oN(}c~vtEu*=i`0yE zMD6-A{P!8Ss2Jk}!Xtp<(t&aWmuX_jZh#(12s2Xb2*wT(OiY*uF%{f%`Mm5dd=OUxw|y?pyrnP*q0JN`&R)Z{hOz`R?V%@ z+;y6}O>_5YZoB55(cE6my`{MiHFrdF$2Ir8<^p&qkmW}k^Aw1Z90w#lodqOgAJ*Jn zpb0|mZJ>z)4Zw9?YPK+E7Nk2ZLdjjkB z0g`fqfTUa@kd&LIW9xP7l|UuJ%2qA+7!Zvy`i#9m(%vUP(%zshj4lTnC*(3Um#eu# z&6R0xFOanSIgreofe)}H*9S;)qkv?(l|a(_dd;oT-0MJ-g$IX#q<^R2yJCrY14;kR z)!fCJ8=|?PntK{(im-P;qrpjRFCB=6yM4wO&E;tB_dsPL_GOJyf~?ygNa_yOT)O67 z)7;-)TX%&n!6uJmdjf}GQUQ5Mt&ff^QA!3gq8O-T8xgubiu6w$`j~i zAXy6sfF=s=Qy^*iC!k`%1$uJqSwNB-2qb;30+JeYfo2Ge#Xz!-mg(4RJgQ0ET8)kX zl?shGJb_7cmPUmdEd;6%avOl8l|N~8$*Jr?2GCR?*QmKGHFu}xex-$b9oMs)V%~~w$QE6+)Y5z%AG*6#D4=M?LDPqXW$`3rn?wO#(oPV(+J`TK&Fub zB<&3ZnkrHoqq%=-WT7KJL&Potk{Y*Yv>ja|nZ_GHGB!EHTrrU3W&_DmYXg!Vd=Dhc zbb23_y9%hvpfhiW=HAiheIQvgg9F^2^KfOAW&b^{ToNTEGCGR$O~vBuk-5CFJL~?W z(IaTFGex?epw6YnTPRbhu|Sv5=g6fjjo0Cel%rJ$2jYK%u@HYR#DCLRqS11oOYlFz zSOA~11^T5%zt`w@$cK!5L8GrU`cb1PShPvX)oOH|Mt5n{gu8~6dlcm&(VH64RbFz> zqpVb{M#;FYN$#LVH=-mZcdtgj(`dIwZ)x;6N?dAmLpe)ywnif~8n02gM)ZZS)M(LY zrA8Yy+M?0J8a=Ji%No%qm(pH|Mzb|qt`R+INx3Z=J)+UG8oh;Un3OyB6h?1qH1|~I zx}h~mxq}*&;<_QZ6&fX@tx4_~jcAsv)!eV|d(xomlY4j=AP5sn;IR~Xih)2+@Mh_khI(eBrRW~x$8A|o92F_(bF20_Gin}HL3=Z zmgfUW%dMLGh33|1?pn>=thtAPWNAFE(K9;sMIdSU4b8o+xsNpWSIzxRbH4N0audY3?G;U8=dU8kJ~t1(5W)Nu#AYb|sLsyg_p}XzotU-L1I?HMd=JJ2m$Q z&HYiMKWlVUqwh3IzJUD;Y1AJ`=6oQK^lzj_3pKhCNapPhjqU}Kx({i&CpGts=Jsmt z&l-K9Q5MX~bSDBydowg@1;Rhv-?8Gr_skc_H&KC z29o7>Ld)3~Gv@+HPkU(Y9F5M`u|qUBRC75%(yKy^%5`j=MjLeO%^KYWB)z&{%RR2q zUo`TiavEJU>Io!u&jOO(_t)ITnoHN*2+ieau0V5Tnrj4-Ia;hyn~q%vBvZRpqx&>^ z2}tU`uF<DVkFnOd<%Gj!~1&8-BIR<70PMlE-zmiv|F9@5;CntMibdo}l(=HAoX z2b%j5NS3%Ym~(Unkn|-*qYHKH5FnYOQJTxr+(gY)X*5^IHfwH$Mppw#57ukBTXpPC zAnD5s8oi=p-vW}pe5AR*YVPlvvxjir&eZ5ajV1xfG-ha2qhl8U$uyQ|?kdf#)7%{z zZPl?4YVJ=!GL82&`iqYJ5=f>o2oIN1?sAPr1Ie>zJdl)|thqTF)$7<+&27}^evO{h z=zvBa0?Ar9ra9lGoNjlG&H$4Br2t8d0XjBaqfCwRG@1w`HOe%%97x(*r_n|odpnTK z?*ke=q0xIlQukwxJ_nLzbxh0ss5u(GkoFRQq+C#QXJ~FLkhDBOqscn90!Ui9LUUJY zbPJHw-K^35I`&Z@sr#%(@9EfYfu!z#G;-3}(Q-np2T10!QOjMW z(SusP6N9@pFs&Hbb~!_W5Wfn*spYVJlKH(;b6Yj{jOKP}?y%;LXzm=B?ezze_OdjWqq%C$&DGp0&8^kkHqAYt zxz{weUvtQifm;{Og;*%4+jAG0z(tBWiC?b?pQU6?H-8g*Qw(!$9CJ4f&{Axh>}C4-X%GPh(#34pjq$;1np znFvL>Z2VTqBnX)+#97_h)(c7orypru(uyC|@-5g(ly5458OL$Pn{U6!Xt0=08zP5;bITa2fWCVn#+W`BBV_C}w^X zvn-0aCW^VE14FY#Qmbobw_rl`?Ac8^W5x&<}N*EUsR5)Vf-R55I9nY{op z%@JXm)}+IgVk>$b>=;5VVLnn#)jV$sKUE6qvO;{M4bEDvpA5#L>Kpu_B8OdL}R9q5jg73*6I zR*UtWg_tDPToG=lsGGB(p{XYI(o2SsxDlIbC`4^C6+9xl3ycqj=;%=iP_@&3#sKb`bd3<$;ptU zFXlaq`!$8stW5GvB-_DBaf#69qbl!4n##`ksBEsPtAojg`4zQ|GN%!Y_!><3EaqOz ze2L0$s%dO!3P)uWjyCfd*eL_KW5!7PC`qqeBU^@uR{5D-*<2&SXxH_aC|Ob2)Ks}7 zLLvf2#EG)O2Q;;qB`W4q!g(=8G__$sh>n4SFHIkG>EI!0gMri1(n6t21_BbkbjXlU zXz-x4!T7;3E53RS^#{<$S!5XL0{M){9w1R|=;mah(~&$+2pH7s2^od6B71={Ci-uN zQMfCzCm1aunKsA`7}7EJa-_M3x<(O4h7lY+V4(Dr>6U`y`9&N%@T9RhCxQSJ{#}ZJw20$JI5fG^FwR3=(82xOrRpH5_vmAXU z7I9GS`_~!9X*ZTmFwyu zV&<&et1WETTU~8lb#suTf4j)kksnr?+z;eaQC*SZlZz<$4PB#d*EdL zT=4Dk8tAlzQ)}04+zKV-R-0jDt~_Ce$1T5mF5;K{{PWMk1gDqu#PVAqy=qs>B`QaY z@;j=&wERv8SS`;bot;Hy$qcMYzuSjf;b6{&UR3#H_b7f1so^`igc94(izppelC$nr zlzE8i?2IELA#v?WscM;Egt6K4Op{&c(>J6=_LNMycK z{j@C!8ZGDLT$?LeQsTf}-}ba}R_-!$hCbi=ja1O}ne=34uy%yc4PS`A!In>0>%hQW zqI{tGZK;K3xXVZC$Amfy{f}=DV5CPEDUXIo zkJ^!l_J=AJX_-jNqO|_%rDYXtm_EirIzcoh-%FX@&7@V`$kh37<*zG8X>fa$X_+GT z`{4uSK8tgY^D8nvN{cc{jgb{gyA0qwr^$I2k5v$Xel(Cxf+iv?WdkpEw!5d`ahzwATu4 z>2J$}q<_ECe*xzTolL&9xEjafnhXc>{A)-1*XH3Ae!(ScA0BNHS&`)h?W9%JAjrZ* zYG4yK_$=@I?c|Rw{5d)p3Nn46e~!{0zrmM5r?k^q|0Mo6(w|R7@kxK^d`BHl?Ut4F z0YaGul1s^$RqnH=92G@()Q*#1C6b{8i36@yl_aeR*#?$#nhl4sBoB%er&U^`GvIz197^rFYJ{ zjb$j&thLK$iJx_q_)*v74CCA7bU)4rAH7 zMnb|!P#Ehw#jxGW6NdS7F>vln0#Cr-!?fLm1n>zaf=*W{gt&AJSO!cpw+HcVA0xNN z0QAA}ErPHjl;gUh_+thA75X#x z3d1rTS~J10)#?sbi}^6*EH^-(V28w?mIe6Sb3sjY2p=CJ#_z=l!U{Cc#j|^;qnOVx zB7IVtu+P1PEc*hT1Z7GcNz>I~;hyFCsvBBnJx_VOY;B{796B$#SPy-%)c`w#EARe46v%I z8=q}$X0Z;dZ}`r$E=AK4CL>qi@LgslF)vr)@Lg`vEhXO7J~kS@;TAnW`P?r!y~tHL zd?T#qMC=~?P0%8|mWJUQZG9x->4{ocr3!=9v6iVBvC4@i&25gy#yh zrdSt=Sn^0ja6*WiYSEXWK9|z-QbNQGt5QVh1l7tB{!?8KVq-*H>iXu;tX&SI%iRoW~_`#B#JF7~4dnFr44Z zsIM$%X+!IR8kFplk~szjbyib3-*9$3+m}k^1gOZdIOpk<6yo>WnwORE%m*Rj4}iz@ zu%fNmA=X6sITFj_at+t&!JD)#VZHrfaJFNoR;RM3Z;5blG}V;>4xXLFRp|s5BQuq zCGck{u-)g-Y6Y-1o0{1Nl6~BV`yai1pqFQc^PyyS_?$+(i=$)>=cDUHbKWKOX*DJ1 z6G`p!In6DzrPQaA+7I6vCG(kN4)~nPMPhvy!}(lNhhV-E%}>f5k>nA0Oluk-P5Dv2 z^M%aHF+|{emn&I0Ur7&7!0)Ci!}*&G{zMk*Yr?qaIDeymh zf>cuCHH-64RfGPnJ#po8zLk>g{;qRK@jH21-{5yJR|m@^7|sdF+~|j=AZUdHoIu}8 z_9j1Ez%&Hs2N}NE?^HKnVKk}wqa<(fcRfh9f0Dsl{axRn;J;;XlV4PXj}bB-ogs<<%(SV!AVjY_e4t=PSBh! z8rL>|;xIDT%{=W?s=Nm}2oE%z9xCFu{-lPMaAQkYE%rm#^JKF-rXboWyZlLV1)%D> z=CI+MX3Dm)k7;=lov!HD{7K>+P(}0Hx>|_$mVJqJDH)H+|q zv^lbtu^x$&YThmia4k5QuR)60;3V#*BEC$ewaG~gQ8-{cg9+*;`(L8Us(yj+y( zb|*>Ri#cMr*(4%%I7#A!CE=0g^|A_JMCp$*KNr+KCyCZdBB=~>ub}qBxynT~{JvD& z`7^mRJH#2zXvH6LlB!yony~ms2emOO`bg(!!^u)n$DE|bmgc#*;^RSMuHj^>25rHo=~b(U10D2KWQ~eE6iA{qTvQ7%oJR9p z(G5KUYqS&=-NF{BYFz8$qKMa)^7ba$*b-Cr)Fa}ld0uH&iH_kWXfBwy0R1uQ zE?2hH7=!aK^Tae$is%*D+ zjIL^^sjbCpZ?yAfdJ}Fq*C@fqItn)7$}EHpXT7=x|F)xqSkQ-MHYl0L-K6>S&btO) zV4brHIcp+J_pzH)!R>Gp57UL=HkI%*P(epal;BoXg1f+}<-<^Lcbl)v9+1FqLlo9WfJ^BWa&$VJOR%cUaIH}wZqY!`ZJgx1$5E zl-^Y7?TSmv&B`pT5La+{b$Q#APXYVllJICm%?>BWL6w8o;zX@@oxBfKD*II`+;2H# zULwx0196GXRJ5O(Jw^CL93Dj9!$V}k9JS0ve zH)wITGBc1KLU&E|g9F3pmQ9bKsv8^_E(xErsItDU+6au0VOMl^10(68Y^4Ns=Pxjd zI)7G5vgrE-GN^N6rG!NPE|4iheMO%uFq-;KR?0b|Llzh#L+5s-1{BDaq4T=Zi4Yho zL;bv7pX}NM#>t5OU8y$~$d{q>MOQ6QAVU{8STCyyS1cM12~3dWg$@lUi8Ig$6j!1^ zt(1$pQuzjIsd%lFAx>RYRio^b2j(3XZK}Zc9ayWE{g1T~Jk2!>%$NNh><#f2j!15y@jo2v|Tj>xXwZ4*C7+`6pf}yM#0rhC~ zj3S%WvuNOi%rVAZgm7~OpT^(Ih<%pm9*X%{v|?VsFlkXVJ7vEmuOW0{z!l^oYYkFVZB-5ovmh(Z>5HSk#*3-O2D5a>CM&B1>LgEa^wF3i^~E zB`WMBQ8&Qwm#VNE;RUU5>z`yj)X@XInyueI)uMAxrZ=6Fm+8&ul<%3GZTg66BBr3z+&3j5fx21Pj3nON9Tv!Dva)u>2STwa=nf1&j@JM7W$w#jOR4?dSX z@f^hGwHJ|-8%xQG9j7Bx^bq9nOEq5mpXIxZewFuMB1&bdkAI_=-8!a)({=NJDyVh|j@B-Mqn4!U~W@!zZHP*Qy*CR_Tq zDee9uTp?1pUvX*DXPL|cRu{S-P(vUBS@^Z}vd98?Dzgx=#<1&u&Z3(|(vljyPr=+1 zc{&(L^BWf6vCIFwZjjZ~{$J4Tac)Bkgm4`ZOI;3d$Ke1-g6_|>wLk!C9ua+Mp*glsmh_a&|vFHb>CXno( zY_En$k{q`4m)WwbVV;} zf<2^boU-AcX(u2>;V+YLb(XzdxJurLIB(%)|2&(vDD}Ct`D!?fY*pr3y zbRkVc64E}ET6a2sq+ZlY&;CZCC^8mvwP%0W-YzUZAuQ97g|ti^RcSO*j~9aWw+OW; zyHv3B?Bri=2k?~SbGzbiHJ(5FXLsee0F0+p)tE#je8 zsI9lJ5^A(dWDoHaOK)_fD)kqn7QgZlDqHQxgbMA1*v;HW;^L1eRi8`m{zNv_laJ7O z(f(BEe2Kq3#8VYxhFD&piWwyO|ehS$aaJx3cP$t9bj_b8=>J z_Jm0VhA)1X^+w1rdQC2^$Sx=>Ethb@r2KrtBrJe5W6BMO ze(|i7Z3GC7E-5WGT*2j*6lRu=$uZ(6lwDjrvDkU(8wrHqM{eeXQlkq6CQTSW zVd9htMpp`CWsk`%!0s7|6v!QD1cd}ZHwgwA-6a@e^bjKHMo&qk8@&Vpv!_S~=u|?J zC+21u$%Jx>vr8uBml~&0pb!q9PM{=nY<6aGab~%31_j4Rd?w*ZCE3MU*<*7jWM>&? z5s_a=`Rpy>6vAf{F3uh^u{g^(hj8u$Y5QCXOybaa6dIeGpIu5HZtN08KRSQnXybVS zVJSPaz<5CgCKhLo%QkjLL}h1HOdOq;J*L#yqh&nqMZu9hmU>ArW5(huKuUQ`ehCU; zpTLu|i%W7RB1;u2)t99Z6 zc`BVKBv)&=i%e>`wpxDOU1rjI=r}co(z2k+h$}p=51kMf;cpMqkH2H_zdM2MA3#<7 zG2+A-BvxsUE1H5hpF0D8yO|5LFliY6i1pjc;wJr~FP^a%;4Y3^juAJRg18Uj#Y|;g zy`ZL061WvQ;f64}`6N|#R8U={9!A}bxT#kQ#h_9Y+%&0~tTY8TU8Oh9lnl ziYKPH8oC-;DLGDMbv<6r#MR0)^BoLp)if=_qe0vpNfn}yRv^iQ?~oy%OMipn1&+6b zy)W)rhrCLvZka!SiGh%`PVyVT$8m8QadWAp{jz&J9|I`ZE1+Qkk4OfckzG?%QDeND zFqN}>Wnnm(Jp|#x>K|cMbSdZ^uIN%AmDpA>ygQmKiA1qPe#j|(8$o2W8pFGjXInB6 z1o8e=1$~Yf{zLo}8ShF05{l^J&;t?#%A`P0gb}a8J)PFMcm)rEaw(832}mg7OzAK@ za;A=E|L8NfbDRoVUyvNEC_^iY@UWs>hw(lU@l$nJc}NAJ4^*&WdIxitGCa0@)4 z5jW8y&NKqkfU`Ml<2)y#yT0XjzaNzkT@n$kX(7u7jAWWwCBI>u(}de2%*#W}&{y~Y z$e%VA0kank+L^@>YR#>cjfRt`5ejs)VkmqDy{ayk6zWrJMi<9Z&$+5vOzcWKh?Gp8i?-h(nt^S=-KTFge z-nq-v4bwKw45jhB`nCLqvG9Du=uM3Z0(2s626r}k=@h1J^ydhNX#IXVD%I~XB-aPS zL}nKubC!c(ondwrgZ3E+^_>K1Gf{+F5jH|?N_DIH9gK8^iSvbt+m(q6gvztp#DyaK z4Vg%}PpLkmeuet!LjBZ$^xzC3emO$t2oKH_VVuW?E)RJ^4L41UvWbH}NTOpQw9dGI zOJlewjZeYJ(ikq%Im3k?hm@kL6onu1&Fo0TQ%Q_5sZoUyk|mKP!kb9@pGx~@_1hkh1F~d!~E1V+ms7Wp=r>u2?_%*#MD^P zj6M~vn8p1>Bl=V%Y8IVMQ&z$>_YxN9^bKJebDw53q0fcH^%Sf|@Q4T+iI_`^ox#kb zQor0QmDzOpF0ssAD)kf8HgIeV;=>#addkLJVo_uM2RKocpt!@-nk4vj;ZM%}Wm95ScR!7oAXZTtn ztcDRvX;+eWcC=b0tZsq?WY`*)s_^p{!s32q@t4A)(-YGBm8CB_T3jwHUH}O?bbFRx z2=lvo@wO5piRQhQDVAt~=!^0UFcv|TR{!ih79<4dn)WU@S-1C!y6u7+_qlXe?9+&A zzqltoB1Q@aAVRqPsBjyz@Qu))a30gqO(k#xj8o|x782jS0B*Ys%Gu}377H-X{8n59JzG3^giZrB z2hJQ~i;Gl-vQe&nLl~ibUfUXSa$7XtOB>6u#U*W)GQxAt>tQT$02fFG8xx(i-rz+? z?`NZb!-AUGjg55iQV}^b6lIDw>8XCd_#FYC1bqlKMTQKXD zz8@E}#!{=ue1(WjolB7+V0v<$Knju&7A zwA~&O-g?CryJX+*?6cdq+Ld|s+2NLZ?2=mhv^=|K*sjmBuPAG=lgjMV!*(rV%T`aD z`tZZo6inOl2L8Ve<$zT5Gq~F0vQpk*M8eg;pC+Xc+yu@K*aD#)^V<7v&Eu7|?9TrP?j~?4@Bl zQRtMD$Xz$uP5bP#j@yZ*-IBM^P7K-oSJ(sd?4lKR;?B7v?5CFH*)JKxA#2Wa%A6bj z>GrW7UiPm2mXU|wJo|P0{&razevcR1PcM52TB}A-8THmWEq3`%yI-DNo@bwzXHPA& z&wFT^9hWz*z`mrm#V*-A!XB4rrwj3VB=NBQ+%h-MegTG`Ljup^_YX+mdE@vf`wVCe zuz$C#eT3bRX9tDO5a@jRR}__f+U9BY(tUQ~ar<;+=(s)SxIO%M0o>``Zl6q$bEJE+u)Q?E=!6sDKjL%}k zM%1UB;L!0#K;a^8F0`Q zAVi(8IW?h5d;ruG5*DaOC8xR6&96ih(j;C?d}(RK_z=x|!#<@aKiV>Og|^N*6l^ct zpSHd6n7cM-U;hW@9!cI*b|8Jn;uF4AS$odeR(-hVO{H%Sc|810m-YFtUGz}>S7+Wi z{e$7p{Ng8T#poCM-ZT3z-ES!V)1cor9gn{z@0AOFbHx{@-#+#I%XcpQ!C5o*rStBu z{p^%mCck^>6N|o0yl%qlsgEr9d+*INKN|VmRsS)UXFlKO?#fTPZ7h0o;A0E_5w|Y) z<@0}Ccl5N|$`1~GYRUKh)!8qedtc3`y>6cL&LzKZ`B&Es1%JHw;rV|%>#i9ej(GN$ z|F&0-*`0E4)n9wuSn}53-!=a;;o9-9Uijd=FVDDR+MkC#edUjVtHi=RR;GeesSHUGmqzcINauKe(v=p|6Jj;+db!%;nE_E86&G zpUS&G8MyGVfB3Ukzu0Ti&F`FBbKj?zwEX^Gak=YWKCS$=gXh=%`smOlPkrCDV8b8J znsL{M7teqAZzF#B?7ywiD_-bce8Zpm&c5d_gPMMO+!?#(rBf!~^6q)H_kVWjq9?wM z&%5T8)2H74{smY3=8Mah?))Kf!ga6rp1Jv>)CG_HedJZo{l^}&a(9oC8{bN)y7#Yx zn}7Guz__dTo;u~$_xjEG)#sPBKKWh3_-kK1W7-{mzHr`yUkQXCoL&%P5@H*w(&v`>y?mj+x#149qO5T)2GW-H$#0<|qHKy7wJ4x_EZe ziW~0v?F)bU%W=C$%HT02Rn04Jy!Usz-}>u6eLc?^l2uwAUUk#9$M?K__#1z(b1%uB zRMWEh=KFsC;ya)I%Q@w|OUF*GU9{$w`=5B}-Os)aoZ9cQaZ~2BUVZDYp4|K1=ij-> z{nK;G<}O~l>46>l4jefVciQkPrZEb==brbUvPQe)GL-=bNg?0zViMT zKO~%S;jr=3=3RO19S=VJ>Yu;-vCEkk4bPum|BLl^KJ?6MAAI#w*Rw7jQ7~ivFE`xv z@UwsX@NfT4?43Gt!psF%UAOs>=U)Hl@Bc|Ud%&oP6%EU--}2}m-uU?IpQ(>ZUw>je zVsWrbz-`Cvln%V+>TsY>DUPhfU|}M9c^n^7Jl@!d1M%gN@fnIgSN$S>R%ASNVCm>1 ze+L}e--nc4^ykC@yCso+p&uoVlf{QreCKjyzcW<)a%qOj zr4qi5PYC00X2LW|iw^diALd6$n&k6D4(p{P%kg7$ohMfXx!i;~;;+~Wm7@3=cc}6s zpUR;i9z`%N!48-Z-kpm_R-HaSji#$|LHaWwlu0slaQga5$CI;WLoiPXvK&82}x{TFx z9dSX%T#qCtHN3we1vzgd!5vc>0KI6{VT zyT=6?Z}hmRJZ@ES+ahEbzvOX2#(O<3%GQ1r_jZH~<8M4J$oO9#7iEhc59sizUn&R2 zmw8-}afZjajIZ*zAmcWVa~WUnaY4p6d7R7mL5~YE=Ic(ZdNP#!jq2AlirEyafs*-* z_^YI8y<0j=qlmSBy`sEcE@p@Avh6zpG@P^E}Tv=Q;aw z&prR)n&$VziWk+i-oMV3D>}|C${(^oliIs&O_gDKf3tl}@r07fR>?|lyNdHKp3SbN zzw~%fP4D-3*)>%4up#x!v}*crj~CUn-ZjsaCq+uX*z@OVns+$eEDz$r`%Tzm6Wvf6c{ z3MJ*4oE8KeIuEo8BmbdN*O`(da_!Ai$%s52ibGjzbrInP*0X`N4u$yqrm4&Omr#~1+orKWZ4;BgZ+?a@<1UPZu% zIi~5;JziAP2Fc9V^ur#{)wF)Um8+1n9WSWxVd^jyguZYa ztOpfqr}_nJP@atZRP_tiB1QhvW2L3pm+U7@bW=3>l3`8NyS(ELG6$I|VdhO`+ zn1S`$@rB0>uGbFnJ{)$yduV;3N=-kLs>wR-=Ni@&O;#J$R83xPSd%qLqy;|0KJ8fU zF>hF}9ZjBRoxPh3YlZRqYVtwDnxaYF?$NHHfpYT{-S|#ff#iAmlG46( zrsSH(1yzVTI8M?ut%C;d`pmHPS&GX%i!`Z|n8PCNOP{OAWzjel;$-zpi!`mH0MFL6 zjt;yPnO17q2G2@O>RiuZrS_$(NiHkbst|Q>v{KVLXz*^xv`EW7@hsA$ZWTE!(!O?> zJjtGszp7;IM&~Mll0*x16wEhG>*&C{F4IcAJ4*a3K5XQguJw3PP1kumSJV0oNv=k& z!ylylVQQ^O?JdW;Q2QEZd}USnbChVVQMur9Mc&}CGccF9)xwTEO&_m#@Ty6DzJ+S~jEhb+c{0nrzu9S;qSHhyGCrs>n%wNMG&ZzR2BRh+fsMrhI z)$~Y@7uB>rO_VFTa;0DC`ExZr!{bFYtxpr>3Tw8~pYQo|HNC>)MK!Gt6XgnvJC1T| zfY<~)|E=G&^V}fMcWbveS=sJm=!4okk*$@?5lkMn)=YV{nrEmrC&vM4o`Tk5b?TYN zn>EWjuFP}EnoFD1Ibj|s*6g$c#5^gSArL2nc?6hz@5nEY_9~7@EDyITw@DX|kZPT@ zgPuIlsRYb9o~%^P+{gHMT#pI|J08blaFie9BpXkwX>pFjX*__IDfXW?V>95~$SeAL z!QqFj`0$k%cxK%Px(>|DyFNEk@tm>zut~t2>03VeaVcXL*H-Xr1v=DKlol^Lpc{37 zw|DX^sS(4?Z#(H$woFn^`Kgm)&Q(nRZJj(ENPqIC&fAoW7Svfhw@Vq$g4N>!D8YMP z@$?Ou)?c)exPX(JVxAX%M_6a|$J&lO5kQ?aLOFE^br!E?5T2-BXK_P|PW6c{zjXDS zbr!EDpj#X`;n$(sQD^ab0lLyIF5uMyhH3Gp6630~_|?C0;wAtcDX$#x^DTa!?=j5n z0Q?@`$F}%QgLJ2T#Lt70WP6{=>xlTBe7eNq2k+^uI*VVn8=lG-e$#Gvaf|m!c+NVD z-;vYJ&&YLb{DxffEM7dK9d#DJ=N2yC*X8`OT=Oh`WKBofH`b{3{I)uaZ}B77EN-2} zFQ3WgflwBpHjH0A`}r1+Rr?ur7H=*k$NMgtA3_Tq`K>R%cBa$&xS4mU35AT$nEBl@ z`B|SS^FB2S{GS>NGkFS@-y~-W#rH^%@z%9W8PiCA{OFjnjMKan@q1z;lJ{7V&2NRt z_J1GD%bv*deg4aDeaWijB_;HCCK&pw-It3jYb=_q^)3kUrDP|GD%>(_eW_%%R^AZY zM89<5{JL6;p9A{7jO5pVB4F{^BR{{>U*lERTf7=oJ1u^yCq^dk%RYW*N6WHtx~!o? z4<@R!#wr;;`Qis(3<2aGMe>6$e(ps!X@0;ZBf(uFxbSCQjm2-tGFZHemn_+6#8te! z5s55Ovb+$94^M=k^TMNMPJ%`<)yzOS&CfuD%SUfcXKuNdEBQS2E4979FJc(sqnFrv zeXZ9mQtJIZSN_7VI_DB^X{MFNi@Eloom85P01qGDlcMbJDP?*1>EPrV9o;1>}hI+y1y=wISVWi&} zDi4!+8D1|?GTu^9GTu>!sxW%z7`-cubeW;9HF^o7*Jh+I8|qD?*KYJ|RCO6|zM*=9 zlJ*?|O4?U!c*hyuDTY^Ocw-IkGEg$)T0<={(rZA;kXISr&4#ze@V;+&>kaQ|P%`B0 zhI-LRUk4>a{@O@GCE7(c6Jx-_NNJ9+;CH)RFyi-9*zoQNH9V5NeP;)^^ zzX_w4GSph5caPEgso`xh)YG6;$r$QQBmKZodqK(A{$Y3rKuNy=tRf}V7nCfmQo|c% zs0t%J2b2u&Lc^;u)D@sk5$$({;Ux|ALqk0cN?C8H7mf6FP%;i1CP}NJh8k?Bv7lrq z=NRe&Bb^CKhEi*IR~za&P}0)d4ew4+GQ4{Y^_Y=vGt^Ea-DRi`jPxVJ`@5lfU@`;; z`nCRsIuewO?HEIyX{2Kf?;JzTG18@miW}+mhPvHI*BRahLp@@oTMV_sNPlmr_l>j{ zwg{x9hZ*WfP%=fwf|B_>!thQvys?Hi5tPjFnTB_Tp_YP@aa?1l79(A2ct14MFOBpK z!~2t={%WM3f|B-qV<;Ef64Lsfprmwwq0R>-ZMn!$mw}Q#E;o928|i(9`kB#t#OQr! zq@Nn4W(YC;SoJd@)j9ho#EYKcb{;S`F`A!)rIZuMH2! zAXFS-tW@hcy>tIG7MAh8o2m;+ih8w^UEaP7l=|~S>IKJZ582ODa}p)y%WwN z{1ZAt^ke)jPvblSS6v!sJ6s#mIJ@E6mB#rPE(Gff`D-wE;M9w&7hLUWoFQ;=3FzsJ z1g9vCa}GG=X&lxM9#!*v%?F1kr#ud8PAhaAL;wMvW^(Y)<9weSNIcF1;54R%^CWfh z{2@OF4!wAB?E#0I^d9G1aJVP$ar(m+?yP&9Q^Dc>xa9cpff)h5{)G(x`yM|wFg!!Y zCsd>#7nteJr9;)p3;+)nKhQZtxdhAnxlD19eCTl3{X-+u#1%@1bvS4f4LIE>KMt_S zXS-DvhYmpfUai7GHXSMT^vChjx1JP&CK){zS9V-koGH#d{O-ymuzb zW$c5*yerB2j6C!6^USZ-bzo^PRuofb7b3|0LWOzdL~ z6261=5Ztd>xKv}S`_R=-&5f>JI`Z_>PAlR=bal2j%evw$Ts9!6Y;^U>XlDb_sz#3z z3Sxh;=)VD7{R+gpD5HNX&w;K!;b^pa^p&?N`=-H6p_hTK-k0e>NBG)knGSXz)bsbM zlyJNr&dI0mDYqtPp{sX5z5#lFQsJ?eEVr`J)p?q1HD>qzN7$EvuD${aZtGVG`;JrtqLm(p}}^*!KEho1kTeG1hxet0aEEQc{f{OqKX zK@H79Q7?-nXBC$ay*n8%9v*9cCkE8#J#d36L=%X%^#v5QU6C!P}9*)5A~y+9%f)Zd-wrK4_8p3gg3>^ryp)% zRRF1U_E*TEN_qsO8VeQDG%Qq!go-j4iyi^RgC`p`lwIY&4Ks8+D~Edi3(U}9gZ*=8 z{(CS(?_kLPHq6k4O9{#{JaEL{k=(F&a~BwZ#S|_wgmWJ8P6vJ@oNl;!?i?T@1O`cQ zG>o^Kb1t_6M@o4=xVaz;43_SJ@Q#=03_egKSw#qbPdkJf zsO;zi523Y7;B-0tzY+gLAP0pt&3nf_9=3@)koBR6ynXf?h*Le0ZnM-I5D%4)552bI$;#4S1(LFG7|%Kl-ll znTc}h+$;H;13ec}ZN2mbm<@UD31P0p&WDCLb?$q45X0ShaEMdqCsJh>z(Ugf^CheE zOBuymSyK68)cKXDGPoEp)31>oL8Wz=gWE-o}(7$L{ROeC2=*Wgebsm!<4;Izg zBsrgXu&B=FT}2FVe+De7^VG;85K*>9DBIyONs@i|YJQa{aKV&Yw;eO}Ev9MRnejEFUbY z^MPb}u&B;oCC3Mg>U=0!?S5EPr$aKcU{RgDGAU`WsLn^yLIsQJd@P+lSXAee*?2XL zjxDd}i_DNuMaP~C7S;KiD#5&-Z&9;LY62Fup3X02v-V(7o&A!N4vXr1CAk_F)j1&D zX|SlyKP3~es9PBJ*U|}CR1V_KH`18}i|TwU1%O3;jC$SD30PEas7^$A%7u*TMD3ucUqD7Zmx=0a z|5cP1RJ729b0$RHwf!t3)~)s&j;5XP}`vN6M*778`>QpLG z1{$g}UR8h$G*oAT;^#s`btc-f4{FRtLv>VfiMniRGDp4*pRHs_C$XsZs&TJ*jL_>Avs32Pnrm03lb>`Yvh^n6( z4b_>a#F=QQ&U_`vg@)?XC}Dd#8md!gmkniY_o1OWSF2*oMniR0*m91S8x7UD&Mpws zr5tFePNOc8EHqSSm0aIsprJZ9=@LoDC{<{v&T5sn{}mdl^IfHQP&8EMR@LwR3p7-x zMd=(I4b{0rWgO5@zsru{E)}s44b|D8axe`I)%j1mL1f%c4-M71&;F_4WuT!tKT+9| zg@)?nc zomP9VnDS?#p*lP5Yw#BL;Ap7Mi>f!sKtpwQsl??%Lv>zJ@nxf-I3Df z$V5YR{-|QfKtpxf?U-m`Kto;0to^_~R=9zNDi)}69SXdT!GYgm!5MOgU^yxz;uC@J z34zzZ7VA@U;&+DamVJB}R;TiEZud-%(_ED*>_m68WM~Lf_blml#l+Sf!=5r0X~_EpyM4t~3Z#_k79pL!i1B#F2}HKxL-7wan9W2vqmV<{+y} zqYvton@#Q_IqArRKy?>0k5IjQ5UB17wYu;@pt{#eo`yhmuM_xfX%MLHO@GG+1X!bc z5UB30a#{fh)b+IZZfOM|P&tQie<){afI#KU&3!;R{Sc_`ufzsU8U(7lQSx#@pt=t; z*A4=K>TZ^aZO;XP>OLWb*$}AilQK*Vf$DCTLscdOs{5+UdmjX<`yp)^SP}x&eM9=iwuw+wsHX0lF53lnO$1wF*P^efn9N&7fNT+?m2f0f1kUrP{St%y3r|w+->ME1YTg;mqfvEW#D`?bAhlK zo)BObq0i_w8Wk=)Q8^U^YB;9cX%ML4Nr5~rDENw01dU$noIpKTA(tWh;`F{nDhQt+ zU~N_qsNu;vVrj>efb3oZ(vAz1Q$e7Hrz*FCKn+h*?o0^O@P&aD=@yueobtk#1laau ze6w`)GQLYQ(tVjuw}e0qS1Y%MKn>4U3$rkpDS4)#sFnqeM2!u(v_uq@kg9#q zqVRQrn<19Cm*E=%ta_*(3fwe&qe{02ZW>-G&`B|lc;KetMzPI|k;E52aN1V|irH9< zNk9e--xTeA1ii|1UC)euYCK!O~XG?JU_T;_`$#vX?UBiXd2u!yj^h&xM}z~#qooihIa(6*5;)3 zX9PD5zZ&2d1FDc;7YIF6l7Le(@!~_ZhqM^2 z@OuKmRFr#~1jYY;;1}>4av6fiJN<=?{-~~B_@dy6SU@Xq)9{QShb8t{W7%U}9F(&d zw-;w3;Y)(DKa2L_Hc)t`a`qP6JKZBcx$_WS75tS5_E8ZmUoH4D zB*W?)?;FCm1V0h}|1SJ<X_wcumSoCo@C!^sKM@C~l zehjw-pBDOC@wd1As?p_w8;4NSz)dBPWd36LN>O|snZHynqU9%&`E>%jO#w;fUv2L} zcp6ADf2GYge~#~S$%4tFFoO@dXX9@lyC42ujDLraIE0HJ@yBw!FDeVBTmf0gt;65m z_9~-HAL&4n1sDED5t^I^k}SB0PPAeVNU~r$qeugiEST}NVEKR~3of}^c=Q8F7R;1B z{Xmihv!quEBw29TMkF<0fFuj5Ul5@fAjyI`$HHU}NU~rqQ|<$jESSeMr2|P8)X4Ej z14$Ot$~b*Mk_DGb7J($ck0^T-Ae4~Hzga+%1-}i`Dg`77mm2M$zX5#5e5+cpfH{3o zAW3IT(GZo@mQzle`K+)MoQh)vgFuq)2vv07eCs8;Z^R;Jb(!##b=W{;NCrsKnf4)^ zc#AlHx#e6G6uB#$D~!_sNjlS|+yF^xh6a*!W=I7MB&pp7NYc4jDi|P1%>d3J4aNty z&LtOW`}kdLu~WVNC}|)N9-TQp3jy$`-5N+zyFDODXRh?&0ZD3(2PCOE21wGGr_EGA zlA2+FBsHT*+D%KH`Tv07eWMl*b2(RW1*?E0owzny^rZ$!(pk=|&jBRqtYDIJ0!cd8 z%K5bhl5}pA?sKd|8L_kSSMV8f`C8lMD|l{Jh#E1_a+iRfq1^ZOM!M=-*=TJ|a8JTY||`3KJ){F_v)gFJ;nRwCa1N}uCG3*8Fq-adsx?>2Cb5GPD6 z`!q5N@lQqTk8X(F2tJ?t(l8uAu&=e-l`nk+=@Y2ROud#q=Z4@EnR+e9lXY}n z1TXe=oUy!5Cj+pr`(Qx&IGfp5(bJ1XdrPk0V$Dkm=uy_k?vk zWy?NqR>P#Hg0sGG4;{6z)a`r8`@x#ORJD#D5ghEUIrnLZO20U_`tIey!gGT0(ZRxa zu*WZg4L1dQ#DO?6;ferpY^E;*x^2<;Wy_W>v&LcgEQ&8JB9M5ID2gK9H4q1~FJw!O zjThlua?#wS@dZWV#D#z%u3b_DY*49QtvL&q6vY?R6xGjJj6Z-FofmIdRwL~0i@&*W zH&89o9^IUPOE4Mu2UR^PB|5>0N{d@ed?w2u;1`sSPXuF4fu+#izOAB%;_Gl5mHQ~8 zKb+x?&D7I%_F(br@Y+>4GF1XUA#f1_oS+R=a@0fd@XjJlGY|NHXK)mX1V`{(P3yR* zr)h0ht~-!a5LQ$XxC0EUJMn05U@4CI(O;2hUqNeGYd|}&t`<)Yf5VmNRP{@XG+n27 zLF<}Uar~I>t9*)@Zd5#>sA%(}W0O z_emCcIyH*pjV|9;9OQ1Mw;ZM3sI)y_Q?#!inSiD!%KS7c%JVft`_d-nxV`OR`#;AFrR`GP8l(Kdtg{uVz5NSIPcXiwXi^6xI)Ln;vI;fZ zfEn4obURbVT2{8Ni?e-QY}6IefZu?i`EdkiWt=MGsu^Di!&Uu z!-0-0pJQr$lR!fIITgz7qbgOf<+)glJoT=q3jBaHg7vyxNou%a@oJ{{YTF#!x zlV@l-nWRgcOtm=IqsxD0mhVT%(??V-ZmS9&$qZY?lH{PJh$b2Y>WHWbbH&@IvL!vPM26=4A<$bI*Yr^hNp6X z`^$zGxA@k^bJkhh)1}+L`)qCw!{uY<<}kVE%e_^h?%V0*F0bZUdDudtBW=GEd#~K* z%;H<@Y~T*0pKoz7=4aGdJTgp1{M}XHh6* zY$@`T68W-?%X1fE>yAg2DDZFliI>ydE#v-Rrcmz*-j+kA_XD{BNPjuD`nb1eMBY{& z_wC5`@73`f1$n-$IPSZVW%k;*88()k26vCd?iu%L z?~mMZQWXqCLq@dzl>Z-G=H(4X)hbNZwuSig6hFQ&L7N-ZaIn%`v1Lw~=f0RL{aP@D zkbN<$lnk%NP>YT9YEUw~M#EcUsQV1{I4Bv)Gltq>q%VV#p}cK)e>Zwx8!CiKFKx~T zC4KZUyncpvl;Is~c%_Cn((uX+?>S4`ha$2t!9k8Qd}(u~;l&IuZg|TL?;gY3V0haN zZ>Qn0)uIs~j$9NaGTxjwkC;s{sHx|A^=rfCgWWuG8+3-_pU@Hd58!WO8s|~C9!}#t z16RA@WZ#j&&YZS-&;QFiGG11}hVUD-`E7Uh^GC(X!*9^$3SwH8Qm5iDw}We{_}5;dk8GPfry+eFts!*Xj1q#~{Vx?pe@& z6X9g*oTOOjTA{;sa^NdzH@{Wu>hOdcQxjIu$)E}!>jG0I3%armhd!2nhi3~2crkA!R-@K?Yxnn9Xib#A^6l;Dy(zF_}#ZtHPLZcn4p1@!H z@O76RYu=5!9NJdttB%-JLv!s;2r26mYfF$8Y<+b^YV9tcn6zJ<=nlk>OLW_tS!7rD z&bW7?v=zn|&AhC7Tdhb>b64cHCMYJqh^gR9cgKW-zJ5~)ZggtaYIhXhJ@uc>Vd9d6n98%5$1 zTLZCCFEs2cU;PL(C6-FP#UB(}8RBgRUAh~pz&N1?7uQd~L*hU|!`>YUW*;2ei$pq^ zAd#LYIaKMSNTV30V5`iPkt9X<`|cIjYmb|sN2$cz$)^ckx6Iz*kC-HtTmVB9_oy^(F;;PEz zTd`zkqJ2nZ%ei)9{}8w%cWh0xM-%()SX(RWRB~GJ{J+J19&2eT-UVO%cYld;Xp1GA zid*4K>x&ASxXUURq<@LDDH|^ zB)$qnZX-xSEOm!SS(R+q70Is1rqJQZEnD7mkK2-bVbyzV=vxj%V)J%apq)n}8@I$- z#N|L}=2N!pXEWdLt`0^vO$;QrvYXgik=(8OhXaxG=ItIQ{cUB(;Q1JbYThLB3~VR4 zYfHO(+^*!-qrLdX(_dv|V=FA0Qh}%{>{k4^m8-{ni}sb+fo8BR7zpfVjG6UQn!j+W6B?|>}iee zu2>x^MhVP{jNgGwoP}hMw^onqMy#uY`;utRj3#$hwv=~QH17W5UWomOqvndRCsu05;0U2msO&g4zEPzFYl;0(A~W{$o$+O zG{MvA4%9n_P|gg$L)4r~R41dr@H#A^@NFgPNLeLr-x=O{FRr#}{0eyiGn>O+hN14x zKpa-&KjyJJN0h98A~pmB`w*cvuH&JvM7$#Bd|{78*tKgSn;a%o))_UfBwvv=XUkWp zaL=RsU2j}L_MT(vn<|dZFTd&TR`(7it}mW%BW1G?YOH@NIw_QAo+{7C_&1PKvsl=T zw4NosI>@56MaHlp!te4}3%s!2!RF4p5xB2^OLpyhRwuu68q&c0WEaMyRaGG?S`lH|LM?(5ZsloOaTT+c9+Hy>##U`-2a2Bh z(u!FXmsVU>QN7I{o-b}0o(g8)CUnumbbYOuc3yJ(h3E^XS0-PU9Ww^mid3|Dcckei z5&My`d0S&!+Vf&9pSG6Qc7)tWW2XT+Vlp z8{>{f>}>B^v2!}a`rfaWLt{Qso5)Wvtj>o;dylnD#XVp$nVloqd9)nb==0FImuj9p zqN-km$snr5M=_LiLr;`ojI96@mU1!K`J|%@ZIqdYT)VsY;cja#!)zvhv}mu^icDrNC@#0~Fgr!(nK5 zq77r#jGCIB#myLD8lc*c%L3!b< z+$`pA%$)Sffvke}iYJf^>(b7z|JmKmKpD6USa&-ap`#eOJ1@YW%G6q3Usl>(+BF`X z#BE=(fJ}daDQqmbR$Rjd8#x%a$s~_@guYh(x%2rn{jTOEV56K8_+eebSb6SIXa*ca zQJq`y6M4K97Msjt!4^fDDiDsYeJ?-@DyFfNN1Bco;!Wd<5Y}huVitB&AL%`XwU(7y z`bH^{iS=4G~gZu7c!e=MieK{x{KdN3+GxU(m6nUw&?IJct{})hNuWNfC z(zJkfwyb?nY6#J)7SZxi(xTBqVGXjESu(YsFS|Pb`n74VEP~O&c!4N}&Nwm&wE`{w zC@a!b3l}El=<$OI77tc1U6_iYyedY$vhqWE?c^wqCM>%HSs+{ynED~xuUG&iJ}MK7 zxhs+4u2r-YxqUf)BAZsNhRvf^-HN}F|KP!n7}ixyI}m5rgnaaboO)EI?qz%7eC{^( zjHU0CcJDj;f2Zx;yaDQMp?=5@+4i=Tje173y>nw&SOkS!wY`QVxm$DKq`M`w^=s7_NiS`E|1M5<8WgzaHq0G+)l3(ptMH&R9yv zMaw%Y@Mld|Glwc<$;Tq&@AMac=i9O{SVctuosW@$NJV#vVtPkQ%>0$>{nXgLwRwx2 z+N7Nt8^uCobwwaGws3VtFg4a)T@gx+4Xv)oO9fU}@Rmj1lISa6vrNatsw~!mNnbZ# zUsvyJC+oZ7tp1)@ZSx#M9RJneyD$__gu5U-@in{JY}Gl0r2~ zY%ia=4fi@?ltPy}oMDhC(L@o6j)AlWeY8$5hc@nWU=o8>*+K-GO7gzy=I0wq8lU<; zjcFL%l@QaINE7ks#G-s!afyr=(^cs4#&j!wSXW{Z0tm!=N}u7#&G*vY#}hw*9Gyzy zF8rcz;c1xEBgOc;x)N)EWGgS^#F}n(Rq@zLuqsA7$u0OD7rEt62srZiPE4jF8-HKb zQsGS6(t$NbiZ{4dp(x5?i7j$qQdUHoShX1$jmK&yFLKM9;G~3YoYrtX!wD8Q{nua) zUOeuM#NE)1GHlJ|rJi&=s>`5}p$!Oulprdw0nhwC#cztm> zM*Qzl;O)eqhb{|(gZn=FXoFH~nY+lt?p-K`88a{2*4i0Nc0s(QDzb4$=Ma`pYAur| zqQLUA74sGBoXAunzlURA=~_LXmdQeLnnuv4u!>tbUx?!A90X=6!G4WX!r4^u?CYEi zH;RK9g{9AGrg&cAYRtRs?snB4QVH6NWlUl}`utM1XSL7NIU2s#Xj^?Ic76gaZC{u0 zZ#O)jc#0SC+mTy7MrX3`$#i+J;UOsxL~ePB^1HQM$L}QeqqqJwWS!R`UekZb@SR9= z4Y)FlP~?^*^`_E3EpNISEcADsXMwAXiZsum-U;BKZ<@{I>n%Fmoa%G>`kRXBYHMja zS`OP97f&m2tE}94iKU{cI!ta3iHZIwH3j`GN({YG@|DDUfy7t#`2N@l`0(3`L|d?H zE9M1^C$Xn!eDa$}^LEe`Ez|AD#>s^-Yz$!^XgCL=Pf)MUoA+_z6T32beR0uuTH+^J zXfjw8Twh!=DcM#v>Uy-F#7(SzTsL!}Q6lHd-0m1TzVt7VO?#6a+}-HN6WakD(Xp#T zCnP%T(cfG%5IX@FR`*n_+RlxD%H*EPWIHwkzWk;lxgC2|MUhRt#wXj8dlR2>;uz?d zzE`aD6Wi?O?v;Bm2-%ZH{rPHiq&oupZe!=k@iE3_JVuqWj&+#x!K`AgR4KvDyQ#6m z;{&+XEr})CzfCMEF1BO#R_0Yn=P;HBx~R>_jr8SaW%8eqjWY^kL8P&{EB=QVcC3b1 zrREoxA#18qzmV~c`eXf!s+K|Uj0v3>3^3+RO70i)(~8I@Yf_@s+a*$K{faG}*hPMx zyF@*(+8-y@`D*)kHB!CBj*a@=HCtlIy;aHgI(A^EqPc5QYW(m>(-dJY67dO=(AIf_ zaJFG<6NP72Bwp(7JkHl1Wc`_xdcDSh3Vgo>Y{7Q zVY0R)zl!(3K2u;4ay;>Tx2iJDA5UsI^`b}jq0jOeturEJ(A%1 zZ#;HK`jxg;v`p!)txOj7uT32I=9(k0TL-}_wXbwUHnrwijooHDs3Lh_-)Y`_suo*A z-SNJ)=z}8IWr}RvwQ8$Xj{T**k&47#yEfSyc@@A!{l=ll>L|0i7PGZ$+MYzdpyvBk zR{oK?u~EOjI-h!-bD%LPbzxam@~e*d*t9`+9W;yP){5kFH=gaK4>R3?=%-52&HV$*a8}X_*)51Q z({paei8 z&>zK8hck4saB(}9F!X<1vsVWw#&eez_r$x9-H}OKldEG7Tlc-p#KkmwoG>s#z z`p2%s0=NRPHoQIJz{zTfwZJZ)iWwNxec7qCbG^7Y1! zgnSVr-Xw?@F?`uV2_Ij`;w{Gi-Mbhhf^Q#uf$^n=&soArfld=@0qB{RsSIrtcC@6H zBUj{TEau0euAuN_e*4NV(!}?Ai38;g*f-*ABh=uc%$xbT6nliNiT%#i%PLnV?u6Tn zf3d_a=~IwgS8ERn_8Ej z-PGFP><}Swxqyi=8deijlC80Mp_^hYeWTrb!15QhQtzx2jq@p%mDR8b2C&2tbTz9* zYHbNz$R9J6!TTnv?!Yokn%>!n0Ayf|okKyReMo0{XJ6qgSMH+DP?|g1`FGLBmZN3p zSf4}OxnpIDcUah%70K-6=Da^Yh1K!7x&1N&cVPWvGQ0Cp#O$^A+`d>6J23h2d|e4& z$VSfbb^TG&MEjp*8KWdSr%N?XowC%Pm1><6qz=u_(pjl=j*&XGJ{>tf@Xcpb%U>Q# zjf$n5%GBk3W2t_z)B+c?fkeBD$@a9!_ghgBLCt8GP=VbFNFv{_ES`!tJ(vPd<+OWI z@l?oXq0~`>QT9gA$7SeTp;#foeiC%=y|9}_qBLv4E9QK$%(pR>sqbKubs}b0Z)2`egy9^qmP5?g%haz}JHcH7@3Q5_QWqg7dUf3U zKK3W@=C1ia5ntEDewe?#1FB;4fBc%6zgJtW$Y=Lq$m51AzqMJIWQWznTsZP_$<=A4^(X4gy{I@k71D;Ybms1y!fAU z`=OA*BE0Ck2))pR;gRN7U>RSs%;L6L^XG8Eib&J7f_;7w_75XXi{VJK8%u|+a&TKk4ok#fF|_ zxgH?Jiv!c%P=h$%M6sX_;Vmf(=gYScnl6__d#D0$!*%hX|LNZfhbW^&`~F00l#@n8 zh+0>qEl2G`g|FDW;bz;PJXvBFi!>vldpnNAL>6(?B0y{l3g4aQ!l&1sF>w0wr*kNT z$z5Cywc4G_v3l@T>&|g-W0~?BEI{rMWU&8kyz%b51rFWc$5In8)2khxx+cn*{i|%3 z$u=)O?q??7uChPunEM$*`^0Yexbs&~(*DIj&dlD136dC>`$H;Ttdlzvb)BkPU72UhzA8c!T&Y>3|=|i!3arWhu;r z0UTyn<5iUCl)!nA9QA5RW`5`Iu)fgwBi3Yi8G{v{O39Zx z`uz!W%hq^a;@d!cun*<~OC8L>p^54m)8{Mjnw}>bvGhSrPzO6&s?HA7MyCJei%4|P z26S`yJ@i5R?i;)&mfR5wKEi_pIPwtS8HrZRaCg>Xrew!sP^@gm;61Fp{*Bs5$iv zJ+uSAuy5GbWg`&6i`XsUtc8IhqU{Kfk!?eupCeG4fkTD!96CiDiLDs?_ZKug-uXw? z8sGZ&LS!Ib-L+lBBNcK|+p+UqFF!F^mvdoX{@tYV4<{AG!I&!MU&T|&$M*N#H#Yet zHldkcTRwDGwN2iJna2Jt-FOkbFZtOk`|~U`;VlPx9(SO&BH7m!@2J207Idh9Ylo^) z&&Q8V#m}>vyH-9POYX!*vB>(0won1{UTD;|Vc&tTGp;YLD}BCV^K+M6UywR|)wk=> zIox=9@-qxJsh=~47~N@w)|Xu^r~ZS6Z22UwHi=iXct4W*IrFFD%XSFfbwnhlVhNan$_Q^Z`mAq#n$tkv-yq&v=A{fygee=aQ z-qu7`_D&pdZaglzmV1g&lM^=f0-_x~$!*4c@A>+dmP5;o(4}yD+I}kR<1V>^%8^Yd z`9}Qk!~r*6h~`(PJtrUG#-*?IV4IikOTF}qxy`>wKX*0%RsL9P>6!iyn*RO&?dj(Z z>_OA-0Ii1^trCz`{=HWvxmSv}zUbd>pRBWj`G@=$?~{wzg_Tq$x3LRDSM~-DB{g79 zHVg9>Zt$=|4@daGCc@(H!;UGKoOEr&i^72jt!rC(Lw(mayj(n)t~SgsIO*?d!wbpp zBHFGtm-5C)^Y?{I?TdD8!>h3ez-jytUVll^gnTGH21@K4ew8Es&L8}h9dILbpza3Z zx8PmG!@`GLjCa<{DRw1>Chl@$tdYGuxAIDNSI9YnV$!IlDm{B6H#O^G`7fp6=7){IgSzz|tP>5B`AzkBW%yEusVT%5T+2 z4Tj31I%;o9-hXiEEa zQ{oY?Mk=RNI4S8Ph8?YS;PZgj2Fh1$XWS@m4DUlxnz7^yRq_~=Iyi+xQTH;`t`Ct2 zB1YlW1!lzbo7^I@Tyg6nO^=X^J-X#jaxUcww?>+hV3f8#!NooHDR`<)yaR!9-Hx#( zb}Wfm<~eRG*{7-nGqG6m;c^%wUN|9NFhpZIQI%}tK{t6A4kI`_6lgBuiJ|$$lVMmn zHwxbpQDBB3LBKhVA*HRI zzhsG-`9RB|T>lHNoohvKczs}Xjzv8X@9z^IEl~YkIon%IOc@px&!~c#vqhuB$u70E z$bw*jM4Gs`WI@7$1sHJSm~LQzp?5S-qzryIlbFHH$=PV53)G%~e6jc?Q{8gtF!;pY zekIb3J+G?b;WB|Nw>F+-Dyu@$vBN0d@h7(;3K~^{Of2e%W4eVo3@nsY7iq_$M$_@- z@+}xRDfOa8oq50uK}3#dw{}iK7Odf38Z1w0d1}scw z6^2;eBz#g8ihxfd4=`SCj~-|AIJ1WhXSk=OQMbx)der&f#T~;nI>!Kv%(8ll@bYwc zy%3(l_+oew<%A7%MpbOe+1uEXM_Ud#)IPS5M4vnnbYHqB^&#g_&ts1sJ$n@PU}%T+ zu|-0J=fl(C$@=->$@&jNnqgtyv4uq<)kow>D@E1}P_SgeF;Jn93CExwHX}ch$I1t* zFaU5S!zfZ=h+G{4hXOCd=YJlO8NMU*L!(XVBmEW|rZMSg6@rNP7|&qsZfIRVu*OPUwN!a)?OJiKi;wNs@<8LVDO2!uQEu;u+ZR zVJfilFrz9J-jMGjs7=l(CK+k4Z>M@W!(dMHvV+c%#uL)+CFFErC_*puGJ@)(d^SOP zhChLpb*4YCNh0Oa*wMaF;O#75Ho-XtfwGn&vl++PJ}0E*jN<~Nk(r2ztKZ3Fj}9?t`Wk64$i++fnU8M;wo$k*Ic|0jDA20ItvzsCFT7uASEuN>sbhASu?UcA+CJ zp{`NwLW8B-hiVrpk}MC^E;K}P{HS)Jqh!Du)h<-L76Io#wacsHbr=%WF7GPRFxGNe zY)j$DCy@iyE^paLNDZo8UIUd4s$JgN`{8tN#-B&=PXrRN^5ToF;=qjA80o|D#kl!n zo)x%Qnl2cN7cQ{^mqd_b!v1 zzT{jZJXK2$u6cxx;LMhsf#fW#pI?t!h1=km0Y#{Fd9v2AmWg{gd3S~te#f2-4Z+a2 zgoO9mdyz?k2kmOy3=+mZUYZ(tU)lUnTd1iUL&CuTzw8#Qv|B^M#{~G=L^?QY!>Ld25K0oEbO{l8}2c{`L@F#PuImcywT_5G>X~`7av@pB0!b zq_y~4NR`3|w4S~%#0rlMGz+C0wMYixDU1vJL@4}%p?F&2!V=sY&dMoFlK${n{W9E< zJ2CK%@bn%%@!K??iZ2@g?1x*#!{`@7ZXx~_egG>%E*qWC!~CTUa~IV>b!wngsG{Sy z3a`=;i@bnzdVn8ghFoTe@U7DT*(HH1g^X#HA+zrXkxvT>t*8W5m+ zr>H@=(!Ljy=C1o<5Y=#*y$=J>y<2iO1bXqiO!uB|SZqN53wvKb@;(IjM}v=~AQK1B zy;t&a6TP}B!Cfzdz;*KnfdX{zn=jI_Gteu@IDaCYxncj@U&`R#%7XQiuz&8aL|y$? zuz&7GsiI;3+($&U^Zc2L+qcc)Z12<)HxycFk#{c~TC(#9;r;hAi@Rpg?&>x?+Nuf3$4_B zOFB3B!T#L0CG-AJFMg`y{y}uwKCnOc9jTBG_UFDUx#?hk?jI%B5BBH&X*j!{p{*X+ zpZlI<`N00%4*^_UG=ENl63yb3c+6DzHEIW9j@l z)N3|V|H)JRXlr9$uTz+RpNd{T7to*kH&teNy?C(K?UI^n@_PM{;e06@vIq3%?w6c& zpg;F3$<;uA?g8me1Nw9SDVcZX^}=Vsmix7I{vfZ{0y@8u&Mcrm_gg8rE3a1*E$o)g zyYnJz=(KF<{$XCUp?(?hhL$boRDejN*qKoG&U%0qoakc-V z7&lMJ@6C%EG}W5<={kZZ_vc0az`W>fSM+E3J(#8pgq1!@@SD77=A}GtKl^+!Vzk1nMGf@} zs^>4nG|KI7%c`+cvvEHYGU5ouelag9&6MDH?vZk~1kk@|{k&y0HA`eFEO)T7@ipxs zE|C4)A-1aDnh&TDB|6H!5F>DKXuB5GE?c^|8p$|D`RUMt_)@ZuRqW3+8$oF=B`U1_ zKAH4&oRTz#WkD}QqKDb7A_G^0CqVz)5sK3ij&L){Jzd4ME*#;?#w}AhyCEDEqbP5& z;xK%seYG5i!;z`f8*TqexHpG!?RV``p)XoRo>3Fhsq&09OYeE45{1>3f3;z zH0SCXbxD-C?Z~arnV2TC+_8$^9*)jyShlPNQ(Aeql=L=Ei90gImRqSrpM|4!tPJYD zVt2eM_x*_J%7t}?KSA-oPP0JVr)RknZP^7iI%%e(1zB!P$yPg2Wtu=mb|)$R8Yk0q zDL+Ta*EvyKJ2tPTzP@_#()qx1I#<=e4Z>q}-JC@=aZLB!D#gDa9wZMJg)P0Z0XODd zq7wU{6TPZo&XPD_nQ`OQ{2G`yQ;C4}_c+V1TD8N?PL$U_)h(;JnxN&lRSJz_wh}%; zoBV<~Dipx`*&Ko9+I3%KcWF`n;v}oKn;%VY?F* zOJsF?h0GZ+t#?U0{i5web?FRMeSP$ zpG&S>vh{1Mi=9Dk=hzqv8<-Px~^u~;)SR?^D&cG8MoPue86gOmx}mlc&R}(z*Qyg29<+= z^5c;Y_do4|B6eRpU0DFk#{2Big15_!&c&$0=8p2hlv-uTTdr3F>#h#Z*u){TV8e&y-f2o9@xe;toS?+I?&HGj13$Qp`jE7qOm~OpFByr=U>~SS) z%=g!sd2{A1sF4a!DTSsq1$E(`2)@;RQH)Qkp`j{|s1268)7~?Xd9)@!x^&TeOp;BW zsIKEh)yyBxm(^0&?p-Qzo74Ep(<>^z*8J$C%8F^#qDPk9#%s2m%J0mNV*SGkhi37% zO2LcyqEtlNMbTL9A5|>7R4lTkTP{w{h_>}seq;cP`U88eaA$(}IfDaxuviSa-{nB& zEhXy!qfiw1Mu?~&MB)lg=Y&AtzG~TNF5R19=a&^@MkXe=`Db!K#!^$vZSzMe>SIe06-G6y8Lp^Ij}(@W^VZv(sh)WP34c}tOx)CVycxt zPP&fn#d?%KUb>Fy#g>piLAtVF{qiSDK}j#pv+}E?>o_q9%Rf)L(qR4a&zDR;tY7{G z8jA8&8=$jvzSy0#@^6|bDz6XLFaK6Kad_D7#c4wR-O`H9b}!Bn@_#7jWvzBE z&eQTAkWN3WU;eMeu234RU;akP%LVI~|1fjyAh3SzDtwK8`dxXy{|=KZO94hm;YB;+}KB{uLDAb>S61x{CyuC z!TiNON}8Y=qra8^k@SVl6oJ%7#6l}yEqXFx{qpzA6l0%7C>vP6{I8^7XFyE<>WJ^b z=|sL|> z3A)tzmNOy1Y($3=`5cwfnW&t0l-MPf6I1Rq=s#ytU^W5}af+Z3=Q)Aji#QpwFHRry zpL2eIHC_&6mNQvLEbW*QkX=wf+Hrw$hLjysl{*~eT)}dtDR(CHpL1d0wR8*2{la<9 zB>}ci8Q&}&y^QbDjC5b7)2-sGR_T2J&2@_RqO0@EX@JV$hjfHLV)6 zre!NoOv?fdups2p4$n-r>sjPn7kHZnE&=+4<=hZp)kM{Z%FR3HMwMzeGLo6FGH@xB zF}_5XF!+Tv^_J5p_O&x1|D08U>!9kH1IRz;rhtV`HRLizVT%9K>Uxlio9!4mRh0<-0_< zt3?byQ9M87pM&m!qX6@i@gfNi1-6MK&{CNM-$l@_^Gtw4L{z-Ua9UMiS<%Hym&6xX z&K6U}_!7g}s%uzOye)CI=_(e*>y!peRGjUKgT-|Xw%gHopHmz^l=l%3a-`gr;c+EDvT zV2n_!#NR^diiB}WEhbK?M)w0K)fQ+(xG@MkDLFl|BHZNzc$AzU0a2XJOMP64ufdA@eTecCHM%*Z>H* zz3}%Cn;Z0f_>Q5^HZ(pJki4tgSri;0G|Pl0H*BOPrx|^i7OC#tRv(FwzYrmF zD?^6Nd94i8?@wP4?lcH*S>ZBcx#)6M1;-(%kUI%~53%`T!j~Z#R_C}$+_@!~5dM?G zKi9a@{~IW#KFn2Vn{PENqP;cvr0~{?zkS8>m#=!HSI#q}Fa0h^c-avASa|sx{vKk7 zil8q3h+GYc7px+gzMIOO=Ym6^7jloq-@ambIhy`N<=~P^MkAK@B96A;6rn#Ie-E)2 z7+o&yr7n7n__C#oP$8o|ZVoQ&|>%jNx`WOW8>_AA6plk=CHun z5y<+>)oZ~>hY@fXz+!mmvK3ZAnG+KOM?cwL6pV6YLn}J87B^{&>SGn0>F_OT$Q~RR zT5>3M6tHT?0;|R<7_9_HLSP-X!0FxNP1qA%S~mydp5^rE!IZIcx*GE&0xUUwd&qX} z%4UA3au!Co|L+{8oYBauNP}~@a`weW=bXziWc5>weo--(Sv;psjFw_J>#t-3qxvlz z5+LvKbVevy5z<{>Kj(7TcB(KHDrNA6}Tx~~=f=gXZ-(#iCm&np-^=K3>KeS`v+i5`DNd7Jn=sv}56v2fz-wKgZug?5C+Bl=&we+OhD$7lz`^sD^ed zyogQ|lLzfsIGs`O%tU-?9MIM{B~UoyIKlEkI~HE@y71_Sb}XDJefpst3uj5M656rw zGQM%fdNwRq^@Y`W#dI5J$HF;tMNGrP*RsV}g>#v5AGBlPJfGGEMC0Af=kV6 zp#KiMIvO~@DqO&vJ}9)KJ7y+=5m}9$VbaWJ1?}io%n=MiI}QLPhU2S1h?uYPW`V)NT*j(VZ)Oc+ifT<3T%W zj)8V`=V>z)w4-JiXh+Q`k{L})-TA{|=-~;pm@4-w?qVotM>npGPKS1Mmow{gKs&lC znB<($j_$Q`{iLBC-5aI*9IGEAc2{=7C(uU&pm`#LTUeq-0NU{(&}+3jh;~j!A2SH{ zVQ&tA}ox?TlNKxZ7(PR`R<0$>%^#&e-A?oIlmF7dflp7&M(6v39fU-R?X9 z8fx0t!(uFE@v)Q&Sv-Y|-{nG`afnLLEem#?=N4IoeQ;c!E%!aE7t}N?!?ymydG(fk zRLHi!f$|ZYCBVgP%t7zcSZw54_DLZzc^dSI;hYkxgYhs+$j^{2Yp|S3rY!*wdOzE~ z_&Ccd5`p()*hQRv*!@Ps<{{TCr~x9P-JjEkBagxx9DC3p%-4=Q>dG1nuJ-Xv9iE}~ z<%{`B#0q?1Uysm&{4=C_nq=Js2l9l6+CuJXI0}z}w_*WQib{j21=7tIj&dPUjT3M7 zHruv$LG|c55iZ;_Fxfjgu3eNNv^N+U1D2sN2j?yIy4yuHSJy1U$H{rNJ>YnqgONO@ z@@OLyX*kBKtumh$a)-$t5*AZV`x^Qd^>m16bpu3p4GnX~cH{t&VI^VC*Nz-$n!$%zK4*adA1i+2PAGdu9B%N>$Wf}*lO@fL`9VD zK@gRQ3b<3qsVd{3&ADpOxR6LiBlP%`BER_X_P%#;F117?W}K*4J0UB19720sh#6B1 z14^P`+Lgl1+J79Y?%g5?^bd?3k9|&P2f{l38OWZ8(g}}BzO`NbrXW4>Wk`=^pWVc>S_#QX63i!dVE2*QQdiBEwjC(#DtS`x218_#{nM*hnSBq1@Q!kVHQ$*;@NNodcrlFu5;k3 zh6~RrqIv1MjQ8JjYp@`wsh0ilH2Yx{L9?(0cQeA`yr>M**hEh01*fRn)7TkY z4`)`emi?@~Mg=jB3V5Ew?~^8|XBkv^R0s7egSrRK(@=uq#MM9HI4Pj~o~nLNyTY>H zVFg^&n?a8Br3T}-WnXODla=a+{16b&kD)nWn6Azj+l==}{3{VjxY*_nZ42DPW+SUu zfAEzWBKR6CWPS^>?lTqAP*}ug0ycXmBE-`lfzZC-^ez0EqKrxFx!5gXZ^zzc+ryRT z73%kU2qbVaPR^^IY?tWC!iR#Rdb3?N`@_-TjEZxWXYUrBs6F{O_RMFgaANA$e#3r) zHZ6fHc)PpaI)kQbX}#8Z(>|W&)+5y8Y5tuca3WuJx_C_&uQBLi1iq~vVcDIw&Hk)W z1#z~>c~my|+=&E~&`KzAuVmO^aPwFs+?)_hp_^wZ;pVZ)INW7i#_>Rf;{5=;(fS>( z@)x+h=q$d%g|ncDZM0;xSYu0HqXldD7*QoZ5e51r0y%gpEc;!VhH_>5LiHQOSK1SY z>omM8(l8l3nTB^o8tUm5X?Rzp;ZC@{G)UeP;H6bYF>$I1*mWwR@1wN&ybHw#8KJPf zM!cN74Hd9VdEhkfO}IyKe?`2Hv=;=pV->i)Tz2NF>2eucU4}D_mi>1*7!i4i&s)q2 zJUy}beCY^8#k+B!#PWCq`@Cn1IaXJgb1ZazW5n>aUkqR0LM(Ijt1z3%rP#zA!<&EX ze}*~n*+_Q`VcXw?IlCB%vG-(*THlHR=VrLZh&fnym~*pcm_1?*e1B020lZpv(4n_o z5S%j?vUF}1Aq~XP$2cKEQW=J&uQ67z-u_ zIMu44t8Pv`=EX7b8e};c;`ot|xsgm9y|*WcAU=RIvrj+(CkO0Z%8&?JD4%hd;6iybQ)xuqJ78-~>T$q%En+A>$u4n0D)TapLE;v=xV)4M!gqA%rXh&6y zC#c_P7>Q|di#RWOVInk)R93Bgl1%ul~{uM*kgnCa23dM^}7Lq%|>9d zZyPHDn~WhzF8QSI`8Al#FGWSVIB45RD9hE$#X?z`taQ@GARO3@b-flr1JDV(yPFxtzBDL`BgE1^au! zTmjuPU_EjjHaF$|DR=@LLn3&h*qxZ8;n5EcD)$dIdb6z`) z;*?cnJ;`|p-H%Kje-rU#bgEV#?` zX*tDv06eu$5QB;=sKw}?E&F{(%!TSy6lLgm_}J*6+RG5M7+T&Jo6kQ*1(u!E2V(gi zM9#@h>O<#4bZXUfi)z;4u$sM3_xBiBr^6}Ocx1?!SLxm>`p=)kJwWVHd?b4AQHvHX z;nzs^$HHk}D!Y|Wgli_!eX=xMb+4Za{{7&OXhm7>2QdaAT6VVx{bRVT5uZVF6w-0B z7=7os9DR8w(ipMPG1q+yN)N(qjTnwT;X6jN(d94}8bzNq^;o=F_Dwj*jOq`Tb;7bD z{Kd1TNc>oFdc?N6eU{5U@FAhpu7pL%8$O#&=sys4^gKh`u};`A9d7o(ce(75ZiCAz ze+RwRNy`6hSZH749$$!VXEUV7<3H3=czCg4>S=O6Gn z_uPAO!jgMg)TpRe0vcRGSj3<~2?PjX5s)P;5<+$jNlb3ow1OmHB3gr@rB(s0TB@kH zRB?}h8m(F6}^F7aZAou*{H}Aaj&T{6=nKNfb z=&vHTu<(z<{X23C3;!7W2*vON+|t572{&1|TUq#y2r=$LT%PoO_Q2R8w5{I-Dd$&! z#F0sP-=@s@vpU}izXdSsT*`Yq7*JX0<}+~+g1WqFu;GM|y-%s2y&38F6sn$pD%moh zAjT%_X(PzX#)r_9vHZl5s2D9Qy7A?xEB!;Z*vu4xPV7%X(U6VApg77(>g~^Ze@6=O zHS5ePP8Wg3{`;|KHgZ?J1zlO6M=2~`*Kg)gEO?fUyd7=YFM{jjLYqVwk zT`OPC%0+oD{~wfhDAeYV9aVa%_eRH3=pTb>CkwS%=(lpYP@6>z^Wgretml%w9VM&O zKC8}uK+wCi`rC#26UK1K;`=|;nJI9`sh7>Xdi6~Yg!iLJmAb#E^BM&C25M!I-p{#m zF%&_Z-l})FdZfyPx6`Ehag?S~`J+0&4%O4B=@7N$aaK*=<=NXq^!{6`mTJ*C!H^wF z4*ggM=^pa5YTX1q*;-wJX6hq^1zt-Qepi9;+a-@i8HDM3b^uD;A zf>IB_a&TQnj>*XNv69Lfbd^1EE8nbQuR_yAhnt6`LeSR8&hKwLx>Z+zqh3NOh3XN) zz!Zpd@q*wt;x-o@5BH0d;w>JH$X^Nf2=RJhizi+$;PGADx}`TB-*af3^=vembc}Qn z@^s;9o%Sj9QRq<-?Vd57%aL&4OzVxptGQ1g?AFqT}obl&YQ}>5vb#4~YSG zXWhyb`o8?IF!(bOPL6UUWRFbeUYR?!N*#Ze-*W;!x*o~7vsdKK?chZ26pEQT_Fj)( zd!90pv*=9`;}zri26$ZC&MJ=~%7;BQp9h6eOj=N=C-X!)fnsJ6-dgKCRBB8B?!a z5*TuvQ?k|RQ{dEXoiM`Lx4gCQS$}m(Tk9Gc=H5T&nfq5ibHCGjm2+;vg)`3iFw+^m zr|Hf!p0xtOz+(D2kACLRPu|e;e_y=BDJpPI$##nN5ask=MJK!(2?lN}T#l3NO!Y8$ z3$OFVNqQ}E!Z9b7?{q70id%m_e2MdRC@{btJl*LNb4m(cT{?EG(`}U#$#52}a(b0H z6#noG$s!;;l|{_J}4Y{G=1ka7Jf48QD%a zTY+e{Q^RNxF+ z1=Q;7whA6_9$1m@yl%CQa+Vj&ca~>6C$DlU@}1OG&XX(J18KcCAIJ&}>m3-<+u3Oa zF0`F{S9k>vITy4#Dc+Nf=g&TS!b7v1JTJqW;9c?83-Y{C<3>!Z2%OQ|`^s4o$h6O& zP&v+7ob7a9<#a0xr1fx$yjACq2n_4tWO&)L>+e5%!qN|&n_>DVR)Mn~#?g7PSKwSy z;JjqD2l^e;7&!Zw51pl6w$oM{7;JlUA0Ba^*K5T1`nkCpg`Rt8;>vj~wy#f9U+d@_K^p>7429dDpqtE^v-q)joI5 zwmY4ktFF1`mS5b`yn{mj!bwJuE`h$bvuMvjrzZlWWXyAB?QsTV&vP!`;|vG$QaImv zyf(J@yc%4>O0+Um5YV;1? z_@R>{!r4wYZ$If7@8;9Vy^{jFq87WEgm0st3+U%8ccbexv^p)exAo1NUiF6j0<3+v z`vr2W%-G(;>p9pdL#dpQUFa0~idGjN*i%-A^k zu1(Hq8=bk?o1A_dolCNvw2jV!f=xJ_J{#vbPpsH@k@u0a(tdKiFc_)0$r;e@^{3cT z+&4PUTkT7(t}mTDeA0On=A2zlX?4r+>$pxAuO|U#F)gIxI9&?pv>rdU+b({+Q|VOd zgjY%BUQgFadD7{M>-gaZp7I8gFHDFzJ-n#*z}Jf!1#ya(zt{QqRbM!1-X15*i#9sZ zGUq{57@-qYu+}33L~UG(a$Kr>+Fig5ClhsLxEFOkylTI*GTCeW`a)-U{+gU~*WBpM zxjENan(cHg`-;K``W@$Pb-$W(zSn+a*)=;aN<}pWt2DgMw~MSO~^yzwfHO%|2H4acDiIZ%km4$al`Dn|LOAboV>+O zMS+vNs@zE_$Xh(mnVRop6s&i~Kj~y;IC=T}i&pDtv?|W-C0?1=-$^dG+TA0D}C)rSY1zWc{rc&0P)N#|Uz z=fTzM-)?e_Z*?MH+yVWzyWf3RoC{p12VGXSE0EJ8f8sLdrWIx0kORazuUb#u@i%0~ zqbv6R{j<-U;a@n(d*CebVovf#fNF26ccXXuhiHQ^tEGpRFMgaqC3*SYpb;13jhM7a z=vn-vICT}5v(u0*U6gEl1pUmUAFAV+ErQDGm0WN&9095k&Pe*XliCl5{FaC^M+MqO z5~@)MoO>L(oMUj0X}#M!#))jL071#xe33>|1+~$=^R7u*lbbe-nK0Q2%No7M_2zh& zoI7$txp!gHwzHky`S;IuKE29oJ^#E(_RT0G}X8(UgpVEOhVOP z((d&7LMY$rIyc*B&L>=O)gQ~xpXtoR1##!HcIS}W>TFn6;2dx_I+vn3j)H$~h1X8a zI{xQ<;fx4Ow4JRh_B*BUx_24wM;n{hJN-o-IrDKv)~<3+#3crwP1R_uMo!OklAj#k z@XU%ypHtg)e8KOX>8qTx#GQP_9pf7&jhi%X^?1rRdp!O84CPbi4PEbKN}U()mnwVS z-ryZ`{j7QQPJQc~rcGB0-OlkD&a48e-gRa749vW|VQ|CnxtVnpP7Ur+Wp_=QTkahz ze=cb#zq=7Ne*XM&r=jdA@3^PDT-?Iu4xRmUxtAIzh#B*Z4nZTNQ5+)WMD z6VCUd<<6h14CkR0UiQ5C8wzi^<)-h)3`2FmsobQ&m{^J?vpTYf3YW@*a`JT>M`zM~~ z?fFO)w5&JIFj=GXW6rRQ9Pf9|#8o$XP3K+kl_&aF?vrS&pDaIr;M_IN3119EooR1u zya;#Rt(#^|LK7Ciq#S#O{5&!$2T7xP!c9~?#LmKcVCdjRmzUPnoGrh}#$sCHd)%n} zq*8VzCrus~Y7-T)+JgZ7Tt;#MW;Z5ra7YTT3WP-yP%kZO;04zMMW`u z-&r56pEhn(bYVj*N_}RExN`L9DOjSbK8Bg&2sE>(sE(Zj}lW_hl!rT0HcS?6VY>-Qr^hYjAmM+i>gmY z!IYFlXVkJlQ5jT4F~U$sIWFTfaydvP^7AOdMs7+G2DFYM#a0zJ)W>QTv5=}_*7g&T z_C9#z#a|SE$KdZ7aL?oK1^m%bT@w{krO(F1I8oZ#RZA6&N?geK@(C-yHPqJP%Vvn_ z+?OAaP=Jf7tCm5to+}lV14Q-F>=Dr+gD;DkzzdgA6&8{FRJaR9L ziOR1nRgn$K7?we=D`fe{KgpjL#oXIyO&Lm7On|3!$NTd@2vwBD;+iR{D{okYd3{2i zs82_eFRsDL4aG4^ZsGVzIpf9@&KxuC;_(+vww5fEq5bwCKDx4w7F}oYvHa1a zr8+;P!snz!RtLtUq&7LZDbdE@xRjBBo4ce$b9Sbr=Ily|0LP~ z-V0;9Rw+Fr)kF4r3@6bsDkU;5C3RFvbW}=uPDVD1 zrsR!F+1#Zu*~tlYNy$T0BN0^=qRPy9F(rM}s|frD==ftwWYnKhyqvD2m+j{XQ!fyS z1MyuK$W2LIL-wx@=BA`Kg>q9eb5o`?x`B0FpmHY+*@YCnfE2w5m9M6Fqq|x|WpIn< zMg2wPM{df3Nlk%9rv$mSYv+WnfkRz(?n?2-2qO??o(jj4pdP_+4IRjtHDpH)VoFJG z3^fH;JL6Jnk@@McAPNgoVL=2IK$p|o27gf;pD%dmVf{SY=@+J)SU;&oI$>#J$Z<$h zZk#5HA+Kwotdoc-C(-1HgXcaCQEt?i>J-n^C!W@XAv|#)eT{)}DVZyfhMf@PddIVe zo-=Zk_kqB6Dai5h3>`JTXF;fh;^T7Q2{rvqe&(d4Habm+wANXSRHh={2=Y-@2(EuT zJ0?rjL)3>+arG}p)ViFMyj*-O-rwZz8k5GQEC|d(l6Rus?}8~W zpys`Z?06Nq@(0Rp8sZlR&s9(j%u(v^lq!GqmEpNudFFw-eW6?LTk$PS+w;qohE#lH)l6oX-f?MAuht%E(5?8AkO1wO-VRiCt%y%5jzo&u`I}t9rrl z1~%x3g(R0NzY1>;N(H)HWjiKIv}5%_JC>W$hFay!3j7c4SiWdN*gk$YJ6*RsQ}UaF zjiE_v0;`>BG(IoBuxsbIuDU(oH>IZ}vVl^G3>_%Pi>Msgf8T%cxBAO)iS>Zf8&&@Fs)i0OkJ%lI!?Y_( z9xqbFfpQn^auqepVA!rUC3jT2|BJtMn$({dUfZqw|7W|E{C~Au$sHr3r~IDMA-|RX zDaLZA4?}=Vj;l`zGvu8Ag8r}J; zgVzPtI05P|yh@c%-go(WiB9WQLq^**eDK$d(VT6r3w+Vx~%ZBVTs3hwz3Ia zgz*Byd5kL!7hzm$IFIp_hKnfZJM~qJZB1h+JD&8?V=6SX7pQb8=V=Za3*m1fd5lNJBy5Uk84=`MWai-xs#$PB-M8Xc*Cxs4*gz6%wsf#I5R#>dTOG+_t8(BF-OBej}$V75c=AIMs0(&{rk#|8)jD zs$yZ?j#bx&7o;7J-OBmCIy+WFSk3^i_WhxVJ9WvbDND*8s4EJhkMxu5|CF;IK z>HMYEJ%ypMY2DVvM+?WXg{*a!o7S6Sd`+d%w&o^={I!aSL)zAChHG`GLRR#Yre-rV zcGcUP616|0w7;U$GnJtUw{Dj&J#Q)b%{up{GGwb9Yu(<(Y}YH=F5lhr!-NFV#dyE! zTRfu9C<%tIDax^8D>e;QYE7IVIZjRhDNIcFPep2CSoiee)Q}8%x;i6OPcOb+Iewwe zFpptRSIP^y4CSbfC-*DIvC4KK=}!ov`Ck&kb%ApXw-Yv1Y?lOUK=oH~aWtLWbjGN( zT%yh)tHG+Z`m(cHCv_^rXEim4Q$19r4VN6lnVOp8x58H$IJzxb_cXumDXcqB>z?M< zJteWsS@#;Ho9acPa^ezIbyk1gQnirt+O}qLc5`r0i5Bpv*ZZnCsPo47Bf~`)e{8r^ z#-AE4%J>Vzr87QaxJ<^^(9i)6G@H9Eb~Gyz#$+;XFV{BFZWXxZo3c;h9@|CuB8pFRTU1&GoQIJ)2a?j;7acDFy3}4rZF7_+( z%u*Hry6p0k4Gyb#TqKyAyxKzgP87{(jzu`Q_{2j4KvCLre z%US<~vKZGhL)M9lm*EFWJ){z~cXEmQbx&p8oK`&2Fl609>+*d++vHd8t2L)6V}|N9 zXKpH2xLzAN;|>L%GE~oQG6POiXS$J$S9qp6cT(T^qw1b1GB^c0MPdHX8rOiyT#5Kq z!&Dt?iN|<`;UbJ@8ZMRb9K%H!&o^8;MGA7vkYdOYLh8RqHA1M5p zPVtPWQhJ_N?z@Nb+p4dW2sOZr`>L@%a1qA*ML)?UW&*$28f3zGjI#_EVZ6j}nT(ej zF2a}>0QjjmN2zcq8-^UblW`%obes+~m7$4joiBmBHbAWoHYG6+SmY-n=NEfdD=m~P z#;Xk%VLYOTj0E+3x5bVN6iH>nnAaKTET1^id$sAlI_wwmHE4bj|7fU+z(m9Y&^oKO zE0J?l8f-`{Lc3BxP&pTGhBr6GQ*`Z{;a384HfFhlmS0xisYIxN8Q*2N2;+MU zm&$mH;i8OxYq)gA_Zlvf@qLENV!Tyx$gehw9or1qZn2~5vAU>QZFcl9WV^+Vo`!6* z*wIUoNOTtC-iFI$e5~Qp8Dj%kaUg7z@d<`YW!%Sb5yreE1Z6g3UP}Xs=7}^i0{Z1r zdRt`zDv7OL({cC!M&U-OxOk}v;u4QXlnPcAu<9(v=O~>R#<5&h%u3OWuwJ&cla}QV z3F?DT@4AT*h#^DQ<@i`1;@z?$(cnalFgTs{aVE$i$aHqHUOWx^Q!#^6@v_P-NHJtX zIvG>ilaMf&k=3~wS!@PtL$Wsel9i}0L>ZM9VU;~pQMgnT;7?I*leFm!KQ^Vdeg!+Q zQL{Lbt##{HtPdvt*mo0W#Q>e|=?u?Plo*I)2N%3&)kdTSX0{m(44;YDzz)uUP96+C zQQ66fu<_NtN(Y;cY-?S?MjKUyi4}yiio?@gF+mlyCx+re;@E8K60R5=mt!UWxG6Cl ztIjvMzG219%5j%EBf$(GF%-i#9W)l$#Euy;3^!&%zXr7m-nMK$LQ5D#+Sw}a6A*bB2 z8thH%F#2aC>gRgTCEm&HlgkrZT)zQ@(BzPZ@h(iO`LR@qWWa7=L8ARK|x47iIj3;nErZ({P!LKQ&wy z=>v>y6ZE}G+ZX*!G=p`Jk)Se z#`N_x9nhD`ILmMm#={NgG1hA_QC~Ch;8N;#obh3J&Q5d4BMLT*FHb7#6~F%TxUDEgPx#7xC*1s;#cfz z`8d=W+QiIFjJa}&`yM+?u1rf*-`UF~*3StDQ30k!*vZsZH^)ywmbW>(L z-Ea}cGYpr?c&6c^jAt1xo$*}5Wino9xGcs`C=R#UeHJ^Oj1y%1l;JWNKW(^l#?Kfo z%J@0Mr80ira1qA5svc!bVzzVUU8cg}UdfP6?4*grTaUwctc^9iV)@d6vH{GT1 zRvo{u>5VBb4o=tBHpTr;2lL%%5`*FKhBcT_zFR(vu#HFt!%aG_nGD%_G_y-}QjGSQ ziMhR7sd!DDsYDq6#c&bEdkmM#nARSp17V|#|7N&!#$Aq=a;Sp4Ep~KOBm$>1?q;|s zV_KP%4#=f4PBC1BF|UtE36UYpFDLe&$~aUlh8%S#Rm&gB*Ho~`2U>9fL$<4v`x%R{ z4OEQ+DoL(7cT#B+gP{Rp4gb;c&tS+3@j$h-6Yajb&EH(~HhJqYKErSk#=I(IXZg+F zXACmoJjPjui!i>(aG8v!7%swis^L7wb%x7iTyMAtV_tajr|eyz!l8aJI7Q>}7e(nUROFTufW2YkNDqy_Ja1qA44d*fbFkT@$J~D!- zjQ?S{2xDG8v$JgD)ZSsTjUn5EYW%X&${Im2WaU4RlXq*~Q~$0MnNYs#@n$8>X3*0O zW7b4dWf*f-qI4Oyt5{$YTh0-8(ndV0BIMBjuN9@KXn$H!VtwOvL@!dIF*Dge$C+0X ztu{jbInKPM==Da(KgXHBfBIYrQKew~t>Ge!Th)g)(s&Um@uG8tcCxGcsi z6erp(b~GBY-D1aEr^u9$q|J`E4cTt7;~hh`S?qXMkw|nFkg!e7{c23{K3Es1(CvBqwH#N))KIzV!LJBdrNG$ibyVD}u1X zb=eNCHMpwT4wHkvQSl#!d4Q<8VbB*b+&loU0c)cK%p={p`e8cNN~8_5bmu})Ul$!ngeO3}^g9IzVta4?fxU;JmO%o(B1 zsIVU6i*&|K<=WX_RY^4D49`*&LZ;7Gc##ofSZ64iV)M&34At>XVQ5U4!X|Kh$X|}m z==P=W2Bq^}qnn{=T;{QYMs4I2hFm{TFO0y(aq54p1~KiQRFl7HC1L@@_2Ld zz=|uQGL|*!EJ!ZNXOy9Wn(r89m(aiWmf@nW1H$|eNlrw}j;9m}!F0w? z8!pQD8N;PAe%5di#=O8gMJ%H;znsgDE8|du8FHFYU1`fxI@p>{YOr6?R93_ph3*+E z`dmln>#_M26|f@CU9?H8i1rtyqmyRJuV^+a;vzxcgcX&mjO%0^ibdFHs;zUBI0x&j z2Cr5!*J;(hhM!k{*ri0Mh#0?NxCmoj6u+~gtS$QY5->-Wr>(1ATre37rOmz-e7j9x)Zp5k-#`T8t*LdZ3t~yhVSCCawjaSrUBgK%FcUI$-G%G}pg<-x{ zH1#3{XR5QP@d}q4u_^^QzD{erl4(+B%6P`lC{EUR<>2iQIxC@-N@j~XQ;k>fQBC=4 zyz;tBi%ezsgr@v8UU}_OXR?R!pA8pb{1?OdZrA&i-~Kom#y=P?!k9N$=qwL-6`SDc zaW!7yq3SF$lpW{92{L{(UXUGaae|C*PM5I=jiymnNCmh+olzVNw`pny!|j@y_Jo40 zy_0SLCzBPTqB6WsE1J&G=$`7=?JHW=eX3Se!0gowML4g%TgJIYpz5= zlR96OWD8g!78*#*TwZnPH%c4T1;%Lubg68!+0jptB*>Vzwm|W1vyT?Tm)i7c48PaZ z#jI+KQjbDr$l5z;XW07Bw4$jDgIdva)}5)TsSJ&7U-7YSHWmfLu#Z+Wk9A+5sRD*Z zx9@3}b-%Cep3ShgRy31!8%4h7C*I(L^C~Xe#+@Nc0@+ripi$(jDqkr}I8Mx&&zq)9 zVNJv(sv<72#5>V7vcj)xWGA{tChBTb;nwPGnZl5FB*8Vyo03Fznth$=|0o6C(M5PA zt(X#_D$aPX;!wp8TkO~uC&>7QGi4HlAUj$WNg5gRjweDeG1+X&c5Ur6hA(L9VutT% zYTCOBerYI%OOz3)5Q#Q)a%r&zk7-3y8MbL^I!AY<);-;?+jnWPZcY*|EmmY}MFlkq z)){J_f}D2<_}_DGwqN&bzwX(7-M+@sQ_-KPEt2=9d5++SYNrEwj$pPh#gT&D$B~?>V^JMVIf^E!-m31%krsf z=O*&0tf76!&%gyecKpOK)-Zs=i^ojQpERX#?8J+5rVkpNWz~R8~ z2F3QSli}nu_DT8y!VC(L9Z@8aOZk3!@ zm6KN1FD_K%hl&*YM;6xBK(j@=Uz6I!HI*f`R*#@`q1C95DUP=EWUFc|+6t6hQi3e4 zwP^2T;*_bi7VU{`gf#sS(-lQ^wHED*ZiI>jNBd72F3!%vTI;w_ykAL8!@?@WO`8%^ z2w_RBHA6W$&RXko4n`5wTGuM4Y$+|;z@36iXRTODKh9liIlZNT*mJyJs&Uj>7JHY6Soa5ufsO)EUAhKAlts`yyS-I<{Oq^bb z72NBVvE*3HSP{w6KGr2Zs@9^JFD0jw$!b!TwE&6Bu{!dPNCvG(KQen(>n2^v`{$OjFG}6w6^56 zDc(!wHqn1kbX84tIW=0ub%{zXi)0%^RJNkZ>Pkz6Oobwl_1NCJs@D3)sWOmgylbs+ zU#vh+tz930hVf{R1`wEtXsmOUUzs%qNVHF77H#P$o2rFCGUl>|>SAj>oFZD`dK#|f zRFv33q_E!V+Rr#GdfmXAVu&&*wN8XTWk`Gv0PS*FX`OZXQN3!dR^_*Jnbo(y)Bu>N zV8QG;)?0D-pu(bksIM(5F0~e7xJSl|_CQj%ha@F0CG>>Ktln`=kRTd6=BhObBM_t} z{*I_}+@j+w`~?K^#4rDF|D4@?=2c@q#l21(GO%8Pl^2lxhW$C9I)AR@kH@`*4qljz z7r~=Vqv>eF&6tjtmE5+VbU&)xPpk6=_E+aRb-qcR&s672)wz#4pRUeQtNHy>+4r3~ zAI(16dXtX-t36{9>=~lmBh{$0f?2|9_NkRcqJGRIAbO8bi-3ccT8UaRJc5UqADQ zu>9$>^fkZd93$~wb^ctPzgFju)cIp|en*}6tFzH0(GQ3A|>1d0JleJHsrOW)Din|*fJZEabsnX3eigJ|ycy*S(=C@w)JYk5# zwJJSEQX-xkGferPug+tRBG21%#jo?n#HJ&}%WN0H~@P9FN>aldReA|*qc-~X$8ff^)C)PMF-^j9B6{?wz$ zA5?s;8rVr3Dl(Q!l&R!czAa%uC{f-#kjHm8V#{hvE$X7t=uZ4&wtAAL4t*uID=Vt1 zttb+Yh}hYwwjoAcR7-XoDKxg{R=b{A3oB#jFVw~=Ecr|#Vi3U-dmZ$2BRXtx29Yfk zO+Ab$feyXpTcI*Y?2?5(6Z$R|_720&Y}Ue};>*hGY8sFNJaW^Bi-;3l*V1ZB%FFnr zy$Kyqm>$yfH%?(hoQi{b)mNoF zs$5!H#ko^aR9#(KRnImT*VM=Ak>1MkikO8=7CD26iejbZ%S6^uXIFI)(b0l|u|jNY zm4ysP*HVa+;j~8`qNs`$StXVAwN*vSEIB}?@@9#MpAA3R?dJqL(K@E2#_i%o8XRXof(e zfuz0(K>32J0GcUKO#5C5G)r*Px>{lkJ80bwG+S{02AU(#7%V9{SD+h!<_Yuw&?N%> z0cgHJM}P_in$+F076`N$s7RoVKnn$W0;pJ^cY#U-Iv0H=Y4e3ZrGon-P=P>w&~uWu zGy_TdwgX8myMScamx0Pfh`(v>10bm{H)2`igzs;FDg+wb15Zl=-3N4;K*M@s=t`h= zpelj-U?63YK>0w`0#yLj2y_LIwBQ~f8XgZ?&jDR7&~o(er0*&qX-kXd)@d#u{U%wP zrUJ>@l#RZS44Vri!&U&*3C)+F2T?E3oj?r&y#TaWAQ~?jFVF`XeW8(!UWfFJXmpB3 z6E(U_qiZ$#rAAvcdR(KuKubluH)A+NTE9i3Z9vO}?>~Sh2y_WXHYEC`Mt{=iGa#wu z8=!m<;#dq$NbY1H$(^UUQJR~txiTP`f8Ee;S}wHQ2y}%&JAkefXgPX2KNDy*khJPI zKvxOwX&{+v7e+bkY#1zLG3hg}bJwczdoS|!k0j(7%2T01z1G-*t%Yc3^(04$xq(f&|)(wI?38+D!OduIH z3rNOsvE~Xi_ps(Z(dY-DR-t9+nU+`!E@+Jex>0cXKzRa92f9h1c|hw0Dh9e)p!M4K zHtl;4kPLgjmfNM}{-S+90Fu^MqD?Fl`eJAgVgkK@t9FS%Z|Zcoa1X>^SJBEKYcPqG zt`~_Y--ig_UJx8DP?knpHJY5vzL#iJrBSO!KkveFw`=s0Mtd|G+?C~WG^*5SsYa7< zKay5$!+l1gHjNHwv<0~#eLvOcB-|k+_aN>I61|~OG42bJdls#{L}#KMmuR>~votEz zs9q!5(^iJKL8IF>q6HYG?-LsB)96!;`X9q`f7OUa0AyGi6Oiay+%+WXi87aHl|~O~ zrco4aw)8DWdnyrqhA7c$jp$=3$^BZRhc)_Tlzq2oL|;;R2uR+Hp@p%G2qlHAi8wQKa9Mj^B>Qf{zD7ig5P z(Q_KnR2>=ObdBsYn7dG;2^vvbB17B=gh06RZq?{cpyA?ryHCr}ya>rXrMVY1_j}Fl z(cF(fQghOojKV-tODd4GAWd`Wnj50IEX|G9+(aO$nOZZ6Dzxt+%{6GWM*Ci;Icn=< z*t@mweVThjBYGZ{HopXvBl3k>J<09UatAaztbIdgv0REq$7vMRXn;n8H9B9TT#e=e zNee18w@7n~HMc^eW{qypavL=FYap2i_i6Nq_HEPXWsUv_BrW)>=HAiVhnnklHf!#! zQ6C_gYyE*_=?~Q0P|aPSxmiHczCw-4wQntu)UsT2D>T=lxmz^)6_C{TYmFY&zJJu* z9*zE{eg6R@WBWpL-)Jt7!D&kZk~wsY=Au9{-gJ#JwQs5B7HQO=eb;JqyGFm$a?fb= zwniUl^d*qY@$WS{4YyorONK_nfTY}oKr)s2n!8AIb2L||xl1*7l}5K{-|ZUh)V?1B zNejNv=wI5`$z%&sfTUHuG!&3&f1A2doH#MY+($q>hD?qtmk&|HS*hHGw|MiaH~EX~aWl69?A`_^jT zMva=a-1S;+gZ8~$b6YfbKakY?u=agM`|i-(A2j#6=HAuZA&tHSl6m@Xje>(YU&27L zqk4(r6fv%&YT(WQeiacY@|-YHlu& z46#7_UZ#C(HFt&PS~U7OkPLg1mfNU(e+?u{;XaMpwC{VG`-euKY2R;wr1j2F&I1of za=kQnsz!q~8mG}rjcS3UElV|8seN03q~`USyGx_rYTrjSw?m`XH2N4w#_@$l|I)tB zIUL8iKvM2Pjm81VlAfaF=4$R|n%e>-!*0`PyO#U2M*r043m{oW-vG%}28MBLU4f*& zUO-ar6z!X?eKR#0seQ+2ZjwgxwQq^$sxcAgOPR=JGW+LvwR9SE{*7HP@iI<(gZqxob6dv*vEq z+~XSU(7tbJ^d68bnFCtxOYQre_U)dc^XB4WEmZglZ>OE<_2hPsOE-i zE?0BoH8)*zvo%)%B&}MkeeVR4w%n`H!`k;LAZg2sn)|)x_Gs>H&3&Y~Lz+9HxqoY} z%Xw@|DiCOlgPf$fvo$vyNZOa9(Rl6Kq`B)fTCaU?2a?v`r_noFZofvK07(nJ)^g7I z9QIrwX~BgWjRTS)rf9jjnp>c`%QUwRNNV||Mt5l6dx4~-zth~4ntMTWp8-iN-)Qus z_Vuz^%SAv^Zk9%cK+@(4Ew@;sty=C;jh+UQAzsjOZ)ntQ1jo@^qdq_~M1LTeqD;-5 zqq&iqy9`KLTCdR++P4WvYPmsk>ovDYb31^fmRB@-UHiTbB()sW=%focM1PIW29nkf z1Ck+fH7e6`)fz1Zk|9=Txob6dgXV74+(R1e(&!T)Y5i9keXo5(7qTr8AQ{`K8l9$n z2Wf7Y=5jPQR&z5nssNJl)&j|vVI`1^W3}dfuDP2ucbn$!(A>S6djv>oeoCWVKr&C? z*K%D(vRqG%P5_b?qyfng8Jf%0XuS5FuDRKoE74q~=9X%74UkOlEn4nZn!8_fF9Jym zKGx_z8bzQ&`u@%0bTr!%1+D8eqHRtnH-grBjc7M($=#;WW{sKx?Axr-bsDv5v|ghP z8r`PRW{vtFcHBJC#zyfgOD0!yd74|Vxeb~N!YUcoQ}$sY2h9~|j?ydTIK8&@iRKP# zxrwk!%1u%B*;bY2YBfh`lX9Fk+j?4aZCdUf&F#}%Z->LC0?G8!XEah@v*y0i+_##W z7-YFAKr-xl&27-!qng{Uxlc5ASaWBESRc))lltaqZh_`r)!c5)eXlvo)nS2TIu>Z| zO3l$*a~TJ{HJ5UmHTSgU+BElx<_>GFcM^w91(N!PYA#E2(=}J1xtQjbYL2!Zm$q!t z+^d?S6%=J0pJ?u|=DK+tHUcE&ay6HyxhpldQgcXT=5;XpkV3eOIplCZBqm_&c*0B$Y>mgnsqs|zO3kouA2!Tr?;kZcY!6gQn?Kn+L zkihI4C6g>$F%yGO+MyPAG6EHyy0Ws_c5RQ7;$Ur zkUwFn>>ZeseazWDCfmnM@G02FS z$oEqp6Vz7%*QgVH4E0gu!7?*^%%whNm5;gI$2{m`p71fR`IwJ<%zu20M~#y>*k<0V z-qh!_d@{p*%tRk^iI1uFF<1DQW*@WO$Na{}Jnmy&@iBXS%s+h0w?3vjHOw9I=Tsjv z*vI7fn5jOd!pAJ_z?9Y0ViGbRR61qyt8+yOM$8`WAX8jbQ(qd-)Riu(S=@o4@677z zFbi57q~{vMoKaG`u%W!LXyL-T(#7l&pOGq`s>RBTA?tbF^>H7O(MR_9R&-1T zl3!hl*OO|(cJ*b|HA|}HcbN6cbC3up1;j-1g{7DdUMj*Tc*QwsmOI^$c>Z)*T@60f zi`6w0V=na~znA*{S_J8I-GZa|#6?LHBnJ(nncN9%oLkJlCU3Kx zff1IKirk$pW1xeH`SC(&{C9hciYhTVomD5UT5xn9wVnZojGM==)-veK$9#y;nQw;~ z@08MbrSTsqbQV~BBfwrqS-0S*-hRt`8hqyYBs#OvCzN2QtQ%&H0=7`q|9bkQ0asZ) zeefW@wb1nmlD^W!M*;P*lFFLSJjCPb|9={ZxQ`V?n(5mG@#R4wzALRQEG%CnmqWn1 z2*QmPuUe*SNl{&OrAoZ~z(QA3YC^OlHf{37!hz2%N~%f=i|Py2$Jm0EIV`?8j&s*n z%3PJcZ6UODn`Bsd-I9|AB>{!_dOX1qlITPcA>*2)5%v3tc zKW}!tGd6yb%xvka^IqPYOtA4|CQBO@mR47mR~H)pV%e~Y@)s?!h>R|Msgk~%(Xrzi z!DlZW+tjj3e10zPD?+lQh8x>zd<;}Y-#n87P3udkC{~FjC)l&NqO|z3LiHIFzIQJv zU5b00i5k&V)>r7bwK{y(T~{Q&>=D9bxcJhWA}$oQj_WBmWrgE&b7Tqln{9C~lXoPc zPJCW2zxpYxs;rk)g4_7GJi|BJRrpkBjJm;5oibTWHpS<=Oct@aZj&RS?v{f>PRnn6 zL{vp(rG?0q;s$&?F9=A~FDb&33CLg4pf3gyW4Y`J2oFdVnyBan6uC;i?d! zDk{rliphl{uEJMY92bS}5P7BiCaPmBid%X@toTQ1}>pGmQgb>O2?of!?Fes8!|NWT;R;i%xLtSK|_eo%p5j!Xf!$`Giw-5 zI2Lp%Swqk4Sk)h6CFueMt@sfbqE@1x*9VW|6_*MD@t7R7rYwjbg^@n~-;vgow)l}4 zzl3B~LT=#Dj=nUub{h>%#2q88$f$vXvf>!aIv%qbA4f87Rrb9LUm-VyMk~zm9-jDj z54WsrH7-PB9YT&KDa9T1#^XV})j~5R4jTCwX^k8;@ElCmh&vuR8DA2Oj3WSrzG0Z; z5O>@Q{IB^K!%B=dt7E*s#}oHmg_hNxC^x)gdMQ;k=$pT;wGpF&}K)C5E2mu9S=i}E7 zH{DF`waGc*$8vg(Y0l}96MnEQJ1M87EvGrB*W$9AwgXPf%VWZiwT%xy*gn2xyf=4e zS?k*42fe)d?bs`ghwSk!ua6n@cHZ@UPIxGIC>lOxB^i<13|C&`4jW$MhrbnW`Zvh& za3h*PDx<$$#{5koEBZK{OX64MxnUOPn#;lna z=QVzkhr)|u)SJ*gSstf0o>l*SITh?)<__a^~e+k~2T2a3}JE z(w(J}-SYK-|4=sAEmi$8$$`A+M??U`&;dWdnf@FN2P0#$4!)24&i2AhPl8xGApGEG ztN$6hJ+I}BK}U4?40^rgFlu12{mnPw#~dVM(96&7^IBdXdwsuX?%L_=qib{5XO0O! zzCX9+^>5x9zWb^%bb+)yPx&xlcg{C&9_llu)KAXF+b79{yM!sVQg=|v1P4| zJMG-&lZU?>UQ@ul&y0j@LO>IQPK8o&OP4TGwaPVNcXyH#R*x7z?35y`3wU z^*|{+M5SP_Zi^jiJYY|}e&VWN_!J8%7!?RV)&(a-6dWSxvTX%e?3#-~JRqgQjdg@FcX(B!dAYupsIK;Tk`7Usfa8mQABw$#)!<#t#m4@Gm zILY8}(=ci}$mm=$7XR~Y=xpu+*}(YWyBiK2>5gCy!#Ah%tjI5N#4WqGjUbDiC> zu|m8}iktj7GR-|QEs4@-R7MWqKCN^oWS#qWkLLCGemIO_%>n zRM3m_T7Hjor01cXuUNaT3XRP-J1i?=H546rabDLaMhdzzZ|zM|@bjGT`ZlEAK7hC_DX%PTnu#Dr zFhPit&@{qGph7j$#DcsQ6baOoev9i^M!zExZt7zsS;9nk1f|vF7>SA3H+Dyp#)7YW z$EwIOWKPoubY4U6W^r|1rn zoUFeW)5X6f5bKeWSs|AIX-X%RhFwx$TGknLAPtfns^^3wci||i*IJGuxq42-XD}EcriS~pp zGHOF|pag}GPd{@)&;Q*^ejXPgn)ck}_5tm=;m6x$gOG0vZZA0Wn$T&o&^kAFX?Y$k z0ipb0p8eJsSaFZEKW97LT@H>z@reGwQ}q7e;8HkS#bNib`+L2*I^Kz154)!wfp?&v z)wSydpzsduSj+Lw>w11@d@sDb41*^S>Sa4#*RJ5Z+Hktvr4anGx?pV~+aBMGc<)qe ze6NA%TPG_mB5)Vdf;kAM!PBz32~{Ch)g7u*$RSmwC?}#P&0!Uhaz?ZnA&RcYG4|=* z2=ojI)xF3qE$I!(6l3r)ut&vWS;uDB7j_eg?0R}P%7T$DDZv_vEE7PUq{2xV0mI07 zd{=vh5IbRL2mVAjm1Yv_Lt>V7Qk)Qyak6qE86-SI+(>8oYOp3kefWj}wJ6-5(ul$uW53L6d;Pv&T)I5gi>JnsH9X5KGJk z5zm6f*1+Orj2 z4J#Zr^z0@0TZG5tB|`=ik7vuX2W1S)Fi$GW@ifRsAQCF%;jO|#D`2~{!lmV?r8ol( z_WckIcuBORUR3-vRAaEKy0j#UF$?&FjE^7!N%a*qb+Kqiv0zAe2BkFNphx%ZKrksm zP{!1ev_0(><^{Z!CUgB%I7kqB=MI0nQ|vu<|bcgp#lo2!v!NP(mFVeh>@c z1mCvLf{-A1z0}|#doLmu9HeQ@)Zpj#r%VYk;=Z$!IH)R{pcB~0Vjb2`4W1UDrCx=~ zxV1^G;JJY?^Kx;*;CTU>>et27Hr86f?7(JlLGNRZ53fG3$||J*z9Rz93g2D$?W#q1 z9aAefD)2Yq|8E^yte6@c8?ZGa^vRV}gX03UoLtbOX>?twMi^5N+pNG@!j~)(9vl(; z<^=MDAH^s9ghqH=5-1WLIzlx#7CI@g93I`oaFBe1L+ch!3AwFaPt*)mriECF7K_!m zH$4l3QAJ#;SLBCbMR)xRCn2`9l>seHYwWl;Ki-$Ogwk3At{5K@DmJ`- zBFSzDxN1;Iu(wKfGfN7!w=Ji%rEP&|T_rAhntvjsZx3UdrIWTT;9@AW#PAy>zdhhq z%7v2LO;SahlJqZS^m`(AhxGVFd5Bj*a{X-gMd@`o-ixhxN&0;i z@7KYUb}8^}ynuOu<-RPvzmNAeM!h0^R|aK<(CDhN=}*$9Db9yY+AY1B?pvbuOxqH4E0w_8Qea!q#pre+v@N7+_Ksv94dR}On{gq%0k_O)EGhHbTy`A9N*gKp7cvBt0E{zFpx zpuVUyCSNYN2PAm_7Sjr8dI;YASSIB#JkWNC1-32s6KUbMu)D66w(ijHn z-A|u8mTLdXQ1^!^Lp~FYd0KNwWF)`uSX8vsa=%n180!8kNgk1st)cFd$oY-DtZxjt z>Sc@jtz>Qr!BX|ArNnZ-lkEBsOu(E!_g~U|bI8Rz6At=sN!}9b{wvb`y>$K})O{T} z|0A6nLZV>Jl5*}3(&Lw*?l~m)qjcUHO1YApmMz`C3Wcdcm=-CZJZ=kx(cKYuKNuEN z?Cqg2l3%$9i=4%;(B_7e|He>Qw^OB9={Rl`H#bSiYzl?d`w6#;E%R-2C~TIdD=aTs zw5Uj~Oy`DGpga8%mK(7biu!d|h!#Jv+#dFrt{av>v5Q1q*zur#w?ym)a>mR*;$-N-h)2q~?W zsj%Erl#PGp0I?!0jBdH7+NzE-kM+fsS6_QDZr4uQKK2rGFOZDWRG0(of%n&-PgnF| zrlE?1q$^$D#`(!m1C-B7R~9s8RJa-Tiy{M?!O3(DR?PKo%4*8ub5&d$+!Px8afGVR;K@k8FFR@YwE##WhR97uZk9B7hPV{zAK#ygR#LS~8oY zM%rHrsogNH2IOzL2|Xi4&vUvpAerAXe1$1A=y zDbaN4pRfEkB!y|2K`cIADEkl-R8`z80`hBG%blqByAVJ&cqdgbIYhBBotGu=)h4oA%USZNLR9ENrq%hrTM8hweEnF%Kl;;y0WFGaxi||laRthVy z+i8KHas%!4*Os7Qukyr zP-fm~pC$UCyS?y2+=ZxB5WRbt9-Qw> z@K!bae&u=COM&5*`>?Y7TU7-_U#L)AtH0xmTzSbJm-Kr~`K?TjuQ|m<#TBSo)Ma=| z2{d&OP#Ga4+U)V7_BTT!ekPygw%gz1Qw=ArH91^URZcRka4&l4a%OI=)*a zZhHq_1$s@z*OnZnc@~AD1(&VMpKbXd(4HK|6BSiETpVwz6ug=&O2zc^-c_;eR@%c0)6l#8uZHP#z)VobZ@XiX9k9V z77woCWnD7 zN?Ig4JFT|p>C%&zm9$JfY1l3*r`SNmN?Iof$mWism z#U_(cRiWxS*{#@Scc)H7(yh{p?RIzSLnQr5_S)L)?$nD*x?4J5vE8MGHDzVgj3qrF z25{2;Y`e=e_n_qV+OCwsa2{sOiUp06wo$G*Y44B@(Fql8m5{KKw#&rsBV|6%C#2_o z+pVowMl;~F&L^eL1GZa1J;bD4@>X>ik{CBBtZk^PrK!kCZ^*p=R`CUyR??rPsTe&G zq6LGjq`ye2Nl_F}y_K{_hQ)Y_)QS1Si$MQ%vgiF7fbdsfm%vbZr0gXNKF9+G%YLa;+8i*m;} zOa~7c>Ju3XgE94#F_bhbNj(xht;l-y44U+or1cACI_fC z%UhBan!*uFJEjI?^AeDDOjFLFvg2aqcEfb7LK&R`C@ow-c5V#X<`d5sWt=%L)|*=Fnq<%yk+wm3g0qEGiCs z4X>d0Z~S&8ON5pF9gw<&E)B#|+0ZJLQdK~Ulrx|*rdqj!Y*>vVTjJ+9AN0r)W2mY_(a;rvuBi55G2RjSS%4}iDp6Pt_l2%f zx#Qu9MJ@#&S`kvgKCNBP%6}mb=dr=va=&rabFc|R#J&IMB zBZkD3Ia#3%f!E=YLL&~LTLW~_ku{fidrqCKoaF9!b2=5%QFuya*3^hSX8&{Bo`7vT_vOy6yW_K0@`fiw@# z%oyhm{Z-{uBusv$O2~!t1?+8=L8sR60{i)XQHtcgSD`AWFMNYuI(~bIVHqh&-G!c%7AY==X@u@Y&U6uC zjtD_R4kCn7o3M*lsM=X2q??5_jYCNNlxscd`jO$}fQ9ak-;)F+ z6w%G4&L{*5q(DTt;ji4i-6a)xH41^*QXo|lkWfS)X)r8u=e))C(XMy>+`@i+rGbS7 zsAX{$7S7ggytBa|(H!ko7E*|XGDJ6NGlfx1L@@}ZnBKx{3RKKyQo1ONBKk-P1W`m( z+D(?aCCibMy%$-QHPOACo^xF>>TbC)Hd?f$HK;H3g_P2zl=XqMpc}^vP0J|Bcy>ps zFg#R;c_O%qV(67w?sC}+&*OKlS4nribqq!9t{8%lL66>wC*1;qhBQQt=wl^)3H&a* z9bD%`^wiC3&wBz05cEhy)TU(Im_^tm>sXrcLZ8~u*BO>w3ia~1LnF)jZ9hyJDgkeo zl2V%Um5RFqoYZ$gGIEh_?ZM_ zMYK0lw0FZpL@QihkV{2-3q_kABt@1j9BasdXn#TRd;^D!b^|$23?bUX2*J_bLD60a z7W_z&8l(oqGuS5D&sIwDFPQ;cK*9U+6}!YK>ro44@n^EjM+NXtn=CpB&u zy0rg8N}P3@S17uqv{;j^D^9!;QQ1FG3VLBy)$#uib8j9WRgv|L-`lsl(_zUCo1!uj zNRR{&5r3oQD~7V8lTL921aL z!GOx3jv8DO0}P_W=91s{oT|FFvpDbbynp;YZ$8lX)TvXaPMtbcb!xe{>XDwligNK> z6g!C*-o6I@VicwiF9N3HAl${G+{L#{x3~W=TZJ^ zB7}xAIN4=*d*osoFJyQs!Z=u_Zbhu+ipP5-5T0e3%d)JZRFEZCCsj6cs3^Pyvd&}7 z6<99oMPH!07=>J*e~8pGfFdClvJm%BNLtu`u^{^yqv;~lGl9fNdRJyYPgVwtkj)}o z4GI!LY{@*pAtAyT7U6YZdaaitgjj@nB7z9xSp);$HX%Js;OwVTi1i@CcgioH#2tqm zBtJK3L+eNfmHH^Fkxr!ZGM8Sa>!niI&1}7zwhgRKrfOQ>d0+(sGNHmmTtd%nyo^h8 z1mWJRWWs;Q=O6n+CTiiknPwu^(JrPYE`miAgaY<(aoYlP%`XC zTWXrVUng;p;WrXLPD*+{(465joZ&@q;5kDP97#cB_$+6z8zGV5Dh?k-IEmlA0_W=_ zLz&_8D#M8qUn-vusSG!9hKV@H$Qg>@PzoZ$*Eoaw5E2<~=J4<7)Z<*qs8BvH7A5>U zukP;z1!z=esy?`cQO@vZ%7IiWf^_QzW%v+h@Hj#u!zvDMM!44rvM7Qs5#lC)dvFftSe!;I!pDgh4pe_znkb(WP%M_QC(F15M9fhHH&YNCFJPHIwmDwN zVV#D$B*jT7i@7zjeEmSc+(fW|g5dTI%TtF?|0_wMO&oR=0=Bz+(Rl5X4D#()Oc+X~ z;LCg<$KUs0a~6f@Nn<%pQuOm_BjYp7*u}7YKGoJp{MS-j_6%@7)Vr{HmP@DasnMT0 zqxw4}5xqi|i&%`s#8Omw7OQFz!o8Bv2VTsbI_<=XwQO{IycDz%1fl}Qu)2;Sd_e&c zd^Zq@uzIP_W=2duSsXif0kOhn0!}mv z7*tpznvVef5U>HUx?%@umM;R!Bt00>={O)sLMd%3Y{`F!J_+K5rcbIV5E~87>cxbtA#I?rlFB*wsM;VI-8(qg59mg7X4t^~7_N|xB9A}u| zcipqb<=_?^VO$AbV->IIiq~IP7}H-|VeHdKAnDRv~cctBWtiR^2NuD*O$Kt#O|3Bd_9aMV~zbj#}=r+PwG=drA9)hNQFHSHnz2E3R*0^c9(c{^4<8RA_KI^m> zLFKxUey*XPaW*u=hOQ#WSSORbh3ZL|Zu|x1I3Jv53r77;5>b16R#1fVGn0bMk+X7w z#*Kng(pV#Nx-oltx{*yPa2eO|!;$W4#*QW?(@@)S7b5Y)xIDiW@Eg#oRsM@-WFwl zY58>H0?^(nB)*i(E+{7p!oFk4Wagj{*9w{%O-Ps};;$KNTpzZ@K2OB`mxxOkYplJ; zH~;mUjl@Hbzw!8EkH7K8V=Iko!>=2ieA8FB`k%kW_rMC@=@s6t`6wT$QQu-G0nQB-HdV_{)8-lLNJg}tw-X^eHC#JcpvgqxgRzjaT$i*AtC7B4uUs9w*%xm6H-UN zjl}!FV?S8EL-|rZgXjl;%5}X;${k2ZoCv8P+;w8&};m53OL9+Idh<8l=;vM5%J{3T|VjDX+@bflWpnpHc+Yb}*a z8@5VGsKg_jf|aPKm=|TRGc zGTih(k>QtUROwu}?zA;)!nOWW7$syJE-8IfA9dj>g-{Ibh}K-~h}Nuow6)d|5|u5V zY%DWnfWE#gcl>DnXc79b8WZZ*p)+ z3VzMOr7C!{gG*QN76&(6!CNKH&`N4F6{vBLyEPTqE1}yW zZ_9gnTi$K_mA7T>H`wNqzDmL0*|>~V3ijGEOjTf_jhdpsaW-nIlJrxFqNb_f?`>Sh zDg_%-$1d%%RSNE6SGHnAvTv3+r=r{B zuaY?=H?|g$KGa2j%I;iRp-;h1vRhQ0I%40_R&3>k3y%1ujV=1SM?MV=`zrUxq)1c-q@<|i_>9f@ru7nZGHWwVUo5NHX?c@gl&JOcX=p|I zDizr3AYH3eK&h;q?!GmDl2q|>lC>$IO6HKXsm`mVBsa@vJB@foE0PY{9ol6nE404x ztNW^C58BBmD$vPvVr#`KjzuyR73V$)KVoybX_W;3+d=&jCnvL;TazdYjOn>kznM2a18jefOnv|%WYWS%YNo+N!WW(&_ z6BX!W+NK(4x0n7Lk~YdyBc zpcHepvxS8BNO^uEpFlYo38-y$liFrCscm+XRCY6M-jmv9*JgZpPRi>PB2~&V3j>^_qDF$`(?T(ouVl4DT(5u zsKDqqVU$#)7X>Q`fxD-5 zLbZCUF5sZPO~LO;v8iuU@cRzVr(i>_=n|cR-44#D;GqsKQNe1XnDSMy+TtaCza(#+ zqf#Zt5eKDmr0-GDAL>RiAMK#jmhxN&CCHuMk0sAWhqnU1lPH*tYn2L|bCAX=6;RT& zVND2U`;r2+#SWZWthQ1#M| za{jmcFNx)^0xBO!;`_hJv_0i0!IbRnDd!3)OpLuLFvpQoU!?-d7~9c9JFFZF6;NxE z_M}!cDyR0Oo-9R+X%Y%t=tym>QUTRe+mZS|u*!>Nr2>j2Td@lKFZj1tWOa(8OlC;E zjDjm1T%v;Mups?`uBU>3vV|?F(Ny5)7(xX%JGevz<1IGD(5K*hc>;tNqEw(jA}MDD z-{IgA6|ByqP)P)9=U0_>jT8hvq5_qSG%=JSscU{fr9hQ&JJUzS`?oglNeWbDrP+?; zt)vA?flBc999LPAGN-&g1wZBB5*57K!TA*YzJp6taJ_@`DVPpw(jWAfsNmTS&Zl5? zJcsB+3g@>}@~xK7|4<}#e-GNnAxZs{oodp}GGmolJFVztNv%@r+VqnWrNnQiwjPos zNcl85K)0j`gWvNsZ?31ZH|^4oMdg*;}p5dp(mV} zM|I!u6yNYmhNs-2E4WV^FaILR{2E)#$*oH=piTZWT9dRDvCV{6)yF%w7AGmtsiHQH zv`V#ArXqdplCYDkO=f?DfMVr{z8_CV%IWl(I!R7P#${NXT>kVD8`0)aDjiFd#3HW6 zX+%18*dn&|i8wm?)`B4BR2yk=7yJ@O(r1C8*XHn=9erA`&6f)41B0!OC-Bwx2k8trsYqWAWO|76|)YWP1D8p&PEziFgri@yam0 znM-Kr#axvUy_MTCMx)njTcQdydXLt|NyX3`v^FlR(c9}zut1}?Rw+y`t*YGUja7xy z=rac@P@w&wLNV{M(tE5-L2sDSE1eW*@kS@ip5EkagV*Slx;EGXjoz~)G@ab%Hw|T3 z=pD;gyhi6kV-W=!eN&Mz&RdxD+9lJ7Hw)>LR}^$!rKEQ!nV{86lk}D(;bqss-=E== zuJp+!iimx&k;SBAu=J&-){*M1NBXc+>o_VSrK49IDXyKD8R_jsJIeVi551X4=-9Ur z>3cGSi+S0Q-Yg{4eEK8;xTfnYE|&U&hBLMRM~rdV@;ji$*U{^kq;&3FE?@X!AAt<_e*>HVHw0 z7-?izE(a*aItP|z(0-^BNta1XHTr1!Q-^y>IfQd;@_C1R7R%>s`Mg~|TR%!ALLH5H zOokP|*7S;x$|qgQqxP*+WtcuxOMhx_yRQr@xk@>OjP7nO^0mj%)m%_`NB! zI3%A+PNhdBr{b&RROR?wrc>qkNQOU^&(;sM>8W9Aw^TOgl*mQS^rb-N6!EgwPc z{HmRoPO`je_vJ5iZ6p`{PL@Y zPM@5oBF*{sBjMziVPd}>8N*DA>CV*1*t$=%zh)`&6kjiKK8-29PQpUT@6R#JU$B#3 z0wtIeYg!PK*JPB+tt|qS!Vuj?+mE3Ms1Eqoh+PV(KSN&pn)u&QE5a}7Q`hdcp$MRE z_}@``99;S^L^r$&=ztATg$mpVun^EV8!ED)`)z1i2SvBJqk{I@(B}|IaCs(CL1(%s z=x+4+BK9d8`jZX4YC}70=v^B+VnaR@OmI2RhQ`}avkfJ5S9HI!p@-pK%Cv9{1@wRo z4S`c9aFgMD31~jN903*EP`M4Qw4vYI(6GKL#Y;AHAu1OtL>=|Dp#gx9HR@<6Ad$y4 zHZEjClkC`=Y}{->@CJ~!(8iV8&P#saW~tz|FWTFHuRtkJ!(Tw0up&VZ{xNA5_;Zl zLvPu!?*S4iKCyAfZ0MvN`=gE1(Ex?amjM!KM*tEf_uH{kY}{NMDzYKVh8_ka_&sgo z{%k{=ZKxKIChB9qvBp|^h$HrX`NTi)+L;q#R-ep4%+R#IQ z1ed=95@~nZ(0-flOB?zIkVx^pjXQs!O559p`U4Wu4+11oTxsLR*iZSYGVNggZY6^F`?*=u zZlkwoV_xnQF`D*k3Ful9J_V$(EuW7gxE^s#!%@%Ux6~br*#bQQ(LhKi)k(tm z6ejl0QOelR$>j!%n7`QjMrrq%1Rnbg$guR`*{hb2I>yG=YH)I?j;U{Or*f-R83 z{H+b9whcy2tOcJB5&!?rrQ&MOfL40|i~Rx_XtP()0^eevphZmUJ%SdIG5Z7mPiXSKinRP^f|ul@x~;=C`@aIJ5n`j5E?RhSCkkNqm=a zg0R8mx;CGows#pPU4xe;VTfy{2oqZmx}^Uf?lOKDozc8eLOk`G)y`eUk#YEz$!L6| z=q4fGV5DQZR(BbXM(1Aqu%=D9ThP%j(G4!7uZO7|G%X#S&a2OA+O3j~`k*XrV%CsW zcOGl#Fur~P_YX_D$xPSw&g10|fo`3{pCFd6)t$$0yRfi}Rl39XwUlp2t2>V$L&tg9 zC|&!kHC;P*9`C~2P)8*l*o%BKTHbj)8y(hZ_12UWQ|P(noyQZwVA^CMn?oXkrKv(?f`u9et7x+Xtg7Qt>GJp?NtLEFOFc zJcDKDMBrfrN?&^v(YQ6yj{t5E{Oj)!jJ`%IfBsD*K*qt08vhm=to}~5^E%6vXcH@*(^{A#~-(r+F0gW1-{{>TyCe*m}U;uc(7D_eWutUq#8 z_owX(SdH1%KHMY=AaW$mpZ2z2|B=a#W>zRe%`InI1wF!IW_z8G(=`#LA`rXD%x zG9Ug1`S>@}IOMmE`6J(g+d-AZm(~Hw;g}AgI^p)&fq3}eJpw7>veWkYb=*h`L5^ix z$H4MvNN>P}j&yrsxE+^SiaRUm&Q(;u zmW7+Dt=%OiDm*@5?Z$1@kuyGdg)PGUPC%B(nSzqz{@O-2n}NS7C+^*Pt2UUqcWKwA zL$bUF8W>YD%^zvhi@){1rlDpwaqZv+X5C+@ZLUZh?JGM{4~Bky4|oUC_MH9<&$PM& z4f?j)Z`@X0ZM`S0t}3AS_E%=)Hd`CR0dL#E2pIN$1@2OwGD}Y z`T+8??6nO(g!@9UhMoXY2q21nR$b6KCt@#Y059BB`hm4!INFK`RZVk?yFP(u%&rJ! zJDMnA4=@E15!IfBY7cIoUrkqGL*lZd|4uBecP<@? zn`AdYgo@_kS;4Y5DJxt&&3BX%;YA=zLSkY7d)QNYHp%}oE-}wO+Y~{tqFKmd2F^AX zplWd4> zqR-d!W9=9G*wBE7Sxz4qjcz$12)-8tX9U5I{Me!q#Y*ydgJnNySsGpl^jD2<<~A2B z+u=ooXm}O#eH?3RbPXlNjuZ(1ZSVMM@&$( zF{rYs7p}L?1+B(ift2CXfeND1(gSq2cmT~Qi8W5;r5&b7l*Dvd8%PNmHNmJ@G< zpZ@2iZ0rGZ4P>tEMC|_@$lQ=fz;l7jE!_!tB3Kpu->FTBQ+^g5D&L7~ZKEC_kP_r5 zm}ao?OVQbi{;T$zp49zJ3{`c$8f8VFGZ7=?CYt`#ev=rq&Sq7HQ*Hoyl67)tAZ5x` zwcq&goSKB*W(LrcE%cB*0o+JHB7kWG_yA1boCPkNFFGaFe#*8`<&a&5XYPs+On;4& zaQ`vgIV>y@&s6H0;aj~7-*~g)BHF3r~0Q%offd(xiMtzlow_Zt29xAO1n#5`2Bg=@-U0}obR*PZMXoju!jlWEHz zjS`Pg=CRF4)y$)5iQ8(hz6qwiU$MvHR#7}GVAbnq%*x&%&4CE8@AA*7I8_sUIo8gg zwUSy)bmd|ES}Td6UwJy`OGaUdnGlon1-gmPmGo!->68G_MR*fcn7Tc ziEwfJWj~@k%a>jW4c-m3Q$=Wi!=N7Ade1tADGj4B0zKL-{+s=`_;2;2YpYiFCc464 z#W9Bg^^3)~N6zTQ^MlbFeZgobWq3m;T*lqB!5J?_p-`7_Q+&d9(4Y4U?t(1j5_lU= zLq3N-0b48T)>S#`ws4)5YXH>*}%}~ zgAdX(5Wg2-5SQC$ae;tK2+Tjen<> za|3E3H99jf7=4Xe7b?7aQ`cZcbGT2iYML+lH?r5$x-}$W*4HHnAY2Oup zSn*MDJcPg{^RsT*j`sfq*n^7YAoa8`VO)AJNmeh7+CvR_rWOC zeK6cxHm)WwmCyPx7`;$AML{U~m{7E;@5s?RX&N^>fI)LLtNmu`=fdz9h2;ckzBdsL zV&o?;&Gi=0T(5xUf71ijt^lSf7+%S-31GP0gy&Kd1zb;+EqzjSJ+#CSK&P17y*gOs zb~V?l`G-GpHqorukLaC|r||2Jma}(6E&%yAry|2)TJCWFQ;|Fb6N@h;xRr_{;}>FLO7`*!;shgC<6GoT*!`!u5!$CZ2u60q1#6EPjZ0dLFQT}< z#!lQovqBn7p|Pj9@bMSd-5$pa69w&@_3p*$6| z$bm+8ZtVg)8Wg}zZ;Ab<&_<%d%KkWVbh?~u(j?A$ms%s5B+oqGp;kCCT1HJIVC{(1 z>w$Ra^&W`tFFQlESyFVWjB4IxmXki`2doDx5e!rX7HONar-UXp4Ez=@(y{PWp{jW) zNg1cijfQ^{tvQ6O&)_X$>IbVzGB;jJ&pvo!2-{7%C9(so+xs%@r1`^~_6 zAvq_tc177C6z*EAC%2R4&!OmA%09Z5^2~|s@SWmD=`M~h-NKzvc#hv{9B(zS{3QHH zR6&H@33o+v$XZK=X05HpZ*e@9wakiJAR}hsBZC#E%!-K!_#;2M&5CEJHmZ8maOH@F z1KD1QtM4crV5>1`ZELvZIE?w%k!IbjsG-7e>WzRxLRHZXBLpJo|0SJLRM|VQ>af4H$4_zLBcqW zrX^}qxSEa4Xp7FYB^X`#1QDaSlph*fIX&^FKn50f-pbCX*&LXVodfqEso^kuEFpFx z-nV1@VK-!fmlw32 zPFW3*)*I-%+&rAWlCp-u7gILj8M1cK8bl31v-~Vd;5RpF+2+RCMs0mhzy2nIS$b_f z<`E3K;B^vM_G1LJ<^w-bic@bIX2sWlf>kf3WPwwT)zI)bDusIZ8sMuY>Qx0US|dy1 zg)yucqAWYhyAv_iRKMLk@!D$_!lk0lEEThobfC3{WNw$mg#pxcIubCIUq8{X4Au$X zF$ix0mDh@59k?{g@;eVB_kh;j{Ohm6IyQvnY zfv7tWMVXOc2xi%oRXqkMSdDi)7tLsfUk0ZP-F4Z~N~9`X=JN%jb1^s1C&#-hl$3?} zZo?uJ231ux;&rV1Lm4~F^2=bBSR~nu&bbJFTfkhmYfM$Z<7y~_s<108@hgv zVpiSY6N~2T;SnbH+MdDa?TPTRN`qB_Y%Q3%!;E0bN}~?Gpy_V&)ohKur~5C}ITiUlGJgqIN|0h;%@XpU_cHG=Z)tblqH^&wHMDKI|C&`(=&Ge^lif#%A@Q}(yQttr~)74S`w>& zc6%oO-hZmb6~56QIb-l*Yd8+mI`YWiWp~KND(ASs@ZE*iAv9UfEZKU|m^s0?A{7A?Dv|25ib&5fgt@|xlcRQ~}vo>3;jZTu?E zs^n`FD@in9f27_Wz5of`E#moQ9bLQe^I z2i%Kco&}=kNkW-7kDnaOZP<&338Au}daMtSeuLI-%>8Fa&Klu~6?=*YnHwwFqc&g7 z^6|RtyPx?p>+YEc-JIY$s%6$(vdCFi_-;fLP-C=WB4mAMSM0ej(R{U%oC1I59`j*3 zN&)(s){G>5z}iN>cOT(sZ?T`V^}j}qnKPpzJqZts z%S!oSsd{|w9y{({#5K|$P>lVg$Ec!_JkQqiU$SKA+$?_s*}$4y#X06ii{uHIua1sU zxmnc(oymVzNnp&lxecdIND-^eSI4^i)^3!mk00X|=`sm8cQ)-&5jt6+`%sl=ks0~(}slBSipl|z{r)i!o*Dvuf8v9buy8m;af^yr6Znw@UG zT1FxVGHdRc14sH&ZS#~Hauzgv_9eRVWA{l%`XgzN=Br-+CQu`{vytssaM~$4+diV_ zOoE%;5QLMJ`SJ4i$WQL|FRqDn(XnmEY`I4kWK|7D;hp}i?5J2Q*_u*HxnS)#iDn0w z)MLHpW}2w~A*C8Iyk_xYN+l6lZ#8^R($@H`H_h^WgsM0do`-##@GRAr1g#xdwLD$t zfx?#4Ao3s`bn;_&&kqMQJUu%+rpoQ6QL*t0j7wI%Tob+6{!%X$fd8QuA=mWB4_c8a#VICFI!@&}{V1AV%*}k`kjg6@V7{sZ1CIsPNSJ zmve>MLo|IkMvd4l*N@8BKf+}61e?Xv(jmek*(=gb+A4h`=nwk{po*MnHp|~dMl?^L zgIlq#4#`ih&SBum)w$D!jf#p>%D)L?CLx9-s+A<}uCX-*4NO@E0clk^6@9Gj_6%wy zcE$Ix+oP!b`k98v=cFgBJF(l-1AYT1Kgs?O74$hNeW-Z7$HZK+UuJc567h84Lrg&e71)z*}W9DXsS4o~a-5Un6T%~G%l zzQTggK34kB)Ksk*11W*rEmo%QSg3TE!ZKsbnLX{ii; zYanHKz#MZ9a%LentzwT^aSqQw+PPrnHuHWu>XlvPj-#4hh*|`FR>KoVs6nCiaFZDD zO>^^jYF@l$*$bgy^ih_UTi6E;@j%fGXn07FoP`OIK^$OGq52>+$p!#};Cg~VQ2kI# zV*Mjb`X`NZy?~A?0WFNG*Et_>-^JLL2;&DU3U`YYi!WkKqdM|ab8(ZZ87i?;Gg{*u zBnY7cNY556fJ!_beZZAparIWv#F7j@3wYK@HVpsQ^|9LMg~B=7NT8xhZ6FOzJ$`6F z9zqeb5!-kYdHT1KjRdPM-v?0}apKe2f6Ax{N%Vz;Mt|!eB0h8yw8~k}jmO0@&i!Kx3Oc3S&@O~6}1UqdS&7FIs2LwtAuLkt!)c-EH+uF?$A zl~X~^%HZ{G>l+5S9l~Tp ziD}s=U_F%L!xPrf6A$V>Qt>n&IUkKBRE3izScPa<|0z|Q-`Z)GcT|lCR4il0!HQE* zj``R&Kh}^!RVj(V+(W_I&kT;OICXv1J;OQ#tzG8BIP9cVUDu2mcg8_#G^wnr@zz(g zEIk~DVREcv*1H(aFgfat?X%G3Du>J_u%|&4E6PF3ePxcm3*)OVkokG>VP0zr5R+r$ zt?y~+ayTtrre<4bHi!Jz7Er~de?qo&A|$%hZ7{+R=CCxdz@$hGSOj5l5hQKoRE-zD zwYjmJ^@WsTYZctGDql%?5=pZ&j#ZZP-hV>@II?vjE!*q|SeJLW>nk-fGt~EGchcClWI&&e0ZAo5|aVEpJTwN7KhL4K3l`lMOOSAzX&JY0*XNc@A z0aKO|EBn00Phy~yvFoqw;lc|a?ebS;HIL|6vY2MLBYKz2$7FRbBF4IL7U=wvX#gjC z{iWwdl!P$rxR53aeOYRnDW@Qm?5Fn`F;Sk9a!J7Yh$hT^YMXpiLtyFIoIO4#46=R= zcfo^d>L&eV=(Ap_A!u)pI_*UqU&2PCoWq+NSJ1W!&c8*@#F-D5A;;*7p41!Vo(R?+ zH?S3Ok`6GL8&}e9O=aX+io>?b%2f=U6xLxyf(Y&;|DX3m)?kx?JiRsb#rKwO;RB1| z_*0R5*u5)!O*BG#KvpCPztITgW<_WV2LfXYbGsve$Q=6+5ClRrE`|3X5=Uy{Y8#AL z777!?h}H+iPzF%|MzWBJln{H(r?w@T6;Z@QKFcb;vAo8#CV@YOqEwQFx7?-iTag7o z?bO_jLw=EhPJr&zpeR;AqYH$Tf4kgfGp!+MF=2AXyLRcPGrh|Zy)lQ`XVLnnFIqMX z@i+{2bs1^Y;-Go|b10cSEE-;Zs*H8Ni{nTeX88m3yRqysk#>Z)lEIQG!Dt!j38yT= zb6_5FrKgO{#BZ*v!`Vyo;V+RkY6&|z7_9wA zSZm=5l($TZ+js`f4DUaOa<_@haY}Pr4s0w3W{0QV*cCN^^Rs+@CI?4jafC)qaff4t z!DBx17ArWXTj^Oido=$kJ?l2h$3lYAv$|RS92$eQ8^;^6qxWhx4Rl`N1j^P~mCc{I z3-0V7^MP8VK!g_&0c`gSLYFfLTQ?|XFC29FXOj`qPg~#QnClJ&tGb^T%=|~VBZg(= z_<(}W(blIO2E&r~uqHje8|4_l^l%VV(Yrb0U?A=A>F-L<#zAR*D;rDGUqjlOM#HMX zc|ufeZH|@gL&de+Q=s)2DKM8}s!(!v=7;73wm!_UzRfuH2Kptcn_lFxU(}Su z`t|FF{gr9@hd9bfi+35v(hg@~%AdJy>E%|Pb)dGvb^3r+6FGvm;`Zu$-aUh5fO_NI z`uH6<7_kkhBmZ)7YAW8glD8twUb6z{^|i)(@x%To=`G`+%y`O$&Dm+lt?o1qP;g-Z z%R&ZGy+KrOV*)p>Qi%HtfdW$E7J z(&;g!+ZSn$Gb^ZFH?G3Zf6~7jMQAM}CL%F1{s;ZLNxtDE-+=}ksD}PwuaNJ8J&_}B zA*3mVe1nB_#|XJQ((Dc!s8ljCwzkH{+5eXY46Eb1XeDpT*u8%gV7BnF$5ll(k7YZi%>L_ z7ElF>3N1&dumNNbf-~r*=o5z-$I$nOqR-Q)6UISh|Lat?rp|0{bXq>MZs{fF#?bjF zXoG(Mp8m>EcZdkFb_=m~>-+pT@p?ezAeg@a=2z#Z3@akRh&y~Z5-bb5XCxTLVY9pk z@{*;ALT<kX16G)Y=zjf>xp686=pA^Y;^#o>NzS_t&rmMpU_VoH=9Gj%-toQOZ}hsgKZgsM&*n%q>;rT1cg zA7}X1?gp9pYJO+XuG?X*`!_Ak*B-|}SL+I8?hRV+7uP}h!%WpxbsO+W;f|L5Oxc+a zzWM`}N8lCJe$@e95QblBYmLtVE7ogKI%(@>c`tN$83(!HaI2{dori@qZcinRWc)T| z7q}mdr%}LaG=U`OcmZlA1Zy8(bv+gXW}w$O819#Giu9F#rS2bqA53L3Xnh>b^JGaw zj{a_relSNrfW~S*@CYg_XdR&WVN&q)2RZsXp{ikKQ-}H0Ihg;G#lm#^z=Y9E$T|_q zKTi)>pQkkitmD?FX~%1udt;T^I_s}J(>vpXs$LhToyE*6<8&Zxm)|-}*g(eiK-%`q z50<+#&)yfG`DwQGWx%}t7?^gTLIzSBA&S4UW649bwtzxyph7if(%2APOGZu}3AXTd zp@d^lk{x<>#YblOespL7Qp0%bEEYrkk#A6yH=mCci+_>7Xl~4qIgsF4b;q+(zpXTb z#3l2?;(96@nrjj)B`Ku8Kd!2K;&}ZZO+(dw5z=3Y|HHYP-Njw4e%jo48Hs$LIV<(& ztjc0;!`A*_=7|#6!v+$y@qSbe^@q$i8lhe`M0I2B&8aFt_3R0cL{;~OgH1h8WqzWp z>Ai)=f;w33&Z+7izqB{%ZvYuMW#=D|#zm+cENXFg$!FA6BS+#64-zME8guZ|vUf~1 z%YXKu^-=+&PmxZs4pg;7&%yukRk5r}(Ik|tD* zh-*5Z_A^l!BBoUe>IQKRN9PJhd%T4;iTp4|QuFKx6Z<4!!HD(;(%yl6`K@zgO8(k& zy#vGEH|(JME?+@VyYRri5w#_eMbrG9yb-e91WZ118Ydlx56s9 zf5$Yi0VUBI&jOA53?M0WIXKhbq3kp21G2I8Goxjna|(+>s?UjUNec^P{ z5BeXy_!}gt6aCNSvj2IX`=4)oP5Wc#gVB0WS%)^0%VNHo<1*KM8`J-E!I2>JKfA4y zwV!pUZ8Y?~jX$GDxBX8voZ$iM%WU)2H*1e|DEpE-$%E8MZfMy_-lzobKmyAS@K88~ zEVFc^UfhHfLf&Bs=q`7f>+q@>y31p}Ch8Bc%S;j^Tk~?732T`cvcchTkKA}qNYqvCj3|J(J zcfe|_Jwhg+A85Q7C{h0~Q0xam#J#X5m_WTSfrDX81k^xILdt<$3VFU-@8bH$qJvZa zMw|NIN8>xmO%@wd|C7D6uS7}(!8Sx1IQA(l;1L{xB9Z;I^(3($;|6)6jU~Wib#u7+ z>Nj=|fSKsHV04Q#fPj#73=E(F3UzDB0BW%08t#iprd~SAP3>um@IOYF=DL5G>;8d? zuSMfO2)9kR96=urzKJTYg>2Ud$!>&i0dpp~8sTvG8nc0*R@7FDn3~`q=PxUhswZML z=1S2zb{q*5HdM~j4Bu59ulD5NBV}$Acmh1#bi>!NBk&z{1ihUF5#om9J*_xh&*?^Z zUmq=}+Yo$|B3^Rg#2ttWzEyDvBJtr2X5~?=I)haL1q3VHch5m&Pn=DekqjoqfB%;S6(8KZg6!TP99T=b6pJ0)>3 zFYwsK)U*o+Lj{yd#a@J1;>nuoB}qB(tB!EjFCG@7$lfwBSm$&jt!H^jZtUkOv0SKz zJ~9b(LBYNq^{IFyJ87MiDGqlc?bi{t+7-E862k)e>;Ee~quXS#nci^*7YTdQ8O%H_ zHb&D1IHijfaG+C0%4U#LN(x?z%%lb=IGE(6VhxEA4nm|4h7gYE87uA`7uOp&?nGh-2&c2!JqKz?;h9!x$W7NKd^ z#3%#gBc0TmHcHe7DI=?`Y#6tP$!gG+k3;h#cSrN-VZx;AOp;L8UO)%f#1{27g0 zZAk82x6LbDxHNA_?vOEa7UdNUnN&RI_PinU!}x@FA-=6VbV%Of+ZHa)8g76~itq!T&`I@iC5}mk}PH<+wCs@D+nE3?p1|MGKY`hLc*7xjh`|7Ssg0 zeRN94<&JAbC~|6v)O~iC#dG=G^Oh9P&8KVW-ShL8%z+?@ZWcu1J#9X&o@f-%nRD;N zIfY@(xPxFND)d%6$mN(O23(#(!pF zYA%;YD1i!U&<9}XJD-~SBb|<&K0k&FeJdxUE>aBd%c zVV?1^pLBO$jsXti_Jwr#57kvM^K44iIM|xGhLM&NAe0u z#V6(6x453;2wN2S-Eq&aT=b2LPE?;UUyGjT@m6QxjZ3ez34Dn=cTT?MT}kh7!Nj~| zmlQXDvF3gBs*90Za;eLvrf+e39~+cR=t>7oWz)Qma}6g~yS(B{=EUNOX}yT{375BI zPT^uSbY}cJfnBXAneEfdsBFn=Kw7vEod$hihN+(^XCCWa-a`7^xs88T;5WIv3zzU$ z!o8~miyBGU>bvA5&+qsAiZa=)GHHk8kAkGmCISMVfb=AUWdlE?P1VdfU*K3;u=6J3oKUZ6J6>AR1iW)}Lqc{!K(3b$OR9 zDOsF{+IUr9P5^^?&YQDH^KN=Si3)iJsJX@S=jRp9%3oL%*1TKN`w+g)u<@eeww~pB zJ`6ni;92>3OY>k7f9H0c{7;EplowvGWS-`IL!j#=x@6(vdH4!2zSj%EYed`^c9KPk zS*?g^kTH;SPB`zjyEN}M5ph&T@HhRX06Rt0iP$J5#V!%|eQaC{QFaT0GqD7V@@#qb zi0B_x^b>w+h zL_X^7{NLzKyoW@UKjH5D9$KyUA0qg)+e;rp#%GpM6Nd$EwHroUD8JF{{Xii9;OpiGwF#Q{Yk{hFdkf~k+5}yL zKsG>1T!le6@fm9GH$waqh(MRX_k(EOqe8edZf|a3uI4=^fLSYpJL6 zXcGNj+@mK~dRTD<;%m~lhu}`l`<<*TPiH#g<~=1St3926Lwrt)7W^BJSA3FM^PUly zl^#fm%LDT9{eHBSvjY352L&oZt(+6#$2?wqiA*K^K_DOZbRJ2(e-y#rdO8oI;7=m> zgoi8A`7E~gXA$wFr}J*2YZk%Zc@h?pz?v??PkBr-0H^bD$%v;tCOjh^>LHk0VxRGt zDE`7lu%p;7dV4)G{#lP{cS(8kTGGTxnpGYXMaw74>7Wa}t@fDCSHoxBHfPbIIkWgH z-d@ix-gC13N6~rg%bU?#}s0Uuk3j*7G6$r9n_YKTPYTcQfS`Z zQpWdGg76%2^}Ky_Y2ONuD_CSyU%e0`vyoh{qUIMaSu_j9xJ0IDP!ZuJgzhiVClng2 zRFYK53+D=iyp#>6N|Q0AUQy8tF#rtKe_#bxdJ~qCLNAlyDsKY4(cryO=JbR&VJjKc zaH-eTUXzDj>J><*SL+{%A=zt+v06op(CNMqBYBh8{=P!&^lW424vI; zuUSAgk&mefb%5Ej`p+Pz+wqM-g}+YXe{3Ov>~qHGq9-biYau%KBS9Hg8D~n-#E_dK z@zrsyMHlg7W&9IyCa!GB%_}OJC7gwE(hyg3!dbG@(!3#w{{s@pjx2x4lG}?5H1AAV z*fnwH9mR7Nhv`x$jM{nV=5CTv>*LG?dBufj84Gh~sR3=4Y@3_nO#a$_Vct^NX`#oM zEhAqe0b?WPNR~Bm)D567oK=#y@U{iy9?aG0k|lUwaj*`>%ZbjF(RFsp+$BYnZk~)d z+#;Qf%#)Gzab}oq_z`N>yaoDY?4~w=8(kx_2#s>7tVZmWvv22IOyj*v7mi)EPndd4 zJelX+x|@BZCy;XS?Tg`i(d8?1iu2K`N>!EkSWkkf@VLsvL@4rcH3NP zu(uV?xeI>!oNzJ9TPbzBzGZaolDzrz7v?U6ofpl5PojB$EeZeHlCTh6GZSmxhhz`@ za!U%n(m~NwNt#!D<|1;?^B_fGUeTf&COlAn<#z@Cp7^Z%wAxr|!Cb}QmG z%DB?_Sj)+sle++xMGnIjNl@N`Kq`VM@L@K#{z_0t6Jndtyu0O^x$D2#?=fRh@ zbs~G1w`FgzK3*87vhg}uxJ@naGSLB;I~<>IC8_pHy$^@a#LF2kmVI)=1)8U~D;rZz zw~uaf;mIqF4Vq`5>t>*NhH774G+mDyeg&K~c68&erZF0`QucG>Mu?ExyL3+e!g*TU zH6rX|Z#Hfub;7RXME3OJMvkcIM*zBGi{1thmwSD7lhT*!zmR zR)qR>CS!@q7NJWzlhMarCqn%@PoTIlB9z*h{H?f<2&J(z7B^mm26%C6Qz5z}T2G0a zAdmySv?9e#OpBYm7#edW59&+`jGIsTb0rV+F3im>n6(&-XjQt^f_wGOShd#T z{=#cH$?xf%-=p9<5j?DWm&~6}v#a983&X-Aj9X7?GLrwPcP=H;O`<&Ydgqa--?-OA z@C)5ru;8wu*mRpkx(405fE>KIH^o?U0+d+cm{m|*Sg@oBihEZm^o+z$PuJq!6XIZ< zgGr}nXmRfgRJlZvd_`K^A(0j^KYMwA#UDok87OLU4_+*uK^+r>^@!4jVK zAZtyZ!OEy}IZYj1z#vx;4btr!hZdhmYf|D`A53x4MQ8>-Wb|9aqj#I9d9HJjiqPy6 zPQd~^V`NY_=jIpZX`Y}A%M6&2=E-qQ00Xf!MwcWa&#|tpoF{RX5%%4Mh#u$qh@+3- zwr9vsz zEEzUTar=^IwnVsNa!mSMLNY>7m8$(y*NIB#(-v|1pMQmam$n&%GJ<;aT#cF>Tv&~=!l zB}p7Xr8y>f?sjFN1)1Chd+v3St-~HovBu}QPin`9*$X~JjythD%Uw0#gyF|rY~xCK z1sj7a5! zC(r_g=XWk@ z#kXmmKgiUn2?Nk2d;Tbc=|Xam!y4CbR8a_lBK*lU7UH>mB&3i&<~~lJ=kG2Wam>5& zu%Y9rkrk?$i4gdX*g# z;llM75{nkC` zzdVO{Yr>W6!~7e|OTih2aGrb#BPlr3 z5FK!00xdy#Zj!++ytL%GSq8f%(881F78&d&1XKBHo?DH-C}|ZEg3dN3K?=8zWZ{xH zx1M@#Hx_YR5q`Vqw7TDw_A0veLi3Z{#l@qZeB-xF`3zIi0*|01pQJ05MUXoerg|0` zdpN~AoPw4wIE7@}>KawgV&gPZ|HRa^rXl!~*1A&D66xApv+60}gj}$8uUhqljY;6< z_D#cY7hdxaoXP1GOk>ljTUb5CoU9FBQY=lrJY~ijX8RXrOFI}b3TY*EJKGwb2aN_! zf1K0PTvw#OniNG^6|%+5iaFbdjNTx1`}*Ox8&892%Sa?8*F~gKdrF*SwK18KOvi5* zeIb$a4{O!!qs>V!X3TZ4o*l*moaQ0?cH?O#O&~=!G^r9P*q`D&b{QL)ek*>v==*G1 zn&NA5kK^ZK;JBrYqHSckN6g!`#%S`^eT&5IC*L*eTOy|M;=Wm5fqp&-Np$ly-%|Z3 zcp1D$iQsabHYwv{?w*aGcx`XeQ4W5)>3#8=i~n5-=t|Qt{?X!DdcK}Eeo`25Zr?Ke zcG06YF{RKvF&EcPkDvNz5++`Y=_2HXi?#S0DTofJGws&LPb2Q=f4t!(VK{n3FrBWx zbtQKaNw8L`#m`*DX%evvKWAb7EXLg=QudT78F#Zt+RMAB=r%3>R@&mkjLIt}kMXnK zVJ@lOWn6M7AcJ#C_b#J?Y4LNZ(5~d+-X#TdFm7w{xl|lia+a6(^VnyO&l96o&^u=y ztslqF7kP%fSdPdmTngtf{x*S{2>tvHS$6CWE^Z(FCbA3aT-)o8f89$`ne&PlExJoX zNN^|m7l4mfn$+SKkdnK1gVGYcBh5ZirC5|CnDqH2D%|Vu!66^ge~I+mWA_7!?Fbhs zQF`xaii#H=?jp>gi;A44G4U!-$vR?%t9G*iQw)3_;LSAV47zy@bG!$UF0TB_Cf< z?49*wUm@VE>6&*=jD)jh*kSDaV8Lmo9hMSOin$_1Cm}PXk(fk@K`M#q&SF!dTqP!z zi_%C$FF}DM5|Je2CP}^X{sqCiPt!Clji;9c|0h9_$O@*{)O_qhj5#D9O*$=9X+WSO!tk#1v_AXz8lx`nwrE@1U8e*_< z^wQ!M0G_PE26g=ibhW$Ju5=|m(h><9)_saLPIPW+`<$ndd0190(mGt~eTK-XKigoF zbB4XO^Lo1VL;8L`fbQ`e^<@ddQNr}w0h4OyUa}aUaxpIAGSqV!pf-}Pb?%r}>HT#5 zeLMGlD))YLIz{9zMsTsB1tZ3Is_E-G>iVdD$i0j-v92R6UiE5CLcDs-FV4^B+3s`^YN>T!!!)(TRQT{sr9CEE?hL{wmh*kr|%PTQ|a(`73o6$eU5ySINyDg?OdSy zEYS3Wq_4FI^d-7J5R$iQPf?&?o~HkkO614?KDl#e&7FgF4*g>q80mBSeR%It|AczK zzaZQUIo;>O!O<{lCoe<{`^_Xu=K!33fOB# zBo*y$ME9$1%_F?1K+_YL;B6^oGO1crs#tJe0M`yfiJqe;N|OEZ`7b;d_E+l8A$8M- ziIZrPThAfY6jJaKD&JTNZb9%8w&M^l+pU<`zdwvCL-Jcq#k+MhIHryV`dd(^jt0=5 zR>0DTa-5_*L6ozYYAhm|Y9&!=14w+VDd*lk3lq1JC55QlH7;(NbjY6ml9>=6>&J6i zDn1g**0P3|SYM38@kg5RArU#v7vZezz#owaVXCla5KdWAh!s61`ZE*t#yfPE?xa$# zbx|?zMmS|I4%(1AG$$8bji$fI^T`o7L6{;gqSs$y%voRtrz7nZkR&A+miijcX#Rln zj#|IfPyzjYDW5}7T}NEhvl%Pu@0F#+HcCF$pJ(Of&sn%g)BEe}MyAVBu7bq$cN`4w zPgAAsuTyPJ#2rk7#3>jgBhjA(W*{46Dz~uD5FR`m;@ys4Hhwpo@IOI~2DBRD4j~^44k&r9#)=d7NmaGzDmA@PsA{!T(PO9!`s zw~I2Ei-V(=azE^GQTty@VdzEEy=+Jqbw?udL@%Wuy{n77%H4#dz9ogcR!#qvYYA9Q z?m@!P07yraFrUD0IyITqvQXRQa~lYsLxK!yS^DG*YH9i;E&T;N>m<$R@|l1s)jp!F z5wvuFF=#L2QA$qT7DCTM^%F8hE}1R|5zYdVyrgEds1PSQ(@1Lx*y+Eh5(Xi zrZ2~6!_sOO!OZFJL8SfI7JE7I{s}12V=pJ}*J0&J^k}6tP(6a6HY}#gl*2GaLiWnZ z@z?Kl=}9t!`{nazq`PO3GO>HP@6oVIg1jN}y)H7T9E626EN5%Tr!e~#r7jZX-w3Dh zoI}&gm|`G?dubK-vsJuI<9}>*3Ei>@uGFigFdxfjBBrYUhESr?R#NG20ZR1Pk5PJ`2RCWUvu_02l9<^f6Q1-DBc`{h&C^ERe<5EK|f zV%lX+FfduuPrCGaNxzJ)pT*ySB)oe*M9FZHEpI3?8A!`oNI;r>gu-+(PKFOtm{zj% z?|9Ja(^u239O;BzE0PA%cAt#C7tsU1aiTB4cr|bW#edJqs}LT-ZonxQiDIl+y?i*C z)#coQYgz$mc9{`E9NX0gNWgYwf=J6G(h5nc86dseV6t0*XEM5(U7BAxc(6m?sfBtb zhNfg|`fm-rRH~&4_Ck$ivHVgNBzhjNyZLMNiX@8^^(CJurP| zLxp0f>h31wSsLnPzjD5thMcLe%E7Bab_}9k%1vRQo7|zlAtFV%nS+?J2?&gHAQfac zGuajB)+E_2Otzf+xfV5&lRY7z>36yH6S9mwtb#Nv6F;K4*dcOPfbI^LP=sL9`Vt527L6TomaYphY!3;Fet;8=PXPxnT!U zHyhkZ(DFEHteCy3r9efK$BfqWm2Q2u6k)x5re3OPV=q%xw~|FE25wLh9b}R7WF(}T zSPQ(6_Cezu?vt^E3=r^mhaa`wdl@yug`Ui;iay@5dko`L?SF zp|->IKf1|eegN*$m%u?^rvHiY9|M0C_9ry`&u+?ye5|V|XML@k zrjo{rx}}*kZKX|1`r|KP?supD2DompqEvj(PrI3bI{`cjKsMOR!HrwP#1=)RjU4#C zZarNV@l_gm@wX32yI!t}dW4JG8~PmtHya}iRw9vV5ky@8q$t|wT!gA7!)0ghPj9kAQ9vhHy;`x=Ey8UxVOYNKZ%ZRTzA|2AFVE;pJaMO0yJqTV+ zp4IzO>d)j;@8lVP4mFiLs+}N8B@e3+fFS=$l6|MhJ9}m*@=gR0Io`jL`2&207*g!ldyy>AyG&|HdYA|Ku}Z`_bS0%E4Z}Q zDsEWRV(UVyb@^#6RovRT;nrH0|GD>`@41tCliJUJlzHFtz2}~D?zzib=DinIOX8e_ z(vvqqeLB>ai@MKh$3eYQ@^7HN6Y5Wi`iZP|2Glc>--r4KQ13{|@`mfCu4J{XP)|)Z z&CDhZ6ZbT&YL`BpV$<1Et=u1Shqj$RI+r?sU~)+3RDU+=p+}z;r2iWIv#a&MWW6?g zN^kKePW2z%;IH-3;! zI;Y7=*1zq1N=j{K{DO&vQ?LXrO%844il@?1n*MYiM0+kBiP^C%HKD#nTyMIR7FwFD zi;fOQUd%jAJj{S#Eb64h^6RloH$ z^sD4~P@OTHt*#{C4bcH~I$39$4g=|oG4!Avb`L`BHLYfocsN~dc)hW6P{f01t4tXh&Hi<8oBz{6%Z+%a;uA!554Gl3n%w8}_OCE{de5p;A_OtPP z9b`DAAK5ionn(I(eq2kyX6Z{--KtgJPo4$U$DsOGQBC7e_i5D+k}rYks2sMskbuon zH&*>jtA1#+v=eGiX|*<4smz^5lP@hLF7m&P9E!df0tO#HnCnroW0g_c8cB~KC5MYg+N=-#79K* z`k9^vy;AhT(0?55LCkfYJ}G+Vcnirxza#6RtQ5NkS=-zubt{W>IP|paK@Ou!LqR#|`Q*6T7O!A=ZWGz%|@<_ANMi({F{fUZg zbR{WmchRLOZFbRlT}@2%V+xt7OEJ6XF%v1rdKX=xf!;;$B+xe5Ri<^DQ$mr5H8AjW zyM2vR_58K1+iY4lB$s3p>}C_}I+AT`H=EY>%Oly`9TB?J5Q~Tyq;HR4nOeu$u;s5( zxoz$i)7;ugBv()XAuIQpOk+$Nw1+L1o0Q!rBwfCXEl8V!WL=S>L#N{xKAyRflXbs6 zo*8nQZR1>>tl!yWEuzXMS@&z8la+qH)-nrr@^D^j3fc^fn(^alU-EHED2J2w0&nM1 z)pb^*`+=*bt}mOX;+_zS62eScth+u-i(*LGcU zs-A^?3aO(_Rm-NN>bZJ3v3qj-4nof zJBB)>+NphTjb5=jn)q*~T5S?oPYEoe{v4ee%IDPeJCk(i^CRhQ)Vl_=N{%)uoL5BY zGPey<4V{o*5MfWiN1Mifp=EOdKE}wyrz6a9soI#@wzj$ZGIKmW-ZXauDRi%lAzmcH zw%;n8T}*DwfYkdbv-2C-rU|tZOQ->JQ$sl%_}_Uumui;Ne#SOnu4%v?;(Dzmi&R1P z!Mj@4x0iHu<9YLx;WLS-R0EAwzln&hTJK1g12bNM{==xM$cHUn!zA^OW^*GT>m-4 z>Nlh6PgVwj>7yz4^>j}7rZIXQ+33EI#J7z2s1|8u`HQb7(rINhZ95PMy=~+>N$zg@ z%s#Xk`m3*(x6g_9MjoQ;5BjsVkKMiuPuq>@Gv~6W9Y$P6Vjum~TIed%n3qkl7rNR= z{pQijOz61)y0av7jbU_D*P1A9p)woQbw>VyWG^d++LlYrHEsKianWr)dwkf4btGDk zj~I)Onqn`s*GMNWAZ7OWs9`SE40(ObczKW{>-BLXXDlSIJ@#>1=Vp;aALD(oaW{Yz zOlFrDaXpFFd$qCtf+_YwHAd=H?%G>x80~qf@pL1VS3nsi^hq>^ggX>5+M#A0fiCAR4GrrT#!Q`dUahEH6d+qL7jOr;a*NPdX)Sgt3T z+(mqPN9TB|s2g}}N8JtoMik-IQBw4ZML$OarZW>M{~_1Fg7Hi@HOt_zx|b_HHz8 zCM`#Mt^5_qy1kc}_AXvQ5_RY%6XIJWWo37uy_61sBEQ_wLsyby+k1tvImZ&Zy_UF> z2(Q~*s;O)J*3?R0h4$_@mHKPhwAad4kW6RL`o5Kl{uu_F7Z10 ze;6ZYHIt~PyA?NUQ5&)1cUoK^;<&XW>ak->E44^2{%KrXMpCz0^3a`rh5g#}>GxV; zKBUOSBrSkctfg8}-C{)1z0ZiE{GJg}HEW$mpR9f4>z{dKMYpE2xvA(%Dlx6G;-^~F zt+C?#77}%9toVc$b!)8nH!Yf(aBP~M`AO@kTg=jC<$Foit?goNX6mtlB_{0k#O_Yg@GqyAMr zXA)V_*{-u=XETX<>{xM+7In6*c*>hxN1mli2~^=5XzN|M)2|A21nZ8S4!z-3&+ ziWg~7o44Y#S|kIPn0eJ{i;l`WFM|%`y~hZJLjR!`(9s=oAuZ7Ved)-!Z-Vz})vu`U zQ&&^d(AT_Rt8Z2Hg2j#Wz8Q~x?_b6*?IH_hrZkIg-J$ihyn){RV=-ybgA)}b(1!#8 z_JINs^<7+6SjqZiNWVvhNJ3Pzmfi|xHRzC&#+&`97eb+M@8c`|_g}nNb*#83`zv}s zR!CL)>&*7J;bwDTg_BZJ!t^*mI4LEivP82fJLy~PHc(Y=)mxQm^(*NeTUydasM=Yb zkEGO;s*d4tA$pkQ7}a=$_;5-%yK{;wZiYL9$MocE>z2h`;mcaLWO$P8?IJHRnE?lmrrU{Pm}amb4A^@Z3MFj z4ySFyoFP@E{u#T}BT0Vrpf;LfVoiDRiHVc<>{lnOQyrtdC->i>((+W%;o0}s=3Fpi z(T2%Q>KH%bxA>+0ELFc-9qm`B+}&zWp2}-b1GChVtNqU5smH1wuc{Rliy9l3t4?~; zs5&3Gc6(j+_P!HVtBfOiTKA}qJHuJWwXE8#U8{od#8AsMe$`4{QgfIhJ#MR7)Fq~lt* zz4v5tJ~(&v`-@e-3N^N&N$vOiooal=+S0z0b9z^vt2*o+p)$5k9n|>f7(a8-O(WkN z(VG9*YPDkL#p;v>RpnQ_J?Pf^-cpY?@AXeFYgF_7i0Y7~j^0_R2JKY$t@4K-+voft zB`xdyp2zl?JgiiukwV9aYN}8j8)|M)9sC1o*>Kfi=deF)YgOm?S&e>UE-CGuJk*a= z_ER0AYMH;aboO??xB6V|teRdjvQ8acF)O!H)eb*btr$LLqw0`1`AYTuDu3@3>W}%i zsc+U)^qbJQOnJ1M);dmSFJ1Z zjQqOQY%;&S=Jl3TA6QLw{R%w^)kOW(Pk&9;Fa@hjn?F4Kbe;YfmHNYJ(E2@YZY0gH zdd54fj`t6%sYlcuH0;#resra3I7~CQ;TF}fw^dc_y+y4L=^+z7J*1XZs1C!2Qeqjmr!oSvEx}U;2`moMX0hG-x9U5;-)c^8_NsG1WoXitNp%ItX5<-F8)>i z_ExpPk5b@y{yB}0XfHr8=xTPtUdV;i_((O3%Cb0~)JU54A#@komreS|vMZz#CHWJa&UDrK3?lKD2v z{S5QXa85~S`6iWqiFpUYRX=t8%_CA^*gK%HS8Us)~7|)e;T4{L)viKZl!IWI(etMaI5;NAxdrB zLV5kNAzG5FE+_PbL06LQ=M4?&$}~OELMd4(df2W~)3>Uw{^9p&{q8(<+$eQSg*v`M z?P>674SbW_+(vHRqN=x%o43;PcBy$4>Zyjj5xHt#+E%r%A#YKxdWz7K4SD2lKWRQr zPWC$|G-NXT231&5H@i-CsF*QHb*Ir#xcln&ROfXc(CVc+99Gc-s_zkh04*}_Q*dFQ z?!-(AkI-M2>o0X_gWgAm`|7V;!~8qVFwOZbs(!CJdapnB@3e38^VQ1X>qeLMKCgMg+gbj!$t-4STZeU5`BUDwuSLxX_Ybx7R~cqhM*N-sRLj@-ddC~? z)%n3vTCKPGOD3tK@>KnBb@VzltwQzPs|pUQel(Y+ZdC);HJ0CZ>jmT0O-<1f^$xB7 ztxb9Ay$@WX25VVb+^rjGLuT-f)q_wM_lw8Z~bb)*^HMEh?4)vDk3K5wyq{NVE@p1)5m z&ng|Q(;3e0qBlS2FSFKc&}b0ts*Zf|n!o6a^^a^E)TBpqnEskLeLt+f*6Xk0*?U@4 ztv{UAE^aDOv;2l9Rkpv?zlJ))KQg*x*ocxDBNtEdCw)chOjG#W5OuvCZGQCXzUqOc zd)1%Qv(!CH*U@%3ZFf(~o_L-*m>yO4E{#sQg7*3^r*AExSYDk?9z)ORuUx$thRoND zMZcUhr)b91h3dwo(GfG$yXg&6rcY6gud1W=`lHqHTm56Tu3gVl{3#?Ty;dtdMATsY zrKhseBTwc0Q=OK#T^+mi(Z@&(Q`Q^QQ2)TT?c3;xK;`Z9yZHm>uJ?DSx$AsVqZM|C z8Cg5j0LpNeyd4XwF5FSyTB*A3RP(Y_*NW`N{65=$)V5OeybGtOqx7f>tA@Okh7?)= z_vE&!rBPM2d-4VMH1#g6f9}HiqM?iH_cYF-@l#EzG*#`4r3~mJ%8;L{GIy(^{OHZ< zd(VHhpK2OjuuQECpA{Od7w8qkZ!S?QcF)kbajWVaE$K6&-;kkGjj0OyR(n&XsGFK; zU%ql@zF&J@pP66KPKXXk`lyb>Cz%yAi=>%-`;6$*cTb-Ylj*p?tfr)J%uaRe5jCVi zO~_J%qb+O6TzIPbb`2fUXk&v%^ey#Av~O)&TWg(n((zg3`lv-}EwK<-7Csth`aJFP)Yp)hx=9<wBdsKxw zjdr@lbYOaR)&pxxhi<>&{IkBjbxm%`W9JRs{@84F+5z>znmqMVXn4N|RHvPEc&1j8 z@|jt0K9oDNbm;FNQ!AqCsCDYJomCI0V|U&`3rOA!Rl1ura{W=i@Vgj`{=i%PX*7Kb$Z3=Bwr>;};E7YlZk3ZR1zhXn>!t;7ps_8p*r(C6zn4(wta7wBE zzEOV}bOkNbv!7SD(=lcLW%VV`OzBnTpEQ2b4s~zyZuN@iZ>{`l$P~4rVGQ-U%E-EX zO_f@?S9PSLG&(35t}dhF48Qv;6V-QKRIR5>eCIW&e|md!_vHTJo!qz7jjOk+|0o)` zOV&*)pIli&X0py5F|2QH_Rzj9f1oHrDP}25(MLf_Rq1i4=wQQ2b`?CqZmNc>ouLNx z?nQea%~e0YhCW87n?CYvwGltBf<3GDXZC-Q4 z|KP^lO|*36j~u#w=;WcfYF)@he@S?^&U~&aZBS=qP0D?8Vdc=*?>c|b+v=rNTh;4H z!_{4@cB%)GXdlz#0L{`F+siK)F>J)>5yK|smJS`U?f2voYXOaB-4dN?Rjj{unJ<5o z9t^|i@a5{&N2X8OuI^v6SG^XZG_A_|57&{iI!}ad=^H~v&bG1a)@pVT?r2^|Nx4^jPTJQb(d3M6 zWxVBmYYv2uqU#0xKv6`$jGNv+K=+#35BP35{kjc}(1Sk_dGIH4X7=)&{%3lT#(H`T zGJ+S(R#g*G9+|%)lB;j={d7tqTi=hdyCDCpjLsu5S&qo0ZCU44=A_9ktcfI zI9?Ab_UDxNQr!spKuLahOrY1Du0oASr)O+wyPp2tM*pUeyqf-@KK%$ouZ@k=RM?p7 z>DB8I+{|kH=&_-@+PuJ}zJW%A>HYG^yokQB-FCdLB{|fc?3I>HofM(Am6naqJwJEa z#K^KL8V2-;3O(IQInlqAnh)a8_b`(Weuh`S0G{rIjY;15H4(lw*bESTH?nn2KMRhL zB0W^i>(Se=JO-uA( zZCp1e$gg=7E8P{M+hxW_eN6MbT;zEk-R8TbHYU&dc1zAOrLRv-MIX9*a#6WS1I-$G zv!Q;Kb^G=E4eX;QSB#lumF3lX!r7{ks`|)aZ_K>vGaI;PjjHLddDRg+A^4TFZrr#x z#A3Km?(|zK`SX+U=o=upS&8ClzkW=`|CSH#NH@OqO@TEuNS8$PJ=XLdpqTXQd-;Oh zY*~FeA4bp}tydkri0a$Ec#hByhOv6|E++Fz8>g%9%3@s&gR#br4}Awxq$mA6OfM@p znW@*W|2WG;)W%QSc=TOA5)Y=3euadXEp5C9ArYq5}b>@@9m%^W7d2D({87Yr4O2qYM9?va5A$s{!)~lAJi5tS< z+tPiqYYXVNR`bDw!qYh3QRx|@(lbY;M_Q8Bs}142^n>B>g&or)qxKW~G!;IR?vG0g z->9kd%>AVP^e8erDs4`HnUo$G6Qg4NAs^YvR<2QYJ0bm0C|@U`TxVoM>c*65Iz6f= zHYL>B#a7+JbFBLPf%-E#J!5ow=IHdu==7eW(z8dU57sueBwwC%g}O34Ha%y(KQ?`0 zONR;RTSICv8J$Qi%ApnwrWR$7dN#f1=;x{O3uNO(GWAlrKgOi?6l-1{Ej^v(@#z_} z(tUcWpJhBwdaNs-tjp1Vcxbeq%PDa!;VJ1k;RTe_{pmjJ=-;mNhksP{Ca@pK`u8UN zxzKJrY8m=>E{zB3-wA0IG5tK2_3%*Ue3r@oMoNqB>Geq))cEwCW7G3nlGk*k^zEm< zeVU4%q0pY?F^2f?9OV?}KRl5diumwo<62ja_%5>X<)uxtz>Hnk#e<5lgLY$FC{uXs11-qYueL9`aXzT}%0^Y#mYi#=35dFpILOsOhZ%Ni;OHVr$3R5tc za--9v9e7smXdYi<)92=GNNP!$z9qaqd7}zHOV!LYonSiz;}TD=&EWYOJ1*U5#Q2OI zmuo|G?)yKCOFQLdTy?SS?cws$5-v>7&bPx##wQ->8o_$w({q|)$0r`$%I9(#4O7;K zThy9#-z*vE7d(Bng7Y#V{a}Y_Ix%y$gg2`7$>AT67#rs-wueWVE@?AgY4nXs@3|p) zW6~CNd3a2E_WG2u>4RHR^V0W)RFtwYnEExF`n4ww#t03@Oq!(`G)raSLmu$7%(D`I zPIxtiGAfNmIn6_i3p}cF1?$l~*ue8ZuXq#E=Y}sLPcf^VRYZL}bFxszMb0YYCQ9EE z(<;q3EtqRI=`NQKD<*t6Xl+;J3g{#eG1$|FQ3s0a;E)A`P9H%^xz%q?1T7NgH zEfjoYL(mJsHmOvGd4OAhx3fO=uwEj=q-ypvW0}X@xX*Kcksb|*7Nr-}obYuW-HJ*x zXuKBFGiccOPmgUIA8w9a!*=MnBz!fsW9CAXec{((- zpRl*g2Y!`vqr7FGc@PdUsTF~7aA*|SP+&8TnUGg_J=^#NZ;5)1;RlY2x4`#yd6+WF ztGh7?f_|f({)D_~FomdyvSsdj2}9H-Q`dKa=BN}IlZrN}9fhkvOPO#RTwsq*9 zNhWskHtc1$PUR-dl%`;(Cbbh)lR^gX^7h}n4SBOp;YH&t-VzmG3&-hWSw(j*@B+tW z055c$4;ub4av#8_)Zf7dltM&TzXob^X zw58(>KF-C@iowEo6`W>uab4vDzrY;L;)5OpyhlophxUwJDS0mhd{U^u+(QWKMWq1n z5~1<|pBAd9J@*x&5(TUhDlmn{a1m5#)B*kvwf2hPz(RocUZF7|@4vOn849!uhM=On zZAGo|jmP=#A2}f1Kfr%-Tn6yVj>`o8i{m1|6M6C1gCGncmq~IG0nT$=Ch#Q3WdQ4! z3h0jx5cr?W87B}vc8U?;PaKyC{HfzIfc107Z~~mpXX?fYgicKAmH=lsE))0|$7KN1 zpSBezz&~ToIDrsxiV@(`9G3~)&2bsPc=4G|mv!g9(dS=qztL_J5WPbCy2+di5p)$pQNX#50=&Xe zfOk0x5rjGEH1C5E1a?4(V2>Co0DM@eC~SWtR6)>oyRAb~^)UeOabhVS5G_|;ZF4Jx zSxyfS=`eZ_E_Hf3~=f=(q|aq}plKGF;=R7KYb3 z>IR0G_+$&gW1156{}+5e$^OaWuoQ_#B12v&AR-QX{aS%nxtfUH<+&80x;&Q#L+uyH z^N&2=dx-Huz%!W&d&`@VR5(sBrE&FgkXw0t;FnWu|I$)+Cj+eu#2w->eEnQFtT z=e0QG6<@*-Ss*Gt^y}H|UfwFN{w)RJEk}N)AZ(EqO-GC1nuhamb_v%+#k<_aR-ba# z4=D)nLUDYVz~!u<%UMB}fis3X+0_B(^00ys?+3k+9U|hdRfqVSt0l24Bk?Y{8M3Yx$Z5C zZ)GEAZoOnMzlDe9O}q_xfkWMII8gl;;q`}905QxH)WRI2{AxD4Ps9G3}v zm*XP9cRQ{p@Gl&f4ScWT1_S?+Ia+e|c@Q3P;ch0T2y~vS1^@eoedfa9H>C$aq$%eMBeClF6b+;6vGfArBiM|B%9W@prOEWcYq`L zqePSscmg+>&YEs(hHwUxG~6#^xZ6>H`bj?hAuYskH1`Ej=?u@|EjhTZc}rYhC74fd zaf}Pa`ka*vKXMctx}FNGJ1~Ssg}nwJc(_<92Hfc=K`|KPX`;Cc1} zIK3>C)_4f>nIs1pzzZD5Bh?e`fmxW5b$WWMcD#` zr3B{{K|=*F)L9Ho2Xux4yBZk!qeK)1JS0>RAbildJfJV`iU6Iv!0A2iE;x;A=_CR7 za9jrP8IH>Y?(Mh;aJJ)m0#`Ffy>rlmP!ppFTaf|;#LFC7gN&!7c!ON)q4%z zDXox^I~uORSOe#l@lNSd?Nl~APkaW#kFRC-hX@u1=tu~#kZmci>2(F6R2&omqLZm= zF!;bhRD2lp+topZDBy(-qX02nhzeQ{99eDU@UG&mo)N%rNqcC8hJY87Ct6=%>@{g~ z;38uy7eR$u^BrH)aDx;|uS)>tUA|61qeEPHn72A0;DJY5U9&Pm$YD||0#A!ogrNV5 zg8pbl;JLAiw%C0mlw(+lCKX^Gp{4;26{>I;Ls(C+)CO%Apw>(=6d1dx6%v&wU{9fn zU?|T~fG(oIA{w+^0^9w?&~(_I>L@^GJMaq}iWYG#-37ocj>`bX`{K2p>ko@y>q3d3 z0I*r8z@B**7v1c<`M`HME(3VC<1&F?W6lge2(QN|0>9z73}C#NK2ehp+~Zu2#tR^- z)1nfe2-LbyY83#Yc7o%~c$F~yHVO6pVrd%S3qlp(b@(p}6^Om## zVLic-C~TiAwhI8i5!*$u?F;L{v|(G@#bw(zQ`Q z1d`;@pMq$Ow`JM*Ahy5^d!}QM_=-feS1ZQjZ3#UR8($aqzpg*VmgrdxT-DifG^-DJ z5Nes!iop0o6GpK;4~N+UO>DrKY>V1-0mD^76#~L~f|eutLt?uC@H3&N4PcvN#dZPU zWTB=Zf@MM#0J;bQ3o#j~WAxCrnD z$7KRv;#;TpnuohN>KA#NU}_@Hhs977@EkEz1UQhX6go?-rSnwCl};6~hxjZ)7)V%x1sY)> zM|24t5Zy;tM}vt8{Cqc+BbhD{ytWT{HmUEOH0=pruMFZE`B#4uT+3j9=vT30&LuPX@7RB_N$U~%iqUPg(xC^B`G zqi$e$o1@}e0z=D0r3i*x%8TM_;m_}U&b9Q)2CR;=+Qel5AM3bm;4Y5K0LGv5(e~Q& znacHOo&utJg6W6HH_mY0eBfEknY9oC{u)rC5MXSE3n4yAs7w}>f_N3Uk5K`fDz)Oh*^z6^^mvCuS$nk9$_Jb% z)@wtp5Pm0mMQ{W!w0Ht$NDBjl_EaZjEA-Qb4v6O1|HzJ4B&GemkB)3aS`Alj_V0L!g1Na z6C5`fxHZ!@Pp@(z2)mf100#r#?6_>;TO8LD_*Tb7fNytPCh(n(%K*O1aXv8qNS6sP zzAKQ?`P?#^+kl9XhGM*_1jj8fG(!v(03rc2{ey-At6(h~xIzr&1EQ57Z+6g7U~(*B z1IR0l&S0&;5JRn(xb{)rYIf0Hc1Lk|TF!2q-p7>ZY+rac@qguk4&x&5ZatB|1tO~ZqqPsdD2;G7fPn&Ckh z#iU-;fH%Y{Lckwh(~9v!4qk_GMVimBwboJX)fyx!1*o;!QSH_0DJoIan&GJUT0i5W zuDlI<=d?~?JWaTMt-y86(TNbCYe`AG^|v_Nu%2KX;7QwU;%u1@e6`~;fUj{}Ch$#; zivXW=k`0E|*+U+LlbNKxiU6PDxJ=-mIW7Yjf3+@AKcf+MaUj&sfN+!GXbZJ=Nv#4v zIHgrGKBsuJxVwwd2QFhy?_4|xb7K^Nm&YnXSR11Vd{?X@1pHMyoeJPLV-+DBim?bh z>164ceIA5-CbdOi{JlQYnD(;Ji#<@r0ZWC-pUbe`Q7ahU>ZrRJzUrvA7>?(-Xy8s} zINwo~4A(fSy*S5-?E(a)|9G|j(BU(Jy3tXH0Dl&cv=G5eaaRE7f{I$B?mNOZbHsKO z5xBHO5rIof6cG#%cTq$z%~8P|v>Sozn37-wCBXr--?VM}LH~Tyz8$C_k;V=LH^QQTXpqrEe%)+H5CohbCH)d; z3{+x_&u>j&e14#XFslEQy8h5ew7`8sCC2!|M8+2ejN?TISFv%u004i&oLK-Md={e! zJm(Y}icy3xmq~3A`1)8y2)kkwfj@{(nL?0#$0?xZjq5?rcCC2#t)&$0bGrcPtJx`1WG6j_w;|miR z56*PFnk4))n>9TzftBMjfKwfp37qD*2yiFI^#nfFaoNDjnWLF{$b+yVMiF?W<9Y(G za$E#>wc|2@*ElW%c&+1n;H}J=U?6OBirK*19oG|hhvOo^S2->d_!`G$0OK#!>g>ml zUi45Ou15nL5N)R8(Pl2a%xM84m;^_yuzi-)DgYcJR1s`nB2)n&8lT`|2W)qhT2Vms z3!TKnHnNl8ygrK!AR_%EY9(`v#dzQv$rvtLBr1XPZ>Tscv*NSAi)-J>Tirvzx1DOW zX}IhPLAaestq6=i?rRj=^YEs`SqQk6ZP8guyr~2yE(jI16C4ph<$3WH1)MIvih{lZ z7t~?M`6~I2ZT={>^8xe3b}?YRq$#@<{vLE{@k#m{8~v9v4tT88ngs|a%3Iys3Spt> zY)JKB@&|;-%5Ds&J}5@13o0w zv{xB^AXFhBtS1;9LE8mELj`|lo1csAz`h2Cjuw?DV3ANou>G~8lDX+F$iT3IZM2%M zXTZ?AVyFZ`e&wk6O!nZSKBAHjcn(waXn3d|bb zvIK})bZ~L7DZVW*jTr4O0l_c>*^F?)&*ZHhhrlV_tQ%UA)^>!D!K79M#^1^|it(Yr z!)EqC0~YXir&(nhim7ZCrV@-!7#b^v3IKm8R52h7Qo43GL72>5Xb%EdAnnO+1@3UV zjmy-9kjW&~1w^n$&sK5Y2zRQ)76nB66Rf_d4Y*hw&H=1sit=)Q(=#j}X}T`(nUd2vE^!uJ%B^jcR_6nv zi|OYJz`d-cyo*Au5I&U#%tiyUB-s4E42L)h5M53V08fxe^AS9HpR{bq?i(rW;UWM$ zTc|R?K8~8e@JB}>&&XrQD+@+Y=6qX(5%Pf;niVuO3nK)rq&-^DcHnsDn~3%CSFv3j zv|S9_pGbZK^CrQ891^fhZ0Ex^Mird~Bgivcuf!(+hGIrB3}Kjtyu>3G*8j`sgmsK7 zT5s=flJx^!Wm%ZRc(H7Jym-&ySZ`ak)p41?uRAUR z{D$Lt0{@@mvVq@p++g6hn4`|2hkaOh-;oDA2-o$nSs=~NLJ+QZe}6w&>kOflTgzD z*RXloS?pUAZ$H6dK+t-@*&Izj-X_?uqSnb0Kok&dp&e7kPdB9mO^K<-zm>VlJ=jYx z@s$iygS%3$HngdwC8K%`8aJo=Yq#Q|1a8@&$ zZQdug%K$M*Xs;AB6xb`xWdl`WC?60bnhvF5=s^iGAJ7Fk-DTS%*uI=?>q`KL@^SGu zZ3P>}u%o><{K2@c8E+l0d7Z(XqgNi_Q~4FHG_QAsAViqdiopG172ET$LCY6W+Q>|-o% z^|%54h&i+Whw%3p#rUz5!(|P;r4<)$5g$j%k_^J|>DBvNX0v!;n zRf1aYNv%MV8oB7dgmW#c{1@MNh4SaDs#6X8mE$si*Y>peHG6mn7c)tfGl17Q&X4aB zIIUnE>XIsks~pu{tvRAnfLhBO6<@0-7dc-u+f#ux+WQ87A;mkS@z9q}6!3QTq1z99 zz2h>0`<-Q7o8&?0&m>jO1U|=c8Nl>sbIeCO23{F!5W*^_mfZZSgw7kO*nm|<0P+%_qf(^YV zapwnv3|xM~%f1(KN_5_V|LwR8V6T_Wl-2`2-f5dP@MeIA5AF-g5R82Dw!Wdr}&aXo=w zb6f=Y4aa2yzv;LP;6sk{fxGsNX-a#&l*AROBLU%?4(HzDQkY6`eFoiKE`|yKkrbL{ zFqG2A212J5fX;Sc<^^p>Vdz9L6n%u@SB{#MW!+rQTY93f182jz3;b+e$4$7{H6=c6 zJ-G-?q;>#Sa#4!cNN->2*1C@6);K;GNTA)Lxyn@D(rF7Iyy@$t%@8gTy<$LkrRzd) zn86t!Yk)|GvG!AK4SN@P@OXoGEQ5L2qSKdnOMO|}1vMvFD{!cLGWTas-lls?z5YGy zjn55~;9<;Hv{N1*#U~sE242h@8qlupGz;9_Sz(9iK<>JEf;1V{Z02q#(%*f}izOTb~EpZ~-vukhBV2S@9? zGe({iIBBnE4TM7@0uY@d2RsO! z9l6hga4eJh=n=S!kyP98M;gw;cw`jP92rR)VAHq6c!YTkn zExI!8TRZN%h1EA?TaI4#a3Bf7W=9@Of^cd-t4aG2z-~-Y<=2xS^mcj^I4_fUOL~Wr zAh@Iz0b)#$3*_-z&L=G$fE^{ZMFSX)QSNE-UAXZ zf}`F?Xs)-W1IC1QASoEybcBXD$Xa_*{G6vnigy(KvDW5R$ZKRqY`dx%0%iv7@c~be z89{mwFf(YU1(+iFqGK>X z*9daaUL&v;(p$}ZV6=fw3ekcSC9-@3yPGE|X(6uv$jY3LxDW(s#fNYq=dqr*G)w?d zi}HV6b9}wmS^qDt9^fZJ6`jT-@*LjMQZR^N4sVs$5Nd@m(dorI{2NWYQ3E$MqvlwNYelFP0?Z{i%=~3sT>1#_7`6dNlvKb4(!v73Mn?f+rcy<8 z>s!*(1$BdMa+dLyv;eUj>nP$gh)AF2h|Ro$;5^QPN7$qvO94;dh2K<#0G|ndRE2eP zTH@psB01;-T7v+Q5uy;+Cz6T4L2`&wnI6_wr8UEW*-!beYJJLW?E@PE9q*nA0!>=6$coZA*sdY=eQ_tzq3Z^rc zBoj|`e4F0kWG1oAL~VjjAMsl-fZ_R$0-P>XQIsKuPl6+XH`xE#QY+ezVWFb{E1A;G ztTW97Q_CgE#3yLxgWRpp^EOo<9;KWfTpRWU6<_~f7561nyeZD2&M?AwgUe`ie~ZZE z$h0_>;W3T^#4egDV*0(n9j)yHzvaf)Qa(U)2Wo*Khe(kuGs_{sGcAGe*hj3F03Kk< zRE6+{(~BQ|u#SZ2;9ucPxa1VXSNnuj{w4V7a^P1H>2WXUml@wp5O z9R)aDsDdcN3mp~TO!V#9qEgbI;Uq@^Rx;&#D=>eVspf4v&8*-l&?r-(0C1I1#rqg0 z^MNbP4!}$~mThWog)r3VVOrcFK?kNsHCuNMOW+U&X>tHM+a<8QS!|cYr!i=|6t=&X z_LTy{hw@e?YD_5{-X;!9;~m2Kn{1sX?51W2--^pwfX*d7N&=ye2bM- zIryei2*B=QsSwa5un-U@98?ia+#*dZJb@2j=Cz>6Ibdt-&Rm~9Kkbs#JH=2j zy89!h!u02ByKqNzlMX2WL~m=gc^(DMblxXN&D*Y4P&hQ>b-N*20N5wnq%|#nU zrQ`~Rt&RfR$CO@k?4c2u-*HJhheq2unGfI0(8dfy;;3J{{cvBKiauL{JOS{ZA^T@!=r($bjycdX57g zXvG2SAeY7p0MTmYEo}~DJwcy7#@4@=*3OO(3Qcmkowb{_T|xqfLcvV`$^q+3Tv;$o0Gu~2S0bRSM{j{OkPqBeF#LzT>+>R7F!)c30lqMV2VQWWJJM9*?`21^0^vJu?^IfOP@;vx4?#!G1{WuMV|B zfK$5m6?92@Kkc#@E{|pVbR+=iuI?7&Nb*hInI|}2fFTJuct{ac2_zjq4h|B1Sb{B}WilZ|}-VorC$W6`g z39E*L(20KwGSwl#Z-R9K9{ziRqDat}937pr03s_yA+m2I8-ZDVCmZ;s7%Gt-=H!QI zPQ{N%;+ioeH%li?1H{D8RpUPwaewUOZKC8u=l85bCn0}g_zy>Y$}ov@Oj_~I>R9Dj zsa5hK!@oKT&|^dHU>-~=m$Y;IaTo`|Y%@`tpwmnI7W88{&QX99h034AaF(Oun~8bb zQ&ftx7@p@Sz!Ii>S}N`3ATVWI(#~~~uH4gA(&K@<_b_cym-`?zAFrCjBPisD^RT2Ji1}sFg)T9iVGi zPOC~&$+UBGRL%JD_1^Y2RPC5ilf9Q|$~&!kqRQ&MYtD-$YbTb}d*vfzsfOGs1CK(23@cF68ObjYUkKfh=<@xh&3GytrloO&k;8d?w9E zE32&`Q{GDEnrf;R)_Pa4q$8;H?qF#_O?7>PiK^CnjyVpi);rurN$8HshP$A0ULE~q z97x8J)BscUfoc)0tW65lz94u;Cl2p}@Y7e3kAqxHVJW?6NaUHKcl`b4~Uc_OyfyO(KN7-$|<)WG{0r�Q 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 y#1TkHI~y -# endif - - /* Need the time information for converting tIME chunks, it - * defines struct tm: - */ -# ifdef PNG_CONVERT_tIME_SUPPORTED - /* "time.h" functions are not supported on all operating systems */ -# include -# endif -# endif - -/* Machine specific configuration. */ -# include "pngconf.h" -#endif - -/* - * Added at libpng-1.2.8 - * - * Ref MSDN: Private as priority over Special - * VS_FF_PRIVATEBUILD File *was not* built using standard release - * procedures. If this value is given, the StringFileInfo block must - * contain a PrivateBuild string. - * - * VS_FF_SPECIALBUILD File *was* built by the original company using - * standard release procedures but is a variation of the standard - * file of the same version number. If this value is given, the - * StringFileInfo block must contain a SpecialBuild string. - */ - -#ifdef PNG_USER_PRIVATEBUILD /* From pnglibconf.h */ -# define PNG_LIBPNG_BUILD_TYPE \ - (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE) -#else -# ifdef PNG_LIBPNG_SPECIALBUILD -# define PNG_LIBPNG_BUILD_TYPE \ - (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL) -# else -# define PNG_LIBPNG_BUILD_TYPE (PNG_LIBPNG_BUILD_BASE_TYPE) -# endif -#endif - -#ifndef PNG_VERSION_INFO_ONLY - -/* Inhibit C++ name-mangling for libpng functions but not for system calls. */ -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Version information for C files, stored in png.c. This had better match - * the version above. - */ -#define png_libpng_ver png_get_header_ver(NULL) - -/* This file is arranged in several sections: - * - * 1. Any configuration options that can be specified by for the application - * code when it is built. (Build time configuration is in pnglibconf.h) - * 2. Type definitions (base types are defined in pngconf.h), structure - * definitions. - * 3. Exported library functions. - * - * The library source code has additional files (principally pngpriv.h) that - * allow configuration of the library. - */ -/* Section 1: run time configuration - * See pnglibconf.h for build time configuration - * - * Run time configuration allows the application to choose between - * implementations of certain arithmetic APIs. The default is set - * at build time and recorded in pnglibconf.h, but it is safe to - * override these (and only these) settings. Note that this won't - * change what the library does, only application code, and the - * settings can (and probably should) be made on a per-file basis - * by setting the #defines before including png.h - * - * Use macros to read integers from PNG data or use the exported - * functions? - * PNG_USE_READ_MACROS: use the macros (see below) Note that - * the macros evaluate their argument multiple times. - * PNG_NO_USE_READ_MACROS: call the relevant library function. - * - * Use the alternative algorithm for compositing alpha samples that - * does not use division? - * PNG_READ_COMPOSITE_NODIV_SUPPORTED: use the 'no division' - * algorithm. - * PNG_NO_READ_COMPOSITE_NODIV: use the 'division' algorithm. - * - * How to handle benign errors if PNG_ALLOW_BENIGN_ERRORS is - * false? - * PNG_ALLOW_BENIGN_ERRORS: map calls to the benign error - * APIs to png_warning. - * Otherwise the calls are mapped to png_error. - */ - -/* Section 2: type definitions, including structures and compile time - * constants. - * See pngconf.h for base types that vary by machine/system - */ - -/* This triggers a compiler error in png.c, if png.c and png.h - * do not agree upon the version number. - */ -typedef char* png_libpng_version_1_5_2; - -/* Three color definitions. The order of the red, green, and blue, (and the - * exact size) is not important, although the size of the fields need to - * be png_byte or png_uint_16 (as defined below). - */ -typedef struct png_color_struct -{ - png_byte red; - png_byte green; - png_byte blue; -} png_color; -typedef png_color FAR * png_colorp; -typedef PNG_CONST png_color FAR * png_const_colorp; -typedef png_color FAR * FAR * png_colorpp; - -typedef struct png_color_16_struct -{ - png_byte index; /* used for palette files */ - png_uint_16 red; /* for use in red green blue files */ - png_uint_16 green; - png_uint_16 blue; - png_uint_16 gray; /* for use in grayscale files */ -} png_color_16; -typedef png_color_16 FAR * png_color_16p; -typedef PNG_CONST png_color_16 FAR * png_const_color_16p; -typedef png_color_16 FAR * FAR * png_color_16pp; - -typedef struct png_color_8_struct -{ - png_byte red; /* for use in red green blue files */ - png_byte green; - png_byte blue; - png_byte gray; /* for use in grayscale files */ - png_byte alpha; /* for alpha channel files */ -} png_color_8; -typedef png_color_8 FAR * png_color_8p; -typedef PNG_CONST png_color_8 FAR * png_const_color_8p; -typedef png_color_8 FAR * FAR * png_color_8pp; - -/* - * The following two structures are used for the in-core representation - * of sPLT chunks. - */ -typedef struct png_sPLT_entry_struct -{ - png_uint_16 red; - png_uint_16 green; - png_uint_16 blue; - png_uint_16 alpha; - png_uint_16 frequency; -} png_sPLT_entry; -typedef png_sPLT_entry FAR * png_sPLT_entryp; -typedef PNG_CONST png_sPLT_entry FAR * png_const_sPLT_entryp; -typedef png_sPLT_entry FAR * FAR * png_sPLT_entrypp; - -/* When the depth of the sPLT palette is 8 bits, the color and alpha samples - * occupy the LSB of their respective members, and the MSB of each member - * is zero-filled. The frequency member always occupies the full 16 bits. - */ - -typedef struct png_sPLT_struct -{ - png_charp name; /* palette name */ - png_byte depth; /* depth of palette samples */ - png_sPLT_entryp entries; /* palette entries */ - png_int_32 nentries; /* number of palette entries */ -} png_sPLT_t; -typedef png_sPLT_t FAR * png_sPLT_tp; -typedef PNG_CONST png_sPLT_t FAR * png_const_sPLT_tp; -typedef png_sPLT_t FAR * FAR * png_sPLT_tpp; - -#ifdef PNG_TEXT_SUPPORTED -/* png_text holds the contents of a text/ztxt/itxt chunk in a PNG file, - * and whether that contents is compressed or not. The "key" field - * points to a regular zero-terminated C string. The "text", "lang", and - * "lang_key" fields can be regular C strings, empty strings, or NULL pointers. - * However, the * structure returned by png_get_text() will always contain - * regular zero-terminated C strings (possibly empty), never NULL pointers, - * so they can be safely used in printf() and other string-handling functions. - */ -typedef struct png_text_struct -{ - int compression; /* compression value: - -1: tEXt, none - 0: zTXt, deflate - 1: iTXt, none - 2: iTXt, deflate */ - png_charp key; /* keyword, 1-79 character description of "text" */ - png_charp text; /* comment, may be an empty string (ie "") - or a NULL pointer */ - png_size_t text_length; /* length of the text string */ - png_size_t itxt_length; /* length of the itxt string */ - png_charp lang; /* language code, 0-79 characters - or a NULL pointer */ - png_charp lang_key; /* keyword translated UTF-8 string, 0 or more - chars or a NULL pointer */ -} png_text; -typedef png_text FAR * png_textp; -typedef PNG_CONST png_text FAR * png_const_textp; -typedef png_text FAR * FAR * png_textpp; -#endif - -/* Supported compression types for text in PNG files (tEXt, and zTXt). - * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed. */ -#define PNG_TEXT_COMPRESSION_NONE_WR -3 -#define PNG_TEXT_COMPRESSION_zTXt_WR -2 -#define PNG_TEXT_COMPRESSION_NONE -1 -#define PNG_TEXT_COMPRESSION_zTXt 0 -#define PNG_ITXT_COMPRESSION_NONE 1 -#define PNG_ITXT_COMPRESSION_zTXt 2 -#define PNG_TEXT_COMPRESSION_LAST 3 /* Not a valid value */ - -/* png_time is a way to hold the time in an machine independent way. - * Two conversions are provided, both from time_t and struct tm. There - * is no portable way to convert to either of these structures, as far - * as I know. If you know of a portable way, send it to me. As a side - * note - PNG has always been Year 2000 compliant! - */ -typedef struct png_time_struct -{ - png_uint_16 year; /* full year, as in, 1995 */ - png_byte month; /* month of year, 1 - 12 */ - png_byte day; /* day of month, 1 - 31 */ - png_byte hour; /* hour of day, 0 - 23 */ - png_byte minute; /* minute of hour, 0 - 59 */ - png_byte second; /* second of minute, 0 - 60 (for leap seconds) */ -} png_time; -typedef png_time FAR * png_timep; -typedef PNG_CONST png_time FAR * png_const_timep; -typedef png_time FAR * FAR * png_timepp; - -#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \ - defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED) -/* png_unknown_chunk is a structure to hold queued chunks for which there is - * no specific support. The idea is that we can use this to queue - * up private chunks for output even though the library doesn't actually - * know about their semantics. - */ -typedef struct png_unknown_chunk_t -{ - png_byte name[5]; - png_byte *data; - png_size_t size; - - /* libpng-using applications should NOT directly modify this byte. */ - png_byte location; /* mode of operation at read time */ -} -png_unknown_chunk; -typedef png_unknown_chunk FAR * png_unknown_chunkp; -typedef PNG_CONST png_unknown_chunk FAR * png_const_unknown_chunkp; -typedef png_unknown_chunk FAR * FAR * png_unknown_chunkpp; -#endif - -typedef struct png_info_def png_info; -typedef png_info FAR * png_infop; -typedef PNG_CONST png_info FAR * png_const_infop; -typedef png_info FAR * FAR * png_infopp; - -/* Maximum positive integer used in PNG is (2^31)-1 */ -#define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL) -#define PNG_UINT_32_MAX ((png_uint_32)(-1)) -#define PNG_SIZE_MAX ((png_size_t)(-1)) - -/* These are constants for fixed point values encoded in the - * PNG specification manner (x100000) - */ -#define PNG_FP_1 100000 -#define PNG_FP_HALF 50000 - -/* These describe the color_type field in png_info. */ -/* color type masks */ -#define PNG_COLOR_MASK_PALETTE 1 -#define PNG_COLOR_MASK_COLOR 2 -#define PNG_COLOR_MASK_ALPHA 4 - -/* color types. Note that not all combinations are legal */ -#define PNG_COLOR_TYPE_GRAY 0 -#define PNG_COLOR_TYPE_PALETTE (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE) -#define PNG_COLOR_TYPE_RGB (PNG_COLOR_MASK_COLOR) -#define PNG_COLOR_TYPE_RGB_ALPHA (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA) -#define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA) -/* aliases */ -#define PNG_COLOR_TYPE_RGBA PNG_COLOR_TYPE_RGB_ALPHA -#define PNG_COLOR_TYPE_GA PNG_COLOR_TYPE_GRAY_ALPHA - -/* This is for compression type. PNG 1.0-1.2 only define the single type. */ -#define PNG_COMPRESSION_TYPE_BASE 0 /* Deflate method 8, 32K window */ -#define PNG_COMPRESSION_TYPE_DEFAULT PNG_COMPRESSION_TYPE_BASE - -/* This is for filter type. PNG 1.0-1.2 only define the single type. */ -#define PNG_FILTER_TYPE_BASE 0 /* Single row per-byte filtering */ -#define PNG_INTRAPIXEL_DIFFERENCING 64 /* Used only in MNG datastreams */ -#define PNG_FILTER_TYPE_DEFAULT PNG_FILTER_TYPE_BASE - -/* These are for the interlacing type. These values should NOT be changed. */ -#define PNG_INTERLACE_NONE 0 /* Non-interlaced image */ -#define PNG_INTERLACE_ADAM7 1 /* Adam7 interlacing */ -#define PNG_INTERLACE_LAST 2 /* Not a valid value */ - -/* These are for the oFFs chunk. These values should NOT be changed. */ -#define PNG_OFFSET_PIXEL 0 /* Offset in pixels */ -#define PNG_OFFSET_MICROMETER 1 /* Offset in micrometers (1/10^6 meter) */ -#define PNG_OFFSET_LAST 2 /* Not a valid value */ - -/* These are for the pCAL chunk. These values should NOT be changed. */ -#define PNG_EQUATION_LINEAR 0 /* Linear transformation */ -#define PNG_EQUATION_BASE_E 1 /* Exponential base e transform */ -#define PNG_EQUATION_ARBITRARY 2 /* Arbitrary base exponential transform */ -#define PNG_EQUATION_HYPERBOLIC 3 /* Hyperbolic sine transformation */ -#define PNG_EQUATION_LAST 4 /* Not a valid value */ - -/* These are for the sCAL chunk. These values should NOT be changed. */ -#define PNG_SCALE_UNKNOWN 0 /* unknown unit (image scale) */ -#define PNG_SCALE_METER 1 /* meters per pixel */ -#define PNG_SCALE_RADIAN 2 /* radians per pixel */ -#define PNG_SCALE_LAST 3 /* Not a valid value */ - -/* These are for the pHYs chunk. These values should NOT be changed. */ -#define PNG_RESOLUTION_UNKNOWN 0 /* pixels/unknown unit (aspect ratio) */ -#define PNG_RESOLUTION_METER 1 /* pixels/meter */ -#define PNG_RESOLUTION_LAST 2 /* Not a valid value */ - -/* These are for the sRGB chunk. These values should NOT be changed. */ -#define PNG_sRGB_INTENT_PERCEPTUAL 0 -#define PNG_sRGB_INTENT_RELATIVE 1 -#define PNG_sRGB_INTENT_SATURATION 2 -#define PNG_sRGB_INTENT_ABSOLUTE 3 -#define PNG_sRGB_INTENT_LAST 4 /* Not a valid value */ - -/* This is for text chunks */ -#define PNG_KEYWORD_MAX_LENGTH 79 - -/* Maximum number of entries in PLTE/sPLT/tRNS arrays */ -#define PNG_MAX_PALETTE_LENGTH 256 - -/* These determine if an ancillary chunk's data has been successfully read - * from the PNG header, or if the application has filled in the corresponding - * data in the info_struct to be written into the output file. The values - * of the PNG_INFO_ defines should NOT be changed. - */ -#define PNG_INFO_gAMA 0x0001 -#define PNG_INFO_sBIT 0x0002 -#define PNG_INFO_cHRM 0x0004 -#define PNG_INFO_PLTE 0x0008 -#define PNG_INFO_tRNS 0x0010 -#define PNG_INFO_bKGD 0x0020 -#define PNG_INFO_hIST 0x0040 -#define PNG_INFO_pHYs 0x0080 -#define PNG_INFO_oFFs 0x0100 -#define PNG_INFO_tIME 0x0200 -#define PNG_INFO_pCAL 0x0400 -#define PNG_INFO_sRGB 0x0800 /* GR-P, 0.96a */ -#define PNG_INFO_iCCP 0x1000 /* ESR, 1.0.6 */ -#define PNG_INFO_sPLT 0x2000 /* ESR, 1.0.6 */ -#define PNG_INFO_sCAL 0x4000 /* ESR, 1.0.6 */ -#define PNG_INFO_IDAT 0x8000L /* ESR, 1.0.6 */ - -/* This is used for the transformation routines, as some of them - * change these values for the row. It also should enable using - * the routines for other purposes. - */ -typedef struct png_row_info_struct -{ - png_uint_32 width; /* width of row */ - png_size_t rowbytes; /* number of bytes in row */ - png_byte color_type; /* color type of row */ - png_byte bit_depth; /* bit depth of row */ - png_byte channels; /* number of channels (1, 2, 3, or 4) */ - png_byte pixel_depth; /* bits per pixel (depth * channels) */ -} png_row_info; - -typedef png_row_info FAR * png_row_infop; -typedef png_row_info FAR * FAR * png_row_infopp; - -/* These are the function types for the I/O functions and for the functions - * that allow the user to override the default I/O functions with his or her - * own. The png_error_ptr type should match that of user-supplied warning - * and error functions, while the png_rw_ptr type should match that of the - * user read/write data functions. Note that the 'write' function must not - * modify the buffer it is passed. The 'read' function, on the other hand, is - * expected to return the read data in the buffer. - */ -typedef struct png_struct_def png_struct; -typedef PNG_CONST png_struct FAR * png_const_structp; -typedef png_struct FAR * png_structp; - -typedef PNG_CALLBACK(void, *png_error_ptr, (png_structp, png_const_charp)); -typedef PNG_CALLBACK(void, *png_rw_ptr, (png_structp, png_bytep, png_size_t)); -typedef PNG_CALLBACK(void, *png_flush_ptr, (png_structp)); -typedef PNG_CALLBACK(void, *png_read_status_ptr, (png_structp, png_uint_32, - int)); -typedef PNG_CALLBACK(void, *png_write_status_ptr, (png_structp, png_uint_32, - int)); - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -typedef PNG_CALLBACK(void, *png_progressive_info_ptr, (png_structp, png_infop)); -typedef PNG_CALLBACK(void, *png_progressive_end_ptr, (png_structp, png_infop)); - -/* The following callback receives png_uint_32 row_number, int pass for the - * png_bytep data of the row. When transforming an interlaced image the - * row number is the row number within the sub-image of the interlace pass, so - * the value will increase to the height of the sub-image (not the full image) - * then reset to 0 for the next pass. - * - * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to - * find the output pixel (x,y) given an interlaced sub-image pixel - * (row,col,pass). (See below for these macros.) - */ -typedef PNG_CALLBACK(void, *png_progressive_row_ptr, (png_structp, png_bytep, - png_uint_32, int)); -#endif - -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) -typedef PNG_CALLBACK(void, *png_user_transform_ptr, (png_structp, png_row_infop, - png_bytep)); -#endif - -#ifdef PNG_USER_CHUNKS_SUPPORTED -typedef PNG_CALLBACK(int, *png_user_chunk_ptr, (png_structp, - png_unknown_chunkp)); -#endif -#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED -typedef PNG_CALLBACK(void, *png_unknown_chunk_ptr, (png_structp)); -#endif - -#ifdef PNG_SETJMP_SUPPORTED -/* This must match the function definition in , and the - * application must include this before png.h to obtain the definition - * of jmp_buf. The function is required to be PNG_NORETURN. (Note that - * PNG_PTR_NORETURN is used here because current versions of the Microsoft - * C compiler do not support the PNG_NORETURN attribute on a pointer.) - * - * If you get a type warning from the compiler when linking against this line - * then your compiler has 'longjmp' that does not match the requirements of the - * compiler that built libpng. You will have to write a wrapper function for - * your compiler's longjmp and call png_set_longjmp_fn directly (not via the - * png_jmpbuf macro.) - * - * If you get a warning here while building the library you will need to make - * changes to ensure that pnglibconf.h records the calling convention used by - * your compiler. This may be very difficult - try using a different compiler - * to build the library! - */ -typedef PNG_FUNCTION(void, (PNGCAPI *png_longjmp_ptr), PNGARG((jmp_buf, int)), - PNG_PTR_NORETURN); -#endif - -/* Transform masks for the high-level interface */ -#define PNG_TRANSFORM_IDENTITY 0x0000 /* read and write */ -#define PNG_TRANSFORM_STRIP_16 0x0001 /* read only */ -#define PNG_TRANSFORM_STRIP_ALPHA 0x0002 /* read only */ -#define PNG_TRANSFORM_PACKING 0x0004 /* read and write */ -#define PNG_TRANSFORM_PACKSWAP 0x0008 /* read and write */ -#define PNG_TRANSFORM_EXPAND 0x0010 /* read only */ -#define PNG_TRANSFORM_INVERT_MONO 0x0020 /* read and write */ -#define PNG_TRANSFORM_SHIFT 0x0040 /* read and write */ -#define PNG_TRANSFORM_BGR 0x0080 /* read and write */ -#define PNG_TRANSFORM_SWAP_ALPHA 0x0100 /* read and write */ -#define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */ -#define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */ -#define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* write only */ -/* Added to libpng-1.2.34 */ -#define PNG_TRANSFORM_STRIP_FILLER_BEFORE PNG_TRANSFORM_STRIP_FILLER -#define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */ -/* Added to libpng-1.4.0 */ -#define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 /* read only */ - -/* Flags for MNG supported features */ -#define PNG_FLAG_MNG_EMPTY_PLTE 0x01 -#define PNG_FLAG_MNG_FILTER_64 0x04 -#define PNG_ALL_MNG_FEATURES 0x05 - -/* NOTE: prior to 1.5 these functions had no 'API' style declaration, - * this allowed the zlib default functions to be used on Windows - * platforms. In 1.5 the zlib default malloc (which just calls malloc and - * ignores the first argument) should be completely compatible with the - * following. - */ -typedef PNG_CALLBACK(png_voidp, *png_malloc_ptr, (png_structp, - png_alloc_size_t)); -typedef PNG_CALLBACK(void, *png_free_ptr, (png_structp, png_voidp)); - -typedef png_struct FAR * FAR * png_structpp; - -/* Section 3: exported functions - * Here are the function definitions most commonly used. This is not - * the place to find out how to use libpng. See libpng-manual.txt for the - * full explanation, see example.c for the summary. This just provides - * a simple one line description of the use of each function. - * - * The PNG_EXPORT() and PNG_EXPORTA() macros used below are defined in - * pngconf.h and in the *.dfn files in the scripts directory. - * - * PNG_EXPORT(ordinal, type, name, (args)); - * - * ordinal: ordinal that is used while building - * *.def files. The ordinal value is only - * relevant when preprocessing png.h with - * the *.dfn files for building symbol table - * entries, and are removed by pngconf.h. - * type: return type of the function - * name: function name - * args: function arguments, with types - * - * When we wish to append attributes to a function prototype we use - * the PNG_EXPORTA() macro instead. - * - * PNG_EXPORTA(ordinal, type, name, (args), attributes); - * - * ordinal, type, name, and args: same as in PNG_EXPORT(). - * attributes: function attributes - */ - -/* Returns the version number of the library */ -PNG_EXPORT(1, png_uint_32, png_access_version_number, (void)); - -/* Tell lib we have already handled the first magic bytes. - * Handling more than 8 bytes from the beginning of the file is an error. - */ -PNG_EXPORT(2, void, png_set_sig_bytes, (png_structp png_ptr, int num_bytes)); - -/* Check sig[start] through sig[start + num_to_check - 1] to see if it's a - * PNG file. Returns zero if the supplied bytes match the 8-byte PNG - * signature, and non-zero otherwise. Having num_to_check == 0 or - * start > 7 will always fail (ie return non-zero). - */ -PNG_EXPORT(3, int, png_sig_cmp, (png_const_bytep sig, png_size_t start, - png_size_t num_to_check)); - -/* Simple signature checking function. This is the same as calling - * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n). - */ -#define png_check_sig(sig, n) !png_sig_cmp((sig), 0, (n)) - -/* Allocate and initialize png_ptr struct for reading, and any other memory. */ -PNG_EXPORTA(4, png_structp, png_create_read_struct, - (png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn), - PNG_ALLOCATED); - -/* Allocate and initialize png_ptr struct for writing, and any other memory */ -PNG_EXPORTA(5, png_structp, png_create_write_struct, - (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warn_fn), - PNG_ALLOCATED); - -PNG_EXPORT(6, png_size_t, png_get_compression_buffer_size, - (png_const_structp png_ptr)); - -PNG_EXPORT(7, void, png_set_compression_buffer_size, (png_structp png_ptr, - png_size_t size)); - -/* Moved from pngconf.h in 1.4.0 and modified to ensure setjmp/longjmp - * match up. - */ -#ifdef PNG_SETJMP_SUPPORTED -/* This function returns the jmp_buf built in to *png_ptr. It must be - * supplied with an appropriate 'longjmp' function to use on that jmp_buf - * unless the default error function is overridden in which case NULL is - * acceptable. The size of the jmp_buf is checked against the actual size - * allocated by the library - the call will return NULL on a mismatch - * indicating an ABI mismatch. - */ -PNG_EXPORT(8, jmp_buf*, png_set_longjmp_fn, (png_structp png_ptr, - png_longjmp_ptr longjmp_fn, size_t jmp_buf_size)); -# define png_jmpbuf(png_ptr) \ - (*png_set_longjmp_fn((png_ptr), longjmp, sizeof (jmp_buf))) -#else -# define png_jmpbuf(png_ptr) \ - (LIBPNG_WAS_COMPILED_WITH__PNG_NO_SETJMP) -#endif -/* This function should be used by libpng applications in place of - * longjmp(png_ptr->jmpbuf, val). If longjmp_fn() has been set, it - * will use it; otherwise it will call PNG_ABORT(). This function was - * added in libpng-1.5.0. - */ -PNG_EXPORTA(9, void, png_longjmp, (png_structp png_ptr, int val), - PNG_NORETURN); - -#ifdef PNG_READ_SUPPORTED -/* Reset the compression stream */ -PNG_EXPORT(10, int, png_reset_zstream, (png_structp png_ptr)); -#endif - -/* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */ -#ifdef PNG_USER_MEM_SUPPORTED -PNG_EXPORTA(11, png_structp, png_create_read_struct_2, - (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warn_fn, - png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), - PNG_ALLOCATED); -PNG_EXPORTA(12, png_structp, png_create_write_struct_2, - (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warn_fn, - png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), - PNG_ALLOCATED); -#endif - -/* Write the PNG file signature. */ -PNG_EXPORT(13, void, png_write_sig, (png_structp png_ptr)); - -/* Write a PNG chunk - size, type, (optional) data, CRC. */ -PNG_EXPORT(14, void, png_write_chunk, (png_structp png_ptr, png_const_bytep - chunk_name, png_const_bytep data, png_size_t length)); - -/* Write the start of a PNG chunk - length and chunk name. */ -PNG_EXPORT(15, void, png_write_chunk_start, (png_structp png_ptr, - png_const_bytep chunk_name, png_uint_32 length)); - -/* Write the data of a PNG chunk started with png_write_chunk_start(). */ -PNG_EXPORT(16, void, png_write_chunk_data, (png_structp png_ptr, - png_const_bytep data, png_size_t length)); - -/* Finish a chunk started with png_write_chunk_start() (includes CRC). */ -PNG_EXPORT(17, void, png_write_chunk_end, (png_structp png_ptr)); - -/* Allocate and initialize the info structure */ -PNG_EXPORTA(18, png_infop, png_create_info_struct, (png_structp png_ptr), - PNG_ALLOCATED); - -PNG_EXPORT(19, void, png_info_init_3, (png_infopp info_ptr, - png_size_t png_info_struct_size)); - -/* Writes all the PNG information before the image. */ -PNG_EXPORT(20, void, png_write_info_before_PLTE, - (png_structp png_ptr, png_infop info_ptr)); -PNG_EXPORT(21, void, png_write_info, - (png_structp png_ptr, png_infop info_ptr)); - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the information before the actual image data. */ -PNG_EXPORT(22, void, png_read_info, - (png_structp png_ptr, png_infop info_ptr)); -#endif - -#ifdef PNG_TIME_RFC1123_SUPPORTED -PNG_EXPORT(23, png_const_charp, png_convert_to_rfc1123, - (png_structp png_ptr, - png_const_timep ptime)); -#endif - -#ifdef PNG_CONVERT_tIME_SUPPORTED -/* Convert from a struct tm to png_time */ -PNG_EXPORT(24, void, png_convert_from_struct_tm, (png_timep ptime, - PNG_CONST struct tm FAR * ttime)); - -/* Convert from time_t to png_time. Uses gmtime() */ -PNG_EXPORT(25, void, png_convert_from_time_t, - (png_timep ptime, time_t ttime)); -#endif /* PNG_CONVERT_tIME_SUPPORTED */ - -#ifdef PNG_READ_EXPAND_SUPPORTED -/* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */ -PNG_EXPORT(26, void, png_set_expand, (png_structp png_ptr)); -PNG_EXPORT(27, void, png_set_expand_gray_1_2_4_to_8, (png_structp png_ptr)); -PNG_EXPORT(28, void, png_set_palette_to_rgb, (png_structp png_ptr)); -PNG_EXPORT(29, void, png_set_tRNS_to_alpha, (png_structp png_ptr)); -#endif - -#ifdef PNG_READ_EXPAND_16_SUPPORTED -/* Expand to 16 bit channels, forces conversion of palette to RGB and expansion - * of a tRNS chunk if present. - */ -PNG_EXPORT(221, void, png_set_expand_16, (png_structp png_ptr)); -#endif - -#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) -/* Use blue, green, red order for pixels. */ -PNG_EXPORT(30, void, png_set_bgr, (png_structp png_ptr)); -#endif - -#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED -/* Expand the grayscale to 24-bit RGB if necessary. */ -PNG_EXPORT(31, void, png_set_gray_to_rgb, (png_structp png_ptr)); -#endif - -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED -/* Reduce RGB to grayscale. */ -PNG_FP_EXPORT(32, void, png_set_rgb_to_gray, (png_structp png_ptr, - int error_action, double red, double green)); -PNG_FIXED_EXPORT(33, void, png_set_rgb_to_gray_fixed, (png_structp png_ptr, - int error_action, png_fixed_point red, png_fixed_point green)); - -PNG_EXPORT(34, png_byte, png_get_rgb_to_gray_status, (png_const_structp - png_ptr)); -#endif - -PNG_EXPORT(35, void, png_build_grayscale_palette, (int bit_depth, - png_colorp palette)); - -#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED -PNG_EXPORT(36, void, png_set_strip_alpha, (png_structp png_ptr)); -#endif - -#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) -PNG_EXPORT(37, void, png_set_swap_alpha, (png_structp png_ptr)); -#endif - -#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) -PNG_EXPORT(38, void, png_set_invert_alpha, (png_structp png_ptr)); -#endif - -#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) -/* Add a filler byte to 8-bit Gray or 24-bit RGB images. */ -PNG_EXPORT(39, void, png_set_filler, (png_structp png_ptr, png_uint_32 filler, - int flags)); -/* The values of the PNG_FILLER_ defines should NOT be changed */ -# define PNG_FILLER_BEFORE 0 -# define PNG_FILLER_AFTER 1 -/* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */ -PNG_EXPORT(40, void, png_set_add_alpha, - (png_structp png_ptr, png_uint_32 filler, - int flags)); -#endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */ - -#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) -/* Swap bytes in 16-bit depth files. */ -PNG_EXPORT(41, void, png_set_swap, (png_structp png_ptr)); -#endif - -#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) -/* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */ -PNG_EXPORT(42, void, png_set_packing, (png_structp png_ptr)); -#endif - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \ - defined(PNG_WRITE_PACKSWAP_SUPPORTED) -/* Swap packing order of pixels in bytes. */ -PNG_EXPORT(43, void, png_set_packswap, (png_structp png_ptr)); -#endif - -#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) -/* Converts files to legal bit depths. */ -PNG_EXPORT(44, void, png_set_shift, (png_structp png_ptr, png_const_color_8p - true_bits)); -#endif - -#if defined(PNG_READ_INTERLACING_SUPPORTED) || \ - defined(PNG_WRITE_INTERLACING_SUPPORTED) -/* Have the code handle the interlacing. Returns the number of passes. - * MUST be called before png_read_update_info or png_start_read_image, - * otherwise it will not have the desired effect. Note that it is still - * necessary to call png_read_row or png_read_rows png_get_image_height - * times for each pass. -*/ -PNG_EXPORT(45, int, png_set_interlace_handling, (png_structp png_ptr)); -#endif - -#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) -/* Invert monochrome files */ -PNG_EXPORT(46, void, png_set_invert_mono, (png_structp png_ptr)); -#endif - -#ifdef PNG_READ_BACKGROUND_SUPPORTED -/* Handle alpha and tRNS by replacing with a background color. */ -PNG_FP_EXPORT(47, void, png_set_background, (png_structp png_ptr, - png_const_color_16p background_color, int background_gamma_code, - int need_expand, double background_gamma)); -PNG_FIXED_EXPORT(215, void, png_set_background_fixed, (png_structp png_ptr, - png_const_color_16p background_color, int background_gamma_code, - int need_expand, png_fixed_point background_gamma)); -#endif -#ifdef PNG_READ_BACKGROUND_SUPPORTED -# define PNG_BACKGROUND_GAMMA_UNKNOWN 0 -# define PNG_BACKGROUND_GAMMA_SCREEN 1 -# define PNG_BACKGROUND_GAMMA_FILE 2 -# define PNG_BACKGROUND_GAMMA_UNIQUE 3 -#endif - -#ifdef PNG_READ_16_TO_8_SUPPORTED -/* Strip the second byte of information from a 16-bit depth file. */ -PNG_EXPORT(48, void, png_set_strip_16, (png_structp png_ptr)); -#endif - -#ifdef PNG_READ_QUANTIZE_SUPPORTED -/* Turn on quantizing, and reduce the palette to the number of colors - * available. - */ -PNG_EXPORT(49, void, png_set_quantize, - (png_structp png_ptr, png_colorp palette, - int num_palette, int maximum_colors, png_const_uint_16p histogram, - int full_quantize)); -#endif - -#ifdef PNG_READ_GAMMA_SUPPORTED -/* The threshold on gamma processing is configurable but hard-wired into the - * library. The following is the floating point variant. - */ -#define PNG_GAMMA_THRESHOLD (PNG_GAMMA_THRESHOLD_FIXED*.00001) - -/* Handle gamma correction. Screen_gamma=(display_exponent) */ -PNG_FP_EXPORT(50, void, png_set_gamma, - (png_structp png_ptr, double screen_gamma, - double default_file_gamma)); -PNG_FIXED_EXPORT(208, void, png_set_gamma_fixed, (png_structp png_ptr, - png_fixed_point screen_gamma, png_fixed_point default_file_gamma)); -#endif - -#ifdef PNG_WRITE_FLUSH_SUPPORTED -/* Set how many lines between output flushes - 0 for no flushing */ -PNG_EXPORT(51, void, png_set_flush, (png_structp png_ptr, int nrows)); -/* Flush the current PNG output buffer */ -PNG_EXPORT(52, void, png_write_flush, (png_structp png_ptr)); -#endif - -/* Optional update palette with requested transformations */ -PNG_EXPORT(53, void, png_start_read_image, (png_structp png_ptr)); - -/* Optional call to update the users info structure */ -PNG_EXPORT(54, void, png_read_update_info, - (png_structp png_ptr, png_infop info_ptr)); - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read one or more rows of image data. */ -PNG_EXPORT(55, void, png_read_rows, (png_structp png_ptr, png_bytepp row, - png_bytepp display_row, png_uint_32 num_rows)); -#endif - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read a row of data. */ -PNG_EXPORT(56, void, png_read_row, (png_structp png_ptr, png_bytep row, - png_bytep display_row)); -#endif - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the whole image into memory at once. */ -PNG_EXPORT(57, void, png_read_image, (png_structp png_ptr, png_bytepp image)); -#endif - -/* Write a row of image data */ -PNG_EXPORT(58, void, png_write_row, - (png_structp png_ptr, png_const_bytep row)); - -/* Write a few rows of image data: (*row) is not written; however, the type - * is declared as writeable to maintain compatibility with previous versions - * of libpng and to allow the 'display_row' array from read_rows to be passed - * unchanged to write_rows. - */ -PNG_EXPORT(59, void, png_write_rows, (png_structp png_ptr, png_bytepp row, - png_uint_32 num_rows)); - -/* Write the image data */ -PNG_EXPORT(60, void, png_write_image, - (png_structp png_ptr, png_bytepp image)); - -/* Write the end of the PNG file. */ -PNG_EXPORT(61, void, png_write_end, - (png_structp png_ptr, png_infop info_ptr)); - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the end of the PNG file. */ -PNG_EXPORT(62, void, png_read_end, (png_structp png_ptr, png_infop info_ptr)); -#endif - -/* Free any memory associated with the png_info_struct */ -PNG_EXPORT(63, void, png_destroy_info_struct, (png_structp png_ptr, - png_infopp info_ptr_ptr)); - -/* Free any memory associated with the png_struct and the png_info_structs */ -PNG_EXPORT(64, void, png_destroy_read_struct, (png_structpp png_ptr_ptr, - png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)); - -/* Free any memory associated with the png_struct and the png_info_structs */ -PNG_EXPORT(65, void, png_destroy_write_struct, (png_structpp png_ptr_ptr, - png_infopp info_ptr_ptr)); - -/* Set the libpng method of handling chunk CRC errors */ -PNG_EXPORT(66, void, png_set_crc_action, - (png_structp png_ptr, int crit_action, int ancil_action)); - -/* Values for png_set_crc_action() say how to handle CRC errors in - * ancillary and critical chunks, and whether to use the data contained - * therein. Note that it is impossible to "discard" data in a critical - * chunk. For versions prior to 0.90, the action was always error/quit, - * whereas in version 0.90 and later, the action for CRC errors in ancillary - * chunks is warn/discard. These values should NOT be changed. - * - * value action:critical action:ancillary - */ -#define PNG_CRC_DEFAULT 0 /* error/quit warn/discard data */ -#define PNG_CRC_ERROR_QUIT 1 /* error/quit error/quit */ -#define PNG_CRC_WARN_DISCARD 2 /* (INVALID) warn/discard data */ -#define PNG_CRC_WARN_USE 3 /* warn/use data warn/use data */ -#define PNG_CRC_QUIET_USE 4 /* quiet/use data quiet/use data */ -#define PNG_CRC_NO_CHANGE 5 /* use current value use current value */ - -/* These functions give the user control over the scan-line filtering in - * libpng and the compression methods used by zlib. These functions are - * mainly useful for testing, as the defaults should work with most users. - * Those users who are tight on memory or want faster performance at the - * expense of compression can modify them. See the compression library - * header file (zlib.h) for an explination of the compression functions. - */ - -/* Set the filtering method(s) used by libpng. Currently, the only valid - * value for "method" is 0. - */ -PNG_EXPORT(67, void, png_set_filter, - (png_structp png_ptr, int method, int filters)); - -/* Flags for png_set_filter() to say which filters to use. The flags - * are chosen so that they don't conflict with real filter types - * below, in case they are supplied instead of the #defined constants. - * These values should NOT be changed. - */ -#define PNG_NO_FILTERS 0x00 -#define PNG_FILTER_NONE 0x08 -#define PNG_FILTER_SUB 0x10 -#define PNG_FILTER_UP 0x20 -#define PNG_FILTER_AVG 0x40 -#define PNG_FILTER_PAETH 0x80 -#define PNG_ALL_FILTERS (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP | \ - PNG_FILTER_AVG | PNG_FILTER_PAETH) - -/* Filter values (not flags) - used in pngwrite.c, pngwutil.c for now. - * These defines should NOT be changed. - */ -#define PNG_FILTER_VALUE_NONE 0 -#define PNG_FILTER_VALUE_SUB 1 -#define PNG_FILTER_VALUE_UP 2 -#define PNG_FILTER_VALUE_AVG 3 -#define PNG_FILTER_VALUE_PAETH 4 -#define PNG_FILTER_VALUE_LAST 5 - -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* EXPERIMENTAL */ -/* The "heuristic_method" is given by one of the PNG_FILTER_HEURISTIC_ - * defines, either the default (minimum-sum-of-absolute-differences), or - * the experimental method (weighted-minimum-sum-of-absolute-differences). - * - * Weights are factors >= 1.0, indicating how important it is to keep the - * filter type consistent between rows. Larger numbers mean the current - * filter is that many times as likely to be the same as the "num_weights" - * previous filters. This is cumulative for each previous row with a weight. - * There needs to be "num_weights" values in "filter_weights", or it can be - * NULL if the weights aren't being specified. Weights have no influence on - * the selection of the first row filter. Well chosen weights can (in theory) - * improve the compression for a given image. - * - * Costs are factors >= 1.0 indicating the relative decoding costs of a - * filter type. Higher costs indicate more decoding expense, and are - * therefore less likely to be selected over a filter with lower computational - * costs. There needs to be a value in "filter_costs" for each valid filter - * type (given by PNG_FILTER_VALUE_LAST), or it can be NULL if you aren't - * setting the costs. Costs try to improve the speed of decompression without - * unduly increasing the compressed image size. - * - * A negative weight or cost indicates the default value is to be used, and - * values in the range [0.0, 1.0) indicate the value is to remain unchanged. - * The default values for both weights and costs are currently 1.0, but may - * change if good general weighting/cost heuristics can be found. If both - * the weights and costs are set to 1.0, this degenerates the WEIGHTED method - * to the UNWEIGHTED method, but with added encoding time/computation. - */ -PNG_FP_EXPORT(68, void, png_set_filter_heuristics, (png_structp png_ptr, - int heuristic_method, int num_weights, png_const_doublep filter_weights, - png_const_doublep filter_costs)); -PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed, - (png_structp png_ptr, - int heuristic_method, int num_weights, png_const_fixed_point_p - filter_weights, png_const_fixed_point_p filter_costs)); -#endif /* PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */ - -/* Heuristic used for row filter selection. These defines should NOT be - * changed. - */ -#define PNG_FILTER_HEURISTIC_DEFAULT 0 /* Currently "UNWEIGHTED" */ -#define PNG_FILTER_HEURISTIC_UNWEIGHTED 1 /* Used by libpng < 0.95 */ -#define PNG_FILTER_HEURISTIC_WEIGHTED 2 /* Experimental feature */ -#define PNG_FILTER_HEURISTIC_LAST 3 /* Not a valid value */ - -/* Set the library compression level. Currently, valid values range from - * 0 - 9, corresponding directly to the zlib compression levels 0 - 9 - * (0 - no compression, 9 - "maximal" compression). Note that tests have - * shown that zlib compression levels 3-6 usually perform as well as level 9 - * for PNG images, and do considerably fewer caclulations. In the future, - * these values may not correspond directly to the zlib compression levels. - */ -PNG_EXPORT(69, void, png_set_compression_level, - (png_structp png_ptr, int level)); - -PNG_EXPORT(70, void, png_set_compression_mem_level, (png_structp png_ptr, - int mem_level)); - -PNG_EXPORT(71, void, png_set_compression_strategy, (png_structp png_ptr, - int strategy)); - -PNG_EXPORT(72, void, png_set_compression_window_bits, (png_structp png_ptr, - int window_bits)); - -PNG_EXPORT(73, void, png_set_compression_method, (png_structp png_ptr, - int method)); - -/* These next functions are called for input/output, memory, and error - * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c, - * and call standard C I/O routines such as fread(), fwrite(), and - * fprintf(). These functions can be made to use other I/O routines - * at run time for those applications that need to handle I/O in a - * different manner by calling png_set_???_fn(). See libpng-manual.txt for - * more information. - */ - -#ifdef PNG_STDIO_SUPPORTED -/* Initialize the input/output for the PNG file to the default functions. */ -PNG_EXPORT(74, void, png_init_io, (png_structp png_ptr, png_FILE_p fp)); -#endif - -/* Replace the (error and abort), and warning functions with user - * supplied functions. If no messages are to be printed you must still - * write and use replacement functions. The replacement error_fn should - * still do a longjmp to the last setjmp location if you are using this - * method of error handling. If error_fn or warning_fn is NULL, the - * default function will be used. - */ - -PNG_EXPORT(75, void, png_set_error_fn, - (png_structp png_ptr, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warning_fn)); - -/* Return the user pointer associated with the error functions */ -PNG_EXPORT(76, png_voidp, png_get_error_ptr, (png_const_structp png_ptr)); - -/* Replace the default data output functions with a user supplied one(s). - * If buffered output is not used, then output_flush_fn can be set to NULL. - * If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time - * output_flush_fn will be ignored (and thus can be NULL). - * It is probably a mistake to use NULL for output_flush_fn if - * write_data_fn is not also NULL unless you have built libpng with - * PNG_WRITE_FLUSH_SUPPORTED undefined, because in this case libpng's - * default flush function, which uses the standard *FILE structure, will - * be used. - */ -PNG_EXPORT(77, void, png_set_write_fn, (png_structp png_ptr, png_voidp io_ptr, - png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)); - -/* Replace the default data input function with a user supplied one. */ -PNG_EXPORT(78, void, png_set_read_fn, (png_structp png_ptr, png_voidp io_ptr, - png_rw_ptr read_data_fn)); - -/* Return the user pointer associated with the I/O functions */ -PNG_EXPORT(79, png_voidp, png_get_io_ptr, (png_structp png_ptr)); - -PNG_EXPORT(80, void, png_set_read_status_fn, (png_structp png_ptr, - png_read_status_ptr read_row_fn)); - -PNG_EXPORT(81, void, png_set_write_status_fn, (png_structp png_ptr, - png_write_status_ptr write_row_fn)); - -#ifdef PNG_USER_MEM_SUPPORTED -/* Replace the default memory allocation functions with user supplied one(s). */ -PNG_EXPORT(82, void, png_set_mem_fn, (png_structp png_ptr, png_voidp mem_ptr, - png_malloc_ptr malloc_fn, png_free_ptr free_fn)); -/* Return the user pointer associated with the memory functions */ -PNG_EXPORT(83, png_voidp, png_get_mem_ptr, (png_const_structp png_ptr)); -#endif - -#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED -PNG_EXPORT(84, void, png_set_read_user_transform_fn, (png_structp png_ptr, - png_user_transform_ptr read_user_transform_fn)); -#endif - -#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED -PNG_EXPORT(85, void, png_set_write_user_transform_fn, (png_structp png_ptr, - png_user_transform_ptr write_user_transform_fn)); -#endif - -#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED -PNG_EXPORT(86, void, png_set_user_transform_info, (png_structp png_ptr, - png_voidp user_transform_ptr, int user_transform_depth, - int user_transform_channels)); -/* Return the user pointer associated with the user transform functions */ -PNG_EXPORT(87, png_voidp, png_get_user_transform_ptr, - (png_const_structp png_ptr)); -#endif - -#ifdef PNG_USER_TRANSFORM_INFO_SUPPORTED -/* Return information about the row currently being processed. Note that these - * APIs do not fail but will return unexpected results if called outside a user - * transform callback. Also note that when transforming an interlaced image the - * row number is the row number within the sub-image of the interlace pass, so - * the value will increase to the height of the sub-image (not the full image) - * then reset to 0 for the next pass. - * - * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to - * find the output pixel (x,y) given an interlaced sub-image pixel - * (row,col,pass). (See below for these macros.) - */ -PNG_EXPORT(217, png_uint_32, png_get_current_row_number, (png_const_structp)); -PNG_EXPORT(218, png_byte, png_get_current_pass_number, (png_const_structp)); -#endif - -#ifdef PNG_USER_CHUNKS_SUPPORTED -PNG_EXPORT(88, void, png_set_read_user_chunk_fn, (png_structp png_ptr, - png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn)); -PNG_EXPORT(89, png_voidp, png_get_user_chunk_ptr, (png_const_structp png_ptr)); -#endif - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -/* Sets the function callbacks for the push reader, and a pointer to a - * user-defined structure available to the callback functions. - */ -PNG_EXPORT(90, void, png_set_progressive_read_fn, (png_structp png_ptr, - png_voidp progressive_ptr, png_progressive_info_ptr info_fn, - png_progressive_row_ptr row_fn, png_progressive_end_ptr end_fn)); - -/* Returns the user pointer associated with the push read functions */ -PNG_EXPORT(91, png_voidp, png_get_progressive_ptr, (png_const_structp png_ptr)); - -/* Function to be called when data becomes available */ -PNG_EXPORT(92, void, png_process_data, - (png_structp png_ptr, png_infop info_ptr, - png_bytep buffer, png_size_t buffer_size)); - -/* A function which may be called *only* within png_process_data to stop the - * processing of any more data. The function returns the number of bytes - * remaining, excluding any that libpng has cached internally. A subsequent - * call to png_process_data must supply these bytes again. If the argument - * 'save' is set to true the routine will first save all the pending data and - * will always return 0. - */ -PNG_EXPORT(219, png_size_t, png_process_data_pause, (png_structp, int save)); - -/* A function which may be called *only* outside (after) a call to - * png_process_data. It returns the number of bytes of data to skip in the - * input. Normally it will return 0, but if it returns a non-zero value the - * application must skip than number of bytes of input data and pass the - * following data to the next call to png_process_data. - */ -PNG_EXPORT(220, png_uint_32, png_process_data_skip, (png_structp)); - -/* Function that combines rows. 'new_row' is a flag that should come from - * the callback and be non-NULL if anything needs to be done; the library - * stores its own version of the new data internally and ignores the passed - * in value. - */ -PNG_EXPORT(93, void, png_progressive_combine_row, (png_structp png_ptr, - png_bytep old_row, png_const_bytep new_row)); -#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ - -PNG_EXPORTA(94, png_voidp, png_malloc, - (png_structp png_ptr, png_alloc_size_t size), - PNG_ALLOCATED); -/* Added at libpng version 1.4.0 */ -PNG_EXPORTA(95, png_voidp, png_calloc, - (png_structp png_ptr, png_alloc_size_t size), - PNG_ALLOCATED); - -/* Added at libpng version 1.2.4 */ -PNG_EXPORTA(96, png_voidp, png_malloc_warn, (png_structp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED); - -/* Frees a pointer allocated by png_malloc() */ -PNG_EXPORT(97, void, png_free, (png_structp png_ptr, png_voidp ptr)); - -/* Free data that was allocated internally */ -PNG_EXPORT(98, void, png_free_data, - (png_structp png_ptr, png_infop info_ptr, png_uint_32 free_me, int num)); - -/* Reassign responsibility for freeing existing data, whether allocated - * by libpng or by the application */ -PNG_EXPORT(99, void, png_data_freer, - (png_structp png_ptr, png_infop info_ptr, int freer, png_uint_32 mask)); - -/* Assignments for png_data_freer */ -#define PNG_DESTROY_WILL_FREE_DATA 1 -#define PNG_SET_WILL_FREE_DATA 1 -#define PNG_USER_WILL_FREE_DATA 2 -/* Flags for png_ptr->free_me and info_ptr->free_me */ -#define PNG_FREE_HIST 0x0008 -#define PNG_FREE_ICCP 0x0010 -#define PNG_FREE_SPLT 0x0020 -#define PNG_FREE_ROWS 0x0040 -#define PNG_FREE_PCAL 0x0080 -#define PNG_FREE_SCAL 0x0100 -#define PNG_FREE_UNKN 0x0200 -#define PNG_FREE_LIST 0x0400 -#define PNG_FREE_PLTE 0x1000 -#define PNG_FREE_TRNS 0x2000 -#define PNG_FREE_TEXT 0x4000 -#define PNG_FREE_ALL 0x7fff -#define PNG_FREE_MUL 0x4220 /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */ - -#ifdef PNG_USER_MEM_SUPPORTED -PNG_EXPORTA(100, png_voidp, png_malloc_default, (png_structp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED); -PNG_EXPORT(101, void, png_free_default, (png_structp png_ptr, png_voidp ptr)); -#endif - -#ifdef PNG_ERROR_TEXT_SUPPORTED -/* Fatal error in PNG image of libpng - can't continue */ -PNG_EXPORTA(102, void, png_error, - (png_structp png_ptr, png_const_charp error_message), - PNG_NORETURN); - -/* The same, but the chunk name is prepended to the error string. */ -PNG_EXPORTA(103, void, png_chunk_error, (png_structp png_ptr, - png_const_charp error_message), PNG_NORETURN); - -#else -/* Fatal error in PNG image of libpng - can't continue */ -PNG_EXPORTA(104, void, png_err, (png_structp png_ptr), PNG_NORETURN); -#endif - -/* Non-fatal error in libpng. Can continue, but may have a problem. */ -PNG_EXPORT(105, void, png_warning, (png_structp png_ptr, - png_const_charp warning_message)); - -/* Non-fatal error in libpng, chunk name is prepended to message. */ -PNG_EXPORT(106, void, png_chunk_warning, (png_structp png_ptr, - png_const_charp warning_message)); - -#ifdef PNG_BENIGN_ERRORS_SUPPORTED -/* Benign error in libpng. Can continue, but may have a problem. - * User can choose whether to handle as a fatal error or as a warning. */ -# undef png_benign_error -PNG_EXPORT(107, void, png_benign_error, (png_structp png_ptr, - png_const_charp warning_message)); - -/* Same, chunk name is prepended to message. */ -# undef png_chunk_benign_error -PNG_EXPORT(108, void, png_chunk_benign_error, (png_structp png_ptr, - png_const_charp warning_message)); - -PNG_EXPORT(109, void, png_set_benign_errors, - (png_structp png_ptr, int allowed)); -#else -# ifdef PNG_ALLOW_BENIGN_ERRORS -# define png_benign_error png_warning -# define png_chunk_benign_error png_chunk_warning -# else -# define png_benign_error png_error -# define png_chunk_benign_error png_chunk_error -# endif -#endif - -/* The png_set_ functions are for storing values in the png_info_struct. - * Similarly, the png_get_ calls are used to read values from the - * png_info_struct, either storing the parameters in the passed variables, or - * setting pointers into the png_info_struct where the data is stored. The - * png_get_ functions return a non-zero value if the data was available - * in info_ptr, or return zero and do not change any of the parameters if the - * data was not available. - * - * These functions should be used instead of directly accessing png_info - * to avoid problems with future changes in the size and internal layout of - * png_info_struct. - */ -/* Returns "flag" if chunk data is valid in info_ptr. */ -PNG_EXPORT(110, png_uint_32, png_get_valid, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_uint_32 flag)); - -/* Returns number of bytes needed to hold a transformed row. */ -PNG_EXPORT(111, png_size_t, png_get_rowbytes, (png_const_structp png_ptr, - png_const_infop info_ptr)); - -#ifdef PNG_INFO_IMAGE_SUPPORTED -/* Returns row_pointers, which is an array of pointers to scanlines that was - * returned from png_read_png(). - */ -PNG_EXPORT(112, png_bytepp, png_get_rows, - (png_const_structp png_ptr, png_const_infop info_ptr)); -/* Set row_pointers, which is an array of pointers to scanlines for use - * by png_write_png(). - */ -PNG_EXPORT(113, void, png_set_rows, (png_structp png_ptr, - png_infop info_ptr, png_bytepp row_pointers)); -#endif - -/* Returns number of color channels in image. */ -PNG_EXPORT(114, png_byte, png_get_channels, - (png_const_structp png_ptr, png_const_infop info_ptr)); - -#ifdef PNG_EASY_ACCESS_SUPPORTED -/* Returns image width in pixels. */ -PNG_EXPORT(115, png_uint_32, png_get_image_width, (png_const_structp png_ptr, - png_const_infop info_ptr)); - -/* Returns image height in pixels. */ -PNG_EXPORT(116, png_uint_32, png_get_image_height, (png_const_structp png_ptr, - png_const_infop info_ptr)); - -/* Returns image bit_depth. */ -PNG_EXPORT(117, png_byte, png_get_bit_depth, - (png_const_structp png_ptr, png_const_infop info_ptr)); - -/* Returns image color_type. */ -PNG_EXPORT(118, png_byte, png_get_color_type, (png_const_structp png_ptr, - png_const_infop info_ptr)); - -/* Returns image filter_type. */ -PNG_EXPORT(119, png_byte, png_get_filter_type, (png_const_structp png_ptr, - png_const_infop info_ptr)); - -/* Returns image interlace_type. */ -PNG_EXPORT(120, png_byte, png_get_interlace_type, (png_const_structp png_ptr, - png_const_infop info_ptr)); - -/* Returns image compression_type. */ -PNG_EXPORT(121, png_byte, png_get_compression_type, (png_const_structp png_ptr, - png_const_infop info_ptr)); - -/* Returns image resolution in pixels per meter, from pHYs chunk data. */ -PNG_EXPORT(122, png_uint_32, png_get_pixels_per_meter, - (png_const_structp png_ptr, png_const_infop info_ptr)); -PNG_EXPORT(123, png_uint_32, png_get_x_pixels_per_meter, - (png_const_structp png_ptr, png_const_infop info_ptr)); -PNG_EXPORT(124, png_uint_32, png_get_y_pixels_per_meter, - (png_const_structp png_ptr, png_const_infop info_ptr)); - -/* Returns pixel aspect ratio, computed from pHYs chunk data. */ -PNG_FP_EXPORT(125, float, png_get_pixel_aspect_ratio, - (png_const_structp png_ptr, png_const_infop info_ptr)); -PNG_FIXED_EXPORT(210, png_fixed_point, png_get_pixel_aspect_ratio_fixed, - (png_const_structp png_ptr, png_const_infop info_ptr)); - -/* Returns image x, y offset in pixels or microns, from oFFs chunk data. */ -PNG_EXPORT(126, png_int_32, png_get_x_offset_pixels, - (png_const_structp png_ptr, png_const_infop info_ptr)); -PNG_EXPORT(127, png_int_32, png_get_y_offset_pixels, - (png_const_structp png_ptr, png_const_infop info_ptr)); -PNG_EXPORT(128, png_int_32, png_get_x_offset_microns, - (png_const_structp png_ptr, png_const_infop info_ptr)); -PNG_EXPORT(129, png_int_32, png_get_y_offset_microns, - (png_const_structp png_ptr, png_const_infop info_ptr)); - -#endif /* PNG_EASY_ACCESS_SUPPORTED */ - -/* Returns pointer to signature string read from PNG header */ -PNG_EXPORT(130, png_const_bytep, png_get_signature, - (png_const_structp png_ptr, png_infop info_ptr)); - -#ifdef PNG_bKGD_SUPPORTED -PNG_EXPORT(131, png_uint_32, png_get_bKGD, - (png_const_structp png_ptr, png_infop info_ptr, - png_color_16p *background)); -#endif - -#ifdef PNG_bKGD_SUPPORTED -PNG_EXPORT(132, void, png_set_bKGD, (png_structp png_ptr, png_infop info_ptr, - png_const_color_16p background)); -#endif - -#ifdef PNG_cHRM_SUPPORTED -PNG_FP_EXPORT(133, png_uint_32, png_get_cHRM, (png_const_structp png_ptr, - png_const_infop info_ptr, double *white_x, double *white_y, double *red_x, - double *red_y, double *green_x, double *green_y, double *blue_x, - double *blue_y)); -#ifdef PNG_FIXED_POINT_SUPPORTED /* Otherwise not implemented */ -PNG_FIXED_EXPORT(134, png_uint_32, png_get_cHRM_fixed, - (png_const_structp png_ptr, - png_const_infop info_ptr, png_fixed_point *int_white_x, - png_fixed_point *int_white_y, png_fixed_point *int_red_x, - png_fixed_point *int_red_y, png_fixed_point *int_green_x, - png_fixed_point *int_green_y, png_fixed_point *int_blue_x, - png_fixed_point *int_blue_y)); -#endif -#endif - -#ifdef PNG_cHRM_SUPPORTED -PNG_FP_EXPORT(135, void, png_set_cHRM, - (png_structp png_ptr, png_infop info_ptr, - double white_x, double white_y, double red_x, double red_y, double green_x, - double green_y, double blue_x, double blue_y)); -PNG_FIXED_EXPORT(136, void, png_set_cHRM_fixed, (png_structp png_ptr, - png_infop info_ptr, png_fixed_point int_white_x, - png_fixed_point int_white_y, png_fixed_point int_red_x, - png_fixed_point int_red_y, png_fixed_point int_green_x, - png_fixed_point int_green_y, png_fixed_point int_blue_x, - png_fixed_point int_blue_y)); -#endif - -#ifdef PNG_gAMA_SUPPORTED -PNG_FP_EXPORT(137, png_uint_32, png_get_gAMA, - (png_const_structp png_ptr, png_const_infop info_ptr, - double *file_gamma)); -PNG_FIXED_EXPORT(138, png_uint_32, png_get_gAMA_fixed, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_fixed_point *int_file_gamma)); -#endif - -#ifdef PNG_gAMA_SUPPORTED -PNG_FP_EXPORT(139, void, png_set_gAMA, (png_structp png_ptr, - png_infop info_ptr, double file_gamma)); -PNG_FIXED_EXPORT(140, void, png_set_gAMA_fixed, (png_structp png_ptr, - png_infop info_ptr, png_fixed_point int_file_gamma)); -#endif - -#ifdef PNG_hIST_SUPPORTED -PNG_EXPORT(141, png_uint_32, png_get_hIST, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_uint_16p *hist)); -#endif - -#ifdef PNG_hIST_SUPPORTED -PNG_EXPORT(142, void, png_set_hIST, (png_structp png_ptr, - png_infop info_ptr, png_const_uint_16p hist)); -#endif - -PNG_EXPORT(143, png_uint_32, png_get_IHDR, - (png_structp png_ptr, png_infop info_ptr, - png_uint_32 *width, png_uint_32 *height, int *bit_depth, int *color_type, - int *interlace_method, int *compression_method, int *filter_method)); - -PNG_EXPORT(144, void, png_set_IHDR, - (png_structp png_ptr, png_infop info_ptr, - png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, - int interlace_method, int compression_method, int filter_method)); - -#ifdef PNG_oFFs_SUPPORTED -PNG_EXPORT(145, png_uint_32, png_get_oFFs, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type)); -#endif - -#ifdef PNG_oFFs_SUPPORTED -PNG_EXPORT(146, void, png_set_oFFs, - (png_structp png_ptr, png_infop info_ptr, - png_int_32 offset_x, png_int_32 offset_y, int unit_type)); -#endif - -#ifdef PNG_pCAL_SUPPORTED -PNG_EXPORT(147, png_uint_32, png_get_pCAL, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_charp *purpose, png_int_32 *X0, png_int_32 *X1, int *type, - int *nparams, - png_charp *units, png_charpp *params)); -#endif - -#ifdef PNG_pCAL_SUPPORTED -PNG_EXPORT(148, void, png_set_pCAL, (png_structp png_ptr, - png_infop info_ptr, - png_const_charp purpose, png_int_32 X0, png_int_32 X1, int type, - int nparams, png_const_charp units, png_charpp params)); -#endif - -#ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(149, png_uint_32, png_get_pHYs, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)); -#endif - -#ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(150, void, png_set_pHYs, - (png_structp png_ptr, png_infop info_ptr, - png_uint_32 res_x, png_uint_32 res_y, int unit_type)); -#endif - -PNG_EXPORT(151, png_uint_32, png_get_PLTE, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_colorp *palette, int *num_palette)); - -PNG_EXPORT(152, void, png_set_PLTE, - (png_structp png_ptr, png_infop info_ptr, - png_const_colorp palette, int num_palette)); - -#ifdef PNG_sBIT_SUPPORTED -PNG_EXPORT(153, png_uint_32, png_get_sBIT, - (png_const_structp png_ptr, png_infop info_ptr, - png_color_8p *sig_bit)); -#endif - -#ifdef PNG_sBIT_SUPPORTED -PNG_EXPORT(154, void, png_set_sBIT, - (png_structp png_ptr, png_infop info_ptr, png_const_color_8p sig_bit)); -#endif - -#ifdef PNG_sRGB_SUPPORTED -PNG_EXPORT(155, png_uint_32, png_get_sRGB, (png_const_structp png_ptr, - png_const_infop info_ptr, int *file_srgb_intent)); -#endif - -#ifdef PNG_sRGB_SUPPORTED -PNG_EXPORT(156, void, png_set_sRGB, - (png_structp png_ptr, png_infop info_ptr, int srgb_intent)); -PNG_EXPORT(157, void, png_set_sRGB_gAMA_and_cHRM, (png_structp png_ptr, - png_infop info_ptr, int srgb_intent)); -#endif - -#ifdef PNG_iCCP_SUPPORTED -PNG_EXPORT(158, png_uint_32, png_get_iCCP, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_charpp name, int *compression_type, png_bytepp profile, - png_uint_32 *proflen)); -#endif - -#ifdef PNG_iCCP_SUPPORTED -PNG_EXPORT(159, void, png_set_iCCP, - (png_structp png_ptr, png_infop info_ptr, - png_const_charp name, int compression_type, png_const_bytep profile, - png_uint_32 proflen)); -#endif - -#ifdef PNG_sPLT_SUPPORTED -PNG_EXPORT(160, png_uint_32, png_get_sPLT, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_sPLT_tpp entries)); -#endif - -#ifdef PNG_sPLT_SUPPORTED -PNG_EXPORT(161, void, png_set_sPLT, - (png_structp png_ptr, png_infop info_ptr, - png_const_sPLT_tp entries, int nentries)); -#endif - -#ifdef PNG_TEXT_SUPPORTED -/* png_get_text also returns the number of text chunks in *num_text */ -PNG_EXPORT(162, png_uint_32, png_get_text, - (png_const_structp png_ptr, png_const_infop info_ptr, - png_textp *text_ptr, int *num_text)); -#endif - -/* Note while png_set_text() will accept a structure whose text, - * language, and translated keywords are NULL pointers, the structure - * returned by png_get_text will always contain regular - * zero-terminated C strings. They might be empty strings but - * they will never be NULL pointers. - */ - -#ifdef PNG_TEXT_SUPPORTED -PNG_EXPORT(163, void, png_set_text, - (png_structp png_ptr, png_infop info_ptr, - png_const_textp text_ptr, int num_text)); -#endif - -#ifdef PNG_tIME_SUPPORTED -PNG_EXPORT(164, png_uint_32, png_get_tIME, - (png_const_structp png_ptr, png_infop info_ptr, png_timep *mod_time)); -#endif - -#ifdef PNG_tIME_SUPPORTED -PNG_EXPORT(165, void, png_set_tIME, - (png_structp png_ptr, png_infop info_ptr, png_const_timep mod_time)); -#endif - -#ifdef PNG_tRNS_SUPPORTED -PNG_EXPORT(166, png_uint_32, png_get_tRNS, - (png_const_structp png_ptr, png_infop info_ptr, - png_bytep *trans_alpha, int *num_trans, png_color_16p *trans_color)); -#endif - -#ifdef PNG_tRNS_SUPPORTED -PNG_EXPORT(167, void, png_set_tRNS, - (png_structp png_ptr, png_infop info_ptr, - png_const_bytep trans_alpha, int num_trans, - png_const_color_16p trans_color)); -#endif - -#ifdef PNG_sCAL_SUPPORTED -PNG_FP_EXPORT(168, png_uint_32, png_get_sCAL, - (png_const_structp png_ptr, png_const_infop info_ptr, - int *unit, double *width, double *height)); -#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED -/* NOTE: this API is currently implemented using floating point arithmetic, - * consequently it can only be used on systems with floating point support. - * In any case the range of values supported by png_fixed_point is small and it - * is highly recommended that png_get_sCAL_s be used instead. - */ -PNG_FIXED_EXPORT(214, png_uint_32, png_get_sCAL_fixed, - (png_structp png_ptr, png_const_infop info_ptr, int *unit, - png_fixed_point *width, - png_fixed_point *height)); -#endif -PNG_EXPORT(169, png_uint_32, png_get_sCAL_s, - (png_const_structp png_ptr, png_const_infop info_ptr, - int *unit, png_charpp swidth, png_charpp sheight)); - -PNG_FP_EXPORT(170, void, png_set_sCAL, - (png_structp png_ptr, png_infop info_ptr, - int unit, double width, double height)); -PNG_FIXED_EXPORT(213, void, png_set_sCAL_fixed, (png_structp png_ptr, - png_infop info_ptr, int unit, png_fixed_point width, - png_fixed_point height)); -PNG_EXPORT(171, void, png_set_sCAL_s, - (png_structp png_ptr, png_infop info_ptr, - int unit, png_const_charp swidth, png_const_charp sheight)); -#endif /* PNG_sCAL_SUPPORTED */ - -#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED -/* Provide a list of chunks and how they are to be handled, if the built-in - handling or default unknown chunk handling is not desired. Any chunks not - listed will be handled in the default manner. The IHDR and IEND chunks - must not be listed. - keep = 0: follow default behaviour - = 1: do not keep - = 2: keep only if safe-to-copy - = 3: keep even if unsafe-to-copy -*/ -PNG_EXPORT(172, void, png_set_keep_unknown_chunks, - (png_structp png_ptr, int keep, - png_const_bytep chunk_list, int num_chunks)); -PNG_EXPORT(173, int, png_handle_as_unknown, (png_structp png_ptr, - png_const_bytep chunk_name)); -#endif -#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED -PNG_EXPORT(174, void, png_set_unknown_chunks, (png_structp png_ptr, - png_infop info_ptr, png_const_unknown_chunkp unknowns, - int num_unknowns)); -PNG_EXPORT(175, void, png_set_unknown_chunk_location, - (png_structp png_ptr, png_infop info_ptr, int chunk, int location)); -PNG_EXPORT(176, int, png_get_unknown_chunks, (png_const_structp png_ptr, - png_const_infop info_ptr, png_unknown_chunkpp entries)); -#endif - -/* Png_free_data() will turn off the "valid" flag for anything it frees. - * If you need to turn it off for a chunk that your application has freed, - * you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); - */ -PNG_EXPORT(177, void, png_set_invalid, - (png_structp png_ptr, png_infop info_ptr, int mask)); - -#ifdef PNG_INFO_IMAGE_SUPPORTED -/* The "params" pointer is currently not used and is for future expansion. */ -PNG_EXPORT(178, void, png_read_png, (png_structp png_ptr, png_infop info_ptr, - int transforms, png_voidp params)); -PNG_EXPORT(179, void, png_write_png, (png_structp png_ptr, png_infop info_ptr, - int transforms, png_voidp params)); -#endif - -PNG_EXPORT(180, png_const_charp, png_get_copyright, - (png_const_structp png_ptr)); -PNG_EXPORT(181, png_const_charp, png_get_header_ver, - (png_const_structp png_ptr)); -PNG_EXPORT(182, png_const_charp, png_get_header_version, - (png_const_structp png_ptr)); -PNG_EXPORT(183, png_const_charp, png_get_libpng_ver, - (png_const_structp png_ptr)); - -#ifdef PNG_MNG_FEATURES_SUPPORTED -PNG_EXPORT(184, png_uint_32, png_permit_mng_features, (png_structp png_ptr, - png_uint_32 mng_features_permitted)); -#endif - -/* For use in png_set_keep_unknown, added to version 1.2.6 */ -#define PNG_HANDLE_CHUNK_AS_DEFAULT 0 -#define PNG_HANDLE_CHUNK_NEVER 1 -#define PNG_HANDLE_CHUNK_IF_SAFE 2 -#define PNG_HANDLE_CHUNK_ALWAYS 3 - -/* Strip the prepended error numbers ("#nnn ") from error and warning - * messages before passing them to the error or warning handler. - */ -#ifdef PNG_ERROR_NUMBERS_SUPPORTED -PNG_EXPORT(185, void, png_set_strip_error_numbers, - (png_structp png_ptr, - png_uint_32 strip_mode)); -#endif - -/* Added in libpng-1.2.6 */ -#ifdef PNG_SET_USER_LIMITS_SUPPORTED -PNG_EXPORT(186, void, png_set_user_limits, (png_structp png_ptr, - png_uint_32 user_width_max, png_uint_32 user_height_max)); -PNG_EXPORT(187, png_uint_32, png_get_user_width_max, - (png_const_structp png_ptr)); -PNG_EXPORT(188, png_uint_32, png_get_user_height_max, - (png_const_structp png_ptr)); -/* Added in libpng-1.4.0 */ -PNG_EXPORT(189, void, png_set_chunk_cache_max, (png_structp png_ptr, - png_uint_32 user_chunk_cache_max)); -PNG_EXPORT(190, png_uint_32, png_get_chunk_cache_max, - (png_const_structp png_ptr)); -/* Added in libpng-1.4.1 */ -PNG_EXPORT(191, void, png_set_chunk_malloc_max, (png_structp png_ptr, - png_alloc_size_t user_chunk_cache_max)); -PNG_EXPORT(192, png_alloc_size_t, png_get_chunk_malloc_max, - (png_const_structp png_ptr)); -#endif - -#if defined(PNG_INCH_CONVERSIONS_SUPPORTED) -PNG_EXPORT(193, png_uint_32, png_get_pixels_per_inch, - (png_const_structp png_ptr, png_const_infop info_ptr)); - -PNG_EXPORT(194, png_uint_32, png_get_x_pixels_per_inch, - (png_const_structp png_ptr, png_const_infop info_ptr)); - -PNG_EXPORT(195, png_uint_32, png_get_y_pixels_per_inch, - (png_const_structp png_ptr, png_const_infop info_ptr)); - -PNG_FP_EXPORT(196, float, png_get_x_offset_inches, - (png_const_structp png_ptr, png_const_infop info_ptr)); -#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ -PNG_FIXED_EXPORT(211, png_fixed_point, png_get_x_offset_inches_fixed, - (png_structp png_ptr, png_const_infop info_ptr)); -#endif - -PNG_FP_EXPORT(197, float, png_get_y_offset_inches, (png_const_structp png_ptr, - png_const_infop info_ptr)); -#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ -PNG_FIXED_EXPORT(212, png_fixed_point, png_get_y_offset_inches_fixed, - (png_structp png_ptr, png_const_infop info_ptr)); -#endif - -# ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(198, png_uint_32, png_get_pHYs_dpi, (png_const_structp png_ptr, - png_const_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, - int *unit_type)); -# endif /* PNG_pHYs_SUPPORTED */ -#endif /* PNG_INCH_CONVERSIONS_SUPPORTED */ - -/* Added in libpng-1.4.0 */ -#ifdef PNG_IO_STATE_SUPPORTED -PNG_EXPORT(199, png_uint_32, png_get_io_state, (png_structp png_ptr)); - -PNG_EXPORTA(200, png_const_bytep, png_get_io_chunk_name, - (png_structp png_ptr), PNG_DEPRECATED); -PNG_EXPORT(216, png_uint_32, png_get_io_chunk_type, - (png_const_structp png_ptr)); - -/* The flags returned by png_get_io_state() are the following: */ -# define PNG_IO_NONE 0x0000 /* no I/O at this moment */ -# define PNG_IO_READING 0x0001 /* currently reading */ -# define PNG_IO_WRITING 0x0002 /* currently writing */ -# define PNG_IO_SIGNATURE 0x0010 /* currently at the file signature */ -# define PNG_IO_CHUNK_HDR 0x0020 /* currently at the chunk header */ -# define PNG_IO_CHUNK_DATA 0x0040 /* currently at the chunk data */ -# define PNG_IO_CHUNK_CRC 0x0080 /* currently at the chunk crc */ -# define PNG_IO_MASK_OP 0x000f /* current operation: reading/writing */ -# define PNG_IO_MASK_LOC 0x00f0 /* current location: sig/hdr/data/crc */ -#endif /* ?PNG_IO_STATE_SUPPORTED */ - -/* Interlace support. The following macros are always defined so that if - * libpng interlace handling is turned off the macros may be used to handle - * interlaced images within the application. - */ -#define PNG_INTERLACE_ADAM7_PASSES 7 - -/* Two macros to return the first row and first column of the original, - * full, image which appears in a given pass. 'pass' is in the range 0 - * to 6 and the result is in the range 0 to 7. - */ -#define PNG_PASS_START_ROW(pass) (((1U&~(pass))<<(3-((pass)>>1)))&7) -#define PNG_PASS_START_COL(pass) (((1U& (pass))<<(3-(((pass)+1)>>1)))&7) - -/* Two macros to help evaluate the number of rows or columns in each - * pass. This is expressed as a shift - effectively log2 of the number or - * rows or columns in each 8x8 tile of the original image. - */ -#define PNG_PASS_ROW_SHIFT(pass) ((pass)>2?(8-(pass))>>1:3) -#define PNG_PASS_COL_SHIFT(pass) ((pass)>1?(7-(pass))>>1:3) - -/* Hence two macros to determine the number of rows or columns in a given - * pass of an image given its height or width. In fact these macros may - * return non-zero even though the sub-image is empty, because the other - * dimension may be empty for a small image. - */ -#define PNG_PASS_ROWS(height, pass) (((height)+(((1<>PNG_PASS_ROW_SHIFT(pass)) -#define PNG_PASS_COLS(width, pass) (((width)+(((1<>PNG_PASS_COL_SHIFT(pass)) - -/* For the reader row callbacks (both progressive and sequential) it is - * necessary to find the row in the output image given a row in an interlaced - * image, so two more macros: - */ -#define PNG_ROW_FROM_PASS_ROW(yIn, pass) \ - (((yIn)<>(((7-(off))-(pass))<<2)) & 0xFU) | \ - ((0x01145AF0U>>(((7-(off))-(pass))<<2)) & 0xF0U)) - -#define PNG_ROW_IN_INTERLACE_PASS(y, pass) \ - ((PNG_PASS_MASK(pass,0) >> ((y)&7)) & 1) -#define PNG_COL_IN_INTERLACE_PASS(x, pass) \ - ((PNG_PASS_MASK(pass,1) >> ((x)&7)) & 1) - -#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED -/* With these routines we avoid an integer divide, which will be slower on - * most machines. However, it does take more operations than the corresponding - * divide method, so it may be slower on a few RISC systems. There are two - * shifts (by 8 or 16 bits) and an addition, versus a single integer divide. - * - * Note that the rounding factors are NOT supposed to be the same! 128 and - * 32768 are correct for the NODIV code; 127 and 32767 are correct for the - * standard method. - * - * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ] - */ - - /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */ - -# define png_composite(composite, fg, alpha, bg) \ - { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) \ - * (png_uint_16)(alpha) \ - + (png_uint_16)(bg)*(png_uint_16)(255 \ - - (png_uint_16)(alpha)) + (png_uint_16)128); \ - (composite) = (png_byte)((temp + (temp >> 8)) >> 8); } - -# define png_composite_16(composite, fg, alpha, bg) \ - { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) \ - * (png_uint_32)(alpha) \ - + (png_uint_32)(bg)*(png_uint_32)(65535L \ - - (png_uint_32)(alpha)) + (png_uint_32)32768L); \ - (composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); } - -#else /* Standard method using integer division */ - -# define png_composite(composite, fg, alpha, bg) \ - (composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) + \ - (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \ - (png_uint_16)127) / 255) - -# define png_composite_16(composite, fg, alpha, bg) \ - (composite) = (png_uint_16)(((png_uint_32)(fg) * (png_uint_32)(alpha) + \ - (png_uint_32)(bg)*(png_uint_32)(65535L - (png_uint_32)(alpha)) + \ - (png_uint_32)32767) / (png_uint_32)65535L) -#endif /* PNG_READ_COMPOSITE_NODIV_SUPPORTED */ - -#ifdef PNG_READ_INT_FUNCTIONS_SUPPORTED -PNG_EXPORT(201, png_uint_32, png_get_uint_32, (png_const_bytep buf)); -PNG_EXPORT(202, png_uint_16, png_get_uint_16, (png_const_bytep buf)); -PNG_EXPORT(203, png_int_32, png_get_int_32, (png_const_bytep buf)); -#endif - -PNG_EXPORT(204, png_uint_32, png_get_uint_31, (png_structp png_ptr, - png_const_bytep buf)); -/* No png_get_int_16 -- may be added if there's a real need for it. */ - -/* Place a 32-bit number into a buffer in PNG byte order (big-endian). */ -#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED -PNG_EXPORT(205, void, png_save_uint_32, (png_bytep buf, png_uint_32 i)); -#endif -#ifdef PNG_SAVE_INT_32_SUPPORTED -PNG_EXPORT(206, void, png_save_int_32, (png_bytep buf, png_int_32 i)); -#endif - -/* Place a 16-bit number into a buffer in PNG byte order. - * The parameter is declared unsigned int, not png_uint_16, - * just to avoid potential problems on pre-ANSI C compilers. - */ -#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED -PNG_EXPORT(207, void, png_save_uint_16, (png_bytep buf, unsigned int i)); -/* No png_save_int_16 -- may be added if there's a real need for it. */ -#endif - -#ifdef PNG_USE_READ_MACROS -/* Inline macros to do direct reads of bytes from the input buffer. - * The png_get_int_32() routine assumes we are using two's complement - * format for negative values, which is almost certainly true. - */ -# define png_get_uint_32(buf) \ - (((png_uint_32)(*(buf)) << 24) + \ - ((png_uint_32)(*((buf) + 1)) << 16) + \ - ((png_uint_32)(*((buf) + 2)) << 8) + \ - ((png_uint_32)(*((buf) + 3)))) - - /* From libpng-1.4.0 until 1.4.4, the png_get_uint_16 macro (but not the - * function) incorrectly returned a value of type png_uint_32. - */ -# define png_get_uint_16(buf) \ - ((png_uint_16) \ - (((unsigned int)(*(buf)) << 8) + \ - ((unsigned int)(*((buf) + 1))))) - -# define png_get_int_32(buf) \ - ((png_int_32)((*(buf) & 0x80) \ - ? -((png_int_32)((png_get_uint_32(buf) ^ 0xffffffffL) + 1)) \ - : (png_int_32)png_get_uint_32(buf))) -#endif - -/* Maintainer: Put new public prototypes here ^, in libpng.3, and project - * defs - */ - -/* The last ordinal number (this is the *last* one already used; the next - * one to use is one more than this.) Maintainer, remember to add an entry to - * scripts/symbols.def as well. - */ -#ifdef PNG_EXPORT_LAST_ORDINAL - PNG_EXPORT_LAST_ORDINAL(221); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* PNG_VERSION_INFO_ONLY */ -/* Do not put anything past this line */ -#endif /* PNG_H */ + +/* png.h - header file for PNG reference library + * + * libpng version 1.6.13 - August 21, 2014 + * Copyright (c) 1998-2014 Glenn Randers-Pehrson + * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) + * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * + * This code is released under the libpng license (See LICENSE, below) + * + * Authors and maintainers: + * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat + * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger + * libpng versions 0.97, January 1998, through 1.6.13 - August 21, 2014: Glenn + * See also "Contributing Authors", below. + * + * Note about libpng version numbers: + * + * Due to various miscommunications, unforeseen code incompatibilities + * and occasional factors outside the authors' control, version numbering + * on the library has not always been consistent and straightforward. + * The following table summarizes matters since version 0.89c, which was + * the first widely used release: + * + * source png.h png.h shared-lib + * version string int version + * ------- ------ ----- ---------- + * 0.89c "1.0 beta 3" 0.89 89 1.0.89 + * 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90] + * 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95] + * 0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96] + * 0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97] + * 0.97c 0.97 97 2.0.97 + * 0.98 0.98 98 2.0.98 + * 0.99 0.99 98 2.0.99 + * 0.99a-m 0.99 99 2.0.99 + * 1.00 1.00 100 2.1.0 [100 should be 10000] + * 1.0.0 (from here on, the 100 2.1.0 [100 should be 10000] + * 1.0.1 png.h string is 10001 2.1.0 + * 1.0.1a-e identical to the 10002 from here on, the shared library + * 1.0.2 source version) 10002 is 2.V where V is the source code + * 1.0.2a-b 10003 version, except as noted. + * 1.0.3 10003 + * 1.0.3a-d 10004 + * 1.0.4 10004 + * 1.0.4a-f 10005 + * 1.0.5 (+ 2 patches) 10005 + * 1.0.5a-d 10006 + * 1.0.5e-r 10100 (not source compatible) + * 1.0.5s-v 10006 (not binary compatible) + * 1.0.6 (+ 3 patches) 10006 (still binary incompatible) + * 1.0.6d-f 10007 (still binary incompatible) + * 1.0.6g 10007 + * 1.0.6h 10007 10.6h (testing xy.z so-numbering) + * 1.0.6i 10007 10.6i + * 1.0.6j 10007 2.1.0.6j (incompatible with 1.0.0) + * 1.0.7beta11-14 DLLNUM 10007 2.1.0.7beta11-14 (binary compatible) + * 1.0.7beta15-18 1 10007 2.1.0.7beta15-18 (binary compatible) + * 1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible) + * 1.0.7 1 10007 (still compatible) + * 1.0.8beta1-4 1 10008 2.1.0.8beta1-4 + * 1.0.8rc1 1 10008 2.1.0.8rc1 + * 1.0.8 1 10008 2.1.0.8 + * 1.0.9beta1-6 1 10009 2.1.0.9beta1-6 + * 1.0.9rc1 1 10009 2.1.0.9rc1 + * 1.0.9beta7-10 1 10009 2.1.0.9beta7-10 + * 1.0.9rc2 1 10009 2.1.0.9rc2 + * 1.0.9 1 10009 2.1.0.9 + * 1.0.10beta1 1 10010 2.1.0.10beta1 + * 1.0.10rc1 1 10010 2.1.0.10rc1 + * 1.0.10 1 10010 2.1.0.10 + * 1.0.11beta1-3 1 10011 2.1.0.11beta1-3 + * 1.0.11rc1 1 10011 2.1.0.11rc1 + * 1.0.11 1 10011 2.1.0.11 + * 1.0.12beta1-2 2 10012 2.1.0.12beta1-2 + * 1.0.12rc1 2 10012 2.1.0.12rc1 + * 1.0.12 2 10012 2.1.0.12 + * 1.1.0a-f - 10100 2.1.1.0a-f (branch abandoned) + * 1.2.0beta1-2 2 10200 2.1.2.0beta1-2 + * 1.2.0beta3-5 3 10200 3.1.2.0beta3-5 + * 1.2.0rc1 3 10200 3.1.2.0rc1 + * 1.2.0 3 10200 3.1.2.0 + * 1.2.1beta1-4 3 10201 3.1.2.1beta1-4 + * 1.2.1rc1-2 3 10201 3.1.2.1rc1-2 + * 1.2.1 3 10201 3.1.2.1 + * 1.2.2beta1-6 12 10202 12.so.0.1.2.2beta1-6 + * 1.0.13beta1 10 10013 10.so.0.1.0.13beta1 + * 1.0.13rc1 10 10013 10.so.0.1.0.13rc1 + * 1.2.2rc1 12 10202 12.so.0.1.2.2rc1 + * 1.0.13 10 10013 10.so.0.1.0.13 + * 1.2.2 12 10202 12.so.0.1.2.2 + * 1.2.3rc1-6 12 10203 12.so.0.1.2.3rc1-6 + * 1.2.3 12 10203 12.so.0.1.2.3 + * 1.2.4beta1-3 13 10204 12.so.0.1.2.4beta1-3 + * 1.0.14rc1 13 10014 10.so.0.1.0.14rc1 + * 1.2.4rc1 13 10204 12.so.0.1.2.4rc1 + * 1.0.14 10 10014 10.so.0.1.0.14 + * 1.2.4 13 10204 12.so.0.1.2.4 + * 1.2.5beta1-2 13 10205 12.so.0.1.2.5beta1-2 + * 1.0.15rc1-3 10 10015 10.so.0.1.0.15rc1-3 + * 1.2.5rc1-3 13 10205 12.so.0.1.2.5rc1-3 + * 1.0.15 10 10015 10.so.0.1.0.15 + * 1.2.5 13 10205 12.so.0.1.2.5 + * 1.2.6beta1-4 13 10206 12.so.0.1.2.6beta1-4 + * 1.0.16 10 10016 10.so.0.1.0.16 + * 1.2.6 13 10206 12.so.0.1.2.6 + * 1.2.7beta1-2 13 10207 12.so.0.1.2.7beta1-2 + * 1.0.17rc1 10 10017 12.so.0.1.0.17rc1 + * 1.2.7rc1 13 10207 12.so.0.1.2.7rc1 + * 1.0.17 10 10017 12.so.0.1.0.17 + * 1.2.7 13 10207 12.so.0.1.2.7 + * 1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5 + * 1.0.18rc1-5 10 10018 12.so.0.1.0.18rc1-5 + * 1.2.8rc1-5 13 10208 12.so.0.1.2.8rc1-5 + * 1.0.18 10 10018 12.so.0.1.0.18 + * 1.2.8 13 10208 12.so.0.1.2.8 + * 1.2.9beta1-3 13 10209 12.so.0.1.2.9beta1-3 + * 1.2.9beta4-11 13 10209 12.so.0.9[.0] + * 1.2.9rc1 13 10209 12.so.0.9[.0] + * 1.2.9 13 10209 12.so.0.9[.0] + * 1.2.10beta1-7 13 10210 12.so.0.10[.0] + * 1.2.10rc1-2 13 10210 12.so.0.10[.0] + * 1.2.10 13 10210 12.so.0.10[.0] + * 1.4.0beta1-5 14 10400 14.so.0.0[.0] + * 1.2.11beta1-4 13 10211 12.so.0.11[.0] + * 1.4.0beta7-8 14 10400 14.so.0.0[.0] + * 1.2.11 13 10211 12.so.0.11[.0] + * 1.2.12 13 10212 12.so.0.12[.0] + * 1.4.0beta9-14 14 10400 14.so.0.0[.0] + * 1.2.13 13 10213 12.so.0.13[.0] + * 1.4.0beta15-36 14 10400 14.so.0.0[.0] + * 1.4.0beta37-87 14 10400 14.so.14.0[.0] + * 1.4.0rc01 14 10400 14.so.14.0[.0] + * 1.4.0beta88-109 14 10400 14.so.14.0[.0] + * 1.4.0rc02-08 14 10400 14.so.14.0[.0] + * 1.4.0 14 10400 14.so.14.0[.0] + * 1.4.1beta01-03 14 10401 14.so.14.1[.0] + * 1.4.1rc01 14 10401 14.so.14.1[.0] + * 1.4.1beta04-12 14 10401 14.so.14.1[.0] + * 1.4.1 14 10401 14.so.14.1[.0] + * 1.4.2 14 10402 14.so.14.2[.0] + * 1.4.3 14 10403 14.so.14.3[.0] + * 1.4.4 14 10404 14.so.14.4[.0] + * 1.5.0beta01-58 15 10500 15.so.15.0[.0] + * 1.5.0rc01-07 15 10500 15.so.15.0[.0] + * 1.5.0 15 10500 15.so.15.0[.0] + * 1.5.1beta01-11 15 10501 15.so.15.1[.0] + * 1.5.1rc01-02 15 10501 15.so.15.1[.0] + * 1.5.1 15 10501 15.so.15.1[.0] + * 1.5.2beta01-03 15 10502 15.so.15.2[.0] + * 1.5.2rc01-03 15 10502 15.so.15.2[.0] + * 1.5.2 15 10502 15.so.15.2[.0] + * 1.5.3beta01-10 15 10503 15.so.15.3[.0] + * 1.5.3rc01-02 15 10503 15.so.15.3[.0] + * 1.5.3beta11 15 10503 15.so.15.3[.0] + * 1.5.3 [omitted] + * 1.5.4beta01-08 15 10504 15.so.15.4[.0] + * 1.5.4rc01 15 10504 15.so.15.4[.0] + * 1.5.4 15 10504 15.so.15.4[.0] + * 1.5.5beta01-08 15 10505 15.so.15.5[.0] + * 1.5.5rc01 15 10505 15.so.15.5[.0] + * 1.5.5 15 10505 15.so.15.5[.0] + * 1.5.6beta01-07 15 10506 15.so.15.6[.0] + * 1.5.6rc01-03 15 10506 15.so.15.6[.0] + * 1.5.6 15 10506 15.so.15.6[.0] + * 1.5.7beta01-05 15 10507 15.so.15.7[.0] + * 1.5.7rc01-03 15 10507 15.so.15.7[.0] + * 1.5.7 15 10507 15.so.15.7[.0] + * 1.6.0beta01-40 16 10600 16.so.16.0[.0] + * 1.6.0rc01-08 16 10600 16.so.16.0[.0] + * 1.6.0 16 10600 16.so.16.0[.0] + * 1.6.1beta01-09 16 10601 16.so.16.1[.0] + * 1.6.1rc01 16 10601 16.so.16.1[.0] + * 1.6.1 16 10601 16.so.16.1[.0] + * 1.6.2beta01 16 10602 16.so.16.2[.0] + * 1.6.2rc01-06 16 10602 16.so.16.2[.0] + * 1.6.2 16 10602 16.so.16.2[.0] + * 1.6.3beta01-11 16 10603 16.so.16.3[.0] + * 1.6.3rc01 16 10603 16.so.16.3[.0] + * 1.6.3 16 10603 16.so.16.3[.0] + * 1.6.4beta01-02 16 10604 16.so.16.4[.0] + * 1.6.4rc01 16 10604 16.so.16.4[.0] + * 1.6.4 16 10604 16.so.16.4[.0] + * 1.6.5 16 10605 16.so.16.5[.0] + * 1.6.6 16 10606 16.so.16.6[.0] + * 1.6.7beta01-04 16 10607 16.so.16.7[.0] + * 1.6.7rc01-03 16 10607 16.so.16.7[.0] + * 1.6.7 16 10607 16.so.16.7[.0] + * 1.6.8beta01-02 16 10608 16.so.16.8[.0] + * 1.6.8rc01-02 16 10608 16.so.16.8[.0] + * 1.6.8 16 10608 16.so.16.8[.0] + * 1.6.9beta01-04 16 10609 16.so.16.9[.0] + * 1.6.9rc01-02 16 10609 16.so.16.9[.0] + * 1.6.9 16 10609 16.so.16.9[.0] + * 1.6.10beta01-03 16 10610 16.so.16.10[.0] + * 1.6.10rc01-03 16 10610 16.so.16.10[.0] + * 1.6.10 16 10610 16.so.16.10[.0] + * 1.6.11beta01-06 16 10611 16.so.16.11[.0] + * 1.6.11rc01-02 16 10611 16.so.16.11[.0] + * 1.6.11 16 10611 16.so.16.11[.0] + * 1.6.12rc01-03 16 10612 16.so.16.12[.0] + * 1.6.12 16 10612 16.so.16.12[.0] + * 1.6.13beta01-04 16 10613 16.so.16.13[.0] + * 1.6.13rc01-02 16 10613 16.so.16.13[.0] + * 1.6.13 16 10613 16.so.16.13[.0] + * + * Henceforth the source version will match the shared-library major + * and minor numbers; the shared-library major version number will be + * used for changes in backward compatibility, as it is intended. The + * PNG_LIBPNG_VER macro, which is not used within libpng but is available + * for applications, is an unsigned integer of the form xyyzz corresponding + * to the source version x.y.z (leading zeros in y and z). Beta versions + * were given the previous public release number plus a letter, until + * version 1.0.6j; from then on they were given the upcoming public + * release number plus "betaNN" or "rcNN". + * + * Binary incompatibility exists only when applications make direct access + * to the info_ptr or png_ptr members through png.h, and the compiled + * application is loaded with a different version of the library. + * + * DLLNUM will change each time there are forward or backward changes + * in binary compatibility (e.g., when a new feature is added). + * + * See libpng-manual.txt or libpng.3 for more information. The PNG + * specification is available as a W3C Recommendation and as an ISO + * Specification, + * + * If you just need to read a PNG file and don't want to read the documentation + * skip to the end of this file and read the section entitled 'simplified API'. + */ + +/* Version information for png.h - this should match the version in png.c */ +#define PNG_LIBPNG_VER_STRING "1.6.13" +#define PNG_HEADER_VERSION_STRING \ + " libpng version 1.6.13 - August 21, 2014\n" + +#define PNG_LIBPNG_VER_SONUM 16 +#define PNG_LIBPNG_VER_DLLNUM 16 + +/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ +#define PNG_LIBPNG_VER_MAJOR 1 +#define PNG_LIBPNG_VER_MINOR 6 +#define PNG_LIBPNG_VER_RELEASE 13 + +/* This should match the numeric part of the final component of + * PNG_LIBPNG_VER_STRING, omitting any leading zero: + */ + +#define PNG_LIBPNG_VER_BUILD 0 + +/* Release Status */ +#define PNG_LIBPNG_BUILD_ALPHA 1 +#define PNG_LIBPNG_BUILD_BETA 2 +#define PNG_LIBPNG_BUILD_RC 3 +#define PNG_LIBPNG_BUILD_STABLE 4 +#define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7 + +/* Release-Specific Flags */ +#define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with + PNG_LIBPNG_BUILD_STABLE only */ +#define PNG_LIBPNG_BUILD_PRIVATE 16 /* Cannot be OR'ed with + PNG_LIBPNG_BUILD_SPECIAL */ +#define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with + PNG_LIBPNG_BUILD_PRIVATE */ + +#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE + +/* Careful here. At one time, Guy wanted to use 082, but that would be octal. + * We must not include leading zeros. + * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only + * version 1.0.0 was mis-numbered 100 instead of 10000). From + * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release + */ +#define PNG_LIBPNG_VER 10613 /* 1.6.13 */ + +/* Library configuration: these options cannot be changed after + * the library has been built. + */ +#ifndef PNGLCONF_H + /* If pnglibconf.h is missing, you can + * copy scripts/pnglibconf.h.prebuilt to pnglibconf.h + */ +# include "pnglibconf.h" +#endif + +#ifndef PNG_VERSION_INFO_ONLY + /* Machine specific configuration. */ +# include "pngconf.h" +#endif + +/* + * Added at libpng-1.2.8 + * + * Ref MSDN: Private as priority over Special + * VS_FF_PRIVATEBUILD File *was not* built using standard release + * procedures. If this value is given, the StringFileInfo block must + * contain a PrivateBuild string. + * + * VS_FF_SPECIALBUILD File *was* built by the original company using + * standard release procedures but is a variation of the standard + * file of the same version number. If this value is given, the + * StringFileInfo block must contain a SpecialBuild string. + */ + +#ifdef PNG_USER_PRIVATEBUILD /* From pnglibconf.h */ +# define PNG_LIBPNG_BUILD_TYPE \ + (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE) +#else +# ifdef PNG_LIBPNG_SPECIALBUILD +# define PNG_LIBPNG_BUILD_TYPE \ + (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL) +# else +# define PNG_LIBPNG_BUILD_TYPE (PNG_LIBPNG_BUILD_BASE_TYPE) +# endif +#endif + +#ifndef PNG_VERSION_INFO_ONLY + +/* Inhibit C++ name-mangling for libpng functions but not for system calls. */ +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/* Version information for C files, stored in png.c. This had better match + * the version above. + */ +#define png_libpng_ver png_get_header_ver(NULL) + +/* This file is arranged in several sections: + * + * 1. Any configuration options that can be specified by for the application + * code when it is built. (Build time configuration is in pnglibconf.h) + * 2. Type definitions (base types are defined in pngconf.h), structure + * definitions. + * 3. Exported library functions. + * 4. Simplified API. + * + * The library source code has additional files (principally pngpriv.h) that + * allow configuration of the library. + */ +/* Section 1: run time configuration + * See pnglibconf.h for build time configuration + * + * Run time configuration allows the application to choose between + * implementations of certain arithmetic APIs. The default is set + * at build time and recorded in pnglibconf.h, but it is safe to + * override these (and only these) settings. Note that this won't + * change what the library does, only application code, and the + * settings can (and probably should) be made on a per-file basis + * by setting the #defines before including png.h + * + * Use macros to read integers from PNG data or use the exported + * functions? + * PNG_USE_READ_MACROS: use the macros (see below) Note that + * the macros evaluate their argument multiple times. + * PNG_NO_USE_READ_MACROS: call the relevant library function. + * + * Use the alternative algorithm for compositing alpha samples that + * does not use division? + * PNG_READ_COMPOSITE_NODIV_SUPPORTED: use the 'no division' + * algorithm. + * PNG_NO_READ_COMPOSITE_NODIV: use the 'division' algorithm. + * + * How to handle benign errors if PNG_ALLOW_BENIGN_ERRORS is + * false? + * PNG_ALLOW_BENIGN_ERRORS: map calls to the benign error + * APIs to png_warning. + * Otherwise the calls are mapped to png_error. + */ + +/* Section 2: type definitions, including structures and compile time + * constants. + * See pngconf.h for base types that vary by machine/system + */ + +/* This triggers a compiler error in png.c, if png.c and png.h + * do not agree upon the version number. + */ +typedef char* png_libpng_version_1_6_13; + +/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info. + * + * png_struct is the cache of information used while reading or writing a single + * PNG file. One of these is always required, although the simplified API + * (below) hides the creation and destruction of it. + */ +typedef struct png_struct_def png_struct; +typedef const png_struct * png_const_structp; +typedef png_struct * png_structp; +typedef png_struct * * png_structpp; + +/* png_info contains information read from or to be written to a PNG file. One + * or more of these must exist while reading or creating a PNG file. The + * information is not used by libpng during read but is used to control what + * gets written when a PNG file is created. "png_get_" function calls read + * information during read and "png_set_" functions calls write information + * when creating a PNG. + * been moved into a separate header file that is not accessible to + * applications. Read libpng-manual.txt or libpng.3 for more info. + */ +typedef struct png_info_def png_info; +typedef png_info * png_infop; +typedef const png_info * png_const_infop; +typedef png_info * * png_infopp; + +/* Types with names ending 'p' are pointer types. The corresponding types with + * names ending 'rp' are identical pointer types except that the pointer is + * marked 'restrict', which means that it is the only pointer to the object + * passed to the function. Applications should not use the 'restrict' types; + * it is always valid to pass 'p' to a pointer with a function argument of the + * corresponding 'rp' type. Different compilers have different rules with + * regard to type matching in the presence of 'restrict'. For backward + * compatibility libpng callbacks never have 'restrict' in their parameters and, + * consequentially, writing portable application code is extremely difficult if + * an attempt is made to use 'restrict'. + */ +typedef png_struct * PNG_RESTRICT png_structrp; +typedef const png_struct * PNG_RESTRICT png_const_structrp; +typedef png_info * PNG_RESTRICT png_inforp; +typedef const png_info * PNG_RESTRICT png_const_inforp; + +/* Three color definitions. The order of the red, green, and blue, (and the + * exact size) is not important, although the size of the fields need to + * be png_byte or png_uint_16 (as defined below). + */ +typedef struct png_color_struct +{ + png_byte red; + png_byte green; + png_byte blue; +} png_color; +typedef png_color * png_colorp; +typedef const png_color * png_const_colorp; +typedef png_color * * png_colorpp; + +typedef struct png_color_16_struct +{ + png_byte index; /* used for palette files */ + png_uint_16 red; /* for use in red green blue files */ + png_uint_16 green; + png_uint_16 blue; + png_uint_16 gray; /* for use in grayscale files */ +} png_color_16; +typedef png_color_16 * png_color_16p; +typedef const png_color_16 * png_const_color_16p; +typedef png_color_16 * * png_color_16pp; + +typedef struct png_color_8_struct +{ + png_byte red; /* for use in red green blue files */ + png_byte green; + png_byte blue; + png_byte gray; /* for use in grayscale files */ + png_byte alpha; /* for alpha channel files */ +} png_color_8; +typedef png_color_8 * png_color_8p; +typedef const png_color_8 * png_const_color_8p; +typedef png_color_8 * * png_color_8pp; + +/* + * The following two structures are used for the in-core representation + * of sPLT chunks. + */ +typedef struct png_sPLT_entry_struct +{ + png_uint_16 red; + png_uint_16 green; + png_uint_16 blue; + png_uint_16 alpha; + png_uint_16 frequency; +} png_sPLT_entry; +typedef png_sPLT_entry * png_sPLT_entryp; +typedef const png_sPLT_entry * png_const_sPLT_entryp; +typedef png_sPLT_entry * * png_sPLT_entrypp; + +/* When the depth of the sPLT palette is 8 bits, the color and alpha samples + * occupy the LSB of their respective members, and the MSB of each member + * is zero-filled. The frequency member always occupies the full 16 bits. + */ + +typedef struct png_sPLT_struct +{ + png_charp name; /* palette name */ + png_byte depth; /* depth of palette samples */ + png_sPLT_entryp entries; /* palette entries */ + png_int_32 nentries; /* number of palette entries */ +} png_sPLT_t; +typedef png_sPLT_t * png_sPLT_tp; +typedef const png_sPLT_t * png_const_sPLT_tp; +typedef png_sPLT_t * * png_sPLT_tpp; + +#ifdef PNG_TEXT_SUPPORTED +/* png_text holds the contents of a text/ztxt/itxt chunk in a PNG file, + * and whether that contents is compressed or not. The "key" field + * points to a regular zero-terminated C string. The "text" fields can be a + * regular C string, an empty string, or a NULL pointer. + * However, the structure returned by png_get_text() will always contain + * the "text" field as a regular zero-terminated C string (possibly + * empty), never a NULL pointer, so it can be safely used in printf() and + * other string-handling functions. Note that the "itxt_length", "lang", and + * "lang_key" members of the structure only exist when the library is built + * with iTXt chunk support. Prior to libpng-1.4.0 the library was built by + * default without iTXt support. Also note that when iTXt *is* supported, + * the "lang" and "lang_key" fields contain NULL pointers when the + * "compression" field contains * PNG_TEXT_COMPRESSION_NONE or + * PNG_TEXT_COMPRESSION_zTXt. Note that the "compression value" is not the + * same as what appears in the PNG tEXt/zTXt/iTXt chunk's "compression flag" + * which is always 0 or 1, or its "compression method" which is always 0. + */ +typedef struct png_text_struct +{ + int compression; /* compression value: + -1: tEXt, none + 0: zTXt, deflate + 1: iTXt, none + 2: iTXt, deflate */ + png_charp key; /* keyword, 1-79 character description of "text" */ + png_charp text; /* comment, may be an empty string (ie "") + or a NULL pointer */ + png_size_t text_length; /* length of the text string */ + png_size_t itxt_length; /* length of the itxt string */ + png_charp lang; /* language code, 0-79 characters + or a NULL pointer */ + png_charp lang_key; /* keyword translated UTF-8 string, 0 or more + chars or a NULL pointer */ +} png_text; +typedef png_text * png_textp; +typedef const png_text * png_const_textp; +typedef png_text * * png_textpp; +#endif + +/* Supported compression types for text in PNG files (tEXt, and zTXt). + * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed. */ +#define PNG_TEXT_COMPRESSION_NONE_WR -3 +#define PNG_TEXT_COMPRESSION_zTXt_WR -2 +#define PNG_TEXT_COMPRESSION_NONE -1 +#define PNG_TEXT_COMPRESSION_zTXt 0 +#define PNG_ITXT_COMPRESSION_NONE 1 +#define PNG_ITXT_COMPRESSION_zTXt 2 +#define PNG_TEXT_COMPRESSION_LAST 3 /* Not a valid value */ + +/* png_time is a way to hold the time in an machine independent way. + * Two conversions are provided, both from time_t and struct tm. There + * is no portable way to convert to either of these structures, as far + * as I know. If you know of a portable way, send it to me. As a side + * note - PNG has always been Year 2000 compliant! + */ +typedef struct png_time_struct +{ + png_uint_16 year; /* full year, as in, 1995 */ + png_byte month; /* month of year, 1 - 12 */ + png_byte day; /* day of month, 1 - 31 */ + png_byte hour; /* hour of day, 0 - 23 */ + png_byte minute; /* minute of hour, 0 - 59 */ + png_byte second; /* second of minute, 0 - 60 (for leap seconds) */ +} png_time; +typedef png_time * png_timep; +typedef const png_time * png_const_timep; +typedef png_time * * png_timepp; + +#if defined(PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED) ||\ + defined(PNG_USER_CHUNKS_SUPPORTED) +/* png_unknown_chunk is a structure to hold queued chunks for which there is + * no specific support. The idea is that we can use this to queue + * up private chunks for output even though the library doesn't actually + * know about their semantics. + * + * The data in the structure is set by libpng on read and used on write. + */ +typedef struct png_unknown_chunk_t +{ + png_byte name[5]; /* Textual chunk name with '\0' terminator */ + png_byte *data; /* Data, should not be modified on read! */ + png_size_t size; + + /* On write 'location' must be set using the flag values listed below. + * Notice that on read it is set by libpng however the values stored have + * more bits set than are listed below. Always treat the value as a + * bitmask. On write set only one bit - setting multiple bits may cause the + * chunk to be written in multiple places. + */ + png_byte location; /* mode of operation at read time */ +} +png_unknown_chunk; + +typedef png_unknown_chunk * png_unknown_chunkp; +typedef const png_unknown_chunk * png_const_unknown_chunkp; +typedef png_unknown_chunk * * png_unknown_chunkpp; +#endif + +/* Flag values for the unknown chunk location byte. */ +#define PNG_HAVE_IHDR 0x01 +#define PNG_HAVE_PLTE 0x02 +#define PNG_AFTER_IDAT 0x08 + +/* Maximum positive integer used in PNG is (2^31)-1 */ +#define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL) +#define PNG_UINT_32_MAX ((png_uint_32)(-1)) +#define PNG_SIZE_MAX ((png_size_t)(-1)) + +/* These are constants for fixed point values encoded in the + * PNG specification manner (x100000) + */ +#define PNG_FP_1 100000 +#define PNG_FP_HALF 50000 +#define PNG_FP_MAX ((png_fixed_point)0x7fffffffL) +#define PNG_FP_MIN (-PNG_FP_MAX) + +/* These describe the color_type field in png_info. */ +/* color type masks */ +#define PNG_COLOR_MASK_PALETTE 1 +#define PNG_COLOR_MASK_COLOR 2 +#define PNG_COLOR_MASK_ALPHA 4 + +/* color types. Note that not all combinations are legal */ +#define PNG_COLOR_TYPE_GRAY 0 +#define PNG_COLOR_TYPE_PALETTE (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE) +#define PNG_COLOR_TYPE_RGB (PNG_COLOR_MASK_COLOR) +#define PNG_COLOR_TYPE_RGB_ALPHA (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA) +#define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA) +/* aliases */ +#define PNG_COLOR_TYPE_RGBA PNG_COLOR_TYPE_RGB_ALPHA +#define PNG_COLOR_TYPE_GA PNG_COLOR_TYPE_GRAY_ALPHA + +/* This is for compression type. PNG 1.0-1.2 only define the single type. */ +#define PNG_COMPRESSION_TYPE_BASE 0 /* Deflate method 8, 32K window */ +#define PNG_COMPRESSION_TYPE_DEFAULT PNG_COMPRESSION_TYPE_BASE + +/* This is for filter type. PNG 1.0-1.2 only define the single type. */ +#define PNG_FILTER_TYPE_BASE 0 /* Single row per-byte filtering */ +#define PNG_INTRAPIXEL_DIFFERENCING 64 /* Used only in MNG datastreams */ +#define PNG_FILTER_TYPE_DEFAULT PNG_FILTER_TYPE_BASE + +/* These are for the interlacing type. These values should NOT be changed. */ +#define PNG_INTERLACE_NONE 0 /* Non-interlaced image */ +#define PNG_INTERLACE_ADAM7 1 /* Adam7 interlacing */ +#define PNG_INTERLACE_LAST 2 /* Not a valid value */ + +/* These are for the oFFs chunk. These values should NOT be changed. */ +#define PNG_OFFSET_PIXEL 0 /* Offset in pixels */ +#define PNG_OFFSET_MICROMETER 1 /* Offset in micrometers (1/10^6 meter) */ +#define PNG_OFFSET_LAST 2 /* Not a valid value */ + +/* These are for the pCAL chunk. These values should NOT be changed. */ +#define PNG_EQUATION_LINEAR 0 /* Linear transformation */ +#define PNG_EQUATION_BASE_E 1 /* Exponential base e transform */ +#define PNG_EQUATION_ARBITRARY 2 /* Arbitrary base exponential transform */ +#define PNG_EQUATION_HYPERBOLIC 3 /* Hyperbolic sine transformation */ +#define PNG_EQUATION_LAST 4 /* Not a valid value */ + +/* These are for the sCAL chunk. These values should NOT be changed. */ +#define PNG_SCALE_UNKNOWN 0 /* unknown unit (image scale) */ +#define PNG_SCALE_METER 1 /* meters per pixel */ +#define PNG_SCALE_RADIAN 2 /* radians per pixel */ +#define PNG_SCALE_LAST 3 /* Not a valid value */ + +/* These are for the pHYs chunk. These values should NOT be changed. */ +#define PNG_RESOLUTION_UNKNOWN 0 /* pixels/unknown unit (aspect ratio) */ +#define PNG_RESOLUTION_METER 1 /* pixels/meter */ +#define PNG_RESOLUTION_LAST 2 /* Not a valid value */ + +/* These are for the sRGB chunk. These values should NOT be changed. */ +#define PNG_sRGB_INTENT_PERCEPTUAL 0 +#define PNG_sRGB_INTENT_RELATIVE 1 +#define PNG_sRGB_INTENT_SATURATION 2 +#define PNG_sRGB_INTENT_ABSOLUTE 3 +#define PNG_sRGB_INTENT_LAST 4 /* Not a valid value */ + +/* This is for text chunks */ +#define PNG_KEYWORD_MAX_LENGTH 79 + +/* Maximum number of entries in PLTE/sPLT/tRNS arrays */ +#define PNG_MAX_PALETTE_LENGTH 256 + +/* These determine if an ancillary chunk's data has been successfully read + * from the PNG header, or if the application has filled in the corresponding + * data in the info_struct to be written into the output file. The values + * of the PNG_INFO_ defines should NOT be changed. + */ +#define PNG_INFO_gAMA 0x0001 +#define PNG_INFO_sBIT 0x0002 +#define PNG_INFO_cHRM 0x0004 +#define PNG_INFO_PLTE 0x0008 +#define PNG_INFO_tRNS 0x0010 +#define PNG_INFO_bKGD 0x0020 +#define PNG_INFO_hIST 0x0040 +#define PNG_INFO_pHYs 0x0080 +#define PNG_INFO_oFFs 0x0100 +#define PNG_INFO_tIME 0x0200 +#define PNG_INFO_pCAL 0x0400 +#define PNG_INFO_sRGB 0x0800 /* GR-P, 0.96a */ +#define PNG_INFO_iCCP 0x1000 /* ESR, 1.0.6 */ +#define PNG_INFO_sPLT 0x2000 /* ESR, 1.0.6 */ +#define PNG_INFO_sCAL 0x4000 /* ESR, 1.0.6 */ +#define PNG_INFO_IDAT 0x8000 /* ESR, 1.0.6 */ + +/* This is used for the transformation routines, as some of them + * change these values for the row. It also should enable using + * the routines for other purposes. + */ +typedef struct png_row_info_struct +{ + png_uint_32 width; /* width of row */ + png_size_t rowbytes; /* number of bytes in row */ + png_byte color_type; /* color type of row */ + png_byte bit_depth; /* bit depth of row */ + png_byte channels; /* number of channels (1, 2, 3, or 4) */ + png_byte pixel_depth; /* bits per pixel (depth * channels) */ +} png_row_info; + +typedef png_row_info * png_row_infop; +typedef png_row_info * * png_row_infopp; + +/* These are the function types for the I/O functions and for the functions + * that allow the user to override the default I/O functions with his or her + * own. The png_error_ptr type should match that of user-supplied warning + * and error functions, while the png_rw_ptr type should match that of the + * user read/write data functions. Note that the 'write' function must not + * modify the buffer it is passed. The 'read' function, on the other hand, is + * expected to return the read data in the buffer. + */ +typedef PNG_CALLBACK(void, *png_error_ptr, (png_structp, png_const_charp)); +typedef PNG_CALLBACK(void, *png_rw_ptr, (png_structp, png_bytep, png_size_t)); +typedef PNG_CALLBACK(void, *png_flush_ptr, (png_structp)); +typedef PNG_CALLBACK(void, *png_read_status_ptr, (png_structp, png_uint_32, + int)); +typedef PNG_CALLBACK(void, *png_write_status_ptr, (png_structp, png_uint_32, + int)); + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +typedef PNG_CALLBACK(void, *png_progressive_info_ptr, (png_structp, png_infop)); +typedef PNG_CALLBACK(void, *png_progressive_end_ptr, (png_structp, png_infop)); + +/* The following callback receives png_uint_32 row_number, int pass for the + * png_bytep data of the row. When transforming an interlaced image the + * row number is the row number within the sub-image of the interlace pass, so + * the value will increase to the height of the sub-image (not the full image) + * then reset to 0 for the next pass. + * + * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to + * find the output pixel (x,y) given an interlaced sub-image pixel + * (row,col,pass). (See below for these macros.) + */ +typedef PNG_CALLBACK(void, *png_progressive_row_ptr, (png_structp, png_bytep, + png_uint_32, int)); +#endif + +#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ + defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) +typedef PNG_CALLBACK(void, *png_user_transform_ptr, (png_structp, png_row_infop, + png_bytep)); +#endif + +#ifdef PNG_USER_CHUNKS_SUPPORTED +typedef PNG_CALLBACK(int, *png_user_chunk_ptr, (png_structp, + png_unknown_chunkp)); +#endif +#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED +/* not used anywhere */ +/* typedef PNG_CALLBACK(void, *png_unknown_chunk_ptr, (png_structp)); */ +#endif + +#ifdef PNG_SETJMP_SUPPORTED +/* This must match the function definition in , and the application + * must include this before png.h to obtain the definition of jmp_buf. The + * function is required to be PNG_NORETURN, but this is not checked. If the + * function does return the application will crash via an abort() or similar + * system level call. + * + * If you get a warning here while building the library you may need to make + * changes to ensure that pnglibconf.h records the calling convention used by + * your compiler. This may be very difficult - try using a different compiler + * to build the library! + */ +PNG_FUNCTION(void, (PNGCAPI *png_longjmp_ptr), PNGARG((jmp_buf, int)), typedef); +#endif + +/* Transform masks for the high-level interface */ +#define PNG_TRANSFORM_IDENTITY 0x0000 /* read and write */ +#define PNG_TRANSFORM_STRIP_16 0x0001 /* read only */ +#define PNG_TRANSFORM_STRIP_ALPHA 0x0002 /* read only */ +#define PNG_TRANSFORM_PACKING 0x0004 /* read and write */ +#define PNG_TRANSFORM_PACKSWAP 0x0008 /* read and write */ +#define PNG_TRANSFORM_EXPAND 0x0010 /* read only */ +#define PNG_TRANSFORM_INVERT_MONO 0x0020 /* read and write */ +#define PNG_TRANSFORM_SHIFT 0x0040 /* read and write */ +#define PNG_TRANSFORM_BGR 0x0080 /* read and write */ +#define PNG_TRANSFORM_SWAP_ALPHA 0x0100 /* read and write */ +#define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */ +#define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */ +#define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* write only */ +/* Added to libpng-1.2.34 */ +#define PNG_TRANSFORM_STRIP_FILLER_BEFORE PNG_TRANSFORM_STRIP_FILLER +#define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */ +/* Added to libpng-1.4.0 */ +#define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 /* read only */ +/* Added to libpng-1.5.4 */ +#define PNG_TRANSFORM_EXPAND_16 0x4000 /* read only */ +#define PNG_TRANSFORM_SCALE_16 0x8000 /* read only */ + +/* Flags for MNG supported features */ +#define PNG_FLAG_MNG_EMPTY_PLTE 0x01 +#define PNG_FLAG_MNG_FILTER_64 0x04 +#define PNG_ALL_MNG_FEATURES 0x05 + +/* NOTE: prior to 1.5 these functions had no 'API' style declaration, + * this allowed the zlib default functions to be used on Windows + * platforms. In 1.5 the zlib default malloc (which just calls malloc and + * ignores the first argument) should be completely compatible with the + * following. + */ +typedef PNG_CALLBACK(png_voidp, *png_malloc_ptr, (png_structp, + png_alloc_size_t)); +typedef PNG_CALLBACK(void, *png_free_ptr, (png_structp, png_voidp)); + +/* Section 3: exported functions + * Here are the function definitions most commonly used. This is not + * the place to find out how to use libpng. See libpng-manual.txt for the + * full explanation, see example.c for the summary. This just provides + * a simple one line description of the use of each function. + * + * The PNG_EXPORT() and PNG_EXPORTA() macros used below are defined in + * pngconf.h and in the *.dfn files in the scripts directory. + * + * PNG_EXPORT(ordinal, type, name, (args)); + * + * ordinal: ordinal that is used while building + * *.def files. The ordinal value is only + * relevant when preprocessing png.h with + * the *.dfn files for building symbol table + * entries, and are removed by pngconf.h. + * type: return type of the function + * name: function name + * args: function arguments, with types + * + * When we wish to append attributes to a function prototype we use + * the PNG_EXPORTA() macro instead. + * + * PNG_EXPORTA(ordinal, type, name, (args), attributes); + * + * ordinal, type, name, and args: same as in PNG_EXPORT(). + * attributes: function attributes + */ + +/* Returns the version number of the library */ +PNG_EXPORT(1, png_uint_32, png_access_version_number, (void)); + +/* Tell lib we have already handled the first magic bytes. + * Handling more than 8 bytes from the beginning of the file is an error. + */ +PNG_EXPORT(2, void, png_set_sig_bytes, (png_structrp png_ptr, int num_bytes)); + +/* Check sig[start] through sig[start + num_to_check - 1] to see if it's a + * PNG file. Returns zero if the supplied bytes match the 8-byte PNG + * signature, and non-zero otherwise. Having num_to_check == 0 or + * start > 7 will always fail (ie return non-zero). + */ +PNG_EXPORT(3, int, png_sig_cmp, (png_const_bytep sig, png_size_t start, + png_size_t num_to_check)); + +/* Simple signature checking function. This is the same as calling + * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n). + */ +#define png_check_sig(sig, n) !png_sig_cmp((sig), 0, (n)) + +/* Allocate and initialize png_ptr struct for reading, and any other memory. */ +PNG_EXPORTA(4, png_structp, png_create_read_struct, + (png_const_charp user_png_ver, png_voidp error_ptr, + png_error_ptr error_fn, png_error_ptr warn_fn), + PNG_ALLOCATED); + +/* Allocate and initialize png_ptr struct for writing, and any other memory */ +PNG_EXPORTA(5, png_structp, png_create_write_struct, + (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, + png_error_ptr warn_fn), + PNG_ALLOCATED); + +PNG_EXPORT(6, png_size_t, png_get_compression_buffer_size, + (png_const_structrp png_ptr)); + +PNG_EXPORT(7, void, png_set_compression_buffer_size, (png_structrp png_ptr, + png_size_t size)); + +/* Moved from pngconf.h in 1.4.0 and modified to ensure setjmp/longjmp + * match up. + */ +#ifdef PNG_SETJMP_SUPPORTED +/* This function returns the jmp_buf built in to *png_ptr. It must be + * supplied with an appropriate 'longjmp' function to use on that jmp_buf + * unless the default error function is overridden in which case NULL is + * acceptable. The size of the jmp_buf is checked against the actual size + * allocated by the library - the call will return NULL on a mismatch + * indicating an ABI mismatch. + */ +PNG_EXPORT(8, jmp_buf*, png_set_longjmp_fn, (png_structrp png_ptr, + png_longjmp_ptr longjmp_fn, size_t jmp_buf_size)); +# define png_jmpbuf(png_ptr) \ + (*png_set_longjmp_fn((png_ptr), longjmp, (sizeof (jmp_buf)))) +#else +# define png_jmpbuf(png_ptr) \ + (LIBPNG_WAS_COMPILED_WITH__PNG_NO_SETJMP) +#endif +/* This function should be used by libpng applications in place of + * longjmp(png_ptr->jmpbuf, val). If longjmp_fn() has been set, it + * will use it; otherwise it will call PNG_ABORT(). This function was + * added in libpng-1.5.0. + */ +PNG_EXPORTA(9, void, png_longjmp, (png_const_structrp png_ptr, int val), + PNG_NORETURN); + +#ifdef PNG_READ_SUPPORTED +/* Reset the compression stream */ +PNG_EXPORTA(10, int, png_reset_zstream, (png_structrp png_ptr), PNG_DEPRECATED); +#endif + +/* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */ +#ifdef PNG_USER_MEM_SUPPORTED +PNG_EXPORTA(11, png_structp, png_create_read_struct_2, + (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, + png_error_ptr warn_fn, + png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), + PNG_ALLOCATED); +PNG_EXPORTA(12, png_structp, png_create_write_struct_2, + (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, + png_error_ptr warn_fn, + png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), + PNG_ALLOCATED); +#endif + +/* Write the PNG file signature. */ +PNG_EXPORT(13, void, png_write_sig, (png_structrp png_ptr)); + +/* Write a PNG chunk - size, type, (optional) data, CRC. */ +PNG_EXPORT(14, void, png_write_chunk, (png_structrp png_ptr, png_const_bytep + chunk_name, png_const_bytep data, png_size_t length)); + +/* Write the start of a PNG chunk - length and chunk name. */ +PNG_EXPORT(15, void, png_write_chunk_start, (png_structrp png_ptr, + png_const_bytep chunk_name, png_uint_32 length)); + +/* Write the data of a PNG chunk started with png_write_chunk_start(). */ +PNG_EXPORT(16, void, png_write_chunk_data, (png_structrp png_ptr, + png_const_bytep data, png_size_t length)); + +/* Finish a chunk started with png_write_chunk_start() (includes CRC). */ +PNG_EXPORT(17, void, png_write_chunk_end, (png_structrp png_ptr)); + +/* Allocate and initialize the info structure */ +PNG_EXPORTA(18, png_infop, png_create_info_struct, (png_const_structrp png_ptr), + PNG_ALLOCATED); + +/* DEPRECATED: this function allowed init structures to be created using the + * default allocation method (typically malloc). Use is deprecated in 1.6.0 and + * the API will be removed in the future. + */ +PNG_EXPORTA(19, void, png_info_init_3, (png_infopp info_ptr, + png_size_t png_info_struct_size), PNG_DEPRECATED); + +/* Writes all the PNG information before the image. */ +PNG_EXPORT(20, void, png_write_info_before_PLTE, + (png_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(21, void, png_write_info, + (png_structrp png_ptr, png_const_inforp info_ptr)); + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read the information before the actual image data. */ +PNG_EXPORT(22, void, png_read_info, + (png_structrp png_ptr, png_inforp info_ptr)); +#endif + +#ifdef PNG_TIME_RFC1123_SUPPORTED + /* Convert to a US string format: there is no localization support in this + * routine. The original implementation used a 29 character buffer in + * png_struct, this will be removed in future versions. + */ +#if PNG_LIBPNG_VER < 10700 +/* To do: remove this from libpng17 (and from libpng17/png.c and pngstruct.h) */ +PNG_EXPORTA(23, png_const_charp, png_convert_to_rfc1123, (png_structrp png_ptr, + png_const_timep ptime),PNG_DEPRECATED); +#endif +PNG_EXPORT(241, int, png_convert_to_rfc1123_buffer, (char out[29], + png_const_timep ptime)); +#endif + +#ifdef PNG_CONVERT_tIME_SUPPORTED +/* Convert from a struct tm to png_time */ +PNG_EXPORT(24, void, png_convert_from_struct_tm, (png_timep ptime, + const struct tm * ttime)); + +/* Convert from time_t to png_time. Uses gmtime() */ +PNG_EXPORT(25, void, png_convert_from_time_t, (png_timep ptime, time_t ttime)); +#endif /* PNG_CONVERT_tIME_SUPPORTED */ + +#ifdef PNG_READ_EXPAND_SUPPORTED +/* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */ +PNG_EXPORT(26, void, png_set_expand, (png_structrp png_ptr)); +PNG_EXPORT(27, void, png_set_expand_gray_1_2_4_to_8, (png_structrp png_ptr)); +PNG_EXPORT(28, void, png_set_palette_to_rgb, (png_structrp png_ptr)); +PNG_EXPORT(29, void, png_set_tRNS_to_alpha, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_EXPAND_16_SUPPORTED +/* Expand to 16-bit channels, forces conversion of palette to RGB and expansion + * of a tRNS chunk if present. + */ +PNG_EXPORT(221, void, png_set_expand_16, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) +/* Use blue, green, red order for pixels. */ +PNG_EXPORT(30, void, png_set_bgr, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED +/* Expand the grayscale to 24-bit RGB if necessary. */ +PNG_EXPORT(31, void, png_set_gray_to_rgb, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED +/* Reduce RGB to grayscale. */ +#define PNG_ERROR_ACTION_NONE 1 +#define PNG_ERROR_ACTION_WARN 2 +#define PNG_ERROR_ACTION_ERROR 3 +#define PNG_RGB_TO_GRAY_DEFAULT (-1)/*for red/green coefficients*/ + +PNG_FP_EXPORT(32, void, png_set_rgb_to_gray, (png_structrp png_ptr, + int error_action, double red, double green)) +PNG_FIXED_EXPORT(33, void, png_set_rgb_to_gray_fixed, (png_structrp png_ptr, + int error_action, png_fixed_point red, png_fixed_point green)) + +PNG_EXPORT(34, png_byte, png_get_rgb_to_gray_status, (png_const_structrp + png_ptr)); +#endif + +#ifdef PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED +PNG_EXPORT(35, void, png_build_grayscale_palette, (int bit_depth, + png_colorp palette)); +#endif + +#ifdef PNG_READ_ALPHA_MODE_SUPPORTED +/* How the alpha channel is interpreted - this affects how the color channels + * of a PNG file are returned to the calling application when an alpha channel, + * or a tRNS chunk in a palette file, is present. + * + * This has no effect on the way pixels are written into a PNG output + * datastream. The color samples in a PNG datastream are never premultiplied + * with the alpha samples. + * + * The default is to return data according to the PNG specification: the alpha + * channel is a linear measure of the contribution of the pixel to the + * corresponding composited pixel, and the color channels are unassociated + * (not premultiplied). The gamma encoded color channels must be scaled + * according to the contribution and to do this it is necessary to undo + * the encoding, scale the color values, perform the composition and reencode + * the values. This is the 'PNG' mode. + * + * The alternative is to 'associate' the alpha with the color information by + * storing color channel values that have been scaled by the alpha. + * image. These are the 'STANDARD', 'ASSOCIATED' or 'PREMULTIPLIED' modes + * (the latter being the two common names for associated alpha color channels). + * + * For the 'OPTIMIZED' mode, a pixel is treated as opaque only if the alpha + * value is equal to the maximum value. + * + * The final choice is to gamma encode the alpha channel as well. This is + * broken because, in practice, no implementation that uses this choice + * correctly undoes the encoding before handling alpha composition. Use this + * choice only if other serious errors in the software or hardware you use + * mandate it; the typical serious error is for dark halos to appear around + * opaque areas of the composited PNG image because of arithmetic overflow. + * + * The API function png_set_alpha_mode specifies which of these choices to use + * with an enumerated 'mode' value and the gamma of the required output: + */ +#define PNG_ALPHA_PNG 0 /* according to the PNG standard */ +#define PNG_ALPHA_STANDARD 1 /* according to Porter/Duff */ +#define PNG_ALPHA_ASSOCIATED 1 /* as above; this is the normal practice */ +#define PNG_ALPHA_PREMULTIPLIED 1 /* as above */ +#define PNG_ALPHA_OPTIMIZED 2 /* 'PNG' for opaque pixels, else 'STANDARD' */ +#define PNG_ALPHA_BROKEN 3 /* the alpha channel is gamma encoded */ + +PNG_FP_EXPORT(227, void, png_set_alpha_mode, (png_structrp png_ptr, int mode, + double output_gamma)) +PNG_FIXED_EXPORT(228, void, png_set_alpha_mode_fixed, (png_structrp png_ptr, + int mode, png_fixed_point output_gamma)) +#endif + +#if defined(PNG_GAMMA_SUPPORTED) || defined(PNG_READ_ALPHA_MODE_SUPPORTED) +/* The output_gamma value is a screen gamma in libpng terminology: it expresses + * how to decode the output values, not how they are encoded. + */ +#define PNG_DEFAULT_sRGB -1 /* sRGB gamma and color space */ +#define PNG_GAMMA_MAC_18 -2 /* Old Mac '1.8' gamma and color space */ +#define PNG_GAMMA_sRGB 220000 /* Television standards--matches sRGB gamma */ +#define PNG_GAMMA_LINEAR PNG_FP_1 /* Linear */ +#endif + +/* The following are examples of calls to png_set_alpha_mode to achieve the + * required overall gamma correction and, where necessary, alpha + * premultiplication. + * + * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB); + * This is the default libpng handling of the alpha channel - it is not + * pre-multiplied into the color components. In addition the call states + * that the output is for a sRGB system and causes all PNG files without gAMA + * chunks to be assumed to be encoded using sRGB. + * + * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC); + * In this case the output is assumed to be something like an sRGB conformant + * display preceeded by a power-law lookup table of power 1.45. This is how + * early Mac systems behaved. + * + * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_GAMMA_LINEAR); + * This is the classic Jim Blinn approach and will work in academic + * environments where everything is done by the book. It has the shortcoming + * of assuming that input PNG data with no gamma information is linear - this + * is unlikely to be correct unless the PNG files where generated locally. + * Most of the time the output precision will be so low as to show + * significant banding in dark areas of the image. + * + * png_set_expand_16(pp); + * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_DEFAULT_sRGB); + * This is a somewhat more realistic Jim Blinn inspired approach. PNG files + * are assumed to have the sRGB encoding if not marked with a gamma value and + * the output is always 16 bits per component. This permits accurate scaling + * and processing of the data. If you know that your input PNG files were + * generated locally you might need to replace PNG_DEFAULT_sRGB with the + * correct value for your system. + * + * png_set_alpha_mode(pp, PNG_ALPHA_OPTIMIZED, PNG_DEFAULT_sRGB); + * If you just need to composite the PNG image onto an existing background + * and if you control the code that does this you can use the optimization + * setting. In this case you just copy completely opaque pixels to the + * output. For pixels that are not completely transparent (you just skip + * those) you do the composition math using png_composite or png_composite_16 + * below then encode the resultant 8-bit or 16-bit values to match the output + * encoding. + * + * Other cases + * If neither the PNG nor the standard linear encoding work for you because + * of the software or hardware you use then you have a big problem. The PNG + * case will probably result in halos around the image. The linear encoding + * will probably result in a washed out, too bright, image (it's actually too + * contrasty.) Try the ALPHA_OPTIMIZED mode above - this will probably + * substantially reduce the halos. Alternatively try: + * + * png_set_alpha_mode(pp, PNG_ALPHA_BROKEN, PNG_DEFAULT_sRGB); + * This option will also reduce the halos, but there will be slight dark + * halos round the opaque parts of the image where the background is light. + * In the OPTIMIZED mode the halos will be light halos where the background + * is dark. Take your pick - the halos are unavoidable unless you can get + * your hardware/software fixed! (The OPTIMIZED approach is slightly + * faster.) + * + * When the default gamma of PNG files doesn't match the output gamma. + * If you have PNG files with no gamma information png_set_alpha_mode allows + * you to provide a default gamma, but it also sets the ouput gamma to the + * matching value. If you know your PNG files have a gamma that doesn't + * match the output you can take advantage of the fact that + * png_set_alpha_mode always sets the output gamma but only sets the PNG + * default if it is not already set: + * + * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB); + * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC); + * The first call sets both the default and the output gamma values, the + * second call overrides the output gamma without changing the default. This + * is easier than achieving the same effect with png_set_gamma. You must use + * PNG_ALPHA_PNG for the first call - internal checking in png_set_alpha will + * fire if more than one call to png_set_alpha_mode and png_set_background is + * made in the same read operation, however multiple calls with PNG_ALPHA_PNG + * are ignored. + */ + +#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED +PNG_EXPORT(36, void, png_set_strip_alpha, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ + defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) +PNG_EXPORT(37, void, png_set_swap_alpha, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ + defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) +PNG_EXPORT(38, void, png_set_invert_alpha, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) +/* Add a filler byte to 8-bit Gray or 24-bit RGB images. */ +PNG_EXPORT(39, void, png_set_filler, (png_structrp png_ptr, png_uint_32 filler, + int flags)); +/* The values of the PNG_FILLER_ defines should NOT be changed */ +# define PNG_FILLER_BEFORE 0 +# define PNG_FILLER_AFTER 1 +/* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */ +PNG_EXPORT(40, void, png_set_add_alpha, (png_structrp png_ptr, + png_uint_32 filler, int flags)); +#endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */ + +#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) +/* Swap bytes in 16-bit depth files. */ +PNG_EXPORT(41, void, png_set_swap, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) +/* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */ +PNG_EXPORT(42, void, png_set_packing, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \ + defined(PNG_WRITE_PACKSWAP_SUPPORTED) +/* Swap packing order of pixels in bytes. */ +PNG_EXPORT(43, void, png_set_packswap, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) +/* Converts files to legal bit depths. */ +PNG_EXPORT(44, void, png_set_shift, (png_structrp png_ptr, png_const_color_8p + true_bits)); +#endif + +#if defined(PNG_READ_INTERLACING_SUPPORTED) || \ + defined(PNG_WRITE_INTERLACING_SUPPORTED) +/* Have the code handle the interlacing. Returns the number of passes. + * MUST be called before png_read_update_info or png_start_read_image, + * otherwise it will not have the desired effect. Note that it is still + * necessary to call png_read_row or png_read_rows png_get_image_height + * times for each pass. +*/ +PNG_EXPORT(45, int, png_set_interlace_handling, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) +/* Invert monochrome files */ +PNG_EXPORT(46, void, png_set_invert_mono, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_BACKGROUND_SUPPORTED +/* Handle alpha and tRNS by replacing with a background color. Prior to + * libpng-1.5.4 this API must not be called before the PNG file header has been + * read. Doing so will result in unexpected behavior and possible warnings or + * errors if the PNG file contains a bKGD chunk. + */ +PNG_FP_EXPORT(47, void, png_set_background, (png_structrp png_ptr, + png_const_color_16p background_color, int background_gamma_code, + int need_expand, double background_gamma)) +PNG_FIXED_EXPORT(215, void, png_set_background_fixed, (png_structrp png_ptr, + png_const_color_16p background_color, int background_gamma_code, + int need_expand, png_fixed_point background_gamma)) +#endif +#ifdef PNG_READ_BACKGROUND_SUPPORTED +# define PNG_BACKGROUND_GAMMA_UNKNOWN 0 +# define PNG_BACKGROUND_GAMMA_SCREEN 1 +# define PNG_BACKGROUND_GAMMA_FILE 2 +# define PNG_BACKGROUND_GAMMA_UNIQUE 3 +#endif + +#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED +/* Scale a 16-bit depth file down to 8-bit, accurately. */ +PNG_EXPORT(229, void, png_set_scale_16, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED +#define PNG_READ_16_TO_8 SUPPORTED /* Name prior to 1.5.4 */ +/* Strip the second byte of information from a 16-bit depth file. */ +PNG_EXPORT(48, void, png_set_strip_16, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_QUANTIZE_SUPPORTED +/* Turn on quantizing, and reduce the palette to the number of colors + * available. + */ +PNG_EXPORT(49, void, png_set_quantize, (png_structrp png_ptr, + png_colorp palette, int num_palette, int maximum_colors, + png_const_uint_16p histogram, int full_quantize)); +#endif + +#ifdef PNG_READ_GAMMA_SUPPORTED +/* The threshold on gamma processing is configurable but hard-wired into the + * library. The following is the floating point variant. + */ +#define PNG_GAMMA_THRESHOLD (PNG_GAMMA_THRESHOLD_FIXED*.00001) + +/* Handle gamma correction. Screen_gamma=(display_exponent). + * NOTE: this API simply sets the screen and file gamma values. It will + * therefore override the value for gamma in a PNG file if it is called after + * the file header has been read - use with care - call before reading the PNG + * file for best results! + * + * These routines accept the same gamma values as png_set_alpha_mode (described + * above). The PNG_GAMMA_ defines and PNG_DEFAULT_sRGB can be passed to either + * API (floating point or fixed.) Notice, however, that the 'file_gamma' value + * is the inverse of a 'screen gamma' value. + */ +PNG_FP_EXPORT(50, void, png_set_gamma, (png_structrp png_ptr, + double screen_gamma, double override_file_gamma)) +PNG_FIXED_EXPORT(208, void, png_set_gamma_fixed, (png_structrp png_ptr, + png_fixed_point screen_gamma, png_fixed_point override_file_gamma)) +#endif + +#ifdef PNG_WRITE_FLUSH_SUPPORTED +/* Set how many lines between output flushes - 0 for no flushing */ +PNG_EXPORT(51, void, png_set_flush, (png_structrp png_ptr, int nrows)); +/* Flush the current PNG output buffer */ +PNG_EXPORT(52, void, png_write_flush, (png_structrp png_ptr)); +#endif + +/* Optional update palette with requested transformations */ +PNG_EXPORT(53, void, png_start_read_image, (png_structrp png_ptr)); + +/* Optional call to update the users info structure */ +PNG_EXPORT(54, void, png_read_update_info, (png_structrp png_ptr, + png_inforp info_ptr)); + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read one or more rows of image data. */ +PNG_EXPORT(55, void, png_read_rows, (png_structrp png_ptr, png_bytepp row, + png_bytepp display_row, png_uint_32 num_rows)); +#endif + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read a row of data. */ +PNG_EXPORT(56, void, png_read_row, (png_structrp png_ptr, png_bytep row, + png_bytep display_row)); +#endif + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read the whole image into memory at once. */ +PNG_EXPORT(57, void, png_read_image, (png_structrp png_ptr, png_bytepp image)); +#endif + +/* Write a row of image data */ +PNG_EXPORT(58, void, png_write_row, (png_structrp png_ptr, + png_const_bytep row)); + +/* Write a few rows of image data: (*row) is not written; however, the type + * is declared as writeable to maintain compatibility with previous versions + * of libpng and to allow the 'display_row' array from read_rows to be passed + * unchanged to write_rows. + */ +PNG_EXPORT(59, void, png_write_rows, (png_structrp png_ptr, png_bytepp row, + png_uint_32 num_rows)); + +/* Write the image data */ +PNG_EXPORT(60, void, png_write_image, (png_structrp png_ptr, png_bytepp image)); + +/* Write the end of the PNG file. */ +PNG_EXPORT(61, void, png_write_end, (png_structrp png_ptr, + png_inforp info_ptr)); + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read the end of the PNG file. */ +PNG_EXPORT(62, void, png_read_end, (png_structrp png_ptr, png_inforp info_ptr)); +#endif + +/* Free any memory associated with the png_info_struct */ +PNG_EXPORT(63, void, png_destroy_info_struct, (png_const_structrp png_ptr, + png_infopp info_ptr_ptr)); + +/* Free any memory associated with the png_struct and the png_info_structs */ +PNG_EXPORT(64, void, png_destroy_read_struct, (png_structpp png_ptr_ptr, + png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)); + +/* Free any memory associated with the png_struct and the png_info_structs */ +PNG_EXPORT(65, void, png_destroy_write_struct, (png_structpp png_ptr_ptr, + png_infopp info_ptr_ptr)); + +/* Set the libpng method of handling chunk CRC errors */ +PNG_EXPORT(66, void, png_set_crc_action, (png_structrp png_ptr, int crit_action, + int ancil_action)); + +/* Values for png_set_crc_action() say how to handle CRC errors in + * ancillary and critical chunks, and whether to use the data contained + * therein. Note that it is impossible to "discard" data in a critical + * chunk. For versions prior to 0.90, the action was always error/quit, + * whereas in version 0.90 and later, the action for CRC errors in ancillary + * chunks is warn/discard. These values should NOT be changed. + * + * value action:critical action:ancillary + */ +#define PNG_CRC_DEFAULT 0 /* error/quit warn/discard data */ +#define PNG_CRC_ERROR_QUIT 1 /* error/quit error/quit */ +#define PNG_CRC_WARN_DISCARD 2 /* (INVALID) warn/discard data */ +#define PNG_CRC_WARN_USE 3 /* warn/use data warn/use data */ +#define PNG_CRC_QUIET_USE 4 /* quiet/use data quiet/use data */ +#define PNG_CRC_NO_CHANGE 5 /* use current value use current value */ + +/* These functions give the user control over the scan-line filtering in + * libpng and the compression methods used by zlib. These functions are + * mainly useful for testing, as the defaults should work with most users. + * Those users who are tight on memory or want faster performance at the + * expense of compression can modify them. See the compression library + * header file (zlib.h) for an explination of the compression functions. + */ + +/* Set the filtering method(s) used by libpng. Currently, the only valid + * value for "method" is 0. + */ +PNG_EXPORT(67, void, png_set_filter, (png_structrp png_ptr, int method, + int filters)); + +/* Flags for png_set_filter() to say which filters to use. The flags + * are chosen so that they don't conflict with real filter types + * below, in case they are supplied instead of the #defined constants. + * These values should NOT be changed. + */ +#define PNG_NO_FILTERS 0x00 +#define PNG_FILTER_NONE 0x08 +#define PNG_FILTER_SUB 0x10 +#define PNG_FILTER_UP 0x20 +#define PNG_FILTER_AVG 0x40 +#define PNG_FILTER_PAETH 0x80 +#define PNG_ALL_FILTERS (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP | \ + PNG_FILTER_AVG | PNG_FILTER_PAETH) + +/* Filter values (not flags) - used in pngwrite.c, pngwutil.c for now. + * These defines should NOT be changed. + */ +#define PNG_FILTER_VALUE_NONE 0 +#define PNG_FILTER_VALUE_SUB 1 +#define PNG_FILTER_VALUE_UP 2 +#define PNG_FILTER_VALUE_AVG 3 +#define PNG_FILTER_VALUE_PAETH 4 +#define PNG_FILTER_VALUE_LAST 5 + +#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* EXPERIMENTAL */ +/* The "heuristic_method" is given by one of the PNG_FILTER_HEURISTIC_ + * defines, either the default (minimum-sum-of-absolute-differences), or + * the experimental method (weighted-minimum-sum-of-absolute-differences). + * + * Weights are factors >= 1.0, indicating how important it is to keep the + * filter type consistent between rows. Larger numbers mean the current + * filter is that many times as likely to be the same as the "num_weights" + * previous filters. This is cumulative for each previous row with a weight. + * There needs to be "num_weights" values in "filter_weights", or it can be + * NULL if the weights aren't being specified. Weights have no influence on + * the selection of the first row filter. Well chosen weights can (in theory) + * improve the compression for a given image. + * + * Costs are factors >= 1.0 indicating the relative decoding costs of a + * filter type. Higher costs indicate more decoding expense, and are + * therefore less likely to be selected over a filter with lower computational + * costs. There needs to be a value in "filter_costs" for each valid filter + * type (given by PNG_FILTER_VALUE_LAST), or it can be NULL if you aren't + * setting the costs. Costs try to improve the speed of decompression without + * unduly increasing the compressed image size. + * + * A negative weight or cost indicates the default value is to be used, and + * values in the range [0.0, 1.0) indicate the value is to remain unchanged. + * The default values for both weights and costs are currently 1.0, but may + * change if good general weighting/cost heuristics can be found. If both + * the weights and costs are set to 1.0, this degenerates the WEIGHTED method + * to the UNWEIGHTED method, but with added encoding time/computation. + */ +PNG_FP_EXPORT(68, void, png_set_filter_heuristics, (png_structrp png_ptr, + int heuristic_method, int num_weights, png_const_doublep filter_weights, + png_const_doublep filter_costs)) +PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed, + (png_structrp png_ptr, int heuristic_method, int num_weights, + png_const_fixed_point_p filter_weights, + png_const_fixed_point_p filter_costs)) +#endif /* PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */ + +/* Heuristic used for row filter selection. These defines should NOT be + * changed. + */ +#define PNG_FILTER_HEURISTIC_DEFAULT 0 /* Currently "UNWEIGHTED" */ +#define PNG_FILTER_HEURISTIC_UNWEIGHTED 1 /* Used by libpng < 0.95 */ +#define PNG_FILTER_HEURISTIC_WEIGHTED 2 /* Experimental feature */ +#define PNG_FILTER_HEURISTIC_LAST 3 /* Not a valid value */ + +#ifdef PNG_WRITE_SUPPORTED +/* Set the library compression level. Currently, valid values range from + * 0 - 9, corresponding directly to the zlib compression levels 0 - 9 + * (0 - no compression, 9 - "maximal" compression). Note that tests have + * shown that zlib compression levels 3-6 usually perform as well as level 9 + * for PNG images, and do considerably fewer caclulations. In the future, + * these values may not correspond directly to the zlib compression levels. + */ +PNG_EXPORT(69, void, png_set_compression_level, (png_structrp png_ptr, + int level)); + +PNG_EXPORT(70, void, png_set_compression_mem_level, (png_structrp png_ptr, + int mem_level)); + +PNG_EXPORT(71, void, png_set_compression_strategy, (png_structrp png_ptr, + int strategy)); + +/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a + * smaller value of window_bits if it can do so safely. + */ +PNG_EXPORT(72, void, png_set_compression_window_bits, (png_structrp png_ptr, + int window_bits)); + +PNG_EXPORT(73, void, png_set_compression_method, (png_structrp png_ptr, + int method)); +#endif + +#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED +/* Also set zlib parameters for compressing non-IDAT chunks */ +PNG_EXPORT(222, void, png_set_text_compression_level, (png_structrp png_ptr, + int level)); + +PNG_EXPORT(223, void, png_set_text_compression_mem_level, (png_structrp png_ptr, + int mem_level)); + +PNG_EXPORT(224, void, png_set_text_compression_strategy, (png_structrp png_ptr, + int strategy)); + +/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a + * smaller value of window_bits if it can do so safely. + */ +PNG_EXPORT(225, void, png_set_text_compression_window_bits, + (png_structrp png_ptr, int window_bits)); + +PNG_EXPORT(226, void, png_set_text_compression_method, (png_structrp png_ptr, + int method)); +#endif /* PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */ + +/* These next functions are called for input/output, memory, and error + * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c, + * and call standard C I/O routines such as fread(), fwrite(), and + * fprintf(). These functions can be made to use other I/O routines + * at run time for those applications that need to handle I/O in a + * different manner by calling png_set_???_fn(). See libpng-manual.txt for + * more information. + */ + +#ifdef PNG_STDIO_SUPPORTED +/* Initialize the input/output for the PNG file to the default functions. */ +PNG_EXPORT(74, void, png_init_io, (png_structrp png_ptr, png_FILE_p fp)); +#endif + +/* Replace the (error and abort), and warning functions with user + * supplied functions. If no messages are to be printed you must still + * write and use replacement functions. The replacement error_fn should + * still do a longjmp to the last setjmp location if you are using this + * method of error handling. If error_fn or warning_fn is NULL, the + * default function will be used. + */ + +PNG_EXPORT(75, void, png_set_error_fn, (png_structrp png_ptr, + png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn)); + +/* Return the user pointer associated with the error functions */ +PNG_EXPORT(76, png_voidp, png_get_error_ptr, (png_const_structrp png_ptr)); + +/* Replace the default data output functions with a user supplied one(s). + * If buffered output is not used, then output_flush_fn can be set to NULL. + * If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time + * output_flush_fn will be ignored (and thus can be NULL). + * It is probably a mistake to use NULL for output_flush_fn if + * write_data_fn is not also NULL unless you have built libpng with + * PNG_WRITE_FLUSH_SUPPORTED undefined, because in this case libpng's + * default flush function, which uses the standard *FILE structure, will + * be used. + */ +PNG_EXPORT(77, void, png_set_write_fn, (png_structrp png_ptr, png_voidp io_ptr, + png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)); + +/* Replace the default data input function with a user supplied one. */ +PNG_EXPORT(78, void, png_set_read_fn, (png_structrp png_ptr, png_voidp io_ptr, + png_rw_ptr read_data_fn)); + +/* Return the user pointer associated with the I/O functions */ +PNG_EXPORT(79, png_voidp, png_get_io_ptr, (png_const_structrp png_ptr)); + +PNG_EXPORT(80, void, png_set_read_status_fn, (png_structrp png_ptr, + png_read_status_ptr read_row_fn)); + +PNG_EXPORT(81, void, png_set_write_status_fn, (png_structrp png_ptr, + png_write_status_ptr write_row_fn)); + +#ifdef PNG_USER_MEM_SUPPORTED +/* Replace the default memory allocation functions with user supplied one(s). */ +PNG_EXPORT(82, void, png_set_mem_fn, (png_structrp png_ptr, png_voidp mem_ptr, + png_malloc_ptr malloc_fn, png_free_ptr free_fn)); +/* Return the user pointer associated with the memory functions */ +PNG_EXPORT(83, png_voidp, png_get_mem_ptr, (png_const_structrp png_ptr)); +#endif + +#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED +PNG_EXPORT(84, void, png_set_read_user_transform_fn, (png_structrp png_ptr, + png_user_transform_ptr read_user_transform_fn)); +#endif + +#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED +PNG_EXPORT(85, void, png_set_write_user_transform_fn, (png_structrp png_ptr, + png_user_transform_ptr write_user_transform_fn)); +#endif + +#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED +PNG_EXPORT(86, void, png_set_user_transform_info, (png_structrp png_ptr, + png_voidp user_transform_ptr, int user_transform_depth, + int user_transform_channels)); +/* Return the user pointer associated with the user transform functions */ +PNG_EXPORT(87, png_voidp, png_get_user_transform_ptr, + (png_const_structrp png_ptr)); +#endif + +#ifdef PNG_USER_TRANSFORM_INFO_SUPPORTED +/* Return information about the row currently being processed. Note that these + * APIs do not fail but will return unexpected results if called outside a user + * transform callback. Also note that when transforming an interlaced image the + * row number is the row number within the sub-image of the interlace pass, so + * the value will increase to the height of the sub-image (not the full image) + * then reset to 0 for the next pass. + * + * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to + * find the output pixel (x,y) given an interlaced sub-image pixel + * (row,col,pass). (See below for these macros.) + */ +PNG_EXPORT(217, png_uint_32, png_get_current_row_number, (png_const_structrp)); +PNG_EXPORT(218, png_byte, png_get_current_pass_number, (png_const_structrp)); +#endif + +#ifdef PNG_READ_USER_CHUNKS_SUPPORTED +/* This callback is called only for *unknown* chunks. If + * PNG_HANDLE_AS_UNKNOWN_SUPPORTED is set then it is possible to set known + * chunks to be treated as unknown, however in this case the callback must do + * any processing required by the chunk (e.g. by calling the appropriate + * png_set_ APIs.) + * + * There is no write support - on write, by default, all the chunks in the + * 'unknown' list are written in the specified position. + * + * The integer return from the callback function is interpreted thus: + * + * negative: An error occured, png_chunk_error will be called. + * zero: The chunk was not handled, the chunk will be saved. A critical + * chunk will cause an error at this point unless it is to be saved. + * positive: The chunk was handled, libpng will ignore/discard it. + * + * See "INTERACTION WTIH USER CHUNK CALLBACKS" below for important notes about + * how this behavior will change in libpng 1.7 + */ +PNG_EXPORT(88, void, png_set_read_user_chunk_fn, (png_structrp png_ptr, + png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn)); +#endif + +#ifdef PNG_USER_CHUNKS_SUPPORTED +PNG_EXPORT(89, png_voidp, png_get_user_chunk_ptr, (png_const_structrp png_ptr)); +#endif + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +/* Sets the function callbacks for the push reader, and a pointer to a + * user-defined structure available to the callback functions. + */ +PNG_EXPORT(90, void, png_set_progressive_read_fn, (png_structrp png_ptr, + png_voidp progressive_ptr, png_progressive_info_ptr info_fn, + png_progressive_row_ptr row_fn, png_progressive_end_ptr end_fn)); + +/* Returns the user pointer associated with the push read functions */ +PNG_EXPORT(91, png_voidp, png_get_progressive_ptr, + (png_const_structrp png_ptr)); + +/* Function to be called when data becomes available */ +PNG_EXPORT(92, void, png_process_data, (png_structrp png_ptr, + png_inforp info_ptr, png_bytep buffer, png_size_t buffer_size)); + +/* A function which may be called *only* within png_process_data to stop the + * processing of any more data. The function returns the number of bytes + * remaining, excluding any that libpng has cached internally. A subsequent + * call to png_process_data must supply these bytes again. If the argument + * 'save' is set to true the routine will first save all the pending data and + * will always return 0. + */ +PNG_EXPORT(219, png_size_t, png_process_data_pause, (png_structrp, int save)); + +/* A function which may be called *only* outside (after) a call to + * png_process_data. It returns the number of bytes of data to skip in the + * input. Normally it will return 0, but if it returns a non-zero value the + * application must skip than number of bytes of input data and pass the + * following data to the next call to png_process_data. + */ +PNG_EXPORT(220, png_uint_32, png_process_data_skip, (png_structrp)); + +/* Function that combines rows. 'new_row' is a flag that should come from + * the callback and be non-NULL if anything needs to be done; the library + * stores its own version of the new data internally and ignores the passed + * in value. + */ +PNG_EXPORT(93, void, png_progressive_combine_row, (png_const_structrp png_ptr, + png_bytep old_row, png_const_bytep new_row)); +#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ + +PNG_EXPORTA(94, png_voidp, png_malloc, (png_const_structrp png_ptr, + png_alloc_size_t size), PNG_ALLOCATED); +/* Added at libpng version 1.4.0 */ +PNG_EXPORTA(95, png_voidp, png_calloc, (png_const_structrp png_ptr, + png_alloc_size_t size), PNG_ALLOCATED); + +/* Added at libpng version 1.2.4 */ +PNG_EXPORTA(96, png_voidp, png_malloc_warn, (png_const_structrp png_ptr, + png_alloc_size_t size), PNG_ALLOCATED); + +/* Frees a pointer allocated by png_malloc() */ +PNG_EXPORT(97, void, png_free, (png_const_structrp png_ptr, png_voidp ptr)); + +/* Free data that was allocated internally */ +PNG_EXPORT(98, void, png_free_data, (png_const_structrp png_ptr, + png_inforp info_ptr, png_uint_32 free_me, int num)); + +/* Reassign responsibility for freeing existing data, whether allocated + * by libpng or by the application; this works on the png_info structure passed + * in, it does not change the state for other png_info structures. + * + * It is unlikely that this function works correctly as of 1.6.0 and using it + * may result either in memory leaks or double free of allocated data. + */ +PNG_EXPORT(99, void, png_data_freer, (png_const_structrp png_ptr, + png_inforp info_ptr, int freer, png_uint_32 mask)); + +/* Assignments for png_data_freer */ +#define PNG_DESTROY_WILL_FREE_DATA 1 +#define PNG_SET_WILL_FREE_DATA 1 +#define PNG_USER_WILL_FREE_DATA 2 +/* Flags for png_ptr->free_me and info_ptr->free_me */ +#define PNG_FREE_HIST 0x0008 +#define PNG_FREE_ICCP 0x0010 +#define PNG_FREE_SPLT 0x0020 +#define PNG_FREE_ROWS 0x0040 +#define PNG_FREE_PCAL 0x0080 +#define PNG_FREE_SCAL 0x0100 +#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED +# define PNG_FREE_UNKN 0x0200 +#endif +/* PNG_FREE_LIST 0x0400 removed in 1.6.0 because it is ignored */ +#define PNG_FREE_PLTE 0x1000 +#define PNG_FREE_TRNS 0x2000 +#define PNG_FREE_TEXT 0x4000 +#define PNG_FREE_ALL 0x7fff +#define PNG_FREE_MUL 0x4220 /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */ + +#ifdef PNG_USER_MEM_SUPPORTED +PNG_EXPORTA(100, png_voidp, png_malloc_default, (png_const_structrp png_ptr, + png_alloc_size_t size), PNG_ALLOCATED PNG_DEPRECATED); +PNG_EXPORTA(101, void, png_free_default, (png_const_structrp png_ptr, + png_voidp ptr), PNG_DEPRECATED); +#endif + +#ifdef PNG_ERROR_TEXT_SUPPORTED +/* Fatal error in PNG image of libpng - can't continue */ +PNG_EXPORTA(102, void, png_error, (png_const_structrp png_ptr, + png_const_charp error_message), PNG_NORETURN); + +/* The same, but the chunk name is prepended to the error string. */ +PNG_EXPORTA(103, void, png_chunk_error, (png_const_structrp png_ptr, + png_const_charp error_message), PNG_NORETURN); + +#else +/* Fatal error in PNG image of libpng - can't continue */ +PNG_EXPORTA(104, void, png_err, (png_const_structrp png_ptr), PNG_NORETURN); +# define png_error(s1,s2) png_err(s1) +# define png_chunk_error(s1,s2) png_err(s1) +#endif + +#ifdef PNG_WARNINGS_SUPPORTED +/* Non-fatal error in libpng. Can continue, but may have a problem. */ +PNG_EXPORT(105, void, png_warning, (png_const_structrp png_ptr, + png_const_charp warning_message)); + +/* Non-fatal error in libpng, chunk name is prepended to message. */ +PNG_EXPORT(106, void, png_chunk_warning, (png_const_structrp png_ptr, + png_const_charp warning_message)); +#else +# define png_warning(s1,s2) ((void)(s1)) +# define png_chunk_warning(s1,s2) ((void)(s1)) +#endif + +#ifdef PNG_BENIGN_ERRORS_SUPPORTED +/* Benign error in libpng. Can continue, but may have a problem. + * User can choose whether to handle as a fatal error or as a warning. */ +PNG_EXPORT(107, void, png_benign_error, (png_const_structrp png_ptr, + png_const_charp warning_message)); + +#ifdef PNG_READ_SUPPORTED +/* Same, chunk name is prepended to message (only during read) */ +PNG_EXPORT(108, void, png_chunk_benign_error, (png_const_structrp png_ptr, + png_const_charp warning_message)); +#endif + +PNG_EXPORT(109, void, png_set_benign_errors, + (png_structrp png_ptr, int allowed)); +#else +# ifdef PNG_ALLOW_BENIGN_ERRORS +# define png_benign_error png_warning +# define png_chunk_benign_error png_chunk_warning +# else +# define png_benign_error png_error +# define png_chunk_benign_error png_chunk_error +# endif +#endif + +/* The png_set_ functions are for storing values in the png_info_struct. + * Similarly, the png_get_ calls are used to read values from the + * png_info_struct, either storing the parameters in the passed variables, or + * setting pointers into the png_info_struct where the data is stored. The + * png_get_ functions return a non-zero value if the data was available + * in info_ptr, or return zero and do not change any of the parameters if the + * data was not available. + * + * These functions should be used instead of directly accessing png_info + * to avoid problems with future changes in the size and internal layout of + * png_info_struct. + */ +/* Returns "flag" if chunk data is valid in info_ptr. */ +PNG_EXPORT(110, png_uint_32, png_get_valid, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_uint_32 flag)); + +/* Returns number of bytes needed to hold a transformed row. */ +PNG_EXPORT(111, png_size_t, png_get_rowbytes, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +#ifdef PNG_INFO_IMAGE_SUPPORTED +/* Returns row_pointers, which is an array of pointers to scanlines that was + * returned from png_read_png(). + */ +PNG_EXPORT(112, png_bytepp, png_get_rows, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Set row_pointers, which is an array of pointers to scanlines for use + * by png_write_png(). + */ +PNG_EXPORT(113, void, png_set_rows, (png_const_structrp png_ptr, + png_inforp info_ptr, png_bytepp row_pointers)); +#endif + +/* Returns number of color channels in image. */ +PNG_EXPORT(114, png_byte, png_get_channels, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +#ifdef PNG_EASY_ACCESS_SUPPORTED +/* Returns image width in pixels. */ +PNG_EXPORT(115, png_uint_32, png_get_image_width, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image height in pixels. */ +PNG_EXPORT(116, png_uint_32, png_get_image_height, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image bit_depth. */ +PNG_EXPORT(117, png_byte, png_get_bit_depth, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image color_type. */ +PNG_EXPORT(118, png_byte, png_get_color_type, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image filter_type. */ +PNG_EXPORT(119, png_byte, png_get_filter_type, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image interlace_type. */ +PNG_EXPORT(120, png_byte, png_get_interlace_type, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image compression_type. */ +PNG_EXPORT(121, png_byte, png_get_compression_type, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image resolution in pixels per meter, from pHYs chunk data. */ +PNG_EXPORT(122, png_uint_32, png_get_pixels_per_meter, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(123, png_uint_32, png_get_x_pixels_per_meter, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(124, png_uint_32, png_get_y_pixels_per_meter, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); + +/* Returns pixel aspect ratio, computed from pHYs chunk data. */ +PNG_FP_EXPORT(125, float, png_get_pixel_aspect_ratio, + (png_const_structrp png_ptr, png_const_inforp info_ptr)) +PNG_FIXED_EXPORT(210, png_fixed_point, png_get_pixel_aspect_ratio_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr)) + +/* Returns image x, y offset in pixels or microns, from oFFs chunk data. */ +PNG_EXPORT(126, png_int_32, png_get_x_offset_pixels, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(127, png_int_32, png_get_y_offset_pixels, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(128, png_int_32, png_get_x_offset_microns, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(129, png_int_32, png_get_y_offset_microns, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); + +#endif /* PNG_EASY_ACCESS_SUPPORTED */ + +#ifdef PNG_READ_SUPPORTED +/* Returns pointer to signature string read from PNG header */ +PNG_EXPORT(130, png_const_bytep, png_get_signature, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); +#endif + +#ifdef PNG_bKGD_SUPPORTED +PNG_EXPORT(131, png_uint_32, png_get_bKGD, (png_const_structrp png_ptr, + png_inforp info_ptr, png_color_16p *background)); +#endif + +#ifdef PNG_bKGD_SUPPORTED +PNG_EXPORT(132, void, png_set_bKGD, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_color_16p background)); +#endif + +#ifdef PNG_cHRM_SUPPORTED +PNG_FP_EXPORT(133, png_uint_32, png_get_cHRM, (png_const_structrp png_ptr, + png_const_inforp info_ptr, double *white_x, double *white_y, double *red_x, + double *red_y, double *green_x, double *green_y, double *blue_x, + double *blue_y)) +PNG_FP_EXPORT(230, png_uint_32, png_get_cHRM_XYZ, (png_const_structrp png_ptr, + png_const_inforp info_ptr, double *red_X, double *red_Y, double *red_Z, + double *green_X, double *green_Y, double *green_Z, double *blue_X, + double *blue_Y, double *blue_Z)) +PNG_FIXED_EXPORT(134, png_uint_32, png_get_cHRM_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr, + png_fixed_point *int_white_x, png_fixed_point *int_white_y, + png_fixed_point *int_red_x, png_fixed_point *int_red_y, + png_fixed_point *int_green_x, png_fixed_point *int_green_y, + png_fixed_point *int_blue_x, png_fixed_point *int_blue_y)) +PNG_FIXED_EXPORT(231, png_uint_32, png_get_cHRM_XYZ_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr, + png_fixed_point *int_red_X, png_fixed_point *int_red_Y, + png_fixed_point *int_red_Z, png_fixed_point *int_green_X, + png_fixed_point *int_green_Y, png_fixed_point *int_green_Z, + png_fixed_point *int_blue_X, png_fixed_point *int_blue_Y, + png_fixed_point *int_blue_Z)) +#endif + +#ifdef PNG_cHRM_SUPPORTED +PNG_FP_EXPORT(135, void, png_set_cHRM, (png_const_structrp png_ptr, + png_inforp info_ptr, + double white_x, double white_y, double red_x, double red_y, double green_x, + double green_y, double blue_x, double blue_y)) +PNG_FP_EXPORT(232, void, png_set_cHRM_XYZ, (png_const_structrp png_ptr, + png_inforp info_ptr, double red_X, double red_Y, double red_Z, + double green_X, double green_Y, double green_Z, double blue_X, + double blue_Y, double blue_Z)) +PNG_FIXED_EXPORT(136, void, png_set_cHRM_fixed, (png_const_structrp png_ptr, + png_inforp info_ptr, png_fixed_point int_white_x, + png_fixed_point int_white_y, png_fixed_point int_red_x, + png_fixed_point int_red_y, png_fixed_point int_green_x, + png_fixed_point int_green_y, png_fixed_point int_blue_x, + png_fixed_point int_blue_y)) +PNG_FIXED_EXPORT(233, void, png_set_cHRM_XYZ_fixed, (png_const_structrp png_ptr, + png_inforp info_ptr, png_fixed_point int_red_X, png_fixed_point int_red_Y, + png_fixed_point int_red_Z, png_fixed_point int_green_X, + png_fixed_point int_green_Y, png_fixed_point int_green_Z, + png_fixed_point int_blue_X, png_fixed_point int_blue_Y, + png_fixed_point int_blue_Z)) +#endif + +#ifdef PNG_gAMA_SUPPORTED +PNG_FP_EXPORT(137, png_uint_32, png_get_gAMA, (png_const_structrp png_ptr, + png_const_inforp info_ptr, double *file_gamma)) +PNG_FIXED_EXPORT(138, png_uint_32, png_get_gAMA_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr, + png_fixed_point *int_file_gamma)) +#endif + +#ifdef PNG_gAMA_SUPPORTED +PNG_FP_EXPORT(139, void, png_set_gAMA, (png_const_structrp png_ptr, + png_inforp info_ptr, double file_gamma)) +PNG_FIXED_EXPORT(140, void, png_set_gAMA_fixed, (png_const_structrp png_ptr, + png_inforp info_ptr, png_fixed_point int_file_gamma)) +#endif + +#ifdef PNG_hIST_SUPPORTED +PNG_EXPORT(141, png_uint_32, png_get_hIST, (png_const_structrp png_ptr, + png_inforp info_ptr, png_uint_16p *hist)); +#endif + +#ifdef PNG_hIST_SUPPORTED +PNG_EXPORT(142, void, png_set_hIST, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_uint_16p hist)); +#endif + +PNG_EXPORT(143, png_uint_32, png_get_IHDR, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_uint_32 *width, png_uint_32 *height, + int *bit_depth, int *color_type, int *interlace_method, + int *compression_method, int *filter_method)); + +PNG_EXPORT(144, void, png_set_IHDR, (png_const_structrp png_ptr, + png_inforp info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, + int color_type, int interlace_method, int compression_method, + int filter_method)); + +#ifdef PNG_oFFs_SUPPORTED +PNG_EXPORT(145, png_uint_32, png_get_oFFs, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, + int *unit_type)); +#endif + +#ifdef PNG_oFFs_SUPPORTED +PNG_EXPORT(146, void, png_set_oFFs, (png_const_structrp png_ptr, + png_inforp info_ptr, png_int_32 offset_x, png_int_32 offset_y, + int unit_type)); +#endif + +#ifdef PNG_pCAL_SUPPORTED +PNG_EXPORT(147, png_uint_32, png_get_pCAL, (png_const_structrp png_ptr, + png_inforp info_ptr, png_charp *purpose, png_int_32 *X0, + png_int_32 *X1, int *type, int *nparams, png_charp *units, + png_charpp *params)); +#endif + +#ifdef PNG_pCAL_SUPPORTED +PNG_EXPORT(148, void, png_set_pCAL, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_charp purpose, png_int_32 X0, png_int_32 X1, + int type, int nparams, png_const_charp units, png_charpp params)); +#endif + +#ifdef PNG_pHYs_SUPPORTED +PNG_EXPORT(149, png_uint_32, png_get_pHYs, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, + int *unit_type)); +#endif + +#ifdef PNG_pHYs_SUPPORTED +PNG_EXPORT(150, void, png_set_pHYs, (png_const_structrp png_ptr, + png_inforp info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)); +#endif + +PNG_EXPORT(151, png_uint_32, png_get_PLTE, (png_const_structrp png_ptr, + png_inforp info_ptr, png_colorp *palette, int *num_palette)); + +PNG_EXPORT(152, void, png_set_PLTE, (png_structrp png_ptr, + png_inforp info_ptr, png_const_colorp palette, int num_palette)); + +#ifdef PNG_sBIT_SUPPORTED +PNG_EXPORT(153, png_uint_32, png_get_sBIT, (png_const_structrp png_ptr, + png_inforp info_ptr, png_color_8p *sig_bit)); +#endif + +#ifdef PNG_sBIT_SUPPORTED +PNG_EXPORT(154, void, png_set_sBIT, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_color_8p sig_bit)); +#endif + +#ifdef PNG_sRGB_SUPPORTED +PNG_EXPORT(155, png_uint_32, png_get_sRGB, (png_const_structrp png_ptr, + png_const_inforp info_ptr, int *file_srgb_intent)); +#endif + +#ifdef PNG_sRGB_SUPPORTED +PNG_EXPORT(156, void, png_set_sRGB, (png_const_structrp png_ptr, + png_inforp info_ptr, int srgb_intent)); +PNG_EXPORT(157, void, png_set_sRGB_gAMA_and_cHRM, (png_const_structrp png_ptr, + png_inforp info_ptr, int srgb_intent)); +#endif + +#ifdef PNG_iCCP_SUPPORTED +PNG_EXPORT(158, png_uint_32, png_get_iCCP, (png_const_structrp png_ptr, + png_inforp info_ptr, png_charpp name, int *compression_type, + png_bytepp profile, png_uint_32 *proflen)); +#endif + +#ifdef PNG_iCCP_SUPPORTED +PNG_EXPORT(159, void, png_set_iCCP, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_charp name, int compression_type, + png_const_bytep profile, png_uint_32 proflen)); +#endif + +#ifdef PNG_sPLT_SUPPORTED +PNG_EXPORT(160, int, png_get_sPLT, (png_const_structrp png_ptr, + png_inforp info_ptr, png_sPLT_tpp entries)); +#endif + +#ifdef PNG_sPLT_SUPPORTED +PNG_EXPORT(161, void, png_set_sPLT, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_sPLT_tp entries, int nentries)); +#endif + +#ifdef PNG_TEXT_SUPPORTED +/* png_get_text also returns the number of text chunks in *num_text */ +PNG_EXPORT(162, int, png_get_text, (png_const_structrp png_ptr, + png_inforp info_ptr, png_textp *text_ptr, int *num_text)); +#endif + +/* Note while png_set_text() will accept a structure whose text, + * language, and translated keywords are NULL pointers, the structure + * returned by png_get_text will always contain regular + * zero-terminated C strings. They might be empty strings but + * they will never be NULL pointers. + */ + +#ifdef PNG_TEXT_SUPPORTED +PNG_EXPORT(163, void, png_set_text, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_textp text_ptr, int num_text)); +#endif + +#ifdef PNG_tIME_SUPPORTED +PNG_EXPORT(164, png_uint_32, png_get_tIME, (png_const_structrp png_ptr, + png_inforp info_ptr, png_timep *mod_time)); +#endif + +#ifdef PNG_tIME_SUPPORTED +PNG_EXPORT(165, void, png_set_tIME, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_timep mod_time)); +#endif + +#ifdef PNG_tRNS_SUPPORTED +PNG_EXPORT(166, png_uint_32, png_get_tRNS, (png_const_structrp png_ptr, + png_inforp info_ptr, png_bytep *trans_alpha, int *num_trans, + png_color_16p *trans_color)); +#endif + +#ifdef PNG_tRNS_SUPPORTED +PNG_EXPORT(167, void, png_set_tRNS, (png_structrp png_ptr, + png_inforp info_ptr, png_const_bytep trans_alpha, int num_trans, + png_const_color_16p trans_color)); +#endif + +#ifdef PNG_sCAL_SUPPORTED +PNG_FP_EXPORT(168, png_uint_32, png_get_sCAL, (png_const_structrp png_ptr, + png_const_inforp info_ptr, int *unit, double *width, double *height)) +#if defined(PNG_FLOATING_ARITHMETIC_SUPPORTED) || \ + defined(PNG_FLOATING_POINT_SUPPORTED) +/* NOTE: this API is currently implemented using floating point arithmetic, + * consequently it can only be used on systems with floating point support. + * In any case the range of values supported by png_fixed_point is small and it + * is highly recommended that png_get_sCAL_s be used instead. + */ +PNG_FIXED_EXPORT(214, png_uint_32, png_get_sCAL_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, + png_fixed_point *width, png_fixed_point *height)) +#endif +PNG_EXPORT(169, png_uint_32, png_get_sCAL_s, + (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, + png_charpp swidth, png_charpp sheight)); + +PNG_FP_EXPORT(170, void, png_set_sCAL, (png_const_structrp png_ptr, + png_inforp info_ptr, int unit, double width, double height)) +PNG_FIXED_EXPORT(213, void, png_set_sCAL_fixed, (png_const_structrp png_ptr, + png_inforp info_ptr, int unit, png_fixed_point width, + png_fixed_point height)) +PNG_EXPORT(171, void, png_set_sCAL_s, (png_const_structrp png_ptr, + png_inforp info_ptr, int unit, + png_const_charp swidth, png_const_charp sheight)); +#endif /* PNG_sCAL_SUPPORTED */ + +#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED +/* Provide the default handling for all unknown chunks or, optionally, for + * specific unknown chunks. + * + * NOTE: prior to 1.6.0 the handling specified for particular chunks on read was + * ignored and the default was used, the per-chunk setting only had an effect on + * write. If you wish to have chunk-specific handling on read in code that must + * work on earlier versions you must use a user chunk callback to specify the + * desired handling (keep or discard.) + * + * The 'keep' parameter is a PNG_HANDLE_CHUNK_ value as listed below. The + * parameter is interpreted as follows: + * + * READ: + * PNG_HANDLE_CHUNK_AS_DEFAULT: + * Known chunks: do normal libpng processing, do not keep the chunk (but + * see the comments below about PNG_HANDLE_AS_UNKNOWN_SUPPORTED) + * Unknown chunks: for a specific chunk use the global default, when used + * as the default discard the chunk data. + * PNG_HANDLE_CHUNK_NEVER: + * Discard the chunk data. + * PNG_HANDLE_CHUNK_IF_SAFE: + * Keep the chunk data if the chunk is not critical else raise a chunk + * error. + * PNG_HANDLE_CHUNK_ALWAYS: + * Keep the chunk data. + * + * If the chunk data is saved it can be retrieved using png_get_unknown_chunks, + * below. Notice that specifying "AS_DEFAULT" as a global default is equivalent + * to specifying "NEVER", however when "AS_DEFAULT" is used for specific chunks + * it simply resets the behavior to the libpng default. + * + * INTERACTION WTIH USER CHUNK CALLBACKS: + * The per-chunk handling is always used when there is a png_user_chunk_ptr + * callback and the callback returns 0; the chunk is then always stored *unless* + * it is critical and the per-chunk setting is other than ALWAYS. Notice that + * the global default is *not* used in this case. (In effect the per-chunk + * value is incremented to at least IF_SAFE.) + * + * IMPORTANT NOTE: this behavior will change in libpng 1.7 - the global and + * per-chunk defaults will be honored. If you want to preserve the current + * behavior when your callback returns 0 you must set PNG_HANDLE_CHUNK_IF_SAFE + * as the default - if you don't do this libpng 1.6 will issue a warning. + * + * If you want unhandled unknown chunks to be discarded in libpng 1.6 and + * earlier simply return '1' (handled). + * + * PNG_HANDLE_AS_UNKNOWN_SUPPORTED: + * If this is *not* set known chunks will always be handled by libpng and + * will never be stored in the unknown chunk list. Known chunks listed to + * png_set_keep_unknown_chunks will have no effect. If it is set then known + * chunks listed with a keep other than AS_DEFAULT will *never* be processed + * by libpng, in addition critical chunks must either be processed by the + * callback or saved. + * + * The IHDR and IEND chunks must not be listed. Because this turns off the + * default handling for chunks that would otherwise be recognized the + * behavior of libpng transformations may well become incorrect! + * + * WRITE: + * When writing chunks the options only apply to the chunks specified by + * png_set_unknown_chunks (below), libpng will *always* write known chunks + * required by png_set_ calls and will always write the core critical chunks + * (as required for PLTE). + * + * Each chunk in the png_set_unknown_chunks list is looked up in the + * png_set_keep_unknown_chunks list to find the keep setting, this is then + * interpreted as follows: + * + * PNG_HANDLE_CHUNK_AS_DEFAULT: + * Write safe-to-copy chunks and write other chunks if the global + * default is set to _ALWAYS, otherwise don't write this chunk. + * PNG_HANDLE_CHUNK_NEVER: + * Do not write the chunk. + * PNG_HANDLE_CHUNK_IF_SAFE: + * Write the chunk if it is safe-to-copy, otherwise do not write it. + * PNG_HANDLE_CHUNK_ALWAYS: + * Write the chunk. + * + * Note that the default behavior is effectively the opposite of the read case - + * in read unknown chunks are not stored by default, in write they are written + * by default. Also the behavior of PNG_HANDLE_CHUNK_IF_SAFE is very different + * - on write the safe-to-copy bit is checked, on read the critical bit is + * checked and on read if the chunk is critical an error will be raised. + * + * num_chunks: + * =========== + * If num_chunks is positive, then the "keep" parameter specifies the manner + * for handling only those chunks appearing in the chunk_list array, + * otherwise the chunk list array is ignored. + * + * If num_chunks is 0 the "keep" parameter specifies the default behavior for + * unknown chunks, as described above. + * + * If num_chunks is negative, then the "keep" parameter specifies the manner + * for handling all unknown chunks plus all chunks recognized by libpng + * except for the IHDR, PLTE, tRNS, IDAT, and IEND chunks (which continue to + * be processed by libpng. + */ +PNG_EXPORT(172, void, png_set_keep_unknown_chunks, (png_structrp png_ptr, + int keep, png_const_bytep chunk_list, int num_chunks)); + +/* The "keep" PNG_HANDLE_CHUNK_ parameter for the specified chunk is returned; + * the result is therefore true (non-zero) if special handling is required, + * false for the default handling. + */ +PNG_EXPORT(173, int, png_handle_as_unknown, (png_const_structrp png_ptr, + png_const_bytep chunk_name)); +#endif + +#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED +PNG_EXPORT(174, void, png_set_unknown_chunks, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_unknown_chunkp unknowns, + int num_unknowns)); + /* NOTE: prior to 1.6.0 this routine set the 'location' field of the added + * unknowns to the location currently stored in the png_struct. This is + * invariably the wrong value on write. To fix this call the following API + * for each chunk in the list with the correct location. If you know your + * code won't be compiled on earlier versions you can rely on + * png_set_unknown_chunks(write-ptr, png_get_unknown_chunks(read-ptr)) doing + * the correct thing. + */ + +PNG_EXPORT(175, void, png_set_unknown_chunk_location, + (png_const_structrp png_ptr, png_inforp info_ptr, int chunk, int location)); + +PNG_EXPORT(176, int, png_get_unknown_chunks, (png_const_structrp png_ptr, + png_inforp info_ptr, png_unknown_chunkpp entries)); +#endif + +/* Png_free_data() will turn off the "valid" flag for anything it frees. + * If you need to turn it off for a chunk that your application has freed, + * you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); + */ +PNG_EXPORT(177, void, png_set_invalid, (png_const_structrp png_ptr, + png_inforp info_ptr, int mask)); + +#ifdef PNG_INFO_IMAGE_SUPPORTED +/* The "params" pointer is currently not used and is for future expansion. */ +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +PNG_EXPORT(178, void, png_read_png, (png_structrp png_ptr, png_inforp info_ptr, + int transforms, png_voidp params)); +#endif +#ifdef PNG_WRITE_SUPPORTED +PNG_EXPORT(179, void, png_write_png, (png_structrp png_ptr, png_inforp info_ptr, + int transforms, png_voidp params)); +#endif +#endif + +PNG_EXPORT(180, png_const_charp, png_get_copyright, + (png_const_structrp png_ptr)); +PNG_EXPORT(181, png_const_charp, png_get_header_ver, + (png_const_structrp png_ptr)); +PNG_EXPORT(182, png_const_charp, png_get_header_version, + (png_const_structrp png_ptr)); +PNG_EXPORT(183, png_const_charp, png_get_libpng_ver, + (png_const_structrp png_ptr)); + +#ifdef PNG_MNG_FEATURES_SUPPORTED +PNG_EXPORT(184, png_uint_32, png_permit_mng_features, (png_structrp png_ptr, + png_uint_32 mng_features_permitted)); +#endif + +/* For use in png_set_keep_unknown, added to version 1.2.6 */ +#define PNG_HANDLE_CHUNK_AS_DEFAULT 0 +#define PNG_HANDLE_CHUNK_NEVER 1 +#define PNG_HANDLE_CHUNK_IF_SAFE 2 +#define PNG_HANDLE_CHUNK_ALWAYS 3 +#define PNG_HANDLE_CHUNK_LAST 4 + +/* Strip the prepended error numbers ("#nnn ") from error and warning + * messages before passing them to the error or warning handler. + */ +#ifdef PNG_ERROR_NUMBERS_SUPPORTED +PNG_EXPORT(185, void, png_set_strip_error_numbers, (png_structrp png_ptr, + png_uint_32 strip_mode)); +#endif + +/* Added in libpng-1.2.6 */ +#ifdef PNG_SET_USER_LIMITS_SUPPORTED +PNG_EXPORT(186, void, png_set_user_limits, (png_structrp png_ptr, + png_uint_32 user_width_max, png_uint_32 user_height_max)); +PNG_EXPORT(187, png_uint_32, png_get_user_width_max, + (png_const_structrp png_ptr)); +PNG_EXPORT(188, png_uint_32, png_get_user_height_max, + (png_const_structrp png_ptr)); +/* Added in libpng-1.4.0 */ +PNG_EXPORT(189, void, png_set_chunk_cache_max, (png_structrp png_ptr, + png_uint_32 user_chunk_cache_max)); +PNG_EXPORT(190, png_uint_32, png_get_chunk_cache_max, + (png_const_structrp png_ptr)); +/* Added in libpng-1.4.1 */ +PNG_EXPORT(191, void, png_set_chunk_malloc_max, (png_structrp png_ptr, + png_alloc_size_t user_chunk_cache_max)); +PNG_EXPORT(192, png_alloc_size_t, png_get_chunk_malloc_max, + (png_const_structrp png_ptr)); +#endif + +#if defined(PNG_INCH_CONVERSIONS_SUPPORTED) +PNG_EXPORT(193, png_uint_32, png_get_pixels_per_inch, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); + +PNG_EXPORT(194, png_uint_32, png_get_x_pixels_per_inch, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); + +PNG_EXPORT(195, png_uint_32, png_get_y_pixels_per_inch, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); + +PNG_FP_EXPORT(196, float, png_get_x_offset_inches, + (png_const_structrp png_ptr, png_const_inforp info_ptr)) +#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ +PNG_FIXED_EXPORT(211, png_fixed_point, png_get_x_offset_inches_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr)) +#endif + +PNG_FP_EXPORT(197, float, png_get_y_offset_inches, (png_const_structrp png_ptr, + png_const_inforp info_ptr)) +#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ +PNG_FIXED_EXPORT(212, png_fixed_point, png_get_y_offset_inches_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr)) +#endif + +# ifdef PNG_pHYs_SUPPORTED +PNG_EXPORT(198, png_uint_32, png_get_pHYs_dpi, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, + int *unit_type)); +# endif /* PNG_pHYs_SUPPORTED */ +#endif /* PNG_INCH_CONVERSIONS_SUPPORTED */ + +/* Added in libpng-1.4.0 */ +#ifdef PNG_IO_STATE_SUPPORTED +PNG_EXPORT(199, png_uint_32, png_get_io_state, (png_const_structrp png_ptr)); + +/* Removed from libpng 1.6; use png_get_io_chunk_type. */ +PNG_REMOVED(200, png_const_bytep, png_get_io_chunk_name, (png_structrp png_ptr), + PNG_DEPRECATED) + +PNG_EXPORT(216, png_uint_32, png_get_io_chunk_type, + (png_const_structrp png_ptr)); + +/* The flags returned by png_get_io_state() are the following: */ +# define PNG_IO_NONE 0x0000 /* no I/O at this moment */ +# define PNG_IO_READING 0x0001 /* currently reading */ +# define PNG_IO_WRITING 0x0002 /* currently writing */ +# define PNG_IO_SIGNATURE 0x0010 /* currently at the file signature */ +# define PNG_IO_CHUNK_HDR 0x0020 /* currently at the chunk header */ +# define PNG_IO_CHUNK_DATA 0x0040 /* currently at the chunk data */ +# define PNG_IO_CHUNK_CRC 0x0080 /* currently at the chunk crc */ +# define PNG_IO_MASK_OP 0x000f /* current operation: reading/writing */ +# define PNG_IO_MASK_LOC 0x00f0 /* current location: sig/hdr/data/crc */ +#endif /* ?PNG_IO_STATE_SUPPORTED */ + +/* Interlace support. The following macros are always defined so that if + * libpng interlace handling is turned off the macros may be used to handle + * interlaced images within the application. + */ +#define PNG_INTERLACE_ADAM7_PASSES 7 + +/* Two macros to return the first row and first column of the original, + * full, image which appears in a given pass. 'pass' is in the range 0 + * to 6 and the result is in the range 0 to 7. + */ +#define PNG_PASS_START_ROW(pass) (((1&~(pass))<<(3-((pass)>>1)))&7) +#define PNG_PASS_START_COL(pass) (((1& (pass))<<(3-(((pass)+1)>>1)))&7) + +/* A macro to return the offset between pixels in the output row for a pair of + * pixels in the input - effectively the inverse of the 'COL_SHIFT' macro that + * follows. Note that ROW_OFFSET is the offset from one row to the next whereas + * COL_OFFSET is from one column to the next, within a row. + */ +#define PNG_PASS_ROW_OFFSET(pass) ((pass)>2?(8>>(((pass)-1)>>1)):8) +#define PNG_PASS_COL_OFFSET(pass) (1<<((7-(pass))>>1)) + +/* Two macros to help evaluate the number of rows or columns in each + * pass. This is expressed as a shift - effectively log2 of the number or + * rows or columns in each 8x8 tile of the original image. + */ +#define PNG_PASS_ROW_SHIFT(pass) ((pass)>2?(8-(pass))>>1:3) +#define PNG_PASS_COL_SHIFT(pass) ((pass)>1?(7-(pass))>>1:3) + +/* Hence two macros to determine the number of rows or columns in a given + * pass of an image given its height or width. In fact these macros may + * return non-zero even though the sub-image is empty, because the other + * dimension may be empty for a small image. + */ +#define PNG_PASS_ROWS(height, pass) (((height)+(((1<>PNG_PASS_ROW_SHIFT(pass)) +#define PNG_PASS_COLS(width, pass) (((width)+(((1<>PNG_PASS_COL_SHIFT(pass)) + +/* For the reader row callbacks (both progressive and sequential) it is + * necessary to find the row in the output image given a row in an interlaced + * image, so two more macros: + */ +#define PNG_ROW_FROM_PASS_ROW(y_in, pass) \ + (((y_in)<>(((7-(off))-(pass))<<2)) & 0xF) | \ + ((0x01145AF0>>(((7-(off))-(pass))<<2)) & 0xF0)) + +#define PNG_ROW_IN_INTERLACE_PASS(y, pass) \ + ((PNG_PASS_MASK(pass,0) >> ((y)&7)) & 1) +#define PNG_COL_IN_INTERLACE_PASS(x, pass) \ + ((PNG_PASS_MASK(pass,1) >> ((x)&7)) & 1) + +#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED +/* With these routines we avoid an integer divide, which will be slower on + * most machines. However, it does take more operations than the corresponding + * divide method, so it may be slower on a few RISC systems. There are two + * shifts (by 8 or 16 bits) and an addition, versus a single integer divide. + * + * Note that the rounding factors are NOT supposed to be the same! 128 and + * 32768 are correct for the NODIV code; 127 and 32767 are correct for the + * standard method. + * + * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ] + */ + + /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */ + +# define png_composite(composite, fg, alpha, bg) \ + { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) \ + * (png_uint_16)(alpha) \ + + (png_uint_16)(bg)*(png_uint_16)(255 \ + - (png_uint_16)(alpha)) + 128); \ + (composite) = (png_byte)((temp + (temp >> 8)) >> 8); } + +# define png_composite_16(composite, fg, alpha, bg) \ + { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) \ + * (png_uint_32)(alpha) \ + + (png_uint_32)(bg)*(65535 \ + - (png_uint_32)(alpha)) + 32768); \ + (composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); } + +#else /* Standard method using integer division */ + +# define png_composite(composite, fg, alpha, bg) \ + (composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) + \ + (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \ + 127) / 255) + +# define png_composite_16(composite, fg, alpha, bg) \ + (composite) = (png_uint_16)(((png_uint_32)(fg) * (png_uint_32)(alpha) + \ + (png_uint_32)(bg)*(png_uint_32)(65535 - (png_uint_32)(alpha)) + \ + 32767) / 65535) +#endif /* PNG_READ_COMPOSITE_NODIV_SUPPORTED */ + +#ifdef PNG_READ_INT_FUNCTIONS_SUPPORTED +PNG_EXPORT(201, png_uint_32, png_get_uint_32, (png_const_bytep buf)); +PNG_EXPORT(202, png_uint_16, png_get_uint_16, (png_const_bytep buf)); +PNG_EXPORT(203, png_int_32, png_get_int_32, (png_const_bytep buf)); +#endif + +PNG_EXPORT(204, png_uint_32, png_get_uint_31, (png_const_structrp png_ptr, + png_const_bytep buf)); +/* No png_get_int_16 -- may be added if there's a real need for it. */ + +/* Place a 32-bit number into a buffer in PNG byte order (big-endian). */ +#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED +PNG_EXPORT(205, void, png_save_uint_32, (png_bytep buf, png_uint_32 i)); +#endif +#ifdef PNG_SAVE_INT_32_SUPPORTED +PNG_EXPORT(206, void, png_save_int_32, (png_bytep buf, png_int_32 i)); +#endif + +/* Place a 16-bit number into a buffer in PNG byte order. + * The parameter is declared unsigned int, not png_uint_16, + * just to avoid potential problems on pre-ANSI C compilers. + */ +#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED +PNG_EXPORT(207, void, png_save_uint_16, (png_bytep buf, unsigned int i)); +/* No png_save_int_16 -- may be added if there's a real need for it. */ +#endif + +#ifdef PNG_USE_READ_MACROS +/* Inline macros to do direct reads of bytes from the input buffer. + * The png_get_int_32() routine assumes we are using two's complement + * format for negative values, which is almost certainly true. + */ +# define PNG_get_uint_32(buf) \ + (((png_uint_32)(*(buf)) << 24) + \ + ((png_uint_32)(*((buf) + 1)) << 16) + \ + ((png_uint_32)(*((buf) + 2)) << 8) + \ + ((png_uint_32)(*((buf) + 3)))) + + /* From libpng-1.4.0 until 1.4.4, the png_get_uint_16 macro (but not the + * function) incorrectly returned a value of type png_uint_32. + */ +# define PNG_get_uint_16(buf) \ + ((png_uint_16) \ + (((unsigned int)(*(buf)) << 8) + \ + ((unsigned int)(*((buf) + 1))))) + +# define PNG_get_int_32(buf) \ + ((png_int_32)((*(buf) & 0x80) \ + ? -((png_int_32)((png_get_uint_32(buf) ^ 0xffffffffL) + 1)) \ + : (png_int_32)png_get_uint_32(buf))) + + /* If PNG_PREFIX is defined the same thing as below happens in pnglibconf.h, + * but defining a macro name prefixed with PNG_PREFIX. + */ +# ifndef PNG_PREFIX +# define png_get_uint_32(buf) PNG_get_uint_32(buf) +# define png_get_uint_16(buf) PNG_get_uint_16(buf) +# define png_get_int_32(buf) PNG_get_int_32(buf) +# endif +#else +# ifdef PNG_PREFIX + /* No macros; revert to the (redefined) function */ +# define PNG_get_uint_32 (png_get_uint_32) +# define PNG_get_uint_16 (png_get_uint_16) +# define PNG_get_int_32 (png_get_int_32) +# endif +#endif + +/******************************************************************************* + * SIMPLIFIED API + ******************************************************************************* + * + * Please read the documentation in libpng-manual.txt (TODO: write said + * documentation) if you don't understand what follows. + * + * The simplified API hides the details of both libpng and the PNG file format + * itself. It allows PNG files to be read into a very limited number of + * in-memory bitmap formats or to be written from the same formats. If these + * formats do not accomodate your needs then you can, and should, use the more + * sophisticated APIs above - these support a wide variety of in-memory formats + * and a wide variety of sophisticated transformations to those formats as well + * as a wide variety of APIs to manipulate ancillary information. + * + * To read a PNG file using the simplified API: + * + * 1) Declare a 'png_image' structure (see below) on the stack and set the + * version field to PNG_IMAGE_VERSION. + * 2) Call the appropriate png_image_begin_read... function. + * 3) Set the png_image 'format' member to the required sample format. + * 4) Allocate a buffer for the image and, if required, the color-map. + * 5) Call png_image_finish_read to read the image and, if required, the + * color-map into your buffers. + * + * There are no restrictions on the format of the PNG input itself; all valid + * color types, bit depths, and interlace methods are acceptable, and the + * input image is transformed as necessary to the requested in-memory format + * during the png_image_finish_read() step. The only caveat is that if you + * request a color-mapped image from a PNG that is full-color or makes + * complex use of an alpha channel the transformation is extremely lossy and the + * result may look terrible. + * + * To write a PNG file using the simplified API: + * + * 1) Declare a 'png_image' structure on the stack and memset() it to all zero. + * 2) Initialize the members of the structure that describe the image, setting + * the 'format' member to the format of the image samples. + * 3) Call the appropriate png_image_write... function with a pointer to the + * image and, if necessary, the color-map to write the PNG data. + * + * png_image is a structure that describes the in-memory format of an image + * when it is being read or defines the in-memory format of an image that you + * need to write: + */ +#define PNG_IMAGE_VERSION 1 + +typedef struct png_control *png_controlp; +typedef struct +{ + png_controlp opaque; /* Initialize to NULL, free with png_image_free */ + png_uint_32 version; /* Set to PNG_IMAGE_VERSION */ + png_uint_32 width; /* Image width in pixels (columns) */ + png_uint_32 height; /* Image height in pixels (rows) */ + png_uint_32 format; /* Image format as defined below */ + png_uint_32 flags; /* A bit mask containing informational flags */ + png_uint_32 colormap_entries; + /* Number of entries in the color-map */ + + /* In the event of an error or warning the following field will be set to a + * non-zero value and the 'message' field will contain a '\0' terminated + * string with the libpng error or warning message. If both warnings and + * an error were encountered, only the error is recorded. If there + * are multiple warnings, only the first one is recorded. + * + * The upper 30 bits of this value are reserved, the low two bits contain + * a value as follows: + */ +# define PNG_IMAGE_WARNING 1 +# define PNG_IMAGE_ERROR 2 + /* + * The result is a two bit code such that a value more than 1 indicates + * a failure in the API just called: + * + * 0 - no warning or error + * 1 - warning + * 2 - error + * 3 - error preceded by warning + */ +# define PNG_IMAGE_FAILED(png_cntrl) ((((png_cntrl).warning_or_error)&0x03)>1) + + png_uint_32 warning_or_error; + + char message[64]; +} png_image, *png_imagep; + +/* The samples of the image have one to four channels whose components have + * original values in the range 0 to 1.0: + * + * 1: A single gray or luminance channel (G). + * 2: A gray/luminance channel and an alpha channel (GA). + * 3: Three red, green, blue color channels (RGB). + * 4: Three color channels and an alpha channel (RGBA). + * + * The components are encoded in one of two ways: + * + * a) As a small integer, value 0..255, contained in a single byte. For the + * alpha channel the original value is simply value/255. For the color or + * luminance channels the value is encoded according to the sRGB specification + * and matches the 8-bit format expected by typical display devices. + * + * The color/gray channels are not scaled (pre-multiplied) by the alpha + * channel and are suitable for passing to color management software. + * + * b) As a value in the range 0..65535, contained in a 2-byte integer. All + * channels can be converted to the original value by dividing by 65535; all + * channels are linear. Color channels use the RGB encoding (RGB end-points) of + * the sRGB specification. This encoding is identified by the + * PNG_FORMAT_FLAG_LINEAR flag below. + * + * When the simplified API needs to convert between sRGB and linear colorspaces, + * the actual sRGB transfer curve defined in the sRGB specification (see the + * article at http://en.wikipedia.org/wiki/SRGB) is used, not the gamma=1/2.2 + * approximation used elsewhere in libpng. + * + * When an alpha channel is present it is expected to denote pixel coverage + * of the color or luminance channels and is returned as an associated alpha + * channel: the color/gray channels are scaled (pre-multiplied) by the alpha + * value. + * + * The samples are either contained directly in the image data, between 1 and 8 + * bytes per pixel according to the encoding, or are held in a color-map indexed + * by bytes in the image data. In the case of a color-map the color-map entries + * are individual samples, encoded as above, and the image data has one byte per + * pixel to select the relevant sample from the color-map. + */ + +/* PNG_FORMAT_* + * + * #defines to be used in png_image::format. Each #define identifies a + * particular layout of sample data and, if present, alpha values. There are + * separate defines for each of the two component encodings. + * + * A format is built up using single bit flag values. All combinations are + * valid. Formats can be built up from the flag values or you can use one of + * the predefined values below. When testing formats always use the FORMAT_FLAG + * macros to test for individual features - future versions of the library may + * add new flags. + * + * When reading or writing color-mapped images the format should be set to the + * format of the entries in the color-map then png_image_{read,write}_colormap + * called to read or write the color-map and set the format correctly for the + * image data. Do not set the PNG_FORMAT_FLAG_COLORMAP bit directly! + * + * NOTE: libpng can be built with particular features disabled, if you see + * compiler errors because the definition of one of the following flags has been + * compiled out it is because libpng does not have the required support. It is + * possible, however, for the libpng configuration to enable the format on just + * read or just write; in that case you may see an error at run time. You can + * guard against this by checking for the definition of the appropriate + * "_SUPPORTED" macro, one of: + * + * PNG_SIMPLIFIED_{READ,WRITE}_{BGR,AFIRST}_SUPPORTED + */ +#define PNG_FORMAT_FLAG_ALPHA 0x01U /* format with an alpha channel */ +#define PNG_FORMAT_FLAG_COLOR 0x02U /* color format: otherwise grayscale */ +#define PNG_FORMAT_FLAG_LINEAR 0x04U /* 2 byte channels else 1 byte */ +#define PNG_FORMAT_FLAG_COLORMAP 0x08U /* image data is color-mapped */ + +#ifdef PNG_FORMAT_BGR_SUPPORTED +# define PNG_FORMAT_FLAG_BGR 0x10U /* BGR colors, else order is RGB */ +#endif + +#ifdef PNG_FORMAT_AFIRST_SUPPORTED +# define PNG_FORMAT_FLAG_AFIRST 0x20U /* alpha channel comes first */ +#endif + +/* Commonly used formats have predefined macros. + * + * First the single byte (sRGB) formats: + */ +#define PNG_FORMAT_GRAY 0 +#define PNG_FORMAT_GA PNG_FORMAT_FLAG_ALPHA +#define PNG_FORMAT_AG (PNG_FORMAT_GA|PNG_FORMAT_FLAG_AFIRST) +#define PNG_FORMAT_RGB PNG_FORMAT_FLAG_COLOR +#define PNG_FORMAT_BGR (PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_BGR) +#define PNG_FORMAT_RGBA (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_ALPHA) +#define PNG_FORMAT_ARGB (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_AFIRST) +#define PNG_FORMAT_BGRA (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_ALPHA) +#define PNG_FORMAT_ABGR (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_AFIRST) + +/* Then the linear 2-byte formats. When naming these "Y" is used to + * indicate a luminance (gray) channel. + */ +#define PNG_FORMAT_LINEAR_Y PNG_FORMAT_FLAG_LINEAR +#define PNG_FORMAT_LINEAR_Y_ALPHA (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_ALPHA) +#define PNG_FORMAT_LINEAR_RGB (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR) +#define PNG_FORMAT_LINEAR_RGB_ALPHA \ + (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA) + +/* With color-mapped formats the image data is one byte for each pixel, the byte + * is an index into the color-map which is formatted as above. To obtain a + * color-mapped format it is sufficient just to add the PNG_FOMAT_FLAG_COLORMAP + * to one of the above definitions, or you can use one of the definitions below. + */ +#define PNG_FORMAT_RGB_COLORMAP (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_BGR_COLORMAP (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_RGBA_COLORMAP (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_ARGB_COLORMAP (PNG_FORMAT_ARGB|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_BGRA_COLORMAP (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_ABGR_COLORMAP (PNG_FORMAT_ABGR|PNG_FORMAT_FLAG_COLORMAP) + +/* PNG_IMAGE macros + * + * These are convenience macros to derive information from a png_image + * structure. The PNG_IMAGE_SAMPLE_ macros return values appropriate to the + * actual image sample values - either the entries in the color-map or the + * pixels in the image. The PNG_IMAGE_PIXEL_ macros return corresponding values + * for the pixels and will always return 1 for color-mapped formats. The + * remaining macros return information about the rows in the image and the + * complete image. + * + * NOTE: All the macros that take a png_image::format parameter are compile time + * constants if the format parameter is, itself, a constant. Therefore these + * macros can be used in array declarations and case labels where required. + * Similarly the macros are also pre-processor constants (sizeof is not used) so + * they can be used in #if tests. + * + * First the information about the samples. + */ +#define PNG_IMAGE_SAMPLE_CHANNELS(fmt)\ + (((fmt)&(PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA))+1) + /* Return the total number of channels in a given format: 1..4 */ + +#define PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)\ + ((((fmt) & PNG_FORMAT_FLAG_LINEAR) >> 2)+1) + /* Return the size in bytes of a single component of a pixel or color-map + * entry (as appropriate) in the image: 1 or 2. + */ + +#define PNG_IMAGE_SAMPLE_SIZE(fmt)\ + (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)) + /* This is the size of the sample data for one sample. If the image is + * color-mapped it is the size of one color-map entry (and image pixels are + * one byte in size), otherwise it is the size of one image pixel. + */ + +#define PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(fmt)\ + (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * 256) + /* The maximum size of the color-map required by the format expressed in a + * count of components. This can be used to compile-time allocate a + * color-map: + * + * png_uint_16 colormap[PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(linear_fmt)]; + * + * png_byte colormap[PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(sRGB_fmt)]; + * + * Alternatively use the PNG_IMAGE_COLORMAP_SIZE macro below to use the + * information from one of the png_image_begin_read_ APIs and dynamically + * allocate the required memory. + */ + +/* Corresponding information about the pixels */ +#define PNG_IMAGE_PIXEL_(test,fmt)\ + (((fmt)&PNG_FORMAT_FLAG_COLORMAP)?1:test(fmt)) + +#define PNG_IMAGE_PIXEL_CHANNELS(fmt)\ + PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_CHANNELS,fmt) + /* The number of separate channels (components) in a pixel; 1 for a + * color-mapped image. + */ + +#define PNG_IMAGE_PIXEL_COMPONENT_SIZE(fmt)\ + PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_COMPONENT_SIZE,fmt) + /* The size, in bytes, of each component in a pixel; 1 for a color-mapped + * image. + */ + +#define PNG_IMAGE_PIXEL_SIZE(fmt) PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_SIZE,fmt) + /* The size, in bytes, of a complete pixel; 1 for a color-mapped image. */ + +/* Information about the whole row, or whole image */ +#define PNG_IMAGE_ROW_STRIDE(image)\ + (PNG_IMAGE_PIXEL_CHANNELS((image).format) * (image).width) + /* Return the total number of components in a single row of the image; this + * is the minimum 'row stride', the minimum count of components between each + * row. For a color-mapped image this is the minimum number of bytes in a + * row. + */ + +#define PNG_IMAGE_BUFFER_SIZE(image, row_stride)\ + (PNG_IMAGE_PIXEL_COMPONENT_SIZE((image).format)*(image).height*(row_stride)) + /* Return the size, in bytes, of an image buffer given a png_image and a row + * stride - the number of components to leave space for in each row. + */ + +#define PNG_IMAGE_SIZE(image)\ + PNG_IMAGE_BUFFER_SIZE(image, PNG_IMAGE_ROW_STRIDE(image)) + /* Return the size, in bytes, of the image in memory given just a png_image; + * the row stride is the minimum stride required for the image. + */ + +#define PNG_IMAGE_COLORMAP_SIZE(image)\ + (PNG_IMAGE_SAMPLE_SIZE((image).format) * (image).colormap_entries) + /* Return the size, in bytes, of the color-map of this image. If the image + * format is not a color-map format this will return a size sufficient for + * 256 entries in the given format; check PNG_FORMAT_FLAG_COLORMAP if + * you don't want to allocate a color-map in this case. + */ + +/* PNG_IMAGE_FLAG_* + * + * Flags containing additional information about the image are held in the + * 'flags' field of png_image. + */ +#define PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB 0x01 + /* This indicates the the RGB values of the in-memory bitmap do not + * correspond to the red, green and blue end-points defined by sRGB. + */ + +#define PNG_IMAGE_FLAG_FAST 0x02 + /* On write emphasise speed over compression; the resultant PNG file will be + * larger but will be produced significantly faster, particular for large + * images. Do not use this option for images which will be distributed, only + * used it when producing intermediate files that will be read back in + * repeatedly. For a typical 24-bit image the option will double the read + * speed at the cost of increasing the image size by 25%, however for many + * more compressible images the PNG file can be 10 times larger with only a + * slight speed gain. + */ + +#define PNG_IMAGE_FLAG_16BIT_sRGB 0x04 + /* On read if the image is a 16-bit per component image and there is no gAMA + * or sRGB chunk assume that the components are sRGB encoded. Notice that + * images output by the simplified API always have gamma information; setting + * this flag only affects the interpretation of 16-bit images from an + * external source. It is recommended that the application expose this flag + * to the user; the user can normally easily recognize the difference between + * linear and sRGB encoding. This flag has no effect on write - the data + * passed to the write APIs must have the correct encoding (as defined + * above.) + * + * If the flag is not set (the default) input 16-bit per component data is + * assumed to be linear. + * + * NOTE: the flag can only be set after the png_image_begin_read_ call, + * because that call initializes the 'flags' field. + */ + +#ifdef PNG_SIMPLIFIED_READ_SUPPORTED +/* READ APIs + * --------- + * + * The png_image passed to the read APIs must have been initialized by setting + * the png_controlp field 'opaque' to NULL (or, safer, memset the whole thing.) + */ +#ifdef PNG_STDIO_SUPPORTED +PNG_EXPORT(234, int, png_image_begin_read_from_file, (png_imagep image, + const char *file_name)); + /* The named file is opened for read and the image header is filled in + * from the PNG header in the file. + */ + +PNG_EXPORT(235, int, png_image_begin_read_from_stdio, (png_imagep image, + FILE* file)); + /* The PNG header is read from the stdio FILE object. */ +#endif /* PNG_STDIO_SUPPORTED */ + +PNG_EXPORT(236, int, png_image_begin_read_from_memory, (png_imagep image, + png_const_voidp memory, png_size_t size)); + /* The PNG header is read from the given memory buffer. */ + +PNG_EXPORT(237, int, png_image_finish_read, (png_imagep image, + png_const_colorp background, void *buffer, png_int_32 row_stride, + void *colormap)); + /* Finish reading the image into the supplied buffer and clean up the + * png_image structure. + * + * row_stride is the step, in byte or 2-byte units as appropriate, + * between adjacent rows. A positive stride indicates that the top-most row + * is first in the buffer - the normal top-down arrangement. A negative + * stride indicates that the bottom-most row is first in the buffer. + * + * background need only be supplied if an alpha channel must be removed from + * a png_byte format and the removal is to be done by compositing on a solid + * color; otherwise it may be NULL and any composition will be done directly + * onto the buffer. The value is an sRGB color to use for the background, + * for grayscale output the green channel is used. + * + * background must be supplied when an alpha channel must be removed from a + * single byte color-mapped output format, in other words if: + * + * 1) The original format from png_image_begin_read_from_* had + * PNG_FORMAT_FLAG_ALPHA set. + * 2) The format set by the application does not. + * 3) The format set by the application has PNG_FORMAT_FLAG_COLORMAP set and + * PNG_FORMAT_FLAG_LINEAR *not* set. + * + * For linear output removing the alpha channel is always done by compositing + * on black and background is ignored. + * + * colormap must be supplied when PNG_FORMAT_FLAG_COLORMAP is set. It must + * be at least the size (in bytes) returned by PNG_IMAGE_COLORMAP_SIZE. + * image->colormap_entries will be updated to the actual number of entries + * written to the colormap; this may be less than the original value. + */ + +PNG_EXPORT(238, void, png_image_free, (png_imagep image)); + /* Free any data allocated by libpng in image->opaque, setting the pointer to + * NULL. May be called at any time after the structure is initialized. + */ +#endif /* PNG_SIMPLIFIED_READ_SUPPORTED */ + +#ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED +#ifdef PNG_STDIO_SUPPORTED +/* WRITE APIS + * ---------- + * For write you must initialize a png_image structure to describe the image to + * be written. To do this use memset to set the whole structure to 0 then + * initialize fields describing your image. + * + * version: must be set to PNG_IMAGE_VERSION + * opaque: must be initialized to NULL + * width: image width in pixels + * height: image height in rows + * format: the format of the data (image and color-map) you wish to write + * flags: set to 0 unless one of the defined flags applies; set + * PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB for color format images where the RGB + * values do not correspond to the colors in sRGB. + * colormap_entries: set to the number of entries in the color-map (0 to 256) + */ +PNG_EXPORT(239, int, png_image_write_to_file, (png_imagep image, + const char *file, int convert_to_8bit, const void *buffer, + png_int_32 row_stride, const void *colormap)); + /* Write the image to the named file. */ + +PNG_EXPORT(240, int, png_image_write_to_stdio, (png_imagep image, FILE *file, + int convert_to_8_bit, const void *buffer, png_int_32 row_stride, + const void *colormap)); + /* Write the image to the given (FILE*). */ + +/* With both write APIs if image is in one of the linear formats with 16-bit + * data then setting convert_to_8_bit will cause the output to be an 8-bit PNG + * gamma encoded according to the sRGB specification, otherwise a 16-bit linear + * encoded PNG file is written. + * + * With color-mapped data formats the colormap parameter point to a color-map + * with at least image->colormap_entries encoded in the specified format. If + * the format is linear the written PNG color-map will be converted to sRGB + * regardless of the convert_to_8_bit flag. + * + * With all APIs row_stride is handled as in the read APIs - it is the spacing + * from one row to the next in component sized units (1 or 2 bytes) and if + * negative indicates a bottom-up row layout in the buffer. + * + * Note that the write API does not support interlacing or sub-8-bit pixels. + */ +#endif /* PNG_STDIO_SUPPORTED */ +#endif /* PNG_SIMPLIFIED_WRITE_SUPPORTED */ +/******************************************************************************* + * END OF SIMPLIFIED API + ******************************************************************************/ + +#ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED +PNG_EXPORT(242, void, png_set_check_for_invalid_index, + (png_structrp png_ptr, int allowed)); +# ifdef PNG_GET_PALETTE_MAX_SUPPORTED +PNG_EXPORT(243, int, png_get_palette_max, (png_const_structp png_ptr, + png_const_infop info_ptr)); +# endif +#endif /* CHECK_FOR_INVALID_INDEX */ + +/******************************************************************************* + * IMPLEMENTATION OPTIONS + ******************************************************************************* + * + * Support for arbitrary implementation-specific optimizations. The API allows + * particular options to be turned on or off. 'Option' is the number of the + * option and 'onoff' is 0 (off) or non-0 (on). The value returned is given + * by the PNG_OPTION_ defines below. + * + * HARDWARE: normally hardware capabilites, such as the Intel SSE instructions, + * are detected at run time, however sometimes it may be impossible + * to do this in user mode, in which case it is necessary to discover + * the capabilities in an OS specific way. Such capabilities are + * listed here when libpng has support for them and must be turned + * ON by the application if present. + * + * SOFTWARE: sometimes software optimizations actually result in performance + * decrease on some architectures or systems, or with some sets of + * PNG images. 'Software' options allow such optimizations to be + * selected at run time. + */ +#ifdef PNG_SET_OPTION_SUPPORTED +#ifdef PNG_ARM_NEON_API_SUPPORTED +# define PNG_ARM_NEON 0 /* HARDWARE: ARM Neon SIMD instructions supported */ +#endif +#define PNG_MAXIMUM_INFLATE_WINDOW 2 /* SOFTWARE: force maximum window */ +#define PNG_SKIP_sRGB_CHECK_PROFILE 4 /* SOFTWARE: Check ICC profile for sRGB */ +#define PNG_OPTION_NEXT 6 /* Next option - numbers must be even */ + +/* Return values: NOTE: there are four values and 'off' is *not* zero */ +#define PNG_OPTION_UNSET 0 /* Unset - defaults to off */ +#define PNG_OPTION_INVALID 1 /* Option number out of range */ +#define PNG_OPTION_OFF 2 +#define PNG_OPTION_ON 3 + +PNG_EXPORT(244, int, png_set_option, (png_structrp png_ptr, int option, + int onoff)); +#endif + +/******************************************************************************* + * END OF HARDWARE AND SOFTWARE OPTIONS + ******************************************************************************/ + +/* Maintainer: Put new public prototypes here ^, in libpng.3, and project + * defs, scripts/pnglibconf.h, and scripts/pnglibconf.h.prebuilt + */ + +/* The last ordinal number (this is the *last* one already used; the next + * one to use is one more than this.) Maintainer, remember to add an entry to + * scripts/symbols.def as well. + */ +#ifdef PNG_EXPORT_LAST_ORDINAL + PNG_EXPORT_LAST_ORDINAL(244); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* PNG_VERSION_INFO_ONLY */ +/* Do not put anything past this line */ +#endif /* PNG_H */ diff --git a/engine/libs/mingw64-libs/pngconf.h b/engine/libs/mingw64-libs/pngconf.h index 084de8eff..62e075fd6 100755 --- a/engine/libs/mingw64-libs/pngconf.h +++ b/engine/libs/mingw64-libs/pngconf.h @@ -1,649 +1,644 @@ - -/* pngconf.h - machine configurable file for libpng - * - * libpng version 1.5.2 - March 31, 2011 - * - * Copyright (c) 1998-2011 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - * - */ - -/* Any machine specific code is near the front of this file, so if you - * are configuring libpng for a machine, you may want to read the section - * starting here down to where it starts to typedef png_color, png_text, - * and png_info. - */ - -#ifndef PNGCONF_H -#define PNGCONF_H - -#ifndef PNG_BUILDING_SYMBOL_TABLE -/* PNG_NO_LIMITS_H may be used to turn off the use of the standard C - * definition file for machine specific limits, this may impact the - * correctness of the definitons below (see uses of INT_MAX). - */ -# ifndef PNG_NO_LIMITS_H -# include -# endif - -/* For the memory copy APIs (i.e. the standard definitions of these), - * because this file defines png_memcpy and so on the base APIs must - * be defined here. - */ -# ifdef BSD -# include -# else -# include -# endif - -/* For png_FILE_p - this provides the standard definition of a - * FILE - */ -# ifdef PNG_STDIO_SUPPORTED -# include -# endif -#endif - -/* This controls optimization of the reading of 16 and 32 bit values - * from PNG files. It can be set on a per-app-file basis - it - * just changes whether a macro is used to the function is called. - * The library builder sets the default, if read functions are not - * built into the library the macro implementation is forced on. - */ -#ifndef PNG_READ_INT_FUNCTIONS_SUPPORTED -# define PNG_USE_READ_MACROS -#endif -#if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS) -# if PNG_DEFAULT_READ_MACROS -# define PNG_USE_READ_MACROS -# endif -#endif - -/* COMPILER SPECIFIC OPTIONS. - * - * These options are provided so that a variety of difficult compilers - * can be used. Some are fixed at build time (e.g. PNG_API_RULE - * below) but still have compiler specific implementations, others - * may be changed on a per-file basis when compiling against libpng. - */ - -/* The PNGARG macro protects us against machines that don't have function - * prototypes (ie K&R style headers). If your compiler does not handle - * function prototypes, define this macro and use the included ansi2knr. - * I've always been able to use _NO_PROTO as the indicator, but you may - * need to drag the empty declaration out in front of here, or change the - * ifdef to suit your own needs. - */ -#ifndef PNGARG - -# ifdef OF /* zlib prototype munger */ -# define PNGARG(arglist) OF(arglist) -# else - -# ifdef _NO_PROTO -# define PNGARG(arglist) () -# else -# define PNGARG(arglist) arglist -# endif /* _NO_PROTO */ - -# endif /* OF */ - -#endif /* PNGARG */ - -/* Function calling conventions. - * ============================= - * Normally it is not necessary to specify to the compiler how to call - * a function - it just does it - however on x86 systems derived from - * Microsoft and Borland C compilers ('IBM PC', 'DOS', 'Windows' systems - * and some others) there are multiple ways to call a function and the - * default can be changed on the compiler command line. For this reason - * libpng specifies the calling convention of every exported function and - * every function called via a user supplied function pointer. This is - * done in this file by defining the following macros: - * - * PNGAPI Calling convention for exported functions. - * PNGCBAPI Calling convention for user provided (callback) functions. - * PNGCAPI Calling convention used by the ANSI-C library (required - * for longjmp callbacks and sometimes used internally to - * specify the calling convention for zlib). - * - * These macros should never be overridden. If it is necessary to - * change calling convention in a private build this can be done - * by setting PNG_API_RULE (which defaults to 0) to one of the values - * below to select the correct 'API' variants. - * - * PNG_API_RULE=0 Use PNGCAPI - the 'C' calling convention - throughout. - * This is correct in every known environment. - * PNG_API_RULE=1 Use the operating system convention for PNGAPI and - * the 'C' calling convention (from PNGCAPI) for - * callbacks (PNGCBAPI). This is no longer required - * in any known environment - if it has to be used - * please post an explanation of the problem to the - * libpng mailing list. - * - * These cases only differ if the operating system does not use the C - * calling convention, at present this just means the above cases - * (x86 DOS/Windows sytems) and, even then, this does not apply to - * Cygwin running on those systems. - * - * Note that the value must be defined in pnglibconf.h so that what - * the application uses to call the library matches the conventions - * set when building the library. - */ - -/* Symbol export - * ============= - * When building a shared library it is almost always necessary to tell - * the compiler which symbols to export. The png.h macro 'PNG_EXPORT' - * is used to mark the symbols. On some systems these symbols can be - * extracted at link time and need no special processing by the compiler, - * on other systems the symbols are flagged by the compiler and just - * the declaration requires a special tag applied (unfortunately) in a - * compiler dependent way. Some systems can do either. - * - * A small number of older systems also require a symbol from a DLL to - * be flagged to the program that calls it. This is a problem because - * we do not know in the header file included by application code that - * the symbol will come from a shared library, as opposed to a statically - * linked one. For this reason the application must tell us by setting - * the magic flag PNG_USE_DLL to turn on the special processing before - * it includes png.h. - * - * Four additional macros are used to make this happen: - * - * PNG_IMPEXP The magic (if any) to cause a symbol to be exported from - * the build or imported if PNG_USE_DLL is set - compiler - * and system specific. - * - * PNG_EXPORT_TYPE(type) A macro that pre or appends PNG_IMPEXP to - * 'type', compiler specific. - * - * PNG_DLL_EXPORT Set to the magic to use during a libpng build to - * make a symbol exported from the DLL. - * - * PNG_DLL_IMPORT Set to the magic to force the libpng symbols to come - * from a DLL - used to define PNG_IMPEXP when - * PNG_USE_DLL is set. - */ - -/* System specific discovery. - * ========================== - * This code is used at build time to find PNG_IMPEXP, the API settings - * and PNG_EXPORT_TYPE(), it may also set a macro to indicate the DLL - * import processing is possible. On Windows/x86 systems it also sets - * compiler-specific macros to the values required to change the calling - * conventions of the various functions. - */ -#if ( defined(_Windows) || defined(_WINDOWS) || defined(WIN32) ||\ - defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) ) &&\ - ( defined(_X86_) || defined(_X64_) || defined(_M_IX86) ||\ - defined(_M_X64) || defined(_M_IA64) ) - /* Windows system (DOS doesn't support DLLs) running on x86/x64. Includes - * builds under Cygwin or MinGW. Also includes Watcom builds but these need - * special treatment because they are not compatible with GCC or Visual C - * because of different calling conventions. - */ -# if PNG_API_RULE == 2 - /* If this line results in an error, either because __watcall is not - * understood or because of a redefine just below you cannot use *this* - * build of the library with the compiler you are using. *This* build was - * build using Watcom and applications must also be built using Watcom! - */ -# define PNGCAPI __watcall -# endif - -# if defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800)) -# define PNGCAPI __cdecl -# if PNG_API_RULE == 1 -# define PNGAPI __stdcall -# endif -# else - /* An older compiler, or one not detected (erroneously) above, - * if necessary override on the command line to get the correct - * variants for the compiler. - */ -# ifndef PNGCAPI -# define PNGCAPI _cdecl -# endif -# if PNG_API_RULE == 1 && !defined(PNGAPI) -# define PNGAPI _stdcall -# endif -# endif /* compiler/api */ - /* NOTE: PNGCBAPI always defaults to PNGCAPI. */ - -# if defined(PNGAPI) && !defined(PNG_USER_PRIVATEBUILD) - ERROR: PNG_USER_PRIVATEBUILD must be defined if PNGAPI is changed -# endif - -# if (defined(_MSC_VER) && _MSC_VER < 800) ||\ - (defined(__BORLANDC__) && __BORLANDC__ < 0x500) - /* older Borland and MSC - * compilers used '__export' and required this to be after - * the type. - */ -# ifndef PNG_EXPORT_TYPE -# define PNG_EXPORT_TYPE(type) type PNG_IMPEXP -# endif -# define PNG_DLL_EXPORT __export -# else /* newer compiler */ -# define PNG_DLL_EXPORT __declspec(dllexport) -# ifndef PNG_DLL_IMPORT -# define PNG_DLL_IMPORT __declspec(dllimport) -# endif -# endif /* compiler */ - -#else /* !Windows/x86 */ -# if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) -# define PNGAPI _System -# else /* !Windows/x86 && !OS/2 */ - /* Use the defaults, or define PNG*API on the command line (but - * this will have to be done for every compile!) - */ -# endif /* other system, !OS/2 */ -#endif /* !Windows/x86 */ - -/* Now do all the defaulting . */ -#ifndef PNGCAPI -# define PNGCAPI -#endif -#ifndef PNGCBAPI -# define PNGCBAPI PNGCAPI -#endif -#ifndef PNGAPI -# define PNGAPI PNGCAPI -#endif - -/* The default for PNG_IMPEXP depends on whether the library is - * being built or used. - */ -#ifndef PNG_IMPEXP -# ifdef PNGLIB_BUILD - /* Building the library */ -# if (defined(DLL_EXPORT)/*from libtool*/ ||\ - defined(_WINDLL) || defined(_DLL) || defined(__DLL__) ||\ - defined(_USRDLL) ||\ - defined(PNG_BUILD_DLL)) && defined(PNG_DLL_EXPORT) - /* Building a DLL. */ -# define PNG_IMPEXP PNG_DLL_EXPORT -# endif /* DLL */ -# else - /* Using the library */ -# if defined(PNG_USE_DLL) && defined(PNG_DLL_IMPORT) - /* This forces use of a DLL, disallowing static linking */ -# define PNG_IMPEXP PNG_DLL_IMPORT -# endif -# endif - -# ifndef PNG_IMPEXP -# define PNG_IMPEXP -# endif -#endif - -/* In 1.5.2 the definition of PNG_FUNCTION has been changed to always treat - * 'attributes' as a storage class - the attributes go at the start of the - * function definition, and attributes are always appended regardless of the - * compiler. This considerably simplifies these macros but may cause problems - * if any compilers both need function attributes and fail to handle them as - * a storage class (this is unlikely.) - */ -#ifndef PNG_FUNCTION -# define PNG_FUNCTION(type, name, args, attributes) attributes type name args -#endif - -#ifndef PNG_EXPORT_TYPE -# define PNG_EXPORT_TYPE(type) PNG_IMPEXP type -#endif - - /* The ordinal value is only relevant when preprocessing png.h for symbol - * table entries, so we discard it here. See the .dfn files in the - * scripts directory. - */ -#ifndef PNG_EXPORTA - -# define PNG_EXPORTA(ordinal, type, name, args, attributes)\ - PNG_FUNCTION(PNG_EXPORT_TYPE(type),(PNGAPI name),PNGARG(args), \ - extern attributes) -#endif - -/* ANSI-C (C90) does not permit a macro to be invoked with an empty argument, - * so make something non-empty to satisfy the requirement: - */ -#define PNG_EMPTY /*empty list*/ - -#define PNG_EXPORT(ordinal, type, name, args)\ - PNG_EXPORTA(ordinal, type, name, args, PNG_EMPTY) - -/* Use PNG_REMOVED to comment out a removed interface. */ -#ifndef PNG_REMOVED -# define PNG_REMOVED(ordinal, type, name, args, attributes) -#endif - -#ifndef PNG_CALLBACK -# define PNG_CALLBACK(type, name, args) type (PNGCBAPI name) PNGARG(args) -#endif - -/* Support for compiler specific function attributes. These are used - * so that where compiler support is available incorrect use of API - * functions in png.h will generate compiler warnings. - * - * Added at libpng-1.2.41. - */ - -#ifndef PNG_NO_PEDANTIC_WARNINGS -# ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED -# define PNG_PEDANTIC_WARNINGS_SUPPORTED -# endif -#endif - -#ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED - /* Support for compiler specific function attributes. These are used - * so that where compiler support is available incorrect use of API - * functions in png.h will generate compiler warnings. Added at libpng - * version 1.2.41. - */ -# if defined(__GNUC__) -# ifndef PNG_USE_RESULT -# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) -# endif -# ifndef PNG_NORETURN -# define PNG_NORETURN __attribute__((__noreturn__)) -# endif -# ifndef PNG_PTR_NORETURN - /* It's not enough to have the compiler be the correct compiler at - * this point - it's necessary for the library (which defines - * the type of the library longjmp) to also be the GNU library. - * This is because many systems use the GNU compiler with a - * non-GNU libc implementation. Min/GW headers are also compatible - * with GCC as well as uclibc, so it seems best to exclude known - * problem libcs here rather than just including known libcs. - * - * NOTE: this relies on the only use of PNG_PTR_NORETURN being with - * the system longjmp. If the same type is used elsewhere then this - * will need to be changed. - */ -# if !defined(__CYGWIN__) -# define PNG_PTR_NORETURN __attribute__((__noreturn__)) -# endif -# endif -# ifndef PNG_ALLOCATED -# define PNG_ALLOCATED __attribute__((__malloc__)) -# endif - - /* This specifically protects structure members that should only be - * accessed from within the library, therefore should be empty during - * a library build. - */ -# ifndef PNGLIB_BUILD -# ifndef PNG_DEPRECATED -# define PNG_DEPRECATED __attribute__((__deprecated__)) -# endif -# ifndef PNG_DEPSTRUCT -# define PNG_DEPSTRUCT __attribute__((__deprecated__)) -# endif -# ifndef PNG_PRIVATE -# if 0 /* Doesn't work so we use deprecated instead*/ -# define PNG_PRIVATE \ - __attribute__((warning("This function is not exported by libpng."))) -# else -# define PNG_PRIVATE \ - __attribute__((__deprecated__)) -# endif -# endif -# endif /* PNGLIB_BUILD */ -# endif /* __GNUC__ */ - -# if defined(_MSC_VER) && (_MSC_VER >= 1300) -# ifndef PNG_USE_RESULT -# define PNG_USE_RESULT /* not supported */ -# endif -# ifndef PNG_NORETURN -# define PNG_NORETURN __declspec(noreturn) -# endif -# ifndef PNG_PTR_NORETURN -# define PNG_PTR_NORETURN /* not supported */ -# endif -# ifndef PNG_ALLOCATED -# define PNG_ALLOCATED __declspec(restrict) -# endif - - /* This specifically protects structure members that should only be - * accessed from within the library, therefore should be empty during - * a library build. - */ -# ifndef PNGLIB_BUILD -# ifndef PNG_DEPRECATED -# define PNG_DEPRECATED __declspec(deprecated) -# endif -# ifndef PNG_DEPSTRUCT -# define PNG_DEPSTRUCT __declspec(deprecated) -# endif -# ifndef PNG_PRIVATE -# define PNG_PRIVATE __declspec(deprecated) -# endif -# endif /* PNGLIB_BUILD */ -# endif /* _MSC_VER */ -#endif /* PNG_PEDANTIC_WARNINGS */ - -#ifndef PNG_DEPRECATED -# define PNG_DEPRECATED /* Use of this function is deprecated */ -#endif -#ifndef PNG_USE_RESULT -# define PNG_USE_RESULT /* The result of this function must be checked */ -#endif -#ifndef PNG_NORETURN -# define PNG_NORETURN /* This function does not return */ -#endif -#ifndef PNG_PTR_NORETURN -# define PNG_PTR_NORETURN /* This function does not return */ -#endif -#ifndef PNG_ALLOCATED -# define PNG_ALLOCATED /* The result of the function is new memory */ -#endif -#ifndef PNG_DEPSTRUCT -# define PNG_DEPSTRUCT /* Access to this struct member is deprecated */ -#endif -#ifndef PNG_PRIVATE -# define PNG_PRIVATE /* This is a private libpng function */ -#endif -#ifndef PNG_FP_EXPORT /* A floating point API. */ -# ifdef PNG_FLOATING_POINT_SUPPORTED -# define PNG_FP_EXPORT(ordinal, type, name, args)\ - PNG_EXPORT(ordinal, type, name, args) -# else /* No floating point APIs */ -# define PNG_FP_EXPORT(ordinal, type, name, args) -# endif -#endif -#ifndef PNG_FIXED_EXPORT /* A fixed point API. */ -# ifdef PNG_FIXED_POINT_SUPPORTED -# define PNG_FIXED_EXPORT(ordinal, type, name, args)\ - PNG_EXPORT(ordinal, type, name, args) -# else /* No fixed point APIs */ -# define PNG_FIXED_EXPORT(ordinal, type, name, args) -# endif -#endif - -/* The following uses const char * instead of char * for error - * and warning message functions, so some compilers won't complain. - * If you do not want to use const, define PNG_NO_CONST here. - * - * This should not change how the APIs are called, so it can be done - * on a per-file basis in the application. - */ -#ifndef PNG_CONST -# ifndef PNG_NO_CONST -# define PNG_CONST const -# else -# define PNG_CONST -# endif -#endif - -/* Some typedefs to get us started. These should be safe on most of the - * common platforms. The typedefs should be at least as large as the - * numbers suggest (a png_uint_32 must be at least 32 bits long), but they - * don't have to be exactly that size. Some compilers dislike passing - * unsigned shorts as function parameters, so you may be better off using - * unsigned int for png_uint_16. - */ - -#if defined(INT_MAX) && (INT_MAX > 0x7ffffffeL) -typedef unsigned int png_uint_32; -typedef int png_int_32; -#else -typedef unsigned long png_uint_32; -typedef long png_int_32; -#endif -typedef unsigned short png_uint_16; -typedef short png_int_16; -typedef unsigned char png_byte; - -#ifdef PNG_NO_SIZE_T -typedef unsigned int png_size_t; -#else -typedef size_t png_size_t; -#endif -#define png_sizeof(x) (sizeof (x)) - -/* The following is needed for medium model support. It cannot be in the - * pngpriv.h header. Needs modification for other compilers besides - * MSC. Model independent support declares all arrays and pointers to be - * large using the far keyword. The zlib version used must also support - * model independent data. As of version zlib 1.0.4, the necessary changes - * have been made in zlib. The USE_FAR_KEYWORD define triggers other - * changes that are needed. (Tim Wegner) - */ - -/* Separate compiler dependencies (problem here is that zlib.h always - * defines FAR. (SJT) - */ -#ifdef __BORLANDC__ -# if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__) -# define LDATA 1 -# else -# define LDATA 0 -# endif - /* GRR: why is Cygwin in here? Cygwin is not Borland C... */ -# if !defined(__WIN32__) && !defined(__FLAT__) && !defined(__CYGWIN__) -# define PNG_MAX_MALLOC_64K /* only used in build */ -# if (LDATA != 1) -# ifndef FAR -# define FAR __far -# endif -# define USE_FAR_KEYWORD -# endif /* LDATA != 1 */ - /* Possibly useful for moving data out of default segment. - * Uncomment it if you want. Could also define FARDATA as - * const if your compiler supports it. (SJT) -# define FARDATA FAR - */ -# endif /* __WIN32__, __FLAT__, __CYGWIN__ */ -#endif /* __BORLANDC__ */ - - -/* Suggest testing for specific compiler first before testing for - * FAR. The Watcom compiler defines both __MEDIUM__ and M_I86MM, - * making reliance oncertain keywords suspect. (SJT) - */ - -/* MSC Medium model */ -#ifdef FAR -# ifdef M_I86MM -# define USE_FAR_KEYWORD -# define FARDATA FAR -# include -# endif -#endif - -/* SJT: default case */ -#ifndef FAR -# define FAR -#endif - -/* At this point FAR is always defined */ -#ifndef FARDATA -# define FARDATA -#endif - -/* Typedef for floating-point numbers that are converted - * to fixed-point with a multiple of 100,000, e.g., gamma - */ -typedef png_int_32 png_fixed_point; - -/* Add typedefs for pointers */ -typedef void FAR * png_voidp; -typedef PNG_CONST void FAR * png_const_voidp; -typedef png_byte FAR * png_bytep; -typedef PNG_CONST png_byte FAR * png_const_bytep; -typedef png_uint_32 FAR * png_uint_32p; -typedef PNG_CONST png_uint_32 FAR * png_const_uint_32p; -typedef png_int_32 FAR * png_int_32p; -typedef PNG_CONST png_int_32 FAR * png_const_int_32p; -typedef png_uint_16 FAR * png_uint_16p; -typedef PNG_CONST png_uint_16 FAR * png_const_uint_16p; -typedef png_int_16 FAR * png_int_16p; -typedef PNG_CONST png_int_16 FAR * png_const_int_16p; -typedef char FAR * png_charp; -typedef PNG_CONST char FAR * png_const_charp; -typedef png_fixed_point FAR * png_fixed_point_p; -typedef PNG_CONST png_fixed_point FAR * png_const_fixed_point_p; -typedef png_size_t FAR * png_size_tp; -typedef PNG_CONST png_size_t FAR * png_const_size_tp; - -#ifdef PNG_STDIO_SUPPORTED -typedef FILE * png_FILE_p; -#endif - -#ifdef PNG_FLOATING_POINT_SUPPORTED -typedef double FAR * png_doublep; -typedef PNG_CONST double FAR * png_const_doublep; -#endif - -/* Pointers to pointers; i.e. arrays */ -typedef png_byte FAR * FAR * png_bytepp; -typedef png_uint_32 FAR * FAR * png_uint_32pp; -typedef png_int_32 FAR * FAR * png_int_32pp; -typedef png_uint_16 FAR * FAR * png_uint_16pp; -typedef png_int_16 FAR * FAR * png_int_16pp; -typedef PNG_CONST char FAR * FAR * png_const_charpp; -typedef char FAR * FAR * png_charpp; -typedef png_fixed_point FAR * FAR * png_fixed_point_pp; -#ifdef PNG_FLOATING_POINT_SUPPORTED -typedef double FAR * FAR * png_doublepp; -#endif - -/* Pointers to pointers to pointers; i.e., pointer to array */ -typedef char FAR * FAR * FAR * png_charppp; - -/* png_alloc_size_t is guaranteed to be no smaller than png_size_t, - * and no smaller than png_uint_32. Casts from png_size_t or png_uint_32 - * to png_alloc_size_t are not necessary; in fact, it is recommended - * not to use them at all so that the compiler can complain when something - * turns out to be problematic. - * Casts in the other direction (from png_alloc_size_t to png_size_t or - * png_uint_32) should be explicitly applied; however, we do not expect - * to encounter practical situations that require such conversions. - */ -#if defined(__TURBOC__) && !defined(__FLAT__) - typedef unsigned long png_alloc_size_t; -#else -# if defined(_MSC_VER) && defined(MAXSEG_64K) - typedef unsigned long png_alloc_size_t; -# else - /* This is an attempt to detect an old Windows system where (int) is - * actually 16 bits, in that case png_malloc must have an argument with a - * bigger size to accomodate the requirements of the library. - */ -# if (defined(_Windows) || defined(_WINDOWS) || defined(_WINDOWS_)) && \ - (!defined(INT_MAX) || INT_MAX <= 0x7ffffffeL) - typedef DWORD png_alloc_size_t; -# else - typedef png_size_t png_alloc_size_t; -# endif -# endif -#endif - -#endif /* PNGCONF_H */ + +/* pngconf.h - machine configurable file for libpng + * + * libpng version 1.6.13 - August 21, 2014 + * + * Copyright (c) 1998-2014 Glenn Randers-Pehrson + * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) + * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * + * This code is released under the libpng license. + * For conditions of distribution and use, see the disclaimer + * and license in png.h + * + */ + +/* Any machine specific code is near the front of this file, so if you + * are configuring libpng for a machine, you may want to read the section + * starting here down to where it starts to typedef png_color, png_text, + * and png_info. + */ + +#ifndef PNGCONF_H +#define PNGCONF_H + +/* To do: Do all of this in scripts/pnglibconf.dfa */ +#ifdef PNG_SAFE_LIMITS_SUPPORTED +# ifdef PNG_USER_WIDTH_MAX +# undef PNG_USER_WIDTH_MAX +# define PNG_USER_WIDTH_MAX 1000000L +# endif +# ifdef PNG_USER_HEIGHT_MAX +# undef PNG_USER_HEIGHT_MAX +# define PNG_USER_HEIGHT_MAX 1000000L +# endif +# ifdef PNG_USER_CHUNK_MALLOC_MAX +# undef PNG_USER_CHUNK_MALLOC_MAX +# define PNG_USER_CHUNK_MALLOC_MAX 4000000L +# endif +# ifdef PNG_USER_CHUNK_CACHE_MAX +# undef PNG_USER_CHUNK_CACHE_MAX +# define PNG_USER_CHUNK_CACHE_MAX 128 +# endif +#endif + +#ifndef PNG_BUILDING_SYMBOL_TABLE /* else includes may cause problems */ + +/* From libpng 1.6.0 libpng requires an ANSI X3.159-1989 ("ISOC90") compliant C + * compiler for correct compilation. The following header files are required by + * the standard. If your compiler doesn't provide these header files, or they + * do not match the standard, you will need to provide/improve them. + */ +#include +#include + +/* Library header files. These header files are all defined by ISOC90; libpng + * expects conformant implementations, however, an ISOC90 conformant system need + * not provide these header files if the functionality cannot be implemented. + * In this case it will be necessary to disable the relevant parts of libpng in + * the build of pnglibconf.h. + * + * Prior to 1.6.0 string.h was included here; the API changes in 1.6.0 to not + * include this unnecessary header file. + */ + +#ifdef PNG_STDIO_SUPPORTED + /* Required for the definition of FILE: */ +# include +#endif + +#ifdef PNG_SETJMP_SUPPORTED + /* Required for the definition of jmp_buf and the declaration of longjmp: */ +# include +#endif + +#ifdef PNG_CONVERT_tIME_SUPPORTED + /* Required for struct tm: */ +# include +#endif + +#endif /* PNG_BUILDING_SYMBOL_TABLE */ + +/* Prior to 1.6.0 it was possible to turn off 'const' in declarations using + * PNG_NO_CONST; this is no longer supported except for data declarations which + * apparently still cause problems in 2011 on some compilers. + */ +#define PNG_CONST const /* backward compatibility only */ + +/* This controls optimization of the reading of 16 and 32 bit values + * from PNG files. It can be set on a per-app-file basis - it + * just changes whether a macro is used when the function is called. + * The library builder sets the default; if read functions are not + * built into the library the macro implementation is forced on. + */ +#ifndef PNG_READ_INT_FUNCTIONS_SUPPORTED +# define PNG_USE_READ_MACROS +#endif +#if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS) +# if PNG_DEFAULT_READ_MACROS +# define PNG_USE_READ_MACROS +# endif +#endif + +/* COMPILER SPECIFIC OPTIONS. + * + * These options are provided so that a variety of difficult compilers + * can be used. Some are fixed at build time (e.g. PNG_API_RULE + * below) but still have compiler specific implementations, others + * may be changed on a per-file basis when compiling against libpng. + */ + +/* The PNGARG macro was used in versions of libpng prior to 1.6.0 to protect + * against legacy (pre ISOC90) compilers that did not understand function + * prototypes. It is not required for modern C compilers. + */ +#ifndef PNGARG +# define PNGARG(arglist) arglist +#endif + +/* Function calling conventions. + * ============================= + * Normally it is not necessary to specify to the compiler how to call + * a function - it just does it - however on x86 systems derived from + * Microsoft and Borland C compilers ('IBM PC', 'DOS', 'Windows' systems + * and some others) there are multiple ways to call a function and the + * default can be changed on the compiler command line. For this reason + * libpng specifies the calling convention of every exported function and + * every function called via a user supplied function pointer. This is + * done in this file by defining the following macros: + * + * PNGAPI Calling convention for exported functions. + * PNGCBAPI Calling convention for user provided (callback) functions. + * PNGCAPI Calling convention used by the ANSI-C library (required + * for longjmp callbacks and sometimes used internally to + * specify the calling convention for zlib). + * + * These macros should never be overridden. If it is necessary to + * change calling convention in a private build this can be done + * by setting PNG_API_RULE (which defaults to 0) to one of the values + * below to select the correct 'API' variants. + * + * PNG_API_RULE=0 Use PNGCAPI - the 'C' calling convention - throughout. + * This is correct in every known environment. + * PNG_API_RULE=1 Use the operating system convention for PNGAPI and + * the 'C' calling convention (from PNGCAPI) for + * callbacks (PNGCBAPI). This is no longer required + * in any known environment - if it has to be used + * please post an explanation of the problem to the + * libpng mailing list. + * + * These cases only differ if the operating system does not use the C + * calling convention, at present this just means the above cases + * (x86 DOS/Windows sytems) and, even then, this does not apply to + * Cygwin running on those systems. + * + * Note that the value must be defined in pnglibconf.h so that what + * the application uses to call the library matches the conventions + * set when building the library. + */ + +/* Symbol export + * ============= + * When building a shared library it is almost always necessary to tell + * the compiler which symbols to export. The png.h macro 'PNG_EXPORT' + * is used to mark the symbols. On some systems these symbols can be + * extracted at link time and need no special processing by the compiler, + * on other systems the symbols are flagged by the compiler and just + * the declaration requires a special tag applied (unfortunately) in a + * compiler dependent way. Some systems can do either. + * + * A small number of older systems also require a symbol from a DLL to + * be flagged to the program that calls it. This is a problem because + * we do not know in the header file included by application code that + * the symbol will come from a shared library, as opposed to a statically + * linked one. For this reason the application must tell us by setting + * the magic flag PNG_USE_DLL to turn on the special processing before + * it includes png.h. + * + * Four additional macros are used to make this happen: + * + * PNG_IMPEXP The magic (if any) to cause a symbol to be exported from + * the build or imported if PNG_USE_DLL is set - compiler + * and system specific. + * + * PNG_EXPORT_TYPE(type) A macro that pre or appends PNG_IMPEXP to + * 'type', compiler specific. + * + * PNG_DLL_EXPORT Set to the magic to use during a libpng build to + * make a symbol exported from the DLL. Not used in the + * public header files; see pngpriv.h for how it is used + * in the libpng build. + * + * PNG_DLL_IMPORT Set to the magic to force the libpng symbols to come + * from a DLL - used to define PNG_IMPEXP when + * PNG_USE_DLL is set. + */ + +/* System specific discovery. + * ========================== + * This code is used at build time to find PNG_IMPEXP, the API settings + * and PNG_EXPORT_TYPE(), it may also set a macro to indicate the DLL + * import processing is possible. On Windows systems it also sets + * compiler-specific macros to the values required to change the calling + * conventions of the various functions. + */ +#if defined(_Windows) || defined(_WINDOWS) || defined(WIN32) ||\ + defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) + /* Windows system (DOS doesn't support DLLs). Includes builds under Cygwin or + * MinGW on any architecture currently supported by Windows. Also includes + * Watcom builds but these need special treatment because they are not + * compatible with GCC or Visual C because of different calling conventions. + */ +# if PNG_API_RULE == 2 + /* If this line results in an error, either because __watcall is not + * understood or because of a redefine just below you cannot use *this* + * build of the library with the compiler you are using. *This* build was + * build using Watcom and applications must also be built using Watcom! + */ +# define PNGCAPI __watcall +# endif + +# if defined(__GNUC__) || (defined(_MSC_VER) && (_MSC_VER >= 800)) +# define PNGCAPI __cdecl +# if PNG_API_RULE == 1 + /* If this line results in an error __stdcall is not understood and + * PNG_API_RULE should not have been set to '1'. + */ +# define PNGAPI __stdcall +# endif +# else + /* An older compiler, or one not detected (erroneously) above, + * if necessary override on the command line to get the correct + * variants for the compiler. + */ +# ifndef PNGCAPI +# define PNGCAPI _cdecl +# endif +# if PNG_API_RULE == 1 && !defined(PNGAPI) +# define PNGAPI _stdcall +# endif +# endif /* compiler/api */ + + /* NOTE: PNGCBAPI always defaults to PNGCAPI. */ + +# if defined(PNGAPI) && !defined(PNG_USER_PRIVATEBUILD) +# error "PNG_USER_PRIVATEBUILD must be defined if PNGAPI is changed" +# endif + +# if (defined(_MSC_VER) && _MSC_VER < 800) ||\ + (defined(__BORLANDC__) && __BORLANDC__ < 0x500) + /* older Borland and MSC + * compilers used '__export' and required this to be after + * the type. + */ +# ifndef PNG_EXPORT_TYPE +# define PNG_EXPORT_TYPE(type) type PNG_IMPEXP +# endif +# define PNG_DLL_EXPORT __export +# else /* newer compiler */ +# define PNG_DLL_EXPORT __declspec(dllexport) +# ifndef PNG_DLL_IMPORT +# define PNG_DLL_IMPORT __declspec(dllimport) +# endif +# endif /* compiler */ + +#else /* !Windows */ +# if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) +# define PNGAPI _System +# else /* !Windows/x86 && !OS/2 */ + /* Use the defaults, or define PNG*API on the command line (but + * this will have to be done for every compile!) + */ +# endif /* other system, !OS/2 */ +#endif /* !Windows/x86 */ + +/* Now do all the defaulting . */ +#ifndef PNGCAPI +# define PNGCAPI +#endif +#ifndef PNGCBAPI +# define PNGCBAPI PNGCAPI +#endif +#ifndef PNGAPI +# define PNGAPI PNGCAPI +#endif + +/* PNG_IMPEXP may be set on the compilation system command line or (if not set) + * then in an internal header file when building the library, otherwise (when + * using the library) it is set here. + */ +#ifndef PNG_IMPEXP +# if defined(PNG_USE_DLL) && defined(PNG_DLL_IMPORT) + /* This forces use of a DLL, disallowing static linking */ +# define PNG_IMPEXP PNG_DLL_IMPORT +# endif + +# ifndef PNG_IMPEXP +# define PNG_IMPEXP +# endif +#endif + +/* In 1.5.2 the definition of PNG_FUNCTION has been changed to always treat + * 'attributes' as a storage class - the attributes go at the start of the + * function definition, and attributes are always appended regardless of the + * compiler. This considerably simplifies these macros but may cause problems + * if any compilers both need function attributes and fail to handle them as + * a storage class (this is unlikely.) + */ +#ifndef PNG_FUNCTION +# define PNG_FUNCTION(type, name, args, attributes) attributes type name args +#endif + +#ifndef PNG_EXPORT_TYPE +# define PNG_EXPORT_TYPE(type) PNG_IMPEXP type +#endif + + /* The ordinal value is only relevant when preprocessing png.h for symbol + * table entries, so we discard it here. See the .dfn files in the + * scripts directory. + */ +#ifndef PNG_EXPORTA + +# define PNG_EXPORTA(ordinal, type, name, args, attributes)\ + PNG_FUNCTION(PNG_EXPORT_TYPE(type),(PNGAPI name),PNGARG(args), \ + extern attributes) +#endif + +/* ANSI-C (C90) does not permit a macro to be invoked with an empty argument, + * so make something non-empty to satisfy the requirement: + */ +#define PNG_EMPTY /*empty list*/ + +#define PNG_EXPORT(ordinal, type, name, args)\ + PNG_EXPORTA(ordinal, type, name, args, PNG_EMPTY) + +/* Use PNG_REMOVED to comment out a removed interface. */ +#ifndef PNG_REMOVED +# define PNG_REMOVED(ordinal, type, name, args, attributes) +#endif + +#ifndef PNG_CALLBACK +# define PNG_CALLBACK(type, name, args) type (PNGCBAPI name) PNGARG(args) +#endif + +/* Support for compiler specific function attributes. These are used + * so that where compiler support is available incorrect use of API + * functions in png.h will generate compiler warnings. + * + * Added at libpng-1.2.41. + */ + +#ifndef PNG_NO_PEDANTIC_WARNINGS +# ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED +# define PNG_PEDANTIC_WARNINGS_SUPPORTED +# endif +#endif + +#ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED + /* Support for compiler specific function attributes. These are used + * so that where compiler support is available, incorrect use of API + * functions in png.h will generate compiler warnings. Added at libpng + * version 1.2.41. Disabling these removes the warnings but may also produce + * less efficient code. + */ +# if defined(__clang__) && defined(__has_attribute) + /* Clang defines both __clang__ and __GNUC__. Check __clang__ first. */ +# if !defined(PNG_USE_RESULT) && __has_attribute(__warn_unused_result__) +# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) +# endif +# if !defined(PNG_NORETURN) && __has_attribute(__noreturn__) +# define PNG_NORETURN __attribute__((__noreturn__)) +# endif +# if !defined(PNG_ALLOCATED) && __has_attribute(__malloc__) +# define PNG_ALLOCATED __attribute__((__malloc__)) +# endif +# if !defined(PNG_DEPRECATED) && __has_attribute(__deprecated__) +# define PNG_DEPRECATED __attribute__((__deprecated__)) +# endif +# if !defined(PNG_PRIVATE) +# ifdef __has_extension +# if __has_extension(attribute_unavailable_with_message) +# define PNG_PRIVATE __attribute__((__unavailable__(\ + "This function is not exported by libpng."))) +# endif +# endif +# endif +# ifndef PNG_RESTRICT +# define PNG_RESTRICT __restrict +# endif + +# elif defined(__GNUC__) +# ifndef PNG_USE_RESULT +# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) +# endif +# ifndef PNG_NORETURN +# define PNG_NORETURN __attribute__((__noreturn__)) +# endif +# if __GNUC__ >= 3 +# ifndef PNG_ALLOCATED +# define PNG_ALLOCATED __attribute__((__malloc__)) +# endif +# ifndef PNG_DEPRECATED +# define PNG_DEPRECATED __attribute__((__deprecated__)) +# endif +# ifndef PNG_PRIVATE +# if 0 /* Doesn't work so we use deprecated instead*/ +# define PNG_PRIVATE \ + __attribute__((warning("This function is not exported by libpng."))) +# else +# define PNG_PRIVATE \ + __attribute__((__deprecated__)) +# endif +# endif +# if ((__GNUC__ > 3) || !defined(__GNUC_MINOR__) || (__GNUC_MINOR__ >= 1)) +# ifndef PNG_RESTRICT +# define PNG_RESTRICT __restrict +# endif +# endif /* __GNUC__.__GNUC_MINOR__ > 3.0 */ +# endif /* __GNUC__ >= 3 */ + +# elif defined(_MSC_VER) && (_MSC_VER >= 1300) +# ifndef PNG_USE_RESULT +# define PNG_USE_RESULT /* not supported */ +# endif +# ifndef PNG_NORETURN +# define PNG_NORETURN __declspec(noreturn) +# endif +# ifndef PNG_ALLOCATED +# if (_MSC_VER >= 1400) +# define PNG_ALLOCATED __declspec(restrict) +# endif +# endif +# ifndef PNG_DEPRECATED +# define PNG_DEPRECATED __declspec(deprecated) +# endif +# ifndef PNG_PRIVATE +# define PNG_PRIVATE __declspec(deprecated) +# endif +# ifndef PNG_RESTRICT +# if (_MSC_VER >= 1400) +# define PNG_RESTRICT __restrict +# endif +# endif + +# elif defined(__WATCOMC__) +# ifndef PNG_RESTRICT +# define PNG_RESTRICT __restrict +# endif +# endif +#endif /* PNG_PEDANTIC_WARNINGS */ + +#ifndef PNG_DEPRECATED +# define PNG_DEPRECATED /* Use of this function is deprecated */ +#endif +#ifndef PNG_USE_RESULT +# define PNG_USE_RESULT /* The result of this function must be checked */ +#endif +#ifndef PNG_NORETURN +# define PNG_NORETURN /* This function does not return */ +#endif +#ifndef PNG_ALLOCATED +# define PNG_ALLOCATED /* The result of the function is new memory */ +#endif +#ifndef PNG_PRIVATE +# define PNG_PRIVATE /* This is a private libpng function */ +#endif +#ifndef PNG_RESTRICT +# define PNG_RESTRICT /* The C99 "restrict" feature */ +#endif + +#ifndef PNG_FP_EXPORT /* A floating point API. */ +# ifdef PNG_FLOATING_POINT_SUPPORTED +# define PNG_FP_EXPORT(ordinal, type, name, args)\ + PNG_EXPORT(ordinal, type, name, args); +# else /* No floating point APIs */ +# define PNG_FP_EXPORT(ordinal, type, name, args) +# endif +#endif +#ifndef PNG_FIXED_EXPORT /* A fixed point API. */ +# ifdef PNG_FIXED_POINT_SUPPORTED +# define PNG_FIXED_EXPORT(ordinal, type, name, args)\ + PNG_EXPORT(ordinal, type, name, args); +# else /* No fixed point APIs */ +# define PNG_FIXED_EXPORT(ordinal, type, name, args) +# endif +#endif + +#ifndef PNG_BUILDING_SYMBOL_TABLE +/* Some typedefs to get us started. These should be safe on most of the common + * platforms. + * + * png_uint_32 and png_int_32 may, currently, be larger than required to hold a + * 32-bit value however this is not normally advisable. + * + * png_uint_16 and png_int_16 should always be two bytes in size - this is + * verified at library build time. + * + * png_byte must always be one byte in size. + * + * The checks below use constants from limits.h, as defined by the ISOC90 + * standard. + */ +#if CHAR_BIT == 8 && UCHAR_MAX == 255 + typedef unsigned char png_byte; +#else +# error "libpng requires 8 bit bytes" +#endif + +#if INT_MIN == -32768 && INT_MAX == 32767 + typedef int png_int_16; +#elif SHRT_MIN == -32768 && SHRT_MAX == 32767 + typedef short png_int_16; +#else +# error "libpng requires a signed 16 bit type" +#endif + +#if UINT_MAX == 65535 + typedef unsigned int png_uint_16; +#elif USHRT_MAX == 65535 + typedef unsigned short png_uint_16; +#else +# error "libpng requires an unsigned 16 bit type" +#endif + +#if INT_MIN < -2147483646 && INT_MAX > 2147483646 + typedef int png_int_32; +#elif LONG_MIN < -2147483646 && LONG_MAX > 2147483646 + typedef long int png_int_32; +#else +# error "libpng requires a signed 32 bit (or more) type" +#endif + +#if UINT_MAX > 4294967294 + typedef unsigned int png_uint_32; +#elif ULONG_MAX > 4294967294 + typedef unsigned long int png_uint_32; +#else +# error "libpng requires an unsigned 32 bit (or more) type" +#endif + +/* Prior to 1.6.0 it was possible to disable the use of size_t, 1.6.0, however, + * requires an ISOC90 compiler and relies on consistent behavior of sizeof. + */ +typedef size_t png_size_t; +typedef ptrdiff_t png_ptrdiff_t; + +/* libpng needs to know the maximum value of 'size_t' and this controls the + * definition of png_alloc_size_t, below. This maximum value of size_t limits + * but does not control the maximum allocations the library makes - there is + * direct application control of this through png_set_user_limits(). + */ +#ifndef PNG_SMALL_SIZE_T + /* Compiler specific tests for systems where size_t is known to be less than + * 32 bits (some of these systems may no longer work because of the lack of + * 'far' support; see above.) + */ +# if (defined(__TURBOC__) && !defined(__FLAT__)) ||\ + (defined(_MSC_VER) && defined(MAXSEG_64K)) +# define PNG_SMALL_SIZE_T +# endif +#endif + +/* png_alloc_size_t is guaranteed to be no smaller than png_size_t, and no + * smaller than png_uint_32. Casts from png_size_t or png_uint_32 to + * png_alloc_size_t are not necessary; in fact, it is recommended not to use + * them at all so that the compiler can complain when something turns out to be + * problematic. + * + * Casts in the other direction (from png_alloc_size_t to png_size_t or + * png_uint_32) should be explicitly applied; however, we do not expect to + * encounter practical situations that require such conversions. + * + * PNG_SMALL_SIZE_T must be defined if the maximum value of size_t is less than + * 4294967295 - i.e. less than the maximum value of png_uint_32. + */ +#ifdef PNG_SMALL_SIZE_T + typedef png_uint_32 png_alloc_size_t; +#else + typedef png_size_t png_alloc_size_t; +#endif + +/* Prior to 1.6.0 libpng offered limited support for Microsoft C compiler + * implementations of Intel CPU specific support of user-mode segmented address + * spaces, where 16-bit pointers address more than 65536 bytes of memory using + * separate 'segment' registers. The implementation requires two different + * types of pointer (only one of which includes the segment value.) + * + * If required this support is available in version 1.2 of libpng and may be + * available in versions through 1.5, although the correctness of the code has + * not been verified recently. + */ + +/* Typedef for floating-point numbers that are converted to fixed-point with a + * multiple of 100,000, e.g., gamma + */ +typedef png_int_32 png_fixed_point; + +/* Add typedefs for pointers */ +typedef void * png_voidp; +typedef const void * png_const_voidp; +typedef png_byte * png_bytep; +typedef const png_byte * png_const_bytep; +typedef png_uint_32 * png_uint_32p; +typedef const png_uint_32 * png_const_uint_32p; +typedef png_int_32 * png_int_32p; +typedef const png_int_32 * png_const_int_32p; +typedef png_uint_16 * png_uint_16p; +typedef const png_uint_16 * png_const_uint_16p; +typedef png_int_16 * png_int_16p; +typedef const png_int_16 * png_const_int_16p; +typedef char * png_charp; +typedef const char * png_const_charp; +typedef png_fixed_point * png_fixed_point_p; +typedef const png_fixed_point * png_const_fixed_point_p; +typedef png_size_t * png_size_tp; +typedef const png_size_t * png_const_size_tp; + +#ifdef PNG_STDIO_SUPPORTED +typedef FILE * png_FILE_p; +#endif + +#ifdef PNG_FLOATING_POINT_SUPPORTED +typedef double * png_doublep; +typedef const double * png_const_doublep; +#endif + +/* Pointers to pointers; i.e. arrays */ +typedef png_byte * * png_bytepp; +typedef png_uint_32 * * png_uint_32pp; +typedef png_int_32 * * png_int_32pp; +typedef png_uint_16 * * png_uint_16pp; +typedef png_int_16 * * png_int_16pp; +typedef const char * * png_const_charpp; +typedef char * * png_charpp; +typedef png_fixed_point * * png_fixed_point_pp; +#ifdef PNG_FLOATING_POINT_SUPPORTED +typedef double * * png_doublepp; +#endif + +/* Pointers to pointers to pointers; i.e., pointer to array */ +typedef char * * * png_charppp; + +#endif /* PNG_BUILDING_SYMBOL_TABLE */ + +#endif /* PNGCONF_H */ diff --git a/engine/libs/mingw64-libs/pnglibconf.h b/engine/libs/mingw64-libs/pnglibconf.h index e36ee3486..08e16dc0f 100755 --- a/engine/libs/mingw64-libs/pnglibconf.h +++ b/engine/libs/mingw64-libs/pnglibconf.h @@ -1,181 +1,208 @@ - -/* libpng STANDARD API DEFINITION */ - -/* pnglibconf.h - library build configuration */ - -/* libpng version 1.5.0 - last changed on February 11, 2011 */ - -/* Copyright (c) 1998-2011 Glenn Randers-Pehrson */ - -/* This code is released under the libpng license. */ -/* For conditions of distribution and use, see the disclaimer */ -/* and license in png.h */ - -/* pnglibconf.h */ -/* Derived from: scripts/pnglibconf.dfa */ -/* If you edit this file by hand you must obey the rules expressed in */ -/* pnglibconf.dfa with respect to the dependencies between the following */ -/* symbols. It is much better to generate a new file using */ -/* scripts/libpngconf.mak */ - -#ifndef PNGLCONF_H -#define PNGLCONF_H -/* settings */ -#define PNG_API_RULE 0 -#define PNG_CALLOC_SUPPORTED -#define PNG_COST_SHIFT 3 -#define PNG_DEFAULT_READ_MACROS 1 -#define PNG_GAMMA_THRESHOLD_FIXED 5000 -#define PNG_MAX_GAMMA_8 11 -#define PNG_QUANTIZE_BLUE_BITS 5 -#define PNG_QUANTIZE_GREEN_BITS 5 -#define PNG_QUANTIZE_RED_BITS 5 -#define PNG_sCAL_PRECISION 5 -#define PNG_USER_CHUNK_CACHE_MAX 0 -#define PNG_USER_CHUNK_MALLOC_MAX 0 -#define PNG_USER_HEIGHT_MAX 1000000L -#define PNG_USER_WIDTH_MAX 1000000L -#define PNG_WEIGHT_SHIFT 8 -#define PNG_ZBUF_SIZE 8192 -/* end of settings */ -/* options */ -#define PNG_16BIT_SUPPORTED -#define PNG_ALIGN_MEMORY_SUPPORTED -#define PNG_BENIGN_ERRORS_SUPPORTED -#define PNG_bKGD_SUPPORTED -#define PNG_CHECK_cHRM_SUPPORTED -#define PNG_cHRM_SUPPORTED -#define PNG_CONSOLE_IO_SUPPORTED -#define PNG_CONVERT_tIME_SUPPORTED -#define PNG_EASY_ACCESS_SUPPORTED -#define PNG_ERROR_TEXT_SUPPORTED -#define PNG_FIXED_POINT_SUPPORTED -#define PNG_FLOATING_ARITHMETIC_SUPPORTED -#define PNG_FLOATING_POINT_SUPPORTED -#define PNG_gAMA_SUPPORTED -#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED -#define PNG_hIST_SUPPORTED -#define PNG_iCCP_SUPPORTED -#define PNG_INCH_CONVERSIONS_SUPPORTED -#define PNG_INFO_IMAGE_SUPPORTED -#define PNG_IO_STATE_SUPPORTED -#define PNG_iTXt_SUPPORTED -#define PNG_MNG_FEATURES_SUPPORTED -#define PNG_oFFs_SUPPORTED -#define PNG_pCAL_SUPPORTED -#define PNG_pHYs_SUPPORTED -#define PNG_POINTER_INDEXING_SUPPORTED -#define PNG_PROGRESSIVE_READ_SUPPORTED -#define PNG_READ_16BIT_SUPPORTED -#define PNG_READ_16_TO_8_SUPPORTED -#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED -#define PNG_READ_BACKGROUND_SUPPORTED -#define PNG_READ_BGR_SUPPORTED -#define PNG_READ_bKGD_SUPPORTED -#define PNG_READ_cHRM_SUPPORTED -#define PNG_READ_COMPOSITE_NODIV_SUPPORTED -#define PNG_READ_EXPAND_16_SUPPORTED -#define PNG_READ_EXPAND_SUPPORTED -#define PNG_READ_FILLER_SUPPORTED -#define PNG_READ_gAMA_SUPPORTED -#define PNG_READ_GAMMA_SUPPORTED -#define PNG_READ_GRAY_TO_RGB_SUPPORTED -#define PNG_READ_hIST_SUPPORTED -#define PNG_READ_iCCP_SUPPORTED -#define PNG_READ_INTERLACING_SUPPORTED -#define PNG_READ_INT_FUNCTIONS_SUPPORTED -#define PNG_READ_INVERT_ALPHA_SUPPORTED -#define PNG_READ_INVERT_SUPPORTED -#define PNG_READ_iTXt_SUPPORTED -#define PNG_READ_oFFs_SUPPORTED -#define PNG_READ_OPT_PLTE_SUPPORTED -#define PNG_READ_PACK_SUPPORTED -#define PNG_READ_PACKSWAP_SUPPORTED -#define PNG_READ_pCAL_SUPPORTED -#define PNG_READ_pHYs_SUPPORTED -#define PNG_READ_QUANTIZE_SUPPORTED -#define PNG_READ_RGB_TO_GRAY_SUPPORTED -#define PNG_READ_sBIT_SUPPORTED -#define PNG_READ_sCAL_SUPPORTED -#define PNG_READ_SHIFT_SUPPORTED -#define PNG_READ_sPLT_SUPPORTED -#define PNG_READ_sRGB_SUPPORTED -#define PNG_READ_STRIP_ALPHA_SUPPORTED -#define PNG_READ_SUPPORTED -#define PNG_READ_SWAP_ALPHA_SUPPORTED -#define PNG_READ_SWAP_SUPPORTED -#define PNG_READ_tEXt_SUPPORTED -#define PNG_READ_TEXT_SUPPORTED -#define PNG_READ_tIME_SUPPORTED -#define PNG_READ_TRANSFORMS_SUPPORTED -#define PNG_READ_tRNS_SUPPORTED -#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_READ_USER_CHUNKS_SUPPORTED -#define PNG_READ_USER_TRANSFORM_SUPPORTED -#define PNG_READ_zTXt_SUPPORTED -#define PNG_SAVE_INT_32_SUPPORTED -#define PNG_sBIT_SUPPORTED -#define PNG_sCAL_SUPPORTED -#define PNG_SEQUENTIAL_READ_SUPPORTED -#define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED -#define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED -#define PNG_SETJMP_SUPPORTED -#define PNG_SET_USER_LIMITS_SUPPORTED -#define PNG_sPLT_SUPPORTED -#define PNG_sRGB_SUPPORTED -#define PNG_STDIO_SUPPORTED -#define PNG_tEXt_SUPPORTED -#define PNG_TEXT_SUPPORTED -#define PNG_TIME_RFC1123_SUPPORTED -#define PNG_tIME_SUPPORTED -#define PNG_tRNS_SUPPORTED -#define PNG_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_USER_CHUNKS_SUPPORTED -#define PNG_USER_LIMITS_SUPPORTED -#define PNG_USER_MEM_SUPPORTED -#define PNG_USER_TRANSFORM_INFO_SUPPORTED -#define PNG_USER_TRANSFORM_PTR_SUPPORTED -#define PNG_WARNINGS_SUPPORTED -#define PNG_WRITE_16BIT_SUPPORTED -#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED -#define PNG_WRITE_BGR_SUPPORTED -#define PNG_WRITE_bKGD_SUPPORTED -#define PNG_WRITE_cHRM_SUPPORTED -#define PNG_WRITE_FILLER_SUPPORTED -#define PNG_WRITE_FILTER_SUPPORTED -#define PNG_WRITE_FLUSH_SUPPORTED -#define PNG_WRITE_gAMA_SUPPORTED -#define PNG_WRITE_hIST_SUPPORTED -#define PNG_WRITE_iCCP_SUPPORTED -#define PNG_WRITE_INTERLACING_SUPPORTED -#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED -#define PNG_WRITE_INVERT_ALPHA_SUPPORTED -#define PNG_WRITE_INVERT_SUPPORTED -#define PNG_WRITE_iTXt_SUPPORTED -#define PNG_WRITE_oFFs_SUPPORTED -#define PNG_WRITE_PACK_SUPPORTED -#define PNG_WRITE_PACKSWAP_SUPPORTED -#define PNG_WRITE_pCAL_SUPPORTED -#define PNG_WRITE_pHYs_SUPPORTED -#define PNG_WRITE_sBIT_SUPPORTED -#define PNG_WRITE_sCAL_SUPPORTED -#define PNG_WRITE_SHIFT_SUPPORTED -#define PNG_WRITE_sPLT_SUPPORTED -#define PNG_WRITE_sRGB_SUPPORTED -#define PNG_WRITE_SUPPORTED -#define PNG_WRITE_SWAP_ALPHA_SUPPORTED -#define PNG_WRITE_SWAP_SUPPORTED -#define PNG_WRITE_tEXt_SUPPORTED -#define PNG_WRITE_TEXT_SUPPORTED -#define PNG_WRITE_tIME_SUPPORTED -#define PNG_WRITE_TRANSFORMS_SUPPORTED -#define PNG_WRITE_tRNS_SUPPORTED -#define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_WRITE_USER_TRANSFORM_SUPPORTED -#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED -#define PNG_WRITE_zTXt_SUPPORTED -#define PNG_zTXt_SUPPORTED -/*#undef PNG_ERROR_NUMBERS_SUPPORTED*/ -/*#undef PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED*/ -/* end of options */ -#endif /* PNGLCONF_H */ +/* pnglibconf.h - library build configuration */ + +/* libpng version 1.6.13 - August 21, 2014 */ + +/* Copyright (c) 1998-2012 Glenn Randers-Pehrson */ + +/* This code is released under the libpng license. */ +/* For conditions of distribution and use, see the disclaimer */ +/* and license in png.h */ + +/* pnglibconf.h */ +/* Machine generated file: DO NOT EDIT */ +/* Derived from: scripts/pnglibconf.dfa */ +#ifndef PNGLCONF_H +#define PNGLCONF_H +/* options */ +#define PNG_16BIT_SUPPORTED +#define PNG_ALIGNED_MEMORY_SUPPORTED +/*#undef PNG_ARM_NEON_API_SUPPORTED*/ +/*#undef PNG_ARM_NEON_CHECK_SUPPORTED*/ +#define PNG_BENIGN_ERRORS_SUPPORTED +#define PNG_BENIGN_READ_ERRORS_SUPPORTED +/*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/ +#define PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED +#define PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_COLORSPACE_SUPPORTED +#define PNG_CONSOLE_IO_SUPPORTED +#define PNG_CONVERT_tIME_SUPPORTED +#define PNG_EASY_ACCESS_SUPPORTED +/*#undef PNG_ERROR_NUMBERS_SUPPORTED*/ +#define PNG_ERROR_TEXT_SUPPORTED +#define PNG_FIXED_POINT_SUPPORTED +#define PNG_FLOATING_ARITHMETIC_SUPPORTED +#define PNG_FLOATING_POINT_SUPPORTED +#define PNG_FORMAT_AFIRST_SUPPORTED +#define PNG_FORMAT_BGR_SUPPORTED +#define PNG_GAMMA_SUPPORTED +#define PNG_GET_PALETTE_MAX_SUPPORTED +#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED +#define PNG_INCH_CONVERSIONS_SUPPORTED +#define PNG_INFO_IMAGE_SUPPORTED +#define PNG_IO_STATE_SUPPORTED +#define PNG_MNG_FEATURES_SUPPORTED +#define PNG_POINTER_INDEXING_SUPPORTED +#define PNG_PROGRESSIVE_READ_SUPPORTED +#define PNG_READ_16BIT_SUPPORTED +#define PNG_READ_ALPHA_MODE_SUPPORTED +#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED +#define PNG_READ_BACKGROUND_SUPPORTED +#define PNG_READ_BGR_SUPPORTED +#define PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_READ_COMPOSITE_NODIV_SUPPORTED +#define PNG_READ_COMPRESSED_TEXT_SUPPORTED +#define PNG_READ_EXPAND_16_SUPPORTED +#define PNG_READ_EXPAND_SUPPORTED +#define PNG_READ_FILLER_SUPPORTED +#define PNG_READ_GAMMA_SUPPORTED +#define PNG_READ_GET_PALETTE_MAX_SUPPORTED +#define PNG_READ_GRAY_TO_RGB_SUPPORTED +#define PNG_READ_INTERLACING_SUPPORTED +#define PNG_READ_INT_FUNCTIONS_SUPPORTED +#define PNG_READ_INVERT_ALPHA_SUPPORTED +#define PNG_READ_INVERT_SUPPORTED +#define PNG_READ_OPT_PLTE_SUPPORTED +#define PNG_READ_PACKSWAP_SUPPORTED +#define PNG_READ_PACK_SUPPORTED +#define PNG_READ_QUANTIZE_SUPPORTED +#define PNG_READ_RGB_TO_GRAY_SUPPORTED +#define PNG_READ_SCALE_16_TO_8_SUPPORTED +#define PNG_READ_SHIFT_SUPPORTED +#define PNG_READ_STRIP_16_TO_8_SUPPORTED +#define PNG_READ_STRIP_ALPHA_SUPPORTED +#define PNG_READ_SUPPORTED +#define PNG_READ_SWAP_ALPHA_SUPPORTED +#define PNG_READ_SWAP_SUPPORTED +#define PNG_READ_TEXT_SUPPORTED +#define PNG_READ_TRANSFORMS_SUPPORTED +#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_READ_USER_CHUNKS_SUPPORTED +#define PNG_READ_USER_TRANSFORM_SUPPORTED +#define PNG_READ_bKGD_SUPPORTED +#define PNG_READ_cHRM_SUPPORTED +#define PNG_READ_gAMA_SUPPORTED +#define PNG_READ_hIST_SUPPORTED +#define PNG_READ_iCCP_SUPPORTED +#define PNG_READ_iTXt_SUPPORTED +#define PNG_READ_oFFs_SUPPORTED +#define PNG_READ_pCAL_SUPPORTED +#define PNG_READ_pHYs_SUPPORTED +#define PNG_READ_sBIT_SUPPORTED +#define PNG_READ_sCAL_SUPPORTED +#define PNG_READ_sPLT_SUPPORTED +#define PNG_READ_sRGB_SUPPORTED +#define PNG_READ_tEXt_SUPPORTED +#define PNG_READ_tIME_SUPPORTED +#define PNG_READ_tRNS_SUPPORTED +#define PNG_READ_zTXt_SUPPORTED +/*#undef PNG_SAFE_LIMITS_SUPPORTED*/ +#define PNG_SAVE_INT_32_SUPPORTED +#define PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_SEQUENTIAL_READ_SUPPORTED +#define PNG_SETJMP_SUPPORTED +#define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED +#define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED +#define PNG_SET_OPTION_SUPPORTED +#define PNG_SET_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_SET_USER_LIMITS_SUPPORTED +#define PNG_SIMPLIFIED_READ_AFIRST_SUPPORTED +#define PNG_SIMPLIFIED_READ_BGR_SUPPORTED +#define PNG_SIMPLIFIED_READ_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_SUPPORTED +#define PNG_STDIO_SUPPORTED +#define PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_TEXT_SUPPORTED +#define PNG_TIME_RFC1123_SUPPORTED +#define PNG_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_USER_CHUNKS_SUPPORTED +#define PNG_USER_LIMITS_SUPPORTED +#define PNG_USER_MEM_SUPPORTED +#define PNG_USER_TRANSFORM_INFO_SUPPORTED +#define PNG_USER_TRANSFORM_PTR_SUPPORTED +#define PNG_WARNINGS_SUPPORTED +#define PNG_WRITE_16BIT_SUPPORTED +#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED +#define PNG_WRITE_BGR_SUPPORTED +#define PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_WRITE_COMPRESSED_TEXT_SUPPORTED +#define PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED +#define PNG_WRITE_FILLER_SUPPORTED +#define PNG_WRITE_FILTER_SUPPORTED +#define PNG_WRITE_FLUSH_SUPPORTED +#define PNG_WRITE_GET_PALETTE_MAX_SUPPORTED +#define PNG_WRITE_INTERLACING_SUPPORTED +#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED +#define PNG_WRITE_INVERT_ALPHA_SUPPORTED +#define PNG_WRITE_INVERT_SUPPORTED +#define PNG_WRITE_OPTIMIZE_CMF_SUPPORTED +#define PNG_WRITE_PACKSWAP_SUPPORTED +#define PNG_WRITE_PACK_SUPPORTED +#define PNG_WRITE_SHIFT_SUPPORTED +#define PNG_WRITE_SUPPORTED +#define PNG_WRITE_SWAP_ALPHA_SUPPORTED +#define PNG_WRITE_SWAP_SUPPORTED +#define PNG_WRITE_TEXT_SUPPORTED +#define PNG_WRITE_TRANSFORMS_SUPPORTED +#define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_WRITE_USER_TRANSFORM_SUPPORTED +#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED +#define PNG_WRITE_bKGD_SUPPORTED +#define PNG_WRITE_cHRM_SUPPORTED +#define PNG_WRITE_gAMA_SUPPORTED +#define PNG_WRITE_hIST_SUPPORTED +#define PNG_WRITE_iCCP_SUPPORTED +#define PNG_WRITE_iTXt_SUPPORTED +#define PNG_WRITE_oFFs_SUPPORTED +#define PNG_WRITE_pCAL_SUPPORTED +#define PNG_WRITE_pHYs_SUPPORTED +#define PNG_WRITE_sBIT_SUPPORTED +#define PNG_WRITE_sCAL_SUPPORTED +#define PNG_WRITE_sPLT_SUPPORTED +#define PNG_WRITE_sRGB_SUPPORTED +#define PNG_WRITE_tEXt_SUPPORTED +#define PNG_WRITE_tIME_SUPPORTED +#define PNG_WRITE_tRNS_SUPPORTED +#define PNG_WRITE_zTXt_SUPPORTED +#define PNG_bKGD_SUPPORTED +#define PNG_cHRM_SUPPORTED +#define PNG_gAMA_SUPPORTED +#define PNG_hIST_SUPPORTED +#define PNG_iCCP_SUPPORTED +#define PNG_iTXt_SUPPORTED +#define PNG_oFFs_SUPPORTED +#define PNG_pCAL_SUPPORTED +#define PNG_pHYs_SUPPORTED +#define PNG_sBIT_SUPPORTED +#define PNG_sCAL_SUPPORTED +#define PNG_sPLT_SUPPORTED +#define PNG_sRGB_SUPPORTED +#define PNG_tEXt_SUPPORTED +#define PNG_tIME_SUPPORTED +#define PNG_tRNS_SUPPORTED +#define PNG_zTXt_SUPPORTED +/* end of options */ +/* settings */ +#define PNG_API_RULE 0 +#define PNG_COST_SHIFT 3 +#define PNG_DEFAULT_READ_MACROS 1 +#define PNG_GAMMA_THRESHOLD_FIXED 5000 +#define PNG_IDAT_READ_SIZE PNG_ZBUF_SIZE +#define PNG_INFLATE_BUF_SIZE 1024 +#define PNG_MAX_GAMMA_8 11 +#define PNG_QUANTIZE_BLUE_BITS 5 +#define PNG_QUANTIZE_GREEN_BITS 5 +#define PNG_QUANTIZE_RED_BITS 5 +#define PNG_TEXT_Z_DEFAULT_COMPRESSION (-1) +#define PNG_TEXT_Z_DEFAULT_STRATEGY 0 +#define PNG_WEIGHT_SHIFT 8 +#define PNG_ZBUF_SIZE 8192 +#define PNG_ZLIB_VERNUM 0x1280 +#define PNG_Z_DEFAULT_COMPRESSION (-1) +#define PNG_Z_DEFAULT_NOFILTER_STRATEGY 0 +#define PNG_Z_DEFAULT_STRATEGY 1 +#define PNG_sCAL_PRECISION 5 +#define PNG_sRGB_PROFILE_CHECKS 2 +/* end of settings */ +#endif /* PNGLCONF_H */ diff --git a/engine/libs/mingw64-libs/pngpriv.h b/engine/libs/mingw64-libs/pngpriv.h index 7df18fa44..71a5ab456 100755 --- a/engine/libs/mingw64-libs/pngpriv.h +++ b/engine/libs/mingw64-libs/pngpriv.h @@ -1,1246 +1,1944 @@ - -/* pngpriv.h - private declarations for use inside libpng - * - * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1998-2011 Glenn Randers-Pehrson - * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) - * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) - * - * Last changed in libpng 1.5.2 [March 31, 2011] - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -/* The symbols declared in this file (including the functions declared - * as PNG_EXTERN) are PRIVATE. They are not part of the libpng public - * interface, and are not recommended for use by regular applications. - * Some of them may become public in the future; others may stay private, - * change in an incompatible way, or even disappear. - * Although the libpng users are not forbidden to include this header, - * they should be well aware of the issues that may arise from doing so. - */ - -#ifndef PNGPRIV_H -#define PNGPRIV_H - -/* This is required for the definition of abort(), used as a last ditch - * error handler when all else fails. - */ -#include - -#define PNGLIB_BUILD -#ifdef PNG_USER_CONFIG -# include "pngusr.h" - /* These should have been defined in pngusr.h */ -# ifndef PNG_USER_PRIVATEBUILD -# define PNG_USER_PRIVATEBUILD "Custom libpng build" -# endif -# ifndef PNG_USER_DLLFNAME_POSTFIX -# define PNG_USER_DLLFNAME_POSTFIX "Cb" -# endif -#endif -#include "png.h" -#include "pnginfo.h" -#include "pngstruct.h" - -/* This is used for 16 bit gamma tables - only the top level pointers are const, - * this could be changed: - */ -typedef PNG_CONST png_uint_16p FAR * png_const_uint_16pp; - -/* Added at libpng-1.2.9 */ -/* Moved to pngpriv.h at libpng-1.5.0 */ - -/* config.h is created by and PNG_CONFIGURE_LIBPNG is set by the "configure" - * script. We may need it here to get the correct configuration on things - * like limits. - */ -#ifdef PNG_CONFIGURE_LIBPNG -# ifdef HAVE_CONFIG_H -# include "config.h" -# endif -#endif - -/* Moved to pngpriv.h at libpng-1.5.0 */ -/* NOTE: some of these may have been used in external applications as - * these definitions were exposed in pngconf.h prior to 1.5. - */ - -/* If you are running on a machine where you cannot allocate more - * than 64K of memory at once, uncomment this. While libpng will not - * normally need that much memory in a chunk (unless you load up a very - * large file), zlib needs to know how big of a chunk it can use, and - * libpng thus makes sure to check any memory allocation to verify it - * will fit into memory. - * - * zlib provides 'MAXSEG_64K' which, if defined, indicates the - * same limit and pngconf.h (already included) sets the limit - * if certain operating systems are detected. - */ -#if defined(MAXSEG_64K) && !defined(PNG_MAX_MALLOC_64K) -# define PNG_MAX_MALLOC_64K -#endif - -#ifndef PNG_UNUSED -/* Unused formal parameter warnings are silenced using the following macro - * which is expected to have no bad effects on performance (optimizing - * compilers will probably remove it entirely). Note that if you replace - * it with something other than whitespace, you must include the terminating - * semicolon. - */ -# define PNG_UNUSED(param) (void)param; -#endif - -/* Just a little check that someone hasn't tried to define something - * contradictory. - */ -#if (PNG_ZBUF_SIZE > 65536L) && defined(PNG_MAX_MALLOC_64K) -# undef PNG_ZBUF_SIZE -# define PNG_ZBUF_SIZE 65536L -#endif - -/* If warnings or errors are turned off the code is disabled - * or redirected here. - */ -#ifndef PNG_WARNINGS_SUPPORTED -# define png_warning(s1,s2) ((void)0) -# define png_chunk_warning(s1,s2) ((void)0) -#endif -#ifndef PNG_ERROR_TEXT_SUPPORTED -# define png_error(s1,s2) png_err(s1) -# define png_chunk_error(s1,s2) png_err(s1) -# define png_fixed_error(s1,s2) png_err(s1) -#endif - -#ifndef PNG_EXTERN -/* The functions exported by PNG_EXTERN are internal functions, which - * aren't usually used outside the library (as far as I know), so it is - * debatable if they should be exported at all. In the future, when it - * is possible to have run-time registry of chunk-handling functions, - * some of these might be made available again. -# define PNG_EXTERN extern - */ -# define PNG_EXTERN -#endif - -/* Some fixed point APIs are still required even if not exported because - * they get used by the corresponding floating point APIs. This magic - * deals with this: - */ -#ifdef PNG_FIXED_POINT_SUPPORTED -# define PNGFAPI PNGAPI -#else -# define PNGFAPI /* PRIVATE */ -#endif - -/* Other defines specific to compilers can go here. Try to keep - * them inside an appropriate ifdef/endif pair for portability. - */ -#if defined(PNG_FLOATING_POINT_SUPPORTED) ||\ - defined(PNG_FLOATING_ARITHMETIC_SUPPORTED) - /* png.c requires the following ANSI-C constants if the conversion of - * floating point to ASCII is implemented therein: - * - * DBL_DIG Maximum number of decimal digits (can be set to any constant) - * DBL_MIN Smallest normalized fp number (can be set to an arbitrary value) - * DBL_MAX Maximum floating point number (can be set to an arbitrary value) - */ -# include - -# if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \ - defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC) - /* We need to check that hasn't already been included earlier - * as it seems it doesn't agree with , yet we should really use - * if possible. - */ -# if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__) -# include -# endif -# else -# include -# endif -# if defined(_AMIGA) && defined(__SASC) && defined(_M68881) - /* Amiga SAS/C: We must include builtin FPU functions when compiling using - * MATH=68881 - */ -# include -# endif -#endif - -/* This provides the non-ANSI (far) memory allocation routines. */ -#if defined(__TURBOC__) && defined(__MSDOS__) -# include -# include -#endif - -#if defined(WIN32) || defined(_Windows) || defined(_WINDOWS) || \ - defined(_WIN32) || defined(__WIN32__) -# include /* defines _WINDOWS_ macro */ -#endif - -/* Moved here around 1.5.0beta36 from pngconf.h */ -/* Users may want to use these so they are not private. Any library - * functions that are passed far data must be model-independent. - */ - -/* Memory model/platform independent fns */ -#ifndef PNG_ABORT -# ifdef _WINDOWS_ -# define PNG_ABORT() ExitProcess(0) -# else -# define PNG_ABORT() abort() -# endif -#endif - -#ifdef USE_FAR_KEYWORD -/* Use this to make far-to-near assignments */ -# define CHECK 1 -# define NOCHECK 0 -# define CVT_PTR(ptr) (png_far_to_near(png_ptr,ptr,CHECK)) -# define CVT_PTR_NOCHECK(ptr) (png_far_to_near(png_ptr,ptr,NOCHECK)) -# define png_strcpy _fstrcpy -# define png_strncpy _fstrncpy /* Added to v 1.2.6 */ -# define png_strlen _fstrlen -# define png_memcmp _fmemcmp /* SJT: added */ -# define png_memcpy _fmemcpy -# define png_memset _fmemset -# define png_sprintf sprintf -#else -# ifdef _WINDOWS_ /* Favor Windows over C runtime fns */ -# define CVT_PTR(ptr) (ptr) -# define CVT_PTR_NOCHECK(ptr) (ptr) -# define png_strcpy lstrcpyA -# define png_strncpy lstrcpynA -# define png_strlen lstrlenA -# define png_memcmp memcmp -# define png_memcpy CopyMemory -# define png_memset memset -# define png_sprintf wsprintfA -# else -# define CVT_PTR(ptr) (ptr) -# define CVT_PTR_NOCHECK(ptr) (ptr) -# define png_strcpy strcpy -# define png_strncpy strncpy /* Added to v 1.2.6 */ -# define png_strlen strlen -# define png_memcmp memcmp /* SJT: added */ -# define png_memcpy memcpy -# define png_memset memset -# define png_sprintf sprintf -# endif -#endif -/* End of memory model/platform independent support */ - -#ifndef PNG_NO_SNPRINTF -# ifdef _MSC_VER -# define png_snprintf _snprintf /* Added to v 1.2.19 */ -# define png_snprintf2 _snprintf -# define png_snprintf6 _snprintf -# else -# define png_snprintf snprintf /* Added to v 1.2.19 */ -# define png_snprintf2 snprintf -# define png_snprintf6 snprintf -# endif -#else - /* You don't have or don't want to use snprintf(). Caution: Using - * sprintf instead of snprintf exposes your application to accidental - * or malevolent buffer overflows. If you don't have snprintf() - * as a general rule you should provide one (you can get one from - * Portable OpenSSH). - */ -# define png_snprintf(s1,n,fmt,x1) png_sprintf(s1,fmt,x1) -# define png_snprintf2(s1,n,fmt,x1,x2) png_sprintf(s1,fmt,x1,x2) -# define png_snprintf6(s1,n,fmt,x1,x2,x3,x4,x5,x6) \ - png_sprintf(s1,fmt,x1,x2,x3,x4,x5,x6) -#endif -/* End of 1.5.0beta36 move from pngconf.h */ - -/* CONSTANTS and UTILITY MACROS - * These are used internally by libpng and not exposed in the API - */ - -/* Various modes of operation. Note that after an init, mode is set to - * zero automatically when the structure is created. - */ -#define PNG_HAVE_IHDR 0x01 -#define PNG_HAVE_PLTE 0x02 -#define PNG_HAVE_IDAT 0x04 -#define PNG_AFTER_IDAT 0x08 /* Have complete zlib datastream */ -#define PNG_HAVE_IEND 0x10 -#define PNG_HAVE_gAMA 0x20 -#define PNG_HAVE_cHRM 0x40 -#define PNG_HAVE_sRGB 0x80 -#define PNG_HAVE_CHUNK_HEADER 0x100 -#define PNG_WROTE_tIME 0x200 -#define PNG_WROTE_INFO_BEFORE_PLTE 0x400 -#define PNG_BACKGROUND_IS_GRAY 0x800 -#define PNG_HAVE_PNG_SIGNATURE 0x1000 -#define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */ - -/* Flags for the transformations the PNG library does on the image data */ -#define PNG_BGR 0x0001 -#define PNG_INTERLACE 0x0002 -#define PNG_PACK 0x0004 -#define PNG_SHIFT 0x0008 -#define PNG_SWAP_BYTES 0x0010 -#define PNG_INVERT_MONO 0x0020 -#define PNG_QUANTIZE 0x0040 -#define PNG_BACKGROUND 0x0080 -#define PNG_BACKGROUND_EXPAND 0x0100 -#define PNG_EXPAND_16 0x0200 /* Added to libpng 1.5.2 */ -#define PNG_16_TO_8 0x0400 -#define PNG_RGBA 0x0800 -#define PNG_EXPAND 0x1000 -#define PNG_GAMMA 0x2000 -#define PNG_GRAY_TO_RGB 0x4000 -#define PNG_FILLER 0x8000L -#define PNG_PACKSWAP 0x10000L -#define PNG_SWAP_ALPHA 0x20000L -#define PNG_STRIP_ALPHA 0x40000L -#define PNG_INVERT_ALPHA 0x80000L -#define PNG_USER_TRANSFORM 0x100000L -#define PNG_RGB_TO_GRAY_ERR 0x200000L -#define PNG_RGB_TO_GRAY_WARN 0x400000L -#define PNG_RGB_TO_GRAY 0x600000L /* two bits, RGB_TO_GRAY_ERR|WARN */ - /* 0x800000L Unused */ -#define PNG_ADD_ALPHA 0x1000000L /* Added to libpng-1.2.7 */ -#define PNG_EXPAND_tRNS 0x2000000L /* Added to libpng-1.2.9 */ - /* 0x4000000L unused */ - /* 0x8000000L unused */ - /* 0x10000000L unused */ - /* 0x20000000L unused */ - /* 0x40000000L unused */ - -/* Flags for png_create_struct */ -#define PNG_STRUCT_PNG 0x0001 -#define PNG_STRUCT_INFO 0x0002 - -/* Scaling factor for filter heuristic weighting calculations */ -#define PNG_WEIGHT_FACTOR (1<<(PNG_WEIGHT_SHIFT)) -#define PNG_COST_FACTOR (1<<(PNG_COST_SHIFT)) - -/* Flags for the png_ptr->flags rather than declaring a byte for each one */ -#define PNG_FLAG_ZLIB_CUSTOM_STRATEGY 0x0001 -#define PNG_FLAG_ZLIB_CUSTOM_LEVEL 0x0002 -#define PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL 0x0004 -#define PNG_FLAG_ZLIB_CUSTOM_WINDOW_BITS 0x0008 -#define PNG_FLAG_ZLIB_CUSTOM_METHOD 0x0010 -#define PNG_FLAG_ZLIB_FINISHED 0x0020 -#define PNG_FLAG_ROW_INIT 0x0040 -#define PNG_FLAG_FILLER_AFTER 0x0080 -#define PNG_FLAG_CRC_ANCILLARY_USE 0x0100 -#define PNG_FLAG_CRC_ANCILLARY_NOWARN 0x0200 -#define PNG_FLAG_CRC_CRITICAL_USE 0x0400 -#define PNG_FLAG_CRC_CRITICAL_IGNORE 0x0800 - /* 0x1000 unused */ - /* 0x2000 unused */ - /* 0x4000 unused */ -#define PNG_FLAG_KEEP_UNKNOWN_CHUNKS 0x8000L -#define PNG_FLAG_KEEP_UNSAFE_CHUNKS 0x10000L -#define PNG_FLAG_LIBRARY_MISMATCH 0x20000L -#define PNG_FLAG_STRIP_ERROR_NUMBERS 0x40000L -#define PNG_FLAG_STRIP_ERROR_TEXT 0x80000L -#define PNG_FLAG_MALLOC_NULL_MEM_OK 0x100000L - /* 0x200000L unused */ - /* 0x400000L unused */ -#define PNG_FLAG_BENIGN_ERRORS_WARN 0x800000L /* Added to libpng-1.4.0 */ - /* 0x1000000L unused */ - /* 0x2000000L unused */ - /* 0x4000000L unused */ - /* 0x8000000L unused */ - /* 0x10000000L unused */ - /* 0x20000000L unused */ - /* 0x40000000L unused */ - -#define PNG_FLAG_CRC_ANCILLARY_MASK (PNG_FLAG_CRC_ANCILLARY_USE | \ - PNG_FLAG_CRC_ANCILLARY_NOWARN) - -#define PNG_FLAG_CRC_CRITICAL_MASK (PNG_FLAG_CRC_CRITICAL_USE | \ - PNG_FLAG_CRC_CRITICAL_IGNORE) - -#define PNG_FLAG_CRC_MASK (PNG_FLAG_CRC_ANCILLARY_MASK | \ - PNG_FLAG_CRC_CRITICAL_MASK) - -/* zlib.h declares a magic type 'uInt' that limits the amount of data that zlib - * can handle at once. This type need be no larger than 16 bits (so maximum of - * 65535), this define allows us to discover how big it is, but limited by the - * maximuum for png_size_t. The value can be overriden in a library build - * (pngusr.h, or set it in CPPFLAGS) and it works to set it to a considerably - * lower value (e.g. 255 works). A lower value may help memory usage (slightly) - * and may even improve performance on some systems (and degrade it on others.) - */ -#ifndef ZLIB_IO_MAX -# define ZLIB_IO_MAX ((uInt)-1) -#endif - -/* Save typing and make code easier to understand */ - -#define PNG_COLOR_DIST(c1, c2) (abs((int)((c1).red) - (int)((c2).red)) + \ - abs((int)((c1).green) - (int)((c2).green)) + \ - abs((int)((c1).blue) - (int)((c2).blue))) - -/* Added to libpng-1.2.6 JB */ -#define PNG_ROWBYTES(pixel_bits, width) \ - ((pixel_bits) >= 8 ? \ - ((png_size_t)(width) * (((png_size_t)(pixel_bits)) >> 3)) : \ - (( ((png_size_t)(width) * ((png_size_t)(pixel_bits))) + 7) >> 3) ) - -/* PNG_OUT_OF_RANGE returns true if value is outside the range - * ideal-delta..ideal+delta. Each argument is evaluated twice. - * "ideal" and "delta" should be constants, normally simple - * integers, "value" a variable. Added to libpng-1.2.6 JB - */ -#define PNG_OUT_OF_RANGE(value, ideal, delta) \ - ( (value) < (ideal)-(delta) || (value) > (ideal)+(delta) ) - -/* Conversions between fixed and floating point, only defined if - * required (to make sure the code doesn't accidentally use float - * when it is supposedly disabled.) - */ -#ifdef PNG_FLOATING_POINT_SUPPORTED -/* The floating point conversion can't overflow, though it can and - * does lose accuracy relative to the original fixed point value. - * In practice this doesn't matter because png_fixed_point only - * stores numbers with very low precision. The png_ptr and s - * arguments are unused by default but are there in case error - * checking becomes a requirement. - */ -#define png_float(png_ptr, fixed, s) (.00001 * (fixed)) - -/* The fixed point conversion performs range checking and evaluates - * its argument multiple times, so must be used with care. The - * range checking uses the PNG specification values for a signed - * 32 bit fixed point value except that the values are deliberately - * rounded-to-zero to an integral value - 21474 (21474.83 is roughly - * (2^31-1) * 100000). 's' is a string that describes the value being - * converted. - * - * NOTE: this macro will raise a png_error if the range check fails, - * therefore it is normally only appropriate to use this on values - * that come from API calls or other sources where an out of range - * error indicates a programming error, not a data error! - * - * NOTE: by default this is off - the macro is not used - because the - * function call saves a lot of code. - */ -#ifdef PNG_FIXED_POINT_MACRO_SUPPORTED -#define png_fixed(png_ptr, fp, s) ((fp) <= 21474 && (fp) >= -21474 ?\ - ((png_fixed_point)(100000 * (fp))) : (png_fixed_error(png_ptr, s),0)) -#else -PNG_EXTERN png_fixed_point png_fixed PNGARG((png_structp png_ptr, double fp, - png_const_charp text)); -#endif -#endif - -/* Constant strings for known chunk types. If you need to add a chunk, - * define the name here, and add an invocation of the macro wherever it's - * needed. - */ -#define PNG_IHDR PNG_CONST png_byte png_IHDR[5] = { 73, 72, 68, 82, '\0'} -#define PNG_IDAT PNG_CONST png_byte png_IDAT[5] = { 73, 68, 65, 84, '\0'} -#define PNG_IEND PNG_CONST png_byte png_IEND[5] = { 73, 69, 78, 68, '\0'} -#define PNG_PLTE PNG_CONST png_byte png_PLTE[5] = { 80, 76, 84, 69, '\0'} -#define PNG_bKGD PNG_CONST png_byte png_bKGD[5] = { 98, 75, 71, 68, '\0'} -#define PNG_cHRM PNG_CONST png_byte png_cHRM[5] = { 99, 72, 82, 77, '\0'} -#define PNG_gAMA PNG_CONST png_byte png_gAMA[5] = {103, 65, 77, 65, '\0'} -#define PNG_hIST PNG_CONST png_byte png_hIST[5] = {104, 73, 83, 84, '\0'} -#define PNG_iCCP PNG_CONST png_byte png_iCCP[5] = {105, 67, 67, 80, '\0'} -#define PNG_iTXt PNG_CONST png_byte png_iTXt[5] = {105, 84, 88, 116, '\0'} -#define PNG_oFFs PNG_CONST png_byte png_oFFs[5] = {111, 70, 70, 115, '\0'} -#define PNG_pCAL PNG_CONST png_byte png_pCAL[5] = {112, 67, 65, 76, '\0'} -#define PNG_sCAL PNG_CONST png_byte png_sCAL[5] = {115, 67, 65, 76, '\0'} -#define PNG_pHYs PNG_CONST png_byte png_pHYs[5] = {112, 72, 89, 115, '\0'} -#define PNG_sBIT PNG_CONST png_byte png_sBIT[5] = {115, 66, 73, 84, '\0'} -#define PNG_sPLT PNG_CONST png_byte png_sPLT[5] = {115, 80, 76, 84, '\0'} -#define PNG_sRGB PNG_CONST png_byte png_sRGB[5] = {115, 82, 71, 66, '\0'} -#define PNG_sTER PNG_CONST png_byte png_sTER[5] = {115, 84, 69, 82, '\0'} -#define PNG_tEXt PNG_CONST png_byte png_tEXt[5] = {116, 69, 88, 116, '\0'} -#define PNG_tIME PNG_CONST png_byte png_tIME[5] = {116, 73, 77, 69, '\0'} -#define PNG_tRNS PNG_CONST png_byte png_tRNS[5] = {116, 82, 78, 83, '\0'} -#define PNG_zTXt PNG_CONST png_byte png_zTXt[5] = {122, 84, 88, 116, '\0'} - - -/* Inhibit C++ name-mangling for libpng functions but not for system calls. */ -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* These functions are used internally in the code. They generally - * shouldn't be used unless you are writing code to add or replace some - * functionality in libpng. More information about most functions can - * be found in the files where the functions are located. - */ - -/* Allocate memory for an internal libpng struct */ -PNG_EXTERN PNG_FUNCTION(png_voidp,png_create_struct,PNGARG((int type)), - PNG_ALLOCATED); - -/* Free memory from internal libpng struct */ -PNG_EXTERN void png_destroy_struct PNGARG((png_voidp struct_ptr)); - -PNG_EXTERN PNG_FUNCTION(png_voidp,png_create_struct_2, - PNGARG((int type, png_malloc_ptr malloc_fn, png_voidp mem_ptr)), - PNG_ALLOCATED); -PNG_EXTERN void png_destroy_struct_2 PNGARG((png_voidp struct_ptr, - png_free_ptr free_fn, png_voidp mem_ptr)); - -/* Free any memory that info_ptr points to and reset struct. */ -PNG_EXTERN void png_info_destroy PNGARG((png_structp png_ptr, - png_infop info_ptr)); - -/* Function to allocate memory for zlib. PNGAPI is disallowed. */ -PNG_EXTERN PNG_FUNCTION(voidpf,png_zalloc,PNGARG((voidpf png_ptr, uInt items, - uInt size)),PNG_ALLOCATED); - -/* Function to free memory for zlib. PNGAPI is disallowed. */ -PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr)); - -/* Next four functions are used internally as callbacks. PNGCBAPI is required - * but not PNG_EXPORT. PNGAPI added at libpng version 1.2.3, changed to - * PNGCBAPI at 1.5.0 - */ - -PNG_EXTERN void PNGCBAPI png_default_read_data PNGARG((png_structp png_ptr, - png_bytep data, png_size_t length)); - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -PNG_EXTERN void PNGCBAPI png_push_fill_buffer PNGARG((png_structp png_ptr, - png_bytep buffer, png_size_t length)); -#endif - -PNG_EXTERN void PNGCBAPI png_default_write_data PNGARG((png_structp png_ptr, - png_bytep data, png_size_t length)); - -#ifdef PNG_WRITE_FLUSH_SUPPORTED -# ifdef PNG_STDIO_SUPPORTED -PNG_EXTERN void PNGCBAPI png_default_flush PNGARG((png_structp png_ptr)); -# endif -#endif - -/* Reset the CRC variable */ -PNG_EXTERN void png_reset_crc PNGARG((png_structp png_ptr)); - -/* Write the "data" buffer to whatever output you are using */ -PNG_EXTERN void png_write_data PNGARG((png_structp png_ptr, - png_const_bytep data, png_size_t length)); - -/* Read and check the PNG file signature */ -PNG_EXTERN void png_read_sig PNGARG((png_structp png_ptr, png_infop info_ptr)); - -/* Read the chunk header (length + type name) */ -PNG_EXTERN png_uint_32 png_read_chunk_header PNGARG((png_structp png_ptr)); - -/* Read data from whatever input you are using into the "data" buffer */ -PNG_EXTERN void png_read_data PNGARG((png_structp png_ptr, png_bytep data, - png_size_t length)); - -/* Read bytes into buf, and update png_ptr->crc */ -PNG_EXTERN void png_crc_read PNGARG((png_structp png_ptr, png_bytep buf, - png_size_t length)); - -/* Decompress data in a chunk that uses compression */ -#if defined(PNG_zTXt_SUPPORTED) || defined(PNG_iTXt_SUPPORTED) || \ - defined(PNG_iCCP_SUPPORTED) || defined(PNG_sPLT_SUPPORTED) -PNG_EXTERN void png_decompress_chunk PNGARG((png_structp png_ptr, - int comp_type, png_size_t chunklength, png_size_t prefix_length, - png_size_t *data_length)); -#endif - -/* Read "skip" bytes, read the file crc, and (optionally) verify png_ptr->crc */ -PNG_EXTERN int png_crc_finish PNGARG((png_structp png_ptr, png_uint_32 skip)); - -/* Read the CRC from the file and compare it to the libpng calculated CRC */ -PNG_EXTERN int png_crc_error PNGARG((png_structp png_ptr)); - -/* Calculate the CRC over a section of data. Note that we are only - * passing a maximum of 64K on systems that have this as a memory limit, - * since this is the maximum buffer size we can specify. - */ -PNG_EXTERN void png_calculate_crc PNGARG((png_structp png_ptr, - png_const_bytep ptr, png_size_t length)); - -#ifdef PNG_WRITE_FLUSH_SUPPORTED -PNG_EXTERN void png_flush PNGARG((png_structp png_ptr)); -#endif - -/* Write various chunks */ - -/* Write the IHDR chunk, and update the png_struct with the necessary - * information. - */ -PNG_EXTERN void png_write_IHDR PNGARG((png_structp png_ptr, png_uint_32 width, - png_uint_32 height, - int bit_depth, int color_type, int compression_method, int filter_method, - int interlace_method)); - -PNG_EXTERN void png_write_PLTE PNGARG((png_structp png_ptr, - png_const_colorp palette, png_uint_32 num_pal)); - -PNG_EXTERN void png_write_IDAT PNGARG((png_structp png_ptr, png_bytep data, - png_size_t length)); - -PNG_EXTERN void png_write_IEND PNGARG((png_structp png_ptr)); - -#ifdef PNG_WRITE_gAMA_SUPPORTED -# ifdef PNG_FLOATING_POINT_SUPPORTED -PNG_EXTERN void png_write_gAMA PNGARG((png_structp png_ptr, double file_gamma)); -# endif -# ifdef PNG_FIXED_POINT_SUPPORTED -PNG_EXTERN void png_write_gAMA_fixed PNGARG((png_structp png_ptr, - png_fixed_point file_gamma)); -# endif -#endif - -#ifdef PNG_WRITE_sBIT_SUPPORTED -PNG_EXTERN void png_write_sBIT PNGARG((png_structp png_ptr, - png_const_color_8p sbit, int color_type)); -#endif - -#ifdef PNG_WRITE_cHRM_SUPPORTED -# ifdef PNG_FLOATING_POINT_SUPPORTED -PNG_EXTERN void png_write_cHRM PNGARG((png_structp png_ptr, - double white_x, double white_y, - double red_x, double red_y, double green_x, double green_y, - double blue_x, double blue_y)); -# endif -PNG_EXTERN void png_write_cHRM_fixed PNGARG((png_structp png_ptr, - png_fixed_point int_white_x, png_fixed_point int_white_y, - png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point - int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x, - png_fixed_point int_blue_y)); -#endif - -#ifdef PNG_WRITE_sRGB_SUPPORTED -PNG_EXTERN void png_write_sRGB PNGARG((png_structp png_ptr, - int intent)); -#endif - -#ifdef PNG_WRITE_iCCP_SUPPORTED -PNG_EXTERN void png_write_iCCP PNGARG((png_structp png_ptr, - png_const_charp name, int compression_type, - png_const_charp profile, int proflen)); - /* Note to maintainer: profile should be png_bytep */ -#endif - -#ifdef PNG_WRITE_sPLT_SUPPORTED -PNG_EXTERN void png_write_sPLT PNGARG((png_structp png_ptr, - png_const_sPLT_tp palette)); -#endif - -#ifdef PNG_WRITE_tRNS_SUPPORTED -PNG_EXTERN void png_write_tRNS PNGARG((png_structp png_ptr, - png_const_bytep trans, png_const_color_16p values, int number, - int color_type)); -#endif - -#ifdef PNG_WRITE_bKGD_SUPPORTED -PNG_EXTERN void png_write_bKGD PNGARG((png_structp png_ptr, - png_const_color_16p values, int color_type)); -#endif - -#ifdef PNG_WRITE_hIST_SUPPORTED -PNG_EXTERN void png_write_hIST PNGARG((png_structp png_ptr, - png_const_uint_16p hist, int num_hist)); -#endif - -#if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_pCAL_SUPPORTED) || \ - defined(PNG_WRITE_iCCP_SUPPORTED) || defined(PNG_WRITE_sPLT_SUPPORTED) -PNG_EXTERN png_size_t png_check_keyword PNGARG((png_structp png_ptr, - png_const_charp key, png_charpp new_key)); -#endif - -#ifdef PNG_WRITE_tEXt_SUPPORTED -PNG_EXTERN void png_write_tEXt PNGARG((png_structp png_ptr, png_const_charp key, - png_const_charp text, png_size_t text_len)); -#endif - -#ifdef PNG_WRITE_zTXt_SUPPORTED -PNG_EXTERN void png_write_zTXt PNGARG((png_structp png_ptr, png_const_charp key, - png_const_charp text, png_size_t text_len, int compression)); -#endif - -#ifdef PNG_WRITE_iTXt_SUPPORTED -PNG_EXTERN void png_write_iTXt PNGARG((png_structp png_ptr, - int compression, png_const_charp key, png_const_charp lang, - png_const_charp lang_key, png_const_charp text)); -#endif - -#ifdef PNG_TEXT_SUPPORTED /* Added at version 1.0.14 and 1.2.4 */ -PNG_EXTERN int png_set_text_2 PNGARG((png_structp png_ptr, - png_infop info_ptr, png_const_textp text_ptr, int num_text)); -#endif - -#ifdef PNG_WRITE_oFFs_SUPPORTED -PNG_EXTERN void png_write_oFFs PNGARG((png_structp png_ptr, - png_int_32 x_offset, png_int_32 y_offset, int unit_type)); -#endif - -#ifdef PNG_WRITE_pCAL_SUPPORTED -PNG_EXTERN void png_write_pCAL PNGARG((png_structp png_ptr, png_charp purpose, - png_int_32 X0, png_int_32 X1, int type, int nparams, - png_const_charp units, png_charpp params)); -#endif - -#ifdef PNG_WRITE_pHYs_SUPPORTED -PNG_EXTERN void png_write_pHYs PNGARG((png_structp png_ptr, - png_uint_32 x_pixels_per_unit, png_uint_32 y_pixels_per_unit, - int unit_type)); -#endif - -#ifdef PNG_WRITE_tIME_SUPPORTED -PNG_EXTERN void png_write_tIME PNGARG((png_structp png_ptr, - png_const_timep mod_time)); -#endif - -#ifdef PNG_WRITE_sCAL_SUPPORTED -PNG_EXTERN void png_write_sCAL_s PNGARG((png_structp png_ptr, - int unit, png_const_charp width, png_const_charp height)); -#endif - -/* Called when finished processing a row of data */ -PNG_EXTERN void png_write_finish_row PNGARG((png_structp png_ptr)); - -/* Internal use only. Called before first row of data */ -PNG_EXTERN void png_write_start_row PNGARG((png_structp png_ptr)); - -/* Combine a row of data, dealing with alpha, etc. if requested */ -PNG_EXTERN void png_combine_row PNGARG((png_structp png_ptr, png_bytep row, - int mask)); - -#ifdef PNG_READ_INTERLACING_SUPPORTED -/* Expand an interlaced row */ -/* OLD pre-1.0.9 interface: -PNG_EXTERN void png_do_read_interlace PNGARG((png_row_infop row_info, - png_bytep row, int pass, png_uint_32 transformations)); - */ -PNG_EXTERN void png_do_read_interlace PNGARG((png_structp png_ptr)); -#endif - -/* GRR TO DO (2.0 or whenever): simplify other internal calling interfaces */ - -#ifdef PNG_WRITE_INTERLACING_SUPPORTED -/* Grab pixels out of a row for an interlaced pass */ -PNG_EXTERN void png_do_write_interlace PNGARG((png_row_infop row_info, - png_bytep row, int pass)); -#endif - -/* Unfilter a row */ -PNG_EXTERN void png_read_filter_row PNGARG((png_structp png_ptr, - png_row_infop row_info, png_bytep row, png_const_bytep prev_row, - int filter)); - -/* Choose the best filter to use and filter the row data */ -PNG_EXTERN void png_write_find_filter PNGARG((png_structp png_ptr, - png_row_infop row_info)); - -/* Write out the filtered row. */ -PNG_EXTERN void png_write_filtered_row PNGARG((png_structp png_ptr, - png_bytep filtered_row)); -/* Finish a row while reading, dealing with interlacing passes, etc. */ -PNG_EXTERN void png_read_finish_row PNGARG((png_structp png_ptr)); - -/* Initialize the row buffers, etc. */ -PNG_EXTERN void png_read_start_row PNGARG((png_structp png_ptr)); -/* Optional call to update the users info structure */ -PNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr, - png_infop info_ptr)); - -/* These are the functions that do the transformations */ -#ifdef PNG_READ_FILLER_SUPPORTED -PNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info, - png_bytep row, png_uint_32 filler, png_uint_32 flags)); -#endif - -#ifdef PNG_READ_SWAP_ALPHA_SUPPORTED -PNG_EXTERN void png_do_read_swap_alpha PNGARG((png_row_infop row_info, - png_bytep row)); -#endif - -#ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED -PNG_EXTERN void png_do_write_swap_alpha PNGARG((png_row_infop row_info, - png_bytep row)); -#endif - -#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED -PNG_EXTERN void png_do_read_invert_alpha PNGARG((png_row_infop row_info, - png_bytep row)); -#endif - -#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED -PNG_EXTERN void png_do_write_invert_alpha PNGARG((png_row_infop row_info, - png_bytep row)); -#endif - -#if defined(PNG_WRITE_FILLER_SUPPORTED) || \ - defined(PNG_READ_STRIP_ALPHA_SUPPORTED) -PNG_EXTERN void png_do_strip_channel PNGARG((png_row_infop row_info, - png_bytep row, int at_start)); -#endif - -#ifdef PNG_16BIT_SUPPORTED -#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) -PNG_EXTERN void png_do_swap PNGARG((png_row_infop row_info, - png_bytep row)); -#endif -#endif - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \ - defined(PNG_WRITE_PACKSWAP_SUPPORTED) -PNG_EXTERN void png_do_packswap PNGARG((png_row_infop row_info, - png_bytep row)); -#endif - -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED -PNG_EXTERN int png_do_rgb_to_gray PNGARG((png_structp png_ptr, - png_row_infop row_info, png_bytep row)); -#endif - -#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED -PNG_EXTERN void png_do_gray_to_rgb PNGARG((png_row_infop row_info, - png_bytep row)); -#endif - -#ifdef PNG_READ_PACK_SUPPORTED -PNG_EXTERN void png_do_unpack PNGARG((png_row_infop row_info, - png_bytep row)); -#endif - -#ifdef PNG_READ_SHIFT_SUPPORTED -PNG_EXTERN void png_do_unshift PNGARG((png_row_infop row_info, - png_bytep row, png_const_color_8p sig_bits)); -#endif - -#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) -PNG_EXTERN void png_do_invert PNGARG((png_row_infop row_info, - png_bytep row)); -#endif - -#ifdef PNG_READ_16_TO_8_SUPPORTED -PNG_EXTERN void png_do_chop PNGARG((png_row_infop row_info, - png_bytep row)); -#endif - -#ifdef PNG_READ_QUANTIZE_SUPPORTED -PNG_EXTERN void png_do_quantize PNGARG((png_row_infop row_info, - png_bytep row, png_const_bytep palette_lookup, - png_const_bytep quantize_lookup)); - -# ifdef PNG_CORRECT_PALETTE_SUPPORTED -PNG_EXTERN void png_correct_palette PNGARG((png_structp png_ptr, - png_colorp palette, int num_palette)); -# endif -#endif - -#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) -PNG_EXTERN void png_do_bgr PNGARG((png_row_infop row_info, - png_bytep row)); -#endif - -#ifdef PNG_WRITE_PACK_SUPPORTED -PNG_EXTERN void png_do_pack PNGARG((png_row_infop row_info, - png_bytep row, png_uint_32 bit_depth)); -#endif - -#ifdef PNG_WRITE_SHIFT_SUPPORTED -PNG_EXTERN void png_do_shift PNGARG((png_row_infop row_info, - png_bytep row, png_const_color_8p bit_depth)); -#endif - -#ifdef PNG_READ_BACKGROUND_SUPPORTED -# ifdef PNG_READ_GAMMA_SUPPORTED -PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, - png_bytep row, png_const_color_16p trans_color, - png_const_color_16p background, png_const_color_16p background_1, - png_const_bytep gamma_table, png_const_bytep gamma_from_1, - png_const_bytep gamma_to_1, png_const_uint_16pp gamma_16, - png_const_uint_16pp gamma_16_from_1, png_const_uint_16pp gamma_16_to_1, - int gamma_shift)); -# else -PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, - png_bytep row, png_const_color_16p trans_color, - png_const_color_16p background)); -# endif -#endif - -#ifdef PNG_READ_GAMMA_SUPPORTED -PNG_EXTERN void png_do_gamma PNGARG((png_row_infop row_info, - png_bytep row, png_const_bytep gamma_table, - png_const_uint_16pp gamma_16_table, int gamma_shift)); -#endif - -#ifdef PNG_READ_EXPAND_SUPPORTED -PNG_EXTERN void png_do_expand_palette PNGARG((png_row_infop row_info, - png_bytep row, png_const_colorp palette, png_const_bytep trans, - int num_trans)); -PNG_EXTERN void png_do_expand PNGARG((png_row_infop row_info, - png_bytep row, png_const_color_16p trans_color)); -#endif - -#ifdef PNG_READ_EXPAND_16_SUPPORTED -PNG_EXTERN void png_do_expand_16 PNGARG((png_row_infop row_info, - png_bytep row)); -#endif - -/* The following decodes the appropriate chunks, and does error correction, - * then calls the appropriate callback for the chunk if it is valid. - */ - -/* Decode the IHDR chunk */ -PNG_EXTERN void png_handle_IHDR PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -PNG_EXTERN void png_handle_PLTE PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -PNG_EXTERN void png_handle_IEND PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); - -#ifdef PNG_READ_bKGD_SUPPORTED -PNG_EXTERN void png_handle_bKGD PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#ifdef PNG_READ_cHRM_SUPPORTED -PNG_EXTERN void png_handle_cHRM PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#ifdef PNG_READ_gAMA_SUPPORTED -PNG_EXTERN void png_handle_gAMA PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#ifdef PNG_READ_hIST_SUPPORTED -PNG_EXTERN void png_handle_hIST PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#ifdef PNG_READ_iCCP_SUPPORTED -PNG_EXTERN void png_handle_iCCP PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif /* PNG_READ_iCCP_SUPPORTED */ - -#ifdef PNG_READ_iTXt_SUPPORTED -PNG_EXTERN void png_handle_iTXt PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#ifdef PNG_READ_oFFs_SUPPORTED -PNG_EXTERN void png_handle_oFFs PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#ifdef PNG_READ_pCAL_SUPPORTED -PNG_EXTERN void png_handle_pCAL PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#ifdef PNG_READ_pHYs_SUPPORTED -PNG_EXTERN void png_handle_pHYs PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#ifdef PNG_READ_sBIT_SUPPORTED -PNG_EXTERN void png_handle_sBIT PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#ifdef PNG_READ_sCAL_SUPPORTED -PNG_EXTERN void png_handle_sCAL PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#ifdef PNG_READ_sPLT_SUPPORTED -PNG_EXTERN void png_handle_sPLT PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif /* PNG_READ_sPLT_SUPPORTED */ - -#ifdef PNG_READ_sRGB_SUPPORTED -PNG_EXTERN void png_handle_sRGB PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#ifdef PNG_READ_tEXt_SUPPORTED -PNG_EXTERN void png_handle_tEXt PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#ifdef PNG_READ_tIME_SUPPORTED -PNG_EXTERN void png_handle_tIME PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#ifdef PNG_READ_tRNS_SUPPORTED -PNG_EXTERN void png_handle_tRNS PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#ifdef PNG_READ_zTXt_SUPPORTED -PNG_EXTERN void png_handle_zTXt PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -PNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 length)); - -PNG_EXTERN void png_check_chunk_name PNGARG((png_structp png_ptr, - png_const_bytep chunk_name)); - -/* Handle the transformations for reading and writing */ -PNG_EXTERN void png_do_read_transformations PNGARG((png_structp png_ptr)); -PNG_EXTERN void png_do_write_transformations PNGARG((png_structp png_ptr)); - -PNG_EXTERN void png_init_read_transformations PNGARG((png_structp png_ptr)); - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -PNG_EXTERN void png_push_read_chunk PNGARG((png_structp png_ptr, - png_infop info_ptr)); -PNG_EXTERN void png_push_read_sig PNGARG((png_structp png_ptr, - png_infop info_ptr)); -PNG_EXTERN void png_push_check_crc PNGARG((png_structp png_ptr)); -PNG_EXTERN void png_push_crc_skip PNGARG((png_structp png_ptr, - png_uint_32 length)); -PNG_EXTERN void png_push_crc_finish PNGARG((png_structp png_ptr)); -PNG_EXTERN void png_push_save_buffer PNGARG((png_structp png_ptr)); -PNG_EXTERN void png_push_restore_buffer PNGARG((png_structp png_ptr, - png_bytep buffer, png_size_t buffer_length)); -PNG_EXTERN void png_push_read_IDAT PNGARG((png_structp png_ptr)); -PNG_EXTERN void png_process_IDAT_data PNGARG((png_structp png_ptr, - png_bytep buffer, png_size_t buffer_length)); -PNG_EXTERN void png_push_process_row PNGARG((png_structp png_ptr)); -PNG_EXTERN void png_push_handle_unknown PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 length)); -PNG_EXTERN void png_push_have_info PNGARG((png_structp png_ptr, - png_infop info_ptr)); -PNG_EXTERN void png_push_have_end PNGARG((png_structp png_ptr, - png_infop info_ptr)); -PNG_EXTERN void png_push_have_row PNGARG((png_structp png_ptr, png_bytep row)); -PNG_EXTERN void png_push_read_end PNGARG((png_structp png_ptr, - png_infop info_ptr)); -PNG_EXTERN void png_process_some_data PNGARG((png_structp png_ptr, - png_infop info_ptr)); -PNG_EXTERN void png_read_push_finish_row PNGARG((png_structp png_ptr)); -# ifdef PNG_READ_tEXt_SUPPORTED -PNG_EXTERN void png_push_handle_tEXt PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 length)); -PNG_EXTERN void png_push_read_tEXt PNGARG((png_structp png_ptr, - png_infop info_ptr)); -# endif -# ifdef PNG_READ_zTXt_SUPPORTED -PNG_EXTERN void png_push_handle_zTXt PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 length)); -PNG_EXTERN void png_push_read_zTXt PNGARG((png_structp png_ptr, - png_infop info_ptr)); -# endif -# ifdef PNG_READ_iTXt_SUPPORTED -PNG_EXTERN void png_push_handle_iTXt PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 length)); -PNG_EXTERN void png_push_read_iTXt PNGARG((png_structp png_ptr, - png_infop info_ptr)); -# endif - -#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ - -#ifdef PNG_MNG_FEATURES_SUPPORTED -PNG_EXTERN void png_do_read_intrapixel PNGARG((png_row_infop row_info, - png_bytep row)); -PNG_EXTERN void png_do_write_intrapixel PNGARG((png_row_infop row_info, - png_bytep row)); -#endif - -/* Added at libpng version 1.4.0 */ -#ifdef PNG_CHECK_cHRM_SUPPORTED -PNG_EXTERN int png_check_cHRM_fixed PNGARG((png_structp png_ptr, - png_fixed_point int_white_x, png_fixed_point int_white_y, - png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point - int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x, - png_fixed_point int_blue_y)); -#endif - -#ifdef PNG_CHECK_cHRM_SUPPORTED -/* Added at libpng version 1.2.34 and 1.4.0 */ -/* Currently only used by png_check_cHRM_fixed */ -PNG_EXTERN void png_64bit_product PNGARG((long v1, long v2, - unsigned long *hi_product, unsigned long *lo_product)); -#endif - -/* Added at libpng version 1.4.0 */ -PNG_EXTERN void png_check_IHDR PNGARG((png_structp png_ptr, - png_uint_32 width, png_uint_32 height, int bit_depth, - int color_type, int interlace_type, int compression_type, - int filter_type)); - -/* Free all memory used by the read (old method - NOT DLL EXPORTED) */ -PNG_EXTERN void png_read_destroy PNGARG((png_structp png_ptr, - png_infop info_ptr, png_infop end_info_ptr)); - -/* Free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */ -PNG_EXTERN void png_write_destroy PNGARG((png_structp png_ptr)); - -#ifdef USE_FAR_KEYWORD /* memory model conversion function */ -PNG_EXTERN void *png_far_to_near PNGARG((png_structp png_ptr, png_voidp ptr, - int check)); -#endif /* USE_FAR_KEYWORD */ - -#if defined(PNG_FLOATING_POINT_SUPPORTED) && defined(PNG_ERROR_TEXT_SUPPORTED) -PNG_EXTERN PNG_FUNCTION(void, png_fixed_error, (png_structp png_ptr, - png_const_charp name),PNG_NORETURN); -#endif - -/* ASCII to FP interfaces, currently only implemented if sCAL - * support is required. - */ -#if defined(PNG_READ_sCAL_SUPPORTED) -/* MAX_DIGITS is actually the maximum number of characters in an sCAL - * width or height, derived from the precision (number of significant - * digits - a build time settable option) and assumpitions about the - * maximum ridiculous exponent. - */ -#define PNG_sCAL_MAX_DIGITS (PNG_sCAL_PRECISION+1/*.*/+1/*E*/+10/*exponent*/) - -#ifdef PNG_FLOATING_POINT_SUPPORTED -PNG_EXTERN void png_ascii_from_fp PNGARG((png_structp png_ptr, png_charp ascii, - png_size_t size, double fp, unsigned int precision)); -#endif /* FLOATING_POINT */ - -#ifdef PNG_FIXED_POINT_SUPPORTED -PNG_EXTERN void png_ascii_from_fixed PNGARG((png_structp png_ptr, - png_charp ascii, png_size_t size, png_fixed_point fp)); -#endif /* FIXED_POINT */ -#endif /* READ_sCAL */ - -#if defined(PNG_sCAL_SUPPORTED) || defined(PNG_pCAL_SUPPORTED) -/* An internal API to validate the format of a floating point number. - * The result is the index of the next character. If the number is - * not valid it will be the index of a character in the supposed number. - * - * The format of a number is defined in the PNG extensions specification - * and this API is strictly conformant to that spec, not anyone elses! - * - * The format as a regular expression is: - * - * [+-]?[0-9]+.?([Ee][+-]?[0-9]+)? - * - * or: - * - * [+-]?.[0-9]+(.[0-9]+)?([Ee][+-]?[0-9]+)? - * - * The complexity is that either integer or fraction must be present and the - * fraction is permitted to have no digits only if the integer is present. - * - * NOTE: The dangling E problem. - * There is a PNG valid floating point number in the following: - * - * PNG floating point numb1.ers are not greedy. - * - * Working this out requires *TWO* character lookahead (because of the - * sign), the parser does not do this - it will fail at the 'r' - this - * doesn't matter for PNG sCAL chunk values, but it requires more care - * if the value were ever to be embedded in something more complex. Use - * ANSI-C strtod if you need the lookahead. - */ -/* State table for the parser. */ -#define PNG_FP_INTEGER 0 /* before or in integer */ -#define PNG_FP_FRACTION 1 /* before or in fraction */ -#define PNG_FP_EXPONENT 2 /* before or in exponent */ -#define PNG_FP_STATE 3 /* mask for the above */ -#define PNG_FP_SAW_SIGN 4 /* Saw +/- in current state */ -#define PNG_FP_SAW_DIGIT 8 /* Saw a digit in current state */ -#define PNG_FP_SAW_DOT 16 /* Saw a dot in current state */ -#define PNG_FP_SAW_E 32 /* Saw an E (or e) in current state */ -#define PNG_FP_SAW_ANY 60 /* Saw any of the above 4 */ -#define PNG_FP_WAS_VALID 64 /* Preceding substring is a valid fp number */ -#define PNG_FP_INVALID 128 /* Available for callers as a distinct value */ - -/* Result codes for the parser (boolean - true meants ok, false means - * not ok yet.) - */ -#define PNG_FP_MAYBE 0 /* The number may be valid in the future */ -#define PNG_FP_OK 1 /* The number is valid */ - -/* The actual parser. This can be called repeatedly, it updates - * the index into the string and the state variable (which must - * be initialzed to 0). It returns a result code, as above. There - * is no point calling the parser any more if it fails to advance to - * the end of the string - it is stuck on an invalid character (or - * terminated by '\0'). - * - * Note that the pointer will consume an E or even an E+ then leave - * a 'maybe' state even though a preceding integer.fraction is valid. - * The PNG_FP_WAS_VALID flag indicates that a preceding substring was - * a valid number. It's possible to recover from this by calling - * the parser again (from the start, with state 0) but with a string - * that omits the last character (i.e. set the size to the index of - * the problem character.) This has not been tested within libpng. - */ -PNG_EXTERN int png_check_fp_number PNGARG((png_const_charp string, - png_size_t size, int *statep, png_size_tp whereami)); - -/* This is the same but it checks a complete string and returns true - * only if it just contains a floating point number. - */ -PNG_EXTERN int png_check_fp_string PNGARG((png_const_charp string, - png_size_t size)); -#endif /* pCAL || sCAL */ - -#if defined(PNG_READ_GAMMA_SUPPORTED) ||\ - defined(PNG_INCH_CONVERSIONS_SUPPORTED) || defined(PNG_READ_pHYs_SUPPORTED) -/* Added at libpng version 1.5.0 */ -/* This is a utility to provide a*times/div (rounded) and indicate - * if there is an overflow. The result is a boolean - false (0) - * for overflow, true (1) if no overflow, in which case *res - * holds the result. - */ -PNG_EXTERN int png_muldiv PNGARG((png_fixed_point_p res, png_fixed_point a, - png_int_32 multiplied_by, png_int_32 divided_by)); -#endif - -#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_INCH_CONVERSIONS_SUPPORTED) -/* Same deal, but issue a warning on overflow and return 0. */ -PNG_EXTERN png_fixed_point png_muldiv_warn PNGARG((png_structp png_ptr, - png_fixed_point a, png_int_32 multiplied_by, png_int_32 divided_by)); -#endif - -#ifdef PNG_READ_GAMMA_SUPPORTED -/* Calculate a reciprocal - used for gamma values. This returns - * 0 if the argument is 0 in order to maintain an undefined value, - * there are no warnings. - */ -PNG_EXTERN png_fixed_point png_reciprocal PNGARG((png_fixed_point a)); - -/* The same but gives a reciprocal of the product of two fixed point - * values. Accuracy is suitable for gamma calculations but this is - * not exact - use png_muldiv for that. - */ -PNG_EXTERN png_fixed_point png_reciprocal2 PNGARG((png_fixed_point a, - png_fixed_point b)); -#endif - -#ifdef PNG_READ_GAMMA_SUPPORTED -/* Internal fixed point gamma correction. These APIs are called as - * required to convert single values - they don't need to be fast, - * they are not used when processing image pixel values. - * - * While the input is an 'unsigned' value it must actually be the - * correct bit value - 0..255 or 0..65535 as required. - */ -PNG_EXTERN png_uint_16 png_gamma_correct PNGARG((png_structp png_ptr, - unsigned int value, png_fixed_point gamma_value)); -PNG_EXTERN int png_gamma_significant PNGARG((png_fixed_point gamma_value)); -PNG_EXTERN png_uint_16 png_gamma_16bit_correct PNGARG((unsigned int value, - png_fixed_point gamma_value)); -PNG_EXTERN png_byte png_gamma_8bit_correct PNGARG((unsigned int value, - png_fixed_point gamma_value)); -PNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr, - int bit_depth)); -#endif - -/* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */ - - -#include "pngdebug.h" - -#ifdef __cplusplus -} -#endif - -#endif /* PNGPRIV_H */ + +/* pngpriv.h - private declarations for use inside libpng + * + * For conditions of distribution and use, see copyright notice in png.h + * Copyright (c) 1998-2014 Glenn Randers-Pehrson + * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) + * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * + * Last changed in libpng 1.6.10 [March 6, 1014]] + * + * This code is released under the libpng license. + * For conditions of distribution and use, see the disclaimer + * and license in png.h + */ + +/* The symbols declared in this file (including the functions declared + * as extern) are PRIVATE. They are not part of the libpng public + * interface, and are not recommended for use by regular applications. + * Some of them may become public in the future; others may stay private, + * change in an incompatible way, or even disappear. + * Although the libpng users are not forbidden to include this header, + * they should be well aware of the issues that may arise from doing so. + */ + +#ifndef PNGPRIV_H +#define PNGPRIV_H + +/* Feature Test Macros. The following are defined here to ensure that correctly + * implemented libraries reveal the APIs libpng needs to build and hide those + * that are not needed and potentially damaging to the compilation. + * + * Feature Test Macros must be defined before any system header is included (see + * POSIX 1003.1 2.8.2 "POSIX Symbols." + * + * These macros only have an effect if the operating system supports either + * POSIX 1003.1 or C99, or both. On other operating systems (particularly + * Windows/Visual Studio) there is no effect; the OS specific tests below are + * still required (as of 2011-05-02.) + */ +#define _POSIX_SOURCE 1 /* Just the POSIX 1003.1 and C89 APIs */ + +#ifndef PNG_VERSION_INFO_ONLY +/* Standard library headers not required by png.h: */ +# include +# include +#endif + +#define PNGLIB_BUILD /*libpng is being built, not used*/ + +/* If HAVE_CONFIG_H is defined during the build then the build system must + * provide an appropriate "config.h" file on the include path. The header file + * must provide definitions as required below (search for "HAVE_CONFIG_H"); + * see configure.ac for more details of the requirements. The macro + * "PNG_NO_CONFIG_H" is provided for maintainers to test for dependencies on + * 'configure'; define this macro to prevent the configure build including the + * configure generated config.h. Libpng is expected to compile without *any* + * special build system support on a reasonably ANSI-C compliant system. + */ +#if defined(HAVE_CONFIG_H) && !defined(PNG_NO_CONFIG_H) +# include + + /* Pick up the definition of 'restrict' from config.h if it was read: */ +# define PNG_RESTRICT restrict +#endif + +/* To support symbol prefixing it is necessary to know *before* including png.h + * whether the fixed point (and maybe other) APIs are exported, because if they + * are not internal definitions may be required. This is handled below just + * before png.h is included, but load the configuration now if it is available. + */ +#ifndef PNGLCONF_H +# include "pnglibconf.h" +#endif + +/* Local renames may change non-exported API functions from png.h */ +#if defined(PNG_PREFIX) && !defined(PNGPREFIX_H) +# include "pngprefix.h" +#endif + +#ifdef PNG_USER_CONFIG +# include "pngusr.h" + /* These should have been defined in pngusr.h */ +# ifndef PNG_USER_PRIVATEBUILD +# define PNG_USER_PRIVATEBUILD "Custom libpng build" +# endif +# ifndef PNG_USER_DLLFNAME_POSTFIX +# define PNG_USER_DLLFNAME_POSTFIX "Cb" +# endif +#endif + +/* Compile time options. + * ===================== + * In a multi-arch build the compiler may compile the code several times for the + * same object module, producing different binaries for different architectures. + * When this happens configure-time setting of the target host options cannot be + * done and this interferes with the handling of the ARM NEON optimizations, and + * possibly other similar optimizations. Put additional tests here; in general + * this is needed when the same option can be changed at both compile time and + * run time depending on the target OS (i.e. iOS vs Android.) + * + * NOTE: symbol prefixing does not pass $(CFLAGS) to the preprocessor, because + * this is not possible with certain compilers (Oracle SUN OS CC), as a result + * it is necessary to ensure that all extern functions that *might* be used + * regardless of $(CFLAGS) get declared in this file. The test on __ARM_NEON__ + * below is one example of this behavior because it is controlled by the + * presence or not of -mfpu=neon on the GCC command line, it is possible to do + * this in $(CC), e.g. "CC=gcc -mfpu=neon", but people who build libpng rarely + * do this. + */ +#ifndef PNG_ARM_NEON_OPT + /* ARM NEON optimizations are being controlled by the compiler settings, + * typically the target FPU. If the FPU has been set to NEON (-mfpu=neon + * with GCC) then the compiler will define __ARM_NEON__ and we can rely + * unconditionally on NEON instructions not crashing, otherwise we must + * disable use of NEON instructions. + * + * NOTE: at present these optimizations depend on 'ALIGNED_MEMORY', so they + * can only be turned on automatically if that is supported too. If + * PNG_ARM_NEON_OPT is set in CPPFLAGS (to >0) then arm/arm_init.c will fail + * to compile with an appropriate #error if ALIGNED_MEMORY has been turned + * off. + * + * Note that gcc-4.9 defines __ARM_NEON instead of __ARM_NEON__, so we + * check both variants. + */ +# if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \ + defined(PNG_ALIGNED_MEMORY_SUPPORTED) +# define PNG_ARM_NEON_OPT 2 +# else +# define PNG_ARM_NEON_OPT 0 +# endif +#endif + +#if PNG_ARM_NEON_OPT > 0 + /* NEON optimizations are to be at least considered by libpng, so enable the + * callbacks to do this. + */ +# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_neon + + /* By default the 'intrinsics' code in arm/filter_neon_intrinsics.c is used + * if possible - if __ARM_NEON__ is set and the compiler version is not known + * to be broken. This is controlled by PNG_ARM_NEON_IMPLEMENTATION which can + * be: + * + * 1 The intrinsics code (the default with __ARM_NEON__) + * 2 The hand coded assembler (the default without __ARM_NEON__) + * + * It is possible to set PNG_ARM_NEON_IMPLEMENTATION in CPPFLAGS, however + * this is *NOT* supported and may cease to work even after a minor revision + * to libpng. It *is* valid to do this for testing purposes, e.g. speed + * testing or a new compiler, but the results should be communicated to the + * libpng implementation list for incorporation in the next minor release. + */ +# ifndef PNG_ARM_NEON_IMPLEMENTATION +# if defined(__ARM_NEON__) || defined(__ARM_NEON) +# if defined(__clang__) + /* At present it is unknown by the libpng developers which versions + * of clang support the intrinsics, however some or perhaps all + * versions do not work with the assembler so this may be + * irrelevant, so just use the default (do nothing here.) + */ +# elif defined(__GNUC__) + /* GCC 4.5.4 NEON support is known to be broken. 4.6.3 is known to + * work, so if this *is* GCC, or G++, look for a version >4.5 + */ +# if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) +# define PNG_ARM_NEON_IMPLEMENTATION 2 +# endif /* no GNUC support */ +# endif /* __GNUC__ */ +# else /* !defined __ARM_NEON__ */ + /* The 'intrinsics' code simply won't compile without this -mfpu=neon: + */ +# define PNG_ARM_NEON_IMPLEMENTATION 2 +# endif /* __ARM_NEON__ */ +# endif /* !defined PNG_ARM_NEON_IMPLEMENTATION */ + +# ifndef PNG_ARM_NEON_IMPLEMENTATION + /* Use the intrinsics code by default. */ +# define PNG_ARM_NEON_IMPLEMENTATION 1 +# endif +#endif /* PNG_ARM_NEON_OPT > 0 */ + +/* Is this a build of a DLL where compilation of the object modules requires + * different preprocessor settings to those required for a simple library? If + * so PNG_BUILD_DLL must be set. + * + * If libpng is used inside a DLL but that DLL does not export the libpng APIs + * PNG_BUILD_DLL must not be set. To avoid the code below kicking in build a + * static library of libpng then link the DLL against that. + */ +#ifndef PNG_BUILD_DLL +# ifdef DLL_EXPORT + /* This is set by libtool when files are compiled for a DLL; libtool + * always compiles twice, even on systems where it isn't necessary. Set + * PNG_BUILD_DLL in case it is necessary: + */ +# define PNG_BUILD_DLL +# else +# ifdef _WINDLL + /* This is set by the Microsoft Visual Studio IDE in projects that + * build a DLL. It can't easily be removed from those projects (it + * isn't visible in the Visual Studio UI) so it is a fairly reliable + * indication that PNG_IMPEXP needs to be set to the DLL export + * attributes. + */ +# define PNG_BUILD_DLL +# else +# ifdef __DLL__ + /* This is set by the Borland C system when compiling for a DLL + * (as above.) + */ +# define PNG_BUILD_DLL +# else + /* Add additional compiler cases here. */ +# endif +# endif +# endif +#endif /* Setting PNG_BUILD_DLL if required */ + +/* See pngconf.h for more details: the builder of the library may set this on + * the command line to the right thing for the specific compilation system or it + * may be automagically set above (at present we know of no system where it does + * need to be set on the command line.) + * + * PNG_IMPEXP must be set here when building the library to prevent pngconf.h + * setting it to the "import" setting for a DLL build. + */ +#ifndef PNG_IMPEXP +# ifdef PNG_BUILD_DLL +# define PNG_IMPEXP PNG_DLL_EXPORT +# else + /* Not building a DLL, or the DLL doesn't require specific export + * definitions. + */ +# define PNG_IMPEXP +# endif +#endif + +/* No warnings for private or deprecated functions in the build: */ +#ifndef PNG_DEPRECATED +# define PNG_DEPRECATED +#endif +#ifndef PNG_PRIVATE +# define PNG_PRIVATE +#endif + +/* Symbol preprocessing support. + * + * To enable listing global, but internal, symbols the following macros should + * always be used to declare an extern data or function object in this file. + */ +#ifndef PNG_INTERNAL_DATA +# define PNG_INTERNAL_DATA(type, name, array) extern type name array +#endif + +#ifndef PNG_INTERNAL_FUNCTION +# define PNG_INTERNAL_FUNCTION(type, name, args, attributes)\ + extern PNG_FUNCTION(type, name, args, PNG_EMPTY attributes) +#endif + +#ifndef PNG_INTERNAL_CALLBACK +# define PNG_INTERNAL_CALLBACK(type, name, args, attributes)\ + extern PNG_FUNCTION(type, (PNGCBAPI name), args, PNG_EMPTY attributes) +#endif + +/* If floating or fixed point APIs are disabled they may still be compiled + * internally. To handle this make sure they are declared as the appropriate + * internal extern function (otherwise the symbol prefixing stuff won't work and + * the functions will be used without definitions.) + * + * NOTE: although all the API functions are declared here they are not all + * actually built! Because the declarations are still made it is necessary to + * fake out types that they depend on. + */ +#ifndef PNG_FP_EXPORT +# ifndef PNG_FLOATING_POINT_SUPPORTED +# define PNG_FP_EXPORT(ordinal, type, name, args)\ + PNG_INTERNAL_FUNCTION(type, name, args, PNG_EMPTY); +# ifndef PNG_VERSION_INFO_ONLY + typedef struct png_incomplete png_double; + typedef png_double* png_doublep; + typedef const png_double* png_const_doublep; + typedef png_double** png_doublepp; +# endif +# endif +#endif +#ifndef PNG_FIXED_EXPORT +# ifndef PNG_FIXED_POINT_SUPPORTED +# define PNG_FIXED_EXPORT(ordinal, type, name, args)\ + PNG_INTERNAL_FUNCTION(type, name, args, PNG_EMPTY); +# endif +#endif + +#include "png.h" + +/* pngconf.h does not set PNG_DLL_EXPORT unless it is required, so: */ +#ifndef PNG_DLL_EXPORT +# define PNG_DLL_EXPORT +#endif + +/* SECURITY and SAFETY: + * + * By default libpng is built without any internal limits on image size, + * individual heap (png_malloc) allocations or the total amount of memory used. + * If PNG_SAFE_LIMITS_SUPPORTED is defined, however, the limits below are used + * (unless individually overridden). These limits are believed to be fairly + * safe, but builders of secure systems should verify the values against the + * real system capabilities. + */ +#ifdef PNG_SAFE_LIMITS_SUPPORTED + /* 'safe' limits */ +# ifndef PNG_USER_WIDTH_MAX +# define PNG_USER_WIDTH_MAX 1000000 +# endif +# ifndef PNG_USER_HEIGHT_MAX +# define PNG_USER_HEIGHT_MAX 1000000 +# endif +# ifndef PNG_USER_CHUNK_CACHE_MAX +# define PNG_USER_CHUNK_CACHE_MAX 128 +# endif +# ifndef PNG_USER_CHUNK_MALLOC_MAX +# define PNG_USER_CHUNK_MALLOC_MAX 8000000 +# endif +#else + /* values for no limits */ +# ifndef PNG_USER_WIDTH_MAX +# define PNG_USER_WIDTH_MAX 0x7fffffff +# endif +# ifndef PNG_USER_HEIGHT_MAX +# define PNG_USER_HEIGHT_MAX 0x7fffffff +# endif +# ifndef PNG_USER_CHUNK_CACHE_MAX +# define PNG_USER_CHUNK_CACHE_MAX 0 +# endif +# ifndef PNG_USER_CHUNK_MALLOC_MAX +# define PNG_USER_CHUNK_MALLOC_MAX 0 +# endif +#endif + +/* Moved to pngpriv.h at libpng-1.5.0 */ +/* NOTE: some of these may have been used in external applications as + * these definitions were exposed in pngconf.h prior to 1.5. + */ + +/* If you are running on a machine where you cannot allocate more + * than 64K of memory at once, uncomment this. While libpng will not + * normally need that much memory in a chunk (unless you load up a very + * large file), zlib needs to know how big of a chunk it can use, and + * libpng thus makes sure to check any memory allocation to verify it + * will fit into memory. + * + * zlib provides 'MAXSEG_64K' which, if defined, indicates the + * same limit and pngconf.h (already included) sets the limit + * if certain operating systems are detected. + */ +#if defined(MAXSEG_64K) && !defined(PNG_MAX_MALLOC_64K) +# define PNG_MAX_MALLOC_64K +#endif + +#ifndef PNG_UNUSED +/* Unused formal parameter warnings are silenced using the following macro + * which is expected to have no bad effects on performance (optimizing + * compilers will probably remove it entirely). Note that if you replace + * it with something other than whitespace, you must include the terminating + * semicolon. + */ +# define PNG_UNUSED(param) (void)param; +#endif + +/* Just a little check that someone hasn't tried to define something + * contradictory. + */ +#if (PNG_ZBUF_SIZE > 65536L) && defined(PNG_MAX_MALLOC_64K) +# undef PNG_ZBUF_SIZE +# define PNG_ZBUF_SIZE 65536L +#endif + +/* If warnings or errors are turned off the code is disabled or redirected here. + * From 1.5.4 functions have been added to allow very limited formatting of + * error and warning messages - this code will also be disabled here. + */ +#ifdef PNG_WARNINGS_SUPPORTED +# define PNG_WARNING_PARAMETERS(p) png_warning_parameters p; +#else +# define png_warning_parameter(p,number,string) ((void)0) +# define png_warning_parameter_unsigned(p,number,format,value) ((void)0) +# define png_warning_parameter_signed(p,number,format,value) ((void)0) +# define png_formatted_warning(pp,p,message) ((void)(pp)) +# define PNG_WARNING_PARAMETERS(p) +#endif +#ifndef PNG_ERROR_TEXT_SUPPORTED +# define png_fixed_error(s1,s2) png_err(s1) +#endif + +/* C allows up-casts from (void*) to any pointer and (const void*) to any + * pointer to a const object. C++ regards this as a type error and requires an + * explicit, static, cast and provides the static_cast<> rune to ensure that + * const is not cast away. + */ +#ifdef __cplusplus +# define png_voidcast(type, value) static_cast(value) +# define png_constcast(type, value) const_cast(value) +# define png_aligncast(type, value) \ + static_cast(static_cast(value)) +# define png_aligncastconst(type, value) \ + static_cast(static_cast(value)) +#else +# define png_voidcast(type, value) (value) +# define png_constcast(type, value) ((type)(value)) +# define png_aligncast(type, value) ((void*)(value)) +# define png_aligncastconst(type, value) ((const void*)(value)) +#endif /* __cplusplus */ + +/* Some fixed point APIs are still required even if not exported because + * they get used by the corresponding floating point APIs. This magic + * deals with this: + */ +#ifdef PNG_FIXED_POINT_SUPPORTED +# define PNGFAPI PNGAPI +#else +# define PNGFAPI /* PRIVATE */ +#endif + +#ifndef PNG_VERSION_INFO_ONLY +/* Other defines specific to compilers can go here. Try to keep + * them inside an appropriate ifdef/endif pair for portability. + */ +#if defined(PNG_FLOATING_POINT_SUPPORTED) ||\ + defined(PNG_FLOATING_ARITHMETIC_SUPPORTED) + /* png.c requires the following ANSI-C constants if the conversion of + * floating point to ASCII is implemented therein: + * + * DBL_DIG Maximum number of decimal digits (can be set to any constant) + * DBL_MIN Smallest normalized fp number (can be set to an arbitrary value) + * DBL_MAX Maximum floating point number (can be set to an arbitrary value) + */ +# include + +# if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \ + defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC) + /* We need to check that hasn't already been included earlier + * as it seems it doesn't agree with , yet we should really use + * if possible. + */ +# if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__) +# include +# endif +# else +# include +# endif +# if defined(_AMIGA) && defined(__SASC) && defined(_M68881) + /* Amiga SAS/C: We must include builtin FPU functions when compiling using + * MATH=68881 + */ +# include +# endif +#endif + +/* This provides the non-ANSI (far) memory allocation routines. */ +#if defined(__TURBOC__) && defined(__MSDOS__) +# include +# include +#endif + +#if defined(WIN32) || defined(_Windows) || defined(_WINDOWS) || \ + defined(_WIN32) || defined(__WIN32__) +# include /* defines _WINDOWS_ macro */ +#endif +#endif /* PNG_VERSION_INFO_ONLY */ + +/* Moved here around 1.5.0beta36 from pngconf.h */ +/* Users may want to use these so they are not private. Any library + * functions that are passed far data must be model-independent. + */ + +/* Memory model/platform independent fns */ +#ifndef PNG_ABORT +# ifdef _WINDOWS_ +# define PNG_ABORT() ExitProcess(0) +# else +# define PNG_ABORT() abort() +# endif +#endif + +/* These macros may need to be architecture dependent. */ +#define PNG_ALIGN_NONE 0 /* do not use data alignment */ +#define PNG_ALIGN_ALWAYS 1 /* assume unaligned accesses are OK */ +#ifdef offsetof +# define PNG_ALIGN_OFFSET 2 /* use offsetof to determine alignment */ +#else +# define PNG_ALIGN_OFFSET -1 /* prevent the use of this */ +#endif +#define PNG_ALIGN_SIZE 3 /* use sizeof to determine alignment */ + +#ifndef PNG_ALIGN_TYPE + /* Default to using aligned access optimizations and requiring alignment to a + * multiple of the data type size. Override in a compiler specific fashion + * if necessary by inserting tests here: + */ +# define PNG_ALIGN_TYPE PNG_ALIGN_SIZE +#endif + +#if PNG_ALIGN_TYPE == PNG_ALIGN_SIZE + /* This is used because in some compiler implementations non-aligned + * structure members are supported, so the offsetof approach below fails. + * Set PNG_ALIGN_SIZE=0 for compiler combinations where unaligned access + * is good for performance. Do not do this unless you have tested the result + * and understand it. + */ +# define png_alignof(type) (sizeof (type)) +#else +# if PNG_ALIGN_TYPE == PNG_ALIGN_OFFSET +# define png_alignof(type) offsetof(struct{char c; type t;}, t) +# else +# if PNG_ALIGN_TYPE == PNG_ALIGN_ALWAYS +# define png_alignof(type) (1) +# endif + /* Else leave png_alignof undefined to prevent use thereof */ +# endif +#endif + +/* This implicitly assumes alignment is always to a power of 2. */ +#ifdef png_alignof +# define png_isaligned(ptr, type)\ + ((((const char*)ptr-(const char*)0) & (png_alignof(type)-1)) == 0) +#else +# define png_isaligned(ptr, type) 0 +#endif + +/* End of memory model/platform independent support */ +/* End of 1.5.0beta36 move from pngconf.h */ + +/* CONSTANTS and UTILITY MACROS + * These are used internally by libpng and not exposed in the API + */ + +/* Various modes of operation. Note that after an init, mode is set to + * zero automatically when the structure is created. Three of these + * are defined in png.h because they need to be visible to applications + * that call png_set_unknown_chunk(). + */ +/* #define PNG_HAVE_IHDR 0x01 (defined in png.h) */ +/* #define PNG_HAVE_PLTE 0x02 (defined in png.h) */ +#define PNG_HAVE_IDAT 0x04 +/* #define PNG_AFTER_IDAT 0x08 (defined in png.h) */ +#define PNG_HAVE_IEND 0x10 + /* 0x20 (unused) */ + /* 0x40 (unused) */ + /* 0x80 (unused) */ +#define PNG_HAVE_CHUNK_HEADER 0x100 +#define PNG_WROTE_tIME 0x200 +#define PNG_WROTE_INFO_BEFORE_PLTE 0x400 +#define PNG_BACKGROUND_IS_GRAY 0x800 +#define PNG_HAVE_PNG_SIGNATURE 0x1000 +#define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */ + /* 0x4000 (unused) */ +#define PNG_IS_READ_STRUCT 0x8000 /* Else is a write struct */ + +/* Flags for the transformations the PNG library does on the image data */ +#define PNG_BGR 0x0001 +#define PNG_INTERLACE 0x0002 +#define PNG_PACK 0x0004 +#define PNG_SHIFT 0x0008 +#define PNG_SWAP_BYTES 0x0010 +#define PNG_INVERT_MONO 0x0020 +#define PNG_QUANTIZE 0x0040 +#define PNG_COMPOSE 0x0080 /* Was PNG_BACKGROUND */ +#define PNG_BACKGROUND_EXPAND 0x0100 +#define PNG_EXPAND_16 0x0200 /* Added to libpng 1.5.2 */ +#define PNG_16_TO_8 0x0400 /* Becomes 'chop' in 1.5.4 */ +#define PNG_RGBA 0x0800 +#define PNG_EXPAND 0x1000 +#define PNG_GAMMA 0x2000 +#define PNG_GRAY_TO_RGB 0x4000 +#define PNG_FILLER 0x8000 +#define PNG_PACKSWAP 0x10000 +#define PNG_SWAP_ALPHA 0x20000 +#define PNG_STRIP_ALPHA 0x40000 +#define PNG_INVERT_ALPHA 0x80000 +#define PNG_USER_TRANSFORM 0x100000 +#define PNG_RGB_TO_GRAY_ERR 0x200000 +#define PNG_RGB_TO_GRAY_WARN 0x400000 +#define PNG_RGB_TO_GRAY 0x600000 /* two bits, RGB_TO_GRAY_ERR|WARN */ +#define PNG_ENCODE_ALPHA 0x800000 /* Added to libpng-1.5.4 */ +#define PNG_ADD_ALPHA 0x1000000 /* Added to libpng-1.2.7 */ +#define PNG_EXPAND_tRNS 0x2000000 /* Added to libpng-1.2.9 */ +#define PNG_SCALE_16_TO_8 0x4000000 /* Added to libpng-1.5.4 */ + /* 0x8000000 unused */ + /* 0x10000000 unused */ + /* 0x20000000 unused */ + /* 0x40000000 unused */ +/* Flags for png_create_struct */ +#define PNG_STRUCT_PNG 0x0001 +#define PNG_STRUCT_INFO 0x0002 + +/* Scaling factor for filter heuristic weighting calculations */ +#define PNG_WEIGHT_FACTOR (1<<(PNG_WEIGHT_SHIFT)) +#define PNG_COST_FACTOR (1<<(PNG_COST_SHIFT)) + +/* Flags for the png_ptr->flags rather than declaring a byte for each one */ +#define PNG_FLAG_ZLIB_CUSTOM_STRATEGY 0x0001 +#define PNG_FLAG_ZSTREAM_INITIALIZED 0x0002 /* Added to libpng-1.6.0 */ + /* 0x0004 unused */ +#define PNG_FLAG_ZSTREAM_ENDED 0x0008 /* Added to libpng-1.6.0 */ + /* 0x0010 unused */ + /* 0x0020 unused */ +#define PNG_FLAG_ROW_INIT 0x0040 +#define PNG_FLAG_FILLER_AFTER 0x0080 +#define PNG_FLAG_CRC_ANCILLARY_USE 0x0100 +#define PNG_FLAG_CRC_ANCILLARY_NOWARN 0x0200 +#define PNG_FLAG_CRC_CRITICAL_USE 0x0400 +#define PNG_FLAG_CRC_CRITICAL_IGNORE 0x0800 +#define PNG_FLAG_ASSUME_sRGB 0x1000 /* Added to libpng-1.5.4 */ +#define PNG_FLAG_OPTIMIZE_ALPHA 0x2000 /* Added to libpng-1.5.4 */ +#define PNG_FLAG_DETECT_UNINITIALIZED 0x4000 /* Added to libpng-1.5.4 */ +/* #define PNG_FLAG_KEEP_UNKNOWN_CHUNKS 0x8000 */ +/* #define PNG_FLAG_KEEP_UNSAFE_CHUNKS 0x10000 */ +#define PNG_FLAG_LIBRARY_MISMATCH 0x20000 +#define PNG_FLAG_STRIP_ERROR_NUMBERS 0x40000 +#define PNG_FLAG_STRIP_ERROR_TEXT 0x80000 +#define PNG_FLAG_BENIGN_ERRORS_WARN 0x100000 /* Added to libpng-1.4.0 */ +#define PNG_FLAG_APP_WARNINGS_WARN 0x200000 /* Added to libpng-1.6.0 */ +#define PNG_FLAG_APP_ERRORS_WARN 0x400000 /* Added to libpng-1.6.0 */ + /* 0x800000 unused */ + /* 0x1000000 unused */ + /* 0x2000000 unused */ + /* 0x4000000 unused */ + /* 0x8000000 unused */ + /* 0x10000000 unused */ + /* 0x20000000 unused */ + /* 0x40000000 unused */ + +#define PNG_FLAG_CRC_ANCILLARY_MASK (PNG_FLAG_CRC_ANCILLARY_USE | \ + PNG_FLAG_CRC_ANCILLARY_NOWARN) + +#define PNG_FLAG_CRC_CRITICAL_MASK (PNG_FLAG_CRC_CRITICAL_USE | \ + PNG_FLAG_CRC_CRITICAL_IGNORE) + +#define PNG_FLAG_CRC_MASK (PNG_FLAG_CRC_ANCILLARY_MASK | \ + PNG_FLAG_CRC_CRITICAL_MASK) + +/* Save typing and make code easier to understand */ + +#define PNG_COLOR_DIST(c1, c2) (abs((int)((c1).red) - (int)((c2).red)) + \ + abs((int)((c1).green) - (int)((c2).green)) + \ + abs((int)((c1).blue) - (int)((c2).blue))) + +/* Added to libpng-1.6.0: scale a 16-bit value in the range 0..65535 to 0..255 + * by dividing by 257 *with rounding*. This macro is exact for the given range. + * See the discourse in pngrtran.c png_do_scale_16_to_8. The values in the + * macro were established by experiment (modifying the added value). The macro + * has a second variant that takes a value already scaled by 255 and divides by + * 65535 - this has a maximum error of .502. Over the range 0..65535*65535 it + * only gives off-by-one errors and only for 0.5% (1 in 200) of the values. + */ +#define PNG_DIV65535(v24) (((v24) + 32895) >> 16) +#define PNG_DIV257(v16) PNG_DIV65535((png_uint_32)(v16) * 255) + +/* Added to libpng-1.2.6 JB */ +#define PNG_ROWBYTES(pixel_bits, width) \ + ((pixel_bits) >= 8 ? \ + ((png_size_t)(width) * (((png_size_t)(pixel_bits)) >> 3)) : \ + (( ((png_size_t)(width) * ((png_size_t)(pixel_bits))) + 7) >> 3) ) + +/* PNG_OUT_OF_RANGE returns true if value is outside the range + * ideal-delta..ideal+delta. Each argument is evaluated twice. + * "ideal" and "delta" should be constants, normally simple + * integers, "value" a variable. Added to libpng-1.2.6 JB + */ +#define PNG_OUT_OF_RANGE(value, ideal, delta) \ + ( (value) < (ideal)-(delta) || (value) > (ideal)+(delta) ) + +/* Conversions between fixed and floating point, only defined if + * required (to make sure the code doesn't accidentally use float + * when it is supposedly disabled.) + */ +#ifdef PNG_FLOATING_POINT_SUPPORTED +/* The floating point conversion can't overflow, though it can and + * does lose accuracy relative to the original fixed point value. + * In practice this doesn't matter because png_fixed_point only + * stores numbers with very low precision. The png_ptr and s + * arguments are unused by default but are there in case error + * checking becomes a requirement. + */ +#define png_float(png_ptr, fixed, s) (.00001 * (fixed)) + +/* The fixed point conversion performs range checking and evaluates + * its argument multiple times, so must be used with care. The + * range checking uses the PNG specification values for a signed + * 32 bit fixed point value except that the values are deliberately + * rounded-to-zero to an integral value - 21474 (21474.83 is roughly + * (2^31-1) * 100000). 's' is a string that describes the value being + * converted. + * + * NOTE: this macro will raise a png_error if the range check fails, + * therefore it is normally only appropriate to use this on values + * that come from API calls or other sources where an out of range + * error indicates a programming error, not a data error! + * + * NOTE: by default this is off - the macro is not used - because the + * function call saves a lot of code. + */ +#ifdef PNG_FIXED_POINT_MACRO_SUPPORTED +#define png_fixed(png_ptr, fp, s) ((fp) <= 21474 && (fp) >= -21474 ?\ + ((png_fixed_point)(100000 * (fp))) : (png_fixed_error(png_ptr, s),0)) +#endif +/* else the corresponding function is defined below, inside the scope of the + * cplusplus test. + */ +#endif + +/* Constants for known chunk types. If you need to add a chunk, define the name + * here. For historical reasons these constants have the form png_; i.e. + * the prefix is lower case. Please use decimal values as the parameters to + * match the ISO PNG specification and to avoid relying on the C locale + * interpretation of character values. + * + * Prior to 1.5.6 these constants were strings, as of 1.5.6 png_uint_32 values + * are computed and a new macro (PNG_STRING_FROM_CHUNK) added to allow a string + * to be generated if required. + * + * PNG_32b correctly produces a value shifted by up to 24 bits, even on + * architectures where (int) is only 16 bits. + */ +#define PNG_32b(b,s) ((png_uint_32)(b) << (s)) +#define PNG_U32(b1,b2,b3,b4) \ + (PNG_32b(b1,24) | PNG_32b(b2,16) | PNG_32b(b3,8) | PNG_32b(b4,0)) + +/* Constants for known chunk types. + * + * MAINTAINERS: If you need to add a chunk, define the name here. + * For historical reasons these constants have the form png_; i.e. + * the prefix is lower case. Please use decimal values as the parameters to + * match the ISO PNG specification and to avoid relying on the C locale + * interpretation of character values. Please keep the list sorted. + * + * Notice that PNG_U32 is used to define a 32-bit value for the 4 byte chunk + * type. In fact the specification does not express chunk types this way, + * however using a 32-bit value means that the chunk type can be read from the + * stream using exactly the same code as used for a 32-bit unsigned value and + * can be examined far more efficiently (using one arithmetic compare). + * + * Prior to 1.5.6 the chunk type constants were expressed as C strings. The + * libpng API still uses strings for 'unknown' chunks and a macro, + * PNG_STRING_FROM_CHUNK, allows a string to be generated if required. Notice + * that for portable code numeric values must still be used; the string "IHDR" + * is not portable and neither is PNG_U32('I', 'H', 'D', 'R'). + * + * In 1.7.0 the definitions will be made public in png.h to avoid having to + * duplicate the same definitions in application code. + */ +#define png_IDAT PNG_U32( 73, 68, 65, 84) +#define png_IEND PNG_U32( 73, 69, 78, 68) +#define png_IHDR PNG_U32( 73, 72, 68, 82) +#define png_PLTE PNG_U32( 80, 76, 84, 69) +#define png_bKGD PNG_U32( 98, 75, 71, 68) +#define png_cHRM PNG_U32( 99, 72, 82, 77) +#define png_fRAc PNG_U32(102, 82, 65, 99) /* registered, not defined */ +#define png_gAMA PNG_U32(103, 65, 77, 65) +#define png_gIFg PNG_U32(103, 73, 70, 103) +#define png_gIFt PNG_U32(103, 73, 70, 116) /* deprecated */ +#define png_gIFx PNG_U32(103, 73, 70, 120) +#define png_hIST PNG_U32(104, 73, 83, 84) +#define png_iCCP PNG_U32(105, 67, 67, 80) +#define png_iTXt PNG_U32(105, 84, 88, 116) +#define png_oFFs PNG_U32(111, 70, 70, 115) +#define png_pCAL PNG_U32(112, 67, 65, 76) +#define png_pHYs PNG_U32(112, 72, 89, 115) +#define png_sBIT PNG_U32(115, 66, 73, 84) +#define png_sCAL PNG_U32(115, 67, 65, 76) +#define png_sPLT PNG_U32(115, 80, 76, 84) +#define png_sRGB PNG_U32(115, 82, 71, 66) +#define png_sTER PNG_U32(115, 84, 69, 82) +#define png_tEXt PNG_U32(116, 69, 88, 116) +#define png_tIME PNG_U32(116, 73, 77, 69) +#define png_tRNS PNG_U32(116, 82, 78, 83) +#define png_zTXt PNG_U32(122, 84, 88, 116) + +/* The following will work on (signed char*) strings, whereas the get_uint_32 + * macro will fail on top-bit-set values because of the sign extension. + */ +#define PNG_CHUNK_FROM_STRING(s)\ + PNG_U32(0xff&(s)[0], 0xff&(s)[1], 0xff&(s)[2], 0xff&(s)[3]) + +/* This uses (char), not (png_byte) to avoid warnings on systems where (char) is + * signed and the argument is a (char[]) This macro will fail miserably on + * systems where (char) is more than 8 bits. + */ +#define PNG_STRING_FROM_CHUNK(s,c)\ + (void)(((char*)(s))[0]=(char)((c)>>24), ((char*)(s))[1]=(char)((c)>>16),\ + ((char*)(s))[2]=(char)((c)>>8), ((char*)(s))[3]=(char)((c))) + +/* Do the same but terminate with a null character. */ +#define PNG_CSTRING_FROM_CHUNK(s,c)\ + (void)(PNG_STRING_FROM_CHUNK(s,c), ((char*)(s))[4] = 0) + +/* Test on flag values as defined in the spec (section 5.4): */ +#define PNG_CHUNK_ANCILLARY(c) (1 & ((c) >> 29)) +#define PNG_CHUNK_CRITICAL(c) (!PNG_CHUNK_ANCILLARY(c)) +#define PNG_CHUNK_PRIVATE(c) (1 & ((c) >> 21)) +#define PNG_CHUNK_RESERVED(c) (1 & ((c) >> 13)) +#define PNG_CHUNK_SAFE_TO_COPY(c) (1 & ((c) >> 5)) + +/* Gamma values (new at libpng-1.5.4): */ +#define PNG_GAMMA_MAC_OLD 151724 /* Assume '1.8' is really 2.2/1.45! */ +#define PNG_GAMMA_MAC_INVERSE 65909 +#define PNG_GAMMA_sRGB_INVERSE 45455 + +/* Almost everything below is C specific; the #defines above can be used in + * non-C code (so long as it is C-preprocessed) the rest of this stuff cannot. + */ +#ifndef PNG_VERSION_INFO_ONLY + +#include "pngstruct.h" +#include "pnginfo.h" + +/* Validate the include paths - the include path used to generate pnglibconf.h + * must match that used in the build, or we must be using pnglibconf.h.prebuilt: + */ +#if PNG_ZLIB_VERNUM != 0 && PNG_ZLIB_VERNUM != ZLIB_VERNUM +# error ZLIB_VERNUM != PNG_ZLIB_VERNUM \ + "-I (include path) error: see the notes in pngpriv.h" + /* This means that when pnglibconf.h was built the copy of zlib.h that it + * used is not the same as the one being used here. Because the build of + * libpng makes decisions to use inflateInit2 and inflateReset2 based on the + * zlib version number and because this affects handling of certain broken + * PNG files the -I directives must match. + * + * The most likely explanation is that you passed a -I in CFLAGS. This will + * not work; all the preprocessor directories and in particular all the -I + * directives must be in CPPFLAGS. + */ +#endif + +/* This is used for 16 bit gamma tables -- only the top level pointers are + * const; this could be changed: + */ +typedef const png_uint_16p * png_const_uint_16pp; + +/* Added to libpng-1.5.7: sRGB conversion tables */ +#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) ||\ + defined(PNG_SIMPLIFIED_WRITE_SUPPORTED) +#ifdef PNG_SIMPLIFIED_READ_SUPPORTED +PNG_INTERNAL_DATA(const png_uint_16, png_sRGB_table, [256]); + /* Convert from an sRGB encoded value 0..255 to a 16-bit linear value, + * 0..65535. This table gives the closest 16-bit answers (no errors). + */ +#endif + +PNG_INTERNAL_DATA(const png_uint_16, png_sRGB_base, [512]); +PNG_INTERNAL_DATA(const png_byte, png_sRGB_delta, [512]); + +#define PNG_sRGB_FROM_LINEAR(linear) ((png_byte)((png_sRGB_base[(linear)>>15] +\ + ((((linear)&0x7fff)*png_sRGB_delta[(linear)>>15])>>12)) >> 8)) + /* Given a value 'linear' in the range 0..255*65535 calculate the 8-bit sRGB + * encoded value with maximum error 0.646365. Note that the input is not a + * 16-bit value; it has been multiplied by 255! */ +#endif /* PNG_SIMPLIFIED_READ/WRITE */ + + +/* Inhibit C++ name-mangling for libpng functions but not for system calls. */ +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/* Internal functions; these are not exported from a DLL however because they + * are used within several of the C source files they have to be C extern. + * + * All of these functions must be declared with PNG_INTERNAL_FUNCTION. + */ + +/* Zlib support */ +#define PNG_UNEXPECTED_ZLIB_RETURN (-7) +PNG_INTERNAL_FUNCTION(void, png_zstream_error,(png_structrp png_ptr, int ret), + PNG_EMPTY); + /* Used by the zlib handling functions to ensure that z_stream::msg is always + * set before they return. + */ + +#ifdef PNG_WRITE_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_free_buffer_list,(png_structrp png_ptr, + png_compression_bufferp *list),PNG_EMPTY); + /* Free the buffer list used by the compressed write code. */ +#endif + +#if defined(PNG_FLOATING_POINT_SUPPORTED) && \ + !defined(PNG_FIXED_POINT_MACRO_SUPPORTED) && \ + (defined(PNG_gAMA_SUPPORTED) || defined(PNG_cHRM_SUPPORTED) || \ + defined(PNG_sCAL_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) || \ + defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)) || \ + (defined(PNG_sCAL_SUPPORTED) && \ + defined(PNG_FLOATING_ARITHMETIC_SUPPORTED)) +PNG_INTERNAL_FUNCTION(png_fixed_point,png_fixed,(png_const_structrp png_ptr, + double fp, png_const_charp text),PNG_EMPTY); +#endif + +/* Check the user version string for compatibility, returns false if the version + * numbers aren't compatible. + */ +PNG_INTERNAL_FUNCTION(int,png_user_version_check,(png_structrp png_ptr, + png_const_charp user_png_ver),PNG_EMPTY); + +/* Internal base allocator - no messages, NULL on failure to allocate. This + * does, however, call the application provided allocator and that could call + * png_error (although that would be a bug in the application implementation.) + */ +PNG_INTERNAL_FUNCTION(png_voidp,png_malloc_base,(png_const_structrp png_ptr, + png_alloc_size_t size),PNG_ALLOCATED); + +#if defined(PNG_TEXT_SUPPORTED) || defined(PNG_sPLT_SUPPORTED) ||\ + defined(PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED) +/* Internal array allocator, outputs no error or warning messages on failure, + * just returns NULL. + */ +PNG_INTERNAL_FUNCTION(png_voidp,png_malloc_array,(png_const_structrp png_ptr, + int nelements, size_t element_size),PNG_ALLOCATED); + +/* The same but an existing array is extended by add_elements. This function + * also memsets the new elements to 0 and copies the old elements. The old + * array is not freed or altered. + */ +PNG_INTERNAL_FUNCTION(png_voidp,png_realloc_array,(png_const_structrp png_ptr, + png_const_voidp array, int old_elements, int add_elements, + size_t element_size),PNG_ALLOCATED); +#endif /* text, sPLT or unknown chunks */ + +/* Magic to create a struct when there is no struct to call the user supplied + * memory allocators. Because error handling has not been set up the memory + * handlers can't safely call png_error, but this is an obscure and undocumented + * restriction so libpng has to assume that the 'free' handler, at least, might + * call png_error. + */ +PNG_INTERNAL_FUNCTION(png_structp,png_create_png_struct, + (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, + png_error_ptr warn_fn, png_voidp mem_ptr, png_malloc_ptr malloc_fn, + png_free_ptr free_fn),PNG_ALLOCATED); + +/* Free memory from internal libpng struct */ +PNG_INTERNAL_FUNCTION(void,png_destroy_png_struct,(png_structrp png_ptr), + PNG_EMPTY); + +/* Free an allocated jmp_buf (always succeeds) */ +PNG_INTERNAL_FUNCTION(void,png_free_jmpbuf,(png_structrp png_ptr),PNG_EMPTY); + +/* Function to allocate memory for zlib. PNGAPI is disallowed. */ +PNG_INTERNAL_FUNCTION(voidpf,png_zalloc,(voidpf png_ptr, uInt items, uInt size), + PNG_ALLOCATED); + +/* Function to free memory for zlib. PNGAPI is disallowed. */ +PNG_INTERNAL_FUNCTION(void,png_zfree,(voidpf png_ptr, voidpf ptr),PNG_EMPTY); + +/* Next four functions are used internally as callbacks. PNGCBAPI is required + * but not PNG_EXPORT. PNGAPI added at libpng version 1.2.3, changed to + * PNGCBAPI at 1.5.0 + */ + +PNG_INTERNAL_FUNCTION(void PNGCBAPI,png_default_read_data,(png_structp png_ptr, + png_bytep data, png_size_t length),PNG_EMPTY); + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +PNG_INTERNAL_FUNCTION(void PNGCBAPI,png_push_fill_buffer,(png_structp png_ptr, + png_bytep buffer, png_size_t length),PNG_EMPTY); +#endif + +PNG_INTERNAL_FUNCTION(void PNGCBAPI,png_default_write_data,(png_structp png_ptr, + png_bytep data, png_size_t length),PNG_EMPTY); + +#ifdef PNG_WRITE_FLUSH_SUPPORTED +# ifdef PNG_STDIO_SUPPORTED +PNG_INTERNAL_FUNCTION(void PNGCBAPI,png_default_flush,(png_structp png_ptr), + PNG_EMPTY); +# endif +#endif + +/* Reset the CRC variable */ +PNG_INTERNAL_FUNCTION(void,png_reset_crc,(png_structrp png_ptr),PNG_EMPTY); + +/* Write the "data" buffer to whatever output you are using */ +PNG_INTERNAL_FUNCTION(void,png_write_data,(png_structrp png_ptr, + png_const_bytep data, png_size_t length),PNG_EMPTY); + +/* Read and check the PNG file signature */ +PNG_INTERNAL_FUNCTION(void,png_read_sig,(png_structrp png_ptr, + png_inforp info_ptr),PNG_EMPTY); + +/* Read the chunk header (length + type name) */ +PNG_INTERNAL_FUNCTION(png_uint_32,png_read_chunk_header,(png_structrp png_ptr), + PNG_EMPTY); + +/* Read data from whatever input you are using into the "data" buffer */ +PNG_INTERNAL_FUNCTION(void,png_read_data,(png_structrp png_ptr, png_bytep data, + png_size_t length),PNG_EMPTY); + +/* Read bytes into buf, and update png_ptr->crc */ +PNG_INTERNAL_FUNCTION(void,png_crc_read,(png_structrp png_ptr, png_bytep buf, + png_uint_32 length),PNG_EMPTY); + +/* Read "skip" bytes, read the file crc, and (optionally) verify png_ptr->crc */ +PNG_INTERNAL_FUNCTION(int,png_crc_finish,(png_structrp png_ptr, + png_uint_32 skip),PNG_EMPTY); + +/* Read the CRC from the file and compare it to the libpng calculated CRC */ +PNG_INTERNAL_FUNCTION(int,png_crc_error,(png_structrp png_ptr),PNG_EMPTY); + +/* Calculate the CRC over a section of data. Note that we are only + * passing a maximum of 64K on systems that have this as a memory limit, + * since this is the maximum buffer size we can specify. + */ +PNG_INTERNAL_FUNCTION(void,png_calculate_crc,(png_structrp png_ptr, + png_const_bytep ptr, png_size_t length),PNG_EMPTY); + +#ifdef PNG_WRITE_FLUSH_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_flush,(png_structrp png_ptr),PNG_EMPTY); +#endif + +/* Write various chunks */ + +/* Write the IHDR chunk, and update the png_struct with the necessary + * information. + */ +PNG_INTERNAL_FUNCTION(void,png_write_IHDR,(png_structrp png_ptr, + png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, + int compression_method, int filter_method, int interlace_method),PNG_EMPTY); + +PNG_INTERNAL_FUNCTION(void,png_write_PLTE,(png_structrp png_ptr, + png_const_colorp palette, png_uint_32 num_pal),PNG_EMPTY); + +PNG_INTERNAL_FUNCTION(void,png_compress_IDAT,(png_structrp png_ptr, + png_const_bytep row_data, png_alloc_size_t row_data_length, int flush), + PNG_EMPTY); + +PNG_INTERNAL_FUNCTION(void,png_write_IEND,(png_structrp png_ptr),PNG_EMPTY); + +#ifdef PNG_WRITE_gAMA_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_write_gAMA_fixed,(png_structrp png_ptr, + png_fixed_point file_gamma),PNG_EMPTY); +#endif + +#ifdef PNG_WRITE_sBIT_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_write_sBIT,(png_structrp png_ptr, + png_const_color_8p sbit, int color_type),PNG_EMPTY); +#endif + +#ifdef PNG_WRITE_cHRM_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_write_cHRM_fixed,(png_structrp png_ptr, + const png_xy *xy), PNG_EMPTY); + /* The xy value must have been previously validated */ +#endif + +#ifdef PNG_WRITE_sRGB_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_write_sRGB,(png_structrp png_ptr, + int intent),PNG_EMPTY); +#endif + +#ifdef PNG_WRITE_iCCP_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_write_iCCP,(png_structrp png_ptr, + png_const_charp name, png_const_bytep profile), PNG_EMPTY); + /* The profile must have been previously validated for correctness, the + * length comes from the first four bytes. Only the base, deflate, + * compression is supported. + */ +#endif + +#ifdef PNG_WRITE_sPLT_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_write_sPLT,(png_structrp png_ptr, + png_const_sPLT_tp palette),PNG_EMPTY); +#endif + +#ifdef PNG_WRITE_tRNS_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_write_tRNS,(png_structrp png_ptr, + png_const_bytep trans, png_const_color_16p values, int number, + int color_type),PNG_EMPTY); +#endif + +#ifdef PNG_WRITE_bKGD_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_write_bKGD,(png_structrp png_ptr, + png_const_color_16p values, int color_type),PNG_EMPTY); +#endif + +#ifdef PNG_WRITE_hIST_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_write_hIST,(png_structrp png_ptr, + png_const_uint_16p hist, int num_hist),PNG_EMPTY); +#endif + +/* Chunks that have keywords */ +#ifdef PNG_WRITE_tEXt_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_write_tEXt,(png_structrp png_ptr, + png_const_charp key, png_const_charp text, png_size_t text_len),PNG_EMPTY); +#endif + +#ifdef PNG_WRITE_zTXt_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_write_zTXt,(png_structrp png_ptr, png_const_charp + key, png_const_charp text, png_size_t text_len, int compression),PNG_EMPTY); +#endif + +#ifdef PNG_WRITE_iTXt_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_write_iTXt,(png_structrp png_ptr, + int compression, png_const_charp key, png_const_charp lang, + png_const_charp lang_key, png_const_charp text),PNG_EMPTY); +#endif + +#ifdef PNG_TEXT_SUPPORTED /* Added at version 1.0.14 and 1.2.4 */ +PNG_INTERNAL_FUNCTION(int,png_set_text_2,(png_const_structrp png_ptr, + png_inforp info_ptr, png_const_textp text_ptr, int num_text),PNG_EMPTY); +#endif + +#ifdef PNG_WRITE_oFFs_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_write_oFFs,(png_structrp png_ptr, + png_int_32 x_offset, png_int_32 y_offset, int unit_type),PNG_EMPTY); +#endif + +#ifdef PNG_WRITE_pCAL_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_write_pCAL,(png_structrp png_ptr, + png_charp purpose, png_int_32 X0, png_int_32 X1, int type, int nparams, + png_const_charp units, png_charpp params),PNG_EMPTY); +#endif + +#ifdef PNG_WRITE_pHYs_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_write_pHYs,(png_structrp png_ptr, + png_uint_32 x_pixels_per_unit, png_uint_32 y_pixels_per_unit, + int unit_type),PNG_EMPTY); +#endif + +#ifdef PNG_WRITE_tIME_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_write_tIME,(png_structrp png_ptr, + png_const_timep mod_time),PNG_EMPTY); +#endif + +#ifdef PNG_WRITE_sCAL_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_write_sCAL_s,(png_structrp png_ptr, + int unit, png_const_charp width, png_const_charp height),PNG_EMPTY); +#endif + +/* Called when finished processing a row of data */ +PNG_INTERNAL_FUNCTION(void,png_write_finish_row,(png_structrp png_ptr), + PNG_EMPTY); + +/* Internal use only. Called before first row of data */ +PNG_INTERNAL_FUNCTION(void,png_write_start_row,(png_structrp png_ptr), + PNG_EMPTY); + +/* Combine a row of data, dealing with alpha, etc. if requested. 'row' is an + * array of png_ptr->width pixels. If the image is not interlaced or this + * is the final pass this just does a memcpy, otherwise the "display" flag + * is used to determine whether to copy pixels that are not in the current pass. + * + * Because 'png_do_read_interlace' (below) replicates pixels this allows this + * function to achieve the documented 'blocky' appearance during interlaced read + * if display is 1 and the 'sparkle' appearance, where existing pixels in 'row' + * are not changed if they are not in the current pass, when display is 0. + * + * 'display' must be 0 or 1, otherwise the memcpy will be done regardless. + * + * The API always reads from the png_struct row buffer and always assumes that + * it is full width (png_do_read_interlace has already been called.) + * + * This function is only ever used to write to row buffers provided by the + * caller of the relevant libpng API and the row must have already been + * transformed by the read transformations. + * + * The PNG_USE_COMPILE_TIME_MASKS option causes generation of pre-computed + * bitmasks for use within the code, otherwise runtime generated masks are used. + * The default is compile time masks. + */ +#ifndef PNG_USE_COMPILE_TIME_MASKS +# define PNG_USE_COMPILE_TIME_MASKS 1 +#endif +PNG_INTERNAL_FUNCTION(void,png_combine_row,(png_const_structrp png_ptr, + png_bytep row, int display),PNG_EMPTY); + +#ifdef PNG_READ_INTERLACING_SUPPORTED +/* Expand an interlaced row: the 'row_info' describes the pass data that has + * been read in and must correspond to the pixels in 'row', the pixels are + * expanded (moved apart) in 'row' to match the final layout, when doing this + * the pixels are *replicated* to the intervening space. This is essential for + * the correct operation of png_combine_row, above. + */ +PNG_INTERNAL_FUNCTION(void,png_do_read_interlace,(png_row_infop row_info, + png_bytep row, int pass, png_uint_32 transformations),PNG_EMPTY); +#endif + +/* GRR TO DO (2.0 or whenever): simplify other internal calling interfaces */ + +#ifdef PNG_WRITE_INTERLACING_SUPPORTED +/* Grab pixels out of a row for an interlaced pass */ +PNG_INTERNAL_FUNCTION(void,png_do_write_interlace,(png_row_infop row_info, + png_bytep row, int pass),PNG_EMPTY); +#endif + +/* Unfilter a row: check the filter value before calling this, there is no point + * calling it for PNG_FILTER_VALUE_NONE. + */ +PNG_INTERNAL_FUNCTION(void,png_read_filter_row,(png_structrp pp, png_row_infop + row_info, png_bytep row, png_const_bytep prev_row, int filter),PNG_EMPTY); + +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_up_neon,(png_row_infop row_info, + png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub3_neon,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub4_neon,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg3_neon,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg4_neon,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth3_neon,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_neon,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); + +/* Choose the best filter to use and filter the row data */ +PNG_INTERNAL_FUNCTION(void,png_write_find_filter,(png_structrp png_ptr, + png_row_infop row_info),PNG_EMPTY); + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_read_IDAT_data,(png_structrp png_ptr, + png_bytep output, png_alloc_size_t avail_out),PNG_EMPTY); + /* Read 'avail_out' bytes of data from the IDAT stream. If the output buffer + * is NULL the function checks, instead, for the end of the stream. In this + * case a benign error will be issued if the stream end is not found or if + * extra data has to be consumed. + */ +PNG_INTERNAL_FUNCTION(void,png_read_finish_IDAT,(png_structrp png_ptr), + PNG_EMPTY); + /* This cleans up when the IDAT LZ stream does not end when the last image + * byte is read; there is still some pending input. + */ + +PNG_INTERNAL_FUNCTION(void,png_read_finish_row,(png_structrp png_ptr), + PNG_EMPTY); + /* Finish a row while reading, dealing with interlacing passes, etc. */ +#endif /* PNG_SEQUENTIAL_READ_SUPPORTED */ + +/* Initialize the row buffers, etc. */ +PNG_INTERNAL_FUNCTION(void,png_read_start_row,(png_structrp png_ptr),PNG_EMPTY); + +#ifdef PNG_READ_TRANSFORMS_SUPPORTED +/* Optional call to update the users info structure */ +PNG_INTERNAL_FUNCTION(void,png_read_transform_info,(png_structrp png_ptr, + png_inforp info_ptr),PNG_EMPTY); +#endif + +/* Shared transform functions, defined in pngtran.c */ +#if defined(PNG_WRITE_FILLER_SUPPORTED) || \ + defined(PNG_READ_STRIP_ALPHA_SUPPORTED) +PNG_INTERNAL_FUNCTION(void,png_do_strip_channel,(png_row_infop row_info, + png_bytep row, int at_start),PNG_EMPTY); +#endif + +#ifdef PNG_16BIT_SUPPORTED +#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) +PNG_INTERNAL_FUNCTION(void,png_do_swap,(png_row_infop row_info, + png_bytep row),PNG_EMPTY); +#endif +#endif + +#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \ + defined(PNG_WRITE_PACKSWAP_SUPPORTED) +PNG_INTERNAL_FUNCTION(void,png_do_packswap,(png_row_infop row_info, + png_bytep row),PNG_EMPTY); +#endif + +#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) +PNG_INTERNAL_FUNCTION(void,png_do_invert,(png_row_infop row_info, + png_bytep row),PNG_EMPTY); +#endif + +#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) +PNG_INTERNAL_FUNCTION(void,png_do_bgr,(png_row_infop row_info, + png_bytep row),PNG_EMPTY); +#endif + +/* The following decodes the appropriate chunks, and does error correction, + * then calls the appropriate callback for the chunk if it is valid. + */ + +/* Decode the IHDR chunk */ +PNG_INTERNAL_FUNCTION(void,png_handle_IHDR,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_handle_PLTE,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_handle_IEND,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); + +#ifdef PNG_READ_bKGD_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_handle_bKGD,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +#endif + +#ifdef PNG_READ_cHRM_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_handle_cHRM,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +#endif + +#ifdef PNG_READ_gAMA_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_handle_gAMA,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +#endif + +#ifdef PNG_READ_hIST_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_handle_hIST,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +#endif + +#ifdef PNG_READ_iCCP_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_handle_iCCP,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +#endif /* PNG_READ_iCCP_SUPPORTED */ + +#ifdef PNG_READ_iTXt_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_handle_iTXt,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +#endif + +#ifdef PNG_READ_oFFs_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_handle_oFFs,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +#endif + +#ifdef PNG_READ_pCAL_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_handle_pCAL,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +#endif + +#ifdef PNG_READ_pHYs_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_handle_pHYs,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +#endif + +#ifdef PNG_READ_sBIT_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_handle_sBIT,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +#endif + +#ifdef PNG_READ_sCAL_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_handle_sCAL,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +#endif + +#ifdef PNG_READ_sPLT_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_handle_sPLT,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +#endif /* PNG_READ_sPLT_SUPPORTED */ + +#ifdef PNG_READ_sRGB_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_handle_sRGB,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +#endif + +#ifdef PNG_READ_tEXt_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_handle_tEXt,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +#endif + +#ifdef PNG_READ_tIME_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_handle_tIME,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +#endif + +#ifdef PNG_READ_tRNS_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_handle_tRNS,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +#endif + +#ifdef PNG_READ_zTXt_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_handle_zTXt,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +#endif + +PNG_INTERNAL_FUNCTION(void,png_check_chunk_name,(png_structrp png_ptr, + png_uint_32 chunk_name),PNG_EMPTY); + +PNG_INTERNAL_FUNCTION(void,png_handle_unknown,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length, int keep),PNG_EMPTY); + /* This is the function that gets called for unknown chunks. The 'keep' + * argument is either non-zero for a known chunk that has been set to be + * handled as unknown or zero for an unknown chunk. By default the function + * just skips the chunk or errors out if it is critical. + */ + +#if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) ||\ + defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED) +PNG_INTERNAL_FUNCTION(int,png_chunk_unknown_handling, + (png_const_structrp png_ptr, png_uint_32 chunk_name),PNG_EMPTY); + /* Exactly as the API png_handle_as_unknown() except that the argument is a + * 32-bit chunk name, not a string. + */ +#endif /* READ_UNKNOWN_CHUNKS || HANDLE_AS_UNKNOWN */ + +/* Handle the transformations for reading and writing */ +#ifdef PNG_READ_TRANSFORMS_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_do_read_transformations,(png_structrp png_ptr, + png_row_infop row_info),PNG_EMPTY); +#endif +#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_do_write_transformations,(png_structrp png_ptr, + png_row_infop row_info),PNG_EMPTY); +#endif + +#ifdef PNG_READ_TRANSFORMS_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_init_read_transformations,(png_structrp png_ptr), + PNG_EMPTY); +#endif + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_push_read_chunk,(png_structrp png_ptr, + png_inforp info_ptr),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_push_read_sig,(png_structrp png_ptr, + png_inforp info_ptr),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_push_check_crc,(png_structrp png_ptr),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_push_crc_skip,(png_structrp png_ptr, + png_uint_32 length),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_push_crc_finish,(png_structrp png_ptr), + PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_push_save_buffer,(png_structrp png_ptr), + PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_push_restore_buffer,(png_structrp png_ptr, + png_bytep buffer, png_size_t buffer_length),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_push_read_IDAT,(png_structrp png_ptr),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_process_IDAT_data,(png_structrp png_ptr, + png_bytep buffer, png_size_t buffer_length),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_push_process_row,(png_structrp png_ptr), + PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_push_handle_unknown,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_push_have_info,(png_structrp png_ptr, + png_inforp info_ptr),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_push_have_end,(png_structrp png_ptr, + png_inforp info_ptr),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_push_have_row,(png_structrp png_ptr, + png_bytep row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_push_read_end,(png_structrp png_ptr, + png_inforp info_ptr),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_process_some_data,(png_structrp png_ptr, + png_inforp info_ptr),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_push_finish_row,(png_structrp png_ptr), + PNG_EMPTY); +# ifdef PNG_READ_tEXt_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_push_handle_tEXt,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_push_read_tEXt,(png_structrp png_ptr, + png_inforp info_ptr),PNG_EMPTY); +# endif +# ifdef PNG_READ_zTXt_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_push_handle_zTXt,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_push_read_zTXt,(png_structrp png_ptr, + png_inforp info_ptr),PNG_EMPTY); +# endif +# ifdef PNG_READ_iTXt_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_push_handle_iTXt,(png_structrp png_ptr, + png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_push_read_iTXt,(png_structrp png_ptr, + png_inforp info_ptr),PNG_EMPTY); +# endif + +#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ + +/* Added at libpng version 1.6.0 */ +#ifdef PNG_GAMMA_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_colorspace_set_gamma,(png_const_structrp png_ptr, + png_colorspacerp colorspace, png_fixed_point gAMA), PNG_EMPTY); + /* Set the colorspace gamma with a value provided by the application or by + * the gAMA chunk on read. The value will override anything set by an ICC + * profile. + */ + +PNG_INTERNAL_FUNCTION(void,png_colorspace_sync_info,(png_const_structrp png_ptr, + png_inforp info_ptr), PNG_EMPTY); + /* Synchronize the info 'valid' flags with the colorspace */ + +PNG_INTERNAL_FUNCTION(void,png_colorspace_sync,(png_const_structrp png_ptr, + png_inforp info_ptr), PNG_EMPTY); + /* Copy the png_struct colorspace to the info_struct and call the above to + * synchronize the flags. Checks for NULL info_ptr and does nothing. + */ +#endif + +/* Added at libpng version 1.4.0 */ +#ifdef PNG_COLORSPACE_SUPPORTED +/* These internal functions are for maintaining the colorspace structure within + * a png_info or png_struct (or, indeed, both). + */ +PNG_INTERNAL_FUNCTION(int,png_colorspace_set_chromaticities, + (png_const_structrp png_ptr, png_colorspacerp colorspace, const png_xy *xy, + int preferred), PNG_EMPTY); + +PNG_INTERNAL_FUNCTION(int,png_colorspace_set_endpoints, + (png_const_structrp png_ptr, png_colorspacerp colorspace, const png_XYZ *XYZ, + int preferred), PNG_EMPTY); + +#ifdef PNG_sRGB_SUPPORTED +PNG_INTERNAL_FUNCTION(int,png_colorspace_set_sRGB,(png_const_structrp png_ptr, + png_colorspacerp colorspace, int intent), PNG_EMPTY); + /* This does set the colorspace gAMA and cHRM values too, but doesn't set the + * flags to write them, if it returns false there was a problem and an error + * message has already been output (but the colorspace may still need to be + * synced to record the invalid flag). + */ +#endif /* sRGB */ + +#ifdef PNG_iCCP_SUPPORTED +PNG_INTERNAL_FUNCTION(int,png_colorspace_set_ICC,(png_const_structrp png_ptr, + png_colorspacerp colorspace, png_const_charp name, + png_uint_32 profile_length, png_const_bytep profile, int color_type), + PNG_EMPTY); + /* The 'name' is used for information only */ + +/* Routines for checking parts of an ICC profile. */ +PNG_INTERNAL_FUNCTION(int,png_icc_check_length,(png_const_structrp png_ptr, + png_colorspacerp colorspace, png_const_charp name, + png_uint_32 profile_length), PNG_EMPTY); +PNG_INTERNAL_FUNCTION(int,png_icc_check_header,(png_const_structrp png_ptr, + png_colorspacerp colorspace, png_const_charp name, + png_uint_32 profile_length, + png_const_bytep profile /* first 132 bytes only */, int color_type), + PNG_EMPTY); +PNG_INTERNAL_FUNCTION(int,png_icc_check_tag_table,(png_const_structrp png_ptr, + png_colorspacerp colorspace, png_const_charp name, + png_uint_32 profile_length, + png_const_bytep profile /* header plus whole tag table */), PNG_EMPTY); +#ifdef PNG_sRGB_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_icc_set_sRGB,( + png_const_structrp png_ptr, png_colorspacerp colorspace, + png_const_bytep profile, uLong adler), PNG_EMPTY); + /* 'adler' is the Adler32 checksum of the uncompressed profile data. It may + * be zero to indicate that it is not available. It is used, if provided, + * as a fast check on the profile when checking to see if it is sRGB. + */ +#endif +#endif /* iCCP */ + +#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_colorspace_set_rgb_coefficients, + (png_structrp png_ptr), PNG_EMPTY); + /* Set the rgb_to_gray coefficients from the colorspace Y values */ +#endif /* READ_RGB_TO_GRAY */ +#endif /* COLORSPACE */ + +/* Added at libpng version 1.4.0 */ +PNG_INTERNAL_FUNCTION(void,png_check_IHDR,(png_const_structrp png_ptr, + png_uint_32 width, png_uint_32 height, int bit_depth, + int color_type, int interlace_type, int compression_type, + int filter_type),PNG_EMPTY); + +/* Added at libpng version 1.5.10 */ +#if defined(PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED) || \ + defined(PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED) +PNG_INTERNAL_FUNCTION(void,png_do_check_palette_indexes, + (png_structrp png_ptr, png_row_infop row_info),PNG_EMPTY); +#endif + +#if defined(PNG_FLOATING_POINT_SUPPORTED) && defined(PNG_ERROR_TEXT_SUPPORTED) +PNG_INTERNAL_FUNCTION(void,png_fixed_error,(png_const_structrp png_ptr, + png_const_charp name),PNG_NORETURN); +#endif + +/* Puts 'string' into 'buffer' at buffer[pos], taking care never to overwrite + * the end. Always leaves the buffer nul terminated. Never errors out (and + * there is no error code.) + */ +PNG_INTERNAL_FUNCTION(size_t,png_safecat,(png_charp buffer, size_t bufsize, + size_t pos, png_const_charp string),PNG_EMPTY); + +/* Various internal functions to handle formatted warning messages, currently + * only implemented for warnings. + */ +#if defined(PNG_WARNINGS_SUPPORTED) || defined(PNG_TIME_RFC1123_SUPPORTED) +/* Utility to dump an unsigned value into a buffer, given a start pointer and + * and end pointer (which should point just *beyond* the end of the buffer!) + * Returns the pointer to the start of the formatted string. This utility only + * does unsigned values. + */ +PNG_INTERNAL_FUNCTION(png_charp,png_format_number,(png_const_charp start, + png_charp end, int format, png_alloc_size_t number),PNG_EMPTY); + +/* Convenience macro that takes an array: */ +#define PNG_FORMAT_NUMBER(buffer,format,number) \ + png_format_number(buffer, buffer + (sizeof buffer), format, number) + +/* Suggested size for a number buffer (enough for 64 bits and a sign!) */ +#define PNG_NUMBER_BUFFER_SIZE 24 + +/* These are the integer formats currently supported, the name is formed from + * the standard printf(3) format string. + */ +#define PNG_NUMBER_FORMAT_u 1 /* chose unsigned API! */ +#define PNG_NUMBER_FORMAT_02u 2 +#define PNG_NUMBER_FORMAT_d 1 /* chose signed API! */ +#define PNG_NUMBER_FORMAT_02d 2 +#define PNG_NUMBER_FORMAT_x 3 +#define PNG_NUMBER_FORMAT_02x 4 +#define PNG_NUMBER_FORMAT_fixed 5 /* choose the signed API */ +#endif + +#ifdef PNG_WARNINGS_SUPPORTED +/* New defines and members adding in libpng-1.5.4 */ +# define PNG_WARNING_PARAMETER_SIZE 32 +# define PNG_WARNING_PARAMETER_COUNT 8 /* Maximum 9; see pngerror.c */ + +/* An l-value of this type has to be passed to the APIs below to cache the + * values of the parameters to a formatted warning message. + */ +typedef char png_warning_parameters[PNG_WARNING_PARAMETER_COUNT][ + PNG_WARNING_PARAMETER_SIZE]; + +PNG_INTERNAL_FUNCTION(void,png_warning_parameter,(png_warning_parameters p, + int number, png_const_charp string),PNG_EMPTY); + /* Parameters are limited in size to PNG_WARNING_PARAMETER_SIZE characters, + * including the trailing '\0'. + */ +PNG_INTERNAL_FUNCTION(void,png_warning_parameter_unsigned, + (png_warning_parameters p, int number, int format, png_alloc_size_t value), + PNG_EMPTY); + /* Use png_alloc_size_t because it is an unsigned type as big as any we + * need to output. Use the following for a signed value. + */ +PNG_INTERNAL_FUNCTION(void,png_warning_parameter_signed, + (png_warning_parameters p, int number, int format, png_int_32 value), + PNG_EMPTY); + +PNG_INTERNAL_FUNCTION(void,png_formatted_warning,(png_const_structrp png_ptr, + png_warning_parameters p, png_const_charp message),PNG_EMPTY); + /* 'message' follows the X/Open approach of using @1, @2 to insert + * parameters previously supplied using the above functions. Errors in + * specifying the parameters will simply result in garbage substitutions. + */ +#endif + +#ifdef PNG_BENIGN_ERRORS_SUPPORTED +/* Application errors (new in 1.6); use these functions (declared below) for + * errors in the parameters or order of API function calls on read. The + * 'warning' should be used for an error that can be handled completely; the + * 'error' for one which can be handled safely but which may lose application + * information or settings. + * + * By default these both result in a png_error call prior to release, while in a + * released version the 'warning' is just a warning. However if the application + * explicitly disables benign errors (explicitly permitting the code to lose + * information) they both turn into warnings. + * + * If benign errors aren't supported they end up as the corresponding base call + * (png_warning or png_error.) + */ +PNG_INTERNAL_FUNCTION(void,png_app_warning,(png_const_structrp png_ptr, + png_const_charp message),PNG_EMPTY); + /* The application provided invalid parameters to an API function or called + * an API function at the wrong time, libpng can completely recover. + */ + +PNG_INTERNAL_FUNCTION(void,png_app_error,(png_const_structrp png_ptr, + png_const_charp message),PNG_EMPTY); + /* As above but libpng will ignore the call, or attempt some other partial + * recovery from the error. + */ +#else +# define png_app_warning(pp,s) png_warning(pp,s) +# define png_app_error(pp,s) png_error(pp,s) +#endif + +PNG_INTERNAL_FUNCTION(void,png_chunk_report,(png_const_structrp png_ptr, + png_const_charp message, int error),PNG_EMPTY); + /* Report a recoverable issue in chunk data. On read this is used to report + * a problem found while reading a particular chunk and the + * png_chunk_benign_error or png_chunk_warning function is used as + * appropriate. On write this is used to report an error that comes from + * data set via an application call to a png_set_ API and png_app_error or + * png_app_warning is used as appropriate. + * + * The 'error' parameter must have one of the following values: + */ +#define PNG_CHUNK_WARNING 0 /* never an error */ +#define PNG_CHUNK_WRITE_ERROR 1 /* an error only on write */ +#define PNG_CHUNK_ERROR 2 /* always an error */ + +/* ASCII to FP interfaces, currently only implemented if sCAL + * support is required. + */ +#if defined(PNG_sCAL_SUPPORTED) +/* MAX_DIGITS is actually the maximum number of characters in an sCAL + * width or height, derived from the precision (number of significant + * digits - a build time settable option) and assumptions about the + * maximum ridiculous exponent. + */ +#define PNG_sCAL_MAX_DIGITS (PNG_sCAL_PRECISION+1/*.*/+1/*E*/+10/*exponent*/) + +#ifdef PNG_FLOATING_POINT_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_ascii_from_fp,(png_const_structrp png_ptr, + png_charp ascii, png_size_t size, double fp, unsigned int precision), + PNG_EMPTY); +#endif /* FLOATING_POINT */ + +#ifdef PNG_FIXED_POINT_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_ascii_from_fixed,(png_const_structrp png_ptr, + png_charp ascii, png_size_t size, png_fixed_point fp),PNG_EMPTY); +#endif /* FIXED_POINT */ +#endif /* sCAL */ + +#if defined(PNG_sCAL_SUPPORTED) || defined(PNG_pCAL_SUPPORTED) +/* An internal API to validate the format of a floating point number. + * The result is the index of the next character. If the number is + * not valid it will be the index of a character in the supposed number. + * + * The format of a number is defined in the PNG extensions specification + * and this API is strictly conformant to that spec, not anyone elses! + * + * The format as a regular expression is: + * + * [+-]?[0-9]+.?([Ee][+-]?[0-9]+)? + * + * or: + * + * [+-]?.[0-9]+(.[0-9]+)?([Ee][+-]?[0-9]+)? + * + * The complexity is that either integer or fraction must be present and the + * fraction is permitted to have no digits only if the integer is present. + * + * NOTE: The dangling E problem. + * There is a PNG valid floating point number in the following: + * + * PNG floating point numbers are not greedy. + * + * Working this out requires *TWO* character lookahead (because of the + * sign), the parser does not do this - it will fail at the 'r' - this + * doesn't matter for PNG sCAL chunk values, but it requires more care + * if the value were ever to be embedded in something more complex. Use + * ANSI-C strtod if you need the lookahead. + */ +/* State table for the parser. */ +#define PNG_FP_INTEGER 0 /* before or in integer */ +#define PNG_FP_FRACTION 1 /* before or in fraction */ +#define PNG_FP_EXPONENT 2 /* before or in exponent */ +#define PNG_FP_STATE 3 /* mask for the above */ +#define PNG_FP_SAW_SIGN 4 /* Saw +/- in current state */ +#define PNG_FP_SAW_DIGIT 8 /* Saw a digit in current state */ +#define PNG_FP_SAW_DOT 16 /* Saw a dot in current state */ +#define PNG_FP_SAW_E 32 /* Saw an E (or e) in current state */ +#define PNG_FP_SAW_ANY 60 /* Saw any of the above 4 */ + +/* These three values don't affect the parser. They are set but not used. + */ +#define PNG_FP_WAS_VALID 64 /* Preceding substring is a valid fp number */ +#define PNG_FP_NEGATIVE 128 /* A negative number, including "-0" */ +#define PNG_FP_NONZERO 256 /* A non-zero value */ +#define PNG_FP_STICKY 448 /* The above three flags */ + +/* This is available for the caller to store in 'state' if required. Do not + * call the parser after setting it (the parser sometimes clears it.) + */ +#define PNG_FP_INVALID 512 /* Available for callers as a distinct value */ + +/* Result codes for the parser (boolean - true meants ok, false means + * not ok yet.) + */ +#define PNG_FP_MAYBE 0 /* The number may be valid in the future */ +#define PNG_FP_OK 1 /* The number is valid */ + +/* Tests on the sticky non-zero and negative flags. To pass these checks + * the state must also indicate that the whole number is valid - this is + * achieved by testing PNG_FP_SAW_DIGIT (see the implementation for why this + * is equivalent to PNG_FP_OK above.) + */ +#define PNG_FP_NZ_MASK (PNG_FP_SAW_DIGIT | PNG_FP_NEGATIVE | PNG_FP_NONZERO) + /* NZ_MASK: the string is valid and a non-zero negative value */ +#define PNG_FP_Z_MASK (PNG_FP_SAW_DIGIT | PNG_FP_NONZERO) + /* Z MASK: the string is valid and a non-zero value. */ + /* PNG_FP_SAW_DIGIT: the string is valid. */ +#define PNG_FP_IS_ZERO(state) (((state) & PNG_FP_Z_MASK) == PNG_FP_SAW_DIGIT) +#define PNG_FP_IS_POSITIVE(state) (((state) & PNG_FP_NZ_MASK) == PNG_FP_Z_MASK) +#define PNG_FP_IS_NEGATIVE(state) (((state) & PNG_FP_NZ_MASK) == PNG_FP_NZ_MASK) + +/* The actual parser. This can be called repeatedly. It updates + * the index into the string and the state variable (which must + * be initialized to 0). It returns a result code, as above. There + * is no point calling the parser any more if it fails to advance to + * the end of the string - it is stuck on an invalid character (or + * terminated by '\0'). + * + * Note that the pointer will consume an E or even an E+ and then leave + * a 'maybe' state even though a preceding integer.fraction is valid. + * The PNG_FP_WAS_VALID flag indicates that a preceding substring was + * a valid number. It's possible to recover from this by calling + * the parser again (from the start, with state 0) but with a string + * that omits the last character (i.e. set the size to the index of + * the problem character.) This has not been tested within libpng. + */ +PNG_INTERNAL_FUNCTION(int,png_check_fp_number,(png_const_charp string, + png_size_t size, int *statep, png_size_tp whereami),PNG_EMPTY); + +/* This is the same but it checks a complete string and returns true + * only if it just contains a floating point number. As of 1.5.4 this + * function also returns the state at the end of parsing the number if + * it was valid (otherwise it returns 0.) This can be used for testing + * for negative or zero values using the sticky flag. + */ +PNG_INTERNAL_FUNCTION(int,png_check_fp_string,(png_const_charp string, + png_size_t size),PNG_EMPTY); +#endif /* pCAL || sCAL */ + +#if defined(PNG_GAMMA_SUPPORTED) ||\ + defined(PNG_INCH_CONVERSIONS_SUPPORTED) || defined(PNG_READ_pHYs_SUPPORTED) +/* Added at libpng version 1.5.0 */ +/* This is a utility to provide a*times/div (rounded) and indicate + * if there is an overflow. The result is a boolean - false (0) + * for overflow, true (1) if no overflow, in which case *res + * holds the result. + */ +PNG_INTERNAL_FUNCTION(int,png_muldiv,(png_fixed_point_p res, png_fixed_point a, + png_int_32 multiplied_by, png_int_32 divided_by),PNG_EMPTY); +#endif + +#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_INCH_CONVERSIONS_SUPPORTED) +/* Same deal, but issue a warning on overflow and return 0. */ +PNG_INTERNAL_FUNCTION(png_fixed_point,png_muldiv_warn, + (png_const_structrp png_ptr, png_fixed_point a, png_int_32 multiplied_by, + png_int_32 divided_by),PNG_EMPTY); +#endif + +#ifdef PNG_GAMMA_SUPPORTED +/* Calculate a reciprocal - used for gamma values. This returns + * 0 if the argument is 0 in order to maintain an undefined value; + * there are no warnings. + */ +PNG_INTERNAL_FUNCTION(png_fixed_point,png_reciprocal,(png_fixed_point a), + PNG_EMPTY); + +#ifdef PNG_READ_GAMMA_SUPPORTED +/* The same but gives a reciprocal of the product of two fixed point + * values. Accuracy is suitable for gamma calculations but this is + * not exact - use png_muldiv for that. Only required at present on read. + */ +PNG_INTERNAL_FUNCTION(png_fixed_point,png_reciprocal2,(png_fixed_point a, + png_fixed_point b),PNG_EMPTY); +#endif + +/* Return true if the gamma value is significantly different from 1.0 */ +PNG_INTERNAL_FUNCTION(int,png_gamma_significant,(png_fixed_point gamma_value), + PNG_EMPTY); +#endif + +#ifdef PNG_READ_GAMMA_SUPPORTED +/* Internal fixed point gamma correction. These APIs are called as + * required to convert single values - they don't need to be fast, + * they are not used when processing image pixel values. + * + * While the input is an 'unsigned' value it must actually be the + * correct bit value - 0..255 or 0..65535 as required. + */ +PNG_INTERNAL_FUNCTION(png_uint_16,png_gamma_correct,(png_structrp png_ptr, + unsigned int value, png_fixed_point gamma_value),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(png_uint_16,png_gamma_16bit_correct,(unsigned int value, + png_fixed_point gamma_value),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(png_byte,png_gamma_8bit_correct,(unsigned int value, + png_fixed_point gamma_value),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_destroy_gamma_table,(png_structrp png_ptr), + PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_build_gamma_table,(png_structrp png_ptr, + int bit_depth),PNG_EMPTY); +#endif + +/* SIMPLIFIED READ/WRITE SUPPORT */ +#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) ||\ + defined(PNG_SIMPLIFIED_WRITE_SUPPORTED) +/* The internal structure that png_image::opaque points to. */ +typedef struct png_control +{ + png_structp png_ptr; + png_infop info_ptr; + png_voidp error_buf; /* Always a jmp_buf at present. */ + + png_const_bytep memory; /* Memory buffer. */ + png_size_t size; /* Size of the memory buffer. */ + + unsigned int for_write :1; /* Otherwise it is a read structure */ + unsigned int owned_file :1; /* We own the file in io_ptr */ +} png_control; + +/* Return the pointer to the jmp_buf from a png_control: necessary because C + * does not reveal the type of the elements of jmp_buf. + */ +#ifdef __cplusplus +# define png_control_jmp_buf(pc) (((jmp_buf*)((pc)->error_buf))[0]) +#else +# define png_control_jmp_buf(pc) ((pc)->error_buf) +#endif + +/* Utility to safely execute a piece of libpng code catching and logging any + * errors that might occur. Returns true on success, false on failure (either + * of the function or as a result of a png_error.) + */ +PNG_INTERNAL_CALLBACK(void,png_safe_error,(png_structp png_ptr, + png_const_charp error_message),PNG_NORETURN); + +#ifdef PNG_WARNINGS_SUPPORTED +PNG_INTERNAL_CALLBACK(void,png_safe_warning,(png_structp png_ptr, + png_const_charp warning_message),PNG_EMPTY); +#else +# define png_safe_warning 0/*dummy argument*/ +#endif + +PNG_INTERNAL_FUNCTION(int,png_safe_execute,(png_imagep image, + int (*function)(png_voidp), png_voidp arg),PNG_EMPTY); + +/* Utility to log an error; this also cleans up the png_image; the function + * always returns 0 (false). + */ +PNG_INTERNAL_FUNCTION(int,png_image_error,(png_imagep image, + png_const_charp error_message),PNG_EMPTY); + +#ifndef PNG_SIMPLIFIED_READ_SUPPORTED +/* png_image_free is used by the write code but not exported */ +PNG_INTERNAL_FUNCTION(void, png_image_free, (png_imagep image), PNG_EMPTY); +#endif /* !SIMPLIFIED_READ */ + +#endif /* SIMPLIFIED READ/WRITE */ + +/* These are initialization functions for hardware specific PNG filter + * optimizations; list these here then select the appropriate one at compile + * time using the macro PNG_FILTER_OPTIMIZATIONS. If the macro is not defined + * the generic code is used. + */ +#ifdef PNG_FILTER_OPTIMIZATIONS +PNG_INTERNAL_FUNCTION(void, PNG_FILTER_OPTIMIZATIONS, (png_structp png_ptr, + unsigned int bpp), PNG_EMPTY); + /* Just declare the optimization that will be used */ +#else + /* List *all* the possible optimizations here - this branch is required if + * the builder of libpng passes the definition of PNG_FILTER_OPTIMIZATIONS in + * CFLAGS in place of CPPFLAGS *and* uses symbol prefixing. + */ +PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_neon, + (png_structp png_ptr, unsigned int bpp), PNG_EMPTY); +#endif + +/* Maintainer: Put new private prototypes here ^ */ + +#include "pngdebug.h" + +#ifdef __cplusplus +} +#endif + +#endif /* PNG_VERSION_INFO_ONLY */ +#endif /* PNGPRIV_H */