From f34229ce6746dfbbd616db621cff82b9040adf1c Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 15 May 2020 16:12:58 +0200 Subject: [PATCH] Aggiungi 4-1-eliminazione-gerarchie.md --- 4-1-eliminazione-gerarchie.md | 37 ++++++++++++++++++ .../gerarchia-edizioni.png | Bin 0 -> 19430 bytes .../gerarchia-elementi.png | Bin 0 -> 14757 bytes 3 files changed, 37 insertions(+) create mode 100644 4-1-eliminazione-gerarchie.md create mode 100644 img/4-1-eliminazione-gerarchie/gerarchia-edizioni.png create mode 100644 img/4-1-eliminazione-gerarchie/gerarchia-elementi.png diff --git a/4-1-eliminazione-gerarchie.md b/4-1-eliminazione-gerarchie.md new file mode 100644 index 0000000..9d35e2b --- /dev/null +++ b/4-1-eliminazione-gerarchie.md @@ -0,0 +1,37 @@ +# Eliminazione delle gerarchie + +Per effettuare la progettazione logica è necessaria come prima cosa rimuovere le gerarchie IsA createsi [durante la fase di progettazione concettuale](3-2-gerarchie.md). + +Si ricorda che in `alexandria` sono presenti due gerarchie: una sugli Elementi e una sulle Edizioni dei libri. + +## Gerarchia delle Edizioni + +![](img/4-1-eliminazione-gerarchie/gerarchia-edizioni.png) + +La gerarchia delle Edizioni è una gerarchia **totale** ed **esclusiva**; gli approcci possibili sono dunque 4: + +- **Mantenimento delle entità**: Un'opzione sempre possibile, ma che porta a un numero di accessi maggiore e quindi a una velocità di interrogazione minore rispetto alle due alternative. + +- **Collasso verso l'alto**: Essendo una relazione esclusiva, collassarla verso l'alto porterebbe ad _almeno_ un 50% di valori nulli nella tabella Edizione risultante, portando a un significativo spreco di memoria. + +- **Collasso verso l'alto con unione**: Sarebbe possibile effettuare il _collasso verso l'alto_ unendo però le coppie di attributi `{"Copertina", "Immagine"}` e `{"Pagine", "Durata"}` (facendo riferimento rispettivamente alle pagine del libro e ai secondi dell'audiolibro) per rendere 0 i valori nulli introdotti nella tabella, a costo di parte dell'integrità della base di dati. + +- **Collasso verso il basso**: Porterebbe alla duplicazione dell'entità Edizione e delle associazioni 1 a N con cardinalità N dal lato di Edizione; si creerebbe un nuovo tipo di Elemento, "Elemento (audiolibro)". + +Si è deciso di **collassare la gerarchia verso il basso** perchè si è reputato importante mantenere integra, veloce e compatta la base di dati, a costo di maggiore complessità progettuale. + +## Gerarchia degli Elementi + +![](img/4-1-eliminazione-gerarchie/gerarchia-elementi.png) + +La gerarchia degli Elementi è **non totale** ed **esclusiva**. Possiamo dunque applicare i seguenti approcci: + +- **Mantenimento delle entità**: Un'opzione sempre possibile, ma che porta a un numero di accessi maggiore e quindi a una velocità di interrogazione minore rispetto alle due alternative. + +- **Collasso verso l'alto**: Collassare direttamente verso l'alto sarebbe l'opzione peggiore, in quanto aggiungerebbe 12 nuovi attributi con _almeno_ il 75% dei valori nulli (più un selettore), sprecando più memoria del necessario. + +- **Collasso verso l'alto con unione**: Per minimizzare i valori nulli, si potrebbero unire gli attributi `{"Provenienza", "Stato"}` in uno unico, verificando che vengano inseriti valori validi attraverso vincoli di integrità; in questo caso, si introdurrebbero solo 4 nuovi attributi ("istanza di"), con però comunque _almeno_ il 75% di valori nulli, costando memoria (ma meno di quanta se ne sarebbe spesa in un normale collasso). + +- **Collasso verso il basso**: Porterebbe alla creazione di quattro tabelle "Elemento" e a quattro tabelle "Recensione" relative a ogni tipo di Elemento, aumentando la complessità progettuale. + +Anche qui si è deciso di **collassare la gerarchia verso il basso**, in quanto il collasso verso il basso favorisce le entità molto specializzate come gli Elementi; inoltre, adottare il collasso verso il basso permette di espandere con facilità il database in futuro per aggiungerci altri tipi di elementi, in quanto basterà creare due nuove tabelle "Elemento (tipo)" e "Recesione (tipo)". diff --git a/img/4-1-eliminazione-gerarchie/gerarchia-edizioni.png b/img/4-1-eliminazione-gerarchie/gerarchia-edizioni.png new file mode 100644 index 0000000000000000000000000000000000000000..df2b271afdf44265a12e0362d0dfa5d1eb299408 GIT binary patch literal 19430 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 R%{6V$E{C0YKOg?r{{k(a&vpO+ literal 0 HcmV?d00001 diff --git a/img/4-1-eliminazione-gerarchie/gerarchia-elementi.png b/img/4-1-eliminazione-gerarchie/gerarchia-elementi.png new file mode 100644 index 0000000000000000000000000000000000000000..7bee7d44cb26e9ddc0498ff924d27e2df51bfffe GIT binary patch literal 14757 zcmdUWcUV*Dx2}!_6oqkA5D^%iQFIg{B1H&92bHm4RHO)m2&jks>CFqRPo zNkpYdS4gM{MaZZ?lolY87!g7eAb}Jhjk^;YI^%iH{o{A;J%8}9+3fw5Ro?ZkwZ47j z-~orl3s)|jHEY)5J-_WdJZsi$3h<+@J|DQV?JtZG@N0JPVTWI56}GNo1Aol*+u^ul z)~u3b4Vm{m;O_-zemfdGYnEn%@@F;~nR6U?&w9_!9Y;`JBkAz`O|B6GluI`@-^q^n zZP|j0x(j|b_;cNy-zL?s@N4b&KYVxMsm7`8V*|fWf4AZ3>fetAI(*+euwrxoY4F4G z)iBEMOO8b^-_Z2OvbdBx>$h}2U+nPb&hy5o?U!d4UP8m1@*agv6v{_x0zxMW?K+*g zMrdMor397AML?ds`xSx0EcEzTA&A)N6owKK& z6kBi3g2ejGby0gqspp)R9d-Ns+_7hhW!NP%ZhU(2!dj^lYWK0PM*0z>?V@&T7|PVW z@P263jZfpcJtjTiVWy>dYEGeYi73lQD*L6t{u$2LCH^|ZBVThZ2Jfc7R}olZeN)!s z6PjZx-vIupk#lg|FQGHz9Ys5D#eFy_CeXH>7?V` zWtDKx4Z2v7QIl6_hE8jm29(DYTNxAtdAgt^&XHap?8iI{(uYs{Bv%r>z&RRp7M=E& z#Gf{ZN9dglqA_%mdCNvrg&F{U42=F8pfgHB-VoSnm`9eAKwov|a+(w>uqZ;dMq zF^mXDd7ekD8GJ{?6A7(7kYOYO5(!kSVC zUn#{W1SbJGhf<6184*-W4q-ZgV9x^0|Df70vGWRt7zTAl^C4x^kwc$A_N&bvj)!7r z&zwy^Jw4rg>AQuP%-PFnELZ=T=(u6Z9u=3&RwCsmzk$v`>pdLdvnM$!nEwi`*XBB* zwBG~tSDN`bbRp&bKV9HQ%&mt9m`9KNn-H#dYyc;`hq9T_17Oj0>wg72z)%in^EW+G zMWU}F%pT4%?5_7gWm6AhNesK)_Vyz#waD_nwR`^6kEj8JlMU(hP6{6tIDBoVhqGz; zPqTc+X~1Llq}TsniR=P;Qu^GL*p>%Ev-dg1CX+ct>1cx8sE!T2(E769WcN*3<1Ygg zKdK_G*!rHx+dK4&4NLjqAt6UJesWSQ*v44&_!c&UYhN%erJ z+!Y_&`GpdP8{nuCZB~MEk2kw6s3PSDun;q$%x%WYu;V%pN;R*tKL_JtEdT@jGx#@2 zD>6fm?Z-%dTJXuUrTlFEUG1TGhH^q6(E6jhfdH%u@*lB&qybkS?7kj60CLGx#%4Ai z@qskd+Q~M6vv+kTe{-=P-`wr5zoPxK#E%&Q=+gcxa|6b7FSqvg46^ZlJqw{z35VR( znuMRjWp_LzmQ{KX^&Eb+?F;7eei5<%zX&AJ0PC0CdDd2KkWD=s8aXJ&9dY##O>LPC z@`i+sAl38cxEp>&mH_=Q8!N5sFFfQAf7a5c_yE{initBe;6N%gYyI@t6OOQ4Q5qT9 zHe&NAY3!BgbaBlZQ_VpeyMhDI*Te^$hdsLO+0|Fo2FH8KNUQTTPodr1^k;e~Ah1{+ z?%Ti>SXb`B;MJ(GNKgH;XK@AAVD9(9v=%`WBtELDz zeh7|U{l|Q5J9a2T15t~oQPJa`BN_xb>txe{?;aBn)u_soG{fLk^)bV}jPG64O6>pw zIumgLOQ=r>JzHPA(DcIc`2`yJjtyp}ntIr#a4UvYZ62jiz8GLu+=j0(Sj+@fyXlZG zAKZ?_O!`y&+WGshE|u(=f6^)rqChEa^`91(wHzC|b1jKdz6W)(DWk!RbprhF&LUkv z;cK7vXrb^gdv{&F*Z!`4iy`*e*>lXEs|#vqVlv-0>1*kd9z1#SC=}kEt~p62lGCKW18A!2P)26?P0erI%mL&KkX-`K^Z*gkt1W#F@%S zeqE5m7er}$j4geto4lGa<$&!UEmRC zZ2c9pc^IM!CP1#BOi(dDuRi=a-^>hAr|?a`5X~2)ccW_5{JoSHs^o-*|Cka#84q`H zCWqF-MhvvPS&r-wnhOw)zg|}Jb6kDa+Mo z`<|kD8{)ZP>1s~Vha7$8ZZ2FBP|=lOyAeG1olWJy?$E{k*KpvXt~xFj<1!s}1Sx$8 z#A5*Zl=;aQh+j9QG3POzI52dFGyAGTte97c^*bP$!b^~Z0Hz-VRmOk<6nI*?nOT)(}t7qNaV{`!~IEAp=W zC}N3_eG)?84nT5Bg7aRYHr6&a0qg!=uGl;07d)k??R}NtJ@>7el*+i+d^;ZEi6Bd* zP7(EEy#Szp=tCb6uu<@sS2;|pWbCSkteL) zpkHqm9k^HFQ+5R+G#f5~4|4&sRT_gRv0f&FRdvCREe$+}Hp!i{kTToi&ct9^9%ljr zfs-bpC|j4)bh>!5)*CbCDpH(wmNy}{`{$R%yk9@1bSZ6p=~ z^%bsCFm;B7x!Wu%>{2>r$FgRnHS1N0mY>5a_Ht_P%42Je14`a5FDte#zCy|ALl1Ka4j>`R+lCalU5YTjVK(a^QOkcQ^g>B=kgL=LJ&=z(VUIBpY+*1OvsGyD5;^ z?1Arr(aZvEPzznu_5$TCccsJEngF{K0JdMc>LO5Bi9@JC>p0u}F$w1I$`UaSV> zc(OZ;zbs$#Ca~I4l|#UQ)v^Gu^WQcXldzbQDZjpXr9O>CRc^|@r3c=#XD4Fi!ok$??wa@x22w z`ST(nLFvP%;c}6;j@fpMZ~v5YJr16)S@vv7L#nH-H0Q)l#;QURQ{WqlrKWTfi{BuJ zQr(sHz+RzjK%F}9s;B4ZlUc!?ise@xa4s3j?wwu}8}l@Bxl2BYGf?`=@Y*iD=a@~- zLq(Ep1uNat3P~JV=^rC$v@A%3&oNW|?wF^NJg)-@#fD6q*Q;9AxIl~=4?;XKodo|n zaZ3gte6TxaJvbZMoqXon;6c=ZIdBgLyu1c@_O5}w{EXb0 zku{HI8DB5h?kxrG*?B|icct1hx7o%?n36oAqXr(S8Oyp*F9ztik_Y>lrEj$9;a z5V@k$v;!Hd7E9>;3KnRcz7!5m={}v1^ znEZJYrX~F5x!3ETsL`~5u@*>|n6v?NuuVI(sBjU&y%-(5ikV{9cPY0rMlP95q+5ZD zT#U+$CapQPF)rx_RGbSGT8Vb(G_|YrT8wx7xv4IioZZR3LJL2VzSYK8ax-PD*0aPb zb~zV>-I!(Hy)WPL=Cs?R*C1K~dvmD;?1L;3hJiq8Yu^(4riXntv}2tfp2N?#Z$?;B zGzeGDR<+rvQ@uODUfM$B(O}wNGRHwifgE6iK~K z&B6B(M{lrB!^=k?mSzXO|FZ_s-`H+WQ{3*a726XKfabIaR=OdyFhInngpnFalTy>oVm-yET< zg*OBQzEu2^=fiD)l6-RvRc3fhI(S<#0p^~Li8EUCWZm5Kbvn1E`1_M?Xi!e>AL_$H z;&^Aln{^s?Gw%%V2>05r)p||8`i)vcs-=x$MI8!dUnz#XxE!GRha z?rC%v@-#zAKc4LWx1IH7q$ZVt4LWQ4eDh$*$;ckA!{sxu14iJ+-No{5FxU*#yKU1k z%-Hd!^*>!i!=uoD z+u-SEgMv4)r_lV@fQQ@m-H&|7$5QiidoA-{kr&F)eFD8WtS|c4w4XdvR6aqz&Aih1 zMtcpt#c?_uacNh7@)BK;wJYlxNqtdEqMT^=vuf>Emtdd8tcrw3`69zM9m`2hQo5`- zATnwWJfI;8o`}~NA)AlZ8GkU&&K4>u92Iu4}tdAuuA&VOs&Q%6Nb6RqcN%)6^=BniS z>LC@%t~bP1^l#%6#ZB~Kx7ve-`btzCVPEXGc*z>r9(lwU%Zf&XuOtwrEa0qQK2#i!3=^OKSE)q&b z1(SPrZHe%|ZFxWy9WE`TtlfMLZW%EL41hADQDjVg@TS*hU9Q(- zbnsm#RGjz4k*8Hy{=@k+^>R8{(CfDeoY-n^YNms|(G}tCeq$Bs!2%yBX`?a*+%g@V zyR(jax%^)Ihxn2DO0rk{N{RQ3wPHlyPZR9Uzov7~?%YyyTsmllG%ue|KW!uIxSFzp^gvjD@>|g?Nw9$Ow~^V)=(aqT|3-sT6~%L2 zoj0@QNoVQy*{Dlei^*gUlToGdBkd!A;JSyx`M1>k>gJ=LRh z6`L9J49Fjd1c2ap%809T>a6FAmoKB&qhDwj%U>dB0M<7c zADG{VPX{Q08!Wn$um?bxvoXx0X1jCtCtaie{7vFOu87O-Huz@1IEXS>|IJAM|AemS z#j*^i#|)F*l??DfvZ4D(zg2fEfY{x)GdW@!vPdzMtXN;k`*R`ryzi9}U#=}L0xCR9 zs`rWmsE-DvyF7ER{Hp6Cf_*?cK!N%ng)j~`0>TOj3+vic3)ER}zlj|;!i*dBTs*1M z=V;k?+(6m@k=YB}+^SlYjf_TFEV+bT&5L44?@M9ZVEL}zjgqvLplI+WmkAn4PV3z0 zHTK64u{i5B!<9JxSLX}3VjQ5P=lc83lJ)b7f~`pqH{|;1k|PfTMII%NB{EAVG97Y9B^*2fee(_8Z8bKjv zoq%S|T1mtG=DMW!8B~=-ph_)N2{w=rGObU1OujdV7|)}%+T`-1$DbKh6?Lt8n_vV^ za%9;G`A^6Ck=wWIuOLAo@(@uUFNQ$ddqWSY$-E+X18GfC%j#h8t$@@u%K)of%Y|H$ zLVGEe64~{nvZ!nSGx*ipB)*kJ`ozlyL8}cf-;RGlE5suL5CIe;Y46lyOg05=bPTHA zcA3=|&VcoWQek~vLRsv?kRg^0W2!YM?}QGWK(nh=xq{U|w~3>izY;;?Xxf5V=V;ogK#3DGf^U1*lxB}=9l#qKXix`L z>kY0zB#>pqlKu;gm$QRt_)2>%O2uouyk3WRux8M_h&|&a$&`djBGOLxG%`9Gf=vjB zhWGFJU0o}&5%Q0R9vf8*evbvZAI&|$6J`%fHTU;1e3aqNqc0<#H!gFGwLC z{^$BzR;$)VUP3epAF~wk@4i6Llqx*d!G8)uSE@P9>(2qo6=9vsun(=hL6A}*yBd6@ zu#*0a)_z&tw3IQecyCV1GID30m*|nooTgM&l^pb4NVpyy@uWW^s{<|+gkvVcqmoD7 zf;_V~z}$e`CV`|B>OtucvfDBY-0`w(S!0q8XWepaiTiz$y%y9ZKDCOp?Xn;6tht|3 z2gQ522c0G?Pooa7@qYmFvfc_-voWwr7Fedx@RmWZa}-m!=?bNJPn6hU}!MErnS6 z!PvH?;PAU3$;ru81-D=_M?kaV?RalS_gJk@y;;)_a{WluW9!Y~m|%4Z(DNA_Msk?C zhuzh(Mv>FZh%k43Lw)n<1Z`3hlw!T(F2d33`D=WQd%7?h*O6Qb4ju6ceeo)`GYqK4 z_$bze(!|_wP4RX8#*ub|=Cq1|3^F^zE3q-k3$ zOR}A2WP1=-+y4ud3oI#&grHeWJ>|YsrX?ZK?sZ~feehud;sGe=ZgwcBXUq+Dhlb~R zRYu6Y;))J^FCy5ZVgRto!%oXs;Yy=QT#DuP`%~Z~+-hJ|z%i6agjWM9N*yW`#Db!| z37wC7M46O9W{<>+JC2@HHMudEX3=NaO?N=Wq4%+U_Wukna?U3A?RlyIDDy+Q7fGYS z9d?TT7b@Aja@2=<#wGczC#?Ep%iE&gUI$ZbTS#_#HK^|x#-sC6`Gm;kn(b>UPhRDh z+}veKGGI(DsOHrw9`B4cV*Ikf*Q z<%-UstGQmgMWeWHFG2vMZLv=H6=53*(kvVcn#m zw40oIPJTRjPQFBMGRR*VG3H*+;FO5F?~`9$eTCUH0K!|`D1sz+psM2ih)63uHI`fz zPZWjRA$sd8r_#$tZh&3&zw9Sy&8TtyiUgl}L?NLw#sz6`H*)!4lb9rr8B9iVO zxsH!nfT32=one(BxlZA(dE)RmVN{MyLs$+7tfrQA##tyvJf!hZGd3*g8->6(Z#nYrK5LMB>G~<*yt+k z9CSlTjj*+-DzQdXQ1k-sB&DXvg^9MBXAUs0gwK_`o8xUZaP9gZh8pGSMx%ciTf#{H zd7=#Y-Sk9|=e_7NFL-EP6kH&30R?UK9f;~{-n>j&N`O5|K-0HY zXxT;?L|sYfImF3$UMYRE_=>UNVIK}o?16E@cP+E zlkK{@7gL5n6=6)K$rdIkK2F*v)^V*2$b)WZAr7X$l9*zu(~!i9itL(|RVFg6-*FSw zEOR(dwy!*q5JY$2<$8sM(0apRC|6?4p;B^3dn}n_=utBw8%X+zOWBxh{{gp&(kovz(-QKUcG&KW&s zL3@EMlv+!yMNMN-Y}r)Nvtn8Q;upLV2UxByI;#lVFwBTtLX=#Ttm}?M&;>)0UL;&h z1`a2CXO!E&{e+Z;8W}8rdw2tG)FW&GJYnTF%_BjGAfZIVK#S_XmwJXm!w@dbs1wSlDvT^UHq0P#S5yHw|{PG7Iu%CEbt*z+ISN z!rs-F8jCw4YhlP*2Dyn|ueCgLl1#wI#1HP28~125j@p3@kRf!_qcBwdXm^+59GPi| zEWA7F*whs)luZl9 z3RZEf4nBzU6XJKB(WtxPdfQ{sxUrYH?ZHUI^QJ6Co{`aMg(F4sqeMLixLAZ zLm)C+o*~RlrP;&G()yUDTWL#Rj>C#-8;fbY7spE0-@*(zh0+WI|4Ax1>|{uYI%IR0 zoUrXIw~LoKhlCw}&9Wm*^-eXw=huBV*$9ex1vdDpj}Z!@lB-5f6k+jQlA)$~$RJzC4q9 za;ds9R8?FLlW(nDIT+6@X zMJJ%>2I%)@(&)pp|7hTw)>QU`L~F|;;g*gQ@N9#^lu3UY-(2@P zm%OaL9lhpvgC_)wh6or0K2b?EACTM;>AalK;rZEkN!w)=F?if5No99{`5>sw!jeSH z*R=tk4IIoqs{fO?h1166Uoj#QCy0$98^ng#*+A8PO;*$-Gd?Y9e3I(-i{kKQg^!Zo z?`jC9uy~AVIU|oG$s?WqW#US^>44&XyrJY}d~?8-pDn${_={FZWf{1MzHqoxAr7E* zd*z7*Eif5k8P))36LFC#K#Qq3SrLc!CC^Dvr!3ni4F8+Cz)k;l6~MeGD^x7ftN`dN_8fD_7uZ3OEURfC2P`&MUhLo8y3<08Z6k$OB%81{y!vJfNww zUD=sk0UX|V0##mhcLFaEfmTHOL^glbJ!S9bDsYIaCtKA8;s7tefuY$_J#%pQ)LN#J z@$D1F$C1TVKIHcuozt$E7*)sXeYdP?QiHnTQ@iK%kozCKVO~IY!cG6Qa=9^o0S(oR zFcDCsF9Mb&lqaslRvI4z`1&G@$^%rLGGJ8O+e#s z*hy9O|2*IZu-ba%8CPGRaV37=3IqhxN(J^Q0rojZ)xa_Z+E3E=tt>z=EH1E5G_bna zsjZtQV(=n2pc$2KawuQ3F`a~Tfmco>af0D_gr#(MmXwQE;sOae1d)^6m~blr=9qXUsu}uXyq&dt~5+R&Y&0_*R7h=2S7^4dBwZMvRI3 z^+DKvGnALLoBoOd5`8Qd=r>PO8Ct0U?7tl1$aB1teFC|>;)W-L^;HQ0a)#*saA}L+ zwQtxVyJ6$)!)dqYiJ@re`*dMSE5rhMi^Ji7@q{;}pW|PBKI>#(8Fh8#X8l zL@RzM?qA*+%F0*_y_+Z6HdWV<62*!_)3hsJbT&Xvg^OBGJg9n5DSX-AQaD(4XrgP6 z#~F{&bE231{E6QpH)-94c-{lqcu%AXqV6n&R_~JwAk%_D_(7p8bU&bmiok{qeKgV3 z3*m#Q$`OPaGK+w+YpOg)&a9(fEJB+wJfd}N=*5I%{OS|L+}rt`>5O&+b&*g zdto641wIF)TxH8Htbk}z9OU!WsBP=O4ZiBN=E4Vt@>62>g?MX>x!Ni$SHq+!QkJpr zF9{t*4=;R0!eg+r$Zg2bKnL}~MS}DJ_8IQOw`_eq&&X?4#Vm7j8gp}f zJEAH)V`^6?$(b;E!U9}^&<^(5q!kTcI}B7mHK5aPISX}qkZ7()11qy>!t$xG;fa_U zSQY$=hd?O~*Nm{M$MlLv&_9GK;vy4RvB;PP`rCb$2EU2KZ|JK;t=^Eo+bX~3Npv`C zSjZvw$h9l6@&JEZz66hG(ko1FE?Xu{vb4{!8K&V|@KH-x$o6;ICot8=u0($-qjrV%MYzRgCr=bEuMA!9vpSTuWRmqbJAgoC^WI=2&kq2>0-4_YD8AqVeZ6SX7w<1 zgxaM9M0`{NwS65999+}bKZFohhm?=4*v&SRZ@?fOL+mvzet9cP3z~+s%R?bR8mO5MN;FMd&kWBe&cal27M|#%OqX z_&$3am^7A%JfckYB3r^@c^DrOrHcicZR2$a7H*Kr7lLwrT#jW{1mLR-rYbv$E_%d% z1i+8yyh$FoAc&u5K(`o=s;JBfkLEbxwj}5flI^CRL2ub$^luCog^%JUds&ZbVCf`J zNWEY<(NMbeQVHLE1;@Bs7=_KHza6U+wAFEHPsv3|pobN=ydu{}86$EgL`YhkJeZ|L zh4302FX`tIVqAqqnPr=$&w|_EZ*Nr)Dl(y17qlE(v#zW1(ln1n zOXM}-uk~Oz74uT2utq^_^kjqKsJR|(S_qx)*wFPEM(WVx!=yPP3be}Ywbo^(Pet22 zh`z2CCG1)uIY&dNMgLE9I1hRgPkvDp*%dHtZ6OR`Kkb69VP~^%@Rn*!Y<8m`bU@ z@{BR8W;8wO)o@ve$f-0=k>)y>jgZd*{!{0|DjHOWoF4h&1Zde-%w%SN za`d~OI>U*A^ql!0kDJ89Z6s3Cv~-Yh*JRVjV=8z>Jv}P~I3%SyS