From ec728939b167a32226d7556af38a51d3bc3a1b9e Mon Sep 17 00:00:00 2001 From: Mary Anthony Date: Thu, 12 Mar 2015 16:29:10 -0700 Subject: [PATCH] Breaking out the project into more granular pieces Signed-off-by: Mary Anthony --- docs/mkdocs.yml | 23 +- docs/sources/project.md | 24 +- docs/sources/project/create-pr.md | 125 +++++ docs/sources/project/find-an-issue.md | 213 ++++++++ docs/sources/project/images/locate_branch.png | Bin 0 -> 115008 bytes docs/sources/project/make-a-contribution.md | 502 +----------------- docs/sources/project/review-pr.md | 125 +++++ .../{set-up-prereqs.md => set-up-git.md} | 108 +--- docs/sources/project/software-required.md | 91 ++++ docs/sources/project/who-written-for.md | 2 +- docs/sources/project/work-issue.md | 203 +++++++ 11 files changed, 813 insertions(+), 603 deletions(-) create mode 100644 docs/sources/project/create-pr.md create mode 100644 docs/sources/project/find-an-issue.md create mode 100644 docs/sources/project/images/locate_branch.png create mode 100644 docs/sources/project/review-pr.md rename docs/sources/project/{set-up-prereqs.md => set-up-git.md} (69%) create mode 100644 docs/sources/project/software-required.md create mode 100644 docs/sources/project/work-issue.md diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index cb5175a1b2..7e514d542f 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -172,12 +172,17 @@ pages: # Project: - ['project/index.md', '**HIDDEN**'] -- ['project/who-written-for.md', 'Project', 'README first'] -- ['project/set-up-prereqs.md', 'Project', 'Set up prerequisites'] -- ['project/set-up-dev-env.md', 'Project', 'Work with a development container'] -- ['project/test-and-docs.md', 'Project', 'Run tests and test documentation'] -- ['project/make-a-contribution.md', 'Project', 'Make a project contribution'] -- ['project/advanced-contributing.md', 'Project', 'Advanced contributing'] -- ['project/get-help.md', 'Project', 'Where to get help'] -- ['project/coding-style.md', 'Project', 'Coding style guide'] -- ['project/doc-style.md', 'Project', 'Documentation style guide'] +- ['project/who-written-for.md', 'Contributor Guide', 'README first'] +- ['project/software-required.md', 'Contributor Guide', 'Get required software'] +- ['project/set-up-git.md', 'Contributor Guide', 'Configure Git for contributing'] +- ['project/set-up-dev-env.md', 'Contributor Guide', 'Work with a development container'] +- ['project/test-and-docs.md', 'Contributor Guide', 'Run tests and test documentation'] +- ['project/make-a-contribution.md', 'Contributor Guide', 'Understand contribution workflow'] +- ['project/find-an-issue.md', 'Contributor Guide', 'Find an issue'] +- ['project/work-issue.md', 'Contributor Guide', 'Work on an issue'] +- ['project/create-pr.md', 'Contributor Guide', 'Create a pull request'] +- ['project/review-pr.md', 'Contributor Guide', 'Participate in the PR review'] +- ['project/advanced-contributing.md', 'Contributor Guide', 'Advanced contributing'] +- ['project/get-help.md', 'Contributor Guide', 'Where to get help'] +- ['project/coding-style.md', 'Contributor Guide', 'Coding style guide'] +- ['project/doc-style.md', 'Contributor Guide', 'Documentation style guide'] diff --git a/docs/sources/project.md b/docs/sources/project.md index 20234fb5e6..fc1fe18ed3 100644 --- a/docs/sources/project.md +++ b/docs/sources/project.md @@ -2,12 +2,18 @@ ## Contents: -- [README first](who-written-for) -- [Set up prerequisites](set-up-prereqs/) -- [Work with a development container](set-up-dev-env/) -- [Run tests and test documentation](test-and-docs/) -- [Make a project contribution](make-a-contribution/) -- [Advanced contributing](advanced-contributing/) -- [Where to get help](get-help/) -- [Coding style guide](coding-style/) -- [Documentation style guide](doc-style/) \ No newline at end of file +-[README first](who-written-for.md) +-[Get the required software](software-required.md) +-[Configure Git for contributing](set-up-git.md) +-[Work with a development container](set-up-dev-env.md) +-[Run tests and test documentation](test-and-docs.md) +-[Understand contribution workflow](make-a-contribution.md) +-[Find an issue](find-an-issue.md) +-[Work on an issue](work-issue.md) +-[Create a pull request](create-pr.md) +-[Participate in the PR Review](review-pr.md) +-[Advanced contributing](advanced-contributing.md) +-[Where to get help](get-help.md) +-[Coding style guide](coding-style.md) +-[Documentation style guide](doc-style.md) + diff --git a/docs/sources/project/create-pr.md b/docs/sources/project/create-pr.md new file mode 100644 index 0000000000..be3b5fe409 --- /dev/null +++ b/docs/sources/project/create-pr.md @@ -0,0 +1,125 @@ +page_title: Create a pull request (PR) +page_description: Basic workflow for Docker contributions +page_keywords: contribute, pull request, review, workflow, white-belt, black-belt, squash, commit + +# Create a pull request (PR) + +A pull request (PR) sends your changes to the Docker maintainers for review. You +create a pull request on GitHub. A pull request "pulls" changes from your forked +repository into the `docker/docker` repository. + +You can see the +list of active pull requests to Docker on GitHub. + +## Check Your Work + +Before you create a pull request, check your work. + +1. In a terminal window, go to the root of your `docker-fork` repository. + + $ cd ~/repos/docker-fork + +2. Checkout your feature branch. + + $ git checkout 11038-fix-rhel-link + Already on '11038-fix-rhel-link' + +3. Run the full test suite on your branch. + + $ make test + + All the tests should pass. If they don't, find out why and correct the + situation. + +4. Optionally, if modified the documentation, build the documentation: + + $ make docs + +5. Commit and push any changes that result from your checks. + +## Rebase your branch + +Always rebase and squash your commits before making a pull request. + +1. Fetch any of the last minute changes from `docker/docker`. + + $ git fetch upstream master + From github.com:docker/docker + * branch master -> FETCH_HEAD + +3. Start an interactive rebase. + + $ git rebase -i upstream/master + +4. Rebase opens an editor with a list of commits. + + pick 1a79f55 Tweak some of the other text for grammar + pick 53e4983 Fix a link + pick 3ce07bb Add a new line about RHEL + + If you run into trouble, `git --rebase abort` removes any changes and gets + you back to where you started. + +4. Squash the `pick` keyword with `squash` on all but the first commit. + + pick 1a79f55 Tweak some of the other text for grammar + squash 53e4983 Fix a link + squash 3ce07bb Add a new line about RHEL + + After closing the file, `git` opens your editor again to edit the commit + message. + +5. Edit and save your commit message. + + Make sure you include your signature. + +8. Push any changes to your fork on GitHub. + + $ git push origin 11038-fix-rhel-link + +## Create a PR on GitHub + +You create and manage PRs on GitHub: + +1. Open your browser to your fork on GitHub. + + You should see the latest activity from your branch. + + ![Latest commits](/project/images/latest_commits.png) + + +2. Click "Compare & pull request." + + The system displays the pull request dialog. + + ![PR dialog](/project/images/to_from_pr.png) + + The pull request compares your changes to the `master` branch on the + `docker/docker` repository. + +3. Edit the dialog's description and add a reference to the issue you are fixing. + + GitHub helps you out by searching for the issue as you type. + + ![Fixes issue](/project/images/fixes_num.png) + +4. Scroll down and verify the PR contains the commits and changes you expect. + + For example, is the file count correct? Are the changes in the files what + you expect. + + ![Commits](/project/images/commits_expected.png) + +5. Press "Create pull request". + + The system creates the request and opens it for you in the `docker/docker` + repository. + + ![Pull request made](/project/images/pull_request_made.png) + + +## Where to go next + +Congratulations, you've created your first pull request to Docker. The next +step is for you learn how to [participate in your PR's +review](/project/review-pr/). \ No newline at end of file diff --git a/docs/sources/project/find-an-issue.md b/docs/sources/project/find-an-issue.md new file mode 100644 index 0000000000..9c85996ab3 --- /dev/null +++ b/docs/sources/project/find-an-issue.md @@ -0,0 +1,213 @@ +page_title: Make a project contribution +page_description: Basic workflow for Docker contributions +page_keywords: contribute, pull request, review, workflow, white-belt, black-belt, squash, commit + + + + + + + +# Find and claim an issue + +On this page, you choose what you want to work on. As a contributor you can work +on whatever you want. If you are new to contributing, you should start by +working with our known issues. + +## Understand the issue types + +An existing issue is something reported by a Docker user. As issues come in, +our maintainers triage them. Triage is its own topic. For now, it is important +for you to know that triage includes ranking issues according to difficulty. + +Triaged issues have either a white-belt +or black-belt label. +A white-belt issue is considered +an easier issue. Issues can have more than one label, for example, +bug, +improvement, +project/doc, and so forth. +These other labels are there for filtering purposes but you might also find +them helpful. + + +## Claim a white-belt issue + +In this section, you find and claim an open white-belt issue. + + +1. Go to the `docker/docker` repository. + +2. Click on the "Issues" link. + + A list of the open issues appears. + + ![Open issues](/project/images/issue_list.png) + +3. Look for the white-belt items on the list. + +4. Click on the "labels" dropdown and select white-belt. + + The system filters to show only open white-belt issues. + +5. Open an issue that interests you. + + The comments on the issues can tell you both the problem and the potential + solution. + +6. Make sure that no other user has chosen to work on the issue. + + We don't allow external contributors to assign issues to themselves, so you + need to read the comments to find if a user claimed an issue by saying: + + - "I'd love to give this a try~" + - "I'll work on this!" + - "I'll take this." + + The community is very good about claiming issues explicitly. + +7. When you find an open issue that both interests you and is unclaimed, claim it yourself by adding a comment. + + ![Easy issue](/project/images/easy_issue.png) + + This example uses issue 11038. Your issue # will be different depending on + what you claimed. + +8. Make a note of the issue number; you'll need it later. + +## Sync your fork and create a new branch + +If you have followed along in this guide, you forked the `docker/docker` +repository. Maybe that was an hour ago or a few days ago. In any case, before +you start working on your issue, sync your repository with the upstream +`docker/docker` master. Syncing ensures your repository has the latest +changes. + +To sync your repository: + +1. Open a terminal on your local host. + +2. Change directory to the `docker-fork` root. + + $ cd ~/repos/docker-fork + +3. Checkout the master branch. + + $ git checkout master + Switched to branch 'master' + Your branch is up-to-date with 'origin/master'. + + Recall that `origin/master` is a branch on your remote GitHub repository. + +4. Make sure you have the upstream remote `docker/docker` by listing them. + + $ git remote -v + origin https://github.com/moxiegirl/docker.git (fetch) + origin https://github.com/moxiegirl/docker.git (push) + upstream https://github.com/docker/docker.git (fetch) + upstream https://github.com/docker/docker.git ( + + If the `upstream` is missing, add it. + + $ git remote add upstream https://github.com/docker/docker.git + +5. Fetch all the changes from the `upstream/master` branch. + + $ git fetch upstream/master + remote: Counting objects: 141, done. + remote: Compressing objects: 100% (29/29), done. + remote: Total 141 (delta 52), reused 46 (delta 46), pack-reused 66 + Receiving objects: 100% (141/141), 112.43 KiB | 0 bytes/s, done. + Resolving deltas: 100% (79/79), done. + From github.com:docker/docker + 9ffdf1e..01d09e4 docs -> upstream/docs + 05ba127..ac2521b master -> upstream/master + + This command says get all the changes from the `master` branch belonging to + the `upstream` remote. + +7. Rebase your local master with the `upstream/master`. + + $ git rebase upstream/master + First, rewinding head to replay your work on top of it... + Fast-forwarded master to upstream/master. + + This command writes all the commits from the upstream branch into your local + branch. + +8. Check the status of your local branch. + + $ git status + On branch master + Your branch is ahead of 'origin/master' by 38 commits. + (use "git push" to publish your local commits) + nothing to commit, working directory clean + + Your local repository now has any changes from the `upstream` remote. You + need to push the changes to your own remote fork which is `origin/master`. + +9. Push the rebased master to `origin/master`. + + $ git push origin + Username for 'https://github.com': moxiegirl + Password for 'https://moxiegirl@github.com': + Counting objects: 223, done. + Compressing objects: 100% (38/38), done. + Writing objects: 100% (69/69), 8.76 KiB | 0 bytes/s, done. + Total 69 (delta 53), reused 47 (delta 31) + To https://github.com/moxiegirl/docker.git + 8e107a9..5035fa1 master -> master + +9. Create a new feature branch to work on your issue. + + Your branch name should have the format `XXXX-descriptive` where `XXXX` is + the issue number you are working on. For example: + + $ git checkout -b 11038-fix-rhel-link + Switched to a new branch '11038-fix-rhel-link' + + Your branch should be up-to-date with the upstream/master. Why? Because you + branched off a freshly synced master. Let's check this anyway in the next + step. + +9. Rebase your branch from upstream/master. + + $ git rebase upstream/master + Current branch 11038-fix-rhel-link is up to date. + + At this point, your local branch, your remote repository, and the Docker + repository all have identical code. You are ready to make changesfor your + issues. + + +## Where to go next + +At this point, you know what you want to work on and you have a branch to do +your work in. Go onto the next section to learn [how to work on your +changes](/project/work-issue/). diff --git a/docs/sources/project/images/locate_branch.png b/docs/sources/project/images/locate_branch.png new file mode 100644 index 0000000000000000000000000000000000000000..8fa02ec45421b550be74436a0bd95f6d158a3259 GIT binary patch literal 115008 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 z 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

