From 48a629b144bfc369adeb54f48de86a929a68068e Mon Sep 17 00:00:00 2001 From: fabia Date: Thu, 11 Dec 2025 14:05:24 +0100 Subject: [PATCH] Import Tachymeter fertig --- Campusnetz.db | Bin 98304 -> 106496 bytes Campusnetz.ipynb | 72 ++++++++++++++------ Import.py | 166 ++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 216 insertions(+), 22 deletions(-) diff --git a/Campusnetz.db b/Campusnetz.db index 813c474644d92826b52a2e609d0360cb50ef8b0d..d4d8628bee87248d0f9554a9e2c15284b307b692 100644 GIT binary patch literal 106496 zcmeFa2UJu^w>C`9&}PgcDx#tinxq1Sq8Lyya@vf7hyg(`N4mkBbIv)8Ip;BlF^5sd zoO2Fi7{90LK%e5BGw+@1@Bi2O?pko~+jDfLo-X#@Ri|q2{p{VWNmOE5yj$m)3FJy3R|5Y_B%p6+W$Rj|jCrPIT5QMe@%55Y(|Yyp5ucRC zKU&vnT06XXZMWv(HKS^~asQ2{gWJFON#sBy-0C%IUOTdOQ?GwDG_8NKTl3mdb5CDy z?+X8JNK$N%c+oMn8aHazylFV5=9b*8J@*T`MK`V2FubYGtwC*_n`e$+q{6@Y1u6`; zx3qOFU*3F76DHuA@jW}ncIuMWJ1HSPDaRkIatJxczxsD#?#M&e6BINzI5nYH@8slo zQH12)N!`+tdiUrN->ZFUmezd!tY~_K^Ogd#HV4-y%J@$xHW3guy)gW zwLF8o+yefk&7~An3@)wG=N9Z{>%Bq#iqq4{@*VI#R%h* za;^l;*0pqL^N~f^T4)rXHh?KUUU{;}u?m#Gcl)nvfHNO?>HklL zmlPY{CB7FHVZZj>yBH-L?B(}A2-rBTKR+(;-;W!>j|=+u{kgq@-`+=grgwRI zzc+KXC}vjOyp);dl4g#kji!XlEtdr@9b8H~-*aB#9Oqol>5{Md>}pXlfw7(VUCoi4R7+$Gc}Z#;&7S`jdAYDgeIJdliUI858) z$Q3f{R;Om4&s-zYOQ%iKp5DXo<#}%n?-TB}@pJbrcPi2m;X zIQfuZ{#&$U^!;gDQ=e@nvnFq7;Tt;$lZ>x)@lY(j<+n2_BLgwXJLchYw%}WCHI6N{ zG$e>0?oY;EJT6Ok-?xHWQ=b#*=GoQ1&CkH_?OyhWS7G?WBX2B=WB8L_H_mQvbCsXu zKZ+tf#JR4ntvaK;jd@q zOC21d<%b86anFnQo!zYonSH)8^w5?_uRO~-_OrzBHM7$Se8KR(nSm=iV)%yuUB9~_ ze*ExYGXA8~5DXx*Phb61sp}IW{XDwj^}J0Oz9{WO?N=C{*=hF7IvD;X+1B%Gh%Z0f zpNuJTs(CceE=*TgIkh01Gf#(Oq@Za*Oe@s>g~etvu~gFpMc?J7wnFG!|`{B4JKo| zu3a{uUw1OMb^6|AdFK)7e(_pf%LZWhz6%w{k#M&S>+6QOT4MOejF$P^hg9W;`+1YG zoleheZ}XYVouajRR(~vpZ-1)!vloW%Z=YNF82-!AvGvDb_^6XZZ`Q@|pP?~>n}$^8hWo%cGu+BIZ5~VJ z*O|U3_Q7W&{grJt`)@ec)P=jPKX<|ICL|wg_Pk!PVIf}Ja6cb1u3qTvrD2cA+#jW? z$F(YfF_+IUe8s{zBh(&*|iQ&sjb`q#{4umyG$^{X?nJmC5`(bC~|6 zFV4kMdXLBOBaaVE=#Am`$}Dg=Nxwbs#yP`6DsaPngUIOh>#3;8+;*R_3mqlW+dCNF z2g5H0^xxS4lb@d1`b8#&zbvEQv?s)q8}8#r#+I*%*`Fr!b`O5Pt@dIfy`vKBjNym+ zM!dAbaL2kkTE4;X@Ad`WgoTvnhWmSy2@|oG6uVAlfBD+ZKWs43*^e(hz3E;IpE=jx zQVXjac=%CGw(-_jdW&va+}`z%`*uhuzV}(% zj?*zo>t3@LEywV;)89(VL(1^Ou|F>>)nZPF9hoz}=@RQ^9(cK6lNr1p!`E+0DB_0U zCAKU)^9P21F6`(tJH(wE?(ah;jJQ_+!<*m99BEHLUad9J(YZ9fjp4JBhn0!N@Wwl) z<>`;%KLgHP?;KK^8}5fq>1_rUR6#P=_xgf;eNJHVY>Cj{{YiZ3clh0}Y_4F@3&X$r z9lHNH#El!S#kV^Ix=Qzokh#&N_Vqcwh3HDg{rV+vD~2y@usd!fhX1a!F)xCpVG&h- z%I1(#{BUnF{&SvF723@wb1vSt`82f-(K+m%3G1fA#|=FGCnm4Co>;9NoxJ;n^(RA0 za>MWX$J|%4rhJP&``AdP265Mcq zKQgi0u=Cqpb!7I-Eo@iOFrnedvsl*%bU^AyxJ5DAOG>%Ky!S1qX&)K2V%HY?Ip?cLW*+3eeg0W(Pc%6M{~%$ z&GOQaez28>;XAZne{{yT7dzxoI+{*?zM1FGkRsf0KR+_wt$c|`voDc(`Ten^nqgDg z`BAs|9EPu1nrCPe4DYoj-RcE~TUh3CZWL0O8}5T8Q?R(pzS~R5yq!Hs+dbP<*V6+9XJ1jbd z;Y;?F-P;kvBR8)Z-Vej=YNR+l4=KbC_a)=sjM0?e?M>z_E_<_T(S=0k;;=lbssY0n zpE1L;q@zcn>gmQW3-swYh`4blYY2O{g7u;(9 zp&W*{+A;0Rar*7~E<211$fn+}}6E8p80&59Tbp534I!0wTq5>!J-WybH<0 z566-zerbJU=L|Bp|HC?vIevGbO-rZ4^={3h@$Hu@%zT(mCvVa2k9#2+Zn$qCnQ&~v z#Ob?dk$Dv=VxI^ix&mjCt9=`a;WG!^9a9s-hiV7c%tI%?aqqe&Aujyz05ai@6Bb;1 zGVk%gsxMkz!M9JjIpb3$I@}{+Qbi1}u%d09Ss1QqGxu|Jh%-0b$A^qgSkV**H!^SR z!o&DoiS+*6gYl#3DdOtMhLbj6xP8fSZ69H~c-OrMX&BtJ}dbepm_G5OC!+jxEovFC>elCi&iFLu32Q8NF^fNw)4nGxx0_IlszJUOlqhEK6h zn*0pkZavK1dPs;JKU_=3ou})x8CfuW7yGAl8+VFzYw_(Huev(t!|=M>?3)e1aF?ZX z8eIsn<%i=K&~RacA%SWYae9o+PZ}-5@L$8zqYq+uTxj*65%k-;hTppwV#5#j zC*!rHM%!E5A`1r0^2VCM`K`c!yOFTW`T>lm*2@Vb1_5Nm#T5E(yj zelfe*7Gyz*+3X!By}DLtL?sIhU+Hi^IT^!8-+UjnmkxiqJD^606*t@mH=v9;?07K0 zH4eP({E044%gbk1pTY3CXT7e|6V#hR9w|8b#^&+Z=;$6|$q&aFX1)POs61r;Wo+-0 z@sj!${tov+I^0&9j`#ceor9WOr*E13_4_aSCD6jo)gt@u=^bGCge>@V-;o||zQJJd z4jXV60~dv^ITeM0k>9>-o{fQpR*fw)rJ^|oT9{)fE^gkzmQQTY#o@nQceALF#if}`m}ZpA z56v}AUQI1cLrpnNF-@?hs;0N5n@fUAX_rba^<4Zlwl1zNvs{+ATz1*+GQs7P%R!f? znpjPYi?j1X=hx1Ex>&jlbXn)}-sQIQG3WEno1Jes?{&$&Y*;T=tWH+3cr)GTHx~k9+pt1(nWv()ze%KY5qR{*t#N>?glG+5a|Bll>InlJ(@{M2H=9}h|=8fi==7Hvx=6B5n z&1ub1%>m6W%@)lsnw6Txnz@?knu(gxwx4Y0+SasrVl&=GYkl2%n6-!1X{%mVg)R44 z##uU8Y_Mo){@r}Bd0n$tW>f#ki2vK)OI{9U=B}>xaA0(@qO@;et|Zq8B=97)=@i=|IW-AcGVOEZ+u%>VklvG+kXEHrY9FbR8nQ2Gm#}Z^ zrc0NI&T^Aw@n`Qy%fH}NUkoOL3|71WUZ zNSi3x5hs0nGP#^jKGJ9)9OowwiXeNcAqSBzKR=oGA9NW0siG&=-@Q(%?P88)5#;g; zvL#hs5K|-RRey53o7V7j=P&1z_st<7PiW)$@sJ3zhZ=GqNj(3+CiwD0#6$z4OP0$d zjT$rK5J4`dh8!GbJL7cl&np_l_^17Ky>osN;K%~jBFJUcko_TzsnZHqoCRrAAKzfa zK2xMoMh%%t<8IT6J;NZ4YUjt5dj)Cqyin@hLyRSziG-yn%y$G_K8Zwmz!lDu9AdQe${R$IEgM}(Y zkV~l{2Zu>!D~_y2Xa|;sL%4g|5 zqH}hyP-^p65;=v%bVZPhsUiE3rXQjr264a^xu_blKWXCr zl|6A|RX zD#*+>%2c%J1mwGUJ{CQ(!4%tYRYT5U8#JB<+bEmXZ2WtXITunvX0}0-!HUB+Xsjv_ zwn3AI+KC_+R72)%gKbT)4PgxyP(y}ol)-E8&_dXT%hXrFRbU%o4^NaRC^F~#YRJK1 zx@fnc7CP9S?RO z2k~pa1JApde3q_D!)R5`E@#&)XRHShI&@7vf;ttzjF+CAvXEo&Du-0=r|LNDZ z9BgC!t>#Bcc4l2OjB>opfX=yG|*_u5c7hXw1yiR1k z>6s`3Z2xy)?*N=|Sz;E^c{_w8FS$yHR5Sn?oFc$>D!{yqpMF{uRsk|zKvTLzfNlQ{ zoI}RrJ}-T|1~P6>^Q1(8ZB&4H8Os}Uh}XINt15bn09*eZIERd#=FQXUAmhq3VNe9v zN(Gq8Sk64rRm2J`u7`{l)BA}Cu;t%@Wf{-(FNmDd$72pA{#qR}?uabm)gr(aD!@#} z3(R*Uz>X`eI{(QWcKp~9nE*L~aU(7=yc<3X4-dnq>+k~jER>mu&w`nu_$-i_AD{U% zy5KWkMh$%C&B%k#Jcc-YY79a6bTK&L(^=mEpH6x$J{|Qm&)*@v4L)3FJy3R|2^b$dy2@1ac+tzghx? z&8^Hzmu_yXywSW@Vh>cXacdS#@Bdy1(>{GS%2`H#$k-1tAAXOSEK=cSPw|L3KV8~^8}ksJT# zrI8!|=cSPw|L3KV8~^8}ksJT#rI8!|=cJJv|2HQ5#^lETvvZ$ga^wF-QT)Fc|NpOv z>oMkkPb`pgELarQMT`FXWE9^Jg^yU<86J#dXTld)p4sn zR>duUwd`W)VzI@dm4%u4a`Py&cV;t9b(=_%k{xA3^OyW+UTgqq-PHGF%!(1HDpzD_ z!4K_7gL^t!^hn@0mSR+py#t9fhZS!@VXBSEjX!8fHIK%$TAm1UOEqMFQeoP!NOS*$ znnwCUM+=rgranysZ7hP^LJc{9xQ%%8G9+^zs$tD&6u)l~^4o-^(OeB#OEaWo%PMm3 zN||v>Nqz4-y+8eM7nyT2HDq7XV`-NH(XVe3U12$siPT{^kRr%U)sTHiHy>Iatq>|0 zRY96xNz$w=t6(L9+(ZRAht(nTv0z77T@0HKIgOWeXSTm-qcf^1FSQd;^EK>C;mMXih30|pf-yE$Y7 zGMZ_LH7^n52sLD1(s4#|vEfM(KyF{`b-lBsdB<}PQM*h8xt1ETAL(%MQTai&Pvgxx zjS`(8jf2gRZYzRZQw`Z4?~+$N<~%^1tLx)?_xHR@yn6Y~b=h}E1UXy{naVlf_oRbE zAq@|&U8z+dXJIZ2QA4J3?p6MrC(2ZQ>s=1@&8VCO(_*DCHDoGh)Bt@5M&QdK`75<} zZHk;j)sUH-K{m96oF^VwXL%iRu2$h#{}m!~4pBpJnacUrl=F)cUABVyscOjVG(4l8Zzb1eyJQ3*%S7RB6~&7 zfW^4M?eLuCBFKJf$jml+Hx5LRN#~N|I}A&OZFC*-=Z!KV$i8aG)HW{Ed(argGsBzr zUQ#p)wt<@1D1R!ztM*YtrnYgz8CC(?IDPksz9npf)z=h3_Etk?wt-{78rTM%dJ}3J zqTH;iYRJ?!0zThAkN4oWcW0+vdJ5ZMb&mz+99>05rl(tFbq4{l@X8)3?_m?Hc%cBI zR9S7V%q9Zj3*CTC6rqeV*aX-y2|)tL^8MdH@BdLQ?_6fOggQTP9_{Sybj4|qle^<_ z$0WxB4!ayWIM~>)wQp+o#csY`gzYoiiM9bYf7s}4Jgv`Ir&$-ZI$+h=$_eCo$>J}I zr55$gUz<-g4>r4HX80HPe<>Y2k8Hj_txDj7{{w4@^eaWnp?1P5z2sW!X&h)1aBkH3 zL*TcQ(&6d(8#JgM-4bRyy&dKNl2z;Jo~O=}(7mWh?%qWR8eEURL8G#1*D6br&>MhA zFRXsn3ZG9}oh*#X!(D}-;qCc5bO1^0&!~+=dY=B`((1gVk%e%Xf^;(#Xr8U(8nmJQ zHe0a!7=KV?)LlCEMUV%nA@eF6lHlTn(x(=<+P$14f;>5mc6ASLG8iXit_L6$X0d3RWbiH0W94rmZ;Jckew!T90D`TlbgRCO62y$-)*^X|aK6E?vA?-@U{}_FJ7tuLRZQVUEmbCav#a>GUIZXxG z+mBQ#X?RfXmq#ePy>e}v{6F9YK>_U^M@5iR)sX#($3xWA?)@2ao($)97rfzFvjh?3 zUTVm`VGit|SRcttP4PDMR70k6mMePb9Os1C9&Z3S3!l-F)R29Rl~Z)({LLnx{!Ahp zvaUBG(&(Xr%;X%q+xjaSEI6*dHzT+Qv?>ysBW}f>n^S zuotA88Zwo0zKG@Sp_nr(C<8gy4tlMX`^~7d7Mn(sv21-;GK@7QZfSerqV{ zPyh{)bX!D_6V#Bkr0;}zn<~4sguk%k$C>lqn&MIDtcL7E;%+Q*u_#>=J!cx-pM3W< zwtSb%zLYoEkE(!HL~ZR^A2;(hgF=BFLT8keLQs zC6B)a4IZi0ZNeOA@Q=2gMs^lK?x=>$Yp`{?ccHq_peXHMid93-p}`3o98W`otT&a& zoI9u?^BSyE50XZlp)>svL2j>xOf{G?did2+Sc51MwfC$kYp|UfGSy&Z*|To3OIzzw zH)xRdP!J)~OKsJVnFjB+S$-00u?D$ z<8+#cZRpgH`G{w^;zg>{7!>Vp)k6STzW=A0X_jf~yS#Rp>Jsey$axIz|CgNxIF)id z?3n22;;`94vj1Vf*gn$kh212(0NeYvBW)|&T(IeDQ{4KXb&_>{s~uKttt>28SVmdA zwU};E-TaPurg=rPvu0^(_kSs!bLu$ZP2)?CslEYW#HH)^GsSVpG3(~Be?(VOV?#xF zN?Zhf9Vwmj>KLKXrl#wyrknQPXoxN+uSf3en@K{evC<+!&{=LBT9(iV?dwgtYPP*h z=xax$D=rs**PS44lMW+CLFhP{&iQu~Xg?DBTPd=51mYX#SUi+eeTA-NV;>96nk%NL zK>L!|jFE@l-wA|kZfW9GZB5BeUV#S6nxcQ6TqNCH@WoYUeHqIK35S=}I`@MINusrM_C?tr| zDzlZ14tk@JwQEDs^pMo-%?kVoLA$9z^F}wt?b_7VFgoFoPkJdeXliu+?cV-C-NQG( zgm#b8!RXG?COJa0E~x^Y!{|J>A!-bx6At>Mmr#S|jSg43D~n)sXuMZFPH5I#QANcv zsL>UtSz|D|C(Wwo=?kNSbJ_Q#0CaSE7OO(V=yv2ckB8BrBU2%vNPl`!6+y^GcWGFu z-Y~lB`Kqq#0i!E&#k=3)3GjM z(i_%v&?KXCRhcz2x8G)Jp2Lc>B5 z>NA%&kv?{?SWsvqX;z&zy%mDy>M9zcp~lX?$T4W08B#gtjw9`6=~qp0yekBqN0GG= z+Bbm2dmi&9!3g?W)*F~sU>Rh+khZTCg4U=&!$Pt>7CN8%p+Ad6lhA#(?R#Djs+gVb zq5_SuU*GR?8mF$H+@m?_O{?N-?RNb-FAfifF(+LKU|R-ugwG*jPE zWT57S`Vw{RUoMCG(73opfY7W_V)1VRVXIKC4z2UKTCe=1FsSjSR{@>Z!(Q1QL3(K#T z3oIino?48z@cWK-qLaDD0>36MWbT7NsM0$E6-X!7#z1%ewfR0X=WYeK5-w2J9nsj3Pg055ElK^w^ zEigv0Mg@|okCkbao?->nYz_6%H0CA(vz5|03WWmA)YlJrRZt&$IYNDSvrkuzH;Xnzu8RlQu# z?|ET-`vPxGSwL!eiPnXc(i^EkYe}=XhLtM)z@^4Rm-eXjGZI{K#cPDGgw)tj4ceD9 z3F@#Kt(DO&g{FoLA*K5*oQMj%0?^UvS)>ZOcPO&xT0VZX0Hl=8 zu_+Wt-stB1d9-3N7#(fQ>m&qSUqui(jLs=_&51}X6>+2E_!P>ld80eK`nUNRq!Mdl z-b`rL9HByi=8bM|lPX8|!stYcYD?)Hqe6k^jjq{}7Z&efbm$|k5sGxA*HMwRFK=`# zPz<9Ri&DoT?#Sr$EKbGWjjm<)52Z@O=-9PDNX8tQLJWk>2rV03kJrbRVyAPSReReZ7~L%Vh`D?@I)xFM?R4_#S9*PQo&Q)-T(KX$saPq*(cWztSZ)GUJ;9k?(^fAHuZ^k?y)dB9PJJZW!q6^dz!!}}|fjF00~7~>7pLT=F(^zn#D-76Ab z=@L#$^x{!d$oOg~vo=EGaDa#u4Fe(~WtVBce=Z_Y+g+u5MTDTMt3lI<6uMZ&p#RUg zE2o-8+an?+%#uy7rUuO-Qh7ICLzvWZrM~OR=ZHw*-gxi1(5!>iplL*^>35HoYY~yU zea0vHhDi~rAT?+jk)nR;-iS!Svru<6B2vtIAvEhiHRyn_+I>cyEWEcf?xek5J3I_9 zDI&#DD~uMB!}w@Fg#;KMd`@?63(cD2Rv4jk7$1vO!uW9HEiZCskR)h5Bl$$F=CJ8Mg;l~xUN-2Zw@6cC#UV7=E`2<)sSHf! z5lz<>5x$=D>nPCPq|b`yrPEv45uMj5>iWZbSlH0@oL@(Q_9q>mzutt*MnnxZ4SVb5 zNrH9>-=y^%sX~F)lD7Rl7v0_oI&D`uJ+8vHm{1)5gapEoDimnn&LxzB{Z%E*TTBJ zoy!lZLyFTbIeV80L7OSdQ-Ss;aku4HymS|YqC74nR1!`?PamoVttB1L(I!j<(NaY2 zcj&Db%@~YMA0k83RjAAww>wWXE9v|ITj1Ihr%lsE1d-11DHKRveY3koZ+HjwiPkBR z(g&#tf>+;(*-y*9BgHS^Mw)UOgZ16MOAc?nLn46HErX~=d zFstlM)Dw**BQv1J$zX8{?a%3{3bcmqpMmrP9X4m(&fDuXuDj+_+8^5TiD(znWQC4G z0^ukXMree&6Bf&NQl0tbfyX`%BrWpo-`F}POb9wfW!8wy#Q*qBzBm>xG5{oW66ug~ zD{-9=cO{)8RTyWDtebv~cQ1(ui6lA=lE_9(MLdaevBX$_9IHZsMz_3iA9b704F;EI z|Iy}7$H6}mW(lQpv^dIO1ek$7;P zBUTt^ox?)T4a(Sh6BZ&|oF|=QRw&TCg`mG!@A0sZ#C0_fiKNI#>0MO>lEXsIARBln zETnoIqR~RK=C~EcStE9*SjbM7RgYeqWFcKtW}U-A3^kCifP5D51k40AXtsxRaGh}) zd&u;!`X_^7A(S98L`Wc=RiK%LBz(AWdjg=((teO8SxCGZG_w%d&0g4cbJLX(un>60 z1Gfsznj=^!YGiu|Yu>EWTw=|fn^k8N4k2icVWB`X3yJft6plUQR~8m+b+W2qVEr;e z&>Y3W2rXMk7S(W=!=P4&VIiAo^)n%8j$>hrr^!KF+B+RV+~XZuroV)1fgbq=2|;&I z)TltSC}36)H|2fDj;9d?6lZO7EDIxajwqln9JbpL#1-GK+o{Z&MFCOzr^W(A0i%yR z_o;y>;DgWcKgI|NgyUHlXDvqoW!}&UFc%u_G9d~m-~R_G`TyZ6`Tx7Y|F^bZZQt1L zgWW8<(ErH)r}6)s`Tw=dpO}v`_cgm}Hb^c1Kl|?_J?H1i&(0|LfW%U^to(?Qc|_L& zWXdWd3F#?ZkV4P-d5q9-p7-@1a&paRR4Xa4Y1-4f8*#H1K27L3KaT?KP5SmOPpdqE z<}q{A)6+ZPJQq%U(Q|$t1=^SNy}6^r;Qe)pu2SBk=kMC%C@b|3xi(b9g!CNeLV<>Z zq{#!i6~Zsif|_uRZgtd@-z@+gt`0K7kPg6@UyRp*N<@QLtj~0rbg%-MhDiQYgHH>t0E{M2uaUzEsW4PjBfFpR>>1! zbOUL%KOtz2YoS2%Mz?Hd$FVd_D4g@Cuc#src;h&ubI3n57)Hlhcni&%<60=Q=8djh z{UF~yFgnrv|7g9ZJnO$39TNM7guv)jdaVA}QmB%?yqX}W(Xrzb(dCshHMNU`b1n29 zD$uggQH~6Dx@GiL2BX7`EcT(0jLWG&%SQLQ-Ek-EbUV)C4g#aYYq^wAuwKt`EEM%I zqia~m58F}U6?QKlHh|FylTP#;$3lT-M#t)a=_*lTNDUaBXrE(ApT)7DJS_#98r?%% zx6Do0>1Z9nP#E1lRAPH1Bx{aqp+IXxU$fTpiP-UIQCdeB-%*sRvJryjxEA^7yO5R= z#FZ>Lb{%b-Or#afN6$HXnNQn^crTyq(K7ZyPH-Zp7*j9Vd z$%8`B9M?jD_9fLvv62cXG)a4ySBHZ{xTt`>gkskUv^NQObL^g;>>$#UTNg&2Nk$-f z>B@u6g>HL#j%%Snb0pr4KTaIJK9N-TDt{3Q%T^tej2uUT3@Ahx&wX9(s;zp+Hjg{Ze4S-MUa;_uC%bmO*{> z%LE^IAuwA>&v7jjXsSNh*CPE`+-rE%R#2ZXrBPo%O~zDx>Fb`2>Vs8CYth+a71pQK zZ-r)^Uk#e7Prj2%Pd-)Z`uH-`$1XWS(D~G$*(%&ND+9%>H~vML?ZM z8sptll4r1c!etaad@L2eDVWkUlwojsmSE9q!d~U3>Tqkq%P2e<}&kiTWv{^;!NLYS;=iUN4{N z$+QCrygK|>k74tKX3P0;6i6SEvgwD{z){Xv;V2iqemn_YFHA4fbDRnVnwK%dB3I&?Uc-YA3xsY*sE8ES@AY<`+Q7dK5DA4R3Ag8x~F>7}3N?FKSm{6^|GDLTFza^ni`fZfX6myz74(p&K!fLR-X7tB5=2*< z)vX}m6U7}L9Jj&iABEJ&aVw0_{*d(_`|A!pHJRv& zJ4|ZU{~KxeE0PDhe-MJ^xD^VtFX`Nl1=Nr}+28ZdiR+~L6^G?fRSiPW%@qqVLL)3# zg*wEBA`szzYsj)M4M~LOB>KV?f^Mb)?Hj06f+*VIQp+k12t=S(o|jlgNK+MP+4$&P z3&uD8MC+ecFuq=qC<7)m>n3W@%=l;{0&09VosLDr_%^&7xap@5G{>zl%33x)-!VN# z5MA{>wB|5rRDlIIg`hcZg%MgdzEI2LGcZ0>X}B;7#wU6Wkn|k4LV;$+hk()@7+*5= zfWY|7&Tn_s3C+5pnyh)_+e2CTFg`4xY88c`v$z#G_K+OLhaA{C{xCk_AibXBSQrH& z8{g-hcVc0DQ?G&LW0LXJR}%;`z5tZqhw=GF89FzC@ok|M`Gf?*aV(6pmW?k8cMTZd zhO`waCt!TY->WRtJwVTKER4|1`1XC6`>`jC&xvLS!uW*QH+qg^p+Ga^V{w07jO+-h zep#4ctFNObYifLbueC^t!p?WO#?32tV0^T`uvjo4i(~Ph#%D}EDcWz1)5xVTKD1Uk zS3pRO5z4F!&^NB1{MthM~|Ync%x68zI*0zA?R9a&|1=cIIH_hq{o%F z72D7O0ud#hNP3QIVVt$UFX_6m%Og8me`I$f&Bx&!iS7UjO69&nv*x%KMred!JqIEz zI&d?1hn4mrB!%(~D4cpksAGzrs0ai+X=8>+A=J&cS%Pr4_~krI1sZ#ZqQ+4l96b9$ zjcAg!PADNlAF2k;t5H5QM0jGEI~Nm@b%+Xd4mHAcxP2JZC|p@r&v7l()mXUT!hxXB zShI79(5yMGg#yj1aj?bc65pZ58T1q^1YJ!&-hSS*glaV?C{bTtlg zDs}vQ8LURX>tAjUfEtl$5iI5l=eQOMbYNKQ;BN7&R$3EXp^;x=mpem^<96&imRCrP z9M?jLJ8I)uCIHRF|C_pecA4v<#Q*h9#IE4Ox&i0$^ zW9+`$EwZa)`yBQELu~HZjIi;tK5yN}x)|#J$6GmAuD5J%@u$Uni+>ycH*kKQB6v;s zGrs`JN3NVu*lYz#S8ao!@|+^oFIT#VmU#ldmSo`kJVt1LR1xz2{-eR0SwwnuRa@o8 zHWIQ5oU2x^grGS;j{@yYdM#!1;L;Xg|{Ra?SXz zdmn(@JiajSYltNoN$)9JCkV^+(vSDs>IgyGDEn7oSco4@WrgRc-@sL;w_kE4(lx_buRq(8 z;7Q2%J0WzBGH~1rBeY*I>2)fcc{8Lp%m+gviwma>8?01j?H5FPMI0|)#Sc!Y$8s^K zu-RCw9)*PjVyOo0PZEO?f^Z`y(iaWRRkKJ`P$PuJS_naN+zUk@s3LSED){FWgs%Q< zzF=x*JE9#kp1wVWpgHb^5gMy8Vx3K+Gqb&jbQ7iCKm8zeGleTx8_ZM$qSc0Jv+}5= zle8#@4%Y@6M(raqYyD6)Xx{i}d5fYjKH-8c`XMUNIgGEu$O*%X!uW(+E$9cULG#Av z5x&`TI|-XDTmeEz)fGa7X^$>=x^h5|{AZZ&i3NY_S< zsWSHzj83?gm!9Kb7@=jOtL^gRBx){J8FAs*PLqs|<6tPz%;*@WS9H>z%rvATy z0y38L90x;zW=0n?c|3gPUmO>G*!apMqvJRj3N$sk1{>E`D~KJhea6YlgRtY#a;-vz zvGp7W!w4-K-KVK_(y-&PoeoAfVhXBm3kihdU>KpbS|e9oI(gxbjdj|?`2L_-C_>OF z%2IKqZ(1Mv&J7}QBL>j&U^I1xh6hRba~Aa#g623FMrgdrn`c_wf?p2JIOsMVK*GGN zo*_yt1kG_U6lg68vX#4@NKeq$qU~u?M^hAA-U$KdXnht3gT{aqXm~LS$T^(Oz@ zDqR3l(sSGkBP5ft>~qn1B+*tMknx}J4GUH3*LPP@Uk({B4-EM29b_!rNK4;M4Vss+ z!?}>z(;#E#jE3eSchqQoR~h>6GG65V^$K>n^|S(Ps*sEmRc6a%-2VphZeYjgpcnJV zBpGv@3#0m&jLm;*KkG2;SgySgCf?>s&v7mkXe#5*%c4h^Bjd@rRqN>$Opvjp=QtM% zG}k($0DKn}Gfa{-$GK2Kcr2!gQgo=b__ZQU8UnO1bw(ejs8NBYF-_K12i}Y3H28y< zrg*MrCpBmm)AT|rCSscX2jM~lAGwAuLjmK9)@N}p{uVd>V)x6piod|uLRlQu1Ry0n z$F)!d!DQ^JznB3Tqy25=kB~9F1k@FPmhb=F#pC~S{l5aJ|F2g6FPs10Jv-N*|KZg7F59 zTcJQxSs$65n7ftHYSTaWr?b!?xo6(W1Cha(h=D~9X?Swx@#z- z2JK7Yr#+H8LcEh-Sm8mePOFfNIc|kAYc!bb!&({<=~2Jw`7aj74a2>Q{iSI_&>XkI z2+i*q{wo;0E_jl-$DZR>7@>2>n)wEiwUDtDcV?kkbKD9AnwK^DAN0I{BkIknxP1yi zbKD9AnwPcA-3{|%ZApZnIc|j!I)|)RH7|W20!}7+^Aai?XW+OMMrc{qf$ztn#oduV z?1yct30VtAcMTl3LV>2Teq4Ex`!}SyGZ{nH;%B^~YDLFzucI`=- zsY0^mxE01(%d$RL@HXoI`A=WIFkdUkS~#!8P*|C@5_qBUv+;*fiyHAWR#Fi0Gun-$ zmC&qRRiNeg8QP*>M*NI6kgbgP*|*2t$3zH07gB>}@iUa}L86aMVCl;>ZXtfwogSBj zpbM%&v-p|JNq;?#a=#Ei6XyRLIF5x;*8VJhM!NvvWJ=TiyCHrCde+%BLbK*L7Di|} zekQZK-?vCZaymNP7CSlqQ3 zZc)knoOy5L{~t5^kNZF8&nboDj&~qFd;&rXcOn|bp6-sUXnnXgIHT!(#nyY{{ zMjNvHIrM~Pg!V>bEzSB*7rm#FMvX;%zmg%#k3)s7K%zRqnP=6`kMlrBCb^MsH4oty zRR+$VV}$ncCmn7f8TPm1pzQFhZjsapD-Xc=C8kq@PC)hMhY{ zLVwWfl2D?pf#X~#&;dj@ie-wY8tLG3q@xL*EaO(A!K|U=R$$@CAF7Q z7DpK(eMeWRE?QE10;)N78Yu+LaV`{SKjKj#FYT;__-Im(IS+m_$@nH0vl8HRiDEt#9{zmxldj)L&lkFOv<6$ZGr&jphj)q-F(lQ1@(6v;cWxFoFJPb}gPZ8mak;W5`a9 zVbV7^JVj@ipR4J2Vcxib<6Ib_<#;iTJtKzs+^71zDp-x;v#zGdT7hQqVp?yA#xPlZ z%cyDjNu#B!1OyUo$l_ekTdolrF-)Bqi=&wkCpO;ymuc#|yv~vT|IhdT`?e!(E8ASK z>HClU|J39E8Ju6oot`VT^uwPd&3)K)@BQyYdbwfqq{(r__YG?tFCZBygY)Ys(7q(@ zvxQT=UG3nnq>-y0#IJ|&K9#}wbrk48W4@ivtah1CLmQd$Cd=UbI;EK`=!Y*!(pD=4 zj}A8OvhT{Dt3dp3qO8O7Od)|dDORXJYf0x=R`UcYP_1Uerwv&@L0n~y5VWHjbO331 zs+G^uy}Qs|^-&#kyd>T~8`ESkA!v?UVVt!$N6B{DyUU?zA~C@+lEHB+jL@>I3!FJz z60+8=g|7&*M%q%{r$V#lxD^UCll8$NyWT?9a_cHn?3&|NDA2sD-+JLi3|Z4I4ta!T z&2cM?(2%tQ>uQglM^510RA>)bAGs1VT!=TF!Eq~$&`j3hxZHJttbGQYZuBQ)jcQWG zt_#iDO3nC~tfeJYYeUwpYu5hw3+$Se2@`_0RD-6n*7<+0-WYcM)Nv#3>(#h(TwBLFw)>2nqtja zE+i0+TVaI8e%-53Q#AfVrDnIxy66#Uit!mZZiNC3pG(>tl<;;(OSb;I*BzKiYJ~{X zDGftZ1cIAK(#6S*-3MDDL$l59Uw1YlAr`^~5e*!-LYZ|S=~^U@OV{tHVo>1ik6U{u z;>ap&dO5n*2sUWC6^ zxE7s(<5Vb+%;;!K0T|uei!YlFfzgRpla&lvoC@j+HbTorS9HsEFBqNNxYmTXi-F@- zDA3I4Sp6ZL%V3sHX^PQt+zJJn86Dcn;uTP?!_!9hr@-iFCARhg>XQr{w?cuYM#p@H zFgnU;Yz?CmE;?!8xD`g|97gwWL8Vm}h`7;7hBTE`$iH2RjYxdq1qXIBKl&pikW@8j zW_)Oq77gQj21>{#7@u%oO9RKPFbaejUlZoO(YZ11E_OWOWM)H(%B*P|B5lre&r|2I zygZmv>nR8+(u9~fV$(P&mL1kG_Q zj6pEGZV?rfUBN|h@Q7CGW; zxb7k<$og97ELWHN{VFoAO>l^CTnlB^d{DPw;DS{{AZziUZWh<#??K(Isn0fdF)13z zaV(6p&7nTSvg+fbpuQtL+I(FnWEmXC!U&y1eRIc7ak~!n9eDoot60hm$FWeLdG)Pa z+a~`Hs1K#x8XOatwS50iRrpOnG*b;{wi>PLD1sD|C;=U;!`a6eC^Tag)MH0OxVgr>Abs=%)!WpI8S z1sb8NKKC{zH~s()P5!C4dl0`nHgqQ!g68}>3UmH=y4esWwbFmY2bCE);0LumoC%7;R^zn?G3^n$HCB zOAW`lD9bcRKOpP;bNX!Fok4VtC~+Jl8~%9&V>T)OM2`=+rJ&Vi7sf! zgL^&d!a{_ztui>yg#wKT#bTSG}i8oJ+2dnPn%t+Ig|p;5!T<@CQm z{i#Hxqo}}`7(qx9lDwOUl);P6@ROnGR%nEVA71)v$xOH6S4hN3)@@a2wj9^O2$@5D zs6{#M3)E-PyIdWi*G-0xiXi-;zTI+FcU@5Y&~39ap+1_IC=~q3@K%H7)pzj1ykj0v zA1jC;B#^2q&^gpMKk0e02h_)^nF~QzQGxae4r}kEJ&3IvYTRFPe1~CBqxe#(tO6~o zv8mZ$(32b)&mU^UdcSx`Xx1FpLa`94Msr3O*U3D8s1b!u9tg#zGb*XgnyE46MDiD` zLL4twPk z`K>SKd(j;SZMiFF?Fqs}+YF9#p+IX%qmrm}RJ#*y9_`=}*$20~a5_gu7UzP>T7eEA zrQ&eDp1g!e-+HA4EH#IRs2`0F3dx$|UMSH13O&j0WX)gB2g5xn%;?J~qu8|q&D2OM zGeM0J%iTi@Lyf|XJ~BA&g#yjgh_27~p+>nzeeDUNBv2`X<6bDxOpUa}3Dnr?aLSf` zP$PPEYORH2?WQIWs>ZAu3*VBi^i3XMf}<}wBa3@M--*hsQLN8SrWp9&L}FO)&qA{; zsWw}F6*j!^cGY*NPu$(kaW0hEQuU$t zTeiNO-=yGIF*RtaKD5NGg?dBZ(kA!M{{-qwrd5@NWL;DZnyo@s|6gafw@H zLn@)XmW(0_v=XulAStUmtVZTP3NXp7216_;OG&5zQwGPmP@q{1lh)Nn40D^!_SGJU zKcM>VUq^%l!f`GXXcogPU9;z7#4r}+qxM}CnTG>pBI>|luR$W>GG2Fi;(>LLv2ZQ( zjQncQRL16?n^;j^3uSTCfQ*F+5g8oULJ2THtVLT3{73wMs!PuL|A!qD9bFtY|BwCuN<&pXJY? zuXIm(R}997Z!k#>=vGHN1G$dXJkauE1gW=5)WD?-&aY#HM#YbA_o_Y0ywR8FLO!ko z&x%xeAxz-P;QTrYbRbFGzOM4A0-dpO@20OX5?SmSZK5e;=$v0if%YSQeX}UoWm3^^ zraMl-s0B@j z(Cw62m#3>Sh%HHyR?Z{&-a&XPt{c zB36lC3)-m7I)Jpll~sJg?!Y?O2&r9~rj-s65=d(`XuQ(P-i~i^qzbC6Fs=nE=dl`# zLeQ;LptU|mHA;uN(bFFZf5B3-g`jmR(5UK`R<6toi+5k4M&K?U0W}KeI%aU33w1R< zDvlDLP@{0;j|`4;p+HkLW-S>znPO18v@pdWgX3H%&`gaxgXT1a8fSEBmsXL4%@U@r zW^kMfBed2htd@CPhKp-aA{`oTjYLYQvD4ddHzAsEM)QAEW2a3qW>Dj{mkE9COj2Vr zHE6aP$F3}bG>$U&q{dN6P^0*(fa6>k1>#55h<*qaj^QeX9VG50R-Fe0AP|FmoMsZ(Dw2DBm8oy>`K1qjIb~n_>t_wn|v9SW}LHAQuK@X)fYL-X( zA;`_{zFXV9{fpGfpp}g)2tjk43kBMj#KthX9hw8ncI|gZ+-1gbE)-~_tgZ&%HU)Q6 zi*uffZtpa~lOLUt#krt24g|AM6+< zjpR;M@AfU+RjL7GE!@#3qn0vjB}B(!maN8t^aO3=!d5^a)LBtUNFW@?LV>0+%Xs-F z{cuaan%+MUvlP#`<~SA#G>uty((3n(Ma)v}%292YFd;L8s0qX`tThb_pGAo777Ayy zID)tXdM9bG3JHYcSSYjRWzCudLDrTa#l;Cha~ul=n##J(pxToRN6J$y$mlOf zlzkm^GZXSlW^#TUBeaiCSnDHF97qI+AJKB?2`I`p?djbOqlIRjM_DsQXg@7U%u|GN zoxuBV|H~dSoXkI2n|^`r^N{~M?%)obql?*g{hV&$E`3zGg(KV><%o%vSY_nEBqj9 z+APRd2%6(o7@?W0msE|I1TRI=V{z+#>P@n1j$2`bW_I1@=Gs@_fE7fk$u@gn*TO-b zOpaS&godnpRQQ9E8X@b3dyzX2Sqm3H%(PRCuOdBA)AV-KobT0e;7WbhRX9hY5{&ej z)apnJiwi|_Gi}wNwIpRp(v7Y25OTE}(zIZo(WGT*lxt~eC8S0hHRwQ6uRr)r#n40a zwF}Ouj;Jh7yE?WLg0@zJ4hpNGFLbn^JIdUdAqlC0-JLJ=)wHJcsxD^U?P*}5l?hkJjJPBFL&CF|;rtRG}2tjk)iVAG|kPi!~CC}rmx*x3t zVS}|+lSmWX>{;9j8qzRAV^d8nP}U~+GAfOG-edQrMqN%(i3rV_<5(!rTGAy2Ehqa% z5?u+oK5MtoyJh2Oj?Np7g>z$2(8j)m|5F|8fj$>hjW@;>n0^<## zMzmCDH;OdsB3xr3gX35z&`gbaOF1DpUqY^hTdy_F3O*BsW}T)Y5P09bre~d0T^Vy8 zY7{1&WTdJ=qnTMLmazskF1BC2WSvQB?4<%NtC6)7)KxD))AXT6aX(gy3bd?7mbs_% zL`{`#zd((wK$DQHlhvS^8gZ?A4>iIa(!!3IqQ;(T&{T~Hs7HeR+Lc`xp~jY0g{Slu znl;C

c_1{1&$S*7pHW;|3bjfEtBs(q(WQ3u9!8sxhD&8e0xR6j1hBm=et8I2J}| zISTk~$RslabLBUBl^3*TP=6tTa2yK-nneL=12IGaw<8lX7E!>5CrT7}AOy{EEEH%K z%%u@UxY_&T64MD$K=JK~<5(!rz6w>h`R<5^PVEr|WW5#yX8phR{?9pEs^V?#Ppi72 z9B0C}tk+ClTENzmG)@&|ok*FSvqgdSCEgX0=u`m7aCt!^wHS>eqBLb*D4{l!BR&|R z(X1??$mcI7(`Vt(hrHSoM@Yj%!i>yJj`&c89dGDI5J}Y>r9=lJz36qM$bfRVI5IA} zfQd+%9Pz;jP1}C8O+@M?I2EU9lY+L`uqA5YLeL!XL4ihEduO@ukn|fumqQ+sdMp35 zN1Q+inj=0a(B5Hj6R!OT_>5kPU-Q$b9jSB`b@RjD2|))c8@3Ue$@=)A_jeH6coFyF z>Efd%UD7$?gAtm^x^wwKwNFFVwW>=pPnzg^mtPvnYx}ea;;*hoMjcc$K{l*(!6q>cK z3N({7@*gVx4p}36Qo9baM(vG~JA|Np)S#)X(PXyY8UnjM-S6pVq{s*tLd@g{5Q>F( zhjrPTWg%Z3KVBV~4|dIZ9ShBxBS2Kf_Tfis(nBDrle73MH}m3}HyOt#R;*75nj=6M zq3LO%Cu&V@%p|(faVX3j3JWO&hR;qRXpR73ga!d3?)8$p!)N*3mK#7@$qBxFsqgM}`RnI0+v zVY0SCMq@baI(5y7NE_HSPOAMb3(2~i3bbt3r^nq}3t3;RJ@$elWG!wX909^85Xibi z&EF~c4R)Od&xpY!yXFWGUUd7QHJ-G{>b_<{3$zlQEyxuGf$A%SoN2qQGE zySkUGkQQ>$pS^2xa4P&-!p(p)ODnQgpz$Ujl;@6nf$~K9Jl<*EJS}N;MBHD?5g-(3 zG>U(?)a=_zJ&~TFxa`drq+ToGp7fbn1PJPUGD1U*oqPF4p`jMy5Q}I|BjOOk&44pY zstAOt@%QgEC=VZ^Tvw}sr*Ql~vxEvXQ=?zWYJ*opjrZ32x=%L6J(rcyQ1SP#@FT!k}}BSI+9RE@GDM0yr;zF*}as8P5leI`eQFhWC(E$5cmKCN;Y zsBz_$hC?+_qi|c@OpXX)gl4PJF4KPhT)G;!oGxdJ)hPZ(=ZFwSXr{(8a>ClTJGAXL z)F`)zh)s)6YSSsUM{;UXeAV?-bq3x-l%B-PA zDQpt0hXysy%2@ayuSu(sBSaYEYb@aCc5P~FF!(H!KkvK~3uw`RW-i#=TtYYiLO#3VIxECnMpQ={B#Uiu){Rxm}4?NkKf z4>b-)1$tjZW-P0s1jIS0QQT$LRt=g}u0{4TTCjbtKEA<-eQ0x6nD$^3T8$h_fi-rc zOed_y?tA3oWxASW+qb&bmDI>5T$C@9V<{-m0i=76uRUHLTZ%S!ayjs(%ljPP5-bVL znqw&_(1E1e7rUK(GgHAMrM{-6dj*8e6E%8fyIfU?n54!gYOwE_6<#t)jT}osf%XoQm{Zvn**K`}-shG{tC3?V7^5fX zN!Mq*4LWUOA2#wcnugOP1NkzU^G1*66w+nXbJROCgIktikngzkO-i>;7D)(C>d9gaNY?A;YXFuC(d!$bL!W{is# z5(vjyP-aan#LQt(E7ZcZ`6*Rvwv*H>hLd~Qn?leWYe9jg7UEg*xB81rL!_vWiI-QcGplIGA}?q&+7* z09|7g@;OYh5RSEAoHex&<}x&gg+$wXo$Zb=sknuNtIe8O$o64c+JYXmo+|ZBvJj57 zV4O9&7N+j>i1iG%f`!Pno=n+8IM#v@TDA~5dQz-!@fn&yChXV$TkrqFIgf}x^Dxto z01{I%_42Mwg;5mu%Bg12_M}c*;oRNf9JRm*?WYaXG3QfHqO;n2|J&Yy@R`w8utF5R z;rSHnV}5a(%nWy2LirSnfa>LN-7SUqV1LYd5|(^vk^O0SUKMD6)Simhiuuw9+R~`INwVgs1x9El>z3&+F0Cdy2hfy;{Xv?<2-j2` z&QS}D&{`^MMrQ|u4c?pA^NA_4c2uztoPtqxGjdk3Baro>2_g)SLS7dVf^&DMk_ZX`LUJz8Xn=tPp#@YJ3C8QUz&Crowe~)HueH9lGIl`0 zmZMz@W;1DlS~YP!SGEJUn&ji$i0e)stCn0xVFKcV;5uv3*ke9$t?$=NTA)@1 zaGil386AzdX3_!$O0kQkk+?lGAU;_UHty?FBCAEaLd0g$0<~)5+6hYrqMgw%CcBYI3lubQ zjUh?7U8!W|`l|=CjJRgf0tF4OH#)1e>SZ3ugzF%a7AWWpHHGtzlcYD`I>@923R?R0 z=5KE$!>?s^nTcNq%e*{Fy?GoaeP_nDLpmiKj;|KEC}@s*xFg>;a9}-ORhK$;UgO9qE@5 zg=K3BjS@3VTHq2Q%@{ko%iMgJ5sd{f4a~%hOj@9z$&4f9z}i5RGrrMeH!^8~3oUme z4J)`0W<-LcB;05>GHHPeO}p`#n_sLs0UhGei?SPs$!=uQ0v8&)aRQ0$vg=^RP6c~U z-7+#`sqzpv35NSMGO#3dLh9~k@f%~CjG&pcKtWUL?x|G|W=ulr&M894x=%Nq^nd&Q zXAu$ldHLuT?922&kFG-)jsbz~$xT(yza{cJVIV@y7M)YoX3_!|n(R30aQ2}j6kBvg zc&q;|6UVlnP%h#^<1sTcS0?3QN4yTktrR&W+C@b6P%r2~VtUt?P|Js;Pxn`42sC>Y z%|rBQ5yGSeYSkGcb!zN$@5Gd2r>~<9@nZOM+QrN^lNKoGOuzN-V&=xP6lXRvBa;?L z=Wy`F3k_)Ne-*P8BhmBfg$k@%`@d^vD6SQ>Ps}b_B9+F0m~%hL|Mq23P^R79&SugA z1&v#<@3&94~`yP0cpYI%fEVYTC(`z_MUYE zyM3tTAxv7Jpa(Oq>2U34#C7_;xL%Yy{x7`|==)kWeJUu^HzSi4s8ti!RdR%H;Nh#8 z*Xjb``U46gY7vs^wdzd&h{zk*h7&P{qzkn;1=pCzoU>gEI>ifGa!sYi@N3x!!H8=n zEl`AzUqd*LXj~xX!r?Q=hr_S+xn|M=1x;N4?$ega6!>+^`tcYlvQIG(g0Gd7bJDCj|A-ig0a z>=&ZXB824<#H6nJF~ok#LliWAUjSy>T{UR>x zqZ(0oPW#1SGiiZ>rlCM>A+x5vbKK8p>;dpz=i$~am}O!F0|yDM&Tsj9x{K~>9e=MHEJi9e5bV=w*|FK)X!ZX3_!|T5|1# z+XIn#2O3g_8gNbT|Nddq{yY8ueh*-Lmdzp~S#*Pb6tB(F@;)Xla3Ouz>2s-3ek>f@5!jBal{YmlXeKRC z&_u+e)BzAJ*!o@B{YV9f(7)p_X@Lu!?o<8#!?(Wuo8qU92$`X_qYF)h%xQgSa`Si) zg0iiCUB$Rs{elQ4El|)z2zukB{{e)gqKk+yB7{i`TxbwdTq2@&y@7{gxHIX)#6yY| zAw$TO<tDMl(r)U9wc&m+~2eNkE(>#d}z@0N6zBpqmG&JTF%F$1qwPt z^nUwN%0E9ul)2G~jTe+@_qDW{v_L@*_D2WSpRT!m43SS~I8aUr$yyd`t$M8T5EmM` zyLnYd4(#)T>)R_2L@b+YRG!471unES=Xqa(D#IV=Df}*dH1R|-3A?llvNedJ-wP1H5L)PW%rJo1Wjj|_9 zTHr!UGw#E2od+{+sF~Hi3})2-fiY=;3oXsK8|^Gm=yM~k@B7KsMrIu8;e5E5<@Rvi zq*n9i!L&*guo>*e5nj+RW4ZGLvl>_5f8qRbBQr8-fg)tEKM%Tbl7LxPFz#>Qbt5w} zX@Q$glBv5ISs4=O+#{yfoq0&zX%A7gnY6%#mZ>`*#uOeze(g=FdlxySvN3|z88TdP zt)MA&C#QY^8p8|5+ah}vmB#hff@abJ1x=|t=gMxie!L~(y_sTok^a@4NedKorhg)O za28xUgpE#992OxOr(es=qy;XtG~?0C_+G=1flWF&wC=Q#8JV=eg_dTdoGv7e-Pg2B z`Rf)VGcsv`f+jOA?6QAw4?xcuQ2ALJ%&7k=VA28wO=j$P6PFtV`sycbJ`w>l>JCJt z_kVcQCcOXYr5^f141^d6F%V)P#6XCF5Cb6wLJWi$2r&?1AjCk3f&Uo;md#WPZZ1=1 TU@;}FX(uwUon&dceoFdZ3hS!7 delta 23340 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 0: + liste_aktueller_zielpunkt = liste_beobachtungen_vorbereitung[0] + aktueller_zielpunkt = liste_aktueller_zielpunkt[4] + # print(liste_beobachtungen_vorbereitung[0]) + + for index in range(1, len(liste_beobachtungen_vorbereitung)): + liste = liste_beobachtungen_vorbereitung[index] + + if liste[4] == aktueller_zielpunkt: + # print(liste) + richtung1 = self.string_to_decimal(liste_aktueller_zielpunkt[5]) + richtung2 = self.string_to_decimal(liste[5]) - Decimal(200) + zenitwinkel_vollsatz = (self.string_to_decimal(liste_aktueller_zielpunkt[6]) - self.string_to_decimal( + liste[6]) + 400) / 2 + distanz_vollsatz = (self.string_to_decimal(liste_aktueller_zielpunkt[7]) + self.string_to_decimal( + liste[7])) / 2 + if richtung2 < 0: + richtung2 += Decimal(400) + elif richtung2 > 400: + richtung2 -= Decimal(400) + richtung_vollsatz = (richtung1 + richtung2) / 2 + + # print(richtung_vollsatz) + # print(zenitwinkel_vollsatz) + # print(distanz_vollsatz) + liste_beobachtungen_import.append( + [liste[0], liste[3], liste[4], richtung_vollsatz, zenitwinkel_vollsatz, distanz_vollsatz]) + + del liste_beobachtungen_vorbereitung[index] + del liste_beobachtungen_vorbereitung[0] + break + + if instrumentenID not in liste_instrumentenid: + Import_fortsetzen = False + print( + "Der Import wurde abgebrochen. Bitte eine gültige InstrumentenID eingeben. Bei Bedarf ist das Instrument neu anzulegen.") + + if Import_fortsetzen: + con = sqlite3.connect(self.pfad_datenbank) + cursor = con.cursor() + for beobachtung_import in liste_beobachtungen_import: + cursor.execute( + "INSERT INTO Beobachtungen (punktnummer_sp, punktnummer_zp, instrumenteID, beobachtungsgruppeID, tachymeter_richtung, tachymeter_zenitwinkel, tachymeter_distanz, dateiname) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", + (beobachtung_import[1], beobachtung_import[2], instrumentenID, beobachtung_import[0], + float(beobachtung_import[3]), float(beobachtung_import[4]), float(beobachtung_import[5]), + pfad_datei)) + con.commit() + cursor.close() + con.close() + print(f"Der Import der Datei {pfad_datei} wurde erfolgreich abgeschlossen.") \ No newline at end of file