From aab06c718611972e8ef551ce85572aff9de94f2a Mon Sep 17 00:00:00 2001 From: gtfierro Date: Sun, 17 Mar 2024 21:00:14 +0000 Subject: [PATCH] deploy: bacb91d2551d052d9a021d434a3e9aff3ef3b29d --- .doctrees/environment.pickle | Bin 549657 -> 555651 bytes .../explanations/shapes-and-templates.doctree | Bin 36647 -> 35921 bytes .doctrees/guides/generating-queries.doctree | Bin 24788 -> 24788 bytes .../guides/ingress-bacnet-to-brick.doctree | Bin 200402 -> 196670 bytes .../buildingmotif.dataclasses.model.doctree | Bin 75855 -> 81192 bytes ...ildingmotif.dataclasses.validation.doctree | Bin 167815 -> 179593 bytes .../_autosummary/buildingmotif.utils.doctree | Bin 90541 -> 113340 bytes .doctrees/tutorials/model_correction.doctree | Bin 51663 -> 51527 bytes .doctrees/tutorials/model_creation.doctree | Bin 60047 -> 59382 bytes .doctrees/tutorials/model_validation.doctree | Bin 75960 -> 75961 bytes _modules/buildingmotif/api/views/model.html | 10 +- .../buildingmotif/dataclasses/library.html | 13 +- _modules/buildingmotif/dataclasses/model.html | 92 +- .../buildingmotif/dataclasses/template.html | 1 + .../buildingmotif/dataclasses/validation.html | 48 +- _modules/buildingmotif/template_matcher.html | 4 +- _modules/buildingmotif/utils.html | 111 +- .../_autosummary/buildingmotif.utils.rst | 2 + explanations/shapes-and-templates.html | 48 +- genindex.html | 12 +- guides/generating-queries.html | 4 +- guides/ingress-bacnet-to-brick.html | 1909 ++++++++--------- objects.inv | Bin 3890 -> 3929 bytes .../buildingmotif.dataclasses.model.html | 16 +- .../buildingmotif.dataclasses.validation.html | 30 +- .../_autosummary/buildingmotif.utils.html | 53 + reports/tutorials/model_validation.err.log | 18 +- searchindex.js | 2 +- tutorials/model_correction.html | 106 +- tutorials/model_creation.html | 30 +- tutorials/model_validation.html | 94 +- 31 files changed, 1387 insertions(+), 1216 deletions(-) diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 83e77675e10411b0f46212fc42567bde1e50f9dd..c1983c6bea47a3cd975046a89d15e2724296928d 100644 GIT binary patch delta 42342 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 delta 36953 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 P&GY-kAi0L#sipoOT$kk` diff --git a/.doctrees/explanations/shapes-and-templates.doctree b/.doctrees/explanations/shapes-and-templates.doctree index 83466ae1d9011d4aeacd8ae6ea98510f8db6d46a..28cb800f8f2e36ebf2a495bc2919bc3dd5310fd6 100644 GIT binary patch delta 3249 zcmbVNOH30{6zvR71rehuiii~kF(RV2biSBq(8Q=h`L~5{LGsI@l8$o%H}1V`%ce2=bd-o&>ed6 zHqCS~w+=)`na2mA*^$0V%qy{!@?t4pQe0xQ!K_`#^LQnh)S+Rej+Saaqt=wE_yu`*FO4c()|tZ4^0PhBuDQO9zis3}RregiP_yhAcQ$ zxn_x27V7QY8UH%X!B@LTB3KZS;3Z>6DmKE8%5JQ0-a_iOz{k0r6d18ztJ1M^WR9Qq z;2GnIaj}f$9Mkd2h_`?sVN$8mCj@M1lx#YL0jVxsp~>v%;n zv!|W$@m7;ZGz_MlEWD_}c}4A75g8`MMJy?BWgUK@MILoc!Ypy|%*lY!Isb8Dx+Re? zq^}&o1c<| z=4WELH;-#_{~e#?P!=j1aJ8~FITO=vs=(Ef<6>&xHR^b^SP{h|F4U5o3>byF&8=hC zre9*!m(Rp!OD4v$knY8JWeZ`phMO_BlfcE?9z26(OFb;Ix0zR;B;DJb6c%}HYr-{K z2^03TCC+P^9LvHJMaQd6K7!Yg=k>3nY$ctVJTJiBv)7_de-=$m!OcLfy7r$xOiwZJ z?NT<(o!>%#VW7`s0ec`-t4eH3Fd8Vs#4nwbM*RV(3nD@(67 zLU`Xg$nDsbcF$+_75j3OjA&VKh^C6+(?vJEO{=FU6AVoH&Fd!_gCXSGt{9dX48Bd} zix8l~hoT?b(kRLfvzK<$)kdwOQ|+nh2XDKFwi~rBeziZOn4qo;v+=%48(8Q>r2J48 zEQ*FZo~2N|P}P-Biz>Q8(ze~e8loo|DC<~D`J+^LoT7(~@Ya+K@2_m89~j}A*^>5P zUeqw`>+V>nzwACjkL&9VSC67P^6JA?C519a9oK)RFejGBEHi;ClABkj{zCs4YK*LD zJ9okDIv4T>ceFJ5LqSjLfZ~L^k$k3k5%N01Qg!e(gf4Rfj`%6GJU sLCa^fd_c<#^z~+LMdco?)T4dw3HjL0fkF-8Td8gLg_W7;MDGdeFGWJn0RR91 delta 3788 zcmb_fO-vg{6!t9G2`CWKR6q(PYbQ}nO7QQlZK52~DpkNCg|y^HK+Iw<>>6V`>^j7u zu5nQgrd1mHKx(Cm7O844jRf+wROumyNRir}`m2Z>da01wNL8h%Ido@0<6%-TnSU?u$jvJZ)ZRet*S$_jLB66`4$qL{fJs2~C$HdLj`EOJPNJ^rUqq z5qEgnU9NV&@+QFY9&v{!^v+=6NXX6Q-*CbulMpQY%56fXGrOEt+d?lq$$m4Qc z=acD3YD|}svYP-%yc*YZDHf9>?bSR#i4V4Ko^BtpZ5%&fn=BCumg#Xt2HbMFf>R6G>2Q&%hkBdh_k!D<+PgJ$)?Qj~%9&N-Tu z8MeWS`ifb5BTPE`N_F-DJC^9YaGvJ&L%frr;(2UwEJ&N8F&rNXL8Cie%``9jm#I5BPF3qd~ZJRVE=MgO?^(5t_jnoVG0EY^R@Q z;X|21F8#OyeGF3>8+r{EGbgx@wh}k3VGUBs%TZIMk>B#>@tMs`;DPQg=x=8cw`zfh z`wu|v^dWQ?XA?lH5SxDM>2^h~8~w1k{ci3Y*(QnYeJ5Ih+6vci{8NFV@JGH8ZsuE% z0=Mz1!u`ArUB|nAyknmg&?sD$4c=K=j4rU@0U18c> I<`yRf0Dd_<3IG5A delta 175 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 RBY{X3Okc&E*suZY{{ir!OrQV& delta 28061 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 JHj7PR{{|LJewF|L delta 4295 zcmai1dsLLy5oazd4-o^q`|Yy3ECTY7Hx?VJ)cJ%qLA0kmrw>VN zq=XYZ8OVo?MoFxNs8O;NwM0c@DAgL{qY^z$gC0xtXcbbdF-qvn{dT`)b3BDV_Hyr? z`y{T=swZOBp&yR;ZEZ#EuWHB04TO$NT+phDi;;M*HU4T=WIwI$>Z4*vFhY($br>5`$m~hGAc-(tC z40}E~1XE}u9XFjGCY~@!pAiPhsACf#MFS{+=k>#jeTT1qIupuiBL&yzglln3S64@Y zQ+dRzC^cchv?TF@PsL(Q1q^3%vFn9ke!|d^rqoGrvZLl2=x3*i ze&%Wasl7H>ii^)zK?!!Bcj4*_KY*iTjuX3PWr$W2-oDTTONfa}@X5Qw@Y#xyXt}!< zE=rM7i&LC4;j))g;F?^>o+}s1W~X4v$rx;VT29~YED#1W_ICbW1ei(Mgxf!}h$u5g zZXC}mHGi+l@>8Um)zH%#R{+V=ZH^8Z&fd9{+Z}iW=SpAbfTCPlcWYB+CdXmj8DehT`1O= zamtkwqSUO@Tx>LB#fNEFlot}Zfgm&uWqC<>|LXfggqG|VUkySa zbxaQ$m>x9T?OwnG)1%I;zvK;O?Il-`oJIu^tLUzADuZ2f?pBi+%bS@7hbvRjF`UXE zi~=#wcRqj6`DARpoheo*^b)?WT`V2v-HB8l;i{#IWWy4lihNy#+G~V($%j(DjK+uX zgMKe%^4nI@ps}N!eJ9!RCK;o#<4r}f!yVfDgb;h#qG)Eth+S;1d~elTv7&kd7WO*a zllta@Xjd@q-SM0OFQ$qMihSV56(l~0t7L2jZ*A>d0Daig`4;q$m|1cm#3Ds|6dxBX z7M%+u*n25er0POU1A=8598u7Hf328hVZ~yag~=$M(Ijccntx(p&AgZWV3zoqMG|oh zOKL={lG3mS3;w0xriY5CXVryh=$|G$V$8zbUa{UgCR}>o3DdCm&L|w{SJ(*4x5eV5 zW<Ot;yy9dftfEN_ zZnsB!&;N736V?tsuQeSWb>tSP^qyy3S{f(wWxr%ow6}sx#zmo&_x1xcBw^lS=El=Fq=ln?a!@xWxs6Y%6kFD`fXN19h%*4UxvHPCojgupB^FTPZ445H* z@TQo>;AtW^O6Ih=L*i>4%?dvZ(#lzl2F_}9pH+{+T%K}T3yS*A)#KH15m1Fcf8e?Q zYo7bRrrqCb<_n4l|kblJ~g|*yRB0aBrnleW2jv9nqAgne$ zp_^?USoMkmr6S!Xv#|_Gy1L&25owPI^%y!N`)gQS>uavZ*wh{iOwCPpIZ1Y~)S0b936P^;$s3&)36_<$ID6K@~ za*Sn(sG*x`C8EZ5fEuVu5RGi4EDs?&*m+bQRA(%x>WXNX8SY)8P_@`(BKuo3`SoKy zg+4wu=JCd9|T4Nwp>>x?b9@}g(d)#DK7pHmKnHJWlWse35;`n6stx@o_xM!n& zCR>e-h0UVR=1m`?xseqk?0T?6?K0S87&SKP`Z$;=oV?5B+iuq#7i!lW7i6b*SRf|& z0CN2Rf<{B0c*;&U8>jweG|X21!`As{g?ziL+_QY>xjMQpEPZ@wPgoi}PSrffVJWn0 zVJRf-T3BA;|72hLid|Oj1LcYE1c)tcjEs$_w;%X62?{~D?XqC*wabEe%r5IM&A3*b zA?q^6hwUY}b<17V)H165@kG}vjN=K{=XNezf=+N1-bFB;X0)E2p*5rL*|`~2x1~V_ zDb@mrb{RmE!!LmE@gXgMb>vqH;LGXI52Mrq3#4FMXt2631Gb822M2K#jMLWF-wq2M zOF-lkQpLfuWx*c!k=)f%`E-Yt%BMRxm1`f5&ugcy{Utd{li8m zoW*G1EJoNxV_^+XIg3qo=uc&=LwhQjyp%#_`{G#V=N^t@xkJWLDQD%9UOV_d8OI%J zj|~zqWO|~yBnR@8W?kk3UFHLpu^u>;19d`lISwp;9Igf?xAOi$`YEpteR0`OSFZiV zODoIid*8(yzbh|}qfdX@S4$?qY(r8s70IpQRrSebI!eU@Y(oBzKEYTF#U~49P_eQBXN7JbPOETlcJ+ONY`5m2{16?tkW1v|*Ts?oh zCJ{z~yh$%7!8YRn#ewzXN0Q;hwAiH31bXN^kxVl~U+vxQF7J>xrfJBVIvCM8zJDGp zBu#}vo7w>?4dZ-MF zsd)vMI9qtDRJDA%h|QY3W~H-oV8;0Oa={5CfsPeIzPddvR;}InhR6W{KUfOv*_7+QVhiwI`Rp5oDRq^mo}9^GA+o5zop+Tf=Z~h zaQW&vxqA5@vRIF0TiTOH$Q-hr^{${31qdY0Lfu6$ABXA4Z6u!r#f-CFZ3g{z8Y=5S z*8QS^T3zz}eDY)j@#M84DwUBKsn`+~<<0a)d$W`p*3916)8g?i*f(VM<}?i{W?E;3 zzoCy8!+($hIwC`DLVD&H$w@jbAJ;gMYtbz6_ezWh^`yD>Cl0p{X+~(hVri* zzp%!;7FvBb{A0v?>N1lowQh@@{2{EVkA!KiiXLVf?6GV!Lu{Ek;%ZVy?=tIp#t~hs z?}l~sA!|<2>RF*x1}h~3J>pg_Mn^@_u4Z^9a>$##jv$P4!U*S#3kV}rlxaqAuogFh zqs(Xo8dwC~Xb?(9(K*vgVJ*1I=q?*s0~^ZdsVEsLQ5 zy36R5bHoYTv3FY<-_7m#MG(obS2}y4g(T zGyB4M0qQ*g>OVuE-eaK5@aO9diz7Om*Tdrdnl-1unJA+OXDdDDgty_f5Tw@(b2y}w zJgWxD%vv0hneJZ&>7ngHk5433>yx3*%40_h`^r{X zY^$Re*F!oTeTdAa7uP^G9jGDqXr{r@oXt=^vl^ETS>;aZ-V90LunNheYvDY|R&I<0 z*+6FHUY7E#F8Z)8`f!Bk=a)n}*<7kF1qV540CB=<@V1{WgSF%>0q3-U^P4c7(*n-K za!4c}aTe3kQwBsHnvL|Ad}8m1K)+Ra{5UkScy#CTZI9zOLrG2DK|_A){{gU+ylAf zPI~1oSUbA}7YkWoBQ~kK0+Q&lb#Rop89N!8%DHv@VdmJww%+IKVGh~HxMb0Zo#2jE zwA|2CE^@WYYACM&osaX>9cXqiHm13I!h@irvqEyH7z~`?}EKBWD{Zc zkc}mxs|km2a>x^o+34^o(g0&N^;FvfI_wv0+*0tmK>7l{P_c7O}&zm9<6)}xme+zEG5Ps6{Y1N6#p0#P3YlK8$I;` z$)nxdP)$j8RMR5b-HgTM9J`wRyT$6i`E$W+r>@haNG_+qQtgc=s3QSJuUh=2&>E6ulP(KQd4h#5oA79ag|O;Lov!qvB^#C9PuFZ&eJw5X_jQRz(|%nZ-s__j9Guc`O633@eg zMRH!OMxhmr;f}D>AKO*;u#;S(hdUuz?b?zGpP{>8gt}yBQ5mLJ@M>t`B}CQJqL_^$ z%)M@5HSv@ANz-|^p(stOpq81W2^uw0iMLgV2VyR-2f$ZBPd!9-8)vgfv5!wAN%YD?n1JTAk}QT1Pd{+ct|mIN z)zMWc31Q2)2%IJm-)faxH`AqrNpHcvy4>p)Sl zU^S*7O@Io0HVdvi1+8#gpMpZm->p+KVcPi@Im(o{05vv?9y&>4rl^gD-J-(3V$af? z19*mdn*}0_(PuC^@)&*45fP&=u#F{R^qY1bqx&b<`*wPyR$p6Nz!NNzT6%(#zq6xP z@^$X$=xOx?q_7b6oiV{O{+^9ef|y}eI$RkWYWJ({Zbot?AAsDf_jU)yA#6>rwz4DobWy|5F%UC+2-do ztRV<|*wQxZZ~p>l{h^@v|Ay^@fv0tJ9}FD56};6*A3~^6-xwp(F_an+#~F@6DmvAH zMGy*?xi<;N!up3Cn26iqIY&4Ne+OL!lQ8aCmV{-eW>(2;j8S_-(Z85GfKC(iOKrZ6 zpr>1E>7~+X@)w5Am-+fuIO(9LVz7?GH|FJRdgor4l@khrpV;kIPHwz_8|fv$WWD~11w zr1_k$LQ8K$F+X%*)ljri`SO;_@wmSO1=3Rw*{eAzw!&sic5-`Ym<$qSMWf=iIlLX7 zbw}hZlapz}C}V+==e(6lLNcmLu9=`(FkBE)?MVdK(}Fj9B;Oz_3O9DaB(p)0t2gq} z8Oi3c*lk{Y%{#uK4w*ySrEN zx8WAs(G!q5{VZCcBeK;)1=QDtDov697gm{5!kz)sKBuTz_c#S8AAYl%^_YX#tWOy* z(Fjbmekaty51qUk<$hIs`?TcBrbPI;8XwGFUrg#PvNd|QZxpPFi{iAW2%IHm= zTVcP6(8(et-zFRM*%-HqT~aT{M0X3}HO5U-w83}4)K2P-!?NbNkin^LaB(oeFsmO7 z-qed)7GuT1;6vOz{9wQu;$W~+)(!?MW$j=yI*#c@;D)iz;Y9 zrnNhv1zwW1VohA6!;7-0Hs6qW@$@3T#GL`WBV(mTb%Ku~39uaflT2Ojk*AP?S7h;( z8V9{1OV_(tMYga~$RgGdE>d2pRb+YM240hAwLVoZ#~LfOa%`PO%NJI3QdW!IuYV0+ zTf}t2YT3QAUd#GW(V^pZpDd2sPctF*37$tPg+4|Fn<8~htO(gR+nU`|oHTU5K6I{bp z@Vwo6n0%8NKNGH2@?1Z+DxB+QSMi97nD~J^br0-^JU(uP+$xca@vY}#n%D;!P$f8M z*~wX@W!&<`$WM<{pI0LDiH+=Po}IaKaSV?=#`LHBH@Z7sI%0lph~$}DrR887cp`^d z_;MnxxvE&|wJGg?<+?Q(lIY|nNQQlaxt8LDkW*6}N`onmY2+9Cz`@=z4}cergamt% zX^{csmjhCj2>P?DM9`mEB{JDh1U0?T3$d|mMwX)K{r!IU9=wJ0?4sjLX#S7&`8;WS zET;2B_hO%(>xubY$5jF6vyeEy z*ToSb4ZTSZX>AePgN3wc#Z^UjKMYc;i`R*&yE z2p>e}ZDvF+d;|vLI^Fkr@ZP}_z<*>EHtf(pzi4iK2ZK?O&_%rMLhXdNNdvSX|dR1%XI1+5tqn^ad?t*utbS~0dZ1++0X)(Ty%X8G*i=Q0n_ADtifo_o&T z`|NK&zH?^d-98(3_32su#8zEn&tHa#bw}#Ll6pL`vT*Ujxkvt}|EpQNtR|&SQ}5ZM zJ16_6P6839&UQw0PAqq-XF|3@kO<GTKc3S;foE+5JnV@nv5?{UIvQdGRvIB0V`Cr>btZ7(u^4z6Pnsaxvn-aE z;|9S~_?Z#%)YjZ!{A3V3gX2vkGS>{#Jw4-ChR!LZmfP4wAeD%NwDWI&9G39J6AJPCSb(7I=$4 zI+BDHw-1MBB7)HDkYCu* zS47sH6FL#bQ%3c~fnhjR(3;1JZOQN?YqagNhurspVoEHl)FFUueF_fdN=G z3VLI4I@rVp&0h}E>o)vnI@}QN`JjnfY)*pVR17jawKfgtheptePyIlt63l*}wKfUv zb@HYY+*TfT1GmAZ5}(E$0i&!Uc}M_V~fHug9zJ5Uf|qkaS12- zv5^`l?yld_(3D59-Ri^^mJR3OCk@+AfhySXD=~T?X=>OCcqFkEq;$ddmuKNMAGXb7 zp-8OKJmYk&NWn4V;6LIm4bl1(S;_APU|KIRMXEc`hl}^6A~xL?Gkv8@DvV|YL(s}_ z-DA)cr)ZhVm;m2F2{}k*SQ4lrGxZH)keRx`BZ=lhS2WQ%UCS^>-1MOl*YSEf)MHZ) z^sb!**#LI6ad$dAkf=asS1Zc-OH0y&NuUFh9otS)P@Qoey--?Py#QxzEvsr`%Zu>)< z<*OF5NCYPOV%7|5AabGc1+a){@29N3M9iA0Ei#YdD^(CK94w&`X=^V^Rr1cjj?(-T z6TD_LV42l0P~=HPY|n>v-JMwE6_+l(a8cw#hBG^cxVS%;uDsa)diZsZCX@zD^D;3``PLM67ynozc*c>aB`K9?7a`Oy#Nw zImTpdBulDTpIuuBuX1Tr6v6@V2e}U)O~I!~i&Kxn1v}AH1k*#kQ>1$_6)TG1dGUj$ z@W^R&B~_kAceMyyN#!(0sek(W00?nt?UA{e40{hD5~m!3(IK0Q#OwBgz1x0mdtnuR zF&|uTDpl>c6b&a+Ib!*-&p3jD%G@KAwjL7JMRr^Z&{u?aS`5b3Lq9yUfJkqGL$yU( zvB3?8V4MRB7eXNvIMii-vxnr96%AP9X_0^l3S_`i79ZI&Mp;aQHVfoC&>RL9nBh?4 zuH-_crn#|;rrN$N4eA`&{H{pFruB5~Xy^yJfn!w(pUF3O5Y9#R&0g{p!YIW zn9w>=(Ag+89dO8j9Sx8<;<0*UV~*QUDQ4BItEs5rbD6EFbt|m!p62OBpQorlPn|Q4 zS4XI?mIjA@)tOicmdeG@LpkJ7tFM|2hsZ~bD{t~hmds5DmrPGC8Pp%9J65F%*@k;Q z$@@OZ`z&d|@+L9PlT`z!gfL*%qRxv>eDT3hN@&T~py5o@HVTC#7c zSE#y+5R;17rP*tm0WbROF`*pkA}UGcWZ;za@4Pm{3`(2&$>lp~w00*b-km!FbpzPs zp_Eju^ODi>BII;&VF2n^6KxSdcE~Khh<+NE&{b*5pM_CacpRs;el!qB{PenFr*Zrtbe*sZWb@st1puD%eBc2pa)c;OQ#nycg92-U61@!9>c2?`xa3}Yx zhx#=`(9M87#;K=71XjHd^|05)4Lb%Wo~EoF*H&8>0`Zwkwk|=Htqc31LNsXz+FNuX zIl;6XqnveN$?wHLpm+0r7>_Gg!|>WOqAy%_apWii{kUJPLw_K1${JF7)BUBghi#vj zO#aHAJxiZubCjZBRpiEt2i{F0*(zl}0$Y1S7*6~M5=A)b*HFaUTOy%fTIUX-aL1(< zE>B8O^lAUcCRn%%;zgq0&{>ySR~*5c?K&gk`F;FjNaOc^KL)qR_DbqPvdF#!Em`4= zOY+w-m&RX5UBq7rxN9K{7W1VJ%0L#el2P#n^2{gj0p08v#+H8li3Us4q?w|$05iFw zCcr{<7YodV;zP};69=L-@K5Wz#k4+6<3W1+cu@Q%P)kx_;v;I0qrv(#33!j@X|>N& zjRyBp{5okcJg`TY2E&y*l-$bT`DMjLr3;r9W1T@n7c6^E8J${XjN{_CZz<^L4?KSjC455Cna#e93^8?kbgAAE&W3h3Zh_*$Wyemhqxs_R^QilFRh_DHPW^SxsdKCDS@qDeWy_c0fAPk4vr?^}oC?b2dZQe+d+}(w zQR>cx^-k}>-kw+V?(R**Yg)mHcB9)Wg}rzglqglIwQ?)0_m1}B4OqNWt+l6E{nhQT z)TuV=N%hLA%1CAP(cVO5O}wg8?bJf)r+Djh7aFV9XXhH7>dX{rs)xm)^vXNJlh_S& zq1W_i??##d^rh3QY>w9ylg?LG#3QWF2ji8sYCY^7>`n*qSkURTs?*&Lj1|YWqFQd_ zI98WxLAwnP;q$6`Fh@U)mb*>yWjZJwYlSmdrW>#B1he>4ud=bSqq45Dv$CQx9#{5N z8gt>kR<~XcTl-ElTF3T1hYj$S=iPDRb=o)RZhIdz8Nvuk;l7|*g(v%pLATRrcjxAU z*8DyLf2LY(81C6Ooz|VMEQ?oF>*esI#8b-d$~iE+%DKSEUGV<}@c(Z3e-927xYeqX z0Zzm#n?beJi+9X5%H3M{%z}YjFFuR@y4Un$W#nL|7j!EZSN2ML2>tk=G`x@MQ*(Yl zvIn|apDi?Ij6DM;EC(j6iAP%9=~lHQaUouFUAIm&u}$@9yZnSH5A^tID!GG|vr#`X zxrPILmKb1V5=gHn{NL0Grn|MERV+1X#db54JCP@fm85*U>Bx&-cIn+Od-C1<-yV{C zo*)rsH%s4&z!7DZzv#kM z%a)D7f2GFUG)zTGqCIgDA=Tb9HgP7U*w>bBa|;~`c(6n46;dK+rjs_hQ;h;)qAE|A*LGult6Q!gYaz~ zDX39KV^amtL|k~qM$ zF-jjMLbujIygVM%s^tKOjAR?FP67E?=(fX|ZVfsI&6jG$YMre-6Hqpw9EYhO(Iz^D zJiif(5`Od1Gxf)stSj9%k|yens+r6@N{n?Ww9pFcv!FUi?gg~}bXXFJU^b}MVMZE= z9IG~q-Bxu1{wFM^Gx&~HH!M^sqCEf5jWD)Gw^lAp!xV%H&9Gc3Lj~wIs3@ox8NqZ| z3V>6EDo7W!>}0hu2dpd=8o+=?rx2b5knccEU_G=`MTLd0z*RoKik$|Vo%{*(h)l~) z1zO|}L3aqYNi%hd+divw3}s6REOnjPR-@aLmO5cyt%fzoa|s%SDkrMtPNjF#7_K^X zSapuU!q%Y1AGh8z7e+7#lLlTQH-OgObfY|P?C6SC%bDf2Emd{2&rOx z(|)iM08jScsje-BD-@f88kVrW$?MNmcOEGmnK;5$p(A?;?#oU&3o~A`7$P!)LX$aUkVn~P0K+7 z55eRDTQo6#BoRL(i#W`jawy9OE8~?25n9=2d}a!zW9K< z0mjW~uR21Hzbp^ZZg9gOmyX=N=*VTe-0lZaycR_9%c>|QEV6mA1UlUC&4M@nJB7B{ zBZrR&`}hbokdIJ{!q7vu3QSbq>wscE zv&kYsvC4;KOp3;UusbYOK34g7Mj6iPrH3$25QN!bagKyIDo@C=u0S!Gj$Ull6(^X9o}VMM zETkzxy?&79LKD&$Mv0SaDcLm9ZG=%ElQXhnDw1Tdupj7ju?7L1=pdnFHygm*iEg4j z%C>l}7$nBSk!r9;1hCz&vBW;UB?WA+^%BU?vF!#0Ws-PWI~&(T8D=D5^vPfg311Iq zps3~6vW{CHL4&5RFO)xZt2ekVsBS(x>QP_G}%GWuZJ2$vjQy@xOf@M<-S z&PqbS-~8a|FR=!Nr+1Tv?b8?G>0Pt~+3<8ZhbO;iF$bo8s|!eaTw{ZMOiK!qzUd`| zp+izjfg~R6OGWOpaU`<}1uPPt1uqUl{@~p~%-;ZBhZnF9I<&1hErGUiocNjDmnPX- ztV6a;O&f1+NVgi=u$k0ZNVg5@^@DVmW?5(11732#w}S8tfNyhZ<4BSYmXf7opCafM z?#3Dv0+$gIcDO(Y{C{~6xXWQ9i{qVBSpja()COqp?UDkwr+cy2F1bE@$twh~Bs+*1 zNS6H0gHb%dZi+XF{mA^*bO4%0X;Rxt+Sioyxoj1;8`|8N!}lz-sYAVf(8d^b5?oqx zQK#q#VGuye3fQoen2*o>z~mmRLBZt3q*43yL@;>)C7x|h?UC&%>kc=E6ptDLSbExE z?LA*o!160ztR6bBT$ccgmSAAU1FcXt#5`-jc6G4%2uhfO%|@*glG1OQh&^kg=oTxuXbDWIf^y`O2 zQpdB?S0s40)zC)?)3#&D0e!YD&_+K#TLJ3zgK4`>m}VO0lEbwPgj0ZPTMapIl2ovq zEET)1qp$X4tU+;ZEg@o`_lR?&v@_W_ck6*6=j3tB8-BwA|E|+mXXnF`!oLGvg0t&H zA6{TF0i&$UNizs$mFDIf&9*eevu+zYK^+I@P#LIQcScq>rD@l&>W-U%cPvMUSq9!b z)awTfCrx0OIo2hIh_i%UfQW07v|LFb_^Tfdz7A_p94wQj?eiaTFrZz?#=(7uNG7p! znlOhs?|K5o-mVSYK8huUVsG}gt?S_Q$0%b8 zPU{&(n#CnefX`a>zzvZ;ogj#m}H6xP5>7^Iv`UK$-z|cB5sb3NV7Vtx& zZ(|LLL?0!s+vhMM(POk1*+_KeA^N&O`XvL7IhGOvU7pYeWAE9LLYE(Tv2y6>a!{K8 zsdqZEFeX)yBTYJXE*wI`J0l+L>sWKn$^>h+8d{bV{ah?LphGwgZS><1UJUj6K^&t) zXd32{Gk?w`oJt3}@VP7nyCS0lcqP`LaI>8>YM;~yH(M$3Y`D4Q5PflJI4>x1h#GRM z0@iNRm}cj|l7h8^ULvz=Lm#eRHGwtl9WpcIXoV=8;R{_y=<8-Ak(6aLkliho(qPI? z7omKuRY%e~(w#&lV4-}iMG58ZvZ{)kU3EN1W?6RCtD#;$C}#}i>qA^}2-hN90)#7A z-Vua+m!tCbB3AN)zc*nG3V#hk(LVVR{%W*m+3>f&|Mw#~)(z5x0JisN?68k*Ndeot zy@WAzV2d`bQKVbVF)}X-lSwhr4`4QMY zLpzrZY?t`HiOu26zoG!K6>waHJaqdwmK2CBgRa~B8B|Zf_@RT?egR_aefSIrVZTz~ zf;Zp|0jx{C+tPvPB9tQqqEUR^9^cQGGd;GBh`wk@7#|tHAdN`BN(ePC$ zaEgYTQ>{uf^EFn*aD&BHls(5ytbjDEpjJ}1EFrP|4p&++D3at|%CxzE@RUz-H$z_+% z(#3Im44;H-E=-tcdMhkmUhnC1G&-NMzX1Qh6k8Ubp3rRK@sC|{2AV>8e?oe{MEYqt zq?>8dmuaMvnE|Ij!ohC}(LzGBAQ8PGhvK>S#<`E=~NDVs(f5N;E9?DJE9jt z_jK%yE`^77706x~)MsTP;I`9~p(S72{4 zcT%mxzMGEVa(M*H%{u-DJC*0a&nf0IC1+HwSE!hk`e8ej+f7uMRx>J!R!h zA_o|%mV40}kfr3bqiS8IcbOVZLSLdMz(x)5{BJnt9L(BYJchT zu`&{m!s)R!ViA)LVK06TG$1%gbq$XrjDChsU@;^17}dKH9K4KYvq1CD5g>}5D_ve2zpUkc~E!fC2uP^w5~D0ucm zZ&yIZ9nR{HRt<*mPK9qkgmN3}DhOpwJT_AeYvrQmA8?Vt!L8(XgS3*WDfjEve_Ceg!T4yoenJmAHMH&RB#@DGfB zdwg19LRypYv1~r3%>QNaCf-3fU%L{tt8KZ9vgcs%6nn6susog~#uCP)&%U*IQHkd<`g=1mZR3MfdIRvN66i!s&WP8+eey%s+09E?vSEL@r zW(SAqz4=GMzsGT;nck1CUu-J;E#XUQD&S+eEqy9PkI3C#%~-@|X!2cj?%%Zrvo%^$ z{vVRgWfzr|Kl&IHR*y%vD*yk5;?XDJk3r`tQ`9k@HktTo_)&~(P_(ui7iKs3;i&wMlWUg?@ zcfqL8OV5}AGL4mF10?z-iEIjw&kP7^@|#Sg>l%2+EG0x&kNb2L%*!278*13*1G1EH zABQw#?ysfXFOXy38TKpB#Lyn}85%bO--wmmr65~18eYN7P5H8qICp6PRN-W^faP68 zDpn*Wf__JSIWB1AnwOyM^SlI#51PjPiORU{bsB7*=y|jf_Y4yu!nT-7ZGx_b;Ahgi zn{+Rg-7i2(tp-n)=vwr37$e=Tk-o34H|W(^BoOlx=9Q9tIo9d^w&bE8LsRjk+Q}#r z4tsLOv}~=No@HY$`YBM>0dN^a2Kcjhx7ON(dCP~rO%#pDbyLULuqm8+E~fDlz<1f& zQWbY1+5+uITj5Xs2HFpkrsD46Y@lhZqPu9(nKDbZo7qQDT-`L#cE8lUfeaUL;~E?H ztWp29P_;W9xkUZP?Nn@0e@4Y6>VL7FiY*?^s3=i?Pwc+ZN?rCK6ztB6`wt}!`3xc| zb!IroR>ehm2x{PxZDg%BP|2>uV#Q+4MI*>Tj1@OV(`6(+$VxFRfs+vmbESv4ko4(ZP3l^_PW2 zejO?qqJ#KYUZm|I5gB<6R`Q3n##CIB5eKIkiv>PPI+k5j24&w^;A7BsVoe{%-iZ)k z!VtwxPw~UxrW?v^F-TM>m|h_pzUjo<5j~v46yzWC)ld<2OIc?%^OWy*XqB1peC~Of z@Ej(Sd0{Z&KL>rlts;{NAAJ*WHo_9o-{GhKz)#;wK0OYf7Q|e?M7>wd#acJMZKO6c zn6Z99ZH(UtX3U(kr^Ts;yncrq0~r0WP~InvsR*IYR4+4rYtmHQSsXK7WunQ7-^p(H zGcwj-%Wp`^UyqwT47a}`I|j=yB2O^_c##xRok~V;N??n=4NWMC131T7cEm+c6;>F< z3LYVlliXj-zY4)!VW($Hmtyo>Jc#Gosn|RSM#aU0c#)lo&4V!UPF}|xqCb(9x(v4R zVwIaYG!zeF2KuH)^{gHQrCjV+2azuNqJlwpwdu0E~Jhy$2=~oCB*jM1izqNn(J|ST{OuS zJFhwdP(Q=^#BCyVC6uQFHRHxl*(yg^_({RSwEHxX?>{B`BaCawcfpab`EZ1LPG81K z;|vn=JtuCNl<5{bUt0CYqEr9dr&A`&b&2qDmS&Qs7ArAO zu*l>nE$nv3E0WO~ogcs>!s@J0eq^Jh>UXg1j(GzWdE9Cx=B$Y67M(;6rk#})931o*DLDG% zHvt1*T^JbSMn>D&)lq|9<<0U@kg&AJNs+?Nj`Z`kmK*O)qfjt@_` zC$bYOjkEcl?}?n7xrZ|s25orX*=rZ)sa`#1yEvCXCBrTbK9HI$Z}A;c_s_xnHbs!eTK$y?EP5D zT^=5W%x9dtBTw+?C{%OLTBp`i)(rn6Xv@X7|5$!GKGl$4ULv+mbne^pwa&}8=e9*6 zK7(&hxM|%o#S+xFe*!-d-=2J0FyDTE*3}>`p1$8*BLn&Uw`ca#90j14%!tjvPS~28 zdj6ps4}~)%Kya{8r!NUlsN1U9*TS&*o?Spp{>|%cVC)q=Sf4Z%|I*@YwPrEe6ic|& zoB1p%qnyRiPg>`wJ8?n9?d-UWo;`$wR*g0JzJ_ zQ|kzh)6Td=!S1tDv1uox;-Z~zvQx2XC!?b9ZA4am9gQXXQ5HEbJTHi~qdYa;3Im8x)ey-eLGr45dpf3IR5-_KTAeOU^ z8zXD^p#kT>+L=BK;tuI{tTfI5BqOjEy-LaiVwv>zH`(_p@wX&?fbkk?e8QWu)n+Yh z7iLrR6o^gkUSO#l}xcXtt}lS{bF%iW9pKjsb><4BOS{wD%)e;u{dZu z@zj@L@1$59p^Isc@}UZsU?C~O1iz;aRWOuM&(ko;S4?8PdiIh>Co#n3NLRC2gy6@{ zSh$E3wQJ@sH0lZyiJwSM10fF+RXqAPX5vm@YZS6dDg^@`LUWkp+9DTsE#o6&HL%hWa1Qs*!~ z^Nn~o2Lae7lOuPNM@Ox}Fzp&r1|!;2F>8Jfa+1MGg$S>(*H4qC;`U;Nz2pl?sk@}S zCVcw>aG$Lu14qNQZ?tjV8gJMFRUM;Y=i8~+;th<7OT6L9b}F`b1EZqE8{|z=ZLvfP z=6dq-htT0`tkh*gOht;oc@Qi*@${ z__`8HN-rk8$=VTD-Tf9uEaZ2-*Gh|ue~9b>lei9Z)mVO5>i>JJ{f}(oqEt*gLM@eO zeAr6El}D+=gEz6$u#<&#NQ|0H7&R#k;xDX&a9~vAqSs%uQ?co_vpBwErLpA1LE#Rj z-twc8IDTdwgo8L#gmyqbwSvqh3#7YNVgY1ff<^0bfCC1Q3!7{viaZ3{!kPjn8mIP- zAMb?T*pd-cHnRA!ks}KnKVA;3H^+}fZ&LB&AA|Kgl=v}HN6(eTkEtGzu;mlXKnK(D z)^z+&I$YIq0X_34EG2}&aGSIG(9qEMsqz~LcMh`NE_6_L#)m6Bs9VBH<7`q7EvS2; z64Xr+@R%vc&ULQVnZ4)~&3%Q}=vd(FZm494=Hg@7H`PrAHEY%3wAZ=7J`MN(zlynJFhkc<~(aIv9-fZG80@ z7vaV*+%mW|pF`G5G4gC_0<34cWAM1vl)YO_U%yGZ zm0eWU*XTV^*dxsQZ780luaq6?d;~Xv4NY+ve$vml7`wGtfJzUn3Msimb0OAlRt1yI zB5C%ILM5BQF$g!;L)$*wJT2?6;9dQUY+!yqwI8aNE+9WI_v9xy16(_0x8UY}#>Kd) z?Y-es1q%#lZ78$L1?dEC>n-Ht_8&vPY+9YdZEKT!*Q4XmD%<0+ZGZU@Sp*Jsw0YB)cBu(}L}KJarasP=KpD8nwpkd~v1<`|d7V z9~YV~15GzI*x^Z~bb}M+YAY6})}$R`_=kk_SrNR=au}^7c}94YC;4 z&2S&YVWk?6U@GqkZ%NbTQ{42Em_qNf&UvpbkVlfH;**QB1!5XB@%oj0kV||8z)XH+ zlVhXQ2nvstQ39cBk}{n4(i6e*PbGZv&IJBARCV0@_`IEpEjG!hxP;ukX{TZfxiKmV z2UjMn)s07t9+MvhAHQ#4XG4V)S5oIg4EH=WjiEv#*#gN-^9u5 za`N33>^_@9P^iHi#S3METCKocvI23*3UC1;$&?27rVbHIurJUDN|NdaYed*6tGC*0 z6j|kA)Z}dOQ|X)#Mz3UDhN!m_I4Mv;X5aE&5nqSqUpLevH6 zve0ODs*QS3BbuAsFsI;`SU&1u8!jkFK(89MC&%PV{173TcdIIQLY8|EkR8S%ZIVIx z0LsaC@9Xts*r~lQd@Q%6+iKcwjc^_ztUK%2~O%H@^R&LIc!YfinU3;?ecVoR@t@-uE&nsF6Wb?`7bgiXBx3Z zD)}xLwe55j6|(0iGJu_Nv;`~Wm=2QNxK$Y8X!zk3*vZlS#@|HuF7)XhIn8Jn)UZtl z90ub!4r9n1S57WsTvwinp&jrU8t448v64II$4E2-O%t{yqk}%ithFG3@X7Vg}^CHL^wMJFsa zgI1?q#8;<_?Ml#eItV%wx+R9v=?zHg^u+j3!4lubJR{y4D}G!FvSGyb#S<%(_UBAC4%C@WgtmNLI@ zXP~2deolm?_Q<-iOgWOh_!u{qKSx!|-BvzZN3{#8 zI_m6Yb}BZVWmH^r_JEy=O=lSug^O|~cUomruYW$@N?i_x^`)`W+T))JaT^hphsIKV z^rf+`mDrx8Sbd_uK+H++Szg6g+Cdg$gGaE6v?n3!%ZDPt)V}6AW*bm)-W!`QBeK)( zHZX5&K4=|)b#5aj6jTcSc#lkJvZ{o{37I|)?qmC%IQVOPuZ#1ASqKKx+nX2 zD-BnHq||n>?RcXk%v$>o*8V$4!l1SKYYhL#N@HLik+-RbGqcUR@vFDn%pnIJY4~BL zvTaZ*uGr7^{EgVZz^PL zlX5$H_wB-oDr5`5LHE^qsnKdSS`Y&$)5dUjs};7pwGKAG8{R**7bxy;wi?Z_)tQI- zoeDmftJV)Ry7f-R&oAu;wdzbYEZ?G(E7gK_n^wU$r?{p1pLc*_5q-9Grpb5&+Cp+A zmWXRkboENsd$9f&_DYZE`>=@zj}Kv`ab`^pZO8w75d~0AdBaE(=G~B=nKP#Bfy%K0 z7Alt?37u$q4VG>3*PxPNiyt4`V#w+~A$Px7_xM-Qwby9Psh)(Uu6!r-m85IgMP)b0 zcborSXgdi+UxB?7+x!VjlpVViM+`f5hBE6_`3jckWwVz)I)isa)f|4{y1?F4ogqc- zTl(ioPJUs6Sm|UhpFEZ>%G6#(RpJ1A>qcry@`pZ(eD&Ry{{zx>i0P=Wq~c?_E!}2Q z6;gJ+K~B00@&&E2Y#l?MvW@w_A|1;vDyw7kt5DcuWB!X!JWCxDhA8To;)g*U4P~hG zm~@3Q>Lv4)@%M7Lky1u$lYAezk`x?#tsK$<<{FqmSPANoJ_rlSbOc$N1&AC#s$tlH z&tRA}>hda+nnB8{vnFYuvqO3!IC7a6N7$P4WT<4@dv>2m@rv+dNjcR!dKxsIHI=3a zVZfHu>9P2W0x#R+DNm*frs$1XRiErxUYx@bX*NxeqIPJ1Mj||;a)7m6D51H%psG>R zSZbdvOf{-GjBrL-JiP>irte?F?Wz`yQ;6gR@e$%?9q17RaVG zM>+km=+wu2Iz?vnM+o!moo9T;&JUT-Nl@(n&! z;KE_&XXFgEPPWDjG#qLL=MD#xK84mhj7N_r?_8AOP^!73NrVG08sJ#k(*_08qrFdF zoDqhgd$q22B070gIBD$NcXJ~IQWWs6gg-llJJV%O0fV^^~c!)DW z9Yc;3alEWKQdolKNX>zmX^s^6v|u?>PvJ{VvD0wRi@Ly+7nN#huw1AsQteIfC;JO` zu&gec(8Nv|oy8OsV>yP?uhb~2GVni*^-lWGas9eO$Zf+jQ|(5=?r$f*Z&h~)kZU^?Vo_w?uXrFte5=n8OuhAoF=pPaS=p%Sh4uy@e#ol^ykZJ95)`yNpG>-iDRjr_^S$ zwBdd;XD>G)4ZjF(f6%9E#KU|);Y+p-O5DaF44K;=v9Hhh42=WXpJ63;uFKnzX=5{G z-8}BxC3z-CcR@AxJx9JPnl+jK7Fx4y((q~Z_55;tS|QiG1Z|zvJe0tfJg-m!w=ohS z8bS$#pVm+UmY|`8ZD;XN0{OIHp@hrem}v64735mA=8I%DyBwLh+Z0SNv^7{b;U$I^ zCvanuyie6`2BokqZVG!IJ3-(u9u<4EaAg7S=@b2}B=0g@hL`Kq0Y!&uY*?(#!7WNZsVRQu!W5{8@ksY>GTON`P%2HEwC}F?Tpl|N{VqrfczZN*` zcL@l_9QG5vNrn9`fJ#FN`yqAo{aDzKY6%Hl?M8)h3H#l8pcTT425op@0W2Yi`0bqw z!P=NF9J=N@n%PL-D=0PQ<{;%QfD`qCa=A*6t16IVRnQV0n})OY;N^sN5+EFY!@{_E znzQOs$7=l48k0mKPi1{x@L=N2KFr}h_>EX;oZ(DH~6)GYLP6e<})kN8;jXLNf<3qA6obF18B zHy+oTw8wH-=&?<@mt9oGW#7=_NoYHXRy+lJCqj>uEy^gPpTT_=ObSUB$OI%wyrG|g zF}`cj8--v@O+CJ>Yv$$K`=R+=rb9@le^-V1i01C&ktmE2dP zZ8R27-hmXH=Bk+StKj-MK3ya+`JGV1rj!!baVSIPx<^d@3ZJ2I?mq)7xpUt$CV!iA zmj=M(R7_r5T_0>Zyna?TPYG|-Q2IJn z`g+WtB)@ApeXB?T&Q2Has)QMt^$5MV|W3n2hW1+qG8K}tPRx7d4o|uBsdy#|b(B39~&XS5E zx(N=(=?W+zMc&tq+kisunX8^)E-nCN<0;* zqutKpsdQ?R=-r!emb%1KFXxxQ;F&G$klX^3m@_n93PD!s3K+6dB~jCUtBbX5&Z;G{ zcEdxNvT+ zVo0RyqgX{$i1&Jh+ROJ0)XU{lmR@8p9}G#NmmzU_50RMH3w$ckXT1i@f=i#lO5@D- z%HQsoA|NfF>%ylvWK4I0Y8{W|N`Qf$d7IEh06} zE*tz1$)qloSWbSRHD;gtY~$j4q+{7dWy{ldiBD*i~85)<;3$c>Bltz91&xUiS zWE6;2LpAsPHtO_d!N4(Si{PTNQ;AP)u!yd->L|WOtC2km1{w+y%^wPXF&%da^`Yb= zPKB@}djJyRpn`bmw3Rv!Vsm@ID~Qd#u0&rAL2RNp)*v>Pph4_E#82NEg+Juef(5ZJ zYlSCTRk*@KI?Ao@#BxJhgN3u7V`y<=))LQlds}_0p;>OE8h;ZQ{Uwl#JT+B4^$Ko( zK51&Pa(;}%PDi-6n>kE4q(-+#p(HiKa06e9Y%ibXJcUn!ga48Y+dHED9jKZL&Y5q! z_=%m0Euzh+xJ0x^&#`HP^|EwEWsr#WSyt+@v#Wr<7C%iz2ZxdtxgGkZTPD_sHswb) zK&!!N7SaATQ3!Po%Hvimv52;qchTRYmZT%v1HGeu%@UT%vkg+o<`)aD8u_)r!PPH= zV9dc)(VJ9o^)H~(P=c#S9nB0DT%}q8_bX^WGR~15VaH4jH9_-j{hY;aQVy;7ORe*BWS!sbUBoww28EFy~* z>+^!Ass6GLbGY+zFIF072$LVT**z=AY*06(^LQ}cMFVJVQ@jY2WVE zZx*TfHK=5W)Zk;;?inaj^WU|`vH=`tA&b;}kaR4&sJzDcMrs~~wiCbRrPwD8p@P{K6dMW*_`B2>&3V3E(r8uT8ug&2%%l_h*i7n#>{MJ90|lS@v_L)q??1F2!-mBuoHkMk z+SRtaQ!#Q861|Aqx-0RUWbTd@d!J;F+iY!+%g8#A@KxL^+QQASM2LoH3*o0V+JYr$wB-a0jYeC@rv;0)T+}{R zZ5F$&s!NDvrzu&GH!xUSMf3yuBEl)s?S|xi{N$2*EhTVN^n$(^ARY+Nc_Z*N8}Yp& zC2`VJTwk0tKrz5{c;t*Mo*4opYf0JcJ3?2$?|kJTp9TNkoebJLPV!Eu>KG?^)K0|~ zCt*}v;v}E4Q?X_KF)B)&gkLm5jNUXN^PdGTzhtE^4z0~LAPY9$sa5%VtkugJl4q-13R5xPSFD3WZ)qo>o+VF8~IxGbc1u0ZJ1vu|7I9YAXL71de zfMh4kfeKGH=_ME7BIAW*a~L}b%SpuKl+YF`f62MFMNpoA)F2x_1q&Pz=3drOaQ#IR z*2TAjSlT4LjAsJA==N*Ko7ME7Me+Jl!f>xTf>F=%WmI$();Rm7mEbOk&i9wW<8VmZ z?LPhEF`!$q(m2D;{20)abLYo13)clTm<$b=L9G*TX$`j>`l%|IU-lUsNjwOkMvi;I z-3DZWquX!`DViT|@bC{`;WIQYw_n0a?sD^51mEP`A=wo13}~^XH*pRpk*El1Jpf;G zq(`LuhWv6|%E&S=DQDX+xZ0F3q$wu0mvhM1r9^@T=kQ(7-Pr0JVhQRT{uzEETk+)6 zf;oqmK*YCHE3%z{(8WbGzE7q$Gnk|J-_*t?V2dK4r_Twmk*0-{ZQw~7YfDOKXGI-0 zoc+uXfSW9YbqLpmSMKgKnsD)FxfRqqyXmoTtQmTN2wI$z1w%_fJnI!Ubrc*lH)xLq zApSjwd`Q0QHlHR_RMcueb3{rmZZ5VM3CAbY+=0zSE$Iy}E^A+06?y?qLOgDg zn)zkJ*IUP61s+Ppz^l~G#oMezTp6`62}MR;ncqJApmi7yyi(!9W#YL^iBH?Rj9LC~)Fyg=3Y4ve1A|0qIWm&tO7lqSJHmhkB z7@-BZ#Q0Ysw$;0=hQ*~I`9SU>I!WilLvWH-KvghbT$E#*or+C47!^fq>lIs_4^De3 z#<HYq^yUYl}O(*7)m;_heRH+4r5pn`8_+8z9gc(6ZB~-iN590-{BEP z0hrCVuUPx-AOKfrXM1`^XkXwxy?=l;#Jr~`dXw7I`x;al%AOulm-h7Nf=0H1{sz}J zm;C0(UO*F;X&y5MX;^x5Fbgjkx9Q;o#AT+>r^cS&hNF9N=Wixx!zsRfzSJ{$GgU+~^;B;X62l~K9{Xo5gmTib9QI_{ z-tr@%3s3PHGfVs42bBzI-}qP#gzKi5*9-bLXpN~kFPf6_wC`(4$FhscMz7~CS@c|J zJJ}=qIW9Y5k1Sz`lJ=eAhav6TP-YwAURugRW_q3MC5+DB9noYCUl8B#rMqZ*NKw0X zUL%D!nR;p`W8)AcK$q3Ez(C)mwjS}%d!V1PvSkY$2gelm7s=o-d%G|p+12=1ZfhXL zeMoD}-ZA#R!ULpZ*+pf=jgCTL_vGK`%}_i`aVbO8iFsPq5zFuIXJm}!TH>8bQJkpE zuu41-TK}01CYb_~MTPvr6y6ioqyl%5#?!BA$G%WM*i(p$)fhxr^XdBVfZ z)T}B@z!s|k7i7~5fdPy&_4xerBn#*~6HM@k7}FO1Rj}YkUb@1-;roOODR98Y?%+Ti z9@a0-#TvUnZ76%TBfl9itcFSprNHZ;?JQuR%uuIkCNP}W&&U|N2M30y^h5oU1?1~x zxqQ`uA*EvmU@(-q9DyNsIz4{R+oTEg_&pCxE1%wIK34pzFIHHaj9y8tjtd=HWv`^6 z!R?qlw1pJSPZ4uS={xDAWbD_C%4J4yK2nwAp9LR_F74y@#P{NY$+X~xo$;c$} zc9qAN$vR1rEmJkf3&H@!;MVe};v!HIV0^z1>qsiuYoUe>^bjAJHXw_KtPLIsgTLi7 zH109J6DzrE#gpVM0+K->=Pv1{Dj>@$eN*5g&b=JK9O7iN7L?y7fK2f$jJYa+dcA9TW71UIU8Hv{bxEgRx%|(Vuv$(S?VYfCCscJzSZ&#<*s}c? z6_@?xd+bzfyP1rNlI_QqHsW(@&LkQ`#A1@x=m)ISGh;)GlCb)EA}V!0S`*4BKe87V zV{XzBLPgE5UWA0z-?K8_I?NBz9;^8y=7iNx+o{-8m{D<2;V;;!+&*GRz`70|f>Fh& zC@MTq!s@rJeQ{OjRLalbS9kv%bSwot=B%G5tYfh5;!`RHBQ-ViM|RuRJy%Ah(td`L za$@9_Ipg6h>o6R6rNV{F#B-SvQ}%8-ObM5q#4GGnY&nT+;<=3FxppcJV^K06>E+!l zD6HS){UST9KJpytKvgNr+U>k33@>5zrS?JE5?1G+s$;_H%k5Nb%E728V$)Jnnf$b; z!mR!;cItfyl6I;uLAq9A39G`6j}9XgrxR8OI_2_xR@TV6sf276#pZg1=$C49$vskM z3(EpC@@s*!z@7(!F=v5^-lVd?u7OHJ$pS;_7UC4mw?bld;7d)-(2R@A9 zn*`s(O5+TThn80MG!e?mOe-T(N1LUlO?Wwnl#G%T zKMWhkhBD_Oz$PhXMu`jg>GiX13p%lPL?byoLU!J}8ioh&Bax!^bhB$oCK-L3wlJZ+ z+zBuJ?1!Qy(hEns*@Uh&MU5mwA zs%)Bx2SP{ZD(N)Wrhj?nF(#9dsG%>cUKx2W49G_L}Dw)@E9H14QbHR6ddXowQSDTyLDquf8(9#5?^wGP7OO(TX8Qv@Z=WP$@7vP?YE%3`0PagXtStmG~m**DT4%d~C!4(Bcn0N~sv%fgz6iBzm$ zOa%R_`Q^Bvk!xOpw$J_&^=f!*!7Gc02htKD8nSqv2C!m3iVjQAES@jI&}bG9`DD%F z5u=)@ToG?oa%}c?JJnjd7glz`hSUW|d)m)a^yi?m8-Ct%vVV7!h$sllOdy@T;6+(6!eeAad^-dt{! zNDroFT97sy*2}$k1YXwchSJ3g8xO{7X2W{e3ObDz)L#Rj1aFnX_1ExaEhSTgwvWNr zG4{3Fs=>GQokpoR9h8pYuW*FmmjYbDflMSWEH!Y9Xx8Z2ndUvjP63p1S9z5BA zIk(MXsWCSPgK0x!JLr?J7Lq4L#KU5#7PR4QSER)%BoEfn+kJ|)@OW73-E>+!Rtahy z{&iKnIXqbfE_L8N*S2`NsvJ&tXQ90fCxRAU;R_{NVK4_z)^u7BFU8^X?u$2&i-wAD znRcU$xxw+8Zf9oi)AzQk@Oh{DV=-*C8m(d_sF!PD3pk8jEp>YF#zwaT*A+>vtRk)S z;&JU4t%>Ngi$Ik(&~`;1cOFb3R<*VlsjY&Vz1anm{uW*t764xsNiE#fmO zoldj8f8RcM+@5OA!&UV4sYYvdUoYNi}okAncEVP3a^QCrD(`n6bVlmf=u z@lqv#{(#`=d;=~M7DDY~-6oLO0KKC()l(d}AGD`Yf*=&=00)LG2o>$_v{tSzZv`NN+!t@gmQm#Gur@;h z?f!U0SU=u_wIm*;a02reRIyqwS7CB=ik+Y}8v;Cm;%tUafogRCPoa%+IMap;=Ho5O zQ*w$kK8Dt2k}o4Th03J(YJ5mPN8i9D=xgw&9k0R1aEuJ}^X?w`;r@2zT)4lU{9ajC zxdQIY8KIq#Zp^8S5J%}8yy*U1SYWOoyIJxEUA(H=o@;=1qxp6NfC}s^go~1l*n^dA zIjnT+aHWH7geO+PXqS(`pYM&rpC96%4P)?UEB*=A!k-!ZGrAuBtj9k;-T;4oihte- z(VFNH{PXDP@aHl7bN3nW=au;9g0tYyMfj(;6aKsv|KJ675ngZ?-3w={M|iw@goi#v zcql}K8-EdQ40hx7@{AxNT3@Qdyh0g+*ys}kK3xQ0_Dm9{AD!y4A=;G(%rZ;So1EFJ?`E;YIcx^MzfsZpy@T?ZRr^#S($LC~$& z^bP^Uz^(NFR&y{hU{XBun{jNsQB=_p|dL>uInE2hb_T%iw*=N_; z)zvfoUA~W=s#AOKwf0(T|9h>qALowMZ(MQ0iWBg^WK-O!)mukr{A#t;t_E>G8LPG{ zy=Ktr_V4NMcxnGd{ZcX>`A6b*FRBFnDsnr|RC}{O>?I#k&XITBUaZu^j z+pV;EZFOx;ZSAf7Qf)k0-K}>Uf%H?dZMFxE)m!t;cDFt^Lz?PiaVWiNe{dApFc*4d zpK`aR;{z|txVQ1p7$oJ8ueDt-`kt@lL^1ujq0<#F7y@qwz6K0u^($I z4L^?IA$(rl@|*P2Shd#?UuONvp(vQcGQDJN*Pq9q`n659$=dqb>9v)$sid~6)@}y7 zqF$>NM7xf(qeHu%&N_Jg4g0UzqkRK*<6Y2X06nM#yZlZap6n|7y>2`1HJg64u*)Ey znJ9+to^kDoz1i9c$?AHm8XT2mO2u6}6S`MB3j}#K{C^Joe;)k51G@^+it40;rDRpd zuSfl4ve~Zo8o?!=fm}a1jsCjR^kZ$!-frLT)t*q>Daj#llY`RmE^1Gmh21C~V6`>x zwdahSfe==J5XO@=QExV?S0pJU<9m87Vu>-er|t3+W<0?06;yM3YiFQ+aA|u^SxGZgg%+URydcX`2*8lCko;q zIvkW|8-D9hnc&c^q|MF()Fkadt@)r^ZbM^@_WVM5uHFdZQneldShb@CXazp?qPTuI zz^eO#ZZB%ZP`go&yT}n?jMer?ZQzXZ33Xat+7zP%pakI14WhV27?2vp&cy*~H7(^4 zlu?_M8Se(oPQ&j8WvJ1O%X3k?S&nOdCn%A>Wvo8!&CJXIo&CT%aDLO(S6q3WM}Fo) zASYx?$g$o+GzIEZ(yTfYUSk0Y*QR@H0Ih9LLYYcmNVFTfM%xQr~eBLF^XBc%h)b`+5A#T~yA#6+=C z0HQ$cpjFgcJDUNNTJZK=wTEikJ5uk~JTSHz~oSG;xv{p)(cQGmoQ)C5MMojR%)z5);28q3`_ zvt|ASI3h;etwD?YAxN4afn?V++*4SsBMt*zm>9bAQM=cXCI;b+tOdk&1ne=Wa-?4E z*80~@AV#+UqYuF}(59{u_jPio5pbT;2A(H3fWFaeySiXxbY;{&V*Ft>PUYD;Fd>d3 zv=H-=Dkj(NhFKLx-|pK~B=#;i%H z{>HT{Km%`t!3CaM>MBSoext17Aa}^2F7K&L)&3ftMQHJLHl1SOyP?osK=!rTm}cQn zZFTa5D~r1;-1&5>BkcHFawqNXDRgrA=Dw9Owpa8P)Y2dO)Gkj~!+Z%qO3Ud~JMq@hSrgLnsTrS@BfWs+Mfj6B3ZJ>LXM zwf7Z3vH!5?B1N&<12QIs6F|5)EY&_$`*iIyduyLf&M>147xnT(n8yghOj<$-p^n;P zvM%hl3&Sxy9koYc=NC35aM*d&3OgIFguo~D#5u5NPgCd!FR+@9KHV)R^aytX>jmXy zSHchgQcXv7HexgbNwypXlr$zJz>)@-Ml5;8NT_Pq68=7#04CG6CtI^z3cC)UYqga^ zFcaQ9KxuhMQ-ONJAkDcZq%rgo2iJ1)X~Jg{L4i(A$;&`Un!&W7Jl~(%A^TI-^Zh8B?EPImb<>MB_QS zBgmLef98lt>Ueh2$`sGG8F-X1Z9A4+WX!e|+88Eg^Pt`^n0B5C(@fo5cDS~YND6Rm zn_~dIE z_;;m~;_NmtL=;#~!69_K~C5brPsZJDc;MODZDpifw^5K-MLT zXk7=V&!dhhIBj4Q=`Jp50DRGE2gMNSp#ciXL!_@ky~x=2%Jyba_ncjGeP(g)YBv z66MIzWv?{;GbbSOFeX!wBTY7UE&@Ws2@8kzb*woPPBt;D*=A^2GW4^sU5>-W)P zKBGC#!y#(KtqNFswk9;Y1eO)7?R8R_-5Q1n{dT9Y#!pL}`wI!0rhqJ&V-x2n0APjq;Iyz_jbS3tdC5bAW3Pn7m;*}+mo!~?Ljnw-3ogpa?t z0n?kX1_h=zY1Te05ttg3d_FM6eBtjHo&@CZbzEo*kbAGD0J}7o70CUClln&vaw6T7 z?(N}6I?ZU8DMn$BKQ>_Bl_~b|Lg}f|!X$Jw{0CGxMZ+zbR;7{ob*o_%gT=25&`=&M zei!Nu1B>UFU@_atWrvSnB60$JoG5W_<=qkZvl~eM3~Nx3{32=FKCBTWKSz1U2g!3? z4kvFD7n{fJT(YTu^UmJ220N1Kh^WLXfdsp0oRkfg{TKwWl8 z3knPFvZ&3ZNASq~G`R;z)eBSB;GuW8-6ENmuA$iBmEev9dMwv;QOS<}z;kiNdsOIl zPdH<}3hofdUMzyAuQ%c^aFGLCM$_#@%H28#B@X9zdoPZvbB+4!4A~Yn^Gw`uCXPGG zmuKwuX4~zCcbSJyzz%Qc(@a$fnj!<^gaL9D4!yWV85zjRkA$t?Y_;`LG6r4S zNm_@iiJ+_GqjFd~d@?i0t=GOGG-w zo;-DErKG~A+D|FSt&c(LM9FF44ct`7ZfLpeig`LYZcpHo&`mcLqG{i8vZB@3$7mQ) z@wea~7-A6dGy(~$wU^1wwL3Q;d5>PbZ3 zG=S)lEYZG9G>qXJN0nr?kbW)Q#K|tEfB=C0Dun%Cti)BA6L$yD7Qh(#kFq!QRw0;$W3mp&f4uS(H^`)?!gMPjeplp<#q6LM!3w# z8I?CGRLn;G6FZf6ny4_VW>gfbUWIc5m1EYZ>5oE=|7oS2XVc;RP)&Hf;m7bR-j~5| zvY=$hB^fRz{A*~($%GxG{J1q%iy16sz{)KtR^n|*K3q(tVAf^adRJT~Vb*z8!pVwu z7PHR5DwCl@?=H3y2@CWNZsMVvBjqlwLI;EQihdEcv&Tv^fyr#nhueWC$uiky zaMSXJTV@WaS!Fi#cpJ$CQU%`h(I<1H&IhwpPr{88(gW?%ODpjby2JJ0NCj@#>L;7{ z$Fkq5)ReI^=o&s5TTU-iH$GNxUZj^2!rhPnL-lGu{C&hEegRPJ0W__b>nu~JN!Uxc z2P*k^A0ym532tpanLy{3-iD@LK$NVp-tj{qv9=}|gWJ3s#3LpQAs5%9kxema;e|Kh zv+xN_X2c((c2|Lm@bJz|;jr^tvBV`eHz>DFcznwmYzOqnMSE7 z)v^{JaFxK-VB~j$w$iGZ@ax9({y~nf6Vf9gvIkv67Jh=7_yhP)YGdf=r;HfyFoU1h z!5x_mIPRF+$8r3n3|D^^4P{}YnUoI$wnu;$10SY}a< z91M}due9c^>7no!l+{NGtNBIc%YSH4q1-`sr^O!&e+_M`-q@>ap9(vhuWV2 z45hMKA!qb5qJsWuvRtSe4|0Ru%R#wl?+1xAKQjP_)D4X zwM;~Ogr?sGbI;Hkv@^$y|LKIe{Gzh)hwGuRdI6u+_@4>I!_Dx=VDnTcY9CLWPUAHE zD0+4)v>}TspIsC?>lqWf7K*79H|zGs#hd*>aMK!wn?q2^=Ho3!&K+pmE@!}D1zR$< zXTTOinWy3fsKbp!AwIp`!5Fk-fb23DWNkA1DvT?Dt1rVpHjQAbU!p~ER<~vHvFJx> z(GQcN;r;NB3WBBZlhU(fEn80J2A6&pg8HzNoiPXG16WCRK*GP1$Y${PRG*+Gzgb$k zK9@6QDIr*W$c0sKFDJv#7SJh^K6Yuu(qBiV?~#i|8TKpBMAv@c(lzb|eh(`Z*MjWT zXm|x9HxtYLvM@`FKow3l4_F>0TCpNAQS{FSm*c|>rRJn)`#Ap~7(Q4Uk0)wVdemv~ zdBV5RN<1=5l?cmXDzy@w4I$2?cj@at+s2vmu;$E{5?QkbAxhQ3`K^_Cp{33|>HcdfHUdJ2newnyBb1S~xF@WV=~>1jW@w z18wz7T^q;=0dGyaY+CNJX8oTFReQ5xk*xnAI~7~jpHV52^eiR3u@w$Eo9wnppsvS<%-3a3-_Z0F;^VEBJ0`Y zzS?DoMCR2%$ehR&+~`wEco|fpiOlegz+U(!_@hF~z3{~R-X4~_4Bv_skvjU7ENe-7 zO%i06qX0w!XT2{?YHVBXc$w(eIuq9IeoRIp5 zGEyJx@5?zxCQU?_i}VHZ-n9ytR7$XDYeEd7dnSmrw-oHjto7W{r}P zHwhnsPBX@p?BJtL{IZnD|AtD2ln6eSCuu!9s0Qyc@*2G4HREbyRs-WngOyOp78J^$ z?3xQ4gSJy|`XTJ9NCBn-QNr|$JPcvFq0Cl;Mumat74qSm4!p_mCq!Fz`LS3H4N>=$ zwXw`2emAUYI>~XBHvdmq04wLD)Fu3rOpb}gvGP&^KPGB&^65$Mfx(+|>NiSWqj9IQ0OAYpLi#66QLea9f5TJ^_*si(RyMH1#0Lk%56HFffYIWk|++kQML zI#|xiDhQLc@=SE?7MHGZdEbPUip$$^Zah?&C3$Xi4CFE^Bb$(_h~?(t>i`83MOO!x zfPGJ?t!c>WduxbI=wTD$$f`(Q1;U^MSkxxq&R!tKRmA==t zzyipiYm*lhPVJC*G3V_`5CyOGWSJOc^+Ud!nvGETkr<#4fM`b)EPW(x>R4?I6e2PO zN=v)k@s+f<#^A^ntb7ToVrp7mo5?%mV5edWRv48c!OBnURBXWtqoM?Qj)451R_gM! zCIj-Z308hhRHbGRticMEM?SQwaR*!O_=16o+;6oK3s%H%3qOw%%mynfIXLJ!QrIv+ zeiJZo-Z~o$$hjwOyoJ`Qp>$0CB8Of2$#s5FvT z1gT502sHxYNPiIRp~&iw!@cut7ICN{tm`?2t&7JY$7pA{GJz1$-ON}WHU^OwZ1}`$ z+&bQLkqP&VL##B##{1w%bwClvSLJJPfNihB7A+17a=8Vm&C)Jky2pOmywHE?wg| z_8Y8JTptdO%(nGK%|jmG;roE0;=9(V_mnrnHvtPa_k|C&^@Gdtp@#BuQn7WQ^Vpux zbxyH8_bpQO8De`PP3w{=mY}iy9*_c!?a8Mli|u#kT|Ql8@zm`$>qW)=H|6qa&H~VD z%*A40H;9@uH}AVpdPumWF01BWJkG{@egQG~%hu86wA6YaZ7O;3u~}-( z6SOIpaG|sCSyo25i(!~;m4{QgIOiE6s9G@3@CrK>Tb_YYDUxS+gPn>k&%mfGCeQF^ zR_e0npiB+NWLxDsh^o}--kN8i^2mpIHAZH6h8CfsZuMQ?g7e?IJ&G92XcZ~1!UB8| zgMJYJ@I|Xktvz^%GE*cA_Dwq#n{_fOMXd8jb}BaOWKtOgQJlP6u{u&ZIidSuV^dk|oZC`5=39E=+Kf$%Wkll}3^aL+Th3v7OM= z5J*DjIcO6_a$(>xHQR@S!mrcto&oz{=@rx@3ZJOAc9NF~%y6(AVT-~(_Z7BJ8fQ!` z19yrj;s(aJF|#%}HBdOQHt!-J9*|bC(i8)boWxrA57JH`cD;oCB>PS!|CZ(tFkeHR zPdF)C?=*tgn~T~_Hu=gY(Q|iHzs#wVJQoL*Ou0C%EgdA?a&cN?>Xac*VmMrRE{-sk zUsU$ToO5x|b{eVgMed|r9H9%7v6_p+LQ;kae$QO0@ZxM4aiu_>e#IcxtLIO7JX!Dp z!fL*VP?`^eeZpbJqok=%*wGX#Vmm2zd);Op9`OzoN{5@ zw@7CWQ!Wg6u*oazx;6qAGP%S#wEL9{Dqk8YQ!A*g--?&4!(tA`C$m z3MTmXR%XG9$l>B(GM311;KHQe1yp?0DrRe^K1BH|k|2A?PQ_-hj7kxM{hFPM&0rZ7 zMS7dfBG$tXkn1WeDIHAuk(H66wz~^wX8FwbI%!gIPmz7!q^<+pG*%pt_cK@CkhBEEMnIsI~AK<7goo` zRvODr9Te_h=&iU_QpdBbohYCV6`>2DpISi{lLgX?R$>Wc;ev$+a9}Pnf!wkRN$!Ge zV$FaP%~Lz)k3-DRsrx~!G{pw>$dbC}DoNdR z10Hh)(^ud!f3Z+D_bX1lV~MjbK_x>r7az;9sqQMMi8DE9fPB(3@tO|_@PDW^rn=-Z zmf_&xX*0rDeo-0rT(i0V3~i@rv$r63BAc5EL`j=v*V5-DxH>%7yA;XLJkhj2Lq^I%K zYg|Ma!*I(G)=X|ztt?;L*du1KkAq4Ei^a#qEtbXtj59qjxIk;l&K9%RorJCYqO!e) zkAYSk(!3Wz+j;g%#i5Qz2oqS>lz`#tVfw|yZB3kmS0Qcg&_amk4ny^pC6wj?M``9> z7JU0KJzKOqUp5TYmn@+?U*RZE2nM)y%3;C1!}N>@}fa9eL- zFm9hTKnoe%wl>LEJ^ovP*?_Hjpf6K!)#EPcKtY)U`6KdJvej?f}LT zbk*YrXoci-FZr}&s~%6Bhc_s|t2^3__WVM5t`6(&MV3C!HN6Zp+tlJNPpV`aELH1K zP=VJNEx>X|$M4qg?SnVMztgaJpwf%t`eE3&mwDG9%VAvy?}Ip?RO1;;<(%-=EL}dt zO+Set^zYh0Ri{s6{Yf$7gs8|_r}^`YF+ny?sHkfm+s$xdwA8d{YN_IhkZ{E+ zVXLK{$ctQ4)p^6p~Z567?@*}VHC-{z6)&6waG3rjhy|7#Ud(Lt2S$MeNPLd`iX|9^m~ z%!F)?{l~Uir+pjDQ7R@GX;b2MD~+Nu$}AQxa!ND`$sB^7Z|#6}Wr|WMYP)QQz0r1; zc!lIYz)v=>kO*!vDcR@vIOE!tusd1^akxtc3!g(c>cS;ovg%=_ zDK;ODY{}|LLjNU1ezG{A+6Al$%m(vJ=W*ai6&|X}D_DsXn6gZu^h9Xr9;d#u<$>2i zCByOnK2}nK_JlT>+4%B+HqE_9YfANHwK30^v))bE$}cJhiLT38?}fJ0<$-4-cVam! z6^F8%m63)aL24*-)?jT5?dkRN=SB*RlVLJIMpAn8PEypqtTmekmGrfb(_XvNt+!i# zgII3*hB*bl#Prb$Vt7G83VQV*o}Q3j;)e*yqFdFtQ?fjIfZbs%(= z+P2FT_if3qiOpD<0W=I{t{TZe6Oz~U*d0f=VWk1CgXA}E6HYife)tOP^lE@Vh{Ws_uUBV@wmTU?4a$LECm)ygt zi*8Wv_)#}5T05;{3M6{Pb~x-+3_CVRb` zlY^_Q1(gf!RBYL6My1Fi-Q{*Fwj~!vMOmcd=f{b!phXZcpYfkXFQ09tFDDk18Ew## zGCxeWsH=OfC(2SsoOKD7N+f^sF)l1m5-RG#GP76)UIea~VJp&JCt)17A?2BnbI&Sg zYp-sn3>H~fez~2B&1M;uA~ySaI~AMFGAfD`<(=GFlg;ex{!=UUMO&;i_qcC`xR0pH z!D6XAhO*eAmDrl4n0><2P=eVt%ct>~b}^H&AtG2!+LMs=%OlZXW?geV^9?9D=Y`F` zA-dDvZD3y5{DHLt)-^jy#Uv$)G6FGvW+ifb?c69U^Fhd!C)*sT0k7i_>SL1KC@?Stk z8h)6mR2EC6DE6~8e6Gr#3ccc!x1>gnL^;V@Fb=nc+0IIYxT-}O-xYy`n1H9qg6FY(8?oQP11W|VZ z>UV4SpjmHS+3vNvIX~at^BeWKdQiPyDOYLuaZIb=$tmus{{P!SF^S%79ceNifwhpm z63ZksC$@SQ;~s2vsMiV>Uh)4^7cueV@jI~66!RuWw&MRgA`770@`jlv+;>BMX2F=U z1}f(YSgKrpBy8eSPMu||pdW`yh9!P{Y|A05>x4Y~X6*5=g0-(}&8d-uX0Cj_@T-Ki z{GxK;?z+tXFtnW}qF;mDiDmv&B+80iMk0n4J42Zbs(yt?^s@O=A05Gy;r#>Tf%5`8 zsrnI8)V`$ucqz#DO2kViYx(4{^rB4dD5{bN;7d1BQ&K#%Zo6tk`KmMDCU@vhrt{TWvKR; zc7-wOB?lYhssYl-7^AgGz7G7s0w&H@B@v|yuHC$ij)wcQTOq?wO3#ut`}{iW&*Ods z|0={3IN1$b1)jx9BcDz#dB)L7K(^rEv2xfJ&}`!l!kXWL?Sn9(%!aT_(}TxTo@n`X*3-sMeWf3)Kqy!;{b2ltDw8Rq^9w4 zO{DqADWU)U0|ZgrG{SqKDN>x>_a1%{9^_fZhY4MiW#BKGWlU!*!zNK-7kX2J?cxK3 zExY8{luzx#+9XHWxIn86Wf8najI!zO8s~hh0 zyoQYKZ(=zr<wt6Gg!I+4spQD9*@R^1a(3g48@CVrkQjq1 zak;l@CAJwujKc5{w2c;lP>6UcwH^I(Z`$E`FsP;EE; zdaEA}QVQSQCG+O2p34pD$rl`3$utUXiB~ee2^uo5WD0IFE16${N+VgxMCus$vz1J0 zE@XA+%V;@8?sq+xtYmg;c*K^CY`&5yEpDdgl#3P@W4}Al-nf}TPsl3Uah!XI>~3cq zFZs&aoi3u`A>*sC(iDS+oRu{xL_a^(YKea$D-`?-zSXJHZo#SQE zgo@wp)DM=xyca4N)+q3?EeKQ>%>*|V_CBmNnUBXfme@+g2MBxlMdgXgb>Zx{N;KpYh&-)11uQ{x3Ki%Y%_)#iOO{i35?m8aj$6TAt7xH2 zMstxvR_B?r3Wl~8msfb6p~Vs|Op^0damTL&v3OJ14eSPi19(;Jt=?rGzK_=>>#)s0 zj>DPpHvwob1byXWtyAXVXxdb=aBMOU#%^bG4>N9(Cz4b166a=GFzSpsUrMaKNvq2B zl6fw4a!)Eq=gh@xp=!a*#XId(Y?%v2rAX%D{dOw0ecOzRBF&Ae+^N6~5%U-?C#CW~ zYh^`-bY(WtV&%;C?oI4eLQ2s&P=3&)H1ihkhpm0EZeONU46<5mppyJUm1%n%((+V4i-&E_ww@?vQ}qr8?l?e}6(j5+NmxXGmbVyHBdv>#GO zD`ROtY9%Cf)kA|RlJ>jt$|!(?1~D9108a=qemk21cpD4ezN_}oosINdL8aYn!j?C` zRrUO8wN9_A^2oI+=!s6u!d-iCI3Z3Ggrjd*I5)2>Y`QeCnmWGDB+}VgvxL3;qB1VK zrXD{JZKv6amm+r}^+?5{^fG)F-h#Rod?szL&Uc6D7?Zn}y-^4z)YaqDy5?T~bQr2X zhDx?cMHXlHZ75tk{}cWUio1yOt&%wT-jfn+K3P4fnqI#0B|9Dj|j_n^{JDefF-+pajYc=@)u3_2K6@P;y{TR~7rNUxgjY0|lEGJMYf zyGBc4xp;*6f=R13LVCubmqq`4{P{3@j0bYYR?F$&)$Gnv=&8G$;Qx=o-z*lTS;QlfM9O=7LS+aF7$O z1uFCgtH+zt@oF=R%fvrTZLCC~X7F`oHwE1Ta349%GnGPRkKabMNsd$cV*yY<0r|^5 zscN@QIre`|n@YOJCdaOKHk)2QEnlWYHfkz;JuCf8@;+De5w*>It4RSaRrXB?^Tg9_ z!nEe>eoKb9c7cQWZm`XEDz@Y}qf#U}eukZjEt|%uD9Le0B)`B){rD!4rhzwohAyDn zd`woePAs+e@5CU~;VAc8t;AA$VhD!6#?hEf?QQ1wEU74>yWrrQu7na&=KXmi(MV>6 zVuGzuATj6s`z=Hh+MqEnPPDA-Tl4Rfib+C%!jgnuXeA-*PVqjpHJnW1b0tz4jcCkE z6R)%KT|hKNEt}<2jYhh}`P84nXfWqf1vi;|>LXBTB>7aNj($7Kr_!NGvUfkiQCcLQ zdNF?q4Bpui2jnd%7NS@z8nViHrIojc;F7wc*fh)j=bQg4_ERA z(-ZhxT0TqCpRL@6%Jq5TyxoJBlEaNYlsFt3_hauiEJgKQ0`$Jfy{i(G{jH|#+IX_5 zTkkf4aum!3QP8Rc{duq ziWv(R`O^nOlJIYkIDHS17}raDE7A5Tip)GZwi_o)E^Wg~Q_S}oyxcKEKw7@ng%5Gq zG2MmJ5O^(D3Jmnl3vK`OfQaM?PQ75u7w17G!}0|_mP19|BU1D1vcnIVOd3*&>E!pc z#_Zx{3m2CW#`25GewFLO#nYkfG+}!`8k|_TNCl!KY%}sOBy0_3rtCTvBGT&)8Yh$C z?+lO+!YIqwqNNs0DQzZ2N0PC9J~SnpP`)aWRW_)OV5Q=NYKPDLBXwG(vorUR(g+{s zN{1RkJ9oKsg(Uo5P2_0rGSd!rdBoar$n3tyrE6SE@5V~SwKV1$e?C~4DH#RAo1t3q z^)?#x=E1A`heTEnNZP3y3Tp|lz(eqF1PZxV~@3KAXM6?v6V@5*4r`6v-d zeg`DPK?8BJX)AS}#OD40pQi1V-Uc^Gfy#K)mD;NziA@a0n#9HuG>JWN22Wy>PfM1> zeo_=1iR$nQ59unmp*NNr+FD#X`{{-jOY@d|cClmY+YHTeC)N0y!059~=Q8z1=KfA|W-qJq9JI8)nFCubAgDg-=3)yVGtvZ}+|!sutYteYKs6 zEu+n-6v=4cVy9xuXfrB{$!OQC)aCq%0{VlpgCp4%StY7cM~5||P34h~wQ6#jWwb9c zP?7tsR$>`#G48?(QG(fw_M#4}zhN0``lCK02?`G+w>c>2+DE4K@=t{X=+XqkL2L zVYunK>f>HjNWsC4+Fg3FV=oRM!P)5>`U2G(E19mGe%Yi~neWEX4g?F9CF)Ub&!EGZo zKd#5}O2wMPuBn+`i2B; z7T{?=RMLp;$sw`yA}8@OyLvuWDsESD-dWoS4px)NL%*RgOEP4I+o766T8WX(L#?}^ zwE+qw8N|B=m*a{?sW~ayYGyp!!e?>rdDttlYzue8QY9L)EkvHyYzvm4*_O}Yr(I+4 zhkRPHY|Huap?as>i|R#EET@|`3-SgQmsb&d052k)BE8*^oX02cwWpE2vL$d#a6#P; z@j!si_duqy$DjhAQ>NrQX;Vq-*lYt79n7XjPRWy*AwjZ^l+Axf=t}sV&m82lkl!!T zPCMsGehyU&=1Eq1HZ56q>M$xr@+4dARBU+?Mn%b!@E45`r#Fkp{AVG{v#s>yiA{mz zqL~tD+_-P6Ium%)k=mLmp%Tf*Nj2%gG9^DHCZUc&x!-CfmMIbAF8p6;joD1esuUvh zfB)X_6# zxe#gxB>w&unnaOYNX$2y?T>n}LkjMog76kF5gc>A?FjL<1G|o@fQPt2A!@^wF)@6c zm<=jEWI?=o*Ms~1{G)Za)3IBxc(B?YRW5KGYD@RYN7a7aE`gG14)Qti@Yn-an8>~-snxF6KchE4P5 zz!k;n&olIAU%py)qBdDuNrR}`G=SZSHmxOV;&v~BZM3y%oJ>|E8!NpCHr95_?D^hg zJ%7@uw}SrOWDK@_O84b%+MA5e2dw~J z_}Px2{x~dI1aTMk9K)A&luQ}gJ_KJU*w=vURTA?!puv zNRO{wk!*-zK5zA!<)d@$sM&`n8)4T8M9p}u2XrQe#wO{Lpb?NKWjsn-CT|4=W`P!~ zfUgN957yHqm2x9E95njZo|sJ3{6?35U7c(Rj@Cg+UBBCl#naW*V7508?QJ~bN4Rei zO27>yO?Wcijo>B`>`wpH$wsoeQ-&SPZM;_muAc67=XO42XIzKRr>j4fgD7f8Wq4gz zwGqG>j5WwATt}5`YWKRZMkKYenzYhSrnFzQCc-^np2!K3)AmtDJ1cKExoX z8i=R?ed;G08h&fO=g$Wqad^3Ea$?W|Q;h<6(`&U{4LV>MK&DOvy9PFu&OtXpBK2yy z13S6vMw~0If>9%52zj)M% zgI={=KH5ZM+6-P_I}XZnO=2aLZuxLMu2bXORIb)ze-?I_r(CY(L!maEtcT9TVEkm! z4I16Rik0W;4d@(<&+YgLh{SNwFf7c0Zm_i~sC-@IA4$K0iEhF11eVj92SaSsoAqx0 z`pxGh8#_TqY;VWTtj8y_KJbpiA~~hj?RMhbyLQ3jc&4)e`~O=r?Pz{iKRFpo5(c0o zx%#mIW38Wz!SkKxT<}DY=f-HRqBW0CMDyqJ=3$unXtIZbXr>-?=LiiL@Vjc=W&?zg(YT7>5!g&~HmJf7UH}$q0h|rHGdZ~er4E$? zxFx<(hP#5`#l;91uTHjL%c$}=Xv|SSyA$3y*E-yXxg;5*a025OOc5^=g2B-()7Om= z!`T8%foXLCPoWLCMka<`{mEA4DRG_gF|;<9ep!P8`x|Ga+!{(J=g+_E12 z9Kb(UZG=D9;GdtvZ6)C^@ejUxJH&T$hj@2=h0x$Nab`A6WTJqv;czzGq(JTA= x08Zdo002`H1_2BpN-#xYdHs`Kw8~UbdVTgLli=Q$cdh=aF78O zCUC*h?wqZ9oD{JNG^;HXi)BZxU01elf4bRqJ^MO6TX)>A)zh8hp65*hJQ7a(XMf(1 z`@Zh4>%Q(c%tL%4W70|cG{7Y#TU~FvnlL+wXii+c1*cv3pul1oS zozH4C3N_m@?6hXetX8Adt2H`x{?fh{F!gvt?_(O{+NL^XZPQ&wHV2paTcdCNt%&JO zxKP1lUPn9l3P>|#mgNnYH9`aYp>Vx$h-x^t2uZm0n3?*~mXUymN1Q8qDuv|@Y!l*n zQ4AE6(c_6=WAk?`yBmw3NLFu!+gS>*xR=L^+9I6ZLvScyd_+ z$_f(=>!Eb>@uf3!o+@GHt`Z;aYq-suH9^5DwDn9pcO!MMh-pQjOh~bmA~VK|%dlO~ z5+p}X5JI%#54(KO82AqIgYs2q*W$dvwRGp^C9X!J9npI`IJY*a+WzfHc)y&9ABW5N z+#KRQM~{|DcACYg_HZjPYXelvgrCq;ei-|n@kBBP-vtBvJ9y{$3M<+QU6G83F#erB zZV-J?{r%r%1{d$5U{D{Qq1F$q;Z>@o4A7(%p}+u6!Lj=1s# z%nOhm@umDRGAOvYe)G2=E8sV0Sn4{2jOq^hGr$dJ40b_(2O^t;?>m!Kc*k-R8tL3M zjNFLULnu1Rit)_1*Oak0Yb0Z^P-X4$z`u??PefT%SE5rsSWasgFh_1-Ym-$pCx&NC!6%?^TX!>VUXjxzk4JW8!`^5M2CoaW z$f`xy(iHxleo#zSt=j9Zb(~PtH7icqPSn*FDN1Z7njLWpwF0)EuSZ|=@4p`Gclbw> zo6KS0WD@T8M3ED?=S>%RXx9zv$jE}(%gp2ycAYGtln$Ky4avalu$s~wPvr1iN(xN0 zMvI6VZ~836KwbH<2SP-v1FBP-2z9Cbi$)qVvMn%wdQw96qrGhpslW$qqbOb)Hd1Y4)_F++|@k<+L*1wV{|fzHbWQ&Vd(+8vLYt^{nE+Q9x6Qw%&E z3jDhJX*}#oi#Av^I=#6T)=mY!-TevjJ9GapnLnf4se7!Xj!u#ip}RuSgu02*J;Wg8Krs{c=K4 z?E@wZ}k1kI3*O!{Pd z2`3Nk(vN==@)3H54dhb_w~&tl4~BKjr1o1_t8{li^Y2?j9@5>FMY(B#|I(>TV%?!0 zAB6TO#q`Cln3O1C05{$#l0h?FAOx(#j*BbMw2+0TY2&3JO}9jrD0brs?3~YqD#`<% zkt{+5)Hhic1=`Rqn!h9#AvgWM?4q1IWnI2XXQr>B6;F8qFh`Ezu`w&Lqj5~RaIVa4 z(M7yu&Xo=6m`#XXkD6DD@V6_O0tc)|J3KQX4pJVG%3|XT5>`sr)v!`Ny;>j=T@rY} zQxn1wjuc{O;tMiGDcD1(eYPRT&YE!Mjq}JPX2DQa# zF{|}jhr{O3n`}Cb27jL3@^yjACAI#JhPRxOzfeVCM`9ZO^HwGjrsX(4nSjr|@z^(` zq>Ze|>W@Qm2ndict6$78R*P;t6O+1{Dplr^vfF<&djbAlXC(8+?V30Ur|&uo|YzI>~;qECEmN8PTt37x1Wgmc)^o- zM@c=!cMSUXsIB+$R(Dga-R*5?QP0)l$?Q?X97ouL1-V{f6ZFQiOf9}fAzQACW#|#2dxXdy zA*x4+==M65lnZSJF;SV) zQFxF{lwm?J7$a7gMWY~Sm?~z{3wF|()=NkyovEqq#7w50X_D4{-`TUU2acvc`scvD z&wG8|%QxL6`z>VhR#Z=*O@1A=$v;$fse{*i4H z;M53CB4!m$lrp?lDw?Y~bU%W#9r!kJ zA!<%;hJAG*Pxqgs(jp#QI^~Gp=)g0{VhN_qK^z!_A4yXs*Y%926CzMR55}9C)@_Qd&Vx zrt?KtlGExXOB2Mjv~RX94APeM_zr5xT2OR9qMs8-(z%8$P+iKmzHg0a7C8Z)eg1*x z2y-Y)Cik>#8N3Ths9ngfB-`$x_E%Byde^)W2kJsIANcAH@l1GX{CVM3CVU5%lX_eS zUF3Nlp%?v&o&06?+#}B5IyS;dmxjzpE8#80RnrSc&#Q3O9|xLIw0qHI=Zv~1Uv`(m zMYNe0y(XONtQ8v;y(V*r8Rsf&xE3EKDkwvGjs!88Beq6{pQhJ1!zvFj?AtO7znAJC zXo=dg))Hw+wXC%E;CEH$+0ztI`((`tM{H5}caO^XZFRVu9hV{Sbgm+ss9%yTS%R;x zF2~HfYkaZ=^$QrW>4Q9;W0O{+dKKBr!V$FRoHX$H`-7;mo7r13d~`MhkIpE?dKq&L zc3^`&0_W<2pQMn0wT*6P`jC8kWz`;4O_S;+^PZZ@4XPaTo~9~gw`FNbw&4Nbc;!crZWwSy?#uJ^QpbzEVB;G@o+rjh-NnN zPhXS+c3I_D`z3PV(8UNJE#nC)5b%-c6CXUpY$g9=GHyXEr@LPx8DDJE(W2z)C5 zS6gG2>eXB&XH?_lVO4Ow&X}00O03rzTz~XVpEu7icyMV2zI@XUGl%?M;at0Fgedo& z4ac<%fvJsKnBtu6>F{L&5O6wAVJF4;dd+pr$SBZ1Lc8S;&A<^R5n}^o@>PPuV`j`Q zL{oT)*?9L9VFO>Dy3XX`{Clo>$wI>5U&u%VoPJhbG#_^jCWjPE0g0WAJ2qco(KMNA zO{$U8&uyZ6l@|bXl}pc>nMPbY8|tyiE;Wx+uyB(l6%r6K6o=0ZnO-2|P@e@1u={K* zzj3@wD3sqgrWM0OA#A~d;vWssQOG%$&oZN=dW}zyz!Ke>Ecg!pi@C{n-~&>?L2a32U%z)C-Z9ees9UM3gv{&O;Z{pQwOC7s9dcvJze65x90F z+lvPKjPI~)Ot;EtG8(JRmButZS6!W^)0wN&OkBAxt;(b|R2eiCTxEq3yT;c3uZl6a zGp1DhlN3Xi=LE8!4#(2*T;>~W9p9*UI4@p~vH(B)%;t~j@fh~A1#HG#31O!euvveF zj?#x$o>L@w6YndnDF~j}#jf=xuSQCc)#MTy$e)&S%SOyh#Nv~Q&1^o!ldyg=UA~!M zy_O+>2!S%$7KElH*IdI~Yy3*^)?ptS;%c4pYebA^BP_kq zt+uAFrMar9+j2+(#4xupaYL{BBe9aye?Wki4n<>Cb)C7EIN0B9ttKLp z>>v`RqYk`Geps962jmH`9;2TmT0lJg)KS1jKh(%dOK<7$p`Mx@^}M$vEA`OMTetI; z?YvbxZ*io>60^TMi4S1${YfQS*9B8s*`w1O0^HiQsJQj%auL}~@(S*^j( zdZ=0jtevgx=I7p(+OF+zPoKGVb$}hMUnsPDaMohky0&xEcIV!_Z_qu@_V~~C*Z#Rl z&N=t|e!p|hd+(baJtMyD9HD4Xyl~^%NyYkwQ2*vAsvH6Od_8n5@l)kiI%@RUl?JB` zPV1(Qp6|4*HR+d`3}v6fsEA;a%)kd?ySz*#=Tbz29 z0@f@}duYDN;;>t)O=bGW4K9;YpJ!TYs)WuZ>hU>_%1V>bg>L;kL$$^JuK}?O%FCG_ zv027Klda0+M0BS~FJUr()O_5z#AtL^Sr8+~;izO}3fxsym9;)5`T~=y%3-m)^m!JW z1rFv-3teQXFc15EV$)EDp|sM3auD5Vvb!vX%6qVL95$Q5UZ!d`2dr*3hZX<7Zfr>6 z@3(Hy_ee5SiJ1_*(2u_F2mP)E;_ao65%M)`%uaxkAV26R^@I9l0v+-bJYl z76iKrXA=UQg#~01Zcl=x%LDQE>gCDY8Ue2^&m@|=JmZTdp=WN978$_$qVH(_FoES5 zrzQDt?eXcd`FdO|sgTUuiZhuxZ{BzqD1MY|U}jpYfbRG(82WTHG_QD!`Nvm`CHcEn za)2c@aiCvmA_q7F)UK?Mc{Yn8#UGwOd>{kSw@C$@(CCT)Cj)Egkuv(65(v=J0weNG8Ph|gR5nEq!^uv@zx@L9Fyq9Yo)^J@TYfHV(+S! z&L6UiQs9J1ppW_^p=dUbirHA6Ea*2)#q@#Y`{*H7A#XvrQ`PSs% zb}#AmzJX}8&XrU4TGPlCDc$0y#xXO(tK`^3e_s>vbQdo_RZ8h?48eBSBg!p*)^1h3 zl=)kKEOab^=5<+rdt}~C$4d5_4q)k}?K2rbn$s(n2vw9-Eqkvy+nyJ`bv4Yo*f<@er*{MWHWv2j);iYZJ5PNPUtf7-(-}X5)LWvDY zWS5fi4JkTY9J3>Wka%(W&L&E=JYdv3JYC+B0yIi~c(CrqD|vUr#f5N|(gG!K<=XLte0+EiyEi4 zt3^xBf~vJ0*VC<9jQK|^UaW)S%mYJ|em`7=UrSZ^`*0Notl(uWh z3MJx!*8&JxBOZP|n9@cSujIL(Ws)Z7IHDzuu;_?JHXlDW1M#v4kn+H!&PJzKITa zD{=v~ehv*MbhMB8ZSoe!}35^-a6&1A`Njw<3 zy+`zA2{;D++8)C~7_e;g0mq74-+V+#bJ2}=LLVaMjO4EXgTE2z+>so9|LLFl3Hp(| zBYnP(u-H{2c}JvJ){!}9G|0+*rk&7DURJpuB$4fm)u=pkbp8WGqO}Q*e~`suvWuoe z)Q2kU!p5#p7`hxRG%zSUSj2)4FDdBH8MOph(KUq}!;tC15y=gwx?aN@($GDN`s7T6 zi`^}>mu<;~_s;p#i%iXYP<^bTpE5Q7s~4KvBcbyTkx;cXz31}TBTo@GK}ptmBh@RL<^P9P4}G^I7mYn%laKDk97 zW5#&6ddVN?`Q`X(ntgGaGFqzjEZBN}#)O$HK6d|%c(8%x^A*+pjoU*oY zDJ(yqldVDJ4u{L`aGCVjkLu>Q`)Wqgb=TN*Otczlv-CW!amTF@K~WQ-DY^@)+itq)B}xcEPvX*w zOT4%oVs;W^0yw5k&MazX21n=2#DFnwaUm0IwBr}i6Ayzwf*6R#nqCx`Vf#4pyyJ?Re_*1FD9?rbOE{6cm)SrlqkZQB*B8kPm52mp4sx zdc1vY=9yjc{|itD|ivo1LY8>J?I4ymAChC{)?pkYY%|w0EOd6n%vw7n5R*$~c>D7C9 zuhmm+6)gHH!OZ(Sg5E9E`K)fiA=G;Hu6m1ag_m~;nM%C1*5l>vcEOUW)$3Q1!ijSA z#OgSy`trC2ro&XrJA}sNcQZBp2vq~&ZTvn_^-zc7}pHy0MrIR5cbP+XFavs8d~r)#R@ zO5t#{BvrvfODEx(gYhRz$5FiBk*-yef>iKv>DRdY4!gkEHG*8V9EujFDfnmc2E1}G z{?+11s2tMEYVc+TX_ZvJ3Qi_Qg8ssAxK*~0#2A;1qLnDW5<~c(FvY{MB?8`0vy)-j zQXOiC>ZQBzVM$cfvRw2>C|;J24#UP}db&+2z{O=8ZdXD0hRK0(4;LYPMFqXxvqI)M zNK-$On1}h(v<}(FB^9hmh=EGitoSNRhQL?lWTfOy;PX=^Was6l$f@vWo(kPZLmK_u`|Ij{nHsz%}pHEoqf*?buE<^*h1L-+I~Q~(}xD{fW~j9m+*OV`%R z6$nzaB#H*mZlADlB;)t?2>9G`mB{Q73h_afplOg3+M%R+5`nf<`|t@0#ektk&;5l8 zi?;m<=G5@$JiJkp8g@+5dMEL-nkl$lQZhr#!hdIl;|FjW9wP?(s>H}?iCRwmr+A=0(!X|q*v$qPTgs_H0 zEei$SF&<}!(5Ap)2ZvJNm?Md-eU5y}Mh8!I@l}Ks&*+kpa@(k=QC}t8nL1U8c6#(CenAM|v7j5E;7& z*y}lk-=cn#;We)gzZt@A%@4hk@iDf`CUKYCye=s5wV)5+y6-anj5SH~j0|1fzOoQq zC4I`!DqDZ0n&Q-5MBWD>Z2Y$$GAtV|QR1Aa?{k6X;$Ds~*b=__W8x0SykHW|A z#yZv~QjGfDFYBSoTk%y{bbzpbtccFVy^`2E|5@%^No?RAu{8YFfLQ3;$k7xkblN5& z6jp6AD^r1*A420{YI8nH2sAX0Mkp_^bMr=w=73>aKAx!=IPN?RJMM%)=e83Vn>Flg zcf$Q>1<6i<%7`KG1#rj=Hy}ZRM?-!~B5E82?`c^}Vfv0N*l|DF%HZ^-A(}(7b2IGO z@sL7rgM_>|s6yG!y$T$)YYYkuf?c~x75MTl19{`zD{ta%D}`yV6~=_X<=r}jFG-$M ztr=wK{d^wM!hzQl@NK1CV_x_h z!l_zm_>PliWxnV=ujd%W@S*AIqX z4#^P^``&BhZEHA~GHjYS*7yshmfYQ`-Fwg%B;ANVSL~$fjL}Neb!zJ8{IaCe!Pb*; z(pxK+qr~J5tyA7xSWRK&t5fJ`1Nj0#?O!7Qz7sP8GJ|#Od@J08w9{UXIhBK4u;^3? zSD=%c2A!vtqXn?~ObTa|w&uc=4{l;!N5(x7oM+WwJ-ry0OGUSxkI;;j4`42Qc{(R{ zHcc8kPuX;7$w%_7MBFwH`KoMlAmiK!R0PY;RXt`2$=t&y7O|?l#m3&z*Y$cPRvFn14PQzoU@EpibyGKTupR zGyXvF$PdS%kMAzt3(gM#e|4vL=7lWWrxcIS%#`c(LhFTsFu7aGrVFlJ*o@u`crOkQ zCf{Gz_udYM+gC=xvscCx$>0dMF7OLs* z8y@;gj_onhQ}PQ%BX4^{y4u0pE=pJXcw1;F{Q8slrUa5`i=)fpV6v3Z<@OM=d_$N0 zA!KQ%OFo${TMk|J(vNL)8AH=X(G3lyex}3EH24|6pK<#cub*-H8K0kVZD3Rz7}Ewuw81AD zXiKP3Q75h!8^!0v9b!O)3s)nXnAN4!IkOt1B3I06JH2973#fBu^-b!WS?!`%%xVI4 z&aARA*=(Cj9kS6kjk?Y`HG}6C6U$_W%F@ diff --git a/.doctrees/tutorials/model_validation.doctree b/.doctrees/tutorials/model_validation.doctree index dac49341a1b854914ce1ac01075afcb5c4379dc4..dc2207f8307a43ae365c3ebe0c162019e68644c2 100644 GIT binary patch delta 2553 zcmb_dZA=?w9N!%+)^0F10%a1UAsdld^x9tE7+{+vh(Jmis{>p+YP+l)rM#P+ZU{6m z*-$tBam(W7X5t53Qc=0Mi^!6l2v%@2N=^ZkP+Ci>iS?Uko@=ogzyll%St zzyI(5a`)W3N!3D9r5abibnLR~pj9{ffr&A()r`5?Xw#dR8jAy61_zw#Xq@vDz{9?F zaQ59({9jQ%Sh7C{=Nq*7YqOYH_{II69C`yz9?(MNE?)PkqPrOqO?zRiyDyK(mO}Sq z_2D{R=Et&-Y-)!C!F@u}P;iJWN1_Ap+9Oy^w-9QH3W2FnL21Lv z?<2jWDh+pGPiGSkFGfjEo9MaH-!06x|z}?!~H}DDOfuahNve-QZ{I-X@KY3t03Cevp&^OTR)zL|dAh*L|VE@L7oDWa z#0VoG6bQOq|1rE1;GxW!6>UM3A4)q&4^tWz--X2>FY_@ovMFFloWkls1%&+CMt7E)&GV`>{uE#>&lDY(_`q!4`Qh7!rFaj>_j|Ne_sen*@t< zvksus>nJ&KtFVkt$RCRmJCa}@Zt3wMz9g~sRhLF)WwAbQB7o1@bK_a*({wKkjYuc8 zq)r_aStqreMkn=C3TpI5hwyhLqYxnRyOKDJ6~waac#XH3L+KBLA{&Ljp3XY0B?G&4 z?P)EC#Yt~JD))8>-g6#h>l7JBLaW%2BU2amxT@CQf@#E#?R{F z=Z}RbdI811RSxA>A5ga=Y93l=+;m(BCMV4cj=MiByq7kzU|3~n#s>b?TAH!Lxz%Qxae#i=wb97vwR-e3 z8;uZI9;A&X_;z{cR-;(}^%WHr+Un|h#Io_ymCf}3lL|^#BH&5P(PFQ3ml~$7mZMGP z=WtTxZONZCnLYwHONuggXMZxOGIw`=b8XDrwfsG}Rl2+K%@*pWI&*tNNBxDn}gu delta 2487 zcmb_dU2Icj7~Xg6nXK3iSg&IWlDrS+CWS5#%%K@D5egW zJUH@HYAi4$R+4Gx^Y}@wj~mt5F8o48D`36unKe+{;k6+MiPS&~0lwYM3W#l8GR@RZOCMMKU#+oXmVh(`o2$^fjw}^ea0grV?bY(m`G0#bV59Wkw ziPMK$O|2wBF}1^F7hzJq%|!8VMOQ}DNAmo!M}mSE>CWSAGw6ou{cZAWX>VlgSn^H? zRDHw)-S*+SN{E>?&|OWOJe}DItX>Pj&Z834)zFbxNF<-vyh3G=K*wu?&@>>y>=C+N z7Bl{&ykH9sP~B1Bmr34-kEd-}BbRNv3b&BFK6t$gmKyT43z@oR!kF)kMB?VWK=!2+%GHU_WjbMsXU zZ-8yHj`cjRQ|s^}@B;MA_A_`L-=E#Ni8slhuC%mNt=E@hs~9hyD`5T~S5Q3H4F?w9 zPGrb*vM@Hi6qEzSF!2!n^jIf qXwjdV+%T?WNSe5{9i2wuiS{zov_X;~7lU7gx%d^iG*^Zmp#K07CSource code for buildingmotif.api.views.model

