From acf7d9601fcfbcbf0ed6c1c4333378d702f2ce7f Mon Sep 17 00:00:00 2001 From: heroesiiifan Date: Sun, 4 Jul 2021 16:04:11 +0200 Subject: [PATCH] v1.8 --- README.md | 6 +- additional_files/hd/H3.NoToLower.dll | Bin 0 -> 136704 bytes scripts/build.py | 5 +- scripts/build_hd.py | 2 + scripts/build_vcmi.py | 2 +- src/NoToLower/NoToLower.filters | 30 +++++++ src/NoToLower/NoToLower.user | 4 + src/NoToLower/NoToLower.vcxproj | 126 +++++++++++++++++++++++++++ src/NoToLower/include/NoToLower.hpp | 47 ++++++++++ src/NoToLower/src/NoToLower.cpp | 11 +++ src/NoToLower/src/NoToLowerMain.cpp | 16 ++++ 11 files changed, 244 insertions(+), 5 deletions(-) create mode 100644 additional_files/hd/H3.NoToLower.dll create mode 100644 src/NoToLower/NoToLower.filters create mode 100644 src/NoToLower/NoToLower.user create mode 100644 src/NoToLower/NoToLower.vcxproj create mode 100644 src/NoToLower/include/NoToLower.hpp create mode 100644 src/NoToLower/src/NoToLower.cpp create mode 100644 src/NoToLower/src/NoToLowerMain.cpp diff --git a/README.md b/README.md index 84df2b9..a2b7dfb 100644 --- a/README.md +++ b/README.md @@ -61,14 +61,16 @@ Inoffizielle deutsche Übersetzung von Heroes III Complete Edition für VCMI / H ## Backlog / Todo Achtung: Übersetzungen in Textdateien in Kodierung CP1252 (in Notepad++: ANSI), NICHT UTF-8!!! ### Allgemein -* Deutsches Keyboard-Layout (hartcodiert; nur über Patch/Plugin anpassbar) -* Rohstoffe im rechten Quadrat (mit Texten) kleingeschrieben -> Lässt sich nicht über Textdateien ändern... tolower()!) +* Deutsches Keyboard-Layout (hartcodiert; nur über Patch/Plugin anpassbar) -> ggf. Plugin in Zukunft... ### HotA * SpTraits.txt ggf. noch von DeepL optimieren * .DAT übersetzen (hota/txt) - nur Map-Editor übrig... ## Changelog +### 1.8 +* HD: NoToLower-Mod zum unterbinden der Kleinschreibung bei Ressourcen [H3-Plugins](https://github.com/RoseKavalier/H3Plugins) ([License](https://github.com/RoseKavalier/H3Plugins/blob/master/LICENSE)) + ### 1.7 * kleine Übersetzung-Fixes * Encoding-Fixes diff --git a/additional_files/hd/H3.NoToLower.dll b/additional_files/hd/H3.NoToLower.dll new file mode 100644 index 0000000000000000000000000000000000000000..0d426e80d73cd99288dc8ab15a8f3d0c3ca27093 GIT binary patch literal 136704 zcmeFa349bq8aF&iCNjuC1`Qe&B`PW!R5V@~(14CcFgiiN0}+tJ7*G%r!Nn*sL>b1c zsIcmS3Zm-)?#7!4VmKsGP!Y2$3hTxdwQ-`0ic4G~^Zox%bHPzi! z&s|SFb#!&%b@Oa#Hk-|kzd*odTY+Ex%a=59(t^ibdc4`i_G-uXk6n>+`TNHXExvhL z_LQlUZ<;#hmh7=(ZoPGKY4(ldv!|Bbntk)F*%x1VRrW2D$BjR&bLWG5>Y(TU_YYrg zek8NT_#4-0Z_O55-xKKeQltEKeQAySx?b8QzlXoX=b!%PzM8+|ck?6NY8K#kz`m|8 zZIxet%}4Tk*h~B!a`V_?!j9y`y)!jaa zBkw|17JkK{>+p^Pa*`P1pztc*`&nUfd+B6&K*XfEZyVz!Hl5%*k zb=;WJF*e)NXW{Nt#JFQQju@i0r>3o#0 z;}zt%*8k;`zNyouj>Wa;0y+_1Q^N(R%8j2i83ljrg2JOwjxszbs@y=_{r|+jP5ig> zPZ!v1J3l%XN$R*tY{3j%@!gzPS{W_BKVM#ly z_99pF5Rx1i!p?uRBDrk_9^C0f(&1KIPQ3-m6?fwD2PT)4Bl#c|$q_^GAoDFGJNV%I zn~^LaLBH^FSqXBtuRwA!Yuq^+$)(34x#w%#d;cOND?UeZ(HE_>M()Z> zk^Af$0$jRTWHFPv4Y<60CUW<7L-Nu@B&}0%@1!y$Lv|tgwF~a8*ofRKFC&@8!ml&g zK??rN+xcs#Rxh$6Zcnfmh--O&wN@M*6 z$h}QImi+-qxA$>x7h1{Aqk7=-*Nc(-@B=Qlk3;eZ%We5Da!31+XlTDXzx)iz6(sWH zGw}4{-bhZT2H#tU zl3$L%y>T>}Cr?B2?KoV%_6l;_*kFC7$Q?!{SIk1PoMQUs8YBbH#pTg`k#kfcS4{BV zld3xw;&SL{BpH84@-4Oc4)r#fMe;f$xr7uHor&arw)n$oj%%}#+cywN0gdqCYmxks zHJ&0FOPT!bpSXAAHAsH`8c7|itt6Cl&c)M|`;gmoJCaMuLh1tKzGGWmLD_$KDsoTI z>VCNqmkS8*Zp!&vw!E^jNakIH%ax}fcg`>*XXGQ9vq$OPYJK+UacApPi0eI-N%!=Jt~2;g2F&L&Z;;iR7CmBoDEb-O`ApU>}lw15o&6 zQg!lkxLp4vlD7xp^4lfIy=F&lGh2o4BqSSZaPJHH-Q^D=*>fH4-ALJYrYh#7Blqwm z&o10BUQ zn*0Z+A$gumKR6u^CND$o&yOQXzZRE$E^O_`?jNA7+Hl5a*L`48(3WYQ}KPk*9& zy_I6>_!g4+q~&fJ+#t&NE2<~|k4W+ePx_-{@5SYEn)e=RdW#3iNa}LyS|m$XBl)}) z$z!aRIRwe%Pmvt?A(Hf)k<|1;-JI@74q~&fpnm(&1a2xo?jE-8a;j_&iTsHi9dj4% zJ@z7!*<>N3Cz3&IN9nZ5&4(db$R6i)g8JfLNG@lKzmM+bxNGpBrW8p5_51P1NcO#h zq?XdXn6^8acJPP3NX}-nuc6ci6Zt{Ik*s+Pm*r*1T|EN1PY9}-&DlXyp0)z_PMeP8 zWM(v{#RvF;uk$n(6nV;YjJl<7}C+&hMKhw{PG zwB5T&^Pj1O)x0<55nSdGz}M_UkIg{RotK~7iU(6qL2@12N6UA}<=%kYG4$R$&qMO` zLL?t{#l8PgWnZz;Ej}OjE+z$+P{dz+j$}C zN!Ix6VkGYrB59%n9sDekbB5q)1VdzmS3**CCla zAIWv2k-SFRbsdQ!BWMSIISaY2WUx2e`PZas>Qdy&*-{G5!{wp0rau6;*aL3BQI-W9@CYynw9!LO;|<@E@Lr z+?$^wIeQEeS6|#)NQZK-8<%5fldZIp!Q(e61`*9%PbvIX*H`~e_yixWKlybKSVT6i#@+qund7fP8 z!B!!ip0h|#ZUj9tNxv7EN^Hds&KP4O;<+G8u(B?&{*Q!Mz-j@X&+YJ(5J{1C;+8<5 za=p`x=s|^Otv$BfEx@lWp?q_c><>TbA*y{Cgmf@w(gT@fA9X zv~^Hq<$8x1)e01#K{;YGrnfrF_y!Z4j*bd@;G=MbU1ka0Cd>G?H3Hx6AjV-WzJYe& z^%dEDwjsWP^8z2`?baGm$jtM4R!YjV+2L5GXD~q<;_e(R?#ry97JNzC>qy$uHlQH? z4k)MkrFATETA_pO5&$ zdDop5F1%CdZOh(Wj3j@r8s`jn>@#HsMn0c_|=WU1=BJ?!d5S+?KitOu#3E2i zq8`FBz8nIJ@2|7O(tDzixs_#Fpdj2Ng&yo**W-&mj4$vOL0G&a{qe#N$bU=adA3qV zWkX=+Lnx#bY=o6mu@WBns+sXRD&OL-t*nDIK>wr!USb@8!sB*WkqT)3fw4-aN+Zle zK^+mi_X0swWDj9VV|~N$$PPlD4y4#h8wr<4_?5_KI{>P9uqWknE-v*A5)u!Jd}hKJ zU?1Kp7V%Xxtz47hRhhSVX`gjjOPPM1jj=iC2tn-UtA##NQqG8;`%q_zUMI`ITk+^r5-M($~PV zl>f(Lvt|B)#VshqGX72gnDK@YK-{-JBp5y7b?6uqwZ=C1%=<$1RdW$D0=J>^z4TH{7&@DBI@D4!=QumwHmbrF;dvPg+#d)d~Y+Djb!EwGC~ zK1M0CK-S^9O#%^mtn?>?3EAz)c->L)3*PXtl^%g!JmZbj{)jMarOtZkRdCa8yz3t*a&=A z?GJpr-T~2W)l2HS+RIz9_^?9%;%Iow+5^uM4R1ty;Mt<#bxHuQ1oKr-r@F>1ff?I8 zrrn=sAv7`X{#=sjN^|ADKwG@;u*}R2D)uMHqBMJJ_~j|k^OZ`N?FP#-)^H+3#+wkL*m-b zkw}e{&P3_{D4knZ_B8$;0%m`jpxiyq+nH2dYj#+NkhoZi4tLv@uf#r*%)dQKsmxqQ zskBfkUA-JCF;`^wdhABt;q^F>H&Z)~l`KR>A#yF#<6mpg<0V#T$XlRDad`_O>DbP~ zpd-m-Daf#lf1<)~=Js}lCE*TXfxjDCRq?iyCfOgC=6GA=-3h?z-OV_f2D5|Bh>p_= z`gseReC{S+K`(D%qtD&wtzz|xx0u=%9dDa{W+-1eM&vKxnpgmxq5yX z@@M+5*K4@?*hg zQL>jUSimgYhuWj`Rf$K2mK9m!q1wq$;HdB$iT;_GAh_t~suxvh{Q z%k*>-dSo_R`}&RWsJ*jww3hKLTt)uX?0J!W2waxWp^XG0v)JdeP(pqMUy|{G`1c%w z!n(+DKv7j!rVj|j$?5|FILjCVg06}LtIpFhJquTo{}x|?9T9qq?_jNRMcW9QK>$f3 z6U+2;(&ZY4k#!TAc~C-@>B$p%LOL{tz{xGXhjnV&;9r(OCThMLlN5yx?fch6 zUgp;R7Zyq4WQBh#@pGQwBdsr$E2sn_x9{HO~6E39( z+mJb9SzdmzSIP_1@bK8)K^*;Jq&FM#yFhV1!HXB1I#XlrnnQD8u9o8Xp;~v%WoOXi~c&k{GMeAOY*bS z{so`%$Gu((H|_okla zgz;0`%nMY28i=tD2)~EV;@B4PT7jQ!z$c;z_{Z%B z_;r8N=|2R1CIbFiKKt$Ti`9-6_@S)|#Zz7!W78gdp2%F%Bk95#mIPUHc?rHIZu!slE z_3jqbg3UJzzXS;57{7n;+XO$B(slg$hL8)AVE^XDq}(U9PsKk0=_}F2b&o*SJD#De z)xO9&#p@kbuvx?B5_~58em)O4CraZBv#0drIHmpV0*PwA)kOvO!)4Tb>q7DCjx}03 z)QQ$!+0?`9Zjvn?zQU%Do4jsJxndr+#g|!;J50}eGgT;01kiUGVZ;r!=?>m-}4qMXB^S*1CZ$lTcp_`OxE?(c-r z)t*ni)x7Y@t;f9XdER03{axza^H`_ejdMV4w#xGPw!3rg>{wAgj{v7-lLv{0xF=3~ z{yFhMUiWODd-l$Uu_jSpbrxVU%&C?fhA6Hg?Zu~A4r_Vd1vAk4>#HUq-3^ZFt41TI zp?rPSP~?cypW%}{11ZU<%e*R9EkDI4l^?4;7)AH|;*~3(fC=3rP=9T`n~VPF5HxR9 z0q&5QJNw>EW{7d>X+H2QPp~}5I|$JbFV8E|9$dnmi4+JbOF*aj*Z8DpnnJ(lE#k=d zn;=#|)N>n_tNNj+Pf{b!Ga^8JUz@(AtJ=NTTa_i0I&9@xKH2BB!FFoI zRxh8FLGW4iZpLgJX^I)jp2SeisuG3Dwa72@Kz51=aM?STQg&zMTa>7+^fm+0X%UF( zWpRr#q)wb9j5=XPUFtgN(>4P9uV7QNa1L;WM7*-$Zf7=NZ>X}7t_@Ww_?ft&DiuG4 z8>-UqGf>A=sLh?fy zT6+}57XyAi@~edl-rrZAwm=KaItCO+cU1Wh734`zg8$){J9;Pue}gg zVe#m$rNrkD-_XJ};#nxbFEeu+MdBiEZ1Kk?1(Ez&)K0!6FyFs4jxEu4_4R?Lv zb2p$;lL&@bVT(0{o?I|y`B<9&09bjeM$394Jdn6B5kirN75Lkp68Po_=}7<<&h%*F zA1IQHGt2lU5*V-*I=o?XDz_;l@#bx;V(ls1NdfnO$K1I zy#9hBmgH3j%ZVL-Nc+eqoZalb1Kl>srWZTRu>g0?4e~q-*!1>cC7$1iCJ&T};=Rgp zr>*qxU{v496xI82yK&EEY`ehJ>hbouD&w`!6^iw^@Lr;j>0j$E(z1R!Df$r;@Es<7 zJ@S3rG;7GNQxJRYfK&;-B>GwWB=u8*2_&`szr+^k)}-EoSc*qxB|XfdiJXJrTW{C{ zgOA!Xa24ji`Y3#ueu~1Ei$~lyg~c=0Meiv4Bbi4Q{VH=p5OKg;rJ_PYf+AF7MIQ6u zpdgPh`gSOJJZ$)`I)%QHMU%>dg%h-oY=tjO{yM(nBk&!%Kk(H&j#oN!o*HG-euDj= zx0)OFX6fJXI4)0Cf-Kvs{}IrG=uI_3y-n=q&4jwJEPo$Cf#22#$#1%Kdzg}x2D3p3JxShg-pu{S zd;f$fkJZ75p~R+b#2rldW4e|vG~a#|0=de%R0d4irFew*?(%~buo_*tHf0E(<)Qs} zv_FPbE3$^G(BE=ifJ$@$iC?)gvlo@O%x@>)3cjyjVgtY1 z7R2TEYCIBtjTih){0>G#@@P+lRkq0QGpO``ir=G%%dFmJI--zz5djC)TZ~6w_d=t* ziQAEAZ62*Atgc0F-$12ya;wMNR_r;4*xXq#*Gz1vaDhD|7>25M!Rb}5?{1j(4JO_v zi9akI9ILKL4#Ut2J=$|&a4gEU5$Wd4>FSIhRDLo9Lmr<0AtKORB%N%=?f0smoe ztn!aa?cpEqpA?(lKjCN*(LbUAna(ki)$T@^PqX$wHAUI%t#Y6fLSdv*x0+2#ZmL!Ita~vHc?AGpbDgg+{OuBb?&noN zRZW2XS~kiz0+tK;-pG%cGG+X&<3^QE9(Bw3-(nk4&JZ_XFOb)x?UvW}d5Y&(ys_o= zJer#!uTl5Mme)u&Nt3(^?t{FJfk@)YYc{Zk?uAMEP%ExU{=gdGT;ET(0~MO|HoOaYe4M>> z{Mg^HF)>!-4YuEw_Q>;CP#luy6QKr7d7g(B7FV9%`6A?Lzb}bAS4xeLJbU{f&pZ$i zSDs7gEJE@;3l$7`<|F_6$g|foruP^1{=>3;egqy%QVsjOVouN@Ql1)YC$2mnhb`;& zd8XLsd?n8bSa6--jcuVfOP!EJ@4O!p-3b!nO7u$V01}nGUb9i$kmo$)e;;{X(;j(N zfWweH_uU&N&qrZ9aphSETMm=w%U~VtJ&`<*kUAlGZmNbn9|H+-({25;UjBTA8rAA1a-5-E7 z2ZMmP(tHW+#nj$=qJkmMKFI$*@?6m#d42&NL-M>~c9=X{AfdSOd=a)BCeI&~ea4sP zOsNr)=cIX%=UxyHSDs_2fsp?!MFm5ivylIN#Ql^QR1#+xb&QS8Oz)=py>~lcZKirgaZOrq6C+TU>c|hAoH5^9Ci)A1Titx-uLcou<@pxzgyflp3Whv;BESFTnQxY79YQ{dzR!Yfn4|gV_;W4e&mYKN@Jxbf zIG?~ct6*yM`2<~JpHHw6FihtYNGUm=!1Z~I^9deDX^ZC*OeJv;Wt?!a&9{~PO=*w3 z*4#sR88V{0jPo2~$Scly4hsRpBrhoy|2&6VP}-ur29mh_E3b;?BX^;~X>hqm2O-_Q==W`A~&ai^!sPU zqrX0%I}a7HmKX?oYw9J!wXP7$^yVpgWxt3_HtXkAgs82o!%>``;#s8KwCG?Q5~QeTAgoiw?*_VnvAUZpjvP#4}ls?hkTQT$-yol(d4q}NtpCPo? zz*K{iY1+ne_R(RpB`?yJW7~jbeGgXc!IvL)dhk{8A**&^h5lWjI7I(#w@13$or zzdis|WWhIqs0uJLGJOrrpt zhy{v5GFRO~Qn{4HLMOjC`lohW5GJ)NS0$K3b_(Pfgw{E%9I zbIy|elNiJP?-H)U+|e;O~IM#ou)YuVL>miR$ZMTd;JoXuhmeS)Qrd!X&&! zHPo|N?O>Bg8vJ7ZcB{F+YQy}Ph~uRh7>|HlH6A&w zENnc|fTn=ur9t8u8gYT?g$=fyzA|S{nWOT1R-<^dH=z?e^7c^^y%9sYp^%wAaOt7O zd~6h^dEHzo5E}En`Xt6EuYj<)W0WKCkRsFPbyuN66SU2^tO5D`IYu$7K*`(jtZDqm zwIZ>$7CIZ#?&PTGK)K%mG@x=<`ZT(hH&I!=yXPq4_>Ya)G#tDPVuko;i1>#o8OIWT zp14bj-`!{&Hq|JWM>mz{c1?p5aHL^@Ov^B!%=2%HIsSeY7NEw9ekiLIOo2wTvhI}v ze4r-bM=yc04gy!v%5o_8G6{V$l{G=;IEzu<&{Zk&zn8AedNcCkACjy`ORHE&CQUC@ z(ueA2!K8Y$e@~{lXTo{FMVPll+{0>!@vXeeO`0sz(@E$tch&5>a&WEy52npogV++^ zF&Gq&u5U{fU9Kbxl|oN;u>WkLNf$ua$uR>h3Lsl`lXdoy4ZZ33GyaI3RWMe zRH7CIYkA~lnVwG3^ze;X(BmAUT@{a>pKkjt^whz46O5N;0chwbYOfesSb$Qlu*M2d zgx@6av%}zTmnIzs|LFF?uS2U5TOu834Iki|-Z{*$^$RQXPKkhbS2B3|h&smjWGSa& zvRPk`&y2U85nC;}S=xko2$GoqlVSk$BR|qI&G$c>aE9f%{Cx z7MuF#RoYNoZg97z)Vpf{M$UMwk#4sJL42OuS$>3cyEQoWxTyGI9CJz-&8X!62SNZ_ zX>W8Np{W3UdVppA2+lmk9;vZPn^%GwIZ~Df1~>Z#((TGz0t=6k!YlN`V^O%c_dkhi zm39dqX%1;04p3_2&Dm&6!QiV=E5oJg$$LMKp1dDejqb_yfx=U;cGbVBck|9djYd80 z8jAcXJ%2g!w~U`QZOl#MZMTjeKW@_afxqLa6|pSWtp9mt{d5pH}alW!S|mv5Q$g_bh~Cv;-LN z*T&OY4`#%^7>2IWGI(8FAV$=vodamPMKx->AqkK6x->>wl<<2d%*>F(i7GFab|ms9 zOY4M7Woh%5!P2(CETb*$deujthli?HpFb<-Z!t_N$L>v4745X3fLfYvcQ`O>hcy z6-&nk?N?WK@p@g$@5022oArw>kiJLTd=p)+!=%B>U>Hh+LtlgjU5HbnHOLVt`jy*( zll=Wa}_)56Zm_!Kweb$TXU3;g)=32zbp6o9IB z>w^LKWp$=I+ObEwN16%e(t=@}nqAii{#PZVA_;$je-{+TSqOw{X54Q{44G-}>36VX zoSr`DFDsfiLtzsC^r3;7Ue~AZ4@l55gbkbd;{E#~&p*7SU!4KZS{Ed z`)#P*=&gaxC-!XpU98*2bsmEe)!wt8GtDowmHvZB|8^=OE`{>c5`{_Z&p}*Mhzs`M z^vHJ%_%iEE+%g;9L>5VCc)9?r;IrxYLWAMp_Y=}0@cu;gCBkb3-#h}r7q9qHh^LS@ zGxkst1Xkep5%@lLHhf2Sgm+mOy@v4yyr)FqJu(SilRYKcA1nH+8K?A@2>%NxW9IwM ztdmHvZO~^Q3;0ioz<=a^#9xE9P5bQy`S*nUvmyWP$Y&v+iM$$v==w)lvm72`T?=w( zi$1d3K+ho&^rZd{^vt_aTn`D+DV z-58~B(W}C@5x2}dtz?mSJhc^{NAO{V(uDB32!w+yBDBI^(`dz??n4Z{eS_O(9zS8R zWIS5IHzhW{=@IyD+F$r=vGH|?z_(}Ae&TN)0qutVA_V#;+&2sKUJD4V$TM5;g~eBf z4v&vOd1x|}z=wEftT~=&GNQZ80HV9|aHUUwM2#L0>ENlYR(grKH$V#Rp74v=MU~Ai z-zM)f*#JZpU;?Yqvo2xZmQ@Iw(?%sqj?)aC}v$7kA#NuL_lnFP?&{ z@J|Y50cvOq8j9>_K}1K`{uaY{CJCO)Ko+d13=L5n<(_ z*=s*ozp)QD>g@;r5C5=^AnMV_YfAyC4bq7aR*cIe_9F6g0ci!!W}!Y^ICv8?HdyL8 z8h5#FVl0$@gys~nQRHW~umr{mdaU4|2QYjgMJ@GcM~X3p9d>ztazr}sR`6vLTKM}~ zIq?t(JbgVc#`kVTew(kQ-=Vqn0N6E6X)rXj4_@ESGhhCA9cm}>7%BU{!S-JoAgr$gt6Dtj;3n*kj(J* zo~I~}UXn`UKLlRWuqb$b-il>bs{QUV+kcSSv)F$7fcALtQLUi6O`(enVmNJsAV!|X z!W?GC!3#xC_VcFspSIHT1x!=?N%$+xIz95VP4oo!PsdoV6aP9z5IQ|2cI~b!r4#a2 zod?-*Hc}fVrfT;skUKVSs&uD1F+*81Au*zFmKOUFjhOc{3jSSJkzwF>X#1{+#Q#q` zM7#01FeB-!CK2AQ-T`4BkNSZ16H*aWkEQ-{G~k(Ix?2;#Ph!ui|BrxoOk#NO=bqna zKl?bHy@Y;|{ZUN&k*5}g1+gi6p4A?Dx+bJYp0<^qn)c9BQItqN^0ck=G_{AGAJ9+5 z*OxqPD?M2+nEX#@w^VmJ#B)LpG4^_sbhp=osEpUEjz(-H{CRXe z*gl7hStnf@sj|1hX8LvSf%URpq~GK|641X01d{Guh4PCoSUVZy=p$nE^7Z-piyz2k zK_tcoISBy5TMh+?p5P{eY$H2H`)Ln9;zKsUF~%oNo?0SJ$#+G2=n?zqM|vRNhD$<1 z#pSxeB-7Ya)~q!tnL}?0sP95pZP|1ba_72yo7%(A;f!G>(M}`?G(G~$fKWDRV~D2m z_-LUMH?`Nmb9`Oo6OyI1850}9tn?=#i;wIuuVp+e1g}JcMEn@~E@kM&o8Ws+Dh_U? z-G+ZbW)Uk}qR}!vIhN@;jBX*E9_Rk2XQ5bPBKcrKPzlI)aTGx_S=)+$EX$`;QhLw_ zz}2>B&kTwpru2Pj*6gi5Rl}bh5jCRncrqAw2A7=!= zAaR(wl(-C+&#(uKP4R7fWL>U`-ev8eH%gw2-ODeEOWMu8HJKk6l%-NDf*_ghdwp_CF)6{AvlnoMgU87X=;o9St*e-?Y{Cqy~&+|6Zphp^dyx-m$y%lorxz@)yguJXp< zX+~di6VHpM5v-*^CB#x#4*Xe*FK1pzI#h@K87$x2zm@ZuH7YFQ>tw>02_Im_*ZFtA zx9|dasa`So{JG%>7vZ5b1}*cKLy)>WzeJNZ^LMIcbk@f&E9o|Ld`r&{$M+VW?PvWB zHsPzy3&&UZJK)>aPhL_|`uhS1%mUqxht?Pr{pl;37;p6ngfD4^<`X6oBqlfh4pcG> zJq$v{+v}D;`(9v~CUb+eY+oB8bJF+zIXZo}!;zR}(!c^qm2O!cBM45nuTDVK7E$!K zM2d*PI{#3ILC-Y6H?#gepCx6zZTLo*@ZF5|YsNS7cfjX|jDsVntw3N#*vwAD5`&iY zJCh*!U38!ldp{9A67OqTw)bl+(-dXzR@&n>EOii>?<_A@^-&G@SAMP_{EzXQHbW_%NT;Rv0U z5n8tIg|HdgcRJJ~_T35`9<3Wv>@upVGhX80%RT;s>*d`IWMh2rVKO0ElfJ$mDYW7w zBYyLWQ*b}W-m|H1&L8o08^;i>I+v6=H&mUDKFU@tKX~d$je>eIS%y?k@;pF(EKQ1HQ*!Q|yy@k8g%H|i4 zH(RcJ8o9b~dy)1>+(Fmib#L~$H)9jt_99G%XcwHya-r+VxK`Wg`e@ircQ&ZJhTG|U zg{`^oYwN&7#d=bLNs~oHA@XDQcOHsw2VpMcFGjvSU!xUyw~gN)M8Dv-0DGT>-zRV< zn%@V|2o!&=o#1a6crfwzCAbgrw~8Qx{AHoI!Cz10+s$8S#t4o(d`CubeflW!z}@ON zLknBwn@%E2*#3yE&s^kO3+wi$MVNJZknCXp8JV$c&kG?B!GElL786wHYgIS{ta$Ou z18mx1kSET`i=yIg+7*PCXxS=AmSuW65h~jEd8w)ypt$mz*uU_(nglXxJ^wnb?{@mlwv%RrJ?+8HN@TiOH& z+$`b6EGTUwge87X^sAo`2LENJgiS|;h2~FkC=zV)FT-|`mYshE_xSY{Fnop3E6SUH z4Fv9<+PQdd&1jo8OXP<$<9S?CUV(G!k+g_r>24g5e#YvCs&|zizDa>m$3#^-3)BW@ z?rX+2b9Vz#-hQ$iYuGr!*L8vyrw?LRaw^X{ENrY?lZum-P!b=D_PU+^k83ayn67y}5_e=r> z>h$Av8cJ2BMf>`Ma3M@?1A6QF-ir<)PP{Qbf`IQ)v`zfCt^d7^;KSmLW2Cc+j5j{$ z$#T0@7d(F#y5KD+XX=7SLwUh2xNneX*}K08<&8f0Iplw9A8gs)7J?YD?+JLz&)oBN z02}6}HID_`<_|6P{{Ux4f$1L(~9K0gBeViruu zvkATR_M9X5O`87c#4$E)-?5@;GyB;({sc-k5n!Evh&$AOxPjMO@TZ|%^`>mKyym6e^_vB|R5O&EZ?)H{RORC$l

