From 13879015e04ad98f81734b39276e5f8a05cba52e Mon Sep 17 00:00:00 2001 From: acevest Date: Thu, 28 May 2015 09:39:49 +0800 Subject: [PATCH] ... --- arduino/Sensors/Sensors.ino | 45 +++++++-- arduino/bluetoothinit/bluetoothinit.ino | 17 ++++ learn/doc/mac | 13 +++ learn/test/socket.performance/.c.txt.swp | Bin 0 -> 12288 bytes learn/test/socket.performance/shell.c | 90 ++++++++++++++++++ tools/AceBox/.DS_Store | Bin 6148 -> 6148 bytes .../xcshareddata/AceBox.xccheckout | 8 +- .../UserInterfaceState.xcuserstate | Bin 18767 -> 24186 bytes .../AceBox/AceBox/Base.lproj/Main.storyboard | 37 ++----- 9 files changed, 169 insertions(+), 41 deletions(-) create mode 100644 arduino/bluetoothinit/bluetoothinit.ino create mode 100644 learn/doc/mac create mode 100644 learn/test/socket.performance/.c.txt.swp create mode 100644 learn/test/socket.performance/shell.c diff --git a/arduino/Sensors/Sensors.ino b/arduino/Sensors/Sensors.ino index 10df6a8..7db9b3f 100644 --- a/arduino/Sensors/Sensors.ino +++ b/arduino/Sensors/Sensors.ino @@ -1,12 +1,25 @@ +#include +SoftwareSerial BTSerial(10, 11); // RX | TX + + int cnt = 0; const int ledPin = 12; void setup() { - Serial.begin(9600); + //Serial.begin(9600); + BTSerial.begin(9600); // HC-06 current bound rate (default 9600) pinMode(ledPin, OUTPUT); pinMode(0, INPUT); pinMode(1, INPUT); pinMode(2, INPUT); + pinMode(3, INPUT); +} + +char* itos(int n) +{ + static char buf[16]; + sprintf(buf, "%d", n); + return buf; } void loop() { @@ -18,21 +31,25 @@ void loop() { int hb = analogRead(2); // Human Body + int hv = analogRead(3); // humidity + if(hb < 100) { hb = 0; } digitalWrite(ledPin, hb > 0 ? HIGH : LOW); - - delay(100); - if(cnt % 10 == 0) + + delay(10); + + if(cnt % 100 == 0) { float temperature; - float resistance = (float)(1023-tv)*10000/tv; + float resistance = (float)(1023.0-tv)*10000.0/tv; temperature = 1.00000/(log(resistance/10000)/3975+1/298.15) - 273.15; + /* Serial.print("Light Sensor Value: "); Serial.println(lv); @@ -41,14 +58,28 @@ void loop() { Serial.print("Body: "); Serial.println(hb); - + */ + /* Serial.print(">"); Serial.print(lv); Serial.print(":"); Serial.print(temperature); Serial.print(":"); Serial.print(hb); - Serial.println(" "); + Serial.print(":"); + Serial.print(hv); + Serial.println(" ");*/ + + BTSerial.write(">"); + BTSerial.write(itos(lv)); + BTSerial.write(":"); + BTSerial.write(itos(temperature)); + BTSerial.write(":"); + BTSerial.write(itos(hb)); + BTSerial.write(":"); + BTSerial.write(itos(hv)); + BTSerial.write("\n"); + } } diff --git a/arduino/bluetoothinit/bluetoothinit.ino b/arduino/bluetoothinit/bluetoothinit.ino new file mode 100644 index 0000000..31d492d --- /dev/null +++ b/arduino/bluetoothinit/bluetoothinit.ino @@ -0,0 +1,17 @@ +#include +SoftwareSerial BTSerial(10, 11); // RX | TX +void setup() +{ + Serial.begin(9600); + Serial.println("Enter AT commands:"); + BTSerial.begin(9600); // HC-06 current bound rate (default 9600) +} +void loop() +{ + // Keep reading from HC-06 and send to Arduino Serial Monitor + if (BTSerial.available()) + Serial.write(BTSerial.read()); + // Keep reading from Arduino Serial Monitor and send to HC-06 + if (Serial.available()) + BTSerial.write(Serial.read()); +} diff --git a/learn/doc/mac b/learn/doc/mac new file mode 100644 index 0000000..78854b3 --- /dev/null +++ b/learn/doc/mac @@ -0,0 +1,13 @@ +iterm2 + +curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh + +git clone git://github.com/supermarin/powerline-fonts.git +安装 Monaco fo Powerline.otf + +iterm2 设置字体为以上 + + + +git clone git://github.com/jeremyFreeAgent/oh-my-zsh-powerline-theme +cp oh-my-zsh-powerline-theme/powerline.zsh-them ~/.oh-my-zsh/theme/ diff --git a/learn/test/socket.performance/.c.txt.swp b/learn/test/socket.performance/.c.txt.swp new file mode 100644 index 0000000000000000000000000000000000000000..fb154d884af3e6b885ecbc0130bc31d86a93d04b GIT binary patch literal 12288 zcmeI&u};G<5P;z;J8A_lP+&xj3msq$VqvJ%rR?T%U6RI;;|eBtF(f8wYK6_cK7>$C7BOU1P+#qryyt4} zG3aJ(b!y#fh-KS&HRshd6y_@Pv3AMY +#include +#include +#include +#include +#include +#include + + +#define PORT 6666 + +void do_child(int fd) +{ + printf("new connection: %d\n", fd); + + close(STDIN_FILENO); + dup(fd); + + close(STDOUT_FILENO); + dup(fd); + + close(STDERR_FILENO); + dup(fd); + + + execvp("/bin/bash", 0); +} + +int main() +{ + int sock; + struct sockaddr_in serv; + + sock = socket(AF_INET, SOCK_STREAM, 0); + if(sock == -1) + { + perror("socket failed"); + exit(1); + } + + + int flags; + setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &flags, sizeof(flags)); + + + serv.sin_family = AF_INET; + serv.sin_addr.s_addr = htonl(INADDR_ANY); + serv.sin_port = htons(PORT); + if(bind(sock, (struct sockaddr*)&serv, sizeof(serv)) == -1) + { + perror("bind failed"); + exit(1); + } + + + if(listen(sock, SOMAXCONN) == -1) + { + perror("listen failed"); + exit(1); + } + + + while(1) + { + int nfd; + struct sockaddr_in client; + socklen_t len = sizeof(client); + nfd = accept(sock, (struct sockaddr *)&client, &len); + + pid_t pid = fork(); + + if(pid ==0) + { + do_child(nfd); + exit(0); + } + } + + close(sock); + + return 0; +} diff --git a/tools/AceBox/.DS_Store b/tools/AceBox/.DS_Store index e25c09b5ad691ba00ec39f5c7ff641b0fb364da6..6ff7f1596d4448a3a1d49e1c25fafb8ee1c4e855 100644 GIT binary patch delta 82 zcmV-Y0ImOoFoZCW76Jf=k#QE0E+GK|kx)C6FcbunLjfU^FaZt%v+m0S*E1 ov*7_I29xjs?z0C74+sJPhqK`U_XCp;6fpq+lROL?vs@IY0}QAcApigX delta 116 zcmZoMXfc=|#>B`mu~2NHo+2a5!~pBb0*noeEE5l?Ox(c7v|!J~11bW!`7SOgr6tJ> z3>VWUZD3%4h^3&388JTC%*d$2wwaxSpM!~!V>2V;cjn3bB8D7{3=9kn3=9mLJw)~} F0{}~cA>aT2 diff --git a/tools/AceBox/AceBox.xcodeproj/project.xcworkspace/xcshareddata/AceBox.xccheckout b/tools/AceBox/AceBox.xcodeproj/project.xcworkspace/xcshareddata/AceBox.xccheckout index 97be529..7a2852c 100644 --- a/tools/AceBox/AceBox.xcodeproj/project.xcworkspace/xcshareddata/AceBox.xccheckout +++ b/tools/AceBox/AceBox.xcodeproj/project.xcworkspace/xcshareddata/AceBox.xccheckout @@ -7,21 +7,21 @@ IDESourceControlProjectIdentifier A1372EDB-125D-4A73-9AE8-955FA3D42EAE IDESourceControlProjectName - project + AceBox IDESourceControlProjectOriginsDictionary BA634633803B1A00DDD2BCDEF5C645E5844F56E6 - https://github.com/acevest/acecode.git + https://github.com/acevest/acecode IDESourceControlProjectPath - tools/AceBox/AceBox.xcodeproj/project.xcworkspace + tools/AceBox/AceBox.xcodeproj IDESourceControlProjectRelativeInstallPathDictionary BA634633803B1A00DDD2BCDEF5C645E5844F56E6 ../../../.. IDESourceControlProjectURL - https://github.com/acevest/acecode.git + https://github.com/acevest/acecode IDESourceControlProjectVersion 111 IDESourceControlProjectWCCIdentifier diff --git a/tools/AceBox/AceBox.xcodeproj/project.xcworkspace/xcuserdata/Ace.xcuserdatad/UserInterfaceState.xcuserstate b/tools/AceBox/AceBox.xcodeproj/project.xcworkspace/xcuserdata/Ace.xcuserdatad/UserInterfaceState.xcuserstate index fe879128f2a9d8600de614d95e47d100b789efda..286c512b084157538a616842133886ef4f729910 100644 GIT binary patch literal 24186 zcmc({2V7HE8!&#(okAFwt!xNONy3J(Ap?j6M1#0Z16&~*5=;VaJx8nEYOS@k)+*p` z?X=d`TD99+ZC%~N+Ffgh-L>QYyY~_xYRC6}@Av*`e-h4kp65L0oM)djciOBjcV^~k z0099=Kmi&s>~Z#$iAmkO(`9woCnh*Q6wiv!&hI%{v>D+>Xv*09R~&Ac$xL zEEontKqv?U86Xp6fozZiazP%*2L(V43PBMl2DQKl>Oegh0~)|sFbSB!HDCsq31)#s zU@=$%5Wrw5SO%^I*MXbBDzF;d3T_AM!6vX7Yyn%rcCZ872c856z*FELI0O!Zr@?dJ zD0msX0#1V0z+2!P_yl|k&Vw((kKiZpGx!Dk2L6O3WS|f9g`sdbjDpcH38ul3PzhDA z2o}QabCd!El!bsE+^~4yW zff!4SBc>B(;u^w6bP#r8KCysUNGu{26H5q0+)Ug;tR(ItHV}6cJBXdcF5*FA5Ai7R z9PvEy0`Veogm{TKN}M826K9AwiFb+ji1&%}#FxYc;w$27;v3>y;s@eK;#ZO&8ImPs zq#qeg#*ndO92rk0kcp(6OeJ&3Tr!W$Ckse5SxA({GGucD-l6~YBax1xw+)nNwcapovJ>;Y0 zUh*;WAbEs*i9AZaOdcbTlW&l3l5df3lOL0xke`y@k{8ME$e+kdl#KGD{HXvckm9Hy zDvTOVji4f_SSp1YMWs_2R3@dS3aKKhm@1)kl%A@hOww4Y6dlvnngLN zPRdPnQS+$z)Xmf_)JkdT0`ANt)=dy9;6*lY}!dLrkBu&#`IG9 zdin->6}^_eo8Cy@LvNxt(>v&$^e*~-dJp|5{RI6q{S5sq{W5)wK2EUKL<}ve`1@}=~ZDw28HnyF$vNKu4VsL*e&dR>~8jcb}#!FyN^A@9%i3rUt*84FSEzSC)vAfwo||d_yQU5 z1A!oTLcK{fi=XG3TyIkKOSz_`7MsQ8>IMEF01=4n1sn)M6o$>H&CG=wbovPn=PXyJ zrG?iyTDm%TyW7kqW#&}r3vzWi%B(DPp)yyOU!YWL^jXTh{DNGaE;lnrtt<3k4hM-q zbuWkj!@&p;38FwWhyk%64#a~5L?Z^VXc+QAzDS1rkUt7Qf%gJANCL?q1*C#BFcORc z=|B$Th(kf>9Sj3848|}KLmh^C496i3aY$k2LN!j_GON>JwYy!FEpBVK#m%>xxkw#9 z!_sAQ>szgEhtuS?xOrEV!#RGO(Pic$bbNDHTbtG1Ho$2;3m)mN$xUCMmnaeawJEI#Np%k7T(@ZzGrqn^_88SRgRV}m%(0V zwOa?)V&+1<{?&(fd&Pm5EP2SP&kU%26R9Vsz5cU z0R}W2Y0!AI8NG}?6_}hhvBlBKs|-4Qt<|lPc_u{qkzT2nT6r^<={3+`ck|8}mKI*q zWwo{P&MUAOGy_!iFZG|MnA{HMyk>{R+3Ml)I4~ZldVvWvq7f*%7c_whC>G@+#VIfu z$iNgZ6-)!ug*(}7aq&~?O)4jEv$(C@JOU^RMVh&q8CDx#l#!7!-o-mz8I>)3#vIRW z%&@fZ!d7Is9S)n=r*X^`h6uk59hNrUrJCDf5q89taS~WSGiU*=lcno!w{-9mrH{O8 ze7$M>IAbqp0sO>z(-_hE8A_s6Bqzqqjk}T@&(^#CL&7|~vH>?xZ3i8|4jiBp%mz;2 zLUAY_C7?tkM@cAoJLm%4U=ElI=7ITO0ZKt>XcS6EN|cRqgp(QJ;%$73n{PF^`3^%X zZ+BZ~Sb3*wic35OLaWQnajm@DVzp@Spt`?iM#cFR;TAaMa%yH6irEos` zn*wbXms`ANd~2nXw@h<%^UiK7KS%68DazO7V8v#XD)ISxaKqGkQ(c$a(rn{Ryt@xv z4{ikf_1}l2NEodZ4HFKe=jLObVLyN<%vUGM@TO4*5?>2KW28}`6f0@Sg zBOD~#!?-ozHlW(P87U;x>%bjmE@S|?&e|eKDvNVoA6N(O1pL%`(_oti#$DiUpy~k| zkg5l4L>U4z1Npg~7JF+yGj%SB>K@S71A0*=${MSZ@ZAWu^$Kg7EU{JKjtA;auuG!M z)36)t5v0!j-~sR;u!D!eBPb8$qXHC<)TnS9coggfkAZ#Qaqt8xLdB>Am7@w&DUfr; zuKo3PUu6fqx7d64{)x}h!k-a$*Rzo4!HWXFUO=Ti;0P-FYknOAeVb911maaM5U0Rt zZ|1xX-tcaC8@wk-k9WYkNQ?Bn;C*lwRim-q(&JSJ`ouP5eII~G_)N30JW9rSd`bk$Cpr6=KS#KH`5Pt=PCWFbKG3v+ZwT%J{ zX-9qqmo_7#bdG-qe@v)1RXUxPdA;Cwz>6aw04sVRMD@bO_60IXL3%S9BhG*<95#L6 zo{1CtAS+BYbKwgXWGdn_7b)TwWEEx?D&n)U^K%w0>OVeE1_Q6;0Stn{s1}VwjlxwH zkcA1z!;#5@e1wSH%!Lj@SF1A>@#@^XLD(@c9;kX@EQ~`qe`~t#WnRtZqSon>mG-K_LxoaPr+& zN0+P7;%wvl+q8m}eD&d`e!b&aqS4VJ+J`QWdE!loS;9CJxaVY)!%Cp)ffeYQ9;iVU zVJShnrbd%MZj+UtBkC~ebW}mQ7goa>)QsBE7!QD2SPz1Gp%K=h7S!4c$G`@}qZz1e zny#sFP$!x>PS?~ZK&-R0*{$v_!9q$HWRMra!D;dez5)n8(w(^zPUsbMiU;{5IMoaJ zG&mhu(M;6VAg@?-NStWqg0Eb?w4hdSsR#0?0~t@lc4&n&feg-qHrN5}lO)Y7_ako`H|^^2x38m{QWR97ouxwynM2U;AQYy zFI57sgR6jQJG>s=0B?jh!JFYNa3z|H=Arp$0a}O_p~c(bYIrML18;+C;q7o8T7qsy z>(CwOPP86v5{_ZI7uo%GyVNF{&<*Vt7w_tC{~zDKemb<4PD``ZW_4Q!2~qw7*(ToY zw%XeU2)~*%`0ris&2T$VZG%0q7xuv|a4Xz~5W;9FT86Gg%eTQDa3|aa?}hil-Dm~6 z4qcCKKsTbBhVcIiUhAx`7MsJxx7J%acvmeyFI$yq=7#5GR_0b^7vyABR%K`9NExVoczJA?7!~H{p+r*E4xx={lzgbwFm}wgW!(W^7EuizIUh*1RsY_cpuaQ@G0+x z!|-YEhUeh(QbUuZVm)X6CHS%+Igg@Sdf+j%^6w<)2|;q6gs0Fdw02N(z6ReEgxBlv z4YV5F+6&);Z=*Hnw*R)|^w4__e(Z&A8vGPl(e0>BUU5_BUyDl5^e^EBZ@zp3zm*y! zK7TI=(;v`XLxt(j@E7J%ZT0 zs-WzjMGPZ+ycS0I5ure}o$x0Dh(LlPf{0)u1ofakv=wbfJJG#p_jV$T2qz+l;lv0c zl88bNpuOmE^dx!)J&%rf89qe3XrT0(xv^IoDF4n}uCh8^qADKr#8j?1))_;sXChfd zv*oG|^S?u5;#(Z{RzX4k9iCAlo^58%@SiTHva?gi+xRw%o4;}y86x-{W^T%r;61wM z-}?Rkif_3h!d+%=;{P>5$^VeFulV`OOU5>-I8h0qXMLPzM)gXkgjFnVMQQBBkUIoyr*phpoW>676NPHTt7InP5x zqsOi?b4izVHCbKOW*e_T{=Zr(Z0VsGQ8)mU5kN}J8#a&_@8GnahXB#+Yco+Stg zrT)!r{u2f1om;5($Zx_#OuQ=TlZeS8>5rj(66qp{(b|sjB8a@q%mEMCd9)2A98TCfo@`5NdVS!0J~KYp=?|+lh4|h!@a{gCNqm z&zbxKHf|02C5$7K6I>yxF5aZEx{iVFVt}} zXS(u2{i{oxAw=a>Hqm!ATDt5l?WPtd&)ZdVt<4@Kw3j#lRNIKhh<(K4#1q7R;z{%> zI)P52Q|L50vkhD%4ibkzGVvtw45~%1p|{aH=nQ&SP;DbT2fvQ*Xy%=RzLU$$#Thg; z^O~L3R+HP=)#C1Q^4LO=NgKITtkzTqpor|h48qOce$+g zw#qKI!)BT1=yH$mY;#&#`39$>qtjjG7zoUpxgd!ytHa*lbaY!=d8e5RH)ymLd$+~q zO@@aHFB7i-RWEUjIF4RNZ}bwc5+~4`=q+KD5eCheF1O8UzhVWU293_qGVAIPUn5@k zR_<>RZ%YjmTBRHf=P{6ov&6^3LHd9=M|?$+<>LI>EA0y*rYkj8DmZRi5 zH6FhGMEvZ%%1gu_0waGTen+37FM5eTNr1k@5PF?#k`_<)=l>N|G31QbS*&)IYe;Tl zAoW1{iWtxTUzjO>heuRNq(2!7RNKe^GLYoRATpQ?K^M?h=xg*1`W9W>1}>7}Aejsy zN05=I7JY}_K^M{Y=!bv0O8?u7A~$FTvpauzdH>=%d5(7f@gS4PWUu2vrjbgZ+Cq*b zN0I5I0{w`7LO-KlwvZ|^gUlqe(68tc`VB+yKRD{s7UUOZsqz%@%A8!abk@ltaH)?h zCQHat^gH?k{fUf|a|?N8W3w`+HD|KgIa*oUqI7lhlM6e$m6f^5v2#5)fz*;Z@1<6g z^^#x}#VTnO1*<4lF(lBLZR8k9u97CQ5kpcEtQgW5GQx@YH~S!7P;w%;)I(0fkV3}E zvl`l!>IP+fWw&PwrjgUV>9UZb>2SHQA=}7y(n`+6ki~EqhCUbuAjN=SFmr(ma?~|nj&+cbktF9ZNgZl~4W)*p2809Zk;2EjYY>&WZL8^{~Uo5-8VTga8< zDhxv~48<@E!*C2EFdUBI2n-`JjM_=wO0E%7?&R&{I`R(kPI3)~(HO=EsdfxwF^t17 z9>WBoscn*5jFXylwUezbz0KMtn2TmETx!_qOKfhlmJ#)I;^&NW-e?ffI3GjZ@7~-EkLn$ zwma;+%i7Upv$!2jwJOKQ%$2ovyIVy{m6!DwRb}R@bF&Kyl-b&2Pm+G+DzZE~a4-1)Q1y}bk-N$JF_dGNgkf?Y`5^fa zoP%KshFZxl&NS%s-t_|gwFOp(-PF|~*z3{`oA@@N5W{8WhF>vdOs6p1C8+nyp*33F zHYu|~?t}DJ@^SJBazFVbc>u#y43!vWVVH|y;XqV`JVZV#P=1(vntTSsGz>>#II53) zj(lFAJRL)YM0v^;xV#8$a9SNst9zcAOaJ?U8cWM86W?iZ3Oi%wM*jWi{^M@3b@B3w zVUo6P0rANMi1)Dm74p>87I2z8L%xQg3d0NxGm%0r#kBz#8$Vu*v3cgdL!Q0b{13=; z0t2!!%n=wMuizx?Ar!-65wq@VDU5bqXvr@6iQ!JM&^Wi(*!|` zOzo%2Bos4gG66>--;*h+**P9^d$UKKOi9hl_ezrY<_V4JLNgaUghzrIV70gP7LB@U zyO|5DH`VgfS)^T%S}+bw0nNYxW&;=K0!zRO zuoA2XcY}MtX3!^AgYEmHcoCccZ-5WLN8l6i8I(Z|M!_VQ4pp!Kmcc4$66-l9 zLo;lHGob@6giGMHa6P;mJ_MhE&%>hS)2Ic*~`+wju4Ao+`g8Z5MW!gY~Q)h8o z`pBQjUjg4#Zxa6UT#(-=QZVoilYfwZlFv|(B1Ab+gkdp;qcAMNuyh+mQ8dL+EJaf^ zhGiI*V_1QqM*L7NsP@Fazv+$hI{AMbq_YU}J@xM)34=`Td4lfwhmk@^L>xIFTR3=< z3I;MNgbEezf{=?6!VxznI14BYD@DFh;Z%ggBEFXj7g9Nac^O$5S$XjmcYJ1MQD!bT zQ?ya2C`k8!07MQ*TPlu91gc&to=U*53d5RSN=_wVI2yw-UcLe~Qn1`Hto|=n2o1^O zQYs0&;i{g2Ct~z(BY&5dBK02}DvQbm!M#*Am4jg|hQ?khkIKie4#RrXHhzw^)!p9I z&Rg5s-SUbXq~j^CSRthmJuphCipyYBQW^{!FdQpH(l4JT@x2<-yNKVY1Zp%@OBty; zs-7A{HBe*GXBgICXu@zjh7&NHgyCcir(!rA!)t_18t|N`CW%3f|C>l9HAO<#^goNl zQrAcrC;nHw(Z35^4)7HIDxgFghO${KJi~Cx|Ep-v0CLJMt#{i0qfk2KlHi;F^9;3D zEzKa|b0xr*|9YhkwSZa%RNJYA)FNszwS+MWgBnXAsNQfe~Q8l^f%qt;bcYPC5zxn@o=6o7<&5W#r6 zb#@m&7@!m4bNvQ0e|3_~+=zi?G&&r%W{cC{>W_{~mbiqY(bBB(>Kd_NL3XAPYA#fZ zH9^@z*-k-r;UdY!rfvt9dZ@)1^2q3sZ0o5lK(&jyi`qclO>Ly^p*B&QsUE7A>cg-D zLpz2J3_CHLjiD1m7lv*OyD;qDMQtV5fMjY1wUgRK-Ak^ac2oCb!B&kCN~d4P@I6fE zFfj(h7)*@Agb67G?@`L!3*~!ejx*@=rgq1idP}#pO)|v8D_ufqv&B<}>@te+Ml+`z z%3`lQ8t)cz@$&?b1LY(V>;bqEIC1h6KB^eebndF7u0zSS73M@hS&E|7eF%g zHHJ3`+}tKSJs9bQRV>>#S-P$EHu2*?5vx_mK81OY?XSnWyuF%tbntGcREj|TAY8g1 zF}!i`()~h1LFD~PU7~)Yey9GR{-gnhH(_`)hPPn262ny(uEy}z?KDA?G(`(PEb$wL zYcRYG!?hT05&z$cK0}JB!XXq)Wx;rzB2g&PZsvwdUV#t-@!lsh7bM+|W}8^BEI3JK zZiL6?x=LS^r%ylE&D(_sY=a_gil=Yx)#B(73XE<16}9X+L#o$R6AhjK9vwnQ zg5dukdfRq}meWZ6t!AtZ-e$5giumkTnQG*WSv{ z9W%o-cW?@ZJs7UTun)uA(K}`?L##v*3iiDir4vD_288-R1Xr{NX%)D%h0dTe=`1=M z!#gm%3&V{VZbHUWbRL}#WOM;YrVA$z;vFwigyEgSVO?+L!Y>Q5$EOK_@sXlGK$p;^ zW-eM#EutqVmV}GGqX?wIVs-Y?WrCmZw_`k{RM3@lA%+_;yjw&aco}Mr^o*<$h{o_9 zkw#BQuzx|dQr~8;KC$A?O49ULFcp1{VK0*E{OCq{{M8H2dg&&C@T=9LNo$`-Pcn09 zm+!|QBfJlPFFjcR_pitQCFB3|ryJ6Vm<}%W&}Iy`BcoTjZGLW{B0j$`YoOegZlT+O zY75;;^Yje54a1!n?!xe14DZ`QTj`k~nYLlL8^ebMPVYgAiAH{gSUxgooZ#6A%51VE zS4FkJg$eq=Q|&n*-}^-;?V{%j*xYm%-A&KI@O}&*!0E8y%_EvaFyxX={rGiFTIYw1H;EK+}BI5r|-h>aSWgM7bRN*+aRx4 z`I+cjdg$n(w_FByE4>ZFCow#L+6FgGUa`8}Yu>%|eO^&|`T_bOVfhbYc&LYd7{kNj z`mbKhOYap{`53(q!>2KPZg7?R>8CEE<{*6t!)Gvj7PUSGY5EoVRr&;w(I>%F`ZRsU%moWUE9r;|hC;pg zm@1-;w_CgVt0o1LnxE^IdWLsObtRIz8`6d0DFiS)g5hhg(XZ2Q02%!z{TBT;m`b0d z-=jGCed4`|E$voYtCP1kby}Rf-94p60B!G&{=|DKe*a2-OmR4^9)m}~bqd2X7``-A z7kxmVlXMY=Cow$gQ618?|5Q)}pV6PwU(n|O;z7`}qxtAmQ*D@kr1`+K?Xk+R;h z+SBSKmpzS_B)}*BNg#W%j-kL*`aR-3FqL=@!_&f&&j>Qx7swbNL4=*g@JRmy2gaWX zkRo0KYS7En_TJ%MCQy*XLV)bw3>Sqx6T}1yDY}22(#wPh(ErWQ{%gsEF%cf|zzoOm zjehaKL_xZjiDqIjd=tZW1}+X0&&a(m0F%TdWB3+^Z;R#VGo*l$2mB~TdByMyarnDJ z90?5{db^k$rUMB(}dxd82%(>5P!k&SAhq@`(pi&mu4C)06|{;8h(bu*{?sW z_BLs_U^$tzb%Jr-<&t!Z)!wGJ3#zYGiZw`YXgwz6H~qVN!Jj)4@1_ zY71khtC&t^Hiq9~cn^jbG5l@|V`toqo#_@EzZd`g5h)rbHaH!vT`g|clp(c^9&ihp zB|z27*qO!R_#cFicJbr40<*dPC$(04TfE?#49r{3TrbR9EDZhu!*9Ljd4S)-tQuVU zY7BoyZJw^%n6;Af^Rkw53NjV(`8l}*))I3kbJrk<4H#Y;1aS|ud5~8<82%;%yu}g{ zW(%`T(4;tOp%tOq>%p=Sm=22!Z^B9JI zVgg_SVuHW~i3ti5^mZU8*9iZ?Y2YGrQ1I(xr2ml>)nY=dJV+AGgLvr%j-_Dm2>Q)p zwewEb7`u>+79vPj8CGNEox*pC%#(!PRYnX*SqY919lOdX@eLB+k1KM>m<}P>;pUxo z$+M7-{N(^V2A;SK;hE&+cTdtBN5p4l9_GKyoEF%4j5*G{!o13yU`{fpFfj}hKA7;u zgbWjYnDEC$z;@;gNM>FaLL}rG=50&_qIWQnfW+`f3?}5l2^8|V1F~s=lY*ccNIv!_ z)}-|Hz}PxLp!KJ1gm}?F#{iIVe5cLQ!e0qT5HSP81yoWlDQ0N%02HBLvc!de&A>E6 zo895$wH6m|<^;Jo&@nL4!(ESK>k>WvT7KRs=3^jZK4Cs(K4U%~$hvx^TQR|5A|4aL zCxMJP&wR;Tm{f04xkM)s6G4qtt?VlfeC=H!2u1|P?_ zb=fRViR_W=C{N~_9Vxt9wSZ<;!79z%h=H|SekuA`6`LWf=C6lbHLHD6ILmAn^BE=* zF%jQ?T-iKK1U2-ZI<|l<1i?M58WTx9Y!N1s|3*WyWo)^Z*TiaA15j;awXBZSvsFwz zTZ4&IOr&9ABql})Mg@_+jUCO_f@C0P>wz2-3QQ=`JBY(Xj`TGkLP?CtZE2Y$6winy zvJShbo`t$qA$Z!{)z;{=*j<9NAYN1Pdq6bR1D9EJTkQQVxd^V^F-MTh;iTnkh6=0{Vl^pIVLJZhE-xhBeZD+#tB=bcRC%;%k4Td z7i7@swGNxj(&^$`MWaV*^RQ5|X$AXF3}9&HN!me-!}Kdm=~xI+l*_;gLtRo*NHQ<4 zL?1j9eYMlk)#xVREcqGsd7$cLpJkuJL<1(q_6n9TjVSf1r2B?e!Wl ze#kekc$|lSTlnzT#nI*~!nRkb7h+#!PmC9Dvsf}T0wjWTkOzuDIdz`;mimKc=pcGH z9Ye>_33LjbMyJzCT1U^K=hCa_Tj|^A+vz*#_4EdMBfW|4q5J5q^po^c^db6bAv{DM zrH|7m=+pFT^c(bB^tVg^lg8vRMrH|fEAtTZGV_V>^;N8l9nMCw(QGUm&nB`-Y!;it z<_R*MEoMvEa&{)WmOak?G;Gwc)?u@Ubq||6Z2qt%!|)aKF54s z@j2mh%IA#F>ppM#eCPA0Z?JE?Z;r3t*W^3Zcbc!+x81kPccJf6-025@kuU6q#C9DbvZSWHqwUGLvkgtVPx-n=Nz7 z+%ha%DO)XDBU>w5C%aR2mu$Oir|e$YZrKB}hh&e)9+kZ)J16_WkMs-j%knGoEA}h( z8|_!;H^y(AU!z}>U%TIIKc}DDZ;{_(Kje3d-%7t#ez*GFdcqHJ_fTscu1{@A}BjDqJF9N;{_$uJLfFA;W3iu_E2^<#a8|W7} zHgJ02HG$26t$~jO9tu1Xcr@@>;46VA0^bUJC-A+%vw`OVKjH$pGOmML$MtdBxEDRtJ{`mj_n{ zR|VGuj}A5ln}R0?JA%7|mjrJL-WL3P@H@eu2Y(TKKKMfLuOU7mvJn4}z>uJjkdUyD zh>(&?6h0>$h2IjsCVXx9y6_F*8^bq+_k`~XKN$XU__6Tg;jf0j8~$GS z`{5sie-VBm{Oj;aPuVo3y!SQc?-#MX#y5!)kn zM(mAvF5-oVBN0a6l zWM`x^(jD0yc_#8)anQDqxMG~h&mW`IO?USQ&DH5K94#dbs_5OsBfcwjruL>k7y80L{riJ z(Gk%}(aPwI=&b0R=)CB%=!$4fv@W_Tx+c0M`o`!xqYp(Ni9Q+qe)MP2UqpWy{Z;fg z(Z57rivB(N&lng(#`wjA#U#e0$0%bmVzOd#VoGAlVk%-ZF}j$lm@zREWB3?*OlOQU z#vRigvm^$`EQ?tlb6w00F>7Kr#O#Qxx?%w=C}3xD|1?#jTCIJ?@UUO>sSO_s2aJ_jug?xC3zq<6ew=DemRC<8iOX zos4@o?(=vuepGx;d_}w=-WXpW-w;0~zCGR=KQrDIKQDf9Jc?f$e_i|y@i)h>jNcHy zF@95gPXb8rPY6s1N(f14Pv}Zmns9BxiiGPEZcMm2VP(RGgpCQC5_%H)61FC6PuQ98 zT*3#5afvyJlMYk#sug zwWN=d&L{nxEK3eZ4oVJ9j!2G7j!BMBmM5nq7bce^mnT;yYm=*z4avsjG0EeS8OrRxU|N!rZjU}bDATq zJ8fRt!n7r6E7ERAyE$!D+O27KrS+ukN_#jxAw4NwnO>Z(NjIc7rMINdNVlfj(jDo} z^se-!>C4lvProUBW%{k@Ytz@I?@vFg@Kxk0N)_db8byO*l47cYSJ)J@70VRM6)P3D zDsEHUuIN>4SL{;kRy?eDRIyL-gyIFo5yer(apeeQiZV?(N~u&XRjyL5RozXa{9VPUqEs=ec$Hk0q8h1Es4`U9 zsyvliRivs`8C12Zdeu(VUe!L;6RHClQ5k6&qcRj385t`xHe_tf*p$(eaeu~x84qVX znkma1o*9`Lof(%oD|2q<{LF=!OERC$Jdt@S^GxO&S&3O0S!G$3S-Pz1tkGF@Sq)jH ztmZ5}t37L0R!3H6mMg0(YfjdRtX)~>vm>)hvL|M{vR7r_nY|(Vp6t!pyR)CpelGjP z?4#MovrlB7&VD`nt?YNR&u0IS{d4xE?B8=h4w=K`_~iKI1m*b^EnzuIZj=X#Fdh+`6w&m@}JDvAsK9%pE&*g{Yhvg^cXXWSS7vvY^m*!XGYxAq} z$LCMXpOQa4-;&>&-HkU(i;tuwYfeJp~UH94mOW;8ekD1#cF-t@c-ktK-y(>ST4AI$f<) z7pe8?T6Mj;L2Xjo)LrVe>hgUuis*kFVtIw*>slQfVRDZAjN&QEmtT3RED-0=& zEKDsNS*R#f6&4iM6^<)xFPvR?cVSQA%Y`2o#TBI$r5CA+GK;E<8jGeCT~pLjG^5B` zf(*Xn~Qskw-)ax-c|fa@xJ2y#ZMI@Rt$!omaZBba5#zy|#2?>9*3{rH_}sQ~Fuy7o`_UzbXB$Y*?ABETAl? zEVL}VEUqlAEWJ!smQ|KpmS3hVt17E0t1W9Sn_cEEn^QKw?7FfW%Wf`PRd#pTrm~*0 zEoJwX?JIkt>_FMUvNy`!E_=7^Y}vW8^JQO^eOvZj*>B}3<>}?)%cqxLTYf|N1LaSa zA1psy{%rXRdt`0hNiB zn#wViQ!CAt&6Rv*d*!T3d*y=4#g({nS>^J|>nm@nyrptW<*CYxns80Bra+_9RBJ|S z>NE|Sahg`mY>itpM>AiuNV7zJWw6AI3)V`yAU;Baf zEA8((pd)pR&PV5`3)BVc5_EE1if*J%p;PHHbve2`-BjIT-4@-8x{vif`e=Q!K1H9V z&(rJl)%wx;I(>uQq;Jws(zokp={xkDdZ*s4pQE3zU#Q=qKdk?zimghms;HV>wYciK zsEasrsqv*Q(#EK{Z?LTkT)XRR>o`Rx7J> zs}0rTtDCDktLIiPs9s!+s+U!-sJ^9obM@}(N2~W$@2`Hg`sL~q)#s`&RR2;VtMRW1 ztO>3Ot%<2As41(NSTn0;Va>9dn`>^Xxw~dlO>fQCnxi$RYu>IoTl2YrHuxFR45fxD zgTY`lj5ka)Oft+cSPeFV!{9Wy4J!<{8P*zZH{4;^VtB}~$MBfp3Bv)yA;U9wEbyT11B+D)~+wOecV)jm;sp!QJhGqumx z9;tn~_IT}y+EcY(83|*!G1*vZ9Bb?_E;X(<_8R+)TaEV{A22>-e8RZjc)<9)@de`% z<4NNw;~C>QT2sI z)=jIsrmm%~y>3>Wy{@xvaou%wYwOn6-Ceh-ZcE+vx?Oem)g7#RvF=RWTXpZ&ovr)0 o?z6h{br@_otiQj0kCag+28L)=X36L&a-{+{5&`(jEGu^ za^@=I5&Ud!GpnaF=m~m(VlWbn0;9ngFcyphZuU?o@$ zD!>}B32X)1z)r9W90o_gQSd1^4o-n{;3D`8d=74aAHa{`HuwcR0>6S6;3WhQLIi!G zACy2jRKRekgeuqo#zLJ3>R}vAgjQ&SnXn;j1RKL9usO_u1+XjZ27AFmSOkk%X zz>#ni91X|7v2Yw552wOua5`KF7s17_8m@sg@I$x-ZiR>85qK1S3Xj2BcpRRFXW&_Q z4qk%az#H&e_#ONn{s3>nd+=xY3-sKF58!X`Df}D0KoS&$6et`iQ6$o!BxFL#$ck*p zjvArHs0r$XI-@SAE9!>2qaLUy>V*nXZ{$LKP!TFdZd8hfqG6~EjYaRF$>@DF1x-cM z&~!8(EkFy=B20K_#u9Tf5pGy$M|>rg!mIN2_S()LV}2t1QP{`AZn683?z{l zNg7EfcG8eEA+1O*DIlFlSJI0Vl0L*u29i?ZA(SxkE}7&ZEy;Ui7MV@vkhx?5Sx6R< zP2?l8nQS3j$u_c`d`xzbo#Yd;j~paN$T4!7TqIwTugLf02Xc@6OnxE1lRwCxBsA-9NI#;xL3b02b>xR1Ea+!k&hx1T$}9pnyi zwcK&;EO&|fio3@Bz}@8TaQC_2xWBmP+}|QjBog_Ef<#J@TBH*th>}DWQHsbaN*85{ znuxLsVuy_29}owj_h0qmGHdvzqEI0l^pp@Ak;c&mB?j z>NCil?=G(b3`_z=1$p`T?($1swnPTG(*p$5JpaG>WHs9jAn>%2SxPIk`A&nhc(jj04DKvCUpP7A=Dp^XHrh4ViT zF07`F>m)9L%e`KM<`t|0mjuy5seIfxvoYE{!5BTx;z)5Aqb(_E)(I2pcXI9PIGBj+Km5{h8}ZAUxN#;**(ASeT}N+^ZFv_0)m2}58g z&8Hn{0slnWE=h>ixiF$q2&#ICNErQ=ga*dY&a?|H;70`OBH}@91x%pbY366p2$P@* zh+#4`gNHDM-w~{_^rSs#OWH@9wdYq=OP`Bh*K19Mc3`T6X)vAkqJ@>v0W)ZC>Y@g| zt;{H-D9nOQd5`F7gc|t$F)mY~G-#YH#b!!1MkiS<7E|hkI_tMUZ8iK6-iCMJUAllSq>Jccn#oU$ zwL0KK_~>nukKrEzPQTM-74T2G;%%IsdvRJ`D9!iA*~8>WULD0{z?Vqm#R?j=L}mkx244!4`EeuYv;@yPOG_sEhWcT(L#Mv)`E zugh(<78j>kY-vSlX~jiFu2h?)kK0^qH5Xg#>DIKq#V&V&t88$Zty4)mL0#9nKk3Gl zdiVRH0l-v+`l0@)gdU&=>7gn#5DoH&8T2sy)>{ad=?Aq$!@-3$s2q(zBhe@{njWDi z=~;S_UU^;7(KzH0G>u0S&_sHaeoBv3A&MA!m)6qb^n}nV^gN4;;z!1ndHx5)8EE#u zWapr{XdXR9Pt!Bhplt%`KJB9mnvN(LR9x@>Vzm5Uk}J?kw2Gdi=jjDOQd%e3AtU;= z)h6Dmh}NL>{}SGSHlh#dC3=~DMh)7=59@@BK(r2l=u2oT5Tk8q`}Pg-qtHP5xwpZi z9cX9I*9|_~Rqm=nJJ2pr)G04t_^;mAPtYM?szKw?UbGKQLqv%s~1RbH*=ym!vy+NjH8yUgUNqPV=DiK#VS+i=FfGP30wn-9i~`^z2r{ zFX=aR&Rj;H)!B7dqRYaJA?;XN>>3m8DvwUfu-T&9k? zRDr&xKUAO_^wwJy0o@cT0-`thbH-eC9e}sdPe4|Q?x4H$M|!&w-9taqJM=Cs;MXRp zJ#|)o0~a>HbubtH4%@;uARnxSdEhQsM?JKJE~EXZn<}Z54x}w;>T6Fhz`nq=7DJ3M z#sqU%gnj7G^cQ-cKA;cjBl_!F?1%la7)US{vWosjAJg9{ruV%WW$2Z|kFh-WD7*uf z%_2-#DXD2@W3EaN90oCi+&^fy#qYd5TjBP!GlPT{Xq!yi?M(pzAdf!~;{x2}e|WnIydr^@hQH<& zSbJeNFxB8f+#9=aA6$fs8T4h)k3oM1#S8{87+8b*;(oY4F2RL(AcGPH6BtZku)UYH zPyj5tOHpaD+mw^d?`k6DtDCIJ#^rdNpm_uyiAUklcnluPU=V{+27?)tF&M&NXbm0@ zw0I)WVu~4qVN}YXM)=Y)7)uTO2U$w~aaIgpot4MSo5p+abUYKtD)0;j+<4F4!jtz5PDPwUW%9D z<*VUDKzj0n?^?AwRi(CRpNDcDT7fAswxHEIyP$H zpEXrQ;VpQ(z_Ju?^U|aL#iGNX;JyFsWgmkvw4mPegZNNg!{d|NgnR0#pW@no1dcPP z`$ymuKJ(93&oZbN>O$QfFW^f;pk+{31-{H++&?Q<@E3y6RR-fLy#5O(`R{mbSEuJ| zd`n38Z}1KLE&dLFkAJ{788k4M$e@wIBnC|kCNpSWi*ivezJqe{Qm`Lr>24vjEW($H zI)z(0KQTKVs(F?zSGOv0m$}M{`j4qgt>$msLWdVhH3AR6KRXY`dVl3*OZs>#7XHI~ zd#c~!QvwCop5ednbNn}cfnO59pp`)zgQ*OrF__Mvok7Q1f(RyrV1iLD@ntZB!L|(M zdcWHWE(%wo@y-7TATl5(AtaQ95jj7xg~AA(47Opg;Uyp@;Y3MPUGwry!@c7MgP9#$ z6f|q&E$*ZNiR2Hr2x&wbkSOn)LETL9%2yIiVu7rRXh;mvGT4a0#tb&8B08ccaSUcL z*n+`Uw1Ahj)X7K^F_C0qCKi%Hti(oA`J9$!4{Xk0GpUHdrVM6x${#bl+&#EZDlIA< zQeIX%sH1yyd9%_%rDd0igP4GrWDqB@bk57~+`pvU-P8=En8D_CzBVF_JLlzlxhqK{ zQ1lteB29sqGy~m8bJBve?3S0`(bXrvymaXB?s@rHgG%}h8O;CDQWXeWN>QDT9MYO^ z)Jo-3McRuuh)H|Wf#j2p{PL&+#$sv*Nj85vH>@fb3a!43@OGuV;A z0&kV-R6|CSF+c~jVPrheGT52HE_8-arh0k9`MaFCabz-?2254teKLhiWw0xQ-5Bg% zMW&-%GLyj`LTvS<27YPlabhwLc)STob$oQ2xcdAii%BIgttU(H7_y8kCo9NGvWl!G z6%6+FI^trm4}(Pv7BlE(urGuC)&ni6CTmCy$|dWF@ZUzkul@{{FgQRkI*`FZ0%@?2 z+~GoVDl023Yf&<&+%1gC&4;-7pW1xvA-i6^LiqzR+4IKl{jXk01p1*j=tsT3>mjct zC+fQyImuw@t8PZlfD2XREICKcGdPsNG6u_Ew={Bzd|uzC`U)=$SWB+bXABM#`qU`% zn|+F0Bj42XdRgPixAY~0!v)rrv2U^7B)8vWC3nbO21hVBk{0kE=4u;|`{WTYRgwqf zA%mkC98)P2ETK$M1OH2IQ`m;T7?~+tIeU|*92Sn`8TpGmCx4R{JR8u%jH z-cT-_Qvp*2r)2Q`3NC`dDb&EHq$aoI)SO0Gh-PqV1sB8MG-~K5j1#X==k%Nb$f~$F zE}lzZa5{rC7@S$fB?29n#NY>lwe_@sUzh6Y!&yOX1!rS$*6TrvOXnH`(^}5XIk*hY z$z^g4xke1mW^fLJa~Yh+AkW}@1{bX5ns8ZMQ?41l3bMEs3@&7F5raz@T+3iQl{2`G z8u)=}M+@6?U4ZQWeMRTG{&PiVaPb>=^a5{P=UlI^=AUzJt}hUC{kZ;I2{(Wn$PMBK z^W)R=1FINZ#$XMDOBt->uch0Y4+XVV+%T?;8_wWz23Ik-nr2?+MslNo7+>YaaAUjW z6uXC%m-H=hmlfm;DRz%$FrL8`46gJR8*V%|fnQ=*bCujgP{c2>Yu@n+!wjI~#!{Dn z>g6ywzSA4yw+B7bA?O6e=XHX^4xrWm?H@<07d*TN1~@w{-~1jqW*8ZUvtxi zn*f8=b+9fM4u1uM8))W#J!o33_SX-ZTm@GHOx0W^SH)FxYZ&~H!A%T)#Ng&?ZY{SC z9pN@GxP`$T^g4sPsG&<+o@HbvZRK_fV%xaw+{fGw2DdV}jlt~nA zsMDKf_cA=P!`x9Jx{olpvjXVo459Nn8+cA|r|L@ycbdW7uSyAb4qT|@&T|(S{Di^1 zud4`mnY;34x^tD>7hb3L2&G}xoi|GZcb&WO7H<{zop*Qp1l|w22)yq4_aE*S_v2f= zg1gJzd+piJ3?8ia?1A9fL+%lShZsEik7tj$Ki{(UgnP>1VFr)T0{(PnM9UW<_~yC@ zi7zp@oMA4wON~96Rh_nozV(>JBXZ|O(UT4y){P?e&5t-_8X5iWX|D<_qBO*KKCQ`t& zpc_2P;6-7xmnf)nu_36f5Ct-L{MGZnC`;6|P#VX(8fydcN{iiX+{Q+QDhdGL*|kBWFc8hmXhUUC0R`>Nj2F^_LGC;FgZ$&k>lhf zIZe)z^W-AAOn%~gI1OjwnscMM>D&hH7}Qi>u(ks^c0DDs#@ zW>JdBCQ1|8MMa_yM8`!BeGEQ5eFpdp_9^u#^C|Zk=`+b^hR-6OB|gi1R`}fUdF1ol zm-7|-N_~~Sdf!yvbYF+B)3>2-W8W;_X1*PKJNkC=?c&?bw})>p-`>7`e8>Av^ z-glqxIp6EPw|sx}z2p1H_k|zlC-w{V_$mC9ei42tejWS@{d)Vk{EGYr`Mv8m&2OP! zm0ykDI=_v6oBTHW9riorch>K`-$lR6e%JlJ^ZVKFsoyidzx@98_xBI-5B3l75BFF3 zH}H@0PxMdnPxiO?kMy79KiPkZ|1|&0{@?oF_P^_Y&;J+y$Nqo#KkBo#S_Jo#52XS#dF2Hc)56mc$Ijac$fHq_^SA(_@4L|@dNQA@e}bg@pJKu z01)685D*{pplv|cfbIc30}2DG1GWb23D_5KAmC8I zk$}?yX9La$TnxAz@OdBzOb+Z7I3;j?;37}plECGGD+5;tejK@Iui70P;JnOpi@CtgT4&97WB0=L7FDD zOEaXI(mB!<(pAz5X_fRzFc<6->=!H!?h#xPTozm&JTiE6@Yvu4Yn%Z##AS-Q+2bIKaZT6kowWUXawWqGo8vaYf|vQpV-*;v_l*+dzY zO_R-#eIT1Hn=9jG%Vle1+hluX`(+1Zhh;})XJqGO7i5=YpUJMsZpiM)ewRIwJ(K+{ zdl>>lBq7oeSx9I|Nyx~MNg6pXK-Ef61TA|CYa01SrB33WZV;p@>xI74Zs# z!l*DQ%nFC1h2kAW2SrCkCxuHfL{X|3swh)<6z?kDQ%q4zQ_N5-QLI*MQg{w2jwn7= z)GAIWPASeP&M7V^E-7v)ZY%C8?kRpzJWxDR{HFL_@u%WxI1ZPD$Aw$NTZb2hmxs>` zUlYDHd|UYa@WTNBb92UUKy`6D2+;!(xn`)T%cU3T(8`y+@##B+^XEJ z+@U<8JgGdbJgYpfyrTTVqx?#FUHOg5N0q8_sRpQqsYa_Nt7fWZsphEWsg|ggsaB{~ zsVY<(R3ECgsSc`YRVP%ZRA*F|RiCS_s=icRQ{7bER^3Out%TuM_s7q0wMSUH0GwN>C^QaeUAGNPCT3xBGR@bOMRBu=BQy){GQ~#j8rM|7ctG=iHMg2hi zNd24oclDp@r_mx$bXc?^S{WS?9T}~T)uRjOfhhM$t{8n?|>f9ud7W z`j*B=qt!IhbkVpp#hSjF{+bb*>6)3ES(-VTd7Al}g_^~hrJCiMm749E9hzO5J(~TR zLz<(STFnW~Y0Wv!15U?Xd7#@wAtDg+IO@)v?ba>+EQ(q zc7%4ccAR#qc7}GAcCL25c9C|ecDeST_C_p<)x@U87R2_6EsZUU9T7V^c3kYlSQa}g zc5W;myU-K6ICfd=%GlMhyJD~D{B;RByRNmav#y)2r>?iINaxm#(!HmfqMNS!KsQG> zPq#!@quZ?8s{2^COSeaNR9CAzsXL=Pue+$bq`RiOt$VC{s(Y?`sV90Ly}v#{uhtv& z7QIcMuFupr);HB>>pSa<_5Jh%^n>+7^<{dGM^E)kKS{q#zfQkV|B-&H{$u@4{ZW0b z{-pkl{=EL8{u}*w`XBT^>hJ3B>7VHT(!Ypo< zT$i|RaXsP+<6LpYaed?Z#|?;^6SpnySlr!sQM@6(eSEk0?(se22gHwwA0O|De>Z-z zCw^-DjQCmcE8Juo=<~jSN|aY(q;!j-kDw*f7vQ4Koc(3~LRW z4ciPm47&__4EqhA8m<~{8h$oBFg!9mHhBI{&!&SH`c6-x_}~{%E{w{Mq=__}ut12`1qrktfMF z$v;V#)HtbYQhCz+q>7|NIsZ+IQdla>EyG?SCX$Lf0_Ja^4;Wn$@h~V zCI6QE+>Fg4v!6M@EHOuzqs=kqSaX6o(QGoC%?@)5a~pH6`5kjdb0>3Gb9ZyGd6;>m zd9-<~*<*g!JlQoSdV3bg<2+A z-nUG%%(Tq5R9dPnYc1<78!ekGTP)ixJ1w7B_FB$aZd-m&2}n_-B&D=VDNZR(8K2@w zc{gQp%G8wUDce#GrW{E*mU1HHbjsP3ODQ)}eoVQW@^i|Als{6Qru>!i!V0WLYqqtA z)otx>9cUeF9c!ItooStIooDqdur9VPv#zvmvTm_%x9+rlV%=vwU_ER-YQ12+ZvE3H zw#C_++uGYE+Gf}m+m_mv+g93E+bV6)XdbzsZCRxr;bXcsZ&y?r+$z+Cv{%xs?-gsTT-{D?o9o}lX@ieyVM`k zxHMT>Xqr4tnWj%mNJ~sJrKP4dN^6srm)1TlKW$yw*0kekXVSh;yO%Cck4SHko}1n+ zy+?YlbXWR-^ug&v)63Flq%TgdNUu&`o4z4^Q~J*IPty0LA4or(el-0|`jzzW(x2Kz z_8_~=9%c`>N7!TSdV9RxVD}j9CVN|ZiG8MhjeVPahkdtwuYJG$p#8G_Tl)|8TlPEl zd-h-Kf7t)Bzi>bYc1Rsz4uwPMh;nEgu@1c>*^%kUax`-^ceHloI@&opIJ!IfJ4ze_ z9D^KV9OE4m9nA5b<9)|$$9%^k$5O{~$9l&{jxCODj$MvDj{P3TLB~nQCC3fNO~;Rp zJC0u*4;{Zbe$Vj9kY;Ey(lXj*49pmkF*IX%#>kA>8H+PkWo*nim+@7`^^6-C-)G#) zc$V?E6F9L`IR`k0JE?P$ z^L^)3XN9xc*{sI7-nr5Fv2&Mmk8_{%nDc@2ab{FzTxM=&hs@EL(=%shF7VzB0YY_u NMQ!W;)_*b={U7i{Ez1A^ diff --git a/tools/AceBox/AceBox/Base.lproj/Main.storyboard b/tools/AceBox/AceBox/Base.lproj/Main.storyboard index 64f32e1..8f5b4fa 100644 --- a/tools/AceBox/AceBox/Base.lproj/Main.storyboard +++ b/tools/AceBox/AceBox/Base.lproj/Main.storyboard @@ -1,7 +1,7 @@ - + - + @@ -20,18 +20,15 @@ - + - - - @@ -63,13 +60,13 @@ - + @@ -91,7 +88,7 @@ - + @@ -100,32 +97,12 @@ - - - - - - - - - - - - - - - - - - - - -- 2.55.0