From 5bde13909ecdc92a5bea009ca340ad3c4dcc28cc Mon Sep 17 00:00:00 2001 From: Ben Date: Mon, 10 Dec 2018 12:44:18 +0000 Subject: [PATCH] Started memory monitering class for linux, not compiling --- CMakeLists.txt | 4 ++-- Makefile | 30 +++++++++++++++++++++++++++ bin/resource-monitor | Bin 100752 -> 0 bytes include/cpu.h | 5 +---- include/memory.h | 4 +--- platform/linux/monitoring/memory.cpp | 21 +++++++++++++++++++ src/main.cpp | 9 ++++---- 7 files changed, 60 insertions(+), 13 deletions(-) delete mode 100755 bin/resource-monitor diff --git a/CMakeLists.txt b/CMakeLists.txt index 870d7b8..fcd33b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ set(Include ./include) set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) -include_directories(${Build}/ ${Include}) +include_directories(${Build} ${Include}/) if (WIN32) file(GLOB_RECURSE PlatformDepSource @@ -39,8 +39,8 @@ file(GLOB_RECURSE SourceFiles ) add_executable(${Build} - ${SourceFiles} ${PlatformDepSource} + ${SourceFiles} ) target_link_libraries(${Build} Threads::Threads) diff --git a/Makefile b/Makefile index 8d54ed0..9f0ded2 100644 --- a/Makefile +++ b/Makefile @@ -150,6 +150,33 @@ platform/linux/monitoring/cpu.cpp.s: $(MAKE) -f CMakeFiles/./bin/resource-monitor.dir/build.make CMakeFiles/./bin/resource-monitor.dir/platform/linux/monitoring/cpu.cpp.s .PHONY : platform/linux/monitoring/cpu.cpp.s +platform/linux/monitoring/memory.o: platform/linux/monitoring/memory.cpp.o + +.PHONY : platform/linux/monitoring/memory.o + +# target to build an object file +platform/linux/monitoring/memory.cpp.o: + $(MAKE) -f CMakeFiles/./bin/resource-monitor.dir/build.make CMakeFiles/./bin/resource-monitor.dir/platform/linux/monitoring/memory.cpp.o +.PHONY : platform/linux/monitoring/memory.cpp.o + +platform/linux/monitoring/memory.i: platform/linux/monitoring/memory.cpp.i + +.PHONY : platform/linux/monitoring/memory.i + +# target to preprocess a source file +platform/linux/monitoring/memory.cpp.i: + $(MAKE) -f CMakeFiles/./bin/resource-monitor.dir/build.make CMakeFiles/./bin/resource-monitor.dir/platform/linux/monitoring/memory.cpp.i +.PHONY : platform/linux/monitoring/memory.cpp.i + +platform/linux/monitoring/memory.s: platform/linux/monitoring/memory.cpp.s + +.PHONY : platform/linux/monitoring/memory.s + +# target to generate assembly for a file +platform/linux/monitoring/memory.cpp.s: + $(MAKE) -f CMakeFiles/./bin/resource-monitor.dir/build.make CMakeFiles/./bin/resource-monitor.dir/platform/linux/monitoring/memory.cpp.s +.PHONY : platform/linux/monitoring/memory.cpp.s + src/main.o: src/main.cpp.o .PHONY : src/main.o @@ -189,6 +216,9 @@ help: @echo "... platform/linux/monitoring/cpu.o" @echo "... platform/linux/monitoring/cpu.i" @echo "... platform/linux/monitoring/cpu.s" + @echo "... platform/linux/monitoring/memory.o" + @echo "... platform/linux/monitoring/memory.i" + @echo "... platform/linux/monitoring/memory.s" @echo "... src/main.o" @echo "... src/main.i" @echo "... src/main.s" diff --git a/bin/resource-monitor b/bin/resource-monitor deleted file mode 100755 index f22857c3b551abd4fdcfec23cf083b17765e1e05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100752 zcmeFa4R}<=6*qqK1rad>iy9GiQPiLklMo;vYWP^(K!BJ8j0i6I*gzy-CYu%dG}ahL*0KsAXs_?QE?d z=+XG6_^fboB#5{ajFm+#3XtlpW4aX%V?G5{>jbHu<8>NS6pWW;sux4IF8YJZCI0I0 zmV8-OP&3sN?KLpJ1ztT~;uSR4BinRsk@T)tLg7m8#4e!}Xxtu|gX*n8-8Jj|D}VRk?4RO|5eb(4u6k>{QVC6?>NX` z?ZAJN1D;05PM-%IPdcN+!Kih$SvV)x`JB;s}4*mU; zLw}1ghUeIf<2(oX%N+DS8!}ura?W+|heii|e&N7Ram`M?-$9>C9r!;3-pFwcqR2 zyqS43y~Vz2-=fkQzppxP=9IF^3SVA9VVO_TY$;X##nrxoVs8=t`oZW`h$X(II&xm# z+*v8fUT;x-eL-PqT}sM0+?N&9)Oh_%t9;(lijqpV=AD=8ACHF1ODiC$PLxx}dvglC z{%RjF)%c)iK}E5*+E-XmR!~voE6mRIr=;sF6_v$4Z(%`=FE`nnlZzhBo0aQNFRiQ* z$h6FgQvcKxH%XqATUl1)&YqT&Tbb*XO^;jT^JCreWfnnZO3~tiYP4HW>aWQxa_1J{ zk2?p1(GXu+gs_3^1ZTWZ|L>QhsdV#jI+o+A}Ek{!(hSF;p>pnq!s&03Tn&zh-_s(zb`YF=3(}cApUOYX$03{?V9HPOJ9oD_IWV>7TlkzJ#N^Qt`LH zCOI&SVm~cQnzqA)hhykhrwMa| zCj1~1zTSk7H{lyh_`xRpN)!GECVYztPiH^sT5ZCgqL6^CCj6-;{5lg}9Vrrdg9)Et z;%_tIPdDM)P57ZE{0pK0RnGU3lM;e#f;%Y^SS;fI^>hfMg8 z{W1GL`3{FjQ7hJj=TIx~@h1FvCiw{_{P`xl%Y+|k!Y7*W7n<%1dAq4h+okSKQGSEUw6*DO7v-0!Ok0}n4Whi2 z%Cwc~ZWZOtRHiLVcZ(=LO=a4;bT^3d6I72yF~dWD$~}pJ6@ElsZ3jyZcUW0r}7{w_k0b+d4*Jt zr*fAl&!h5SDtC%<4wY$3+}$q9)2U2blkN?oJekV0CFyPzpX$?JdOK$vh%W< zV>aUvvZwi^Tmde70bISOoQgUJ2c12YD3{$0fu81=I|z(F1NX}qigT$(5Ffq$T<>9WtEQ*ab47F>)!FUAZ9U&I1cPr>dVf;b0tCgtT~F1iA@ z?C}I@JD+cdq~Nc`3p30USkUEZa(8(GF&~h!; z&$W|kka7x;S%EGRyc@S<0Q5dSaLeI9?V-k74oB3c-g?WS-dzc?T#omL?kO2>K8A_O`sVjRZYM)uchzqS*xkNqWgK9CUB{piS)(OD0e71a1jJ z?u9TGx*PNa;st1Ik0tfy3}kd;yNAj@H_G)?4xk*o53L7a6L&DsLN*Vsupo%kk&zKZ z9HiS98`{7{-B>@5z-9kNH-cUNWz)KYa_FRSABQYy@zb6FvqT;Q@BSom4pOtp{SsvVmt0 zQ8$~%tiA@N=F5Hwdj;=6eQCa3G{Vw+zb9nV3c=0;{W8`NMzJj#dm@&%`x7jDo#5;K z6bqOI-$wPD-L0f%5_PO&1xMf1)_MbD9Q>R zIrUa!B6ynOJ&hkhmy*PxcgOdX8I_ir)@K1B7Q*>ge{)LkO%-Vyu> z2$_Mcp5|K`Jk7N$J9}+qmkdu>4Z%(BmI(U0Qv7Y8zbmMDaYOou z8&WW$li0;T21vN2x|yn)!E6yTyFc{Oqot6b2h2f@cOa-DJT|sR1TeokR#5Ih=4+aR zSfQKxoD=0pPWulV@>vh~Jk7t)7U14|0aj3=!bT-IWXyDil%rUUns~Lzs7oN)#;C)P z5p}qQ-6@K@x3CdB&Dr%(a0~nSLr8?gNYPvrq558-^0p3lyXX$p-EP$Npze0&^yzim z8FP)OyR|7Q5ZU40K}(Kk`xT=;wfzcnpQqQ~!I;xk+nsvdokm@1dna>t(_|tKbHmw% z-hY?UsBKgsi;96K3kzo;i;Ei?0dYg76*pvSaYM#$9tPca>3!d0v`@NY@fEGn!!X%C zf|9^2K>LB+v^F?2E(CY!9orWwcpr<2*9CVmCfX2e4o9U(iD^mgUWo7@SF@^rlW&Po zLJ{EZgH&|4(*57y4&4{Y_zD&kQoaVu{xc|aZreXZf|KYT{=aQM(wuE3ag&Kx;-t(K zkjbmZ*e}pj(}F{Cfi+f5tUcyfS?k6G)E75en3@_Wpp%AglJWwzTA)_EgUE{T{yqY? z9_xj^5ftEQp`vw)+FFb?YF(gqZIgR#V-WLk?cY9m=aw$|(+P>|)O+^gQf|F?8W5=9!2(#@pK?)RW9&nlv0GLciR<&j#bkDZ!K9)ysl zgbw!>@+YoAZlr1?={3}ZJe6u_Bew;1=?Y;glGoTY_$ftBxOua?omF@nV?qsXH`OpV z_^e(-&EiL?Mo5DpMvH{`-zo2Wr@U+Lm+y@FI!Dv?zV!D6J3b#2@7@u_^H&XP%tsM!#FA@RH0n43B9(W$S~YuR+eUR4Nqe zEsy@IkGGsc-tv3&TlbdE&zXtSpP^6}jZ!+~AuR@=Z1yExQ`WK&;eeEUuAR(}3O|BC z>Egudl#DKY1X;yCYPOQA(|40N(Lpl5B;!z8%;m9kZAygok77+s3Gadi05(wLl;5IFer;WE!&hfH2DB& z-$K>Y$XjR=!_Zy{BQrltJ$l1e>9tzjbLy0jHOWbrdhj~YUL`q!tx~K=R_7|o=wUy@ z;uJ6v;Rm~DGYocQ0Uf~&qBiY#fbIzXR228p?K}iIn(2wARU;qO+faRjCopFn>fpX3 z=%rk{Ddw#;qzA1}2=YJ+EyP|5+#SL3Lh=jnLA1Nu6L^)7kK#-Um>tNHffdT1jb<^? z;H)!wyCXOceN3?doT!xpmiwY}$wjdb?yb9I?C?gUyVw&U^F`YnrnGqA_B^%rA;n z6z1bW+#}1KVkCr}1>3toFK@3+RcxOT8xKQ&&PAJMZU72CBNQA2ECNu-bVhjrQk^zP z*+7F3$2FVj+(opLLYU?`a0Ch~0+l0BGv5We3l)Qz0Sx}@SRbC9PNR(k^4(yT5JdhX z9l=lP(R^y$?ol2u|4`|t*}{mnqdXzn5QQbw#usv=FTfv-u2&0_hIIWZ%De2kzQsfO2?r>!biIc3FdQIchVtZ{ zh9%M|0))^IHL#@UGflr&t7)LN%hPyEm*$@V_rwr(1Wy)c02Dx!6aN|ES5f;3D#B2c zbZGYTNJ0zU++F*h(lt{tt0^NsbTzaq8Mz=S)wCd}+T1Jb(-C}$^pGZt#X4)7!Re8N zf|Qtoe?)C4L{{XZR74YW4Q&K)vLxHtMLjQtd>k;TX0uSt!uhgn5$-5jbm4%>h)ju2 zvd%PgO+-z|40@XLDXI!1_lUz%G5S9u{dkEI);PVo$qeLW=hSOFv)`a&ywKUS*25rnK_;-vZA z5j>IF2~f~8uh7w<`WyCaMrI%~a3OyND{0!zEk+~jpiV1h*J^Zi9TvNv;rYvRVq=O1 z$A|_o4Twfgfuv2`B8Q-OP4{5iCE3~#zwyrvaiYZ!C3=Uff*2&x@iHv61KrN~+iH?B ziu?tm+JuGSg)X*qyQg_zq-^JNUhsF5hjzGwG~SZZ5xk3VbP__1cLe_-`kD+2Q!BeX zfxi*aScIYAhGVS|}$jYICoF6H-ajK+e!YUwi1V1yi9Xfw{ zL?gi_4Na_3TT6X(ZBy%RyOhRdR{wy;^uKjn^SI!Yaa`*r&JXCiND4@oIgS zku@80aR=ri1_F~PFmppzfCfiSu-73@hWZUO7#l@zUv2(50MwN1BI4^7eq?O?v%?bJQ>edhr%T=&1uUfJO;cS!D~=`zgJERsxADi z4QDezA#c+&%70TcSUC5Ordsd63$GDVNw2dUb%HbgAswtnz+J?;nr<7nXN#rbNaOK1 zT5<5P-GU^dsPX{eA7phHKfI51pz@J?>`7DGMhg&4Ega*xeu>#;8rMA(9mEb+j4M5G zFx1Z!x# z1KWZR2q?z2oo4$DEB=Vw+hn~mQqi#9tzw5@nH6&dk1;FqR016`D-MXN zbZ$TsA_1={!H_wW{?CE1YdgdA&Lso_L76>S;cN^W>TTeJ!M^KX{ zlQRbXh^V4Fzi|AFggzJ~_%<^P5nRX=Q~RIr3%Gz8HN+SkJqWTAmw;r-D-uLXXW1E? zE==DMJX=7KPCu;1Fs*^qS+DLy9+JzacN>`)zd{0i!U8#8jJ9GgvJO*K)#4|qMZYHzs)n=9jrcC zNo!+F9X&Jil)gyXVadh1PJV+ zuHXnsC`P?SYK-la>1~#fxgb0QZ+)RLBekq2?bIU;J>n6Q(=IRrJO8eu*PG4%yv0Gc(+EhAso7$I`~I1pXm%p%##O& z`ji!8dUphG6-6YxwUh(znn^FJiEZFy5+gl4*~m8O{i6izd+Gfn^6S9w<+;zjK`J$` zkfn~`TSAEy2_(Jg7ZR+HH9CSfQrb0s8y;Ta6|ChugtzO&?Nk%_^;Fao74XK3XbC+L zDxvL;;8r0Yr|>I8!vP#TAX9%gn22S_=4dk$j7mzasJay|y3orKXdI`R;vE&J?-JG! zIsaXvF^OrqHxY#HDI$@VT~+eL6n_xB-RB9a(phvFik{A`DMiKD--aiu)b$dwWRtW~ zU`4#GvD!FFvAz6Rrmn0}aZc~t9Rh>LIV{#>dF(sjy3}m1M%H=3aWKr8bt2j zw|5`*$lhHXGB&Z)eji7^kYr#5QDZZ~G&XTUKHSW`TKd?`)t+W|1Fzu8q9%$>b5?fm z7lu?LA)10cCy9OvZ{Hb5BY{cE-Y%TzGNGuy3|QrCBk9ExH3S!<={DIk8*?TfI|<7_ zMKYV*t=ha$2%`JMs9_q{TJ$IP0h6W@wicp5v{dK zF<3;fSGaXMg%Eyz84}0Q?Wc(oeQkEbeZ}nB42;T=oMK<&EuC8J6!b@|&!^IUeY|@I zJ?0ayT#Cqd*GXz4)J`GfM;KD$F#J<2JJ!Il(*3EB*zAcNw2AI1Nvdr}-G97B?tsRc zG7_=)M97A-6TyO`IDMNB!;p>fJYu^khKkr8l0nlUht2wd7>>5y6^=v!TNIxYMVs~U zB_f2J`?$~&MRn`?IPzH5$5>cju8&T(XQO{96f@SHDPO9CcVYeWQIyNPSa(hkMVobp zP9}uTAvQbOb*DmjkHfliFS)$ax-*|@+OIpgM8Y)3V9XQp`$mlo2l~1X+{wJ|oFu9q zaorKV+jMm6&R4LN!@BcZF&dVTF+gZ}bnDI#4nHcknb(~|qAPGoeckzx?P6Vb28u2H zQLH=9kN|1pFKC!-)}5^Vw(HJ1s;PqB(XKliuv>=u*&?hT-MTZ0f=ZKIiH@}H6rc+Z z>rR40?&}hAzJbGe-6_QbV|3?8>yF2M-BG6?V(kezw0ccAR0!%YP^$OND^}>f zFJv3~nG_%nDfHt9Dji`Rd5Au55HQw}{~}qI<`e74dYZCggDTdM7eE!Mk#+xar|1&I zgsdaFzO(~GJWr=lr~9Kiy|L^G^NKcA( z?w-xaig1tY?zP~jPSz7+;j~XwBTPNw_t$npkmVH2)cSU5C1Hy;tPaAIbW|A0TXw6# zo)Y3hd&9PTvTsXFp-N_7Qm3zdAN3+#33+PUAZrRIQk_%kU+V7hpCJYhX1ocEG@w)g zPc9F+_P?XIs4B8H_b_V}VCc@@qrWAFqbBt%+jK6hS{8>`Jt6{ct?5TYCr*Q`rwoE! zc4xCl#APn*GTOC2F`7gQLRo#-T>1nIAh{0A>_RxRTIzhW)OfuD9cIETU4QEPyq!G6 z$UDg7zuCT7dJ1UTNy$pEtqtjevU>i zDfbqb49yfwg_vRD`GW4c9QSFPWST}~Mx4Ic$b#l>O0xpyb$BxlDoi$~meCx}>uEBO ze~ak|R6I)Xr;gwmB2}Xzu-UPwOddd9Q;*6kQMmy$z>eSrbYLBDx2p0x;uDDO)i1g~ zrCnVsZ3%M4O#q)3Yg({U-gg8uMA#>vXyB(7>$`e;v2-`w@~I}?FK;FJ>ps9)`9M`^ zB}&xV{kA-S$D6sF(*t`2k-o(pjGbVl_YdmT{$BY&V|zl#h=-0LH1mm+k4KGw7|YpatUi_@%aYtS zJo^IKR!ve=*Ux{|j3#%Gyq~o@^Sb)@7j%0`WUV2(DX+8F33X0}=BD+9B_t~Q=;)F#)~MX8KFK5>bJ)ev`H-eBRPn-gV%l{C zvq910A-y$vZ1FG={uKPfU(h#xf#Y+m9j18rS5d@sDj5&kL{X22qwr}5nU(D#uiuVm z)z)|z1Wv}o!sn=!ka+k%1fAf^&kG^J&jl2MP9x7b`gr)9T-MZ5uI9oq#KWhcWoSH% zH^oESnD&5pmC4--(}+;=3t2vLOcS5Ul8oHwL5w$L2O_Wi_k|)Xi z$`3@Eub(GAA+}p0LFmS3K~%~Vs+Wvih}cN91wXAHA^Vj#scxTWhj@!krFe;px_&H~ z(DQPu+eU33+7~kOAID;8%7mU1RDI_E07cWxuZFK!XMP@(l{0_wW*Xp-nV*XtWw7&) zLP+qCfMVvKNh4x2^Nn$brX|u0(t145`l=^6g)Kw2+DlEgJMxx@zD(9^X+&E~3mku0 z7rUTc4H@=9TT*oWu~So?;Idm6V`0CeQpWoSgVEx`^m_~@&oTGM+NSWpkH`bZyL$%x zjGi>b1Xs1u7$Of8ufyW~Pc&tcr+hcW6Olh8qd&+n{v#xbNg%%cB&2n0={m6$pncO0^7mN0!77hDI;psyUiuS9 z9>Nh{6-5LVs18+)N46iJ4Vu65S%clU{|J-8WE#;O^Z0T`pPhib4z?C4eda%fc}>}r zbyRwU&KSkMnfTqkRGIT8`%HPH@rC?~G|au(3qo{kRh($8!}@PISOx14|%(|0b!AWV+O zj0Osy0YF(=Te!{SugKbB`Cma4=JL>eBR&AIAE}o+C>P61e@8ARHr)tQLi*CbVX=H< zqZq*8p9K`H^w4eJccTuO_U*XGr%|aLQ!L-{v}gh&fX|V1Mba0*M6}c27rO9$4IRNY zs36Uy&Q$VYgEolWfa8F5n9r>Uq}Zs-H^Ltg?~uA%sp_M2AE1MUPF8-@>v#f;uj~Q$ zYT~$Ca4&$Qz0ap(!UiwJmJ*K2uf08oU6T2=w@X0f*WMyzck}tRHxYX6qZE6@8pzUz z-RfJyGAn6MX0psvzwKigw#i!9>=p_La*N=WHo+E73toT? zkYSTAuop4gRCLhyK(no&ftAIzg$xg^(n~?1=7fo~9Y9n|EJ~a%RILu+rJcW}6 zbCR^ywG^7>_ zS#qN^sd{LXVjtQlwz#~(5FI@S+)!Nj&r?vdk8PN?&@7exRDCoo>>A7UFG79Yd*ema z?Yn{u0aNIA7f@~NZuE~;i?krLJ}I+Y!|%At}865vDdRzEmtp%9m(HN$ZAwS~mYP>G2}35N>7u zwCuI?mREoVa!waq4FUwq8v5Xq@DA&zWif}3XaJeP&^IN?m8pwt@B$UZ+Xt8<`dgo& zV`AwcJwS8v`By^c1NC0S82uC(O?rg}9l;MV>18S<&XfQgc4QN7k z(}9)3)6)le&*=tz5?A?^Ltgg}ssb$*_h}uAq~Vp8KK~CSQ`CftA->tCk9)b5m!Z(N z+{YD2K~*1NT|Ij9nCWxdngjVn7nEPhcp`kMBUnt@^8MFXZ^b>E^f}X(@<>gLGpuB> zUl)$#EwPN-I}3GGcPy1^&{LH=ntQ6)nos%VT&1{(ax|_NKOxLx+fOVCqHoWUa}o2q zU{)Ez9F?}n87H)|w)k4S8A+pjP;lz4jvnsn}~5P_8rSx=CJq=c%?0ic)=|(Eaz<_ZIlx0^eKUdkcJT zf$uHwf8PQT{3~RXAK{uZJIC$PTyt_KUFn|S5~$GMDVtSWUg)cKRhGEa&v3frFJ;!a zYHF*hDy#jzVpPPBxK{h|1GTOx*>hYsR#q=T9m%K7^4(~Iy`-wTvgi{0T(Dm@T2xi* zI=Gpgr#bIE*f`t8sZ z`O~%D((;gh|+L-4k86X3?tnzj=# ze+*vM23!gG{{>tJH~>cpI{=db=~b>JfQe}Len1c4%YgLD3SEFJ0i%C|dVpzwI{>o* zgMiBbWASF*&jAwww*YzoKL?~=Vu;&-`hXV#t^=F~xC5{dFbKE|Fb(={0?Y$^1JDn6 zB94w$15O8Q1JrQX)&)2WFd8q!F9f8|R_y`w03HTh3>b-n$~ysLadN$Z%A0z7cLJUT zNN@E|08GG}|I+}|0doNJ0owrSbEPi>t_Iu%*ar9^;4Z*(oI1djSr_sZbu^`GEAD3m(8#fY$?V1Y8NY6Y$r72LU$&4mkzm z377^r1RJt^z*N9`!0FFJZ@?ps2LLkw2jCoZA>cXKv#td6 z0ImaExV5*p6Yyrh9>5<1#^V<+eh!!nxE?SY@B_dqKy4f517I=WM!;skoq%fq4+3ri z9D+UL9>6rfBs{jr2h0P!8L$Fy4d6<^Er6Q=_W&LOJPbJGPrbdv@QWImfD-{L0p|lQ z1H2jV0N^^n0WZQY0e1o(0Q?eg;86HWM{n=NfE9pQfHwn{0d@km0Db|u0dO)Nx9kKg z13U;=2RH=V&Q*YEfDZ%a0lo$32Rs>1|5pLJ05<|A0qz8x2zU^%4KQIC^m-L~1EvGc z2Rsbe0C?(a7%#v=!0mu{0`3F64=@_P0J0Hq1YmL}{0#86ozNR_1K^#2{=Y(Rz^4E^ z0e1lQ0Db}(kAs23fXRUMZ$WRsO@MyDF925qUi>!f4LAXC513I#_U3Uz|nw*0m}e~xisxAz=?pr1)LAK2k>UVet$!Kz>5I4 z0L};819&swVZgfphhdvPVmJI0@N&R~fYpEvfOi760^SeU4!9k#3-AD-b`Itv9tT_u z_#t2x;32>=zyWx4awlLq;Cetm;46S1{T+4#JPa6ruBK(|h1~$l0J8yC16Bd<1Z)BP z1aJeO_AcxWcrsuQ;0VC@5%6EYG{BvJd4Puj{eZ7xv)>B%1z_4D4;7~yAJlG%5 z1^C>1SWf^u0gD0u3%DFG?)~20wSeORw*%$@?gK0Vj6Pq}9s^7S+yj^e_yu4Y;EsJ5 zZ@_(kZGfKx?gC8s0PzrT8eqZ&kO!C!SP7U97yzsXTno4wa06f);G2NE0RI7a2=Fjq z0uB~W#dpS~1C9X92P^@s2W$Xb4fr%*8(=%&F2L6T4*~ucFkz&oE&3D%+ zfZ9cfXMiri-GCW@(>{XT0doMC1Jb9S)&kxIxE=5*zdAnF6o2HXg^5O62pO@IdhR{;(gt!cjjOapuwFc0u8KtG`NZ`2387;qFc(T2zfC-QrO9;NGE?p5fWoHRZ`ake2_|A~}V9f)K+W0H# zMMS_?e}xG(DK7r@$SEiFyYkK`dNF`xwBp~>Kf|*|K%E{r6}^%&+JSxt^i$0AY(XZB zkg*T&numLPPbP$FW2WSxHloq~4A2Le>C+AR2+${hj!CRYJEQW}Fk*Pt&4y%cm>5_SEqGw5qU zF9Ut7nSO&o-wyh1VdU=veOVZKbQI=x82Sj%>%!2df?n-FCz}rhz3|@N-Y;<<{U#PX zWkYvkROF|!A6Uk;H1MTiKKz;ZHkwUpxmZ6Ej&c-*6Z zY~o|zCZ1S~Pds?0;y!wjiRVX#KFh(A44xl?N7pA(1`x8@TF~zV-DRdPK$12eKg`sZ*{d4H)GuMxl0h#Qz6LdN&afqx~WM zF|J|gX`qvS6V3HuCvsD2KM(YCKtJD1FEDKA2R#w=S!TLe^CBk`mkapS;K>2c)n*LGaXr$7#&z3-L=pM;2n#_eook4vC;wflhHn_i0m1@qm5@=ytZIm_ol3 zwF>mhu@*%yImeKJ@rp`|)b(ru-xKSca}D}VhYg_Pc)^e{$I!Er>!SsOzQCaOfW98} zL+H>UA1u_*_yNfCK|j-6pNJ?EJsEVW4=Wq;O>1>F=)VEo$<9@vKM1imK5Bh4*g`7*BmxB&*hAyVKUIuz4=uUC@PS6X&(AR^W2fEW7 zdu7cF?h1HsqHX{h;rZcnkE)&Ge-PJsxHRv(x?d?SR zw}E~l=m3U(yoM(N)d0d*kYA4b=qAh{)rQKY&HEp0{3b${-8^%l{s_<~fc_HhbvZO9 z&l~!Bz|#dDWJCs!X^%+1IQ;?W8D=_UP?ksiSqXYSJeQ&41HFw3L;gC@hk|a`Ul*$E z06iA;Jac{0(X@{}0G@R4IQibdc$}4jo@JFGvJ#H};3)x*)BMN=y$W=MR-+#xn~?RZ zK%WOXyw;$b=3fiw`JmhNlk7y#bEbjrl=F15{E24yu!G9YdO)uWBR_sH;%XRrGUz!D zbQjvp20a7xkX&BoRAL1q9zS?igC{2%1?88tZ*xbB0jGY_^QRYo+uJ(|_d3sF=?^ZT z=(*HR(6^cCvYls$i)8EpkN;`=7(g-(gI)o8xbb!&Slh}9iZEd zH|fv-`byBl*=sF$y1*08UOT`O_l&c>f}jrrJ)FG;{s4PF@Hnk67lZy5=uR;;3-nIV z?dBJaM;X_*^KG)louF?=eJ5Lxj1Ax!)@C1fNk%>B6F{fEZS*hk@Jsm@<^b()iDwOX z=7NXLQ=)%l;xV16Bn-h?2_8FLNsn~UNrn?WAM~kV==Gqdf^O#*B!4yN$)G!}4{e~k zL3bL9U7%-#p&tUB?BujQCE!4DEa*I&UfB8(uv@__ucXa_(5Bl|}f1jC7>(!lxj5Xld10JU_-U9ktpr=`6 z==)#LKMGU-FzEY0ck=(I}dQ1MW61;c(0ngvevWg5_tONZX(CzF=^>={2JPbVudL8I?>j~A5MHry^ z6V2`4DBE`dmk4?*=yljr>HWZXMU@$6gjwMEe6zETWuWf^eX6+)(>d6kpvV5v*{9co zJ|qnN70_Lv+x3C^cmVW?pgZ}~KqT#BL3gt8#h@pKp=W_U)Pe3o`(>aH1pPj9|1Cb> z0-j~yanf-E==GpG`CL8d4WJ93+lHQm@wvm`J%5X{&kchTNuWE~VxH7o#yVd}d;F9#iB3|pGcTQWdj>>!`| z7z_G5(8YQ@8wr;h57T;lF?j00GZy^Omza1=>+w49(EB`gdQi-$0{u47#khZpBv-X# z6Km+*lEmkn*S;Z`EF(a7ii>HWpA5QFo|6Z90_aX_qaXD1!^mF+I=!0&HI06l&W|^O zJ_vL>TY#kP#Gezw&<}zh4Z73XJ_H-V9@x@p?M(yyU!XhLClB<0fbOKfAM`z-JL$g) z^tZyu-w674&?lSibBnQ7>;(P8F!B$APVay@t?fgQlzkqi{WQ?2K0MVJpDd$&dRORm z(Cu;$7pl-ZMDKuJX09*yE@H<_V@U58of~Eh+dw}Pbf+=c1^PhHo!0I{pq~o5(^`~( z#AX8MU^Dt?+NY+2o({TGY|ID!LeQP`s|TIth!cG^=>0%!Ia0kjzG^~x>KxJ2s*WIw_cNZ(4EGp z74(iU^mc9^+ZjXu*>Wz90BR-Zn^6Br+(-WlyL4q|$~zu0=4>oBA`_p-9@{L3A2!kY z(g`^gptq8o4wD>po_3ERD-W{X1Fw^B`$6vn-Ko#3Kz|wZkaLO1D@6mO%Y4wkP`Y@+ z>(T|@>+zndlP($tE+2F!U0k5&fR3Xx!*-@KwG7ZFgYG!~AWQ?@ZVpgi5<$-by%qP- zffI~2Z0x!oyzSt%^JN$6`$69V`goEx-6YHOoQmEve8WKo`6Io5_$uhw8X3Bn-c?Bk zeLLt*_RI$TY0#bQSq1uf(5dgbFPio_Eue1%-DRfpvu@IF1Jj+>o=(soMg6Jf`tbFe z;5}5o2lSUgx0^4b|JV>e2fAI{C3-UGJ3x2rKj@pn$gcwZi7@h8K&SpY$=?9_!=O*J z^iQ2{c7h&G{~pjue>)!%{fDE{`1;K9P0!YoK_BpfbG*$4{oi5quLAvj(8)*j@yGbk z;V8A=0{Y=F^*4b25$I0(cY^+57H%%9?)+FeVn;}rUY(3gjipAGu5F!Up^!KzZTGI!qndYdIjiC_UQzD9_UUvO%LeBpkHL}zv*LZV z#U)RQOPn0%njDt^{>gE%8g|gyFgS?|aw13$Uns?$7K8VDVm^$}E~7Uu@jh~I#EExD zq@eI|1V|_jxeT_wG3J>FZDm9ZUaQ;8_-Vs&7V^i4n9c#(`w?j^1GI;uc1La*pgq{{ zw8sW$yZfECc7S$&|I?lvpuN@qv|r}gLA(0+5mY0nJM_MZ>~&JPC27N`~aH|S~{ zYTX(UvnoP+oEuRj2_HBwVrb$#O?x(?eq&U`Taobpcca{EqqV1_AxZC=5cj~D5ksy4 zwsh({5fNWR#QZlx3q%@Rz2B5BRgRq;lc_B*cjJN6BL+7`#M~1R@nl5I(-B%b^+c-H z8;&OBX<>O#f6zrSH4%Y`0Y8n<9x^10fjXf!=4P#h4d+}?qyIhp-U8oS;QvbtG+_Ti z*K5e*>6(9ugtQMcU-f^HrR(Y>T*+`FL&e*|e1%C86J)69#|krUwXbm-<5j@5!V~++ zdJ2DvrJQOhU(e-%syUauIf={udU=B*esOiZBB98;aEnz#Tp|a+-65va`cGG^1lqs9 z?yVH%D2YH|7MF(^SPdwR4Zhv_r@-*D4_V5%e*&oIFHJ5jZ4L+?2k{-?V@X;jE|1ze3$z_q7 zG0*=?pq2gEs?%7P#7tv2mthIRI)=A1ypQ2y3^y@+k>OhmKVBg zPGdNiVF|-JhPN}kkKtnsH!*yX;adzpWcUTcej+Kx*)GHL8IEN*jp1B|B@F8r-p)|= z0=fR{>Mj&sIc3TOSK?G(VQE2yD?KSSDS6cRk@6;#(WVrI+-6;5UqX}?snKUytXGs4 zrO{_ttXGs4t;OmS$e>1PG5UNou=sqL)=yLOHWc4qQ~n)_kJZ$?2*sbEsreR)AE2pu z8Hz^~aG5dkK1v&?xoq(#X)Ts3aC=my;2qJGk~1^-B&)fRpJ zEb#GKOapFkDgG{TAFuUmzzr^i|5)6|Yq1T4B^~571Pl@I!+{O5toYAo{7Dx4c*e(B z@G}Jd46T**RO{RV;K@F>b3T+Qo6(vXuks|d?mh&3IQzIP?LIEr9jYy4|55GkX8HTL zU3j**{>AuzT_Vd2w6i0np64Wo;+36;H%L6Hi>nKN$!_N~h+-c*k6^sj&WRR&W#^F= zyt4C!7QC|aI*Xl^pKP%BiL(C>xTDJcGr7MiKUMap{@K}oG5902lePIaamJ3n4*Z%; z9Q(4A?A$lr($@n=*u|K)6l^BI2| z@Pql@3?65G|0Ib$lZpRke1$l~qPFCfkA$1_`E;=?E4%#_c*Vo40*vS{`S(^xY%3G# z7k5a`AK4D+jE~0zx04e9p7{OqB_mG*E%OA4UpHOiu@Z>u4#uB+gDk7~@GRr4UIT8sGhlKWn_iv)gGSA&}%eFp zmhtmaB_nrFi-*Cf-8(t1GSEf>ACFnJnBz8!*XVns?8di@&J;6(6dx|0Ve^XG;7?=6{p%_gm)Ua7>)R zrhFLTPF%^rlblU#2Q@ElV!Vgr47w?_F=`6XR(r%C?KLRl8?7~-~)@gHSNyt3Of zik}1FEJ@b78NaqvB9#6!5~TbuJQA<`vmJQF!y*LO>wq71x|DN(G`hm?|V%K-p)QPfcK`z!f#7;p9G2N-{QwUjea z0<9hR;q+x|f02kp#`kkc`OCc$q3l1E@fDX#{CN^+YmjJCJY2znFoF_KT=%-{`}=p` z$vzs7Ba72c94_%M^Mrengy6cD@mqOZuq=w}1>mV&b&h%wcb+UI;~Df3@nA^DYkK4yF=uTyFsje(=u_3J9&saBXR zDhDJb|AGso9P9eE26*!GY>S_7WBz+)OSx*^U5){=)3XV9((@D6M~&Ct8GjqcJ!Q8G za6|lC*$DSTd@4=VkoCOo<=Ba$aQoa$X0O-7bJ%lAJvyl2MK04U8Xh zRj8cjfgg^%LOtJzVfj0lzcXDTW-Schw;2q?G^$*nCqIsD&}uzKiS5_ zlq4y~y8l|t_{VRMj8mEaImXW`lL)wS^C^PkG{ z5#Gi1H^y(iLY7a9kgz@3zTG#0r*`j|6w3cl3gfSo_?INm=;dyN#6H*XRLTEQjU*{M z&t&`>)(6X|xc!bual_K2{8ugO z%QD7CbGyoy-eY_}wnMp8OPh;@hV(pmjYKG$tY^G6KL3gF*K$0GV>v^{N;&=f60wZ& zzhM0D=1Bz1F0M17H^q7NT=90sj|86dd4lH!!lt;g7=PV#SyuT#mEs>S@d!KOTEqA> zc0eX;XF@K?-wirlJ_)p+Gv2z-{ez? zRKKnO-cJ6b%s-9w$MPYrXmo_^Fb#CNW=f!4!+2}lc$o1Yu_K(p{2ws>6_x|Dh-?03 zQoeQE8yLTX^F4%Xas8R``NguV@Lw>#zCz-a9cEoFzti=V1lk>nll-1&2vUE-nx&tmhr#4F;xHcz}xBB?SSv^mipxId{=QG zlkrU!`S&xv=X%-hSrTY3GyV;ZdurTIohIcM&y$P_eVLdlP5F0RwD z4w2n1=5<8rS;ctkdCO+TThCR_^hi1XDUov3xZe)E-THD5^RHYe`IVmUGX7~xT)I3{ z%Fn)9@}Dn(R>=5684{t|ZDIT!SSRTc-zNw7EaN9$CD7UrCD0ba&&Uo93nW76^Jm~` z|6)C#e4F`S`ZZ~m9QT9gNxnZb|8>AqyN|McRNnFc<0o@R)%b2?ywx9mFk8y8#`7Y^C$ocJ z9w{3>#Q6Cfmo8v^GO@29eGc=utMj*QjJKW}pAWww{&y_ndjsQNW&cm2#~6mn_CxpRa9W{7POBl$^l} zrJPPq7}dGKSB(FH{qt;YcNF3>^|!uSB9xz$F#ZLO56Ye|Gk#g2m?(mxwv|nzrI|Sa~QwmdMSU?bcs;?eS+}^F)!&- z@!{W$FSYp9H25Xy`2@%Fk+Par&G;L5eAPJK#P}rm1zlq$(Eh>rLO{CIxU}Ggrhw;`p5Qlyee{`ngN7^8+A2a@CwnHo9Qz|6?>zr4d&-j}eZ+$-40lex9vkLG& z^H0Ed(iJCxc4?)QZ_R%^j300Dx4VJ2lm9gHFJrsC!SelxJ9hK&K7q$`Mvr7v^DD^s z2jSOrDLt>kx=wcM#QJZ>Kgjrg6D3}aFFg++e(U=u7gtOCO_;BADSQ4BczO<^KCh4< z$=V0Z@8|VyFyqH#o|F7f>Lg+Y<7xgA-uj+Zgx}t7=K)Xr*7$i9+`xF(LfIg9 zTYHl6*8TXWz@N;znL$7FhuU4vc2?`oBE}Elc&qHchVi%ZcxAA#Wb~ipSl<`Ahw%gE zO2$#le~|IkxUmF&MsjYuMlznr{9A!{@x2-BWq#{(&jE-pBxe&(&>>u@6nHy3+{*lI zS4l<{|NAeMa-QP#LizC3jIT(S{L22z7$3*+LHX6|j9;E6`PDxCl$)gdmO_bFx-DY7 zHQ)F>wm7SroGMhe2(X8+^_hNYWFg}*o*%Zc~u|l>x*b;B= z0N&1?4>5n^B~rj3B_DVf-k`Otp9YKA%W&zDdlIgKPNK&LB_AT zR3eo8egVmET}Ku$-YWl(j6cO4DreXo_Tw@Mc#2C4E&iYtRr_oFwIwA5Yk5IwMN&~!mFAt7>(5FV zUsdWW^4(Zk{fKQT{l09ezqFvN^d^)lE4&32#b{mjgv!aKrJDE3 ztl5(%WuZ!Kp*Pb@Hqh|Hw`>Q9M`stwpUw3a6!}Z*eBP=$cWQE9tiM{QW5-VfbCvR1 zzpq~ODLZ9M6-$>$vT0Uosv%yYYb(eocHE)*!`$>^wo_8wbr|kxIg@6(z3y34y$_v+ zkMGL137;~~n^WlZSNnY4Qg}Ey2!4k*t*W53I&(&8soOmz#hnedbe*lDve@S>ET|EF zlj|Q{UQm@;n(NIhEk(UDUrkMBsXMnIRERqlzxoSYsy8!tv^RGw{iyF~Uqvxl!0db} zqbqzjdUaQYkd)CO4O_%cO_36E{bS__fjt)vvcxCc%Xjp@FN~IwYb#1`sD6f_(|jxOhuOFbLYUQ z*|}r9N()EjQd){LvkH^lZs;c#lgg!;*~d4@>hip~o$p`-{(R!JFK?JKXuqFqgyg%4gxi-bGP zzqHCHCZ(8K9$!JR45}1sXf!RMK@7NB*pA;Zr;26ycwO5ePRMmn#0f+=ZehmpE16zi zQ13N`l;d1NR9|7>BS&)@lU&nVN9_Ap*Q1l70Nq(N!Jso|YS|wtOj3uG7#xUo1W12BA z4M$)RVVrCubURKjR`cmQTDsLF!3w3anCr2#Dkv-y3%akkz+WIuo07({zl4LojXS$3 zWeth)Tz8DuOZg{dpE9NDJJ1;4KA9*j8c00I%9NT`tJ(4045#7MrP%1w$}MKPGLi7% zZ)>I-sWi1^II4lCO^BXi%b=R;9}gpxV|e^NJ2UeLrlfi0E}^udu5t+`TlTcNY}%Az zzEBG6M*eS?t71&X6#I$_mSSD!1!`*5EUfOCw93mBi;|PsSO5_qk*r{JkuuWqmYGxP zo(%yu%bhN4Hd-ftIR2GkoXU4FHf}fNNFEdCFJVD5<5z zhLx3}uy4aYowIxgtLVlPZKC@SLlzKyPZ`Urzqg>q>!%$<=5)&A^i)9P2|$b%nmSBk zY$+}Iwe8jgzJZxgU0LNEY&g+(wlIe1*f(S8`bMlgdxlz|Z1;NThcSy}vZQa&9I}TL z>@rg2E(6B3Z2Kl-+c!yW`w*dydpDkr9Urp6@+#>RCiB1;I3+5_IhTGwa9p`G!e^b> z8fRjwO3S%81%Rs{_ZRy;82&qnTKYi)23BRFVfGtGnU-eG#vZ-6w8C3k<5Qde&=Ul; zT&TS(M&34jBVmH`Bdf|b5~gHtXudnURHV12l;%6gt&GS@5tq+apfx-Irz@2=BKZ<2h{J{f=Acg6Dr=COD^LC=>g#hH zK}79FjAcn4M~S1y6xl7B=zGnw;rPNg7QV0oICRUFF7zQ%Otqs-IExnUuQud1{JHJ)fF7 zh5Dm(r=vRSqAvCcxM-L&8x@t^MP(}Rn%4)rJ)FKyAK~y~oJs}B(CYZrVfP2`ryX;S zU3*@60#7qUZm2_?_8VnrdW55cdehuLx`f1Z?CBO8nxpM#igQO*?qWG%Md~w#Qy&LA z=yUGdJg*h&PF1bnIgi8%7aqaTEW`6WdVb~OU7a@-Ut2gvTI5)#n9PRKLJwN?DfXT8 z)H0W>xvA(Ty!e~@iLsK%r%T5DRCJaoD#_CRWB3ynFnT@E<{&>v)c zCnJnVcO1`iQm_?1s`%-4o3c`M(55WGCxX}x%8ji+#9l#6!Vc{j@%w&F~L*QGP@@bNTd+R=);Gx zq47k9CL`H5AEOvpap=M))p$08hv`V#)U$eDG4_g8OXWirEFVmhNYX=`=YO;Pq8ra$ z+-{t!;0eqWuRKb@kV2CjeqgP(tOeD0VxT{l)6duG&|_+{nwu%#;D8Nt*|ayaxE>~o zJUTMZ1Lf_OhsxIE!)At2LZH@EQ$k{-wZhNCZBlXY6Z-5#W!vJp_R*@4l0x~q6hPU+ME9o~JR4Dvf!7H|d%OX49VPWMFGcRUaO?9x`#vp?wGXJ5ca8B6F{P6hrUd9jyt?DfyX;hnZ zF!b?^-8&Ph`a2V*6FAFDF~>9cLQf5|arVY9iX8X)gqSGKIZb+gw_97}kLsk*ytb=- zT*$2bznD;2BZEqqk2ye!gwZMW|8`bXm=Gf$CZ-%^9u}JQ9?`2QKlB%rmYE*J_K6C5 zl$NIjDVEcMV_j|fJZ0lel=&paGOZ|W(Nl|~+Xsg{*0(;B_m2^;1sdC)Z)ptiRG7!` zTiBD)B%XS865hN>!o%nKdM}z}uWoXCqaw(gzD5xHCiX2lucCa~Hg3|iP;J_BESvlTQb}&JR7l`Jr&`3Ls3~l4W1I>#UC_WQi<20LQgHfBcBne5Fbs`%y$~^Ts%6p z2@`tAKl&^bCYUXsdO=>YcZzy>`?#`?>ByqxvtIMl0K2e^)FJdJ!tM|2YHErK zDoSiJ8I{2vPcEWf@wTPI#_)F1D_E9}A+JT2@_Nl(3N%6z^mn{m@8w)wF1CcXuUBArEypByKb&0LbXKSiM=iM^&RS^c zvOe!tCn_AjApSUx^i;?}2s)m~rOsuJ^Zgu$;SI?mbq&9p>}V{-s3U*w;<$`seyBZG zJk%C%c!a*E{Vh$}KFPL<1nNjdy$%LH@fH*pSL1Ujl_keF=y=LbpRSNoOMNoNVJz{u zDp@|R!ubX{{B+vo;|)!EXB{WBDp$lSnOKo>@a9hDbbdV(QwE+;QH)O=@oQ4~HC6Ol z8QzVW4mK)bcDdy^pZw{rT52iq7wdHy>tlMZXB%U`sRHRV zJ*x};Pj6Qf8_7|HhyMg52yh^XA6W!(K^d*Vn`~}`&4@Kg){*Vx$iyDct_Nm3-tpMk z<+Mmh1cXoy9JnB@#08F=-~eJHaX|t>Zb)4A5Q!@i0&-&cUe$Y5ud1uNt9yDF$*!L1 ze%;kouipQA1s8s$oawFf#&+LkwTckNvbb@UH&uVtxFXXcHgYByfH7Sw4p0~Dc%;I; z>)kN$qC0H{BG)DYJl2UUIe{NE$`xh>k`SyX-Z+wBiM>5pCgh9)hr~_eP%`1GkKjd$2q2uAV!%y)B3ThA9-kIr;FGA#wIhEB2+KvB z8)I_6z)m_6tV$dU9WFJ`+7nBok@3I@m94F}sxQeX)ixvrIG~ccE*lAe6w|?lNlpx7 z)e=Kc@R}!8peDldY$hI;>RSPQ?!n>-B%H3yoA{(L`sY1m>@Y#sIHP*tkarg;48*k zyYs>ecz+T$_Lfs*bQf~AN%W6{Ge*z=fX)er^ZuS^=IC?_J=d&_5<6EWf~naG1A>cw zzp9moH4@RmWD3gC?4Rv zvAK`p9prfzKpR{{X)S_H?A>v!I1&_C5B0yAcp7^(cn4xDOoCsOGjGyiziiaMA@aG% z?!HY~e7++fgGME^5gxlP%f`_Xglsgm*w3eDkg#_5=6l0X$ciXz1M4iNUCjLMZ3`6w zTE1()Vg7Fln0RT=H%zwT-q!-caiT6sAJ8C4LdaD%R^$ zHmuFXv>BDE8Y5Z_g6D^kRuJnmc)?idF*X6R4aE5~VHu7#{SpN^T)`|iqbo&iD#1)r zA(W=igNlUR%UbI)h89O;lBkhM&7mx)p zrhwmUmajG#pah4@H4o@M9vfLF%2xBBIae_CISf}w`OKVX0g`@Xa$`zE>T=N|E32Jl zaHXL%gD40|^z-*;`H4a*_r}y@s-Q6FGny`KSYsMs@ zB71k-ELH{e!jPhadPOd^3m0OkP}H^16wDsyGz&&SduRU!#H4(LiM02Q9Jr*J!LT?* z`87^3G(LB0d(tL?RDdE>Fa%=24$I|g%II<~Z6JK2$Y~Qt!lSm9Ny*Bo>~f{JMW<2& zlFQj4v?&);CF(@ANebk{-6{44n>-V&RI;p4wKwbWx`9z2-yV%odeG$_U_P4$4+5bJ zv3e%N2C5gFftJ**XHErsu9Hg3WNGf=#$lq7+y^RbGhUEP2iNA9Q=`ce73ct(_aX2d zBD|=tvXJXp1J=1^4Qujb`e^Ux+ssuJ(S)G9P?ARzkk>X&_CT(LBGvCIOm^p^yoP)x2OkNsE&J>OC^seKTR~tXGp|U_l}p+v<&BEEu<4vSK5Y z*_h-Bl{$G%R@KZb-rk-8$1tJ@nHC0?^iW_wB#}xPUse8 zp&ap4a9ANAfS5cB>!TMOtU)E;Y)FHBA<@R1xN2|$9NZVcU1i`=k=yDNX{k_TgG(qA ze1tlirWW|zLqCZLaxR&scMsNzzV0%3RR{ z3G8b{h~fVvEzol#9;){nKk z#EN0{L@1$abe1__+@9I$jwlnkVKX4oWUZlyT*0s8pk}h9n&KsFg2ggh}R z!dCI#0sVz#tws1W2RN;yN3S&P;1R{rbM@2DA_5f#T8vHFq>d{9^VLi?6c|i(&<5Ur zuCb{toRNzGW&{`ClUxETQ(zHIoVjyN{8G(5b&eHG@I5 z{Ge`~O6$V5C}(8i@j*@T)&t;BUgj;B?$$gpd6pArdutT(Y^Yx;K1nQgMPSHuu}1Tpcfb))LEl}CH6;vWFza#xb#=0qij@iyoqo$$QEzQ zn+$!`)mn9WUuZo+=-x|J4zo;|(D3cb(tRuzqHB%SxDtjEMyhHlEVsJrF4VC=3hTJO zYmoToS9i(#_{acOopBvXriTe<1)tkNyG>Rg97?d2%{F^x2<>hcsb)k!6>*M)n^o7L zo~B%3nf&cu*D8q0E18YiW^9;7b>Mc%tZBREfaw~^p-A{l7lBn{TgCWF9;cB$VvNRt zWhGDG8X*b{dM=pOQx?McjH3ADTu4+Wi3IDlu@ZVYm)X*!R#vQ=U!-EfASQC`0kTC* zf)rJ2n`WKQ==rYoR>n6A38(v5G?O0i+uz?3L4K-)u9 zf>m>lO5|+dIVPF4!7&k>ATfKER=3!zwyV5?LTtX_mb@)a8(b2_Nmi0shg#jP*ecOE z$yPx#Pn#%XKxMgB-+g6@(yn-IERfg8_^Ipjw5}<&=u* z_t{V+%^j+=Xi%pJ0b)W3jU&!8#gKHN=L9ayG+}Kuii+A&oP`v6;H467)6^(%fK+Y@ zaRwVQq2B0S7vlgrE{Wqgdo=P{SGB+8O1tK za9E0Nm+zKijr+C)&Fo-uk}#@>W@htgiV5Pr(|EkIUzMa?6(&teo~sPItaLRiH<|e~ zNGQ&BAY?Zt5n}Dt@^@@YNV_!@~Lw! z+2)ndGH>?gAdKm#5S*?8XZo+|7x;;O^j0O%uZvPIEtw*)oh@e8>HuzYk5gT zD?$HkebzZeod2Boc7^c*Smliu;(e*2an{ZQ-sjTq{cd$DAti|*i*s1B4Bx7DGidWr zxfE$AlSojJJCyEFaCctMm6%GVsnqYF)>Y+fARu4QMiNCbwQS`Hwr*zLHj(4v_Le7z zo5B)lZY!%1hcW8^52Jn8VzA0oo>A`F=0{nbQ55_OF!FnH2M7=&XD5jb?y_G+o!X4g)zjyPUe$EHdemZ&r zU8_G&;L8W_C-A@L18Fz(#W;R%^nDZGHT>HQFYV`}>tp!maQ@#9AI|0ZkG#hMNPCIl z-^cAE+)8sD2Oq+pz+Yi_X&+<2_v0FRcY%K#$Mksxe*_}%*Z2ZypP-jhpLqPffpZU4 z|EC|Z7rT~WrT_9AX}^W@|5fmRWq4^HFg*32#!mXrKli@Pzsvo8{g^%DT0SAq7kGL9 z?=t*X`G%(-w+GU`!Q)BrpTu7b|0DcHV?zBipN+8n1b>w#p8xOTgofYPuvbcZDlf)2 z;MeO(`{M}yjnCN&rIr3Nxa+_C{?iEl9>Yuf*2@BETY0Yh`m+drdE1_m_EEWz+xY!| z!SL=i@A8G*evbx6eKyoF9sUx3bcw*f{vG`1yasxew!y(X992kM`mRzp<_0sr}~hPx|q9oS-Em z@b57EI}9(^mBIfLC#Z`8-}@6^`CHrG(7S%g5%HNJY8}r`d#45_?O(4TETsNi`U<@-;TFz`&l$! v$Dj0H@QT)_^xa-*|NrA(w!QNM{j2S({^g_il7gSywLScTbd-Ujuf6{PCQ?{3 diff --git a/include/cpu.h b/include/cpu.h index dc95b6d..4d4f43d 100644 --- a/include/cpu.h +++ b/include/cpu.h @@ -15,10 +15,7 @@ public: int CPU_WORK; int CPU_TOTAL; - int UPDATE_INTERVAL; // s - - // int CPU_PREVIOUS_CORES_WORK_AND_TOTAL[2048][8]; - // int CPU_CORES_WORK_AND_TOTAL[2048][8]; + int UPDATE_INTERVAL; // ms std::map> CPU_PREVIOUS_CORES_WORK_AND_TOTAL; std::map> CPU_CORES_WORK_AND_TOTAL; diff --git a/include/memory.h b/include/memory.h index 835d8d3..e5de65a 100644 --- a/include/memory.h +++ b/include/memory.h @@ -1,6 +1,5 @@ #pragma once -#include #include #include @@ -9,14 +8,13 @@ public: Memory(); std::mutex Memory_Mutex; - long double MEMORY_TOTAL_MB; long double MEMORY_FREE_MB; long double MEMORY_AVAILABLE_MB; long double MEMORY_ACTIVE_MB; long double MEMORY_INACTIVE_MB; - int UPDATE_INTERVAL; // s + int UPDATE_INTERVAL; // ms void START_MEMORY_POLLING(); static void MEMORY_POLL(Memory* mem); diff --git a/platform/linux/monitoring/memory.cpp b/platform/linux/monitoring/memory.cpp index e69de29..d484128 100644 --- a/platform/linux/monitoring/memory.cpp +++ b/platform/linux/monitoring/memory.cpp @@ -0,0 +1,21 @@ +#include + +Memory::Memory() { + +} + +void Memory::START_MEMORY_POLLING() { + +} + +void Memory::MEMORY_POLL() { + +} + +void Memory::END_MEMORY_POLLING(Memory* memory) { + +} + +Memory::~Memory() { + +} diff --git a/src/main.cpp b/src/main.cpp index 92298a1..396d9e9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,17 +1,18 @@ -#include #include #include + +#include #include int main(int argc, char** argv) { CPU* cpu = new CPU(); CPU_Instance = cpu; - // Memory* mem = new Memory(); - // Memory_Instance = mem; + Memory* mem = new Memory(); + Memory_Instance = mem; cpu->START_CPU_POLLING(); - // mem->START_MEMORY_POLLING(); + mem->START_MEMORY_POLLING(); while(1) { sleep(1);