cOfjm)W5Z8mqfJvM_C|gJFtu|hv4*}{y}i$(O$qEW6n~a zEAN>Ur)7LA;nvAtk7IOyQw07bhWHpy%(nkGmQ2d1E@aF2^9Ysk)0(5nW@uzLGy;8} zwxGA}Z&rfc;Ft~#?{JVI>|aKKs1M9$k+Q5xE$p48#jFT%>}UUz1F#|gb0x0KI^a`F zIuQBuT~IZmgRczKo{LLkL>C-iuLPU=nN&Q32`@z>!e^7isfE+KwcZHdx z6*gzA?wYrjV~R|FPyYvUW;WKkh`?9^U>>Nj1i+k-ufLT#3CKu(veReHEmh@(A1nUU z5B<@B9u0Fre4Jj{5b$3Vi$OJHa!fm34PTqFdf>z%FKRgb`C+Oyc`MlI8yL)dzM0DYiizybZj#U-K)9C6#M6vd&K`ouHFZ9Gz>xpHSp7#CTJ3%+=O zfg2cUh+t%U_ck-q*7iMuDBxe-G1}ECX0(1iqMX{5Ix+F4EW(V!vVYlj6y>S3IzUjb zfe}Xd(?%9b=-MpnZz4g#{&pVD7lYZ5a3EvVyPUpauHqLqjndAzn(LUgGX;lu&NrY-#n=Fw4> z@(U^#@J3J?e+Qj7Nfp%faFIHG!Nc;Nkc)MKt;H5?lHW%32~^wZ(3a?L4BH1uzY%nr z_4hVQCUlCrZMF&jU_zx>K7x|WO8YV+9DROU&|BBvMzBk6PX~HKbA8MK;C2*fi>@9e zK#0k@uG%E8qX0e>53cSKE+js+q$A7iYZ>f<_HjH+Q0&7AJ&1jjz@p9e@gz&`cl*cz zRB7LAQmT13cMi9dFF=}^ki#qxBK%uv-^*YZw2$M#wqYM<^M)OwRt&`h?A>-wmBot3 z81r)}!ih(>cV#Q5;FiK>aob4Lk)cJafgW?X8qrwqZr}id zac+YQNE(pIb2m;q1aVUuKZDeSHHW!f=eYd;MBB~bDFv7vaO7+TBCm(kV97+Sb!@OZ zNRjN5*O#Ec>2%3*s=`G6v#28wd@=U$1{E zibP;-?N~*twdg9^Xf4ZYq1b7QmJXINo<7`Y)jtEjM_U9g;R=J(kb0mwo0XDyoN$^f z)6+@lacGsGNBXBpB!m*b-WjgV0NkKuA}r(g0cxl})*@OepIX9c8Q)Qa$av}NgTi~k zTOv@qtfCgdTgJZ-QsttuJ|hn~FLH#-`4N;L&j|w{%lL8#4eIj+s@_OXUoZ&sG^uRNIi zn)SOXLe6iX#QxLoU_yg_*Fk%t-{s&-^gAcQt}fK^?qB_G>}YPknGrbo)Pi=~FkT%& zh}7?iY2o^PEW)rnR#CUD{cZz?;qCVg2;6K~pP>B#VO$$z9Itkt=3StO}~55TEpA# zClI%p<2@*`|Mcr4G&Mh6c1X!F?0A2Gr@~-}1GZx%^0up;_(Q-yf&&!s4sgf}n3=56 zI$0K!4~d9AEY1Ie7@fY-d|6LDpEM4IsUdthjrjuPqt{k@rYdS(iUqtn;!i!ZPAJwF z82?JpZHj7iXKc{V=t#wnXEA;>pFkB{kI4ZNk(HcB%WwM4bvkCPNqLhqh!fZHL)X3` z_Bqb5SUFQsmSED@viz3W!6bxqGK@Jme;qz+y(W6r`eD}EFXMw8K%&2D@f7#r9*^ht z?Sm1igtS}x2HPRgluhb(2BPbpjkQ!yLuGL}vj>rm^K{YM@k zGTI2mS0BPnm~ozK1*c_v8)@d)?8grcIz8Gve0)*O!a1eUlIbfzK-A{3mr&0V=j2}a z$Ntg+^ZwG%>_X%RQe&ULCfg&r3%U40+Cj#q$mX3ZWI)xd&4L}^2-m6Ij18zf2H>T@ zzQE2u=_PJJi8Qq~rVWNc!%N9q=6A5<06fg$R76uXj$D1{fBS+5G2ok#D1hAtX?UTC z503&+x_DM={FQn2EeKxc<5{)4L7p8g&zimRwNz|+MJvbGmQbJVQ*NqVU-uuDichnE zpy+QV=|{E>#6ybPX;a@yosSv~faU^ci;*uKf6J64pYT+Q_>HM$dzxtjp=dV$0_)O# zxaOCKkRo#yY2USV3jZY zne6v{-8z?}?M2yd0Br1Brk9wD5{CW0fR>Q4x(+6c>8<9SbMzuNp-9Mz{{U|p+-z-F zF)X**IS}7-YtYJ28ny9uWbPK+p5VQ1CP4zQJZQ8{ZRr6h}xRAD-W;;$3X*2>(K1Fy776;ok!I2+%o*xK!V+qtBgk z6+oW^C8LE+SY4Qw&1``kA86ptq>R;Aj#yKMg8HA5YFu>k%V_O2yYG}{1Xsv z^eh6dvH>3<#mWJ!FY1hFeU7>uc;Xp|*%`;kTW()_;f+B7xM(RVo;4UFh6Yd?F=E)w zLg@SBk2Njh^8r-E_{^SSZWVJBt|S_@jPEGnkG4K{K$s)UPKd`c{FP95Xts0p?(n{i zPZJAH*PUg2g9*_z+L?wAxtqmznT|2xY;qgMSKD9>v=8ks|DjogHi>-vQ#j(yESS(n z%w{V5(#(^s2aOJ2)MvUI@z4%k$PGI}$b{c{W4%ZiPpC;(L(; zR+U24enLZ)YP7Q=ZKf*1ce)00EmicRx9R6$Arw;*{g`ECC2!e&IuXBW@7g61D(tM& z7QdMXNwJJ?A#iX$Lak-L5@D@;YRPCUR=oBSWksv<&(Qj!LP?tc>lE*l|49N5{-obCtyd*+P>5C%+57pJEUD&MKn*Tf&nSdfWqAA7&T8Hn*Q*-rD2ULx@ zipzPe3_wdaYKoQWQQ3O5Dr@Z~o=SyZE90#^qSE(!cLA}mNbiC^5RadhSXpO}_fh0* zMPrgU!=TSHJC!~be}|GbU!gY_~W!5CEqwLe0sd|gBSqk7qu z!E<9*fARVyV{O`S)%bljk9H-LUb()fKK1v=*Am)tf}M_l^CZXUz>Mn-5Vog;Mnuo6 z*3%SJn+_FUVmm{!J(at_Aroo>#i9L`jk6l#n?U8eDPGC&(}={ADysM z36u@M9CrexHw{-hUlRKq${X`1uOdIKbn4Bw-t>FU3L4gA%Fuj;;_9uDkKDT6 zuIUZEbpiQt^;QZhLwXyH@`m0fAwT{9fa0Y6TZvbfL1ISx$9P(Q{{$KTH5=T`*&E#7 zbu3A()}7~0@z0D!1N@p~lfI$s$sJH-uuzQ@YOE}843u_78!|qg)}l>EIY8FmggzBg zYykFa)VIs@c(X6*fm_MwVWW~4p;R-xV=C<*`RT+vzIWN;vmcBOHuSyAmWqDzy-UPWFrZp z&G|R2CrU~@bS2%9jkSxkzQ}Xvhr&x?g&u7-4cw@If|T_3QBCx$Gtfj&0Ajs~l3r{@ z{1fm}Mr@z`P~<;A#(V+tqdZe5&$wgMm`Rf+j~!DwdB1&QP~=qyB#>A2Tlo}MA6)6; z((NCT;J{7$6(oZtiSSqlH2<5=66jUnTlt>kOag-NeuQv2+D5kTznR4l!%^9gA*1(3 zoNs-*tUTt!OUmaZ8?dAKBMtVJ)6loDK|RE)h`5LS&1$WsT0(`Q>S2vTv=eCA*h^tk zny5PynpgBiQZrDlWFQNQsaqrz> za#@(2$iyfsw5m~@`4qZ!S}bkN=Fz^DYaY$Htwk%EZR|~+l^lYZ`*NOeOy8*=9;shm{bt1D@GqsOe0pXBI{nG zQO0N^laSvZZ3O%yo~|*+W1-$mMqB3HCQ&oQJkLqQvmCYyqtvqg$=~pk;&oo0WsziR zQS>ymo1X4EJv(R%vFSP7Iz6txnZ_G!m5+Q+madN#L*9%)~flOD9Mj-T^4X8XF7MUoMv z?8jEq4to}QRtX)=+Hs%7rRNP6u|Q8n^Ja83Dt_SvhWV4%a=w`$9872&R%E%R##vvU zD~AY6Pe6$1tacPpeA{-&bY3O&oVN6_Pi>?7#;7jDI*=YCdBCYlgE zArBmLKcv{pQ3Q#g>L9j?1}z(xVi~Lp%Q(^^Mr9w<%=QtQUB;^<;j7az`$y&fw^2OJ zmFL+?C;N7nq*WI-1-jK_r@8WWYk$NuV~G^H#IVbbv5X(@`ZxOUGFqc=fZdzQ;V&wy zoAnISZ2r&Lqd4jZFip#+IFHlcWv z9s_Pge$?fY$4=ZY5uiEx(%0icGkDlq7l=CFP_=(?G%eZ;U9YFXge7in)_UNUvNRlZ z!Rb4mQ3%zafhy|7DNKiYv|gWz^&zapg4n8$RVc>tS(R&e{zVh!cpJ6zrCo)8o;3sF z-B5*1=sXvkKb~4DVB$wM;H$peg{GDc;UVG^6C*n?u{VIvno);~BXyLH*Lb&!>j)Yu|>kb*3t3N2>c}eMJ7pBexi_Qm+EGv z-3F+}Xi@hvud-0W`5DXj1{?Ug|6R~{w3KLk7hA(;rM+!~*l151z@D-vtbpVdWKAE$ zFy!xBco#!eM6^zCL1u7e9<4~*^C2n3N&0x-nk|MuXmxn?7ANU%2Z1|)au$QdeTS5WonG|?K(3(q16B^^#*DO z!h;#BGf@#na6a{VqJ{nrfiOJU{03ST_aD_)IUqV0U{p&EQ_)RD+J&%g230OEMvE9I z;)p-l<)EF72i~e(z-ufDEa1fu?K8cGzAmt15Tfx);EWy}W@4xVkGqpS6nuidp4yBG z#`v%W`B4M7QZwq7F*Ek>AW`Xemsy@|us4aK-#Ga59pgc;Ch z%|H3r5Zx_#ZihNo|6B&SH>sP5f4P0f!&7P{uRdI=^2Uct-(D{O%uaL|t0x>@MA2@U z-fi!N)7zIXXSZmpH^^;E6gRDlqIfBxwuNHL^yVmfaef`F-z=m)3S}H0C-8$76%~(s zONX`jUGkxa2LGnF&0h1M3*2hA)EMq@j zQSqFU(KlWTO(2dmE9YU9N@x$jhyL)wmre0(Xf{%2L(IDYWBJqis%&^nu&(d-N+n8o z)<1w6#Fx$5SjYnze2TFyG!G}0#qHvsSWWyx;!r|7{!w^8@;^iLPnf&ufda!EK#eKm5x6DoNH>GQ zR?#N0H^JA$o+cchAGgf-wy}s6HCw?qMaQRB`GrRZc$^-A^Cl}et>Cl8#@8VN-yU{f z$#_hH?+)s3p7evT-`Cbg+3!P1kN`gC8-Anx3i_@F`q#l=e9Lttp+vP_EBr17o8l_o zSrf(YQ+$>{sES|PD<*&627e{|9&4cA0FL7Go0WtT>-^S$O(Q-i9`gcvx>}L6>gn_r z`aBCIU|e^OR^*#cvC<*QQHjO7_(iAjZ@V0wp6sGrC zAU1DS;7<|wD!wY7_b6~Y{1$P9$?xX)I5q`Nuwl6?aDrV@honwPns_n1lx9`-U*0VZ=S5@$x{XHhzUjOyOPLpkFC84?yQ_x#e(-%(_21GS zRoie}_b>;*WnNvg$+yq9@uwGjsoqQM-W#0WGvPm@cWRa##T;lXR|JC8ldgN6{HKbP_UtEKB`yoe*L3WE^F;4?*Mvft1)h z+V0gxL%8mmj3Y0$w}R;(BcZK$@~{+_>E?>t4hg%S)&J(MFuSrI*utKoUP9QA&RZ$k zjezgb)(Xv8CJ<)vY~qnss+xAD(32TnQppeA38JekZ%LbeB}Q?9p4F|_rMi5>Tv%>F zzcd|&0q5aAPn|fi!5v8P+mYHbUM~z3X}z#%8h+G&gmxGdjg?k^hUPeILDLk<&Dr@2Xd~Y4Qr}A z-&T4qH^Xb41R^*Dg{3|52u{Skm2=@Gsr*8s&%M>_-tH^h9_VJvhvOTz-Pd^%c*8oj zS29W|g}cUiI|IM%S}T?wM?r18t@ODfN}s#q=(Dmv3Af!%JywC#CBlc6vXsBt9w=pw z`O(i@{U#*~{x9O-04? z;7ydb(r01r5+9JY&Np6zU;x0-xzD}BxBs-)M&n0u=)0)0e*-o**vj;;H)NZ+UBXA~ z)eBpV#>;*q?k8aY&s<&W{l7rKTpG_I?v%20trr|gSka1Kc`%*RTzb={yv~_;9YcDx zA9oi2ZC@aQ#jA&3g>LoYo|&EM$}=zZ4ejaLvvtpBm0N9I-1FiR&$=7WvO>?g<5^ax zy0R?a#*muJzFb3vyHf6)Nl9_kYaS!FZt8D z&H5#K+Cdr5to^uYoo{n)-K;NqeEjcqxplc)!uw9v5c$K{Q(qR(F*33Q<=@;L?ZNBT zs@-Tj&DHK59`>DVu$ZUUPB}<=&spW@P8ZZc*O4H?G+>4&y*AbFb?*|`7?WqBA2(ru znc?7ybn6%ZzoPkKG*x}7jHc*D{5jHjwXc64n1;6sPBl=8Goxnz1YfLr1YRSR+7*hP z8_=3Y<-R{cyFn)?Or&kP5Pdr&=WiI#lcN@W*zIP0KpBqVzA`GL7w|(BrPF3zU@N_TxOM>n z*PV(ktiKI)re9Xv3jEbot#Gf!yo2LnA*$hFclM%{7iWDDQSK|;#jC8UB>KIrUqKTk zsaId6{Q_>l9c6k0h1wCOpUiCIG7A2Rz>q6<3s`boog2vc+&j`mJ08|r+2Wd-z5*7E z?!}q*VczCxz2|n%&3JvCXT=$~S?qu<NQ zij9Mfgl)=99Q8ZQ;afY`kw5$0vR`u67KGOoee~;M)(09OILH+GhkL6w|9~#^@%2dS zt2QA8r8ezgNYmE>y;KFtGKOmnFNnABN&)q9>QyDS;+?kMju?R}BxGRkZ^K;L+ZZXRg_G8C562 zM*OKYDV1*tb!Cn!H07?iiHcnU-L41rDikB##dh4Tu4+bQP|`q3^jo{pcX+BV+3V4& zrRil=1xnAnD)1VaR~3987N19x3B1O7)m2g>Q0CNowNK; zrGpaj2u-C2Rlmkkrb>-J2Lf+DYE%+Bqbt3|Qi0c~5#QtF*|$*4!tEm z(Cr$Cl;>(R`)s-IR-DJ18S~fp)~JZ7m1C3N6emgh2=`agFns-c>%OWCQwwla54XZv z>&`d1s@{<(&Iw8_Yg({g$ zmgQMM$}>}+&RU7e!+%!(&p!Q7pM8P!kJtd}l-$U5(NY2Y%I3`6I-BbUP6MS*S? z!!~`xcB2Qt#8xgoyn+KyWzsE|b8^TRpn%F(7dE59f09>jm%HecWo$>cut#yS92cA7Li6#n-j+ zy;QtxfULKx7r!w)BH*dWaZ7DBjAYLbLtqZM-6+r@+E+_Slf%GGGm9#}g4J@?a>2Do zdsS7)O=o>`wV;KfKI|Xy!N(2q9M{@%P>lDDrCHe{YTfe#Az9p;>d_j6nQcK@c_q``fVt5Amg{2BZhYzX}>&hD4l&#dzg z6HYi<%y^?~#s3Pg!#5y#AA@AxOe^T;6(+qn-P_$#ah}Jm7w8TpR<2Pj?#g&0wSOmc z^->j~K`h0FND9k=o^eaEpfa66q0gcH0>vRbAt`5Sm(%CwV|NlsdUG+XFSl-2#!EOL zfK!e(&LFquxm(KYHJDcPZ#y%QoG6b)0=%??)^Q0AhdM;N9P;52k3iNztAi!iq!{7~ zqm>t^k14_vP!T%)L}Ck4LHNzxGhR=B2GF784mBw|--fx#`c`M8DVXj{*X{=bZMN`JdbSXB zy5ja^g^M-MR5OUhuTlzKgZF7RQ~cvgP+#3sb}Eg()jJGhYPArw%iEdqW5?8OIWz8- zr8WG8KQG*Y_U|30Nm;z|u*2J#SbW1YZ?_dvwt49){B967QrgtQf})6-p?>xiXQf8Y zk8h114~om!T<_ivG2$FizU+Yk*7hQ8u^K?AIqXACv($6l-|T#WrQDly+}pkGO}@fS zcp+;05bZ@wH^HN0_PMfrtF6qn!Tq%{(>B-rwSNX?qJ0HDE51PGS*3XTRp{wg{_8ei z3PhjQo9o`;AEf6o8HA6sr}9XVhKh2|UevK~ZG?xi`8yzkU(nLXSapN@%Mi#f`SiEP zt}z9iN2&fpxuHo`13KouD~|5IgTtE({SSOk7Eg~A4jK)lcM9VEN?}? zEA+fAeL7Z){D%uYa>%V}l;1y1QXPpf0e%q)*4_;^V1`|!QTRechFMNdnVN#$ptQvQ zuUL$gTjMd{RW$d;2(;vI?N5*tw2}@o-#@t|O)FC3FW!W)cnOB6jTlPci@%~Fr?+Z0 z#=zd{Sxgt)$@K9VOkXQy`qmVr6YgKINPep4$d9!u%bT|4u3Gh@;Fk*p=w~ zVDLO4j?w{7dmd(G(zkhd#P*2zmlEhLeA7}@Xf+NHGv2_5wSz$wLRm)0X#@MIP_d$K zFq}G91&UdrFzN&bSa+0mna=(t>rEa+G;u8t;;XzfWro7gwn$3}74#PWH!}tCKQ(4> z6%sg}NAkz^LSNbn@+;0CJMESxt_ihP&Tyrb;R~d#6?bH2r$2lI7ZO`5{*ZYr^N5gJ zD`sRK$2>Mdvy3hOF)kxadXxtn!3wOc--Dj|^agkX@NdM3A!;{m8ov6P@3D5Xq5rI1 zIB4$Zt9=(>Ch1_`hsHEfjd2Yr}q#Aw5X z4$Udc-Nj8YQdkx3!5MX^;uNRMOy95 z#ZsbwM_@0dPcynZ)j`LAO$dN*G+(+!)qIOP+HG}#ZoOb3xYIMHq3B9L{fg$Ey8i=> z@P8d@;qPqkpS*PQA@Bs9H!~JCj9u^wxx~oYhSt*ztwKX(jC06+79PhpPr38-QN;ET)G{0Q=h&WDH*Cy zZ$yq#sZVdxbG4Y$=6lxl_w2wO(ybpkX7kCI(>t`YI+biqlg%f?cJJlsEya^Gtjm7@ zc7uA<#nJ8`>cgS=0a~eAqoQt&*M(E zj4HOJ4e7i{(Z(UqY5#rTvv?7k$4KZK!6Y2Q3^nOr&H42r9C-ea#2k1qDr_}CtrKYf zPkY}3A4PTTKluY<1e4ZaX^S#y0@y;B{WrTie|Cc;7-|9$!XMjcShAC3VY9pJ&W6M% z1x=vP5Y(S3rS%`QV10f5K_B|k78PqmR0{YrQrc2YZM3AtlD3gji{yRJ%>GRR2JQRw z`MQ(bJ9qAU&$;KGd+xb+X70>pp)gEIaJsOLxtMP4)2)A65Y_qJ2x0cRZ=;xj@hm)3 z^XbLm&n+JlM?DZlg~N3WhIZVtF8w{^Ss%;4IZhdU9uc|qe>^KD8$Xqa-#^PC#T{}}= zH? zuYIkz^|j`|rDxv}0;@TCNi}wJ3Em~mURQ;@n&!r{m1@?HDq(Il8^^T1()#>g4>zCw zZ1x>9akg#dXJmT9mHiD9jK`5Rlx$Xd7Grl(I+daa&5L+KVh&ENsR_6>SElhT{? z^cYItrKiVIx?NA_AYHS4D-N_SQG;S~krg-keQfAqTfAMY@dyvHX$(CmFImN>-i9pg${8)=yyV%O0Z1u+9cj7)Mc(e&StrtjeN z!{yM}gC{(=FkM+^hV?*kfG)qd{CE|nqgsy+qZ8<7z0z2n8pC&EN&F~p*Q@j2*SaK|m>a99K3iQ3bqj^oqXB9+ZagA%__ z86@Y!$k{iFplN>?wViV7+-MEVKBN98yQKvfto$IyLYLFUhqXOD37ZhpCp zAX``C!R0aZTc-7*R<8A+4#9=N5qaj_#j~ zTYJb(tO6{3WO%_qxPLJ64^-A_{Ia@!#{E)?K@%|92TcQuiBB#J2HKuL-hMS9lT?Ok5piKmN)WfM?xs9j za^CUQ&$R}pCFK<#i!2XqE$&0jw#jgolS1F2&o3mDJP{?sN=PmL1^|RW9s9~#v)hWh zBFbMm7L|`zxpj3v>66%f`Q{#RQuZB2A}s6EdZD<#VI1sJocL03RH68M@KkHjOPE9D z<^w~`L_9a9wO$161_JoeA@pUi9|(61Dc~49Elde^!1UtHUc9G7qgM0+?i2Oq|NX@9 zH@H4czQ8?x5f(h)nYcD7r8kS4->wN`Ex?%DZQ9*|OK=Z_F7&|G+!N2)L zVcfYdSoG4UcJdO~woAB%#ygVVr~UG*<2?AmWN9hy2K4Zkiu(xlQZcRJ!cOaUIyJRb z>o|@4<@AkOqAlDFH~ez;_co5+cuVHSxnnji8vA4I>hGsaYw4)&jb(?m!{^^-T8qYa zTdr4p;mFltMr-N#?%V(5@hNjId0qp(_O_noQx)$e_Jii1jx z&GjqBb#GjF6!(1JLbq7iT6XmI-}E^LvTy&}-qC4{iu(yiZ+~0M_+aVibVe;if6k|4 zIY5Vo1cLI>84SMdok)O;>;!@gCY;?mZYwlP-}=`Qk=kcOuYp^OpoOCGecJJBzlm!D zVj{bF_2G+dn@4rJ2-+P~CynO$-!M__6zMe4>{e72546!}>bUKi5c|`=Px}Nw9{>z4 zD_ZDDf!>V3M~xs;GlIczW{kQjXx@qv8$IN(73BU+q$6{RO= z@kA|VwKz|Ur)u#uE#|b?ti?7hmbAD~i+5@9Q7t~8#rw6mQ;YX%@nJ2#O^Y{a@g6Pi z(Bj=%d`ycU(c*`-c!w5m)8hNIc&iq-Yw=xLyg`c_wYW=**J^Q#7BAImN-N(6@@Zkz zKt8R(8_1`1X9M}Px?~`q)|?FF)6$fI{6a0J8|4G}bQ^XcpKeVLE_!& zKHYm8$Y-^fMo4HCIO%?Hte{jPrGbF%}A|2u1Xc&q&6aHbs zKQsv6-TUs!q4-R~FF6H#!w~$_!{ED+*D;mwvxnf<4};%9_zuEfJ_NsL7`#gO4TOKU zKDoZ#y_1K*7ZH8})%WQk_)~$Q_01*xapJ#z2!7u%_#WhSlo0<#L-1RM!S5z~BjG0} z;bZL@v4>5BV@?Bi)|*(*sL>9_R}y|I;SZi4pQqc+G{Se2y*)529-kNQJpxONl@qbI ze&luJybrpXBs#)Bl!))g6M5KYC*cbT&kw?P^;*=k18rq{dZ%L_E9baQw~6Q)iSF!* z;p$KJ{eDQNe^1-*=zT}qZ|eOu_A!1~eNA#m#IKY1J$6ohI}_=~>Uzo~y3<70kVJ0efhp}=ZdhLQ0cN`l4es(fG+HWJcM+kQtlabSVWfCshzHMbWy$|9{Ya0tedfO=( zWkDa4MwL9o;$bT4SIdW}C#V9gx?!rwAH z9`^APc*gWfztD_!*iCfhAAoLh5*_RbKmXP{E|DZ+Dz_8K{=b3bFLlFJT{D?jIT4~# zO+F%ec32{^->ljM`66_=L|1YKbnBDo2J=4wgX}0I`?w_u7q#EP_&tQ5K=Kp}kB2;+ zD0?tni$+KCoPxAb?yy(jYlp#C5PmJ`ci&(<>Gx5b9$ds#M8XouJxL_-!jPi!eyI#4 z?t%4oG?ILal86TvvWIYWq_2V`T(pqE_)UawISc&Rn#6ja3tvh2KGN^O^W!7^V;bSh zX}oyg{P>7noPo7=>?Qeq!{c>7bpj`2Rf+hi=ZSPTRmC(csaB=7vi-gJ@HsK!$oSDh z#9OJ{Q_z02_B0>b-@7KUun4|_@I6%6z9f9>x?FU?=I*rY7WzrN=ACqS7H#x}t1j`&fk|?K_bO*}sEu^RR@2@h4!#9VLXnWkmQr zgbxtDU_|&$gx^Z|v(>{@WUxGygx^c}gCoLEBm8l~KQJQv8Q5CKVR90_5#bLI{xsno zBf{TD_=gF9>G1fZpZBbQ^zpWj*z8TjqJ&()tILL{ET*q$|0i&t*8hisVI?tqwEx4} zI<}FY^PL|b;eSBG6Mx6~@e%&_5q>}Mzx4e02!Ai(8;Sp$t|668ls|%(2)~t-^Vs?E z$MyN*Si<*_JYPRQKEnSPth!@A$uoC&y#B)yasNZ}GR;qPfim8fk!eC3v16$p4=f$7 zdhzy&lwU~%{WRY>I4nV|JtO#OgrArO`~xGxpMh0&6cOGxBK!fudkOCt79Vp&sYFTx zDGj7FkkUX(11SxpG?3CjN&_hkq%@GyKuQBC4Wu;iPtySI5~sEc(m?lA`r(VzmeN2< z11SxpG?3CjN&_hk46lI_Q^8z+g}>ClN(mAo;8LsWlweh(jW2L}y&6%~^@>`q=P$AG zg&bvif03RulMMuw29G}+VqL1L)CW{n^|KzINAz*mOt!uvp&Dd`j@FLP$dcz!S(=GL5w2;v2%PO)#a;JV(gVhPe=_V z7BJzLiM*>Jg(jWC29=dzC8R3uA>0zlnfwsL3HPj%2A^4F+rgC`VrdD)N}c6>~A z$Z(8-u_9HC<9hss86VE6OcU}NkXwngAAep@68}&n*T9&W0?_h^jo`o`HUZ%QeKpWj zhJs@%wHEY2jcXk^T-ZkPx}gIBl*Bu_U9BB8X#71uu#p-BkV9G`se{bbQMk6x=Zs6( zNKV`)Ydk&}r=qyMijb9+AIi#_<74an?l6wotMfxw7i4A4^1Br@u`8$wEZ3ON*_LEw z6_u8;(Z1{o)`sg9pGx^dZG~*4 z7B*TB8}-3flI?_O{-^tWW4%)E4>oB&m&zNwecJndqo&(>trs@IJ6z}%@Ap;AO!V*N zXf4XC0$&%}O!sGA_^B#*Bn7=+@9|X;k5CJY0=mH)`sxzO3#maeSa@gF>-W{hV9Dir z;l2FeP5wmr#AQbd*?=G7+WK~SPTz0Sb8_)BbQK625Yi$5+9!qus;hbh>k4XJSFKan z23OGITIN;QDa;gY2(I=AgW&*rsy4n=Btw9~xVlWC`i4X3&8slp_`_->OCQ(0@MJo5 zRLbG^I&W`SA+J@upj<1SIx9xWfD-gJu_0Fj%5c&6h`9k<6ZTcB9>0&Rc6q%8EUOLj zkS9#TCg3iN)}gQ$bAuWULQ*DBxs__KD;N=)#S9|`s`mRD(7}l{RVa}t;P>DQWkEKX z*u}a%H8n~QM8hyC$kKk&dH7nNJ9j2ng|zt*9CkfwM8%T#R+|C}TZidUwM$dF3w8#D zpq6wRikMTQ&!lJyMdE5zae1e)P5v+&LIYvWRPPF{019J|KODqd2-I|>6{%I4j$8rK zJuCvVpJg7EXuy89KM239Oh@*3~!aI35xZ4HCOC{;;K@yqPHG#@CQ^+J(-a{TzouzMm4S5 zyzV5EO+3zbCR7TmigyQ6rKapC* z`Plhkv{${t&Z<+;H;aQoe=v#ne0V4tSv;B_WSLn^o#v%hFf3Dy(TC=9LCl@9m~qHi z2&{`)25+O_h&&k!-$nDb0P2gd5?QoLJ1{a!1 zh9L`;d<~PY&84OzosTk-w`kpGVea!tOQ zozBw4JF@9*5c6M{nZQcJ5hX|cTojCbet|xRi~2;x6?Kf!mW$X7>{1DmCtB8|+jGnj z!TH3>qo2S?+9<=pGE7zxda1xlbTVtEW)qsL@rCP`p^H=Ji*}SKV*zBbEo*@`HPnu? zX1d)FCqy&FDBvF?f0SKppC7_s0O3|QA_|ee2x4Zuw|uNYVHkQVng^1 z>gX|3hy&?|6X*vOC}$b^hY!~=Wy}JmoGD_i!!?f?^O*vqOYukBBJ|7o=)-f-%jN)C z9KjR;J z`MNP5(z%;(O*R-gU#XoJP<%HiO~s9iAq|di3@gE=MJ|l#dKTr)LX#)}#pGSU%wuMw zev2_1n~xe+BISqNJhVaO%*By@#a9NYldnN5p`rLS=mOLzeg&#uM{?k|0QIIb0i;Qz z=ibVp5h^XL&H9SKJAT0)Zxv=pn?*SeZp&zXdC_&G8>qsAF)fSqL zi5(`jmCHOnoLm;J#i{r`zJh>zSyT;qNKha zZyN!g1D<%=B6Kv5sQU;y!c$p+2yG+wB;Q)>iGD+b7u9#i2zl*|&=8-#kD#Hl`*y_Z z$>I|uAUo$q_`M1E@)6+6cgFdz9RZ$A!0#FXepdp%dj$Bk3HTg*^5mSA#R;l!cLKg} z1o)f;I}3~ee^-J&w~YY5Gy#A3Bk&{bA1Pe26-50Dwg1vxar-UAtGdZZ{V0n6N9&Qw zFZ^M={JrNWKPuBm%O}3u{v*zJ0$%Zs@<`lA>qYpS1UX91fsfJ>K9In_@f`Rl|B=d_ z!bLT#?=Mt;)Gmby?UI96$&)!I^CkSQgmy1H2R_P!@ZAag1LweBsNDZo+MV=M_-MS} z-Gy&?M0GdZex&s#zS|P`9{&iwglC_O%P|4(^bc2lG>`C09@8=9*ppl|KPmYLI-PXkXf^+o8Y4rB4%6UsZ^Hqttb6i2d`KdhI#1pBByw~jy- zqU}qV<8^%m%}8ZR;gT)jf67NuDfpVl0PXij_R-_ZD|MTQ9(N5of6vXy=MN{GpH-Ef z<3~v3e>CCz=DPHp?FfnII}*-M4yEUmA<+5MmeN2<1D}2kBtD0u+C1_3=ZfaOTlf=7 zhqorLm!kUx6ljB67)U(Ub5rrBO#>Zy8O$pPzeG5Jzw_*!k$EH`F9>;ZuYxU*jYYOn$cdjoj2->!~fsY?8W)?0eo*%{4GfpR0g|$*EJZfP`br%-i zIJ3C0r0}cEPMk3eIkN=6ioPY?S+xWU{A$&@DuvcH>V!AVTvC2r5h%+RESgnrFmpwk zC?yQmXN43;w=M)u`pFiW3>`ctFUwx$_bjQ=!F}s z^eO;lLv>K4_nLI|(Mm;HlDL?eG31;s<6^9+iclpq3oV3NG;99CxfOHDieq)XHx2S= zuL@PsdqVXJmSfOrpQ>3wwP;!Gd?nxys?2qxLO}?Iy9L^g*`(LUJ=bCCi4n%^^`J-l;ZIL&g{>qT2=2_q2SfBI?_Q8jza+~RE}hPeblPz zP_?eBFv?iw!b*6}f?rI7xy%X&X zL9|Src|Jh`auw*>5TS{@z=9^|ubvjt&J2+;Q;PXr`kd$zM`b}NG+Y9qnb$KH`t%;* zj!6g-DuCIUxj<3RdAeFFiQaAs2j-x|EoL%N`-mj|;B35C2iu5hVZvbV1RLEuvUX^u;J?N0=B3^Moe;H1QGOzxeozGi^G1%xshgED31#fI)Qg8nbN>N zNdp&Oo|d|w`%lvS|Gr|=muAUPZB z@n#)Xq+_BhPcam5Q&`1^7Xy#q8;}DQpN|XmGpm{;VQTX;MN{oQ`o>k}DKa z>X+foPB8F=9}MQT%r1c2E!D*<>>R&C?R!GVrj%`MwAy0 zhLJIq^)I9WHVt`#*a>aHrQ)-v; zF)@j>Geh**!;E)wru-U`x^UJ`$_ve;c+2b^oxhY8PG|ltjd{=c1NCbH}PGYrhRoG7aDIj zv=~*BYF-2x@3EY)OysBX>-op|7x;T7p8Yi@0l(!=a|Qvzi58Q z{4?{L=1j}QmhqM=ETW~*Qf#>a8rY4t+G!nan_-&;+c;^ffQ;F~8sRO$FZPIM#kJCt z(i&*>X~(Y}e{_7q*+DJ0EsePia!lsRxLY{0!EFc_GL7xVJW~ZqXtzw_*TCv#pq-9D zvzOT_ZJTXBvF*2=wQ+XIUSdCDAFy90sKRr?F=3qe1+h-tiWb}@?h*HkTcqct*QLKm zjQk~eiR_jS$-j_iI39OQa?W$^Ba7UXhPR1vi-KFvJn(s94Grwm(i?&~F z*=%{&GLFBJZ{Y9eALB<`XIN)h_gPO`Gi+PX`mft2+vnM-DPOdblFPdi1mx47{-lJ#D~vnQ1-Bn{1wEt~MVr5122r)L8CBe;Ccr;Ain$ z_-FWo{ABAqYqd4c){g$I+I#F3LZ@IByTl@?ODaN-&eM7{thZb5&v{%smuc8xC^GIw zyS1A#&8oS_Tw&?7nEBnj+4_X_S?dAoD4W?D+FP{#{4V;&HDbT0 zO2nD^#SYS0Um8=6-BnxxCvkP$R`icdLkny}MQ>J3{pfkQ7S)o;t33IL9;<5WvF*02 zLXp@hnx#%nQnO>XBiGqZ{4k>_LY&KWaTSIx^faBz4sfYJzpa3mF{8fi_FSPw^D+IR z8(yFSUWPoFnR+W$U{`=g9%RXdchMywAJAo<4O?lp+``|*-^b@!cSL%D$?moXP)k+l zM?3XEgFDdw-SQ;I7RNJ=qYl)RO~>1sBv%Vss{%c+$f#>D*RsRX&iC`G)otsy)!6T} zKZ@GzfRCLl&J*j!X;P(BC-qA~d8@ob&UHNJxX3xyd6{#fGtVhIXFG3jmOB?Y??mnI zg+?E7zUVyYeBF7}`KFWM(zOX+J2&27GZeud^WcX&jfdgWx=c26rMb@hwD~RbUm~?S zVi~Yp#@Fz7^55rA!DpJR>#dJlU$9{T6-wY5QCDzu4WVX^VJ791t&) zrb`>7?@0S$H5IaoUU#i?jkAZ^qA*>1m$!oJ0j8eZ~42;VQu>6blavX9Pyf6vv3XD2iobn|QzY z0=!MH_($=K7?7HzJEYO_CGr)rQJyK!k#CV#%a=R8=$P)f!Li86EKO&2K%UXuRory$ zd)yC=&luk@W}7CM@=P;K7L#Zy#5j1+^oFU=B$(%#1Lm#fADK%nuUM|(uj6mzSMuBW z6MTmCN~^`Xz`ESpW_eF5doUtDBfKE|Q8+E+ ziFUDATqr&yJ|R9U?h`MPJ}VVTUy8#fvMU>a>+3<-Z{o?vOQc=@gT_jt+rU5wXXvAu8mto`%$ zFWD{j`SzRa%k5$N4*S2`#|u|u#^4gXLJ0GPCox-i7T)C*;WgnX#))@@_t2Vu7c#_4 z#LL7<;#6_EXcA@ddhsT41=@JMm?h;%mrE0+tEH*Z42hRy)ZhkbzI2o1l04E%={D(h z=^N7B(!J6y=_%<8GAmD(r=cZmvQwTdm&q0K*W_igM_ws6$+yd!W0ZVd?vX#^ znBch8vCi@T96KH3oEGQxPG)U7lLtLyaaVFy?gnl#x13vv(XyG_%zcY{g4@Hr44;%^ zm})Q>?lt_t@So^OuNr=C_^sij;S9#n4~*BDDos<&Pr{lHnSX75$NYQqpP(tx@->SB zuluy+m?eiV=9lnQypO*F-uH+6|L1>!)^%Hd4sZ4zba=IW8Z_t-u16cbD)b6}7CsPe z6u&0A#aqP|*j|J5ptMu^59tZ%zociR7o?Y^L(&`4ucY5dzmwj>*!MSSKpF*W{EYlL zSmZVGwek$vB8#xh>!FPW@=bD;tjH^%k5#bKW_hE0r~EDXUg+cp@}u&9%0H5ylV6ly zm0y#8F8^Bot=uc0l;4;CE~hyza*T6a=3us^YvXq@deNh(<2Z|qessU(XO<5w)A@z` zI{qpCJ^l*oLd*<)Z5?N`*cxp+ZEx5{p;n6hTlN?2@7t#fONDO;^2M7`r@i8b zV!pIcT89>VM`Gohzq$H-@*8u&P;>3j^~QGT5bdP6!#81 zTCpK)*lBpfFv?hATxWdB_>OTro}V#?)3x`>GYxh24$Pc#1>|+72}sRz0QDBrT)>E&OD6W2K0ctFjv`%8Rj + + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + + + src + + + src + + + + + include + + + \ No newline at end of file diff --git a/src/NoToLower/NoToLower.user b/src/NoToLower/NoToLower.user new file mode 100644 index 0000000..6e2aec7 --- /dev/null +++ b/src/NoToLower/NoToLower.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/NoToLower/NoToLower.vcxproj b/src/NoToLower/NoToLower.vcxproj new file mode 100644 index 0000000..d63a65d --- /dev/null +++ b/src/NoToLower/NoToLower.vcxproj @@ -0,0 +1,126 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + 16.0 + Win32Proj + {279ee626-9a1c-4ca1-ab07-1ed30cbe4fc4} + NoToLower + 7.0 + NoToLower + + + + DynamicLibrary + true + v141_xp + NotSet + + + DynamicLibrary + false + v141_xp + true + NotSet + + + + + + + + + + + + + + + true + $(SolutionDir)bin\$(Configuration)\ + $(SolutionDir)bin\intermediates\$(ProjectName)\$(Configuration)\ + H3.$(ProjectName) + + + false + $(SolutionDir)bin\$(Configuration)\ + $(SolutionDir)bin\intermediates\$(ProjectName)\$(Configuration)\ + H3.$(ProjectName) + + + false + false + + + false + false + + + + Level3 + true + _H3API_EXCEPTION_;_H3API_LIBRARY_;WIN32;_DEBUG;PLUGINTEMPLATE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + $(SolutionDir);$(SolutionDir)H3API\lib;$(ProjectDir)include + Async + /Zc:threadSafeInit- %(AdditionalOptions) + + + Windows + true + false + $(SolutionDir)bin\$(ConfigurationName)\msvc $(VisualStudioVersion) + H3API.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName)$(TargetExt) + + + + + Level3 + true + true + true + _H3API_EXCEPTION_;_H3API_LIBRARY_;WIN32;NDEBUG;PLUGINTEMPLATE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + $(SolutionDir);$(SolutionDir)H3API\lib;$(ProjectDir)include + Async + MultiThreaded + /Zc:threadSafeInit- %(AdditionalOptions) + true + + + Windows + true + true + true + false + $(SolutionDir)bin\$(ConfigurationName)\msvc $(VisualStudioVersion) + H3API.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName)$(TargetExt) + + + + + + + + + + + + {405b8023-d064-492d-a0df-89b070b26923} + + + + + + \ No newline at end of file diff --git a/src/NoToLower/include/NoToLower.hpp b/src/NoToLower/include/NoToLower.hpp new file mode 100644 index 0000000..ac64b61 --- /dev/null +++ b/src/NoToLower/include/NoToLower.hpp @@ -0,0 +1,47 @@ +#pragma once + +#include +#include + +/** + * Uncomment to show an error message when failing to link up with patcher_x86 + */ + //#define SHOW_ERROR_MESSAGE_ON_FAIL + + /** + * @brief A derived Plugin that constructs itself + */ +class NoToLowerPlugin : public Plugin +{ +public: + NoToLowerPlugin() : Plugin() + { + Status status = Init("H3.NoToLower"); + if (status == Status::Success) + Start(); +#ifdef SHOW_ERROR_MESSAGE_ON_FAIL + else + ShowError("H3.NoToLower", status); +#endif + } + + static NoToLowerPlugin& GetPlugin(); + +private: + void Start(); + +public: + //====================================================================================== + // + // Data or methods can be added here which can be accessed from anywhere using the plugin. + // + //====================================================================================== + + +private: + //====================================================================================== + // + // Data or methods can be added here which can only be accessed from within the plugin. + // + //====================================================================================== +}; \ No newline at end of file diff --git a/src/NoToLower/src/NoToLower.cpp b/src/NoToLower/src/NoToLower.cpp new file mode 100644 index 0000000..d91093b --- /dev/null +++ b/src/NoToLower/src/NoToLower.cpp @@ -0,0 +1,11 @@ +#include "NoToLower.hpp" + +using namespace h3; + +NoToLowerPlugin NoToLower; + + +void NoToLowerPlugin::Start() +{ + BytePatch(0x61788F + 2, 0x00); +} diff --git a/src/NoToLower/src/NoToLowerMain.cpp b/src/NoToLower/src/NoToLowerMain.cpp new file mode 100644 index 0000000..f038c43 --- /dev/null +++ b/src/NoToLower/src/NoToLowerMain.cpp @@ -0,0 +1,16 @@ +//==================================================================================== +// +// A HoMM III plugin using the H3API library. +// +// Title: NoToLower +// +//==================================================================================== + +#define WIN32_LEAN_AND_MEAN +#include + +BOOL APIENTRY DllMain(HMODULE, DWORD, LPVOID) +{ + return TRUE; +} +