From 52ce98626c101368ca18b0e7f5f18f0ad75cafc5 Mon Sep 17 00:00:00 2001 From: marcus hinz Date: Fri, 12 Jun 2026 10:40:47 +0200 Subject: [PATCH] initial --- limbach/.~lock.Workshop_LIS.pptx# | 1 + limbach/Folie2.pptx | Bin 0 -> 30437 bytes limbach/Folie3.pptx | Bin 0 -> 31508 bytes limbach/Folie4.pptx | Bin 0 -> 31634 bytes limbach/Vault_Impuls_Workshop.pptx | Bin 0 -> 34641 bytes limbach/Workshop_LIS.pptx | Bin 0 -> 40658 bytes limbach/build_deck.py | 245 ++++++++++++++++ limbach/folie2.py | 161 +++++++++++ limbach/folie3.py | 268 ++++++++++++++++++ limbach/folie4.py | 170 +++++++++++ limbach/memory/MEMORY.md | 1 + limbach/memory/limbach-workshop-outline.md | 21 ++ limbach/merge.py | 19 ++ robotunits/memory/MEMORY.md | 3 + .../memory/wuerth-plato-backend-read-only.md | 14 + 15 files changed, 903 insertions(+) create mode 100644 limbach/.~lock.Workshop_LIS.pptx# create mode 100644 limbach/Folie2.pptx create mode 100644 limbach/Folie3.pptx create mode 100644 limbach/Folie4.pptx create mode 100644 limbach/Vault_Impuls_Workshop.pptx create mode 100644 limbach/Workshop_LIS.pptx create mode 100644 limbach/build_deck.py create mode 100644 limbach/folie2.py create mode 100644 limbach/folie3.py create mode 100644 limbach/folie4.py create mode 100644 limbach/memory/MEMORY.md create mode 100644 limbach/memory/limbach-workshop-outline.md create mode 100644 limbach/merge.py create mode 100644 robotunits/memory/MEMORY.md create mode 100644 robotunits/memory/wuerth-plato-backend-read-only.md diff --git a/limbach/.~lock.Workshop_LIS.pptx# b/limbach/.~lock.Workshop_LIS.pptx# new file mode 100644 index 0000000..93432cc --- /dev/null +++ b/limbach/.~lock.Workshop_LIS.pptx# @@ -0,0 +1 @@ +,marcuh,mach12,12.06.2026 09:55,file:///home/marcuh/.config/libreoffice/4; \ No newline at end of file diff --git a/limbach/Folie2.pptx b/limbach/Folie2.pptx new file mode 100644 index 0000000000000000000000000000000000000000..3ffe790b60f71b09877789d483c7cace8d3742de GIT binary patch literal 30437 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 literal 0 HcmV?d00001 diff --git a/limbach/Folie3.pptx b/limbach/Folie3.pptx new file mode 100644 index 0000000000000000000000000000000000000000..cd383d830eb6756d5c8dcb8543c7f0a1514f4355 GIT binary patch literal 31508 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 literal 0 HcmV?d00001 diff --git a/limbach/Workshop_LIS.pptx b/limbach/Workshop_LIS.pptx new file mode 100644 index 0000000000000000000000000000000000000000..4a23b99df6b6423f7df7ee4faeca259be675f424 GIT binary patch literal 40658 zcmeF2WpEr_mZrtb%q)vpvY46CVrFJ$$&xH)W|k~wW@csv3oK@qyk&RyY|qB_Hybhk zX1gM)A~P$iBJ#aA&vVavPAW))f}sIHK|ui_yNqiC{nHB;u&w84V(r90|NFCYu2-sG z0BPvjE5~rvtKNc!B)$-n>h2Q?q5f(XS;T6Vfh+a(c`%WAu1N3JFYh<3VlFucmCGJZ z{j&Qi%ErJSGv5}LUmAIB2=8iFRTvmGp;K>=D9fp$sg^yF^2CkmaEaEmi3HR4R*1!E zS_LlPH6Bg97+>o;*x#Il*&}3K9vTnpw=EWZk>2dqMUYM_)%Rl!q$9y-f$LN&4+sjE z2sT+r4_YaUIV_#<8-8&^wbOIB3%P~G{z!-Y6!4?BI)QdJ{n%bQuHCrzX*}%EG|Jgc zdamy20V#|)1Wxks1-9Y)#2#mcyn-|&)HyA@+E2js&w~H~Df~-?kO5~H+Zic1+SxlX z7}+_R(7W4M`zXoUtuw-PUaDcWjmKy9tb>VzH&vCOQ`W%Ixz3X<%@#9ANbSG9_R5_> z*wkc1!jM2rsFij#StR^B4mu0%pXR*uh+c8b)CIK}tvhw-S31aFwqdlGMK$Xqf9rP4Ub zC}rq=e&|%ZCSANk&KX%QIxsAP_h`^!WQQXxSxPmA%n0~=nq#DW64zH)uMtyX0)%fb zHR+}BMUgz4e!rNa!lMY)ih#l{HlWm?je&LGSFaK_BYCR2wrnqB%_+4E#_Vq$r1_ni z4lCXl43E|xot$iQy6B$&Ojk^2YCW#mRqWl^mFkL-nu*$x zdQB_Jl19I~;Y9Wj_w8&VB&d-q%Xo#fXDwa@zU&aAsXA>jV!?ocn&SNO{~@G}H}01Q zaqrRH@ly_&IW8ZRFpHW9ynPHI!ZGWf=qOMp$~}BmqcVJuNbP~9cby|}5x(*#ZzTl{ zE<*o<)0TC{x0B-9DCllM%%uhI8}FJa8LM7f2eXGmM{7>6!b~SV3}2S(fKlU7@OG$L zRmt;&@OP{&j@~N5SpMHq{_Jx;ga=4D1bF}Jdja*Ir8IJJa<;Siqvp)GTt6dH@Gh^s z!6Xbu)n=jqD(83eIot0d285gmpOn1ghC89JFG@Gs%y`9fe4{ioCq@vk%rbO|@5587d+V^8)}-X_P`p#aSCf~_i>?hJKKf+mS^gyB0eQ+@i&dCcTW1#p23pl+ z?5xZdm*z78E9Oz8z`|0yVNOb*nv!XV$6{7ogq1Rh&nve?i-Hd$<2>6}?yJD}g$d_c zzz*9OJ?Yc_zkWXGl%Vr@xilQlC86@bnUDsx4&bR*|y3iE70)n*G@CyNAy-r@MwepT7 zsLse3OJ0&>klhgs5d3-(#o!U;M!XV_#NevrL>Q1{I^zQ=ce_JsuQkW@Q8l6ZNLI{B znojeTqPug5fBGGMuPQ)bnTps>@T`$_7tEoKFweK7;+H3iG`+hfG$cVA67&pexVn4F zR3MH;WcH)sPd}n-Y>^17aElAwM^|D2ErNxJlP?^R_x8%GbC2hskAiKoUYGqb&`LH@ zM#(=UYbWACNYw}^Z0CnkS<#>SeSP@^=d2HP2{w-$`4SSOJ+iZW&88Cw_+zmwCk&gy zsfw_|grn+7=%Q1Q&50!VD-SH%#%}H!2F;rc!L{Uep8YKOfPW7L?ECPsG+_23{pDcL z{(Uf91aL>xk-31vQOAA0FK?{naw8m~ReW#9}>CF`GSD@$>w(5rU)q1scc zo0LP@iYeBvC=)#)WvSMC{O+tj(MU>tQJSVOE%h)&eSy#Bs*h^d{p?RG9iO>63|ESo z_G9CV{sYtr%`-F7x84TI+a+a&5q*0bIBe?a9jwiONrP`3&4uckWj|4rThQ`fA-aoYk$ zw2;SJw53({A+R~LU}u(QsdJg4Cd3^q)QYE1>yo4EF+{|{g)AcdAQMNIZ%-h!7gpr6 z(cBD?Qvot00@^IfP@Pk|=l8FZc(I5om?}7vPAg7`kK+um86Fxuii9n~jqz({tly}? zG7Qc%2GQ?PjasXcXrq)_pTZohv^ier?=&Ux#Ao4Xs9Et&&)M#m9Hw1z1+m^WLfbzL zBo^tvl^bXcx^M(>(61}#L7&PClZ=XHqfB7ijWHUC;TP1fU2bTQuCb!PABoQWf)0Zu z4%cB}65TYlvP)G=hNwkR3i9FRRj0Qe(lwsd?(}iVWT)$V-93x&ag}!F!8u>PSS42c zApm4i=8oV$9b~i$bh-(tzB7ImJh^lvU!bAG<zgW_Uh&eoqw)# zHRRjg>^GLVE^sDE+k|K53*-)O#abuB-OFWBa1icHMi}$${KLA}Ip+3P$8~g&yCM<}* znoYmgt-opWJ8=G4y#Br`qhfod1_Y2qE`0}Q+*mXaNr)3VX$edaUw~!jBq2=OzFo{l z`7wxrgClyC1?KAt-Vf7JJc?N=a`fa`^diSFi|T@O@bGW(`PYZ@7@!mbT^ift*}lx7 zlap4d7hGv4_`r(7kqhcXlVzcHvm;eQuRtt_BhhlLltG?}+r{RjE=q zL$(RyBd|bhLS@2A$@=Z5Svxd*+CE7u*Te^;C`ojZVPOm{NC&afsY~9Od|`Q33a?Ni zXL_kq;*>)7IAmr3hvBh{mg*z-zE?YXQqvfsYA-*Yj+fk*Ktmn4k~#@o#sQI(3fWbI z1w)h#w0Dtkp;6y2!39M>$zFSVCBVqwdzq9h_ijdp;Xw|_GeZnjT`mQOVi_WTa3Aah znH$y*x=pZma9O?qkG6|kw{6a-+`iEO%1azYt?eg!ScaS;7}1GtW!L=?EbJZQ_qmT@ z>C~kGYsURFpHCF%ACJ>7g9HjpcZw!V=L8ix zLLRcvQc{`p*-ZrVV%7Q^UKdu~K5TxCq%T*W#+kfuXf(LK#!#t8|C~*?`M!kQRu(~| zoJrGo!Y}8lV6)FEPu%ZlVkIvYwW(EZUJbpgI-01;{-(XLj-tV@AnY~|3izJ$QGvz$ z42EvsHTMyO`7cDRNV;Bxa6-vS+~@^Bw&1diB6@-q#3e%k_Q-ip3n? zh!a3=vjaLKzmtzZ$VzV*9t$f{+U*vS|NrYPLPV0q$;?VCZz?6&a>E?=Z`YbMEF zHKa;ZaGXl^#XIr93VI5bgnkR{;@}Scq4J4fjy8Wzo~?jGWl^!P5%_$__??pY-U#0M zN#t!9VcwWkH_(^!?s+(f$V#k(YAn?so_aEs+`emyy(k^iOt7I{%=)A0j|wXX!m1U3 zi1Fz!BgX%m3he*GRiOLlCCI;=3rzoeh4=sSWMKLCWB|kpCdU8aGW@?q2IhaO0GJG) z|E&T*1-5^y08oMR-zor9VEwlW02ThHFBtxlb@PvP(;w^RZ##dk|6D`MX`K?ycU!Ob zYKC1Lb3CObnOlQ<>O$u8>Gw@Sf8bRaBy%8cSGR}mOCTlhunZTR=606?$SD8*U2n*z zJ7^dF3P*%w6^l=zFa;4vAk;NvG80Nq7R(im#4`}kfh}mP!B%Cv-?kVw^9wjzMXg#H z^^=_PxG963jKbxR%y~*U=P>JX4U=wV%J8s#h!<&zV0ams#yya}8L*5Xqt=}1;mvm| zs3;r68Ytm8=0`h_)JGa{#k$8S8+4$GwmOv^Rm{W?i;klDarR4DrlrBs-p+kd7=bK< z8O>~_+!#b>>l%{m*e4qv1{#lR(?esUy#>MkY?7JQ_!Tlh1Cup41Y3^SUPDDXy$|Z4 zO%yVQ6By)xH5kOw>s0;VP7{gld`|^_!Eb;Ci~S2`z_j`E$-=j+XTv^p%^@V?`B%&u$K#RFl}l z!plXXIQs6`N1?y;Oj#>vCLMNBoE-0|?s>rnbtnc;Iw_>7c8RWjPranYvpd55damyL zb5*ok(y)Hh{2L#tg9>6olW2R=plUh#H_5axN(4Hi)$SAv3nKPI{KwcU-XBG~TI4*KlOXHDb_qx?!{W#wlw9u+=1R zDmj7#Y?@`7wPJgmzAJ@BQ4hCkVx`qG3tg^)7fr5IaJo!O6QH}ofamqKpa(q3xHI_A zSO*sGPaj|rKw|ELyiyI2TE8tt2zm9w=vXl6Y)A^~e1e+f)6^ev0?Ciz&e>=$YWmVW4O}W*A8F`R9%Z#goj29DCZp;* z7HiN~*#c*f-p99RU8W8_*?&dpbMkhpDh2EI`oIalLD@96Jw?<$w$IebXZEz^5clX- z%oxSv7n#WD^g;PcU@enZqHM~KBx{7jFLkY}@AbE;+twOD6rCT{J`JL+8#K zEyuPXH`*W{u5@u_;If(obR~S1UP|aW zYNEXtpIm@bpJQ1sz7G(gN%TP2F(;?U^nJpdlWF%N9{(`I;gKgAg~2Olpsn8L{HLhg z9A5(d;ktFJcbbC{znUdIA47XQ(vQ^9RpKrgDd9zFjmu%+SIs3WJj2c(g%u^7ty(|G zuNU=vm)6V|awxjkO+58e{BjbOoRFldN#^aGp3)umT#xk5%a`mq%$uz4T{p_e-=E4{ zIU}pBzM7&vBzzp$Gn)T`CuGMVRiSl!x;@sc9VvOe%XYX)7+ur9y=A)M=k?LKCvAWH z<3tlmKfd^b0RbTZic$aCKKrl2*`LMkxz@Pj`e(GwM;bI<4rtSz|Am5`dUZ~#V5qiFnX{i>fy9$wO+e_^1-S8nGFo2!hP4X1z zhXj*liq3G>68F#^LL2Nu`Qqs|aUn?rs|Qk=aRkEB?q+--mUzg|{eYo+QVH-7OFPSh zl1m)(N+#cjo{Ht!!b7)7NYQYD$eH`tHVtg`v08Upq8;K@7Xy0r&|B^Yhj zIsv6N0wuecY{<@oXOdAl7$xAlA~gkBN~2`-F9AICJ}O2NH3}c_MU?UPz^)(WD&xLhwgOsf^*+(Yc_nB_0d} zGhmE~yHE&W`B+5B{(7|vWMXJ=*V@>%vn?Fkp&wKyl5&!cl9X)hhCFS#AQMPYJ4Kwi zi~NmC0~MAvUw+0vE9h5Lubg#`Kt4wuf4!M;)tR;hBMNJ(Z$Q+11RFE3nzU}Ro(WkCD-EcwsPqxSFl(H6pyM?eS$ul_Jh8`#3I##EAji_*;#p(#^Q*CKj#fIk(1n!D2ib8&Cp% zhRlIF!^LDs$NJD6xt$;s`=hqt18!ti5M8^QHo0N3xS4CyajSqEF&lr ziNIj_Mylq(&~o3*S)VEq40q>=Vj|#%*lVdxvyDzcRkxB*3VyPgt%#8H{)9ZontO}Z zINb*V`Hud|#ZG$r!vYN3OdYkGs9Aj*egfT_8xW;ZOHup-=_uw?h) z6OJpQRDZf;c3+>I`Fd4nRLFY|d|=HgYeg=--4`&XIq=DkL~VNrA14<@^WKh z+!whol#A~L-+>=G%f@sUH6tR6Q!>A!HVf8kK!t2+E)4(WfQJ?vsH|2Bh*3n0tkYu;PaGRs}^vQ0U2e*QAOHjXXm#YyS}D-}cv5pRgn zjDvIfTzWspvJ@x=gcD3%mNT#uQ}kT6Qif-h($SAn+vIlc+_lE9O?m}u{Dvx+R^JOC z*d)6}WiFdrXIC3qck!K_NEMM{MeNjhOd?3{0vYWuZ5&#nk30-o2X})PRh^C8I1uV* zy@4Fp3^G4(F}?N&-E>))jA)&M;I^r`iGIO(lhlG@3{nFw8D*_7S%gH&_pR( z?jJViL9UP2Z;^ZvBtytshTL{Qr;)gkc-`1%>-`iwA$9DmcRv^HA(QsH;lcMYrmK1z6VHWWGuH-&Rulu1MTVA6TW@v5@qbSB$?iI@05 zCR;acFm#}i@!51!LVOV^0Ipwi#2bp3)tHk4|0OgOBcCNMVxc3>W>r&a=xz=sKOn4pk9HSPa>bB_zkdx1O`UDPW?Ezk#x83`#1RqDmv{GfLUhmL&?=DfaX*3nT+Z~1VERh?m=n zjd|xTa@VTPnR3@T^7>qP9B@-`-j=onBYA{KWr0Ly0$$<=QM`%N?m5IS_5M&1QO7y!iZW~dbBM4B%n(p=Fx^vG^ytsoxioA z(y^qXLyLqne(gpZz)kV?vo0VNJJq5#gP%20FM|+;IH>*cJBw|oz^JLyi)?;!?{I`0%gna5zHxF zq%O^e4^KWX+mhZ@C(PB`le1QaY~F64x1PN*Y4A`b9J{z`~v%fO7 z4gz+G-8+!Iz^*L8G0kWvH1G|;l&o!q`_F%4%A`c+ zJDNB}i;F|67E!jh_eK9S@MsMf`xAlp4z}Uzo|zv$|Et%*kxI9S0aRN(o1jP8;fdAfG6SA%e4mk zAmtVRi9MmhxNHA>I}8rw(&O+|H=|19u=*C^2XUelckR#d4ve(90ov*9{;Ru&bFlNJ zBDa&Kx7!(8e7#JahK_lb%Q+XDW#0BD&?VR?vQ$~-r*oAi>v(v=8!xE@yNa4dj9(}< z;eOO;HjCQ|p1(kULq+r&mly&7m5KirRQ_0R=UQ67vy}HsYR0FLoC$Vvnqrn{qmnEK z9r+)$KqP|DY*6+<63J^nWgchnopIk!mD=JFfa2rd6#ir>FFUb4gM&VJcsfuEvl$wK zy=btK9MZXNJ3{^%V=R4Q&~NTOTR#Pf&<(NkGk3wJYJ=>e{Wz#!<4rNmrzl`1V8)CI z$?YptR^9N@q8$Q$05dRUptBz33rG>zGdVH`*h1r?FI?-eyTXWIRSczML^6OUr&1L{ znITdkXHf2X$SJ)=mn49&m?S~TL@9B8DzcWj>GOJliHD*0s6tTERVmAi-!@cqG;Hv= zDAUuueY!dEMCgMNxsUNx4;uRdzA>oD9RdebO@TYPiiJQ z@g0)8kzPX=Hu4@nqYLvOw*zH3_r*MdzC;ZqRz^!*10stXWU(g6^s^4@@#qCLKlN)t zdwt#qEvD$LwWfRaR}ByysKb|&iif>4kniVmgeUUD-4*yb(bELWxx&rHu@Cv5R|h7C zDtvWeRJ6rU!t>F7jaY<$&p^9U*Gg?6i27*gUfqfPhKUm7+ILZ_g9;p#Xqr39sA#Dv zSFZ7)5vh76KjcBilb0&^;BEN*><3q>aNceHyMAhvY|IyjV^yRw^rYV~!4%jgQ`k}2 zN4cN96QZWkj5szOVmq54OAOG$-%c_W|DB(hw5E3+tp0|{=WdkWFabgAQ~u-|2t=TJ}N8z$~2is7jG;C37n_rS7A zq(TB!sx;UuQa(FB_)--XwetAM;Il;7)}`=_me6e!fkc+` z9GRKXaX>$@!oWTrkGAdUP9c5EF%E<)>}-7iNl8($0w5_7z5bn)+^^nx(M@G{kLb=A zPy0Qb1#k9O8=pU)zX)jqdPGKaSBx3lKhD?!^}Nqp>85mBMsyd988&jx-e0E)C>S)` zSE*uKB=nIWY^MPoVkOG#XBq&6Y?Ye;5b~hgCd019&^id%C2r|{Y=gYA#cFBWtG4Qb zIQC^Y37$s0OQ8p02lgBv>xDQ5&2&r#4lhZy1wKh`Z3iypWq_MtSJr`LP&j`ye0)}X zpBuauE45Wi+sJ+Klo>GdZ`0Yb1vxnpFE)+1+ROFbCwN(RN^MA>d55lpFIdKL2 zO_>k-NeFydKd)Hhrt~>mspJQpq38H*Z7K(F~US&FfIZM%{bkza48!j8nU5>Ttxxx==yT&Fkq_3P&(LRJg?x8-ccKMh{d z_a3pn4oPX5U7G<7f1vj^E&9=Oeh~gc~CLMx0xId=4#I{!#b`mmF)-mm4wJ@n>&piDlg2Uq~C zt^%a!#IaX^)rCA2>pku?QH(9yIuaXi*NUYXCg2tX&tloywAsWgf<-%glo2`ocZifH zhRP;hv63@=^z1u?q){jSfe1-!g{22BSFVaDrY znL;y#*+6CkF{4~&Vq%`HdFsOW8%IXL^Ak?m*orhj@64WQt)k1R7y`usjHF05ReoG<^SEZV;B|*~o%3@cG~V?K=W}M1=y_MJDjlIxr9{~8e1_S;KFC4=M&K^o z>Dp3XLRCrH(j4HqZ;{4&vZ61Q>WkK+&g&YqW#v7X=Y^2vO_xDt^itsrrmuZ)K}>8T zagjm?v(0NEYuyJ#p$cv+D2xV`mDbdb**;0KDX@f3-Uo5D$`MI3DnlTKB4|KSfkDgJ zDX=~%LDpQE#SV);?47Ek&rj9fL#k#cq0ByovsmZH?%XA~!dMs%SKNC51-zjMsUd>K zrJ3v_F;CT)dJEdtcHySdJlRiKVf5Ws$lJn?VXR$F`z;Jxgd4d~CH>TF5q_^tZcW4Z zDHP5K+JrWk9*0C8_m5;`C;T+n|M1Xi8@X|Uz*tO~8&TfL~>~$Oa zhYgR14lb{Yt@iVPe-!50gG;e$F>g~}g?8({lw}ei=Uz|HX zz+-G(n91mc0WMdiRg2~Rd>IZxMcu0LO*u+xg? zuImpUitihLh@zUNUGQQmGQjTNrtzC7O*ZXprJa~S_biv#O`e1sk*v$PT{}j3V(SHM z8W*s8rqgeEsUicIt-0#>F z)657D+nb;U=e8KWd+9v*C)2TH2TgRjT>(OU3G>3G{7?8Dmt@89f;s6HS-+>UHGx-*Z27Sm%{~1I#D;Tfc=l$W0Q;0 zhKl`F(FQ*w$r})JKa?y!s8LNhYg7B=QicOtwol(k)+PH@!vF=ejsL z;xuGBy>{%oOz}NYWby0s&PxQYa(t~WX)@WTZIi#ElGW9)u$uhEVT%4sn`W)dkCfoo zpGr*In5csSAjg^K`0p5Je;RJiwRHeF4wCOB6{Gt|#)MzEs*D*Pw;cCASM~@ekVqhk zCDM+6EN$a_+EyO>G26>h!5taCKmSXup>%CUBJ+I@aljx-`|Iv}Aoq{ab_=Oqu!u~1 z458DJAfWot;UIY7r-O$&RDoFO0Yeeae&Wnsye{tdU9!^y)-E9yzGVG$rQ}BiC~+lI z-u{sSWI09O0hWnkD%lo^xQUn+ESy?_#~^rR%a!7vxKt!?$@}%PLuMdHsgh*SW~YAu zMMjL=wKK~xD1#vdR;+2kN1~xCKk7($EGLQAmYjRh#YRODhzD7x@WpBbn zE@EeRqiOKBBbVg9eQ(v42b5uI)3rD$%qswvS#tWS@m8*FQ`sBYDZJWci08aW;eDg+ zt|Uk?F)MNE_kvmgolrzX-5RR+aeO?Ty;)zbT;RuCU{RG+Rg{-}X}nc+rtwW)lS%+} zn5&q~A$1^h%>p!3os@*HM9mH&3{nox!X+0}b!a(~b;CbZ(Fcw5rlm7ckf0pau-5 z^#OP?2jGd6YV0*Did8 z|mv?LJtYj}SJ;{x-al%*o6@W|hTEHK;=cW-Hr{&t>qQEN zsFci6@Z)SiAqIJ<_sJW8C@}z{w)sB-W9qu_SuGW-jC_17%S&gW7sK{o#i!2+E@?dd z_>enI6;B-R&OGiixjY}n#j7#iF07`l?e8)@?l!nQry|6suOBfwDVDMqjSroVW^Yf9 zTfd=p`hD>2?0Cf3x+;-X2_3gYW2e?^y*QVJfR0;#UiD(59riH1EShufydP^`@nV|* zM|{*p1ln@JS2lV3GNlH(iO|vGE|t0>Vl58pp5zM3#xIBdq&vm#ZSxGdfU}mb zuA1r0@t8~31BW2MqxN0E;oVBWqtt~2_P)PNuXI&0`N{XY@od+tjo~yMa9B zF)Xk(mDOe}AGiw0<95)Rt+s1Xmr_8}P%PXZ-ahMf3pPu$+YJmr?p&p3Z!0{17DK^} zFMOI*=<*3KG}>r=y5bS{zW?Qf>ADq@D{dJm0)LIv6A1 zriaxIv&wy5zmkrW`6tgz)dfszS)Z;W&KPCAjI1h+qu1xeequ7|>HPVW=Qd#>qfS0Q zZm0H3hRkt9{Nc~jTvb0gvwFB6xVkJnY$5U!SiNcVbuh7B#?_`Qfg7+;np_W39qAm$hIDdp@%gbYmd=NL= zH?;^%h6xk8z{fl*6-ghbjxw)+@6D0j+=U1UWflrq%z<#K)}L_7mt)d1P-NMB>J!R@ zl8`9k{jU00g&7tJ-ac9wYO(>BwB&?)cp-;@x3LHwFPU>9O8;lsZ3#sogIT`yVxOVf z9u<-_#x_Z)Z84~beX@ZR+RVb#F>R<}5m@wnGSn|Aw2yHetk9gOw8<32(y)qRLj;V| z>iI<)hh@6Sk90z3=)@K+QHE4|j|mm%b*#e7&?xaEt*VG1oYVG%5MZ-jPz~tMXpec| z({lB?9AwD3l!HF*d22T!jAc1s1#geZIa&GH`eb1c(8MnxF@dmsy=ZZKc*p$anOQhA zi;;D;ieo6N_`~Wtvp*@a;p?@0A;S3=lQMqNK}r_3sX9aBSfPiT(hNGcQ7SNKVfv=u zi=EmDcWO+`pXjF4a6r`a0Z>)0XLL`MEs1m((=R*Sf6Xx6ggC4wFRf6lbrL(5e^%F| zWm|vaYd|?nPv;`75b9@4)`v$qjU(Ea@4JO|FXB4c=LJmpI>2ILUQnS4QzBYmtqq5l zCJ`9n`7CVI%90;j(cWE?f7)on!XCWo`W`*!IvS3@ez9h206p$#v&|MktO7IE5}U&) z9nf|x94!p}g)?0jHcgGLywq@Pp=O?e7>$SWwF(WlO#4v>jW?w}hBm!i3OM4h880@c z^tiw3pe$O_r(n_FpMf7bIfn=*8vC+e;bzb02z7L?@YsM}!%b==FB7$*x@2H15!NE; z`vNIQ9P(t5Kh&@rCDw-~Hq)|2YH%xL|GL8AOufuKr1W_>PVbKp#R@v)-KTmbI4Y^( zhInX1kpx#V^+lX z1x4Ho8Kqoq^&2JSk5{M2r2ouWZvLLPogaRa16o5r zeII9rNd|oxU<@Q42F6cH%mj(^AwbDpKK7j93@THgH84vIR})O#`i)IK@l8Jw?hOu+ zJHvftiw2Q~+5;M1D|a719Pw3d`TA70zn4HFwIh>W1jBd0K|?LPqiX#k zdA{)E8AU@H4GmN+AIMmy;*QF$rSul9ah?38LX+rHbU_zV-UgM?^02-d3~rE)OE(lB zB*e!UxPKFkF_Rsg(YpM+>HP>KWd6Pay!Zs0>Bj}~etT>T!MK&Qos)*;7xGj%tR!jS z$4rXQAGUCxFpUNTIm9{;f4%QBJmJKZ5Fl-#dE6CMddn1x%wJo*wv|1dbbUBgcYU@x zv+~-tD!FNVKk3q)s5}j}Dpxkrus~8 z&A##ROo&PJO>?pqzuu_Na&?6oHrn%}Y2LGeK)667##TLsFHm^hW#OpX(p0Or@4_Ab z(a(P{Bm2Y_Ji=4flSUoRVZMkTm1Sw(F4P>c93Lx1PhceD2McG&7&W zj-FYR>-ISBUu^Nw_NO-|CL!+3YZt=P?PP-> z8#|C!X+@zI5xLwMP;H%RfzgY^3h8+ftz-0X=ju&brpVUC$8yW{XCe87gdO*I)ATV9 zc5gh-_+qaS(jeYUsv>f4=R$z$ zgGz$nNuPe++~vXssDu`UI)(sR)=;|mUVhdbOQ&b&VH46YPEsZKp!LQniEh^!Gxu@E zGk657vX)?Daw^@BV+zxtAE(zC$o*-75D)4t^Kr;|2>yFZT@tDTAqCI4MBw(dai&qR z6a|R#zDl$NaR$JQrSs#I1WVyjW4%T|?`GA3Z}#%;OyX;OjNr<=po#4B3R zd8pq;#`1ispHrmO#+MT#tcSi_>!?SrLkCw^#x5yL{WP+DQU^j%=lo{*^fZ9 zWZucAJ2DvXl=RHfzD}soj+^j$wIOm)-g+Yq!eTZI@uJs+Q?4BerG0)by?6r4cd7X` z5logU53?;n?3N{9UFs(1)}I{}ZB@l~9$fQcO!8)!zn#WN{b?qAwZmRSt}6Hd^@=b| zDV??0xNJNrWf~~<3>wt2+C+QIum~P@gOMHR(az^x^2)q{kzuV_J*vQz>oo>AkYH9Rv8ciCsuYu#_0W_P_HW%?e z)0Kxsov62tNoN^aYM|m23s4inKyZD-ARJE{71&ulRc@b~{qZMmQkBhj64ga#bOLVt z^gaTtQckmmCbRYr*;-l=`zJ5&n!aUpLo{zg;htO?JhL5tytNO`csL!uL2z9L%&?iC zm25N*P3G)lu(mwQ12w-VzT!Cd;yYIBs`@L(!FL|v&1ooi=27z9M$f-WY!QnW^`4pPwXl4VOTblTxSmH zG_Tv3Z`AdNsIsIPdyz08t-7@5Z6dXrh%?xHy78BJ6wxJf9DY39_MqbqwPcIC2CF}k zIe?#M;3}VE=qO3@MRqqBzF$7jbGG4c$dP#&{ED(e5bJwQH`n-?GtNfopeey%_lcYB z-q+c1lU@9TZ+sxy;2|l9x03FYp1f_1;TfReu+z|4trF`)RV`9QP+-mijMr>GxPUKr z*}_W~34;ChL3{YNqehdxV+PTU$AL?6&!PhFQ6kH=sijrOM|5RUxY>;8756~7nRqA4 zv^)3YOE_8++URvep65MVoZNM9d%`gI-c(G3P2_F-5A{GNZ+N~NyjmM*XS*Z;NG0?gZ)OQ2!oaQ`2l^Fj`1sKGa0}Cc})Dg7ICXGsv8T3^jwNV zRn3aZqpMj>%pz}RNqeQ&uBwat+?{vk^4yUPt&ahc`)QF~H@6Pc^q{ZX3$JU*I^3;x z7)yHk^Rw49@3ov~$yD!8$!ez^w=H)_-pjimL=D?6n>(_PHan|+J*LHRX!Q;VIn!Io zQMXUUJ!Y&vrdnE7AKxxipHm)8G~TySqdy>jGmZme*B}wVxUYhL#kl{fY5dO<%isFHmf0hRS%nLO{h?b=S|9{t|j>N z`A>jXX7_nc1>;izZpDC9 z{{#2?#A_*K;b75ZNe9YMUn!)tBe;3#Fiddt&tS8OueqjEiK~TZC5U_Ia8?$^w(>Q! zV+wKck18~y-VH6ST51~~=|rP)u^{|KH6TCRgDv$nD2-PW9ZZ+Ic%aTSXW=wWIp4{i za6qaHb?4xQ>^T&Ccn-m!RA%7hGBK}gtIW7yr{f3^6t*R%M%eZ@*zc@8d)d@UvU{z5 zeVw&OI&TqO+$jw=SrAb^*&4VhP&Hzk6IS@prfwdOgNSTd7)#V|I8s1ZXNovj+WEAO z$fxkW`e9w#J?2tt;T19AR5PZJ8rbM1*52uC0*tWv^uNk`>!>=GZP9z-?j91{U4y&3 z1b2tv?(XivodChzg1fsD+%-6a0O4C<-|w7c-@W&_cf9}JYX)nKRio>-=B!y=-94-3 zEP1{xA9qLYEZrvuaB^*0LRFCuH4C(6D)o(m1!I!MC}Jr;s5o+8HGPPZY@FtU7xBus zCTVBpAB@r9$ju+Fhou`9FxOe%QJQ_-2s*&?4HCX1ANfQX)VL5fwu4lz)k(id6 zRt#g8O^{utX_Uthe{aaAs1CS`7m%qA8jnt5>xWzz?n@1F{4y@r4bkNC{c8%b>0NU= zlS2zPaNa}_ldf-0PrlSOaV(Lj`gMP;fxPB!GpY% zh6B!H#Xh>1YR#nRfw0Fe;9JZnc>uvHn6&8U#ZYYXSJbankYlP4#OSR*|8D$SL+7+ItVog>8SsDT(uII&!e9mC)Ykh0zN+k4q=o|59F65RFy@C zye%Omly4}A10n1guRrwk3U&@s1xQ??zH-qxmE~IMu|sXtD3=Y}Rw>%L!7XBZrlW~Y z*nWdC+bEp~liARC|5yp)C7qh>zrR56EqLjy$xAM_AkG-Vi>>zT8DTo`EnTG!nefx? zdRgTF<55PH|0`Rmvo2G00y`Rh@({o(CsmGv%M^5=HBb6vIlDyq>HzZUY5n#Nc^*R&)A{xjw)QO)RM!O) zqPj(^);!Ve*^M(``;QNvl&%QL1z4NcUp%=7IWG3ECdQranA$(Lnt$AHtBWgK9T7dN z`(mAO6Mr?ML(g$saHwnRFpZsSpwQXq(1;OX@EPe_Mgp62eN+SfME?00?_$ZbL9oxu z0x}+hn*u{%n9CH-|H+8;632V0@#W{_ir1N{-gzurDwe`5X(3a+r-Z4NDjEkqz&|ID z5nAtM1zCp+AolZOjp2eMF4rCyRPt)ySCCs8v-@u|H3oVDiG}{A44klp1g|6fFW*CU z=wvs#Bbx=d`lW1;1W@N~7H!fG*ypI*g{c@=ch(qaA<09U_74gG!}f?Vro{wN+so7_ zm4YI9QO#eW!>%gwma757_FgH4+N&Lp6dg#3uxvu&P<`ViKB5#AR#%jkg~(D3#I+Gd z*^4~F`QU!4n7C4_s!$e)S-{bqS0V$UxPnRw;WVFT%U1E}$|kaxOO)y{v6Jef^2d?Cggc)jz0xky4;gT zS@3{a4n%$*hw-S>EDJs(1ZJr5`3esMFzSrUKp_7$OG90&O5h@k&d+k?oqEF~j+5HvT?~kNxoam+Dpi6nZXfpZd(*D#IZ) zbYMO6L9nnSHF5$(>lnu^NI6Q8VseAyG{)s1zl&kDtn=r7AyHEA+9 zx2&>Dn^WXDzq)bP_X>U`rTE@KKp4W3I3QdP?37(Y%Y0h|7lmsyh{wem=+!TWa5ZJG z+8%e)Zm~`x&r?&+)j}_=20dY`U|x(tJx;O9{5TUO1U-8z-Odxho(1zk;9ceI@k(g? z{13O5aZ)QXlfF<3dNq<$#7lqMZA5T`cUc0E0s_MpiE=;6P9Lzbv&Byukz%SZ+^~Xf z{bY>lg?T$rGuY8#6}_tk2uBVB8{1_GCg-b^!J4IN-5{GcdgI&j*m`ftDj+~anF2x? zUHP79G2&Q3(AmCrT1BlFfU*!6OH?(__RCn^OzK%1S0sCH$L6kNwxH_AccB=tsMaA) zL+xzeAb-Ebteb9YXKV1&>_NO=NEcMU9~`yqrDz8c1t`jcd5bM0L%hZXSY0%9dy^LN zyE2Nxwv`h%!VI5%-i`@o^AAqLCp>V)7Z`vdHIrhZ-`sD)FMNMV!AJh&J+@JqlzoLC zkX_$P{?XDX>b7P`!C_56Sm#aJctTREF;dF>szDsje_>-R!#FpHZ`)24H4%^Ycd(v^Daze4Tx7 zdMvyA^<(BY+10Ro=a$TQr=m=O~Tn9OCttMUu0nS5gI;q^BL_jLrGI$hcO)+77M z-pLzMDvw60U-Yh+tv7rGZVktLAmE>05&&Z55K3+XM@&tE|C15(CFcKB^A|TpX8wyC z11BV3pQ>+^2 z#o$+gHI}}h>~TzQuthOtZT)MAvkczKnT?A08#(v(Erx=B7hh!04Yo>ak0a>Tv-9~p z^iL|3Y~ zAb*}4z^bxpTqbfawx+uSF>k!!*vX1nF7&70urvpEsE&5P?vaQv`s_PTErH@81xBi8 zgd6Cr1ONh&RO!^rIdf>GjzwWClKS${R34JIgod6Kw?sRJhgy_w-;`T}A|E9Nvk~aN zP{ZtO-~CJmuBdy!K!7}!rBDl1ZQCsZ5TXp<&y*#Nkznjzsl`(w3$Ygf&O|FvEA!Vt zGZ(x09i%|S3LV{An*=6#}h=cR|Esn3|UW*h8;NA$WwRiCin zAjOFno^X&CVsd&g^4g&Y1n9jWz42c$bYh(~J-=8{y$mQ_!e7-~7DZKo|8zXJT^xxY z4)$t;y+5~g{Nq=1t=ul9rIj%U^f(e}W=2s$#0`!-BNFjVz8G30o(U80wL$w5q;<}* zVDDh_VWf47ZV|kX+-@Sf$Iud%;_(}*hW8pbdlmH%CR4PipG{X*$Bh+obWK_^qg~jnvXvt0?)_uF!16pKp!hQf^2_t6>)NCjUu8*k zP$e#Af>uvjf-1gf53u16em1^sX~6U@I8NIA%;TUN*oJx|IZ4g!aY*q8aMtzuygS&{N6)GO=H44lQI2aGDpAs6?y7vzal$A9aZcS2;Ql;rH z#gZj%&#&X^JZHR=9_dOy&YU@)wo&@9y^~OP#Tr6WvVWS_OA0n+rz@pT-8H(_F7?z@ z1%^=W?R-}CFlI{Au_MDp=f(h^dL2D=?dcB=O)d_8o;~5yU0-r?QU(8zt)!m43=7Md z|GhNFis0gLUy$ihNqIpTCJ~MuEGs`w5=fou#_idD$HKPBoknE3_V%7q6L694 zp7TRX&zN?=m&(AXx#X3lg`9`&%1Zu)in}EyM_GhSO@Vz&80|Kb_kD@Xnvv<6+k47Q z%^tpAMx>kH3hmEL-eWkfIZrO}>;qOu1ojsuov05U!5nFQD_WfUvI*?o@DGf2AW|$m zXV&B*Soq7lCD3T#RI3H)DvC#KIK>nmxjc7;+d^^jXfHK2Z8j>QwA_EQKK9BSEvwOz zRr$g*RA`*&yn^74HB0|HxJDz*34)o`l2^xG{pv>j>ao?>v6r@?weYEP`CDr9b(v6C z$l5O$H)NwKEyWnMnPj!JJ{~4#+o+zz8jYn5WoBM|MS`*o`%W$0YrYE{9#T3j4}-_a zDkskRTJO?(p-k9PPj61sme!(E+A6;Q)|qQVjJ)-n9oBp5a7)FWJ5L()SJe2&86M)A zpT0HXh(0w65kKb}uBrTRyV>FU>7Zzidh^{H=%4`Q`lp*0@Xq#<5%Xnv?{6vYe$C`n z{gT{naSXo6rf{&F}3`1}diQn%kFkfrYCp$FDw73rFq|_7;n=n@QspYjumA5hZ{RxU|xOcsqN~y1G)w7Hc5@LHC-r9auJM{FqY}wA!HGyf$G-*AV@nepwIkBkn~JzSS$Kk0|};|mx>c#7h@uL>AFvIlA@ zw`-_`tE90sWT*2ibzwGT-DX%Y-BM$A(%G};MQ*|$gTsjAoZdszEx_H!Q1)t58NK5B zXz-4TcOpEWJsVT0Q1yM%FqbyZ{!Y`uKo5x z(?%NvP_~@LU;~HcB%f+&wf7dT;0D^PHwQ#~TEDX_cf1LE?@>{?laJE$hJ6ym<;cb6 zp04EsL520e@z;TbY_`1^a{RCKn@x?^f+d(^)W^=H%ViwdZ0PSbkNo@MFYWpP_OeRe znV)2}S=GNNDHD%Lsrnr6S6T!I4HILDK=*uxB)JCjcZy%*_92wKkK28hg9sU|SM50K z<$}cz5Rr~V7o1Xar!G+f8KnSKB$cFrWw9A{ z6D^{m;tL4eVx@eRk>$v>+eoMHZXWfitEZ`7UVk6r$TrO?2EB94t zxs_cPq2Bk1KH?K?^=Z4YufeNA|c8ucYyfr1H>bxFgPs zoeWs_Ts+aa{lJTS-C#tD4*1vTN8L{J*$A(*917c+iJnGhm*nv|R&|` z?j&WP#m7O4Wv6C>J|)go);1u0tv-Cwm@jWdKpxs;8PrTl5*cPXH`M4y|- za{){Co!znL6^d8r=9P!sosVbv-F0{?IUm7sX3&vXuiV5T0NDD-y!l0BHeRn;zk2CeWsgr@WM zm#@Vhdzri)HW!9zBseX({(cjQ)I|{id`w*+a@%3xx<0!wXr(#}CZ^l!O9&I#bXT=MBrnzJl&H~4e(^ck4F;>A$1MAwQX zW}2Xo4=f$?SAreke>~VQpgLxld=HgjBBQ|fdSV@!&g`exdGNIcEDW~i*kyMU6GoTG z>3hK*zkA&vhmxaAE6R@mq)< zB_G0xIe3oPn9hQfA((HcHqT{HJoN|HV|3ue?z^BP02hXy*7j+n{G4MO8iU{)HpHRz zb3|JE`#3vJu;II=!P-c#A|zI9KoDVMz~RDkVu2Bte!$&wW=wMqQ}#t5sa_WhllD25Zoz@ zYr>_^bcaUktcqeo0OfkKfl_s?<$y;+HMk=5#u;(tOLf<@>6Hs7tgMlEw*-NJIf-&U z>P2@B^T{g%-7jf)&OvcDA=*emt!0_?4@^&)GvQKHKc0i&}+L-;#ptey<6gfehG&sU(NR^Z&g z7h`!vv(E_(T^`??{4QSM2JIbqn>i!Epod~XD4Yg)q{NO_<>Lagp-~`*u9OQwdl)V6 z1U!3#%{brq4qz5~RpNCsor3i_;l5gtGGhqLbh?I@AWY&Py6cHPafeCNLSLTDNuAu- z#vaKJVb2~{yRA=J;}j7_dK@H?`DFB9LQB7#3(s|Fz7V^t4}%GcL9hZ1hurKO)CLv^ zad!w=(>RGr8=e>g!oShj@eJq61(Bq~g;-Z({`?6w0)Z5xla<7re=?%3F%KevLW|g2 zV^)QapioJY>Jf^Q7A3O#=)G0^kQpV!H3}KEL`8A}!NEg}lUG^f7kB!34>wqDr@)m8 zLVY1@@LZjJRqE!j1@#-$dj*yv%67Rjsu=>AB_s(yIsE74^s^e-sy4WHewCikG?q6@ zXIHq0vO$A3z82!c$lnwuBfa#6)B1=pGccihMDtGFyHv7Chisa>`yPs6H9q3}&^l{Q z>DNx*Ly_L`_Nq1}N(xgWt9j%7h=|5mH>iv(JjY+yoi&N@c|=t&?~bxqb?EvCJSl9Y zM>wthiAXpJ8gCIE1%u=s>b$-5j`W+>SxmpP#vW|jZ57NC!-0il%=Udb-hkNTYS{qH zIoQVql^DbO;9cC1E;j#hNbz8m5sm&2gIAo}4G~QS16D|mzI(ojCUcMP%9(_`l-|I@ zCH13`o#dQ?l3B`wcm%5q5P^TLijMf6!t#(!D=kDCxS^d9_Y{YSw2kD4V6Qf6fI4C)$CS!KBj`0?GX-YMp_8QA7$Ox^|oyCaPPjv3$j_xUpLHlE5b?9wv(Dq zp@g{?3g`9f_x&uOsb>(SJzrj;&LUK%@L#-=H+(*tX*Pex{`^TBrGRtI>=}yH!}u6g z-5dLxa~REtIZde>qRO@l8}~&P5r^`g!kC$*r5>UKbchu=MDrU6^EPK)9t@L*Eh1+y zbU1vZF8~M;_o8wq&79dr8eeWqe$EI`kKn{&eepbJF)$H#l@G;(A%wxsVgUhJTz8I) zbL}L@H%SnB@k}5!iBT?^$36Tqx(&(bWvLvd;&hnE6Bbxey;= z-lMfsv9_zN+E)kLxzHNd)dz-C`q(Eg zC(M$xr@mda?UvK(WtBGGmMh=X?CiX(NXrd}4qAc(09-%))64K*y&L?I)-4m5)@=|Y z_|6R$T_qt%%3dL)k56G<`=xu_>N_ zU;N`Tiv&I`Nj!qD<)?@3^`d89uiKs;nyRl(@!u8LYcB2v8ypWr(D+*4EOmHecPKV| zFtKL03!s=Keo!d7MXG#u#LO=2>UB?n(04zIK53zekdu>DJd>SRxqhIS-|V4D5gi&G zn?B3mxiyM!%6>d|#>_wt>>V1t5o+P&^B%vq%X|06#ClIme_bSgUyCG7)=N%Tbj`D{ zr>s>xFJLS0FcZIMOsu=ip)K`{RN<9O?OB_diuMsnH18ov^y8K}cKvbC{aY-;@`%ya zeI?61GW`7uYWlQ3>%H}Fe%U;jbG5qJeMM_d3`5U_7a_vOj|#5OZ^J6LU4|@5zYifj ze0gf=y(A~b{i1R(em&SAr-JxN)}rn88odrX*P+fM4R4#a7u(&ne%ff-ejoLeqd8Bc zrIBXL{aJ!@vG*WNCC%;k;kFiC$cekJ74y2ACm(P8E;VNHo11KQc}lbCtrNFrU5?sr znb=wp>Vi%e?(h2q=B9ROEv%K@5-?RKo>k7)U2v1AVqlyZ43rT9x8gr-#U}LK+r^vM zII+}TLJ@OK>6q+Sw%qX*sN3yqDR^1xWQqFm;XDY)b4ys;(E0a%b_s~%q4O?jeE$YB z@cxWpI6Jv-m)f0kPDiCR!sFE#bEek146iy{7q{D)tms>(*M623Tja#)%!$uC6PFWG zW(pl7!`@f5EyrAJ^Y>NcHgoeP=In zD>L8L?s60Ji-#+k4BnNYP2SLUOE0W9{7l?wq6;r|R@K&;`jGw5n0*+o zyNd!-O&d-1$n(QJcSNDLiucFMVG%T%BXrrd=CB7|A7-{^&Z*5(-AXI!C+?bRDmtCI z%lkpZeEI!#=CEgl{fUYQG3Q3*hBNV43@@w08*4c2AF7pgBW~WKAt8AIyXzpiA9(uR zkKEmjbesHq629GxS(hl@rfsdwH(q~)>~)vkXl)=R=RF8Hk-64GVNR46gi+4(wxXS^kn1S8A;obz`0s?9}5r9oS3tF--H9}0P&$R+WJZW~X? zdCmUDZWfvcaXQ0e8E+l@6kPA?X(?yoCo)Qlgti|RED>N&8>T*wS?c)t40F#Z#|*Wo zJgGjnPI*0#=a+5qIKmF$4}B_t>vFfjIk6WP!{LpvdDNg{VAjjiT|s zcm{MW?u7P}aVIx;2_@73M9DOJ{NGlE?rjRol|isH;h4z>gOg&ge(D7+A4Vj7Z}%la z0oG*aFh}%<`g-ML4^LaBl9L^|Ph~9rom= zvsWS_zOqoVm#r2eUjr5c4Iq~QwQ43RTe_0?_+yclthRw^Dup5=Thkke{f zJ=^Vsr-FmXV67T>xUaL!lNsXDobB#I=Bi#duED~8eJL%5i?U98X9#2 z0y@5DyU#Zh6Zdka0bC;51LBYKzX0GZ;82CE)kFik>j@OJHpZvd=&SGcZeQ!?j4YBvZ!9KX(@OMjbaaiZQn!u3H-{bcSmMdtzjuc=u;(#a?!erj=}zx<{^wF2|6J*KyB?vng~8Y zVHL)|ediYnss*3}U=8@gtpvcmgLD+NH%M%f&&UJO(j&oO#Kect0nqzm=>}pMd3h#c zGo?y}yJ7U?gmcLbWOr2|JGs^kue8!{PL)QKmR`JSN9W)VEpzAG0o(^~fLG7G*?iyG zFAKl4h|%NpLphl7U1>?MUVSWUWX}!)021K9;;Rql%eeD?K%8Ax2zy98rW$-MP+{wE zl?uQBNJ$0_t|eXPD(Ks@d>LF}045fl=kuI627}iXi6uN|k+vsgbO|Wto35&J&Yo4` zkb2c`Xeg*XV=!nk`Y_p*yT%kjatth#Lf=xs-)k_Uenk8NO6`l$8E&W-bYi(llI7#(@!*F2&HeKQ9Sfv+(>kw9 z-uwXLr{cPy2)Eb$)dydf;jY*TR1l@g_*0z3?2Yx^Z*0z(j=3fB;VQ8AyzBhT&5jj_xoPdIWd>ta|O2Ip)X9pN%yIRS9YFiBQU#T8%h1zVyUT4*}ew zU88Ex{&Ap#P_h;tblPeEoeQS#-)T1Kvw4vID6ldtW+JB6UGtxGnF9G+jHG%GN zR|+FMqb5bv`Gh*oH5B)H)(my)6S>PXYmS63me?>{f3X^@DMJH5RM~Nc3e><-27XNl zUTAzClM%Wg^CLJvJOL!~_GBobd#L{4#&Wo)c>mndBfT)MFAnlOJGTk^j&(usN=5l# z$VQ}7ULo>5pr3zdTO4L4;qwO^`;mrzMpVXz5=p(+V6DD(qq!*g2or4&3?l-XkI(RY5~YIXL%{b9a&py;T+vuZ@Dp z(t|yJ)-pt^KB_V)E-cy5~*>*P$)~fUuCpuz8Q%3ws(@tsFu$$#|d06j5kI$me zUtv@Uf#Yi@+?gX>k$PV&3Bc9_3ur(kWE7%P70Bq*LK0gIavw!;dewiqNkBD9B1mM& zs)BB2=UGSL;$J32Gd|62r)*!V1zNY5hFK;9Cp50yg>0TQe+oxC{zd`@L<2zUi>W#7 zUs=&-92{9Hs27=*3vHZ909Do(RNtii)RaF)s&u-ha>bHG@@Bvhz0o~T#v zsfX%PQ(zYY3z?;ajI<%aLvqisAz>WMU7W!jnZAS?#K|ag{t?u$Gr_$q@bKcJy-=1? z*1k(+2t_1OE0tuYK4dE(WC_@=0|~YwMtVRh|QTc|^q*HYm;a<{@u`|WX2wvGW*N6cHu3w3i zZG<$Pkt}=JKHy6gw>MO+*2gTU?k^KyQ4!hnd?PnAF$=h(wkTlCTKyI#j=>RkYBtS; z$F#dmD}A)Oih-dstMk}w4}}iG(Ed1d1V;_R7_Kts%`|{96G$wuW|QV(t=dTTPiffu zY8-FU;Z?vFEc{9aau$8*8K}5nyX(e2uPCLdlPR3GZMzK|ew4LMV{p2+g)-3&Rl=vH zbzNGN)Ie4UB#7UQPv1q&>6@?H0CVq+wMrHjl_(cuC)I95*soh6@S3nE*V56^*1GvD zR=NVCCGjH>%;^-CWH8e<$CI<<8yeYT-$l`l)r#fgA$^<+TPpdQ_K`_8Tc|Lr6Sqbs z>)C~d!#f>|;m|;F^ePM@1+n}`NYD9|#ECT9VgghM&n4=1eiC!BK!tMgL- zFi;JClA}*%n`H~c-LVUwU-RRek(f(Y&hDm-qEAE#mrq!O#C-zWMH9};TJ0Yb&8skc zT52lCK zlvNuHx7;z8+u$8db_J;Mt2a%Ch_zO_MZVPnxBdks~rHkxQODdn&(O zU5#Cu{Ju4UEqSNLr5}}L&Ci@WRPEFRo@x+~1E2bt4Gg^}dL=*S+wQmUatER7_eA`o zxdeMn!Eq zTmDRs!Bq&uwqnDv2=YU*eeEKoAu!Fawm_*sKKM%V7eIV~TzTk@_3%lR%rNNYawy~{ z%|Vri`7|pp0S`Q%aFvoNaSq25=af_Gj$<_2W`NTKc@K&oB&QuR2eRy}JNCwlng3Kh z#fL|eVAN+Z)Q^EL@cxc?v~r$V?Ue@QhP zGW00Lg8{Q95c+sUNDA(OFu(jfxRQn#>B<-zu}t%~H-2g&#Chzeuj(-GO&H$E*&rgq znEGPJ+U^}+`j=H8Bo@-#C}Dn)MNe|4BR#cN+>}?gzzTn3Zb`4FhWqU%zw>&xdRn_2 z;ql{>H2Lx}!z;_2;DCdf^tk9ZY*SczPL(N~}==BuZ53q5l{@SqwsD1AAgu)!9Qa z`6aB1F9gs-D;||gMcZ{tTPUKzkgj&|DIyvUijQ9 z;R^I)+;O)u>aiyU!w*PKcS|Y~`CnPPg4tUIeDfVzB>sSRs`X_!Hb6x}B7_(>)&kcI zq`3hp3UmC3UnG^Ok%;7I=aE6)&u_RLL8)6}$7?qCMmsg@CLOmB-G`S%Bf0H~Go_U` z-K}U}pfF)_>{mjU55GQj^0sWwN*xBbrx$NWD~Hi) zDR7JLQ*)4iNNE3a<7!PI8*4}4j?21AZnnk_+CTSY8B3P2{sP>%`i?iK(~59P_T2&k zjp-CwDalwj4?rN=vf&XY)=;R~i*SfSt4HDFvtSbn1JQmPk_|LU+WP#wktVc)hiZ)k zqX`cC;Rol^_$RfseP-tt?6G8eXvWfVyJ{l~qSj6BVOBL1xR?!d3o87w9JOy%TNFF= z)u7(2cyi6x(VYsiQIMLW9Rj3pgKJvSI-S}-5R-~momezBR#T_)vuMChuU&9fK3b#k zQC*(MlzkrG(3m)V|gSzbwUr_$NgS1jhdK@3l|M* zMkJpzev_0gzNTZjK9pe=E&duz*mm|v_oSWPWK7psKgijpOE@2cJ6s%j%bW3j-N<9P z2z)l$EYwkBvk}@10rT_zu0S0V`PimF>oD zgV!7ag%aVq0qXwJ*{DX}FW02G()7nCIly~X@b{779W+m%MIF|DT+?{JEb9Jhh_F}! z0ss&r{BIpwf25brl(OF*{t&$11`7_!W3RpYkV}^&L>jj6X6lqm%H9<|P6D-^z!#GL zLy72GK;z`d`6$0>T3Y^(K<9Q~X3>!l*EWe2@D(F{5`KK3Y)Y0TPOQu;g?< zV49<0Os7_mlF{xaTxMK`ou)_O_H~ehOt!pPiyt14o-cTLj z#;2Et%i6AsDBf;vbE*jsEssoR=NY-Zm20K1t+v?xP6=~zm3tY@ySS;4NOhG zS6Eb*xQv&~>+8-=Ej4RUPiLT}mXMZLN~?Hew?c%e4fsC)gC=a+EbfUVVqRI<)b6^E z#BK+xUVqjaYtN=Qu#QT7LT9?FKKZdGY<(=x>BRU)8~(SYg*>;fA$J$|CvQ{seP+JV zF_QUU@IGerHeT%S1iX9N>HG2RoWt(%zPGOe&E108Znd@zbk4dwrYGbS>TCj$+6OC;rndMv!&CMBf{B)22^5W z9`DXp>xca^?+%AN^b)zbs8nN}CiuvJRU|hEk>V0pxA8Ow<*Wj$oBQ=6z~}KE*<;48 zSHvo;0u*#%RN)y`cQFYp4@<%pKGS6s&0fmMV~s@$8xuv|$mlll zyHCck>_|Ecc13-1H>~9b0x8dk`Hx=B&5yk_m?lXW>sy&(>7yi#rT19-yo)4kYo1$* zAxXQxp5s$54Cs;YBOxqBZn7njr* zu`tGne&&pLR`vs`cmMq@D}!;V^=S9S{yhwR2m6_O;k~)dTW0;>)z5uwCUMCc-vlO4 z#Ix6{sXBOc$HsT=Gt+s(ZKAtR$1V6GQ5#!_OUU~6m$nDYez4Me;E#29%VunJ^f+!E zU5=Xe;i_bCkuR;ZsPn3Oj?iaawxqc`rvz*Yo{|t5knEWOnbXgDGBZ%v8S62|yW!R7pa4I0)Ut>;pP; zAyth*6nYKBJY>xM+=*xL`v$o&Q}MtRyyaP|_l6&r`w*#KNwb8Solp7&vy4wMoC@>+ zxCvTMs9hT?duzj_u)Uosn}wwl#?y1OUup5BFgRG}%P?K_>{?99v$?dI5j>dX%uf+i zZ#|fGLfcWAzhzLTK-cS`to1XP?FwE1y0Z$fJOMvYBJB}OLWUo&VJ&cpb_Y(}0E1~L~* zKp;n-Tx`?cQA00_qSsw$4LbK(?glReSwgw8uO1vd=yxINcb)bKO7ss2B#G5<4!moF z1ipl}UYkcLX`y52cxDhecdyc}*>Rks7LUB4-$SiCfgwrnUX38e07z#+)A zA;Y0vEzEwp6CG)d`O1w?{tDZP6=rUu2Ch5?SK?$8%I!=57W-m6j0(YUgok< zMxd>7PcSth;uh9;IJ0&yy;|;m*`2eVgBNSxJ4C|KZ?1%-UoQQr3SQ|bX?}HS1kkUI zM)b3}C#-9Xtt`1|?0e9BbmL2H61L_NibCy5tq{bOWKewYW)Q`wAjXyMyDE--?6kS< z#y#`osC>0I_I$({;j|&M0vaX=tv>fnV~v|u+Lx_p40n>?QNqcqKuG=yN@9;`qp z{zqwO(ZIP^1x%TO!#e{7(!pMxQJK;2pZ1N=2FN^J47VtTbnZ#uJaFk{DYUznQ6gy# zDG51aGzhdo?ZJ1T2jgJhwvs>IXph9lU3J8LC&d7w7!5F9 ziS$~YA^<>+lzvCfS7&711ASaBE^x`<;!jEo$Nv@Fp1i~4>&_N0W36%%Ofp%ZZg|Z;+9T=LQrLCLtju7XO~}_@i@Ru zN_hnd$VAG?KtImTf?}IsRuz$Qny8T`kqPvKI;g||z!(77fJhWTK;wW7ZSye6Oi5Zp zC^P9IFC{kCSU1DmF^H&5<<8vh4O(+Jw`kY>!4$Lm#rq9k)g568u&`)9HR9#6>OJY1 z67CQDxH$-ukY?|uMR~1Qa+560xwg47q}=pq-p8CFOZ3%JZy=b`9&V!r$^v}_qqU(5 zJfYPr+PE{}HB^ZPHRr2mJlR5@_VVm1B|c`o=>>Us#Q=%zKoog+F`_6X`c}5742+`C zEl$tk7&}*?b{=m^jW2!a4I*P=wZ#&LFBH(L12D)EgSVDrk)lmqXBVmSu1R4I@AG>o zuUqa|bhaU<6)H3@p*T12Y();|>54FiJMTuMUv}tI)U;-mh2iDZ(V}vi;$h=F2XzH$ zbp@dx%%u#{NXv?P--T;tTd@Sf;*2?%i>+WGw{a~@l4#!Vi%m=dNfXNq&&X+6IU9ef zY#@Dnuj7Xe^k4N;gm$@4e{6uSa+6kUSw@~RS~rcC!j({wO?BQ!#=C4aJqWzyYE($jQa|V!!xrO)y%;5EW=KB_MV zuvaG7-N>^-*ix8Uf-rI5pw!T107*bWGC#~6|4{ryvivY5$5^4o8T(jkBeEKZezZSBjy@z2{3&51DH@|f-~zP|zaE4i20u*BEK&iU4^!=q99cM3 zw=7E)DD{Ro44B^>f8Ze_F0+)0VO}f=EGRX>C?g6a%jmyKCBwEr|1C!GK=vr@eFCL1 zcEk*PStl&JN;khAE3&@(X#Yz5Qi@_Ew0|cow1adY2m&gfW@pz4cZ`!Ue3)109DIwh)^w3bmh#UP~>6xu=Q--vnm-b8CGzkp7lc)qCo z#aNO&Ka8x0vPUTr4ur`o0n{66|5C(3%4FNq4--5=6`&s-{?ZuIF-s|$Ot@106cE$| z;3@!8-|2{)*=@PKq{pFnyNWJY=s*stf2q+Ozof?0eLRZ*uEL+PO#p9}^3zUlF_T97 z6`2Kq%Kf1S5yj27gdkF%nprK%Dp1g$zlE%ZAcQ^tU#BJr4g(uLkOQyVHy9_Bfycy9 zf5@^7d*&SpWWt3aa@e`17F@M^28jNYn55<#f&6O1bS z%OY?+CCR~et4u7XIf+|o7 zkVGADV7I8L+mV}>7Pl)oR`dJSAO)ng)h0^NY6C!uX5~a;X-`pH) z^H-PzU#y~GII=8cl3mE0pf?&U{hM<4<(e9ou!dB2!~){H0SCMkv1MrVyCXXCDFo-+ zv!3MCdTM5MWgC57MS&3WkyiQ&*3Ijypmnayw5}lyRXaOn7hUcgIJ4F!N7mUF6pU(DQ3%u+xH@Tfj+KD*@kYk`=+MK*|7CjEEW=h*tVT z)RH*4^?q;aAkIPS`i5rw>*|9@N5~7p-}ci0rGcHq%+C=CNq(n(X|E^~2ue@>^E5TH zsatz0DIM98M1qZ7a24MMYz$h?){No!B*~r^*)(R zZSKw{wPwV>Bh{A%cLmBzQ)lMEQBO)=WTZiejRx{B)N*|CJHlXy$grOZL{JN3hSW($m0r`C z#XUJ8W02O7L3SxIY98es-ne1ew$Eld;zLe2GVI(s=6$9-T~jzUD1u^9^>Nr`Q}r6a z$nL+#;PcuFkKy~%yVF`KNwFG6VBE;IOcGKb6KXzxL_=}7`g-JEX;mpKJiybf^Mwv|9nMlf zAlHjR&0Zfveo>>974>0+9t<4-3kb>&1YHa9FJHQXE-^hX3|FYbSJN9GnS=L(=?v7( zgcg%k`EEN-<{2;BEacq0>IE-r6tfSii{u%NwL`x#!G zC&T$j0R3H_BMH?ALhPry0JvpYB@KI2IPJ=7H$(7!i<8l0|4N3*4yI&4wh@A_ zmCwSQhAP`#!1inm=(%hkhi&l4bi#95Yt{R)x&AZAM__qExfKNfc+>aO(+2{I4nPM$ zLqh{loJO=xX%JKofj+(&Pyhh9^yyEBuD!9P13lf(&p%fj(1}*_2l|w5ffa%5Uk)N* zsgaGLyuFRB1HGY*z41?n;h(D?c02AN08i`({sWzmzZ}~@;J>Qt+uHtB?U==z&L?1< zp91{!Q2zU%14iQhtG1z&gQJbrUjam&wnqa3exWfN`&>An91OAs}E?{<-|J=?m+kpKq$pWwb zC*;5H(7$f8{QGz%hWi)fUoQ5)94>y{Wb=0%Cc!`BUOL&I``54AtNo5MCHrUG%Z2u5 z+^;+B{Elk{_TK+ypkI`IG0mTGzix~`^xHTCVE$*^9~bMNdB3Kv{$0Erj(_I8Tt|P# z{hILecbqK$KjU78)<5HZ&8_ykwx(kLjQe9e{WI^^%tybACnfvOyq9~*pK-sY1^FHK zr1;Ocm!aa%xL*Ucf5*|Q{WI=meE2i&*WhR1h49O9qVo&xw;Sl+-z)x}wy*nlw7(z3 z|DLv`_jk0vA5eZ>)cI6h pC)odNuwS3yf0tp}_rJ^VU!x5K@SzU?AP4>(1E0>O;(vbo{{T_sESLZQ literal 0 HcmV?d00001 diff --git a/limbach/build_deck.py b/limbach/build_deck.py new file mode 100644 index 0000000..ba10c17 --- /dev/null +++ b/limbach/build_deck.py @@ -0,0 +1,245 @@ +#!/usr/bin/env python3 +"""Workshop-Folien 'Vault – Technischer Impuls': ruhig, visuell, wenig Text.""" + +from pptx import Presentation +from pptx.util import Inches, Pt +from pptx.dml.color import RGBColor +from pptx.enum.text import PP_ALIGN, MSO_ANCHOR +from pptx.enum.shapes import MSO_SHAPE + +# ---- Palette --------------------------------------------------------------- +INK = RGBColor(0x2A, 0x2F, 0x3A) +NAVY = RGBColor(0x1F, 0x3A, 0x5F) +ACCENT = RGBColor(0xC0, 0x49, 0x2F) +MUTE = RGBColor(0x8A, 0x93, 0xA0) +SOFT = RGBColor(0xE9, 0xEC, 0xEF) # heller Kasten +SOFT2 = RGBColor(0xDD, 0xE5, 0xEC) # heller Kasten blau +LINEC = RGBColor(0xC3, 0xC9, 0xD1) +BG = RGBColor(0xFF, 0xFF, 0xFF) +WHITE = RGBColor(0xFF, 0xFF, 0xFF) +F = "Calibri" + +prs = Presentation() +prs.slide_width = Inches(13.333) +prs.slide_height = Inches(7.5) +SW, SH = prs.slide_width, prs.slide_height +BLANK = prs.slide_layouts[6] +MX = Inches(0.95) + + +def slide(bg=BG): + s = prs.slides.add_slide(BLANK) + r = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, SH) + r.fill.solid(); r.fill.fore_color.rgb = bg; r.line.fill.background() + r.shadow.inherit = False + s.shapes._spTree.remove(r._element); s.shapes._spTree.insert(2, r._element) + return s + + +def shape(s, kind, x, y, w, h, fill=None, line=None, lw=Pt(1)): + sh = s.shapes.add_shape(kind, x, y, w, h) + if fill is None: sh.fill.background() + else: sh.fill.solid(); sh.fill.fore_color.rgb = fill + if line is None: sh.line.fill.background() + else: sh.line.color.rgb = line; sh.line.width = lw + sh.shadow.inherit = False + return sh + + +def box(s, x, y, w, h, text="", fill=SOFT, tc=INK, size=15, bold=False, + rounded=True, line=None, sub=None, sub_c=None): + kind = MSO_SHAPE.ROUNDED_RECTANGLE if rounded else MSO_SHAPE.RECTANGLE + sh = shape(s, kind, x, y, w, h, fill=fill, line=line) + tf = sh.text_frame; tf.word_wrap = True + tf.vertical_anchor = MSO_ANCHOR.MIDDLE + tf.margin_top = tf.margin_bottom = Pt(2) + p = tf.paragraphs[0]; p.alignment = PP_ALIGN.CENTER + r = p.add_run(); r.text = text + r.font.size = Pt(size); r.font.bold = bold; r.font.name = F; r.font.color.rgb = tc + if sub: + p2 = tf.add_paragraph(); p2.alignment = PP_ALIGN.CENTER; p2.space_before = Pt(2) + r2 = p2.add_run(); r2.text = sub + r2.font.size = Pt(11); r2.font.name = F; r2.font.color.rgb = sub_c or MUTE + return sh + + +def text(s, x, y, w, h, runs, align=PP_ALIGN.LEFT, anchor=MSO_ANCHOR.TOP, + leading=1.1, space=0): + tb = s.shapes.add_textbox(x, y, w, h); tf = tb.text_frame + tf.word_wrap = True; tf.vertical_anchor = anchor + tf.margin_left = tf.margin_right = tf.margin_top = tf.margin_bottom = Pt(0) + p = tf.paragraphs[0]; p.alignment = align; p.line_spacing = leading; p.space_after = Pt(space) + for t, kw in runs: + r = p.add_run(); r.text = t + r.font.size = Pt(kw.get("size", 16)); r.font.bold = kw.get("bold", False) + r.font.italic = kw.get("italic", False); r.font.name = F + r.font.color.rgb = kw.get("color", INK) + return tb + + +def kicker(s, t): + tb = text(s, MX, Inches(0.62), Inches(11), Inches(0.4), + [(t.upper(), {"size": 12.5, "color": ACCENT, "bold": True})]) + tb.text_frame.paragraphs[0].runs[0].font._rPr.set('spc', '240') + + +def head(s, t): + text(s, MX, Inches(1.0), Inches(11.4), Inches(0.9), + [(t, {"size": 32, "color": NAVY, "bold": True})]) + shape(s, MSO_SHAPE.RECTANGLE, MX, Inches(1.78), Inches(0.6), Pt(4), fill=ACCENT) + + +def caption(s, t): + text(s, MX, Inches(6.62), Inches(11.4), Inches(0.6), + [(t, {"size": 16, "color": MUTE})], leading=1.15) + + +def vline(s, x, y, h, color=LINEC): + shape(s, MSO_SHAPE.RECTANGLE, x, y, Pt(1.6), h, fill=color) + + +# =========================================================================== +# TITEL +# =========================================================================== +s = slide(NAVY) +shape(s, MSO_SHAPE.RECTANGLE, 0, 0, Inches(0.24), SH, fill=ACCENT) +shape(s, MSO_SHAPE.RECTANGLE, MX, Inches(2.7), Inches(0.85), Pt(5), fill=ACCENT) +text(s, MX, Inches(1.7), Inches(10), Inches(0.5), + [("TECHNISCHER IMPULS", {"size": 14, "color": RGBColor(0xC6,0xD1,0xDE), "bold": True})] + ).text_frame.paragraphs[0].runs[0].font._rPr.set('spc', '280') +text(s, MX, Inches(3.05), Inches(11.4), Inches(2.0), + [("LIS – wohin", {"size": 50, "color": WHITE, "bold": True})]) +text(s, MX, Inches(4.05), Inches(11.4), Inches(2.0), + [("technisch denken?", {"size": 50, "color": WHITE, "bold": True})]) + +# =========================================================================== +# FOLIE 1 – Produkt oder Projekt (Balken-Bild) +# =========================================================================== +s = slide() +kicker(s, "Diagnose") +head(s, "Produkt oder Projekt?") + +base = Inches(5.45) # Grundlinie +bw, gap = Inches(0.52), Inches(0.16) + + +def bars(cx_start, heights, colors, label): + n = len(heights) + for i, (hh, col) in enumerate(zip(heights, colors)): + x = cx_start + i * (bw + gap) + h = Inches(hh) + shape(s, MSO_SHAPE.ROUNDED_RECTANGLE, x, base - h, bw, h, fill=col) + total = n * bw + (n - 1) * gap + # Grundlinie + shape(s, MSO_SHAPE.RECTANGLE, cx_start, base, total, Pt(2), fill=LINEC) + text(s, cx_start, base + Inches(0.18), total, Inches(0.4), + [(label, {"size": 18, "color": NAVY, "bold": True})], align=PP_ALIGN.CENTER) + + +bars(Inches(1.5), [0.45, 0.5, 2.7, 0.5, 0.45], + [MUTE, MUTE, ACCENT, MUTE, MUTE], "Projekt") +bars(Inches(8.0), [1.7, 2.0, 1.8, 2.1, 1.7], + [NAVY, NAVY, NAVY, NAVY, NAVY], "Produkt") + +# kleine neutrale Unterschriften +text(s, Inches(1.5), base + Inches(0.6), Inches(3.42), Inches(0.4), + [("tief in einer Dimension", {"size": 13, "color": MUTE})], align=PP_ALIGN.CENTER) +text(s, Inches(8.0), base + Inches(0.6), Inches(3.42), Inches(0.4), + [("breit über viele", {"size": 13, "color": MUTE})], align=PP_ALIGN.CENTER) + +# =========================================================================== +# FOLIE 2 – Eine Schicht dazwischen (Layer-Diagramm) +# =========================================================================== +s = slide() +kicker(s, "Architektur") +head(s, "Eine Schicht dazwischen") + +cxL, cxR = MX, Inches(12.38) +full_w = cxR - cxL + +# oben: Gruppe / Prozesse +top_y = Inches(2.2) +chips = ["Reporting", "DFÜ / Anlieferung", "Fusion"] +cw = Inches(3.2); cg = (full_w - 3 * cw) / 2 +for i, c in enumerate(chips): + box(s, cxL + i * (cw + cg), top_y, cw, Inches(0.72), c, + fill=BG, tc=NAVY, size=15, bold=True, line=LINEC) + +# Mitte: die Schicht (Hero) +mid_y = Inches(3.55) +box(s, cxL, mid_y, full_w, Inches(0.95), + "Integrations- & Abstraktionsschicht", + fill=NAVY, tc=WHITE, size=20, bold=True) + +# unten: Systeme +bot_y = Inches(5.15) +labs = [("Labor A", "LIS"), ("Labor B", "LIS"), ("Vault", "LIS"), ("Labor C", "eigenes LIS")] +lw = Inches(2.65); lg = (full_w - 4 * lw) / 3 +for i, (nm, sub) in enumerate(labs): + x = cxL + i * (lw + lg) + box(s, x, bot_y, lw, Inches(0.95), nm, fill=SOFT, tc=INK, size=16, bold=True, + sub=sub, sub_c=MUTE) + # Verbinder Schicht -> System + vline(s, x + lw / 2, mid_y + Inches(0.95), bot_y - (mid_y + Inches(0.95))) + +# Verbinder oben -> Schicht +for i in range(3): + cx = cxL + i * (cw + cg) + cw / 2 + vline(s, cx, top_y + Inches(0.72), mid_y - (top_y + Inches(0.72))) + +caption(s, "Labore docken an und behalten ihr LIS. Die Schicht verbindet.") + +# =========================================================================== +# FOLIE 3 – Zustand oder Ereignis (Event Sourcing, visuell) +# =========================================================================== +s = slide() +kicker(s, "Modell") +head(s, "Zustand oder Ereignis") + +cxL, cxR = MX, Inches(12.38) +full_w = cxR - cxL + +# --- obere Spur: Zustand --- +ay = Inches(2.35) +text(s, cxL, ay - Inches(0.05), Inches(3), Inches(0.4), + [("Zustand", {"size": 15, "color": MUTE, "bold": True})]) +zy = ay + Inches(0.42) +box(s, cxL, zy, Inches(2.4), Inches(0.95), "Probe", fill=SOFT, tc=INK, size=16, bold=True) +# Pfeil "überschreiben" +shape(s, MSO_SHAPE.RIGHT_ARROW, cxL + Inches(2.65), zy + Inches(0.27), + Inches(1.5), Inches(0.42), fill=LINEC) +text(s, cxL + Inches(2.55), zy - Inches(0.18), Inches(1.7), Inches(0.3), + [("überschreiben", {"size": 11, "color": MUTE, "italic": True})], align=PP_ALIGN.CENTER) +box(s, cxL + Inches(4.4), zy, Inches(2.7), Inches(0.95), "1 Abrechnung", + fill=BG, tc=NAVY, size=16, bold=True, line=LINEC) + +# Trennlinie +shape(s, MSO_SHAPE.RECTANGLE, cxL, Inches(4.25), full_w, Pt(1.2), fill=LINEC) + +# --- untere Spur: Ereignisse --- +by = Inches(4.55) +text(s, cxL, by - Inches(0.05), Inches(3), Inches(0.4), + [("Ereignisse", {"size": 15, "color": MUTE, "bold": True})]) +ey = by + Inches(0.42) +ev = ["Eingang", "Messung", "Abrechnung", "Abrechnung"] +ew = Inches(1.85); eg = Inches(0.32) +for i, e in enumerate(ev): + x = cxL + i * (ew + eg) + col = ACCENT if e == "Abrechnung" else NAVY + box(s, x, ey, ew, Inches(0.85), e, fill=col, tc=WHITE, size=14, bold=True) + if i < len(ev) - 1: + shape(s, MSO_SHAPE.CHEVRON, x + ew + Inches(0.02), ey + Inches(0.24), + Inches(0.28), Inches(0.38), fill=LINEC) +# Pfeil zum abgeleiteten Zustand +last_x = cxL + 4 * (ew + eg) +shape(s, MSO_SHAPE.RIGHT_ARROW, last_x - Inches(0.05), ey + Inches(0.22), + Inches(0.7), Inches(0.42), fill=LINEC) +box(s, last_x + Inches(0.75), ey - Inches(0.05), Inches(2.7), Inches(0.95), + "Zustand", fill=SOFT2, tc=NAVY, size=15, bold=True, + sub="abgeleitet", sub_c=MUTE) + +caption(s, "Der Zustand entsteht aus den Ereignissen – Mehrfaches inklusive.") + +out = "/home/marcuh/claude-projects/limbach/Vault_Impuls_Workshop.pptx" +prs.save(out) +print("saved", out) diff --git a/limbach/folie2.py b/limbach/folie2.py new file mode 100644 index 0000000..9b5b1ca --- /dev/null +++ b/limbach/folie2.py @@ -0,0 +1,161 @@ +#!/usr/bin/env python3 +"""Folie 2 – Grenzen der Vault-Integration. Kette: Auftrag -> altes LIS -> +Schattenbuchhaltung/Metadaten -> Vault (am Ende). Der Layer wird zum SPOT.""" + +from pptx import Presentation +from pptx.util import Inches, Pt +from pptx.dml.color import RGBColor +from pptx.enum.text import PP_ALIGN, MSO_ANCHOR +from pptx.enum.shapes import MSO_SHAPE + +INK = RGBColor(0x2A, 0x2F, 0x3A) +NAVY = RGBColor(0x1F, 0x3A, 0x5F) +ACCENT = RGBColor(0xC0, 0x49, 0x2F) +MUTE = RGBColor(0x8A, 0x93, 0xA0) +LINEC = RGBColor(0xC3, 0xC9, 0xD1) +FRAME = RGBColor(0xF4, 0xF6, 0xF8) +TINT_R = RGBColor(0xF6, 0xE5, 0xDF) +BG = RGBColor(0xFF, 0xFF, 0xFF) +WHITE = RGBColor(0xFF, 0xFF, 0xFF) +F = "Calibri" + +prs = Presentation() +prs.slide_width = Inches(13.333) +prs.slide_height = Inches(7.5) +s = prs.slides.add_slide(prs.slide_layouts[6]) +bgr = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, prs.slide_width, prs.slide_height) +bgr.fill.solid(); bgr.fill.fore_color.rgb = BG; bgr.line.fill.background() +bgr.shadow.inherit = False + + +def shp(kind, x, y, w, h, fill=None, line=None, lw=Pt(1), rot=0): + sh = s.shapes.add_shape(kind, x, y, w, h) + if fill is None: sh.fill.background() + else: sh.fill.solid(); sh.fill.fore_color.rgb = fill + if line is None: sh.line.fill.background() + else: sh.line.color.rgb = line; sh.line.width = lw + if rot: sh.rotation = rot + sh.shadow.inherit = False + return sh + + +def boxtext(sh, t, size=14, color=INK, bold=False): + tf = sh.text_frame; tf.word_wrap = True + tf.vertical_anchor = MSO_ANCHOR.MIDDLE + tf.margin_left = tf.margin_right = Pt(4); tf.margin_top = tf.margin_bottom = Pt(1) + p = tf.paragraphs[0]; p.alignment = PP_ALIGN.CENTER + r = p.add_run(); r.text = t + r.font.size = Pt(size); r.font.bold = bold; r.font.name = F; r.font.color.rgb = color + + +def txt(x, y, w, h, t, size=14, color=INK, bold=False, italic=False, + align=PP_ALIGN.LEFT, spc=None, lead=1.1, anchor=MSO_ANCHOR.TOP): + tb = s.shapes.add_textbox(x, y, w, h); tf = tb.text_frame + tf.word_wrap = True; tf.vertical_anchor = anchor + tf.margin_left = tf.margin_right = tf.margin_top = tf.margin_bottom = Pt(0) + p = tf.paragraphs[0]; p.alignment = align; p.line_spacing = lead + r = p.add_run(); r.text = t + r.font.size = Pt(size); r.font.bold = bold; r.font.italic = italic + r.font.name = F; r.font.color.rgb = color + if spc: r.font._rPr.set('spc', str(spc)) + return tb + + +# ---- Kopf ------------------------------------------------------------------ +txt(Inches(0.95), Inches(0.32), Inches(8), Inches(0.35), "INTEGRATION", + size=12.5, color=ACCENT, bold=True, spc=240) +txt(Inches(0.95), Inches(0.62), Inches(11.5), Inches(0.85), "Grenzen der Vault-Integration?", + size=31, color=NAVY, bold=True) +shp(MSO_SHAPE.RECTANGLE, Inches(0.95), Inches(1.34), Inches(0.6), Pt(4), fill=ACCENT) + +# ---- Linke Spalte ---------------------------------------------------------- +def claim(y, t, bold=False, sub=None): + shp(MSO_SHAPE.RECTANGLE, Inches(0.95), y + Inches(0.08), Inches(0.14), Inches(0.14), fill=ACCENT) + txt(Inches(1.28), y, Inches(4.5), Inches(0.4), t, size=16.5, color=INK, bold=bold) + if sub: + txt(Inches(1.28), y + Inches(0.34), Inches(4.5), Inches(0.32), sub, + size=12.5, color=MUTE, italic=True) + +claim(Inches(2.2), "Middleware kapselt den Rand – den Kern nicht", bold=True) +claim(Inches(2.95), "1:n geht nur als Schattenmodell", + sub="aufwändig · fragil · fehleranfällig") +claim(Inches(3.95), "die Fachwahrheit verlässt den Kern") + +shp(MSO_SHAPE.RECTANGLE, Inches(0.95), Inches(4.95), Inches(0.5), Pt(3.5), fill=ACCENT) +txt(Inches(0.95), Inches(5.12), Inches(4.85), Inches(1.1), + "Die Schattenbuchhaltung wird zum Single Point of Truth – nicht Vault.", + size=19, color=NAVY, bold=True, lead=1.08) +txt(Inches(0.95), Inches(6.45), Inches(4.85), Inches(0.4), + "Genau die Rolle, die Vault halten müsste.", size=13.5, color=MUTE, italic=True) + +# =========================================================================== +# RECHTS: Kette Auftrag -> altes LIS -> Layer (SPOT) -> Vault (Ende) +# =========================================================================== +fx, fy, fw, fh = Inches(6.25), Inches(2.4), Inches(5.9), Inches(4.55) +shp(MSO_SHAPE.ROUNDED_RECTANGLE, fx, fy, fw, fh, fill=FRAME, line=LINEC, lw=Pt(1.5)) +txt(fx + Inches(0.3), fy + Inches(0.14), fw - Inches(0.6), Inches(0.3), + "Auftragsweg – hin und zurück durch den Layer", size=12.5, color=NAVY, bold=True) + +cxc = fx + Inches(2.05) +bw = Inches(2.7) +bx = cxc - bw / 2 + + +def down(y, label=None): + shp(MSO_SHAPE.DOWN_ARROW, cxc - Inches(0.11), y, Inches(0.22), Inches(0.26), fill=MUTE) + if label: + txt(cxc + Inches(0.22), y - Inches(0.02), Inches(1.6), Inches(0.3), label, + size=11, color=MUTE, italic=True, anchor=MSO_ANCHOR.MIDDLE) + + +# 1) Auftrag +b = shp(MSO_SHAPE.ROUNDED_RECTANGLE, bx, fy + Inches(0.52), bw, Inches(0.48), fill=BG, line=LINEC) +boxtext(b, "Auftrag · Mischauftrag (1:n)", size=12.5, color=INK, bold=True) +down(fy + Inches(1.02)) + +# 2) Altes LIS +b = shp(MSO_SHAPE.ROUNDED_RECTANGLE, bx, fy + Inches(1.3), bw, Inches(0.5), fill=NAVY) +boxtext(b, "Altes LIS · nimmt 1:n an", size=13, color=WHITE, bold=True) +down(fy + Inches(1.82), "Magic") + +# 3) Schattenbuchhaltung = SPOT +b = shp(MSO_SHAPE.ROUNDED_RECTANGLE, bx - Inches(0.15), fy + Inches(2.1), bw + Inches(0.3), + Inches(0.78), fill=TINT_R, line=ACCENT, lw=Pt(2)) +txt(bx - Inches(0.15), fy + Inches(2.18), bw + Inches(0.3), Inches(0.32), + "Schattenbuchhaltung / Metadaten", size=13, color=ACCENT, bold=True, align=PP_ALIGN.CENTER) +txt(bx - Inches(0.15), fy + Inches(2.52), bw + Inches(0.3), Inches(0.3), "Mapping 1 ↔ 3", + size=12, color=INK, align=PP_ALIGN.CENTER) +# aktiver SPOT-Stern +shp(MSO_SHAPE.STAR_5_POINT, fx + fw - Inches(0.78), fy + Inches(2.18), Inches(0.5), Inches(0.5), + fill=ACCENT) +txt(fx + fw - Inches(2.55), fy + Inches(2.7), Inches(1.75), Inches(0.28), "Single Point of Truth", + size=10.5, color=ACCENT, bold=True, align=PP_ALIGN.RIGHT) +down(fy + Inches(2.9), "1 → 3, Vault-kompatibel") + +# 4) Vault am Ende +b = shp(MSO_SHAPE.ROUNDED_RECTANGLE, bx, fy + Inches(3.18), bw, Inches(0.82), fill=NAVY) +txt(bx, fy + Inches(3.24), bw, Inches(0.3), "Vault · 1:1 · Speicher", + size=13, color=WHITE, bold=True, align=PP_ALIGN.CENTER) +for k in range(3): + shp(MSO_SHAPE.ROUNDED_RECTANGLE, cxc - Inches(1.08) + k * Inches(0.78), + fy + Inches(3.58), Inches(0.62), Inches(0.3), fill=RGBColor(0x34, 0x4E, 0x70)) + txt(cxc - Inches(1.08) + k * Inches(0.78), fy + Inches(3.58), Inches(0.62), Inches(0.3), + "Rec", size=9.5, color=WHITE, align=PP_ALIGN.CENTER, anchor=MSO_ANCHOR.MIDDLE) +# Geist-Stern (durchgestrichen) bei Vault +gx = fx + fw - Inches(0.74) +shp(MSO_SHAPE.STAR_5_POINT, gx, fy + Inches(3.32), Inches(0.44), Inches(0.44), + fill=BG, line=LINEC, lw=Pt(1.25)) +shp(MSO_SHAPE.RECTANGLE, gx - Inches(0.02), fy + Inches(3.52), Inches(0.48), Pt(2), + fill=ACCENT, rot=20) +txt(fx + fw - Inches(2.45), fy + Inches(3.3), Inches(1.65), Inches(0.4), + "müsste hier liegen", size=10, color=MUTE, align=PP_ALIGN.RIGHT) + +# Rückweg (Lesen) – Pfeil links nach oben +shp(MSO_SHAPE.UP_ARROW, fx + Inches(0.34), fy + Inches(1.45), Inches(0.26), Inches(2.45), + fill=RGBColor(0xD8, 0xCB, 0xC6)) +txt(fx + Inches(0.1), fy + Inches(3.95), Inches(1.55), Inches(0.5), + "Lesen: zurück, wieder LIS-kompatibel", size=9.5, color=ACCENT, align=PP_ALIGN.LEFT, lead=1.0) + +out = "/home/marcuh/claude-projects/limbach/Folie2.pptx" +prs.save(out) +print("saved", out) diff --git a/limbach/folie3.py b/limbach/folie3.py new file mode 100644 index 0000000..7dc3df9 --- /dev/null +++ b/limbach/folie3.py @@ -0,0 +1,268 @@ +#!/usr/bin/env python3 +"""Folie 3 – LIS mit Umsystemen (Adapter, links/rechts) und andockenden Modulen +(unten), unter einer Steuerungs-/Governance-Schicht; weitere LIS angedeutet.""" + +from pptx import Presentation +from pptx.util import Inches, Pt +from pptx.dml.color import RGBColor +from pptx.enum.text import PP_ALIGN, MSO_ANCHOR +from pptx.enum.shapes import MSO_SHAPE + +INK = RGBColor(0x2A, 0x2F, 0x3A) +NAVY = RGBColor(0x1F, 0x3A, 0x5F) +ACCENT = RGBColor(0xC0, 0x49, 0x2F) +TEAL = RGBColor(0x2F, 0x8F, 0x83) +AMBER = RGBColor(0xA9, 0x73, 0x22) +MUTE = RGBColor(0x8A, 0x93, 0xA0) +LINEC = RGBColor(0xC3, 0xC9, 0xD1) +HINT = RGBColor(0xEE, 0xF1, 0xF4) +HINTL = RGBColor(0xCB, 0xD2, 0xDA) +TINT_T = RGBColor(0xDD, 0xEC, 0xEA) +TINT_A = RGBColor(0xF3, 0xE8, 0xD2) +UMS = RGBColor(0xEC, 0xEE, 0xF1) +BG = RGBColor(0xFF, 0xFF, 0xFF) +WHITE = RGBColor(0xFF, 0xFF, 0xFF) +F = "Calibri" + +prs = Presentation() +prs.slide_width = Inches(13.333) +prs.slide_height = Inches(7.5) +s = prs.slides.add_slide(prs.slide_layouts[6]) +bgr = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, prs.slide_width, prs.slide_height) +bgr.fill.solid(); bgr.fill.fore_color.rgb = BG; bgr.line.fill.background() +bgr.shadow.inherit = False + + +def shp(kind, x, y, w, h, fill=None, line=None, lw=Pt(1), rot=0): + sh = s.shapes.add_shape(kind, x, y, w, h) + if fill is None: sh.fill.background() + else: sh.fill.solid(); sh.fill.fore_color.rgb = fill + if line is None: sh.line.fill.background() + else: sh.line.color.rgb = line; sh.line.width = lw + if rot: sh.rotation = rot + sh.shadow.inherit = False + return sh + + +def boxtext(sh, t, size=14, color=INK, bold=False): + tf = sh.text_frame; tf.word_wrap = True + tf.vertical_anchor = MSO_ANCHOR.MIDDLE + tf.margin_left = tf.margin_right = Pt(3); tf.margin_top = tf.margin_bottom = Pt(1) + p = tf.paragraphs[0]; p.alignment = PP_ALIGN.CENTER + r = p.add_run(); r.text = t + r.font.size = Pt(size); r.font.bold = bold; r.font.name = F; r.font.color.rgb = color + + +def txt(x, y, w, h, t, size=14, color=INK, bold=False, italic=False, + align=PP_ALIGN.LEFT, spc=None): + tb = s.shapes.add_textbox(x, y, w, h); tf = tb.text_frame + tf.word_wrap = True; tf.vertical_anchor = MSO_ANCHOR.MIDDLE + tf.margin_left = tf.margin_right = tf.margin_top = tf.margin_bottom = Pt(0) + p = tf.paragraphs[0]; p.alignment = align + r = p.add_run(); r.text = t + r.font.size = Pt(size); r.font.bold = bold; r.font.italic = italic + r.font.name = F; r.font.color.rgb = color + if spc: r.font._rPr.set('spc', str(spc)) + return tb + + +def hline(x, y, w, color=LINEC, weight=Pt(1.4)): + shp(MSO_SHAPE.RECTANGLE, x, y - weight / 2, w, weight, fill=color) + + +def vline(x, y, h, color=LINEC, weight=Pt(1.4)): + shp(MSO_SHAPE.RECTANGLE, x - weight / 2, y, weight, h, fill=color) + + +# ---- Kopf ------------------------------------------------------------------ +txt(Inches(0.95), Inches(0.32), Inches(8), Inches(0.35), "ARCHITEKTUR", + size=12.5, color=ACCENT, bold=True, spc=240) +txt(Inches(0.95), Inches(0.62), Inches(11), Inches(0.85), "Offen – und gesteuert", + size=31, color=NAVY, bold=True) +shp(MSO_SHAPE.RECTANGLE, Inches(0.95), Inches(1.34), Inches(0.6), Pt(4), fill=ACCENT) + +x0, x1 = Inches(0.95), Inches(12.38) + + +# =========================================================================== +# GOVERNANCE – Icon-Karten + Strich +# =========================================================================== +def card(cx, label): + cw_, ch_ = Inches(2.05), Inches(1.25) + x, y = cx - cw_ / 2, Inches(1.5) + shp(MSO_SHAPE.ROUNDED_RECTANGLE, x, y, cw_, ch_, fill=BG, line=LINEC, lw=Pt(1.25)) + txt(x, y + ch_ - Inches(0.4), cw_, Inches(0.34), label, + size=14, color=NAVY, bold=True, align=PP_ALIGN.CENTER) + return cx, y + Inches(0.42) + + +def regler(cx, cy): + tw = Inches(0.62) + left = cx - tw / 2 + for j, frac in enumerate([0.30, 0.68, 0.48]): + ty = cy - Inches(0.18) + j * Inches(0.18) + shp(MSO_SHAPE.ROUNDED_RECTANGLE, left, ty - Inches(0.022), tw, Inches(0.045), fill=LINEC) + kx = left + Inches(0.62 * frac) + shp(MSO_SHAPE.OVAL, kx - Inches(0.07), ty - Inches(0.07), + Inches(0.14), Inches(0.14), fill=NAVY) + + +cx1, cy1 = card(Inches(4.75), "Steuerung") +cx2, cy2 = card(Inches(6.95), "Reporting") +cx3, cy3 = card(Inches(9.15), "Governance") + +regler(cx1, cy1) + +# Reporting – Zahlenreihen +nb = s.shapes.add_textbox(cx2 - Inches(0.85), cy2 - Inches(0.36), Inches(1.7), Inches(0.72)) +tf = nb.text_frame; tf.word_wrap = False; tf.vertical_anchor = MSO_ANCHOR.MIDDLE +tf.margin_left = tf.margin_right = tf.margin_top = tf.margin_bottom = Pt(0) +for i, row in enumerate(["3 8 1 4 7", "6 0 9 2 5", "5 7 2 8 1"]): + p = tf.paragraphs[0] if i == 0 else tf.add_paragraph() + p.alignment = PP_ALIGN.CENTER; p.line_spacing = 0.95 + r = p.add_run(); r.text = row + r.font.size = Pt(11); r.font.name = "Consolas"; r.font.color.rgb = MUTE + +# Governance – § +gtb = s.shapes.add_textbox(cx3 - Inches(0.6), cy3 - Inches(0.42), Inches(1.2), Inches(0.8)) +gtf = gtb.text_frame; gtf.vertical_anchor = MSO_ANCHOR.MIDDLE +gp = gtf.paragraphs[0]; gp.alignment = PP_ALIGN.CENTER +gr = gp.add_run(); gr.text = "§"; gr.font.size = Pt(34); gr.font.bold = True +gr.font.name = F; gr.font.color.rgb = NAVY + +gov_y = Inches(3.05) +shp(MSO_SHAPE.ROUNDED_RECTANGLE, x0, gov_y - Inches(0.07), x1 - x0, Inches(0.14), fill=NAVY) +for cc in (cx1, cx2, cx3): + vline(cc, Inches(2.75), gov_y - Inches(0.07) - Inches(2.75), color=LINEC, weight=Pt(1)) + + +# =========================================================================== +# LIS + Umsysteme (Adapter links/rechts) + Module (andocken, unten) +# =========================================================================== +core_x, core_w = Inches(3.7), Inches(2.3) +core_y, core_h = Inches(4.3), Inches(1.2) +core_cx = core_x + core_w / 2 +core_by = core_y + core_h + + +def adapter(xc, yc): + shp(MSO_SHAPE.ROUNDED_RECTANGLE, xc - Inches(0.10), yc - Inches(0.11), + Inches(0.16), Inches(0.22), fill=ACCENT) + shp(MSO_SHAPE.RECTANGLE, xc + Inches(0.06), yc - Inches(0.055), Inches(0.1), Pt(2.4), fill=ACCENT) + shp(MSO_SHAPE.RECTANGLE, xc + Inches(0.06), yc + Inches(0.03), Inches(0.1), Pt(2.4), fill=ACCENT) + + +def dock(xc, yc): + shp(MSO_SHAPE.ROUNDED_RECTANGLE, xc - Inches(0.1), yc - Inches(0.1), + Inches(0.2), Inches(0.2), fill=NAVY) + shp(MSO_SHAPE.OVAL, xc - Inches(0.055), yc - Inches(0.055), Inches(0.11), Inches(0.11), + fill=ACCENT) + + +def icon_truck(ix, iy): # Anlieferung + shp(MSO_SHAPE.ROUNDED_RECTANGLE, ix - Inches(0.20), iy - Inches(0.10), + Inches(0.24), Inches(0.16), fill=NAVY) + shp(MSO_SHAPE.ROUNDED_RECTANGLE, ix + Inches(0.05), iy - Inches(0.035), + Inches(0.12), Inches(0.095), fill=NAVY) + for wx in (ix - Inches(0.11), ix + Inches(0.08)): + shp(MSO_SHAPE.OVAL, wx - Inches(0.038), iy + Inches(0.05), + Inches(0.076), Inches(0.076), fill=NAVY) + + +def icon_device(ix, iy): # Gerät + shp(MSO_SHAPE.ROUNDED_RECTANGLE, ix - Inches(0.16), iy - Inches(0.14), + Inches(0.32), Inches(0.28), fill=NAVY) + shp(MSO_SHAPE.RECTANGLE, ix - Inches(0.11), iy - Inches(0.10), + Inches(0.22), Inches(0.085), fill=RGBColor(0x34, 0x4E, 0x70)) + shp(MSO_SHAPE.OVAL, ix - Inches(0.085), iy + Inches(0.03), Inches(0.055), Inches(0.055), fill=TEAL) + shp(MSO_SHAPE.OVAL, ix + Inches(0.03), iy + Inches(0.03), Inches(0.055), Inches(0.055), fill=AMBER) + + +def icon_dfu(ix, iy): # DFÜ + shp(MSO_SHAPE.RIGHT_ARROW, ix - Inches(0.16), iy - Inches(0.12), Inches(0.32), Inches(0.095), + fill=NAVY) + shp(MSO_SHAPE.LEFT_ARROW, ix - Inches(0.16), iy + Inches(0.025), Inches(0.32), Inches(0.095), + fill=ACCENT) + + +# Governance -> LIS +vline(core_cx, gov_y + Inches(0.07), core_y - (gov_y + Inches(0.07)), color=LINEC, weight=Pt(1)) + +uw, uh = Inches(1.55), Inches(0.6) + + +def ums_box(bx, yc, name, icon_fn): + shp(MSO_SHAPE.ROUNDED_RECTANGLE, bx, yc - uh / 2, uw, uh, fill=UMS, line=LINEC) + icon_fn(bx + Inches(0.32), yc) + txt(bx + Inches(0.58), yc - Inches(0.16), uw - Inches(0.64), Inches(0.32), name, + size=12, color=INK, align=PP_ALIGN.LEFT) + + +# Umsysteme links +lx = Inches(0.8) +ums_box(lx, Inches(4.6), "Anlieferung", icon_truck) +ums_box(lx, Inches(5.2), "DFÜ", icon_dfu) +for yc in (Inches(4.6), Inches(5.2)): + hline(lx + uw, yc, core_x - (lx + uw)) + adapter(core_x - Inches(0.16), yc) + +# Umsystem rechts +gx = Inches(6.65) +ums_box(gx, Inches(4.9), "Geräte", icon_device) +hline(core_x + core_w, Inches(4.9), gx - (core_x + core_w)) +adapter(core_x + core_w + Inches(0.16), Inches(4.9)) + +# LIS (kompakt, solide) +shp(MSO_SHAPE.ROUNDED_RECTANGLE, core_x, core_y, core_w, core_h, fill=NAVY) +sh = shp(MSO_SHAPE.ROUNDED_RECTANGLE, core_x, core_y, core_w, core_h, fill=NAVY) +boxtext(sh, "LIS", size=22, color=WHITE, bold=True) + +# Module unten (andockend) +mw, mh = Inches(1.7), Inches(0.6) +my = Inches(6.05) +for nm, fill, tc, mcx in [("Hochdurchsatz", TINT_T, TEAL, Inches(3.85)), + ("Spezial", TINT_A, AMBER, Inches(5.85))]: + vline(mcx, core_by, my - core_by, color=LINEC, weight=Pt(1)) + dock(mcx, core_by + (my - core_by) / 2) + sh = shp(MSO_SHAPE.ROUNDED_RECTANGLE, mcx - mw / 2, my, mw, mh, fill=fill, line=tc, lw=Pt(1.25)) + boxtext(sh, nm, size=12.5, color=tc, bold=True) + +txt(Inches(2.9), my + mh + Inches(0.12), Inches(4.0), Inches(0.3), "eigene Module", + size=12, color=MUTE, bold=True, align=PP_ALIGN.CENTER) + + +# =========================================================================== +# WEITERE LIS – überlappend, nur angedeutet +# =========================================================================== +hw_, hh_ = Inches(1.8), Inches(2.0) + +def mini_lis(hx, hy, faded=False): + fill = RGBColor(0xF4, 0xF6, 0xF8) if faded else HINT + shp(MSO_SHAPE.ROUNDED_RECTANGLE, hx, hy, hw_, hh_, fill=fill, line=HINTL, lw=Pt(1.25)) + hdc = shp(MSO_SHAPE.ROUNDED_RECTANGLE, hx, hy, hw_, Inches(0.46), + fill=HINTL if not faded else RGBColor(0xDF, 0xE4, 0xEA)) + boxtext(hdc, "LIS", size=14, color=NAVY, bold=True) + for k in range(3): + yy = hy + Inches(0.66) + k * Inches(0.4) + shp(MSO_SHAPE.ROUNDED_RECTANGLE, hx + Inches(0.2), yy, hw_ - Inches(0.4), + Inches(0.28), fill=WHITE, line=HINTL, lw=Pt(0.75)) + +mini_lis(Inches(10.5), Inches(4.35), faded=True) +mini_lis(Inches(10.0), Inches(4.75), faded=False) +vline(Inches(10.0) + hw_ / 2, gov_y + Inches(0.07), Inches(4.75) - (gov_y + Inches(0.07)), + color=LINEC, weight=Pt(1)) +txt(Inches(9.9), Inches(4.35) + hh_ + Inches(0.2), Inches(2.4), Inches(0.35), "weitere LIS", + size=13, color=MUTE, align=PP_ALIGN.CENTER) + +# ---- Mini-Legende ---------------------------------------------------------- +ly = Inches(7.05) +adapter(Inches(7.35), ly) +txt(Inches(7.55), ly - Inches(0.16), Inches(2.1), Inches(0.32), "Adapter (Umsysteme)", + size=11.5, color=MUTE) +dock(Inches(9.65), ly) +txt(Inches(9.85), ly - Inches(0.16), Inches(2.1), Inches(0.32), "Andocken (Module)", + size=11.5, color=MUTE) + +out = "/home/marcuh/claude-projects/limbach/Folie3.pptx" +prs.save(out) +print("saved", out) diff --git a/limbach/folie4.py b/limbach/folie4.py new file mode 100644 index 0000000..35998ea --- /dev/null +++ b/limbach/folie4.py @@ -0,0 +1,170 @@ +#!/usr/bin/env python3 +"""Folie 4 – Eventstream als Quelle; Aussagen links, Lupen rechts, Strecke unten.""" + +from pptx import Presentation +from pptx.util import Inches, Pt +from pptx.dml.color import RGBColor +from pptx.enum.text import PP_ALIGN, MSO_ANCHOR +from pptx.enum.shapes import MSO_SHAPE + +INK = RGBColor(0x2A, 0x2F, 0x3A) +NAVY = RGBColor(0x1F, 0x3A, 0x5F) +ACCENT = RGBColor(0xC0, 0x49, 0x2F) +TEAL = RGBColor(0x2F, 0x8F, 0x83) +AMBER = RGBColor(0xC8, 0x8A, 0x3A) +MUTE = RGBColor(0x8A, 0x93, 0xA0) +GLASS = RGBColor(0xF2, 0xF5, 0xF8) +BELT = RGBColor(0xD7, 0xDC, 0xE2) +DARK = RGBColor(0x33, 0x39, 0x44) +LINEC = RGBColor(0xC3, 0xC9, 0xD1) +THIN = RGBColor(0xDD, 0xE2, 0xE8) +STREAM = RGBColor(0x24, 0x37, 0x52) +BG = RGBColor(0xFF, 0xFF, 0xFF) +WHITE = RGBColor(0xFF, 0xFF, 0xFF) +F = "Calibri" + +prs = Presentation() +prs.slide_width = Inches(13.333) +prs.slide_height = Inches(7.5) +SW, SH = prs.slide_width, prs.slide_height +s = prs.slides.add_slide(prs.slide_layouts[6]) +bgr = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, SH) +bgr.fill.solid(); bgr.fill.fore_color.rgb = BG; bgr.line.fill.background() +bgr.shadow.inherit = False + + +def shp(kind, x, y, w, h, fill=None, line=None, lw=Pt(1), rot=0): + sh = s.shapes.add_shape(kind, x, y, w, h) + if fill is None: sh.fill.background() + else: sh.fill.solid(); sh.fill.fore_color.rgb = fill + if line is None: sh.line.fill.background() + else: sh.line.color.rgb = line; sh.line.width = lw + if rot: sh.rotation = rot + sh.shadow.inherit = False + return sh + + +def txt(x, y, w, h, t, size=16, color=INK, bold=False, italic=False, + align=PP_ALIGN.LEFT, spc=None): + tb = s.shapes.add_textbox(x, y, w, h); tf = tb.text_frame + tf.word_wrap = True; tf.vertical_anchor = MSO_ANCHOR.MIDDLE + tf.margin_left = tf.margin_right = tf.margin_top = tf.margin_bottom = Pt(0) + p = tf.paragraphs[0]; p.alignment = align + r = p.add_run(); r.text = t + r.font.size = Pt(size); r.font.bold = bold; r.font.italic = italic + r.font.name = F; r.font.color.rgb = color + if spc: r.font._rPr.set('spc', str(spc)) + return tb + + +# ---- Kopf (ganz oben) ------------------------------------------------------ +txt(Inches(0.95), Inches(0.32), Inches(8), Inches(0.35), "MODELL", + size=12.5, color=ACCENT, bold=True, spc=240) +txt(Inches(0.95), Inches(0.62), Inches(11), Inches(0.85), "Zustand oder Ereignis", + size=31, color=NAVY, bold=True) +shp(MSO_SHAPE.RECTANGLE, Inches(0.95), Inches(1.34), Inches(0.6), Pt(4), fill=ACCENT) + +x0, x1 = Inches(1.0), Inches(12.33) +beltw = x1 - x0 + +# ---- Aussagen links -------------------------------------------------------- +claims = [ + "Eventstream = einzige Quelle der Wahrheit", + "kann nicht überschrieben werden", + "vollständige 3D-Sicht auf Maschine / Strang", +] +cy = Inches(1.95) +for i, c in enumerate(claims): + y = cy + Inches(0.6) * i + shp(MSO_SHAPE.RECTANGLE, Inches(0.95), y + Inches(0.1), Inches(0.14), Inches(0.14), fill=ACCENT) + bold = (i == 0) + txt(Inches(1.28), y, Inches(4.6), Inches(0.45), c, + size=16.5, color=INK, bold=bold) + +# =========================================================================== +# LUPEN (Projektionen) – nach rechts gerückt +# =========================================================================== +def lupe(cx, label, label_w): + cy = Inches(2.45) + d = Inches(0.9) + shp(MSO_SHAPE.OVAL, cx - d / 2, cy - d / 2, d, d, fill=WHITE, line=NAVY, lw=Pt(4)) + shp(MSO_SHAPE.OVAL, cx - d / 2 + Inches(0.13), cy - d / 2 + Inches(0.12), + Inches(0.17), Inches(0.13), fill=RGBColor(0xED,0xF1,0xF5)) + hw, hh = Inches(0.48), Inches(0.15) + hcx, hcy = cx + d * 0.52, cy + d * 0.52 + shp(MSO_SHAPE.ROUNDED_RECTANGLE, hcx - hw / 2, hcy - hh / 2, hw, hh, fill=NAVY, rot=45) + txt(cx - label_w / 2, cy + d / 2 + Inches(0.16), label_w, Inches(0.6), + label, size=14, color=NAVY, bold=True, align=PP_ALIGN.CENTER) + return cy + d / 2 + + +lupes = [ + (Inches(7.05), "Gruppen-Reporting", Inches(2.3)), + (Inches(9.45), "Optimierung der Auslastung", Inches(2.3)), + (Inches(11.55), "Abrechnungen", Inches(1.9)), +] +lens_bottoms = [lupe(cx, lb, lw) for cx, lb, lw in lupes] + +# =========================================================================== +# EVENTSTREAM (Pfeil) +# =========================================================================== +ay, ah = Inches(4.45), Inches(0.46) +shp(MSO_SHAPE.RIGHT_ARROW, x0, ay, beltw, ah, fill=STREAM) +acx = ay + ah / 2 +txt(Inches(5.65), ay + Inches(0.04), Inches(2.0), ah - Inches(0.08), + "Eventstream", size=14, color=WHITE, bold=True, align=PP_ALIGN.CENTER) + +# Verbinder Lupe -> Strom +for (cx, _, _), lb_y in zip(lupes, lens_bottoms): + shp(MSO_SHAPE.RECTANGLE, cx - Pt(0.5), lb_y, Pt(1), ay - lb_y, fill=LINEC) + +# =========================================================================== +# RÖHRCHEN-STRECKE durch Maschine – unten +# =========================================================================== +belt_top = Inches(6.1) +belt_h = Inches(0.30) + +for rx in (x0 - Inches(0.18), x1 - Inches(0.32)): + shp(MSO_SHAPE.OVAL, rx, belt_top - Inches(0.10), Inches(0.5), Inches(0.5), + fill=BELT, line=LINEC) +shp(MSO_SHAPE.ROUNDED_RECTANGLE, x0, belt_top, beltw, belt_h, fill=BELT) + +mx, mw = Inches(5.45), Inches(2.45) +my, mh = Inches(5.2), Inches(1.5) +shp(MSO_SHAPE.ROUNDED_RECTANGLE, mx, my, mw, mh, fill=NAVY) +shp(MSO_SHAPE.ROUNDED_RECTANGLE, mx + Inches(0.3), my + Inches(0.22), + mw - Inches(0.6), Inches(0.32), fill=RGBColor(0x34,0x4E,0x70)) +shp(MSO_SHAPE.OVAL, mx + Inches(0.35), my + Inches(0.74), Inches(0.15), Inches(0.15), fill=TEAL) +shp(MSO_SHAPE.OVAL, mx + Inches(0.6), my + Inches(0.74), Inches(0.15), Inches(0.15), fill=AMBER) +shp(MSO_SHAPE.RECTANGLE, mx - Inches(0.02), belt_top - Inches(0.02), + Inches(0.14), belt_h + Inches(0.04), fill=DARK) +shp(MSO_SHAPE.RECTANGLE, mx + mw - Inches(0.12), belt_top - Inches(0.02), + Inches(0.14), belt_h + Inches(0.04), fill=DARK) + + +def tube(cx, liquid): + bw, bh = Inches(0.22), Inches(0.6) + bx, by = cx - bw / 2, belt_top - bh + shp(MSO_SHAPE.ROUNDED_RECTANGLE, bx, by, bw, bh, fill=GLASS, line=LINEC, lw=Pt(0.75)) + lh = Inches(0.25) + shp(MSO_SHAPE.ROUNDED_RECTANGLE, bx + Pt(1), belt_top - lh, bw - Pt(2), lh, fill=liquid) + cw, ch = Inches(0.26), Inches(0.12) + shp(MSO_SHAPE.ROUNDED_RECTANGLE, cx - cw / 2, by - Inches(0.06), cw, ch, fill=DARK) + + +cols = [ACCENT, TEAL, AMBER] +pre_x = [1.55, 2.1, 2.65, 3.2, 3.75, 4.3, 4.85] +post_x = [8.25, 8.8, 9.35, 9.9, 10.45, 11.0] +for i, xv in enumerate(pre_x + post_x): + tube(Inches(xv), cols[i % 3]) + +tube_top = belt_top - Inches(0.6) +for xv in pre_x + post_x: + shp(MSO_SHAPE.RECTANGLE, Inches(xv) - Pt(0.4), ay + ah, + Pt(0.8), tube_top - (ay + ah), fill=THIN) + shp(MSO_SHAPE.OVAL, Inches(xv) - Inches(0.05), acx - Inches(0.05), + Inches(0.1), Inches(0.1), fill=AMBER) + +out = "/home/marcuh/claude-projects/limbach/Folie4.pptx" +prs.save(out) +print("saved", out) diff --git a/limbach/memory/MEMORY.md b/limbach/memory/MEMORY.md new file mode 100644 index 0000000..b2cb63e --- /dev/null +++ b/limbach/memory/MEMORY.md @@ -0,0 +1 @@ +- [Limbach Workshop / Outline](limbach-workshop-outline.md) — Wissensaufbau in Outline für Workshop 15./16.06.2026 diff --git a/limbach/memory/limbach-workshop-outline.md b/limbach/memory/limbach-workshop-outline.md new file mode 100644 index 0000000..e3f2020 --- /dev/null +++ b/limbach/memory/limbach-workshop-outline.md @@ -0,0 +1,21 @@ +--- +name: limbach-workshop-outline +description: Limbach-Projekt — Wissensaufbau in Outline für Workshop 15./16.06.2026 +metadata: + node_type: memory + type: project + originSessionId: 9d8b39c1-0e24-4510-91b6-eba4f524af7a +--- + +Marcus bereitet einen Workshop zur **Limbach Gruppe** (15./16.06.2026) vor. Die Arbeit läuft nicht im Repo, sondern in **Outline** (Collection „Limbach", id `90cccbbb-a882-48c0-bf26-c26a0395d9dc`). + +Struktur (Stand 2026-06-07): +- **01 - Unternehmen**: 01 Limbach Gruppe (Holding/Inhaber), 02 H&S, 03 VAULT (inkl. Kapitel „CE-Zertifizierung / Fragen"). +- **02 - Regulatorik und Markt** (Ordner-Doc id `c43dbcd4-1b99-44e7-8b48-a5083aac557a`): 01 Was es gibt, 02 Trennungsprinzip, 03 Nachweispflichten, 04 Prüfung/Zertifizierung, 05 Drittanbieter, 06 Abgrenzung IVD/CE, 07 USP/Produktchancen, 08 Marktvorgaben. +- „Einschätzung" liegt unsortiert auf oberster Ebene. + +Thematischer Kern: LIS/LIMS im Laborumfeld — H&S (Legacy) vs. VAULT (.NET/Azure, Holding-nah), Regulatorik (RiliBÄK, ISO 15189, IVDR), IVD-Abgrenzung von LIS, und die strategische CE-/Integrations-Frage an VAULT. + +Stilvorgaben des Nutzers (gelten hier stark): sachlich, kurz, **nur tun was ausdrücklich verlangt wird**, keine Vorschläge fürs weitere Vorgehen. Doc-Inhalte mit Disclaimer „keine Rechtsberatung". + +Offener Punkt: Outline-Collection sortiert manuell (`index`) — Nummern-Präfixe greifen nur, wenn die Collection in Outline auf „Alphabetical" gestellt wird (über MCP nicht setzbar). diff --git a/limbach/merge.py b/limbach/merge.py new file mode 100644 index 0000000..dda889a --- /dev/null +++ b/limbach/merge.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python3 +"""Fügt Folie2, Folie3, Folie4 zu einer Datei zusammen (Reihenfolge 2, 3, 4).""" + +import copy +from pptx import Presentation + +base = "/home/marcuh/claude-projects/limbach/" +dst = Presentation(base + "Folie2.pptx") # Seite 1 = Folie 2 +blank = dst.slide_layouts[6] + +for fname in ("Folie3.pptx", "Folie4.pptx"): # Seiten 2 und 3 + src = Presentation(base + fname) + new_slide = dst.slides.add_slide(blank) + for shape in src.slides[0].shapes: + new_slide.shapes._spTree.append(copy.deepcopy(shape._element)) + +out = base + "Workshop_LIS.pptx" +dst.save(out) +print("saved", out) diff --git a/robotunits/memory/MEMORY.md b/robotunits/memory/MEMORY.md new file mode 100644 index 0000000..2536876 --- /dev/null +++ b/robotunits/memory/MEMORY.md @@ -0,0 +1,3 @@ +# Memory Index + +- [Würth plato-backend ist strikt read-only](wuerth-plato-backend-read-only.md) — niemals Änderungen in /home/marcuh/git/wuerth/fahrzeugeinrichtung-plato-backend diff --git a/robotunits/memory/wuerth-plato-backend-read-only.md b/robotunits/memory/wuerth-plato-backend-read-only.md new file mode 100644 index 0000000..f8a1aaa --- /dev/null +++ b/robotunits/memory/wuerth-plato-backend-read-only.md @@ -0,0 +1,14 @@ +--- +name: wuerth-plato-backend-read-only +description: /home/marcuh/git/wuerth/fahrzeugeinrichtung-plato-backend ist strikt read-only — niemals Änderungen dort machen +metadata: + node_type: memory + type: feedback + originSessionId: e3bfa548-0bcc-4bf3-80f4-4360920c38ac +--- + +Das Verzeichnis `/home/marcuh/git/wuerth/fahrzeugeinrichtung-plato-backend` darf ausschließlich gelesen werden. Keine Edits, Writes, git-Operationen oder sonstige Änderungen dort — unter keinen Umständen. + +**Why:** Ausdrückliche, nachdrückliche Anweisung des Users (2026-06-10): "dort KEINE ÄNDERUNGEN MACHEN!!!!!!!! - HART NUR LESEN". Vermutlich Kunden-/Fremdrepo (Würth). + +**How to apply:** In diesem Verzeichnis nur Read/Grep/Glob bzw. lesende Bash-Befehle verwenden. Erkenntnisse daraus dürfen genutzt werden, um Code in [[adesso-cpq]] oder geko-core zu schreiben.