return {"message": f"No model with id {models_id}"}, status.HTTP_404_NOT_FOUND shape_collections = [] + shacl_engine = None - # no body provided -- default to model manifest + # no body provided -- default to model manifest and default SHACL engine if request.content_length is None: shape_collections = [model.get_manifest()] else: @@ -598,15 +599,18 @@

Source code for buildingmotif.api.views.model

"message": f"Libraries with ids {nonexistent_libraries} do not exist" }, status.HTTP_400_BAD_REQUEST + # get shacl engine if it is provided + shacl_engine = body.get("shacl_engine", None) + # if shape_collections is empty, model.validate will default # to the model's manifest - vaildation_context = model.validate(shape_collections) + vaildation_context = model.validate(shape_collections, engine=shacl_engine) return { "message": vaildation_context.report_string, "valid": vaildation_context.valid, "reasons": { - focus_node: [gd.reason() for gd in grahdiffs] + focus_node: list(set(gd.reason() for gd in grahdiffs)) for focus_node, grahdiffs in vaildation_context.diffset.items() }, }, status.HTTP_200_OK
diff --git a/_modules/buildingmotif/dataclasses/library.html b/_modules/buildingmotif/dataclasses/library.html index bd19b3c95..7b11d0118 100644 --- a/_modules/buildingmotif/dataclasses/library.html +++ b/_modules/buildingmotif/dataclasses/library.html @@ -407,7 +407,6 @@

