From 824ec1c1d9178181d9fd4f00446b431fe4d4392b Mon Sep 17 00:00:00 2001 From: root Date: Wed, 2 Apr 2014 20:47:46 +0200 Subject: [PATCH] killswitch in extra thread for lower control delay --- UDPclient.depend | 4 ++-- bin/Debug/UDPclient | Bin 46078 -> 46926 bytes bin/Release/UDPclient | Bin 17908 -> 17912 bytes checkkillswitch.c | 12 +++++++--- checkkillswitch.h | 4 ++-- client.config | 1 + main.c | 44 +++++++++++++++++++++++++++++++--- obj/Debug/checkkillswitch.o | Bin 7932 -> 8532 bytes obj/Debug/main.o | Bin 25504 -> 26656 bytes obj/Release/checkkillswitch.o | Bin 2484 -> 2756 bytes obj/Release/main.o | Bin 9504 -> 10012 bytes 11 files changed, 55 insertions(+), 10 deletions(-) diff --git a/UDPclient.depend b/UDPclient.depend index 76cf40b..cb8f3ad 100644 --- a/UDPclient.depend +++ b/UDPclient.depend @@ -176,10 +176,10 @@ 1395878369 source:/home/chch/HengLongUDPclient/checkvideo.c "checkvideo.h" -1396205007 source:/home/chch/HengLongUDPclient/checkkillswitch.c +1396457823 source:/home/chch/HengLongUDPclient/checkkillswitch.c "checkkillswitch.h" -1396202748 /home/chch/HengLongUDPclient/checkkillswitch.h +1396457833 /home/chch/HengLongUDPclient/checkkillswitch.h diff --git a/bin/Debug/UDPclient b/bin/Debug/UDPclient index bc4f90a3478233d9af4bf4bc379796432ea3207c..e4e36cf2db2e4ea7e94a3fb1f9f620fd5118de77 100755 GIT binary patch literal 46926 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 literal 46078 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%0As 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 delta 5961 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 diff --git a/checkkillswitch.c b/checkkillswitch.c index 113406c..27f3b6b 100644 --- a/checkkillswitch.c +++ b/checkkillswitch.c @@ -2,12 +2,15 @@ #include "checkkillswitch.h" -int getPage(char* ip, uint16_t port, char* url, char* recvBuffer, uint32_t size) +int getPage(char* ip, uint16_t port, char* url, char* recvBuffer, uint32_t size, uint32_t timeout_us) { int sockfd = 0, n = 0; //char recvBuff[1024]; char sendBuff[1024]; struct sockaddr_in serv_addr; + struct timeval timeout; + timeout.tv_sec = timeout_us/1000000; + timeout.tv_usec = timeout_us; memset(recvBuffer, '0',size); if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) @@ -27,6 +30,9 @@ int getPage(char* ip, uint16_t port, char* url, char* recvBuffer, uint32_t size) return 1; } + if (setsockopt (sockfd, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(timeout)) < 0) printf("setsockopt failed\n"); + if (setsockopt (sockfd, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout, sizeof(timeout)) < 0) printf("setsockopt failed\n"); + if( connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) { printf("\n Error : Connect Failed \n"); @@ -48,12 +54,12 @@ int getPage(char* ip, uint16_t port, char* url, char* recvBuffer, uint32_t size) return n; } -int checkkillswitch(char* ip, uint16_t port, char* url) +int checkkillswitch(char* ip, uint16_t port, char* url, uint32_t timeout_us) { char rb[1024]; int n; if(0==ip[0]) return 1; - getPage(ip, port, url, rb, sizeof(rb)); + getPage(ip, port, url, rb, sizeof(rb), timeout_us); n = strstr(rb, "true"); if(NULL != n) return 1; return 0; diff --git a/checkkillswitch.h b/checkkillswitch.h index ce62b0c..f61840f 100644 --- a/checkkillswitch.h +++ b/checkkillswitch.h @@ -9,7 +9,7 @@ #include -int getPage(char* ip, uint16_t port, char* url, char* recvBuffer, uint32_t size); -int checkkillswitch(char* ip, uint16_t port, char* url); +int getPage(char* ip, uint16_t port, char* url, char* recvBuffer, uint32_t size, uint32_t timeout_us); +int checkkillswitch(char* ip, uint16_t port, char* url, uint32_t timeout_us); #endif // CHECKKILLSWITCH_H_INCLUDED diff --git a/client.config b/client.config index 860067a..1b6e035 100644 --- a/client.config +++ b/client.config @@ -10,3 +10,4 @@ TIMEOUT 250 CLINBR 0 VIDEO 192.168.1.66:8080 KILLSW 192.168.1.20:8080/status +KILLSWTO_US 600000 diff --git a/main.c b/main.c index 11ac457..77a97f4 100644 --- a/main.c +++ b/main.c @@ -275,6 +275,7 @@ typedef struct henglongconf_t uint16_t port, videoport, killport; uint8_t timeout; uint8_t clinbr; + uint32_t killswtimeoutus; } henglongconf_t; henglongconf_t getconfig(char* conffilename) @@ -302,6 +303,7 @@ henglongconf_t getconfig(char* conffilename) conf.killsw[0] = 0; conf.killport = 0; conf.killurl[0] = 0; + conf.killswtimeoutus = 500000; while(fgets(line, 256, configFile)){ sscanf(line, "%16s %256s", parameter, value); if(0==strcmp(parameter,"KEYBOARD")){ @@ -341,6 +343,9 @@ henglongconf_t getconfig(char* conffilename) if(0==strcmp(parameter,"KILLSW")){ sscanf(value, "%16[^:]:%" SCNu16 "%256s", conf.killsw, &conf.killport, conf.killurl); } + if(0==strcmp(parameter,"KILLSWTO_US")){ + sscanf(value, "%" SCNu32 , &conf.killswtimeoutus); + } } return conf; } @@ -380,14 +385,37 @@ void *cam_ctrl_thread_fcn(void* arg) } +typedef struct killsw_thread_t +{ + char* ip; + uint16_t port; + char* url; + uint32_t timeout_us; + int state; +} killsw_thread_t; + +void *killsw_thread_fcn(void* arg) +{ + printf("pthread killsw started\n"); + killsw_thread_t* args; + args = (killsw_thread_t*) arg; + args->state = 0; + while(1){ + args->state = checkkillswitch(args->ip, args->port, args->url, args->timeout_us); + } + pthread_exit(0); +} + + int main(int argc, char* argv[]) { - pthread_t keybthread, joythread, refl_thread, cam_ctrl_thread; + pthread_t keybthread, joythread, refl_thread, cam_ctrl_thread, killsw_thread; input_thread_t keyboard_thread_args; input_thread_t joystick_thread_args; refl_thread_args_t refl_thread_args; + killsw_thread_t killsw_thread_args; cam_ctrl_thread_t cam_ctrl_thread_args; int frame = 0; uint16_t frame_nbr; @@ -438,7 +466,17 @@ int main(int argc, char* argv[]) }else{ printf("no cam config!\n"); } - + killsw_thread_args.state = 1; // default, wenn kein Killswitch konfiguriert - immer an + if(conf.killsw[0]){ + killsw_thread_args.ip = conf.killsw; + killsw_thread_args.port = conf.killport; + killsw_thread_args.url = conf.killurl; + killsw_thread_args.state = 0; + killsw_thread_args.timeout_us = conf.killswtimeoutus; + if (pthread_create(&killsw_thread, NULL, killsw_thread_fcn , (void *) &killsw_thread_args)) printf("failed to create killsw thread\n"); + }else{ + printf("no killswitch!\n"); + } sockfd = socket(AF_INET,SOCK_DGRAM,0); @@ -466,7 +504,7 @@ int main(int argc, char* argv[]) printf("No video stream connection from %s:%u, remote control locked!\n", conf.video, conf.videoport); continue; } - if(0==checkkillswitch(conf.killsw,conf.killport,conf.killurl)){ + if(0==killsw_thread_args.state){ printf("Killswitch pressed or no connection.!\n"); continue; } diff --git a/obj/Debug/checkkillswitch.o b/obj/Debug/checkkillswitch.o index 7df0507323b065bf5c35f1ffc52756b145d48530..990f6c635e8d3c622c3f0403514c610f648a7703 100644 GIT binary patch literal 8532 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 diff --git a/obj/Debug/main.o b/obj/Debug/main.o index 11892073ac71a2633055f141ed135824a51c98aa..55085781509601aeb70a6444b18b169892c52ef7 100644 GIT binary patch literal 26656 zcmdsfdtg-6)$cwtlVpYrnLxrr2r!TdL>_^JfGANDlJJm#ydPE_LNXH~A&Hq89u)-* zqfBG`j9_iO*7&Lwl~!8?L{J_o)S^X1(CV$W#jjYXrCOC*D);x>XPwC;Qonouy+_aa z?e*Aeuf6u#`<#7phIQo?lMTaA)?p~S>Y$W*y26wcYRFX=sorXC^Xa}V*ZRB%96oYS zo;!d3{DIPRmRm~Qu`-{#rPK*%;D2&vC{NY?P~DK_8a zR^h&4r=_cz=9|*LQ=0jm(!Sp*%~Ih(|Eb*rrCID{^G#mm*)WscP6)yLg$vNL3PffJ z*ki1o9Y6qBDIo}DzTD=s=OcX+YbTa>Q~zaNUg8B7oK9eCnQwv)C+f%JbT-9v*OwSE z&$cq(6-7oQ-?M$5uPE63wGqkiY^(5Hxr4*`_D8N)Ke-5{VDv~NP4jnt1OMONH~5_* znH3Do+Uw%i% zx^xJsqlJb#m6oWi)cUo)EA3ru7MeCEST;wRHg(Un?>g}Hh_oc6MPfFYd0EsF_RRwO+j*I6sp_;wccqZr`Ix_XpTvd4gq{~#Inq3-F(*Lx$8kNgUxGwxkh9id>P3MVh4w#pnI?q z3W+^{k{2=u&_^9$E-Ojp^w>yQG_1vAvZG~zvt_dTg@Lei@mm<6R(EXgAMC-{%wh~m zt7HA%k3dYGL^p<~d!n@pm31P>Hr zDg+O(lLv~E^%e7afAi_0*tNbwjM4;-62zRR@%f3U=f*zY`>#Q@zbT&NQ7`fmJM-0_ z(9gcc>#=#hEZy6Ed%qrJ2P=aNm_xM*&94;gH^**m%LBfz06~1fH`h-}8uL$KOz%tLawZ0n9wmM%mCwBm~ zr$0xN)-Bd|2}$GXGegV}T|X^ZJur&XgR8B1C0ObkTLZPz=5N)&(l{Z#BDj zp?d3gX$MLpm!dQZu9QSZqm+lzj7Sbjqft^3nqXus6TiDa(;u>FbS}|f)?@fCR8N|o z6>oZByy>zoO*8TrGGX=l1e<31CxnVka}ce1XCUqxt3o=A-lJYRiku5#jq}5@#+$zt56fB!tzBUJ zID4#miR0H|-YN7f;Nz+_XQF#N(VyaO+#2>3zQAXi7A*ds{}k#YTg-(cFjg-k;Uv8V z-1-VvneSciziyvHwO05X%_q*BzwzAs*vD9cX5V^xY7dw&S{6I3)o1>R{3Fe0ZQ&kR zNuGgyZRL~GFwz=5`StnpF>) zjq%dmQfiH|dMw%qx~2S;SadTAte;evJi_t2Z3jM`JrGex&uWxq1n4oHfyn8E#-$}(LGvB{R_ME zE+w7aIbk`V-C1c-i9?AA#2YEWyn96tA#GyOcRzz)+sfbE82vpGpmqMy7dYxWaH`nx z&z}k&C_idbEzyq{$MSd4gM-1n2c5xK`LR}A_rg9N?(8FzBx-rpdhZ8l^92Q05}Jwr z5>$@0g)_8k=I=AjyE$emk_L7eq$c~vW{_Ts9dF)m1Y0KxHW-ye$}g)g3M^WTi! zdyw(tbJth9b@8p1&F`>hEgRnW2oT%rdMliTXBqBfIjbCXUE1z2)1u8L8hcKgitT!b zrqKTV?DO*v@VfgUTn|Ja!}Zhid$8*&|Lw-;7EqpT(Ja8m=o2O}Kod`q*dDzB5VS{! z5Mt4vo6Kb<(`z!H2DIGU7uON@X5wnUcZn`vOMcYNax|U%=saCsglo{amjf3x^sq&b z+|v6%l=ILWIBRa6%8MRZBNC3`fhZ-^IhASZcW_yX?xCHvaXaf#A|H14&<-V}%@x72 z)0sQ=?}vdf_bO)_+VgM2IorrtFqfD3UmDKjjHtZaa6gOBlvEs4+@$H4>fF z$k1v!D$QpLv^5e13f7v>zNxK|@g|3b$qufmMxv7%8E>9%-mNDj zBx4FolFCGSqDwMki9nFC^m{g3gIf*r-5h~~G!Tarhb#1t|zQ%h)!Qx4dc!1Us5;Quzg! zFSa>Wy&P4x_a^4dDBX#!;`|0nm@OEjw&sgF>U6& z@;M7iDpXEHO`cOSquf7#u7Yd<#IW_f>o2?RvYcfRHE-IC@~h|1Q#s2(lvYfeIcbhs zFs-coYBhaYMaA5OiOSNv=FhvD2J0KVR#yg-u==eDgwk8pP#>(V(WDvh+Hlpf!75l; zTNgm@8@yE*jBr5Wz=53{7d12n>f;u@)q$0@Re`*&a;y2cd`|h~3a{?5cho2pX86&i z%e*<`sz-X~%$tYOC3SU?k={v*=atX(HU+9yf;E;xRP;k1WcKQjUNaUTAVPU=d4*YK z46mL%nM61G+il*m+K{)gsiCF`{YA01J{-XRx_3(h-lj;sx1k;#40vaidMiWTs=8Xp zb>AE6!%Yo!S{4d4tqe3-n#%%6qPhlL!j<*Q^Ss@@66RU+A414g@Rfy;B2qD*{bnZ&66odCN??xMs!by!t@+3f+%y z4M{w*W)8Ej-_o(hJ7N63r4ye~-(g24qopyk!Mn1yI?#aWhV;-`R3E4c*CLL=riK;X zoX}-C7{aE&iU#BkBA~-q*HE=QP(2vEnXczHQw;+X2!${h4NYF;Csf5y-eB}+`0(N0 z$r!dkT|+2@3<{$WSnyUfgu-YE0<%3>uEa3at_Wb*kv$C9-13=a|0&PBoene8LV@~f z)Mlo!>i=t|<@Zv2u)*Ol{*0%3<4e5^DwW++bCu0-9>5;gW=r`Y_M|pPN|Fgz5RBwC zxS82(NuNW-?npw8Dw{KDIhoFsw`p}Otfx$v!y-3sDXn}dW^*LH0UgIwuu|??Lg6o2 zyq7}9TwGG_V=>9$I19a$=ca>5c07wK+B^q89m&++Ga4L62`R z+$YpFwxe`vDM^)vdMD?OUv>P_iLA&Xqq zY&XwXt~*%lN+VfdHa!WE^HR~dXGYRjJIx|8H|As4xxr*egm*SdZ}=?o#4xE>=p)7Y=;R=al4jalOJ zGS>l0=NRd_-8$86FC)7x^<9{Br|x1H+>@xX+l+{Ex6sj-%z!xDza+KK9APK&V>>D& zJD3XHIVkK-8Z(Dn=7i>YE$%Soh*GQOAzU4E5nT5xWh}moQE@kAFek)}t1AY47nTa2!4ELpiBO z6RycU?nF1c^>_z5>(_gGyo83Y1q*s^2c+YLLO|KTiK+o+I z*s^VAR2~4KqtIPB20)yVucOcp-enZfoZ|y>3)x@C&!C(!aWRWWz|E{A!|@g9%+_C` zn0f|WN9JAsMA^+h`eokD*RN<=rSi3GdgdRlfJ5#8n3;dFyeb4M^Ta`|Xmf8t%b6el zUQ-VDE9idaNe-PY+o@9dif}?NR~ACxUJHZ0Qq5FT?p8QqQ4aT5grJvO(y-@>nmFNh z=fJWhN_XeOl0{{@7oZ)B>g#?rL6+ryH9_WeKgGtS0iXLe^uVHW-Jd7a8|m(sARFWU z9b50tpxd$w-92eDjRCi1k5dlzu9t@qO1&Ez&fcTz*imLy?=kyy43y5E-uVw}%AxbD zcY(fDWGB0ifZKblNu{XNzre7&cSAdk?1Jsyjb_rRo~u>w8_lw#=Ni?!$t)wl)O8vI zPO!=oxEO;*NV}EjvEel-n|nBXG6tKJ!@UXNHino~vU1RfkF+?O>KS-mIcV2-_cb(;IUgN5Yd4aOa=brwtzku{!AXYRy1qxVE@P$cpu?5V zHoIvO&DeU?HYy|4;M4=@=!Hi&Ww^B=d-g_$s|fau?#6r=wr3x7xPHV|(}aH4;kub} zkC;2@a6N#GG}5L1$>d&*tE#a|3H?Nh>-Ti7r*_VseKN)M2FD`9FnfJE#kC!d#OY5{ zT<_4HB|nqm(oxAY%&>fx;?g73OX$y2Tz68xx7hzjin(yndmXkbO*&xF9_3-|j6TN2 zh^+Hblyi-xMo&EL>A+OWyT6r#y7fs5Nec|4tuznrUn>R$9*99(Ps;^$s0W zBv!9T6WZ8lIqUj2LlhIEZr1_k#}CB$bmgI4qs15qv%Mig5}EGVjYq)hvkC)lt9cXr zzL2kC-VE23?Zz9F-vWt!IOTo*3)Stzne0@Zh6p>d4c@@*hAkEHeyHroro7Leb&<~~ zeg23B9NGI(M5SXekyIj;7Fm^&O5&B0N?7S4zrP-OtkmZz_%8}if=-&GtBphJNt3RJ z1w2hup|xZO9}9XL-BGrEp@U;LehfKmg}`~rGHd%nH}-p&wS7SaR6T)fKjRNHv&66) zuY%j>8BOUf48$Z!ULsv^k}w~s?8et|%^6zr0h*hk8_<Nl+)XUWDl`u%o_YJrgoSM=xpc@(VdF0B{<|`=H-E1MpLUtft#}j zEH(6bTq|Hv`Ivl-5Z_6a4U4GqC0Nd3r*O5mEovY35el}psmga73ZFnNiA~-Uf$GqE z!K$R4Tnd9I-A6wUY5^Bi#+7%bfyQ+9u0#ig0r@+^%svIute})62BrKB$ZT!1%qUFO zotgMnyInNa*z+!BiKs*A(+G=1r#xd!4R(Z7kG% zHs-3~>{T{A?MuDIx>sN6Y9ow~nLeWo_M`)(z&IHU7-I#m_07hKq5MCgJ4ZL+soqyfwUmb1qZU{f2pQwYN=f zAKD8A{sCQ$WOTXB9zzH4+`?>1wiknHXWsCxjVa9rFER|?d>D-5P%1&Ce_}U3Dxc2D z4z|sa_Yac&^>XwkR0iC|C}f#;*|uFb4OjuUjREFexNXH5@O5g{gFRtbvCMHLO+lYDXylHWZXGbQR!JcCH`@&DA)c zf!f%=GN$A7hA{8HY1S-rtE&n&Lu)I}-^Dd2BxsuDY^`|+T7SWr*Tb?oF+tNTUjog- zxZ-<^$V7v|;snfF&mK?IHy-XW(Ygmw&c(SXZu5!+n`Ze@suoOvRsiSIam|thO|!fm znuV5Po^HKFxBeTtty?eAt#5%L*!%(DQJlx(Hp>!hn&oa7c~!6vTJN(Gx?;w2N`j_Y z9;h|Hf>t_8!{eG)C1{%E0*QGe;#Wl@MyE#T?d9v2L71#T5-V)cGonX@}U!yho zEy59;PsBCnC1{%EdaZd5*IvlxBXP}z37Tg4Hfk1L1+6NaX1}jV&@#(Eq!wn(d00vr zjADP|R|tY}zoBEzDZ`gvPeLsdZ^uT>G=BFlAoMLrL|LCd#O-Qsj{qCv({NB=NH+UPcM?Q)SNaF-}Na!b4 z4j97v4;!5B_Q<<|0n4fXh<-q`N1j_X;0WzKs-G_Hkuxjv^tR?P-LucpqddJ!`Kf+v z>w})=>CM99T0Wk1f7&+p{T6fDM?P3JAe&R@ zNrOwCJ#zo5yqDeN@u7oxySGDM(VV(i%y&e_GN@DZPYspTtBuiqj~! z>3Xv%L25jO>x4t-O1CY1kz^PXGSL5SPnrbx8aZhhsrIxU*kz=nhc=%|O}zpP^jeDO zm!r3`r(KphF?Cu7o&!8kfo%fml%a~?%rNX}sj1LPGC;bzn^lsgWlVs7-7E{(YQ_~) zspu9(*rH;0!uGDf2zk5q*vOmK(Qimu!v7p-I=$~|GlX?jR28M=)mGH5F^ zPHNwJiL&_CJI}b%ZT4@Nds>D!wb0E($Q#>X0;{FT$K*<|1jFNLi8bK79{o!a z8JHbn1VOygU4%z^ePFG?UlYO(A|?#WPGYfH_5$=#jB5!_>JrP$vXjV70Qg=M^+CF? z$#W3-Q8(=p`C8=5KN=*yLEa$wBhBomnI^ zF!vL*NDl1GBAJJ?r`T${cC)S6S3Go3`z8nZw{})1`3_E}sBdzRqK661SdMa|Q3!E2 zwaL*oa}yr2HrYsDDZDZ5CXe(2oT<=rofjqgmSGc&Upb=>rKoHcpzIw|Yl|r0raF6M9UVe{$-sW^J;e!x9Lx`ru3> zdv*t(yorP|vQGvNPyOb>jbsZ>@Mk6RY5WIy$`4_vmSKR-k<7DeZ{#60i_UHolY7|(e zN!JOFxWX(uiS=gLO>8jB>BJ_poJm}QAi?&@_3+CUnLfb5&snGV^I!j?shr(n_ z!B7hIY09!$Xl9_yjcR&|HMt}#CT+|k{pjZTR3xOeNyY2JZ?X`#-F_Zf5Xh)&BmD+=2=KJOSW#R|eg>1%&bw&fEX#Nm? zxZvnVWUaxS;+#u))K2K_o#$u9w{gX1;=XCcn134Fd(%)lDo zALm4z*1@-T6LB(q?#F2z`i~UqGu&$p<6mjraphmu5o%?OUe>T8FuH14)w0o3@u^t_ zzBG$}Sf)ltLQSJ<>#OP_)q&BqV<(IsRaaXdSv{(zJ~Db~Z8&5q)YUE>T~k#xx^{dg zg~Gh?R^3j9IuTv1hSrEttJTWTicvLz`an}{Rp*M@lg=!B!B&eC4Q+R-DFlV9h5RUR3AoJ zR|jH6;x~f)L=Y6ZY<-Cb3YN@2XJ9I{+6{-z{{GFk;l;uh+fIDYh4;dXZ8_wg)7%!@ z&c$2FPYxzKBi~V|F{Sp^VY~Z5`{|o^I&51UcKeK-Fuh+n7r|oVB9wdX+~IK8pIdhV z<>Tr$l((#7^T*ZB&G&3|j#>O(GgKEkz2FUZKHau*`ZWs!Ybt&oY1$mAiQHq4gzcX2 z%B_*eJrxNtqa97bmrU!_Z%A?`u98gD}>{ce{|@)&z+Y;X*cTJzV4VKiK_N$7}tfz4d)5r{q7bR*UT-(G2%76e8I~dSXBV_ zPi}EOC_4ACqQ$*Um_Gv3ei6pXdDU6x!_Cd@&e4mTo3}Qjg#WfiLW`Zpor|3-oi92c zf;L4)JN*&i1w!x4zhJ$yz&PXKg!eLo#a~awOZ&t%ZB`sQp+? z+b(J2o3&^e%nkOPP&m0Zi1PjRV{L8i_h0{>6XxuHU#oNRZo9K+49HK{G8s18caCkl zJR(L;thE)=$WQFfr)?K!MqX@h|Mlz6>G&_=Tp3w8z5T`M?Yr6^5`5%%Tie6zVDiCa zYihN1q3`KJca?8)4!&lW?UGD5^w?VGXK4F>+ik;jMkSv}b{?_~!Ft|^RVy4+et$zS z=npIZw5$F6w%y+tZc^6gyMFVdT0j0o8;Y+I_?WsLU$?4I?e_zy$aM-I!mnry!B!{| z3gA20>JTl4mNhhmmqvoh{6e>rF~7gDGQ3QM#7K25KBne3x{50x3{@>tjg_I$ss{XJ z*YD@Trago;|I*4(K+V0nbh>}$)iWnmprG(MbN$jLr9XPsmq>l6wx%AR?($>RtLFO4 zO6HaL=PjO9jwMrDgMT40>yPA*k9V$kjrsXat_lWLA{=`0 z4OVk;&L0nLD|}X@I{czL;#t+Q$|hA42qRqh%3Y5`U1bfsf-k&by-t5mto%WI?Oxx| zF+OaTb(D4mw<~-CZ}yzV`As@Mb4EQ_(?e3=hXDwJb=8&ON)D0)okPxm(xSgA(&Vpd zsEe$qH)A_@-kkE18G3a6kq}ZNScj@NMvx)l`0WEl8d=p;8xH8ivF__{h$7gp5`tLkwNtPf}(tpUKTS6N?wTRa#++EkBKOC#ZMLwyLLtoMIE z(A1zBk!fmWWnBch1BX^rHZ2b{nH`x^Hp9G6c35dZ_3#>en5{bH2?rU@s)#j?9Ab%C zWP%R59tvDKeN=U`pAl<=rsm7pP@r9n6-5s?dvYo)=Wl5 zDL=n>*Tbt-kcbFpxSIa@{m5ln8Lxtvmpb_y{NY-RRo4;WD6vykY`IYAM1VaGG6yIK zSL)U%Gw6yx%z#;>B*SRNf=R1x2>Ammk@^W4#l+-bj4xy^`Kz(cDE)1}9&Sd0oscA) zJguT!_lHvm(?>1Unc-)O>)z;T@LdnDqvav6v9jK;e+ipLX}px5GM?~ z^#oGSA|QHggR1;gff4oV>^B!k&J09JGQ)ai)Ll0xb3&xK){HHHES@TQ zJ)t2pIDYfz50d(3WXes?)-BJMp#zkXJDbt@nPC-j%YGYkm zsr)O$l}qaa)|9r^yTsln_^NLoFwp5XfbrH-OAnh~&1aRAPA{J)T9PiPg`a6OH2IrU zcqP0IR3WSl)d6f?b>L*WnWNP;IrUv@%FOxRQZIHEd1G-$sW)e)juph{i9cbH$0+GV zzTRBiyLLh0mQty2QaTBhzdo>*&(b%Btm&MsvL}Z^b${xHNEm$NaCXRtRR5 zs#;ZrZxS&#^vIe6S0}4*$wFziv~-qQi66~W)#AILPATE%tkFG~TRvN|L64!HDEKmx z^D|+2&|zlo$$XN@3AgFKo*lLIwP9I!tW{J^DJ{Lsn>&ALq&^%OT~S+K+0$Ef^> zW{$g9@aE4exBHWz`ycdX;pK;V3@6{> zTmBGt;N-jc>w&5?t$5+>wq`s0bG)`+<%0DtPQH%+g7ORdpkK2WL5xRs{brpXXkJiv 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 literal 25504 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 F{U2`W)gS-> diff --git a/obj/Release/checkkillswitch.o b/obj/Release/checkkillswitch.o index eddff93d45b7f0115ec86aa6f334ec92f6ad12f4..af98f31a1618b6b98ce104295819d28402e53bcb 100644 GIT binary patch delta 1289 zcmZuwOK1~O6ut9H#+c5;Cbe2cqkXiBA{Mjg!cU_$f>s5s6*T^6D_Y}+G@@uFjY(>T zG!lIZ5kwFa6kT)?D5ywEwXG{ZhzmgxH`dQWbfF6|-kVHPEe^~(@0@q;yZ7CBlXX6- zO1r~p1qzR+FfITMrWOTr+;%VecGjBhZCfK>{4zkYpT!V5ue)&Fh_MzV4Y}l1)4Ohg2xmXu8!fDHw3*3EDQY$w`c!GOGEednQ+vtT%G3+Dn6sHJ))QF) zAQfXxsP7+odg0BI@B_AzOwCL+LQEc&nTWfL|H|j{@tl4>i2fu-rh1qMQ#e#g(ZlRG zSE)!!ixx0sR*Fd+F=HnCtN!Qr=k!Edv8d(6I%LX6`#UD>nj{)fu6XH zIsRV3#?puBTvk>1OkeeQ1|5+{^aXeB-m_~s6{-VlB#Q7*2;*32&F8W7KMQ4jprkJ@ z1eEnmNv|nMA0xl>`Bb(JIVG6Tul%ETl>NSZp7)BIYkYWCs#za=lJesjTd)f*hDUbs zx8h78$bX6}c%!sJ@9qqBA8kK$^jOHff8W6X4@#%_C#hy%6K**hUwU5A4e@GfT=Z%7 zbCOqc^vPb$6;*uNS5;an+B6qx!(Pokg04}oCO=+F*WQiqUVPtS`~V{Ow455~6E{UA zv5Rk%?~7@P+m!jr%PDB$4N9%>jGs}ec|dU#X7xDURO*%Q62J-mT&Y#M@Jx$v=HzyZ zL%b~WIhHylgJLg_py)?2YvV^yoPmGhaX!!D!dw@*V6DDry&=5f zH?8ZYt)$w_hwh+{SE#ERI!h8Fsa=!!Y2>AoRe}IXzDr$go9HLMrnZIQ0J=nMMvTx7 z@Sd;&U^@N+qK3IlJWQzLeMb~50N06Q+7E=&02J(@SP3wf&oS4+6wZft!Ym$?uqaz~sXwA2az2Li~f*WA8;9z!pSGu!DFtKtCa_yXipa?J)5V DFMLP8 delta 1046 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 z