From df310edca65c005570f370777ca121b95c71cd67 Mon Sep 17 00:00:00 2001 From: skarg Date: Thu, 10 Apr 2008 05:31:08 +0000 Subject: [PATCH] Updated Visual Studio ports project, cleaning up compile warnings. --- bacnet-stack/include/bacreal.h | 8 ++ bacnet-stack/include/bvlc.h | 1 + bacnet-stack/ports/win32/bacnet/bacnet.dsp | 20 ++++- bacnet-stack/ports/win32/bacnet/bacnet.ncb | Bin 402432 -> 427008 bytes bacnet-stack/ports/win32/bacnet/bacnet.opt | Bin 50688 -> 51712 bytes bacnet-stack/ports/win32/bacnet/bacnet.plg | 81 ++++++++------------- bacnet-stack/ports/win32/bacnet/readme.txt | 15 ++++ bacnet-stack/ports/win32/net.h | 3 + bacnet-stack/src/bvlc.c | 58 +++++++++------ 9 files changed, 111 insertions(+), 75 deletions(-) diff --git a/bacnet-stack/include/bacreal.h b/bacnet-stack/include/bacreal.h index c215bfae..d2713394 100644 --- a/bacnet-stack/include/bacreal.h +++ b/bacnet-stack/include/bacreal.h @@ -48,12 +48,20 @@ extern "C" { int encode_bacnet_real( float value, uint8_t * apdu); + int decode_double( + uint8_t * apdu, + double *real_value); + int encode_bacnet_double( + double value, + uint8_t * apdu); #ifdef TEST #include "ctest.h" void testBACreal( Test * pTest); + void testBACdouble( + Test * pTest); #endif #ifdef __cplusplus diff --git a/bacnet-stack/include/bvlc.h b/bacnet-stack/include/bvlc.h index 097d8580..c5993a4c 100644 --- a/bacnet-stack/include/bvlc.h +++ b/bacnet-stack/include/bvlc.h @@ -37,6 +37,7 @@ #include #include #include +#include #include "bacdef.h" #include "npdu.h" diff --git a/bacnet-stack/ports/win32/bacnet/bacnet.dsp b/bacnet-stack/ports/win32/bacnet/bacnet.dsp index fe8e9990..bf3b0733 100644 --- a/bacnet-stack/ports/win32/bacnet/bacnet.dsp +++ b/bacnet-stack/ports/win32/bacnet/bacnet.dsp @@ -42,7 +42,7 @@ RSC=rc.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\.." /I ".." /I "..\..\..\demo\object\\" /I "..\..\..\demo\handler\\" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "BACAPP_ALL" /D PRINT_ENABLED=1 /D BIG_ENDIAN=0 /D USE_INADDR=0 /D "BACDL_BIP" /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\.." /I ".." /I "..\..\..\demo\object\\" /I "..\..\..\demo\handler\\" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "BACAPP_ALL" /D PRINT_ENABLED=1 /D BIG_ENDIAN=0 /D "BACDL_BIP" /D USE_INADDR=1 /FD /c # SUBTRACT CPP /YX # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" @@ -67,7 +67,7 @@ LINK32=link.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\include\\" /I ".." /I "..\..\..\demo\object\\" /I "..\..\..\demo\handler\\" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "BACAPP_ALL" /D PRINT_ENABLED=1 /D BIG_ENDIAN=0 /D USE_INADDR=0 /D "BACDL_BIP" /FR /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\include\\" /I ".." /I "..\..\..\demo\object\\" /I "..\..\..\demo\handler\\" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "BACAPP_ALL" /D PRINT_ENABLED=1 /D BIG_ENDIAN=0 /D "BACDL_BIP" /D USE_INADDR=1 /FR /FD /GZ /c # SUBTRACT CPP /YX # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" @@ -177,6 +177,14 @@ SOURCE=..\..\..\demo\object\bv.c # End Source File # Begin Source File +SOURCE=..\..\..\src\bvlc.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\src\cov.c +# End Source File +# Begin Source File + SOURCE=..\..\..\src\crc.c # End Source File # Begin Source File @@ -205,6 +213,10 @@ SOURCE=..\..\..\demo\handler\h_arf_a.c # End Source File # Begin Source File +SOURCE=..\..\..\demo\handler\h_cov.c +# End Source File +# Begin Source File + SOURCE=..\..\..\demo\handler\h_iam.c # End Source File # Begin Source File @@ -397,6 +409,10 @@ SOURCE=..\..\..\demo\object\bv.h # End Source File # Begin Source File +SOURCE=..\..\..\include\bvlc.h +# End Source File +# Begin Source File + SOURCE=..\..\..\include\bytes.h # End Source File # Begin Source File diff --git a/bacnet-stack/ports/win32/bacnet/bacnet.ncb b/bacnet-stack/ports/win32/bacnet/bacnet.ncb index 7ff5cbd2889e55fa20e75f12012cbbc455884699..86dabd746fee0d3f6e0b7b6b8375892480582594 100644 GIT binary patch delta 96434 zcmeFad3;qx_Ak1s_C6=`oSe+bNq`W-kPsn+IbjG9Pyzx5MFT0hLjNgSH}yBHG$ww<69sHm!Dxw$g|w@4IT(*<#<{{k`|Q_q})TA2;U%RjX>% znra?*!|{}c0IdqklqvdXWL_wB1HH41;trr-Z<{8|#-okHg$VxRL} zjN!;%FR8zcmoA;%-`RXCJF-C~DdYd8KdyC#d*dZRbRLnfXRjR)>P|&Oymx=}fR$O+ zgVJsJ7gx72Ce57Ze|~u9q`L9&b(%zlGbT+eym@Br-071GCt1VS3va@V$#Xi@{XW9K zZ)~QR=RZ3-&%b7jtK+=slaTZv=of=yINZixe828~?v?%Lf9admdg!^UUN#m7zPL7G z(1l-917i&L1QC@B6%PROD!2y&-dNdFSl_$cRhb77a0n3xl86?;eLsSz3htK(f6Ce$ zC;#bM1aH9F6fY+Q9tm-e7W-pwIxBon1L+Z1^K|qK5uHc0*E0js5S`HOX}G8UPIMM- zD8lQLXNZwE5;ee00epnr>wynTdLhk?N-BO{#2&}=EJQ*m01q=1j3uOy92HX_z+yiKd#+VaEBt~jE2u^ zH#9>Fpxu1!mTI?ByVV&pe4;W80w7>72+fE4A`1XF5|(Jzh&!}ieRJG6TU zE(>-XZW+Q)!5s^M&*=E`aGL>#X3Y={a8uxN`h2)Ga7*Dbex-J+eHx)oyYt~TyCHyv zo3*<`yN9%UT)U^>7JP0%ZDR5te zn-BLm(v`yH_)54{T>h)!DMG?JxMeH=+@UN0BLHrOTLX9p+y=mh;IhWY;eHNFoq}72 z@H22nBK$nZ0}joxO`igH4&ZzZm%@z&T&ZA`|7v)=2&mKUe7KuHXgORZ0NfhH@6hfc zxTj#T<8UK^cM2|B?hITn-1Bgsfg73&0pX^=g+uvpnO-SeFWgGF89qc+!&3{l4lXyL z^Wi?p7Jz#eZZq7SoCR<@06qkF0N~?rr$dla3?tncxHWLkb2uy$+G>V)NIWd!D4r51 zk&?(m$&^B=ltw-=nWoT+q6_phU8G;= zSCYa&rn`h&goscPCc;I8xJ}$H?hp&aonj?=s@~LtdeRVjkT%d=;tJ|ReW{GH$x8(^ zhOVRQ=?3ag185*s&>$aG(v@@#b*6LFm4;C(>PRItoUWp)DU-4&hjOV62?$nD0(@+{o<7pI)rfX>|)zAc*NRz0R=F&X6mFClJbO$Y3cSkD5ev6K^{7n&|M%HKf#9cVT+z?0fQjNx5dwm z!W4uHVCcml7~jK=ZwJfWb{U)pdn&ng{BSW`On^W^{9$646%ceKvv%8Qz87wsN`=n~w4-apM3LJ9d_TjTs1_CX zi-@5?f<<&td?5xhg3_p%mWd}pI{~#ZmSkicNh6-*ycp^Vrgb3P2E}0rkauG^$o^N_ z`_pbJarc2Yvc-S(O(U`+L2Vaoup6z;74UOZ31IE|)9<)oC2f*r5fccdnCJ!ktcHA% zWX&Bb+NK?)qZA!&3&j6lk6JjI;da)+O|r1_B#Bf}$k?vb_dev5f}>G!d(k9@Q8ZA% zQ4ovhqkEZv<=HH=(Y=ieX@Vpo%>|dA?dPQJ7tm8W|NGy1|E{J z5p!($J`x`ZtEL7$=Lg~g%U2`vtZh3bx+Uw}PFW}>S$Vr;c8(GwUKOY((R08;;Fm~` zU?l$SZOqS_vP)q%?UKWg_Ddu}$p%tKIxQ|(F?r&Ed_BXzdy&W5n<^LkYZh%PY1Va% z@W*u_SQi=Qx~b|Sa-LzXd!x9npv~ATvjzD_PtVR#90&!W9bFKJM6qGy9Q^Vb?qN0U zm4)Fw*k}^cK4QI5D?D)uHc^~EBeXeW3hNwbqBH<4gr?*7SOt{oVdd?UeWA^ieb5cG z09kKO7O~bB`{Wl^**Y_)u_|=`KbJ;{we?AH2{!XqXp5EPaemKR*`mU#cvAK)N0R}; zXpWd8Uhl}X85ZxSvdNSYs6j^ZykFQYWJ|dWT)10A5cyn zI~1rmAn%g?7w_v8^XY7;t!;+(#=6uB`cAN!XQKux$$I-e3$oMp*`ZErtd04oc+?tS zCNhofV!P#QHu8KLF%un&YOXZm4zWWl13Oz*K?~76WH@jry+nP)%2~nqaP${zD4gS! zco8W0_4FO$?J^yyn!5-GKN@|=M%oG37cBHeDD-n325}TX)hciZ#H;qNkBaAvOr*{9 zB;~CLGDt$lIhY1Hum^qM)ilk4lhHHwr*OcwLg{GEZlIc3sCjlkCOXGEX^bO44wZ{7 zLiIq(BDr*2yek&429a#q*7Ue|$@;jRXx!hhszG>^=@q73-0iN#@?^;D9#c4hU2wkz zH}0_*=DfN8VGvaD2I@p9En!#{A2&L{YHMbOOy7U+nt4Xk5!p4E)m(iJuLU8mzhX{d z_?0%f=Zxq4zB!rJh9h!njxLdhjl;&hOF{Bh#xdv~@v=Bj3wW}X_q@#Z&F0`}3}Dj4 zzS|M36iA>?giB7~WQt4*y84Thel6ge89yC4wT?zHzKYMLSH#ES0OPClttbNntVbL; zk3wXMOlP(woW6ht7*82PCKFjNJ}=|SRie&x)W|iJy~7!)nC^9La0zBQk>M`%lDW*) z$V^8vTtcnQ1LhN>0nZ3{UXU>|T$>e*iNEh0kCf1;k6@aX(^zVQ#~yuQA;C2{~vRa0In-6}qOiFm;X} zMUR-f%+z&3xSD=4OtT%QSMk@;58}MI$grY6j*iIJWH-iFwQmBQkr!ng;(d04T2!-p z&2bKa8)=MLYx*7dCVI>K*gWkJyqR7z-Z3UAby=W#YH#!~-pdXOFqS+2^gAUu!0 zHGVK2%nZV}(>l3TewoRG1tsB~)W;lY-kugjXh3ehVJ3mJE#M;BWISOUaN?KJ06A7J zXM!sIJ!r;LMC!62{z{rDeR8KGP$O#RTjDMhDRB)8yq>NxYK_8qnElu$zn?n0`ng6q zCVq(am`BX_9St{An3-mN=akv4=yEQJs~rZ9(xdVZvj4oG0J}&SiN3K%aN`yCCBpuw6;FANGYI7%nvXL5jJkz<&H zkVs0$f65}S(n!}h*D%NAZ_p7sLpciO2J+8zqw5Zr@3#i*FZ4>t*^s5sQ5E<*!{Nq8zmr{^lNHzKjTj1 zIz0dZ zYg>&GE3&OAC*=FqLtn|L#;R+r8$3qH{+-)K%BHt~SZkHM1;kNB81C0vEkz<*#8}6Q zu#k%}7ejL_PiHt}mAsANN3AvQZ8@_u6qJ~@R*4$%;9y%}iFURQ)6xg71dQRFLb0OPCsbj5?bnrdXp-$?+2uRty^9UetpPoXc48n3ImA7WjnfH zv5|H=a5`HqU3t!*u{CS|d%N?*+8r*j!E&cyP=`!QktMAUVc}Tm zzJVF=`tku=cSQ+n#`swcXGM}vBOJt{^>L@EFfd|VNzXb>g&RYWq158Uhe7FmbboeG zv`7ps>g#)Qe>JxV{+*J+I<_`Ygf2>W!Vbx@Hzns!IEwkkXt31?5 zOxMMMhqbEr(->aqmHzq_NrTmx+d#&Tp&_Fnv5I%mHe~F|EWjpn2vHNA?c6r0_%IZV zS#;E?c#*V+p0nOKEj>OJA4hXAo{Y)~;wQnPgXlXfvI|ulQ!%{QLPcW%D~&QS^IS{6 zumu&r9IU>C2@IPwzt+@F3=)PTUp@^MH;5e$TtF*@CE5euCj<-J5z9H}=uSpZ3<~K1 ztcw1^u!`?OFVdGZ$sy1UP3u2s$H*XlcWS`G(LU~ORQg^NDcXu-9Iq7YOA|%C_}IZO zr`cErLR*afP-)nYo{?|Lub6?-r~*p~r$wG4KqbY=3|Z!AID}pluZrakgJHBoydYZf z=tl`KoD3N)pXc-n9!Xz_e~KoD-e@|9R{zJ5JULMsR#Pk4Tb^_hTt|K7ZL%lBN}#cH zhkVNKTU9Pgw)o64}4VMA%W zoZ+zyn^+&{O2Zv|ms;ET)06gOCk!*mp7?c#1z}C#hhU*^w6bUj#+P9f3VT-3QN-K) z!stpLs_1fozq2T{>}Fzh4|AC0xi zYv=;fn~NBZK?Yq%DZuBkMHtw2Gx`~?0-uXx7-nm}6j>mxy}^JKdPE+VFF0@py(&ME z*EtEWm?VeEm%zX#&R*+VaQ?|zY~@?mr^yy zD*-zD=y5c&A36lPqQ>tLkq$z4+9zHS(;R{NU`A9bybRyL4Emu${UR!n1vbG7`lI+v zxLIH&KqbA2h2jHF{17xzDMC8*d{<*R;vA(r8dlNOVw_m#XmkzD70u#CM}yH+BW4S? zLvRfBzf0949mLD&>M8tVNgS#$)9AYqtGNQvn9$8g7kbe8KZ}K`pFUCCaN&1 zO^e|VnBdJcT+Wg69fr5i&oa`u!C^3)(lN!k$%&s!?ToI*O%A==XrbO|L%wkNorAUHzoQ-Dl1${HRjzfe$g6{}8+CUG{q4pe z975w<^{%-LtA;j|4!d4;eK!>Fdz?NDGoecJ0H;@QINf93Zw__f2-;#MxlSN`uFWu# zZgVYht#JrOQMRk6YZntF%l!ogCqG$vwo?J8yqdWr(g4>;*Q%>vIwggN7Mjb<9S+PB z=7&huAzo>fMoq2WP zK6kZee3iZwC14gUMtp>wpa+e1UB7?hTDS0@ea3Bhx5-5Rb4SaYx`-ry(gH80mY_mt z8C%id?RMM8@V~D(Jt3YDX)%cZyN%DwcdD(`@Lp_;s~(g% zzYtug^2O_bePW+D1_6XpLtoJ zhB2sB-_z660GBfyhav7Py6B{jM~Pib1vhh7j&*M?4EJETvV#*S0X(Spt;H!dQk95L z!C>hLI^@9V-hAVlFhc(|5uSPX}6!cpEN6 zYg#~8BE1b4sqXT(iDYN`Gn&3TvzftECU^xsDc%q~5a=CkFO{?FKQY-G9t_;N-HQH7 z-eoQSO6E3J<@$TQ{9@BtnYcgk_%}w=avABnyvrv1IlD8;rgo1VQ}J6VV-Z!U`4>xI z4+&JM*<-^zBv89EUK{388r+>>eD0wig2_x(2yjY(ZSWbFf(e{}d*oi!8*PM0W!Qz) z&ZouD@qi~Y9D>f|H5$N`@m0>GP-O8zir4}8Ukrz1r)&u&LtybT!x7l+yN2E!0@%xN z6#BEhv;YE#ISiM_(4VN6vf+J#=tl^`rW*%_y!8-tdGjI%Oc;m5zXidAy@}SXr2Ru) zKOjA76!jCu68;MDQ=_JzEYEpf0B6B%ODRhZ^;b0Ow#Kft%3d0a?SIsOeX#ceAr-OD z8UBf3sRktPJFtO5)sZS-F1yH>*f4BQK1gUcB`&PaUPWElJn@`94BhiRl#N!_XCs7T zqw;#{fB+kgP_?ub+g}M3MSaBx@gNgaa13=6y+wb7&=JykgZ<)T1zqjzS5z$JnPtx)B9 zQ@VrS8X4T*zxw{9Xr8Z?;NK8vJ9dZvk^5)tFZ=Tm(bP+z)M^>@1^hGr{Ta*13yvn7wn6fF0MzXge2KOqYMbytq~(wFh(bKJ+yg zB&Apy#(AS@)(pV4R?{!?m{ru%@a|u5ak*O&ElATm=z(TBC(g7>A(| zQ5rV0M^PH5D6pD&_ss)*3wYLsD+()>lmCgMKuO<(PMOSJ&;sJ z#$n;(2mhrF1NRU3@EIAS*sr$@fu74Bv&mDgxpPOQmP|Cvvk=t;McC-v@u?4 zRPX={2YTCU7K+S3`dWq?uRF;qQM|9FMixP9UsQ5%Qg1$8%+Q<>J15=`n-C}>@=ifxA^|r-UNup8c z-?lT>nww~p*#jmMQuZLvP2lpAbu7{7Yuhss`w?BJc`AZcjY`A0hE4Q>f~~wHSgh8n zNWyd^_WQH0rW7M7POuF2&_!)iwzu+9jPZ7HCDpdwh58sj)oL0bDz1nzW6Z-`Om)U{ z!@Al04d%9wkFNxG<~mU)>(T&p@`Ei;s?j%GCyO$ptnsOa$C^7(B%9IrS!)L3fXoV< zwD@h)SW-{3ula2hlu_wSDmMq3%@c#Lo4T0Y&0%Qa?Rf0-nwi6chNq&(VS-fw(}NC*O}wZ=n`(fh z1Wcsc&AZIY$3Hilv&?neo~Z#zdFro_= zw>cy8LMjnG?2TZhP!U}#t`|Qz0(8bo=8t4(dOqIks>jap%?^Vrus6De+$^DLbGy*J zIOp`NL!gv4iefp@Ss&|;(a2$XcU8~=J#bp*I{JeH_rz>*9R1+Hy|B7aMKPCWr|RJdkd}0jq5eekJNcwz$usH<<3m zj^Hg${8iKz#}+3mi}^T@t1$SvQurJVufYi`Q_O20H1Q~mS#KA)PL^DYLG@mm>sa7A zjQLMcnv;Gkox%e5Fb5uo71(cSheK~X_D4?As5;Px{UN|a8Yvgc0!O1-9r7tiWd&<%9CUhg8(e;joGiZSkZvMozK&78ayUcxN-1H!P3+*=p=JkMm zHo|ObF&{Vo${R{5!5lhbzGz0?5rpT_G4oaPf)hWVo-z-cS*R6gd7!{;7&I)S1cueL zK5dz!r0vrRIPmj#wd5j`(C;i2I$Gp+m;quYD=7;8e43{&5 zh4h;Frr83M+63;#kZL8Jghgz45r$y1X|%&&F(yiLh)*io@k_A1HJ3t_z}#g(IQ%Yk z92Z1bh7sJY^sGa0IlA+CbYO7M0{75q^K)~m1K&qy%x~-+W2L|f`qm`Z-<&L2MR8`4 zd2k3$a|SAfIE4KfbD)q`#am|fa4)N5_W*mZ_^m1DK0IYJ;AwWebM{1W;K^KyefFfv zj!(nrM)mns*1@;Tyznh@i&WE$D(lO)%o1aVc-_i=+w`dI9O{48xGN!O7R)cvwLY>X2&Yn> zEU>aqnjT*t7BUB|(Khi4m;dfCE^9^+)1L_c^bdeJ{ktm7`_i@w}oPctV#c;Y! zmEjH7EKvxp>{8Pc6oF6roE!w)G1j~);I3aTVslg-B{hvzM^9AWYY*n_v5Iw!ale=& zyalR(u;+X`nWq}2+jHW1m~qCdPDfe5D!fN{Sh@CA{al=HC2QVrV^-iysz{L@b^20Q z43=s5dR7jBNz~ehg#0(s z0}}u%eL}EQbGuczP-F&%X5z?j(_%4D+-g-U7S5;&qin1228^nz(;3BD( z(gxZL`3TtR#mJz6b1|A<|BXnu8g4LJ2e!7s8GIDL$Z$tfX?bdp17uae@z34a*4j{G zr1E^DCRpSpxo~n>oe=%W`m)9tW)Hft6pyw4p-spWq@G}WZ>`7^rGfeavBtG_Z)EG| z>3P~b6jD#Hh2oVKwZ2zu!$;6H`-?Uu@!ol|k99Jt(6Xs@1c7P#tMvUa&{oq96Z5$} zRO-N?=+f?|#SR>eW&Z6n59w|Ec%H=57KU3fHxIhFC3KkKn;A~SbYVE9JNQ`xFwB`x zbxwd6JGakXHt)&7(99ImFm<;Xv_=8yMo|ua9#(z+?!UBmNg_}4X9MqU{L`mHDR8K> zsFY1BM4PxFdwuWxU-1o}{C40$oW7rrhk+{*IL zC&-{)x#=c)()GG)D|8ja@N~*|J>imHr;wD8e_<-ghXNlhH=Y*$xRH5*!#%L~Y`NAL zUaL(noF2s*k2iP}txnWg<9mrrYrz^L%vy3vc!%pI=ie7uZp4&CjTY5nf}jSJP>x+CRf}Oa_Nwu3&*x_O^mMW{wi($qIbXzb73D++ z#DVobqr^JUj0)D%I@YWz@wsMIdp!3Wg`Jf_6L7g>56x$TwzdsC5Q|?AGhD!MlDeBQ zf?>#aKUX@Yp8-qWK_hO1*qy8v1dDmrvHJ}xa6<(acVa&3VsC}BAQ*F7F(*t-#;xu6e;WTZ)ZuB}r*R*o2C!OD?t|>M$HwPN z1!|`|%Z7izIlt#2k1$vtgA6mloC4U#+n~JeeVpE)+D~2gJ#o5Me-xcsgj!(nB|5@WrCq4sfBWtK#Ne~}BpnTcb#_?kr-%Hu1*IZP> zvlt~nF1?Rc*$Ga9)|6ysnpZOe#W0^P7{3@BK)@b?x1;mMdE+GoGePVtm<8r0;M?)- zaUMdL?>KM=lBP6Q0iT;P-b^Vl+ndujU4?*f4!~}T+0mQ?1XC^07Agk64O@$7o@;^Y zB}brQs&(DsN^#&WRA^4Lvj1$p88|x_O}AT*s@xk4pS9#0j9L$Gz^L`Dp`wFf$6>^{ z$rv9j5NpI5|I9;9`B)`ZS*tf0p5W0Y?tfMO>Z49Ph6$czApEVyiL(UGK4mQv$0*Y6 zF}LcUU6d({h1831%@umpv9~8(-Q8?E+{;7q5v%_&)uW6^Dj^=GOvU#bH zyVtG8!vS-YxG3|22RvA^wSt2bJ^-Ss#Re;H2kP=q*61C^;XvXT@r`UMGu!yv z9FL9Y%>@FR9YP9!+3^gXC<|3rwC%VhQMT)2BMSVfj8^dihmJOhA$^0kaZ?Ufg~pc! z;c#p;{z5|?I2vQ0*Xa-sJyc^Dk173w)X1=+mpGChrXAGVNsx+>K(^THFv!GC`8>Ll z;}rqil0f5gpA+ATX2RAR9JmeETyFNqyiy)*q3~Q`1&^KiD_*Ja7tI?G2pxx0#vaxB z479hDazu_O=kYW~`5$1qy46;k2gb@UUaJDZzAbhzw=I#IfvwvbzOZx_^F+I53G^}j z=oN;?a>bD}06$f8f93R8_{7!M8@53mmEMK6{Uh4K@NmX=V>RJP3I)t(Qn*XtGb;x` z594hn5Q-yQ=jdlgg}OV4AvJ9#k%C2ya{1mVYv@NHu-DNM$qtI6wX<^_gM z6;DZw0o|o0k55Z3g4g6C6T)7^Y1G5kISwzd^17Qd0_(b(w@6XucfYpOTG7kA5(h0$ z_JZotI@b$WWaae^+RIdno?jKf%rjWwFsj7uRaHGESW|#zZ#+a{>2DnM?gzB~oQpA3 zhK+{bDm<=siVTrjiFj2Dl5x)FA5@AKMf7K~sn`hYB^t&99?x((W#d{~pZ8ota#j@e+GzD;b5zYv$G2)LA|6l|qXB(=anbe92csV|gZlMN$;h*l`fBfoF z;a2m#D9dfiZ2yuUG1@bwH!y0Bc-(M~T8H66c4&E1pmtvZ@ z$CR14skR5Bdjq%BcHqWZRyzF2_{Ss7G?E8W)gdz8)8&6xKm*XCu*}E=_WB4P$oF*9e`<+ZXj(0XM4?he1 zdk=7!@3(DF4h$kayXQAQZ;4(W$BYJmX%IIk*yUmWj`QzuFl~R|Ws)tqjH!e0--$1P zIfFQy?s5ycVPb~aazRV}6F6*X4r5^$XC(YRg64h_=I2CfK=={-3o>|I3w61B8*rEI z_wU~23Fjmn_3R#h*0(8v8Mosy^4e!w2U;%>9~ezr?T)StjqbnqK9$y#G83KNLLm&x zHPkE;rd2Z3>}$<^615z2yrJf+fvP29uio9%iw9U^^v9ga2^1|CCk*@gl8)g?tJ>J? zfwdenJ2;uak%~ay72_{cCHySUeb#<+(yrP?g?uRk4|GocKq zF6@_gr>_wew}D}|8ktT@2He9sR&9>=xA_FMX$;y&;`kWi`(SSj2PxtVVX9RhGVG&tmcg|voQbzS|ZNs+)A;WOuB04CgSz zLrGeZ@Q0I3M=b;!8ID?MS)YzEZ?cBoYYYuEuN8IWZZ$*TwK*u&_4D*V)mvh(k+-iJ zEf$&$p0#(t{8Yg>w8}7dir;g5t(8|}j_(YyA+55Ive;xB=7T6|K!(~CehlZ$AoU=F-HjYP!Hxj=N*Rf3*=2MIP==m{# zy$pxrNJ}rem*E)02FXM;Qu$GKqZOV6^Wh%CT9_~qCY&2haw1Gy?+^cebfD%vjD^;o#|em9(;FPB zqOkZ2U-X2lp`|KI0pAB=p|SSjKx<%~8S5W)(JOlR=Uv1CxWDOQ->%Ry1X{8@|G381 zG6Y(V!cRVgEQN*=b3keF5nE(!24pb&;lJbsiarr1up(x5#r3R`>1OtUQRqzLkR^OH zr>8N+_@%X7l5RG~1LdSZ|2e@rC$Q_)!>W+z66el9m$*%eD(gq~wJ|^dv<&pHb7z_j z5&f7}4t1CPWXl<0Hq9}U5brU?OgKwszzZD*IL(X$ln?F3!jc7J9<`v1vHN`=b!X{lsuM2J3y0WiZn^nCl^A9h-|_ra#1xjJ67*L_uKWj{)j;8S@uty~DCPv_Tofye7!^N(jlx4U_kkGsow0VW ztA`Hal^sPA)sj&dR`b%!;LBMcKG4^c$I!xMi1dIrRGv1PyuussMzXI8YraUy^{yPF z$m?=Z@0zW=4JK?-g#pjx4Q4C``SYr&q%}eVYszpc9uHE;BI7A7GSq zFvu7f1T{dS{G&OTGFJaLvT3a8LR$AGknTDbqEscyy+%_Fu7D?PHDi0|)|r=T zl|E|EgvTZNRHI?*>m0h#_P}~jV0?<)Y&6x1qyintZGoD_=tSHIs0CtS6Ty%XO}Hmq z^F&h;7@q+eYrk=E*@h7?hxpZA+TLJ!>aa`#${fstO(mXTRn);4Fb!fcoNL;N9_DZv zkW8#Ft)}N6)WX!4+3~@QUa9hHaUyt?S_4~-6Ue8P;zt8M)K~Z zY-hc&+ib;xAX+qAo;{HEY(B}qpjG-aS|lt|$+K3)G_lq?)k@~)9qGwKN|w9CRTpxF-D%e7X`(z=GCL1)LI7-?&`#guhx5e&Ei008~KB@%4&hQ zJ{{oB}r zufx#QTgKHV5;wmvrHjNVL6jvnRwaI_exiUN7$%t#DaYs3ax)SFp>g^c@^V?=7MW*u z@@v$jb=H@!nI+bMt7J`JL09ak^V;-AW(jW#}a zjVgn5ap$#*%TF5rd-a$lXUW5uaK!6rDHrn1Cf25c8!9}oxqO3#cSqDJK&{QNUe-(1 z=sax0Iix4}I{p@Ui&Xdfl|q8z4UcitoySpb5*aU~@K>Ul-UgRMv+0Zr%A?t6WNDq&B`g z*$od@`nvY0#2V&0sdy?z#3inCq}=WKg2HVe^vLXSXss zz}f88Fke1Xr~fp}E2K-NfuM$Y7gy~9YnaE@YvK7s#+O+Knva`2jjN?6LNsE{L~bL#?k( zbzoBsI)wwf$j777`UP^|2M$%!l(60Q0v(TP`{OqOFt=JE7<1HM zaPgyR1Q?FT+g-V0ixZ!SeW~eUKls`BsXp2)4vG$7z|C3+%(D;M7SAgLhBL7z{T>Zb z1Q^bxLn1_8<>0r*alMUL6wbxcFvc7^b6|sP{KME|OBP%&eFa*VKREOxW-GirFa!+S z$Wa&$f_Shtzl$sLw*h7ZUQ`GLqaD$B{S5y&?7tUxd3scPD|?hkQg0cJ+u2y&-M{6* z8~VKuvcb-eD~4K)od5yx$MC0+=koY7zzRomi7jtz5Qj>2>)+h7KtiXb?adOZ<%uP;k&xF%2HJAPm-u^@d`rYl%I~e{i-2TKm z|L<;pDh2+t+ni6JdS!@ ze*1HSe8Il``3q~1K`+Ype|P&cPhR<--u|qYOYGa9133Nv!0pdwT!Fg$_U9fv(4uaC zqKJo~#d2n?df;LafGYw?b@FQikBx}W&6hD4 zeGI2vb_L#;E<68wU}Jf@|HJ_^@Q->KAJJ4Qds)3&yB@F(-z43E4;IMQhS+V1Uea%_ z%)U4%(3~$jh%okI*JcOoRLj?lmL1XzMF);ebr25SDbE{X z&woM6xW=jufes_(=h4x8aS`ih_`_mJhX2iV#r~QnOm`@UNdLn1?fnyWRw)8%?|5zJ|MZwwtj))^oW*pBD6M3ybi$?15@Vmq%s^WPP`W0;RZdc^Adux#I0l`X@v8_SbZ zu+Vkc-+bkt58VSZ@01;dQhwuIN||mxxjqgtC>umy+=5x!3LG-BKJ>{M{#({3Sv3vP zj0(o@LwVK42wZ9iQYyS#u6Iyo<5-YFkb8Vl2fYG{2+k2ia=5 z;@P@u%32(rZefiCwq1&;!Pcmu>{3W$d9DAC8)IChc>VaI62pw@e zmlVAqSfj*CUM<%b1%+9)j?@D%?Gz5~eWZ{V+0>vwl^9-On%3TxGA}li&iCaQp77!C zOk;T~Yj1BO%wNCNWlC0g&^oR1$MB>Fxm2vjLvyGL>6~|5BtH1kAGfYER|ZkjSe^+_ zGXBN#gp#SmG-)c^gPy*Y4tWP2Z;iK%DP|Pr7~;d{hC9!2eju6cpO$q7T!+=s|1y_4I3)aW|aZSBgE^C zh04`^+-YP9Fr z!y(sh)1GhH!=#qAXixTb?FsaE*-^tx!}k1@J)GR<(jm!i?b!oQIOw2aweC9e0e_$M zs}$Lf2WcX=#%j!%IPKZa9;VheUWdFB^voQhQ-yTUQ5%DvZXI>1H{c0Ja>a4$LyhID z%!|J?i>72_ofd@Xn}_^|AGQT4EHc)2v;{;<@-Sv_s6BR;qjCLjY7auJxO|!Ke|2NH zm7ieb^D_&W^KpLTuR(AL8{ZkSu;*Vv&*~8noI~1P0}t9`>$z)OR|O(#q-p%u8gdH_ z`Ggj)VK$auod>4pL%4ZY?bZpDprNOOGH6b?E7XKD+!9{Sird0^R}jCTP78hPt!72)Hy}a9ht6@kvnPnW^252!GMxK8;nSD9z#NGAQu(i0A32n~Cw?-TvXn zu57I8jLzK5*pz2e%ESITKN`~?w8F44Op&<*{BNuq5o{bn7~B8GzL=y2d`07DgX$l& z6E-8!Jud&=-5IvJq1J_m#CVXdk+Jo2;c)+6=C3?Dz=!%z0`JdI!G;n#Rx0u6q3hmFRs z>+p*@{D=-uop`#$59IKpI6M{N$8Y$-8-C-4-?iblY}^RrH*3x!oZqJ5_h|SD8h&<$ zpPK28IDTRV&&p&Iza_)($MBmmxoHSQDdOdHeyZY^7Hiceb8shK_Ti--EUT*$#>+aq zqRy-6ymHQ~<-9`9tKwn1t?RlP2j%gWK-M_d3?ZkrSoe;1708wr|EfP1%TX=XUEPc+ z#r&=jAEr4v7%w?3#4autWccX@9u-+N5E}n@wTM@Ucva}Coq=&Ru0ILsf7B|N=vpN& zJYnVaFpAyW?l$hQzMSZ~TjsX-55Jui|I#MA?6wEp8*#FI8jL;(A`EP?-s@rH$t5k; zuRV+c+1z5~^)x1S;zL6}jzpF}ikIL<;T#Y2;01NAj4vZ>5dQJ{IIoGfJZi1#Y2?bm z`>fqPjUMvu$E_D?U3Z1^`Zq6mXFh6OJ>Qt<+lY#j7)Ep@;l%DwF*DEiS^Pmnrcsa@ zes$L7sqf4$oBpRopBSYtzp*){bSAsI5!3CRlyTW#-cxwu$_+g~I^8epsiTvA zdO76QS$S{1>fbje`@w^AKYb-4|H?}%&h|NW`kf17LtpsrV$8YIy_>DRXHWm}+FySh z-|p1Uo1V@%GN`uK9dUPTn)Skl*K)E$5A_PU&fg>Qo6djEx$yJe3+D&V5>=z0{$Y># z)3R?i{^gn@Edz|mG0%-i`>OQe2e-FsTjcsKdEmtJN26!B&JMUV?BenZabJbpx%|_a z3(B7B{pphIOGZQA=f}Hh;}7S^r%!^;f6#a6~pzmKET9o?Po3|{?%s74a z;i5;Dhg0Rg@>arEw?)nIvF5woK1vB2#$iXN8iNBgO=v~#p+zM;=RjpR-&q_PZih$U zqKSSq23^1y>VkfN@#7G#@4@0AN`F$vF%cdQn(yM|hK;j~)U(ipz(~A5!)u`&k&7A3 zfaSJ76<1>xYT;5L+~{;WJcjDku^Gls!r`}^d3JatF3RXPVX#m+hGuI8LZN^wd$AG|S6iYP)KmMD@ifO|%`6_9DIY;&7ZT*3>nsX2v)&Mb&*pI2WC)>e z>ESBPcC~WM;Tcfook|-g9!la#9fh9&;q+}r%JCsVttJ!+(;bAVIdOYj3+k_#^#il? zT01-)hk~|g4Jx6*Ol_?+Sc{L(aM~F7mudwPp}>A^#YFI$q?Js9lDs1A;{-X7R6XMj ze>f!Nr*SyHW0BvyP>y|2e>^l#&}oa1mXGtW$(I9PU(`q8>reKTb2Q`d_b#*3 zMx)dZzY_m3p%|D-oo`qEJBY6harl+cocB1`p9xdtXl9+j%zn#>OZpi5JU4J6Ku^C2 zfV;f?$%B!&DjN_;-!jKpt^UD#v&d54cKSp!D+IIgWi~V3MMf1>jN@>&jc;_b5EGDC zzl{sFsBYRS;joH&;Tt&dF!@^GtAYr|gS5~d2+aq)m`(;P*O`R_8#)A}kOVuzg96l` z3y_J^Iehhu6C^;mpTlgwn;xO%8Ycrdyz9d_S+G#L7TN=$`)civgTB6bj0R>q-C1Vi z$3jUT?>n=kr+^gO5F|92)C0H(_kscM?783%MPoCelZ`V7mKd!WoMA12V{0~DT|Ho$ z=MlbL3(98zOSEuZp^U!z?87!1+IX#j7a9!92ntb8EoHXf#3B53+SEBP^&oAn3|MQH z79#ZFD}-l;jh~2TjqcTgrbAHPh-(LdN|XBw_24P|v8eM`2yI@IBX13A(4gM2U~M`h z@mD(U+oSR=)69;5nZ38gr%4{8zi2IUq2(6MxB_YUAcYrnP5{4H3zr7rp4H0a`k;;8 z1A~N*k$TJ=3A`v=8y>U;iUQ78V8AA=-gt%J{VW!avxHCHvp*V_6y!CwpU>n?0OM8& zPkHdtl+>ZvFAQ=#!9&6u-?9|&N#8EN&?COD+i zUtPdp`k~e^TL~1)I%$VcVH@Lwa&jdXfsmhcPa)DAL_i!L0}*us;)x2hsLe z>|=inwE3e>+!=}8dA3PUgW0uO>Kq8o=h_%Q1^DVwfB4&iv3)Db7Q8v{MR+y*UpCkY(3b_bsL^>mM*P}83(*mb z^&{-)VCre8Rwe?%@$D7HNdaU1crj|$EP4llAt-;8-?doiS7308vOiAp1`{k%d&Ml= zX$Ub?6N&{Po-HxapnZtO8@~h!%rCe7At)a{-eSd! zht7-}ChD}*(UAIMT_zGxCir;~W>yE`)YTyPBOt_Jods=x&s(=$5FQIU`Z0BkZg7!U zr=5tj$qQ{d=@5c9=aIyRDs>N)YcpbxpQdRolfj@&YZ(P|@#-I{FFO2UkroluU>Zft zxBW4AO=gU?#1Y`|!#-@e6Yww7ip4@uexjJ0`}05b6T>of`#%JXH4uLvo#t|sV1GPy@p$$(op$+t%te&T1#-S<2Vwx5x1^!$uXdDF9ABCV!J}|cL zQuD#C$!a#tgxY}AP+bl}P!+`#n?V9Bkv!A($0BR&0~dUN{W1DbS6u;%7C-`~s+IxkaUqPL+vC&+>jyS3@!5I$dLQyU1)N5L5< z8qC!7F!&?EV1~9zAx=iB=kyRB13}*|xAEPuuKL0R!n;$wkNAObCgg!;TeT3GU^aE3 z9bOEpxJKIkC@_0kYZC`%o3wdLp@4oB2=~|f(~nw#P+TK=T`Q0Pn)=%tX#eYJu(BfZ zKLgU~k7%F-*Q?uQEKn*K@KFx-^Q(CKHM2@EE7L;fKxn>D9SMvRjgQjf+Cq7tRPOl-T z|6CW301!nsp{bDWv^HZA5`U)!It3hlvxGG}13$l+%Nn%9)C%7`QU0#L*Dr|SSS7}N zS~w3Zs&2ahKb0EvXTH>$!T>s?wakE)uC_LV^I&i~(IzTT{T|g-E)LH*=eF44IHgMJ zYcL?%9*lFf0#}3aI0(wZ@$Ht4TF?v#$_t1bo`STma29a;pNK5zrzK5>q_1m%5+G2; z9y>uOp8mIQ*mGV=IMy&XnAMZ|&<>b&fd4IR(gXOR3rqY8-mE|bEcyrpV&N*m_-Z-+ii>}lfCqQHMtORh9keZ*#bi+R%G&^Yp zVxhpt+M<~dXscGH6_nwRW2o_eEZ)6~xzT3kg$6%^kj;1-Ezw#wgXko!O)Ru|QClk; z)>1F*f^iH+fsddTgu|aQY733N+oqF`a?qm99tB>!)XMbpXqJ!GYX&>Oprqc8NQ5?g zOV zhHO%|Tj9@vh4`#3D-#QR^*A{Ec~D@pweSbL&-08XSA^(=nteLh{~5`cTsu_B?n+*s zKy9Nut&Gtq$>KiZ8Nn5BMNGq(Wa?`gsq?w*U)^{{$}9-Puh}!57%1@6ZMt1afo7ewCECFfUuccf5dMYMG7(zx7ezU70)$wq zg}54ajm@_O-2owvYAp}JUjPLdzXJ-!7R@*jjQJHBMaKs%^_N!AU(Di1msNxZQpaT5 z{xmSSN(+|{;rKhKoH!Oj@GH|?*pGvm{(c{7);Kz^&7J|XKdTw%fU)}M3Gmy17oWrC zvrlvii9gqb&cd%hYk*c_7e#w)W^vG7f4m5$+ZKF79^;WQ_Gd6b#{+ArV}kG(AT57M zfCY^PWA(im_>;hRhE^t>?)L@1kOZV{bS2El2_i8bya0jNpMpLjVUg``18wqF*#2Z_ z8I92p$AYmw8cJT6RDY8O-Tf@$2f#V+^P!FYFc=&)kk+(gBVC^j<*wBkHq}iJ2NWCi8W zV#3>>^e4^mz(hT%ZxA7I3WR=PFYmN3Xsn7haO}YPKc}Q{WbFU;loU|LFA5%{`acJx z8c>$(QiqP=f42it?R+_?@ci`_u8$F@o9d&Y@TXw8lrKGOq7+DUNHYrqGxatx5?q4@g0B~~fxoh(*#0se{QOxF^}P!C!@zE(R)9ZT zpuSUqa9nLySDkvnKc8DBjf407=_ogwK17Uwr0TP(@Oz=nr@9SI1_Qo!l#KA|8y~SB zE`>iFGXnKs6a0xV`y$;8#-JHg&*~#Q1`4Rp-N270p7hJ0M4P_vEY#yp2v0&<-wRIL zTA@E5#Y31~q(3!^DOo-Js0H#spu2R#9|j@#oj7i<>obbQ)4C^$NBP(cp%W0^fN=HF z6#NNb_J;1~aRSEvQU}lZqF|y2vO*2g0k#P4*o z?3IvReUl6RE-=n2ZIEObgg@cK_^B}9NNuzn7;S(yLI#YGhT6qAVaQQ_+nZ@tgC>6u zfcxk3A4Jv1 zs^Cw7pw<8zKOC1d>~~&S$=fIgLVylWUc%n=is_G9Ve4QvwZFq>BTc|Mqk0Vu z45AR_&>hl>$fO ze=JZ67$4Fac%Xp#dN;z8!T4^SWo<#H#cSh7p)f{XZTmyP_!g~92_Had)>?)`%NlL2 zbeM}jpv25Vp+Tc2nhm1cb$Alivkz$o5n#X{7-al32zOp9;D!RvH`(C=Z+f26LMK6J zb(bEBqd$36-Pr4Z#0?3>LVvXk3jwofffk6r;4`YmCS>9bu_moS2+k<@b(z3}Oq4e; zDD*=01w;RBOaSXrdt?dZW&tD6HKUZL;xAYN0h+<49;6y2=jsK(RrO+I}2h zc$5}u4cb5h^+6pli-5Ua&>F-;gTLu42#2+*w4ezPl)uNx!o@+jf*jkQi0r7-3WPy{ z4Vr!~=s%$aiiSYn!Ro4>#=-3T1tcbvghM)InoueT@zdQ=2wx73$7qeC*^FA_2x!b7 z0p+yu5F!Wo?2p5Ae9|V{TE~%Aec=e47pgF0qBk zgK+n0;ld%@Hch7r_#<^5;UK^x>ZwvDRD+0#+UR{@^n_}gkVN8M+7i(y()zomXbx@i+!edxy)MNDQ<7kJLGy=@{Srt`uk@zJ| z=s5ge>#PaIyCH40a52E=FFUanTZ1t_Nb-NR_a@*~RagK2zBjpaX=p zwXN9NHri_cpLO;=$qmLLgG1kDJDC4d5w4T>VHmg%-%y>k>|sf=p$7s7&_yi$LWFBv?I?M&OxFm^5Le zi6xE12l3^bMubPZvRQb#X+a1=7=Rf@!~x5PkYt!e#e1%_GuNnq{yNNu`0At)x(`AR zG!^urg8TDyn(jQ)0>*7s97g&lO*z3BvMbKaqv5DsHXul4{b`wTRz$U_YQk_G?@)KE z7Ss0w5Zdw+K>A?1#`4rhI1W`0G?j%=nL*cK1v;R_5sQ@H3*lt%frKwshdgQ~6}UL5 zLv?~JBH<>&uNXVN$6`d2O=ZDUCUAgKC=df`k*RC|m5Hw^i628_ z)=bcbe3Ei9ti1GpD4F|3=|pbSIMq}zidGJ~S;ymkPsLoP!xM=AqY*9=;l#_1RB$B~ z2$%}puTD{cLDFGZ9#F3s;Svz;WS&kR!6!o#J*I+iDi9zwDac89oDrxu0tq5ZAn{QT zj&mHGtaVH75vC(qA!{- zfJ8ihA5i&5i#^a{>}p+REU$qrCm56;s61EOj;b)HRP~=mEx~Bz1|xL@QcpG-ibBxm z5KdZ|K`ZY!LPQ~iUzV;QfDvI}nz(fZg=&S452wZAa7h|gLS2@l3z`4BkwKh5$c2%# ztjcI&7~#35;t(pXH=5{%CS>c1q@PKP4agPc98ixNfdZL&1x#AfDE=AvlWAB04YOQy z5F1Xt9@!uyiIOR((X_Z5Ef!x>62BHn3))(rt{l^Kdp#AHKh6Gb?9F*Y~{plS{6pj1cOKt z?IJ#6q81_nfgYe@X+byE?@xB?a5R&QKnh9vX43z{bY(9ZX7IyUgbt`TOao@nm=UI~ zAPjq%h5_%jofG13V7UiOk%_t7KhC-EsLnbl6d9$Kx#QG^A-R9f5<^}d4|C5@YS z%P$P!5DI$Vs5*s~iGvGCA4BUc|5Ah}&;b8<9iK=V@n-H^{Z%ot7-8}TKrqnO;L1{Y;KeC!^kVU;3Pbi zysukA(EmkL5Zz5ru{DH8m=?s!jK)K-WLSji4EP*(I|tMq#xR#r=w74JP&5%|1f5EJ zB4vhn{QEGkYjEuKqQ+??q z5Aldoj<*NTl|~=ENhzK$0hlt|hE0B0M@#0QRN*hj%;$B3;J!!UV3zV>% z=ECRggpkbf=u9?>iac_4R^CX|^dgl>-Wu|XyC5lZ3@Te|)HjE4Mv0l?>PTd~S^~L~ zYT-6(A#Spqrbsx3R*L%#DYSv~x0*sPrXcNwSXPZZWgOgbYqMYZW$21~Bb>k?OF7Y) z_Mc1xnBpE(HyVjjD9CME5J3yXC!L}juYRWeUUr3>?QxDRQz1nIDgHFlp7Xg=j= z5Hk6*=AhbRhDA8(183;;{?sd2_SO`K-&1QJtyD0S3Z685mQ0^j7$KSw;ug9_1Ug3e zHMA}1WlPY17(0kXLq9ZmqsVIhyJW^Yo-W?w0P5)E5rv>S&e9!&}giAy?CsNrdZfPaf1=w8)=Z9I%7nw@`5%)8h)3JKji8U?lgck=(*|r@RD~ zy+n>6Zt#LR3b-DDfd(Vc6vE;hfw%VuxKpTS@~x+cR5Gqc&GmdkRL>-SAG6+lAXufc zDy&AZdM5aKK8~p8WnVp789=2A5TqW#>Y01$slFazuc7h-*h&cv+7GWq;0DS&$dXsj zBUL^1T!U~2)Qn-Aq;RvYz_#w+LcDeblO^~!n`Z?0Dlwe z-Ll7(aB&<($8$uYvM65T_ClHAJO%cmKSOyb>Y~a>s*K_YrP@%c4MiCtC?m}K>K@mS zgfJ?Pr`h2MFoepJI3{x>t9tLcy{|nFB~CFyKzUkDrSm z^JvjEiT-hMF7z5gra&YLMxqc}7l_Ou-j{c{5?sLuYW*k z8k`twsHM_}Nl-!QE8x>;8LoCwMG&g+!;<`IQ7=RZrd9rQX&BuZM0Wk=&Q4c9T)X^Yr)#V;Ro%P8dAEf-a&}-b4>`Zl_=I2BwwVLFaALlC zoS1vuHekxXJHktZL3p`ysD<$2{l%-UO;5l2KYpYA9bGUhT`(*BLGmvKv*P)}U{*dK z!pitB17an^nf7lCv7#y`{F_0ns5KdF5G&a?wnMD!di9{PAy!ffGuj|lvR|3lDa1<4 zs5$2Wu|lCUSK7}>UjW2P%h7{suXzwVTZomz#}BH`AXc)_$~i%-ME&fbIva?UR)qgr zL985JH|eW^SV_TH=j^lXmYu1Dd53%A#qOTRiN(usX2C>pq zHu;PYD@n7?46$$@;nxphp?)5q zm2!l$fmT{)jz1&NiZ9Me?79qxjkDsWoOYZQPdm^`%?o2M2+&Fp>m)!cynyC^`frZ? z=Qu0qUyVT`8))Se&odVWXr*(Ul@#ha*+X}Y;H-GQFrXD0_Bn7?pPzh2pp{(Gub!eS@Bv!+d^jrtM|G}1 zE4e&~eKydF7U)bkE7o81p9Qp%Ld(t-Xyqu+NuL8}#dB6bE7|iVer})@dFVSc&Iuu~gV^PTc^7(;LoE;X$so!LDz@qS+4HyOcG(QbS zK?6Py7DdyxWJgJn-NkKK6drD>&kl?tWm8%QFpBfTqCo%h7Chyr2UTZa6h;3%@l0S8 ze5=$s7R8C*j_nkSB75+{b}R}H6`vm%g;wcjVNo0{oAghyD6IQsUoeUqo`KHPFCO;E4HW-C;-^texs<(JPm3w4goQEjp`G1b{ zK>wdD(8JM%6Wf3uqUgT!!g=tR*7yQFxGD53fFAfB@!WA9fbTwEpa-q?bHsVj?@P`L z=z(wN_Kwp+oITD1P(DYe>CEQ}^dLre&NvU)AK!_d7tq6b;XHVn-MaPX4)oBD^Dvyo zq=Zg78=Qv%p6bpH=pmbTUq3TKTR;#0r*Ix(c@DO59K3i%J?gO zm>v~pi}Rp(3_B~FhuAyEc8c?m%Wd}83g@8~fzA!*VJkT=1kOX!`{Br!ps=70$zP%IOs6p@qSEp>ZBksO+3^9*W+i#k=$^?Ma@g&Iae9ndjzL z$t%m*XW=}!5v~pAVHX)}oQEVn+OTmRT3*?sY@CN|?k2x9oQLG!W}Xq}p&X&VRyYsI zqvv$tJXl6|);JHj3nsPUJe)c;sZ*SX*l&%!AUF@XjHWLX=OKm0TyUHR_3ng!4V;Hv zd=B}4ALk(oBkIC=kOk%|!+AK)+l0<=9=7IZoDt_CmVap4a2{&;Kd>{LhYS*(4bHG<;GU&O@Jsmy0?uT4yOPuVw4zzY%9|Cfq9zdIV@D2o$U?UrVKi0bk0L>| zRY4h>#LH>R!+eys7k(AT)i_kEXA60~*K@z$pwJkUl}SVv5#IY?-f&hm1kUsMu-WjhaF!HGmZFKI}@54(4Js z7ad&mw-mSD>v`C3koWRNS8TLDSDb(|`0*QI30dm>@xy-oy!#qmiNQhSjU+{s_qj$_ zU+>XKN1}J@eXbG9dRhe@Leq!9QxN!!`PkHj_e4fOZs?RWL^l+l%wu$ve-U7)1eTKziT|lw*)8^j_KoWucq2;O&**8S9YZKIiHZfTqLB*sGin+UXb2T0aWs;C6BX@8=tkNu zNGG$YFqO{8BHt3y2+oI-{FiXdSKixpxPtgUcOh2~(2e`)qDFFWq~uzrj02RCLFbC|>Y5k_e+{I%pK<%Q?c4EEpa{o*=8kWP}#dl0qsI;Ecr_f{AjFeA2ST9Lvz_ zLF_Jx*{RV(p)0XUxtPR-Ml!D;B!#EZ+fuj)m&>&kG&q&PmQF^T!;`8P>3gD%2+9~n zoIguS00Ym(fO9b5{7{#RkraUXdQeUv*Td+@Fgh`eP7G7th~2J;%pM37$@KuP`-6_- zV!jAM1uG~s%rbO|2eFj~2h!nzba)^`{4%abaJ?6@#3M@>${7J@&3k+JTrrqJT@xPRikvlN6@|rXOLGbe zHx%a=s_Np>skD(L%5qA`nNwMqUshURiZdmYRTQr+F3l^+sV*(f&#SD; zDJ?Ik)^$`CmKJz&))Z9P^_#k`Dy}NZS-pCFfhs90UF()mPF_KQC23p5R&04$g~{9| zZ(c#p>Vm2qRG?eaRK= zQsuPCXv!@>3l+tytE&ogR#%ke6<95y*`c*eVFfXw57aLqTWm|grYxiE z%IXqiA1skw9f(aK)5T&ei(r^F2WV4A$XUySL4Z87A&0gv6oH zo&pe&`O@Q3xf$`HpAA*2@rG?P$9ZJKfjoTNo&@;8!F{+oFnzUo`;S*G0uL>ICP zZO8$dk9YVVLqO)lAH|~X$^x-l%I)84eA6%Pj9&A8W1%x)dEH2zUBLZo59qKUE88?| zy|UoCUwqt-pJj-deSEX?P$~A0=CVJcfMSMcJD3n_xA`?tk92VD)l_8|owEF@mP z^KaE*`ORfdvp}YaA7lY*7N?m)hiKC!$Y|4jG9~(uAPEbdF!o1q+q`bhnQKv$=aW9x zwYHy4_qGMw0{!EZ`iYN`33mD$Q|V9Q{!aKm4bJfZSb1-M}jQXSS2wR1Jktzfud zT0>|}t})FWyV#OW3(^o)9GKjFgHD@IykJF&2dF^OHVs#nC-1u!D+~HM!TZ?l&gcMf z*6{43s5|8OVqmC|AmNd1Gy8bNRiRBFmUSQjI~Tgfq!B3J2tOSszt`_+51+igJ#2?2 z(lP1v$^!I@@Mkul=J6Ah`U5%;cis&S8=aG@(1kU}a&%d+Ei8 zDEvq3X?G3QTe59t|G^JLF&G(Kf;t~YaY-CMqj+CBl1T$2#L>Y{5FrJzwQ};dnZp)s zL+v)@q}U;BVh)Clnr<@9wyy~4t)S69IS-@XtJD*8wZKFQjYsqMcz?CQe}LyC^Q`y* z7s^MxZ(=z@mxKfANP}z=9}hwiH0UQZ(k4OXeP%rKb{!2ZCzcKt^wzh~+<&1pS=;AK zW6X`^gCQXpxPhgX&%;6$)FlQ5*|I{w2WK{^mrB||#qN_`g3ND}(tK+tGs>#+SRE+cIko~%Ox z!zx&z{_}wua?u?iFFw}CPSwt*q=BG`QM`kZ9}Q(1z(~Z)?u)yap9;9WvT5mZ9g6m; zOk%`2rcJWF{W3ak^dd%40f66(B%#f8z+6oHR6LXQXdU;v2bthK!x@9(7o>6{%hnNn z=2J9~M{3!VK6&`uPGe2_31`DanR?6aN%pN93g58IjA`3o87V>6@l z$@Vx2HM;eA1-cT)S~k7my*}9)Jx~0>^gw+v^lHj!9p^&gAKcA*1zIb#tEcAj`_ewd zsYlID9rxFR4EK?HF@K>y_0wE_ukNP9zaI(8Z+{je^cG78w0a%OoqeZ270e46W)z$L zxB?4V&74d>+9d7(g|6(Ox&6E1AqK#ta4Hkfc!7RBod#XOf<0Qt#y+OGIHI`YS{XX) zb9KxJx90LIyHAgs0Vcl7-5j!^Y!z#Vd^hs~O%NQ5a;6CJF)NPF#P3G-X?h35S^bed z6Ke2hEy1$?mVz>g7Y723@uy8AlJF&lhtOq4fGep;fV#yyw@rIXS%$akvt*_eaf2WT z_3!p!MMQZvHRanO;tSft68a_rZ0QlJ)Eb|H-^SvFzMCN9ZYWiZ*@ew8?1gqSrfmAn zt#+uLi&slux@mv=*_;D9EC|6uyBTAzEu*G8x%Dbm7PftJD$_28=%kN#xOv$!>@EAPb47!{@M2LH`wJ^#W$U0jspB7+sFSDq{uO9ONaYn z{ql?ZXxb*yjZ&6>?EW(Ww4Z>jGpYNMIIR$r^#7tvoBCrsLeu)10n{^qL=OXt zoRU(jj!LD&{&ocwp-`J{n6E>ZFa>Nz6E;0?BP%pRLwx?63gqS)?n|yK_1R9-k-pc& zZ}$WmB+%3rnffh9dE#d9w(*SD9Bv|MxsYoqcj6?jj%IB@$fNh@_^4Y^zp)w}qkn%i zqy0=E{s-U29Uoe{%F!PGE~amj_t{_i1#QcU^6W*D|BpldgO4|j?>3jQ`QtwmHA|{omF+jmIx9R<>=T{ z#@0V*WKpu6YB*Mn`o&vdn~l&-v6$2sWLkR6QR{_R=BpX?L#q|gx>B6OKC!Pn^BSGFs) zfCW0f56kN+tOPfCs%{)>=IuJMI3`|2_f9IOvJ_@CTDEoruP5BB-W2fRUEBi&^AJP} zd@0?Wi+A)~Y~QAqA(S`6J|m0(AJy{|JA$?RPVUY3(_e4o5hj|B!IC2oUmQR`aYU!RHUL9pA{oZ?x|a#)Cs?C?}DD@+Tm?h z63drIotw#qpS7xHG7DcJ#j+f&4{5FIm$mC zL*#aj9uc>B;!#1Ii22eTW>86-c$5?p|F=SWG0kVD>#+RZW6bd|W2I&$vmhqxnuT1A z+?>+R;ny&p=q5pB5#K@huW+i#-p4AP(Z&D8aPTGZOdPhvH-=dfEp7?HlCZ!*E`3e> zPd&S~W4dP;_~IyQ4`-_JnAv{f~)%1_h#0R-Aya}n6u~tvv z7I5lYSiVi`7)~D`|LOD$BV+bG9b?^d#E8p#Ge=`=Nj}m&fia4IAe#h!ZQU9)N$aOD zXnpBdv?hWJV zfKFN<9WsVHCz>l5F0srhz9e{szvK}5d#UE~dsjnycma(Sx;R2}`5lwq9{vLzEBha1 z6Pf(ldwAW*R*hwGxYm#_r+0)*2SHecsCW=i4C1{a%+Lj2|Z2km7#5$f|h-+!t4jaMH+`gR&7oq<5Y97lud`u~;%UYt>~kL#iQ_JD@b$ViPxt$H2sdk}(x!J!zuV^nm|vqk z*DtisH5WJRLhsP3WvM*pJN5a?$;<_ec3luliEQq7u z@r!ZH+`iizJyFV*2!;UA%6n|^-44lz}pX8VF6>`QZQINmv=lP!Co zJ^4B;<8QZMF{_jk$Ts=3^u|rt@JQwZgb?hO{!HBBKG~N_d?tR07j#A;@#gga${dJd zcXv-=G_e|p-^jRWbQY~X6wQoBoO~kuVmLD&ox9A-i|HGgp)ggUID~qIPCa@HeboIG zksXQ|#|JqKt#N%AD#QA6CgdXDi#r%_{kTKBm&Q=mj9a<8<9f>@7=rY3{G5F}gphYb zIG%&;WX06j3w>EC`3NZ%wt*_k6Gtz;F)2hI}R>;2UlIf)V_w-u7kMYWsHl<=07G#a{i5j zzeFXkKcUa<-vOZ=Z`Z>58(cbvc&^wBo&KqdhuH>lqY`SpF}6g zSJBNqbfoX^5Byj@^4eoswzh}u(A|&e&})nUq4_DS?P#PQLO00k%jlSxa_dUlPY%`; zwovAmB{6hjcW5y;xv&z%PQB!rA1%}_xP(DbxvJGt4U^@89_A>4@bx2I%V$z`RH_;V)+ZL-EP?mUc zOQkLU0sqO>thbo>*cmMLDg2Fk15?gn9_vr*94Txc)+lrlIu=^Bh<`Wa!8T#+-6rbe zZu*k_EB=oC>5fzJw z&!r)lu44>KHeFSGNUnOP7dZR$6Zc}p*ZZdCt%;FH{I#$4=Jj&+4f!c;owT1>;a28{ zZu3l^+1YZo=iSsRT)=O}8?*ZfOINSy`O8`JXo8UVJ!?$iEg?r1owkl9ibJ-?X!2dm za&It(#P#RH^vWBL@PEbSG%GG_0w%Uw@{PBlV3Fj1jKjN_A9Cd47ushV!Yl(Pls>e6x@Z~xvYf4-0QymXh2I62V1 zz#|yb#3(d!C7mJk2vdz<`Ilj)leTdCi|*d0`%loJQ|Z7ox+;Y{e=ni6#0&kFJU>MX z@!01LaSW|+rn0?=N7#ovR(OWHJ?bqqAP#J2!w1*o5kEm8lg+!%YBw!i5s~iO6#-ja6t7uNn6-BEf6vqT52Uj`Qs#4v z51YKFnXEVhoPaF-EHQ|M3x#1H@t!91bUS0@Rx_M$@1w5<9AUXOdY71J zW)z|4v9^n@)M0V4z6n9MF(rtj2l3kYWH-j`D*EjpE7C1Go&1U;0im8g7K(qO9`C;QUGEPZBdK)s$x4`KufTevU4 zICjjUJj!?xX`mRLn%})^b#P1`51Ea%{z1i!I^sPdM$p!EIV_8)|HC~Dq^&HQ+uQQ0 z9e1^d?a&NtVKJR6G+;S14BhBUZ|%}&mtP}#_#3Hh`hTc>Qz!!lBNboRF=LtQ=u9DT zZEMrfGHy1F=BKCHvCNT7NfU48wiw;{lDI+_60ew{H99Q6YbNkWuo>lxm*`V;=S-Bk ztf)P~+qJA^#x65T+T$hkZASgA*zYi>j(>O;%{9X681A^Sy6LETb^{NTfxHx?BRUew z-(xb>U>ic>T>DvCS2>Wkhm5mT({+54S$^~xi)%I0%1zwu(m%CPR7TH^VR-!T3f>3h z((`L{${}H_c;4%CoY8B_Ty|zwuR7*u2aky;`^Len<9&Hzc#tuRqSrA>`t9QdJ!#%z z#v6Pq|Gy5w3>ZOwKtIo-;K}_lR!Q5)=tAkYAZpQUz6sjHAPG(m(KRi$zH(Z8dwhGv z#gAjvDCBz-W|KIR7kc{v&9CXso&UW$EWfQ(C^V0r7g}`CJNj+E{@bz=J@-F~3`zXO z$56BB5z{BXovLI02cs%664`0QC5X@o+Btur4%@%m-F$_1BXiO+JBEc5;}MELM?S=> z!+`fG`n@z39nY}G=HR*e?T8io~GmM-`6i^j-5=O zl3sv>i_uBRE~Y!i-qt6$ZJ<+x5-}v3e&lA!*sRZRQ|(a^Ow?B}n9WK9d+WWEz;>VoKQllaIM8r55K`Mu#mh9njKbz6I!9a@J)3po=t zm*0=Ds=Yl?t#}jmrRx3I9#A|AqISa5O#Jgk@ zH$V~GY@03@FWKT0To8l7-&DZf&}sIsDn-Jn+%wb@asXDE?JI zJvSk2J5m2L4`Y-VJzvGEh!~bDG6-Epp?hybe>X9385q6Ll7KE=T!fKd#8Uw?%av$A zypxaFr}N0~vkZc@^ub0S`@ESJ3!a^j_#B^vK;jDc&818`d$aU~Kc>bL2LnHuDL^-dl8=cU~8q2_4s?lsP6PruQ2;&xtv`PvknZih7Q-oNAd78kOj zj{}%%_CS5D*{%6Yn77a~bkqlZ=&UAvF28GZIooFUj=A=B)&L}W3I1^-w~nZIVP6c| z6a0wI@S)FuzS9VI@hp1yG!q(#vTdrO!tHhR*IGXOxXX@ZI!|UQL7B3xj;5R>yrX-dyxyzer=QGP<{;oBHX{#=s*V zKj-I+81c*)$5XfOm?gHK?miNcc6%T11I_^N_RZOY{PN2-Y=3Ui*q%i>ghu77(WUvT zN3Sm{s4giSo$p0;hR*rulQ{1RzkvH(-Q5_9 z_dUOWABXqv%W6xW1@Nbyc1Jmnpt z7+z<1gW*kvHyeJ;@Dql&7~X1lP@ECK@Fc^N4bLz<+u|NtVj^k`uQR;C@Fv5X4L@f1 z3By|qZ#6t9-UwiL68yVy!;=lqFgzPB^{XNiQ3KC%A^`k2@ePJI!TmXJhD-WmhM$1XC#J=mw;CRl zXaq1k$?#;uGYrp8ECtnqRkMhQ!xU5le?bI*hoOlEld#F~X2Xveegd8?0>DL(R`}iU zpx&hpW-=8EpTK#N;mL4mSO&a>`0U;uow0}rMMMpJAG{9!QxY~vJk(@(Gh75a22UaW z1pIOYZZX$e;SHPz^(l4K!eil*KM9@-PlikS48yZMCP9(mHSmT21Tg0fhBq1BZ1^$5 zPr%1eMGHI;!CK)vM1a1!g|To&d=k7FO((-sNS`6`^rEF7ki;8I>P+zrowCkhU6Hh}_o5nQIw8u$~U0l563-T;?7?$u)=gX2bTXmmhdZ`3gV34SlBJ>EIP{D*knRbh^BM}*^cmX(XyM?8(anETlF z80i?VrmGn$g{`V?HB7BwXXZ+_P^PLhc8kvD%AT^l%rAh2X9i_&w?|*`t%tqZQ02s_;x93v+nP0Y=J(-uXojR8tnX6Sk zZz`+V+I$roLpQR?^jfxSZ^D#n*_?5s+KfA#o7FAskl(@{-+Fbcx=r1owyJGx5FN;V z&&BNBpQW}Xfpl3MLdn0v5*|;JeqOD^ zJ&;2FA(8lbs@(dnLc(FxDlhgV9M6W<^u0Pfj?J)t*`&h`cIe8(q)wA$eYPjzL2Rl1 ze!dki*x>7}uOQ??EQQK{XLPh`sGIAMuOK8ojONLojToyVJ-mSW`E6Pd2lrdr=XtEz2dl8wUDKHWZ zMzWWULJlf<5Bgp&GZZ`Y}qSQcI8Ay*gso#k~yD;e(OK}@HznXRwa{UU9)f|o9 z$UUy!BSR=OghIn;R5(WnjY^*p3Rbk#0dt9R(q24WfTnQJ)QFJ^< zBu$N?sl8BUI76%#{Ta$wa#3X@RYq}yQf(;JhFUwEms8TKdt5`gzGidK6I4G%y=EQ<1-( z@hNB;f-+G;x-?prPIwiSl_A$`%Bdty01Kv}4gnKc$&ttTRcJ%HZ@)KihilNB5QGk< z_d>A&7rhsPA-fpraY!CU;Sm%VMS+1mx%^Z!ALk1E~?F4td{v(A7IL7!^3N)KE*E4|B1Cl2^c| z(W+{~D>?EgWdm_n(Va5%_7lFELJGNd1&0jFYbdA5J7cG7MWB-!LaE_9JHeoEdVjIg zHP$=sb^n+yL>crtO3-AOwW2&soL?21OaK$Ick2$9e;1+*H!WR= zGG85{OjV)4yjU+Cw@;qa*BiOm8M=MJrAPebt>N~(mF^=0vwz->FVkS~WuE%3>ph2O zrbcebNzKbID$JQ(TvAw?x4ux>U?*#c$SE!@u2NvfR93n3i}EVm!^+#zRf3{orLmz@ z+7MvY=hfuo2~bN_VP%!6MY1Uar$TvEg*Be4oPx4y!GN(*R?5puK%%KCE(6U*Uy%Z4 z%}h;81@b1XLsZAC2GqqwYUbXMS5jT53V^-=FQ?KvV>y@B3u)i`54d8L)b zyv;4&sC1(X5JOcKUk#v+Tf#ZgLeyoU?IaUfmQPQhtb)QC)n8r%7xh=O0N1J5m@~Ju zyt*nUwJ5K2ZDCI4nw;e#RZeP2VP1tgE!NKB(RtD}(vQwCADkP7Di)?M&B581?Gv_Z$cMr1~0nm@6_$QUB)y3sGYYVHSzgBOw`ntX0?qNk`f&nBJ;33i6@&%yV z%r2{#TW)&LYV7!Nw6?e{N=h^emY{73Z3sDbM4M?0vw(pFvL}Cic?ZL)9NTu9CWcly zPE}B1{<=009xN)SZ1t6e`BgdP6=mgx6;&I#R?t~8%+~w<0cWr6?ri^V`n7yMET^=r zs(8&t?{m$L7|-&Yw3$n1x`!3yRpqJb_N#y;QK(p6YUc7K)vGJ>!51pbGBtkcg4IjK zrEBfZS+Z=_lGMd>XQk(m-M0#>MB)}&GNgH=S}jjo3k%BinCYzIwt7yNEKLeBmeE<| zl0L_3q{*oT@c8Cy7qvaLXr$6^zOTlu@suaBc1&UqW4U7FS(uf!%;>;Em-3O_(?PA4 zFut8&7beq)Z@jU#w&|r!p{EJso35jn#&!m7v@O>vtJ5?ay}O$ou_1EJSdN@0`E3V3g$pdp5TKq^;sL#f250UFP~SmL{;z3No!J;qzoEuB@ysOf4&2 zQ(UpWu)rDyX1%GDdOV%Ct)zI3waR|BC^BIH$o7qD`oFNCqak)syS189lT6~4a`jx1 zwRCRgLRIOhs;JJda({-N)akup$=q2<213nLz+7aN4~m+v1=vb2w8XUx<`Qt?^muRU z?M{myCMMP)r4`|$1f~D??4$qpyl8HDQAv4TdGV;C>8i3Ue;q4l4tEvu7idpV*7$4m zA{Ow1!ZniMB7VG!zU`ObkxTiizo4?odTODw8O!!vY<%PS@3cU0>#TLd(sngV`P$OL z0yh|NZozLWE;KNBrq?XAH<3!#Dwc2-1iF#V_E_CCYx(@toW8E_+3p)~5A+a5@tlFcCC>H8|*t8Hj}Z76mg4anD_0WyiojmO%m zA|FgV3hkgBAOWw+t0*We&?R(eTxD^oPAig_gr*`JInY$%X|JVCrhlHplq~x1ykxm; zYDXC~HwQVDa?ddvK)`ksK!w^p=v^yZ?*6QGcdo(ln`tlyeHD0BMX_K2Qn%Ib)}?~N zl0qU8#up;dHdmN!uD^ZJ#watAl->D|)Bryx=>}AHCD# z+qZU?eQx;9^GEOWoELoO=R@!OXKpY?a)b#~!(F6+YUY?~*$@H*Lv zFrf>tlg<8DYNP1F>-<{bbxNmn;dP>fF1*ezyiT^ivi-6Pud@rUlRbym^U?Y}dd;$b zyYM>Mh3xFY>+Hho)FYw`ud@rUQ(Hn8US}6xr)3FWGG3=gHVuAhc%8KHG^kF`mx|T- zX{gRjJ^bw7F04-W4{za^^k3#$_~bYXRNVRhQGqvl;$on2U+U09tyW8!O#)oCI0 zSi)&xE_bC~nqU%P?=1a7kX7lF_@Qtw84it>F>IY0RfRL-YC<;-(jKrGJLex7Hj zdbvU2i~xl*Y5Gfo&82D$3g=e%iQfbL_Si9ppm0Wky1A6w!Keo{3TH0ov7m4^2mZhz z5OPhNOa5l~aYDz;`3b{Y3~$xk(*d?qGA0=`&1Azf49_;a$nYA&>kMx&yvgup!;cw$ z!tfTuTP@D~6lBmdV+~I-JlXIJ!?O)9GQ7s{I>Q?bZ!)~u@MG}rf}wW8oVOU>DqQZd zgFw&R43C8i3TKi*(@Zuz!|-gwiwv(Zyw30j!` z9`A|Z#J5O1ed=i?ASj$cbb(+=#==u5APJsE!eogj;R(_S3THOwg2Gt@7ZlDK_$hcD zd?5K7;DWN*1Q!&}X7~&6V{k#?JYlZ4z_Y~uTM3LIV~|19jD-sdXA(S%_+)r4=Na%? z&a>gt;v%@9aMr+6h_8bS3TJ~{=e!9Hvrs#$;K$7Q33wFeE!H{q-%7wuM36zzjD_za zYZBZN0G`YB48ybGg2Gt@7ZlDKxM;2p?uIwO1%Z}yiW{r&K~9i!RgrSxXE#|;}%Dq zV~eBSajWAt$L)?g9CtdlI<`6Pa(G7!2Fc_N^>g(L^-J}pI;no8{-64tI;GxMe^h@` zAE-a$@ba&!Reh*FQh!r_S0Cg0*6HxWC|r&JN1!9f5$p(YggQ1lu6A7GxYluzsIs3_uH2ByZ;|*ghE~b delta 56216 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
HG9@9APK=t(6-BnOCc~ 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 LlKJTDugv=2iOV=< diff --git a/bacnet-stack/ports/win32/bacnet/bacnet.opt b/bacnet-stack/ports/win32/bacnet/bacnet.opt index 53a1259185868d14b03d611a4d1784d6c933197f..18c62edbee0542449031d3f3e34b6f15e2042219 100644 GIT binary patch literal 51712 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 a6#xCL-(0J_{vOAF-;?rKm^JW#YvA9;Du^)v literal 50688 zcmeHQ&2t<_6(6l7S=t!K3C1MhBZEj{Ikr}xmTko`u~%|p$6rWE9LNS|cXlF8w7au4 zGb`CpP(V?fa>xOyQrw_8gn}xH8z@z1_1P%?*oNeE|BMKZo;P!2JMp0p|h0gMiNi_5;2E zAi6K&{1D(_z$1V!0lp0Q3gD}NM*&3lJkBG4uLB+fJPvpQa1byGI0SeSK(t429s?8r z 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

Command Lines

-Creating temporary file "C:\DOCUME~1\cbkargs\LOCALS~1\Temp\RSP35.tmp" with contents +Creating temporary file "C:\DOCUME~1\VMWare\LOCALS~1\Temp\RSP34.tmp" with contents [ -/nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\include\\" /I ".." /I "..\..\..\demo\object\\" /I "..\..\..\demo\handler\\" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "BACAPP_ALL" /D PRINT_ENABLED=1 /D BIG_ENDIAN=0 /D USE_INADDR=0 /D "BACDL_BIP" /FR"Debug/" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c +/nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\include\\" /I ".." /I "..\..\..\demo\object\\" /I "..\..\..\demo\handler\\" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "BACAPP_ALL" /D PRINT_ENABLED=1 /D BIG_ENDIAN=0 /D "BACDL_BIP" /D USE_INADDR=1 /FR"Debug/" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c "C:\code\bacnet-stack\src\abort.c" "C:\code\bacnet-stack\src\address.c" "C:\code\bacnet-stack\demo\object\ai.c" @@ -16,34 +16,29 @@ Creating temporary file "C:\DOCUME~1\cbkargs\LOCALS~1\Temp\RSP35.tmp" with conte "C:\code\bacnet-stack\src\apdu.c" "C:\code\bacnet-stack\src\arf.c" "C:\code\bacnet-stack\demo\object\av.c" -"C:\code\bacnet-stack\src\bacaddr.c" "C:\code\bacnet-stack\src\bacapp.c" "C:\code\bacnet-stack\src\bacdcode.c" "C:\code\bacnet-stack\src\bacerror.c" "C:\code\bacnet-stack\demo\object\bacfile.c" -"C:\code\bacnet-stack\src\bacint.c" "C:\code\bacnet-stack\src\bacreal.c" -"C:\code\bacnet-stack\src\bacstr.c" -"C:\code\bacnet-stack\src\bactext.c" "C:\code\bacnet-stack\demo\object\bi.c" -"C:\code\bacnet-stack\src\bigend.c" "C:\code\bacnet-stack\ports\win32\bip-init.c" "C:\code\bacnet-stack\src\bip.c" "C:\code\bacnet-stack\demo\object\bo.c" "C:\code\bacnet-stack\demo\object\bv.c" -"C:\code\bacnet-stack\src\crc.c" -"C:\code\bacnet-stack\src\datetime.c" +"C:\code\bacnet-stack\src\bvlc.c" +"C:\code\bacnet-stack\src\cov.c" "C:\code\bacnet-stack\src\dcc.c" "C:\code\bacnet-stack\demo\object\device.c" "C:\code\bacnet-stack\demo\handler\h_arf.c" "C:\code\bacnet-stack\demo\handler\h_arf_a.c" +"C:\code\bacnet-stack\demo\handler\h_cov.c" "C:\code\bacnet-stack\demo\handler\h_iam.c" "C:\code\bacnet-stack\demo\handler\h_rp.c" "C:\code\bacnet-stack\demo\handler\h_rp_a.c" "C:\code\bacnet-stack\demo\handler\h_whois.c" "C:\code\bacnet-stack\demo\handler\h_wp.c" "C:\code\bacnet-stack\src\iam.c" -"C:\code\bacnet-stack\src\indtext.c" "C:\code\bacnet-stack\demo\object\lc.c" "C:\code\bacnet-stack\demo\object\lsp.c" "C:\code\bacnet-stack\ports\win32\main.c" @@ -51,22 +46,16 @@ Creating temporary file "C:\DOCUME~1\cbkargs\LOCALS~1\Temp\RSP35.tmp" with conte "C:\code\bacnet-stack\demo\handler\noserv.c" "C:\code\bacnet-stack\src\npdu.c" "C:\code\bacnet-stack\src\reject.c" -"C:\code\bacnet-stack\src\ringbuf.c" "C:\code\bacnet-stack\src\rp.c" "C:\code\bacnet-stack\demo\handler\s_rp.c" "C:\code\bacnet-stack\demo\handler\s_whois.c" "C:\code\bacnet-stack\demo\handler\s_wp.c" "C:\code\bacnet-stack\src\tsm.c" -"C:\code\bacnet-stack\demo\handler\txbuf.c" -"C:\code\bacnet-stack\src\version.c" "C:\code\bacnet-stack\src\whois.c" "C:\code\bacnet-stack\src\wp.c" -"C:\code\bacnet-stack\src\mstp.c" -"C:\code\bacnet-stack\ports\win32\dlmstp.c" -"C:\code\bacnet-stack\ports\win32\rs485.c" ] -Creating command line "cl.exe @C:\DOCUME~1\cbkargs\LOCALS~1\Temp\RSP35.tmp" -Creating temporary file "C:\DOCUME~1\cbkargs\LOCALS~1\Temp\RSP36.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\VMWare\LOCALS~1\Temp\RSP34.tmp" +Creating temporary file "C:\DOCUME~1\VMWare\LOCALS~1\Temp\RSP35.tmp" with contents [ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/bacnet.pdb" /debug /machine:I386 /out:"Debug/bacnet.exe" /pdbtype:sept ".\Debug\abort.obj" @@ -91,12 +80,16 @@ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32 ".\Debug\bip.obj" ".\Debug\bo.obj" ".\Debug\bv.obj" +".\Debug\bvlc.obj" +".\Debug\cov.obj" ".\Debug\crc.obj" ".\Debug\datetime.obj" ".\Debug\dcc.obj" ".\Debug\device.obj" +".\Debug\dlmstp.obj" ".\Debug\h_arf.obj" ".\Debug\h_arf_a.obj" +".\Debug\h_cov.obj" ".\Debug\h_iam.obj" ".\Debug\h_rp.obj" ".\Debug\h_rp_a.obj" @@ -108,11 +101,13 @@ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32 ".\Debug\lsp.obj" ".\Debug\main.obj" ".\Debug\mso.obj" +".\Debug\mstp.obj" ".\Debug\noserv.obj" ".\Debug\npdu.obj" ".\Debug\reject.obj" ".\Debug\ringbuf.obj" ".\Debug\rp.obj" +".\Debug\rs485.obj" ".\Debug\s_rp.obj" ".\Debug\s_whois.obj" ".\Debug\s_wp.obj" @@ -121,11 +116,8 @@ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32 ".\Debug\version.obj" ".\Debug\whois.obj" ".\Debug\wp.obj" -".\Debug\mstp.obj" -".\Debug\dlmstp.obj" -".\Debug\rs485.obj" ] -Creating command line "link.exe @C:\DOCUME~1\cbkargs\LOCALS~1\Temp\RSP36.tmp" +Creating command line "link.exe @C:\DOCUME~1\VMWare\LOCALS~1\Temp\RSP35.tmp"

Output Window

Compiling... abort.c @@ -135,64 +127,50 @@ ao.c apdu.c arf.c av.c -bacaddr.c bacapp.c bacdcode.c bacerror.c bacfile.c -bacint.c bacreal.c -bacstr.c -bactext.c bi.c -bigend.c bip-init.c bip.c -Generating Code... -Compiling... bo.c bv.c -crc.c -datetime.c +bvlc.c +cov.c dcc.c +Generating Code... +Compiling... device.c h_arf.c h_arf_a.c +h_cov.c h_iam.c h_rp.c h_rp_a.c h_whois.c h_wp.c iam.c -indtext.c lc.c lsp.c main.c mso.c noserv.c -Generating Code... -Compiling... npdu.c reject.c -ringbuf.c rp.c s_rp.c s_whois.c +Generating Code... +Compiling... s_wp.c tsm.c -txbuf.c -version.c whois.c wp.c -mstp.c -dlmstp.c -rs485.c Generating Code... -c:\code\bacnet-stack\ports\win32\dlmstp.c(448) : warning C4761: integral size mismatch in argument; conversion supplied -c:\code\bacnet-stack\src\mstp.c(656) : warning C4761: integral size mismatch in argument; conversion supplied -c:\code\bacnet-stack\src\mstp.c(944) : warning C4761: integral size mismatch in argument; conversion supplied Linking... -Creating temporary file "C:\DOCUME~1\cbkargs\LOCALS~1\Temp\RSP38.tmp" with contents +Creating temporary file "C:\DOCUME~1\VMWare\LOCALS~1\Temp\RSP36.tmp" with contents [ /nologo /o"Debug/bacnet.bsc" ".\Debug\abort.sbr" @@ -217,12 +195,16 @@ Creating temporary file "C:\DOCUME~1\cbkargs\LOCALS~1\Temp\RSP38.tmp" with conte ".\Debug\bip.sbr" ".\Debug\bo.sbr" ".\Debug\bv.sbr" +".\Debug\bvlc.sbr" +".\Debug\cov.sbr" ".\Debug\crc.sbr" ".\Debug\datetime.sbr" ".\Debug\dcc.sbr" ".\Debug\device.sbr" +".\Debug\dlmstp.sbr" ".\Debug\h_arf.sbr" ".\Debug\h_arf_a.sbr" +".\Debug\h_cov.sbr" ".\Debug\h_iam.sbr" ".\Debug\h_rp.sbr" ".\Debug\h_rp_a.sbr" @@ -234,11 +216,13 @@ Creating temporary file "C:\DOCUME~1\cbkargs\LOCALS~1\Temp\RSP38.tmp" with conte ".\Debug\lsp.sbr" ".\Debug\main.sbr" ".\Debug\mso.sbr" +".\Debug\mstp.sbr" ".\Debug\noserv.sbr" ".\Debug\npdu.sbr" ".\Debug\reject.sbr" ".\Debug\ringbuf.sbr" ".\Debug\rp.sbr" +".\Debug\rs485.sbr" ".\Debug\s_rp.sbr" ".\Debug\s_whois.sbr" ".\Debug\s_wp.sbr" @@ -246,18 +230,15 @@ Creating temporary file "C:\DOCUME~1\cbkargs\LOCALS~1\Temp\RSP38.tmp" with conte ".\Debug\txbuf.sbr" ".\Debug\version.sbr" ".\Debug\whois.sbr" -".\Debug\wp.sbr" -".\Debug\mstp.sbr" -".\Debug\dlmstp.sbr" -".\Debug\rs485.sbr"] -Creating command line "bscmake.exe @C:\DOCUME~1\cbkargs\LOCALS~1\Temp\RSP38.tmp" +".\Debug\wp.sbr"] +Creating command line "bscmake.exe @C:\DOCUME~1\VMWare\LOCALS~1\Temp\RSP36.tmp" Creating browse info file...

Output Window

Results

-bacnet.exe - 0 error(s), 3 warning(s) +bacnet.exe - 0 error(s), 0 warning(s) diff --git a/bacnet-stack/ports/win32/bacnet/readme.txt b/bacnet-stack/ports/win32/bacnet/readme.txt index 6c7e1853..7b31139c 100644 --- a/bacnet-stack/ports/win32/bacnet/readme.txt +++ b/bacnet-stack/ports/win32/bacnet/readme.txt @@ -129,3 +129,18 @@ with MS/TP datalink enabled (BACDL_MSTP instead of BACDL_BIP): 3. Select the "C/C++" tab (3rd Tab) 4. Select the Category: Code Generation 5. Select the Multithreaded from the "Use runtime library" box options + +Q. error LNK2019: Verweis auf nicht aufgelöstes externes Symbol + "_GetAdaptersInfo@8" in Funktion "_getIpMaskForIpAddress". +A. There is the Iphlpapi.lib library missing from the VC++ project + (for the GetAdaptersInfo error) that you need to add: + http://msdn2.microsoft.com/en-us/library/aa916102.aspx + Note that Iphlpapi.lib/.h is not included with Visual C++ 6.0; + you would need to download the platform SDK to get it. +1. Select "Project" menu +2. Select "Settings..." +3. Select the "Link" tab (4th Tab) +4. You can see "Object/library modules:" edit box +5. Type Iphlpapi.lib in that edit box +6. Press OK +7. Compile the entire project again... diff --git a/bacnet-stack/ports/win32/net.h b/bacnet-stack/ports/win32/net.h index 5e811c36..52f338dc 100644 --- a/bacnet-stack/ports/win32/net.h +++ b/bacnet-stack/ports/win32/net.h @@ -30,7 +30,10 @@ #define STRICT 1 #include +#if (!defined(USE_INADDR) || (USE_INADDR == 0)) && \ + (!defined(USE_CLASSADDR) || (USE_CLASSADDR == 0)) #include +#endif #include #define close closesocket diff --git a/bacnet-stack/src/bvlc.c b/bacnet-stack/src/bvlc.c index 1c1855a9..3a677622 100644 --- a/bacnet-stack/src/bvlc.c +++ b/bacnet-stack/src/bvlc.c @@ -180,7 +180,7 @@ int bvlc_encode_bvlc_result( of the entire BVLL message, including the two octets of the length field itself, most significant octet first. */ encode_unsigned16(&pdu[2], 6); - encode_unsigned16(&pdu[4], result_code); + encode_unsigned16(&pdu[4], (uint16_t)result_code); } return 6; @@ -191,6 +191,7 @@ int bvlc_encode_write_bdt_init( unsigned entries) { int len = 0; + uint16_t BVLC_length = 0; if (pdu) { pdu[0] = BVLL_TYPE_BACNET_IP; @@ -198,7 +199,8 @@ int bvlc_encode_write_bdt_init( /* The 2-octet BVLC Length field is the length, in octets, of the entire BVLL message, including the two octets of the length field itself, most significant octet first. */ - encode_unsigned16(&pdu[2], 4 + entries * 10); + BVLC_length = 4 + (entries * 10); + encode_unsigned16(&pdu[2], BVLC_length); len = 4; } @@ -228,6 +230,7 @@ int bvlc_encode_read_bdt_ack_init( unsigned entries) { int len = 0; + uint16_t BVLC_length = 0; if (pdu) { pdu[0] = BVLL_TYPE_BACNET_IP; @@ -235,7 +238,8 @@ int bvlc_encode_read_bdt_ack_init( /* The 2-octet BVLC Length field is the length, in octets, of the entire BVLL message, including the two octets of the length field itself, most significant octet first. */ - encode_unsigned16(&pdu[2], 4 + entries * 10); + BVLC_length = 4 + (entries * 10); + encode_unsigned16(&pdu[2], BVLC_length); len = 4; } @@ -294,7 +298,7 @@ int bvlc_encode_forwarded_npdu( /* The 2-octet BVLC Length field is the length, in octets, of the entire BVLL message, including the two octets of the length field itself, most significant octet first. */ - encode_unsigned16(&pdu[2], 4 + 6 + npdu_length); + encode_unsigned16(&pdu[2], (uint16_t)(4 + 6 + npdu_length)); len = 4; address.s_addr = ntohl(sin->sin_addr.s_addr); port = ntohs(sin->sin_port); @@ -351,6 +355,7 @@ int bvlc_encode_read_fdt_ack_init( unsigned entries) { int len = 0; + uint16_t BVLC_length = 0; if (pdu) { pdu[0] = BVLL_TYPE_BACNET_IP; @@ -358,7 +363,8 @@ int bvlc_encode_read_fdt_ack_init( /* The 2-octet BVLC Length field is the length, in octets, of the entire BVLL message, including the two octets of the length field itself, most significant octet first. */ - encode_unsigned16(&pdu[2], 4 + entries * 10); + BVLC_length = 4 + (entries * 10); + encode_unsigned16(&pdu[2], BVLC_length); len = 4; } @@ -394,7 +400,7 @@ int bvlc_encode_read_fdt_ack( pdu_len += len; encode_unsigned16(&pdu[pdu_len], FD_Table[i].time_to_live); pdu_len += len; - encode_unsigned16(&pdu[pdu_len], FD_Table[i].seconds_remaining); + encode_unsigned16(&pdu[pdu_len], (uint16_t)FD_Table[i].seconds_remaining); pdu_len += len; } } @@ -432,6 +438,7 @@ int bvlc_encode_distribute_broadcast_to_network( { int len = 0; /* return value */ unsigned i; /* for loop counter */ + uint16_t BVLC_length = 0; if (pdu) { pdu[0] = BVLL_TYPE_BACNET_IP; @@ -439,7 +446,8 @@ int bvlc_encode_distribute_broadcast_to_network( /* The 2-octet BVLC Length field is the length, in octets, of the entire BVLL message, including the two octets of the length field itself, most significant octet first. */ - len = encode_unsigned16(&pdu[2], 4 + npdu_length) + 2; + BVLC_length = 4 + npdu_length; + len = encode_unsigned16(&pdu[2], BVLC_length) + 2; for (i = 0; i < npdu_length; i++) { pdu[len] = npdu[i]; len++; @@ -456,6 +464,7 @@ int bvlc_encode_original_unicast_npdu( { int len = 0; /* return value */ unsigned i = 0; /* loop counter */ + uint16_t BVLC_length = 0; if (pdu) { pdu[0] = BVLL_TYPE_BACNET_IP; @@ -463,7 +472,8 @@ int bvlc_encode_original_unicast_npdu( /* The 2-octet BVLC Length field is the length, in octets, of the entire BVLL message, including the two octets of the length field itself, most significant octet first. */ - len = encode_unsigned16(&pdu[2], 4 + npdu_length) + 2; + BVLC_length = 4 + npdu_length; + len = encode_unsigned16(&pdu[2], BVLC_length) + 2; for (i = 0; i < npdu_length; i++) { pdu[len] = npdu[i]; len++; @@ -480,6 +490,7 @@ int bvlc_encode_original_broadcast_npdu( { int len = 0; /* return value */ unsigned i = 0; /* loop counter */ + uint16_t BVLC_length = 0; if (pdu) { pdu[0] = BVLL_TYPE_BACNET_IP; @@ -487,7 +498,8 @@ int bvlc_encode_original_broadcast_npdu( /* The 2-octet BVLC Length field is the length, in octets, of the entire BVLL message, including the two octets of the length field itself, most significant octet first. */ - len = encode_unsigned16(&pdu[2], 4 + npdu_length) + 2; + BVLC_length = 4 + npdu_length; + len = encode_unsigned16(&pdu[2], BVLC_length) + 2; for (i = 0; i < npdu_length; i++) { pdu[len] = npdu[i]; len++; @@ -666,7 +678,7 @@ void bvlc_bdt_forward_npdu( uint16_t npdu_length) { /* length of the NPDU */ uint8_t mtu[MAX_MPDU] = { 0 }; - int mtu_len = 0; + uint16_t mtu_len = 0; int bytes_sent = 0; unsigned i = 0; /* loop counter */ struct sockaddr_in bip_dest; @@ -706,8 +718,9 @@ void bvlc_broadcast_forward_npdu( uint16_t npdu_len) { /* size of the NPDU */ uint8_t mtu[MAX_MPDU] = { 0 }; - int mtu_len = 0; + uint16_t mtu_len = 0; struct sockaddr_in bvlc_dest; + uint16_t BVLC_length = 0; /* FIXME: unused parameter */ sin = sin; @@ -716,10 +729,9 @@ void bvlc_broadcast_forward_npdu( mtu[1] = BVLC_ORIGINAL_BROADCAST_NPDU; bvlc_dest.sin_addr.s_addr = htonl(bip_get_broadcast_addr()); bvlc_dest.sin_port = htons(bip_get_port()); + BVLC_length = npdu_len + 4 /*inclusive */; mtu_len = 2; - mtu_len += - encode_unsigned16(&mtu[mtu_len], - (uint16_t) (npdu_len + 4 /*inclusive */ )); + mtu_len += encode_unsigned16(&mtu[mtu_len], BVLC_length); memcpy(&mtu[mtu_len], npdu, npdu_len); mtu_len += npdu_len; bvlc_send_mpdu(&bvlc_dest, mtu, mtu_len); @@ -731,7 +743,7 @@ void bvlc_fdt_forward_npdu( uint16_t max_npdu) { /* amount of space available in the NPDU */ uint8_t mtu[MAX_MPDU] = { 0 }; - int mtu_len = 0; + uint16_t mtu_len = 0; int bytes_sent = 0; unsigned i = 0; /* loop counter */ struct sockaddr_in bvlc_dest; @@ -755,7 +767,7 @@ void bvlc_register_with_bbmd( uint16_t time_to_live_seconds) { uint8_t mtu[MAX_MPDU] = { 0 }; - int mtu_len = 0; + uint16_t mtu_len = 0; Remote_BBMD.sin_addr.s_addr = bbmd_address; Remote_BBMD.sin_port = htons(bbmd_port); @@ -773,7 +785,7 @@ void bvlc_send_result( BACNET_BVLC_RESULT result_code) { uint8_t mtu[MAX_MPDU] = { 0 }; - int mtu_len = 0; + uint16_t mtu_len = 0; mtu_len = bvlc_encode_bvlc_result(&mtu[0], result_code); bvlc_send_mpdu(dest, mtu, mtu_len); @@ -785,7 +797,7 @@ int bvlc_send_bdt( struct sockaddr_in *dest) { uint8_t mtu[MAX_MPDU] = { 0 }; - int mtu_len = 0; + uint16_t mtu_len = 0; mtu_len = bvlc_encode_read_bdt_ack(&mtu[0], sizeof(mtu)); if (mtu_len) { @@ -799,7 +811,7 @@ int bvlc_send_fdt( struct sockaddr_in *dest) { uint8_t mtu[MAX_MPDU] = { 0 }; - int mtu_len = 0; + uint16_t mtu_len = 0; mtu_len = bvlc_encode_read_fdt_ack(&mtu[0], sizeof(mtu)); if (mtu_len) { @@ -1110,10 +1122,11 @@ int bvlc_send_pdu( { /* number of bytes of data */ struct sockaddr_in bvlc_dest; uint8_t mtu[MAX_MPDU] = { 0 }; - int mtu_len = 0; + uint16_t mtu_len = 0; /* addr and port in host format */ struct in_addr address; uint16_t port = 0; + uint16_t BVLC_length = 0; /* bip datalink doesn't need to know the npdu data */ (void) npdu_data; @@ -1139,10 +1152,9 @@ int bvlc_send_pdu( } bvlc_dest.sin_addr.s_addr = htonl(address.s_addr); bvlc_dest.sin_port = htons(port); + BVLC_length = pdu_len + 4 /*inclusive */; mtu_len = 2; - mtu_len += - encode_unsigned16(&mtu[mtu_len], - (uint16_t) (pdu_len + 4 /*inclusive */ )); + mtu_len += encode_unsigned16(&mtu[mtu_len], BVLC_length); memcpy(&mtu[mtu_len], pdu, pdu_len); mtu_len += pdu_len; return bvlc_send_mpdu(&bvlc_dest, mtu, mtu_len);