Source code for buildingmotif.dataclasses.library

from typing import TYPE_CHECKING, Any, Dict, List, Mapping, Optional, Union import pygit2 -import pyshacl import rdflib import sqlalchemy import yaml @@ -425,6 +424,7 @@

Source code for buildingmotif.dataclasses.library

from buildingmotif.utils import ( get_ontology_files, get_template_parts_from_shape, + shacl_inference, skip_uri, ) @@ -650,15 +650,7 @@

Source code for buildingmotif.dataclasses.library

# expand the ontology graph before we insert it into the database. This will ensure # that the output of compiled models will not contain triples that really belong to # the ontology - pyshacl.validate( - data_graph=ontology, - shacl_graph=ontology, - ont_graph=ontology, - advanced=True, - inplace=True, - js=True, - allow_warnings=True, - ) + ontology = shacl_inference(ontology) lib = cls.create(ontology_name, overwrite=overwrite) @@ -686,6 +678,7 @@

Source code for buildingmotif.dataclasses.library

dependency_cache: Dict[int, List[Dict[Any, Any]]] = {} for candidate in candidates: assert isinstance(candidate, rdflib.URIRef) + # TODO: mincount 0 (or unspecified) should be optional args on the generated template partial_body, deps = get_template_parts_from_shape(candidate, graph) templ = self.create_template(str(candidate), partial_body) dependency_cache[templ.id] = deps diff --git a/_modules/buildingmotif/dataclasses/model.html b/_modules/buildingmotif/dataclasses/model.html index 1a7858a56..1a57e00c7 100644 --- a/_modules/buildingmotif/dataclasses/model.html +++ b/_modules/buildingmotif/dataclasses/model.html @@ -403,7 +403,6 @@

Source code for buildingmotif.dataclasses.model

< from dataclasses import dataclass from typing import TYPE_CHECKING, Dict, List, Optional -import pyshacl import rdflib import rfc3987 from rdflib import URIRef @@ -412,7 +411,13 @@

Source code for buildingmotif.dataclasses.model

< from buildingmotif.dataclasses.shape_collection import ShapeCollection from buildingmotif.dataclasses.validation import ValidationContext from buildingmotif.namespaces import A -from buildingmotif.utils import Triple, copy_graph, rewrite_shape_graph +from buildingmotif.utils import ( + Triple, + copy_graph, + rewrite_shape_graph, + shacl_inference, + shacl_validate, +) if TYPE_CHECKING: from buildingmotif import BuildingMOTIF @@ -543,6 +548,7 @@

Source code for buildingmotif.dataclasses.model

< self, shape_collections: Optional[List[ShapeCollection]] = None, error_on_missing_imports: bool = True, + engine: Optional[str] = "pyshacl", ) -> "ValidationContext": """Validates this model against the given list of ShapeCollections. If no list is provided, the model will be validated against the model's "manifest". @@ -559,6 +565,10 @@

Source code for buildingmotif.dataclasses.model

< ontologies are missing (i.e. they need to be loaded into BuildingMOTIF), defaults to True :type error_on_missing_imports: bool, optional + :param engine: the engine to use for validation. "pyshacl" or "topquadrant". Using topquadrant + requires Java to be installed on this machine, and the "topquadrant" feature on BuildingMOTIF, + defaults to "pyshacl" + :type engine: str, optional :return: An object containing useful properties/methods to deal with the validation results :rtype: ValidationContext @@ -576,32 +586,40 @@

Source code for buildingmotif.dataclasses.model

< ).graph # inline sh:node for interpretability shapeg = rewrite_shape_graph(shapeg) + + # skolemize the shape graph so we have consistent identifiers across + # validation through the interpretation of the validation report + shapeg = shapeg.skolemize() + + shapeg.serialize("/tmp/shapeg.ttl", format="turtle") + # TODO: do we want to preserve the materialized triples added to data_graph via reasoning? data_graph = copy_graph(self.graph) - valid, report_g, report_str = pyshacl.validate( - data_graph, - shacl_graph=shapeg, - ont_graph=shapeg, - advanced=True, - js=True, - allow_warnings=True, - # inplace=True, - ) - assert isinstance(report_g, rdflib.Graph) + data_graph.serialize("/tmp/data_graph.ttl", format="turtle") + + # validate the data graph + valid, report_g, report_str = shacl_validate(data_graph, shapeg, engine) return ValidationContext( shape_collections, + shapeg, valid, report_g, report_str, self, )
-
[docs] def compile(self, shape_collections: List["ShapeCollection"]): +
[docs] def compile( + self, shape_collections: List["ShapeCollection"], engine: str = "pyshacl" + ): """Compile the graph of a model against a set of ShapeCollections. :param shape_collections: list of ShapeCollections to compile the model against :type shape_collections: List[ShapeCollection] + :param engine: the engine to use for validation. "pyshacl" or "topquadrant". Using topquadrant + requires Java to be installed on this machine, and the "topquadrant" feature on BuildingMOTIF, + defaults to "pyshacl" + :type engine: str :return: copy of model's graph that has been compiled against the ShapeCollections :rtype: Graph @@ -614,39 +632,7 @@

Source code for buildingmotif.dataclasses.model

