From 283bf06ada6f62e2bc862ba28c3095cd855b4bf0 Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Tue, 19 Apr 2016 12:54:46 -0400 Subject: [PATCH] Generate AppImage package for GNU/Linux x86_64 Fixes: https://github.com/resin-io/etcher/issues/323 Signed-off-by: Juan Cruz Viotti --- Etcher.desktop | 6 ++++++ Makefile | 14 +++++++++++++- scripts/AppImageAssistant | Bin 0 -> 1310720 bytes scripts/AppRun | Bin 0 -> 10448 bytes 4 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 Etcher.desktop create mode 100755 scripts/AppImageAssistant create mode 100755 scripts/AppRun diff --git a/Etcher.desktop b/Etcher.desktop new file mode 100644 index 0000000000..2683d670f8 --- /dev/null +++ b/Etcher.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Name=Etcher +Exec=etcher +Description=Burn images to SD cards & USB drives, safe & easy. +Icon=icon +Type=Application diff --git a/Makefile b/Makefile index 0dbb37a754..f9b5c551b3 100644 --- a/Makefile +++ b/Makefile @@ -54,6 +54,7 @@ etcher-release/Etcher-linux-x86: . --out=$(dir $@) mv $(dir $@)Etcher-linux-ia32 $@ mv $@/Etcher $@/etcher + chmod a+x $@/*.so* upx -9 $@/etcher $@/libnode.so etcher-release/Etcher-linux-x64: . @@ -68,6 +69,7 @@ etcher-release/Etcher-linux-x64: . --overwrite \ --out=$(dir $@) mv $@/Etcher $@/etcher + chmod a+x $@/*.so* upx -9 $@/etcher $@/*.so* etcher-release/Etcher-win32-x86: . @@ -203,6 +205,16 @@ etcher-release/installers/Etcher-linux-x86.tar.gz: etcher-release/Etcher-linux-x mkdir -p $(dir $@) tar -zcf $@ $< +etcher-release/installers/Etcher-linux-x64.AppImage: etcher-release/Etcher-linux-x64 + mkdir -p $(dir $<)Etcher-linux-x64.AppDir/usr/bin + cp ./scripts/AppRun $(dir $<)Etcher-linux-x64.AppDir + chmod a+x $(dir $<)Etcher-linux-x64.AppDir/AppRun + cp ./Etcher.desktop $(dir $<)Etcher-linux-x64.AppDir + cp ./assets/icon.png $(dir $<)Etcher-linux-x64.AppDir + cp -rf $20E$Qq78aS+=#Gi5;*3v0NzK3v+{r-+&@3xJ7?k2E7);A83NY`E z6uY^*Zd<$VQ`v5Pv+uW`YgPzqpl!8eX_h^ZmEDm_E1$BI|NC?9z2gNPZ8!h>ZNIN` zVCJ09=bZC7pYuM?=iGbdZnrnnB#MG=Ou|(HQLf7zjHP}HLW`e~8ZSi{BshfO!bQRW zaH8;WFdwp2mu?@?MC*367A^vIBt9u7m62j{Fo$jrSJ_BIHM)jmQ+g+iLvyOO_g0nE zZ9%Xw2E`*?yDJz8yO23_d!;6{<$Tp&k4NfJyy!}mA6;3<9J<}5DW=q=BW$ZjuO)!5QG_ujN+S-u=>wrrV>wJ$B384=s7-&GH==tiEyWcqJy{t=r}dU;p9Hm(;B& z9KS7Q(SRqXf7tfK^#943IB(ZySy%1Tf>B(7lwZzj6P$-g#US%@aKjJe_@#L?}p(QhAGEO z!^pog3_m7}{PAJ$e~56QP+wcfIJ!O$LyqMX zatgF`*JyHdJr6P*&Jn6L96&NNQ`hr)2ct_hAbzUx>u0EZeGd8xLQy^J8m{u;Waddt z|1QbFXqvB)S)$`+cQE=r)EhESXz~j!4n}{Z;WJkcKU(DvW4?m$D~&HqRryzH{Kqso z`!&8zlm8Ji7%zO$yGX-L3oh)}_|;nZ>ih+o{Ccf?Y2HUBO_Lv=Il?Y9Ki&k&l8b32LP3GArlzv0puDQM$X`}fDQJNT zD(d{cMZ~^UD6jSTZk;+gWa#R`2`D#Y8Mpvi{_R43MzfKg8|Qyx@y%?TI2IARGr0Dl~4-q`96Qaf~pE%K}lH+ zNJIScs;XOA%o?A+uBNh}thAuCsI0u;_M)1~vdZ}gJg=^-yriJCtlU>wRN+$vGYP7* zwz|BGk}$|DtE~0a5RX(L-0q-E*oC@E0<*?fTT9GhVont*ZY=?f)dI3WCE{D;D_$tn zR@anO`b&lCvTC1D4S=g^C_p8JsIK$Z0(F#R@vQ~L3vOllk{HUG&tF|uBHUV5UM`gS zs!D}YaEht4Ykhv9rh>vy(IY+JHBl&quwtRKxV);?CsY)b1AL|kK%>G(!7o5k<%^J* zALR#OzDj84FM&!z>FqUTREkt3gfd{gus{`5s%eirl=v1wHGdg^VN&I|3uc@jKKhOk>6h< z6nJJLSP9x98YMtJp*yM(lT`sl$x%@3Uu4WZ^E8B~5-hDn8ABmz+eZCJ#=N>xz%7(j z6)z~Np~_;2%Sy{%Rj>fq*am%jmXG4zVYNT$8EqL-&kN z1pZW)$zYS4_^J=>f#?*)QTgajnM?K2xhCw54FF%4Y79eel^)1qs-aX3MC{d^{AV)o zXg4R^-^qSDhsIVxu;BCO5qHK2!a$*28vscb?Z@c;b;HUA(T>ndA^%9>5sYQzPiDo> zeu=5Y0AUCGiFaOE**UZm_<=?zFgjA`(P&kkDI{-aRUwICdwD-*F7->FFVVDu_Ju;G zx{x_(c+`eeMn@a?gr{!e4SXsa-6R_LTGp7C#lWYub(3V^>vJjcvl;l>kj z@bxttdG9pv^|dbXyAAv_VrWJ&@UPODu=gAIR~z_8419-yFKFv-s{c*{Kia@gH}K;P z{0sv>(ZF{Z_!a|SUsI8Hl7XLT2yZj+vkZKx;nQg4G4$lhM0DHAE6_=5*c`n{57Ij& zCf_3Tj*7*%8EePhQA95w?_hT?%qSDlG{gnF7=1JkG!1RRHb#F*G!1FNHH_X%G!13J zRgB(EG!0?F7Dm5KG!0$BdPZ*}nqUl8Gx{Z>X{ZVoGI}G?G(-h+7`>io8k&L*M*la_ zG$aLWjQ$JJG!z9bjQ#`BGz10X8T}B^H1q@oM*o~>8d`$;kApGlr$p0`66|L5y+jWo zx{J|w5PdGuZH%rV`aGi7F!~mvX~+n!V)Q(shZ5bw=o^TpAtG4M=v<;{Xb4s_`Wm8X zNC*}(I-O`53W7O|zJh2P0)h@kPb8YU{-BM~V~M6NKWJg}NTR8$55_Zk7}3ziD>G|gI$b1nhTn`@L(IGza*Nv?%*0m?R=0_-zJ*6=wLmgw-G&>=xRp4L^O5D!9qrFB$~S7U=E|#6HQ%k(81{cCYq*fK^vq0 zLNs;7K?|e*Ks0s1!FWbLL^O51L4nafCz`t4;Qnt}`4dfDZLpis_Y!RPmyF7(I{ZDMYt0`Uaw@>kQU2I+tkbGK1BOzJ_S(5`%?|PA8hW z!e9=guORvgq8*H$NHlecK^vpT5=~uU(8B1EL{k?SjA!&PqN(c(3XDFNXzKEU`@do3 zPqc&RZbqAkrYiU5)-E+5KHc~ zw<+t<3Z&vLsrh;9Ds&62!;l)-9}*ip60KZD1PS;h33#}+P*5UJc^Z!Nnj05`r9=Ta zP^B&A#!a9Rw5c8`2h!#MJ>_oz+J0!mHIS^#MLel_1(Pc^`>pXC5FXiaS>vTnm(_AT zWme9&Cfc_VopdA7aM%z^P;Np;VsDcID_G`Bq)7=34Rccwq)7K{CXD9Z&lk;Y0 z!KOgkJ3w2x9O(zrUV)QRoVK2Nb7dZwdIs%>kmDjXM^1UOx$$Lm=&il@k~@{ffU2QQ zG&lYcv`hZP+x&#JkWiueAvHgvp}$YD9Yr?Vq=v1%UU}b_|0Qjh;H<9Bt*aEI!>@Vd zCFk@u-ziGPy;A!p5y}dr?vXd!+nRRWb&0*L)O=|pWl)d;`7a6{IbpMeBvUuty-(gL zt)xU+&_%D`j}Qz-PiN$23hqUI9LnWLm@uU<6#98(NLkh7_U~f!<0K@4T(__UimQcCN>a)BheDG4Qm72k5^M`5Y%Qm!mia=%n_d?^c~*R|)Z^~go*Z&bes zt@s)5G4Pb93B{&1kKAEyya2EmrB-7AY+bL$+{%jmc`NZ0uLd1Ub_P7(2i0Bq3Oa9?MobU6D5~-l zTr7S2Ho3F)JQah#9D=Cgu3$iGJq#ZUMYKRud#|#X;;$mcr4X-5@)7S7f_HF;cP;U3 z#CsEptKrg!w}^O~LcB4=D0_zMD{+qfm9P#X(OqDn)eo&eAOnMZ!@W=Y;HHGH%`C*RZAMyE$oXFDBsNu8Z^ zcB6a&Xuc{1qHgk7SmBs@yV!KKMK>4|KF*^+^=XRNA_#TUpF2`fh;AclH%RH8 zp8Z6%e-j}!^oUaG&RQ#~hD%TzmK^m00`(@m$N~kTo}wtJJ8O1#MEwR%w7kvHb8p&I zT3VVM>W>=Ij$|SoO4onxI+QBYEBdAlLS>=Q+kMj}T{G2&YAMqCMVgVG)m?^x3!OT8 z$yVJ*S{HJm+mDvyNUJ1!F&fBzYhp_vZ5T9L4-HU7_b3$y**H_D1k#R9w+OAQ2$KLE z4GQ_zq|k^^7lq8EY*HRZ1Y>?W2Z}#(&+p8Nl>hq5zRs-Z+0lXPV&&Pfn^YW~*GUa~zLmt|&e>AxVKz$V1xz$x9U+DH zqn#>&^vFPNG+0chBZ1slxHp>{-oq>(N^YJ6A6H;>;6?6SM$n;YY1|E*JT1!l$u3gWYxpP0C-+G2GD3K9ZU!(9-&1u-q+OOVm# zZhl_;{M8rQ+cyq$1#Y*>H(Fm7H&U24?Cm37n}iT9Xt>iQwmapn_V!q(y-j@0IbsWJ zxA>w{-r{V3afs92aZ(-{7&wt0p+zDYB=R>(8O&&ihM(vB&LjW z#7m^g({p=!;R6jWZGH1b*)48&$}ce##8;g5ZSE0!U2+c`_P@KuHvzPb5J2`_BfcTM zMh7KQ6u%C`i$gebwFk#Kre#EPfPx zw|EeGPm>xt9a@^C^G8|D&tE}O#`=l+-?8d zIpS4(yTmW4>U6blj3VTlm&ZB&$I*u5DUA`IEK_T90ZyzMShKwg)d&A9_>GF>w z!D)Z#TpOg+#Dh>Jj%t96bYFFj*x_tmao$bw6Lx@7lTQEuq2!TTbY6nXq^hB5aB|8Y zg;Ks}&+m7JQdUzW)n3+;g)UcZ`R4UcP9)Egr64e$H2=s zol*s4cFcX}Y(Joaz_d6;>TeiQ|19AK_bF2EHl!XE{P6Km>L&_d%ZUOw^2dGOh6*6F z`HAswnX2ZWN(bckil2JNHlG4}stliM1(2S4w3ijYaaUjoxa}Q40wsGG1x}nd+BZg` z8lW`H_Z+(IKDT_>ZQtj#zv&XcCT|q{U{>%GMixC%;gsJ*%*^IzCdHY$?;t>Vty7spIiK>8opIbccmiHmK3s^8p(J8)(J`Cm68HxJPygcUdf4n!{C4cF% z@1=|uPJix@%YIaR$t8c?zHzY2{zX>vGq&pIH?%@k`)e*S=#;m&x5vBf$I$uMUqLop zfpWA|N<(}Vc%*gQ^_wK8j0U(JMV)YT^zZk&?FXSFas?eDp$YOisL8hP4OCakC)%dG z7YZS@FR67>^5_uJAmWiIGHQ>ycv&PAa@m8V0&5IA+uJWt8$)W>8*izFMWylauXpWX zP#>g`j(woLedytB;#-4Wa>`rnZ#xga<`mzM-*z@XocNOi`+A-2 zn+F`;hJ;;%cDvSrTlKnkO;eh-eOAKHmu|4Q}(6#)2Nc0Tx zAi(ZY(;2k4`Qb|vGQ>Z+?7PL+fdrBpaqnGuhmj0&Va(jvDPLZJu~5sL{Hp!!!w{`z z?c(RQy*c(o*2EI4g8U(K$lA|dU)m$?ZQqD&?G`Z<4?-`#NBqhq@1Znyh_8z`TH6M_ zXWt>d+TJl#d{5jjr7p4VH{UlBvsapf96`1fjO}eud$SxPr$@>+M9Vd?hGnT?e&vA~Vyoz1wcY&v6@YBgF{BBs3!LD&>WNyAiWdh_IDsd)*_u-;bQ`HZxVI*1LRR@!ut z#=Ivrd~-S0?Y;*p59*b zrS)(N*pERsGuv%H(l)n$Mv`5O2jb}4Tmok^G&Z=5N?mc!mREMscD;k zf>V6gB`cVvI~#Uj>b=dMCN<}y>_|u}iB`%m#qIf(roUJIgeIfW%2z>J8&ZXg_CL3d z=E=cMe4#7`CBu^6ZrFV_m8=Dv-tok74X4ulMsrhX9@gAcnqO&d2i*HKw*+^O=FWlp z6U{wmom!Q!b~$?a?TgZz6FwtsB@tuzXDI3FXlMJL2$lsoKhnZ7074a_?oyN{m64&Dty61SSMW~kPANYJAf+u$ z+g#?g1O1EKjcs*5?zyccyLhV`I}w&5hv015>K}vInCMzI0F_UqfC%RI0(8k~Ufb5N zS9CQ?-Oh%u3l?@d<+g@yGX;0HAHlXpeLX~U3>cMN+y;S+T9#>YEz4wbATNTFe5PZ7 z&}V(sv@Oqn6$I11(MA#bXKP~z$bZN7NLvqt$|Te&qwKrQA*tRhXc(Erwn|dF>Ry=( zfrj^~?LIPd+wpYp5fD<4yprECYTlH{+H z{n!PzACly#Uri&mY4dnIM5sE;QB$tO5n3a4(^BBhXk{bq88@Vj%(jpMQF9T;e_LSa zV1#PgR(H7+NXr2Wt1q`kdjlob_-Btm)cX3GLMo5MU^M&Op?LDe}~nYI1eqPO?hCCzAJQ)g*oRgc&<-`8myz<&`Z(x!b{yc>VhjT@T*9M z@HglshDd=8tYn*d{ZYzmAEF~`h=woivPpsG) zE$Bo;QTxNrb6W{=@(;C*{#aT20jiF07(I%yL3q(L61|vKT9EA|wZD>zKg%vY6i6GM zY7so^RA@A&Y zkTH}VQ0u6B=((5jjkym>I#6Xoi%}%#xC{O$21GPB{*H=7?!fME6e2XWExOjcHp09% z5BeRkEcDkO73->`24y730Sl*?TQh!SZp|BMUR!H5ubn=sy*qkPS6W^UHZd=(|5~g| zaMT|kSQl4+=Vh&ai(a18buH`G2M<=z^+;8yzjO4yy4~b^3w+u9rsrLZOT?K&9F~Q@ zx2(f#qPK?zJ9YeUUgw`IU3&&oQDdYmWT5{e+k7m zKk(lsFfwpJXl}d|=NxIdaQbcbtu*JQ=L$ko9C?emX%Y_hX`%zZVWNY4Hyn$sJFnqu zoKigm%}(?e4aXwP_kV>GlQBIF-$a@p@B$86n5Edax-s8*2*o-i%Oc3JRz=)>qGZp* z0|(eRK+Eh<#^BtjsVxv|H81-Z&mBm`I6{+(^Q{idH4zWW-&!HGySgg;Iv6957Jgya9}<+Gm^3q1y|MpXLIBrXR}KfnEImm z{!I8|W(pOfX&zVTm9d`!)tItgYohY!cS%{e=*X)O8l-o)Vhc&T>CJv~v{xpt;;oYW zl7u+QLIjuK$wH&Pbu`9OB=kQBN2~F8ueg-~$0Bc35pl3Y;F*r2#6m<9f={9@uz5|| z4XDEA#%4%K%Rou_?@G%jPE!U#usq%i2O7i7NO{Ysdc>v97+bMzZu{1T-G>@B4ms40 zvit~D-fiD@sNIC)FBHDpzUxqXB*eho@Ikb>=|Kd@Ms}*Rv8*Y~#`GkIfTwYSauB?T zX@vS8Yi=^@X%C>Zv4@Y^J;`MeC_=0j!6~n>Zb3x0NQ!%(Re6uxN$VtY<8UNK9on19 zWE=~jwk(T5qeUT6lg>i7cGNM;s zeM!!VhKS?(gur?Zy4ldB z4@5t@ccgL!dNw*NtVYUocz6q91&87^la))uv3PUSKu}Z$)W0+xMR-aOb*(ik%G~-A z^+{XOs_&rEdY3$x;V>6Dpe#l?mo-{H(1-!;-6mM0v&D{7L8iOZ53wpoR<_at_xsZb`*f}Ar zsljFkmb28PmEP1X=6gpWlM*^2+j`(Fw62@yK%S`qY<`F0u=;CmIsnAIIKMz#rW_hD zrOhU7_HD24!5D;t_e0X*L!O4`tw-P`H0NL~7uiHosYV=tZEn1qDkJp~yCKlthPs9& zsa2vOe2z;-NB^<>B8}oXG(WZVn9=XL#(ZUN{4Ii`T4M$Lq7x7lf8j0uN-91kjoI%_ z-S0JL?)OBzK&g5~9F>0Qq$Q?!P$@zdaCk}xbYNSiscrFpv#bKCBxS{0Y!#d&w+Fw% z5n^ckVohr_Drdv7;pV1G;BaBVk>YOJWp0WGLh)GD-en58Qsw`tj9}K?`gT%6bjl82ikPDNwH?GCr9C5K}^>&;w9piqzpUiGs7?MbX)O<0U3{ z>R$8x^lDdgMwC?il~+8D-g<2ub_y1X=KDWI>UyHAquUiq8jFMT(R*Nc9*jht>#!Xr zIG-al&1-1`;t+OUoedwL6TFB9x8^%dZt*L0gif>Tn_w(h`uNH4twBN!#|E04%HVL; z-yPX%Zn{}@M(r~<(cJ`{QCD4UQHzU47dh&3kipMU&j6*1qNBfjA0!jF0}fVmP|P$n zC&j3#zYIJ0EIg^r1{^WLbM<}(y7?!47x0pUk6u?Cr4ceX9a7jr zo$ZBT1f;XsBo}I5yo)NXDlh&m)-_R=#p(x*0T54pQxb}l0;}UAM4FragfZn=noS1h zVN+7>l6QDXE2sIXHZN*#5_-z!B?F_B8@{BW84Qoy?q%Afp^|%=?~ampAVM^a$5Rmo zDWT>gkdw_`DRCMF8;_zlBevOdX@~4z4RD_A*^@dd9}S;{A%pT$Vp8_WV{LoamJE1o)& zdX#D|JzAvALkU-u9Gh;Mn<}Au@b{=*7*9OKM^2QsQh6dCjUVbvjq0SiDIb+8SdK_) zdsg#ub4ZcauXL53flK)X^1<3Yt>$RTF`9Pct`_{~Y5PQ|G}wM_nD(YncYqev`u@`T zlz9%JwH{x1GUs=YqVD2_*4uaJH6`ZFt(s5bD{Y%NqZ4B(g!Hl7t5t zcbs60!q$SP_%PO?HxXc1^O_rfjhV)JHC^m1DSoIfr4emzx(i<3=37PQ^K+4}XOTK) z5A+bzSC5(-XV6&EeCH5wm=EzDRCyN~dH)YQPeVtfr{Q?Ke@JFv$z)4#A?v82EJOr` zKAviU74;WbfhjA9XbwC~UdU4X8+R6B%5ccJfl`+mO04mbl8l1wNm9$x39;q}UZR8p zLkm<%g|LvM7?_etjN(JsF%vsH&6)9%`KgU~UQ+B(ZX{e80QV!V0f1Um4IO}5c&Rz| z%3mXcYa{9&n1-$=3-y0mum8?zVx3%{)|F%tgmqmgN^{fg$QhdHv(!Scf$){|XB5~o z*i9(+!~1VhqsBm?hP3|&4*a89Vb={tkf(_O&^J&x<*9vaqSrVE(mJEcAfGk3VGOoL z06~%8S5|iQ_SUCeOUauXJ5jM(=`HyU^lEo!)O?Z%(-~Eyxs(OldV5ad-GWL-kU<1_-z`Rbaud5JIZf_4ptd0cm{>Z=pd0=N$ z@&pw=p!{RRsa{g3KB2DGA51u60#Pwcxc`rxQ7H&QCaA99pwjgiaw`b=wHY@wD2{1S z=KF4DWE)d5kkGVho|m6oQ^LXKh`1=ry>mndiXsj^v{DuPh}Owsr(%30%hg_;u8kZaOhvr~NDSsWWU^ zC1T^e&!$y081}aMt5JDyJh%?$ifFZXLYPLQB=zxc`=?S z$`?qUmUUmNo!DO{TWDW7waeVJkK{CA*7Cm8oH63A1PKT2cp{{C-3Ssm=0+=yO{LV0 z=6mN*K#adBQY!jPR8Y_~&#-0VaS-!bAFWy4mh7gF%#9=9=96ZK<+ zjYVq41I1vT71^CP>+6YHr zHReTNOiTDgbK^P`rwTOP84`l{A_&7+DAt_|h$PcpgPrw183E}3ia@LzR(}5qQ=Sd^ zPl5~htPH;QX^Oy#J`nZrL}XWPSV4YAR^4h{ibHx@f9V<{E%X9$lf=r@hPvAkD2I7tM_afji|73%NT`hAgYtH-J+==`lAwi%FTMxo!lO`cy1;AbKF`dAo)7 z=rryNid^$()TQAb{==|Urlelf&D-JT2B ze6GWkOzT?nS`+!*1ixt${ClTe>EF{VZK(hH!rMP+*kV~`>Umomm!#$utSSX?=D9Jl z`JUe6$B!R=Z3MRHVEjQEX5t^OuSasOcB%OqlVo)YL~WC# zNLWG~fz7H+CgFkIC}ON9jx^>aOv;=cF1){DZrnhehNGs1*Lrc#J7!D$x?|v6DK)o{ z4W7BNn}UqlB1O@rn0ak<{nyE?764_h{FzeMsY0Kq{N^Q~;=|%Y#i0&;5s5UfW!q_L z{GN8TP2RyeTKg{V7|b=$HF!m81n6AR{hF7iWBaH@Ezk2I-rg3x8p~*{-mr6&U@{nL zI(QPr+>}D&3xT5yg%(r+-tC}8(mrK7Z0euh#hHS-?qKz#6>N4g6a0wkQJ?(T%}p0T zUWbXY%l15&F07_4)x_Noaa6y8e@66mP^LHd8@QCU&{xw7!%-KVzwJaeaoFBXn@S4K z?P)t{zZb(I9l_1P5Q#?{nXJq~_BTm>rMRDD6yPNq~M3 zlQZRaFJf09wcMIO#Tvb^m>w6pIa~gO2Bc4zLRb?IBQ*nQS2C?TJo08`0cnU%@~?Q( z`4DX>{|Y-k=#YM+mhFY8%*1sL@GzLy(CiluHl@#TZ-LX?^izC04s~K{jcB+c>*mR?+1oIm zKC}@N>c7@qd1#}l?y`p6V%-p`vlrs<6;pcke6?dBG<;u)V!WQcEv22bBi+zxLU8|U zJ>5hyMkIvzpX+&FYcDFlVQ(bDM)o`q!mA?!qxqfUe?JghfJ#!T%4^tbB9XxYu=MtZ zEcMRa)S{iYzs_*Elo}1y(suv!z|%B|U{k!NL;fj&pV2N0%KOKGYc2Qe7SMa$b5vM` zv(;fz;OW(*V{;xWfLk`9k-0AJrS%UM`Z!Wm;rueRKfvDCBm9SI__udo(thO9hVH#a z^woN(&PP3X5EX~12XI=9(^RxC#gAT?sft0 zBu?{sm8nz@*{fWx0G?}Td^`fvjcw=|J%S{h1a>DyYfgo z?dwHagXgoVfCaD1Iu2S1fo7B_hK9YbmsrP1?MJVcis3^!K{udChmoFB#$JGn07T=* zZopx@TuJ!~G##Mg$L@0jIy9Vo^g2^JT;}XAuOzKzVt$J4Mtrv`mtyNY8IT88Qd?y8 z0WWnxH5ch7>blVr5PJJ}$@^Knx-IC$#))lG@e!msO?d{jjFmr|GmfDlA3a69^6&}1 z#oRaqe4JF60z;Q4SumM@>P=UwANpWWGB2kmmmoAcyO z=rDXuGcUgk!Pz4W@?@*h1n7b6WIBxoKf-TK38Wplz=B$UeG_FWywzP2k|Y&-u^pH8 z7QAVOj){SKYU?_vD3bD3n>vrA z@!L~;fW{Go!DPuZ=71;l9j`g-LkVhGydrwe-Pz(N-Z394Ga%MUj~)^VOBTBAAK}3l znna`rCMS6sUW`l+#3qgT0vkm*85L1Q2y`aZHKyBJ+^q?QOzOyWsYjqn&uaDYj##ER z4cQYnQ0}0wk_4Ai9hQHGW{V;xJ~qiw=&_+tCb(GDyc1!R1dWf=W2~DI@WWPJ+*@!_ zK=ffvn`sP#B4k?3O^gU(UWv$IjA^{udK1D0-GpE&EtE_7R>8LeMA;b z8w_&>Hm$&JrgzN8PWc#~Ad%XSMR;&f{F@h$!=}&t!|l6hJo3s%(YRfBX`(mb9jO5W zQEE@!UiG0s%p&5c9^e_CauhtO8m1Sh5$MrU^!bGPRON|x>aYWK{Sf3Ay>Sc{>-Iyz zqbN=Lww{A(7>p0<`+x{&gWgoD{TDt**S2f@c~3OnAq?Psz$3kNUuZqP`ktZk6io#% z2GE!p#)yJRnB&SS$Z%#z?gD9Mwp&OpE-GH&6Gqie@Gq#Vm{*C5_G%}n7lKV-cimao zjc?e(rK~~It$%=2GUYnRaaB&vrw{{4_%4Z--oWk6Rv{T5Cs`XiLwW4K#-(Ove zY|bwOuJe*{%OF8Eud1@Dx`f^&XTVG^^G~?F?AEdgbgvpjsETX(u$1^}kso%0qpE#B z^-uP%4^!^nnSHgzk|d0~8fI+L)mINEhiXzRmT?wKicX$vTVSrXoXpob%=;wNP|TzK z$Y?q46Vxh=dOx4)pktcyYHErWTSlZ=X3X+>g;|xg zh*MRA+XdB>GF&#BU6_@TH-2KeTPUgW)v|_wglhdE_)m4EUdR&;nj7c_gDEqZ>|{<13MnVR$ep@3pULSyJ4rm-VZwmwt$U#x{YPqVYk7y;VegiU5K*|+U)Csjm=~s zX9wcLu6`5x!glQJ?Og+#&Uw4Z-h*%h5D#_^?6w}rh1~^v9qj#ILNCnc*Bn4N*xj&m zV7DFY?Og=hb_n@`T?l&%>@F;r6QhxTtiElq>Hd#7u-jl)!zPoUT7q~-t{^Uo7cYt( z7~KMlt>6#Gr~Yqh9)-C0%(%pB%!6-_t{1KzcIDVf){zvI!np8Rjd6PgFvcJH3LEtvOUtLeH!>AERhS18@AxHTgp{sajr(4}AcEa#NJ z8zIN`YHx2N+`1tQ{NS$!-%ZSnxcCN>$*HN$@LB=?o$wz^{;oKS51u6N3GnxWKaKdB zA-y+)KL?9?cDFLaYc}Z(OpJKB2(KA&Yc7khoVruC*{B$qgFUQB$lnTol1Ce&!i+e}Qd2`jxmI9SiUNPi z&mYKtZrmDixoK%cL*!2&Mp9dW+Mdc0&Vjy)-CgaaAf7nOa+9eM0kgD#lpfu+Ea8l? zh~zn0{g|sI$J*O7q!0XWCx2I5&h?0&G1xSl!b}G14fr2{KP?w2{!)`GF0mmZE6!rN zFD5P#H4fFyGx+Y1+dY`I_t;4EDd;m_Cb?c}D0AX$_nVp{mPeX0878O$@S2Qp%g`5g zQaC2xN%B!sP0Jt?9LU#lPW7_{;gireeiI9V)lalltv&Z^SDv^v15N*R%4X$a2oXNd zK;F*xF*Ssn%BzF{eI0{{(t88`(cQhh>@Ieep7#{(VLG)3S6p?(ZWGeWIH?({8KC-S zMa4_}xVINwaL75c;c^$4%^OYt`w(j`2+@Na>CDeyOxGsB}_ zIcLSSh^7L-fiAUQ_le2~L%2T-d22A{xrw0}!s!|C74T)^UAsJL>41VbN5eoBDbpO5 zM~eRr!sUE*a({IIdP?j>-=4pYKO6(<12c z=+0&`v8oli@BbW))_-5);PKunVy!ee$P&<%FjF7rU^beVY9bxXj?u`2)HlFr!yS9B zfoPmN^)VR2m{F<a51d*4bUpTK^uqHTYQ%rjw^UQeQqq5~u79$JE^;u|fZ?irzGh#h*;6$; zQ?qAlcBy7B)a<32{Y%Y$RI}G=c86x~(Cj^$eMqwhT&$(9*_UbdRL#!R?Ae-Ks@V%Q zd#PssQnMe`?6sQRq1ih$dyi%x((D13Xz6SAWtu%zvoke&wq}=V_Cn2Gs@cEP>_;_w zt!8&<_72V7quGZvdjR&<$egd)mudD?&Cb;9*_vId*$Xv$sb>FDvme#$wVK_b**i3Q zk7ggz>;V=nea*g1v!`lyre@F9Y^LmY_@eHB`kZh<+om{}*BZ?Z7w&BFS83_A^h>W^ zqb>dT-!}l0hStch>O`bH~UdNbI#;7#5 zHfk4Ow*@~WA|&Hy5qve(LNYc2eaX&r&v<{)e2to4S(nUy1Y|sZS|gb#`mGNkxnyx= z?cxg6#&0z+pM}1fTKW+bBT)dq8ee%4MbKQ;<$g*MzXg$u-?P9s`>~4Tnkx3I7RkN^ z_~{UA2^B0TL0p}}_Nl+BrWOgR)-A>Ggv_FfvSK7y1u^(aX0lZ|_;CzGs;a2);a4cW zuc2{)>YPavlwxu)SBl0MuJLtCAGdV+JUFQD*W>4#9H8iTJDDX|R4eqY4M!n*1YE}W zev^aw(VCSE%|DH%fBebt#P&;-p1wXluGAPMn!@^csgFy#%&Xua4D|SdHhv0PLiO4} zO2Z(D(&OvnSSENhX6fV!h#1<_+=}&s<`fF_VTbz_tJ-$AED_VSg{O*sRo_{~$8sqEpfkbVB zq0b*EKFx9T^!506fk(KKeq{9DJ8HW~rS)(srKY93$zF_)F@Co;K6h*J>-$xhcrCJS zH};EPXmPL*g%)NBi>QJaj2=&C{S*#k`ucor=gn#ets3aT^=cKOTeSE({`&7;u^&-| zUzKS@3AER1H2vTZ9)+hdzN5s!f;&poSh4!VP9;O- zr;)-MI4HiZrvCfD`tRfR$4f7NJ^tVN#iyGn$?UIS7JJxNb*bO|d@n}y$ge%u8z^x(>4SX{-CA*xseIC91WelaFIdj-=M<{(=MgG|B4NJZJ1MlLw?6)ln&3WdPS6dC^r7*; zTn$;Cc_Ky@IY$attDLLVWqR~U<3IGt6K3K&8$Z&PCAd%0>P)%%PxqgL+~?v?#bG>_ zt;xa^e5L}4iJagHx8k^h?}m(PZwrE)(pWYr+=7CAg=mPg|zp8;xZH3AI077j9|8g(<1rifM*%`;ics5}&e2Am|*@bZk zAPCP8#k{VyN}i@O@GU(csCQ90861 zN8o=EfnI(5|6kOBC(RMy2yg`clMwI^yHR;z>8;w5Q)#Dlc z{u#HfAH~sS8sqEvHS+!yw~nulE$LVw|=|-`ARv9VMDF+{48wYPy;w2%o9+XQgM-L;U^Cu8P}EA48A@1fB59Ak$XIM!fs@pW>BP3qo+W?d-E$Ua9Dl3isrp5m%X z;UVEhHR_F`dXgdbO*g@rlfw=&oOyYkynN@3{N#QboEh?yH8@`s^kW-mZEabtzo^oG zLuR~KeMjVwN;@fJuUsies%Fxgs{LkP%`Q4wGnYGWdj8CuEA6aAG=%;Y{Vq9$e#s@i z+FSiq)h%ZzsS8flD`!SlU!DGyQX6(EovJJ6`-SN$KGWY*?f3fPGzj|S&YFQ@`@X0Q zW*X$yRSHXld^N57r&asuzG*uN56W6XG8Q5AWmZ>qzxX3WfX7pOQC zT<6T4;hB+@%qn4@zT;mhi;G1etFo%XH(o_${Ov_Gm1ULllTi_c)k1-)SHa_VljH8k zPpOwXJKgKfE^xUsowL08XIn2{#k_J~#rP6mX;EFdpY+m8?ML;bRQ->Hr9ut41fgc* z0I~*b?5k%?jx%FA&Th{}Plr;gE-Jni=hM0x564lOaSt~Nv&kU{v*$&U6*;f37V$YV zbMu|)9PtMr#ugpg>tlaju(g}zTVEkdoztc@B-j)75qbu;I? zF&=57(^=@+|y6*_J$aHkPuUjJzDL z+nMLKU}2q)dAh~r$;+_h%u4rq@+5aIi=3C^&hTVP zktD=rdJxAm14>}YoO``x_Dt`rY_|pKWFQmy(1f(n)AGy!mCeK^|2u)@X>kNN0vrL3 z07u{lj6mrb*4yIQ*!UOzJ-hq22$!o!Umj-fAl)R(Xq%qNbD* zCME32o`saK6I&^yswt(OI;E&Q$(if^zG=mXLhXX08s87NqH@(Z0vrL307u}gB2apU zG4pJV|EJ&87thM+ev9B$_qDyxu~!K)pX;};J!=Lw7c%n-GH2z{VGA2Izw=2?Xc7=Q zYr#HyU1eESWohmB(z@EvS;qc{se~Thk5ixf)v~%@YQqx}5p7amePXoN_x|}4u#woY}QuP0Hoz?2Xg>eKp0vrL3!2b~hO3$#8{m&Zz|$ z9ne>wbD+=cd^c&6`u(+uXWA_E`$(5mU6;f+2MNNUH}yw#2`Fwj0vrL3z*$3}^bGsU z|4HNjLg5M(mn%-aS00^nJ=-mJeeW|3JlkKrnC+OCoVAkRf;a*k0geDifFtnlL!k5w zW9Hc!|4)C4eRlT$8-)yYU7K;fn-FxL-*?RxjRjkB-psSG^2a+`>S9e_sug}j34T;a z-`sEnI0762jsQpC2aiDM8Qy~X7sr3YJ8*dM|KIfd-%7!+;_ZJ@eb@8JzT^M7>39hN zZ`rvs@RESxZO`xiZrjOkdkz(a^rBiHUi9}B`>Sf`eNTN(@aQ?D%{hb;;Uc5w@tEM|QN5vzjZ@RIebO8k0tNHFJpL|M#_u4}#7Yi$d zIyLP&M=UvF9evXtqTOzQ7frM(@_loTvk#Ygr-8fD-=~5^ueamy~d8(<;L7&+wMzd?x zw`ptp>SH$Qa~Ap)l#x-N5I}?2jqO(rS}rUmSOj75o9YcK{q7Tq^~}HvT;8*U4%)V- zvMjT#+=$JSHcH?2B<`@dUd8769<}&-`eJj=30=+tGC0FKp-TvtFI8o}TqdyB@bMyk zxmuUY`|2{-J2S(n!Sa3E5&BwhRdG=tP^#DkRngj|9t4nTmJ2tk7~S|AbkJKQdo!ij zyuAgz9y9e9s5eMl&{qdD>3~TDW)NpZ6SODN#9dN`*@Ho!53)#$tPdK6dsThz-D@U? zd2e5R24&O55ocqBCQNW`gh7XcYA17W1xkjQ#u9ZLDCw(1JZ4lFFR59drTbve59j)d zeU*M{+QvI!9#QWwcmy@&dR3?Ef1%pH=&RE?1qEo``2_`M1sk;Of`YQjGC$;1FRmAE zP}97jQhi3CvTxdPhP2N{tHBsxNS!^hp{CEjIRYF3j==XoKxFssQ8yOB-UJi{T(AQ- z-Hjs(xCjPrdaKSP;N>~E>Ag3TfQO%OizMyon*?^GjstgE%nT4hN9>@u;RtX9I0762 zjsQpChlv1Nz)YgcZ`roQR6$h7e`tH9Agbd(+?NX`b^M1rMKG!3KisK;Ngw|~T_FtM z<3DiVh9kfc;0SO8I08R#1kU^$duI$GPCUb1?eX}bIG0d{`=C8SG42(w1a+f|OPKrc zN8;!F`u^OY6ZaI?LPjml_=_OHkGs)Ne{=oB?;s;tD8Ww|)(W>mUKLWLAH!oN%-KhC3QvFMdmPeP1l?+&Wif0UT+D>IZ9EQnppduXn|{9Xsx#aRJ{;kz zAd_m_JmiFOx(JlQ5Do;|$mLP!C#(J}O-emmV&hI%bR$GSqMx zrw$i`9&Z79s2cQ{+;9Xq0vrL307rl$@XsSaD{W@NjNLT;pCN>J#ToA1OJr-IGOVX6 zv8t@a`m&U*T6|bXo&JWrIIJmX6;^}!L#@7!{O2>tV{imG0vrL307rl$&3 zffF17jsQo1Bft^(cOo$I414V~{-1s~Uc~voOI6u*>izn7c4m5F&%Wf}nL(ZwM}Q;1 z5#R`L1ULdGAu#d`V>gZeryt!#G5HMl?!^km_3ue4a0W+!Bft^h2yg^A0{>FF+;F487x#&)x-~ zr{7hqr=8)ZvSDFk(mMpFzf~*&aq0bsOnm4a1~tW$Gu;1m{wZToO*;KuUFYImjVho^ zZ(!(YO+CXsS_!9!Q;c)0)8BX%CuAdqO4K(U!+N#c!`x0aEEL|&-l|YrnHtx2hMS}) zE%j{$HT+d)xbW^ zzhj`n&A&MU{|o}6a5aMC^?%&m<4|4fg`xp$)CZrv4m5y01BhdG_8|WN_Cx?E_PBlw zJ0AcQ+Tf38I|c&;zU>b{x#0+K1ULd50gk{A5CIzbF$I8y@mjzX0KaLEk-UacZcy6z z4?ia^`_smMQ0btw@gGzMD8u*82;)cM#?Py8V8-%6u)~0*%qhXdrmn;*6m=PYA zGk?K7pZ)r#}eY2tU&9^VO|A7xbJaS~iB@@@}-@fntr^j9J zR{hc+&)WK4TuwtqYW0^O zA@1%0T-VXuZ$5cg^GocX#2-_!Qq(xHD^x$1o_3|`%vI@U9xrx2Y6N@ka$*I6hq;wX zU9rvZTxnIxUp6}x%owWL>y>oy;lUi&9!X}s+PF=&>3MJU%Nr?)%Nfq)DtHluim4}9 zh^1_>(cqC z9m<;~(Bkgtil#y`0^X`ch9or=IVKzBfBIlv)i@`qCsUMN`oDh0OWuuWB0Wi4x!h|=8K3`>{JY#W2R&Y_UwH$|hSSR+9p{Cl4SsPvKbh22