YP&wkPsa7H zh5;D zs`Ih5qrH9Ni6eUU`m1@g{z8B((Gz7+IKR0&lT^KOdJ}rgYTKuj?;1^}CRWx9D)rJ2 z9WwuTFiV?*s_}0Rs-*C1Xy9tQZhd?{dwZo96cTEK1GmTQa3B?(&>d?vp%#1rkUkiB zDp$YbCR#CDVEF_~If-!3GFYQLnJs`R-xZh7^Yd9~J)LO6aX9U*D3>BsuqJxT>(yMH z<~fgl_I3(+%2$TVN=o*X2gw>(Sj&s%mm|4D3hlS~@Liiwt*orrU2F@pOlgLDPqgwy zP`SbX6)1*bI7DowK#(3R5eG-Jj)d_rNqhTVa_0frL#oc}Wy<|=-DINf>+92*!S(*M z%%1-2ZBe%SCnY7NKZ-9mKpj|M4?s~@X_;iW5mK_zGa69y0e^a&;&P;~Bc?*p13e)@UY{*M zA;0qiZCxs2PT|kC`9F0e7e{l;d8*;NsR{cn?n%O(_dA(u-zCJBHkCagAb{(%8H#{_ zK&9<8zU%K0u)}>&zOKpDP*9k)fqdNi{cvLAvy%6ISX^5@A;^WWPuqW$+gmrud*u1Y zn1;3$?__7^1aC-Y%Q456tc{K4#QpquW3#S6fl3Q%oXQ8HDlYb=tsR}#Y^g9BNyZ0? zuqz!VCpb@4toK>Iq3NT?1`zscc);R3V=1gU9k^8kuDbx<#pr*82XDK}_~Fd)dExTf z=TVn4np`2Hjjj2TiT_Q(ss5~s?QaC1Ol6(AX&@M>jXk5s85A6j{ski`_xCT7ZJj~f z5-0{@R<#0~U-#kY5$bOvkzb^zkiW)6_D3J%+p zs)MJ$=9Hdzx!lmreTBz~-gyuu=v!@xAzqmgTo_7MX!@MgnkaohO^YF7o+=_-dearh zP!$A|$)Ic&($twUzKHM%dHYJ1w>KCGcmK@jNBFX45py%vi}eC;a~Vy+XUM;&{k4oQ z_+y=@b9Up?UWyL&hc&zPmONeWNuImn`a#X@i56L{XPDR~JU%?FFxZ64Sl$(A2j}ec z&&Xqg?LU}o2$MdP^M=Pe$!?k*p{JX5qLkIS&9uP3QLtj>(G*QR%6}>Mh8(3%={8iW z0M%H4FGaSG9mCgy+ULs{I>|7S+O!qcw?as}{7Ay$)R`Xe=b#_gh&Ao(7=Qo%4dYZ$ zVEebeh}w`ZWC~w#T(xiKi8BR4_!0)w9d7@4->tcn0YG>|Pm5u|81HM6hROF2NB>@J ziy?is&OP@Sez;xg&lKIhaDel;^T2e4tNxa`mMPfsTlIEK2BU$X@1Lvt2_x6-25uf7 z`%gtho)38esTkt54~rq5lij5Ca~QBI zi<@oLG&mPFHlSs~-idj92)ysR=}Tuvjl1J&&jx1l8FCnL?|P@mwQs~p1pn<9O&Z7m zX^t*syxsP9mKDu=v0Ecvy$O+(_`Cl8N4eZwMn~OxUcOAJ`1n;SWLs{i2Q=~kn@tDQn~ zvF5VztD^&-mzVc2Xl`*a6a+GMb#v2Otk#3mrH|MZmiK>8EL!j^vFy{Am-ZNFn3#p9 zDU~Jf(4uB<`17Z3{hHi@f&p!K8ylPc{{G^-V6US0rPxts_uYmMit`k!{jS*gRc6=I z*vigeRNL{Sf)-dT|Nb9M{k-2Pb8hrv4@QolG3>7!Vl43vA(3zQb)TNG(9nqS8KI(S zgM4LtKRWCGrG|GA*qDRHFGR`ksXOyMEE#NULF=J|!k4Q3+%w zp$ml|EA;~UbcwTA_n+6m3k%BsY!J7$w!Xd-+@wb&sK5VHvG-BlmpZFR;laA6XJ=J` z5k9YA9}!JWyl*5VJvitK$d{uf6&2%AtE6Eo(96`ZPg@}zipB~d_0zhcsLmPdxnjf0 z6rOMAgjKkHXKAxVvSobQU7WwLLtbk!axj%OvyRt>8(Ov{EnjpgB=$A((XFK*EqR<) zteQ$(e2MeVeZOcZIxQ5VutClbIb3W_&=Ze4RBNU6C=g(FW~8SpZVdJH^%?bW^YA3y zKF<_LN~pS|?YFKi1%s@goX07j9dVrrsG-tFtFHo3E{q2D)}+VBXWCkyDva#%* zsTcETjTc&}rnaD=Hus(WY^-;&trm)OTQkH}nRvVwo@7yHTmMB&Dkmf*WkSHvH@TN8 zXA#@ge8f_UDB?*-14vwjK9#UkXTgt{tlfGx`etZ!(l<<1 z$4JuXAPu9|Qo!L1X(`_e`3ZL68;)PYex69w&x}ge!*PyQC$eOtw5>D3FnDIB^SNV| zNaxn?>2Ym`tjE+f-Rk}xPG!Miey{0uv*g{TmpnXA^I`Nm zMUCZnPDv-a0iHYDDREJF_5q)DrJFB?PM)40u1e4Pj8EFf!x0Qn8#TW0G}^eYpJ|2| z9bL|CF_yeTPiN|7ypqw&(;HBe6UkJC?4ahgCwGmByBxn5^WE4MUE0d8$je&`liesy zo%&r#JMjx`oRP1jX+BeR;oZGl^D#_RY51eR^IE&51>YI41aywl(oy!#@u{hcR@9ht zLy_142^6x_b@bVJ6Ash(LQrWO>JJ0;mH@HBL92!6xcTsos_h!E%e40AZ&J#sE)|7* z%)FeDDJ=fJ<;YJ3GxY zf}9!y^^HCjo#D7!ZwRks5A`M)bJF@h3KTGy&=0ZD*lv!qpgYsZnKf+RgH+!0L}2q$pxaKt zsc$I#p4&3we6K%yG#{2v?{ozQLVpEm1`B;*GuXw#fMq+_280~vNOgKSf6m9GNGMa9vnRL(|z1tksCb(xZPdz6DI_8 z@)VoKhMaAc$o7PQD4Pa-wC-83Mm7HS`BtB;Fq$`JHOoW1ZX$2a_iUK!LhkVeE*Z1J z74bIbl;yB=)sXC>5PgiKdh5zc46(Qeq=ureWyW?Hp52SrNskk~ZRW&h%E}6TOLs%Q z)!uQ9V7ZnVB4SNl%2TA^QOLD5nzg8~?RW00uKFh?viB^!S zbNvMbE)UjWbHSs&=OJzWkNEQqqR5 zi&WMff@0!;M)Ttr4iwCnz`{^*SIX}K151BC)i9qi%#~2)#4#$w^0F!idJH(8KUb4* zWJf&Z5x$6F{INwH!f_I!1j8AuO;vNv=eB$xYbVi%N4Cy@$_dvb<*CK{sDbiJFWDt# z(whR~x4ZFakm$YGoVvvH7q*XY7q+A_Cu>nqkIZZDR7flL(oun>Lj{jGmu|@U=L79D zmKS2uz_R4Jw~1i)^O5n((mP;7>*$ zlfFl~u_}a7AS8==q;xB@a}>vsa+B4yE<#pp+O}bz)Kli4%Y1-ryOLd5u~B_?mm8_|V zEZdWpP`uGc)wLKr?#ANFf3z-eP2igNz0)*&z7bC`x;^JI*Wu^povikVEw_6Y>}!0H zne1g9Z+`UBPAI8B*GlJt%&A3`2!F-Ly(qo>=`KQ(J>H*Ed!lfwl+cC~ZuBbgTtB1z z0U6a-luTS$Lp7TZJx=j#)Ax*z zS48Lwvy9()5u^5oVqa1OIot6Y8lnsd)IM2syRKppeqc%7hJXiUle$vGpeU@g-DUpD zXG8Z)mlOAQ>%KSa7loFeF<5jd$J4tQ`AP_qU4g9zBaSoM)J#9%$gg0AUSz_4e5?NY zBgA!QE}I*Dtb;M^PkcIFK;czUjaL(!eFgfT$y{<>({VLlySd^r!FOO(8Sa8^A0aUQ z9S^GhzsUOPxVV;O>);SvgA?2(3GNcyg1ZDlaCdjN5F7?~cXyot$>8n`Fu1#ZbMAfT ze(#<8|NiY=y}P=*s@AI2#)=OCoSO1@F?vK+utfe)eC?`(+~>O#oo`v8RiOETICt2f3$@PiH;sra9N+%2#V~aD0oW|F>_2 zauBCA&-mjGqAO$?>as-{bub^@;O7erX1PlAh^)luU?kMD#W32=hVY4J=hn6@R2yhd zUZ|N>&-vFi29cET9z0EfYgwOsdduh36uF~Cy^w@SF!t_P35~x5ZoXr5RSKeKl^h3; ziV@B5cBt-@6u^Gs#F79c=9{8&uEr7iAjax?MZR!@&_!txg^%8=d+h?K?DNXrBH8#F zHJr61i{%D^4_TR#HyV@kt@_I!BGr7*mbQgW05~DN=#rvgrQU6TFsw=Wdc%AjQ^nKl zfNF4;@YU2-Yrbo|v0Zb5;y0}-Dfxn~Ps!%hqWL1}evAz_zIR{<$(|WO83tR?g4x_+WY?wf=*!)ulGo{Ka&W?t zQm*vyU(~lPJh*)W1jif!mc@ZEnly;9z$YTc#;KV4X&r`Z@^~G~+tTB=Yv03-4~~aq zr#}QEAuahhKJ;8}3cXMkt`^wpS?HznA6g2@;C|x%5XO19LrDH9k~8agp<-(DQyhGDp~}r`>#DnK{9>`m>HLic%s<1mg=(CbQSpfklwy zB}k%)wVe)|Fy}?BFs2xI438_fwjMY7^X-BlNEInMsYs1{=(%nME(YG}H3V)4I1;!b zV=y4mArt|ep%}n(ODU#u_YM2<7G?g&n@3gSyi7RMjkvx$)xbP12(Rg?PH;6U4QFYC z*Zt)Ui$cM(rOoIPxWPy$K9>5*yx4sZ?}>#qg?vbI0k96cmhI?Y=~T+s*+sC7nFO|w z{gfXI-dptFbKqOW!1iz%em*PetN0}yC}Kv@dp>REB9eh6;)g?pi))b|iQfH{x{ONm z8emsF%OXBA&1;NT{Nlmg57NcnT6NAIuzVvIdczGLlMz5M&b`SpA~)54{Lbu4<(ZFD zb~i9sZn)jFk2mhtxw8%=_jaKEi~O?0BVEHajvQwQ9?q(P_q7L)>t)QmlBjLhBjl_N z?BgHzc^GVIrK`TZr@-m^17U1ZeBmTUo$n4zD@211mLeDREJKL| z_fIN4zsJB<^NZrVo~qqs;qrNIR$I+Yxcwuw#Ct+B)L&!9?3UBKQOT-8`*F&V{DzTM zm{Nw22M72|?h~COsoZn@PvM4PPZH=3#BMM|2qal$>SMS$mF0v08d-s)s! zW7 zw?auVR#Q&ophv=k*=@3r^IJvwx(K5v97JlE7jicDrI=H(28p3%`<|}l{FLqLe$%lA zji(=jLw6p3d}4|*(!PU~=7?y+f9RQLoLkcB~|i;JRh;$KM0kMt$m^ zbfQ9hLM1K2Vwa{cTrh{(os{EMyw@RjYX!$wlUoo?p$w6;Bu}w#?zHccz$^V35;MfVPbJ6W+BgiYr=z4;K zMa|5L)Wp!3vF(_=Fxe9nplEPlGRKM9bQWb*@RBctyXxtW z266jKg+PAZ&WxB~o($_V6D+M_;(KuIV;_lAy?8jl(ft^4DZ3N)q9~=g{(cFHIdsW5t+k&<~KIO%24}a}qzh~Vh zWx#8V5*#Gz4$Gg}d1;J?dNk}~VCX)VF%51j{ya$BZZZGOu;p` z+??_yxpLm{f>c!z}@}&oCA6Hq}sW9 z1_~Gcc6^^|#6Suzua6s=U@PJ3_Tm?vpuI=gF`1fzsGlFT-~OouEFj7EYoBY|>Zgd+ zau$=F8#4(AZ8JiHdE4x0kWu|6J6`R_;OPcaUf_i3BlmaDi6jj9OH!JL#$MHYGTV#& z=0Jh(HFM8l?ysbA8z<4pi0Maxq}=uXSj3)9BF$OZ#}Ch@%BO2@A+Bq3_XmEs#1`#2 zY7ToWd|4ow&qQdL`+7zdc~f+^34Jw~@&zJO;Sw}uScDu-X&KN(>bnwNejSXDEzXI9bD z2>;mE{%rM*{fx9G6sxu#>~jx8N+nGjSuC}EER1OFO~@x43I7%YEV@RCrkn-eb4h;| z8rtsr4VFUQcLYZ$yrOwxJy|gs--29#IP~!*Z>1wdfpYqnV>Tv}5-DBa>PtqK)zFWa zN2vg$mYCjKOl$RpK$G~uMlf^E_*|lP9lJMvb5*%952E(dq-G_b$Cqg8ShKP7DvyoG zSs5ydw>??wvK$cg6&j}7$rWwf6Oz>+Ay1%%G#1?tWAPHlw_!K^0==n-of*F(=Sn#7 zgX=BqRd;)pBFVUy?9m4p>em_8Taaier#J0|;#QAV9MpMt!2Ax*HzZ`T=R3S&aPpJ; zBikDg&I=3Cs!0LFNR;DWCEOojc7LIkSC4c+o z{_wqYegQo#FHIreKtZR9t{?0!)kPT=*&EdRYmQWIDiar~{8>>P^zwVe3Bc0Zqvxbz z^2y0#Mb5h~j--z_$pwX>#jY{YAx7R%^o-Nt5PQZn`?%zyu4d((q6nxkaNlAS0?z`m z#Hbb=CaWH6GUCF+Sn2t?2}s5tHs@$_>9j@OuH=GTWhq8@Td!}I2XwQkMVZy8i2V9Y z5TXgv$s8WEwhP@j$r%{2*>TUV{DF}rc2Fn-5UE4by$#K>pL0v>n%kcU*^_#hv2C!9 z9#E3jI$4gTQseK}Q%c;y)d)c>$$u97BFi4^c2VP8&JSO_R4{XMzmrc*a0(blftJMjME=XAawS_4D!GW?silQ2h7z zqo@A+$Mx50sjz#5A$F>{r*m}Bcl}DDuYuq=fs?(qFfZlR%#gRNckhpRC^iRu9zrlI z>0CUC_nBWJu4LrY#K|b%N?b*P)r_9uqnRoC_&;hHr2{|Eb#?}Fo+Pb@@NjSJt%TC- zod#uSD%F*-yYu>5zuyE%Y*i8#k!g{z`Oy`Y6i|7;<7;1v!)01~caEtjDOyW0MXzBz zzlpn$T{P4y5F=Q)E>ULjdC6mh(9>;=`$kQibyUXKh6IJQg>3FwiW$gKRB~CDNeWcR z!3jL_E&BHTzT5G=C$bV=Ra@5ZhBhNBtE7udBNN)Xbl2NmrlLH#$peR(%1Fk}S#gy( zc8%JU1c?BVm=3w+%`U#rGMPjBgyZ`?=NG2woI7(o1=Ut=$c1UvF;ermu#x_M_QvXN^p`xH@F znY|1*a=z`-J#gi;ZVXVS5R@(F3Sayg&%~&VNar;3x*&*SsP_Hd&w?XDG$6CF8QkRN*;GSJYpS{0CBoeF_6*;acq^|6G( zJo~Zv73ER=Bj!qa22?VE>@;v8e0skjb3508;??p#eYk{*bqdM$CGxDO*<-`>B2rX^ zT&w_V+aPjufTCc#geU@q3K-?G-Z`E?8f3y@SxFHDbjzVvQ2UbBrL0I@*W&O%CC1X^ zixM3F29<@yqoF_F*@5gvtTZj*5s3Sy}{F4vXeAAOFRqz?Z&Mbzf67>HM-qGV){46HDTNi>vf|cO=>CevefTNf8zOwY8v}Fee;hecGe16#l4Pfq&-Vf{rf`>Dd?WIbUqG_%Uo` z8c-?FIlcaDMPsHXSZ;Ys50jRNm-z6jwzhmP@Ud|j-t2=3!|!l=-}Q@WVLN;GeH_NV zkK64<_mjHqH{p2$n)&IR@-FswKfZ|XuVUD8&&;R_ z6obRu`IYq~&_QaMkgrT?GPNXT4v&@4j$s^*&gM%zjDgD4s#`cAqc#*rWX)q`Jsv-A zuNx9eefBbg`I#y2fpA1!F8adi>B%n@UN?zmNL>c#b)6gLWuSB5c1@YH4b^rR#w*oJ~P|Kmo+H z(^4Jx7*ny<#~a1tvan*u#vk!^v^7q;__t#kX&Sl=nXcQudwXaHAGBS>=4eRfiH*!g<0D55Q`rDXw*=`)o4=G;n!ZY-SE-SR*e$gGV zq+RM)RA6UBbAt_?HeWK8h4W6mI$o*Th|Ln9MA#iH?yN z+ogVyQ#u6WZn%em-wD~B9mrkV;lQ%A)&|&F{6-%u%`ALS{X-J+#+nH|a0P2Pb_ZQm zvTWE@0SasN`J9(J(?4AF`2-f){Eb=Lk;B^5uT?ER{0SDb^2)+B76Tx-XpJ3qTB$yf z1OyzO60W|%Ph|RURbEmQ!XUoWPn=MFvJY96sDajE&`(&48Gso7$;%4B<>1`)F&Q9A zts_0_|Ai7N`j-f;J1kY^-$wimu&<=Se|GjWHJm3Y(xd{cGia$E{8MaJG#>iM8Z~)j z=P;D1)-(K0ROz3bgWg^&tUvd?4k-=#x#_lj

jr=NOg)al`1SH9CM8li+6Ob5^t&hS$$TSg>IUZ4;CtBQTJchF9 z9JUx1{Lt5gQB~3M(E7&4M$vb2)2y~jucz*bnQI|5it^%m4+1{`-s674Jc=i`PawXQ z%1Sh!-#Lu4mhrQ-VRt5c_Q{H0dlX9IQ^&S+4;;7|^R&&gG5e%F3Kryj#u1#fG5w(?0aO9)@d^F}Zx7BO*DrhPXN93q-S$|^xh%PTSg zd6hU#Xxhw|SMFA451yE#StWGG&CDP54-7Yru|q58lNn&p&3?sYt%)bMlB0zyRBeLu zjXOpRaKr1cY|L3GUICwOFZgP{VN_~%C?{)bO0}bNm_lS=G>aa_fT15w-tnXtk!IaJ z#~>pN;9&q5_j$&e9cOp^zb+z*d>7Qa&7*mjzd*QpP@bqFjGdCbd-OPtUDh33;hhaRtV5>Mnikn|DIqp|fXQqCv+OJLgs zxj5NZXROY+-d}UpN>HvxmDG4?+A}dxn7^^Kk0L4e)4n zorj^Rp_-bh*60wFo~0VFQ2;x>WUb~Iy4rW4i~YlOX!wN6iVVur$)!L{TX@|Bb|er z{&+Ft>J?;e!bCeuYw3=t;RRt~_kGB_I$Z)pTv~(a+y2WtDB+2%__T(2-IawjOWK^Z z=c^4CJFMCpaQ2QA1y%*~P{}9owVrdgC_I7f=vWag~^X@Zg?GB0c7m2*ZWA4Gg zyqclrLh`td)C;u7+~`q4*m|aaV6^mf*yLfBJD*w+lc9379TkoYwPrKP{CK&HIeiiX z1YoC>-RgL&o*&E?MQP+n6KA*92+%ckMetd(Ob_OG2_Qu05TgwwR7@)pP4t-=)tJMd zj@q5Z@MaBtVwO>5o}X2?B(DB5Vs|`0tnBnpHqwMRvIUR7+I&WZpG12u{vP^>d8Z8x zrCmr_KD;N=_y$Gct%>C^Upe!cuNf;yqx7JQpv39-g0qg$Z6|?g5z(*}b<8l17e1xw zIAdkWQP*<4=L62mgBv1>^G13kS)H*1M>k(WJmc6jBPgUwUWuXKXDRCgUJ394cZb(N zH&EOv?8AD9GlE8QSQ?ueVDYo7%EV4$+9fuMGrZ}`cAN)g9lEA(R%GZSJELQK0taTH zSb*~Pq0LCbPbofru$Eyr9yF65$uXB8n&h&t7BJv7xC^?i3V&P=F6LNu6|P?u^M*P zY_-UD-}+kR6Yj#lq)`3IBlgyd7%R=qh+ToWH?da0RO|)jw}2wmOFae!!5c8}dJsTK zV0~SGaLV!cV-}}|K|0np6$!tR&32i#K5Dx0d67qNE^eCm!TD0zSVN9{w-HHuidn6j zddYP32>FW7Fy=0Ta1Uu0wq(o!Qc6AnA$88KPFL{M5)rVzZ(RkQ8h?{pNMHrAI8w)u;U-yDuhsoinKzmAG&U+lL+Q z&RI$$vyJxrSxTPOZO!;9EsFiQ6fa?LA~pk3amYP7B&!>y&<$ORj_B{B`|kk3A`)Kx zu;kPF?en>W&n@BSIm`8SrYb6pQwn3$Pkd~S%|ops5k=A^lEfBTZWW6{_a~|@!Wq#* z`v_^%^QwEO4T#3D$F|a#AA-+khzhsijYS`s9FAF%G_=x;cw!CE8-%VD8k$!NNs&wz zFN3j^4|hC?+=lxUwu$n;w)zl-b)zhNXd-+2X`K34M%Ylmi-o7-#k}kf>7<+{_0)FB%u75$Ncm0Cs%fs2&0qa z%ska0Uh+O$7Oiw*cLT5e^l+OG_k`Oq%kP@mGE@9{-MH;{u>bTsPHR{Y%dT$U$->>y zk&PY}h5O0xsb$kH6&pJNYEBU_{TRcu7e~WDE?=${dzPKo=>qew!0*7$!wE{OM}PJ185m zMPAjY)4&8%NgLoH45Ji7_503@jJJ{CzuS)zMN ziG#!s+O9E|B|7d+M_1RTi@nYa;zKD<4BJi1G>PsX5vgbeB^D9Ueqwh$gNfMoZ+FeFSdm))iV1sr+r!PF!Qoxl!$UI} zi`oQ9MqS?i^8i*E{x7$C^oS!H{L#+5%zDqPjDRhZW62icg1g2!p()8mN^U6wMEg{P z7etGa(+&mmoQe_9lO?~OhX=0$UE;+SB&UK(4}Ue*7BD|_KNH!)V5`%-U#UGo;;liG z^M6V87NPLk+qE3Z3JO=Ur)@s2tF=sp>gzh817YX`?(4oKpU>+GNcde!S+nEqIe`Qh zVk)*+dOT8&1+H}}&zs|Dn8O~XqEgFmYLu<#3D|)DTmi^|yP^RlP2nLS42miU?Q`z* zQ<)NvMd+--z1c$E#6nf8_ioOt1?y9C|Ftay0O4mCj{#!%;PO*P%Aa45?;-*soGAj6 zP5$fjGK2=Y6^FrO&%3j#mWtLi@3%U+3|;pd{%fd%PHS)3y-*M8BQ6PC>I%#LX)b4W zfHsI^T*>Jn8~UyFPbtLzwFe`@Ltlc%7R1>{3xf?|o0JLpzh8kOJUB3QfOQ$I%i+W5 zh)a^w47vD!z6DA+XMrf?%6w^{gxb2O|JE|%pKs}=d7t8JG?iRmlN(uk<2iwCof8>gIwGGfu|F2i&@26$qb-ou0Yt9!M*$>odi-xPlK zuYF#s{@~)^*ifaMCNCIZ=A8Z!a6Jh5{afKq9B?Vr!z{E39}15WcqrFW8!4k9MlwxWTyH(*9HJHRh-jPlEF#T{C|u3F!Db zlaW6|L6|tQon@y57+!IAa!is(<=SXygEKx;8gVO1n~MKBmBCz^Kk@Pmu60n=>bN`f zbn-jpw|NMZS^_@7ipalh%hr%L`2R}<6Pe-mQr%ANUU={4P=pNsP&&fuyKC8W@mxxH zA1aXb??y*>cBlju^~zmBQPw#H?n~^;R^TksD@9D+yQHhs26+yCFC4n-oVameLm2-q zjIWcF5fQYW;Ns4T180dK*4?MKXlO3hd?J2NyeaHP)k&Pzb1dm6M`4!oaZXQ@Z8zOB zxnEcd``t;XGs^!&aX`wWV!DaGYIba{u@BVYA|%leu69IlxR1;IXRF}!hdt<0xwN+& z(Eas{Gv+yvCVOxw-Af;@3dR&dy?S^;dJqY!0onCx>5y==ty4E&fpIAY3t^`5-@ZQn zf~1M;pAwS#y<>x+i1)m~tot8Dc{{O?5o zbqj|-@OOssO|SyeuNkPRupzx%IA@VNfKW>Rv-?TZlc(Ar4tQDYD&(yM*@V@V*E?5% zVQ)I@B*WZ#XO>^k{lcFdI^Ep6cFM1p@TYzyLR%cnTI4{6nwsC4C7VhwDY*1z?7Q#3 z>yd^Vbb6@hOp{Yk*rWDjBMDM@JY4O6x83J40QHRk#w$dax|#vm&VYjPdCiO4UH$e}h2i64PUE&i zIOIJS>FXTiKPb$^!L$rhaYLvG$eE@q5xbuvx)# zWd82r{npfblK3idUDb>Hyu9a0iffH>I-0#Z!aT=U6Xki#=*1-3EcyY!=bY3Rjw$kl z<^NRh{At#6R8XY6s*JRz3=)W8s5Ktf6LHtc*Y?vC^?djdf_1;}YCNKSD#8SQxN3qY zNhKZf7A#mkh>~MI-@TE$o&hNvoRjTlxve-<6Cf!W4gYTG9tffjr)pz0|3GPW57P;d z^~WRDQiq0!&E{Ja^m27>n(T^b6!lGOAyxh&fi0Gy5kvQz$tu5ZVE@Wd=d3d&VW0Ox zRdGh8KOA=pr+vyLi$S1WaOwMLp{G==i~Ll6fBGl6fbqB_it!_1mv^&!vP}Pfyfu(O zO0>)01!CPXxG(5HRM2+GX-Z(QIOfEp=^$G#eEy)_tqAj5uF{A;Bgg zYHBz>KEAz$I%=s{;?Rf)8Xeo9)dpKT7YbVRl@x}8y>?S*`W;RtwJf(kg}ev z3HQ6zw2KMeknCqff9kKG>a*bcJE{Z8l`PWOsRr-TxF(rDj79nFCMyP?9Bw133;Ec$ zqG>6%z71N$oH(LTus^_}iad*stS8wI2h$&icy>gHqLp%QW=>W30~Ge9k3u|C)4m8| zsRjF!vTCuMykEZT+yU0^l=*Rxy-q5n(GMd~r&qr|z{xaIx`YOd+o4S+Ln#-UzJ53&hXRBN)y3eB$Knmfuv_gQBy1K*wYQU9t<{TgjhO>+MBEk2BU%Svo@ zLkfAp@ax?NtLu9!+EI0v@GAi)nOwaw$5fDpkX5$z`7ApYn}l~|Qz^S{<1b5mT3Xtu z-tNQdjW#jU(> za@B4RRaI37Xs_aX78W$?`D%^P{q>$6)pwX!X90l)6$=fh()9t<9TuWAfrHMwo|XDn z0+od!2`C8+3IajNmg9M*@jHZ5+_*iy2k1XofUNGTv86$$XR|4^3$9AxJM6Su&yZa( z7S;LLr|~!I-QmhDJ`uj}`s{BzNZOWuTYsQA$yKwPkrE8Q~*< zUV$g!iQlcj-shs{H`WK|PPf5By`q>$pXsxN5?|6NfX80)x37eVexmCYpGyzbApzY2 zPe6xbr%Y>F+WND=&8-koHQb4nCGQ%>?}pY&Lz5{E*AG@zEPJa(x13qchFtONJ{qMB zMf{YMeM+s)zE3jM%XS^;!AO{z+0(pcqj-|M^%J`yetsbSXvyps5P=85Swcd>=*c-L zFeuB{tuw60{dA4+)Atxv0#wH}KwQq)AI;0Zddun>8}@PpJwJM|V*1No1OT6J*W;l% z3lor9I!+xCLHi7P*2A!Op25n=%hykdb&hDa>H#}se6`t?0w*52$YA{a2*ONul#!zL_8stS4mQPx*BU^s_`1<*q zkMiJ^FBY@EJI3^DEk#RrD^5)uD)8a89{I9bnPpH|9+=@UGIj&$Dc(QAJkn`6)%POo+e7xsR$f zc|s1*UMcmsIq$9)(uRXW68NU zrp|xCS%W!#$`r3@vmWu8=`+sz|H+hdN01r9KDC=yjYA&g-Tp#|o#HF9JFHqWs=J*G zc6#OzdEUPhrts6>CN?wasSb5aHVupc;fb!Q~LivG(n z47#l7*dO=z_c^a0OpDaluEg;VmaMdS>FMaUF3h5-z|zg3(45o+Fn!+WOfda~&}X}A zxog7;;g~&dcXWH|i;RoYoGLZ?Mha4M@&NO#xx`6|2vmblI!-k|^OTq+)C`{!d)U2$ zn5ux--PwkFV%z{c)HFX;6A+I~IHolJH7 zgcCz6$~lXBRVDXPDNV1uB>j>5o#kwQN&q(-PYBqfYrqZOi^o4QAuq)jF3IT`-63^O zm8U0lOId(@WA?*`TuhBs)71l<8E-ritNW)mMH#iF@e9{N#$$sW6e~Lw*}pTOz?9Dc zry}>{O~OXUi5W^l?mHFx2bcevg>HIt;I(xYxQ#n5{?NLH{yff%dwXSh$Gf64MLmwb zbM+cH{ghqkoID&$0RY*}#A2ZO=;8|A#lug0$BqWiDIReiCu*u>;eR%N7`xj zi}jLqUeHBrP?y&5#XP$0;7*&UH}?$};BcetR99@=pxjOI6j}aK+h8kT4t!_s>9+I6;ibc`*+tHcb6y^f^37B#=iclrpaX zCA?cV^j3H^-qrt(1d;Vs`G-v-uTZq|Qqj7X*E|XH`J*G5%FoQ`#J1o3III1YqgmX7 z9jf|ovNEfX)B{0>mt7*st4lH!T2>_TU!&bos#+lXTiX_Yo-D@_u2(US?`jn9OJ}ym zf>VD8<_B|uBB-ry84BIi8Dd!0swgU`8$0epKq-xuoCYs#YMguG6tR|^LcT#w@IwWC z0B_SkMZT2rKRn*!8-1G}_Dm!CjmdP*lZ{1KJluGHR>7eR9|_`VI?+E_j))7q7iy^f zthas;L>kXl_$;F}2wjw3&!p35_i^j7wFqN&$J}^M|5=ZVIA74kukY9WU%RG|xOwYp zRmKfm6%@6M+Nv+SsR8I3K1N5Q?z9ttqFX6%(lHB}=OsUjOTLu-BfxZnnlJFhat!R% z2wA$Ac{=d{KE*+n+*+BWtJIb;fKGRS$IVJXuAYMqCh0LTy||3=)NbWLK8d;jRd*Ek zp-o#{WMmr?X0(kPAbh^;648!cIlIyJZdbe6 z3uNp=AqR&`vnZld+NX#7oms|jGK0YmTg zCT@pQ4)b;N*<*L4XVUYX;Q52|-YP`%=i=i?)H2KmC`R=PxI4?xSilv+r6%vrRO;^4 z^4AGqdlz1?u`IdZk<`s$=Z%olwIGQd2w3}ePrfOU8i&B&<8#>0k>7z)QE5Fk@9&3Z zP!3KwG74Gu_Z!Nyf|J6)82nko8s)t_Pd_=-gNM6iRcj}~)?HUr9J|in5?UwVONXI@ zDADZe`?jU2MvMY1`SfmfC{OY#DmFLp4KcimLF!4}6>syGv=;~1-7fTwhw1j2&t%d09oId5fMd-nfdtZ1!6KI@_r zaPM}@;4PWX?#SP)7PR%PzA%z+)%0)_@F*@naBhn`zs?fC^_ZU$=Bi;1JRm$N_XRBt zJdRfkWi7$?I5%CAv9Ftx1Kv5L7sP4|}TuEaKhi$Ce)$@XI| z=t$CWq;)&w;+aWZP#uI(b;p-2Mkc0uU!6r9OAHTIetTG8+W6Vgepe1ab=j z8^GLWUasa;YZ)P*J7`M^Y7QLZ;uN|`+@-6B-#w;og+4bjk}8%d^WGwS#PkoM=qK2$ zqQ?NY$lsWbSUaBbr@$i>@_li_q&9!*B(8? z$vym{gxJ5 zU-i(d-FV+Cf1%$-x83K6);P=fmvE=5%-!_!-3+vjB$y8ggtD4W1yX>^E7yr$pgmpo zKr^f0JZb6Z2rvqq#bN41^8zUlmyFQDPu)6?S7JDCZi#SMn$4=-bJUZ0M#^A3UNw{R ze(t0R{h!)dAi-x*<`8`p8Vm?+$kAWT_>vxFkm~mG;))s{t@|42{=DP;&90;1)LLve z&eT_MWk>+G+)AV-Ikn@7iCx*(-K;J8()Ir2pnJ{H&t;QE!o;xLbMD|n1l6YK+e|~7 zEtk{y{f{V#IIJeB%OT@&{y{aDJPh}*mvgsuyFkq3y>Ks)C=qh6_BE%rwIEbUZDH4v zX6>CccO~;f9#jq2)e()zN*L%Yb7uR$c<$KjPZgz!_;=fSwN(g`f-*bmz?M6mbV8g- zEE$cmq&1hj(xvANWHr(dMxiI9p|1y=6ox#YRLQIx(DAm*!GkMXbk&)lM)nv~lvwLv zLy#1B?PvfE7f$%d1Z=wm$+E{Bnkn^xZ0E?i@>&L7D3JY01G0|K9lYbf`+8%S{S8c0 zl;!1XPKP|L?xWW3xAh=uPBgJuDLgz?!RrAme8kr%oNav;@h=?~pTqA}NEqwAgSpDtjgRZqw4M6S$3d9NEAwz_h^1<) zjJ9jCPkxJ%KBnnKc8qCj9rVq>$4_32!FW#|&5_nD^DW-vagBODR7D&n;4Nwo<+`M4 zOAFrFbD)O!rgUBsamKCg=BZ{KnGQg})e4_6yD3DJZ&sYx zrk9TSM$`ZHp;`;8L#XY2bG&p1@!L4XdAgHCpyAU@PfVz0K_o>6F? z_*vSu8|fH!c^PX@!ZNrvx>D}xi=jkjD*i?DLK6c|>d!AtA@fGvRjpDKwZAlZ)J?5F zMSoKUw6kS}a-lkAS65fRYL2OmZGOBT3mW<;z{QS9%Bwei(wd&hZ7(L4#i-%^d&la~ zl_eOgk?PGRFQo2s3o+wO#Si(xkr8HF3~_yT?mERw9Dt0BA;w{#JfmK~%Y%xavba>r z&>m5l{~lhg#rjW*&pl)uMvM{}VlZA_^ZpP}-j7N+b~AEIQx{224C zllya%q>Y|rl+h~pE1^OLvxLxuUq#Oo zBV>q=T{*VtR>JEUE&jS5^KzSokFwtmy`A2ZCiXw|a|d4(3(4S)j9IST@((gX?#a@M z5T-Tg)k5qVX%(=t*HAb%i5>ocdIQ(d@D|{lGMxe}YrE{>?|@m}ANuHbzTj^%maehj z#x6$Bsk$|=-{-8yq@7Zc{ou> z>tGuDP*dU3jZ!136B*1fudc3P7{;VwYTeHoj?du!TURBFIqs|0j