< model_graph = copy_graph(self.graph).skolemize() - # We use a fixed-point computation approach to 'compiling' RDF models. - # We accomlish this by keeping track of the size of the graph before and after - # the inference step. If the size of the graph changes, then we know that the - # inference has had some effect. We do this at most 3 times to avoid looping - # forever. - pre_compile_length = len(model_graph) # type: ignore - pyshacl.validate( - data_graph=model_graph, - shacl_graph=ontology_graph, - ont_graph=ontology_graph, - advanced=True, - inplace=True, - js=True, - allow_warnings=True, - ) - post_compile_length = len(model_graph) # type: ignore - - attempts = 3 - while attempts > 0 and post_compile_length != pre_compile_length: - pre_compile_length = len(model_graph) # type: ignore - pyshacl.validate( - data_graph=model_graph, - shacl_graph=ontology_graph, - ont_graph=ontology_graph, - advanced=True, - inplace=True, - js=True, - allow_warnings=True, - ) - post_compile_length = len(model_graph) # type: ignore - attempts -= 1 - model_graph -= ontology_graph - return model_graph.de_skolemize()
+ return shacl_inference(model_graph, ontology_graph, engine)
[docs] def test_model_against_shapes( self, @@ -693,15 +679,17 @@

Source code for buildingmotif.dataclasses.model

< temp_model_graph += ontology_graph.cbd(shape_uri) - valid, report_g, report_str = pyshacl.validate( - data_graph=temp_model_graph, - ont_graph=ontology_graph, - allow_warnings=True, - advanced=True, - js=True, + # skolemize the shape graph so we have consistent identifiers across + # validation through the interpretation of the validation report + ontology_graph = ontology_graph.skolemize() + + valid, report_g, report_str = shacl_validate( + temp_model_graph, ontology_graph ) + results[shape_uri] = ValidationContext( shape_collections, + ontology_graph, valid, report_g, report_str, diff --git a/_modules/buildingmotif/dataclasses/template.html b/_modules/buildingmotif/dataclasses/template.html index e9fc47f96..4e64ce1eb 100644 --- a/_modules/buildingmotif/dataclasses/template.html +++ b/_modules/buildingmotif/dataclasses/template.html @@ -758,6 +758,7 @@

Source code for buildingmotif.dataclasses.template

parameters were provided :rtype: Union[Template, rdflib.Graph] """ + # TODO: handle datatype properties templ = self.in_memory_copy() # put all of the parameter names into the PARAM namespace so they can be # directly subsituted in the template body diff --git a/_modules/buildingmotif/dataclasses/validation.html b/_modules/buildingmotif/dataclasses/validation.html index ca8460044..d3f1ef10e 100644 --- a/_modules/buildingmotif/dataclasses/validation.html +++ b/_modules/buildingmotif/dataclasses/validation.html @@ -405,7 +405,7 @@

Source code for buildingmotif.dataclasses.validation

from functools import cached_property from itertools import chain from secrets import token_hex -from typing import TYPE_CHECKING, Dict, List, Optional, Set, Tuple +from typing import TYPE_CHECKING, Dict, List, Optional, Set, Tuple, Union import rdflib from rdflib import Graph, URIRef @@ -654,6 +654,9 @@

Source code for buildingmotif.dataclasses.validation

""" shape_collections: List[ShapeCollection] + # the shapes graph that was used to validate the model + # This will be skolemized! + shapes_graph: Graph valid: bool report: rdflib.Graph report_string: str @@ -666,10 +669,6 @@

Source code for buildingmotif.dataclasses.validation

""" return self._report_to_diffset() - @cached_property - def _context(self) -> Graph: - return sum((sc.graph for sc in self.shape_collections), start=Graph()) # type: ignore -
[docs] def as_templates(self) -> List["Template"]: """Produces the set of templates that reconcile the GraphDiffs from the SHACL validation report. @@ -679,6 +678,43 @@

Source code for buildingmotif.dataclasses.validation

""" return diffset_to_templates(self.diffset)
+
[docs] def get_reasons_with_severity( + self, severity: Union[URIRef, str] + ) -> Dict[Optional[URIRef], Set[GraphDiff]]: + """ + Like diffset, but only includes ValidationResults with the given severity. + Permitted values are: + - SH.Violation or "Violation" for violations + - SH.Warning or "Warning" for warnings + - SH.Info or "Info" for info + + :param severity: the severity to filter by + :type severity: Union[URIRef|str] + :return: a dictionary of focus nodes to the reasons with the given severity + :rtype: Dict[Optional[URIRef], Set[GraphDiff]] + """ + + if isinstance(severity, str): + severity = SH[severity] + + # check if the severity is a valid SHACL severity + if severity not in {SH.Violation, SH.Warning, SH.Info}: + raise ValueError( + f"Invalid severity: {severity}. Must be one of SH.Violation, SH.Warning, or SH.Info" + ) + + # for each value in the diffset, filter out the diffs that don't have the given severity + # in the diffset.graph + return { + focus: { + diff + for diff in diffs + if diff.validation_result.value(diff._result_uri, SH.resultSeverity) + == severity + } + for focus, diffs in self.diffset.items() + }
+ def _report_to_diffset(self) -> Dict[Optional[URIRef], Set[GraphDiff]]: """Interpret a SHACL validation report and say what is missing. @@ -690,7 +726,7 @@

Source code for buildingmotif.dataclasses.validation

# TODO: for future use # proppath = SH["property"] | (SH.qualifiedValueShape / SH["property"]) # type: ignore - g = self.report + self._context + g = self.report + self.shapes_graph diffs: Dict[Optional[URIRef], Set[GraphDiff]] = defaultdict(set) for result in g.objects(predicate=SH.result): # check if the failure is due to our count constraint component diff --git a/_modules/buildingmotif/template_matcher.html b/_modules/buildingmotif/template_matcher.html index 8ae4015e4..380429d20 100644 --- a/_modules/buildingmotif/template_matcher.html +++ b/_modules/buildingmotif/template_matcher.html @@ -444,7 +444,7 @@

Source code for buildingmotif.template_matcher

cache = self.sc_cache[id(ontology)] # populate cache if necessary if ntype not in cache: - cache[ntype] = set(ontology.transitive_objects(ntype, RDFS.subClassOf)) + cache[ntype] = set(ontology.transitive_objects(ntype, RDFS.subClassOf)) # type: ignore return cache[ntype] def superproperties(self, ntype: Node, ontology: Graph) -> Set[Node]: @@ -830,7 +830,7 @@

Source code for buildingmotif.template_matcher

subgraph = self.building_subgraph_from_mapping(mapping) if not subgraph.connected(): continue - key = tuple(sorted(subgraph.all_nodes())) + key = tuple(sorted(subgraph.all_nodes())) # type: ignore if key in cache: continue cache.add(key) diff --git a/_modules/buildingmotif/utils.html b/_modules/buildingmotif/utils.html index 16271b669..ad9cda5f1 100644 --- a/_modules/buildingmotif/utils.html +++ b/_modules/buildingmotif/utils.html @@ -409,6 +409,7 @@

Source code for buildingmotif.utils

 from pathlib import Path
 from typing import TYPE_CHECKING, Dict, List, Optional, Set, Tuple
 
+import pyshacl  # type: ignore
 from rdflib import BNode, Graph, Literal, URIRef
 from rdflib.paths import ZeroOrOne
 from rdflib.term import Node
@@ -876,7 +877,7 @@ 

Source code for buildingmotif.utils

                 sh:node ?child .
         }"""
     for row in sg.query(q):
-        parent, child = row
+        parent, child = row  # type: ignore
         sg.remove((parent, SH.node, child))
         pos = sg.predicate_objects(child)
         for (p, o) in pos:
@@ -896,7 +897,7 @@ 

Source code for buildingmotif.utils

         ?andnode rdf:rest*/rdf:first ?child .
         }"""
     for row in sg.query(q):
-        parent, child, to_remove = row
+        parent, child, to_remove = row  # type: ignore
         sg.remove((parent, SH["and"], to_remove))
         pos = sg.predicate_objects(child)
         for (p, o) in pos:
@@ -943,6 +944,112 @@ 

Source code for buildingmotif.utils

         if uri.startswith(ns):
             return True
     return False
+ + +
[docs]def shacl_validate( + data_graph: Graph, shape_graph: Optional[Graph] = None, engine="topquadrant" +) -> Tuple[bool, Graph, str]: + """ + Validate the data graph against the shape graph. + Uses the fastest validation method available. Use the 'topquadrant' feature + to use TopQuadrant's SHACL engine. Defaults to using PySHACL. + + :param data_graph: the graph to validate + :type data_graph: Graph + :param shape_graph: the shape graph to validate against + :type shape_graph: Graph, optional + :param engine: the SHACL engine to use, defaults to "topquadrant" + :type engine: str, optional + :return: a tuple containing the validation result, the validation report, and the validation report string + :rtype: Tuple[bool, Graph, str] + """ + + if engine == "topquadrant": + try: + from brick_tq_shacl.topquadrant_shacl import ( + validate as tq_validate, # type: ignore + ) + + return tq_validate(data_graph.skolemize(), (shape_graph or Graph()).skolemize()) # type: ignore + except ImportError: + logging.info( + "TopQuadrant SHACL engine not available. Using PySHACL instead." + ) + pass + + return pyshacl.validate( + data_graph, + shacl_graph=shape_graph, + ont_graph=shape_graph, + advanced=True, + js=True, + allow_warnings=True, + ) # type: ignore
+ + +
[docs]def shacl_inference( + data_graph: Graph, shape_graph: Optional[Graph] = None, engine="topquadrant" +) -> Graph: + """ + Infer new triples in the data graph using the shape graph. + Edits the data graph in place. Uses the fastest inference method available. + Use the 'topquadrant' feature to use TopQuadrant's SHACL engine. Defaults to + using PySHACL. + + :param data_graph: the graph to infer new triples in + :type data_graph: Graph + :param shape_graph: the shape graph to use for inference + :type shape_graph: Optional[Graph] + :param engine: the SHACL engine to use, defaults to "topquadrant" + :type engine: str, optional + :return: the data graph with inferred triples + :rtype: Graph + """ + if engine == "topquadrant": + try: + from brick_tq_shacl.topquadrant_shacl import infer as tq_infer + + return tq_infer( + data_graph.skolemize(), (shape_graph or Graph()).skolemize() + ) + except ImportError: + logging.info( + "TopQuadrant SHACL engine not available. Using PySHACL instead." + ) + pass + + # We use a fixed-point computation approach to 'compiling' RDF models. + # We accomlish this by keeping track of the size of the graph before and after + # the inference step. If the size of the graph changes, then we know that the + # inference has had some effect. We do this at most 3 times to avoid looping + # forever. + pre_compile_length = len(data_graph) # type: ignore + pyshacl.validate( + data_graph=data_graph, + shacl_graph=shape_graph, + ont_graph=shape_graph, + advanced=True, + inplace=True, + js=True, + allow_warnings=True, + ) + post_compile_length = len(data_graph) # type: ignore + + attempts = 3 + while attempts > 0 and post_compile_length != pre_compile_length: + pre_compile_length = len(data_graph) # type: ignore + pyshacl.validate( + data_graph=data_graph, + shacl_graph=shape_graph, + ont_graph=shape_graph, + advanced=True, + inplace=True, + js=True, + allow_warnings=True, + ) + post_compile_length = len(data_graph) # type: ignore + attempts -= 1 + return data_graph - (shape_graph or Graph())
diff --git a/_sources/reference/apidoc/_autosummary/buildingmotif.utils.rst b/_sources/reference/apidoc/_autosummary/buildingmotif.utils.rst index 0cc55d817..d8adf1d70 100644 --- a/_sources/reference/apidoc/_autosummary/buildingmotif.utils.rst +++ b/_sources/reference/apidoc/_autosummary/buildingmotif.utils.rst @@ -24,6 +24,8 @@ buildingmotif.utils remove_triples_with_node replace_nodes rewrite_shape_graph + shacl_inference + shacl_validate skip_uri template_to_shape diff --git a/explanations/shapes-and-templates.html b/explanations/shapes-and-templates.html index 06d7a1f22..59ce407e2 100644 --- a/explanations/shapes-and-templates.html +++ b/explanations/shapes-and-templates.html @@ -607,74 +607,70 @@

Example -
/opt/hostedtoolcache/Python/3.11.8/x64/lib/python3.11/site-packages/pyshacl/extras/__init__.py:46: Warning: Extra "js" is not satisfied because requirement pyduktape2 is not installed.
-  warn(Warning(f"Extra \"{extra_name}\" is not satisfied because requirement {req} is not installed."))
+
2024-03-17 20:57:52,233 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7461 in libraries []
 
-
2024-03-15 20:39:37,547 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7410 in libraries []
+
2024-03-17 20:57:52,238 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7459 in libraries []
 
-
2024-03-15 20:39:37,552 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7412 in libraries []
+
2024-03-17 20:57:52,242 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7463 in libraries []
 
-
2024-03-15 20:39:37,556 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7414 in libraries []
+
2024-03-17 20:57:52,246 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7467 in libraries []
 
-
2024-03-15 20:39:37,560 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7416 in libraries []
+
2024-03-17 20:57:52,250 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7465 in libraries []
 
-
2024-03-15 20:39:37,564 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7418 in libraries []
+
2024-03-17 20:57:52,254 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7469 in libraries []
 
-
2024-03-15 20:39:37,568 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7420 in libraries []
+
2024-03-17 20:57:52,259 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7476 in libraries []
 
-
2024-03-15 20:39:37,575 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7476 in libraries []
+
2024-03-17 20:57:52,263 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7480 in libraries []
 
-
2024-03-15 20:39:37,579 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7478 in libraries []
+
2024-03-17 20:57:52,267 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7482 in libraries []
 
-
2024-03-15 20:39:37,583 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7480 in libraries []
+
2024-03-17 20:57:52,272 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7478 in libraries []
 
-
2024-03-15 20:39:37,587 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7482 in libraries []
+
2024-03-17 20:57:52,275 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7484 in libraries []
 
-
2024-03-15 20:39:37,591 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7484 in libraries []
+
2024-03-17 20:57:52,874 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7416 in libraries []
 
-
2024-03-15 20:39:37,597 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7459 in libraries []
+
2024-03-17 20:57:52,878 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7412 in libraries []
 
-
2024-03-15 20:39:37,601 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7461 in libraries []
+
2024-03-17 20:57:52,882 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7418 in libraries []
 
-
2024-03-15 20:39:37,605 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7463 in libraries []
+
2024-03-17 20:57:52,886 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7420 in libraries []
 
-
2024-03-15 20:39:37,609 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7465 in libraries []
+
2024-03-17 20:57:52,890 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7410 in libraries []
 
-
2024-03-15 20:39:37,614 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7467 in libraries []
+
2024-03-17 20:57:52,894 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7414 in libraries []
 
-
2024-03-15 20:39:37,617 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7469 in libraries []
+
2024-03-17 20:57:52,899 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7552 in libraries []
 
-
2024-03-15 20:39:37,621 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7552 in libraries []
+
2024-03-17 20:57:52,902 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7558 in libraries []
 
-
2024-03-15 20:39:37,626 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7554 in libraries []
+
2024-03-17 20:57:52,906 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7554 in libraries []
 
-
2024-03-15 20:39:37,630 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7556 in libraries []
+
2024-03-17 20:57:52,910 | root |  WARNING: Warning: could not find dependee nef8df68f41d8491c9aec40334c6d1ff0b7560 in libraries []
 
-
2024-03-15 20:39:37,634 | root |  WARNING: Warning: could not find dependee n852f13e15b014d2496dd5d86b58edf01b7558 in libraries []
-
-
-
- -
#3 ...
-
-#4 [device auth] library/ubuntu:pull token for registry-1.docker.io
-#4 DONE 0.0s
+#3 [device auth] library/ubuntu:pull token for registry-1.docker.io
+#3 DONE 0.0s
 
-#3 [device internal] load metadata for docker.io/library/ubuntu:latest
-
-
-
#3 DONE 1.1s
+#4 [device internal] load metadata for docker.io/library/ubuntu:latest
 
-
#5 [device 1/6] FROM docker.io/library/ubuntu:latest@sha256:77906da86b60585ce12215807090eb327e7386c8fafb5402369e421f44eff17e
+
-
#8 0.380 
-#8 0.380 WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
-#8 0.380 
-
-
-
#8 0.779 Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
-#8 0.885 Get:2 http://archive.ubuntu.com/ubuntu jammy InRelease [270 kB]
-
-
-
#8 1.257 Get:3 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [1961 kB]
-
-
-
#8 1.650 Get:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
-#8 1.654 Get:5 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [1079 kB]
-#8 1.680 Get:6 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [1569 kB]
-#8 1.738 Get:7 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 Packages [44.6 kB]
-#8 1.830 Get:8 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [109 kB]
-
-
-
#8 2.007 Get:9 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages [17.5 MB]
-
-
-
#8 3.180 Get:10 http://archive.ubuntu.com/ubuntu jammy/restricted amd64 Packages [164 kB]
-#8 3.226 Get:11 http://archive.ubuntu.com/ubuntu jammy/multiverse amd64 Packages [266 kB]
-#8 3.230 Get:12 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages [1792 kB]
-#8 3.304 Get:13 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [1998 kB]
-
-
-
#8 3.380 Get:14 http://archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 Packages [50.4 kB]
-#8 3.381 Get:15 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [1848 kB]
-#8 3.502 Get:16 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1354 kB]
-
-
-
#8 3.840 Get:17 http://archive.ubuntu.com/ubuntu jammy-backports/universe amd64 Packages [33.3 kB]
-
-
-
#8 4.169 Get:18 http://archive.ubuntu.com/ubuntu jammy-backports/main amd64 Packages [80.9 kB]
-
-
-
#8 4.412 Fetched 30.3 MB in 4s (7980 kB/s)
-#8 4.412 Reading package lists...
-
-
-
#8 5.009 Building dependency tree...
-#8 5.113 Reading state information...
-
-
-
#8 5.124 1 package can be upgraded. Run 'apt list --upgradable' to see it.
-#8 5.129 
-#8 5.129 WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
-#8 5.129 
-#8 5.157 Reading package lists...
-
-
-
#8 5.748 Building dependency tree...
-#8 5.856 Reading state information...
-
-
-
#8 5.976 The following additional packages will be installed:
-#8 5.976   binutils binutils-common binutils-x86-64-linux-gnu build-essential bzip2
-#8 5.976   ca-certificates cpp cpp-11 dirmngr dpkg-dev fakeroot fontconfig-config
-#8 5.976   fonts-dejavu-core g++ g++-11 gcc gcc-11 gcc-11-base gnupg gnupg-l10n
-#8 5.976   gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm
-#8 5.976   javascript-common libalgorithm-diff-perl libalgorithm-diff-xs-perl
-#8 5.976   libalgorithm-merge-perl libasan6 libassuan0 libatomic1 libbinutils
-#8 5.976   libbrotli1 libbsd0 libc-dev-bin libc-devtools libc6-dev libcc1-0
-#8 5.976   libcrypt-dev libctf-nobfd0 libctf0 libdeflate0 libdpkg-perl libexpat1
-#8 5.976   libexpat1-dev libfakeroot libfile-fcntllock-perl libfontconfig1 libfreetype6
-#8 5.976   libgcc-11-dev libgd3 libgdbm-compat4 libgdbm6 libgomp1 libisl23 libitm1
-#8 5.976   libjbig0 libjpeg-turbo8 libjpeg8 libjs-jquery libjs-sphinxdoc
-#8 5.976   libjs-underscore libksba8 libldap-2.5-0 libldap-common
-#8 5.976   liblocale-gettext-perl liblsan0 libmd0 libmpc3 libmpdec3 libmpfr6 libnpth0
-#8 5.976   libnsl-dev libperl5.34 libpng16-16 libpython3-dev libpython3-stdlib
-#8 5.976   libpython3.10 libpython3.10-dev libpython3.10-minimal libpython3.10-stdlib
-#8 5.977   libquadmath0 libreadline8 libsasl2-2 libsasl2-modules libsasl2-modules-db
-#8 5.977   libsqlite3-0 libstdc++-11-dev libtiff5 libtirpc-dev libtsan0 libubsan1
-#8 5.977   libwebp7 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxpm4
-#8 5.977   linux-libc-dev lto-disabled-list make manpages manpages-dev media-types
-#8 5.977   netbase openssl patch perl perl-modules-5.34 pinentry-curses python3-dev
-#8 5.977   python3-distutils python3-lib2to3 python3-minimal python3-pkg-resources
-#8 5.977   python3-setuptools python3-wheel python3.10 python3.10-dev
-#8 5.977   python3.10-minimal readline-common rpcsvc-proto ucf xz-utils zlib1g-dev
-#8 5.978 Suggested packages:
-#8 5.978   binutils-doc bzip2-doc cpp-doc gcc-11-locales dbus-user-session
-#8 5.978   libpam-systemd pinentry-gnome3 tor debian-keyring g++-multilib
-#8 5.978   g++-11-multilib gcc-11-doc gcc-multilib autoconf automake libtool flex bison
-#8 5.978   gdb gcc-doc gcc-11-multilib parcimonie xloadimage scdaemon apache2
-#8 5.978   | lighttpd | httpd glibc-doc git bzr libgd-tools gdbm-l10n
-#8 5.978   libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal
-#8 5.978   libsasl2-modules-ldap libsasl2-modules-otp libsasl2-modules-sql
-#8 5.978   libstdc++-11-doc make-doc man-browser ed diffutils-doc perl-doc
-#8 5.978   libterm-readline-gnu-perl | libterm-readline-perl-perl
-#8 5.978   libtap-harness-archive-perl pinentry-doc python3-doc python3-tk python3-venv
-#8 5.978   python-setuptools-doc python3.10-venv python3.10-doc binfmt-support
-#8 5.978   readline-doc
-#8 6.166 The following NEW packages will be installed:
-#8 6.166   binutils binutils-common binutils-x86-64-linux-gnu build-essential bzip2
-#8 6.166   ca-certificates cpp cpp-11 dirmngr dpkg-dev fakeroot fontconfig-config
-
-
-
#8 6.166   fonts-dejavu-core g++ g++-11 gcc gcc-11 gcc-11-base gnupg gnupg-l10n
-#8 6.166   gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm
-#8 6.166   javascript-common libalgorithm-diff-perl libalgorithm-diff-xs-perl
-#8 6.166   libalgorithm-merge-perl libasan6 libassuan0 libatomic1 libbinutils
-#8 6.166   libbrotli1 libbsd0 libc-dev-bin libc-devtools libc6-dev libcc1-0
-#8 6.166   libcrypt-dev libctf-nobfd0 libctf0 libdeflate0 libdpkg-perl libexpat1
-#8 6.166   libexpat1-dev libfakeroot libfile-fcntllock-perl libfontconfig1 libfreetype6
-#8 6.166   libgcc-11-dev libgd3 libgdbm-compat4 libgdbm6 libgomp1 libisl23 libitm1
-#8 6.166   libjbig0 libjpeg-turbo8 libjpeg8 libjs-jquery libjs-sphinxdoc
-#8 6.166   libjs-underscore libksba8 libldap-2.5-0 libldap-common
-#8 6.166   liblocale-gettext-perl liblsan0 libmd0 libmpc3 libmpdec3 libmpfr6 libnpth0
-#8 6.166   libnsl-dev libperl5.34 libpng16-16 libpython3-dev libpython3-stdlib
-#8 6.166   libpython3.10 libpython3.10-dev libpython3.10-minimal libpython3.10-stdlib
-#8 6.167   libquadmath0 libreadline8 libsasl2-2 libsasl2-modules libsasl2-modules-db
-#8 6.167   libsqlite3-0 libstdc++-11-dev libtiff5 libtirpc-dev libtsan0 libubsan1
-#8 6.167   libwebp7 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxpm4
-#8 6.167   linux-libc-dev lto-disabled-list make manpages manpages-dev media-types
-#8 6.167   netbase openssl patch perl perl-modules-5.34 pinentry-curses python3
-#8 6.167   python3-dev python3-distutils python3-lib2to3 python3-minimal python3-pip
-#8 6.167   python3-pkg-resources python3-setuptools python3-wheel python3.10
-#8 6.167   python3.10-dev python3.10-minimal readline-common rpcsvc-proto ucf xz-utils
-#8 6.167   zlib1g-dev
-#8 6.327 0 upgraded, 131 newly installed, 0 to remove and 1 not upgraded.
-#8 6.327 Need to get 101 MB of archives.
-#8 6.327 After this operation, 356 MB of additional disk space will be used.
-#8 6.327 Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 liblocale-gettext-perl amd64 1.07-4build3 [17.1 kB]
-#8 6.468 Get:2 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3.10-minimal amd64 3.10.12-1~22.04.3 [812 kB]
-
-
-
#8 6.831 Get:3 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libexpat1 amd64 2.4.7-1ubuntu0.3 [91.0 kB]
-#8 6.841 Get:4 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3.10-minimal amd64 3.10.12-1~22.04.3 [2242 kB]
-#8 6.971 Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3-minimal amd64 3.10.6-1~22.04 [24.3 kB]
-
-
-
#8 6.971 Get:6 http://archive.ubuntu.com/ubuntu jammy/main amd64 media-types all 7.0.0 [25.5 kB]
-#8 6.972 Get:7 http://archive.ubuntu.com/ubuntu jammy/main amd64 libmpdec3 amd64 2.5.1-2build2 [86.8 kB]
-#8 6.974 Get:8 http://archive.ubuntu.com/ubuntu jammy/main amd64 readline-common all 8.1.2-1 [53.5 kB]
-#8 6.976 Get:9 http://archive.ubuntu.com/ubuntu jammy/main amd64 libreadline8 amd64 8.1.2-1 [153 kB]
-#8 6.980 Get:10 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libsqlite3-0 amd64 3.37.2-2ubuntu0.3 [641 kB]
-#8 6.997 Get:11 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3.10-stdlib amd64 3.10.12-1~22.04.3 [1848 kB]
-#8 7.038 Get:12 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3.10 amd64 3.10.12-1~22.04.3 [508 kB]
-#8 7.046 Get:13 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3-stdlib amd64 3.10.6-1~22.04 [6910 B]
-#8 7.047 Get:14 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3 amd64 3.10.6-1~22.04 [22.8 kB]
-#8 7.047 Get:15 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 perl-modules-5.34 all 5.34.0-3ubuntu1.3 [2976 kB]
-#8 7.114 Get:16 http://archive.ubuntu.com/ubuntu jammy/main amd64 libgdbm6 amd64 1.23-1 [33.9 kB]
-#8 7.115 Get:17 http://archive.ubuntu.com/ubuntu jammy/main amd64 libgdbm-compat4 amd64 1.23-1 [6606 B]
-#8 7.116 Get:18 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libperl5.34 amd64 5.34.0-3ubuntu1.3 [4820 kB]
-#8 7.232 Get:19 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 perl amd64 5.34.0-3ubuntu1.3 [232 kB]
-
-
-
#8 7.234 Get:20 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 openssl amd64 3.0.2-0ubuntu1.15 [1186 kB]
-#8 7.257 Get:21 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 ca-certificates all 20230311ubuntu0.22.04.1 [155 kB]
-#8 7.259 Get:22 http://archive.ubuntu.com/ubuntu jammy/main amd64 libmd0 amd64 1.0.4-1build1 [23.0 kB]
-#8 7.259 Get:23 http://archive.ubuntu.com/ubuntu jammy/main amd64 libbsd0 amd64 0.11.5-1 [44.8 kB]
-#8 7.260 Get:24 http://archive.ubuntu.com/ubuntu jammy/main amd64 netbase all 6.3 [12.9 kB]
-#8 7.260 Get:25 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3-pkg-resources all 59.6.0-1.2ubuntu0.22.04.1 [132 kB]
-#8 7.262 Get:26 http://archive.ubuntu.com/ubuntu jammy/main amd64 ucf all 3.0043 [56.1 kB]
-#8 7.264 Get:27 http://archive.ubuntu.com/ubuntu jammy/main amd64 libpng16-16 amd64 1.6.37-3build5 [191 kB]
-#8 7.323 Get:28 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxau6 amd64 1:1.0.9-1build5 [7634 B]
-#8 7.323 Get:29 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxdmcp6 amd64 1:1.1.3-0ubuntu5 [10.9 kB]
-#8 7.392 Get:30 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxcb1 amd64 1.14-3ubuntu3 [49.0 kB]
-#8 7.393 Get:31 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libx11-data all 2:1.7.5-1ubuntu0.3 [120 kB]
-#8 7.394 Get:32 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libx11-6 amd64 2:1.7.5-1ubuntu0.3 [667 kB]
-#8 7.398 Get:33 http://archive.ubuntu.com/ubuntu jammy/main amd64 manpages all 5.10-1ubuntu1 [1375 kB]
-#8 7.409 Get:34 http://archive.ubuntu.com/ubuntu jammy/main amd64 xz-utils amd64 5.2.5-2ubuntu1 [84.8 kB]
-#8 7.410 Get:35 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 binutils-common amd64 2.38-4ubuntu2.6 [222 kB]
-#8 7.411 Get:36 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libbinutils amd64 2.38-4ubuntu2.6 [662 kB]
-#8 7.462 Get:37 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libctf-nobfd0 amd64 2.38-4ubuntu2.6 [108 kB]
-#8 7.463 Get:38 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libctf0 amd64 2.38-4ubuntu2.6 [103 kB]
-#8 7.464 Get:39 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.38-4ubuntu2.6 [2326 kB]
-#8 7.530 Get:40 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 binutils amd64 2.38-4ubuntu2.6 [3200 B]
-
-
-
#8 7.530 Get:41 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libc-dev-bin amd64 2.35-0ubuntu3.6 [20.3 kB]
-#8 7.531 Get:42 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 linux-libc-dev amd64 5.15.0-100.110 [1348 kB]
-#8 7.541 Get:43 http://archive.ubuntu.com/ubuntu jammy/main amd64 libcrypt-dev amd64 1:4.4.27-1 [112 kB]
-#8 7.542 Get:44 http://archive.ubuntu.com/ubuntu jammy/main amd64 rpcsvc-proto amd64 1.4.2-0ubuntu6 [68.5 kB]
-#8 7.542 Get:45 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libtirpc-dev amd64 1.3.2-2ubuntu0.1 [192 kB]
-#8 7.599 Get:46 http://archive.ubuntu.com/ubuntu jammy/main amd64 libnsl-dev amd64 1.3.0-2build2 [71.3 kB]
-#8 7.600 Get:47 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libc6-dev amd64 2.35-0ubuntu3.6 [2100 kB]
-#8 7.615 Get:48 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gcc-11-base amd64 11.4.0-1ubuntu1~22.04 [20.2 kB]
-#8 7.616 Get:49 http://archive.ubuntu.com/ubuntu jammy/main amd64 libisl23 amd64 0.24-2build1 [727 kB]
-#8 7.667 Get:50 http://archive.ubuntu.com/ubuntu jammy/main amd64 libmpfr6 amd64 4.1.0-3build3 [1425 kB]
-#8 7.679 Get:51 http://archive.ubuntu.com/ubuntu jammy/main amd64 libmpc3 amd64 1.2.1-2build1 [46.9 kB]
-#8 7.680 Get:52 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 cpp-11 amd64 11.4.0-1ubuntu1~22.04 [10.0 MB]
-
-
-
#8 7.902 Get:53 http://archive.ubuntu.com/ubuntu jammy/main amd64 cpp amd64 4:11.2.0-1ubuntu1 [27.7 kB]
-#8 7.946 Get:54 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libcc1-0 amd64 12.3.0-1ubuntu1~22.04 [48.3 kB]
-#8 7.947 Get:55 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libgomp1 amd64 12.3.0-1ubuntu1~22.04 [126 kB]
-#8 7.948 Get:56 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libitm1 amd64 12.3.0-1ubuntu1~22.04 [30.2 kB]
-#8 7.949 Get:57 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libatomic1 amd64 12.3.0-1ubuntu1~22.04 [10.4 kB]
-#8 7.949 Get:58 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libasan6 amd64 11.4.0-1ubuntu1~22.04 [2282 kB]
-#8 7.968 Get:59 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 liblsan0 amd64 12.3.0-1ubuntu1~22.04 [1069 kB]
-#8 8.021 Get:60 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libtsan0 amd64 11.4.0-1ubuntu1~22.04 [2260 kB]
-
-
-
#8 8.087 Get:61 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libubsan1 amd64 12.3.0-1ubuntu1~22.04 [976 kB]
-#8 8.094 Get:62 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libquadmath0 amd64 12.3.0-1ubuntu1~22.04 [154 kB]
-#8 8.095 Get:63 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libgcc-11-dev amd64 11.4.0-1ubuntu1~22.04 [2517 kB]
-#8 8.163 Get:64 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gcc-11 amd64 11.4.0-1ubuntu1~22.04 [20.1 MB]
-
-
-
#8 8.654 Get:65 http://archive.ubuntu.com/ubuntu jammy/main amd64 gcc amd64 4:11.2.0-1ubuntu1 [5112 B]
-#8 8.654 Get:66 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libstdc++-11-dev amd64 11.4.0-1ubuntu1~22.04 [2101 kB]
-#8 8.669 Get:67 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 g++-11 amd64 11.4.0-1ubuntu1~22.04 [11.4 MB]
-
-
-
#8 8.947 Get:68 http://archive.ubuntu.com/ubuntu jammy/main amd64 g++ amd64 4:11.2.0-1ubuntu1 [1412 B]
-#8 8.947 Get:69 http://archive.ubuntu.com/ubuntu jammy/main amd64 make amd64 4.3-4.1build1 [180 kB]
-#8 8.994 Get:70 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libdpkg-perl all 1.21.1ubuntu2.3 [237 kB]
-#8 8.996 Get:71 http://archive.ubuntu.com/ubuntu jammy/main amd64 bzip2 amd64 1.0.8-5build1 [34.8 kB]
-#8 8.996 Get:72 http://archive.ubuntu.com/ubuntu jammy/main amd64 patch amd64 2.7.6-7build2 [109 kB]
-#8 8.997 Get:73 http://archive.ubuntu.com/ubuntu jammy/main amd64 lto-disabled-list all 24 [12.5 kB]
-#8 8.998 Get:74 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 dpkg-dev all 1.21.1ubuntu2.3 [922 kB]
-#8 9.004 Get:75 http://archive.ubuntu.com/ubuntu jammy/main amd64 build-essential amd64 12.9ubuntu3 [4744 B]
-#8 9.004 Get:76 http://archive.ubuntu.com/ubuntu jammy/main amd64 libassuan0 amd64 2.5.5-1build1 [38.2 kB]
-#8 9.019 Get:77 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gpgconf amd64 2.2.27-3ubuntu2.1 [94.2 kB]
-#8 9.020 Get:78 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libksba8 amd64 1.6.0-2ubuntu0.2 [119 kB]
-#8 9.088 Get:79 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libsasl2-modules-db amd64 2.1.27+dfsg2-3ubuntu1.2 [20.5 kB]
-
-
-
#8 9.088 Get:80 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libsasl2-2 amd64 2.1.27+dfsg2-3ubuntu1.2 [53.8 kB]
-#8 9.089 Get:81 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libldap-2.5-0 amd64 2.5.17+dfsg-0ubuntu0.22.04.1 [183 kB]
-#8 9.091 Get:82 http://archive.ubuntu.com/ubuntu jammy/main amd64 libnpth0 amd64 1.6-3build2 [8664 B]
-#8 9.091 Get:83 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 dirmngr amd64 2.2.27-3ubuntu2.1 [293 kB]
-#8 9.094 Get:84 http://archive.ubuntu.com/ubuntu jammy/main amd64 libfakeroot amd64 1.28-1ubuntu1 [31.5 kB]
-#8 9.094 Get:85 http://archive.ubuntu.com/ubuntu jammy/main amd64 fakeroot amd64 1.28-1ubuntu1 [60.4 kB]
-#8 9.095 Get:86 http://archive.ubuntu.com/ubuntu jammy/main amd64 fonts-dejavu-core all 2.37-2build1 [1041 kB]
-#8 9.157 Get:87 http://archive.ubuntu.com/ubuntu jammy/main amd64 fontconfig-config all 2.13.1-4.2ubuntu5 [29.1 kB]
-#8 9.157 Get:88 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gnupg-l10n all 2.2.27-3ubuntu2.1 [54.4 kB]
-#8 9.226 Get:89 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gnupg-utils amd64 2.2.27-3ubuntu2.1 [308 kB]
-#8 9.228 Get:90 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gpg amd64 2.2.27-3ubuntu2.1 [519 kB]
-#8 9.232 Get:91 http://archive.ubuntu.com/ubuntu jammy/main amd64 pinentry-curses amd64 1.1.1-1build2 [34.4 kB]
-#8 9.233 Get:92 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gpg-agent amd64 2.2.27-3ubuntu2.1 [209 kB]
-#8 9.235 Get:93 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gpg-wks-client amd64 2.2.27-3ubuntu2.1 [62.7 kB]
-#8 9.236 Get:94 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gpg-wks-server amd64 2.2.27-3ubuntu2.1 [57.5 kB]
-#8 9.237 Get:95 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gpgsm amd64 2.2.27-3ubuntu2.1 [197 kB]
-#8 9.238 Get:96 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gnupg all 2.2.27-3ubuntu2.1 [315 kB]
-#8 9.295 Get:97 http://archive.ubuntu.com/ubuntu jammy/main amd64 javascript-common all 11+nmu1 [5936 B]
-#8 9.295 Get:98 http://archive.ubuntu.com/ubuntu jammy/main amd64 libalgorithm-diff-perl all 1.201-1 [41.8 kB]
-#8 9.364 Get:99 http://archive.ubuntu.com/ubuntu jammy/main amd64 libalgorithm-diff-xs-perl amd64 0.04-6build3 [11.9 kB]
-
-
-
#8 9.364 Get:100 http://archive.ubuntu.com/ubuntu jammy/main amd64 libalgorithm-merge-perl all 0.08-3 [12.0 kB]
-#8 9.365 Get:101 http://archive.ubuntu.com/ubuntu jammy/main amd64 libbrotli1 amd64 1.0.9-2build6 [315 kB]
-#8 9.507 Get:102 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libfreetype6 amd64 2.11.1+dfsg-1ubuntu0.2 [389 kB]
-
-
-
#8 9.934 Get:103 http://archive.ubuntu.com/ubuntu jammy/main amd64 libfontconfig1 amd64 2.13.1-4.2ubuntu5 [131 kB]
-#8 9.950 Get:104 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjpeg-turbo8 amd64 2.1.2-0ubuntu1 [134 kB]
-#8 9.967 Get:105 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjpeg8 amd64 8c-2ubuntu10 [2264 B]
-#8 9.967 Get:106 http://archive.ubuntu.com/ubuntu jammy/main amd64 libdeflate0 amd64 1.10-2 [70.9 kB]
-#8 9.976 Get:107 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libjbig0 amd64 2.1-3.1ubuntu0.22.04.1 [29.2 kB]
-#8 9.980 Get:108 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libwebp7 amd64 1.2.2-2ubuntu0.22.04.2 [206 kB]
-#8 10.03 Get:109 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libtiff5 amd64 4.3.0-6ubuntu0.8 [185 kB]
-#8 10.05 Get:110 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libxpm4 amd64 1:3.5.12-1ubuntu0.22.04.2 [36.7 kB]
-
-
-
#8 10.05 Get:111 http://archive.ubuntu.com/ubuntu jammy/main amd64 libgd3 amd64 2.3.0-2ubuntu2 [129 kB]
-#8 10.07 Get:112 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libc-devtools amd64 2.35-0ubuntu3.6 [29.0 kB]
-#8 10.07 Get:113 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libexpat1-dev amd64 2.4.7-1ubuntu0.3 [147 kB]
-#8 10.08 Get:114 http://archive.ubuntu.com/ubuntu jammy/main amd64 libfile-fcntllock-perl amd64 0.22-3build7 [33.9 kB]
-#8 10.08 Get:115 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjs-jquery all 3.6.0+dfsg+~3.5.13-1 [321 kB]
-#8 10.10 Get:116 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjs-underscore all 1.13.2~dfsg-2 [118 kB]
-#8 10.11 Get:117 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjs-sphinxdoc all 4.3.2-1 [139 kB]
-#8 10.14 Get:118 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libldap-common all 2.5.17+dfsg-0ubuntu0.22.04.1 [15.8 kB]
-#8 10.14 Get:119 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3.10 amd64 3.10.12-1~22.04.3 [1948 kB]
-#8 10.20 Get:120 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 zlib1g-dev amd64 1:1.2.11.dfsg-2ubuntu9.2 [164 kB]
-#8 10.21 Get:121 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3.10-dev amd64 3.10.12-1~22.04.3 [4762 kB]
-#8 10.32 Get:122 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3-dev amd64 3.10.6-1~22.04 [7166 B]
-
-
-
#8 10.32 Get:123 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libsasl2-modules amd64 2.1.27+dfsg2-3ubuntu1.2 [68.8 kB]
-#8 10.33 Get:124 http://archive.ubuntu.com/ubuntu jammy/main amd64 manpages-dev all 5.10-1ubuntu1 [2309 kB]
-#8 10.39 Get:125 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3.10-dev amd64 3.10.12-1~22.04.3 [507 kB]
-#8 10.39 Get:126 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3-lib2to3 all 3.10.8-1~22.04 [77.6 kB]
-#8 10.39 Get:127 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3-distutils all 3.10.8-1~22.04 [139 kB]
-#8 10.39 Get:128 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3-dev amd64 3.10.6-1~22.04 [26.0 kB]
-#8 10.39 Get:129 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3-setuptools all 59.6.0-1.2ubuntu0.22.04.1 [339 kB]
-#8 10.40 Get:130 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 python3-wheel all 0.37.1-2ubuntu0.22.04.1 [32.0 kB]
-#8 10.42 Get:131 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 python3-pip all 22.0.2+dfsg-1ubuntu0.4 [1305 kB]
-
-
-
#8 10.99 debconf: delaying package configuration, since apt-utils is not installed
-#8 11.01 Fetched 101 MB in 4s (23.7 MB/s)
-#8 11.10 Selecting previously unselected package liblocale-gettext-perl.
-#8 11.10 (Reading database ... 
-
-
-
(Reading database ... 5%
+
#8 0.215 
+#8 0.215 WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
+#8 0.215 
+#8 0.326 Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
+
+
+
#8 0.355 Get:2 http://archive.ubuntu.com/ubuntu jammy InRelease [270 kB]
+#8 0.536 Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
+#8 0.550 Get:4 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [1079 kB]
+#8 0.578 Get:5 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [109 kB]
+#8 0.637 Get:6 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages [1792 kB]
+
+
+
#8 0.705 Get:7 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [1569 kB]
+#8 0.744 Get:8 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [1961 kB]
+#8 0.770 Get:9 http://archive.ubuntu.com/ubuntu jammy/restricted amd64 Packages [164 kB]
+#8 0.773 Get:10 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages [17.5 MB]
+#8 0.775 Get:11 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 Packages [44.6 kB]
+
+
+
#8 0.973 Get:12 http://archive.ubuntu.com/ubuntu jammy/multiverse amd64 Packages [266 kB]
+
+
+
#8 0.975 Get:13 http://archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 Packages [50.4 kB]
+#8 0.975 Get:14 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [1998 kB]
+#8 1.001 Get:15 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [1848 kB]
+#8 1.021 Get:16 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1353 kB]
+#8 1.034 Get:17 http://archive.ubuntu.com/ubuntu jammy-backports/main amd64 Packages [80.9 kB]
+#8 1.034 Get:18 http://archive.ubuntu.com/ubuntu jammy-backports/universe amd64 Packages [33.3 kB]
+
+
+
#8 1.723 Fetched 30.3 MB in 1s (20.7 MB/s)
+#8 1.723 Reading package lists...
+
+
+
#8 2.322 Building dependency tree...
+#8 2.434 Reading state information...
+
+
+
#8 2.445 1 package can be upgraded. Run 'apt list --upgradable' to see it.
+#8 2.450 
+#8 2.450 WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
+#8 2.450 
+#8 2.478 Reading package lists...
+
+
+
#8 3.071 Building dependency tree...
+#8 3.178 Reading state information...
+
+
+
#8 3.286 The following additional packages will be installed:
+#8 3.286   binutils binutils-common binutils-x86-64-linux-gnu build-essential bzip2
+#8 3.286   ca-certificates cpp cpp-11 dirmngr dpkg-dev fakeroot fontconfig-config
+#8 3.286   fonts-dejavu-core g++ g++-11 gcc gcc-11 gcc-11-base gnupg gnupg-l10n
+#8 3.286   gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm
+#8 3.287   javascript-common libalgorithm-diff-perl libalgorithm-diff-xs-perl
+#8 3.287   libalgorithm-merge-perl libasan6 libassuan0 libatomic1 libbinutils
+#8 3.287   libbrotli1 libbsd0 libc-dev-bin libc-devtools libc6-dev libcc1-0
+#8 3.287   libcrypt-dev libctf-nobfd0 libctf0 libdeflate0 libdpkg-perl libexpat1
+#8 3.287   libexpat1-dev libfakeroot libfile-fcntllock-perl libfontconfig1 libfreetype6
+#8 3.287   libgcc-11-dev libgd3 libgdbm-compat4 libgdbm6 libgomp1 libisl23 libitm1
+#8 3.287   libjbig0 libjpeg-turbo8 libjpeg8 libjs-jquery libjs-sphinxdoc
+#8 3.287   libjs-underscore libksba8 libldap-2.5-0 libldap-common
+#8 3.287   liblocale-gettext-perl liblsan0 libmd0 libmpc3 libmpdec3 libmpfr6 libnpth0
+#8 3.287   libnsl-dev libperl5.34 libpng16-16 libpython3-dev libpython3-stdlib
+#8 3.287   libpython3.10 libpython3.10-dev libpython3.10-minimal libpython3.10-stdlib
+#8 3.287   libquadmath0 libreadline8 libsasl2-2 libsasl2-modules libsasl2-modules-db
+#8 3.287   libsqlite3-0 libstdc++-11-dev libtiff5 libtirpc-dev libtsan0 libubsan1
+#8 3.287   libwebp7 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxpm4
+#8 3.287   linux-libc-dev lto-disabled-list make manpages manpages-dev media-types
+#8 3.287   netbase openssl patch perl perl-modules-5.34 pinentry-curses python3-dev
+#8 3.287   python3-distutils python3-lib2to3 python3-minimal python3-pkg-resources
+#8 3.287   python3-setuptools python3-wheel python3.10 python3.10-dev
+#8 3.287   python3.10-minimal readline-common rpcsvc-proto ucf xz-utils zlib1g-dev
+#8 3.288 Suggested packages:
+#8 3.288   binutils-doc bzip2-doc cpp-doc gcc-11-locales dbus-user-session
+#8 3.288   libpam-systemd pinentry-gnome3 tor debian-keyring g++-multilib
+#8 3.288   g++-11-multilib gcc-11-doc gcc-multilib autoconf automake libtool flex bison
+#8 3.288   gdb gcc-doc gcc-11-multilib parcimonie xloadimage scdaemon apache2
+#8 3.288   | lighttpd | httpd glibc-doc git bzr libgd-tools gdbm-l10n
+#8 3.288   libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal
+#8 3.288   libsasl2-modules-ldap libsasl2-modules-otp libsasl2-modules-sql
+#8 3.288   libstdc++-11-doc make-doc man-browser ed diffutils-doc perl-doc
+#8 3.288   libterm-readline-gnu-perl | libterm-readline-perl-perl
+#8 3.288   libtap-harness-archive-perl pinentry-doc python3-doc python3-tk python3-venv
+#8 3.288   python-setuptools-doc python3.10-venv python3.10-doc binfmt-support
+#8 3.288   readline-doc
+#8 3.475 The following NEW packages will be installed:
+#8 3.475   binutils binutils-common binutils-x86-64-linux-gnu build-essential bzip2
+#8 3.475   ca-certificates cpp cpp-11 dirmngr dpkg-dev fakeroot fontconfig-config
+
+
+
#8 3.475   fonts-dejavu-core g++ g++-11 gcc gcc-11 gcc-11-base gnupg gnupg-l10n
+#8 3.475   gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm
+#8 3.475   javascript-common libalgorithm-diff-perl libalgorithm-diff-xs-perl
+#8 3.475   libalgorithm-merge-perl libasan6 libassuan0 libatomic1 libbinutils
+#8 3.475   libbrotli1 libbsd0 libc-dev-bin libc-devtools libc6-dev libcc1-0
+#8 3.476   libcrypt-dev libctf-nobfd0 libctf0 libdeflate0 libdpkg-perl libexpat1
+#8 3.476   libexpat1-dev libfakeroot libfile-fcntllock-perl libfontconfig1 libfreetype6
+#8 3.476   libgcc-11-dev libgd3 libgdbm-compat4 libgdbm6 libgomp1 libisl23 libitm1
+#8 3.476   libjbig0 libjpeg-turbo8 libjpeg8 libjs-jquery libjs-sphinxdoc
+#8 3.476   libjs-underscore libksba8 libldap-2.5-0 libldap-common
+#8 3.476   liblocale-gettext-perl liblsan0 libmd0 libmpc3 libmpdec3 libmpfr6 libnpth0
+#8 3.476   libnsl-dev libperl5.34 libpng16-16 libpython3-dev libpython3-stdlib
+#8 3.476   libpython3.10 libpython3.10-dev libpython3.10-minimal libpython3.10-stdlib
+#8 3.476   libquadmath0 libreadline8 libsasl2-2 libsasl2-modules libsasl2-modules-db
+#8 3.476   libsqlite3-0 libstdc++-11-dev libtiff5 libtirpc-dev libtsan0 libubsan1
+#8 3.476   libwebp7 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxpm4
+#8 3.476   linux-libc-dev lto-disabled-list make manpages manpages-dev media-types
+#8 3.476   netbase openssl patch perl perl-modules-5.34 pinentry-curses python3
+#8 3.476   python3-dev python3-distutils python3-lib2to3 python3-minimal python3-pip
+#8 3.476   python3-pkg-resources python3-setuptools python3-wheel python3.10
+#8 3.476   python3.10-dev python3.10-minimal readline-common rpcsvc-proto ucf xz-utils
+#8 3.476   zlib1g-dev
+#8 3.565 0 upgraded, 131 newly installed, 0 to remove and 1 not upgraded.
+#8 3.565 Need to get 101 MB of archives.
+#8 3.565 After this operation, 356 MB of additional disk space will be used.
+#8 3.565 Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 liblocale-gettext-perl amd64 1.07-4build3 [17.1 kB]
+#8 3.630 Get:2 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3.10-minimal amd64 3.10.12-1~22.04.3 [812 kB]
+#8 3.799 Get:3 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libexpat1 amd64 2.4.7-1ubuntu0.3 [91.0 kB]
+
+
+
#8 3.804 Get:4 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3.10-minimal amd64 3.10.12-1~22.04.3 [2242 kB]
+#8 3.864 Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3-minimal amd64 3.10.6-1~22.04 [24.3 kB]
+#8 3.864 Get:6 http://archive.ubuntu.com/ubuntu jammy/main amd64 media-types all 7.0.0 [25.5 kB]
+#8 3.865 Get:7 http://archive.ubuntu.com/ubuntu jammy/main amd64 libmpdec3 amd64 2.5.1-2build2 [86.8 kB]
+#8 3.866 Get:8 http://archive.ubuntu.com/ubuntu jammy/main amd64 readline-common all 8.1.2-1 [53.5 kB]
+#8 3.866 Get:9 http://archive.ubuntu.com/ubuntu jammy/main amd64 libreadline8 amd64 8.1.2-1 [153 kB]
+#8 3.868 Get:10 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libsqlite3-0 amd64 3.37.2-2ubuntu0.3 [641 kB]
+#8 3.877 Get:11 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3.10-stdlib amd64 3.10.12-1~22.04.3 [1848 kB]
+#8 3.899 Get:12 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3.10 amd64 3.10.12-1~22.04.3 [508 kB]
+#8 3.902 Get:13 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3-stdlib amd64 3.10.6-1~22.04 [6910 B]
+#8 3.902 Get:14 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3 amd64 3.10.6-1~22.04 [22.8 kB]
+#8 3.903 Get:15 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 perl-modules-5.34 all 5.34.0-3ubuntu1.3 [2976 kB]
+#8 3.935 Get:16 http://archive.ubuntu.com/ubuntu jammy/main amd64 libgdbm6 amd64 1.23-1 [33.9 kB]
+#8 3.935 Get:17 http://archive.ubuntu.com/ubuntu jammy/main amd64 libgdbm-compat4 amd64 1.23-1 [6606 B]
+#8 3.936 Get:18 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libperl5.34 amd64 5.34.0-3ubuntu1.3 [4820 kB]
+#8 3.988 Get:19 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 perl amd64 5.34.0-3ubuntu1.3 [232 kB]
+#8 3.990 Get:20 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 openssl amd64 3.0.2-0ubuntu1.15 [1186 kB]
+#8 4.001 Get:21 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 ca-certificates all 20230311ubuntu0.22.04.1 [155 kB]
+#8 4.002 Get:22 http://archive.ubuntu.com/ubuntu jammy/main amd64 libmd0 amd64 1.0.4-1build1 [23.0 kB]
+
+
+
#8 4.003 Get:23 http://archive.ubuntu.com/ubuntu jammy/main amd64 libbsd0 amd64 0.11.5-1 [44.8 kB]
+#8 4.003 Get:24 http://archive.ubuntu.com/ubuntu jammy/main amd64 netbase all 6.3 [12.9 kB]
+#8 4.004 Get:25 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3-pkg-resources all 59.6.0-1.2ubuntu0.22.04.1 [132 kB]
+#8 4.005 Get:26 http://archive.ubuntu.com/ubuntu jammy/main amd64 ucf all 3.0043 [56.1 kB]
+#8 4.006 Get:27 http://archive.ubuntu.com/ubuntu jammy/main amd64 libpng16-16 amd64 1.6.37-3build5 [191 kB]
+#8 4.029 Get:28 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxau6 amd64 1:1.0.9-1build5 [7634 B]
+#8 4.030 Get:29 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxdmcp6 amd64 1:1.1.3-0ubuntu5 [10.9 kB]
+#8 4.061 Get:30 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxcb1 amd64 1.14-3ubuntu3 [49.0 kB]
+#8 4.062 Get:31 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libx11-data all 2:1.7.5-1ubuntu0.3 [120 kB]
+#8 4.063 Get:32 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libx11-6 amd64 2:1.7.5-1ubuntu0.3 [667 kB]
+#8 4.067 Get:33 http://archive.ubuntu.com/ubuntu jammy/main amd64 manpages all 5.10-1ubuntu1 [1375 kB]
+#8 4.076 Get:34 http://archive.ubuntu.com/ubuntu jammy/main amd64 xz-utils amd64 5.2.5-2ubuntu1 [84.8 kB]
+#8 4.076 Get:35 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 binutils-common amd64 2.38-4ubuntu2.6 [222 kB]
+#8 4.078 Get:36 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libbinutils amd64 2.38-4ubuntu2.6 [662 kB]
+#8 4.094 Get:37 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libctf-nobfd0 amd64 2.38-4ubuntu2.6 [108 kB]
+#8 4.095 Get:38 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libctf0 amd64 2.38-4ubuntu2.6 [103 kB]
+#8 4.096 Get:39 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.38-4ubuntu2.6 [2326 kB]
+#8 4.128 Get:40 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 binutils amd64 2.38-4ubuntu2.6 [3200 B]
+
+
+
#8 4.129 Get:41 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libc-dev-bin amd64 2.35-0ubuntu3.6 [20.3 kB]
+#8 4.129 Get:42 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 linux-libc-dev amd64 5.15.0-100.110 [1348 kB]
+#8 4.137 Get:43 http://archive.ubuntu.com/ubuntu jammy/main amd64 libcrypt-dev amd64 1:4.4.27-1 [112 kB]
+#8 4.138 Get:44 http://archive.ubuntu.com/ubuntu jammy/main amd64 rpcsvc-proto amd64 1.4.2-0ubuntu6 [68.5 kB]
+#8 4.139 Get:45 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libtirpc-dev amd64 1.3.2-2ubuntu0.1 [192 kB]
+#8 4.157 Get:46 http://archive.ubuntu.com/ubuntu jammy/main amd64 libnsl-dev amd64 1.3.0-2build2 [71.3 kB]
+#8 4.158 Get:47 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libc6-dev amd64 2.35-0ubuntu3.6 [2100 kB]
+#8 4.171 Get:48 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gcc-11-base amd64 11.4.0-1ubuntu1~22.04 [20.2 kB]
+#8 4.189 Get:49 http://archive.ubuntu.com/ubuntu jammy/main amd64 libisl23 amd64 0.24-2build1 [727 kB]
+#8 4.194 Get:50 http://archive.ubuntu.com/ubuntu jammy/main amd64 libmpfr6 amd64 4.1.0-3build3 [1425 kB]
+#8 4.203 Get:51 http://archive.ubuntu.com/ubuntu jammy/main amd64 libmpc3 amd64 1.2.1-2build1 [46.9 kB]
+#8 4.203 Get:52 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 cpp-11 amd64 11.4.0-1ubuntu1~22.04 [10.0 MB]
+#8 4.335 Get:53 http://archive.ubuntu.com/ubuntu jammy/main amd64 cpp amd64 4:11.2.0-1ubuntu1 [27.7 kB]
+#8 4.335 Get:54 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libcc1-0 amd64 12.3.0-1ubuntu1~22.04 [48.3 kB]
+#8 4.336 Get:55 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libgomp1 amd64 12.3.0-1ubuntu1~22.04 [126 kB]
+#8 4.337 Get:56 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libitm1 amd64 12.3.0-1ubuntu1~22.04 [30.2 kB]
+#8 4.337 Get:57 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libatomic1 amd64 12.3.0-1ubuntu1~22.04 [10.4 kB]
+#8 4.337 Get:58 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libasan6 amd64 11.4.0-1ubuntu1~22.04 [2282 kB]
+#8 4.363 Get:59 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 liblsan0 amd64 12.3.0-1ubuntu1~22.04 [1069 kB]
+#8 4.375 Get:60 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libtsan0 amd64 11.4.0-1ubuntu1~22.04 [2260 kB]
+#8 4.400 Get:61 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libubsan1 amd64 12.3.0-1ubuntu1~22.04 [976 kB]
+#8 4.410 Get:62 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libquadmath0 amd64 12.3.0-1ubuntu1~22.04 [154 kB]
+#8 4.412 Get:63 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libgcc-11-dev amd64 11.4.0-1ubuntu1~22.04 [2517 kB]
+#8 4.442 Get:64 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gcc-11 amd64 11.4.0-1ubuntu1~22.04 [20.1 MB]
+
+
+
#8 4.675 Get:65 http://archive.ubuntu.com/ubuntu jammy/main amd64 gcc amd64 4:11.2.0-1ubuntu1 [5112 B]
+#8 4.675 Get:66 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libstdc++-11-dev amd64 11.4.0-1ubuntu1~22.04 [2101 kB]
+#8 4.695 Get:67 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 g++-11 amd64 11.4.0-1ubuntu1~22.04 [11.4 MB]
+#8 4.828 Get:68 http://archive.ubuntu.com/ubuntu jammy/main amd64 g++ amd64 4:11.2.0-1ubuntu1 [1412 B]
+
+
+
#8 4.828 Get:69 http://archive.ubuntu.com/ubuntu jammy/main amd64 make amd64 4.3-4.1build1 [180 kB]
+#8 4.830 Get:70 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libdpkg-perl all 1.21.1ubuntu2.3 [237 kB]
+#8 4.833 Get:71 http://archive.ubuntu.com/ubuntu jammy/main amd64 bzip2 amd64 1.0.8-5build1 [34.8 kB]
+#8 4.833 Get:72 http://archive.ubuntu.com/ubuntu jammy/main amd64 patch amd64 2.7.6-7build2 [109 kB]
+#8 4.834 Get:73 http://archive.ubuntu.com/ubuntu jammy/main amd64 lto-disabled-list all 24 [12.5 kB]
+#8 4.834 Get:74 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 dpkg-dev all 1.21.1ubuntu2.3 [922 kB]
+#8 4.841 Get:75 http://archive.ubuntu.com/ubuntu jammy/main amd64 build-essential amd64 12.9ubuntu3 [4744 B]
+#8 4.842 Get:76 http://archive.ubuntu.com/ubuntu jammy/main amd64 libassuan0 amd64 2.5.5-1build1 [38.2 kB]
+#8 4.862 Get:77 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gpgconf amd64 2.2.27-3ubuntu2.1 [94.2 kB]
+#8 4.864 Get:78 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libksba8 amd64 1.6.0-2ubuntu0.2 [119 kB]
+#8 4.895 Get:79 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libsasl2-modules-db amd64 2.1.27+dfsg2-3ubuntu1.2 [20.5 kB]
+#8 4.895 Get:80 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libsasl2-2 amd64 2.1.27+dfsg2-3ubuntu1.2 [53.8 kB]
+#8 4.896 Get:81 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libldap-2.5-0 amd64 2.5.17+dfsg-0ubuntu0.22.04.1 [183 kB]
+#8 4.897 Get:82 http://archive.ubuntu.com/ubuntu jammy/main amd64 libnpth0 amd64 1.6-3build2 [8664 B]
+#8 4.897 Get:83 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 dirmngr amd64 2.2.27-3ubuntu2.1 [293 kB]
+#8 4.899 Get:84 http://archive.ubuntu.com/ubuntu jammy/main amd64 libfakeroot amd64 1.28-1ubuntu1 [31.5 kB]
+#8 4.900 Get:85 http://archive.ubuntu.com/ubuntu jammy/main amd64 fakeroot amd64 1.28-1ubuntu1 [60.4 kB]
+#8 4.901 Get:86 http://archive.ubuntu.com/ubuntu jammy/main amd64 fonts-dejavu-core all 2.37-2build1 [1041 kB]
+#8 4.927 Get:87 http://archive.ubuntu.com/ubuntu jammy/main amd64 fontconfig-config all 2.13.1-4.2ubuntu5 [29.1 kB]
+#8 4.927 Get:88 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gnupg-l10n all 2.2.27-3ubuntu2.1 [54.4 kB]
+#8 4.959 Get:89 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gnupg-utils amd64 2.2.27-3ubuntu2.1 [308 kB]
+#8 4.961 Get:90 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gpg amd64 2.2.27-3ubuntu2.1 [519 kB]
+#8 4.965 Get:91 http://archive.ubuntu.com/ubuntu jammy/main amd64 pinentry-curses amd64 1.1.1-1build2 [34.4 kB]
+#8 4.966 Get:92 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gpg-agent amd64 2.2.27-3ubuntu2.1 [209 kB]
+#8 4.968 Get:93 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gpg-wks-client amd64 2.2.27-3ubuntu2.1 [62.7 kB]
+#8 4.968 Get:94 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gpg-wks-server amd64 2.2.27-3ubuntu2.1 [57.5 kB]
+#8 4.969 Get:95 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gpgsm amd64 2.2.27-3ubuntu2.1 [197 kB]
+#8 4.971 Get:96 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 gnupg all 2.2.27-3ubuntu2.1 [315 kB]
+#8 4.991 Get:97 http://archive.ubuntu.com/ubuntu jammy/main amd64 javascript-common all 11+nmu1 [5936 B]
+#8 4.991 Get:98 http://archive.ubuntu.com/ubuntu jammy/main amd64 libalgorithm-diff-perl all 1.201-1 [41.8 kB]
+#8 5.023 Get:99 http://archive.ubuntu.com/ubuntu jammy/main amd64 libalgorithm-diff-xs-perl amd64 0.04-6build3 [11.9 kB]
+#8 5.024 Get:100 http://archive.ubuntu.com/ubuntu jammy/main amd64 libalgorithm-merge-perl all 0.08-3 [12.0 kB]
+#8 5.024 Get:101 http://archive.ubuntu.com/ubuntu jammy/main amd64 libbrotli1 amd64 1.0.9-2build6 [315 kB]
+#8 5.092 Get:102 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libfreetype6 amd64 2.11.1+dfsg-1ubuntu0.2 [389 kB]
+
+
+
#8 5.290 Get:103 http://archive.ubuntu.com/ubuntu jammy/main amd64 libfontconfig1 amd64 2.13.1-4.2ubuntu5 [131 kB]
+#8 5.297 Get:104 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjpeg-turbo8 amd64 2.1.2-0ubuntu1 [134 kB]
+#8 5.305 Get:105 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjpeg8 amd64 8c-2ubuntu10 [2264 B]
+#8 5.306 Get:106 http://archive.ubuntu.com/ubuntu jammy/main amd64 libdeflate0 amd64 1.10-2 [70.9 kB]
+#8 5.309 Get:107 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libjbig0 amd64 2.1-3.1ubuntu0.22.04.1 [29.2 kB]
+#8 5.311 Get:108 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libwebp7 amd64 1.2.2-2ubuntu0.22.04.2 [206 kB]
+#8 5.332 Get:109 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libtiff5 amd64 4.3.0-6ubuntu0.8 [185 kB]
+#8 5.343 Get:110 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libxpm4 amd64 1:3.5.12-1ubuntu0.22.04.2 [36.7 kB]
+#8 5.345 Get:111 http://archive.ubuntu.com/ubuntu jammy/main amd64 libgd3 amd64 2.3.0-2ubuntu2 [129 kB]
+#8 5.352 Get:112 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libc-devtools amd64 2.35-0ubuntu3.6 [29.0 kB]
+#8 5.354 Get:113 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libexpat1-dev amd64 2.4.7-1ubuntu0.3 [147 kB]
+#8 5.358 Get:114 http://archive.ubuntu.com/ubuntu jammy/main amd64 libfile-fcntllock-perl amd64 0.22-3build7 [33.9 kB]
+#8 5.359 Get:115 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjs-jquery all 3.6.0+dfsg+~3.5.13-1 [321 kB]
+#8 5.367 Get:116 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjs-underscore all 1.13.2~dfsg-2 [118 kB]
+#8 5.371 Get:117 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjs-sphinxdoc all 4.3.2-1 [139 kB]
+#8 5.386 Get:118 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libldap-common all 2.5.17+dfsg-0ubuntu0.22.04.1 [15.8 kB]
+#8 5.386 Get:119 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3.10 amd64 3.10.12-1~22.04.3 [1948 kB]
+#8 5.414 Get:120 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 zlib1g-dev amd64 1:1.2.11.dfsg-2ubuntu9.2 [164 kB]
+
+
+
#8 5.419 Get:121 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3.10-dev amd64 3.10.12-1~22.04.3 [4762 kB]
+#8 5.470 Get:122 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3-dev amd64 3.10.6-1~22.04 [7166 B]
+#8 5.470 Get:123 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libsasl2-modules amd64 2.1.27+dfsg2-3ubuntu1.2 [68.8 kB]
+#8 5.471 Get:124 http://archive.ubuntu.com/ubuntu jammy/main amd64 manpages-dev all 5.10-1ubuntu1 [2309 kB]
+#8 5.498 Get:125 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3.10-dev amd64 3.10.12-1~22.04.3 [507 kB]
+#8 5.501 Get:126 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3-lib2to3 all 3.10.8-1~22.04 [77.6 kB]
+#8 5.502 Get:127 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3-distutils all 3.10.8-1~22.04 [139 kB]
+#8 5.503 Get:128 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3-dev amd64 3.10.6-1~22.04 [26.0 kB]
+#8 5.504 Get:129 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3-setuptools all 59.6.0-1.2ubuntu0.22.04.1 [339 kB]
+#8 5.509 Get:130 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 python3-wheel all 0.37.1-2ubuntu0.22.04.1 [32.0 kB]
+#8 5.513 Get:131 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 python3-pip all 22.0.2+dfsg-1ubuntu0.4 [1305 kB]
+#8 5.658 debconf: delaying package configuration, since apt-utils is not installed
+#8 5.678 Fetched 101 MB in 2s (49.6 MB/s)
+#8 5.697 Selecting previously unselected package liblocale-gettext-perl.
+#8 5.697 (Reading database ... 
+(Reading database ... 5%
 (Reading database ... 10%
 (Reading database ... 15%
 (Reading database ... 20%
@@ -962,28 +932,26 @@ 

BACnet Network Setup

-
-
#8 11.32 Preparing to unpack .../liblocale-gettext-perl_1.07-4build3_amd64.deb ...
-#8 11.32 Unpacking liblocale-gettext-perl (1.07-4build3) ...
-#8 11.34 Selecting previously unselected package libpython3.10-minimal:amd64.
-#8 11.34 Preparing to unpack .../libpython3.10-minimal_3.10.12-1~22.04.3_amd64.deb ...
-#8 11.34 Unpacking libpython3.10-minimal:amd64 (3.10.12-1~22.04.3) ...
-#8 11.42 Selecting previously unselected package libexpat1:amd64.
-#8 11.42 Preparing to unpack .../libexpat1_2.4.7-1ubuntu0.3_amd64.deb ...
-#8 11.42 Unpacking libexpat1:amd64 (2.4.7-1ubuntu0.3) ...
-
-
-
#8 11.44 Selecting previously unselected package python3.10-minimal.
-#8 11.44 Preparing to unpack .../python3.10-minimal_3.10.12-1~22.04.3_amd64.deb ...
-#8 11.45 Unpacking python3.10-minimal (3.10.12-1~22.04.3) ...
-#8 11.49 Setting up libpython3.10-minimal:amd64 (3.10.12-1~22.04.3) ...
-#8 11.50 Setting up libexpat1:amd64 (2.4.7-1ubuntu0.3) ...
-#8 11.50 Setting up python3.10-minimal (3.10.12-1~22.04.3) ...
-
-
-
#8 12.05 Selecting previously unselected package python3-minimal.
-#8 12.05 (Reading database ... 
+#8 5.719 Preparing to unpack .../liblocale-gettext-perl_1.07-4build3_amd64.deb ...
+#8 5.720 Unpacking liblocale-gettext-perl (1.07-4build3) ...
+#8 5.735 Selecting previously unselected package libpython3.10-minimal:amd64.
+#8 5.736 Preparing to unpack .../libpython3.10-minimal_3.10.12-1~22.04.3_amd64.deb ...
+#8 5.737 Unpacking libpython3.10-minimal:amd64 (3.10.12-1~22.04.3) ...
+#8 5.809 Selecting previously unselected package libexpat1:amd64.
+
+
+
#8 5.810 Preparing to unpack .../libexpat1_2.4.7-1ubuntu0.3_amd64.deb ...
+#8 5.812 Unpacking libexpat1:amd64 (2.4.7-1ubuntu0.3) ...
+#8 5.829 Selecting previously unselected package python3.10-minimal.
+#8 5.829 Preparing to unpack .../python3.10-minimal_3.10.12-1~22.04.3_amd64.deb ...
+#8 5.833 Unpacking python3.10-minimal (3.10.12-1~22.04.3) ...
+#8 5.872 Setting up libpython3.10-minimal:amd64 (3.10.12-1~22.04.3) ...
+#8 5.877 Setting up libexpat1:amd64 (2.4.7-1ubuntu0.3) ...
+#8 5.880 Setting up python3.10-minimal (3.10.12-1~22.04.3) ...
+
+
+
-
#8 12.16 Preparing to unpack .../5-libsqlite3-0_3.37.2-2ubuntu0.3_amd64.deb ...
-#8 12.16 Unpacking libsqlite3-0:amd64 (3.37.2-2ubuntu0.3) ...
-#8 12.18 Selecting previously unselected package libpython3.10-stdlib:amd64.
-#8 12.18 Preparing to unpack .../6-libpython3.10-stdlib_3.10.12-1~22.04.3_amd64.deb ...
-#8 12.18 Unpacking libpython3.10-stdlib:amd64 (3.10.12-1~22.04.3) ...
-#8 12.27 Selecting previously unselected package python3.10.
-#8 12.27 Preparing to unpack .../7-python3.10_3.10.12-1~22.04.3_amd64.deb ...
-#8 12.27 Unpacking python3.10 (3.10.12-1~22.04.3) ...
-#8 12.29 Selecting previously unselected package libpython3-stdlib:amd64.
-#8 12.29 Preparing to unpack .../8-libpython3-stdlib_3.10.6-1~22.04_amd64.deb ...
-#8 12.29 Unpacking libpython3-stdlib:amd64 (3.10.6-1~22.04) ...
-#8 12.31 Setting up python3-minimal (3.10.6-1~22.04) ...
-#8 12.44 Selecting previously unselected package python3.
-#8 12.44 (Reading database ... 
+#8 6.395 Preparing to unpack .../0-python3-minimal_3.10.6-1~22.04_amd64.deb ...
+#8 6.396 Unpacking python3-minimal (3.10.6-1~22.04) ...
+#8 6.413 Selecting previously unselected package media-types.
+#8 6.413 Preparing to unpack .../1-media-types_7.0.0_all.deb ...
+#8 6.414 Unpacking media-types (7.0.0) ...
+#8 6.432 Selecting previously unselected package libmpdec3:amd64.
+#8 6.433 Preparing to unpack .../2-libmpdec3_2.5.1-2build2_amd64.deb ...
+#8 6.434 Unpacking libmpdec3:amd64 (2.5.1-2build2) ...
+#8 6.450 Selecting previously unselected package readline-common.
+#8 6.450 Preparing to unpack .../3-readline-common_8.1.2-1_all.deb ...
+#8 6.452 Unpacking readline-common (8.1.2-1) ...
+#8 6.468 Selecting previously unselected package libreadline8:amd64.
+#8 6.468 Preparing to unpack .../4-libreadline8_8.1.2-1_amd64.deb ...
+#8 6.470 Unpacking libreadline8:amd64 (8.1.2-1) ...
+#8 6.487 Selecting previously unselected package libsqlite3-0:amd64.
+#8 6.488 Preparing to unpack .../5-libsqlite3-0_3.37.2-2ubuntu0.3_amd64.deb ...
+#8 6.489 Unpacking libsqlite3-0:amd64 (3.37.2-2ubuntu0.3) ...
+#8 6.508 Selecting previously unselected package libpython3.10-stdlib:amd64.
+
+
+
#8 6.509 Preparing to unpack .../6-libpython3.10-stdlib_3.10.12-1~22.04.3_amd64.deb ...
+#8 6.510 Unpacking libpython3.10-stdlib:amd64 (3.10.12-1~22.04.3) ...
+#8 6.597 Selecting previously unselected package python3.10.
+#8 6.598 Preparing to unpack .../7-python3.10_3.10.12-1~22.04.3_amd64.deb ...
+#8 6.598 Unpacking python3.10 (3.10.12-1~22.04.3) ...
+#8 6.615 Selecting previously unselected package libpython3-stdlib:amd64.
+#8 6.616 Preparing to unpack .../8-libpython3-stdlib_3.10.6-1~22.04_amd64.deb ...
+#8 6.618 Unpacking libpython3-stdlib:amd64 (3.10.6-1~22.04) ...
+#8 6.633 Setting up python3-minimal (3.10.6-1~22.04) ...
+#8 6.761 Selecting previously unselected package python3.
+#8 6.761 (Reading database ... 
 
-
#8 12.75 Preparing to unpack .../002-libgdbm6_1.23-1_amd64.deb ...
-#8 12.75 Unpacking libgdbm6:amd64 (1.23-1) ...
-#8 12.77 Selecting previously unselected package libgdbm-compat4:amd64.
-#8 12.77 Preparing to unpack .../003-libgdbm-compat4_1.23-1_amd64.deb ...
-#8 12.77 Unpacking libgdbm-compat4:amd64 (1.23-1) ...
-#8 12.79 Selecting previously unselected package libperl5.34:amd64.
-#8 12.79 Preparing to unpack .../004-libperl5.34_5.34.0-3ubuntu1.3_amd64.deb ...
-#8 12.80 Unpacking libperl5.34:amd64 (5.34.0-3ubuntu1.3) ...
-#8 12.97 Selecting previously unselected package perl.
-#8 12.98 Preparing to unpack .../005-perl_5.34.0-3ubuntu1.3_amd64.deb ...
-#8 12.99 Unpacking perl (5.34.0-3ubuntu1.3) ...
-#8 13.02 Selecting previously unselected package openssl.
-#8 13.02 Preparing to unpack .../006-openssl_3.0.2-0ubuntu1.15_amd64.deb ...
-#8 13.02 Unpacking openssl (3.0.2-0ubuntu1.15) ...
-#8 13.06 Selecting previously unselected package ca-certificates.
-#8 13.06 Preparing to unpack .../007-ca-certificates_20230311ubuntu0.22.04.1_all.deb ...
-#8 13.06 Unpacking ca-certificates (20230311ubuntu0.22.04.1) ...
-#8 13.11 Selecting previously unselected package libmd0:amd64.
-
-
-
#8 13.11 Preparing to unpack .../008-libmd0_1.0.4-1build1_amd64.deb ...
-#8 13.11 Unpacking libmd0:amd64 (1.0.4-1build1) ...
-#8 13.13 Selecting previously unselected package libbsd0:amd64.
-#8 13.13 Preparing to unpack .../009-libbsd0_0.11.5-1_amd64.deb ...
-#8 13.13 Unpacking libbsd0:amd64 (0.11.5-1) ...
-#8 13.15 Selecting previously unselected package netbase.
-#8 13.15 Preparing to unpack .../010-netbase_6.3_all.deb ...
-#8 13.15 Unpacking netbase (6.3) ...
-#8 13.17 Selecting previously unselected package python3-pkg-resources.
-#8 13.17 Preparing to unpack .../011-python3-pkg-resources_59.6.0-1.2ubuntu0.22.04.1_all.deb ...
-#8 13.17 Unpacking python3-pkg-resources (59.6.0-1.2ubuntu0.22.04.1) ...
-#8 13.19 Selecting previously unselected package ucf.
-#8 13.19 Preparing to unpack .../012-ucf_3.0043_all.deb ...
-#8 13.20 Moving old data out of the way
-#8 13.21 Unpacking ucf (3.0043) ...
-#8 13.23 Selecting previously unselected package libpng16-16:amd64.
-#8 13.23 Preparing to unpack .../013-libpng16-16_1.6.37-3build5_amd64.deb ...
-#8 13.23 Unpacking libpng16-16:amd64 (1.6.37-3build5) ...
-#8 13.25 Selecting previously unselected package libxau6:amd64.
-#8 13.25 Preparing to unpack .../014-libxau6_1%3a1.0.9-1build5_amd64.deb ...
-#8 13.25 Unpacking libxau6:amd64 (1:1.0.9-1build5) ...
-#8 13.26 Selecting previously unselected package libxdmcp6:amd64.
-#8 13.26 Preparing to unpack .../015-libxdmcp6_1%3a1.1.3-0ubuntu5_amd64.deb ...
-#8 13.26 Unpacking libxdmcp6:amd64 (1:1.1.3-0ubuntu5) ...
-#8 13.28 Selecting previously unselected package libxcb1:amd64.
-#8 13.28 Preparing to unpack .../016-libxcb1_1.14-3ubuntu3_amd64.deb ...
-#8 13.28 Unpacking libxcb1:amd64 (1.14-3ubuntu3) ...
-#8 13.29 Selecting previously unselected package libx11-data.
-#8 13.29 Preparing to unpack .../017-libx11-data_2%3a1.7.5-1ubuntu0.3_all.deb ...
-#8 13.29 Unpacking libx11-data (2:1.7.5-1ubuntu0.3) ...
-#8 13.35 Selecting previously unselected package libx11-6:amd64.
-
-
-
#8 13.35 Preparing to unpack .../018-libx11-6_2%3a1.7.5-1ubuntu0.3_amd64.deb ...
-#8 13.35 Unpacking libx11-6:amd64 (2:1.7.5-1ubuntu0.3) ...
-#8 13.37 Selecting previously unselected package manpages.
-#8 13.37 Preparing to unpack .../019-manpages_5.10-1ubuntu1_all.deb ...
-#8 13.37 Unpacking manpages (5.10-1ubuntu1) ...
-#8 13.46 Selecting previously unselected package xz-utils.
-#8 13.46 Preparing to unpack .../020-xz-utils_5.2.5-2ubuntu1_amd64.deb ...
-#8 13.46 Unpacking xz-utils (5.2.5-2ubuntu1) ...
-#8 13.48 Selecting previously unselected package binutils-common:amd64.
-#8 13.48 Preparing to unpack .../021-binutils-common_2.38-4ubuntu2.6_amd64.deb ...
-#8 13.48 Unpacking binutils-common:amd64 (2.38-4ubuntu2.6) ...
-#8 13.50 Selecting previously unselected package libbinutils:amd64.
-#8 13.50 Preparing to unpack .../022-libbinutils_2.38-4ubuntu2.6_amd64.deb ...
-#8 13.50 Unpacking libbinutils:amd64 (2.38-4ubuntu2.6) ...
-#8 13.53 Selecting previously unselected package libctf-nobfd0:amd64.
-#8 13.53 Preparing to unpack .../023-libctf-nobfd0_2.38-4ubuntu2.6_amd64.deb ...
-#8 13.53 Unpacking libctf-nobfd0:amd64 (2.38-4ubuntu2.6) ...
-#8 13.54 Selecting previously unselected package libctf0:amd64.
-#8 13.54 Preparing to unpack .../024-libctf0_2.38-4ubuntu2.6_amd64.deb ...
-#8 13.54 Unpacking libctf0:amd64 (2.38-4ubuntu2.6) ...
-#8 13.56 Selecting previously unselected package binutils-x86-64-linux-gnu.
-
-
-
#8 13.56 Preparing to unpack .../025-binutils-x86-64-linux-gnu_2.38-4ubuntu2.6_amd64.deb ...
-#8 13.56 Unpacking binutils-x86-64-linux-gnu (2.38-4ubuntu2.6) ...
-#8 13.64 Selecting previously unselected package binutils.
-#8 13.64 Preparing to unpack .../026-binutils_2.38-4ubuntu2.6_amd64.deb ...
-#8 13.64 Unpacking binutils (2.38-4ubuntu2.6) ...
-#8 13.66 Selecting previously unselected package libc-dev-bin.
-#8 13.66 Preparing to unpack .../027-libc-dev-bin_2.35-0ubuntu3.6_amd64.deb ...
-#8 13.66 Unpacking libc-dev-bin (2.35-0ubuntu3.6) ...
-#8 13.67 Selecting previously unselected package linux-libc-dev:amd64.
-#8 13.67 Preparing to unpack .../028-linux-libc-dev_5.15.0-100.110_amd64.deb ...
-#8 13.68 Unpacking linux-libc-dev:amd64 (5.15.0-100.110) ...
-#8 13.86 Selecting previously unselected package libcrypt-dev:amd64.
-
-
-
#8 13.86 Preparing to unpack .../029-libcrypt-dev_1%3a4.4.27-1_amd64.deb ...
-#8 13.86 Unpacking libcrypt-dev:amd64 (1:4.4.27-1) ...
-#8 13.88 Selecting previously unselected package rpcsvc-proto.
-#8 13.88 Preparing to unpack .../030-rpcsvc-proto_1.4.2-0ubuntu6_amd64.deb ...
-#8 13.88 Unpacking rpcsvc-proto (1.4.2-0ubuntu6) ...
-#8 13.90 Selecting previously unselected package libtirpc-dev:amd64.
-#8 13.90 Preparing to unpack .../031-libtirpc-dev_1.3.2-2ubuntu0.1_amd64.deb ...
-#8 13.91 Unpacking libtirpc-dev:amd64 (1.3.2-2ubuntu0.1) ...
-#8 13.93 Selecting previously unselected package libnsl-dev:amd64.
-#8 13.93 Preparing to unpack .../032-libnsl-dev_1.3.0-2build2_amd64.deb ...
-#8 13.93 Unpacking libnsl-dev:amd64 (1.3.0-2build2) ...
-#8 13.95 Selecting previously unselected package libc6-dev:amd64.
-#8 13.95 Preparing to unpack .../033-libc6-dev_2.35-0ubuntu3.6_amd64.deb ...
-#8 13.95 Unpacking libc6-dev:amd64 (2.35-0ubuntu3.6) ...
-#8 14.09 Selecting previously unselected package gcc-11-base:amd64.
-#8 14.09 Preparing to unpack .../034-gcc-11-base_11.4.0-1ubuntu1~22.04_amd64.deb ...
-#8 14.09 Unpacking gcc-11-base:amd64 (11.4.0-1ubuntu1~22.04) ...
-#8 14.11 Selecting previously unselected package libisl23:amd64.
-#8 14.11 Preparing to unpack .../035-libisl23_0.24-2build1_amd64.deb ...
-#8 14.11 Unpacking libisl23:amd64 (0.24-2build1) ...
-#8 14.14 Selecting previously unselected package libmpfr6:amd64.
-#8 14.14 Preparing to unpack .../036-libmpfr6_4.1.0-3build3_amd64.deb ...
-#8 14.14 Unpacking libmpfr6:amd64 (4.1.0-3build3) ...
-#8 14.17 Selecting previously unselected package libmpc3:amd64.
-#8 14.17 Preparing to unpack .../037-libmpc3_1.2.1-2build1_amd64.deb ...
-#8 14.17 Unpacking libmpc3:amd64 (1.2.1-2build1) ...
-#8 14.19 Selecting previously unselected package cpp-11.
-
-
-
#8 14.19 Preparing to unpack .../038-cpp-11_11.4.0-1ubuntu1~22.04_amd64.deb ...
-#8 14.19 Unpacking cpp-11 (11.4.0-1ubuntu1~22.04) ...
-#8 14.30 Selecting previously unselected package cpp.
-#8 14.30 Preparing to unpack .../039-cpp_4%3a11.2.0-1ubuntu1_amd64.deb ...
-#8 14.30 Unpacking cpp (4:11.2.0-1ubuntu1) ...
-#8 14.32 Selecting previously unselected package libcc1-0:amd64.
-#8 14.32 Preparing to unpack .../040-libcc1-0_12.3.0-1ubuntu1~22.04_amd64.deb ...
-#8 14.32 Unpacking libcc1-0:amd64 (12.3.0-1ubuntu1~22.04) ...
-#8 14.34 Selecting previously unselected package libgomp1:amd64.
-#8 14.34 Preparing to unpack .../041-libgomp1_12.3.0-1ubuntu1~22.04_amd64.deb ...
-#8 14.34 Unpacking libgomp1:amd64 (12.3.0-1ubuntu1~22.04) ...
-#8 14.36 Selecting previously unselected package libitm1:amd64.
-#8 14.36 Preparing to unpack .../042-libitm1_12.3.0-1ubuntu1~22.04_amd64.deb ...
-#8 14.36 Unpacking libitm1:amd64 (12.3.0-1ubuntu1~22.04) ...
-#8 14.37 Selecting previously unselected package libatomic1:amd64.
-#8 14.38 Preparing to unpack .../043-libatomic1_12.3.0-1ubuntu1~22.04_amd64.deb ...
-#8 14.38 Unpacking libatomic1:amd64 (12.3.0-1ubuntu1~22.04) ...
-#8 14.39 Selecting previously unselected package libasan6:amd64.
-#8 14.40 Preparing to unpack .../044-libasan6_11.4.0-1ubuntu1~22.04_amd64.deb ...
-#8 14.40 Unpacking libasan6:amd64 (11.4.0-1ubuntu1~22.04) ...
-#8 14.44 Selecting previously unselected package liblsan0:amd64.
-
-
-
#8 14.44 Preparing to unpack .../045-liblsan0_12.3.0-1ubuntu1~22.04_amd64.deb ...
-#8 14.44 Unpacking liblsan0:amd64 (12.3.0-1ubuntu1~22.04) ...
-#8 14.47 Selecting previously unselected package libtsan0:amd64.
-#8 14.47 Preparing to unpack .../046-libtsan0_11.4.0-1ubuntu1~22.04_amd64.deb ...
-#8 14.47 Unpacking libtsan0:amd64 (11.4.0-1ubuntu1~22.04) ...
-#8 14.52 Selecting previously unselected package libubsan1:amd64.
-#8 14.52 Preparing to unpack .../047-libubsan1_12.3.0-1ubuntu1~22.04_amd64.deb ...
-#8 14.52 Unpacking libubsan1:amd64 (12.3.0-1ubuntu1~22.04) ...
-#8 14.55 Selecting previously unselected package libquadmath0:amd64.
-#8 14.55 Preparing to unpack .../048-libquadmath0_12.3.0-1ubuntu1~22.04_amd64.deb ...
-#8 14.55 Unpacking libquadmath0:amd64 (12.3.0-1ubuntu1~22.04) ...
-#8 14.57 Selecting previously unselected package libgcc-11-dev:amd64.
-#8 14.57 Preparing to unpack .../049-libgcc-11-dev_11.4.0-1ubuntu1~22.04_amd64.deb ...
-#8 14.57 Unpacking libgcc-11-dev:amd64 (11.4.0-1ubuntu1~22.04) ...
-#8 14.65 Selecting previously unselected package gcc-11.
-
-
-
#8 14.66 Preparing to unpack .../050-gcc-11_11.4.0-1ubuntu1~22.04_amd64.deb ...
-#8 14.66 Unpacking gcc-11 (11.4.0-1ubuntu1~22.04) ...
-#8 14.88 Selecting previously unselected package gcc.
-
-
-
#8 14.88 Preparing to unpack .../051-gcc_4%3a11.2.0-1ubuntu1_amd64.deb ...
-#8 14.88 Unpacking gcc (4:11.2.0-1ubuntu1) ...
-#8 14.90 Selecting previously unselected package libstdc++-11-dev:amd64.
-#8 14.90 Preparing to unpack .../052-libstdc++-11-dev_11.4.0-1ubuntu1~22.04_amd64.deb ...
-#8 14.90 Unpacking libstdc++-11-dev:amd64 (11.4.0-1ubuntu1~22.04) ...
-#8 15.09 Selecting previously unselected package g++-11.
-#8 15.09 Preparing to unpack .../053-g++-11_11.4.0-1ubuntu1~22.04_amd64.deb ...
-#8 15.09 Unpacking g++-11 (11.4.0-1ubuntu1~22.04) ...
-#8 15.22 Selecting previously unselected package g++.
-
-
-
#8 15.22 Preparing to unpack .../054-g++_4%3a11.2.0-1ubuntu1_amd64.deb ...
-#8 15.22 Unpacking g++ (4:11.2.0-1ubuntu1) ...
-#8 15.23 Selecting previously unselected package make.
-#8 15.23 Preparing to unpack .../055-make_4.3-4.1build1_amd64.deb ...
-#8 15.23 Unpacking make (4.3-4.1build1) ...
-#8 15.25 Selecting previously unselected package libdpkg-perl.
-#8 15.25 Preparing to unpack .../056-libdpkg-perl_1.21.1ubuntu2.3_all.deb ...
-#8 15.25 Unpacking libdpkg-perl (1.21.1ubuntu2.3) ...
-#8 15.28 Selecting previously unselected package bzip2.
-#8 15.28 Preparing to unpack .../057-bzip2_1.0.8-5build1_amd64.deb ...
-#8 15.28 Unpacking bzip2 (1.0.8-5build1) ...
-#8 15.30 Selecting previously unselected package patch.
-#8 15.30 Preparing to unpack .../058-patch_2.7.6-7build2_amd64.deb ...
-#8 15.30 Unpacking patch (2.7.6-7build2) ...
-#8 15.31 Selecting previously unselected package lto-disabled-list.
-#8 15.31 Preparing to unpack .../059-lto-disabled-list_24_all.deb ...
-#8 15.32 Unpacking lto-disabled-list (24) ...
-#8 15.33 Selecting previously unselected package dpkg-dev.
-#8 15.33 Preparing to unpack .../060-dpkg-dev_1.21.1ubuntu2.3_all.deb ...
-#8 15.33 Unpacking dpkg-dev (1.21.1ubuntu2.3) ...
-#8 15.36 Selecting previously unselected package build-essential.
-#8 15.37 Preparing to unpack .../061-build-essential_12.9ubuntu3_amd64.deb ...
-#8 15.37 Unpacking build-essential (12.9ubuntu3) ...
-#8 15.38 Selecting previously unselected package libassuan0:amd64.
-#8 15.38 Preparing to unpack .../062-libassuan0_2.5.5-1build1_amd64.deb ...
-#8 15.38 Unpacking libassuan0:amd64 (2.5.5-1build1) ...
-#8 15.40 Selecting previously unselected package gpgconf.
-#8 15.40 Preparing to unpack .../063-gpgconf_2.2.27-3ubuntu2.1_amd64.deb ...
-#8 15.40 Unpacking gpgconf (2.2.27-3ubuntu2.1) ...
-#8 15.42 Selecting previously unselected package libksba8:amd64.
-#8 15.42 Preparing to unpack .../064-libksba8_1.6.0-2ubuntu0.2_amd64.deb ...
-#8 15.42 Unpacking libksba8:amd64 (1.6.0-2ubuntu0.2) ...
-#8 15.44 Selecting previously unselected package libsasl2-modules-db:amd64.
-
-
-
#8 15.44 Preparing to unpack .../065-libsasl2-modules-db_2.1.27+dfsg2-3ubuntu1.2_amd64.deb ...
-#8 15.44 Unpacking libsasl2-modules-db:amd64 (2.1.27+dfsg2-3ubuntu1.2) ...
-#8 15.45 Selecting previously unselected package libsasl2-2:amd64.
-#8 15.46 Preparing to unpack .../066-libsasl2-2_2.1.27+dfsg2-3ubuntu1.2_amd64.deb ...
-#8 15.46 Unpacking libsasl2-2:amd64 (2.1.27+dfsg2-3ubuntu1.2) ...
-#8 15.47 Selecting previously unselected package libldap-2.5-0:amd64.
-#8 15.47 Preparing to unpack .../067-libldap-2.5-0_2.5.17+dfsg-0ubuntu0.22.04.1_amd64.deb ...
-#8 15.48 Unpacking libldap-2.5-0:amd64 (2.5.17+dfsg-0ubuntu0.22.04.1) ...
-#8 15.50 Selecting previously unselected package libnpth0:amd64.
-#8 15.50 Preparing to unpack .../068-libnpth0_1.6-3build2_amd64.deb ...
-#8 15.50 Unpacking libnpth0:amd64 (1.6-3build2) ...
-#8 15.52 Selecting previously unselected package dirmngr.
-#8 15.52 Preparing to unpack .../069-dirmngr_2.2.27-3ubuntu2.1_amd64.deb ...
-#8 15.53 Unpacking dirmngr (2.2.27-3ubuntu2.1) ...
-#8 15.55 Selecting previously unselected package libfakeroot:amd64.
-#8 15.55 Preparing to unpack .../070-libfakeroot_1.28-1ubuntu1_amd64.deb ...
-#8 15.55 Unpacking libfakeroot:amd64 (1.28-1ubuntu1) ...
-#8 15.57 Selecting previously unselected package fakeroot.
-#8 15.57 Preparing to unpack .../071-fakeroot_1.28-1ubuntu1_amd64.deb ...
-#8 15.57 Unpacking fakeroot (1.28-1ubuntu1) ...
-#8 15.59 Selecting previously unselected package fonts-dejavu-core.
-#8 15.59 Preparing to unpack .../072-fonts-dejavu-core_2.37-2build1_all.deb ...
-#8 15.59 Unpacking fonts-dejavu-core (2.37-2build1) ...
-#8 15.67 Selecting previously unselected package fontconfig-config.
-
-
-
#8 15.67 Preparing to unpack .../073-fontconfig-config_2.13.1-4.2ubuntu5_all.deb ...
-#8 15.68 Unpacking fontconfig-config (2.13.1-4.2ubuntu5) ...
-#8 15.70 Selecting previously unselected package gnupg-l10n.
-#8 15.70 Preparing to unpack .../074-gnupg-l10n_2.2.27-3ubuntu2.1_all.deb ...
-#8 15.70 Unpacking gnupg-l10n (2.2.27-3ubuntu2.1) ...
-#8 15.72 Selecting previously unselected package gnupg-utils.
-#8 15.72 Preparing to unpack .../075-gnupg-utils_2.2.27-3ubuntu2.1_amd64.deb ...
-#8 15.72 Unpacking gnupg-utils (2.2.27-3ubuntu2.1) ...
-#8 15.74 Selecting previously unselected package gpg.
-#8 15.74 Preparing to unpack .../076-gpg_2.2.27-3ubuntu2.1_amd64.deb ...
-#8 15.74 Unpacking gpg (2.2.27-3ubuntu2.1) ...
-#8 15.76 Selecting previously unselected package pinentry-curses.
-#8 15.76 Preparing to unpack .../077-pinentry-curses_1.1.1-1build2_amd64.deb ...
-#8 15.76 Unpacking pinentry-curses (1.1.1-1build2) ...
-#8 15.78 Selecting previously unselected package gpg-agent.
-#8 15.78 Preparing to unpack .../078-gpg-agent_2.2.27-3ubuntu2.1_amd64.deb ...
-#8 15.78 Unpacking gpg-agent (2.2.27-3ubuntu2.1) ...
-#8 15.81 Selecting previously unselected package gpg-wks-client.
-#8 15.81 Preparing to unpack .../079-gpg-wks-client_2.2.27-3ubuntu2.1_amd64.deb ...
-#8 15.81 Unpacking gpg-wks-client (2.2.27-3ubuntu2.1) ...
-#8 15.82 Selecting previously unselected package gpg-wks-server.
-#8 15.83 Preparing to unpack .../080-gpg-wks-server_2.2.27-3ubuntu2.1_amd64.deb ...
-#8 15.83 Unpacking gpg-wks-server (2.2.27-3ubuntu2.1) ...
-#8 15.84 Selecting previously unselected package gpgsm.
-#8 15.84 Preparing to unpack .../081-gpgsm_2.2.27-3ubuntu2.1_amd64.deb ...
-#8 15.85 Unpacking gpgsm (2.2.27-3ubuntu2.1) ...
-#8 15.86 Selecting previously unselected package gnupg.
-#8 15.86 Preparing to unpack .../082-gnupg_2.2.27-3ubuntu2.1_all.deb ...
-#8 15.87 Unpacking gnupg (2.2.27-3ubuntu2.1) ...
-#8 15.89 Selecting previously unselected package javascript-common.
-
-
-
#8 15.89 Preparing to unpack .../083-javascript-common_11+nmu1_all.deb ...
-#8 15.90 Unpacking javascript-common (11+nmu1) ...
-#8 15.93 Selecting previously unselected package libalgorithm-diff-perl.
-#8 15.93 Preparing to unpack .../084-libalgorithm-diff-perl_1.201-1_all.deb ...
-#8 15.93 Unpacking libalgorithm-diff-perl (1.201-1) ...
-#8 15.95 Selecting previously unselected package libalgorithm-diff-xs-perl.
-#8 15.95 Preparing to unpack .../085-libalgorithm-diff-xs-perl_0.04-6build3_amd64.deb ...
-#8 15.95 Unpacking libalgorithm-diff-xs-perl (0.04-6build3) ...
-#8 15.97 Selecting previously unselected package libalgorithm-merge-perl.
-#8 15.97 Preparing to unpack .../086-libalgorithm-merge-perl_0.08-3_all.deb ...
-#8 15.98 Unpacking libalgorithm-merge-perl (0.08-3) ...
-#8 15.99 Selecting previously unselected package libbrotli1:amd64.
-#8 15.99 Preparing to unpack .../087-libbrotli1_1.0.9-2build6_amd64.deb ...
-#8 15.99 Unpacking libbrotli1:amd64 (1.0.9-2build6) ...
-#8 16.02 Selecting previously unselected package libfreetype6:amd64.
-#8 16.02 Preparing to unpack .../088-libfreetype6_2.11.1+dfsg-1ubuntu0.2_amd64.deb ...
-#8 16.02 Unpacking libfreetype6:amd64 (2.11.1+dfsg-1ubuntu0.2) ...
-#8 16.04 Selecting previously unselected package libfontconfig1:amd64.
-#8 16.04 Preparing to unpack .../089-libfontconfig1_2.13.1-4.2ubuntu5_amd64.deb ...
-#8 16.05 Unpacking libfontconfig1:amd64 (2.13.1-4.2ubuntu5) ...
-#8 16.06 Selecting previously unselected package libjpeg-turbo8:amd64.
-#8 16.06 Preparing to unpack .../090-libjpeg-turbo8_2.1.2-0ubuntu1_amd64.deb ...
-#8 16.07 Unpacking libjpeg-turbo8:amd64 (2.1.2-0ubuntu1) ...
-#8 16.08 Selecting previously unselected package libjpeg8:amd64.
-#8 16.08 Preparing to unpack .../091-libjpeg8_8c-2ubuntu10_amd64.deb ...
-#8 16.08 Unpacking libjpeg8:amd64 (8c-2ubuntu10) ...
-#8 16.10 Selecting previously unselected package libdeflate0:amd64.
-
-
-
#8 16.10 Preparing to unpack .../092-libdeflate0_1.10-2_amd64.deb ...
-#8 16.10 Unpacking libdeflate0:amd64 (1.10-2) ...
-#8 16.12 Selecting previously unselected package libjbig0:amd64.
-#8 16.13 Preparing to unpack .../093-libjbig0_2.1-3.1ubuntu0.22.04.1_amd64.deb ...
-#8 16.13 Unpacking libjbig0:amd64 (2.1-3.1ubuntu0.22.04.1) ...
-#8 16.14 Selecting previously unselected package libwebp7:amd64.
-#8 16.15 Preparing to unpack .../094-libwebp7_1.2.2-2ubuntu0.22.04.2_amd64.deb ...
-#8 16.15 Unpacking libwebp7:amd64 (1.2.2-2ubuntu0.22.04.2) ...
-#8 16.17 Selecting previously unselected package libtiff5:amd64.
-#8 16.17 Preparing to unpack .../095-libtiff5_4.3.0-6ubuntu0.8_amd64.deb ...
-#8 16.17 Unpacking libtiff5:amd64 (4.3.0-6ubuntu0.8) ...
-#8 16.19 Selecting previously unselected package libxpm4:amd64.
-#8 16.20 Preparing to unpack .../096-libxpm4_1%3a3.5.12-1ubuntu0.22.04.2_amd64.deb ...
-#8 16.20 Unpacking libxpm4:amd64 (1:3.5.12-1ubuntu0.22.04.2) ...
-#8 16.22 Selecting previously unselected package libgd3:amd64.
-#8 16.22 Preparing to unpack .../097-libgd3_2.3.0-2ubuntu2_amd64.deb ...
-#8 16.22 Unpacking libgd3:amd64 (2.3.0-2ubuntu2) ...
-#8 16.24 Selecting previously unselected package libc-devtools.
-#8 16.24 Preparing to unpack .../098-libc-devtools_2.35-0ubuntu3.6_amd64.deb ...
-#8 16.24 Unpacking libc-devtools (2.35-0ubuntu3.6) ...
-#8 16.26 Selecting previously unselected package libexpat1-dev:amd64.
-#8 16.26 Preparing to unpack .../099-libexpat1-dev_2.4.7-1ubuntu0.3_amd64.deb ...
-#8 16.26 Unpacking libexpat1-dev:amd64 (2.4.7-1ubuntu0.3) ...
-#8 16.29 Selecting previously unselected package libfile-fcntllock-perl.
-#8 16.29 Preparing to unpack .../100-libfile-fcntllock-perl_0.22-3build7_amd64.deb ...
-#8 16.29 Unpacking libfile-fcntllock-perl (0.22-3build7) ...
-#8 16.32 Selecting previously unselected package libjs-jquery.
-#8 16.32 Preparing to unpack .../101-libjs-jquery_3.6.0+dfsg+~3.5.13-1_all.deb ...
-#8 16.32 Unpacking libjs-jquery (3.6.0+dfsg+~3.5.13-1) ...
-
-
-
#8 16.34 Selecting previously unselected package libjs-underscore.
-#8 16.34 Preparing to unpack .../102-libjs-underscore_1.13.2~dfsg-2_all.deb ...
-#8 16.34 Unpacking libjs-underscore (1.13.2~dfsg-2) ...
-#8 16.37 Selecting previously unselected package libjs-sphinxdoc.
-#8 16.37 Preparing to unpack .../103-libjs-sphinxdoc_4.3.2-1_all.deb ...
-#8 16.37 Unpacking libjs-sphinxdoc (4.3.2-1) ...
-#8 16.39 Selecting previously unselected package libldap-common.
-#8 16.39 Preparing to unpack .../104-libldap-common_2.5.17+dfsg-0ubuntu0.22.04.1_all.deb ...
-#8 16.39 Unpacking libldap-common (2.5.17+dfsg-0ubuntu0.22.04.1) ...
-#8 16.41 Selecting previously unselected package libpython3.10:amd64.
-#8 16.41 Preparing to unpack .../105-libpython3.10_3.10.12-1~22.04.3_amd64.deb ...
-#8 16.41 Unpacking libpython3.10:amd64 (3.10.12-1~22.04.3) ...
-#8 16.45 Selecting previously unselected package zlib1g-dev:amd64.
-#8 16.45 Preparing to unpack .../106-zlib1g-dev_1%3a1.2.11.dfsg-2ubuntu9.2_amd64.deb ...
-#8 16.45 Unpacking zlib1g-dev:amd64 (1:1.2.11.dfsg-2ubuntu9.2) ...
-#8 16.47 Selecting previously unselected package libpython3.10-dev:amd64.
-#8 16.47 Preparing to unpack .../107-libpython3.10-dev_3.10.12-1~22.04.3_amd64.deb ...
-#8 16.47 Unpacking libpython3.10-dev:amd64 (3.10.12-1~22.04.3) ...
-#8 16.58 Selecting previously unselected package libpython3-dev:amd64.
-
-
-
#8 16.59 Preparing to unpack .../108-libpython3-dev_3.10.6-1~22.04_amd64.deb ...
-#8 16.59 Unpacking libpython3-dev:amd64 (3.10.6-1~22.04) ...
-#8 16.61 Selecting previously unselected package libsasl2-modules:amd64.
-#8 16.62 Preparing to unpack .../109-libsasl2-modules_2.1.27+dfsg2-3ubuntu1.2_amd64.deb ...
-#8 16.62 Unpacking libsasl2-modules:amd64 (2.1.27+dfsg2-3ubuntu1.2) ...
-#8 16.64 Selecting previously unselected package manpages-dev.
-#8 16.64 Preparing to unpack .../110-manpages-dev_5.10-1ubuntu1_all.deb ...
-#8 16.64 Unpacking manpages-dev (5.10-1ubuntu1) ...
-#8 16.84 Selecting previously unselected package python3.10-dev.
-#8 16.84 Preparing to unpack .../111-python3.10-dev_3.10.12-1~22.04.3_amd64.deb ...
-#8 16.85 Unpacking python3.10-dev (3.10.12-1~22.04.3) ...
-#8 16.86 Selecting previously unselected package python3-lib2to3.
-#8 16.87 Preparing to unpack .../112-python3-lib2to3_3.10.8-1~22.04_all.deb ...
-#8 16.87 Unpacking python3-lib2to3 (3.10.8-1~22.04) ...
-#8 16.90 Selecting previously unselected package python3-distutils.
-#8 16.91 Preparing to unpack .../113-python3-distutils_3.10.8-1~22.04_all.deb ...
-#8 16.91 Unpacking python3-distutils (3.10.8-1~22.04) ...
-#8 16.94 Selecting previously unselected package python3-dev.
-#8 16.94 Preparing to unpack .../114-python3-dev_3.10.6-1~22.04_amd64.deb ...
-#8 16.94 Unpacking python3-dev (3.10.6-1~22.04) ...
-#8 16.96 Selecting previously unselected package python3-setuptools.
-
-
-
#8 16.96 Preparing to unpack .../115-python3-setuptools_59.6.0-1.2ubuntu0.22.04.1_all.deb ...
-#8 16.96 Unpacking python3-setuptools (59.6.0-1.2ubuntu0.22.04.1) ...
-#8 17.00 Selecting previously unselected package python3-wheel.
-#8 17.01 Preparing to unpack .../116-python3-wheel_0.37.1-2ubuntu0.22.04.1_all.deb ...
-#8 17.01 Unpacking python3-wheel (0.37.1-2ubuntu0.22.04.1) ...
-#8 17.03 Selecting previously unselected package python3-pip.
-#8 17.03 Preparing to unpack .../117-python3-pip_22.0.2+dfsg-1ubuntu0.4_all.deb ...
-#8 17.03 Unpacking python3-pip (22.0.2+dfsg-1ubuntu0.4) ...
-#8 17.17 Setting up libksba8:amd64 (1.6.0-2ubuntu0.2) ...
-#8 17.17 Setting up media-types (7.0.0) ...
-#8 17.18 Setting up javascript-common (11+nmu1) ...
-#8 17.21 Setting up gcc-11-base:amd64 (11.4.0-1ubuntu1~22.04) ...
-#8 17.21 Setting up libxau6:amd64 (1:1.0.9-1build5) ...
-#8 17.22 Setting up lto-disabled-list (24) ...
-#8 17.22 Setting up manpages (5.10-1ubuntu1) ...
-#8 17.23 Setting up libbrotli1:amd64 (1.0.9-2build6) ...
-#8 17.23 Setting up libsqlite3-0:amd64 (3.37.2-2ubuntu0.3) ...
-#8 17.24 Setting up libsasl2-modules:amd64 (2.1.27+dfsg2-3ubuntu1.2) ...
-#8 17.24 Setting up binutils-common:amd64 (2.38-4ubuntu2.6) ...
-#8 17.25 Setting up libdeflate0:amd64 (1.10-2) ...
-#8 17.25 Setting up linux-libc-dev:amd64 (5.15.0-100.110) ...
-#8 17.26 Setting up libctf-nobfd0:amd64 (2.38-4ubuntu2.6) ...
-#8 17.26 Setting up libnpth0:amd64 (1.6-3build2) ...
-#8 17.26 Setting up libassuan0:amd64 (2.5.5-1build1) ...
-#8 17.27 Setting up libgomp1:amd64 (12.3.0-1ubuntu1~22.04) ...
-#8 17.27 Setting up perl-modules-5.34 (5.34.0-3ubuntu1.3) ...
-
-
-
#8 17.28 Setting up bzip2 (1.0.8-5build1) ...
-#8 17.28 Setting up libldap-common (2.5.17+dfsg-0ubuntu0.22.04.1) ...
-#8 17.29 Setting up libjbig0:amd64 (2.1-3.1ubuntu0.22.04.1) ...
-#8 17.29 Setting up libfakeroot:amd64 (1.28-1ubuntu1) ...
-#8 17.30 Setting up libasan6:amd64 (11.4.0-1ubuntu1~22.04) ...
-#8 17.30 Setting up libsasl2-modules-db:amd64 (2.1.27+dfsg2-3ubuntu1.2) ...
-#8 17.31 Setting up fakeroot (1.28-1ubuntu1) ...
-#8 17.32 update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode
-#8 17.32 update-alternatives: warning: skip creation of /usr/share/man/man1/fakeroot.1.gz because associated file /usr/share/man/man1/fakeroot-sysv.1.gz (of link group fakeroot) doesn't exist
-#8 17.32 update-alternatives: warning: skip creation of /usr/share/man/man1/faked.1.gz because associated file /usr/share/man/man1/faked-sysv.1.gz (of link group fakeroot) doesn't exist
-#8 17.32 update-alternatives: warning: skip creation of /usr/share/man/es/man1/fakeroot.1.gz because associated file /usr/share/man/es/man1/fakeroot-sysv.1.gz (of link group fakeroot) doesn't exist
-#8 17.32 update-alternatives: warning: skip creation of /usr/share/man/es/man1/faked.1.gz because associated file /usr/share/man/es/man1/faked-sysv.1.gz (of link group fakeroot) doesn't exist
-#8 17.32 update-alternatives: warning: skip creation of /usr/share/man/fr/man1/fakeroot.1.gz because associated file /usr/share/man/fr/man1/fakeroot-sysv.1.gz (of link group fakeroot) doesn't exist
-#8 17.32 update-alternatives: warning: skip creation of /usr/share/man/fr/man1/faked.1.gz because associated file /usr/share/man/fr/man1/faked-sysv.1.gz (of link group fakeroot) doesn't exist
-#8 17.32 update-alternatives: warning: skip creation of /usr/share/man/sv/man1/fakeroot.1.gz because associated file /usr/share/man/sv/man1/fakeroot-sysv.1.gz (of link group fakeroot) doesn't exist
-#8 17.32 update-alternatives: warning: skip creation of /usr/share/man/sv/man1/faked.1.gz because associated file /usr/share/man/sv/man1/faked-sysv.1.gz (of link group fakeroot) doesn't exist
-#8 17.32 Setting up libtirpc-dev:amd64 (1.3.2-2ubuntu0.1) ...
-#8 17.33 Setting up rpcsvc-proto (1.4.2-0ubuntu6) ...
-#8 17.33 Setting up libx11-data (2:1.7.5-1ubuntu0.3) ...
-#8 17.33 Setting up make (4.3-4.1build1) ...
-#8 17.34 Setting up libmpfr6:amd64 (4.1.0-3build3) ...
-#8 17.35 Setting up gnupg-l10n (2.2.27-3ubuntu2.1) ...
-#8 17.35 Setting up xz-utils (5.2.5-2ubuntu1) ...
-#8 17.36 update-alternatives: using /usr/bin/xz to provide /usr/bin/lzma (lzma) in auto mode
-#8 17.36 update-alternatives: warning: skip creation of /usr/share/man/man1/lzma.1.gz because associated file /usr/share/man/man1/xz.1.gz (of link group lzma) doesn't exist
-#8 17.36 update-alternatives: warning: skip creation of /usr/share/man/man1/unlzma.1.gz because associated file /usr/share/man/man1/unxz.1.gz (of link group lzma) doesn't exist
-#8 17.36 update-alternatives: warning: skip creation of /usr/share/man/man1/lzcat.1.gz because associated file /usr/share/man/man1/xzcat.1.gz (of link group lzma) doesn't exist
-#8 17.36 update-alternatives: warning: skip creation of /usr/share/man/man1/lzmore.1.gz because associated file /usr/share/man/man1/xzmore.1.gz (of link group lzma) doesn't exist
-#8 17.36 update-alternatives: warning: skip creation of /usr/share/man/man1/lzless.1.gz because associated file /usr/share/man/man1/xzless.1.gz (of link group lzma) doesn't exist
-#8 17.36 update-alternatives: warning: skip creation of /usr/share/man/man1/lzdiff.1.gz because associated file /usr/share/man/man1/xzdiff.1.gz (of link group lzma) doesn't exist
-#8 17.36 update-alternatives: warning: skip creation of /usr/share/man/man1/lzcmp.1.gz because associated file /usr/share/man/man1/xzcmp.1.gz (of link group lzma) doesn't exist
-#8 17.36 update-alternatives: warning: skip creation of /usr/share/man/man1/lzgrep.1.gz because associated file /usr/share/man/man1/xzgrep.1.gz (of link group lzma) doesn't exist
-#8 17.36 update-alternatives: warning: skip creation of /usr/share/man/man1/lzegrep.1.gz because associated file /usr/share/man/man1/xzegrep.1.gz (of link group lzma) doesn't exist
-#8 17.36 update-alternatives: warning: skip creation of /usr/share/man/man1/lzfgrep.1.gz because associated file /usr/share/man/man1/xzfgrep.1.gz (of link group lzma) doesn't exist
-#8 17.36 Setting up libquadmath0:amd64 (12.3.0-1ubuntu1~22.04) ...
-#8 17.37 Setting up libpng16-16:amd64 (1.6.37-3build5) ...
-#8 17.37 Setting up libmpc3:amd64 (1.2.1-2build1) ...
-#8 17.38 Setting up libatomic1:amd64 (12.3.0-1ubuntu1~22.04) ...
-#8 17.38 Setting up patch (2.7.6-7build2) ...
-#8 17.39 Setting up fonts-dejavu-core (2.37-2build1) ...
-#8 17.41 Setting up ucf (3.0043) ...
-#8 17.52 debconf: unable to initialize frontend: Dialog
-#8 17.52 debconf: (TERM is not set, so the dialog frontend is not usable.)
-#8 17.52 debconf: falling back to frontend: Readline
-
-
-
#8 17.54 Setting up libjpeg-turbo8:amd64 (2.1.2-0ubuntu1) ...
-#8 17.55 Setting up libsasl2-2:amd64 (2.1.27+dfsg2-3ubuntu1.2) ...
-#8 17.55 Setting up libwebp7:amd64 (1.2.2-2ubuntu0.22.04.2) ...
-#8 17.55 Setting up libubsan1:amd64 (12.3.0-1ubuntu1~22.04) ...
-#8 17.56 Setting up libmd0:amd64 (1.0.4-1build1) ...
-#8 17.56 Setting up libnsl-dev:amd64 (1.3.0-2build2) ...
-#8 17.57 Setting up libcrypt-dev:amd64 (1:4.4.27-1) ...
-#8 17.57 Setting up libmpdec3:amd64 (2.5.1-2build2) ...
-#8 17.57 Setting up netbase (6.3) ...
-#8 17.58 Setting up libjs-jquery (3.6.0+dfsg+~3.5.13-1) ...
-#8 17.59 Setting up libbinutils:amd64 (2.38-4ubuntu2.6) ...
-#8 17.59 Setting up libisl23:amd64 (0.24-2build1) ...
-#8 17.60 Setting up libc-dev-bin (2.35-0ubuntu3.6) ...
-#8 17.60 Setting up openssl (3.0.2-0ubuntu1.15) ...
-#8 17.61 Setting up libbsd0:amd64 (0.11.5-1) ...
-#8 17.61 Setting up readline-common (8.1.2-1) ...
-#8 17.62 Setting up libcc1-0:amd64 (12.3.0-1ubuntu1~22.04) ...
-#8 17.62 Setting up liblocale-gettext-perl (1.07-4build3) ...
-#8 17.63 Setting up liblsan0:amd64 (12.3.0-1ubuntu1~22.04) ...
-#8 17.63 Setting up libitm1:amd64 (12.3.0-1ubuntu1~22.04) ...
-#8 17.64 Setting up libgdbm6:amd64 (1.23-1) ...
-#8 17.64 Setting up libjs-underscore (1.13.2~dfsg-2) ...
-#8 17.65 Setting up libtsan0:amd64 (11.4.0-1ubuntu1~22.04) ...
-#8 17.65 Setting up libctf0:amd64 (2.38-4ubuntu2.6) ...
-#8 17.65 Setting up libjpeg8:amd64 (8c-2ubuntu10) ...
-#8 17.66 Setting up pinentry-curses (1.1.1-1build2) ...
-#8 17.67 Setting up cpp-11 (11.4.0-1ubuntu1~22.04) ...
-#8 17.67 Setting up manpages-dev (5.10-1ubuntu1) ...
-#8 17.67 Setting up libxdmcp6:amd64 (1:1.1.3-0ubuntu5) ...
-#8 17.68 Setting up libxcb1:amd64 (1.14-3ubuntu3) ...
-#8 17.68 Setting up fontconfig-config (2.13.1-4.2ubuntu5) ...
-#8 17.76 Setting up libreadline8:amd64 (8.1.2-1) ...
-
-
-
#8 17.76 Setting up libldap-2.5-0:amd64 (2.5.17+dfsg-0ubuntu0.22.04.1) ...
-#8 17.76 Setting up libpython3.10-stdlib:amd64 (3.10.12-1~22.04.3) ...
-#8 17.77 Setting up ca-certificates (20230311ubuntu0.22.04.1) ...
-#8 17.85 debconf: unable to initialize frontend: Dialog
-#8 17.85 debconf: (TERM is not set, so the dialog frontend is not usable.)
-#8 17.85 debconf: falling back to frontend: Readline
-
-
-
#8 18.25 Updating certificates in /etc/ssl/certs...
-
-
-
#8 18.83 137 added, 0 removed; done.
-
-
-
#8 18.84 Setting up libfreetype6:amd64 (2.11.1+dfsg-1ubuntu0.2) ...
-#8 18.84 Setting up libgdbm-compat4:amd64 (1.23-1) ...
-#8 18.85 Setting up libjs-sphinxdoc (4.3.2-1) ...
-#8 18.85 Setting up libgcc-11-dev:amd64 (11.4.0-1ubuntu1~22.04) ...
-#8 18.85 Setting up cpp (4:11.2.0-1ubuntu1) ...
-#8 18.86 Setting up gpgconf (2.2.27-3ubuntu2.1) ...
-#8 18.86 Setting up libc6-dev:amd64 (2.35-0ubuntu3.6) ...
-#8 18.86 Setting up libx11-6:amd64 (2:1.7.5-1ubuntu0.3) ...
-#8 18.87 Setting up libtiff5:amd64 (4.3.0-6ubuntu0.8) ...
-#8 18.87 Setting up libfontconfig1:amd64 (2.13.1-4.2ubuntu5) ...
-#8 18.87 Setting up gpg (2.2.27-3ubuntu2.1) ...
-#8 18.88 Setting up libpython3-stdlib:amd64 (3.10.6-1~22.04) ...
-#8 18.88 Setting up gnupg-utils (2.2.27-3ubuntu2.1) ...
-#8 18.88 Setting up binutils-x86-64-linux-gnu (2.38-4ubuntu2.6) ...
-#8 18.88 Setting up libpython3.10:amd64 (3.10.12-1~22.04.3) ...
-#8 18.89 Setting up libperl5.34:amd64 (5.34.0-3ubuntu1.3) ...
-#8 18.89 Setting up gpg-agent (2.2.27-3ubuntu2.1) ...
-
-
-
#8 19.30 Setting up python3.10 (3.10.12-1~22.04.3) ...
-
-
-
#8 19.82 Setting up libxpm4:amd64 (1:3.5.12-1ubuntu0.22.04.2) ...
-
-
-
#8 19.83 Setting up gpgsm (2.2.27-3ubuntu2.1) ...
-#8 19.83 Setting up python3 (3.10.6-1~22.04) ...
-#8 19.84 running python rtupdate hooks for python3.10...
-#8 19.84 running python post-rtupdate hooks for python3.10...
-#8 19.91 Setting up binutils (2.38-4ubuntu2.6) ...
-#8 19.91 Setting up dirmngr (2.2.27-3ubuntu2.1) ...
-#8 20.02 Setting up perl (5.34.0-3ubuntu1.3) ...
-#8 20.04 Setting up libexpat1-dev:amd64 (2.4.7-1ubuntu0.3) ...
-#8 20.04 Setting up libgd3:amd64 (2.3.0-2ubuntu2) ...
-#8 20.04 Setting up libdpkg-perl (1.21.1ubuntu2.3) ...
-#8 20.04 Setting up libstdc++-11-dev:amd64 (11.4.0-1ubuntu1~22.04) ...
-#8 20.05 Setting up gpg-wks-server (2.2.27-3ubuntu2.1) ...
-#8 20.05 Setting up zlib1g-dev:amd64 (1:1.2.11.dfsg-2ubuntu9.2) ...
-#8 20.05 Setting up gcc-11 (11.4.0-1ubuntu1~22.04) ...
-#8 20.06 Setting up python3-lib2to3 (3.10.8-1~22.04) ...
-#8 20.14 Setting up libc-devtools (2.35-0ubuntu3.6) ...
-
-
-
#8 20.14 Setting up python3-pkg-resources (59.6.0-1.2ubuntu0.22.04.1) ...
-#8 20.28 Setting up python3-distutils (3.10.8-1~22.04) ...
-
-
-
#8 20.38 Setting up python3-setuptools (59.6.0-1.2ubuntu0.22.04.1) ...
-#8 20.65 Setting up gpg-wks-client (2.2.27-3ubuntu2.1) ...
-
-
-
#8 20.66 Setting up g++-11 (11.4.0-1ubuntu1~22.04) ...
-#8 20.66 Setting up libfile-fcntllock-perl (0.22-3build7) ...
-#8 20.66 Setting up libalgorithm-diff-perl (1.201-1) ...
-#8 20.67 Setting up python3-wheel (0.37.1-2ubuntu0.22.04.1) ...
-#8 20.77 Setting up gcc (4:11.2.0-1ubuntu1) ...
-#8 20.79 Setting up dpkg-dev (1.21.1ubuntu2.3) ...
-#8 20.80 Setting up libpython3.10-dev:amd64 (3.10.12-1~22.04.3) ...
-#8 20.80 Setting up python3-pip (22.0.2+dfsg-1ubuntu0.4) ...
-
-
-
#8 21.66 Setting up python3.10-dev (3.10.12-1~22.04.3) ...
-
-
-
#8 21.67 Setting up g++ (4:11.2.0-1ubuntu1) ...
-#8 21.70 update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
-#8 21.70 update-alternatives: warning: skip creation of /usr/share/man/man1/c++.1.gz because associated file /usr/share/man/man1/g++.1.gz (of link group c++) doesn't exist
-#8 21.70 Setting up gnupg (2.2.27-3ubuntu2.1) ...
-#8 21.70 Setting up build-essential (12.9ubuntu3) ...
-#8 21.70 Setting up libalgorithm-diff-xs-perl (0.04-6build3) ...
-#8 21.71 Setting up libalgorithm-merge-perl (0.08-3) ...
-#8 21.71 Setting up libpython3-dev:amd64 (3.10.6-1~22.04) ...
-#8 21.71 Setting up python3-dev (3.10.6-1~22.04) ...
-#8 21.72 Processing triggers for libc-bin (2.35-0ubuntu3.6) ...
-#8 22.01 Processing triggers for ca-certificates (20230311ubuntu0.22.04.1) ...
-
-
-
#8 22.02 Updating certificates in /etc/ssl/certs...
+#8 6.766 Preparing to unpack .../000-python3_3.10.6-1~22.04_amd64.deb ...
+#8 6.771 Unpacking python3 (3.10.6-1~22.04) ...
+#8 6.785 Selecting previously unselected package perl-modules-5.34.
+#8 6.786 Preparing to unpack .../001-perl-modules-5.34_5.34.0-3ubuntu1.3_all.deb ...
+#8 6.787 Unpacking perl-modules-5.34 (5.34.0-3ubuntu1.3) ...
+#8 7.069 Selecting previously unselected package libgdbm6:amd64.
+
+
+
#8 7.070 Preparing to unpack .../002-libgdbm6_1.23-1_amd64.deb ...
+#8 7.071 Unpacking libgdbm6:amd64 (1.23-1) ...
+#8 7.086 Selecting previously unselected package libgdbm-compat4:amd64.
+#8 7.087 Preparing to unpack .../003-libgdbm-compat4_1.23-1_amd64.deb ...
+#8 7.088 Unpacking libgdbm-compat4:amd64 (1.23-1) ...
+#8 7.104 Selecting previously unselected package libperl5.34:amd64.
+#8 7.105 Preparing to unpack .../004-libperl5.34_5.34.0-3ubuntu1.3_amd64.deb ...
+#8 7.106 Unpacking libperl5.34:amd64 (5.34.0-3ubuntu1.3) ...
+#8 7.276 Selecting previously unselected package perl.
+#8 7.278 Preparing to unpack .../005-perl_5.34.0-3ubuntu1.3_amd64.deb ...
+#8 7.284 Unpacking perl (5.34.0-3ubuntu1.3) ...
+#8 7.306 Selecting previously unselected package openssl.
+#8 7.307 Preparing to unpack .../006-openssl_3.0.2-0ubuntu1.15_amd64.deb ...
+#8 7.308 Unpacking openssl (3.0.2-0ubuntu1.15) ...
+#8 7.348 Selecting previously unselected package ca-certificates.
+#8 7.348 Preparing to unpack .../007-ca-certificates_20230311ubuntu0.22.04.1_all.deb ...
+#8 7.349 Unpacking ca-certificates (20230311ubuntu0.22.04.1) ...
+#8 7.390 Selecting previously unselected package libmd0:amd64.
+
+
+
#8 7.390 Preparing to unpack .../008-libmd0_1.0.4-1build1_amd64.deb ...
+#8 7.392 Unpacking libmd0:amd64 (1.0.4-1build1) ...
+#8 7.406 Selecting previously unselected package libbsd0:amd64.
+#8 7.407 Preparing to unpack .../009-libbsd0_0.11.5-1_amd64.deb ...
+#8 7.408 Unpacking libbsd0:amd64 (0.11.5-1) ...
+#8 7.423 Selecting previously unselected package netbase.
+#8 7.423 Preparing to unpack .../010-netbase_6.3_all.deb ...
+#8 7.424 Unpacking netbase (6.3) ...
+#8 7.439 Selecting previously unselected package python3-pkg-resources.
+#8 7.440 Preparing to unpack .../011-python3-pkg-resources_59.6.0-1.2ubuntu0.22.04.1_all.deb ...
+#8 7.441 Unpacking python3-pkg-resources (59.6.0-1.2ubuntu0.22.04.1) ...
+#8 7.461 Selecting previously unselected package ucf.
+#8 7.462 Preparing to unpack .../012-ucf_3.0043_all.deb ...
+#8 7.464 Moving old data out of the way
+#8 7.466 Unpacking ucf (3.0043) ...
+#8 7.483 Selecting previously unselected package libpng16-16:amd64.
+#8 7.484 Preparing to unpack .../013-libpng16-16_1.6.37-3build5_amd64.deb ...
+#8 7.485 Unpacking libpng16-16:amd64 (1.6.37-3build5) ...
+#8 7.501 Selecting previously unselected package libxau6:amd64.
+#8 7.502 Preparing to unpack .../014-libxau6_1%3a1.0.9-1build5_amd64.deb ...
+#8 7.503 Unpacking libxau6:amd64 (1:1.0.9-1build5) ...
+#8 7.516 Selecting previously unselected package libxdmcp6:amd64.
+#8 7.517 Preparing to unpack .../015-libxdmcp6_1%3a1.1.3-0ubuntu5_amd64.deb ...
+#8 7.518 Unpacking libxdmcp6:amd64 (1:1.1.3-0ubuntu5) ...
+#8 7.531 Selecting previously unselected package libxcb1:amd64.
+#8 7.532 Preparing to unpack .../016-libxcb1_1.14-3ubuntu3_amd64.deb ...
+#8 7.533 Unpacking libxcb1:amd64 (1.14-3ubuntu3) ...
+#8 7.546 Selecting previously unselected package libx11-data.
+#8 7.547 Preparing to unpack .../017-libx11-data_2%3a1.7.5-1ubuntu0.3_all.deb ...
+#8 7.548 Unpacking libx11-data (2:1.7.5-1ubuntu0.3) ...
+#8 7.601 Selecting previously unselected package libx11-6:amd64.
+#8 7.602 Preparing to unpack .../018-libx11-6_2%3a1.7.5-1ubuntu0.3_amd64.deb ...
+
+
+
#8 7.603 Unpacking libx11-6:amd64 (2:1.7.5-1ubuntu0.3) ...
+#8 7.620 Selecting previously unselected package manpages.
+#8 7.621 Preparing to unpack .../019-manpages_5.10-1ubuntu1_all.deb ...
+#8 7.622 Unpacking manpages (5.10-1ubuntu1) ...
+#8 7.710 Selecting previously unselected package xz-utils.
+#8 7.711 Preparing to unpack .../020-xz-utils_5.2.5-2ubuntu1_amd64.deb ...
+#8 7.712 Unpacking xz-utils (5.2.5-2ubuntu1) ...
+#8 7.729 Selecting previously unselected package binutils-common:amd64.
+#8 7.729 Preparing to unpack .../021-binutils-common_2.38-4ubuntu2.6_amd64.deb ...
+#8 7.730 Unpacking binutils-common:amd64 (2.38-4ubuntu2.6) ...
+#8 7.747 Selecting previously unselected package libbinutils:amd64.
+#8 7.747 Preparing to unpack .../022-libbinutils_2.38-4ubuntu2.6_amd64.deb ...
+#8 7.748 Unpacking libbinutils:amd64 (2.38-4ubuntu2.6) ...
+#8 7.773 Selecting previously unselected package libctf-nobfd0:amd64.
+#8 7.774 Preparing to unpack .../023-libctf-nobfd0_2.38-4ubuntu2.6_amd64.deb ...
+#8 7.777 Unpacking libctf-nobfd0:amd64 (2.38-4ubuntu2.6) ...
+#8 7.792 Selecting previously unselected package libctf0:amd64.
+#8 7.793 Preparing to unpack .../024-libctf0_2.38-4ubuntu2.6_amd64.deb ...
+#8 7.794 Unpacking libctf0:amd64 (2.38-4ubuntu2.6) ...
+#8 7.807 Selecting previously unselected package binutils-x86-64-linux-gnu.
+#8 7.808 Preparing to unpack .../025-binutils-x86-64-linux-gnu_2.38-4ubuntu2.6_amd64.deb ...
+#8 7.808 Unpacking binutils-x86-64-linux-gnu (2.38-4ubuntu2.6) ...
+#8 7.885 Selecting previously unselected package binutils.
+
+
+
#8 7.886 Preparing to unpack .../026-binutils_2.38-4ubuntu2.6_amd64.deb ...
+#8 7.887 Unpacking binutils (2.38-4ubuntu2.6) ...
+#8 7.902 Selecting previously unselected package libc-dev-bin.
+#8 7.903 Preparing to unpack .../027-libc-dev-bin_2.35-0ubuntu3.6_amd64.deb ...
+#8 7.904 Unpacking libc-dev-bin (2.35-0ubuntu3.6) ...
+#8 7.918 Selecting previously unselected package linux-libc-dev:amd64.
+#8 7.919 Preparing to unpack .../028-linux-libc-dev_5.15.0-100.110_amd64.deb ...
+#8 7.920 Unpacking linux-libc-dev:amd64 (5.15.0-100.110) ...
+#8 8.095 Selecting previously unselected package libcrypt-dev:amd64.
+
+
+
#8 8.096 Preparing to unpack .../029-libcrypt-dev_1%3a4.4.27-1_amd64.deb ...
+#8 8.097 Unpacking libcrypt-dev:amd64 (1:4.4.27-1) ...
+#8 8.112 Selecting previously unselected package rpcsvc-proto.
+#8 8.113 Preparing to unpack .../030-rpcsvc-proto_1.4.2-0ubuntu6_amd64.deb ...
+#8 8.114 Unpacking rpcsvc-proto (1.4.2-0ubuntu6) ...
+#8 8.130 Selecting previously unselected package libtirpc-dev:amd64.
+#8 8.131 Preparing to unpack .../031-libtirpc-dev_1.3.2-2ubuntu0.1_amd64.deb ...
+#8 8.132 Unpacking libtirpc-dev:amd64 (1.3.2-2ubuntu0.1) ...
+#8 8.155 Selecting previously unselected package libnsl-dev:amd64.
+#8 8.156 Preparing to unpack .../032-libnsl-dev_1.3.0-2build2_amd64.deb ...
+#8 8.157 Unpacking libnsl-dev:amd64 (1.3.0-2build2) ...
+#8 8.173 Selecting previously unselected package libc6-dev:amd64.
+#8 8.174 Preparing to unpack .../033-libc6-dev_2.35-0ubuntu3.6_amd64.deb ...
+#8 8.175 Unpacking libc6-dev:amd64 (2.35-0ubuntu3.6) ...
+#8 8.306 Selecting previously unselected package gcc-11-base:amd64.
+#8 8.307 Preparing to unpack .../034-gcc-11-base_11.4.0-1ubuntu1~22.04_amd64.deb ...
+#8 8.309 Unpacking gcc-11-base:amd64 (11.4.0-1ubuntu1~22.04) ...
+#8 8.325 Selecting previously unselected package libisl23:amd64.
+#8 8.326 Preparing to unpack .../035-libisl23_0.24-2build1_amd64.deb ...
+#8 8.328 Unpacking libisl23:amd64 (0.24-2build1) ...
+#8 8.351 Selecting previously unselected package libmpfr6:amd64.
+#8 8.351 Preparing to unpack .../036-libmpfr6_4.1.0-3build3_amd64.deb ...
+#8 8.353 Unpacking libmpfr6:amd64 (4.1.0-3build3) ...
+#8 8.377 Selecting previously unselected package libmpc3:amd64.
+#8 8.378 Preparing to unpack .../037-libmpc3_1.2.1-2build1_amd64.deb ...
+#8 8.379 Unpacking libmpc3:amd64 (1.2.1-2build1) ...
+#8 8.391 Selecting previously unselected package cpp-11.
+#8 8.392 Preparing to unpack .../038-cpp-11_11.4.0-1ubuntu1~22.04_amd64.deb ...
+#8 8.393 Unpacking cpp-11 (11.4.0-1ubuntu1~22.04) ...
+#8 8.505 Selecting previously unselected package cpp.
+
+
+
#8 8.506 Preparing to unpack .../039-cpp_4%3a11.2.0-1ubuntu1_amd64.deb ...
+#8 8.507 Unpacking cpp (4:11.2.0-1ubuntu1) ...
+#8 8.522 Selecting previously unselected package libcc1-0:amd64.
+#8 8.524 Preparing to unpack .../040-libcc1-0_12.3.0-1ubuntu1~22.04_amd64.deb ...
+#8 8.525 Unpacking libcc1-0:amd64 (12.3.0-1ubuntu1~22.04) ...
+#8 8.540 Selecting previously unselected package libgomp1:amd64.
+#8 8.541 Preparing to unpack .../041-libgomp1_12.3.0-1ubuntu1~22.04_amd64.deb ...
+#8 8.542 Unpacking libgomp1:amd64 (12.3.0-1ubuntu1~22.04) ...
+#8 8.558 Selecting previously unselected package libitm1:amd64.
+#8 8.559 Preparing to unpack .../042-libitm1_12.3.0-1ubuntu1~22.04_amd64.deb ...
+#8 8.561 Unpacking libitm1:amd64 (12.3.0-1ubuntu1~22.04) ...
+#8 8.576 Selecting previously unselected package libatomic1:amd64.
+#8 8.576 Preparing to unpack .../043-libatomic1_12.3.0-1ubuntu1~22.04_amd64.deb ...
+#8 8.577 Unpacking libatomic1:amd64 (12.3.0-1ubuntu1~22.04) ...
+#8 8.592 Selecting previously unselected package libasan6:amd64.
+#8 8.592 Preparing to unpack .../044-libasan6_11.4.0-1ubuntu1~22.04_amd64.deb ...
+#8 8.593 Unpacking libasan6:amd64 (11.4.0-1ubuntu1~22.04) ...
+#8 8.637 Selecting previously unselected package liblsan0:amd64.
+#8 8.639 Preparing to unpack .../045-liblsan0_12.3.0-1ubuntu1~22.04_amd64.deb ...
+#8 8.640 Unpacking liblsan0:amd64 (12.3.0-1ubuntu1~22.04) ...
+#8 8.666 Selecting previously unselected package libtsan0:amd64.
+#8 8.667 Preparing to unpack .../046-libtsan0_11.4.0-1ubuntu1~22.04_amd64.deb ...
+#8 8.669 Unpacking libtsan0:amd64 (11.4.0-1ubuntu1~22.04) ...
+#8 8.707 Selecting previously unselected package libubsan1:amd64.
+#8 8.709 Preparing to unpack .../047-libubsan1_12.3.0-1ubuntu1~22.04_amd64.deb ...
+#8 8.710 Unpacking libubsan1:amd64 (12.3.0-1ubuntu1~22.04) ...
+#8 8.735 Selecting previously unselected package libquadmath0:amd64.
+#8 8.737 Preparing to unpack .../048-libquadmath0_12.3.0-1ubuntu1~22.04_amd64.deb ...
+#8 8.738 Unpacking libquadmath0:amd64 (12.3.0-1ubuntu1~22.04) ...
+
+
+
#8 8.752 Selecting previously unselected package libgcc-11-dev:amd64.
+#8 8.753 Preparing to unpack .../049-libgcc-11-dev_11.4.0-1ubuntu1~22.04_amd64.deb ...
+#8 8.754 Unpacking libgcc-11-dev:amd64 (11.4.0-1ubuntu1~22.04) ...
+#8 8.831 Selecting previously unselected package gcc-11.
+#8 8.833 Preparing to unpack .../050-gcc-11_11.4.0-1ubuntu1~22.04_amd64.deb ...
+#8 8.834 Unpacking gcc-11 (11.4.0-1ubuntu1~22.04) ...
+#8 9.052 Selecting previously unselected package gcc.
+
+
+
#8 9.054 Preparing to unpack .../051-gcc_4%3a11.2.0-1ubuntu1_amd64.deb ...
+#8 9.055 Unpacking gcc (4:11.2.0-1ubuntu1) ...
+#8 9.071 Selecting previously unselected package libstdc++-11-dev:amd64.
+#8 9.071 Preparing to unpack .../052-libstdc++-11-dev_11.4.0-1ubuntu1~22.04_amd64.deb ...
+#8 9.073 Unpacking libstdc++-11-dev:amd64 (11.4.0-1ubuntu1~22.04) ...
+#8 9.272 Selecting previously unselected package g++-11.
+#8 9.273 Preparing to unpack .../053-g++-11_11.4.0-1ubuntu1~22.04_amd64.deb ...
+#8 9.275 Unpacking g++-11 (11.4.0-1ubuntu1~22.04) ...
+#8 9.398 Selecting previously unselected package g++.
+
+
+
#8 9.399 Preparing to unpack .../054-g++_4%3a11.2.0-1ubuntu1_amd64.deb ...
+#8 9.401 Unpacking g++ (4:11.2.0-1ubuntu1) ...
+#8 9.413 Selecting previously unselected package make.
+#8 9.414 Preparing to unpack .../055-make_4.3-4.1build1_amd64.deb ...
+#8 9.416 Unpacking make (4.3-4.1build1) ...
+#8 9.431 Selecting previously unselected package libdpkg-perl.
+#8 9.432 Preparing to unpack .../056-libdpkg-perl_1.21.1ubuntu2.3_all.deb ...
+#8 9.433 Unpacking libdpkg-perl (1.21.1ubuntu2.3) ...
+#8 9.462 Selecting previously unselected package bzip2.
+#8 9.463 Preparing to unpack .../057-bzip2_1.0.8-5build1_amd64.deb ...
+#8 9.464 Unpacking bzip2 (1.0.8-5build1) ...
+#8 9.479 Selecting previously unselected package patch.
+#8 9.480 Preparing to unpack .../058-patch_2.7.6-7build2_amd64.deb ...
+#8 9.481 Unpacking patch (2.7.6-7build2) ...
+#8 9.495 Selecting previously unselected package lto-disabled-list.
+#8 9.496 Preparing to unpack .../059-lto-disabled-list_24_all.deb ...
+#8 9.497 Unpacking lto-disabled-list (24) ...
+#8 9.511 Selecting previously unselected package dpkg-dev.
+#8 9.512 Preparing to unpack .../060-dpkg-dev_1.21.1ubuntu2.3_all.deb ...
+#8 9.513 Unpacking dpkg-dev (1.21.1ubuntu2.3) ...
+#8 9.553 Selecting previously unselected package build-essential.
+#8 9.554 Preparing to unpack .../061-build-essential_12.9ubuntu3_amd64.deb ...
+#8 9.555 Unpacking build-essential (12.9ubuntu3) ...
+#8 9.570 Selecting previously unselected package libassuan0:amd64.
+#8 9.571 Preparing to unpack .../062-libassuan0_2.5.5-1build1_amd64.deb ...
+#8 9.572 Unpacking libassuan0:amd64 (2.5.5-1build1) ...
+#8 9.585 Selecting previously unselected package gpgconf.
+#8 9.586 Preparing to unpack .../063-gpgconf_2.2.27-3ubuntu2.1_amd64.deb ...
+#8 9.587 Unpacking gpgconf (2.2.27-3ubuntu2.1) ...
+#8 9.603 Selecting previously unselected package libksba8:amd64.
+#8 9.604 Preparing to unpack .../064-libksba8_1.6.0-2ubuntu0.2_amd64.deb ...
+#8 9.606 Unpacking libksba8:amd64 (1.6.0-2ubuntu0.2) ...
+#8 9.620 Selecting previously unselected package libsasl2-modules-db:amd64.
+
+
+
#8 9.621 Preparing to unpack .../065-libsasl2-modules-db_2.1.27+dfsg2-3ubuntu1.2_amd64.deb ...
+#8 9.622 Unpacking libsasl2-modules-db:amd64 (2.1.27+dfsg2-3ubuntu1.2) ...
+#8 9.639 Selecting previously unselected package libsasl2-2:amd64.
+#8 9.639 Preparing to unpack .../066-libsasl2-2_2.1.27+dfsg2-3ubuntu1.2_amd64.deb ...
+#8 9.641 Unpacking libsasl2-2:amd64 (2.1.27+dfsg2-3ubuntu1.2) ...
+#8 9.657 Selecting previously unselected package libldap-2.5-0:amd64.
+#8 9.658 Preparing to unpack .../067-libldap-2.5-0_2.5.17+dfsg-0ubuntu0.22.04.1_amd64.deb ...
+#8 9.659 Unpacking libldap-2.5-0:amd64 (2.5.17+dfsg-0ubuntu0.22.04.1) ...
+#8 9.677 Selecting previously unselected package libnpth0:amd64.
+#8 9.678 Preparing to unpack .../068-libnpth0_1.6-3build2_amd64.deb ...
+#8 9.679 Unpacking libnpth0:amd64 (1.6-3build2) ...
+#8 9.697 Selecting previously unselected package dirmngr.
+#8 9.698 Preparing to unpack .../069-dirmngr_2.2.27-3ubuntu2.1_amd64.deb ...
+#8 9.708 Unpacking dirmngr (2.2.27-3ubuntu2.1) ...
+#8 9.727 Selecting previously unselected package libfakeroot:amd64.
+#8 9.728 Preparing to unpack .../070-libfakeroot_1.28-1ubuntu1_amd64.deb ...
+#8 9.730 Unpacking libfakeroot:amd64 (1.28-1ubuntu1) ...
+#8 9.745 Selecting previously unselected package fakeroot.
+#8 9.746 Preparing to unpack .../071-fakeroot_1.28-1ubuntu1_amd64.deb ...
+#8 9.747 Unpacking fakeroot (1.28-1ubuntu1) ...
+#8 9.764 Selecting previously unselected package fonts-dejavu-core.
+#8 9.765 Preparing to unpack .../072-fonts-dejavu-core_2.37-2build1_all.deb ...
+#8 9.766 Unpacking fonts-dejavu-core (2.37-2build1) ...
+#8 9.848 Selecting previously unselected package fontconfig-config.
+
+
+
#8 9.849 Preparing to unpack .../073-fontconfig-config_2.13.1-4.2ubuntu5_all.deb ...
+#8 9.850 Unpacking fontconfig-config (2.13.1-4.2ubuntu5) ...
+#8 9.870 Selecting previously unselected package gnupg-l10n.
+#8 9.871 Preparing to unpack .../074-gnupg-l10n_2.2.27-3ubuntu2.1_all.deb ...
+#8 9.872 Unpacking gnupg-l10n (2.2.27-3ubuntu2.1) ...
+#8 9.890 Selecting previously unselected package gnupg-utils.
+#8 9.891 Preparing to unpack .../075-gnupg-utils_2.2.27-3ubuntu2.1_amd64.deb ...
+#8 9.892 Unpacking gnupg-utils (2.2.27-3ubuntu2.1) ...
+#8 9.911 Selecting previously unselected package gpg.
+#8 9.912 Preparing to unpack .../076-gpg_2.2.27-3ubuntu2.1_amd64.deb ...
+#8 9.914 Unpacking gpg (2.2.27-3ubuntu2.1) ...
+#8 9.933 Selecting previously unselected package pinentry-curses.
+#8 9.934 Preparing to unpack .../077-pinentry-curses_1.1.1-1build2_amd64.deb ...
+#8 9.936 Unpacking pinentry-curses (1.1.1-1build2) ...
+#8 9.951 Selecting previously unselected package gpg-agent.
+#8 9.952 Preparing to unpack .../078-gpg-agent_2.2.27-3ubuntu2.1_amd64.deb ...
+#8 9.953 Unpacking gpg-agent (2.2.27-3ubuntu2.1) ...
+#8 9.972 Selecting previously unselected package gpg-wks-client.
+#8 9.973 Preparing to unpack .../079-gpg-wks-client_2.2.27-3ubuntu2.1_amd64.deb ...
+#8 9.974 Unpacking gpg-wks-client (2.2.27-3ubuntu2.1) ...
+#8 9.988 Selecting previously unselected package gpg-wks-server.
+#8 9.989 Preparing to unpack .../080-gpg-wks-server_2.2.27-3ubuntu2.1_amd64.deb ...
+#8 9.990 Unpacking gpg-wks-server (2.2.27-3ubuntu2.1) ...
+#8 10.00 Selecting previously unselected package gpgsm.
+#8 10.00 Preparing to unpack .../081-gpgsm_2.2.27-3ubuntu2.1_amd64.deb ...
+#8 10.01 Unpacking gpgsm (2.2.27-3ubuntu2.1) ...
+#8 10.02 Selecting previously unselected package gnupg.
+#8 10.02 Preparing to unpack .../082-gnupg_2.2.27-3ubuntu2.1_all.deb ...
+#8 10.03 Unpacking gnupg (2.2.27-3ubuntu2.1) ...
+#8 10.04 Selecting previously unselected package javascript-common.
+#8 10.05 Preparing to unpack .../083-javascript-common_11+nmu1_all.deb ...
+#8 10.05 Unpacking javascript-common (11+nmu1) ...
+
+
+
#8 10.08 Selecting previously unselected package libalgorithm-diff-perl.
+#8 10.08 Preparing to unpack .../084-libalgorithm-diff-perl_1.201-1_all.deb ...
+#8 10.08 Unpacking libalgorithm-diff-perl (1.201-1) ...
+#8 10.10 Selecting previously unselected package libalgorithm-diff-xs-perl.
+#8 10.10 Preparing to unpack .../085-libalgorithm-diff-xs-perl_0.04-6build3_amd64.deb ...
+#8 10.10 Unpacking libalgorithm-diff-xs-perl (0.04-6build3) ...
+#8 10.11 Selecting previously unselected package libalgorithm-merge-perl.
+#8 10.12 Preparing to unpack .../086-libalgorithm-merge-perl_0.08-3_all.deb ...
+#8 10.12 Unpacking libalgorithm-merge-perl (0.08-3) ...
+#8 10.13 Selecting previously unselected package libbrotli1:amd64.
+#8 10.14 Preparing to unpack .../087-libbrotli1_1.0.9-2build6_amd64.deb ...
+#8 10.14 Unpacking libbrotli1:amd64 (1.0.9-2build6) ...
+#8 10.16 Selecting previously unselected package libfreetype6:amd64.
+#8 10.16 Preparing to unpack .../088-libfreetype6_2.11.1+dfsg-1ubuntu0.2_amd64.deb ...
+#8 10.16 Unpacking libfreetype6:amd64 (2.11.1+dfsg-1ubuntu0.2) ...
+#8 10.18 Selecting previously unselected package libfontconfig1:amd64.
+#8 10.18 Preparing to unpack .../089-libfontconfig1_2.13.1-4.2ubuntu5_amd64.deb ...
+#8 10.18 Unpacking libfontconfig1:amd64 (2.13.1-4.2ubuntu5) ...
+#8 10.20 Selecting previously unselected package libjpeg-turbo8:amd64.
+#8 10.20 Preparing to unpack .../090-libjpeg-turbo8_2.1.2-0ubuntu1_amd64.deb ...
+#8 10.20 Unpacking libjpeg-turbo8:amd64 (2.1.2-0ubuntu1) ...
+#8 10.21 Selecting previously unselected package libjpeg8:amd64.
+#8 10.22 Preparing to unpack .../091-libjpeg8_8c-2ubuntu10_amd64.deb ...
+#8 10.22 Unpacking libjpeg8:amd64 (8c-2ubuntu10) ...
+#8 10.23 Selecting previously unselected package libdeflate0:amd64.
+#8 10.23 Preparing to unpack .../092-libdeflate0_1.10-2_amd64.deb ...
+#8 10.24 Unpacking libdeflate0:amd64 (1.10-2) ...
+#8 10.25 Selecting previously unselected package libjbig0:amd64.
+#8 10.25 Preparing to unpack .../093-libjbig0_2.1-3.1ubuntu0.22.04.1_amd64.deb ...
+#8 10.25 Unpacking libjbig0:amd64 (2.1-3.1ubuntu0.22.04.1) ...
+#8 10.27 Selecting previously unselected package libwebp7:amd64.
+
+
+
#8 10.27 Preparing to unpack .../094-libwebp7_1.2.2-2ubuntu0.22.04.2_amd64.deb ...
+#8 10.27 Unpacking libwebp7:amd64 (1.2.2-2ubuntu0.22.04.2) ...
+#8 10.29 Selecting previously unselected package libtiff5:amd64.
+#8 10.29 Preparing to unpack .../095-libtiff5_4.3.0-6ubuntu0.8_amd64.deb ...
+#8 10.29 Unpacking libtiff5:amd64 (4.3.0-6ubuntu0.8) ...
+#8 10.30 Selecting previously unselected package libxpm4:amd64.
+#8 10.30 Preparing to unpack .../096-libxpm4_1%3a3.5.12-1ubuntu0.22.04.2_amd64.deb ...
+#8 10.30 Unpacking libxpm4:amd64 (1:3.5.12-1ubuntu0.22.04.2) ...
+#8 10.32 Selecting previously unselected package libgd3:amd64.
+#8 10.32 Preparing to unpack .../097-libgd3_2.3.0-2ubuntu2_amd64.deb ...
+#8 10.32 Unpacking libgd3:amd64 (2.3.0-2ubuntu2) ...
+#8 10.34 Selecting previously unselected package libc-devtools.
+#8 10.34 Preparing to unpack .../098-libc-devtools_2.35-0ubuntu3.6_amd64.deb ...
+#8 10.34 Unpacking libc-devtools (2.35-0ubuntu3.6) ...
+#8 10.36 Selecting previously unselected package libexpat1-dev:amd64.
+#8 10.36 Preparing to unpack .../099-libexpat1-dev_2.4.7-1ubuntu0.3_amd64.deb ...
+#8 10.36 Unpacking libexpat1-dev:amd64 (2.4.7-1ubuntu0.3) ...
+#8 10.38 Selecting previously unselected package libfile-fcntllock-perl.
+#8 10.38 Preparing to unpack .../100-libfile-fcntllock-perl_0.22-3build7_amd64.deb ...
+#8 10.38 Unpacking libfile-fcntllock-perl (0.22-3build7) ...
+#8 10.40 Selecting previously unselected package libjs-jquery.
+#8 10.40 Preparing to unpack .../101-libjs-jquery_3.6.0+dfsg+~3.5.13-1_all.deb ...
+#8 10.40 Unpacking libjs-jquery (3.6.0+dfsg+~3.5.13-1) ...
+#8 10.43 Selecting previously unselected package libjs-underscore.
+#8 10.43 Preparing to unpack .../102-libjs-underscore_1.13.2~dfsg-2_all.deb ...
+#8 10.43 Unpacking libjs-underscore (1.13.2~dfsg-2) ...
+#8 10.44 Selecting previously unselected package libjs-sphinxdoc.
+#8 10.45 Preparing to unpack .../103-libjs-sphinxdoc_4.3.2-1_all.deb ...
+#8 10.45 Unpacking libjs-sphinxdoc (4.3.2-1) ...
+#8 10.47 Selecting previously unselected package libldap-common.
+#8 10.47 Preparing to unpack .../104-libldap-common_2.5.17+dfsg-0ubuntu0.22.04.1_all.deb ...
+#8 10.47 Unpacking libldap-common (2.5.17+dfsg-0ubuntu0.22.04.1) ...
+#8 10.48 Selecting previously unselected package libpython3.10:amd64.
+
+
+
#8 10.49 Preparing to unpack .../105-libpython3.10_3.10.12-1~22.04.3_amd64.deb ...
+#8 10.49 Unpacking libpython3.10:amd64 (3.10.12-1~22.04.3) ...
+#8 10.52 Selecting previously unselected package zlib1g-dev:amd64.
+#8 10.52 Preparing to unpack .../106-zlib1g-dev_1%3a1.2.11.dfsg-2ubuntu9.2_amd64.deb ...
+#8 10.52 Unpacking zlib1g-dev:amd64 (1:1.2.11.dfsg-2ubuntu9.2) ...
+#8 10.54 Selecting previously unselected package libpython3.10-dev:amd64.
+#8 10.54 Preparing to unpack .../107-libpython3.10-dev_3.10.12-1~22.04.3_amd64.deb ...
+#8 10.54 Unpacking libpython3.10-dev:amd64 (3.10.12-1~22.04.3) ...
+#8 10.64 Selecting previously unselected package libpython3-dev:amd64.
+#8 10.64 Preparing to unpack .../108-libpython3-dev_3.10.6-1~22.04_amd64.deb ...
+#8 10.65 Unpacking libpython3-dev:amd64 (3.10.6-1~22.04) ...
+#8 10.66 Selecting previously unselected package libsasl2-modules:amd64.
+#8 10.66 Preparing to unpack .../109-libsasl2-modules_2.1.27+dfsg2-3ubuntu1.2_amd64.deb ...
+#8 10.67 Unpacking libsasl2-modules:amd64 (2.1.27+dfsg2-3ubuntu1.2) ...
+#8 10.68 Selecting previously unselected package manpages-dev.
+#8 10.68 Preparing to unpack .../110-manpages-dev_5.10-1ubuntu1_all.deb ...
+#8 10.68 Unpacking manpages-dev (5.10-1ubuntu1) ...
+
+
+
#8 10.89 Selecting previously unselected package python3.10-dev.
+#8 10.89 Preparing to unpack .../111-python3.10-dev_3.10.12-1~22.04.3_amd64.deb ...
+#8 10.89 Unpacking python3.10-dev (3.10.12-1~22.04.3) ...
+#8 10.90 Selecting previously unselected package python3-lib2to3.
+#8 10.91 Preparing to unpack .../112-python3-lib2to3_3.10.8-1~22.04_all.deb ...
+#8 10.91 Unpacking python3-lib2to3 (3.10.8-1~22.04) ...
+#8 10.94 Selecting previously unselected package python3-distutils.
+#8 10.94 Preparing to unpack .../113-python3-distutils_3.10.8-1~22.04_all.deb ...
+#8 10.94 Unpacking python3-distutils (3.10.8-1~22.04) ...
+#8 10.98 Selecting previously unselected package python3-dev.
+#8 10.98 Preparing to unpack .../114-python3-dev_3.10.6-1~22.04_amd64.deb ...
+#8 10.98 Unpacking python3-dev (3.10.6-1~22.04) ...
+#8 10.99 Selecting previously unselected package python3-setuptools.
+
+
+
#8 10.99 Preparing to unpack .../115-python3-setuptools_59.6.0-1.2ubuntu0.22.04.1_all.deb ...
+#8 11.00 Unpacking python3-setuptools (59.6.0-1.2ubuntu0.22.04.1) ...
+#8 11.04 Selecting previously unselected package python3-wheel.
+#8 11.04 Preparing to unpack .../116-python3-wheel_0.37.1-2ubuntu0.22.04.1_all.deb ...
+#8 11.04 Unpacking python3-wheel (0.37.1-2ubuntu0.22.04.1) ...
+#8 11.06 Selecting previously unselected package python3-pip.
+#8 11.06 Preparing to unpack .../117-python3-pip_22.0.2+dfsg-1ubuntu0.4_all.deb ...
+#8 11.06 Unpacking python3-pip (22.0.2+dfsg-1ubuntu0.4) ...
+#8 11.19 Setting up libksba8:amd64 (1.6.0-2ubuntu0.2) ...
+#8 11.20 Setting up media-types (7.0.0) ...
+#8 11.20 Setting up javascript-common (11+nmu1) ...
+#8 11.21 Setting up gcc-11-base:amd64 (11.4.0-1ubuntu1~22.04) ...
+#8 11.22 Setting up libxau6:amd64 (1:1.0.9-1build5) ...
+#8 11.22 Setting up lto-disabled-list (24) ...
+#8 11.22 Setting up manpages (5.10-1ubuntu1) ...
+#8 11.23 Setting up libbrotli1:amd64 (1.0.9-2build6) ...
+#8 11.23 Setting up libsqlite3-0:amd64 (3.37.2-2ubuntu0.3) ...
+#8 11.23 Setting up libsasl2-modules:amd64 (2.1.27+dfsg2-3ubuntu1.2) ...
+#8 11.24 Setting up binutils-common:amd64 (2.38-4ubuntu2.6) ...
+#8 11.24 Setting up libdeflate0:amd64 (1.10-2) ...
+#8 11.25 Setting up linux-libc-dev:amd64 (5.15.0-100.110) ...
+#8 11.25 Setting up libctf-nobfd0:amd64 (2.38-4ubuntu2.6) ...
+#8 11.25 Setting up libnpth0:amd64 (1.6-3build2) ...
+#8 11.26 Setting up libassuan0:amd64 (2.5.5-1build1) ...
+#8 11.26 Setting up libgomp1:amd64 (12.3.0-1ubuntu1~22.04) ...
+#8 11.26 Setting up perl-modules-5.34 (5.34.0-3ubuntu1.3) ...
+#8 11.26 Setting up bzip2 (1.0.8-5build1) ...
+#8 11.27 Setting up libldap-common (2.5.17+dfsg-0ubuntu0.22.04.1) ...
+#8 11.27 Setting up libjbig0:amd64 (2.1-3.1ubuntu0.22.04.1) ...
+#8 11.28 Setting up libfakeroot:amd64 (1.28-1ubuntu1) ...
+#8 11.28 Setting up libasan6:amd64 (11.4.0-1ubuntu1~22.04) ...
+#8 11.28 Setting up libsasl2-modules-db:amd64 (2.1.27+dfsg2-3ubuntu1.2) ...
+#8 11.29 Setting up fakeroot (1.28-1ubuntu1) ...
+#8 11.29 update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode
+#8 11.29 update-alternatives: warning: skip creation of /usr/share/man/man1/fakeroot.1.gz because associated file /usr/share/man/man1/fakeroot-sysv.1.gz (of link group fakeroot) doesn't exist
+#8 11.29 update-alternatives: warning: skip creation of /usr/share/man/man1/faked.1.gz because associated file /usr/share/man/man1/faked-sysv.1.gz (of link group fakeroot) doesn't exist
+#8 11.29 update-alternatives: warning: skip creation of /usr/share/man/es/man1/fakeroot.1.gz because associated file /usr/share/man/es/man1/fakeroot-sysv.1.gz (of link group fakeroot) doesn't exist
+#8 11.29 update-alternatives: warning: skip creation of /usr/share/man/es/man1/faked.1.gz because associated file /usr/share/man/es/man1/faked-sysv.1.gz (of link group fakeroot) doesn't exist
+#8 11.29 update-alternatives: warning: skip creation of /usr/share/man/fr/man1/fakeroot.1.gz because associated file /usr/share/man/fr/man1/fakeroot-sysv.1.gz (of link group fakeroot) doesn't exist
+#8 11.29 update-alternatives: warning: skip creation of /usr/share/man/fr/man1/faked.1.gz because associated file /usr/share/man/fr/man1/faked-sysv.1.gz (of link group fakeroot) doesn't exist
+#8 11.29 update-alternatives: warning: skip creation of /usr/share/man/sv/man1/fakeroot.1.gz because associated file /usr/share/man/sv/man1/fakeroot-sysv.1.gz (of link group fakeroot) doesn't exist
+#8 11.29 update-alternatives: warning: skip creation of /usr/share/man/sv/man1/faked.1.gz because associated file /usr/share/man/sv/man1/faked-sysv.1.gz (of link group fakeroot) doesn't exist
+#8 11.30 Setting up libtirpc-dev:amd64 (1.3.2-2ubuntu0.1) ...
+
+
+
#8 11.30 Setting up rpcsvc-proto (1.4.2-0ubuntu6) ...
+#8 11.30 Setting up libx11-data (2:1.7.5-1ubuntu0.3) ...
+#8 11.30 Setting up make (4.3-4.1build1) ...
+#8 11.31 Setting up libmpfr6:amd64 (4.1.0-3build3) ...
+#8 11.31 Setting up gnupg-l10n (2.2.27-3ubuntu2.1) ...
+#8 11.31 Setting up xz-utils (5.2.5-2ubuntu1) ...
+#8 11.32 update-alternatives: using /usr/bin/xz to provide /usr/bin/lzma (lzma) in auto mode
+#8 11.32 update-alternatives: warning: skip creation of /usr/share/man/man1/lzma.1.gz because associated file /usr/share/man/man1/xz.1.gz (of link group lzma) doesn't exist
+#8 11.32 update-alternatives: warning: skip creation of /usr/share/man/man1/unlzma.1.gz because associated file /usr/share/man/man1/unxz.1.gz (of link group lzma) doesn't exist
+#8 11.32 update-alternatives: warning: skip creation of /usr/share/man/man1/lzcat.1.gz because associated file /usr/share/man/man1/xzcat.1.gz (of link group lzma) doesn't exist
+#8 11.32 update-alternatives: warning: skip creation of /usr/share/man/man1/lzmore.1.gz because associated file /usr/share/man/man1/xzmore.1.gz (of link group lzma) doesn't exist
+#8 11.32 update-alternatives: warning: skip creation of /usr/share/man/man1/lzless.1.gz because associated file /usr/share/man/man1/xzless.1.gz (of link group lzma) doesn't exist
+#8 11.32 update-alternatives: warning: skip creation of /usr/share/man/man1/lzdiff.1.gz because associated file /usr/share/man/man1/xzdiff.1.gz (of link group lzma) doesn't exist
+#8 11.32 update-alternatives: warning: skip creation of /usr/share/man/man1/lzcmp.1.gz because associated file /usr/share/man/man1/xzcmp.1.gz (of link group lzma) doesn't exist
+#8 11.32 update-alternatives: warning: skip creation of /usr/share/man/man1/lzgrep.1.gz because associated file /usr/share/man/man1/xzgrep.1.gz (of link group lzma) doesn't exist
+#8 11.32 update-alternatives: warning: skip creation of /usr/share/man/man1/lzegrep.1.gz because associated file /usr/share/man/man1/xzegrep.1.gz (of link group lzma) doesn't exist
+#8 11.32 update-alternatives: warning: skip creation of /usr/share/man/man1/lzfgrep.1.gz because associated file /usr/share/man/man1/xzfgrep.1.gz (of link group lzma) doesn't exist
+#8 11.32 Setting up libquadmath0:amd64 (12.3.0-1ubuntu1~22.04) ...
+#8 11.33 Setting up libpng16-16:amd64 (1.6.37-3build5) ...
+#8 11.33 Setting up libmpc3:amd64 (1.2.1-2build1) ...
+#8 11.34 Setting up libatomic1:amd64 (12.3.0-1ubuntu1~22.04) ...
+#8 11.34 Setting up patch (2.7.6-7build2) ...
+#8 11.34 Setting up fonts-dejavu-core (2.37-2build1) ...
+#8 11.35 Setting up ucf (3.0043) ...
+#8 11.43 debconf: unable to initialize frontend: Dialog
+#8 11.43 debconf: (TERM is not set, so the dialog frontend is not usable.)
+#8 11.43 debconf: falling back to frontend: Readline
+#8 11.45 Setting up libjpeg-turbo8:amd64 (2.1.2-0ubuntu1) ...
+#8 11.45 Setting up libsasl2-2:amd64 (2.1.27+dfsg2-3ubuntu1.2) ...
+#8 11.46 Setting up libwebp7:amd64 (1.2.2-2ubuntu0.22.04.2) ...
+#8 11.46 Setting up libubsan1:amd64 (12.3.0-1ubuntu1~22.04) ...
+#8 11.46 Setting up libmd0:amd64 (1.0.4-1build1) ...
+#8 11.47 Setting up libnsl-dev:amd64 (1.3.0-2build2) ...
+#8 11.47 Setting up libcrypt-dev:amd64 (1:4.4.27-1) ...
+#8 11.47 Setting up libmpdec3:amd64 (2.5.1-2build2) ...
+#8 11.47 Setting up netbase (6.3) ...
+#8 11.48 Setting up libjs-jquery (3.6.0+dfsg+~3.5.13-1) ...
+#8 11.49 Setting up libbinutils:amd64 (2.38-4ubuntu2.6) ...
+#8 11.49 Setting up libisl23:amd64 (0.24-2build1) ...
+#8 11.50 Setting up libc-dev-bin (2.35-0ubuntu3.6) ...
+#8 11.50 Setting up openssl (3.0.2-0ubuntu1.15) ...
+#8 11.50 Setting up libbsd0:amd64 (0.11.5-1) ...
+#8 11.51 Setting up readline-common (8.1.2-1) ...
+#8 11.51 Setting up libcc1-0:amd64 (12.3.0-1ubuntu1~22.04) ...
+#8 11.51 Setting up liblocale-gettext-perl (1.07-4build3) ...
+#8 11.52 Setting up liblsan0:amd64 (12.3.0-1ubuntu1~22.04) ...
+#8 11.52 Setting up libitm1:amd64 (12.3.0-1ubuntu1~22.04) ...
+#8 11.53 Setting up libgdbm6:amd64 (1.23-1) ...
+#8 11.53 Setting up libjs-underscore (1.13.2~dfsg-2) ...
+
+
+
#8 11.53 Setting up libtsan0:amd64 (11.4.0-1ubuntu1~22.04) ...
+#8 11.54 Setting up libctf0:amd64 (2.38-4ubuntu2.6) ...
+#8 11.54 Setting up libjpeg8:amd64 (8c-2ubuntu10) ...
+#8 11.54 Setting up pinentry-curses (1.1.1-1build2) ...
+#8 11.55 Setting up cpp-11 (11.4.0-1ubuntu1~22.04) ...
+#8 11.55 Setting up manpages-dev (5.10-1ubuntu1) ...
+#8 11.55 Setting up libxdmcp6:amd64 (1:1.1.3-0ubuntu5) ...
+#8 11.56 Setting up libxcb1:amd64 (1.14-3ubuntu3) ...
+#8 11.56 Setting up fontconfig-config (2.13.1-4.2ubuntu5) ...
+#8 11.61 Setting up libreadline8:amd64 (8.1.2-1) ...
+#8 11.62 Setting up libldap-2.5-0:amd64 (2.5.17+dfsg-0ubuntu0.22.04.1) ...
+#8 11.62 Setting up libpython3.10-stdlib:amd64 (3.10.12-1~22.04.3) ...
+#8 11.63 Setting up ca-certificates (20230311ubuntu0.22.04.1) ...
+#8 11.71 debconf: unable to initialize frontend: Dialog
+#8 11.71 debconf: (TERM is not set, so the dialog frontend is not usable.)
+#8 11.71 debconf: falling back to frontend: Readline
+
+
+
#8 12.09 Updating certificates in /etc/ssl/certs...
+
+
+
#8 12.63 137 added, 0 removed; done.
+
+
+
#8 12.65 Setting up libfreetype6:amd64 (2.11.1+dfsg-1ubuntu0.2) ...
+#8 12.65 Setting up libgdbm-compat4:amd64 (1.23-1) ...
+#8 12.66 Setting up libjs-sphinxdoc (4.3.2-1) ...
+#8 12.66 Setting up libgcc-11-dev:amd64 (11.4.0-1ubuntu1~22.04) ...
+#8 12.66 Setting up cpp (4:11.2.0-1ubuntu1) ...
+#8 12.67 Setting up gpgconf (2.2.27-3ubuntu2.1) ...
+#8 12.67 Setting up libc6-dev:amd64 (2.35-0ubuntu3.6) ...
+#8 12.67 Setting up libx11-6:amd64 (2:1.7.5-1ubuntu0.3) ...
+#8 12.68 Setting up libtiff5:amd64 (4.3.0-6ubuntu0.8) ...
+#8 12.68 Setting up libfontconfig1:amd64 (2.13.1-4.2ubuntu5) ...
+#8 12.68 Setting up gpg (2.2.27-3ubuntu2.1) ...
+#8 12.68 Setting up libpython3-stdlib:amd64 (3.10.6-1~22.04) ...
+#8 12.69 Setting up gnupg-utils (2.2.27-3ubuntu2.1) ...
+#8 12.69 Setting up binutils-x86-64-linux-gnu (2.38-4ubuntu2.6) ...
+#8 12.69 Setting up libpython3.10:amd64 (3.10.12-1~22.04.3) ...
+#8 12.69 Setting up libperl5.34:amd64 (5.34.0-3ubuntu1.3) ...
+#8 12.70 Setting up gpg-agent (2.2.27-3ubuntu2.1) ...
+
+
+
#8 13.09 Setting up python3.10 (3.10.12-1~22.04.3) ...
+
+
+
#8 13.61 Setting up libxpm4:amd64 (1:3.5.12-1ubuntu0.22.04.2) ...
+#8 13.61 Setting up gpgsm (2.2.27-3ubuntu2.1) ...
+#8 13.62 Setting up python3 (3.10.6-1~22.04) ...
+#8 13.62 running python rtupdate hooks for python3.10...
+#8 13.62 running python post-rtupdate hooks for python3.10...
+#8 13.69 Setting up binutils (2.38-4ubuntu2.6) ...
+#8 13.70 Setting up dirmngr (2.2.27-3ubuntu2.1) ...
+#8 13.81 Setting up perl (5.34.0-3ubuntu1.3) ...
+
+
+
#8 13.82 Setting up libexpat1-dev:amd64 (2.4.7-1ubuntu0.3) ...
+#8 13.82 Setting up libgd3:amd64 (2.3.0-2ubuntu2) ...
+#8 13.83 Setting up libdpkg-perl (1.21.1ubuntu2.3) ...
+#8 13.83 Setting up libstdc++-11-dev:amd64 (11.4.0-1ubuntu1~22.04) ...
+#8 13.83 Setting up gpg-wks-server (2.2.27-3ubuntu2.1) ...
+#8 13.84 Setting up zlib1g-dev:amd64 (1:1.2.11.dfsg-2ubuntu9.2) ...
+#8 13.84 Setting up gcc-11 (11.4.0-1ubuntu1~22.04) ...
+#8 13.84 Setting up python3-lib2to3 (3.10.8-1~22.04) ...
+#8 13.92 Setting up libc-devtools (2.35-0ubuntu3.6) ...
+#8 13.93 Setting up python3-pkg-resources (59.6.0-1.2ubuntu0.22.04.1) ...
+#8 14.07 Setting up python3-distutils (3.10.8-1~22.04) ...
+
+
+
#8 14.17 Setting up python3-setuptools (59.6.0-1.2ubuntu0.22.04.1) ...
+
+
+
#8 14.44 Setting up gpg-wks-client (2.2.27-3ubuntu2.1) ...
+#8 14.44 Setting up g++-11 (11.4.0-1ubuntu1~22.04) ...
+#8 14.45 Setting up libfile-fcntllock-perl (0.22-3build7) ...
+#8 14.45 Setting up libalgorithm-diff-perl (1.201-1) ...
+#8 14.45 Setting up python3-wheel (0.37.1-2ubuntu0.22.04.1) ...
+#8 14.56 Setting up gcc (4:11.2.0-1ubuntu1) ...
+
+
+
#8 14.57 Setting up dpkg-dev (1.21.1ubuntu2.3) ...
+#8 14.57 Setting up libpython3.10-dev:amd64 (3.10.12-1~22.04.3) ...
+#8 14.58 Setting up python3-pip (22.0.2+dfsg-1ubuntu0.4) ...
+
+
+
#8 15.43 Setting up python3.10-dev (3.10.12-1~22.04.3) ...
+
+
+
#8 15.43 Setting up g++ (4:11.2.0-1ubuntu1) ...
+#8 15.45 update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
+#8 15.45 update-alternatives: warning: skip creation of /usr/share/man/man1/c++.1.gz because associated file /usr/share/man/man1/g++.1.gz (of link group c++) doesn't exist
+#8 15.46 Setting up gnupg (2.2.27-3ubuntu2.1) ...
+#8 15.46 Setting up build-essential (12.9ubuntu3) ...
+#8 15.46 Setting up libalgorithm-diff-xs-perl (0.04-6build3) ...
+#8 15.47 Setting up libalgorithm-merge-perl (0.08-3) ...
+#8 15.47 Setting up libpython3-dev:amd64 (3.10.6-1~22.04) ...
+#8 15.47 Setting up python3-dev (3.10.6-1~22.04) ...
+#8 15.48 Processing triggers for libc-bin (2.35-0ubuntu3.6) ...
+#8 15.52 Processing triggers for ca-certificates (20230311ubuntu0.22.04.1) ...
+#8 15.53 Updating certificates in /etc/ssl/certs...
 
-
#8 22.43 0 added, 0 removed; done.
-#8 22.43 Running hooks in /etc/ca-certificates/update.d...
-#8 22.44 done.
+
#8 15.94 0 added, 0 removed; done.
+#8 15.94 Running hooks in /etc/ca-certificates/update.d...
+#8 15.94 done.
 
-
#8 DONE 23.2s
+
#8 DONE 16.7s
 
 #9 [device 4/6] RUN pip3 install BACpypes
 
-
#9 0.727 Collecting BACpypes
+
#9 0.607 Collecting BACpypes
+#9 0.689   Downloading bacpypes-0.18.7-py3-none-any.whl (191 kB)
+#9 0.735      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 191.5/191.5 KB 4.3 MB/s eta 0:00:00
 
-
#9 0.784   Downloading bacpypes-0.18.7-py3-none-any.whl (191 kB)
-#9 0.813      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 191.5/191.5 KB 6.7 MB/s eta 0:00:00
-#9 0.818 Installing collected packages: BACpypes
-#9 0.952 Successfully installed BACpypes-0.18.7
-#9 0.953 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
-#9 DONE 1.0s
+
#9 0.739 Installing collected packages: BACpypes
+#9 0.871 Successfully installed BACpypes-0.18.7
+#9 0.871 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+#9 DONE 0.9s
 
 #10 [device 5/6] COPY virtual_bacnet.py virtual_bacnet.py
 #10 DONE 0.0s
 
 #11 [device 6/6] COPY BACpypes.ini .
 #11 DONE 0.0s
-
-
-
#12 [device] exporting to image
+
+#12 [device] exporting to image
 #12 exporting layers
 
#12 exporting layers 2.4s done
-#12 writing image sha256:644201569195026d46194bedaa9550211037d64f67e1ea8ef05afa40010010b5 done
+#12 writing image sha256:688331eb8c2b93d64fea6afab2c32537baf5784767e1237de6e7afcf69cb05bb done
 #12 naming to docker.io/library/guides-device done
 #12 DONE 2.4s
 
@@ -1721,12 +1682,6 @@

BuildingMOTIF Setup -
/opt/hostedtoolcache/Python/3.11.8/x64/lib/python3.11/site-packages/pyshacl/extras/__init__.py:46: Warning: Extra "js" is not satisfied because requirement pyduktape2 is not installed.
-  warn(Warning(f"Extra \"{extra_name}\" is not satisfied because requirement {req} is not installed."))
-
-
-

@@ -1743,61 +1698,61 @@

Pulling in BACnet Metadata -
2024-03-15 20:40:31,828 - INFO    | Starting BAC0 version 22.9.21 (Lite)
+
2024-03-17 20:58:54,522 - INFO    | Starting BAC0 version 22.9.21 (Lite)
 
-
2024-03-15 20:40:31,829 - INFO    | Use BAC0.log_level to adjust verbosity of the app.
+
2024-03-17 20:58:54,522 - INFO    | Use BAC0.log_level to adjust verbosity of the app.
 
-
2024-03-15 20:40:31,830 - INFO    | Ex. BAC0.log_level('silence') or BAC0.log_level('error')
+
2024-03-17 20:58:54,523 - INFO    | Ex. BAC0.log_level('silence') or BAC0.log_level('error')
 
-
2024-03-15 20:40:31,830 - INFO    | Starting TaskManager
+
2024-03-17 20:58:54,523 - INFO    | Starting TaskManager
 
-
2024-03-15 20:40:31,831 - INFO    | Using ip : 172.24.0.1
+
2024-03-17 20:58:54,524 - INFO    | Using ip : 172.24.0.1
 
-
2024-03-15 20:40:31,844 - INFO    | Starting app...
+
2024-03-17 20:58:54,537 - INFO    | Starting app...
 
-
2024-03-15 20:40:31,845 - INFO    | BAC0 started
+
2024-03-17 20:58:54,538 - INFO    | BAC0 started
 
-
2024-03-15 20:40:31,846 - INFO    | Registered as Simple BACnet/IP App
+
2024-03-17 20:58:54,539 - INFO    | Registered as Simple BACnet/IP App
 
-
2024-03-15 20:40:31,847 - INFO    | Update Local COV Task started
+
2024-03-17 20:58:54,540 - INFO    | Update Local COV Task started
 
-
2024-03-15 20:40:35,851 - INFO    | Found those networks : set()
+
2024-03-17 20:58:58,545 - INFO    | Found those networks : set()
 
-
2024-03-15 20:40:35,852 - INFO    | No BACnet network found, attempting a simple whois using provided device instances limits (0 - 4194303)
+
2024-03-17 20:58:58,545 - INFO    | No BACnet network found, attempting a simple whois using provided device instances limits (0 - 4194303)
 
-
2024-03-15 20:40:38,853 - INFO    | Changing device state to DeviceDisconnected'>
+
2024-03-17 20:59:01,547 - INFO    | Changing device state to DeviceDisconnected'>
 
-
2024-03-15 20:40:38,860 - INFO    | Changing device state to RPMDeviceConnected'>
+
2024-03-17 20:59:01,554 - INFO    | Changing device state to RPMDeviceConnected'>
 
-
2024-03-15 20:40:38,868 - INFO    | Device 599:[VirtualBACnet] found... building points list
+
2024-03-17 20:59:01,562 - INFO    | Device 599:[VirtualBACnet] found... building points list
 
-
2024-03-15 20:40:38,879 - INFO    | Ready!
+
2024-03-17 20:59:01,572 - INFO    | Ready!
 
-
2024-03-15 20:40:38,879 - INFO    | Stopping all tasks
+
2024-03-17 20:59:01,573 - INFO    | Stopping all tasks
 
-
2024-03-15 20:40:38,883 - INFO    | Stopping TaskManager
+
2024-03-17 20:59:01,576 - INFO    | Stopping TaskManager
 
-
2024-03-15 20:40:38,890 - INFO    | Ok all tasks stopped
+
2024-03-17 20:59:01,583 - INFO    | Ok all tasks stopped
 
-
2024-03-15 20:40:38,890 - INFO    | BACnet stopped
+
2024-03-17 20:59:01,584 - INFO    | BACnet stopped
 
Record(rtype='Device', fields={'address': '172.24.0.3', 'device_id': 599})
diff --git a/objects.inv b/objects.inv
index 45cc882f5ca8c8ee6a8e35e32a12242e8717ce7e..b7d90edf111b2efde6a981ffaf7c72a8aef4effe 100644
GIT binary patch
delta 3815
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

delta 3776
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
qjTBDzISxy8mA2buildingmotif.dataclasses.model

-validate(shape_collections: Optional[List[ShapeCollection]] = None, error_on_missing_imports: bool = True) ValidationContext[source]#
+validate(shape_collections: Optional[List[ShapeCollection]] = None, error_on_missing_imports: bool = True, engine: Optional[str] = 'pyshacl') ValidationContext[source]#

Validates this model against the given list of ShapeCollections. If no list is provided, the model will be validated against the model’s “manifest”. If a list of shape collections is provided, the manifest will not be automatically @@ -566,6 +566,9 @@

buildingmotif.dataclasses.model

  • error_on_missing_imports (bool, optional) – if True, raises an error if any of the dependency ontologies are missing (i.e. they need to be loaded into BuildingMOTIF), defaults to True

  • +
  • engine (str, optional) – the engine to use for validation. “pyshacl” or “topquadrant”. Using topquadrant +requires Java to be installed on this machine, and the “topquadrant” feature on BuildingMOTIF, +defaults to “pyshacl”

  • Returns:
    @@ -580,12 +583,17 @@

    buildingmotif.dataclasses.model

    -compile(shape_collections: List[ShapeCollection])[source]#
    +compile(shape_collections: List[ShapeCollection], engine: str = 'pyshacl')[source]#

    Compile the graph of a model against a set of ShapeCollections.

    Parameters:
    -

    shape_collections (List[ShapeCollection]) – list of ShapeCollections to compile the model -against

    +
      +
    • shape_collections (List[ShapeCollection]) – list of ShapeCollections to compile the model +against

    • +
    • engine (str) – the engine to use for validation. “pyshacl” or “topquadrant”. Using topquadrant +requires Java to be installed on this machine, and the “topquadrant” feature on BuildingMOTIF, +defaults to “pyshacl”

    • +
    Returns:

    copy of model’s graph that has been compiled against the diff --git a/reference/apidoc/_autosummary/buildingmotif.dataclasses.validation.html b/reference/apidoc/_autosummary/buildingmotif.dataclasses.validation.html index c64b00bf2..7723126ef 100644 --- a/reference/apidoc/_autosummary/buildingmotif.dataclasses.validation.html +++ b/reference/apidoc/_autosummary/buildingmotif.dataclasses.validation.html @@ -481,7 +481,7 @@

    buildingmotif.dataclasses.validation

    RequiredPath(focus, validation_result, ...)

    Represents an entity missing a required property.

    -

    ValidationContext(shape_collections, valid, ...)

    +

    ValidationContext(shape_collections, ...)

    Holds the necessary information for processing the results of SHACL validation.

    @@ -767,7 +767,7 @@

    buildingmotif.dataclasses.validation

    -class ValidationContext(shape_collections: List[ShapeCollection], valid: bool, report: Graph, report_string: str, model: Model)[source]#
    +class ValidationContext(shape_collections: List[ShapeCollection], shapes_graph: Graph, valid: bool, report: Graph, report_string: str, model: Model)[source]#

    Holds the necessary information for processing the results of SHACL validation.

    @@ -775,6 +775,11 @@

    buildingmotif.dataclasses.validation

    shape_collections: List[ShapeCollection]#
    +
    +
    +shapes_graph: Graph#
    +
    +
    valid: bool#
    @@ -817,6 +822,27 @@

    buildingmotif.dataclasses.validation

    +
    +
    +get_reasons_with_severity(severity: Union[URIRef, str]) Dict[Optional[URIRef], Set[GraphDiff]][source]#
    +

    Like diffset, but only includes ValidationResults with the given severity. +Permitted values are: +- SH.Violation or “Violation” for violations +- SH.Warning or “Warning” for warnings +- SH.Info or “Info” for info

    +
    +
    Parameters:
    +

    severity (Union[URIRef|str]) – the severity to filter by

    +
    +
    Returns:
    +

    a dictionary of focus nodes to the reasons with the given severity

    +
    +
    Return type:
    +

    Dict[Optional[URIRef], Set[GraphDiff]]

    +
    +
    +
    +
    diff --git a/reference/apidoc/_autosummary/buildingmotif.utils.html b/reference/apidoc/_autosummary/buildingmotif.utils.html index a05edda1b..60abfa684 100644 --- a/reference/apidoc/_autosummary/buildingmotif.utils.html +++ b/reference/apidoc/_autosummary/buildingmotif.utils.html @@ -488,6 +488,12 @@

    buildingmotif.utils

    rewrite_shape_graph(g)

    Rewrites the input graph to make the resulting validation report more useful.

    +

    shacl_inference(data_graph[, shape_graph, ...])

    +

    Infer new triples in the data graph using the shape graph.

    + +

    shacl_validate(data_graph[, shape_graph, engine])

    +

    Validate the data graph against the shape graph.

    +

    skip_uri(uri)

    Returns True if the URI should be skipped during processing because it is axiomatic or not expected to be imported.

    @@ -729,6 +735,53 @@

    buildingmotif.utils

    +
    +
    +shacl_validate(data_graph: Graph, shape_graph: Optional[Graph] = None, engine='topquadrant') Tuple[bool, Graph, str][source]#
    +

    Validate the data graph against the shape graph. +Uses the fastest validation method available. Use the ‘topquadrant’ feature +to use TopQuadrant’s SHACL engine. Defaults to using PySHACL.

    +
    +
    Parameters:
    +
      +
    • data_graph (Graph) – the graph to validate

    • +
    • shape_graph (Graph, optional) – the shape graph to validate against

    • +
    • engine (str, optional) – the SHACL engine to use, defaults to “topquadrant”

    • +
    +
    +
    Returns:
    +

    a tuple containing the validation result, the validation report, and the validation report string

    +
    +
    Return type:
    +

    Tuple[bool, Graph, str]

    +
    +
    +
    + +
    +
    +shacl_inference(data_graph: Graph, shape_graph: Optional[Graph] = None, engine='topquadrant') Graph[source]#
    +

    Infer new triples in the data graph using the shape graph. +Edits the data graph in place. Uses the fastest inference method available. +Use the ‘topquadrant’ feature to use TopQuadrant’s SHACL engine. Defaults to +using PySHACL.

    +
    +
    Parameters:
    +
      +
    • data_graph (Graph) – the graph to infer new triples in

    • +
    • shape_graph (Optional[Graph]) – the shape graph to use for inference

    • +
    • engine (str, optional) – the SHACL engine to use, defaults to “topquadrant”

    • +
    +
    +
    Returns:
    +

    the data graph with inferred triples

    +
    +
    Return type:
    +

    Graph

    +
    +
    +
    +