From 5395c3c20280b76b870479c9d633f02b16be5180 Mon Sep 17 00:00:00 2001 From: Martin Dimitrov Date: Sat, 26 Oct 2024 18:00:26 -0700 Subject: [PATCH] make homeassistant container --- .gitea/workflows/build-homeassistant.yaml | 25 +++ Dockerfile | 11 ++ bun.lockb | Bin 404960 -> 405768 bytes docker-compose.yaml | 9 + packages/doorman-homeassistant/.gitignore | 175 +++++++++++++++++++ packages/doorman-homeassistant/README.md | 17 ++ packages/doorman-homeassistant/package.json | 15 ++ packages/doorman-homeassistant/src/index.ts | 44 +++++ packages/doorman-homeassistant/tsconfig.json | 27 +++ 9 files changed, 323 insertions(+) create mode 100644 .gitea/workflows/build-homeassistant.yaml create mode 100644 Dockerfile create mode 100644 docker-compose.yaml create mode 100644 packages/doorman-homeassistant/.gitignore create mode 100644 packages/doorman-homeassistant/README.md create mode 100644 packages/doorman-homeassistant/package.json create mode 100644 packages/doorman-homeassistant/src/index.ts create mode 100644 packages/doorman-homeassistant/tsconfig.json diff --git a/.gitea/workflows/build-homeassistant.yaml b/.gitea/workflows/build-homeassistant.yaml new file mode 100644 index 0000000..9fa601f --- /dev/null +++ b/.gitea/workflows/build-homeassistant.yaml @@ -0,0 +1,25 @@ +name: Build and push image for Gitainer + +on: + push: + branches: [main] + +jobs: + docker: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + name: Check out code + + - name: Build Docker image + run: docker buildx build . -t gitea.chromart.cc/martin/doorman-homeassistant:v1 -t gitea.chromart.cc/martin/doorman-homeassistant:latest + + - name: Login and Push Docker image + run: echo -n '${{ secrets.PASSWORD }}' | docker login gitea.chromart.cc --username ${{ secrets.USERNAME }} --password-stdin && docker image push --all-tags gitea.chromart.cc/martin/doorman-homeassistant + + # deploy-gitainer: + # needs: docker + # runs-on: ubuntu-22.04 + # steps: + # - name: Call Gitainer stack webhook + # run: curl --request POST http://192.168.1.150:9080/api/stacks/doorman-homeassistant?pretty \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..31e1627 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM oven/bun + +ADD packages/doorman-api packages/doorman-api +ADD packages/doorman-homeassistant packages/doorman-homeassistant +ADD bun.lockb bun.lockb +ADD package.json package.json +ADD bun.lockb bun.lockb + +RUN bun install + +CMD ["bun", "run", "packages/doorman-homeassistant/src/index.ts"] \ No newline at end of file diff --git a/bun.lockb b/bun.lockb index c9b4164636921076588053c590b014bd55764618..2d74fb82ef6f77c8b9c77e94dd3de17dfa30d655 100755 GIT binary patch delta 70863 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 Dl3K`n delta 70208 zcmeFadz?*W|Np<&-Zp!MN{Ez*NC!f(hcUB_b10EQB7?y=4Ca7QnwbzCRIId6DwU#A zDsm|07!@5=RPH;KqEe~5LZ#pHwXSQAx$jT+{kuPp-|zeT{bN16=5@Va*R`(0`#P*^ zt-bd$^Rt?teq8hJCg*p5rT=|TAA5gGwYMu4oZWEs>kFRx_3HK?*L$eP-l@;-d9K5O zD;t*&>DW8FPo1iJ-j4)EC^R~!Aa``*p@WyrzV*DKv%;a!si9Eu@Ui(pbd_?UP$leN zNqsULwf5K8m9a01n)v##i@goKDjcFHrC)_zMLM?9kIE{Xpo}|L2!$$QuRyN`KLMW< z3V9bhXB2ghnY8!YJd$}mPF||pJ+_SU)Kz)(;6&B&M)aC+3{m<)^fTe%=+)uErT{KCwF$)i<`*3?u&Gw&UzPP1e&8y(Zc{E6A4v&V))wNDAETwD!S)0e?& z;)C8f;TlB?DM@+!3Cj^b!is$YZ>VyMV4XE0GcR!TJ=lsrKsxC$a?|;FSz{(-<%U9= z@v8K~%+aH>^YTMu%xR%X=*lk}=9J>AVH{di+{p?pVe%|)Xt{>fM^4NO3Z8Mg$zbHf z%)qW$!}Q=W^je(vE45b-*2T3rw0LM{;YgjCIVpRrcpthN_zA2E7N4PXMWNy`*<-R8 zR-y3-s#yneQ^L%=!ki(avh%ldf-3e5ex**uS@f0S@krxgqcewR=Zr7N&dtg#I?H5S z0ILFSZNu5v^3Vco>RfymEKh7iuXquGsb?FPz6`1-V&yp(YJY zEjke|=jD$XM_uTN^UQg>h*z5yVpFRkRX2BNR(>dr6Vwgo!K&{3M#g>=FRP&Y>?j_8 zzOmQB>V>@g-2AblE(xVwV4QXhx+c%Bd0C03w%hX>Ps|$~3a!CbL%-&{%HE!6{hl{9Gs-Q^P0H=CQVh<`9D++j?JqI< zt*}b`7*_lZq*GI}^BNByJ$7(t&ZQ>ZD6ePv8bvi)nBln#u0*PHTbg?I=PWs9Xm)OJ z+7IZ;Est6#w~wfo;)mrm&YF~;o9U*Q^GD{5%^8+GI_p^6q&oy_;%Avb85)^6O703x zY8B+ywfIE>a$KF(rdm~CRbQECDX8!&t5Bopu{I``7f@B~ z<8Uy*@+PR%&@gN@qo0kRmL3W*R*Ms`(m$Ut1M^{6%fe}}YIA?vP>2Rq?xtHR(Q0OyGP(|K>mGNkMVn4VlcCw&sDx!he9cIQC z|I)#vKZAj)RlYDYH%Ixs(9tx139Jg5iNHXe)ycGQT=uX+C7g<_sWhRpxqM{h=8ny! z&(7{*TJRtl$Rn>}%b)9D*~?(HY?0NIGi2h}+@TY5GsorUHO?73G%J)z8OlGnjua6n z4C)sOZS7`Uxeiu>q1nTRsY1_StHz9cnW4otK6A*}plNflRq%An1(vfccY)=ZyLyB| zXTX)OG#>i}yGSc#ovx-pr>ALAC2YCavo7m=q3N17y^IGghSm4~ZYbBY@sD3+(k0U; z^=ibcK`9qu^O0@UYOlg4qq$qP-$%q^7OVyLNUe&M*R#@TtHeb&y)&&)5#%gQ?sTP-^i zR)zAiatKjrYkxb$oS&7|cvyCBUcPn#ihtYa;o`R5hKhCEH8$CD??A=#ilUsXT0c(T zsXHF9{41$c*qE&R5o3qug+9hsYc|6wydY;>_BgVC2wUAZWbD{c+1RtN)wr8sxji>? zV&lPMhZYVl%-4k=RDdq8XAT*X#XKzvbsl3X(1Hk6;9qxJPL9!8$JveLWo^e+Mbh!5 zx@-8@ae)_xY30ZqGU7LM6`b77%^znfbndk6;E)6>m)**U{TXAd8d{|L4`Gdgo}Fw<&b>%2r$@1#@C&cJ^` zeMiCSnPxK$Gl7F-eJtN`tFa4VjqwTD`Hc8bsJxebN*#CL?IxGr-t1Fq6ji&^G|7RL z_TVhz(~n^_b*r^kz>0s^>UUaw5_~%PP-|Zf%Xe|Bp9|}}Q*HdQJ50V`!}Q$+#XAWo zgAK3}J_XCS^Gt%`n{9lK*YngGXJpePdHRaEhC9IWP&=>W)Ee2p+-s~jEI%f%+dueb zz`O_RvbWLNhvu1Fk{kJdy}tbG*PR%w zHXK}J(kE>C?bzp_?|i_tX(TH#!!DG(#P4}D=$NA7ZHtYA&*el7>L^?X-t(Bra07f6 z_7`NN4F7eZOJ8Ct-eRfgIEu*}ojEkC5w2^0V`^v+|l@Ya|U_ZYtEr za=%;gOc4>opEWhR2G#=8oe0%@d~TCqhaG>;45Q%6$`$TIY{jRLE@;^bWB>BJ>AH`x zHH5cVej2WU{U-5^;LBey3*i#%BJCX-sV4AQuv|1GFHaZK(BrF2g_6$`st~VnylS;6 zFj=AGxLk~`k+pM;iGKrjv9Diiy7rfurb|zL(NuiSi#SvXrXZ*b@?cG$oRp8B z>x|vht5U5-(OalGYZI*Mu7EW}zj)cSb1=Eck0Dqi>fKjN2YgEL^2=8E3^+GyD18(P zHQiwHxe-?BKdv|Y8LZNi)6v#$Wbx3f@dcTqL!pf%s7rz;$gnp2%4SosrLYRh-eUYU z3;QhWF**4oLL4_>%TL>1HR+y!>tWvw>k4&jt4V*SSEc%SS>s8qYF!Jf8@t%EB+ZE2PE&@AHY_Pa>fo}XOR{1ur+ROhE?OCS%V97qflVe*-cPU zXrxVe9ju;v`#sZhX**2@7s7JfR&Lbvk_Y!S^=w}d3htojcUxf-|aCO?}OFCtRX`hkIWmK zBPi?PS^48K+5Gn3YIEdw!ogxbAVvCJR~zOi|v12=ES^9mCtPAsb1CMbONVx;svlWoV43} zz1G=hCLb=9K2&1Qq%9Nm^de`b6^+E7YIm}{P5X_1R=}zUx5UHc%C8TYb`>^D37Wqf zTO;UoSm}n0&MwF%U1Rc7yOR${MrG#=Z9H~Z=*w@68;8S6KlaJV`2jg5+hKRio%%FXzd- z<+@Z}gCY4?G5H`Yxjn0H8<(urzm}GhJtV7fer{oMwCDe1oHlkMP2jN8k_W7HjhCWi zs80KNm*KBq^~Nq(UfO1LJ*&xW9tvgI=b96KHRtCJ8>&lrXk6nl!9sD)VRK&cxlJR| zY1G$&UAQV-DHK8Q`qi$}Ex8>kIchp{2#=SPU7g>IJss9qnhdK`$Bi1^xL};_KO|=_TJlUQX{VnAERJ%b@vp-F9>RbL3)}YDEDIAlTKV-zl4gZNmrAClO4Izp0{O(@#iS=ls|D!;FyytmDaoB3K0_^FJF~11I?uqZjEb7a=4w zvQO+oKbAKwORlG1RdIqA?1WXpou_gl{NQOO-6nK(+0?4W{syjr{Vcks?LF0;;M%nS zTlzFu)3|_q^t`wD!qc5#mvcFp%KrL8b!xVf*O%wkUx+*doR{FDeI7eR= z&w^FJ6ZX8PPH}<-a{#uw>NHsC_QI;zJ>my|#C_44Ph>(;d7A2)nEe8yu!8#w|2Qus4WGBy$!umVi+9)Bcn&$S>(0KNQC#6^CoAcJ1O3pjD$NW8Va>0 zLDb90h`Y~WU4d2JQ}UC&!gdL#m$#-}!hOGdDAX>9DQOpXYIv>MC){2YLZNiDh_|6_ zN(|#ljB;MaT`5il?`Zq<*jX|5vuOS~o5M|mhV=6aJ0zT2y*2z@=N;*gi2g~M4&IcE zRJT1Hr@A_17k6i1b-{{y8`{OAZ((&-D(7^sRi}j0-z)5taPMb<>`9vPUP(sWsp=g; z>q@uxK`W>8XmMfZMD#FP7jIqLRHvd-L@=qDvW%o`#7&v_k_C?P2GuC z&?z>pG;m9}-gD zuIlLC&A7c3tAgiriMuA>|*dyU)GeOnu<@^mTos<|>Ct2#X=s~P2 zy(yhj-82?9=@IpfI~7a48T5+#hP8q?`mI&Zgu}?_nQ-T@ZYpnjJtH1|`*iPU&vfTP zuT`&vJDGLkI-(peV^c~DqpL~BSh;|i+y<+B;Ok*ttE&>u0aQW=!GHXq?5= z^wDiztKJD`t5?{Y-ao@z+dDnhtCmT6ymRhFNg>;iS3=*vS<9Pzb$YZ03+xr%x^8V^ z1e7)I>JX2v!b(y1hrd75n|w{WJClXq_)k5%1IyNs`c`FaltnAsYWx)TNyMH-y9TXv zuDBJ>Hok~yGDbVf^3r;yM(-xnPNUcTgpl%KaCVM6HN7K!6V4T0t9}XRCa-@z}Fi@<^!%!#|(n9qpg)wy0<7Nq@hb;?(mdw@VMdS-3PHu4osKuhv#~02c}1>aeLL$ zTgU3r)oXQq!kvb#7KOYGz2lm%Xor;sEu!vp+Ig)8C8Bd0QlvMfU26EVhThsi>CswT zgMz8!^!8e1GC8r^a#FAmgb$qOt<6l2)oEnBe!M69p(t57&!N8`_6i3lVtde3hf-&` zXL5Z?MLE^WXdicP#4=uICb+L-X*CH2jjV8isVj4nCU?bZ7v#pl$q!`lFU?Y|p;5aGzJ61c*K{ve_pTv-= zqK0g229|1F+9A<3D3^MF^h^yOZ01cKneLuLyfUKqnV)xKXg`$7g;F^A(q~Z)aY_TEfsRVB*Z_8Q-9WD>S$(h zX76}x0G8ZzeCFMcqLq=<464_$)Ni=BOWY~vwVJ?0r{HWfrU8zw%jvXH3sYX)-HLT3 zR(a1Eof4ySx?pIwWl-1X7OcRlZsnfFMZu!& zT<#T4Pq=f@%=pik5O?3gGDCy@VuH82B@r#^#jy6Kl%%?A3CUS8Ee_EivD$i55~)=EcXURupPQL*hI@rG6Yk>P=E4^B9X69(R*%k1cLsT_ zZe@4RsKYD8mAs7ZarXe$wOCB7!Ev|!HD(5~UgMw}u{4#;lC~Ag4DAiYaV{WhZc8vc zkKD%AzK>}Ot!3nF$6_dHT5<8I>aDpw5$)5L>I5suJ%m`6HBLLnoo!y>9SJwg$d_km zEnPMMOT#PJpSh3OIJ$FvN(@6i79@Qv>9kBa0A;vxvqJ$MCeF)PtNR=^@d#Isi$`QwgQeP{uQ>Sg*dD=TNH{t$Z zHF|b)O1UfzRBfh*5$X_Rim#m~yd(D}!rx?ht^M@yS;M@w8R_nI!%SvoJG}r)L*LBi zcd?q9vl)=#;mMR*qq}3NlbF9aOui@ojHBh+1*;nxu|w`%ti z;u20Cs@-<4a6!U7hNcB5$jQARyR<$ud@zmDz{M%!xe>4y4!A7EJ91yb z9WgSQyPWm_mKFX0z^x9VX2$2+Q*%S z-jRg~S6?TR*QoRLad#nBb1bfbl=~J|yC5&Ek5$Gb>*Vy~b_GlAVVN(EM`vNR_S4RH z+Qbw>XCCFm-IH?6IV=QRo!Vju z%QQmGVL%R!I$?>*BG=Sl1;B(KD6k2U3FJGBKY; zMe{uTalY4jaeB0Ffjpp*bSL&FPV)iRi0H+@X=Q(v;-zm(Mz29k1Y> zSeiTxxdcfFhH<=hZy#c*hk~)?oZ+>4DiIx6#5h#zq6-N1 z_R^-di4l-%7<5#!WpQ%8XtGbh>O>s70$lnMmg#ai@fendw7IOeE>U)W3}_Q0VEp9d z#iL(fu@$BVQ*PFtnT?8jBO&=UC@{7Ss~48_-&byIsu9d`GaAcw9ByBMH8AkkY16DT zgGFg1mTDI4UYw`ABg+$RVtVOt9T<1>u$q#>?0{d!D$Ug`e@oK$baX5oOPzMSLvKWB z#zv)$x8}KodjQL{Ta&)QjMBNs?Zwqz;qzRl(RA$%THw6s9YOmQt#zO|_s8AVGffJv zz1`wYj<;q-!s+0TZ(2UCDdFCGt0{s`WiY&prTH4%e!CamW(vf*JI*fT$jXGf2rY#a z43I=Ty#F?D@(bxsZEwvB33t@($v$J@jV;4c-EG^xcb(h4$*a?N&l2-P?rBxz+DZ#ttNOd2sHNrP@CT^$4`~vy-uR z6EeAcNXV2{caF_3oHfU5y)ID>+vN2dA(OhD$F(`gYZf7M-UozCy88E6&Aow;+{13` z;}qu}Z*n5tJ%FYWz_qzsN^GuiQm_ql4`XS%8LRuf#${#-%)~NTX+o^WQc4pS@{_%` zfz3f1EDa-aDT#+~@%2R6b>@}MYZlaQSc6HzL||{a%v-ZQ;W*wA{$_ctHY8kse(9Y@ z+j#6_EER3;HO9?yV+%|Pl+FgQr`Kv@!u8PX;N+p(TUf)qKh~$ZE$%ZlWgEj9Hww$_ z8Xh6kHfRA0cl38z!4rr!_a}#qR=XKktiwEO*`N^V&7+&&usUG{o{G+RK)I^4nGc%b z&Blzo!B?@GlZs~ciH8qA=&jwtGqs13ivU}UXbD#9;MDzPb>~uV&8vy%9g9>gW!&vy zps{_w9y2iu5JmO8>77X%jiST`odPmo% zyMH{ItQ4!LbFo+WTEe|)vFROdxMs$qd$7#XRsS&@9h8$vXiyM3OsH>A;+5W!*Ar~G zTD`&3`z6Lb>`z%sr(v1lffZeg#m#2d)M&S*+>&}}x1_pD37O%`c3cV%hD$|$u~U};3McoxOoe_*vYIouYHj(Cnv^Q-I% zUlJ^n3oz4&JVo11_X{iyO`bnK6?e~m-W1IYZLt`C?Ni;G2&s-H)n2UQ=bXFN+~t_KF<2c-Q$B}v1y^sABek) zu~cC;?``AZzrW}m-JR|>f64SV{m3YpWUXKZNB3j#aTGhG4(pO*q68-wms(o?Uc$PR zY=f)3`@=t3=f0dQl0AYu5X3XwtRt|0rCwWKqBx1j#sYay_YhrCSn378s_ZE~kLFroeHp=qSu1}2~ zBb4E#B~oLFjb`C6=QN$`#t?Lhc|NoZtF+nSy&JvOpQbzQy~0lu?#G*xt>)>ZcLXJW zi&?>gkBi*rum%NXYaE^Ss=3ZH+xaY$Wo>W5{S2)uDT4cH=OVB0vqbdCt)b9WUfRr5 zx7Ie}tKfdc9f#F7$j!MucmVKu!gXFVLk{1ribq>v@v*|x)aY13O@j{@9`p*oNVuP1 zYq)SwE8mPp0?d= zSLv7AVY&=oENJd;VnD z?XuH6BVY$ploG?x)DBkF@aCO<>j+7I-RVz;-AV5!JypW9*X3Ao(sJKTO~1nG99X)a zYx03fSCz7S-N%)_|Tsmb<$(^e`wU>^QQYQGYNR$ z!iPU8yOWL8M|F>3H6;%-nm)kltx*@g_9OpjdCK_hBhxjEbn2M;v8ff_92pPieeAET zK$=CU7m)`Ksqg0FNG#QrG>p8epO~^k{)P%p-0gvR1(7UW%Tvl>r09`e?0rJ&GqaL3 z&2eLU$~-V}pToL@XvTmaj~>Npt0gYn`fq;glbrNu!QX5~?lMAZ4nu*f`W~#7-XHg+ z#;X3^^n9763PlqH=d&c;hGotxxrS#)Sn7Am+YomnpPCPR7`Z%t>44S7#IY$W#tQ1< zt|z3i#bW@b-!UvTC>lIE=(^XO6D${zTlR+h7b`ny?vKbShPwrNqTy%e{xBG9?gXss zh%;V%7fU{+mss&@es1O|*>RK83rj`O#&S? zHSuNXU*uO6`xO{3wSp zbXTdB(KjWAp$Q%IuzLh6C7CdqwqN5QZCYxiU_U;tM#&!_X-&gdT)Iy^VCGox;ajB7 zfslVgbrSi=8ed$|kHy_zu(Xg?58M&|+Ek3oK<{{TI9Au-G3m2}I(dIQ(I!SfKH+&f zGvxelN|%_7cx(ceN-v#@(d8&DgZ27*8^-|5i^tCY*7Wf40eT~f`jzX!x|A43_rOpg z%@3MoJ6KC2w;aUFXV8ot$f^ko(cSTw`<-#k@fE zv&YyMSZed}IyXFI+#g(3-D|LPF1^X*n~B9!3wE~K327Jv6D(HlNAu~&@m!jt7+>n@ zosV@zP^O%@5vwg0USr0De=0M7VlA;WsclXVxfKwa9~XEW@EnSo8{E9P-`Nwm1sfEP zUi6P(JPt~Y4E+Z~tuB4^08%g`wH~H~k$*#ul>3=JJcszi&!$Av-YHm`nPg7gwv<|$ zrRxm5nbBgp}xfiMcIbRhUYwB(T`io6$e zle-(MWvO+_QBzSaA~dxl1qnZ?0yubJg)5fA4>f{jPpvJGO?ERrp2t#gcqcC&E?3^4+>A=3mv`)~D*YF{dE8?jLH_=k4J8=j6?RbL*cu*>RG^x-#Y(aZQgG@o32lNwoky5s%!O_< z=#Mq$ThhJC)+06zMe#w+f)8H8H7Vg>nj7aE)7J#~P>a~3SfwrSmp5UxLs2=wBmQWc zT8^O?CU8?F8R!BFpaa*eooKvC=My zeudIANSRW{2@Of+>E4HRyqe!*skcq%G^?A8bDoGtr(^Z^()OoDKPALk@=Kd?=QyDO zfi#&=k0A6KAs$8@ZWF6#oFD9vqc>pj&8nvZ*~|?3Ecz>QW^i8L`cCNjAhe3m*dWyK zTu0CIDDnnECiWvjd}xj~kneH_Wkz0Tz$p18E%G~@`fFOWHQ%Kk5~LZ$*Rb<~(BB9# zwK%TRO%(|)|jMWHK}I?XJ{3$Qdu!hVU%munTL zbECO@$LvX{wr3kt^*Npy-g=p?U*^i zQI?f{sMX=3pkBieP6FeA5{$Q;3+woQgVm7yAUDIR@I*Z=K}KH-nI0yR}mzaOhN-9AafR9Vpo?K!^AgFc&DBc|h^=fex|s`(<#HWu;pP z#18-+W!T@;kJp#Eh)aMHEw%gvtV66yJtc!fEc|s6YH*09b3qJrE_cBZusqofGS)In4DXIK(=K>qu~vWl3B` zf;rE!9^}cQ9;9c94vwi>zAK2ADSJJp__2J1r5 z!Jc1+i-LM~v=L$rgD%z{V?tP1~xt-*E_R=Pi6dV}DsYmNjKD z!{+nfutvU$UQ>bU!0wd+BfzAQ^x6gE3f1p-e$VtKJWp)9LsmY}QQ%V2hd zgYB}s+{!Cqb;OH`hF`M0&c<)F_9j?ISyuM1+W4(DUab6fSbopO@3ir7yf<5fR(%stf+eYQM&rpZYYsMtl;_lQ8A6J-4s@p znp?dktV67Hts@Lb1=4MVSav&Wi&bEI%N?vPmfjIo0i9t*b+vYPYxjVa-&NMW2G)6c zZ!G^p*G8BS3JkEqAj?Bw?cqnkDqsw(L#&aO4=bYrSf0AU#*3AHinYtKq++X=aybOY z|D&VriD@!PH{GTapN8#QTdW4%2Wydj3|9KbZM<0a5?IocR{twLo%jtl9yUuu8G-13 zO7MT!HszPC(Z4NFE!=2pE|y1Lg*8^+u>3Zxo_N>tPRk#_I{!mh=|6#W{-?bO==ih@ zD}&E$f-hl39pH~L(0h}0h-H6c`CF?8?Cs^E3^?}1*ceBtPHgI(4scO>Sb9KpNX!;W&x}u5Aa9lJtX7bu;L%q zkWt`KSYvn@tPG#liGJg5OaYCA6*hVutmLoQWb2iTRz#tjo?Ru$KK=HoaI4sBP`PVl4)|my^E=z^Xta zSUb8Furh3G^$b|Yf5XbB9qCok4)(mVEDv-+R|Si@*#v*ZO4!3@)YGQ>D^@{Q5wC)K z!^*f1tn>R@dm!8t`%YM6;U1WyCtp)4++OR5mZjp^> z0IP8qz&gsZPQ1{jyU50irQ838;=f`|j+UIKilx|mijo1bGHhiNq}l{xxjJEOu`H#Z=$s)!8*iBUkJ-% zH^L{ww<%uZF9=vx!rN`aJ7Hybx8*rHfkUixp5=S2E|xwQ)_FdxF3|t|p_}d{Hhw9r zLmZ6%vV!_(IT6a>Ih*jmVGXVqZTkO)m40)1Q@#R0fv>`Rs2%#rW>l8tx?j-M!e4Fr zBbI-&{D+M{1}nWoYm`0=t3l;p=@noN!ip7WzalEz1gF6K3!QGcHmotw09Hl~VP$YW zEY~)%b~78_99Djp+W1!1PKA|EdsydpvU-;y8|Z2i=ru|z=qgwR^tC*|>I1Dk1lA!| z`k}B~ItEq&<6u=J7gkFrz{>9i80UmaY<$sF0{jcz#vdiT6V`rYKCFxvDAKZ8@UTty z7_5w*vi5RV1wU`?RW^Pdtctt>E5G%y4l#qWD72k`GI|$o1Ru3rkJ6N31IvwIWpsh% zi(qBg80M7FrPgj?xh2fMP&$8{LnXHD%iO*p5nXHz# zDzMhk6Q9AJ_zbq}XR#U+Cq9Ec@fqxi&tNqZILdw&tDW(Q&tP$kd{g$bS2;?yb{;1_ zgALqp;xpJ2pTTN6aQyE-%MG5#{C6j6TYKU&ShMt${p?kamwnMyzxq2?fj=oEw}{hm`0wn%#ucQ&A2} z*(c?du-|+d%97zIbElzf2>YK&={o|Y<8+iwVSmnalvp;(&r-I8{dTvYtd_F)7L=`F z|3@h!MxtCj1Ld`_|L_cynxjynGg00M`@LqOY?HE5$`1TgA@XuV7T~fA4`3e8ri!!qirQlwapYe~Bl*uR!e3W1DkB_o{ za=4Pe(+_tKAHhHKQ0Co0n(6aM^Bew=(&a{!7V}a5z(4a*4olf5M>Sx@Kuv)_6`w=Smha`+BM!0$*g6l6@h)}Zx zA^HG9MZf0*2-_sAlu+4s9z>XQGeXvb2&eeZN@z3{q54AzRs76{5Ozt}BB82ZWf8*6 zX$S?25UTqdB&1A7Xz(yX4S)Q@2>T_xFX0UToJSDm-GVUv5ri}ScO-O~fzaYngxY?| zqX>s3?2}N(Z?+g=$xMW~ixJN8_e$t{D?-P|5bFE0A47=UhVZk527bol2&*M5ejMRE z|B!?cwOv+8A9A2zYJl&g!d)1^3Qo1Vcu+n z=}#l1`tL~SG6$i>GYDyZ$ukItCG3-s@S811SmGhfU5=39@0HN^9)yn1BDD8sKZ_8X zi}16Aj()~-2&*M5eh#6te@McJdl9aF9^o>7(ens3eT3)=gl>M%6$slTtdwxM@2o_a zG!G$bB|;DXSqY8iBUFC@p{Jku0>Ul{TO?fNS6PKHa{)rZDuk>34H8oBLujxXp^ra) zHNt)g?@Q?CpR)#G-u(#E*C6!w-;vN|Awr9_2m}0*wFrkL?2~Z4-|R(%B@ZCXeGwtk z-z%Z-g9sg8LKx!DehDG=5W>$Aviyv72&*M5UWYK;KO|wqB8017M#%OTy^K)vVT9-_ z2&4R-uOMubuu{Sp-&v0^=@Epi^$27AXC*Xx6ruVCgz`eHCG-IG}DXtBdr(bh zX`G2NKjKf$M49&-${s2AMf?i}qjY&5W!7Mng%STFDTk$`4MBM@;@>s|WyuPZgHjgZ zo01z9MorTih~@rd7b7|MuMD9eVSERFa_rPN%F zGGI8$lM(-k;V9drR33q{EaG1~0%g(~lyy>`iTEdFqcmEJGA0}4S^Ohqmz3HgQJ%*? zBT;6)h_XY@y{5PE-$0Z8iTS9 z|42D3B`pW#75tNfvg8$%gHkr&pRp)?*P|>Pi?Rv-NQrGgxqKYT7W^{~Wwn$)q-@1M z<55OzL|HZ-u z`RXhmdKAy`EAI;5?hN$j?+W*iuHh?&?(zIqC~561{a4!@C-dDxouVf~BQr;31)4wm z?t9I`TSF9MVdmDB3_r4LnxN`2;(WCWW zBJV~zMQ@i*sK9e_GIPf2KP*3RyZIlGRbW=$;DYSYLqiwdp%w=vsKs{#jmgi`f4)3q z)aX?`e+sX1q607HMBn)}{D`7`Iixxc3I5~Qp!RuVb6Sw;Oa41-x1v)Y=9fuIK2^z2 z8fpGx`OrTe^^g4$e%DF&-}yCMHQHinD0I5}`0^Ovr7gY>KB;WWRl9uU zH@9sh7G1iXXch5RP@Cw&xBe-4ImfU2X}FyKgBv;Pj5k=wl%;B#{GW#J->vg$_D?~= zRcBRv486Ja4Z;xuSBBf)#E?v zJ>Kx^oK=;cjBIIie880*eE;8s%LR4#xS^?uI%2Sb*Hk^Ju6|F-@z7WP-VY;bwU7O2 z4r%&Pu|6ghbPVt_c15Zd4YaaO)HgeHTyHhm(Lf1>23bwEz7wq@(`x!kvA$rhV=x;3 zf-mjPw^|m0dYdm5hZb0ExH-2d_@=gNOBrFr;N!}QR?D_0tI%5r>lkIz>1)Yztv1?f z`XSj=tLX>QYOj7`P(oM@%7IlG{j9Zfn3<$woE7yQ=WdGS$h9Zy*Fq{tN1k7@J5n{O zA6$q1`MV?M=^KQ>&;E3#jza$(QdFL7GpvDB)jza5QYT1x2Bst(MgBP-(E-J_m@|sB&{|WXnms}WUEbQgX_`c+gojZbqHtLbhlZpE?Sn=ZZ}#{=p4jh zR=mR|tcNz-W;hE?1=j~tY`VK_x^vNrt#-H78laU}ZMM}KqTOt@IaWIlZCccR$nROP z5#n^4@E)t3k9LdI)Z41e1z?8N^fPpI!-ZfLn!GU2rn`u+eo3KYfla4hRp=*&`d;~c zde4wDYyvK_87{O5H8>uyCqID3zu@P54_a-J)%2zHN3HfKn)1^Z*B`f9@^|sPSu#|` zmXZ8ze9@(dr&&=ylvhi%cS}Vfit@gA%SKpxLSH#Bu%dMD-xQVci=j_RC2+PHq1J7Gc?>y@XG_h7#EuHXH zG+i@crPUII`^p_0FIcTD;h|PrrB@!P#TnoepkuX7*pBe05;)datv%t-fF|Wyt92mU zk_`20;TNsek?(Eq(&i=AJks3wy2y4)0+9~Z@fkr1> zjZtF7w-ME-Ye4chw0d)a3ho0s+Tr@1)%v1!w%Sgs^+VIIz;wKCwQC7aK&t~M-+a)Y z@NB(br7i)z20?{f2lR%6dhjl*4IsSVYP+pA5bX+E$VXPY9<2e;@v+qg5pF1fL$6p+ z8JQsYi@~BjRve6YvCZ&rRvUt*pBUDM|Bfcl3^bT^8Z9td@LD!!WdQKx>^E zq=JWo(@Cdg?JJXCk=_p)`V$vwT{~b4$tD~uW>E5d4kHQQWnKNP&2SXj-Bvqj&mE06 z+iH5r1OGx}z{R=-bNpz}%^}=e|54XP1b(vOSi(KDI&%EOYHG!#K;gHmRvV992(+&K zVzpet>Qf!RS}l*T2CJ5^!&cJ{?svjEjwBc10u0BlQ@`1S6VS?`X}!`3a^Xav(X8d_ z538wi$yd@GLsK`Ya<3_%gFKLf*8py}S_Dn`72Uv}8Hfp`v*L|}^*z_NaMWs32q)hI zSKewjp(S6yRUw%n+Fi<-BWAT?!ntUjVApCTgn4IIC;g{2p_8n5GvTTfti?rN-cmkO zL1i=@m8>?6@Uym%%4ocp^D{OSQf>jy+o)4*@)>9=tX2h0&X@`GdNr*@)zCCzZUre; zJHwuP8(M3t)w0^{XkCDooinX=2h9oUjTXGSL*>l^cQD|!#MHJ4?S>4zsTtK+0 z)sk-~xeqOZrkSocmGCckFXS$~pjmy1J$E7D-PSXgTI~U}hRkNo>K0aekZ_TH9H?on zH=C$+4}r-*GdOOwMT9@4#X3@~_Aue(OE_Ag$^DN2RYJ2h)uwxta8<&ZtZl5en6MUV zCT3Ca3KbRn7|=_nbfnvaj}u;DwFH`iOTaFxW!Q8}(e_%coze3@TV{h)uTzZEuu697C=4D&gf;OTGnXE1KqoCe1LLZX4mxso)}bI9l*t zjMp%3!_bj@RnF^#Z%2C=9%WB{gRowl_82_cYTF6x4p!rNjMa7!?t`ZBoMW{&315Mx zu{+jk+VgeNWl-Z(@7$3$-v*bUX`E{NF6|wl_ik$Z=^Z@M-UY7`(6GuwlegXjdIzG0 zmEO&xbUVS@1T-=xSnYknI#(m3Xrev&1B}YJdJ|k|6Mjf|lXdH4tL;KtZM7S$wi`_g ztlWE})jlGu1y-8AgR07W3>FiX$8R!P|KJv2A%>13n{W?d)le-eMpNtl1~j--*v&TG z-w8iRSho>Vt@gGySR9`o@n1d=Y3P4?Aky?~J*t=o^msy#Bkluw0-+}k(<6S9uOrP{ zdz`2HPu*|c3#J0S;jlC40xknxfgTpL1sR|ns1))SaDGuO3Oy6(PJIy2o%mod1Pleb z3)fBe2#^g%f>B^J7z1*^STG*sf;>pqulX0I%063hv5v7p}YR zsbCt=jkRv1b>n<1xDDJ6?f|+;-U_yX*TC!G4X_>T0B?e~z}w&*@Gf`{>;&(F55R|D z7ua3C5-(&S@G80z{B7Xpd0GN z;4$!cdH3x@}K+9%tpmkg8^nLXB{Xh=`bn~y z3?X8^s8NB3+F&?|m^0pEac!9nmH_yHUOx{uR+o9@%*fF?0>f7T41U4adtSAjhz zSPwRUjbIbl47Px+;5DH4ODqMC0^PSw26#0raa5ZPc_e(~}TA(bxuF15?O%J(xmR7uU-PUjd#bzpehELy;Q&^h3QTz*9gk zR(%w_LXwBzVlWlx4YSk1Euawa>e^tNt`}Ng0vdoipe{HE)C1-H%pZBM6eXw|#t4{C zwhMr67Hn)Kg* zZ-MR!p99AmDjNc%e48(=#afPRh61HHgi<(bmG3FxWBcVG|DW0k*y&Yav1v_d2N{50gI9p= zt!BWrC-Wx_q=P!3DQE_ogGT=Be?+RDelo#RfbPHbtl%W@10U4>BXaftJ&DtuNe{}o z9t;ARU@*|Fm2Rc#ljdB|0O%FFx|RAEd;<1>Pr+XB8TcIR17Ct~{1!h)E_4q2nLkI) z>=@!~-Qz^StHds(1l`~0RSA{BsbDF%2h0Wc0w2r+^T7gezrW$n>S$#d;2UHRuIef%2dxl{*7eqLF$(cnJOh)*k&LxGxp%2R2ZFjk?TjBJeDD z9;^VXfcDXAz!C~s3Z4QknV$qIg8Q+xHP!=G{(qd{KLDr=SLU2KXg7lra0Z25k2W04 z0*%0>KySX%XA1o_CkB93WTxl((?Cy7>J7#a&INjo{~7kBupX@sq@Y2d9$`Hf*AL_M zEc`9f=q5mSE%$(FAeq-$gzJJS6spI~C19q)h5VTSW|P5KSa%D$JJ3Vc#hh>hzrir0g@lfjGF zdeWAn2Sj?5ri|rsaThR$O6deWDVqg)(W-8sE0}~m5vU@%?a>qB>##eJzAZ=)P6tU( zUO-q6ug(T_KwU7NbT#0b>I*%b(!;0-*hc{$f?ePN@Hlu9=;4y?nQODwP3B}(?mD0f zUxJ4&1yzA`J^Oi%$~_Oh00+P?;2oe!3*~6EUhiLYAAfX`pv)=~siz@&(xE3CdXk|B z7kW^!8Ki-9kN|Cgo>J(kgq}hukM3YL4Y`U+_W)M{JumNso&c?gOM0!LUbA){LL+cK zs0idvC8$PNPaUG5Jg5NvMrI!Yc|xz-Qh}e7Ru2Sb13h|^ribx*Ag~Io1|zU_OieN zl}d{%!zTkZ@N*jQ0#F0K)J90tZ80@}5~zm%4o%23SpgMZwn8ds3z@zMlI~SL50Yo{ z992ZxsYeNLv^|S$-ueTPbHg`8RyFxOQm@+Ox{m7^{WhR|*?y8OhL?d}gjM8|gr~u} zrD_R325YaNeM2*#4ct<&#DAwox$}y&m(%`L*Ri!AkMJ5;ee(j)g-36}*VR)aRwGwe z(`Uf{rr2jm-=4hH-;>F6GfZC>1x?oL_16IniWrfbV7WqrU_ICXq;IjT@K(Y~qxRd( zO7m(;L5fqF9DJswT8+zwhXciRC66guV1^**k~;v_9i&=+IpJbXlD`yWeci|9p}VKa78eLbSJ^uXegWs)J>;hp8`$=RX|lx9aIClWf9IN z+z^}rY69&)Yk_mLz|;kGfL6G(z$7v~6FwVEMzTEB!-jjoR{?D}dxL9$E-JN1cO5(!JWqP%rJKFc#=((!C&`a30W;q7oo3z*a$Zz+}Q7(g4}II?Tq_)j|7yttr#tS>R4E z6HEn~Wi#NSTlk}`aIp+91>6L5(ln4vEbV5XcuhfNkj(fFn@(wz&+XtgaO?lo-gie; zb!`9NdpTfNFjOyyh=qtC7r0_!n4TWnacB4UXeMX+ugV(*GrV@Xi#1{JYk zK{V0CF80Lw`|LC4a8b~g_uhA{-#^c_#+h?w&z{|8&z^EFNbyJv#{{aK$KhFliI#zs zt9KtRp&|q6EK)ksL8Q}2Cy`Dd9Y;Ebl!9~==@+B}NJo%GWHX*beNq~%BnNK23wAraDCq&Z06LkhEz&qw0+ z{LD!$FHqhs%u}~G4=lsYW07+srbunL4CTZ;&+2N|ekfy8Z8g7Zpj7wccGU?kiT z>qr%;s&|HAU8{ufb6!I8N=>a}DX3CmgZ%}G`%v4l(dX))Eu8__nps?VJL31;hz*gE z^E1ORGUkS14m z)4E>)%kLOZ-Zp7?=C-Gh-(dY`qi`K53+W2d863qXnZq!N`Jeg=CR`;jA92y>n2qEA#+&{7#L4<+5uQV0v8#GL zuaqw+`9&q?dKUF%B(+T@$|^k9bGn9i%6i7FS5*H@hyRTVq5ps4 z^O>W(#`mdF!jfe}{wGGv(pGWp55NQaWEKw(6Lk!$K3fIMYw?4zFyw#hUQ=XQsS+(K zEBUr;j~7KT{Z?N3uHK?yDd?v~oFMo%wKtdW?jB7hk4 zp!cb%rSF$7tm_{(EPUuNgd7y$EcxJ@t_Wm$-mPNX@h?{|+v{XDL8tBN8~}`-h8mu}@^M-*)YzPGxn^(PuQh56o(4bk{y{?}%Srb5 zSToi~a?pBGP&s7vs53HsdqfMB&}{VVZ@Swwd3F)ayg@U1jG{P(n@;P?fxyL-#ZRl~ z6+b1By9=^Z3Pq;3K!n0w&#Klbw$jdk8o*KA)8OT4^s=JO4ChEUT_ksHRVq01K4cg;F2&JTUt1mM0xOubQKgPKwf4?T?w+E-U7~pvbB`VPrK>#rWkn87rI!>)CpeI2QKL4ByaBT?1 zw3n>uR0Zi<{H0hI7L)~9T|(B9#{4BY=pGiO!4)NYePJkz^;PZsk1t0TK7U!E%$LuH zWOzl);z@U>7(J~hd22UN#Y&*+CrF0{RIY4K+olue&Xia{H9WE7p|mzoY$bGBlh#&} zV)U;d11o^9>KPifB4p6FGMBQX3se2dQgf{}&8iG=C)$Wip9t-+)Sl#2Oj+UMcM9O% z5DKtwrfdK>CRmE@OW6L^DQCuwC;&ia7yz2PmUN?!WMd8iKD8uIH*op^z>KZosCtX` z9c)-a2Cl&(o=ahFklAu_>4nZWP{aUa@=G<-0m*we@NGwiuTfcvf;sb}QyIt_Q8Yib zCG9z6eM!&RNILa3I66%FD#)hL*(%`ZJr;gtKtp8U?9p}pZYAloOfPQ`*;4`l6gV|2 zNB7a#FU?*I5`B5I#MaAvZ_AV$jGlg)Yp7vg61T8%pQri_)lj1hpWF5{&>aLv&~kU+ z9Z#+QlpN^1yHrNofF8Sp-EeZPimWoV=gfzuR|SCqjsl_W+>XVEP8pU4gg#;{G@_KM zV5BXT@Bnx>3gWCUo%ILy;bi3r?CU(FGWuu*L)&u?DvTav*%26c1cJv@%JKm4M{V%+ zddu19Hx38!Y=#edc50hd`v8x@>Z0F86bjs;3tMNPnTQn^59IC<6$0uOE5(k12PJAU z%F-53sh7fw)}E?WlN^i{$_c%1oWA^r2_;_j1Uw5JdiO?+H84f2$=F@v3*0tdnlj=Ivh&vYoOIQnqEWd zt?!HqOMp-BIX8L#l@r+tPk8%1m8c2uF;uxGz<;35oTX75Ui#Gs&)iACvjfQ|EsZ=> z{Lu+morW5At5OH=Hm58$96=519yM2e=z2{^b~ahn0$w|EuO&4%=I@_H%6sLR_>VO= zrO?+)o3Grq7ML(PJZoV84S#nXy2p7CW;}e{~v+}F>U$xj#=uM~$D39p({#3WQ zxmioXw&w3?UTNqeQ`{)CMSy4;?tlhb$VD&`o*pha- z3nO(}pk{tFBdIw9>;pwS96F{vGGB82p&Pna9FV{O569-9_e3nk?q%lkZEfF0ooTDn zD!y5>hRy^)fwJ4QB_Dj^i=TdIT?aIT(D%sned}N|l11^`fgxs&!v-iEVq%*_i40IW zP)L2kk`D`dnRQ?KoMkKFk=-d!+N*FqpTmk_%gKBYB zngZ)0TS0^PX*7haPtfWO zR{@17I6Y`>T^Q}qdcrTPs&ak$@TOlk16|5IBYIO2s-!5?Dx`c&pWs;cvH{%)0tp3( zriQ0C4_X=Ut3r?>{>>qeda$YI8fsDxb4DUrwS~OaH577f`lHRv;uBJEGY0YkWmu-u z@AVMEyay}nnW{HC`N(^58CZw#pGM6@imnd_8{0^D;GbrV&91j>M7)W!g>(u4+DOti zfKaW{QY!`6lxxkCr- zQ964Ah(v^;El&4=_6t5FpBJ3kPzw1!@PZEbHJ23jiNg97Zx91xCG%5X=Y>0 zHNq|Gn*?Jo9(+0k6xI0^8dVg0dU+xSU}u`u7%UA3fF%IN#cfY>E?K6$EFv#9t;uB7 z1Rc*K_a>0E%E6No>nO2vD)}@6Bf?AM3erb!{f)5EU2CGcCOP(7 zDzk(|mQhol&S2WnR|5e1$37O<{&ecK*^;A7AKAs$CbM9SVRe#g6%6_JC6_zsTf}gR zW(tntV0SnZ;XW|Q`Dv=r!~Yi9A^JJQL{A=8g;B7}hClaqEK*%e4R0?s(=}{!dMa2} zA~nUS7r-<0j3@>BsC2M725x?#m;gAWpvV@IFM@;o1m(`$)yShIBqbxXr7kU{?~UaZ zQ4eW%Cem)pC7}yLb<8SX>JJ3jnfYsKlU*yRx$d_%RI&{`Y9K|oLTD2L-_HXfaiQOf zRTtbapJTuqFxzS-p{62goT7J{JC`~Ujv6cy**le{v#llTaz4DAX&NLvRO9hEnLx?sOzPXdeSG6z~;$KJ18DF8B<=cWzWxJnnk`egws;Yq5#Mjg4 z3FVBX1mM)qKvOJn#t&Li#3!ZY#=>$_d3Kk3`*ea)UYcf>fjoy4h(z{89CeCi9Q0s+eaK0NPiX^UXwS{qoMn0&Ck z;@%dc;YKIwhAPJwI2UE-5gs@G_OrPM+Q>L$&#yqJNQ`qZYjNZhHE?*3&8OX50m&gC zsCy257DLTPfwVl1o6;Lhcv>&AX(#m-6kzq;PIA_^qhx+Hj~v>={j8+soXHys4!XPF z(USIX;D})GmI;tLNF!Z6Lgj<7@xjR1nU1lq^}6qrHoYvhYE2xubVPTHX-@}W6Hofe z-30iZbw8H6c+q08PHTrZ?BoT2?q)Zt-4UXAhS%(91J~Sr>s@x>3oyw0Cosu(-Dof% zjGuvkz~^Br&I)aZG~4s2YNp3VlW^A1&mBQbS$e{xxlyrBcrsF8Cpk8Y?F2ne=pp1+ z_2h*Io72BS{Diqdjs|1tAOJ9bU*%TIs8naP+DctI77t7mMs2eIfh3I|rHudG;`;G2fwmDN6bd*rw14e$vxB zeyU7%UC@(}!nuqVsz(uBN~Te`!tWV#)&kM*WIdO1usJ%C6{O?x0}+%`~bpUi4=Ze)=0 z{5eIHm`>9uxd*`AD7H5o1a^PA4U$6e!!bbvSq3qIe4Hi)=2n4hKFo>mLp?TsT;G#+=<#;};gb&07x~D!{eA9!$%I zz=s#q&RbiO5`hLQFvhK7`xy4)-6vYmPqLGsMnQnmQfWc^dr4&+yA2hx*f;WC>&!;) z0!?Nu_P*@3-jqBTCR~4*;C1@(am6m3y8cEG%|@aS+k%$&2V6J6vAc;`b*S_eDYmwP z5W@RJs>{i05ZE|1j4bh@`EN7#uev z$?U#*M5PhIL(zc|8@4-`no0$j&44N`@7696cbf4k8M~Dg8HM-H)&mNSs zmI*TQJk*4op><Y<9XzY#?!}`0F_PK>SQ$^2onLv)6l)JE#?8k)?85FU~=my1)ID2Jpix- zfLYrSKmIY_@udQQ`9v1Ct%R+J6I5a#1Sw;deTeK$9E4MmeGJp2JUV`cG<2ytqmPHp zm&dQ{y*_ThLg3+{3~Q}0Zp9_&U&Aw5gP{wK2d;g)tWT}nkwc_hRH=lVOLBXS%fKyPq!;iD8Rj`rikRK2y>l>s9s?_&SX zBQ?K&9ZIE!LpNd|Dzw|M(iD7(IhZ(RRjE9xo=K%w{}iUcqxL~kz;f%IZFxgSaqIE) zWGH6Y&!01h{;0z+g(sXjFd0HBD(7lPf?M0N&_%&cnWqxLnz2AfAxAt_CWx@Xu~AIq zolKpxN!2H)3rj`VsoJ@Cw55Z?B_~+|CavjIpQDrs0=UX~t-HH>+uasaoqNuC8k} zdNClp#U`r-r2x6n5da+Km$9j6732DC8lw=WByOmI5s#m`Z%u~%h_h8qHPxxa7;qg- zL1Vym2z5rL@2G&++BMnZ_ng620QbZG0cZ)MIDqT>Dgdv>oh-C+-`Oz$Q1&iIQ5GYb zL9fP0cOjjdV}ZRh*+fBP;%Je!Mqx?QhTcsCTvz%K1jLtU(r zy)+Y0!(#cSPP)6Jlhs;N%>rsZ4zz9p08c|p^rPE=zyDd!sJ*hPSU_swA+)Sm5?zV4>lybIyX@Xlpi2(51q4YFW+SDi1 zs^&-&z%ixioLUcD`^7GrYO1*!OOK*qAP*IY<1fcMk6qPvjtN3bF5^LjHPu3<|Mc#G zb?&CGfd(-^gLz_b(5>5%SFTN;p_32kdD+l{R*sk4i*yA53w@A_n$A!JSBR;+nYh1c=sNg zR~&KFqk}P0jPB)pYA^xO`)Haq0ULA^v7yRiypJ(-O|_~IdFhP+hKW_q0}9}`PJl0t zp^Z3lTs{ZKDwQWn&VJ`e?5ouJam6)nm%k6n6w7O+9Mo8$htXG^Ez^2BAFn9U0yH zGAMh^p=Gz{>a@z4sb&VX1b}fb06YOOqVOR%kGOgBO#pXLQvo%9O=wqo_r?9&O*O?S zfpL2+#eI1I)Oa&@%mIg^HyJ?QgTc=-o@E+#l1nV$QUJ%6qUrU^;fL`N*JP>6+7Ys^ z>5Y94&3Qnvf4bjq%nwCs`XvI&-xD=P%`McppvHG>?1HCbw_O)Cym4nv1AagU6%vI* zZ~R;ThE)#k-eYR&P0IlQM{PAtvZ3@JBuU=_z#Pq%`D?(#^}*$Nt)cYOg_3^+a9=7i zMQVsMu9j1zTH1XyeF|R6YIV?ETt)|`K-q%ua{q$xG%7I_IsLM z=#kB;Fa-esfp}-m6k-J#_{DR$NQERhvoXhxGY%-gii4=Ip}Nx~Ng>7p7>x*Sz_6W} z7gP{4U4?VdWv!wu(?E9|9h-*jhLeYtgF7wP`S@YPE*5_hSxG-~S58D{t}-JOnYfWqs=`0$zCWAwpQz~5~0>I9osvX60Rc~55 z6HEltfMw7*4xA!6-Tq;;8iYdqfK$xP>~(6gWtOC z;&Ruo+nt*Q_G>y(6|RrwG-}+?VWo1m{?23D@_Jh~VIR%Q?c^B`B^IW}@#w&2hZx1O z9okTQJnU1kUOtD}LP_y(I!6G-GkWpa4ck~v%51F5JubPb)C3$Y?DlQpV>?YXd9cXH z`Ct|fz6%*;QH4+!dhGh{2ls3P_wQA4l$tSJZjkb zhAm56v276|vrD zdHIEmcK1wt>uP&w^fkKUKj>!5IZy{;dcwr$%6+CWcc{!x6=n4o9MFW1H92 zX?NodM?rreFOPg{c}L%O5b@ zgaQGe?L+~~0T%%{4hVI|a|^2;-{L6a^T9O(jeP&YmR2strK>Uc`zerUEP#1}8rI}Y zms>+@9|>TV|9Yyw1Y;zHMl6xsU5^8fR{;4npw=iFFk&Ls^rh@2AV_#xxZ$r73RE6W zlKte1QWTbe6BP|-wv?TK`yTQ1E&;r3I4WfGZo&49L(6}Br_*9HkRwlQeHoTw{W+7O zm!c;DPPdXJ8wy=2nd{ykqtiPIz`Yt}lJ*3TfC`Y4OKbNXaV$?q}0!3dw-1 z{>{sqja+fXk}aj+`#?Ka_3fts!I3=H3menPG7E^$pO;$v zo4jMwy2M3TkbE@d;5hG`*adI7vbOa##|*4Vsz9pzZ|ymXzbM)J9Rmc1Lk>wlIG_D? zY8MkkI%;@u{Nz4tLh+<>aII=v_w#feZS?`?#aLhTc>JNIL-t`kp+YE^8ARsz`93;b zpl+A2NFQ)PV0ziK=DK>PYGG}vV#?n~S4fEe3FP`s7sXOxeW%vbtZr|_sgBz8BO;)! z`B0Yb*g5jbg!I2CnQ@ueTKGKG>E~!0a45Lg5E!-J)J(A|*y_In3;M4YFG)_qIjd&kl$uJ^BSgYrr+KEN7q3O@&#HSd@q9z@X=&tskG>h^+^@g51u=onT$Xw}_Hq|G-u7&h;a0IUEbHKl z0{H z0Hu7m&<~_B@z$eT?@ow&$Y=T9p1yp?W8`J>ybkUEaGAOzcdT+n1a5bS8hg4#oU6j8 z#d2JusdI(4UWd)KxI!nn#jGpz{yJPz1O;bsT?^FgB7T^% zc)^@M24Mv~4!rTM$&M>@8f|r{SLjYQP@lO%jyK@z#R0Inp@!zSE7S^abPujjzZ+N) z$XCUz%gHXh1@N*>jcxv5;QT^=WBraEc_$DjR=8KzTh}>@4*UiW^vzAFMef7in^?al z(Bqq+{dN{r_zlcI$`Y80>$YVM>AZ$@tW5KO7{U%;>C4ZOf zogQV2QRDmD&<*C1e}#)XP9R(JSGI=g|1KF+WM0a!Svej8 z06X1Z0!HugYw3x*G^#hdW>3m(uuvi9Hl(8AaLmFj$9=#RxPd2kle>X8 z=01YQ%9I3f9CV)Gr*L|QOh4?I5bF=&@f(IkZmfw;ys#Sy8Z9XJ0pPqS8l)Nv_~wU+ z0o;GeWi+magAE_`Tc3q=|Doh#_SGwV0`y3-b8>zq*e~*7R${kdH?^RQjT$b(4IphF zNzuw}OnUT4D(&hGaJG*~?Ag>bS!(hq5qA?UAU~JCG!*z)vU5Cy8HRxi zPpe-jd*zA%r4MkW+&YBNray+z#1|*Ztx;ovpN)Vx?1eNFBRwcIu(7mp@nawq=O(I^ zDi`WMxqpLRMuzo^WD zOiRf(h~b||!Dh}VBs~GUqXEn8Rx4GwyYsB=_W%ola!3n*?DZ6WSbPcM3?Duju-1UB z6IH_Y_aVD^&z!vt))NBO+iccb4TV32hq{8o!l%-9EMuBKgIT-c!@a)GP+>qJ;h7Zd zp9X|%%5A$n`0zSDjE}H!zl=@!!v`_=d(PO^uJ5&_yyQ__7dLi(F4-9iY%K5IAI8s+ za5S>7MoNRQh<%vCRB4Otdz$ndA?|4nEqe~$WN%_y7Nit7{o%`x`SG( z{Q{E}{`TA87nlb{fc8mbrr&9%l{Yxn>~xRvsFKn^=0qNb78LjrOZubulVUG{Mg-FK zj{L(-ER^Df)~)F3d-NwXz|BeC%7@QPeTj}_S8YobUrA2->k9fik)_RFM{JXKejq~T zhPu4MFp`f29dIEIpU&U}^_67fdQ-w*TS5={zoU7q)a3t;Mjrsr&6D?q;PKBj*KZ>_ zmff1{5%PSLhrdKv3Ja(&9yao6q|@iuQBN(jl>C=u=kfW4RMA30!w)Ba8`;z`SE@b;R?tgt#h(i8G$QueMo}T_J_SVZa`}%2F^m05lun>(0gkS!-lZ_bxi6#nd zEzx%6VC!R%Q>J6fLHWc;6I+N{y_Rfh7`(ie0*I%#k-M&4$jmO!w{q~U2M_pUrRI32 zKW=q8-4zoCFA^E?;X>s28pK@&1RpwVyxjZVfWM|Yqb)9(a$C_sh)yBWF+Y*=kOMLS zX|HQpgdPB=?s6frc!L=YEvVKTDcG@WF`?-NZKNFXNISf{Iavx3EhCMZASUhZdq4Z$XXdLjHacy&T|I z0+)?5xcm${7%tG2d?(ra55+Gc@-Xf*bjyd=r8f4(5uh^BMWKcbINfO7rsK8eh4{WZ z&#~T`YbCUF@Hpb6mnf84fkLs8S_=Ca6NhU_p{!cB${seGlzoO(;^)uW@&m}M{Q#*C z5EtOB^R7mz`b!q4n?QOp2&4NEg(RReTaQA@K@<+5kj+*1Pj9Xb|YtNB6BD9fL+^p_u8_)+dD+}$);+8o_N*&x_;#k%y zYfM3BXLi62hM5FeZP_4|@rPB(i-9&hZJ)lV>dT+vE0G!uLq1J=Anoq>)Xdt-M0YMK z)f}9l2)X~~&*vsLo%Z8orGJcP2YW3w-)K^K@E2eet1x`Q22^&O9C1{jhg6?gM9hgV z9L7$ZLnj!tDmN3yu?|{F+?3aF{yCaln>VTU3kp$2TkZ(^2exD9gwZ8m;;dd@t9|*h zykufU893JDo-8>zjn)fQ9rM_G^Ou;T%S>>evTUMN9skPk{>Tt=$FSNBy93oa)FB$I zItw@#WjvS!%YI?rR*b(~OU^ZoXeW3*3?6mx%RKm-a41eDuch13)?}%L30JO?K0lrd z!jjt~v%?-IVH;GhB2$UaBO;aNe{Gq<^~f$!HGPxYghf&Sd-Yt0pX=xI`djYp$uY@5 z7k40xSD(z($)S1KxVpAi_V;Y+}cD`K`|dFLX`OGJL;n*m>JA8n5IG!GJV5UwlEDcB zOj$%Uts}6aM^la$e`AOk-ahnZ` zWZAb?$8WAXV?@VoZx%l9*sE$T7BwnqcmDjLkS4rvK3mwohG@9 z)y;!lMN4ag2WU(lBiDQgAojr0b9R94+Pf~dO(3~WMfC>%#FzXhjhwI=lWFjc%&0o^ zSYSu|q?ED>%kOPe!vDAC`j6IJhFmXgn%4du{i@>s2Xov1&nYc;2&?p(xXoQi=PrF! z{&S-tbs;7~Ejh5_z_{}njOzRdbDOJ^WwF0rOW4!F&uYArNbhA)hN9m|Ut?z`eCXh? zAw$D8Y4z&tebcz}ftA(7(ctkPx4k{os`Z-fc;>y0--k`;YuU5u)t~9|JKWn(rN2ey z@LqC`4r?a%W#{d3+G;yxYsLP`^Qb+$+*+sQWRAcy?{BrJ*Z%a7)EaR=DD~Bg)L5}% zV?)nbO8wTX5nly0(4Sa_XWlmHUq0S;+`;cxY{7GBJkyi|tB)reP9MNCpK@%-c(inL zXcgB37x99(eA4b_r;h18=j44n^VVdWUTwZBI%!Ah^JaAAy;Mi{Fqq1Gkm^J~3>KU1 zld2ojv?EKt*JcW?%MLr)x28?yc~*F~Li-C(o((zV*Ch7SJ-|=v%LAVK-|YBZ%~O`s zkNYdnKUvxrOLub_(+kISMNvO}T!+9puB$r_8H^Xq;fE!sJs-zAJQ=3|q=avEvH0~? z&QzuT_Zwj|_tfc?JRi?|I`I3YHv3!kn$dp+o-Ogb+IgP&q^}!}Socn-H_CmUxA~Zz zH_S($+TG=``L^m*y{oyNa*CN3qLPozThh;`&Fy!Wa { + const door = c.req.query().door; + if (!door) { + return c.json({ + err: "Must specify a door", + }, 400); + } + + const client = ddb.createDDBClient(Bun.env); + const config = await client.send(ddb.getDoorConfigCommand(door)); + + if (!config.Item) { + return c.json({ + err: "This buzzer is not registered properly", + }, 404); + } + return await client.send(ddb.getLockStatusCommand(door)) + .then(async (lock) => { + const status = ddb.isLockOpen(lock) ? "OPEN": "CLOSED"; + return c.json({ + id: door, + status, + }); + }).catch((e) => { + console.log(e); + return c.json({ + err: e, + }, 500); + }); +}); + +serve({ + fetch: app.fetch, +}); diff --git a/packages/doorman-homeassistant/tsconfig.json b/packages/doorman-homeassistant/tsconfig.json new file mode 100644 index 0000000..238655f --- /dev/null +++ b/packages/doorman-homeassistant/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + // Enable latest features + "lib": ["ESNext", "DOM"], + "target": "ESNext", + "module": "ESNext", + "moduleDetection": "force", + "jsx": "react-jsx", + "allowJs": true, + + // Bundler mode + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "noEmit": true, + + // Best practices + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false + } +}