From 418a47c7bc67bc0bb0e54c50a9fe3f7524b2b00d Mon Sep 17 00:00:00 2001 From: Allie Sadler <102604716+aevesdocker@users.noreply.github.com> Date: Thu, 11 Jan 2024 08:18:55 +0000 Subject: [PATCH] ENGDOCS-1938-tier2 (#19076) --- content/desktop/_index.md | 6 ++-- content/desktop/dev-environments/_index.md | 2 -- content/desktop/extensions/_index.md | 4 --- content/desktop/feedback.md | 8 +++--- content/desktop/get-started.md | 14 +++++---- content/desktop/hardened-desktop/_index.md | 10 +++---- .../settings-management/configure.md | 3 +- content/desktop/images/dashboard.webp | Bin 0 -> 55394 bytes content/desktop/install/debian.md | 22 ++------------ content/desktop/install/fedora.md | 2 +- content/desktop/install/linux-install.md | 12 ++++---- content/desktop/install/mac-install.md | 18 ++++++------ content/desktop/install/ubuntu.md | 22 ++------------ content/desktop/install/windows-install.md | 27 ++++++++++++------ content/desktop/settings/mac.md | 6 ++-- content/desktop/troubleshoot/known-issues.md | 2 +- content/desktop/uninstall.md | 16 ++++++----- content/desktop/use-desktop/_index.md | 2 +- content/desktop/use-desktop/builds.md | 19 ++++++++---- content/desktop/use-desktop/container.md | 11 +++++-- content/desktop/use-desktop/images.md | 15 ++++------ content/desktop/use-desktop/pause.md | 2 +- content/desktop/use-desktop/resource-saver.md | 10 +++---- content/desktop/use-desktop/volumes.md | 5 +++- content/includes/desktop-linux-launch.md | 4 +-- data/toc.yaml | 2 +- layouts/shortcodes/desktop-install.html | 2 +- 27 files changed, 118 insertions(+), 128 deletions(-) create mode 100644 content/desktop/images/dashboard.webp diff --git a/content/desktop/_index.md b/content/desktop/_index.md index cb6ac74b6b..16cae202b7 100644 --- a/content/desktop/_index.md +++ b/content/desktop/_index.md @@ -46,7 +46,7 @@ aliases: --- Docker Desktop is a one-click-install application for your Mac, Linux, or Windows environment -that lets you to build, share, and run containerized applications and microservices. +that lets you build, share, and run containerized applications and microservices. It provides a straightforward GUI (Graphical User Interface) that lets you manage your containers, applications, and images directly from your machine. You can use Docker Desktop either on its own or as a complementary tool to the CLI. @@ -59,7 +59,7 @@ Docker Desktop reduces the time spent on complex setups so you can focus on writ - [Docker Engine](../engine/index.md) - Docker CLI client - [Docker Scout](../scout/_index.md) (additional subscription may apply) -- [Docker Buildx](../build/index.md) +- [Docker Build](../build/index.md) - [Docker Extensions](extensions/index.md) - [Docker Compose](../compose/index.md) - [Docker Content Trust](../engine/security/trust/index.md) @@ -72,7 +72,7 @@ Docker Desktop reduces the time spent on complex setups so you can focus on writ * Ability to containerize and share any application on any cloud platform, in multiple languages and frameworks. * Quick installation and setup of a complete Docker development environment. * Includes the latest version of Kubernetes. -* On Windows, the ability to toggle between Linux and Windows Server environments to build applications. +* On Windows, the ability to toggle between Linux and Windows containers to build applications. * Fast and reliable performance with native Windows Hyper-V virtualization. * Ability to work natively on Linux through WSL 2 on Windows machines. * Volume mounting for code and data, including file change notifications and easy access to running containers on the localhost network. diff --git a/content/desktop/dev-environments/_index.md b/content/desktop/dev-environments/_index.md index bc0ced5f16..85976c96de 100644 --- a/content/desktop/dev-environments/_index.md +++ b/content/desktop/dev-environments/_index.md @@ -17,8 +17,6 @@ It uses tools built into code editors that allows Docker to access code mounted You can use Dev Environments through the intuitive GUI in Docker Dashboard or straight from your terminal with the new [`docker dev` CLI plugin](dev-cli.md). -![Dev environments tab in Docker Desktop](../images/dev-env.PNG) - ## How does it work? >**Changes to Dev Environments with Docker Desktop 4.13** diff --git a/content/desktop/extensions/_index.md b/content/desktop/extensions/_index.md index 329edbe0fe..4f13fbcff7 100644 --- a/content/desktop/extensions/_index.md +++ b/content/desktop/extensions/_index.md @@ -22,7 +22,3 @@ You can explore the list of available extensions in [Docker Hub](https://hub.doc To find out more about Docker Extensions, we recommend the video walkthrough from DockerCon 2022: - -## Prerequisites - -Docker Extensions are available as part of Docker Desktop 4.8.0 and later releases. [Download and install Docker Desktop 4.8.0 or later](../release-notes.md). \ No newline at end of file diff --git a/content/desktop/feedback.md b/content/desktop/feedback.md index 39a50ba80c..4ff38f7f09 100644 --- a/content/desktop/feedback.md +++ b/content/desktop/feedback.md @@ -7,7 +7,7 @@ title: Give feedback There are many ways you can provide feedback on Docker Desktop or Docker Desktop features. -#### In-product feedback +### In-product feedback On each Docker Dashboard view, there is a **Give feedback** link. This sends you to a Google feedback form where you can share your feedback and ideas. @@ -15,7 +15,7 @@ You can also use the `docker feedback` command to submit feedback directly from -#### Feedback via Docker Community forums +### Feedback via Docker Community forums To get help from the community, review current user topics, join or start a discussion, sign in to the appropriate Docker forums: @@ -25,7 +25,7 @@ forum](https://forums.docker.com/c/docker-for-mac) - [Docker Desktop for Windows forum](https://forums.docker.com/c/docker-for-windows) - [Docker Desktop for Linux forum](https://forums.docker.com/c/docker-desktop-for-linux/60) -#### Report bugs or problems on GitHub +### Report bugs or problems on GitHub To report bugs or problems, visit: - [Docker Desktop for Mac issues on @@ -36,7 +36,7 @@ GitHub](https://github.com/docker/desktop-linux/issues) - [Dev Environments issues on Github](https://github.com/docker/dev-environments/issues) - [Docker Extensions issues on GitHub](https://github.com/docker/extensions-sdk/issues) -#### Feedback via Community Slack channels +### Feedback via Community Slack channels You can also provide feedback through the following [Docker Community Slack](https://dockr.ly/comm-slack) channels: diff --git a/content/desktop/get-started.md b/content/desktop/get-started.md index 0dfa376ad5..ef5ecd8a55 100644 --- a/content/desktop/get-started.md +++ b/content/desktop/get-started.md @@ -29,19 +29,23 @@ aliases: - /winkit/getting-started/ --- -Docker recommends that you authenticate using the **Sign in** option in the top-right corner of the Docker Dashboard. +Docker recommends that you authenticate using the **Sign in** option in the top-right corner of the Docker Dashboard. -Once signed in, you can access your Docker Hub repositories directly from Docker Desktop. +In large enterprises where admin access is restricted, administrators can [Configure registry.json to enforce sign-in](../security/for-admins/configure-sign-in.md). -Authenticated users also get a higher pull rate limit compared to anonymous users. For example, if you are authenticated, you get 200 pulls per 6 hour period, compared to 100 pulls per 6 hour period per IP address for anonymous users. For more information, see [Download rate limit](../docker-hub/download-rate-limit.md). +## Benefits of signing in -In large enterprises where admin access is restricted, administrators can [Configure registry.json to enforce sign-in](../security/for-admins/configure-sign-in.md). Enforcing developers to authenticate through Docker Desktop also allows administrators to improve their organization’s security posture for containerized development by taking advantage of [Hardened Desktop](hardened-desktop/index.md). +- You can access your Docker Hub repositories directly from Docker Desktop. + +- Authenticated users also get a higher pull rate limit compared to anonymous users. For example, if you are authenticated, you get 200 pulls per 6 hour period, compared to 100 pulls per 6 hour period per IP address for anonymous users. For more information, see [Download rate limit](../docker-hub/download-rate-limit.md). + +- Improve your organization’s security posture for containerized development by taking advantage of [Hardened Desktop](hardened-desktop/index.md). > **Note** > > Docker Desktop automatically signs you out after 90 days, or after 30 days of inactivity. -### Signing in with Docker Desktop for Linux +## Signing in with Docker Desktop for Linux Docker Desktop for Linux relies on [`pass`](https://www.passwordstore.org/) to store credentials in gpg2-encrypted files. Before signing in to Docker Desktop with your [Docker ID](../docker-id/_index.md), you must initialize `pass`. diff --git a/content/desktop/hardened-desktop/_index.md b/content/desktop/hardened-desktop/_index.md index 48781b692e..51a371383c 100644 --- a/content/desktop/hardened-desktop/_index.md +++ b/content/desktop/hardened-desktop/_index.md @@ -23,11 +23,11 @@ grid: link: "/security/for-admins/image-access-management/" --- ->Note +> **Note** > ->Hardened Docker Desktop is available to Docker Business customers only. +> Hardened Docker Desktop is available to Docker Business customers only. -## What is Hardened Docker Desktop? +### What is Hardened Docker Desktop? Hardened Docker Desktop is a group of security features for Docker Desktop, designed to improve the security of developer environments without impacting developer experience or productivity. @@ -35,14 +35,14 @@ It lets admins define and enforce robust security settings. It guarantees that d Hardened Docker Desktop moves the ownership boundary for Docker Desktop configuration to the organization, meaning that any security controls admins set cannot be altered by the user of Docker Desktop. -## Who is it for? +### Who is it for? It is for security conscious organizations who: - Don’t give their users root or admin access on their machines - Would like Docker Desktop to be within their organization’s centralized control - Have certain compliance obligations -## What does Hardened Docker Desktop include? +### What does Hardened Docker Desktop include? It includes: - Settings Management, which helps admins to confidently manage and control the usage of Docker Desktop within their organization. diff --git a/content/desktop/hardened-desktop/settings-management/configure.md b/content/desktop/hardened-desktop/settings-management/configure.md index 9302859b33..eaadd1a326 100644 --- a/content/desktop/hardened-desktop/settings-management/configure.md +++ b/content/desktop/hardened-desktop/settings-management/configure.md @@ -31,9 +31,10 @@ To set it up manually: By placing this file in the above protected directories, end users are unable to modify it. - >**Note** + > **Important** > > It is assumed that you have the ability to push the `admin-settings.json` settings file to the locations specified above through a device management software such as [Jamf](https://www.jamf.com/lp/en-gb/apple-mobile-device-management-mdm-jamf-shared/?attr=google_ads-brand-search-shared&gclid=CjwKCAjw1ICZBhAzEiwAFfvFhEXjayUAi8FHHv1JJitFPb47C_q_RCySTmF86twF1qJc_6GST-YDmhoCuJsQAvD_BwE). + { .important } ### Step two: Configure the settings you want to lock in diff --git a/content/desktop/images/dashboard.webp b/content/desktop/images/dashboard.webp new file mode 100644 index 0000000000000000000000000000000000000000..e76911ae84b6592eae1a260de5390edced20cea4 GIT binary patch literal 55394 zcmagE19T@#w>})(HYUl$=ESyb+qNclGO=yjwvCBx+xdOxJ?FgV-uu7!dhOM{S6B7w z>Rr!%_EW1`Q9@Ky^EVKXnuwshsyqjg>>qwDJxCTX6*4$HC=fpoSyl%CklW)KhuDh< zv2Gfwx8+g0y5raH``tZeyqohwY;We7{$=}=*X)(NyoSWB z;9c$`_HNs+XAofZ47>t4377?VJp*4ajpnTR4FFsL(4R8^`lXpizZ1axSEujoXTev& z7x`ywE8@xV1K?u&z;D#g7BF%j`o;dy)9H5&cmN!~gM7(-Y`^C`6RzoPZ?^*Ow-5M+ zKHq!_zSh6EKJ8xUZwQI_Mtd@R)_nnhz(h|DAo=6>=Q|+n1^DZH5p=QV1@e)vyQajq0zmY^@aY49 zeA3(9E&yFct3ojL~^tVo>fR-<;_k<6=Q@L@z z)~{SYeE|9w^C97dUI?I(Z-b}iRp}%4fc>E7H~sE*A0Y0F(9Z-w{6)P%|1{H!NH%5k zS@R~>&*!fv^+o(K^EPsp^9XqIJLK``Vff(uQoGGrk~;*1^6l{U`UL~vzmz_e9#P+} z-}EZ@Y5^Q~m~YRogpayAd;@+Fe!KwCuZnlMr=C~6V?T61^{mA8}A2o++2E!b4jGa){XCyaY&=#CQWpiE7^5UmL>zh#ADcdNoE zFGmtS;zg@~8gsO=t_y{b!?8jA!?0Sf&#R}2a=M=kkOFs^FXlI9PU{{$G4Ap27M3F$ zPZV6wP5eziJRm7rSkoBoDFg{@UwhA7f%Vatp>E8uWy^ZN#L3UsCZ~^j1wz)Vw3img31&_LaVUEjy|D&R-<5iZ(Xix8oGf5 z;du0w)POimGF^pML@#S~2PDg#;pj8JiYz#`$U675U#o~GW8Tef!3R>}ucf3mXw$Xo zpmwZ-zL>8BTPd;7A*I|7!gmX_O15)ULatAkOPY)gK3;m_lx_JNehn<(h>cIbvWw~D z+&C*{F^NjxD(1FAlsc%m4C~&)yotb~x59)Q5o?^yQ2UqiZ4 zeSMneQ68mrFOJZh9(R?-LbQUverGo=VMC<`TDk7y6e`FCB5aQGDFhOt{n(%%Tcs4$ zP3YuMn~`gd@*dll$v66cEo8GLoTyGN29^gGw`Y&w%L(tUF{|=$~7I3yyesPkjb8lkZ)2jq#p5 znvLX~Lp?2HT)C1;XE_fj%y$k*_-kMs8ENn?<%g#q_|sf$8n;EG^q(fYUsaB zxg*-^GIv-rzu$=cuU75&A8x}>8!BcPWNA3PE9Gb5u#HpUr0o1suo@S#%b z-TFlR3c8jWm!@HQ*akulJtLc4ulk=@uRedWX?ViLQ=IcBrPd=+@n{0eL_V?m7&DR_ zwY9#pD0Hr#?!M5XmaM7%_000-kH(%p&$on3LWqsMZd`l1@nPRDoj9yB?=f%ri1%A~ zIlU~SmgN8n!apxGlBsP1PnF4tw4Q&XILnlv-8GFO%BM*GA6Vx_hw`l!v5F;kCP&)+w{ zBO*1cPp8K}imv151_OMD*uZ}!PTxLgv^-hz9Rg*~`X3 zWB8Z--Ac*izw_qzvB+d9Ha+_N!O?|L)K1R?h?0#>uyGj(dZUQJ$N=r%45D9WgUu(D zivGnnhBNiuLG+zkv&!4lh(hBVzqN>1anbkf&5y|L?I6+DXG?xJGB6)w(P_8}$8^f!u1kPHjm` zY3Lhg`)qS&mY#yvXKjzPU?riod{@=W1P1sF8QTZHAiyaRl_nFTmo`o$=V`IpF2PN9 zft%Um!-tvXnkpwwso>&sByfgaD03f(!A~FldFNkLQzj=k`&S;#(P;F{8w%H&u}TW5 z*}uBJF^l>hbQCFF+dHhY3j2nWF{k{JdLr&AIO?{)5C^ktAm@4k&(zKD>XG|9#id9> zygDEyG0k~Tjf=Cxe7cgrjP+`^sqm$=|4eg>MyUdjEyZ2o;~#VT{W_4ZdpMDl;ZvwM z*djZZ1_J=zaEu1W4Irt>^4tcuWr`8`V3W+!&z9DQX~YS?fNZ<>X}1qRROLA zPnV5X(6Tk@lz{Ai;KN34!=dYFRXDIGgKOVTQCL8z{Rlzj@H?l0{(mbW{}h!L^ncv{ z?&NK+uKx?|tDY0OIsXgmFPP}ZWm!M!1FGyjY2!4XsW1(`q1m@;Y4AI*5bbD=IOx{A zEahf8&>lW8J|zXB0g)5mnRL4|fC!rz>!IKiS16bCa)xsMfr+r^ zIUfpYj>k!FiLQtsT??6qnL+i;Sl?rOrn-&QERyOrk?}>$dLWRwi3Kha;eOiSu%&5a zUIn(EgiLOksz|7RQLL+O{lf}QT6pd%i<}G5lRQ5k_w?}n!FNigpYhGhs5}@k^2Un| z;SM*mt7TOJ*r0lXq0o(s5q$i7t)NH&?-oG2tOFLiaug&3Mnk4orVpj=_`7oniddF6 zP$A#L`lu~9B`MqAXHXe1GhKW|DX!KIUP+}$Y4}2w^gOp!t$q~Jq-D6VpwyC(^Es4I z|H0LNW-J%IhNs@>{JmrxSJ#{aBQmHQn)HnC=id^sy0<=ML)vr*%4iZlx462JMhS*g zD-njYxxe;r@`zpjy9AW*E6$T^8QddK%U&vaEo*_9b)~$*nUm-B@Z0|j+suAU)Su~; z6{4wPe1OS~KnKGYOztgi4u8tuCen8s*;)Uh)q=;Gzi~W^_Ag#}04g5*4(lqEwD||+ z{0U#n4l#6hiqpo+0QRx6`9N*?lU+3IJ;fA>-v?ba(5+|sdl~(I3Igi|tA(RKb#809 z<+Fv|nq&uU+qu_tVew{xS$j?OJ&$d!7`I}QhO4IZHU3FPI_I~Hh(FRl;|`?9`cJxJ z3;(aIm;{nh^XI29{;T5sWAo&%1OEo(%K?*{r`5cK>gS~{P!&Utr`AO4*zlf1Iqs<&Hqg+tvhJ`FDmLko)89b zc>H^k{#=jzwJQ0~XZ)1PzvtqgQuW`Q4b}gsWB;x3uclvo(**wz)IYlFzc?c%=l^Jf z|IR&s-T6Q1>8~z@a`*qCivGdKe|7$E0#lf^34S)jO>dZIN--k9^OHBxVw?+yxx_=y zV?UAn1veX|^oRJ5z>pn^n@=+7WEHRqXzA2Lr`5)Wn{%7qJl0oSDGW9fcU$q$xI8>5=jepue>DVQ0aC&!_rX;aczrhTvs+ z`?L4%xTTj@bKQUtx4!ZPjD9d0i+QFyf>6T0gQ{)7af>2UcKzU?PL_iEPkM&aMA^sw zn{m2;UA>^pz|Bq$LJNS8P1t;zEND29_$Go`-l8B|UX>z6_|YHe>r>g9giG@2<-7;* z%2S9<&(_rl^4oQrokX}DKb%WU0i{_r8mZ>70$-9{m{sOk$ov<4MGE2xSqj~A7^>d9 zo!XS?%)n=~vnPktGD$yWktPRdP)Y?tS<^crYH$~v6Tz!-s+tg_>so(rE0K)?#Jj{{ zk?iFo9FkFY^#C zANp>E&>!IStkV`xTc(kWs*XH@h&zs~Cr*Lra2C8w&0mHQ5wEUy0$NL_&yxO~AttSE zJ%STkt{q;1Sp29<=(rGECir9cV;)K_xWc2NwO=ICY^s!>qr0lap2G*06jLvRT)AJ; zy`^ULo$KiM#hBOMGMHa4cT+u_V}5*Y6wC)q(L#-$d|=SlpsQMM4udD_QWXO&(vyPU zXLLAp6!kBe!-CH4J0j_1Iy4s__W|vVb)qPnU_WS(X-`h~q4}S?Itje zfcuh48oI=+w4f6>72o@z&1$rimzUfxnl!c}#)nvaa24Jc@bqItSk%5-Jsn504N%9)d93o2UZ0~7 zl+pcqQlfnArtBKmczFj}Vd!zdTSs$hqg{WRt$SS1dvhTtMi~#x{C6Eeve>)gi+tuZ z-cHwW$WJ>PP~e@6k=H^33wjF;--Edv+2LX|x>6DzM1iCN?31<%J0HJ&?+1Z2Gq^Fy z0b&w0#d@cBRPK64RsZ%|z7mfn_EXH4_NCo@zj}+s#uLb!X$L7!rDs7mEc|smFvuxN zVi9>NzB5i5@frQpLtqu}did{O6$=C`tsuM<60Kz@(}q72Rs7Dr=B(-+~_%wxCOLd$g{o49}Jc zWkAw?lX5(}-9-zNWy3Fp!Qlj5G;`w_<&n$ciG(~2xvPVdG@Ze@yivy^ov|QfktN|Z zNEeL3W6f~cI56cC^njtlcL%`P0D&G3-S*iCgo;7-D}+Xtn*Q`Wzr55$vIJ!)O_{F8 zN{; ze4=U3KZAy?efAY8e2z!sd;=L$gER^Zg8}$x-~Ag-O>N&59f&9A(KP_Sk(#H80NV54 z>^Y;U7#zQ!pSx$pCqs05#_6Te)2ni~8KY{a7S4Tr)BU}AbTr`aw~^x39`&KbT+-XG`CfAIz)#A{w>MUwKq&) zMD<*eR-U*lN*@>a$4Ywj`&XL`2O}n zhD&I(oK454DFkd04*s%t+j<=Q(bVVwpLyj*W?-rJM5Hqdh?>6j=H)h1!D^h$#0^ZEofMS8n@> zon$|;$u}k@7CDB&0|vyvAe=BaKghzIPx@S2P;_}w8=U!EpB!EY`n5l;Dp`m?BJK=d zx6qoJmuJqM&c{;mdof-1b9-=Te)SMw7|)~iBxLo{Okn1hJOfJ?Xd2rt4AZtmLVlu5 zEKuXZw&h|(;Mp;X%Bv`l5%P_P><;!dNIXG&t+IAyfS8fhP?;xWoq0RW1op2HCt$If zi3njtA>oVZz=nKH5^BIQ&<2t*TWop{zI;(sh19!bi#-nVYpQ|c;ou4W`izfhLr?o@ zkwGWupD^ss5h4{duLHLiC5MpjJMe&v!mNW}#TbVjpcmm>bcEE1zrdny?)H8AWgfSD zp{&79pMa>rJ$-6jO?cQQcN0IxT52{)b_+3fH&x@Cu*=ZB06zPBWG8%Y&*# zF&)iDVvyNIH8Yj!Ekruhxz=bvpUG_#@ohxrY*q)o8p^Ff+~jh;g!ZV?X1wS)EN4m_ zSS}BAB#>HY-M0tT8n6<}3PrbR_0O6q<#mC8q*IrEN|p^=yhrS%6Tr!aTBG&#z+iBB zm!3<2zX=&{&R8PL?-k+to@YzRa0hI*hS7ALej-IbJuBmo4fVxV zt}L!p48&GZCmGGkse&)JiHhq@AzOVND`HzX#Tyu!rmY+p#HE2l8XxR)MYsbMtA=gp z>0JnPgH=)0A~RU++JIdaoXf0&(S-)5FR3JEWjhxNnzA{+K6no9dq84}m1=Z8C$F^` z(_%T14_a`3*swFM4+p!6;+Xy>*s;KQ+VFUoPK$*{bKC)%YwJ?n%il}sh>;P2kux6W z8@_@s0EwcvjpP6^6rdK@(ijbR(~y_m&C>1(ofHu_z)_dO{%DOj?R>Vy7qc1^*KIb_ zUHKL3Y5Hy4<@%_~G*Y4f^qB<$2$`}dIyP71S{5%hw!eVhlEU+=A2!+0=$SA#?W!_s z%M`q!K^YN`(s<4>=eWn1tB%zpR;{)IeGTiLbDsiJ6}&1~FJU%xtwPH%(}DGsuQ&M0 zo>k2_*yLAfoAL`5@@^XNE zD!=R~FU^^wDn@wcY)5B}O27Nz zlz}KvBu5@)=IS=`j^kO$EBH(#5VO^e3^a$-B9Dpw+eB0oULt$juq|mbS{88 z1UFd6_9$C9!^OVq_o)ohX3a6cPG3q>GwBVgDjez?pbBVdfOKvl>KH<8tUH}&Dhp)y zP|P3t7Hl-oM#66?pwu~Ss$;a9^i`JiZVTYP`MGp8#PY2BR} zFXsj9+fy9qR+Dd`SkuvA-@_eP4pP8%5?p^)=V(~}Iy{>aLnEbKC>=ymJ*BfPARZ>0=PHJgffMmY{ACEfE z+G~(pcp8I670!K+a1&acXs2>+9oj~41X{@JUG(X+SA&nd;Ep*Gtdym&b|V0aGRt%I z%gbA^*OaAm5E1w}@-vFZT92qSw{FSZ7l^*NXRUgcT5WVNkuQZtVgHFv92G8u@%rp& zZ@qO=vLgsZE?jA;fh`HCos3X46(a2Li36juYbR#{v_k%d1g|fN-O4fLvxDsRu=R>E z_v1gL%YG~r z2aI4{*ZVsWHtL&PFk2NLYYaBPKM%(Rm=f@@QH6bkv4M~RKJtckZ%tF> zLvEFjyz+e^k6Zo*5x=JW-67E9@3KNt802WrQ`ro#S9y{R=U;R+Ct4&`)+m=~K3KL*Y7>D6qcNK(pxH zPM8Q5UQOp@l@!Aw&D~O@qpR>4+`jmH+>*2ZXJHS-=fLY3U#BC17z51|_nGWLvoi~D z&(ZL69&-DF4$c=z-)XoWO&}DV5$oeo@G}l*3RTU_7*uJUDQ54X%X2#s+jL-QXPV9> z6NM|d{OAV93y;T|C+`gy zAwN|OmI!fQddmyKwymMc3sh^$lX2BjBSxIgg)Ut^HRZJ^*X{ky4LE?#;Df*yOVwl?xn>&cnQ#X*Al?f$N?t zc;J5$@*7}$A^1QOb>lszUsyck7itX|xW3O06%rZ{58j}MU@yq!$TU6$Y(4r!ZFKO!%m~15kO)Vi)c3*hC(Vtzn?&FPZV2cl;V!8-xFO@Dj=S4Lp z3C|k3@5rWuE>e{0s_A!Wo(KjMqM}Pnu#99W^i@dB5VRvIxyUj>2-5Q27IMI&4vplt8$x&>DDV!d^F^&j^R%+`B%ui%QyH9q1;63 zg?`+9%BRa%d-l2=ch6?T#3QW(6ThWiCGQRGvog=)S2x``nkhW=BDtjm4CWEudbJ`W8hGDeZp{!2%)_D1(P1CZuDQ4nwX*ixG!`K(7|@9?p~KINAvjD%r&bmxgiJ@G1Xa1wll z6F;eVMk$Q8+z{dgxy$av;4QRKVyfjxR>pE0#H2P4!*iRzF%ooDgq%#`%NL}sDqKbo zf7_3XTskI{eD)A$5V6D+^j!`zo((Oiro44ExCVa6>AIhfgp47nM;&x(LeQL7`37E* zS&5gJ&ShPAqKnqiNBs>_z+~DnFvdhQDzmHg$g{z2!a`D`2^(kBNd749$$BQ5p7um; zrNyTAqK=Bo{ES@BId0rR&Ciy~HPXE_oCMg*uBLFZi|{-)ev4f@C6+KNzdcDvE`ZS@UocAmq0(N%=;|J(UYxD@^A6o|!&k_~4B7R;#Nr%P+za7`= zwdQ+URmq3S40i zQ$i#iu-p{GMu?VnSJS@{JEC{#DmtD#%VpLK6lVH%TFpKVNG37aP%kjB9vP9GPIM>IY(~imoF&6=)Mf>+|z&W$S*m+b+bc&R#@qg_8bBmV%27(j<(v`}ME-^%VoaYcqu-(uAjUfs4fP zFVqdllq<3{U!QSxYm|gW+CA6|cp-H_mCwr=LkU-jl~AQT>EVLFWL;Sz2t0igWy_Q$ zhT&4qNJR8&bIm@>@^)TONLwsJE>n`F(p(U`;wyFuuX5WFvMrA$L&TMy`6z^*eSFgZ ztM*on<5dCY85)cCH+6x`+&@lSmaf&@x47OkUuZZIW3>7|C2@ z11(E%k|ug=3BQ&e8+>vbjdBaP;H7@>N4E#*&>}MEZ8aM7WXzM>F3i(XelGiy>CZpe z1EG5e2vCy0+K=z$nT7N&YZSvlV`vB+a>9m`QP@i{s19Zu5&aPEic2*Xil(Dy6*ds% z0x?R{?SH<3@q1pPJ04jHbFoM%z0ImPDTL1X4QX2?MLoJ-stCe0t-~(Sfd#X(zwP2Y zV~N%T+!WsAUG9uDfe?TyXRwuFi7B8wD^KN?wkZ1K=;j~W(1Z(F@A$j3wBL&RlpCW0 zB*Ue%VUiYF4Do~i@xM22CigK#{~fK&%tg?^9A`2=9dwqMc&^vi+CkH z8oM)PFD$?`dtSAOKs_!FfLy?LC7f^JN!IN(A6vov7}Q5hjnp~$e4+1rX_`*tcU)Pc zUek;A98`^!r%t|+@ZfCQ9(FZ0iu;l8K`7(B*}z<{!_SaP zMB2jnGZdTMaRX{`2<`h?0}14m)g|~83CglHU9(=@*Fubt#BtQD?RNWhm(Mstl&*Gs z?Qoss`yEiZ+01bj7pR*FJA%G`Uej#v{Hjjdr8c^B27R0+`d|f;tU=fCn%{1>S{oKF z?FR8HKW|=z`LO$#fDvP}rbpUC);5+YPns=Gk8{i-J28q8EgiX1^Y zlJIHsCk9Fat}dlml-n$(o<bhHJXwTSQ zpEVLA?yj1KcH-SszuPMVu2bn=PZ~J<3)D$=l)$OTdG6*N#z41E;NqoRL;W+Aa9>E6y37Lq`a}I|ucO>8W7~C`V$gN; zc6oJEhn`2USBp`b{?cQAe((y{oha98dWlC553y!3cVh}en~)V^e4a)IKN~}aBD|*X z!}Ib4E67ImSA8%)Hs*Eq7TFR<*n`$eX6?Bu`0~r%F`F0kD5oSl6bKp>mn`#heBoh% zqrb|{LPf9-+-39#o%^sEXe-lqrlem`vuLc0st1fUW24yWZ784XfI^VzHBBFiyxAZOS|}!c^rCy;GxcGWtG(VGd@lg0J)uV2`mEJ7?Im`#FO3heJ=T|Pwto>7v8Wmrw zrIDM^%-AaMog7MQde5bnzxtcAw}p{7SyHkouz6qQzIcWuiy}LXp-#2x26`_4R)^Vmw9#(bQx0EHXu)Oxi+uaN2a}^z^cUk z>Mz90B`IF7=Hvv@=9E)hqD8+;q3@dA%grOtf}Do#r>11I!Cv7r@p!>@!YPmM8lk>^ zTVwlH#zliXi+tF`KoM#;@_H-OoD{0{@dyGs z%UdDT_4&1gVrJoJI59-Cj5fm{x#>1v;{dv}0M<~6q%%5oBBNUs4Lgv-^l>}O;eNVL zTdY^w9*kpqg`0F6Gd_Ssba*1UNLCCyRd2Og?3)iZo7f+})Lyo#FUk{cZWZokuG*;rmz`*MQEAcQ9F0M3Kb!fCEF$mWaNIvK5>sd*fWiuJ<#6o#m{yisOC?|T z3{!Cf=9%Ds&+Zm}OH~lof7DpCBjJ^FA=V1Z3F^ZI#p$)v62N{7Ws`21b7xqfZq!@woD*=8r-;HJNyZDTT{)$Lf%u+E7rnt=Fm( z7pd4Yy482Om=dlKfWzZTar3amWn}g&bFK!K?^W%`hRd&z)0-1f)*c5vu^wOp>K;-+ z6E{BB51XE`Fh9$|Ar!P+3HPsK>Q`^*fmjPv84s+IT^t|+tfMw}SEoQ=EovrrE2JHX z2WrkHc%DYSGdD1LP<+@-8U~4A=M+^Rav=oG(#JJmnqpuJGdY+B2LE7xD8LPST`M)} zv`dz84n{lJ-+3cmm}i9HDRqoABD|w%k-lTzkiegCVg1EFkrX%bi!~IBr55Bh1TYwc zQJJ56vg#k{J~Hb^A&>8gtA}Uxm`bIcZJ=<m8zlJEkIq|tbz6b>Np@OK*M*RB6uD^qC2(^BZ%?jKbLKmW zlGd6lin6fAix%$|Z$0bjj~9XkIF?f|@Q^V6quWFTrVm$ROYQRO@kz1P8x8&`O*h6~ z>8nq%@C{h5pZCPtruD&2Ggs)PI^6AMoj2d>G+32P8zg+PMMIq{PMbjcGk)Q6)FfFy z+zM{L&_+`=1{rj(=X2{kGyRBGecD>mlrNKzztv)}PYv0)&cJQhI`b{$Z{w|Wcnn-lr^g!4p#>~6wMez7=4m057 zex`9s>FTwr9LjW3rQgHQjMd}Stq4T$Qm9f31)H~t(6&j;@iw1Q^>8uSLaJR&h5)^Wyy5{a!^TY65koAK+MEFnFo)0t|{?6%1jH~5)sptu@V zJee+|AP42aH{6?0jD}s%M#hRGXaRE`^+oH}B~PEpu9f;XsOvK>31(B94t_ZgI`OGl z^tBjqZ|R7_;63?t==nu`D;G%e9HFlw+>;$GcF=U_AzuMcoWry57}7jfGaz^)`tX-j zGj`gLo+wQ$GH^i{7Rlh@>{87brJ5;P?!cA(MvfCy)-vr*Yz$PWPvhA!*DV_Q!OMOb zkTi7pyyb&Y))wEu_Pv`F!Pa46d&)&LHqwgl#I3S|0@VKcs+v`<0_SYtfd^D#m=gu; zN^Y}~I47wZOpj@AlxOiM7Rq2kj2J|W^HIOl-u zQ7N169U{o>q*KNf5Jb*mHnF?_XA$XGj`&;8Fh%spU09QG?lnf5km%p4ADOGT4v62K z@u)1jni=VVY-<=7gdPy_)C7z0IZIqZ27H<9 zK!x}C>PEH2whm!qMGU0eAG5-F%nC{+!(C;Yz!s@LWQ6o9F?=B#Y(BI?50kV|Jk-7W zDik-nu<$mdnX={6;QEcfgu3bV0ebq)FSu4M9({nWe@(1YF^U8m?)A$Q@3ymI-E|j% zd+mR>+oFjtoz?$obGQequ_aX=Zj_8?9(c<(5VvdM2q9cwmb(Yeiwz`84Da}6YF^%aMMQmQbvBGK>Hf2ZzS*c9 zlX(>unZz1I{9wPDZ|V|*XQ;-VS@^_)Brc;V572KyfkRJx=|i|am*^A2uCWtGtH0bp-bf5zzAnbRgK57l4MRt!5$ z9npL%vlTXhZ37`PRD+<&3Ty6QZ&TQa-n55(TkLhwoA4 zdN=Ez6VTP!+a`^LZrtj*o=@YQ!d5wdD|MBBCHt1K_O*!})NM3%;WEa!mq8lsnN(k5 z%Rzh7=xOAwZvhqQM}k|kK}tNqH27=4r5?yRR=?5RrIi&eYhyWG;7Pma3u44ow`K+( zD2C7?gI%y%EJ>AvFT`e_n~VvMF=VkVt}ASnJ&RiP8-C+3KS~E2i5fM+`?@K`e$dWV zgv^kv=8TpV=_Jz{Bp+mkV}y*bsJQPN5?^ni1S31gcMn-5dSQ+9>q;Qcl=Dfy!%bNg zds)Ay8B;2ShcjM(D!lkMl5@_^pg9ux(hgex1XTmO!VJZXUx5u>7>eRR7r!$W~`Q z+T<~x(u4A=83F?fxWvoTr2>lSMH$=R;&N<|qJm$AJc)wL!t!FY(5t`;1@#)GRX;z47Ha!W1Z5%!{cJyvvYHgAg`DPVvl%sg} z)1hFKvCT7!$zZyYk9w4F^Hxcx_bg1VRs>)EQeNBmvNwqhQTlN}GhlZ1`4SSdM#4*+ z>Y$LotVQ@k>-St7Gi{_i5##FKT^$&m6%zk7Dvioip=4N+ZZUC<9{u2ht*mpkyz3w>_aWXyfd zDz)uMJ;j~8WlHML$!W+*Lur}iMuGzcLgP>nEK3DA2Mt-i2^W8YImUF7(PdXn2wBU! zk581)Wo^eW-TgoqnBN1=Loro5`W7ScduBx0(TL+f7o=U{+ zA;II3199hiAxzPkM;U$6_3Yv?E|8IbT$ETh994r+?Y;sy(-Gvil_x%7z#NHJ5?)F^ zlqG|cxRxzf;F*y$Ya6FI_VWy%`iG|)QYubBfbuEEdYn4UZU88Et_0e6xVfdE)Pye2 zu7ZQ^t#hVC=&$>x?DhR+NeJ`6r$roIFXH1!WA0n?kcj!K zM?P!Gt}=xYm;GS35|~CbOf|LK9{weDtK~Dpx}uzsvn4@EaOsdha&#hCu&G5wms*)= zCRcj1RO#^XYVw~RZ9cn35J7-k+M@7!TWEg~yIm2j+f(K>&}9#k!%X5+mq(BzZ*VMe znRMAFt3LlQB#EIAiMFiTf|*}ztH2X($2y6UZX=-WPWL3X6E9gNNd6#JGP?o!+9Z`$LFg9?B-ypfTn+qm9XN)DZz?(C|;& zR!xgGCgxcqC`Sq;B9^g+0x(8C&h;TU1WO0%$#=7JkasEbZ(B)lcHZF6uhXe6fMAr& zWCbbiupY8(LZ3EX_k(`@m=yv~!XxLS2H9~Q3DE$I2s*NpU^9I?d8oPsromK2g3KGY zMH0i;unG8eWrV5GB5o^-CuIuduEV-Qd{IM2{&)?Gcuz5%tT!BH{C;;54>F5u1hJ78 z4U&tpb)GRHeWfQ@=E%c9SA6uwSDua`hn>;vNbw9@dHgqXddy~*CC#DxFlFSzWe{)Gf`k`l+YL=kqXl~S zvWJ*H)Wchc#8w|i;zPi31hqH$d27=EH8<*XDStlhA{k5Zdy(AB0PKxej2MMT+4EG< zmHCR|qXMfhiFuI6A|{4o-$Vg6PO5K=)jsz2FYRyX8@#K=!8zxI-|Rl{dXTDDlBgz? zJjBq!R%zQ?LZ5bu&ZX_;2#5(jA*!6XYbhb?0s@xhV8d9TEk2to3r8@Ztfdn*@-^xa zG96B$i`MTM;VaeS;SFB!-nGJUKV?+EFLj)45#k~N{dwTIzQj<`3j>G5pnikG#2V+w zz>2tY1hw&xp^Epiq`c|(1}}2)`)zUZI2pr?pVaDK=o&}YS>Zg6VcMbEQ&IYu85`_E z^-1-d=xOMeH9M>&yfUyHFTwdmd%<=O|D4Oq+WH;_GsRFk_Nii<&)aocATU^~>ZL$7 z2`thdUXdpT@9AhRT0+pOCcgLs*W5|wP9jBNaPtJwNq0j7mE0mt5>lWnenhc&qUg@z zyQN#t_W?Al)zj>q-%*)4@x9x?Y}!^;tOEf)5%VE(aK7u#&&9%IXM)Ml@a2A+!A5l%?a` zgA4ZO;t$}`+`xHE+D6H@@r~*N#0eLzz*UP_kq~a4#x}LRgx~~YIMEto8Tc~UxSBl= z!1d6dno;Xe8^t^fLWIeVedff1>gI3MTKNGnw~=uC<|b{Df#2@>cAJpH;PMF_2kRd_ zD1rtA(9rUS@oItVV|e2_gFHL=M715;lGGt!<_b*wAbqkps?1_fTNYs0l{>+Q3L!CUQ6-aB5%Ef23D3;< z!h9&Q-#)drX0~y8AAtPH$FLO&u?f*GYcnq@=Xq!j@1iz<=d=WKZNpd+Uj(jXumx{K z42>LC4fX8lNc%j+r6ipCvH#+hUAMuGwjHgf@y;p+({yc7VEAi(T8h>rK zB^pG#^>221paS}7XDeO{+?X-*$z~68%u$-{KAQ%RN{V4tYlyTAeR#bBh@~#DX++Pc z2^o1Mj~Td>1pb}Dr8M@@>zb!8Zu#n^+~NR-F+D`v^HO%BMe0pm;px$$8gZ@HuFg(8 zt#iGDkI=k6Kgo}so)@c+)2NA{LMa+W&ERFQ`Ve5RACPO#$Rb6|AS2+e8yT*l3EZq( z--3~gwY}Sb@DebDfa=rDEtbrmgeY*Z9L=LwT8bR2VEtPvXU9*Utb(ulu$N@<>-9`L z(mmQ^7EnAe^HtGr{epNkws>-aDhD0<)aWdRcj?1$)8?t`>(9hnsKEAaHu6$W?0 zuXs}>WIH6*{&-$oBrK7ieW^Grgo%=L7UN`OcWVMXtt|aRfCPvNmBDWs#R@^_@3PGz z5@{r`##o!lJX*sPgA47okfgV@suw3aUO&`!Jm<`Tv)q=4+YNQXqPb3U4^nqp3~0M+ z&ET)t=lc}?&Lx+k+-o$99<(w) z5I$;?cM*Md^9o0*nip$&q_jc5_ES+|h9yC$%GN1|el|Votz&TVAVbV>ag9G|q5)v# zv+$*?(mnzCozbQoDD1q;{eJ*0K+?Z8-oS(Fv-azrS^Mt_E#?0_)&!kH=psLitT8Lp ztr;4?DoZr-yp2i=zEJ_y2mh@x-Wljj$F*(h1Ivzb={@=mau;5ke{>6!RHds8>?rXL(;aQtd550L z=cT`HeDLt3&#uTQzJu45l6huAARrc7gm>pAEWisR;1F)N_H6=pYRf}Nd)G$WN}G&6 zUMeiHQpJ74D~>)p;Y&)8?IYa!P_wjsR6oNMeHP)8c1biWyxrt?%mK=OLOBz>l)>_d za7(O6s73hTgfOKyW!zF$=)Z~7u8iF$>vT${n>ZS#p0opnJqX;%cW#E$&>cASda0n4 zL@t9{ev;1DwyADyLH4R)>8C=;e+=K*VXe4P-_V2@tjM zXqd50w0%3djUHIt3*k*^$DR*>f=%`A`jTyztpMWmfA>-{X&`$oC+RqbS1*%Jm~gm8 zZ8VobLGoA;=*H&o#_wZ5M$`qapRU7hO ztd)1cP~1O?z{WE?Fm3=^wZe=I9Ef25us!``bPq;vvezP&)ND~DDuHdaE(XJXo#G?7 z*8@6A4A62%7qQM4*JAp0(5;gzWEN**cY!5c!#>~D<)Tj#n!YX2LdEmNr6C22g3^`Z z$4~1lp9HXC5dUF5AahDw}hd`%^zbB^`U;- z(pPXwjtzyO5B8wW#kICb!iL$4MS~j-H^Z%m_fWe;c3K+rwQ&YD`kbit!F z?K>6T*R_r3;nlg}EV+!aiUFMqK8!*#vXZa;fl8?48+UUA)DlZI_(x!oCg70YnA_ow z7s*EyF-j!d6dJ$SZ{5??EQF2BUE}6|8DQ*Qst}h`-l%Q4+d*x=+o*5d=CjPiq%Q2!RPBS63yL<9c;3xLE#etY?_>0|KI&tuL9P12NVUW8XzFNfS7L33ao zv7P1~Q{aG(@hf>JhXT8Akru7KMN#vq&5#nO=e*!sV|n8GplHXs_-7$Fvpm#bBaB4A zIl4{OOg)Fbdf3==a;@O!BUE#p%CO;=d;e|W@*<8@p$=J`4Syo*fGi&wC|IbB2ZAo+ z$H}XTH*FVdSFrmP78!e)JUbDZ-xf(1HGqFobN?Y<*`(W2G^nFFFHH9z@s1?hR#n=ng!BWd0G6urJuWY#Ltf$t~&wS|O-e4V!}PU8@Lw0R z0V%1AOR$O!xZ*1bw7lwgwwS8eq_#c5ayUwE$rFzCutUDT%bez3z>o^?fXbAkZO5oE zhj|T);N+Z#Y7tD#nC1A2%_R%3e<69&)nMX^h!dU=SX;@MjsUfUc6G!dv^BB^1|=l_ zH!2$qd?W@*^p{GWy>SH^{|oLc+br`0B9mc7S;tJ>soNTe)GcssP5imAbjoJkRtd+65EzSjX(DsOIMv7}}%_*BX7U*D1 zq-_Ngbj66&7>FY9dZj363(LDl=r?`M0x@^kQAW2l_eTW@LJ7e$L7@gH^qJLl)BUF& z=JbsZIOy#yU^=QAuc@IAv5IWztaW@+Evdj~Z@yC&5?-WHP5xRp9K%AToz>l~^2OA( zMHA6T%-W~|pEzTb$6u74e?6h;6_}~W5qTAxae)+v))K;CAj*yS%6pkh7h^7c`(+6* zhErrFqUIFH&ov@gGeO{}d(zy<3^X3dFnuGeBi2>)VofWJka+=%HVxO4R{wo~007WE z>qHoE>c0A03?#}9TTlu6`Cx{N>|bsBwKqa~IC>byRdfyinP5)1oPqj<-HLC;ytulJ z9BSInrvF}H6&}5p7*8-}#jk4};wjmp>hnzp^7L#gI zP~Aux7k+k(5n)C*@c0 z3xR|}41NnIs++XX*s?DHi4yV6pdvI_ERnW@NXRW&6=YoZSsEZbp1)wLD@kzC#@ZyE z|A>_N6HFb~XXwtDIRAH=&|mj|ciu@VDH!lX8X`*=>^xlPF@_mF(B}aWOcZBMa&v6X zI1gNSgZ4}^627>Qm1klL zo$Kle6JO@@NO3R!+m@8;|H2BMc^{|@SxSPD_yf>z=X2K5xUZ3GU)Mqk#$OVbAkj}i zB;@*q`Uv{lL6)+>oM~X=>`#Th8-NF|%$Cc~st5qZ#w8kec?op_NL(I?@5NujHJHs{ zRiI1f6pVvt2-w>G>-G|C0XeX};8PFdFExXli7oTq=5C8xY zzm_5-rQ&HQOL2x3rY_S5R9QNG6?BCa7%3TD2POwz`0WV~Nq@S7 zR`eGUfE}YZbE-*-fhV2hJi=SH0VB{uhVf@3hUavEm$FFUff7tmnqrJQCAsC zLdSI3;tltFhytp(+*)O%a;)I+!7e;GoQ$wQb@68Hih^xnr5q|+ZAUw1q}k$3PN_Xd zvGZWDc<#8eS<_?l<^P`#(XziYwuCW*4x!?rj1CGv_Rx_|Uyr47p(3VUGlntfWT??7^p)LjZG^L$Ld5?ntCsx?8UF z(shIJ|C|XH$MB>#TeZl#S|5%GAj)r;;5c!ze}?gBBwNQrpiNSnT~hD%-t)RQ4+wjJ z1{Rg{;)Dm<`_HMZ>4cw(>OqOWHfmg-qopyal2y+CRi--^R;4fIERgx7aUkI<9X;OI zJrb2ff2-e6DG`hhPe8TBek7+EfB~r=y10J6h<7%fstO+-;3R$3QRpC%g<+|pn;@|V z${G{Z5+{1RL}rjJ!S>3PKtjJKB|WSkT6FL0SVJL^^7T&ni){BK%sG4_C8rjmZ>ua zz#v|La6USA>WbMu0$0d%%^3NMb))G`Qx9U^KW($Z>iykNAHi=NgJl$MM15;`7DQze zcd{Pgt|TSR#f7T^gMqBaYwY_Y9dmjn8g00uFC0|iV>srRXbSGMu|(|ZS9f;VE0A7f z({u;ohK1sM%=8|(m* zJ!a|#QKN ziRk13;~XcJoCx03D2qC#pG|%XanbPhp|Yhx&Z^pHQu&4r4?W|0pJ+&WOYS9|K}Jcs z4X94Jr226O<11k_a!0k5;4(6NL35uyDvcKo9UZ;cM~r3w7EOIljsj2Ql!4;(0;M1cZ>HOtyawt^KT*LzGdt z2X*wt(hOT3mP^jn9h7N4LBa-c1&rAi+t8r%e@oS(vWI5}jv_tPgaa zW_=xbWeoBh&cwS=$Xn?d=iJ6U5#1h&0lro^|8(1t;s9QA#H@$Eob(hkZB$4nzk%sS z$kSviX}O5WGNGDmQ23qgDhcwT?2jSm!EmIY_Ad2n3r#Z_bG6JUtN__?`RWDVvyMXR zwaFKfO(w;kbW9*G@91zpy}3j;MbDX(rb5c(Pq2qnW69?cct-ukCs7-i4j-gMWc~Bw zP-G{Lg3YW_T_A+?0BDdSOj)p!HC<=^CNCEVpleKptrRxDsX!Pc>LDS)XMFxO>p)sF zz`J+Y(WCMko=m3mWp-Z_v^Rh*z6c1}>e)93OpYqFB1|FYUhfeyML`n$&=1)zPj){h zHhL)l5ZS`lb4ep`O)kV+Bu2b-8v4znfj|fltTBOdku#}wJR2$M2245w>DnM=smT|* zG}S->^h7{B)E=KH6rS9a&GYZ@3gPQTFxi;kD9mAKeAg8jhvor~oAV|KWA?W8gnm)j z&h!Fulv0rtlaU{x%Io40?)q5$ydr0f=@f~@og|sdOR#BVMe*iv0U-+K3e_lZL>?}K zf(PZ{+7&Xs9XF+5zo5&@k$`+Gh53f?pU3pU);IMxuiLWL$luIjF^4-2N#z^5*~CeY zp(e~cgib_2MHJjaDki+FDGe{s8mGwXKqE6C=JAe?ZLjbLK2fpuONM}`=FQWi)puYz z9{_N|_=~#W0tmt!mhiK~P;{({axwd$;OPH+1qdY|x%ta~?NziKnx!u|rwb?wV zKRKwwd(>sN`vwwl`5M~lm*U9SY{e4u43h^og9Is~cRyDLWij1i7dWtg5#SNDu(nfd z?dzmjsAbImI%!9fTj(PD5ovGHOIIlW3vlB^bv#TWd#DsJf=9=h#A?=X$GEjE?PkGeVY)Oz1_wFca5P zoV&4Y5CWApv`yD5PX23~sKd`xyyNqlfdCVVz6%L2Fw26*VsR%m?>i|Lsz(`A)hKkM z@{wk71vl4)7Xkv$HBKLq2hTb0*n%G%(i?6mT!UW?4bHI`MlS7|MujAo(|fgq9OR(E z5BD4JEf5i;q|Ur;=Y;Zpas}RlhyDoCz3JEb(D=LzU{1#1RcZHWFM{OnZDdAk=J5>0 zf2W3D%@T;5j&uW%z!=xbC(+pdN#&q#A9W=>L)58yLF5ep@zI5%}F#l#STik zbR}Zi1?6^nv=OT`TmKCS_xXNWV=@dFmMK-AD;YH6=P^@@u92Ko7z;Pb zokB1iwD&Kp6kH?7-tQQQ(rO1FAVYXlMh903g zcMYwhCh#4d1emYgIfH-lZ|;lF^$kQw&Wwk6>qXqehY$Rv;G(6*e;b`hc9QuJjL*v< z>+lnQ)IA#w9&E{=Fwxkrvk+rZR{D8q#i@a6x7P~;2N2)g5X;U|?zh)VDL1yIkvUj( zFfRAb-f z$kZ0y@p5q+vxl0&<|*d4q0Cw@GaOh4m@HQcfd~;sftl_(0+RB4ildb zEY}hEi9F~dh%ZOdk`{8Zt!CgI1;OI=1O6?aO=^~SMRg;SXR;%qd;vsZ*Cdu8I{`B` z0f*JCR(Z&}w0~2`0@)F+)l}*~Xe6DGB*pwM(f!JB>Us}@vj{jz08=4M7nl0%1Nvz( zGti7wJ=7Ka3uGf0rZL(=1O8YL7B`AB`PPM!oi;Nj*Ar#C3JRw9k46<;^Br zjN)ltu(s9^Pt_FrA)b;W$W;g;b({*UP?hStPjeZ-}41;Y+nn4){H@8{Nq(L`cUM&_vsk>I!5Y#n8p@i4aN-; z(QEg3?WDm4Ts(#dOiu6shTN&TUc&W)X1C|ZTvfSJBgmNvwM?7DSG_>M{DnlNkK``eS*8#xIc9l`|a-eybcCH*9pgu1z3t($s-~@Oj zv^c|yf#8ML&2*$yGkGaQ^uNg$fKn6$k2l@mSNgm70Y zFQAANy(8cjFb@nm9zVY4YYn}M;%`~Z3-ihLw6sRz$$t_CCra@$DYiO$o@xJ)hQOL? z{VFbaT!9(+_T^vp#aE_2wRgd=+R%-&vn7Px@mb>VJJ0iB|IR3R3#3VS7*3=pT5m6o zKdHV?Iz7nf^|6yS@Q^>{3&4f(`v@u}vbyfMCDsxhA z$t>m@)*ye%7l8}o_7GG{XcGM|9%$P_s+l7XjmgnuIahCK!SWL(Lbj|Eggb^)Z(jtp z2SQlPKgWu8HXBLrY}&Jz(vez{tSsPFMz{|+O(&kT#w3l!d#5sT!}hI7$d<~joUt8h zJ3L!ekAI+jG}nijcLXutEml##6xM+%n~^d6$Z)8LKcuRb;8v4qdGiZr&yf`aj4(PM zQUiJ$)y5W*za!(IkOEH(IYU|BLzroW4t&vPpnhzk-l<~DTU10tN z?rb~zuqtMmjFr1_u8xZsN)qc>d@Og+_yw<@2Op=;Y<^W60FW&V2c%4nIRce6s?dRC zg%aKjVy#1CSF=-DJMIqTqWXE{Uc>KyO!2qkpbI0;zWXz;aD$4#XzP)K*aP zX<)EjJLbY!DF=t|XpQ{gZqzwMp&&l!;1+%NxGZ_9J^R3N__|ML0gSFBJZfgh7~v6H zSRywWSqwM;bite9YWbXBqNTYzSL3*ah|kIFK8E4@qA=Uf`m3?~mhbPtsn+YJrBnOl zWbqi8ED6;5^AYCDD83=2Ed2vS#y7VGwud!IDGqI#B61%@Fnqs5*^dOUERPn(lxTjf zhvzWX;ep+=4_g!C9z_5E?ZIDri>KQgOD_t&d+0CF(k3Lg~U_gQxK;)<790!5P!V?7o7>UX+46I^=aAJy zBHJv2Z;;z1x^Km4JcIM7kI{m>J#c#8TkCEGgM1Agwuha#d6y3#jo!pz$@#6(o}%ZhgC zNdMwH?$y;fn?oBGAs)nC!Szvgg`YP?4;j@`FMTsw5yzcLBh)=_-5pD~xjp>#FS%{w zV(=kQ3gf`A`Hz-0AACDvT%Bskph>wfDES9G7I0kP#P;s*>T3$|8G+ce9SMh5myq)Hw48+*;3-}I%L;K^t_WB?K(I?6WK{l@Q9xBWz z*3RrjqzOue;jFV;=z?w}f0Jm;#6=k```1@>gZEHnWee@1*mZA;_d=%U8P=o%4apOP z0w-JyQ14uW0Kv$e6DFIWKNLgY5#P(*iu}Q}7x5J;?M{EmY{J4^S3W>q#2l0uI8h#~ z7;Xdm+SYWP0<}!iRgQp|QD7U4tm#51^wLHUWF2Q%R}!xG9OP%iO74&>Yj^wm7M_9k z**i7|Ri9^6B?7GH)^hD@yE4}SYn{C)X;-tgs9s3abe`?^nNq^Ou=1bV^}87>mpsOKr33XdwWcl4S(`BH4*Nw>?2g2DYCQ+L!%8ik{&!a)DjV)%K!KNWGktJ$mmTpb3TgLV;&Cxr8Hx4%aO#U~+8kte_Cg`FCsm z8N2adzge3g&_|D!Q?>YJ9O2SrGh0Hf3^Z)G+mkr*+|7YBKCuWzM^4 zDc=1%s94z}gip>Pn%l-ltz#7Kx}s5wvkhalE?#;^b|Lele%=FKkAN?D?n zcc;saGY#frpaKmTWJkP*abBP3#)8|l9S;Qjm5oI~jhmOh*_k5n(1&{ryd#j-Cp)`c zd|$;V91o}vI5#h$etHrVKl1ab^gFs?Q6dy)S%I8C;%zD!F2k-{Hnh8zdQPwPy%f#7 z{Qm6#oXx3=_?r6Ja=i=%)@D^;TC9RwB9JXb#t=xNTJUNv#muL8x;_yS34!l$zjUaB zW1JyN{`D}61f{(-Iy=bG3CuM#c>xo{Sx@^%yK53=M48aF)z2Io#`l5%_?UUo@Nwv> zNGn3e4Pl49lxgi0JV3r7B~XBanRF8C(4*@lBB^GO-01oGfv;fQfP5aW-syD92TcOW z_m-E;S}P=+dIGK&%FM&ASOZ7!X9%iZvErsY^^)J-lz6lmkVsCW7j?e0T~RFAtdR+*zCZIuBi%G#RRn2IYRI6X+}TN@2S{)`?mx z3}W!WZaDNg(UH)Vn2}4a81BD1JHsCqbzHVp-LT2r|K^OTTy(zy`dd(LTIM*cTAlU7 z2j8VcmVCKhdST~(JU6|UWFFtrEMW4M!6yA?jH|EC(^3~{=dNcm=P5P9U%VM={ zYutz9X3AsApe%q29fq7K@ZP|>+h(7h>`<>v#gY(?xB+~{9X7uM!kXu9+jj+dYkzmR z>dQVi|D&L%IP6eJsm*`TtF;+*>l{7OjVcy~?M(UftUWutzkPp_wPiXWlAf0~(}~qu z-1{bfh|NHQ%u=qCQme*e3jQ9++7!9vC=hD#PM3C|J5!xcs4P7FP{v-HqK*51qTRP* za~ODWnez-=`bgk+g>K?&iW7pq0+p9;Y=*n?z`qhQk6ATV31^x1ayN?8ftBPU8WBVA zsBXBo`4Unjs%fG(#3os$u&$l#0gJJTMru7>Qq!A%4ajAuYfm0!x|5%M-6H= z%id*1s?#JyGdJU5N2x}ATsqAz-o6{<7 zKCjqycc0*5RAY|!8d*N=$R1WqH{;HX!7(PVcgDMAcv=(mSRs}JN_7m;r_Eh4s!SoF zGy=wDF`J$*Sbyzv)g-lSn9OXm3H66#KlMj5(06z8UGhOImfX8LD=#60d#1>Bac+++ z5ByXgHBA5;WXWWfe!wPWc0QK3)c5pkK-Z_-UV<&GyJW=-<$D*c;ZkVXGD@XYpapMh zaykZ zV%B(LdGL{FtmHxgYtA^2NGdgQP0N2i59WK-0&QW?(P^~Zg%rj@j>!N-)S3o#mv6gA zCGA9ADl=^1A|GCKi#hz&BD#5HnbeigDL~`{TP;s)@<(qmFT*H3QlfF@A+Hi&34@fX ztD*lHa5?d~>8F##Fj50qFO}a>j2<8T;pL0uoPq}}tNsYS__N4&%BxmAS0yP1K z3iX*RbI-#A&Wf|?ZQ@DeC7mDgxtf3F4Fks0TyhT+7TmV>h8;LwFXy5A{5EF0#j?56 zDszFe+j>@!yvY*VL^zA&EZm_6)4@j9B;S_mvKsr`s|9?L;()eBg&&_dUhmMvZ ziPdFWel@A&7-Ks*jZE6Qp|CQJwha};!PcUG0m{5O4DfV%=XmU_x0V4`CkHxtkjsW$ z^D{S(PnHx(!EB-Kj`5Y8+4jZIh=lt~p<#S0f50KE}NVJ*4(8$TSIyOtLl zbiZ8J(#5(`o4RA{(Gh^Y{g!iIkr)eVGFG$^5iyroNZ=o2OQMdwe2Mx&CG@)sqc^bM z(JpspLwMQ!QT-3Kpnbxm!hr;@KI%3goJR9oHuX8c3s2t+)94U?W*DcQ@6N|ZTiCJz zl)Cq(IUMtTI7?eZR-Nb_`FF45-z*@ZmqcFKHgbE- zBZRA3g?X#ukd)Ml?9Mq}v8$#gH-cj|)ssttU$v)NXmOdQ=3T9&$AWS{ZpR_*nK<%|ROPVou9yS?Vc4d<~$} z3N6mjm`(fz>10*x#9Uf$g(~K(EzWzcc=-&ecBy1nh6CyEBRqG!+z@a00`X>p8i!R* z&l!D3SzXg5vK&Alh?5{3)Tg{|Gg)tx@-YGsCMjVjUT@l%r1;nYn4z_Mc|*EfMYPMK zcubhwnszqFH1jDzGH5Z-cpyq*D~B?j>}KWd$njOK(}jPgG&T2765AR; zEw|@(;K+gcP`aX}TDROK&+^PdqA8$PY*$$(mNb0p9qhz_7pc$FKYpTC{TeF2g-SHP zQVQ$E0M=a5*ij;;^b|_7>VJf3!9cX8G!dnVVNA%o2!W-bIsD@2ibp2ceci)_o;<_2 zyGakU^~Xj@jXxIN@i6?MC}JInZC10`aE#n=UX)9-P%H(g7NYyqi!MF&t%)7wqLhA| z5<|+qjP)6^kS_Ja|9s@HiCerSn!kdr``!M`v|IIBv~$fSi{>xry1ouZfnnD-eq(gYI5`D5cLASO&ug9 z8FitWM07n<$%2AW2%LoD4#Y`*Vg6MNc}Hsw;g&rk-Vav0d8-D}aq(^1#^mL~zmxU8 zr96gU_JBCj-_VNJ^x_6YT=us&S${lZuJaMnH_aGh9W~Tk16dP}Yz3=;>qUHACSMQZ zNI{K}hldM9pY+;cuxwww(3-uqzxa$>=s6^@-G$-($}8q_EEfuaT{HE&glP`aT<+HE z4ZzZ(xR0Pzd+(i9wr+l1=bZpH6hEl>; zG(!7^HU)2;XR*FyDrwU+nTZ$gL1vRN_rq(k_cX0t2RO(U#TnT>Wwujl1x4Zh*@OY8 zmx(G?Gn`M~ZHcv(YDZ%Mqu-OLD<*J)+X*fgncXtxR6lR`5{P3|n~`G7(%oDsDz#rLeJc73>qb`?$;< z%-I`%A)ew$Xk0tmY~VdD-#jo_cDVSQGeh`B=a{4B*j*S6&n3R*VRA*y1QI`diai+ zK%RQ@A-mJa^vimX*4;}KgmJGm3+D#2YCof9jO>3AVe!Lui3QBzAy-(~4P46VWzL!@ zN2(19=u?yjK4HWJ@yQ)Vmx#Q(8E>mzfHBQo7PZ^DK?w;KPIx#i73_dro4_B2xv~E2 z_*&xrV8xP^$7xvpX7Gn?M zFXE%nj2%G_##JR0dG={8aMA~5Rk+^=f@qD#MXMkhRU|FE>n`?DqGX5zhYZ-AMIn4Y z*wdF*9m&bEYs9uP%hfm+j;qySjB^MPrDxgG=WR}LJz|D}VekEOwiuuQ;3gtlA<)}G z?EE;3FAI@}&#!)(;sL?cXI6dJ`T#Pz**UJX(gc#bEWHB;zRx zTr-dTu8s<*^LS#eWzT230OPHNuspDY(jLsK@>?7wJol?d1dpR4kRM+J8$uXt88(ZL z#Rqs2u^OJ%I6Dbr9DZ6VKX<*Zn~fLJ*CGoCm?#S>exIGp*h)G|4vPvXx2gEN=#dJP zCAKUJ)84gLuBH1MPGF!~lLO*KSnMaLOis(68&|BOJS7nv z1Z$nxpPj~CDL9z}=yOV)jxY)ynnT=LQ?Y+Ltrv2z3OU;d=Ez{!5v-{8KaOB;FFQqAdMA>jxWIX_6fqIrrf$s_F_Lm z6Q}b@athei$HcV1e0xi_4slAB*xk$Wn>~2L7-G_Z*V=;cPu0phn}!9kq77hz>&4n0 z3-9T;bQJ;gnflg&NH7X?tys2;q0B?KxeI`Z&<(X)S9~Z7!GLUZ?!#*IZcBmQj#>9= zD3E_BIcUuet3l2mxRpBP-C}DA6}FtgRG>51+^g=^4%H>X)wv4e0fx?Dc^#A zm*c8N5ZMC`t9Uy1iW}mHT})vZtH*iJu--FSEQTaq9`W;B^8eiLbvbduAjfT5+(p^| z>!ybJYxdKl2CSMJQGhQbZ&%+5^LG*M>H2|KlFSOGb3gV@hI5VYPEmB4rrM+4n?5(oFnjZq&U&GHy7H@lw0g z%!O8xs~q5O{#@GacBrO1*6I<_s?l+V8t1ABoJOC|dRepy>bG6^!~0Vsrd#pPegx{6 z@Z^()eBlHvJ1|e7O=F|X0OE=G&>8uN+sZmJ7yD6;I*wlOX0HGAVkQb)!ZeWYL0pk@#=gF9EEehcdYIJ1TuEaawK~55* z#CVwi*06D_6BX0BM{m{%ZDGVweULL_oI8Q7er@Zod|e=HoVgz!?i<_Ntc!;^<<=9B z(uAB`UoLbOrrkGy=iqKh7u_^-NC$)U4vDTkj>~N(pS0S6RTTcpiH=my7JZ8asy)J{ zsCzFPU<;f5(s4iGIJ-^UzCNVfqiIe?Z$Q|Y*<(4h&?lz^RT z_JBS{o6@az{^7h=hd|QBOs=y-Jz7lLmDenv-63XyhcN(Qey-7w&2cJ zXTd9UPP9Lg=~jq*^NFOiCNneTemnq_r@L(sp|4Ud-m5sTq*QaMi`py_I3J(xI-y(c zVIQ{R;x~a9!t-33q&ohYO3&qoR7hD3iPntur=w=?%}2cc^7B%ph&sCIeJcI_pg&1B zVivPVStsO3X{bqeGnUYtz3tqV=`y_sdJRZyJ!GB@qeZ$)P0`tg7=Xq{N(Q_3b^o7x zvI|X4d;%mu)PwxI`T!u2@G_+oje2psyiITYbb6y6wCgG6F~d;ERePKz6Qd@O+yE@Y zES74+;0JtO1pJuH7I8xxa%ZGK6?Pxsnx&z+(rg@U8j@*6@ldxnJs%J4A#=rkz6%tp z1d|g7v9@bww7VVZTwu6QSolL)NMuY*dx!A0bVz~wTn{F?3#uM7KSqec8iWgD5IlGn zm}#(L8ngQ_&@KGN5GwhIYDT6L)R<RsGrHa^` zE0)PZ2S^=mUrZiO!qFiX{&DNu&-29jUh46)!gVy&9qSp;3tk}-nJXNb4K4-<2QtJG885%ltcBkLnmN(Lrllp z3=E9$bjL=++KNhv?CyXM@3+gBD3`>yR9-T-sd+Uhf>g#U^OswUJ9LZ!r}xf?@7`_Z zW}t;fPkQJlg9K^*sxE?+c5RcWg6eL+YrM<>gxCfGj}|$ppV}C`osk}}Ur(-1q(BLJ zHd;;^(e~__`Qh>%A1+|M54shbvCFGaNVC7LWH8gUO%CLLX^!r;NOgPDt*zd_kL@nV z85fJ^ z=e9zodnO6G3`ES?cV&!4(J?42M=IY`?aD8c4Twiqzbbktty$l+W1=jBvDM6SkK)e7 zo;p=Q$_7oHLi&`ZG~m=itghN0Q-1UeWIj6uLZP(?*1kx=oySy zeCV1kW2IZp!#?d7=3J349;oQ@gT`0wCNkkFD;{rv`5y08H7gqji?cpO`x?37x-9PHDAQA@0mZZWS=F?~ht1 z?uFgn@4FNv^R=|~yFxjj;^}}T=lci?{FkmjZ)o|Hp3CP1x{2QJU{g=MxgeI(>KiN~9qg*UFR;o|LK}*o^Re(YwhB-5-zU2&(9n$X+Y4q`Y z$=TAb05GH4&i^XzdUtt7_Ty?ET{9ubsi07Lt{ZgI=l0M`Tun4tv)iB*&XP zN`3+1{x)+^Qr|Vu|Bg~?1lH_Y2`7sto_Gj-1^Jl*|D1V#$ZDlpmdxi$?SD#jxRLa- zI)Z*MCe}=oupkaiCr>Fa7E_Y+FRgw^rQ;gjDxiHezy;5t__Q5biv?N|M8xHHG#8bK z6&7$n0^5A{y4RsVtG;AJW+x(|irZ$!wab zshH4du*v1OImby2(3&-ay+8{JM5<|ss%}`i=5G}T+?b?|p(+MDCt^B=(5#x&a~vxo z&q&CIfr>ttT=GR~D8@wrX4>dphib!>r#_Esr&}z#eUrZL<#t0PhKE0WWIrmZe|z{vrEg4p->a%qG2)x za7Z%L(u#j9L~;GVH?HJuE+eUEI^^$?*NjT2Cv!e3eHDk@3R5!G`+y(;4nIV3qn?*g zug2bu<*+Uoa~^1J2?4SIlbOT)Y2r=yn-gS7{r+RHl>;pyu8PR=k;|!r;zr@31=t!# zcyq6QVT+Lx~lx+$4~ zlb?6Fx12JvaFjHhA(Kyp=n_SpiMS>wA&m4cB1IG(bg2`LNdLi#3Ae$)5xNS@w*9oP zD4attk1)49kc`xZ^P_P59wpWooMSmCt-iP*gYtc^uwuwn)Tdb&kD4cHgYC5{p3I{} zIVep$V+9Z5fUG;w!Zxq+&C;G}1Fk7L;&J30rg1Rtq*v5NU8tBHpraz30`8`Kh_Dl%wp>5}f5YFmE}g;%7?S?56??0Zh5%~l7<~1h zGiyA?G&qKmRI30qbLcwJTFyyNjiw2fluAr>{z=ZoH}EykQ0(ePMwecbf=%pb+n5uh zlt5@3hd_Jt)G#udC5Djn5!>OV1+?j6dV<2(IDmt9Y6n3sB+NoHJxWy(rJzvw^D;V= za!uwWAY$3&@lG_Co{7x+Sq(MzM z>tWt!{2UG$k_X=-iNb`9r4y8T30jWcVuXAepR(ltjCmzWi+eP;IPQ6O7Lw-E|F_!; zXuOjkRE2R^k!2|Wbl*Uz1RjB$l4VF@sTB`Atj(t7%WcCXl90!3v?3pFDrq=pu}mT! zcet?P!@`-r^MNJOaV(|TH2wAImu}K1Uj<74CSGHUSPzZQs96`!>DHq;uj$d zD&NmX_;dWKtSdHEtx8kT?#qZ{4M7l>j6be^&4bC-7 ziVOc2#@C#%pUJxWbPs!`3k$6?#I~0DZVI3mNGnHfa@OCLR#_&gRO#={D~trcB;a%k zQ=RuON(l2<1$eU^?1_reNJ`B0L0fu7!*?8j=tU;KTeecpj>p@TDta(0Jn`#4hB2D+ zgb2P0WX@+e=xUlDWz?IvU^lHJSoT;EbaTky8SS3<9R+g$(XE`U7V+pmz>Px?Ia2tb zy`@_Hc7lFOE!dPD<1k@zCeJCP`!~mpX5xLE#=>WSXcT z4hnA9gSYmsEeI38Q;``|{uR0d7!0SHgSZ-5f&zul{#4DnlRu@}wqh|pc^81}h(-JwAJ?pE7Eg98T+90%u0Q`?3?xkJ zw8d$f3ofU%5sg_6hPiD?(3^R>az!*=-k!;~9{|%qf~wX*>urW}2c~V_j5UyC!$n-6 zpa7=?oAmb0N3=I^R}iWVJsl!L?7t^IX(|U^sV*c)5zc1{+(rQKxg{n%p{9-GpB46R zQr(uJt=|Js%p3_d>8nZ)az0k-zOYM)pALnW3HxN~R5k zU-jVE&e{+u;=D$_H6EbbK5x?VJ&aMFn~g%*Z)JR?G&Ib+Uv+C+4+meGT8nWb{oH=x z0jfrsd;G;51>t8gtKPH(*}rsdv-kGJk&NrziOV@RAY#2w;MHzRZ`2vWLTm9!LMiV0 zo*UbP_7+eId6u8L0(@!AoEYbxNqR-|5ItECc;rxAuvSwbkrv}ah1OjuK5X43Nh))~ zi6b-{t97m_WaRfEU-ek_EqEse@N=MD6B^5?9>*%#OzuDKw1g?*cEOiCBK>-t>&jb< ztR$qAzwXF$D71Ys@8ET1f#4W}gZZXuRnDLMl=-<;#7XUM))!^J&4sRz`A%q4T<$3E zwT2l^^D{w{fnr)D`z1@Exx*enu%t?$zY{*v;*jWJXCIuBDEE9|c|g-)(TLR+BVv{A z`^g*;n+DTZvj2G2zdPjU((u$qjh6L#F9@&u=xo*t@qvO%NYpq!{^GGHf|VMMQ-#P*H23H?Td_u;&K>d#hZ# z%3mnWHMaa0IWG0LZxgc#v_}i|`m2y~@nOx7->e2p2*ZPx6i-PXlM>xI9VC@5&GuL$ zb$T0_H8WVp-gl<|qt*de7V&zG9za>|PpyS*=jp9vV1vyoqJHU@p4_n?1@i3k)s^dC zt=~vf|5i~UgaC4h;e4;aoXZU|t=C_wY}KL-`>l{8DHFQOLwY~LTQ^Wa=Klb4RgsvD z3w8?~x@!oW5Iq1Ws_NgbVq~eN9H~k1{KT}{t9|8}C^icT1}vE-epu)eX4Lt|RJ%%d zM^n_xAB8&JD2RYC7V^wUt!M}KlF>R`Fy-0LB+ARb72e(E{V|F`jL+Z%#of=;Mk6{n zIX&CIB_*>XnMav`rI;_Cj{qfpGE4pLL7y{i(L&VBy?Ri(&C{D+n@Y~H2HF14oE*+HLoU0{>ETYb=UwP04Di*j~ zp(pLyxumOh_vud7o@7|k5n@y^D*B-%(sOcL!bDEtUd+a5HX>J|E1gz#$%6RPTF!xN zj#_86eEHL$U1Ol+JNO67MSCsBCann)Es#S~Cjg)2odG-Q877H@}iQlCKP z=x@1}ZWblc(5@g)nBUqk+g9kIj`)%&L#eI-;ax&pwB&H2GSW6B&tuP%wco9NcMpB7 zgR)q0VPy7{Te_@<@+A_$X7&oW-W;Nj{h$3x3bw3fRY_gTqEzchsvXnI4s9(zpS}+k z4c)4-NmnZj+AfCA)ANop1i4%BaLrjQ4F@a-H;2kx!3YgTK{bt#z8rT^+$=Qv*5V{N zPNkm9m<@NU>FcUJ#Vj_?A9pnOrzHNsU*jR;v#J16T*wW5&IT$AV18ep=9!<9yyc_) zs8@l+yy!8^$&MDdOMD1X9Wzm4V5F~l7O#`WU=0Q%bIV3^^;2=wE@HGbr~OllvNx(L z?>we4C`Be$hvy7wSLQ9EVqg_%uT7ia2m|kC4@LP*L)o6uzbI!a$13j=XVjCSo`CPX zv+b1WG?W(KnP3Z?X;Kd{&;p*^4xe$Xwi>1T@4+0Drv*og00~PY5YS`g?)qTF=9JZnl7ab}>R>>KvVU!4Rn$ zeC#)6gQX84g_iJg;Z$!tR+#!XHO^6~WONZLPsNp9zA!~GV0H-Sg2?{c%KI;%V2izF zDUdaKMZz;#Q{cmhS>un@siop#jCzjA0xU=|%e2l6008j2{Oq+|nmT-cPpT4}?jCm< z-vv=up}yh3dyVAtUCF0X;K4(G1O30`4aD?$ZQ?>OLelII1w-dz$m>3OMIHo^?rnmH z&J=pvv(U!H2d~pHm`T`|JVo8C5qC#$H=AbpsPR|((H(Vrke6pi$COHufkm>U!mXtG zX9X?` zx^mf;6$dm;-fRcAofD;T7c_cI0Goy4w*XxXBbK-WhZk3hw_8tdmy-=BczK^lzwG<9 zeS`WlzWDL7%NAdH%Z7Z-;9R>;*&Pd3ARIML}UB(74d6>Luz|$DG z(Vyw0b9?^i+j+w%;R!y!A3K6DiTNId<-0<0d-}NZ5C~B%3KH;Tptj_@abpE0*tntG zrbxQKW-zX}0^t20>XI@i=k24jJrbNQ5i-*X>Q6}E4VT8)_qmjUN0;W=eA5BUU#ZYA#KMY7PGG+ zZ%iCAN)UgvoJ4qoVWVj|_4crhK)tXWTK64TMGD)T%JX%5rq6Xd-1bQYg1YbGC&#O7 zp#)Pb!Td0NNSlS#AXi2DQ5X{4niHq;oTfZkdlvZQb>g_g?opLk#&SIMgsUNM8Q2?= zR)!M0J6-=yV5-0wSudFa{ap}OMKLYU1$ zZN8Ms3V(a$8nI;Gq1$J{*3z|qlQv`N8Wd!K8u#2IIq%DbDhX}6Ym`VQq*`%>#ndTa zN;>253vpvFZaTlwL17g734Xv(_T;PV<`mwS6da1Jfq&hO_Wo@fj0xO85|IGN2n#19 zGFit@*emZ3JIbcWj-ky)Z0sb^U!>Af!tH|SOMr7!{)AL<`mexi4z^M{{Z{lhGsc%F zFsZ?H3W-;So~X|N32I6uP!Rp}PG%QJar(}|W5OxrmgFThT_j)j}T_Eeg_9p#C>HcUGhJ(j#sEE!mqe7f)OH zXW;lRKC3*KMvV*Jq&W*qX`u~o)qFUUylCgG&7qsoTTD~?$4d=3Q}xv41L)1n>(vq$ zdvEtg+@c*jCI7Pjuv#_p-(U1YP?iM8O^@k+}O$m1BK=GtBn1I6}%`{R)kF>k{sf=4A!_d+2OOuM*B&N=h)-QozK{FU|i@QPHHcNQ!fI}<%N1V&VZF^5f z3F)H_y!QQWxJ(YtrQt~O8{>=!N2yzM?p&NhWfH7Q=Bw;j0$=|N47Ji`ZRL{1G~aCo zMSq$IwYY=q?dfP|S&`Hs4RX0MEYq_z@1JNX|_tlf^PE z61S{hG~)^+8~#+;-eahN_{|!{cw1?enCu}3P_OPZF~2LCK_8EKvj0=;z)v+xZA(ab*TI_3TQ{8i5zq+Gkjvi=J?o^=>Zd?fP(%wee{(08Ti5y(1wj zR+N~Q7JkO=+Z*za^UoOl4}BU&I(2c)%2ukkvDvNl$+(EKuCk8tON;^Gmb**M z3{H?@yGvnh46|JcTmrnp8O+X0FtL_3kc&&mphe&b004l#CY<3Uf`4fh)50SNL2a}9 z+YnX-xu!p$+s8SO^1$*t=7-#osb;{a{Ff`H9TIB{IEum}Xt_0!jU;mglePh|bi(xn zEO`SMiPeVYOYBmk!H^5;nA&}1&9B)+XXW!CE@56y53>&Ql8@HP#M|8;PJZw$7EsD*B6I#qBD7vvO(vuZR;NgC6;o zq^+4f@?^@_&GxV(4M_6sFc%)IUSP|^akMASr0bRKn=MDPfJ2H0#Io0-)@Y@xU6GBp zg-Wx=P&SQ;wQcdgrH?BKG$Mw$ZHEzTT+&5d_~seAhnT!F|NIKJBxSjVwuWi_gIB-I z;Qs_t_%~db^KoJ_^}n|=-fJxqaWaBSF{Nu&P70A&YOJ}=w2Hg!dfD+D365p$wh4zX zs#zSb8|K2PA&KPSZditk21tMWWqTeHxT#B=MW7L*))JGXMHFJJHk>4BrA2wW=dP`j zE=>`+Q%gKz_vh}GSZ%QEPWVPkG%(hCDgF3K3qEc{y`gVFF-fGbNowRX3am;j0!e0` z5fnf1dlVuBm4DHVf+Y++XXteYcw}4id+BZSMqRi_=p6Kc3o?QIGIvDU@Fzq~&EQ1O zXb2PfmzQ2(I;x2F(j&-;@sVK&F7DXY@SqhYn|9yhe_?=wZE1-5RttF<#j+W+^!8Pn z;CT)jq#sVhrth!5Ad=MK18iue!(V>$%VlvW$Q|-tC@`nKJn4`g_U}slBdHzeyfPj# zoK{E=R*0uS3cy+7Q?=zJML7dg&T>YPvsnurdg9}jD}S;WN`010w<=i^uX6VMPEJ~f zyB~tBJg$%L76VVc&)93r#=(n*9z@#*p%&%Pk?F*m9Z~WL_pdHL_ntM~efp|>s zOnXO-ByC`(%EqM-Ed;jEX^u>f=s-{J6`8q7?;DoLWeniE4-V8Tc10>qGo%vv4q0*~ zHTeIg`dm@bIBL%!l7rps!z1qCcj;Mwe`)mf0F2$wzUxuY*XOttq>yA-@6yTE zsuU)&Ugr4P$^Qa`{4!32oXQ#Y^m$a5oM2RqQEth5f1e8z5>aJjB(wQe^Z!`%swXuA zo}>uGkk&m^Sy`^y4FmHFE2HCL>n>D~9E!4+ygXl5lwX8T4yi?aqUyW zmM{%(qlAVk0SvH7IAx-78UjxrM+yJYBNWTHOu_v)J6;cg(9Gr11J@l0%?#@mo{yYX ztD#1bGK#L+95g1{5T}CJ*3g0hpIl_tG(qu7#`{U7I4eg5c+`_38UEX-tJbYzW(F?2 zD{bJqvTai{h%QZ{?&VC!`y1mVEOlxZuuC&P%L@~>v{PB(WT$byj1}N-A7f!u=4=lq zN!{GbkU2duEgKkAf;lW)j9k?!??P?FJ~`5fCEaAjK5*$3Y1#rSel9Aq>v+XetRHrP z2jFKmqJN-whp~qlTv`gKqmJ19RNbz7>e0~W3EKF)s8r-P(9{C8YRD%TA0Kc(>2o&- z$cPVk=YOLjkm%95P7HW0@-~;x+oXH0X7#wP#m1@`pl;0(+Ng9)thM;o+243K`+-F3 z7*g=_`khU=LN5gIN1<=a&fBVyX45_fK8QHJAuai_wmtcFrwNRBZ;OTQsND#7dcbS* z$-q6oeOYQH@6r!eUlV~pFRId~`l)!S+SnJv^6I=s(;4I_*}2I}vEd5;W&#swzud<9 z2+BK+on5NbAKD}L)kW)6x-%dmPq0*ccs+2;SOBevLpyoUPj1?~b6-#adT4X<*=>R~j`3;BEi{QdT;I)eEo&6LD+X zDB-Aj!6aKzZO+<+%5Gk01!U&f)I}D#Lf)qH&qKaBl8LsECC9#U6ow~c2wvwBV&yx( zlK(f46qo>cHOIZ@OUiwXA42V6%-s1)GGzMo9io1( z;gd70WqfD^B(czR>;n3kXH`Zs{lYrL^Pdp#lmuq%sG*UKO_%Ev-$A2fmwUiMTnu{A zdvu{h&9-rLu>|3_73)TTk8!naNjIMFl^ydpSAP){#zB{Urq;}lQEqeJo|sYCQh+Zq zq)!X=fCF#J!m2ZdM46z3>@FX~2==n;xZ@9rGl%)z21fW=sWR)*(T^XA(j}6xuO-1~ zW|I_%xt#7XJCOzGJxmNErdT>v$(;)SUC#{r0H*o}cM;B~WiSxy<`U<{_wu_R5t~^< zt#Fj~N37Hl57EY=3>X;M#07Pf3&YVF;OwdxY@vVDjd={LxGo=R5ZzN3pcS6+3*O++}h|lKgtNWWX`8(bMY@^y#6r2 z7lpBQet}ZFWz8`lVge!0ZG`X+rTu9&V{XT-`v+euu79=jFdv<_eWxIxptm#0GWx>f z3p|~CBZ+a#eKQp3)a^)6uK~8{IUDueP;#+?kxY&ic73?l0@*cyX?Lz5Hl;ccdn{%7 zVBsf!0fm0~(@s!g?0M%rq1>v7XSZ;-Bb4}EF&sHx$11>$Klt7>=aeg#O4a}%=^0i{ zwV*SNdNN^T8yEK?fU#alVo(?~2cj@Jw51gY=x@zk4Xxp_oLRxPmg%`jn_mapD0p2| z-u=ZQ4fAe4-?3;p$RfhF)Jm>0H4%yH0}!x%pf&?iUm?=>Kf-~NXA z%YQ~r-3N6kQc_*1D9K5l5{2vMR~!HJzMroS(ja7i>sve>&xvjkQm?CZ9ByQVuAu_5|(-&g{9A+iz&S+G5T^ICUtnZFXyvr-B$=NLCv<6S< z1^!!h4b3aDfwE0I=bH8-s!!lki2(s<)Vwqf1CYdnZ>!Ac*F3^za}yjEvWciIAxmr| z_A&_Ss(nVD5f5nRDC_=E8hk6g7+|*uf5C{^cV+)8*Q%3>_M-FJe<$k&xO{9*( zLUH=tV`Erc%3L@ba7#bV`t6TFu0CyVM{#CdT!Lm#kq_AZ5HU!397b=em)R4Z8*tcq z$b?wc4`WBZAhN~Q;#E3Y;SvsEC)tnhPGf31byU=2u#LN!S^aTh`~IPX-iYwSNO11~@_C5- z4)}<`?&>DjA3MACm`a1L=ytP&3}IQ5!>P^M8x<9Z4LX>aWG?6!BSx_a?Muts3G@~! zwip%Is8IJLgo8L644Bmq6J(eaG!%J1wqdlog4FyuTy{RTW z`_ewS{ocIUr0hAKg=lFKU84&@z+carkp~EV7xt$hkzhG2tFlfhL+}%f)@f*cuI=xB$Gdvs;|D+{i1vkUnLz9o5leQ6ocjw~O{=KV+=QiC|4XB=sqRaB4J z?9^Lb1_%V-Z8F^K;{&Wt6Z?>`&Vu=6v zfMsY$$*1x!l~-1q*$)@yQeiA7uOv+D7Uo|x7k`1a5Y@kJbXVC>pkc22%&h2a$16FU z@~$;TjU5A5&T_bI3l`i>9^o{hUv+n|So1(H_fsU*i;#e$Q(js9({}(X2K1Z7R8!=R%ZAOEft+Px9b51zP_6!bB9H>5=)gY5PG#!+ zJq*skcFsjJR$(96El}<9A&xgubu1P|Sel>{WBYf?bZ~xiuTf@JV;ac-`~)!dV0Un7 zZ7vH!pNd?@HkD!a!yzrYM7-RdJ30{T)HzQT6I@ILF%4~n-omcapcM5zB5%XTL&JkY2 z4qV{j{zYrZ@6^GVV?T^J!Ka(ZM`6Te8P|_7=iiwK237)zOR%6?=Q5#i8@>_e2=yNr z6r{|w&*|gtFL3r!)51<{T1L2@H?wCLHmvALp3)vLn37H;Kwz4c1yxj7w6Qfh(y|1z z%fTd8x!$_SYNxR=_?kVL#qw#fcADFhyK|Yp+&MbC+pUBx8)>(|>}j}7WJH?4xf9K@ zZm)z6XXCeW8FR%j2Zkk{CZ#g)3 z@DIMG=PjLY!AfOfky1DDE>#O2_TiOy`Ts)gq9=q{s~}Siv*+5H zS3i6L+ksV8Dl#sms+KbB5&}%`*q?K{1sl?;&P9Xa<|ykUCmf__(F>C}~L=G0zV&qO``(RC-F-86L~<nl(L3}e4XH^mJrIL7qjD9&(1xBBD4bzFwx}Yoj&Gpqdsg;E+9i4e7A4#@Dg36TK-sBPKCo6gl$oE z4{YHiW!HWi$PP z&k))Ozh4RZ^P|~q&qytTdBQoXNihC5qt2RI<{NuAUbK3o2k*|?%MYkMEnBrnZCs_} z_M`B&zUGO;OE)kn^T)YD?diLx&2CPAI^Cr#8dX8E6lfT3T|fsSl20lfDAGFC{UMID zFLw`GRDK<|_tO(I;a=|c`oy*S%>S*q$e)^3>u(F(QfAzU@4p?J+CR-`XZzRgxxD8g z%H`UrN-&AQ!f})5%OQ7#-9Fn5Vv+V3^9Gj_+JTj-)QUG}HQiRwJ1K3q)UjGMW@j4pJ!>HE?AL0-bM zf#dx1u-9&>(Pzo@ca5F_Lf>Dyf2xDve%n1AO7nx6D9O-h=+&6N`6;mglH5l*xui`V z9bg{PJ;P^(u)s#rCV1uRW}WUGn5}mPS^o}m1aU&xWByBHz3Q*@@{Dh_skftv!X!bpo@4`&qKwfcja8(?^Y zHLN^mli~@OO{1N!16H`pwj7mig?%)e()DLDl%NR8%^i<{V)uZ{4PJt6BDh{#EJbm4$PM0r(0I4p{BszZ9>r0f2Xft&*s&2!we>jjSw z&j&Rj>n|A%oKBNqJHKrunnWx27P-E2zP;jPls+2+;eDdW*k=GuVqi(8o~M*T`c-FD zqGp!vy0aQm5XlfWRJpzCVkbSIqd#yaBM(*WipZ=<;jNUj6kKc!>Axm?!iVbR$~3}I zHOvnZRmMSS6XX4b6ymQ7qMa}VTSJDB0j{^ImP0KB5ll&_e0>`Zuh+BU*;=8Gl4O4k zN5Hc7a8mSm=5;i*RQblU&<63uT=ws{tG z?vn2y-hS$e1Wy9vv%G$mVU92S{rf(JH5-b(_S5pXi;M_Ne%JP(F6nXi&tgOS2X7pl z&L$3~Lilo{!{C3a9z)-yFPk1zgZ}u^F&o{>Frv2(y?_;|5#FL;u?pU2KAg2Tzz;Kp zv2X8CDH$d;f$%V)`tsuBY^=5Cafn_W1_iqUwE%rM=?s0pHR~Pj#M$mUE$6g5W`74eCtgD^Apo|`1I>pR zrTd){xLF{hNcF*~xS0vccoQX!i)-mV0DI3sb~X#$dLp|LD;jV6GUE{9@TE|`#tWDj zW}Ks*RhWc5XhjH)CJlS>Y7ARcicdwE?eGch363A3e5xf?7=4Tl#}0PFK=;QNfPXZX31`M4<{N1vx z9O$zZ<>_)c78yS$*iPvEq9m{B)HSbsR2RwUZwe))Rx;p{*+Q!kcZ^M8xzY=SBnrC_ zuh`7Jca9)eoUx!4TkHMVgC2Bv*qPr{oX8|t5>)0JV1=o_PZmcrzno5zz+|v^lBHt| zicgc1PU@3T4kGJUKV-N5*l@SA!u;kAVM4!@=%WXi?o29&9;U%&OV(6R7 zHB%zXLLpA8;Owq#upvn`3%n00fzx43$mE}@vmtObA1n3o6AEk=YB<2w#My`0*OK=6 zL}3+^gJmf&sUG4gm(jNolaTL>n}UO+AS4XCOpWli`pL(Hh!89bjf$b_Rp=Z~465`- z^IN*Ab!b-=Q66yyzGZ1~bh#2~PQuriDy$Fa+2uu<4^Y6EtTF_j>S$u>X1pu-sypER z)*WEMAT-ta5H-7tFAiDFXRNXYQ=P5-a4U38H>(hvM#u|e zjp1NS4$MJFB3NBWe)fn4OIJ_fz3Ht7^$w94?uEuM!3Z`;@-KuK)Y+GG&Y=spR-c?~ z);$Q0cX4W(Ddbi|HabWVi>g^g?_U`kCjw5-XttV!;!1b-rrq%zX`ZDN72_swCc~1DP{$7U;1_U)9gO%#Cob>U+HIg- z73`Gkc?Qai4@<$@cH~`RhC9*vWxKnBfPe8VjQZQ0m$7)FVt=q_q$LCDuX`Phyz3JyT2Nynd}nptxV9rLe89Bq}?G zsjHApSkT%u^3MKUBgWAr-#T<9{`a2@0G%qB5&{}Up(V4Y((q~RSl9JyI3D_jno^f& zbuw53WaNl!e#fj(@}9a$#!HK+ceD3bt!Ml*fOD!IqO+?rHo32+p=S2|!tbq>6cNz8oh zmh5-TNKJ|75R7lfzkOyF%Fu6+yQg+x;ueNHzH6;Vq}Z~2Pqn1>s}uJo%>;C|{SxQt zWes-n|KRo`wrku!8cGOC2my3fbZnoTn{};zcJR{!#j1Z&a9B`sRm9DOXX`Q?t+OZr zXVg0or!zQ@A;vKo#NE@KmIu!sTFO_|!qaya8cnGIfetcj!o0~{pRV-`!~6`-Bkcw$ zRa9UHDA;GI%;4JWrz(7_sHdKOYI0>pp1>wDaFHr8o}G zQ?mv^mB&Q$J`F4f5}t19%s>(h3`dw?ic+t#4JP(*_UVdpNo(E!YJ?YjVzw8%r3OA( zzv#%JY5^-dhD4L_Z-Qv3PpJQwGXmVBLwEn!54X)2(Nd?X=9tezI0F@WP+0%~0O>z{ zeQ)zp^F5)6J6gHumKJhLBOL zLr5#L7B5*UCBDn6$uEFCa~Jk{C>?wPT7)^{Mp{SnjB_Q#Ysx)7?Cgg;$@7@?nAoQb z0-@l$CYTpo=@dFD1UwM3eI>UqpzrDm&1!W3ZFOXQfnjiAM9Aqvke0f&#;T~aSx1Uw zGOB=;5vN{M>@K1QqXn%YpVl6CkFP;P3pC8SBTDCWa2Fnb=<#+Qf3F#9<-9t-9K;GAI8=8!E54WYY2WU3(mc&>AuNUZQ zV5QP`O*(6DFu|5l#;Evn zFYcTag`gp*mPv;gln_Y4ooG%1TJC_bxY*eJsvpyTV=>vIO{MO#T0Mm~uuZC+@v}`1 z{w0bpKVSWi(OU&`%KU5~?S2peoFUA#rE&pLYZahCnn0n z2u3RioS+D7J{~80vY?R{353Odtgd)8{H&;5V6^DQa_>eO83*8a4JxF8Dm8ozaD2Nk z1gPR}aJ+N<=9_NK;(n|jsw1~&T#(o}D|sNQfhg(u7STZP94kpUwRST~4LxC1f8F?KM|civ$N}H6P9GX!M?EvMx##zCNpd zXJYF6OOd`N=miAqy(uQ~52~5wMS}&Pls8aE4+#Z5-ld-HPzE?Ho{{VDFJ`yIv=^rz zhEAT|;R+Bj4$7NXt;9Oks*#IZ8qdSm7s3anUqp?|;HXJOvVY_ozlE=zkX+siQH(_i zHb%y=ar6)Vad8{y;^zvyXq2Cs%!2IGcjI^Zd$-%BdGJZ;<7uOi!a0tWoeRI$`Ao&q zBvj!>i<4MOBN{Qhzav9V`o75bnI{lfCDCRJS;Crj*zCColX3r7wd5^u2HK>ow(zYM zP(_B0e%?GOnj-_*eL8u_xT4?yo9DoH6m4wcB}0*$;qr%hT!Eo>?@Phnq5L>i7nT`c z=O(R#s{+T>{C?D7SR=Fnb`(HYT`?wvZuNgTn!LiNInlRTi zR*Vln7)@vdna8cFCgF`GKh}P1{H3*riCxsG64?YyzAAK~w(0awi-~SV7lE~|DcQl9 zWCd)i`^{ma-^WS}jCQH*5PE_KP0}t2-3*~Zd8FO+D5G>X^KP!q?0bTdu)7mSv2E7x zn?+aIn>*jTEv`ze3_%3HT(i+{-g>i&$=)GO_!D zg{|AJx`;TPnM5F`YV>ZdG1r_qS8@2NL<8xE2OW9lBrryLj7MbbECA6&U@+EuH~myT zEvzt3ovwmRK*hF!!(Fe22Q%RJ@n@kmh3wfYW+uCi@2yK}wT6gI)8yCEVVd)HObqiKMv9?aNduJsaWLG}*rSz`Iqa=62Kq zyuu!p4F6w|Yz9_p^XCRRWZ+_;lHN6TGioVgSs(ebV>p(_LxYm8F&2;B86kQPe$MXI}3tf@6c40Cq@qECS%fRh-q%N6z>FIXM}7jEF6h@WWqp7Cj0;o)Xj*twdmr*BPHpA| zttq1D);xDq-Ux2;%l_2WY*T7(X_6O+@ZyL&=xo5 zEEW2+SB=!X>q3!90&o9^NCFFi83t^}cDc_-Bm&^hq+%T8!>>M_qGTIeWqe3Y8$3GQ z?l2%1uds^`cC+sv>@?m!Zg}IXfAeh%;pUgB%D^UrYcJk)={g&#VK|Urx?&3Z?kd`I zQVjul5k3xIdyMOT8!KTMn{sY#YarK6h_b-$*zaGQ!KYW2`xE^giS=6ltzPh_KdUA3AElqrkX1Q9?;6nOz0 z8ChjP=Q9k^RcwX6chl9ZxQzB^`ApHEs+Cg0cRCsE_~7$U#SE!9$VVgYW@d`y)(J=5 z2HTRzfY z9>ta|{9`(~Ab@#C2FJzLp=Ojj4{H&uU{HF`!}`QyqP1xx%ZM816Ykg+8309s0bNj|t_%HANs!$EQ_HYNgVX5pGPA?W+&HTXkyg`V7De0@Cp&PMCBN z6Gw@a$?{WN10nqlk2hQOekTjufE=ZxG#s8yf!HgndzIzGb?mo*SsxvQcdotA_POX8 zgO)S)Q!n6@BG6*v-M(~%tZ#oKX69>+1Mt)4zwr~&yzjO%)7z(gFT166<%C{Gaz^+6ch&L`Hs}B(;F$t)81aFVC}T98 zc6FLQ$t^;DtBi-4>b18^SE%w2jm5CSQTA^5|oj5MvokSi@$OSDmC= z2@GP!L;?}20;@H_I{gv;QoaBCjxt)wZTjs0h^E@{l+HIELeH?ekTM|KJe5}?dcTwA zw>d{ouOnOckMqH5D(nS=sZ>FoQSHCOS{}q0n>Wg}{!?okeHjK9J;~A`&(}s(HCHZA zuQi$aD}31i$*=49GJ*bp%y^a6mWkbcenzcG3PsOAs(6I`aD$$1p#msjhRZkL8I~J< zswj&(o6&{+Q>9zCHV49y&K^UdpXz5b&pHOqV!qW~Vib`v=4%5ng zYx3gYWmg#uOW_js9%}qQK6aLZjonp)UMv zvtr6hmwRQ&&6m266743l(OH)CQwaT2H>fEuz#zT3f|PuB3&8G4o_k0_vWfOMO2mc9 z3Cwt=?Me4-bS8X9byQ#n$dWBfBn=<;yUZm>DZD@ohi#{%z>#&qYp$1RV8gVQ;l1?{ z$l&ISdiMh%|0CEY;ufkGn2~Dq>P?v|8(8LjkvKFDW(sgb6lBM{Uvj4Y$pE=-co zt}NhE9~uML0=p+`JMO!1kcDo|?rA=%RiZ6T>=0rI;;PydszO;CnwrbN4akTy7N^RPvhi_m?hR;xVEy>SEgt%i9F*>{W`aJRsuP+jNHR)7e6n% zCqL6j%YY=m}#YT`Y{4vksx;=kW;!%yCCTW+5By(5K^R-Hu=>UuG(z3tTJ zH3=rC<^rpEnrrlNy>MA|zGU%9eP*rvhadlNoH{v4@{6y|@lheAWNZ^0#p_ms(G~d| zI`9lZr7MLdew3Fe9)vgDta9cSCm5JWZA^DUh2)!8?wfV@f>xfosWBD72VY`&%M{cN zhDx>{4D9v&g#`m?WWf&+77=ga=y;UsgB`}jSA%YiXUxR_Codw&h1-9umbZ)drug&3 zvJY8mO0nKvaGT0ddhHB9hd$Ew&C~&4;QX#o07sU`9~d~kan#yNkL;})J%)~-w#`!d zsO5Le@AA}<6~9smNROu!h|?;4v9e4XoCno8QcNzM67TSbZWj_7FWRu_w3lg{m<;E{9g@Mrdkk48>mB-H+6+pEPq;%apbbsR{woj zr~1dQ@~&`5Q)uJUo4nV;a9c}K-tZpZf9fetGk{pcWchWcPT}aR$(!q zyobyo_Io*rf~6|0!RIFV%vFmDxKoAdWQ>z7E6nz!a1M}ff-FqvL9BbRbVA@3=wITS z9iOl8o`JYAQqa$PtaE2Dfg2uUBUxvUEl`)ee^+TIgs6%#Cm&)PKSgx|Z639VD-v>B zIKa9k)?chS-dl2b=QdL_m@@eUawxWD$uaqsZnC~VB`15akH*D+4}t-8-K=!K>n0i? z0o=E;aYjf8(J5H+oJxY(M|KvY7_N&_?U&^S-_YFz5Z3K z23&%P1~_;H)%vdX3~D`3ZIRZi5b7gZZWq*`udiR3>ixXr8E zxguvh*dLn>1b8-b!dXUZOZcpY47!cW5lI|OhciF_K{NUAJm?U2o`#|=Z2?%0SZPNx zSUWh=Wx8Bsdc5N4FE9ucHxkSoiU4$@EPtZPQU{8f%+*{kI-#3CbJam-r@*rk{e%Gc{KNj1=T-_zZMze z+uodc0h_DLTH)ym;CJgK+1)+>KVfF*(m6QlSA*#l7K)CLf|RyP(Xw%Y_tkcIElOx}|D%~$9jKCxOH_I7FN@aVg!$!YlEU5YVR9vJ!ALWQ@1 zLU#ybTcx+t@F#Ych$PJ*s^ubCLEV}TV$@csqcG8t%{elX;>N0BL7w0ua&Vx8$I+EN`*qRHcv!Zwq5wCy|K-9*543_a^3QtW*#jGr4zNaCrTppKl zUddRuO_vskC^S^zqL92?uG%EfNAdZ>*3$y%EqkZ!exef;$*-En5!ac45o9$+asP{z zk7g4jLu1@~Ca)fXb2E}S#(xI{Q*V3dOoIy-L#FT_-5INZGqe&ttC{2^rw;S-#nQFS z;XcA9RRaV$X=q6F>ctQ|s(Gwnuk4rz^+x!h^?}f#0pm!|(K6Nl1sN3P>ub=Fq4MzB zS4C;}HnmvI`&To+7-6JNcLu==ZV-!6RMYE<&0^XfoYA%NPq`n;YE8i`z~&R}n4Vi) zhn(@F%ghQEmZk4mLmHMM<9w7B-W5xG-vF9NeOYSe!7q2fILyK(C@)T`kKTEj z{aXp_tDd0LWUt4u>p-huGyb+bf^;5#b&U5sUXlF+5pH6JMU&0H#K^6x6FWVCCf${H z8E)as8)H2*JJ(S^xp(;x_s;C8Xp<0i5#pi-AX&yRD}}2DBDo0YI^Agt@?#)+hzMsL zlMdknowk@#gdU_4ebXrP3<<+Z9EOmr6wyDVccE!qVF9e-rQf-AO<}wcMuVo8-09kl zaL4#sYjBLi;m;K201lCB2GH)SPD*%tTfBPk%4Yc#53n`mC88-TM?~E%>spb%%1B(& zUp1j;!J+y>Qv-X>qkO=nZUsB7Kq<45oPHYdrs@PFu;G9(pO_b_5u)wEZ|dil@5 z4`;-Ds|FW~aP>ekFza(H5?s7*Ugp`;9M#21SxtpEUyo7&YAc6&DWFQkEob~k&N8Ma zl9QmH-p?yRjmLdWp%$;3$MlUh8UJ3zQe36u30cJJNk+UAy~84iLu+_6v%rz4gUvtp zaGSj1!?`h@{GFk(DqYruB>J5PpKPEtoK(T4!UqcGB_1Qogf{&xWz+8`rFZ=X(s@SA zdNcVOOSGl8a3*b!2}-wR@Xhy5Fr3jqAbRuRWcVbnL(d1FCJrT#XUh3AiM9BAWx$gb zj1t+JpIjSKSkBtu#!ad^0Uk#`Njd9gi%^7?fm)#M&n;B zXApO?amB}Z%A7G?S9#8xi%vtm+qSNh$FW)hZPhmU5NICgJFer~U4X03tj8*8p%4&8 z+o8flOObEva#Ap%RxMRM>>{OK#S%ynVrZwsf-k0;*cgIy{-2f651jNR&AGX>WQoFkynxju;2T8|v%dCt{rY#z z5sWt~TZAxQ{GTE1d#YLYi?fyDFW;l~;d2JxaDa0zWCj9|#bI}Vr@}X6iwN79scIk( zVopQeCoVhtP`w`}=D;%3%rwIMy#!n+ySOn8GGw4Y1T{q?B|ivD$H_T0@8QSF5VQoH zD;h+i6jmv5x^9l)oPc!nj^Ucg&B6r_zJo-3P&wr@oF=WIWU+e1M%4jtK037?9H)EV z=I&GrWOJ6Y0PKSod{#f^ay*5p&benQ1lTDfj8)Lf4#t{s{;p78UWm%$&XhQ=%8Bs1~xN-PYU91H+iNQtqjWx4=aKJ>+o z?yofJHT}_9`N$Ne9ve3gthkX%L0yh3>3b;ec~`JaThN^wF5sB7X;XVd%30m3{m~gN z4hS^a7Mr~M*3mnb*f0n{2t_qrIoZUYA#}s`Q}3m^JHz>sg~>qE;qk&=KOt7W`k5&@ zA~}INV>>n_XJwQyiyJzp;?yZB7Xd4YGzQ*282t4`5s+(LcM{|1%w$ikD>Ms@D{5;z z@>%3r3$@;uccg^4Ziriee1u#Kef8Ic;m_QTQ;2(opcv^q{#B>>-AoRtE9 z4R+e>la=VVFFW-*xvG9*IE7H54tEWrbZPtUag18X4rL!^0IWkde*GSEW-4d9AnCHN zd>%Fy6cgh?W2C3kDhhbMpt%u`${Fry5Pw}c7yfoDgt3ta5JbZGTw?0*!kfvf^dkd9 z7z!>cP&JTq-Rsf4RZzSDZ=DO$tJ;4V9FET9%4Q{z;`++$r%B`Z-yg$m%MMoDP|Zwc zIORfU6oF1OwPN1&vj8dCb(~#cT#2d4la^Y7mtli#N0HW223**CE~JTA%;a0R&D@N& z?#}`WR30?>6wR}YL5qAJ&0$oIHI_FUB6h=50YF!3#}J>WzT8R4nho>fI{{cN-he+3 z8>CrLx?Z<8P%9xjSh_8N)0GubFk?uG?3;2jnDuvVJhzQW6=Y5n^v9)oaa0W2E%eH-K+^k1U<=nniS=x$(UDYo4g#6_f)a^jumW_oKpllx zDzVF2frNJug~YIb@15GFH?+mvdutVFBI_)d!QQDVai#A{y(czW#)1j%T|p8$ zi7VEoim}8Z0HI|?*`oVB9T7&X=A=JV?hTr`d311ah=@m z{|TSyro^fWIc9}Vo;#c zl9i_9OGC7>%wE`is&6yqnunLD)b}gO+hOUEz)YnTPCfd0r272f5rmwqM6cRo)hUIO z%YoRTe_Nsn_HuDE3e4q4kwl^*+C^t8hzELeBL`N-Fsua0_C|q%Dt#2KE@>0r7~hGF zecY;r`pV7#ml;G%SBuQYZA?fe>zEx;a=AztBoxH&{cAzRi5|*KTVyu{Y0#7zMSL`v z%3R6S_W3qH%~wp4-E$+Z&-7<5#5NSGPaF&C2AZYi2cCf5z2aF_c?SZ2hRCp%JMkCo$`wR z&T)uIFx8fnoIRG>f7i44R{Vmi8ztt7?8FK*TThli=Qa;&(__jaT`rz0^ob_h8|p3p z>$D`esyp5uw*tH#5Vi0A$B1IGbuK>@Q#w#t&}Qvn7voFO${hpmpCA;uv;s)Bj}qF< zMp_j7qj*t;njr}p2_|ppny9DER()%nm4(MeG}V0}ewO@?j*pR83keB}a>&CDi*%{0 zOis;8ab`=GQ^IJ6Czq(8gNVE!xe9I@`d$!FVS2WaFvy{~gUxaL5wYh)VzrvNz5B^% z5U~Cm8xdvSBYvw27Sm-LMty2A!Y3`j{9!n^Q@;y|wLU#CPTMd7)G>jrPkq&RLp1OD z^u`po%@ZT*H+H917eU=i6w}!RlcKCE>xKS^1~J3b7Tp!Dzb+Q6SBkiJ%w9H4PX8*V zVp@b-7x_+V!hd^8*jQBis;LY`J++GcY&`|Bl}Ve8e@McJGU=L4U13ZDb^BX*f`Hae zSG*n$MG}ty&(@(K*fQu6q>;$1Z1dPR+=1s^`@*5W$POCp(Ohs>o{w4Hi*W=w0M2lG zO8%@Lz8hJM9XIZX+2o%&6Wi~ghL{fNmA|<_Out!Wk!ZP1-CI^)TD&Lng;{0+rM(@;@dz^Yxh^~L)mAe%LZF6khkSmmjDt<<3zsHDdCE6 zMH$MvN%S<=0Dxiza6JgNlW}kgD{%9c_K_r*$Esm~wHt;-gDtgxl>wIDQ^7njQw-y6 zXS63+EM}HGx06ik0fRmUxoR2b_#a1`CR=tZpAtV!21`JSk)s=riP(6Dt0``*y<9L> zvwcz#sd=fyDNi(`QgQK^6~|52$k2v1`9t1f0rQRc9}_CF?#ma(jfnV%PC_ zUcVHv9IPu1<<2&&6sAU>0miGZC&?=CkQ+I0dS(&KL|EvhxXJmCZuq!c!D%n*)@fU=UVt3xEwGX|5FVjY)_4x10+B-xL4=-DEK7*d2hq-t_8V9mJs z&X52SEqjXVqVma)SvQxjxW=14Tt`Dn!6#Drzp-b*gt*}fa6_J?^BN-pj#Jsug4}54 zlqaflg}BPE-pHZK=6v4qHE6d_45`eO&h;kN9E~QkRu-!@xmiWL=WqT1D!j|7dc|A` z4_Qa&A-xC-95yMcTgGMo8;Uhzp7kxsGWD>&h~MqGZ=!}nXE1MZ@RlEt(MQZ`Y~}<> z5Gs=Q@r=BM3@Z(3)s&`a?&eDA8ZNqP1n^asMTy00JM#=~bO@?fMjp0=K&nGyg)jw6 zwL{JYWHLPBp;XhL#42drZzFLz91l1nt_Z8$Ut+3~1ce<%`IA(D z^NLg8)&-W(;A(rNPvivW<%QKu+5gYyht1lgtb^sDs}F|U%G)GBPZE?o_ZAAp0^<~t z=%-#ot0(uZQODqV+nlP;km(-1!zi5)nzp!@fol>8HS0Q#1#bkMS;Fb_%wH3~y zh>yYF8ns@qE3|CtnkB#I`K~PzYoIjn<9~fkaEw!yZ{-LAywiYmv27RAVcsr)t^ih& zGG{U=1>1xdP=PlGTTV2MZ$Jd6ZP>RVGYoULZ7I0Ygdh|~L4glD+h1%9CETn1$(bSO zaoT`A>e0-Oc$(R$n|;*8mNHan8x~ADm}h-+VpB0M-YgQQoqW3l6!QTeqD1AVRi3_i zL1dV)XpEhw<86u58F_(|_5uY5^54YwEr~>KU0w)I65a)rrR!yHoR}O{2C%T|BE;6Y^IT-dYx?QuPM|qlep1N%Xb8W{2-0GC#vB#5_7FFJqFbd zT|Fs&cfHe7L;0u@V+#Gc<}L3`>E=l?iqIa1A4l6)Jui?uM9fzdtDUmasS^yBBy2Dx zL6b#aI0YQ|&AnFKSpF+(TOS;%j8q&pmPO~B$ueA%K$#CBzvgIQC5XT>E?yq!krNRl zGh8whpu1Bx9CX6&S&ep_|I#Ia%dj=?aT+T%Mw)mEy7ngZ8|0SA`^*BPz;8m1n%+v0^wf3F47uSKq4oGC1jG`p-a_sU9S ze$rWJtCbn>k7r&fw|Zm{uk9DbJ>bdBH&NI}F+~BV3bCSFebyRb+!Z`r+2{rU&s1F0 z@z{F3fidW8ZQ^$#zsi`el}IIK|23dqYYm{}#r>JAhVMT0$b zkdPYhgMlDogCuK^#tkEZxvC_1Ufq5B>guZ2QOGg~fAm?SKCX48iXKCa(K|7IWR&fu zJSS1>Ai&hux!Xvle31BDCh3|M;{CX0ZR!63Lm{)lJPne7isrFW)}3SKYc)bFFPLL^ zF9|*K1ldh{S(t6PbClJsi3cj1A!Cr2iX2ZzP?hf1aEGayTn!TPIj~|CE>)ncK?S3Y zwVYOnNb~MIhh*rlVbn+A;b8`2OpNPuk_M2)=sD^OeKg ztSv%t$`@beWKVK@)sGcUR~_yZ>{hL2qbdaWWm*xxFZci^%n=Q%OhxAdGh3Ka zYh8|`*6Bk2FpeOfV@IZ9HZ5T|ov?n7L7bnYh%(Hved=KAJatyv=|VoA_bU9h%e-9X zYH^^TUey?SVcb{0l$PR(3!6EhgFRrU9bnL>;!rr_JQ6RtHsY*9OIrHjPZ;g0*BrDMABG{S4g+38_MD5FXYE **Note** - > - > If you have installed the Docker Desktop for Linux tech preview or beta version, you need to remove all files that were generated by those packages (eg. `~/.config/systemd/user/docker-desktop.service`, `~/.local/share/systemd/user/docker-desktop.service`). - - For a Gnome Desktop environment, you must also install AppIndicator and KStatusNotifierItem [Gnome extensions](https://extensions.gnome.org/extension/615/appindicator-support/). - For non-Gnome Desktop environments, `gnome-terminal` must be installed: @@ -51,7 +33,7 @@ To install Docker Desktop successfully, you must: Recommended approach to install Docker Desktop on Debian: 1. Set up Docker's `apt` repository. - See [Install using the `apt` repository, step 1](../../engine/install/debian.md#install-using-the-repository). + See step one of [Install using the `apt` repository](../../engine/install/debian.md#install-using-the-repository). 2. Download latest [DEB package](https://desktop.docker.com/linux/main/amd64/docker-desktop-4.26.1-amd64.deb?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64). @@ -95,6 +77,6 @@ $ sudo apt-get install ./docker-desktop--.deb ## Next steps -- Take a look at the [Get started](../../get-started/index.md) training modules to learn how to build an image and run it as a containerized application. +- Take a look at the [Get started](../../guides/get-started/_index.md) training modules to learn how to build an image and run it as a containerized application. - [Explore Docker Desktop](../use-desktop/index.md) and all its features. - Review the topics in [Develop with Docker](../../develop/index.md) to learn how to build new applications using Docker. diff --git a/content/desktop/install/fedora.md b/content/desktop/install/fedora.md index 3319ee9b36..95a528747c 100644 --- a/content/desktop/install/fedora.md +++ b/content/desktop/install/fedora.md @@ -66,6 +66,6 @@ $ sudo dnf install ./docker-desktop--.rpm ## Next steps -- Take a look at the [Get started](../../get-started/index.md) training modules to learn how to build an image and run it as a containerized application. +- Take a look at the [Get started](../../guides/get-started/_index.md) training modules to learn how to build an image and run it as a containerized application. - [Explore Docker Desktop](../use-desktop/index.md) and all its features. - Review the topics in [Develop with Docker](../../develop/index.md) to learn how to build new applications using Docker. \ No newline at end of file diff --git a/content/desktop/install/linux-install.md b/content/desktop/install/linux-install.md index 2e0084f9c6..9299281af0 100644 --- a/content/desktop/install/linux-install.md +++ b/content/desktop/install/linux-install.md @@ -13,7 +13,7 @@ aliases: This page contains information about general system requirements, supported platforms, and instructions on how to install Docker Desktop for Linux. ->Important +> **Important** > >Docker Desktop on Linux runs a Virtual Machine (VM) which creates and uses a custom docker context, `desktop-linux`, on startup. > @@ -41,7 +41,7 @@ An experimental package is available for [Arch](archlinux.md)-based distribution Docker supports Docker Desktop on the current LTS release of the aforementioned distributions and the most recent version. As new versions are made available, Docker stops supporting the oldest version and supports the newest version. -## System requirements +## General system requirements To install Docker Desktop successfully, your Linux host must meet the following general requirements: @@ -59,7 +59,7 @@ Docker Desktop for Linux runs a Virtual Machine (VM). For more information on wh > **Note** > -> Docker does not provide support for running Docker Desktop in nested virtualization scenarios. We recommend that you run Docker Desktop for Linux natively on supported distributions. +> Docker does not provide support for running Docker Desktop for Linux in nested virtualization scenarios. We recommend that you run Docker Desktop for Linux natively on supported distributions. ### KVM virtualization support @@ -122,7 +122,9 @@ Sign out and sign back in so that your group membership is re-evaluated. > employees OR more than $10 million USD in annual revenue) requires a paid > subscription. -Make sure you meet the system requirements outlined earlier and follow the distro-specific prerequisites. +> **Important** +> +> Make sure you meet the system requirements outlined earlier and follow the distro-specific prerequisites. { .important } 1. Download the correct package for your Linux distribution and install it with the corresponding package manager. @@ -146,7 +148,7 @@ Make sure you meet the system requirements outlined earlier and follow the distr ## Where to go next -- [Get started with Docker](../../get-started/index.md) provides a general Docker tutorial. +- [Get started with Docker](../../guides/get-started/_index.md). - [Explore Docker Desktop](../use-desktop/index.md) and all its features. - [Troubleshooting](../troubleshoot/overview.md) describes common problems, workarounds, how to run and submit diagnostics, and submit issues. - [FAQs](../faqs/general.md) provide answers to frequently asked questions. diff --git a/content/desktop/install/mac-install.md b/content/desktop/install/mac-install.md index 3c80bb4b28..7868b8a9a8 100644 --- a/content/desktop/install/mac-install.md +++ b/content/desktop/install/mac-install.md @@ -67,13 +67,13 @@ Beginning with Docker Desktop 4.3.0, we have removed the hard requirement to ins {{< tabs >}} {{< tab name="Install interactively" >}} -1. Double-click `Docker.dmg` to open the installer, then drag the Docker icon to - the **Applications** folder. +1. Download the installer using the download buttons at the top of the page, or from the [release notes](../release-notes.md). +2. Double-click `Docker.dmg` to open the installer, then drag the Docker icon to the **Applications** folder. -2. Double-click `Docker.app` in the **Applications** folder to start Docker. +3. Double-click `Docker.app` in the **Applications** folder to start Docker. -3. The Docker menu displays the Docker Subscription Service Agreement. +4. The Docker menu displays the Docker Subscription Service Agreement. Here’s a summary of the key points: - Docker Desktop is free for small businesses (fewer than 250 employees AND less than $10 million in annual revenue), personal use, education, and non-commercial open source projects. @@ -81,20 +81,20 @@ Beginning with Docker Desktop 4.3.0, we have removed the hard requirement to ins - Paid subscriptions are also required for government entities. - Docker Pro, Team, and Business subscriptions include commercial use of Docker Desktop. -4. Select **Accept** to continue. +5. Select **Accept** to continue. Note that Docker Desktop won't run if you do not agree to the terms. You can choose to accept the terms at a later date by opening Docker Desktop. For more information, see [Docker Desktop Subscription Service Agreement](https://www.docker.com/legal/docker-subscription-service-agreement). We recommend that you also read the [FAQs](https://www.docker.com/pricing/faq). -5. From the installation window, select either: +6. From the installation window, select either: - **Use recommended settings (Requires password)**. This let's Docker Desktop automatically set the necessary configuration settings. - **Use advanced settings**. You can then set the location of the Docker CLI tools either in the system or user directory, enable the default Docker socket, and enable privileged port mapping. See [Settings](../settings/mac.md#advanced), for more information and how to set the location of the Docker CLI tools. -6. Select **Finish**. If you have applied any of the above configurations that require a password in step 5, enter your password to confirm your choice. +7. Select **Finish**. If you have applied any of the above configurations that require a password in step 6, enter your password to confirm your choice. {{< /tab >}} {{< tab name="Install from the command line" >}} -After downloading `Docker.dmg`, run the following commands in a terminal to install Docker Desktop in the **Applications** folder: +After downloading `Docker.dmg` from either the download buttons at the top of the page or from the [release notes](../release-notes.md), run the following commands in a terminal to install Docker Desktop in the **Applications** folder: ```console $ sudo hdiutil attach Docker.dmg @@ -122,7 +122,7 @@ The `install` command accepts the following flags: ## Where to go next -- [Get started with Docker](../../get-started/index.md) provides a general Docker tutorial. +- [Get started with Docker](../../guides/get-started/_index.md). - [Explore Docker Desktop](../use-desktop/index.md) and all its features. - [Troubleshooting](../troubleshoot/overview.md) describes common problems, workarounds, how to run and submit diagnostics, and submit issues. diff --git a/content/desktop/install/ubuntu.md b/content/desktop/install/ubuntu.md index 22a1239fb4..6af4bcfd0d 100644 --- a/content/desktop/install/ubuntu.md +++ b/content/desktop/install/ubuntu.md @@ -28,30 +28,12 @@ To install Docker Desktop successfully, you must: ```console $ sudo apt install gnome-terminal ``` -- Uninstall the tech preview or beta version of Docker Desktop for Linux. Run: - - ```console - $ sudo apt remove docker-desktop - ``` - - For a complete cleanup, remove configuration and data files at `$HOME/.docker/desktop`, the symlink at `/usr/local/bin/com.docker.cli`, and purge the remaining systemd service files. - - ```console - $ rm -r $HOME/.docker/desktop - $ sudo rm /usr/local/bin/com.docker.cli - $ sudo apt purge docker-desktop - ``` - - > **Note** - > - > If you have installed the Docker Desktop for Linux tech preview or beta version, you need to remove all files that were generated by those packages (e.g., `~/.config/systemd/user/docker-desktop.service`, `~/.local/share/systemd/user/docker-desktop.service`). - ## Install Docker Desktop Recommended approach to install Docker Desktop on Ubuntu: 1. Set up Docker's package repository. - See [Install using the `apt` repository, step 1](../../engine/install/ubuntu.md#install-using-the-repository). + See step one of [Install using the `apt` repository](../../engine/install/ubuntu.md#install-using-the-repository). 2. Download latest [DEB package](https://desktop.docker.com/linux/main/amd64/docker-desktop-4.26.1-amd64.deb?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64). @@ -95,6 +77,6 @@ $ sudo apt-get install ./docker-desktop--.deb ## Next steps -- Take a look at the [Get started](../../get-started/index.md) training modules to learn how to build an image and run it as a containerized application. +- Take a look at the [Get started](../../guides/get-started/_index.md) training modules to learn how to build an image and run it as a containerized application. - [Explore Docker Desktop](../use-desktop/index.md) and all its features. - Review the topics in [Develop with Docker](../../develop/index.md) to learn how to build new applications using Docker. diff --git a/content/desktop/install/windows-install.md b/content/desktop/install/windows-install.md index 0d9e4b86ca..aeff60ec28 100644 --- a/content/desktop/install/windows-install.md +++ b/content/desktop/install/windows-install.md @@ -124,23 +124,28 @@ Looking for information on using Windows containers? {{< tabs >}} {{< tab name="Install interactively" >}} -1. Double-click **Docker Desktop Installer.exe** to run the installer. +1. Download the installer using the download button at the top of the page, or from the [release notes](../release-notes.md). -2. When prompted, ensure the **Use WSL 2 instead of Hyper-V** option on the Configuration page is selected or not depending on your choice of backend. +2. Double-click `Docker Desktop Installer.exe` to run the installer. + +3. When prompted, ensure the **Use WSL 2 instead of Hyper-V** option on the Configuration page is selected or not depending on your choice of backend. If your system only supports one of the two options, you will not be able to select which backend to use. -3. Follow the instructions on the installation wizard to authorize the installer and proceed with the install. +4. Follow the instructions on the installation wizard to authorize the installer and proceed with the install. -4. When the installation is successful, select **Close** to complete the installation process. +5. When the installation is successful, select **Close** to complete the installation process. -5. If your admin account is different to your user account, you must add the user to the **docker-users** group. Run **Computer Management** as an **administrator** and navigate to **Local Users and Groups** > **Groups** > **docker-users**. Right-click to add the user to the group. - Sign out and sign back in for the changes to take effect. +If your admin account is different to your user account, you must add the user to the **docker-users** group: +1. Run **Computer Management** as an **administrator**. +2. Navigate to **Local Users and Groups** > **Groups** > **docker-users**. +3. Right-click to add the user to the group. +4. Sign out and sign back in for the changes to take effect. {{< /tab >}} {{< tab name="Install from the command line" >}} -After downloading **Docker Desktop Installer.exe**, run the following command in a terminal to install Docker Desktop: +After downloading `Docker Desktop Installer.exe`, run the following command in a terminal to install Docker Desktop: ```console $ "Docker Desktop Installer.exe" install @@ -182,6 +187,12 @@ The `install` command accepts the following flags: - `--wsl-default-data-root=`: Specifies the default location for the WSL distribution disk. - `--always-run-service`: Lets users switch to Windows containers without needing admin rights. +> **Note** +> +> If you're using PowerShell, you need to use the `ArgumentList` parameter before any flags. +> For example: +> `Start-Process 'Docker Desktop Installer.exe' -Wait -ArgumentList 'install', '--accept-license` + If your admin account is different to your user account, you must add the user to the **docker-users** group: ```console @@ -211,7 +222,7 @@ Docker Desktop does not start automatically after installation. To start Docker ## Where to go next -- [Get started with Docker](/get-started/) is a tutorial that teaches you how to deploy a multi-service stack. +- [Get started with Docker](../../guides/get-started/_index.md). - [Explore Docker Desktop](../use-desktop/index.md) and all its features. - [Troubleshooting](../troubleshoot/overview.md) describes common problems, workarounds, and how to get support. diff --git a/content/desktop/settings/mac.md b/content/desktop/settings/mac.md index 142ccf479e..8d486c979a 100644 --- a/content/desktop/settings/mac.md +++ b/content/desktop/settings/mac.md @@ -291,6 +291,10 @@ Turns on the containerd image store. This brings new features like faster contai {{< include "desktop-experimental.md" >}} +## Notifications + +{{< include "desktop-notifications-settings.md" >}} + ## Advanced On the **Advanced** tab, you can reconfigure your initial installation settings: @@ -320,6 +324,4 @@ On the **Advanced** tab, you can reconfigure your initial installation settings: You are notified if changes are found and are able to restore the configuration directly from the notification. -## Notifications -{{< include "desktop-notifications-settings.md" >}} diff --git a/content/desktop/troubleshoot/known-issues.md b/content/desktop/troubleshoot/known-issues.md index 48fabf3ed4..a53dd24b01 100644 --- a/content/desktop/troubleshoot/known-issues.md +++ b/content/desktop/troubleshoot/known-issues.md @@ -62,7 +62,7 @@ title: Known issues {{< tab name="For Mac with Apple silicon" >}} - On Apple silicon in native `arm64` containers, older versions of `libssl` such as `debian:buster`, `ubuntu:20.04`, and `centos:8` will segfault when connected to some TLS servers, for example, `curl https://dl.yarnpkg.com`. The bug is fixed in newer versions of `libssl` in `debian:bullseye`, `ubuntu:21.04`, and `fedora:35`. - Some command line tools do not work when Rosetta 2 is not installed. - - The old version 1.x of `docker-compose`. Use Compose V2 instead. Either type `docker compose` or enable the **Use Docker Compose V2** option in the [General preferences tab](../settings/mac.md#general). + - The old version 1.x of `docker-compose`. Use Compose V2 instead - type `docker compose`. - The `docker-credential-ecr-login` credential helper. - Some images do not support the ARM64 architecture. You can add `--platform linux/amd64` to run (or build) an Intel image using emulation. diff --git a/content/desktop/uninstall.md b/content/desktop/uninstall.md index 734a800807..4b425130a5 100644 --- a/content/desktop/uninstall.md +++ b/content/desktop/uninstall.md @@ -4,6 +4,13 @@ keywords: Windows, unintall, Mac, Linux, Docker Desktop title: Uninstall Docker Desktop --- +> **Warning** +> +> Uninstalling Docker Desktop destroys Docker containers, images, volumes, and +> other Docker-related data local to the machine, and removes the files generated +> by the application. To learn how to preserve important data before uninstalling, refer to the [back up and restore data](backup-and-restore.md) section . +{ .warning } + {{< tabs >}} {{< tab name="Windows" >}} @@ -108,7 +115,7 @@ $ sudo rm /usr/local/bin/com.docker.cli $ sudo apt purge docker-desktop ``` -Remove the `credsStore` and `currentContext` properties from `$HOME/.docker/config.json`. Additionally, you must delete any edited configuration files manually. preserve important data before uninstalling. +Remove the `credsStore` and `currentContext` properties from `$HOME/.docker/config.json`. Additionally, you must delete any edited configuration files manually. {{< /tab >}} {{< tab name="Fedora" >}} @@ -152,9 +159,4 @@ Remove the `credsStore` and `currentContext` properties from `$HOME/.docker/conf {{< /tab >}} {{< /tabs >}} -> **Important** -> -> Uninstalling Docker Desktop destroys Docker containers, images, volumes, and -> other Docker-related data local to the machine, and removes the files generated -> by the application. To learn how to preserve important data before uninstalling, refer to the [back up and restore data](backup-and-restore.md) section . -{ .important } + diff --git a/content/desktop/use-desktop/_index.md b/content/desktop/use-desktop/_index.md index 48334772a5..e9fecd7bf4 100644 --- a/content/desktop/use-desktop/_index.md +++ b/content/desktop/use-desktop/_index.md @@ -9,7 +9,7 @@ aliases: When you open Docker Desktop, the Docker Dashboard displays. -![Docker Dashboard on Containers view](../images/dashboard.PNG) +![Docker Dashboard on Containers view](../images/dashboard.webp) The **Containers** view provides a runtime view of all your containers and applications. It allows you to interact with containers and applications, and manage the lifecycle of your applications directly from your machine. This view also provides an intuitive interface to perform common actions to inspect, interact with, and manage your Docker objects including containers and Docker Compose-based applications. For more information, see [Explore running containers and applications](container.md). diff --git a/content/desktop/use-desktop/builds.md b/content/desktop/use-desktop/builds.md index 4c66bc6f08..8b477b66b9 100644 --- a/content/desktop/use-desktop/builds.md +++ b/content/desktop/use-desktop/builds.md @@ -35,7 +35,9 @@ that you've removed from your system, or builders that have been stopped. To inspect a build, select the build that you want to view in the list. The inspection view contains a number of tabs: -### Info tab +{{< tabs >}} +{{< tab name="Info" >}} + The **Info** tab displays details about the build. @@ -93,24 +95,28 @@ The **Build results** section shows a summary of the generated build artifacts, including the image manifest media type and digest, and information about build attestations such as SBOM and provenance data. -### Source tab +{{< /tab >}} +{{< tab name="Sources" >}} The **Source** tab shows the [frontend](../../build/dockerfile/frontend.md) used to create the build. -### Error tab +{{< /tab >}} +{{< tab name="Error" >}} The **Error** tab appears if the build finished with an error. If the error was caused by an issue with the frontend, this tab displays the frontend source with the error message inline where the build failed. -### Logs tab +{{< /tab >}} +{{< tab name="Logs" >}} The **Logs** tab displays the build logs. If the build is currently running, the logs are updated in real-time. -### History tab +{{< /tab >}} +{{< tab name="History" >}} The **History** tab displays statistics data about completed builds. @@ -121,6 +127,9 @@ identifying trends and changes in your build operations over time. You can navigate to and inspect a related build by selecting it in the chart, or in the **Past builds** list below the history tab. +{{< /tab >}} +{{< /tabs >}} + ## Manage builders To inspect your builders, and change your default builder, select **Builder diff --git a/content/desktop/use-desktop/container.md b/content/desktop/use-desktop/container.md index f0246e1944..d1f29c57d0 100644 --- a/content/desktop/use-desktop/container.md +++ b/content/desktop/use-desktop/container.md @@ -47,7 +47,7 @@ Select **Inspect** to view low-level information about the container. It display ### Integrated terminal -From the **Terminal** tab, lets you use the integrated terminal, on a running container, directly within Docker Desktop. You are able to quickly run commands within your container so you can understand its current state or debug when something goes wrong. +From the **Exec** tab, lets you use the integrated terminal, on a running container, directly within Docker Desktop. You are able to quickly run commands within your container so you can understand its current state or debug when something goes wrong. Using the integrated terminal is the same as running `docker exec -it /bin/sh`, or `docker exec -it cmd.exe` if you are using Windows containers, in your external terminal. It also: @@ -57,7 +57,7 @@ Using the integrated terminal is the same as running `docker exec -it > To remove an image used by a running or a stopped container, you must first remove the associated container. -You can remove individual images or use the **Clean up** option to delete unused and dangling images. - An unused image is an image which is not used by any running or stopped containers. An image becomes dangling when you build a new version of the image with the same tag. -To remove individual images, select the image from the list, select the **More options** button and select **Remove** +To remove individual images, select the bin icon. -To remove an unused or a dangling image: - -1. Select the **Clean up** option from the **Images on disk** status bar. -2. Use the **Unused** or **Dangling** check boxes to select the type of images you would like to remove. - - The **Clean up** images status bar displays the total space you can reclaim by removing the selected images. -3. Select **Remove** to confirm. ## Interact with remote repositories @@ -144,3 +135,7 @@ To connect a new Artifactory registry to Docker Desktop: When signed in, a new **Artifactory** tab appears in the **Images** view. By default, the image list shows images sorted by push date: the newest images appear higher in the list. + +## Additional resources +- [Run Docker Hub images](../../guides/walkthroughs/run-hub-images.md) +- [Publish your image](../../guides/walkthroughs/publish-your-image.md) \ No newline at end of file diff --git a/content/desktop/use-desktop/pause.md b/content/desktop/use-desktop/pause.md index c00796f62d..367ac01ae9 100644 --- a/content/desktop/use-desktop/pause.md +++ b/content/desktop/use-desktop/pause.md @@ -13,5 +13,5 @@ When you manually pause Docker Desktop, a paused status displays on the Docker m >**Tip** > > The Resource Saver feature, available in Docker Desktop version 4.24 and later, is enabled by default and provides better -> CPU and memory savings and the manual Pause feature. See [here](resource-saver.md) for more info. +> CPU and memory savings than the manual Pause feature. See [here](resource-saver.md) for more info. { .tip } \ No newline at end of file diff --git a/content/desktop/use-desktop/resource-saver.md b/content/desktop/use-desktop/resource-saver.md index b5c06799ba..c18a71aa35 100644 --- a/content/desktop/use-desktop/resource-saver.md +++ b/content/desktop/use-desktop/resource-saver.md @@ -30,17 +30,15 @@ changing `autoPauseTimeoutSeconds` in the Docker Desktop `settings.json` file: There's no need to restart Docker Desktop after reconfiguring. -When Docker Desktop enters Resource Saver mode, a leaf icon displays on the +When Docker Desktop enters Resource Saver mode: +- A leaf icon displays on the Docker Desktop status bar as well as on the Docker icon in the system tray. The following image shows the Linux VM CPU and memory utilization reduced to zero when Resource Saver mode is on. -![Resource Saver Status Bar](../images/resource-saver-status-bar.png) + ![Resource Saver Status Bar](../images/resource-saver-status-bar.png) -When Docker Desktop enters Resource Saver mode, Docker commands that don't run -containers, for example listing container images or volumes, don't necessarily -trigger an exit from Resource Saver mode as Docker Desktop can serve such -commands without unnecessarily waking up the Linux VM. +- Docker commands that don't run containers, for example listing container images or volumes, don't necessarily trigger an exit from Resource Saver mode as Docker Desktop can serve such commands without unnecessarily waking up the Linux VM. > **Note** > diff --git a/content/desktop/use-desktop/volumes.md b/content/desktop/use-desktop/volumes.md index 8fb00b8f04..ec7125f4f5 100644 --- a/content/desktop/use-desktop/volumes.md +++ b/content/desktop/use-desktop/volumes.md @@ -35,4 +35,7 @@ To delete a file or a folder from the volume, select **Remove** from the **More Removing a volume deletes the volume and all its data. -To remove a volume, hover over the volume and then select the **Delete** icon. Alternatively, select the volume from the list and then select the **Delete** button. \ No newline at end of file +To remove a volume, hover over the volume and then select the **Delete** icon. Alternatively, select the volume from the list and then select the **Delete** button. + +## Additional resources +- [Persist container data](../../guides/walkthroughs/persist-data.md) \ No newline at end of file diff --git a/content/includes/desktop-linux-launch.md b/content/includes/desktop-linux-launch.md index 2049689e33..6b4472f604 100644 --- a/content/includes/desktop-linux-launch.md +++ b/content/includes/desktop-linux-launch.md @@ -38,8 +38,8 @@ Client: Docker Engine - Community <...> ``` -To enable Docker Desktop to start on login, from the Docker menu, select -**Settings** > **General** > **Start Docker Desktop when you log in**. +To enable Docker Desktop to start on sign in, from the Docker menu, select +**Settings** > **General** > **Start Docker Desktop when you sign in to your computer**. Alternatively, open a terminal and run: diff --git a/data/toc.yaml b/data/toc.yaml index cb62c21c6b..730100f575 100644 --- a/data/toc.yaml +++ b/data/toc.yaml @@ -1258,7 +1258,7 @@ Manuals: - path: /desktop/extensions/settings-feedback/ title: Change settings and give feedback - path: /desktop/extensions/private-marketplace/ - title: Configure a private marketplace (Beta) + title: Configure a private marketplace (Experimental) - sectiontitle: Extensions SDK section: - path: /desktop/extensions-sdk/ diff --git a/layouts/shortcodes/desktop-install.html b/layouts/shortcodes/desktop-install.html index f1ffc74354..7d13206e46 100644 --- a/layouts/shortcodes/desktop-install.html +++ b/layouts/shortcodes/desktop-install.html @@ -4,7 +4,7 @@ {{- $linux := .Get "linux" -}} {{- $version := .Get "version" -}} {{- $build_path := .Get "build_path" -}} -
+

Download Docker Desktop

{{- if or $all $win }}