From b2523cb5f332789192ee01d087ee266a61d6a851 Mon Sep 17 00:00:00 2001 From: jeanmichelbouchard <45927571+jeanmichelbouchard@users.noreply.github.com> Date: Tue, 29 Jan 2019 21:23:36 -0500 Subject: [PATCH 1/6] Added my config file to sync with Raspberry Pi --- config.py | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 config.py diff --git a/config.py b/config.py new file mode 100644 index 0000000..8da39a8 --- /dev/null +++ b/config.py @@ -0,0 +1,74 @@ +""" Override config values from config_base using this file """ +from config_base import * + + +""" Configure the plugin set """ + +# -- Enable camera, replays and video motiondetector +#plugins.update(set(['replay', 'camera', 'motiondetector'])) + +# -- Modify this to tune your camera settings - see raspivid --help for more info +#camera_extra_params = "--ev 7" +#draw_bg_with_dispmanx = False + +blank_console = False + +# -- Enable league sync with server +#plugins.add('league_sync') + +# -- Enable Youtube video upload +#plugins.add('upload') + +# -- Enable hipchat bot +#plugins.add('hipbot') + +# -- Enable Arduino serial input and led output +#plugins.add('io_serial') + +# -- Enable auto-TV standby +#plugins.add('standby') + +# -- Enable IO using Raspberry Pi. Change pin numbers according to your setup. +# -- PWM output for the IR led is BCM18 (hardware PWM pin) +plugins.add('io_raspberry') +io_raspberry_pins = { + "irbarrier_team_black": 8, # Physical pin 8 + "irbarrier_team_yellow": 26, # Physical pin 26 + "yellow_plus" : 10, # Physical pin 10 + "yellow_minus": 16, # Physical pin 16 + "black_plus": 3, # Physical pin 3 + "black_minus": 22, # Physical pin 22 + "ok_button": 24, # Physical pin 24 +} + +# -- Modify clock format: see strftime +#clock_format = "%-I:%M %p" # 12 hour format + +""" Configure team names and colors """ +team_names = {"yellow": "bleus", "black": "rouges"} +team_colors = {"yellow": (0.1, 0.1, 0.4), "black": (0.7, 0, 0)} + +# game modes: tuples of (winning score, timeout in minutes) +game_modes = [(None, None), (5, None), (7, None), (10, None), (3, 120)] + +# Winner strings +winner_strings = ["Victoire des {}!","Des kings les {}!","Les {} déchirent!","Trop forts les {}!","Faites place aux {}!","You rock !!!"] + +""" Configure paths """ + +# -- replay path +replay_path = "./replay" + +# -- or the location of the file_handler +#log["handlers"]["file_handler"]["filename"] = "" + + +""" Override tokens for plugins """ + +#hipchat_token = 'your_token' +#hipchat_room = 'your_room_id' + +league_url = 'http://localhost:4567/api' +league_apikey = 'API_KEY_HERE' + +#slack_webhook = 'https://hooks.slack.com/services/BLAW/BLAW' From 348ddcc836bc5fa95c4016f286e9d05910771c21 Mon Sep 17 00:00:00 2001 From: jeanmichelbouchard <45927571+jeanmichelbouchard@users.noreply.github.com> Date: Tue, 29 Jan 2019 21:24:24 -0500 Subject: [PATCH 2/6] Support for configurable random winner strings. --- config_base.py | 3 +++ foos/ui/ui.py | 23 ++++++++++++++--------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/config_base.py b/config_base.py index cb8c651..13bbda8 100644 --- a/config_base.py +++ b/config_base.py @@ -24,6 +24,9 @@ # game modes: tuples of (winning score, timeout in minutes) game_modes = [(None, None), (3, None), (5, None), (3, 120)] +# Winner strings +winner_strings = ["{} wins!","You rock, {}!"] + replay_path = '/dev/shm/replay' replay_fps = 25 ignore_recent_chunks = 1 diff --git a/foos/ui/ui.py b/foos/ui/ui.py index 5a0566e..1e4cabc 100755 --- a/foos/ui/ui.py +++ b/foos/ui/ui.py @@ -180,23 +180,28 @@ def __init__(self, shader, teams=["yellow", "black"]): duration = 5 drop_duration = 0.2 self.shapes = {} - for team in teams: - s = FixedOutlineString(font, "{} wins!".format(utils.teamName(team).capitalize()), outline_size=2, font_size=180, shader=shader) - s = Move(Disappear(s.sprite, duration=duration), duration=drop_duration) - self.shapes[team] = s + for i, team in enumerate(teams): + self.shapes[team] = [] + for j, winnerString in enumerate(config.winner_strings): + s = FixedOutlineString(font, winnerString.format(utils.teamName(team).capitalize()), outline_size=2, font_size=180, shader=shader) + s = Move(Disappear(s.sprite, duration=duration), duration=drop_duration) + self.shapes[team].append(s) def draw(self): for team, s in self.shapes.items(): - s.draw() + for shape in s: + shape.draw() def show_winner(self, team): for t, s in self.shapes.items(): if team == t: - s.position(0, 650, 40) - s.moveTo((0, 330, 40), (1, 1, 1)) - s.show() + shape = random.choice(s) + shape.position(0, 650, 40) + shape.moveTo((0, 330, 40), (1, 1, 1)) + shape.show() else: - s.hide() + for shape in s: + shape.hide() class Gui(): From 75ce77b0ae6c3885c13be77d54825d48d7e676d1 Mon Sep 17 00:00:00 2001 From: jeanmichelbouchard <45927571+jeanmichelbouchard@users.noreply.github.com> Date: Tue, 29 Jan 2019 21:55:55 -0500 Subject: [PATCH 3/6] Added schematics for RPi only setup --- doc/HWSetup.md | 3 ++- doc/foos_RPi_only.fzz | Bin 0 -> 10129 bytes doc/foos_RPi_only_schema.png | Bin 0 -> 116945 bytes 3 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 doc/foos_RPi_only.fzz create mode 100644 doc/foos_RPi_only_schema.png diff --git a/doc/HWSetup.md b/doc/HWSetup.md index cd82369..dfb298a 100644 --- a/doc/HWSetup.md +++ b/doc/HWSetup.md @@ -88,9 +88,10 @@ You can also run the whole setup without an Arduino and use the RaspberryPI to g You only have to connect everything directly to the RaspberryPi GPIO and enable the io_raspberry plugin (see config.py.sample for config options). Verify the pin numbers in the config, and you're good to go! -For now you'll need to run with sudo to give access to the GPIO pins. Thanks to Adam Bartha for this! +![schematic](foos_RPi_only_schema.png) + ## BOM * [Raspberry Pi2](https://www.raspberrypi.org/products/raspberry-pi-2-model-b/) diff --git a/doc/foos_RPi_only.fzz b/doc/foos_RPi_only.fzz new file mode 100644 index 0000000000000000000000000000000000000000..ce3156f6c1010e7d4617b16a058702216f16b42f GIT binary patch literal 10129 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 O_o?)Kr>6K%>;C~=bZJlk literal 0 HcmV?d00001 diff --git a/doc/foos_RPi_only_schema.png b/doc/foos_RPi_only_schema.png new file mode 100644 index 0000000000000000000000000000000000000000..babb249f72d31ff14d81fa47e1090dd30e92aae1 GIT binary patch literal 116945 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%0DIzr(C!wi3F z(8s8*7cCvdL^`}IAsNL;=H^;eJ5B^qFp?p2*JQ(l?~URyZ6DB&`&I3xFu!!DlQ+K9`ED)Y~RdP#*m!>j{`P- zxw`WCF^HtTnvPk{Fu+naaiPy;eg8z49|gv2(KjuyY59d_W?r1GG(OqR2{;iC!+Ic}RWzos&o2H{5`lXmJFDTDo*d#9foA>Vg-m)2F4mEz6ST7VK@ zkS$4GI^%Ul-2nWMK?4SuXtVPm$$AbL&>UIc&Qb}e(B7S$DvQUM9{*gKYJcyNNm6NW z&(Zsr&sB-bYWE?i)4&P-Eq^8sIi|c&&H3cIc?+}iqgu5!sx0*SJg*>6i$+kU5lAgY zwj1F&1al)LGPI&^WVDN8&6!`69kEO_aIlFbh#A+ipAtvc2fXv5Q-uIb_gz|bm;G!q z*8v4)a&nR>NT{Hoz*P~1_=hJu1Wx~J@@S|hz}cgCb|=Srw=5e^qFbTd?2IpOmpN?&s^YhpfhO+-*)514U0K+**)oV zqJckX1!cAyOh5z+lw=}HfgI#%E&xz~m(Cj>{1<^%R;VH$;Ak|nw6r8fMr|oCnKv*4 zRvMvA7-m)oHz`EA!8cMT>uC!~M)rQ9B!Z}VdKXTa`Ot|QwVvxp6{e$sZ=j$P+--nP*`l>Vxy z>Pe4y0(|k;ufv`$enHC@k9?e^e+_|Q^v2ke2ZhYVWes^~G6+-CNP`WQV~tLp801j0 zNOlSlE-%2B{`KT2U;c!54Jr9wZ=e-t1K zEl6lG@5+m@;^FAs_A@WR3%|`J>IJW*Zv*O_Z0j1O+T@@1|47*hM;d^6pm*dW-~~ zmlcELAl52~(z2{9bmZIcNBDXrp{ZiF1)SJO;|YHc5k@X#M8v9>*>8Sj8LufTE>2T{ zexE?=05^l}4lXUT0($GtyYS)K@@H3kEv~NJ23w2#aF(^l-_!*BIa}lJWM`iwa`!2K zMiCmO{^s+XS0CU{gj5|nb@~>#t#^+e;`+nftDOaSOk>Ve?8PpOwLnVs;sn#eKE56} zpKLE0d3STdRHH-!qS;U2; zYHYHNT!GiveQ@Omlrn0;6u@F(h28WW*zDz*b!R)qr22yHi0np<`h5r#a{33HXX}p0k7PC2sP*AF+W!PQ|B{N(L| zXB9PE`e#*v6yOPR(~djTV8~tnJ|3);|EK=3bs(i)Is~Zi?+Q zI&Q$R(_*K~{GGzKE>4w)d1J*OBK^8yoHv+`QPzL45l;q^WC{}NDg}AL*t&|dDyilO zW>|a^iw|_0y=M-qVUfY1{S1w_7O(c7-m>ok|CZh%Kr?&kX){oB$nY7Pp{X-u#O_J0 zTu#o9+@mu;Z+uC)D1+ITOs{^NSysYy*)tk=2bkKWSs|SWg(8UnbtJqciIIBjGVECY zc^W3j*KZkY0>1VTPfP9|>G|~e^MdJGboy-ByUURmFcDZ2C#roY@U~Mo%=28uRt_0R z*i^ceu^zog3|2yc1)GeYbCRIp@9T8kiFSdeVh7iTN0#yKz*9JeWE#)+oSXpV{+t z%j@>bd>`IlHBeKn^A-|)4G(Qv-tUfnUqv{ADgT?bk2p#_~xU@F&V#zg&q$-LO?2?{FiY z^30$`t$#T~ZLhBH zhiqYFWLron!iySP9N#8=Cv)2_9j5&I(mRhzKN{1r#YIGW#n96&J9TPy3%~hf09|Hv zQ~?ku83rx*yDq1Jl}mKvN;O>TJ7!i^=_WJvN7LMPHSpX7b8rl!a zkr_CYx67;Sa>XkW?l@1DD?vA3x%08_A3oSW@pY@+uST2yt#8nURTDamMz`oPZW^)# z^j%jL?Akbf*{}{FmT@y^F$KAV+`D?R2y-L_?3Dwb6r^CI1>wsAR{jaIj{G4tkHYD( z4uJ5Xj}KXtzc{-(Ff#!p|cDD~Th zxD|~iCG1RO1eS~-tDsn^o2n&KD^n{@PaJ#BzSBMw-y*AIQX!*5>IZsWJ51X|ghsv; zISAV6;5GBOkta@_l1(HypA@l*cYmo+tqdWF$3ARPeN63Vf-74mWls9{iZ)zxHbBkY z{YOnjpKD^mUxeY#TkkakQu1i9WBRf z(0kN3zK$+y(t$)oFU#2`KhFpbbpLDeWU;w|RhhxTg)GDiz)BSSV|l&4D0e`_d*+)X z>i`hHv}PX9+h;@3s|XrJzOz{Q_SLayA!pSe=}#*G1lqN;V)FqDa7*3^4(#jLmKFwe zse3u7G!`n1yc(M>29TtFL5unp2`mZb_Bw7B>w1tMPW4T7XA!KgZ%^z&&=cN0(3)$1 z==;Q?-nKEt_2G5`H+~s1ShfHH_7$Us%gN0(TK1Eclzog%#gUlF2mhu;>Ar61-@Uq- zMXtC_>*SyBbAi4G!#!80%6DDLzJ2Gi$ZA!Y?7a-T%T?{s;6Te3vd2QUj_@Mckdb)j z&V@v^JbXu>)K8FGYEe59QlG|d9*I-&d7g&x!*=c4?`5Q@fB&Y?TL7T)`bOkGHa=V} zuIb}t0sWRQwP;wpp&qZ)DQGWu&X{;$B~wCU9a_V(&|xqQqe_fm79t0D3Ltzk&y+a< zeEnHPm<(je&{00dkx7?3kCYd>$L(x*ePHBT3TP?`F}sD$pz|w- zYGsn574@bnF2lAz86~vCFpnGJ*UlbSm}@9`6~_I{?@m)EnbxBia53dIgFJ6(p5>Cz z4wv36T5&`}O|d_;KslxcI8@IQzo2-}BSzfJbAYU~|dvCRQcqRPF2HY9zvh zu2^5DoC`;OB68(mvyo8o+guMk-~j00O#15Tm)X~s7chLc;~}%g6{`8}r9rD|j%7MM zo(AwZ!PRi9t^(c!-}F|o2eu6|qmhBvy z3u|0wD3j3B291m}4Hl(>q?2K*Uf^PU2Okv~Tf)TJ|I;wSocDpTx(k*z9UR{#v@*2f z#_-?*`%_D^ZQdN*;bAf_^vUwhSWv`1vO`P)!(5zg6WZ5T^SpO_8i8aZ?Q1!cRX-?& zgTIce6jRs?t_X{LbaH<79~`41JS>gX7ug z;k%;0IW=0;`E=DclcFGoAc5sPY~}%Y>^Dx~S%XT?o;aQ6+*hw0F_QIVy>jvkL%)W# zr@p+tm478)91Pi`poEh*YLxOea+Yum1Zb(;KA&=27y8}Au{YuUZ+7jDmFaY0O(xD5 zAN|iwFD~)^4#RUQ9qzOk2wxA4bATGIU$@?DU2C^8J7NJi9`lkt&rMe-tWGR{v$OtmudSAJ7mp2b8`|(~{PG10 zZo>t(*V-Cm(Z~mOa682g3tb<^IF$YXr&or?=%l`xPbfks5Z(hFHU4I8Ls7-Ka1f7_ z*ARJB{$YvhtKwrXG+F5FlCIKO&ws_~3VWx7HZyBC`aPg~^Py#BKIeUX?x(I_o{eAl zU|}Ow7hv7lX1-(Twy+qGZ5Pbh3^6xJFQMM7ThI7r?d!@0>AD zv0RACEL#9s;sjtMgGzYv{7@eIxqA7vqJA%A>JG$Ex>x zd(Tg9dCuFhHz}85>2v;HXs!Yb2L&D_dh*3@e{3Q{1$a+W!v_biyxKw;S|6MwZ)F_c zo=-P?gtvxw;?U{go=@34b^d3U>yqv_DqY95>A1F&jroDbioKS%Ntu@NC@^C949nTGC+`XCM8T@R z+w;^Z6Eoi}TuwCLu}3`5S^8FfKgasI));Ct${@<~-R$YjfQ+Y)MCKA^vAS_}kgAi- zs6ewUTqx#Z+Cu9zdw0Raht*4p9=@|0{aovSQ?H87s@ip@xIR@haIb$}U8n!bm5MX_ z>ID^M#2QCjKmO}_U;}kiv%sY~3E8GW`5B3(Q->XEIZzS#El_xx*U){3K=J$rJ*64#w}^L$mG@_zMot>_sHIm=FglW2Se$w2aMNVnazjVdCB(-<)}E#`d3i zSK;=38()3+VK?n1zX~eSE;x7`d#3S>Nu?-93-j<#R|cK;cs=!KYcJKFvQKY$VuHtw zB@3>;l)Z(`F79=^ZXwE+w*^DIB!#m&^P`MkdEN1v^>8#dC* z*{0-G10RQu7hT`|yc6`MEsCQt#sVuKXD0ksxvC!1S zz{HBK;ToZ?%jx9>*XcR>JuwiCWsg36l7AR#z`@eK6*I!3JZZ$e7Yz(mRDf*3*7_T$ zPF~e4?ypK0C#_fhO72(GAB=3~r`+58%!AF-0~Q@EbKd6{{6Vp7=z^SxtYvn=cHL@K z-rssUc>Qi=yxnI&vT=#lWxqNBL9&ek#o}>u+|< zL}!bGVxRG_9vhLPAiVO_@h%0<6L&lEkkZMDtlvW?GSvpKW*le~7IjeO@yYu@09_65L8D9b^t`o7>u-6{38{QZs{%@>EB$0akt z>hP6>E>4kQ%}T8ncU+VE&n-Wc9^Ksa>-p{LyXwG0r;<%SvVO+-=UCQjQGLW|uF;oo zm!rDniGZ?aPv7KSJ?Av<>x3$N|96f%M`BsnD6^Z8M2{{`SHZe15d>vlmV3_b6Y+ z|D=0<+vxgvVS(Z2c4WHqq8;*4%xp%+Tc&7zQW&PjOFZcW0s-4>y`sQsb=V0mD z9TITTA=6i+XE0BHD?6p}^Pnw3TW_EW>pr+!t)YincA2Ta-Oh2FY%x~sH(P=eh3Xy# z?BNWv);(;{d7~_TZKb5NJ1$NOFq0PNZBdc!;J5ZhMr~pKgtP3|ub*%tK-vDY{F;*` z?mT?h9Dg5r*n@yk)Y(~WjOBeeMWtG5dtbUVdvmI0*%uzHa+kd!xyYui-jt+%avsiKHuCtlSy0Q8IdrZjCe+5r0bv`+*7i#odjMyhbC#EcFJs8v+ zJjAL(Z|&84!D)wff139EZlf8wjw6PQ)Yo5iH0zF2iRlU4FKO@p$qdR`cksl$E)w!* za77s5x2820*eSW*^0!6Z@<=t^*^9ydF>lS&O*bpGmtZ~$3?nO|c}guicHDPkbDCQ^ zynrlt49DUYr7zCRvbpkXP`s^4k|m zTT!I~UY{kW^3`EyekGN?E$NmAjoJY6i$L_=wIZ)YUtEyiFwfZ?$XL%qEsZ<2ux#0* zbG0}KVn-%OJDxp#Dt_tX#}_wgVgx1s zXzZDC)}8lneU3(3)o%0XH95NyzUNK)p_BWby5}OFPkZuvW98WahR!3h=6;#AS{GX3 z-u}pbeMkAk(2>g^HZGiXnKKJIV*?D#?wL1%lUO0||GEtapB|HUvjE%$#dGQ_FEZR zktPd(D?X0dFB^+7s+QnGPYy;U5K$>7TD3ZCwvbPjn96I2`>at*$7jXeE{4AtiWZg_ z5!@{A*QHFu9rEODKB?N{@~Twd4{PjY}c z64wKxv~7FX&YzzU79a!dBhbmz7#@1zAkS&kcG2+_Fd&Vf%uFL!I82|lpl<#83$3l! zWhS`!e98zcke`-gm7zZ8@~t1`@>00Cja_v$7V(o!o}4(ms7w+vzb!JvXAQc=vNZZ; z^{>tM7q1Pt-{up(#xz{^Z*4P6r*~`l`!${Fi@7ckRQunD2OF2nyJPq>h8QeaJj};uPw`{AJ}IcWw*ZfEUrJlR-I%NR}?8$ zH=y~9Ld@rGk9LN!*PS`jkKUNMjt+%<#>NL+Ud;aQ%$yQ2C9rJcWEC}W0jZa#G}LpN z%$8Ayg8eJDY!$uozc)WJ0XEhFJ>>qvJ)JkX05z%&vc^bzr`jl;+(^F!m*1Zx_u>i6 zj={F;-=Zo5t5@qorMmpTZ>sVc-GEh!d*8(GvJ)2DKt<(Nt@;lC??5#308s(NielhI zfkP9a{PzI9LWg00{eH>G%_tpYley>-34s?W8L7i+IrKXu_}2FqopH)txehdz%%dPS&6cS3T%S0^&2_THT9M>QUiuA7K}* z>dK=~Wo@r(;^Ij~$%M`w8hH}-BWFxT4i8CKF=8lA1A!)?GoaOgmlt9(#MI3oPzMFJ z6-^<~$(UmQ@0v&zt}f3UqSo~_gL(*gK_Z&bH_#0j#%*bHsJ$7Ci$ubgGJIi^M)l^ zDNxHXKrdgPPUb0|3%t8tefsFOn@;&q+pS0X4~;{&%(gm-u3z>PYdMXBs2!3`=QL&N z)bRX@hhvJqur-u8eRSc$4WzgdstmeK5j$6xr#dO)!jp8ci)=!&E;%W7w_6aXCw^x; z*e$52i@k&9P#eAD!X`3Zh~aD7=fXWm+mrC>*Ne5O2E+{23hFV#Xgg~JugH!0n?XtTtzH<}1uW2MwY13<~rZWcf zZ-)!f6P0Wgf^Lw$kL$A=6M6-)e?;fS%v0K>xkJG#l^GPLvru5lVvlSpr|uT)or}-b zgB*&)EFBI`E7iTZ3Jv;aH($MN_ptt%rMZ#G&R=8B9yHOM(c^GJFQW&GhsumHLmgqd zcD0EIp1?&a&w27<)F%Q~%3OvOAnyb|T7YHTFU2-q^6BA+`1FdN8*w^Wdbof(Da(CYOkqo za`G>`gR2LVFIc)*xSe7z1s+2)$0109mYQOAR{^BjCdp)7sXw@ zI$Z7`A7%?=aMstS4H!AVNEGH@eP~v9V0Y>>(;gZW!uJ4khYj>|ca=IiKR{w(TUsWcn$!kA<Ab;p)9YF899&twhYiI{I&xBJ z&+OEsqz31bH6GYHGoU7;apIeKA(#<%sVa#Q|1{d{wjXkw5Nn<>E?V6#;I-d4Vp;7s zoM+xdgCMV-PDLwiZ1A8cQFr`Q?zXWRD?5k;kI38ODn1QG&bQ`cR;cY)n>24{10#d< z*OOZH9V7kZNtcEkIYBI#Av}6_QJCucLh$QmI3$6s;9xPV^FYnb9h%h5Gnr+<|7Ur3wWJLJT(| zAGoRMCkIeipDi~)&@`TDoJih$@bJw6ostF|82R<|;`@x#w>y=8f9A*bMPZHe;gs>p z9blyXJ;!a}6~vMv)dEI0_O8IEq5)E&YW3LqAorrDal-3?JxH&X!a-@GK)R+JIPls- z5@iwqjrLUYw^{^k6Z@xTR_*XHDJeLKKXdme36X7X^7Kx{Xo+2^@dgYiekx zG$KOjy}@+k!u#r1+Q)iFj*qK0Ua|P+4;+x0FzmE#@TETL>JL<(IUwp6QVjTO0%2m` z$gu)}eR|r;$*Fo_zkaNxb(_~o(<$l(2z=Uls!G}F4i&!QH2SdS;m@Wa5Z+h8qcYz+6CHjdtSEZc!ZXw`IX84gy6{1U!DuuLvS zZqs+zmMZ?^Jlv1->r>CNWwjtVD1jed&;G1flcH0`E-lKs_%%BYWoR&_409bY+B@MzUuy9WYN8h1>g46a{stPdqQYEaKvjJ433A* zyL|Pk`uf4pfBj^9aomqLb!abj=^CcmA0W`mX3i4)6fCY5QMGvDoCFuTJK=c3$f-g` z$Ch>0s{FE3=LT*<(3ic34KtegXow8P%GpDEE1SZx)C~REd6RLanhc4et#EKCxtB1m zs8roFf?bE>FyEmaI`+{@e9IAJg)ObXc$Y;`$y zOvX@AAMeyT(gtH-73N}Dhp~)4`_RZTKm4zboTfroH0pC+yY(`owG%CNlrFz}!p8b) zMv8KX*_iX+jSp5sDuAcyz-G#B4q=(FKOoh8cCEnF>40!Q)W>rpxQInsHuLgw-)RR$nU5$ zsJmbp4Und-nD*0=+s%YgIeb5))SfVzML?A*wnog({(Yj9O%<*Us;{{mk&`=Zd)=H( z$sX?8+M2hBKDOyd=~=)MNbY^m>@A^Fu!8`#S_H&`cD`fs)X|PGmr51SoX&{UbX?0?mJJ91~`JGX7Mhxg7^SN_VNmU-6Tl6D%w7O~gQwEX?#1@BQW`E~Nx zjXjYLrHkK(m@Qdxu=4dg^&jsm&+qA+LxDuzJc3joA_-K)ZE$=H5`u)Ax2gUXpC5Sx zvq%u*ZKx%%kC0_VRAZ4RlH-5}oYgdHy*rIEMsz{6CX8etB-h=mG+p|IlGJa9Y&>tw zME)avozAQGB-hiGAb_{+ZdOZh9XX(=hvBm zqo?L9Hd=e^82a{R+n8Var%^Y<129kj7s&aM=(D*@wIY*Z{%JRD-djTF*LUv*B-^eI zzI2JLJ?h_|&jTNG^T=|Of;;#XOp>Z$iqZh{jhW*Re98h2RM3wXj`l8K6U#KBoadMg z1L&TuA?}o}5nJ1t`o7|wf(dVaB-bTs$&)u$u z2j=vx%eUZ{orp$ctq>EztbLGDF8_6$Q$P=mCJ2-i`V?1wDbG-gj*7}xtxDyBqZ|BY zT#;w8uJ&Z(58tBZ1!`a>KZWsnpt>c<+IpHA8EdcVLYr07=C|r<+k-tGEhurk5m`gK zZ=+6IL(9@(QlhOpB%4HUg)^Hz1_XWQFD^lqMvFcKq2j!;Xd>${^1c>*xtIf9z4}eD z;`n0YB}BNyq@+^LuF~>Q)2nLK_pV{F_&BOo@O@kfUP{k!n(^d?@o#V(JH* z{-#E!8N|+Dkbv4_Zrs)?MZZ~reM*j=22Pgkr6$wuCjRpv(;+tVbg!d#qju{|KdbLI zqmxWNfke=A@;-u-w^Ao8^JwsxV&i1W$Mm~OH@pcXeTaC^Zc8f z=vEkqQ8&=v9xw#Lw*HZ$G3TFD54+naOUvX#VMO|M7k8&WPcvCPkA0}@jF8P^%#N^T zDpdb0gnv3_mKdwaRx?V;&@XGoU{MVu#w_;X%ab88*_T_V@Kd-mdm#;+I-_u z!~j*rodo>fNB3SP1g!OWcc#54v)^H;+l_dA)ubcTgn0 zj;mgm@awG6I;@6d*HbO)ppzLZMjSnM?4qUG;l{dqXZ$|5ecOnfji$Jquq*Q`l%)#H zA$kCVAWAPM(YKcxb>Z5^US!SK zHD^;M4qviq(`fNe$jnrPexw563EWw^*6TI<=tK~}=?z&H$5^Mp>=O$))wJnb7x43C z8Tp!}&#}b?iI|7Wxk0a-kzgaSF0TJQk#_{qnhsQbL^dO-Q#q9WhQ5tEjkZ5WlLYRlXV9N0xZ9&;~(7(M%dO#knsq&-~b zHOTpA1_p6IuAbkZY;{Mt4rqC|BeJbJ*Liwm? z<0;%;e1#jU+#%vAh-cBIhMkp^W-p)ea0^}j5Qz?waybh=O;lz;|Cmbrd#cU}M zwEn5pf%ZcaPprM_zw0d^3c&h#N+|KTlNI8ik0LqbH>Qmb)ZLPJe9K* zQy#p72qE4I7pf4qb_1!#e10GFF_RsWcpoQ*E@>`02CbeJ!coOCqI6R02Fzw5H8=EG#Ag1RqIL5GM zJOjM|uyw%Dci})GQ+fe^#QBY_m9IeMGXB#8P7*dN1g#F-B>e{Ia4J6cQN-s7qiVEz|1hN z`qvo5k_!+ZDHZZGYM+BjP%1=Dh!MfibsvqyOv>L-HnfZKjnT|~=nA<;O}y4}7b~G; z$Nu{9t_G6k!e3;rRh~7UNoC3pvXp=a5@z`!IoV=vL2Xi!f8n4~VE<-Knuv)X)A-^T zA!Q12g$`ekZ5sjRH7AwP#g$Ps9%b$$4zwW`TR*Fy6xQonkkFj zVuC3UM4p_iy#&Jrl#+hX>RIM5PgrJZ0K;Dh42Qo`O1e2W^EAmxNE#V@llkq$L(65M z1t8t-yNkq0M0D-c$+ZUA=j$u5&~yyZelG9}v*4}8OO2_h_D~RiV+5mX51@F6+sBHT zgIIUKy!Xa`fGPb?nBBe}^+86!s7#;+E`UElnLT21qI+62A}WCoA#%a8w_v0%e(M~= zcb`A6>iB^`BM?3j8^A$r=$63vbzV~UzRLd1@5}Hk{u>e(vIGhq$c}b*+YY=D)l#lJ!~84KmB3t-VWU z$SeHAfsHTYMACC~zdp_8wfi?U?SvDv9&GE&%qJZdMSmywyJ-E)&bd8RK}RMbOcFQW z>NE!sGFvuj&N#hvu*tjNIm;iQv8px zUms0UN^W7icBpLzNv424;kWYG08Hx$lh*J)9PYz(-p2KaF=uPRPTJR+jS~P9S{)Uqvcpr6q zY8(C`mVEX}mM2ozyG1UduR6{>8YHkx#8QLYaphAUk`hqKnlDm~=rQ1I&{_;}$6Flv zJp2BGXV_rgM0rZKU$b^?_Z~g!Cad(?s?PX*3grQd?ph!no?Iada42B+6$*8@jh09C zU@4OeCB(3IA3rYdxCCzp`Jp&u9VUJ3vhhtV3WoUx9yhjDZIW0qanhvyZ=cdHh))M~ z#IgJ}2#ip6?aN&_p}dJvEMIrBbH7_WVySAj#TY+p^6G4haX+?ISHx9^`@c|6!5g!d ztNGn=aq4k1C!j}`ejUX!Ubj=hKWgo(n59pg5f8oOL)`$GM9D^9CWE>F<2jbqKiffC zLYQCjz1hdgq-2;jSSj%`aeTw1WZhcacsVDVMLGu!gsQ1 zqW4fs#*M|?K)?*HtO)x!&TZIVgNNN+W_R{iq0^Qjv>rWtl9TMCE2EYyUaWLooe_?6 z$rY%YN4cpz>NhVA*|=E2TRq3Q1n~ajli;bVS6@zBg~p%zN)_pR;IP*8@di^&`d0s; z0?Qk4qkX$3H^W#usr5j8c!7H?Q%Ru65WiI#jB0LlmwYglpi*Q)CUf+366(Hj*KtN$93Q7@uD2RZ8j1&%btAHx1QSO6I zo1-h$47zkVdunUdfa6*(CmDG78UFf1l^WLOS~8S>tRkt8^`t3B*&*x61h*?WBaMed z2@^8ru4k(M#}#Kx95x&aU;X|4?6t3!l1B6RNHl5VAh~N%b4U?m9Q0&(r=+Z`K$lv_Jj(`=Wit*CSXRi>ag6T`;`ik+uahTJc%1&0aW}(S9%c+RVdA**k`K@9 z*RBm$&T&fWv_YY*Mw#{2Q)kbrESUMY8CK zgy%W?X;^Obz&f@aZC6py%T1c2S+dBP%w>KS_ zK+K!c{I~r%czw4cr65f?dS^yu}R>FWz?U0oRl9&M$ zUssEbZ|gD8HIc-%|GA9&67Zl-1jG{RO**Vvb?S>X3JCQ>`56g6Q@7ldiEB_eCh^A+ zHkU_yNS!-(P`jWz!l4$ zp-$wEC)~b0VPFTvL$m)&tnU!~$lOMIwoehxhU^a7!0HU%s(aLtwbX=JTUIgnere^U z;=s?wpB9cwKsfyO@Sa~*MS_gfuAyYn2MU7?#!PJ?*^WOs=6@xFltE79E=nyg?GCm! zv^zP4g)95VQ1+y9ZE4xh!8yXBv)E-SaeJ@Hyao*$HM&ioMmd!2t%+QVE@mjilE5ai zYMY0?3IdS5f#k}(>p9=3$RSC}#3grk)Akc7=#_zcTa5jp005q-9(P8pEBR(HpXU7Z z?rNhUaO77?6y=-M=Xeqax$z$!;@+dD4_$M4M5;@IGo3oN|CqFqhus7FCawn(Lq5H6 z#K31;Lg;(;b=Lgp>WCaxEPG)$!Y#*^Z>i6uBf^rq~1^KhH0*#S_Yey z0EsRAt?caV{4!>Igl)zua0atH6uwLF{i;M)im?8Ib`wR7(W6V~n1-@_oAOP=YK8$A zA890k<5kWdke%Q0A0G&UBi_G{Imtk;VSu5p>RA&gAaSR>_G*)xxYFSLE|X{cHtjQj zo=#?9fLh|cUqYyJ)YoLq+b}mGj)6j*hixi928Ak}oUQPNPCoL)y%DG_BxGa!`LUw$ z{Y5vAP3f)XLeu^317EsNSHo56tS#jUwSSHYids>-!)A*SE+vjNfD=v#>7nLbcFtQl zrSQwx{)Hdr>+83q2Pv<(6LUA75}phdd;VbWBf5XD-&Jh#)lwnmN!f5FtQu*TM!#B4 z_~rG2EHt99+{KK8^MNGb!UxoE?6&=D@6qc&$IQKXVp^}GfAY19`vNF}2wl607DsGg zAQ*F=Q!DTsK?so^mb2h9oOv& ze~={?_qmpi-xR5$6=cE9k~0pwiEi^sKYoA-*>2JP&!;#?O)bTjfC5b3PbW>bZQJT_ zzdvDK+ovgeTdZWtYttq*WmVOl|B0w{+vk4%9MaXr#k@}Nb)+}{{<^05-_NM6jo{}` zA4P%l;`^V_+A81;#8VR45~{WC8?F=ev)=Yrho8GDbr;? zY=C-#?QFe07uD0%UZwJXzL2N{BXJKB4SieXR?)#A)qj30)&K9$6`_3C#igxmuR3z% z2-edV?ebEL0*x9mZ(48izc0MMJeT-GUS1Cfy#l!)^3KY-ZKMoxE)yp3&jPx%;NxkGuaz3y{(Np~<+=@h-Za zHP2n)5E3Y^DZriGaSptx&by%K>)x?Wghn zhD;TVu$HW8H8IIrXnPH{IlDr|3hUqRWN@JN{F5vH9`<}u#E0G!bhJ}i%X6u#5dLgm zY;2Wc1){5Y)jvgQL=5IEY zY_HMYDb#M%I$doCXD}gc^&FoMG7j~> z*`jJR5|OsAMNKY#oAi-FisO7K*l7-ElBHStzb?h75^1#2ZB8tqE!(tpr{sM2=mr~+w=lzE~!EkbRFaWbIyO~ zE{p#>Nfj*M4%WuEe_tg9ZubPT5-Icz;@u_O1!?`s@^jnj3Opg*1z&d|8U_YYSupli z{HdX+*!iM!+r8l8w{+SN1(aGSm-_$m^Y!Jy-v)FN%Yqh~U-iQ#8PuF#pB!n2xq^$4 zr^%cKXj*HC6Z8s}Zd;KVorl;Wf+~EDDV;$_CN&UUNn;=P#v*Cd?FJexa$6*4vqCL2 z#Xb}Gzcw&CzY>OcPNOQgB33`GTZd$8A>Y`>^Y6FOP^~7gG!gGJ!5UC@N->T*a$i)1 z{IWA9xKqF@ICz{fY2B&Q0|fpv>3Go%8h!CGs=4RmU#Yn;vpkp)1t5KN6og@A2#3%JWy z;m=_fJrw^G6tiUJ9a6+IG&Lljp|h=i<2%tWc)zafuM-3e=lq+?s}Xh7amZM@*S&tt z1KI|HYJj|VVj)CA4icAKe)~Wmoo1r)_k}n-5$M}sZ|9k zj2PzOIi+Y^&cB)R=bBN?8k@{QNA{jd;@>CVb{WoFV)}{@2t0FsLNd;3wt^NKy?CQ(?CC_rJhR1Um}gP{qIi31h_4k)G4G zfG>d;52ROGL-T_&Syr~7K34#d!{sdvtc-8n`D93Q8cw~my}zi)p*1RnM#8}q8pwFW(um=# zH$3B9u(CeuE%dh`hgWgy%nB1xi-XR#MQe{Og$k!kO0 z88@yoQTbEhrzz1Vc63^ARA4@R`(c%jOzbt@!OKZrDO zN~Y@^QFR*yeJ@+$ioOZiZfE8gG|+?q79_4@G+eet$n8LlH-Cud37|t($HTy0!9Uc^ z3ISU6V$@k<%X5zkwv2eb4kBAY3z1u$2Z;XkB6`+YhkF{l@c2XS?mk@`eyU@(;_fBS zDZM;T1bIf==N~zuU-MKKUIsu#w)r^7qyWE0q)kS}}Q644?~g zJghoM#p>MlboZoPQ)<w^ zt_Egq{9N^+ZO7Hsv(M}8*V0bMsp?z1nPZFV0+__G{@CP`IOvM35mn0_ zxSQ43EUm({PX?2~#1ylc_7Nyl`GWe8A+5J1?su~^yTt^F|1eG18w$Skdj0&!i~+Z} z!PQ|!m?&&XsE{4?Z$36Mh>i{TuQ<~V@x+p7CZ_*kv7FBxJ9qvAXTT{;0CDwp0>9kn zFalBAB>n_HpHT?nQF3c4BzkM(H`mAhCIU~6ue#CzE}kNZr5Da$PrLnt3RFY{qE|y! zHZRI<8u#ztUv@7AU*OZ+CE7ft=~k?`jyeO5Qh^Y(B4YEVO$(8+)5V;31Rkx$t-YA` z9fqnlUYJJ~re4K=83{1nJFCN*C`~EzNHMk%I3^cE46=0D9NAkFFHs+hK%3@DR3IN~d#wGhD|AU-hpVO> zIR#ARz6MsA1e?}tYcbf7cY}KU3m{U5m0U5V4v&Fq2$tgZ3k8J?Bq20HYqdds5OKFI37V-a ze|kIfxSI3#{WoLAj4i|1i7}sqN=QP;(qK-AmQzZJA#KXmv86I&XvUgIqlIj3r-c@& zB*qx3Nl~X%Du%SGLCdJAzRy=Q-_Kva?|;7@{vzkR->>CfuIsw*dpQmfocXd4wQ4ED zeE*JVqef~TJdg-ZIi!}2La9hoe9dNkQp~D_(kcJ7&C{vSp<*j7cS_TrjEKm^dN}KK zRJ`4J$ol7hGi=OH$=Pms1c!QC$^T|M)C#%(*XPMZGdPf>>!BXNbOHhd_)ZRO2j;!a z=-VyJ+b9j5%5j0Siasno<~a51E~_eHXDtvn!Da~R8#?#2!#S)>9Ha0MUW=(-h6%@u zHoXLv6>T3yPaF#E2EJ;cu-<9wIalWvSS6e_eCSlFWI1ra7e3Mr@)P$*oZjT~ z)v8}e zHm{RQR5;lm>khB|;<)7a?w%f$KrE~gsHd5YJ7vl+~90kK(mpQ4|26&y_S745NO z7qE<0*qNjE!~(!=&~i5#3!zTipMsD)-EVHbxk>}G1Z04&Yx;bX+pFubUG*|7+GEG9 zu~>g4?c8<}GT)d_eoka94xGI9*H*50B30TsIfd919SR$0@|CrA$^^cRa?X6H6sNfb zT;y>Q7I~{fn4qm~;wyF+U#mfv47_X1k;Us1J&JrbwJi2+ z_mnslV#9WY{9HI5^ed^`Xtf3++zyKHNJoCuN1N+u?UZf~TKz z@p%qOHgWds)dWnfxBuGz=b*|dm;OmCTqBQLzGqJgnOhiCmSNBRx697@_=J$HSwY$4 zQo{q9djK=e%*;-ot;2|UKRErmx3Q1`W|}QWf-0= z+C)eHHTz4$p4Zx#pU0(C( zxup5r;r|@+J0+{we(T}BjXP~VE$vfR_$;u(d2^EfCcjQQFNul#aI{nDiut?ueVqBR zS(P+A>#V7AM1~R-by_3-tar}?>T#+jy|;SU+7;Q=ta@l%HlQpqrWTAC zwT}0-nuDhpu3>~~rV!rz#j|I|cDC0Hvk*Hvp?qxKvHB~=z;DCj0Niaj*WBFv{~VtK zfY|SZ7s!ap!TT2a1@Q7QM1@UN5AS$36rNozS7~U-MYp4JFrzSR*|}wsM-yXBA9+b& zU248~v_RXC(|hWC?WDmUY~A$;H**=UoFbf`=1VSS6!+>?ko zE)u5}>=I4_Ex8e)UD6m0dbpg|PKbm2P}kAPA6rFBMDclwh=h})54$h>z31NN7hieW zsJQAjZh!1+VD$4&w=UDRFK`*=EcMqNPO__h#V?W^a}85|A5{6mOU7jF3v?{Tf;~;i zx%|dwTXm-UWO`o2itY9ER9GBRQ&pv)XgS97RAb(irW*BW;}GLYv_~9mmbnx%nm_L{k zKUf}*pZ-zAM_cTSBEK{7ZG>|-^c}tH>G#ez>nX`m0geBxrsvqIPrAPSdPbsasTKFg z9PBBd=zWA-%f=7W$JiCI(wK4HEnv>>ZAZnfoMlEV+N6nN$KI~~aiPT+ke{U@h~PWn z1D&31#ExL?&DczaZ6{EY2>TV4`NA-!INd89KKwGE)#&h%KZbnS_4QBH3L~W&G(;@w zggCNk(RVS(v|vysDtJeTDVjdTY#mwR^9G%s2cjNdGv~qKs_soM(KwuES)5_$5)USV z3<}?ji)+NQi)Y#c*ctn74@shHKv8y}dUq_6KbsE&11I))cv-CHW6|i0o>1TmAy!Es zX=clo9l^=Jd?YRe$Zcz_ZKpbl3uvq70kJctOz{cy+&|#`K~f4?fP4uV)3?4(9`>Qx z81q42d=U~Ar72p65+ZAj(U?4W1!sXu`E8DYAOM-zSENiZiKUBH75(wQAN2TFp_z&# zgVl0*UR@o*A^0{$+uhyf_+W;d)PAu$5R)lmF1)#13b*?5;Pma?p@qX2G&*Bct*UX`XMJ-8Qu00YUy>dA%dv-8J!BY)}+F+)c4OYi>vJ9og0&j-H` z8bj{VA3liX3#GAxcQfFH#Ivz~?!XVPxo^n$nKM^mItyU(w{LvZ({x;>xJg` zq0hqwcm+Rye>qF~rnx!PH22Syc!=;{Uu^VMtWE3`QQyiLTx2uG;ZV|M`g{-b0($rF zAKRP*(iCYEOB`EMo}ONx-sw5X_NMia!*{E9FJoiDlWG{0>zdYN{_fqoYNjIP!fz!T zI~a%aC^IKWBUFoe80}ZA-Q0ukcsk-_#w9ME&Gjwke{bSeoH}{(A~ws3+*Nv-$tHR> zDB-?EoR>)_dW21l0KdW?<4eret_|^M1DGt&WPSwHx*RS&YlF5U(S9pPRt)LC1C5}u zlTW53d@dFILFzl0Vpm7h9{9|b1qm}E1I>sEW|r8n6Q~Yp23ym^Ae(f zsER^F)^KM3fmWYz&-R&KUGbZtZ*xca8o!7m$}IEzlZ~K>HDfyeUQ()i=%lA^rG4*S zy^JN2pU=`+xxKUVWrLVRJ(11=lE&MUlAc^3PZl?!6_UTHEh)nEqJN4VCVMj zrrc2a^TcAb2D)9i`&1=ZX`lL&Qm@vAwGU&Lg$-pZ6|9$2=%JKi2PM2t+{c%py{~EY&8k}x}T3-nDuU_Wr~v0mg)Uh^dG!rP~HIX zNpFz$Hi1(V$@MBZB(*+oj)e3Lp1E~l?a){YFxTnmUt|wzt)J_{>o;$SCw~dhlR2fW zxd(e818wlWM!!|^?5nUZ-2eo+)9IGz-i5LjV?Ucj$C6GnCI+swO;5vOZhOIb}*ZRwYuBB@dSjf4~f5HfsMcYl3ee)Nu&)&bPe8p~C^em5%vPJm+X&c!zOemz< zD=92UE@&@Qklu#y%eT(ILjIpL_l6s({Ew=@(DGs#^oR~B&!)N}Q*<=XpDj52YpzUb zUys#~s{<=E$~A4>M}9eguMdfclgbPqk%XN3<(E~px(^RLG>IGJ8QR=p8hZJ1HOfH$ zO9vxfo{CvEB7xou-t!>9V)OI~8^%dM1C9L0%-*pKGQpH{j2bwE*M9w1$fENXzEoPd zDCo~YTXgmvW0B{_8z)D;Wgv(#mN-pn)A6jo*Gi7(`_DF8zotR69!Y@jr3b-s^Dc$u9VfL=7R@~o{-?sZ3!iW*8wv&pCucb<=@$3uZOv;V9E4KoEw9jr4`2~ z`6SYU_C#J2a_6URX#i_@ZS$JPS1)?f6<UF+8?&ScRXqCL}GT&-m`P_E% zbbIuUq87=?zoqJ-fp0!eWJFg;H`R;C#3UN?30geN+~Qk1(MKcKH%5y{bRDIB%U@K{4lf>c(pXnTO8%B>Y2Qu_HP z*Y=rZ%k(Pu`|xok&czlLJ7o_7XT%yc)NIn47TsgZZ{=oPpS8sRk;1Kx?H&h%eAi1W zF>KbJ_v}rhUjC7lmB(J&YBP6$I3b!+sf)XYt~Sx$*%jb2NTYuOHx zb*G~vN`cdKxbPk#5NDOEFZ(xAl1X0)&q9@L#nxGU>zbt5mIQam*B3*67RveoRv0sT zrT+SJWl`ZdV#?Zm*sATBQS`NkXsclpcFE~2WhV*)3mi4S->h(v5!QGLEe^f zBZn*K434PKnh}_76}RDMcFj>RD8MHcC#%v?X+~VR;xoDL&~B%^xFspQeK|3xIE`*p zQP=eM`g_0VluW%&!P5H^Z6a#+q9z@eY_70O4w$BG`~jR<+pG)QM*g17)YtaAOY(sX&_O-p1x@ z5oDlaTME|TdkF-WwodcW+3x}Q3aZb+5}}Il1ysAH*FqKD9^OO7KRE$*`yxo4A%2~( zX3z7ZGh7|c(SNFzGZ8JCE92^Zn0(yo-v?cPbyXu|l!YTaZ-BnXp8aOI$tH@TRf-_- z_TZ{xCB!(7sMN}*G`keCg0SXVY!Z5qwmqLIk6O8K;Sb0l-0+N&N3^+ob#rdk2V2#@`yK+q#}{z_B7<@uufZuaEiuUF=GlrE7Cr6;TUXt{CU{L}$i|w7 z7rmjEq_0w^QiK_a$(1#f*^nw)(8eIR^<{jHz9|ROW8lOuR?Q+X#bKt0I%J5CO z`0T~Sc^$8hOV!q;fau$?(8MWkKQ-yoZ9*Lwh}H1Ls3JrRO9UW>KIWNQDo<1k>a>#H z^TEe=1UtS5}iubv|3r8CZxSxht-u9F;2&K z(`r%j2XsA>(gj*72?0Ehhy)i9>(D?*wU&R+iiIox?>tVS* zz3bAinA>zpK<kQ8~8oU27}6k~Bcu?$BtDMq^ZJCSd$;T3V8lNM#CB za3Lzq3}RnFc+_b^uWM@7-hCa>vpZ)sM)9*w0z;}>d=K|E*^qw`Zwd$gC z?^)ySMLvL`bK-Y=FOhXU@!7dui=>b~cYdnF`}S;;1<%?ZYSbngTc|8Fs?MCPrr{mr ziw*R5YH4`+G8F$Z>&GD9Mz78mFOJss&&Pb$cUTB%G7aD}%9>gF@EbR*)BmZM{Az5N zYEymbY8b_B)q40$uuqk;Y{$2O<^L>(rx9%Nn>TOj3a8Rpt?iFGKl^cBaC)Z#1LX{C zee!H?&{b)u9^*2h5ZZ@t-C;y2XjFT0;(>b)T9Y{Y6qnGDE|-G4~2Q zWrz}pr+8PB~srP{WoJrjZZ1-5JjZdFRM=9V=nX~K*d7GmU+NT*P{lxS%C12LfM zsUi6>MnyDNM|0xD6S#HGNX4^f>-sCZG}LQOm=OL(IhQPcR+MRx%FZXx-n4@a9Y%y& zch2S6CY;2m$Z0OG9y~6{%E_rbe5q%52yQHj_O)VHmyZo=G?iB3rTk8u7%OS+wLKtn zS#8t#>(^ItCBlR;11WH#uz|qtws1wP@a-tl3kRZ=QI*h1R0?Y4viEM7AZ=>9{-7vjX5gS=2 zpc6zPxu7em8Ef7-$p=OMG2|wpa_L|0dzh{xi8PV*S@_t{VD9X{4#NGdT z+>ABT?brVu+u1rf+BSU+wfW|>*i?0-foV`Ku&@+{iU3rkA#k6r{84{p<&FAs!JKrv+$tlYQ!b$~JJgfe?y%~kKK}mp=dSlwbVD~YmT^`Lc5R7)CDRll-91uuay*`kI={$TuA0JW|jTfI-b%_Q{68t4}uRrrtP5 zVPY-k;vrbq1zI_V7dLG(C`d;vjwt4S*-bwD@}*1H-83&g3>O2HIjrV##pT>0-Kz=$ zZP(2si7NAC;)D_4is(=I6)$`4tXIcw(c4A2EqU*|I0%bNL>O(GnrA#>r$Tt_g4PEQ z168^q`*qCZia^barfPTLplxU8d94A4!->h-L$*GOp5`h=X6SeBTz4iw;*^ zORE5X#)#mU@_$~=nDLM2OB@9RN3;7+HQi~(NYUL|ghixcp*L>KiC%T}!h<`Cql+&- zDXks7`LWv0h&jWT*;r>y9hoKi8Dil@WRyn)8HUfRrUt)|mJ{?kR_~{xX9k-ZC7Xxw ze2CML5zp45R(lBd@->xZXO^h}l`2NNF>0cgO)X#!aX2-Kzn0AtV45gfpSjH1>?E-n zy-sToh8BoEew#Vsg=82nDl5aNW3}73kp!<6=UzaHUs+opEBcyIQ&u?H^L3y0`km={ znD-4ZQw#=GpH^J{d7mMgE4jx)UEsfXQeX4cue9sX^4WD#V4dyu`M$u`RG)?gN>6vL zZ2jWt&hUdNG4O0=pG;BJGapYs0Ov7R;1>00Yz#2xrQup=ZJ!{v$ij$#@z(3HXRugqf^K+=L=s5R^;*1ZYQTm2n7OD z(^rX9ovP^XT}74WMHB&0ilJ0JtKShGKAOFX;J6T6neqCdOM{{zn)F7phKlK zdc&-;C8U|fU__V*zcXhd5GyYant9czp~rFtLatkP9#v?qTQY{6^eSr<9&fO{%-$nM(9=>;?R{;*ZGaD1S^cg`4xr~o{ZWs z>7O0vQE86jbhO+5>ZNY9b=`2*09D1?3&h zN$Rg45ky+9gF4IKzHD(;BW>0n_8K_WUZwk9Efyg@S=z51$#|1Jbyx2-qDreez1sEs zekJQKyK{%|GS4;_39VGybx>So2hGaU|ERx`wMO^9J1CFQj}qYsIB``DjG0oH;4p6EIKJkIKI(neDky5_{|4&SQ#sTOwayGq>9nSx9;e- zJgr}z_pPJUBIwVm zEg@$BV|wmP0paCGN7`iRW0u=)*tBu$H&^$@@3r$;FvRjwON{0UbM1BGbB|1QQ|bCe zLAxxnpH!3j&1j_nb&JlWv&s+Cfv`MvZ_Aq;t-nTXvuVoGbt@enIqUnEM+Mhv-C=jy z%lH$eo9@*HA@w=ywtMtkT~j`}UHcrq)O|P-0RPS1!XPCb_y79n4_5-9`Ty(3RvHa`|2iS#;2Wve zPhouOc;qMtyuIaEz!}+1fy>lTc~69JL`NWG5(Iaf18T>AfX3#>`;#G1Ra{Hnr~C?q zn?SW*Jb#{dA$H!hX{N&JlN=dvdrGG>>T&n3T?v2N@B46xlpG2Kn1KzD_L?;g7GWtV zlF!}m9IqC7(JOhJnwmL(Urlc%q0?CYdQ^83u}@FV^KyqN3X!8p!x#X2NPNkh>9dnh zV!L>jKMo33OX3Sc0o@|CwvHlYT$(cQlhJq_u$~y1EfLWp^q1j>4)qqfF6qnWH!a`c zxQJ7HRFhLvZR#8~ ze0X)Ez5Sh(*wZvqx=ibVi<0u=%r0xo;ZBUs9MQKYDM5r$VfmBpvw3SAGJ||PaGgQE z^LicKy^Sv_Duj1xvtNDP>FO#mZo=K2NdnPrk)uWw^8&in?tfNRj^BU#t7=1;{8a!s z2g#U|?c^y_uH2n>uCL8!U59JmQc{|#ZTB6g468G^Khg?N3ZiYYL_}>s(U-u%yd(1n zMhjEMSj0w8q-&xXOZ@6i3tWaAj(+fvA$n$8Q?|8dcgMj>PBM;%;64p`A~E4XmH13z z@v#w{I-Y#u%$e7XAGm;^84>{)8=p|E7T8c0t$-grZRnkLLVz|TCE#QdUye}im49gP zB{uM|*WwSFDW#Qiv=&mwx6Hk!4Ms(6t-C=^c23R;M%^D5Rif077nk(wxnCe`gye}; z?kI~!3T)B}7{Mb{R-GyDL2Izs64%sMp}YR;b4ebhj)#vNx$$hQXqw}qL&_aYK@M+C zKZig{4=NfOyiA{*!<*0j>sAlm@06DH^{?0rF6N9gZF$4G&B#iPk}Fl2)M^Gi*-gdW z8qR#WV}mJbN(#z0XFA(=8?5}yqHpFNohsLRs;=JU0^zBnIS^;EH=bD*s-6XqC|$Yo zD+$QJNxJJn?L@czk&$5x{(?CDE7~?V9e2LEYQvOa;#kmaz^R3WJv4ZdsvT9!T+pBUrH3XL5@yHVAEx zQP51|iov}=aoBzf5+Vija#&Cgy4IxZdVS%NM#DzV*ENWyzOLj9f%j}}-Y?Z-W{NsP z^&6FES)RlQ0>yPjzKDDMDkz{=fD4Q&NLr;?Q=BLlGEr3e#OsgGJFQGHS-uPNHT>ve zEJ;S$O*F1#z-FtbTC!%;j)AqCMf8p$n`c0o`DLp-DN(w(j*x(Iv%q>pTLAaDO$9?w zpFT~Fv7EGiyVdk$Qg0RNKY!oOU{f}K_oU)K2E71w5TcFsij49FL6eG$%gFr_^G z*TaL}uf)@@=FRI&Q6J!<*kM77>L2o0tvMnR&&nrp8#r}m zn^-i@7@la|ThTwqt6Q!fH=#R#8AXk~6Mfm5TXa&mx=X=8C}90DtAx>8Gd)_?+mS9D zI(DpJ-$y-06$^Y3CF+{I4Kw*``g8bZt$U^rCtR@6yLOpb>e7)D8?4BRY828#DC9gl zF}MS3URyD>->CjgQp0IeQ&6@rt zzZqeTPCRrFT5DcEfpNdyO=Qq!NQ_^_i#gOPbNA#|$59$G5z>2&u{9D{iZPu*KeW;e zzwh2+Mcjc+icgOsV`$nl2doG@wS!hWPSc`qzxUFPBdFB+D?DcCo9Foq9wGqm{iLCu4(lxH>I z_3_>>b@?tarHc@V8ks46N&uN&Q}iQ zI#HnPh@!|yZs@UhZ_rKMkWk6lASq|Dp6|DuSVMhZL@2+BBF`efCgms6w$|XXH9BTEaZ+=H{$JLZj7Iuyls47WQwxQ=5M=SaefaWsD{j~ZEQaUe<+gk zAfuYRf8$-HC!cVm6W|anHBYN&0i4Ei>2XoVm)4wZ?~UL5cIZ@d#PWH$lbJ3;14*Cb$5$kl zRK9$vj;tL=OCw`Z4skLl{Jv$brRk!uc<1X_$))Yd-`zbl!oaLMfzi26YJNF1)Z8&A zE6bE1mSAS}ABku6J*+e=Vz@n#aZ%Lr1Wa9j5W*zbb+wgMq=<>9P0Kq!m*K}dpKSGJ zEgo-(d5eXAZ*F0HCa9|$g33k2X@2$9t?Fr40CD;a*Z!?~D@`!u{f=t;j!;jkX+SwbXCdO{M> zrXSl8PvLA>yPL4TtFJACMA$U2B_1M01a4d>KRaYMtjMMIJh+J{?;wc)53biSm%6i$H@g3~MJa4-^|W zpS3j7+@KI7vF;ptRl>Hqu`WE8(B@G9JbTkn5LenA3Rjz{PpIQ}_N-@iGVeD~QQM7`o_G5+2}Ev;*v zqXrCk)@V=WLuq)e{tElb7j;j9d-dtFy;WIa&z1#UE428Wgp4#NzNpS^)jx@4#OQ=0==xm7uMyQQ{p1?Nv|^OykxMDqwoG6oL% zHmkYADQZDZURvD@%oa$1Bm=|6Ryf~02KG)H_iy3k^=NyXM&esP-E{{27P%5d$J^u2 zwMYH_RQKzz7h?CCcRKg{^i#z!HS?QcG{HOVW_P*?Y!@ohJHyv$w#5f_1APl!5SbnK zjbFxDP|5dFXW{i7;Zha#Icr^d?{9q%1m(UU#UNM81pLRbX!Y;q{~-%jRBIE^WuKk9 zn%Ftg|E(r~KgW$stM-li3^{A;8XI*g#_Zdaf%nbL%<^acc0-T;2(rX4-!PS>8lE9` z`t?Z@Cgj4;K_FCZn_dfhXGT^6vY+f`o4qk!)C+rGNr?l36yHNUBCFpVU!*BlsFSv$ z4Db%w!4r$<^068cBpz`32T_Vr$Zf8a04`B3DEl2_i;;tG_Q`Mz_z$EyN4c6!QEq7K z+pnL3YAZxDfoj`hSX6N&{3PBuTujQ3deTQJhq^8E@`b?BAkG`K&*Y=8KR^rbiAIE3 z6R@%v0+i|Il;fYATS)LpO{k$SP{wEe@^54Bf_K-&F1SJi1qJL_-+xci(cjC}x{x5kj!5Ue|$S}&r0!$6l^bK+x!YM38~H#Ed^Ij0n%jq{WI@j>>c^t31F zizyEm>7E*@aKg&nbNF^+$Vwq6Ffu?E=FmZ@G3|6~E-LSpiOlo;&rv}! zphdd|9Ll=Jdxav(?E0C15o_{D<}zmV=onmOCJp(@7XK@^Hbywp5s-BB@L?gswA0a3 zHt$B5lybwVDrU;zv?27GEb>Wb{qU I!nHsA4;P7yO8@`> literal 0 HcmV?d00001 From aa2954b9a0f9a01a0db83110b5d0dd7d6b7589d9 Mon Sep 17 00:00:00 2001 From: jeanmichelbouchard <45927571+jeanmichelbouchard@users.noreply.github.com> Date: Tue, 29 Jan 2019 22:00:48 -0500 Subject: [PATCH 4/6] Modified comments --- config.py | 2 +- config.py.sample | 3 +++ doc/HWSetup.md | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/config.py b/config.py index 8da39a8..fd80342 100644 --- a/config.py +++ b/config.py @@ -51,7 +51,7 @@ # game modes: tuples of (winning score, timeout in minutes) game_modes = [(None, None), (5, None), (7, None), (10, None), (3, 120)] -# Winner strings +# Customize winner strings winner_strings = ["Victoire des {}!","Des kings les {}!","Les {} déchirent!","Trop forts les {}!","Faites place aux {}!","You rock !!!"] """ Configure paths """ diff --git a/config.py.sample b/config.py.sample index 9df88fb..f57506a 100755 --- a/config.py.sample +++ b/config.py.sample @@ -45,6 +45,9 @@ from config_base import * #team_names = {"yellow": "blue", "black": "red"} #team_colors = {"yellow": (0.1, 0.1, 0.4), "black": (0.7, 0, 0)} +# Customize winner strings +#winner_strings = ["{} wins!","You rock, {}!"] + """ Configure paths """ # -- replay path diff --git a/doc/HWSetup.md b/doc/HWSetup.md index dfb298a..efa8212 100644 --- a/doc/HWSetup.md +++ b/doc/HWSetup.md @@ -88,6 +88,7 @@ You can also run the whole setup without an Arduino and use the RaspberryPI to g You only have to connect everything directly to the RaspberryPi GPIO and enable the io_raspberry plugin (see config.py.sample for config options). Verify the pin numbers in the config, and you're good to go! + Thanks to Adam Bartha for this! ![schematic](foos_RPi_only_schema.png) From f946bf620367535991f660f81b1ebd80de5748b6 Mon Sep 17 00:00:00 2001 From: jeanmichelbouchard <45927571+jeanmichelbouchard@users.noreply.github.com> Date: Mon, 8 Apr 2019 22:03:52 -0400 Subject: [PATCH 5/6] Added save_replays param to config Copies replays to a timestamped version to save the video files for futur viewing. --- .vscode/ipch/2b4ff356d5e809d2/mmap_address.bin | Bin 0 -> 8 bytes config.py | 3 +++ config_base.py | 1 + plugins/replay.py | 9 +++++++++ 4 files changed, 13 insertions(+) create mode 100644 .vscode/ipch/2b4ff356d5e809d2/mmap_address.bin diff --git a/.vscode/ipch/2b4ff356d5e809d2/mmap_address.bin b/.vscode/ipch/2b4ff356d5e809d2/mmap_address.bin new file mode 100644 index 0000000000000000000000000000000000000000..862b8428b9e068428b1a4e8a38f94019008d8940 GIT binary patch literal 8 NcmZQzU~Ksh1ON<}1cCqn literal 0 HcmV?d00001 diff --git a/config.py b/config.py index fd80342..e30025f 100644 --- a/config.py +++ b/config.py @@ -6,6 +6,7 @@ # -- Enable camera, replays and video motiondetector #plugins.update(set(['replay', 'camera', 'motiondetector'])) +#camera_preview = "-p 0,0,128,72" # -- Modify this to tune your camera settings - see raspivid --help for more info #camera_extra_params = "--ev 7" @@ -58,6 +59,8 @@ # -- replay path replay_path = "./replay" +replay_fps = 25 +save_replays = True # -- or the location of the file_handler #log["handlers"]["file_handler"]["filename"] = "" diff --git a/config_base.py b/config_base.py index 13bbda8..065b45b 100644 --- a/config_base.py +++ b/config_base.py @@ -28,6 +28,7 @@ winner_strings = ["{} wins!","You rock, {}!"] replay_path = '/dev/shm/replay' +save_replays = False replay_fps = 25 ignore_recent_chunks = 1 short_chunks = 10 diff --git a/plugins/replay.py b/plugins/replay.py index 075b2c7..c2c5b80 100644 --- a/plugins/replay.py +++ b/plugins/replay.py @@ -4,6 +4,7 @@ from foos.process import call_and_log from foos.platform import is_pi +from shutil import copyfile class Plugin: def __init__(self, bus): @@ -18,6 +19,14 @@ def replay(self, replay_type, trigger, extra={}): call_and_log(["video/generate-replay.sh", config.replay_path, str(config.ignore_recent_chunks), str(config.long_chunks), str(config.short_chunks)]) + + # If we want to keep replays, make a copy of the files with a timestamp. + if config.save_replays == True: + copyfile(os.path.join(config.replay_path, "replay_short.h264"), + os.path.join(config.replay_path, "{}_replay_short.h264".format(int(time.time())))) + copyfile(os.path.join(config.replay_path, "replay_long.h264"), + os.path.join(config.replay_path, "{}_replay_long.h264".format(int(time.time())))) + self.bus.notify('replay_start', extra) if is_pi(): call_and_log(["video/replay.sh", os.path.join(config.replay_path, "replay_{}.h264".format(replay_type)), str(config.replay_fps)]) From 8a660e6cc85642bf83e11576029dded7401d1c4c Mon Sep 17 00:00:00 2001 From: jeanmichelbouchard <45927571+jeanmichelbouchard@users.noreply.github.com> Date: Mon, 8 Apr 2019 22:07:41 -0400 Subject: [PATCH 6/6] Added replay_save_path Added the possibility to specify a path to save the replays, to a USB stick for example. --- config.py | 2 +- config_base.py | 1 + plugins/replay.py | 8 ++++---- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/config.py b/config.py index e30025f..e4d63eb 100644 --- a/config.py +++ b/config.py @@ -58,7 +58,7 @@ """ Configure paths """ # -- replay path -replay_path = "./replay" +replay_save_path = "./replay" replay_fps = 25 save_replays = True diff --git a/config_base.py b/config_base.py index 065b45b..7bbd11b 100644 --- a/config_base.py +++ b/config_base.py @@ -29,6 +29,7 @@ replay_path = '/dev/shm/replay' save_replays = False +replay_save_path = "./replay" replay_fps = 25 ignore_recent_chunks = 1 short_chunks = 10 diff --git a/plugins/replay.py b/plugins/replay.py index c2c5b80..58faa54 100644 --- a/plugins/replay.py +++ b/plugins/replay.py @@ -22,10 +22,10 @@ def replay(self, replay_type, trigger, extra={}): # If we want to keep replays, make a copy of the files with a timestamp. if config.save_replays == True: - copyfile(os.path.join(config.replay_path, "replay_short.h264"), - os.path.join(config.replay_path, "{}_replay_short.h264".format(int(time.time())))) - copyfile(os.path.join(config.replay_path, "replay_long.h264"), - os.path.join(config.replay_path, "{}_replay_long.h264".format(int(time.time())))) + copyfile(os.path.join(config.replay_save_path, "replay_short.h264"), + os.path.join(config.replay_save_path, "{}_replay_short.h264".format(int(time.time())))) + copyfile(os.path.join(config.replay_save_path, "replay_long.h264"), + os.path.join(config.replay_save_path, "{}_replay_long.h264".format(int(time.time())))) self.bus.notify('replay_start', extra) if is_pi():