O;vn5j}ujncHw3_I{ECetmRLs|6fM@15Y~C4EA(39S{c~w14Vp zYtmSnen7ta444;!bP9Le&z@&0SJk38&z`)f^{G6SZSeivPq`|u8Sc2~a^&l9*$=`L zX;dgPk9L!QZ{Rsd{rG=Dq26n{jk295ua-mIL)@|ZCY+?FZW`!c0#SJFU@q~0l$1~- z&#@oX7JIvLd1ZHa4$DUXZo88CCvhs53wz_y#++dH5c`A~bn*bM;4jjr++h5x1Q#X* zS$WR5s<1sompx@fl>IN2Iyun~0h6+7_f`U($IkxW{kM+Nd37nG)2rYj|qP)(&_j=Gztr@K6 z-{_s!tdh9aJG@TuKV>ep+rb)xduHEOcMUa$mj)o3pfr0E;jx6uOM`-Fa*#xJL-HR0o~XV2P?H?Hy8)iqt{k&ty0t!E1vKInbfcR>MA zn6(2}xGzYEotn$MhkfbLF`c?24hRnRKjid<1{295qfi1s+MlQ2E{@`FM&p%R>{cfl z%$56~h>3WBJtFbe=ifXbDTVm|rV!X;8^aOQjCFgQZ@KblpV=F^xNt(Hsyb)MI-KrW zwC4cJlnII7KljE9=c0G$*+|9OTc`nCXLYnC#*+U{MYG3opc~B!^=wdLl>Z+e?u}K- zEiFZcswT#HR7Ng;IFJ9R{c_4-u(!`VTSin z&ee!;*0AZgAZj3ncyFuz>-Xly1>AHvo**TL(N{54^IYzz$evsjdiW#1gF32 z(ks8<@7&c{AUqfNc8k6pc|&}!=XKK$KEG?Aa7a>0%91T|NwKq=?CKDoJp0#wxv?~C z`JNjZ#MzegG=>C9jNI5T)>Fma``?MtBs}0b`@*;T#=UhiR9=eGAr{`w!VzSnuJT8? z=dLXhA0NN8yj5R4>K59K{<_`*IJ46Umj1qB5iN!{@&*}d-^*O!ATjQ^z< zH76F}FFoY6#$W9!e`J=KvS6XS^xNN~9Bk@W$6>y1!O6ta=@eXngJT4Jc=vNaPo{R# zrF-&CM|8YKiIC?1%*nr?#1-6)b?s}OnMwDYX`C@cVMp;^EvR{8Z8w;4@w4wlmi0s0 zYJ^o)tD!Ew_P%#r1$uMoGdb94HuLR0#wDT|qr|@_QkMkg#lW_5r?b7C7zvYna3W8F zB!<=g6`Ms+H&kZSQq}pfr7vrs(KL^^l}l>ADhImfg71BdS>Vb!2!u8OQ3i z-xmm~@r#gDE1@22w(Ki0sQo0F0S{S2JlH-*48Lb;)zoh$T`>G$x0bU%`lL!sF5*~u}>ulw&ozSn7}IC&=@lw=v;|F!+I z2E2KlgYsS|g@xDXt9I5E=MX_Y?)b$eB?Xn03bOs){e)=};`ox|)@wjOnEK8J zl64V8c11bWIK{t!wLg+J%sXl#3LT%wouz)Mdmt#GdR(^intugRtYq4?qrAKrvaeAW zJ|UI(LfufM`T=Spc`|k6zid{N%{2waSPtDHLw#n?C~(cAer<3a$~6cT3b37o;{2K}pqu06y!k`N)2>@88k#|Z z)01A0MdTl!KTbB@^n=aMF>w~^8gEEv@$b6p3BulLbj@$6#}RqM&N?^EQ2BKJ4Dk$s zk*6QZJ(J-!6!wC72qFBf_-gO6eB$d4>Oggp*jZ zv!R%ZF1^fSD}V~)C7mq6QN@w;U%$Z(W`f}$<1MjVZx!wb0j+;LS5{xQ@3LYCz0_b6 zEtSgZSI|6v{(`j54HY{Fzj-pHVN!AY3Srsx?Ks6=;{$;r=I@CK41!l$?59?)-1O#v zKpmYf2hN%c4A&2YNFx~p0j}yb!0CM^1Y_cHq|;t-8j#tG{C&QQeg8@iCxsb zc_S6C!vOK9yI0va4*csik1zM@Q*x+#dzDwD8Tj|)QN80m`R^?RdS87mxpkd#afx+|rRSRg;s%FWOvW#EY!-?ZDoVDTnBs?m;j zKRttE)AZw4hr!i#$>j_5JEB(D=cE0-vamc{qKRHe+>VkNhdZGdw#&ZQqrbgbmJrIu zx~vS%eiVl78jQ4)*V9dvR7)m@Q!$Qa$9ZFb<`@Vw>Am#W+-72{!*8;4$`yL+xYj3E zri8iCG)_mz+J-_Pc`7tLPZcA$)%t6$jO> z52rYwJ2~9p(YZKSAG0(>zGKa%YD9k?S=B?{lY?M*jlDcb@<2K-UkUm+&IQ*~u*^`O z15I2jMJgOY5OPq61*y>I-8XPC`q@W#hKZ_j^E=yCs}#*IhQ^~0+V)#>hv3u-M#UCK z!pkeh7vBx}q?+W5efYe}tVDO?0hRhJNGx~;BvTBRRlKv~Wkh`v>O>nx;9RSb>D#D8 znt}5wUODXzM^uVi|M>Y@dGN@(G$vYY1>p38fPeslue1Yh@!_}i{Ps4<44`D2Oxc|RPWX(gliaU zNUA7^KudpV>$ONL-oVY`4RU5=;LALjYNal`DJOI<8E?R1v`iPxshj>MDGTmeSP6{N z{;0YldeZ2w)_ME^8aW{JM}+bx5V(McfTBoE)Y}w)Z>$wh&(KfjW*8i;e?3a0lHlAp z@~gxPmf@*t_&lb@k)$+EL@2JJ6#6! z&qfx!lnzw}hw{|gEk9WsLwYx0nJym`5Pw5QYoOuwr3U-zb({wF+0e)j7j5ScM9E+n zTu!C)8FIxzt=o*KBzs_e-s_0^MQ#2(ntbrxpZb{r*@lN3!|&`!!90eIXaWFE-FbaI zOEApgcShN2S0_sQ@6Iu+3Q`r-)tuc$8Jc&`>fvG&e$9Z&>`3;+Rype%wf765CAKGQ z|0f?T{pCfg4c6^I2?oGE!zP$mAQDneZoYzUUG6y2589%=)3Y5w^auM zb4*=^!E?_v!%Unp^sb{k;uSlIO4U+*{p11xNzEAJ?RHG{ZEXFI%=e=em9wJb{M6LF zz`TkLv;^J98Kg96u|6XA*oeGUT#>AY3uxDyTNckBm)o418}((bM#{(uHa=h8RN6(v zhl$)z1;NY8C`LI#%06dwjSVd`h-LopFmB7PrP9*{XGFB_J08y^w7=#>&IypWV5_Lw z)!=-Gy*a4CBZ>S1N>qo(KLx=<+?{HKn|yQds_43T40rXi`W7VRgQE4BXJEK2JXDX= zxs4km*`p~^E@_eua%8P~-`Vvt$JGly@GD%;gY zS)PejxE|8Mn zmb_BWmebh11M;^esZ9<^M;*ZD_1X8;K|qm@+CFDg1vblml1lgham?dl>>%e5G^sPN z-o3~HEVm$xmw5NJ+Ys03YD{Ub-)*n$o{Fi3W`IhwpNVy*P19mV^kpf#nMuwYQvcY z7hA+!gb4a(oEU6=gGbd}C&!D`HY40lR=0hldifUHo7BnUmBdNaTx`?Lmz^mR5^8J0 zwOlZN?&EwCa%OB9>CCA41loQZ5R)7I)b$N&g!q%-gPPHMn@xFNbH^+ENQR<$VAEVg zssHh>?4XW*yW`4}rc1}O;1{ZRaX?3;%b<#!LJ$N&4Lx)|oqB{&I8V35rzt!@jFxXr z3sZb!VbrDTM&f&DVx|YS&G?x>i};@Y^zwR_&4L3~j3Z0K#LfUiI^^qApN;-mnoev0 znTo3a)rmnE{r#7_lzwwwb#(p)TEoKB_tGh)mXSU2mDgT-Act?<9s)q1K%+Trgt)Hz3Qc8KsY~VkzN=W8 zMjs`(`OUMzfG%PkU3a7He(NOPYoVDf?qrp;WZ?F@l2mA3f_h4}wo>R8 zbgJ)XJuZ#%ZqdXIuTX3La;rUZ8rq?Q0jfI%9pU#X<+W786-Tb0+L}Z>e#Iw}0BX;= zKEHV<9Ny#%~z*A*rKw3r4Hp{~K?1(Wo zbVN&?w~LZ43TCC=;)TiJUpPXH%`=caHLG< z8PI0^1gZ|kqH?uO+n(7{FTkuC?+;6Sg!d^-ih3_yvs~yy_ska@M!LF1*0aEnQs67^ z@K%tWz?sfGHIX+yDG$5dEnp{|f5X`Qs*JJ1$5d>PKF{X;tTT}ln~6%RmiC`mtY3n7 zRvOgy*oh8`gD7& zQo&bIPHF(j?IKZtC=jwT0@y8r(mqacsKdPs^reGg_5(owfbW|4S`&?=Xoh^eISIB*6OVE~mCa{iFy(O{S~f znYP*v7HpFdS{kMfuS`iGhA1~NuC9(#L<7mkmR zx@2Xq4gG!@j}P(FPuWPr+epLEah`VkS+S6~pn}A3Ihw;_BQ1DLQ1Az2KXG9$&ZhnR z{1)0g*j#%`GHyJ^_qoQrI(@;y06XVw7!gE7DSpqx)2cQ4n7ndo+czNvkvao+d44V` zQTR+P=6%*l+amgV3xM#=pp4O%i_t2a8b0i|x+4X{39n!2Ie5;&QjO4TLM%g8rTG-I z059f`ZXrDzZ?G?-hfthrNs^pWPcuad!}f(cJBDA=T%c4wa%e1uhlhh=6TgcJK6vmh zhuw5@l&A>4&`aWYDC8{VP&@>2qm4YmdzjgTM6qn*VpUJc;OB=XIcPDYKVq%m$4ZSCpiUi`P>nM*3SP3yl# zu5u#sjg9Y1hzo0bMAQ-P@!i~tx4V&hvwUMJ+u8@KQ*U#_ZpYHcQ(48LElrx> zZ&Qe=Z`JbM#VS6L1={1Cm43{8d~pwkw3k)N1uFL;aLnXpZV@Cmb7WPf94rZUJefA= zd()U!y{6WsBc3b=_UEatKd;ce8zAX40v~T&=JfdsOeNLtQi$_;^XesE8&rPTMM4uq zLh=ggpVh8m=t&RUtw_3VuB0=8v=r-(>{vy-%kC4AkIWfmeU zd34njRUfAQ`kmJ;4)xKeyV+Q56NG${bZzOBwJh;5$RG1**X}+}r|bmRzSfqO)U?{I zg__XMW8X{cHfkc3_3$GQsxTmw?dEtaA23s?d)Y~B%PfHD@f3ReouHeJ4j_uf*(!dy zU2J^6IbUA~l?k4!3Mnj%AhX$j>ZckX1D~NkAVwyT_!6^=HchL|6~_Vh?5fTgSuFi% zL~xROI2lNvwO*+`n8QJre1pYq@Gb5p;mo#yv0YtkdTB&%+l0^35Z!7@nV**f8Ov+j zsBZ^WuN{qi5$K@0V4}{5;ZG^n(s>7<5a&&SU6lILL{2OC+sy*F zPl~^mhJuvE@F7`AB!1WTw~L$y@vw?ZL_wt2=A;7&wwMf9ZR27gS=|rfpReKxQY!D{ zE-JDQ&y1gbPwy~s{>phJs;u+#5ZXY)6HHEA#UQltH zGsa*##!?nq@w*6W#amlM`+G+i*i7b!W%f|RlucPH=Inswaq5>6S#7mEuJZ4x(FE(V zF4jW@OmgigI3Ff<6qfjnR3D(^6|w3Ds?|i`%f>5YNB11R;x;NxNBTC+h_Zcj55T^; zN#Z<$82eQSTntConBJ5bcgKC-z=Pqu{%Xv1^NA64PyhI82xh;XbIv5+LP?G7XcP;S z2MR)&00m@m98@-MhLO?iP!@y>`X^x~ZrW56tPBL3?@hhwQOt zzZ%WPu44sjcIsm6$a(?ohH@oP%VZRbd)J#3GC}X%<)enMVM7Z#I8ijjlL616k;Dg?%{Y4SGRfIy}PnuZI0fIeUj zd%|P~5>5PLr$$wnVna7w0o{Zk;*0jn|N z0os6zWx+sYoS%OhQ9a@}NnCyjiV{2fbLSI@aRtFfS^&xriAay5B~{d}+UQdk-jm){ zo4+DwVBGr8hS%qNgTWZ0;cBpf$aPRUz|xL-#_bSH2QxJ<9iQzvIug1_3Q8S8JUS~6 z7Jjzrxyq9&navR+VYlF3fB(!8D?U{iZ|fcn^ zp1c`mw5eBBbbP#$Ekn z(Y*_Av5t{!#64&cFladdeJtZBg#M_pmKdecdo_;UJM7R<0hHsu9uGpe+yW@K=}Sg% zr@i1O081HNN5NX|s{6=NjR_(YJWlRPX47BkBMR@3h=|B!zior5m($-p8$kw94RYRANMN{`L`<;rfbKp1R6SxF4Ho?w;DgtI+uL?QwZJ)Tx zDrgIEVZp{>Obbdq>`&B+;>7=Q?BFm-Be70ZAD|S77)upO-I}tS(gFzJZxX4tVlWb8 z`Ish2T|q()uXbJuh4QKp zETASifci(HOd}+uYoNAH#a{U1hfl&XC)6_*7!*Fi@Tt+>0q@)9=5X$7bnrTZ%|xJenNov zpo?m7m-5mHM%AoniTcy&opn1H<8d6(9@w`Fvdg!_a!1M^3D`GbB6h-1_ED$37$8NP z`(hT!vD$+kr+TK#x0a`$0>-DXC-wq8{RW;mWyWe`PweRUN*(PU&WD>f(j-`e!D=JY zTk5?~M-{p7vycEwBB>MCpJlbkxPb}u^i)lsS+;$y-Lh0t3&W`%31HT z)L5n~s+5~0_<+7B`c5&Q{OdQP887*r#1AI{wZ=}d~+rvCvKF}4AN5Delp7EN9Hy_kNmo+){)e)*>26# zBQUdiL43TKxruy}4CdKsM``miB8eI@C4g~Ro|y*FX`&$jk|56Zr*d#i=`MpS| zv1rlm&H%n0BU_}gH#vi})%hYjTCWtbWak)TnYpF~o>$%c!{wt1uJG@>tkGvoz_$y3 zVmPO&o{P@jR9}>8`U-B!sHmu22@Va?Z52vhEDTmB16CBjzr#9L z^?cJik*bxEkHa5fE!dRDfM+J9kP9K;#x_88s5D=czBmaMLmePC86aCI3Y4OTl5z8m zFwQc&8L^F^KJCi~sG}qY7^n$jInb)z;}+(KMZ@IYia{d~K-`eXtkD;JT)n*#EBPI!j*wSRm5a-_H)eElpc*+J#5d8JGjwMdn^-$+r2p5^bMcvWtoINl+gX zK7suHV#&jqmNJGFmNeP~An1JjQ9zpV&PbErFo2`FJG8vQ!I%M57B}DURX!D|F@^7E z*mZB!v}xM-+G22^?#bw4J>=5%chmx+rqY0XoJ(;62rF-6wZxqGy-)*uVK$UwV?MQAW-p*H5l z()Zv!1OxmHzsz_bwC6BqT@0n@n5H~x7F{N!23IFdJZjhxg%u79ab0<`|FvDXqla*s+xiWsv=vU1#2>?XBrx{V|bikLw*SR!p*Q4$1=*)ox-RjoL+xH*Ve%;fP} zqAkmy-fmd257$b1g>E3S1SQ%v}i!V z#^prXeiG@iEF0#ZbBDJ|dgN;pPhcFmo~n$lNtg;M|604Lo^GRu=kWV!lBHGIQZU<%n4uM}GSf? zQ|jkI98L|+CR=HsVv;VDHHu6Zi+v9@Zxm6072(OjaN`*BAd+QBtw|?rXiuNMx{!=# zc4g2r0ezX2J4CAC4s2^d?TT0H@4>+-FV?zHE@0T2qS@9}yc zUFXX_GK4!CB@O0%dd^i&c3R;{Cp~%BO)sv|Hoz#XEf3p|sJtKxI!K7!i&R}S>6+_} zH2cdkH!Eq?WJvNA$q6prz$KJjYYV^zWq&wOHdV_x6d)+VY12}2HDk*(CTnDpjSr*Et3?44a-_8nyQ5Wo2|6@W zfxQMRSSg+aqZTu%iQ8lA3yj*C7L<3F5M;V=G>Fl+qYGL(Y$-ymrR+8siQjQHe}EV! zFm*})^6-BxJdj!35GF+W0fa3t14=FSfPff96eSf6XPt#nqJ?ZqBjSV!*9lH->KYcy zwe<)RKK~>^{~48OI;7$V`+Y`W^PGzGjuZ?t5s0Be3Pz{+FC5H2t^T~`30e0$5Ij9S z$LCd@hy@mGA5t)lbD#M4|CoWljP!~wh+@LqUu)t^DQB7UnA`X7UGUBnd7S^ZT_Xvh z1#opTwlV+Pgn6HvqobojP2$sEHtC;y8cobvV z>a%2?;J^Qaa8Z9;Zwe8Zn!_3#T^RF_Fkf#Id?4=s%;2v!wj`*sGu=D)~m z7U6i5Us zyOMm)_)`#cL7*Ur65>TZ9s%O%rdfKdqZvoU4!9piPUZ*X>7a~IDF>1h{dv;QSeUTY z3+@NpW*EInFFUN`-D41cuNzZ~>ePRLl^2wLBxZ-&G%_?1bztv7)e6uJN;*;`?MSAS zAZfJ~4NA2AcL;w^Q&R=JxG#-r7U#Cyf+UxbXafXFq}iuEGK=kEu7rA$@o7A{j?KJU zBjzND1gQh4=1%on=KK^J%xexRPXkcYrkYi(@1IW9Nk9xH4gDo+_D|GXD}8mvL^Rq0 z#jPm`WvPdaDQlySKt1ZYzP~m|TtuD3t?+G!rWtX(ZH|sWo-(WgTN&{f=70JM@NIx8 zOmHv(D@ZZ}n%3M))u+;pfARhMRXdL%x$4qPrzprH5AJk`ep2**_uw z8E>m_XL4WKN6uhQ4&=Qk!JU=)zq%dWN-LGMQ|y&l<}eHdBL4LBOw`J2XL0tP%U zABUPl)^FBqH_6+99{hkasKY`qoeezS5E=aMo+m`XGeCI~HBauv2+`Lq$Ul4rta)%* zslLdedP&!OyuDDfKkK?Cg-^8KAntk{`z5wH*#HfOra0ilz;xUFv31u-b{QjHL5%DB zvrpe$ZGBIxK1)}N#{BvIoit!R?>JlzsRS91#c+ss2+H}5^KrYHGff(nDF0Avc9uZm zfRds`r)xDCiMpp-IjZuKtFUmLwUFFb_Traghg1)H=>iWsE)B$UCER6w(aFZ1WhI>w z+B7PkuK$qTNFP2?q;{y~*9#!;xwmQeHYq5h{K2u2L4uYMk~FLvT{tDq3)B3?O;bt1 zgqwUq?mv?!gv1faB1&*@>DJWx2`sZsl(x#d+z=B=g6^&DTVnUps}z=eC;k}y^Xu#O zYvRRJ41&4+`GX-O{RM4p7}I3Snme_&!&kzsm7(}eUUg8F7n_g4e7@8d7{gQlSIgC~89bdtkXZp*ga`K7|( zFg2KH+Wsk5fXcLArchGljw3t<7bkAjK=j7!sc@RI_xjJmLWrP=9m%+82vk zUPd*4*d-KpK%>SirB!JcU8^x7F#KK@RpaD$57qRuzT`c9rz?h!jyHbEC+Z($479jD zDYJ;N*$C*vQn&dCd7A4_CH7UD{vEoL)fKWEst!sR$_^{g$K_EDlE)o9cTuQ#Y~Uk0KucD-8`m|Yu`=U3AI%!1iS?!l99sFpVTg{&)NNx6uX#4oyRLSAHHInS(r(k5YS>e(q#7s}m*X zzL?e{_nuL4)6jh2R!!p1GB9sL27)j{pzdf7mA@ZPj{9WF4GLB>CeeoJS4q-QJtcb= zxbrA%0cxr_UJ9wM(O>$xao}`$q#@?v(Z;t*!;uvL-{AU0q8?L0DC`w8Z~C?uB;H(t zx&91cj3tW0KQm#D1R%m>iQ!?~uio#ArrlQ~i!R6Nb4OJM4*C7-W&UwF8|tvkASY8d zXEZ{9=101-F(58~pq$9nM8-o==*Lru!8xDSjlycOtO*mR_*KTdjJ^hjX?@Wkd=~%L zl$fDpAq{yPYl^_968mrqOyoj*ejDAx0gG|?B*r%GcAbpq`MJtEE(ow%vDF%v;NQ_S zb-2tQ{qm9b3#&my=mWH9Tq~dDaOLBp$_7f1r)xgbrWHyk#Jr&=wBA!xyZMsevA#T` zcJSE`ASvz^=w4b{Ny5NFP*GwweT)-rqdwem0`g0=T zh`Y`L{VtPMAT!Zuoqt&<2I60H{FgJH_yoh;YhS)vwpwP?s%;H+!0$XzoJQQ2U8dR# zkB3wOb7AQ@e%uvL)~Kl^+h1R!YX2LGj_a48MW2DGM8kB_l``$u+ChL&!n~Os7M+E3 zIV})JpI_S#!66gpyTvpe5lI`;asBT0Df~WtwGA}q=Z+C#(rz-y6yq^=r@*}XQw6e# zfg=x33H@X(yC?0GqqUFsQM*N$36<41O0Gs-1)Uc<8+|I71LW`LmksmUeRfYsDq8Hp zsBY^9@UYiARfq<%mLKlg?zv#EH6z}m-CXU>JuF{NEM6YA<c)X&)(b!8!+ll<<|dNj&SpNMBt3x?=q$4U%PaC@%H|PVB171 znV%nq6K3hZAgg{Xp|CRl#*Hb2rq8Hei*nx4{&ww{tHs)#lpK{Nm-Z}n41m;?~((;Kg!a!`V|*DlHyT928(k*!6L zXxw*K?Bm`xifWyVohCz`p*?_!ldl z8k;Xs@q+p*58o9PPyyH2o^_8{{Lia?daDncs(&L~|MAD_;C?}>z_z8#fc6K=E4$HE zTWlL^fDsi3;jr&KYVpMqvP8^w5AZ1>jDIWCbM*P3FfL0=ksj(}g2D7WcH?zEmIZsf z>yeiQSgoro*y&t(!R_I2kZpa+5yH)z-g{=7jbC{6@bmjH9GpEin9z6R2?n^k zXlO=AO_5BUop5g*`)yPQ@*P~41_b=Z2E*E_2NK+sJ>6P8Y zg2))T)qAA4>nysrietbp)^ z%>Kg8-?;lD(Q4CQmK`G!TsAo6%C2XF`@UX|@;+85&0+CWzeX>}GJw5%HCdl3GnoU^ z9ULZ1P=Pzg>wG2N@JBesw$hC-j-lUKyVR$BaVmWprv{s_IeA~u(DhI&5At0xaaY@| zi0|N8c!oPg6SGcfrAk|Q;NeZJZ5*Tx2>~g=Q2O-DpE_c?0!~hMZ!Z%rUb|gOuGAo2}@St zyZ6!$J5W)(JVW~Nv_VRdmirg1L7t}Y8r){eWdE{!)>iLKoe_FL<2yR6V$fajcLiPb zX1K2J)T!>7?gaxez!0Lj`@A3pY{sd%o_boV}2Hd|~tRP41$mrixzt{bZ-k$-R)hwuern0z}uO z$Am%_T{HReum4JjkJy%lcmjRI?Y^n5h2$_eiyTGoUIB9zk@(QLAV+&4iZ4Sw^ z{O026?Ml5D(}-#1h3B)P7{KZ61(Aqqng~uzh(Y*pVslJ?S;dL085{WS-Qa6-(9dHF zX$_MP|LUdg?BlJ`5|-#)c*!q#EOXjZ?-h^ba;*7)JJ{*>iI6l48C}WzoL_j#%B%Ui z*@NV!wc&22a_Ple7m=;4c_^E;cYcTwVxf^xQRRZ*iX+7C#4LxwHQ0k~Qvip;M;vZA zoHUA;w9}-tId7c+9Ty1WuR#>nHzuC^8#*TZAlB4Yw@IlBx{;ppw)MgUAB50==!^(8 zu^cq7W0_t3`F0W@S0}G4AU|KaYY0xCD!)$=w{sv9qQQp@;TCVuEW8=JiL=Hw_lE^* z*v@uzNMq3huvhf9af~e4*5PBl%^Kf1{t1)o=`L>rSThx|3vU$>0 z7w}y(>_su!XI8Yoxc+Aa@DWc`ARUD5u4rA}3BKwNoH=<|>KsR_MfCGf^qR3BRR!g4 ztnp`omUyL>gAhyp2T7^au;{hH{?cEU*00K1v)dRIy{mN{eb97Vp@?ZsVu)`z4N*5j z(_(VMGzG@+UH97RurK$NT<;^}c5kgv^I8Q$a&lw=$j%ll)+8FvEA7qTOlAhyxR_{ zH+?x$i*)Y-F{j*L?s5#dx%P9jn_e+*Up46-49vi$p13IWy7Zb6EwhxuCbhWvO#CW4mCH?wXF zFBLWug57SbJF3iS4>)AeMkM~nbot-FTdGAzy?)re{yN^Yp%q?>ogRGhB#(nfrpE(> zLfw6JC)F}1-&d%x2k34k6kp#__HwyC+%|d#@Jf6Cgq~*ekaJxH@Aa^AEHsFChy4j% zgL}yp7r07fmLxj*B?TCp1kt639D;AzQ?8Y9L(|=@hFm$t-Bw-%2H%C;_~!1D_K=T7 z24YnL^iV6Ft%>Vviwu_cG$JE-dTn4u8J-GI?{A09C@Oq>-<;p%c*ofxDCvCj3dGu- z4DT+>u~+#&)^PkUP2lGDP(inrS!+@6P}qIVxyTvF=1@|^Xl6t@_+o#?iP7Qq8i^4A zCF2EIak(B3F1#K%uiY`?27qzEcLSTooTtRlS@-=8W7~utoi<|cpf%fAmNU`zuB%t*W+2gQU)|SV^!J|^^Q+P(lLd*3~^GQ(GaWW z&8JTK>~HH6WxMfeB_c}5Uhx8{M*4%n;Z3T$9kDlfWBa~_8!`n#da8ww!sD4buT)PE z5{EUfNAU%IbX$=ZeEkAem7Ypl)cmJ3Mu}6$SaUZ99%k9^yf!5GeLy8)oDINQoBs3f z6`G}{P}S$Hr(_3uIjop%{)tLGOlY()*-QX(RTT;Qx)0-4k*$*vDtNSF=aDTTqc!7? zYw2tT01m21pggb~VF%8N34NW{lT?_sSN{s$&bJ9is>_dFj%`zOGM^A}7L9*Y5qE3* z2l}XFzrJLIvO^EqN|@RuzZ(;-_KlMGr$op1%|@#;xV+@pC~-?pd4C05O@`Pc5&%ZS z_*Mv{LVyiw{jLW4x+c3|=b+(edO6B%P}sd)Zh!CGR{R2#IqW0F|GGBN!p=lG0F}e3 z3_AIM3m;9<{rP;}uv&;%GdMeCIY&AbkDSi*A6B{vsD)G)X zedzL4Sz07AK^Lc{e#EpEvrM+$-u#gizH?ro+K(5717)2>Raeom{Bj5bIaQEeTdBpk z{fqpVK$7xY9D?D8HFf?cXuQfmR93Bh62- z^v{MdP+vM0?}*yXxVxZCllSfX>!3v5;-fqpxODPth!aBv+gRKZr}rqCnFg1NNJM?! z`7D&OXE+)+oz({m@-(nVWu+SiB1WVlka{(x)^3%qy?$swe`5A~<1+hbS&*fT!&WOI zHQ>3qsG}3|x&n!4J@)ygAYc02MXC7Z|8sPN$Okqsj-aB(b;raf%~u#rhMiW2MB)#h zGkj3mk9m7VD%yPWue*|}c6h7E-QZG|k@|sR$C4D7>+Pm$4C#wBMK>&b7mn3hE^K!W zNYjOMX%6KgFeAz^ypIWrGTlG}#%*QpmC&k^Ec~wQa!$7$+}m{Qbwa}}G?m{8WddE4 zNz?Fq#5fV<`_O3nczjM-VD0^{Vb5-&CuowXNS|Ljg-=#uqJ~+=ikBQo3*tG#jgMn# z_9{8~>D~62v4V~!O;K2i=N`T~-Cra!r+VnX)z=Pw%wFx@}p42K1^;q=l zMVDPQhD%Q5Vh*dLI}&UZSQdxXh>wO*8F`bSIPSbm zqfQze^B2+dkyAM`okXCFsT&A+dSY5=@Zue6M#t$|TFwhWCgO64Qh@w4d9V*XJ?~NV zJ}8#P)t9%OhIe<1n1!D4Y^;m>r7pkC27VzzAf)7*0YfjH^x zWKY3OlO#jfn6c#_E&$}4q*7%W7^)N8Odst+-Gmkcn|LaNlQl zO3^ElyPv7Bf^|#BBh2nB4FXKNgGE~FxC!BDFS=^KQ58WZ*L~+?B`o?qnIwqgm!gj+ z0ngft46aMMZARi3&}Q;~gy@$c&}qbuNduF8)~Ba)cn25<01rxwS9^A}?JAv?CEZA1+opRbtPG$#Eb+8@t(FSO|#JdVj(Rmj}tPglN8)Ex-VCzxGVps`86k{(KM>;@g%w^{8WWbM@3ct0m-_lImSN2{t|Bn z)}7u_G&CxD&0^mB%=-3BnWUbWFm2(}z4_)GZT(h9m%eZ}mXjL2Om&LsYuWGJ`4yNK_j&fxHYPOh zTEcrn#!PkrOmiT1v}OAHNm<*|5u?!}9l<)iAi^n5O^HcmokIlfIj<}E4K3|q9uf42 za&;+PPGfLTbHg^D(;_yrZTk7(?;otFCFWG%0=J*c%1r24AQ@pY71~|cPjSjCgt2qV z9)kt>nfD9X9PV5Qwf5V{#bx}NOaQ!Gw&X$13&~NpRt0?@gSVELZSS6S?`FflVa~*o zk%DI+nOa)*#zoFPtd8m)Jc`0@ww*3pZvfl0yC%0U5V!8b{GGPe2b$1x-gtO;kTha7 zHSU}3b^cwuDvaRJpAoj_%zn1ieV(12g@KV(aYyOMA#SqSJvVFU_8R*%GCa&LFCTa1 zy?2^npYCF(0yd|j-oKR%UlsHZ$k1QTE2+qZrAS3qIWq~O| zX8B%Em#^?Qq{HVIHBBSEZ?B8`uLghR^jO1v3Lo#$_J|J&hm7C zli|9itZFWz|Kpl$kdO=qg$A`Chw4t*#Kncm)gU=47d2~=2BReYIh_5Y0;J$7MBqO{ zT1w+j8&vdMj1tS~AxYUgx@nUX|IY^I&l8QzkdQ_w{UF&~3 z0y$eE@G1K>A}+?7Xyk)f(^F%rdDpX?9sGr^x?d^P5$ZLn(q(E|(vc(BL!^Jn;)xR+ z-cy-nc9t_y?%JO!iYej3XG>;oKQ4_17>G`c8!mF0#MIMT-h{Y5Du|i{{8Kru z@FvsA)$RIw<`^0=$W{`u#i*Ip0#EYP8>uQm!6MBCr92$g^BcO-O*#a3&HN<+%_0xe`6AHR< z@04rNh>N~(59)^s8w=!>fJbb}T#W@0y=7SA14aKW56ndT4KnH}Kg z+L497E>jT@2?5RcmzMZReCJag{mAfs-{^OtK)pYe_bPAu%jsV;YRe7-Gtv|>=gkf? z+{_)yR}pjFz{>sE;wSb#bXss`CPC<>0wTNCW*Gcxp!&FQq*yhtv6h=M=2xl-6o3Gw7S zt`dG#e+5^;1mB|A>M_Yo7-!RC!0cU-Q3bkDA3n}Hl^NOmXLug~vhv~c^>`{-4_#w9 z^z6p69Y6Yh_N}bWw&_q%#W(FC9iZELH`n5i5kB5s3*``KEse8vjkEdAT@f;~GH2&k zp}2b?F?0C*$}9_b@ANaho88hpWncJm3X`w#{2>@)59c!!6y*Jb5K4kWy{J7fmIePI zF7kO2e!UCx$T+Hg=)(xNH>@E9XqiKS?YebSaOg*|6A-Nw_ojVe(SKH&R#-&-*KY6; z?cMv3srzl!`Cx3<1%JDxQaw64dWz?fPd*digKKRho3DDF^CHYI0Ja=Y%)V+9?Mv0; z003^Si@z0M*|ioeN{;R7yCXmh9dI{zpEUa1R1c24@kv299Ftd=@eAZsmLAKBjksSw zf>o+RXVvd%syw@j?Z#u8pg0mVXMbY!&d{i8OsP%LK}oBQ6Wmx5@kgC*>h z5ouYEw!kD|eyJ+4o*}N~G2t?n!HL@B5;p z3lvhEkeLz@PNTK!Ha`UZiXZ&9Blw?7@>`vGrt-hWcoM8v^?>F89-mU$Vuv+01PuCA~_Jk*7@ITKwJW^QLwMlY8hD zaZ~;2^FD3Gt8YMyr^;(o{poQ7uk(CQDy~W@-r;U{&rdEDulc!DTo>Gx-NvKaoqCnQ zru>ZWYX{`zW;X^|EHuQ-M79Shhg(H~HaQsZm5d81@Opm!V%^wXtMiBgwLKF^ogeIL z8xe2j`9_+KloLPzi8C>-T+4s;<&QgQ^Y?ATcx)1?3~yj)zn4rxiqv*vI8I-?Ri{c& z5CWKe33!<7ac>+GP6MdI@b-`jLTafiV1x&vznZ3@ocAZjQIm6-_EtWK!5rs?2-hzj zU(YklVL2(c-HvNqu;og92NLKl|#{z2HxC9CN>bV*-vV?A_C zqe~KXpzC4Leyp5n_hYACquXSTtL~etsq`BvsLs&`i^mN`AMe}BeeX10SZwmYrt?oY z${h{t+3aL&#gEd6B}ooT%6=_=LXGUsx_2#TNR`>ak*#>qx9!|UP+%%OiG8W#%kEuT zAqgid(e{lk-20-J)rAG1>NCN~$1`na)YU1}c7r$FUGY)%I#}NH88A*8>fWCX+)-(< z;Z=vH=XTxSY#q0MsH~U@6Bm$?yF zi$vsbAq~9S#M_2<%0>TQpJkd_8g-JEIZYt_(0Zj~D(;puz8Ug+i$LDVUvncXsqlKB zC}C=+uWA?5a?`xa-yVg!xABAasCd7LNZ0*{DrZt3W2%X{=+T@zt^qxTr$n*e3t#fF z(aCU-c;g)=f+zG5prW>?%%u=GwYI!KI|kUfCt<}oXG3;gKNAeDC@sNZHfA&_C9&xV>{Wg&6k6B-aYsIg7xk7?KNkOsv1=s1b=U)O032_ zccEj}YEHF_<&y*)-pJ3&IUT8_AARCs%G}6iI9d^yH5%)4`YhOgxj#}%kA#+X6$OqiU zRp5x(Yy3hsZAGi;+$A6C_Ww1h6P=9zjR_u28x-pEjVs&(-1mBsmI+&9FW+2aclw%P zw;KKWt*nUB;DX`(t zP4!A@<|YXG^{UV1KEa4AJ zg6&nupqip}1**oR9pxk2t6;za@1XJaePmaZ)AEs>unGHL79#(?9pu_i*9eF_*Rl3; zQMr?_#x?J6UPvfQ{}<qkg~+{Vmx>udKKlgQd{z00m}MuiG?(1HFLMKuVhJ4v4_f%%_rQ!<+alK8_G z@go8Q6-4-X*Hp+NKb;%rL^c(}IQ2K-%@wY0%GJ)oz?P;yQ7)o1!Yc|2QjsS9X1ho1 zYcX@Z;?~|ItF@X%X)Ac!>fV#HM0u1R`kst0JRQ@UXp?Ipe&8rvW`qruEokO$IO3wH z*o~Z557cV4Zd}pnbL5a;XBQ#c2)`nPxN~JXB&#;36y_Qo+^9vEZ7}`)oyeC-?)cV^ zOjHA@j~2R;iRie$O+pU$fQTlrsVWEeX2(R!0}aKh+Tnc&5Yb*Ji2xN^5bnH-q`D4| zF9ea5ip(8y+A_)6lH_YS;g`)o4{^D*Ei3|1D2R6Em*Ftlu{`5?frZKFpbzewfbx-O%Dv}!4pP4_9{Jc|nGx~c^ z?;<|gPB3t9nKYb|==fhkmXM!FuPwzGLBz`K<*?t|$VM7pD{Q)z;O{i*BSCMLL&mh& z>wwhY=nGn&D-_7%7* zA{oqWou%MwJy`<$ud^HRa5{HNJ$QLV8t+!6XW@J5RftLMwjKGQ>xt`Q0)=EYAAT~G znx}3~mpaKISr0pr%%LCLDr@M~6k~pE@r6=wTCSvaOv|QDboc_zSa+|h z9e3CQj$GRFUi!&eZ83h)iDbH%m@JXW!3&yX#!+NBW4&4vZmjXpZt_!+1EzY{J)wHd z3o|ZUw0!b_rGK}I%PV1l;NhO?BK5*`Y%Q05Kx>v~E3m0x>boDH!Drm^ zuX7J-=|92#dkFnE49^oJ6H0x2B_s?sc@F0C!JR>v4NQT{+Mxx6<)MVd7K**}QgNBa z9{TE9Dg0vJoVdZ}fek!Q=9*)I9+29N#b*?yr?hX=PF@x{jqMvKWZnfVwhNPqllczX zquXx!ha9;N4wZ?=s_$$*#t>1P9#VT>cI&7*V*4ciHg|Wm~cCpYJx`(kjPed5-biqktqBQrNG~naU*s!G+7oA zp81;J>h~;-{Y&?z3eZ=c%(!c zTVUI(pvRJp5Xzp@o15AdB}Kc{|6|cS{`OCX5%Yxzp^N7IxI(@xRcto_V`m<<>lo2R z%B=!YP9JS!+S-|A)OWYp3(MZF&Qo2xFY>dKQ!&Lxm*yXr7T7!3_G#gs?hO-LPK|%l zs(fm><1et^$8O};Bp7{dKuXWMU$q`zu~(lqkRb@yBY887`4&8oL{NT0B0m)MRN$=i zCR&dmd=PQRLUB0?X!gGI5#1wO<5a{;ZRLL7`q+UmJAnBwIQxzP@>-_netc;#JCu1F zdry9-zEeQBOqtOEW&ZT#k>(DVly&KE5+AVeAAq8DS`FM)Ve);1!5`O*Ol8&7WkoN0 z+$d=cuSh=6$vV?H@LZv-Df%-Y;X&Nzx_m@YhO>z)<#ROJCj?-gzv)ak5s|K+X-Rpwrr-45vHf-wS zI@|^`{MYPKo!_G~KB+N>I%J$Na6{Gz^~2ZBFtd1Ep))znNKL#1P%qWa*9($L)pWEb zrU9%ieSvJ>z{c1O%OyD7L)B_!*ca4cRz9GeHDYO>6$3I>drn-EfaQBGR>dPiK(7LK zqZfwZwHlvGk#PBb9UCQ>>Np-2^yQ%e@f@_8H0}zG-Tah{4(z9Ma&;R|xhDCREa2Ns zJe}TA!d$}6x&yN{Ax8uYnNF&0gQ^}AROj_CNP&EA-{)Pas(^ryzFtas^;hEqFTtWe z(W4&)xL`l!)M_l#@}4>r<*zqWO>b2~AUiEqR@2&n^5b^dZ0Jj|(EWCt-hl}X_t`Or zoBBT$@MR`E6!K`yT(LmASb*#5yx&N`oUdAznQOT*zcx0IF4}ledY+zt*w3$BxjYDH zT1x+&pER2XXl$=*k#z%Jz&&z(LWJ*im8TS9?P9Woq@=h{PFDr%)MM@sQ$&8y&Z;h^=x9d1wBhMDapRyx^w3ocTSq&fW~@;=A^DYLe8AuBL4Tv5HDg#d zRJT4|>yRpah9_^jm#FtlZ8u}Qe3d`Wn;<^wpkO+t7TP@+zN($H)SO`XNP7NQSc8_b zMfPOqMM8&wz@^p-hu4C2t&2>lkazIuOxcXJ&~N))M4S>x%sP{0Rm@Qm-Pt91&|1jH z`})%Y`Lm!jnc)+2zBz3VLc74g{K|}>>h9nG;25D;bb8-@rcQqSQ zrE;1~aeViB*Rek3fV_7iyT6m};!oy5_7k3zTe&pmcgapI582T;P~SUF6$}gqgTvgE zz}s3s&T;~Dr^nC`emh7~^qmbulPG%?(`>KJ>i7r_sQUqW1q`L!I}G3bP*0p_zu>uu zteP-pSWR&Pyzat|a`1}eZOpY67Nq8A=-CbZzSW)1A{Bwcd6JV9y_s72aatnw(2bzW z(jPUP@$=A9vBZQsS6dbzCm{bvrbF#E^_eh_xD`;+J`v2fTVz~JSrM5OyR9MJs;r~i z8LMoEea*IIz|u?+^TVK;t|s~}5&pUsmfSXwCoF7BK{eU(Kiu|qxo~f8^4=x!8x5W#A|R85-#xb5pIX09ikqrA2F@M;eVoH>6t*v3Owhmp@MnDz5( zt~L{FCf)jQIxb*)CN=b_h7i`^cpg2uw#+<$3D`WwRrmaDv6~VSe7*9qnuf4B5EaYl zBmJ?K+nn_ysStA})*$aJs{24bO7NO{D zTFaGg&rG9@yt4a~knkyG$p($InayEEm+ z(xochT*{4gXVVLPoN>h%C(LyBql(!Wo4n@;t-@BwYtEmRA2J}ER-8+!es);EzRxH5 zq0`Ygo+vjnEPt90T%!0Q2i0t1icJpVwrfz3UN;o$e?#X#vWQWgMj(+s9Z& zjnU48>-rOfnRefH?aud-j)V1N;N|ID4QUfxSJA<`i_3nqASu&t&Qjd!+RVn+FOh4V z$Ho!Qg4GU5xYU(6uot0syOuc&CrcKTFesv2<%z}$=>c=UkJ%o2#+wl6lVP;XsQ2b z#cjDhNbHD$zkv>NTzyE+#F8!x-wULLd0FtzH`}Vl2LEb{LK!X&9&8wSH-Ik+chMeF zCtrGqI8IYl{W_wK$U$AT1FB|@KvDL$QqtVSg}}CqtjW*)0|U_U9IXg==`d-xqS@ZM z+)U!CAQ*gNX|Lv2@#j5|U2JK^k5nd90xiIgJndG;PoBxN6N6vdiRh;jNg@KsZibqa)r%uxFn4vL^qbJWY@x-G$rpIkBVrx4+UH(X=rqunR_LF8DZ@& z##|tl-I9Jj%NOAd2ko|bq4Fr9UJZWdQL76SS%61HM()kikgdK4Y_!}wHiBK5s+XXQ z?v}%Ur9_Rtrnh*FyKD~W1z&yDtd+avM8EV3*DhqVC1oHSuG(#1Vgt5qUFS6c39(Lu zJmD?H=@%zJoY}%Me{gT6jdn@Ys;0)A*WOQWl;Q$68S7HlCfvA4fgu_|0o>oU?Asa?}V?3;4OP2^2Lqh#soTXj9Olw#PB!k z)SahJV^#NtLowkkMCp}K0ACazo`e-8!Xd}F-q-c3m`ns%)cF0*;>gC+s*JT~K!QyR zjZZu6Xk27m2XunfT1mv%Fa@Y+o(3cXu!Lbqql2?oP%*T#CNe(zo$<-hqG^?fRXUoA z+bv{~$cz8XRUQ}DKF6Qi%CNdHk~c6CU%;XtS)LMh2bI(pKCOOx%WtLvOWxbR#`P=a zHLsxNf{g3J<9{fU|EBotDaeS!THTlK8@m!-DO`GZ{z2=1bcN;&9UAhpxK#zGoMya+ zzU%}YvjJ94P&kr|Xflo&E?DC#g63zud4(MM>b0#5jglToeuVUDEJYFfAphKW`*xw* zd2=G9{~+=|@5q1Y@JDLkMPJsJos?)76#p;ATBPJT(zp7}O{vFMXI(ujWKLF71;4SPv#O}p85qj2sI)tbd#NN;Ja5xU1xI$(T@xd29kWNHG z)}pFKE{292Gsx{`7(#+vymBl#&7y2V&_4iXSY1zIyQw@G&TR4;QZ>q%j-dx8f*{#N zg;2MVS3#=i`=49wUlOHmBDCbhGrPx1O`5#S#Iu=xc@|K8`!$w78x*6W2v8o0uxMnwk~dPJ>i91U+W%C^PzGmHg|%UxhenGv~RUiJ7(ae53I}| zRnonMk?S2JJixi1aG45=8H{f|Iii<Bob+LHf8H5(JY;N*T#tG-DSD%oq$xX$1!< z|6Z+38v|FSqU!1z~d18g|(9G#pTzCuM211TemQ(LT80=`mF^%L~J6eJZ(1&}$!1Drx+EZpMFBwmNXd0^-qg2dY^TuHU_WE&McmX^7S(Q<1BS{lK8T$oRIFBwnfa zgs;F+@MMqD!u&K*j**56zs}_(Nb|mo2-8){x&ODP7J$AyoI5ZgV-Pg;v+pDJktsC% z)QDqNpF#P0)m!ybw2Km_rU$HNo{R5gpQe3pgywnUVaJuT4S(H*c`hzN=(KGGQN<#7 z6n4O(P#>8Cw6ZK`Yb%q4t}DNpp#aiIxp4s!lPW%^rUYu2+njYci;JLg2O}DHA{w3M0+~;*o0eO9;OD4H5e5-4 zO*7{C1PQi24(^8YwiMVeHxeo1{uaxS zy~R~@Vhqty4()-Xes{vkqUi^<+ZnGjF(;h z-6$*GhSk#pdat)SlolA3eHGY3A>#LbrL=v~LNm}$E9SZ12X(X1#s9#|^M18G*RiB+ zD#!7vLG=t1u~^2NpbZa#q;ZiV3u+_BGLxL(b$YG9JzC5c`cEjF(ybYSys0r5j`RHf zU2?U)sFisa2O3$r%0WXHr

!vXN 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 a5KUR=X&0s1!k=dROjSwiU9Ey;`2PXcD1kHp literal 0 HcmV?d00001 diff --git a/docs/sources/project/make-a-contribution.md b/docs/sources/project/make-a-contribution.md index 8a89ac058e..c68ed6818b 100644 --- a/docs/sources/project/make-a-contribution.md +++ b/docs/sources/project/make-a-contribution.md @@ -1,7 +1,6 @@ -page_title: Make a project contribution -page_description: Basic workflow for Docker contributions -page_keywords: contribute, pull request, review, workflow, white-belt, black-belt, squash, commit - +page_title: Understand how to contribute +page_description: Explains basic workflow for Docker contributions +page_keywords: contribute, maintainers, review, workflow, process -# Make a project contribution +# Understand how to contribute -Contributing is a process where you work with Docker maintainers and the -community to improve Docker. There is a formal process for contributing. -We try to keep our contribution process simple so you want to come back. +Contributing is a process where you work with Docker maintainers and the +community to improve Docker. The maintainers are experienced contributors who specialize in one or more Docker components. Maintainers play a big role in reviewing contributions. +There is a formal process for contributing. We try to keep our contribution +process simple so you'll want to contribute frequently. -In this section, you will create a new branch and work on some Docker code -that you choose. Before you work through this process, take a few minutes to -read through the next section which explains our basic contribution workflow. ## The basic contribution workflow -You are about to work through our basic contribution workflow by fixing a +In this guide, you work through Docker's basic contribution workflow by fixing a single *white-belt* issue in the `docker/docker` repository. The workflow for fixing simple issues looks like this: ![Simple process](/project/images/existing_issue.png) -All Docker repositories have code and documentation. This workflow works +All Docker repositories have code and documentation. You use this same workflow for either content type. For example, you can find and fix doc or code issues. Also, you can propose a new Docker feature or propose a new Docker tutorial. -Some workflow stages have slight differences for code or documentation +Some workflow stages do have slight differences for code or documentation contributions. When you reach that point in the flow, we make sure to tell you. -## Find and claim an existing issue - -An existing issue is something reported by a Docker user. As issues come in, -our maintainers triage them. Triage is its own topic. For now, it is important -for you to know that triage includes ranking issues according to difficulty. - -Triaged issues have either a white-belt -or black-belt label. -A white-belt issue is considered -an easier issue. Issues can have more than one label, for example, -bug, -improvement, -project/doc, and so forth. -These other labels are there for filtering purposes but you might also find -them helpful. - -In the next procedure, you find and claim an open white-belt issue. - - -1. Go to the `docker/docker` repository. - -2. Click on the "Issues" link. - - A list of the open issues appears. - - ![Open issues](/project/images/issue_list.png) - -3. Look for the white-belt items on the list. - -4. Click on the "labels" dropdown and select white-belt. - - The system filters to show only open white-belt issues. - -5. Open an issue that interests you. - - The comments on the issues can tell you both the problem and the potential - solution. - -6. Make sure that no other user has chosen to work on the issue. - - We don't allow external contributors to assign issues to themselves, so you - need to read the comments to find if a user claimed an issue by saying: - - - "I'd love to give this a try~" - - "I'll work on this!" - - "I'll take this." - - The community is very good about claiming issues explicitly. - -7. When you find an open issue that both interests you and is unclaimed, claim it yourself by adding a comment. - - ![Easy issue](/project/images/easy_issue.png) - - This example uses issue 11038. Your issue # will be different depending on - what you claimed. - -8. Make a note of the issue number; you'll need it later. - -## Sync your fork and create a new branch - -If you have followed along in this guide, you forked the `docker/docker` -repository. Maybe that was an hour ago or a few days ago. In any case, before -you start working on your issue, sync your repository with the upstream -`docker/docker` master. Syncing ensures your repository has the latest -changes. - -To sync your repository: - -1. Open a terminal on your local host. - -2. Change directory to the `docker-fork` root. - - $ cd ~/repos/docker-fork - -3. Checkout the master branch. - - $ git checkout master - Switched to branch 'master' - Your branch is up-to-date with 'origin/master'. - - Recall that `origin/master` is a branch on your remote GitHub repository. - -4. Make sure you have the upstream remote `docker/docker` by listing them. - - $ git remote -v - origin https://github.com/moxiegirl/docker.git (fetch) - origin https://github.com/moxiegirl/docker.git (push) - upstream https://github.com/docker/docker.git (fetch) - upstream https://github.com/docker/docker.git ( - - If the `upstream` is missing, add it. - - $ git remote add upstream https://github.com/docker/docker.git - -5. Fetch all the changes from the `upstream/master` branch. - - $ git fetch upstream/master - remote: Counting objects: 141, done. - remote: Compressing objects: 100% (29/29), done. - remote: Total 141 (delta 52), reused 46 (delta 46), pack-reused 66 - Receiving objects: 100% (141/141), 112.43 KiB | 0 bytes/s, done. - Resolving deltas: 100% (79/79), done. - From github.com:docker/docker - 9ffdf1e..01d09e4 docs -> upstream/docs - 05ba127..ac2521b master -> upstream/master - - This command says get all the changes from the `master` branch belonging to - the `upstream` remote. - -7. Rebase your local master with the `upstream/master`. - - $ git rebase upstream/master - First, rewinding head to replay your work on top of it... - Fast-forwarded master to upstream/master. - - This command writes all the commits from the upstream branch into your local - branch. - -8. Check the status of your local branch. - - $ git status - On branch master - Your branch is ahead of 'origin/master' by 38 commits. - (use "git push" to publish your local commits) - nothing to commit, working directory clean - - Your local repository now has any changes from the `upstream` remote. You - need to push the changes to your own remote fork which is `origin/master`. - -9. Push the rebased master to `origin/master`. - - $ git push - Username for 'https://github.com': moxiegirl - Password for 'https://moxiegirl@github.com': - Counting objects: 223, done. - Compressing objects: 100% (38/38), done. - Writing objects: 100% (69/69), 8.76 KiB | 0 bytes/s, done. - Total 69 (delta 53), reused 47 (delta 31) - To https://github.com/moxiegirl/docker.git - 8e107a9..5035fa1 master -> master - -9. Create a new feature branch to work on your issue. - - Your branch name should have the format `XXXX-descriptive` where `XXXX` is - the issue number you are working on. For example: - - $ git checkout -b 11038-fix-rhel-link - Switched to a new branch '11038-fix-rhel-link' - - Your branch should be up-to-date with the upstream/master. Why? Because you - branched off a freshly synced master. Let's check this anyway in the next - step. - -9. Rebase your branch from upstream/master. - - $ git rebase upstream/master - Current branch 11038-fix-rhel-link is up to date. - - At this point, your local branch, your remote repository, and the Docker - repository all have identical code. You are ready to make changesfor your - issues. - -## Work on your issue - -The work you do for your issue depends on the specific issue you picked. -This section gives you a step-by-step workflow. Where appropriate, it provides -command examples. However, this is a generalized workflow, depending on your -issue you may you may repeat steps or even skip some. How much time it takes -you depends on you --- you could spend days or 30 minutes of your time. - -Follow this workflow as you work: - -1. Review the appropriate style guide. - - If you are changing code, review the coding style guide. Changing documentation? Review the - documentation style guide. - -2. Make changes in your feature branch. - - Your feature branch you created in the last section. Here you use the - development container. If you are making a code change, you can mount your - source into a development container and iterate that way. For documentation - alone, you can work on your local host. - - Review if you forgot the details - of working with a container. - - -3. Test your changes as you work. - - If you have followed along with the guide, you know the `make test` target - runs the entire test suite and `make docs` builds the documentation. If you - forgot the other test targets, see the documentation for testing both code and - documentation. - -4. For code changes, add unit tests if appropriate. - - If you add new functionality or change existing functionality, you should - add a unit test also. Use the existing test files for inspiration. Aren't - sure if you need tests? Skip this step; you can add them later in the - process if necessary. - -5. Format your source files correctly. - - - - - - - - - - - - - - - - - - -
File typeHow to format
.go -

- Format .go files using the gofmt command. - For example, if you edited the `docker.go` file you would format the file - like this: -

-

$ gofmt -s -w file.go

-

- Most file editors have a plugin to format for you. Check your editor's - documentation. -

-
.md and non-.go filesWrap lines to 80 characters.
- -6. List your changes. - - $ git status - On branch 11038-fix-rhel-link - Changes not staged for commit: - (use "git add ..." to update what will be committed) - (use "git checkout -- ..." to discard changes in working directory) - - modified: docs/sources/installation/mac.md - modified: docs/sources/installation/rhel.md - - The `status` command lists what changed in the repository. Make sure you see - the changes you expect. - -7. Add your change to Git. - - $ git add docs/sources/installation/mac.md - $ git add docs/sources/installation/rhel.md - - -8. Commit your changes making sure you use the `-s` flag to sign your work. - - $ git commit -s -m "Fixing RHEL link" - -9. Push your change to your repository. - - $ git push --set-upstream origin 11038-fix-rhel-link - Username for 'https://github.com': moxiegirl - Password for 'https://moxiegirl@github.com': - Counting objects: 60, done. - Compressing objects: 100% (7/7), done. - Writing objects: 100% (7/7), 582 bytes | 0 bytes/s, done. - Total 7 (delta 6), reused 0 (delta 0) - To https://github.com/moxiegirl/docker.git - * [new branch] 11038-fix-rhel-link -> 11038-fix-rhel-link - Branch 11038-fix-rhel-link set up to track remote branch 11038-fix-rhel-link from origin. - -10. Open your fork on GitHub to see your change. - -## Create a pull request to docker/docker - -A pull request sends your code to the Docker maintainers for review. Your pull -request goes from your forked repository to the `docker/docker` repository. -You can see the -list of active pull requests to Docker -on GitHub. - -To create a pull request for your change: - -1. In a terminal window, go to the root of your `docker-fork` repository. - - $ cd ~/repos/docker-fork - -2. Checkout your feature branch. - - $ git checkout 11038-fix-rhel-link - Already on '11038-fix-rhel-link' - -3. Run the full test suite on your branch. - - $ make test - - All the tests should pass. If they don't, find out why and correct the - situation. If you also modified the documentation, run `make docs` and - check your work. - -4. Update your remote repository with any changes that result from your last minute checks. - - Use the `git add`, the `git commit -s`, and `git push` commands to do this. - -4. Fetch any of the last minute changes from `docker/docker`. - - $ git fetch upstream master - From github.com:docker/docker - * branch master -> FETCH_HEAD - -5. Squash your individual separate commits into one by using Git’s interactive rebase: - - $ git rebase -i upstream/master - - This commit will open up your favorite editor with all the comments from - all your latest commits. - - pick 1a79f55 Tweak some of the other text for grammar - pick 53e4983 Fix a link - pick 3ce07bb Add a new line about RHEL - -6. Replace the `pick` keyword with `squash` on all but the first commit. - - pick 1a79f55 Tweak some of the other text for grammar - squash 53e4983 Fix a link - squash 3ce07bb Add a new line about RHEL - - After closing the file, `git` opens your editor again to edit the commit - message. - -7. Save your commit message. - - -8. Push any changes to your fork on GitHub. - - $ git push origin 11038-fix-rhel-link - -9. Open your browser to your fork on GitHub. - - You should see the latest activity from your branch. - - ![Latest commits](/project/images/latest_commits.png) - - -10. Click "Compare & pull request". - - The system displays the pull request dialog. - - ![PR dialog](/project/images/to_from_pr.png) - - The pull request compares your changes to the `master` branch on the - `docker/docker` repository. - -11. Edit the dialog's description and add a reference to the issue you are fixing. - - GitHub helps you out by searching for the issue as you type. - - ![Fixes issue](/project/images/fixes_num.png) - -12. Scroll down and verify the PR contains the commits and changes you expect. - - For example, is the file count correct? Are the changes in the files what - you expect. - - ![Commits](/project/images/commits_expected.png) - -13. Press "Create pull request". - - The system creates the request and opens it for you in the `docker/docker` - repository. - - ![Pull request made](/project/images/pull_request_made.png) - -## Your pull request under review - -At this point, your pull request is reviewed. The first reviewer is Gordon. -He might who might look slow in this picture: - -![Gordon](/project/images/gordon.jpeg) - -He is actually pretty fast over a network. He checks your pull request (PR) -for common problems like missing signatures. If Gordon finds a problem, he'll -send an email to your GitHub user. - -After Gordon, the core Docker maintainers look at your pull request and comment -on it. The shortest comment you might see is `LGTM` which means -**l**ooks-**g**ood-**t**o-**m**e. If you get an `LGTM`, that is a good thing, -you passed that review. - -For complex changes, maintainers may ask you questions or ask you to change -something about your submission. All maintainer comments on a PR go to the -email address associated with your GitHub account. Any GitHub user who -"participates" in a PR receives an email to. Participating means creating or -commenting on a PR. - -Our maintainers are very experienced Docker users and open source contributors. -So, they value your time and will try to work efficiently with you by keeping -their comments specific and brief. If they ask you to make a change, you'll -need to update your pull request with additional changes. - -To update your existing pull request: - -1. Change one or more files in your local `docker-fork` repository. - -2. Commit the change with the `git commit --amend` command. - - $ git commit --amend - - Git opens an editor containing your last commit message. - -3. Adjust your last comment to reflect this new change. - - Added a new sentence per Anaud's suggestion - - Signed-off-by: Mary Anthony - - # Please enter the commit message for your changes. Lines starting - # with '#' will be ignored, and an empty message aborts the commit. - # On branch 11038-fix-rhel-link - # Your branch is up-to-date with 'origin/11038-fix-rhel-link'. - # - # Changes to be committed: - # modified: docs/sources/installation/mac.md - # modified: docs/sources/installation/rhel.md - -4. Push to your origin. - - $ git push origin - -5. Open your browser to your pull request on GitHub. - - You should see your pull request now contains your newly pushed code. - -6. Add a comment to your pull request. - - GitHub only notifies PR participants when you comment. For example, you can - mention that you updated your PR. Your comment alerts the maintainers that - you made an update. - -A change requires LGTMs from an absolute majority of an affected component's -maintainers. For example, if you change `docs/` and `registry/` code, an -absolute majority of the `docs/` and the `registry/` maintainers must approve -your PR. Once you get approval, we merge your pull request into Docker's -`master` code branch. - -## After the merge - -It can take time to see a merged pull request in Docker's official release. -A master build is available almost immediately though. Docker builds and -updates its development binaries after each merge to `master`. - -1. Browse to https://master.dockerproject.com/. - -2. Look for the binary appropriate to your system. - -3. Download and run the binary. - - You might want to run the binary in a container though. This - will keep your local host environment clean. - -4. View any documentation changes at docs.master.dockerproject.com. - -Once you've verified everything merged, feel free to delete your feature branch -from your fork. For information on how to do this, - -see the GitHub help on deleting branches. ## Where to go next -At this point, you have completed all the basic tasks in our contributors guide. -If you enjoyed contributing, let us know by completing another -white-belt -issue or two. We really appreciate the help. - -If you are very experienced and want to make a major change, go onto -[learn about advanced contributing](/project/advanced-contributing). +Now that you know a little about the contribution process, go to the next section to [find an issue you want to work on](/project/find-an-issue/). diff --git a/docs/sources/project/review-pr.md b/docs/sources/project/review-pr.md new file mode 100644 index 0000000000..44ad84f2a0 --- /dev/null +++ b/docs/sources/project/review-pr.md @@ -0,0 +1,125 @@ +page_title: Participate in the PR Review +page_description: Basic workflow for Docker contributions +page_keywords: contribute, pull request, review, workflow, white-belt, black-belt, squash, commit + + +# Participate in the PR Review + +Creating a pull request is nearly the end of the contribution process. At this +point, your code is reviewed both by our continuous integration (CI) systems and +by our maintainers. + +The CI system is an automated system. The maintainers are human beings that also +work on Docker. You need to understand and work with both the "bots" and the +"beings" to review your contribution. + + +## How we proces your review + +First to review your pull request is Gordon. Gordon is fast. He checks your +pull request (PR) for common problems like a missing signature. If Gordon finds a +problem, he'll send an email through your GitHub user account: + +![Gordon](/project/images/gordon.jpeg) + +Our build bot system starts building your changes while Gordon sends any emails. + +The build system double-checks your work by compiling your code with Docker's master +code. Building includes running the same tests you ran locally. If you forgot +to run tests or missed something in fixing problems, the automated build is our +safety check. + +After Gordon and the bots, the "beings" review your work. Docker maintainers look +at your pull request and comment on it. The shortest comment you might see is +`LGTM` which means **l**ooks-**g**ood-**t**o-**m**e. If you get an `LGTM`, that +is a good thing, you passed that review. + +For complex changes, maintainers may ask you questions or ask you to change +something about your submission. All maintainer comments on a PR go to the +email address associated with your GitHub account. Any GitHub user who +"participates" in a PR receives an email to. Participating means creating or +commenting on a PR. + +Our maintainers are very experienced Docker users and open source contributors. +So, they value your time and will try to work efficiently with you by keeping +their comments specific and brief. If they ask you to make a change, you'll +need to update your pull request with additional changes. + +## Update an Existing Pull Request + +To update your existing pull request: + +1. Change one or more files in your local `docker-fork` repository. + +2. Commit the change with the `git commit --amend` command. + + $ git commit --amend + + Git opens an editor containing your last commit message. + +3. Adjust your last comment to reflect this new change. + + Added a new sentence per Anaud's suggestion + + Signed-off-by: Mary Anthony + + # Please enter the commit message for your changes. Lines starting + # with '#' will be ignored, and an empty message aborts the commit. + # On branch 11038-fix-rhel-link + # Your branch is up-to-date with 'origin/11038-fix-rhel-link'. + # + # Changes to be committed: + # modified: docs/sources/installation/mac.md + # modified: docs/sources/installation/rhel.md + +4. Push to your origin. + + $ git push origin + +5. Open your browser to your pull request on GitHub. + + You should see your pull request now contains your newly pushed code. + +6. Add a comment to your pull request. + + GitHub only notifies PR participants when you comment. For example, you can + mention that you updated your PR. Your comment alerts the maintainers that + you made an update. + +A change requires LGTMs from an absolute majority of an affected component's +maintainers. For example, if you change `docs/` and `registry/` code, an +absolute majority of the `docs/` and the `registry/` maintainers must approve +your PR. Once you get approval, we merge your pull request into Docker's +`master` code branch. + +## After the merge + +It can take time to see a merged pull request in Docker's official release. +A master build is available almost immediately though. Docker builds and +updates its development binaries after each merge to `master`. + +1. Browse to https://master.dockerproject.com/. + +2. Look for the binary appropriate to your system. + +3. Download and run the binary. + + You might want to run the binary in a container though. This + will keep your local host environment clean. + +4. View any documentation changes at docs.master.dockerproject.com. + +Once you've verified everything merged, feel free to delete your feature branch +from your fork. For information on how to do this, + +see the GitHub help on deleting branches. + +## Where to go next + +At this point, you have completed all the basic tasks in our contributors guide. +If you enjoyed contributing, let us know by completing another +white-belt +issue or two. We really appreciate the help. + +If you are very experienced and want to make a major change, go on to +[learn about advanced contributing](/project/advanced-contributing). diff --git a/docs/sources/project/set-up-prereqs.md b/docs/sources/project/set-up-git.md similarity index 69% rename from docs/sources/project/set-up-prereqs.md rename to docs/sources/project/set-up-git.md index 4962c0c799..64b2ba13d4 100644 --- a/docs/sources/project/set-up-prereqs.md +++ b/docs/sources/project/set-up-git.md @@ -1,99 +1,16 @@ -page_title: Set up the prerequisites +page_title: Configure Git for contributing page_description: Describes how to set up your local machine and repository page_keywords: GitHub account, repository, clone, fork, branch, upstream, Git, Go, make, -# Set up the prerequisites - -Work through this page to set up the software and host environment you need to -contribute. You'll find instructions for configuring your `git` repository and -creating a fork you'll use later in the guide. - -## Get the Required Software - -Before you begin contributing you must have: - -* a GitHub account -* `git` -* `make` -* `docker` - -You'll notice that `go`, the language that Docker is written in, is not listed. -That's because you don't need it installed; Docker's development environment -provides it for you. You'll learn more about the development environment later. - -### Get a GitHub account - -To contribute to the Docker project, you will need a GitHub account. A free account is -fine. All the Docker project repositories are public and visible to everyone. - -You should also have some experience using both the GitHub application and `git` -on the command line. - -### Install git - -Install `git` on your local system. You can check if `git` is on already on your -system and properly installed with the following command: - - $ git --version - - -This documentation is written using `git` version 2.2.2. Your version may be -different depending on your OS. - -### Install make - -Install `make`. You can check if `make` is on your system with the following -command: - - $ make -v - -This documentation is written using GNU Make 3.81. Your version may be different -depending on your OS. - -### Install or upgrade Docker - -If you haven't already, install the Docker software using the -instructions for your operating system. -If you have an existing installation, check your version and make sure you have -the latest Docker. - -To check if `docker` is already installed on Linux: - - $ docker --version - Docker version 1.5.0, build a8a31ef - -On Mac OS X or Windows, you should have installed Boot2Docker which includes -Docker. You'll need to verify both Boot2Docker and then Docker. This -documentation was written on OS X using the following versions. - - $ boot2docker version - Boot2Docker-cli version: v1.5.0 - Git commit: ccd9032 - - $ docker --version - Docker version 1.5.0, build a8a31ef - -## Linux users and sudo - -This guide assumes you have added your user to the `docker` group on your system. -To check, list the group's contents: - - $ getent group docker - docker:x:999:ubuntu - -If the command returns no matches, you have two choices. You can preface this -guide's `docker` commands with `sudo` as you work. Alternatively, you can add -your user to the `docker` group as follows: - - $ sudo usermod -aG docker ubuntu - -You must log out and back in for this modification to take effect. +# Configure Git for contributing +Work through this page to configure Git and a repository you'll use throughout +the Contributor Guide. The work you do further in the guide, depends on the work +you do here. ## Fork and clone the Docker code -When contributing, you first fork the Docker code repository. A fork copies +Before contributing, you first fork the Docker code repository. A fork copies a repository at a particular point in time. GitHub tracks for you where a fork originates. @@ -106,7 +23,8 @@ To fork and clone Docker: 1. Open a browser and log into GitHub with your account. -2. Go to the docker/docker repository. +2. Go to the docker/docker repository. 3. Click the "Fork" button in the upper right corner of the GitHub interface. @@ -168,7 +86,7 @@ You must sign with your real name. We don't accept anonymous contributions or contributions through pseudonyms. As you change code in your fork, you'll want to keep it in sync with the changes -others make in the `docker/docker` repository. To make syncing easier, you'll +others make in the `docker/docker` repository. To make syncing easier, you'll also add a _remote_ called `upstream` that points to `docker/docker`. A remote is just another a project version hosted on the internet or network. @@ -308,11 +226,13 @@ the branch to your fork on GitHub: 10. Navigate to your Docker fork. -11. Make sure the `dry-run-test` branch exists, that it has your commit, and the commit is signed. +11. Make sure the `dry-run-test` branch exists, that it has your commit, and the +commit is signed. ![Branch Signature](/project/images/branch-sig.png) ## Where to go next -Congratulations, you have set up and validated the contributor requirements. -In the next section you'll [learn how to set up and work in a Docker development container](/project/set-up-dev-env/). +Congratulations, you have finished configuring both your local host environment +and Git for contributing. In the next section you'll [learn how to set up and +work in a Docker development container](/project/set-up-dev-env/). diff --git a/docs/sources/project/software-required.md b/docs/sources/project/software-required.md new file mode 100644 index 0000000000..476cbbc2ca --- /dev/null +++ b/docs/sources/project/software-required.md @@ -0,0 +1,91 @@ +page_title: Get the required software +page_description: Describes the software required to contribute to Docker +page_keywords: GitHub account, repository, Docker, Git, Go, make, + +# Get the required software + +Before you begin contributing you must have: + +* a GitHub account +* `git` +* `make` +* `docker` + +You'll notice that `go`, the language that Docker is written in, is not listed. +That's because you don't need it installed; Docker's development environment +provides it for you. You'll learn more about the development environment later. + +### Get a GitHub account + +To contribute to the Docker project, you will need a GitHub account. A free account is +fine. All the Docker project repositories are public and visible to everyone. + +You should also have some experience using both the GitHub application and `git` +on the command line. + +### Install git + +Install `git` on your local system. You can check if `git` is on already on your +system and properly installed with the following command: + + $ git --version + + +This documentation is written using `git` version 2.2.2. Your version may be +different depending on your OS. + +### Install make + +Install `make`. You can check if `make` is on your system with the following +command: + + $ make -v + +This documentation is written using GNU Make 3.81. Your version may be different +depending on your OS. + +### Install or upgrade Docker + +If you haven't already, install the Docker software using the +instructions for your operating system. +If you have an existing installation, check your version and make sure you have +the latest Docker. + +To check if `docker` is already installed on Linux: + + $ docker --version + Docker version 1.5.0, build a8a31ef + +On Mac OS X or Windows, you should have installed Boot2Docker which includes +Docker. You'll need to verify both Boot2Docker and then Docker. This +documentation was written on OS X using the following versions. + + $ boot2docker version + Boot2Docker-cli version: v1.5.0 + Git commit: ccd9032 + + $ docker --version + Docker version 1.5.0, build a8a31ef + +## Linux users and sudo + +This guide assumes you have added your user to the `docker` group on your system. +To check, list the group's contents: + + $ getent group docker + docker:x:999:ubuntu + +If the command returns no matches, you have two choices. You can preface this +guide's `docker` commands with `sudo` as you work. Alternatively, you can add +your user to the `docker` group as follows: + + $ sudo usermod -aG docker ubuntu + +You must log out and back in for this modification to take effect. + + +## Where to go next + +In the next section, you'll [learn how to set up and configure Git for +contributing to Docker](/project/set-up-git/). diff --git a/docs/sources/project/who-written-for.md b/docs/sources/project/who-written-for.md index 4c290a1673..e3b761a460 100644 --- a/docs/sources/project/who-written-for.md +++ b/docs/sources/project/who-written-for.md @@ -54,4 +54,4 @@ Please feel free to skim past information you find obvious or boring. ## How to get started -Start by [setting up the prerequisites for contributing](/project/set-up-prereqs/). +Start by [getting the software you need to contribute](/project/software-required/). diff --git a/docs/sources/project/work-issue.md b/docs/sources/project/work-issue.md new file mode 100644 index 0000000000..7175c11046 --- /dev/null +++ b/docs/sources/project/work-issue.md @@ -0,0 +1,203 @@ +page_title: Work on your issue +page_description: Basic workflow for Docker contributions +page_keywords: contribute, pull request, review, workflow, white-belt, black-belt, squash, commit + + +# Work on your issue + +The work you do for your issue depends on the specific issue you picked. +This section gives you a step-by-step workflow. Where appropriate, it provides +command examples. + +However, this is a generalized workflow, depending on your issue you may repeat +steps or even skip some. How much time the work takes depends on you --- you +could spend days or 30 minutes of your time. + +## How to work on your local branch + +Follow this workflow as you work: + +1. Review the appropriate style guide. + + If you are changing code, review the coding style guide. Changing documentation? Review the + documentation style guide. + +2. Make changes in your feature branch. + + Your feature branch you created in the last section. Here you use the + development container. If you are making a code change, you can mount your + source into a development container and iterate that way. For documentation + alone, you can work on your local host. + + Review if you forgot the details + of working with a container. + + +3. Test your changes as you work. + + If you have followed along with the guide, you know the `make test` target + runs the entire test suite and `make docs` builds the documentation. If you + forgot the other test targets, see the documentation for testing both code and + documentation. + +4. For code changes, add unit tests if appropriate. + + If you add new functionality or change existing functionality, you should + add a unit test also. Use the existing test files for inspiration. Aren't + sure if you need tests? Skip this step; you can add them later in the + process if necessary. + +5. Format your source files correctly. + + + + + + + + + + + + + + + + + + +
File typeHow to format
.go +

+ Format .go files using the gofmt command. + For example, if you edited the `docker.go` file you would format the file + like this: +

+

$ gofmt -s -w file.go

+

+ Most file editors have a plugin to format for you. Check your editor's + documentation. +

+
.md and non-.go filesWrap lines to 80 characters.
+ +6. List your changes. + + $ git status + On branch 11038-fix-rhel-link + Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git checkout -- ..." to discard changes in working directory) + + modified: docs/sources/installation/mac.md + modified: docs/sources/installation/rhel.md + + The `status` command lists what changed in the repository. Make sure you see + the changes you expect. + +7. Add your change to Git. + + $ git add docs/sources/installation/mac.md + $ git add docs/sources/installation/rhel.md + + +8. Commit your changes making sure you use the `-s` flag to sign your work. + + $ git commit -s -m "Fixing RHEL link" + +9. Push your change to your repository. + + $ git push origin + Username for 'https://github.com': moxiegirl + Password for 'https://moxiegirl@github.com': + Counting objects: 60, done. + Compressing objects: 100% (7/7), done. + Writing objects: 100% (7/7), 582 bytes | 0 bytes/s, done. + Total 7 (delta 6), reused 0 (delta 0) + To https://github.com/moxiegirl/docker.git + * [new branch] 11038-fix-rhel-link -> 11038-fix-rhel-link + Branch 11038-fix-rhel-link set up to track remote branch 11038-fix-rhel-link from origin. + + The first time you push a change, you must specify the branch. Later, you can just do this: + + git push origin + +## Review your branch on GitHub + +After you push a new branch, you should verify it on GitHub: + +1. Open your browser to GitHub. + +2. Go to your Docker fork. + +3. Select your branch from the dropdown. + + ![Find branch](/project/images/locate_branch.png) + +4. Use the "Compare" button to compare the differences between your branch and master. + + Depending how long you've been working on your branch, your branch maybe + behind Docker's upstream repository. + +5. Review the commits. + + Make sure your branch only shows the work you've done. + +## Pull and rebase frequently + +You should pull and rebase frequently as you work. + +1. Return to the terminal on your local machine. + +2. Make sure you are in your branch. + + $ git branch 11038-fix-rhel-link + +3. Fetch all the changes from the `upstream/master` branch. + + $ git fetch upstream/master + + This command says get all the changes from the `master` branch belonging to + the `upstream` remote. + +4. Rebase your local master with Docker's `upstream/master` branch. + + $ git rebase -i upstream/master + + This command starts an interactive rebase to merge code from Docker's + `upstream/master` branch into your local branch. If you aren't familiar or + comfortable with rebase, you can learn more about rebasing on the web. + +5. Rebase opens an editor with a list of commits. + + pick 1a79f55 Tweak some of the other text for grammar + pick 53e4983 Fix a link + pick 3ce07bb Add a new line about RHEL + + If you run into trouble, `git --rebase abort` removes any changes and gets + you back to where you started. + +6. Squash the `pick` keyword with `squash` on all but the first commit. + + pick 1a79f55 Tweak some of the other text for grammar + squash 53e4983 Fix a link + squash 3ce07bb Add a new line about RHEL + + After closing the file, `git` opens your editor again to edit the commit + message. + +7. Edit and save your commit message. + + Make sure you include your signature. + +8. Push any changes to your fork on GitHub. + + $ git push origin 11038-fix-rhel-link + + +## Where to go next + +At this point, you should understand how to work on an issue. In the next +section, you [learn how to make a pull request](/project/create-pr/).