From 56daae2c9e5b0f0bed13912ae937e3a856e66e72 Mon Sep 17 00:00:00 2001 From: Anthony Debucquoy Date: Wed, 31 May 2023 23:01:19 +0200 Subject: [PATCH] learn opengl --- build.sh | 6 +- main | Bin 15984 -> 0 bytes gameoflife_graph.c => opengl_train.c | 74 +- sample.png | Bin 0 -> 331670 bytes sample2.png | Bin 0 -> 319115 bytes shader.fs | 14 +- shader.vs | 9 + stb_image.h | 7987 ++++++++++++++++++++++++++ 8 files changed, 8077 insertions(+), 13 deletions(-) delete mode 100755 main rename gameoflife_graph.c => opengl_train.c (57%) create mode 100644 sample.png create mode 100644 sample2.png create mode 100644 stb_image.h diff --git a/build.sh b/build.sh index 755d00c..3ac449e 100755 --- a/build.sh +++ b/build.sh @@ -2,8 +2,8 @@ set -xe -CFLAGS="-Wall -Wextra $(pkg-config --cflags sdl2 glew)" -LIBS="$(pkg-config --libs sdl2 glew)" +CFLAGS="-g -Wall -Wextra $(pkg-config --cflags sdl2 glew)" +LIBS="$(pkg-config --libs sdl2 glew) -lm" # gcc -Wall -Wextra -o gameoflife_term gameoflife_term.c -gcc ${CFLAGS} -o gameoflife_graph gameoflife_graph.c ${LIBS} +gcc ${CFLAGS} -o opengl_train opengl_train.c ${LIBS} diff --git a/main b/main deleted file mode 100755 index fb53280c0368e3c951c26b47a0d5f47288a132b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15984 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 K0|SE?0sR0x?AZVS diff --git a/gameoflife_graph.c b/opengl_train.c similarity index 57% rename from gameoflife_graph.c rename to opengl_train.c index 4add809..17b4152 100644 --- a/gameoflife_graph.c +++ b/opengl_train.c @@ -1,11 +1,12 @@ -#include #include #include #include -#include #include #include +#define STB_IMAGE_IMPLEMENTATION +#include "stb_image.h" + #define FACTOR 80 #define WIDTH ((FACTOR) * 16) #define HEIGHT ((FACTOR) * 9) @@ -13,9 +14,16 @@ SDL_Event e; float vertices[] = { - 0.0f, 0.5f, - 0.5f, -0.5f, - -0.5f, -0.5f + // Positions Color TexCoords + -0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, // Top-left + 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, // Top-right + 0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, // Bottom-right + -0.5f, -0.5f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, // Bottom-left +}; + +GLuint elements[] = { + 0, 1, 2, + 2, 3, 0, }; char * read_file(const char* path){ @@ -88,26 +96,76 @@ int main(void) SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2); + // vectors GLuint vertexBuffer; glGenBuffers(1, &vertexBuffer); glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer); glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); + // reuse vectors + GLuint ebo; + glGenBuffers(1, &ebo); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(elements), elements, GL_STATIC_DRAW); + GLuint vertexShader = CompileShader(vs, GL_VERTEX_SHADER); GLuint fragmentShader = CompileShader(fs, GL_FRAGMENT_SHADER); GLuint shaderProgram = LinkShader(vertexShader, fragmentShader); + // Textures + int width, height; + unsigned char *image, *image2; + + GLuint tex[2]; + glGenTextures(2, tex); + + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, tex[0]); + + //Load image + image = stbi_load("./sample.png", &width, &height, NULL, 3); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image); + stbi_image_free(image); + glGenerateMipmap(GL_TEXTURE_2D); + + glUniform1i(glGetUniformLocation(shaderProgram, "kitty"), 0); + + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, tex[1]); + + //Load image + image2 = stbi_load("./sample2.png", &width, &height, NULL, 3); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image2); + stbi_image_free(image2); + glGenerateMipmap(GL_TEXTURE_2D); + + glUniform1i(glGetUniformLocation(shaderProgram, "puppy"), 1); + GLint posAttrib = glGetAttribLocation(shaderProgram, "positions"); glEnableVertexAttribArray(posAttrib); - glVertexAttribPointer(posAttrib, 2, GL_FLOAT, GL_FALSE, 0, 0); + glVertexAttribPointer(posAttrib, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 7, 0); + GLint colAttrib = glGetAttribLocation(shaderProgram, "color"); + glEnableVertexAttribArray(colAttrib); + glVertexAttribPointer(colAttrib, 3, GL_FLOAT, GL_FALSE, sizeof(float) * 7, (void*)(2*sizeof(float))); + + GLint texCoordsAttrib = glGetAttribLocation(shaderProgram, "texCoords"); + glEnableVertexAttribArray(texCoordsAttrib); + glVertexAttribPointer(texCoordsAttrib, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 7, (void*)(5*sizeof(float))); + + glUseProgram(shaderProgram); + + int i = 0; bool should_close = false; while(!should_close){ + i++; glClearColor(0, 0, 0, 1); glClear(GL_COLOR_BUFFER_BIT); + glUniform1i(glGetUniformLocation(shaderProgram, "triangleColor"), i); - glDrawArrays(GL_TRIANGLES, 0, 3); + glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0); + /* glDrawArrays(GL_TRIANGLES, 0, 3); */ SDL_GL_SwapWindow(win); @@ -121,8 +179,6 @@ int main(void) glDeleteShader(fragmentShader); glDeleteShader(vertexShader); - glDeleteBuffers(1, &vertexBuffer); - SDL_GL_DeleteContext(con); SDL_DestroyWindow(win); SDL_Quit(); diff --git a/sample.png b/sample.png new file mode 100644 index 0000000000000000000000000000000000000000..3ec1d66eca77ad50601ac010d3176de940ede1bf GIT binary patch literal 331670 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%0AvZ_CkK^&)@f?kL1PVe(Rd{om+Er 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 z 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

Ubkj0oy;P+>FWGFuU(TWnM;>4sxC}r6_adR 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%0AV38~V1>OL}Q2~Nx9 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%0AOC>W59Z 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

G0N4`k?sitSQ&8?wl3)b&~P=r+%7BM?bST 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 z zDl(W`8@B0L(ZNk|J+CKEP@QEM@`_{U%?Wm~lV9$6Kf7pg|EImxRsp4}uKnHTH8GpH z;qC6`p1t<`53RbUmK7x~xOeHQ>SuSJ+uoY}e`@PuetqAoo;ZWcYu|gVAMNVj&gy=9 z|M^1n$Nm2+Zl^ye588aq>CP`6`zuGe@A@3O@7-86Jjf5!Q7 z{}}x*`&+c|7o^^(T~_<#$>P3G&+4b^%B`3#8#d{>+mSa5bbr^(SivdxeeU}>t`!gM zR-G=3TU!71d{tz`e6M9f#y1?xvb8q-{HncDtLM0z*eVZ4ee2b?(vF|IaeA(P!P~sd1YbFTT^!b2Vkfz5TPpt!B+m(fzko@|0#)p$6Zit6CO%#?OBC ze4c$$`RKPNk-iMYZr>vpFHBU@GE%)+T>C-R$t1X2->|g#)d@+54N0+!8;egxTxVUq zR@+BrdGPM^(kq|i%D0;NE}PR>>MD5X#g%Jj73*Ej8!#!bTz>dE{aKdP21)6Ou9neO zDNzr)*E;aV7T!}{$9gqDIbD@~(q**-3H6#E9}+kFu8U+&WU|id>^&?Y;FPPkWk#5N z^Bm8}b1u!Yy|wi5 zTfwK|$+ zZIhNSP`3VG*NNX84yJqwRRxN^=>bbhsvqC(uF_{nbpN3td%wZ_#{T`w7gX&!27}odi4U~RtCFkUeZL^#ncBaEN>5T8u zgFe%&(%RLkb37AEk8ZfmK7Ce1OVoi{?SH0I+`0R+S&q)#cYD!f&Ks;JubkiL=WWMw z_pX%H!j+9t2{QRSFaCYdR`O6?$f3C5_={3`{v;2r6O$&MVGU4G?t1lc^^{Fs8dtT< zwm(~*rV%2tT1~^LWNu)N`};M41!)N(o8`J{#Z=vwtdM%YBP?#hySKp?GuQflV!8YC zlBja^?Q?J2wq#Gf^zHktm+|Ev8<-F8ZhA1)`Qd6s-*c-xBEIe|=J;@M`_+kl-*1I* zau$hQ-8sEwqKs4On)r$5Ztx~N-!6RUL@bL@<*FGk#hmv@{d|(-*)98U>R#V3i@uvq z^$mPHC!9rLrKA5xEzQ+^lN%IxjK80GJ3#?@Mj?w^$i zzx!Lc{Eld><;IIUyr+jmop*Eynb_j{c1h->YCn;{{ncuJbTeO@8~mQCek^x$gPQ?c z2wU~y_V?l|Y`aw6AKv;_%7(*iRrzvd$jGZ$ivw;c2Be65SlV);*o$h3DKf+Rx_vXdm-NXb?JY* zD=S{Du8w|p=P5tOh28rfE#SQ>VB-A1z?b82+qx%H3M}Ib;)H|5E?+R7bNyI%MDzLs zyOjGi6MF?+0-N*auv@xuEd9MNZ_)!DuKT->2|n4TWaYzdz#a7Qm8HT>DdX6)J&!lG z`gRH@_-Y6RPBJ@idXv&o)|*Tf&q~=k4ErSQDtsKeSTWI zCPCz6g4mkXrx;x){S4ump}WcQ`ITAiy$ix6ANpB3UYT8<8Ke|hQPaIR?`2Wy^_18D zKkKdf9`#5qeC5jT+>_q4YwT%Px<7Nz`Zc%SpZT_S)k)un%i4JzWZ70&i?8;|x&6`J zZCieJa{50t{#VTp@*`5?UAOFS?%HzV^Y=e9Ubb_ol^t3CH?Dcz8-Do-r}K8Lt>*N5 z|L}GBzn%iytpIv((Bh~o#ghSiKDegmx7E`y{%>}jK1+(DbS?xeR(kM&N9_AIsSVy=Uq#2x zy%YOgYUjkyUUyG=f3;ff>&z3(W05}XNM7@`?q8NyVt!2fmas(s>(B6$iXN9a!nyUe z%w|nx()rwU`e{>Yq}lqfUaPiLFTHjATJ0L4|^UifAE? zp0{;hze$E@r}}28o8aDUXZO0_c`fYlyT0PI`wQi~r&=NJ4r;$$Sg>0zXPx@m%7f(|A3jNJ4LI_l z{}W%S-kgN%l9_nyPteV5s7 zWbGbU)E#)@FOlg~v}D@qML|ol)#`SpO%FOhXR7Saw9Dz&A`))yoo~PraA}EIf!o8J z-NrqR@BaL;_CF-H%)^VtSa`K+nf;pA&aHxslXe%{HDsCn}s$AJd`Q- zYgsK?^>=&w;f0k3A)6MmeXD4Y&|j`z!9L|t*|$AMF14O|p%}?hF!jjsb-tg@?AoRj zs5wV$LC%@VtNVl}t_$)Jx>~mFn#$SflIz#6=VI4B9k@RE^0a)9ZYkZVwa4SP{Z;y$ z=8?2ITjXTK^q!lH2M>yfMyl5GNw8(K)rP!?D0;p$?6r^fj*{&cuYcElFV~$j?NRLo zZmV_78^c+TY-;$^5W(_#mSM%#rBmxdlVA5MNmmy6?y^ecZ%GX}|5rdTsOhxiJ>jB@ z%S>*(T6Se|b4ai@>x}EHJ6()fg`5l6ek^#ucb$hyI?uso_jaAxA1{Bb2q{07rZr7) zvemDrIy+*%*hN2vryi}61lcvUZ&!!*%?aLb$qoFFST7^^dfgUm)omv|8q`U7US5yUVY2a*5OJ(nCxjdOQ;n zg}a9YOPh)N9$kkO;b&siW&d*A`E>kb`JVeH>)F@+x_G_tZ+X?tM`!P=Zd9=do2&V8 z8`Fe_1MD)##BF5l9{&8m+5Um0KXALHTBeeowS@PsbHDU{e#*0RlsCCt%jWiOlHKZC zU0tuHF2d{-?8vwd96zAI|sx4IwFhifHj*i)y;&g5Tv;zrdf zSJ8Z5hvZwg-~IV@Ui*+i-{fz?mfN4L{J%9~*+B!pgl}iL!Yf(DRwPX*^u5)x_t_Mo zO&d40C$@ana*qiP>afjLOif!NV|dqCc zq@1NIt60`}&iy3Aoz(R}CLpM7$rY)F5Dxa{zpJPC&t{aa-MMSYJL!{iHnV;H(Jl1v zkJ!85^}52_j#!(ubeV3~!%dCPau(aSFd1Rl3Y=>Pa+`r!L{?YR2? zvY(6CHXr)`*YBp~(`_OP%eh3~iLJjSV36I`C}MKx@mGh+xs$5wAKlSe>^gh$zn9e} z3r#te*87%}>;8GMH)j95eMyD-pWbKpt1hk6*IxF#GgrFvx6y&><_ETq{>W?oa}o0k zPdDG$|LfcS_xF_}SEzj}bQC$!Ebh5m_W88ue-akuFSB~TR_Pnp&)IwZk~i8l6}_mn zS^iP}$vNK3!X{4`iwd>v-{fy|zjf|4|As2`XJ%7C(^^Slr&t#$K2nwK&MQ zG3O71^0~LZj@$IhP1APX`}p;t(^V7q#qF`mek%{lDVz&no}q7<`1un1fi>(p!mnpB zq-d6GG!@oNHE>r6EZc9!d25E~@1)J&74q-#91~h!?Xj(8gH%;;`RSz|#UhjQn%1=} zOEPczd@se__RvM)wjIU`7D=lt>CZ}if3WY&y@-Wz&t*^VJ17&zd8+x?1Mjnz!@1FJIWM=M;L6(VCUZQn(?7-^!iwoM8631rJ3Rd;WYN z(JJ#m_JP~&+1l<6y`L2pUH-F6ZA!?48;5^0=16^0lRYc-%EgT(_w1*H$x)go1Vqw! z?rs0wcT@A?`YF3qZ|pI6HEY!j=LO62W?hwO@SZcV+s#eB@QBIET?;4uX*>9^;!{PG zTg}f;toixzhWg?kW;>)DnRPyay~5vOp4%Khc9D+-au&9g8_xguYJPCnDw7Q!S&q>u z&81oqVzrDPx-k==Unn;U*jw~o4K>N z>iwDWCxXRm`OL-&vU*&iSN;^Bt7o3(4| zHw2~2T&nr9oAv%ylXZqmSAM^APDq<-FKhvlIQZX51|c zjQCr%+waG;hEK;m#H&v#M7?=by6ARw#(_Q)%@&<1-)8v-1ucs?{oDJ0e0ezk_&kD0+CmZ@6EejJ@>|q6A5o*4p}sDL@Z9*YMwdQ^+3>b zjZBrA*7vRsXA0sTZkxfi!=-tL>>TNkPzI;2n{%GIeKq!Y_0Rpq$^NC95_7nh^<8*= z%92@AiKSmc`I^MlFB&YRMaoU(a)%8b`m~&W+O#FcpsIgLNw$5jFpFG^;Knl%Ld}cP z3{q~^#wwPdk9%3PdH2`Lp)nwZ3G+%+3vFZ#eAp}G4SsN5HaSpvpuMSb z-oriXa`x5zY?~p@5hl~mzNe<5>H99bnkvhO^?d(@`}~#b{=QxR=N9*x ze>?kj%7JGUJABt0w7ZsQY%E!&Zg%C1*rog5zUh}Y(e^X5daG-e*j9O(&wi*S z{)V%r;>3mfpLb?W(O+qQulwmvHF_ak3Cnc=hUrP5Uo*RAokxw&88?ev?v=O?4MqOMzP*x9$x1*_iJk>tbug9f7u|yqSOTZWHY`S-$)FKX=)svqX+ZF{IsGcHW1#)sK%p|iPW^MlZ) zh}?UxmTXGh{kiWzxGd-ESqt8on*M2%+F9_K>ArPDSYLzM{LYg?rV_^`UwVD-DO-Ei zmhXtvwkHgmzFV{~$TTeE*fGsCdr*eoea&kw`w9VT zk4~vIQ;bz!tG{SsKB)Y(_rr;EoAfueHe8l{FK|n^HebM4%X;0KCc$G~;-=+_+A4<3 z(^&;ncvv+KaqLux=@M5!^%;yd-(d^b_TB4Yt z$r!)?oX5+i#2=i`*XJ{c`dn_P|Mk4yt;e|T@7MJ|zHZ;IG*whz-+hDh$JgukKidEI z`+wfV0*kq74MzX|@Y_Guum5RmS5tE+{@)+ME>4fLYW{s&YPzlJZA`Y#bqncRPpy_;yO%Ys{KNOfRvRo^rp*=M3n{DLZpu`C zY)kCrvh{H>rqZ>GFPu|*jOeU{vcJNM%CV~$^{&p+^H{pH1n>dQIqUw!u~VV3;0 zO>=oZ++{n^Rsa7{{`ZHM`1XHSdwREBuf*8(ewOO?=eO@0JhfXLFX_fV^R>0pLA4Jz z?ggj!S5MuUP_(0noAG2_`@TxHnDwkxpAv5N+F$wC^EUm0X0VM1)127?hlKmu`75ke z-F^SWPT>OMz1{~wp7oX0G2Y*AJ=wJ-I{(fDp8(-IDdiKqlUJHao8Rs{l~&~v-s?JT zZuf(A5{C{N2E?@TY*dsF`KEGu(a}qm#~vEIRofgi>F=2p*XCU`dhmM7xieX^yWM({ z@4jAi^Kh67gX?vcbCoR(exVN5+E06zACTU8@tVo3$PN477m4XkDy!Xmch{_-$j`<) zPy0(dqbC14vaGtq?w^1HPqUfyHupZm#=Fz*Ejv0d_p5{GUbl@$EceD`WH%e|Sjg~2 zOf&vtq0qy4I`yJWbCAQ#hL{JQg8eexqC1&{9ZlA+`XuLkC(mVPTGHL0tHi2R-nHv* zn-%Tz0OJSvsb*ol5tYlV~WbtJzi`#Ppmd{ z7jaacDP-a{qn)vDZQ^R*FtMvQ(sLQMWKM2Nsdzro%c+aimFdRnzwclFa%5Xq<+WGru+8%5sw$G>wC?Ubj<$WWBZ4P+xsPsD?hV*bb9*wAAdimn{F10J?K(w zWh2MeHDN|}`nLCLlX?5RG?hg&pBUynT=w+bwu$cqu6;{PzHYStwu!@?z}}ln?=Q-X zULYO%j(gjQ-*bPhiI@DMQgoB)QQnE#PcxJYbD8&W@~?Qj>8&MCsluzf>7CzJeA!la z@4_SBwjGs=-xz1hExa~c>rj2Z(x2#1ru*3(`*xczbhkV4beZrgjy~C%;QUEN?xK#; zoSyG;r@#28y|ns9>hvR9et*B-IN4UYR6a5CanDSNd;S_u3Ox#v2TT-qC@=faa`;2j z;U7(m>ION#)UR_{D882zzO?_|??2sjQ#aQ#dRL#xdC5H0cGZ06jW2y?2`v&@vt&hS zF7G$Zxj#7%-u!o0sY|tdPs3a9;H{rmy6}E7Y|8KvJiRIF+wWawlV{Jm>9<5|9T$7v z`f_CfwT_TOi*~->dC-FU_Vm@ec!WOA{XOfU%)yE72D@+6{SCPJd1(eS1A`~m4uKU{ zHpJ=vGo3PJZuswqv%XHa`rS@B`&W$C?ax&=>ZCs?9%QeTHB3uBpxw2A=TpbeO-jdD z0`7h0^f~pi_s=sYhZ$-*r&+U4op{Zqvi0HDC30M!CvDUbJRLRb@A{hX=C8-=LQ*>p zotbOhd-*EgY%68%3Ef8iM`DDNLnQte?NktdkkjI6;WTmbPTi~DlG51W^m`lS+AQ<=1+6dIx2Df>ftqB?!7kK)@eVpXr5tkK7CKDUWK*#9vj=o znN|t2+$J!4`JH05;A8NOc-%85yyr59(!uT5LEB!ngSsr{sqNXb=fTgzjQjuml8<=Y z^|-K!-{F*TLr;vveEa`x|9`x0sB=EsMokIR+g;_Mz(R2;H7e@&ut&)&VJ zGc#j1%l5l3$Y66d@=i{-WY@D0iBz=I~F< z`)+ji@!4PYu`hQuj?et%v+H!s9%hEfTX$`rYy5ln`u;cbCSAk#QNkyrb1KWH=gBwu zGWM7KeIMt~*jC`6#nR3=Pu;>w;fFGlyx|8yKH-4xWrw&9cU`oykbcSYKJNc_C$%i` zm4!!+s?B<3FnxA^z3#fDH}o!UIqO+hp=Qr_na+%cDOVicj9oDd>*eTh)B*$>W~T2Th*Yk$gd$%UGv*Jwylk}+rP^lRBr_Z9pT(kGNNRJ*#~ii+F%El2K9q>lL^!=SFNFCwZLVV-FP zzg|xgo)mv@$sdlXy+R#lC#>=?R+?mB5-KeD^SmYdxfofoSH3)H{h#+FNHDdXbXJ*t zCe+|KYyAE_N^7+*y_CFc!W8mmbN7j(iB=Uo?ZRH1w*r!qZNdBdY8&NU zle>=#-jB0?eEt4Eu8AF&FLONSxcso;rNN_$IkO5wy*U5>-Tznq$Nhir|69-b{Nu|@ z;kti6&;Mwz|Kn~TxUc4C)BU>tyzBFuk2(JTHhW$9UMcsV8!S`T8QwB2dNp0)_j~{S zeXrI3zUGwJVak^!@q~Zkw5Joj0pWDCf=&;Va&Cm0s z+B@~;>}z)||F6H!?y`iJ;qBV?JQd!*@4n^#4J>!cI9V6o?|zB*(cYsoY!YtFw)p;T z$~Wb@v*A`gSJW14ak{wP@>cs*@zZmU@3ZNV+^4QQ#rhA&-cI%kE{PuvkH2s(f9YRg z^{1!s2gmz<1xbYhjetW6jb+;=mOQ<@KQ>4^!+LhBU-|7g_nUI-A2A#)S-i|&c;(~x zOzYIlb!Nw&s8_nbVn_~peb{39?g{f&$z8ZUT~B*j=`kB^9j@eW*5}n0Ywun#-|DA! zf5U+jX08R_pFWzKx6fRE<)4OAKg3V&UKG2@N@3e?$rgbC%R>f`FAn&^{n4@m}lnHZni~idco%7fj@py^KW}|eU$1R5^o_!VmFlI*i z-gQD8Po^Xs*IOw$LF9->%0Z3Pp>}f3n;PY+qxib zk&quZWAe2P>KmS^o2Yik=2@3|oa;EY7{ZJ83ux$B&!{&CA6P8E8BeU01m?-$t3FXiHX#XRBks>1ye4{a5nad(uM zI`}@4dT3+7({jJ=H?L*-pP%RLAI|^(Q~qPwzo!3x|9`AM{Nw7w_yU$v7 ze6Ietl;f`t{df0h_z4a* z!qe~Sxj&hf`MmLq+55>>1Vsbx$9#a zI~aa^^f~7BCVRJ$v7?r1a$NeE&#bR^&3JgKtoZqy*(w{S+&fgRT)XOzfAO`evgf*D z=04GixvecAGkbmQS-$DAj1v+*6o_TCIEvpnv#I&!>;2Mgfzng;jKaG+n#-G2%~z?e zchJq&|9pvSPcdKIpLYdoC)b_3WVij9{siG99bUtWv0qoMVz~nf6-M8CRbKwhzxn+g*Kx0FrEjhXJ4}iVKQyaERn>Lji{Mjp zpEJ*T?&`zoENJoGuuplJ;R<`F9*yi{2YRMVUYB%D^v%`7hgun(IV6q?-pgz(Zrk%D z=;X>fCo)r?FAS1OnzlJ%O=3V<-LWYJ`}QQphTGWNHg`Sv^R3NPPhi8%?^$I>rNo_^ z(p1eh-|Ie;bTs~|TyeO3xUbIpry*A|{VvFDx1`kTv5E&JcGD1W_t zNZG$}3zJDjMg5VNKN$7>?H`)d9XjA&VA8Z8Z2vmZjhhy#r5uqi48J!2(>kHYY++gb zq3ix|ziHbw@o!8h)2ht88wZ=Br|&KQ{`sD%Zp~T8{>;E@CD&T4bkD3?x={D@qFH}} zCQSCd^5)ibpS=$_H;TA=*+ec(P0{|ra>$^^decOYTa_X!*zPI$**16ie%@Im{z**Z zNRrusUB>GtPcQacnpkEl>%m_uFK{Sh{$i=?9%4GDv-;{Ile29Pug|;way65J>8IpS z<1L-0Zxs)%s`eM#u|(7|Z{qN6Zb)LfwbCiOD=5s!0li_1L$Jr7Tt$g-0tKm6;lOGsoEEBwJ(rEeM z@$vp0G50=vD?7IR`uU1F%SZJ;@xA`K!O8~@odb?LO)E;RA7tG2kUJ1%&3R_TREs9q!U3jVEXFu0pTcfl47#lKw1RuZhKH_hPBg5luAE_@+ z+*OK={I4mxCfmiwb7@cKf$Xgxm$rR)G0*#P0P?pdlz2`NwSF?Cz>x~nu& zaPzQjN9DJIelIi(YVST=4AU2~!CbB{J_%FlN@bAryx9?7~VY05pR z>qd6c=LC)GE5GgjzHyDV3@gv&jzW$GR_C+vX@9;>kN;3)wQaM;be@SV0%|P>?|EO7 zh<_g5`u7{#D}L{NR7*~WOnqBx)As3Q z>>6Bwu&DZeS~GyEO-*6uJB3ZoxbnJ`2GD!HO~{x z7naH^OlJ^{^PkqWW1{2g^9R)CyL_K4<#;NvZN^mH73nLlEy@-Wc^~a~KJswEwa}UW zG}jAwt$ldODY{41PwjDXw%y5P2ktl(99iU7I)9#nXDzG4xi>MUEvYm01sLwJZ;+nF zGo@4TP{YfD4HogeWuZ*76n-oSUiMfleogDV-JaUgA-kej)|=__<(#Z)5-|?ocrjT}tYXUJfSrznd*Ajh9Z^G~?Z$1aU2UvFBH7R3@$TJ@RUuY11Va#t(7L zO*aBJyR6GTRwsXdhu|cE>njARrgu&E%Boji+A@XZaL9qnj+6hS{N~Fp-ac{4Or7UV zJ1<=`?a)e9=F+&RNXguQzy@Uxj&fW+;uDB z+N0pV`d*q@={%dRc<=4AOq-l2)Uf3GJxdmr01l40-V<}TN4)HEige2GTJ-H|Yx&Dc z>6P1>S4Q(XDTDee4O)`F&)vOzE^nXgnGODH_XIY--J!X)()IZ!&)7|G&2D^I(LUGf zw(;9}A7(M^%;);YaVI|5cH+vPfAf8X?^fu2Y5i|j;QyfdV@svJ#7&mFA@@2pSInBQ z>R;L8Pak^cEZ=8-Y~CY}8*`?;lm2q=SjV(Jo1S?k!SfGWUYYYQJHqWrHIKLQf6-M< zL09b`PTb=9?#T1F*E84UZ_%?@dT)hG!-{VC-3-UsYbt&jFZ-arN2dN*;g1FfcMHh} z9=;Y+en)(Nw{y2*ukeQl+#6oIzxsbS;%!;|+Ar(3DyNh^j;{C5`DE14CD(J*W}o*t zjk%)wjkEq)ExmHEHK#QvfPMd}-lJx*Y01UYgJzvMzS-O}{-9Uh=kMxlGZfu;y0cmK zh-I+1^E54CvGwge)x-LDrSa>6s&f+4zE8g?pE-?Bbp2nE{Uhny$ZL8QU!-_$EZ9C+kFgcTxlkJw=eR{aki77L~`?|Jvud%4Eek zj;>OPl@tD}nYV9X(>8qBb!2Cjzqj?Fg>lb$7WE`?c<8a7+hlwr^YPTB2Ru_BuUAM@ zc|UROhN-feJ0f`W&%BBXwh2C!6(C|$B*b%^@pX-3mv&L)!_E)O{pAhjvn^n_TyVgk z;>jK}KPSJmjL?bUnyZvnXwK{l2s$_`Jm#Jlhme<5@(i1{i;tJjw^MlDl6vv#q067U z*D2-P691hez5R$~FL&E5m+Sn_6BSmpnyh}i`Be4MJ9ewto9_Jtz+6Yv=K5 zi~8aV!Jpo4^U|_j^RsVG)DOPXTh<5dx$hk-`#5B^pk(rrYa);CF1{mmE_k`o=9ts( zY=Tobbz=i|ZQabaAav3@<w9-2>55(EAMQR=%wG~cL%n4G z<`uS)o=JRJF^vYR&2!|Z#k}3Veqq|=(zijAe>G{Iefc_0bnQ8}su^#r-QVch_U!$; z_fE#Gx78ir%p)`Ht}l95wR_6WP1$03sS;^&jv13?Oj^5G^^)AS9KA{(zx*kSHmogI zW~)2qum8Ve`Ahu@%fCI#FRS}J>^nuxX#&JMQAW>%10dh3uNUE#~d2Zy)Zw z`#O2X`@MN9SASh!#{6AF>iadGvIzo>UTsTyk~VJodO^~sIzEbP{=MLXYReKOOf!AM z&PMg`w7he5(WKyOPBB;ZUEa;`sfyu9Y3OB1C6@OFd~&a62|SmyVY>Wb$+Xjki84%m z%NMJ@NEP95l2BMueOonk!p`}f9Dd7%j}@{ooO!*pc44z8(`J!5`lp|1omiyRxa3^b zi6*Dg^tp@||7P_CUTjKr)Z;u@cK%%D8pFi0UvejAEr~FCcDhN2^{|11LqrnG48u0Y zbJfXTwKe^`8qZh-KFj)i=lEZ%{tS*u>7}eChZ`6U?K$)6eal^gJ(WI=0h{*RE{Xek z$ei~}o0>q^lD9XOo_pTaXmF*CTemm=$;m@?li1!&>6j#3^exSHuhWrb3GXKqHEHuX z95ay>Xme~{Ec4)R!YL7_i9I1gb1V!hFMktH>GZHle)1a7@zhY{zTX!pI4a zxF(zu>wnB3#q6Z85A?D+de;SdOltJhrq0mZCWz7Y!#U{G(1>Sx$Q^xfrx*+F9PcLOfmz{ zJmETXcA3@DlEy!Vb24D zc;B{cTX*A%&eFAK*YD3L`uZkTD#7vj|9Jfz@n4$-nU_wy^TO-x2aU{^wn@kO9p!(| z?aZ-DU;B+d~B#HP~SE2UA>2{JA?V^wz*sUpE%yWT3UDP%5|sL2Tc@O zl-d5b6j~&H@&91cn94A<_eR*$S)o#;w{0&uzkSnpJl|2l^y+sC7lbz>Fxi+THm)+a>1=WFJk zb|zfvRY(`ZlbrWj5j~u5V-9>QXi0X95i_u~xb|ev&!V=^3s3q6sd*<}nN$9p`H#UZ z)wDI5n!$Hhat8NFEt<4rkyV*~NaZ3C?SL*P5Am&0%0)9*dOm3S{`-q7r-hIDZA~f7 z%_3*)GNfkbbcv@=TYE0(<&|0666Tt|Iab-9Fq3!E+tQ~!ci!~PEtKBV_G-tT&jp#^ zkM?`m6x6@k@%?q0qiU00$|uG6IT5EFr>)_dDB62d&dK2<>+{n`FNpo!Y|t{d#QTl$ z%7bCQ{uwv%TdSL$U47z1U!YO;4Y9?(ue~<$NF2JsHmzUYPT?H4U2Vm|_51%dW%B%Z z|Nrm*PW|}#g*H7uetZ(#|L<%0pMSr_|D68+h5y66kH6oi%PeDVJMiP{_wCnOj<4`+ z=wrQH=)%Ew&(JABM(ruX4ZpzR_L8`QNss z@6EQ}zyJC_1LNw+)4lual9ZJ{oi*51$o$S;E&8+8*|YEEc5Ybjy}guocfetTqe^P^SEs8#%H|W zPS1L}?yPeT>&fR$61Ue@@WnH~lLUmPsnE;0f5I;C(33Dsx>^ta($EoOb065haoBA2bYR7`g13 zSMHO*lytFrd*xI9X2IA-gT5c%-g4X3Rvo;aFL(Sh%fzPmf4{>2?4LLPWBmWq90JPA zdQR_Yid@><{Jlb{cu&)YwI`LgBnPtV!mIfBQ1xKTpI+S>xL-A(d&d10D^g3cWtYtEJt~vgStp?qpw7Ies3%q@S^c>} z$+UI5|Gix3ve3!6y8nM&#aqtO?QWgbN{4lCZE$9N=P6mwFtOsk_Jgd{3yNItk4f*> z?z)wy>CShLU*b4t`^%1Gi-cKx5_dWT*tiWI-F@PEztZc_-vu4D>VDSC-j*5{%(v4B zFPwkL>Tlgrg-w>)VaaoBuOFDDp!nmE1{-r&njJ@gz8w3>J3P&MzRz8%-`rWkbb2K# zt7gi&qGhL5nJUVo9%l(;F8&7`oO;vV1xon@+Ey={qOo#ep=ag$~ zOgO2X^N#W0B$lbRSq7WhbT)=xN-@f3`sStAYpLjc@b%9eH7o9apQi7BaC-Xvk6%xN zYTp0Wb^l(<8}Kmi+qW-~qlf>zzrylk-u}zekCZr`sd~TjfJVm&&$WHepYlHTNLYW# zA^p?QJt;BIjQ8!W+nU3Z-x$s6fBw9N(vBFtirQM&#)L0<&AYQ1H*)TuqAU5K>TlGN ze6~z!4)Yfqq94YH&#(RF{kuDQ*NllPpQ@#FznlBNeCf+A!6jc`>i_x?HuuHv<>n9f z-JBz`EAhGTeKwZA9qMOo=l!r%*}jOQ|IyQ>H?Lk^Yf`X$)8+Wzvzw)_Y&v!O|Fk}n zYfIH^CvA(3zW6U<O2< zc@x)hh8$$)dDxIR=fR(ps;>*!XKy$vkw5A9ymL`cZTD*Ywq1Qc`{w4&!%M&8bT zb4~ZsQT_a7CP$a}+-7_@=g^9i91Wp)E^97SdU0m=%qmI`UN3Z8Eaq9u6s1EJX1cX^ z>#wS8VoHe3Zh8MqdjW6bBH=#Swgqn1pVxfc$5Xp+PN@6*;w<5c+={C|Cj=xNDVcE~ z=i)9^&GN(de$NV<;Q0NflwiYz2-{zsTOZ4}H!odwGbF{$NF~gmh4Hb=lPxcQCHGie zy_TK+|6aA~2H(pZpY|DUo+-I9Bjt_F`8KYKIp@>QOj{Mfy?2+!vo@0_dzP|Zdwns? z+NVH8W6wv2?Y|eyboy8S)ZPCwGopqYdkh+Xm00U$9kaR`9qGgo5E{VzDOMx zc^Kx)RB|s@(e=ig9B<8z4uv$Hx;y72UL1_Sagd*pJ#9_)kzK16B}uTctbeWgoa6uF z|9|a2oYw!}XgcrX^!#(n z=r^2pDBvj)?%+Q6+`PB+-?psHlO{#V6?1P|iqBBid&=)JUZ|w*Y`olxAfHwT346s?)RDP z6O^&OK(J(G-Ss&vw@P2RMCVoCXL!>wYf-$%$&$-A!<+a;87-F!Xqs(SQ(ZDW?P`?$ z1D&N$`9t&?i{;J~O|D#fuB6cX=kqxmqdWwJAHMv;BL3z3^h#Hsod*w`-lV1epu)jR z@UTG>M@J!R*Jc^U-leI(b-FVarntvm+qTXvWO?4bPnyX`nYOQR(Pil`nzP{*0b8w_tL)jSDP2u+fHPAwd2weqwjmSy^E;+FWY6m;NxD!kXDa8M!$1{hZfvn zE8;os^@pd~y-zG8RjlovHG^OCv^5vG6c4c8pT)>f&>Su};b~5T+3}B)Hbq*l&i(YD zX0v9R_d1znf=@V}|7_a-@6-Dqf4|@V@TKN}l(L`t)pzkeR|S&~wLj-)5S^p1o#dAw z&fq@l{{n0F&HLH-R4TmAYfSn0?N|3LcJHqh9$s&XO#exBXg(^M_i(SPd^>|C>+wt` zy>>9=JYjPf(9QMw*1^iTnR|-{#-)U+1UV)am<}S@X*IA2u3a4lORsl~|D`S2R7Q z@ca&T`#&#gt*(Cm=FfC9*f_7G@tjh8>7L8ktyh#n#k4PawqTUGrL)7?Nms1X3lyzEl9y~ z^_EjBBRf3|IBJcbWxm!BoDx#@A!@P+qlD9ehXoFf2cLfJsf>#bS}>zGlS7%Woijgw zeSzQo#2)RUCENaobxvQUa6>R6>(ACn3Zc#C!dsTTH7K2@ut}3+PxCs-IbNc{=RUZ~ z$LHkVjksAFr0@0P%e=(tzT7ok9h!NQj_2JC=qxz5WaIA(+>V}{g|Qp;xPyYikIoUY zF*Y*pDxUpQP}s&=M15KL^yroUo$r6y&-^a`LOn;10ZU8Zb;~Z5o3A&!x&CyNI{Nx< znrOsleG|=zvuuR7{o+tIKYnai8l$y`j@zn|t}78-$z~_#ocdhy)~JVh&-MSCl#3(w zJb3$utElDh%LUpi4oEB$oL~2gvryAwzW$HX@&8(8h}Hc3B>iWBOz-y3<|&;Wk+F=M zMGC?muYdfq<)cKvC+TY%yw1II*I~Sk1 zByw8!p4j!^7kZbbztLGJ-Ti&`cYclRVQ_@9sVO78V!bzkoL@ZSI?s(Z&xB%A7gctHAe)pCM0h3#g!z4dWMFBvz#{j>eM!x;{lvi0@8r_;7aof2zG zbnWXo8sA&dme?>~t>Fr1UT4~*#}Yp0WcU&%FAxiQ@4Wkd(YX^hI7-h|dk1QNILFM< zAeyG6{p?IuXO(E`n_Tzxui1W^e|Wo5TWV5H>816GWlwHvzu5Bc&2{;`yxWcK9R3E* z){Xcy|I^)7Jb@D#eGi@H=wl3g>JY1Gq1|&Xeah4xmVNEI@{1V19G~6rZ+E<_=sjk| zjKJ@G4r^YEw*CxVwC397EAQeX#2PlQ>6|6v>6*Lnb)&}JeNwf`H-+STvk&ZYODNKC z)ehx=M@B&&5yrTd*ht*weK@OH(k$P zUv<`1uziyFlt~O)ALbeMG1~wCV;pyXPMhsirg!@mf3{)XW+d5uQD?!|I1WV<|Nmn9 zQqnU{8cgNiRV`pHGym1`P5FncSxPRm-QnH#vb`pte2-9PK-2BQk&T9!8Y->RDQW}hU?>wUHa`SUVQlRyo;W@&%L%g9K0^!bnn)xxmm7f_-j~G#7lRry}YXa z-?P>O%PdnZ445S3bdGIdGUq-iwg2$3El-zS(lMWL_+0t^&kx^ESd-^vZo+tXiT{oE z*>9eh-92}9o^te`^H&;GaCkTq}34Bn=5uDZU#M?S8Y`Ql#nlc1TWrZ9rMf`2z zS+pQHFmN5yQ?9qUccw^)&xyYuGRx!Y@A;vto}P`mzGR|7DuZR4a{HVFzIuk=34R$Z zd%T&a{Z0_RlZKq>TGHUgq5xDuH}~L zia!&Q?);}hs&3&(V zI5t>ad-S$R%wc(&{YnijV;rFRi@x1%T#kZ!cGymL=2-hp77fOEA|N4Ah!LOt6 z;HEXZ4k_Jub%v=Yq0RnHkM^S1O_t|6vX5N8y!oS-42$F6uuE>QUgU0EeS1z(V(-g$ z+deNTU%4hAkJnN;*nZ`{`tE0We47qEST^ZZa?#Sc*3rES@BV-LPCA?I#-*U@NU>7w zd;9F}@id43WU2mNS7ouJi2r7^l1iydMRD`S>#p0QH(TG?YG?dy}jepjhKFn3PFU-nXQQ9Yl-zV{Y(_i_w9`E+v_?_Zbx#86$>-|Qj!wptgOt5f}DN4MpKl_UEc7KsO zJ61gX_~Bmc|6FyK*egcwZ|w9f3;zDWEVDR&R~+l2BT}X@{C|T?|FNX?D@}E9_kE^3 z_i?Ogif7=-BCSa71hqA6~5^P+neNgTEO(LzQ-TzM7WWC~!qXjVJez9urTZi&x6Dy-e>{|E~|TzFQiqq@PKF;03=WS2ZgZG+&ISO50C`|#Rb&sFN@wkeB_Im)sx+V?%D&sKBw zPycQFi|dSEt*f4$^L6i$t4~VQ-iPe#dd8t~iE)WHOYuI=19!gus9(R=KDW9)|L8qS z-8nH_O{-V*DoMIH6vSOsT$&J>c41S~e4U(CYOzieCZ9SuCtRfCaaT&+_aM(EG0U|n zet)Zvq-0Er(g|+8r7FEL)K>o4&!*IiBB%HNd3s(TMTSrKhQR8_fqylw%$vS(ow1+4 z@UfE*r^o+iHeCDT!$a23pVqGAcKYyvaoXbz4>q~%Sl?A3%g3JkV_)i==aL4O7bi^$ zPcZgceTV(M?GlFP+qn-tI2fnf9jqCCYVB*=Z)yv(gSV%ag@pZ43!CQ0w!B z6dTdp3$xxVTFtriV?jnXgVm92?ORW~I15Y}zI}TWns!6-%^j~j|9@~T%=+qGt?P9n zXQES+G~c08$;9KcukOB6CFhZTKJMgwQ{ByG%qrh?-kZOdS$q3e{Qi38D?hjAyZ)6j zdinR^cJAufS1)4O9)*7Wzj6QXAM@``xVbKF?WULi8;l$i@BP;CuA08#i|pax*Y`TJ z7N$=*q;Zld<$;-wtB0<|%WD4IHy7k@W_)G3t^Fc6>))Qpf`I89JAN<7hsUT8R~3GXJg2p9j900*-jX)Y72Hb7E4#OnrqU8(Z7$qD&E28B;zT%9`tSq`>T<0i)c# z2Pd0K;}n)Ev>aTvB5T3nW11HZm(N&M*8g-$uglB8uBt!36I;xK{8c}?COi^*BGW;`|>8l=v(lNvo3BY6SA&_Oh`U7N$hjYgt_9oir3AQ%v7AV zO?}z-&P(;T``^{wKNFe|cqZ(?rtsNMXKc{v{+0D(4XgBlJvtK>i9Nh}%ksw76G{^f z{?L@|-Wj(%?po;9H-SmfmYNeUAGUN=3%a6K5G$U`bDed*{r|qxPn-V#-2aFBS>>_g z{PLobCs_6Mqr$3(kQM&b+IVD}% zue>s`-%@dz$OLUZ$Mq5~7VTKMUGDv!Y>x0W(QqM)UwW5c*KWPue`mw>ONVdYoMhE^ zWbM{fzY2C}Z#@#nIbn0mN|6oD9PcI@{I1$lALYME{f$}gk8c@w^_sW$dZu5z@o#-; z%ASdmZ;pmnY^vKRrKp)++<*IxgW`6bKesk=zU|g~Jk5Q>_1;To?Oy*o7nnEW^z6+K za=SM_*S^tyJVyma64qN^uQyB*7Rvs>C6JGDn?=YlCq?&hrgfBTYvu5JI^%}zwztdEY}c} zGpRTGG1HaWimhz5)z!Je2Ml;}?a%vYtZ83ebxB<{*EDIOndoDK1y6cD|2!MN^Ru5lg6uNty5ib*^7ncB%wK zO;lYm#n70EZOM!Wha2p6teSF#FOWgPZGG@6k)FDS6V&%dALM@rlrT}~N4t87$gj%6%t?S->%r} zn>KlN&ORI;t^e-)Qa3KPa^^XPvv$l9J!oY7rb4$%CFHUBaXzKI=5ue?B=5Lud-8ga z{j20VUw>AsJFGI>9s75Ibf^6Lb4kzhq?uKpT)G>*U;l=v;mtQ9r$TFQhg4o?&i?GL zP<5ho_0}ENZ1;=))Si8VH~qe&*6u0q<0fC5_a{*O>dyTaWq%&y(|nb}_g+S9_oF1y&+RHH_~83} z=kne!XFCeHpM2CS-CgK4`_Jl)zIT)J8-;F^Ugt8O%6n-MuiID0<^QL2d45`S^V_Q> z=UpV68u<5>?wz`2*{v_(F?#7emsh;WQ@)b-Rdh_buX>wlgnqjn9_K*6VsR zO13{;CA`qLurxN{I-|b6{lIa_QEUvySdDbE%Y96_0szM}%$a zmgViPFMVnXCci%*79{dGD=NQK`^&+_9&RyHD^wO`^)Lm^elYv@iiW-CB9{tuxpO;Z z?Y+sn)2puF&h)T9*0;-->UWgHy0xFWsx-mKNIf?phHd7dg%WS(dT;x^ZcCbGx?@b( zn#-%$i|?J=dupYC;F{B1no%)(zGwBMXfu6Xl(3|<(c|FDk^`473qSkWq#tj;I%kUt zs6SaO&Sqo3|3QJp0}I&=o6=%lJj~7RQ7V}CVD8~PX=^l_7JR>#x>w=3lt@kU%=duzjS}h{@{ONbz`+loq`~Bj<_a`ma*T+wO*2FFG zhoPOb{Uax6J*L6F2bsSvNF4XsxAbQ2{XLs9XRUhk5Pl+Z=dXy z71?vU@Ve}hazEaJH#?i&CYNfRzxB78{p6x2R+A4_yuZrRA?fe$|Kr!!)t*U5uCR5L zTyaxd$|3IdL`F17tg(EtWQRf1^>uc~Ix6RVe0y6v?*2YSbyESWzQ=A{TmRNRl{e5% zp5Ib-sv+vcSF0D#w;mCF{&{I|dWY57$jwXF|2>tmR5`-X@Y$RRKEJMAFzL?GofN$% z*E`RIW9KiP6&re)(fp3QP9B?+6X*Y^dUOI4U5K%cW%$x`|nJ zQ>Q)S#0?H}g|wqYA9Ho=`d|6^XaDQ2pGL_X%r%-GhD|pTXYqY7JEUsdxoWNTVqzX!a4aoexdL9r)+OOcMMvDVF`SczMsHu;N>% zb+_BC6O0rJx^%K+7N|e*)5cjrVp&7xoRHOLdQ4O2hFNcx5oDD9vR$X!xAc{eo7A@D z>suQRym~%g=Y{I+5{Wj)`Q`HpZR8B&&rOheceo{Wu3+&I3qLQZ)2wHrQci|<3LV_Y zl%c6RL!W!v&qbCWw*A``qqjgm-a+2x4?~6ar>Qevzv-Tk6cTdy+kX`)jw5Xm9S6_Z zepl>vT41$TI7rL7NoDbAR(0;+Q>+turidL$b(|C4y=v>6^0ZoBUdilTGP!o%7ZtR! znQmSyD-mW={(e4eUu@MRU&E^(1J_8tlx8?vFR&rp)o1T@5y6uVX(A^zCN<<-Jd@Wf zxFn@FMKxD$=Q{b-GFSHq9uQRIc{@QR=xB$7>Pka*ozq-t$6kJ6nt6VKz=K)`KhF4b z>pe1$`perteEU|~rkdw)O5j!IOOrm9{%yb0x&9Aez2i8k>x2v|I@ zklQe=Cq^&SVbKx4OUvG#elFSY;O9@tr6POw?tOH6`gw^q#`EXTbAXyJrP)jiz9)FA zn!0iHNPbNlW2+KBVJRnFD6_@LNRwAmVZ)tbN!5);GJcEuEkwAHm!Y@t>CKd zXYA(o?-FHxa_c^e_0>r+tf$`Ik1~yTUBR|M`u_~w3qAFF-UQqKxx3QS>G!t-9{sk( z3pXcjQrNLhY^I>V#LZq&|1M0ZdCaU(^tPdVFZ1%FX&IqZj^Nl|TL5MZfs@V!M)Bv{hr5F59s} z^6BYKTi6IqCi$cV9nf`*G^n*$S4I&Hp}3 z_$haA!}Pu08`GZf3tX%AXV?~?dSPnzo(FB*<;g5t*tK3fJA6Z(=kCUe8intx{ZE9a zbaCB&v$o}BdxB(>O^95~Ou_#GJ)0fxWE`0u7r8)1@D$ao(p?^O#jriD0@qZA>Nyx4-rM_|bu^OS`*TDJd)Mh!W>>DJN=6&oxd+aGW`(P&4!z(1 z{~pI2O;v$8GY?oC5fL;t;88o^BiT9WmYK1#YU-2l$MXf4F70_xQ|El{)p@(#t|Fet z97ZAwc4Z%1^7~I^HI!PC1EdcDF_vOT;s3l`NePUy+emX3|)xRGhHX7i)@ofB@p(`HcJZ(M!nCYM0$ z_islh-89phP<)Cv!Tp!;t&#%XrwjEywC|WH>)7+6Yfo*sOW-sEmfNpy+eR84xFvCX z$AUeabCPZ5&oh)|U+}^<+T-NzP%EoG#={m4UO58QF-H4pf46C}>~OH~VK=bm$vg7# z#}d9NmpPlie^}G&lgM5qXJ_f+@VHk{aE|jtMrVn_Iei6w0>TeB?NMCEdiX+mKu4>6 z=8UViZ_j>~)54g{;jyhLd83GHaF@tQ-W_))Nu+i=ubU?qZvC*TPei#lU$eaQ#$xsl z=68)AEN%X@d*OQ4*`aw+liy#Ra$xu0Cwc;Jcc1wi=3CJowqLyH`vyjh-xoG-+cM#| z!+wXnRnz`_*!9rPzRybVnV9_fYV%`!so%}5MSnkU{kFk1KS7~%*M!`1)$8)cvFQ%? zUr&1>yHla`$dU3>=CS1~YSX{YXej*uz23uP`|ZtP;?Mp*-+1?g((G!b6HcjYQ_qE} z95`tDe82ByEq>MZ?M5fE*h>0SRt6MiO8u&7)e@=xdvu=v_lJ|hf15}CUo&Zm&eQ(8 zX_7JO{WHXLR=<QhWBQ#=@xG~aIY z*7R6C=~2t8g(;3!)Bc1lSui6jVV2sSy?YZQ#pd{_d!OZAu*%Tfo}rBIwG`twG37M@ zwk-mGGCtJ54B>I`6I`Fa%D^MjH0*!F_U-1esTVp5rE;0>775Py5}>z@O+#~`f%$wk zULT`PV%9p|H%l(Mh<$MSR&m?%_H(9?BO2R7oidO38yP*l7NGIFK6X`XL6gE^%P_UN zyBsCgq=VEee>yU3I`rH8+nZzhD_ZY{n)V4X$O?L_NX>eoSFO!AdE{@8|a? z{rVz&OyEON)j&A3nH|{6+Z$cZF_8 zX70C5S2ZtN2J;>?b;+=s?>Je(qTP_^#I(N;j&3)O7F1bbe^f83&YA7?f$;0XrK}FI z1v5&t8E-CRPHMhbHY@kcw|yMN;aAq3srAV$-K$=1nzW<*dUb+xeRC3bUc$Hco;UVe zUyNVOQnWsDhp}+R1Q1v{-Diwab>TNN8ie|x$l(ia{cZx z&z6Zli!SEBVoH1(x3ooC#lE)>z+lS51IZbw-rmMaCyi|qdT!G?4ueXQG^s5U9o_lWW z6Dwk624T`GC$itmlz5ANXY5fBml^>%yw#x;VL zpw^3pj9;3_k+cqz7gh&#dbiH>n#Qki_gs;6$m%!Gt@sz-o3ATtsJbTG#V^}=la}Tg z%WDG5PH}ELZ@+X=o6of)FS#5a#Mo~Px9j|6J0s@yyz0jZvH9O`nJ;qt+O&2@d56Q+ z&w2K*cdcdk@OHxeWsa_DuWX+Bu5%2ZP^>5E@xo_X4wrt^nLXbVo=>^%Af`KqHL>J_ zp2?2gB4+iqjYpPTo@!cnue#@PMsMzck0pmLU*=v`(C}UPnPpBAPpa1(-)BX2Kk9RS<<;~zJy3J6cx36TW`--{u|7On3Td>fb_rSH#Q+Ka2 z%)ESe@sdODMgPoR^J`wB#}DRy^|R~O8{H_?nRItwd*s*8hYb?ACQocJ`DgwkQ915v zPiRs3ETzf`+rpX^MNX}s!>sBdI`>B6{_shjuP*iRL=-hnVR_|ay2?1>)XB2ctOVik zT!t>uqe<_o&+t9AFta<5<)#_By3S(78@;DDBHq+qRGOWY-F&lTwXX1i2XXm)twC2# z^0F>nVEC%oWL{(JDlfH^&!^Rc*#2$OIrZq<;#HhQM#&2V53Wu;H!EDA^7hfyH38jj z0WZ$)i#YyR@LqL{UjB|V`4;hMHUIu}J^sj>dA0d+b@9aJ;FU{k-QqXgDphbYWc6|l zT*X@4n)ln{$*qRmSNz6eQHw=mTr01H-I%%DDd(YusNsqW^`A5Mmn~RxRPy$h*kGBb zTKxBPShuYg)m-v^@3{g~&XBKnc#4>gGabLspug#n(oLz@oT^W5ac9%y->x}0wa@Lc z_eHPCi@78UdJ<|HpS?WrYCgYG%EhTO%)2vG_q-BHj}2>J?c<)5`M>zwTe*ZF=H+v^ zxj1hKFH2;ZT=#Agw}fQK{q`9xS9w2pXr!`w^JgByJR}&p0Q3o{Y4|T%;vtM_e;4|cZ!%?Uc9qV-(i-O9NZt< zdH$@)+NcG^@84gyX1w$-ko8hWYiOAJk+aMTPI_41{M^6sRDDUr66;f&UN`xaXJ6vq z%e9L)>6S;Mtnd6RXFXZV@G>Re`c&o%c0P(Xb3L`zIM4mUP@^vU>0REE8J>Qs&&nqM z?|nS>ayjweDU>nfbC)?L%y*dc zv4!Rz4*us%HreLqo|ffq+?X#P9IUlwk10dy`-+oG*bHM2^v^mvrH$ds!Bbxy^gWjb zi86XH0z0Zja6DYQ3bRhqnh$&NN=I@~Hid^~vil z9l6Spk*fSk_2v(OXGS;M6HU!+XJ3+K?&IwIYV~Z6;>~pnBhMZ)U3HO5n>l)Ov6-LG zRQ9y~vIEl=9WxM}$(YY^V5;u!eSFVLc8Rx6pUEgLaW3=Yb&VIh*cOBx@NRb4el^U8 zGeY@>;UNR5nD}kWHr@)Jw8-+*ZiYVwE2cNb#y^+2QN3e<*OaXDJolV7xGs8Hjlea!~J*N>VE!^JlK+S;DMQqK-p3*>* zyFMX zI{l^o$RY8Yc0YIzt>`}Ty{PB6_~qZsf!wJp7anDOfB5fv=l|sa924aqvvHKRSZDrU z8nv;bw5mk-*oT(PienOf635k9>>G8b-gI!dyH)V*Q?-(*t4d`{F4o1)dMuXp{JMwP znn>rHe1SPVc`wbAM71{S|KG;uaaPc8$&KnacZE)#$(*9SU_-$HMIH;Eh^iy6%=JtMfo@O&1L){tr=}%aCF0(AiSmvlF@$`aImJ`RSz6jxIPkTPU zmVWk`^>mITyPnie?M$}=^C&wJ_;jA-LQ}?4cb+&uRrub|m-Thv{JV)v)3 zxL%xpxa+_gJMGzqol9?DHT8cwzm%n5wPscS22)W0?M9=PM6HJuYD!W;8gP78cW~qx!F(=N{+w`>yJ8%V`|9q5B zh&w!Ta^Gsz!xt|m)lFs-5LBL)aZDpC;m{e0Wh+~cEQxtA_wcTD2~2i16^Cx$mVS16 zso|6O`1=Mtf`<(rU2gZckemO&DS-9BA{P(0MtK>pc^`kC&Y$2kV;OT?T%3Uq^D8h@8HCPBoWh+mgC3uMTmf zC}%Zs95zXc3{UY)n{`-MZpSGm*~y!>aSL4Uu+Z1AT$#jrNnlE%RKX%;z0JF%76}|P zSg6u_L-dpx=j+Fx6K+jCc;gGpQx}l~o8QfnWjJN!$lq9K)AuY$gLm27WgDyJOB^(r z`N(;FB!`@m;7*1ZE}^b{cV-!FpZn2wEMF(iO@6Xw+p*7cHl#6q?0Ec8x$SU6rR2xc@BjBj zq!knjBr@)DnWf6kvXSYE^PR5R3BKRtb~ zvC!sqGgq;DnjW3Bt4TvzvC6n~tBOq#!$-Z+DZ7kC7G;aAlMyToD?c(T{MH}#4Cl6; zSAI40-bt_iKkK-9tcKwADRz$qHn6_Pcpz5J8xXogVBMF#+_SqU&%75ba6;Knro7iD z{KxJ2r_WB%R8wsKxqu`4$E|sHcAS*hJ|Q}9{rrupFNEHmU@*V1a_8GUd(%5unm6X2iV1glf7?o-Wx;A5!)N z1_dlC>8r2ONZCF8re({)#U2i4xRWlu-z#r3O~qI6QUyov$@vFWILwZuxo+8-pK7Z! zw|2Ws@a>h&-jgT%JW#OYh2J@*$IG^UUfz~5Q9WgM*c9P8E!*w|RVwJb@R)66aM*KW zbwH@WJywIG%XX|3HxJGK-PPf7Y?g3Q*DI+PGHnMNWetwAnlRrpycZWA7<8;~)`!pj z_7DG}%|eK$`WXyI{Ea+Bmf6{O(D|M$Qv28lTPMXVP03+$Zp~{*hkKan^TTKjX4$&dT1ip0mR`SFO&m zbzlFqe(Bt(?KAQXD`-zSBrA_yIZ@M@6^GWBo|N1?es+jKI zyYaMIeEGkE@-p@9llXQT{+M`|cSY3)_w(QXY9#v0@i?Ahz4>KZ=q%+{-Op7G#llVY z2R?GN<=-kUlB?SCaNk7Mg5&FdHu9C-zPHskX5;$eyt_uF|Mh`oy z$%y7fDpq-kl1I7fqN8t|3%Sa8(WBv_TG-8xW<^0v)7Od1I2HItO%FPBsl%trcJB2g z^C^sPboQvM)X`Tp^*)&^@3(4ox!n5o>pKh&R`-9dJZ8~XQDv1R32~Uh3JiY9Gb&l}Ew_jJ=h1VT4=zC@6 z!RNXqVOdO6MgKL9_LR792Y>qN29}&U&*0_fu!<)>@7q?(^r<0YCQccBoT{$YOERxN z&Srk*V;3&yxXnSXO`+^rz-;A6|7A(;5*>;sIyQQ-e64=!vrB#3KYqV&}|IXXCYDWr=NVEwqXo+C?yoy6^a`2U8S%K5H1l@8=kFz{!n$xB0wtdQe zrKHBnTX(|Wc?&wav5D{FT6UA8!TP=MDs{71Ui;s_GdD}$pI)=dY}uyiTY`B7Zu$Pc za)~Y4_t(c*tvmP6Fu!PjS1a5U&GcLTjLU~@ zA+Mjv-np?YdgH>`i}oG-`(nnTa;XOEhy35~=NNKiG;e(WQl52tBioVNc`M^HzXVUX zqr!7ZRLdb(YxlJDob%s3)+W5>S$;g)OYDmf(~M@nnM>N6`Q3dkb3QJ(;8PfM{(F*v z`pr#WY_BhGH}8m@AF{kG`TzCTx9@xoP)HL~p4;ZQL_K8w=#QgU#Z>w{Cs5MO{tU7TmSxgeraR4`4YF!_baV`oQa#M5Pq)oipizJ z1`aMh{p)r9sQoscvOrBVk2P%a^BK%sAv+gxcF3hjMis^ews|JTe*gdQ?fqRcC#UN8 z7IZTNgkHMyI3=z8yz}}0|C2B4o8AqbDfuwZZ55NiOm@MTDNANn&p9lyTkIlT{chHBYanUou zQ0W;5N{>XfKTz75xIkP>{a4jqFknX*sq`n4ZclE%cI=#U`}x4wGvm;ytd|E=*KGu!q%*07P8nOYTjFN_`yH7!h#7)jnh`>aLiet zxFF0?(_H6!M&PyStg7-mWOwKPdnTi?wBne{m!zI~Ujw#A9dEla-Nv@}dxT`DsH(i( z^z~{7cv&+|*)Q(WThTgU^YhFC)58Mn1pzGOM@;tbujt+_`h2ah@~JqT+3OnPdhD;Z zKUv;WwTS(p{xXL7jjeKhO`1Eu7RpX-{QcI?K@|%@@jKCbAcr`W`uY-v92B|6ga<-4>p||D9>vkN5xjEKI~VPnzwwX!pHa zGhGVR6`6jBdmUSUwB%Oke6HF=W}9l&%z{%dB_DlQ{bkwtKT~rXSzqSw{rCL-XNFY@ zZckVziZ>_)#cWtBp3|+`qB1Z72cDT){AP01 zu|5tw4hhNJ2f8~ROpwW)mnkmHdw#>0^O`KL%v_z>4qLOdeVcpOOXuhMMIoiLV_v-a z9mL~tI5ETMRZ639c(Hv|Ty*0`ot6FiZMqZurddAbxWO#%FwgXS*qOqXs^cqDHebJ) zz8}go0IP5m*<~d#Qu|^WyhL#Z{u{&&s)P-HKj*uEBB`@-K%O0XK`Jf zR(9j&^R15xK6r<2)kxTyFlSEj`yD374kuS{?ypR`EX~1k)4R>{g!r+=2M=yuJ?Fvn zMV-r?QZ@&R9h>;Rc4GeQf16aerC+`5y5qWW;_+;as}=v3%v&ZYp;^Q~ebv?n8rA{{ z=dUN-1+}Bg*KA^nkZn_C&VBn`SEg&}ymQ;-{TBAPCE4`Je*evD|L>Q7%(nlsrzah7 zxzW$WwqZ%j?ZV@~&(Hs{z5b^;%cIN7)U#MuYgq=o_F10G{mbTm?zssEcv9ImC&h+0 z{Bt-dukn+iz+E>_I_-XrbHTzT`E_dlP1g2==gUZZV9@z{#Ovy3caHQe>(7Om+1~A5 zcJF$p@Q2FyA5$HqbJhCK`|YrJ%l*q_-oI7ORu})Qh?GCCx8%C<@AJ_=YUNio{r~^h z_|e_xhR5&ouIa6K`tk45g1&##_o!ChI`U-xs)BzjPkSyF$o#y&QdoBOjqtMLWzlRb zejSC5JlqGkuYK)${Z01vFIn%X+I!*$WCSZ69lpHR{crl6ZSLO{{QFK7)?C(XE3T9G zeX-c>ANQUg{aaeqtm{hVTyj6FTNkuEb92V*X;lXkKM4J|+9YE3jA0_bK^oBIp1gU(&gFIICg9kf=tcT`X8nsC$BoW)hqdnd|RDurwRxRoS2V~y`VofUF7 zM3|hfei03DOF6VjrFyMgCXYrCPejm$0(pIh&2nmCU%!<_i3cyxUU-f9=Z?n_OhW1% zV$!>JR0J=KP-$FvA*$d+w{Qj5u{rmSne(Xrt9rwmW^WMvbK$Ynd zg*WvgrY~)`I%_a%Bjc&%LTk+41qm>*9+@)X_1@~vi*N_ZN{a)U*_*&DOOkRyJn!a=Rrny&;2F*`@Y5d z|ENEkTxaom|ArT~+g;}6w*U9}{rKX#8#(FAc&_@d73&v$edkg3RgKA&wQr|vYBTbdRoA7i#K9e7;v(cDU^-|U>7KM%{K%$~y|+S0?hdegZXERNT{mR>&hkM8^fX2txgi@KC1a(`N& zF=^sz1`%7Wn`V1*cPq3$F@DXE;Z(4k_3)l!*<2100?tl?+I2^wua*7U`tf@0{la{M zc`0S3S|NQQ3d$ZB{Z+sO0i`Ta4IrqMpocj0o zu-;kLhIzODue+sgo6bGIxUH0l`R}i}|F3a8nEe0$DuxQpjsq7MUL4^)u;hVFC$Drw z$8z7*U0V$c{hZz`51$&p$A9x{Q^lYJ=k8-O1P*5{n4e%~pZQC^^u^9|D~_G-o)&)n zc??6u?7DRaZeM-5Hg4|i-h;MBE_>R|h~T{Ccj?aaDLmOfrG>ViEk3Wi%d9-xxbpF* z>FWwJmR}9Jz+4lRdi(ZUk(i^ozZ#}Y+G@AZwrArhN>GAK$g`?BGv$o73l@ zH!m{aj#6q@vGvmXI_(a*pS=y8WH!s(xNuM=dH*pN7Tccb`jNG9Z#%pD;^w`-FK}ii z)3$8M#Xp~x->g2pP0@3AgU^vStq$UG+nV}sJUgyA>mTE(2@j6WU^qT;;^)3veS^S# zi^Qy#Ue{W2iNU%nwX?2XrQr(qst$=8euo)OSnHY{mNSce7IvfCQuoFd_SM~gyle~J zl86LbZ;R$%*Z%gm?fY%(f1mCD9ohK) z$G5lALhd=IyK*DvT22(KX}Myjp0{n|vx)QHp7U>eZ+2^?!Zf>QH{V;oJI;HAQ!`?> zZIQ{Eva>6SX4JXOu2b?cIO2A<#M*!@!>xp+b8G1%mnm~DOctB%Cp&+2uu0AKO<$W2 zPdT}0{@QH*;*!5dU;ditb9+)k{Dkkj^cv^$hv+6RSo@W0rb0=&*W1O@9@odJ&$9FP zKO(v9+aKHg*Cl6u-}ocs<_mR|JM-S&x#+RC_R}Vo-|=70pI#BKs_}Y7+U)Y+b5qq{ z24qbr^LsRdThQ0?iixhyw#=))UQcYvbvPNgZQ=H|m5xOfyEd)88h0ijjkV+7+t-HY zpI+(BOxty6)MC6%;V_-!tF_lMP8b>-IhUaoZ0SWVWemjz}@Y&8^=`r)co z_wP@m0FTe)YoZMcJ7zNUF}|L}V>X#zJdREH&`yi~n^W$GuBkZj(?PGj(@6Hb&b=+l zX0xAeQj`C9<8RJFp9A}{|IfL-b<^u^!J4Bi@4jzO-?h0ZndviATJQsDv+awXbp4%I zxIg_#&P_(91tPy=4dpl{2A+DiyiWN>AqU@8Ca2|Xzc$}kQzv|L&Cx%z%vvTcT{P|R zqBXJW7wp{i?_pn%e#gedBf0@7GV^P_1kA zf6ZgAac?ViWk}xtew$k7WT{k_tzqsp1rO@1miwDAm3hTJ{ur%ytVtnlvhAn7#ZU7O zl!`_8a>Q(YZgORL@ah9O)5`eGJ8R#b|5nLk=KAlKMQY0R8xI|7?=15YeqZ19;xE(H zEXL&LK9Y8CKYqC~cZR9Yui1=w=UoprOlRDmw{rixBme$h{%(K!m;9n{Hy1YEms)Al zd+X^E#u?`?B&qCLnQH9jAw09M%_tx~Zl}9A!{1}KmjydqT5rwuD@1qlqZqqO-QJ6y z|K$BzJ@w9|rOG=xk%__V*p*$JjlVp%A5Ao}F}or8rLH8SV^Ym?SHNN$se!R|39$r{>N``rSI*lKfW!u>`>m@+#r5Vt&WQ! z-$J=nuE#xiGH2s^^C>}vZ_4+VJv*IWSiN?$h?1hB-%i%y41ay|&-7VO6P_l=;GmmY0Plb~6?!F&|`IcIjxt(SW^i3)s(d zHAo3=@OroT(*cIbimR52w7g~F`0($u`aQk-3LDOKti1DAQbl^Z!0zr>h7aDnG;p0~ zn>hdUu3U?hRxdYE*Rs7HYmHvax)-bAKG*ECXODW*rOTIt&v zF<(s%yIm>%828vTA+CMv=Y%*D>vP#(SUj^1?0A-@bm?-&f}?Ep_x{Oi{Jv;9?c?WY z?%fX;$@~AZDi{2b-?{Ps&1?3J{!gy|tiSzmReGz>iTC$!{*k}S{jsq4rIr3H7r9$T z56(Y5^w{R#{H=`t{IZ{JR4wi6y27~mK+E(wxBmKHb6oWNzHe};^~O)PpM9uco?|7r z;hPToJHh3Tvn8~;{#q#fa9F?_Euzpfxu~Gw+=jQcu`GLDb!}z0FM5$M{hO^%+Seqe zzNqTg6+ISGVlx;_S@&IOdQ`SoYo25N-Y&b}Ik64%g5T?~?k>9{{NCl!-9;?@4mawzI^{%R$gAdj*CbA>$^3t)a%cly*K@Hqkt2C&LmK zE>5{~@BYV+b%!S!JMlb|^gqUPVrzmu*QvsWBS#9j67KVd7~Z&8xBqe3{>K(&-XBkI zTe(^G@!NY@p7n3PU(R^_JjlWB`~2MLZ}(;P)G&Ay7P|hwG@o-Z<1G!(qc^^*hTqAz zuG=Sn;yc68CZO5ck^EKUDPXwMVnkk{kdV9%TUZLj4b%_is-)>S|(lDpI=8n<> z&l%HSv$7m3yz{ZH{`e%ZnCq*fw^VTapW(y);JZ=UodV|h6aDUb|9G)R;dz(s`yV&* zC(Kej$hAtj{=u(pUp$fp3sv+i=azc)zDe1+@nUq+{E1JZUhjV1@x`~u;4f!`g}KY} zoBvl^vgD=a8zb!Xevfdi+iqSh!`TeqG&l~pW2gT=h+<(uPwej-JJqNQzRm@r|^pumX zGu7}&=Fa)gy!6(ZYfPzpGCvzuD7bEJc=|?R@w4|I`dX~S6Ybw@)yZsad%>jV$|Lxs z#WCz{#l6y4N5vApLvOzcy9cIdMr?06{k1DKdhVea?7!o$M!oQrS(+rtu;!YmC6BgG z${|aQH+z3eI0XiN>I-uFl(e$_xvha#&#DYr<@YUDGzCsXiWx=}E$#SrZGB1OBF8u{ zu_ud_?u$n4;eI0B5veEL>@jC~K;SC%{jAz4{f{?Xt4$GEnV^-R_N2<8{ODbG)6<7` zm$xw%=(JurYJ`z4uOov(JIL-H&(0efU=9dVb@2)=p0Et{s2> zbl!g3epyv{#+hxEd)3}g)4W#tI{EO0pf4p>D>8~BB>tCgFq+4@*XPZZLl5juzX({l z^|LDz`xUPpck|2Q-5wO(6mUBBHcg7>Vp1%7nt{a5Fp;wgy|R+A59OQKWo|z9_*-i# z#9ew;NG^u4$nK$aVBxmT?GxX=;k|Op@7|j`f^3@Qb@qpkS^2Qc(tVkgJT*|{f{5>* z6^su~Uiz-Uk`udR-lp#f##f#zdxz&tLEV zvGr~BO1|>x(T==AVd}gLl51KL%~M1R=j-lb=y@i`b>+<7`o%XYLnUnHrN}>SiN4Ct zv*`AEvm^H_dFR)ASXEv>UenRRxa#kb%YI+d4Uc9hZx`qhIC1;twL@2{94_+-Jvfnf zxQo?E?tRyzRd?&dqz&I`e>}70+QEiJ`5Tmuc3W>|xq9zVvG)vvC2v;zG+S!>`(%9X z;r8lntHq{dWfebeyKLbZ@>cM`a-VOv{O&D0T$#05&v#!~^Z6B=v+vA0CS$c>xri{| zvKb3}TVu2T+fI}WVv(1Zw>^?^pFd`O_;m%D6F)8P<|ofdSef~HmqockNti>zHc6W! zO7;2W^S_E;k@zc>zGTY*W#bL&*yOU-e26)_D1DpVN4}Je!F!_rzG(O4ee?zZ&kfs6vTY;$=y3FGFp9mZgob3*;x}O1#{ii z@eT>x>znV#xb1Abj?wg+OqDu!^>4aKEf%z_-E&Du_4h%CoGn652U2(ciV$fKn^JT9 z_xbXgnm-4&<#ilvU{_T6Q}{Pcwrxtm-na!<*VfntEtT7|WO-QmafjEDXYO2^k{T%x zQgBs!l~xO9D1Qj2#?=^wYqlveI~`P#mu7r>G-HF#t4hhYram&Y8z;I;*YYv#EQ?ZB zEHT{J`y^H2u&8d++n%2JZD)TIRw>^HvUAxO-|RGgl^nXcGwF~* z{YEvrxf_l@yQ|s8|9A%Dyx&px%jCpg-h5M&TEdPM;K0Vyqv{6g~L|B zPfa)Gd9LrGZ;_|v&N{#4Ua^Paug%#H=YQ@uE_@$8t!2GVuC3~;%)@m%3Vv0Ke-E$! z?owJ6m~bYxJ6!(GobPuu;}-1uDJ-d|pYHUOXIYcS>6LfA?s2Qm^HYi6)4pDo;c?oG zx0^0i{@d0mecF9j>8iix-r>wy`y5l;Q(hHYzx=ZA7H9RfAi16@rAmzl=kBuK-ckHN zf1Bq0z}083UN^1${r|wk@)a6gB2OOa)GVvx^4I(ptaZYK`ShkQ9~*scelzpt(|eL5 z)zWzR?9UghuF}?D668#u+8uwO$JpH{%2D^{PiKuxN1@}n@{G>71FNlBZp89lEM=G5 zKD$`lcHQeX)2cTc5AAui`z808rWfjZ-U3E}l3ZSAPpB@gSWtenN3En@ zb=-cuV}4qv@7a9Ti}y}8ZszN#JrTzpu&J@AOT4J9aGi#0LA8C&W`@4q$=^=$o1V*_ zuDQCVFFyBW!%+*b$MaVyGauy6zF;|ZZI`9qlJXxmRWdB9(x;E^NQe|~+2Ww8uuN2O zR+Zh+8_lbIoD=4<@b#SD=D6h1zWN70E@n)9_2?2u+Q;j1zfNc_ZF%!pXF_Yy#>=vu zYGQS_c|P7z+kWxpqa7(nmx)*R^N3hZSiR`p_dvZ1GTFJ`!@uZ7_Xs{ZU;XuCeDr^* z4sVaRb!%nM`k7qV`RfJWW5L_&=664lN_?+lW&d9Fj+;nH*6VqZTXIDTr%8NqKJ)(8 zh2JmZ?fWB_cUu0qy5jeHsn5^P{x6UIZpA#^V9m|Hat}JsRTQ<_dReLoDRef;M4oz+ zWN@OvVo!rf$0T)wN>Qd-hu3x6e%9~x{4cxbaQel){dWJ?cQ>?qU3gx&s;JKX?~(XF zSN`kldBL+#%>Qca_=0syrgw8tD9ri6gM#Co2TDT;r807ach$CwbYln57ZiBE_DgqSpV~( z9?RF(d3zUJ{C8`b>dy`r|BMF#9MfN4-Nh7C@cT!@lpa&nZdtpoe4j@-ObSaHRMlpP z^)uvUerpooxV!)rlPa&J%cGKle zyW&_*{7!J&(j&W=RjPi`-POAKUVER)KN9G2V=!bqn*UV5=8vYyx&1Tl3O@Sccxcz! z8{2qaZ);?#oTRk4L-nZXJqMm+cOvxiIbLT?J9WA()l~7-wlxvcT1xMpVGTB3V&G-> z;qm(Y1^eI29=d?AlLr`(I&Fj<$kzGk-YcHXU9PgF?lYd)NL_^~%vXM?aiVEbBc}@UFvJ(??{@8d-Lm)o;(n8gO=(ChUza%Mf*C8PS zRZNP@EFN4={HD14*=i<--A41{%Q%i%H0|5A%bw$FT&YaQv4?L&4;H+z-}kP?-DmD> zJM#sd*L|L=G{{Z3V3&VQ{Ku{MUZxkNujk3dvX(G?ec+n*Ik?q?+gok+iO2Q7wL;SO zuv>{bo?Z5>D>^~U@!e*-!hGYEk=v)GJXyE>tM$EY+S|T1l}2uCIVyB$Pw#c9ckBIr z7OQ-G-rBhQZsqR#Vw~ciO#j(kUAIB5@VMJe;k9-~s!yB)v){efwc?&{`RK$=@fFV- zxUMc#ddt0}h~4j|=3TRCQ7%o?^|Vs9#o4PP?ljPUz64T<4Bc_)Sb)co(feVl#WZPDAQrLxX$ zs@i>C8*khc;8YOinkIH`@l{#wY1j4Y4&CaP)e`;vH!bU{gy169{WE&6Oxsl>qp>x~ zzOOI9@1I@&o6P!sh2QN3*qLQdq`r5XDKM#AVphW%S%WiEC!TIhwx6@c%5x&c+_U5Wb?P;lkNb!Izmn&n| ze7#@uPSdsK|3BXQ`}UT8T)L_$*eRoa(cjKYM-T07+w&u?i8d;4d)suB`}pZHM=r+e zuUQ!$e*4$=`>kw{ww;|_fR~$BkA%6->8{hMj$YE&wkWyE3wJJ<#i2ZqvAJ!%ZmkS(Rev0+(t3+e>xp&2%D&$<_%RD7xumX z@uR~1+)=I$)uhthkKR7_zjN>Y!Vi-*e=du8lOpEqVE3SV)BFQ9ifi=tb>@9sopki* zw%oMc#b4|8-7h?_sPejL@=YFvrC#fHX3XNSKA1oKXih@uioLy;UR)16Y9F62B4EXE zBH-jQM}{}X;+htp`hM4%A9oD%V9a7HVk_F%yW97o6T>uCSxN61|D_dosp{-b-L!na z;RK-#c?XqOa8J8x$Nlx(nO$mYrnA1u>)pc2y-7&;Y@ELIzmNU)1$*PpM88jFNY&nC zQF&Zfm!r_phkIJ;(c7~FEpwkFubY$_Y2#Q*IoO5k0+2L08b* z%j4iDrd!4rRx~W)`uN4_dbpE~-^?qIGvpieWF(?;p9sxdsOmgL@oEfX^|^05Wy)o4 zIz%*a@m=YD8uhl)G$C|j(k0iGjm%x*oR{KOTUg{YY1#J1MelpT@;h-4+aDYKQ|omv z|5dmVzNnsuv(P5%B|lS^#0xU*5&^j^I4u;n_m|sb1FXCg3sfwt)+fLMxp(t z1y8OW;?pzVFs+v3Sk3#SYoG3ka|@Ppr|_@P+{yk&=J>la4DV+D-FJV&=Zlk{UD3?# zeX}g@qBHx!8;fE-*_~)A{1}=0a^ANnuX16NsoR$RE8H&dY);|syMIeHlVU!+{Vl&^ zopjy4{|A1bmuC>U-rdRB|2OYsVU+JmU8aRxx@_M&mzEseuKKrdyZ=p}Z6*7wR-Emd zu`%6xrTpnW^S^EH^Yfk8p38BaaK8NP+7B0Re=Xbl)_>*F`g5@{H!DT2tW9=PJd>xo z5}xg_-0a28xO1A0e-mv;Ru~=H?A)cXh==f$!?gmK%_y* zL8rs-tar9k%o=Zz=AG^jn4TVBy#2N7Yn5Zn^?jR`rm~(`U&*oDzEODw)3vu9|~lJ({WuB^L?a+jD}?D!0i=&JecDG^-Ydhk`rB+mz2 z{fl_(r1+HM%I3{4do;u6>gyAX8L`c2U$sg#z8(LoEGu;7(qlP)sfNb*Yo%}3KYjdo z@BiIf|M83Hn+17Am|H7~g}>|$(djn)UwltJZ(pRH^9PNnP0RAnv4?O@&vo`uE0XDK zzQ$|O_gJN8&D9C(qjH72yiKCT&Gjn_s0YK~z^NCncClUT(OUZP;ohTOYd5sr=J+e8=*_}2PfnyIFhXj9uqNa5?oxvm zmaPUAoq8X(q?hfE+Z&rdKk!yiynOTa*V}VnFP0Wi)YTR#n}5(<^Yx~iIrcNd5^n27 z?C}oCE)7~CHh}Y)BoU0fN^=xB5lrHYl`S-TYXX<6?eR{~gxd*JJ7` ziz8QWd}#i3vS`Yc+#WRpldr!frCj&eOy6XQ7IODb z4>)%!JVe{<&#e*}Bg2lyDChj-O>-c=09cJ1jA2s_{|-qt&H-^FnCD~)HJuGDQ? zdS~W+%je8oPAf$NSwgt_<_KOs!Ikm3-udCA`u~Z!uXiMRE|a?7Z~f`7!%6mQrG<3| z^K`=|I$9`8Z!g(+X`z{Y_;1;hzn>g=GR5-u?@62Ump$o-cT;d`bxoOG^WgDc+0&B* zri*e%J1#exBPz4z?`qA4rrdo2n@@-8D(DHs3MlU`k5zQK_fNi3ut0G2M%|jvZFBpY z++5aiIPOtUUXoFf$k!m!81goDn*>u3hn%mshLVO+#%xW)Yp1(Pz0>}$7M&t-`^n<_ zdg0bze{b#7wEWY4mv_-w}*8kh_ zt22(QE{^;`EuXP&EC{zL3)@xMFvTlp_k9{ay~;+NCCYZBl8|5^LCyp-`j z>+U<<<{!4^CAKg+E|9AFxpECZBXeC{j-%MRH6brn%6^{8@!_h>>KulgUm@Bh7UODE^t^LGgxua>TKUH;2y)!o}(%O;#_Qe|uuU$R57_2}Z##aq+Q zSXk7_zqs7{H}FW|x<6Z^e?N%(`z}A!XYIL(0q2&)HBFfR#3$4z?|=4=nCP4%3Q95# zB4?QON{SpjOgF_$LLLF<;BmK?f;#LST8+olH%u33^oexEJ8|3#@|i|=thLQMd`>h z9x2}mC^ouX(>?az?utEES+Voc3d!rQx3b%seh59CBpxX9T~=jU5c`ck*H6sMnjLjk%(lkL z@u%B5hqaQ0ci;TByK*EsuB0PO=KEo8<#(AS7r3r;P2!*8q^6SmiN)!+lSN0oscorz!Dvp%@~tPVQrU_t9iIBFQ+IRV z>W)?CyYYorgzJky&Tr`sqrUIiEyFK0AY+Ehj^A^i`M5}NIQZ8NSvH_=|a_x}Y&`?vQEPkx(m?*D%s_L@SQ`JdzW zc`*I)DKC?foY13`=4X5(to#$R}>td{NCJ9RrPp1 z_aqB;^DUA6Li1`{=P9K=q- zr}DUX9L#>15D}8bu$5ck82ju0`xlxUhF5Mb?W{R>lSysIZ=u$6xrVc&`(FpI=G?!k zOXyp0+_T2dtLthg1hT>+*#m``>)KwH1u|*VZ|RA%3%Lq6 zPR%;MKf>C+g<*r0gDd0wpR*DSD(o8emL)M?n3Bw{+A2`s;o5mjT4DW8i(hRg&MrOh z>^0wu#t?VSivJt_%Q-tGB+Co1>J&DH+*Uj~-?Xo#HLT&}0>>bMM8iXixC+W-JsLxf zP0Bg^>&FhoX9=#XGt-ocHa%Yu77%*-$i~FmX4x03lO8T}ILW!F&8g2&@d(4(rlJ%X zy#qYaPEkS6-Bv^iZjUole!Y~HBd_-Ji)Sp|4Sa^TvWu_hc<8RPobgV@O~be%(!o%1 ziRkO6O>c`1Zd&JYx+^vEtX;VAH~w~IMdz;$qO9Ssmk6*|hwWA9nfJ=miQ`m&q0qu9 zvW-F(tS^!Zj~4Hc{OB>!!cw&=I(^ak_OD z--)6I6NL|5QRPz(R|xu~Sc?J zB}}5E?ylt_n5fmuvud+d4{nty zQS!Kyz*yIHB!5?b9D_|7!+E>23#WYHzqHrxmf0QQeQe1A_tuslUT^!L>egZ9rt=A< zO!f?EQ!{7R`Kx^KWAyVl9v0DZa+=#+j$5nC&)2*w{uZ{@uu@feIlt-+w(DyrT+-j= z`mODvT=u`}t?xRHZrkNvvGdWc+T+vqHL5CA{l4$TGyCf~OO8*AT(3O)uY9 z5_+$eeLByVD;VYJNEB9PIK|~e3yUUz%{MZ*tBY0!UoR0tCIG=KB%jHAM<{3)NJeZ z*DmF@3b{L}2nS7*5}4M&YG$_b)%ERSSF)s+cRjel&)}xN#K2`m?~-E^4@xoU2B@`c zQPTV1bk**0+m~L&ng8QgFaCWbcY>g%OMi@6^&G7Umy#Ck+EBuGOiU>2Zb0`#uV5n+ zy*&ztHr`I(zcym~+W9fwhSv^kik(=al61wnNkDNauc2D?T<Dt*Vv}4u)VzGSkZR(bym_1XL+B@p4lOP=)|(hqYeCZFAQsa zJf#11{O_`@f3Sn~#XsSm7LhfdLqEN{$jGzusOy4P(i41|thM8A-dFVz3(sQw#!pjOy=wV zvQ@e1uUReMq?}hDS8{xqz3}QCbp@8vIbT?6=GZLz#c?OF;nfbok_l@>7+l?=gr;p# zxYU%o^Fh_mzSm#*W3J_kDc-(u)i=VZS0?J{|BB|m^T+*LUM(-b|HidjlwG%EX;%92 z?vCeI%td#E&g^|{|A}|bE%7%ZkwtHhZ1=jg_j3@d52LF8p0ND8#)ebY*6v;_-N72= z6LVwJ^R*2Y_gCmPuD{lGKu}Bcr^W=^-5CLb7D_)}+CT5w|L@ns-0Gu-s*5~L8KX{0 z7RFBOXa0Y_{-1i^;{)IA{~bu(T~glIwL{ENFzJQ*q)ECKFY0zHPJi^x{M9$l?CvPW zlR2{!d&)lTz5jmh26l$;zj-ZZr|)-HvsSW7y=;A9yZI53sz#Zni-MlLVI5Huk{p&a z%$W4~KR?64oQYOWT`ue^{g0TH6n`Yetp}Ny#ATZ zgN(IhCU0Bk9#WodyG2C$X~%-cjh#21|M<4cscV5mfa`{}vmGbcurHhzA$pXKeuVxCH7ajC9@9a{EJ+9TYpK?`kX7De_Nit z^f%!53fI+oAt~=0R?KUiwU{B{{ffR5Umog8&#sC7zfbJ#MQ&|{{bAovzfj@bahKzK z@J0WNAK!)_UC!&aeA@+O1rPOga=iL~*Y9CpU(iwSZ}Ra_vH$t3<2M%>Ew`>+X87{+ zww1n1SFKN0QU85^PS6dxl({*%Pr9G&TC*c={f@Z(iMP$He_GpiFB7{QeAJZl^|3t} zN~J6Pa_TKNGQV}n%)NeW>HET2Y3vSmMbDeU1^sU>y0|0rnxpz(Q~BMM6SPl+{&QZx zKzOhJ-K4Ob&)+@n*xk=F&oJfbJeBaxJUjfW(`4qyb^D_e1rB*O2d++vy&mVV<^1|5 zi=#W2L`htDTlV^1eYL#kf`(G>8~m49m#~R)B`>xsddEGDQ*!I}k2wps=6RIN$tz`2 z{(U}6;^CA<&4qh3oSj!6OI$f`%6}QApq^!&jk+#|uJaS4OV*}}3rt#GA=Pq9!ScyA zLvNiFjoIvS^F00UMe)n*u@KqZ!?GRnjut&1_yR0&h2W6*Adf zy(RhoiRbERe5YbV?)k|zmtNZZt!lxHSo7I0Z%G8}_F1xqY)y|jI^W@b%nYA+Cz-X{ z5%c+l&8+2@$Jc&+ZmhaHNh>5K`_4_nV{94g=PwIu&2A)Zlan66(b)um8fZqd4d9y_;ra52eV&?v!c}y~Z`*-GzyAqE& z0-rW)aJ!QyZ|i3Myyy2@Hi5)w@in)*CV7W{`F?#-*`o87%GbMcqvxJr_djO*`^GN4 zdA$yHpK~tzy?f~R=0@DCnqRsu8kN6hv;O5cQp9#0R}&@ou-G5{ooO{=_kys~kq@q}pRV7cXwcz%gp+RB{*R%Ifdg8oZmIxiaAGtyPBQU&b2eYBR5B&U_ug zelE}2EUy*e^*;_t{=E6JzJ>kd;m3)ayToo?4B7nf)QxT2+n&C<)zop|q;jZydTOrt zyra^evlH6i^<4DcE^vv%AS+4WTkDOqZ(EfWuLiTvWH!-gx-6d?`2BL>eAUVWEm5cE z%N8A;^ESQs_slPgUOUTqEEc|6XcMqC4;|+f*qWf&(XikaEw_8k2uU)U0s7ti=Z1T;2?KA7iOjE`MT1{?CO5Zx& zj>=Y-DoW5^_G&@z*7NI)l`Je;nbf}>niSR%eK~6S@?Hj>i!y2&z6SaBo4f03-<`Qr z|7=_CkAH9Zb^7woEnP50e#c!qfx}I?w|ydJ@n0!QxGffQUr%k7uya=q8`hN*rkwmZ}KQg$j{=NH+# z@YKbv_6gcnu0ln<4!Q}69qbB%tO8Rn`|K#MdA{?vy3@wV)-Rvjye`c0&eE*!RzpRP z_iw4cGZ=nY8_Z_plX|uLqw($j|8Ms0NqaxvezLL4+e-b}u}sg;am+i$_5byM%lN}T zZO=YBzJ5|l;=|~kaLbytQ&;mJJ&?@ku-`Lt#_gE+mn>D{iC)&fa##%h%i4!A@vqfh zdVKavQ_Bylx$k+DZ@#ouzwAj)@cfHMH-H*dse2n%bWRp~U~zq&@7A?7brR>7cR%c2 z;P-9wHJzW;lUId(UHN6&{x6?XHkXDeH-GhMeEHS->4jC5>|3kN9a3ywADqeR`{%lu z_oRcO;ag{J6>#kC2t0u1=A;8=Epvmpv*SAftzjB2>DBIl_#gl)|Y*oO^ zBaVCrCH`zxSR9qGD8I^ za*NOJUA^(P=d9+N7I$xDwzhIFT(U@N+qr^Oib{tP9JE+p9Zl@|SYo9t@>t@>V}Yhp zEv9zA6>A)i{hhb=Xxzbf?BCCDeoNWuF=6qy^c{aCSIG+3Z%oqS<56NsI%50H@4V!t z6uaL7i_^t*&Z)3P92WSyR{C1*(bU@?%Jw#O7VLk2;`{8$VpmH!wWsY^ASd~|j@j|U z+qYe>pLQkhfB5(>^TXTHmv$}qdTq8<%@>4-je$&a#KrT zyO4iaw$I~GBa85J?B6~$>b$>kns@0xlZ3FIV4hDm{VIMPW|>~#ll$-d?|Hc`frZx; zdA;5Uq}d-kYTj>O8NG=$&UW(CL#LS$c#t{y-4J$cTT4RU=dhYVNEH5F4X4D^4T zXS3x>s@4+uj`c=9UB-Gp0+}!De?OJ&!Dhh&`JeLtrN3xd&Uavg=!+{szh!zp$6wkv zgTXd_Pm)bvw_Ky$dMgHBhvx7^u`jEymp-%a&kFSyI}~W~;)z4U(QQF2%1N<$J96?P zF0lm(Cv0@nxH|cVv!5*M9vy~rqH9q$8|r1tPKHEZo$v`0anU2OaRPHWC3A=epqq|cT->KuEEdHzz1 zGwgQUZ5KZ?{Hdwmeq?|5*0StE$Ga-eRLoreY|E|9<1y${zI|r8&H?q7hTDJpYV8HK zEWI@|EOFVUgR)vn)AfEh3om9&UDW+}RRveV!MA13n)8ZY-29|l>=6C&aq{wOrW-DA z=~PKh*xWfWbuqiVvySG27f&38)g#Xo8&3VTtBI52-0Q999E|E(&uiog=lJTJuUpZ^ zp#I;s>s7;|lX7pOgD<8@m;Q74eRQCq1mRh>K>462`ojh~#TBg&J3S#d&u;>^%79FeG|FG)r z20c#qdwbvNB@|pgJ|R0M%dAe#Sa}M|Gp318e@ZU9xvP~iqIhHR=HTQq*NJ@k`#3hq z1f0?+b=Q+W@w3l4&*GDH-ydObt`l|lpUnwe#aQ>?vBJg3CvEA5H}dBiZ!NDnH^JQY zBGd1KbL5WZ7B9QMp>n=cg`M@c{TC{2x4Q3-IBq}x@aZWb8qedGZvGo^{w~j4D~2mw zLRPXH&dG{a3H<#V#r)xS@}%?$apF&3OWyx~)lT~D!PWOxap~Ld_&>Aq-Kof5|N8wApg^-_6R4`D!klIs4LI*5}{2raf(kQi0P2j!?7ix%oRYrcGr3v;IZ$ zqN~~hZPg1Rc<18aA1F)Y|mTA?~ge(E^a#0zI5{;zYqP3C1$;` z4eepxAkWUS?dEl}#rmRJOLtrI*erEk`^w{XO~vY4wRaU+?z}Jm^Su5ar{KZw@9zsF zAFBTOva`$WP4uO%DN6V5?MsXlFUV7FYuY1k_WgTsF6T#i2KEPAz=QShMH*=yHg7_Pr&E%aRRwZZFUaW3~$&Nkm~lLH?ZtSRa{C8|G7 z$vx+~wv$oxvZa<%yDX>6ayhOLy%_vA#3r?GPpjXtvjN+MiWc8GcD`yRUUUz1Zf%Ntx^Ull&DpFi~aOb&HI z0!jUo;>3R2T-)+(XTAN=mp|`sHL|Pwci{H-{2ej+H@-{v{p}NIDD|z_9pktmNmQnq zd%nzr;H?oxsXZNAl{{=k-#*%SUd?66{SBvitN&&GuV=6O_a{>^_N&9WrTMWwZ)CO0TmHmNdiz}YW1n2T;kvmJ`pchA za_hKNbHG6Qr#@fG{5N*{o9Ei^clo1Pwddr{a;*^7Jl?l1=YXuZ{+Bh+&!`m?s=Qi_E2bqY!? ztSpPqy7o;z8gN|L?a|4GZ~HS`&t>vl((<<|J{rBwVzVXh7Aaf5D{c%qC2o&fSGTY2 z2@B0wZn|}H`pT=jSZ?KbpW_JG;c!mvbk+*%?Dk#$caySogTez9mo7;0ezZEsF==!5 zO4j4G?Nhp9xW5E+JejP}#q2z#;J)!UWouzO2gi=gEnSn(SHDf!_aptVM#>YXw8c*g zIaVYsZhaIWA6S@EsQu<_aNfryj6n}i#56d$ByE1wIzz@gN8^#&uVnuh-G)+Z;T%7A zEPj%d;uLBioxhNA`?}k#L5wFwr!XxLJzm&;rAc+|0s%+Y!aMKO-fAminC2AV}`9k?W_TMiSs#<#8f8#sl zu$dMj<@y!ANm&8J(%}i!~NLr zCwO=!R!jyAgA8mHp*Q@3Cwy3#b?(J*yE_E`V&75!a zdFNdIxeKh{xE$2?TV-|eVvXzTtuL3)ez-+(1)tbq2jhOjj$aySdOrTrA1^O^lj87I zvGda98PY#&ct5P>Yk2gUX~Fwet@Bb1a##OE&Hw)9%Y{IO84VNsrO*92yZO-knSQxT z)hFKX{&qS!`|s6=hb5a>{x18=uRif?r__lro3?(iNVh!SC3jo9^w;-d?TF=9gIgDf zawH!8`ip(rSFUF)&stO?nG()EI>S&In08tvN9O1aiIY1ty4?hIFQ2uHk$CdWzR~rd ziF7o}Asg<~bCdN$Y`1c=%@usReD|`H@c&VHOomEVW(D#y|1mib)WdkX>frI??c#iP z=S8|_uD$8ea(tq0f;%@~|EttZ)2tU+s-9Vzu)qFxkIizs-}xW+Zk^Tjzi4Mdq?mun z>DUS3-E+Hkoc%h}?|$~biZ4fH?i!^X+VqC$u+r73*PbaD$TgOlcQpL|%g3-IM(^CQ z?Y!p4I12aMGf!BTAm6{TQ=;5~<@GLw4N}*3MC>@b@%~2n_puHVNk$(!nKruBzm=5f zF_3tiwaw9;&-lceuHO5KsW-OD%=VcqKdpJ|gWQmmqne%#GB*=kTy6g!TGz@NQO! z6ElBim#I+)wl>|^Bv<97(mRL$lD|tvZk_Jg%eklii3s;iDzq>A^Yyd;pNjwTE4~P` zvgvn;EL`+ps(^)K;>6oeH7q{KZk3zM{?ViC?<AWAC zh2I{w`?UJozvSf+_HX5{$Cq)#Tvk%bJ=58^hRHv+a5J%y(;cqk2!I>%2wt> zd_t?m!AWVmmA59vW^bQ-uJw40yh&`#kta+Nala~AjFoxo*XMs({b26#%YR<4|NXb; zpyl>oUp9Y<2{x_ftG%Qr#sBMneDg1yOZ%Z7&CIszSvRcF4t+YVcu=$34wEfa|OBZ-KGW2w@zjfX2;d=7sLlS9z65zox-M#-V8-zH8p!4*ZqF+T~|;cPJk`#&2ir8rJDoY&NfILP%m)!dSGQ~ zwBTWZ^Q$^I|IFH<|H;B|*R(}bngp~oe3o4Fl(`oBuXxI@!!cDk6PJDFXbj}vZC-S5 z<89KU4u z=z8HE^&jUs&Q)%ypQEU-ey!yC;9j{qY`=b3+sn)E$@;$fypzjU*GczMa=%o!%$&!? zyokMC|D1YB^ZbZUH%foEmF}GN!vBs?#BI%J-r2V_noO8l4PvuJYbzq`@>wIz9sNz# zM{cl4=i1U!uF9w#aH`=b!#V$S<@qaD-+idG^Y|FCJ zla|g|tXG<{TsCb_WM$mA+x5ypN2Mem#^c+jMF})-e17rME6x>1UAkm)PHtYH+UDiB z^3wA?if?S6J8n_B(y<{hb0s-OBZGqpD zKU}=S+L2y#ulVT2Bt8G4u-d(u{k`t>i&O18V%P7h^LzLEOzQ^@M~lN9=ZxikxpE~u ze?QsBaQpKYC!dMR-WNZ(Va2)Jy-ICo3s!UF$#?bfwQ_eH`T60CXLPr}^u80usuy0= zU)6OnT3NE?zQdwN-8rnRwz**eu7w8v@dcWF8+*&y8D7=>T=vU++WuUf;}`4NPV$L9 za&)-rcTKUPp>ONShx^xO9jn{_{lSvbyFN3X&sMzkCid*H)N@R4z23hl{(t*znb35; z^*;i>Z#&Gfb7_CfiECnSE8A`d9M{yHoZ5b8Tl(6cY7yCY+rNL84l;WGa|Y+_W!gav za!X|#g4#7MALn0s?OkU2_D@%%Y=f?gZIfUsvMbmv8|%y7=jdF!V&geqFV519hn8r~IhfD1^8lk})Svg8Zhk(RliBuEBevql=i~e< zip5vWZ+QP(R%S=P!mJY)tem>MnBEDNHz!`0H~m4u+yl)PD_*_$d_b>5MEurVQ^slM z6_@|adEcLI%tgHAx zzbxyRxZa)dx$~SEY|HzZ=eg$pEzl@)NbwJRt9oe5NAuGk-#>o5<@fcMCz*cC+#7R# z{eK^e7vavoedemwUVE;$?PBu+{p0FuFI3p@n0s8G!}?)H_lKJuHG7_=?^*vV{cnW9 znfU8={EbR&0zQB5*h{?Iak}_IpPdLpadc;0;l{Y%g7I7b$A>n?_X^#b{kVNv0QS@=JQX9`kmzbxn}p~>$;%=Qx zY7^O>_ zZp@#daP``PB8_|he>J|{l<3L*?^OMx8~lGh{@wlBPbWd^7>im&`;k)aGk1SVj^?%saB^EvscKmbQ{&{G6ZC}Z?nR`DhT9JKUy7z;ctkhQ;rjO8*K3=mB`p{F$os*9?@3g3 z|01i_^&y6)wVRfh9Y`*-Y?}5UGo#EY=YU*x{j68}!~9LVyJpM^n$z~+c=wE`y@&W1 z6(u#)cDm}cbg=d)r*8K9dad#W!*mBm5svBHbDq!N@cuhrt>N{?+>mE%76G+i9Bmv7 zu4QT@+Z3b}8(Jjo=+w!5mVM%Bz|Ew|dlzVw8ZbHJc-Egu*!FtL=>~Ppo18ZCyZh_* zFf?fXpPc{eQL7ANo}~#--qgy8tMBn{;`4gY62&Pq`-R4rUdJx=n~n-nXRa`{?piys zdE@Vgl3ZurtYQ1s;``37p8LL`yL(hP%l|pvC*MukxM8{c`}Y;6?|=CAtxZ+;N5y}G zM0LSyQ(`#t-wBo$W~b;IEIT&q+w*hxomc9msce3)R^HRn(2-&Gm@Vbe<_X*X?umN4 zm-BkN-&6_z=CifN&5apl^M7X;wsdf4*LA6MyotTLKV6vP-SI}Ho9-QJ84P?yNs zJ?;^DgwORIyJQukt^AXJdiw71AB5{~tF2i7uy+4ucK(GnZQKpFGnc3q8qQ6N{oHP% zu4lLES^V5{$20$D=l_4~YV$PIKGddvF2g&s<&|xh;^tkt&g$TOxXJD{=N03Hvz00) z?8|wqKI5+Thc4CF35VK5%#Li>^`htZo>wBJ6}PUOjY_(>>A8VI?Ue`%lP6zpEiY5v z7%|UsQFHt(*A=n;`H|Bu?#lUQn?0FLpMk5$E}*OAS&iUJ=~+Mjl}FE58Y%fU{Z9Ym zluASX-Hr`<)48|h9^RxQ_Dz|oPw=GpsmB`}=I8GI(z`(O)9kBxvDfcSn#-J0b!?CA z*0$qU#cm`OU;HK~ePVf_%9A1mIt}HZ(|rss}_o~#y#+KJ=uQo*Qdm{ z`=%7|Up&U0^0@DqtAdiw>7)2SRavksFXL_sW{fseSQN~@pdq{A zn1xFT^O}p-w_aX$t>uhW&bcEj*B;yzYYTDGeP*{|(XGn)#)s})cXn$y#N6}Y!*03F zCGn9*4eS*^oL~Nit$q^UHKq?oQY-GH+jF0-e!8XlX-dUa#tPK~ z{fFPj?^fvTFlgsKFRkf&nV~AuwsvXUpPI1GKMt`Yvx~*Kw`oQRdkA(q&e@<+p_6@V zpTEg=t!ux^1LbX9{;b-5^i1sng?#_z8D{G?_DpDhb%WEs>HuG#nBlYWmT+2+xobjHniA_ z%52@SBglIF`p7A(OuAD(7CJUO>3Lk{yz-_?ez^9((}fYQYa`#>`mu7_)PsS)+hQ{h zEQw-NNQ#>BU_Rqw(c>S^pS6;CqgC@IhV%8YBPrYLiVV|tvp?RXP<5?o$EmveGm7)w6~c)eEgVs3Af&L^Ntc=lv@$;yz<-5iRmD(|N(Zb!T_2InH3} ztzWa&x#F6958v6$P2SEn*OfZYvo_RRl)Z3$ozAs(-m-UApEY+UiWGmDQfRPC=ED+i ztH;kBXq<3!4~T?2NhWuT%9#c>hY?FXgwyzIcngw|_tJ&HeW$ zQ%~*h-nGcl@$%1WRbL{5-J@Tg5Bj3w$*h#Z51 z#1d24%m1INmwpobKHL3R``rZHSBtjF*{&81_3B@xtD1cK+D1#Ep70CGes8bbIwo_5 zNAnVAS{YZW`17AhHb?chPhQEnOXrE}0$a=TMbF=E3GY(Xe`c1rc6jTDO-pt5TK)0f>AsqZ zl1(Af`?t)ap%*?5o#@!q@%0eE-7hrO)?-?kl=$&TY6$t)+@F zp|d^K|AN4kFTY@eDE_xUHr|G`I9VizuPZ=1vY?Kk60!hgWw# zt1jK_oV0KH94qnQIY|?J{V&`)`F5Y7bo>ieE%QloH-E1PDv&9k5>p+0Gbbx2%rlEefy6^Un%-FD)?YzJL z_Wj+bEYEs>f4%vF^MC73DGQW`Ps#F|W9r)6YCX48Vscutg=d<3&~IyHDWhv_++68d zFC%kf1GT>&onoo*qheY4FOONLPVJ6uP8Lkw^oH?Mo-+FewIeeYL`~dMbt`4}`|^;` zD~kfmoR-_L)PMb`#Ad@5EWLlL$njh5{3+MjeJ9$vFzmOw{wmr1VWRQ%^K( z_SD|D4Juo)DSNF&-{Q${brg=z_<4Mu?&5u)8BVkoKK^^wY)@*eqRR@Gh%kkhO{S_# zwm5h>-aQ)0kdqOh&4uyvv@}zE5qXX!gz9 z_j2FaoBg|SvhK5O+BTb)3^Pk(Cwy)ccw4&nzFoj4Mz(^RX6=8@>=O5mQ(^L2S9YqW z>~CmW7?aD14h)~v08Qh$!zIBc1&BssusHP zp5`_d_W)+@mAxSyveggxWRf>aUN~(XzGPv)Ec^VUn}oW!TV~gW%<>T3tahwU;dj(s z2cK(-o2Hc&tDJH^_40Ic$n7`d=}${Bv4wgWq{>-)ZSf zmo-+*``s_DYsYm_T)A|3j>nGTT+_6n?7uo|WsB_4@v=5-x)aXI@R)uNpgH&Y$$wgIyxx zn~QfAOmJD4m=;z4t?)z2-kJ@4TbK^8=52d<-SGX)Pa9{OZ(BK0H~FqO1D{4^1iPzN z(b^mN>B{F640tMxxFF4|h)DI?+WH&UJ2DUWDr7^Y;Ib{61g4M750dcWUG> znYh|D0x{JG_X+N)uX#|kQ(@VYX{R3dXnhOIUCG*bvi6J3!ks7IOuVSmY$<;GPjX9z zq1)NT>mG&0^;dm86TkB6PL^Y70xNISKK9^~(Xy;ITFj~EeWK$ChxS7aQPYo^*Q~#Y zUv&4pvM`!QU9M`ncEz=p6%Jhy<_n@6uNz$6DRSrCwNLs-=V_UT5|7{+3ugt7u>17k z_-B8+?P=|-l?xZY>RS-V;K0)n((SauK|^6x#6kU}uPl*?%65GmdJjr;?7ODio!|u%#zvO&9N&*07LVeJv*sw9 zc*o&+)I+~_aSK-#Tb9nW59Xcc_vE>fQ>Mj&j`XhA4%=40*4A11KJlNw)xvAX53b2P z?;-!0ZHv0?B_83T(gl{;FHZip-#bIN`JrIj6{|MgO`BgnaCTO_wYg zR&^-4@ZXu?EG4hSFDJGs(4lhajRh9Q+-#7H6@kO_BY#C_%JNb zVA6}v;5{BKz>(Z`R!no3&a!j&ZC2OaFXs@@O&zIi|e(k+kw~W}tVY zn4#g4>K(@H9p@h`78f>KJw@)rWN$V@oii)a{`~mNe((PMkH_uzNzP7)+<2s8{_%IZ zaj$%8gA@Xojxt=7o>t1tFePd2|8+k3k=(lLu3PfGS?*l8P^9|E`i$qcPFKyfB@&L; zTzy=lwAF0ZPmKo7T9qKF_=H%-PmeN{r#yDBUbwKote&~jzTgde-M=3%*SCKx+`lkwdnH$uL$B_%Wv>(C_HgKS ztW4N_bQgoQ(S$Nm1es2ovH2o{D45X%pnN)@yXHHmC9(t&te2Nl7 zy3P~@KldjIth|$V_|J7*k-$~b_ z?zfv)z<4=gNwiz7ZsyTL9PU*QGixqBd*6DLWxkZ7eKV`_<tf$M)Shg*savTO^CkF3 z#_=PnRowy!aSS>uS{Y*nDxDW3eD>delj-tIC9|EpY116@f1dHW?fEK8x_V>k=^JOu zcx&`xybHbJ*_w_vpPKmFCcdlIe53L2mAy7^&hKJrDRuM_Tq@O?6Fq6J(FKo&u#6)I z-o4M;_x_dPTE?Yee}4Y!d;5uZRm<(O$2gwum|Z&|Iw?N*Sk%rbryFM(i;2H+Q9J%E z>`E5L9SI4Uu#Bx|e_FgdaW&+gA&X1eo5+Hc!#nj}H%V|Tm9bqDvMMRkY>Lv4A3qLk zTI12Z^xsj{r2Th4{`+_M`Kz*1T{*@PO^c>6|9;DSe}BEZLh^Ux+5GbadeaxQM6KGp zU8G=dopZ;s0R7MpZ{MC}ZQac{`BulWxxXA&EYb*_*qs!~tg+#>7)PODRN~8~;}$*j}w*L>^MKT@~Lb7StJX=xIRSWmVjT-kg3_}OEO)43fE)c^TipRhAd(5pdUSF8W7 z2)_+FjPmd8dBs$kM3}u+?zsQWPa;M<{ZD&G|99yuy&vaq&%d#ads^z@e}(Q3QqI(t z-O-wVyn}7qrUK=Lk01XrG8OEN3CKQLcmJTwhvVPvKRiCp|EK@|k8&Mbj;=y`uCV2{ zQibQkE8kxc%ocBzvfRXKC+M=MH0%Z+$I;ykiW%qIIb;+~cW-mt#iz*f%FMZ_mOb=k ztYullq{c&6HkoQDgdBeREQjT+PWhhyHOB+>7wGGA@{ekd*Np0Qg(ieaOj`rpzH{>IQ<%{goK`Z_b)Uufxk*YUY- zvFMqT?mO2{{(oz8?k_q1n^jv@8`|Fdo$*RaBc1Tb7tR|FxUddHq*UTq|>4|JVBWfiv#Iqpb$pZ=8$gR+O8}>;K;W z#9O-;xf>R`UT`#g{D3F7>7|CSQ-t8*q(=^1wlT}69xUE)WIZFlM1%ZQ%_|;$T%|U= zA#cj3O`7Q4mSV5iZEtWjz5k~JN0|`c8wS;&D^&}wF}H8OG+FrRx4$2zl{})Jhp2lL%>og71e;_tfyC3PPba)@w|aw+;G~ff0b=Y zw`yN;&o|3n6!PRxg9-1!&n!DGPnxpEy6{c=&5L_X*Jri1?0UUmT2oERlfMpqY0}(= zhdwnas~o)b<;aPhWpQ@ezbg_iaGf+2w|pM_DRyCD*UGD%^=mKWC0f9```Ua?tGX1y)U}_Wcmh0-ZUm*#kXa*{-6KfTP>i{n)sFwnZS%fyIAjs4kitcH-S)xg|k!+|1tE z`DDKQc;Wv3+U5|)j)n4eyR7E!D3|>G{$alu^rwY#y@|YY_W$oZ_TB6BgNvt)9=4s- zozl;GAfe&JmAdQg7j}i)^$DI_qoTi=seo(4rff-h^Gi1${Wxu7_ll!2@PNTX!^BsC zPYksGRB~1QwEo{?(6{W%)ce~+&Lu3`cTn4Z3A;DT|bPq6UuDK!RJSoaN zxy5OVnes#%4~_W!@s$q3y?JbYmgmnh-wqUhMhRAQt{C-8K!2%Z0@hr#XsFF5Irm(yuCZ<|GaNKTYI-z3g4==DSjGll9%IX zb$9(e3)wq~R)_u9-CcP|C%x9gzhd=Y|JPzBuWvtGX!Q1T&X316GRx+txfOH-<#V+q zOg#4cqQ%S~4;t!!ns1(c&#r8@nY&}8cmC#h{qPC#++{t5>$a}vtabDHppiYt=IPs? z`Ey$JL`n++yg2`t{WSmcyZ#TmkotCcw<|V9ucVuHb}!t!U_-Xmtxav}eR~zS`+nq| z-)XBn<4s=^E2n1ba#LfLcZ(;8%}5qdWWDk1>4%8$WN(2Wu80ywabdqEu_r|iMwtwwL2p#iNoSHR**Nk653()_E%a5Yh1W{qpNk z!;1dT@6Nxe{nna1W%1sIC6lB4_A4;g)w%q&{#IJcQCaQFG{xU`=3mQe>AxQGBwkv% z;m;{64*PxIPED^>t`J@P$LLCW)x>zizwIAhyCX>%?QOz1Co`*i&QMy!n6SrcLKWc1*VX*keEKrAuP{t$i0fS_K;= z4nF^~Rj$nHT9dBo?4MN{0V{QWcXfuD7Im)^6M#v#z4P{`lX0)m-!M zhWtFCv1&&hx9yA6u(h|&M=`Fv@m~JKZ@y1Et`{%cR+iAUYyPe&6HN`;*Kawyg>~Z> zv*|O!8h2=}eI6i?eShhU3C{0C_FlWlFstC~aUJ7}>*k8B{m;i$+>_;6>fYqnnrz)T zVfBx*Y?{LN4_vyRC3#IZZF9z~^f@YQa@%zItyP6r>l!Myc0AVDvA6y~)!%EYuUtEt;o2%%ux$U2 z9~Qr!&B?aw{=nfccyH~4muuMGGrW1Hka4{Pd?Njy=kfL5c4i|JLk)K z-oM2;A8&j!b~oR!HS)GaL&wA**2z2u;%}^4#2l{p&%TvBW$Fbal-j^IG+^UE_YdCW0atlD|>|39ns#+tQav%d9x z3V#0}$G?U{&B{FFyvUJC+1&FVH@m%QP2>6HlRxL$w`+nGcb0$Y)<~)13Z8Xu;Um`V zi824f@8(&V_Dd^%(|I<>o#!sw3Vwd3iveHi(jLBcoVg}G@5p|hKL^)y_pP@$u4KeA zbN&&w{ZfiHaS5LkmMAWna8mKMl8JBqfkr{+L%VWsOzUQhb255;zvOIPy2?i@*H>T9 ze!u#Ci=@H&)w;Sy5{#i@o13ooly**t+Hk*o%AV@gwN|l>3VO@3x!>$s_w4QYw8-B- zKdal>*=^YUAv;p+NXC8n2NsE4ewrn{P8)3+MRzO=JEc;(ymFvUuzLb&;oaXS`k9 z&%+TYENd3Mq~rY3#};>`wygZ3=U9FBLp4wB;n=;|DkmzBpWlB^*Jzq#s8&+fvllCl z=JW?`Tqm8k{Ws_9KQC72PdUeC_Q+wf-brZ|!*2>|i(UC9UVU^TS;=ba=jZp0?N@&` z&6>$;c(nacvu$C&!xT2|#7C?$$N8A$gq$J-_HZZ8mi?JiBXsoO+pJZ#H{4B~cQ^!A zJqVln=H%?9=l87?cVk={wL{!5VNUU_2V0W&#--m@JC?RTL{WI*uDKiLJL%55khJRH z@^dTyt|$c|x`L}P#2cEj5yQ6r;c^;Om^M@|q`g7>}f1ZmImoq&uUiG%~ z`l9{2@4x&aWB=;Z#H7A32*~PA0pPv>Arr*nI zd)W4A>Z-2KfA_T0(4f9;t#9qUDHm?vV$1RTx6_56Q%gW{?f%=P zoc90z`2YFy^Rn5^ob{#A=FeaBUoOz*W6j!Pm)3oAY4N9}9W#zOU0u_&ub^9N$(4JZ z+0qLYr|X_*YqIs5ZtJ03CF zWPRAhx$vxB%@r*@1Jx(Wk8jIMzuNY2y?ydNB_N(hOcDzb~wtu zEG;|xmADjfA30*eWA$9uU;klLXg$xdEVq*&MnWH+TFy7fnv zbM@B7|F5?E*0?a+-+BLM<2qBdAFiB6UuD?6Cdz!)*y?oRO`4`kj9&haZ{OI1{~|~Jtrd#g-MY1N#+Qu}39Q{^3om!PZ8=|A+%C8A{HxnOJEk-} z)_4}P;DU3`8S(f(PZIyvN1HD>`tSGK$83VZlh#l7{yzJ8^7qTijZBV5x|pUW*?q`# zKE3n{?};7Hj(ff~?Dld!(&%={e`W5KknF9j|5ave3EQ6a(uSSw@x1pOx+*I!F|e>! zt9|?3_xrf}`I-C^H(FRP;MPApZ(yjE1hpLMj%e&s}GLuT)eeK#^PmRj&E%t?n79P%x z<|)<`P}0dX-Nqym9VKA-@SmX!zi-CPsHbJ;BY)d1`LSrj)`)uok6aX<@7sCyJ42<- zw_WSv&fNQ`|Nqzey`Phm4wh(%9ADVX>wWpptDN}@6BotKeRqBK?blpo`Z}46!46lO z=B%x~U!T75ku-Np<-G9j z;Zu9NljMT#yVPFG4qV?OAhu*nV&uArY1&HB-Zw%{tvAbiaQVpE$+(D->>R@G0R(7gqIeuNFQCvFgH3ZH!<)2{dNADM;Tq+?>n^V+kTl=#r<<4 z=LD5?l^t?5SCXn{N*ulYc;WVAqUHV5bJ@G6SsK`foC(ti4-Jsr99LR)aDj2(`^?U^ zH_DUUQnTj=iErzg6IHG@h1*XvCrsWhcK`Lqn->NyczHAL;?d8Ku2-<=I+f3BZ7zEM z=!}@^ywc6LSUMK|Uy~dA@%Z=mH#RdaStF7326VpI``A4<>z;o;Ak!it{CM|ZalYR-0rd6_@_LU@Pc& zR?bD);_4n5ABpWc-P<*D7q6Meukem{Z`}G0&B${*qOWSOc-T!?t$H^1y19U1U(mv+ zn0g0|-+l7$-{1IN-Cx1mX#LjrsNco2eI{4lKYeM;r^weBW9au!fJsbTBS<`L|EryAvUGp^e9Z2(n7OUN)a|ja#@C*Lq~f*$ zQG-s^XRG?%3|U&PnP$#4{-)xpy)J9zwOQiX?A!ZX_04L|oz|6D_VL!0wJr$;U%wRX z{%><-#nIc_e6?79@0w(s6?$aLH$El-9)+i3RkcG685shY!^bTpPesM`5p#riMKzYZ`SjMTW*B`HY<5_A+;N_t)sGNMP5l`x^GkW3 zO+1!9^JM@1`*JLgcCJ|X&+6pKLQTCJ+sxOzmQIS06?n`rW7#Lwd0MABrF+*OlmF!^ zo!Ky5G+u;fpTe>k3ZfcOe``JKckuehSbbRG=v38{_gbaG`<{eEj^*=J5!Xad?~)2! zzjFQe-E+6yd2hp#sC;1AL0hc`<@Xnq=5D_5&T(_{T<1uhxwESeDHI>r7HgxsVa}Sy zwb6pfM>efd&{`m&6L(`}>8#Ty$`u^<$#dLhQ#%&OcRtHt!HK_l>LHq>7x@d1 z>{|2V=VSFtyB_}D{{Dpfv9E7$CC@l}kK@nn{ePwZ-LC(=|9pVe)y&+D!FjCT56tP? zK96Og+M&&7|CjB4ShVv&)!s)Id@<{cXkEI=cuIyd!Jn_DL{?pC+?^}f*geSc? z&a~ja->f-lCNJly?d9I<<9~JXJV(V9QF1MfKU&Qn&6i`@v*By+$K#n{^;MciqCWHg zMEq5f-SGSS)9!cYK7Z}wea4u6G+c>g(}bzUyZrQ96b%oPjJ^Ryk8OVpd{;R zzf=0G*FW6W>n4436ur-_y)|TwgoFdbYNyrAEhTrlf6u$C-*?W)VBwrVh5j6Yg^h)> z`;B+8*W52>pTn?}C4Z~b#f?Y*$sO-m>&0zkO z7n-~>*|RsAsWfVK9c!aaA)g$0imPPuHcte>$#_($iF63w&oP8&M2u|6hGOuIY7keWq}`nc9K3 zWyhZuy}Z?&Y@ctT+n*G(*-<9<{Jjeby-H^|>KFwUuUr+>p1QSg&dV&DQ!{lqC&nn8 zQfye{JTGml-OcxBRh6Gx=Y5y{_O~zkpF>BJa(&6F__x!7=KlB6@)vSFX6HYi zpXWX6<6hsMo06t1tCSCfEaUyTdE@)^*jpFPjyqrcbb)ng`((ST;&%hyW~W|e_+t7c zU;Wuj`%sxPYillvuQQ%1+*VifE&ckDm0#M zj?~;05}eP;F77E=vv}!lK|v+MjGa=I>jWZ{d%W_CBRe*}ogJ3Ik#b0csWC59a{bnC z?G@YPZ@z3>mgn?1>a~fuZGOvH{+OS4lw^zDd7kKa_pjk?+!(Wt;mV|!p8{T-U!Tdg zw&wr8wZC^Vmdsu-_Z5$EbQYuW1dDHl&RmTDfBf6)+&)cpX6l>2?CWl`36%c2bNjaR zwA7bP>%LV<&6=tned}q_$Gju=W-=`05<9#KA+$Jq2K;rgT{x#-v{14W}dD( z_nor0n@CN~9i1X`mX?J2@87!prIE{RXB zJs)vh^h`_X-8Cz2^Iyq&^`?>KSc|*satX8jJ8S>t%w)|7nA0*x+iT_DE4y?!w}vPL zUH8qoebihx+Gow?P2bGk{XSo=^SZ5c?}8~k0&8A)XMXfZ75>_q%4nQu&nMs{uHPmw z=bFTakDuGNZ@2#UQUCve-*08JBi3%Xr5ACjfEm==`(AI8*|Fr-Ui)K{Kk(juclkii z4xNs3MFC6CnShqjvUJ)1|Fil2{9^TuclXC?Xj!#}WZvJB>?126vZ%MVX*1)4yTaC6 z)7ihPtca=zd+;d5R^nnkrF-uK!7al7uDn&K)Jk~sc}no{s(nJ|X4oh{`T9oe!Ag&R zHg~7(vPzuS*ZdAOp33-wQTmG=H^d#hP!WN9f7xUCps+S^Y_2zkQ z+k~IxFKCNjEnYqCRL!n;?7JHU-u++Pzk6!2_@5Np=W2T&@y+RcY8>w{e@)f%bNaUR z>+K?xJyoWz8*F6#4 za%$JUHz8ZTUvDt&bu>ttwKDpT%bG{IS~nvZ4*TBZ-?O4AH?U8$vU|hIrKe5ILyk;w zTQqC_kIoh6>pM?zni(_4xNv>jyG!@@T-FuOFSl+#9DTj1(jjw``fNet5~Y8oTRwf+ zxozkF7>+Yt`CNi0A6JQH&1F$ies}fN+Wc8o2GhDC`f@%VOVH7*+_HMnDuu$}Bj(X_ z|E>|>oc6P4^5-VmMUUT_9lzK2`_GkC`NlURx2(J+c=gU^tGLyT(btbnl4Mt^Sn>Cw zxqD;TB-!BC2O?+qaxiW^D0K76_cMY#r`;KJcHOkHU1kw~y)1Dku=~gSjJK#SOL=IzDDSYb@9{HU0hMVIJZq0v_?GFrUUx2V4`6?0 z{4`IlQE0C8#o8Q$2zkS0dbe@}_c0sFD0ppfpKt4;zT>TcozmiaO!-IeY|_!#at1mW6abG%cOaP7?D@HU3uFAtt#*N@eHUB3 zpOLX!|F^S!ud!S#uYOmz`oYC>z9dyxPFY^J_R;bUbN&6^6^AhWZeFzi;m-O^-e=za zy{5zeFj)7%blDbtv;X&(^6}m1`1a?c+N(fe<{jtn zUO9Su+d`{7C)Uk8TiY8PFt_JetVY&j27j^7lQX|wPg@}M^7s zH)We}O}*M*J0(1<+^mvz4v~^=N{>=VeCHe z_4ZrtvQPR)rGNc;z5my~%E$9pFS)iWdrp1*#7+3k$B&};C}fAuD)dX;>!XxTNv`CukXu{;}sLx(ap0o zOgyjm+uo&5E^_X;?Bcz4wLsE_nJZ>2a9gD`eerX-5Pp|g=I4WouN!8lUD@&Y#>L7{ zOCHVT`j&LwY0Bzb>63y!otp9c&&K}zB|DXblDd|=9$64dZVGW66g0ea zrR$l0{=cv#ysW!-xfV1u-kP(oH}=+w=N3kK)3vv~WqQ^#;~HQ4s;x{*>bP37t&SbL z%rskyW#!RRY-t%Rn1Fa7X^9HIk6mxsxHY}r;jC&( z?pub`67LzlT_TSjnXPP!S>v&;^!Pmco`2H$E5y&O zlWd&)f#aI%rWX$?@6Mg6YU0VT;$UFS;z##_^4nGZp1J-{pyKl?<~x@zpMPz}w()}r z-_++!2VC=S`5&;l!Eo=M`XctsS@YiX<;pYdy|w*Z(tXG8f20EMbN$+E`OY*i!awPN zVcvz4jAh%}E+6JdzNYga#b2h+uqr`C;8F4>h25+@(H@69fA)WV^GZDHkGtHz62SfQhT|+nNkg_J5(W2t zJ#OfkZ)Lc&&Dh90;BGxXQdFWEBqi@aiU9MZBrWE#Y zYUL%I6JNL?)Hx%Wc^*S}hF&pd5)E2Z~ z^r(IN(Ee{s;qRw^;@mr8iydafxi0(IQQPlhX+E)L^YzT)=X!OQic8+7++J*#{zFFa zL%9({UF!4SSHHi^H_+S9#5uPkQubKVs#jC=JpS-bKV2TP{(sZ!Z?dn8TzO8KE#zBr z;6tlF_eIY+R}~~z=&$eJb0E^p&)VSG^((ApiBVrT1sqSZ8#KH69c?Rn!Rq_H-nw`8 zsp*O=r-i>;?%!Ix`26*&{+E~D&nSER%Cj|#yYy(Ggj0k|&So9f*SnP5j{UoS&;Qo% zd4aDz3bXSjUOTq!Ok-mNui~svvl-Sq_Z&Cao@Q&|cC+SoRN{Q;+ilk#7j*h_JyhFd z6P^D@*=! z&GVW2MLqfM)@(6mXU`9h*ULvtYdQV2X%ctczdtWy7xdKsyt^uR{P_?cm#uit$@!IRk8z{8zte$>4-0Aq=7#)Azm<4cCHQxg z_PdML40RvVc?=#;{MT-$oqfG6QJJCC@#1>3f8maH^LKKmSv}C!J)o_a;QBWx^ViMu zH8l|yKOVjR?7J-G!~CaRxqsVAcPbs_Ra~?0150xIVK=pYr|Ad3*Q-c=^4wDR$j#*T#UM)oETDOvt)ts=pvJzWd#f6sfG^{;y6wZMcl|C7Qk z5@*&u{~&+BZ*%U-j0>|RpIy0dm^pcMt)qXicV*w-xs~q@J9TcJzq>cd^4FV3lczxle(3}Zu zzn=fbs-x2 zSAC01s+E7EwEjh%vFY23ejjI^_z*71tS+i)+HX_7e#t>+v7FoHIk#sAGE85+`M>o4 z`i@=^lbia>BKx*2a*{iy{zXUR$m^U2F|Fjdf`g|!624#1`l8rdurI9b?Ab-OMj}2A z3L^Y}EVB+y)GgbxN|aaU%Ffpbhc>MfSi55BqsQMax(ka)9Jl?hAo+Pw^tJ;}iyV6d z-@ku~%uWWm*|zhQCHNyH7o1G*o~%{NCbo6w?>ndRnQR zU5Jrsu=4W{lc@Ge+FB@NtoT!BZ*Ps>bl&=Z$Kz{Tw!E)iZh!9Rf|q8eUdqYMUHP$Q zcEbkFFKwvkBfSKt)+?SWverPs14`qH!~v@XD!&ma3dgvee;7ljv4$<_9&-!f3e%7n!|MU z&E6RGj$6ts%eF3OJNMUS+10?qiE+z6tYlr!SoO=)I-S983IAp8=~DtHmP&P* z;XD0t#)a}*(VqU<9~S#P+xfu3KH;pv_RnfQ^WXXJz5P#X?R!?abUlVQk?SsdylCYJ z*l(fwXeYx9GkbP8-DAzY6Sh zI4ks{@9_)u>ZDhhjXNKdXkA*yKOrYk<=p4?Ma7J>RM#J@kxEXei&bQa(F=c5ZMW1e zOk8=J!(8FONov-C!X8ysap#Uo{1Ymi(slc9pMcn!(@aO#-d=Vs)%hH|g~7B`$F&D` zZ;uwQe{ZOoBFMpeP^9wP?zdYnbx&S+=X;>*$q7*tryZU2^4)jgh3n4mh*gkucF?^l zE2w;7Sz;6Syvs^Q7tffky0grY-RJ1>M?u_7?jACab#v=#w-in&HCx5*wDs!t5Xo4P zO_s%ZiQYT~TTD(amI!W|TeLinQFrNrD_OVL6qls1-rN7bzyA34_xC@1d%JdjyZ!%P z+|yr|zxjPHR@PUVX{(az(hKW9zF6>L!Bb$6O3gOG%y z4tLVF6<=@ut&Fj0C4<^@+#6hEny}Xa8Tk zT{uUEg+} zZruBO+geqb!%emOllR}XQSD>TkA2H>=MKwS>jD|}4&4TiuZN8va?13c)qlmu=Cdm5 z5#R3%WuF!>e$m_-A$`YM>1g_A#hwQXAFR*bpQ^Lx*Zs}<%2}CpxqP<_HeQwZ&urqX zp{hJR$;3OUBTD??4cn<}xvrgFdi?OYyG`3785x$hyilI@^QMN~Z@;>`^XFCS_bn2B z8g)B*bpunRnq%dgExuhTR_#SkgC=A<3TkI{MKA{ab&*YKF=?$6%el>#4 zo^x`YnI$nJkZXgb(vSbY|Nq_p@$GH%Kab=8HO{xMa|-?V`LS&N{eK%?KW|v@%ti6( zz240eon9{H6XgDyDEH{B@VXoR5r)712537)F3dFS$_yz`a4DNw_w~?}t4CGe1~@o- zh1up@FWbt;mwmLSQ)?|lhnGV_LB_t{T_+Y6%brNzY4kGIOZUW4cgJ}wnR%1Dy1J?? zC!CfwWLVm($Q>!NQG=ya>h5dd_fPh0w0o2D*0k|>XY9)KSO@hIgFx$D_6!;Gt=X+g zyF!<5y>A_67Cf)-^gFBBx39(_D#qrFc* zgqYa;opXHK-zPHFhJqCZX?xhL_FmIikiD6WukywJ=Y<|QJMW$Sbyak#)lL3C%vokj zJgeW>ht>qMIeb+)H0$}D!}+JqUtcG@uT4sfi(_WHq)py}bKBnU4^BL}YO_ZZ`-ByO z_y1JS&|MT*^G&8{WzXu6(_Z0iB5fH5w#9AG``?xOn|<5cwYNKi3^vadVLmpa?oja_ z+b_x%u~`+d>7vhP=x&p^*JyGrxcmOTbCzEx_s{8Ap4YJ3eD;j9g@+7XbVLHXQoB}b zymNQ8%xRNQN{*f682iq=X3u|?5W#DruB-FYrZLMWH-t1laS)xZn#9?XY#*>UJK!^4 z+oRjx-&=g^`Ma%oW`TX)j`!vD{dev%Pe0ANHSEuykB2o|7`LX~c_&$I_vVOOSBx>k zv2ANR4yGO6e*0`o=jo;(qkH-90}S_U=q+lP!lZYaNmJ5PUO{w?CeyB@{qH?a3LM-1 z_ucx&f}Q&$m#C!&tlW_!{^#p;e(Q*zn){zh$Q-?*uIzm#?Rx#+ui_r77Z%U___@q@ zM^H~ib#-xKv|CZ=-YGqI=CWM9%f(sfsS&jCeffFq6Z16BuUIsJOQ+Cv0fT1Ud()Z) z{bou`eYfu#$qO}4)!n!*Dk7wVQ&DA#){XBu(T65&c)yMFeqMQj!i!BaWDVI^oYXCs zr7W^jc1jZv)j6FO+daqE=gc+P8}H>0?0WeB$NhihckJvw^w<9t|MT^+ev9gYu!Dd9 zHQuh<{M?B3NlX=E_0BzvN!KfVSFew}dbrFd;gsylGYd{APrG*c(;DXz3EjH*1IXO^M=}L!cE{C^~&93|sU8dX9<}yv~*s;ZrFGeAH;Z((fiJI*7yzQ)v znJlM2T)KVZh@0*2eUH!2uU~XZ_VlTMv&S|CY(DDRw<9lHro2^*TXS>uh6O2&6L$Rw zP&c@}N3%L{Etl#?y@1`_H@Ris9r6yen72drldf~i63#=srhRoxxe}o!3p+KRdR850 zo?CxlFLTxhO`hd#=YLu6beMm-=jQA6zS0U=$;zA7o!UI3reyDh$=#)4 zTG*Pg_{FUU-jA-tFAr>)d@h+u{NJ}N$Jz_siv8!h=@qkVE?Z-sXi&4|_`>$SN$Llz zOUh)GQ(mc>ykNN)Jo&kB&B2{N9X}Z?esF)eilA+1N_qry!Kp^I*OrkM5_4wO`lr$B8^1HSt@ecF6yVC2UKE8d+do=xO*7J&dh>yzyVI5eHIHiqrL&89qa?%6KAh7_+WUMKUHXDv^W^ZM%c zfA!LaV5hUJ3MF$kbux2%&CE@IW~30Rv9dm|MOC$5;@j_4VGcQKlw7NF9F}xAon)GE z;>t7Ca27QVP79-?sDLBKR4v0FUux&LxOl#umoCHP{#GU?W|?X0UT3WR@aj#)>G&1X zW^wHPeogh~A!UU?or@>Cj=24^=KJ&UxcQr%v)K26?soX``uzO8%QJ2=znhYg^(({d z%z|a<42NG%wbA`>xr6uWSH31y)&KdTL3}c+)GmBxHQscS@#xW1A+9ZL?+Oy+d0Pek z)vx)RJ^jw9iAy>2KXW&9_{hn5UbU4^yY~Bk{mqi^Q@pI&XG$_2xO?^eKVM=$TMQQ z==b0A1ypi=vmcP2mda$=ST1*ZOM^?e{>j%5XWiV&Bj|Rux8gC6%+X|Q}acSTza|4XhlKQ^Yhmv zrk!)2s3&6MxANtS5Cti|-3Rsk|4mlz_G{;w`|U$o@YZGF9qh3uE2|ZcyG6(?XLx*l zqpe+eS(hW<<=J*8Ek3bS2poOIk`QpZY{sGRi@l!~JX-Qi@xb)d!TKugk2w_xeRq?E42n2Jvb~1U5|c3v6Q9vw#2Ny7=e~ zfud%X@&eBrCYf#ubt%{xvmt`La`)XY0=vd7)cTCxmIUjz#72W<@ z_PxCP2~YlfQ9-x6hFqqu-nBfX%VXNUxW1LxeRSfgtLMYFWE(znoF5=+{Uhp+(e!Bs zGkUcwd<9+jzW-h;`{s33{{8jpifO^uu3taVcw}M6D~?O^9L$)?rtt@CTC`wl_`*~5 z>18_{92G<3!o@VjwdFW=u4vGWGLqYz;IFO0Ts%jh+1>E;?6hmQzfKqawnQ=UVD_Te z6)ziFH?Cb>THy6m+fuRO>}qxPH@CU;BriXe{#JYZ_Hq80`1lXs9`pWx{QuYdACHe) z-!S|Z@*)5KxBQCw-3y;I3B3Njs5R)X%+#QU1>c;-O?=wlF8KIu2mhg@kg0oL1(v8T zlMmV|!6a?tC8%?mNj~YeeDO(*ZI=|@&teVGofg*MuzuyO2Hn$1!SjyK-JHfYxoKv~{Zd68fz0?p=G*_S19ke12^4y)!N0#gtrMpYuoZRGNhgY+n34`Tn)u z9x=A1=Drro|Idw%`t{`BeQw#TKh5jE{hdF*GUjMmO_lEwar?ccwjCOEML8#hy&h=H zcrs5uY5)4W`?HvKDHzNVeZekuU;pNhlgF-oc`5n(wDr&V7VLbNr)*aGJbA_ab!XB7 zp1$5J!{Pr{S@E36C%My`9z6Xj4Vv;g{i#XQt##Iph^uvbJ5pry_I;CxeZKAb$riag z8M48fx5*~h)+ANT4!wNQp>wj@wky{cMDsnbyq2;uNKv#_ewCQ1sNmAr)vxA-+Ao~4 zr}Nuw}N#%BR=A=iS-*@#Bf~6~R1?{haGu z+ZB{{Gz77nDd#wAwNC6}VV&@6DW}^dno$Z7Qkqv))8;cwZ0wt(&LBAX%#JDCai3SO zV-Rb9!20{I?74#t(X9H{v+oxQZ-2D4?w!f&)ebXeIqbS0eCi0*%QsK{(6ug z(NGvaFZOvw*@q3!i12ns5^R(AdQOz%T!)qkf?7yq%~ z+s3$zFA>i#?hAE}pA-CbZ!zC))|(p1_KEtQ$M=g}Uu|8#bYZ3ZMjgN9tgg)&)1D@A z=49-C!L{Pz{%+o1!MW{M7hX6rpMOSdR`#^2;Mz3Z(4$rVk6dfEYRj0+`Sk5&g^&>0 zM)R`=a_%qg)BSyR;XAif8-uK0bBjNSSn(EaaB*bedlss`zOF7grsGAQ5XFyHRw(JMO0PB~q->tXHmYe_kDt=)0^=B*zy7F1+vZExK|kbJf}`(Wu3- zexZ-9=lTBFp?%q>p<(*;lL|(Dtdq_q-VRItE^gs}<9knTJR^g?{`$79y6irMwkk6v zCk1cbuX{S_GS{XV4=<@PNcjjyd-SZ+eCMI5=$3VV@g~+Q$ENoljI*vu7v}hD_x<;+ z1l`az%k|i<=gpBgk@%J^Pm+_Jb7C<^^V%;pwOYpU>JGEkPncc$c0$Wb)1(O7zq{De zg?C*o_1D!p*6izCl+eEW+~lRc6Sr*tsDaq{)yX@0m^u-pr zJ=!Zf!?5bdqN5kpR^MXiJ;BkqOFZey@#~+SG|n*!yYtZbfXLOhO7CBCG3$)4m9jQ} z=&%37T>o?X|4sp>XO+i}A7}sf>G%5|A0P8-zn-Ph)}hI8?zr>0opFCznfRrQp8hVl z_3ci8%f?2&kk1dU*hw9_;?#Ykslr5Ng*ppY$<$|im@C_Z)P-1FT$G)@E!wwz!s6zmf#5+TO`-y?E>Vb0qf%)ynOHw{Q4q)tET>N{& z1r~eXh-cz4`u7VW;|%@9E$lO|ZSUn+`f~5m$7)Z1JlnA4Vc6??Q9lE(i++7>ZE|Om zAA^rYQCRnl#)VUMtVzxd`a0L>@$1=9Q9t^_W^_$#HD0q?x#muo0Ozt)w+9_t)ThkJ z*`+Y!8F!lUg_mb_78e||@!#==``X*S(%7@rzQ=MuxzhLE^JlC1o5X^@PJaA%iA~+?+4CeBb}8$Wc^GqLuUU6FvOay%){C;+53Tjn zn{zqVCi)w5^m7%K1J=Ith4+5q5^rE`at$wkHeKPp=U0|{%F|gid-{L#8v4yxWM}?- z!M;kRBd;3M9sNA{-&r)WJcv1vaAd*dO}Td+wluGM^&?`M<-)>9)TG{Pi6|R$beVUyz@(Xv6P_-zgu3rMkG<+js6- z(EtB9Qv+M#gPjr!jyG4H(PI4EY2SQsRZn7*ky(ow=R~>R%)d@Ob62-*u~}&LNM*_s z<`@sQTgg9O1uXZMJECZMx+(bucmHo?u1R*be_pqLky-tNN4Z9a>&59qPkPF(Sh?FT z@#5qzFi~!k434<+>v7s?K7QT4P|IJX{fpR_HSo9RGaDFb|6$}QI{Gc`9b-U=jAl81 zcIKHhw}&}36>@p^c+x@(zb~;rwk?lWJv#L0ty<{~Y6l*;u^H_;5XSzicv1Nb-osV9 z?-uO8&%kh5#86+ZaMp*ST1UNGOQ#pLHXoiBwq(hQyIM0=FWSxaqwrVZ`zLzbf+vA15Wkn^*zP&zw;ek1o1qur~KTa`z z@^Ftyb&TdOi^VVbgU%I{^r)*okgNPt;Om5` zK>=AcYZWVB7q2@y&Ck6+;nB-oUO9^#bA^n~&x%_oFN)P z2X-E4KY8q5?W)DvGnVc>zEwkdvWj!Srr5IyH@5k*IQTh5m3*YzG z7Db0_cp127ZE_9A;pdU2d{Ht1!W%t9llWaX@^{rvTa&(U^LIyCrL7kxFYIs;ZvGWC zL04%9Q%;fIhk1&6+s_4Y+cITjeNdGWN)P=!xzzOWvFe5}-Pg58@BhF4zbWDH(^Vf9 zy)HfY+Wc?mslMND+j8%Ikdw(PUy#D2eABk^cJ0d={jhaRI;n;WB-$O0IPQ3+%M)hy z>hk%(ZDmV#miHdmzlo{h#l4p--zB>iJ8$UCWQ~w`w2I@yW_c@<37?kyR=1jQNG|9f zU!&8z2!@^)ans~@Z2|;en-@ASu2qoW3;W7m{*Y6)Vq3fU!NnIoe$Ae#f2l-x>j#Sk z4gaIrES?4bxoPsCrsMSFxqo(kwq{mRnFDNU?X zEVdeEUSIRLz-<4T?+#u`6W1O+w)f7u-swBGG_QZR%9*3hFm~eQwj3W0i_}NguWt}D zFW?J0ailR&`2Laum2Ld74{y8u+V;6WF-vw$(fi=nU$Vc8_-I5d=|8J29k-l~@3$UD zV%Eolq92UQo|o2Gr?Iyzc=1s0+-$$(-F3RpVg%-Pa_x+e=*fQd|5om?7ZW!poZscY zR;$vpYR0peTa5yX%>x&24&dA39KBF_llcEM=jt z;C*=ZbMAz9eYTo2(r4u!eO&rJw&;+}`3^;;)&_~WvSB@wxPoqOJY$=*ZOWo=Zb9h> z78)28&c4KJ{Au2Xb=lSlr*}QNoxi_vPM6~K-?Db>I-83W@7=q1%i_MJYlyd|zAE|@Z;fr!?UA=hxd@eyd=F@OL8CWo44~p zbW4S+MtS#ond5ibUoQT;e*MNXp$nJZ>AgK`VqHyw|N9A>l6Lwqq_Xm~GR%`Go_D}V zlf{F>l6mKa=8m@=LFOAZf9m_cZLhAf*6EL}_V1nA?E1%JrM2vwyY=@jTwE*~pf2(J zT>Xo>+0h3jjKAp2@wnx9-=DQS;=IhRpX|O*9>4w($#~$g-n^%YO$RjiquM_<{FA)1 zT&-r&Q}KfNZs9H!r|kqc7kQ~GhJ~FxalW!_N1d9}k40;;mA3sqweH{M%)>jbGk^4V z>6kCb^K0RQ92z5t!@ano?~T^r zOER`xe!pHFKG^LncwOt!p`Ri`SLU)c+H@_fbuJL-WY1c_zp&I=iEGb8uX{>&Ti@Nj z#x)^xp5jsy!9>T62Q>aBEDceZ_@JhRKg+piVY$=P&vG>x|6bPK=QlfUBXjD^Dy{23 z!k-@VzuY3R>{-bQR!7krFC*?J-#2HjFEI=g?d^S8l{ z4xhn$es$}KTQ|5g(;KcR`7%dh|}MZU;pUwW9IsQKdirf<^3$=;J5zd z=}inuCsOlYJ8xQZ=)^|Vf_bb*)%ch?cZS_^R6nkfP_%#5gJM#j!w=Z}EAq=Ho|fZ8)d=$l3nC!qH}#JZD{-Le&<= zI!n0?XZKo*G5O^mxp$&u;nF{u7yLg=7G;w=^v?0G?+atwl@_O~-kOwbI{fhA%ohRn zIm=^MUpe*tlW@;+JFsnS#CG1LOWdSaCx_1vEx7;f*p2Y?!=5ss-^`-!Zd<$ZWpdAq z=PMJ{u3hcO@oROdDrQ+`kvvb?;lT0!@;!V1T3px$I>_$&{r^nwIW=D&jAO0-8nC)) zf956T#Qcav+kj7h`y`lIE={_aaFgxovdGW3=Q4X;{PF1f_wpkWAAVKkp5M9p@6-!n z?k^9T@O?d?wNzt`?=g{MH5)EpdA%pDTvL@}x>&f(;_XZacKN+@_4r%4xOBO%8;{@P zH*EzP3<_a?zng|V^|-RA(RcD8*8_8IS1noRaji78pzr&P=QocmVZFKM@7H7Vy&WUp zS5()#Yj)ohSAKT$@gt^dSB_3!b^OBfEmB-R{>L!na$8YohzQcTm(?!fG#WhWnGuh$x!VMeO&CK1T+NtjFP}pT-}|}mzO5Yhuf)Rq+^LE8mQO8I zZlC|J&)^ul^wqbS6E5y_uby|Kd{eu$ zODR|3mi0Y}DzD!AYp(p@&b6)7RZn_P@4lIdi|fLcs53v=GwH*eOHZ{HER%EUQ`^9? zEw|o6Bgm^mF=^hjvI!Gf-wLq*jXdKK?bIQ7`Y9LV!@B*7Pg{O&dhq|>xBmy4Km7a1 zoD(Z6_;7vwUu}m2_WyqRcW}hT#~1F5`S9;wpS*ot#x4b8&@f+)%HA#c6}3NkxBr&C zewusF^+m1=U3bPVuv8EJDIK-*%8mz@x@4a-z58zct@ilq*V)|`|9(_tw=zw?S9{PkLTu>(S}RoOMPupkSv?#5Bpysn6fLihe&M z+1i-9yIJPLdHa8j`~QAjUr}G*Uffc9-{;GU`Mav_hRM2=UdnjTU%GwLgV=z%{X1Ef zb>}Pp4%~UaRAk{^yRXw8?`5jGwWGS@>Q$!oyUjwbXsoK7v8-(U#Xp@3JQ9m^H*KF( zIM-CwQoLr*{SO=e9eDeXapB#rC7j#8`ZL!UUfS0D{^o(WT~(juto-Di53hPXr)O$F z;Ki*95=jjwmo;1pd0J|BCDv!{&&r5jpB<%+FPiw#M1XPkg8t~47mjr5N?x3MZGMdE zI*TU{gO=MKnq%|HVAK1TTMc+G&G1^`>!j-!BhF~2DKxM5Z~wHHhzw-24ak`eho57k<$BwB1kW*#2Ud2S#e_llE>fVC)IzbJ%gvBTtulWCHh%jcp0%=QZrY9b>SuinX=d;LZj)-BUwv%1y215z+VWjW&)-g8 zEVec>zt4ql&Ti2Sool*8rGGE`;_xo+A6M_gSpKb3x|kaFIQIxku;!JkUD^HU-#0#n zS28Y{lQnWj(iDR(Wh!uE5E% z-ksC_gmW!^k`vsg^=gS3)AWOa0!{J?Y9&mI7j)*lPJCONak4jSsY!{pV9gb#^OAz+ zIg@8K75!tc-`BUPGQjh7S9|NmGn?13yxH||jhMIiql331Be}OSNZ9v(t+HPi-^D4y z%v59FBBLnk)*~Er%g|Sxp=tVS(R};57m1OcGfEG?%vvxhjW=Yw+lPZfD(x?qb-tcc z{$a61UO~f!3A@bh8Q=OhWl8D3rvf>P8(m@~PAV-;PKmy#GMj1Fw&&$v_v*4f%KTAz z?v8%o;mwn}DkY^GdJJBsUzsQ&p{2O=u8``~>+xNItamd^tXaR_;Od<1w2xj`%pCfOj zdTAv)f5-CXpxg_hf`R?a|4L3Pov%H|zDDJuzq{oAB=s6IMv3o7suoZ159dC=%4ku# z{qpd#S^wYM?wjvnee^-;^EWXYKJJ$nn$;FKm8a8h+jPq(!S<57Yo77TM*g^Y>AT3= z=vzmno=YCwy{&r9seIc5cNG)Y`B`Um-I_5?ZB6_30(sxiU3aVM!>43#n0lbVxxM4v zvx{phL$`?6Fo+*Jeq8qCu{EV3``2k-D?R$QYjcybakBQL=W%iu1eINoTo7?fxqjY2)jy%sy#xn2XQl77O2o z(pTrg6Z$4@eRZWlGWuj$@uyu$2HTjr6XuEM+`cB3g;Oe5tk#>!ctr#Q+F$}5;( zy=38LaXo3%`j}G>moYPZzb%`@IsNq4MeLn_e_LsOxcB($*R7%!`T6Ql!_gHZ^NSfBt1#ReP~OZDn4;J4<;yCmjA7{@%E2 z`nk0WPFT*o-QrXI_)OT3GwlA)5;%6m=vP!$9z1TR{G7A;)|9P@Wsxl1e^pZpefAw% z;1zy)yOYpc<9qL)C!61Qf9`&DSLxQAu203YxO(}XE`GCq-!;Bk)=xdz{p#1=79P@C z+`E3CTmLDG;63)AKYY*LzLvSb<=Xb&CpJ7^9&cbU@94|Fmh)obl$Pto@P*k{nSI(G z%F@C=<;cJHr<<=9Y}smVn0)u={26wOYwc`;tGCTn*WCQi_)MN`{Dj5xt3J=~4Y0c| za^f@7ftMaHBPTAHJH7ABR;#!A9@UC5XTPpntZ+RkF}b6o(2-|yV)EX5Q_hyl%wZ1w zuhMxdRpd)zl(m}#{tY+vPtzXc~XvKw!kH7|Sd&%%dM{{8!B#_A%8 z3M=R8EblqPDR=2jYS-qoy37B4y{*0H=l<7{{{Y`Sz{dJzQuG8Djt-U7RWPC|(>-Ap^vr0v0ExA0Yvg^k8o;~?9-a4#MSpF+N zdCrFX>~^)MORD{L|8wFvVR`HKOTLXa`fONYXK1lq=Deru=B&H?PSKunZiA?0tgYNd zFRy=lvNz4*49j!oOZyHUXPExw@0!<~;!HQx)RdUI+)i;bCP+KpTKMqnE-wY2%S8gd zePVw3dJTo^?bbc5GE83LC3rhC`e0Uj;Z5O7>oO}h#eCS7tJSvq?yV&ZM;}Be6r4<0 zeyW_Ez2e&S%dfM&18zxiuAc19Al}^iL?dpu5L;qwNZ1=iqt%O#^RAhqWDwWzs(sbe z9ru1@8!u>#-o5nqOIyQ~^}>vt9J)V?OLSI>e%z!}QTw-T?ti8tN&9>6Dyr`XUg|5Y zZs%v2c6Uup)3gb?JbJ7?OzA7vT}rC5mf?8*qr75w{-sQRJ2CDxy_Xt9)@}TFHcz8} z(d+fs?|fRByZ-h<$>a^f<`3oP+WbA7ZTaTsZtXK$c-R##9B|lTx>4qwS^XyFdDk9& z4UdgCo>%c%TWw|)-**KKn_b^m+}!3a5pz{VQ!Zwg-J-o>MG6z`vY2DGvnAz7{qfIf zP~sO8tP=Cmb6pz8f^_Fn^5Sus36k<+Cn@OhDE z>9v;@>)AJRD7W6_J8IN({N}D?QMpw&bZ@>=o@wjVobzSEmA-&wHwxC>-E_V7e$zYU z^>Lqam<-)sitU%+IlfzAY0K|jkG9?0c!oPJF3#ZmX4#@F$KRjN+k>udvUo3|Z{xaV z`&p~+_e!sRJ!*X0f9YS#=JiXaUd`z$Jyf>iX4c|czhAxgW;Q6jeP>7f z`ucm9n1h-2sAXksoU*Y?;RvT<+q?-Gv)X>w9{vAk{(t5^kLy}GAEsFjtle`N}u=^p%(*vy$(w3|b~ubChjbm)?xc&iRKC?~ngbxckvYnYMJh1)aB8`MENrxM6PABivDbiqf02N_@J(6%3_F>g z+&kZ0B`z26Ib%_Yex`h=cHp{uDMysdb{d{|?YDw!+MfOsj?0<5MC42u z*%A`hmD#m<TW>-o2Nd3A4HImo!C#WX$kVaF9; z&4=^yE##|H=LD`~QFUZv-FuzW>j<$3^ZpuBT{KiXL1NQn353 z!Flh`d%jQnd|+|@`n{#U*1h(;@rBQBhx49I9r@MyvhRbtU#dQr5}UCnih1>dDLapS z{AOaBK4s^moo|1HrYwKxI?v`??bbOAqJ}@ERG7DQ_Pzbn+}s?_ldmg~J1KB0XDh4T zi+{6qI@}qKR5HzOIA7iWVD7=3D|Z9=4cz7GX8FkOyQ$@TG^SvorTVRf>9-oJcxOC| z>|VBPxrVQeSr-2*eKAM9E;+R#4#O>51JB*zXk_^Ccl-OQyLr2h^3L9O^jezfvRxvq zp^YKJ57sgZYdIty==2kqwTVfs#l-!Bz(boZN%!27H(q{UbT+4TMQeH3?R9 zas>jG;V!EWNG{24>t;>Vn(>_JSl1+_6Y4cJ0^dq5iwa-ATcFRdqVZ%E!;D)KLKi%l zW2T$4alfobz2E=WWjpU#eqZ@I@XNX@M-DIK{K*>juONPXGmClOw)raD*N#^ST-iDK zZuCxF+ZT5qK3Kn&|4Q#a+v`FcCzWQ)t*tmeli|3);?MD)AN(;&dmh}qbdFB#*9Xhb z#|KyTN!aawlfKnwk|J zn(HR}?vjqmRn`fY6{ZL>pY;%q@Gac-Zj;Qa3OTDyuQ=7hSzVWCaV$62o!B(x+qVkm z4;_>9A0NoQyCE`R!gsmruS2gsY@M*JY5H~XH`)*D_CNmnSJpE9%;g>l<+%NOn`VA| zKEM7^(atT$SF}&&dOa;Q@ax{lvn5OucsmwfW_{0dD=1cS*}wJen?5n#Iq7+6p|0Hz zXIGnwT%CZWx4%g(^()uwhAG+&yXJkeGqGMA^e|*& zT#=I(tE%yd>e@90Ck`cSxb+}M>Cqnc$^)=J?w2C~xt3r3De!S$Fyx z{rmBl|IfeM<-9$c9vwRY~I%dwfG;1R==Oou<3C?&ypkC{>_qB@LvBj zLqO~Lx09i*Yumg3NnWpLOzc@Vc_F8v-?F_E%oMNue=jBA!Of8VeZwmjp+6P%$LIY! z@ca1vkMI9~{NGq`c-#G{j0HQDmhb+g{%y%*fAwag7{2TShCCc%y=yMdvub?s&x%*@ z)YYXSZkOI~s4rU~ywLsbj2pJwYtOH5aMoG7AosgYVf-6@wypcbg+E+vzBYG~{BD5{ zYdYTFbSz0yJ>jVSVW#fCAFo#{*x22?^K(J<bvykEFF`sDniwlNk72`yS4 zoVhF9Wl6$Z9yXI_$~hTxrkH;HCp;#u%&%5`pA zwyK@aBsZD2FZQ2PJ#5{bt9nR8-P>pN-H43v=I?TR`!4>{y4%lPzQ6Ew%N7T(l{~+X z*v;fnG@0(yv+-$>FlW-7TO!VEu6qjRr}YFLIk)S6Ojo4cZ^uQhAqTd-|7Fp-MWaJd z(Ji|1M52uBn#Zzlt3@~8-g7^Vxil}&s%h3Ti+d%r&Lv-%dFA5&AC_s%YJt(>KiK?) zmXz_YnB2Ml|KIns3?~>BB&{?z-JHsQ;Npx^3-dUx*N6ygTvWBA{Ho^R4x@Fq_{@GM z*T$W)`yj9^@k@WZ+llJ(4!LR5&gOl$x}NVfYqdaCT8Bq*)f;)v`ad6;>;M10FZhRR zN7HN5M@2IWkFOI;Q}1PpT3N7b-)Co@56ai~aVqn#tod7D+tBPccZu1yy&Mg`jFn&J znTmX#SXL#%A2hq=TXsuS)55H^PbOFA9}V06O-f#=uKnb}A2EHrub*qbPCvV{#))yw z`PZMFCFc9>^D(q)tsE=9*=^0{>QhSc(`Wf8`CK=MsH5NVc2@6VbA-s{OgYx zH*S9CZp>`-NXB5dr0V9S%u*i51#J!~7YHAX0oBes4U(amW z{`+rVWu(IEuI>HSadB}{F3?M>$&RQU;Q1ow(s}0=B8}z z$(nvA=J2tXZj?xR-yC>t%jL3jnHw^EUl=pSzy0)e!u{y);YES-_7!s|-g+U=`y)8= z`!D0qiTRat_U#lqe#V*2{oJdFf(xNNGq{~r^m7@Di(E@Gsp5Cn3OK@;_GH(L(=zPm z*pFB!pWEywwIzK^a|qv2uj_gj5~rH?ZMQCN;Ah=$?C!}S7&?IXH0$|m4`IHK-hy`XtB(CEKF;ttGK}@p7jAY|-Uo70A^)$$1n8=s|9fZUHJ3?0 ze!Ben*s#>^%kQbv8~e_$om{ft;;-M?M~`2B7XI{TvVENj<0Zj43Kel@=S&pDK8Dw)OuU}Ol%DC=zTkZYQJMS;>HB?Rhas{ zO|+E$mTMp5zV))$?_WXRuJOKBSty}sxaHjRwh7B0C_CxwD$mbuzpzfl?4W{V|55{i zm=|9hRD)NxUVO?WVrTo&BSEBD=V9eegCfi;(9;i%h%e~t$pf; zPJdm*H}N&=?Rf{Mxx8$fxXxLBUNSGI5F_W->U8nsV&Sx_di(Z$H{IfCc*{*hB(v*B z?rrNQ#}~eI-nIHLucS!VQ8u4=ftbtBN@N|^-d$?R+hG;EVUx+a>)Kv=H}2j4_^VhzYe{ra9Csaz2-gUZ#LN6F?^do?;1<{gxTreYpl9X-8xcy!e+(f@I}i0@5T9o z6GVct!}Xp27TJB^)6SgK&itQ|S7*NBqxR=v%a=b`IQv*;(T6<@7p@m{Jem6ZCi|rX z_rrhZA5-d>*QI)OUEkze^6DG`^Q-LVGMtE%@sDEo47Uu=pWl`pep{C>`)Qwc z&9k!IFJ~#N&fnGNSFAT-(Q2*%Wl;2sDn0#c{ z`yI7+KK?cDW!M)NFYq{L!rY$IPZ#a#$jvtYdT-*QyBD@Do_$;HPIZ52Y^l26x=i&I z6EBI>>%^3pob5?iTtq)@v=RBHn)NW0+--kf{AGQ8x6(7ub z#v&4C70<&s`wdt1N5){5N#5H&r}uK374+QtRpK@Ao9xAxT~GJraiwz!zTTG@Cw64P zv;#3$Zp+6Sv~1~$`93A2I+4lYxy&OG!P*0E=j_T^>-Y}*_^G(*>ZB-*LLVnyM%EJgC|$b>sxcygG%Sk?bdx9P~bX`zO}C{=a;kIBly!0Zjiyr8D9qKdNsiW}9tO@J-QewP+ zPD_92%uuvneuL8NS+^FS9sEJjiHa^qQrc z8B!$fmRmnKQLwO4$|CF1ug1@jlh&A+E6Vb{&||Zk^h?f^FE+z6?(;sj{}&d^Etr3? zC_=M8+xXX()AdQ$r=Pd5NT2fYqv?ulmo!I-&l7kP{!b{ovRZ~`8PQx76;Q?Qg3%Jx8|d-QP~`OZ$|c zHYLpqPI{?moMZX^+{5GZ>$AR}zU%ET65{aUs#Apg>v@~AvUtC1PCNNeDt@Z>{`Ve} zJ_^NeST0+AN?>_)-X}qkrlwMvhri?ZCI7WweThY1TsP?eM=%5To zTiCyG5(leM%f^!ae9fF4Vf>3y$~-RpxHIWtGD~HD?)eXaxr=jNq#nIcHYG>+Y-@)S z)2CGz!W6n2I=A|4;p;8FctJ|O=gF}XIvr0Q97?%cq({mtr9yGqqg6ltE-v1Tl`3xy~?MC?;k$2yLHSw zz{+v&YqhLrc9WJ@j83UZONXY(cKB(ulnS9!#<(OlE`#Gd7<++MdfF6TXTvxL#wVV24< z)#T{#9L?n0)h=&s&UH=fv_S=k`p10V(kC=Q*=&+2!%!w9?K7u+;w|6~C z-8pNmj=A*gMM0)XWj%#g{S26ohOwSY7I&MYyoY#a$U7wjl+V7Bp9(7KU%-Ph*lw%6CcIA#4l8^m+h zdzPi(oa4LlJTCJX2sCHOY298V#&>ULT5`|~!N$q2ER#O?svMgcJw5*Is&hNTuB-@a zyOp)%-NNSYYKPS3rgivzsOjL)X_u|`oMq^!Bqq2vc(O$4qKy`dzj7+yXgtr*Q5^ou zJaV60M?u{C^JUTBL=I@Y$heZET;DJ8{F%tiWs;iWSNj$u%u{|=X}LyYmD(~x77m4Q zgVr0o$JNe-wx3!My@+w!;a7SWXU`GzJel0JIml+O@#{^o`4f&E)9{_#Se8)StzgbQ zfA4*#X%VkHj}|N6i>Y$I&aq)%n%D)yL*eJ#Z(W?oy3Hd-TPfqiw(QFxeRH)+V}oYT zSfpNmO?*}PW~u)%*Ecb~E8q(~Cudo#xPa&W{~hJe^Ehlf1dkh5M+=6nS9)2z;*np+ zW|cr5&)VaM=ep&c%e-}0%4uT!1(}*Kh8vF;Gpg(5RaEbGo#|TN%C3Ewp*&!!p{>jh zcJ>3pxd#s4X!UD3`0+}KyT{=fBBef-lMb$PT)Qb#f5Y25B}d|Qb^hKj$)4M;aG;&j zFiv23_cDey$wqY+`$$!LE}pd!mdSGNvyWLg9eN@B&*#R&Hc>D6{a0hZdI-E(_4d*{ zcUkGFF$@b^@8~-bBEzsK^@La@z4LXSqtt@?pxg57nt6B`p)}uP_JZO z`kp;|R@{nWIlbx2#>WhsGatu2e<;g*PuYq+U`yuFyzKTSkEkg}Gns<2Y#QcpO*_r1 z==Z_#aL=x`@=DQp+!dQ z{EFF4Aq)btG1^V@?p`>O=HwQ3B|%=EphQDQ#j!a~m%H*DU!o}c^0n2T+36@?RS8fI# zp0`SR>7m*={9Zq$1CF}1-;|9;%UTo>@BeD1;ZCvH5oSKsib_0WUjnaZ+v`R=T2@#kvzRaTl` zef#^2)@5PZ=O5YIGyktS#*p!i$5OFG{+R6C+aK0Atccy2UAT*{;E#e;!0jo0uajn6 zkxRAv%yHMW|J1W%C&YL~EX5e!Wn{|yKW$_o_QG?D3jg9weD^NQx8-6NWpYt@b@h9d za{yy}_^;#}M;Md7>|SIn`uVJJ_MNwTG#u2c8H5yKHmptJ%J7{f%wF^Vul|pJfAw`| zu8R8Nl_;B_L`Wl*#>-N9)xZwTzpZnBb8X`4flOtP$l6l@p z*nN3pmDm14!r^Jn<>et&@tRXP6MsCqls|*3v+&ro_pc4-229wernqHx?%tUn4txtY zoS854t@ic<9ig4_J1$ur?UGw}U1oOHF2AK(r5As%WPP{7_d-|RbAjb6pK3mtB<=6) z^W2GH4*v&5iRBJfXA3Mcw2n8rKJY*5cJ-*s^IKfY)l9=a1Z;bBcy{(-+lMnUw#yqz zUSA}pW8|W9J;d|5Gjnrh$cF4g`;EW-xG2@OZQqLO>*-S8ejUx-pSya->8D&jMA!e6 zj=LYX@mZ7Yere#ot=l^AdO9yP9pzgaoP`3T*)t_$^t<2WxoWGRTFUe+6`E&l><@VRloD_Ge zusqWFzboXwvG+s$|Lp}DLA$1%V>zw7)UVsEz4?vvG3FV3+uF|uw4DF?@6wdz&o9jD z3Y5FJ`A{s&rDI-ZeirT%<;rr)4rZ}zNOe4X<1sIr;FV|T8@HRrs5;cXioM#c=<_(| z?vE$T$^ULJGp>(ZVX#E{)XQ*pYp+%oUUQ+XavNP|d0GE(Ez(w-;->y!Px5{9-5WFA z7nv8{U3}Q$>p9lmnyHQ7T;&S8W}KN9y8GF>X=Q2A#cFbIZV3qKG8A3BIAe3+rh zLarP=^x>fS1%I!TTn!nk>U7hjo}S(D=JXzg$*1piyAS?m z`1VksrnqnAT1IE~3B7yYtyD1)5`JOuQG#DLU1_zTRmfcpu30yuzPa!!KUz4u@Nji( zxKL!bBHM!qY#o_D@E)a1P3 z^XcbeDQ?bw)tRtLl-aJrrE^B|5ffjHC6mRc?UnsddP_51tZngn>$6t646~j71?S&M zth)V!`_r8cJ1f?Ge-19LeP{nsewvznMTTAf0joU!WSPzKb@f$$?TdFCe)iw>`+t?j zy~q2f|9|p*LHqTkRwgMI6k5(77wOmc=nb$r&^WK;pMPOT(|OU}!>nI_&U^gY$o;ND z2}8@5+G%gM%usmrAhzMVpyIh1Q4A9v<;yQ_ec5SR$Z=9)b^4@(e8ytdJZV)?UuFNV zNn;b4ttTQnd+Ynq2RmMH(xOgWpq zX2m@V{f>27|4NGll8@M&-w_uYuzg*0v}DiR)VGJ0q*PpDSd?V`dWuj>gT=~4^)toq zyw~2OJy$eg#-oHr(?eA+dRMnqMZCYwCsC|$Y(>|PhX(AY4sX5EJ+p81+T?eIJZrdW z^VU?p|Cz~jLqhq^)RTvwa5T-4yeHiBl4q7v-GkT7Cwfd`e=pjd`qpB(<~EYw{x*u{3jexpm94_|HZfOE&FYUTeEpr)AaVi?ahIeocG)WtmvxuU)~> zf+mIw|GxRS@5>s=m5+{ow%E(G;K=+NjOX_Tzw&u-?wxv&NBFgA``5}H|9wupO)pko zmcb@o@&LylZFYfDuU&IO9oiu%QZi4&b+_lnCPD^%=K>D z-fF-6f5+qhYR<#!Cl$#r=lzoUv-AnW9Jj9d;bMHY7uWE$+&SD@R$;_G^`Wv*(B=NV zd^X-i{p;twc-(k*?y6XkMLY~|&8qIaH_@H(sO81f)Bgf&ugT7Oy=|A;wh13EOcPd4 z*s|)&>|Yj6b`#dHZA{M03}D*WFzbxu9EsM=OTS94pJ%ft-&jv}|MQ+BQbHmpzUS$% zOA4Td>?IJ!K%tV zhuiA{^MMZ>^BDU3;&aWyMQF~$pEW_L z=XGOfclRmHf_rxAAt#&p&beE}JFI#9?cW~RInxhoZE);9XI=Q4=arjtxP$G|wRQ7e zy`FK~kyFItIQxz8ZsoiQvbG7U60TadUnscuEi&1TV`10d+qLVnO)MLFIwr+VugfU; zQoOvY&Q4^~^Nd&S+1FnxNbNqV{_RWF&AH3CgMK!A7rc1>L8NZy6Qc<%)xS3A-Mi!B zd~5!*unU(J9HvX&e-o7`^`LK0euRpRbh0 zy6f!~HFzGpigDJ5goV}1mK;y_s*w~DZk%tD?Y{SRIFoI{lk^Mf&$al^|NTaHh*3)uRu-Y;^BEuD=u7COnI=`u*)XUPEJmwZ|Z)V zzmXORYVJ>8ykJ{#FF|5i@YMge5(SuKTrI?Nc@47v=zo14=~`p*=8FAVC;1YN*cT7k zD$ZDV$!^}clCxaLyrD`eWb2ui-%S_tzqUC&Tf*5srYA<|(!7bE+NP8rkzim8^7|EK z@it}KS3aW?J{*jDUOEaqZ#Xd7DKm#Z`s3c|shJD4zcz(mOtAl;V0+r`sqFMhw})4R zxTl|H{cL2e@^06{PA`5b;xr@bdFbvvxxowdM!4emPg3u*XHaU-sv81#&D?a?g9sT5Gc=x%$1r&IMEa z)JmRA{CqFWMyu(x?*dWhBYS*iEaNu?=>~^go>S}q6ZhPXuX@r z^<1m@pb1-w#ytt=-DPg^_1%1RP3fxMt95LAj(0dLoou|dpeI*UAm&2(i7?TiCQ0@oSpD6<=ypZzrSAh+x6{nO`EIO7Gt+`HQSd<*o@Of>-9lhmwazS%B3)eT>fSLDyecjp7`uN3J#iu;a zWR+Mo9JFp9OqyDBXp_z<&ICiP*aIf6pKmdpe!57xGSGqd>fA!*e8Efmw%cx7TCN8_LS$!E>N`G_cF|F^{vPmVf;>^tDiS^ zFZdStei7TB4HN&l7&FfKK0&3|IiOprwA5mUfFQ5jwlJAD??rZYDHlI!oKmY&Gx|y#RuKA@Xn00jJzUg;nssAkM z*WJJ6>9ghPhjuvq)DnNzy3>H3X_lNwg-}-ua{K{!L$DQWa@c)c)u@KAk z&uD&_x#;4{B+03lAJ_HIw6j!^cQ>5>cK^u@$I_-IY(71ih4!{tmlAGcl#=V<;k zmF=6EB-6Ia!1jn}<{KdolI*AK&|DlGB)8vfw%BRj2Gti|S0suvKYPj4P{p<~g^s=FU8jFQ!zoU;9XU zB+rG-+a8E2T|f54GTo=nX-4{;_ur?fgaGt9V|pH|E3tzw`e$r$!pY>$UwX z-8R|JZMC<6Cda|VS!=R=qpjaK8$7K&xvhGu-~HX~TD2vtS5`VLJ^Awd>)?i0^S@tY zjthNgdH7AuF2CUU)wWlvWeP=qgx2KWWnFwLrd=XYb~)eCmnUA!w`ARURJih}*Y&2O zmS3+N4(yNJ?tG&)FIkygS)@VsmB<(~{fu2JTHhzC!u+mpwSV4yTFRZkGkYL#JEo zP&0ekmcXAj=PRnKFMn8AnJ2I~@X0dIO2$V|0*<`Ab(c4fZ*!HUm5;!y(uiV#SB-Lq zSSGHy%=i4^-?rOt)A}7b3sm^-y-2;iP1)zJUj+ZdSAy>~Q`U*jTdeUm;iq&A-`CGG zy&0FcWbA66bXxJ_dCT@2bGVoOd>kCM|L@Zx+b4PxlwD5SO1Mrs!{o*|)Bo<)?6~WE zi?yQt9$$((uo!e@(R>Fd?Ig!)RMyG`*o~-iMtgiJc*g` zork4gV9vslp91S`ZLU7-F^%VjI>WgxpFb{#zs6rW-R~#m{$Kb0=hf%t zNAA;LI1+IAU3^r&O?0Tu97iKI_qpK@_J6W_7{Cy6wtFqZuM@KiZ;5(*)t)SCQ4?Tg z#htW5>-Oe|=c_mRte+OUzWT?>Zio1I3(;<`60t`i_g9ulpQ}9cSvyYezThA2xVXCG zsdYz9bU*0bnsH7(RN(okmm!OLmDKMhZsH6&wqJh3jH`=MuV|&qyslE#j-0sa(lw(y z9;siaf9EUo&{$m`pYxyZRGa0r!yQI#@7DU?zIW`}^wX>dE#FkTaj+V;ExU8~+u1As zelk?wY`dFY+db#*k1f^d2P|7MnK&l|XU*NnmL#z^=l$-qxg;kOMiuW&U-f%vfhcW3^ z_r_qUw_UsVE}h|e-(<=7!=U$N#Pg)=MTK&J?LJl9jQ1ua(SK9p`}MB z2(_2?9x|0+o0`(;#~`xw(8OM*CnwK_&Rb{d-#hDz=!Y4(_fNPwGap%cBl#d_=kLwV zRSI8gC;C~OSZ8>q)=+Kx>6g}@rgv8Q*GYXn)bqlT^e#n?Q{9h?my;I1>*xBM$WnYpf7!v$H8vK>z|`#$Q>nCOKn#Dx163q+a4amU@f8Ov76iacigS@_#wT2JM?fUX0-8*-(szgej8 zu^m}q)mH!KvAl+xeoyd`y4wLojTV_srVSh4&Z-tj&WZb>r|^-(@Id>z%N!RUm)-Vp zS>Y-meXrvFwz3!Du74_;Pg-vOzQHd(sb|LYota!l+N_&WV%6v?!2Us)`AtM=(v`-83GTi_vt^EpVNO` zrl~LIyv4p3TZ7N1$_H_Ke>PsNW%>0Dub7DD+hfOhZ_f^tk;-s88GmyZ$I@N3HG5v3 zb!nJnYM>(Sdv>+(-{>B=yOo~f;=d2xQFnR(ii zDYJHL?AqA$eVOY8?hEYwoEsabzFM(!iA~AUqbo|9bYw4kGc3A0r~d!n?_n)Vrp$V< z+OhbISH<3#4QsW7&h6M26K!zm#=@&Bk8RTNXj7ESZ73}{ueR>fza43-lHXgs^4Co4 zdR4UIHA~tt5%rvDV%Ni6S>C6g+1#mi`Pwp%uWXNE%C#+&wEtvjsmw}NbPN1@=%sPB zn#{H9JEO&4x;z$H^ZHiT#Hs_Kzthi2CeBjWX;bpzanuA4fu`8%V+${&SlPackeIZ) zz;E)GJzS@9rr0iH@B1L?-45X|iI`u(#h>+R@zcPZ+LD^y^9wY2)wFac?YgOy{ZBXap@ON%2M$@SR>3{e z>oS`*Uzjd8t+{!{Pn(I;zb)RyyvkfWeTlW{+rZfDD_ai>w%fhnc*7p1^3#&z`Nx3C z?S2s-cDC`Dn(!4}SZ2HVU!i96y)HKCZ#Q;cUhcF%KG2Qpm(=GPzZWbYX8tXxm~%w; z?8g@>6ZE&1%=ZoK`>^kM@RtIQZJT`_o1I&bF4(+$1IO=QryPzy{Li2KtDSK&&tv7) zeQRznJwIixOTX0#=T_5}I%YMKPqS>?xF6LVwE-1?9S@nFE6Lc%h}i#L5&y#5>SaRq z+$nRuJ6^F@2-PUnD+}2YzB1$2|6)BeIsIj2W`@&6o*ZhvdLnPh1G7h>tNkp+J(}k; z{N9#4PyLLd!jX zixn0=dAGXV;6Rt8-cp7nt;&pYmQNaMz8rmE8&lx$t-#av@X{5fYebr5H+Bg=wn^^V z-1jQqoaOyTtITtMK`Z93`6}mW^Q6Uwuep8gNQV6P>gdvzps2KiJ65k%zP;sR%~!291btU4zdKl*xg8RI@tjnkWMEPRy{e^+^3>3$o<iQ z!6Wmq39Cw)FqhR2iH4vOr_@JI&t+o_u6MjpaemCoDzU)kD&t}+iR)WLAD`XrH#19d zM|x>*ir(Sh7joMl)o`1v`th#Nrk8n+b}y=WU;y)o=dUzifSf(yrvd4s3py7EZ1fxmLf^?vvkPPq(-)6D(MsD<|zqnzydwVb_Cn z3$9$C(VA@uV?934F38!Qr-6ItT%JkURiUZz*Mu(YEQPvi@E$; zxK6E7I&iJ=lHvNjf0eGC|0*n9CSKJxEyDcQvg7Za)iSOem^GR6lp24K^NJ?1EtAho z3z#v{ds|B^w@}fn-a!64&!12Iz4F`N&3vB^q$O_oF#j7nyQ)2JXN7yL1M@wZx^4fb zpDpIE|JHIn{-EW2TXm~qiGR{xn&-c~cSrx`H+gUQpCR0eKXT61|2VbKEVI0u@!6LY zR)cqTcHRm}t9{N0ed-K&UtDqF#!-nWM?USJ8+o^{dcJ$>b7QUG(`&>s7gsztak@IO zy{7yHd!n#Z$^CZxUd`=Xld{AdWY14Cdnej`#^<(K zLRfd}9+9QTL}Rl4Agq_4ip`11Yzedz~nzWN*1Y5)84*?-9r8)g%Oi+!nuvlw3N-6g^!WnA^+wPG-v zcXIfu?^6y~)y&2-`R?de1v_dG`N^44Exf72Cw^xR+i$lE$*hK;trV<<*uW5{z98nt9PurTHFS zQy;$LugsahQvLSaz;{Kr{(kldoMQYY$K=)AwKe|Vex)bQt6BB=UlOZz4PQsyO7HbI zInGvj_H%AOBzi>6nc?2!>Mt+9=Wk-Hs&ebqYc&q4nZxvFdx+xmx91u6RrKWZ#s5G3 z(4_8|n#6V1l@-iqTLbiY9y)eZsHv7_dv`0WH9ydm!7Er8_24j* zym(8&MTrL%$}?h5-h2`8Bto;^vp{N@zPr$(W#3-17jwMKymENmuj?|O3ZFzy+4cOY z)X_`a4DMyZGLznVg+1MWg)5ljk<7D9w_9dwZg<(Hb{ypaooJ)vr8gt#!rz#a5y8i9 z|CaVj)cMTg=9s9;kvF@lclpb%)R_;R1Nc9cwez3Ln~>A>vSo@yU-9WzY3~Jhnph`Y zcYg73&F`0zpIvTb1Xo;G*R<_={(T1bAD{c}8I;!CW>b8yZ|$|fbe-wk(_XXI|NF=u zbaKbOeGM{+x3^zYz1Cd2hw(ad&AjK^9Dh3#x>W4u|X>i?^uzvQF12tk%_U-*L_rq`XN+0QSYXg0%#Rn?xjF=_L-9Bw4E1K zWNmzy86W87#3NSf!}nxmZT_YMtP7>KJ-)T|s}A>rp9>S`*C$SRJ*VT|!A0&%>@V7H zJ;TDXp<>CLs_l2ne)26%yCS@mhs}s}&y}xl!?*48zhwB@<>`YG@ivo>@_mcHT|Dn! zBe33f-L!VggX*i}eAAD7c6)2@_|e)*rp@lR;(}}Sjo%CHeWq|8 z@AT9?)-vzKC%NUkSNJOD{wY#Tv}%}t)I$S;`N*zQ*+|X1Yv{XpZH(0)^!}A9&50UCQ)8{qukJ=EjJW+==OvPCifG zFu$j_g>l*AAKu@;SN(XtM>=-B{J)vTOfPv)-*joxSv;3*l9VOW^QJi=F3YNGyN{as zq~x98PhI$Y340Z%q@}iC{@(q`w@Xa^9G9ZO7f5j;l;%JZ7H~?mawnd;YAb{~gL} z#g4vWtEjEbo!s;)=|*GPXQ_!7uKo?!zuwBJt<-7nw|0SrS&Ajh#S7L=Gl@9iQCqO8 zMclAzN%f;_yJhlj@(u^LU$nDKkIR$ci%5<1-=MeBtM}9&%?g z`gtxF-mcbRcwwTt@|#B;)AFAz3CSFvA9FqEpf^^0$j znKI-2u`fnvX3ks7x@rdJr!%=1)^6l~ylAr9!qCgkOD(Uhx>v~}zvlM$ZRMMqns<9V z`eS&oLEEm!bnWemZ^vG;Pv^TAC?U4($-AG=wSE{_D|9DpJ`po1ajIg@?`=tUXVlt? z2fOggE3kFR7F}L)ZOt6xYq^`9&$AS>+{u%F`*G=(Mvfi#jUT;n{&*Jav%aM&p+`8X4aPbVw*Q=D@S}*B1*rB$e_(ss75Z3C` zO;gIG8z=p%?`}T2?{U%22UVcme~*vzAJKed{ylo}r^@#qKYqM8<6~)0Ja=PN!u2Et z7FM=Uc9*?n$D0-{=g3;lYklDMiCcX0b8pYuB*)fZRqwaufdy-K#COMI1_=+%R)yD; zI&FNk(dg&Ojqi7BgerU};d!Z9b7yAS<3H?&zgsb@^?Lo8IQ2np*0sN1_Q}dT-|BTY zyIr7U&;Hz1nFjTC6P-`x{CJ^fa`oI%*)L))lFED5h{bPRdzCNJ#7e5#dd}+Ihy4YQ zPPke6)wK`OMt|hGM1-Er**y>r0;O z@mn5iiUd}1OxWGJtnSj%(5qzv6P8sJre5NIY?A0ESnEAIY9}k_%2my}cl+mD%8Ox%n`P!aMw!Q1<^)LpXyORrFD(Qqj^-l9%^g!{< z3D1>nR{ySCUvHp%yw*7aO9vqGrLhre~r=C{R)^Q^Ppt8d6;o%4R*cf&XB zbDGs1{W$OWuRXBhGRt$@Pi5}s4o-UeW~=4#kJqjryYkQE$kSby?KW|HCSK5pE1c)}d!6i$1GX#lrew{29JIgx70au$>n;mO zo{OAjdn!>h$o^g*(~0g>^C!)Bi)8BOPrjGsFzrVB=H86%hR+M0&QOcd6Bnr7%=FDb zspzlq{`b}0PG##Nx{_L7yl`B~8r*i^@a}X=&AU6DkEpXZxHT6iZm9k5wP`iOx=Tq1 z)-ps0Ukl}K*djh*`+-GPysh>sM??EO9wsYg7eDm=8`^gG{wLOoBlGOtUvCRA+BlVC z<>?nU941CKx-Wd->5v2 zQWop2EM4}eZHgOn$W)819T8_IP7gC!5hanJsh};j?)vJmdpt+qKjTR}W~Be)+pnhI zfBRBm^Zht2->$MX;5cgHyF~yHh^6CNYRAOy8Rte&y?_9ZV(X5@(7F z%e8Hr&F^^sx9#1Dll)FP1uSdtQklE3R(I!xZy(MHT-wI+qOwEw1l+B%M@n?PR3hTEFJn60sUoWUOb}oN<*(p`z&%Den z?F>skD|H-eblDy;Z@Jo4J)J`wG0aY97#&Ku?q+rcn6pI4l#8+dzNE11^^e=fPliY@ zGi^1tFSUGeewEqYPZQEw%N)D7y7#bmGb%GkB zbHBChd4J=Z?8+3E_klr93cO1-tFIlO#g)`CVaCL5vfID&Pbl6I7avfxZG#9~bhwoB zfuu)!9{g#X_Wkkk`8(p)SMAv4nLI_?!KI2rxT{FKgJa$tw|7D>zbkKb3VYkyyr_1$ z#I0LuOPd}rJAJre_Hs4LqixT_w$>f7xgE7gL?n?#UeHDAzv7XOIfomamb=b;xBvCt zrQK(_yb2#I$dlHWeX#h0ni*rp#{RuqBI45;%d0jNF!Q}7}vU^j@;cwU%Mlo*c{x=@cwJc*#P&b6+8*4l})!WG}^vMz{nY-KN$ zzg;nzUDfgEzT(~SFHcU~J=MQ$PV>hAd7tM=-&eU;#qYm;$?^A6&gQQRY}UlSl01C) ze9?UCR}nuJ9)8bN{A!x_tAn<&#c9g%$-E9X)J_yl(c}5gEjhVl?T^AsMNQQ&P1YQ3 z|GzEmXK=ULEt3Tv{Z(1~;tZD`uvpe~Z%%WlZ&k8+^D@O@5?@zL@bqhaleJ<`@~K({ zb0e57hGBDaM|&~%4CQZ6 zKAeqLC^!)#uy}Km;^E60KW%P$E{WeDwg2YiUoDcUKdQvuIqC`&h<=YeHA6x}^~^<= zhDGOh{*sUQ@7tPlV#S*+<)?4Du5pkwdAh4_F6X;cHy*+F@9hir-z|s_cepWO3uET} zkMHaMv)3r>5D0lHE2HMJWDTSK(v&5&&VD;tpEpQ;|J`-yeXqxiqO8>A%!==;9{hTs z*!ZxsVE_FCOAoX+%n{1_zPs$d%a3nwr5*U*%gbx*Oo$V+D7x{jWl#EDUgigLK|r`);urUt$5So z|LxbH@s#;Dwu>HmHQ~l~(a$xGNp1yRdL^M6>I~C+G&Ay=${Fv+#eFFbk$8Q4ci7%- z_afE$b1u&;jg4+f)I90-{Z{3bGnMzu7#0RfeE(iv5VT66>G-xh4YQRTg@@jj9bVo0 zz4qvHCJwuXrEG#Lr`t`J-FGFXxu-UM?F+*-`8`~Do6g;o-c@niYzfnuLbpjxxpyCC zN`-}8ddDxIu>20+e+edzCfnQ_x!>(1k8r54y%XHCe}8kNfj_s4$)xR5WDmOg9yV@V zQ63jA6Y0L@UXiZWX+_EHi?~uwZgMDD^L|$DYHN-)6BM>iT$NgMUBrRq?W2e{Jt`c& zR$Z;_B3o}|8NQD0TDWM#%8f5iwyeGPI{U2(!<&-Yz}phS##Zb{PAYFa9>Ns2E?jrh z&IKLoJfEe;EcWP+QrAA=P?f)Vs=%CQ*(x%JJGuB*A1gEPj6VJ?Kv6WssY{f(Mu5ev zVD?VcgvYdJplQ+~5oEdgmX0*f&|w%17P6;@-&^@iXl4 z3EX`}6Yi-*IjiLg*sY0pBU4=>@gafvDRWunmJ^3QWpFH3UfjN4P;kaEwN1MlwoF`F z7G`hvzcI^lO~s*zsXG_$&b_*|*m?QA@;z3o99N%cvD+Ru$FPmPI>A+AyHVDMtf2KB zzv8<1*EFTYD&5{`$?xCwjg{5HJh@9;dS=yPX08WWTitzAJnT8;v|@hA&6oT$;SnqA zH=f`1>DAI^Pd6;?n3Fl9PeSPGN}+$rd$R-lbafPd*-1ZKJ8_qe#EY+AudWGUohf`T z-~7&d?I69gt`BMgUd3;jSoo@-J=&QkGv3gtR3X_U&MPchs<-I=&1v#qnVF5JAn%KJDWB zm1m}@PSEMU_xs>w|EB4uUAfmRy49b%`M~m^54XSHKfvni&yaD!zxCvnt-%w;ieua# zB(FHHIDetv>?PmDl$Mr8Xl=PXd!n??_Qww;R+}XpkXIHL-QLCE!@kW?)UM3%!OY2y z{&P*wCC%RXLGj3n)vvVeo%Wv-&b0S#c@Wdhxvpx;tvi*@ao1nFE_K)?w&MFbDapID zr(Noj0a__rknNAy~3JUO;u3O#ZBiYK?U8}aW z@>PR=+1}ru4<^o1kI|EwyZ5PR-RB!`_mn|g4{%HQEFFA$tCzZWOnJwM2 z&1r7(2Ok+vTl)ptAF>5gl8#-JvV2wL_V9ON>qnXG_F3m7YWIG4pmt#6gY0&DHa@@I za<5_z*lrcF6Jao2CA|F0vR{mo7e?j%ejc^+(nQ7&J?tOuc%AUqEsagoiI28nXAr2| z+~4^w($?~bKw;#%4#jV?pIaP0IOEilx}>f*r}^!CjXc^+)?Zxgxj4ruV8^Hbp|$gR z*UGJRzRa;+&L(har)i=ucjLsYV6d2 z&EXYz?bn_d!DXDU|F-=p+}?a!{!qcCd4kP9R~KJ1nB#e!-|}rmeZBjKdm8Os#e4Vd zOWJiti-AYbjwNQU`^LkYqvjf=KM6AM75uy?aR1hV8`ne){a$VUzOJ&j^>^v5g+^|F zPjklD?CDO}x0U%<(as0Q`{k!Cap$$#l3TsotaUYCYgG6Zo3}c;57-xL?G1T2H!fML z=}Jy(2J6|kbo$JpJ8iO6aHo0n?Rnp(wMaNIJa4-DXxj7Cmlw~tp2ZP>bW6h6FQ*>NihSQdYm2EOn%G zZ=7T1(b~Bay<0vn3Km@aVPk6km)I@Y?2HTLOG-_zs(t&U{bA<8&3fr`tZQ$YT-7|Z z_`y5%dApDA`}g2LrBq+BomPJ%$NUNZmps?E34OrNXct;=%suuwXJ&&e1tHvznemvXk z32)D~Rm-j{vHP|%Hu7PP@=4i~yH3~MpKxj2??SeoMMnA8Z>wrM*x5K}7y0 zRPu`_ z>jiRHih~xu{rxNZdC!U!7j@dJ4!<)yYT;@j>^!k}#~#o={{zPp*c(bOA7pk_Zd;wu z<9k-h*}qy^`(I_;hu`l{-PX5hySyWKiyH5Ik961ecIE4QmojH<$c^@nkq&+Lt9rJE zz)Qy9waLvd3ZF<_k+lA|?#FV`Pd)*6@R?n8Tulv)PIm>jJnGVOr=BCK| z7Rqj-DMr)HB#Z7zDsIGGIx}~SQ z`&AXPIz^XhSAMM2;RVlodzzvexl3K{D=*D{F6T7A!z2b8VB0BycSK{^CG9|!5U|M9*c#HE=!JOy|0!Ctd0A1GuUHNd2GzxEkU93 z7xKg}y^~+evMQ~$BU3(UhJi14#5#ra%QL)qawWN+D)eYC?Vmie-Nat{>gD9%swa#* zVNQn@GyT{8eS5`%|7V!)ZFytwd6uK?f+i;?H~)z-{&3;i%fHzt{>VPz z*=BZd;wuXyo+k%+&AEQEF|M#-Gu-U4yn5b4m-OAwHTYVjuYAnAAkyPec3pnA%tGf+ z6WAg&Lu(%vRs^5i*>2v($1v;o#U37(rJrXkOH^fT7tyK`D*Z8Mi|g6-(LHO9-I==L z-tTEko}NATY@z(CjT}F29{ppnP3o|5Mu+XXd=u$q;m1$3UiF%Kx$pPe#ienE`%1E> zbGp{;+3V=?~`;TylxY^=Ih<|7wBFTA&(*WT-}c7&$FA-Zr{9veI_+94$G+b0?jalG zWF&q5HEs>$|FQV)TIb|reYVf*Tplxw*`4^K3_V2-^#D;?=J65zEY4b=%RgKhwrOBs;1Z8?|-|yc0Y%B)t;QY zrrTdOaoGIY>!Kdvr^)iQdad-fT=#QXdyAh49_Dcjn`kKB%$2#Zs^JgE_LUBYjg4>p z>TRv}T5T;8Qp57WVV~U}d;hZ!lQV!u(yPUKGWGN*kpr#T{4_}1?dx}_v?TnM@Fbwd3sY1`7j=iMy6zP{7AG$yyCi^1;NiDc9G z+T|BmtQdqXS>$_e#!kJpQ2rnLwZ<)7Ymdvw=ZBrw`!K(@!sOp}_p4n6r{~D;zBY_cI z+jCmZyO!5(?>A4emT~UbHMz*TqcJn=VR-8D=WAN_OcH&zdD6S1|GwqlFNo9=VEF#^ zo?H02%&3@6v$xAXuqr6!Id8W0!tBfqA7-51v_<3b?^@R4y&v1Z?akiuX$RMe{dwDG zr!9VdiNW^z>#d@k4b}&;OTynZUhdo6w@uq3FW(~;;oB^)eo87|R_X%VkGt$)j zShm}IYGJGO%h+8CZ+p&K>gel7JUbdUJt^e)rEfK<75g5q*SnZ#z2HlKNzg_2w}l#K zwrVImIn(gIHR$iIi`QG1REFo*_ z&vTWZZ8b=1)_fbQopZV0n+RpXYF{{Q~Ft@QSkvj=a!nVYgsfN6%$bVo5hlZd}Al8jgV)|v%a zF8OOa`;^@K%Bhk8*Eg1(-)f*xcf#S}a@UvB&)!*aR4Rz~*4?@-YS*?z?s#~?#`UpG z65rDElQUVQPA)WF$F%oc%-VMC`Pby<=juM0An-d<`KKgz`kC&ROsD2OQC?mnw`qz) z)-2XGnU@uZ1>Jl*EShHX2{$bJP`_z@rhHaolIu~vtkp~AmbY){o_~m^eO;s6Cs}*T zkk#M+Zk`(`TUhw_!>ff4Pi#MQ$ol{4jXwVJr_xy+e($ZW>+N9>|Ld^Jy=YPF;>#k@ zPftBFOnemP`07SI`{t)J-0#m3(R`a#T*PPT{g^|8;dtH_zS=+c%eH=PTfCY}jEVc< z<84e4zI$_DHkfg8sJ)o2^;xc}`RSZOZTSWDf7t7Ozum2QBE0uHFW==o3e$G^Z$EeG z*p00pPR$nl_oiXTp1SPC;T#|S{p+i}U$D3CvJJcN#DjcGgSe9B_^`(FJ=uSYabo9> zT@%i(w!K)wAiBWi@Ne^HTvy%|&01C_aLsAaGlrboZBxueZ&&iSY3-P~b;m9p@hLGn z=fqB^I+n@KJnlJ{{r5h_bHY&0sWW+xq5ARKN|DC316IS{|KNU~sV(x!QdG z#L|R3?I~5d6AxD3S;(z^zgtVMXG--((V7FZu7A6A<$PK9SJkgKjae>lxRuE{HL}tB z`s=NK&j_+ydGDND9#?qg&hFpOY)+}Mg?eXaOqd<_M5AVTQ^ldibj6@sKWth$1We)^ z9`G&Nnseyz1)Yj*Ws){ullIgcFjx0ipK;Y{iTI4Hw`Xs>v(A&(ewXR&#oB3_uDEoO z+0_@ke9L+r#alzWpH%d}JsY(B$jSA0Ii7OgYdCl@gQMWrn{4~*O}y9k9J^+F>ua0f zW={Qfjl@c}*_(IU&1Kvt!B<^u)sb!Huwq|mEJHG5frsf5|F{*;kDfCY`6p>~MJ;Au zwxFH**~^ZH+$_32NGhMI?71&@xAz#MM5Fcbb2IwP+POqmgdSh8q?%*(z4!1R~%BhA9Ci>rkAa<*Jj^Z+r@ci z)!LO2YYcYWmh{#HUTy#J4Pc%2f-Mz=ZRmz#N|C%Ft@B6vAd-C(T3;S*UNyTrU!?|=x znr+YJo(E?RCOwQwdN*UtB20rafz`eSogSQ>YeMd zx3?{B=za4nAeZS()0W#WW}REK<(}hpPgnadeb!$m9{Z6~>;3mxt;&y+hSE;H#IW3p45#pA56ZnG=+=Niv_XjO9Q?i@$w zF9mfrvqO4a7j^tD+O%eW;o?k3?y14AQj+y;Ib&b-OV+YFESo25`|-K#PLAz@XIDrI z$W59wPt%rj{+mmymj>`jcv^CZ`K|IachEa>%zYcXa?t$T4q>N`f_q5~?EERhjsfC@ z951t)_e)%TasJw(BM0pTn0~W6@tNOhZa-kDbNbGo-^o6?8)l~o`aU{ssXTQ_iT&xQ z>lF{y#L88QXsW4%2;SPHBlU21{#)l4P0kHM$7?S9{rUFsvbxZT%@#}L)L!pW5tDU*YdQV2OG5q0UI!&Uoi_qZi|*c7FMd6z{`A+b9y#gRKCyF)8T}{A&R8hB zOVRBNON&F5#!rT6vfE1!AOCIbz^8wIpK?n>ZtT@($6b>rWN&`J(b~PQEyv^TgSTvJ z|NYDi+n6GIcm3 zTj+f5Py>C zN0uLu@A))RQSbjZ9_ln_s>pdJ5c_lwMgM$06 z^)7t$^b#Y#Qt01!pM|rdk4C=LDNVUqHoN(U*7R4d=hJR4WS%v7XTt3-)vs>YnLiMk zn7@lTedmXSgWK+|t-hRMAJMYB>aXn#=Ay8zW|i!p_!M77?0mxQ<@F(szo+*8#B09! zDUrJ^3UA#!7k5x~dbgNT{`>qLb-&y8>lMG=_v)8$oU!EB|b0tLJ8&bGL8(`t!Gt^F(u z{U6u9W`8mD>A7}UOS^5l>%zdi155fA?OSzTpn6Zc$&o<$OUw8()=ks;bmjX~3)L4= z%-T^gz2@&PpPMG1RLQC}K_ofJ!smMS=K5zb4{Qv4jrYvn;``Ar*6Q5W8P9Z>PD&Qf zIcqj!;%4Up$(t{qs~kSa%C2_*=prQ!$LpfI9(C-9iQlk{drtq3_4Nt<@)zRVb=SJw z<6D;{sHbt^YU`}zlCMhbFZFmgY~N>O(Y9}wf7|)_H_kmdu_e1K^Ps1|>sdEG9+;zk zz3ck=bF&U7TKX9DP5f-sv-`YR{>$RxW<68)=?fc5|DKwAMx8nQ|ADTpH_9hIEZEkt zX1V@k9y5EJBU+EAiy4`4+|68Z_>7}_$(6OX8Ol#080MKW6zt7jIDcNx;T129yUvL# zO@8e0IAi9IJMmQsR$J9I-YS)I)VUQ1cQl2bb~I)<^Z9qfk|`5+sn3t%ov#^qoA2(L zx?Ywa0{;#Q7-}b+Ykzl^*Kqkg>o?QHPNe0p7W3S6w^uIesKEYR_QPM7=sfScdR8;Jvpe>&P0y9z5v5Psqq#mL6)!0p)@t}ha^Zfp$ub?`;KNmKrr zV_`SN`Cn!pKDA&*@0n_;Lu(}@)&=u6UOE|i)$U65QHyW+-<;O!-Jaze@wU4z;dB4v zjQqUzD3x!`hk5l_q--8G&ABLJ8YRQgaVl|Z-~oZ~oHy$xD_#uyUvOIL_@YwV@Z7n- z>Qt-)dberZd2}ZGO7UEk0L=wE|1;>i8BgG3+-3E_=fj5v_BrYm*+EzSNlz_3$gMYB zyT$D9nS(c@f*UL{b3%l_Zj|L%v?EEd!kKUO#0dNS&cfH+p0a1}U)o#O$XrntFL&-< zqNzjkrn$532juL!#;^P#VO)YOpC=WHjMdK|{t@r^7Nbp^_T@VPC(zd4BOj`rKtQuY4D? zXK(1;ThlCPqR7X)%IB~ums>Tr?VIL#j0(r>SHG;_d$C~Q;qMa`dg;e97(Q{yUcRuk zq0WKHh2xz2naiTVGo~zlw@5MV>hb6$GBq>joIY50ao2>0tZQTCBr7~31ZOHwU-)s` zYh}}iUcJ_`{Qs{BPF*B0cakr&!r8qI%Xav^eI)PdKPQA?$GYuh4>H-^d8?zn4v921 zHVCC(~9PQ|dVP@Y5$QA-22uQsoDEnr>})_q%KRSGEc6 zX1!nf?f)P7Tjty&czTltmsysX<6cXn)f+CvuDcPGxBF_4#Oqy7E+4M%|F<<(`u+R& zUBcVGXGTsli(DDIGm2wj@WRYC4&`H4cDX$@oX|AUCnQqz@74vE)`yB8)!uNVbAYM{vvZywd8*%8SoKuRQzt@nhrdw`~@_Ki=NX zKXJQHS2QMm&ca2Ks;Vi<%yP>#mTsBqw(<_s`-$J~vP``4FRqv^M1f1?h{eOFPhHo~ z{4J~JyF-WD>BEU;Gv~*>cNK+x{{H^n_p^c4|JTng-g4S$>2&dJaf!8LUB7z4@4tPS zvt}(z+LCat?d94$*1hJH7Vf#K!cIA_O&cDl-De2g${7%?BfF;e>nw@Z_S@T}pLoi; zxbUeOcNm@Mdh+Yn`|7rC$MF8LUW@f5{@ZpuJtf$wxZ*IYwSk~ozWw!O3-u}lcB{3B zra6S{`1$Kom+k!nj{>^(Ef=lMiLkqTWyOWPhK^il-=n5H+*k-e{}Iy%b9=1$ zU&a4+U}>qz)0HXc^ySeixe?ssai#G2Wi8j;f|f5H%0KFPp+938>*qZR$2jLbI;r2e zeD2@Px3&jv@nh&J>{&1QT1t0~{HjYrH{4V+wtIU9r%zA%Al9?@o0+_chU@XaH{Zn6$}$8me4Vjrfr{vV&%`4JiE&JG!dIN$CB19gyCq(Z zdaS!+zhv%>yt*X2JNNd4Z#;=kA2xQ*^wL@z&>8r@=63l}mTJ+5Z!?eQb=ADLIkH9L z_PYA8{6DXEZM**O_xJk&#!9Q$_sB^l*VW1zzprlM*q*o1is4nnem}=sy#7l%|7fk< z7}tLFaQyn&R;&_l3%;sZ9Ocx%E`F!{tm_H2O><&gPDyHBUFm)>HL74|oS|>{vAIWi$jW6#jMjOREuh`XZS8~JT&reD3&ue~f*M0lEkHP9iAH(-MZ623Qc(PJ$yP5qb zC%xj|w*39en}^suULBCn?BnfGSRhqW;vx9t+;T_p|8omVW2HZAP5rZzLA-0wMlN;(vUan?l~j{WG3rXT`qWHs4w2) zu;cE#Z^dP|>tElPUwo`~zw)ny`uw?*Uicmtbu97Pb9+0lX7xv?{T~=@a}BLk-naz^8^)ZxW$0IU$V5Nw^~1K)GRwsx`N+Ag76AR=b9Xa9a?hIQAyrSG2qyk?QjYq7oj47*qh=cTtuY~5h^!n;>k zF46Ssht;kQyz4H#KJ@TY5u^37s`!asjoXzR61^nfzn7oYup{M%K*7$qx6j{I)cWAwzA1Qi$yCC0K|xqircsoc8XeGk%FulF&ozrclR>avcE#L8|)f>%QyqC)V|24>2*HpFYV{7OFj@AWB7dg7wv9J`c zSW&wr!CQ*;aWix0<*lBgH?RF^v05f7ySuuujK#2Ht72DQ@9TpKX$w*;?jPUzgyVEk z>xr&2ySv&?A9dRjFP|xg8-u?$`u=f} zH83nQ6OH#iX0X0VBK^MITTZ=z)3)g$+1IaRl=qb!*Lvo7?SrxtkMJXxjzTA|xr@wi zT@O0>ps_4`=FiZRvx_rb?9vt0WA&aq;F(=D^Os_T1cw;gl;UH%?m9ecpTEr0dd`%B z`u`a&p8sDx5cBo@toY(Zm*mN!H;P^dy9+n@#qEBm`ATkn@%lBh19|_CY$)wHvqrO5fnQPM(9}@*4SCi*ZbPM~S=%pXXWtIHlgD`3B)Ly;lg_VOKEanQue|eNG+!vLvd;e? z2VY-EM7X+SRdd+vl?sZyzgX;_)XvGj_tjRy^565&1)H=kF?^N0xZ>Re)q-smS6?=l z-M+G6+f43FqWo96R!L2pC1SPg0&lj5|F6@$5~0y6)vEuhJ)iwxW5Ka`LNm;Fh!pIM z*)qvMaGrF6{Zvzj#oLbLq_TD7-BNtSv_VX`hvB^qQ>B4ZajnIUX{R(aPN+7yzHFVs z8nbCxaTDXJNabyE4)YB@6#VesYAfKk?ZRaihhK?KD!f)Kk_+9=Ti<(rrmp5xprV!K zQLPj0Zhe0(yBl_=>W0FKxeiY$L;z_HVf*tRCCMg0Gw%BzQMK?>{Gw!%C}#6uYc^+G`Cq#gxoQ=*HX(Cg_A)%X5O`w^yZ_V= zCK5vPJ}i6dyJ~I?Z(X9@n-x_XmrONmTi@8Z>se*f=ewJA1uUfBPEh}`VkT>~SHk8g zp||312?yN@2}#Siy=vO^*zCss3kvfx-Mp%IE57;7r`cqh%Aqd3+-mWm&^1|E%Atu% zudjW*s=DIvYro+8qSIq;ot=HAKDH|%_P(Q<*yW2W*sa|P_@=)Wb>Vyccin_(5`ugB zZgpAO*g%A7yWml?nT)7JNI5oB+r(*T3gD)m}JA6-hO}I`vr3hk2k#j+Lfz+V`gFJ z^=-}iOCMD2O`0X=h=E*G2(b_dz?LJ?S*`vjF z^)@NVJBWQy(OOc+WUxc^w~{%I`uV5d_BoBIoW6TYh< zt%h5kTlaaf?PWT6F#7xYH7Z8yTqTrDR~x^9u(zURG^MeyEFTTkEp&O52= z*z-y6nT{x}-OW95!eqIESDf!}#T!4azRTlx zbjCTW4@x|0ZR-6=v0Jw@tKa0X_uCx#@X9BSi(6O~oA?8RrMn+B9aosO>;AgC|0DO9 zMBU!zd(i82Xa*AN=w}R{1SfCQzE+xj$a!y@OR(tr z>tQx4QrF)4@~Y~X{E6~Vol`|`n2tw0lwjHwUdH1SFYEc=M0`> zaJ*rQdQN7zPC3VeIqjO9+eN3X+jYnB{o^+abW=~PKaum3|Apbf3!b-3LeHGV8rDnWx zG(IbSM*n)*=QCoF-i}e`D_XtsUe5{PdSvtRgst0=73>*}2bwqJSwGry;CRE7sayBG z=e#U)JJIV{&{lb6HJt)TG6HrY9nlW!he zWw2ov^Rvo4DFMrbj^xYCIk%S`Whoc;?hrIQC*^yZX9v#&rPx50%JU!k1e)G1dfZYO z_hskqD^?fHbUirhf6M=8-hO*6r&!?C=Vo&J_YOLWz73Vt)2(irb$4C1c#SZN*|mKO z^Aq(J{`${ttaOtxU%o*rN$*1DObh2i{@0VuUX{1Z39%2pD=GW(Hn;2Fz1gkXHitMQ zI?Yga>fLpY>3KzlMNWSdLs8B<{kzA*GbYMqt?N&mskp|cPeQ%LAhB=X!u72S%EH9o z{C++E=P#>knw=kon%=KSOk=Z7-x3|I-WAokl0l^>#B9&ry^oLo=D%~j{?YmE`ybc+ zXMQ4-_uV|_xAnA>iql17ggAIsy{doNF#oYsk;l2oc9-mW{@-k<&qP+#yeT~uvulNaXujBo$%;Ymum6hL9bE9f-gmzn zzu&3(*)Q#;M}N3*C+shG|25l-7i-VgNmwxH_Vn?j>#+Y;Sdz}raa6vY-Rxt-qqP^L z%-`_3i+q^=;h%m9!F0t^igkHojsLj=k5!Sj=MT5#mq#?PO-47V|G%Wvq{oo zQSBJ6u4I9(cPDi%^Jk_r^vK)SX}tYVcm1kUNprll;#w=f& zho#X=gJy5bP~HAc`Uoq_d;W(;Uw5s}Yq%wPoq2WX1+!Q8uC1+Yvs$c>$+7wSjHH$b zi$E{VN!@;eXC?|Jv03&ft^c}7=P<|AS^1fwuevtZ#g+?)EWEGr!+MvN-RrXXvVYo58L}r|SZ|moRv?z?@qS{2 zgN>GqxIMGgn4#msEZuSko$sErYPyd7&tW}K$`r{h zeJwL(vC#ELXFkc@`stm^lJJXlu9j)mf}8&())aVfEGdz$uW0%7#bnR4`?YR`Ndhl; z3-_gqeOlkaxU%yp+qF*%g{DkS-^3{pWs);T&87aJ&FUZdkzzh|+dj^D#x$YS{_SCh zqD7HkWv|buFnjlJ{@WtAiSeo@CRVx|hbM|`=YPNNwVc-UnjMbU_=-+PNAq@Y=I$uq z-a7M)yKIfYm2AgzyF2%aFlzI8{O+su)>ZHfT z*cN`LL>0Y?{dXsPYsp`~|Ka1u%+-Ex-9o*N%`5wQ`@EcYjMR_Rc=KLXKTZ~HuC(h` z2bQhZVBPs*){)=?+kP&)cKzK;|2Mm{g!HC&s~+-vd@%oaT3n*AJ#W}HEhA}1+t3r1 zTIXLYP7OM=spXsL*Ig^vKm4d&J=@9lVYT&#=at9)ZH&IOQ14>#IStKb))^<2XDui) z&raNSNJ~WbThO@%br<;uhgs}@o5ikDe!hLX`Q_;=)EvHFS^9RqxwgQb#mqIU;)1{a zk}VegaWZ|I-Sza1Ym^06#2wz7QFY|kHl`cwJ1n=XJS?$o$=v1pz9m)H@BKJ!+op^t z8Rc)R@@KboEbNfj!pG9U>2foSWm=I(68na1vCFe09glfLUKc%AeKc5{@q~;@&IL7L zF}CQ>rWbB_*yhf-pUCBO{13~fL+=tx6=DzS&$0R@&Z24d?`hGiAKCxfBYSs7&D&`h z7G-`mBfeUMc~;$$rdlnpn7*It&(q%3tgp{vT%WoA5g+e^WJATX=VGLfMBSJuab%ha z)86QRPd>cAeTwml+CI}cZyl;^BjkQBv`-PSOJU&H*EM0efAbT*Jq$eBHNhVXnZK8O zv|93SU)I+*yM!)zJ~9wo$8N{@a#2gJYk+41Kl4Q9nf`uf(tf4Xyl2y9<6AJ>SwPYD z7Tbzi3pV|yH;nj1R(_1HloveIBB8ExS@iR#rq^Ftr~m9a`EuQ?In9&(_>KtpeX5ym z$i?U8?fG9|zVUhKt?Pd-y?BTF?cogXgl9Y#Cbq^M4Yo{oZRMN!`Rc3Vhaz76*!acI zb^kQ}d*y159E%#Jzv2Xp3ndljbJxC`F6DX8)pR{&|CG1K^4|NOv(mh| zeF^(C#gvl=jCX33G`I1s41Au{us!BemGK!%<@G$`Ofes__8J`w_w4EKFK6XhTfS#T z#fH9{C(AZUe7kW@aG6E&tmeWGJ2me-ugu#Z`3&TXohsHYR`a%Te)ZXM^U{Ym#UDNu z9sRrS(c{O91x3Q0m5n#Mii-POZmFC((S@_~<{UOX7Hz)<+f*MltGUl3kIq-z`le~p z7Gdw-eUG@(7M3Y=ro3*bRtz@gTz0zYW=5^0YOu-dtDD~4@Z_IURgkTCfjh}gd%CXf z#(!%BdhQ)(eO;UD8WOu*P;-OJ-}l?jDF+(P-pKs!`|cvaM~fZ?Z8LkRVkdg$>WSy8 z!ULBb-Z;TCa;|vaA4a#u*KDkgUh7)7q*F zSMC?9PYh#Y`2KNkTTLMI`3yz}_OlH<`)9GoO4w}pI`6)7|B44;FXlAl?^4S={Z{T? z@rGZrtrcItK4$!~c;(8_6TR#r1>zq?jju@lyB=DkaI0%3-@bpxi`UD?*I4L9{!p(j zdMx?Cuw>;y;Wp6&JEC43`g)FO0^3RFVttX99S?r(GX8!%!qKO6QoR;~oU8V6rUyHi z6eRclaNqVX@k#MBx%r0uAxAyiE4@FLpJI?)wT_`F{D{6UN8T}!^fRBepZ)BzjCpYP zO32RROHL-9X%b}iS$lZJtKg>Ba*VI`UE5f+`o=w}!>dk3{SH4|5yxY_vg=x2bJnR( zvx>_1Zh5EN!f6*evAvsuNoHs`2E zZ0w%;8inP1m#(^cWRK>m-G?fVy{%*JUNJ-0uQxft1x3Ctl&Zv20DZQcE- zj*$D6nl-n~ciUNQxqirUc~wKqo7dTk7KqtszC34jgk%2B*mzC#oJ?kij?+EUuZQp1 zzyERF{${5PnZ{KQ^jt$fPZrhCR4q6veS6;RKnFdZTcxucL}sm>(6J##&rSbN1IJ_O zzkR2TZkKp&etdh{)+>MbK7W2cJIX_sb(7o&w#Gd3H-}y(H0GEEmEFk9|B>SR=u3xU zR>*sXDN5HLdjH;MUbJX&!2^ve)$SboYUN%%J{75Rd=b0f&j%B^d9TH6J8!?eZ{7=w zRZAH6-|oy?SI8N3>c+O%Qt7ZMVUtp~?RZjk!(#d6<_B9DG&EOBT=nzhlbob{N919R z!;%XU|K>6$x$K(MqrT{Ijy#8=z%t9GgEPDuI{fZtO^o*1*wcUU*V1<7?Mp24THCki z{hpF>eNB%oyT6ph^l0%Y<-^$=ezLyV3;6h3pJZPDw}kP?<#RivzP#2tAgjjQlpM0& zW7G3{%oA?ybp2{~zP;W*sp`@S09rtKiB;3wYp1*3$jgT z@I}|n{?{?rAmi2?sh-ml4u4-^)%Z{5q|VAVre_ZYUPZ)aCe7P6xmh)HZoxz+macn~ zey*sU!PnY2$63(tv1(E7l0e(;L$980752{mbdT|-R<*q1ldIvc(>ZLGZBR&PDmGp; z|0{!h(URz_DZb3BRM`ZMYIEIgeP*4oVpXT3hmO||;Re;0?59H+{aJ6!xauY`$@}(H z(ck5{^Us)u<{6(3yL9*LuBdY137`9FqXnCeZ#olkxo?v2k(xc{MBW5_Sv;%AO_TGS z@V1hC*U+@BEE_q#ZDCSa^L@9R$FV!##YBR=*jW1=j1#;n=5BfMFu-N<>zbahGnE?{ zI)ybR1l{*?e8wZL6tjVO3hTj%?+PLn+G6`Aulnuj`z&I6sP!pRCZ?EY97+dm{446~ zH)pcn@~~`am?C^Fx7A>SPPl{3wOH=iUgfI=_iCnAc$a%?&c0RKWT0s@v-gU*>thX( zBbkTxz2#u?F?{s*G4p4e$G5-VFWi4$@!Y}VoC2(tKNSjM3gXMx{G9*e_Wggnm$z)0 z>i_n}_1w*&Vg)l7JzZ4ckfx4r>(Dx`u9+>HZwjX3xoJ(8e0PM`4l{!=oiUKQCBmc~5W>pSaRRhD#;# zw#Xb6ZJt=>DxPy8ZaU&uf}}K;NvVWNy~%IXdMCWV=T%H#vD-OUPn)@Qe@^^TotC7y zro3|R&J@pypASr3v0;+Yh5nwuH(GdO`E+j`D9kz3(#!Py|DPYxT;iK8wl9@bJTZMq zP^d=Tq&&+LRSix;tCJamJu3c}UDa=TSF5d<_R&tiYV&NCl{4P$<=|Y)uw&2Ng5Tfz zYBGL3EKCR$is=zNZIe7xZBOj_LvPND&j0SObNVP}{UQdQNuMXU{1Z)fVO=P4cXJt= z<9Ro`9tq~4S&SS9H@-Q$G;f~z6J_P4J6m5(c%tp|x#x8#)5Mm|3mCnZ?ciuR{#^FA znn5|w#+N7jjQCK_Hk`qI6>oH9q<4{L}>sN8*E}S{N=( zxwOhUNHg}@9=7}mxmKG(XMJpFGBaA|R?xIy!XK^liK}1V(!a*Dj&-Ap&#t;DoIWBF zYo6>{Afp(>F+E8<+(*#0`Q|bW!FvlCrWyyyq#iw9=rPYTwYT{lPy4C~o!s14&d0e_ zn>75Xk=YY|!K0;g#%5mL3B_w(^hIq>v7UX0&9Qmj-gN9xPC!pdKc`_9%LkKg=>b%1Q!Fiyqv=rZC59>IGMx9#SXgZE<~sYaRd35@ z6mhtGpD*SS%eTAs{=uzt?1US`i*-M}pW`aO{@apt?x#`w@6SlrNR=L+b2p()`}8SA zwW*W0&c0BeC$_ZJM$Mpgh13_>MwP=gx8-k?s^{`96J7Uo(+chfjF&R+E}57kw)E!# zo2AbT!Z#HNYn=T0K}n!6HcugFecL3_lY;+TKF`q?n!YCL%RJS*CC0{=6er!ywq4Sk z|8Z0A8}Zzzw_iRlseYascf?mO{eJOrm*#`Lt$cygpSfzudav7*(E6Zt{lw1?Pw_l- zK2eetT)cAkXNGH`%WhWA6bL@FJ^%g$Z?WiAR|}J;l8X*KWQ4sW)g{-hL|~lbg$nZ~xxBsOrw~-&zZ=>{}Ta z%e=RvcynEDqml0O1cU#VQZ+Llihznq z?dsBsE82W3L|qNvS0%*0uduNbOg_4;{?W#J8`trNoU3{ka`$Dps{1y!18oyO>rYgD zUA$?hgxHl;e^}McX3y)i)mXQw-|yXo`#TTYR&yLe8=dYYOd%t~NsjgV?eA>5C#`L>iw`AA$G0WYU^4~%DW zcX#i;onMf@`Lym5=cx>zb*#^rEKL(|%H5uxqVh89Yr3O8`jLpJ3gM?O2WUbz?t=w_>@s<{m<~REC zvyCq5XNi0{P$=_b{{P4Io#zj1TsWntH1=bK&77K2jg9Y$cK(VBQJK0#j$3fG*w&yW zj1hX1g}*Rl#`N8BRnykKBh^qUDm1rsM~t30Z%Nko^UmtI{3|;-i)T&HW|NefctWXh z1*7%x34#f(hn4dAzdm{|`Cjj8iSM2#a%VCNcPC7?k2=;+$e?#!T5ea6p=Puf=ly&4 z85#Ef{}=!1o|VX<2l+P}7RfDyplC<(faRH>D|bc!s?Ho2cmCw&RKpuYQn!1@F8w)2D2` zUw^*WB|XT&W#)=AM~zEZZ`{k*w_dk(=MmG}58HM{ZWIZ(mCD_HGVSuj(zqfqz0Tc? zQG))y%T~zruIOzM{N1M$T>9U}rKo<|jJYS{)BhT)3!Ewy@`!rec@RM`c^IbW^6NW`rZ8tpGDes*Pe+_(&zmf`P<5S*}N=|%Q^ha(d>pB-XF4dc9&DG zjyxmp-e1eF({#&n{^~26ouB-eeT|G)I_eN7xzf7R|+zmKwbo+-o;bvVr?FRc9il7i}><-0R4DFtZjP3Qjhx4?am zr}X|Lp3t#P!x_J31^_^x-i&-PSUOU%(-GjrUQ;>h+ z_fu6$zctf+XU+|l>*mSa;I($%euimkYAvfi#blawsqsnOsg-kcQt?r2s=UTp_VwZ6 zE?56k(w$kls_W!?!VV;4YNK6u+QCoD5}=+{sp7D zI+eOa<@Nvhz8w0MUc$mA%+|-S>v`4*fy%W~v+n8%KgeGH->t_)?Vn}GyQy3E@!Yw3 zDBOLLd_M=1y{2efh1|@j^8yXwY=6E!Y1Q}cR#0Kro%vAwgU8js(aF31{hBZEYt~(( znZ0i%oJ!u-^MCCAd7?*TlGXp#kB37;ngyrwT=eL;s^Xe*Y04wvvy$u9+cp*WE#x^#h%XW(nQ%IOkW!6K15K4)8w zF?VOGwzgW>yB*D^nOkB*yOvuC@-acy?})h4mW za^w3O8{d2VGP+x4ufn=2e~LCLG8KNUCB-*@g{R$pZL{<+Kqg%vXDhrx_zO}4YcYO8lT`;plta{-! zovQt!QPV7}R-X-jU-QNP+4R+|YOM<$C)@~Oda~wGol!xBmCF%}#xHNT%+H;6%%4p( zqcxUo=9>1ZmZP?Pz7BFtQYqK3shfZFe(8R-Nx!PNm9@BxDY2vAb%e3w%b(&;Ehd;6 z*WC`&@h*N~d}(^-4P&MvyMUbu^He*}uPNW|dxdTKX;#g%zv_P7-S+0by}jHF^*~t; z&x?GQEGn!yB717Jwmwp}X=0w9>KMcn;UDz--?w!;zj&!=vG&)NyC^mk%oW#t#E^O6 z{J!_I;B&C)fG|{Y;=C} z?f)$o@rDy!dj%4{`(6_-`+v(yg~dswJN7OAKdlP}-Z_OmLQZ1N4qU=P0`d(rt}L_B zNIw|L_h}bX_n$yJX5PdkL(8O`6I#Msmh4_H`{PB*U$4hAkE%z05wH7pexZZKTKoNG zp|7o3%w??<`I!ICt9G>7ZxMd{<^R@20`WU}K6fsA1z6f*I(#7 z%Qh?S7Vr1`>s>p4D;xZLaB)A2=e`!>f9-4uJJ=qVFaOlRmXQ|rnO#94a-+&rn+4tH z-eeoC-W;^M(CSl)das3f+umz)Uu3hVZO)Wgx2v{bD_8&4SMo8pPKRcqtyykWlKZaBoJ%{tZ2K;A@t{G8 zUhbxDxv22M#GuD0ZwnDsXf%vcGvzUcL);`zwr9JSgZQRZ_`v1 zy4ghDtTejW9PmTxpc>QkTYH3OIR05J)A(%FZLYVkMVrNLHnBUgR;LDeg%m#jyeq;4^=@LoNz;j_B> zzXoQTT=9#GO_){xPwIG^pEGU$y}MykqfCt3=G`}_3Yo4bdv?awbIab(*cN2*dc*fD z6`5GZj3_B_%L&QHEw+m`_)5P1l~FeN8HX6h_19M=@26h>yZiY1ytmI*uxh%={BB#I zsG`Wya(XH2h8Lk{mv%)fl&rF2dB>j4|7*o54a+9UcPA3_I}Vw+-p!oWr@-F2|7lfp zpvk|3&!0c9IBH}ca@$K=9VM?xJh$ojS1WyUQpkJVUU6;B%TMZWszwD!PC59p zqsZfAZTg1~#b4H#E2XWQ`e^@C1{0=u2@9SyyCX88^>I zVo+QZ-pjQ(Nci#>wJya>$C(o!wP?l~_=hjqqHxr6nd;BOvx4Q*IaA#fVD^L2D{!87@8feah4$r}vnCDNzzq>kJ7MaVdLl^i<|}WA5$0 z4DDh!PrE+xdmA9S>G7`j46DQ+WX_V|wCH0#z3D;O?v>|kEayKwQLTI?u(ZT!RyVV% z{EhxM>pDK0{Ej-(wQK3tNW+ci9TwGWHjlX`;URpqnR%|LVRy*8?m30*eYNhhj;vq6 z-=}rgg=a&wD>r|GU&@wi4%>gPzniVNN?LC6Z!3va3L1yF*6CE&xr(jfERXJwsv>COAAYo_#m%zyJl;L?P-g3d?279FgUvG^v-ujEOT5ERyg3ZoRYYKioHM#ZvZ?eQ)u6CJ*bJhoTxIMXcwBV$I zU}D^}jSm;Biu)z{)WU^nCCjxH3&S(#9SwK<>1CT}slusde4bsq?`w#~+8I;V2-$U5 zD_nPWKGJpT{w|n0Ietp^Ksk_DfWiMWR+!XY|I!F7h{K`xiAzq8Du=7|?x^3TPS=~SCVYVG`^&@$ew@f#=7ywhzY@98?AX?p zyE1k+PcG51{*ik=>cpZ?>O$Lc%dh>KqcZE;frs^FX>+0{3nqu0e&n{txbpEnd5{GpsoL>H(yLlD$^~c|q6;GDUW>|OqbwciKX~&!Mt4+4O{E=C7 zwb|6=vW=qbruYAU{P?i!RG8P^j~6$^-1&P^fJL!rnd7p|-jmzjzS<~QYgAKLtIK%7 zf#pB__1;^u+_`sOz{%xY|1t>+#eA0!Y^Fz^S3D9}G>QN8<@4Wa78px=gve#P`aaVE0GG6>?D@lIrV~E)^a(ss6OG{^M#bCZT_^V(aGq)UV)D zi~YQ$`rYaml}8OWee+MOy<08yi%q}Gc8~v~tydY}o2*&6-;7miVHN*V=0=MJmXGF~ zoUtb4!nG{|FH~MDPyZVEaNW|3n)3X2mzlosTv~r;*}q>&=k?C@$1Ym%FQ@2ouY>;A zzI3x(<;*P?_fPxulM_qHaFANllh|9a-9QJBZMoihXU zSf`&}dUAIV6VrzL>hHHscPgk0FY)c1WU;-X;o|%K|NG9L_itDw{6uBrgexaf!Vf8c z&dz(FW65MG-f7myspxh!t(>#!cbnzOynoNn&;Rk){y+Cr$@ll~9jr)*mj7|R{tx%h z8-+5~)1G!sVW~ZNd|jiz;NjcsS!g|Zt| zN{zd@l_gd-JFGQqVs8lb`P?L;?6ix+D0B4+hf_xtj+pH3*{I$gmY2P|Y_xxLWp=}=%(pe{$&Dw?uIgFa5345BuJO=J*yr1^>$qN)Y_#{W=gCLE zzkeTbo%i*&$G5j{+umpRXp@iMI-{hh&z1FRYoay;$jiP~bQ1pX^JnMx@8#xqcE+ub zn8td0+r#7c>mR=@yIk?;!KTyu|NpDjI3oAuvg^xlDGtj2ziM+a?5MxDah>(L>D&&V z{`J-H%wzeR{FSrk*!~Gqc69`_++pWB@s!z8y!3#|n`-Zelb>t&K3nD0m^tf?1oywc z&l8tuoqBFya@@l3n0scBtEB{Q;HK}&8q8BVZt(Pbt&OwsIIl5#Ue~@pk*5m$daG5{ zUmLMbi3xc1?BeOOs+0b1ys8M-RstU}(?(CjH2E zQ-<})IqZ|nW}V%sXqLOy)%nVw%HTWuveQ{2|Fy5YfBLiV;r}N+zI`c=R9$W=ZTY7% zHTR&y6RU#_(|m8I99fh7ttXH3hjR#z-hYeT4S@_jm&fu!2Em{K|>Xv%T1{}ljiA1OzU1|Fhjrmg~SY-9UNxYm!_}uxV$teK=R9* zx=)9_#l1sh{Ur0^z80L@*)cWEHtJs0aXB~lT~>Wude(CN?Q&0eRTB)pB_B6gsTM8y z&{Dj0$!hlrK`Sf%fAbA~-nXpu`lE!2JHEetsDCZ)_v4L90uSH5@1S%S(vxU ziBnUk^uX=iOD?W`&8*<2bZBYJoU8hJ^^?}kusZp8TdvXBX-%=*$;s!ow|)Bk{r!)c zJB9o27w)$Y@H+VXd8|)OAI~Cw)w!xVpPQ7^k1Sc&`noIkcER4b*v!Q0x5sX4s3%Eg zE5#g4-TA0)fATD~hq^01%LzXG@mfE>gQscxl-;GVAD_>!fAsr%{=9@6r~fR=JoL2a z;Ny=k&rWcB;3i|Dk`^0&$KL+KXgVph~h*MXG>(~Di1#Hi5aQxdN_U^Gk&h}#SlA}^*YuWXt zdq?jT`T1LMTWHipkJ~q9vVFbYyu!8m`5eck3gK>HlV0y+d~j;V-n&+k%UM*HW*%E~ ziaWqrviC<$LB*9z8*`

MRSNr^W^Ol&eS<#1fPaHS@P&EG)JNeW9;D*5i8EU|C?g}|M~o+b80O|!TrFwXUp93m@Anh;`hB&_l#X#c|=+L zv|WFdk@uoN-UmhpZe3&8di(G9_w^6zO7wL@pE0U!NcDW{Qxa#Xe0y^AbWQbRna}TM z*0t_Dsc&aud?a&Cz0$`I-}nO7cNk`{-ty{j-12`b)5XO$i{JgNe3A07=j5+R42yh! zI^@25>iWzwcIQkc$z2B~OmX-j=f3CX>SvAePaQOcw0G%r|CoMT+^#R)X0u`0O(9m# zBxOhWBpwby4;hwKOsgIHSeI`&wqC5@qJn}<+8VATM@g-8Rqw5x>9fS{$4(Yu4Tj>@Ql6b#-drRH^ zy(jN!iFN2ct_+}xDZvP&*@V`qfIGdHU@n-yY;j@1Oo zZ!k+Z#JTbA2Gjh%SMG~v8%*fenx7gb>Xmc;?s^lS-|zqZUs|cOWQu?or{y96N6k*_ z1#&r@j{NqyUz{Ja2XahOT6vTC+LZ`3+wcX~KD3;ZIsVQ@Y&V<31fHfFGMaB~e?K|< zyw;xA<)F!Vsa2OY$^Uv^#o!&mZ!FZQqQA65A|{!~tzeq%83&DUmXH>gdCo!Fiwjt< zGU>5gSXlJnbV6jFRq;mmX}@<`tqf6}kYO`%O4^>is^@1)493} z-|b|au>begfBUzuTYKi*wCxTilMh{tbjmO~YixedHqOahYO?!k?y8(iZ`1iDtzLiK zUAk#)g$mcNP~%H+*&4^{SIcpk3mM;Je$1AB_?A%d!6o1JUwz7Tr1zYHs@aybHjbEP zGv2PWuU>8U6g=ABXI0ft|5Nx`{6gFG_@5tmdfRRClDI1Zel1w={LW0#IlLuzmPViC z_f4sM#ex zuzABaepNZHIX1kzp3Rwhd4rtuTI%!#gCpjZ?NN>=Sry8F#L(-@eXt zhxiC(r_|Tc^sLP3bOAj9IWt-A8J4?Bh zp(`+VY4YU%j-ryM_L(o^sa_?YJa4k`5wEij3#VO;>s}R+R%yRgYv)GCQ;I4v`r#pW zQr}97pSj%Ra4ddi;hQ4ADOu}!Bip7dI=N7G)m4v4`iIhH>~~>^dwSdWyMV>dC;sZ( z58~8*db90oRd{$+Z~srDIi>FvZN!UTov2~no|7Ts=X%jNA*$~5pTwIpG?l`)e$^# zlEtU&;PLRslYBSaF8cPQukA>WPK-t(Yl+wWSG$Z~eUVB_VxFe|$VB(o>!wPvAN%kB zuWo2IioUyR`zG(cI8W(Yiox+EyY6`AR(RZbwO9VFo95ET91+tj**g_`KdP3bP7Yfs z`TKEWZggv_ys1#w-woeu5ATyNTJc1!cZ%(7zqbOLCpmM*8Rdpwnf0_PL{RtHB*BPf zpFJawJz9QW=5vhB0rW`m932NkC<9|#88CM zI;QGSl>W!$Y0q+QhjEr(Txq%ViI8pKt!$m&9oHl(oHuh_KNui-zU75luy)MlEAO|Y z?wul(Ij2zKL6!TYEjJ{Sl;_9Gsq}uE@#wCA;dvVtK0(p`W$Ua~p8U;}C8Vq#%)sKh z)Wf%j=U$uCPl=i9Ev4C}Z<%QJtL*I4%~n$PTaQ$9X*o=twdOk4o~nEouI5im^4~dg zSa{i;)ZcBJuYZu|;@XAo-)cX6Xa8)sl7U^d`De-*D}xCs>tD}Q;0+KHNfEM2z#E92Eb z+q%SL?~nHlUe{+P+PwNd)BWYn^%ehKo_nOt|9JhAf8XYqUEn{(a>;S#))zs>Yc@?< z!)(UCuJdmFdprIzk$)#8E>2`Sd~)y1H{RBzpAMXhVmv(SxRl+_{NRfhBwNn89N=@x z&ZwGEe__I9PF0K8g9TX(cWyWQ?Jme;U@~QAH)d9vl=E)NmDP3g3M2J)=;TK{lYaJ- z>6)Iz)r5*yF@JKJ!X)0L{JYFk|BBj#fsmcfz4hDER90*V=f4%qm|6>OH9@HsT$-yHKN zGOAP5Ri{LKxZb~iLaBQED$7HvbI)|WbLHRev-RcNL^qvJ->1FqNxr`&Q!vii&y%V5 zKvJ8_rgYn)V>Z4!bi>yutm$WeH^2PPkDua6T@lkbx7HjtQT_AU{Gr*OAHVZ!YHChw zy=^XYdsX3j(foY#yBFElync1obM2cw&90Zf@dRx(Ij}kB&F9C=r;AFL+c|43%XI1z ztgo+WDmr-k_UzLfzI++2_he)uw?1UsD!nQxud7>~!A!)lLgs4o)HjAvH~J)xesJ)6 z%yq;e%k%c5=F|r_=N1b%MJwjqUN@)zWc=+&|MODzQ8NX$EL^OVJ?p?4$?u!g8iZCm zb#XluQ{N}+e)@;Psk0BXIhxpFIXMLV!=l7Y=M*z)RQKfMhwsakmYe^5;YqH&M@-z( z9lu_Cq-Xr*&0_6t#`A>}%xnYKPEJ?I+7$24Wm2rKI^|f_#NCXVAt9*&!IPe;K6ehA zwo>UylMq*uX#b=+#&&k^chui2+|S*fYR{K*ye&6&qx|Z1)45hnniU(ClM%R7{r4R+ z&GNFn&dtSqevidZ=(2T|td~&uATi}|@1=7;T%{EHofrG>y<7jLvB{zLjV9kR8v#yf zt-#~AN+)suvdDi@7H~bKW!+1Oot&3;Wb&pwZoC?po3Lh2-qJG`imYu+Jj+VcuR8tz z*|KcghN&Fe&+jrS5c#XKi)}%;6N{_%62=XDGgrR-yw*TVa>AWW8{SLRr%GGCORhRB zTx_?%b&J&|hHl}agn|fD?Le!Ensa9aTd^!C*_~v0VCGT(eVZiBN~6L}>a#v& z&e-@?dxg=m5>^L4kHs2AN~hQMuk@`nN;Q&ut>qn-B_qV3ot0o?rKB@NYhYFiLCuXgF{Isk% zC}6DQ^!+J)GU%;;8)o>#drw&LG~N&Si>s*FBg1 za_0B3QcdS&j`=2&pIr!3-)hk!w>Zr@#BE`h)XC(z-lFX`EKVoi1m6E7^W@#E!!7IB ze3I^zbR02f2@pvu(qrWcc#Dzi?Sx?!F6+aEe&p)ryh#VmIu3f>cKH7@Gy*s64;Yn4m9!S2UdT}_*0s*i0; zRs5RD%hxTOl~%j2%Rw}Uw@3Cz`#PTtA3oWV|M3<7zPkmc2R)b|b2|Qp7XQVAk9%tK z7<72gr?&d-#3j^Td~!c;1p@@=Bb# z|7>3D>wkA;SH7@0dwbu6gjbEv1)dgu%K!JLcA;W~_tiJc=4?orwnFO8#GucK|6lP< zX+9xy;X!8g)TNFqj&jY7xF_}I&HLb7=T1pQ@3sTy=hr{B;ETDR*O7SWaiMts|4N~@ z%Gjk7l@8UtQAj=DeWK^q4!4~<-~Q~GnS1?F-G1viS<5Ue-_Ki8w)?J0K-%Hw$Ctmj zXet!Zk;SgzmAFHPd);Gx<5Y}Uw>^o{qzx=!~Vb5 zl*(tT_)DKZ!)y|pU8_6_u72Hf zn;GXDXL^5ay%?^z>bYKMM{8rt1abAo4LdzHs! z^JfNJW;yfOb>fs3f#y?NTCz(RCM8G;Cw1Jjng3IE314l>Y7Pd|boF^(H5$^p12(_v z`?Yt0LW)D$)W^qOYDOG;P%piIhRI6dw`UeikX_Zgu+YUKWARbtixsiufBt^=|MTZh zx-AU2|w(SoKssKm&m0b9QRLA>%P1G z{8}a(!4EM`tJc21*d93UEi`;TcXT_=? zs_^@69q(2A@pX6oReO^KOZ&O)E`N7^akghiAwxz%6USPI$J{4njxE`9U3}udoyHs1 zF7wE@Z}v8AIM^Xx6wxZU>w2@EU+e*==UHE;cCtSHllWEYa+T5175=gXvv=K^q|x%u z`C8{)p8$;y4(kqSnq9GHug;$;s;2X=RWI~S`sqNM7sq41c6c0a?>h7~YxeH<5!c)O zUn>e+^VfW1=&F9=sKil;j_8z)GM5BXS9!f)4vLETpBML(Z8f)xo#G0`bA>to>T-|A zn=DDcZM?1W*q3i@3ohCF_0-#N8*UuSf z9y9y-ZFkjUBc9#{ZyWFZ{q^6~(&tTAbXGXlarwJHIP<3}-#@T<|_~o^@`7_>~sS-$=!sIV6v$%Ek!oIhu-JgViIpuW(_p^N|vS==@ zKIe7*^TTtBeWLwKC8m~yxh`ay+mkZF2AKK&dV^4jCOg)-$$y2@^&Pt({t>_aVvf2)>=A*vbMmrx dGyJb+NMBy7x#jSu7zPFg22WQ%mvv4FO#rji;2i(} literal 0 HcmV?d00001 diff --git a/shader.fs b/shader.fs index 54d7607..ca1a4cc 100644 --- a/shader.fs +++ b/shader.fs @@ -1,7 +1,19 @@ #version 330 core +in vec3 Color; +in vec2 TexCoords; + +uniform int triangleColor; + +uniform sampler2D kitty; +uniform sampler2D puppy; + out vec4 outColor; void main(){ - outColor = vec4(1.0, 1.0, 1.0, 1.0); + vec4 kit = texture(kitty, TexCoords); + vec4 pup = texture(puppy, TexCoords); + outColor = pup; } + +/* vim: set ft=glsl: */ diff --git a/shader.vs b/shader.vs index 9a558f0..368103a 100644 --- a/shader.vs +++ b/shader.vs @@ -1,7 +1,16 @@ #version 330 core in vec2 positions; +in vec3 color; +in vec2 texCoords; + +out vec3 Color; +out vec2 TexCoords; void main(){ + Color = color; + TexCoords = texCoords; gl_Position = vec4(positions, 0.0, 1.0); } + +// vim: set ft=glsl: diff --git a/stb_image.h b/stb_image.h new file mode 100644 index 0000000..5e807a0 --- /dev/null +++ b/stb_image.h @@ -0,0 +1,7987 @@ +/* stb_image - v2.28 - public domain image loader - http://nothings.org/stb + no warranty implied; use at your own risk + + Do this: + #define STB_IMAGE_IMPLEMENTATION + before you include this file in *one* C or C++ file to create the implementation. + + // i.e. it should look like this: + #include ... + #include ... + #include ... + #define STB_IMAGE_IMPLEMENTATION + #include "stb_image.h" + + You can #define STBI_ASSERT(x) before the #include to avoid using assert.h. + And #define STBI_MALLOC, STBI_REALLOC, and STBI_FREE to avoid using malloc,realloc,free + + + QUICK NOTES: + Primarily of interest to game developers and other people who can + avoid problematic images and only need the trivial interface + + JPEG baseline & progressive (12 bpc/arithmetic not supported, same as stock IJG lib) + PNG 1/2/4/8/16-bit-per-channel + + TGA (not sure what subset, if a subset) + BMP non-1bpp, non-RLE + PSD (composited view only, no extra channels, 8/16 bit-per-channel) + + GIF (*comp always reports as 4-channel) + HDR (radiance rgbE format) + PIC (Softimage PIC) + PNM (PPM and PGM binary only) + + Animated GIF still needs a proper API, but here's one way to do it: + http://gist.github.com/urraka/685d9a6340b26b830d49 + + - decode from memory or through FILE (define STBI_NO_STDIO to remove code) + - decode from arbitrary I/O callbacks + - SIMD acceleration on x86/x64 (SSE2) and ARM (NEON) + + Full documentation under "DOCUMENTATION" below. + + +LICENSE + + See end of file for license information. + +RECENT REVISION HISTORY: + + 2.28 (2023-01-29) many error fixes, security errors, just tons of stuff + 2.27 (2021-07-11) document stbi_info better, 16-bit PNM support, bug fixes + 2.26 (2020-07-13) many minor fixes + 2.25 (2020-02-02) fix warnings + 2.24 (2020-02-02) fix warnings; thread-local failure_reason and flip_vertically + 2.23 (2019-08-11) fix clang static analysis warning + 2.22 (2019-03-04) gif fixes, fix warnings + 2.21 (2019-02-25) fix typo in comment + 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs + 2.19 (2018-02-11) fix warning + 2.18 (2018-01-30) fix warnings + 2.17 (2018-01-29) bugfix, 1-bit BMP, 16-bitness query, fix warnings + 2.16 (2017-07-23) all functions have 16-bit variants; optimizations; bugfixes + 2.15 (2017-03-18) fix png-1,2,4; all Imagenet JPGs; no runtime SSE detection on GCC + 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs + 2.13 (2016-12-04) experimental 16-bit API, only for PNG so far; fixes + 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes + 2.11 (2016-04-02) 16-bit PNGS; enable SSE2 in non-gcc x64 + RGB-format JPEG; remove white matting in PSD; + allocate large structures on the stack; + correct channel count for PNG & BMP + 2.10 (2016-01-22) avoid warning introduced in 2.09 + 2.09 (2016-01-16) 16-bit TGA; comments in PNM files; STBI_REALLOC_SIZED + + See end of file for full revision history. + + + ============================ Contributors ========================= + + Image formats Extensions, features + Sean Barrett (jpeg, png, bmp) Jetro Lauha (stbi_info) + Nicolas Schulz (hdr, psd) Martin "SpartanJ" Golini (stbi_info) + Jonathan Dummer (tga) James "moose2000" Brown (iPhone PNG) + Jean-Marc Lienher (gif) Ben "Disch" Wenger (io callbacks) + Tom Seddon (pic) Omar Cornut (1/2/4-bit PNG) + Thatcher Ulrich (psd) Nicolas Guillemot (vertical flip) + Ken Miller (pgm, ppm) Richard Mitton (16-bit PSD) + github:urraka (animated gif) Junggon Kim (PNM comments) + Christopher Forseth (animated gif) Daniel Gibson (16-bit TGA) + socks-the-fox (16-bit PNG) + Jeremy Sawicki (handle all ImageNet JPGs) + Optimizations & bugfixes Mikhail Morozov (1-bit BMP) + Fabian "ryg" Giesen Anael Seghezzi (is-16-bit query) + Arseny Kapoulkine Simon Breuss (16-bit PNM) + John-Mark Allen + Carmelo J Fdez-Aguera + + Bug & warning fixes + Marc LeBlanc David Woo Guillaume George Martins Mozeiko + Christpher Lloyd Jerry Jansson Joseph Thomson Blazej Dariusz Roszkowski + Phil Jordan Dave Moore Roy Eltham + Hayaki Saito Nathan Reed Won Chun + Luke Graham Johan Duparc Nick Verigakis the Horde3D community + Thomas Ruf Ronny Chevalier github:rlyeh + Janez Zemva John Bartholomew Michal Cichon github:romigrou + Jonathan Blow Ken Hamada Tero Hanninen github:svdijk + Eugene Golushkov Laurent Gomila Cort Stratton github:snagar + Aruelien Pocheville Sergio Gonzalez Thibault Reuille github:Zelex + Cass Everitt Ryamond Barbiero github:grim210 + Paul Du Bois Engin Manap Aldo Culquicondor github:sammyhw + Philipp Wiesemann Dale Weiler Oriol Ferrer Mesia github:phprus + Josh Tobin Neil Bickford Matthew Gregan github:poppolopoppo + Julian Raschke Gregory Mullen Christian Floisand github:darealshinji + Baldur Karlsson Kevin Schmidt JR Smith github:Michaelangel007 + Brad Weinberger Matvey Cherevko github:mosra + Luca Sas Alexander Veselov Zack Middleton [reserved] + Ryan C. Gordon [reserved] [reserved] + DO NOT ADD YOUR NAME HERE + + Jacko Dirks + + To add your name to the credits, pick a random blank space in the middle and fill it. + 80% of merge conflicts on stb PRs are due to people adding their name at the end + of the credits. +*/ + +#ifndef STBI_INCLUDE_STB_IMAGE_H +#define STBI_INCLUDE_STB_IMAGE_H + +// DOCUMENTATION +// +// Limitations: +// - no 12-bit-per-channel JPEG +// - no JPEGs with arithmetic coding +// - GIF always returns *comp=4 +// +// Basic usage (see HDR discussion below for HDR usage): +// int x,y,n; +// unsigned char *data = stbi_load(filename, &x, &y, &n, 0); +// // ... process data if not NULL ... +// // ... x = width, y = height, n = # 8-bit components per pixel ... +// // ... replace '0' with '1'..'4' to force that many components per pixel +// // ... but 'n' will always be the number that it would have been if you said 0 +// stbi_image_free(data); +// +// Standard parameters: +// int *x -- outputs image width in pixels +// int *y -- outputs image height in pixels +// int *channels_in_file -- outputs # of image components in image file +// int desired_channels -- if non-zero, # of image components requested in result +// +// The return value from an image loader is an 'unsigned char *' which points +// to the pixel data, or NULL on an allocation failure or if the image is +// corrupt or invalid. The pixel data consists of *y scanlines of *x pixels, +// with each pixel consisting of N interleaved 8-bit components; the first +// pixel pointed to is top-left-most in the image. There is no padding between +// image scanlines or between pixels, regardless of format. The number of +// components N is 'desired_channels' if desired_channels is non-zero, or +// *channels_in_file otherwise. If desired_channels is non-zero, +// *channels_in_file has the number of components that _would_ have been +// output otherwise. E.g. if you set desired_channels to 4, you will always +// get RGBA output, but you can check *channels_in_file to see if it's trivially +// opaque because e.g. there were only 3 channels in the source image. +// +// An output image with N components has the following components interleaved +// in this order in each pixel: +// +// N=#comp components +// 1 grey +// 2 grey, alpha +// 3 red, green, blue +// 4 red, green, blue, alpha +// +// If image loading fails for any reason, the return value will be NULL, +// and *x, *y, *channels_in_file will be unchanged. The function +// stbi_failure_reason() can be queried for an extremely brief, end-user +// unfriendly explanation of why the load failed. Define STBI_NO_FAILURE_STRINGS +// to avoid compiling these strings at all, and STBI_FAILURE_USERMSG to get slightly +// more user-friendly ones. +// +// Paletted PNG, BMP, GIF, and PIC images are automatically depalettized. +// +// To query the width, height and component count of an image without having to +// decode the full file, you can use the stbi_info family of functions: +// +// int x,y,n,ok; +// ok = stbi_info(filename, &x, &y, &n); +// // returns ok=1 and sets x, y, n if image is a supported format, +// // 0 otherwise. +// +// Note that stb_image pervasively uses ints in its public API for sizes, +// including sizes of memory buffers. This is now part of the API and thus +// hard to change without causing breakage. As a result, the various image +// loaders all have certain limits on image size; these differ somewhat +// by format but generally boil down to either just under 2GB or just under +// 1GB. When the decoded image would be larger than this, stb_image decoding +// will fail. +// +// Additionally, stb_image will reject image files that have any of their +// dimensions set to a larger value than the configurable STBI_MAX_DIMENSIONS, +// which defaults to 2**24 = 16777216 pixels. Due to the above memory limit, +// the only way to have an image with such dimensions load correctly +// is for it to have a rather extreme aspect ratio. Either way, the +// assumption here is that such larger images are likely to be malformed +// or malicious. If you do need to load an image with individual dimensions +// larger than that, and it still fits in the overall size limit, you can +// #define STBI_MAX_DIMENSIONS on your own to be something larger. +// +// =========================================================================== +// +// UNICODE: +// +// If compiling for Windows and you wish to use Unicode filenames, compile +// with +// #define STBI_WINDOWS_UTF8 +// and pass utf8-encoded filenames. Call stbi_convert_wchar_to_utf8 to convert +// Windows wchar_t filenames to utf8. +// +// =========================================================================== +// +// Philosophy +// +// stb libraries are designed with the following priorities: +// +// 1. easy to use +// 2. easy to maintain +// 3. good performance +// +// Sometimes I let "good performance" creep up in priority over "easy to maintain", +// and for best performance I may provide less-easy-to-use APIs that give higher +// performance, in addition to the easy-to-use ones. Nevertheless, it's important +// to keep in mind that from the standpoint of you, a client of this library, +// all you care about is #1 and #3, and stb libraries DO NOT emphasize #3 above all. +// +// Some secondary priorities arise directly from the first two, some of which +// provide more explicit reasons why performance can't be emphasized. +// +// - Portable ("ease of use") +// - Small source code footprint ("easy to maintain") +// - No dependencies ("ease of use") +// +// =========================================================================== +// +// I/O callbacks +// +// I/O callbacks allow you to read from arbitrary sources, like packaged +// files or some other source. Data read from callbacks are processed +// through a small internal buffer (currently 128 bytes) to try to reduce +// overhead. +// +// The three functions you must define are "read" (reads some bytes of data), +// "skip" (skips some bytes of data), "eof" (reports if the stream is at the end). +// +// =========================================================================== +// +// SIMD support +// +// The JPEG decoder will try to automatically use SIMD kernels on x86 when +// supported by the compiler. For ARM Neon support, you must explicitly +// request it. +// +// (The old do-it-yourself SIMD API is no longer supported in the current +// code.) +// +// On x86, SSE2 will automatically be used when available based on a run-time +// test; if not, the generic C versions are used as a fall-back. On ARM targets, +// the typical path is to have separate builds for NEON and non-NEON devices +// (at least this is true for iOS and Android). Therefore, the NEON support is +// toggled by a build flag: define STBI_NEON to get NEON loops. +// +// If for some reason you do not want to use any of SIMD code, or if +// you have issues compiling it, you can disable it entirely by +// defining STBI_NO_SIMD. +// +// =========================================================================== +// +// HDR image support (disable by defining STBI_NO_HDR) +// +// stb_image supports loading HDR images in general, and currently the Radiance +// .HDR file format specifically. You can still load any file through the existing +// interface; if you attempt to load an HDR file, it will be automatically remapped +// to LDR, assuming gamma 2.2 and an arbitrary scale factor defaulting to 1; +// both of these constants can be reconfigured through this interface: +// +// stbi_hdr_to_ldr_gamma(2.2f); +// stbi_hdr_to_ldr_scale(1.0f); +// +// (note, do not use _inverse_ constants; stbi_image will invert them +// appropriately). +// +// Additionally, there is a new, parallel interface for loading files as +// (linear) floats to preserve the full dynamic range: +// +// float *data = stbi_loadf(filename, &x, &y, &n, 0); +// +// If you load LDR images through this interface, those images will +// be promoted to floating point values, run through the inverse of +// constants corresponding to the above: +// +// stbi_ldr_to_hdr_scale(1.0f); +// stbi_ldr_to_hdr_gamma(2.2f); +// +// Finally, given a filename (or an open file or memory block--see header +// file for details) containing image data, you can query for the "most +// appropriate" interface to use (that is, whether the image is HDR or +// not), using: +// +// stbi_is_hdr(char *filename); +// +// =========================================================================== +// +// iPhone PNG support: +// +// We optionally support converting iPhone-formatted PNGs (which store +// premultiplied BGRA) back to RGB, even though they're internally encoded +// differently. To enable this conversion, call +// stbi_convert_iphone_png_to_rgb(1). +// +// Call stbi_set_unpremultiply_on_load(1) as well to force a divide per +// pixel to remove any premultiplied alpha *only* if the image file explicitly +// says there's premultiplied data (currently only happens in iPhone images, +// and only if iPhone convert-to-rgb processing is on). +// +// =========================================================================== +// +// ADDITIONAL CONFIGURATION +// +// - You can suppress implementation of any of the decoders to reduce +// your code footprint by #defining one or more of the following +// symbols before creating the implementation. +// +// STBI_NO_JPEG +// STBI_NO_PNG +// STBI_NO_BMP +// STBI_NO_PSD +// STBI_NO_TGA +// STBI_NO_GIF +// STBI_NO_HDR +// STBI_NO_PIC +// STBI_NO_PNM (.ppm and .pgm) +// +// - You can request *only* certain decoders and suppress all other ones +// (this will be more forward-compatible, as addition of new decoders +// doesn't require you to disable them explicitly): +// +// STBI_ONLY_JPEG +// STBI_ONLY_PNG +// STBI_ONLY_BMP +// STBI_ONLY_PSD +// STBI_ONLY_TGA +// STBI_ONLY_GIF +// STBI_ONLY_HDR +// STBI_ONLY_PIC +// STBI_ONLY_PNM (.ppm and .pgm) +// +// - If you use STBI_NO_PNG (or _ONLY_ without PNG), and you still +// want the zlib decoder to be available, #define STBI_SUPPORT_ZLIB +// +// - If you define STBI_MAX_DIMENSIONS, stb_image will reject images greater +// than that size (in either width or height) without further processing. +// This is to let programs in the wild set an upper bound to prevent +// denial-of-service attacks on untrusted data, as one could generate a +// valid image of gigantic dimensions and force stb_image to allocate a +// huge block of memory and spend disproportionate time decoding it. By +// default this is set to (1 << 24), which is 16777216, but that's still +// very big. + +#ifndef STBI_NO_STDIO +#include +#endif // STBI_NO_STDIO + +#define STBI_VERSION 1 + +enum +{ + STBI_default = 0, // only used for desired_channels + + STBI_grey = 1, + STBI_grey_alpha = 2, + STBI_rgb = 3, + STBI_rgb_alpha = 4 +}; + +#include +typedef unsigned char stbi_uc; +typedef unsigned short stbi_us; + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef STBIDEF +#ifdef STB_IMAGE_STATIC +#define STBIDEF static +#else +#define STBIDEF extern +#endif +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// PRIMARY API - works on images of any type +// + +// +// load image by filename, open file, or memory buffer +// + +typedef struct +{ + int (*read) (void *user,char *data,int size); // fill 'data' with 'size' bytes. return number of bytes actually read + void (*skip) (void *user,int n); // skip the next 'n' bytes, or 'unget' the last -n bytes if negative + int (*eof) (void *user); // returns nonzero if we are at end of file/data +} stbi_io_callbacks; + +//////////////////////////////////// +// +// 8-bits-per-channel interface +// + +STBIDEF stbi_uc *stbi_load_from_memory (stbi_uc const *buffer, int len , int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk , void *user, int *x, int *y, int *channels_in_file, int desired_channels); + +#ifndef STBI_NO_STDIO +STBIDEF stbi_uc *stbi_load (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_uc *stbi_load_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +// for stbi_load_from_file, file pointer is left pointing immediately after image +#endif + +#ifndef STBI_NO_GIF +STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp); +#endif + +#ifdef STBI_WINDOWS_UTF8 +STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input); +#endif + +//////////////////////////////////// +// +// 16-bits-per-channel interface +// + +STBIDEF stbi_us *stbi_load_16_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); + +#ifndef STBI_NO_STDIO +STBIDEF stbi_us *stbi_load_16 (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_us *stbi_load_from_file_16(FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +#endif + +//////////////////////////////////// +// +// float-per-channel interface +// +#ifndef STBI_NO_LINEAR + STBIDEF float *stbi_loadf_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF float *stbi_loadf_from_callbacks (stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); + + #ifndef STBI_NO_STDIO + STBIDEF float *stbi_loadf (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF float *stbi_loadf_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); + #endif +#endif + +#ifndef STBI_NO_HDR + STBIDEF void stbi_hdr_to_ldr_gamma(float gamma); + STBIDEF void stbi_hdr_to_ldr_scale(float scale); +#endif // STBI_NO_HDR + +#ifndef STBI_NO_LINEAR + STBIDEF void stbi_ldr_to_hdr_gamma(float gamma); + STBIDEF void stbi_ldr_to_hdr_scale(float scale); +#endif // STBI_NO_LINEAR + +// stbi_is_hdr is always defined, but always returns false if STBI_NO_HDR +STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user); +STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len); +#ifndef STBI_NO_STDIO +STBIDEF int stbi_is_hdr (char const *filename); +STBIDEF int stbi_is_hdr_from_file(FILE *f); +#endif // STBI_NO_STDIO + + +// get a VERY brief reason for failure +// on most compilers (and ALL modern mainstream compilers) this is threadsafe +STBIDEF const char *stbi_failure_reason (void); + +// free the loaded image -- this is just free() +STBIDEF void stbi_image_free (void *retval_from_stbi_load); + +// get image dimensions & components without fully decoding +STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp); +STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp); +STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len); +STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *clbk, void *user); + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_info (char const *filename, int *x, int *y, int *comp); +STBIDEF int stbi_info_from_file (FILE *f, int *x, int *y, int *comp); +STBIDEF int stbi_is_16_bit (char const *filename); +STBIDEF int stbi_is_16_bit_from_file(FILE *f); +#endif + + + +// for image formats that explicitly notate that they have premultiplied alpha, +// we just return the colors as stored in the file. set this flag to force +// unpremultiplication. results are undefined if the unpremultiply overflow. +STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply); + +// indicate whether we should process iphone images back to canonical format, +// or just pass them through "as-is" +STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert); + +// flip the image vertically, so the first pixel in the output array is the bottom left +STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip); + +// as above, but only applies to images loaded on the thread that calls the function +// this function is only available if your compiler supports thread-local variables; +// calling it will fail to link if your compiler doesn't +STBIDEF void stbi_set_unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply); +STBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert); +STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip); + +// ZLIB client - used by PNG, available for other purposes + +STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen); +STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header); +STBIDEF char *stbi_zlib_decode_malloc(const char *buffer, int len, int *outlen); +STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); + +STBIDEF char *stbi_zlib_decode_noheader_malloc(const char *buffer, int len, int *outlen); +STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); + + +#ifdef __cplusplus +} +#endif + +// +// +//// end header file ///////////////////////////////////////////////////// +#endif // STBI_INCLUDE_STB_IMAGE_H + +#ifdef STB_IMAGE_IMPLEMENTATION + +#if defined(STBI_ONLY_JPEG) || defined(STBI_ONLY_PNG) || defined(STBI_ONLY_BMP) \ + || defined(STBI_ONLY_TGA) || defined(STBI_ONLY_GIF) || defined(STBI_ONLY_PSD) \ + || defined(STBI_ONLY_HDR) || defined(STBI_ONLY_PIC) || defined(STBI_ONLY_PNM) \ + || defined(STBI_ONLY_ZLIB) + #ifndef STBI_ONLY_JPEG + #define STBI_NO_JPEG + #endif + #ifndef STBI_ONLY_PNG + #define STBI_NO_PNG + #endif + #ifndef STBI_ONLY_BMP + #define STBI_NO_BMP + #endif + #ifndef STBI_ONLY_PSD + #define STBI_NO_PSD + #endif + #ifndef STBI_ONLY_TGA + #define STBI_NO_TGA + #endif + #ifndef STBI_ONLY_GIF + #define STBI_NO_GIF + #endif + #ifndef STBI_ONLY_HDR + #define STBI_NO_HDR + #endif + #ifndef STBI_ONLY_PIC + #define STBI_NO_PIC + #endif + #ifndef STBI_ONLY_PNM + #define STBI_NO_PNM + #endif +#endif + +#if defined(STBI_NO_PNG) && !defined(STBI_SUPPORT_ZLIB) && !defined(STBI_NO_ZLIB) +#define STBI_NO_ZLIB +#endif + + +#include +#include // ptrdiff_t on osx +#include +#include +#include + +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) +#include // ldexp, pow +#endif + +#ifndef STBI_NO_STDIO +#include +#endif + +#ifndef STBI_ASSERT +#include +#define STBI_ASSERT(x) assert(x) +#endif + +#ifdef __cplusplus +#define STBI_EXTERN extern "C" +#else +#define STBI_EXTERN extern +#endif + + +#ifndef _MSC_VER + #ifdef __cplusplus + #define stbi_inline inline + #else + #define stbi_inline + #endif +#else + #define stbi_inline __forceinline +#endif + +#ifndef STBI_NO_THREAD_LOCALS + #if defined(__cplusplus) && __cplusplus >= 201103L + #define STBI_THREAD_LOCAL thread_local + #elif defined(__GNUC__) && __GNUC__ < 5 + #define STBI_THREAD_LOCAL __thread + #elif defined(_MSC_VER) + #define STBI_THREAD_LOCAL __declspec(thread) + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_THREADS__) + #define STBI_THREAD_LOCAL _Thread_local + #endif + + #ifndef STBI_THREAD_LOCAL + #if defined(__GNUC__) + #define STBI_THREAD_LOCAL __thread + #endif + #endif +#endif + +#if defined(_MSC_VER) || defined(__SYMBIAN32__) +typedef unsigned short stbi__uint16; +typedef signed short stbi__int16; +typedef unsigned int stbi__uint32; +typedef signed int stbi__int32; +#else +#include +typedef uint16_t stbi__uint16; +typedef int16_t stbi__int16; +typedef uint32_t stbi__uint32; +typedef int32_t stbi__int32; +#endif + +// should produce compiler error if size is wrong +typedef unsigned char validate_uint32[sizeof(stbi__uint32)==4 ? 1 : -1]; + +#ifdef _MSC_VER +#define STBI_NOTUSED(v) (void)(v) +#else +#define STBI_NOTUSED(v) (void)sizeof(v) +#endif + +#ifdef _MSC_VER +#define STBI_HAS_LROTL +#endif + +#ifdef STBI_HAS_LROTL + #define stbi_lrot(x,y) _lrotl(x,y) +#else + #define stbi_lrot(x,y) (((x) << (y)) | ((x) >> (-(y) & 31))) +#endif + +#if defined(STBI_MALLOC) && defined(STBI_FREE) && (defined(STBI_REALLOC) || defined(STBI_REALLOC_SIZED)) +// ok +#elif !defined(STBI_MALLOC) && !defined(STBI_FREE) && !defined(STBI_REALLOC) && !defined(STBI_REALLOC_SIZED) +// ok +#else +#error "Must define all or none of STBI_MALLOC, STBI_FREE, and STBI_REALLOC (or STBI_REALLOC_SIZED)." +#endif + +#ifndef STBI_MALLOC +#define STBI_MALLOC(sz) malloc(sz) +#define STBI_REALLOC(p,newsz) realloc(p,newsz) +#define STBI_FREE(p) free(p) +#endif + +#ifndef STBI_REALLOC_SIZED +#define STBI_REALLOC_SIZED(p,oldsz,newsz) STBI_REALLOC(p,newsz) +#endif + +// x86/x64 detection +#if defined(__x86_64__) || defined(_M_X64) +#define STBI__X64_TARGET +#elif defined(__i386) || defined(_M_IX86) +#define STBI__X86_TARGET +#endif + +#if defined(__GNUC__) && defined(STBI__X86_TARGET) && !defined(__SSE2__) && !defined(STBI_NO_SIMD) +// gcc doesn't support sse2 intrinsics unless you compile with -msse2, +// which in turn means it gets to use SSE2 everywhere. This is unfortunate, +// but previous attempts to provide the SSE2 functions with runtime +// detection caused numerous issues. The way architecture extensions are +// exposed in GCC/Clang is, sadly, not really suited for one-file libs. +// New behavior: if compiled with -msse2, we use SSE2 without any +// detection; if not, we don't use it at all. +#define STBI_NO_SIMD +#endif + +#if defined(__MINGW32__) && defined(STBI__X86_TARGET) && !defined(STBI_MINGW_ENABLE_SSE2) && !defined(STBI_NO_SIMD) +// Note that __MINGW32__ doesn't actually mean 32-bit, so we have to avoid STBI__X64_TARGET +// +// 32-bit MinGW wants ESP to be 16-byte aligned, but this is not in the +// Windows ABI and VC++ as well as Windows DLLs don't maintain that invariant. +// As a result, enabling SSE2 on 32-bit MinGW is dangerous when not +// simultaneously enabling "-mstackrealign". +// +// See https://github.com/nothings/stb/issues/81 for more information. +// +// So default to no SSE2 on 32-bit MinGW. If you've read this far and added +// -mstackrealign to your build settings, feel free to #define STBI_MINGW_ENABLE_SSE2. +#define STBI_NO_SIMD +#endif + +#if !defined(STBI_NO_SIMD) && (defined(STBI__X86_TARGET) || defined(STBI__X64_TARGET)) +#define STBI_SSE2 +#include + +#ifdef _MSC_VER + +#if _MSC_VER >= 1400 // not VC6 +#include // __cpuid +static int stbi__cpuid3(void) +{ + int info[4]; + __cpuid(info,1); + return info[3]; +} +#else +static int stbi__cpuid3(void) +{ + int res; + __asm { + mov eax,1 + cpuid + mov res,edx + } + return res; +} +#endif + +#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name + +#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) +static int stbi__sse2_available(void) +{ + int info3 = stbi__cpuid3(); + return ((info3 >> 26) & 1) != 0; +} +#endif + +#else // assume GCC-style if not VC++ +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) + +#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) +static int stbi__sse2_available(void) +{ + // If we're even attempting to compile this on GCC/Clang, that means + // -msse2 is on, which means the compiler is allowed to use SSE2 + // instructions at will, and so are we. + return 1; +} +#endif + +#endif +#endif + +// ARM NEON +#if defined(STBI_NO_SIMD) && defined(STBI_NEON) +#undef STBI_NEON +#endif + +#ifdef STBI_NEON +#include +#ifdef _MSC_VER +#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name +#else +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) +#endif +#endif + +#ifndef STBI_SIMD_ALIGN +#define STBI_SIMD_ALIGN(type, name) type name +#endif + +#ifndef STBI_MAX_DIMENSIONS +#define STBI_MAX_DIMENSIONS (1 << 24) +#endif + +/////////////////////////////////////////////// +// +// stbi__context struct and start_xxx functions + +// stbi__context structure is our basic context used by all images, so it +// contains all the IO context, plus some basic image information +typedef struct +{ + stbi__uint32 img_x, img_y; + int img_n, img_out_n; + + stbi_io_callbacks io; + void *io_user_data; + + int read_from_callbacks; + int buflen; + stbi_uc buffer_start[128]; + int callback_already_read; + + stbi_uc *img_buffer, *img_buffer_end; + stbi_uc *img_buffer_original, *img_buffer_original_end; +} stbi__context; + + +static void stbi__refill_buffer(stbi__context *s); + +// initialize a memory-decode context +static void stbi__start_mem(stbi__context *s, stbi_uc const *buffer, int len) +{ + s->io.read = NULL; + s->read_from_callbacks = 0; + s->callback_already_read = 0; + s->img_buffer = s->img_buffer_original = (stbi_uc *) buffer; + s->img_buffer_end = s->img_buffer_original_end = (stbi_uc *) buffer+len; +} + +// initialize a callback-based context +static void stbi__start_callbacks(stbi__context *s, stbi_io_callbacks *c, void *user) +{ + s->io = *c; + s->io_user_data = user; + s->buflen = sizeof(s->buffer_start); + s->read_from_callbacks = 1; + s->callback_already_read = 0; + s->img_buffer = s->img_buffer_original = s->buffer_start; + stbi__refill_buffer(s); + s->img_buffer_original_end = s->img_buffer_end; +} + +#ifndef STBI_NO_STDIO + +static int stbi__stdio_read(void *user, char *data, int size) +{ + return (int) fread(data,1,size,(FILE*) user); +} + +static void stbi__stdio_skip(void *user, int n) +{ + int ch; + fseek((FILE*) user, n, SEEK_CUR); + ch = fgetc((FILE*) user); /* have to read a byte to reset feof()'s flag */ + if (ch != EOF) { + ungetc(ch, (FILE *) user); /* push byte back onto stream if valid. */ + } +} + +static int stbi__stdio_eof(void *user) +{ + return feof((FILE*) user) || ferror((FILE *) user); +} + +static stbi_io_callbacks stbi__stdio_callbacks = +{ + stbi__stdio_read, + stbi__stdio_skip, + stbi__stdio_eof, +}; + +static void stbi__start_file(stbi__context *s, FILE *f) +{ + stbi__start_callbacks(s, &stbi__stdio_callbacks, (void *) f); +} + +//static void stop_file(stbi__context *s) { } + +#endif // !STBI_NO_STDIO + +static void stbi__rewind(stbi__context *s) +{ + // conceptually rewind SHOULD rewind to the beginning of the stream, + // but we just rewind to the beginning of the initial buffer, because + // we only use it after doing 'test', which only ever looks at at most 92 bytes + s->img_buffer = s->img_buffer_original; + s->img_buffer_end = s->img_buffer_original_end; +} + +enum +{ + STBI_ORDER_RGB, + STBI_ORDER_BGR +}; + +typedef struct +{ + int bits_per_channel; + int num_channels; + int channel_order; +} stbi__result_info; + +#ifndef STBI_NO_JPEG +static int stbi__jpeg_test(stbi__context *s); +static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PNG +static int stbi__png_test(stbi__context *s); +static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__png_is16(stbi__context *s); +#endif + +#ifndef STBI_NO_BMP +static int stbi__bmp_test(stbi__context *s); +static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_TGA +static int stbi__tga_test(stbi__context *s); +static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PSD +static int stbi__psd_test(stbi__context *s); +static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc); +static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__psd_is16(stbi__context *s); +#endif + +#ifndef STBI_NO_HDR +static int stbi__hdr_test(stbi__context *s); +static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PIC +static int stbi__pic_test(stbi__context *s); +static void *stbi__pic_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_GIF +static int stbi__gif_test(stbi__context *s); +static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp); +static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PNM +static int stbi__pnm_test(stbi__context *s); +static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__pnm_is16(stbi__context *s); +#endif + +static +#ifdef STBI_THREAD_LOCAL +STBI_THREAD_LOCAL +#endif +const char *stbi__g_failure_reason; + +STBIDEF const char *stbi_failure_reason(void) +{ + return stbi__g_failure_reason; +} + +#ifndef STBI_NO_FAILURE_STRINGS +static int stbi__err(const char *str) +{ + stbi__g_failure_reason = str; + return 0; +} +#endif + +static void *stbi__malloc(size_t size) +{ + return STBI_MALLOC(size); +} + +// stb_image uses ints pervasively, including for offset calculations. +// therefore the largest decoded image size we can support with the +// current code, even on 64-bit targets, is INT_MAX. this is not a +// significant limitation for the intended use case. +// +// we do, however, need to make sure our size calculations don't +// overflow. hence a few helper functions for size calculations that +// multiply integers together, making sure that they're non-negative +// and no overflow occurs. + +// return 1 if the sum is valid, 0 on overflow. +// negative terms are considered invalid. +static int stbi__addsizes_valid(int a, int b) +{ + if (b < 0) return 0; + // now 0 <= b <= INT_MAX, hence also + // 0 <= INT_MAX - b <= INTMAX. + // And "a + b <= INT_MAX" (which might overflow) is the + // same as a <= INT_MAX - b (no overflow) + return a <= INT_MAX - b; +} + +// returns 1 if the product is valid, 0 on overflow. +// negative factors are considered invalid. +static int stbi__mul2sizes_valid(int a, int b) +{ + if (a < 0 || b < 0) return 0; + if (b == 0) return 1; // mul-by-0 is always safe + // portable way to check for no overflows in a*b + return a <= INT_MAX/b; +} + +#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) +// returns 1 if "a*b + add" has no negative terms/factors and doesn't overflow +static int stbi__mad2sizes_valid(int a, int b, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__addsizes_valid(a*b, add); +} +#endif + +// returns 1 if "a*b*c + add" has no negative terms/factors and doesn't overflow +static int stbi__mad3sizes_valid(int a, int b, int c, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && + stbi__addsizes_valid(a*b*c, add); +} + +// returns 1 if "a*b*c*d + add" has no negative terms/factors and doesn't overflow +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM) +static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && + stbi__mul2sizes_valid(a*b*c, d) && stbi__addsizes_valid(a*b*c*d, add); +} +#endif + +#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) +// mallocs with size overflow checking +static void *stbi__malloc_mad2(int a, int b, int add) +{ + if (!stbi__mad2sizes_valid(a, b, add)) return NULL; + return stbi__malloc(a*b + add); +} +#endif + +static void *stbi__malloc_mad3(int a, int b, int c, int add) +{ + if (!stbi__mad3sizes_valid(a, b, c, add)) return NULL; + return stbi__malloc(a*b*c + add); +} + +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM) +static void *stbi__malloc_mad4(int a, int b, int c, int d, int add) +{ + if (!stbi__mad4sizes_valid(a, b, c, d, add)) return NULL; + return stbi__malloc(a*b*c*d + add); +} +#endif + +// returns 1 if the sum of two signed ints is valid (between -2^31 and 2^31-1 inclusive), 0 on overflow. +static int stbi__addints_valid(int a, int b) +{ + if ((a >= 0) != (b >= 0)) return 1; // a and b have different signs, so no overflow + if (a < 0 && b < 0) return a >= INT_MIN - b; // same as a + b >= INT_MIN; INT_MIN - b cannot overflow since b < 0. + return a <= INT_MAX - b; +} + +// returns 1 if the product of two signed shorts is valid, 0 on overflow. +static int stbi__mul2shorts_valid(short a, short b) +{ + if (b == 0 || b == -1) return 1; // multiplication by 0 is always 0; check for -1 so SHRT_MIN/b doesn't overflow + if ((a >= 0) == (b >= 0)) return a <= SHRT_MAX/b; // product is positive, so similar to mul2sizes_valid + if (b < 0) return a <= SHRT_MIN / b; // same as a * b >= SHRT_MIN + return a >= SHRT_MIN / b; +} + +// stbi__err - error +// stbi__errpf - error returning pointer to float +// stbi__errpuc - error returning pointer to unsigned char + +#ifdef STBI_NO_FAILURE_STRINGS + #define stbi__err(x,y) 0 +#elif defined(STBI_FAILURE_USERMSG) + #define stbi__err(x,y) stbi__err(y) +#else + #define stbi__err(x,y) stbi__err(x) +#endif + +#define stbi__errpf(x,y) ((float *)(size_t) (stbi__err(x,y)?NULL:NULL)) +#define stbi__errpuc(x,y) ((unsigned char *)(size_t) (stbi__err(x,y)?NULL:NULL)) + +STBIDEF void stbi_image_free(void *retval_from_stbi_load) +{ + STBI_FREE(retval_from_stbi_load); +} + +#ifndef STBI_NO_LINEAR +static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp); +#endif + +#ifndef STBI_NO_HDR +static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp); +#endif + +static int stbi__vertically_flip_on_load_global = 0; + +STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip) +{ + stbi__vertically_flip_on_load_global = flag_true_if_should_flip; +} + +#ifndef STBI_THREAD_LOCAL +#define stbi__vertically_flip_on_load stbi__vertically_flip_on_load_global +#else +static STBI_THREAD_LOCAL int stbi__vertically_flip_on_load_local, stbi__vertically_flip_on_load_set; + +STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip) +{ + stbi__vertically_flip_on_load_local = flag_true_if_should_flip; + stbi__vertically_flip_on_load_set = 1; +} + +#define stbi__vertically_flip_on_load (stbi__vertically_flip_on_load_set \ + ? stbi__vertically_flip_on_load_local \ + : stbi__vertically_flip_on_load_global) +#endif // STBI_THREAD_LOCAL + +static void *stbi__load_main(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) +{ + memset(ri, 0, sizeof(*ri)); // make sure it's initialized if we add new fields + ri->bits_per_channel = 8; // default is 8 so most paths don't have to be changed + ri->channel_order = STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order + ri->num_channels = 0; + + // test the formats with a very explicit header first (at least a FOURCC + // or distinctive magic number first) + #ifndef STBI_NO_PNG + if (stbi__png_test(s)) return stbi__png_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_BMP + if (stbi__bmp_test(s)) return stbi__bmp_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_GIF + if (stbi__gif_test(s)) return stbi__gif_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_PSD + if (stbi__psd_test(s)) return stbi__psd_load(s,x,y,comp,req_comp, ri, bpc); + #else + STBI_NOTUSED(bpc); + #endif + #ifndef STBI_NO_PIC + if (stbi__pic_test(s)) return stbi__pic_load(s,x,y,comp,req_comp, ri); + #endif + + // then the formats that can end up attempting to load with just 1 or 2 + // bytes matching expectations; these are prone to false positives, so + // try them later + #ifndef STBI_NO_JPEG + if (stbi__jpeg_test(s)) return stbi__jpeg_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_PNM + if (stbi__pnm_test(s)) return stbi__pnm_load(s,x,y,comp,req_comp, ri); + #endif + + #ifndef STBI_NO_HDR + if (stbi__hdr_test(s)) { + float *hdr = stbi__hdr_load(s, x,y,comp,req_comp, ri); + return stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp); + } + #endif + + #ifndef STBI_NO_TGA + // test tga last because it's a crappy test! + if (stbi__tga_test(s)) + return stbi__tga_load(s,x,y,comp,req_comp, ri); + #endif + + return stbi__errpuc("unknown image type", "Image not of any known type, or corrupt"); +} + +static stbi_uc *stbi__convert_16_to_8(stbi__uint16 *orig, int w, int h, int channels) +{ + int i; + int img_len = w * h * channels; + stbi_uc *reduced; + + reduced = (stbi_uc *) stbi__malloc(img_len); + if (reduced == NULL) return stbi__errpuc("outofmem", "Out of memory"); + + for (i = 0; i < img_len; ++i) + reduced[i] = (stbi_uc)((orig[i] >> 8) & 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling + + STBI_FREE(orig); + return reduced; +} + +static stbi__uint16 *stbi__convert_8_to_16(stbi_uc *orig, int w, int h, int channels) +{ + int i; + int img_len = w * h * channels; + stbi__uint16 *enlarged; + + enlarged = (stbi__uint16 *) stbi__malloc(img_len*2); + if (enlarged == NULL) return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); + + for (i = 0; i < img_len; ++i) + enlarged[i] = (stbi__uint16)((orig[i] << 8) + orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff + + STBI_FREE(orig); + return enlarged; +} + +static void stbi__vertical_flip(void *image, int w, int h, int bytes_per_pixel) +{ + int row; + size_t bytes_per_row = (size_t)w * bytes_per_pixel; + stbi_uc temp[2048]; + stbi_uc *bytes = (stbi_uc *)image; + + for (row = 0; row < (h>>1); row++) { + stbi_uc *row0 = bytes + row*bytes_per_row; + stbi_uc *row1 = bytes + (h - row - 1)*bytes_per_row; + // swap row0 with row1 + size_t bytes_left = bytes_per_row; + while (bytes_left) { + size_t bytes_copy = (bytes_left < sizeof(temp)) ? bytes_left : sizeof(temp); + memcpy(temp, row0, bytes_copy); + memcpy(row0, row1, bytes_copy); + memcpy(row1, temp, bytes_copy); + row0 += bytes_copy; + row1 += bytes_copy; + bytes_left -= bytes_copy; + } + } +} + +#ifndef STBI_NO_GIF +static void stbi__vertical_flip_slices(void *image, int w, int h, int z, int bytes_per_pixel) +{ + int slice; + int slice_size = w * h * bytes_per_pixel; + + stbi_uc *bytes = (stbi_uc *)image; + for (slice = 0; slice < z; ++slice) { + stbi__vertical_flip(bytes, w, h, bytes_per_pixel); + bytes += slice_size; + } +} +#endif + +static unsigned char *stbi__load_and_postprocess_8bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + stbi__result_info ri; + void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 8); + + if (result == NULL) + return NULL; + + // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. + STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); + + if (ri.bits_per_channel != 8) { + result = stbi__convert_16_to_8((stbi__uint16 *) result, *x, *y, req_comp == 0 ? *comp : req_comp); + ri.bits_per_channel = 8; + } + + // @TODO: move stbi__convert_format to here + + if (stbi__vertically_flip_on_load) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi_uc)); + } + + return (unsigned char *) result; +} + +static stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + stbi__result_info ri; + void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16); + + if (result == NULL) + return NULL; + + // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. + STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); + + if (ri.bits_per_channel != 16) { + result = stbi__convert_8_to_16((stbi_uc *) result, *x, *y, req_comp == 0 ? *comp : req_comp); + ri.bits_per_channel = 16; + } + + // @TODO: move stbi__convert_format16 to here + // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision + + if (stbi__vertically_flip_on_load) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi__uint16)); + } + + return (stbi__uint16 *) result; +} + +#if !defined(STBI_NO_HDR) && !defined(STBI_NO_LINEAR) +static void stbi__float_postprocess(float *result, int *x, int *y, int *comp, int req_comp) +{ + if (stbi__vertically_flip_on_load && result != NULL) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(float)); + } +} +#endif + +#ifndef STBI_NO_STDIO + +#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) +STBI_EXTERN __declspec(dllimport) int __stdcall MultiByteToWideChar(unsigned int cp, unsigned long flags, const char *str, int cbmb, wchar_t *widestr, int cchwide); +STBI_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned int cp, unsigned long flags, const wchar_t *widestr, int cchwide, char *str, int cbmb, const char *defchar, int *used_default); +#endif + +#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) +STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input) +{ + return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int) bufferlen, NULL, NULL); +} +#endif + +static FILE *stbi__fopen(char const *filename, char const *mode) +{ + FILE *f; +#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) + wchar_t wMode[64]; + wchar_t wFilename[1024]; + if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename, sizeof(wFilename)/sizeof(*wFilename))) + return 0; + + if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode, sizeof(wMode)/sizeof(*wMode))) + return 0; + +#if defined(_MSC_VER) && _MSC_VER >= 1400 + if (0 != _wfopen_s(&f, wFilename, wMode)) + f = 0; +#else + f = _wfopen(wFilename, wMode); +#endif + +#elif defined(_MSC_VER) && _MSC_VER >= 1400 + if (0 != fopen_s(&f, filename, mode)) + f=0; +#else + f = fopen(filename, mode); +#endif + return f; +} + + +STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + unsigned char *result; + if (!f) return stbi__errpuc("can't fopen", "Unable to open file"); + result = stbi_load_from_file(f,x,y,comp,req_comp); + fclose(f); + return result; +} + +STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *result; + stbi__context s; + stbi__start_file(&s,f); + result = stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); + if (result) { + // need to 'unget' all the characters in the IO buffer + fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR); + } + return result; +} + +STBIDEF stbi__uint16 *stbi_load_from_file_16(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + stbi__uint16 *result; + stbi__context s; + stbi__start_file(&s,f); + result = stbi__load_and_postprocess_16bit(&s,x,y,comp,req_comp); + if (result) { + // need to 'unget' all the characters in the IO buffer + fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR); + } + return result; +} + +STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + stbi__uint16 *result; + if (!f) return (stbi_us *) stbi__errpuc("can't fopen", "Unable to open file"); + result = stbi_load_from_file_16(f,x,y,comp,req_comp); + fclose(f); + return result; +} + + +#endif //!STBI_NO_STDIO + +STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); +} + +STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); + return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); +} + +STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); +} + +STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); +} + +#ifndef STBI_NO_GIF +STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp) +{ + unsigned char *result; + stbi__context s; + stbi__start_mem(&s,buffer,len); + + result = (unsigned char*) stbi__load_gif_main(&s, delays, x, y, z, comp, req_comp); + if (stbi__vertically_flip_on_load) { + stbi__vertical_flip_slices( result, *x, *y, *z, *comp ); + } + + return result; +} +#endif + +#ifndef STBI_NO_LINEAR +static float *stbi__loadf_main(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *data; + #ifndef STBI_NO_HDR + if (stbi__hdr_test(s)) { + stbi__result_info ri; + float *hdr_data = stbi__hdr_load(s,x,y,comp,req_comp, &ri); + if (hdr_data) + stbi__float_postprocess(hdr_data,x,y,comp,req_comp); + return hdr_data; + } + #endif + data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp); + if (data) + return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp); + return stbi__errpf("unknown image type", "Image not of any known type, or corrupt"); +} + +STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} + +STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} + +#ifndef STBI_NO_STDIO +STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + float *result; + FILE *f = stbi__fopen(filename, "rb"); + if (!f) return stbi__errpf("can't fopen", "Unable to open file"); + result = stbi_loadf_from_file(f,x,y,comp,req_comp); + fclose(f); + return result; +} + +STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_file(&s,f); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} +#endif // !STBI_NO_STDIO + +#endif // !STBI_NO_LINEAR + +// these is-hdr-or-not is defined independent of whether STBI_NO_LINEAR is +// defined, for API simplicity; if STBI_NO_LINEAR is defined, it always +// reports false! + +STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len) +{ + #ifndef STBI_NO_HDR + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__hdr_test(&s); + #else + STBI_NOTUSED(buffer); + STBI_NOTUSED(len); + return 0; + #endif +} + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_is_hdr (char const *filename) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result=0; + if (f) { + result = stbi_is_hdr_from_file(f); + fclose(f); + } + return result; +} + +STBIDEF int stbi_is_hdr_from_file(FILE *f) +{ + #ifndef STBI_NO_HDR + long pos = ftell(f); + int res; + stbi__context s; + stbi__start_file(&s,f); + res = stbi__hdr_test(&s); + fseek(f, pos, SEEK_SET); + return res; + #else + STBI_NOTUSED(f); + return 0; + #endif +} +#endif // !STBI_NO_STDIO + +STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user) +{ + #ifndef STBI_NO_HDR + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__hdr_test(&s); + #else + STBI_NOTUSED(clbk); + STBI_NOTUSED(user); + return 0; + #endif +} + +#ifndef STBI_NO_LINEAR +static float stbi__l2h_gamma=2.2f, stbi__l2h_scale=1.0f; + +STBIDEF void stbi_ldr_to_hdr_gamma(float gamma) { stbi__l2h_gamma = gamma; } +STBIDEF void stbi_ldr_to_hdr_scale(float scale) { stbi__l2h_scale = scale; } +#endif + +static float stbi__h2l_gamma_i=1.0f/2.2f, stbi__h2l_scale_i=1.0f; + +STBIDEF void stbi_hdr_to_ldr_gamma(float gamma) { stbi__h2l_gamma_i = 1/gamma; } +STBIDEF void stbi_hdr_to_ldr_scale(float scale) { stbi__h2l_scale_i = 1/scale; } + + +////////////////////////////////////////////////////////////////////////////// +// +// Common code used by all image loaders +// + +enum +{ + STBI__SCAN_load=0, + STBI__SCAN_type, + STBI__SCAN_header +}; + +static void stbi__refill_buffer(stbi__context *s) +{ + int n = (s->io.read)(s->io_user_data,(char*)s->buffer_start,s->buflen); + s->callback_already_read += (int) (s->img_buffer - s->img_buffer_original); + if (n == 0) { + // at end of file, treat same as if from memory, but need to handle case + // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file + s->read_from_callbacks = 0; + s->img_buffer = s->buffer_start; + s->img_buffer_end = s->buffer_start+1; + *s->img_buffer = 0; + } else { + s->img_buffer = s->buffer_start; + s->img_buffer_end = s->buffer_start + n; + } +} + +stbi_inline static stbi_uc stbi__get8(stbi__context *s) +{ + if (s->img_buffer < s->img_buffer_end) + return *s->img_buffer++; + if (s->read_from_callbacks) { + stbi__refill_buffer(s); + return *s->img_buffer++; + } + return 0; +} + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_HDR) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +stbi_inline static int stbi__at_eof(stbi__context *s) +{ + if (s->io.read) { + if (!(s->io.eof)(s->io_user_data)) return 0; + // if feof() is true, check if buffer = end + // special case: we've only got the special 0 character at the end + if (s->read_from_callbacks == 0) return 1; + } + + return s->img_buffer >= s->img_buffer_end; +} +#endif + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) +// nothing +#else +static void stbi__skip(stbi__context *s, int n) +{ + if (n == 0) return; // already there! + if (n < 0) { + s->img_buffer = s->img_buffer_end; + return; + } + if (s->io.read) { + int blen = (int) (s->img_buffer_end - s->img_buffer); + if (blen < n) { + s->img_buffer = s->img_buffer_end; + (s->io.skip)(s->io_user_data, n - blen); + return; + } + } + s->img_buffer += n; +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_TGA) && defined(STBI_NO_HDR) && defined(STBI_NO_PNM) +// nothing +#else +static int stbi__getn(stbi__context *s, stbi_uc *buffer, int n) +{ + if (s->io.read) { + int blen = (int) (s->img_buffer_end - s->img_buffer); + if (blen < n) { + int res, count; + + memcpy(buffer, s->img_buffer, blen); + + count = (s->io.read)(s->io_user_data, (char*) buffer + blen, n - blen); + res = (count == (n-blen)); + s->img_buffer = s->img_buffer_end; + return res; + } + } + + if (s->img_buffer+n <= s->img_buffer_end) { + memcpy(buffer, s->img_buffer, n); + s->img_buffer += n; + return 1; + } else + return 0; +} +#endif + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) +// nothing +#else +static int stbi__get16be(stbi__context *s) +{ + int z = stbi__get8(s); + return (z << 8) + stbi__get8(s); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) +// nothing +#else +static stbi__uint32 stbi__get32be(stbi__context *s) +{ + stbi__uint32 z = stbi__get16be(s); + return (z << 16) + stbi__get16be(s); +} +#endif + +#if defined(STBI_NO_BMP) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) +// nothing +#else +static int stbi__get16le(stbi__context *s) +{ + int z = stbi__get8(s); + return z + (stbi__get8(s) << 8); +} +#endif + +#ifndef STBI_NO_BMP +static stbi__uint32 stbi__get32le(stbi__context *s) +{ + stbi__uint32 z = stbi__get16le(s); + z += (stbi__uint32)stbi__get16le(s) << 16; + return z; +} +#endif + +#define STBI__BYTECAST(x) ((stbi_uc) ((x) & 255)) // truncate int to byte without warnings + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +////////////////////////////////////////////////////////////////////////////// +// +// generic converter from built-in img_n to req_comp +// individual types do this automatically as much as possible (e.g. jpeg +// does all cases internally since it needs to colorspace convert anyway, +// and it never has alpha, so very few cases ). png can automatically +// interleave an alpha=255 channel, but falls back to this for other cases +// +// assume data buffer is malloced, so malloc a new one and free that one +// only failure mode is malloc failing + +static stbi_uc stbi__compute_y(int r, int g, int b) +{ + return (stbi_uc) (((r*77) + (g*150) + (29*b)) >> 8); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +static unsigned char *stbi__convert_format(unsigned char *data, int img_n, int req_comp, unsigned int x, unsigned int y) +{ + int i,j; + unsigned char *good; + + if (req_comp == img_n) return data; + STBI_ASSERT(req_comp >= 1 && req_comp <= 4); + + good = (unsigned char *) stbi__malloc_mad3(req_comp, x, y, 0); + if (good == NULL) { + STBI_FREE(data); + return stbi__errpuc("outofmem", "Out of memory"); + } + + for (j=0; j < (int) y; ++j) { + unsigned char *src = data + j * x * img_n ; + unsigned char *dest = good + j * x * req_comp; + + #define STBI__COMBO(a,b) ((a)*8+(b)) + #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) + // convert source image with img_n components to one with req_comp components; + // avoid switch per pixel, so use switch per scanline and massive macros + switch (STBI__COMBO(img_n, req_comp)) { + STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=255; } break; + STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=255; } break; + STBI__CASE(2,1) { dest[0]=src[0]; } break; + STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1]; } break; + STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=255; } break; + STBI__CASE(3,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; + STBI__CASE(3,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = 255; } break; + STBI__CASE(4,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; + STBI__CASE(4,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = src[3]; } break; + STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2]; } break; + default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return stbi__errpuc("unsupported", "Unsupported format conversion"); + } + #undef STBI__CASE + } + + STBI_FREE(data); + return good; +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) +// nothing +#else +static stbi__uint16 stbi__compute_y_16(int r, int g, int b) +{ + return (stbi__uint16) (((r*77) + (g*150) + (29*b)) >> 8); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) +// nothing +#else +static stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, int img_n, int req_comp, unsigned int x, unsigned int y) +{ + int i,j; + stbi__uint16 *good; + + if (req_comp == img_n) return data; + STBI_ASSERT(req_comp >= 1 && req_comp <= 4); + + good = (stbi__uint16 *) stbi__malloc(req_comp * x * y * 2); + if (good == NULL) { + STBI_FREE(data); + return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); + } + + for (j=0; j < (int) y; ++j) { + stbi__uint16 *src = data + j * x * img_n ; + stbi__uint16 *dest = good + j * x * req_comp; + + #define STBI__COMBO(a,b) ((a)*8+(b)) + #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) + // convert source image with img_n components to one with req_comp components; + // avoid switch per pixel, so use switch per scanline and massive macros + switch (STBI__COMBO(img_n, req_comp)) { + STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=0xffff; } break; + STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=0xffff; } break; + STBI__CASE(2,1) { dest[0]=src[0]; } break; + STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1]; } break; + STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=0xffff; } break; + STBI__CASE(3,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; + STBI__CASE(3,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = 0xffff; } break; + STBI__CASE(4,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; + STBI__CASE(4,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = src[3]; } break; + STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2]; } break; + default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return (stbi__uint16*) stbi__errpuc("unsupported", "Unsupported format conversion"); + } + #undef STBI__CASE + } + + STBI_FREE(data); + return good; +} +#endif + +#ifndef STBI_NO_LINEAR +static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp) +{ + int i,k,n; + float *output; + if (!data) return NULL; + output = (float *) stbi__malloc_mad4(x, y, comp, sizeof(float), 0); + if (output == NULL) { STBI_FREE(data); return stbi__errpf("outofmem", "Out of memory"); } + // compute number of non-alpha components + if (comp & 1) n = comp; else n = comp-1; + for (i=0; i < x*y; ++i) { + for (k=0; k < n; ++k) { + output[i*comp + k] = (float) (pow(data[i*comp+k]/255.0f, stbi__l2h_gamma) * stbi__l2h_scale); + } + } + if (n < comp) { + for (i=0; i < x*y; ++i) { + output[i*comp + n] = data[i*comp + n]/255.0f; + } + } + STBI_FREE(data); + return output; +} +#endif + +#ifndef STBI_NO_HDR +#define stbi__float2int(x) ((int) (x)) +static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp) +{ + int i,k,n; + stbi_uc *output; + if (!data) return NULL; + output = (stbi_uc *) stbi__malloc_mad3(x, y, comp, 0); + if (output == NULL) { STBI_FREE(data); return stbi__errpuc("outofmem", "Out of memory"); } + // compute number of non-alpha components + if (comp & 1) n = comp; else n = comp-1; + for (i=0; i < x*y; ++i) { + for (k=0; k < n; ++k) { + float z = (float) pow(data[i*comp+k]*stbi__h2l_scale_i, stbi__h2l_gamma_i) * 255 + 0.5f; + if (z < 0) z = 0; + if (z > 255) z = 255; + output[i*comp + k] = (stbi_uc) stbi__float2int(z); + } + if (k < comp) { + float z = data[i*comp+k] * 255 + 0.5f; + if (z < 0) z = 0; + if (z > 255) z = 255; + output[i*comp + k] = (stbi_uc) stbi__float2int(z); + } + } + STBI_FREE(data); + return output; +} +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// "baseline" JPEG/JFIF decoder +// +// simple implementation +// - doesn't support delayed output of y-dimension +// - simple interface (only one output format: 8-bit interleaved RGB) +// - doesn't try to recover corrupt jpegs +// - doesn't allow partial loading, loading multiple at once +// - still fast on x86 (copying globals into locals doesn't help x86) +// - allocates lots of intermediate memory (full size of all components) +// - non-interleaved case requires this anyway +// - allows good upsampling (see next) +// high-quality +// - upsampled channels are bilinearly interpolated, even across blocks +// - quality integer IDCT derived from IJG's 'slow' +// performance +// - fast huffman; reasonable integer IDCT +// - some SIMD kernels for common paths on targets with SSE2/NEON +// - uses a lot of intermediate memory, could cache poorly + +#ifndef STBI_NO_JPEG + +// huffman decoding acceleration +#define FAST_BITS 9 // larger handles more cases; smaller stomps less cache + +typedef struct +{ + stbi_uc fast[1 << FAST_BITS]; + // weirdly, repacking this into AoS is a 10% speed loss, instead of a win + stbi__uint16 code[256]; + stbi_uc values[256]; + stbi_uc size[257]; + unsigned int maxcode[18]; + int delta[17]; // old 'firstsymbol' - old 'firstcode' +} stbi__huffman; + +typedef struct +{ + stbi__context *s; + stbi__huffman huff_dc[4]; + stbi__huffman huff_ac[4]; + stbi__uint16 dequant[4][64]; + stbi__int16 fast_ac[4][1 << FAST_BITS]; + +// sizes for components, interleaved MCUs + int img_h_max, img_v_max; + int img_mcu_x, img_mcu_y; + int img_mcu_w, img_mcu_h; + +// definition of jpeg image component + struct + { + int id; + int h,v; + int tq; + int hd,ha; + int dc_pred; + + int x,y,w2,h2; + stbi_uc *data; + void *raw_data, *raw_coeff; + stbi_uc *linebuf; + short *coeff; // progressive only + int coeff_w, coeff_h; // number of 8x8 coefficient blocks + } img_comp[4]; + + stbi__uint32 code_buffer; // jpeg entropy-coded buffer + int code_bits; // number of valid bits + unsigned char marker; // marker seen while filling entropy buffer + int nomore; // flag if we saw a marker so must stop + + int progressive; + int spec_start; + int spec_end; + int succ_high; + int succ_low; + int eob_run; + int jfif; + int app14_color_transform; // Adobe APP14 tag + int rgb; + + int scan_n, order[4]; + int restart_interval, todo; + +// kernels + void (*idct_block_kernel)(stbi_uc *out, int out_stride, short data[64]); + void (*YCbCr_to_RGB_kernel)(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step); + stbi_uc *(*resample_row_hv_2_kernel)(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs); +} stbi__jpeg; + +static int stbi__build_huffman(stbi__huffman *h, int *count) +{ + int i,j,k=0; + unsigned int code; + // build size list for each symbol (from JPEG spec) + for (i=0; i < 16; ++i) { + for (j=0; j < count[i]; ++j) { + h->size[k++] = (stbi_uc) (i+1); + if(k >= 257) return stbi__err("bad size list","Corrupt JPEG"); + } + } + h->size[k] = 0; + + // compute actual symbols (from jpeg spec) + code = 0; + k = 0; + for(j=1; j <= 16; ++j) { + // compute delta to add to code to compute symbol id + h->delta[j] = k - code; + if (h->size[k] == j) { + while (h->size[k] == j) + h->code[k++] = (stbi__uint16) (code++); + if (code-1 >= (1u << j)) return stbi__err("bad code lengths","Corrupt JPEG"); + } + // compute largest code + 1 for this size, preshifted as needed later + h->maxcode[j] = code << (16-j); + code <<= 1; + } + h->maxcode[j] = 0xffffffff; + + // build non-spec acceleration table; 255 is flag for not-accelerated + memset(h->fast, 255, 1 << FAST_BITS); + for (i=0; i < k; ++i) { + int s = h->size[i]; + if (s <= FAST_BITS) { + int c = h->code[i] << (FAST_BITS-s); + int m = 1 << (FAST_BITS-s); + for (j=0; j < m; ++j) { + h->fast[c+j] = (stbi_uc) i; + } + } + } + return 1; +} + +// build a table that decodes both magnitude and value of small ACs in +// one go. +static void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h) +{ + int i; + for (i=0; i < (1 << FAST_BITS); ++i) { + stbi_uc fast = h->fast[i]; + fast_ac[i] = 0; + if (fast < 255) { + int rs = h->values[fast]; + int run = (rs >> 4) & 15; + int magbits = rs & 15; + int len = h->size[fast]; + + if (magbits && len + magbits <= FAST_BITS) { + // magnitude code followed by receive_extend code + int k = ((i << len) & ((1 << FAST_BITS) - 1)) >> (FAST_BITS - magbits); + int m = 1 << (magbits - 1); + if (k < m) k += (~0U << magbits) + 1; + // if the result is small enough, we can fit it in fast_ac table + if (k >= -128 && k <= 127) + fast_ac[i] = (stbi__int16) ((k * 256) + (run * 16) + (len + magbits)); + } + } + } +} + +static void stbi__grow_buffer_unsafe(stbi__jpeg *j) +{ + do { + unsigned int b = j->nomore ? 0 : stbi__get8(j->s); + if (b == 0xff) { + int c = stbi__get8(j->s); + while (c == 0xff) c = stbi__get8(j->s); // consume fill bytes + if (c != 0) { + j->marker = (unsigned char) c; + j->nomore = 1; + return; + } + } + j->code_buffer |= b << (24 - j->code_bits); + j->code_bits += 8; + } while (j->code_bits <= 24); +} + +// (1 << n) - 1 +static const stbi__uint32 stbi__bmask[17]={0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535}; + +// decode a jpeg huffman value from the bitstream +stbi_inline static int stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffman *h) +{ + unsigned int temp; + int c,k; + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + + // look at the top FAST_BITS and determine what symbol ID it is, + // if the code is <= FAST_BITS + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + k = h->fast[c]; + if (k < 255) { + int s = h->size[k]; + if (s > j->code_bits) + return -1; + j->code_buffer <<= s; + j->code_bits -= s; + return h->values[k]; + } + + // naive test is to shift the code_buffer down so k bits are + // valid, then test against maxcode. To speed this up, we've + // preshifted maxcode left so that it has (16-k) 0s at the + // end; in other words, regardless of the number of bits, it + // wants to be compared against something shifted to have 16; + // that way we don't need to shift inside the loop. + temp = j->code_buffer >> 16; + for (k=FAST_BITS+1 ; ; ++k) + if (temp < h->maxcode[k]) + break; + if (k == 17) { + // error! code not found + j->code_bits -= 16; + return -1; + } + + if (k > j->code_bits) + return -1; + + // convert the huffman code to the symbol id + c = ((j->code_buffer >> (32 - k)) & stbi__bmask[k]) + h->delta[k]; + if(c < 0 || c >= 256) // symbol id out of bounds! + return -1; + STBI_ASSERT((((j->code_buffer) >> (32 - h->size[c])) & stbi__bmask[h->size[c]]) == h->code[c]); + + // convert the id to a symbol + j->code_bits -= k; + j->code_buffer <<= k; + return h->values[c]; +} + +// bias[n] = (-1<code_bits < n) stbi__grow_buffer_unsafe(j); + if (j->code_bits < n) return 0; // ran out of bits from stream, return 0s intead of continuing + + sgn = j->code_buffer >> 31; // sign bit always in MSB; 0 if MSB clear (positive), 1 if MSB set (negative) + k = stbi_lrot(j->code_buffer, n); + j->code_buffer = k & ~stbi__bmask[n]; + k &= stbi__bmask[n]; + j->code_bits -= n; + return k + (stbi__jbias[n] & (sgn - 1)); +} + +// get some unsigned bits +stbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n) +{ + unsigned int k; + if (j->code_bits < n) stbi__grow_buffer_unsafe(j); + if (j->code_bits < n) return 0; // ran out of bits from stream, return 0s intead of continuing + k = stbi_lrot(j->code_buffer, n); + j->code_buffer = k & ~stbi__bmask[n]; + k &= stbi__bmask[n]; + j->code_bits -= n; + return k; +} + +stbi_inline static int stbi__jpeg_get_bit(stbi__jpeg *j) +{ + unsigned int k; + if (j->code_bits < 1) stbi__grow_buffer_unsafe(j); + if (j->code_bits < 1) return 0; // ran out of bits from stream, return 0s intead of continuing + k = j->code_buffer; + j->code_buffer <<= 1; + --j->code_bits; + return k & 0x80000000; +} + +// given a value that's at position X in the zigzag stream, +// where does it appear in the 8x8 matrix coded as row-major? +static const stbi_uc stbi__jpeg_dezigzag[64+15] = +{ + 0, 1, 8, 16, 9, 2, 3, 10, + 17, 24, 32, 25, 18, 11, 4, 5, + 12, 19, 26, 33, 40, 48, 41, 34, + 27, 20, 13, 6, 7, 14, 21, 28, + 35, 42, 49, 56, 57, 50, 43, 36, + 29, 22, 15, 23, 30, 37, 44, 51, + 58, 59, 52, 45, 38, 31, 39, 46, + 53, 60, 61, 54, 47, 55, 62, 63, + // let corrupt input sample past end + 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63 +}; + +// decode one 64-entry block-- +static int stbi__jpeg_decode_block(stbi__jpeg *j, short data[64], stbi__huffman *hdc, stbi__huffman *hac, stbi__int16 *fac, int b, stbi__uint16 *dequant) +{ + int diff,dc,k; + int t; + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + t = stbi__jpeg_huff_decode(j, hdc); + if (t < 0 || t > 15) return stbi__err("bad huffman code","Corrupt JPEG"); + + // 0 all the ac values now so we can do it 32-bits at a time + memset(data,0,64*sizeof(data[0])); + + diff = t ? stbi__extend_receive(j, t) : 0; + if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff)) return stbi__err("bad delta","Corrupt JPEG"); + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + if (!stbi__mul2shorts_valid(dc, dequant[0])) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + data[0] = (short) (dc * dequant[0]); + + // decode AC components, see JPEG spec + k = 1; + do { + unsigned int zig; + int c,r,s; + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + r = fac[c]; + if (r) { // fast-AC path + k += (r >> 4) & 15; // run + s = r & 15; // combined length + if (s > j->code_bits) return stbi__err("bad huffman code", "Combined length longer than code bits available"); + j->code_buffer <<= s; + j->code_bits -= s; + // decode into unzigzag'd location + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) ((r >> 8) * dequant[zig]); + } else { + int rs = stbi__jpeg_huff_decode(j, hac); + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (rs != 0xf0) break; // end block + k += 16; + } else { + k += r; + // decode into unzigzag'd location + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) (stbi__extend_receive(j,s) * dequant[zig]); + } + } + } while (k < 64); + return 1; +} + +static int stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, short data[64], stbi__huffman *hdc, int b) +{ + int diff,dc; + int t; + if (j->spec_end != 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + + if (j->succ_high == 0) { + // first scan for DC coefficient, must be first + memset(data,0,64*sizeof(data[0])); // 0 all the ac values now + t = stbi__jpeg_huff_decode(j, hdc); + if (t < 0 || t > 15) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + diff = t ? stbi__extend_receive(j, t) : 0; + + if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff)) return stbi__err("bad delta", "Corrupt JPEG"); + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + if (!stbi__mul2shorts_valid(dc, 1 << j->succ_low)) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + data[0] = (short) (dc * (1 << j->succ_low)); + } else { + // refinement scan for DC coefficient + if (stbi__jpeg_get_bit(j)) + data[0] += (short) (1 << j->succ_low); + } + return 1; +} + +// @OPTIMIZE: store non-zigzagged during the decode passes, +// and only de-zigzag when dequantizing +static int stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, short data[64], stbi__huffman *hac, stbi__int16 *fac) +{ + int k; + if (j->spec_start == 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + + if (j->succ_high == 0) { + int shift = j->succ_low; + + if (j->eob_run) { + --j->eob_run; + return 1; + } + + k = j->spec_start; + do { + unsigned int zig; + int c,r,s; + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + r = fac[c]; + if (r) { // fast-AC path + k += (r >> 4) & 15; // run + s = r & 15; // combined length + if (s > j->code_bits) return stbi__err("bad huffman code", "Combined length longer than code bits available"); + j->code_buffer <<= s; + j->code_bits -= s; + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) ((r >> 8) * (1 << shift)); + } else { + int rs = stbi__jpeg_huff_decode(j, hac); + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (r < 15) { + j->eob_run = (1 << r); + if (r) + j->eob_run += stbi__jpeg_get_bits(j, r); + --j->eob_run; + break; + } + k += 16; + } else { + k += r; + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) (stbi__extend_receive(j,s) * (1 << shift)); + } + } + } while (k <= j->spec_end); + } else { + // refinement scan for these AC coefficients + + short bit = (short) (1 << j->succ_low); + + if (j->eob_run) { + --j->eob_run; + for (k = j->spec_start; k <= j->spec_end; ++k) { + short *p = &data[stbi__jpeg_dezigzag[k]]; + if (*p != 0) + if (stbi__jpeg_get_bit(j)) + if ((*p & bit)==0) { + if (*p > 0) + *p += bit; + else + *p -= bit; + } + } + } else { + k = j->spec_start; + do { + int r,s; + int rs = stbi__jpeg_huff_decode(j, hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (r < 15) { + j->eob_run = (1 << r) - 1; + if (r) + j->eob_run += stbi__jpeg_get_bits(j, r); + r = 64; // force end of block + } else { + // r=15 s=0 should write 16 0s, so we just do + // a run of 15 0s and then write s (which is 0), + // so we don't have to do anything special here + } + } else { + if (s != 1) return stbi__err("bad huffman code", "Corrupt JPEG"); + // sign bit + if (stbi__jpeg_get_bit(j)) + s = bit; + else + s = -bit; + } + + // advance by r + while (k <= j->spec_end) { + short *p = &data[stbi__jpeg_dezigzag[k++]]; + if (*p != 0) { + if (stbi__jpeg_get_bit(j)) + if ((*p & bit)==0) { + if (*p > 0) + *p += bit; + else + *p -= bit; + } + } else { + if (r == 0) { + *p = (short) s; + break; + } + --r; + } + } + } while (k <= j->spec_end); + } + } + return 1; +} + +// take a -128..127 value and stbi__clamp it and convert to 0..255 +stbi_inline static stbi_uc stbi__clamp(int x) +{ + // trick to use a single test to catch both cases + if ((unsigned int) x > 255) { + if (x < 0) return 0; + if (x > 255) return 255; + } + return (stbi_uc) x; +} + +#define stbi__f2f(x) ((int) (((x) * 4096 + 0.5))) +#define stbi__fsh(x) ((x) * 4096) + +// derived from jidctint -- DCT_ISLOW +#define STBI__IDCT_1D(s0,s1,s2,s3,s4,s5,s6,s7) \ + int t0,t1,t2,t3,p1,p2,p3,p4,p5,x0,x1,x2,x3; \ + p2 = s2; \ + p3 = s6; \ + p1 = (p2+p3) * stbi__f2f(0.5411961f); \ + t2 = p1 + p3*stbi__f2f(-1.847759065f); \ + t3 = p1 + p2*stbi__f2f( 0.765366865f); \ + p2 = s0; \ + p3 = s4; \ + t0 = stbi__fsh(p2+p3); \ + t1 = stbi__fsh(p2-p3); \ + x0 = t0+t3; \ + x3 = t0-t3; \ + x1 = t1+t2; \ + x2 = t1-t2; \ + t0 = s7; \ + t1 = s5; \ + t2 = s3; \ + t3 = s1; \ + p3 = t0+t2; \ + p4 = t1+t3; \ + p1 = t0+t3; \ + p2 = t1+t2; \ + p5 = (p3+p4)*stbi__f2f( 1.175875602f); \ + t0 = t0*stbi__f2f( 0.298631336f); \ + t1 = t1*stbi__f2f( 2.053119869f); \ + t2 = t2*stbi__f2f( 3.072711026f); \ + t3 = t3*stbi__f2f( 1.501321110f); \ + p1 = p5 + p1*stbi__f2f(-0.899976223f); \ + p2 = p5 + p2*stbi__f2f(-2.562915447f); \ + p3 = p3*stbi__f2f(-1.961570560f); \ + p4 = p4*stbi__f2f(-0.390180644f); \ + t3 += p1+p4; \ + t2 += p2+p3; \ + t1 += p2+p4; \ + t0 += p1+p3; + +static void stbi__idct_block(stbi_uc *out, int out_stride, short data[64]) +{ + int i,val[64],*v=val; + stbi_uc *o; + short *d = data; + + // columns + for (i=0; i < 8; ++i,++d, ++v) { + // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing + if (d[ 8]==0 && d[16]==0 && d[24]==0 && d[32]==0 + && d[40]==0 && d[48]==0 && d[56]==0) { + // no shortcut 0 seconds + // (1|2|3|4|5|6|7)==0 0 seconds + // all separate -0.047 seconds + // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds + int dcterm = d[0]*4; + v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm; + } else { + STBI__IDCT_1D(d[ 0],d[ 8],d[16],d[24],d[32],d[40],d[48],d[56]) + // constants scaled things up by 1<<12; let's bring them back + // down, but keep 2 extra bits of precision + x0 += 512; x1 += 512; x2 += 512; x3 += 512; + v[ 0] = (x0+t3) >> 10; + v[56] = (x0-t3) >> 10; + v[ 8] = (x1+t2) >> 10; + v[48] = (x1-t2) >> 10; + v[16] = (x2+t1) >> 10; + v[40] = (x2-t1) >> 10; + v[24] = (x3+t0) >> 10; + v[32] = (x3-t0) >> 10; + } + } + + for (i=0, v=val, o=out; i < 8; ++i,v+=8,o+=out_stride) { + // no fast case since the first 1D IDCT spread components out + STBI__IDCT_1D(v[0],v[1],v[2],v[3],v[4],v[5],v[6],v[7]) + // constants scaled things up by 1<<12, plus we had 1<<2 from first + // loop, plus horizontal and vertical each scale by sqrt(8) so together + // we've got an extra 1<<3, so 1<<17 total we need to remove. + // so we want to round that, which means adding 0.5 * 1<<17, + // aka 65536. Also, we'll end up with -128 to 127 that we want + // to encode as 0..255 by adding 128, so we'll add that before the shift + x0 += 65536 + (128<<17); + x1 += 65536 + (128<<17); + x2 += 65536 + (128<<17); + x3 += 65536 + (128<<17); + // tried computing the shifts into temps, or'ing the temps to see + // if any were out of range, but that was slower + o[0] = stbi__clamp((x0+t3) >> 17); + o[7] = stbi__clamp((x0-t3) >> 17); + o[1] = stbi__clamp((x1+t2) >> 17); + o[6] = stbi__clamp((x1-t2) >> 17); + o[2] = stbi__clamp((x2+t1) >> 17); + o[5] = stbi__clamp((x2-t1) >> 17); + o[3] = stbi__clamp((x3+t0) >> 17); + o[4] = stbi__clamp((x3-t0) >> 17); + } +} + +#ifdef STBI_SSE2 +// sse2 integer IDCT. not the fastest possible implementation but it +// produces bit-identical results to the generic C version so it's +// fully "transparent". +static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) +{ + // This is constructed to match our regular (generic) integer IDCT exactly. + __m128i row0, row1, row2, row3, row4, row5, row6, row7; + __m128i tmp; + + // dot product constant: even elems=x, odd elems=y + #define dct_const(x,y) _mm_setr_epi16((x),(y),(x),(y),(x),(y),(x),(y)) + + // out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit) + // out(1) = c1[even]*x + c1[odd]*y + #define dct_rot(out0,out1, x,y,c0,c1) \ + __m128i c0##lo = _mm_unpacklo_epi16((x),(y)); \ + __m128i c0##hi = _mm_unpackhi_epi16((x),(y)); \ + __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \ + __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \ + __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \ + __m128i out1##_h = _mm_madd_epi16(c0##hi, c1) + + // out = in << 12 (in 16-bit, out 32-bit) + #define dct_widen(out, in) \ + __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \ + __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4) + + // wide add + #define dct_wadd(out, a, b) \ + __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \ + __m128i out##_h = _mm_add_epi32(a##_h, b##_h) + + // wide sub + #define dct_wsub(out, a, b) \ + __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \ + __m128i out##_h = _mm_sub_epi32(a##_h, b##_h) + + // butterfly a/b, add bias, then shift by "s" and pack + #define dct_bfly32o(out0, out1, a,b,bias,s) \ + { \ + __m128i abiased_l = _mm_add_epi32(a##_l, bias); \ + __m128i abiased_h = _mm_add_epi32(a##_h, bias); \ + dct_wadd(sum, abiased, b); \ + dct_wsub(dif, abiased, b); \ + out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \ + out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \ + } + + // 8-bit interleave step (for transposes) + #define dct_interleave8(a, b) \ + tmp = a; \ + a = _mm_unpacklo_epi8(a, b); \ + b = _mm_unpackhi_epi8(tmp, b) + + // 16-bit interleave step (for transposes) + #define dct_interleave16(a, b) \ + tmp = a; \ + a = _mm_unpacklo_epi16(a, b); \ + b = _mm_unpackhi_epi16(tmp, b) + + #define dct_pass(bias,shift) \ + { \ + /* even part */ \ + dct_rot(t2e,t3e, row2,row6, rot0_0,rot0_1); \ + __m128i sum04 = _mm_add_epi16(row0, row4); \ + __m128i dif04 = _mm_sub_epi16(row0, row4); \ + dct_widen(t0e, sum04); \ + dct_widen(t1e, dif04); \ + dct_wadd(x0, t0e, t3e); \ + dct_wsub(x3, t0e, t3e); \ + dct_wadd(x1, t1e, t2e); \ + dct_wsub(x2, t1e, t2e); \ + /* odd part */ \ + dct_rot(y0o,y2o, row7,row3, rot2_0,rot2_1); \ + dct_rot(y1o,y3o, row5,row1, rot3_0,rot3_1); \ + __m128i sum17 = _mm_add_epi16(row1, row7); \ + __m128i sum35 = _mm_add_epi16(row3, row5); \ + dct_rot(y4o,y5o, sum17,sum35, rot1_0,rot1_1); \ + dct_wadd(x4, y0o, y4o); \ + dct_wadd(x5, y1o, y5o); \ + dct_wadd(x6, y2o, y5o); \ + dct_wadd(x7, y3o, y4o); \ + dct_bfly32o(row0,row7, x0,x7,bias,shift); \ + dct_bfly32o(row1,row6, x1,x6,bias,shift); \ + dct_bfly32o(row2,row5, x2,x5,bias,shift); \ + dct_bfly32o(row3,row4, x3,x4,bias,shift); \ + } + + __m128i rot0_0 = dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f)); + __m128i rot0_1 = dct_const(stbi__f2f(0.5411961f) + stbi__f2f( 0.765366865f), stbi__f2f(0.5411961f)); + __m128i rot1_0 = dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f), stbi__f2f(1.175875602f)); + __m128i rot1_1 = dct_const(stbi__f2f(1.175875602f), stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f)); + __m128i rot2_0 = dct_const(stbi__f2f(-1.961570560f) + stbi__f2f( 0.298631336f), stbi__f2f(-1.961570560f)); + __m128i rot2_1 = dct_const(stbi__f2f(-1.961570560f), stbi__f2f(-1.961570560f) + stbi__f2f( 3.072711026f)); + __m128i rot3_0 = dct_const(stbi__f2f(-0.390180644f) + stbi__f2f( 2.053119869f), stbi__f2f(-0.390180644f)); + __m128i rot3_1 = dct_const(stbi__f2f(-0.390180644f), stbi__f2f(-0.390180644f) + stbi__f2f( 1.501321110f)); + + // rounding biases in column/row passes, see stbi__idct_block for explanation. + __m128i bias_0 = _mm_set1_epi32(512); + __m128i bias_1 = _mm_set1_epi32(65536 + (128<<17)); + + // load + row0 = _mm_load_si128((const __m128i *) (data + 0*8)); + row1 = _mm_load_si128((const __m128i *) (data + 1*8)); + row2 = _mm_load_si128((const __m128i *) (data + 2*8)); + row3 = _mm_load_si128((const __m128i *) (data + 3*8)); + row4 = _mm_load_si128((const __m128i *) (data + 4*8)); + row5 = _mm_load_si128((const __m128i *) (data + 5*8)); + row6 = _mm_load_si128((const __m128i *) (data + 6*8)); + row7 = _mm_load_si128((const __m128i *) (data + 7*8)); + + // column pass + dct_pass(bias_0, 10); + + { + // 16bit 8x8 transpose pass 1 + dct_interleave16(row0, row4); + dct_interleave16(row1, row5); + dct_interleave16(row2, row6); + dct_interleave16(row3, row7); + + // transpose pass 2 + dct_interleave16(row0, row2); + dct_interleave16(row1, row3); + dct_interleave16(row4, row6); + dct_interleave16(row5, row7); + + // transpose pass 3 + dct_interleave16(row0, row1); + dct_interleave16(row2, row3); + dct_interleave16(row4, row5); + dct_interleave16(row6, row7); + } + + // row pass + dct_pass(bias_1, 17); + + { + // pack + __m128i p0 = _mm_packus_epi16(row0, row1); // a0a1a2a3...a7b0b1b2b3...b7 + __m128i p1 = _mm_packus_epi16(row2, row3); + __m128i p2 = _mm_packus_epi16(row4, row5); + __m128i p3 = _mm_packus_epi16(row6, row7); + + // 8bit 8x8 transpose pass 1 + dct_interleave8(p0, p2); // a0e0a1e1... + dct_interleave8(p1, p3); // c0g0c1g1... + + // transpose pass 2 + dct_interleave8(p0, p1); // a0c0e0g0... + dct_interleave8(p2, p3); // b0d0f0h0... + + // transpose pass 3 + dct_interleave8(p0, p2); // a0b0c0d0... + dct_interleave8(p1, p3); // a4b4c4d4... + + // store + _mm_storel_epi64((__m128i *) out, p0); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p0, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p2); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p2, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p1); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p1, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p3); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p3, 0x4e)); + } + +#undef dct_const +#undef dct_rot +#undef dct_widen +#undef dct_wadd +#undef dct_wsub +#undef dct_bfly32o +#undef dct_interleave8 +#undef dct_interleave16 +#undef dct_pass +} + +#endif // STBI_SSE2 + +#ifdef STBI_NEON + +// NEON integer IDCT. should produce bit-identical +// results to the generic C version. +static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) +{ + int16x8_t row0, row1, row2, row3, row4, row5, row6, row7; + + int16x4_t rot0_0 = vdup_n_s16(stbi__f2f(0.5411961f)); + int16x4_t rot0_1 = vdup_n_s16(stbi__f2f(-1.847759065f)); + int16x4_t rot0_2 = vdup_n_s16(stbi__f2f( 0.765366865f)); + int16x4_t rot1_0 = vdup_n_s16(stbi__f2f( 1.175875602f)); + int16x4_t rot1_1 = vdup_n_s16(stbi__f2f(-0.899976223f)); + int16x4_t rot1_2 = vdup_n_s16(stbi__f2f(-2.562915447f)); + int16x4_t rot2_0 = vdup_n_s16(stbi__f2f(-1.961570560f)); + int16x4_t rot2_1 = vdup_n_s16(stbi__f2f(-0.390180644f)); + int16x4_t rot3_0 = vdup_n_s16(stbi__f2f( 0.298631336f)); + int16x4_t rot3_1 = vdup_n_s16(stbi__f2f( 2.053119869f)); + int16x4_t rot3_2 = vdup_n_s16(stbi__f2f( 3.072711026f)); + int16x4_t rot3_3 = vdup_n_s16(stbi__f2f( 1.501321110f)); + +#define dct_long_mul(out, inq, coeff) \ + int32x4_t out##_l = vmull_s16(vget_low_s16(inq), coeff); \ + int32x4_t out##_h = vmull_s16(vget_high_s16(inq), coeff) + +#define dct_long_mac(out, acc, inq, coeff) \ + int32x4_t out##_l = vmlal_s16(acc##_l, vget_low_s16(inq), coeff); \ + int32x4_t out##_h = vmlal_s16(acc##_h, vget_high_s16(inq), coeff) + +#define dct_widen(out, inq) \ + int32x4_t out##_l = vshll_n_s16(vget_low_s16(inq), 12); \ + int32x4_t out##_h = vshll_n_s16(vget_high_s16(inq), 12) + +// wide add +#define dct_wadd(out, a, b) \ + int32x4_t out##_l = vaddq_s32(a##_l, b##_l); \ + int32x4_t out##_h = vaddq_s32(a##_h, b##_h) + +// wide sub +#define dct_wsub(out, a, b) \ + int32x4_t out##_l = vsubq_s32(a##_l, b##_l); \ + int32x4_t out##_h = vsubq_s32(a##_h, b##_h) + +// butterfly a/b, then shift using "shiftop" by "s" and pack +#define dct_bfly32o(out0,out1, a,b,shiftop,s) \ + { \ + dct_wadd(sum, a, b); \ + dct_wsub(dif, a, b); \ + out0 = vcombine_s16(shiftop(sum_l, s), shiftop(sum_h, s)); \ + out1 = vcombine_s16(shiftop(dif_l, s), shiftop(dif_h, s)); \ + } + +#define dct_pass(shiftop, shift) \ + { \ + /* even part */ \ + int16x8_t sum26 = vaddq_s16(row2, row6); \ + dct_long_mul(p1e, sum26, rot0_0); \ + dct_long_mac(t2e, p1e, row6, rot0_1); \ + dct_long_mac(t3e, p1e, row2, rot0_2); \ + int16x8_t sum04 = vaddq_s16(row0, row4); \ + int16x8_t dif04 = vsubq_s16(row0, row4); \ + dct_widen(t0e, sum04); \ + dct_widen(t1e, dif04); \ + dct_wadd(x0, t0e, t3e); \ + dct_wsub(x3, t0e, t3e); \ + dct_wadd(x1, t1e, t2e); \ + dct_wsub(x2, t1e, t2e); \ + /* odd part */ \ + int16x8_t sum15 = vaddq_s16(row1, row5); \ + int16x8_t sum17 = vaddq_s16(row1, row7); \ + int16x8_t sum35 = vaddq_s16(row3, row5); \ + int16x8_t sum37 = vaddq_s16(row3, row7); \ + int16x8_t sumodd = vaddq_s16(sum17, sum35); \ + dct_long_mul(p5o, sumodd, rot1_0); \ + dct_long_mac(p1o, p5o, sum17, rot1_1); \ + dct_long_mac(p2o, p5o, sum35, rot1_2); \ + dct_long_mul(p3o, sum37, rot2_0); \ + dct_long_mul(p4o, sum15, rot2_1); \ + dct_wadd(sump13o, p1o, p3o); \ + dct_wadd(sump24o, p2o, p4o); \ + dct_wadd(sump23o, p2o, p3o); \ + dct_wadd(sump14o, p1o, p4o); \ + dct_long_mac(x4, sump13o, row7, rot3_0); \ + dct_long_mac(x5, sump24o, row5, rot3_1); \ + dct_long_mac(x6, sump23o, row3, rot3_2); \ + dct_long_mac(x7, sump14o, row1, rot3_3); \ + dct_bfly32o(row0,row7, x0,x7,shiftop,shift); \ + dct_bfly32o(row1,row6, x1,x6,shiftop,shift); \ + dct_bfly32o(row2,row5, x2,x5,shiftop,shift); \ + dct_bfly32o(row3,row4, x3,x4,shiftop,shift); \ + } + + // load + row0 = vld1q_s16(data + 0*8); + row1 = vld1q_s16(data + 1*8); + row2 = vld1q_s16(data + 2*8); + row3 = vld1q_s16(data + 3*8); + row4 = vld1q_s16(data + 4*8); + row5 = vld1q_s16(data + 5*8); + row6 = vld1q_s16(data + 6*8); + row7 = vld1q_s16(data + 7*8); + + // add DC bias + row0 = vaddq_s16(row0, vsetq_lane_s16(1024, vdupq_n_s16(0), 0)); + + // column pass + dct_pass(vrshrn_n_s32, 10); + + // 16bit 8x8 transpose + { +// these three map to a single VTRN.16, VTRN.32, and VSWP, respectively. +// whether compilers actually get this is another story, sadly. +#define dct_trn16(x, y) { int16x8x2_t t = vtrnq_s16(x, y); x = t.val[0]; y = t.val[1]; } +#define dct_trn32(x, y) { int32x4x2_t t = vtrnq_s32(vreinterpretq_s32_s16(x), vreinterpretq_s32_s16(y)); x = vreinterpretq_s16_s32(t.val[0]); y = vreinterpretq_s16_s32(t.val[1]); } +#define dct_trn64(x, y) { int16x8_t x0 = x; int16x8_t y0 = y; x = vcombine_s16(vget_low_s16(x0), vget_low_s16(y0)); y = vcombine_s16(vget_high_s16(x0), vget_high_s16(y0)); } + + // pass 1 + dct_trn16(row0, row1); // a0b0a2b2a4b4a6b6 + dct_trn16(row2, row3); + dct_trn16(row4, row5); + dct_trn16(row6, row7); + + // pass 2 + dct_trn32(row0, row2); // a0b0c0d0a4b4c4d4 + dct_trn32(row1, row3); + dct_trn32(row4, row6); + dct_trn32(row5, row7); + + // pass 3 + dct_trn64(row0, row4); // a0b0c0d0e0f0g0h0 + dct_trn64(row1, row5); + dct_trn64(row2, row6); + dct_trn64(row3, row7); + +#undef dct_trn16 +#undef dct_trn32 +#undef dct_trn64 + } + + // row pass + // vrshrn_n_s32 only supports shifts up to 16, we need + // 17. so do a non-rounding shift of 16 first then follow + // up with a rounding shift by 1. + dct_pass(vshrn_n_s32, 16); + + { + // pack and round + uint8x8_t p0 = vqrshrun_n_s16(row0, 1); + uint8x8_t p1 = vqrshrun_n_s16(row1, 1); + uint8x8_t p2 = vqrshrun_n_s16(row2, 1); + uint8x8_t p3 = vqrshrun_n_s16(row3, 1); + uint8x8_t p4 = vqrshrun_n_s16(row4, 1); + uint8x8_t p5 = vqrshrun_n_s16(row5, 1); + uint8x8_t p6 = vqrshrun_n_s16(row6, 1); + uint8x8_t p7 = vqrshrun_n_s16(row7, 1); + + // again, these can translate into one instruction, but often don't. +#define dct_trn8_8(x, y) { uint8x8x2_t t = vtrn_u8(x, y); x = t.val[0]; y = t.val[1]; } +#define dct_trn8_16(x, y) { uint16x4x2_t t = vtrn_u16(vreinterpret_u16_u8(x), vreinterpret_u16_u8(y)); x = vreinterpret_u8_u16(t.val[0]); y = vreinterpret_u8_u16(t.val[1]); } +#define dct_trn8_32(x, y) { uint32x2x2_t t = vtrn_u32(vreinterpret_u32_u8(x), vreinterpret_u32_u8(y)); x = vreinterpret_u8_u32(t.val[0]); y = vreinterpret_u8_u32(t.val[1]); } + + // sadly can't use interleaved stores here since we only write + // 8 bytes to each scan line! + + // 8x8 8-bit transpose pass 1 + dct_trn8_8(p0, p1); + dct_trn8_8(p2, p3); + dct_trn8_8(p4, p5); + dct_trn8_8(p6, p7); + + // pass 2 + dct_trn8_16(p0, p2); + dct_trn8_16(p1, p3); + dct_trn8_16(p4, p6); + dct_trn8_16(p5, p7); + + // pass 3 + dct_trn8_32(p0, p4); + dct_trn8_32(p1, p5); + dct_trn8_32(p2, p6); + dct_trn8_32(p3, p7); + + // store + vst1_u8(out, p0); out += out_stride; + vst1_u8(out, p1); out += out_stride; + vst1_u8(out, p2); out += out_stride; + vst1_u8(out, p3); out += out_stride; + vst1_u8(out, p4); out += out_stride; + vst1_u8(out, p5); out += out_stride; + vst1_u8(out, p6); out += out_stride; + vst1_u8(out, p7); + +#undef dct_trn8_8 +#undef dct_trn8_16 +#undef dct_trn8_32 + } + +#undef dct_long_mul +#undef dct_long_mac +#undef dct_widen +#undef dct_wadd +#undef dct_wsub +#undef dct_bfly32o +#undef dct_pass +} + +#endif // STBI_NEON + +#define STBI__MARKER_none 0xff +// if there's a pending marker from the entropy stream, return that +// otherwise, fetch from the stream and get a marker. if there's no +// marker, return 0xff, which is never a valid marker value +static stbi_uc stbi__get_marker(stbi__jpeg *j) +{ + stbi_uc x; + if (j->marker != STBI__MARKER_none) { x = j->marker; j->marker = STBI__MARKER_none; return x; } + x = stbi__get8(j->s); + if (x != 0xff) return STBI__MARKER_none; + while (x == 0xff) + x = stbi__get8(j->s); // consume repeated 0xff fill bytes + return x; +} + +// in each scan, we'll have scan_n components, and the order +// of the components is specified by order[] +#define STBI__RESTART(x) ((x) >= 0xd0 && (x) <= 0xd7) + +// after a restart interval, stbi__jpeg_reset the entropy decoder and +// the dc prediction +static void stbi__jpeg_reset(stbi__jpeg *j) +{ + j->code_bits = 0; + j->code_buffer = 0; + j->nomore = 0; + j->img_comp[0].dc_pred = j->img_comp[1].dc_pred = j->img_comp[2].dc_pred = j->img_comp[3].dc_pred = 0; + j->marker = STBI__MARKER_none; + j->todo = j->restart_interval ? j->restart_interval : 0x7fffffff; + j->eob_run = 0; + // no more than 1<<31 MCUs if no restart_interal? that's plenty safe, + // since we don't even allow 1<<30 pixels +} + +static int stbi__parse_entropy_coded_data(stbi__jpeg *z) +{ + stbi__jpeg_reset(z); + if (!z->progressive) { + if (z->scan_n == 1) { + int i,j; + STBI_SIMD_ALIGN(short, data[64]); + int n = z->order[0]; + // non-interleaved data, we just need to process one block at a time, + // in trivial scanline order + // number of blocks to do just depends on how many actual "pixels" this + // component has, independent of interleaved MCU blocking and such + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0; + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); + // every data block is an MCU, so countdown the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + // if it's NOT a restart, then just bail, so we get corrupt data + // rather than no data + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } else { // interleaved + int i,j,k,x,y; + STBI_SIMD_ALIGN(short, data[64]); + for (j=0; j < z->img_mcu_y; ++j) { + for (i=0; i < z->img_mcu_x; ++i) { + // scan an interleaved mcu... process scan_n components in order + for (k=0; k < z->scan_n; ++k) { + int n = z->order[k]; + // scan out an mcu's worth of this component; that's just determined + // by the basic H and V specified for the component + for (y=0; y < z->img_comp[n].v; ++y) { + for (x=0; x < z->img_comp[n].h; ++x) { + int x2 = (i*z->img_comp[n].h + x)*8; + int y2 = (j*z->img_comp[n].v + y)*8; + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0; + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*y2+x2, z->img_comp[n].w2, data); + } + } + } + // after all interleaved components, that's an interleaved MCU, + // so now count down the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } + } else { + if (z->scan_n == 1) { + int i,j; + int n = z->order[0]; + // non-interleaved data, we just need to process one block at a time, + // in trivial scanline order + // number of blocks to do just depends on how many actual "pixels" this + // component has, independent of interleaved MCU blocking and such + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); + if (z->spec_start == 0) { + if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) + return 0; + } else { + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block_prog_ac(z, data, &z->huff_ac[ha], z->fast_ac[ha])) + return 0; + } + // every data block is an MCU, so countdown the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } else { // interleaved + int i,j,k,x,y; + for (j=0; j < z->img_mcu_y; ++j) { + for (i=0; i < z->img_mcu_x; ++i) { + // scan an interleaved mcu... process scan_n components in order + for (k=0; k < z->scan_n; ++k) { + int n = z->order[k]; + // scan out an mcu's worth of this component; that's just determined + // by the basic H and V specified for the component + for (y=0; y < z->img_comp[n].v; ++y) { + for (x=0; x < z->img_comp[n].h; ++x) { + int x2 = (i*z->img_comp[n].h + x); + int y2 = (j*z->img_comp[n].v + y); + short *data = z->img_comp[n].coeff + 64 * (x2 + y2 * z->img_comp[n].coeff_w); + if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) + return 0; + } + } + } + // after all interleaved components, that's an interleaved MCU, + // so now count down the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } + } +} + +static void stbi__jpeg_dequantize(short *data, stbi__uint16 *dequant) +{ + int i; + for (i=0; i < 64; ++i) + data[i] *= dequant[i]; +} + +static void stbi__jpeg_finish(stbi__jpeg *z) +{ + if (z->progressive) { + // dequantize and idct the data + int i,j,n; + for (n=0; n < z->s->img_n; ++n) { + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); + stbi__jpeg_dequantize(data, z->dequant[z->img_comp[n].tq]); + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); + } + } + } + } +} + +static int stbi__process_marker(stbi__jpeg *z, int m) +{ + int L; + switch (m) { + case STBI__MARKER_none: // no marker found + return stbi__err("expected marker","Corrupt JPEG"); + + case 0xDD: // DRI - specify restart interval + if (stbi__get16be(z->s) != 4) return stbi__err("bad DRI len","Corrupt JPEG"); + z->restart_interval = stbi__get16be(z->s); + return 1; + + case 0xDB: // DQT - define quantization table + L = stbi__get16be(z->s)-2; + while (L > 0) { + int q = stbi__get8(z->s); + int p = q >> 4, sixteen = (p != 0); + int t = q & 15,i; + if (p != 0 && p != 1) return stbi__err("bad DQT type","Corrupt JPEG"); + if (t > 3) return stbi__err("bad DQT table","Corrupt JPEG"); + + for (i=0; i < 64; ++i) + z->dequant[t][stbi__jpeg_dezigzag[i]] = (stbi__uint16)(sixteen ? stbi__get16be(z->s) : stbi__get8(z->s)); + L -= (sixteen ? 129 : 65); + } + return L==0; + + case 0xC4: // DHT - define huffman table + L = stbi__get16be(z->s)-2; + while (L > 0) { + stbi_uc *v; + int sizes[16],i,n=0; + int q = stbi__get8(z->s); + int tc = q >> 4; + int th = q & 15; + if (tc > 1 || th > 3) return stbi__err("bad DHT header","Corrupt JPEG"); + for (i=0; i < 16; ++i) { + sizes[i] = stbi__get8(z->s); + n += sizes[i]; + } + if(n > 256) return stbi__err("bad DHT header","Corrupt JPEG"); // Loop over i < n would write past end of values! + L -= 17; + if (tc == 0) { + if (!stbi__build_huffman(z->huff_dc+th, sizes)) return 0; + v = z->huff_dc[th].values; + } else { + if (!stbi__build_huffman(z->huff_ac+th, sizes)) return 0; + v = z->huff_ac[th].values; + } + for (i=0; i < n; ++i) + v[i] = stbi__get8(z->s); + if (tc != 0) + stbi__build_fast_ac(z->fast_ac[th], z->huff_ac + th); + L -= n; + } + return L==0; + } + + // check for comment block or APP blocks + if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) { + L = stbi__get16be(z->s); + if (L < 2) { + if (m == 0xFE) + return stbi__err("bad COM len","Corrupt JPEG"); + else + return stbi__err("bad APP len","Corrupt JPEG"); + } + L -= 2; + + if (m == 0xE0 && L >= 5) { // JFIF APP0 segment + static const unsigned char tag[5] = {'J','F','I','F','\0'}; + int ok = 1; + int i; + for (i=0; i < 5; ++i) + if (stbi__get8(z->s) != tag[i]) + ok = 0; + L -= 5; + if (ok) + z->jfif = 1; + } else if (m == 0xEE && L >= 12) { // Adobe APP14 segment + static const unsigned char tag[6] = {'A','d','o','b','e','\0'}; + int ok = 1; + int i; + for (i=0; i < 6; ++i) + if (stbi__get8(z->s) != tag[i]) + ok = 0; + L -= 6; + if (ok) { + stbi__get8(z->s); // version + stbi__get16be(z->s); // flags0 + stbi__get16be(z->s); // flags1 + z->app14_color_transform = stbi__get8(z->s); // color transform + L -= 6; + } + } + + stbi__skip(z->s, L); + return 1; + } + + return stbi__err("unknown marker","Corrupt JPEG"); +} + +// after we see SOS +static int stbi__process_scan_header(stbi__jpeg *z) +{ + int i; + int Ls = stbi__get16be(z->s); + z->scan_n = stbi__get8(z->s); + if (z->scan_n < 1 || z->scan_n > 4 || z->scan_n > (int) z->s->img_n) return stbi__err("bad SOS component count","Corrupt JPEG"); + if (Ls != 6+2*z->scan_n) return stbi__err("bad SOS len","Corrupt JPEG"); + for (i=0; i < z->scan_n; ++i) { + int id = stbi__get8(z->s), which; + int q = stbi__get8(z->s); + for (which = 0; which < z->s->img_n; ++which) + if (z->img_comp[which].id == id) + break; + if (which == z->s->img_n) return 0; // no match + z->img_comp[which].hd = q >> 4; if (z->img_comp[which].hd > 3) return stbi__err("bad DC huff","Corrupt JPEG"); + z->img_comp[which].ha = q & 15; if (z->img_comp[which].ha > 3) return stbi__err("bad AC huff","Corrupt JPEG"); + z->order[i] = which; + } + + { + int aa; + z->spec_start = stbi__get8(z->s); + z->spec_end = stbi__get8(z->s); // should be 63, but might be 0 + aa = stbi__get8(z->s); + z->succ_high = (aa >> 4); + z->succ_low = (aa & 15); + if (z->progressive) { + if (z->spec_start > 63 || z->spec_end > 63 || z->spec_start > z->spec_end || z->succ_high > 13 || z->succ_low > 13) + return stbi__err("bad SOS", "Corrupt JPEG"); + } else { + if (z->spec_start != 0) return stbi__err("bad SOS","Corrupt JPEG"); + if (z->succ_high != 0 || z->succ_low != 0) return stbi__err("bad SOS","Corrupt JPEG"); + z->spec_end = 63; + } + } + + return 1; +} + +static int stbi__free_jpeg_components(stbi__jpeg *z, int ncomp, int why) +{ + int i; + for (i=0; i < ncomp; ++i) { + if (z->img_comp[i].raw_data) { + STBI_FREE(z->img_comp[i].raw_data); + z->img_comp[i].raw_data = NULL; + z->img_comp[i].data = NULL; + } + if (z->img_comp[i].raw_coeff) { + STBI_FREE(z->img_comp[i].raw_coeff); + z->img_comp[i].raw_coeff = 0; + z->img_comp[i].coeff = 0; + } + if (z->img_comp[i].linebuf) { + STBI_FREE(z->img_comp[i].linebuf); + z->img_comp[i].linebuf = NULL; + } + } + return why; +} + +static int stbi__process_frame_header(stbi__jpeg *z, int scan) +{ + stbi__context *s = z->s; + int Lf,p,i,q, h_max=1,v_max=1,c; + Lf = stbi__get16be(s); if (Lf < 11) return stbi__err("bad SOF len","Corrupt JPEG"); // JPEG + p = stbi__get8(s); if (p != 8) return stbi__err("only 8-bit","JPEG format not supported: 8-bit only"); // JPEG baseline + s->img_y = stbi__get16be(s); if (s->img_y == 0) return stbi__err("no header height", "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG + s->img_x = stbi__get16be(s); if (s->img_x == 0) return stbi__err("0 width","Corrupt JPEG"); // JPEG requires + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + c = stbi__get8(s); + if (c != 3 && c != 1 && c != 4) return stbi__err("bad component count","Corrupt JPEG"); + s->img_n = c; + for (i=0; i < c; ++i) { + z->img_comp[i].data = NULL; + z->img_comp[i].linebuf = NULL; + } + + if (Lf != 8+3*s->img_n) return stbi__err("bad SOF len","Corrupt JPEG"); + + z->rgb = 0; + for (i=0; i < s->img_n; ++i) { + static const unsigned char rgb[3] = { 'R', 'G', 'B' }; + z->img_comp[i].id = stbi__get8(s); + if (s->img_n == 3 && z->img_comp[i].id == rgb[i]) + ++z->rgb; + q = stbi__get8(s); + z->img_comp[i].h = (q >> 4); if (!z->img_comp[i].h || z->img_comp[i].h > 4) return stbi__err("bad H","Corrupt JPEG"); + z->img_comp[i].v = q & 15; if (!z->img_comp[i].v || z->img_comp[i].v > 4) return stbi__err("bad V","Corrupt JPEG"); + z->img_comp[i].tq = stbi__get8(s); if (z->img_comp[i].tq > 3) return stbi__err("bad TQ","Corrupt JPEG"); + } + + if (scan != STBI__SCAN_load) return 1; + + if (!stbi__mad3sizes_valid(s->img_x, s->img_y, s->img_n, 0)) return stbi__err("too large", "Image too large to decode"); + + for (i=0; i < s->img_n; ++i) { + if (z->img_comp[i].h > h_max) h_max = z->img_comp[i].h; + if (z->img_comp[i].v > v_max) v_max = z->img_comp[i].v; + } + + // check that plane subsampling factors are integer ratios; our resamplers can't deal with fractional ratios + // and I've never seen a non-corrupted JPEG file actually use them + for (i=0; i < s->img_n; ++i) { + if (h_max % z->img_comp[i].h != 0) return stbi__err("bad H","Corrupt JPEG"); + if (v_max % z->img_comp[i].v != 0) return stbi__err("bad V","Corrupt JPEG"); + } + + // compute interleaved mcu info + z->img_h_max = h_max; + z->img_v_max = v_max; + z->img_mcu_w = h_max * 8; + z->img_mcu_h = v_max * 8; + // these sizes can't be more than 17 bits + z->img_mcu_x = (s->img_x + z->img_mcu_w-1) / z->img_mcu_w; + z->img_mcu_y = (s->img_y + z->img_mcu_h-1) / z->img_mcu_h; + + for (i=0; i < s->img_n; ++i) { + // number of effective pixels (e.g. for non-interleaved MCU) + z->img_comp[i].x = (s->img_x * z->img_comp[i].h + h_max-1) / h_max; + z->img_comp[i].y = (s->img_y * z->img_comp[i].v + v_max-1) / v_max; + // to simplify generation, we'll allocate enough memory to decode + // the bogus oversized data from using interleaved MCUs and their + // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't + // discard the extra data until colorspace conversion + // + // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier) + // so these muls can't overflow with 32-bit ints (which we require) + z->img_comp[i].w2 = z->img_mcu_x * z->img_comp[i].h * 8; + z->img_comp[i].h2 = z->img_mcu_y * z->img_comp[i].v * 8; + z->img_comp[i].coeff = 0; + z->img_comp[i].raw_coeff = 0; + z->img_comp[i].linebuf = NULL; + z->img_comp[i].raw_data = stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15); + if (z->img_comp[i].raw_data == NULL) + return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); + // align blocks for idct using mmx/sse + z->img_comp[i].data = (stbi_uc*) (((size_t) z->img_comp[i].raw_data + 15) & ~15); + if (z->progressive) { + // w2, h2 are multiples of 8 (see above) + z->img_comp[i].coeff_w = z->img_comp[i].w2 / 8; + z->img_comp[i].coeff_h = z->img_comp[i].h2 / 8; + z->img_comp[i].raw_coeff = stbi__malloc_mad3(z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15); + if (z->img_comp[i].raw_coeff == NULL) + return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); + z->img_comp[i].coeff = (short*) (((size_t) z->img_comp[i].raw_coeff + 15) & ~15); + } + } + + return 1; +} + +// use comparisons since in some cases we handle more than one case (e.g. SOF) +#define stbi__DNL(x) ((x) == 0xdc) +#define stbi__SOI(x) ((x) == 0xd8) +#define stbi__EOI(x) ((x) == 0xd9) +#define stbi__SOF(x) ((x) == 0xc0 || (x) == 0xc1 || (x) == 0xc2) +#define stbi__SOS(x) ((x) == 0xda) + +#define stbi__SOF_progressive(x) ((x) == 0xc2) + +static int stbi__decode_jpeg_header(stbi__jpeg *z, int scan) +{ + int m; + z->jfif = 0; + z->app14_color_transform = -1; // valid values are 0,1,2 + z->marker = STBI__MARKER_none; // initialize cached marker to empty + m = stbi__get_marker(z); + if (!stbi__SOI(m)) return stbi__err("no SOI","Corrupt JPEG"); + if (scan == STBI__SCAN_type) return 1; + m = stbi__get_marker(z); + while (!stbi__SOF(m)) { + if (!stbi__process_marker(z,m)) return 0; + m = stbi__get_marker(z); + while (m == STBI__MARKER_none) { + // some files have extra padding after their blocks, so ok, we'll scan + if (stbi__at_eof(z->s)) return stbi__err("no SOF", "Corrupt JPEG"); + m = stbi__get_marker(z); + } + } + z->progressive = stbi__SOF_progressive(m); + if (!stbi__process_frame_header(z, scan)) return 0; + return 1; +} + +static int stbi__skip_jpeg_junk_at_end(stbi__jpeg *j) +{ + // some JPEGs have junk at end, skip over it but if we find what looks + // like a valid marker, resume there + while (!stbi__at_eof(j->s)) { + int x = stbi__get8(j->s); + while (x == 255) { // might be a marker + if (stbi__at_eof(j->s)) return STBI__MARKER_none; + x = stbi__get8(j->s); + if (x != 0x00 && x != 0xff) { + // not a stuffed zero or lead-in to another marker, looks + // like an actual marker, return it + return x; + } + // stuffed zero has x=0 now which ends the loop, meaning we go + // back to regular scan loop. + // repeated 0xff keeps trying to read the next byte of the marker. + } + } + return STBI__MARKER_none; +} + +// decode image to YCbCr format +static int stbi__decode_jpeg_image(stbi__jpeg *j) +{ + int m; + for (m = 0; m < 4; m++) { + j->img_comp[m].raw_data = NULL; + j->img_comp[m].raw_coeff = NULL; + } + j->restart_interval = 0; + if (!stbi__decode_jpeg_header(j, STBI__SCAN_load)) return 0; + m = stbi__get_marker(j); + while (!stbi__EOI(m)) { + if (stbi__SOS(m)) { + if (!stbi__process_scan_header(j)) return 0; + if (!stbi__parse_entropy_coded_data(j)) return 0; + if (j->marker == STBI__MARKER_none ) { + j->marker = stbi__skip_jpeg_junk_at_end(j); + // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0 + } + m = stbi__get_marker(j); + if (STBI__RESTART(m)) + m = stbi__get_marker(j); + } else if (stbi__DNL(m)) { + int Ld = stbi__get16be(j->s); + stbi__uint32 NL = stbi__get16be(j->s); + if (Ld != 4) return stbi__err("bad DNL len", "Corrupt JPEG"); + if (NL != j->s->img_y) return stbi__err("bad DNL height", "Corrupt JPEG"); + m = stbi__get_marker(j); + } else { + if (!stbi__process_marker(j, m)) return 1; + m = stbi__get_marker(j); + } + } + if (j->progressive) + stbi__jpeg_finish(j); + return 1; +} + +// static jfif-centered resampling (across block boundaries) + +typedef stbi_uc *(*resample_row_func)(stbi_uc *out, stbi_uc *in0, stbi_uc *in1, + int w, int hs); + +#define stbi__div4(x) ((stbi_uc) ((x) >> 2)) + +static stbi_uc *resample_row_1(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + STBI_NOTUSED(out); + STBI_NOTUSED(in_far); + STBI_NOTUSED(w); + STBI_NOTUSED(hs); + return in_near; +} + +static stbi_uc* stbi__resample_row_v_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate two samples vertically for every one in input + int i; + STBI_NOTUSED(hs); + for (i=0; i < w; ++i) + out[i] = stbi__div4(3*in_near[i] + in_far[i] + 2); + return out; +} + +static stbi_uc* stbi__resample_row_h_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate two samples horizontally for every one in input + int i; + stbi_uc *input = in_near; + + if (w == 1) { + // if only one sample, can't do any interpolation + out[0] = out[1] = input[0]; + return out; + } + + out[0] = input[0]; + out[1] = stbi__div4(input[0]*3 + input[1] + 2); + for (i=1; i < w-1; ++i) { + int n = 3*input[i]+2; + out[i*2+0] = stbi__div4(n+input[i-1]); + out[i*2+1] = stbi__div4(n+input[i+1]); + } + out[i*2+0] = stbi__div4(input[w-2]*3 + input[w-1] + 2); + out[i*2+1] = input[w-1]; + + STBI_NOTUSED(in_far); + STBI_NOTUSED(hs); + + return out; +} + +#define stbi__div16(x) ((stbi_uc) ((x) >> 4)) + +static stbi_uc *stbi__resample_row_hv_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate 2x2 samples for every one in input + int i,t0,t1; + if (w == 1) { + out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); + return out; + } + + t1 = 3*in_near[0] + in_far[0]; + out[0] = stbi__div4(t1+2); + for (i=1; i < w; ++i) { + t0 = t1; + t1 = 3*in_near[i]+in_far[i]; + out[i*2-1] = stbi__div16(3*t0 + t1 + 8); + out[i*2 ] = stbi__div16(3*t1 + t0 + 8); + } + out[w*2-1] = stbi__div4(t1+2); + + STBI_NOTUSED(hs); + + return out; +} + +#if defined(STBI_SSE2) || defined(STBI_NEON) +static stbi_uc *stbi__resample_row_hv_2_simd(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate 2x2 samples for every one in input + int i=0,t0,t1; + + if (w == 1) { + out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); + return out; + } + + t1 = 3*in_near[0] + in_far[0]; + // process groups of 8 pixels for as long as we can. + // note we can't handle the last pixel in a row in this loop + // because we need to handle the filter boundary conditions. + for (; i < ((w-1) & ~7); i += 8) { +#if defined(STBI_SSE2) + // load and perform the vertical filtering pass + // this uses 3*x + y = 4*x + (y - x) + __m128i zero = _mm_setzero_si128(); + __m128i farb = _mm_loadl_epi64((__m128i *) (in_far + i)); + __m128i nearb = _mm_loadl_epi64((__m128i *) (in_near + i)); + __m128i farw = _mm_unpacklo_epi8(farb, zero); + __m128i nearw = _mm_unpacklo_epi8(nearb, zero); + __m128i diff = _mm_sub_epi16(farw, nearw); + __m128i nears = _mm_slli_epi16(nearw, 2); + __m128i curr = _mm_add_epi16(nears, diff); // current row + + // horizontal filter works the same based on shifted vers of current + // row. "prev" is current row shifted right by 1 pixel; we need to + // insert the previous pixel value (from t1). + // "next" is current row shifted left by 1 pixel, with first pixel + // of next block of 8 pixels added in. + __m128i prv0 = _mm_slli_si128(curr, 2); + __m128i nxt0 = _mm_srli_si128(curr, 2); + __m128i prev = _mm_insert_epi16(prv0, t1, 0); + __m128i next = _mm_insert_epi16(nxt0, 3*in_near[i+8] + in_far[i+8], 7); + + // horizontal filter, polyphase implementation since it's convenient: + // even pixels = 3*cur + prev = cur*4 + (prev - cur) + // odd pixels = 3*cur + next = cur*4 + (next - cur) + // note the shared term. + __m128i bias = _mm_set1_epi16(8); + __m128i curs = _mm_slli_epi16(curr, 2); + __m128i prvd = _mm_sub_epi16(prev, curr); + __m128i nxtd = _mm_sub_epi16(next, curr); + __m128i curb = _mm_add_epi16(curs, bias); + __m128i even = _mm_add_epi16(prvd, curb); + __m128i odd = _mm_add_epi16(nxtd, curb); + + // interleave even and odd pixels, then undo scaling. + __m128i int0 = _mm_unpacklo_epi16(even, odd); + __m128i int1 = _mm_unpackhi_epi16(even, odd); + __m128i de0 = _mm_srli_epi16(int0, 4); + __m128i de1 = _mm_srli_epi16(int1, 4); + + // pack and write output + __m128i outv = _mm_packus_epi16(de0, de1); + _mm_storeu_si128((__m128i *) (out + i*2), outv); +#elif defined(STBI_NEON) + // load and perform the vertical filtering pass + // this uses 3*x + y = 4*x + (y - x) + uint8x8_t farb = vld1_u8(in_far + i); + uint8x8_t nearb = vld1_u8(in_near + i); + int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb)); + int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2)); + int16x8_t curr = vaddq_s16(nears, diff); // current row + + // horizontal filter works the same based on shifted vers of current + // row. "prev" is current row shifted right by 1 pixel; we need to + // insert the previous pixel value (from t1). + // "next" is current row shifted left by 1 pixel, with first pixel + // of next block of 8 pixels added in. + int16x8_t prv0 = vextq_s16(curr, curr, 7); + int16x8_t nxt0 = vextq_s16(curr, curr, 1); + int16x8_t prev = vsetq_lane_s16(t1, prv0, 0); + int16x8_t next = vsetq_lane_s16(3*in_near[i+8] + in_far[i+8], nxt0, 7); + + // horizontal filter, polyphase implementation since it's convenient: + // even pixels = 3*cur + prev = cur*4 + (prev - cur) + // odd pixels = 3*cur + next = cur*4 + (next - cur) + // note the shared term. + int16x8_t curs = vshlq_n_s16(curr, 2); + int16x8_t prvd = vsubq_s16(prev, curr); + int16x8_t nxtd = vsubq_s16(next, curr); + int16x8_t even = vaddq_s16(curs, prvd); + int16x8_t odd = vaddq_s16(curs, nxtd); + + // undo scaling and round, then store with even/odd phases interleaved + uint8x8x2_t o; + o.val[0] = vqrshrun_n_s16(even, 4); + o.val[1] = vqrshrun_n_s16(odd, 4); + vst2_u8(out + i*2, o); +#endif + + // "previous" value for next iter + t1 = 3*in_near[i+7] + in_far[i+7]; + } + + t0 = t1; + t1 = 3*in_near[i] + in_far[i]; + out[i*2] = stbi__div16(3*t1 + t0 + 8); + + for (++i; i < w; ++i) { + t0 = t1; + t1 = 3*in_near[i]+in_far[i]; + out[i*2-1] = stbi__div16(3*t0 + t1 + 8); + out[i*2 ] = stbi__div16(3*t1 + t0 + 8); + } + out[w*2-1] = stbi__div4(t1+2); + + STBI_NOTUSED(hs); + + return out; +} +#endif + +static stbi_uc *stbi__resample_row_generic(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // resample with nearest-neighbor + int i,j; + STBI_NOTUSED(in_far); + for (i=0; i < w; ++i) + for (j=0; j < hs; ++j) + out[i*hs+j] = in_near[i]; + return out; +} + +// this is a reduced-precision calculation of YCbCr-to-RGB introduced +// to make sure the code produces the same results in both SIMD and scalar +#define stbi__float2fixed(x) (((int) ((x) * 4096.0f + 0.5f)) << 8) +static void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step) +{ + int i; + for (i=0; i < count; ++i) { + int y_fixed = (y[i] << 20) + (1<<19); // rounding + int r,g,b; + int cr = pcr[i] - 128; + int cb = pcb[i] - 128; + r = y_fixed + cr* stbi__float2fixed(1.40200f); + g = y_fixed + (cr*-stbi__float2fixed(0.71414f)) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); + b = y_fixed + cb* stbi__float2fixed(1.77200f); + r >>= 20; + g >>= 20; + b >>= 20; + if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; } + if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; } + if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; } + out[0] = (stbi_uc)r; + out[1] = (stbi_uc)g; + out[2] = (stbi_uc)b; + out[3] = 255; + out += step; + } +} + +#if defined(STBI_SSE2) || defined(STBI_NEON) +static void stbi__YCbCr_to_RGB_simd(stbi_uc *out, stbi_uc const *y, stbi_uc const *pcb, stbi_uc const *pcr, int count, int step) +{ + int i = 0; + +#ifdef STBI_SSE2 + // step == 3 is pretty ugly on the final interleave, and i'm not convinced + // it's useful in practice (you wouldn't use it for textures, for example). + // so just accelerate step == 4 case. + if (step == 4) { + // this is a fairly straightforward implementation and not super-optimized. + __m128i signflip = _mm_set1_epi8(-0x80); + __m128i cr_const0 = _mm_set1_epi16( (short) ( 1.40200f*4096.0f+0.5f)); + __m128i cr_const1 = _mm_set1_epi16( - (short) ( 0.71414f*4096.0f+0.5f)); + __m128i cb_const0 = _mm_set1_epi16( - (short) ( 0.34414f*4096.0f+0.5f)); + __m128i cb_const1 = _mm_set1_epi16( (short) ( 1.77200f*4096.0f+0.5f)); + __m128i y_bias = _mm_set1_epi8((char) (unsigned char) 128); + __m128i xw = _mm_set1_epi16(255); // alpha channel + + for (; i+7 < count; i += 8) { + // load + __m128i y_bytes = _mm_loadl_epi64((__m128i *) (y+i)); + __m128i cr_bytes = _mm_loadl_epi64((__m128i *) (pcr+i)); + __m128i cb_bytes = _mm_loadl_epi64((__m128i *) (pcb+i)); + __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); // -128 + __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); // -128 + + // unpack to short (and left-shift cr, cb by 8) + __m128i yw = _mm_unpacklo_epi8(y_bias, y_bytes); + __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased); + __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased); + + // color transform + __m128i yws = _mm_srli_epi16(yw, 4); + __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw); + __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw); + __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1); + __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1); + __m128i rws = _mm_add_epi16(cr0, yws); + __m128i gwt = _mm_add_epi16(cb0, yws); + __m128i bws = _mm_add_epi16(yws, cb1); + __m128i gws = _mm_add_epi16(gwt, cr1); + + // descale + __m128i rw = _mm_srai_epi16(rws, 4); + __m128i bw = _mm_srai_epi16(bws, 4); + __m128i gw = _mm_srai_epi16(gws, 4); + + // back to byte, set up for transpose + __m128i brb = _mm_packus_epi16(rw, bw); + __m128i gxb = _mm_packus_epi16(gw, xw); + + // transpose to interleave channels + __m128i t0 = _mm_unpacklo_epi8(brb, gxb); + __m128i t1 = _mm_unpackhi_epi8(brb, gxb); + __m128i o0 = _mm_unpacklo_epi16(t0, t1); + __m128i o1 = _mm_unpackhi_epi16(t0, t1); + + // store + _mm_storeu_si128((__m128i *) (out + 0), o0); + _mm_storeu_si128((__m128i *) (out + 16), o1); + out += 32; + } + } +#endif + +#ifdef STBI_NEON + // in this version, step=3 support would be easy to add. but is there demand? + if (step == 4) { + // this is a fairly straightforward implementation and not super-optimized. + uint8x8_t signflip = vdup_n_u8(0x80); + int16x8_t cr_const0 = vdupq_n_s16( (short) ( 1.40200f*4096.0f+0.5f)); + int16x8_t cr_const1 = vdupq_n_s16( - (short) ( 0.71414f*4096.0f+0.5f)); + int16x8_t cb_const0 = vdupq_n_s16( - (short) ( 0.34414f*4096.0f+0.5f)); + int16x8_t cb_const1 = vdupq_n_s16( (short) ( 1.77200f*4096.0f+0.5f)); + + for (; i+7 < count; i += 8) { + // load + uint8x8_t y_bytes = vld1_u8(y + i); + uint8x8_t cr_bytes = vld1_u8(pcr + i); + uint8x8_t cb_bytes = vld1_u8(pcb + i); + int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip)); + int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip)); + + // expand to s16 + int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4)); + int16x8_t crw = vshll_n_s8(cr_biased, 7); + int16x8_t cbw = vshll_n_s8(cb_biased, 7); + + // color transform + int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0); + int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0); + int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1); + int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1); + int16x8_t rws = vaddq_s16(yws, cr0); + int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1); + int16x8_t bws = vaddq_s16(yws, cb1); + + // undo scaling, round, convert to byte + uint8x8x4_t o; + o.val[0] = vqrshrun_n_s16(rws, 4); + o.val[1] = vqrshrun_n_s16(gws, 4); + o.val[2] = vqrshrun_n_s16(bws, 4); + o.val[3] = vdup_n_u8(255); + + // store, interleaving r/g/b/a + vst4_u8(out, o); + out += 8*4; + } + } +#endif + + for (; i < count; ++i) { + int y_fixed = (y[i] << 20) + (1<<19); // rounding + int r,g,b; + int cr = pcr[i] - 128; + int cb = pcb[i] - 128; + r = y_fixed + cr* stbi__float2fixed(1.40200f); + g = y_fixed + cr*-stbi__float2fixed(0.71414f) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); + b = y_fixed + cb* stbi__float2fixed(1.77200f); + r >>= 20; + g >>= 20; + b >>= 20; + if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; } + if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; } + if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; } + out[0] = (stbi_uc)r; + out[1] = (stbi_uc)g; + out[2] = (stbi_uc)b; + out[3] = 255; + out += step; + } +} +#endif + +// set up the kernels +static void stbi__setup_jpeg(stbi__jpeg *j) +{ + j->idct_block_kernel = stbi__idct_block; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2; + +#ifdef STBI_SSE2 + if (stbi__sse2_available()) { + j->idct_block_kernel = stbi__idct_simd; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; + } +#endif + +#ifdef STBI_NEON + j->idct_block_kernel = stbi__idct_simd; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; +#endif +} + +// clean up the temporary component buffers +static void stbi__cleanup_jpeg(stbi__jpeg *j) +{ + stbi__free_jpeg_components(j, j->s->img_n, 0); +} + +typedef struct +{ + resample_row_func resample; + stbi_uc *line0,*line1; + int hs,vs; // expansion factor in each axis + int w_lores; // horizontal pixels pre-expansion + int ystep; // how far through vertical expansion we are + int ypos; // which pre-expansion row we're on +} stbi__resample; + +// fast 0..255 * 0..255 => 0..255 rounded multiplication +static stbi_uc stbi__blinn_8x8(stbi_uc x, stbi_uc y) +{ + unsigned int t = x*y + 128; + return (stbi_uc) ((t + (t >>8)) >> 8); +} + +static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, int *comp, int req_comp) +{ + int n, decode_n, is_rgb; + z->s->img_n = 0; // make stbi__cleanup_jpeg safe + + // validate req_comp + if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error"); + + // load a jpeg image from whichever source, but leave in YCbCr format + if (!stbi__decode_jpeg_image(z)) { stbi__cleanup_jpeg(z); return NULL; } + + // determine actual number of components to generate + n = req_comp ? req_comp : z->s->img_n >= 3 ? 3 : 1; + + is_rgb = z->s->img_n == 3 && (z->rgb == 3 || (z->app14_color_transform == 0 && !z->jfif)); + + if (z->s->img_n == 3 && n < 3 && !is_rgb) + decode_n = 1; + else + decode_n = z->s->img_n; + + // nothing to do if no components requested; check this now to avoid + // accessing uninitialized coutput[0] later + if (decode_n <= 0) { stbi__cleanup_jpeg(z); return NULL; } + + // resample and color-convert + { + int k; + unsigned int i,j; + stbi_uc *output; + stbi_uc *coutput[4] = { NULL, NULL, NULL, NULL }; + + stbi__resample res_comp[4]; + + for (k=0; k < decode_n; ++k) { + stbi__resample *r = &res_comp[k]; + + // allocate line buffer big enough for upsampling off the edges + // with upsample factor of 4 + z->img_comp[k].linebuf = (stbi_uc *) stbi__malloc(z->s->img_x + 3); + if (!z->img_comp[k].linebuf) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } + + r->hs = z->img_h_max / z->img_comp[k].h; + r->vs = z->img_v_max / z->img_comp[k].v; + r->ystep = r->vs >> 1; + r->w_lores = (z->s->img_x + r->hs-1) / r->hs; + r->ypos = 0; + r->line0 = r->line1 = z->img_comp[k].data; + + if (r->hs == 1 && r->vs == 1) r->resample = resample_row_1; + else if (r->hs == 1 && r->vs == 2) r->resample = stbi__resample_row_v_2; + else if (r->hs == 2 && r->vs == 1) r->resample = stbi__resample_row_h_2; + else if (r->hs == 2 && r->vs == 2) r->resample = z->resample_row_hv_2_kernel; + else r->resample = stbi__resample_row_generic; + } + + // can't error after this so, this is safe + output = (stbi_uc *) stbi__malloc_mad3(n, z->s->img_x, z->s->img_y, 1); + if (!output) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } + + // now go ahead and resample + for (j=0; j < z->s->img_y; ++j) { + stbi_uc *out = output + n * z->s->img_x * j; + for (k=0; k < decode_n; ++k) { + stbi__resample *r = &res_comp[k]; + int y_bot = r->ystep >= (r->vs >> 1); + coutput[k] = r->resample(z->img_comp[k].linebuf, + y_bot ? r->line1 : r->line0, + y_bot ? r->line0 : r->line1, + r->w_lores, r->hs); + if (++r->ystep >= r->vs) { + r->ystep = 0; + r->line0 = r->line1; + if (++r->ypos < z->img_comp[k].y) + r->line1 += z->img_comp[k].w2; + } + } + if (n >= 3) { + stbi_uc *y = coutput[0]; + if (z->s->img_n == 3) { + if (is_rgb) { + for (i=0; i < z->s->img_x; ++i) { + out[0] = y[i]; + out[1] = coutput[1][i]; + out[2] = coutput[2][i]; + out[3] = 255; + out += n; + } + } else { + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + } + } else if (z->s->img_n == 4) { + if (z->app14_color_transform == 0) { // CMYK + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + out[0] = stbi__blinn_8x8(coutput[0][i], m); + out[1] = stbi__blinn_8x8(coutput[1][i], m); + out[2] = stbi__blinn_8x8(coutput[2][i], m); + out[3] = 255; + out += n; + } + } else if (z->app14_color_transform == 2) { // YCCK + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + out[0] = stbi__blinn_8x8(255 - out[0], m); + out[1] = stbi__blinn_8x8(255 - out[1], m); + out[2] = stbi__blinn_8x8(255 - out[2], m); + out += n; + } + } else { // YCbCr + alpha? Ignore the fourth channel for now + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + } + } else + for (i=0; i < z->s->img_x; ++i) { + out[0] = out[1] = out[2] = y[i]; + out[3] = 255; // not used if n==3 + out += n; + } + } else { + if (is_rgb) { + if (n == 1) + for (i=0; i < z->s->img_x; ++i) + *out++ = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); + else { + for (i=0; i < z->s->img_x; ++i, out += 2) { + out[0] = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); + out[1] = 255; + } + } + } else if (z->s->img_n == 4 && z->app14_color_transform == 0) { + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + stbi_uc r = stbi__blinn_8x8(coutput[0][i], m); + stbi_uc g = stbi__blinn_8x8(coutput[1][i], m); + stbi_uc b = stbi__blinn_8x8(coutput[2][i], m); + out[0] = stbi__compute_y(r, g, b); + out[1] = 255; + out += n; + } + } else if (z->s->img_n == 4 && z->app14_color_transform == 2) { + for (i=0; i < z->s->img_x; ++i) { + out[0] = stbi__blinn_8x8(255 - coutput[0][i], coutput[3][i]); + out[1] = 255; + out += n; + } + } else { + stbi_uc *y = coutput[0]; + if (n == 1) + for (i=0; i < z->s->img_x; ++i) out[i] = y[i]; + else + for (i=0; i < z->s->img_x; ++i) { *out++ = y[i]; *out++ = 255; } + } + } + } + stbi__cleanup_jpeg(z); + *out_x = z->s->img_x; + *out_y = z->s->img_y; + if (comp) *comp = z->s->img_n >= 3 ? 3 : 1; // report original components, not output + return output; + } +} + +static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + unsigned char* result; + stbi__jpeg* j = (stbi__jpeg*) stbi__malloc(sizeof(stbi__jpeg)); + if (!j) return stbi__errpuc("outofmem", "Out of memory"); + memset(j, 0, sizeof(stbi__jpeg)); + STBI_NOTUSED(ri); + j->s = s; + stbi__setup_jpeg(j); + result = load_jpeg_image(j, x,y,comp,req_comp); + STBI_FREE(j); + return result; +} + +static int stbi__jpeg_test(stbi__context *s) +{ + int r; + stbi__jpeg* j = (stbi__jpeg*)stbi__malloc(sizeof(stbi__jpeg)); + if (!j) return stbi__err("outofmem", "Out of memory"); + memset(j, 0, sizeof(stbi__jpeg)); + j->s = s; + stbi__setup_jpeg(j); + r = stbi__decode_jpeg_header(j, STBI__SCAN_type); + stbi__rewind(s); + STBI_FREE(j); + return r; +} + +static int stbi__jpeg_info_raw(stbi__jpeg *j, int *x, int *y, int *comp) +{ + if (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) { + stbi__rewind( j->s ); + return 0; + } + if (x) *x = j->s->img_x; + if (y) *y = j->s->img_y; + if (comp) *comp = j->s->img_n >= 3 ? 3 : 1; + return 1; +} + +static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp) +{ + int result; + stbi__jpeg* j = (stbi__jpeg*) (stbi__malloc(sizeof(stbi__jpeg))); + if (!j) return stbi__err("outofmem", "Out of memory"); + memset(j, 0, sizeof(stbi__jpeg)); + j->s = s; + result = stbi__jpeg_info_raw(j, x, y, comp); + STBI_FREE(j); + return result; +} +#endif + +// public domain zlib decode v0.2 Sean Barrett 2006-11-18 +// simple implementation +// - all input must be provided in an upfront buffer +// - all output is written to a single output buffer (can malloc/realloc) +// performance +// - fast huffman + +#ifndef STBI_NO_ZLIB + +// fast-way is faster to check than jpeg huffman, but slow way is slower +#define STBI__ZFAST_BITS 9 // accelerate all cases in default tables +#define STBI__ZFAST_MASK ((1 << STBI__ZFAST_BITS) - 1) +#define STBI__ZNSYMS 288 // number of symbols in literal/length alphabet + +// zlib-style huffman encoding +// (jpegs packs from left, zlib from right, so can't share code) +typedef struct +{ + stbi__uint16 fast[1 << STBI__ZFAST_BITS]; + stbi__uint16 firstcode[16]; + int maxcode[17]; + stbi__uint16 firstsymbol[16]; + stbi_uc size[STBI__ZNSYMS]; + stbi__uint16 value[STBI__ZNSYMS]; +} stbi__zhuffman; + +stbi_inline static int stbi__bitreverse16(int n) +{ + n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1); + n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2); + n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4); + n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8); + return n; +} + +stbi_inline static int stbi__bit_reverse(int v, int bits) +{ + STBI_ASSERT(bits <= 16); + // to bit reverse n bits, reverse 16 and shift + // e.g. 11 bits, bit reverse and shift away 5 + return stbi__bitreverse16(v) >> (16-bits); +} + +static int stbi__zbuild_huffman(stbi__zhuffman *z, const stbi_uc *sizelist, int num) +{ + int i,k=0; + int code, next_code[16], sizes[17]; + + // DEFLATE spec for generating codes + memset(sizes, 0, sizeof(sizes)); + memset(z->fast, 0, sizeof(z->fast)); + for (i=0; i < num; ++i) + ++sizes[sizelist[i]]; + sizes[0] = 0; + for (i=1; i < 16; ++i) + if (sizes[i] > (1 << i)) + return stbi__err("bad sizes", "Corrupt PNG"); + code = 0; + for (i=1; i < 16; ++i) { + next_code[i] = code; + z->firstcode[i] = (stbi__uint16) code; + z->firstsymbol[i] = (stbi__uint16) k; + code = (code + sizes[i]); + if (sizes[i]) + if (code-1 >= (1 << i)) return stbi__err("bad codelengths","Corrupt PNG"); + z->maxcode[i] = code << (16-i); // preshift for inner loop + code <<= 1; + k += sizes[i]; + } + z->maxcode[16] = 0x10000; // sentinel + for (i=0; i < num; ++i) { + int s = sizelist[i]; + if (s) { + int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s]; + stbi__uint16 fastv = (stbi__uint16) ((s << 9) | i); + z->size [c] = (stbi_uc ) s; + z->value[c] = (stbi__uint16) i; + if (s <= STBI__ZFAST_BITS) { + int j = stbi__bit_reverse(next_code[s],s); + while (j < (1 << STBI__ZFAST_BITS)) { + z->fast[j] = fastv; + j += (1 << s); + } + } + ++next_code[s]; + } + } + return 1; +} + +// zlib-from-memory implementation for PNG reading +// because PNG allows splitting the zlib stream arbitrarily, +// and it's annoying structurally to have PNG call ZLIB call PNG, +// we require PNG read all the IDATs and combine them into a single +// memory buffer + +typedef struct +{ + stbi_uc *zbuffer, *zbuffer_end; + int num_bits; + stbi__uint32 code_buffer; + + char *zout; + char *zout_start; + char *zout_end; + int z_expandable; + + stbi__zhuffman z_length, z_distance; +} stbi__zbuf; + +stbi_inline static int stbi__zeof(stbi__zbuf *z) +{ + return (z->zbuffer >= z->zbuffer_end); +} + +stbi_inline static stbi_uc stbi__zget8(stbi__zbuf *z) +{ + return stbi__zeof(z) ? 0 : *z->zbuffer++; +} + +static void stbi__fill_bits(stbi__zbuf *z) +{ + do { + if (z->code_buffer >= (1U << z->num_bits)) { + z->zbuffer = z->zbuffer_end; /* treat this as EOF so we fail. */ + return; + } + z->code_buffer |= (unsigned int) stbi__zget8(z) << z->num_bits; + z->num_bits += 8; + } while (z->num_bits <= 24); +} + +stbi_inline static unsigned int stbi__zreceive(stbi__zbuf *z, int n) +{ + unsigned int k; + if (z->num_bits < n) stbi__fill_bits(z); + k = z->code_buffer & ((1 << n) - 1); + z->code_buffer >>= n; + z->num_bits -= n; + return k; +} + +static int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z) +{ + int b,s,k; + // not resolved by fast table, so compute it the slow way + // use jpeg approach, which requires MSbits at top + k = stbi__bit_reverse(a->code_buffer, 16); + for (s=STBI__ZFAST_BITS+1; ; ++s) + if (k < z->maxcode[s]) + break; + if (s >= 16) return -1; // invalid code! + // code size is s, so: + b = (k >> (16-s)) - z->firstcode[s] + z->firstsymbol[s]; + if (b >= STBI__ZNSYMS) return -1; // some data was corrupt somewhere! + if (z->size[b] != s) return -1; // was originally an assert, but report failure instead. + a->code_buffer >>= s; + a->num_bits -= s; + return z->value[b]; +} + +stbi_inline static int stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffman *z) +{ + int b,s; + if (a->num_bits < 16) { + if (stbi__zeof(a)) { + return -1; /* report error for unexpected end of data. */ + } + stbi__fill_bits(a); + } + b = z->fast[a->code_buffer & STBI__ZFAST_MASK]; + if (b) { + s = b >> 9; + a->code_buffer >>= s; + a->num_bits -= s; + return b & 511; + } + return stbi__zhuffman_decode_slowpath(a, z); +} + +static int stbi__zexpand(stbi__zbuf *z, char *zout, int n) // need to make room for n bytes +{ + char *q; + unsigned int cur, limit, old_limit; + z->zout = zout; + if (!z->z_expandable) return stbi__err("output buffer limit","Corrupt PNG"); + cur = (unsigned int) (z->zout - z->zout_start); + limit = old_limit = (unsigned) (z->zout_end - z->zout_start); + if (UINT_MAX - cur < (unsigned) n) return stbi__err("outofmem", "Out of memory"); + while (cur + n > limit) { + if(limit > UINT_MAX / 2) return stbi__err("outofmem", "Out of memory"); + limit *= 2; + } + q = (char *) STBI_REALLOC_SIZED(z->zout_start, old_limit, limit); + STBI_NOTUSED(old_limit); + if (q == NULL) return stbi__err("outofmem", "Out of memory"); + z->zout_start = q; + z->zout = q + cur; + z->zout_end = q + limit; + return 1; +} + +static const int stbi__zlength_base[31] = { + 3,4,5,6,7,8,9,10,11,13, + 15,17,19,23,27,31,35,43,51,59, + 67,83,99,115,131,163,195,227,258,0,0 }; + +static const int stbi__zlength_extra[31]= +{ 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 }; + +static const int stbi__zdist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193, +257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0}; + +static const int stbi__zdist_extra[32] = +{ 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; + +static int stbi__parse_huffman_block(stbi__zbuf *a) +{ + char *zout = a->zout; + for(;;) { + int z = stbi__zhuffman_decode(a, &a->z_length); + if (z < 256) { + if (z < 0) return stbi__err("bad huffman code","Corrupt PNG"); // error in huffman codes + if (zout >= a->zout_end) { + if (!stbi__zexpand(a, zout, 1)) return 0; + zout = a->zout; + } + *zout++ = (char) z; + } else { + stbi_uc *p; + int len,dist; + if (z == 256) { + a->zout = zout; + return 1; + } + if (z >= 286) return stbi__err("bad huffman code","Corrupt PNG"); // per DEFLATE, length codes 286 and 287 must not appear in compressed data + z -= 257; + len = stbi__zlength_base[z]; + if (stbi__zlength_extra[z]) len += stbi__zreceive(a, stbi__zlength_extra[z]); + z = stbi__zhuffman_decode(a, &a->z_distance); + if (z < 0 || z >= 30) return stbi__err("bad huffman code","Corrupt PNG"); // per DEFLATE, distance codes 30 and 31 must not appear in compressed data + dist = stbi__zdist_base[z]; + if (stbi__zdist_extra[z]) dist += stbi__zreceive(a, stbi__zdist_extra[z]); + if (zout - a->zout_start < dist) return stbi__err("bad dist","Corrupt PNG"); + if (zout + len > a->zout_end) { + if (!stbi__zexpand(a, zout, len)) return 0; + zout = a->zout; + } + p = (stbi_uc *) (zout - dist); + if (dist == 1) { // run of one byte; common in images. + stbi_uc v = *p; + if (len) { do *zout++ = v; while (--len); } + } else { + if (len) { do *zout++ = *p++; while (--len); } + } + } + } +} + +static int stbi__compute_huffman_codes(stbi__zbuf *a) +{ + static const stbi_uc length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 }; + stbi__zhuffman z_codelength; + stbi_uc lencodes[286+32+137];//padding for maximum single op + stbi_uc codelength_sizes[19]; + int i,n; + + int hlit = stbi__zreceive(a,5) + 257; + int hdist = stbi__zreceive(a,5) + 1; + int hclen = stbi__zreceive(a,4) + 4; + int ntot = hlit + hdist; + + memset(codelength_sizes, 0, sizeof(codelength_sizes)); + for (i=0; i < hclen; ++i) { + int s = stbi__zreceive(a,3); + codelength_sizes[length_dezigzag[i]] = (stbi_uc) s; + } + if (!stbi__zbuild_huffman(&z_codelength, codelength_sizes, 19)) return 0; + + n = 0; + while (n < ntot) { + int c = stbi__zhuffman_decode(a, &z_codelength); + if (c < 0 || c >= 19) return stbi__err("bad codelengths", "Corrupt PNG"); + if (c < 16) + lencodes[n++] = (stbi_uc) c; + else { + stbi_uc fill = 0; + if (c == 16) { + c = stbi__zreceive(a,2)+3; + if (n == 0) return stbi__err("bad codelengths", "Corrupt PNG"); + fill = lencodes[n-1]; + } else if (c == 17) { + c = stbi__zreceive(a,3)+3; + } else if (c == 18) { + c = stbi__zreceive(a,7)+11; + } else { + return stbi__err("bad codelengths", "Corrupt PNG"); + } + if (ntot - n < c) return stbi__err("bad codelengths", "Corrupt PNG"); + memset(lencodes+n, fill, c); + n += c; + } + } + if (n != ntot) return stbi__err("bad codelengths","Corrupt PNG"); + if (!stbi__zbuild_huffman(&a->z_length, lencodes, hlit)) return 0; + if (!stbi__zbuild_huffman(&a->z_distance, lencodes+hlit, hdist)) return 0; + return 1; +} + +static int stbi__parse_uncompressed_block(stbi__zbuf *a) +{ + stbi_uc header[4]; + int len,nlen,k; + if (a->num_bits & 7) + stbi__zreceive(a, a->num_bits & 7); // discard + // drain the bit-packed data into header + k = 0; + while (a->num_bits > 0) { + header[k++] = (stbi_uc) (a->code_buffer & 255); // suppress MSVC run-time check + a->code_buffer >>= 8; + a->num_bits -= 8; + } + if (a->num_bits < 0) return stbi__err("zlib corrupt","Corrupt PNG"); + // now fill header the normal way + while (k < 4) + header[k++] = stbi__zget8(a); + len = header[1] * 256 + header[0]; + nlen = header[3] * 256 + header[2]; + if (nlen != (len ^ 0xffff)) return stbi__err("zlib corrupt","Corrupt PNG"); + if (a->zbuffer + len > a->zbuffer_end) return stbi__err("read past buffer","Corrupt PNG"); + if (a->zout + len > a->zout_end) + if (!stbi__zexpand(a, a->zout, len)) return 0; + memcpy(a->zout, a->zbuffer, len); + a->zbuffer += len; + a->zout += len; + return 1; +} + +static int stbi__parse_zlib_header(stbi__zbuf *a) +{ + int cmf = stbi__zget8(a); + int cm = cmf & 15; + /* int cinfo = cmf >> 4; */ + int flg = stbi__zget8(a); + if (stbi__zeof(a)) return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec + if ((cmf*256+flg) % 31 != 0) return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec + if (flg & 32) return stbi__err("no preset dict","Corrupt PNG"); // preset dictionary not allowed in png + if (cm != 8) return stbi__err("bad compression","Corrupt PNG"); // DEFLATE required for png + // window = 1 << (8 + cinfo)... but who cares, we fully buffer output + return 1; +} + +static const stbi_uc stbi__zdefault_length[STBI__ZNSYMS] = +{ + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8 +}; +static const stbi_uc stbi__zdefault_distance[32] = +{ + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 +}; +/* +Init algorithm: +{ + int i; // use <= to match clearly with spec + for (i=0; i <= 143; ++i) stbi__zdefault_length[i] = 8; + for ( ; i <= 255; ++i) stbi__zdefault_length[i] = 9; + for ( ; i <= 279; ++i) stbi__zdefault_length[i] = 7; + for ( ; i <= 287; ++i) stbi__zdefault_length[i] = 8; + + for (i=0; i <= 31; ++i) stbi__zdefault_distance[i] = 5; +} +*/ + +static int stbi__parse_zlib(stbi__zbuf *a, int parse_header) +{ + int final, type; + if (parse_header) + if (!stbi__parse_zlib_header(a)) return 0; + a->num_bits = 0; + a->code_buffer = 0; + do { + final = stbi__zreceive(a,1); + type = stbi__zreceive(a,2); + if (type == 0) { + if (!stbi__parse_uncompressed_block(a)) return 0; + } else if (type == 3) { + return 0; + } else { + if (type == 1) { + // use fixed code lengths + if (!stbi__zbuild_huffman(&a->z_length , stbi__zdefault_length , STBI__ZNSYMS)) return 0; + if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance, 32)) return 0; + } else { + if (!stbi__compute_huffman_codes(a)) return 0; + } + if (!stbi__parse_huffman_block(a)) return 0; + } + } while (!final); + return 1; +} + +static int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, int parse_header) +{ + a->zout_start = obuf; + a->zout = obuf; + a->zout_end = obuf + olen; + a->z_expandable = exp; + + return stbi__parse_zlib(a, parse_header); +} + +STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(initial_size); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer + len; + if (stbi__do_zlib(&a, p, initial_size, 1, 1)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF char *stbi_zlib_decode_malloc(char const *buffer, int len, int *outlen) +{ + return stbi_zlib_decode_malloc_guesssize(buffer, len, 16384, outlen); +} + +STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(initial_size); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer + len; + if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, char const *ibuffer, int ilen) +{ + stbi__zbuf a; + a.zbuffer = (stbi_uc *) ibuffer; + a.zbuffer_end = (stbi_uc *) ibuffer + ilen; + if (stbi__do_zlib(&a, obuffer, olen, 0, 1)) + return (int) (a.zout - a.zout_start); + else + return -1; +} + +STBIDEF char *stbi_zlib_decode_noheader_malloc(char const *buffer, int len, int *outlen) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(16384); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer+len; + if (stbi__do_zlib(&a, p, 16384, 1, 0)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen) +{ + stbi__zbuf a; + a.zbuffer = (stbi_uc *) ibuffer; + a.zbuffer_end = (stbi_uc *) ibuffer + ilen; + if (stbi__do_zlib(&a, obuffer, olen, 0, 0)) + return (int) (a.zout - a.zout_start); + else + return -1; +} +#endif + +// public domain "baseline" PNG decoder v0.10 Sean Barrett 2006-11-18 +// simple implementation +// - only 8-bit samples +// - no CRC checking +// - allocates lots of intermediate memory +// - avoids problem of streaming data between subsystems +// - avoids explicit window management +// performance +// - uses stb_zlib, a PD zlib implementation with fast huffman decoding + +#ifndef STBI_NO_PNG +typedef struct +{ + stbi__uint32 length; + stbi__uint32 type; +} stbi__pngchunk; + +static stbi__pngchunk stbi__get_chunk_header(stbi__context *s) +{ + stbi__pngchunk c; + c.length = stbi__get32be(s); + c.type = stbi__get32be(s); + return c; +} + +static int stbi__check_png_header(stbi__context *s) +{ + static const stbi_uc png_sig[8] = { 137,80,78,71,13,10,26,10 }; + int i; + for (i=0; i < 8; ++i) + if (stbi__get8(s) != png_sig[i]) return stbi__err("bad png sig","Not a PNG"); + return 1; +} + +typedef struct +{ + stbi__context *s; + stbi_uc *idata, *expanded, *out; + int depth; +} stbi__png; + + +enum { + STBI__F_none=0, + STBI__F_sub=1, + STBI__F_up=2, + STBI__F_avg=3, + STBI__F_paeth=4, + // synthetic filters used for first scanline to avoid needing a dummy row of 0s + STBI__F_avg_first, + STBI__F_paeth_first +}; + +static stbi_uc first_row_filter[5] = +{ + STBI__F_none, + STBI__F_sub, + STBI__F_none, + STBI__F_avg_first, + STBI__F_paeth_first +}; + +static int stbi__paeth(int a, int b, int c) +{ + int p = a + b - c; + int pa = abs(p-a); + int pb = abs(p-b); + int pc = abs(p-c); + if (pa <= pb && pa <= pc) return a; + if (pb <= pc) return b; + return c; +} + +static const stbi_uc stbi__depth_scale_table[9] = { 0, 0xff, 0x55, 0, 0x11, 0,0,0, 0x01 }; + +// create the png data from post-deflated data +static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 raw_len, int out_n, stbi__uint32 x, stbi__uint32 y, int depth, int color) +{ + int bytes = (depth == 16? 2 : 1); + stbi__context *s = a->s; + stbi__uint32 i,j,stride = x*out_n*bytes; + stbi__uint32 img_len, img_width_bytes; + int k; + int img_n = s->img_n; // copy it into a local for later + + int output_bytes = out_n*bytes; + int filter_bytes = img_n*bytes; + int width = x; + + STBI_ASSERT(out_n == s->img_n || out_n == s->img_n+1); + a->out = (stbi_uc *) stbi__malloc_mad3(x, y, output_bytes, 0); // extra bytes to write off the end into + if (!a->out) return stbi__err("outofmem", "Out of memory"); + + if (!stbi__mad3sizes_valid(img_n, x, depth, 7)) return stbi__err("too large", "Corrupt PNG"); + img_width_bytes = (((img_n * x * depth) + 7) >> 3); + img_len = (img_width_bytes + 1) * y; + + // we used to check for exact match between raw_len and img_len on non-interlaced PNGs, + // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros), + // so just check for raw_len < img_len always. + if (raw_len < img_len) return stbi__err("not enough pixels","Corrupt PNG"); + + for (j=0; j < y; ++j) { + stbi_uc *cur = a->out + stride*j; + stbi_uc *prior; + int filter = *raw++; + + if (filter > 4) + return stbi__err("invalid filter","Corrupt PNG"); + + if (depth < 8) { + if (img_width_bytes > x) return stbi__err("invalid width","Corrupt PNG"); + cur += x*out_n - img_width_bytes; // store output to the rightmost img_len bytes, so we can decode in place + filter_bytes = 1; + width = img_width_bytes; + } + prior = cur - stride; // bugfix: need to compute this after 'cur +=' computation above + + // if first row, use special filter that doesn't sample previous row + if (j == 0) filter = first_row_filter[filter]; + + // handle first byte explicitly + for (k=0; k < filter_bytes; ++k) { + switch (filter) { + case STBI__F_none : cur[k] = raw[k]; break; + case STBI__F_sub : cur[k] = raw[k]; break; + case STBI__F_up : cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break; + case STBI__F_avg : cur[k] = STBI__BYTECAST(raw[k] + (prior[k]>>1)); break; + case STBI__F_paeth : cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(0,prior[k],0)); break; + case STBI__F_avg_first : cur[k] = raw[k]; break; + case STBI__F_paeth_first: cur[k] = raw[k]; break; + } + } + + if (depth == 8) { + if (img_n != out_n) + cur[img_n] = 255; // first pixel + raw += img_n; + cur += out_n; + prior += out_n; + } else if (depth == 16) { + if (img_n != out_n) { + cur[filter_bytes] = 255; // first pixel top byte + cur[filter_bytes+1] = 255; // first pixel bottom byte + } + raw += filter_bytes; + cur += output_bytes; + prior += output_bytes; + } else { + raw += 1; + cur += 1; + prior += 1; + } + + // this is a little gross, so that we don't switch per-pixel or per-component + if (depth < 8 || img_n == out_n) { + int nk = (width - 1)*filter_bytes; + #define STBI__CASE(f) \ + case f: \ + for (k=0; k < nk; ++k) + switch (filter) { + // "none" filter turns into a memcpy here; make that explicit. + case STBI__F_none: memcpy(cur, raw, nk); break; + STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); } break; + STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break; + STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); } break; + STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],prior[k],prior[k-filter_bytes])); } break; + STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); } break; + STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],0,0)); } break; + } + #undef STBI__CASE + raw += nk; + } else { + STBI_ASSERT(img_n+1 == out_n); + #define STBI__CASE(f) \ + case f: \ + for (i=x-1; i >= 1; --i, cur[filter_bytes]=255,raw+=filter_bytes,cur+=output_bytes,prior+=output_bytes) \ + for (k=0; k < filter_bytes; ++k) + switch (filter) { + STBI__CASE(STBI__F_none) { cur[k] = raw[k]; } break; + STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k- output_bytes]); } break; + STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break; + STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k- output_bytes])>>1)); } break; + STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],prior[k],prior[k- output_bytes])); } break; + STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k- output_bytes] >> 1)); } break; + STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],0,0)); } break; + } + #undef STBI__CASE + + // the loop above sets the high byte of the pixels' alpha, but for + // 16 bit png files we also need the low byte set. we'll do that here. + if (depth == 16) { + cur = a->out + stride*j; // start at the beginning of the row again + for (i=0; i < x; ++i,cur+=output_bytes) { + cur[filter_bytes+1] = 255; + } + } + } + } + + // we make a separate pass to expand bits to pixels; for performance, + // this could run two scanlines behind the above code, so it won't + // intefere with filtering but will still be in the cache. + if (depth < 8) { + for (j=0; j < y; ++j) { + stbi_uc *cur = a->out + stride*j; + stbi_uc *in = a->out + stride*j + x*out_n - img_width_bytes; + // unpack 1/2/4-bit into a 8-bit buffer. allows us to keep the common 8-bit path optimal at minimal cost for 1/2/4-bit + // png guarante byte alignment, if width is not multiple of 8/4/2 we'll decode dummy trailing data that will be skipped in the later loop + stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] : 1; // scale grayscale values to 0..255 range + + // note that the final byte might overshoot and write more data than desired. + // we can allocate enough data that this never writes out of memory, but it + // could also overwrite the next scanline. can it overwrite non-empty data + // on the next scanline? yes, consider 1-pixel-wide scanlines with 1-bit-per-pixel. + // so we need to explicitly clamp the final ones + + if (depth == 4) { + for (k=x*img_n; k >= 2; k-=2, ++in) { + *cur++ = scale * ((*in >> 4) ); + *cur++ = scale * ((*in ) & 0x0f); + } + if (k > 0) *cur++ = scale * ((*in >> 4) ); + } else if (depth == 2) { + for (k=x*img_n; k >= 4; k-=4, ++in) { + *cur++ = scale * ((*in >> 6) ); + *cur++ = scale * ((*in >> 4) & 0x03); + *cur++ = scale * ((*in >> 2) & 0x03); + *cur++ = scale * ((*in ) & 0x03); + } + if (k > 0) *cur++ = scale * ((*in >> 6) ); + if (k > 1) *cur++ = scale * ((*in >> 4) & 0x03); + if (k > 2) *cur++ = scale * ((*in >> 2) & 0x03); + } else if (depth == 1) { + for (k=x*img_n; k >= 8; k-=8, ++in) { + *cur++ = scale * ((*in >> 7) ); + *cur++ = scale * ((*in >> 6) & 0x01); + *cur++ = scale * ((*in >> 5) & 0x01); + *cur++ = scale * ((*in >> 4) & 0x01); + *cur++ = scale * ((*in >> 3) & 0x01); + *cur++ = scale * ((*in >> 2) & 0x01); + *cur++ = scale * ((*in >> 1) & 0x01); + *cur++ = scale * ((*in ) & 0x01); + } + if (k > 0) *cur++ = scale * ((*in >> 7) ); + if (k > 1) *cur++ = scale * ((*in >> 6) & 0x01); + if (k > 2) *cur++ = scale * ((*in >> 5) & 0x01); + if (k > 3) *cur++ = scale * ((*in >> 4) & 0x01); + if (k > 4) *cur++ = scale * ((*in >> 3) & 0x01); + if (k > 5) *cur++ = scale * ((*in >> 2) & 0x01); + if (k > 6) *cur++ = scale * ((*in >> 1) & 0x01); + } + if (img_n != out_n) { + int q; + // insert alpha = 255 + cur = a->out + stride*j; + if (img_n == 1) { + for (q=x-1; q >= 0; --q) { + cur[q*2+1] = 255; + cur[q*2+0] = cur[q]; + } + } else { + STBI_ASSERT(img_n == 3); + for (q=x-1; q >= 0; --q) { + cur[q*4+3] = 255; + cur[q*4+2] = cur[q*3+2]; + cur[q*4+1] = cur[q*3+1]; + cur[q*4+0] = cur[q*3+0]; + } + } + } + } + } else if (depth == 16) { + // force the image data from big-endian to platform-native. + // this is done in a separate pass due to the decoding relying + // on the data being untouched, but could probably be done + // per-line during decode if care is taken. + stbi_uc *cur = a->out; + stbi__uint16 *cur16 = (stbi__uint16*)cur; + + for(i=0; i < x*y*out_n; ++i,cur16++,cur+=2) { + *cur16 = (cur[0] << 8) | cur[1]; + } + } + + return 1; +} + +static int stbi__create_png_image(stbi__png *a, stbi_uc *image_data, stbi__uint32 image_data_len, int out_n, int depth, int color, int interlaced) +{ + int bytes = (depth == 16 ? 2 : 1); + int out_bytes = out_n * bytes; + stbi_uc *final; + int p; + if (!interlaced) + return stbi__create_png_image_raw(a, image_data, image_data_len, out_n, a->s->img_x, a->s->img_y, depth, color); + + // de-interlacing + final = (stbi_uc *) stbi__malloc_mad3(a->s->img_x, a->s->img_y, out_bytes, 0); + if (!final) return stbi__err("outofmem", "Out of memory"); + for (p=0; p < 7; ++p) { + int xorig[] = { 0,4,0,2,0,1,0 }; + int yorig[] = { 0,0,4,0,2,0,1 }; + int xspc[] = { 8,8,4,4,2,2,1 }; + int yspc[] = { 8,8,8,4,4,2,2 }; + int i,j,x,y; + // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1 + x = (a->s->img_x - xorig[p] + xspc[p]-1) / xspc[p]; + y = (a->s->img_y - yorig[p] + yspc[p]-1) / yspc[p]; + if (x && y) { + stbi__uint32 img_len = ((((a->s->img_n * x * depth) + 7) >> 3) + 1) * y; + if (!stbi__create_png_image_raw(a, image_data, image_data_len, out_n, x, y, depth, color)) { + STBI_FREE(final); + return 0; + } + for (j=0; j < y; ++j) { + for (i=0; i < x; ++i) { + int out_y = j*yspc[p]+yorig[p]; + int out_x = i*xspc[p]+xorig[p]; + memcpy(final + out_y*a->s->img_x*out_bytes + out_x*out_bytes, + a->out + (j*x+i)*out_bytes, out_bytes); + } + } + STBI_FREE(a->out); + image_data += img_len; + image_data_len -= img_len; + } + } + a->out = final; + + return 1; +} + +static int stbi__compute_transparency(stbi__png *z, stbi_uc tc[3], int out_n) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi_uc *p = z->out; + + // compute color-based transparency, assuming we've + // already got 255 as the alpha value in the output + STBI_ASSERT(out_n == 2 || out_n == 4); + + if (out_n == 2) { + for (i=0; i < pixel_count; ++i) { + p[1] = (p[0] == tc[0] ? 0 : 255); + p += 2; + } + } else { + for (i=0; i < pixel_count; ++i) { + if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) + p[3] = 0; + p += 4; + } + } + return 1; +} + +static int stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3], int out_n) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi__uint16 *p = (stbi__uint16*) z->out; + + // compute color-based transparency, assuming we've + // already got 65535 as the alpha value in the output + STBI_ASSERT(out_n == 2 || out_n == 4); + + if (out_n == 2) { + for (i = 0; i < pixel_count; ++i) { + p[1] = (p[0] == tc[0] ? 0 : 65535); + p += 2; + } + } else { + for (i = 0; i < pixel_count; ++i) { + if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) + p[3] = 0; + p += 4; + } + } + return 1; +} + +static int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int len, int pal_img_n) +{ + stbi__uint32 i, pixel_count = a->s->img_x * a->s->img_y; + stbi_uc *p, *temp_out, *orig = a->out; + + p = (stbi_uc *) stbi__malloc_mad2(pixel_count, pal_img_n, 0); + if (p == NULL) return stbi__err("outofmem", "Out of memory"); + + // between here and free(out) below, exitting would leak + temp_out = p; + + if (pal_img_n == 3) { + for (i=0; i < pixel_count; ++i) { + int n = orig[i]*4; + p[0] = palette[n ]; + p[1] = palette[n+1]; + p[2] = palette[n+2]; + p += 3; + } + } else { + for (i=0; i < pixel_count; ++i) { + int n = orig[i]*4; + p[0] = palette[n ]; + p[1] = palette[n+1]; + p[2] = palette[n+2]; + p[3] = palette[n+3]; + p += 4; + } + } + STBI_FREE(a->out); + a->out = temp_out; + + STBI_NOTUSED(len); + + return 1; +} + +static int stbi__unpremultiply_on_load_global = 0; +static int stbi__de_iphone_flag_global = 0; + +STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply) +{ + stbi__unpremultiply_on_load_global = flag_true_if_should_unpremultiply; +} + +STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert) +{ + stbi__de_iphone_flag_global = flag_true_if_should_convert; +} + +#ifndef STBI_THREAD_LOCAL +#define stbi__unpremultiply_on_load stbi__unpremultiply_on_load_global +#define stbi__de_iphone_flag stbi__de_iphone_flag_global +#else +static STBI_THREAD_LOCAL int stbi__unpremultiply_on_load_local, stbi__unpremultiply_on_load_set; +static STBI_THREAD_LOCAL int stbi__de_iphone_flag_local, stbi__de_iphone_flag_set; + +STBIDEF void stbi_set_unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply) +{ + stbi__unpremultiply_on_load_local = flag_true_if_should_unpremultiply; + stbi__unpremultiply_on_load_set = 1; +} + +STBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert) +{ + stbi__de_iphone_flag_local = flag_true_if_should_convert; + stbi__de_iphone_flag_set = 1; +} + +#define stbi__unpremultiply_on_load (stbi__unpremultiply_on_load_set \ + ? stbi__unpremultiply_on_load_local \ + : stbi__unpremultiply_on_load_global) +#define stbi__de_iphone_flag (stbi__de_iphone_flag_set \ + ? stbi__de_iphone_flag_local \ + : stbi__de_iphone_flag_global) +#endif // STBI_THREAD_LOCAL + +static void stbi__de_iphone(stbi__png *z) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi_uc *p = z->out; + + if (s->img_out_n == 3) { // convert bgr to rgb + for (i=0; i < pixel_count; ++i) { + stbi_uc t = p[0]; + p[0] = p[2]; + p[2] = t; + p += 3; + } + } else { + STBI_ASSERT(s->img_out_n == 4); + if (stbi__unpremultiply_on_load) { + // convert bgr to rgb and unpremultiply + for (i=0; i < pixel_count; ++i) { + stbi_uc a = p[3]; + stbi_uc t = p[0]; + if (a) { + stbi_uc half = a / 2; + p[0] = (p[2] * 255 + half) / a; + p[1] = (p[1] * 255 + half) / a; + p[2] = ( t * 255 + half) / a; + } else { + p[0] = p[2]; + p[2] = t; + } + p += 4; + } + } else { + // convert bgr to rgb + for (i=0; i < pixel_count; ++i) { + stbi_uc t = p[0]; + p[0] = p[2]; + p[2] = t; + p += 4; + } + } + } +} + +#define STBI__PNG_TYPE(a,b,c,d) (((unsigned) (a) << 24) + ((unsigned) (b) << 16) + ((unsigned) (c) << 8) + (unsigned) (d)) + +static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp) +{ + stbi_uc palette[1024], pal_img_n=0; + stbi_uc has_trans=0, tc[3]={0}; + stbi__uint16 tc16[3]; + stbi__uint32 ioff=0, idata_limit=0, i, pal_len=0; + int first=1,k,interlace=0, color=0, is_iphone=0; + stbi__context *s = z->s; + + z->expanded = NULL; + z->idata = NULL; + z->out = NULL; + + if (!stbi__check_png_header(s)) return 0; + + if (scan == STBI__SCAN_type) return 1; + + for (;;) { + stbi__pngchunk c = stbi__get_chunk_header(s); + switch (c.type) { + case STBI__PNG_TYPE('C','g','B','I'): + is_iphone = 1; + stbi__skip(s, c.length); + break; + case STBI__PNG_TYPE('I','H','D','R'): { + int comp,filter; + if (!first) return stbi__err("multiple IHDR","Corrupt PNG"); + first = 0; + if (c.length != 13) return stbi__err("bad IHDR len","Corrupt PNG"); + s->img_x = stbi__get32be(s); + s->img_y = stbi__get32be(s); + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + z->depth = stbi__get8(s); if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 && z->depth != 16) return stbi__err("1/2/4/8/16-bit only","PNG not supported: 1/2/4/8/16-bit only"); + color = stbi__get8(s); if (color > 6) return stbi__err("bad ctype","Corrupt PNG"); + if (color == 3 && z->depth == 16) return stbi__err("bad ctype","Corrupt PNG"); + if (color == 3) pal_img_n = 3; else if (color & 1) return stbi__err("bad ctype","Corrupt PNG"); + comp = stbi__get8(s); if (comp) return stbi__err("bad comp method","Corrupt PNG"); + filter= stbi__get8(s); if (filter) return stbi__err("bad filter method","Corrupt PNG"); + interlace = stbi__get8(s); if (interlace>1) return stbi__err("bad interlace method","Corrupt PNG"); + if (!s->img_x || !s->img_y) return stbi__err("0-pixel image","Corrupt PNG"); + if (!pal_img_n) { + s->img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0); + if ((1 << 30) / s->img_x / s->img_n < s->img_y) return stbi__err("too large", "Image too large to decode"); + } else { + // if paletted, then pal_n is our final components, and + // img_n is # components to decompress/filter. + s->img_n = 1; + if ((1 << 30) / s->img_x / 4 < s->img_y) return stbi__err("too large","Corrupt PNG"); + } + // even with SCAN_header, have to scan to see if we have a tRNS + break; + } + + case STBI__PNG_TYPE('P','L','T','E'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (c.length > 256*3) return stbi__err("invalid PLTE","Corrupt PNG"); + pal_len = c.length / 3; + if (pal_len * 3 != c.length) return stbi__err("invalid PLTE","Corrupt PNG"); + for (i=0; i < pal_len; ++i) { + palette[i*4+0] = stbi__get8(s); + palette[i*4+1] = stbi__get8(s); + palette[i*4+2] = stbi__get8(s); + palette[i*4+3] = 255; + } + break; + } + + case STBI__PNG_TYPE('t','R','N','S'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (z->idata) return stbi__err("tRNS after IDAT","Corrupt PNG"); + if (pal_img_n) { + if (scan == STBI__SCAN_header) { s->img_n = 4; return 1; } + if (pal_len == 0) return stbi__err("tRNS before PLTE","Corrupt PNG"); + if (c.length > pal_len) return stbi__err("bad tRNS len","Corrupt PNG"); + pal_img_n = 4; + for (i=0; i < c.length; ++i) + palette[i*4+3] = stbi__get8(s); + } else { + if (!(s->img_n & 1)) return stbi__err("tRNS with alpha","Corrupt PNG"); + if (c.length != (stbi__uint32) s->img_n*2) return stbi__err("bad tRNS len","Corrupt PNG"); + has_trans = 1; + // non-paletted with tRNS = constant alpha. if header-scanning, we can stop now. + if (scan == STBI__SCAN_header) { ++s->img_n; return 1; } + if (z->depth == 16) { + for (k = 0; k < s->img_n; ++k) tc16[k] = (stbi__uint16)stbi__get16be(s); // copy the values as-is + } else { + for (k = 0; k < s->img_n; ++k) tc[k] = (stbi_uc)(stbi__get16be(s) & 255) * stbi__depth_scale_table[z->depth]; // non 8-bit images will be larger + } + } + break; + } + + case STBI__PNG_TYPE('I','D','A','T'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (pal_img_n && !pal_len) return stbi__err("no PLTE","Corrupt PNG"); + if (scan == STBI__SCAN_header) { + // header scan definitely stops at first IDAT + if (pal_img_n) + s->img_n = pal_img_n; + return 1; + } + if (c.length > (1u << 30)) return stbi__err("IDAT size limit", "IDAT section larger than 2^30 bytes"); + if ((int)(ioff + c.length) < (int)ioff) return 0; + if (ioff + c.length > idata_limit) { + stbi__uint32 idata_limit_old = idata_limit; + stbi_uc *p; + if (idata_limit == 0) idata_limit = c.length > 4096 ? c.length : 4096; + while (ioff + c.length > idata_limit) + idata_limit *= 2; + STBI_NOTUSED(idata_limit_old); + p = (stbi_uc *) STBI_REALLOC_SIZED(z->idata, idata_limit_old, idata_limit); if (p == NULL) return stbi__err("outofmem", "Out of memory"); + z->idata = p; + } + if (!stbi__getn(s, z->idata+ioff,c.length)) return stbi__err("outofdata","Corrupt PNG"); + ioff += c.length; + break; + } + + case STBI__PNG_TYPE('I','E','N','D'): { + stbi__uint32 raw_len, bpl; + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (scan != STBI__SCAN_load) return 1; + if (z->idata == NULL) return stbi__err("no IDAT","Corrupt PNG"); + // initial guess for decoded data size to avoid unnecessary reallocs + bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component + raw_len = bpl * s->img_y * s->img_n /* pixels */ + s->img_y /* filter mode per row */; + z->expanded = (stbi_uc *) stbi_zlib_decode_malloc_guesssize_headerflag((char *) z->idata, ioff, raw_len, (int *) &raw_len, !is_iphone); + if (z->expanded == NULL) return 0; // zlib should set error + STBI_FREE(z->idata); z->idata = NULL; + if ((req_comp == s->img_n+1 && req_comp != 3 && !pal_img_n) || has_trans) + s->img_out_n = s->img_n+1; + else + s->img_out_n = s->img_n; + if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth, color, interlace)) return 0; + if (has_trans) { + if (z->depth == 16) { + if (!stbi__compute_transparency16(z, tc16, s->img_out_n)) return 0; + } else { + if (!stbi__compute_transparency(z, tc, s->img_out_n)) return 0; + } + } + if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2) + stbi__de_iphone(z); + if (pal_img_n) { + // pal_img_n == 3 or 4 + s->img_n = pal_img_n; // record the actual colors we had + s->img_out_n = pal_img_n; + if (req_comp >= 3) s->img_out_n = req_comp; + if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n)) + return 0; + } else if (has_trans) { + // non-paletted image with tRNS -> source image has (constant) alpha + ++s->img_n; + } + STBI_FREE(z->expanded); z->expanded = NULL; + // end of PNG chunk, read and skip CRC + stbi__get32be(s); + return 1; + } + + default: + // if critical, fail + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if ((c.type & (1 << 29)) == 0) { + #ifndef STBI_NO_FAILURE_STRINGS + // not threadsafe + static char invalid_chunk[] = "XXXX PNG chunk not known"; + invalid_chunk[0] = STBI__BYTECAST(c.type >> 24); + invalid_chunk[1] = STBI__BYTECAST(c.type >> 16); + invalid_chunk[2] = STBI__BYTECAST(c.type >> 8); + invalid_chunk[3] = STBI__BYTECAST(c.type >> 0); + #endif + return stbi__err(invalid_chunk, "PNG not supported: unknown PNG chunk type"); + } + stbi__skip(s, c.length); + break; + } + // end of PNG chunk, read and skip CRC + stbi__get32be(s); + } +} + +static void *stbi__do_png(stbi__png *p, int *x, int *y, int *n, int req_comp, stbi__result_info *ri) +{ + void *result=NULL; + if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error"); + if (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) { + if (p->depth <= 8) + ri->bits_per_channel = 8; + else if (p->depth == 16) + ri->bits_per_channel = 16; + else + return stbi__errpuc("bad bits_per_channel", "PNG not supported: unsupported color depth"); + result = p->out; + p->out = NULL; + if (req_comp && req_comp != p->s->img_out_n) { + if (ri->bits_per_channel == 8) + result = stbi__convert_format((unsigned char *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); + else + result = stbi__convert_format16((stbi__uint16 *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); + p->s->img_out_n = req_comp; + if (result == NULL) return result; + } + *x = p->s->img_x; + *y = p->s->img_y; + if (n) *n = p->s->img_n; + } + STBI_FREE(p->out); p->out = NULL; + STBI_FREE(p->expanded); p->expanded = NULL; + STBI_FREE(p->idata); p->idata = NULL; + + return result; +} + +static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi__png p; + p.s = s; + return stbi__do_png(&p, x,y,comp,req_comp, ri); +} + +static int stbi__png_test(stbi__context *s) +{ + int r; + r = stbi__check_png_header(s); + stbi__rewind(s); + return r; +} + +static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp) +{ + if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) { + stbi__rewind( p->s ); + return 0; + } + if (x) *x = p->s->img_x; + if (y) *y = p->s->img_y; + if (comp) *comp = p->s->img_n; + return 1; +} + +static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp) +{ + stbi__png p; + p.s = s; + return stbi__png_info_raw(&p, x, y, comp); +} + +static int stbi__png_is16(stbi__context *s) +{ + stbi__png p; + p.s = s; + if (!stbi__png_info_raw(&p, NULL, NULL, NULL)) + return 0; + if (p.depth != 16) { + stbi__rewind(p.s); + return 0; + } + return 1; +} +#endif + +// Microsoft/Windows BMP image + +#ifndef STBI_NO_BMP +static int stbi__bmp_test_raw(stbi__context *s) +{ + int r; + int sz; + if (stbi__get8(s) != 'B') return 0; + if (stbi__get8(s) != 'M') return 0; + stbi__get32le(s); // discard filesize + stbi__get16le(s); // discard reserved + stbi__get16le(s); // discard reserved + stbi__get32le(s); // discard data offset + sz = stbi__get32le(s); + r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124); + return r; +} + +static int stbi__bmp_test(stbi__context *s) +{ + int r = stbi__bmp_test_raw(s); + stbi__rewind(s); + return r; +} + + +// returns 0..31 for the highest set bit +static int stbi__high_bit(unsigned int z) +{ + int n=0; + if (z == 0) return -1; + if (z >= 0x10000) { n += 16; z >>= 16; } + if (z >= 0x00100) { n += 8; z >>= 8; } + if (z >= 0x00010) { n += 4; z >>= 4; } + if (z >= 0x00004) { n += 2; z >>= 2; } + if (z >= 0x00002) { n += 1;/* >>= 1;*/ } + return n; +} + +static int stbi__bitcount(unsigned int a) +{ + a = (a & 0x55555555) + ((a >> 1) & 0x55555555); // max 2 + a = (a & 0x33333333) + ((a >> 2) & 0x33333333); // max 4 + a = (a + (a >> 4)) & 0x0f0f0f0f; // max 8 per 4, now 8 bits + a = (a + (a >> 8)); // max 16 per 8 bits + a = (a + (a >> 16)); // max 32 per 8 bits + return a & 0xff; +} + +// extract an arbitrarily-aligned N-bit value (N=bits) +// from v, and then make it 8-bits long and fractionally +// extend it to full full range. +static int stbi__shiftsigned(unsigned int v, int shift, int bits) +{ + static unsigned int mul_table[9] = { + 0, + 0xff/*0b11111111*/, 0x55/*0b01010101*/, 0x49/*0b01001001*/, 0x11/*0b00010001*/, + 0x21/*0b00100001*/, 0x41/*0b01000001*/, 0x81/*0b10000001*/, 0x01/*0b00000001*/, + }; + static unsigned int shift_table[9] = { + 0, 0,0,1,0,2,4,6,0, + }; + if (shift < 0) + v <<= -shift; + else + v >>= shift; + STBI_ASSERT(v < 256); + v >>= (8-bits); + STBI_ASSERT(bits >= 0 && bits <= 8); + return (int) ((unsigned) v * mul_table[bits]) >> shift_table[bits]; +} + +typedef struct +{ + int bpp, offset, hsz; + unsigned int mr,mg,mb,ma, all_a; + int extra_read; +} stbi__bmp_data; + +static int stbi__bmp_set_mask_defaults(stbi__bmp_data *info, int compress) +{ + // BI_BITFIELDS specifies masks explicitly, don't override + if (compress == 3) + return 1; + + if (compress == 0) { + if (info->bpp == 16) { + info->mr = 31u << 10; + info->mg = 31u << 5; + info->mb = 31u << 0; + } else if (info->bpp == 32) { + info->mr = 0xffu << 16; + info->mg = 0xffu << 8; + info->mb = 0xffu << 0; + info->ma = 0xffu << 24; + info->all_a = 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0 + } else { + // otherwise, use defaults, which is all-0 + info->mr = info->mg = info->mb = info->ma = 0; + } + return 1; + } + return 0; // error +} + +static void *stbi__bmp_parse_header(stbi__context *s, stbi__bmp_data *info) +{ + int hsz; + if (stbi__get8(s) != 'B' || stbi__get8(s) != 'M') return stbi__errpuc("not BMP", "Corrupt BMP"); + stbi__get32le(s); // discard filesize + stbi__get16le(s); // discard reserved + stbi__get16le(s); // discard reserved + info->offset = stbi__get32le(s); + info->hsz = hsz = stbi__get32le(s); + info->mr = info->mg = info->mb = info->ma = 0; + info->extra_read = 14; + + if (info->offset < 0) return stbi__errpuc("bad BMP", "bad BMP"); + + if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124) return stbi__errpuc("unknown BMP", "BMP type not supported: unknown"); + if (hsz == 12) { + s->img_x = stbi__get16le(s); + s->img_y = stbi__get16le(s); + } else { + s->img_x = stbi__get32le(s); + s->img_y = stbi__get32le(s); + } + if (stbi__get16le(s) != 1) return stbi__errpuc("bad BMP", "bad BMP"); + info->bpp = stbi__get16le(s); + if (hsz != 12) { + int compress = stbi__get32le(s); + if (compress == 1 || compress == 2) return stbi__errpuc("BMP RLE", "BMP type not supported: RLE"); + if (compress >= 4) return stbi__errpuc("BMP JPEG/PNG", "BMP type not supported: unsupported compression"); // this includes PNG/JPEG modes + if (compress == 3 && info->bpp != 16 && info->bpp != 32) return stbi__errpuc("bad BMP", "bad BMP"); // bitfields requires 16 or 32 bits/pixel + stbi__get32le(s); // discard sizeof + stbi__get32le(s); // discard hres + stbi__get32le(s); // discard vres + stbi__get32le(s); // discard colorsused + stbi__get32le(s); // discard max important + if (hsz == 40 || hsz == 56) { + if (hsz == 56) { + stbi__get32le(s); + stbi__get32le(s); + stbi__get32le(s); + stbi__get32le(s); + } + if (info->bpp == 16 || info->bpp == 32) { + if (compress == 0) { + stbi__bmp_set_mask_defaults(info, compress); + } else if (compress == 3) { + info->mr = stbi__get32le(s); + info->mg = stbi__get32le(s); + info->mb = stbi__get32le(s); + info->extra_read += 12; + // not documented, but generated by photoshop and handled by mspaint + if (info->mr == info->mg && info->mg == info->mb) { + // ?!?!? + return stbi__errpuc("bad BMP", "bad BMP"); + } + } else + return stbi__errpuc("bad BMP", "bad BMP"); + } + } else { + // V4/V5 header + int i; + if (hsz != 108 && hsz != 124) + return stbi__errpuc("bad BMP", "bad BMP"); + info->mr = stbi__get32le(s); + info->mg = stbi__get32le(s); + info->mb = stbi__get32le(s); + info->ma = stbi__get32le(s); + if (compress != 3) // override mr/mg/mb unless in BI_BITFIELDS mode, as per docs + stbi__bmp_set_mask_defaults(info, compress); + stbi__get32le(s); // discard color space + for (i=0; i < 12; ++i) + stbi__get32le(s); // discard color space parameters + if (hsz == 124) { + stbi__get32le(s); // discard rendering intent + stbi__get32le(s); // discard offset of profile data + stbi__get32le(s); // discard size of profile data + stbi__get32le(s); // discard reserved + } + } + } + return (void *) 1; +} + + +static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *out; + unsigned int mr=0,mg=0,mb=0,ma=0, all_a; + stbi_uc pal[256][4]; + int psize=0,i,j,width; + int flip_vertically, pad, target; + stbi__bmp_data info; + STBI_NOTUSED(ri); + + info.all_a = 255; + if (stbi__bmp_parse_header(s, &info) == NULL) + return NULL; // error code already set + + flip_vertically = ((int) s->img_y) > 0; + s->img_y = abs((int) s->img_y); + + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + mr = info.mr; + mg = info.mg; + mb = info.mb; + ma = info.ma; + all_a = info.all_a; + + if (info.hsz == 12) { + if (info.bpp < 24) + psize = (info.offset - info.extra_read - 24) / 3; + } else { + if (info.bpp < 16) + psize = (info.offset - info.extra_read - info.hsz) >> 2; + } + if (psize == 0) { + // accept some number of extra bytes after the header, but if the offset points either to before + // the header ends or implies a large amount of extra data, reject the file as malformed + int bytes_read_so_far = s->callback_already_read + (int)(s->img_buffer - s->img_buffer_original); + int header_limit = 1024; // max we actually read is below 256 bytes currently. + int extra_data_limit = 256*4; // what ordinarily goes here is a palette; 256 entries*4 bytes is its max size. + if (bytes_read_so_far <= 0 || bytes_read_so_far > header_limit) { + return stbi__errpuc("bad header", "Corrupt BMP"); + } + // we established that bytes_read_so_far is positive and sensible. + // the first half of this test rejects offsets that are either too small positives, or + // negative, and guarantees that info.offset >= bytes_read_so_far > 0. this in turn + // ensures the number computed in the second half of the test can't overflow. + if (info.offset < bytes_read_so_far || info.offset - bytes_read_so_far > extra_data_limit) { + return stbi__errpuc("bad offset", "Corrupt BMP"); + } else { + stbi__skip(s, info.offset - bytes_read_so_far); + } + } + + if (info.bpp == 24 && ma == 0xff000000) + s->img_n = 3; + else + s->img_n = ma ? 4 : 3; + if (req_comp && req_comp >= 3) // we can directly decode 3 or 4 + target = req_comp; + else + target = s->img_n; // if they want monochrome, we'll post-convert + + // sanity-check size + if (!stbi__mad3sizes_valid(target, s->img_x, s->img_y, 0)) + return stbi__errpuc("too large", "Corrupt BMP"); + + out = (stbi_uc *) stbi__malloc_mad3(target, s->img_x, s->img_y, 0); + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + if (info.bpp < 16) { + int z=0; + if (psize == 0 || psize > 256) { STBI_FREE(out); return stbi__errpuc("invalid", "Corrupt BMP"); } + for (i=0; i < psize; ++i) { + pal[i][2] = stbi__get8(s); + pal[i][1] = stbi__get8(s); + pal[i][0] = stbi__get8(s); + if (info.hsz != 12) stbi__get8(s); + pal[i][3] = 255; + } + stbi__skip(s, info.offset - info.extra_read - info.hsz - psize * (info.hsz == 12 ? 3 : 4)); + if (info.bpp == 1) width = (s->img_x + 7) >> 3; + else if (info.bpp == 4) width = (s->img_x + 1) >> 1; + else if (info.bpp == 8) width = s->img_x; + else { STBI_FREE(out); return stbi__errpuc("bad bpp", "Corrupt BMP"); } + pad = (-width)&3; + if (info.bpp == 1) { + for (j=0; j < (int) s->img_y; ++j) { + int bit_offset = 7, v = stbi__get8(s); + for (i=0; i < (int) s->img_x; ++i) { + int color = (v>>bit_offset)&0x1; + out[z++] = pal[color][0]; + out[z++] = pal[color][1]; + out[z++] = pal[color][2]; + if (target == 4) out[z++] = 255; + if (i+1 == (int) s->img_x) break; + if((--bit_offset) < 0) { + bit_offset = 7; + v = stbi__get8(s); + } + } + stbi__skip(s, pad); + } + } else { + for (j=0; j < (int) s->img_y; ++j) { + for (i=0; i < (int) s->img_x; i += 2) { + int v=stbi__get8(s),v2=0; + if (info.bpp == 4) { + v2 = v & 15; + v >>= 4; + } + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4) out[z++] = 255; + if (i+1 == (int) s->img_x) break; + v = (info.bpp == 8) ? stbi__get8(s) : v2; + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4) out[z++] = 255; + } + stbi__skip(s, pad); + } + } + } else { + int rshift=0,gshift=0,bshift=0,ashift=0,rcount=0,gcount=0,bcount=0,acount=0; + int z = 0; + int easy=0; + stbi__skip(s, info.offset - info.extra_read - info.hsz); + if (info.bpp == 24) width = 3 * s->img_x; + else if (info.bpp == 16) width = 2*s->img_x; + else /* bpp = 32 and pad = 0 */ width=0; + pad = (-width) & 3; + if (info.bpp == 24) { + easy = 1; + } else if (info.bpp == 32) { + if (mb == 0xff && mg == 0xff00 && mr == 0x00ff0000 && ma == 0xff000000) + easy = 2; + } + if (!easy) { + if (!mr || !mg || !mb) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); } + // right shift amt to put high bit in position #7 + rshift = stbi__high_bit(mr)-7; rcount = stbi__bitcount(mr); + gshift = stbi__high_bit(mg)-7; gcount = stbi__bitcount(mg); + bshift = stbi__high_bit(mb)-7; bcount = stbi__bitcount(mb); + ashift = stbi__high_bit(ma)-7; acount = stbi__bitcount(ma); + if (rcount > 8 || gcount > 8 || bcount > 8 || acount > 8) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); } + } + for (j=0; j < (int) s->img_y; ++j) { + if (easy) { + for (i=0; i < (int) s->img_x; ++i) { + unsigned char a; + out[z+2] = stbi__get8(s); + out[z+1] = stbi__get8(s); + out[z+0] = stbi__get8(s); + z += 3; + a = (easy == 2 ? stbi__get8(s) : 255); + all_a |= a; + if (target == 4) out[z++] = a; + } + } else { + int bpp = info.bpp; + for (i=0; i < (int) s->img_x; ++i) { + stbi__uint32 v = (bpp == 16 ? (stbi__uint32) stbi__get16le(s) : stbi__get32le(s)); + unsigned int a; + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mr, rshift, rcount)); + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mg, gshift, gcount)); + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mb, bshift, bcount)); + a = (ma ? stbi__shiftsigned(v & ma, ashift, acount) : 255); + all_a |= a; + if (target == 4) out[z++] = STBI__BYTECAST(a); + } + } + stbi__skip(s, pad); + } + } + + // if alpha channel is all 0s, replace with all 255s + if (target == 4 && all_a == 0) + for (i=4*s->img_x*s->img_y-1; i >= 0; i -= 4) + out[i] = 255; + + if (flip_vertically) { + stbi_uc t; + for (j=0; j < (int) s->img_y>>1; ++j) { + stbi_uc *p1 = out + j *s->img_x*target; + stbi_uc *p2 = out + (s->img_y-1-j)*s->img_x*target; + for (i=0; i < (int) s->img_x*target; ++i) { + t = p1[i]; p1[i] = p2[i]; p2[i] = t; + } + } + } + + if (req_comp && req_comp != target) { + out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y); + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + + *x = s->img_x; + *y = s->img_y; + if (comp) *comp = s->img_n; + return out; +} +#endif + +// Targa Truevision - TGA +// by Jonathan Dummer +#ifndef STBI_NO_TGA +// returns STBI_rgb or whatever, 0 on error +static int stbi__tga_get_comp(int bits_per_pixel, int is_grey, int* is_rgb16) +{ + // only RGB or RGBA (incl. 16bit) or grey allowed + if (is_rgb16) *is_rgb16 = 0; + switch(bits_per_pixel) { + case 8: return STBI_grey; + case 16: if(is_grey) return STBI_grey_alpha; + // fallthrough + case 15: if(is_rgb16) *is_rgb16 = 1; + return STBI_rgb; + case 24: // fallthrough + case 32: return bits_per_pixel/8; + default: return 0; + } +} + +static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp) +{ + int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp; + int sz, tga_colormap_type; + stbi__get8(s); // discard Offset + tga_colormap_type = stbi__get8(s); // colormap type + if( tga_colormap_type > 1 ) { + stbi__rewind(s); + return 0; // only RGB or indexed allowed + } + tga_image_type = stbi__get8(s); // image type + if ( tga_colormap_type == 1 ) { // colormapped (paletted) image + if (tga_image_type != 1 && tga_image_type != 9) { + stbi__rewind(s); + return 0; + } + stbi__skip(s,4); // skip index of first colormap entry and number of entries + sz = stbi__get8(s); // check bits per palette color entry + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) { + stbi__rewind(s); + return 0; + } + stbi__skip(s,4); // skip image x and y origin + tga_colormap_bpp = sz; + } else { // "normal" image w/o colormap - only RGB or grey allowed, +/- RLE + if ( (tga_image_type != 2) && (tga_image_type != 3) && (tga_image_type != 10) && (tga_image_type != 11) ) { + stbi__rewind(s); + return 0; // only RGB or grey allowed, +/- RLE + } + stbi__skip(s,9); // skip colormap specification and image x/y origin + tga_colormap_bpp = 0; + } + tga_w = stbi__get16le(s); + if( tga_w < 1 ) { + stbi__rewind(s); + return 0; // test width + } + tga_h = stbi__get16le(s); + if( tga_h < 1 ) { + stbi__rewind(s); + return 0; // test height + } + tga_bits_per_pixel = stbi__get8(s); // bits per pixel + stbi__get8(s); // ignore alpha bits + if (tga_colormap_bpp != 0) { + if((tga_bits_per_pixel != 8) && (tga_bits_per_pixel != 16)) { + // when using a colormap, tga_bits_per_pixel is the size of the indexes + // I don't think anything but 8 or 16bit indexes makes sense + stbi__rewind(s); + return 0; + } + tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL); + } else { + tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL); + } + if(!tga_comp) { + stbi__rewind(s); + return 0; + } + if (x) *x = tga_w; + if (y) *y = tga_h; + if (comp) *comp = tga_comp; + return 1; // seems to have passed everything +} + +static int stbi__tga_test(stbi__context *s) +{ + int res = 0; + int sz, tga_color_type; + stbi__get8(s); // discard Offset + tga_color_type = stbi__get8(s); // color type + if ( tga_color_type > 1 ) goto errorEnd; // only RGB or indexed allowed + sz = stbi__get8(s); // image type + if ( tga_color_type == 1 ) { // colormapped (paletted) image + if (sz != 1 && sz != 9) goto errorEnd; // colortype 1 demands image type 1 or 9 + stbi__skip(s,4); // skip index of first colormap entry and number of entries + sz = stbi__get8(s); // check bits per palette color entry + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd; + stbi__skip(s,4); // skip image x and y origin + } else { // "normal" image w/o colormap + if ( (sz != 2) && (sz != 3) && (sz != 10) && (sz != 11) ) goto errorEnd; // only RGB or grey allowed, +/- RLE + stbi__skip(s,9); // skip colormap specification and image x/y origin + } + if ( stbi__get16le(s) < 1 ) goto errorEnd; // test width + if ( stbi__get16le(s) < 1 ) goto errorEnd; // test height + sz = stbi__get8(s); // bits per pixel + if ( (tga_color_type == 1) && (sz != 8) && (sz != 16) ) goto errorEnd; // for colormapped images, bpp is size of an index + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd; + + res = 1; // if we got this far, everything's good and we can return 1 instead of 0 + +errorEnd: + stbi__rewind(s); + return res; +} + +// read 16bit value and convert to 24bit RGB +static void stbi__tga_read_rgb16(stbi__context *s, stbi_uc* out) +{ + stbi__uint16 px = (stbi__uint16)stbi__get16le(s); + stbi__uint16 fiveBitMask = 31; + // we have 3 channels with 5bits each + int r = (px >> 10) & fiveBitMask; + int g = (px >> 5) & fiveBitMask; + int b = px & fiveBitMask; + // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later + out[0] = (stbi_uc)((r * 255)/31); + out[1] = (stbi_uc)((g * 255)/31); + out[2] = (stbi_uc)((b * 255)/31); + + // some people claim that the most significant bit might be used for alpha + // (possibly if an alpha-bit is set in the "image descriptor byte") + // but that only made 16bit test images completely translucent.. + // so let's treat all 15 and 16bit TGAs as RGB with no alpha. +} + +static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + // read in the TGA header stuff + int tga_offset = stbi__get8(s); + int tga_indexed = stbi__get8(s); + int tga_image_type = stbi__get8(s); + int tga_is_RLE = 0; + int tga_palette_start = stbi__get16le(s); + int tga_palette_len = stbi__get16le(s); + int tga_palette_bits = stbi__get8(s); + int tga_x_origin = stbi__get16le(s); + int tga_y_origin = stbi__get16le(s); + int tga_width = stbi__get16le(s); + int tga_height = stbi__get16le(s); + int tga_bits_per_pixel = stbi__get8(s); + int tga_comp, tga_rgb16=0; + int tga_inverted = stbi__get8(s); + // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?) + // image data + unsigned char *tga_data; + unsigned char *tga_palette = NULL; + int i, j; + unsigned char raw_data[4] = {0}; + int RLE_count = 0; + int RLE_repeating = 0; + int read_next_pixel = 1; + STBI_NOTUSED(ri); + STBI_NOTUSED(tga_x_origin); // @TODO + STBI_NOTUSED(tga_y_origin); // @TODO + + if (tga_height > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (tga_width > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + // do a tiny bit of precessing + if ( tga_image_type >= 8 ) + { + tga_image_type -= 8; + tga_is_RLE = 1; + } + tga_inverted = 1 - ((tga_inverted >> 5) & 1); + + // If I'm paletted, then I'll use the number of bits from the palette + if ( tga_indexed ) tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &tga_rgb16); + else tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16); + + if(!tga_comp) // shouldn't really happen, stbi__tga_test() should have ensured basic consistency + return stbi__errpuc("bad format", "Can't find out TGA pixelformat"); + + // tga info + *x = tga_width; + *y = tga_height; + if (comp) *comp = tga_comp; + + if (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0)) + return stbi__errpuc("too large", "Corrupt TGA"); + + tga_data = (unsigned char*)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0); + if (!tga_data) return stbi__errpuc("outofmem", "Out of memory"); + + // skip to the data's starting position (offset usually = 0) + stbi__skip(s, tga_offset ); + + if ( !tga_indexed && !tga_is_RLE && !tga_rgb16 ) { + for (i=0; i < tga_height; ++i) { + int row = tga_inverted ? tga_height -i - 1 : i; + stbi_uc *tga_row = tga_data + row*tga_width*tga_comp; + stbi__getn(s, tga_row, tga_width * tga_comp); + } + } else { + // do I need to load a palette? + if ( tga_indexed) + { + if (tga_palette_len == 0) { /* you have to have at least one entry! */ + STBI_FREE(tga_data); + return stbi__errpuc("bad palette", "Corrupt TGA"); + } + + // any data to skip? (offset usually = 0) + stbi__skip(s, tga_palette_start ); + // load the palette + tga_palette = (unsigned char*)stbi__malloc_mad2(tga_palette_len, tga_comp, 0); + if (!tga_palette) { + STBI_FREE(tga_data); + return stbi__errpuc("outofmem", "Out of memory"); + } + if (tga_rgb16) { + stbi_uc *pal_entry = tga_palette; + STBI_ASSERT(tga_comp == STBI_rgb); + for (i=0; i < tga_palette_len; ++i) { + stbi__tga_read_rgb16(s, pal_entry); + pal_entry += tga_comp; + } + } else if (!stbi__getn(s, tga_palette, tga_palette_len * tga_comp)) { + STBI_FREE(tga_data); + STBI_FREE(tga_palette); + return stbi__errpuc("bad palette", "Corrupt TGA"); + } + } + // load the data + for (i=0; i < tga_width * tga_height; ++i) + { + // if I'm in RLE mode, do I need to get a RLE stbi__pngchunk? + if ( tga_is_RLE ) + { + if ( RLE_count == 0 ) + { + // yep, get the next byte as a RLE command + int RLE_cmd = stbi__get8(s); + RLE_count = 1 + (RLE_cmd & 127); + RLE_repeating = RLE_cmd >> 7; + read_next_pixel = 1; + } else if ( !RLE_repeating ) + { + read_next_pixel = 1; + } + } else + { + read_next_pixel = 1; + } + // OK, if I need to read a pixel, do it now + if ( read_next_pixel ) + { + // load however much data we did have + if ( tga_indexed ) + { + // read in index, then perform the lookup + int pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s) : stbi__get16le(s); + if ( pal_idx >= tga_palette_len ) { + // invalid index + pal_idx = 0; + } + pal_idx *= tga_comp; + for (j = 0; j < tga_comp; ++j) { + raw_data[j] = tga_palette[pal_idx+j]; + } + } else if(tga_rgb16) { + STBI_ASSERT(tga_comp == STBI_rgb); + stbi__tga_read_rgb16(s, raw_data); + } else { + // read in the data raw + for (j = 0; j < tga_comp; ++j) { + raw_data[j] = stbi__get8(s); + } + } + // clear the reading flag for the next pixel + read_next_pixel = 0; + } // end of reading a pixel + + // copy data + for (j = 0; j < tga_comp; ++j) + tga_data[i*tga_comp+j] = raw_data[j]; + + // in case we're in RLE mode, keep counting down + --RLE_count; + } + // do I need to invert the image? + if ( tga_inverted ) + { + for (j = 0; j*2 < tga_height; ++j) + { + int index1 = j * tga_width * tga_comp; + int index2 = (tga_height - 1 - j) * tga_width * tga_comp; + for (i = tga_width * tga_comp; i > 0; --i) + { + unsigned char temp = tga_data[index1]; + tga_data[index1] = tga_data[index2]; + tga_data[index2] = temp; + ++index1; + ++index2; + } + } + } + // clear my palette, if I had one + if ( tga_palette != NULL ) + { + STBI_FREE( tga_palette ); + } + } + + // swap RGB - if the source data was RGB16, it already is in the right order + if (tga_comp >= 3 && !tga_rgb16) + { + unsigned char* tga_pixel = tga_data; + for (i=0; i < tga_width * tga_height; ++i) + { + unsigned char temp = tga_pixel[0]; + tga_pixel[0] = tga_pixel[2]; + tga_pixel[2] = temp; + tga_pixel += tga_comp; + } + } + + // convert to target component count + if (req_comp && req_comp != tga_comp) + tga_data = stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height); + + // the things I do to get rid of an error message, and yet keep + // Microsoft's C compilers happy... [8^( + tga_palette_start = tga_palette_len = tga_palette_bits = + tga_x_origin = tga_y_origin = 0; + STBI_NOTUSED(tga_palette_start); + // OK, done + return tga_data; +} +#endif + +// ************************************************************************************************* +// Photoshop PSD loader -- PD by Thatcher Ulrich, integration by Nicolas Schulz, tweaked by STB + +#ifndef STBI_NO_PSD +static int stbi__psd_test(stbi__context *s) +{ + int r = (stbi__get32be(s) == 0x38425053); + stbi__rewind(s); + return r; +} + +static int stbi__psd_decode_rle(stbi__context *s, stbi_uc *p, int pixelCount) +{ + int count, nleft, len; + + count = 0; + while ((nleft = pixelCount - count) > 0) { + len = stbi__get8(s); + if (len == 128) { + // No-op. + } else if (len < 128) { + // Copy next len+1 bytes literally. + len++; + if (len > nleft) return 0; // corrupt data + count += len; + while (len) { + *p = stbi__get8(s); + p += 4; + len--; + } + } else if (len > 128) { + stbi_uc val; + // Next -len+1 bytes in the dest are replicated from next source byte. + // (Interpret len as a negative 8-bit int.) + len = 257 - len; + if (len > nleft) return 0; // corrupt data + val = stbi__get8(s); + count += len; + while (len) { + *p = val; + p += 4; + len--; + } + } + } + + return 1; +} + +static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) +{ + int pixelCount; + int channelCount, compression; + int channel, i; + int bitdepth; + int w,h; + stbi_uc *out; + STBI_NOTUSED(ri); + + // Check identifier + if (stbi__get32be(s) != 0x38425053) // "8BPS" + return stbi__errpuc("not PSD", "Corrupt PSD image"); + + // Check file type version. + if (stbi__get16be(s) != 1) + return stbi__errpuc("wrong version", "Unsupported version of PSD image"); + + // Skip 6 reserved bytes. + stbi__skip(s, 6 ); + + // Read the number of channels (R, G, B, A, etc). + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) + return stbi__errpuc("wrong channel count", "Unsupported number of channels in PSD image"); + + // Read the rows and columns of the image. + h = stbi__get32be(s); + w = stbi__get32be(s); + + if (h > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (w > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + // Make sure the depth is 8 bits. + bitdepth = stbi__get16be(s); + if (bitdepth != 8 && bitdepth != 16) + return stbi__errpuc("unsupported bit depth", "PSD bit depth is not 8 or 16 bit"); + + // Make sure the color mode is RGB. + // Valid options are: + // 0: Bitmap + // 1: Grayscale + // 2: Indexed color + // 3: RGB color + // 4: CMYK color + // 7: Multichannel + // 8: Duotone + // 9: Lab color + if (stbi__get16be(s) != 3) + return stbi__errpuc("wrong color format", "PSD is not in RGB color format"); + + // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.) + stbi__skip(s,stbi__get32be(s) ); + + // Skip the image resources. (resolution, pen tool paths, etc) + stbi__skip(s, stbi__get32be(s) ); + + // Skip the reserved data. + stbi__skip(s, stbi__get32be(s) ); + + // Find out if the data is compressed. + // Known values: + // 0: no compression + // 1: RLE compressed + compression = stbi__get16be(s); + if (compression > 1) + return stbi__errpuc("bad compression", "PSD has an unknown compression format"); + + // Check size + if (!stbi__mad3sizes_valid(4, w, h, 0)) + return stbi__errpuc("too large", "Corrupt PSD"); + + // Create the destination image. + + if (!compression && bitdepth == 16 && bpc == 16) { + out = (stbi_uc *) stbi__malloc_mad3(8, w, h, 0); + ri->bits_per_channel = 16; + } else + out = (stbi_uc *) stbi__malloc(4 * w*h); + + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + pixelCount = w*h; + + // Initialize the data to zero. + //memset( out, 0, pixelCount * 4 ); + + // Finally, the image data. + if (compression) { + // RLE as used by .PSD and .TIFF + // Loop until you get the number of unpacked bytes you are expecting: + // Read the next source byte into n. + // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally. + // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times. + // Else if n is 128, noop. + // Endloop + + // The RLE-compressed data is preceded by a 2-byte data count for each row in the data, + // which we're going to just skip. + stbi__skip(s, h * channelCount * 2 ); + + // Read the RLE data by channel. + for (channel = 0; channel < 4; channel++) { + stbi_uc *p; + + p = out+channel; + if (channel >= channelCount) { + // Fill this channel with default data. + for (i = 0; i < pixelCount; i++, p += 4) + *p = (channel == 3 ? 255 : 0); + } else { + // Read the RLE data. + if (!stbi__psd_decode_rle(s, p, pixelCount)) { + STBI_FREE(out); + return stbi__errpuc("corrupt", "bad RLE data"); + } + } + } + + } else { + // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...) + // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image. + + // Read the data by channel. + for (channel = 0; channel < 4; channel++) { + if (channel >= channelCount) { + // Fill this channel with default data. + if (bitdepth == 16 && bpc == 16) { + stbi__uint16 *q = ((stbi__uint16 *) out) + channel; + stbi__uint16 val = channel == 3 ? 65535 : 0; + for (i = 0; i < pixelCount; i++, q += 4) + *q = val; + } else { + stbi_uc *p = out+channel; + stbi_uc val = channel == 3 ? 255 : 0; + for (i = 0; i < pixelCount; i++, p += 4) + *p = val; + } + } else { + if (ri->bits_per_channel == 16) { // output bpc + stbi__uint16 *q = ((stbi__uint16 *) out) + channel; + for (i = 0; i < pixelCount; i++, q += 4) + *q = (stbi__uint16) stbi__get16be(s); + } else { + stbi_uc *p = out+channel; + if (bitdepth == 16) { // input bpc + for (i = 0; i < pixelCount; i++, p += 4) + *p = (stbi_uc) (stbi__get16be(s) >> 8); + } else { + for (i = 0; i < pixelCount; i++, p += 4) + *p = stbi__get8(s); + } + } + } + } + } + + // remove weird white matte from PSD + if (channelCount >= 4) { + if (ri->bits_per_channel == 16) { + for (i=0; i < w*h; ++i) { + stbi__uint16 *pixel = (stbi__uint16 *) out + 4*i; + if (pixel[3] != 0 && pixel[3] != 65535) { + float a = pixel[3] / 65535.0f; + float ra = 1.0f / a; + float inv_a = 65535.0f * (1 - ra); + pixel[0] = (stbi__uint16) (pixel[0]*ra + inv_a); + pixel[1] = (stbi__uint16) (pixel[1]*ra + inv_a); + pixel[2] = (stbi__uint16) (pixel[2]*ra + inv_a); + } + } + } else { + for (i=0; i < w*h; ++i) { + unsigned char *pixel = out + 4*i; + if (pixel[3] != 0 && pixel[3] != 255) { + float a = pixel[3] / 255.0f; + float ra = 1.0f / a; + float inv_a = 255.0f * (1 - ra); + pixel[0] = (unsigned char) (pixel[0]*ra + inv_a); + pixel[1] = (unsigned char) (pixel[1]*ra + inv_a); + pixel[2] = (unsigned char) (pixel[2]*ra + inv_a); + } + } + } + } + + // convert to desired output format + if (req_comp && req_comp != 4) { + if (ri->bits_per_channel == 16) + out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, 4, req_comp, w, h); + else + out = stbi__convert_format(out, 4, req_comp, w, h); + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + + if (comp) *comp = 4; + *y = h; + *x = w; + + return out; +} +#endif + +// ************************************************************************************************* +// Softimage PIC loader +// by Tom Seddon +// +// See http://softimage.wiki.softimage.com/index.php/INFO:_PIC_file_format +// See http://ozviz.wasp.uwa.edu.au/~pbourke/dataformats/softimagepic/ + +#ifndef STBI_NO_PIC +static int stbi__pic_is4(stbi__context *s,const char *str) +{ + int i; + for (i=0; i<4; ++i) + if (stbi__get8(s) != (stbi_uc)str[i]) + return 0; + + return 1; +} + +static int stbi__pic_test_core(stbi__context *s) +{ + int i; + + if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) + return 0; + + for(i=0;i<84;++i) + stbi__get8(s); + + if (!stbi__pic_is4(s,"PICT")) + return 0; + + return 1; +} + +typedef struct +{ + stbi_uc size,type,channel; +} stbi__pic_packet; + +static stbi_uc *stbi__readval(stbi__context *s, int channel, stbi_uc *dest) +{ + int mask=0x80, i; + + for (i=0; i<4; ++i, mask>>=1) { + if (channel & mask) { + if (stbi__at_eof(s)) return stbi__errpuc("bad file","PIC file too short"); + dest[i]=stbi__get8(s); + } + } + + return dest; +} + +static void stbi__copyval(int channel,stbi_uc *dest,const stbi_uc *src) +{ + int mask=0x80,i; + + for (i=0;i<4; ++i, mask>>=1) + if (channel&mask) + dest[i]=src[i]; +} + +static stbi_uc *stbi__pic_load_core(stbi__context *s,int width,int height,int *comp, stbi_uc *result) +{ + int act_comp=0,num_packets=0,y,chained; + stbi__pic_packet packets[10]; + + // this will (should...) cater for even some bizarre stuff like having data + // for the same channel in multiple packets. + do { + stbi__pic_packet *packet; + + if (num_packets==sizeof(packets)/sizeof(packets[0])) + return stbi__errpuc("bad format","too many packets"); + + packet = &packets[num_packets++]; + + chained = stbi__get8(s); + packet->size = stbi__get8(s); + packet->type = stbi__get8(s); + packet->channel = stbi__get8(s); + + act_comp |= packet->channel; + + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (reading packets)"); + if (packet->size != 8) return stbi__errpuc("bad format","packet isn't 8bpp"); + } while (chained); + + *comp = (act_comp & 0x10 ? 4 : 3); // has alpha channel? + + for(y=0; ytype) { + default: + return stbi__errpuc("bad format","packet has bad compression type"); + + case 0: {//uncompressed + int x; + + for(x=0;xchannel,dest)) + return 0; + break; + } + + case 1://Pure RLE + { + int left=width, i; + + while (left>0) { + stbi_uc count,value[4]; + + count=stbi__get8(s); + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pure read count)"); + + if (count > left) + count = (stbi_uc) left; + + if (!stbi__readval(s,packet->channel,value)) return 0; + + for(i=0; ichannel,dest,value); + left -= count; + } + } + break; + + case 2: {//Mixed RLE + int left=width; + while (left>0) { + int count = stbi__get8(s), i; + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (mixed read count)"); + + if (count >= 128) { // Repeated + stbi_uc value[4]; + + if (count==128) + count = stbi__get16be(s); + else + count -= 127; + if (count > left) + return stbi__errpuc("bad file","scanline overrun"); + + if (!stbi__readval(s,packet->channel,value)) + return 0; + + for(i=0;ichannel,dest,value); + } else { // Raw + ++count; + if (count>left) return stbi__errpuc("bad file","scanline overrun"); + + for(i=0;ichannel,dest)) + return 0; + } + left-=count; + } + break; + } + } + } + } + + return result; +} + +static void *stbi__pic_load(stbi__context *s,int *px,int *py,int *comp,int req_comp, stbi__result_info *ri) +{ + stbi_uc *result; + int i, x,y, internal_comp; + STBI_NOTUSED(ri); + + if (!comp) comp = &internal_comp; + + for (i=0; i<92; ++i) + stbi__get8(s); + + x = stbi__get16be(s); + y = stbi__get16be(s); + + if (y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pic header)"); + if (!stbi__mad3sizes_valid(x, y, 4, 0)) return stbi__errpuc("too large", "PIC image too large to decode"); + + stbi__get32be(s); //skip `ratio' + stbi__get16be(s); //skip `fields' + stbi__get16be(s); //skip `pad' + + // intermediate buffer is RGBA + result = (stbi_uc *) stbi__malloc_mad3(x, y, 4, 0); + if (!result) return stbi__errpuc("outofmem", "Out of memory"); + memset(result, 0xff, x*y*4); + + if (!stbi__pic_load_core(s,x,y,comp, result)) { + STBI_FREE(result); + result=0; + } + *px = x; + *py = y; + if (req_comp == 0) req_comp = *comp; + result=stbi__convert_format(result,4,req_comp,x,y); + + return result; +} + +static int stbi__pic_test(stbi__context *s) +{ + int r = stbi__pic_test_core(s); + stbi__rewind(s); + return r; +} +#endif + +// ************************************************************************************************* +// GIF loader -- public domain by Jean-Marc Lienher -- simplified/shrunk by stb + +#ifndef STBI_NO_GIF +typedef struct +{ + stbi__int16 prefix; + stbi_uc first; + stbi_uc suffix; +} stbi__gif_lzw; + +typedef struct +{ + int w,h; + stbi_uc *out; // output buffer (always 4 components) + stbi_uc *background; // The current "background" as far as a gif is concerned + stbi_uc *history; + int flags, bgindex, ratio, transparent, eflags; + stbi_uc pal[256][4]; + stbi_uc lpal[256][4]; + stbi__gif_lzw codes[8192]; + stbi_uc *color_table; + int parse, step; + int lflags; + int start_x, start_y; + int max_x, max_y; + int cur_x, cur_y; + int line_size; + int delay; +} stbi__gif; + +static int stbi__gif_test_raw(stbi__context *s) +{ + int sz; + if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') return 0; + sz = stbi__get8(s); + if (sz != '9' && sz != '7') return 0; + if (stbi__get8(s) != 'a') return 0; + return 1; +} + +static int stbi__gif_test(stbi__context *s) +{ + int r = stbi__gif_test_raw(s); + stbi__rewind(s); + return r; +} + +static void stbi__gif_parse_colortable(stbi__context *s, stbi_uc pal[256][4], int num_entries, int transp) +{ + int i; + for (i=0; i < num_entries; ++i) { + pal[i][2] = stbi__get8(s); + pal[i][1] = stbi__get8(s); + pal[i][0] = stbi__get8(s); + pal[i][3] = transp == i ? 0 : 255; + } +} + +static int stbi__gif_header(stbi__context *s, stbi__gif *g, int *comp, int is_info) +{ + stbi_uc version; + if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') + return stbi__err("not GIF", "Corrupt GIF"); + + version = stbi__get8(s); + if (version != '7' && version != '9') return stbi__err("not GIF", "Corrupt GIF"); + if (stbi__get8(s) != 'a') return stbi__err("not GIF", "Corrupt GIF"); + + stbi__g_failure_reason = ""; + g->w = stbi__get16le(s); + g->h = stbi__get16le(s); + g->flags = stbi__get8(s); + g->bgindex = stbi__get8(s); + g->ratio = stbi__get8(s); + g->transparent = -1; + + if (g->w > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + if (g->h > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + + if (comp != 0) *comp = 4; // can't actually tell whether it's 3 or 4 until we parse the comments + + if (is_info) return 1; + + if (g->flags & 0x80) + stbi__gif_parse_colortable(s,g->pal, 2 << (g->flags & 7), -1); + + return 1; +} + +static int stbi__gif_info_raw(stbi__context *s, int *x, int *y, int *comp) +{ + stbi__gif* g = (stbi__gif*) stbi__malloc(sizeof(stbi__gif)); + if (!g) return stbi__err("outofmem", "Out of memory"); + if (!stbi__gif_header(s, g, comp, 1)) { + STBI_FREE(g); + stbi__rewind( s ); + return 0; + } + if (x) *x = g->w; + if (y) *y = g->h; + STBI_FREE(g); + return 1; +} + +static void stbi__out_gif_code(stbi__gif *g, stbi__uint16 code) +{ + stbi_uc *p, *c; + int idx; + + // recurse to decode the prefixes, since the linked-list is backwards, + // and working backwards through an interleaved image would be nasty + if (g->codes[code].prefix >= 0) + stbi__out_gif_code(g, g->codes[code].prefix); + + if (g->cur_y >= g->max_y) return; + + idx = g->cur_x + g->cur_y; + p = &g->out[idx]; + g->history[idx / 4] = 1; + + c = &g->color_table[g->codes[code].suffix * 4]; + if (c[3] > 128) { // don't render transparent pixels; + p[0] = c[2]; + p[1] = c[1]; + p[2] = c[0]; + p[3] = c[3]; + } + g->cur_x += 4; + + if (g->cur_x >= g->max_x) { + g->cur_x = g->start_x; + g->cur_y += g->step; + + while (g->cur_y >= g->max_y && g->parse > 0) { + g->step = (1 << g->parse) * g->line_size; + g->cur_y = g->start_y + (g->step >> 1); + --g->parse; + } + } +} + +static stbi_uc *stbi__process_gif_raster(stbi__context *s, stbi__gif *g) +{ + stbi_uc lzw_cs; + stbi__int32 len, init_code; + stbi__uint32 first; + stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear; + stbi__gif_lzw *p; + + lzw_cs = stbi__get8(s); + if (lzw_cs > 12) return NULL; + clear = 1 << lzw_cs; + first = 1; + codesize = lzw_cs + 1; + codemask = (1 << codesize) - 1; + bits = 0; + valid_bits = 0; + for (init_code = 0; init_code < clear; init_code++) { + g->codes[init_code].prefix = -1; + g->codes[init_code].first = (stbi_uc) init_code; + g->codes[init_code].suffix = (stbi_uc) init_code; + } + + // support no starting clear code + avail = clear+2; + oldcode = -1; + + len = 0; + for(;;) { + if (valid_bits < codesize) { + if (len == 0) { + len = stbi__get8(s); // start new block + if (len == 0) + return g->out; + } + --len; + bits |= (stbi__int32) stbi__get8(s) << valid_bits; + valid_bits += 8; + } else { + stbi__int32 code = bits & codemask; + bits >>= codesize; + valid_bits -= codesize; + // @OPTIMIZE: is there some way we can accelerate the non-clear path? + if (code == clear) { // clear code + codesize = lzw_cs + 1; + codemask = (1 << codesize) - 1; + avail = clear + 2; + oldcode = -1; + first = 0; + } else if (code == clear + 1) { // end of stream code + stbi__skip(s, len); + while ((len = stbi__get8(s)) > 0) + stbi__skip(s,len); + return g->out; + } else if (code <= avail) { + if (first) { + return stbi__errpuc("no clear code", "Corrupt GIF"); + } + + if (oldcode >= 0) { + p = &g->codes[avail++]; + if (avail > 8192) { + return stbi__errpuc("too many codes", "Corrupt GIF"); + } + + p->prefix = (stbi__int16) oldcode; + p->first = g->codes[oldcode].first; + p->suffix = (code == avail) ? p->first : g->codes[code].first; + } else if (code == avail) + return stbi__errpuc("illegal code in raster", "Corrupt GIF"); + + stbi__out_gif_code(g, (stbi__uint16) code); + + if ((avail & codemask) == 0 && avail <= 0x0FFF) { + codesize++; + codemask = (1 << codesize) - 1; + } + + oldcode = code; + } else { + return stbi__errpuc("illegal code in raster", "Corrupt GIF"); + } + } + } +} + +// this function is designed to support animated gifs, although stb_image doesn't support it +// two back is the image from two frames ago, used for a very specific disposal format +static stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int *comp, int req_comp, stbi_uc *two_back) +{ + int dispose; + int first_frame; + int pi; + int pcount; + STBI_NOTUSED(req_comp); + + // on first frame, any non-written pixels get the background colour (non-transparent) + first_frame = 0; + if (g->out == 0) { + if (!stbi__gif_header(s, g, comp,0)) return 0; // stbi__g_failure_reason set by stbi__gif_header + if (!stbi__mad3sizes_valid(4, g->w, g->h, 0)) + return stbi__errpuc("too large", "GIF image is too large"); + pcount = g->w * g->h; + g->out = (stbi_uc *) stbi__malloc(4 * pcount); + g->background = (stbi_uc *) stbi__malloc(4 * pcount); + g->history = (stbi_uc *) stbi__malloc(pcount); + if (!g->out || !g->background || !g->history) + return stbi__errpuc("outofmem", "Out of memory"); + + // image is treated as "transparent" at the start - ie, nothing overwrites the current background; + // background colour is only used for pixels that are not rendered first frame, after that "background" + // color refers to the color that was there the previous frame. + memset(g->out, 0x00, 4 * pcount); + memset(g->background, 0x00, 4 * pcount); // state of the background (starts transparent) + memset(g->history, 0x00, pcount); // pixels that were affected previous frame + first_frame = 1; + } else { + // second frame - how do we dispose of the previous one? + dispose = (g->eflags & 0x1C) >> 2; + pcount = g->w * g->h; + + if ((dispose == 3) && (two_back == 0)) { + dispose = 2; // if I don't have an image to revert back to, default to the old background + } + + if (dispose == 3) { // use previous graphic + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi]) { + memcpy( &g->out[pi * 4], &two_back[pi * 4], 4 ); + } + } + } else if (dispose == 2) { + // restore what was changed last frame to background before that frame; + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi]) { + memcpy( &g->out[pi * 4], &g->background[pi * 4], 4 ); + } + } + } else { + // This is a non-disposal case eithe way, so just + // leave the pixels as is, and they will become the new background + // 1: do not dispose + // 0: not specified. + } + + // background is what out is after the undoing of the previou frame; + memcpy( g->background, g->out, 4 * g->w * g->h ); + } + + // clear my history; + memset( g->history, 0x00, g->w * g->h ); // pixels that were affected previous frame + + for (;;) { + int tag = stbi__get8(s); + switch (tag) { + case 0x2C: /* Image Descriptor */ + { + stbi__int32 x, y, w, h; + stbi_uc *o; + + x = stbi__get16le(s); + y = stbi__get16le(s); + w = stbi__get16le(s); + h = stbi__get16le(s); + if (((x + w) > (g->w)) || ((y + h) > (g->h))) + return stbi__errpuc("bad Image Descriptor", "Corrupt GIF"); + + g->line_size = g->w * 4; + g->start_x = x * 4; + g->start_y = y * g->line_size; + g->max_x = g->start_x + w * 4; + g->max_y = g->start_y + h * g->line_size; + g->cur_x = g->start_x; + g->cur_y = g->start_y; + + // if the width of the specified rectangle is 0, that means + // we may not see *any* pixels or the image is malformed; + // to make sure this is caught, move the current y down to + // max_y (which is what out_gif_code checks). + if (w == 0) + g->cur_y = g->max_y; + + g->lflags = stbi__get8(s); + + if (g->lflags & 0x40) { + g->step = 8 * g->line_size; // first interlaced spacing + g->parse = 3; + } else { + g->step = g->line_size; + g->parse = 0; + } + + if (g->lflags & 0x80) { + stbi__gif_parse_colortable(s,g->lpal, 2 << (g->lflags & 7), g->eflags & 0x01 ? g->transparent : -1); + g->color_table = (stbi_uc *) g->lpal; + } else if (g->flags & 0x80) { + g->color_table = (stbi_uc *) g->pal; + } else + return stbi__errpuc("missing color table", "Corrupt GIF"); + + o = stbi__process_gif_raster(s, g); + if (!o) return NULL; + + // if this was the first frame, + pcount = g->w * g->h; + if (first_frame && (g->bgindex > 0)) { + // if first frame, any pixel not drawn to gets the background color + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi] == 0) { + g->pal[g->bgindex][3] = 255; // just in case it was made transparent, undo that; It will be reset next frame if need be; + memcpy( &g->out[pi * 4], &g->pal[g->bgindex], 4 ); + } + } + } + + return o; + } + + case 0x21: // Comment Extension. + { + int len; + int ext = stbi__get8(s); + if (ext == 0xF9) { // Graphic Control Extension. + len = stbi__get8(s); + if (len == 4) { + g->eflags = stbi__get8(s); + g->delay = 10 * stbi__get16le(s); // delay - 1/100th of a second, saving as 1/1000ths. + + // unset old transparent + if (g->transparent >= 0) { + g->pal[g->transparent][3] = 255; + } + if (g->eflags & 0x01) { + g->transparent = stbi__get8(s); + if (g->transparent >= 0) { + g->pal[g->transparent][3] = 0; + } + } else { + // don't need transparent + stbi__skip(s, 1); + g->transparent = -1; + } + } else { + stbi__skip(s, len); + break; + } + } + while ((len = stbi__get8(s)) != 0) { + stbi__skip(s, len); + } + break; + } + + case 0x3B: // gif stream termination code + return (stbi_uc *) s; // using '1' causes warning on some compilers + + default: + return stbi__errpuc("unknown code", "Corrupt GIF"); + } + } +} + +static void *stbi__load_gif_main_outofmem(stbi__gif *g, stbi_uc *out, int **delays) +{ + STBI_FREE(g->out); + STBI_FREE(g->history); + STBI_FREE(g->background); + + if (out) STBI_FREE(out); + if (delays && *delays) STBI_FREE(*delays); + return stbi__errpuc("outofmem", "Out of memory"); +} + +static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp) +{ + if (stbi__gif_test(s)) { + int layers = 0; + stbi_uc *u = 0; + stbi_uc *out = 0; + stbi_uc *two_back = 0; + stbi__gif g; + int stride; + int out_size = 0; + int delays_size = 0; + + STBI_NOTUSED(out_size); + STBI_NOTUSED(delays_size); + + memset(&g, 0, sizeof(g)); + if (delays) { + *delays = 0; + } + + do { + u = stbi__gif_load_next(s, &g, comp, req_comp, two_back); + if (u == (stbi_uc *) s) u = 0; // end of animated gif marker + + if (u) { + *x = g.w; + *y = g.h; + ++layers; + stride = g.w * g.h * 4; + + if (out) { + void *tmp = (stbi_uc*) STBI_REALLOC_SIZED( out, out_size, layers * stride ); + if (!tmp) + return stbi__load_gif_main_outofmem(&g, out, delays); + else { + out = (stbi_uc*) tmp; + out_size = layers * stride; + } + + if (delays) { + int *new_delays = (int*) STBI_REALLOC_SIZED( *delays, delays_size, sizeof(int) * layers ); + if (!new_delays) + return stbi__load_gif_main_outofmem(&g, out, delays); + *delays = new_delays; + delays_size = layers * sizeof(int); + } + } else { + out = (stbi_uc*)stbi__malloc( layers * stride ); + if (!out) + return stbi__load_gif_main_outofmem(&g, out, delays); + out_size = layers * stride; + if (delays) { + *delays = (int*) stbi__malloc( layers * sizeof(int) ); + if (!*delays) + return stbi__load_gif_main_outofmem(&g, out, delays); + delays_size = layers * sizeof(int); + } + } + memcpy( out + ((layers - 1) * stride), u, stride ); + if (layers >= 2) { + two_back = out - 2 * stride; + } + + if (delays) { + (*delays)[layers - 1U] = g.delay; + } + } + } while (u != 0); + + // free temp buffer; + STBI_FREE(g.out); + STBI_FREE(g.history); + STBI_FREE(g.background); + + // do the final conversion after loading everything; + if (req_comp && req_comp != 4) + out = stbi__convert_format(out, 4, req_comp, layers * g.w, g.h); + + *z = layers; + return out; + } else { + return stbi__errpuc("not GIF", "Image was not as a gif type."); + } +} + +static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *u = 0; + stbi__gif g; + memset(&g, 0, sizeof(g)); + STBI_NOTUSED(ri); + + u = stbi__gif_load_next(s, &g, comp, req_comp, 0); + if (u == (stbi_uc *) s) u = 0; // end of animated gif marker + if (u) { + *x = g.w; + *y = g.h; + + // moved conversion to after successful load so that the same + // can be done for multiple frames. + if (req_comp && req_comp != 4) + u = stbi__convert_format(u, 4, req_comp, g.w, g.h); + } else if (g.out) { + // if there was an error and we allocated an image buffer, free it! + STBI_FREE(g.out); + } + + // free buffers needed for multiple frame loading; + STBI_FREE(g.history); + STBI_FREE(g.background); + + return u; +} + +static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp) +{ + return stbi__gif_info_raw(s,x,y,comp); +} +#endif + +// ************************************************************************************************* +// Radiance RGBE HDR loader +// originally by Nicolas Schulz +#ifndef STBI_NO_HDR +static int stbi__hdr_test_core(stbi__context *s, const char *signature) +{ + int i; + for (i=0; signature[i]; ++i) + if (stbi__get8(s) != signature[i]) + return 0; + stbi__rewind(s); + return 1; +} + +static int stbi__hdr_test(stbi__context* s) +{ + int r = stbi__hdr_test_core(s, "#?RADIANCE\n"); + stbi__rewind(s); + if(!r) { + r = stbi__hdr_test_core(s, "#?RGBE\n"); + stbi__rewind(s); + } + return r; +} + +#define STBI__HDR_BUFLEN 1024 +static char *stbi__hdr_gettoken(stbi__context *z, char *buffer) +{ + int len=0; + char c = '\0'; + + c = (char) stbi__get8(z); + + while (!stbi__at_eof(z) && c != '\n') { + buffer[len++] = c; + if (len == STBI__HDR_BUFLEN-1) { + // flush to end of line + while (!stbi__at_eof(z) && stbi__get8(z) != '\n') + ; + break; + } + c = (char) stbi__get8(z); + } + + buffer[len] = 0; + return buffer; +} + +static void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp) +{ + if ( input[3] != 0 ) { + float f1; + // Exponent + f1 = (float) ldexp(1.0f, input[3] - (int)(128 + 8)); + if (req_comp <= 2) + output[0] = (input[0] + input[1] + input[2]) * f1 / 3; + else { + output[0] = input[0] * f1; + output[1] = input[1] * f1; + output[2] = input[2] * f1; + } + if (req_comp == 2) output[1] = 1; + if (req_comp == 4) output[3] = 1; + } else { + switch (req_comp) { + case 4: output[3] = 1; /* fallthrough */ + case 3: output[0] = output[1] = output[2] = 0; + break; + case 2: output[1] = 1; /* fallthrough */ + case 1: output[0] = 0; + break; + } + } +} + +static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + char buffer[STBI__HDR_BUFLEN]; + char *token; + int valid = 0; + int width, height; + stbi_uc *scanline; + float *hdr_data; + int len; + unsigned char count, value; + int i, j, k, c1,c2, z; + const char *headerToken; + STBI_NOTUSED(ri); + + // Check identifier + headerToken = stbi__hdr_gettoken(s,buffer); + if (strcmp(headerToken, "#?RADIANCE") != 0 && strcmp(headerToken, "#?RGBE") != 0) + return stbi__errpf("not HDR", "Corrupt HDR image"); + + // Parse header + for(;;) { + token = stbi__hdr_gettoken(s,buffer); + if (token[0] == 0) break; + if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1; + } + + if (!valid) return stbi__errpf("unsupported format", "Unsupported HDR format"); + + // Parse width and height + // can't use sscanf() if we're not using stdio! + token = stbi__hdr_gettoken(s,buffer); + if (strncmp(token, "-Y ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format"); + token += 3; + height = (int) strtol(token, &token, 10); + while (*token == ' ') ++token; + if (strncmp(token, "+X ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format"); + token += 3; + width = (int) strtol(token, NULL, 10); + + if (height > STBI_MAX_DIMENSIONS) return stbi__errpf("too large","Very large image (corrupt?)"); + if (width > STBI_MAX_DIMENSIONS) return stbi__errpf("too large","Very large image (corrupt?)"); + + *x = width; + *y = height; + + if (comp) *comp = 3; + if (req_comp == 0) req_comp = 3; + + if (!stbi__mad4sizes_valid(width, height, req_comp, sizeof(float), 0)) + return stbi__errpf("too large", "HDR image is too large"); + + // Read data + hdr_data = (float *) stbi__malloc_mad4(width, height, req_comp, sizeof(float), 0); + if (!hdr_data) + return stbi__errpf("outofmem", "Out of memory"); + + // Load image data + // image data is stored as some number of sca + if ( width < 8 || width >= 32768) { + // Read flat data + for (j=0; j < height; ++j) { + for (i=0; i < width; ++i) { + stbi_uc rgbe[4]; + main_decode_loop: + stbi__getn(s, rgbe, 4); + stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp, rgbe, req_comp); + } + } + } else { + // Read RLE-encoded data + scanline = NULL; + + for (j = 0; j < height; ++j) { + c1 = stbi__get8(s); + c2 = stbi__get8(s); + len = stbi__get8(s); + if (c1 != 2 || c2 != 2 || (len & 0x80)) { + // not run-length encoded, so we have to actually use THIS data as a decoded + // pixel (note this can't be a valid pixel--one of RGB must be >= 128) + stbi_uc rgbe[4]; + rgbe[0] = (stbi_uc) c1; + rgbe[1] = (stbi_uc) c2; + rgbe[2] = (stbi_uc) len; + rgbe[3] = (stbi_uc) stbi__get8(s); + stbi__hdr_convert(hdr_data, rgbe, req_comp); + i = 1; + j = 0; + STBI_FREE(scanline); + goto main_decode_loop; // yes, this makes no sense + } + len <<= 8; + len |= stbi__get8(s); + if (len != width) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("invalid decoded scanline length", "corrupt HDR"); } + if (scanline == NULL) { + scanline = (stbi_uc *) stbi__malloc_mad2(width, 4, 0); + if (!scanline) { + STBI_FREE(hdr_data); + return stbi__errpf("outofmem", "Out of memory"); + } + } + + for (k = 0; k < 4; ++k) { + int nleft; + i = 0; + while ((nleft = width - i) > 0) { + count = stbi__get8(s); + if (count > 128) { + // Run + value = stbi__get8(s); + count -= 128; + if ((count == 0) || (count > nleft)) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } + for (z = 0; z < count; ++z) + scanline[i++ * 4 + k] = value; + } else { + // Dump + if ((count == 0) || (count > nleft)) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } + for (z = 0; z < count; ++z) + scanline[i++ * 4 + k] = stbi__get8(s); + } + } + } + for (i=0; i < width; ++i) + stbi__hdr_convert(hdr_data+(j*width + i)*req_comp, scanline + i*4, req_comp); + } + if (scanline) + STBI_FREE(scanline); + } + + return hdr_data; +} + +static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp) +{ + char buffer[STBI__HDR_BUFLEN]; + char *token; + int valid = 0; + int dummy; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + if (stbi__hdr_test(s) == 0) { + stbi__rewind( s ); + return 0; + } + + for(;;) { + token = stbi__hdr_gettoken(s,buffer); + if (token[0] == 0) break; + if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1; + } + + if (!valid) { + stbi__rewind( s ); + return 0; + } + token = stbi__hdr_gettoken(s,buffer); + if (strncmp(token, "-Y ", 3)) { + stbi__rewind( s ); + return 0; + } + token += 3; + *y = (int) strtol(token, &token, 10); + while (*token == ' ') ++token; + if (strncmp(token, "+X ", 3)) { + stbi__rewind( s ); + return 0; + } + token += 3; + *x = (int) strtol(token, NULL, 10); + *comp = 3; + return 1; +} +#endif // STBI_NO_HDR + +#ifndef STBI_NO_BMP +static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp) +{ + void *p; + stbi__bmp_data info; + + info.all_a = 255; + p = stbi__bmp_parse_header(s, &info); + if (p == NULL) { + stbi__rewind( s ); + return 0; + } + if (x) *x = s->img_x; + if (y) *y = s->img_y; + if (comp) { + if (info.bpp == 24 && info.ma == 0xff000000) + *comp = 3; + else + *comp = info.ma ? 4 : 3; + } + return 1; +} +#endif + +#ifndef STBI_NO_PSD +static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp) +{ + int channelCount, dummy, depth; + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + if (stbi__get32be(s) != 0x38425053) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 1) { + stbi__rewind( s ); + return 0; + } + stbi__skip(s, 6); + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) { + stbi__rewind( s ); + return 0; + } + *y = stbi__get32be(s); + *x = stbi__get32be(s); + depth = stbi__get16be(s); + if (depth != 8 && depth != 16) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 3) { + stbi__rewind( s ); + return 0; + } + *comp = 4; + return 1; +} + +static int stbi__psd_is16(stbi__context *s) +{ + int channelCount, depth; + if (stbi__get32be(s) != 0x38425053) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 1) { + stbi__rewind( s ); + return 0; + } + stbi__skip(s, 6); + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) { + stbi__rewind( s ); + return 0; + } + STBI_NOTUSED(stbi__get32be(s)); + STBI_NOTUSED(stbi__get32be(s)); + depth = stbi__get16be(s); + if (depth != 16) { + stbi__rewind( s ); + return 0; + } + return 1; +} +#endif + +#ifndef STBI_NO_PIC +static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp) +{ + int act_comp=0,num_packets=0,chained,dummy; + stbi__pic_packet packets[10]; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) { + stbi__rewind(s); + return 0; + } + + stbi__skip(s, 88); + + *x = stbi__get16be(s); + *y = stbi__get16be(s); + if (stbi__at_eof(s)) { + stbi__rewind( s); + return 0; + } + if ( (*x) != 0 && (1 << 28) / (*x) < (*y)) { + stbi__rewind( s ); + return 0; + } + + stbi__skip(s, 8); + + do { + stbi__pic_packet *packet; + + if (num_packets==sizeof(packets)/sizeof(packets[0])) + return 0; + + packet = &packets[num_packets++]; + chained = stbi__get8(s); + packet->size = stbi__get8(s); + packet->type = stbi__get8(s); + packet->channel = stbi__get8(s); + act_comp |= packet->channel; + + if (stbi__at_eof(s)) { + stbi__rewind( s ); + return 0; + } + if (packet->size != 8) { + stbi__rewind( s ); + return 0; + } + } while (chained); + + *comp = (act_comp & 0x10 ? 4 : 3); + + return 1; +} +#endif + +// ************************************************************************************************* +// Portable Gray Map and Portable Pixel Map loader +// by Ken Miller +// +// PGM: http://netpbm.sourceforge.net/doc/pgm.html +// PPM: http://netpbm.sourceforge.net/doc/ppm.html +// +// Known limitations: +// Does not support comments in the header section +// Does not support ASCII image data (formats P2 and P3) + +#ifndef STBI_NO_PNM + +static int stbi__pnm_test(stbi__context *s) +{ + char p, t; + p = (char) stbi__get8(s); + t = (char) stbi__get8(s); + if (p != 'P' || (t != '5' && t != '6')) { + stbi__rewind( s ); + return 0; + } + return 1; +} + +static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *out; + STBI_NOTUSED(ri); + + ri->bits_per_channel = stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n); + if (ri->bits_per_channel == 0) + return 0; + + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + *x = s->img_x; + *y = s->img_y; + if (comp) *comp = s->img_n; + + if (!stbi__mad4sizes_valid(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0)) + return stbi__errpuc("too large", "PNM too large"); + + out = (stbi_uc *) stbi__malloc_mad4(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0); + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + if (!stbi__getn(s, out, s->img_n * s->img_x * s->img_y * (ri->bits_per_channel / 8))) { + STBI_FREE(out); + return stbi__errpuc("bad PNM", "PNM file truncated"); + } + + if (req_comp && req_comp != s->img_n) { + if (ri->bits_per_channel == 16) { + out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, s->img_n, req_comp, s->img_x, s->img_y); + } else { + out = stbi__convert_format(out, s->img_n, req_comp, s->img_x, s->img_y); + } + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + return out; +} + +static int stbi__pnm_isspace(char c) +{ + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; +} + +static void stbi__pnm_skip_whitespace(stbi__context *s, char *c) +{ + for (;;) { + while (!stbi__at_eof(s) && stbi__pnm_isspace(*c)) + *c = (char) stbi__get8(s); + + if (stbi__at_eof(s) || *c != '#') + break; + + while (!stbi__at_eof(s) && *c != '\n' && *c != '\r' ) + *c = (char) stbi__get8(s); + } +} + +static int stbi__pnm_isdigit(char c) +{ + return c >= '0' && c <= '9'; +} + +static int stbi__pnm_getinteger(stbi__context *s, char *c) +{ + int value = 0; + + while (!stbi__at_eof(s) && stbi__pnm_isdigit(*c)) { + value = value*10 + (*c - '0'); + *c = (char) stbi__get8(s); + if((value > 214748364) || (value == 214748364 && *c > '7')) + return stbi__err("integer parse overflow", "Parsing an integer in the PPM header overflowed a 32-bit int"); + } + + return value; +} + +static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp) +{ + int maxv, dummy; + char c, p, t; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + stbi__rewind(s); + + // Get identifier + p = (char) stbi__get8(s); + t = (char) stbi__get8(s); + if (p != 'P' || (t != '5' && t != '6')) { + stbi__rewind(s); + return 0; + } + + *comp = (t == '6') ? 3 : 1; // '5' is 1-component .pgm; '6' is 3-component .ppm + + c = (char) stbi__get8(s); + stbi__pnm_skip_whitespace(s, &c); + + *x = stbi__pnm_getinteger(s, &c); // read width + if(*x == 0) + return stbi__err("invalid width", "PPM image header had zero or overflowing width"); + stbi__pnm_skip_whitespace(s, &c); + + *y = stbi__pnm_getinteger(s, &c); // read height + if (*y == 0) + return stbi__err("invalid width", "PPM image header had zero or overflowing width"); + stbi__pnm_skip_whitespace(s, &c); + + maxv = stbi__pnm_getinteger(s, &c); // read max value + if (maxv > 65535) + return stbi__err("max value > 65535", "PPM image supports only 8-bit and 16-bit images"); + else if (maxv > 255) + return 16; + else + return 8; +} + +static int stbi__pnm_is16(stbi__context *s) +{ + if (stbi__pnm_info(s, NULL, NULL, NULL) == 16) + return 1; + return 0; +} +#endif + +static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp) +{ + #ifndef STBI_NO_JPEG + if (stbi__jpeg_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PNG + if (stbi__png_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_GIF + if (stbi__gif_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_BMP + if (stbi__bmp_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PSD + if (stbi__psd_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PIC + if (stbi__pic_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PNM + if (stbi__pnm_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_HDR + if (stbi__hdr_info(s, x, y, comp)) return 1; + #endif + + // test tga last because it's a crappy test! + #ifndef STBI_NO_TGA + if (stbi__tga_info(s, x, y, comp)) + return 1; + #endif + return stbi__err("unknown image type", "Image not of any known type, or corrupt"); +} + +static int stbi__is_16_main(stbi__context *s) +{ + #ifndef STBI_NO_PNG + if (stbi__png_is16(s)) return 1; + #endif + + #ifndef STBI_NO_PSD + if (stbi__psd_is16(s)) return 1; + #endif + + #ifndef STBI_NO_PNM + if (stbi__pnm_is16(s)) return 1; + #endif + return 0; +} + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result; + if (!f) return stbi__err("can't fopen", "Unable to open file"); + result = stbi_info_from_file(f, x, y, comp); + fclose(f); + return result; +} + +STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp) +{ + int r; + stbi__context s; + long pos = ftell(f); + stbi__start_file(&s, f); + r = stbi__info_main(&s,x,y,comp); + fseek(f,pos,SEEK_SET); + return r; +} + +STBIDEF int stbi_is_16_bit(char const *filename) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result; + if (!f) return stbi__err("can't fopen", "Unable to open file"); + result = stbi_is_16_bit_from_file(f); + fclose(f); + return result; +} + +STBIDEF int stbi_is_16_bit_from_file(FILE *f) +{ + int r; + stbi__context s; + long pos = ftell(f); + stbi__start_file(&s, f); + r = stbi__is_16_main(&s); + fseek(f,pos,SEEK_SET); + return r; +} +#endif // !STBI_NO_STDIO + +STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__info_main(&s,x,y,comp); +} + +STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y, int *comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); + return stbi__info_main(&s,x,y,comp); +} + +STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__is_16_main(&s); +} + +STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *c, void *user) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); + return stbi__is_16_main(&s); +} + +#endif // STB_IMAGE_IMPLEMENTATION + +/* + revision history: + 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs + 2.19 (2018-02-11) fix warning + 2.18 (2018-01-30) fix warnings + 2.17 (2018-01-29) change sbti__shiftsigned to avoid clang -O2 bug + 1-bit BMP + *_is_16_bit api + avoid warnings + 2.16 (2017-07-23) all functions have 16-bit variants; + STBI_NO_STDIO works again; + compilation fixes; + fix rounding in unpremultiply; + optimize vertical flip; + disable raw_len validation; + documentation fixes + 2.15 (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode; + warning fixes; disable run-time SSE detection on gcc; + uniform handling of optional "return" values; + thread-safe initialization of zlib tables + 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs + 2.13 (2016-11-29) add 16-bit API, only supported for PNG right now + 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes + 2.11 (2016-04-02) allocate large structures on the stack + remove white matting for transparent PSD + fix reported channel count for PNG & BMP + re-enable SSE2 in non-gcc 64-bit + support RGB-formatted JPEG + read 16-bit PNGs (only as 8-bit) + 2.10 (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED + 2.09 (2016-01-16) allow comments in PNM files + 16-bit-per-pixel TGA (not bit-per-component) + info() for TGA could break due to .hdr handling + info() for BMP to shares code instead of sloppy parse + can use STBI_REALLOC_SIZED if allocator doesn't support realloc + code cleanup + 2.08 (2015-09-13) fix to 2.07 cleanup, reading RGB PSD as RGBA + 2.07 (2015-09-13) fix compiler warnings + partial animated GIF support + limited 16-bpc PSD support + #ifdef unused functions + bug with < 92 byte PIC,PNM,HDR,TGA + 2.06 (2015-04-19) fix bug where PSD returns wrong '*comp' value + 2.05 (2015-04-19) fix bug in progressive JPEG handling, fix warning + 2.04 (2015-04-15) try to re-enable SIMD on MinGW 64-bit + 2.03 (2015-04-12) extra corruption checking (mmozeiko) + stbi_set_flip_vertically_on_load (nguillemot) + fix NEON support; fix mingw support + 2.02 (2015-01-19) fix incorrect assert, fix warning + 2.01 (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit without -msse2 + 2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG + 2.00 (2014-12-25) optimize JPG, including x86 SSE2 & NEON SIMD (ryg) + progressive JPEG (stb) + PGM/PPM support (Ken Miller) + STBI_MALLOC,STBI_REALLOC,STBI_FREE + GIF bugfix -- seemingly never worked + STBI_NO_*, STBI_ONLY_* + 1.48 (2014-12-14) fix incorrectly-named assert() + 1.47 (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar Cornut & stb) + optimize PNG (ryg) + fix bug in interlaced PNG with user-specified channel count (stb) + 1.46 (2014-08-26) + fix broken tRNS chunk (colorkey-style transparency) in non-paletted PNG + 1.45 (2014-08-16) + fix MSVC-ARM internal compiler error by wrapping malloc + 1.44 (2014-08-07) + various warning fixes from Ronny Chevalier + 1.43 (2014-07-15) + fix MSVC-only compiler problem in code changed in 1.42 + 1.42 (2014-07-09) + don't define _CRT_SECURE_NO_WARNINGS (affects user code) + fixes to stbi__cleanup_jpeg path + added STBI_ASSERT to avoid requiring assert.h + 1.41 (2014-06-25) + fix search&replace from 1.36 that messed up comments/error messages + 1.40 (2014-06-22) + fix gcc struct-initialization warning + 1.39 (2014-06-15) + fix to TGA optimization when req_comp != number of components in TGA; + fix to GIF loading because BMP wasn't rewinding (whoops, no GIFs in my test suite) + add support for BMP version 5 (more ignored fields) + 1.38 (2014-06-06) + suppress MSVC warnings on integer casts truncating values + fix accidental rename of 'skip' field of I/O + 1.37 (2014-06-04) + remove duplicate typedef + 1.36 (2014-06-03) + convert to header file single-file library + if de-iphone isn't set, load iphone images color-swapped instead of returning NULL + 1.35 (2014-05-27) + various warnings + fix broken STBI_SIMD path + fix bug where stbi_load_from_file no longer left file pointer in correct place + fix broken non-easy path for 32-bit BMP (possibly never used) + TGA optimization by Arseny Kapoulkine + 1.34 (unknown) + use STBI_NOTUSED in stbi__resample_row_generic(), fix one more leak in tga failure case + 1.33 (2011-07-14) + make stbi_is_hdr work in STBI_NO_HDR (as specified), minor compiler-friendly improvements + 1.32 (2011-07-13) + support for "info" function for all supported filetypes (SpartanJ) + 1.31 (2011-06-20) + a few more leak fixes, bug in PNG handling (SpartanJ) + 1.30 (2011-06-11) + added ability to load files via callbacks to accomidate custom input streams (Ben Wenger) + removed deprecated format-specific test/load functions + removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway + error cases in bmp and tga give messages and don't leak (Raymond Barbiero, grisha) + fix inefficiency in decoding 32-bit BMP (David Woo) + 1.29 (2010-08-16) + various warning fixes from Aurelien Pocheville + 1.28 (2010-08-01) + fix bug in GIF palette transparency (SpartanJ) + 1.27 (2010-08-01) + cast-to-stbi_uc to fix warnings + 1.26 (2010-07-24) + fix bug in file buffering for PNG reported by SpartanJ + 1.25 (2010-07-17) + refix trans_data warning (Won Chun) + 1.24 (2010-07-12) + perf improvements reading from files on platforms with lock-heavy fgetc() + minor perf improvements for jpeg + deprecated type-specific functions so we'll get feedback if they're needed + attempt to fix trans_data warning (Won Chun) + 1.23 fixed bug in iPhone support + 1.22 (2010-07-10) + removed image *writing* support + stbi_info support from Jetro Lauha + GIF support from Jean-Marc Lienher + iPhone PNG-extensions from James Brown + warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err. Janez (U+017D)emva) + 1.21 fix use of 'stbi_uc' in header (reported by jon blow) + 1.20 added support for Softimage PIC, by Tom Seddon + 1.19 bug in interlaced PNG corruption check (found by ryg) + 1.18 (2008-08-02) + fix a threading bug (local mutable static) + 1.17 support interlaced PNG + 1.16 major bugfix - stbi__convert_format converted one too many pixels + 1.15 initialize some fields for thread safety + 1.14 fix threadsafe conversion bug + header-file-only version (#define STBI_HEADER_FILE_ONLY before including) + 1.13 threadsafe + 1.12 const qualifiers in the API + 1.11 Support installable IDCT, colorspace conversion routines + 1.10 Fixes for 64-bit (don't use "unsigned long") + optimized upsampling by Fabian "ryg" Giesen + 1.09 Fix format-conversion for PSD code (bad global variables!) + 1.08 Thatcher Ulrich's PSD code integrated by Nicolas Schulz + 1.07 attempt to fix C++ warning/errors again + 1.06 attempt to fix C++ warning/errors again + 1.05 fix TGA loading to return correct *comp and use good luminance calc + 1.04 default float alpha is 1, not 255; use 'void *' for stbi_image_free + 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR + 1.02 support for (subset of) HDR files, float interface for preferred access to them + 1.01 fix bug: possible bug in handling right-side up bmps... not sure + fix bug: the stbi__bmp_load() and stbi__tga_load() functions didn't work at all + 1.00 interface to zlib that skips zlib header + 0.99 correct handling of alpha in palette + 0.98 TGA loader by lonesock; dynamically add loaders (untested) + 0.97 jpeg errors on too large a file; also catch another malloc failure + 0.96 fix detection of invalid v value - particleman@mollyrocket forum + 0.95 during header scan, seek to markers in case of padding + 0.94 STBI_NO_STDIO to disable stdio usage; rename all #defines the same + 0.93 handle jpegtran output; verbose errors + 0.92 read 4,8,16,24,32-bit BMP files of several formats + 0.91 output 24-bit Windows 3.0 BMP files + 0.90 fix a few more warnings; bump version number to approach 1.0 + 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd + 0.60 fix compiling as c++ + 0.59 fix warnings: merge Dave Moore's -Wall fixes + 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian + 0.57 fix bug: jpg last huffman symbol before marker was >9 bits but less than 16 available + 0.56 fix bug: zlib uncompressed mode len vs. nlen + 0.55 fix bug: restart_interval not initialized to 0 + 0.54 allow NULL for 'int *comp' + 0.53 fix bug in png 3->4; speedup png decoding + 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments + 0.51 obey req_comp requests, 1-component jpegs return as 1-component, + on 'test' only check type, not whether we support this variant + 0.50 (2006-11-19) + first released version +*/ + + +/* +------------------------------------------------------------------------------ +This software is available under 2 licenses -- choose whichever you prefer. +------------------------------------------------------------------------------ +ALTERNATIVE A - MIT License +Copyright (c) 2017 Sean Barrett +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +------------------------------------------------------------------------------ +ALTERNATIVE B - Public Domain (www.unlicense.org) +This is free and unencumbered software released into the public domain. +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +------------------------------------------------------------------------------ +*/