30 lines
2.6 MiB
HTML
30 lines
2.6 MiB
HTML
|
<!DOCTYPE html> <html class="sevogelnj idc0_331" lang=en><!--
|
|||
|
Page saved with SingleFile
|
|||
|
url: https://learning.oreilly.com/library/view/hands-on-github-actions/9781484264645/html/502534_1_En_7_Chapter.xhtml
|
|||
|
saved date: Tue Aug 03 2021 16:18:21 GMT+0200 (Central European Summer Time)
|
|||
|
--><meta charset=utf-8>
|
|||
|
<meta name=viewport content="width=device-width, initial-scale=1">
|
|||
|
<meta name=theme-color content=#B9002D>
|
|||
|
<meta data-react-helmet=true property=og:image content=https://learning.oreilly.com/covers/urn:orm:book:9781484264645/><meta data-react-helmet=true name=twitter:image content=https://learning.oreilly.com/covers/urn:orm:book:9781484264645/><meta data-react-helmet=true name=twitter:card content=summary><meta data-react-helmet=true name=twitter:creator content=@OReillyMedia><meta data-react-helmet=true name=twitter:site content=@OReillyMedia><meta data-react-helmet=true name=twitter:title content="O'Reilly Media - Technology and Business Training"><meta data-react-helmet=true property=twitter:account_id content=4503599627559754><meta data-react-helmet=true property=og:site_name content="O'Reilly Online Learning"><meta data-react-helmet=true name=publisher content=Apress><meta data-react-helmet=true property=og:book:author itemprop=author content="Chaminda Chandrasekara"><meta data-react-helmet=true property=og:book:author itemprop=author content="Pushpa Herath"><meta data-react-helmet=true property=og:type content=book><meta data-react-helmet=true property=og:book:isbn itemprop=isbn content=9781484264645>
|
|||
|
<title>7. Package Management | Hands-on GitHub Actions: Implement CI/CD with GitHub Action Workflows for Your Applications</title>
|
|||
|
<style>@font-face{font-family:"ORM Icons";font-style:normal;font-weight:400;src:url(data:font/woff2;base64,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
|
|||
|
<meta itemprop=isPartOf content=/library/view/hands-on-github-actions/9781484264645/ data-react-helmet=true><meta property=og:url itemprop=url content=https://learning.oreilly.com/library/view/hands-on-github-actions/9781484264645/html/502534_1_En_7_Chapter.xhtml data-react-helmet=true><meta name=search-title content="7. Package Management" data-react-helmet=true><meta property=og:title content="7. Package Management" data-react-helmet=true><meta itemprop=name content="7. Package Management" data-react-helmet=true><meta property=og:description itemprop=description content="© The Author(s), under exclusive license to APress Media, LLC, part of Springer Nature 2021C. Chandrasekara, P. HerathHands-on GitHub Actionshttps://doi.org/10.1007/978-1-4842-6464-5_77. Package..." data-react-helmet=true><meta name=twitter:description content="© The Author(s), under exclusive license to APress Media, LLC, part of Springer Nature 2021C. Chandrasekara, P. HerathHands-on GitHub Actionshttps://doi.org/10.1007/978-1-4842-6464-5_77. Package..." data-react-helmet=true><link rel="shortcut icon" href="data:image/vnd.microsoft.icon;base64,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
|
|||
|
<body>
|
|||
|
<noscript class=sf-hidden>
|
|||
|
<iframe src='https://www.googletagmanager.com/ns.html?id=GTM-5P4V6Z'
|
|||
|
height='0' width='0' style='display:none;visibility:hidden'></iframe>
|
|||
|
</noscript>
|
|||
|
<div id=root><div class=orm-ff-Shell-shell__wrapper><a href=#main class=orm-ff-Shell-skipLink>Skip to content</a><header class="orm-ff-Shell-sidebar orm-ff-Shell-collapsedSidebar"><div class=orm-ff-Navigation-collapsed__wrapper><div class=orm-ff-Logo-LogoWrapper data-testid=collapsed-logo><a href=https://learning.oreilly.com/><svg width=40 height=40 viewBox="0 0 40 40" fill=none xmlns=http://www.w3.org/2000/svg><circle cx=20 cy=20 r=18 fill=#D3002D></circle><mask id=mask0 mask-type=alpha maskUnits=userSpaceOnUse x=10 y=11 width=24 height=18><path fill-rule=evenodd clip-rule=evenodd d="M19.8774 11C16.2373 10.9999 12.9556 13.1926 11.5626 16.5556C10.1696 19.9185 10.9396 23.7895 13.5136 26.3634C15.1978 28.0566 17.4892 29.0059 19.8774 29C23.5176 29.0002 26.7994 26.8075 28.1924 23.4444C29.5855 20.0813 28.8153 16.2102 26.2412 13.6364C24.5569 11.9432 22.2655 10.9939 19.8774 11ZM25.5315 20.0001C25.5303 22.6961 23.6251 25.0158 20.9809 25.541C18.3366 26.0662 15.6895 24.6506 14.6582 22.1598C13.6268 19.6689 14.4983 16.7964 16.7398 15.2986C18.9813 13.8007 21.9687 14.0946 23.8754 16.0005C24.9393 17.0591 25.5357 18.4993 25.5315 20.0001ZM28.6361 12.4394C28.9972 11.5679 29.8478 10.9998 30.7911 11C32.0782 11.0016 33.1212 12.0445 33.1227 13.3316C33.1229 14.275 32.5548 15.1255 31.6833 15.4867C30.8118 15.8478 29.8086 15.6483 29.1415 14.9812C28.4745 14.3142 28.275 13.3109 28.6361 12.4394Z" fill=white></path></mask><g mask=url(#mask0)><path fill-rule=evenodd clip-rule=evenodd d="M10 8H34V32H10V8Z" fill=white></path></g></svg></a></div><div class="orm-ff-LogoView-root orm-ff-Navigation-logoView orm-ff-LogoView-collapsedNav"><div class="orm-ff-LogoView-container orm-ff-LogoView-collapsedNav"><div class="orm-ff-LogoView-logoWrapper orm-ff-LogoView-collapsedNav" data-testid=nav-logo><a href=https://learning.oreilly.com/ class="orm-Logo-logoWrapper orm-ff-LogoView-ormLogoWrapper orm-ff-LogoView-collapsedLogo"><span class="orm-Logo-root orm-ff-LogoView-ormLogoRoot orm-ff-LogoView-collapsedLogo orm-Logo-small">
|
|||
|
<svg width=148 height=26 viewBox="0 0 148 26" xmlns=http://www.w3.org/2000/svg>
|
|||
|
<g fill=#FFF fill-rule=evenodd>
|
|||
|
<path d="M70.46 5.45V1.641H54.516v22.864h15.946v-3.812H58.337v-5.71h11.54v-3.81h-11.54V5.45h12.124M82.291 24.502V1.642h3.825v19.05h11.032v3.81H82.29M100.262 24.502V1.642h3.822v19.05h11.031v3.81h-14.853M74.475 24.502h3.818V1.638h-3.818zM6.773 7.446a8.09 8.09 0 0 0-2.38 5.73c0 2.242.91 4.25 2.38 5.723a8.085 8.085 0 0 0 5.745 2.379 8.074 8.074 0 0 0 5.746-2.38 8.036 8.036 0 0 0 2.377-5.723 8.074 8.074 0 0 0-2.377-5.73 8.114 8.114 0 0 0-5.746-2.362c-2.25 0-4.265.9-5.745 2.363M.57 13.176c0-6.579 5.347-11.902 11.947-11.909 6.6.007 11.948 5.33 11.948 11.909 0 6.577-5.348 11.908-11.948 11.908-6.6 0-11.947-5.33-11.947-11.909M36.284 11.17V5.45h7.705a2.868 2.868 0 0 1 2.866 2.86 2.875 2.875 0 0 1-2.866 2.86h-7.705zm9.62 3.527c2.761-.83 4.77-3.367 4.776-6.387a6.686 6.686 0 0 0-6.69-6.669H32.458v22.86h3.825v-9.519h5.331l5.762 9.52h4.461l-5.935-9.805zM29.752 4.075a2.81 2.81 0 0 1-2.814 2.805 2.808 2.808 0 0 1-2.814-2.804 2.81 2.81 0 0 1 2.814-2.808 2.813 2.813 0 0 1 2.814 2.808M132.163 1.641h-4.647l-5.886 8.49-5.885-8.49h-4.647l8.615 12.438v10.426h3.825V14.089l8.625-12.448M141.675 11.612c-2.791 0-5.048-2.255-5.048-5.027a5.043 5.043 0 0 1 5.048-5.041 5.049 5.049 0 0 1 5.045 5.04c0 2.773-2.267 5.028-5.045 5.028m0-11.017c-3.313 0-6.01 2.675-6.01 5.99 0 3.298 2.697 5.983 6.01 5.983 3.316 0 6.003-2.685 6.003-5.983a5.992 5.992 0 0 0-6.003-5.99"></path>
|
|||
|
<path d="M140.224 4.498h2.364c.424 0 .76.345.763.77a.76.76 0 0 1-.763.754h-2.364V4.498zm4.148.77c0-.994-.8-1.79-1.784-1.79H139.2v6.11h1.024V7.049h1.709l1.229 2.538h1.138l-1.262-2.6a1.77 1.77 0 0 0 1.334-1.719z"></path>
|
|||
|
</g>
|
|||
|
</svg></span><span class=orm-Logo-logoTitle>O'Reilly</span></a></div></div></div><div class=orm-ff-Navigation-primaryNav__wrapper><div class=orm-ff-NavigationView-root><div class="orm-ff-NavigationView-container orm-ff-NavigationView-collapsedNav"><div class=orm-ff-NavigationView-headerMenu><div class=orm-ff-NavigationView-headerControls><nav aria-label=Primary><ul class=orm-ff-NavigationView-headerList data-testid=primaryHeaderMenuItems><li class=orm-ff-NavigationView-headerListItem><a href=https://learning.oreilly.com/home/ class="orm-Link-root orm-Link-hasIcon"><span class="orm-Icon-root orm-Link-icon orm-ff-NavigationView-linkIcon" aria-hidden=true style=height:1rem data-testid=icon><span style=font-size:1rem;width:1rem;height:1rem class="orm-Icon-icon orm-icon-home" aria-hidden=true></span><span class=orm-Icon-title>home</span></span>Home</a><li class=orm-ff-NavigationView-toggleControls><button aria-expanded=false class="orm-Button-root orm-ToggleLinks-root orm-Button-small"><span class="orm-Button-btnContentWrap orm-ToggleLinks-btnContentWrap"><span class=orm-ToggleLinks-iconContentWrap><span class="orm-Icon-root orm-ToggleLinks-extraIcon orm-ToggleLinks-showHideIcon" aria-hidden=true style=height:1rem data-testid=icon><span style=font-size:1rem;width:1rem;height:1rem class="orm-Icon-icon orm-icon-person" aria-hidden=true></span><span class=orm-Icon-title>person</span></span>Your O'Reilly</span><span class=orm-Icon-root aria-hidden=true style=height:1rem data-testid=icon><span style=font-size:1rem;width:1rem;height:1rem class="orm-Icon-icon orm-Button-icon orm-ToggleLinks-toggleIcon orm-icon-chevron-down" aria-hidden=true></span><span class=orm-Icon-title>chevron down</span></span></span></button><ul class=orm-ToggleLinks-toggleList><li class=orm-ff-NavigationView-toggleListItem><a href=https://learning.oreilly.com/profile/ class=orm-Link-root><span class=orm-ff-NavigationView-toggleListLabel>Profile</span></a><li class=orm-ff-NavigationView-toggleListItem><a href=https://learning.oreilly.com/history/ class=orm-Link-root><span class=orm-ff-NavigationView-toggleListLabel>History</span></a><li class=orm-ff-NavigationView-toggleListItem><a href=https://learning.oreilly.com/playlists/ class=orm-Link-root><span class=orm-ff-NavigationView-toggleListLabel>Playlists</span></a><li class=orm-ff-NavigationView-toggleListItem><a href=https://learning.oreilly.com/u/df548b90-632b-4f02-aeed-c8a0e13a6eb7/ class=orm-Link-root><span class=orm-ff-NavigationView-toggleListLabel>Highlights</span></a></ul><li class=orm-ff-NavigationView-headerListItem><a href=https://learning.oreilly.com/answers/ class="orm-Link-root orm-Link-hasIcon"><span class="orm-Icon-root orm-Link-icon orm-ff-NavigationView-linkIcon" aria-hidden=true style=height:1rem data-testid=icon><span style=font-size:1rem;width:1rem;height:1rem class="orm-Icon-icon orm-icon-answers" aria-hidden=true></span><span class=orm-Icon-title>answers</span></span>Answers</a><li class=orm-ff-NavigationView-toggleControls><button aria-expanded=false class="orm-Button-root orm-ToggleLinks-root orm-Button-small"><span class="orm-Button-btnContentWrap orm-ToggleLinks-btnContentWrap"><span class=orm-ToggleLinks-iconContentWrap><span class="orm-Icon-root orm-ToggleLinks-extraIcon orm-ToggleLinks-showHideIcon" aria-hidden=true style=height:1rem data-testid=icon><span style=font-size:1rem;width:1rem;height:1rem class="orm-Icon-icon orm-icon-queue" aria-hidden=true></span><span class=orm-Icon-title>queue</span></span>Explore</span><span class=orm-Icon-root aria-hidden=true style=height:1rem data-testid=icon><span style=font-size:1rem;width:1rem;height:1rem class="orm-Icon-icon orm-Button-icon orm-ToggleLinks-toggleIcon orm-icon-chevron-down" aria-hidden=true></span><span class=orm-Icon-title>chevron down</span></span></span></button><ul class=orm-ToggleLinks-toggleList><li class=orm-ff-NavigationView-toggleListItem><a href=https://learning.oreilly.com/topics/ class=orm-Link-root><span class=orm-ff-NavigationView-toggleListLabel>All Topics</span></a><li class=orm-ff-NavigationView-toggleListI
|
|||
|
</span>updated for dotnet pack support</p></div></figcaption></figure></div><p class=Para id=Par11>You can commit and push the code to a GitHub repo and add the workflow to the repo to build and package the code as a NuGet package, which can be used by other projects.<div class=Para id=Par12>First, let’s add a workflow that runs on a push and a job running on the ubutnu-latest runner.<div class=ProgramCode id=PC4><div class=LineGroup><div class=FixedLine>on: [push]</div></div><div class=LineGroup><div class=FixedLine>jobs:</div><div class=FixedLine> dotnetpack_nugetpush_job:</div><div class=FixedLine> runs-on: ubuntu-latest</div></div></div></div><div class=Para id=Par13>Next, you need to set up variables in the workflow job to be used in the <span id=ITerm8>job steps</span>.<div class=ProgramCode id=PC5><div class=LineGroup><div class=FixedLine>env:</div><div class=FixedLine> projectpath: ./nugetdemo/mydotnetpacknugetpkg/mydotnetpacknugetpkg.csproj</div><div class=FixedLine> buildconfiguration: release</div><div class=FixedLine> outputpath: mypkgout</div><div class=FixedLine> runid: ${{github.run_id}}</div><div class=FixedLine> githubtoken: ${{ secrets.GITHUB_TOKEN }}</div><div class=FixedLine> githubnugetpackageregistry: https://nuget.pkg.github.com/yourgithubaccountororg/index.json</div></div></div></div><p class=Para id=Par14>The csproj project path is used to build, publish, and package steps. The build configuration is for configuration in building and packaging a NuGet package. The output path folder is the place where the build creates the NuGet package, which can be later used to locate the package in an action for uploading the package to the registry. The GitHub workflow run ID is the package version suffix.<p class=Para id=Par15>You can use the run ID in the build step to ensure that the project’s assemlyinfo is updated with the same version number as the NuGet package. This ensures that the DLL files in the NuGet package have the same version number. A GitHub token secret authenticates pushing the package to the repository. The URL is kept in another variable. These variables should be defined at the job level. Get information from default environment variables such as a GitHub token or a workflow run ID since run command lines in action steps may not evaluate them as expected. However, by using job environment variables, you can apply values in steps as expected.<div class=Para id=Par16>The first step is to check out the <span id=ITerm9>repo</span>.<div class=ProgramCode id=PC6><div class=LineGroup><div class=FixedLine>steps:</div><div class=FixedLine> - uses: actions/checkout@v2.3.4</div></div></div></div><div class=Para id=Par17>Then you need to set up the .NET framework SDK.<div class=ProgramCode id=PC7><div class=LineGroup><div class=FixedLine>- name: Setup .NET Core SDK</div><div class=FixedLine> uses: actions/setup-dotnet@v1.7.2</div><div class=FixedLine> with:</div><div class=FixedLine> dotnet-version: '5.0.101'</div></div></div></div><div class=Para id=Par18>Next, restore packages and execute the build step. The project path is set via a variable. A version suffix is applied to the assemblies with the workflow <span id=ITerm10>run</span> ID.<div class=ProgramCode id=PC8><div class=LineGroup><div class=FixedLine>- name: Restore with dotnet</div><div class=FixedLine> run: dotnet restore ${projectpath}</div></div><div class=LineGroup><div class=FixedLine>- name: Build with dotnet</div><div class=FixedLine> run: dotnet build ${projectpath} --configuration ${buildconfiguration} --version-suffix ${runid} --no-restore</div></div></div></div><div class=Para id=Par19>In the next step, the NuGet package is created using <span cla
|
|||
|
</span>You need to set up a personal access token to access GitHub Packages. Go to Developer settings and create a personal access token (see Figure <span class=InternalRef><a href=#Fig11>7-11</a></span>).<figure class=Figure id=Fig11><div class=MediaObject id=MO11><img alt=../images/502534_1_En_7_Chapter/502534_1_En_7_Fig11_HTML.jpg src=data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD//gAuSGFuZG1hZGUgU29mdHdhcmUsIEluYy4gSW1hZ2UgQWxjaGVteSB2MS4xMwr/7RTiUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABAuYCZ8zfPhLYAGiFkbWJlAOEJJTQQ6AAAAAADlAAAAEAAAAAEAAAAAAAtwcmludE91dHB1dAAAAAUAAAAAUHN0U2Jvb2wBAAAAAEludGVlbnVtAAAAAEludGUAAAAAQ2xybQAAAA9wcmludFNpeHRlZW5CaXRib29sAAAAAAtwcmludGVyTmFtZVRFWFQAAAABAAAAAAAPcHJpbnRQcm9vZlNldHVwT2JqYwAAAAwAUAByAG8AbwBmACAAUwBlAHQAdQBwAAAAAAAKcHJvb2ZTZXR1cAAAAAEAAAAAQmx0bmVudW0AAAAMYnVpbHRpblByb29mAAAACXByb29mQ01ZSwA4QklNBDsAAAAAAi0AAAAQAAAAAQAAAAAAEnByaW50T3V0cHV0T3B0aW9ucwAAABcAAAAAQ3B0bmJvb2wAAAAAAENsYnJib29sAAAAAABSZ3NNYm9vbAAAAAAAQ3JuQ2Jvb2wAAAAAAENudENib29sAAAAAABMYmxzYm9vbAAAAAAATmd0dmJvb2wAAAAAAEVtbERib29sAAAAAABJbnRyYm9vbAAAAAAAQmNrZ09iamMAAAABAAAAAAAAUkdCQwAAAAMAAAAAUmQgIGRvdWJAb+AAAAAAAAAAAABHcm4gZG91YkBv4AAAAAAAAAAAAEJsICBkb3ViQG/gAAAAAAAAAAAAQnJkVFVudEYjUmx0AAAAAAAAAAAAAAAAQmxkIFVudEYjUmx0AAAAAAAAAAAAAAAAUnNsdFVudEYjUHhsQHXgAAAAAAAAAAAKdmVjdG9yRGF0YWJvb2wBAAAAAFBnUHNlbnVtAAAAAFBnUHMAAAAAUGdQQwAAAABMZWZ0VW50RiNSbHQAAAAAAAAAAAAAAABUb3AgVW50RiNSbHQAAAAAAAAAAAAAAABTY2wgVW50RiNQcmNAWQAAAAAAAAAAABBjcm9wV2hlblByaW50aW5nYm9vbAAAAAAOY3JvcFJlY3RCb3R0b21sb25nAAAAAAAAAAxjcm9wUmVjdExlZnRsb25nAAAAAAAAAA1jcm9wUmVjdFJpZ2h0bG9uZwAAAAAAAAALY3JvcFJlY3RUb3Bsb25nAAAAAAA4QklNA+0AAAAAABABLAAAAAEAAQEsAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAAM1AAAABgAAAAAAAAAAAAADGgAABn8AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAZ/AAADGgAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAADGgAAAABSZ2h0bG9uZwAABn8AAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAAAAdzbGljZUlEbG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0AAAAMRVNsaWNlT3JpZ2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNlVHlwZQAAAABJbWcgAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAxoAAAAAUmdodGxvbmcAAAZ/AAAAA3VybFRFWFQAAAABAAAAAAAAbnVsbFRFWFQAAAABAAAAAAAATXNnZVRFWFQAAAABAAAAAAAGYWx0VGFnVEVYVAAAAAEAAAAAAA5jZWxsVGV4dElzSFRNTGJvb2wBAAAACGNlbGxUZXh0VEVYVAAAAAEAAAAAAAlob3J6QWxpZ25lbnVtAAAAD0VTbGljZUhvcnpBbGlnbgAAAAdkZWZhdWx0AAAACXZlcnRBbGlnbmVudW0AAAAPRVNsaWNlVmVydEFsaWduAAAAB2RlZmF1bHQAAAALYmdDb2xvclR5cGVlbnVtAAAAEUVTbGljZUJHQ29sb3JUeXBlAAAAAE5vbmUAAAAJdG9wT3V0c2V0bG9uZwAAAAAAAAAKbGVmdE91dHNldGxvbmcAAAAAAAAADGJvdHRvbU91dHNldGxvbmcAAAAAAAAAC3JpZ2h0T3V0c2V0bG9uZwAAAAAAOEJJTQQoAAAAAAAMAAAAAj/wAAAAAAAAOEJJTQQUAAAAAAAEAAAAAThCSU0EDAAAAAAMNAAAAAEAAACgAAAATAAAAeAAAI6AAAAMGAAYAAH/2P/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgATACgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8AxulYd3UXN9XL6jZZmZ78GsYuQQ3HgC/7VmMt9R9tb6jfayuv7P8AocHJ/T/6HHrys57i
|
|||
|
</span></div></div></div></div><div class=Para id=Par45>Once you do that, you can execute the following command to add a reference to package available in the GitHub Packages.<div class=ProgramCode id=PC23><div class=LineGroup><div class=FixedLine>dotnet add package packagename --version packageversion</div></div></div></div><div class=Para id=Par46>The following command sets up the package reference to the NuGet package created in the previous section (see Figure <span class=InternalRef><a href=#Fig12>7-12</a></span>).<div class=ProgramCode id=PC24><div class=LineGroup><div class=FixedLine>dotnet add package mynuspecnuget --version 1.0.0-418377990</div></div></div><figure class=Figure id=Fig12><div class=MediaObject id=MO12><img alt=../images/502534_1_En_7_Chapter/502534_1_En_7_Fig12_HTML.jpg src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD//gAuSGFuZG1hZGUgU29mdHdhcmUsIEluYy4gSW1hZ2UgQWxjaGVteSB2MS4xMwr/7R3eUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABA+he/v7cfxZwYLgJ+Qlsu7OEJJTQQ6AAAAAADlAAAAEAAAAAEAAAAAAAtwcmludE91dHB1dAAAAAUAAAAAUHN0U2Jvb2wBAAAAAEludGVlbnVtAAAAAEludGUAAAAAQ2xybQAAAA9wcmludFNpeHRlZW5CaXRib29sAAAAAAtwcmludGVyTmFtZVRFWFQAAAABAAAAAAAPcHJpbnRQcm9vZlNldHVwT2JqYwAAAAwAUAByAG8AbwBmACAAUwBlAHQAdQBwAAAAAAAKcHJvb2ZTZXR1cAAAAAEAAAAAQmx0bmVudW0AAAAMYnVpbHRpblByb29mAAAACXByb29mQ01ZSwA4QklNBDsAAAAAAi0AAAAQAAAAAQAAAAAAEnByaW50T3V0cHV0T3B0aW9ucwAAABcAAAAAQ3B0bmJvb2wAAAAAAENsYnJib29sAAAAAABSZ3NNYm9vbAAAAAAAQ3JuQ2Jvb2wAAAAAAENudENib29sAAAAAABMYmxzYm9vbAAAAAAATmd0dmJvb2wAAAAAAEVtbERib29sAAAAAABJbnRyYm9vbAAAAAAAQmNrZ09iamMAAAABAAAAAAAAUkdCQwAAAAMAAAAAUmQgIGRvdWJAb+AAAAAAAAAAAABHcm4gZG91YkBv4AAAAAAAAAAAAEJsICBkb3ViQG/gAAAAAAAAAAAAQnJkVFVudEYjUmx0AAAAAAAAAAAAAAAAQmxkIFVudEYjUmx0AAAAAAAAAAAAAAAAUnNsdFVudEYjUHhsQHXgAAAAAAAAAAAKdmVjdG9yRGF0YWJvb2wBAAAAAFBnUHNlbnVtAAAAAFBnUHMAAAAAUGdQQwAAAABMZWZ0VW50RiNSbHQAAAAAAAAAAAAAAABUb3AgVW50RiNSbHQAAAAAAAAAAAAAAABTY2wgVW50RiNQcmNAWQAAAAAAAAAAABBjcm9wV2hlblByaW50aW5nYm9vbAAAAAAOY3JvcFJlY3RCb3R0b21sb25nAAAAAAAAAAxjcm9wUmVjdExlZnRsb25nAAAAAAAAAA1jcm9wUmVjdFJpZ2h0bG9uZwAAAAAAAAALY3JvcFJlY3RUb3Bsb25nAAAAAAA4QklNA+0AAAAAABABLAAAAAEAAQEsAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNA/IAAAAAAAoAAP///////wAAOEJJTQQNAAAAAAAEAAAAeDhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAAAAEAOEJJTScQAAAAAAAKAAEAAAAAAAAAAjhCSU0D9QAAAAAASAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAAAQAyAAAAAQBaAAAABgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThCSU0D+AAAAAAAcAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAA4QklNBAgAAAAAABAAAAABAAACQAAAAkAAAAAAOEJJTQQeAAAAAAAEAAAAADhCSU0EGgAAAAADNQAAAAYAAAAAAAAAAAAAA5IAAAZ/AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAGfwAAA5IAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAA5IAAAAAUmdodGxvbmcAAAZ/AAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25nAAAAAAAAAAZvcmlnaW5lbnVtAAAADEVTbGljZU9yaWdpbgAAAA1hdXRvR2VuZXJhdGVkAAAAAFR5cGVlbnVtAAAACkVTbGljZVR5cGUAAAAASW1nIAAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAOSAAAAAFJnaHRsb25nAAAGfwAAAAN1cmxURVhUAAAAAQAAAAAAAG51bGxURVhUAAAAAQAAAAAAAE1zZ2VURVhUAAAAAQAAAAAABmFsdFRhZ1RFWFQAAAABAAAAAAAOY2VsbFRleHRJc0hUTUxib29sAQAAAAhjZWxsVGV4dFRFWFQAAAABAAAAAAAJaG9yekFsaWduZW51bQAAAA9FU2xpY2VIb3J6QWxpZ24AAAAHZGVmYXVsdAAAAAl2ZXJ0QWxpZ25lbnVtAAAAD0VTbGljZVZlcnRBbGlnbgAAAAdkZWZhdWx0AAAAC2JnQ29sb3JUeXBlZW51bQAAABFFU2xpY2VCR0NvbG9yVHlwZQAAAABOb25lAAAACXRvcE91dHNldGxvbmcAAAAAAAAACmxlZnRPdXRzZXRsb25nAAAAAAAAAAxib3R0b21PdXRzZXRsb25nAAAAAAAAAAtyaWdodE91dHNldGxvbmcAAAAAADhCSU0EKAAAAAAADAAAAAI/8AAAAAAAADhCSU0EFAAAAAAABAAAAAE4QklNBAwAAAAAFRoAAAABAAAAoAAAAFgAAAHgAAClAAAAFP4AGAAB/9j/7QAMQWRvYmVfQ00AAf/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAFgAoAMBIgACEQEDEQH/3QAEAAr/xAE/AAABBQEBAQ
|
|||
|
</span></div><div class=FixedLine> Console.WriteLine("Hello World!");</div><div class=FixedLine> Console.WriteLine(new DemoPackageNuspec().HelloWorldNugetDemo());</div><div class=FixedLine> Console.ReadLine();</div><div class=FixedLine> }</div><div class=FixedLine> }</div><div class=FixedLine>}</div></div></div><figure class=Figure id=Fig14><div class=MediaObject id=MO15><img alt=../images/502534_1_En_7_Chapter/502534_1_En_7_Fig14_HTML.jpg src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD//gAuSGFuZG1hZGUgU29mdHdhcmUsIEluYy4gSW1hZ2UgQWxjaGVteSB2MS4xMwr/7RTSUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABA+he/v7cfxZwYLgJ+Qlsu7OEJJTQQ6AAAAAADlAAAAEAAAAAEAAAAAAAtwcmludE91dHB1dAAAAAUAAAAAUHN0U2Jvb2wBAAAAAEludGVlbnVtAAAAAEludGUAAAAAQ2xybQAAAA9wcmludFNpeHRlZW5CaXRib29sAAAAAAtwcmludGVyTmFtZVRFWFQAAAABAAAAAAAPcHJpbnRQcm9vZlNldHVwT2JqYwAAAAwAUAByAG8AbwBmACAAUwBlAHQAdQBwAAAAAAAKcHJvb2ZTZXR1cAAAAAEAAAAAQmx0bmVudW0AAAAMYnVpbHRpblByb29mAAAACXByb29mQ01ZSwA4QklNBDsAAAAAAi0AAAAQAAAAAQAAAAAAEnByaW50T3V0cHV0T3B0aW9ucwAAABcAAAAAQ3B0bmJvb2wAAAAAAENsYnJib29sAAAAAABSZ3NNYm9vbAAAAAAAQ3JuQ2Jvb2wAAAAAAENudENib29sAAAAAABMYmxzYm9vbAAAAAAATmd0dmJvb2wAAAAAAEVtbERib29sAAAAAABJbnRyYm9vbAAAAAAAQmNrZ09iamMAAAABAAAAAAAAUkdCQwAAAAMAAAAAUmQgIGRvdWJAb+AAAAAAAAAAAABHcm4gZG91YkBv4AAAAAAAAAAAAEJsICBkb3ViQG/gAAAAAAAAAAAAQnJkVFVudEYjUmx0AAAAAAAAAAAAAAAAQmxkIFVudEYjUmx0AAAAAAAAAAAAAAAAUnNsdFVudEYjUHhsQHXgAAAAAAAAAAAKdmVjdG9yRGF0YWJvb2wBAAAAAFBnUHNlbnVtAAAAAFBnUHMAAAAAUGdQQwAAAABMZWZ0VW50RiNSbHQAAAAAAAAAAAAAAABUb3AgVW50RiNSbHQAAAAAAAAAAAAAAABTY2wgVW50RiNQcmNAWQAAAAAAAAAAABBjcm9wV2hlblByaW50aW5nYm9vbAAAAAAOY3JvcFJlY3RCb3R0b21sb25nAAAAAAAAAAxjcm9wUmVjdExlZnRsb25nAAAAAAAAAA1jcm9wUmVjdFJpZ2h0bG9uZwAAAAAAAAALY3JvcFJlY3RUb3Bsb25nAAAAAAA4QklNA+0AAAAAABABLAAAAAEAAQEsAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNA/IAAAAAAAoAAP///////wAAOEJJTQQNAAAAAAAEAAAAeDhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAAAAEAOEJJTScQAAAAAAAKAAEAAAAAAAAAAjhCSU0D9QAAAAAASAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAAAQAyAAAAAQBaAAAABgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThCSU0D+AAAAAAAcAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAA4QklNBAgAAAAAABAAAAABAAACQAAAAkAAAAAAOEJJTQQeAAAAAAAEAAAAADhCSU0EGgAAAAADNQAAAAYAAAAAAAAAAAAAA68AAAZ/AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAGfwAAA68AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAA68AAAAAUmdodGxvbmcAAAZ/AAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25nAAAAAAAAAAZvcmlnaW5lbnVtAAAADEVTbGljZU9yaWdpbgAAAA1hdXRvR2VuZXJhdGVkAAAAAFR5cGVlbnVtAAAACkVTbGljZVR5cGUAAAAASW1nIAAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAOvAAAAAFJnaHRsb25nAAAGfwAAAAN1cmxURVhUAAAAAQAAAAAAAG51bGxURVhUAAAAAQAAAAAAAE1zZ2VURVhUAAAAAQAAAAAABmFsdFRhZ1RFWFQAAAABAAAAAAAOY2VsbFRleHRJc0hUTUxib29sAQAAAAhjZWxsVGV4dFRFWFQAAAABAAAAAAAJaG9yekFsaWduZW51bQAAAA9FU2xpY2VIb3J6QWxpZ24AAAAHZGVmYXVsdAAAAAl2ZXJ0QWxpZ25lbnVtAAAAD0VTbGljZVZlcnRBbGlnbgAAAAdkZWZhdWx0AAAAC2JnQ29sb3JUeXBlZW51bQAAABFFU2xpY2VCR0NvbG9yVHlwZQAAAABOb25lAAAACXRvcE91dHNldGxvbmcAAAAAAAAACmxlZnRPdXRzZXRsb25nAAAAAAAAAAxib3R0b21PdXRzZXRsb25nAAAAAAAAAAtyaWdodE91dHNldGxvbmcAAAAAADhCSU0EKAAAAAAADAAAAAI/8AAAAAAAADhCSU0EFAAAAAAABAAAAAE4QklNBAwAAAAADA4AAAABAAAAoAAAAFsAAAHgAACqoAAAC/IAGAAB/9j/7QAMQWRvYmVfQ00AAf/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAFsAoAMBIgACEQEDEQH/3QAEAAr/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIE
|
|||
|
</span><figure class=Figure id=Fig15><div class=MediaObject id=MO16><img alt=../images/502534_1_En_7_Chapter/502534_1_En_7_Fig15_HTML.jpg src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD//gAuSGFuZG1hZGUgU29mdHdhcmUsIEluYy4gSW1hZ2UgQWxjaGVteSB2MS4xMwr/7RKiUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABA+he/v7cfxZwYLgJ+Qlsu7OEJJTQQ6AAAAAADlAAAAEAAAAAEAAAAAAAtwcmludE91dHB1dAAAAAUAAAAAUHN0U2Jvb2wBAAAAAEludGVlbnVtAAAAAEludGUAAAAAQ2xybQAAAA9wcmludFNpeHRlZW5CaXRib29sAAAAAAtwcmludGVyTmFtZVRFWFQAAAABAAAAAAAPcHJpbnRQcm9vZlNldHVwT2JqYwAAAAwAUAByAG8AbwBmACAAUwBlAHQAdQBwAAAAAAAKcHJvb2ZTZXR1cAAAAAEAAAAAQmx0bmVudW0AAAAMYnVpbHRpblByb29mAAAACXByb29mQ01ZSwA4QklNBDsAAAAAAi0AAAAQAAAAAQAAAAAAEnByaW50T3V0cHV0T3B0aW9ucwAAABcAAAAAQ3B0bmJvb2wAAAAAAENsYnJib29sAAAAAABSZ3NNYm9vbAAAAAAAQ3JuQ2Jvb2wAAAAAAENudENib29sAAAAAABMYmxzYm9vbAAAAAAATmd0dmJvb2wAAAAAAEVtbERib29sAAAAAABJbnRyYm9vbAAAAAAAQmNrZ09iamMAAAABAAAAAAAAUkdCQwAAAAMAAAAAUmQgIGRvdWJAb+AAAAAAAAAAAABHcm4gZG91YkBv4AAAAAAAAAAAAEJsICBkb3ViQG/gAAAAAAAAAAAAQnJkVFVudEYjUmx0AAAAAAAAAAAAAAAAQmxkIFVudEYjUmx0AAAAAAAAAAAAAAAAUnNsdFVudEYjUHhsQHXgAAAAAAAAAAAKdmVjdG9yRGF0YWJvb2wBAAAAAFBnUHNlbnVtAAAAAFBnUHMAAAAAUGdQQwAAAABMZWZ0VW50RiNSbHQAAAAAAAAAAAAAAABUb3AgVW50RiNSbHQAAAAAAAAAAAAAAABTY2wgVW50RiNQcmNAWQAAAAAAAAAAABBjcm9wV2hlblByaW50aW5nYm9vbAAAAAAOY3JvcFJlY3RCb3R0b21sb25nAAAAAAAAAAxjcm9wUmVjdExlZnRsb25nAAAAAAAAAA1jcm9wUmVjdFJpZ2h0bG9uZwAAAAAAAAALY3JvcFJlY3RUb3Bsb25nAAAAAAA4QklNA+0AAAAAABABLAAAAAEAAQEsAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNA/IAAAAAAAoAAP///////wAAOEJJTQQNAAAAAAAEAAAAeDhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAAAAEAOEJJTScQAAAAAAAKAAEAAAAAAAAAAjhCSU0D9QAAAAAASAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAAAQAyAAAAAQBaAAAABgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThCSU0D+AAAAAAAcAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAA4QklNBAgAAAAAABAAAAABAAACQAAAAkAAAAAAOEJJTQQeAAAAAAAEAAAAADhCSU0EGgAAAAADNQAAAAYAAAAAAAAAAAAAAYMAAAZ9AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAGfQAAAYMAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAYMAAAAAUmdodGxvbmcAAAZ9AAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25nAAAAAAAAAAZvcmlnaW5lbnVtAAAADEVTbGljZU9yaWdpbgAAAA1hdXRvR2VuZXJhdGVkAAAAAFR5cGVlbnVtAAAACkVTbGljZVR5cGUAAAAASW1nIAAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAGDAAAAAFJnaHRsb25nAAAGfQAAAAN1cmxURVhUAAAAAQAAAAAAAG51bGxURVhUAAAAAQAAAAAAAE1zZ2VURVhUAAAAAQAAAAAABmFsdFRhZ1RFWFQAAAABAAAAAAAOY2VsbFRleHRJc0hUTUxib29sAQAAAAhjZWxsVGV4dFRFWFQAAAABAAAAAAAJaG9yekFsaWduZW51bQAAAA9FU2xpY2VIb3J6QWxpZ24AAAAHZGVmYXVsdAAAAAl2ZXJ0QWxpZ25lbnVtAAAAD0VTbGljZVZlcnRBbGlnbgAAAAdkZWZhdWx0AAAAC2JnQ29sb3JUeXBlZW51bQAAABFFU2xpY2VCR0NvbG9yVHlwZQAAAABOb25lAAAACXRvcE91dHNldGxvbmcAAAAAAAAACmxlZnRPdXRzZXRsb25nAAAAAAAAAAxib3R0b21PdXRzZXRsb25nAAAAAAAAAAtyaWdodE91dHNldGxvbmcAAAAAADhCSU0EKAAAAAAADAAAAAI/8AAAAAAAADhCSU0EFAAAAAAABAAAAAE4QklNBAwAAAAACd4AAAABAAAAoAAAACUAAAHgAABFYAAACcIAGAAB/9j/7QAMQWRvYmVfQ00AAf/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIACUAoAMBIgACEQEDEQH/3QAEAAr/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/AOFxv2e9pOVlvocDADW7wRHtPP7yL6XR+B1R0+dLwCfvO1v7y9mGB06m5lFXSKBS8tm2umoNDn7gf0ba/ds2N9R6d2PhNY5/7KrJa5wDBSzcYLmscP0X+Ec1n0N/6O31Pekp8NqfU5wF1prZGrm+4z8JajRgxpmHnjaRpH0v6278xexOwejg7T9XanO9xLm4lJZAJDX+o6tjttn0v5r1f+CTnA6PvDB9XqvdoHHEpDZJh
|
|||
|
|