From 435b544540df849a8b25fc7f2a6cb5570fe7bc3c Mon Sep 17 00:00:00 2001 From: Katajisto Date: Thu, 2 Apr 2026 15:41:43 +0300 Subject: [PATCH] engine tooling work --- libtacoma.so | Bin 654712 -> 654664 bytes log_nvprosample.txt | 54 - modules/Tacoma/libtacoma.so | Bin 654712 -> 654664 bytes modules/Tacoma/module.jai | 2 +- settings.cfg | 2 +- src/assets/asset_manager.jai | 309 +- src/assets/loaders.jai | 5 +- src/assets/rdm_loader.jai | 43 +- src/editor/editor.jai | 6 +- src/editor/level_editor.jai | 83 +- src/editor/picker.jai | 111 +- src/editor/tacoma.jai | 54 +- src/editor/trile_editor.jai | 261 +- src/editor/trile_thumbnails.jai | 178 + src/input/keybinds.jai | 13 + src/main.jai | 5 +- src/pack_hotreload.jai | 2 +- src/particles/particles.jai | 5 +- src/rendering/backend.jai | 9 +- src/rendering/backend_sokol.jai | 72 +- src/rendering/debug_draw.jai | 144 + src/rendering/helpers.jai | 7 +- src/rendering/meshgen.jai | 3 +- src/rendering/pipelines.jai | 37 +- src/rendering/rendering.jai | 1 + src/rendering/tasks.jai | 11 +- src/shaders/jai/shader_debugline.jai | 316 + src/shaders/jai/shader_plane.jai | 548 +- src/shaders/jai/shader_sky.jai | 516 +- src/shaders/jai/shader_trile.jai | 8879 +++++++++++++------------- src/shaders/jai/shader_trixel.jai | 1857 +++--- src/shaders/shader_debugline.glsl | 30 + src/shaders/shader_plane.glsl | 10 +- src/shaders/shader_sky.glsl | 22 +- src/shaders/shader_trile.glsl | 24 +- src/shaders/shader_trixel.glsl | 11 +- src/trile.jai | 50 +- src/ui/ui.jai | 4 +- src/world.jai | 101 +- 39 files changed, 7641 insertions(+), 6144 deletions(-) create mode 100644 src/editor/trile_thumbnails.jai create mode 100644 src/rendering/debug_draw.jai create mode 100644 src/shaders/jai/shader_debugline.jai create mode 100644 src/shaders/shader_debugline.glsl diff --git a/libtacoma.so b/libtacoma.so index e30a93e5380aa5fd659a5514402a1f0c043a2b9a..5cbefb9de71722f6106c91d6acdac4aec9fb3a45 100755 GIT binary patch delta 145577 zcmZ@>30zgh_rG@@C@%OODn4-qMMd1e#56Z>eIzQD`xd0RreW^u!<6(z7FwgjN-Dq65u`oSb#7DlBV4m}T3~w$ekiLFG-3px#EkgL)VBAJluO8akq*+E4>ggHS7?+EGJLtD;szb?Ta1tA(37sH)V* zwGpbaL=9O@+0r%@-PPC-pWor*dQbq4B8)Y+)>P~E8M zsEbgaLtTuz6!itv7g1kA%|SI3;Yw6hUdDAb>MN+PF>DR4Z=kM4eG~O<)Xk_{P`9G0 z@-D7Q}Se?+~E>MK9t{%2G#>J`-MsH)t+^$*nBsDGl~Mg0f03{?~G3)CQi@vn%RN~o1l ztDve9f@@XOYN*vwYoIz&YoXRbt&3U@Rh0&~Hbjj?ZHyX)+7z`JYI9UoTHx9eH3qdc z!xa1>f$>+R4S;c|?NA>u|n* z0@u-~V^PO5>}g!5pgx28tQ-H#LY;>?A9VrhLexd5&!H|xRpohHm!syOu0SkZm5*6yHDFR z?Hkl{s25PbLoG&CqKX|3Li{^)J+aP|HxY0Js~f4K)x|m2$WS zp;kn#jA};>L9LEjBS7n{h2f?asw#DGt%n+c8j0EnRh1@ujpl1hTw_t&>=7m&83v~=gD&=+;1o%5@JQ~H+8JFC|mV%wQkdzl_kI^@lgoqyH| z7ka9Z5b4xw8L{=9fnQX?9550@HCgm&P&s34{i=bdozPQ(bi>F2$(d)EL=Q9y>pS)S z#tr-%VE+5Ok<-Yjmop;5oq_p2R{D=d|8S@Nf{fi8cng>j;Z zQ{QS_!u_Li(GC#3XM{vJ_46jr_l$%HXJA~4PwIJNDsV@Pb!gPrypL1z^fAT>zy}-a zBAqK5)C}xZnHv~UO=<>K-R0{3xVw`#lBNeKrnUENx5b$bd2VOI7;6B9I z-q@)p84(Sgy4OgEcIs`6{q6t;Bg^GwmN8hWf#uV`!s{0-w$bEobxF5&);*~=M5 z2rN6=&|#Fxrj=)z-1Zn#Bb|YlmiTn~Tq&)$HKszw9VInzXdPd7`Ne9X zZ$Y|5#uv<`HK``Y{?PrL;yE;R{f7&k!ph!SkXG^nXBF>;{(uga?WK4THO z*vS01%oNet>~tN|0Hf5ufzcIwYF0BsVDn5_S;a_UiLKZ1=LxZfnVe}WFa zZi@WU6o1m_-_#j+7n9HQUyM&g)0%2zjomRdVYvv5O^I=-sZ$?h=*^t^_huK@nVosc z6gkEe_K`UXVJ3Z;>EQ2}QVu954lD(KnhfIxXK zNQDOQd(4)@=1@kPR_bBSghM8u64ierCaR`B&WLCQ%V3RXTFOXnRa4I}Y04RkfC-g8 zy(gJAx@?ZYI5Q$FHhcVwvRdHAnm!x-2JKowvYL-2a?#2lr;&?6{oXXjhh|jzC(lRx zt~n(?GGgPM?k`qD6vBOJ7%h3>%4Qifl;APjRj@`(Hvh$Hsx`rjUw;tZq&iYQ_{4A` z8p+|e_Xh+|IYRtrF`tsbCLg28_>hS2!-!{iG36Wd$}Gjr2%c_Sif!WlE`&HajuI98 z$}C&UaqEi&Z_e=SG=dj(B~|*W6%I=M0R&Hb_rV_IFrNYk!PUA#mD{xV)(;zng0la zySN);KGw8#nga`^fwUvp#0`2LAv+aMK!;HJQFpXIM-#k=Gw5T;KB_#%cFj9N3PliD zn=_W}J%t2cVR&2{QmA;1V%*`rYy8B9EwUJPjEfq?Y$8p3u2f`9UE~Zq`y7c$UPNN< zasM2K-o}|aqA|5CdYsy-1)(Zq+Y`Jr_d%X*XEJ?n;?|A1MR#W%HaH()GXJQ6C8S&W%>eU^du3sWQB%) zLiEMOBzOqJW4aK1_WB16I2L4zf4Ex6Yeu~;6;sbK>+mtex(R#0lUtef7Gk}gRXH?- zRmpphb<#@&kNJi8EN1$5jsC5jso`q~TO2{$!Wny|7Qxdlk=S|+|LR$W_aJUhGkpG& z1a}-IIHILlJ~9etI^EUS9Pw-pgn6@+&!)cQ7EmjnStB1NZh31T?8|!g^6)-H-cunr*JIn&-4vD6Wn1Lx5kKiici`b5Ax}} zp81#uD)1*ndb2!rjC!2>DS7r;MqFXXaJ=;(qfeL6%+eau%tFvL%kLPs2+g4t$J5kk z!0^|Ki2h7dKYFYfwKIK5qui|z3bG~MK z)8BcJTkKkb$2TH-`{u*1h<(aVd1r|69_G_D#)P}I;@2Kz6j`4d6qF-)7Ds^L+>JC# zH$-=$54S|DNf<#hVptUYJBi?VTNHnzZ`X>k!?Flex{LaXm|~WUWP)dJdr-w(W9kH_ zyL>;w7FZMtdz9dsB~%Xhh%NmMS*QkGw1jw~kGD9$oPh*)y!W8=f2Nx7Xf57O955ng znUp{ciY$z-7$GT6x2+ptb2mK5?)`P7RvPDefWQDoq&z|c1C`9uyBG6(`$3*lC$Q;flJp;#zCD>tv#w8` zX>0OvYw?!oSdD!;#`Nj?>yuZxGewrpEaSC=w(dcN#_k}~r}rnLq;W9lo=qJn{zxf0 zNz?W-;?gVJHE}+KM1MC8X;YrdbV-G<9fHTFQipvT zh+2oK1L>(WNkhmBwN^6cWRNrQ=u3pQt{FznBzD%dK{fXB0!yeUHF6$tx*Lq8R%v`} zwvm;a!FeX#64v(>lJwF*QZ9gW*T#QF@a(Dt@4@gY(}}->cQ;^bmf!{^+^rQgBCAwl z#Qt<@P-K}K&vJ&=o*@VDW$4!%5q)VQ@%f1^TD>;R$K0*l4+i_5B6z&nVMz5&qby@; z7pMDtCZV;BBu1V6s^Z{;pJK_Q88JlfuxyLJ*h==u+eU^6VQ;pxU6U<#ok_7PT1&G8 zues0Df@VA~fZ%0jsboy;THl?WN&3~t`b?GAmy+0m6{LQ17W*#y+C+7Nk22Ey7pJrB zNc}vEb6oFF@MKGO%V$u`FYRnPrCaj_iD{duLGI(!-+3(HZ}z@;ON@g zu>=oqrWC?->`(19yDVHAb;i2(PWK|D6?L?++H$n<_v6$m#d7GgVlT%l9vE2A zEKZ&f*_KsD7hcI0Skm&YM@|05(w9QqIoQCdK}{~9VMyk|`yFA-g!B4pHp@yYB>N=W zXu7MHaH>4UI^ob2_7_Wb{OA*c$A3>f z%V32XHYGlJ>7)>5vsw1Dqh|X%s@gt31Odv_rIEzQHxru3{+kiEMztbzx@A#UP@CWd zKhh8^U^xvESiWVG_WCA*=k_HrGkD~JYY;q~4^Ih;_x9u^!?bwIHnZDgZeUrP4(?9y zcuO4ml=D=$CC>eAY)^28wdqH#iY0Y;xS|yLA>Fe7Z)U3st^I`dWY|2_leQJV6MNuU5O}LUNM6Wd@VMQl-0FZ{axf(#V6ddf}4jm0pM;eohSLas>Ep~Gm5b=I=YSek^LSSd@T#!_!bE$ zHYc;Dbs>GVwR?!Z_$#7UAJ3@ra}}bGIjIQ!CjXPX2FDB_*6Jj!69Fp!$~;Vk{*+>3^GmEolKp?J(wRx@ML~7bA$zK zE1({i-liVE%0qS&X-|1T@*#rzHke%zRotdVmax(^kpyI0X4YRh+=Jt!&~g?m!B_Fg z=4jA^;a@#X@R)W)U&=$13%F7U=~wk%(|q|i$Vm;t`Q=V!W>l|`8l?O~Jt(D%wmz2y zG$nwKK8E95OdoxZxx7iIzT{G+z*v;*bPwS85#Nv8sWB00 z$2yUeV#~45zRd&=A3!Gfnz{936Bk)bT)rpKYnF4Xvujk~#f!K+K7)pDnB`6{YEWuv zaG@!g#<~jV=3<2`-u&TF9+S7p8Qx<7IWH1@!7s|h9q>UK3(lEK4Z`P=?axvNwfs<4 zNPQfH!UodtT7Qz${Ri8r)MBT5+o_dfBC&abXY0v$f~Q+@_xXVYkGGuE&i;bn#T$rE zl&J&0@)>HvvG}zt$9g4EgJjD<;A5FS&amIJ2wRj-oh)K@PZ))dIm4de&J@Vj zi}|HhCexpbW4LA0SMh+!A8#d`K4z#=1cpfl{uTa0Z(R>xSIWu|drhBGm2B4LvsCJlY7q2xq@ z=UOKBK+dW0mYiB<=wqDj<)eAz)#q?1zIXQZ|07JRFa6ZWCx??^4w|j-+KmSw_cwxn z$ab3omofd0*JzcPejvg-;BGDXRWeOQMpT+W3R%PYoor%M#BVU0Q!}miU>0CmdrZOd zR0&Q~8lyB~g)%!6Jl=f4h>`aRe)ts<9M75}DVyaX9{Ey>3pL;!OuQwB+%$3qIuk!w zMBKD=vTF}^$ihzv9{w|p?fZ1m5_pZ9)|dc&nci!}ra9e9c2ld;&k4Jlb?e%gjnbd3 z!JXX03#?pTV1+XMfVM;*V_Co@Lz*&H(R5-EMYB=sk-?eA(S_U_qimM&;ncukIdu}@ z1W&O9hKuY@MV74p>?}6N95Pb`^M4-OFmtJHeo;C}X+h<30U@&Qk|lg^MkdNF{i? zgZtteqs0#5qrE^rzMSb#ZZUgTOS9(QCH<*^!`ME&iTl}M^i*J3L%c#6S97c*`qP1N9xH^LPYa0`&L8)bRG~2j=*DX~s zv6L@5`jORYbF2KC1W#6P}coaBKXT$XO-Nl2xL66Mdd#Z`wB5guAsg%Na%c z|5!@cn-im4OM2?hE}3m{$x6+LKHNfIekLnqewT%a;p=gela!$yeILxw-LM2QLrfkS zygOT>@G!x1$5Rj-$d*fOM*>nT@%}p_wvAJN$B0EXZO?;VWI5cqgQRAT#zQn3oVvB# zXSVa#U>avz3mm=?o%nv}-gZ6|dj{ZoPjaRb*z5|GlK;IkP% z9Qj@ej^V?Jh72Dg3m4*`aqKQ)m-ZPo^DPi(@(`q0hQK?S*d_D(77w$l&M6~>Q$|yU zPwhkW#g@ItYm_OgYSvV_*N7N_*QleYnd5u%m_WK{jXDuL*Ai~N+(7Vn4l5s0O3|L+ zb!#rKTQQnunfyTFRYO2!&UTYeS1o-L*~3P|rBzHNJLR$_pK*f@|B=~?jT0T6Zixx1 zjGx9c0YT9$9v-Y>9;_A&e=&vVwa=-)hZsJq2f+(0r>tK;MDScoD*lNk7Hn*B>U<-l zy)$u$WHBMsN%X-i3;!b~^lC@+$(ER~-pEOErmi+4PYo^EvPs)9jg|I4{(_uuGnBn+ zXzeVU#xG%06{)P7r0vF{KA4De2%F4Hs4rOO_c*X>mI?agAd;SK*~!!xLGW}-*8YG- zUekDY&e>Kw(AK0!q_-?4pAIEP@h8dGFw|xV<3wI+*$S*=h4L&4&BkKWj12sS&%v(V zFrMHsX5xeA_*U@gJQ``1(THQ8wr0?pZ<6J*EuUh&Y7|a$x{tlVV))d#GIwJFi%+)X z-TF?Z=M%dmrk}|hmv}Gfe~rU&6Ejf4J1nF97j((dPw`B#IM273 z?FycJlw_S@S!RhxFs6=m>R%ZlBc1N(zO1z6<;fXjG_y12(g45dV`0;ww1TJe2TQ{^q#<& zD(Yk>HqC`zL|<$$#$T0OAsT%{GsR7$q z);lylzOM)F9H+M7e8h&`tXYM9P=jpC7T{20QnZNQ z(ff?pliel7;w~*7BR*-C*EEIi5})K9YVh2e_BU(Pr86}Mw|K-2^gwx5I)8=l+lX#Q z3{w*%+pB6ehEIX;-+DVF8# z5i@~0v~*s&M>2hR-r^Nlg2Zz<#HWZ?2{BCH022xQaBBsYW5ad%)bTvt*-CEk^Fm@| zeKi{Y28A<+SwJHtxNHEs=UH!l#PSo{$qVUg2) zn%CcHmZi%33{SDZqmc^LXq8&r;Rr&f8eQM7U{|q}N&|_$*y4s4$hyWi{X_JfM(V>( z_a07d;p+FkDC%dustC*!wO~oHe6kVDGbP0`Q=a&cG;w@EQDrE(k5)31G_hu|AnFm0 zhb>*oMITgGi*FEzwY&t_GLaqG5+eJO187B-@xT5i@rj8hg?xK}&C7^SsiF8|2KkQf zBGRcrxW)5#;5bPsl*YeGyUWY$d7S?omgC`<`x1S&B~>-&85i$A;~-y)We+Q|c-WM> z#3-JBTD_WMOh#{lms6T^Ih7(Q}<_=Uv)K>6EgzoQ1ZjJU^RsMVs;_GQ>f#-c}^vF)*JGSzyUuvfWN;9i2Ky+LpnG1V>@+s8ZI zZ*VLsvMjS#Ax$f8DQDG`r9W4qu3KR;bJb)?s>|W|iayOUp*C_<47aR3il7zvU@r1c ztJ*5=C|i<=QLbhAwYMiLWLYil{*Pq)1Sf+c%jY#cc`=l3D%9|P4yl~Lf-M`7FOAqy z&eR45VUxcldz>I`wNut@12qE9cq~JlC?Z+pvcC zWHTQKHOn(k5q&zZ2MZWpZMzA_x6h-=wZ@bqOh>E~R5wcf7cM|;Hwwo&69*!JDs0}P zWU}teuCy=1EkS%e$Bx_vWZRKEOXtZ&MM2K6(;PxH%L(QL;5% zG9n&zhV92Ns{K^4Wk2FeZRmHt~Kvn-AVQF}zMcqA#*^J7T@L8gOe~iw8eWX4i@*kkvz((X#(onB3*5 znP-`roj6|QTH@8s;)W<`mK(2;^dW4HaE33LNc1U|M78o^l3r{% zPf0iW&%)PfyfR4fUm1YoE`BdjY*`If;F*~`frfb=ORvG3iDb)sUXM{xUX#tAZj5C5 zb>Su)zbCW&FwMiu&2Y=|asP|NsOUWsY>+LrDMl=QpnAR)VGArX?Tc3lo?eHHSdYcO z&SRTyS-BmqPV{*vh`o=#3a@)|E$f~~a!sS78bw&*g5L&T133)OfA2WIrCX&f9}#i2aSLDVhWas7H0YBJ%T6i zBonB=+M`Ml`-^p9lPnj_K{$EiArg~r*$lmGUvC zE}4~ENX@jTc}-BvYl6|HYMQp5=VY;EPL4vAToR{*73Eq?$xe`dB z0*gZH=QEtYfbq@YK?4b{S@QJvJqTWEo(LOX%&F*ZyOV5SeKYVV2eML2Ae%p#S$s+= zLNl{$tW5AcCmFGfZFzy?RjwsoompklM{D8yW$Z!tnku3Bq)_%zvMy$fS@Mk&^PGvH z9Z5`#Wy#og0KwBO6YkOG1TV1UlgUQxd}m@o4q-L^QgIB+8p+c%o2Mz}nOOo5=FK=@ zk>1|OneTL0Nn{-?r-=`-3F0j#n9uYD7W%VTN10Oit%y(hi|hr(7B9GoWC;4In#1y4 z_9o-fOHTco(SL!n!KXaV1^fmmg3UdWV?xnp#`lZ*&`geH7ml@kTJ5yi9 z7GG(m@v*OO$W*j)$0A4Y;?Gk}{fnt6yD03|&NUZ4ycGZB_;^BzQdkRP#LZnKYc>F_z=f-tA3z zv{r0cN{Q!bVUfPWK!Rh6R>jxNjGwxF}ArHMv#6Y!YAm7OCrDxL%py z8jm6#&5|^p;Nkq+R1}h6`{E9z`z}m0I ziG|L@kkQ00<`@mlLB_V|LGWD5o3u^vKqbETS29Ej+cnjQeZ(2&=G|DjWjD6NxP%X8 z&&9ATOY*M5DJ#a3vReK}W~^64CM#l-)nT18))W79KE8R8$Lh_GP53Y^MSYKrQU#M& zm8I{KX$lGnzK+0JOj}|UZdrPbc%0x4OUT_|Bn)=C-yg?V4)4BD@d=`tGFi5z+aZGp zo?=N^&%8zOWd3e{F>6&Ymif0LZPg#fRAn_r6#Vfn*0L5X&)v{0-AJv*9>IS)$>(y{ zjnr6YSS_qmmAbjS^!k7tL)&je#5vtw&Q-~lPtR&$uB%qz{H4`iw*4#p8E!eUOMjE# z@%(}M73z!mr$H5;lxK*+80xE5=ShHLm1oULNtK=2~|Y7(Al zmifmCp8FPYewN`^J|Lr5lkiFoFlmF7LU{0f%DB?l-pd(Vp8Ho|+3ug@b#<;~UH!6A z=yvMA8J9*l6UT9a%H{-xBw!Zzr=&{EPo!cA!(VSos;4cYzAM#KIc22c6R>(JBgY zQrZn8c&=qv^8FsOr&YD^uc@oPpL6yyCOqHDt^Sgxa)#u(-CR(?6tEH|e4^ zXvOrF-NgQEg2xw-TBDfHUv#vsC0my5x8qHE z>gzhTe9vfjw892IP!^+ z&{zFg$Jk{!ChJ3-HOt!e97nWdOGF#`5YeYtLh`mOf@gD7h~wF|BZES6Jg*lbS@XQs zCcQCuQV5(r0t>3v2*&GhWKqC>MGU4kOE8@pYTSNB>)muqS_SQfX>U)p+HAj(nOO#wAb7o_avn!MP z%11IG%yech!NWO-R$zD&9=&+W==GYx^n7@a!7+KvbIWpe&~$j$rUf zULGbdCh2w93EMR=<>D`4G@=H}$;#TNYiL~>#78e!SD2+?H5On=ggMY#bs(l5b$~D0 zeB)ArGtt?Cv6kT1ryIeGED@nA1v$;}6{)k2rEf7(pL4n^&ZAa&pHOEW;?86s)hQiv z#}OQ4X1Q^aW?DgCTEw^*-V1$H^ctV)*Jk+4mkAzTg{1pV>A$0yV2qm?5;nCy(Ii(P zyB*-RCyl~KoQV~4*-Dn9lHVa(NldeB<~l;Of@fbM>-l~Kebdr?Tm2cPTAH^DZJX#{O&j$nt7|zni|s}5T+2(08l3L(_!}?v zmwr|Gl%|TYbWlkDR%>Muj11d?^N${eg59ISkkHkaKicV}$2OV=kD z3v+tt6LucX*;WM)ujNJ>74t)OZq8l)S$?~x^ywAcCr;tdsDN<{swd}V#29G%6~SiI zntAQ>c=*j|C_NyZ)*E+IMyBai&i*pQ~w4^7DA} zxvDmmpFM7OQ#7z^=?s{2;yv^zSX=IUHXBsZUgPIe?@fXS1!-IOd8&youkGUJG3IkQ z?K6H(HJ<~tQ~W%==?Zv}(7wmBDrfSWrs>mk{SUcjs_xVmrstleEU9QST)Ad$i zzE9nhtWADY&&bK33Jc|#q|kr1q#2^}RH$5|(7t0?g)Z`I?UKi*>rd#<$`&&~^{gM0 z0{%Qgfu5Bkt!S?wlL|6Rp?x14D;bCVT33*Jfz~U?(=+s5`fIZ8Oc1~3C#t3&@p#z> zXnnkVY9@&1%6De!t@JhWf&w;|w`S_I^m20YEC9cjYi5BF@9>pS&Fja=kjE93Q~m=g zJw%4i)}IKwz_V5n|H)}qDRMz(%?2-jbc!E(tK6&5Tm5t%?}vV0UQ_77e&d+#hyGU9 zoda|$4#Y}!wja8O>;ts^n|x{xI(JWAm;<#Rk->8T+$kH))nC$u+%*^0I4b{9zz#BW z9vnjV6E~h0cuK)ea^yUSJE!Du+1={CL!6UY3O&rPFPr?(!{pw1`mC^@{Fo2%bEltV zpZRF*`@>0!f0SSA=5m2T`#ySA=-qy*)tB$g2lLy0%>VR5SCyR>pml;Dx+Z^Qq_o{H zCj+hDmKh7s{ZsxO@S{20Ih!|Z@Hn7?|){YWUOv+-{L!Dr*trh^J6l^kI5A|S)n8R z+#}5o{f1nVu79exmLnJGy~5Pr{P&eV{bWp#dl$iNn#ybH@{6qd99VYrli1F05Esin z&w*;4TmULK*Q)2>T$khp)h5QTO}1Z~ZZdc=h~Jfs7Ne`aA5AG$cKcBskdqbFH!@=} zqRKUS8N_;?3|)e!PvndxcnXml)YHQp6l`-h4!~#ydQe39Jv%qmC6}Q^;YuZrF!My6hHJPxfkfL8h(~d^Fu!& zuc4WKOx9fnD)qli@Re*osy}2Og}&_PN4b9JHgdr-FbR_HfJ)ye4=jTTewB?p=-l^m zvIoHNGQ$JQ@-JFV8IIWdeQY3)d-S*U5pu>0VANM`cmYk5tNu?XzEa@F=!U!iH2$XwonC~^a{Z{Z*7wEb%QY{8*IK#jMTq-RUIsCeV~Z>R zZ^#~5(3F4rV#-MNYwDF*imIpFkcBo&uhkx}25AL9AbpmtTV7jr{r? z^U(c1r^puBV0qCG9q)%;C`SUVUzano5vNP!wQO*{DC2T)`B^T=(Vew&{j|yRYdTuU zcXQCmZ8_*gc|o;%*H2`TA39T)RaT%~@EtYzu4=eVH7xK$bkgK^EA^K8 zei^(9zHnPMT7~p{M($dLS#nxlR+l<5^krP)WRI8OCvVBUFJro0m31W=Oq6jF4T|Lf z2}j)KKkRY$2kB24yc)zQve9bz)(3L(YWuY&WR@|{KFTQs4F`u zH2+%09Enmt^pA4#8{l&Q;)KwMr9T!*F~$>VsEf3JfJhPS^@JX`*w;LYE}@W=SUpAV2N--KU` zP>6Ux#5tQBr4TOy5uEIYm?yK|MECBP9ix9z{Lu5|UZCYw#V^edo}tU@ieH`eK&1O2 z{w!p8h-^QEN0)sSV!lG;`XO2fxlkdt0TG<%hgc%tSr6IgRf7UQcm{kN4Qly5 z%2iqy`QfVt$SQAvVaKBAzsjA%MCz`P>6UxMEd|a3W%^UzsZv9 zhu zvhPM%y4Yt8Tyy>K-F3MTc)1OHtK|71?jfHj#Ce4%@Izb^@;im7{5B9peu$SeS>
`cfJ%!)mCqBjxABTyz3F^iA@sIbzpO+&yAwGO8v()93+`9>ruALuonjdkH zyr$6niI1sHx*z&?S$8u6>LNc?a{bUFL$IijM<_` zKCs^|^=n-sCvSml-#cGZc*py8)a4qW^>5{_E#UgMyu3yKRZo+rw_-szz^^;mer;OG zKHCs{KbEW1rMA4V4IHxMt!;>gHos03`?Z-QJH3NwSXHih2XdOow zEnB>+za7S3oSQ1A`Jpe%Ywx0UIe+#1(BH{E??Iv3@~QXGiDEyh0zWG3q!d-4y!9SB z(O7oMgI)*a&Ez2B;XVt~Fv*49OsK3m4=BDQwV-^$8dncX8DuFQ6>#lO~cb?DTsc{y$R zPu}KokuKWSxpjjG!tWFO*32Y0cUzuPEH?cw#Rj5SF6#@?w)WuvB^W>io$}L!Xs=hg zc@09c=10bROXT}D5sA&hS(|vG+VorazXWD>i*jYn_9nIeb$X!pN!dF zEXH_yE6bb!5d+ij3lL|khy1Q-B|qFND@$yDeR@!m=eD=(rhG3@v=K*c%FBTw&c5O% z8ZX`-UecnhtjxP4ziBxUBgyNS&cU z4?wRRmQyQ=>fKHsrZ!&acE8Q13@v>Cx|yLkGxei2WI_cIsxOeG(4pfvrcs+A=4W3L zh}q!n15C+Z04KKpj=I_bkVF`g6>V-Z8d~H3m7@N)m8x$KYV^w?f-1}2*ZwPp7Civ{ zM7{?-otqf>V24-8w2J7&e0c*j1I99qpCRo_0-(A#37C?*;G5X~g6hPt-bWN|`w@|j z=@ng>^CKPJrvKX*LsZS=EdDuYn!V=F_!3Zc=Rqw_9F%z#M0NK^jD4_M8yNba30`98 zgM%`Mq3WdbzF|f))NgR0S|0_4d#W9mH>S9(EI+1_=q4(7ek?0f9=Rxgey~_8^w|75 z4pFLymg0jCH4DQP(w*Pp#H@=Lp@A@@7Qz(>C7X)`V1 zH{}Z%#Kuudyvv}PWG@ARfSO{dK3aZTQ(SG*xCgOu+#jiG3<|mr((xrIz9au!E0G@L%-MoIXEpl% zOn~M&v`4)=PV)TZtu3EzCrb2KIikIIUf+`cLwjKpj<&nX%0Toa6UqEPI*1{``WN~A z5=B8d96LLbMGt*&{-9)$FZ3_-t2{1V)2pvvQ&tvR@F_e5E*Q7?^#IMAE%y!(EyGfQ z!8pzM5%9+WH)&!Eyovb%1BD30!B6>NqKiIO_8JCfvE}a>CTi;XFnMaY$kylNj~OBQ z1&TX4`MXj@Yk~cwceI#OX`HE@>S=_0dW;xXY3jd#_wv6RBP#3Y`<17}EYb4l(z3D- zm0sOFzjXKfc8Ezj|x1K8=#G~FDy(fEDraabQN9-PpVMh zs&I7w*s(3`^_M^>jcvl@B!h^qaQ zvf54VQc*6ivfhwiD=ej}x*v|X@ zvt?!7J>SCzE_#Ee$?|C;qB#&TuF?Bk6AA_m95~Q3AaX?E-TK`Mo9nGGen z>z7@H-tZIu$l+la=&R3>KTZ?<;M{Gdi*OP5w|sZ5XeJj;7q#4% z<_Bm=S=&s#y}u(0sPMZ9ij8qK3uqLDn;F$zS)I1{lN|?{cl8`)!+LiiyQJa^Wo3S2 zl&#e|TuJa8aNo3t%#RGR*N;c&aM-;4AkE$q%;t8O z(H@X)@F0M|;|M$^`U`u@!*e5M)K{1wZv!7j4Nr50DraA!&WRH+1F%A=-lP3LGd5wk z$Ed-|giz0So?qcr-anrCB=}iXM?kkuh-kHa-t{ zCE<2iR-GWv*O>z%qq=+UBzVqvGvvrwqEQv)e*+?$n+EW9l{vG-(^YOE2`GP2PVf3u zR+=p$n;mksFS0LrS?L1K@rmvKwl7&~rn>4_5bU!*cTzoMoU~{3ki%w+QNiD;#*0C! z*)uN51G7cbnmxc*jmBbhL0A1~-#s$Lo^f0T%@NUIC%t85pdX{$etIy^f!p5939`;K z&>1o7fus3D!a@kNs&P%TA9q9Cc4#_ zFcnNZh05oWUHW0=TFE6n2pQ> zD)s&@EAtI{Nw$1vu4q0n77p+~nwithH@n^TjC~_zzS1EUOE-?R@2{6xOA5J6+Eytoi+ks?*X~{ zIq^hd#uR0R_ak%B1MlioGJp&2@?b3L>rXZnWZsUG{H!pqtW1U<6*co`FNO{Desaq5 z*fA~7-~YUrDMYowvV%v2>nG$0k7&~J>@Y~l+BL+Xa`>;_S1~2=n8uHp^tg;4=gaLL z@jG5UZG1t*>x1OaFNn_0aif%;9V1;CWz&O|b2(g1?|Dzij+vqlUar27DcS^o0h7}x z9VpqIe=Jitbi5in|Dvdecd~!ID4OX%{CTnR?o z<>xEKL;8Z3SAlsS8M8|C*N^2tw+aa(t|fkM=gJHmj6Yf2Ju{;iers>qBi$Yq*hnEf zJqqxcjmO4##BDBao6X8U^|GiGBi}Zf`v2{Wh(TVv3-V{}IQOhOAtQV8f#gpsB1U&&~exhB|)xE&M zbMccD4F`Hyn87e_iOKbsb^|mkBmEyN-qeQ);NbEc zba^tu0r4J@-8YB@Ro|4Euyt`2}6!rVb`ftPf2c+w5tkL($d2hp!2g&@mMJq9=ubjJ4 z)RJP8sEQ--&`lWOzh%NEaC<{OvkA>M$km%fH2#<3`!`{Dy2`&ciN-i>Zm?Oj7ZF|M z$jxFX&L;BlsJ|$0Y{rT%Nycsw9fdtXKC=aqPRgx#)K^LG7GVfIUM|=wy6Ssn!B#l; z)AG_*5eIFY+eCD?N@G-yLw0Gf0>byuFEDk#K|O&47JPlQX%4^~ao?NwBZ7r$0K(fK zG7*>Ll5L`C@LCf;1nUt;Cn@)A6ZPs&r{?Ej(F33k9781gK~fhX1L8wlC{TiZ$biTo z#0yhstVw`HtvVVe}*BYQ}p^wtf$jq5ebirT4@r{Zo1UJ@JJ8 zgzTFqT2@NOAjkfpwj49%(magTXt^a%)CzNTQ0{SVdR4eb9(t+;;0)yV2}rql`D^u!*+;> z&=dGu8DvjKi__-)h`_xvdxxl5`C~lVqmIG4p|8mIcVNT^$=f?b!zQg29fs_%Pnif} zVk#0!OoHP^%7mRFF5v4C0h&CqTU3K-m+utLy7>So)mB5bl1J{C%aT9rQJ*V0nR4Gw z(WdcCkaV|49RXR^Vd_C}SJezc0VHP{DC@j0+E2JW+@!@&hh&j~9Kk;T2C~o4u`iYX zoHCzB1RqmZ@VIM_Dh7Q9TPJX*i608^cxx~?HV z*(Dy)2gp0SL~YS=SbmKUu$tE0vSq&5Rd>-4a}?}RU%?_*(dKI`RYzRGKaRjYFYgwv zxByT9_dPUT#nuWf9Zb4>t`s_nR-xZ12ux>>I&L2vj48ZZ)W@d`Yj6qPZQ@3l+ANVr zc8l7<<4q8mBqjgGZtJe zI2lqXx{9XJa$q5%JVJG$cv1wlk!|-OD{Yq}_93g>kT34T0bYUJyARXsDS2ieP7ta! zm4EFMgU0l3iC{Z60-9v@IQ(xmw`Zt77J?;BbA|5pzv$V74p!)>|3wca^mQDwdn-i9 z*v~}0{8Rfyb$kn%@BIuhv)qhkKxNAo2Sr%9LF#_0Oj7p`tNX{~B;1#;sqP=DCo>O< zcID1Sg?=twfEUY7Aw~9J)#9>jZ zTw@@-33C2n@$e{5eTy>oj7QWuJgd`}*lBuysr^6b+Jw$i=wttj{#&V&)hS1zx5OKXea@|`2)#S7zqHaoM1#1GBZ@t;1?Z5Y&bvf0RMBK-eO!vF*;ddYEcmHu* zSy{GBSuC6)uz{>_RJ6p&M7yIRF)Y&@^$sfUKjg}s=D>!kol5-E+_*2RoM_K7hSZ22B!q$ zs^N;wNsu8k{9di$oXqNO+-d)T*_Dt<{64)4j=o+J1Ze?sTe>8F>AH=lErvN(i8~#n{jf zz?s*2Kn8mLf%1=gZhBWWC@ae-n9(>h@FTzh^z5tf?d?+$`{S2fv-kMcQ}-=^hmUk8 zj40_{L!E68k+n=Kb8@vMB9*o;JmogJy473 zNe%0^oh-+n64CC7=*azJGxLXa-nQ`XD+S8_NuC>faGs!jqPhXmA@$(g`S8Chub2+u z%ItIl9C65azAi8eAmd=*9zb-LCoo@OJO@iYM_l0}*QCt2p~C~U#LUj#6A9FmB7rvZ9_2}nK32M(sT${W@s1~BxSZ<{HL&I`~%iXM_B7$9Y-il zszb+;i~fQ;rGiyrW*6^JQ?U0rQ*Pk&WrqSkldHZG&B|3$4Ke?}648y1)WQAIMqu(7 zn2gP~3fZOb<7AD~qG7pHA(*v&WtY=<)iy>BJ&jfTF`02%v}`j0f3XEK(}g2Q&sXYY zz>s>Xv-S-2HuR?b85`_(dLp`$l@uAC=<&iEzK}nk77@;`s+xq$@Z&F-A$W}<%4~s` zY+qx6@w|NaYY`c`u8K{9=L#BN#>R0cB=Af^knt85wM+~VQBG;o) z^EfC=Lzfj-*Z~K_&_wfIbinO!h|%ufq&xjH@2m3W*P^{U8Mb$2R*!r%t7E&^KhzON zP4CCS3Wk%AB%A=%#5hetPm}Z$=Gj`};xc{V$Ry7pEZ$Ry1L)Q8YKJ29)L7h(Uhta(nv zMd#u>Qt!kH{?j`lv*({69tmP~;)z2cC>YpR&N?R=$E`(wfeZ(-WVD)YAJ`I>l>?-T zg7gOjf%MTz57_#aJb6wG)Gy1Z^P+K;ck$Ey839NYaM{ojIpRDHE>_5SK)IXYcgaf- zogRlVaduy_TTS$gBlacgZv-JX1-^>EJ22Lsb{YTtdJcfl%_iWPxJ!h%Rt(@_`@!IJ zJTDt-Kli!)VBmDzUl?njd2Fox;$h(T0p`Ph2Kava!O%2C;|9S##Z|Q!Yrov`@y&|M04?L@G$u)0PYLH`zVxCkE~qi5ax$X#lk9eiSXi4 zJcK68cP@xQ-Hw0&XWNxMH(fYWx&rg#ybTdwMe!F9bv$(+#~)Y%&Qo_7Zaj5I;NL~Z zG%Z|s>K5SMyHxi4PV}qoG-qS?$f$p3?~Fj#;?LUc_g;{B--(H$YJjYBQM9ix4q@TS z=iV5*9CZ=FYKEMBQOw4N1UD{P44#w48WJ)Q_~4L%#X4%=;Qc61GYzH9O&K@dk4sx3uTuS%&2{^TM&GBK{%`!gcD#h{S6;kvK0$4 z)u)|u?q%^DzN`4>vUt>S`R{vWduoGElIIWbm?;PUgyV?8@`InmXF>$X`9BM(-;ve5 zB3g8|$#}1LxN>F%C>4)}-b&@c5EDII)xSe!=lh%SzI51@DC~%9d9|ysZjOsi$7Sdu7N^ID_^1 z`QZUUa^DpZTJAs~#23p8SD@K=IpeB$R)qd3ORfsMOS&gVT*F>ttd!S;tJO%;urq2V zAtvLk$-yM_Fbuj}`OufrJ-3sP6A-U44A00a*G0#=U13=j#9j9t@(NZD>uiuZD1Y2_ z5ujH;0sp`_rkJDF^a~uddzVZ1ucD29M85y47+x+*2lXZyS}IP5JQk=JPD??mQ0K4J z{*r%{;?49x8FfSSE7wR<#*_R=UZ~Z?;^snLpK}7BsImU(QUPJ_#J0s@5rLxVc$72;FfqXq4M8o-sIPNaOi)N zhimcGAQzSu@dDnokG$z)tR!HkVAu)Xq~>DKe&shK@=x4CxD@5?%Bb6-Pj&hGy)qT) ztH5(qMnoc9lJB`KbR7r2nSY965%Qayd`CDVW?xa>p%N|@fiW(;w`!;Ui7!b&pz!|k z`@L0{M77H5+`rbJ(DAQdOhEl30Q_|ufb+lH`*&$yue|DMVE?#4`N0WWYZ-M{lvErA zs#v^ChHKUSOVlZM86PHjlVzvBgtPZ|>i(hI_sU8TBCyAa`vU-T;Q;#D3Vst>0Df4( zmGc5_Q}A;H&j#FNem#HfU*b+BeRuvV9InnB8X}8-}>8s@iyDcMV#U*8tz~QpB!!|6a^f+8{llP8X z>99SFUyyw6utnfE1J@n4W=$UY67%y1^`#0nf zwQZ|vYfz)Jf)4`R_YO^^!&LbraH8B<8C1>I0SE5gtJyl@iJ_cEcrTgf?}bzMfeK*)lgeJ zUIw2FwY7F!JW0-i7#hM9TtW6lvnq+u!L8hbO!foIgk5q@8Es`bfpdBp_0etRj2I{N84jo z^=sNj3GYeya&_C|!Z<0fRJS##bP)~z?Le4qk=TDkz7}fhBHlb9&xgVa7ry`j{QZ6x zYEc(z*#?M}Me>&#wy8DN;kUaF^g;P4`cPZ-;WX~`Bc`t9)%~r*=KWt^;l70KzrBU~ z1yI=6hqdx*ZJWyxbx8H$kQ#z`48e!8dmUQ}UPf)GV;iVHC;zHrYwS3NX6A$>8-Ffi z>)Nt#Z2xIpTLOkvuV-uH$UjOnQAD#__NZrj9`7zbuV)*nKQ5!|qYtV0nYr1AjWiAw zeuGZiQ`^(!W}{)rN_nxRt-k!QscoVdS|}&BvPH>0(YD~~E8xIjYqn=Y zza*zb+oH<#ErCuq}Hn+WtpY?>du-(Pa z4r;fw#a7SVb6+#8BGgn|BU4)1=7@*(%5yDkS)%&Ksv~jL`zRp~_Tf>vvz4uBrT^pW zOW^+N!^dt0;$;t*KxNquXmRe}=u zbHrDA^@<>?@ z|CO0O7oX5u-9Mr8_0`I~d@;)1J)4HI#O$o)2;k2iiI{L=waus7Ggj;r3uT8^$8jh) z`a;1^`{9~!`!Ma2$}M;99-g~AA0FofE1uBfm^JQ8>JYEC_piJOwatzxrYG1x70F@5 zt)6@6U_4atbqr_h=bCPV&rv}<)HKw612xI?75&gatz~+j+fZ%l|5`5!OP0{*RWaqe z&+WQ1#!}CQYEbpkI|U<>YtKEY(KwgRTIq9p-<`+{J(gcUo#WLuetx@jzIOe>E3$u% zje(<7DnV`JaTwVFooho!S$ZWvQ1H=MZX-3fiw8QFubw7l9ue*nckG<4XSN_m?*2X4 zJP7+D#(E&|!EI}e?f;XtML1Q*+Wb=oYvU=sv6}2ZZ5!t+{1S8*IKXZI?%rGP@1lLp z)rwTIi5lQp1yK;T*cP^87nNwC23tBcQ4e9Qp1hl>_xu{8dWAgl=1R_Fq1Jcg*<3AC zwI4)=cbmUMoOo*;#UVb{@oOC{{YD*{t112mz$I8>XLXiV*^2e~g0s}nV*obr^Rz3yZ5+S}TykdNv-$1E25V1sZFMQh!AaMQYY!~bOM84iZ9Zd~bL zt=>KgZK-zf`$reA_=qz)ZyR+c@~sUir={B5V>trB+GZP?XSv%_y=gM-qvOfyQ~$Yo zEBvP$VRu@qK~+Cp|3ACUv;mCl$#pO?mAq2a)^34o@(UX6ZPXg0BTj>2O;M9ee771| z#A$Ii>3n=ik+QQJCK64W|MZKEc-Us{!4a44yfo<++Wj2@kb1^BUz zTFre9LJkk?uZO(7ZVL%)s|L6=N65ZL?e&oT*J)&m>Py|*sxkQVb75PxWk`)>Xlbm{ zOkT`?@A8dvvvc%$=)^L7ksM~aEj+8Qs8u^i_#~R$4wfl{oZG8`73M!gqrOb+&%R1D z{nVh~7GLQ+9Lnch4OZwivrzN)YJ%I#<=~-7Tb+lY*8~q+kwJ+)2tWfwUgHhW(0PO) z?~`u_)ZJH5XsZrtVu_QaM{RhO4tG!ovY|LJh(hWxZ*x-SU28IAGHa~98TU3X8LMpE zO@ejM8q0X~TP`S)ESx8Mi7wNV>6_RQ{~(WF zlSeOG7(G@m#+S!GWsHAP&mS|o`_>2)VHkvrO* z;dW1>8J*Q-eiL%wk7cK{#Y`M8CzG-*30&7lQ}r%t4c{G{!|a}+eRPY3)qtL%QPw0% zLzrniZR(;%mWkCXflZr*n{P((mqX>3TAp-Kw=3n_L6$I_nuy7px({s zR?zGPTn|K#v-iAFUwXo#yBoPxguSLA2u!X&_5NBQpG*b_?UfF!S z!qjI#b+|la$GG4gX`QY@G^mFfWGbMH9*2vl>K0oB54)0Md8$FEEj~w)H+SXGI3;Y&H zqpXy~Mp>PkHq!+n1rc?=KB0#_(IK%b$hntV0UsHC&`Yha_~g)#UTVD-SF%xy%%dsU ztV&)1cc#iW)j3(R%$EGL-YYRT?DSsHt+O^IqT`aX*75#J%nm<7fAvz!nKKZURQLCB zu>3I-aGFKoottDJt!*&1%oH*W#< zD)3dw>=-|L{vIO#XS-ErQDCv9l#{CZ<4f92sc8A*bS71e#Lt^lwJqjXEqlY;+Drp` ztBd;QLLRx}@*2(Wur%CpnZF3_ylM9T3g%Ps;XHUQf`!X_rYj@<>{l=_IU#Xo0!=litoxhjCR26GW>Ij>Z^W;Y3lO6>Hy5D-}l8V z7`x~CslEBsv7b6bam&o@uTCmc0QE0QKaux^^!$bv_s2vna4J3TuQucFRR^fmF<}@u zK>ZP)+te7ScH{5v2dWjZF>KdBbyQpwPS3=m1s?)dk11RpzDqp%S1`uNZZvc%4#*Sl z7MjlIiySX)yWaTP%2(85kQ(T>ECcd+t+jnaTreM5Gc)q3(FoPs^64P8p-FL>On-c+ z#s+>p8Tn_&{FG&rj{dx1POh>nkUdQ8tdu!Qe-2Z(VfAy-a5dVe8m~cCCw&?LMZ=x-%17w(aA=XSRB{9);%BNp zLXE&k=rICI0k9||)FzmsoF1WmZt86rF;Z=<@~$j>r$~3dB)m0 zJSU|eBGKrH)i$4~91NKmxHY5?JC zFA8eUefDQh`O;Dv-Vg-<&s(aKKFz6M9NhllCA1no_ow_1TzwtniG~GNGdQg3YM}=Za{*#OwtBQwdx(@PV1U zn-y#1?%CX*#~ewACaM`F>e>?iOv#g=TF=qQNooteCvXxv$V~Yh{EIJ6Wyd_HYyeQlR)?W&OXQ zh$)yD?xT)V)LUFJOvN~UNZqEQTe4}!R80Oa(&nk^LDME0G!3g0NpyUgnv5NSp3~Jb zT>DQ~H#nai1NCJcC`PFJWxcZTmq!CUVFSs{tQL3vn8*9n201N4JZp2RZB{=t=kv&A z26B;^9Xb)x?NFb1(H(!22frPFRq+!e{#P8XVy7%doJ)xF-z>O_Re0GJ1lv{YSCYD| z@wG&(g8H#Xy6kvP%$^-OgI5i6pM<YWb#ifu*dSgC1j`5_%j0UzE3WT3Yr zuM9+5>`ob6jC(j~p`&<4gRS3j7^(*z&Jm%_u?Bt0x{dnHQR|wv(CRsmCTvxmqb5{p zw9r0!KZ1+fF?0ZS^3PVp8Y~-b3mZUHKUPDWt`9?(#Z%jl)pYZ4JnN%=*HEsSz6s@D z>u?pdi~nYa4MKQpeC%0{`$0)rolviPJU%|!aJEiG8U*U&cEk`{Mjz@KZMS8#LC+`; zJMr;SAH)0MN497Qh?eJtcM=8G+-~GK3)77ebJaHWmJ9`R-wzRz`5`j6N`GWxMskTh zoQI(}i?ZfnMF9J9=c(UeTX%YvS|xH3SW3!jft3Ng+QUW)+bfNheZc7?l$&($HQ2>J zGc1V}d&9ES*XI3w#mI2R+|V(&_`umU0LA{$<$ne9fwPDQZ%43wOl+9sc+QcYw@A-r zp(%@e(L?RBp}o#fS~ivnPtfLUwS3ZUh(Mudypao3@Z6@M?%X@BmWnl=Js=+Bz(0#V z^5AzXp?Y=}#-S+3t3$E%OZ~G~K9&3)d!(^{D+hDCVYDbmtyi^CFT9rFGYWhirq3v{ z+P=D?lAq~h6)hA&pDdw1x}`=ztIVu?4Ii`5ZI)zwsP3HtGG zYQIEnZLZb}P3qqcwa<=!#-B@x=hFPS7@kEvPgz6TaI<=sZ%WqpM%=g7=n5t1ilz_) zuJD8Hk}DbiVEgZZcvpMV)=bt;{SXg35~dB1o68+%(O`kLDNS0crn>I#W-sno-d?)9 zR1Iyiv5#6Ty})BaP-38Va#f~LrYfBMzX2HZN1CFOXomnsm zztg$_enYL6sR2WZ&*Guhc72bh9Rm879=T0UzvF2;XBPOk?0XyqR7^(!+1m9~{J1y$ z4x0qHR^rewJ-T;|fydKk%q;N1@3bVqEA>o^y9_+;J{z?~8*07j+%nbQ+!zT!&9G7-*S#U6L0FS>A zhlV4+07Lwasb(~ZeO(d}`XGW#mq9w2PBnx(8R)AJ208v=1O2Iiu4p!75MiMA%_y2- zRYQ2Jfo@`;TN~&WG6ORU9=M%diDg%xrHF>=zo*fpR#7Svts-?u*D5Wz+Ge3p`7r1) zqj{vvqjm*2w0nMmzVqY3HVpU7`k~g>&0!wAL-h!V-&MrN>%)eK`rsF99gH>J*ff>Y za;7FUdAU09gVsDzG78{+TXqa@F)Ufy3t0e37lmxMrc=okYJKzcZ}=CZe2&V8OhMQn z1D#@^V-0kWfp#*`kH0RO|D~d|IqXnTAZ(+7&N0yA4Ror3Zf>9>476_%+FTHp|5Z^A z?-}TG26~TyUTdJ|80ZlOy0c81(c}$e0CXh-?Pj1~ep!^^8wUEMf!<-Db0yl$`+T|t z=rUlSQw(&hfetdzP6qn%uA&TIa?oa7=ngpmo!)4ma}4x&1D$H1n;Yl|1MOQ#n}yWp z;$v{8;qA0_c1Z^%To87{K%X?wI}CI#Xzc!Tw7_&jgh2*6#X!dz=pX~_WS}2!Ez0nvt;}3x*c~!N z*l3`04D@&doob+)8|VlF?Yq@nl%xDDMd^D6`kaB@W1!a>=s5;@gn{mCHUJF_bR`4r zW}siIbO zj)5L;pi>QWa|0bwgoge1EdszFz#B!mN$(lxa|U{kfnIB%=NRY_GR^IOXBpuBfPt=L zpxq4gOI+n4Gkn89pES@rBwDxsxe}oJ0|t7Kfle{du?9NGKsy=e#~TV67WV&=0}%dz zf!=7Ka}4x&1D$H1n;YneLfU5keG37bKk!*0hdM*|4D>kzy~jYWHPCYm^awj`xBs2( zfZZQ3(3K3dn}L4$X;Fr680eD*dWVfJwEww=2-6MpAOoFZpkobmkb!nG(2qaS8FtwJ zO9F8C0|t7dfzC0|;|+AGfo^V~BXnA_|GtI@`TAKp4(oW&K%X%XJ1BFwiFr^bXKP?0>Ey!gK>Y$UvtU=vV_CWT2f4 z^y9S#`+sR|(Ha~w&>IbOj)5L;pi>QWa|0c*)?BneUqgiaHATbk8R&BcdXIr#YoO;C z=n-ZE(AhvYFwm6@w3~r`xw5;5`F<&Oq-m&}$9! z96N2d|0C>x&Hi^b&2jxQPLLk4=IfzC0|;|+9b5gPWtc@Y5qfPwZk(D^w<8N6qp&l%`F270YbH-ovI zBLmzYFwmV1bOQrjDTjXhN)0ss+C(kZDG_IR;!98d>0JT7Ie&teK&J=tH%;1?a1#oC z5zs{eE^n_E!<_3q7fbmM5Ua5)>&?PLQA&0rixix&mq> zK?wq?Btflo$gH{OnBbN~kx$_l6gEdAk@Qy?TOi`?m9c0MZ?%lo6W9zHv*kBHV0^0u zf90sZr_>VVh(8Fdx{TEp1$)StyC~!Ze1k%!BSpO5WQ>V;-^!S)S%B+h&_`gi1tvNp zNMM73*#+?-Hh4gGT1$|dh*d*^UW!b#VtY>zcV>XfS5z$Uc5O$67 zBDYCULjf(6pq>I6Cqa`0)Lnvdb;ztWl(3nCi%K|(2?;tOpvUkW?7UtT&@U47 zL_m8b=$(MpNRZi6jNMrhR!Kk~N>CF4B}-6O0Y&SOkfLjibY6V{6%IBV_7+}*o!RCh zqQwx!j z?h;AiOTucFZZ! zQHc_?Ps9qBpo0P`EkTDw!dGx8?2LUOV*M^bHujGKGTWnBM6``kG+X{z5@hR>Q4;i> zNZ3h&eiTqW2|6dB@)8usc}4p(2|FR8<-xtMGiJ-|oCMig>}v_SAQCQ@pkD+uO@f{Y zWzf$7nPY7Hw{T!FHkqm}K^H}4o)UCZKri8G*m=D#plcHJL_kL*=(T`8=aAVZ|8E2~ zPm10|IT(WyIaKi zO@eGg?w|yn60ts&Ae(~t7*L`7UlGxUNzrcg*L6}m3HnDsu@Yn(_+=&NiHKE9g0_q7 z|D5k&UmtO3|L-O2l1RBzg8mlJQVDVvEjCGld<2v#LDdA*M1mR$sEPwJ$0Q5P)q%xy z6VUT42eTstbXkJZ1@x^1Ef>%y67+?D=19=@0{VzUcKN?4u(ndP7XpfrAWxy*0wgFx zKn3$0ytWe1T?y(cpfeIQT!+ls4hfqjqAigin@cuPg0_oTy(H+UfEr8C4FOe_AXQkQ zQW9kTsi7`p&oUkS|0A+3b6U1nn0Ihw6|Rs!oE7Hh>xxm~BpX z1p(I7L7ShvTBP-pva><&<~q1tBVyf_pw9(#^1skF3HpM^g8VO(uw5eMI0@P#pzac6 zt5ib?`c}jWm7pU6Dj`AN3+VC3h3uPSE(q)w2Nu&tH0@pq8X%xG5;R&svm|JafIgI< zRRT(upy{H-Xb#!se}=$(rD*d+%75o@W<}Sn6VNR{gM;WVS_u+6pK~ zf;w^t?LSt+Y!i#F60||&AFo4#4V$!A0943EpeVpeN?Arg4>BATu!zil0whwJG5OF$ zyl?b)q6VsfR!B*|5J{&OCPm6u4fMg&PfGb(KrJL_n@Cw*%51NIJTtJAR9FSu9Pppn zh0+mYn*&~zpnQ?^unvj#@DhV(10ZB3u<`<%D`PbUHcZ0IF>M6cRsv)C3#^umO%RyB zj4ct^yL71*9-;wm0kd0mZvmZJ`yxiKyPO{#QC1c|0bZqjxQ|=I3_S5&M6}4COxTuItj=;U&2xa zHd=xP38=FKjSx_r1YH(<1WV9E0cjHCDLDIUhNH17nFV%U!YYdVzmcF&0j-dr4+Jz_ zf)tTge+dc}u@WVyvVg(`WY(7-o(X14OVRQL^a=yiF2)r_{=Z959RVGcpw|39OR@9TreM2|6O6@)Bf=#U#iUD{s1k{SzYLISD#mU&#O06858r zwp@ZP3TT=H-4akg3A!Vo783M_fT~N-T>*L8AYJ~4i?)6_%^}&d1au8hp?*9hk{;Hh z2`N4$pbZjqRzR5&WaEE?1YHraI+!J_g($O*1pOeQm6M<(5lhh_p=(nGbbqQe495uU z2Z0H0a|E^%m|dpKp9yTKgpCq~PLiNB0i{aN1OYXXpos#iB0*CHqKUQ0TuSi;W%Bn zBugoGiD=Oh^bL=N_V<-Ai%9wJL9Ne(bqU)c zQhp~vdjzyef({F4z62c=&}a$zK|q})=vM*7Ns#%Hz=9?0mVh(~`b$86jdk$Ppac5i3Z7_SMz3iYh^uZSybd zNC*G6iNje5G6_xal@1BB=PMurRH&~kXM_Y5@ZbR(&6L7}8Is+$ZwYZ3{v~efZMSQcohIU<4arIp=g+xOh zK7Ow9p<)S*-Srci|FU)u;vY>C?h7ua6tg}i_utg6$Y$_wYW0xQ zCHN<#IN>BY6DQi^1oV@Q_SrJRF&oyZF0}hM9LKVeF8`)hF|YCAO|Ud{E(+z}-D7%6 zgN^S#j|fI%1!3#yfncpOj^8iz8o;A}xPR%>G6{`owxGkSD@tsh30e z!?&TgkSjmW$s-X*5j^DtK3ZSN>xs{;FCaNhzk&l4aJSSIv;&SExuS;RHcsk$TlFE+ zRrQbHiN*hq+8noDA$AQ%IJBec*VF(XUmn?BYZQ@`c^nsZ_PC~omVECi3XO5KWL{IJ zo0J$ADsf${Si-}Fv+Cp7o?@<}b8)uLb+s`+mh-y07zad0-@rK!ztiX&svizB%Dkbb z)z-YwKKnI%V4mSFJ_<)U_KwTDTBQ)n+af*hr&>30yadiCxv2)QP+!zNp(jM_GR5A) zSNJz*M{lKps<^Avl^|`IK2)qb+!8gW9>F@iv=k$Tt z;n;lrEHE7BO~-DdLvZeQ-feX_F7@hi2WQ3Ll*~IgEHjI~x`Xq4deZGX>Z;;L7}~?d zh0^~}LtH0^IzE;kPhb9_{$8P>UJ6d1F0j5ptKs|qgv9J`_1l>VTH1M6jZ}i( z)2+Me0KcxdE=NDO;cyVxwN`cF6)A_#{8NoDaTkrx4}{rHpMb>S12_Lv>y#X5L*uJZ z$UU{OQbwbJ_td&2Zh$o&`y_3;hm*o^L&ZI{CHVHduO=#9D)qoGj$GJqUu~yOP;f-s zV;lwJVpZdnP=#7rF;&?9w{)6t5M#oSK@3n9K+x~8%If?5i~3HdV<3_ zex#ZFCy_pX0(r@#U!R~YhmzM*oDa5@nmkqiVNKt@w^g(KGgQ+Bq`jKwY5Fr%^EB;# zrq(L4^P|##qhfn0 z=5HL$v!9myjUy{+{X_fzRtMn}bgJ+I2d`|Pq!&0wXeupwfkS}4rmZj3dN?cl&lfmr z>4wGq9~{MN+Ck-Cs^t{ty42t$bVVKwc!`P)q`5EA19R!%OXM?z?sD)?a(<;&S3K%a z>?=flMm=9)T=%DWuW*1VPN{pP;=ulU)cm!YfwQoFe2p^z{QstxuhrIyDVCbO!NGu^ zK1aJI;Rq<3{qi|OQ{SM3q4e1s97a5veg&nJeopV+s2`i&SZ2Rfcbb$Ee^AUjG}zBH z>>U~y2fDt)iG#cGhu^LEPCs4Q^F5Bxeod|4Bf@E##($R67w^?9oOV$+AAI6im3&m` z6Iz{*Rv2WtoUghvmp>oD*!*()eE|mR6NQy2ev|_{Z_`tSdAsmKP_o^)nB3I?zpVh$ zd5qCW!naH(W}e6^q0wlS`I-};s_ocr3~u}LVdG_0sHtWpDOl+45+ao=5#b(c_zEnV43GXgFUyz>5OU#8xOw3|9h0LDmMk&%`DRFNp zLB8}{R(h@?rQImul_We$dJeYd-vnKeU?=dLB1LKdd?7#HgLCM<=L}9Z%sYDRy|~T_ zv~WH09#f>o8kbvjk1M<>&Rn0>!+EX#i8GJ!!-lxNGgFSnLU3*AE{zQ+6IGSzC(De@ z>Vh+6ru*t=9pAKuJfUzW7U2H*9iEYjagR$_d~m*u6FaO#Rw2LQELMrUOKpm?rZ|&% zX>pd|?+=Me)(^bK9}nHzfpsWdi5?bbtreHb6z9w`eI`D74@1*H1ZTJ4ce{jz(G_PF z!G~uFwhGy8D8U-yEVR2NSPeLIekEBIoFbG^lEFK}4J;*D?F!v)U>K(1@;3d*r1bZu zv}(9>zN-rQlw=tu8FMRE6uj1-zg+t5l#%E-cDD_7{%e1fx!{F+NuEDa9(f z9uHx~9&F;rHEO1c)T|VH4X>hsEAv&HFH&b$HUO6&9B^e7ORPnHxPQhknC`o>*b==# zayvMID!E~EoY(dDbo)=737+M~d|j^nE&|nJDs6XTjZ6#Zu^VgX(#D3@E>LL8J@~Ly za89y2YX<$Y+8s@|h<aL@RTpVpV<)5Ox!la)95*F2B9XC4#M7JX(vWJ*Dm zSJTYWD1Hu|Dvg@L@$+KQQRT1lp4OexrI1wq$Q`1+5GmoH?#7K81=h`6#Nc_Zr))1a zFreiR=-Ca9<2MhU1|RTiYy3c^yjif~@dHJ8vmn2x-y>cH+&PG^>~KRa=N7T9Qh#q& z-6!ll`tkII_XwN~7WFFR(FSjp%&(O7W?nEunh%TQr^fj}@@~@rA6BXKtV_sqjh-jI zZa}qh{ujqva=fDh*P!No*ayC@9Ph95T3AeU8S?REVWlrzMA+%VdSv{#5h%AcTyuFOZ-d{P&EW${V+)|FK#(E!o|*|&J=vhPxGPKdYPbA_rv zyw$JINzz|(iY@rFXSB_YHC7_e(Gxe;z~#wVk?itQA^qG9DaV?__P#5}8Y9GwtWzM&++5r;mrbZZtJoNti0b`4h0y;!5I3X0;}$J@G<(P&vD*u zKAENHb8ptlxB3A`^=9`(LX6*AF64x9piDeXu|6zZndw3UeOQ=Rh11Af9uP?`w1x-# zbqWFUi12iwi$1KH?-xA4FeH91sSgRSF+5Bj5-UnlYm61IdOScL6Maik1`kkpfIKLw zmZXC`;QNyZkVnO{64Izx%tPf-v9E+aD!jV$0C`l*EI|V?T)Zmq0C`v>AwL8tf1R)# z_k%PkArd*Fvon83h;_f1NO3`pED+jn*%~-39^B$vIR|g?(0L<+1k#`=4M! zhdF($I~HTGHj;TN&+B_SP?at6e)=7PNAt-?cFcVEZ8(Z>IQ6N<0wX=pi@JBBU(I92 z-3veC&ZMmn$Nhha?3yFKExU?mXj?TlIns{@4-naX?W$+D6kW>CU+d~PNRQv;Gx(Ub z-ZAR<0UM*lDs=h-R;$!42&{fp+Y{?D+z7$exLiKO({{2ZXZ9h_NahvfpP2sElopG7 zj&RhdwJbzYKW-MM{%3`iGtuqptOizg$S0gtD)Y0R7)u~|zjDiBJ1Q+p!!;h^ELtgk zl%7N~AFuFZXtc5xyK{Ohulx<#8P3K*Rfk2eIr|qW_HP~bmj7kk|RL~@O zkM#-*g9f8ggH`a2;CM7}d~I52x!TbSggL$3i?A8gt2PUu*qSV&%&xawu6QMjTc@IJ zP>m>vl=UZ?Ruet}?xC;ALX-wy(vh01w&Jsw-qeK4^_0rh!f-i64QsJFA1*_O!b&G_ zQA9QPJ@#$+Giowf5Bj2t9t0PzB!9?ihW`o9a1PT^x_gGEgIdtPMVtJwp4Q&v!EfkB zEf$B93Ik$T1=pYU=)CGp-jtGJSiI7CKP5!7Fsvl*h+zRGo9Z#p-t53bx^EDqfp~xZOn?-dFH`7IF_Yp{;?Mg6p7rE4D2_4$)hU5?1%*%_9;m>{Wtm~Vs!@O(q)^9V=Ukkbe zzYA2vu}(#t#H<56evdpet*sA#>nnOtpS|_++xWg98naOxyxNp6WxcYFqu24QXXJ0V zupZ~scjHc4cFe4|D0(0owb9F_p%s*I)A({HKgrp)+&P)j8?fg7W043t%$r}3P>-LZ z$ZrC8g@JXu0sPpR6xfiJb^8asoA-ep>H~3X){upSZrlzGHv$(d+>bv6Pu-8Uef{8y z)g28jrhdorKBIXJSx?1jD_I+&Ip>m=0PQn|rX;XnWW73pg<|#OXacK>dmtYqup9pA z8{QY}!x${aD~7#9--ONp!MSO~+C{BIZBW5YfKb5=FHymdzvS(-H1s!M$yuSH$yvif zofESsV=@%KiuyHXv7x_m=G%b9!W-%CaRD z9)n~lO;~H3g50(VYh%Jin@w29@`I7KQC4d#6gPn82o^s4e)#v$VmGj?=+%@Zl&Fht ze{j%RV=MJ+%DQ89(bAO7<+HD5Y%s3v+tQ3xaKHT(XP@8d=L{2sGg_NrNUh0j&SJ2R z7u%dAdaV77t72RuAfh~>oaU?yZduygoRu~~LJzcHu^6V$Td=wwqtSZ%nGkW9yTufj z$Wna9A_p!lebAzqXYkgwo~N~mEZgJR4!uGBZKDDSl2}m3+IpQ4G5v4UQNPa>3bTPKToq%TEt!SX zs>a(s{n%js1|}~ts~3(zzs6PexCG8;)f?8j>)sdi;Ff1SnBx~nS6N5*l39#W^$wM5 z4XtyI8n$LJu6t3G-E#D#nXOs*=#JpeJ!6kx_VTTw>b&;~BeUVR=;zj~j8b7OJ!}pC z`vSS7u;Ad^Yu*>=h4XIs6$Cehn916#;B#t~f;9t}{uIn*#uMSELWix0R@k7;kf?Ay zMeiuD74%UnR=-{An?-x78CQx~2e``SjpdY>RlJ}rZ;2jxZxQ5pqs0YE&#A*gxunl& za2xgt3zB`>vW3pcs}Yu6?h(Ci3+1wxeA=<W1#?J&>B8hSf+)U=ZN zx5uPxCT(xes+n>vm)o=5CVszQM>Y)_$)yt{^(%_&1S@=jdURp|CbEq0#I`6{fDZ1; z0(>uUY0a9p+1|^0c`qNNwq2PwzxSal65{%_uIRDOw5cmBVE7Wc-4*R!dI`P5Z{VxN zJcEOExHYrc?L_{JZ15VU8>^w-zNpgLIjSE`>&9I9na|xY7%$PLZmhN`m2P%p6%?1n zq;^LI+E7Gy_Ry*14XD836x@SV$8DpndtlV9pbb4(^AA7OOOqy@x*NTE8RA>!az^B! zpJAzH@}SiSvJd9lFbwwRPo?K)(sM4g>&cqHpIp|H5pEO+@5Lryw)lB3*0|?ILNS?Z z_%J@q-74$sYz`d5$h!J7g!L5eP{qIGY}{>ykqo1gn5kOVEx?p2`vCVe_`8&aAo)cW ziEu_Cm0WSdAKgz)QemzAvuIE%3oXADcSgBq1ahg$(wZS}h%e7FDHB&e;YyM%sVq?` zn@xYGvWjjm=R=?3&5Z8L45858tTDv;!`=|`X|%963v}tD$G}Z3)=OmR&1zz~=|OJ@ ze*wAmVZMRZEL0=?xIYS!+{H$zje6(d6-OVI#n-$0z+((RME(9v`}#I+$mH z{M+3_+qs=*+@0Ed$g0y9{a8t=Ie>Y4kK@A-dO<2@1N9idBI5p@BRU9+sJH`Nbnks! zN~OPKyO*35-yVd!XA`)*H$_=Zg3-_5>1R4VfQ`UCfi(xR&~j@yOBv^dG7Hu-c!i}> z^r5eH3#AQ2-QgV%WaX3!^XS`wth{?PO4bz@cUMB^&|d>tRi)}8@)?BLH{N$O8^l6_ zHfEr$17WZB*=$zJ*AK4p*1;>yyeyhM2t#WbeLINNRN_z5vq9{u$P$_Vsp~m-T#mzJ z5;HF)W`3WXd9-!r>AY)n0ZmnUdOF0G`z(-9yf!+98@W9OvpCmhIgUPTLtO_$noiJs z{3zv4>cy2UgK8L>HuiH-9NqYk1$&*FX~??VeDWO3>bW(-c(V8UpBt##V9XGGHc~eK z{pXmTd-crm|H=JFn56$vnY>hL^AQ}A-L&^3_?qz5hG8M-HYE>ZWy;Y}-iiF?^$c7a zflNdwZ{xmdA#z^Gks!zK9zS3*4=hk z7-TH`h*}ILJ~8t>mpwCvL~-j^6VW6^%=nDMYO!(Cq1=m_@JZkxIcs1YZnj~+)5_~d zf@e+f=jywmwHo^6|2FMNU&OQrR{>&of$T|lJ~%Gvhmp`T_o(tn7G8EPc;{Smo_iu8 zc(%=lb7xhq)*0x=lrSqgiHbu0EQ?ZRO%*fBMSA}kW|VNZ#$rZ^Y2aAa3ajQX#$vtq`2;@rA*1$+lsQ1*X)MI| z5D&mb2t{gwRoyhyWDb3thDECBbUqErCU^opPJ=V>f=Y~ojm2h$aV)6ZUOuWau3=A2 zR5A5Rt-T#r_b%aa#d02gH846Dx zy)ltR1a2P7YkqJPdCpcoKspeF+$f1kLf@%WG) zPh%N;9xxs9JZ3ls&>(4K;cDyYtfjXv@Z@aFz@yJZUx?;+mSgmmG_wT?UKXt~v$lBU z{?N<x8pP->gY{HWSY7FO%gAiTYQ-N$YiPg&>VHD*#4?numRR>f*YKMIR^ z%=!nUk!S8QfzoHPzZIt;G;tPd54Zb=S+IY&I6IvsSJ^z6iv!j=3zvA)+^k+;#Fov2 zi#!iy9L-OMAB@}J(^-9`*kGYFex<6j*$3tJeuzB&|Jq_U8wRKS#%$J6Y1x-*Ww7Va zrj_TgcDRar(j2zmbj4EZW9DK~!h2Aox$Hc)D|lwI?IzO`Iy8^XRLXU>G|FOb2=8ra zH=nIDVUNeNY!>11sMq^~!~W>u#4LX2VG2d&us&FSSeV1QnbPU694zTRqre4lmy~{# zya48YGA&ua-YCVoQ_ez`r)b?RlNMoqgZHmERjPT#h~AKoKiZ**cl0Q1g1lVVA6s+e zeMPSpvp$MXTk5ui?ZKOIkEN`;XX!3Qdu|p@S&E)>=_2*q`}WAzxwSp3Q`XgZF6_Al zsrGdlgo|?@-y*aC&fK)@n@T%O}#!)vQG;-)>x#c5~H~Ts5ChZhlR{D0+cW zg#BU3+@pMDeb!Zvw7f7I5N?VL(>1V4ufr*w93 z`*)>Mc$-jUN9v8UMHRP1y0sR*z(y**4h|Z`U>yeXYs>C+yk|Sm_v=|LC8BBWCoIgR z3(SXpPlmM@MSa4;-P+gzT)9!P9ewl(X4)Av_Y<~IVO=Z%pW>~c=~o)^87v-T=QGT= zH`B$>u)6n(UUCqV=M5}L@oGUIZD3`YQ%lUwKiR;1Xx#=D(d>LOSpTabud+NHU61ML zH$3P(g6xuYaj4_@viwY?KW8&t`z|f4dEO&h|2ftfyO8fjIJEg>-iY34WGS@?bMy)! ziwh%KJAs`C7qFCAO9B(9^=394vyB6r+4>N!P?~0~8-NaJmT}E}_H~`!G+3vx73{2K z>J}EL!a-QE9TG6m;`{|(+bbUNG-3z)x@_4NdVg{~tKXW;`(50c{4>?x$v#kg>eG;& ztX(yv%w)5rAkE4HDy(f|dOi>6P$hTiE-Zr@-j=m>>>1JzJK zIp44aE+ZR3EJwiqvks&xyRn}4h-U0&K4{O}-FU(O8=ctAIy=vdN84?+4yB5FFuOK2 zrr~?|yepp8?1A5aRoy*UEALCCEZBIGN)0U-K<{ak1rwk*w84V?B)90g1&&4*DSKH5 z#V>)n>}9D+@d&c)1=qXi`d-#CFfI;bweIz_fEiPqp~q^D`;)H|q#yIJhQv|peQc)t z2(%gQl=Q_SDy+>yy1tL)hMY;@%?`DlocWw@!+{&APdZ_Z^+ka#v~)jPf$B#bVAXtH zpiQ|&$NK@^nwgJ#^vb(M!wuAkGRr9LrZhr!%@7T)vmTM$MM2)iDE{2;< zkD;Gg6`FiZe`+fw&9%QppRQBvmO-H5oe9KP&HR>tE(q#kb15j!OmDwW9c0__B7V&uG7=gSnReLTV(!J^Y0{19f;NG2T z{>TP;rG*>QPo`}@vbw>8z5mbTnZ(YrS!FMw!wd!Rcf)m#Sux!?%i1b&)#&fDc*&=f zw^TpJUMfCUL%CVP{a%o_w&(_kt~J+E`)BsINhw{Cs{aD*b(E5SVHYr-%KwT@W0n1= z3x44U!eimrcRexC%)bIGJ6{K%pW}%Sc)f> zjDUMaHijY$!5tp_o{s#+eCk{H^BosM)Nx%9Z95M-^`D^n2%5=*wv*=-=HoP;KQE%{ zSFkYK!iRcaVZJov3M&g7FA z-FnPX&O};p3-8O<)7e|l2Vo_s#BCN_yJATs=Bx1Yip$o8TOU6CvNn1D4wagsyXv@u zZfsN!KK0@I>)9Om758tmB}!>#nRN1^j(P?eD>H_>-32V<~|vt16ftcDu801>UP9W!~D~g3AF0aCXdj z%D;yd@n0z5K3i_ON?+e+3sqAKRsZM(%Xky5Y`5a>N|AXe_&W8;V=Zc2G+|U_o=8l8 z&)jp?>si@W>8z7=nVX_dy0IBxY#rWDF$!JD!-S_{DJsZgLruR}hW-V28S3fy0}Qo0 z^zQ?<602NS9%A`q&qK_OJM!ncd@BEleF&kR@(2U9F|B&Uj^lMe8mKfdN~x}1Q{U6lC?)uVy(;h8 zX~hy%vo$gOUsGCR{i5@G)`qWmx8U`@*ixEMU!|K-N{rK^d{Z&&F?#!qUBc^+pPxfY z&QPttSv7NNS^Kf0E?4>8AseRQV<{O zj0-6LAGE+~>id!fxjo{IiI<^RguV&QmHiUqYL3P471n{VSlQ+^tM8u)R}5;c-oLzc zr#bT>Tm>&@-_mEV(OZAe)z_>SCIfZez_8}g(l_u{(rN!2HX7UJs=sBS&d0Hujts_8 z*S9Rtr^;XN3i4v1gAWHl{0_i`7qh;g%(r-pgB>$(F`KUO3^C3+_C)%0qldt~-aZB1 z;%(vjl@?Nq!v2L1e}r29%ls7Q*EHx~2-{(r^Djmm_AvYle|#pr`xi@99jWR&);Zqw z`MW|FdK)yf-JP~d&s(HtldmJrKlJT8_CWFZ+p^_7J7ekp^hg| z%VspUfNc(ccheE}TRmIY$A7=WEvU(uetM*(=q|-8>n|_f6;MF|^ItYjYic^SY`<2? zl)UV=wgdNuFEnYHO2rpcR?!aQ)%G<-yKI`b>1$OpmDz_jYLwNfN>XMsblpj;qd6xY zy`x%3(~nI13UfWPruF3?>u6fC;{KE(owQw;e%^A@{xD6l951f|qVyk53X$ zVF?LFmCLxdbH1YavRxn>5;8Yf^Ua1;7KK9*uiG5nU>L^&Q>r0JC9kcT$f1b02Ev=;B#=AMXk3R;E7ve5L> zh;^BEl-4eL)&5h2?tCvo*S$B^GN;PrO}_{PWsV+9qhg*DX>A1z36#l9gQjjP%z zK3W-*zn+n4h24C2nsnqzM0{ygaysAS)GkfxI zzU3bg%59}T{IqIH!!zXWujQ8Ra-%SUo`DbE|M_dx`6n;_+GDS3;HpUau+8*m8LgUE z{3%ftKHU%*(OYx1GF@#toH$0q{|VEb-uAKF6<=LE~`a_^}7h+ zXnV#sQsFoFL2s=ujm6Qdn4|cKK9g7D7n)xdWnJQB>03eYrUY9jj#+=DGi9}!riJvr ztkzCxaEjUnYUO<&p^W|d&V=lk+d*6(WuCAmQbwT0Kib?Cs0F$oImxq{;@pGhl=qyj z1!^;}KG(CHR)dRiIc*rIcjdIQei^?Zvq8LzvSaF&g7S+Qz#P5v%5?SO8;2lyLOxji7RHzdB^E6r#qE%6_hH)@N3&8iVzlCUF*ut0} zqJ@XI!!}R*QueZ6^*(mi-?QpYQN{0hFWx*PwrF8jS_Q3!%Pe%F{^i1#rKnSYR+COw zfPj^Bp%)djrSOR|D{33~%ll9*qSV6Uy#1Tuo?xG4G&oeNi0`K6hiVnz-tP>BL}O=s zsFvik{RargN~#!!-swgg!nBRpsL-mCR<+dY@7`gfJ~w1R-_ndqT9E5wNQbD}iM-Xc zt&$e5gchf(m9)>{ip;32)xo}_eU-Hc?~I?{6+HOPx)vf}k3W_Et*m93dRk^y(Y`mK z7n7@LQ68gIA%*ziQh1!^SJQ%(;DeSO)wHuF?u%B}+L?CJx$4?Dr*6l=Y8oYlBcI1~ zK3q$Hta(I0t=2k1-6OOn9+CTbow4Uf>}GmOUqoo}`~`c2Ru13o@+Btj5BGIoALKIKbUbC@R8 zgnC~?d-3C$;|!N6HTp=S-p`ZWs~^dmL&a-pRh7`|RD=IU@26h1wEM1ezv9yHgbyX_ zYHAk)$;XG7G1_r-R#vRm35&V6V>KUm%dcXgQua}3Z5XJ*bg{P9R`EMTmFsAkrf=!X zIvC1x`HvU9t^?5tI7p#&wHhAdcNFH&2fc*`)zy|mQVQy7F}};c;DPuQ`lhZFu#|xn zj3v~vp4Osj91<>ctQhg$)?cY$Y9Fj8yD7&1653x+JLb3UbJ*F;BeRdB<;*y+2)hFK zwgA_Cv@}jLqqn{5YXeNbS|-)koVbCQ5s!gBnZAzKT0^o-4Yc}LQ)$pZ3stH;vkYjU zwKSF92Jt=2ogThH0Gl}QX8cG)t(nWFcffi6uwEVsu(9~?B|!^R%I~6e3EC^uNuowD z|08H*W37==>mhyBSlguptfB!;kZlg_Yy!)^m6kNsZu5`Pn`t+(@uX982xWJw*h0JK zKXwb0OXf4N0+a+hf^T(BSzUKhNTPNT3%9QlwXRqVZ=0ko!V<%sByAj~AYEH(KVX3> zv=y2@XdAU{r6og>*0e(XX3>LIT3;o2E2SiB(F&}~%w*WX`SfM7))40ZS+Z77@!Ue; zt+fxFwr;>kz?U4YwRFz|%ed@yXYsXEyNxyrpS138gVsMp<=es-He5gr+iH`PS~;}8E%@?W zPUYHZWy&?rf$l5;7hz#y=JUkNd$;9wcbL6*1+cL*4lLw7oK_OLc{#au(y9h-T)?db3+>)5{dK{(R^0w@2b=GH z{DIncLKAeP6`izR@s&R1?Sc^O2ZuL5yCYvqKx{;GLGJpNNNB!-`8=9d2YxlrR^Oz` zmvB03wS7ND!w=H;!X#$#UH+G%FXRO+r5T;IAkHZNG1H;WP!_!{H#%z_O|UREyF#7q z#YQge3~Jh@n|4caT}{#5p%NR>yYAXvjLzLXAm>x)c@Ov^ji`E0^t;na8r&1=^+)=o zrxuIZ!EYR`wt~ES!D79pX1%mpnCMOJg;CVR^0pT=ffAlgp1rjSs^?D%pTX9EC}jp{ zW0mz;lpml)xZawJs_AaRy|W6{EvrS8owX2RHEK47DE2L8wZNk0zZpj+RuFq#`@le~ zq(Ay-5iZw0wkN$!fqfyR_+qNB7UI-%0n)dmv3<3Q%QpY0=m>!tK**Yg-L&T=~3_#cH<{dxqg}-|1`NDyg3VX?x)pqRv>i` zzOepFi~DIEl*qGmzn>PS6#IeP`fDpNt~U3FLHmi$_SZu2-r`ArtzNbCZ6-b)jLE`p zQs#^3mmuPEKqP0!Pq@xY92UyokcQ8*bQpj(^-rIUO5u>o&rMhlz$Tj$){tqC^{e#B zKrLO_Jb}W8Xra_{kmin6hwg*4mP(Zgv~iHu&2%>RL#G+LpO$Ko)y-hqqx51dyQhZI-aZ9p7V%2hiYYupFXY>%X67QHHV^_U(?W` zm>5OS&Y@5%IrK#QM1G{5$Bd=mBdtFaT>oKkBQnT&IELIhOUiIBG_KmU+yXEF-A+&KE%wM^&^z%6Mxc_*nG+rCb z{l@W7BfrzL@!Dkg5W^;5z66JGf;LWZNu!z*QRrpMpo!XAlSiE~qEHxEUg#w9o{U0w zQLo7wLA?H%tYw?#S<Vr4uw=yTs#6*Z2qT9n4xD62{Nanm}94 zoB^5xeUzw@ zBLsbay+X@DE45PTYPQxNpI-Xte$rx{STLY|EOFok^=lqG{7sB^m zLR%MVhxpsIMOrJR4tA0((xNextcxHekE#4(h+FI|`gk!EOonCeVpwFwt*7P45|~FE z+TyYd>g_YCwoL16ns1r83=Rn@^fFhQ6j82=kj1=p7(c@OJC?T&qs#uhM0)<1){vH> zc;?b0LSuhQt(IfbyOq+H!z8^Trxn^zwBP6z+DNZqecstT_WGe>ons#Ty#nmzQRqso zU%<)U7&qOxX-dxi$cnEKeuCP;h=bq0ex){CY1o_GS0OsKQLfVZ2W>$!=GC{&0(c7k z0fRkBG96u|%~VPzQq$F19Jc4rSdBL8LyuN#mD)w)bsn~sxzFZ1xziI~oAMs$t0*%- z@;Q|!4{v~Qeku$PPk-w^VP|5tYcSU>{n?^K)9D5Ux5O?v^fcx$YqZ7Dxoz!Z_*CAk ziH_%s((_p9`DdE4R;$==lmz`h!u|#>it7FU$Cr&gi;B7?D&DV(g$ag=cL};078=@` zlvGxjXjoWOSXdToVqs!oQJ0k!7M2wi8if`XDwY=N>f6f7YAvd@G}kgC0q6HT3l`0% z|M$=1F+68p=Vs2`Tyy4}GqZu8XAXIoo8% z-IvngSrJ>nJy$QhSTDBcZPDkw%$g2f6!knx&v#dFPUn>W-pgrt`lh;#{A<70$c*Q0 zL#$&jm!;3s0ZI-lg_-z9UiPuA7zWDC&?62tr#OllPGem-Qw6z*DXH1p)PwYIV0zb$CK zeL4Nnm&-eAxq6D^*jn3Q$AL@q+4T$Y1W>wa$4t-4p2^iP@$Y5OA2FMmk#i?+T)mt7Ie4NoT|kNLCXhC6a|@YcGr%ebjL zhXfbIyg63;;-&uBxw862ZlU?I`9+?7^u#%h|07YQw#UYwoczyO*53Kg{`!`Ef=^h^ z4V*VrT1i9BO7eLrBOm9Dm#}rVQJoU6HYKk z=JIj)otNpP=_x3dThqDt*8hg=T}P+9-z9QvovnZ0`;z}jiIb>;ovX>qcku=#eb_f; z$V;}aEJUC5l5Jp{jRn@=#r?6|`I2qC^@1rcSG;5kX@8JHZ*JW+M>fgUmu**uJ^2t# zbmhQ8>9d~ay~xSvR<)`y>#G% z`r`RBX?aEz?R0U}=;r5tM&0~RlXr?cc-;i&rs&E)I7UBX1RuOs#-HOCqSte#d@A7; z+k&}6X(@UDF8QAUxNwF7Z@Q6IGy+@VcbsiXD|#{nANyJsl+MKu#r3{}tLNGy ze@fTaYzf^jaOw2Upm4V8mr?J!GWZ3HkNo@Pme*|2eHY>Ucf1VUo&6A5aCN2s8QJ)n z?N-`UzcNNL=<$}>V(E_FSw@$nl*JJ=?WOW@ne8rX!Z_()X6tV~m@Jo+*Z3C>EF4f**Sy_OufgxkGr#NZ*rfp&^={)E{h}MO0-H}6; zL(93-*)P1B`iV}K2RHK6H$e_;qUFyM^_(_$kD{PbOgY!J_HHluSN*oO94ah|TBgV%0vz6<#WYqJqNme;n~hDK}W6^TzTVBlk6 zly=&dyaJP`-}GD&<4s<6EayJ`J&IkDT5Y?s-<`C~Up!ivKTHS2T>jlCbFT2$#LDfv zY@L}&{-zp>bViJ7o&s+hC40AHKnDg-m6gS*E|qy(souxs;jOmVesgL5zm({87uOE` zKd}z*zY`OT_1wcl&bI08zwFQ#DPxse87rqa_m+iJR5)8x(VWafi->ATf-QHMEv=z@YvxtX(x zQ*PQyOZGw9qqd7mXkz`XT4e+ZAn)5R>#*`nQyk0{Gx5rS4+F`qhGv2U+ z_V|K4vx6R6x$NFyi?fc86Jv*M1T&u_KBOG0;c0`C&8X>Gs^E zNM8TQc9HsFE=jDGV;|Y>(+dEycG`aJ*1y|-q^tM9=5!^We>Pn^etA^a3M)}|@ff#8 zHt(WSI9)PS0ohW^D2H9|e;~is+J?4SKaTx^SSEK0YHfYGO*4nv ztKHqr;a2GVzQJ%ROz-<;$8OtxI_<0XFtjp!LggoWND2jce6OuC=_swp-hTICS~gdR)h64!Oe>$$k56-OjD=dA4A- z|MG@zfIrDg`)yY+*7?_dEQ@u>e2G3_yN%JH)dy_zSrcdd)K<;7*7i?ryTjfbK?$t1 zRmkekY@@90Z;^eU@$`IZ#^%4Hip zVn&C*4e9a#BL#}(M>CRF^gVSjxqG!MpCQu`^@DY1?AzpylYV1_OWFKy%B?<9bB%oO zv#p^%J%<_koGG6jW+eK^8Cmr`9jor&*%F;+t|8>o z`Todox$8UI9XwSZ`Hp8>rqRDAJJ(6k_qG{*Z^u5j1kIehGNoHf&|#ek`hb5$rL~SO zp0!t+T=WCa=g-NbKk)Q=Mvnhro7JZcwmLb4>BGOzxR(}lWHApV{()gK|3}-jwl5A0 zvE=i9b^F(3>yNh7@JSqZ9E5FM+2u0n_meHQ&2xV>7{5H`A7!tc`4iWQHRdn5(a$)? z)s>BYTRtlyE0_Fi3klIrNx#@`u(tg}>V6?NXJqD4TTC;JoC~RkJ;8)yIn5hf3?lzB9LF{oyPno+kUkT9X@+nb0H+Jj87vsU0Mo(@kHa7 zQc^kr_l}hj*UVe)K69i}Pl4Pd=N-2l3VF5ioB+?{gKz$|fh*-+ZuTr;-lnHiSJ>WX z?Q-(ck3*6>ZrPtaXMe|c!gdMWvpC|TQGn}9j9>!%%*NI;5JkS~ZIi8u zqvZB_+XSrcTlKc>%q86Y7vsCviT5wAo#S%mFT9F$Jxx*mB)6Wnjq3mA#Q!Y9?8b)X zb#VR<<)hQ|OU4YBW2Z6X-$>sEjK=qJM*~;oUoxu^D|)pYXtc$4{^ffD?WUMpo*7r# zCP+k+9vF0qyNS`hk7QmG6JJeI)WlTe!A_i-$IT8QmPz@?u&TBWl{3%S_%>ed6YEqi zAE)XQqKezUFjjkuPfJ?#|4bZR1hN>Lausj^9?&dRlRvVY}`+Vk1^`LJy#inkuzN=(KsOl+uY^otQ;AphFclvyt%C! z6EaRp+o}sYE*VA|bv-i#?~kdI@7k)Qc0&-4B(UazRenR;sR~;CkL}cbEL6z|SMlAV zKGm&L_uP3!fLAR~O&VI~AAg|o&2aTs$iT88tzxwQPbcrQBVRGZ-7=$2`|mnjc6U(o z+x5Zgk%@ZrJ4GgRRCBFe>tuaLwI}48%DWwEa!8lP!@4zXKk{=hxQp`c(jiVh?WATh znh<-gI&uE3-!)LJxAlIoF*sV$V=q_$dVFNQhy*T53mkq*^Vs= zlY6Q$*1-{#OMB8TS%J~eOATb@Qor7+OYhGNw#Oon+p|(sBB~m(zV|)0_JRJ$B?3!BaV%l2^`T z_2XXuB1v_s`Ph~Bo$5A*%ZKz+36U?596hYS>e|#OmyRhenG@e45A;(v=ntRvQ?a}S z>gcZqcD(7Bg?meWR5hvde_18%;*?V|`m2kq9lTP~UybNJY8RGe58toS)5_$YMDZxg zR|&}fSMpnbHJ4e7v;pc4Yp*_1J3#fvP8}bh&S2$!jpB%xMF%Rk_4jV_fs>3b8mLm4 zquVo3C0t}B>c11})(K713H{_<e%J>9VE8-TT(8|q>k^@(Qz6k<>!&_E#f#|-Hds@_k7hi>=uY>$sf~7@}NM($EW4M99l>$%QJz z+JC#0U8pYLW1LJ>Ea$_q!&Ki6CEqr;6g>dye_Yzesaf_*w&|SikXuJm0guF~j#$y> z;#8Ei?KY{2!y3IS(L>c@>qJL$N~?yd4p!^d%G#mK-dgQVvUix$-?ce0Oij0*+g6f> zs|T#}w(B%?lW&KsL0v0e*Hx0j+$C+dP2r zZK?K)+RKLX)OoTuUR_K&I*;J)(to2Y9-;c^+8?1_?sv~?I{EvKY{&G@V@$X#ifK}AFHln8JImmjbf5xd;)eM z?mf9bLCvy;+nP)6w*=LV+gjU1bzQq1lnJr%p_g0ajzo2VbxLT^lf$8HL&s*@@VUS3 z+ftKA>)i6>IGR779vjDH7L1&EcdPTpY-lhh<)7-fOuugQ_jSJfi(v5^EV?eAsCrxbJ|}x8su9+( zS43URUEoz2eX&}G4SD}!)x+B6jC^@9_VjVNAW4mBbM>3F0{t~CnLx5-Ws+*wCgi)v-d}hF;air8|1U``rQ0!clDd_C-G`HCWyi!nNnOZf zSL7wCu6^dm`bKtq*KZwX*)l5IT&jkLFin-1tcEcKke#e93prd_m5kao_Ct%svn7(I z#SPeY-8OyCw%t@|o1#Lk%n!CrQ3I{*UzMRL!7R;5QHywn`dX_Oy&|DgsR`y`rm6y( z$%j+1nS2Xs8Wmw#FXN`shDv4rG)z7VwozH`+b~V($FB1)S22CB_Jvqz#4EP27Tj36 zGo<5|>g3hQ=R|Bx-uknX>Hj+}57zT*m#Y-=Rew3r4tPn%O;>$nj9Z0s*S*AznJJW2 zZq=2!)mBw_MJQI7}XQ=*G#uE}}&}?{%WQJPM?%H+w%F<)= zN95=XZZ~|#D^)$LmtCil!#mdMd=HT0sj98Dvq(d#TCaO+SE}XQIp|z1xk_E4-xj@!ey8m*IdT=1;FI1n z)u^`h4>!;`$j5L=`84it_s>*e^hqC@Nq&l-lg4SPuk4zs+F3^z%V#sy73#sauyJ{n zL()`Y2n)!vuBP+Kdy7}AXr5FzU#-S;zotN2f>sj;9hZgDi2W0#-8E`bNTW=@Mh($x zo~}_*jI6J_Mh&)xek#XiP{x64RNF4+t};cCGu%%X=vviHt)=_qUm`Kra-&I>N!O|j zK3e|jwd(po6&oy;3GZ_ry(p&3%@tfr(K|b)wm(XUjzji!eBedg7@04Xp|ddjqu-Kw zvs4;g>~>Wk`n)vL$OB`qcV7MGBI$YR;Z zEfg_JNp8Jf+jV+X*V7F=DqF8t(bnNhYZXlo6%WXHPzF}{d1!LYQPu{@& ze~@gxL7i_^-^m3xspyDpj|J=XvXv2|f*-;E)^G7hpLCki6EZp-3-hYnnXZyTE|5*> zYIVZ(uTmB>pVDQuIEtt3Njxtm@g=D-Kj}psIZ?U(r>R_RlXL%dtB&b9e}02||X7wO;g^WMt4nu91Qa8r=!0%AmGK+$%>i)P-%% z=WAhH`7tj`zqx8cpS(jB%fycFgvJ#lMP2ScRL`gS8Mz4#bbsrARy=d5^mut{F4x~? zshg`NS>O6fF1vx~@0ZKxQM#Y53&yu!?&63#eR3YpL9fWkc_iXMi$o||X@*U0vp)U#^ZiIVB>_>A9PVr2*il@~%a?b+w z0i$CV-Kze_qVo>7sY(48=|uAQG+a;XP9{_B{PS9*oAmQy_dHp6n|i_d1cPKeZFG4S zrm%c`U+}Q~bIr2trOHv+stXT9`7IAb&oz5bhdS1lhppMovVI`CT`jkc&llr%n$bFm zzC%4c=*tJ11OK+BIq+%N{4`~GmP(@s6Gjqj=R7N4-J!1U@p~|x^mFz5(ax#M|IiaY zVI=NmnQ$Y-|U|wjV41yh~N;Wf*Vfs_xd%d*tI>?n}=}-$g2pyPtazCLm1~ zE>h>mIQh<>jyCK`-JjwyT1VWD1ARiLj=cj1I@YdFR_)eZGj5Zjd@TRdOVv$W(bjxC zbek=s@>QHQZ%cEGdHM8d$H}Al>NENS^OmVTos$>n2Djsgm#$`WdmAaTj63oQ*|vnNQtvV|3P}HEPr@VUBNwj@l4c#gq7jRpzlv4%D!_v*Wm#gFLPcETj!4#q%Dfp}M&WDxL8anxH?rnWN zs+YV~s2;JlOOuONlB7j)>q=kJ*z zZ#|;Uqj&Ps4*3r}C$0CY$c&hYVr3P7FDF1h?H_9!mcv|G!dXMqI@SN;<3=5be zKRrfgFF%(e;^l(JF%kF59gnMPtA%Td`NNS-BC$Rp2Fp;?uOpI6MNO_h?h zs%N+7Z`Muwc=d<*Q6=1}EmK3j`X)NP$(x#s>o`24$E^s-vZSjnN6)i(P#b4XO1 zD`eezwK3$6%CuK_uA~%hd6musi%?%xFX*K)uc`f^Q$}IeZ-13*E~boRMvr2Olz9FS ze;J*?m!$9ODyMIoi8M6cu$b5JR;K&%s~29@@typr$#hY)0l2nulLhkqMtUfnVx|3Cw5wTi`&*3ey&=cnqF-i6p9(c7vde|~!QiLl zm4(6I$q7!MZ1ayFCO1^jW9d3f3M$n741C+)CJY~Yd7DR`pXIH$xye5%KfTRk^ks6z zJ6vGA`uC1{oaM>kmDoVOrdO$iv4vfgTt(f}D*vcdyeD|KJouh^ruV(Wn@c61H^e?T z!Kl?gWn$Yau4wf3Xz-jVml{$Y&*O5UF!Ok&n^#A0) zasZL)A5G{*kYJXIqb{SM$&&ww)K$^1`n9s}7L^rZ?KD(YzOQoIRZgX#Ul`k9==IMZ zsP6V$E!;m=I(?v;e{AH?{RlU-2>QoHj%mTwBCJ4Yql54w{K^m1qgKb5%0AVK?=ck1 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 delta 145532 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

p>h@0 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 UNO(JPMGJ5A74Uh@*a%eaTsk* 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 S_2%fQ 0.9MB (1.7MB saved, 66.1% smaller) -_______________ -Vulkan Version: - - available: 1.4.309 - - requesting: 1.3.0 -______________________ -Used Instance Layers : -VK_LAYER_KHRONOS_validation - -Used Instance Extensions : -____________________ -Devices : 1 -0: AMD Radeon RX 6950 XT - - Compatible -Compatible physical devices found : 1 -Using Device: - - Device Name : AMD Radeon RX 6950 XT - - Vendor : AMD - - Driver Version : 2.0.341 - - API Version : 1.4.308 - - Device Type : Discrete GPU -________________________ -Used Device Extensions : -VK_KHR_deferred_host_operations -VK_KHR_acceleration_structure -VK_KHR_ray_query - -BLAS Compaction: 2.6MB -> 0.9MB (1.7MB saved, 66.1% smaller) diff --git a/modules/Tacoma/libtacoma.so b/modules/Tacoma/libtacoma.so index e30a93e5380aa5fd659a5514402a1f0c043a2b9a..5cbefb9de71722f6106c91d6acdac4aec9fb3a45 100755 GIT binary patch delta 145577 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%0AVK?=ck1 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 delta 145532 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

p>h@0 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 UNO(JPMGJ5A74Uh@*a%eaTsk* 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 S_2%fQ *Tacoma_Context #foreign libtacoma; tacoma_destroy :: (ctx: *Tacoma_Context) #foreign libtacoma; tacoma_load_scene :: (ctx: *Tacoma_Context, sky: Sky_Config, ts: Trile_Set, world: World, include_water: s32) #foreign libtacoma; -tacoma_render_rdm :: (ctx: *Tacoma_Context, world_trile_index: s32, roughness: s32, quality: s32, out_width: *s32, out_height: *s32) -> *float #foreign libtacoma; +tacoma_render_rdm :: (ctx: *Tacoma_Context, world_trile_index: s32, roughness: s32, quality: s32, size: s32) -> *float #foreign libtacoma; tacoma_render_reference :: (ctx: *Tacoma_Context, width: s32, height: s32, eye: Vector3, target: Vector3, roughness: float, quality: s32) -> *float #foreign libtacoma; tacoma_free_result :: (data: *float) #foreign libtacoma; diff --git a/settings.cfg b/settings.cfg index 1284e45..bb40305 100644 --- a/settings.cfg +++ b/settings.cfg @@ -1,4 +1,4 @@ -master_volume 0.642776 +master_volume 0.475357 music_volume 0.522385 sfx_volume 1 fullscreen 0 diff --git a/src/assets/asset_manager.jai b/src/assets/asset_manager.jai index 19bb55a..0105dab 100644 --- a/src/assets/asset_manager.jai +++ b/src/assets/asset_manager.jai @@ -6,10 +6,23 @@ Pool :: #import "Pool"; #load "loaders.jai"; +MAIN_CHUNK_BUFFER_SIZE : s64 : 256 * 1024; +RDM_CHUNK_BUFFER_SIZE : s64 : 64 * 1024 * 1024; + +Active_Fetch :: struct { + occupied : bool; + req : Fetch_Request; + accumulated : [..]u8; + chunk_buf : []u8; +} + // Shared types and the global must be #scope_export so that rdm_loader.jai // (a separate file, even when #load-ed) can access them. #scope_export +CHANNEL_MAIN : u32 : 0; +CHANNEL_RDM : u32 : 1; + Fetch_Type :: enum { PACK; WORLD; @@ -35,13 +48,12 @@ Fetch_Request :: struct { } Asset_Manager :: struct { - fetch_queue : [..]Fetch_Request; - is_fetching : bool; - current_fetch : Fetch_Request; + active : [2]Active_Fetch; + main_queue : [..]Fetch_Request; + rdm_queue : [..]Fetch_Request; loadedPacks : [..]Loaded_Pack; pending_hot_reload : bool; hot_reload_unpause_pending : bool; - frames_waited : int; } g_asset_manager : Asset_Manager; @@ -50,66 +62,104 @@ g_asset_manager : Asset_Manager; #load "rdm_loader.jai"; -MAX_FILE_SIZE :: 600_000_000; -RDM_ATLAS_MAX_BYTES :: 4096 * 4096 * 4 * 4 + size_of(RDM_File_Header); -RDM_LOOKUP_MAX_BYTES :: 512 * 512 * 4 * 4 + size_of(RDM_File_Header); - -buf : []u8; -world_buf : []u8; -world_chunks_buf : []u8; -rdm_atlas_buf : []u8; -rdm_lookup_buf : []u8; - -buffer_for_fetch :: (type: Fetch_Type) -> (*u8, u64) { - if type == .PACK return buf.data, xx buf.count; - if type == .WORLD return world_buf.data, xx world_buf.count; - if type == .WORLD_CHUNKS return world_chunks_buf.data, xx world_chunks_buf.count; - if type == .RDM_ATLAS return rdm_atlas_buf.data, xx rdm_atlas_buf.count; - if type == .RDM_LOOKUP return rdm_lookup_buf.data, xx rdm_lookup_buf.count; - return null, 0; -} - fetch_callback :: (res: *sfetch_response_t) #c_call { push_context,defer_pop default_context; - req := g_asset_manager.current_fetch; - g_asset_manager.is_fetching = false; + af := *g_asset_manager.active[res.channel]; + + if res.fetched { + chunk_count := res.data.size.(s64); + needed := af.accumulated.count + chunk_count; + if af.accumulated.allocated < needed { + new_cap := max(needed, max(af.accumulated.allocated * 2, 1024 * 1024)); + array_reserve(*af.accumulated, new_cap); + } + memcpy(af.accumulated.data + af.accumulated.count, res.data.ptr, chunk_count); + af.accumulated.count = needed; + } + + if !res.finished then return; + + // Mark channel free before processing so that enqueued follow-up requests + // (WORLD -> WORLD_CHUNKS, RDM_ATLAS -> RDM_LOOKUP) are visible on the next tick. + af.occupied = false; + req := af.req; + + if res.failed { + handle_fetch_failed(*req); + array_reset(*af.accumulated); + return; + } + + data : []u8; + data.data = af.accumulated.data; + data.count = af.accumulated.count; + + process_completed_fetch(*req, data); + + if req.type == .PACK { + // process_completed_fetch either stored data in Loaded_Pack.data_buffer or + // freed it on parse failure. Either way, zero af.accumulated without freeing. + af.accumulated.data = null; + af.accumulated.count = 0; + af.accumulated.allocated = 0; + } else { + array_reset(*af.accumulated); + } +} + +handle_fetch_failed :: (req: *Fetch_Request) { if req.type == { case .PACK; - if res.failed { - log_error("Failed to load pack '%'", req.pack_name); + log_error("Failed to load pack '%'", req.pack_name); + + case .WORLD; + if ends_with(req.path, "world.json") { + fallback_req : Fetch_Request; + fallback_req.type = .WORLD; + fallback_req.world_name = req.world_name; + fallback_req.path = sprint("%/worlds/%/index.world", GAME_RESOURCES_DIR, req.world_name); + fallback_req.should_block = true; + array_add(*g_asset_manager.main_queue, fallback_req); return; } - mem := NewArray(res.data.size.(s64), u8, false); - memcpy(mem.data, res.data.ptr, res.data.size.(s64)); + log_error("Failed to load world '%'", req.world_name); + + case .WORLD_CHUNKS; + free(req.world_json_data.data); + log_error("Failed to load chunks.bin for world '%'", req.world_name); + + case .RDM_ATLAS; + log_error("RDM: failed to load atlas for chunk %", req.chunk_key); + + case .RDM_LOOKUP; + if req.rdm_pending_atlas.id != 0 then sg_destroy_image(req.rdm_pending_atlas); + log_error("RDM: failed to load lookup for chunk %", req.chunk_key); + + } +} + +process_completed_fetch :: (req: *Fetch_Request, data: []u8) { + if req.type == { + + case .PACK; pack: Loaded_Pack; Pool.set_allocators(*pack.pool); - pack.nameHash = hash.get_hash(req.pack_name); - pack.name = sprint("%", req.pack_name); - success := init_from_memory(*pack.content, mem, sprint("%", req.pack_name)); - if !success { log_error("Failed to load pack!!"); return; } + pack.nameHash = hash.get_hash(req.pack_name); + pack.name = sprint("%", req.pack_name); + pack.data_buffer = data; + success := init_from_memory(*pack.content, pack.data_buffer, sprint("%", req.pack_name)); + if !success { + log_error("Failed to load pack!!"); + free(pack.data_buffer.data); + pack.data_buffer = .{}; + return; + } add_resources_from_pack(*pack); array_add(*g_asset_manager.loadedPacks, pack); case .WORLD; - if res.failed { - if ends_with(req.path, "world.json") { - fallback_req : Fetch_Request; - fallback_req.type = .WORLD; - fallback_req.world_name = req.world_name; - fallback_req.path = sprint("%/worlds/%/index.world", GAME_RESOURCES_DIR, req.world_name); - fallback_req.should_block = true; - array_add(*g_asset_manager.fetch_queue, fallback_req); - return; - } - log_error("Failed to load world '%'", req.world_name); - return; - } - data: []u8; - data.data = res.data.ptr; - data.count = res.data.size.(s64); - is_json := data.count > 0 && data[0] == #char "{"; if is_json { json_copy := NewArray(data.count, u8, false); @@ -120,13 +170,13 @@ fetch_callback :: (res: *sfetch_response_t) #c_call { chunks_req.path = sprint("%/worlds/%/chunks.bin", GAME_RESOURCES_DIR, req.world_name); chunks_req.should_block = true; chunks_req.world_json_data = json_copy; - array_add(*g_asset_manager.fetch_queue, chunks_req); + array_add(*g_asset_manager.main_queue, chunks_req); } else { world, ok := load_world_from_data(data); if ok { set_loaded_world(world); rdm_loader_enqueue_world(*get_current_world().world); - log_info("Loaded world (legacy): %", world.name); + log_info("Loaded world (legacy): %", req.world_name); } else { log_error("Failed to parse world '%'", req.world_name); } @@ -136,24 +186,15 @@ fetch_callback :: (res: *sfetch_response_t) #c_call { json_data := req.world_json_data; defer free(json_data.data); - if res.failed { - log_error("Failed to load chunks.bin for world '%'", req.world_name); - return; - } - json_str: string; - json_str.data = json_data.data; + json_str.data = json_data.data; json_str.count = json_data.count; - chunk_bin: []u8; - chunk_bin.data = res.data.ptr; - chunk_bin.count = res.data.size.(s64); - - world, ok := load_world_from_json(json_str, chunk_bin); + world, ok := load_world_from_json(json_str, data); if ok { set_loaded_world(world); rdm_loader_enqueue_world(*get_current_world().world); - log_info("Loaded world: %", world.name); + log_info("Loaded world: %", req.world_name); } else { log_error("Failed to parse world '%'", req.world_name); } @@ -162,23 +203,19 @@ fetch_callback :: (res: *sfetch_response_t) #c_call { curworld := get_current_world(); if !curworld.valid || curworld.world.name != req.world_name then return; - if res.failed { - log_error("RDM: failed to load atlas for chunk %", req.chunk_key); - return; - } header_size := cast(s64) size_of(RDM_File_Header); - if res.data.size < cast(u64) header_size { + if data.count < header_size { log_error("RDM: atlas too small for chunk %", req.chunk_key); return; } - header := cast(*RDM_File_Header) res.data.ptr; + header := cast(*RDM_File_Header) data.data; if header.magic != RDM_FILE_MAGIC { log_error("RDM: bad atlas magic for chunk %", req.chunk_key); return; } atlas_pixel_bytes := cast(u64) header.width * cast(u64) header.height * 4 * size_of(float); atlas_imgdata : sg_image_data; - atlas_imgdata.subimage[0][0] = .{ res.data.ptr + header_size, atlas_pixel_bytes }; + atlas_imgdata.subimage[0][0] = .{ data.data + header_size, atlas_pixel_bytes }; atlas_desc : sg_image_desc = .{ render_target = false, width = header.width, @@ -187,8 +224,8 @@ fetch_callback :: (res: *sfetch_response_t) #c_call { sample_count = 1, data = atlas_imgdata, }; - lookup_path: string; chunk_ptr := table_find_pointer(*curworld.world.chunks, req.chunk_key); + lookup_path: string; if chunk_ptr != null && chunk_ptr.rdm_lookup_path.count > 0 { lookup_path = sprint("%/worlds/%/%", GAME_RESOURCES_DIR, req.world_name, chunk_ptr.rdm_lookup_path); } else { @@ -200,24 +237,23 @@ fetch_callback :: (res: *sfetch_response_t) #c_call { lookup_req.chunk_key = req.chunk_key; lookup_req.path = lookup_path; lookup_req.rdm_pending_atlas = sg_make_image(*atlas_desc); - array_add(*g_asset_manager.fetch_queue, lookup_req); + array_add(*g_asset_manager.rdm_queue, lookup_req); case .RDM_LOOKUP; curworld := get_current_world(); world_ok := curworld.valid && curworld.world.name == req.world_name; - if res.failed || !world_ok { - if res.failed then log_error("RDM: failed to load lookup for chunk %", req.chunk_key); + if !world_ok { if req.rdm_pending_atlas.id != 0 then sg_destroy_image(req.rdm_pending_atlas); return; } header_size := cast(s64) size_of(RDM_File_Header); - if res.data.size < cast(u64) header_size { + if data.count < header_size { log_error("RDM: lookup too small for chunk %", req.chunk_key); sg_destroy_image(req.rdm_pending_atlas); return; } - header := cast(*RDM_File_Header) res.data.ptr; + header := cast(*RDM_File_Header) data.data; if header.magic != RDM_FILE_MAGIC { log_error("RDM: bad lookup magic for chunk %", req.chunk_key); sg_destroy_image(req.rdm_pending_atlas); @@ -225,7 +261,7 @@ fetch_callback :: (res: *sfetch_response_t) #c_call { } lookup_pixel_bytes := cast(u64) header.width * cast(u64) header.height * 4 * size_of(float); lookup_imgdata : sg_image_data; - lookup_imgdata.subimage[0][0] = .{ res.data.ptr + header_size, lookup_pixel_bytes }; + lookup_imgdata.subimage[0][0] = .{ data.data + header_size, lookup_pixel_bytes }; lookup_desc : sg_image_desc = .{ render_target = false, width = header.width, @@ -236,17 +272,17 @@ fetch_callback :: (res: *sfetch_response_t) #c_call { }; chunk := table_find_pointer(*curworld.world.chunks, req.chunk_key); if chunk != null { - chunk.rdm_atlas = req.rdm_pending_atlas; - chunk.rdm_lookup = sg_make_image(*lookup_desc); + chunk.rdm_atlas = req.rdm_pending_atlas; + chunk.rdm_lookup = sg_make_image(*lookup_desc); #if !FLAG_RELEASE_BUILD { chunk.rdm_lookup_w = header.width; chunk.rdm_lookup_h = header.height; num_floats := cast(s64)(header.width * header.height * 4); - cpu_copy := NewArray(num_floats, float); - memcpy(cpu_copy.data, res.data.ptr + header_size, cast(s64)lookup_pixel_bytes); + cpu_copy := NewArray(num_floats, float); + memcpy(cpu_copy.data, data.data + header_size, cast(s64)lookup_pixel_bytes); chunk.rdm_lookup_cpu = cpu_copy; } - chunk.rdm_valid = true; + chunk.rdm_valid = true; log_debug("RDM: loaded chunk %", req.chunk_key); } else { sg_destroy_image(req.rdm_pending_atlas); @@ -256,13 +292,14 @@ fetch_callback :: (res: *sfetch_response_t) #c_call { } Loaded_Pack :: struct { - name : string; - nameHash : u32 = 0; - content : Load_Package; - textures : Table(string, sg_image); - animations : Table(string, Animation); - audio : Table(string, Audio_Data); - pool : Pool.Pool; + name : string; + nameHash : u32 = 0; + data_buffer : []u8; + content : Load_Package; + textures : Table(string, sg_image); + animations : Table(string, Animation); + audio : Table(string, Audio_Data); + pool : Pool.Pool; } add_resources_from_pack :: (pack: *Loaded_Pack) { @@ -365,9 +402,6 @@ add_resources_from_pack :: (pack: *Loaded_Pack) { log_debug("Added anim(%)", anim.name); } } - - // add_new_spritesheets_from_pack(*pack.content, pack.name); - // load_color_lut_images(*pack.content, pack.name); } find_pack_by_name :: (name: string) -> (bool, Loaded_Pack) { @@ -381,6 +415,31 @@ find_pack_by_name :: (name: string) -> (bool, Loaded_Pack) { return false, .{}; } +dispatch_channel :: (queue: *[..]Fetch_Request, channel: u32) { + af := *g_asset_manager.active[channel]; + if af.occupied || queue.count == 0 then return; + + req := queue.data[0]; + for i: 0..queue.count - 2 { + queue.data[i] = queue.data[i + 1]; + } + queue.count -= 1; + + af.occupied = true; + af.req = req; + af.accumulated.count = 0; + + path_c := to_c_string(req.path); + defer free(path_c); + sfetch_send(*(sfetch_request_t.{ + channel = channel, + path = path_c, + callback = fetch_callback, + chunk_size = cast(u32) af.chunk_buf.count, + buffer = .{ ptr = af.chunk_buf.data, size = cast(u64) af.chunk_buf.count }, + })); +} + #scope_export free_resources_from_pack :: (pack: *Loaded_Pack) { @@ -389,27 +448,40 @@ free_resources_from_pack :: (pack: *Loaded_Pack) { table_reset(*pack.audio); table_reset(*pack.animations); Pool.reset(*pack.pool); + if pack.data_buffer.data { + free(pack.data_buffer.data); + pack.data_buffer = .{}; + } } asset_manager_init :: () { - buf = NewArray(MAX_FILE_SIZE, u8, false); - world_buf = NewArray(MAX_FILE_SIZE, u8, false); - world_chunks_buf = NewArray(MAX_FILE_SIZE, u8, false); - rdm_atlas_buf = NewArray(RDM_ATLAS_MAX_BYTES, u8, false); - rdm_lookup_buf = NewArray(RDM_LOOKUP_MAX_BYTES, u8, false); + g_asset_manager.active[CHANNEL_MAIN].chunk_buf = NewArray(MAIN_CHUNK_BUFFER_SIZE, u8, false); + g_asset_manager.active[CHANNEL_RDM].chunk_buf = NewArray(RDM_CHUNK_BUFFER_SIZE, u8, false); } mandatory_loads_done :: () -> bool { - if g_asset_manager.is_fetching && g_asset_manager.current_fetch.should_block_engine then return false; - for g_asset_manager.fetch_queue { + for channel: 0..1 { + af := *g_asset_manager.active[channel]; + if af.occupied && af.req.should_block_engine then return false; + } + for g_asset_manager.main_queue { + if it.should_block_engine then return false; + } + for g_asset_manager.rdm_queue { if it.should_block_engine then return false; } return true; } show_loading_screen :: () -> bool { - if g_asset_manager.is_fetching && g_asset_manager.current_fetch.should_block then return true; - for g_asset_manager.fetch_queue { + for channel: 0..1 { + af := *g_asset_manager.active[channel]; + if af.occupied && af.req.should_block then return true; + } + for g_asset_manager.main_queue { + if it.should_block then return true; + } + for g_asset_manager.rdm_queue { if it.should_block then return true; } return false; @@ -417,7 +489,9 @@ show_loading_screen :: () -> bool { asset_manager_tick :: () { #if !FLAG_RELEASE_BUILD && OS != .WASM { - if g_asset_manager.pending_hot_reload && !g_asset_manager.is_fetching && g_asset_manager.fetch_queue.count == 0 { + if g_asset_manager.pending_hot_reload + && !g_asset_manager.active[CHANNEL_MAIN].occupied + && g_asset_manager.main_queue.count == 0 { g_asset_manager.pending_hot_reload = false; hot_reload_all_packs(); } @@ -427,29 +501,8 @@ asset_manager_tick :: () { } } - if !g_asset_manager.is_fetching && g_asset_manager.fetch_queue.count > 0 { - if g_asset_manager.frames_waited < 3 { - g_asset_manager.frames_waited += 1; - } else { - g_asset_manager.frames_waited = 0; - req := g_asset_manager.fetch_queue[0]; - // Ordered remove from front to preserve queue priority. - for i: 0..g_asset_manager.fetch_queue.count - 2 { - g_asset_manager.fetch_queue[i] = g_asset_manager.fetch_queue[i + 1]; - } - g_asset_manager.fetch_queue.count -= 1; - - g_asset_manager.current_fetch = req; - g_asset_manager.is_fetching = true; - - buf_ptr, buf_size := buffer_for_fetch(req.type); - sfetch_send(*(sfetch_request_t.{ - path = to_c_string(req.path), - callback = fetch_callback, - buffer = .{ ptr = buf_ptr, size = buf_size }, - })); - } - } + dispatch_channel(*g_asset_manager.main_queue, CHANNEL_MAIN); + dispatch_channel(*g_asset_manager.rdm_queue, CHANNEL_RDM); sfetch_dowork(); } @@ -461,7 +514,7 @@ load_world :: (name: string) { req.world_name = sprint("%", name); req.path = sprint("%/worlds/%/world.json", GAME_RESOURCES_DIR, name); req.should_block = true; - array_add(*g_asset_manager.fetch_queue, req); + array_add(*g_asset_manager.main_queue, req); } load_pack :: (name: string, shouldBlock: bool = true, shouldBlockEngine: bool = false) { @@ -471,7 +524,7 @@ load_pack :: (name: string, shouldBlock: bool = true, shouldBlockEngine: bool = req.path = sprint("%/%.pack", PACK_DIR, name); req.should_block = shouldBlock; req.should_block_engine = shouldBlockEngine; - array_add(*g_asset_manager.fetch_queue, req); + array_add(*g_asset_manager.main_queue, req); } // Asset management: diff --git a/src/assets/loaders.jai b/src/assets/loaders.jai index 04c03f1..9743e0d 100644 --- a/src/assets/loaders.jai +++ b/src/assets/loaders.jai @@ -75,8 +75,9 @@ load_wav_from_memory :: (data: []u8) -> Audio_Data { audio_samples : []s16; audio_samples.data = cast(*s16)samples.data; audio_samples.count = samples.count / 2; - for sample: audio_samples { - array_add(*audio.data, cast(float)sample / 32768.0); + array_resize(*audio.data, audio_samples.count); + for i: 0..audio_samples.count - 1 { + audio.data[i] = cast(float)audio_samples[i] / 32768.0; } audio.channels = format.nChannels; audio.sample_rate = format.nSamplesPerSec; diff --git a/src/assets/rdm_loader.jai b/src/assets/rdm_loader.jai index f6f265a..066adad 100644 --- a/src/assets/rdm_loader.jai +++ b/src/assets/rdm_loader.jai @@ -8,16 +8,17 @@ rdm_loader_enqueue_world :: (world: *World) { for *chunk: world.chunks { if chunk.rdm_valid then continue; - // Skip if this chunk is already in-flight. - if g_asset_manager.is_fetching { - cf := g_asset_manager.current_fetch; + // Skip if this chunk is already in-flight on the RDM channel. + af_rdm := *g_asset_manager.active[CHANNEL_RDM]; + if af_rdm.occupied { + cf := af_rdm.req; if (cf.type == .RDM_ATLAS || cf.type == .RDM_LOOKUP) && cf.world_name == world.name && cf.chunk_key == chunk.coord then continue; } // Skip if already queued (either as atlas or its follow-up lookup). already_queued := false; - for g_asset_manager.fetch_queue { + for g_asset_manager.rdm_queue { if (it.type == .RDM_ATLAS || it.type == .RDM_LOOKUP) && it.world_name == world.name && it.chunk_key == chunk.coord { already_queued = true; @@ -35,34 +36,28 @@ rdm_loader_enqueue_world :: (world: *World) { } else { req.path = rdm_chunk_filename(world.name, chunk.coord, "rdm_atlas"); } - array_add(*g_asset_manager.fetch_queue, req); + array_add(*g_asset_manager.rdm_queue, req); } } // Remove all pending RDM fetches from the queue and invalidate any in-flight // RDM fetch so its callback discards the result. rdm_loader_cancel_all :: () { - // Filter out RDM items, destroying any atlas images stored inside them. - new_count := 0; - for i: 0..g_asset_manager.fetch_queue.count - 1 { - item := g_asset_manager.fetch_queue[i]; - if item.type == .RDM_ATLAS || item.type == .RDM_LOOKUP { - if item.rdm_pending_atlas.id != 0 then sg_destroy_image(item.rdm_pending_atlas); - continue; - } - g_asset_manager.fetch_queue[new_count] = item; - new_count += 1; + // Destroy any atlas images stored in queued RDM_LOOKUP requests, then drain. + for i: 0..g_asset_manager.rdm_queue.count - 1 { + item := g_asset_manager.rdm_queue[i]; + if item.rdm_pending_atlas.id != 0 then sg_destroy_image(item.rdm_pending_atlas); } - g_asset_manager.fetch_queue.count = new_count; + array_reset(*g_asset_manager.rdm_queue); - // Blank the world name on the in-flight request so its callback discards. - if g_asset_manager.is_fetching && - (g_asset_manager.current_fetch.type == .RDM_ATLAS || - g_asset_manager.current_fetch.type == .RDM_LOOKUP) { - if g_asset_manager.current_fetch.rdm_pending_atlas.id != 0 { - sg_destroy_image(g_asset_manager.current_fetch.rdm_pending_atlas); - g_asset_manager.current_fetch.rdm_pending_atlas = .{}; + // Blank the world name on the in-flight RDM request so its callback discards. + af := *g_asset_manager.active[CHANNEL_RDM]; + if af.occupied && + (af.req.type == .RDM_ATLAS || af.req.type == .RDM_LOOKUP) { + if af.req.rdm_pending_atlas.id != 0 { + sg_destroy_image(af.req.rdm_pending_atlas); + af.req.rdm_pending_atlas = .{}; } - g_asset_manager.current_fetch.world_name = ""; + af.req.world_name = ""; } } diff --git a/src/editor/editor.jai b/src/editor/editor.jai index 6fc31e3..a217644 100644 --- a/src/editor/editor.jai +++ b/src/editor/editor.jai @@ -1,5 +1,6 @@ #if OS != .WASM { #load "iprof.jai"; + #load "trile_thumbnails.jai"; #load "picker.jai"; #load "trile_editor.jai"; #load "level_editor.jai"; @@ -26,7 +27,10 @@ in_editor_view : bool = false; init_editor :: () { #if !FLAG_RELEASE_BUILD { - #if OS != .WASM {init_profiler();} + #if OS != .WASM { + init_profiler(); + init_trile_thumbnails(); + } init_console(); } init_keybinds(); diff --git a/src/editor/level_editor.jai b/src/editor/level_editor.jai index 0f6ce29..5ee6843 100644 --- a/src/editor/level_editor.jai +++ b/src/editor/level_editor.jai @@ -56,7 +56,8 @@ inspector_y : s32; inspector_z : s32; inspector_emitter_def : s32 = -1; inspector_rdm_roughness : int = 0; -inspector_note_input : string = ""; +inspector_note_deactivate : bool; +inspector_note_activate_next : bool; editor_billboards_visible : bool = true; @@ -505,6 +506,16 @@ remove_trile :: (x: s32, y: s32, z: s32) { +editor_edit_y :: () -> float { + y := cast(float)editY; + curworld := get_current_world(); + if curworld.valid { + ph := effective_plane_height(*curworld.world.conf); + if ph > y && ph < y + 1.0 then y = ph + 0.01; + } + return y; +} + tick_level_editor :: () { #if FLAG_TACOMA_ENABLED { rdm_bake_tick(); } tick_level_editor_camera(); @@ -532,7 +543,7 @@ tick_level_editor :: () { } ray := get_mouse_ray(*get_level_editor_camera()); - hit, point := ray_plane_collision_point(ray, xx editY, 20); + hit, point := ray_plane_collision_point(ray, editor_edit_y(), 20); show_trile_preview = false; if hit { @@ -623,16 +634,7 @@ tick_level_editor :: () { inspector_x = cast(s32)px; inspector_y = cast(s32)py; inspector_z = cast(s32)pz; - inspector_note_input = ""; - curworld2 := get_current_world(); - if curworld2.valid { - for note: curworld2.world.notes { - if note.position.x == inspector_x && note.position.y == inspector_y && note.position.z == inspector_z { - inspector_note_input = note.text; - break; - } - } - } + inspector_note_deactivate = true; } } } @@ -773,10 +775,27 @@ draw_inspector_panel :: (r: *GR.Rect, theme: *GR.Overall_Theme) { trile_name, orientation, has_trile := get_trile_at(world, inspector_x, inspector_y, inspector_z); if has_trile { GR.label(r.*, tprint("Trile: % orient: %", trile_name, orientation), *t_label_left(theme)); + r.y += r.h; + #if FLAG_TACOMA_ENABLED { + r.h = ui_h(3, 2); + GR.label(r.*, "-- Bake Config --", *t_label_left(theme)); + r.y += r.h; + r.h = ui_h(4, 0); + size_ov, qual_ov := get_rdm_instance_override(world, inspector_x, inspector_y, inspector_z); + GR.label(r.*, tprint("Size override (0=default): %", size_ov), *t_label_left(theme)); + r.y += r.h; + GR.slider(r.*, *size_ov, 0, 512, 1, *theme.slider_theme); + r.y += r.h; + GR.label(r.*, tprint("Samples override (0=global): %", qual_ov), *t_label_left(theme)); + r.y += r.h; + GR.slider(r.*, *qual_ov, 0, 10000, 10, *theme.slider_theme); + r.y += r.h; + set_rdm_instance_override(world, inspector_x, inspector_y, inspector_z, size_ov, qual_ov); + } } else { GR.label(r.*, "Trile: (empty)", *t_label_left(theme)); + r.y += r.h; } - r.y += r.h; r.y += r.h * 0.5; GR.label(r.*, "-- Emitter --", *t_label_left(theme)); @@ -788,6 +807,18 @@ draw_inspector_panel :: (r: *GR.Rect, theme: *GR.Overall_Theme) { GR.label(r.*, tprint("Def: %", inst.definition_name), *t_label_left(theme)); r.y += r.h; r.h = ui_h(4, 0); + GR.label(r.*, tprint("Offset X: %", formatFloat(inst.offset.x, trailing_width=2)), *t_label_left(theme)); + r.y += r.h; + GR.slider(r.*, *inst.offset.x, -0.5, 0.5, 0.05, *theme.slider_theme); + r.y += r.h; + GR.label(r.*, tprint("Offset Y: %", formatFloat(inst.offset.y, trailing_width=2)), *t_label_left(theme)); + r.y += r.h; + GR.slider(r.*, *inst.offset.y, -0.5, 0.5, 0.05, *theme.slider_theme); + r.y += r.h; + GR.label(r.*, tprint("Offset Z: %", formatFloat(inst.offset.z, trailing_width=2)), *t_label_left(theme)); + r.y += r.h; + GR.slider(r.*, *inst.offset.z, -0.5, 0.5, 0.05, *theme.slider_theme); + r.y += r.h; if GR.button(r.*, "Remove Emitter", *theme.button_theme, 300) { array_ordered_remove_by_index(*world.emitter_instances, emitter_idx); } @@ -823,33 +854,32 @@ draw_inspector_panel :: (r: *GR.Rect, theme: *GR.Overall_Theme) { r.y += r.h; note_idx, has_note := find_note_at(world, inspector_x, inspector_y, inspector_z); + note_input_action : GR.Text_Input_Action; + if inspector_note_activate_next { + note_input_action = .ACTIVATE; + inspector_note_activate_next = false; + } else if inspector_note_deactivate { + note_input_action = .DEACTIVATE; + inspector_note_deactivate = false; + } if has_note { note := *world.notes[note_idx]; r.h = ui_h(4, 0); - a, new_text, _ := GR.text_input(r.*, inspector_note_input, *theme.text_input_theme, 500); - if a & .ENTERED { - note.text = copy_string(new_text); - inspector_note_input = note.text; - } + a, new_text, _ := GR.text_input(r.*, note.text, *theme.text_input_theme, 500, input_action = note_input_action); + if (a & .TEXT_MODIFIED) || (a & .ENTERED) note.text = copy_string(new_text); r.y += r.h; if GR.button(r.*, "Remove Note", *theme.button_theme, 302) { array_ordered_remove_by_index(*world.notes, note_idx); - inspector_note_input = ""; } r.y += r.h; } else { r.h = ui_h(4, 0); - a, new_text, _ := GR.text_input(r.*, inspector_note_input, *theme.text_input_theme, 501); - if a & .ENTERED { - inspector_note_input = copy_string(new_text); - } - r.y += r.h; if GR.button(r.*, "Add Note", *theme.button_theme, 303) { note : Editor_Note; note.position = .{inspector_x, inspector_y, inspector_z}; - note.text = copy_string(ifx inspector_note_input.count > 0 then inspector_note_input else "Note"); + note.text = ""; array_add(*world.notes, note); - inspector_note_input = note.text; + inspector_note_activate_next = true; } r.y += r.h; } @@ -996,6 +1026,7 @@ draw_level_editor :: () { create_level_editor_preview_tasks(); } add_editor_billboards(); + debug_grid(floor(cameraCenter.x), editor_edit_y(), floor(cameraCenter.y), 20, .{0.3, 0.3, 0.35, 0.7}); } draw_level_editor_ui :: (theme: *GR.Overall_Theme) { diff --git a/src/editor/picker.jai b/src/editor/picker.jai index 0994369..20613ab 100644 --- a/src/editor/picker.jai +++ b/src/editor/picker.jai @@ -5,7 +5,114 @@ Picker :: enum { WORLD; } -current_picker : Picker = .TRILE; +current_picker : Picker = .TRILE; +trile_search_text : string; +trile_picker_scroll : float; + +draw_trile_picker :: (r_in: GR.Rect, theme: *GR.Overall_Theme) { + r := r_in; + + row_h := ui_h(4, 4); + clear_w := ui_w(3, 3); + + search_r := r; + search_r.h = row_h; + search_r.w = r.w - clear_w; + _, __, text_state := GR.text_input(search_r, trile_search_text, *theme.text_input_theme, 128); + + clear_r := r; + clear_r.h = row_h; + clear_r.x = r.x + r.w - clear_w; + clear_r.w = clear_w; + if GR.button(clear_r, "x", *theme.button_theme) { + if trile_search_text.data free(trile_search_text); + trile_search_text = .{}; + if text_state GR.set_input(text_state, ""); + } + + r.y += row_h; + r.h -= row_h; + + current_search := ifx text_state then text_state.text else trile_search_text; + + tpt := get_trile_table_ptr(); + + filtered : [..] string; + filtered.allocator = temp; + for v : tpt { + if !current_search.count || contains(v.name, current_search) { + array_add(*filtered, v.name); + } + } + + padding : float = 3.0; + name_h := ui_h(1, 2); + cols : int = 3; + + btn_theme := theme.button_theme; + btn_theme.surface_color = .{0, 0, 0, 0}; + btn_theme.surface_color_over = .{1, 1, 1, 0.15}; + btn_theme.surface_color_down = .{1, 1, 1, 0.25}; + btn_theme.surface_color_flash = .{1, 1, 1, 0.15}; + btn_theme.frame_color = .{0, 0, 0, 0}; + btn_theme.frame_color_over = .{0, 0, 0, 0}; + btn_theme.frame_color_down = .{0, 0, 0, 0}; + btn_theme.frame_color_flash = .{0, 0, 0, 0}; + + atlas_valid := g_thumbnail_atlas.tex.id != INVALID_ID; + + region, inside := GR.begin_scrollable_region(r, *theme.scrollable_region_theme); + + cell_w := inside.w / cast(float)cols; + thumb_h := cell_w - padding * 2.0; + cell_h := thumb_h + name_h + padding; + + row_count := (filtered.count + cols - 1) / cols; + total_h := cast(float)row_count * cell_h; + + for idx : 0..filtered.count-1 { + name := filtered[idx]; + col := idx % cols; + row := idx / cols; + + cx := inside.x + cast(float)col * cell_w; + cy := inside.y - trile_picker_scroll + cast(float)row * cell_h; + + thumb_r := GR.Rect.{cx + padding, cy, cell_w - padding * 2.0, thumb_h}; + label_r := GR.Rect.{cx + padding, cy + thumb_h, cell_w - padding * 2.0, name_h}; + cell_r := GR.Rect.{cx, cy, cell_w, cell_h}; + + if atlas_valid { + uv_min, uv_max, uv_found := get_thumbnail_uv(name); + if uv_found { + set_shader_for_images(*g_thumbnail_atlas); + immediate_quad( + .{thumb_r.x, thumb_r.y}, + .{thumb_r.x + thumb_r.w, thumb_r.y}, + .{thumb_r.x + thumb_r.w, thumb_r.y + thumb_r.h}, + .{thumb_r.x, thumb_r.y + thumb_r.h}, + .{1, 1, 1, 1}, + .{uv_min.x, uv_min.y}, .{uv_max.x, uv_min.y}, + .{uv_max.x, uv_max.y}, .{uv_min.x, uv_max.y} + ); + set_shader_for_color(); + } + } + + is_selected := editor_current_trile != null && editor_current_trile.name == name; + if is_selected { + draw_rectangle(thumb_r, .{0.3, 0.5, 1.0, 0.35}); + } + + GR.label(label_r, name, *t_label_center(theme)); + + if GR.button(cell_r, "", *btn_theme, cast(s32)idx) { + editor_current_trile = get_trile(name); + } + } + + GR.end_scrollable_region(region, inside.x + inside.w, inside.y - trile_picker_scroll + total_h, *trile_picker_scroll); +} #scope_export @@ -29,8 +136,6 @@ draw_picker :: (theme: *GR.Overall_Theme) { r.y += tab_r.h; r.h -= tab_r.h; - // @ToDo: Add a scrollable zone here so that - // our triles or worlds can overflow. if current_picker == { case .TRILE; draw_trile_picker(r, theme); diff --git a/src/editor/tacoma.jai b/src/editor/tacoma.jai index 1b46063..f8a0528 100644 --- a/src/editor/tacoma.jai +++ b/src/editor/tacoma.jai @@ -41,11 +41,17 @@ ctx : *Tacoma.Tacoma_Context; // --- Chunk RDM bake queue --- +// Default RDM sizes per roughness level (0=sharpest, 7=diffuse). +// w = 2*size, h = 3*size. Tacoma accepts size directly. +g_rdm_default_sizes : [8]s32 = .[256, 128, 64, 32, 16, 8, 4, 2]; + // A single RDM render job: one world_trile at one roughness level. RDM_Bake_Job :: struct { world_trile_index: s32; roughness: s32; world_pos: Vector3; + size_override: s32; // 0 = use g_rdm_default_sizes[roughness] + quality_override: s32; // 0 = use rdm_bake.quality } RDM_Bake_State :: struct { @@ -57,10 +63,19 @@ RDM_Bake_State :: struct { rdm_bake : RDM_Bake_State; -// Predicted pixel dimensions of a single RDM entry at a given roughness level. -// roughness 0 → 512×768, roughness 1 → 256×384, ..., roughness 7 → 4×6. +rdm_job_size :: (job: RDM_Bake_Job) -> s32 { + if job.size_override > 0 then return job.size_override; + return g_rdm_default_sizes[job.roughness]; +} + +rdm_job_quality :: (job: RDM_Bake_Job) -> s32 { + if job.quality_override > 0 then return job.quality_override; + return rdm_bake.quality; +} + +// Pixel dimensions of a single RDM entry. w = 2*size, h = 3*size. rdm_entry_predicted_size :: (roughness: s32) -> (w: s32, h: s32) { - size : s32 = cast(s32)(1 << (8 - roughness)); + size := g_rdm_default_sizes[roughness]; return 2 * size, 3 * size; } @@ -70,7 +85,9 @@ rdm_simulate_pack_height :: (jobs: []RDM_Bake_Job, canvas_w: s32) -> s32 { cy : s32 = 0; rh : s32 = 0; for job: jobs { - w, h := rdm_entry_predicted_size(job.roughness); + s := rdm_job_size(job); + w := 2 * s; + h := 3 * s; if cx + w > canvas_w { cy += rh; cx = 0; rh = 0; } cx += w; if h > rh rh = h; @@ -87,8 +104,8 @@ rdm_calc_chunk_atlas_size :: (jobs: []RDM_Bake_Job) -> (s32, s32) { // Estimate canvas width from sqrt(total pixel area). total_area : s64 = 0; for job: jobs { - w, h := rdm_entry_predicted_size(job.roughness); - total_area += cast(s64) w * cast(s64) h; + s := rdm_job_size(job); + total_area += cast(s64)(2 * s) * cast(s64)(3 * s); } target_w : s32 = 16; sqrt_area := cast(s32) sqrt(cast(float) total_area) + 1; @@ -147,7 +164,8 @@ rdm_bake_start :: (world: World, quality: s32, include_water: bool, chunk_keys: for group: chunk.groups { success, idx := table_find(*trile_name_to_index, group.trile_name); if !success { - trile := get_trile(group.trile_name); + trile, trile_ok := get_trile(group.trile_name); + if !trile_ok continue; ttrile : Tacoma.Trile_Data; for x: 0..15 { for y: 0..15 { @@ -186,10 +204,16 @@ rdm_bake_start :: (world: World, quality: s32, include_water: bool, chunk_keys: array_add(*world_trile_roughnesses, roughness_mask); if should_bake { - // Emit one job per roughness level present. + size_ov, qual_ov := get_rdm_instance_override(*world, wx, wy, wz); for r: 0..7 { if roughness_mask & cast(u8)(1 << r) { - array_add(*rdm_bake.jobs, .{world_trile_index = world_trile_idx, roughness = cast(s32) r, world_pos = wpos}); + array_add(*rdm_bake.jobs, .{ + world_trile_index = world_trile_idx, + roughness = cast(s32) r, + world_pos = wpos, + size_override = size_ov, + quality_override = qual_ov, + }); } } } @@ -306,8 +330,10 @@ rdm_bake_tick :: () { job := rdm_bake.jobs[rdm_bake.current_job]; - w, h : s32; - ptr := Tacoma.tacoma_render_rdm(ctx, job.world_trile_index, job.roughness, rdm_bake.quality, *w, *h); + size := rdm_job_size(job); + w := 2 * size; + h := 3 * size; + ptr := Tacoma.tacoma_render_rdm(ctx, job.world_trile_index, job.roughness, rdm_job_quality(job), size); // Find this job's per-chunk bake state. chunk_key := world_to_chunk_coord(cast(s32) job.world_pos.x, cast(s32) job.world_pos.y, cast(s32) job.world_pos.z); @@ -589,9 +615,9 @@ gen_reference :: (w: s32, h: s32, eye: Vector3, target: Vector3, quality: s32, i gen_rdm :: (quality: s32, include_water: bool, world: World) { tacoma_start(world, include_water); - w, h : s32; - ptr := Tacoma.tacoma_render_rdm(ctx, 0, 0, quality, *w, *h); - tacoma_handle_result(ptr, w, h); + size := g_rdm_default_sizes[0]; + ptr := Tacoma.tacoma_render_rdm(ctx, 0, 0, quality, size); + tacoma_handle_result(ptr, 2 * size, 3 * size); tacoma_stop(); } diff --git a/src/editor/trile_editor.jai b/src/editor/trile_editor.jai index fb749a8..9ae2ad3 100644 --- a/src/editor/trile_editor.jai +++ b/src/editor/trile_editor.jai @@ -12,6 +12,7 @@ emittance : u8 = 0; hovered_trixel_x : int = -1; hovered_trixel_y : int = -1; hovered_trixel_z : int = -1; +hovered_trixel_normal : Vector3; TRILE_ROTATION_SPEED :: 2.0; @@ -39,7 +40,22 @@ current_tool : Trile_Editor_Tool = .PAINT; current_mode : Trile_Editor_Tool_Mode = .AREA; colorMuls : [16][16][16]Vector3; - +tiling_preview_active : bool; +tiling_axis : s32 = 0; // 0=+X, 1=+Z, 2=-X, 3=-Z +tiling_orientation : s32 = 0; // 0-23 = face(0..5)*4 + twist(0..3) +tiling_neighbor_trile_name : string; +tiling_neighbor_trile_input : string; + +UNDO_MAX :: 32; +undo_trixels : [UNDO_MAX][16][16][16] Trixel; +undo_count : int = 0; +undo_head : int = 0; +redo_trixels : [UNDO_MAX][16][16][16] Trixel; +redo_count : int = 0; +redo_head : int = 0; + +meta_name_input : string; + #scope_export ntrile :: (name: string) { @@ -71,6 +87,35 @@ ltrile :: (name: string) { #scope_file +push_undo :: () { + if !editor_current_trile return; + undo_trixels[undo_head] = editor_current_trile.trixels; + undo_head = (undo_head + 1) % UNDO_MAX; + undo_count = min(undo_count + 1, UNDO_MAX); + redo_count = 0; + redo_head = 0; +} + +do_undo :: () { + if undo_count == 0 || !editor_current_trile return; + redo_trixels[redo_head] = editor_current_trile.trixels; + redo_head = (redo_head + 1) % UNDO_MAX; + redo_count = min(redo_count + 1, UNDO_MAX); + undo_head = (undo_head - 1 + UNDO_MAX) % UNDO_MAX; + undo_count -= 1; + editor_current_trile.trixels = undo_trixels[undo_head]; +} + +do_redo :: () { + if redo_count == 0 || !editor_current_trile return; + undo_trixels[undo_head] = editor_current_trile.trixels; + undo_head = (undo_head + 1) % UNDO_MAX; + undo_count = min(undo_count + 1, UNDO_MAX); + redo_head = (redo_head - 1 + UNDO_MAX) % UNDO_MAX; + redo_count -= 1; + editor_current_trile.trixels = redo_trixels[redo_head]; +} + apply_tool_to_trixel :: (x: s64, y: s64, z: s64) { if current_tool == .PAINT { editor_current_trile.trixels[x][y][z].material.color = current_color; @@ -94,14 +139,25 @@ area_active : bool; handle_tool_click :: () { if hovered_trixel_x < 0 && hovered_trixel_y < 0 && hovered_trixel_z < 0 then return; if current_mode == .POINT { - apply_tool_to_trixel(hovered_trixel_x, hovered_trixel_y, hovered_trixel_z); + push_undo(); + if current_tool == .ADD { + nx := hovered_trixel_x + cast(int) hovered_trixel_normal.x; + ny := hovered_trixel_y + cast(int) hovered_trixel_normal.y; + nz := hovered_trixel_z + cast(int) hovered_trixel_normal.z; + if nx >= 0 && nx < 16 && ny >= 0 && ny < 16 && nz >= 0 && nz < 16 { + apply_tool_to_trixel(nx, ny, nz); + } + } else { + apply_tool_to_trixel(hovered_trixel_x, hovered_trixel_y, hovered_trixel_z); + } } if current_mode == .BRUSH { + push_undo(); is_in_radius :: (point : Vector3, radius: float) -> bool { center : Vector3 = .{xx hovered_trixel_x, xx hovered_trixel_y, xx hovered_trixel_z}; return length(point - center) <= radius; } - + for x: 0..15 { for y: 0..15 { for z: 0..15 { @@ -114,6 +170,7 @@ handle_tool_click :: () { } if current_mode == .AREA { if area_active { + push_undo(); // Apply tool to all trixels in the area. for x: min(area_start_x, hovered_trixel_x)..max(hovered_trixel_x, area_start_x) { for y: min(area_start_y, hovered_trixel_y)..max(hovered_trixel_y, area_start_y) { @@ -166,7 +223,7 @@ tick_trile_editor :: () { if input_button_states[Key_Code.MOUSE_BUTTON_LEFT] & .START { handle_tool_click(); } - + mindist : float = 999999; hovered_trixel_x = -1; hovered_trixel_y = -1; @@ -189,6 +246,7 @@ tick_trile_editor :: () { hovered_trixel_x = x; hovered_trixel_y = y; hovered_trixel_z = z; + hovered_trixel_normal = collision.normal; } } } @@ -197,11 +255,20 @@ tick_trile_editor :: () { for x: 0..15 { for y: 0..15 { for z: 0..15 { - if x == hovered_trixel_x && y == hovered_trixel_y && z == hovered_trixel_z { - colorMuls[x][y][z] = .{0.6, 0.0, 0.0}; - } else { - colorMuls[x][y][z] = .{1.0, 1.0, 1.0}; + highlighted := false; + if hovered_trixel_x >= 0 { + if current_mode == .BRUSH { + center : Vector3 = .{xx hovered_trixel_x, xx hovered_trixel_y, xx hovered_trixel_z}; + highlighted = length(Vector3.{xx x, xx y, xx z} - center) <= xx brush_radius; + } else if current_mode == .AREA && area_active { + highlighted = x >= min(area_start_x, hovered_trixel_x) && x <= max(area_start_x, hovered_trixel_x) + && y >= min(area_start_y, hovered_trixel_y) && y <= max(area_start_y, hovered_trixel_y) + && z >= min(area_start_z, hovered_trixel_z) && z <= max(area_start_z, hovered_trixel_z); + } else { + highlighted = x == hovered_trixel_x && y == hovered_trixel_y && z == hovered_trixel_z; + } } + colorMuls[x][y][z] = ifx highlighted then Vector3.{0.6, 0.0, 0.0} else .{1.0, 1.0, 1.0}; } } } @@ -224,7 +291,8 @@ tick_trile_editor :: () { trile_editor_shortcuts(); tilt = clamp(tilt, -(PI/2.0) + 0.01, PI/2.0 - 0.01); - zoom = clamp(zoom + mouse_delta_z * -0.2, 1.0, 3.0); + max_zoom := ifx tiling_preview_active then 5.0 else 3.0; + zoom = clamp(zoom + mouse_delta_z * -0.2, 1.0, max_zoom); cam := get_trile_editor_camera(); ray := get_mouse_ray(*cam); @@ -240,10 +308,11 @@ get_trile_editor_camera :: () -> Camera { qtilt : Quaternion = .{cos(tilt/2.0),sin(tilt/2.0), 0, 0}; rotate(*cameraDir, qrotation * qtilt); - camera.position = .{0.5, 0.5, 0.5}; + target := ifx tiling_preview_active then get_tiling_camera_target() else Vector3.{0.5, 0.5, 0.5}; + camera.position = target; camera.position += cameraDir * zoom; - camera.target = .{0.5, 0.5, 0.5}; + camera.target = target; return camera; } @@ -274,6 +343,7 @@ draw_tool_tab :: (theme: *GR.Overall_Theme, area: GR.Rect) { if keybind_button(r, "Save and gen", .SAVE, *theme.button_theme) { set_trile_gfx(editor_current_trile.name, generate_trile_gfx_matias(editor_current_trile)); striles(); + update_trile_thumbnail(editor_current_trile.name); }; } @@ -392,11 +462,86 @@ draw_material_tab :: (theme: *GR.Overall_Theme, area: GR.Rect) { } +TILING_AXIS_NAMES :: string.["+ X", "+ Z", "- X", "- Z", "+ Y", "- Y"]; + +get_tiling_world_offset :: () -> Vector3 { + if tiling_axis == 0 return .{ 1, 0, 0}; + if tiling_axis == 1 return .{ 0, 0, 1}; + if tiling_axis == 2 return .{-1, 0, 0}; + if tiling_axis == 3 return .{ 0, 0, -1}; + if tiling_axis == 4 return .{ 0, 1, 0}; + return .{ 0, -1, 0}; +} + +get_tiling_camera_target :: () -> Vector3 { + off := get_tiling_world_offset(); + return Vector3.{0.5, 0.5, 0.5} + off * 0.5; +} + +// Build rotation matrices matching the same GLSL convention used in shader_trile.glsl. +// In Jai row-major passed as GLSL column-major: GLSL out[i] = sum_j M_jai[j][i]*v[j]. +tiling_rot_x :: (a: float) -> Matrix4 { + c := cos(a); s := sin(a); + m : Matrix4; + m._11 = 1; + m._22 = c; m._23 = s; + m._32 = -s; m._33 = c; + m._44 = 1; + return m; +} +tiling_rot_y :: (a: float) -> Matrix4 { + c := cos(a); s := sin(a); + m : Matrix4; + m._11 = c; m._13 = s; + m._22 = 1; + m._31 = -s; m._33 = c; + m._44 = 1; + return m; +} +tiling_rot_z :: (a: float) -> Matrix4 { + c := cos(a); s := sin(a); + m : Matrix4; + m._11 = c; m._21 = s; + m._12 = -s; m._22 = c; + m._33 = 1; + m._44 = 1; + return m; +} +// Matches get_orientation_matrix(ori) from shader_trile.glsl. +// Jai A*B applies A_eff first in GLSL, so twist*base = twist applied second = same as GLSL base*rot_y(twist). +make_orientation_matrix :: (ori: s32) -> Matrix4 { + face := ori / 4; + twist := ori % 4; + twist_mat : Matrix4; + identity(*twist_mat); + if twist > 0 twist_mat = tiling_rot_y(cast(float)twist * PI / 2.0); + base_mat : Matrix4; + if face == 0 { identity(*base_mat); } + else if face == 1 { base_mat = tiling_rot_x(PI); } + else if face == 2 { base_mat = tiling_rot_z(-PI * 0.5); } + else if face == 3 { base_mat = tiling_rot_z( PI * 0.5); } + else if face == 4 { base_mat = tiling_rot_x( PI * 0.5); } + else { base_mat = tiling_rot_x(-PI * 0.5); } + return twist_mat * base_mat; +} + +get_tiling_neighbor_trile :: () -> *Trile { + if tiling_neighbor_trile_name.count > 0 { + t := get_trile(tiling_neighbor_trile_name); + if t return t; + } + return editor_current_trile; +} + draw_trile_editor :: () { create_set_cam_rendering_task(get_trile_editor_camera(), 0.0); w := New(World,, temp); create_sky_rendering_task(*w.conf); create_trixel_rendering_task(editor_current_trile, *colorMuls); + if tiling_preview_active { + neighbor_trile := get_tiling_neighbor_trile(); + create_trixel_rendering_task(neighbor_trile, null, world_offset = get_tiling_world_offset(), brightness = 0.75, tile_rotation = make_orientation_matrix(tiling_orientation), is_secondary = true); + } } trile_editor_shortcuts :: () { @@ -411,7 +556,54 @@ trile_editor_shortcuts :: () { if is_action_start(Editor_Action.SAVE) { set_trile_gfx(editor_current_trile.name, generate_trile_gfx_matias(editor_current_trile)); striles(); + update_trile_thumbnail(editor_current_trile.name); } + if is_action_start(Editor_Action.TRIXEL_VIEW_TILE) then tiling_preview_active = !tiling_preview_active; + if is_action_start(Editor_Action.TRIXEL_UNDO) then do_undo(); + if is_action_start(Editor_Action.TRIXEL_REDO) then do_redo(); +} + +draw_meta_tab :: (theme: *GR.Overall_Theme, area: GR.Rect) { + if !editor_current_trile return; + r := area; + row_h := ui_h(4, 0); + + r.h = row_h; + GR.label(r, "Name", *t_label_left(theme)); + r.y += row_h; + + r.h = row_h; + a, new_text, text_state := GR.text_input(r, meta_name_input, *theme.text_input_theme, 128); + if a & .ENTERED meta_name_input = copy_string(new_text); + current_name := ifx text_state then text_state.text else meta_name_input; + r.y += row_h; + + r.h = row_h; + if GR.button(r, "Rename", *theme.button_theme) && current_name.count > 0 { + old := copy_string(editor_current_trile.name,, temp); + rename_trile(old, current_name); + meta_name_input = copy_string(current_name); + if editor_current_trile update_trile_thumbnail(editor_current_trile.name); + striles(); + } + r.y += row_h * 2; + + r.h = row_h; + if GR.button(r, "Delete trile", *theme.button_theme) { + name_copy := copy_string(editor_current_trile.name,, temp); + delete_trile(name_copy); + undo_count = 0; undo_head = 0; redo_count = 0; redo_head = 0; + striles(); + return; + } + r.y += row_h * 2; + + r.h = row_h; + half := r.w / 2.0; + ur := r; ur.w = half; + rr := r; rr.x = r.x + half; rr.w = r.w - half; + if GR.button(ur, tprint("Undo (%)", undo_count), *theme.button_theme) do_undo(); + if GR.button(rr, tprint("Redo (%)", redo_count), *theme.button_theme) do_redo(); } draw_trile_editor_ui :: (theme: *GR.Overall_Theme) { @@ -426,7 +618,10 @@ draw_trile_editor_ui :: (theme: *GR.Overall_Theme) { tab_r.x += tab_r.w; if keybind_button(tab_r, "Material", .TRIXEL_TAB_MATERIAL, *t_button_tab(theme, current_tab == .MATERIAL)) then current_tab = .MATERIAL; tab_r.x += tab_r.w; - if keybind_button(tab_r, "Meta", .TRIXEL_TAB_INFO, *t_button_tab(theme, current_tab == .METADATA)) then current_tab = .METADATA; + if keybind_button(tab_r, "Meta", .TRIXEL_TAB_INFO, *t_button_tab(theme, current_tab == .METADATA)) { + current_tab = .METADATA; + if editor_current_trile meta_name_input = copy_string(editor_current_trile.name); + } r.y += tab_r.h; @@ -435,6 +630,8 @@ draw_trile_editor_ui :: (theme: *GR.Overall_Theme) { draw_material_tab(theme, r); case .TOOLSET; draw_tool_tab(theme, r); + case .METADATA; + draw_meta_tab(theme, r); } draw_picker(theme); @@ -442,7 +639,7 @@ draw_trile_editor_ui :: (theme: *GR.Overall_Theme) { // View mode buttons — bottom center of the 3D viewport. btn_w := 11.0 * vw; btn_h := cast(float) ui_h(4, 0); - bar_w := btn_w * 4.0; + bar_w := btn_w * 5.0; bar_x := 100.0 * vw / 2.0 - bar_w / 2.0; bar_y := 100.0 * vh - btn_h - 1.5 * vh; @@ -459,4 +656,42 @@ draw_trile_editor_ui :: (theme: *GR.Overall_Theme) { if keybind_button(r2, "Albedo", .TRIXEL_VIEW_ALBEDO, *t_button_selectable(theme, trixel_view_mode == 2)) then trixel_view_mode = 2; r2.x += btn_w; if keybind_button(r2, "Mixed", .TRIXEL_VIEW_MIXED, *t_button_selectable(theme, trixel_view_mode == 3)) then trixel_view_mode = 3; + r2.x += btn_w; + if keybind_button(r2, "Tile", .TRIXEL_VIEW_TILE, *t_button_selectable(theme, tiling_preview_active)) { + tiling_preview_active = !tiling_preview_active; + } + + if tiling_preview_active { + ctrl_w := bar_w / 3.0; + ctrl_y := bar_y - btn_h - 0.5 * vh; + ctrl_r : GR.Rect; + ctrl_r.y = ctrl_y; ctrl_r.h = btn_h; + + tiling_bar_r : GR.Rect; + tiling_bar_r.x = bar_x; tiling_bar_r.y = ctrl_y; tiling_bar_r.w = bar_w; tiling_bar_r.h = btn_h; + ui_add_mouse_occluder(tiling_bar_r); + + // Axis cycle button (Q) + ctrl_r.x = bar_x; ctrl_r.w = ctrl_w; + axis_label := tprint("Axis: %", TILING_AXIS_NAMES[tiling_axis]); + if keybind_button(ctrl_r, axis_label, .TRIXEL_TILING_AXIS, *theme.button_theme) { + tiling_axis = (tiling_axis + 1) % 6; + } + + // Orientation cycle button (R) — cycles through all 24 face*twist orientations + ctrl_r.x = bar_x + ctrl_w; ctrl_r.w = ctrl_w; + ori_label := tprint("F% T%", tiling_orientation / 4, tiling_orientation % 4); + if keybind_button(ctrl_r, ori_label, .TRIXEL_TILING_ROTATE, *theme.button_theme) { + tiling_orientation = (tiling_orientation + 1) % 24; + } + + // Neighbor trile text input + ctrl_r.x = bar_x + ctrl_w * 2.0; ctrl_r.w = ctrl_w; + a, new_text, _ := GR.text_input(ctrl_r, tiling_neighbor_trile_input, *theme.text_input_theme, 600); + if a & .TEXT_MODIFIED tiling_neighbor_trile_input = copy_string(new_text); + if a & .ENTERED { + tiling_neighbor_trile_input = copy_string(new_text); + tiling_neighbor_trile_name = tiling_neighbor_trile_input; + } + } } diff --git a/src/editor/trile_thumbnails.jai b/src/editor/trile_thumbnails.jai new file mode 100644 index 0000000..d1586cc --- /dev/null +++ b/src/editor/trile_thumbnails.jai @@ -0,0 +1,178 @@ +#scope_file + +THUMB_SIZE :: 64; +ATLAS_SIZE :: 2048; +ATLAS_COLS :: ATLAS_SIZE / THUMB_SIZE; + +g_thumbnail_atlas_buf : [ATLAS_SIZE * ATLAS_SIZE * 4] u8; +g_thumbnail_slot_map : Table(string, int); +g_thumbnail_slot_count : int; + +blit_slot :: (thumb: *[THUMB_SIZE * THUMB_SIZE * 4] u8, slot: int) { + col := slot % ATLAS_COLS; + row := slot / ATLAS_COLS; + start_x := col * THUMB_SIZE; + start_y := row * THUMB_SIZE; + for py : 0..THUMB_SIZE-1 { + for px : 0..THUMB_SIZE-1 { + ai := ((start_y + py) * ATLAS_SIZE + (start_x + px)) * 4; + ti := (py * THUMB_SIZE + px) * 4; + g_thumbnail_atlas_buf[ai] = (thumb.*)[ti]; + g_thumbnail_atlas_buf[ai+1] = (thumb.*)[ti+1]; + g_thumbnail_atlas_buf[ai+2] = (thumb.*)[ti+2]; + g_thumbnail_atlas_buf[ai+3] = (thumb.*)[ti+3]; + } + } +} + +render_thumbnail :: (trile: *Trile, out: *[THUMB_SIZE * THUMB_SIZE * 4] u8) { + ray_dir := normalize(Vector3.{-1.0, -1.2, -1.0}); + right_vec := normalize(Vector3.{1.0, 0.0, -1.0}); + up_vec := -normalize(cross(ray_dir, right_vec)); + center := Vector3.{8.0, 8.0, 8.0}; + scale : float = 10.5; + light_dir := normalize(Vector3.{-1.0, -2.0, -1.0}); + + for py : 0..THUMB_SIZE-1 { + for px : 0..THUMB_SIZE-1 { + u : float = (cast(float)px + 0.5) / cast(float)THUMB_SIZE * 2.0 - 1.0; + v : float = -((cast(float)py + 0.5) / cast(float)THUMB_SIZE * 2.0 - 1.0); + + o := center + right_vec * (u * scale) + up_vec * (v * scale) - ray_dir * 30.0; + + ix := cast(int) floor(o.x); + iy := cast(int) floor(o.y); + iz := cast(int) floor(o.z); + + sx := ifx ray_dir.x >= 0.0 then 1 else -1; + sy := ifx ray_dir.y >= 0.0 then 1 else -1; + sz := ifx ray_dir.z >= 0.0 then 1 else -1; + + tdx := abs(1.0 / ray_dir.x); + tdy := abs(1.0 / ray_dir.y); + tdz := abs(1.0 / ray_dir.z); + + nx := ifx ray_dir.x >= 0.0 then cast(float)(ix + 1) else cast(float)ix; + ny := ifx ray_dir.y >= 0.0 then cast(float)(iy + 1) else cast(float)iy; + nz := ifx ray_dir.z >= 0.0 then cast(float)(iz + 1) else cast(float)iz; + tmx := (nx - o.x) / ray_dir.x; + tmy := (ny - o.y) / ray_dir.y; + tmz := (nz - o.z) / ray_dir.z; + + fn : Vector3 = .{0.0, 1.0, 0.0}; + hit : bool; + hc : Vector3; + + for 0..199 { + if ix >= 0 && ix < 16 && iy >= 0 && iy < 16 && iz >= 0 && iz < 16 { + if !trile.trixels[ix][iy][iz].empty { + hit = true; + hc = trile.trixels[ix][iy][iz].material.color; + break; + } + } + if tmx < tmy && tmx < tmz { + fn = .{cast(float)-sx, 0.0, 0.0}; + ix += sx; + tmx += tdx; + } else if tmy < tmz { + fn = .{0.0, cast(float)-sy, 0.0}; + iy += sy; + tmy += tdy; + } else { + fn = .{0.0, 0.0, cast(float)-sz}; + iz += sz; + tmz += tdz; + } + } + + pidx := (py * THUMB_SIZE + px) * 4; + if hit { + diff := max(0.0, dot(fn, -light_dir)); + brite := 0.3 + diff * 0.7; + (out.*)[pidx] = xx clamp(cast(int)(hc.x * brite * 255.0 + 0.5), 0, 255); + (out.*)[pidx+1] = xx clamp(cast(int)(hc.y * brite * 255.0 + 0.5), 0, 255); + (out.*)[pidx+2] = xx clamp(cast(int)(hc.z * brite * 255.0 + 0.5), 0, 255); + (out.*)[pidx+3] = 255; + } else { + val : u8 = ifx ((px / 8 + py / 8) % 2 == 0) then cast(u8)55 else cast(u8)38; + (out.*)[pidx] = val; + (out.*)[pidx+1] = val; + (out.*)[pidx+2] = val; + (out.*)[pidx+3] = 255; + } + } + } +} + +upload_atlas :: () { + imgdata : sg_image_data; + imgdata.subimage[0][0] = .{ g_thumbnail_atlas_buf.data, cast(u64)(ATLAS_SIZE * ATLAS_SIZE * 4) }; + sg_update_image(g_thumbnail_atlas.tex, *imgdata); +} + +#scope_export + +g_thumbnail_atlas : Ui_Texture; + +get_thumbnail_uv :: (name: string) -> (uv_min: Vector2, uv_max: Vector2, found: bool) { + ptr := table_find_pointer(*g_thumbnail_slot_map, name); + if !ptr return .{}, .{}, false; + slot := ptr.*; + col := slot % ATLAS_COLS; + row := slot / ATLAS_COLS; + inv := 1.0 / cast(float)ATLAS_SIZE; + u0 := cast(float)(col * THUMB_SIZE) * inv; + v0 := cast(float)(row * THUMB_SIZE) * inv; + u1 := cast(float)((col + 1) * THUMB_SIZE) * inv; + v1 := cast(float)((row + 1) * THUMB_SIZE) * inv; + return .{u0, v0}, .{u1, v1}, true; +} + +update_trile_thumbnail :: (name: string) { + trile := get_trile(name); + if !trile return; + + ptr := table_find_pointer(*g_thumbnail_slot_map, name); + slot : int; + if ptr { + slot = ptr.*; + } else { + slot = g_thumbnail_slot_count; + table_set(*g_thumbnail_slot_map, name, slot); + g_thumbnail_slot_count += 1; + } + + thumb : [THUMB_SIZE * THUMB_SIZE * 4] u8; + render_thumbnail(trile, *thumb); + blit_slot(*thumb, slot); + + if g_thumbnail_atlas.tex.id != INVALID_ID { + upload_atlas(); + } +} + +init_trile_thumbnails :: () { + tpt := get_trile_table_ptr(); + for v : tpt { + trile := get_trile(v.name); + if !trile continue; + + slot := g_thumbnail_slot_count; + table_set(*g_thumbnail_slot_map, v.name, slot); + g_thumbnail_slot_count += 1; + + thumb : [THUMB_SIZE * THUMB_SIZE * 4] u8; + render_thumbnail(trile, *thumb); + blit_slot(*thumb, slot); + } + + desc := sg_image_desc.{ + width = xx ATLAS_SIZE, + height = xx ATLAS_SIZE, + pixel_format = .RGBA8, + usage = .DYNAMIC, + }; + g_thumbnail_atlas.tex = sg_make_image(*desc); + upload_atlas(); +} diff --git a/src/input/keybinds.jai b/src/input/keybinds.jai index d73d6d7..2061043 100644 --- a/src/input/keybinds.jai +++ b/src/input/keybinds.jai @@ -43,6 +43,13 @@ Editor_Action :: enum { TRIXEL_VIEW_NORMALS; TRIXEL_VIEW_ALBEDO; TRIXEL_VIEW_MIXED; + TRIXEL_VIEW_TILE; + // Trile editor — tiling controls + TRIXEL_TILING_AXIS; + TRIXEL_TILING_ROTATE; + // Trile editor — undo/redo + TRIXEL_UNDO; + TRIXEL_REDO; } #scope_file; @@ -66,6 +73,7 @@ check_action :: (action: $T, status: Key_Current_State) -> bool { offset = EDITOR_ACTION_COUNT; } if console_open_ignore_input then return false; + if ui_keyboard_captured then return false; combo := keys[cast(s32)action + offset]; ctrl_down := cast(bool)(input_button_states[Key_Code.CTRL] & .DOWN); shift_down := cast(bool)(input_button_states[Key_Code.SHIFT] & .DOWN); @@ -183,4 +191,9 @@ set_default_bindings :: () { set(.TRIXEL_VIEW_NORMALS, cast(Key_Code) #char "6"); set(.TRIXEL_VIEW_ALBEDO, cast(Key_Code) #char "7"); set(.TRIXEL_VIEW_MIXED, cast(Key_Code) #char "8"); + set(.TRIXEL_VIEW_TILE, cast(Key_Code) #char "9"); + set(.TRIXEL_TILING_AXIS, cast(Key_Code) #char "Q"); + set(.TRIXEL_TILING_ROTATE, cast(Key_Code) #char "R"); + set(.TRIXEL_UNDO, cast(Key_Code) #char "Z", ctrl = true); + set(.TRIXEL_REDO, cast(Key_Code) #char "Y", ctrl = true); } diff --git a/src/main.jai b/src/main.jai index e134a61..5ff76d3 100644 --- a/src/main.jai +++ b/src/main.jai @@ -97,7 +97,10 @@ init :: () { logger = .{ func = slog_func }, })); sfetch_setup(*(sfetch_desc_t.{ - logger = .{ func = slog_func }, + max_requests = 64, + num_channels = 2, + num_lanes = 1, + logger = .{ func = slog_func }, })); asset_manager_init(); #if OS != .WASM { Thread.init(*g_mixer.mutex); } diff --git a/src/pack_hotreload.jai b/src/pack_hotreload.jai index b93986c..ac5a53b 100644 --- a/src/pack_hotreload.jai +++ b/src/pack_hotreload.jai @@ -51,7 +51,7 @@ hot_reload_all_packs :: () { array_add(*pack_names, sprint("%", pack.name)); } - array_reset(*g_asset_manager.fetch_queue); + array_reset(*g_asset_manager.main_queue); g_mixer.paused = true; g_asset_manager.hot_reload_unpause_pending = true; diff --git a/src/particles/particles.jai b/src/particles/particles.jai index 29785b2..7408654 100644 --- a/src/particles/particles.jai +++ b/src/particles/particles.jai @@ -26,6 +26,7 @@ Particle_Emitter_Instance :: struct { definition : *Particle_Emitter_Config; definition_name : string; position : Vector3; + offset : Vector3; active : bool = true; spawn_accumulator : float; } @@ -75,7 +76,7 @@ tick_world_emitters :: (dt: float) { inst.spawn_accumulator += def.emission_rate * dt; while inst.spawn_accumulator >= 1.0 { inst.spawn_accumulator -= 1.0; - spawn_one_particle(inst.position, def); + spawn_one_particle(inst.position + inst.offset, def); } } } @@ -144,7 +145,7 @@ add_particle_render_tasks :: () { anim := batch.anim; frame_count := anim.frames.count; if frame_count == 0 then continue; - frame := cast(s32)(t * cast(float)(frame_count - 1)); + frame := cast(s32)(t * cast(float)frame_count); if frame < 0 then frame = 0; if frame >= frame_count then frame = cast(s32)(frame_count - 1); f := anim.frames[frame]; diff --git a/src/rendering/backend.jai b/src/rendering/backend.jai index 7060549..adeba7e 100644 --- a/src/rendering/backend.jai +++ b/src/rendering/backend.jai @@ -63,6 +63,7 @@ Render_Command_Update_Trixels :: struct { c.type = .UPDATE_TRIXELS; trile : *Trile; colMultipliers : *[16][16][16]Vector3; + is_secondary : bool; } Render_Command_Draw_Billboard :: struct { @@ -76,8 +77,12 @@ Render_Command_Draw_Billboard :: struct { } Render_Command_Draw_Trixels :: struct { - #as using c : Render_Command; - c.type = .DRAW_TRIXELS; + #as using c : Render_Command; + c.type = .DRAW_TRIXELS; + world_offset : Vector3; + brightness : float = 1.0; + tile_rotation : Matrix4 = .{_11=1, _22=1, _33=1, _44=1}; + is_secondary : bool; } Render_Command_Draw_Particles :: struct { diff --git a/src/rendering/backend_sokol.jai b/src/rendering/backend_sokol.jai index f8cbf26..a452a38 100644 --- a/src/rendering/backend_sokol.jai +++ b/src/rendering/backend_sokol.jai @@ -1,7 +1,9 @@ camera: Camera; -trixel_count : s32 = 0; -trixel_view_mode : s32 = 0; +trixel_count : s32 = 0; +trixel_secondary_count : s32 = 0; +trixel_secondary_vbuf : sg_buffer; +trixel_view_mode : s32 = 0; bypass_postprocess : bool = false; bypass_shadows : bool = false; bypass_reflections : bool = false; @@ -39,7 +41,8 @@ backend_handle_command :: (cmd: *Render_Command) { trixel_update_command := cast(*Render_Command_Update_Trixels)cmd; backend_update_trixels(trixel_update_command); case .DRAW_TRIXELS; - backend_draw_trixels(); + draw_trixels_cmd := cast(*Render_Command_Draw_Trixels)cmd; + backend_draw_trixels(draw_trixels_cmd.*); case .SET_LIGHT; set_light_command := cast(*Render_Command_Set_Light)cmd; current_world_config = set_light_command.worldConfig; @@ -58,57 +61,66 @@ backend_handle_command :: (cmd: *Render_Command) { backend_update_trixels :: (cmd: Render_Command_Update_Trixels) { if cmd.trile == null then return; - + trixels : [4096]Position_Color; - trixel_count = 0; + count : s32 = 0; for x: 0..15 { for y: 0..15 { for z: 0..15 { if cmd.trile.trixels[x][y][z].empty then continue; - trixels[trixel_count].pos.x = x * (1.0 / 16.0) + TRIXEL_SIZE_HALF; - trixels[trixel_count].pos.y = y * (1.0 / 16.0) + TRIXEL_SIZE_HALF; - trixels[trixel_count].pos.z = z * (1.0 / 16.0) + TRIXEL_SIZE_HALF; - cm := (cmd.colMultipliers.*)[x][y][z]; - // Encode highlight state in inst.w: non-identity colorMul means highlighted. - // 0=normal, 1=hovered, (future: 2=selected, 3=in-brush). - trixels[trixel_count].pos.w = ifx (cm.x == 1.0 && cm.y == 1.0 && cm.z == 1.0) then 0.0 else 1.0; + trixels[count].pos.x = x * (1.0 / 16.0) + TRIXEL_SIZE_HALF; + trixels[count].pos.y = y * (1.0 / 16.0) + TRIXEL_SIZE_HALF; + trixels[count].pos.z = z * (1.0 / 16.0) + TRIXEL_SIZE_HALF; + cm : Vector3 = .{1, 1, 1}; + if cmd.colMultipliers cm = (cmd.colMultipliers.*)[x][y][z]; + trixels[count].pos.w = ifx (cm.x == 1.0 && cm.y == 1.0 && cm.z == 1.0) then 0.0 else 1.0; trixel_color := cmd.trile.trixels[x][y][z].material.color * cm; - - trixels[trixel_count].col = .{trixel_color.x, trixel_color.y, trixel_color.z, material_encode_to_float(cmd.trile.trixels[x][y][z].material)}; - trixel_count += 1; + trixels[count].col = .{trixel_color.x, trixel_color.y, trixel_color.z, material_encode_to_float(cmd.trile.trixels[x][y][z].material)}; + count += 1; } } } - sg_update_buffer(gPipelines.trixel.bind.vertex_buffers[2], *(sg_range.{ - ptr = trixels.data, - size = size_of(type_of(trixels)), - })); + range := sg_range.{ ptr = trixels.data, size = size_of(type_of(trixels)) }; + if cmd.is_secondary { + trixel_secondary_count = count; + sg_update_buffer(trixel_secondary_vbuf, *range); + } else { + trixel_count = count; + sg_update_buffer(gPipelines.trixel.bind.vertex_buffers[2], *range); + } } -backend_draw_trixels :: () { - if trixel_count == 0 then return; +backend_draw_trixels :: (cmd: Render_Command_Draw_Trixels) { + count := ifx cmd.is_secondary then trixel_secondary_count else trixel_count; + if count == 0 then return; mvp := create_viewproj(*camera); vs_params : Vs_Params; - vs_params.mvp = mvp.floats; - vs_params.camera = camera.position.component; + vs_params.mvp = mvp.floats; + vs_params.camera = camera.position.component; + vs_params.world_offset = cmd.world_offset.component; + vs_params.tile_rotation = cmd.tile_rotation.floats; world_conf : Trixel_World_Config; wc : *World_Config = *(World_Config.{}); world_config_to_shader_type(wc, *world_conf); - + fs_params : Trixel_Fs_Params; - fs_params.view_mode = trixel_view_mode; + fs_params.view_mode = trixel_view_mode; + fs_params.brightness = cmd.brightness; + + bind := gPipelines.trixel.bind; + if cmd.is_secondary bind.vertex_buffers[2] = trixel_secondary_vbuf; sg_apply_pipeline(gPipelines.trixel.pipeline); - sg_apply_bindings(*gPipelines.trixel.bind); + sg_apply_bindings(*bind); sg_apply_uniforms(UB_vs_params, *(sg_range.{ ptr = *vs_params, size = size_of(type_of(vs_params)) })); sg_apply_uniforms(UB_trixel_world_config, *(sg_range.{ptr = *world_conf, size = size_of(type_of(world_conf))})); sg_apply_uniforms(UB_trixel_fs_params, *(sg_range.{ ptr = *fs_params, size = size_of(type_of(fs_params)) })); - sg_draw(0, 36, trixel_count); + sg_draw(0, 36, count); } backend_add_trile_positions :: (positions : []Vector4) { @@ -234,7 +246,8 @@ backend_draw_trile_positions_main :: (trile : string, amount : s32, worldConf: * fs_params.rdm_spec_scale = lc.rdm_spec_scale; fs_params.ambient_color = lc.ambient_color.component; fs_params.is_preview = preview_mode; - fs_params.rdm_tint = lc.rdm_tint.component; + fs_params.rdm_tint = lc.rdm_tint.component; + fs_params.rdm_diff_saturation = worldConf.rdmDiffSaturation; sg_apply_bindings(*bindings); sg_apply_uniforms(UB_trile_fs_params, *(sg_range.{ ptr = *fs_params, size = size_of(type_of(fs_params)) })); @@ -271,7 +284,7 @@ backend_draw_ground :: (wc: *World_Config) { plane_data.screen_h = h; plane_data.cameraPosition = camera.position.component; plane_data.reflectionDistortion = 0.1; - plane_data.shininess = 0.2; + plane_data.shininess = wc.waterShininess; world_config_to_shader_type(wc, *world_conf); @@ -484,6 +497,7 @@ backend_process_command_buckets :: () { for render_command_buckets.main { backend_handle_command(it); } + debug_draw_flush_gpu(); sg_end_pass(); end_frame_profiling_group("Main pass"); diff --git a/src/rendering/debug_draw.jai b/src/rendering/debug_draw.jai new file mode 100644 index 0000000..6b2767a --- /dev/null +++ b/src/rendering/debug_draw.jai @@ -0,0 +1,144 @@ +DEBUG_LINE_MAX :: 65536; + +g_debug_line_verts : [DEBUG_LINE_MAX * 2 * 7]float; +g_debug_line_count : int; + +debug_draw_enabled : bool = !FLAG_RELEASE_BUILD; +debug_draw_grid : bool = true; +debug_draw_vectors : bool = true; +debug_draw_colliders : bool = true; + +toggle_debug_draw :: () { + debug_draw_enabled = !debug_draw_enabled; +} @Command + +toggle_debug_grid :: () { + debug_draw_grid = !debug_draw_grid; +} @Command + +toggle_debug_vectors :: () { + debug_draw_vectors = !debug_draw_vectors; +} @Command + +toggle_debug_colliders :: () { + debug_draw_colliders = !debug_draw_colliders; +} @Command + +debug_line :: (a: Vector3, b: Vector3, col: Vector4) { + if !debug_draw_enabled then return; + if g_debug_line_count >= DEBUG_LINE_MAX then return; + base := g_debug_line_count * 14; + g_debug_line_verts[base + 0] = a.x; + g_debug_line_verts[base + 1] = a.y; + g_debug_line_verts[base + 2] = a.z; + g_debug_line_verts[base + 3] = col.x; + g_debug_line_verts[base + 4] = col.y; + g_debug_line_verts[base + 5] = col.z; + g_debug_line_verts[base + 6] = col.w; + g_debug_line_verts[base + 7] = b.x; + g_debug_line_verts[base + 8] = b.y; + g_debug_line_verts[base + 9] = b.z; + g_debug_line_verts[base + 10] = col.x; + g_debug_line_verts[base + 11] = col.y; + g_debug_line_verts[base + 12] = col.z; + g_debug_line_verts[base + 13] = col.w; + g_debug_line_count += 1; +} + +debug_vector :: (origin: Vector3, vec: Vector3, col: Vector4) { + if !debug_draw_enabled || !debug_draw_vectors then return; + tip := origin + vec; + shaft := normalize(vec); + debug_line(origin, tip, col); + arrowhead_len : float : 0.15; + arrowhead_back := tip - shaft * arrowhead_len; + perp : Vector3; + if abs(shaft.x) < 0.9 { + perp = normalize(cross(shaft, .{1, 0, 0})); + } else { + perp = normalize(cross(shaft, .{0, 1, 0})); + } + wing := perp * (arrowhead_len * 0.5); + perp2 := cross(shaft, perp); + wing2 := perp2 * (arrowhead_len * 0.5); + debug_line(arrowhead_back + wing, tip, col); + debug_line(arrowhead_back - wing, tip, col); + debug_line(arrowhead_back + wing2, tip, col); + debug_line(arrowhead_back - wing2, tip, col); +} + +debug_grid :: (cx: float, y: float, cz: float, half_extent: int, col: Vector4) { + if !debug_draw_enabled || !debug_draw_grid then return; + for i: -half_extent..half_extent { + fi := cast(float)i; + fe := cast(float)half_extent; + debug_line(.{cx + fi, y, cz - fe}, .{cx + fi, y, cz + fe}, col); + debug_line(.{cx - fe, y, cz + fi}, .{cx + fe, y, cz + fi}, col); + } +} + +debug_box_2d :: (rect: Collision_Rect, y: float, col: Vector4) { + if !debug_draw_enabled || !debug_draw_colliders then return; + hw := rect.width * 0.5; + hh := rect.height * 0.5; + cx := rect.position.x; + cz := rect.position.y; + p0 := Vector3.{cx - hw, y, cz - hh}; + p1 := Vector3.{cx + hw, y, cz - hh}; + p2 := Vector3.{cx + hw, y, cz + hh}; + p3 := Vector3.{cx - hw, y, cz + hh}; + debug_line(p0, p1, col); + debug_line(p1, p2, col); + debug_line(p2, p3, col); + debug_line(p3, p0, col); +} + +debug_circle_2d :: (circle: Collision_Circle, y: float, col: Vector4, segments: int = 16) { + if !debug_draw_enabled || !debug_draw_colliders then return; + TAU :: cast(float)(2.0 * 3.14159265358979); + cx := circle.position.x; + cz := circle.position.y; + r := circle.radius; + for i: 0..segments-1 { + t0 := (cast(float)i / cast(float)segments) * TAU; + t1 := (cast(float)(i + 1) / cast(float)segments) * TAU; + a := Vector3.{cx + cos(t0) * r, y, cz + sin(t0) * r}; + b := Vector3.{cx + cos(t1) * r, y, cz + sin(t1) * r}; + debug_line(a, b, col); + } +} + +debug_aabb_3d :: (mn: Vector3, mx: Vector3, col: Vector4) { + if !debug_draw_enabled || !debug_draw_colliders then return; + debug_line(.{mn.x, mn.y, mn.z}, .{mx.x, mn.y, mn.z}, col); + debug_line(.{mn.x, mn.y, mn.z}, .{mn.x, mn.y, mx.z}, col); + debug_line(.{mx.x, mn.y, mn.z}, .{mx.x, mn.y, mx.z}, col); + debug_line(.{mn.x, mn.y, mx.z}, .{mx.x, mn.y, mx.z}, col); + debug_line(.{mn.x, mx.y, mn.z}, .{mx.x, mx.y, mn.z}, col); + debug_line(.{mn.x, mx.y, mn.z}, .{mn.x, mx.y, mx.z}, col); + debug_line(.{mx.x, mx.y, mn.z}, .{mx.x, mx.y, mx.z}, col); + debug_line(.{mn.x, mx.y, mx.z}, .{mx.x, mx.y, mx.z}, col); + debug_line(.{mn.x, mn.y, mn.z}, .{mn.x, mx.y, mn.z}, col); + debug_line(.{mx.x, mn.y, mn.z}, .{mx.x, mx.y, mn.z}, col); + debug_line(.{mn.x, mn.y, mx.z}, .{mn.x, mx.y, mx.z}, col); + debug_line(.{mx.x, mn.y, mx.z}, .{mx.x, mx.y, mx.z}, col); +} + +debug_draw_flush_gpu :: () { + if g_debug_line_count == 0 then return; + sg_update_buffer( + gPipelines.debugline.bind.vertex_buffers[0], + *(sg_range.{ + ptr = g_debug_line_verts.data, + size = cast(u64)(g_debug_line_count * 14 * size_of(float)), + }) + ); + mvp := create_viewproj(*camera); + params : Debugline_Vs_Params; + params.mvp = mvp.floats; + sg_apply_pipeline(gPipelines.debugline.pipeline); + sg_apply_bindings(*gPipelines.debugline.bind); + sg_apply_uniforms(UB_debugline_vs_params, *(sg_range.{ ptr = *params, size = size_of(Debugline_Vs_Params) })); + sg_draw(0, xx (g_debug_line_count * 2), 1); + g_debug_line_count = 0; +} diff --git a/src/rendering/helpers.jai b/src/rendering/helpers.jai index 26566cc..d50a213 100644 --- a/src/rendering/helpers.jai +++ b/src/rendering/helpers.jai @@ -129,10 +129,11 @@ create_set_light_rendering_task :: (conf: *World_Config) { add_rendering_task(lighttask); } -create_trixel_rendering_task :: (trile: *Trile, muls: *[16][16][16]Vector3) { - trixeltask := Rendering_Task_Trixels.{type = .TRIXELS, trile = trile, colMultipliers = muls}; +TRIXEL_IDENTITY : Matrix4 : .{_11=1, _22=1, _33=1, _44=1}; + +create_trixel_rendering_task :: (trile: *Trile, muls: *[16][16][16]Vector3, world_offset: Vector3 = .{}, brightness: float = 1.0, tile_rotation: Matrix4 = TRIXEL_IDENTITY, is_secondary: bool = false) { + trixeltask := Rendering_Task_Trixels.{type = .TRIXELS, trile = trile, colMultipliers = muls, world_offset = world_offset, brightness = brightness, tile_rotation = tile_rotation, is_secondary = is_secondary}; add_rendering_task(trixeltask); - } create_ground_rendering_task :: (world: *World) { diff --git a/src/rendering/meshgen.jai b/src/rendering/meshgen.jai index 5b9b97e..939d1bc 100644 --- a/src/rendering/meshgen.jai +++ b/src/rendering/meshgen.jai @@ -398,7 +398,8 @@ Pool :: #import "Pool"; meshgenpool : Pool.Pool; generate_trile_gfx_matias :: (trileptr : *Trile) -> Trile_GFX { - if !meshgenpool.block_allocator.proc then Pool.set_allocators(*meshgenpool); // @ToDo: Only do this if we haven't yet done it. + // @ToDo: Only do this if we haven't yet done it. + if !meshgenpool.block_allocator.proc then Pool.set_allocators(*meshgenpool); old_alloc := context.allocator; new_context := context; diff --git a/src/rendering/pipelines.jai b/src/rendering/pipelines.jai index 2d6d23b..eed2380 100644 --- a/src/rendering/pipelines.jai +++ b/src/rendering/pipelines.jai @@ -77,6 +77,8 @@ gPipelines : struct { particle_alpha : Pipeline_Binding; ssao: Pipeline_Binding; + + debugline : Pipeline_Binding; } create_final_image :: () { @@ -155,7 +157,8 @@ create_pipelines :: () { create_billboard_pipeline(); create_gbuffer_billboard_pipeline(); create_particle_pipeline(); - + create_debugline_pipeline(); + create_shadowmap_image(); create_final_image(); create_ssao_images(); @@ -320,6 +323,9 @@ create_trixel_pipeline :: () { gPipelines.trixel.bind.vertex_buffers[0] = sg_make_buffer(*vbuffer); gPipelines.trixel.bind.vertex_buffers[1] = sg_make_buffer(*nbuffer); gPipelines.trixel.bind.vertex_buffers[2] = sg_make_buffer(*instance_buffer); + + secondary_instance_buffer := sg_buffer_desc.{ usage = .STREAM, size = 4096 * size_of(Position_Color)}; + trixel_secondary_vbuf = sg_make_buffer(*secondary_instance_buffer); } create_gbuffer_pipeline :: () { @@ -1272,3 +1278,32 @@ create_particle_pipeline :: () { setup_bind(*gPipelines.particle_additive.bind, idx_buf, vtx_buf, inst1, inst2, inst3, smp); setup_bind(*gPipelines.particle_alpha.bind, idx_buf, vtx_buf, inst1, inst2, inst3, smp); } + +create_debugline_pipeline :: () { + buf_desc := sg_buffer_desc.{ + size = DEBUG_LINE_MAX * 2 * 7 * size_of(float), + usage = .DYNAMIC, + label = "debug_line_verts", + }; + gPipelines.debugline.bind.vertex_buffers[0] = sg_make_buffer(*buf_desc); + + pipeline : sg_pipeline_desc; + shader_desc := debugline_shader_desc(sg_query_backend()); + pipeline.shader = sg_make_shader(*shader_desc); + pipeline.primitive_type = .LINES; + pipeline.layout.buffers[0].stride = 28; + pipeline.layout.attrs[ATTR_debugline_a_pos] = .{ format = .FLOAT3, buffer_index = 0, offset = 0 }; + pipeline.layout.attrs[ATTR_debugline_a_col] = .{ format = .FLOAT4, buffer_index = 0, offset = 12 }; + pipeline.depth = .{ + write_enabled = false, + compare = .LESS_EQUAL, + pixel_format = .DEPTH, + }; + color_state := sg_color_target_state.{ + pixel_format = .RGBA32F, + }; + pipeline.color_count = 1; + pipeline.colors[0] = color_state; + pipeline.label = "debugline_pipeline"; + gPipelines.debugline.pipeline = sg_make_pipeline(*pipeline); +} diff --git a/src/rendering/rendering.jai b/src/rendering/rendering.jai index ed9c734..730d8c5 100644 --- a/src/rendering/rendering.jai +++ b/src/rendering/rendering.jai @@ -13,6 +13,7 @@ #load "tasks.jai"; #load "camera.jai"; #load "arbtri.jai"; +#load "debug_draw.jai"; #load "meshgen.jai"; #load "helpers.jai"; #load "animation.jai"; diff --git a/src/rendering/tasks.jai b/src/rendering/tasks.jai index d77f5e3..b926d0e 100644 --- a/src/rendering/tasks.jai +++ b/src/rendering/tasks.jai @@ -65,6 +65,10 @@ Rendering_Task_Trixels :: struct { t.type = .TRIXELS; colMultipliers : *[16][16][16]Vector3; trile : *Trile; + world_offset : Vector3; + brightness : float = 1.0; + tile_rotation : Matrix4 = .{_11=1, _22=1, _33=1, _44=1}; + is_secondary : bool; } Rendering_Task_Particles :: struct { @@ -108,10 +112,15 @@ tasks_to_commands :: () { case .TRIXELS; trixelsTask := (cast(*Rendering_Task_Trixels)it); updateCommand := New(Render_Command_Update_Trixels,, temp); - updateCommand.trile = trixelsTask.trile; + updateCommand.trile = trixelsTask.trile; updateCommand.colMultipliers = trixelsTask.colMultipliers; + updateCommand.is_secondary = trixelsTask.is_secondary; array_add(*render_command_buckets.setup, updateCommand); drawCommand := New(Render_Command_Draw_Trixels,, temp); + drawCommand.world_offset = trixelsTask.world_offset; + drawCommand.brightness = trixelsTask.brightness; + drawCommand.tile_rotation = trixelsTask.tile_rotation; + drawCommand.is_secondary = trixelsTask.is_secondary; array_add(*render_command_buckets.main, drawCommand); // Currently no need to draw trixels anywhere but the editor so no // need for drawing them in the planar reflection pass... diff --git a/src/shaders/jai/shader_debugline.jai b/src/shaders/jai/shader_debugline.jai new file mode 100644 index 0000000..20126a6 --- /dev/null +++ b/src/shaders/jai/shader_debugline.jai @@ -0,0 +1,316 @@ +/* + #version:1# (machine generated, don't edit!) + + Generated by sokol-shdc (https://github.com/floooh/sokol-tools) + + Cmdline: + sokol-shdc -i shader_debugline.glsl -o ./jai/shader_debugline.jai -l glsl430:glsl300es:metal_macos -f sokol_jai + + Overview: + ========= + Shader program: 'debugline': + Get shader desc: debugline_shader_desc(sg_query_backend()) + Vertex Shader: vs_debugline + Fragment Shader: fs_debugline + Attributes: + ATTR_debugline_a_pos => 0 + ATTR_debugline_a_col => 1 + Bindings: + Uniform block 'debugline_vs_params': + Jai struct: Debugline_Vs_Params + Bind slot: UB_debugline_vs_params => 0 +*/ +ATTR_debugline_a_pos :: 0; +ATTR_debugline_a_col :: 1; +UB_debugline_vs_params :: 0; +Debugline_Vs_Params :: struct { + mvp: [16]float; +}; +/* + #version 430 + + uniform vec4 debugline_vs_params[4]; + layout(location = 0) in vec3 a_pos; + layout(location = 0) out vec4 v_col; + layout(location = 1) in vec4 a_col; + + void main() + { + gl_Position = mat4(debugline_vs_params[0], debugline_vs_params[1], debugline_vs_params[2], debugline_vs_params[3]) * vec4(a_pos, 1.0); + v_col = a_col; + } + +*/ +vs_debugline_source_glsl430 := u8.[ + 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x33,0x30,0x0a,0x0a,0x75,0x6e, + 0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x64,0x65,0x62,0x75,0x67, + 0x6c,0x69,0x6e,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x34, + 0x5d,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69, + 0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20, + 0x61,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f, + 0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20, + 0x76,0x65,0x63,0x34,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f, + 0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29, + 0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x61,0x5f,0x63,0x6f,0x6c,0x3b,0x0a, + 0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d, + 0x20,0x6d,0x61,0x74,0x34,0x28,0x64,0x65,0x62,0x75,0x67,0x6c,0x69,0x6e,0x65,0x5f, + 0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2c,0x20,0x64,0x65, + 0x62,0x75,0x67,0x6c,0x69,0x6e,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d, + 0x73,0x5b,0x31,0x5d,0x2c,0x20,0x64,0x65,0x62,0x75,0x67,0x6c,0x69,0x6e,0x65,0x5f, + 0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x32,0x5d,0x2c,0x20,0x64,0x65, + 0x62,0x75,0x67,0x6c,0x69,0x6e,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d, + 0x73,0x5b,0x33,0x5d,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x61,0x5f,0x70, + 0x6f,0x73,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f, + 0x63,0x6f,0x6c,0x20,0x3d,0x20,0x61,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a, + 0x00, +]; +/* + #version 430 + + layout(location = 0) out vec4 frag_color; + layout(location = 0) in vec4 v_col; + + void main() + { + frag_color = v_col; + } + +*/ +fs_debugline_source_glsl430 := u8.[ + 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x33,0x30,0x0a,0x0a,0x6c,0x61, + 0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20, + 0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67, + 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c, + 0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20, + 0x76,0x65,0x63,0x34,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x0a,0x76,0x6f,0x69, + 0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x5f,0x63,0x6f, + 0x6c,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, +]; +/* + #version 300 es + + uniform vec4 debugline_vs_params[4]; + layout(location = 0) in vec3 a_pos; + out vec4 v_col; + layout(location = 1) in vec4 a_col; + + void main() + { + gl_Position = mat4(debugline_vs_params[0], debugline_vs_params[1], debugline_vs_params[2], debugline_vs_params[3]) * vec4(a_pos, 1.0); + v_col = a_col; + } + +*/ +vs_debugline_source_glsl300es := u8.[ + 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a, + 0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x64,0x65, + 0x62,0x75,0x67,0x6c,0x69,0x6e,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d, + 0x73,0x5b,0x34,0x5d,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63, + 0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65, + 0x63,0x33,0x20,0x61,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76,0x65, + 0x63,0x34,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74, + 0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69, + 0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x61,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x0a,0x76, + 0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x6d, + 0x61,0x74,0x34,0x28,0x64,0x65,0x62,0x75,0x67,0x6c,0x69,0x6e,0x65,0x5f,0x76,0x73, + 0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2c,0x20,0x64,0x65,0x62,0x75, + 0x67,0x6c,0x69,0x6e,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b, + 0x31,0x5d,0x2c,0x20,0x64,0x65,0x62,0x75,0x67,0x6c,0x69,0x6e,0x65,0x5f,0x76,0x73, + 0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x32,0x5d,0x2c,0x20,0x64,0x65,0x62,0x75, + 0x67,0x6c,0x69,0x6e,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b, + 0x33,0x5d,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x61,0x5f,0x70,0x6f,0x73, + 0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x63,0x6f, + 0x6c,0x20,0x3d,0x20,0x61,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, +]; +/* + #version 300 es + precision mediump float; + precision highp int; + + layout(location = 0) out highp vec4 frag_color; + in highp vec4 v_col; + + void main() + { + frag_color = v_col; + } + +*/ +fs_debugline_source_glsl300es := u8.[ + 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a, + 0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x64,0x69,0x75,0x6d, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x3b,0x0a,0x70,0x72,0x65,0x63,0x69,0x73,0x69, + 0x6f,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x69,0x6e,0x74,0x3b,0x0a,0x0a,0x6c, + 0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d, + 0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x69, + 0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x76,0x5f,0x63, + 0x6f,0x6c,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x20,0x3d,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, +]; +/* + #include + #include + + using namespace metal; + + struct debugline_vs_params + { + float4x4 mvp; + }; + + struct main0_out + { + float4 v_col [[user(locn0)]]; + float4 gl_Position [[position]]; + }; + + struct main0_in + { + float3 a_pos [[attribute(0)]]; + float4 a_col [[attribute(1)]]; + }; + + vertex main0_out main0(main0_in in [[stage_in]], constant debugline_vs_params& _19 [[buffer(0)]]) + { + main0_out out = {}; + out.gl_Position = _19.mvp * float4(in.a_pos, 1.0); + out.v_col = in.a_col; + return out; + } + +*/ +vs_debugline_source_metal_macos := u8.[ + 0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f, + 0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65, + 0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a, + 0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20, + 0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x64, + 0x65,0x62,0x75,0x67,0x6c,0x69,0x6e,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61, + 0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78, + 0x34,0x20,0x6d,0x76,0x70,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63, + 0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x5b, + 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,0x5f,0x50,0x6f, + 0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x5b,0x5b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f, + 0x6e,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20, + 0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x61,0x5f,0x70,0x6f,0x73,0x20,0x5b,0x5b,0x61,0x74, + 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x61,0x5f,0x63,0x6f,0x6c,0x20,0x5b, + 0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x31,0x29,0x5d,0x5d,0x3b, + 0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x65,0x72,0x74,0x65,0x78,0x20,0x6d,0x61,0x69,0x6e, + 0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e, + 0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f, + 0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x64, + 0x65,0x62,0x75,0x67,0x6c,0x69,0x6e,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61, + 0x6d,0x73,0x26,0x20,0x5f,0x31,0x39,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72, + 0x28,0x30,0x29,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69, + 0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69, + 0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x5f,0x31,0x39,0x2e,0x6d,0x76,0x70,0x20,0x2a, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x69,0x6e,0x2e,0x61,0x5f,0x70,0x6f,0x73, + 0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e, + 0x76,0x5f,0x63,0x6f,0x6c,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x61,0x5f,0x63,0x6f,0x6c, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74, + 0x3b,0x0a,0x7d,0x0a,0x0a,0x00, +]; +/* + #include + #include + + using namespace metal; + + struct main0_out + { + float4 frag_color [[color(0)]]; + }; + + struct main0_in + { + float4 v_col [[user(locn0)]]; + }; + + fragment main0_out main0(main0_in in [[stage_in]]) + { + main0_out out = {}; + out.frag_color = in.v_col; + return out; + } + +*/ +fs_debugline_source_metal_macos := u8.[ + 0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f, + 0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65, + 0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a, + 0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20, + 0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d, + 0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, + 0x20,0x5b,0x5b,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x7d, + 0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f, + 0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, + 0x76,0x5f,0x63,0x6f,0x6c,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63, + 0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x66,0x72,0x61,0x67,0x6d, + 0x65,0x6e,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61, + 0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20, + 0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x29,0x0a,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75, + 0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e, + 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x69,0x6e,0x2e, + 0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, + 0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, +]; +debugline_shader_desc :: (backend: sg_backend) -> sg_shader_desc { + desc: sg_shader_desc; + desc.label = "debugline_shader"; + if backend == { + case .GLCORE; + desc.vertex_func.source = xx *vs_debugline_source_glsl430; + desc.vertex_func.entry = "main"; + desc.fragment_func.source = xx *fs_debugline_source_glsl430; + desc.fragment_func.entry = "main"; + desc.attrs[0].base_type = .FLOAT; + desc.attrs[0].glsl_name = "a_pos"; + desc.attrs[1].base_type = .FLOAT; + desc.attrs[1].glsl_name = "a_col"; + desc.uniform_blocks[0].stage = .VERTEX; + desc.uniform_blocks[0].layout = .STD140; + desc.uniform_blocks[0].size = 64; + desc.uniform_blocks[0].glsl_uniforms[0].type = .FLOAT4; + desc.uniform_blocks[0].glsl_uniforms[0].array_count = 4; + desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "debugline_vs_params"; + case .GLES3; + desc.vertex_func.source = xx *vs_debugline_source_glsl300es; + desc.vertex_func.entry = "main"; + desc.fragment_func.source = xx *fs_debugline_source_glsl300es; + desc.fragment_func.entry = "main"; + desc.attrs[0].base_type = .FLOAT; + desc.attrs[0].glsl_name = "a_pos"; + desc.attrs[1].base_type = .FLOAT; + desc.attrs[1].glsl_name = "a_col"; + desc.uniform_blocks[0].stage = .VERTEX; + desc.uniform_blocks[0].layout = .STD140; + desc.uniform_blocks[0].size = 64; + desc.uniform_blocks[0].glsl_uniforms[0].type = .FLOAT4; + desc.uniform_blocks[0].glsl_uniforms[0].array_count = 4; + desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "debugline_vs_params"; + case .METAL_MACOS; + desc.vertex_func.source = xx *vs_debugline_source_metal_macos; + desc.vertex_func.entry = "main0"; + desc.fragment_func.source = xx *fs_debugline_source_metal_macos; + desc.fragment_func.entry = "main0"; + desc.attrs[0].base_type = .FLOAT; + desc.attrs[1].base_type = .FLOAT; + desc.uniform_blocks[0].stage = .VERTEX; + desc.uniform_blocks[0].layout = .STD140; + desc.uniform_blocks[0].size = 64; + desc.uniform_blocks[0].msl_buffer_n = 0; + } + return desc; +} diff --git a/src/shaders/jai/shader_plane.jai b/src/shaders/jai/shader_plane.jai index 5909d24..3135dd3 100644 --- a/src/shaders/jai/shader_plane.jai +++ b/src/shaders/jai/shader_plane.jai @@ -250,26 +250,26 @@ vs_plane_source_glsl430 := u8.[ vec3 _274 = normalize(((((texture(normal_map_normalsmp, (pos.xz * 0.4000000059604644775390625) + (_185 * 1.5)).xzy * 2.0) - vec3(1.0)) + ((texture(normal_map_normalsmp, (pos.xz * 0.100000001490116119384765625) + (_185 * 1.7000000476837158203125)).xzy * 2.0) - vec3(1.0))) + ((texture(normal_map_normalsmp, (pos.xz * 1.0) + (_185 * 2.7000000476837158203125)).xzy * 2.0) - vec3(1.0))) + ((texture(normal_map_normalsmp, (pos.xz * 0.0199999995529651641845703125) + (_185 * 0.100000001490116119384765625)).xzy * 2.0) - vec3(1.0))); vec3 _285 = normalize(_279.cameraPosition - pos.xyz); vec3 _290 = normalize(_146.sunPosition); - float param = _285.y; - float _317 = min(1.0, fresnelSchlick(param).x + 0.300000011920928955078125); - vec4 _329 = _279.mvp_shadow * vec4(pos.xyz, 1.0); - vec3 _341 = ((_329.xyz / vec3(_329.w)) * 0.5) + vec3(0.5); - float _346 = _341.z - 0.001000000047497451305389404296875; - vec3 _501 = _341; - _501.z = _346; - float _358 = texture(shadow_plane_shadowsmp, vec3(_501.xy, _346)); - vec2 _398 = gl_FragCoord.xy / vec2(float(_279.screen_w), float(_279.screen_h)); - _398.y = 1.0 - _398.y; + float param = max(0.0, dot(_285, _274)); + float _321 = min(1.0, fresnelSchlick(param).x + 0.449999988079071044921875); + vec4 _338 = _279.mvp_shadow * vec4(floor(pos.xyz * 16.0) * vec3(0.0625), 1.0); + vec3 _350 = ((_338.xyz / vec3(_338.w)) * 0.5) + vec3(0.5); + float _355 = _350.z - 0.001000000047497451305389404296875; + vec3 _512 = _350; + _512.z = _355; + float _367 = texture(shadow_plane_shadowsmp, vec3(_512.xy, _355)); + vec2 _408 = gl_FragCoord.xy / vec2(float(_279.screen_w), float(_279.screen_h)); + _408.y = 1.0 - _408.y; vec3 param_1 = normalize(pos.xyz); vec3 param_2 = _146.sunPosition; - float _451 = smoothstep(750.0, 1000.0, length(pos.xz)); - frag_color = vec4(mix(mix((((_146.waterColor * max(0.0, dot(_274, _290))) * _146.sunLightColor) * _146.sunIntensity) * _358, texture(reftex_refsmp, _398 + (_274.xz * 0.004999999888241291046142578125)).xyz, vec3(_317)) + (((_146.sunLightColor * _146.sunIntensity) * pow(max(0.0, dot(normalize(_290 + _285), _274)), 32.0)) * _358), sky(param_1, param_2) * _146.skyIntensity, vec3(_451)), mix(mix(0.300000011920928955078125, 0.5, _317), 1.0, _451)); + float _462 = smoothstep(750.0, 1000.0, length(pos.xz)); + frag_color = vec4(mix(mix((((_146.waterColor * max(0.0, dot(_274, _290))) * _146.sunLightColor) * _146.sunIntensity) * _367, texture(reftex_refsmp, _408 + (_274.xz * 0.007000000216066837310791015625)).xyz, vec3(_321)) + ((((_146.sunLightColor * _146.sunIntensity) * pow(max(0.0, dot(normalize(_290 + _285), _274)), max(_279.shininess, 1.0))) * _321) * _367), sky(param_1, param_2) * _146.skyIntensity, vec3(_462)), mix(mix(0.300000011920928955078125, 0.5, _321), 1.0, _462)); } else { vec2 param_3 = (pos.xz * 0.0500000007450580596923828125) + vec2(_146.time * 0.00999999977648258209228515625); - float _481 = fbm(param_3); - frag_color = vec4(_146.deepColor * mix(0.800000011920928955078125, 1.2000000476837158203125, _481), 1.0); + float _492 = fbm(param_3); + frag_color = vec4(_146.deepColor * mix(0.800000011920928955078125, 1.2000000476837158203125, _492), 1.0); } } @@ -451,46 +451,49 @@ fs_plane_source_glsl430 := u8.[ 0x30,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31, 0x34,0x36,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x32,0x38,0x35,0x2e,0x79,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x31, - 0x37,0x20,0x3d,0x20,0x6d,0x69,0x6e,0x28,0x31,0x2e,0x30,0x2c,0x20,0x66,0x72,0x65, - 0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x29,0x2e,0x78,0x20,0x2b,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30, - 0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32, - 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34, - 0x20,0x5f,0x33,0x32,0x39,0x20,0x3d,0x20,0x5f,0x32,0x37,0x39,0x2e,0x6d,0x76,0x70, - 0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x70, - 0x6f,0x73,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x33,0x34,0x31,0x20, - 0x3d,0x20,0x28,0x28,0x5f,0x33,0x32,0x39,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20,0x76, - 0x65,0x63,0x33,0x28,0x5f,0x33,0x32,0x39,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30, + 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20, + 0x64,0x6f,0x74,0x28,0x5f,0x32,0x38,0x35,0x2c,0x20,0x5f,0x32,0x37,0x34,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x5f,0x33,0x32,0x31,0x20,0x3d,0x20,0x6d,0x69,0x6e,0x28,0x31,0x2e,0x30,0x2c,0x20, + 0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x29,0x2e,0x78,0x20,0x2b,0x20,0x30,0x2e,0x34,0x34,0x39,0x39, + 0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32, + 0x31,0x38,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x34,0x20,0x5f,0x33,0x33,0x38,0x20,0x3d,0x20,0x5f,0x32,0x37,0x39,0x2e, + 0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x76,0x65,0x63, + 0x34,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x20, + 0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x33,0x35,0x30,0x20, + 0x3d,0x20,0x28,0x28,0x5f,0x33,0x33,0x38,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20,0x76, + 0x65,0x63,0x33,0x28,0x5f,0x33,0x33,0x38,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30, 0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x33,0x34,0x36,0x20,0x3d,0x20,0x5f,0x33,0x34,0x31,0x2e,0x7a,0x20,0x2d,0x20,0x30, + 0x33,0x35,0x35,0x20,0x3d,0x20,0x5f,0x33,0x35,0x30,0x2e,0x7a,0x20,0x2d,0x20,0x30, 0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37, 0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38, 0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x5f,0x35,0x30,0x31,0x20,0x3d,0x20,0x5f,0x33,0x34,0x31,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x35,0x30,0x31,0x2e,0x7a,0x20,0x3d,0x20,0x5f, - 0x33,0x34,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x33,0x35,0x38,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72, + 0x20,0x5f,0x35,0x31,0x32,0x20,0x3d,0x20,0x5f,0x33,0x35,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x35,0x31,0x32,0x2e,0x7a,0x20,0x3d,0x20,0x5f, + 0x33,0x35,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x33,0x36,0x37,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72, 0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x5f,0x70,0x6c,0x61,0x6e,0x65,0x5f,0x73, 0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f, - 0x35,0x30,0x31,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x33,0x34,0x36,0x29,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x33,0x39, + 0x35,0x31,0x32,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x33,0x35,0x35,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x30, 0x38,0x20,0x3d,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64, 0x2e,0x78,0x79,0x20,0x2f,0x20,0x76,0x65,0x63,0x32,0x28,0x66,0x6c,0x6f,0x61,0x74, 0x28,0x5f,0x32,0x37,0x39,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x32,0x37,0x39,0x2e,0x73,0x63,0x72,0x65, 0x65,0x6e,0x5f,0x68,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x33,0x39,0x38,0x2e,0x79,0x20,0x3d,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f, - 0x33,0x39,0x38,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, + 0x5f,0x34,0x30,0x38,0x2e,0x79,0x20,0x3d,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f, + 0x34,0x30,0x38,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x6e,0x6f, 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75, 0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x35,0x31,0x20,0x3d,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x36,0x32,0x20,0x3d,0x20, 0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x37,0x35,0x30,0x2e,0x30, 0x2c,0x20,0x31,0x30,0x30,0x30,0x2e,0x30,0x2c,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68, 0x28,0x70,0x6f,0x73,0x2e,0x78,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, @@ -501,46 +504,48 @@ fs_plane_source_glsl430 := u8.[ 0x32,0x37,0x34,0x2c,0x20,0x5f,0x32,0x39,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f, 0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f, 0x72,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74, - 0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x5f,0x33,0x35,0x38,0x2c,0x20, + 0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x5f,0x33,0x36,0x37,0x2c,0x20, 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x72,0x65,0x66,0x74,0x65,0x78,0x5f,0x72, - 0x65,0x66,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x33,0x39,0x38,0x20,0x2b,0x20,0x28,0x5f, - 0x32,0x37,0x34,0x2e,0x78,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x34,0x39,0x39, - 0x39,0x39,0x39,0x39,0x38,0x38,0x38,0x32,0x34,0x31,0x32,0x39,0x31,0x30,0x34,0x36, - 0x31,0x34,0x32,0x35,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x2e,0x78,0x79,0x7a,0x2c, - 0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x33,0x31,0x37,0x29,0x29,0x20,0x2b,0x20,0x28, - 0x28,0x28,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43, - 0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x49, - 0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28, - 0x6d,0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20,0x64,0x6f,0x74,0x28,0x6e,0x6f,0x72, - 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x39,0x30,0x20,0x2b,0x20,0x5f,0x32, - 0x38,0x35,0x29,0x2c,0x20,0x5f,0x32,0x37,0x34,0x29,0x29,0x2c,0x20,0x33,0x32,0x2e, - 0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x33,0x35,0x38,0x29,0x2c,0x20,0x73,0x6b,0x79, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x6b,0x79,0x49,0x6e,0x74, - 0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x34,0x35, - 0x31,0x29,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x30,0x2e,0x33, - 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35, - 0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x35,0x2c,0x20,0x5f,0x33, - 0x31,0x37,0x29,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x34,0x35,0x31,0x29,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x28,0x70, - 0x6f,0x73,0x2e,0x78,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30, - 0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33, - 0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x5f, - 0x31,0x34,0x36,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x39, - 0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30, - 0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x38,0x31,0x20, - 0x3d,0x20,0x66,0x62,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, - 0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x5f,0x31,0x34,0x36,0x2e,0x64, - 0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x6d,0x69,0x78,0x28,0x30, - 0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38, - 0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30, - 0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33, - 0x31,0x32,0x35,0x2c,0x20,0x5f,0x34,0x38,0x31,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, + 0x65,0x66,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x34,0x30,0x38,0x20,0x2b,0x20,0x28,0x5f, + 0x32,0x37,0x34,0x2e,0x78,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x37,0x30,0x30, + 0x30,0x30,0x30,0x30,0x32,0x31,0x36,0x30,0x36,0x36,0x38,0x33,0x37,0x33,0x31,0x30, + 0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x29,0x2e,0x78,0x79,0x7a,0x2c, + 0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x33,0x32,0x31,0x29,0x29,0x20,0x2b,0x20,0x28, + 0x28,0x28,0x28,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74, + 0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e, + 0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77, + 0x28,0x6d,0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20,0x64,0x6f,0x74,0x28,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x39,0x30,0x20,0x2b,0x20,0x5f, + 0x32,0x38,0x35,0x29,0x2c,0x20,0x5f,0x32,0x37,0x34,0x29,0x29,0x2c,0x20,0x6d,0x61, + 0x78,0x28,0x5f,0x32,0x37,0x39,0x2e,0x73,0x68,0x69,0x6e,0x69,0x6e,0x65,0x73,0x73, + 0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x33,0x32,0x31,0x29, + 0x20,0x2a,0x20,0x5f,0x33,0x36,0x37,0x29,0x2c,0x20,0x73,0x6b,0x79,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x20, + 0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x6b,0x79,0x49,0x6e,0x74,0x65,0x6e,0x73, + 0x69,0x74,0x79,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x34,0x36,0x32,0x29,0x29, + 0x2c,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x30,0x2e,0x33,0x30,0x30,0x30, + 0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37, + 0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x35,0x2c,0x20,0x5f,0x33,0x32,0x31,0x29, + 0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x34,0x36,0x32,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x28,0x70,0x6f,0x73,0x2e, + 0x78,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38, + 0x31,0x32,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x34,0x36, + 0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39, + 0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32, + 0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x39,0x32,0x20,0x3d,0x20,0x66, + 0x62,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20, + 0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x5f,0x31,0x34,0x36,0x2e,0x64,0x65,0x65,0x70, + 0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x6d,0x69,0x78,0x28,0x30,0x2e,0x38,0x30, + 0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35, + 0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30, + 0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35, + 0x2c,0x20,0x5f,0x34,0x39,0x32,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, ]; /* #version 300 es @@ -692,26 +697,26 @@ vs_plane_source_glsl300es := u8.[ highp vec3 _274 = normalize(((((texture(normal_map_normalsmp, (pos.xz * 0.4000000059604644775390625) + (_185 * 1.5)).xzy * 2.0) - vec3(1.0)) + ((texture(normal_map_normalsmp, (pos.xz * 0.100000001490116119384765625) + (_185 * 1.7000000476837158203125)).xzy * 2.0) - vec3(1.0))) + ((texture(normal_map_normalsmp, (pos.xz * 1.0) + (_185 * 2.7000000476837158203125)).xzy * 2.0) - vec3(1.0))) + ((texture(normal_map_normalsmp, (pos.xz * 0.0199999995529651641845703125) + (_185 * 0.100000001490116119384765625)).xzy * 2.0) - vec3(1.0))); highp vec3 _285 = normalize(_279.cameraPosition - pos.xyz); highp vec3 _290 = normalize(_146.sunPosition); - highp float param = _285.y; - highp float _317 = min(1.0, fresnelSchlick(param).x + 0.300000011920928955078125); - highp vec4 _329 = _279.mvp_shadow * vec4(pos.xyz, 1.0); - highp vec3 _341 = ((_329.xyz / vec3(_329.w)) * 0.5) + vec3(0.5); - highp float _346 = _341.z - 0.001000000047497451305389404296875; - highp vec3 _501 = _341; - _501.z = _346; - highp float _358 = texture(shadow_plane_shadowsmp, vec3(_501.xy, _346)); - highp vec2 _398 = gl_FragCoord.xy / vec2(float(_279.screen_w), float(_279.screen_h)); - _398.y = 1.0 - _398.y; + highp float param = max(0.0, dot(_285, _274)); + highp float _321 = min(1.0, fresnelSchlick(param).x + 0.449999988079071044921875); + highp vec4 _338 = _279.mvp_shadow * vec4(floor(pos.xyz * 16.0) * vec3(0.0625), 1.0); + highp vec3 _350 = ((_338.xyz / vec3(_338.w)) * 0.5) + vec3(0.5); + highp float _355 = _350.z - 0.001000000047497451305389404296875; + highp vec3 _512 = _350; + _512.z = _355; + highp float _367 = texture(shadow_plane_shadowsmp, vec3(_512.xy, _355)); + highp vec2 _408 = gl_FragCoord.xy / vec2(float(_279.screen_w), float(_279.screen_h)); + _408.y = 1.0 - _408.y; highp vec3 param_1 = normalize(pos.xyz); highp vec3 param_2 = _146.sunPosition; - highp float _451 = smoothstep(750.0, 1000.0, length(pos.xz)); - frag_color = vec4(mix(mix((((_146.waterColor * max(0.0, dot(_274, _290))) * _146.sunLightColor) * _146.sunIntensity) * _358, texture(reftex_refsmp, _398 + (_274.xz * 0.004999999888241291046142578125)).xyz, vec3(_317)) + (((_146.sunLightColor * _146.sunIntensity) * pow(max(0.0, dot(normalize(_290 + _285), _274)), 32.0)) * _358), sky(param_1, param_2) * _146.skyIntensity, vec3(_451)), mix(mix(0.300000011920928955078125, 0.5, _317), 1.0, _451)); + highp float _462 = smoothstep(750.0, 1000.0, length(pos.xz)); + frag_color = vec4(mix(mix((((_146.waterColor * max(0.0, dot(_274, _290))) * _146.sunLightColor) * _146.sunIntensity) * _367, texture(reftex_refsmp, _408 + (_274.xz * 0.007000000216066837310791015625)).xyz, vec3(_321)) + ((((_146.sunLightColor * _146.sunIntensity) * pow(max(0.0, dot(normalize(_290 + _285), _274)), max(_279.shininess, 1.0))) * _321) * _367), sky(param_1, param_2) * _146.skyIntensity, vec3(_462)), mix(mix(0.300000011920928955078125, 0.5, _321), 1.0, _462)); } else { highp vec2 param_3 = (pos.xz * 0.0500000007450580596923828125) + vec2(_146.time * 0.00999999977648258209228515625); - highp float _481 = fbm(param_3); - frag_color = vec4(_146.deepColor * mix(0.800000011920928955078125, 1.2000000476837158203125, _481), 1.0); + highp float _492 = fbm(param_3); + frag_color = vec4(_146.deepColor * mix(0.800000011920928955078125, 1.2000000476837158203125, _492), 1.0); } } @@ -907,42 +912,45 @@ fs_plane_source_glsl300es := u8.[ 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x50, 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x32,0x38,0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x33,0x31,0x37,0x20,0x3d,0x20,0x6d,0x69,0x6e,0x28,0x31,0x2e,0x30, - 0x2c,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x2e,0x78,0x20,0x2b,0x20,0x30,0x2e,0x33,0x30, - 0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35, - 0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x33,0x32,0x39, - 0x20,0x3d,0x20,0x5f,0x32,0x37,0x39,0x2e,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64, - 0x6f,0x77,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x70,0x6f,0x73,0x2e,0x78,0x79, - 0x7a,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x33,0x34,0x31, - 0x20,0x3d,0x20,0x28,0x28,0x5f,0x33,0x32,0x39,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20, - 0x76,0x65,0x63,0x33,0x28,0x5f,0x33,0x32,0x39,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20, + 0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20,0x64, + 0x6f,0x74,0x28,0x5f,0x32,0x38,0x35,0x2c,0x20,0x5f,0x32,0x37,0x34,0x29,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x32,0x31,0x20,0x3d,0x20,0x6d,0x69,0x6e,0x28, + 0x31,0x2e,0x30,0x2c,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c, + 0x69,0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x2e,0x78,0x20,0x2b,0x20,0x30, + 0x2e,0x34,0x34,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31, + 0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f, + 0x33,0x33,0x38,0x20,0x3d,0x20,0x5f,0x32,0x37,0x39,0x2e,0x6d,0x76,0x70,0x5f,0x73, + 0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x66,0x6c,0x6f, + 0x6f,0x72,0x28,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x31,0x36,0x2e, + 0x30,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x36,0x32,0x35, + 0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x33,0x35,0x30, + 0x20,0x3d,0x20,0x28,0x28,0x5f,0x33,0x33,0x38,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20, + 0x76,0x65,0x63,0x33,0x28,0x5f,0x33,0x33,0x38,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20, 0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x34,0x36,0x20,0x3d,0x20,0x5f,0x33,0x34, - 0x31,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x35,0x35,0x20,0x3d,0x20,0x5f,0x33,0x35, + 0x30,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30, 0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39, 0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35, - 0x30,0x31,0x20,0x3d,0x20,0x5f,0x33,0x34,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x35,0x30,0x31,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x33,0x34,0x36, + 0x31,0x32,0x20,0x3d,0x20,0x5f,0x33,0x35,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x35,0x31,0x32,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x33,0x35,0x35, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x35,0x38,0x20,0x3d,0x20,0x74,0x65,0x78, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x36,0x37,0x20,0x3d,0x20,0x74,0x65,0x78, 0x74,0x75,0x72,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x5f,0x70,0x6c,0x61,0x6e, 0x65,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63, - 0x33,0x28,0x5f,0x35,0x30,0x31,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x33,0x34,0x36,0x29, + 0x33,0x28,0x5f,0x35,0x31,0x32,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x33,0x35,0x35,0x29, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x67,0x6c,0x5f, + 0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x30,0x38,0x20,0x3d,0x20,0x67,0x6c,0x5f, 0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78,0x79,0x20,0x2f,0x20,0x76, 0x65,0x63,0x32,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x32,0x37,0x39,0x2e,0x73, 0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, 0x5f,0x32,0x37,0x39,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x68,0x29,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x33,0x39,0x38,0x2e,0x79,0x20, - 0x3d,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x33,0x39,0x38,0x2e,0x79,0x3b,0x0a, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x30,0x38,0x2e,0x79,0x20, + 0x3d,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x34,0x30,0x38,0x2e,0x79,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x6e,0x6f,0x72, 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x29,0x3b, @@ -950,7 +958,7 @@ fs_plane_source_glsl300es := u8.[ 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x31, 0x34,0x36,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x34,0x35,0x31,0x20,0x3d,0x20,0x73,0x6d,0x6f,0x6f,0x74, + 0x6f,0x61,0x74,0x20,0x5f,0x34,0x36,0x32,0x20,0x3d,0x20,0x73,0x6d,0x6f,0x6f,0x74, 0x68,0x73,0x74,0x65,0x70,0x28,0x37,0x35,0x30,0x2e,0x30,0x2c,0x20,0x31,0x30,0x30, 0x30,0x2e,0x30,0x2c,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x70,0x6f,0x73,0x2e, 0x78,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72, @@ -961,47 +969,49 @@ fs_plane_source_glsl300es := u8.[ 0x5f,0x32,0x39,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73, 0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20, 0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74, - 0x79,0x29,0x20,0x2a,0x20,0x5f,0x33,0x35,0x38,0x2c,0x20,0x74,0x65,0x78,0x74,0x75, + 0x79,0x29,0x20,0x2a,0x20,0x5f,0x33,0x36,0x37,0x2c,0x20,0x74,0x65,0x78,0x74,0x75, 0x72,0x65,0x28,0x72,0x65,0x66,0x74,0x65,0x78,0x5f,0x72,0x65,0x66,0x73,0x6d,0x70, - 0x2c,0x20,0x5f,0x33,0x39,0x38,0x20,0x2b,0x20,0x28,0x5f,0x32,0x37,0x34,0x2e,0x78, - 0x7a,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x34,0x39,0x39,0x39,0x39,0x39,0x39,0x38, - 0x38,0x38,0x32,0x34,0x31,0x32,0x39,0x31,0x30,0x34,0x36,0x31,0x34,0x32,0x35,0x37, - 0x38,0x31,0x32,0x35,0x29,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33, - 0x28,0x5f,0x33,0x31,0x37,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x28,0x5f,0x31,0x34, - 0x36,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x20, - 0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73, - 0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x6d,0x61,0x78,0x28,0x30, - 0x2e,0x30,0x2c,0x20,0x64,0x6f,0x74,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a, - 0x65,0x28,0x5f,0x32,0x39,0x30,0x20,0x2b,0x20,0x5f,0x32,0x38,0x35,0x29,0x2c,0x20, - 0x5f,0x32,0x37,0x34,0x29,0x29,0x2c,0x20,0x33,0x32,0x2e,0x30,0x29,0x29,0x20,0x2a, - 0x20,0x5f,0x33,0x35,0x38,0x29,0x2c,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x20,0x2a,0x20, - 0x5f,0x31,0x34,0x36,0x2e,0x73,0x6b,0x79,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74, - 0x79,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x34,0x35,0x31,0x29,0x29,0x2c,0x20, - 0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30, - 0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31, - 0x32,0x35,0x2c,0x20,0x30,0x2e,0x35,0x2c,0x20,0x5f,0x33,0x31,0x37,0x29,0x2c,0x20, - 0x31,0x2e,0x30,0x2c,0x20,0x5f,0x34,0x35,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x28, - 0x70,0x6f,0x73,0x2e,0x78,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30, - 0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32, - 0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28, - 0x5f,0x31,0x34,0x36,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30, - 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32, - 0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x34,0x38,0x31,0x20,0x3d,0x20,0x66,0x62,0x6d,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34, - 0x28,0x5f,0x31,0x34,0x36,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x20, - 0x2a,0x20,0x6d,0x69,0x78,0x28,0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31, - 0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35, - 0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33, - 0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x5f,0x34,0x38,0x31, - 0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d, - 0x0a,0x0a,0x00, + 0x2c,0x20,0x5f,0x34,0x30,0x38,0x20,0x2b,0x20,0x28,0x5f,0x32,0x37,0x34,0x2e,0x78, + 0x7a,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x37,0x30,0x30,0x30,0x30,0x30,0x30,0x32, + 0x31,0x36,0x30,0x36,0x36,0x38,0x33,0x37,0x33,0x31,0x30,0x37,0x39,0x31,0x30,0x31, + 0x35,0x36,0x32,0x35,0x29,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33, + 0x28,0x5f,0x33,0x32,0x31,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x28,0x28,0x5f,0x31, + 0x34,0x36,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72, + 0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e, + 0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x6d,0x61,0x78,0x28, + 0x30,0x2e,0x30,0x2c,0x20,0x64,0x6f,0x74,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69, + 0x7a,0x65,0x28,0x5f,0x32,0x39,0x30,0x20,0x2b,0x20,0x5f,0x32,0x38,0x35,0x29,0x2c, + 0x20,0x5f,0x32,0x37,0x34,0x29,0x29,0x2c,0x20,0x6d,0x61,0x78,0x28,0x5f,0x32,0x37, + 0x39,0x2e,0x73,0x68,0x69,0x6e,0x69,0x6e,0x65,0x73,0x73,0x2c,0x20,0x31,0x2e,0x30, + 0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x33,0x32,0x31,0x29,0x20,0x2a,0x20,0x5f,0x33, + 0x36,0x37,0x29,0x2c,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34, + 0x36,0x2e,0x73,0x6b,0x79,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x28,0x5f,0x34,0x36,0x32,0x29,0x29,0x2c,0x20,0x6d,0x69,0x78, + 0x28,0x6d,0x69,0x78,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31, + 0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c, + 0x20,0x30,0x2e,0x35,0x2c,0x20,0x5f,0x33,0x32,0x31,0x29,0x2c,0x20,0x31,0x2e,0x30, + 0x2c,0x20,0x5f,0x34,0x36,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x28,0x70,0x6f,0x73, + 0x2e,0x78,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32, + 0x38,0x31,0x32,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x34, + 0x36,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39, + 0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32, + 0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x34,0x39,0x32,0x20,0x3d,0x20,0x66,0x62,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67, + 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x5f,0x31, + 0x34,0x36,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x6d, + 0x69,0x78,0x28,0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32, + 0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x31, + 0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35, + 0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x5f,0x34,0x39,0x32,0x29,0x2c,0x20, + 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, + ]; /* #include @@ -1200,26 +1210,26 @@ vs_plane_source_metal_macos := u8.[ float3 _274 = fast::normalize(((((normal_map.sample(normalsmp, ((in.pos.xz * 0.4000000059604644775390625) + (_185 * 1.5))).xzy * 2.0) - float3(1.0)) + ((normal_map.sample(normalsmp, ((in.pos.xz * 0.100000001490116119384765625) + (_185 * 1.7000000476837158203125))).xzy * 2.0) - float3(1.0))) + ((normal_map.sample(normalsmp, ((in.pos.xz * 1.0) + (_185 * 2.7000000476837158203125))).xzy * 2.0) - float3(1.0))) + ((normal_map.sample(normalsmp, ((in.pos.xz * 0.0199999995529651641845703125) + (_185 * 0.100000001490116119384765625))).xzy * 2.0) - float3(1.0))); float3 _285 = fast::normalize(float3(_279.cameraPosition) - in.pos.xyz); float3 _290 = fast::normalize(float3(_146.sunPosition)); - float param = _285.y; - float _317 = fast::min(1.0, fresnelSchlick(param).x + 0.300000011920928955078125); - float4 _329 = _279.mvp_shadow * float4(in.pos.xyz, 1.0); - float3 _341 = ((_329.xyz / float3(_329.w)) * 0.5) + float3(0.5); - float _346 = _341.z - 0.001000000047497451305389404296875; - float3 _501 = _341; - _501.z = _346; - float _358 = shadow.sample_compare(plane_shadowsmp, _501.xy, _346); - float2 _398 = gl_FragCoord.xy / float2(float(_279.screen_w), float(_279.screen_h)); - _398.y = 1.0 - _398.y; + float param = fast::max(0.0, dot(_285, _274)); + float _321 = fast::min(1.0, fresnelSchlick(param).x + 0.449999988079071044921875); + float4 _338 = _279.mvp_shadow * float4(floor(in.pos.xyz * 16.0) * float3(0.0625), 1.0); + float3 _350 = ((_338.xyz / float3(_338.w)) * 0.5) + float3(0.5); + float _355 = _350.z - 0.001000000047497451305389404296875; + float3 _512 = _350; + _512.z = _355; + float _367 = shadow.sample_compare(plane_shadowsmp, _512.xy, _355); + float2 _408 = gl_FragCoord.xy / float2(float(_279.screen_w), float(_279.screen_h)); + _408.y = 1.0 - _408.y; float3 param_1 = fast::normalize(in.pos.xyz); float3 param_2 = float3(_146.sunPosition); - float _451 = smoothstep(750.0, 1000.0, length(in.pos.xz)); - out.frag_color = float4(mix(mix((((_146.waterColor * fast::max(0.0, dot(_274, _290))) * _146.sunLightColor) * _146.sunIntensity) * _358, reftex.sample(refsmp, (_398 + (_274.xz * 0.004999999888241291046142578125))).xyz, float3(_317)) + (((_146.sunLightColor * _146.sunIntensity) * powr(fast::max(0.0, dot(fast::normalize(_290 + _285), _274)), 32.0)) * _358), sky(param_1, param_2, _146) * _146.skyIntensity, float3(_451)), mix(mix(0.300000011920928955078125, 0.5, _317), 1.0, _451)); + float _462 = smoothstep(750.0, 1000.0, length(in.pos.xz)); + out.frag_color = float4(mix(mix((((_146.waterColor * fast::max(0.0, dot(_274, _290))) * _146.sunLightColor) * _146.sunIntensity) * _367, reftex.sample(refsmp, (_408 + (_274.xz * 0.007000000216066837310791015625))).xyz, float3(_321)) + ((((_146.sunLightColor * _146.sunIntensity) * powr(fast::max(0.0, dot(fast::normalize(_290 + _285), _274)), fast::max(_279.shininess, 1.0))) * _321) * _367), sky(param_1, param_2, _146) * _146.skyIntensity, float3(_462)), mix(mix(0.300000011920928955078125, 0.5, _321), 1.0, _462)); } else { float2 param_3 = (in.pos.xz * 0.0500000007450580596923828125) + float2(_146.time * 0.00999999977648258209228515625); - float _481 = fbm(param_3); - out.frag_color = float4(float3(_146.deepColor) * mix(0.800000011920928955078125, 1.2000000476837158203125, _481), 1.0); + float _492 = fbm(param_3); + out.frag_color = float4(float3(_146.deepColor) * mix(0.800000011920928955078125, 1.2000000476837158203125, _492), 1.0); } return out; } @@ -1452,104 +1462,110 @@ fs_plane_source_metal_macos := u8.[ 0x6c,0x69,0x7a,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x34,0x36, 0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x32,0x38,0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x31,0x37, - 0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x69,0x6e,0x28,0x31,0x2e,0x30, - 0x2c,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x2e,0x78,0x20,0x2b,0x20,0x30,0x2e,0x33,0x30, - 0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35, - 0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x33,0x32,0x39,0x20,0x3d,0x20,0x5f, - 0x32,0x37,0x39,0x2e,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x2e,0x78, - 0x79,0x7a,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x33,0x34,0x31,0x20,0x3d,0x20, - 0x28,0x28,0x5f,0x33,0x32,0x39,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x28,0x5f,0x33,0x32,0x39,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30, - 0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x33,0x34,0x36,0x20,0x3d,0x20,0x5f,0x33,0x34,0x31,0x2e,0x7a,0x20,0x2d, - 0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34, - 0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39, - 0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x20,0x5f,0x35,0x30,0x31,0x20,0x3d,0x20,0x5f,0x33,0x34,0x31, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x35,0x30,0x31,0x2e,0x7a, - 0x20,0x3d,0x20,0x5f,0x33,0x34,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x35,0x38,0x20,0x3d,0x20,0x73,0x68, - 0x61,0x64,0x6f,0x77,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x63,0x6f,0x6d,0x70, - 0x61,0x72,0x65,0x28,0x70,0x6c,0x61,0x6e,0x65,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77, - 0x73,0x6d,0x70,0x2c,0x20,0x5f,0x35,0x30,0x31,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x33, - 0x34,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x67,0x6c,0x5f,0x46,0x72, - 0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78,0x79,0x20,0x2f,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x32,0x37,0x39,0x2e,0x73, - 0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, - 0x5f,0x32,0x37,0x39,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x68,0x29,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x33,0x39,0x38,0x2e,0x79,0x20, - 0x3d,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x33,0x39,0x38,0x2e,0x79,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e, - 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x2e, - 0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x50,0x6f, - 0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x35,0x31,0x20,0x3d,0x20,0x73,0x6d, - 0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x37,0x35,0x30,0x2e,0x30,0x2c,0x20, - 0x31,0x30,0x30,0x30,0x2e,0x30,0x2c,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x69, - 0x6e,0x2e,0x70,0x6f,0x73,0x2e,0x78,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, - 0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x6d,0x69,0x78,0x28, - 0x6d,0x69,0x78,0x28,0x28,0x28,0x28,0x5f,0x31,0x34,0x36,0x2e,0x77,0x61,0x74,0x65, - 0x72,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d, - 0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20,0x64,0x6f,0x74,0x28,0x5f,0x32,0x37,0x34, - 0x2c,0x20,0x5f,0x32,0x39,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36, - 0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20, - 0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73, - 0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x5f,0x33,0x35,0x38,0x2c,0x20,0x72,0x65,0x66, - 0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x72,0x65,0x66,0x73,0x6d, - 0x70,0x2c,0x20,0x28,0x5f,0x33,0x39,0x38,0x20,0x2b,0x20,0x28,0x5f,0x32,0x37,0x34, - 0x2e,0x78,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x34,0x39,0x39,0x39,0x39,0x39, - 0x39,0x38,0x38,0x38,0x32,0x34,0x31,0x32,0x39,0x31,0x30,0x34,0x36,0x31,0x34,0x32, - 0x35,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x33,0x31,0x37,0x29,0x29,0x20,0x2b,0x20,0x28, - 0x28,0x28,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43, - 0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x49, - 0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x72, - 0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20, - 0x64,0x6f,0x74,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c, - 0x69,0x7a,0x65,0x28,0x5f,0x32,0x39,0x30,0x20,0x2b,0x20,0x5f,0x32,0x38,0x35,0x29, - 0x2c,0x20,0x5f,0x32,0x37,0x34,0x29,0x29,0x2c,0x20,0x33,0x32,0x2e,0x30,0x29,0x29, - 0x20,0x2a,0x20,0x5f,0x33,0x35,0x38,0x29,0x2c,0x20,0x73,0x6b,0x79,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20, - 0x5f,0x31,0x34,0x36,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x6b,0x79, - 0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x5f,0x34,0x35,0x31,0x29,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69, - 0x78,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30, - 0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e, - 0x35,0x2c,0x20,0x5f,0x33,0x31,0x37,0x29,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x5f, - 0x34,0x35,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x20,0x3d,0x20,0x28,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x2e,0x78,0x7a,0x20, - 0x2a,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35, - 0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35, - 0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x31,0x34,0x36,0x2e, - 0x74,0x69,0x6d,0x65,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39, - 0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38, - 0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x38,0x31,0x20,0x3d,0x20,0x66,0x62, - 0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, - 0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x28,0x5f,0x31,0x34,0x36,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f, - 0x72,0x29,0x20,0x2a,0x20,0x6d,0x69,0x78,0x28,0x30,0x2e,0x38,0x30,0x30,0x30,0x30, - 0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38, - 0x31,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37, - 0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x5f, - 0x34,0x38,0x31,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74, - 0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x72,0x61,0x6d,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28, + 0x30,0x2e,0x30,0x2c,0x20,0x64,0x6f,0x74,0x28,0x5f,0x32,0x38,0x35,0x2c,0x20,0x5f, + 0x32,0x37,0x34,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x32,0x31,0x20,0x3d,0x20,0x66,0x61,0x73,0x74, + 0x3a,0x3a,0x6d,0x69,0x6e,0x28,0x31,0x2e,0x30,0x2c,0x20,0x66,0x72,0x65,0x73,0x6e, + 0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d,0x29, + 0x2e,0x78,0x20,0x2b,0x20,0x30,0x2e,0x34,0x34,0x39,0x39,0x39,0x39,0x39,0x38,0x38, + 0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x5f,0x33,0x33,0x38,0x20,0x3d,0x20,0x5f,0x32,0x37,0x39,0x2e,0x6d,0x76,0x70, + 0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x2e,0x78,0x79, + 0x7a,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x28,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x20,0x5f,0x33,0x35,0x30,0x20,0x3d,0x20,0x28,0x28,0x5f,0x33,0x33,0x38,0x2e,0x78, + 0x79,0x7a,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x33,0x33,0x38, + 0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x35,0x35,0x20,0x3d,0x20, + 0x5f,0x33,0x35,0x30,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30, + 0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35, + 0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x35,0x31, + 0x32,0x20,0x3d,0x20,0x5f,0x33,0x35,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x35,0x31,0x32,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x33,0x35,0x35,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x33,0x36,0x37,0x20,0x3d,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x2e,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x5f,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x28,0x70,0x6c,0x61,0x6e, + 0x65,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x35,0x31, + 0x32,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x33,0x35,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x30,0x38, + 0x20,0x3d,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e, + 0x78,0x79,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x66,0x6c,0x6f,0x61, + 0x74,0x28,0x5f,0x32,0x37,0x39,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29, + 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x32,0x37,0x39,0x2e,0x73,0x63,0x72, + 0x65,0x65,0x6e,0x5f,0x68,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x34,0x30,0x38,0x2e,0x79,0x20,0x3d,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20, + 0x5f,0x34,0x30,0x38,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d, + 0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65, + 0x28,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31, + 0x34,0x36,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x34,0x36,0x32,0x20,0x3d,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70, + 0x28,0x37,0x35,0x30,0x2e,0x30,0x2c,0x20,0x31,0x30,0x30,0x30,0x2e,0x30,0x2c,0x20, + 0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x2e,0x78,0x7a, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e, + 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x28,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x28,0x28,0x28,0x5f, + 0x31,0x34,0x36,0x2e,0x77,0x61,0x74,0x65,0x72,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a, + 0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20, + 0x64,0x6f,0x74,0x28,0x5f,0x32,0x37,0x34,0x2c,0x20,0x5f,0x32,0x39,0x30,0x29,0x29, + 0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68, + 0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73, + 0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x5f, + 0x33,0x36,0x37,0x2c,0x20,0x72,0x65,0x66,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x28,0x72,0x65,0x66,0x73,0x6d,0x70,0x2c,0x20,0x28,0x5f,0x34,0x30,0x38, + 0x20,0x2b,0x20,0x28,0x5f,0x32,0x37,0x34,0x2e,0x78,0x7a,0x20,0x2a,0x20,0x30,0x2e, + 0x30,0x30,0x37,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x31,0x36,0x30,0x36,0x36,0x38, + 0x33,0x37,0x33,0x31,0x30,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x29, + 0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x33, + 0x32,0x31,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x28,0x28,0x5f,0x31,0x34,0x36,0x2e, + 0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20, + 0x5f,0x31,0x34,0x36,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74, + 0x79,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x72,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a, + 0x6d,0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20,0x64,0x6f,0x74,0x28,0x66,0x61,0x73, + 0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x39, + 0x30,0x20,0x2b,0x20,0x5f,0x32,0x38,0x35,0x29,0x2c,0x20,0x5f,0x32,0x37,0x34,0x29, + 0x29,0x2c,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x5f,0x32,0x37, + 0x39,0x2e,0x73,0x68,0x69,0x6e,0x69,0x6e,0x65,0x73,0x73,0x2c,0x20,0x31,0x2e,0x30, + 0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x33,0x32,0x31,0x29,0x20,0x2a,0x20,0x5f,0x33, + 0x36,0x37,0x29,0x2c,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x5f,0x31,0x34,0x36,0x29, + 0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x2e,0x73,0x6b,0x79,0x49,0x6e,0x74,0x65,0x6e, + 0x73,0x69,0x74,0x79,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x34,0x36, + 0x32,0x29,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x30,0x2e,0x33, + 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35, + 0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x35,0x2c,0x20,0x5f,0x33, + 0x32,0x31,0x29,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x34,0x36,0x32,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20, + 0x28,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x2e,0x78,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x30, + 0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35, + 0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2b,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x31,0x34,0x36,0x2e,0x74,0x69,0x6d,0x65,0x20, + 0x2a,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36, + 0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32, + 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x34,0x39,0x32,0x20,0x3d,0x20,0x66,0x62,0x6d,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f, + 0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31, + 0x34,0x36,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20, + 0x6d,0x69,0x78,0x28,0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39, + 0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20, + 0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31, + 0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x5f,0x34,0x39,0x32,0x29,0x2c, + 0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a, + 0x00, ]; plane_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc: sg_shader_desc; diff --git a/src/shaders/jai/shader_sky.jai b/src/shaders/jai/shader_sky.jai index a61cf45..d059e9d 100644 --- a/src/shaders/jai/shader_sky.jai +++ b/src/shaders/jai/shader_sky.jai @@ -160,20 +160,24 @@ vs_sky_source_glsl430 := u8.[ vec3 sky(vec3 skypos, vec3 sunpos) { - float _196 = dot(normalize(skypos), normalize(sunpos)); vec3 _199 = normalize(skypos); - vec3 final = mix(_178.skyBase, _178.skyTop, vec3(clamp(skypos.y * 2.0, 0.0, 0.699999988079071044921875))) + ((_178.sunHalo * clamp((_196 - 0.9700000286102294921875) * 10.0, 0.0, 0.800000011920928955078125)) * 1.0); - if (_196 > 0.999499976634979248046875) + vec3 _212 = normalize(sunpos); + vec3 _217 = normalize(cross(_212, vec3(0.0, 1.0, 0.0))); + vec3 _229 = normalize(skypos) - (_212 * dot(normalize(skypos), normalize(sunpos))); + float _243 = max(abs(dot(_229, _217)), abs(dot(_229, normalize(cross(_217, _212))))); + float _251 = clamp((0.25 - _243) * 6.0, 0.0, 1.0); + vec3 final = mix(_178.skyBase, _178.skyTop, vec3(clamp(skypos.y * 2.0, 0.0, 0.699999988079071044921875))) + ((_178.sunHalo * _251) * _251); + if (_243 < 0.0320000015199184417724609375) { final = _178.sunDisk * 3.0; } - float _241 = _199.y; - final += (mix(_178.horizonHalo, vec3(0.0), vec3(clamp(abs(_241) * 80.0, 0.0, 1.0))) * 0.100000001490116119384765625); + float _276 = _199.y; + final += (mix(_178.horizonHalo, vec3(0.0), vec3(clamp(abs(_276) * 20.0, 0.0, 1.0))) * 0.800000011920928955078125); if (_178.hasClouds == 1) { - vec3 param = ((_199 / vec3(_241)) * 2.0) + vec3(_178.time * 0.0500000007450580596923828125); - float _277 = fbm(param); - final = mix(final, vec3(1.0), vec3((max(0.0, _241) * (smoothstep(0.5, 1.0, _277) * 0.300000011920928955078125)) * 2.0)); + vec3 param = ((_199 / vec3(_276)) * 2.0) + vec3(_178.time * 0.0500000007450580596923828125); + float _312 = fbm(param); + final = mix(final, vec3(1.0), vec3((max(0.0, _276) * (smoothstep(0.5, 1.0, _312) * 0.300000011920928955078125)) * 2.0)); } return final; } @@ -362,71 +366,84 @@ fs_sky_source_glsl430 := u8.[ 0x20,0x5f,0x31,0x37,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x73, 0x6b,0x79,0x28,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2c,0x20, 0x76,0x65,0x63,0x33,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x39,0x36,0x20,0x3d,0x20, - 0x64,0x6f,0x74,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b, - 0x79,0x70,0x6f,0x73,0x29,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65, - 0x28,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x39,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61, - 0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d, - 0x69,0x78,0x28,0x5f,0x31,0x37,0x38,0x2e,0x73,0x6b,0x79,0x42,0x61,0x73,0x65,0x2c, - 0x20,0x5f,0x31,0x37,0x38,0x2e,0x73,0x6b,0x79,0x54,0x6f,0x70,0x2c,0x20,0x76,0x65, - 0x63,0x33,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2e, - 0x79,0x20,0x2a,0x20,0x32,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e, - 0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30, - 0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x28, - 0x5f,0x31,0x37,0x38,0x2e,0x73,0x75,0x6e,0x48,0x61,0x6c,0x6f,0x20,0x2a,0x20,0x63, - 0x6c,0x61,0x6d,0x70,0x28,0x28,0x5f,0x31,0x39,0x36,0x20,0x2d,0x20,0x30,0x2e,0x39, - 0x37,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39, - 0x32,0x31,0x38,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x2c,0x20,0x30, - 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39, - 0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29, - 0x20,0x2a,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x5f,0x31,0x39,0x36,0x20,0x3e,0x20,0x30,0x2e,0x39,0x39,0x39,0x34,0x39,0x39, - 0x39,0x37,0x36,0x36,0x33,0x34,0x39,0x37,0x39,0x32,0x34,0x38,0x30,0x34,0x36,0x38, - 0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x31,0x37,0x38,0x2e,0x73, - 0x75,0x6e,0x44,0x69,0x73,0x6b,0x20,0x2a,0x20,0x33,0x2e,0x30,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32, - 0x34,0x31,0x20,0x3d,0x20,0x5f,0x31,0x39,0x39,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x2b,0x3d,0x20,0x28,0x6d,0x69,0x78,0x28,0x5f, - 0x31,0x37,0x38,0x2e,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x48,0x61,0x6c,0x6f,0x2c, - 0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33, - 0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x61,0x62,0x73,0x28,0x5f,0x32,0x34,0x31,0x29, - 0x20,0x2a,0x20,0x38,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e, - 0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30, - 0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36, - 0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x31,0x37,0x38,0x2e,0x68,0x61,0x73,0x43,0x6c,0x6f,0x75,0x64,0x73,0x20,0x3d,0x3d, - 0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x28, - 0x28,0x5f,0x31,0x39,0x39,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x32,0x34, - 0x31,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x20,0x2b,0x20,0x76,0x65,0x63, - 0x33,0x28,0x5f,0x31,0x37,0x38,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,0x20,0x30,0x2e, - 0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30, - 0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37, - 0x37,0x20,0x3d,0x20,0x66,0x62,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x39,0x20,0x3d,0x20,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x31,0x32,0x20, + 0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x75,0x6e,0x70, + 0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32, + 0x31,0x37,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63, + 0x72,0x6f,0x73,0x73,0x28,0x5f,0x32,0x31,0x32,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, + 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x32,0x39,0x20, + 0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70, + 0x6f,0x73,0x29,0x20,0x2d,0x20,0x28,0x5f,0x32,0x31,0x32,0x20,0x2a,0x20,0x64,0x6f, + 0x74,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70, + 0x6f,0x73,0x29,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73, + 0x75,0x6e,0x70,0x6f,0x73,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x5f,0x32,0x34,0x33,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x61, + 0x62,0x73,0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x32,0x39,0x2c,0x20,0x5f,0x32,0x31, + 0x37,0x29,0x29,0x2c,0x20,0x61,0x62,0x73,0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x32, + 0x39,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x72,0x6f, + 0x73,0x73,0x28,0x5f,0x32,0x31,0x37,0x2c,0x20,0x5f,0x32,0x31,0x32,0x29,0x29,0x29, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32, + 0x35,0x31,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x30,0x2e,0x32,0x35, + 0x20,0x2d,0x20,0x5f,0x32,0x34,0x33,0x29,0x20,0x2a,0x20,0x36,0x2e,0x30,0x2c,0x20, + 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x33,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28, + 0x5f,0x31,0x37,0x38,0x2e,0x73,0x6b,0x79,0x42,0x61,0x73,0x65,0x2c,0x20,0x5f,0x31, + 0x37,0x38,0x2e,0x73,0x6b,0x79,0x54,0x6f,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, + 0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2e,0x79,0x20,0x2a, + 0x20,0x32,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39, + 0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39, + 0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x37, + 0x38,0x2e,0x73,0x75,0x6e,0x48,0x61,0x6c,0x6f,0x20,0x2a,0x20,0x5f,0x32,0x35,0x31, + 0x29,0x20,0x2a,0x20,0x5f,0x32,0x35,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x5f,0x32,0x34,0x33,0x20,0x3c,0x20,0x30,0x2e,0x30,0x33,0x32,0x30, + 0x30,0x30,0x30,0x30,0x31,0x35,0x31,0x39,0x39,0x31,0x38,0x34,0x34,0x31,0x37,0x37, + 0x32,0x34,0x36,0x30,0x39,0x33,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20, - 0x6d,0x69,0x78,0x28,0x66,0x69,0x6e,0x61,0x6c,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, - 0x31,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x6d,0x61,0x78,0x28, - 0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x34,0x31,0x29,0x20,0x2a,0x20,0x28,0x73,0x6d, - 0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x35,0x2c,0x20,0x31,0x2e, - 0x30,0x2c,0x20,0x5f,0x32,0x37,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x30,0x30, - 0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30, - 0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x66,0x69,0x6e,0x61,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64, - 0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61, - 0x6c,0x69,0x7a,0x65,0x28,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20, - 0x3d,0x20,0x5f,0x31,0x37,0x38,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69, - 0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, - 0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x73,0x6b,0x79,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2a,0x20, - 0x5f,0x31,0x37,0x38,0x2e,0x73,0x6b,0x79,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74, - 0x79,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x5f,0x31,0x37,0x38,0x2e,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b,0x20,0x2a,0x20,0x33, + 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x36,0x20,0x3d,0x20,0x5f,0x31,0x39,0x39,0x2e, + 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x2b,0x3d,0x20, + 0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x37,0x38,0x2e,0x68,0x6f,0x72,0x69,0x7a,0x6f, + 0x6e,0x48,0x61,0x6c,0x6f,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29, + 0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x61,0x62,0x73, + 0x28,0x5f,0x32,0x37,0x36,0x29,0x20,0x2a,0x20,0x32,0x30,0x2e,0x30,0x2c,0x20,0x30, + 0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x38, + 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35, + 0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x31,0x37,0x38,0x2e,0x68,0x61,0x73,0x43,0x6c,0x6f,0x75,0x64,0x73, + 0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20, + 0x3d,0x20,0x28,0x28,0x5f,0x31,0x39,0x39,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28, + 0x5f,0x32,0x37,0x36,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x20,0x2b,0x20, + 0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x37,0x38,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a, + 0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30, + 0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x5f,0x33,0x31,0x32,0x20,0x3d,0x20,0x66,0x62,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c, + 0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x69,0x6e,0x61,0x6c,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x6d, + 0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x37,0x36,0x29,0x20,0x2a,0x20, + 0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x35,0x2c, + 0x20,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x33,0x31,0x32,0x29,0x20,0x2a,0x20,0x30,0x2e, + 0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39, + 0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x66,0x69,0x6e,0x61,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a,0x76, + 0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x20,0x3d,0x20,0x5f,0x31,0x37,0x38,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73, + 0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x73,0x6b,0x79, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29, + 0x20,0x2a,0x20,0x5f,0x31,0x37,0x38,0x2e,0x73,0x6b,0x79,0x49,0x6e,0x74,0x65,0x6e, + 0x73,0x69,0x74,0x79,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + ]; /* #version 300 es @@ -536,20 +553,24 @@ vs_sky_source_glsl300es := u8.[ highp vec3 sky(highp vec3 skypos, highp vec3 sunpos) { - highp float _196 = dot(normalize(skypos), normalize(sunpos)); highp vec3 _199 = normalize(skypos); - highp vec3 final = mix(_178.skyBase, _178.skyTop, vec3(clamp(skypos.y * 2.0, 0.0, 0.699999988079071044921875))) + ((_178.sunHalo * clamp((_196 - 0.9700000286102294921875) * 10.0, 0.0, 0.800000011920928955078125)) * 1.0); - if (_196 > 0.999499976634979248046875) + highp vec3 _212 = normalize(sunpos); + highp vec3 _217 = normalize(cross(_212, vec3(0.0, 1.0, 0.0))); + highp vec3 _229 = normalize(skypos) - (_212 * dot(normalize(skypos), normalize(sunpos))); + highp float _243 = max(abs(dot(_229, _217)), abs(dot(_229, normalize(cross(_217, _212))))); + highp float _251 = clamp((0.25 - _243) * 6.0, 0.0, 1.0); + highp vec3 final = mix(_178.skyBase, _178.skyTop, vec3(clamp(skypos.y * 2.0, 0.0, 0.699999988079071044921875))) + ((_178.sunHalo * _251) * _251); + if (_243 < 0.0320000015199184417724609375) { final = _178.sunDisk * 3.0; } - highp float _241 = _199.y; - final += (mix(_178.horizonHalo, vec3(0.0), vec3(clamp(abs(_241) * 80.0, 0.0, 1.0))) * 0.100000001490116119384765625); + highp float _276 = _199.y; + final += (mix(_178.horizonHalo, vec3(0.0), vec3(clamp(abs(_276) * 20.0, 0.0, 1.0))) * 0.800000011920928955078125); if (_178.hasClouds == 1) { - highp vec3 param = ((_199 / vec3(_241)) * 2.0) + vec3(_178.time * 0.0500000007450580596923828125); - highp float _277 = fbm(param); - final = mix(final, vec3(1.0), vec3((max(0.0, _241) * (smoothstep(0.5, 1.0, _277) * 0.300000011920928955078125)) * 2.0)); + highp vec3 param = ((_199 / vec3(_276)) * 2.0) + vec3(_178.time * 0.0500000007450580596923828125); + highp float _312 = fbm(param); + final = mix(final, vec3(1.0), vec3((max(0.0, _276) * (smoothstep(0.5, 1.0, _312) * 0.300000011920928955078125)) * 2.0)); } return final; } @@ -756,75 +777,88 @@ fs_sky_source_glsl300es := u8.[ 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x28,0x68,0x69,0x67,0x68,0x70, 0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2c,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29, - 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x31,0x39,0x36,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x6e,0x6f, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x5f,0x31,0x39,0x39,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69, + 0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x31,0x32,0x20, + 0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x75,0x6e,0x70, + 0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x5f,0x32,0x31,0x37,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61, + 0x6c,0x69,0x7a,0x65,0x28,0x63,0x72,0x6f,0x73,0x73,0x28,0x5f,0x32,0x31,0x32,0x2c, + 0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20, + 0x30,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x32,0x39,0x20,0x3d,0x20,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x20, + 0x2d,0x20,0x28,0x5f,0x32,0x31,0x32,0x20,0x2a,0x20,0x64,0x6f,0x74,0x28,0x6e,0x6f, 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x2c, 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x75,0x6e,0x70,0x6f, - 0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x39,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61, - 0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x66,0x69,0x6e, - 0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x37,0x38,0x2e,0x73,0x6b, - 0x79,0x42,0x61,0x73,0x65,0x2c,0x20,0x5f,0x31,0x37,0x38,0x2e,0x73,0x6b,0x79,0x54, - 0x6f,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73, - 0x6b,0x79,0x70,0x6f,0x73,0x2e,0x79,0x20,0x2a,0x20,0x32,0x2e,0x30,0x2c,0x20,0x30, - 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30, - 0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29, - 0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x37,0x38,0x2e,0x73,0x75,0x6e,0x48,0x61, - 0x6c,0x6f,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x5f,0x31,0x39,0x36, - 0x20,0x2d,0x20,0x30,0x2e,0x39,0x37,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31, - 0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x20,0x2a,0x20,0x31, - 0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x38,0x30,0x30,0x30, - 0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37, - 0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x39,0x36,0x20,0x3e,0x20,0x30,0x2e, - 0x39,0x39,0x39,0x34,0x39,0x39,0x39,0x37,0x36,0x36,0x33,0x34,0x39,0x37,0x39,0x32, - 0x34,0x38,0x30,0x34,0x36,0x38,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20, - 0x5f,0x31,0x37,0x38,0x2e,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b,0x20,0x2a,0x20,0x33, - 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x34,0x31,0x20,0x3d, - 0x20,0x5f,0x31,0x39,0x39,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x6e, - 0x61,0x6c,0x20,0x2b,0x3d,0x20,0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x37,0x38,0x2e, - 0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x48,0x61,0x6c,0x6f,0x2c,0x20,0x76,0x65,0x63, - 0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x63,0x6c,0x61, - 0x6d,0x70,0x28,0x61,0x62,0x73,0x28,0x5f,0x32,0x34,0x31,0x29,0x20,0x2a,0x20,0x38, - 0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29, - 0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39, - 0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x37,0x38,0x2e, - 0x68,0x61,0x73,0x43,0x6c,0x6f,0x75,0x64,0x73,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d, - 0x20,0x28,0x28,0x5f,0x31,0x39,0x39,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x5f, - 0x32,0x34,0x31,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x20,0x2b,0x20,0x76, - 0x65,0x63,0x33,0x28,0x5f,0x31,0x37,0x38,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,0x20, - 0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35, - 0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x37,0x20,0x3d,0x20,0x66,0x62,0x6d,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x69,0x6e,0x61, - 0x6c,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65, - 0x63,0x33,0x28,0x28,0x6d,0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x34, - 0x31,0x29,0x20,0x2a,0x20,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70, - 0x28,0x30,0x2e,0x35,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x37,0x37,0x29, - 0x20,0x2a,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32, - 0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20, - 0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x69,0x6e,0x61,0x6c,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69, - 0x7a,0x65,0x28,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x73,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x34,0x33,0x20,0x3d,0x20,0x6d,0x61,0x78, + 0x28,0x61,0x62,0x73,0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x32,0x39,0x2c,0x20,0x5f, + 0x32,0x31,0x37,0x29,0x29,0x2c,0x20,0x61,0x62,0x73,0x28,0x64,0x6f,0x74,0x28,0x5f, + 0x32,0x32,0x39,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63, + 0x72,0x6f,0x73,0x73,0x28,0x5f,0x32,0x31,0x37,0x2c,0x20,0x5f,0x32,0x31,0x32,0x29, + 0x29,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x35,0x31,0x20,0x3d,0x20,0x63,0x6c,0x61, + 0x6d,0x70,0x28,0x28,0x30,0x2e,0x32,0x35,0x20,0x2d,0x20,0x5f,0x32,0x34,0x33,0x29, + 0x20,0x2a,0x20,0x36,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31, + 0x37,0x38,0x2e,0x73,0x6b,0x79,0x42,0x61,0x73,0x65,0x2c,0x20,0x5f,0x31,0x37,0x38, + 0x2e,0x73,0x6b,0x79,0x54,0x6f,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x63,0x6c, + 0x61,0x6d,0x70,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2e,0x79,0x20,0x2a,0x20,0x32, + 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39, + 0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31, + 0x38,0x37,0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x37,0x38,0x2e, + 0x73,0x75,0x6e,0x48,0x61,0x6c,0x6f,0x20,0x2a,0x20,0x5f,0x32,0x35,0x31,0x29,0x20, + 0x2a,0x20,0x5f,0x32,0x35,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x5f,0x32,0x34,0x33,0x20,0x3c,0x20,0x30,0x2e,0x30,0x33,0x32,0x30,0x30,0x30, + 0x30,0x30,0x31,0x35,0x31,0x39,0x39,0x31,0x38,0x34,0x34,0x31,0x37,0x37,0x32,0x34, + 0x36,0x30,0x39,0x33,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x31, + 0x37,0x38,0x2e,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b,0x20,0x2a,0x20,0x33,0x2e,0x30, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x36,0x20,0x3d,0x20,0x5f, + 0x31,0x39,0x39,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c, + 0x20,0x2b,0x3d,0x20,0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x37,0x38,0x2e,0x68,0x6f, + 0x72,0x69,0x7a,0x6f,0x6e,0x48,0x61,0x6c,0x6f,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, + 0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x63,0x6c,0x61,0x6d,0x70, + 0x28,0x61,0x62,0x73,0x28,0x5f,0x32,0x37,0x36,0x29,0x20,0x2a,0x20,0x32,0x30,0x2e, + 0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x20,0x2a, + 0x20,0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39, + 0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x37,0x38,0x2e,0x68,0x61,0x73,0x43,0x6c, + 0x6f,0x75,0x64,0x73,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x28,0x28,0x5f,0x31, + 0x39,0x39,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x32,0x37,0x36,0x29,0x29, + 0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x5f, + 0x31,0x37,0x38,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,0x20,0x30,0x2e,0x30,0x35,0x30, + 0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36, + 0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x5f,0x33,0x31,0x32,0x20,0x3d,0x20,0x66,0x62,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c, + 0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x69,0x6e,0x61,0x6c,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x6d, + 0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x37,0x36,0x29,0x20,0x2a,0x20, + 0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x35,0x2c, + 0x20,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x33,0x31,0x32,0x29,0x20,0x2a,0x20,0x30,0x2e, + 0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39, + 0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x66,0x69,0x6e,0x61,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a,0x76, + 0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x31,0x37,0x38,0x2e,0x73,0x75,0x6e,0x50,0x6f, - 0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67, - 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x73,0x6b, - 0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x38,0x2e,0x73,0x6b,0x79,0x49,0x6e,0x74,0x65, - 0x6e,0x73,0x69,0x74,0x79,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x00, + 0x6d,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x70,0x6f, + 0x73,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d, + 0x20,0x5f,0x31,0x37,0x38,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f, + 0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x73,0x6b,0x79,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2a,0x20,0x5f, + 0x31,0x37,0x38,0x2e,0x73,0x6b,0x79,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79, + 0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, ]; /* #include @@ -978,20 +1012,24 @@ vs_sky_source_metal_macos := u8.[ static inline __attribute__((always_inline)) float3 sky(thread const float3& skypos, thread const float3& sunpos, constant sky_world_config& _178) { - float _196 = dot(fast::normalize(skypos), fast::normalize(sunpos)); float3 _199 = fast::normalize(skypos); - float3 final = mix(_178.skyBase, _178.skyTop, float3(fast::clamp(skypos.y * 2.0, 0.0, 0.699999988079071044921875))) + ((_178.sunHalo * fast::clamp((_196 - 0.9700000286102294921875) * 10.0, 0.0, 0.800000011920928955078125)) * 1.0); - if (_196 > 0.999499976634979248046875) + float3 _212 = fast::normalize(sunpos); + float3 _217 = fast::normalize(cross(_212, float3(0.0, 1.0, 0.0))); + float3 _229 = fast::normalize(skypos) - (_212 * dot(fast::normalize(skypos), fast::normalize(sunpos))); + float _243 = fast::max(abs(dot(_229, _217)), abs(dot(_229, fast::normalize(cross(_217, _212))))); + float _251 = fast::clamp((0.25 - _243) * 6.0, 0.0, 1.0); + float3 final = mix(_178.skyBase, _178.skyTop, float3(fast::clamp(skypos.y * 2.0, 0.0, 0.699999988079071044921875))) + ((_178.sunHalo * _251) * _251); + if (_243 < 0.0320000015199184417724609375) { final = _178.sunDisk * 3.0; } - float _241 = _199.y; - final += (mix(_178.horizonHalo, float3(0.0), float3(fast::clamp(abs(_241) * 80.0, 0.0, 1.0))) * 0.100000001490116119384765625); + float _276 = _199.y; + final += (mix(_178.horizonHalo, float3(0.0), float3(fast::clamp(abs(_276) * 20.0, 0.0, 1.0))) * 0.800000011920928955078125); if (_178.hasClouds == 1) { - float3 param = ((_199 / float3(_241)) * 2.0) + float3(_178.time * 0.0500000007450580596923828125); - float _277 = fbm(param); - final = mix(final, float3(1.0), float3((fast::max(0.0, _241) * (smoothstep(0.5, 1.0, _277) * 0.300000011920928955078125)) * 2.0)); + float3 param = ((_199 / float3(_276)) * 2.0) + float3(_178.time * 0.0500000007450580596923828125); + float _312 = fbm(param); + final = mix(final, float3(1.0), float3((fast::max(0.0, _276) * (smoothstep(0.5, 1.0, _312) * 0.300000011920928955078125)) * 2.0)); } return final; } @@ -1212,86 +1250,100 @@ fs_sky_source_metal_macos := u8.[ 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73, 0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x73,0x6b,0x79,0x5f,0x77, 0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x26,0x20,0x5f,0x31,0x37, - 0x38,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x31,0x39,0x36,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a, + 0x38,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x5f,0x31,0x39,0x39,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x31,0x32,0x20, + 0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a, + 0x65,0x28,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x31,0x37,0x20,0x3d,0x20,0x66,0x61,0x73, + 0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x72,0x6f, + 0x73,0x73,0x28,0x5f,0x32,0x31,0x32,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, + 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x32, + 0x39,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c, + 0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x20,0x2d,0x20,0x28,0x5f, + 0x32,0x31,0x32,0x20,0x2a,0x20,0x64,0x6f,0x74,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a, 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73, 0x29,0x2c,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69, - 0x7a,0x65,0x28,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x39,0x20,0x3d,0x20,0x66, - 0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73, - 0x6b,0x79,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f, - 0x31,0x37,0x38,0x2e,0x73,0x6b,0x79,0x42,0x61,0x73,0x65,0x2c,0x20,0x5f,0x31,0x37, - 0x38,0x2e,0x73,0x6b,0x79,0x54,0x6f,0x70,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x6b,0x79, - 0x70,0x6f,0x73,0x2e,0x79,0x20,0x2a,0x20,0x32,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30, - 0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39, - 0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x20, - 0x2b,0x20,0x28,0x28,0x5f,0x31,0x37,0x38,0x2e,0x73,0x75,0x6e,0x48,0x61,0x6c,0x6f, - 0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28, - 0x5f,0x31,0x39,0x36,0x20,0x2d,0x20,0x30,0x2e,0x39,0x37,0x30,0x30,0x30,0x30,0x30, - 0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29, - 0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e, - 0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39, - 0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x31,0x2e,0x30, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x39,0x36,0x20, - 0x3e,0x20,0x30,0x2e,0x39,0x39,0x39,0x34,0x39,0x39,0x39,0x37,0x36,0x36,0x33,0x34, - 0x39,0x37,0x39,0x32,0x34,0x38,0x30,0x34,0x36,0x38,0x37,0x35,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61, - 0x6c,0x20,0x3d,0x20,0x5f,0x31,0x37,0x38,0x2e,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b, - 0x20,0x2a,0x20,0x33,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x34,0x31,0x20,0x3d,0x20,0x5f, - 0x31,0x39,0x39,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c, - 0x20,0x2b,0x3d,0x20,0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x37,0x38,0x2e,0x68,0x6f, - 0x72,0x69,0x7a,0x6f,0x6e,0x48,0x61,0x6c,0x6f,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x66, - 0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x61,0x62,0x73,0x28,0x5f, - 0x32,0x34,0x31,0x29,0x20,0x2a,0x20,0x38,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30, - 0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30, - 0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33, - 0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x66,0x20,0x28,0x5f,0x31,0x37,0x38,0x2e,0x68,0x61,0x73,0x43,0x6c,0x6f,0x75,0x64, - 0x73,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x20,0x3d,0x20,0x28,0x28,0x5f,0x31,0x39,0x39,0x20,0x2f,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x34,0x31,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e, - 0x30,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x37,0x38, - 0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30, - 0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33, - 0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x37,0x20,0x3d,0x20,0x66,0x62, - 0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x69, - 0x6e,0x61,0x6c,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29, - 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a, - 0x6d,0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x34,0x31,0x29,0x20,0x2a, - 0x20,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x35, - 0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x37,0x37,0x29,0x20,0x2a,0x20,0x30, - 0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38, - 0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e, - 0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72, - 0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x69,0x6e,0x61,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f, - 0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69, - 0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d, - 0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x73,0x6b,0x79,0x5f, - 0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x26,0x20,0x5f,0x31, - 0x37,0x38,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d, - 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75, - 0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66, - 0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69, - 0x6e,0x2e,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x37,0x38,0x2e,0x73,0x75,0x6e, - 0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f, - 0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x5f,0x31,0x37,0x38,0x29, - 0x20,0x2a,0x20,0x5f,0x31,0x37,0x38,0x2e,0x73,0x6b,0x79,0x49,0x6e,0x74,0x65,0x6e, - 0x73,0x69,0x74,0x79,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, - + 0x7a,0x65,0x28,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x34,0x33,0x20,0x3d,0x20,0x66, + 0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x61,0x62,0x73,0x28,0x64,0x6f,0x74, + 0x28,0x5f,0x32,0x32,0x39,0x2c,0x20,0x5f,0x32,0x31,0x37,0x29,0x29,0x2c,0x20,0x61, + 0x62,0x73,0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x32,0x39,0x2c,0x20,0x66,0x61,0x73, + 0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x72,0x6f, + 0x73,0x73,0x28,0x5f,0x32,0x31,0x37,0x2c,0x20,0x5f,0x32,0x31,0x32,0x29,0x29,0x29, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32, + 0x35,0x31,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70, + 0x28,0x28,0x30,0x2e,0x32,0x35,0x20,0x2d,0x20,0x5f,0x32,0x34,0x33,0x29,0x20,0x2a, + 0x20,0x36,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x66,0x69,0x6e,0x61, + 0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x37,0x38,0x2e,0x73,0x6b,0x79, + 0x42,0x61,0x73,0x65,0x2c,0x20,0x5f,0x31,0x37,0x38,0x2e,0x73,0x6b,0x79,0x54,0x6f, + 0x70,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a, + 0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2e,0x79,0x20,0x2a, + 0x20,0x32,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39, + 0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39, + 0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x37, + 0x38,0x2e,0x73,0x75,0x6e,0x48,0x61,0x6c,0x6f,0x20,0x2a,0x20,0x5f,0x32,0x35,0x31, + 0x29,0x20,0x2a,0x20,0x5f,0x32,0x35,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x5f,0x32,0x34,0x33,0x20,0x3c,0x20,0x30,0x2e,0x30,0x33,0x32,0x30, + 0x30,0x30,0x30,0x30,0x31,0x35,0x31,0x39,0x39,0x31,0x38,0x34,0x34,0x31,0x37,0x37, + 0x32,0x34,0x36,0x30,0x39,0x33,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20, + 0x5f,0x31,0x37,0x38,0x2e,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b,0x20,0x2a,0x20,0x33, + 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x36,0x20,0x3d,0x20,0x5f,0x31,0x39,0x39,0x2e, + 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x2b,0x3d,0x20, + 0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x37,0x38,0x2e,0x68,0x6f,0x72,0x69,0x7a,0x6f, + 0x6e,0x48,0x61,0x6c,0x6f,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e, + 0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x66,0x61,0x73,0x74,0x3a, + 0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x61,0x62,0x73,0x28,0x5f,0x32,0x37,0x36,0x29, + 0x20,0x2a,0x20,0x32,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e, + 0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30, + 0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32, + 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x37,0x38, + 0x2e,0x68,0x61,0x73,0x43,0x6c,0x6f,0x75,0x64,0x73,0x20,0x3d,0x3d,0x20,0x31,0x29, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x28,0x28, + 0x5f,0x31,0x39,0x39,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32, + 0x37,0x36,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x20,0x2b,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x37,0x38,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a, + 0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30, + 0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x5f,0x33,0x31,0x32,0x20,0x3d,0x20,0x66,0x62,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c, + 0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x69,0x6e,0x61,0x6c,0x2c,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x28,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x30,0x2e,0x30, + 0x2c,0x20,0x5f,0x32,0x37,0x36,0x29,0x20,0x2a,0x20,0x28,0x73,0x6d,0x6f,0x6f,0x74, + 0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x35,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20, + 0x5f,0x33,0x31,0x32,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30, + 0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31, + 0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66, + 0x69,0x6e,0x61,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e, + 0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e, + 0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b, + 0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73, + 0x74,0x61,0x6e,0x74,0x20,0x73,0x6b,0x79,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63, + 0x6f,0x6e,0x66,0x69,0x67,0x26,0x20,0x5f,0x31,0x37,0x38,0x20,0x5b,0x5b,0x62,0x75, + 0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d, + 0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x2e,0x78, + 0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x5f,0x31,0x37,0x38,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f, + 0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67, + 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, + 0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x2c,0x20,0x5f,0x31,0x37,0x38,0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x38, + 0x2e,0x73,0x6b,0x79,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20,0x31, + 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, + 0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, ]; sky_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc: sg_shader_desc; diff --git a/src/shaders/jai/shader_trile.jai b/src/shaders/jai/shader_trile.jai index df2995a..8099635 100644 --- a/src/shaders/jai/shader_trile.jai +++ b/src/shaders/jai/shader_trile.jai @@ -126,7 +126,7 @@ Trile_Fs_Params :: struct { ambient_color: [3]float; is_preview: s32; rdm_tint: [3]float; - _: [4]u8; + rdm_diff_saturation: float; }; /* #version 430 @@ -450,9 +450,10 @@ vs_trile_source_glsl430 := u8.[ vec3 ambient_color; int is_preview; vec3 rdm_tint; + float rdm_diff_saturation; }; - uniform trile_fs_params _1275; + uniform trile_fs_params _1282; layout(binding = 16) uniform sampler2D triletex_trilesmp; layout(binding = 17) uniform sampler2DShadow shadowtex_shadowsmp; @@ -517,11 +518,6 @@ vs_trile_source_glsl430 := u8.[ return (((int(dot(vec3(-0.0, -1.0, -0.0), N) >= 0.980000019073486328125) + (int(N.z >= 0.980000019073486328125) * 2)) + (int(dot(vec3(-0.0, -0.0, -1.0), N) >= 0.980000019073486328125) * 3)) + (int(N.x >= 0.980000019073486328125) * 4)) + (int(dot(vec3(-1.0, -0.0, -0.0), N) >= 0.980000019073486328125) * 5); } - float roughness_to_rdm_size(int roughness) - { - return pow(2.0, float(8 - roughness)); - } - ivec2 rdm_face_pixel_offset(vec4 atlas_rect, int face, int rdmSize) { ivec2 _700 = textureSize(rdm_atlas_rdmsmp, 0); @@ -533,32 +529,32 @@ vs_trile_source_glsl430 := u8.[ vec3 vc = v; if ((index / 2) == 0) { - vec3 _1921 = vc; - _1921.z = v.y; - _1921.y = v.z; - vc = _1921; + vec3 _1939 = vc; + _1939.z = v.y; + _1939.y = v.z; + vc = _1939; } if ((index / 2) == 2) { - vec3 _1925 = vc; - _1925.z = v.x; - _1925.x = v.z; - vc = _1925; + vec3 _1943 = vc; + _1943.z = v.x; + _1943.x = v.z; + vc = _1943; } if ((index % 2) == 1) { - vec3 _1929 = vc; - _1929.z = _1929.z * (-1.0); - vc = _1929; + vec3 _1947 = vc; + _1947.z = _1947.z * (-1.0); + vc = _1947; } - vec3 _1932 = vc; - float _601 = _1932.x + off.x; - vec3 _1934 = _1932; - _1934.x = _601; - float _607 = _1932.y + off.y; - _1934.y = _607; - vc = _1934; - vec2 _625 = _1934.xy * (1.0 / ((abs(_601) + abs(_607)) + _1932.z)); + vec3 _1950 = vc; + float _601 = _1950.x + off.x; + vec3 _1952 = _1950; + _1952.x = _601; + float _607 = _1950.y + off.y; + _1952.y = _607; + vc = _1952; + vec2 _625 = _1952.xy * (1.0 / ((abs(_601) + abs(_607)) + _1950.z)); float _628 = _625.x; float _630 = _625.y; return vec2(((_628 + _630) + 1.0) * 0.5, ((_628 - _630) + 1.0) * 0.5); @@ -632,65 +628,64 @@ vs_trile_source_glsl430 := u8.[ { vec3 param = N; int _739 = rdm_index_from_normal(param); - int param_1 = roughness; - int _744 = int(roughness_to_rdm_size(param_1)); - float _747 = float(_744); - ivec3 param_2 = local_pos; - int param_3 = roughness; - vec4 _753 = rdm_get_atlas_rect(param_2, param_3); - if (_753.z <= 0.0) + ivec3 param_1 = local_pos; + int param_2 = roughness; + vec4 _745 = rdm_get_atlas_rect(param_1, param_2); + float _747 = _745.z; + if (_747 <= 0.0) { return vec3(1.0, 0.0, 1.0); } - vec4 param_4 = _753; - int param_5 = _739; - int param_6 = _744; - ivec2 _768 = rdm_face_pixel_offset(param_4, param_5, param_6); - vec3 _808 = normalize(reflect(V, N)); + int _767 = int(_747 * float(textureSize(rdm_atlas_rdmsmp, 0).x)) / 2; + float _770 = float(_767); + vec4 param_3 = _745; + int param_4 = _739; + int param_5 = _767; + ivec2 _778 = rdm_face_pixel_offset(param_3, param_4, param_5); + vec3 _818 = normalize(reflect(V, N)); if (roughness > 1) { - vec3 param_7 = normalize(diff + (_808 * 2.0)); - int param_8 = _739; - vec2 param_9 = vec2(0.0); - return texture(rdm_atlas_rdmsmp, (vec2(_768) + (rdm_get_hemioct(param_7, param_8, param_9) * _747)) / vec2(textureSize(rdm_atlas_rdmsmp, 0))).xyz; + vec3 param_6 = normalize(diff + (_818 * 2.0)); + int param_7 = _739; + vec2 param_8 = vec2(0.0); + return texture(rdm_atlas_rdmsmp, (vec2(_778) + (rdm_get_hemioct(param_6, param_7, param_8) * _770)) / vec2(textureSize(rdm_atlas_rdmsmp, 0))).xyz; } for (int i = 0; i < 40; i++) { - vec3 _877 = diff + (_808 * (float(i + 1) * 0.5)); - if (dot(_877, N) < 0.0) + vec3 _887 = diff + (_818 * (float(i + 1) * 0.5)); + if (dot(_887, N) < 0.0) { continue; } - vec3 param_10 = normalize(_877); - int param_11 = _739; - vec2 param_12 = vec2(0.0); - vec2 _892 = rdm_get_hemioct(param_10, param_11, param_12); - vec4 _917 = texelFetch(rdm_atlas_rdmsmp, ivec2(_768.x + int(_892.x * _747), _768.y + int(_892.y * _747)), 0); - float _921 = _917.w; - float _924 = length(_877); - bool _935 = (_921 > 0.0) && (_921 < _924); - bool _943; - if (_935) + vec3 param_9 = normalize(_887); + int param_10 = _739; + vec2 param_11 = vec2(0.0); + vec4 _924 = texture(rdm_atlas_rdmsmp, (vec2(_778) + (rdm_get_hemioct(param_9, param_10, param_11) * _770)) / vec2(textureSize(rdm_atlas_rdmsmp, 0)), 0.0); + float _928 = _924.w; + float _931 = length(_887); + bool _942 = (_928 > 0.0) && (_928 < _931); + bool _950; + if (_942) { - _943 = (_921 + 0.5) > _924; + _950 = (_928 + 0.5) > _931; } else { - _943 = _935; + _950 = _942; } - if (_943) + if (_950) { - return _917.xyz; + return _924.xyz; } } - vec3 skyDir = _808; - if (_808.y < 0.0) + vec3 skyDir = _818; + if (_818.y < 0.0) { skyDir = reflect(skyDir, vec3(0.0, 1.0, 0.0)); } - vec3 param_13 = skyDir; - vec3 param_14 = _271.sunPosition; - return sky(param_13, param_14); + vec3 param_12 = skyDir; + vec3 param_13 = _271.sunPosition; + return sky(param_12, param_13); } int isign(float f) @@ -698,29 +693,34 @@ vs_trile_source_glsl430 := u8.[ return (f < 0.0) ? (-1) : 1; } + float roughness_to_rdm_size(int roughness) + { + return pow(2.0, float(8 - roughness)); + } + vec3 sample_rdm_diff_map(vec3 N, ivec3 local_pos, vec3 fallback) { ivec3 param = local_pos; int param_1 = 7; - vec4 _973 = rdm_get_atlas_rect(param, param_1); - if (_973.z <= 0.0) + vec4 _980 = rdm_get_atlas_rect(param, param_1); + if (_980.z <= 0.0) { return fallback; } vec3 param_2 = N; - int _984 = rdm_index_from_normal(param_2); + int _991 = rdm_index_from_normal(param_2); int param_3 = 7; - int _988 = int(roughness_to_rdm_size(param_3)); - vec4 param_4 = _973; - int param_5 = _984; - int param_6 = _988; - ivec2 _996 = rdm_face_pixel_offset(param_4, param_5, param_6); + int _995 = int(roughness_to_rdm_size(param_3)); + vec4 param_4 = _980; + int param_5 = _991; + int param_6 = _995; + ivec2 _1003 = rdm_face_pixel_offset(param_4, param_5, param_6); vec3 param_7 = N; - int param_8 = _984; + int param_8 = _991; vec2 param_9 = vec2(0.0); - vec2 _1003 = rdm_get_hemioct(param_7, param_8, param_9); - float _1010 = float(_988); - return texelFetch(rdm_atlas_rdmsmp, ivec2(_996.x + int(_1003.x * _1010), _996.y + int(_1003.y * _1010)), 0).xyz; + vec2 _1010 = rdm_get_hemioct(param_7, param_8, param_9); + float _1017 = float(_995); + return texelFetch(rdm_atlas_rdmsmp, ivec2(_1003.x + int(_1010.x * _1017), _1003.y + int(_1010.y * _1017)), 0).xyz; } vec3 smix(vec3 a, vec3 b, float t) @@ -731,16 +731,16 @@ vs_trile_source_glsl430 := u8.[ vec3 sample_rdm_diff(vec3 N, vec3 diff, ivec3 local_pos) { vec3 param = N; - int _1063 = rdm_index_from_normal(param); + int _1070 = rdm_index_from_normal(param); vec2 delta = vec2(0.0); - bool _1072 = (_1063 == 0) || (_1063 == 1); - if (_1072) + bool _1079 = (_1070 == 0) || (_1070 == 1); + if (_1079) { delta = vec2(diff.x, diff.z); } else { - if ((_1063 == 2) || (_1063 == 3)) + if ((_1070 == 2) || (_1070 == 3)) { delta = vec2(diff.x, diff.y); } @@ -752,7 +752,7 @@ vs_trile_source_glsl430 := u8.[ ivec3 s1; ivec3 s2; ivec3 s3; - if (_1072) + if (_1079) { float param_1 = delta.x; s1 = ivec3(isign(param_1), 0, 0); @@ -764,7 +764,7 @@ vs_trile_source_glsl430 := u8.[ } else { - if ((_1063 == 2) || (_1063 == 3)) + if ((_1070 == 2) || (_1070 == 3)) { float param_5 = delta.x; s1 = ivec3(isign(param_5), 0, 0); @@ -811,17 +811,17 @@ vs_trile_source_glsl430 := u8.[ void main() { - bool _1269 = vpos.y < (_271.planeHeight - 0.00999999977648258209228515625); - bool _1279; - if (_1269) + bool _1276 = vpos.y < (_271.planeHeight - 0.00999999977648258209228515625); + bool _1286; + if (_1276) { - _1279 = _1275.is_reflection == 1; + _1286 = _1282.is_reflection == 1; } else { - _1279 = _1269; + _1286 = _1276; } - if (_1279) + if (_1286) { discard; } @@ -830,62 +830,62 @@ vs_trile_source_glsl430 := u8.[ vec4 trixel_material; while (count < 5) { - vec4 _1332 = texelFetch(triletex_trilesmp, ivec2(int(clamp(pos_after_adjust.z, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0), int(clamp(pos_after_adjust.y, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) + (int(clamp(pos_after_adjust.x, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) * 16)), 0); - trixel_material = _1332; - if (length(_1332) > 0.00999999977648258209228515625) + vec4 _1339 = texelFetch(triletex_trilesmp, ivec2(int(clamp(pos_after_adjust.z, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0), int(clamp(pos_after_adjust.y, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) + (int(clamp(pos_after_adjust.x, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) * 16)), 0); + trixel_material = _1339; + if (length(_1339) > 0.00999999977648258209228515625) { break; } pos_after_adjust += (to_center * 0.100000001490116119384765625); count++; } - int _1355 = int(round(trixel_material.w * 255.0)); + int _1362 = int(round(trixel_material.w * 255.0)); float emittance = 0.0; int roughnessInt = 0; float roughness = 0.0500000007450580596923828125; float metallic = 0.0; - if ((_1355 & 1) != 0) + if ((_1362 & 1) != 0) { - emittance = float((_1355 >> 1) & 127) * 0.0078740157186985015869140625; + emittance = float((_1362 >> 1) & 127) * 0.0078740157186985015869140625; } else { - int _1375 = (_1355 >> 5) & 7; - roughnessInt = _1375; - roughness = max(float(_1375) * 0.14285714924335479736328125, 0.0500000007450580596923828125); - metallic = float((_1355 >> 3) & 3) * 0.3333333432674407958984375; + int _1382 = (_1362 >> 5) & 7; + roughnessInt = _1382; + roughness = max(float(_1382) * 0.14285714924335479736328125, 0.0500000007450580596923828125); + metallic = float((_1362 >> 3) & 3) * 0.3333333432674407958984375; } - vec3 _1392 = abs(fnormal.xyz); - float _1394 = _1392.x; - float _1396 = _1392.y; - bool _1397 = _1394 >= _1396; - bool _1405; - if (_1397) + vec3 _1399 = abs(fnormal.xyz); + float _1401 = _1399.x; + float _1403 = _1399.y; + bool _1404 = _1401 >= _1403; + bool _1412; + if (_1404) { - _1405 = _1394 >= _1392.z; + _1412 = _1401 >= _1399.z; } else { - _1405 = _1397; + _1412 = _1404; } vec3 N; - if (_1405) + if (_1412) { N = vec3(sign(fnormal.x), 0.0, 0.0); } else { - bool _1418 = _1396 >= _1394; - bool _1426; - if (_1418) + bool _1425 = _1403 >= _1401; + bool _1433; + if (_1425) { - _1426 = _1396 >= _1392.z; + _1433 = _1403 >= _1399.z; } else { - _1426 = _1418; + _1433 = _1425; } - if (_1426) + if (_1433) { N = vec3(0.0, sign(fnormal.y), 0.0); } @@ -894,101 +894,102 @@ vs_trile_source_glsl430 := u8.[ N = vec3(0.0, 0.0, sign(fnormal.z)); } } - vec3 _1443 = normalize(cam - vpos); - vec3 _1447 = normalize(_271.sunPosition); - vec3 _1452 = normalize(_1443 + _1447); - vec3 _1460 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, vec3(metallic)); - float param = max(dot(_1452, _1443), 0.0); - vec3 param_1 = _1460; - vec3 _1469 = fresnelSchlick(param, param_1); + vec3 _1450 = normalize(cam - vpos); + vec3 _1454 = normalize(_271.sunPosition); + vec3 _1459 = normalize(_1450 + _1454); + vec3 _1467 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, vec3(metallic)); + float param = max(dot(_1459, _1450), 0.0); + vec3 param_1 = _1467; + vec3 _1476 = fresnelSchlick(param, param_1); vec3 param_2 = N; - vec3 param_3 = _1452; + vec3 param_3 = _1459; float param_4 = roughness; vec3 param_5 = N; - vec3 param_6 = _1443; - vec3 param_7 = _1447; + vec3 param_6 = _1450; + vec3 param_7 = _1454; float param_8 = roughness; - float _1503 = max(dot(N, _1447), 0.0); - vec4 _1536 = _1275.mvp_shadow * vec4(floor(vpos * 16.0) * vec3(0.0625), 1.0); - vec3 _1547 = ((_1536.xyz / vec3(_1536.w)) * 0.5) + vec3(0.5); - float _1551 = _1547.z - 0.001000000047497451305389404296875; - vec3 _1906 = _1547; - _1906.z = _1551; - vec3 light = ((((((((vec3(1.0) - _1469) * (1.0 - metallic)) * trixel_material.xyz) * vec3(0.3183410167694091796875)) + ((_1469 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(N, _1443), 0.0)) * _1503) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_1906.xy, _1551))) * _1503) * _271.sunLightColor) * _271.sunIntensity; - vec3 _1588 = trileCenter + (N * 0.4900000095367431640625); - ivec3 _1594 = ivec3(mod(floor(trileCenter), vec3(32.0))); - ivec3 param_9 = _1594; + float _1510 = max(dot(N, _1454), 0.0); + vec4 _1543 = _1282.mvp_shadow * vec4(floor(vpos * 16.0) * vec3(0.0625), 1.0); + vec3 _1554 = ((_1543.xyz / vec3(_1543.w)) * 0.5) + vec3(0.5); + float _1558 = _1554.z - 0.001000000047497451305389404296875; + vec3 _1924 = _1554; + _1924.z = _1558; + vec3 light = ((((((((vec3(1.0) - _1476) * (1.0 - metallic)) * trixel_material.xyz) * vec3(0.3183410167694091796875)) + ((_1476 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(N, _1450), 0.0)) * _1510) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_1924.xy, _1558))) * _1510) * _271.sunLightColor) * _271.sunIntensity; + vec3 _1595 = trileCenter + (N * 0.4900000095367431640625); + ivec3 _1601 = ivec3(mod(floor(trileCenter), vec3(32.0))); + ivec3 param_9 = _1601; int param_10 = roughnessInt; - vec4 _1620 = texture(ssaotex_trilesmp, vec2(gl_FragCoord.x / float(_1275.screen_w), gl_FragCoord.y / float(_1275.screen_h)), 0.0); - float _1621 = _1620.x; - bool _1631 = _1275.rdm_enabled == 1; - bool _1637; - if (_1631) + vec4 _1627 = texture(ssaotex_trilesmp, vec2(gl_FragCoord.x / float(_1282.screen_w), gl_FragCoord.y / float(_1282.screen_h)), 0.0); + float _1628 = _1627.x; + bool _1638 = _1282.rdm_enabled == 1; + bool _1644; + if (_1638) { - _1637 = rdm_get_atlas_rect(param_9, param_10).z > 0.0; + _1644 = rdm_get_atlas_rect(param_9, param_10).z > 0.0; } else { - _1637 = _1631; + _1644 = _1638; } - if (_1637) + if (_1644) { - float param_11 = max(dot(N, _1443), 0.0); - vec3 param_12 = _1460; + float param_11 = max(dot(N, _1450), 0.0); + vec3 param_12 = _1467; float param_13 = roughness; - vec3 _1650 = FresnelSchlickRoughness(param_11, param_12, param_13); - vec3 _1657 = vpos - _1588; + vec3 _1657 = FresnelSchlickRoughness(param_11, param_12, param_13); + vec3 _1664 = vpos - _1595; vec3 param_14 = N; vec3 param_15 = -cv; - vec3 param_16 = _1588; - vec3 param_17 = _1657; + vec3 param_16 = _1595; + vec3 param_17 = _1664; int param_18 = roughnessInt; - ivec3 param_19 = _1594; - vec3 _1672 = sample_rdm(param_14, param_15, param_16, param_17, param_18, param_19) * _1275.rdm_tint; - float _1694 = max(dot(N, _1443), 0.0); - vec4 _1697 = texture(brdf_lut_rdmsmp, vec2(_1694, roughness)); - float _1707 = sin(roughness * 3.141285419464111328125); - light += (((((mix(_1672, vec3(dot(_1672, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), vec3(metallic)) * ((_1650 * _1697.x) + vec3(_1697.y))) * _1275.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1707))) * (1.0 - (((0.89999997615814208984375 * roughness) * _1707) * pow(1.0 - _1694, 2.0)))) * (1.0 - clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); + ivec3 param_19 = _1601; + vec3 _1679 = sample_rdm(param_14, param_15, param_16, param_17, param_18, param_19) * _1282.rdm_tint; + float _1701 = max(dot(N, _1450), 0.0); + vec4 _1704 = texture(brdf_lut_rdmsmp, vec2(_1701, roughness)); + float _1714 = sin(roughness * 3.141285419464111328125); + light += (((((mix(_1679, vec3(dot(_1679, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), vec3(metallic)) * ((_1657 * _1704.x) + vec3(_1704.y))) * _1282.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1714))) * (1.0 - (((0.89999997615814208984375 * roughness) * _1714) * pow(1.0 - _1701, 2.0)))) * (1.0 - clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); vec3 param_20 = N; - vec3 param_21 = _1657; - ivec3 param_22 = _1594; - light += (((((((vec3(1.0) - _1650) * (1.0 - metallic)) * (sample_rdm_diff(param_20, param_21, param_22) * _1275.rdm_tint)) * vec3(0.3183410167694091796875)) * trixel_material.xyz) * _1621) * _1275.rdm_diff_scale); - if (_1275.rdm_diff_scale < 0.001000000047497451305389404296875) + vec3 param_21 = _1664; + ivec3 param_22 = _1601; + vec3 _1770 = sample_rdm_diff(param_20, param_21, param_22) * _1282.rdm_tint; + light += (((((((vec3(1.0) - _1657) * (1.0 - metallic)) * mix(vec3(dot(_1770, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), _1770, vec3(_1282.rdm_diff_saturation))) * vec3(0.3183410167694091796875)) * trixel_material.xyz) * _1628) * _1282.rdm_diff_scale); + if (_1282.rdm_diff_scale < 0.001000000047497451305389404296875) { - light += (((_1275.ambient_color * _1275.ambient_intensity) * trixel_material.xyz) * _1621); + light += (((_1282.ambient_color * _1282.ambient_intensity) * trixel_material.xyz) * _1628); } } else { - light += (((_1275.ambient_color * _1275.ambient_intensity) * trixel_material.xyz) * _1621); - vec3 _1818 = reflect(-_1443, N); - vec3 R = _1818; - if (_1818.y < 0.0) + light += (((_1282.ambient_color * _1282.ambient_intensity) * trixel_material.xyz) * _1628); + vec3 _1836 = reflect(-_1450, N); + vec3 R = _1836; + if (_1836.y < 0.0) { R = reflect(R, vec3(0.0, 1.0, 0.0)); } vec3 param_23 = R; vec3 param_24 = _271.sunPosition; - light += ((_1469 * sky(param_23, param_24)) * 0.100000001490116119384765625); + light += ((_1476 * sky(param_23, param_24)) * 0.100000001490116119384765625); } - frag_color = vec4(mix(_271.deepColor, light + ((trixel_material.xyz * emittance) * _1275.emissive_scale), vec3(smoothstep(0.0, _271.planeHeight, vpos.y))), 1.0); - if (_1275.is_preview == 1) + frag_color = vec4(mix(_271.deepColor, light + ((trixel_material.xyz * emittance) * _1282.emissive_scale), vec3(smoothstep(0.0, _271.planeHeight, vpos.y))), 1.0); + if (_1282.is_preview == 1) { - vec4 _1861 = frag_color; - vec3 _1865 = mix(_1861.xyz, vec3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), vec3(0.5)); - frag_color.x = _1865.x; - frag_color.y = _1865.y; - frag_color.z = _1865.z; + vec4 _1879 = frag_color; + vec3 _1883 = mix(_1879.xyz, vec3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), vec3(0.5)); + frag_color.x = _1883.x; + frag_color.y = _1883.y; + frag_color.z = _1883.z; } else { - if (_1275.is_preview == 2) + if (_1282.is_preview == 2) { - vec4 _1879 = frag_color; - vec3 _1883 = mix(_1879.xyz, vec3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), vec3(0.5)); - frag_color.x = _1883.x; - frag_color.y = _1883.y; - frag_color.z = _1883.z; + vec4 _1897 = frag_color; + vec3 _1901 = mix(_1897.xyz, vec3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), vec3(0.5)); + frag_color.x = _1901.x; + frag_color.y = _1901.y; + frag_color.z = _1901.z; } } } @@ -1038,1238 +1039,1251 @@ fs_trile_source_glsl430 := u8.[ 0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, 0x6e,0x74,0x20,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74, - 0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x74,0x72, - 0x69,0x6c,0x65,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5f,0x31, - 0x32,0x37,0x35,0x3b,0x0a,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e, - 0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x31,0x36,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f, - 0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x74,0x72,0x69, - 0x6c,0x65,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a, - 0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d, - 0x20,0x31,0x37,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x72,0x32,0x44,0x53,0x68,0x61,0x64,0x6f,0x77,0x20,0x73,0x68,0x61, - 0x64,0x6f,0x77,0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70, - 0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67, - 0x20,0x3d,0x20,0x31,0x38,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f, - 0x6b,0x75,0x70,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x6c,0x61, - 0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x31, - 0x39,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c, - 0x65,0x72,0x32,0x44,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x74,0x72,0x69, - 0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69, - 0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x32,0x30,0x29,0x20,0x75,0x6e,0x69,0x66, - 0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x72,0x64, - 0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a, - 0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d, - 0x20,0x32,0x31,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f, - 0x72,0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28, - 0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x33,0x29,0x20,0x69,0x6e, - 0x20,0x76,0x65,0x63,0x33,0x20,0x69,0x70,0x6f,0x73,0x3b,0x0a,0x6c,0x61,0x79,0x6f, - 0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29, - 0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x70,0x6f,0x73,0x3b,0x0a,0x6c, - 0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d, - 0x20,0x35,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x6f,0x72,0x69,0x67, - 0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28, - 0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e, - 0x20,0x76,0x65,0x63,0x33,0x20,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b, - 0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e, - 0x20,0x3d,0x20,0x34,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x6e, - 0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f, - 0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76, - 0x65,0x63,0x33,0x20,0x63,0x61,0x6d,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28, - 0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x36,0x29,0x20,0x69,0x6e, - 0x20,0x76,0x65,0x63,0x33,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65, - 0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69, - 0x6f,0x6e,0x20,0x3d,0x20,0x37,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20, - 0x63,0x76,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74, - 0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63, - 0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x0a,0x76, - 0x65,0x63,0x33,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69, - 0x63,0x6b,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74, - 0x61,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30,0x29,0x0a,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20,0x2b,0x20,0x28,0x28, - 0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20, - 0x2a,0x20,0x70,0x6f,0x77,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20, - 0x2d,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c, - 0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a, - 0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74, - 0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x76, - 0x65,0x63,0x33,0x20,0x48,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75, - 0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x33,0x38,0x39,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68, - 0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x39,0x33, - 0x20,0x3d,0x20,0x5f,0x33,0x38,0x39,0x20,0x2a,0x20,0x5f,0x33,0x38,0x39,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x39,0x38,0x20,0x3d, - 0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x48,0x29,0x2c,0x20, - 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x34,0x31,0x30,0x20,0x3d,0x20,0x28,0x28,0x5f,0x33,0x39,0x38,0x20,0x2a,0x20, - 0x5f,0x33,0x39,0x38,0x29,0x20,0x2a,0x20,0x28,0x5f,0x33,0x39,0x33,0x20,0x2d,0x20, - 0x31,0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x33,0x39,0x33,0x20,0x2f,0x20,0x28, - 0x28,0x33,0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31, - 0x31,0x31,0x33,0x32,0x38,0x31,0x32,0x35,0x20,0x2a,0x20,0x5f,0x34,0x31,0x30,0x29, - 0x20,0x2a,0x20,0x5f,0x34,0x31,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69, - 0x63,0x6b,0x47,0x47,0x58,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x4e,0x64,0x6f,0x74, - 0x56,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x34,0x32,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, - 0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x34,0x32,0x39,0x20,0x3d,0x20,0x28,0x5f,0x34,0x32,0x33,0x20,0x2a, - 0x20,0x5f,0x34,0x32,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x32,0x35,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4e,0x64,0x6f,0x74,0x56, - 0x20,0x2f,0x20,0x28,0x28,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2a,0x20,0x28,0x31,0x2e, - 0x30,0x20,0x2d,0x20,0x5f,0x34,0x32,0x39,0x29,0x29,0x20,0x2b,0x20,0x5f,0x34,0x32, - 0x39,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47,0x65,0x6f, - 0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x76,0x65,0x63,0x33,0x20, - 0x4e,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x56,0x2c,0x20,0x76,0x65,0x63,0x33,0x20, - 0x4c,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28, - 0x4e,0x2c,0x20,0x56,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d, - 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20, - 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x4c,0x29,0x2c,0x20,0x30, - 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x47, - 0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47, - 0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63, - 0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63, - 0x34,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f, - 0x72,0x65,0x63,0x74,0x28,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c, - 0x5f,0x70,0x6f,0x73,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f, - 0x36,0x36,0x37,0x20,0x3d,0x20,0x28,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f, - 0x73,0x2e,0x78,0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73, - 0x2e,0x79,0x20,0x2a,0x20,0x33,0x32,0x29,0x29,0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63, - 0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x7a,0x20,0x2a,0x20,0x31,0x30,0x32,0x34,0x29, - 0x29,0x20,0x2b,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a, - 0x20,0x33,0x32,0x37,0x36,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, - 0x75,0x72,0x6e,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x72, - 0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73, - 0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x36,0x36,0x37,0x20,0x25, - 0x20,0x35,0x31,0x32,0x2c,0x20,0x5f,0x36,0x36,0x37,0x20,0x2f,0x20,0x35,0x31,0x32, - 0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x46, - 0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75, - 0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73, - 0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30,0x2c,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29, - 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30, - 0x20,0x2b,0x20,0x28,0x28,0x6d,0x61,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e, - 0x30,0x20,0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x2c,0x20, - 0x46,0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28, - 0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54, - 0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c, - 0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x74,0x20,0x72, - 0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x29,0x0a,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x28,0x28,0x69,0x6e,0x74, - 0x28,0x64,0x6f,0x74,0x28,0x76,0x65,0x63,0x33,0x28,0x2d,0x30,0x2e,0x30,0x2c,0x20, - 0x2d,0x31,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x29,0x2c,0x20,0x4e,0x29,0x20, - 0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37, - 0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2b,0x20,0x28,0x69, - 0x6e,0x74,0x28,0x4e,0x2e,0x7a,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30, - 0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32, - 0x35,0x29,0x20,0x2a,0x20,0x32,0x29,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x64,0x6d,0x5f, + 0x64,0x69,0x66,0x66,0x5f,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3b, + 0x0a,0x7d,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x74,0x72,0x69, + 0x6c,0x65,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5f,0x31,0x32, + 0x38,0x32,0x3b,0x0a,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64, + 0x69,0x6e,0x67,0x20,0x3d,0x20,0x31,0x36,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72, + 0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x74,0x72,0x69,0x6c, + 0x65,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x6c, + 0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20, + 0x31,0x37,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x72,0x32,0x44,0x53,0x68,0x61,0x64,0x6f,0x77,0x20,0x73,0x68,0x61,0x64, + 0x6f,0x77,0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x3b, + 0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20, + 0x3d,0x20,0x31,0x38,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61, + 0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b, + 0x75,0x70,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x6c,0x61,0x79, + 0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x31,0x39, + 0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x72,0x32,0x44,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c, + 0x65,0x73,0x6d,0x70,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e, + 0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x32,0x30,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f, + 0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x72,0x64,0x6d, + 0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x6c, + 0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20, + 0x32,0x31,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x72,0x32,0x44,0x20,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72, + 0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c, + 0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x33,0x29,0x20,0x69,0x6e,0x20, + 0x76,0x65,0x63,0x33,0x20,0x69,0x70,0x6f,0x73,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75, + 0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29,0x20, + 0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x70,0x6f,0x73,0x3b,0x0a,0x6c,0x61, + 0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20, + 0x35,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x6f,0x72,0x69,0x67,0x5f, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c, + 0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e,0x20, + 0x76,0x65,0x63,0x33,0x20,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a, + 0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20, + 0x3d,0x20,0x34,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63, + 0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65, + 0x63,0x33,0x20,0x63,0x61,0x6d,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c, + 0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x36,0x29,0x20,0x69,0x6e,0x20, + 0x76,0x65,0x63,0x33,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72, + 0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, + 0x6e,0x20,0x3d,0x20,0x37,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x63, + 0x76,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69, + 0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34, + 0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x0a,0x76,0x65, + 0x63,0x33,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63, + 0x6b,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61, + 0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20,0x2b,0x20,0x28,0x28,0x76, + 0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a, + 0x20,0x70,0x6f,0x77,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d, + 0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, + 0x31,0x2e,0x30,0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69, + 0x6f,0x6e,0x47,0x47,0x58,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x20,0x48,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67, + 0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x33,0x38,0x39,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x39,0x33,0x20, + 0x3d,0x20,0x5f,0x33,0x38,0x39,0x20,0x2a,0x20,0x5f,0x33,0x38,0x39,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x39,0x38,0x20,0x3d,0x20, + 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x48,0x29,0x2c,0x20,0x30, + 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x34,0x31,0x30,0x20,0x3d,0x20,0x28,0x28,0x5f,0x33,0x39,0x38,0x20,0x2a,0x20,0x5f, + 0x33,0x39,0x38,0x29,0x20,0x2a,0x20,0x28,0x5f,0x33,0x39,0x33,0x20,0x2d,0x20,0x31, + 0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x33,0x39,0x33,0x20,0x2f,0x20,0x28,0x28, + 0x33,0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31,0x31, + 0x31,0x33,0x32,0x38,0x31,0x32,0x35,0x20,0x2a,0x20,0x5f,0x34,0x31,0x30,0x29,0x20, + 0x2a,0x20,0x5f,0x34,0x31,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63, + 0x6b,0x47,0x47,0x58,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x4e,0x64,0x6f,0x74,0x56, + 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, + 0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x34,0x32,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20, + 0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x34,0x32,0x39,0x20,0x3d,0x20,0x28,0x5f,0x34,0x32,0x33,0x20,0x2a,0x20, + 0x5f,0x34,0x32,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x32,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4e,0x64,0x6f,0x74,0x56,0x20, + 0x2f,0x20,0x28,0x28,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30, + 0x20,0x2d,0x20,0x5f,0x34,0x32,0x39,0x29,0x29,0x20,0x2b,0x20,0x5f,0x34,0x32,0x39, + 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47,0x65,0x6f,0x6d, + 0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x76,0x65,0x63,0x33,0x20,0x4e, + 0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x56,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x4c, + 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, + 0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e, + 0x2c,0x20,0x56,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20, + 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x6d, + 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x4c,0x29,0x2c,0x20,0x30,0x2e, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, + 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x47,0x65, + 0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x33,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68, + 0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x34, + 0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72, + 0x65,0x63,0x74,0x28,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f, + 0x70,0x6f,0x73,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x36, + 0x36,0x37,0x20,0x3d,0x20,0x28,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73, + 0x2e,0x78,0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e, + 0x79,0x20,0x2a,0x20,0x33,0x32,0x29,0x29,0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61, + 0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x7a,0x20,0x2a,0x20,0x31,0x30,0x32,0x34,0x29,0x29, + 0x20,0x2b,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20, + 0x33,0x32,0x37,0x36,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, + 0x72,0x6e,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x72,0x64, + 0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d, + 0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x36,0x36,0x37,0x20,0x25,0x20, + 0x35,0x31,0x32,0x2c,0x20,0x5f,0x36,0x36,0x37,0x20,0x2f,0x20,0x35,0x31,0x32,0x29, + 0x2c,0x20,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x46,0x72, + 0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75,0x67, + 0x68,0x6e,0x65,0x73,0x73,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x54, + 0x68,0x65,0x74,0x61,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30,0x2c,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20, + 0x2b,0x20,0x28,0x28,0x6d,0x61,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30, + 0x20,0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x2c,0x20,0x46, + 0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x63, + 0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54,0x68, + 0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20, + 0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x74,0x20,0x72,0x64, + 0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x29,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x28,0x28,0x69,0x6e,0x74,0x28, 0x64,0x6f,0x74,0x28,0x76,0x65,0x63,0x33,0x28,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d, - 0x30,0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e,0x30,0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e, + 0x31,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e, 0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33, - 0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x33,0x29,0x29, - 0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x4e,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x30, - 0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36, - 0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x34,0x29,0x29,0x20,0x2b,0x20, - 0x28,0x69,0x6e,0x74,0x28,0x64,0x6f,0x74,0x28,0x76,0x65,0x63,0x33,0x28,0x2d,0x31, - 0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x29,0x2c, - 0x20,0x4e,0x29,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30, - 0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20, - 0x2a,0x20,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72, - 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x5f,0x74,0x6f,0x5f,0x72,0x64,0x6d,0x5f, - 0x73,0x69,0x7a,0x65,0x28,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x70,0x6f,0x77,0x28,0x32,0x2e,0x30,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, - 0x38,0x20,0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x69,0x76,0x65,0x63,0x32,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61, - 0x63,0x65,0x5f,0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28, - 0x76,0x65,0x63,0x34,0x20,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x2c, - 0x20,0x69,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72, - 0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76, - 0x65,0x63,0x32,0x20,0x5f,0x37,0x30,0x30,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75, - 0x72,0x65,0x53,0x69,0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73, - 0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x69,0x6e, - 0x74,0x28,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x2e,0x78,0x20,0x2a, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x37,0x30,0x30,0x2e,0x78,0x29,0x29,0x20, - 0x2b,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x25,0x20,0x32,0x29,0x20,0x2a,0x20, - 0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x2c,0x20,0x69,0x6e,0x74,0x28,0x61,0x74, - 0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x2e,0x79,0x20,0x2a,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x28,0x5f,0x37,0x30,0x30,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20,0x28,0x28, - 0x66,0x61,0x63,0x65,0x20,0x2f,0x20,0x32,0x29,0x20,0x2a,0x20,0x72,0x64,0x6d,0x53, - 0x69,0x7a,0x65,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x32,0x20,0x72, - 0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x76, - 0x65,0x63,0x33,0x20,0x76,0x2c,0x20,0x69,0x6e,0x74,0x20,0x69,0x6e,0x64,0x65,0x78, - 0x2c,0x20,0x76,0x65,0x63,0x32,0x20,0x6f,0x66,0x66,0x29,0x0a,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x63,0x20,0x3d,0x20,0x76,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x2f,0x20, - 0x32,0x29,0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x32, - 0x31,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x31,0x39,0x32,0x31,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x79,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x31,0x2e,0x79,0x20,0x3d, - 0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63, - 0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x2f, - 0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39, - 0x32,0x35,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x39,0x32,0x35,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x78,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x35,0x2e,0x78,0x20, - 0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, - 0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20, - 0x25,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31, - 0x39,0x32,0x39,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x31,0x39,0x32,0x39,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32, - 0x39,0x2e,0x7a,0x20,0x2a,0x20,0x28,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x39, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x5f,0x31,0x39,0x33,0x32,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x31,0x20,0x3d,0x20,0x5f,0x31, - 0x39,0x33,0x32,0x2e,0x78,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x78,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x33,0x34,0x20,0x3d,0x20, - 0x5f,0x31,0x39,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x33,0x34, - 0x2e,0x78,0x20,0x3d,0x20,0x5f,0x36,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x37,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33, - 0x32,0x2e,0x79,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x39,0x33,0x34,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x36,0x30,0x37,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33,0x34,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x36,0x32,0x35,0x20,0x3d, - 0x20,0x5f,0x31,0x39,0x33,0x34,0x2e,0x78,0x79,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30, - 0x20,0x2f,0x20,0x28,0x28,0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x31,0x29,0x20,0x2b, - 0x20,0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x37,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31, - 0x39,0x33,0x32,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x36,0x32,0x38,0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e,0x78, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x33,0x30, - 0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, - 0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x32,0x28,0x28,0x28,0x5f,0x36,0x32, - 0x38,0x20,0x2b,0x20,0x5f,0x36,0x33,0x30,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x29, - 0x20,0x2a,0x20,0x30,0x2e,0x35,0x2c,0x20,0x28,0x28,0x5f,0x36,0x32,0x38,0x20,0x2d, - 0x20,0x5f,0x36,0x33,0x30,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x29,0x20,0x2a,0x20, - 0x30,0x2e,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x68, - 0x61,0x73,0x68,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6e,0x29,0x0a,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x72,0x61,0x63,0x74,0x28, - 0x73,0x69,0x6e,0x28,0x6e,0x29,0x20,0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e,0x35, - 0x34,0x36,0x38,0x37,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x76,0x65,0x63,0x33,0x20,0x78,0x29,0x0a, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x32,0x39,0x20, - 0x3d,0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x37,0x20,0x3d,0x20,0x64,0x6f,0x74, - 0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x78,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, - 0x31,0x2e,0x30,0x2c,0x20,0x31,0x35,0x37,0x2e,0x30,0x2c,0x20,0x31,0x31,0x33,0x2e, - 0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d, - 0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x30,0x20,0x3d,0x20,0x5f,0x31, - 0x32,0x39,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b, - 0x20,0x31,0x35,0x37,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37, - 0x20,0x2b,0x20,0x31,0x35,0x38,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x36,0x20,0x3d,0x20,0x5f,0x31,0x32,0x39,0x2e, - 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x31, - 0x33,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20, - 0x31,0x31,0x34,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20, - 0x2b,0x20,0x32,0x37,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33, - 0x37,0x20,0x2b,0x20,0x32,0x37,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, - 0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x6d,0x69, - 0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x2c,0x20,0x68, - 0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x5f,0x31, - 0x35,0x30,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x5f,0x31, - 0x36,0x36,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x68,0x61,0x73, - 0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x2c,0x20,0x68,0x61,0x73,0x68, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29, - 0x2c,0x20,0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x36,0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x37,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x5f,0x31,0x36,0x36,0x29, - 0x2c,0x20,0x5f,0x31,0x32,0x39,0x2e,0x7a,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x66,0x62,0x6d,0x28,0x69,0x6e,0x6f,0x75,0x74,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x66,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x6d,0x61,0x74,0x33,0x28,0x76,0x65,0x63, - 0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30, - 0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35, - 0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33, - 0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63, - 0x33,0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34, - 0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e, - 0x37,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34, - 0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39, - 0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39, - 0x33,0x37,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30, - 0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30, - 0x33,0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39, - 0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37, - 0x35,0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38, - 0x39,0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20, - 0x70,0x29,0x20,0x2a,0x20,0x31,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33, - 0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28, - 0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20, - 0x2a,0x20,0x30,0x2e,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d, - 0x20,0x28,0x6d,0x61,0x74,0x33,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c, - 0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38, - 0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30, - 0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30, - 0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x36, - 0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31, - 0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32,0x30,0x30,0x30,0x30, - 0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35, - 0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34, - 0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c,0x20, - 0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34, - 0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20, - 0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33, - 0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c,0x20,0x31,0x2e,0x32, - 0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37,0x37,0x30,0x35,0x30, - 0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29,0x20,0x2a,0x20,0x31, - 0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35, - 0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x36,0x36, - 0x36,0x36,0x36,0x36,0x37,0x31,0x36,0x33,0x33,0x37,0x32,0x30,0x33,0x39,0x37,0x39, - 0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20, - 0x3d,0x20,0x28,0x6d,0x61,0x74,0x33,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30, - 0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31, - 0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32, - 0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32, - 0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e, - 0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39, - 0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32,0x30,0x30,0x30, - 0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37, - 0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35, - 0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c, - 0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30, - 0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c, - 0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32, - 0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c,0x20,0x31,0x2e, - 0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37,0x37,0x30,0x35, - 0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29,0x20,0x2a,0x20, - 0x31,0x2e,0x32,0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x32,0x33,0x31,0x36,0x32,0x38, - 0x34,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x70,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x38, - 0x33,0x33,0x33,0x33,0x33,0x33,0x35,0x38,0x31,0x36,0x38,0x36,0x30,0x31,0x39,0x38, - 0x39,0x37,0x34,0x36,0x30,0x39,0x33,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x70,0x20,0x3d,0x20,0x28,0x6d,0x61,0x74,0x33,0x28,0x76,0x65,0x63,0x33,0x28,0x30, - 0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38, - 0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x31, - 0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35, - 0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d, - 0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35, - 0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32,0x30, - 0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31, - 0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37, - 0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35, - 0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30,0x30, - 0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32, - 0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35, - 0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c,0x20, - 0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37,0x37, - 0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29,0x20, - 0x2a,0x20,0x31,0x2e,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x36,0x31,0x35,0x38, - 0x31,0x34,0x32,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20, - 0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x36, - 0x33,0x20,0x3d,0x20,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x32,0x36,0x34,0x20,0x3d,0x20,0x5f,0x32,0x36,0x33,0x20,0x2b,0x20,0x28, - 0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20, - 0x2a,0x20,0x30,0x2e,0x30,0x34,0x31,0x36,0x36,0x36,0x36,0x36,0x37,0x39,0x30,0x38, - 0x34,0x33,0x30,0x30,0x39,0x39,0x34,0x38,0x37,0x33,0x30,0x34,0x36,0x38,0x37,0x35, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x3d,0x20,0x5f,0x32,0x36,0x34,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x36,0x34, - 0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x28,0x76,0x65, - 0x63,0x33,0x20,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2c,0x20,0x76,0x65,0x63,0x33,0x20, - 0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x32,0x38,0x39,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x6e, - 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29, - 0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x75,0x6e,0x70, - 0x6f,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, - 0x32,0x39,0x32,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28, - 0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x33,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x32, - 0x37,0x31,0x2e,0x73,0x6b,0x79,0x42,0x61,0x73,0x65,0x2c,0x20,0x5f,0x32,0x37,0x31, - 0x2e,0x73,0x6b,0x79,0x54,0x6f,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x63,0x6c, - 0x61,0x6d,0x70,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2e,0x79,0x20,0x2a,0x20,0x32, - 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39, - 0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31, - 0x38,0x37,0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x32,0x37,0x31,0x2e, - 0x73,0x75,0x6e,0x48,0x61,0x6c,0x6f,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28, - 0x28,0x5f,0x32,0x38,0x39,0x20,0x2d,0x20,0x30,0x2e,0x39,0x34,0x39,0x39,0x39,0x39, - 0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38, - 0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c, - 0x20,0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39, - 0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20, - 0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33, - 0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32,0x38,0x39,0x20,0x3e,0x20,0x30,0x2e, - 0x39,0x39,0x39,0x38,0x39,0x39,0x39,0x38,0x33,0x34,0x30,0x36,0x30,0x36,0x36,0x38, - 0x39,0x34,0x35,0x33,0x31,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x5f, - 0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x33, - 0x33,0x20,0x3d,0x20,0x5f,0x32,0x39,0x32,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x69,0x6e,0x61,0x6c,0x20,0x2b,0x3d,0x20,0x28,0x6d,0x69,0x78,0x28,0x5f,0x32, - 0x37,0x31,0x2e,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x48,0x61,0x6c,0x6f,0x2c,0x20, - 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, - 0x63,0x6c,0x61,0x6d,0x70,0x28,0x61,0x62,0x73,0x28,0x5f,0x33,0x33,0x33,0x29,0x20, - 0x2a,0x20,0x38,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, - 0x29,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30, - 0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35, - 0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32, - 0x37,0x31,0x2e,0x68,0x61,0x73,0x43,0x6c,0x6f,0x75,0x64,0x73,0x20,0x3d,0x3d,0x20, - 0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x28,0x28, - 0x5f,0x32,0x39,0x32,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x33,0x33,0x33, - 0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33, - 0x28,0x5f,0x32,0x37,0x31,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,0x20,0x30,0x2e,0x30, - 0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35, - 0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x36,0x39, - 0x20,0x3d,0x20,0x66,0x62,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d, - 0x69,0x78,0x28,0x66,0x69,0x6e,0x61,0x6c,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31, - 0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x6d,0x61,0x78,0x28,0x30, - 0x2e,0x30,0x2c,0x20,0x5f,0x33,0x33,0x33,0x29,0x20,0x2a,0x20,0x28,0x73,0x6d,0x6f, - 0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x35,0x2c,0x20,0x31,0x2e,0x30, - 0x2c,0x20,0x5f,0x33,0x36,0x39,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x30,0x30,0x30, - 0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37, - 0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x66,0x69,0x6e,0x61,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20, - 0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x28,0x76,0x65,0x63,0x33,0x20, - 0x4e,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x56,0x2c,0x20,0x76,0x65,0x63,0x33,0x20, - 0x72,0x64,0x6d,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x2c,0x20,0x76,0x65,0x63,0x33, - 0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68, - 0x6e,0x65,0x73,0x73,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61, - 0x6c,0x5f,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x6e,0x74,0x20,0x5f,0x37,0x33,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f, - 0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61, - 0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f, - 0x37,0x34,0x34,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x5f,0x74,0x6f,0x5f,0x72,0x64,0x6d,0x5f,0x73,0x69,0x7a,0x65,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x34,0x37,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x28,0x5f,0x37,0x34,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x6c,0x6f,0x63, - 0x61,0x6c,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x37, - 0x35,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c, - 0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x66,0x20,0x28,0x5f,0x37,0x35,0x33,0x2e,0x7a,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c, - 0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x34,0x20,0x3d,0x20,0x5f,0x37,0x35,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x37,0x33, - 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x36,0x20,0x3d,0x20,0x5f,0x37,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x76,0x65,0x63,0x32,0x20,0x5f,0x37,0x36,0x38,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f, - 0x66,0x61,0x63,0x65,0x5f,0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65, - 0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x38,0x30,0x38,0x20,0x3d,0x20,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28, - 0x56,0x2c,0x20,0x4e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3e,0x20,0x31,0x29,0x0a,0x20, + 0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e, + 0x74,0x28,0x4e,0x2e,0x7a,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30, + 0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35, + 0x29,0x20,0x2a,0x20,0x32,0x29,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x64, + 0x6f,0x74,0x28,0x76,0x65,0x63,0x33,0x28,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x30, + 0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e,0x30,0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e,0x3d, + 0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34, + 0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x33,0x29,0x29,0x20, + 0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x4e,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x30,0x2e, + 0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33, + 0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x34,0x29,0x29,0x20,0x2b,0x20,0x28, + 0x69,0x6e,0x74,0x28,0x64,0x6f,0x74,0x28,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e, + 0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x29,0x2c,0x20, + 0x4e,0x29,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31, + 0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a, + 0x20,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x76,0x65,0x63,0x32,0x20,0x72,0x64, + 0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66, + 0x73,0x65,0x74,0x28,0x76,0x65,0x63,0x34,0x20,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72, + 0x65,0x63,0x74,0x2c,0x20,0x69,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x2c,0x20,0x69, + 0x6e,0x74,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x37,0x30,0x30,0x20,0x3d,0x20,0x74, + 0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x69,0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61, + 0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x76,0x65,0x63, + 0x32,0x28,0x69,0x6e,0x74,0x28,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74, + 0x2e,0x78,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x37,0x30,0x30,0x2e, + 0x78,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x25,0x20,0x32, + 0x29,0x20,0x2a,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x2c,0x20,0x69,0x6e, + 0x74,0x28,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x2e,0x79,0x20,0x2a, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x37,0x30,0x30,0x2e,0x79,0x29,0x29,0x20, + 0x2b,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x2f,0x20,0x32,0x29,0x20,0x2a,0x20, + 0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65, + 0x63,0x32,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f, + 0x63,0x74,0x28,0x76,0x65,0x63,0x33,0x20,0x76,0x2c,0x20,0x69,0x6e,0x74,0x20,0x69, + 0x6e,0x64,0x65,0x78,0x2c,0x20,0x76,0x65,0x63,0x32,0x20,0x6f,0x66,0x66,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x63,0x20,0x3d,0x20, + 0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65, + 0x78,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, + 0x5f,0x31,0x39,0x33,0x39,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x33,0x39,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e, + 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x33,0x39, + 0x2e,0x79,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33,0x39,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64, + 0x65,0x78,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x31,0x39,0x34,0x33,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x34,0x33,0x2e,0x7a,0x20,0x3d,0x20,0x76, + 0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x34, + 0x33,0x2e,0x78,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x34,0x33,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e, + 0x64,0x65,0x78,0x20,0x25,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20, 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d, - 0x61,0x6c,0x69,0x7a,0x65,0x28,0x64,0x69,0x66,0x66,0x20,0x2b,0x20,0x28,0x5f,0x38, - 0x30,0x38,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20, - 0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x76, - 0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, - 0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d, - 0x70,0x2c,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x5f,0x37,0x36,0x38,0x29,0x20,0x2b, - 0x20,0x28,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63, - 0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x20,0x2a,0x20,0x5f, - 0x37,0x34,0x37,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x32,0x28,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x53,0x69,0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c, - 0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x29,0x29,0x2e, - 0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69, - 0x20,0x3c,0x20,0x34,0x30,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, - 0x38,0x37,0x37,0x20,0x3d,0x20,0x64,0x69,0x66,0x66,0x20,0x2b,0x20,0x28,0x5f,0x38, - 0x30,0x38,0x20,0x2a,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x69,0x20,0x2b,0x20, - 0x31,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x74,0x28,0x5f,0x38,0x37,0x37, - 0x2c,0x20,0x4e,0x29,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x38,0x37,0x37,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x31,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x32,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x38,0x39,0x32, - 0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f, - 0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f, - 0x39,0x31,0x37,0x20,0x3d,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68, - 0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d, - 0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x37,0x36,0x38,0x2e,0x78,0x20, - 0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x38,0x39,0x32,0x2e,0x78,0x20,0x2a,0x20,0x5f, - 0x37,0x34,0x37,0x29,0x2c,0x20,0x5f,0x37,0x36,0x38,0x2e,0x79,0x20,0x2b,0x20,0x69, - 0x6e,0x74,0x28,0x5f,0x38,0x39,0x32,0x2e,0x79,0x20,0x2a,0x20,0x5f,0x37,0x34,0x37, - 0x29,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x39,0x32,0x31,0x20,0x3d,0x20,0x5f,0x39,0x31, - 0x37,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x39,0x32,0x34,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68, - 0x28,0x5f,0x38,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x33,0x35,0x20,0x3d,0x20,0x28,0x5f,0x39,0x32, - 0x31,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x20,0x26,0x26,0x20,0x28,0x5f,0x39,0x32, - 0x31,0x20,0x3c,0x20,0x5f,0x39,0x32,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x34,0x33,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x33,0x35,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x39,0x34,0x33,0x20,0x3d,0x20,0x28,0x5f,0x39, - 0x32,0x31,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x3e,0x20,0x5f,0x39,0x32,0x34, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x39,0x34,0x33,0x20,0x3d,0x20,0x5f,0x39,0x33,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x39,0x34,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x5f,0x39,0x31,0x37,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x20,0x3d, - 0x20,0x5f,0x38,0x30,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x38,0x30,0x38,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6b,0x79,0x44,0x69, - 0x72,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x73,0x6b,0x79,0x44, - 0x69,0x72,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e, - 0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x33,0x20,0x3d,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20, - 0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6b,0x79, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x34,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x74,0x20,0x69,0x73,0x69, - 0x67,0x6e,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x66,0x29,0x0a,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x20,0x3c,0x20,0x30,0x2e, - 0x30,0x29,0x20,0x3f,0x20,0x28,0x2d,0x31,0x29,0x20,0x3a,0x20,0x31,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64, - 0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x76,0x65,0x63,0x33,0x20, - 0x4e,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70, - 0x6f,0x73,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63, - 0x6b,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x20,0x3d,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20, - 0x5f,0x39,0x37,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61, - 0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x66,0x20,0x28,0x5f,0x39,0x37,0x33,0x2e,0x7a,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x6e,0x74,0x20,0x5f,0x39,0x38,0x34,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f, - 0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61, - 0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x37,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x39,0x38,0x38,0x20,0x3d,0x20, - 0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x5f,0x74,0x6f, - 0x5f,0x72,0x64,0x6d,0x5f,0x73,0x69,0x7a,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x33,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x39,0x37,0x33,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20, - 0x5f,0x39,0x38,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x39,0x38,0x38,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x39,0x39,0x36,0x20,0x3d,0x20,0x72, - 0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f,0x66, - 0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x3b, + 0x33,0x20,0x5f,0x31,0x39,0x34,0x37,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x34,0x37,0x2e,0x7a,0x20,0x3d,0x20, + 0x5f,0x31,0x39,0x34,0x37,0x2e,0x7a,0x20,0x2a,0x20,0x28,0x2d,0x31,0x2e,0x30,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f, + 0x31,0x39,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x35,0x30,0x20,0x3d,0x20,0x76,0x63,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x31,0x20, + 0x3d,0x20,0x5f,0x31,0x39,0x35,0x30,0x2e,0x78,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e, + 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x35, + 0x32,0x20,0x3d,0x20,0x5f,0x31,0x39,0x35,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f, + 0x31,0x39,0x35,0x32,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x36,0x30,0x31,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x37,0x20,0x3d,0x20, + 0x5f,0x31,0x39,0x35,0x30,0x2e,0x79,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x79,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x35,0x32,0x2e,0x79,0x20,0x3d,0x20,0x5f, + 0x36,0x30,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31, + 0x39,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x36, + 0x32,0x35,0x20,0x3d,0x20,0x5f,0x31,0x39,0x35,0x32,0x2e,0x78,0x79,0x20,0x2a,0x20, + 0x28,0x31,0x2e,0x30,0x20,0x2f,0x20,0x28,0x28,0x61,0x62,0x73,0x28,0x5f,0x36,0x30, + 0x31,0x29,0x20,0x2b,0x20,0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x37,0x29,0x29,0x20, + 0x2b,0x20,0x5f,0x31,0x39,0x35,0x30,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x32,0x38,0x20,0x3d,0x20,0x5f,0x36, + 0x32,0x35,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x5f,0x36,0x33,0x30,0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e,0x79,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x32,0x28,0x28, + 0x28,0x5f,0x36,0x32,0x38,0x20,0x2b,0x20,0x5f,0x36,0x33,0x30,0x29,0x20,0x2b,0x20, + 0x31,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x2c,0x20,0x28,0x28,0x5f,0x36, + 0x32,0x38,0x20,0x2d,0x20,0x5f,0x36,0x33,0x30,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30, + 0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x68,0x61,0x73,0x68,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6e,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x72, + 0x61,0x63,0x74,0x28,0x73,0x69,0x6e,0x28,0x6e,0x29,0x20,0x2a,0x20,0x34,0x33,0x37, + 0x35,0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x76,0x65,0x63,0x33, + 0x20,0x78,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, + 0x31,0x32,0x39,0x20,0x3d,0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x78,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x37,0x20,0x3d, + 0x20,0x64,0x6f,0x74,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x78,0x29,0x2c,0x20,0x76, + 0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x31,0x35,0x37,0x2e,0x30,0x2c,0x20, + 0x31,0x31,0x33,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x30,0x20, + 0x3d,0x20,0x5f,0x31,0x32,0x39,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x31, + 0x33,0x37,0x20,0x2b,0x20,0x31,0x35,0x37,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20, + 0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x35,0x38,0x2e,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x36,0x20,0x3d,0x20,0x5f, + 0x31,0x32,0x39,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20, + 0x2b,0x20,0x31,0x31,0x33,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33, + 0x37,0x20,0x2b,0x20,0x31,0x31,0x34,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f, + 0x31,0x33,0x37,0x20,0x2b,0x20,0x32,0x37,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d, + 0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x32,0x37,0x31,0x2e,0x30,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69, + 0x78,0x28,0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29, + 0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x68,0x61,0x73, + 0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x2c,0x20,0x68,0x61,0x73,0x68, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29, + 0x2c,0x20,0x5f,0x31,0x36,0x36,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78, + 0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x2c,0x20, + 0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x5f, + 0x31,0x35,0x30,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x37,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x5f, + 0x31,0x36,0x36,0x29,0x2c,0x20,0x5f,0x31,0x32,0x39,0x2e,0x7a,0x29,0x3b,0x0a,0x7d, + 0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x66,0x62,0x6d,0x28,0x69,0x6e,0x6f,0x75, + 0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x66,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20, + 0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f, + 0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x6d,0x61,0x74,0x33, + 0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30, + 0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31, + 0x35,0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34, + 0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c, + 0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30, + 0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35, + 0x2c,0x20,0x30,0x2e,0x37,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30, + 0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39, + 0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38, + 0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d, + 0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31, + 0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39, + 0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38, + 0x35,0x39,0x33,0x37,0x35,0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39, + 0x37,0x31,0x33,0x38,0x39,0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29, + 0x29,0x20,0x2a,0x20,0x70,0x29,0x20,0x2a,0x20,0x31,0x2e,0x31,0x30,0x30,0x30,0x30, + 0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36, + 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20, + 0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x29,0x20,0x2a,0x20,0x30,0x2e,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x70,0x20,0x3d,0x20,0x28,0x6d,0x61,0x74,0x33,0x28,0x76,0x65,0x63,0x33,0x28, + 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33, + 0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20, + 0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31, + 0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, + 0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38, + 0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32, + 0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32, + 0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39, + 0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37, + 0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30, + 0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31, + 0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38, + 0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c, + 0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37, + 0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29, + 0x20,0x2a,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38, + 0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20, + 0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f, + 0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x20,0x2a,0x20,0x30, + 0x2e,0x31,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x31,0x36,0x33,0x33,0x37,0x32,0x30, + 0x33,0x39,0x37,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x6d,0x61,0x74,0x33,0x28,0x76,0x65,0x63,0x33, + 0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32, + 0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c, + 0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37, + 0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33, + 0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31, + 0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37, + 0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39, + 0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39, + 0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33, + 0x37,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30, + 0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33, + 0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37, + 0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35, + 0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39, + 0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70, + 0x29,0x20,0x2a,0x20,0x31,0x2e,0x32,0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x32,0x33, + 0x31,0x36,0x32,0x38,0x34,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d, + 0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e, + 0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x20,0x2a,0x20, + 0x30,0x2e,0x30,0x38,0x33,0x33,0x33,0x33,0x33,0x33,0x35,0x38,0x31,0x36,0x38,0x36, + 0x30,0x31,0x39,0x38,0x39,0x37,0x34,0x36,0x30,0x39,0x33,0x37,0x35,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x6d,0x61,0x74,0x33,0x28,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30, + 0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32, + 0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38, + 0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38, + 0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30, + 0x2e,0x37,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39, + 0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39, + 0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35, + 0x39,0x33,0x37,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x32, + 0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32, + 0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39, + 0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33, + 0x37,0x35,0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33, + 0x38,0x39,0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a, + 0x20,0x70,0x29,0x20,0x2a,0x20,0x31,0x2e,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x37, + 0x36,0x31,0x35,0x38,0x31,0x34,0x32,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x37,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x39,0x38,0x34,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20, - 0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x30,0x30,0x33,0x20,0x3d,0x20,0x72,0x64, - 0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x31,0x30,0x31,0x30,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x28,0x5f,0x39,0x38,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, - 0x75,0x72,0x6e,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x72, - 0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c, - 0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x39,0x39,0x36,0x2e,0x78,0x20,0x2b,0x20, - 0x69,0x6e,0x74,0x28,0x5f,0x31,0x30,0x30,0x33,0x2e,0x78,0x20,0x2a,0x20,0x5f,0x31, - 0x30,0x31,0x30,0x29,0x2c,0x20,0x5f,0x39,0x39,0x36,0x2e,0x79,0x20,0x2b,0x20,0x69, - 0x6e,0x74,0x28,0x5f,0x31,0x30,0x30,0x33,0x2e,0x79,0x20,0x2a,0x20,0x5f,0x31,0x30, - 0x31,0x30,0x29,0x29,0x2c,0x20,0x30,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,0x0a, - 0x0a,0x76,0x65,0x63,0x33,0x20,0x73,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x20, - 0x61,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x62,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x6d,0x69,0x78,0x28,0x61,0x2c,0x20,0x62,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, + 0x34,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x32,0x36,0x33,0x20,0x3d,0x20,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x34,0x20,0x3d,0x20,0x5f,0x32,0x36,0x33, + 0x20,0x2b,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x34,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x34,0x31,0x36,0x36,0x36,0x36,0x36, + 0x37,0x39,0x30,0x38,0x34,0x33,0x30,0x30,0x39,0x39,0x34,0x38,0x37,0x33,0x30,0x34, + 0x36,0x38,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x3d,0x20,0x5f, + 0x32,0x36,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, + 0x5f,0x32,0x36,0x34,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x73,0x6b, + 0x79,0x28,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2c,0x20,0x76, + 0x65,0x63,0x33,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x38,0x39,0x20,0x3d,0x20,0x64, + 0x6f,0x74,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79, + 0x70,0x6f,0x73,0x29,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28, + 0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x33,0x20,0x5f,0x32,0x39,0x32,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c, + 0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69, + 0x78,0x28,0x5f,0x32,0x37,0x31,0x2e,0x73,0x6b,0x79,0x42,0x61,0x73,0x65,0x2c,0x20, + 0x5f,0x32,0x37,0x31,0x2e,0x73,0x6b,0x79,0x54,0x6f,0x70,0x2c,0x20,0x76,0x65,0x63, + 0x33,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2e,0x79, + 0x20,0x2a,0x20,0x32,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x36, + 0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34, + 0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f, + 0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x48,0x61,0x6c,0x6f,0x20,0x2a,0x20,0x63,0x6c, + 0x61,0x6d,0x70,0x28,0x28,0x5f,0x32,0x38,0x39,0x20,0x2d,0x20,0x30,0x2e,0x39,0x34, + 0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34, + 0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x2c,0x20, + 0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31, + 0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29, + 0x29,0x20,0x2a,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39, + 0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32,0x38,0x39,0x20, + 0x3e,0x20,0x30,0x2e,0x39,0x39,0x39,0x38,0x39,0x39,0x39,0x38,0x33,0x34,0x30,0x36, + 0x30,0x36,0x36,0x38,0x39,0x34,0x35,0x33,0x31,0x32,0x35,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c, + 0x20,0x3d,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x33,0x33,0x33,0x20,0x3d,0x20,0x5f,0x32,0x39,0x32,0x2e,0x79,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x2b,0x3d,0x20,0x28,0x6d,0x69, + 0x78,0x28,0x5f,0x32,0x37,0x31,0x2e,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x48,0x61, + 0x6c,0x6f,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76, + 0x65,0x63,0x33,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x61,0x62,0x73,0x28,0x5f,0x33, + 0x33,0x33,0x29,0x20,0x2a,0x20,0x38,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c, + 0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30, + 0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38, + 0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x32,0x37,0x31,0x2e,0x68,0x61,0x73,0x43,0x6c,0x6f,0x75,0x64,0x73, + 0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20, + 0x3d,0x20,0x28,0x28,0x5f,0x32,0x39,0x32,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28, + 0x5f,0x33,0x33,0x33,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x20,0x2b,0x20, + 0x76,0x65,0x63,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a, + 0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30, + 0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x5f,0x33,0x36,0x39,0x20,0x3d,0x20,0x66,0x62,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c, + 0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x69,0x6e,0x61,0x6c,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x6d, + 0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x33,0x33,0x33,0x29,0x20,0x2a,0x20, + 0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x35,0x2c, + 0x20,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x33,0x36,0x39,0x29,0x20,0x2a,0x20,0x30,0x2e, + 0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39, + 0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x66,0x69,0x6e,0x61,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a,0x76, + 0x65,0x63,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x28,0x76, + 0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x56,0x2c,0x20,0x76, + 0x65,0x63,0x33,0x20,0x72,0x64,0x6d,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x20, + 0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x4e,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x37,0x33,0x39,0x20,0x3d,0x20, + 0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20, + 0x3d,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x34,0x20,0x5f,0x37,0x34,0x35,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65, + 0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x34,0x37,0x20,0x3d, + 0x20,0x5f,0x37,0x34,0x35,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x5f,0x37,0x34,0x37,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, + 0x72,0x6e,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30, + 0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x37,0x36,0x37,0x20,0x3d,0x20,0x69,0x6e,0x74, + 0x28,0x5f,0x37,0x34,0x37,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x53,0x69,0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74, + 0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x2e,0x78, + 0x29,0x29,0x20,0x2f,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x37,0x37,0x30,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f, + 0x37,0x36,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x37,0x34,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d, + 0x20,0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x37,0x36,0x37,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x37,0x37,0x38,0x20,0x3d,0x20, + 0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f, + 0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x38,0x31,0x38,0x20, + 0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x72,0x65,0x66,0x6c, + 0x65,0x63,0x74,0x28,0x56,0x2c,0x20,0x4e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3e,0x20, + 0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x64,0x69,0x66,0x66,0x20,0x2b, + 0x20,0x28,0x5f,0x38,0x31,0x38,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38, + 0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72, + 0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x5f,0x37,0x37, + 0x38,0x29,0x20,0x2b,0x20,0x28,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65, + 0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29, + 0x20,0x2a,0x20,0x5f,0x37,0x37,0x30,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x32, + 0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x69,0x7a,0x65,0x28,0x72,0x64,0x6d, + 0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30, + 0x29,0x29,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x20,0x3d,0x20, + 0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x34,0x30,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x33,0x20,0x5f,0x38,0x38,0x37,0x20,0x3d,0x20,0x64,0x69,0x66,0x66,0x20,0x2b, + 0x20,0x28,0x5f,0x38,0x31,0x38,0x20,0x2a,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28, + 0x69,0x20,0x2b,0x20,0x31,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x74,0x28, + 0x5f,0x38,0x38,0x37,0x2c,0x20,0x4e,0x29,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d, + 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x38,0x38,0x37,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f, + 0x39,0x32,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x72,0x64, + 0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20, + 0x28,0x76,0x65,0x63,0x32,0x28,0x5f,0x37,0x37,0x38,0x29,0x20,0x2b,0x20,0x28,0x72, + 0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x29,0x20,0x2a,0x20,0x5f,0x37, + 0x37,0x30,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x32,0x28,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x53,0x69,0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61, + 0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x29,0x2c,0x20,0x30, + 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x39,0x32,0x38,0x20,0x3d,0x20,0x5f,0x39,0x32,0x34,0x2e,0x77, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x5f,0x39,0x33,0x31,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x38, + 0x38,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, + 0x6c,0x20,0x5f,0x39,0x34,0x32,0x20,0x3d,0x20,0x28,0x5f,0x39,0x32,0x38,0x20,0x3e, + 0x20,0x30,0x2e,0x30,0x29,0x20,0x26,0x26,0x20,0x28,0x5f,0x39,0x32,0x38,0x20,0x3c, + 0x20,0x5f,0x39,0x33,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x35,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x34,0x32,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x39,0x35,0x30,0x20,0x3d,0x20,0x28,0x5f,0x39,0x32,0x38,0x20, + 0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x3e,0x20,0x5f,0x39,0x33,0x31,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x39,0x35,0x30, + 0x20,0x3d,0x20,0x5f,0x39,0x34,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x39,0x35,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, + 0x6e,0x20,0x5f,0x39,0x32,0x34,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x20,0x3d,0x20,0x5f,0x38, + 0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x38,0x31,0x38, + 0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x20,0x3d, + 0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x73,0x6b,0x79,0x44,0x69,0x72,0x2c, + 0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20, + 0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d, + 0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x5f,0x32,0x37, + 0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6b,0x79,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33, + 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x74,0x20,0x69,0x73,0x69,0x67,0x6e,0x28, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x66,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x20, + 0x3f,0x20,0x28,0x2d,0x31,0x29,0x20,0x3a,0x20,0x31,0x3b,0x0a,0x7d,0x0a,0x0a,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x5f,0x74, + 0x6f,0x5f,0x72,0x64,0x6d,0x5f,0x73,0x69,0x7a,0x65,0x28,0x69,0x6e,0x74,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x6f,0x77,0x28,0x32,0x2e,0x30,0x2c,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x28,0x38,0x20,0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x73, + 0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d, + 0x61,0x70,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x69,0x76,0x65,0x63,0x33, + 0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x76,0x65,0x63,0x33, + 0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6c, + 0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x37,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x39,0x38,0x30,0x20,0x3d,0x20,0x72, + 0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63, + 0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x38,0x30,0x2e, + 0x7a,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66, + 0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20, + 0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x39,0x39, + 0x31,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72, + 0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, + 0x20,0x5f,0x39,0x39,0x35,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x67, + 0x68,0x6e,0x65,0x73,0x73,0x5f,0x74,0x6f,0x5f,0x72,0x64,0x6d,0x5f,0x73,0x69,0x7a, + 0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20, + 0x5f,0x39,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x39,0x39,0x31,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20, + 0x5f,0x39,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20, + 0x5f,0x31,0x30,0x30,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65, + 0x5f,0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x4e,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20, + 0x3d,0x20,0x5f,0x39,0x39,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28, + 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f, + 0x31,0x30,0x31,0x30,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68, + 0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x30, + 0x31,0x37,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x39,0x39,0x35,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x78, + 0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61, + 0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28, + 0x5f,0x31,0x30,0x30,0x33,0x2e,0x78,0x20,0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x31, + 0x30,0x31,0x30,0x2e,0x78,0x20,0x2a,0x20,0x5f,0x31,0x30,0x31,0x37,0x29,0x2c,0x20, + 0x5f,0x31,0x30,0x30,0x33,0x2e,0x79,0x20,0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x31, + 0x30,0x31,0x30,0x2e,0x79,0x20,0x2a,0x20,0x5f,0x31,0x30,0x31,0x37,0x29,0x29,0x2c, + 0x20,0x30,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33, + 0x20,0x73,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x20,0x61,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x20,0x62,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x74,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x69,0x78,0x28, + 0x61,0x2c,0x20,0x62,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x70,0x6f,0x77,0x28,0x74, + 0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31, + 0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2f,0x20,0x28, 0x70,0x6f,0x77,0x28,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30, 0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35, - 0x29,0x20,0x2f,0x20,0x28,0x70,0x6f,0x77,0x28,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30, - 0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30, - 0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x70,0x6f,0x77,0x28,0x31,0x2e,0x30, - 0x20,0x2d,0x20,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32, - 0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29, - 0x29,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x28,0x76,0x65,0x63, - 0x33,0x20,0x4e,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x64,0x69,0x66,0x66,0x2c,0x20, - 0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x29, - 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f, - 0x31,0x30,0x36,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78, - 0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x64,0x65, - 0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30,0x37,0x32,0x20, - 0x3d,0x20,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7c, - 0x7c,0x20,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x31,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x37,0x32,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c, - 0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x78, - 0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x30, - 0x36,0x33,0x20,0x3d,0x3d,0x20,0x32,0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f,0x31,0x30, - 0x36,0x33,0x20,0x3d,0x3d,0x20,0x33,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66, - 0x66,0x2e,0x78,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x29,0x20,0x2b,0x20,0x70,0x6f,0x77,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x74,0x2c, + 0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38, + 0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x29,0x29,0x29,0x3b,0x0a, + 0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72, + 0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x69,0x76,0x65,0x63,0x33, + 0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x4e, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x30,0x37,0x30,0x20, + 0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d, + 0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d, + 0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30,0x37,0x39,0x20,0x3d,0x20,0x28,0x5f,0x31, + 0x30,0x37,0x30,0x20,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f,0x31, + 0x30,0x37,0x30,0x20,0x3d,0x3d,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x5f,0x31,0x30,0x37,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20, + 0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x78,0x2c,0x20,0x64,0x69,0x66, + 0x66,0x2e,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d,0x3d, + 0x20,0x32,0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d,0x3d, + 0x20,0x33,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61, - 0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x7a,0x2c,0x20, + 0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x78,0x2c,0x20, 0x64,0x69,0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65, - 0x63,0x33,0x20,0x73,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33, - 0x20,0x73,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x73, - 0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x37,0x32, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20, - 0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x69,0x73,0x69,0x67, - 0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61, - 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d, - 0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69, - 0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69,0x76,0x65, - 0x63,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, - 0x29,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x34,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d, - 0x3d,0x20,0x32,0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d, - 0x3d,0x20,0x33,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74, - 0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x69,0x73,0x69,0x67, - 0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x64, - 0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30, - 0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29, - 0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20, - 0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20,0x3d, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65, + 0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x7a,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e, + 0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x73,0x31, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x73,0x32,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x73,0x33,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x37,0x39,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61, + 0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d, 0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x37,0x29,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x38,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20, - 0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73, - 0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74, - 0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x69, - 0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x29,0x2c,0x20, - 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d, - 0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20,0x3d, + 0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x76,0x65,0x63, + 0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d, + 0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20, + 0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x69,0x73, + 0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20,0x30,0x2c, + 0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x28,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d,0x3d,0x20,0x32,0x29,0x20, + 0x7c,0x7c,0x20,0x28,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d,0x3d,0x20,0x33,0x29,0x29, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d, + 0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e, + 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73, + 0x32,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69, + 0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x2c,0x20,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x64,0x65,0x6c, + 0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20, + 0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69,0x76,0x65,0x63, + 0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29, + 0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29, + 0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39, + 0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d, 0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x29,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d, - 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d, - 0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f, - 0x73,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x35,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30, - 0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30, - 0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30, - 0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32, - 0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36, - 0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x36,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x69,0x76,0x65, - 0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61, - 0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x31,0x29,0x2c,0x20,0x76,0x65,0x63, - 0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x76, - 0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39, - 0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20, - 0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32, - 0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30, - 0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37, - 0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d,0x20,0x4e,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x30,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28, - 0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b, - 0x20,0x73,0x32,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33, - 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35, - 0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30, - 0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38, - 0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35, - 0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76, - 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x69, - 0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28,0x6c,0x6f, - 0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x33,0x29,0x2c,0x20,0x76, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74, + 0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20, + 0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69,0x76,0x65,0x63, + 0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x31,0x29,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x34,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x76,0x65, + 0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x29,0x2c,0x20,0x76, 0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d, 0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31, 0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35, 0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30, 0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e, 0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34, 0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20, - 0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f, - 0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64, - 0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x20,0x3d,0x20,0x61, - 0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x20,0x3d, - 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66, - 0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x39,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72, - 0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x20,0x3d,0x20, - 0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x20, - 0x3d,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x20,0x3d,0x20,0x73,0x6d,0x69,0x78,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33, - 0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6d,0x69,0x78, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x29,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x36,0x39,0x20, - 0x3d,0x20,0x76,0x70,0x6f,0x73,0x2e,0x79,0x20,0x3c,0x20,0x28,0x5f,0x32,0x37,0x31, - 0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x20,0x2d,0x20,0x30, - 0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32, - 0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x37,0x39,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x36,0x39,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, - 0x32,0x37,0x39,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x69,0x73,0x5f,0x72, - 0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32, - 0x37,0x39,0x20,0x3d,0x20,0x5f,0x31,0x32,0x36,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x37,0x39,0x29, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64, - 0x69,0x73,0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72, - 0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x20,0x3d,0x20,0x69,0x70,0x6f,0x73,0x20,0x2d, - 0x20,0x28,0x6f,0x72,0x69,0x67,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x2a,0x20, - 0x30,0x2e,0x30,0x31,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x35,0x32,0x39,0x36, - 0x35,0x31,0x36,0x34,0x31,0x38,0x34,0x35,0x37,0x30,0x33,0x31,0x32,0x35,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3d, - 0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x69, - 0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3c, - 0x20,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x33,0x33,0x32,0x20,0x3d,0x20,0x74, - 0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x74,0x72,0x69,0x6c,0x65,0x74, - 0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65, - 0x63,0x32,0x28,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x70,0x6f,0x73, - 0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x2e,0x7a,0x2c, - 0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37, - 0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31, - 0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39, - 0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29, - 0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x2c,0x20,0x69,0x6e,0x74,0x28,0x63,0x6c, - 0x61,0x6d,0x70,0x28,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64, - 0x6a,0x75,0x73,0x74,0x2e,0x79,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39, - 0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34, - 0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30, - 0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37, - 0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20, - 0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x70,0x6f,0x73, - 0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x2e,0x78,0x2c, - 0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37, - 0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31, - 0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39, - 0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29, - 0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x31,0x36,0x29,0x29,0x2c, - 0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69, - 0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x20,0x3d,0x20,0x5f, - 0x31,0x33,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x31,0x33,0x33,0x32,0x29,0x20, - 0x3e,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36, - 0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32, - 0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75, - 0x73,0x74,0x20,0x2b,0x3d,0x20,0x28,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72, - 0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39, - 0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x75,0x6e,0x74, - 0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, - 0x74,0x20,0x5f,0x31,0x33,0x35,0x35,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f, - 0x75,0x6e,0x64,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72, - 0x69,0x61,0x6c,0x2e,0x77,0x20,0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74, - 0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74, - 0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x30,0x35, - 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39, - 0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d, - 0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f, - 0x31,0x33,0x35,0x35,0x20,0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d, - 0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, - 0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x31, - 0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34,0x30,0x31, - 0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39,0x31,0x34, - 0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x37,0x35,0x20,0x3d,0x20,0x28, - 0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x35,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, - 0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x33, - 0x37,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34, - 0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31, - 0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37, - 0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31, - 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74, - 0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f, - 0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20, - 0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37, - 0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31, - 0x33,0x39,0x32,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61, - 0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x31,0x33,0x39,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x32,0x2e, - 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33, - 0x39,0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x32,0x2e,0x79,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x39,0x37,0x20,0x3d,0x20,0x5f, - 0x31,0x33,0x39,0x34,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x39,0x36,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x30,0x35,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x39,0x37,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x30, - 0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x34,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33, - 0x39,0x32,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x31,0x34,0x30,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x37, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x30, - 0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x69,0x67,0x6e,0x28,0x66, - 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, - 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x31,0x38,0x20,0x3d,0x20, - 0x5f,0x31,0x33,0x39,0x36,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x39,0x34,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34, - 0x32,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x31,0x34,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34, - 0x32,0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x36,0x20,0x3e,0x3d,0x20,0x5f,0x31, - 0x33,0x39,0x32,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20, + 0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f, + 0x64,0x28,0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73, + 0x20,0x2b,0x20,0x73,0x31,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e, + 0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38, + 0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30, + 0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30, + 0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36, + 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d, + 0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28, + 0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x32,0x29,0x2c, + 0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31, + 0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30, + 0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31, + 0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39, + 0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20, + 0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36, + 0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20, + 0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28, + 0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70, + 0x6f,0x73,0x20,0x2b,0x20,0x73,0x33,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33, + 0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x76,0x65,0x63,0x33, + 0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39, + 0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33, + 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35, + 0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30, + 0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39, + 0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c, + 0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20, + 0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66, + 0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65, + 0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39, + 0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69, + 0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64, + 0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x20,0x3d,0x20,0x73,0x6d,0x69, + 0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x33,0x32,0x20,0x3d,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x33,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x20,0x3d,0x20,0x61,0x62, + 0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f, + 0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x37,0x36,0x20,0x3d,0x20,0x76,0x70,0x6f, + 0x73,0x2e,0x79,0x20,0x3c,0x20,0x28,0x5f,0x32,0x37,0x31,0x2e,0x70,0x6c,0x61,0x6e, + 0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x39,0x39, + 0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39, + 0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x37,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x38,0x36,0x20,0x3d, + 0x20,0x5f,0x31,0x32,0x38,0x32,0x2e,0x69,0x73,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63, + 0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x38,0x36,0x20,0x3d,0x20, + 0x5f,0x31,0x32,0x37,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x38,0x36,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72, + 0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x33,0x20,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75, + 0x73,0x74,0x20,0x3d,0x20,0x69,0x70,0x6f,0x73,0x20,0x2d,0x20,0x28,0x6f,0x72,0x69, + 0x67,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x2a,0x20,0x30,0x2e,0x30,0x31,0x39, + 0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x35,0x32,0x39,0x36,0x35,0x31,0x36,0x34,0x31, + 0x38,0x34,0x35,0x37,0x30,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x6e,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d, + 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69, + 0x6c,0x65,0x20,0x28,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3c,0x20,0x35,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x34,0x20,0x5f,0x31,0x33,0x33,0x39,0x20,0x3d,0x20,0x74,0x65,0x78,0x65,0x6c,0x46, + 0x65,0x74,0x63,0x68,0x28,0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x5f,0x74,0x72, + 0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x69,0x6e, + 0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65, + 0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x2e,0x7a,0x2c,0x20,0x39,0x2e,0x39,0x39, + 0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35, + 0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30, + 0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31, + 0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36, + 0x2e,0x30,0x29,0x2c,0x20,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x70, + 0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x2e, + 0x79,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37, + 0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36, + 0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39, + 0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37, + 0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e, + 0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65, + 0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x2e,0x78,0x2c,0x20,0x39,0x2e,0x39,0x39, + 0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35, + 0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30, + 0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31, + 0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36, + 0x2e,0x30,0x29,0x20,0x2a,0x20,0x31,0x36,0x29,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d, + 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x31,0x33,0x33,0x39,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x65,0x6e, + 0x67,0x74,0x68,0x28,0x5f,0x31,0x33,0x33,0x39,0x29,0x20,0x3e,0x20,0x30,0x2e,0x30, + 0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38, + 0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x32,0x36,0x20,0x3d,0x20,0x5f,0x31,0x34,0x31, - 0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x32,0x36,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30, - 0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c, - 0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33, - 0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28, - 0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x34,0x33,0x20,0x3d,0x20,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d,0x20,0x2d,0x20,0x76,0x70, - 0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31, - 0x34,0x34,0x37,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28, - 0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x35, - 0x32,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31, - 0x34,0x34,0x33,0x20,0x2b,0x20,0x5f,0x31,0x34,0x34,0x37,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x36,0x30,0x20,0x3d,0x20,0x6d, - 0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39, - 0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31, - 0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d, - 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63, - 0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20, - 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x34,0x35,0x32,0x2c,0x20,0x5f, - 0x31,0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20, - 0x5f,0x31,0x34,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x5f,0x31,0x34,0x36,0x39,0x20,0x3d,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53, - 0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d, - 0x20,0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20, - 0x5f,0x31,0x34,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x34,0x34,0x37,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x30,0x33,0x20, - 0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34, - 0x34,0x37,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x34,0x20,0x5f,0x31,0x35,0x33,0x36,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37, - 0x35,0x2e,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x76, - 0x65,0x63,0x34,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x76,0x70,0x6f,0x73,0x20,0x2a, - 0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, - 0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x34,0x37,0x20,0x3d,0x20,0x28,0x28, - 0x5f,0x31,0x35,0x33,0x36,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20,0x76,0x65,0x63,0x33, - 0x28,0x5f,0x31,0x35,0x33,0x36,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35, - 0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x35,0x31,0x20,0x3d, - 0x20,0x5f,0x31,0x35,0x34,0x37,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31, - 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33, - 0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x30,0x36,0x20,0x3d, - 0x20,0x5f,0x31,0x35,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x30, - 0x36,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x35,0x35,0x31,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x28,0x28, - 0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20, - 0x2d,0x20,0x5f,0x31,0x34,0x36,0x39,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20, - 0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x74, - 0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78, - 0x79,0x7a,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38, - 0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36, - 0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x39,0x20, - 0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47, - 0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20, - 0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38, - 0x29,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x28,0x34,0x2e,0x30, - 0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31, - 0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31, - 0x35,0x30,0x33,0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37, - 0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35, - 0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20, - 0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77, - 0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,0x76, - 0x65,0x63,0x33,0x28,0x5f,0x31,0x39,0x30,0x36,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x31, - 0x35,0x35,0x31,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x35,0x30,0x33,0x29,0x20, - 0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43, - 0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e, - 0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x38,0x38,0x20,0x3d,0x20,0x74,0x72,0x69,0x6c, - 0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a,0x20,0x30, - 0x2e,0x34,0x39,0x30,0x30,0x30,0x30,0x30,0x30,0x39,0x35,0x33,0x36,0x37,0x34,0x33, - 0x31,0x36,0x34,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x39,0x34,0x20,0x3d,0x20,0x69,0x76,0x65,0x63, - 0x33,0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x74,0x72,0x69,0x6c, - 0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33, - 0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39, - 0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x30,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49, - 0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x36, - 0x32,0x30,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x73,0x61, - 0x6f,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x76, - 0x65,0x63,0x32,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64, - 0x2e,0x78,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x37,0x35, - 0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x67,0x6c,0x5f,0x46, - 0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2f,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f, - 0x68,0x29,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36, - 0x32,0x30,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f, - 0x31,0x36,0x33,0x31,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d, - 0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36,0x33,0x37,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36,0x33,0x31,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x33, - 0x37,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61, - 0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x29,0x2e,0x7a,0x20,0x3e,0x20,0x30,0x2e, - 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x31,0x36,0x33,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36,0x33,0x31,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36, - 0x33,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31, - 0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31, - 0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x35, - 0x30,0x20,0x3d,0x20,0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69, - 0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x35,0x37,0x20,0x3d,0x20, - 0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x5f,0x31,0x35,0x38,0x38,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73, + 0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x20,0x2b,0x3d, + 0x20,0x28,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x2a,0x20,0x30,0x2e, + 0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31, + 0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33, + 0x36,0x32,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x6e,0x64,0x28,0x74, + 0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x77, + 0x20,0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20, + 0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68, + 0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38, + 0x32,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x33,0x36,0x32,0x20, + 0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e, + 0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x36, + 0x32,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x31,0x32,0x37,0x29,0x20,0x2a, + 0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34,0x30,0x31,0x35,0x37,0x31,0x38,0x36, + 0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x74,0x20,0x5f,0x31,0x33,0x38,0x32,0x20,0x3d,0x20,0x28,0x5f,0x31,0x33,0x36,0x32, + 0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74, + 0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x6d,0x61, + 0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x33,0x38,0x32,0x29,0x20,0x2a, + 0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33, + 0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30, + 0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38, + 0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63, + 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x36,0x32,0x20, + 0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33, + 0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39, + 0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x33,0x39,0x39,0x20,0x3d, + 0x20,0x61,0x62,0x73,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x34, + 0x30,0x31,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x39,0x2e,0x78,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x34,0x30,0x33,0x20,0x3d,0x20, + 0x5f,0x31,0x33,0x39,0x39,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, + 0x6c,0x20,0x5f,0x31,0x34,0x30,0x34,0x20,0x3d,0x20,0x5f,0x31,0x34,0x30,0x31,0x20, + 0x3e,0x3d,0x20,0x5f,0x31,0x34,0x30,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, + 0x6f,0x6c,0x20,0x5f,0x31,0x34,0x31,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x31,0x34,0x30,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x31,0x32,0x20,0x3d,0x20,0x5f, + 0x31,0x34,0x30,0x31,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x39,0x39,0x2e,0x7a,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, + 0x34,0x31,0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x31,0x32,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20, + 0x76,0x65,0x63,0x33,0x28,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61, + 0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f, + 0x6f,0x6c,0x20,0x5f,0x31,0x34,0x32,0x35,0x20,0x3d,0x20,0x5f,0x31,0x34,0x30,0x33, + 0x20,0x3e,0x3d,0x20,0x5f,0x31,0x34,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x33,0x33,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x32,0x35, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x33,0x33,0x20,0x3d,0x20, + 0x5f,0x31,0x34,0x30,0x33,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x39,0x39,0x2e,0x7a, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x31,0x34,0x33,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x32,0x35,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x33,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x73, + 0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x79,0x29,0x2c,0x20, + 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c, + 0x20,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d, + 0x61,0x6c,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x31,0x34,0x35,0x30,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69, + 0x7a,0x65,0x28,0x63,0x61,0x6d,0x20,0x2d,0x20,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x35,0x34,0x20,0x3d, + 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x37,0x31,0x2e, + 0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x35,0x39,0x20,0x3d,0x20,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31,0x34,0x35,0x30,0x20,0x2b, + 0x20,0x5f,0x31,0x34,0x35,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x33,0x20,0x5f,0x31,0x34,0x36,0x37,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30, + 0x35,0x39,0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35, + 0x29,0x2c,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69, + 0x61,0x6c,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x65,0x74, + 0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64, + 0x6f,0x74,0x28,0x5f,0x31,0x34,0x35,0x39,0x2c,0x20,0x5f,0x31,0x34,0x35,0x30,0x29, + 0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x31,0x34,0x36,0x37, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x37,0x36, + 0x20,0x3d,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63, + 0x6b,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35, + 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x30, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20, + 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x31,0x30,0x20,0x3d,0x20,0x6d,0x61,0x78, + 0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x35,0x34,0x29,0x2c,0x20, + 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f, + 0x31,0x35,0x34,0x33,0x20,0x3d,0x20,0x5f,0x31,0x32,0x38,0x32,0x2e,0x6d,0x76,0x70, + 0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x66, + 0x6c,0x6f,0x6f,0x72,0x28,0x76,0x70,0x6f,0x73,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30, + 0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x36,0x32,0x35,0x29, + 0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x31,0x35,0x35,0x34,0x20,0x3d,0x20,0x28,0x28,0x5f,0x31,0x35,0x34,0x33, + 0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x35,0x34, + 0x33,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76, + 0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x35,0x38,0x20,0x3d,0x20,0x5f,0x31,0x35,0x35, + 0x34,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39, + 0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x32,0x34,0x20,0x3d,0x20,0x5f,0x31,0x35,0x35, + 0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x34,0x2e,0x7a,0x20,0x3d, + 0x20,0x5f,0x31,0x35,0x35,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28, + 0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x34, + 0x37,0x36,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74, + 0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c, + 0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a, + 0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31, + 0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29, + 0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x34,0x37,0x36,0x20,0x2a,0x20,0x28,0x44,0x69, + 0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65, + 0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f, + 0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x6d,0x61, + 0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x35,0x30,0x29,0x2c, + 0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x35,0x31,0x30,0x29,0x20, + 0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38, + 0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37, + 0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x5f,0x73, + 0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f, + 0x31,0x39,0x32,0x34,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x31,0x35,0x35,0x38,0x29,0x29, + 0x29,0x20,0x2a,0x20,0x5f,0x31,0x35,0x31,0x30,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37, + 0x31,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29, + 0x20,0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e, + 0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, + 0x31,0x35,0x39,0x35,0x20,0x3d,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74, + 0x65,0x72,0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a,0x20,0x30,0x2e,0x34,0x39,0x30,0x30, + 0x30,0x30,0x30,0x30,0x39,0x35,0x33,0x36,0x37,0x34,0x33,0x31,0x36,0x34,0x30,0x36, + 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x5f, + 0x31,0x36,0x30,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64, + 0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74, + 0x65,0x72,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31,0x36,0x30,0x31,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d, + 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x36,0x32,0x37,0x20,0x3d,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f, + 0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x67, + 0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78,0x20,0x2f,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x38,0x32,0x2e,0x73,0x63,0x72,0x65, + 0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f, + 0x6f,0x72,0x64,0x2e,0x79,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31, + 0x32,0x38,0x32,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x68,0x29,0x29,0x2c,0x20, + 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x5f,0x31,0x36,0x32,0x38,0x20,0x3d,0x20,0x5f,0x31,0x36,0x32,0x37,0x2e,0x78,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36,0x33,0x38,0x20, + 0x3d,0x20,0x5f,0x31,0x32,0x38,0x32,0x2e,0x72,0x64,0x6d,0x5f,0x65,0x6e,0x61,0x62, + 0x6c,0x65,0x64,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, + 0x6f,0x6c,0x20,0x5f,0x31,0x36,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x31,0x36,0x33,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x34,0x34,0x20,0x3d,0x20,0x72, + 0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63, + 0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x30,0x29,0x2e,0x7a,0x20,0x3e,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x34,0x34, + 0x20,0x3d,0x20,0x5f,0x31,0x36,0x33,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36,0x34,0x34,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x6d,0x61, + 0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x35,0x30,0x29,0x2c, + 0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f, + 0x31,0x34,0x36,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x35,0x37,0x20,0x3d,0x20,0x46, + 0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75, + 0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x33,0x20,0x5f,0x31,0x36,0x36,0x34,0x20,0x3d,0x20,0x76,0x70,0x6f,0x73,0x20, + 0x2d,0x20,0x5f,0x31,0x35,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d, + 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x2d,0x63,0x76,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36,0x36,0x34,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49, + 0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d,0x20,0x5f,0x31,0x36, + 0x30,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x31,0x36,0x37,0x39,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f, + 0x72,0x64,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x29,0x20, + 0x2a,0x20,0x5f,0x31,0x32,0x38,0x32,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x5f,0x31,0x37,0x30,0x31,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28, + 0x4e,0x2c,0x20,0x5f,0x31,0x34,0x35,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31, + 0x37,0x30,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x62,0x72, + 0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x76, + 0x65,0x63,0x32,0x28,0x5f,0x31,0x37,0x30,0x31,0x2c,0x20,0x72,0x6f,0x75,0x67,0x68, + 0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x37,0x31,0x34,0x20,0x3d,0x20,0x73,0x69, + 0x6e,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x33,0x2e, + 0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31,0x31,0x31,0x33, + 0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x6d,0x69, + 0x78,0x28,0x5f,0x31,0x36,0x37,0x39,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x64,0x6f, + 0x74,0x28,0x5f,0x31,0x36,0x37,0x39,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, + 0x32,0x31,0x32,0x35,0x39,0x39,0x39,0x39,0x32,0x37,0x35,0x32,0x30,0x37,0x35,0x31, + 0x39,0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x32,0x30,0x30, + 0x30,0x30,0x36,0x39,0x36,0x31,0x38,0x32,0x32,0x35,0x30,0x39,0x37,0x36,0x35,0x36, + 0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x32,0x30,0x30,0x30,0x30,0x30,0x32, + 0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29, + 0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63, + 0x29,0x29,0x20,0x2a,0x20,0x28,0x28,0x5f,0x31,0x36,0x35,0x37,0x20,0x2a,0x20,0x5f, + 0x31,0x37,0x30,0x34,0x2e,0x78,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x5f, + 0x31,0x37,0x30,0x34,0x2e,0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x38, + 0x32,0x2e,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x63,0x61,0x6c,0x65, + 0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x30,0x2e,0x36,0x39, + 0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34, + 0x39,0x32,0x31,0x38,0x37,0x35,0x20,0x2a,0x20,0x5f,0x31,0x37,0x31,0x34,0x29,0x29, + 0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x30,0x2e, + 0x38,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x36,0x31,0x35,0x38,0x31,0x34,0x32,0x30, + 0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x31,0x34,0x29,0x20,0x2a,0x20, + 0x70,0x6f,0x77,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x37,0x30,0x31,0x2c, + 0x20,0x32,0x2e,0x30,0x29,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20, + 0x2d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x33,0x2e,0x33,0x33, + 0x33,0x33,0x33,0x33,0x32,0x35,0x33,0x38,0x36,0x30,0x34,0x37,0x33,0x36,0x33,0x32, + 0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x34,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d, - 0x20,0x2d,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x5f,0x31, - 0x35,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36, - 0x35,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68, - 0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20, - 0x3d,0x20,0x5f,0x31,0x35,0x39,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x37,0x32,0x20,0x3d,0x20,0x73,0x61, - 0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x39,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d, - 0x5f,0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x39,0x34,0x20,0x3d,0x20,0x6d,0x61,0x78, - 0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x34,0x33,0x29,0x2c,0x20, - 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x34,0x20,0x5f,0x31,0x36,0x39,0x37,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75, - 0x72,0x65,0x28,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d,0x73, - 0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x36,0x39,0x34,0x2c,0x20, - 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x37,0x30,0x37, - 0x20,0x3d,0x20,0x73,0x69,0x6e,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, - 0x20,0x2a,0x20,0x33,0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36, - 0x34,0x31,0x31,0x31,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28, - 0x28,0x28,0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x36,0x37,0x32,0x2c,0x20,0x76,0x65, - 0x63,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x36,0x37,0x32,0x2c,0x20,0x76,0x65, - 0x63,0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35,0x39,0x39,0x39,0x39,0x32,0x37,0x35, - 0x32,0x30,0x37,0x35,0x31,0x39,0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37, - 0x31,0x35,0x32,0x30,0x30,0x30,0x30,0x36,0x39,0x36,0x31,0x38,0x32,0x32,0x35,0x30, - 0x39,0x37,0x36,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x32,0x30, - 0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31, - 0x38,0x37,0x35,0x29,0x29,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x65,0x74, - 0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x28,0x28,0x5f,0x31,0x36,0x35, - 0x30,0x20,0x2a,0x20,0x5f,0x31,0x36,0x39,0x37,0x2e,0x78,0x29,0x20,0x2b,0x20,0x76, - 0x65,0x63,0x33,0x28,0x5f,0x31,0x36,0x39,0x37,0x2e,0x79,0x29,0x29,0x29,0x20,0x2a, - 0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f, - 0x73,0x63,0x61,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20, - 0x28,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30, - 0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x20,0x2a,0x20,0x5f,0x31, - 0x37,0x30,0x37,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20, - 0x28,0x28,0x28,0x30,0x2e,0x38,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x36,0x31,0x35, - 0x38,0x31,0x34,0x32,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x20,0x2a,0x20,0x72, - 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x30, - 0x37,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f, - 0x31,0x36,0x39,0x34,0x2c,0x20,0x32,0x2e,0x30,0x29,0x29,0x29,0x29,0x20,0x2a,0x20, - 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x72,0x6f, - 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a, - 0x20,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x32,0x35,0x33,0x38,0x36,0x30,0x34, - 0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, - 0x31,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20, - 0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x35,0x37, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x34, + 0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x36,0x34,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x32,0x20,0x3d,0x20,0x5f,0x31,0x36,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x37,0x37,0x30,0x20, + 0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66, + 0x66,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x29,0x20, + 0x2a,0x20,0x5f,0x31,0x32,0x38,0x32,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20, 0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31, - 0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x36,0x35,0x30,0x29,0x20,0x2a,0x20,0x28, + 0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x36,0x35,0x37,0x29,0x20,0x2a,0x20,0x28, 0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29, - 0x20,0x2a,0x20,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64, - 0x69,0x66,0x66,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32, - 0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69, - 0x6e,0x74,0x29,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31, - 0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39, - 0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f, - 0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20, - 0x5f,0x31,0x36,0x32,0x31,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72, - 0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x37, - 0x35,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65, - 0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34, - 0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34, - 0x32,0x39,0x36,0x38,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69, - 0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e, - 0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20, - 0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e, - 0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65, - 0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20, - 0x2a,0x20,0x5f,0x31,0x36,0x32,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x5f,0x31,0x32, - 0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74, - 0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x74,0x72, + 0x20,0x2a,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x64,0x6f,0x74,0x28, + 0x5f,0x31,0x37,0x37,0x30,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x32,0x31, + 0x32,0x35,0x39,0x39,0x39,0x39,0x32,0x37,0x35,0x32,0x30,0x37,0x35,0x31,0x39,0x35, + 0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x32,0x30,0x30,0x30,0x30, + 0x36,0x39,0x36,0x31,0x38,0x32,0x32,0x35,0x30,0x39,0x37,0x36,0x35,0x36,0x32,0x35, + 0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36, + 0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x2c, + 0x20,0x5f,0x31,0x37,0x37,0x30,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x32, + 0x38,0x32,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x61,0x74,0x75, + 0x72,0x61,0x74,0x69,0x6f,0x6e,0x29,0x29,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33, + 0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34, + 0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x74,0x72, 0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79, - 0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x31,0x38,0x20, - 0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x2d,0x5f,0x31,0x34,0x34,0x33, - 0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x33,0x20,0x52,0x20,0x3d,0x20,0x5f,0x31,0x38,0x31,0x38,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x38,0x31,0x38,0x2e, - 0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52, - 0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x76,0x65, - 0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32,0x38,0x29,0x20,0x2a,0x20,0x5f,0x31, + 0x32,0x38,0x32,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61, + 0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x5f,0x31,0x32,0x38,0x32,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f, + 0x73,0x63,0x61,0x6c,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30, + 0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33, + 0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x5f, + 0x31,0x32,0x38,0x32,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c, + 0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,0x32,0x38,0x32,0x2e,0x61,0x6d,0x62,0x69,0x65, + 0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20, + 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e, + 0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32,0x38,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28, + 0x28,0x28,0x5f,0x31,0x32,0x38,0x32,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,0x32,0x38,0x32,0x2e,0x61,0x6d, + 0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29, + 0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69, + 0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32,0x38,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, + 0x31,0x38,0x33,0x36,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x2d, + 0x5f,0x31,0x34,0x35,0x30,0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x52,0x20,0x3d,0x20,0x5f,0x31,0x38,0x33, + 0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x31,0x38,0x33,0x36,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x52,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28, + 0x52,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, + 0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x33,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d, - 0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f, - 0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74, - 0x20,0x2b,0x3d,0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x39,0x20,0x2a,0x20,0x73,0x6b, - 0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x34,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30, - 0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34, - 0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, - 0x76,0x65,0x63,0x34,0x28,0x6d,0x69,0x78,0x28,0x5f,0x32,0x37,0x31,0x2e,0x64,0x65, - 0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b, - 0x20,0x28,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69, - 0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e, - 0x63,0x65,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x65,0x6d,0x69,0x73, - 0x73,0x69,0x76,0x65,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x2c,0x20,0x76,0x65,0x63, - 0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30, - 0x2c,0x20,0x5f,0x32,0x37,0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67, - 0x68,0x74,0x2c,0x20,0x76,0x70,0x6f,0x73,0x2e,0x79,0x29,0x29,0x29,0x2c,0x20,0x31, - 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32, - 0x37,0x35,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d, - 0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x38,0x36,0x31,0x20,0x3d,0x20,0x66, - 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x36,0x35,0x20,0x3d,0x20, - 0x6d,0x69,0x78,0x28,0x5f,0x31,0x38,0x36,0x31,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76, - 0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39, - 0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20, - 0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37, - 0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x31,0x2e,0x30,0x29, - 0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36,0x35,0x2e,0x78,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x2e,0x79,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36,0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36,0x35,0x2e,0x7a,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x31,0x32,0x37,0x35,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20, - 0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34, - 0x20,0x5f,0x31,0x38,0x37,0x39,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x38,0x33,0x20,0x3d,0x20,0x6d,0x69, - 0x78,0x28,0x5f,0x31,0x38,0x37,0x39,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63, - 0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30, - 0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32, - 0x35,0x2c,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38, - 0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29, - 0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, - 0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x38,0x33,0x2e,0x78, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72, - 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x31,0x38, - 0x38,0x33,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d, - 0x20,0x5f,0x31,0x38,0x38,0x33,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, + 0x5f,0x32,0x34,0x20,0x3d,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f, + 0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x5f,0x31,0x34,0x37,0x36, + 0x20,0x2a,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e, + 0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31, + 0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, + 0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x6d,0x69,0x78,0x28,0x5f,0x32, + 0x37,0x31,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x6c,0x69, + 0x67,0x68,0x74,0x20,0x2b,0x20,0x28,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d, + 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x65,0x6d, + 0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x38,0x32, + 0x2e,0x65,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29, + 0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65, + 0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2e,0x70,0x6c,0x61,0x6e, + 0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x20,0x76,0x70,0x6f,0x73,0x2e,0x79,0x29, + 0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x31,0x32,0x38,0x32,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69, + 0x65,0x77,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x38,0x37, + 0x39,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38, + 0x38,0x33,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x38,0x37,0x39,0x2e,0x78, + 0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30, + 0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38, + 0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38, + 0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c, + 0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x38,0x33,0x2e, + 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x31,0x38,0x38,0x33,0x2e, + 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x38,0x38,0x33,0x2e, + 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x38,0x32,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65, + 0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x38,0x39,0x37,0x20,0x3d,0x20,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x30,0x31, + 0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x38,0x39,0x37,0x2e,0x78,0x79,0x7a, + 0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x33,0x30, + 0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35, + 0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35, + 0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31, + 0x39,0x30,0x31,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20, + 0x3d,0x20,0x5f,0x31,0x39,0x30,0x31,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x39,0x30,0x31,0x2e,0x7a,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d, + 0x0a,0x0a,0x00, ]; /* #version 300 es @@ -2585,9 +2599,10 @@ vs_trile_source_glsl300es := u8.[ highp vec3 ambient_color; int is_preview; highp vec3 rdm_tint; + highp float rdm_diff_saturation; }; - uniform trile_fs_params _1275; + uniform trile_fs_params _1282; uniform highp sampler2D triletex_trilesmp; uniform highp sampler2DShadow shadowtex_shadowsmp; @@ -2652,11 +2667,6 @@ vs_trile_source_glsl300es := u8.[ return (((int(dot(vec3(-0.0, -1.0, -0.0), N) >= 0.980000019073486328125) + (int(N.z >= 0.980000019073486328125) * 2)) + (int(dot(vec3(-0.0, -0.0, -1.0), N) >= 0.980000019073486328125) * 3)) + (int(N.x >= 0.980000019073486328125) * 4)) + (int(dot(vec3(-1.0, -0.0, -0.0), N) >= 0.980000019073486328125) * 5); } - highp float roughness_to_rdm_size(int roughness) - { - return pow(2.0, float(8 - roughness)); - } - ivec2 rdm_face_pixel_offset(highp vec4 atlas_rect, int face, int rdmSize) { ivec2 _700 = textureSize(rdm_atlas_rdmsmp, 0); @@ -2668,32 +2678,32 @@ vs_trile_source_glsl300es := u8.[ highp vec3 vc = v; if ((index / 2) == 0) { - highp vec3 _1921 = vc; - _1921.z = v.y; - _1921.y = v.z; - vc = _1921; + highp vec3 _1939 = vc; + _1939.z = v.y; + _1939.y = v.z; + vc = _1939; } if ((index / 2) == 2) { - highp vec3 _1925 = vc; - _1925.z = v.x; - _1925.x = v.z; - vc = _1925; + highp vec3 _1943 = vc; + _1943.z = v.x; + _1943.x = v.z; + vc = _1943; } if ((index % 2) == 1) { - highp vec3 _1929 = vc; - _1929.z = _1929.z * (-1.0); - vc = _1929; + highp vec3 _1947 = vc; + _1947.z = _1947.z * (-1.0); + vc = _1947; } - highp vec3 _1932 = vc; - highp float _601 = _1932.x + off.x; - highp vec3 _1934 = _1932; - _1934.x = _601; - highp float _607 = _1932.y + off.y; - _1934.y = _607; - vc = _1934; - highp vec2 _625 = _1934.xy * (1.0 / ((abs(_601) + abs(_607)) + _1932.z)); + highp vec3 _1950 = vc; + highp float _601 = _1950.x + off.x; + highp vec3 _1952 = _1950; + _1952.x = _601; + highp float _607 = _1950.y + off.y; + _1952.y = _607; + vc = _1952; + highp vec2 _625 = _1952.xy * (1.0 / ((abs(_601) + abs(_607)) + _1950.z)); highp float _628 = _625.x; highp float _630 = _625.y; return vec2(((_628 + _630) + 1.0) * 0.5, ((_628 - _630) + 1.0) * 0.5); @@ -2767,65 +2777,64 @@ vs_trile_source_glsl300es := u8.[ { highp vec3 param = N; int _739 = rdm_index_from_normal(param); - int param_1 = roughness; - int _744 = int(roughness_to_rdm_size(param_1)); - highp float _747 = float(_744); - ivec3 param_2 = local_pos; - int param_3 = roughness; - highp vec4 _753 = rdm_get_atlas_rect(param_2, param_3); - if (_753.z <= 0.0) + ivec3 param_1 = local_pos; + int param_2 = roughness; + highp vec4 _745 = rdm_get_atlas_rect(param_1, param_2); + highp float _747 = _745.z; + if (_747 <= 0.0) { return vec3(1.0, 0.0, 1.0); } - highp vec4 param_4 = _753; - int param_5 = _739; - int param_6 = _744; - ivec2 _768 = rdm_face_pixel_offset(param_4, param_5, param_6); - highp vec3 _808 = normalize(reflect(V, N)); + int _767 = int(_747 * float(textureSize(rdm_atlas_rdmsmp, 0).x)) / 2; + highp float _770 = float(_767); + highp vec4 param_3 = _745; + int param_4 = _739; + int param_5 = _767; + ivec2 _778 = rdm_face_pixel_offset(param_3, param_4, param_5); + highp vec3 _818 = normalize(reflect(V, N)); if (roughness > 1) { - highp vec3 param_7 = normalize(diff + (_808 * 2.0)); - int param_8 = _739; - highp vec2 param_9 = vec2(0.0); - return texture(rdm_atlas_rdmsmp, (vec2(_768) + (rdm_get_hemioct(param_7, param_8, param_9) * _747)) / vec2(textureSize(rdm_atlas_rdmsmp, 0))).xyz; + highp vec3 param_6 = normalize(diff + (_818 * 2.0)); + int param_7 = _739; + highp vec2 param_8 = vec2(0.0); + return texture(rdm_atlas_rdmsmp, (vec2(_778) + (rdm_get_hemioct(param_6, param_7, param_8) * _770)) / vec2(textureSize(rdm_atlas_rdmsmp, 0))).xyz; } for (int i = 0; i < 40; i++) { - highp vec3 _877 = diff + (_808 * (float(i + 1) * 0.5)); - if (dot(_877, N) < 0.0) + highp vec3 _887 = diff + (_818 * (float(i + 1) * 0.5)); + if (dot(_887, N) < 0.0) { continue; } - highp vec3 param_10 = normalize(_877); - int param_11 = _739; - highp vec2 param_12 = vec2(0.0); - highp vec2 _892 = rdm_get_hemioct(param_10, param_11, param_12); - highp vec4 _917 = texelFetch(rdm_atlas_rdmsmp, ivec2(_768.x + int(_892.x * _747), _768.y + int(_892.y * _747)), 0); - highp float _921 = _917.w; - highp float _924 = length(_877); - bool _935 = (_921 > 0.0) && (_921 < _924); - bool _943; - if (_935) + highp vec3 param_9 = normalize(_887); + int param_10 = _739; + highp vec2 param_11 = vec2(0.0); + highp vec4 _924 = texture(rdm_atlas_rdmsmp, (vec2(_778) + (rdm_get_hemioct(param_9, param_10, param_11) * _770)) / vec2(textureSize(rdm_atlas_rdmsmp, 0)), 0.0); + highp float _928 = _924.w; + highp float _931 = length(_887); + bool _942 = (_928 > 0.0) && (_928 < _931); + bool _950; + if (_942) { - _943 = (_921 + 0.5) > _924; + _950 = (_928 + 0.5) > _931; } else { - _943 = _935; + _950 = _942; } - if (_943) + if (_950) { - return _917.xyz; + return _924.xyz; } } - highp vec3 skyDir = _808; - if (_808.y < 0.0) + highp vec3 skyDir = _818; + if (_818.y < 0.0) { skyDir = reflect(skyDir, vec3(0.0, 1.0, 0.0)); } - highp vec3 param_13 = skyDir; - highp vec3 param_14 = _271.sunPosition; - return sky(param_13, param_14); + highp vec3 param_12 = skyDir; + highp vec3 param_13 = _271.sunPosition; + return sky(param_12, param_13); } int isign(highp float f) @@ -2833,29 +2842,34 @@ vs_trile_source_glsl300es := u8.[ return (f < 0.0) ? (-1) : 1; } + highp float roughness_to_rdm_size(int roughness) + { + return pow(2.0, float(8 - roughness)); + } + highp vec3 sample_rdm_diff_map(highp vec3 N, ivec3 local_pos, highp vec3 fallback) { ivec3 param = local_pos; int param_1 = 7; - highp vec4 _973 = rdm_get_atlas_rect(param, param_1); - if (_973.z <= 0.0) + highp vec4 _980 = rdm_get_atlas_rect(param, param_1); + if (_980.z <= 0.0) { return fallback; } highp vec3 param_2 = N; - int _984 = rdm_index_from_normal(param_2); + int _991 = rdm_index_from_normal(param_2); int param_3 = 7; - int _988 = int(roughness_to_rdm_size(param_3)); - highp vec4 param_4 = _973; - int param_5 = _984; - int param_6 = _988; - ivec2 _996 = rdm_face_pixel_offset(param_4, param_5, param_6); + int _995 = int(roughness_to_rdm_size(param_3)); + highp vec4 param_4 = _980; + int param_5 = _991; + int param_6 = _995; + ivec2 _1003 = rdm_face_pixel_offset(param_4, param_5, param_6); highp vec3 param_7 = N; - int param_8 = _984; + int param_8 = _991; highp vec2 param_9 = vec2(0.0); - highp vec2 _1003 = rdm_get_hemioct(param_7, param_8, param_9); - highp float _1010 = float(_988); - return texelFetch(rdm_atlas_rdmsmp, ivec2(_996.x + int(_1003.x * _1010), _996.y + int(_1003.y * _1010)), 0).xyz; + highp vec2 _1010 = rdm_get_hemioct(param_7, param_8, param_9); + highp float _1017 = float(_995); + return texelFetch(rdm_atlas_rdmsmp, ivec2(_1003.x + int(_1010.x * _1017), _1003.y + int(_1010.y * _1017)), 0).xyz; } highp vec3 smix(highp vec3 a, highp vec3 b, highp float t) @@ -2866,16 +2880,16 @@ vs_trile_source_glsl300es := u8.[ highp vec3 sample_rdm_diff(highp vec3 N, highp vec3 diff, ivec3 local_pos) { highp vec3 param = N; - int _1063 = rdm_index_from_normal(param); + int _1070 = rdm_index_from_normal(param); highp vec2 delta = vec2(0.0); - bool _1072 = (_1063 == 0) || (_1063 == 1); - if (_1072) + bool _1079 = (_1070 == 0) || (_1070 == 1); + if (_1079) { delta = vec2(diff.x, diff.z); } else { - if ((_1063 == 2) || (_1063 == 3)) + if ((_1070 == 2) || (_1070 == 3)) { delta = vec2(diff.x, diff.y); } @@ -2887,7 +2901,7 @@ vs_trile_source_glsl300es := u8.[ ivec3 s1; ivec3 s2; ivec3 s3; - if (_1072) + if (_1079) { highp float param_1 = delta.x; s1 = ivec3(isign(param_1), 0, 0); @@ -2899,7 +2913,7 @@ vs_trile_source_glsl300es := u8.[ } else { - if ((_1063 == 2) || (_1063 == 3)) + if ((_1070 == 2) || (_1070 == 3)) { highp float param_5 = delta.x; s1 = ivec3(isign(param_5), 0, 0); @@ -2946,17 +2960,17 @@ vs_trile_source_glsl300es := u8.[ void main() { - bool _1269 = vpos.y < (_271.planeHeight - 0.00999999977648258209228515625); - bool _1279; - if (_1269) + bool _1276 = vpos.y < (_271.planeHeight - 0.00999999977648258209228515625); + bool _1286; + if (_1276) { - _1279 = _1275.is_reflection == 1; + _1286 = _1282.is_reflection == 1; } else { - _1279 = _1269; + _1286 = _1276; } - if (_1279) + if (_1286) { discard; } @@ -2965,62 +2979,62 @@ vs_trile_source_glsl300es := u8.[ highp vec4 trixel_material; while (count < 5) { - highp vec4 _1332 = texelFetch(triletex_trilesmp, ivec2(int(clamp(pos_after_adjust.z, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0), int(clamp(pos_after_adjust.y, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) + (int(clamp(pos_after_adjust.x, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) * 16)), 0); - trixel_material = _1332; - if (length(_1332) > 0.00999999977648258209228515625) + highp vec4 _1339 = texelFetch(triletex_trilesmp, ivec2(int(clamp(pos_after_adjust.z, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0), int(clamp(pos_after_adjust.y, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) + (int(clamp(pos_after_adjust.x, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) * 16)), 0); + trixel_material = _1339; + if (length(_1339) > 0.00999999977648258209228515625) { break; } pos_after_adjust += (to_center * 0.100000001490116119384765625); count++; } - int _1355 = int(round(trixel_material.w * 255.0)); + int _1362 = int(round(trixel_material.w * 255.0)); highp float emittance = 0.0; int roughnessInt = 0; highp float roughness = 0.0500000007450580596923828125; highp float metallic = 0.0; - if ((_1355 & 1) != 0) + if ((_1362 & 1) != 0) { - emittance = float((_1355 >> 1) & 127) * 0.0078740157186985015869140625; + emittance = float((_1362 >> 1) & 127) * 0.0078740157186985015869140625; } else { - int _1375 = (_1355 >> 5) & 7; - roughnessInt = _1375; - roughness = max(float(_1375) * 0.14285714924335479736328125, 0.0500000007450580596923828125); - metallic = float((_1355 >> 3) & 3) * 0.3333333432674407958984375; + int _1382 = (_1362 >> 5) & 7; + roughnessInt = _1382; + roughness = max(float(_1382) * 0.14285714924335479736328125, 0.0500000007450580596923828125); + metallic = float((_1362 >> 3) & 3) * 0.3333333432674407958984375; } - highp vec3 _1392 = abs(fnormal.xyz); - highp float _1394 = _1392.x; - highp float _1396 = _1392.y; - bool _1397 = _1394 >= _1396; - bool _1405; - if (_1397) + highp vec3 _1399 = abs(fnormal.xyz); + highp float _1401 = _1399.x; + highp float _1403 = _1399.y; + bool _1404 = _1401 >= _1403; + bool _1412; + if (_1404) { - _1405 = _1394 >= _1392.z; + _1412 = _1401 >= _1399.z; } else { - _1405 = _1397; + _1412 = _1404; } highp vec3 N; - if (_1405) + if (_1412) { N = vec3(sign(fnormal.x), 0.0, 0.0); } else { - bool _1418 = _1396 >= _1394; - bool _1426; - if (_1418) + bool _1425 = _1403 >= _1401; + bool _1433; + if (_1425) { - _1426 = _1396 >= _1392.z; + _1433 = _1403 >= _1399.z; } else { - _1426 = _1418; + _1433 = _1425; } - if (_1426) + if (_1433) { N = vec3(0.0, sign(fnormal.y), 0.0); } @@ -3029,101 +3043,102 @@ vs_trile_source_glsl300es := u8.[ N = vec3(0.0, 0.0, sign(fnormal.z)); } } - highp vec3 _1443 = normalize(cam - vpos); - highp vec3 _1447 = normalize(_271.sunPosition); - highp vec3 _1452 = normalize(_1443 + _1447); - highp vec3 _1460 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, vec3(metallic)); - highp float param = max(dot(_1452, _1443), 0.0); - highp vec3 param_1 = _1460; - highp vec3 _1469 = fresnelSchlick(param, param_1); + highp vec3 _1450 = normalize(cam - vpos); + highp vec3 _1454 = normalize(_271.sunPosition); + highp vec3 _1459 = normalize(_1450 + _1454); + highp vec3 _1467 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, vec3(metallic)); + highp float param = max(dot(_1459, _1450), 0.0); + highp vec3 param_1 = _1467; + highp vec3 _1476 = fresnelSchlick(param, param_1); highp vec3 param_2 = N; - highp vec3 param_3 = _1452; + highp vec3 param_3 = _1459; highp float param_4 = roughness; highp vec3 param_5 = N; - highp vec3 param_6 = _1443; - highp vec3 param_7 = _1447; + highp vec3 param_6 = _1450; + highp vec3 param_7 = _1454; highp float param_8 = roughness; - highp float _1503 = max(dot(N, _1447), 0.0); - highp vec4 _1536 = _1275.mvp_shadow * vec4(floor(vpos * 16.0) * vec3(0.0625), 1.0); - highp vec3 _1547 = ((_1536.xyz / vec3(_1536.w)) * 0.5) + vec3(0.5); - highp float _1551 = _1547.z - 0.001000000047497451305389404296875; - highp vec3 _1906 = _1547; - _1906.z = _1551; - highp vec3 light = ((((((((vec3(1.0) - _1469) * (1.0 - metallic)) * trixel_material.xyz) * vec3(0.3183410167694091796875)) + ((_1469 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(N, _1443), 0.0)) * _1503) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_1906.xy, _1551))) * _1503) * _271.sunLightColor) * _271.sunIntensity; - highp vec3 _1588 = trileCenter + (N * 0.4900000095367431640625); - ivec3 _1594 = ivec3(mod(floor(trileCenter), vec3(32.0))); - ivec3 param_9 = _1594; + highp float _1510 = max(dot(N, _1454), 0.0); + highp vec4 _1543 = _1282.mvp_shadow * vec4(floor(vpos * 16.0) * vec3(0.0625), 1.0); + highp vec3 _1554 = ((_1543.xyz / vec3(_1543.w)) * 0.5) + vec3(0.5); + highp float _1558 = _1554.z - 0.001000000047497451305389404296875; + highp vec3 _1924 = _1554; + _1924.z = _1558; + highp vec3 light = ((((((((vec3(1.0) - _1476) * (1.0 - metallic)) * trixel_material.xyz) * vec3(0.3183410167694091796875)) + ((_1476 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(N, _1450), 0.0)) * _1510) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_1924.xy, _1558))) * _1510) * _271.sunLightColor) * _271.sunIntensity; + highp vec3 _1595 = trileCenter + (N * 0.4900000095367431640625); + ivec3 _1601 = ivec3(mod(floor(trileCenter), vec3(32.0))); + ivec3 param_9 = _1601; int param_10 = roughnessInt; - highp vec4 _1620 = texture(ssaotex_trilesmp, vec2(gl_FragCoord.x / float(_1275.screen_w), gl_FragCoord.y / float(_1275.screen_h)), 0.0); - highp float _1621 = _1620.x; - bool _1631 = _1275.rdm_enabled == 1; - bool _1637; - if (_1631) + highp vec4 _1627 = texture(ssaotex_trilesmp, vec2(gl_FragCoord.x / float(_1282.screen_w), gl_FragCoord.y / float(_1282.screen_h)), 0.0); + highp float _1628 = _1627.x; + bool _1638 = _1282.rdm_enabled == 1; + bool _1644; + if (_1638) { - _1637 = rdm_get_atlas_rect(param_9, param_10).z > 0.0; + _1644 = rdm_get_atlas_rect(param_9, param_10).z > 0.0; } else { - _1637 = _1631; + _1644 = _1638; } - if (_1637) + if (_1644) { - highp float param_11 = max(dot(N, _1443), 0.0); - highp vec3 param_12 = _1460; + highp float param_11 = max(dot(N, _1450), 0.0); + highp vec3 param_12 = _1467; highp float param_13 = roughness; - highp vec3 _1650 = FresnelSchlickRoughness(param_11, param_12, param_13); - highp vec3 _1657 = vpos - _1588; + highp vec3 _1657 = FresnelSchlickRoughness(param_11, param_12, param_13); + highp vec3 _1664 = vpos - _1595; highp vec3 param_14 = N; highp vec3 param_15 = -cv; - highp vec3 param_16 = _1588; - highp vec3 param_17 = _1657; + highp vec3 param_16 = _1595; + highp vec3 param_17 = _1664; int param_18 = roughnessInt; - ivec3 param_19 = _1594; - highp vec3 _1672 = sample_rdm(param_14, param_15, param_16, param_17, param_18, param_19) * _1275.rdm_tint; - highp float _1694 = max(dot(N, _1443), 0.0); - highp vec4 _1697 = texture(brdf_lut_rdmsmp, vec2(_1694, roughness)); - highp float _1707 = sin(roughness * 3.141285419464111328125); - light += (((((mix(_1672, vec3(dot(_1672, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), vec3(metallic)) * ((_1650 * _1697.x) + vec3(_1697.y))) * _1275.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1707))) * (1.0 - (((0.89999997615814208984375 * roughness) * _1707) * pow(1.0 - _1694, 2.0)))) * (1.0 - clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); + ivec3 param_19 = _1601; + highp vec3 _1679 = sample_rdm(param_14, param_15, param_16, param_17, param_18, param_19) * _1282.rdm_tint; + highp float _1701 = max(dot(N, _1450), 0.0); + highp vec4 _1704 = texture(brdf_lut_rdmsmp, vec2(_1701, roughness)); + highp float _1714 = sin(roughness * 3.141285419464111328125); + light += (((((mix(_1679, vec3(dot(_1679, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), vec3(metallic)) * ((_1657 * _1704.x) + vec3(_1704.y))) * _1282.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1714))) * (1.0 - (((0.89999997615814208984375 * roughness) * _1714) * pow(1.0 - _1701, 2.0)))) * (1.0 - clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); highp vec3 param_20 = N; - highp vec3 param_21 = _1657; - ivec3 param_22 = _1594; - light += (((((((vec3(1.0) - _1650) * (1.0 - metallic)) * (sample_rdm_diff(param_20, param_21, param_22) * _1275.rdm_tint)) * vec3(0.3183410167694091796875)) * trixel_material.xyz) * _1621) * _1275.rdm_diff_scale); - if (_1275.rdm_diff_scale < 0.001000000047497451305389404296875) + highp vec3 param_21 = _1664; + ivec3 param_22 = _1601; + highp vec3 _1770 = sample_rdm_diff(param_20, param_21, param_22) * _1282.rdm_tint; + light += (((((((vec3(1.0) - _1657) * (1.0 - metallic)) * mix(vec3(dot(_1770, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), _1770, vec3(_1282.rdm_diff_saturation))) * vec3(0.3183410167694091796875)) * trixel_material.xyz) * _1628) * _1282.rdm_diff_scale); + if (_1282.rdm_diff_scale < 0.001000000047497451305389404296875) { - light += (((_1275.ambient_color * _1275.ambient_intensity) * trixel_material.xyz) * _1621); + light += (((_1282.ambient_color * _1282.ambient_intensity) * trixel_material.xyz) * _1628); } } else { - light += (((_1275.ambient_color * _1275.ambient_intensity) * trixel_material.xyz) * _1621); - highp vec3 _1818 = reflect(-_1443, N); - highp vec3 R = _1818; - if (_1818.y < 0.0) + light += (((_1282.ambient_color * _1282.ambient_intensity) * trixel_material.xyz) * _1628); + highp vec3 _1836 = reflect(-_1450, N); + highp vec3 R = _1836; + if (_1836.y < 0.0) { R = reflect(R, vec3(0.0, 1.0, 0.0)); } highp vec3 param_23 = R; highp vec3 param_24 = _271.sunPosition; - light += ((_1469 * sky(param_23, param_24)) * 0.100000001490116119384765625); + light += ((_1476 * sky(param_23, param_24)) * 0.100000001490116119384765625); } - frag_color = vec4(mix(_271.deepColor, light + ((trixel_material.xyz * emittance) * _1275.emissive_scale), vec3(smoothstep(0.0, _271.planeHeight, vpos.y))), 1.0); - if (_1275.is_preview == 1) + frag_color = vec4(mix(_271.deepColor, light + ((trixel_material.xyz * emittance) * _1282.emissive_scale), vec3(smoothstep(0.0, _271.planeHeight, vpos.y))), 1.0); + if (_1282.is_preview == 1) { - highp vec4 _1861 = frag_color; - highp vec3 _1865 = mix(_1861.xyz, vec3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), vec3(0.5)); - frag_color.x = _1865.x; - frag_color.y = _1865.y; - frag_color.z = _1865.z; + highp vec4 _1879 = frag_color; + highp vec3 _1883 = mix(_1879.xyz, vec3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), vec3(0.5)); + frag_color.x = _1883.x; + frag_color.y = _1883.y; + frag_color.z = _1883.z; } else { - if (_1275.is_preview == 2) + if (_1282.is_preview == 2) { - highp vec4 _1879 = frag_color; - highp vec3 _1883 = mix(_1879.xyz, vec3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), vec3(0.5)); - frag_color.x = _1883.x; - frag_color.y = _1883.y; - frag_color.z = _1883.z; + highp vec4 _1897 = frag_color; + highp vec3 _1901 = mix(_1897.xyz, vec3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), vec3(0.5)); + frag_color.x = _1901.x; + frag_color.y = _1901.y; + frag_color.z = _1901.z; } } } @@ -3183,1305 +3198,1318 @@ fs_trile_source_glsl300es := u8.[ 0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x69,0x6e,0x74,0x20,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, - 0x20,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75, - 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x66,0x73,0x5f, - 0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5f,0x31,0x32,0x37,0x35,0x3b,0x0a,0x0a,0x75, + 0x20,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x64,0x6d,0x5f,0x64, + 0x69,0x66,0x66,0x5f,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3b,0x0a, + 0x7d,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x74,0x72,0x69,0x6c, + 0x65,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5f,0x31,0x32,0x38, + 0x32,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x74,0x72,0x69,0x6c, + 0x65,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x75, 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x5f, - 0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72, - 0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32, - 0x44,0x53,0x68,0x61,0x64,0x6f,0x77,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65, - 0x78,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69, - 0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c, - 0x65,0x72,0x32,0x44,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x5f, - 0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72, - 0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32, - 0x44,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73, - 0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x72,0x64,0x6d,0x5f, - 0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e, - 0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70, - 0x6c,0x65,0x72,0x32,0x44,0x20,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72, - 0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x33,0x20,0x69,0x70,0x6f,0x73,0x3b,0x0a,0x69,0x6e,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x70,0x6f,0x73,0x3b,0x0a, - 0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x6f,0x72, - 0x69,0x67,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74, - 0x65,0x72,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x61,0x6d,0x3b,0x0a,0x69,0x6e, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x74,0x72,0x69,0x6c, - 0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x76,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75, - 0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20, - 0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x66, - 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x0a,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63, - 0x68,0x6c,0x69,0x63,0x6b,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20,0x2b,0x20,0x28,0x28,0x76, - 0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a, - 0x20,0x70,0x6f,0x77,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d, - 0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, - 0x31,0x2e,0x30,0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x44,0x69,0x73,0x74, - 0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x33,0x20,0x48,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x33,0x38,0x39,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, - 0x73,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x33,0x39,0x33,0x20,0x3d,0x20,0x5f,0x33,0x38,0x39,0x20,0x2a,0x20,0x5f,0x33,0x38, - 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f, - 0x74,0x28,0x4e,0x2c,0x20,0x48,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x34,0x31,0x30,0x20,0x3d,0x20,0x28,0x28,0x5f,0x33,0x39,0x38,0x20,0x2a,0x20,0x5f, - 0x33,0x39,0x38,0x29,0x20,0x2a,0x20,0x28,0x5f,0x33,0x39,0x33,0x20,0x2d,0x20,0x31, - 0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x33,0x39,0x33,0x20,0x2f,0x20,0x28,0x28, - 0x33,0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31,0x31, - 0x31,0x33,0x32,0x38,0x31,0x32,0x35,0x20,0x2a,0x20,0x5f,0x34,0x31,0x30,0x29,0x20, - 0x2a,0x20,0x5f,0x34,0x31,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68, - 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79, - 0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x68,0x69,0x67,0x68,0x70, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x4e,0x64,0x6f,0x74,0x56,0x2c,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x32,0x33,0x20,0x3d,0x20,0x72,0x6f, - 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x34,0x32,0x39,0x20,0x3d,0x20,0x28,0x5f,0x34,0x32,0x33,0x20,0x2a,0x20,0x5f,0x34, - 0x32,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2f,0x20, - 0x28,0x28,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d, - 0x20,0x5f,0x34,0x32,0x39,0x29,0x29,0x20,0x2b,0x20,0x5f,0x34,0x32,0x39,0x29,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x56,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x33,0x20,0x4c,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74, - 0x28,0x4e,0x2c,0x20,0x56,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, - 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x6d,0x61,0x78, - 0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x4c,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63, - 0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x33,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72, - 0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x72,0x64,0x6d,0x5f,0x67, - 0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x69,0x76, - 0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x69, - 0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x36,0x36,0x37,0x20,0x3d,0x20,0x28, - 0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x78,0x20,0x2b,0x20,0x28, - 0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x79,0x20,0x2a,0x20,0x33,0x32, - 0x29,0x29,0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e, - 0x7a,0x20,0x2a,0x20,0x31,0x30,0x32,0x34,0x29,0x29,0x20,0x2b,0x20,0x28,0x72,0x6f, - 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x33,0x32,0x37,0x36,0x38,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x78, - 0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b, - 0x75,0x70,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65, - 0x63,0x32,0x28,0x5f,0x36,0x36,0x37,0x20,0x25,0x20,0x35,0x31,0x32,0x2c,0x20,0x5f, - 0x36,0x36,0x37,0x20,0x2f,0x20,0x35,0x31,0x32,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x72, - 0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30,0x2c,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, - 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46, - 0x30,0x20,0x2b,0x20,0x28,0x28,0x6d,0x61,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x31, - 0x2e,0x30,0x20,0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x2c, - 0x20,0x46,0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77, - 0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f,0x73, - 0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29, - 0x2c,0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x74,0x20, - 0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e, - 0x6f,0x72,0x6d,0x61,0x6c,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, - 0x20,0x4e,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x28,0x28,0x28,0x69,0x6e,0x74,0x28,0x64,0x6f,0x74,0x28,0x76,0x65,0x63,0x33, - 0x28,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e, - 0x30,0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30, - 0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32, - 0x35,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x4e,0x2e,0x7a,0x20,0x3e,0x3d, - 0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34, - 0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x32,0x29,0x29,0x20, - 0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x64,0x6f,0x74,0x28,0x76,0x65,0x63,0x33,0x28, - 0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e,0x30, - 0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30, - 0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35, - 0x29,0x20,0x2a,0x20,0x33,0x29,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x4e, - 0x2e,0x78,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31, - 0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a, - 0x20,0x34,0x29,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x64,0x6f,0x74,0x28, - 0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x2c, - 0x20,0x2d,0x30,0x2e,0x30,0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e,0x3d,0x20,0x30,0x2e, - 0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33, - 0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x5f,0x74,0x6f,0x5f,0x72,0x64,0x6d,0x5f,0x73,0x69,0x7a, - 0x65,0x28,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29, - 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x6f, - 0x77,0x28,0x32,0x2e,0x30,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x38,0x20,0x2d, - 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x7d,0x0a, - 0x0a,0x69,0x76,0x65,0x63,0x32,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f, - 0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65, - 0x63,0x74,0x2c,0x20,0x69,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x2c,0x20,0x69,0x6e, - 0x74,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x37,0x30,0x30,0x20,0x3d,0x20,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x53,0x69,0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74, - 0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x76,0x65,0x63,0x32, - 0x28,0x69,0x6e,0x74,0x28,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x2e, - 0x78,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x37,0x30,0x30,0x2e,0x78, - 0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x25,0x20,0x32,0x29, - 0x20,0x2a,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x2c,0x20,0x69,0x6e,0x74, - 0x28,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x2e,0x79,0x20,0x2a,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x37,0x30,0x30,0x2e,0x79,0x29,0x29,0x20,0x2b, - 0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x2f,0x20,0x32,0x29,0x20,0x2a,0x20,0x72, - 0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f, - 0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x76,0x2c,0x20,0x69,0x6e,0x74,0x20,0x69,0x6e,0x64,0x65,0x78,0x2c, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x6f,0x66,0x66,0x29, - 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x33,0x20,0x76,0x63,0x20,0x3d,0x20,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d, - 0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39, - 0x32,0x31,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x39,0x32,0x31,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x79,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x31,0x2e,0x79,0x20, - 0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, - 0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20, - 0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x32,0x35,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x35,0x2e,0x7a,0x20, - 0x3d,0x20,0x76,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x31,0x39,0x32,0x35,0x2e,0x78,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x35, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x25,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x31, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x32,0x39, - 0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x31,0x39,0x32,0x39,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x39,0x2e,0x7a, - 0x20,0x2a,0x20,0x28,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x39,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x33,0x32,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x36,0x30,0x31,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33,0x32,0x2e,0x78,0x20,0x2b, - 0x20,0x6f,0x66,0x66,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x33,0x34,0x20,0x3d,0x20,0x5f, - 0x31,0x39,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x33,0x34,0x2e, - 0x78,0x20,0x3d,0x20,0x5f,0x36,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x37,0x20,0x3d, - 0x20,0x5f,0x31,0x39,0x33,0x32,0x2e,0x79,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x79, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x33,0x34,0x2e,0x79,0x20,0x3d,0x20, - 0x5f,0x36,0x30,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f, - 0x31,0x39,0x33,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x32,0x20,0x5f,0x36,0x32,0x35,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33, - 0x34,0x2e,0x78,0x79,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2f,0x20,0x28,0x28, - 0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x31,0x29,0x20,0x2b,0x20,0x61,0x62,0x73,0x28, - 0x5f,0x36,0x30,0x37,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31,0x39,0x33,0x32,0x2e,0x7a, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x36,0x32,0x38,0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e, - 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x36,0x33,0x30,0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e,0x79, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63, - 0x32,0x28,0x28,0x28,0x5f,0x36,0x32,0x38,0x20,0x2b,0x20,0x5f,0x36,0x33,0x30,0x29, - 0x20,0x2b,0x20,0x31,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x2c,0x20,0x28, - 0x28,0x5f,0x36,0x32,0x38,0x20,0x2d,0x20,0x5f,0x36,0x33,0x30,0x29,0x20,0x2b,0x20, - 0x31,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x68,0x61,0x73,0x68, - 0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6e,0x29,0x0a, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x72,0x61, - 0x63,0x74,0x28,0x73,0x69,0x6e,0x28,0x6e,0x29,0x20,0x2a,0x20,0x34,0x33,0x37,0x35, - 0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x6e,0x6f,0x69,0x73,0x65, - 0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x78,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x5f,0x31,0x32,0x39,0x20,0x3d,0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x78,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x31,0x33,0x37,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x66,0x6c,0x6f,0x6f, - 0x72,0x28,0x78,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20, - 0x31,0x35,0x37,0x2e,0x30,0x2c,0x20,0x31,0x31,0x33,0x2e,0x30,0x29,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31, - 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x30,0x20,0x3d,0x20,0x5f,0x31,0x32,0x39,0x2e, - 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x31,0x33, - 0x37,0x20,0x2b,0x20,0x31,0x35,0x37,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x35,0x38,0x2e, - 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x31,0x36,0x36,0x20,0x3d,0x20,0x5f,0x31,0x32,0x39,0x2e,0x79, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37, - 0x20,0x2b,0x20,0x31,0x31,0x33,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x31,0x34,0x2e,0x30, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37, - 0x20,0x2b,0x20,0x32,0x37,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x37,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x32,0x37,0x31,0x2e,0x30, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x69,0x78, - 0x28,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28, - 0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x2c,0x20,0x68, - 0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20,0x5f,0x31, - 0x35,0x30,0x29,0x2c,0x20,0x5f,0x31,0x36,0x36,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28, - 0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, - 0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29, - 0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x68,0x61,0x73, - 0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x2c,0x20,0x68,0x61,0x73,0x68, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29, - 0x2c,0x20,0x5f,0x31,0x36,0x36,0x29,0x2c,0x20,0x5f,0x31,0x32,0x39,0x2e,0x7a,0x29, + 0x70,0x6c,0x65,0x72,0x32,0x44,0x53,0x68,0x61,0x64,0x6f,0x77,0x20,0x73,0x68,0x61, + 0x64,0x6f,0x77,0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70, + 0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f, + 0x6f,0x6b,0x75,0x70,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x75, + 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x74, + 0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44, + 0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d, + 0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x62,0x72,0x64,0x66,0x5f, + 0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x0a,0x69,0x6e,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x69,0x70,0x6f,0x73,0x3b, + 0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x76, + 0x70,0x6f,0x73,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x6f,0x72,0x69,0x67,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a, + 0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x74,0x6f, + 0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a, + 0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x61, + 0x6d,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x69,0x6e, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x76,0x3b,0x0a, + 0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20, + 0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a, + 0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x66,0x72,0x65,0x73, + 0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20, + 0x2b,0x20,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20, + 0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28, + 0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20, + 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29, 0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x66,0x62,0x6d,0x28,0x69,0x6e,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x66,0x20,0x3d,0x20,0x30, - 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x6d,0x61,0x74,0x33,0x28,0x76,0x65,0x63,0x33, - 0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32, - 0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c, - 0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37, - 0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33, - 0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31, - 0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37, - 0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39, - 0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39, - 0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33, - 0x37,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30, - 0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33, - 0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37, - 0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35, - 0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39, - 0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70, - 0x29,0x20,0x2a,0x20,0x31,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38, - 0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x29,0x20,0x2a,0x20,0x30,0x2e,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x6d,0x61,0x74,0x33,0x28,0x76,0x65,0x63,0x33, - 0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32, - 0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c, - 0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37, - 0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33, - 0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31, - 0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37, - 0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39, - 0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39, - 0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33, - 0x37,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30, - 0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33, - 0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37, - 0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35, - 0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39, - 0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70, - 0x29,0x20,0x2a,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36, - 0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20, - 0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x36,0x36,0x36,0x36,0x36,0x36,0x37, - 0x31,0x36,0x33,0x33,0x37,0x32,0x30,0x33,0x39,0x37,0x39,0x34,0x39,0x32,0x31,0x38, - 0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x6d,0x61, - 0x74,0x33,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36, - 0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31, - 0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30, - 0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35, - 0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30, - 0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36, - 0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36, - 0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30, - 0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37, - 0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33, - 0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33, - 0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39, - 0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38, - 0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39, - 0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32, - 0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29,0x20,0x2a,0x20,0x31,0x2e,0x32,0x39,0x39, - 0x39,0x39,0x39,0x39,0x35,0x32,0x33,0x31,0x36,0x32,0x38,0x34,0x31,0x37,0x39,0x36, - 0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x70,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73, - 0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30, - 0x38,0x33,0x33,0x33,0x33,0x33,0x33,0x35,0x38,0x31,0x36,0x38,0x36,0x30,0x31,0x39, - 0x38,0x39,0x37,0x34,0x36,0x30,0x39,0x33,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x70,0x20,0x3d,0x20,0x28,0x6d,0x61,0x74,0x33,0x28,0x76,0x65,0x63,0x33,0x28, - 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33, - 0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20, - 0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31, - 0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, - 0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38, - 0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32, - 0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32, - 0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39, - 0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37, - 0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30, - 0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31, - 0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38, - 0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c, - 0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37, - 0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29, - 0x20,0x2a,0x20,0x31,0x2e,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x36,0x31,0x35, - 0x38,0x31,0x34,0x32,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x33,0x20,0x3d, - 0x20,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x34,0x20,0x3d,0x20,0x5f,0x32,0x36,0x33,0x20, - 0x2b,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x34,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x34,0x31,0x36,0x36,0x36,0x36,0x36,0x37, - 0x39,0x30,0x38,0x34,0x33,0x30,0x30,0x39,0x39,0x34,0x38,0x37,0x33,0x30,0x34,0x36, - 0x38,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x3d,0x20,0x5f,0x32, - 0x36,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f, - 0x32,0x36,0x34,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x73,0x6b,0x79,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x33,0x20,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x33,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x32,0x38,0x39,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c, - 0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x2c,0x20,0x6e,0x6f,0x72, - 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x5f,0x32,0x39,0x32,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65, - 0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d, - 0x20,0x6d,0x69,0x78,0x28,0x5f,0x32,0x37,0x31,0x2e,0x73,0x6b,0x79,0x42,0x61,0x73, - 0x65,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x6b,0x79,0x54,0x6f,0x70,0x2c,0x20, - 0x76,0x65,0x63,0x33,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x6b,0x79,0x70,0x6f, - 0x73,0x2e,0x79,0x20,0x2a,0x20,0x32,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, - 0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37, - 0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x20,0x2b,0x20, - 0x28,0x28,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x48,0x61,0x6c,0x6f,0x20,0x2a, - 0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x5f,0x32,0x38,0x39,0x20,0x2d,0x20,0x30, - 0x2e,0x39,0x34,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31, - 0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e, - 0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30, - 0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31, - 0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30, - 0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33, - 0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32, - 0x38,0x39,0x20,0x3e,0x20,0x30,0x2e,0x39,0x39,0x39,0x38,0x39,0x39,0x39,0x38,0x33, - 0x34,0x30,0x36,0x30,0x36,0x36,0x38,0x39,0x34,0x35,0x33,0x31,0x32,0x35,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69, - 0x6e,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x44,0x69, - 0x73,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x33,0x33,0x20,0x3d, - 0x20,0x5f,0x32,0x39,0x32,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x6e, - 0x61,0x6c,0x20,0x2b,0x3d,0x20,0x28,0x6d,0x69,0x78,0x28,0x5f,0x32,0x37,0x31,0x2e, - 0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x48,0x61,0x6c,0x6f,0x2c,0x20,0x76,0x65,0x63, - 0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x63,0x6c,0x61, - 0x6d,0x70,0x28,0x61,0x62,0x73,0x28,0x5f,0x33,0x33,0x33,0x29,0x20,0x2a,0x20,0x38, - 0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29, - 0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39, - 0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32,0x37,0x31,0x2e, - 0x68,0x61,0x73,0x43,0x6c,0x6f,0x75,0x64,0x73,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d, - 0x20,0x28,0x28,0x5f,0x32,0x39,0x32,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x5f, - 0x33,0x33,0x33,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x20,0x2b,0x20,0x76, - 0x65,0x63,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,0x20, - 0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35, - 0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x36,0x39,0x20,0x3d,0x20,0x66,0x62,0x6d,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x69,0x6e,0x61, - 0x6c,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65, - 0x63,0x33,0x28,0x28,0x6d,0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x33,0x33, - 0x33,0x29,0x20,0x2a,0x20,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70, - 0x28,0x30,0x2e,0x35,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x33,0x36,0x39,0x29, - 0x20,0x2a,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32, - 0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20, - 0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x69,0x6e,0x61,0x6c,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x28,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x56,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, - 0x20,0x72,0x64,0x6d,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x2c,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x69,0x6e, - 0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x2c,0x20,0x69,0x76,0x65, - 0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, - 0x74,0x20,0x5f,0x37,0x33,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64, - 0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x37,0x34,0x34, - 0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, - 0x5f,0x74,0x6f,0x5f,0x72,0x64,0x6d,0x5f,0x73,0x69,0x7a,0x65,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x34,0x37,0x20,0x3d,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x28,0x5f,0x37,0x34,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20, - 0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75, + 0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58, + 0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x48,0x2c,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x38,0x39,0x20,0x3d,0x20,0x72,0x6f,0x75, + 0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x5f,0x33,0x39,0x33,0x20,0x3d,0x20,0x5f,0x33,0x38,0x39,0x20, + 0x2a,0x20,0x5f,0x33,0x38,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x6d, + 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x48,0x29,0x2c,0x20,0x30,0x2e, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x5f,0x34,0x31,0x30,0x20,0x3d,0x20,0x28,0x28,0x5f,0x33,0x39, + 0x38,0x20,0x2a,0x20,0x5f,0x33,0x39,0x38,0x29,0x20,0x2a,0x20,0x28,0x5f,0x33,0x39, + 0x33,0x20,0x2d,0x20,0x31,0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x33,0x39,0x33, + 0x20,0x2f,0x20,0x28,0x28,0x33,0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39, + 0x34,0x36,0x34,0x31,0x31,0x31,0x33,0x32,0x38,0x31,0x32,0x35,0x20,0x2a,0x20,0x5f, + 0x34,0x31,0x30,0x29,0x20,0x2a,0x20,0x5f,0x34,0x31,0x30,0x29,0x3b,0x0a,0x7d,0x0a, + 0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47,0x65,0x6f, + 0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28, + 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x4e,0x64,0x6f,0x74, + 0x56,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x32,0x33, + 0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2b,0x20,0x31, + 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x5f,0x34,0x32,0x39,0x20,0x3d,0x20,0x28,0x5f,0x34,0x32,0x33, + 0x20,0x2a,0x20,0x5f,0x34,0x32,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x32,0x35, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4e,0x64,0x6f, + 0x74,0x56,0x20,0x2f,0x20,0x28,0x28,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2a,0x20,0x28, + 0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x34,0x32,0x39,0x29,0x29,0x20,0x2b,0x20,0x5f, + 0x34,0x32,0x39,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69, + 0x74,0x68,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x56,0x2c,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4c,0x2c,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61, + 0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x56,0x29,0x2c,0x20,0x30,0x2e,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x72,0x6f,0x75, 0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x37,0x35,0x33,0x20,0x3d,0x20,0x72,0x64, - 0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x35,0x33, - 0x2e,0x7a,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, - 0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31, - 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x34,0x20,0x3d,0x20,0x5f,0x37,0x35,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x36,0x20,0x3d,0x20,0x5f,0x37,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76, - 0x65,0x63,0x32,0x20,0x5f,0x37,0x36,0x38,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20, + 0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x4c,0x29,0x2c, + 0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d, + 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53, + 0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x20,0x2a,0x20,0x47,0x65, + 0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29, + 0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20, + 0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65, + 0x63,0x74,0x28,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70, + 0x6f,0x73,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, + 0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x36,0x36, + 0x37,0x20,0x3d,0x20,0x28,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e, + 0x78,0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x79, + 0x20,0x2a,0x20,0x33,0x32,0x29,0x29,0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c, + 0x5f,0x70,0x6f,0x73,0x2e,0x7a,0x20,0x2a,0x20,0x31,0x30,0x32,0x34,0x29,0x29,0x20, + 0x2b,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x33, + 0x32,0x37,0x36,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, + 0x6e,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x72,0x64,0x6d, + 0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70, + 0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x36,0x36,0x37,0x20,0x25,0x20,0x35, + 0x31,0x32,0x2c,0x20,0x5f,0x36,0x36,0x37,0x20,0x2f,0x20,0x35,0x31,0x32,0x29,0x2c, + 0x20,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63, + 0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30,0x2c,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67, + 0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x46,0x30,0x20,0x2b,0x20,0x28,0x28,0x6d,0x61,0x78,0x28,0x76, + 0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x29,0x2c,0x20,0x46,0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20, + 0x2a,0x20,0x70,0x6f,0x77,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20, + 0x2d,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c, + 0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a, + 0x0a,0x69,0x6e,0x74,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66, + 0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x28,0x28,0x69,0x6e,0x74,0x28,0x64,0x6f,0x74, + 0x28,0x76,0x65,0x63,0x33,0x28,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e,0x30, + 0x2c,0x20,0x2d,0x30,0x2e,0x30,0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e,0x3d,0x20,0x30, + 0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36, + 0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x4e, + 0x2e,0x7a,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31, + 0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a, + 0x20,0x32,0x29,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x64,0x6f,0x74,0x28, + 0x76,0x65,0x63,0x33,0x28,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x2c, + 0x20,0x2d,0x31,0x2e,0x30,0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e,0x3d,0x20,0x30,0x2e, + 0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33, + 0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x33,0x29,0x29,0x20,0x2b,0x20,0x28, + 0x69,0x6e,0x74,0x28,0x4e,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30, + 0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31, + 0x32,0x35,0x29,0x20,0x2a,0x20,0x34,0x29,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74, + 0x28,0x64,0x6f,0x74,0x28,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x30,0x2c,0x20, + 0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x29,0x2c,0x20,0x4e,0x29,0x20, + 0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37, + 0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x35,0x29, + 0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x76,0x65,0x63,0x32,0x20,0x72,0x64,0x6d,0x5f,0x66, 0x61,0x63,0x65,0x5f,0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x38,0x30,0x38, - 0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x72,0x65,0x66, - 0x6c,0x65,0x63,0x74,0x28,0x56,0x2c,0x20,0x4e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3e, + 0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x61,0x74,0x6c,0x61, + 0x73,0x5f,0x72,0x65,0x63,0x74,0x2c,0x20,0x69,0x6e,0x74,0x20,0x66,0x61,0x63,0x65, + 0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x37,0x30,0x30,0x20, + 0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x69,0x7a,0x65,0x28,0x72,0x64, + 0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69, + 0x76,0x65,0x63,0x32,0x28,0x69,0x6e,0x74,0x28,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72, + 0x65,0x63,0x74,0x2e,0x78,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x37, + 0x30,0x30,0x2e,0x78,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20, + 0x25,0x20,0x32,0x29,0x20,0x2a,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x2c, + 0x20,0x69,0x6e,0x74,0x28,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x2e, + 0x79,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x37,0x30,0x30,0x2e,0x79, + 0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x2f,0x20,0x32,0x29, + 0x20,0x2a,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x29,0x3b,0x0a,0x7d,0x0a, + 0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x72,0x64,0x6d,0x5f, + 0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x2c,0x20,0x69,0x6e,0x74,0x20,0x69,0x6e, + 0x64,0x65,0x78,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20, + 0x6f,0x66,0x66,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x63,0x20,0x3d,0x20,0x76,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x2f,0x20,0x32, + 0x29,0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x31,0x39,0x33,0x39,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x33,0x39,0x2e,0x7a,0x20,0x3d,0x20,0x76, + 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x33, + 0x39,0x2e,0x79,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33,0x39,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e, + 0x64,0x65,0x78,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x34,0x33,0x20,0x3d,0x20, + 0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x34, + 0x33,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x31,0x39,0x34,0x33,0x2e,0x78,0x20,0x3d,0x20,0x76,0x2e,0x7a, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f, + 0x31,0x39,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x25,0x20,0x32,0x29,0x20, + 0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, + 0x31,0x39,0x34,0x37,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x31,0x39,0x34,0x37,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x39, + 0x34,0x37,0x2e,0x7a,0x20,0x2a,0x20,0x28,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x34, + 0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x35,0x30,0x20,0x3d,0x20, + 0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x31,0x20,0x3d,0x20,0x5f,0x31,0x39,0x35,0x30, + 0x2e,0x78,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x35,0x32, + 0x20,0x3d,0x20,0x5f,0x31,0x39,0x35,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31, + 0x39,0x35,0x32,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x36,0x30,0x31,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36, + 0x30,0x37,0x20,0x3d,0x20,0x5f,0x31,0x39,0x35,0x30,0x2e,0x79,0x20,0x2b,0x20,0x6f, + 0x66,0x66,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x35,0x32,0x2e, + 0x79,0x20,0x3d,0x20,0x5f,0x36,0x30,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x63, + 0x20,0x3d,0x20,0x5f,0x31,0x39,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x36,0x32,0x35,0x20,0x3d,0x20, + 0x5f,0x31,0x39,0x35,0x32,0x2e,0x78,0x79,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20, + 0x2f,0x20,0x28,0x28,0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x31,0x29,0x20,0x2b,0x20, + 0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x37,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31,0x39, + 0x35,0x30,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x32,0x38,0x20,0x3d,0x20,0x5f, + 0x36,0x32,0x35,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x33,0x30,0x20,0x3d,0x20,0x5f,0x36, + 0x32,0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x76,0x65,0x63,0x32,0x28,0x28,0x28,0x5f,0x36,0x32,0x38,0x20,0x2b,0x20,0x5f, + 0x36,0x33,0x30,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e, + 0x35,0x2c,0x20,0x28,0x28,0x5f,0x36,0x32,0x38,0x20,0x2d,0x20,0x5f,0x36,0x33,0x30, + 0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x3b, + 0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x68,0x61,0x73,0x68,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x6e,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x73,0x69,0x6e,0x28,0x6e,0x29,0x20,0x2a,0x20, + 0x34,0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x3b,0x0a,0x7d, + 0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x6e, + 0x6f,0x69,0x73,0x65,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, + 0x78,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x5f,0x31,0x32,0x39,0x20,0x3d,0x20,0x66,0x72,0x61,0x63,0x74, + 0x28,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x37,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28, + 0x66,0x6c,0x6f,0x6f,0x72,0x28,0x78,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31, + 0x2e,0x30,0x2c,0x20,0x31,0x35,0x37,0x2e,0x30,0x2c,0x20,0x31,0x31,0x33,0x2e,0x30, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37, + 0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x30,0x20,0x3d,0x20,0x5f, + 0x31,0x32,0x39,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d, + 0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x35,0x37,0x2e,0x30,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20, + 0x31,0x35,0x38,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x36,0x20,0x3d,0x20,0x5f,0x31, + 0x32,0x39,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20, + 0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x31,0x33,0x2e,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31, + 0x31,0x34,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20, + 0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x32,0x37,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x32, + 0x37,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x68,0x61,0x73, + 0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20, + 0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29, + 0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x5f,0x31,0x36,0x36,0x29,0x2c,0x20, + 0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x34,0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x35,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x6d,0x69,0x78, + 0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x2c,0x20, + 0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x2c,0x20,0x5f, + 0x31,0x35,0x30,0x29,0x2c,0x20,0x5f,0x31,0x36,0x36,0x29,0x2c,0x20,0x5f,0x31,0x32, + 0x39,0x2e,0x7a,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x66,0x62,0x6d,0x28,0x69,0x6e,0x6f,0x75,0x74,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x29,0x0a,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x66, + 0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x70, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69, + 0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x6d,0x61,0x74,0x33,0x28, + 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30, + 0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35, + 0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37, + 0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32, + 0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c, + 0x20,0x30,0x2e,0x37,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32, + 0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35, + 0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30, + 0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31, + 0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35, + 0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39, + 0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35, + 0x39,0x33,0x37,0x35,0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37, + 0x31,0x33,0x38,0x39,0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29, + 0x20,0x2a,0x20,0x70,0x29,0x20,0x2a,0x20,0x31,0x2e,0x31,0x30,0x30,0x30,0x30,0x30, + 0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32, + 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2a,0x20,0x30,0x2e,0x32,0x35,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x6d,0x61,0x74,0x33,0x28, + 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30, + 0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35, + 0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37, + 0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32, + 0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c, + 0x20,0x30,0x2e,0x37,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32, + 0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35, + 0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30, + 0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31, + 0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35, + 0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39, + 0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35, + 0x39,0x33,0x37,0x35,0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37, + 0x31,0x33,0x38,0x39,0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29, + 0x20,0x2a,0x20,0x70,0x29,0x20,0x2a,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30, + 0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x36,0x36,0x36, + 0x36,0x36,0x36,0x37,0x31,0x36,0x33,0x33,0x37,0x32,0x30,0x33,0x39,0x37,0x39,0x34, + 0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d, + 0x20,0x28,0x6d,0x61,0x74,0x33,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c, + 0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38, + 0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30, + 0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30, + 0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x36, + 0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31, + 0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32,0x30,0x30,0x30,0x30, + 0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35, + 0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34, + 0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34, + 0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20, + 0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33, + 0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c,0x20,0x31,0x2e,0x32, + 0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37,0x37,0x30,0x35,0x30, + 0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29,0x20,0x2a,0x20,0x31, + 0x2e,0x32,0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x32,0x33,0x31,0x36,0x32,0x38,0x34, + 0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20, + 0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f, + 0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x20,0x2a, + 0x20,0x30,0x2e,0x30,0x38,0x33,0x33,0x33,0x33,0x33,0x33,0x35,0x38,0x31,0x36,0x38, + 0x36,0x30,0x31,0x39,0x38,0x39,0x37,0x34,0x36,0x30,0x39,0x33,0x37,0x35,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x6d,0x61,0x74,0x33,0x28,0x76, + 0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30, + 0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36, + 0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36, + 0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76, + 0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33, + 0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20, + 0x30,0x2e,0x37,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32, + 0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39, + 0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38, + 0x35,0x39,0x33,0x37,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e, + 0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38, + 0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39, + 0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39, + 0x33,0x37,0x35,0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31, + 0x33,0x38,0x39,0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20, + 0x2a,0x20,0x70,0x29,0x20,0x2a,0x20,0x31,0x2e,0x33,0x39,0x39,0x39,0x39,0x39,0x39, + 0x37,0x36,0x31,0x35,0x38,0x31,0x34,0x32,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32, + 0x36,0x33,0x20,0x3d,0x20,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x34,0x20,0x3d,0x20,0x5f, + 0x32,0x36,0x33,0x20,0x2b,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x34,0x31,0x36,0x36, + 0x36,0x36,0x36,0x37,0x39,0x30,0x38,0x34,0x33,0x30,0x30,0x39,0x39,0x34,0x38,0x37, + 0x33,0x30,0x34,0x36,0x38,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20, + 0x3d,0x20,0x5f,0x32,0x36,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, + 0x72,0x6e,0x20,0x5f,0x32,0x36,0x34,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x28,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2c,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x32,0x38,0x39,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x2c, + 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x75,0x6e,0x70,0x6f, + 0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x5f,0x32,0x39,0x32,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61, + 0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x66,0x69,0x6e, + 0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x32,0x37,0x31,0x2e,0x73,0x6b, + 0x79,0x42,0x61,0x73,0x65,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x6b,0x79,0x54, + 0x6f,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73, + 0x6b,0x79,0x70,0x6f,0x73,0x2e,0x79,0x20,0x2a,0x20,0x32,0x2e,0x30,0x2c,0x20,0x30, + 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30, + 0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29, + 0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x48,0x61, + 0x6c,0x6f,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x5f,0x32,0x38,0x39, + 0x20,0x2d,0x20,0x30,0x2e,0x39,0x34,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37, + 0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x20,0x2a, + 0x20,0x31,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x38,0x30, + 0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35, + 0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x32,0x30,0x30, + 0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37, + 0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x32,0x38,0x39,0x20,0x3e,0x20,0x30,0x2e,0x39,0x39,0x39,0x38,0x39, + 0x39,0x39,0x38,0x33,0x34,0x30,0x36,0x30,0x36,0x36,0x38,0x39,0x34,0x35,0x33,0x31, + 0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73, + 0x75,0x6e,0x44,0x69,0x73,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33, + 0x33,0x33,0x20,0x3d,0x20,0x5f,0x32,0x39,0x32,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x2b,0x3d,0x20,0x28,0x6d,0x69,0x78,0x28,0x5f, + 0x32,0x37,0x31,0x2e,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x48,0x61,0x6c,0x6f,0x2c, + 0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33, + 0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x61,0x62,0x73,0x28,0x5f,0x33,0x33,0x33,0x29, + 0x20,0x2a,0x20,0x38,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e, + 0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36, + 0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x32,0x37,0x31,0x2e,0x68,0x61,0x73,0x43,0x6c,0x6f,0x75,0x64,0x73,0x20,0x3d,0x3d, 0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65, - 0x28,0x64,0x69,0x66,0x66,0x20,0x2b,0x20,0x28,0x5f,0x38,0x30,0x38,0x20,0x2a,0x20, - 0x32,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, - 0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x37,0x33, - 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20, - 0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73, - 0x6d,0x70,0x2c,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x5f,0x37,0x36,0x38,0x29,0x20, - 0x2b,0x20,0x28,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f, - 0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x20,0x2a,0x20, - 0x5f,0x37,0x34,0x37,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x32,0x28,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x53,0x69,0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74, - 0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x29,0x29, - 0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20, - 0x69,0x20,0x3c,0x20,0x34,0x30,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x38,0x37,0x37,0x20,0x3d,0x20,0x64,0x69,0x66, - 0x66,0x20,0x2b,0x20,0x28,0x5f,0x38,0x30,0x38,0x20,0x2a,0x20,0x28,0x66,0x6c,0x6f, - 0x61,0x74,0x28,0x69,0x20,0x2b,0x20,0x31,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64, - 0x6f,0x74,0x28,0x5f,0x38,0x37,0x37,0x2c,0x20,0x4e,0x29,0x20,0x3c,0x20,0x30,0x2e, - 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75, - 0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61, - 0x6c,0x69,0x7a,0x65,0x28,0x5f,0x38,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31, - 0x20,0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x32,0x20,0x5f,0x38,0x39,0x32,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f, - 0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x39, - 0x31,0x37,0x20,0x3d,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28, - 0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70, - 0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x37,0x36,0x38,0x2e,0x78,0x20,0x2b, - 0x20,0x69,0x6e,0x74,0x28,0x5f,0x38,0x39,0x32,0x2e,0x78,0x20,0x2a,0x20,0x5f,0x37, - 0x34,0x37,0x29,0x2c,0x20,0x5f,0x37,0x36,0x38,0x2e,0x79,0x20,0x2b,0x20,0x69,0x6e, - 0x74,0x28,0x5f,0x38,0x39,0x32,0x2e,0x79,0x20,0x2a,0x20,0x5f,0x37,0x34,0x37,0x29, - 0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x39,0x32,0x31,0x20, - 0x3d,0x20,0x5f,0x39,0x31,0x37,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x39, - 0x32,0x34,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x38,0x37,0x37, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, - 0x5f,0x39,0x33,0x35,0x20,0x3d,0x20,0x28,0x5f,0x39,0x32,0x31,0x20,0x3e,0x20,0x30, - 0x2e,0x30,0x29,0x20,0x26,0x26,0x20,0x28,0x5f,0x39,0x32,0x31,0x20,0x3c,0x20,0x5f, - 0x39,0x32,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f, - 0x6f,0x6c,0x20,0x5f,0x39,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x33,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x39,0x34,0x33,0x20,0x3d,0x20,0x28,0x5f,0x39,0x32,0x31,0x20,0x2b,0x20, - 0x30,0x2e,0x35,0x29,0x20,0x3e,0x20,0x5f,0x39,0x32,0x34,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x39,0x34,0x33,0x20,0x3d, - 0x20,0x5f,0x39,0x33,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x34, - 0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, - 0x5f,0x39,0x31,0x37,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x20, - 0x3d,0x20,0x5f,0x38,0x30,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x38,0x30,0x38,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6b,0x79,0x44, - 0x69,0x72,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x73,0x6b,0x79, - 0x44,0x69,0x72,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31, - 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x73,0x6b,0x79,0x44,0x69, - 0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x5f,0x32,0x37, - 0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6b,0x79,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34, - 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x74,0x20,0x69,0x73,0x69,0x67,0x6e,0x28, - 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x66,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x20,0x3c, - 0x20,0x30,0x2e,0x30,0x29,0x20,0x3f,0x20,0x28,0x2d,0x31,0x29,0x20,0x3a,0x20,0x31, - 0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f, - 0x6d,0x61,0x70,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e, - 0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f, - 0x73,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x66,0x61, - 0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76, - 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61, - 0x6c,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x39,0x37,0x33,0x20, - 0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f, - 0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39, - 0x37,0x33,0x2e,0x7a,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x39,0x38,0x34,0x20,0x3d,0x20,0x72,0x64,0x6d, + 0x61,0x6d,0x20,0x3d,0x20,0x28,0x28,0x5f,0x32,0x39,0x32,0x20,0x2f,0x20,0x76,0x65, + 0x63,0x33,0x28,0x5f,0x33,0x33,0x33,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29, + 0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e,0x74,0x69,0x6d, + 0x65,0x20,0x2a,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37, + 0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31, + 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x36,0x39,0x20,0x3d,0x20, + 0x66,0x62,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28, + 0x66,0x69,0x6e,0x61,0x6c,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29, + 0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x6d,0x61,0x78,0x28,0x30,0x2e,0x30,0x2c, + 0x20,0x5f,0x33,0x33,0x33,0x29,0x20,0x2a,0x20,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68, + 0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x35,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x5f, + 0x33,0x36,0x39,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30, + 0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32, + 0x35,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x69, + 0x6e,0x61,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x28,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x56,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x33,0x20,0x72,0x64,0x6d,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x2c, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x64,0x69,0x66,0x66, + 0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x2c, + 0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73, + 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x37,0x33,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d, 0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d, - 0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x37, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x39,0x38,0x38,0x20,0x3d, - 0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x5f,0x74, - 0x6f,0x5f,0x72,0x64,0x6d,0x5f,0x73,0x69,0x7a,0x65,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f, - 0x39,0x37,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x39,0x38,0x34,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f, - 0x39,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f, - 0x39,0x39,0x36,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x70, - 0x69,0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d, - 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x39,0x38,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x39,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f, - 0x31,0x30,0x30,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68, - 0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39, + 0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x6c, + 0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67, + 0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x37,0x34,0x35,0x20,0x3d,0x20,0x72,0x64,0x6d, + 0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x31,0x30,0x31,0x30,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x28,0x5f,0x39,0x38,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, - 0x72,0x6e,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x72,0x64, - 0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20, - 0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x39,0x39,0x36,0x2e,0x78,0x20,0x2b,0x20,0x69, - 0x6e,0x74,0x28,0x5f,0x31,0x30,0x30,0x33,0x2e,0x78,0x20,0x2a,0x20,0x5f,0x31,0x30, - 0x31,0x30,0x29,0x2c,0x20,0x5f,0x39,0x39,0x36,0x2e,0x79,0x20,0x2b,0x20,0x69,0x6e, - 0x74,0x28,0x5f,0x31,0x30,0x30,0x33,0x2e,0x79,0x20,0x2a,0x20,0x5f,0x31,0x30,0x31, - 0x30,0x29,0x29,0x2c,0x20,0x30,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6d,0x69,0x78,0x28, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x61,0x2c,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x62,0x2c,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x69,0x78,0x28,0x61,0x2c,0x20,0x62, - 0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x70,0x6f,0x77,0x28,0x74,0x2c,0x20,0x31,0x2e, + 0x61,0x74,0x20,0x5f,0x37,0x34,0x37,0x20,0x3d,0x20,0x5f,0x37,0x34,0x35,0x2e,0x7a, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x34,0x37,0x20,0x3c, + 0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x33, + 0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f, + 0x37,0x36,0x37,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x5f,0x37,0x34,0x37,0x20,0x2a, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x69, + 0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d, + 0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x2e,0x78,0x29,0x29,0x20,0x2f,0x20,0x32,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x37,0x37,0x30,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x37, + 0x36,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x37, + 0x34,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x37, + 0x36,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x37, + 0x37,0x38,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x70,0x69, + 0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x38,0x31,0x38,0x20,0x3d,0x20,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x56, + 0x2c,0x20,0x4e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3e,0x20,0x31,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d, + 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x64,0x69,0x66,0x66,0x20, + 0x2b,0x20,0x28,0x5f,0x38,0x31,0x38,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x30, + 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x72,0x64,0x6d,0x5f, + 0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x28,0x76, + 0x65,0x63,0x32,0x28,0x5f,0x37,0x37,0x38,0x29,0x20,0x2b,0x20,0x28,0x72,0x64,0x6d, + 0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x20,0x2a,0x20,0x5f,0x37,0x37,0x30,0x29,0x29, + 0x20,0x2f,0x20,0x76,0x65,0x63,0x32,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53, + 0x69,0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64, + 0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x29,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69, + 0x6e,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x34,0x30, + 0x3b,0x20,0x69,0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, + 0x5f,0x38,0x38,0x37,0x20,0x3d,0x20,0x64,0x69,0x66,0x66,0x20,0x2b,0x20,0x28,0x5f, + 0x38,0x31,0x38,0x20,0x2a,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x69,0x20,0x2b, + 0x20,0x31,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x74,0x28,0x5f,0x38,0x38, + 0x37,0x2c,0x20,0x4e,0x29,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x39,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x38, + 0x38,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20, + 0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x39, + 0x32,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x72,0x64,0x6d, + 0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x28, + 0x76,0x65,0x63,0x32,0x28,0x5f,0x37,0x37,0x38,0x29,0x20,0x2b,0x20,0x28,0x72,0x64, + 0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x29,0x20,0x2a,0x20,0x5f,0x37,0x37, + 0x30,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x32,0x28,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x53,0x69,0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73, + 0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x29,0x2c,0x20,0x30,0x2e, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x39,0x32,0x38,0x20,0x3d,0x20,0x5f, + 0x39,0x32,0x34,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x39,0x33,0x31,0x20, + 0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x38,0x38,0x37,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x34, + 0x32,0x20,0x3d,0x20,0x28,0x5f,0x39,0x32,0x38,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29, + 0x20,0x26,0x26,0x20,0x28,0x5f,0x39,0x32,0x38,0x20,0x3c,0x20,0x5f,0x39,0x33,0x31, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x39,0x35,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x39,0x34,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x39, + 0x35,0x30,0x20,0x3d,0x20,0x28,0x5f,0x39,0x32,0x38,0x20,0x2b,0x20,0x30,0x2e,0x35, + 0x29,0x20,0x3e,0x20,0x5f,0x39,0x33,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x39,0x35,0x30,0x20,0x3d,0x20,0x5f,0x39, + 0x34,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x35,0x30,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x39,0x32, + 0x34,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x20,0x3d,0x20,0x5f, + 0x38,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x38,0x31, + 0x38,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x20, + 0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x73,0x6b,0x79,0x44,0x69,0x72, + 0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c, + 0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73, + 0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x3b,0x0a, + 0x7d,0x0a,0x0a,0x69,0x6e,0x74,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x68,0x69,0x67, + 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x66,0x29,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x20,0x3c,0x20,0x30,0x2e, + 0x30,0x29,0x20,0x3f,0x20,0x28,0x2d,0x31,0x29,0x20,0x3a,0x20,0x31,0x3b,0x0a,0x7d, + 0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f, + 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x5f,0x74,0x6f,0x5f,0x72,0x64,0x6d,0x5f,0x73, + 0x69,0x7a,0x65,0x28,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, + 0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, + 0x70,0x6f,0x77,0x28,0x32,0x2e,0x30,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x38, + 0x20,0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a, + 0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x61, + 0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61, + 0x70,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20, + 0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x66,0x61,0x6c,0x6c, + 0x62,0x61,0x63,0x6b,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f, + 0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x39,0x38,0x30,0x20,0x3d,0x20, + 0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65, + 0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x38,0x30, + 0x2e,0x7a,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, + 0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x6e,0x74,0x20,0x5f,0x39,0x39,0x31,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69, + 0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x37,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x39,0x39,0x35,0x20,0x3d,0x20,0x69, + 0x6e,0x74,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x5f,0x74,0x6f,0x5f, + 0x72,0x64,0x6d,0x5f,0x73,0x69,0x7a,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x39,0x38, + 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x35,0x20,0x3d,0x20,0x5f,0x39,0x39,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x39,0x39, + 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x30, + 0x30,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x70,0x69, + 0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20, + 0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x38,0x20,0x3d,0x20,0x5f,0x39,0x39,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x39,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x31, + 0x30,0x31,0x30,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65, + 0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x31,0x30,0x31,0x37,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, + 0x5f,0x39,0x39,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, + 0x6e,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x72,0x64,0x6d, + 0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x69, + 0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x30,0x30,0x33,0x2e,0x78,0x20,0x2b,0x20,0x69, + 0x6e,0x74,0x28,0x5f,0x31,0x30,0x31,0x30,0x2e,0x78,0x20,0x2a,0x20,0x5f,0x31,0x30, + 0x31,0x37,0x29,0x2c,0x20,0x5f,0x31,0x30,0x30,0x33,0x2e,0x79,0x20,0x2b,0x20,0x69, + 0x6e,0x74,0x28,0x5f,0x31,0x30,0x31,0x30,0x2e,0x79,0x20,0x2a,0x20,0x5f,0x31,0x30, + 0x31,0x37,0x29,0x29,0x2c,0x20,0x30,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,0x0a, + 0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6d,0x69,0x78, + 0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x61,0x2c,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x62,0x2c,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x69,0x78,0x28,0x61,0x2c,0x20, + 0x62,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x70,0x6f,0x77,0x28,0x74,0x2c,0x20,0x31, + 0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37, + 0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2f,0x20,0x28,0x70,0x6f,0x77, + 0x28,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38, + 0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2b, + 0x20,0x70,0x6f,0x77,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x74,0x2c,0x20,0x31,0x2e, 0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39, - 0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2f,0x20,0x28,0x70,0x6f,0x77,0x28, - 0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34, - 0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2b,0x20, - 0x70,0x6f,0x77,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x74,0x2c,0x20,0x31,0x2e,0x36, - 0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31, - 0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x29,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x28,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x6c, - 0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31, - 0x30,0x36,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f, - 0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x32,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28, - 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f, - 0x31,0x30,0x37,0x32,0x20,0x3d,0x20,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d, - 0x20,0x30,0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d, - 0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30, - 0x37,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64, - 0x69,0x66,0x66,0x2e,0x78,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x7a,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x32,0x29,0x20,0x7c,0x7c, - 0x20,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x33,0x29,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63, - 0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x78,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x79, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66, - 0x66,0x2e,0x7a,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x73,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x76,0x65,0x63,0x33,0x20,0x73,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76, - 0x65,0x63,0x33,0x20,0x73,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x31,0x30,0x37,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61, - 0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d, - 0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x29,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c, + 0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x28,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x20, + 0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f, + 0x31,0x30,0x37,0x30,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78, + 0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x32,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32, + 0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x31,0x30,0x37,0x39,0x20,0x3d,0x20,0x28,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d, + 0x3d,0x20,0x30,0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d, + 0x3d,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31, + 0x30,0x37,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28, + 0x64,0x69,0x66,0x66,0x2e,0x78,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x7a,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x28,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d,0x3d,0x20,0x32,0x29,0x20,0x7c, + 0x7c,0x20,0x28,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d,0x3d,0x20,0x33,0x29,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65, + 0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x78,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e, + 0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69, + 0x66,0x66,0x2e,0x7a,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x73,0x31,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x73,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x76,0x65,0x63,0x33,0x20,0x73,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x5f,0x31,0x30,0x37,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74, - 0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20, - 0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73, - 0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x29,0x3b,0x0a,0x20, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74, + 0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20, + 0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x64,0x65,0x6c, - 0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c, + 0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32, + 0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69, + 0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x64,0x65, + 0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x34,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33, + 0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c, + 0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x34,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, + 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d,0x3d,0x20, + 0x32,0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d,0x3d,0x20, + 0x33,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20, + 0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28, + 0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20, + 0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32, + 0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67, + 0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20, + 0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x64,0x65,0x6c, + 0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x69,0x73,0x69, + 0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x2c,0x20,0x69,0x73,0x69, + 0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x2c,0x20,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x34,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28, - 0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20, - 0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x32, - 0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x33, - 0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x64, - 0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x69, - 0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x30, + 0x39,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x76, + 0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x64,0x65, + 0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c, + 0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x29, 0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20, - 0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d, - 0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74, - 0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x73,0x33,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x69,0x73,0x69,0x67, - 0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x2c,0x20,0x69,0x73,0x69,0x67, - 0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39, - 0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x76,0x65, - 0x63,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x64,0x65,0x6c, - 0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20, - 0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x29,0x2c, - 0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69,0x76, - 0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x31,0x29,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x33,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x69,0x76,0x65,0x63, - 0x33,0x28,0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c, - 0x5f,0x70,0x6f,0x73,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30, + 0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69, + 0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x31,0x29,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x33,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x69,0x76,0x65, + 0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61, + 0x6c,0x5f,0x70,0x6f,0x73,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e, + 0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20, + 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31, + 0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c, + 0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39, + 0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37, + 0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x36,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x69,0x76,0x65, + 0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61, + 0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x31,0x29,0x2c,0x20,0x76,0x65,0x63, + 0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x38,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30, + 0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37, + 0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31, + 0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35, + 0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30, + 0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20, + 0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33, + 0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x32,0x29, + 0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38, + 0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30, + 0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30, + 0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36, + 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x4e, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64, + 0x28,0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20, + 0x2b,0x20,0x73,0x33,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30, 0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x76, + 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x76, 0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39, 0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20, 0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32, 0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30, 0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37, 0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x36,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x69,0x76,0x65,0x63, - 0x33,0x28,0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c, - 0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x31,0x29,0x2c,0x20,0x76,0x65,0x63,0x33, - 0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x38,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30, - 0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38, - 0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31, - 0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c, - 0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34, - 0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d, - 0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28, - 0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x32,0x29,0x2c, - 0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, - 0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39, - 0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30, - 0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37, - 0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30, - 0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32, - 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x4e,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x33,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28, - 0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b, - 0x20,0x73,0x33,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x76,0x65, - 0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32, - 0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30, - 0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38, - 0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30, - 0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35, - 0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35, - 0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69, - 0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20, - 0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f, - 0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x20,0x3d,0x20,0x61,0x62, - 0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x38,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d, - 0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39, - 0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69, - 0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x20,0x3d, - 0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x33,0x31,0x20,0x3d,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x35,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64, + 0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d, + 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66, + 0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x20,0x3d,0x20,0x61, + 0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x32,0x20,0x3d,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x33,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e, - 0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73, - 0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x33,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33, - 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28, - 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32, - 0x36,0x39,0x20,0x3d,0x20,0x76,0x70,0x6f,0x73,0x2e,0x79,0x20,0x3c,0x20,0x28,0x5f, - 0x32,0x37,0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x20, - 0x2d,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36, - 0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32, - 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32, - 0x37,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x36, - 0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x32,0x37,0x39,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x69, - 0x73,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20, - 0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x31,0x32,0x37,0x39,0x20,0x3d,0x20,0x5f,0x31,0x32,0x36,0x39,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32, - 0x37,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74, - 0x20,0x3d,0x20,0x69,0x70,0x6f,0x73,0x20,0x2d,0x20,0x28,0x6f,0x72,0x69,0x67,0x5f, - 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x2a,0x20,0x30,0x2e,0x30,0x31,0x39,0x39,0x39, - 0x39,0x39,0x39,0x39,0x35,0x35,0x32,0x39,0x36,0x35,0x31,0x36,0x34,0x31,0x38,0x34, - 0x35,0x37,0x30,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, - 0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x69,0x78, - 0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3c,0x20, - 0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x33,0x33, - 0x32,0x20,0x3d,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x74, - 0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70, - 0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d, - 0x70,0x28,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75, - 0x73,0x74,0x2e,0x7a,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34, - 0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32, - 0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39, - 0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33, - 0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x2c,0x20,0x69, - 0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74, - 0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x2e,0x79,0x2c,0x20,0x39,0x2e,0x39, - 0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33, - 0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d, - 0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34, - 0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31, - 0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d, - 0x70,0x28,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75, - 0x73,0x74,0x2e,0x78,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34, - 0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32, - 0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39, - 0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33, - 0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20, - 0x31,0x36,0x29,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61, - 0x6c,0x20,0x3d,0x20,0x5f,0x31,0x33,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x31, - 0x33,0x33,0x32,0x29,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39, - 0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38, - 0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72, - 0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72, - 0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x20,0x2b,0x3d,0x20,0x28,0x74,0x6f,0x5f,0x63, - 0x65,0x6e,0x74,0x65,0x72,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30, - 0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37, - 0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x63,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x35,0x35,0x20,0x3d,0x20,0x69, - 0x6e,0x74,0x28,0x72,0x6f,0x75,0x6e,0x64,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f, - 0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x77,0x20,0x2a,0x20,0x32,0x35,0x35, - 0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20, - 0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x72, - 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x30, - 0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35, - 0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74, - 0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x26,0x20,0x31,0x29, - 0x20,0x21,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e, - 0x20,0x31,0x29,0x20,0x26,0x20,0x31,0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30, - 0x30,0x37,0x38,0x37,0x34,0x30,0x31,0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35,0x30, - 0x31,0x35,0x38,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31, - 0x33,0x37,0x35,0x20,0x3d,0x20,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20, - 0x35,0x29,0x20,0x26,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x5f, - 0x31,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f, - 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x66,0x6c, - 0x6f,0x61,0x74,0x28,0x5f,0x31,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31, - 0x34,0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39, - 0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30, - 0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36, - 0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20,0x33, - 0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33, - 0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38, - 0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x33,0x39,0x32, - 0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78, - 0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x39,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33, - 0x39,0x32,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x39,0x36,0x20,0x3d,0x20,0x5f,0x31, - 0x33,0x39,0x32,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, - 0x5f,0x31,0x33,0x39,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x34,0x20,0x3e,0x3d, - 0x20,0x5f,0x31,0x33,0x39,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, - 0x20,0x5f,0x31,0x34,0x30,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x31,0x33,0x39,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x30,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33, - 0x39,0x34,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x39,0x32,0x2e,0x7a,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x30, - 0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x30,0x35, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e, - 0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30, - 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x31,0x38,0x20,0x3d,0x20,0x5f, - 0x31,0x33,0x39,0x36,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x39,0x34,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x32, - 0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x31,0x34,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x32, - 0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x36,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33, - 0x39,0x32,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x31,0x34,0x32,0x36,0x20,0x3d,0x20,0x5f,0x31,0x34,0x31,0x38, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x32,0x36,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, - 0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e, - 0x79,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28, - 0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x66, - 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x34,0x33, - 0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d, - 0x20,0x2d,0x20,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x34,0x37,0x20,0x3d, - 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x37,0x31,0x2e, - 0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34, - 0x35,0x32,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f, - 0x31,0x34,0x34,0x33,0x20,0x2b,0x20,0x5f,0x31,0x34,0x34,0x37,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31, - 0x34,0x36,0x30,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x30, - 0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30, - 0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x74, - 0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78, - 0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69, - 0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78, - 0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x34,0x35,0x32,0x2c,0x20,0x5f,0x31,0x34,0x34, - 0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x20,0x3d,0x20,0x5f,0x31,0x34,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x36,0x39,0x20,0x3d, - 0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, + 0x6d,0x5f,0x32,0x38,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64, + 0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x39,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64, + 0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x20, + 0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x20,0x3d,0x20,0x73,0x6d,0x69,0x78,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x34,0x34,0x33,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x34,0x34,0x37,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, - 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x31,0x35,0x30,0x33,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64, - 0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x34,0x37,0x29,0x2c,0x20,0x30,0x2e, - 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x34,0x20,0x5f,0x31,0x35,0x33,0x36,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35, - 0x2e,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x76,0x65, - 0x63,0x34,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x76,0x70,0x6f,0x73,0x20,0x2a,0x20, - 0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30, - 0x36,0x32,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x34,0x37, - 0x20,0x3d,0x20,0x28,0x28,0x5f,0x31,0x35,0x33,0x36,0x2e,0x78,0x79,0x7a,0x20,0x2f, - 0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x35,0x33,0x36,0x2e,0x77,0x29,0x29,0x20, - 0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, - 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x35,0x31,0x20,0x3d,0x20,0x5f,0x31,0x35,0x34, - 0x37,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30, - 0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39, - 0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x30,0x36,0x20, - 0x3d,0x20,0x5f,0x31,0x35,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39, - 0x30,0x36,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x35,0x35,0x31,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67, - 0x68,0x74,0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63, - 0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x34,0x36,0x39,0x29,0x20, - 0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69, - 0x63,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74, - 0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x76,0x65,0x63, - 0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39, - 0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28, - 0x28,0x5f,0x31,0x34,0x36,0x39,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69, - 0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53, - 0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63, - 0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f, - 0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30, - 0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x35,0x30,0x33,0x29,0x20,0x2b,0x20,0x39,0x2e, + 0x61,0x6d,0x5f,0x33,0x32,0x20,0x3d,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x33,0x33,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61, + 0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, + 0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, + 0x33,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e, + 0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31, + 0x32,0x37,0x36,0x20,0x3d,0x20,0x76,0x70,0x6f,0x73,0x2e,0x79,0x20,0x3c,0x20,0x28, + 0x5f,0x32,0x37,0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74, + 0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37, + 0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36, + 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31, + 0x32,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32, + 0x37,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x31,0x32,0x38,0x36,0x20,0x3d,0x20,0x5f,0x31,0x32,0x38,0x32,0x2e, + 0x69,0x73,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d, + 0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, + 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x31,0x32,0x38,0x36,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x36,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31, + 0x32,0x38,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73, + 0x74,0x20,0x3d,0x20,0x69,0x70,0x6f,0x73,0x20,0x2d,0x20,0x28,0x6f,0x72,0x69,0x67, + 0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x2a,0x20,0x30,0x2e,0x30,0x31,0x39,0x39, + 0x39,0x39,0x39,0x39,0x39,0x35,0x35,0x32,0x39,0x36,0x35,0x31,0x36,0x34,0x31,0x38, + 0x34,0x35,0x37,0x30,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x6e,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x69, + 0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3c, + 0x20,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x33, + 0x33,0x39,0x20,0x3d,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28, + 0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d, + 0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61, + 0x6d,0x70,0x28,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a, + 0x75,0x73,0x74,0x2e,0x7a,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37, + 0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35, + 0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e, + 0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37, + 0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x2c,0x20, + 0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x70,0x6f,0x73,0x5f,0x61,0x66, + 0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x2e,0x79,0x2c,0x20,0x39,0x2e, 0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36, 0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65, - 0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, - 0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64,0x6f, - 0x77,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x39,0x30,0x36, - 0x2e,0x78,0x79,0x2c,0x20,0x5f,0x31,0x35,0x35,0x31,0x29,0x29,0x29,0x20,0x2a,0x20, - 0x5f,0x31,0x35,0x30,0x33,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75, - 0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f, - 0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, - 0x20,0x5f,0x31,0x35,0x38,0x38,0x20,0x3d,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65, - 0x6e,0x74,0x65,0x72,0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a,0x20,0x30,0x2e,0x34,0x39, - 0x30,0x30,0x30,0x30,0x30,0x30,0x39,0x35,0x33,0x36,0x37,0x34,0x33,0x31,0x36,0x34, - 0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33, - 0x20,0x5f,0x31,0x35,0x39,0x34,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d, - 0x6f,0x64,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x74,0x72,0x69,0x6c,0x65,0x43,0x65, - 0x6e,0x74,0x65,0x72,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30, - 0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x34,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30, - 0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20, - 0x5f,0x31,0x36,0x32,0x30,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28, - 0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70, - 0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f, - 0x6f,0x72,0x64,0x2e,0x78,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31, - 0x32,0x37,0x35,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x67, - 0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2f,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x73,0x63,0x72,0x65, - 0x65,0x6e,0x5f,0x68,0x29,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31, - 0x36,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x32,0x30,0x2e,0x78,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36,0x33,0x31,0x20,0x3d,0x20, - 0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65, - 0x64,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, - 0x20,0x5f,0x31,0x36,0x33,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x31,0x36,0x33,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x33,0x37,0x20,0x3d,0x20,0x72,0x64,0x6d, - 0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x30,0x29,0x2e,0x7a,0x20,0x3e,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x33,0x37,0x20,0x3d, - 0x20,0x5f,0x31,0x36,0x33,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36,0x33,0x37,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20, - 0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34, - 0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x36,0x30,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x72, - 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36, - 0x35,0x30,0x20,0x3d,0x20,0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c, - 0x69,0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, - 0x31,0x36,0x35,0x37,0x20,0x3d,0x20,0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x5f,0x31, - 0x35,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34, - 0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x35,0x20,0x3d,0x20,0x2d,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x5f,0x31,0x35,0x38,0x38,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36,0x35, - 0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x49,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d, - 0x20,0x5f,0x31,0x35,0x39,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x37,0x32, - 0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37, - 0x35,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x31,0x36,0x39,0x34,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28, - 0x4e,0x2c,0x20,0x5f,0x31,0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x34,0x20,0x5f,0x31,0x36,0x39,0x37,0x20,0x3d,0x20,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x28,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d, - 0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x36,0x39,0x34,0x2c, - 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x31,0x37,0x30,0x37,0x20,0x3d,0x20,0x73,0x69,0x6e,0x28,0x72,0x6f, - 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x33,0x2e,0x31,0x34,0x31,0x32, - 0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31,0x31,0x31,0x33,0x32,0x38,0x31,0x32, - 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68, - 0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x6d,0x69,0x78,0x28,0x5f,0x31, - 0x36,0x37,0x32,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31, - 0x36,0x37,0x32,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35, - 0x39,0x39,0x39,0x39,0x32,0x37,0x35,0x32,0x30,0x37,0x35,0x31,0x39,0x35,0x33,0x31, - 0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x32,0x30,0x30,0x30,0x30,0x36,0x39, - 0x36,0x31,0x38,0x32,0x32,0x35,0x30,0x39,0x37,0x36,0x35,0x36,0x32,0x35,0x2c,0x20, - 0x30,0x2e,0x30,0x37,0x32,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30, - 0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x2c,0x20,0x76, - 0x65,0x63,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a, - 0x20,0x28,0x28,0x5f,0x31,0x36,0x35,0x30,0x20,0x2a,0x20,0x5f,0x31,0x36,0x39,0x37, - 0x2e,0x78,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x36,0x39,0x37, - 0x2e,0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64, - 0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x20,0x2a,0x20, - 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39, - 0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38, - 0x37,0x35,0x20,0x2a,0x20,0x5f,0x31,0x37,0x30,0x37,0x29,0x29,0x29,0x20,0x2a,0x20, - 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x30,0x2e,0x38,0x39,0x39,0x39, - 0x39,0x39,0x39,0x37,0x36,0x31,0x35,0x38,0x31,0x34,0x32,0x30,0x38,0x39,0x38,0x34, - 0x33,0x37,0x35,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29, - 0x20,0x2a,0x20,0x5f,0x31,0x37,0x30,0x37,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28, - 0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x36,0x39,0x34,0x2c,0x20,0x32,0x2e,0x30, - 0x29,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6c, - 0x61,0x6d,0x70,0x28,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2d, - 0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33, - 0x32,0x35,0x33,0x38,0x36,0x30,0x34,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35, - 0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x4e,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31, - 0x36,0x35,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x5f,0x31, - 0x35,0x39,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67, - 0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63, - 0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x36,0x35,0x30,0x29,0x20, - 0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69, - 0x63,0x29,0x29,0x20,0x2a,0x20,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64, - 0x6d,0x5f,0x64,0x69,0x66,0x66,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x32,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d, - 0x5f,0x74,0x69,0x6e,0x74,0x29,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30, - 0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39, - 0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78, - 0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29, - 0x20,0x2a,0x20,0x5f,0x31,0x36,0x32,0x31,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37, - 0x35,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63, - 0x61,0x6c,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30, - 0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39, - 0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x5f,0x31,0x32, - 0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74, - 0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x74,0x72, - 0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79, - 0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36, + 0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20, + 0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61, + 0x6d,0x70,0x28,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a, + 0x75,0x73,0x74,0x2e,0x78,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37, + 0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35, + 0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e, + 0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37, + 0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a, + 0x20,0x31,0x36,0x29,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69, + 0x61,0x6c,0x20,0x3d,0x20,0x5f,0x31,0x33,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f, + 0x31,0x33,0x33,0x39,0x29,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39, + 0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32, + 0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62, + 0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65, + 0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x20,0x2b,0x3d,0x20,0x28,0x74,0x6f,0x5f, + 0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30, + 0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34, + 0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x63,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x36,0x32,0x20,0x3d,0x20, + 0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x6e,0x64,0x28,0x74,0x72,0x69,0x78,0x65,0x6c, + 0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x77,0x20,0x2a,0x20,0x32,0x35, + 0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65, + 0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, + 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x30, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e, + 0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30, + 0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65, + 0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x33,0x36,0x32,0x20,0x26,0x20,0x31, + 0x29,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20, + 0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x36,0x32,0x20,0x3e, + 0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x31,0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e, + 0x30,0x30,0x37,0x38,0x37,0x34,0x30,0x31,0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35, + 0x30,0x31,0x35,0x38,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f, + 0x31,0x33,0x38,0x32,0x20,0x3d,0x20,0x28,0x5f,0x31,0x33,0x36,0x32,0x20,0x3e,0x3e, + 0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20, + 0x5f,0x31,0x33,0x38,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x66, + 0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x33,0x38,0x32,0x29,0x20,0x2a,0x20,0x30,0x2e, + 0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37, + 0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39, + 0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x36,0x32,0x20,0x3e,0x3e,0x20, + 0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33, + 0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39, + 0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x33,0x39, + 0x39,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e, + 0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x34,0x30,0x31,0x20,0x3d,0x20,0x5f,0x31, + 0x33,0x39,0x39,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x34,0x30,0x33,0x20,0x3d,0x20,0x5f, + 0x31,0x33,0x39,0x39,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, + 0x20,0x5f,0x31,0x34,0x30,0x34,0x20,0x3d,0x20,0x5f,0x31,0x34,0x30,0x31,0x20,0x3e, + 0x3d,0x20,0x5f,0x31,0x34,0x30,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, + 0x6c,0x20,0x5f,0x31,0x34,0x31,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x5f,0x31,0x34,0x30,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x31,0x32,0x20,0x3d,0x20,0x5f,0x31, + 0x34,0x30,0x31,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x39,0x39,0x2e,0x7a,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34, + 0x31,0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x31, + 0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x69,0x67,0x6e,0x28,0x66, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, + 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x32,0x35,0x20,0x3d,0x20, + 0x5f,0x31,0x34,0x30,0x33,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x34,0x30,0x31,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34, + 0x33,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x5f,0x31,0x34,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34, + 0x33,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x30,0x33,0x20,0x3e,0x3d,0x20,0x5f,0x31, + 0x33,0x39,0x39,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x33,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x32, + 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x33,0x33,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c, + 0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33, + 0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28, + 0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28, - 0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69, - 0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a, - 0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c, - 0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32,0x31,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x5f,0x31,0x38,0x31,0x38,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65, - 0x63,0x74,0x28,0x2d,0x5f,0x31,0x34,0x34,0x33,0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x33,0x20,0x52,0x20,0x3d,0x20,0x5f,0x31,0x38,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x38,0x31,0x38,0x2e,0x79, - 0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52,0x20, - 0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x76,0x65,0x63, - 0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x5f,0x32,0x37,0x31, - 0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28, - 0x28,0x5f,0x31,0x34,0x36,0x39,0x20,0x2a,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x29, - 0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34, - 0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32, - 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x72, - 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28, - 0x6d,0x69,0x78,0x28,0x5f,0x32,0x37,0x31,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c, - 0x6f,0x72,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x28,0x28,0x74,0x72, - 0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79, - 0x7a,0x20,0x2a,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x2a, - 0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x65,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x5f, - 0x73,0x63,0x61,0x6c,0x65,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x6d,0x6f, - 0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x37, - 0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x20,0x76, - 0x70,0x6f,0x73,0x2e,0x79,0x29,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x69,0x73, - 0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x38,0x36,0x31,0x20,0x3d,0x20, - 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x35, + 0x30,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61, + 0x6d,0x20,0x2d,0x20,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x35,0x34,0x20, + 0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x37,0x31, + 0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31, + 0x34,0x35,0x39,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28, + 0x5f,0x31,0x34,0x35,0x30,0x20,0x2b,0x20,0x5f,0x31,0x34,0x35,0x34,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, - 0x31,0x38,0x36,0x35,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x38,0x36,0x31, - 0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30, + 0x31,0x34,0x36,0x37,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28, + 0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33, + 0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20, + 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e, + 0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c, + 0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61, + 0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x34,0x35,0x39,0x2c,0x20,0x5f,0x31,0x34, + 0x35,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x20,0x3d,0x20,0x5f,0x31,0x34,0x36,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x37,0x36,0x20, + 0x3d,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x39,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, + 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x30,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x34,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x31,0x30,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28, + 0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x35,0x34,0x29,0x2c,0x20,0x30, + 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x34,0x20,0x5f,0x31,0x35,0x34,0x33,0x20,0x3d,0x20,0x5f,0x31,0x32,0x38, + 0x32,0x2e,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x76, + 0x65,0x63,0x34,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x76,0x70,0x6f,0x73,0x20,0x2a, + 0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, + 0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x35, + 0x34,0x20,0x3d,0x20,0x28,0x28,0x5f,0x31,0x35,0x34,0x33,0x2e,0x78,0x79,0x7a,0x20, + 0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x35,0x34,0x33,0x2e,0x77,0x29,0x29, + 0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x35,0x38,0x20,0x3d,0x20,0x5f,0x31,0x35, + 0x35,0x34,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30, + 0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38, + 0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x32,0x34, + 0x20,0x3d,0x20,0x5f,0x31,0x35,0x35,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31, + 0x39,0x32,0x34,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x35,0x35,0x38,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69, + 0x67,0x68,0x74,0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65, + 0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x34,0x37,0x36,0x29, + 0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c, + 0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61, + 0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36, + 0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20, + 0x28,0x28,0x5f,0x31,0x34,0x37,0x36,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72, + 0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79, + 0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x76,0x65, + 0x63,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x64, + 0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x35,0x30,0x29,0x2c,0x20,0x30,0x2e, + 0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x35,0x31,0x30,0x29,0x20,0x2b,0x20,0x39, + 0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31, + 0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38, + 0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72, + 0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64, + 0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x39,0x32, + 0x34,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x31,0x35,0x35,0x38,0x29,0x29,0x29,0x20,0x2a, + 0x20,0x5f,0x31,0x35,0x31,0x30,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73, + 0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20, + 0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74, + 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x5f,0x31,0x35,0x39,0x35,0x20,0x3d,0x20,0x74,0x72,0x69,0x6c,0x65,0x43, + 0x65,0x6e,0x74,0x65,0x72,0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a,0x20,0x30,0x2e,0x34, + 0x39,0x30,0x30,0x30,0x30,0x30,0x30,0x39,0x35,0x33,0x36,0x37,0x34,0x33,0x31,0x36, + 0x34,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63, + 0x33,0x20,0x5f,0x31,0x36,0x30,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28, + 0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x74,0x72,0x69,0x6c,0x65,0x43, + 0x65,0x6e,0x74,0x65,0x72,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e, + 0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31,0x36,0x30,0x31,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x30,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34, + 0x20,0x5f,0x31,0x36,0x32,0x37,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x28,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d, + 0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43, + 0x6f,0x6f,0x72,0x64,0x2e,0x78,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f, + 0x31,0x32,0x38,0x32,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20, + 0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2f, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x38,0x32,0x2e,0x73,0x63,0x72, + 0x65,0x65,0x6e,0x5f,0x68,0x29,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x31,0x36,0x32,0x38,0x20,0x3d,0x20,0x5f,0x31,0x36,0x32,0x37,0x2e,0x78,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36,0x33,0x38,0x20,0x3d, + 0x20,0x5f,0x31,0x32,0x38,0x32,0x2e,0x72,0x64,0x6d,0x5f,0x65,0x6e,0x61,0x62,0x6c, + 0x65,0x64,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, + 0x6c,0x20,0x5f,0x31,0x36,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x5f,0x31,0x36,0x33,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x34,0x34,0x20,0x3d,0x20,0x72,0x64, + 0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x30,0x29,0x2e,0x7a,0x20,0x3e,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x34,0x34,0x20, + 0x3d,0x20,0x5f,0x31,0x36,0x33,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36,0x34,0x34,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31, + 0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31, + 0x34,0x35,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x36,0x37,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20, + 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31, + 0x36,0x35,0x37,0x20,0x3d,0x20,0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68, + 0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, + 0x5f,0x31,0x36,0x36,0x34,0x20,0x3d,0x20,0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x5f, + 0x31,0x35,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x34,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x35,0x20,0x3d,0x20,0x2d,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36, + 0x36,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68, + 0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20, + 0x3d,0x20,0x5f,0x31,0x36,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x37, + 0x39,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32, + 0x38,0x32,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x31,0x37,0x30,0x31,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74, + 0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x35,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x37,0x30,0x34,0x20,0x3d,0x20,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x28,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64, + 0x6d,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x37,0x30,0x31, + 0x2c,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x31,0x37,0x31,0x34,0x20,0x3d,0x20,0x73,0x69,0x6e,0x28,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x33,0x2e,0x31,0x34,0x31, + 0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31,0x31,0x31,0x33,0x32,0x38,0x31, + 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67, + 0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x6d,0x69,0x78,0x28,0x5f, + 0x31,0x36,0x37,0x39,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f, + 0x31,0x36,0x37,0x39,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x32,0x31,0x32, + 0x35,0x39,0x39,0x39,0x39,0x32,0x37,0x35,0x32,0x30,0x37,0x35,0x31,0x39,0x35,0x33, + 0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x32,0x30,0x30,0x30,0x30,0x36, + 0x39,0x36,0x31,0x38,0x32,0x32,0x35,0x30,0x39,0x37,0x36,0x35,0x36,0x32,0x35,0x2c, + 0x20,0x30,0x2e,0x30,0x37,0x32,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31, + 0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20, + 0x2a,0x20,0x28,0x28,0x5f,0x31,0x36,0x35,0x37,0x20,0x2a,0x20,0x5f,0x31,0x37,0x30, + 0x34,0x2e,0x78,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x37,0x30, + 0x34,0x2e,0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x38,0x32,0x2e,0x72, + 0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x20,0x2a, + 0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x30,0x2e,0x36,0x39,0x39,0x39,0x39, + 0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31, + 0x38,0x37,0x35,0x20,0x2a,0x20,0x5f,0x31,0x37,0x31,0x34,0x29,0x29,0x29,0x20,0x2a, + 0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x30,0x2e,0x38,0x39,0x39, + 0x39,0x39,0x39,0x39,0x37,0x36,0x31,0x35,0x38,0x31,0x34,0x32,0x30,0x38,0x39,0x38, + 0x34,0x33,0x37,0x35,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, + 0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x31,0x34,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77, + 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x37,0x30,0x31,0x2c,0x20,0x32,0x2e, + 0x30,0x29,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63, + 0x6c,0x61,0x6d,0x70,0x28,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20, + 0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x33,0x2e,0x33,0x33,0x33,0x33,0x33, + 0x33,0x32,0x35,0x33,0x38,0x36,0x30,0x34,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32, + 0x35,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x4e,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f, + 0x31,0x36,0x36,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76, + 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x5f, + 0x31,0x36,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x37,0x37,0x30,0x20,0x3d, + 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x29,0x20,0x2a, + 0x20,0x5f,0x31,0x32,0x38,0x32,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b, + 0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e, + 0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x36,0x35,0x37,0x29,0x20,0x2a,0x20,0x28,0x31, + 0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20, + 0x2a,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f, + 0x31,0x37,0x37,0x30,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x32,0x31,0x32, + 0x35,0x39,0x39,0x39,0x39,0x32,0x37,0x35,0x32,0x30,0x37,0x35,0x31,0x39,0x35,0x33, + 0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x32,0x30,0x30,0x30,0x30,0x36, + 0x39,0x36,0x31,0x38,0x32,0x32,0x35,0x30,0x39,0x37,0x36,0x35,0x36,0x32,0x35,0x2c, + 0x20,0x30,0x2e,0x30,0x37,0x32,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31, + 0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x2c,0x20, + 0x5f,0x31,0x37,0x37,0x30,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x32,0x38, + 0x32,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x61,0x74,0x75,0x72, + 0x61,0x74,0x69,0x6f,0x6e,0x29,0x29,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28, + 0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30, + 0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69, + 0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a, + 0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32,0x38,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32, + 0x38,0x32,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c, + 0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x5f,0x31,0x32,0x38,0x32,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73, + 0x63,0x61,0x6c,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30, + 0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38, + 0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x5f,0x31, + 0x32,0x38,0x32,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x20,0x2a,0x20,0x5f,0x31,0x32,0x38,0x32,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e, + 0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x74, + 0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78, + 0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32,0x38,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28, + 0x28,0x5f,0x31,0x32,0x38,0x32,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63, + 0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,0x32,0x38,0x32,0x2e,0x61,0x6d,0x62, + 0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20, + 0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61, + 0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32,0x38,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x33,0x36,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c, + 0x65,0x63,0x74,0x28,0x2d,0x5f,0x31,0x34,0x35,0x30,0x2c,0x20,0x4e,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x52,0x20,0x3d,0x20,0x5f,0x31,0x38,0x33,0x36,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x38,0x33,0x36,0x2e, + 0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52, + 0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x5f,0x32,0x37, + 0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20, + 0x28,0x28,0x5f,0x31,0x34,0x37,0x36,0x20,0x2a,0x20,0x73,0x6b,0x79,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34, + 0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31, + 0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36, + 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34, + 0x28,0x6d,0x69,0x78,0x28,0x5f,0x32,0x37,0x31,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f, + 0x6c,0x6f,0x72,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x28,0x28,0x74, + 0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78, + 0x79,0x7a,0x20,0x2a,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x29,0x20, + 0x2a,0x20,0x5f,0x31,0x32,0x38,0x32,0x2e,0x65,0x6d,0x69,0x73,0x73,0x69,0x76,0x65, + 0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x6d, + 0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32, + 0x37,0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x20, + 0x76,0x70,0x6f,0x73,0x2e,0x79,0x29,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x38,0x32,0x2e,0x69, + 0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x38,0x37,0x39,0x20,0x3d, + 0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, + 0x5f,0x31,0x38,0x38,0x33,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x38,0x37, + 0x39,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30, + 0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35, + 0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39, + 0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38, + 0x37,0x35,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38, + 0x38,0x33,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x31,0x38, + 0x38,0x33,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x38, + 0x38,0x33,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x38,0x32,0x2e,0x69,0x73,0x5f, + 0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f, + 0x31,0x38,0x39,0x37,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x30,0x31,0x20, + 0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x38,0x39,0x37,0x2e,0x78,0x79,0x7a,0x2c, + 0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30, 0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30, - 0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39, - 0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37, - 0x35,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, - 0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61, - 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36, - 0x35,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61, - 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36, - 0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61, - 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36, - 0x35,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x69,0x73,0x5f,0x70, - 0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31, - 0x38,0x37,0x39,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x38,0x33,0x20,0x3d, - 0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x38,0x37,0x39,0x2e,0x78,0x79,0x7a,0x2c,0x20, - 0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30, - 0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37, - 0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30, - 0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31, - 0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61, - 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x38, - 0x33,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20, - 0x5f,0x31,0x38,0x38,0x33,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e, - 0x7a,0x20,0x3d,0x20,0x5f,0x31,0x38,0x38,0x33,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a, - 0x00, + 0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33, + 0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x39, + 0x30,0x31,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d, + 0x20,0x5f,0x31,0x39,0x30,0x31,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, + 0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x39,0x30,0x31,0x2e,0x7a,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a, + 0x0a,0x00, ]; /* #pragma clang diagnostic ignored "-Wmissing-prototypes" @@ -4879,7 +4907,8 @@ vs_trile_source_metal_macos := u8.[ float rdm_spec_scale; packed_float3 ambient_color; int is_preview; - float3 rdm_tint; + packed_float3 rdm_tint; + float rdm_diff_saturation; }; struct main0_out @@ -4952,12 +4981,6 @@ vs_trile_source_metal_macos := u8.[ return (((int(dot(float3(-0.0, -1.0, -0.0), N) >= 0.980000019073486328125) + (int(N.z >= 0.980000019073486328125) * 2)) + (int(dot(float3(-0.0, -0.0, -1.0), N) >= 0.980000019073486328125) * 3)) + (int(N.x >= 0.980000019073486328125) * 4)) + (int(dot(float3(-1.0, -0.0, -0.0), N) >= 0.980000019073486328125) * 5); } - static inline __attribute__((always_inline)) - float roughness_to_rdm_size(thread const int& roughness) - { - return powr(2.0, float(8 - roughness)); - } - static inline __attribute__((always_inline)) int2 rdm_face_pixel_offset(thread const float4& atlas_rect, thread const int& face, thread const int& rdmSize, texture2d rdm_atlas, sampler rdmsmp) { @@ -4971,32 +4994,32 @@ vs_trile_source_metal_macos := u8.[ float3 vc = v; if ((index / 2) == 0) { - float3 _1921 = vc; - _1921.z = v.y; - _1921.y = v.z; - vc = _1921; + float3 _1939 = vc; + _1939.z = v.y; + _1939.y = v.z; + vc = _1939; } if ((index / 2) == 2) { - float3 _1925 = vc; - _1925.z = v.x; - _1925.x = v.z; - vc = _1925; + float3 _1943 = vc; + _1943.z = v.x; + _1943.x = v.z; + vc = _1943; } if ((index % 2) == 1) { - float3 _1929 = vc; - _1929.z = _1929.z * (-1.0); - vc = _1929; + float3 _1947 = vc; + _1947.z = _1947.z * (-1.0); + vc = _1947; } - float3 _1932 = vc; - float _601 = _1932.x + off.x; - float3 _1934 = _1932; - _1934.x = _601; - float _607 = _1932.y + off.y; - _1934.y = _607; - vc = _1934; - float2 _625 = _1934.xy * (1.0 / ((abs(_601) + abs(_607)) + _1932.z)); + float3 _1950 = vc; + float _601 = _1950.x + off.x; + float3 _1952 = _1950; + _1952.x = _601; + float _607 = _1950.y + off.y; + _1952.y = _607; + vc = _1952; + float2 _625 = _1952.xy * (1.0 / ((abs(_601) + abs(_607)) + _1950.z)); float _628 = _625.x; float _630 = _625.y; return float2(((_628 + _630) + 1.0) * 0.5, ((_628 - _630) + 1.0) * 0.5); @@ -5075,65 +5098,64 @@ vs_trile_source_metal_macos := u8.[ { float3 param = N; int _739 = rdm_index_from_normal(param); - int param_1 = roughness; - int _744 = int(roughness_to_rdm_size(param_1)); - float _747 = float(_744); - int3 param_2 = local_pos; - int param_3 = roughness; - float4 _753 = rdm_get_atlas_rect(param_2, param_3, rdm_lookup, trilesmp); - if (_753.z <= 0.0) + int3 param_1 = local_pos; + int param_2 = roughness; + float4 _745 = rdm_get_atlas_rect(param_1, param_2, rdm_lookup, trilesmp); + float _747 = _745.z; + if (_747 <= 0.0) { return float3(1.0, 0.0, 1.0); } - float4 param_4 = _753; - int param_5 = _739; - int param_6 = _744; - int2 _768 = rdm_face_pixel_offset(param_4, param_5, param_6, rdm_atlas, rdmsmp); - float3 _808 = fast::normalize(reflect(V, N)); + int _767 = int(_747 * float(int2(rdm_atlas.get_width(), rdm_atlas.get_height()).x)) / 2; + float _770 = float(_767); + float4 param_3 = _745; + int param_4 = _739; + int param_5 = _767; + int2 _778 = rdm_face_pixel_offset(param_3, param_4, param_5, rdm_atlas, rdmsmp); + float3 _818 = fast::normalize(reflect(V, N)); if (roughness > 1) { - float3 param_7 = fast::normalize(diff + (_808 * 2.0)); - int param_8 = _739; - float2 param_9 = float2(0.0); - return rdm_atlas.sample(rdmsmp, ((float2(_768) + (rdm_get_hemioct(param_7, param_8, param_9) * _747)) / float2(int2(rdm_atlas.get_width(), rdm_atlas.get_height())))).xyz; + float3 param_6 = fast::normalize(diff + (_818 * 2.0)); + int param_7 = _739; + float2 param_8 = float2(0.0); + return rdm_atlas.sample(rdmsmp, ((float2(_778) + (rdm_get_hemioct(param_6, param_7, param_8) * _770)) / float2(int2(rdm_atlas.get_width(), rdm_atlas.get_height())))).xyz; } for (int i = 0; i < 40; i++) { - float3 _877 = diff + (_808 * (float(i + 1) * 0.5)); - if (dot(_877, N) < 0.0) + float3 _887 = diff + (_818 * (float(i + 1) * 0.5)); + if (dot(_887, N) < 0.0) { continue; } - float3 param_10 = fast::normalize(_877); - int param_11 = _739; - float2 param_12 = float2(0.0); - float2 _892 = rdm_get_hemioct(param_10, param_11, param_12); - float4 _917 = rdm_atlas.read(uint2(int2(_768.x + int(_892.x * _747), _768.y + int(_892.y * _747))), 0); - float _921 = _917.w; - float _924 = length(_877); - bool _935 = (_921 > 0.0) && (_921 < _924); - bool _943; - if (_935) + float3 param_9 = fast::normalize(_887); + int param_10 = _739; + float2 param_11 = float2(0.0); + float4 _924 = rdm_atlas.sample(rdmsmp, ((float2(_778) + (rdm_get_hemioct(param_9, param_10, param_11) * _770)) / float2(int2(rdm_atlas.get_width(), rdm_atlas.get_height()))), bias(0.0)); + float _928 = _924.w; + float _931 = length(_887); + bool _942 = (_928 > 0.0) && (_928 < _931); + bool _950; + if (_942) { - _943 = (_921 + 0.5) > _924; + _950 = (_928 + 0.5) > _931; } else { - _943 = _935; + _950 = _942; } - if (_943) + if (_950) { - return _917.xyz; + return _924.xyz; } } - float3 skyDir = _808; - if (_808.y < 0.0) + float3 skyDir = _818; + if (_818.y < 0.0) { skyDir = reflect(skyDir, float3(0.0, 1.0, 0.0)); } - float3 param_13 = skyDir; - float3 param_14 = float3(_271.sunPosition); - return sky(param_13, param_14, _271); + float3 param_12 = skyDir; + float3 param_13 = float3(_271.sunPosition); + return sky(param_12, param_13, _271); } static inline __attribute__((always_inline)) @@ -5142,30 +5164,36 @@ vs_trile_source_metal_macos := u8.[ return (f < 0.0) ? (-1) : 1; } + static inline __attribute__((always_inline)) + float roughness_to_rdm_size(thread const int& roughness) + { + return powr(2.0, float(8 - roughness)); + } + static inline __attribute__((always_inline)) float3 sample_rdm_diff_map(thread const float3& N, thread const int3& local_pos, thread const float3& fallback, texture2d rdm_lookup, sampler trilesmp, texture2d rdm_atlas, sampler rdmsmp) { int3 param = local_pos; int param_1 = 7; - float4 _973 = rdm_get_atlas_rect(param, param_1, rdm_lookup, trilesmp); - if (_973.z <= 0.0) + float4 _980 = rdm_get_atlas_rect(param, param_1, rdm_lookup, trilesmp); + if (_980.z <= 0.0) { return fallback; } float3 param_2 = N; - int _984 = rdm_index_from_normal(param_2); + int _991 = rdm_index_from_normal(param_2); int param_3 = 7; - int _988 = int(roughness_to_rdm_size(param_3)); - float4 param_4 = _973; - int param_5 = _984; - int param_6 = _988; - int2 _996 = rdm_face_pixel_offset(param_4, param_5, param_6, rdm_atlas, rdmsmp); + int _995 = int(roughness_to_rdm_size(param_3)); + float4 param_4 = _980; + int param_5 = _991; + int param_6 = _995; + int2 _1003 = rdm_face_pixel_offset(param_4, param_5, param_6, rdm_atlas, rdmsmp); float3 param_7 = N; - int param_8 = _984; + int param_8 = _991; float2 param_9 = float2(0.0); - float2 _1003 = rdm_get_hemioct(param_7, param_8, param_9); - float _1010 = float(_988); - return rdm_atlas.read(uint2(int2(_996.x + int(_1003.x * _1010), _996.y + int(_1003.y * _1010))), 0).xyz; + float2 _1010 = rdm_get_hemioct(param_7, param_8, param_9); + float _1017 = float(_995); + return rdm_atlas.read(uint2(int2(_1003.x + int(_1010.x * _1017), _1003.y + int(_1010.y * _1017))), 0).xyz; } static inline __attribute__((always_inline)) @@ -5178,16 +5206,16 @@ vs_trile_source_metal_macos := u8.[ float3 sample_rdm_diff(thread const float3& N, thread const float3& diff, thread const int3& local_pos, texture2d rdm_lookup, sampler trilesmp, texture2d rdm_atlas, sampler rdmsmp) { float3 param = N; - int _1063 = rdm_index_from_normal(param); + int _1070 = rdm_index_from_normal(param); float2 delta = float2(0.0); - bool _1072 = (_1063 == 0) || (_1063 == 1); - if (_1072) + bool _1079 = (_1070 == 0) || (_1070 == 1); + if (_1079) { delta = float2(diff.x, diff.z); } else { - if ((_1063 == 2) || (_1063 == 3)) + if ((_1070 == 2) || (_1070 == 3)) { delta = float2(diff.x, diff.y); } @@ -5199,7 +5227,7 @@ vs_trile_source_metal_macos := u8.[ int3 s1; int3 s2; int3 s3; - if (_1072) + if (_1079) { float param_1 = delta.x; s1 = int3(isign(param_1), 0, 0); @@ -5211,7 +5239,7 @@ vs_trile_source_metal_macos := u8.[ } else { - if ((_1063 == 2) || (_1063 == 3)) + if ((_1070 == 2) || (_1070 == 3)) { float param_5 = delta.x; s1 = int3(isign(param_5), 0, 0); @@ -5256,20 +5284,20 @@ vs_trile_source_metal_macos := u8.[ return smix(param_31, param_32, param_33); } - fragment main0_out main0(main0_in in [[stage_in]], constant trile_world_config& _271 [[buffer(0)]], constant trile_fs_params& _1275 [[buffer(1)]], texture2d rdm_lookup [[texture(0)]], texture2d rdm_atlas [[texture(1)]], texture2d triletex [[texture(2)]], depth2d shadowtex [[texture(3)]], texture2d ssaotex [[texture(4)]], texture2d brdf_lut [[texture(5)]], sampler trilesmp [[sampler(0)]], sampler rdmsmp [[sampler(1)]], sampler shadowsmp [[sampler(2)]], float4 gl_FragCoord [[position]]) + fragment main0_out main0(main0_in in [[stage_in]], constant trile_world_config& _271 [[buffer(0)]], constant trile_fs_params& _1282 [[buffer(1)]], texture2d rdm_lookup [[texture(0)]], texture2d rdm_atlas [[texture(1)]], texture2d triletex [[texture(2)]], depth2d shadowtex [[texture(3)]], texture2d ssaotex [[texture(4)]], texture2d brdf_lut [[texture(5)]], sampler trilesmp [[sampler(0)]], sampler rdmsmp [[sampler(1)]], sampler shadowsmp [[sampler(2)]], float4 gl_FragCoord [[position]]) { main0_out out = {}; - bool _1269 = in.vpos.y < (_271.planeHeight - 0.00999999977648258209228515625); - bool _1279; - if (_1269) + bool _1276 = in.vpos.y < (_271.planeHeight - 0.00999999977648258209228515625); + bool _1286; + if (_1276) { - _1279 = _1275.is_reflection == 1; + _1286 = _1282.is_reflection == 1; } else { - _1279 = _1269; + _1286 = _1276; } - if (_1279) + if (_1286) { discard_fragment(); } @@ -5278,62 +5306,62 @@ vs_trile_source_metal_macos := u8.[ float4 trixel_material; while (count < 5) { - float4 _1332 = triletex.read(uint2(int2(int(fast::clamp(pos_after_adjust.z, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0), int(fast::clamp(pos_after_adjust.y, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) + (int(fast::clamp(pos_after_adjust.x, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) * 16))), 0); - trixel_material = _1332; - if (length(_1332) > 0.00999999977648258209228515625) + float4 _1339 = triletex.read(uint2(int2(int(fast::clamp(pos_after_adjust.z, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0), int(fast::clamp(pos_after_adjust.y, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) + (int(fast::clamp(pos_after_adjust.x, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) * 16))), 0); + trixel_material = _1339; + if (length(_1339) > 0.00999999977648258209228515625) { break; } pos_after_adjust += (in.to_center * 0.100000001490116119384765625); count++; } - int _1355 = int(round(trixel_material.w * 255.0)); + int _1362 = int(round(trixel_material.w * 255.0)); float emittance = 0.0; int roughnessInt = 0; float roughness = 0.0500000007450580596923828125; float metallic = 0.0; - if ((_1355 & 1) != 0) + if ((_1362 & 1) != 0) { - emittance = float((_1355 >> 1) & 127) * 0.0078740157186985015869140625; + emittance = float((_1362 >> 1) & 127) * 0.0078740157186985015869140625; } else { - int _1375 = (_1355 >> 5) & 7; - roughnessInt = _1375; - roughness = fast::max(float(_1375) * 0.14285714924335479736328125, 0.0500000007450580596923828125); - metallic = float((_1355 >> 3) & 3) * 0.3333333432674407958984375; + int _1382 = (_1362 >> 5) & 7; + roughnessInt = _1382; + roughness = fast::max(float(_1382) * 0.14285714924335479736328125, 0.0500000007450580596923828125); + metallic = float((_1362 >> 3) & 3) * 0.3333333432674407958984375; } - float3 _1392 = abs(in.fnormal.xyz); - float _1394 = _1392.x; - float _1396 = _1392.y; - bool _1397 = _1394 >= _1396; - bool _1405; - if (_1397) + float3 _1399 = abs(in.fnormal.xyz); + float _1401 = _1399.x; + float _1403 = _1399.y; + bool _1404 = _1401 >= _1403; + bool _1412; + if (_1404) { - _1405 = _1394 >= _1392.z; + _1412 = _1401 >= _1399.z; } else { - _1405 = _1397; + _1412 = _1404; } float3 N; - if (_1405) + if (_1412) { N = float3(sign(in.fnormal.x), 0.0, 0.0); } else { - bool _1418 = _1396 >= _1394; - bool _1426; - if (_1418) + bool _1425 = _1403 >= _1401; + bool _1433; + if (_1425) { - _1426 = _1396 >= _1392.z; + _1433 = _1403 >= _1399.z; } else { - _1426 = _1418; + _1433 = _1425; } - if (_1426) + if (_1433) { N = float3(0.0, sign(in.fnormal.y), 0.0); } @@ -5342,101 +5370,102 @@ vs_trile_source_metal_macos := u8.[ N = float3(0.0, 0.0, sign(in.fnormal.z)); } } - float3 _1443 = fast::normalize(in.cam - in.vpos); - float3 _1447 = fast::normalize(float3(_271.sunPosition)); - float3 _1452 = fast::normalize(_1443 + _1447); - float3 _1460 = mix(float3(0.039999999105930328369140625), trixel_material.xyz, float3(metallic)); - float param = fast::max(dot(_1452, _1443), 0.0); - float3 param_1 = _1460; - float3 _1469 = fresnelSchlick(param, param_1); + float3 _1450 = fast::normalize(in.cam - in.vpos); + float3 _1454 = fast::normalize(float3(_271.sunPosition)); + float3 _1459 = fast::normalize(_1450 + _1454); + float3 _1467 = mix(float3(0.039999999105930328369140625), trixel_material.xyz, float3(metallic)); + float param = fast::max(dot(_1459, _1450), 0.0); + float3 param_1 = _1467; + float3 _1476 = fresnelSchlick(param, param_1); float3 param_2 = N; - float3 param_3 = _1452; + float3 param_3 = _1459; float param_4 = roughness; float3 param_5 = N; - float3 param_6 = _1443; - float3 param_7 = _1447; + float3 param_6 = _1450; + float3 param_7 = _1454; float param_8 = roughness; - float _1503 = fast::max(dot(N, _1447), 0.0); - float4 _1536 = _1275.mvp_shadow * float4(floor(in.vpos * 16.0) * float3(0.0625), 1.0); - float3 _1547 = ((_1536.xyz / float3(_1536.w)) * 0.5) + float3(0.5); - float _1551 = _1547.z - 0.001000000047497451305389404296875; - float3 _1906 = _1547; - _1906.z = _1551; - float3 light = ((((((((float3(1.0) - _1469) * (1.0 - metallic)) * trixel_material.xyz) * float3(0.3183410167694091796875)) + ((_1469 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / float3(((4.0 * fast::max(dot(N, _1443), 0.0)) * _1503) + 9.9999997473787516355514526367188e-05))) * shadowtex.sample_compare(shadowsmp, _1906.xy, _1551)) * _1503) * _271.sunLightColor) * _271.sunIntensity; - float3 _1588 = in.trileCenter + (N * 0.4900000095367431640625); - int3 _1594 = int3(mod(floor(in.trileCenter), float3(32.0))); - int3 param_9 = _1594; + float _1510 = fast::max(dot(N, _1454), 0.0); + float4 _1543 = _1282.mvp_shadow * float4(floor(in.vpos * 16.0) * float3(0.0625), 1.0); + float3 _1554 = ((_1543.xyz / float3(_1543.w)) * 0.5) + float3(0.5); + float _1558 = _1554.z - 0.001000000047497451305389404296875; + float3 _1924 = _1554; + _1924.z = _1558; + float3 light = ((((((((float3(1.0) - _1476) * (1.0 - metallic)) * trixel_material.xyz) * float3(0.3183410167694091796875)) + ((_1476 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / float3(((4.0 * fast::max(dot(N, _1450), 0.0)) * _1510) + 9.9999997473787516355514526367188e-05))) * shadowtex.sample_compare(shadowsmp, _1924.xy, _1558)) * _1510) * _271.sunLightColor) * _271.sunIntensity; + float3 _1595 = in.trileCenter + (N * 0.4900000095367431640625); + int3 _1601 = int3(mod(floor(in.trileCenter), float3(32.0))); + int3 param_9 = _1601; int param_10 = roughnessInt; - float4 _1620 = ssaotex.sample(trilesmp, float2(gl_FragCoord.x / float(_1275.screen_w), gl_FragCoord.y / float(_1275.screen_h)), bias(0.0)); - float _1621 = _1620.x; - bool _1631 = _1275.rdm_enabled == 1; - bool _1637; - if (_1631) + float4 _1627 = ssaotex.sample(trilesmp, float2(gl_FragCoord.x / float(_1282.screen_w), gl_FragCoord.y / float(_1282.screen_h)), bias(0.0)); + float _1628 = _1627.x; + bool _1638 = _1282.rdm_enabled == 1; + bool _1644; + if (_1638) { - _1637 = rdm_get_atlas_rect(param_9, param_10, rdm_lookup, trilesmp).z > 0.0; + _1644 = rdm_get_atlas_rect(param_9, param_10, rdm_lookup, trilesmp).z > 0.0; } else { - _1637 = _1631; + _1644 = _1638; } - if (_1637) + if (_1644) { - float param_11 = fast::max(dot(N, _1443), 0.0); - float3 param_12 = _1460; + float param_11 = fast::max(dot(N, _1450), 0.0); + float3 param_12 = _1467; float param_13 = roughness; - float3 _1650 = FresnelSchlickRoughness(param_11, param_12, param_13); - float3 _1657 = in.vpos - _1588; + float3 _1657 = FresnelSchlickRoughness(param_11, param_12, param_13); + float3 _1664 = in.vpos - _1595; float3 param_14 = N; float3 param_15 = -in.cv; - float3 param_16 = _1588; - float3 param_17 = _1657; + float3 param_16 = _1595; + float3 param_17 = _1664; int param_18 = roughnessInt; - int3 param_19 = _1594; - float3 _1672 = sample_rdm(param_14, param_15, param_16, param_17, param_18, param_19, _271, rdm_lookup, trilesmp, rdm_atlas, rdmsmp) * _1275.rdm_tint; - float _1694 = fast::max(dot(N, _1443), 0.0); - float4 _1697 = brdf_lut.sample(rdmsmp, float2(_1694, roughness)); - float _1707 = sin(roughness * 3.141285419464111328125); - light += (((((mix(_1672, float3(dot(_1672, float3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), float3(metallic)) * ((_1650 * _1697.x) + float3(_1697.y))) * _1275.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1707))) * (1.0 - (((0.89999997615814208984375 * roughness) * _1707) * powr(1.0 - _1694, 2.0)))) * (1.0 - fast::clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); + int3 param_19 = _1601; + float3 _1679 = sample_rdm(param_14, param_15, param_16, param_17, param_18, param_19, _271, rdm_lookup, trilesmp, rdm_atlas, rdmsmp) * float3(_1282.rdm_tint); + float _1701 = fast::max(dot(N, _1450), 0.0); + float4 _1704 = brdf_lut.sample(rdmsmp, float2(_1701, roughness)); + float _1714 = sin(roughness * 3.141285419464111328125); + light += (((((mix(_1679, float3(dot(_1679, float3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), float3(metallic)) * ((_1657 * _1704.x) + float3(_1704.y))) * _1282.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1714))) * (1.0 - (((0.89999997615814208984375 * roughness) * _1714) * powr(1.0 - _1701, 2.0)))) * (1.0 - fast::clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); float3 param_20 = N; - float3 param_21 = _1657; - int3 param_22 = _1594; - light += (((((((float3(1.0) - _1650) * (1.0 - metallic)) * (sample_rdm_diff(param_20, param_21, param_22, rdm_lookup, trilesmp, rdm_atlas, rdmsmp) * _1275.rdm_tint)) * float3(0.3183410167694091796875)) * trixel_material.xyz) * _1621) * _1275.rdm_diff_scale); - if (_1275.rdm_diff_scale < 0.001000000047497451305389404296875) + float3 param_21 = _1664; + int3 param_22 = _1601; + float3 _1770 = sample_rdm_diff(param_20, param_21, param_22, rdm_lookup, trilesmp, rdm_atlas, rdmsmp) * float3(_1282.rdm_tint); + light += (((((((float3(1.0) - _1657) * (1.0 - metallic)) * mix(float3(dot(_1770, float3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), _1770, float3(_1282.rdm_diff_saturation))) * float3(0.3183410167694091796875)) * trixel_material.xyz) * _1628) * _1282.rdm_diff_scale); + if (_1282.rdm_diff_scale < 0.001000000047497451305389404296875) { - light += (((float3(_1275.ambient_color) * _1275.ambient_intensity) * trixel_material.xyz) * _1621); + light += (((float3(_1282.ambient_color) * _1282.ambient_intensity) * trixel_material.xyz) * _1628); } } else { - light += (((float3(_1275.ambient_color) * _1275.ambient_intensity) * trixel_material.xyz) * _1621); - float3 _1818 = reflect(-_1443, N); - float3 R = _1818; - if (_1818.y < 0.0) + light += (((float3(_1282.ambient_color) * _1282.ambient_intensity) * trixel_material.xyz) * _1628); + float3 _1836 = reflect(-_1450, N); + float3 R = _1836; + if (_1836.y < 0.0) { R = reflect(R, float3(0.0, 1.0, 0.0)); } float3 param_23 = R; float3 param_24 = float3(_271.sunPosition); - light += ((_1469 * sky(param_23, param_24, _271)) * 0.100000001490116119384765625); + light += ((_1476 * sky(param_23, param_24, _271)) * 0.100000001490116119384765625); } - out.frag_color = float4(mix(float3(_271.deepColor), light + ((trixel_material.xyz * emittance) * _1275.emissive_scale), float3(smoothstep(0.0, _271.planeHeight, in.vpos.y))), 1.0); - if (_1275.is_preview == 1) + out.frag_color = float4(mix(float3(_271.deepColor), light + ((trixel_material.xyz * emittance) * _1282.emissive_scale), float3(smoothstep(0.0, _271.planeHeight, in.vpos.y))), 1.0); + if (_1282.is_preview == 1) { - float4 _1861 = out.frag_color; - float3 _1865 = mix(_1861.xyz, float3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), float3(0.5)); - out.frag_color.x = _1865.x; - out.frag_color.y = _1865.y; - out.frag_color.z = _1865.z; + float4 _1879 = out.frag_color; + float3 _1883 = mix(_1879.xyz, float3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), float3(0.5)); + out.frag_color.x = _1883.x; + out.frag_color.y = _1883.y; + out.frag_color.z = _1883.z; } else { - if (_1275.is_preview == 2) + if (_1282.is_preview == 2) { - float4 _1879 = out.frag_color; - float3 _1883 = mix(_1879.xyz, float3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), float3(0.5)); - out.frag_color.x = _1883.x; - out.frag_color.y = _1883.y; - out.frag_color.z = _1883.z; + float4 _1897 = out.frag_color; + float3 _1901 = mix(_1897.xyz, float3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), float3(0.5)); + out.frag_color.x = _1901.x; + out.frag_color.y = _1901.y; + out.frag_color.z = _1901.z; } } return out; @@ -5506,328 +5535,391 @@ fs_trile_source_metal_macos := u8.[ 0x64,0x5f,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74, 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, 0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b, - 0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e, - 0x30,0x5f,0x6f,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x5b,0x5b, - 0x63,0x6f,0x6c,0x6f,0x72,0x28,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a, - 0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x0a, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x63,0x61,0x6d, - 0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x74,0x6f,0x5f, - 0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f, - 0x63,0x6e,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x20,0x76,0x70,0x6f,0x73,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, - 0x6f,0x63,0x6e,0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x20,0x69,0x70,0x6f,0x73,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28, - 0x6c,0x6f,0x63,0x6e,0x33,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x5b,0x5b,0x75, - 0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x34,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x6f,0x72,0x69,0x67,0x5f,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e, - 0x35,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x20,0x5b,0x5b,0x75, - 0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x36,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x63,0x76,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x37,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a, - 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f, - 0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c, - 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c, - 0x69,0x63,0x6b,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61, - 0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x46,0x30,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20,0x2b,0x20,0x28,0x28,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29, - 0x20,0x2a,0x20,0x70,0x6f,0x77,0x72,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c, - 0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54,0x68,0x65, - 0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x35, - 0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, - 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, - 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x44,0x69,0x73,0x74, - 0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x74,0x68,0x72,0x65, - 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26, - 0x20,0x4e,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x48,0x2c,0x20,0x74,0x68,0x72,0x65, - 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20, - 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x38,0x39,0x20,0x3d,0x20,0x72,0x6f, - 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x33,0x39,0x33,0x20,0x3d,0x20,0x5f,0x33,0x38,0x39,0x20,0x2a,0x20,0x5f,0x33,0x38, - 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x39, - 0x38,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f, - 0x74,0x28,0x4e,0x2c,0x20,0x48,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x31,0x30,0x20,0x3d,0x20, - 0x28,0x28,0x5f,0x33,0x39,0x38,0x20,0x2a,0x20,0x5f,0x33,0x39,0x38,0x29,0x20,0x2a, - 0x20,0x28,0x5f,0x33,0x39,0x33,0x20,0x2d,0x20,0x31,0x2e,0x30,0x29,0x29,0x20,0x2b, - 0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x5f,0x33,0x39,0x33,0x20,0x2f,0x20,0x28,0x28,0x33,0x2e,0x31,0x34,0x31,0x32, - 0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31,0x31,0x31,0x33,0x32,0x38,0x31,0x32, - 0x35,0x20,0x2a,0x20,0x5f,0x34,0x31,0x30,0x29,0x20,0x2a,0x20,0x5f,0x34,0x31,0x30, - 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f, - 0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65, - 0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72, - 0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x74,0x68,0x72,0x65, - 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20, - 0x4e,0x64,0x6f,0x74,0x56,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, - 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x72,0x6f,0x75,0x67,0x68, - 0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x34,0x32,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x34,0x32,0x39,0x20,0x3d,0x20,0x28,0x5f,0x34,0x32,0x33, - 0x20,0x2a,0x20,0x5f,0x34,0x32,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x32,0x35, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4e,0x64,0x6f, - 0x74,0x56,0x20,0x2f,0x20,0x28,0x28,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2a,0x20,0x28, - 0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x34,0x32,0x39,0x29,0x29,0x20,0x2b,0x20,0x5f, - 0x34,0x32,0x39,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, - 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, - 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47,0x65,0x6f,0x6d, - 0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x74,0x68,0x72,0x65,0x61,0x64, - 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4e, - 0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x56,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64, - 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4c, + 0x70,0x61,0x63,0x6b,0x65,0x64,0x5f,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x72,0x64, + 0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x61,0x74,0x75,0x72, + 0x61,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63, + 0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, + 0x6c,0x6f,0x72,0x20,0x5b,0x5b,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x30,0x29,0x5d,0x5d, + 0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69, + 0x6e,0x30,0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x20,0x63,0x61,0x6d,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f, + 0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x20,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x5b,0x5b,0x75, + 0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x76,0x70,0x6f,0x73,0x20,0x5b,0x5b, + 0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x69,0x70,0x6f,0x73,0x20,0x5b, + 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x33,0x29,0x5d,0x5d,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d, + 0x61,0x6c,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x34,0x29, + 0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x6f, + 0x72,0x69,0x67,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x5b,0x5b,0x75,0x73,0x65, + 0x72,0x28,0x6c,0x6f,0x63,0x6e,0x35,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74, + 0x65,0x72,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x36,0x29, + 0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x63, + 0x76,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x37,0x29,0x5d, + 0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e, + 0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65, + 0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e, + 0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x66,0x72,0x65,0x73,0x6e, + 0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x74,0x68,0x72,0x65,0x61,0x64, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x63,0x6f, + 0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, + 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x46,0x30,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30, + 0x20,0x2b,0x20,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29, + 0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x72,0x28,0x66,0x61, + 0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20, + 0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31, + 0x2e,0x30,0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73, + 0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61, + 0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61, + 0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47, + 0x58,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4e,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x48, 0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x26,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29, - 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64, - 0x6f,0x74,0x28,0x4e,0x2c,0x20,0x56,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74, - 0x28,0x4e,0x2c,0x20,0x4c,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20, - 0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79, - 0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x20,0x2a,0x20,0x47, - 0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47, - 0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f, - 0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65, - 0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65, - 0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x74,0x68,0x72, - 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x33,0x26,0x20, - 0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x74,0x68,0x72,0x65,0x61, - 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x26,0x20,0x72,0x6f,0x75, - 0x67,0x68,0x6e,0x65,0x73,0x73,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32, - 0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f, - 0x6b,0x75,0x70,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x74,0x72,0x69, - 0x6c,0x65,0x73,0x6d,0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, - 0x20,0x5f,0x36,0x36,0x37,0x20,0x3d,0x20,0x28,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f, - 0x70,0x6f,0x73,0x2e,0x78,0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70, - 0x6f,0x73,0x2e,0x79,0x20,0x2a,0x20,0x33,0x32,0x29,0x29,0x20,0x2b,0x20,0x28,0x6c, - 0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x7a,0x20,0x2a,0x20,0x31,0x30,0x32, - 0x34,0x29,0x29,0x20,0x2b,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, - 0x20,0x2a,0x20,0x33,0x32,0x37,0x36,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, - 0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70, - 0x2e,0x72,0x65,0x61,0x64,0x28,0x75,0x69,0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x32, - 0x28,0x5f,0x36,0x36,0x37,0x20,0x25,0x20,0x35,0x31,0x32,0x2c,0x20,0x5f,0x36,0x36, - 0x37,0x20,0x2f,0x20,0x35,0x31,0x32,0x29,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, - 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, - 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68, - 0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x74,0x68, - 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x26,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x74,0x68,0x72,0x65, - 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26, - 0x20,0x46,0x30,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, - 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x46,0x30,0x20,0x2b,0x20,0x28,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61, - 0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x72, - 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x2c,0x20,0x46,0x30,0x29,0x20,0x2d, - 0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x72,0x28,0x66,0x61,0x73,0x74, - 0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f, - 0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, - 0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61, - 0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74, - 0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73, - 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x69,0x6e,0x74,0x20,0x72,0x64, - 0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72, - 0x6d,0x61,0x6c,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4e,0x29,0x0a,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x28,0x28,0x69,0x6e,0x74,0x28, - 0x64,0x6f,0x74,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d,0x30,0x2e,0x30,0x2c, - 0x20,0x2d,0x31,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x29,0x2c,0x20,0x4e,0x29, - 0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30, - 0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2b,0x20,0x28, - 0x69,0x6e,0x74,0x28,0x4e,0x2e,0x7a,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30, - 0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31, - 0x32,0x35,0x29,0x20,0x2a,0x20,0x32,0x29,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74, - 0x28,0x64,0x6f,0x74,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d,0x30,0x2e,0x30, - 0x2c,0x20,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e,0x30,0x29,0x2c,0x20,0x4e, - 0x29,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39, - 0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20, - 0x33,0x29,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x4e,0x2e,0x78,0x20,0x3e, - 0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33, - 0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x34,0x29,0x29, - 0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x64,0x6f,0x74,0x28,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x28,0x2d,0x31,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d, - 0x30,0x2e,0x30,0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38, - 0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38, - 0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, - 0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74, - 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79, - 0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x5f,0x74,0x6f,0x5f,0x72,0x64, - 0x6d,0x5f,0x73,0x69,0x7a,0x65,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, - 0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x26,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x70,0x6f,0x77,0x72,0x28,0x32,0x2e,0x30,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x28,0x38,0x20,0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29, - 0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69, - 0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f, - 0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29, - 0x29,0x0a,0x69,0x6e,0x74,0x32,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f, - 0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x74,0x68,0x72, - 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x26,0x20,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x2c,0x20,0x74,0x68, - 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x26,0x20, - 0x66,0x61,0x63,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, - 0x73,0x74,0x20,0x69,0x6e,0x74,0x26,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x2c, - 0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74, - 0x3e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x72,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x0a,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x5f,0x37,0x30,0x30,0x20,0x3d,0x20,0x69, - 0x6e,0x74,0x32,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e,0x67,0x65, - 0x74,0x5f,0x77,0x69,0x64,0x74,0x68,0x28,0x29,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61, - 0x74,0x6c,0x61,0x73,0x2e,0x67,0x65,0x74,0x5f,0x68,0x65,0x69,0x67,0x68,0x74,0x28, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69, - 0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x28,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65, - 0x63,0x74,0x2e,0x78,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x37,0x30, - 0x30,0x2e,0x78,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x25, - 0x20,0x32,0x29,0x20,0x2a,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x2c,0x20, - 0x69,0x6e,0x74,0x28,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x2e,0x79, - 0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x37,0x30,0x30,0x2e,0x79,0x29, - 0x29,0x20,0x2b,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x2f,0x20,0x32,0x29,0x20, - 0x2a,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f, - 0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77, - 0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69, - 0x6f,0x63,0x74,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x76,0x2c,0x20,0x74,0x68,0x72,0x65, - 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x26,0x20,0x69,0x6e, - 0x64,0x65,0x78,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, - 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x6f,0x66,0x66,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x76,0x63,0x20,0x3d, - 0x20,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64, - 0x65,0x78,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x20,0x5f,0x31,0x39,0x32,0x31,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x31,0x2e,0x7a,0x20,0x3d, - 0x20,0x76,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, - 0x39,0x32,0x31,0x2e,0x79,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x31,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28, - 0x69,0x6e,0x64,0x65,0x78,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x32,0x29, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x32,0x35,0x20,0x3d,0x20,0x76,0x63, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x35,0x2e, - 0x7a,0x20,0x3d,0x20,0x76,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x39,0x32,0x35,0x2e,0x78,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39, - 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x25,0x20,0x32,0x29,0x20,0x3d,0x3d, - 0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x32,0x39,0x20,0x3d, - 0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39, - 0x32,0x39,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x39,0x2e,0x7a,0x20,0x2a, - 0x20,0x28,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x39,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31, - 0x39,0x33,0x32,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x31,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33,0x32, - 0x2e,0x78,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x33,0x34,0x20,0x3d,0x20,0x5f, - 0x31,0x39,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x33,0x34,0x2e, - 0x78,0x20,0x3d,0x20,0x5f,0x36,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x37,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33,0x32, - 0x2e,0x79,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x5f,0x31,0x39,0x33,0x34,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x36,0x30,0x37,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33,0x34,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x36,0x32,0x35,0x20, - 0x3d,0x20,0x5f,0x31,0x39,0x33,0x34,0x2e,0x78,0x79,0x20,0x2a,0x20,0x28,0x31,0x2e, - 0x30,0x20,0x2f,0x20,0x28,0x28,0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x31,0x29,0x20, - 0x2b,0x20,0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x37,0x29,0x29,0x20,0x2b,0x20,0x5f, - 0x31,0x39,0x33,0x32,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x36,0x32,0x38,0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e, - 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x33, - 0x30,0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x28,0x28, - 0x5f,0x36,0x32,0x38,0x20,0x2b,0x20,0x5f,0x36,0x33,0x30,0x29,0x20,0x2b,0x20,0x31, - 0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x2c,0x20,0x28,0x28,0x5f,0x36,0x32, - 0x38,0x20,0x2d,0x20,0x5f,0x36,0x33,0x30,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x29, - 0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x38, + 0x39,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20, + 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x39,0x33,0x20,0x3d,0x20,0x5f,0x33,0x38,0x39, + 0x20,0x2a,0x20,0x5f,0x33,0x38,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a, + 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x48,0x29,0x2c,0x20,0x30, + 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x34,0x31,0x30,0x20,0x3d,0x20,0x28,0x28,0x5f,0x33,0x39,0x38,0x20,0x2a,0x20,0x5f, + 0x33,0x39,0x38,0x29,0x20,0x2a,0x20,0x28,0x5f,0x33,0x39,0x33,0x20,0x2d,0x20,0x31, + 0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x33,0x39,0x33,0x20,0x2f,0x20,0x28,0x28, + 0x33,0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31,0x31, + 0x31,0x33,0x32,0x38,0x31,0x32,0x35,0x20,0x2a,0x20,0x5f,0x34,0x31,0x30,0x29,0x20, + 0x2a,0x20,0x5f,0x34,0x31,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74, 0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72, 0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f, - 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x68, - 0x61,0x73,0x68,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x6e,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x73,0x69, - 0x6e,0x28,0x6e,0x29,0x20,0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36, - 0x38,0x37,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, - 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, - 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x6e,0x6f,0x69, - 0x73,0x65,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x78,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x32,0x39,0x20,0x3d,0x20,0x66, - 0x72,0x61,0x63,0x74,0x28,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x31,0x33,0x37,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x66,0x6c, - 0x6f,0x6f,0x72,0x28,0x78,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31, - 0x2e,0x30,0x2c,0x20,0x31,0x35,0x37,0x2e,0x30,0x2c,0x20,0x31,0x31,0x33,0x2e,0x30, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20, - 0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x30,0x20,0x3d,0x20,0x5f,0x31,0x32, - 0x39,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20, - 0x31,0x35,0x37,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20, - 0x2b,0x20,0x31,0x35,0x38,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x31,0x36,0x36,0x20,0x3d,0x20,0x5f,0x31,0x32,0x39,0x2e,0x79, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x31,0x33, - 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31, - 0x31,0x34,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b, - 0x20,0x32,0x37,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37, - 0x20,0x2b,0x20,0x32,0x37,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78, - 0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x2c,0x20,0x68,0x61, - 0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x5f,0x31,0x35, - 0x30,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x5f,0x31,0x36, - 0x36,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c, - 0x20,0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x36,0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37, - 0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x5f,0x31,0x36,0x36,0x29,0x2c, - 0x20,0x5f,0x31,0x32,0x39,0x2e,0x7a,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61, - 0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74, - 0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73, - 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x66,0x62,0x6d,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x26,0x20,0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x66,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x70,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73, - 0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x3b, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47, + 0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47, + 0x58,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x26,0x20,0x4e,0x64,0x6f,0x74,0x56,0x2c,0x20,0x74,0x68,0x72, + 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26, + 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x32,0x33,0x20,0x3d,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x32,0x39,0x20,0x3d, + 0x20,0x28,0x5f,0x34,0x32,0x33,0x20,0x2a,0x20,0x5f,0x34,0x32,0x33,0x29,0x20,0x2a, + 0x20,0x30,0x2e,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, + 0x72,0x6e,0x20,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2f,0x20,0x28,0x28,0x4e,0x64,0x6f, + 0x74,0x56,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x34,0x32,0x39, + 0x29,0x29,0x20,0x2b,0x20,0x5f,0x34,0x32,0x39,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73, + 0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61, + 0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61, + 0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28, + 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x26,0x20,0x4e,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, + 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x56,0x2c,0x20, + 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x26,0x20,0x4c,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, + 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x72,0x6f,0x75,0x67, + 0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a, + 0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x56,0x29,0x2c,0x20, + 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d, + 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x4c,0x29,0x2c,0x20,0x30,0x2e, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, + 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x47,0x65, + 0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x33,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68, + 0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74, + 0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72, + 0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, + 0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65, + 0x63,0x74,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, + 0x69,0x6e,0x74,0x33,0x26,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c, + 0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e, + 0x74,0x26,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x2c,0x20,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72, + 0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c, + 0x65,0x72,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x29,0x0a,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x36,0x36,0x37,0x20,0x3d,0x20,0x28,0x28, + 0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x78,0x20,0x2b,0x20,0x28,0x6c, + 0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x79,0x20,0x2a,0x20,0x33,0x32,0x29, + 0x29,0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x7a, + 0x20,0x2a,0x20,0x31,0x30,0x32,0x34,0x29,0x29,0x20,0x2b,0x20,0x28,0x72,0x6f,0x75, + 0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x33,0x32,0x37,0x36,0x38,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x64,0x6d,0x5f, + 0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2e,0x72,0x65,0x61,0x64,0x28,0x75,0x69,0x6e,0x74, + 0x32,0x28,0x69,0x6e,0x74,0x32,0x28,0x5f,0x36,0x36,0x37,0x20,0x25,0x20,0x35,0x31, + 0x32,0x2c,0x20,0x5f,0x36,0x36,0x37,0x20,0x2f,0x20,0x35,0x31,0x32,0x29,0x29,0x2c, + 0x20,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69, + 0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74, + 0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69, + 0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x46,0x72,0x65,0x73, + 0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61, + 0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x46,0x30,0x2c,0x20,0x74,0x68,0x72,0x65,0x61, + 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20,0x2b,0x20,0x28,0x28,0x66,0x61, + 0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31, + 0x2e,0x30,0x20,0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x2c, + 0x20,0x46,0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77, + 0x72,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e, + 0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e, + 0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a, + 0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65, + 0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28, + 0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a, + 0x69,0x6e,0x74,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72, + 0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x74,0x68,0x72,0x65,0x61,0x64, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4e, + 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28, + 0x28,0x28,0x69,0x6e,0x74,0x28,0x64,0x6f,0x74,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e, + 0x30,0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30, + 0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32, + 0x35,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x4e,0x2e,0x7a,0x20,0x3e,0x3d, + 0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34, + 0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x32,0x29,0x29,0x20, + 0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x64,0x6f,0x74,0x28,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x28,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x31, + 0x2e,0x30,0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30, + 0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31, + 0x32,0x35,0x29,0x20,0x2a,0x20,0x33,0x29,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74, + 0x28,0x4e,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30, + 0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29, + 0x20,0x2a,0x20,0x34,0x29,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x64,0x6f, + 0x74,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d,0x31,0x2e,0x30,0x2c,0x20,0x2d, + 0x30,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e, + 0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33, + 0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x35,0x29,0x3b, + 0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e, + 0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28, + 0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29, + 0x0a,0x69,0x6e,0x74,0x32,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x70, + 0x69,0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x74,0x68,0x72,0x65, + 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26, + 0x20,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x2c,0x20,0x74,0x68,0x72, + 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x26,0x20,0x66, + 0x61,0x63,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, + 0x74,0x20,0x69,0x6e,0x74,0x26,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x2c,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e, + 0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x72,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x5f,0x37,0x30,0x30,0x20,0x3d,0x20,0x69,0x6e, + 0x74,0x32,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e,0x67,0x65,0x74, + 0x5f,0x77,0x69,0x64,0x74,0x68,0x28,0x29,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74, + 0x6c,0x61,0x73,0x2e,0x67,0x65,0x74,0x5f,0x68,0x65,0x69,0x67,0x68,0x74,0x28,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x6e, + 0x74,0x32,0x28,0x69,0x6e,0x74,0x28,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63, + 0x74,0x2e,0x78,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x37,0x30,0x30, + 0x2e,0x78,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x25,0x20, + 0x32,0x29,0x20,0x2a,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x2c,0x20,0x69, + 0x6e,0x74,0x28,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x2e,0x79,0x20, + 0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x37,0x30,0x30,0x2e,0x79,0x29,0x29, + 0x20,0x2b,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x2f,0x20,0x32,0x29,0x20,0x2a, + 0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73, + 0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61, + 0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61, + 0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f, + 0x63,0x74,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x76,0x2c,0x20,0x74,0x68,0x72,0x65,0x61, + 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x26,0x20,0x69,0x6e,0x64, + 0x65,0x78,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x6f,0x66,0x66,0x29,0x0a,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x76,0x63,0x20,0x3d,0x20, + 0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65, + 0x78,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x20,0x5f,0x31,0x39,0x33,0x39,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x33,0x39,0x2e,0x7a,0x20,0x3d,0x20, + 0x76,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39, + 0x33,0x39,0x2e,0x79,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33,0x39,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69, + 0x6e,0x64,0x65,0x78,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x34,0x33,0x20,0x3d,0x20,0x76,0x63,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x34,0x33,0x2e,0x7a, + 0x20,0x3d,0x20,0x76,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x5f,0x31,0x39,0x34,0x33,0x2e,0x78,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x34, + 0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x25,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20, + 0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x34,0x37,0x20,0x3d,0x20, + 0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x34, + 0x37,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x39,0x34,0x37,0x2e,0x7a,0x20,0x2a,0x20, + 0x28,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39, + 0x35,0x30,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x36,0x30,0x31,0x20,0x3d,0x20,0x5f,0x31,0x39,0x35,0x30,0x2e, + 0x78,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x35,0x32,0x20,0x3d,0x20,0x5f,0x31, + 0x39,0x35,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x35,0x32,0x2e,0x78, + 0x20,0x3d,0x20,0x5f,0x36,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x36,0x30,0x37,0x20,0x3d,0x20,0x5f,0x31,0x39,0x35,0x30,0x2e, + 0x79,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f, + 0x31,0x39,0x35,0x32,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x36,0x30,0x37,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x35,0x32,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x36,0x32,0x35,0x20,0x3d, + 0x20,0x5f,0x31,0x39,0x35,0x32,0x2e,0x78,0x79,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30, + 0x20,0x2f,0x20,0x28,0x28,0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x31,0x29,0x20,0x2b, + 0x20,0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x37,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31, + 0x39,0x35,0x30,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x36,0x32,0x38,0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e,0x78, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x33,0x30, + 0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x28,0x28,0x5f, + 0x36,0x32,0x38,0x20,0x2b,0x20,0x5f,0x36,0x33,0x30,0x29,0x20,0x2b,0x20,0x31,0x2e, + 0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x2c,0x20,0x28,0x28,0x5f,0x36,0x32,0x38, + 0x20,0x2d,0x20,0x5f,0x36,0x33,0x30,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x29,0x20, + 0x2a,0x20,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69, + 0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69, + 0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69, + 0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x68,0x61, + 0x73,0x68,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x6e,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x73,0x69,0x6e, + 0x28,0x6e,0x29,0x20,0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36,0x38, + 0x37,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69, + 0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74, + 0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69, + 0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x6e,0x6f,0x69,0x73, + 0x65,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x78,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x32,0x39,0x20,0x3d,0x20,0x66,0x72, + 0x61,0x63,0x74,0x28,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x31,0x33,0x37,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x66,0x6c,0x6f, + 0x6f,0x72,0x28,0x78,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e, + 0x30,0x2c,0x20,0x31,0x35,0x37,0x2e,0x30,0x2c,0x20,0x31,0x31,0x33,0x2e,0x30,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f, + 0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x30,0x20,0x3d,0x20,0x5f,0x31,0x32,0x39, + 0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31, + 0x35,0x37,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b, + 0x20,0x31,0x35,0x38,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x31,0x36,0x36,0x20,0x3d,0x20,0x5f,0x31,0x32,0x39,0x2e,0x79,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x31,0x33,0x2e, + 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x31, + 0x34,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20, + 0x32,0x37,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20, + 0x2b,0x20,0x32,0x37,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28, + 0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x2c,0x20,0x68,0x61,0x73, + 0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30, + 0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x33,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x5f,0x31,0x36,0x36, + 0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20, + 0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36, + 0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29, + 0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x5f,0x31,0x36,0x36,0x29,0x2c,0x20, + 0x5f,0x31,0x32,0x39,0x2e,0x7a,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74, + 0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72, + 0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x66, + 0x62,0x6d,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x26,0x20,0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x66,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x70,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x78, + 0x33,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e, + 0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39, + 0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30, + 0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32, + 0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d,0x31,0x2e,0x36,0x30, + 0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30, + 0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32,0x30,0x30,0x30,0x30,0x30, + 0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c, + 0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32, + 0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30, + 0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c, + 0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32, + 0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c,0x20,0x31,0x2e, + 0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37,0x37,0x30,0x35, + 0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29,0x20,0x2a,0x20, + 0x31,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35, + 0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20, + 0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f, + 0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2a,0x20,0x30, + 0x2e,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x78,0x33,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30, + 0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38, + 0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x31, + 0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35, + 0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31, + 0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37, + 0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39, + 0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39, + 0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33, + 0x37,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d,0x31,0x2e,0x32, + 0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32, + 0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39, + 0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33, + 0x37,0x35,0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33, + 0x38,0x39,0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a, + 0x20,0x70,0x29,0x20,0x2a,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34, + 0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d, + 0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x31,0x36, + 0x33,0x33,0x37,0x32,0x30,0x33,0x39,0x37,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x78,0x33,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c, + 0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38, + 0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30, + 0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30, + 0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d,0x31, + 0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37, + 0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32,0x30,0x30, + 0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38, + 0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38, + 0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29, + 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30, + 0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31, + 0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38, + 0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c, + 0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37, + 0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29, + 0x20,0x2a,0x20,0x31,0x2e,0x32,0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x32,0x33,0x31, + 0x36,0x32,0x38,0x34,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20, + 0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f, + 0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x20,0x2a, + 0x20,0x30,0x2e,0x30,0x38,0x33,0x33,0x33,0x33,0x33,0x33,0x35,0x38,0x31,0x36,0x38, + 0x36,0x30,0x31,0x39,0x38,0x39,0x37,0x34,0x36,0x30,0x39,0x33,0x37,0x35,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x78,0x33,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31, 0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37, @@ -5845,1100 +5937,1055 @@ fs_trile_source_metal_macos := u8.[ 0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c,0x20,0x31, 0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37,0x37,0x30, 0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29,0x20,0x2a, - 0x20,0x31,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38, - 0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d, - 0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e, - 0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2a,0x20, - 0x30,0x2e,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x78,0x33,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, - 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33, - 0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20, - 0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31, - 0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34, - 0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e, - 0x37,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34, - 0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39, - 0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39, - 0x33,0x37,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d,0x31,0x2e, - 0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38, - 0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39, - 0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39, - 0x33,0x37,0x35,0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31, - 0x33,0x38,0x39,0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20, - 0x2a,0x20,0x70,0x29,0x20,0x2a,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30, - 0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b, - 0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x31, - 0x36,0x33,0x33,0x37,0x32,0x30,0x33,0x39,0x37,0x39,0x34,0x39,0x32,0x31,0x38,0x37, - 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x78,0x33,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30, - 0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31, - 0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32, - 0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32, - 0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d, - 0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35, - 0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32,0x30, - 0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31, - 0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37, - 0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35, - 0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30, - 0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33, - 0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37, - 0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35, - 0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39, - 0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70, - 0x29,0x20,0x2a,0x20,0x31,0x2e,0x32,0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x32,0x33, - 0x31,0x36,0x32,0x38,0x34,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, - 0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28, - 0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x20, - 0x2a,0x20,0x30,0x2e,0x30,0x38,0x33,0x33,0x33,0x33,0x33,0x33,0x35,0x38,0x31,0x36, - 0x38,0x36,0x30,0x31,0x39,0x38,0x39,0x37,0x34,0x36,0x30,0x39,0x33,0x37,0x35,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x78,0x33,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20, - 0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35, - 0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30, - 0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33, - 0x31,0x32,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d,0x31,0x2e, - 0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39, - 0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32,0x30,0x30,0x30, - 0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37, - 0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35, - 0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30,0x30, - 0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32, - 0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35, - 0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c,0x20, - 0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37,0x37, - 0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29,0x20, - 0x2a,0x20,0x31,0x2e,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x36,0x31,0x35,0x38, - 0x31,0x34,0x32,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20, - 0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x32,0x36,0x33,0x20,0x3d,0x20,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x32,0x36,0x34,0x20,0x3d,0x20,0x5f,0x32,0x36,0x33,0x20,0x2b, - 0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, - 0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x34,0x31,0x36,0x36,0x36,0x36,0x36,0x37,0x39, - 0x30,0x38,0x34,0x33,0x30,0x30,0x39,0x39,0x34,0x38,0x37,0x33,0x30,0x34,0x36,0x38, - 0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x3d,0x20,0x5f,0x32,0x36, - 0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32, - 0x36,0x34,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e, - 0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65, - 0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e, - 0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x6b,0x79,0x28,0x74, - 0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x26,0x20,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2c,0x20,0x74,0x68,0x72,0x65, + 0x20,0x31,0x2e,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x36,0x31,0x35,0x38,0x31, + 0x34,0x32,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d, + 0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32, + 0x36,0x33,0x20,0x3d,0x20,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x32,0x36,0x34,0x20,0x3d,0x20,0x5f,0x32,0x36,0x33,0x20,0x2b,0x20, + 0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29, + 0x20,0x2a,0x20,0x30,0x2e,0x30,0x34,0x31,0x36,0x36,0x36,0x36,0x36,0x37,0x39,0x30, + 0x38,0x34,0x33,0x30,0x30,0x39,0x39,0x34,0x38,0x37,0x33,0x30,0x34,0x36,0x38,0x37, + 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x3d,0x20,0x5f,0x32,0x36,0x34, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x36, + 0x34,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c, + 0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f, + 0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65, + 0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x6b,0x79,0x28,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x26,0x20,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2c,0x20,0x74,0x68,0x72,0x65,0x61, + 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20, + 0x73,0x75,0x6e,0x70,0x6f,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74, + 0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f,0x6e, + 0x66,0x69,0x67,0x26,0x20,0x5f,0x32,0x37,0x31,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x38,0x39,0x20,0x3d,0x20,0x64,0x6f, + 0x74,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a, + 0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x2c,0x20,0x66,0x61,0x73,0x74,0x3a, + 0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x75,0x6e,0x70,0x6f, + 0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x5f,0x32,0x39,0x32,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x66,0x69,0x6e,0x61,0x6c, + 0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x32,0x37,0x31,0x2e,0x73,0x6b,0x79,0x42, + 0x61,0x73,0x65,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x6b,0x79,0x54,0x6f,0x70, + 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63, + 0x6c,0x61,0x6d,0x70,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2e,0x79,0x20,0x2a,0x20, + 0x32,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39, + 0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32, + 0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x32,0x37,0x31, + 0x2e,0x73,0x75,0x6e,0x48,0x61,0x6c,0x6f,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a, + 0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x5f,0x32,0x38,0x39,0x20,0x2d,0x20,0x30, + 0x2e,0x39,0x34,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31, + 0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e, + 0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30, + 0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31, + 0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33, + 0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32, + 0x38,0x39,0x20,0x3e,0x20,0x30,0x2e,0x39,0x39,0x39,0x38,0x39,0x39,0x39,0x38,0x33, + 0x34,0x30,0x36,0x30,0x36,0x36,0x38,0x39,0x34,0x35,0x33,0x31,0x32,0x35,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69, + 0x6e,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x44,0x69, + 0x73,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x5f,0x33,0x33,0x33,0x20,0x3d,0x20,0x5f,0x32,0x39,0x32,0x2e, + 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x2b,0x3d,0x20, + 0x28,0x6d,0x69,0x78,0x28,0x5f,0x32,0x37,0x31,0x2e,0x68,0x6f,0x72,0x69,0x7a,0x6f, + 0x6e,0x48,0x61,0x6c,0x6f,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e, + 0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x66,0x61,0x73,0x74,0x3a, + 0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x61,0x62,0x73,0x28,0x5f,0x33,0x33,0x33,0x29, + 0x20,0x2a,0x20,0x38,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e, + 0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36, + 0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x32,0x37,0x31,0x2e,0x68,0x61,0x73,0x43,0x6c,0x6f,0x75,0x64,0x73,0x20,0x3d,0x3d, + 0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d, + 0x20,0x28,0x28,0x5f,0x32,0x39,0x32,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x5f,0x33,0x33,0x33,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x20,0x2b, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e,0x74,0x69,0x6d, + 0x65,0x20,0x2a,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37, + 0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31, + 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x33,0x36,0x39,0x20,0x3d,0x20,0x66,0x62,0x6d,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69, + 0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x69,0x6e,0x61,0x6c,0x2c, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28, + 0x30,0x2e,0x30,0x2c,0x20,0x5f,0x33,0x33,0x33,0x29,0x20,0x2a,0x20,0x28,0x73,0x6d, + 0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x35,0x2c,0x20,0x31,0x2e, + 0x30,0x2c,0x20,0x5f,0x33,0x36,0x39,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x30,0x30, + 0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30, + 0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, + 0x6e,0x20,0x66,0x69,0x6e,0x61,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74, + 0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72, + 0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x28,0x74,0x68,0x72,0x65,0x61, + 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20, + 0x4e,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x56,0x2c,0x20,0x74,0x68,0x72,0x65,0x61, + 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20, + 0x72,0x64,0x6d,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x2c,0x20,0x74,0x68,0x72,0x65, 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26, - 0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e, - 0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f, - 0x6e,0x66,0x69,0x67,0x26,0x20,0x5f,0x32,0x37,0x31,0x29,0x0a,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x38,0x39,0x20,0x3d,0x20,0x64, - 0x6f,0x74,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69, - 0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x2c,0x20,0x66,0x61,0x73,0x74, - 0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x75,0x6e,0x70, - 0x6f,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x5f,0x32,0x39,0x32,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x66,0x69,0x6e,0x61, - 0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x32,0x37,0x31,0x2e,0x73,0x6b,0x79, - 0x42,0x61,0x73,0x65,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x6b,0x79,0x54,0x6f, - 0x70,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a, - 0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2e,0x79,0x20,0x2a, - 0x20,0x32,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39, - 0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39, - 0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x32,0x37, - 0x31,0x2e,0x73,0x75,0x6e,0x48,0x61,0x6c,0x6f,0x20,0x2a,0x20,0x66,0x61,0x73,0x74, - 0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x5f,0x32,0x38,0x39,0x20,0x2d,0x20, - 0x30,0x2e,0x39,0x34,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37, - 0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x30, - 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x38,0x30,0x30,0x30,0x30, - 0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38, - 0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30, - 0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35, - 0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x32,0x38,0x39,0x20,0x3e,0x20,0x30,0x2e,0x39,0x39,0x39,0x38,0x39,0x39,0x39,0x38, - 0x33,0x34,0x30,0x36,0x30,0x36,0x36,0x38,0x39,0x34,0x35,0x33,0x31,0x32,0x35,0x29, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x44, - 0x69,0x73,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x33,0x33,0x20,0x3d,0x20,0x5f,0x32,0x39,0x32, - 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x2b,0x3d, - 0x20,0x28,0x6d,0x69,0x78,0x28,0x5f,0x32,0x37,0x31,0x2e,0x68,0x6f,0x72,0x69,0x7a, - 0x6f,0x6e,0x48,0x61,0x6c,0x6f,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30, - 0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x66,0x61,0x73,0x74, - 0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x61,0x62,0x73,0x28,0x5f,0x33,0x33,0x33, - 0x29,0x20,0x2a,0x20,0x38,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31, - 0x2e,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30, - 0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37, - 0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x32,0x37,0x31,0x2e,0x68,0x61,0x73,0x43,0x6c,0x6f,0x75,0x64,0x73,0x20,0x3d, - 0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20, - 0x3d,0x20,0x28,0x28,0x5f,0x32,0x39,0x32,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x5f,0x33,0x33,0x33,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x20, - 0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e,0x74,0x69, - 0x6d,0x65,0x20,0x2a,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30, - 0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38, - 0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x33,0x36,0x39,0x20,0x3d,0x20,0x66,0x62,0x6d,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x69,0x6e,0x61,0x6c, - 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x2c,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x28,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78, - 0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x33,0x33,0x33,0x29,0x20,0x2a,0x20,0x28,0x73, - 0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x35,0x2c,0x20,0x31, - 0x2e,0x30,0x2c,0x20,0x5f,0x33,0x36,0x39,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x30, - 0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35, - 0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, - 0x72,0x6e,0x20,0x66,0x69,0x6e,0x61,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61, - 0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74, - 0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73, - 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x28,0x74,0x68,0x72,0x65, - 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26, - 0x20,0x4e,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x56,0x2c,0x20,0x74,0x68,0x72,0x65, - 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26, - 0x20,0x72,0x64,0x6d,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x2c,0x20,0x74,0x68,0x72, - 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x26,0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, - 0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x26,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, - 0x74,0x20,0x69,0x6e,0x74,0x33,0x26,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f, - 0x73,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x74,0x72,0x69,0x6c, - 0x65,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x26,0x20, - 0x5f,0x32,0x37,0x31,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c, - 0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75, - 0x70,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x74,0x72,0x69,0x6c,0x65, - 0x73,0x6d,0x70,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66, - 0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c, - 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29, - 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, - 0x20,0x5f,0x37,0x33,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65, - 0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, - 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x37,0x34,0x34,0x20, - 0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x5f, - 0x74,0x6f,0x5f,0x72,0x64,0x6d,0x5f,0x73,0x69,0x7a,0x65,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x37,0x34,0x37,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x37, - 0x34,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f, + 0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x26,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x69,0x6e,0x74,0x33,0x26,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73, + 0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x74,0x72,0x69,0x6c,0x65, + 0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x26,0x20,0x5f, + 0x32,0x37,0x31,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66, + 0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70, + 0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x74,0x72,0x69,0x6c,0x65,0x73, + 0x6d,0x70,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c, + 0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20, + 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, + 0x5f,0x37,0x33,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78, + 0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f, 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x35,0x33,0x20, + 0x5f,0x32,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x34,0x35,0x20, 0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f, - 0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75, + 0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75, 0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x35,0x33,0x2e,0x7a,0x20,0x3c,0x3d,0x20, - 0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x37,0x35,0x33, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x35,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x37,0x34,0x34, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x5f,0x37,0x36,0x38,0x20, - 0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x70,0x69,0x78,0x65,0x6c, - 0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x36,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64, - 0x6d,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x20,0x5f,0x38,0x30,0x38,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e, - 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x72,0x65,0x66,0x6c,0x65,0x63,0x74, - 0x28,0x56,0x2c,0x20,0x4e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3e,0x20,0x31,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x66, - 0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x64, - 0x69,0x66,0x66,0x20,0x2b,0x20,0x28,0x5f,0x38,0x30,0x38,0x20,0x2a,0x20,0x32,0x2e, - 0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72, - 0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e, - 0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x28, - 0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x37,0x36,0x38,0x29,0x20,0x2b,0x20, - 0x28,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x20,0x2a,0x20,0x5f,0x37, - 0x34,0x37,0x29,0x29,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x69,0x6e, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x34,0x37,0x20,0x3d,0x20,0x5f, + 0x37,0x34,0x35,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x37,0x34,0x37,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30, + 0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x37,0x36,0x37,0x20,0x3d,0x20,0x69,0x6e,0x74, + 0x28,0x5f,0x37,0x34,0x37,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x69,0x6e, 0x74,0x32,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e,0x67,0x65,0x74, 0x5f,0x77,0x69,0x64,0x74,0x68,0x28,0x29,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74, 0x6c,0x61,0x73,0x2e,0x67,0x65,0x74,0x5f,0x68,0x65,0x69,0x67,0x68,0x74,0x28,0x29, - 0x29,0x29,0x29,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x20,0x3d, - 0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x34,0x30,0x3b,0x20,0x69,0x2b,0x2b,0x29, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x38,0x37,0x37,0x20,0x3d,0x20,0x64,0x69,0x66, - 0x66,0x20,0x2b,0x20,0x28,0x5f,0x38,0x30,0x38,0x20,0x2a,0x20,0x28,0x66,0x6c,0x6f, - 0x61,0x74,0x28,0x69,0x20,0x2b,0x20,0x31,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64, - 0x6f,0x74,0x28,0x5f,0x38,0x37,0x37,0x2c,0x20,0x4e,0x29,0x20,0x3c,0x20,0x30,0x2e, - 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75, - 0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72, - 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x38,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x31,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x32,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x30,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x5f,0x38,0x39,0x32,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f, - 0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x39,0x31,0x37,0x20,0x3d,0x20,0x72,0x64,0x6d, - 0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e,0x72,0x65,0x61,0x64,0x28,0x75,0x69,0x6e,0x74, - 0x32,0x28,0x69,0x6e,0x74,0x32,0x28,0x5f,0x37,0x36,0x38,0x2e,0x78,0x20,0x2b,0x20, - 0x69,0x6e,0x74,0x28,0x5f,0x38,0x39,0x32,0x2e,0x78,0x20,0x2a,0x20,0x5f,0x37,0x34, - 0x37,0x29,0x2c,0x20,0x5f,0x37,0x36,0x38,0x2e,0x79,0x20,0x2b,0x20,0x69,0x6e,0x74, - 0x28,0x5f,0x38,0x39,0x32,0x2e,0x79,0x20,0x2a,0x20,0x5f,0x37,0x34,0x37,0x29,0x29, - 0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x39,0x32,0x31,0x20,0x3d,0x20,0x5f,0x39,0x31,0x37, - 0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x39,0x32,0x34,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28, - 0x5f,0x38,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x33,0x35,0x20,0x3d,0x20,0x28,0x5f,0x39,0x32,0x31, - 0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x20,0x26,0x26,0x20,0x28,0x5f,0x39,0x32,0x31, - 0x20,0x3c,0x20,0x5f,0x39,0x32,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x33,0x35,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x39,0x34,0x33,0x20,0x3d,0x20,0x28,0x5f,0x39,0x32, - 0x31,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x3e,0x20,0x5f,0x39,0x32,0x34,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x39, - 0x34,0x33,0x20,0x3d,0x20,0x5f,0x39,0x33,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x5f,0x39,0x34,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74, - 0x75,0x72,0x6e,0x20,0x5f,0x39,0x31,0x37,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x20, - 0x3d,0x20,0x5f,0x38,0x30,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x38,0x30,0x38,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6b,0x79,0x44, - 0x69,0x72,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x73,0x6b,0x79, - 0x44,0x69,0x72,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c, - 0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32, - 0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6b,0x79,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x34,0x2c,0x20,0x5f,0x32,0x37,0x31,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, - 0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74, - 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79, - 0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x69,0x6e,0x74,0x20,0x69, - 0x73,0x69,0x67,0x6e,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, - 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x66,0x29,0x0a,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x20,0x3c,0x20,0x30,0x2e, - 0x30,0x29,0x20,0x3f,0x20,0x28,0x2d,0x31,0x29,0x20,0x3a,0x20,0x31,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, - 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, - 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d, - 0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x74,0x68,0x72,0x65,0x61,0x64, - 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4e, - 0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69, - 0x6e,0x74,0x33,0x26,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20, + 0x29,0x2e,0x78,0x29,0x29,0x20,0x2f,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x37,0x30,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x28,0x5f,0x37,0x36,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x37, + 0x34,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x37, + 0x36,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x5f,0x37,0x37, + 0x38,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x70,0x69,0x78, + 0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x35,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20, + 0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x20,0x5f,0x38,0x31,0x38,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a, + 0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x72,0x65,0x66,0x6c,0x65, + 0x63,0x74,0x28,0x56,0x2c,0x20,0x4e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3e,0x20,0x31, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d, + 0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65, + 0x28,0x64,0x69,0x66,0x66,0x20,0x2b,0x20,0x28,0x5f,0x38,0x31,0x38,0x20,0x2a,0x20, + 0x32,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, + 0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x37,0x33, + 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61, + 0x73,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c, + 0x20,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x37,0x37,0x38,0x29,0x20, + 0x2b,0x20,0x28,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f, + 0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x20,0x2a,0x20, + 0x5f,0x37,0x37,0x30,0x29,0x29,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28, + 0x69,0x6e,0x74,0x32,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e,0x67, + 0x65,0x74,0x5f,0x77,0x69,0x64,0x74,0x68,0x28,0x29,0x2c,0x20,0x72,0x64,0x6d,0x5f, + 0x61,0x74,0x6c,0x61,0x73,0x2e,0x67,0x65,0x74,0x5f,0x68,0x65,0x69,0x67,0x68,0x74, + 0x28,0x29,0x29,0x29,0x29,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69, + 0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x34,0x30,0x3b,0x20,0x69,0x2b, + 0x2b,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x38,0x38,0x37,0x20,0x3d,0x20,0x64, + 0x69,0x66,0x66,0x20,0x2b,0x20,0x28,0x5f,0x38,0x31,0x38,0x20,0x2a,0x20,0x28,0x66, + 0x6c,0x6f,0x61,0x74,0x28,0x69,0x20,0x2b,0x20,0x31,0x29,0x20,0x2a,0x20,0x30,0x2e, + 0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x64,0x6f,0x74,0x28,0x5f,0x38,0x38,0x37,0x2c,0x20,0x4e,0x29,0x20,0x3c,0x20, + 0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69, + 0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x38,0x38,0x37,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x30,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x31,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x20,0x5f,0x39,0x32,0x34,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c, + 0x61,0x73,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x72,0x64,0x6d,0x73,0x6d,0x70, + 0x2c,0x20,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x37,0x37,0x38,0x29, + 0x20,0x2b,0x20,0x28,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69, + 0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x29, + 0x20,0x2a,0x20,0x5f,0x37,0x37,0x30,0x29,0x29,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x28,0x69,0x6e,0x74,0x32,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61, + 0x73,0x2e,0x67,0x65,0x74,0x5f,0x77,0x69,0x64,0x74,0x68,0x28,0x29,0x2c,0x20,0x72, + 0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e,0x67,0x65,0x74,0x5f,0x68,0x65,0x69, + 0x67,0x68,0x74,0x28,0x29,0x29,0x29,0x29,0x2c,0x20,0x62,0x69,0x61,0x73,0x28,0x30, + 0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x5f,0x39,0x32,0x38,0x20,0x3d,0x20,0x5f,0x39,0x32,0x34,0x2e, + 0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x39,0x33,0x31,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f, + 0x38,0x38,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f, + 0x6f,0x6c,0x20,0x5f,0x39,0x34,0x32,0x20,0x3d,0x20,0x28,0x5f,0x39,0x32,0x38,0x20, + 0x3e,0x20,0x30,0x2e,0x30,0x29,0x20,0x26,0x26,0x20,0x28,0x5f,0x39,0x32,0x38,0x20, + 0x3c,0x20,0x5f,0x39,0x33,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x35,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x34,0x32,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x39,0x35,0x30,0x20,0x3d,0x20,0x28,0x5f,0x39,0x32,0x38, + 0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x3e,0x20,0x5f,0x39,0x33,0x31,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x39,0x35, + 0x30,0x20,0x3d,0x20,0x5f,0x39,0x34,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x5f,0x39,0x35,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, + 0x72,0x6e,0x20,0x5f,0x39,0x32,0x34,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x20,0x3d, + 0x20,0x5f,0x38,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x38,0x31,0x38,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6b,0x79,0x44,0x69, + 0x72,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x73,0x6b,0x79,0x44, + 0x69,0x72,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20, + 0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x33,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x37, + 0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6b,0x79,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x33,0x2c,0x20,0x5f,0x32,0x37,0x31,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61, + 0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74, + 0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73, + 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x69,0x6e,0x74,0x20,0x69,0x73, + 0x69,0x67,0x6e,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x66,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x20,0x3c,0x20,0x30,0x2e,0x30, + 0x29,0x20,0x3f,0x20,0x28,0x2d,0x31,0x29,0x20,0x3a,0x20,0x31,0x3b,0x0a,0x7d,0x0a, + 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f, + 0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c, + 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x5f,0x74,0x6f, + 0x5f,0x72,0x64,0x6d,0x5f,0x73,0x69,0x7a,0x65,0x28,0x74,0x68,0x72,0x65,0x61,0x64, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x26,0x20,0x72,0x6f,0x75,0x67, + 0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x70,0x6f,0x77,0x72,0x28,0x32,0x2e,0x30,0x2c,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x28,0x38,0x20,0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, + 0x73,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69, + 0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74, + 0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69, + 0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28, 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x26,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2c,0x20,0x74, - 0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20, - 0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x73,0x61,0x6d,0x70, - 0x6c,0x65,0x72,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72, - 0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x72,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6c,0x6f,0x63, - 0x61,0x6c,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x39,0x37,0x33,0x20,0x3d,0x20,0x72, - 0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63, - 0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72, - 0x69,0x6c,0x65,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x5f,0x39,0x37,0x33,0x2e,0x7a,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x6e,0x74,0x20,0x5f,0x39,0x38,0x34,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f, - 0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61, - 0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x37,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x39,0x38,0x38,0x20,0x3d,0x20, - 0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x5f,0x74,0x6f, - 0x5f,0x72,0x64,0x6d,0x5f,0x73,0x69,0x7a,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x33,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x39,0x37,0x33,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20, - 0x3d,0x20,0x5f,0x39,0x38,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x39,0x38,0x38,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x5f,0x39,0x39,0x36,0x20,0x3d,0x20, - 0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f, - 0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c, - 0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73, - 0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f, - 0x39,0x38,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x20,0x5f,0x31,0x30,0x30,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65, - 0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x31,0x30,0x31,0x30,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x39, - 0x38,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, - 0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e,0x72,0x65,0x61,0x64,0x28,0x75, - 0x69,0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x32,0x28,0x5f,0x39,0x39,0x36,0x2e,0x78, - 0x20,0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x31,0x30,0x30,0x33,0x2e,0x78,0x20,0x2a, - 0x20,0x5f,0x31,0x30,0x31,0x30,0x29,0x2c,0x20,0x5f,0x39,0x39,0x36,0x2e,0x79,0x20, - 0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x31,0x30,0x30,0x33,0x2e,0x79,0x20,0x2a,0x20, - 0x5f,0x31,0x30,0x31,0x30,0x29,0x29,0x29,0x2c,0x20,0x30,0x29,0x2e,0x78,0x79,0x7a, - 0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69, - 0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f, - 0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29, - 0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x6d,0x69,0x78,0x28,0x74,0x68, - 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, - 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x62,0x2c,0x20,0x74,0x68, - 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x26,0x20,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x6d,0x69,0x78,0x28,0x61,0x2c,0x20,0x62,0x2c,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x28,0x70,0x6f,0x77,0x72,0x28,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30, - 0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31, - 0x35,0x36,0x32,0x35,0x29,0x20,0x2f,0x20,0x28,0x70,0x6f,0x77,0x72,0x28,0x74,0x2c, - 0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38, - 0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x70,0x6f, - 0x77,0x72,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30, - 0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30, - 0x31,0x35,0x36,0x32,0x35,0x29,0x29,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, + 0x61,0x74,0x33,0x26,0x20,0x4e,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, + 0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x33,0x26,0x20,0x6c,0x6f,0x63,0x61,0x6c, + 0x5f,0x70,0x6f,0x73,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x66,0x61,0x6c,0x6c,0x62, + 0x61,0x63,0x6b,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66, + 0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70, + 0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x74,0x72,0x69,0x6c,0x65,0x73, + 0x6d,0x70,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c, + 0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20, + 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20, + 0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x39, + 0x38,0x30,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c, + 0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b, + 0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x38,0x30,0x2e,0x7a,0x20,0x3c,0x3d, + 0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x6c,0x62, + 0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20, + 0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x39,0x39,0x31,0x20, + 0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d, + 0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x33,0x20,0x3d,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f, + 0x39,0x39,0x35,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x5f,0x74,0x6f,0x5f,0x72,0x64,0x6d,0x5f,0x73,0x69,0x7a,0x65,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20, + 0x5f,0x39,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x39,0x39,0x31,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20, + 0x5f,0x39,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x5f, + 0x31,0x30,0x30,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f, + 0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61, + 0x73,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d, + 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x39,0x39,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x31,0x30,0x31,0x30,0x20,0x3d, + 0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x30,0x31,0x37,0x20,0x3d,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x28,0x5f,0x39,0x39,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73, + 0x2e,0x72,0x65,0x61,0x64,0x28,0x75,0x69,0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x32, + 0x28,0x5f,0x31,0x30,0x30,0x33,0x2e,0x78,0x20,0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f, + 0x31,0x30,0x31,0x30,0x2e,0x78,0x20,0x2a,0x20,0x5f,0x31,0x30,0x31,0x37,0x29,0x2c, + 0x20,0x5f,0x31,0x30,0x30,0x33,0x2e,0x79,0x20,0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f, + 0x31,0x30,0x31,0x30,0x2e,0x79,0x20,0x2a,0x20,0x5f,0x31,0x30,0x31,0x37,0x29,0x29, + 0x29,0x2c,0x20,0x30,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, 0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74, 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79, 0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66, - 0x66,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4e,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64, - 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x64, - 0x69,0x66,0x66,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, - 0x74,0x20,0x69,0x6e,0x74,0x33,0x26,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f, - 0x73,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f, - 0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20, - 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70, - 0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61, - 0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x73,0x61, - 0x6d,0x70,0x6c,0x65,0x72,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31, - 0x30,0x36,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f, - 0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x64, - 0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e, - 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30, - 0x37,0x32,0x20,0x3d,0x20,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x30, - 0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x31, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x37,0x32, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64, - 0x69,0x66,0x66,0x2e,0x78,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x7a,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x32,0x29,0x20,0x7c,0x7c, - 0x20,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x33,0x29,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x78,0x2c,0x20,0x64,0x69,0x66,0x66, - 0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x28,0x64,0x69,0x66,0x66,0x2e,0x7a,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x79,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x73,0x31,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x73,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x74,0x33,0x20,0x73,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x5f,0x31,0x30,0x37,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33, - 0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c, - 0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20, - 0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c, - 0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e, - 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61, - 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20,0x3d, - 0x20,0x69,0x6e,0x74,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x29,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x30,0x36, - 0x33,0x20,0x3d,0x3d,0x20,0x32,0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f,0x31,0x30,0x36, - 0x33,0x20,0x3d,0x3d,0x20,0x33,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x64, + 0x33,0x20,0x73,0x6d,0x69,0x78,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x61,0x2c,0x20,0x74, + 0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x26,0x20,0x62,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x74,0x29,0x0a,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x69,0x78,0x28,0x61, + 0x2c,0x20,0x62,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x70,0x6f,0x77,0x72, + 0x28,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38, + 0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2f, + 0x20,0x28,0x70,0x6f,0x77,0x72,0x28,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30, + 0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35, + 0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x70,0x6f,0x77,0x72,0x28,0x31,0x2e,0x30,0x20, + 0x2d,0x20,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33, + 0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x29, + 0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e, + 0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65, + 0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e, + 0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c, + 0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x28,0x74,0x68,0x72,0x65,0x61, + 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20, + 0x4e,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x33,0x26, + 0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d, + 0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72, + 0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f, + 0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x72, + 0x64,0x6d,0x73,0x6d,0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d,0x20,0x72, + 0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30,0x37,0x39,0x20,0x3d,0x20,0x28,0x5f, + 0x31,0x30,0x37,0x30,0x20,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f, + 0x31,0x30,0x37,0x30,0x20,0x3d,0x3d,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x37,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x78,0x2c,0x20, + 0x64,0x69,0x66,0x66,0x2e,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x30,0x37,0x30, + 0x20,0x3d,0x3d,0x20,0x32,0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f,0x31,0x30,0x37,0x30, + 0x20,0x3d,0x3d,0x20,0x33,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65, + 0x6c,0x74,0x61,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x69,0x66, + 0x66,0x2e,0x78,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61, + 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x7a, + 0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x6e,0x74,0x33,0x20,0x73,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33, + 0x20,0x73,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x73,0x33, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x37,0x39,0x29, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64, 0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x69,0x73, - 0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x30,0x2c, - 0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d, - 0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28, - 0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36, - 0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37, + 0x73,0x31,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69, + 0x6e,0x74,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, 0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20, - 0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x37,0x29,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x38,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20, - 0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69, - 0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61, - 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x73,0x32,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69, - 0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x29,0x2c,0x20,0x30,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x64, - 0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69, - 0x6e,0x74,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x31,0x29,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20, - 0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x6d,0x6f,0x64,0x28, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73, - 0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, - 0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32, - 0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30, - 0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35, - 0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30, - 0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30, - 0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37, - 0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73, - 0x31,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x33,0x32,0x2e,0x30,0x29, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39, - 0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33, - 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35, - 0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30, - 0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39, - 0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d,0x20,0x4e,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x30,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20, - 0x73,0x32,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x33,0x32,0x2e,0x30, - 0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30, - 0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e, - 0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39, - 0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30, - 0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33, - 0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x4e,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x33,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b, - 0x20,0x73,0x33,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x33,0x32,0x2e, - 0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32, - 0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30, - 0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38, - 0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30, - 0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35, - 0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d, - 0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x2c, - 0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69, - 0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73, - 0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d, - 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66, - 0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x38,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74, - 0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c, - 0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x20, - 0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x38,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d, - 0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b, - 0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x72,0x64, - 0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x39,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72, - 0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f, - 0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20, - 0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d, - 0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x33,0x30,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c, - 0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x20,0x3d,0x20,0x73,0x6d,0x69, - 0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x32,0x20,0x3d,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x20,0x3d,0x20, - 0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f, - 0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69, - 0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d, - 0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x74,0x72,0x69,0x6c, - 0x65,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x26,0x20, - 0x5f,0x32,0x37,0x31,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29, - 0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x74,0x72,0x69, - 0x6c,0x65,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x20,0x5f,0x31, - 0x32,0x37,0x35,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x31,0x29,0x5d, - 0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f, - 0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x20,0x5b, - 0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x74, - 0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20, - 0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x74,0x72,0x69,0x6c,0x65, - 0x74,0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x32,0x29, - 0x5d,0x5d,0x2c,0x20,0x64,0x65,0x70,0x74,0x68,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61, - 0x74,0x3e,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x20,0x5b,0x5b,0x74, - 0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x33,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x73,0x73, - 0x61,0x6f,0x74,0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28, - 0x34,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c, - 0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x20, - 0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x35,0x29,0x5d,0x5d,0x2c,0x20, - 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70, - 0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c, - 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x20, - 0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20, - 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d, - 0x70,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x32,0x29,0x5d,0x5d, - 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67, - 0x43,0x6f,0x6f,0x72,0x64,0x20,0x5b,0x5b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, - 0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f, - 0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x36,0x39,0x20,0x3d,0x20,0x69, - 0x6e,0x2e,0x76,0x70,0x6f,0x73,0x2e,0x79,0x20,0x3c,0x20,0x28,0x5f,0x32,0x37,0x31, - 0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x20,0x2d,0x20,0x30, - 0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32, - 0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x37,0x39,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x36,0x39,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, - 0x32,0x37,0x39,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x69,0x73,0x5f,0x72, - 0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32, - 0x37,0x39,0x20,0x3d,0x20,0x5f,0x31,0x32,0x36,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x37,0x39,0x29, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64, - 0x69,0x73,0x63,0x61,0x72,0x64,0x5f,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x28, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x20,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64, - 0x6a,0x75,0x73,0x74,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x70,0x6f,0x73,0x20,0x2d, - 0x20,0x28,0x69,0x6e,0x2e,0x6f,0x72,0x69,0x67,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c, - 0x20,0x2a,0x20,0x30,0x2e,0x30,0x31,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x35, - 0x32,0x39,0x36,0x35,0x31,0x36,0x34,0x31,0x38,0x34,0x35,0x37,0x30,0x33,0x31,0x32, - 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x63,0x6f,0x75,0x6e, - 0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61, - 0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x6f, - 0x75,0x6e,0x74,0x20,0x3c,0x20,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31, - 0x33,0x33,0x32,0x20,0x3d,0x20,0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x2e,0x72, - 0x65,0x61,0x64,0x28,0x75,0x69,0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x32,0x28,0x69, - 0x6e,0x74,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x70, - 0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x2e, - 0x7a,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37, - 0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36, - 0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39, - 0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37, - 0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x2c,0x20,0x69,0x6e,0x74,0x28, - 0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x70,0x6f,0x73,0x5f, - 0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x2e,0x79,0x2c,0x20, - 0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35, - 0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38, - 0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39, - 0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20, - 0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x66, - 0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x70,0x6f,0x73,0x5f,0x61, - 0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x2e,0x78,0x2c,0x20,0x39, - 0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31, - 0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38, - 0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38, - 0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a, - 0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x31,0x36,0x29,0x29,0x29,0x2c,0x20, - 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x78, - 0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x31, - 0x33,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x31,0x33,0x33,0x32,0x29,0x20,0x3e, - 0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34, - 0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73, - 0x74,0x20,0x2b,0x3d,0x20,0x28,0x69,0x6e,0x2e,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74, - 0x65,0x72,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31, - 0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36, - 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x75, - 0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x35,0x35,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28, - 0x72,0x6f,0x75,0x6e,0x64,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74, - 0x65,0x72,0x69,0x61,0x6c,0x2e,0x77,0x20,0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69, - 0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49, - 0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e, - 0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30, - 0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63, - 0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20,0x30, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x28,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26, - 0x20,0x31,0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34, - 0x30,0x31,0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39, - 0x31,0x34,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x37,0x35,0x20,0x3d, - 0x20,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20, - 0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68, - 0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x35,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x66, - 0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e, - 0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37, - 0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35, - 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39, - 0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20, - 0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39, - 0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x33,0x39,0x32,0x20,0x3d,0x20, - 0x61,0x62,0x73,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78, - 0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x31,0x33,0x39,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x32,0x2e,0x78,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x39,0x36,0x20, - 0x3d,0x20,0x5f,0x31,0x33,0x39,0x32,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x39,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39, - 0x34,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x39,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x30,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x39,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x30,0x35,0x20,0x3d, - 0x20,0x5f,0x31,0x33,0x39,0x34,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x39,0x32,0x2e, - 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x34,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x69, + 0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20,0x30, + 0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x31,0x34,0x30,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x37,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, - 0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x30,0x35, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x4e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x73,0x69,0x67,0x6e,0x28, - 0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30, - 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x31, - 0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x36,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33, - 0x39,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, - 0x20,0x5f,0x31,0x34,0x32,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x34,0x32,0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x36,0x20,0x3e, - 0x3d,0x20,0x5f,0x31,0x33,0x39,0x32,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x32,0x36,0x20,0x3d,0x20, - 0x5f,0x31,0x34,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34, - 0x32,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x69, - 0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e, + 0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d,0x3d,0x20,0x32,0x29, + 0x20,0x7c,0x7c,0x20,0x28,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d,0x3d,0x20,0x33,0x29, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20, + 0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e, + 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73, + 0x32,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67, + 0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74, + 0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d, + 0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28, + 0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x2c,0x20, + 0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x2c,0x20, 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x4e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c, - 0x20,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x69,0x6e,0x2e,0x66,0x6e, - 0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x34,0x33,0x20,0x3d,0x20,0x66,0x61, - 0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e, - 0x2e,0x63,0x61,0x6d,0x20,0x2d,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x34, - 0x37,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c, - 0x69,0x7a,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e, - 0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x35,0x32,0x20, - 0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a, - 0x65,0x28,0x5f,0x31,0x34,0x34,0x33,0x20,0x2b,0x20,0x5f,0x31,0x34,0x34,0x37,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34, - 0x36,0x30,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, - 0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33, - 0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20, - 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e, - 0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6d,0x65,0x74,0x61, - 0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a, - 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x34,0x35,0x32,0x2c,0x20,0x5f, - 0x31,0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20, - 0x3d,0x20,0x5f,0x31,0x34,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x36,0x39,0x20,0x3d,0x20,0x66,0x72,0x65,0x73, - 0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d, - 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d, + 0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28, + 0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x39,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x30,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x6e, + 0x74,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x30,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x64,0x65, + 0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x30,0x2c,0x20, + 0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x29,0x2c, + 0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20, + 0x69,0x6e,0x74,0x33,0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, + 0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20, + 0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30, + 0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38, + 0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31, + 0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c, + 0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34, + 0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x34,0x34, - 0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x34,0x34,0x37,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38, - 0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x30,0x33,0x20,0x3d,0x20, - 0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c, - 0x20,0x5f,0x31,0x34,0x34,0x37,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x35,0x33,0x36,0x20, - 0x3d,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64, - 0x6f,0x77,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x66,0x6c,0x6f,0x6f, - 0x72,0x28,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30, - 0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x36,0x32, - 0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x35,0x34,0x37,0x20,0x3d,0x20,0x28,0x28,0x5f, - 0x31,0x35,0x33,0x36,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x5f,0x31,0x35,0x33,0x36,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e, - 0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x35, - 0x31,0x20,0x3d,0x20,0x5f,0x31,0x35,0x34,0x37,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e, - 0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34, - 0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37, - 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31, - 0x39,0x30,0x36,0x20,0x3d,0x20,0x5f,0x31,0x35,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x39,0x30,0x36,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x35,0x35,0x31, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x6c,0x69,0x67, - 0x68,0x74,0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x34,0x36,0x39, - 0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c, - 0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d, - 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31, - 0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29, - 0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x39,0x20,0x2a,0x20,0x28,0x44,0x69, - 0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65, - 0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20, - 0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c, - 0x20,0x5f,0x31,0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a, - 0x20,0x5f,0x31,0x35,0x30,0x33,0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39, - 0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35, - 0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29, - 0x29,0x29,0x20,0x2a,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x2e,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x5f,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x28,0x73,0x68, - 0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x39,0x30,0x36,0x2e,0x78, - 0x79,0x2c,0x20,0x5f,0x31,0x35,0x35,0x31,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x35, - 0x30,0x33,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x4c,0x69, - 0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31, - 0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x35,0x38,0x38,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72, - 0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a,0x20,0x30,0x2e,0x34,0x39,0x30,0x30,0x30,0x30, - 0x30,0x30,0x39,0x35,0x33,0x36,0x37,0x34,0x33,0x31,0x36,0x34,0x30,0x36,0x32,0x35, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x5f,0x31,0x35,0x39, - 0x34,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f, - 0x6f,0x72,0x28,0x69,0x6e,0x2e,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65, - 0x72,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x33,0x32,0x2e,0x30,0x29, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x34,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d, - 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x36,0x32,0x30,0x20, - 0x3d,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x28,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78, - 0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x73, - 0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61, - 0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x68,0x29, - 0x29,0x2c,0x20,0x62,0x69,0x61,0x73,0x28,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x32,0x31,0x20,0x3d, - 0x20,0x5f,0x31,0x36,0x32,0x30,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, - 0x6f,0x6c,0x20,0x5f,0x31,0x36,0x33,0x31,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35, - 0x2e,0x72,0x64,0x6d,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x3d,0x20, - 0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36,0x33, - 0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36,0x33,0x31, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x31,0x36,0x33,0x37,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f, - 0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x72,0x64, - 0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73, - 0x6d,0x70,0x29,0x2e,0x7a,0x20,0x3e,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x33,0x37,0x20, - 0x3d,0x20,0x5f,0x31,0x36,0x33,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36,0x33,0x37,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x66,0x61,0x73, - 0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31, - 0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x31,0x36,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33, + 0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6c,0x6f,0x63,0x61, + 0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x31,0x29,0x2c,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38, + 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30, + 0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37, + 0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31, + 0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35, + 0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30, + 0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, - 0x5f,0x31,0x36,0x35,0x30,0x20,0x3d,0x20,0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53, - 0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31, - 0x36,0x35,0x37,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x20,0x2d,0x20, - 0x5f,0x31,0x35,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d, - 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x2d,0x69, - 0x6e,0x2e,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20, - 0x5f,0x31,0x35,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d, - 0x20,0x5f,0x31,0x36,0x35,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x72, - 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x39,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x36,0x37,0x32, - 0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2c,0x20, - 0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c, - 0x65,0x73,0x6d,0x70,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c, - 0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35, - 0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x39,0x34,0x20,0x3d, - 0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e, - 0x2c,0x20,0x5f,0x31,0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f, - 0x31,0x36,0x39,0x37,0x20,0x3d,0x20,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x2e, - 0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x31,0x36,0x39,0x34,0x2c,0x20,0x72,0x6f,0x75, - 0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x37,0x30,0x37,0x20,0x3d,0x20, - 0x73,0x69,0x6e,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20, - 0x33,0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31,0x31, - 0x31,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28, - 0x6d,0x69,0x78,0x28,0x5f,0x31,0x36,0x37,0x32,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x36,0x37,0x32,0x2c,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35,0x39,0x39,0x39,0x39,0x32,0x37, - 0x35,0x32,0x30,0x37,0x35,0x31,0x39,0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e, - 0x37,0x31,0x35,0x32,0x30,0x30,0x30,0x30,0x36,0x39,0x36,0x31,0x38,0x32,0x32,0x35, - 0x30,0x39,0x37,0x36,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x32, - 0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32, - 0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, - 0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x28,0x28,0x5f, - 0x31,0x36,0x35,0x30,0x20,0x2a,0x20,0x5f,0x31,0x36,0x39,0x37,0x2e,0x78,0x29,0x20, - 0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x36,0x39,0x37,0x2e,0x79, - 0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f, - 0x73,0x70,0x65,0x63,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28,0x31, - 0x2e,0x30,0x20,0x2d,0x20,0x28,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38, - 0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35, - 0x20,0x2a,0x20,0x5f,0x31,0x37,0x30,0x37,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31, - 0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x30,0x2e,0x38,0x39,0x39,0x39,0x39,0x39, - 0x39,0x37,0x36,0x31,0x35,0x38,0x31,0x34,0x32,0x30,0x38,0x39,0x38,0x34,0x33,0x37, - 0x35,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x20,0x2a, - 0x20,0x5f,0x31,0x37,0x30,0x37,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x72,0x28,0x31, - 0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x36,0x39,0x34,0x2c,0x20,0x32,0x2e,0x30,0x29, - 0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x66,0x61,0x73, - 0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x33,0x2e,0x33, - 0x33,0x33,0x33,0x33,0x33,0x32,0x35,0x33,0x38,0x36,0x30,0x34,0x37,0x33,0x36,0x33, - 0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x4e,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x35,0x37, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x34,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b, - 0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, - 0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x36,0x35,0x30,0x29,0x20,0x2a,0x20, - 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29, - 0x29,0x20,0x2a,0x20,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f, - 0x64,0x69,0x66,0x66,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x32,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74, + 0x5f,0x31,0x39,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x69,0x6e,0x74, + 0x33,0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6c,0x6f,0x63, + 0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x32,0x29,0x2c,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x31,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x30,0x30, + 0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30, + 0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30, + 0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32, + 0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36, + 0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x69,0x6e, + 0x74,0x33,0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6c,0x6f, + 0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x33,0x29,0x2c,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x34,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x30, + 0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35, + 0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30, + 0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31, + 0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39, + 0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72, + 0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f, + 0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20, + 0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d, + 0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c,0x20,0x72,0x64,0x6d,0x5f, + 0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70, + 0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d, + 0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64, + 0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x20,0x3d,0x20,0x73, + 0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d, + 0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c, + 0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69, + 0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73, + 0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x20,0x3d, + 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66, + 0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x34,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74, 0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c, - 0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x20,0x2a,0x20,0x5f,0x31, - 0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x29,0x29,0x20,0x2a, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31, - 0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35, - 0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65, - 0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32, - 0x31,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x64, - 0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64, - 0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65,0x20,0x3c,0x20,0x30, - 0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37, - 0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38, - 0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20, - 0x2b,0x3d,0x20,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x32, - 0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e, - 0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x74, - 0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78, - 0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32,0x31,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x20, + 0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x33,0x31,0x20,0x3d,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x20,0x3d,0x20, + 0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x33,0x33,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c, + 0x74,0x61,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, + 0x6e,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x33,0x33,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e, + 0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e, + 0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b, + 0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73, + 0x74,0x61,0x6e,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72,0x6c,0x64, + 0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x26,0x20,0x5f,0x32,0x37,0x31,0x20,0x5b,0x5b, + 0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x61,0x6e,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x66,0x73,0x5f,0x70, + 0x61,0x72,0x61,0x6d,0x73,0x26,0x20,0x5f,0x31,0x32,0x38,0x32,0x20,0x5b,0x5b,0x62, + 0x75,0x66,0x66,0x65,0x72,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d, + 0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72, + 0x65,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32, + 0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c, + 0x61,0x73,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x31,0x29,0x5d, + 0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f, + 0x61,0x74,0x3e,0x20,0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x20,0x5b,0x5b,0x74, + 0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x32,0x29,0x5d,0x5d,0x2c,0x20,0x64,0x65,0x70, + 0x74,0x68,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x73,0x68,0x61,0x64, + 0x6f,0x77,0x74,0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28, + 0x33,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c, + 0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x20,0x5b, + 0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x34,0x29,0x5d,0x5d,0x2c,0x20,0x74, + 0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20, + 0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x28,0x35,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72, + 0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x72,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c, + 0x65,0x72,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72, + 0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x72,0x28,0x32,0x29,0x5d,0x5d,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x20,0x5b, + 0x5b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74, + 0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x31,0x32,0x37,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x2e, + 0x79,0x20,0x3c,0x20,0x28,0x5f,0x32,0x37,0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48, + 0x65,0x69,0x67,0x68,0x74,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39, + 0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32, + 0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, + 0x6f,0x6c,0x20,0x5f,0x31,0x32,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x31,0x32,0x37,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x38,0x36,0x20,0x3d,0x20,0x5f, + 0x31,0x32,0x38,0x32,0x2e,0x69,0x73,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x69, + 0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x38,0x36,0x20,0x3d,0x20,0x5f,0x31, + 0x32,0x37,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x5f,0x31,0x32,0x38,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x5f, + 0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x6f,0x73, + 0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x20,0x3d,0x20, + 0x69,0x6e,0x2e,0x69,0x70,0x6f,0x73,0x20,0x2d,0x20,0x28,0x69,0x6e,0x2e,0x6f,0x72, + 0x69,0x67,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x2a,0x20,0x30,0x2e,0x30,0x31, + 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x35,0x32,0x39,0x36,0x35,0x31,0x36,0x34, + 0x31,0x38,0x34,0x35,0x37,0x30,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x6e,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x74,0x72,0x69,0x78,0x65, + 0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3c,0x20,0x35, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x33,0x33,0x39,0x20,0x3d,0x20,0x74, + 0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x2e,0x72,0x65,0x61,0x64,0x28,0x75,0x69,0x6e, + 0x74,0x32,0x28,0x69,0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x28,0x66,0x61,0x73,0x74, + 0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65, + 0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x2e,0x7a,0x2c,0x20,0x39,0x2e,0x39,0x39, + 0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35, + 0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30, + 0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31, + 0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36, + 0x2e,0x30,0x29,0x2c,0x20,0x69,0x6e,0x74,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63, + 0x6c,0x61,0x6d,0x70,0x28,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61, + 0x64,0x6a,0x75,0x73,0x74,0x2e,0x79,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39, + 0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31, + 0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20, + 0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37, + 0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29, + 0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c, + 0x61,0x6d,0x70,0x28,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64, + 0x6a,0x75,0x73,0x74,0x2e,0x78,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39, + 0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34, + 0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30, + 0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37, + 0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20, + 0x2a,0x20,0x31,0x36,0x29,0x29,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65, + 0x72,0x69,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x31,0x33,0x33,0x39,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x65,0x6e,0x67,0x74,0x68, + 0x28,0x5f,0x31,0x33,0x33,0x39,0x29,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x39,0x39, + 0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39, + 0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x5f,0x61,0x66, + 0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x20,0x2b,0x3d,0x20,0x28,0x69, + 0x6e,0x2e,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x2a,0x20,0x30,0x2e, + 0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31, + 0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33, + 0x36,0x32,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x6e,0x64,0x28,0x74, + 0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x77, + 0x20,0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20, + 0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68, + 0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38, + 0x32,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x33,0x36,0x32,0x20, + 0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e, + 0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x36, + 0x32,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x31,0x32,0x37,0x29,0x20,0x2a, + 0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34,0x30,0x31,0x35,0x37,0x31,0x38,0x36, + 0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x74,0x20,0x5f,0x31,0x33,0x38,0x32,0x20,0x3d,0x20,0x28,0x5f,0x31,0x33,0x36,0x32, + 0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74, + 0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x66,0x61, + 0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31, + 0x33,0x38,0x32,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35,0x37,0x31, + 0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33,0x32,0x38, + 0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38, + 0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65, + 0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28, + 0x5f,0x31,0x33,0x36,0x32,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29, + 0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36, + 0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x20,0x5f,0x31,0x33,0x39,0x39,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x69,0x6e,0x2e, + 0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x34,0x30,0x31,0x20,0x3d,0x20, + 0x5f,0x31,0x33,0x39,0x39,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x31,0x34,0x30,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x39, + 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34, + 0x30,0x34,0x20,0x3d,0x20,0x5f,0x31,0x34,0x30,0x31,0x20,0x3e,0x3d,0x20,0x5f,0x31, + 0x34,0x30,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31, + 0x34,0x31,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34, + 0x30,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x31,0x34,0x31,0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x30,0x31,0x20, + 0x3e,0x3d,0x20,0x5f,0x31,0x33,0x39,0x39,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x31,0x32,0x20,0x3d, + 0x20,0x5f,0x31,0x34,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x31,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x28,0x73,0x69,0x67,0x6e,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x32,0x35,0x20,0x3d,0x20,0x5f,0x31,0x34, + 0x30,0x33,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x34,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x33,0x33,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34, + 0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x33,0x33,0x20, + 0x3d,0x20,0x5f,0x31,0x34,0x30,0x33,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x39,0x39, + 0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x31,0x34,0x33,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x32,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x33,0x33,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e, + 0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d, + 0x61,0x6c,0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65, + 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x73, + 0x69,0x67,0x6e,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x7a, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f, + 0x31,0x34,0x35,0x30,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x63,0x61,0x6d,0x20,0x2d,0x20, + 0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x35,0x34,0x20,0x3d,0x20,0x66,0x61,0x73, + 0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69, + 0x74,0x69,0x6f,0x6e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x20,0x5f,0x31,0x34,0x35,0x39,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a, + 0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31,0x34,0x35,0x30, + 0x20,0x2b,0x20,0x5f,0x31,0x34,0x35,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x36,0x37,0x20,0x3d,0x20,0x6d,0x69, + 0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39, + 0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39, + 0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f, + 0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74, + 0x28,0x5f,0x31,0x34,0x35,0x39,0x2c,0x20,0x5f,0x31,0x34,0x35,0x30,0x29,0x2c,0x20, + 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x31,0x34,0x36,0x37, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34, + 0x37,0x36,0x20,0x3d,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c, + 0x69,0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20, + 0x3d,0x20,0x5f,0x31,0x34,0x35,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75, + 0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d, + 0x20,0x5f,0x31,0x34,0x35,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67, + 0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x31,0x35,0x31,0x30,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d, + 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x35,0x34,0x29, + 0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x34,0x20,0x5f,0x31,0x35,0x34,0x33,0x20,0x3d,0x20,0x5f,0x31,0x32,0x38,0x32, + 0x2e,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x34,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x69,0x6e,0x2e,0x76,0x70, + 0x6f,0x73,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31, + 0x35,0x35,0x34,0x20,0x3d,0x20,0x28,0x28,0x5f,0x31,0x35,0x34,0x33,0x2e,0x78,0x79, + 0x7a,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x35,0x34,0x33, + 0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x35,0x38,0x20,0x3d,0x20,0x5f,0x31,0x35, + 0x35,0x34,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30, + 0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38, + 0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x32,0x34,0x20,0x3d,0x20,0x5f, + 0x31,0x35,0x35,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x34,0x2e, + 0x7a,0x20,0x3d,0x20,0x5f,0x31,0x35,0x35,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30, + 0x29,0x20,0x2d,0x20,0x5f,0x31,0x34,0x37,0x36,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e, + 0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a, + 0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c, + 0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30, + 0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39, + 0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31, + 0x34,0x37,0x36,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74, + 0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, + 0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74, + 0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d, + 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x35,0x30,0x29, + 0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x35,0x31,0x30,0x29, + 0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37, + 0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36, + 0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x73,0x68, + 0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x63, + 0x6f,0x6d,0x70,0x61,0x72,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70, + 0x2c,0x20,0x5f,0x31,0x39,0x32,0x34,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x31,0x35,0x35, + 0x38,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x35,0x31,0x30,0x29,0x20,0x2a,0x20,0x5f, + 0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f, + 0x72,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74, + 0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x20,0x5f,0x31,0x35,0x39,0x35,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x74,0x72, + 0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a, + 0x20,0x30,0x2e,0x34,0x39,0x30,0x30,0x30,0x30,0x30,0x30,0x39,0x35,0x33,0x36,0x37, + 0x34,0x33,0x31,0x36,0x34,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x6e,0x74,0x33,0x20,0x5f,0x31,0x36,0x30,0x31,0x20,0x3d,0x20,0x69,0x6e,0x74, + 0x33,0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x69,0x6e,0x2e,0x74, + 0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x29,0x2c,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20, + 0x5f,0x31,0x36,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x49,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x34,0x20,0x5f,0x31,0x36,0x32,0x37,0x20,0x3d,0x20,0x73,0x73,0x61,0x6f,0x74, + 0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x74,0x72,0x69,0x6c,0x65,0x73, + 0x6d,0x70,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x67,0x6c,0x5f,0x46,0x72, + 0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x28,0x5f,0x31,0x32,0x38,0x32,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77, + 0x29,0x2c,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e, + 0x79,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x38,0x32,0x2e, + 0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x68,0x29,0x29,0x2c,0x20,0x62,0x69,0x61,0x73, + 0x28,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x31,0x36,0x32,0x38,0x20,0x3d,0x20,0x5f,0x31,0x36,0x32,0x37,0x2e, + 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36,0x33, + 0x38,0x20,0x3d,0x20,0x5f,0x31,0x32,0x38,0x32,0x2e,0x72,0x64,0x6d,0x5f,0x65,0x6e, + 0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x31,0x36,0x33,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x34,0x34,0x20,0x3d, + 0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72, + 0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75, + 0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x29,0x2e,0x7a,0x20,0x3e, + 0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x31,0x36,0x34,0x34,0x20,0x3d,0x20,0x5f,0x31,0x36,0x33,0x38, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x5f,0x31,0x36,0x34,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x31,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28, + 0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x35,0x30,0x29,0x2c,0x20,0x30, + 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f, + 0x31,0x34,0x36,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x36,0x35,0x37,0x20,0x3d, + 0x20,0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x36,0x36,0x34,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x5f,0x31,0x35,0x39,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x2d,0x69,0x6e,0x2e,0x63,0x76,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36,0x36,0x34,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, + 0x73,0x49,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d,0x20,0x5f,0x31, + 0x36,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x20,0x5f,0x31,0x36,0x37,0x39,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x5f,0x72,0x64,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x39,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f, + 0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x72, + 0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70, + 0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x32,0x38,0x32, + 0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x37,0x30,0x31,0x20, + 0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28, + 0x4e,0x2c,0x20,0x5f,0x31,0x34,0x35,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, + 0x5f,0x31,0x37,0x30,0x34,0x20,0x3d,0x20,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74, + 0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x31,0x37,0x30,0x31,0x2c,0x20,0x72,0x6f, + 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x37,0x31,0x34,0x20,0x3d, + 0x20,0x73,0x69,0x6e,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a, + 0x20,0x33,0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31, + 0x31,0x31,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28, + 0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x36,0x37,0x39,0x2c,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x36,0x37,0x39,0x2c,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35,0x39,0x39,0x39,0x39,0x32, + 0x37,0x35,0x32,0x30,0x37,0x35,0x31,0x39,0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30, + 0x2e,0x37,0x31,0x35,0x32,0x30,0x30,0x30,0x30,0x36,0x39,0x36,0x31,0x38,0x32,0x32, + 0x35,0x30,0x39,0x37,0x36,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32, + 0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39, + 0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x28,0x28, + 0x5f,0x31,0x36,0x35,0x37,0x20,0x2a,0x20,0x5f,0x31,0x37,0x30,0x34,0x2e,0x78,0x29, + 0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x37,0x30,0x34,0x2e, + 0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x38,0x32,0x2e,0x72,0x64,0x6d, + 0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28, + 0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39, + 0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37, + 0x35,0x20,0x2a,0x20,0x5f,0x31,0x37,0x31,0x34,0x29,0x29,0x29,0x20,0x2a,0x20,0x28, + 0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x30,0x2e,0x38,0x39,0x39,0x39,0x39, + 0x39,0x39,0x37,0x36,0x31,0x35,0x38,0x31,0x34,0x32,0x30,0x38,0x39,0x38,0x34,0x33, + 0x37,0x35,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x20, + 0x2a,0x20,0x5f,0x31,0x37,0x31,0x34,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x72,0x28, + 0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x37,0x30,0x31,0x2c,0x20,0x32,0x2e,0x30, + 0x29,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x66,0x61, + 0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x72,0x6f,0x75,0x67,0x68, + 0x6e,0x65,0x73,0x73,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x33,0x2e, + 0x33,0x33,0x33,0x33,0x33,0x33,0x32,0x35,0x33,0x38,0x36,0x30,0x34,0x37,0x33,0x36, + 0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, + 0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x4e, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x36, + 0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x5f,0x31,0x36,0x30,0x31, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x20,0x5f,0x31,0x37,0x37,0x30,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f, + 0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75, + 0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x72,0x64,0x6d, + 0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x20, + 0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x32,0x38,0x32,0x2e,0x72, + 0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20, + 0x5f,0x31,0x36,0x35,0x37,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20, + 0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x6d,0x69,0x78, + 0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x37,0x37, + 0x30,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35, + 0x39,0x39,0x39,0x39,0x32,0x37,0x35,0x32,0x30,0x37,0x35,0x31,0x39,0x35,0x33,0x31, + 0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x32,0x30,0x30,0x30,0x30,0x36,0x39, + 0x36,0x31,0x38,0x32,0x32,0x35,0x30,0x39,0x37,0x36,0x35,0x36,0x32,0x35,0x2c,0x20, + 0x30,0x2e,0x30,0x37,0x32,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30, + 0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x2c,0x20,0x5f, + 0x31,0x37,0x37,0x30,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x32, + 0x38,0x32,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x61,0x74,0x75, + 0x72,0x61,0x74,0x69,0x6f,0x6e,0x29,0x29,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36, + 0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2a,0x20, + 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e, + 0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32,0x38,0x29,0x20,0x2a,0x20, + 0x5f,0x31,0x32,0x38,0x32,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73, + 0x63,0x61,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x5f,0x31,0x32,0x38,0x32,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66, + 0x66,0x5f,0x73,0x63,0x61,0x6c,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x30, + 0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30, + 0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28, - 0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d, + 0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x32,0x38,0x32,0x2e,0x61,0x6d, 0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f, - 0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74, + 0x31,0x32,0x38,0x32,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74, 0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c, 0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a, - 0x20,0x5f,0x31,0x36,0x32,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x38,0x31,0x38,0x20,0x3d,0x20, - 0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x2d,0x5f,0x31,0x34,0x34,0x33,0x2c,0x20, - 0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x20,0x52,0x20,0x3d,0x20,0x5f,0x31,0x38,0x31,0x38,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x38,0x31,0x38,0x2e, - 0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52, - 0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30, - 0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32, - 0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b, - 0x3d,0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x39,0x20,0x2a,0x20,0x73,0x6b,0x79,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x34,0x2c,0x20,0x5f,0x32,0x37,0x31,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31, - 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31, - 0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f, - 0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x6d, - 0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e,0x64, - 0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74, - 0x20,0x2b,0x20,0x28,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65, - 0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x65,0x6d,0x69,0x74,0x74, - 0x61,0x6e,0x63,0x65,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x65,0x6d, - 0x69,0x73,0x73,0x69,0x76,0x65,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x2c,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70, - 0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65, - 0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x2e, - 0x79,0x29,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65, - 0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x5f,0x31,0x38,0x36,0x31,0x20,0x3d,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67, - 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x38,0x36,0x35,0x20,0x3d,0x20,0x6d, - 0x69,0x78,0x28,0x5f,0x31,0x38,0x36,0x31,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31, - 0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c, - 0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30, - 0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x31,0x2e,0x30, - 0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61, - 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36, - 0x35,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74, - 0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20, - 0x5f,0x31,0x38,0x36,0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e, - 0x7a,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36,0x35,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31, - 0x32,0x37,0x35,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d, - 0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x5f,0x31,0x38,0x37,0x39,0x20,0x3d,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72, - 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x38, - 0x38,0x33,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x38,0x37,0x39,0x2e,0x78, - 0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20, + 0x20,0x5f,0x31,0x36,0x32,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x28,0x5f,0x31,0x32,0x38,0x32,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74, + 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x38,0x32,0x2e, + 0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74, + 0x79,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65, + 0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32, + 0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x20,0x5f,0x31,0x38,0x33,0x36,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65, + 0x63,0x74,0x28,0x2d,0x5f,0x31,0x34,0x35,0x30,0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x52,0x20, + 0x3d,0x20,0x5f,0x31,0x38,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x38,0x33,0x36,0x2e,0x79,0x20,0x3c,0x20,0x30, + 0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52,0x20,0x3d,0x20,0x72,0x65, + 0x66,0x6c,0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, + 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x33,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20, + 0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75, + 0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x5f, + 0x31,0x34,0x37,0x36,0x20,0x2a,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x5f, + 0x32,0x37,0x31,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37, + 0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, + 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x6d,0x69,0x78,0x28,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f, + 0x6c,0x6f,0x72,0x29,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x28,0x28, + 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e, + 0x78,0x79,0x7a,0x20,0x2a,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x29, + 0x20,0x2a,0x20,0x5f,0x31,0x32,0x38,0x32,0x2e,0x65,0x6d,0x69,0x73,0x73,0x69,0x76, + 0x65,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c, + 0x20,0x5f,0x32,0x37,0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68, + 0x74,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x2e,0x79,0x29,0x29,0x29,0x2c, + 0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x31,0x32,0x38,0x32,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20, + 0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x38,0x37,0x39, + 0x20,0x3d,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x20,0x5f,0x31,0x38,0x38,0x33,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31, + 0x38,0x37,0x39,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, 0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32, - 0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x32,0x30, - 0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38, - 0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x38,0x33,0x2e,0x78,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74, - 0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20, - 0x5f,0x31,0x38,0x38,0x33,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x38,0x38,0x33,0x2e,0x7a,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x00, + 0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x36,0x39, + 0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34, + 0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, + 0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x38,0x33,0x2e,0x78,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67, + 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x31,0x38,0x38,0x33, + 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e, + 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f, + 0x31,0x38,0x38,0x33,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x38,0x32,0x2e,0x69, + 0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x38, + 0x39,0x37,0x20,0x3d,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, + 0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x30,0x31,0x20,0x3d,0x20, + 0x6d,0x69,0x78,0x28,0x5f,0x31,0x38,0x39,0x37,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30, + 0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30, + 0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33, + 0x31,0x32,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78, + 0x20,0x3d,0x20,0x5f,0x31,0x39,0x30,0x31,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67, + 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x31,0x39,0x30,0x31, + 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a, + 0x20,0x3d,0x20,0x5f,0x31,0x39,0x30,0x31,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + ]; trile_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc: sg_shader_desc; @@ -7016,40 +7063,43 @@ trile_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.uniform_blocks[3].size = 128; desc.uniform_blocks[3].glsl_uniforms[0].type = .MAT4; desc.uniform_blocks[3].glsl_uniforms[0].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[0].glsl_name = "_1275.mvp_shadow"; + desc.uniform_blocks[3].glsl_uniforms[0].glsl_name = "_1282.mvp_shadow"; desc.uniform_blocks[3].glsl_uniforms[1].type = .INT; desc.uniform_blocks[3].glsl_uniforms[1].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[1].glsl_name = "_1275.is_reflection"; + desc.uniform_blocks[3].glsl_uniforms[1].glsl_name = "_1282.is_reflection"; desc.uniform_blocks[3].glsl_uniforms[2].type = .INT; desc.uniform_blocks[3].glsl_uniforms[2].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[2].glsl_name = "_1275.screen_h"; + desc.uniform_blocks[3].glsl_uniforms[2].glsl_name = "_1282.screen_h"; desc.uniform_blocks[3].glsl_uniforms[3].type = .INT; desc.uniform_blocks[3].glsl_uniforms[3].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[3].glsl_name = "_1275.screen_w"; + desc.uniform_blocks[3].glsl_uniforms[3].glsl_name = "_1282.screen_w"; desc.uniform_blocks[3].glsl_uniforms[4].type = .INT; desc.uniform_blocks[3].glsl_uniforms[4].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[4].glsl_name = "_1275.rdm_enabled"; + desc.uniform_blocks[3].glsl_uniforms[4].glsl_name = "_1282.rdm_enabled"; desc.uniform_blocks[3].glsl_uniforms[5].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[5].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[5].glsl_name = "_1275.ambient_intensity"; + desc.uniform_blocks[3].glsl_uniforms[5].glsl_name = "_1282.ambient_intensity"; desc.uniform_blocks[3].glsl_uniforms[6].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[6].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[6].glsl_name = "_1275.emissive_scale"; + desc.uniform_blocks[3].glsl_uniforms[6].glsl_name = "_1282.emissive_scale"; desc.uniform_blocks[3].glsl_uniforms[7].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[7].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[7].glsl_name = "_1275.rdm_diff_scale"; + desc.uniform_blocks[3].glsl_uniforms[7].glsl_name = "_1282.rdm_diff_scale"; desc.uniform_blocks[3].glsl_uniforms[8].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[8].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[8].glsl_name = "_1275.rdm_spec_scale"; + desc.uniform_blocks[3].glsl_uniforms[8].glsl_name = "_1282.rdm_spec_scale"; desc.uniform_blocks[3].glsl_uniforms[9].type = .FLOAT3; desc.uniform_blocks[3].glsl_uniforms[9].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[9].glsl_name = "_1275.ambient_color"; + desc.uniform_blocks[3].glsl_uniforms[9].glsl_name = "_1282.ambient_color"; desc.uniform_blocks[3].glsl_uniforms[10].type = .INT; desc.uniform_blocks[3].glsl_uniforms[10].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[10].glsl_name = "_1275.is_preview"; + desc.uniform_blocks[3].glsl_uniforms[10].glsl_name = "_1282.is_preview"; desc.uniform_blocks[3].glsl_uniforms[11].type = .FLOAT3; desc.uniform_blocks[3].glsl_uniforms[11].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[11].glsl_name = "_1275.rdm_tint"; + desc.uniform_blocks[3].glsl_uniforms[11].glsl_name = "_1282.rdm_tint"; + desc.uniform_blocks[3].glsl_uniforms[12].type = .FLOAT; + desc.uniform_blocks[3].glsl_uniforms[12].array_count = 0; + desc.uniform_blocks[3].glsl_uniforms[12].glsl_name = "_1282.rdm_diff_saturation"; desc.images[0].stage = .FRAGMENT; desc.images[0].multisampled = false; desc.images[0].image_type = ._2D; @@ -7176,40 +7226,43 @@ trile_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.uniform_blocks[3].size = 128; desc.uniform_blocks[3].glsl_uniforms[0].type = .MAT4; desc.uniform_blocks[3].glsl_uniforms[0].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[0].glsl_name = "_1275.mvp_shadow"; + desc.uniform_blocks[3].glsl_uniforms[0].glsl_name = "_1282.mvp_shadow"; desc.uniform_blocks[3].glsl_uniforms[1].type = .INT; desc.uniform_blocks[3].glsl_uniforms[1].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[1].glsl_name = "_1275.is_reflection"; + desc.uniform_blocks[3].glsl_uniforms[1].glsl_name = "_1282.is_reflection"; desc.uniform_blocks[3].glsl_uniforms[2].type = .INT; desc.uniform_blocks[3].glsl_uniforms[2].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[2].glsl_name = "_1275.screen_h"; + desc.uniform_blocks[3].glsl_uniforms[2].glsl_name = "_1282.screen_h"; desc.uniform_blocks[3].glsl_uniforms[3].type = .INT; desc.uniform_blocks[3].glsl_uniforms[3].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[3].glsl_name = "_1275.screen_w"; + desc.uniform_blocks[3].glsl_uniforms[3].glsl_name = "_1282.screen_w"; desc.uniform_blocks[3].glsl_uniforms[4].type = .INT; desc.uniform_blocks[3].glsl_uniforms[4].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[4].glsl_name = "_1275.rdm_enabled"; + desc.uniform_blocks[3].glsl_uniforms[4].glsl_name = "_1282.rdm_enabled"; desc.uniform_blocks[3].glsl_uniforms[5].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[5].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[5].glsl_name = "_1275.ambient_intensity"; + desc.uniform_blocks[3].glsl_uniforms[5].glsl_name = "_1282.ambient_intensity"; desc.uniform_blocks[3].glsl_uniforms[6].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[6].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[6].glsl_name = "_1275.emissive_scale"; + desc.uniform_blocks[3].glsl_uniforms[6].glsl_name = "_1282.emissive_scale"; desc.uniform_blocks[3].glsl_uniforms[7].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[7].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[7].glsl_name = "_1275.rdm_diff_scale"; + desc.uniform_blocks[3].glsl_uniforms[7].glsl_name = "_1282.rdm_diff_scale"; desc.uniform_blocks[3].glsl_uniforms[8].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[8].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[8].glsl_name = "_1275.rdm_spec_scale"; + desc.uniform_blocks[3].glsl_uniforms[8].glsl_name = "_1282.rdm_spec_scale"; desc.uniform_blocks[3].glsl_uniforms[9].type = .FLOAT3; desc.uniform_blocks[3].glsl_uniforms[9].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[9].glsl_name = "_1275.ambient_color"; + desc.uniform_blocks[3].glsl_uniforms[9].glsl_name = "_1282.ambient_color"; desc.uniform_blocks[3].glsl_uniforms[10].type = .INT; desc.uniform_blocks[3].glsl_uniforms[10].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[10].glsl_name = "_1275.is_preview"; + desc.uniform_blocks[3].glsl_uniforms[10].glsl_name = "_1282.is_preview"; desc.uniform_blocks[3].glsl_uniforms[11].type = .FLOAT3; desc.uniform_blocks[3].glsl_uniforms[11].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[11].glsl_name = "_1275.rdm_tint"; + desc.uniform_blocks[3].glsl_uniforms[11].glsl_name = "_1282.rdm_tint"; + desc.uniform_blocks[3].glsl_uniforms[12].type = .FLOAT; + desc.uniform_blocks[3].glsl_uniforms[12].array_count = 0; + desc.uniform_blocks[3].glsl_uniforms[12].glsl_name = "_1282.rdm_diff_saturation"; desc.images[0].stage = .FRAGMENT; desc.images[0].multisampled = false; desc.images[0].image_type = ._2D; diff --git a/src/shaders/jai/shader_trixel.jai b/src/shaders/jai/shader_trixel.jai index 5061273..9b8cc25 100644 --- a/src/shaders/jai/shader_trixel.jai +++ b/src/shaders/jai/shader_trixel.jai @@ -39,6 +39,9 @@ Vs_Params :: struct { mvp: [16]float; camera: [3]float; _: [4]u8; + world_offset: [3]float; + _: [4]u8; + tile_rotation: [16]float; }; Trixel_World_Config :: struct { skyBase: [3]float; @@ -66,12 +69,13 @@ Trixel_World_Config :: struct { }; Trixel_Fs_Params :: struct { view_mode: s32; - _: [12]u8; + brightness: float; + _: [8]u8; }; /* #version 430 - uniform vec4 vs_params[5]; + uniform vec4 vs_params[10]; layout(location = 2) in vec4 inst; layout(location = 0) in vec4 position; layout(location = 1) out vec4 fnormal; @@ -84,8 +88,9 @@ Trixel_Fs_Params :: struct { void main() { - gl_Position = mat4(vs_params[0], vs_params[1], vs_params[2], vs_params[3]) * vec4(position.xyz + inst.xyz, 1.0); - fnormal = normal; + mat4 _30 = mat4(vs_params[6], vs_params[7], vs_params[8], vs_params[9]); + gl_Position = mat4(vs_params[0], vs_params[1], vs_params[2], vs_params[3]) * vec4(((_30 * vec4((position.xyz + inst.xyz) - vec3(0.5), 0.0)).xyz + vec3(0.5)) + vs_params[5].xyz, 1.0); + fnormal = _30 * vec4(normal.xyz, 0.0); color = inst_col; pos = gl_Position; cam = vs_params[4].xyz; @@ -96,45 +101,55 @@ Trixel_Fs_Params :: struct { vs_trixel_source_glsl430 := u8.[ 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x33,0x30,0x0a,0x0a,0x75,0x6e, 0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x76,0x73,0x5f,0x70,0x61, - 0x72,0x61,0x6d,0x73,0x5b,0x35,0x5d,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28, - 0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29,0x20,0x69,0x6e, - 0x20,0x76,0x65,0x63,0x34,0x20,0x69,0x6e,0x73,0x74,0x3b,0x0a,0x6c,0x61,0x79,0x6f, - 0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29, - 0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f, - 0x6e,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69, - 0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34, - 0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74, - 0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69, - 0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c, + 0x72,0x61,0x6d,0x73,0x5b,0x31,0x30,0x5d,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74, + 0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29,0x20,0x69, + 0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x69,0x6e,0x73,0x74,0x3b,0x0a,0x6c,0x61,0x79, + 0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30, + 0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x6f,0x73,0x69,0x74,0x69, + 0x6f,0x6e,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74, + 0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63, + 0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75, + 0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20, + 0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a, + 0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20, + 0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x6f, + 0x6c,0x6f,0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61, + 0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x33,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63, + 0x34,0x20,0x69,0x6e,0x73,0x74,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f, + 0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29, + 0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x6c, 0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d, - 0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x6f,0x6c, - 0x6f,0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74, - 0x69,0x6f,0x6e,0x20,0x3d,0x20,0x33,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34, - 0x20,0x69,0x6e,0x73,0x74,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75, - 0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29,0x20, - 0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x6c,0x61, - 0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20, - 0x33,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x61,0x6d,0x3b, - 0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e, - 0x20,0x3d,0x20,0x34,0x29,0x20,0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x76,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x3b,0x0a,0x0a, - 0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20, - 0x6d,0x61,0x74,0x34,0x28,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30, - 0x5d,0x2c,0x20,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x2c, - 0x20,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x32,0x5d,0x2c,0x20,0x76, - 0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x33,0x5d,0x29,0x20,0x2a,0x20,0x76, - 0x65,0x63,0x34,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x79,0x7a, - 0x20,0x2b,0x20,0x69,0x6e,0x73,0x74,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x31,0x2e,0x30, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x3d, - 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c, - 0x6f,0x72,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69, - 0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6d,0x20,0x3d,0x20, - 0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x34,0x5d,0x2e,0x78,0x79,0x7a, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x73,0x74, - 0x61,0x74,0x65,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x2e,0x77,0x3b,0x0a,0x7d,0x0a, - 0x0a,0x00, + 0x20,0x33,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x61,0x6d, + 0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, + 0x6e,0x20,0x3d,0x20,0x34,0x29,0x20,0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x76,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x3b,0x0a, + 0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x6d,0x61,0x74,0x34,0x20,0x5f,0x33,0x30,0x20,0x3d,0x20,0x6d,0x61, + 0x74,0x34,0x28,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x36,0x5d,0x2c, + 0x20,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x37,0x5d,0x2c,0x20,0x76, + 0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x38,0x5d,0x2c,0x20,0x76,0x73,0x5f, + 0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x39,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x6d,0x61, + 0x74,0x34,0x28,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2c, + 0x20,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x2c,0x20,0x76, + 0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x32,0x5d,0x2c,0x20,0x76,0x73,0x5f, + 0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x33,0x5d,0x29,0x20,0x2a,0x20,0x76,0x65,0x63, + 0x34,0x28,0x28,0x28,0x5f,0x33,0x30,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x28, + 0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x79,0x7a,0x20,0x2b,0x20,0x69, + 0x6e,0x73,0x74,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2d,0x20,0x76,0x65,0x63,0x33,0x28, + 0x30,0x2e,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x2e,0x78,0x79,0x7a,0x20, + 0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x20,0x2b,0x20,0x76, + 0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x35,0x5d,0x2e,0x78,0x79,0x7a,0x2c, + 0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6e,0x6f,0x72,0x6d, + 0x61,0x6c,0x20,0x3d,0x20,0x5f,0x33,0x30,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x30,0x2e,0x30,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x69,0x6e, + 0x73,0x74,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20, + 0x3d,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x63,0x61,0x6d,0x20,0x3d,0x20,0x76,0x73,0x5f,0x70,0x61,0x72,0x61, + 0x6d,0x73,0x5b,0x34,0x5d,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, + 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x69, + 0x6e,0x73,0x74,0x2e,0x77,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, ]; /* #version 430 @@ -160,7 +175,14 @@ vs_trixel_source_glsl430 := u8.[ uniform trixel_world_config _215; - uniform ivec4 trixel_fs_params[1]; + struct trixel_fs_params + { + int view_mode; + float brightness; + }; + + uniform trixel_fs_params _313; + layout(location = 0) in vec4 color; layout(location = 1) in vec4 fnormal; layout(location = 3) in vec3 cam; @@ -231,19 +253,19 @@ vs_trixel_source_glsl430 := u8.[ float param_8 = roughness; float _277 = max(dot(_202, _220), 0.0); light += ((((((vec3(1.0) - _242) * (1.0 - metallic)) * color.xyz) * vec3(0.3183410167694091796875)) + ((_242 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(_202, _211), 0.0)) * _277) + 9.9999997473787516355514526367188e-05))) * _277); - if (trixel_fs_params[0].x == 1) + if (_313.view_mode == 1) { frag_color = vec4((_202 * 0.5) + vec3(0.5), 1.0); } else { - if (trixel_fs_params[0].x == 2) + if (_313.view_mode == 2) { frag_color = vec4((color.xyz * ((_277 * 0.60000002384185791015625) + 0.4000000059604644775390625)) + _197, 1.0); } else { - if (trixel_fs_params[0].x == 3) + if (_313.view_mode == 3) { frag_color = vec4(((color.xyz * ((_202 * 0.5) + vec3(0.5))) * ((_277 * 0.4000000059604644775390625) + 0.60000002384185791015625)) + _197, 1.0); } @@ -253,13 +275,18 @@ vs_trixel_source_glsl430 := u8.[ } } } + vec4 _396 = frag_color; + vec3 _398 = _396.xyz * _313.brightness; + frag_color.x = _398.x; + frag_color.y = _398.y; + frag_color.z = _398.z; if (vtrixel_state > 0.5) { - vec4 _398 = frag_color; - vec3 _402 = mix(_398.xyz, vec3(1.0, 1.0, 0.5), vec3(0.5)); - frag_color.x = _402.x; - frag_color.y = _402.y; - frag_color.z = _402.z; + vec4 _414 = frag_color; + vec3 _418 = mix(_414.xyz, vec3(1.0, 1.0, 0.5), vec3(0.5)); + frag_color.x = _418.x; + frag_color.y = _418.y; + frag_color.z = _418.z; } } @@ -289,233 +316,246 @@ fs_trixel_source_glsl430 := u8.[ 0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x74, 0x69,0x6d,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, 0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f, - 0x6e,0x66,0x69,0x67,0x20,0x5f,0x32,0x31,0x35,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66, - 0x6f,0x72,0x6d,0x20,0x69,0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x69,0x78,0x65,0x6c, - 0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x6c, - 0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d, - 0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x6f,0x6c,0x6f, - 0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69, - 0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20, - 0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28, - 0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x33,0x29,0x20,0x69,0x6e, - 0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x61,0x6d,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75, - 0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29,0x20, - 0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x6c,0x61,0x79, - 0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30, - 0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f, + 0x6e,0x66,0x69,0x67,0x20,0x5f,0x32,0x31,0x35,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75, + 0x63,0x74,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72, + 0x61,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x76,0x69, + 0x65,0x77,0x5f,0x6d,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x7d, + 0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x74,0x72,0x69,0x78,0x65, + 0x6c,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5f,0x33,0x31,0x33, + 0x3b,0x0a,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69, + 0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20, 0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f, - 0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x34,0x29,0x20,0x69,0x6e,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x76,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x73,0x74,0x61, - 0x74,0x65,0x3b,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x66,0x72,0x65,0x73,0x6e,0x65, - 0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63, - 0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30, - 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46, - 0x30,0x20,0x2b,0x20,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20, - 0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x63,0x6c,0x61,0x6d, - 0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61, - 0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x35,0x2e,0x30, - 0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x44,0x69,0x73, - 0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x76,0x65,0x63, - 0x33,0x20,0x4e,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x48,0x2c,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x36,0x20,0x3d,0x20, - 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x34,0x30,0x20,0x3d,0x20,0x5f,0x33,0x36,0x20,0x2a,0x20,0x5f,0x33,0x36, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x36,0x20, - 0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x48,0x29,0x2c, - 0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x35,0x39,0x20,0x3d,0x20,0x28,0x28,0x5f,0x34,0x36,0x20,0x2a,0x20,0x5f, - 0x34,0x36,0x29,0x20,0x2a,0x20,0x28,0x5f,0x34,0x30,0x20,0x2d,0x20,0x31,0x2e,0x30, - 0x29,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x5f,0x34,0x30,0x20,0x2f,0x20,0x28,0x28,0x33,0x2e,0x31, - 0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31,0x31,0x31,0x33,0x32, - 0x38,0x31,0x32,0x35,0x20,0x2a,0x20,0x5f,0x35,0x39,0x29,0x20,0x2a,0x20,0x5f,0x35, - 0x39,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47,0x65,0x6f, - 0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x4e,0x64,0x6f,0x74,0x56,0x2c,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x32,0x20,0x3d,0x20, - 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x38,0x20,0x3d, - 0x20,0x28,0x5f,0x37,0x32,0x20,0x2a,0x20,0x5f,0x37,0x32,0x29,0x20,0x2a,0x20,0x30, - 0x2e,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2f,0x20,0x28,0x28,0x4e,0x64,0x6f,0x74,0x56, - 0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x37,0x38,0x29,0x29,0x20, - 0x2b,0x20,0x5f,0x37,0x38,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x76, - 0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x56,0x2c,0x20,0x76, - 0x65,0x63,0x33,0x20,0x4c,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75, - 0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28, - 0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x56,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x4c, - 0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75, - 0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, - 0x72,0x6e,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69, - 0x63,0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74, - 0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x7d,0x0a, - 0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x35,0x30,0x20,0x3d,0x20,0x69,0x6e, - 0x74,0x28,0x72,0x6f,0x75,0x6e,0x64,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x77,0x20, - 0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d, - 0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x30,0x35, + 0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e,0x20,0x76, + 0x65,0x63,0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79, + 0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x33, + 0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x61,0x6d,0x3b,0x0a,0x6c, + 0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d, + 0x20,0x32,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x6f,0x73,0x3b, + 0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e, + 0x20,0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66, + 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75, + 0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x34,0x29,0x20, + 0x69,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x74,0x72,0x69,0x78,0x65,0x6c, + 0x5f,0x73,0x74,0x61,0x74,0x65,0x3b,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x66,0x72, + 0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x76,0x65,0x63, + 0x33,0x20,0x46,0x30,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, + 0x72,0x6e,0x20,0x46,0x30,0x20,0x2b,0x20,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31, + 0x2e,0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28, + 0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54, + 0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c, + 0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58, + 0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x48,0x2c, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, + 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33, + 0x36,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20, + 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x30,0x20,0x3d,0x20,0x5f,0x33,0x36,0x20,0x2a, + 0x20,0x5f,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x5f,0x34,0x36,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c, + 0x20,0x48,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x39,0x20,0x3d,0x20,0x28,0x28,0x5f,0x34,0x36, + 0x20,0x2a,0x20,0x5f,0x34,0x36,0x29,0x20,0x2a,0x20,0x28,0x5f,0x34,0x30,0x20,0x2d, + 0x20,0x31,0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x34,0x30,0x20,0x2f,0x20,0x28, + 0x28,0x33,0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31, + 0x31,0x31,0x33,0x32,0x38,0x31,0x32,0x35,0x20,0x2a,0x20,0x5f,0x35,0x39,0x29,0x20, + 0x2a,0x20,0x5f,0x35,0x39,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b, + 0x47,0x47,0x58,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x4e,0x64,0x6f,0x74,0x56,0x2c, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, + 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37, + 0x32,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2b,0x20, + 0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x37,0x38,0x20,0x3d,0x20,0x28,0x5f,0x37,0x32,0x20,0x2a,0x20,0x5f,0x37,0x32,0x29, + 0x20,0x2a,0x20,0x30,0x2e,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2f,0x20,0x28,0x28,0x4e, + 0x64,0x6f,0x74,0x56,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x37, + 0x38,0x29,0x29,0x20,0x2b,0x20,0x5f,0x37,0x38,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69, + 0x74,0x68,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x76,0x65,0x63,0x33,0x20, + 0x56,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x4c,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20, + 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x56,0x29,0x2c,0x20,0x30, + 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28, + 0x4e,0x2c,0x20,0x4c,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d, + 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53, + 0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x20,0x2a,0x20,0x47,0x65, + 0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29, + 0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x35,0x30,0x20, + 0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x6e,0x64,0x28,0x63,0x6f,0x6c,0x6f, + 0x72,0x2e,0x77,0x20,0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e, + 0x63,0x65,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20, + 0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35, + 0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c, + 0x69,0x63,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20, + 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26, + 0x20,0x31,0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34, + 0x30,0x31,0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39, + 0x31,0x34,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d, + 0x20,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30, + 0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e, + 0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37, + 0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35, 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39, - 0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d, - 0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f, - 0x31,0x35,0x30,0x20,0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69, - 0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28, - 0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x31,0x32,0x37, - 0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34,0x30,0x31,0x35,0x37, - 0x31,0x38,0x36,0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39,0x31,0x34,0x30,0x36, - 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x6d,0x61,0x78, - 0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20, - 0x35,0x29,0x20,0x26,0x20,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38, - 0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36, - 0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30, - 0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33, - 0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20, - 0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33, - 0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78, - 0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31, - 0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x37,0x20,0x3d, - 0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x65,0x6d, - 0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x2a,0x20,0x35,0x2e,0x30,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x30,0x32,0x20,0x3d,0x20, - 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61, - 0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x5f,0x32,0x31,0x31,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a, - 0x65,0x28,0x63,0x61,0x6d,0x20,0x2d,0x20,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x32,0x30,0x20, - 0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x31,0x35, - 0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x32,0x35,0x20,0x3d,0x20,0x6e, - 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x31,0x31,0x20,0x2b,0x20, - 0x5f,0x32,0x32,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74, - 0x28,0x5f,0x32,0x32,0x35,0x2c,0x20,0x5f,0x32,0x31,0x31,0x29,0x2c,0x20,0x30,0x2e, - 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28, - 0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33, - 0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20, - 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, - 0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x34,0x32,0x20,0x3d,0x20,0x66,0x72,0x65,0x73, - 0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f, - 0x32,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x32,0x32,0x35,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20, - 0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20, - 0x5f,0x32,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x32,0x31,0x31,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20, - 0x3d,0x20,0x5f,0x32,0x32,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x32,0x37,0x37,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28, - 0x5f,0x32,0x30,0x32,0x2c,0x20,0x5f,0x32,0x32,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20, - 0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20, - 0x2d,0x20,0x5f,0x32,0x34,0x32,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d, - 0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x63,0x6f, - 0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28, - 0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30, - 0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f, - 0x32,0x34,0x32,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74, - 0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, - 0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74, - 0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x28, - 0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f, - 0x32,0x30,0x32,0x2c,0x20,0x5f,0x32,0x31,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29, - 0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x37,0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39, - 0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35, - 0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30, - 0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x66,0x73,0x5f, - 0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x20,0x3d,0x3d,0x20,0x31, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x33, + 0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33, + 0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38, + 0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6c, + 0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30, + 0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38, + 0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31, + 0x39,0x37,0x20,0x3d,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20, + 0x2a,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x2a,0x20,0x35, + 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x30, + 0x32,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x31,0x31,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d, + 0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d,0x20,0x2d,0x20,0x70,0x6f,0x73,0x2e, + 0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, + 0x32,0x32,0x30,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28, + 0x5f,0x32,0x31,0x35,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x32,0x35, + 0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x31, + 0x31,0x20,0x2b,0x20,0x5f,0x32,0x32,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78, + 0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x32,0x35,0x2c,0x20,0x5f,0x32,0x31,0x31,0x29, + 0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76, + 0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31, + 0x30,0x35,0x39,0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32, + 0x35,0x29,0x2c,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76, + 0x65,0x63,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x34,0x32,0x20,0x3d,0x20, + 0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x20,0x3d,0x20,0x5f,0x32,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x32,0x32,0x35, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x35,0x20,0x3d,0x20,0x5f,0x32,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x32,0x31, + 0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x32,0x32,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20, + 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x37,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28, + 0x64,0x6f,0x74,0x28,0x5f,0x32,0x30,0x32,0x2c,0x20,0x5f,0x32,0x32,0x30,0x29,0x2c, + 0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74, + 0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31, + 0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x32,0x34,0x32,0x29,0x20,0x2a,0x20,0x28,0x31, + 0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20, + 0x2a,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x76, + 0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37, + 0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b, + 0x20,0x28,0x28,0x5f,0x32,0x34,0x32,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72, + 0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79, + 0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x76,0x65, + 0x63,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x64, + 0x6f,0x74,0x28,0x5f,0x32,0x30,0x32,0x2c,0x20,0x5f,0x32,0x31,0x31,0x29,0x2c,0x20, + 0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x37,0x29,0x20,0x2b,0x20, + 0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35, + 0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38, + 0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x37,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x33,0x31,0x33,0x2e,0x76, + 0x69,0x65,0x77,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61, + 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28, + 0x5f,0x32,0x30,0x32,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x5f,0x33,0x31,0x33,0x2e,0x76,0x69,0x65,0x77,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d, + 0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x63,0x6f, + 0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x37,0x37, + 0x20,0x2a,0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34, + 0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2b,0x20, + 0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36, + 0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x29,0x20,0x2b,0x20, + 0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c, + 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x33,0x31, + 0x33,0x2e,0x76,0x69,0x65,0x77,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x33, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63, - 0x34,0x28,0x28,0x5f,0x32,0x30,0x32,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b, - 0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, - 0x66,0x20,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72, - 0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20, - 0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79, - 0x7a,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x37,0x37,0x20,0x2a,0x20,0x30,0x2e,0x36, - 0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31, - 0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x34,0x30,0x30,0x30, - 0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33, - 0x39,0x30,0x36,0x32,0x35,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31,0x39,0x37,0x2c,0x20, - 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x66,0x73, - 0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x20,0x3d,0x3d,0x20, - 0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65, - 0x63,0x34,0x28,0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a, - 0x20,0x28,0x28,0x5f,0x32,0x30,0x32,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b, - 0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x28, - 0x28,0x5f,0x32,0x37,0x37,0x20,0x2a,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30, - 0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30, - 0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30, - 0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35, - 0x29,0x29,0x20,0x2b,0x20,0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72, - 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28, - 0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e, - 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x74,0x72,0x69,0x78,0x65, - 0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20,0x3e,0x20,0x30,0x2e,0x35,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x34,0x20,0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x33,0x20,0x5f,0x34,0x30,0x32,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x33,0x39, - 0x38,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c, - 0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33, - 0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f, - 0x34,0x30,0x32,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x34, - 0x30,0x32,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72, - 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x34,0x30, - 0x32,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, + 0x34,0x28,0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20, + 0x28,0x28,0x5f,0x32,0x30,0x32,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20, + 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x28, + 0x5f,0x32,0x37,0x37,0x20,0x2a,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36, + 0x32,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32, + 0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29, + 0x29,0x20,0x2b,0x20,0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61, + 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x6c, + 0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x33,0x39,0x36,0x20,0x3d, + 0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x5f,0x33,0x39, + 0x36,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x33,0x31,0x33,0x2e,0x62,0x72,0x69, + 0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61, + 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x33,0x39,0x38, + 0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, + 0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x33,0x39,0x38,0x2e,0x79,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20, + 0x3d,0x20,0x5f,0x33,0x39,0x38,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x76,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20, + 0x3e,0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x34,0x31,0x34,0x20,0x3d, + 0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x34,0x31,0x38,0x20,0x3d, + 0x20,0x6d,0x69,0x78,0x28,0x5f,0x34,0x31,0x34,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76, + 0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e, + 0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, + 0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x34,0x31,0x38,0x2e,0x78,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x34,0x31,0x38,0x2e,0x79,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, + 0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x34,0x31,0x38,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, ]; /* #version 300 es - uniform vec4 vs_params[5]; + uniform vec4 vs_params[10]; layout(location = 2) in vec4 inst; layout(location = 0) in vec4 position; out vec4 fnormal; @@ -528,8 +568,9 @@ fs_trixel_source_glsl430 := u8.[ void main() { - gl_Position = mat4(vs_params[0], vs_params[1], vs_params[2], vs_params[3]) * vec4(position.xyz + inst.xyz, 1.0); - fnormal = normal; + mat4 _30 = mat4(vs_params[6], vs_params[7], vs_params[8], vs_params[9]); + gl_Position = mat4(vs_params[0], vs_params[1], vs_params[2], vs_params[3]) * vec4(((_30 * vec4((position.xyz + inst.xyz) - vec3(0.5), 0.0)).xyz + vec3(0.5)) + vs_params[5].xyz, 1.0); + fnormal = _30 * vec4(normal.xyz, 0.0); color = inst_col; pos = gl_Position; cam = vs_params[4].xyz; @@ -540,38 +581,49 @@ fs_trixel_source_glsl430 := u8.[ vs_trixel_source_glsl300es := u8.[ 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a, 0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x76,0x73, - 0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x35,0x5d,0x3b,0x0a,0x6c,0x61,0x79,0x6f, - 0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29, - 0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x69,0x6e,0x73,0x74,0x3b,0x0a,0x6c, - 0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d, - 0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x6f,0x73,0x69, - 0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66, - 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c, - 0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e,0x20, - 0x76,0x65,0x63,0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6f,0x75,0x74, - 0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x6c,0x61,0x79, - 0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x33, - 0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x69,0x6e,0x73,0x74,0x5f,0x63, - 0x6f,0x6c,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x6f,0x73, - 0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x61,0x6d,0x3b,0x0a, - 0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x74,0x72,0x69,0x78,0x65, - 0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d, - 0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50, - 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x6d,0x61,0x74,0x34,0x28,0x76, - 0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2c,0x20,0x76,0x73,0x5f, - 0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x2c,0x20,0x76,0x73,0x5f,0x70,0x61, - 0x72,0x61,0x6d,0x73,0x5b,0x32,0x5d,0x2c,0x20,0x76,0x73,0x5f,0x70,0x61,0x72,0x61, - 0x6d,0x73,0x5b,0x33,0x5d,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x70,0x6f, - 0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x79,0x7a,0x20,0x2b,0x20,0x69,0x6e,0x73, - 0x74,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61, - 0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x69, - 0x6e,0x73,0x74,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73, - 0x20,0x3d,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x63,0x61,0x6d,0x20,0x3d,0x20,0x76,0x73,0x5f,0x70,0x61,0x72, - 0x61,0x6d,0x73,0x5b,0x34,0x5d,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20, - 0x69,0x6e,0x73,0x74,0x2e,0x77,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x31,0x30,0x5d,0x3b,0x0a,0x6c,0x61,0x79, + 0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32, + 0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x69,0x6e,0x73,0x74,0x3b,0x0a, + 0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20, + 0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x6f,0x73, + 0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20, + 0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28, + 0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e, + 0x20,0x76,0x65,0x63,0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6f,0x75, + 0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x6c,0x61, + 0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20, + 0x33,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x69,0x6e,0x73,0x74,0x5f, + 0x63,0x6f,0x6c,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x6f, + 0x73,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x61,0x6d,0x3b, + 0x0a,0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x74,0x72,0x69,0x78, + 0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20, + 0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x74, + 0x34,0x20,0x5f,0x33,0x30,0x20,0x3d,0x20,0x6d,0x61,0x74,0x34,0x28,0x76,0x73,0x5f, + 0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x36,0x5d,0x2c,0x20,0x76,0x73,0x5f,0x70,0x61, + 0x72,0x61,0x6d,0x73,0x5b,0x37,0x5d,0x2c,0x20,0x76,0x73,0x5f,0x70,0x61,0x72,0x61, + 0x6d,0x73,0x5b,0x38,0x5d,0x2c,0x20,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, + 0x5b,0x39,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73, + 0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x6d,0x61,0x74,0x34,0x28,0x76,0x73,0x5f, + 0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2c,0x20,0x76,0x73,0x5f,0x70,0x61, + 0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x2c,0x20,0x76,0x73,0x5f,0x70,0x61,0x72,0x61, + 0x6d,0x73,0x5b,0x32,0x5d,0x2c,0x20,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, + 0x5b,0x33,0x5d,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x28,0x5f,0x33, + 0x30,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x70,0x6f,0x73,0x69,0x74,0x69, + 0x6f,0x6e,0x2e,0x78,0x79,0x7a,0x20,0x2b,0x20,0x69,0x6e,0x73,0x74,0x2e,0x78,0x79, + 0x7a,0x29,0x20,0x2d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x2c,0x20, + 0x30,0x2e,0x30,0x29,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2b,0x20,0x76,0x65,0x63,0x33, + 0x28,0x30,0x2e,0x35,0x29,0x29,0x20,0x2b,0x20,0x76,0x73,0x5f,0x70,0x61,0x72,0x61, + 0x6d,0x73,0x5b,0x35,0x5d,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x3d,0x20,0x5f, + 0x33,0x30,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c, + 0x2e,0x78,0x79,0x7a,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x5f,0x63,0x6f,0x6c, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x67,0x6c,0x5f,0x50, + 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6d, + 0x20,0x3d,0x20,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x34,0x5d,0x2e, + 0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x74,0x72,0x69,0x78,0x65,0x6c, + 0x5f,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x2e,0x77,0x3b, + 0x0a,0x7d,0x0a,0x0a,0x00, ]; /* #version 300 es @@ -599,7 +651,14 @@ vs_trixel_source_glsl300es := u8.[ uniform trixel_world_config _215; - uniform ivec4 trixel_fs_params[1]; + struct trixel_fs_params + { + int view_mode; + highp float brightness; + }; + + uniform trixel_fs_params _313; + in highp vec4 color; in highp vec4 fnormal; in highp vec3 cam; @@ -670,19 +729,19 @@ vs_trixel_source_glsl300es := u8.[ highp float param_8 = roughness; highp float _277 = max(dot(_202, _220), 0.0); light += ((((((vec3(1.0) - _242) * (1.0 - metallic)) * color.xyz) * vec3(0.3183410167694091796875)) + ((_242 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(_202, _211), 0.0)) * _277) + 9.9999997473787516355514526367188e-05))) * _277); - if (trixel_fs_params[0].x == 1) + if (_313.view_mode == 1) { frag_color = vec4((_202 * 0.5) + vec3(0.5), 1.0); } else { - if (trixel_fs_params[0].x == 2) + if (_313.view_mode == 2) { frag_color = vec4((color.xyz * ((_277 * 0.60000002384185791015625) + 0.4000000059604644775390625)) + _197, 1.0); } else { - if (trixel_fs_params[0].x == 3) + if (_313.view_mode == 3) { frag_color = vec4(((color.xyz * ((_202 * 0.5) + vec3(0.5))) * ((_277 * 0.4000000059604644775390625) + 0.60000002384185791015625)) + _197, 1.0); } @@ -692,13 +751,18 @@ vs_trixel_source_glsl300es := u8.[ } } } + highp vec4 _396 = frag_color; + highp vec3 _398 = _396.xyz * _313.brightness; + frag_color.x = _398.x; + frag_color.y = _398.y; + frag_color.z = _398.z; if (vtrixel_state > 0.5) { - highp vec4 _398 = frag_color; - highp vec3 _402 = mix(_398.xyz, vec3(1.0, 1.0, 0.5), vec3(0.5)); - frag_color.x = _402.x; - frag_color.y = _402.y; - frag_color.z = _402.z; + highp vec4 _414 = frag_color; + highp vec3 _418 = mix(_414.xyz, vec3(1.0, 1.0, 0.5), vec3(0.5)); + frag_color.x = _418.x; + frag_color.y = _418.y; + frag_color.z = _418.z; } } @@ -736,242 +800,255 @@ fs_trixel_source_glsl300es := u8.[ 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x74,0x69, 0x6d,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20, 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f,0x6e, - 0x66,0x69,0x67,0x20,0x5f,0x32,0x31,0x35,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f, - 0x72,0x6d,0x20,0x69,0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f, - 0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x69,0x6e, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x6f,0x6c,0x6f, - 0x72,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34, - 0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x61,0x6d,0x3b,0x0a,0x69,0x6e,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x6f,0x73,0x3b,0x0a, - 0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20, - 0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a, - 0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76, - 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x3b,0x0a,0x0a,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x66,0x72,0x65,0x73,0x6e,0x65, - 0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20,0x2b,0x20, - 0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x46,0x30, - 0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e, - 0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e, - 0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x44, - 0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x48,0x2c,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, - 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x33,0x36,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x34,0x30,0x20,0x3d,0x20,0x5f,0x33,0x36,0x20,0x2a,0x20,0x5f,0x33,0x36, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x34,0x36,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28, - 0x4e,0x2c,0x20,0x48,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x39, - 0x20,0x3d,0x20,0x28,0x28,0x5f,0x34,0x36,0x20,0x2a,0x20,0x5f,0x34,0x36,0x29,0x20, - 0x2a,0x20,0x28,0x5f,0x34,0x30,0x20,0x2d,0x20,0x31,0x2e,0x30,0x29,0x29,0x20,0x2b, - 0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x5f,0x34,0x30,0x20,0x2f,0x20,0x28,0x28,0x33,0x2e,0x31,0x34,0x31,0x32,0x38, - 0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31,0x31,0x31,0x33,0x32,0x38,0x31,0x32,0x35, - 0x20,0x2a,0x20,0x5f,0x35,0x39,0x29,0x20,0x2a,0x20,0x5f,0x35,0x39,0x29,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47, - 0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47, - 0x58,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x4e,0x64, - 0x6f,0x74,0x56,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x66,0x69,0x67,0x20,0x5f,0x32,0x31,0x35,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63, + 0x74,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61, + 0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x76,0x69,0x65, + 0x77,0x5f,0x6d,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65, + 0x73,0x73,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20, + 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, + 0x20,0x5f,0x33,0x31,0x33,0x3b,0x0a,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x69,0x6e,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d, + 0x61,0x6c,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x63,0x61,0x6d,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x34,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74, + 0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x6f, + 0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x74,0x72,0x69,0x78,0x65,0x6c, + 0x5f,0x73,0x74,0x61,0x74,0x65,0x3b,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69, + 0x63,0x6b,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63, + 0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x46,0x30,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20,0x2b,0x20,0x28,0x28,0x76,0x65,0x63,0x33, + 0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f, + 0x77,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f, + 0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, + 0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67, + 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62, + 0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x48,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37, - 0x32,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2b,0x20, - 0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x38,0x20,0x3d,0x20,0x28,0x5f,0x37,0x32,0x20, - 0x2a,0x20,0x5f,0x37,0x32,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x32,0x35,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4e,0x64,0x6f,0x74,0x56, - 0x20,0x2f,0x20,0x28,0x28,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2a,0x20,0x28,0x31,0x2e, - 0x30,0x20,0x2d,0x20,0x5f,0x37,0x38,0x29,0x29,0x20,0x2b,0x20,0x5f,0x37,0x38,0x29, - 0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x56,0x2c,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x33,0x20,0x4c,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f, - 0x74,0x28,0x4e,0x2c,0x20,0x56,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x6d,0x61, - 0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x4c,0x29,0x2c,0x20,0x30,0x2e,0x30, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75, - 0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, - 0x72,0x6e,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69, - 0x63,0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74, - 0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x7d,0x0a, - 0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x35,0x30,0x20,0x3d,0x20,0x69,0x6e, - 0x74,0x28,0x72,0x6f,0x75,0x6e,0x64,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x77,0x20, - 0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74, - 0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30, - 0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33, - 0x38,0x32,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63, - 0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x28,0x5f,0x31,0x35,0x30,0x20,0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20,0x30,0x29, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65, - 0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x31, - 0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34,0x30,0x31, - 0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39,0x31,0x34, - 0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x6d, - 0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e, - 0x3e,0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34, - 0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37, - 0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30, - 0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39, - 0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20, - 0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33, - 0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33, - 0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d, - 0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x33, - 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35, - 0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x37,0x20,0x3d,0x20,0x28, - 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x65,0x6d,0x69,0x74, - 0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x2a,0x20,0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x30, - 0x32,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66,0x6e, - 0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x31,0x31,0x20, - 0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d,0x20, - 0x2d,0x20,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x32,0x30,0x20, - 0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x31,0x35, - 0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32, - 0x32,0x35,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f, - 0x32,0x31,0x31,0x20,0x2b,0x20,0x5f,0x32,0x32,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33, + 0x36,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20, + 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x30,0x20,0x3d, + 0x20,0x5f,0x33,0x36,0x20,0x2a,0x20,0x5f,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x36,0x20, + 0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x48,0x29,0x2c, + 0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x39,0x20,0x3d,0x20,0x28,0x28,0x5f, + 0x34,0x36,0x20,0x2a,0x20,0x5f,0x34,0x36,0x29,0x20,0x2a,0x20,0x28,0x5f,0x34,0x30, + 0x20,0x2d,0x20,0x31,0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x34,0x30,0x20,0x2f, + 0x20,0x28,0x28,0x33,0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36, + 0x34,0x31,0x31,0x31,0x33,0x32,0x38,0x31,0x32,0x35,0x20,0x2a,0x20,0x5f,0x35,0x39, + 0x29,0x20,0x2a,0x20,0x5f,0x35,0x39,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67, + 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72, + 0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x68,0x69,0x67,0x68, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x4e,0x64,0x6f,0x74,0x56,0x2c,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68, + 0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x32,0x20,0x3d,0x20,0x72,0x6f, + 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x37,0x38,0x20,0x3d,0x20,0x28,0x5f,0x37,0x32,0x20,0x2a,0x20,0x5f,0x37,0x32,0x29, + 0x20,0x2a,0x20,0x30,0x2e,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2f,0x20,0x28,0x28,0x4e, + 0x64,0x6f,0x74,0x56,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x37, + 0x38,0x29,0x29,0x20,0x2b,0x20,0x5f,0x37,0x38,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68, + 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47,0x65,0x6f,0x6d,0x65, + 0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x56,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, + 0x4c,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x56, + 0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28, + 0x4e,0x2c,0x20,0x4c,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x32, - 0x35,0x2c,0x20,0x5f,0x32,0x31,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63, - 0x33,0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35, - 0x39,0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29, - 0x2c,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63, - 0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x34, - 0x32,0x20,0x3d,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69, - 0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x32,0x30, - 0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x32,0x32,0x35, + 0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x47,0x65,0x6f, + 0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, + 0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c, + 0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20, + 0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, + 0x20,0x5f,0x31,0x35,0x30,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x6e, + 0x64,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x77,0x20,0x2a,0x20,0x32,0x35,0x35,0x2e, + 0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d, + 0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20, + 0x3d,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35, + 0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20, - 0x5f,0x32,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f, - 0x32,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x32, - 0x32,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x72,0x6f, - 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x37,0x20,0x3d,0x20, - 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x30,0x32,0x2c,0x20,0x5f,0x32, - 0x32,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c, - 0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65, - 0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x32,0x34,0x32,0x29,0x20, - 0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69, - 0x63,0x29,0x29,0x20,0x2a,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x29, - 0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31, - 0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35, - 0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x32,0x34,0x32,0x20,0x2a,0x20,0x28,0x44, - 0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d, - 0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20, - 0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x6d, - 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x30,0x32,0x2c,0x20,0x5f,0x32,0x31, - 0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x37, - 0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33, - 0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33, - 0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f, - 0x32,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72, - 0x69,0x78,0x65,0x6c,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30, - 0x5d,0x2e,0x78,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, - 0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x5f,0x32,0x30,0x32,0x20, - 0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, - 0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x78,0x65, - 0x6c,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78, - 0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61, - 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28, - 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32, - 0x37,0x37,0x20,0x2a,0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33, - 0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20, - 0x2b,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30, - 0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x29,0x20, - 0x2b,0x20,0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74, - 0x72,0x69,0x78,0x65,0x6c,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b, - 0x30,0x5d,0x2e,0x78,0x20,0x3d,0x3d,0x20,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x74,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x30,0x2e,0x30, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x35,0x30,0x20, + 0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e, + 0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30, + 0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x31,0x32,0x37,0x29,0x20,0x2a,0x20, + 0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34,0x30,0x31,0x35,0x37,0x31,0x38,0x36,0x39, + 0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75, + 0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f, + 0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26, + 0x20,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34, + 0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31, + 0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37, + 0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31, + 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74, + 0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f, + 0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a, + 0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34, + 0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72, + 0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30, + 0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32, + 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x5f,0x31,0x39,0x37,0x20,0x3d,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e, + 0x78,0x79,0x7a,0x20,0x2a,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x29, + 0x20,0x2a,0x20,0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x30,0x32,0x20,0x3d,0x20,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e, + 0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x31,0x31,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d, + 0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d,0x20,0x2d,0x20,0x70,0x6f,0x73,0x2e, + 0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x32,0x30,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d, + 0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x31,0x35,0x2e,0x73,0x75,0x6e,0x50,0x6f, + 0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x32,0x35,0x20,0x3d,0x20,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x31,0x31,0x20,0x2b,0x20, + 0x5f,0x32,0x32,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d, + 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x32,0x35,0x2c,0x20,0x5f,0x32,0x31, + 0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x33, + 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30,0x33,0x32,0x38, + 0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x63,0x6f,0x6c,0x6f, + 0x72,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x65,0x74,0x61, + 0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x34,0x32,0x20,0x3d,0x20,0x66,0x72, + 0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x32,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x32,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x32,0x30,0x32,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x32,0x31,0x31,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x32,0x32,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, + 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x32,0x37,0x37,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f, + 0x74,0x28,0x5f,0x32,0x30,0x32,0x2c,0x20,0x5f,0x32,0x32,0x30,0x29,0x2c,0x20,0x30, + 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b, + 0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30, + 0x29,0x20,0x2d,0x20,0x5f,0x32,0x34,0x32,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30, + 0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20, + 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x76,0x65,0x63, + 0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39, + 0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28, + 0x28,0x5f,0x32,0x34,0x32,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62, + 0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d, + 0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x33, + 0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74, + 0x28,0x5f,0x32,0x30,0x32,0x2c,0x20,0x5f,0x32,0x31,0x31,0x29,0x2c,0x20,0x30,0x2e, + 0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x37,0x29,0x20,0x2b,0x20,0x39,0x2e, + 0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36, + 0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65, + 0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x37,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x33,0x31,0x33,0x2e,0x76,0x69,0x65, + 0x77,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x5f,0x32, + 0x30,0x32,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33, + 0x28,0x30,0x2e,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x33, + 0x31,0x33,0x2e,0x76,0x69,0x65,0x77,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20, + 0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x28,0x63,0x6f,0x6c, - 0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x30,0x32,0x20, - 0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, - 0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x37,0x37,0x20,0x2a,0x20, - 0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36, - 0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x30, - 0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37, - 0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31,0x39, - 0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20, - 0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x76,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20, - 0x3e,0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20, - 0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, - 0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x34,0x30,0x32,0x20,0x3d,0x20,0x6d,0x69,0x78, - 0x28,0x5f,0x33,0x39,0x38,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, - 0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x35,0x29,0x2c,0x20, - 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78, - 0x20,0x3d,0x20,0x5f,0x34,0x30,0x32,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20, - 0x3d,0x20,0x5f,0x34,0x30,0x32,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d, - 0x20,0x5f,0x34,0x30,0x32,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d, - 0x0a,0x0a,0x00, + 0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x63,0x6f,0x6c,0x6f, + 0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x37,0x37,0x20,0x2a, + 0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38, + 0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e, + 0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34, + 0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31, + 0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x33,0x31,0x33,0x2e, + 0x76,0x69,0x65,0x77,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x33,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28, + 0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28, + 0x5f,0x32,0x30,0x32,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32, + 0x37,0x37,0x20,0x2a,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35, + 0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35, + 0x29,0x20,0x2b,0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38, + 0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x29,0x20, + 0x2b,0x20,0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x6c,0x69,0x67, + 0x68,0x74,0x20,0x2b,0x20,0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x33, + 0x39,0x36,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, + 0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x5f,0x33,0x39,0x36,0x2e,0x78,0x79,0x7a,0x20, + 0x2a,0x20,0x5f,0x33,0x31,0x33,0x2e,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73, + 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x33,0x39,0x38,0x2e,0x78,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d, + 0x20,0x5f,0x33,0x39,0x38,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61, + 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x33,0x39,0x38, + 0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x74,0x72,0x69, + 0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20,0x3e,0x20,0x30,0x2e,0x35,0x29, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x34,0x31,0x34,0x20,0x3d, + 0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, + 0x5f,0x34,0x31,0x38,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x34,0x31,0x34,0x2e, + 0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x31, + 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x34,0x31, + 0x38,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61, + 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x34,0x31,0x38, + 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67, + 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x34,0x31,0x38,0x2e, + 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, ]; /* #include @@ -983,6 +1060,8 @@ fs_trixel_source_glsl300es := u8.[ { float4x4 mvp; float3 camera; + float3 world_offset; + float4x4 tile_rotation; }; struct main0_out @@ -1003,14 +1082,14 @@ fs_trixel_source_glsl300es := u8.[ float4 inst_col [[attribute(3)]]; }; - vertex main0_out main0(main0_in in [[stage_in]], constant vs_params& _26 [[buffer(0)]]) + vertex main0_out main0(main0_in in [[stage_in]], constant vs_params& _25 [[buffer(0)]]) { main0_out out = {}; - out.gl_Position = _26.mvp * float4(in.position.xyz + in.inst.xyz, 1.0); - out.fnormal = in.normal; + out.gl_Position = _25.mvp * float4(((_25.tile_rotation * float4((in.position.xyz + in.inst.xyz) - float3(0.5), 0.0)).xyz + float3(0.5)) + _25.world_offset, 1.0); + out.fnormal = _25.tile_rotation * float4(in.normal.xyz, 0.0); out.color = in.inst_col; out.pos = out.gl_Position; - out.cam = _26.camera; + out.cam = _25.camera; out.vtrixel_state = in.inst.w; return out; } @@ -1025,54 +1104,66 @@ vs_trixel_source_metal_macos := u8.[ 0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x34,0x78,0x34,0x20,0x6d,0x76,0x70,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x63,0x61,0x6d,0x65,0x72,0x61,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x77,0x6f,0x72,0x6c,0x64, + 0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x78,0x34,0x20,0x74,0x69,0x6c,0x65,0x5f,0x72,0x6f,0x74,0x61,0x74, + 0x69,0x6f,0x6e,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20, + 0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x5b,0x5b,0x75, + 0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c, + 0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x29,0x5d,0x5d, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x6f,0x73, + 0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x32,0x29,0x5d,0x5d, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x63,0x61,0x6d, + 0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x33,0x29,0x5d,0x5d, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x74,0x72,0x69, + 0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72, + 0x28,0x6c,0x6f,0x63,0x6e,0x34,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f, + 0x6e,0x20,0x5b,0x5b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5d,0x5d,0x3b,0x0a, 0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30, - 0x5f,0x6f,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, - 0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x6f,0x73,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x63,0x61,0x6d,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x33,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x73, - 0x74,0x61,0x74,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e, - 0x34,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x5b,0x5b,0x70, - 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73, - 0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x6f,0x73,0x69, - 0x74,0x69,0x6f,0x6e,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65, - 0x28,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69, - 0x62,0x75,0x74,0x65,0x28,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x73,0x74,0x20,0x5b,0x5b,0x61,0x74,0x74, - 0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x73,0x74,0x5f,0x63,0x6f,0x6c, - 0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x33,0x29,0x5d, - 0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x65,0x72,0x74,0x65,0x78,0x20,0x6d,0x61, - 0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61, - 0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67, - 0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74, - 0x20,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x20,0x5f,0x32,0x36,0x20, - 0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f, - 0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74, - 0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x5f, - 0x32,0x36,0x2e,0x6d,0x76,0x70,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, - 0x69,0x6e,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x79,0x7a,0x20, - 0x2b,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x73,0x74,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x31, - 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x73,0x74,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6f,0x75,0x74, - 0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x6f,0x75,0x74,0x2e,0x63,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x32,0x36,0x2e, - 0x63,0x61,0x6d,0x65,0x72,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e, - 0x76,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20, - 0x69,0x6e,0x2e,0x69,0x6e,0x73,0x74,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, - 0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72, + 0x69,0x62,0x75,0x74,0x65,0x28,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x5b,0x5b, + 0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x31,0x29,0x5d,0x5d,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x73,0x74,0x20, + 0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x32,0x29,0x5d,0x5d, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x73, + 0x74,0x5f,0x63,0x6f,0x6c,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74, + 0x65,0x28,0x33,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x65,0x72,0x74, + 0x65,0x78,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69, + 0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b, + 0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x61,0x6e,0x74,0x20,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26, + 0x20,0x5f,0x32,0x35,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29, + 0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f, + 0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x6f,0x75,0x74,0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f, + 0x6e,0x20,0x3d,0x20,0x5f,0x32,0x35,0x2e,0x6d,0x76,0x70,0x20,0x2a,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x34,0x28,0x28,0x28,0x5f,0x32,0x35,0x2e,0x74,0x69,0x6c,0x65,0x5f, + 0x72,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x28,0x28,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78, + 0x79,0x7a,0x20,0x2b,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x73,0x74,0x2e,0x78,0x79,0x7a, + 0x29,0x20,0x2d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x2c, + 0x20,0x30,0x2e,0x30,0x29,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2b,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x20,0x2b,0x20,0x5f,0x32,0x35,0x2e, + 0x77,0x6f,0x72,0x6c,0x64,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x2c,0x20,0x31,0x2e, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x32,0x35,0x2e,0x74,0x69,0x6c,0x65,0x5f,0x72, + 0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x28,0x69,0x6e,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x2c,0x20, + 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x63,0x6f, + 0x6c,0x6f,0x72,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x73,0x74,0x5f,0x63,0x6f, + 0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x70,0x6f,0x73,0x20,0x3d, + 0x20,0x6f,0x75,0x74,0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x63,0x61,0x6d,0x20,0x3d,0x20, + 0x5f,0x32,0x35,0x2e,0x63,0x61,0x6d,0x65,0x72,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x6f,0x75,0x74,0x2e,0x76,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74, + 0x65,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x73,0x74,0x2e,0x77,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d, + 0x0a,0x0a,0x00, ]; /* #pragma clang diagnostic ignored "-Wmissing-prototypes" @@ -1104,6 +1195,7 @@ vs_trixel_source_metal_macos := u8.[ struct trixel_fs_params { int view_mode; + float brightness; }; struct main0_out @@ -1210,13 +1302,18 @@ vs_trixel_source_metal_macos := u8.[ } } } + float4 _396 = out.frag_color; + float3 _398 = _396.xyz * _313.brightness; + out.frag_color.x = _398.x; + out.frag_color.y = _398.y; + out.frag_color.z = _398.z; if (in.vtrixel_state > 0.5) { - float4 _398 = out.frag_color; - float3 _402 = mix(_398.xyz, float3(1.0, 1.0, 0.5), float3(0.5)); - out.frag_color.x = _402.x; - out.frag_color.y = _402.y; - out.frag_color.z = _402.z; + float4 _414 = out.frag_color; + float3 _418 = mix(_414.xyz, float3(1.0, 1.0, 0.5), float3(0.5)); + out.frag_color.x = _418.x; + out.frag_color.y = _418.y; + out.frag_color.z = _418.z; } return out; } @@ -1257,272 +1354,284 @@ fs_trixel_source_metal_macos := u8.[ 0x74,0x20,0x74,0x69,0x6d,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75, 0x63,0x74,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72, 0x61,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x76,0x69, - 0x65,0x77,0x5f,0x6d,0x6f,0x64,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72, - 0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x72,0x61,0x67,0x5f, - 0x63,0x6f,0x6c,0x6f,0x72,0x20,0x5b,0x5b,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x30,0x29, - 0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d, - 0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x5b,0x5b,0x75,0x73,0x65, - 0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x5b, - 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x29,0x5d,0x5d,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x6f,0x73,0x20,0x5b, - 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x32,0x29,0x5d,0x5d,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x63,0x61,0x6d,0x20,0x5b, - 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x33,0x29,0x5d,0x5d,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x74,0x72,0x69,0x78,0x65, - 0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, - 0x6f,0x63,0x6e,0x34,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x61, - 0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74, - 0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73, - 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28, - 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x26,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x74,0x68, - 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x26,0x20,0x46,0x30,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, - 0x75,0x72,0x6e,0x20,0x46,0x30,0x20,0x2b,0x20,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70, - 0x6f,0x77,0x72,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28, - 0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20, - 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29, - 0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69, - 0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f, - 0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29, - 0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75, - 0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, - 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4e,0x2c,0x20, - 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x26,0x20,0x48,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, - 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x72,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x33,0x36,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x30,0x20,0x3d,0x20, - 0x5f,0x33,0x36,0x20,0x2a,0x20,0x5f,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x36,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a, - 0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x48,0x29,0x2c,0x20, - 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x35,0x39,0x20,0x3d,0x20,0x28,0x28,0x5f,0x34,0x36,0x20,0x2a,0x20,0x5f,0x34, - 0x36,0x29,0x20,0x2a,0x20,0x28,0x5f,0x34,0x30,0x20,0x2d,0x20,0x31,0x2e,0x30,0x29, - 0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, - 0x75,0x72,0x6e,0x20,0x5f,0x34,0x30,0x20,0x2f,0x20,0x28,0x28,0x33,0x2e,0x31,0x34, - 0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31,0x31,0x31,0x33,0x32,0x38, - 0x31,0x32,0x35,0x20,0x2a,0x20,0x5f,0x35,0x39,0x29,0x20,0x2a,0x20,0x5f,0x35,0x39, - 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f, - 0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65, - 0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72, - 0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x74,0x68,0x72,0x65, - 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20, - 0x4e,0x64,0x6f,0x74,0x56,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, - 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x72,0x6f,0x75,0x67,0x68, - 0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x37,0x32,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, - 0x73,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x37,0x38,0x20,0x3d,0x20,0x28,0x5f,0x37,0x32,0x20,0x2a,0x20, - 0x5f,0x37,0x32,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2f, - 0x20,0x28,0x28,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20, - 0x2d,0x20,0x5f,0x37,0x38,0x29,0x29,0x20,0x2b,0x20,0x5f,0x37,0x38,0x29,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65, + 0x65,0x77,0x5f,0x6d,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x7d, + 0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f, + 0x6f,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x5b,0x5b,0x63,0x6f, + 0x6c,0x6f,0x72,0x28,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74, + 0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x0a,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72, + 0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e, + 0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x70,0x6f,0x73,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e, + 0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x20,0x63,0x61,0x6d,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e, + 0x33,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x76,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20,0x5b,0x5b, + 0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x34,0x29,0x5d,0x5d,0x3b,0x0a,0x7d, + 0x3b,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65, 0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28, 0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d, - 0x69,0x74,0x68,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4e,0x2c,0x20,0x74,0x68,0x72,0x65, - 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26, - 0x20,0x56,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4c,0x2c,0x20,0x74,0x68,0x72,0x65, - 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20, - 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66, - 0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20, - 0x56,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x72,0x6f, - 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x66,0x61,0x73, - 0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x4c,0x29, - 0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63, - 0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x33,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72, - 0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f, - 0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69, - 0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d, - 0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x74,0x72,0x69,0x78, - 0x65,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x26, - 0x20,0x5f,0x32,0x31,0x35,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30, - 0x29,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x74,0x72, - 0x69,0x78,0x65,0x6c,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x20, - 0x5f,0x33,0x31,0x33,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x31,0x29, - 0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f, - 0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x35,0x30,0x20,0x3d,0x20,0x69,0x6e,0x74, - 0x28,0x72,0x6f,0x75,0x6e,0x64,0x28,0x69,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x2e, - 0x77,0x20,0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65, - 0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e, - 0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30, - 0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63, - 0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x28,0x5f,0x31,0x35,0x30,0x20,0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20,0x30,0x29, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65, - 0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x31, - 0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34,0x30,0x31, - 0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39,0x31,0x34, - 0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x66, - 0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28, - 0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x29,0x20, - 0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33, - 0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20, - 0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35, - 0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69, - 0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20, - 0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33, - 0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39, - 0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x6c,0x69,0x67,0x68,0x74, - 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20, - 0x2a,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30, - 0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x37,0x20,0x3d,0x20, - 0x28,0x69,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20, - 0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x2a,0x20,0x35,0x2e,0x30, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x30, - 0x32,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c, - 0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78, - 0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, - 0x5f,0x32,0x31,0x31,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72, - 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x63,0x61,0x6d,0x20,0x2d,0x20, - 0x69,0x6e,0x2e,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x32,0x30,0x20,0x3d,0x20,0x66, - 0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x31,0x35,0x2e,0x73,0x75,0x6e,0x50,0x6f, - 0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x32,0x35,0x20,0x3d,0x20,0x66,0x61,0x73,0x74, - 0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x31,0x31, - 0x20,0x2b,0x20,0x5f,0x32,0x32,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66,0x61,0x73,0x74, - 0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x32,0x35,0x2c,0x20, - 0x5f,0x32,0x31,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20, - 0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30, - 0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30,0x33,0x32, - 0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x69,0x6e,0x2e, - 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x34,0x32,0x20,0x3d,0x20, - 0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x20,0x3d,0x20,0x5f,0x32,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20, - 0x5f,0x32,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x32,0x30,0x32,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x36,0x20,0x3d,0x20,0x5f,0x32,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20, - 0x5f,0x32,0x32,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x32,0x37,0x37,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28, - 0x64,0x6f,0x74,0x28,0x5f,0x32,0x30,0x32,0x2c,0x20,0x5f,0x32,0x32,0x30,0x29,0x2c, - 0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74, - 0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x32,0x34,0x32,0x29,0x20,0x2a,0x20, - 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29, - 0x29,0x20,0x2a,0x20,0x69,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a, - 0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x31,0x38, - 0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36, - 0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x32,0x34,0x32,0x20,0x2a, - 0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47, - 0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47, - 0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29, - 0x29,0x29,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x28,0x28,0x34,0x2e, - 0x30,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f, - 0x74,0x28,0x5f,0x32,0x30,0x32,0x2c,0x20,0x5f,0x32,0x31,0x31,0x29,0x2c,0x20,0x30, - 0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x37,0x29,0x20,0x2b,0x20,0x39, - 0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31, - 0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38, - 0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x37,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x33,0x31,0x33,0x2e,0x76,0x69, - 0x65,0x77,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e, - 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x34,0x28,0x28,0x5f,0x32,0x30,0x32,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29, - 0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x2c,0x20, - 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x33,0x31,0x33,0x2e,0x76,0x69,0x65,0x77, - 0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63, + 0x68,0x6c,0x69,0x63,0x6b,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x63,0x6f,0x73,0x54,0x68,0x65, + 0x74,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x46,0x30,0x29,0x0a,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20,0x2b,0x20,0x28, + 0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x46, + 0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x72,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a, + 0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54, + 0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c, + 0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69, + 0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69, + 0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69, + 0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x44,0x69, + 0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x26,0x20,0x4e,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x48,0x2c,0x20,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x26,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x36,0x20,0x3d,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68, + 0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x5f,0x34,0x30,0x20,0x3d,0x20,0x5f,0x33,0x36,0x20,0x2a,0x20,0x5f,0x33,0x36,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x36,0x20,0x3d, + 0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e, + 0x2c,0x20,0x48,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x39,0x20,0x3d,0x20,0x28,0x28,0x5f,0x34, + 0x36,0x20,0x2a,0x20,0x5f,0x34,0x36,0x29,0x20,0x2a,0x20,0x28,0x5f,0x34,0x30,0x20, + 0x2d,0x20,0x31,0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x34,0x30,0x20,0x2f,0x20, + 0x28,0x28,0x33,0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34, + 0x31,0x31,0x31,0x33,0x32,0x38,0x31,0x32,0x35,0x20,0x2a,0x20,0x5f,0x35,0x39,0x29, + 0x20,0x2a,0x20,0x5f,0x35,0x39,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74, + 0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72, + 0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47, + 0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47, + 0x58,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x26,0x20,0x4e,0x64,0x6f,0x74,0x56,0x2c,0x20,0x74,0x68,0x72, + 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26, + 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x32,0x20,0x3d,0x20,0x72,0x6f, + 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x38,0x20,0x3d,0x20,0x28, + 0x5f,0x37,0x32,0x20,0x2a,0x20,0x5f,0x37,0x32,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31, + 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4e, + 0x64,0x6f,0x74,0x56,0x20,0x2f,0x20,0x28,0x28,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2a, + 0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x37,0x38,0x29,0x29,0x20,0x2b,0x20, + 0x5f,0x37,0x38,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, + 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, + 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47,0x65,0x6f,0x6d, + 0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x74,0x68,0x72,0x65,0x61,0x64, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4e, + 0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x56,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4c, + 0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x26,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64, + 0x6f,0x74,0x28,0x4e,0x2c,0x20,0x56,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74, + 0x28,0x4e,0x2c,0x20,0x4c,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20, + 0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79, + 0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x20,0x2a,0x20,0x47, + 0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47, + 0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d, + 0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d, + 0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61, + 0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e, + 0x74,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63, + 0x6f,0x6e,0x66,0x69,0x67,0x26,0x20,0x5f,0x32,0x31,0x35,0x20,0x5b,0x5b,0x62,0x75, + 0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x61,0x6e,0x74,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x66,0x73,0x5f,0x70,0x61, + 0x72,0x61,0x6d,0x73,0x26,0x20,0x5f,0x33,0x31,0x33,0x20,0x5b,0x5b,0x62,0x75,0x66, + 0x66,0x65,0x72,0x28,0x31,0x29,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20, + 0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x35,0x30, + 0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x6e,0x64,0x28,0x69,0x6e,0x2e, + 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x77,0x20,0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69, + 0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, + 0x73,0x20,0x3d,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37, + 0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31, + 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65, + 0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x26,0x20,0x31,0x29, + 0x20,0x21,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20, + 0x31,0x29,0x20,0x26,0x20,0x31,0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30, + 0x37,0x38,0x37,0x34,0x30,0x31,0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35,0x30,0x31, + 0x35,0x38,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x66, + 0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x35,0x29, + 0x20,0x26,0x20,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35,0x37, + 0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33,0x32, + 0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32, + 0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d, + 0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, + 0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29, + 0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36, + 0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x63,0x6f,0x6c,0x6f, + 0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30, + 0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31, + 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f, + 0x31,0x39,0x37,0x20,0x3d,0x20,0x28,0x69,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x2e, + 0x78,0x79,0x7a,0x20,0x2a,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x29, + 0x20,0x2a,0x20,0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x20,0x5f,0x32,0x30,0x32,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x31,0x31,0x20,0x3d,0x20,0x66,0x61,0x73, + 0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e, + 0x63,0x61,0x6d,0x20,0x2d,0x20,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32, + 0x32,0x30,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61, + 0x6c,0x69,0x7a,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x31,0x35, + 0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x32,0x35,0x20, + 0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a, + 0x65,0x28,0x5f,0x32,0x31,0x31,0x20,0x2b,0x20,0x5f,0x32,0x32,0x30,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20, + 0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28, + 0x5f,0x32,0x32,0x35,0x2c,0x20,0x5f,0x32,0x31,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30, + 0x35,0x39,0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35, + 0x29,0x2c,0x20,0x69,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x2c, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f, + 0x32,0x34,0x32,0x20,0x3d,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68, + 0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x32,0x30,0x32,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x32,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20, + 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20, + 0x5f,0x32,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x32,0x31,0x31,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x32,0x32,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20, + 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x37,0x20,0x3d,0x20,0x66,0x61,0x73,0x74, + 0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x30,0x32,0x2c,0x20, + 0x5f,0x32,0x32,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x32, + 0x34,0x32,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74, + 0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x69,0x6e,0x2e,0x63,0x6f,0x6c, + 0x6f,0x72,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34, + 0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28, + 0x5f,0x32,0x34,0x32,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75, + 0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69, + 0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a, + 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x30,0x32,0x2c,0x20,0x5f,0x32, + 0x31,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37, + 0x37,0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37, + 0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36, + 0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20, + 0x5f,0x32,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x33,0x31,0x33,0x2e,0x76,0x69,0x65,0x77,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d, + 0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x28,0x69,0x6e,0x2e,0x63,0x6f, - 0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x37,0x37, - 0x20,0x2a,0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34, - 0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2b,0x20, - 0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36, - 0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x29,0x20,0x2b,0x20, - 0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x33,0x31, - 0x33,0x2e,0x76,0x69,0x65,0x77,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x33, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x28,0x28,0x69,0x6e,0x2e,0x63,0x6f,0x6c, - 0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x30,0x32,0x20, + 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x28,0x5f,0x32,0x30,0x32,0x20, 0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, - 0x30,0x2e,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x37,0x37,0x20, - 0x2a,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30, - 0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x20,0x2b, - 0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38, - 0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x29,0x20,0x2b,0x20,0x5f, - 0x31,0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x30,0x2e,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x33,0x31, + 0x33,0x2e,0x76,0x69,0x65,0x77,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x32, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67, 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, - 0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e, - 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x2e,0x76,0x74,0x72, - 0x69,0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20,0x3e,0x20,0x30,0x2e,0x35, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x6f,0x75, - 0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x34,0x30, - 0x32,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x33,0x39,0x38,0x2e,0x78,0x79,0x7a, - 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e, - 0x30,0x2c,0x20,0x30,0x2e,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, - 0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f, - 0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20, - 0x3d,0x20,0x5f,0x34,0x30,0x32,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x28,0x69,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20, + 0x28,0x28,0x5f,0x32,0x37,0x37,0x20,0x2a,0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30, + 0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36, + 0x32,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32, + 0x35,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x5f,0x33,0x31,0x33,0x2e,0x76,0x69,0x65,0x77,0x5f,0x6d,0x6f,0x64, + 0x65,0x20,0x3d,0x3d,0x20,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63, + 0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x28,0x28, + 0x69,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28, + 0x28,0x5f,0x32,0x30,0x32,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x28, + 0x28,0x5f,0x32,0x37,0x37,0x20,0x2a,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30, + 0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30, + 0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35, + 0x29,0x29,0x20,0x2b,0x20,0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75, + 0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x34,0x28,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x5f,0x31, + 0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x34,0x20,0x5f,0x33,0x39,0x36,0x20,0x3d,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x20,0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x5f,0x33,0x39,0x36, + 0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x33,0x31,0x33,0x2e,0x62,0x72,0x69,0x67, + 0x68,0x74,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e, + 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f, + 0x33,0x39,0x38,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66, + 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x33, + 0x39,0x38,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x33,0x39, + 0x38,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x2e, + 0x76,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20,0x3e,0x20, + 0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x34,0x31,0x34,0x20,0x3d, + 0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x5f,0x34,0x31,0x38,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x34,0x31,0x34,0x2e, + 0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x2c, + 0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x2e,0x79,0x20,0x3d,0x20,0x5f,0x34,0x30,0x32,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, + 0x2e,0x78,0x20,0x3d,0x20,0x5f,0x34,0x31,0x38,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x34,0x30,0x32,0x2e,0x7a,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x34,0x31,0x38,0x2e,0x79,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67, + 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x34,0x31,0x38,0x2e, + 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, ]; trixel_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc: sg_shader_desc; @@ -1543,9 +1652,9 @@ trixel_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.attrs[3].glsl_name = "inst_col"; desc.uniform_blocks[0].stage = .VERTEX; desc.uniform_blocks[0].layout = .STD140; - desc.uniform_blocks[0].size = 80; + desc.uniform_blocks[0].size = 160; desc.uniform_blocks[0].glsl_uniforms[0].type = .FLOAT4; - desc.uniform_blocks[0].glsl_uniforms[0].array_count = 5; + desc.uniform_blocks[0].glsl_uniforms[0].array_count = 10; desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "vs_params"; desc.uniform_blocks[1].stage = .FRAGMENT; desc.uniform_blocks[1].layout = .STD140; @@ -1598,9 +1707,12 @@ trixel_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.uniform_blocks[2].stage = .FRAGMENT; desc.uniform_blocks[2].layout = .STD140; desc.uniform_blocks[2].size = 16; - desc.uniform_blocks[2].glsl_uniforms[0].type = .INT4; - desc.uniform_blocks[2].glsl_uniforms[0].array_count = 1; - desc.uniform_blocks[2].glsl_uniforms[0].glsl_name = "trixel_fs_params"; + desc.uniform_blocks[2].glsl_uniforms[0].type = .INT; + desc.uniform_blocks[2].glsl_uniforms[0].array_count = 0; + desc.uniform_blocks[2].glsl_uniforms[0].glsl_name = "_313.view_mode"; + desc.uniform_blocks[2].glsl_uniforms[1].type = .FLOAT; + desc.uniform_blocks[2].glsl_uniforms[1].array_count = 0; + desc.uniform_blocks[2].glsl_uniforms[1].glsl_name = "_313.brightness"; case .GLES3; desc.vertex_func.source = xx *vs_trixel_source_glsl300es; desc.vertex_func.entry = "main"; @@ -1616,9 +1728,9 @@ trixel_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.attrs[3].glsl_name = "inst_col"; desc.uniform_blocks[0].stage = .VERTEX; desc.uniform_blocks[0].layout = .STD140; - desc.uniform_blocks[0].size = 80; + desc.uniform_blocks[0].size = 160; desc.uniform_blocks[0].glsl_uniforms[0].type = .FLOAT4; - desc.uniform_blocks[0].glsl_uniforms[0].array_count = 5; + desc.uniform_blocks[0].glsl_uniforms[0].array_count = 10; desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "vs_params"; desc.uniform_blocks[1].stage = .FRAGMENT; desc.uniform_blocks[1].layout = .STD140; @@ -1671,9 +1783,12 @@ trixel_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.uniform_blocks[2].stage = .FRAGMENT; desc.uniform_blocks[2].layout = .STD140; desc.uniform_blocks[2].size = 16; - desc.uniform_blocks[2].glsl_uniforms[0].type = .INT4; - desc.uniform_blocks[2].glsl_uniforms[0].array_count = 1; - desc.uniform_blocks[2].glsl_uniforms[0].glsl_name = "trixel_fs_params"; + desc.uniform_blocks[2].glsl_uniforms[0].type = .INT; + desc.uniform_blocks[2].glsl_uniforms[0].array_count = 0; + desc.uniform_blocks[2].glsl_uniforms[0].glsl_name = "_313.view_mode"; + desc.uniform_blocks[2].glsl_uniforms[1].type = .FLOAT; + desc.uniform_blocks[2].glsl_uniforms[1].array_count = 0; + desc.uniform_blocks[2].glsl_uniforms[1].glsl_name = "_313.brightness"; case .METAL_MACOS; desc.vertex_func.source = xx *vs_trixel_source_metal_macos; desc.vertex_func.entry = "main0"; @@ -1685,7 +1800,7 @@ trixel_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.attrs[3].base_type = .FLOAT; desc.uniform_blocks[0].stage = .VERTEX; desc.uniform_blocks[0].layout = .STD140; - desc.uniform_blocks[0].size = 80; + desc.uniform_blocks[0].size = 160; desc.uniform_blocks[0].msl_buffer_n = 0; desc.uniform_blocks[1].stage = .FRAGMENT; desc.uniform_blocks[1].layout = .STD140; diff --git a/src/shaders/shader_debugline.glsl b/src/shaders/shader_debugline.glsl new file mode 100644 index 0000000..d6c04aa --- /dev/null +++ b/src/shaders/shader_debugline.glsl @@ -0,0 +1,30 @@ +@vs vs_debugline + +in vec3 a_pos; +in vec4 a_col; + +layout(binding=0) uniform debugline_vs_params { + mat4 mvp; +}; + +out vec4 v_col; + +void main() { + gl_Position = mvp * vec4(a_pos, 1.0); + v_col = a_col; +} + +@end + +@fs fs_debugline + +in vec4 v_col; +out vec4 frag_color; + +void main() { + frag_color = v_col; +} + +@end + +@program debugline vs_debugline fs_debugline diff --git a/src/shaders/shader_plane.glsl b/src/shaders/shader_plane.glsl index 1e1dd62..9968141 100644 --- a/src/shaders/shader_plane.glsl +++ b/src/shaders/shader_plane.glsl @@ -122,21 +122,21 @@ void main() { vec3 halfway_dir = normalize(light_dir + view_dir); float diffuse = max(0.0, dot(normal, light_dir)); - float spec = pow(max(0.0, dot(halfway_dir, normal)), 32); - float fresnel = min(1.0, fresnelSchlick(dot(view_dir, vec3(0.0, 1.0, 0.0))).x + 0.3); + float spec = pow(max(0.0, dot(halfway_dir, normal)), max(shininess, 1.0)); + float fresnel = min(1.0, fresnelSchlick(max(0.0, dot(view_dir, normal))).x + 0.45); - vec4 shadow_proj_pos = mvp_shadow * vec4(pos.xyz, 1.0); + vec4 shadow_proj_pos = mvp_shadow * vec4(floor(pos.xyz * 16.0) / 16.0, 1.0); vec3 shadow_pos = shadow_proj_pos.xyz / shadow_proj_pos.w; shadow_pos = shadow_pos * 0.5 + 0.5; shadow_pos.z -= 0.001; float shadowp = texture(sampler2DShadow(shadow, plane_shadowsmp), shadow_pos); vec3 refracted_color = waterColor * diffuse * sunLightColor * sunIntensity * shadowp; - vec3 specular_highlight = sunLightColor * sunIntensity * spec * shadowp; + vec3 specular_highlight = sunLightColor * sunIntensity * spec * fresnel * shadowp; vec2 screen_uv = gl_FragCoord.xy / vec2(screen_w, screen_h); screen_uv.y = 1.0 - screen_uv.y; - vec2 distortion = normal.xz * 0.005; + vec2 distortion = normal.xz * 0.007; vec3 reflected_color = texture(sampler2D(reftex, refsmp), screen_uv + distortion).rgb; vec3 surface_color = mix(refracted_color, reflected_color, fresnel); diff --git a/src/shaders/shader_sky.glsl b/src/shaders/shader_sky.glsl index d7460d0..e57eb49 100644 --- a/src/shaders/shader_sky.glsl +++ b/src/shaders/shader_sky.glsl @@ -87,16 +87,28 @@ vec3 sky(vec3 skypos, vec3 sunpos) { vec3 skyGradient = mix(baseSky, topSky, clamp(skypos.y * 2.0, 0.0, 0.7)); - vec3 final = skyGradient; - final += sunHalo.xyz * clamp((sDist - 0.97) * 10.0, 0.0, 0.8) * 1.0; + // Sun local frame — used for both halo and disk + vec3 sunDir = normalize(sunpos); + vec3 sunRight = normalize(cross(sunDir, vec3(0.0, 1.0, 0.0))); + vec3 sunUp = normalize(cross(sunRight, sunDir)); + vec3 sd = normalize(skypos) - sunDir * sDist; + float dx = dot(sd, sunRight); + float dy = dot(sd, sunUp); + float squareDist = max(abs(dx), abs(dy)); - // Sun disk - if(sDist > 0.9995) { + vec3 final = skyGradient; + + // Sun halo (square, smooth falloff) + float haloFactor = clamp((0.25 - squareDist) * 6.0, 0.0, 1.0); + final += sunHalo.xyz * haloFactor * haloFactor; + + // Sun square + if(squareDist < 0.032) { final = sunDisk.xyz * 3.0; } // Horizon halo - final += mix(horizonHalo.xyz, vec3(0.0,0.0,0.0), clamp(abs(npos.y) * 80.0, 0.0, 1.0)) * 0.1; + final += mix(horizonHalo.xyz, vec3(0.0,0.0,0.0), clamp(abs(npos.y) * 20.0, 0.0, 1.0)) * 0.8; final = vec3(final); diff --git a/src/shaders/shader_trile.glsl b/src/shaders/shader_trile.glsl index f08dc26..53776d4 100644 --- a/src/shaders/shader_trile.glsl +++ b/src/shaders/shader_trile.glsl @@ -102,6 +102,7 @@ layout(binding=3) uniform trile_fs_params { vec3 ambient_color; int is_preview; vec3 rdm_tint; + float rdm_diff_saturation; }; layout(binding = 0) uniform texture2D triletex; @@ -320,14 +321,15 @@ ivec2 rdm_face_pixel_offset(vec4 atlas_rect, int face, int rdmSize) { vec3 sample_rdm(vec3 N, vec3 V, vec3 rdm_center, vec3 diff, int roughness, ivec3 local_pos) { int face = rdm_index_from_normal(N); - int rdmSizeInt = int(roughness_to_rdm_size(roughness)); - float rdmSize = float(rdmSizeInt); vec4 atlas_rect = rdm_get_atlas_rect(local_pos, roughness); if (atlas_rect.z <= 0.0) return vec3(1.0, 0.0, 1.0); // No data - magenta + ivec2 atlasTexSize = textureSize(sampler2D(rdm_atlas, rdmsmp), 0); + int rdmSizeInt = int(atlas_rect.z * float(atlasTexSize.x)) / 2; + float rdmSize = float(rdmSizeInt); + ivec2 faceOffset = rdm_face_pixel_offset(atlas_rect, face, rdmSizeInt); - // Get 2D UV on this face from the fragment's trile-space position vec2 uv; if (face == 0 || face == 1) { // +Y / -Y uv = vec2(ipos.x, ipos.z); @@ -337,16 +339,9 @@ vec3 sample_rdm(vec3 N, vec3 V, vec3 rdm_center, vec3 diff, int roughness, ivec3 uv = vec2(ipos.z, ipos.y); } - // Step 1: flat UV sampling (known working) - // ivec2 texCoord = ivec2(faceOffset.x + int(uv.x * rdmSize), - // faceOffset.y + int(uv.y * rdmSize)); - // vec4 rdmSample = texelFetch(sampler2D(rdm_atlas, rdmsmp), texCoord, 0); - // return vec3(rdmSample.a * 0.2); - vec3 reflected = normalize(reflect(V, N)); if (roughness > 1) { - // Low-res mips: sample at fixed distance with bilinear filtering vec3 samplePos = normalize(diff + 2.0 * reflected); vec2 hemiUV = rdm_get_hemioct(samplePos, face, vec2(0.0)); vec2 atlasSize = vec2(textureSize(sampler2D(rdm_atlas, rdmsmp), 0)); @@ -354,7 +349,6 @@ vec3 sample_rdm(vec3 N, vec3 V, vec3 rdm_center, vec3 diff, int roughness, ivec3 return texture(sampler2D(rdm_atlas, rdmsmp), texUV).rgb; } - // High-res: ray march with depth comparison float maxDist = 20.0; int steps = 40; for (int i = 0; i < steps; i++) { @@ -363,9 +357,9 @@ vec3 sample_rdm(vec3 N, vec3 V, vec3 rdm_center, vec3 diff, int roughness, ivec3 if (dot(samplePos, N) < 0.0) continue; vec2 hemiUV = rdm_get_hemioct(normalize(samplePos), face, vec2(0.0)); - ivec2 texCoord = ivec2(faceOffset.x + int(hemiUV.x * rdmSize), - faceOffset.y + int(hemiUV.y * rdmSize)); - vec4 rdmSample = texelFetch(sampler2D(rdm_atlas, rdmsmp), texCoord, 0); + vec2 atlasSize = vec2(textureSize(sampler2D(rdm_atlas, rdmsmp), 0)); + vec2 texCoord = (vec2(faceOffset) + hemiUV * rdmSize) / atlasSize; + vec4 rdmSample = texture(sampler2D(rdm_atlas, rdmsmp), texCoord, 0); float depth = rdmSample.a; float dist = length(samplePos); float stepSize = maxDist / float(steps); @@ -569,6 +563,8 @@ void main() { // Indirect diffuse (interpolated from neighbor probes) vec3 indirectDiff = sample_rdm_diff(N, vpos - hemispherePos, local) * rdm_tint; + float diffLuma = dot(indirectDiff, vec3(0.2126, 0.7152, 0.0722)); + indirectDiff = mix(vec3(diffLuma), indirectDiff, rdm_diff_saturation); vec3 kDiff = 1.0 - Frough; kDiff *= 1.0 - metallic; light += (kDiff * indirectDiff / PI * albedo) * ssao_sample * rdm_diff_scale; diff --git a/src/shaders/shader_trixel.glsl b/src/shaders/shader_trixel.glsl index 7ed2ebb..942e598 100644 --- a/src/shaders/shader_trixel.glsl +++ b/src/shaders/shader_trixel.glsl @@ -8,6 +8,8 @@ in vec4 inst_col; layout(binding=0) uniform vs_params { mat4 mvp; vec3 camera; + vec3 world_offset; + mat4 tile_rotation; }; out vec4 color; @@ -18,8 +20,10 @@ out float vtrixel_state; void main() { vec3 instancepos = inst.xyz; - gl_Position = mvp * (vec4(position.xyz + instancepos, 1.0)); - fnormal = normal; + vec3 local = position.xyz + instancepos; + vec3 rotated = (tile_rotation * vec4(local - 0.5, 0.0)).xyz + 0.5; + gl_Position = mvp * vec4(rotated + world_offset, 1.0); + fnormal = tile_rotation * vec4(normal.xyz, 0.0); color = inst_col; pos = gl_Position; cam = camera; @@ -31,6 +35,7 @@ void main() { layout(binding=2) uniform trixel_fs_params { int view_mode; + float brightness; }; layout(binding=1) uniform trixel_world_config { @@ -154,6 +159,8 @@ void main() { frag_color = vec4(light + emissive, 1.0); } + frag_color.rgb *= brightness; + // Overlay highlight for hovered / selected / brush-radius trixels in all view modes. // State is encoded per-instance in inst.w: 0=normal, 1=hovered, 2=selected, 3=in-brush. if (vtrixel_state > 0.5) { diff --git a/src/trile.jai b/src/trile.jai index e26a210..fc85f16 100644 --- a/src/trile.jai +++ b/src/trile.jai @@ -85,6 +85,42 @@ get_trile :: (name: string) -> (*Trile, success: bool) { return trileptr, true; } +rename_trile :: (old_name: string, new_name: string) { + trile := get_trile(old_name); + if !trile return; + was_current := editor_current_trile != null && editor_current_trile.name == old_name; + gfx_exists, old_gfx := table_find(*trile_gfx_table, old_name); + if gfx_exists { + sg_destroy_buffer(old_gfx.vertex_buffer); + sg_destroy_buffer(old_gfx.normal_buffer); + sg_destroy_buffer(old_gfx.centre_buffer); + sg_destroy_image(old_gfx.trixel_colors); + array_reset(*old_gfx.vertices); + table_remove(*trile_gfx_table, old_name); + } + copy := trile.*; + copy.name = sprint("%", new_name); + set_trile(copy.name, copy); + table_remove(*trile_table, old_name); + if was_current editor_current_trile = table_find_pointer(*trile_table, new_name); +} + +delete_trile :: (name: string) { + gfx_exists, old_gfx := table_find(*trile_gfx_table, name); + if gfx_exists { + sg_destroy_buffer(old_gfx.vertex_buffer); + sg_destroy_buffer(old_gfx.normal_buffer); + sg_destroy_buffer(old_gfx.centre_buffer); + sg_destroy_image(old_gfx.trixel_colors); + array_reset(*old_gfx.vertices); + table_remove(*trile_gfx_table, name); + } + table_remove(*trile_table, name); + if editor_current_trile != null && editor_current_trile.name == name { + editor_current_trile = null; + } +} + get_trile_roughness_set :: (trile_name: string) -> u8 { trile, ok := get_trile(trile_name); if !ok then return 1 << 7; @@ -101,6 +137,7 @@ get_trile_roughness_set :: (trile_name: string) -> u8 { return mask; } + lstrile :: () -> string { count := 0; for v : trile_table { @@ -261,16 +298,3 @@ material_from_rgba :: (r: u8, g: u8, b: u8, a: u8) -> Material { return mat; } -draw_trile_picker :: (r_in: GR.Rect, theme: *GR.Overall_Theme) { - r := r_in; - tpt := get_trile_table_ptr(); - r.h = ui_h(4,4); - count := 0; - for v : tpt { - if GR.button(r, v.name, *t_button_selectable(theme, editor_current_trile != null && editor_current_trile.name == v.name), count) { - editor_current_trile = get_trile(v.name); - } - count += 1; - r.y += r.h; - } -} diff --git a/src/ui/ui.jai b/src/ui/ui.jai index 869aac6..ee9e15f 100644 --- a/src/ui/ui.jai +++ b/src/ui/ui.jai @@ -368,7 +368,8 @@ tick_ui :: () { vw = (cast(float) w)/100.0; vh = (cast(float) h)/100.0; array_reset_keeping_memory(*ui_events); - GR.ui_per_frame_update(1, xx w, xx h, get_time()); + _, is_active := GR.ui_per_frame_update(1, xx w, xx h, get_time()); + ui_keyboard_captured = is_active && !GR.is_grabbing(); #if !FLAG_RELEASE_BUILD { tick_editor_ui(); @@ -377,6 +378,7 @@ tick_ui :: () { } } +ui_keyboard_captured : bool; checkboxTest : bool = false; get_font_at_size :: (pixel_height: int) -> *Font { diff --git a/src/world.jai b/src/world.jai index ec8ab44..be0c3f6 100644 --- a/src/world.jai +++ b/src/world.jai @@ -70,12 +70,45 @@ Editor_Note :: struct { text : string; } +Rdm_Instance_Override :: struct { + x : s32; + y : s32; + z : s32; + size_override : s32; + quality_override : s32; +} + World :: struct { name : string; conf : World_Config; chunks : Table(Chunk_Key, Chunk, chunk_key_hash, chunk_key_compare); emitter_instances : [..]Particle_Emitter_Instance; notes : [..]Editor_Note; + rdm_overrides : [..]Rdm_Instance_Override; +} + +get_rdm_instance_override :: (world: *World, x: s32, y: s32, z: s32) -> (size_override: s32, quality_override: s32) { + for world.rdm_overrides { + if it.x == x && it.y == y && it.z == z then return it.size_override, it.quality_override; + } + return 0, 0; +} + +set_rdm_instance_override :: (world: *World, x: s32, y: s32, z: s32, size_override: s32, quality_override: s32) { + for *world.rdm_overrides { + if it.x == x && it.y == y && it.z == z { + if size_override == 0 && quality_override == 0 { + array_ordered_remove_by_index(*world.rdm_overrides, it_index); + } else { + it.size_override = size_override; + it.quality_override = quality_override; + } + return; + } + } + if size_override != 0 || quality_override != 0 { + array_add(*world.rdm_overrides, .{x=x, y=y, z=z, size_override=size_override, quality_override=quality_override}); + } } // Convert a world-space integer position to chunk coordinate. @@ -191,12 +224,13 @@ WORLD_MAGIC :: u32.[0x4C575254][0]; // "TRWL" as little-endian u32 WORLD_VERSION :: cast(u16) 3; World_Json :: struct { - version : s32; - name : string; - config : World_Json_Config; - chunks : [..]World_Json_Chunk; - emitters : [..]World_Json_Emitter; - notes : [..]World_Json_Note; + version : s32; + name : string; + config : World_Json_Config; + chunks : [..]World_Json_Chunk; + emitters : [..]World_Json_Emitter; + notes : [..]World_Json_Note; + rdm_overrides : [..]World_Json_Rdm_Override; } World_Json_Config :: struct { @@ -214,6 +248,8 @@ World_Json_Config :: struct { animatePlaneHeight : s32; waterColor : [3]float; deepColor : [3]float; + waterShininess : float; + rdmDiffSaturation : float; } World_Json_Chunk :: struct { @@ -229,6 +265,7 @@ World_Json_Chunk :: struct { World_Json_Emitter :: struct { definition_name : string; position : [3]float; + offset : [3]float; } World_Json_Note :: struct { @@ -236,6 +273,14 @@ World_Json_Note :: struct { position : [3]s32; } +World_Json_Rdm_Override :: struct { + x : s32; + y : s32; + z : s32; + size_override : s32; + quality_override : s32; +} + // World_Config serialized as a fixed-size binary blob. // We serialize it field-by-field to avoid padding issues. World_Config_Binary :: struct { @@ -251,8 +296,10 @@ World_Config_Binary :: struct { has_clouds: s32; plane_height: float; animate_plane_height: s32; - water_color: [3]float; - deep_color: [3]float; + water_color: [3]float; + deep_color: [3]float; + water_shininess: float; + rdm_diff_saturation: float; } world_config_to_binary :: (conf: *World_Config) -> World_Config_Binary { @@ -269,8 +316,10 @@ world_config_to_binary :: (conf: *World_Config) -> World_Config_Binary { b.has_clouds = conf.hasClouds; b.plane_height = conf.planeHeight; b.animate_plane_height = conf.animatePlaneHeight; - b.water_color = conf.waterColor.component; - b.deep_color = conf.deepColor.component; + b.water_color = conf.waterColor.component; + b.deep_color = conf.deepColor.component; + b.water_shininess = conf.waterShininess; + b.rdm_diff_saturation = conf.rdmDiffSaturation; return b; } @@ -290,6 +339,8 @@ world_config_from_binary :: (b: *World_Config_Binary) -> World_Config { conf.animatePlaneHeight = b.animate_plane_height; conf.waterColor.component = b.water_color; conf.deepColor.component = b.deep_color; + conf.waterShininess = b.water_shininess; + conf.rdmDiffSaturation = b.rdm_diff_saturation; return conf; } @@ -353,6 +404,8 @@ world_config_to_json :: (conf: *World_Config) -> World_Json_Config { jc.animatePlaneHeight = conf.animatePlaneHeight; jc.waterColor = conf.waterColor.component; jc.deepColor = conf.deepColor.component; + jc.waterShininess = conf.waterShininess; + jc.rdmDiffSaturation = conf.rdmDiffSaturation; return jc; } @@ -372,6 +425,8 @@ world_config_from_json :: (jc: *World_Json_Config) -> World_Config { conf.animatePlaneHeight = jc.animatePlaneHeight; conf.waterColor.component = jc.waterColor; conf.deepColor.component = jc.deepColor; + conf.waterShininess = ifx jc.waterShininess > 0 then jc.waterShininess else 64.0; + conf.rdmDiffSaturation = ifx jc.rdmDiffSaturation > 0 then jc.rdmDiffSaturation else 1.0; return conf; } @@ -449,6 +504,7 @@ save_world :: (world: *World) -> (json: string, chunks_bin: string) { je: World_Json_Emitter; je.definition_name = inst.definition_name; je.position = inst.position.component; + je.offset = inst.offset.component; array_add(*wj.emitters, je); } @@ -459,6 +515,10 @@ save_world :: (world: *World) -> (json: string, chunks_bin: string) { array_add(*wj.notes, jn); } + for ov: world.rdm_overrides { + array_add(*wj.rdm_overrides, .{x=ov.x, y=ov.y, z=ov.z, size_override=ov.size_override, quality_override=ov.quality_override}); + } + json_str := Jaison.json_write_string(wj, " "); return json_str, builder_to_string(*bin_builder); } @@ -512,6 +572,7 @@ load_world_from_json :: (json_str: string, chunk_bin: []u8) -> (World, bool) { inst: Particle_Emitter_Instance; inst.definition_name = sprint("%", je.definition_name); inst.position.component = je.position; + inst.offset.component = je.offset; inst.active = true; array_add(*world.emitter_instances, inst); } @@ -523,6 +584,10 @@ load_world_from_json :: (json_str: string, chunk_bin: []u8) -> (World, bool) { array_add(*world.notes, note); } + for jov: wj.rdm_overrides { + array_add(*world.rdm_overrides, .{x=jov.x, y=jov.y, z=jov.z, size_override=jov.size_override, quality_override=jov.quality_override}); + } + return world, true; } @@ -651,6 +716,8 @@ World_Config :: struct { animatePlaneHeight : s32 = 1; @Slider,0,1,1 waterColor : Vector3 = .{1.0, 1.0, 1.0}; @Color // @ToDo: sensible default values. deepColor : Vector3 = .{1.0, 1.0, 1.0}; @Color // @ToDo: sensible default values. + waterShininess : float = 64.0; @Slider,1,512,8 + rdmDiffSaturation : float = 1.0; @Slider,0,2,0.05 // ambientColor : Vector3 = .{1.0, 1.0, 1.0}; @Color // ambientIntensity : float = 0.3; @Slider,0,3,0.1 @@ -662,10 +729,16 @@ World_Config :: struct { world_config_to_shader_type :: (wc: *World_Config, data: *$T) { generate_copy_code :: () -> string { builder : String_Builder; - ti := type_info(World_Config); - for ti.members { - if it.type == type_info(Vector3) then print_to_builder(*builder, "data.% = wc.%.component;\n", it.name, it.name); - else print_to_builder(*builder, "data.% = wc.%;\n", it.name, it.name); + ti_src := type_info(World_Config); + ti_dst := type_info(T); + for src_member: ti_src.members { + has_field := false; + for dst_member: ti_dst.members { + if dst_member.name == src_member.name { has_field = true; break; } + } + if !has_field continue; + if src_member.type == type_info(Vector3) then print_to_builder(*builder, "data.% = wc.%.component;\n", src_member.name, src_member.name); + else print_to_builder(*builder, "data.% = wc.%;\n", src_member.name, src_member.name); } return builder_to_string(*builder); }