2024-12-24 20:19:41 +07:00
< ! DOCTYPE html >
< html
lang = " en "
data-color -mode = " auto " data-light -theme = " light " data-dark -theme = " dark "
data-a11y -animated -images = " system " data-a11y -link -underlines = " true "
>
< head >
< meta charset = " utf-8 " >
< link rel = " dns-prefetch " href = " https://github.githubassets.com " >
< link rel = " dns-prefetch " href = " https://avatars.githubusercontent.com " >
< link rel = " dns-prefetch " href = " https://github-cloud.s3.amazonaws.com " >
< link rel = " dns-prefetch " href = " https://user-images.githubusercontent.com/ " >
< link rel = " preconnect " href = " https://github.githubassets.com " crossorigin >
< link rel = " preconnect " href = " https://avatars.githubusercontent.com " >
< link crossorigin = " anonymous " media = " all " rel = " stylesheet " href = " https://github.githubassets.com/assets/light-0cfd1fd8509e.css " / > < link crossorigin = " anonymous " media = " all " rel = " stylesheet " href = " https://github.githubassets.com/assets/dark-d782f59290e2.css " / > < link data-color -theme = " dark_dimmed " crossorigin = " anonymous " media = " all " rel = " stylesheet " data-href = " https://github.githubassets.com/assets/dark_dimmed-f9fbc4b99a77.css " / > < link data-color -theme = " dark_high_contrast " crossorigin = " anonymous " media = " all " rel = " stylesheet " data-href = " https://github.githubassets.com/assets/dark_high_contrast-cff1c9b27b1a.css " / > < link data-color -theme = " dark_colorblind " crossorigin = " anonymous " media = " all " rel = " stylesheet " data-href = " https://github.githubassets.com/assets/dark_colorblind-70097f75aec1.css " / > < link data-color -theme = " light_colorblind " crossorigin = " anonymous " media = " all " rel = " stylesheet " data-href = " https://github.githubassets.com/assets/light_colorblind-c2f0d49bdcd9.css " / > < link data-color -theme = " light_high_contrast " crossorigin = " anonymous " media = " all " rel = " stylesheet " data-href = " https://github.githubassets.com/assets/light_high_contrast-4747d7bc0bc4.css " / > < link data-color -theme = " light_tritanopia " crossorigin = " anonymous " media = " all " rel = " stylesheet " data-href = " https://github.githubassets.com/assets/light_tritanopia-d3f6a61c91c8.css " / > < link data-color -theme = " dark_tritanopia " crossorigin = " anonymous " media = " all " rel = " stylesheet " data-href = " https://github.githubassets.com/assets/dark_tritanopia-a188d53f44bb.css " / >
< link crossorigin = " anonymous " media = " all " rel = " stylesheet " href = " https://github.githubassets.com/assets/primer-primitives-953961b66e63.css " / >
< link crossorigin = " anonymous " media = " all " rel = " stylesheet " href = " https://github.githubassets.com/assets/primer-4430d3c2c150.css " / >
< link crossorigin = " anonymous " media = " all " rel = " stylesheet " href = " https://github.githubassets.com/assets/global-47b8b2ca21ae.css " / >
< link crossorigin = " anonymous " media = " all " rel = " stylesheet " href = " https://github.githubassets.com/assets/github-e72829f5538b.css " / >
< link crossorigin = " anonymous " media = " all " rel = " stylesheet " href = " https://github.githubassets.com/assets/repository-d031bcc14e1b.css " / >
< link crossorigin = " anonymous " media = " all " rel = " stylesheet " href = " https://github.githubassets.com/assets/code-9e1913b328be.css " / >
< script type = " application/json " id = " client-env " > { " locale " : " en " , " featureFlags " : [ " alive_longer_retries " , " bypass_copilot_indexing_quota " , " copilot_new_references_ui " , " copilot_beta_features_opt_in " , " copilot_chat_retry_on_error " , " copilot_chat_persist_submitted_input " , " copilot_conversational_ux_history_refs " , " copilot_editor_upsells " , " copilot_free_limited_user " , " copilot_implicit_context " , " copilot_no_floating_button " , " copilot_smell_icebreaker_ux " , " experimentation_azure_variant_endpoint " , " failbot_handle_non_errors " , " geojson_azure_maps " , " ghost_pilot_confidence_truncation_25 " , " ghost_pilot_confidence_truncation_40 " , " hovercard_accessibility " , " issues_react_new_timeline " , " issues_react_avatar_refactor " , " issues_react_remove_placeholders " , " issues_react_blur_item_picker_on_close " , " issues_react_use_react_router_in_index " , " marketing_pages_search_explore_provider " , " react_keyboard_shortcuts_dialog " , " remove_child_patch " , " sample_network_conn_type " , " site_metered_billing_update " , " site_copilot_free " , " lifecycle_label_name_updates " ] } < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/wp-runtime-8fd927947b24.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover_js-9da652f58479.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_github_arianotify-polyfill_ariaNotify-polyfill_js-node_modules_github_mi-3abb8f-d7e6bc799724.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/ui_packages_failbot_failbot_ts-c551691a8183.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/environment-7b93e0f0c8ff.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_primer_behaviors_dist_esm_index_mjs-ea2a5d75d580.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_github_selector-observer_dist_index_esm_js-f690fd9ae3d5.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_github_relative-time-element_dist_index_js-f6da4b3fa34c.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_github_auto-complete-element_dist_index_js-node_modules_github_catalyst_-8e9f78-a74b4e0a8a6b.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_github_text-expander-element_dist_index_js-78748950cb0c.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_remote-inp-b5f1d7-a1760ffda83d.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_github_markdown-toolbar-element_dist_index_js-ceef33f593fa.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_primer_view-co-c44a69-c6d035fa8dc8.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/github-elements-f991cfab5105.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/element-registry-d283cbab281e.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_braintree_browser-detection_dist_browser-detection_js-node_modules_githu-bb80ec-7f43298e364b.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-be8cb88f481b.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_morphdom_dist_morphdom-e-7c534c-a4a1922eb55f.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_github_turbo_dist_turbo_es2017-esm_js-e3cbe28f1638.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-893f9f-6cf3320416b8.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_color-convert_index_js-e3180fe3bcb3.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_github_quote-selection_dist_index_js-node_modules_github_session-resume_-69cfcc-833249ee3034.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/ui_packages_updatable-content_updatable-content_ts-863ef5872a03.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/app_assets_modules_github_behaviors_task-list_ts-app_assets_modules_github_sso_ts-ui_packages-900dde-917d4bda1f1a.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/app_assets_modules_github_sticky-scroll-into-view_ts-7cbef09a422c.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/app_assets_modules_github_behaviors_ajax-error_ts-app_assets_modules_github_behaviors_include-d0d0a6-b41aeef03499.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/app_assets_modules_github_behaviors_commenting_edit_ts-app_assets_modules_github_behaviors_ht-83c235-fb43816ab83c.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/behaviors-a6abce982f3f.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_catalyst_lib_index_js-f6223d90c7ba.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/notifications-global-cfcd9f4f0f23.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_github_catalyst_lib_inde-dbbea9-26cce2010167.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/code-menu-b5f092ec4b30.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/primer-react-753dc87b1e29.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/react-core-accb67f1350f.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/react-lib-2131e17288a8.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/octicons-react-45c3a19dd792.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_tanstack_query-core_build_modern_queryClient_js-e6f07a7e80b7.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_emotion_is-prop-valid_dist_emotion-is-prop-valid_esm_js-node_modules_emo-37e3d5-92730c05e718.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_stacktrace-parser_dist_s-e7dcdd-f7cc96ebae76.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover-fn_js-55fea94174bf.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_dompurify_dist_purify_js-b89b98661809.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_lodash-es__Stack_js-node_modules_lodash-es__Uint8Array_js-node_modules_l-4faaa6-10d8eea337ce.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_lodash-es__baseIsEqual_js-8929eb9718d5.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_github_hydro-analytics-client_dist_analytics-client_js-node_modules_gith-9002b0-881da98a8b00.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/ui_packages_aria-live_aria-live_ts-ui_packages_promise-with-resolvers-polyfill_promise-with-r-014121-a7926fdcecf7.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/ui_packages_paths_index_ts-4e4d706da555.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/ui_packages_ref-selector_RefSelector_tsx-9445f4afb2bc.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/ui_packages_code-view-shared_utilities_web-worker_ts-ui_packages_code-view-shared_worker-jobs-cdcae1-f0dc8f3ae3e0.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/ui_packages_code-view-shared_hooks_use-canonical-object_ts-ui_packages_code-view-shared_hooks-503c34-7dfba50d2c16.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/ui_packages_document-metadata_document-metadata_ts-ui_packages_repos-file-tree-view_repos-fil-5db355-d0627efd6544.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/app_assets_modules_github_blob-anchor_ts-ui_packages_code-nav_code-nav_ts-ui_packages_filter--8253c1-f38cdfca9137.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/react-code-view-46a8d3dce54e.js " > < / script >
< link crossorigin = " anonymous " media = " all " rel = " stylesheet " href = " https://github.githubassets.com/assets/primer-react.797c8ec006b327590422.module.css " / >
< link crossorigin = " anonymous " media = " all " rel = " stylesheet " href = " https://github.githubassets.com/assets/react-code-view.6b587a69b593e23c3657.module.css " / >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/primer-react-753dc87b1e29.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/react-core-accb67f1350f.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/react-lib-2131e17288a8.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/octicons-react-45c3a19dd792.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_tanstack_query-core_build_modern_queryClient_js-e6f07a7e80b7.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_emotion_is-prop-valid_dist_emotion-is-prop-valid_esm_js-node_modules_emo-37e3d5-92730c05e718.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_stacktrace-parser_dist_s-e7dcdd-f7cc96ebae76.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover-fn_js-55fea94174bf.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/notifications-subscriptions-menu-51601778bd8d.js " > < / script >
< link crossorigin = " anonymous " media = " all " rel = " stylesheet " href = " https://github.githubassets.com/assets/primer-react.797c8ec006b327590422.module.css " / >
< link crossorigin = " anonymous " media = " all " rel = " stylesheet " href = " https://github.githubassets.com/assets/notifications-subscriptions-menu.1bcff9205c241e99cff2.module.css " / >
< title > install-scripts / src / dotnet-install . ps1 at main · dotnet / install-scripts · GitHub < / title >
< meta name = " route-pattern " content = " /:user_id/:repository/blob/*name(/*path) " data-turbo -transient >
< meta name = " route-controller " content = " blob " data-turbo -transient >
< meta name = " route-action " content = " show " data-turbo -transient >
< meta name = " current-catalog-service-hash " content = " f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb " >
< meta name = " request-id " content = " CB98:20C864:419EFD5:5F0B46C:6769E0A3 " data-pjax -transient = " true " / > < meta name = " html-safe-nonce " content = " 652ee72c9096ef4a814674547d6570a2c030eaa88ba9f4806d47ae8860151dfd " data-pjax -transient = " true " / > < meta name = " visitor-payload " content = " eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDQjk4OjIwQzg2NDo0MTlFRkQ1OjVGMEI0NkM6Njc2OUUwQTMiLCJ2aXNpdG9yX2lkIjoiNjc5MDkwMjEzMDUyMDgwMjkyIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= " data-pjax -transient = " true " / > < meta name = " visitor-hmac " content = " b9207961fbf38f28ae64be2ff859f046366a4c05b5d3281878c5eb643a256f32 " data-pjax -transient = " true " / >
< meta name = " hovercard-subject-tag " content = " repository:265272737 " data-turbo -transient >
< meta name = " github-keyboard-shortcuts " content = " repository,source-code,file-tree,copilot " data-turbo -transient = " true " / >
< meta name = " selected-link " value = " repo_source " data-turbo -transient >
< link rel = " assets " href = " https://github.githubassets.com/ " >
< meta name = " google-site-verification " content = " Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I " >
< meta name = " octolytics-url " content = " https://collector.github.com/github/collect " / >
< meta name = " analytics-location " content = " /<user-name>/<repo-name>/blob/show " data-turbo -transient = " true " / >
< meta name = " user-login " content = " " >
< meta name = " viewport " content = " width=device-width " >
< meta name = " description " content = " Contribute to dotnet/install-scripts development by creating an account on GitHub. " >
< link rel = " search " type = " application/opensearchdescription+xml " href = " /opensearch.xml " title = " GitHub " >
< link rel = " fluid-icon " href = " https://github.com/fluidicon.png " title = " GitHub " >
< meta property = " fb:app_id " content = " 1401488693436528 " >
< meta name = " apple-itunes-app " content = " app-id=1477376905, app-argument=https://github.com/dotnet/install-scripts/blob/main/src/dotnet-install.ps1 " / >
< meta name = " twitter:image " content = " https://opengraph.githubassets.com/3cff52a1f0d52eaf67a2520004da937ef9c8b434ae6972552ecb92c70b50a870/dotnet/install-scripts " / > < meta name = " twitter:site " content = " @github " / > < meta name = " twitter:card " content = " summary_large_image " / > < meta name = " twitter:title " content = " install-scripts/src/dotnet-install.ps1 at main · dotnet/install-scripts " / > < meta name = " twitter:description " content = " Contribute to dotnet/install-scripts development by creating an account on GitHub. " / >
< meta property = " og:image " content = " https://opengraph.githubassets.com/3cff52a1f0d52eaf67a2520004da937ef9c8b434ae6972552ecb92c70b50a870/dotnet/install-scripts " / > < meta property = " og:image:alt " content = " Contribute to dotnet/install-scripts development by creating an account on GitHub. " / > < meta property = " og:image:width " content = " 1200 " / > < meta property = " og:image:height " content = " 600 " / > < meta property = " og:site_name " content = " GitHub " / > < meta property = " og:type " content = " object " / > < meta property = " og:title " content = " install-scripts/src/dotnet-install.ps1 at main · dotnet/install-scripts " / > < meta property = " og:url " content = " https://github.com/dotnet/install-scripts/blob/main/src/dotnet-install.ps1 " / > < meta property = " og:description " content = " Contribute to dotnet/install-scripts development by creating an account on GitHub. " / >
< meta name = " hostname " content = " github.com " >
< meta name = " expected-hostname " content = " github.com " >
< meta http-equiv = " x-pjax-version " content = " 3c1eadc3d84284d239af1be35a327ecf19b858b907e57785826f9128d6118bc8 " data-turbo -track = " reload " >
< meta http-equiv = " x-pjax-csp-version " content = " ace39c3b6632770952207593607e6e0be0db363435a8b877b1f96abe6430f345 " data-turbo -track = " reload " >
< meta http-equiv = " x-pjax-css-version " content = " 137747501b000c3c7ab6b8b92f1ded64f18d692f67bb1c163ffcea3636000502 " data-turbo -track = " reload " >
< meta http-equiv = " x-pjax-js-version " content = " ebf47e19393f392c675be74b18396aab5d930da7c6b4254d3ba0daab91830199 " data-turbo -track = " reload " >
< meta name = " turbo-cache-control " content = " no-preview " data-turbo -transient = " " >
< meta name = " turbo-cache-control " content = " no-cache " data-turbo -transient >
< meta data-hydrostats = " publish " >
< meta name = " go-import " content = " github.com/dotnet/install-scripts git https://github.com/dotnet/install-scripts.git " >
< meta name = " octolytics-dimension-user_id " content = " 9141961 " / > < meta name = " octolytics-dimension-user_login " content = " dotnet " / > < meta name = " octolytics-dimension-repository_id " content = " 265272737 " / > < meta name = " octolytics-dimension-repository_nwo " content = " dotnet/install-scripts " / > < meta name = " octolytics-dimension-repository_public " content = " true " / > < meta name = " octolytics-dimension-repository_is_fork " content = " false " / > < meta name = " octolytics-dimension-repository_network_root_id " content = " 265272737 " / > < meta name = " octolytics-dimension-repository_network_root_nwo " content = " dotnet/install-scripts " / >
< meta name = " turbo-body-classes " content = " logged-out env-production page-responsive " >
< meta name = " browser-stats-url " content = " https://api.github.com/_private/browser/stats " >
< meta name = " browser-errors-url " content = " https://api.github.com/_private/browser/errors " >
< link rel = " mask-icon " href = " https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg " color = " #000000 " >
< link rel = " alternate icon " class = " js-site-favicon " type = " image/png " href = " https://github.githubassets.com/favicons/favicon.png " >
< link rel = " icon " class = " js-site-favicon " type = " image/svg+xml " href = " https://github.githubassets.com/favicons/favicon.svg " data-base -href = " https://github.githubassets.com/favicons/favicon " >
< meta name = " theme-color " content = " #1e2327 " >
< meta name = " color-scheme " content = " light dark " / >
< link rel = " manifest " href = " /manifest.json " crossOrigin = " use-credentials " >
< / head >
< body class = " logged-out env-production page-responsive " style = " word-wrap: break-word; " >
< div data-turbo -body class = " logged-out env-production page-responsive " style = " word-wrap: break-word; " >
< div class = " position-relative header-wrapper js-header-wrapper " >
< a href = " #start-of-content " data-skip -target -assigned = " false " class = " px-2 py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content " > Skip to content < / a >
< span data-view -component = " true " class = " progress-pjax-loader Progress position-fixed width-full " >
< span style = " width: 0%; " data-view -component = " true " class = " Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis " > < / span >
< / span >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/ui_packages_ui-commands_ui-commands_ts-df3b47d86af0.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/keyboard-shortcuts-dialog-958cae8ecd6c.js " > < / script >
< link crossorigin = " anonymous " media = " all " rel = " stylesheet " href = " https://github.githubassets.com/assets/primer-react.797c8ec006b327590422.module.css " / >
< react-partial
partial-name = " keyboard-shortcuts-dialog "
data-ssr = " false "
data-attempted -ssr = " false "
>
< script type = " application/json " data-target = " react-partial.embeddedData " > { " props " : { " docsUrl " : " https://docs.github.com/get-started/accessibility/keyboard-shortcuts " } } < / script >
< div data-target = " react-partial.reactRoot " > < / div >
< / react-partial >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-94fd67-73b675cf164a.js " > < / script >
< script crossorigin = " anonymous " defer = " defer " type = " application/javascript " src = " https://github.githubassets.com/assets/sessions-5d6426bbf16a.js " > < / script >
< header class = " HeaderMktg header-logged-out js-details-container js-header Details f4 py-3 " role = " banner " data-is -top = " true " data-color -mode = light data-light -theme = light data-dark -theme = dark >
< h2 class = " sr-only " > Navigation Menu < / h2 >
< button type = " button " class = " HeaderMktg-backdrop d-lg-none border-0 position-fixed top-0 left-0 width-full height-full js-details-target " aria-label = " Toggle navigation " >
< span class = " d-none " > Toggle navigation < / span >
< / button >
< div class = " d-flex flex-column flex-lg-row flex-items-center px-3 px-md-4 px-lg-5 height-full position-relative z-1 " >
< div class = " d-flex flex-justify-between flex-items-center width-full width-lg-auto " >
< div class = " flex-1 " >
< button aria-label = " Toggle navigation " aria-expanded = " false " type = " button " data-view -component = " true " class = " js-details-target js-nav-padding-recalculate js-header-menu-toggle Button--link Button--medium Button d-lg-none color-fg-inherit p-1 " > < span class = " Button-content " >
< span class = " Button-label " > < div class = " HeaderMenu-toggle-bar rounded my-1 " > < / div >
< div class = " HeaderMenu-toggle-bar rounded my-1 " > < / div >
< div class = " HeaderMenu-toggle-bar rounded my-1 " > < / div > < / span >
< / span >
< / button >
< / div >
< a class = " mr-lg-3 color-fg-inherit flex-order-2 js-prevent-focus-on-mobile-nav "
href = " / "
aria-label = " Homepage "
data-analytics -event = " {"category":"Marketing nav","action":"click to go to homepage","label":"ref_page:Marketing;ref_cta:Logomark;ref_loc:Header"} " >
< svg height = " 32 " aria-hidden = " true " viewBox = " 0 0 24 24 " version = " 1.1 " width = " 32 " data-view -component = " true " class = " octicon octicon-mark-github " >
< path d = " M12.5.75C6.146.75 1 5.896 1 12.25c0 5.089 3.292 9.387 7.863 10.91.575.101.79-.244.79-.546 0-.273-.014-1.178-.014-2.142-2.889.532-3.636-.704-3.866-1.35-.13-.331-.69-1.352-1.18-1.625-.402-.216-.977-.748-.014-.762.906-.014 1.553.834 1.769 1.179 1.035 1.74 2.688 1.25 3.349.948.1-.747.402-1.25.733-1.538-2.559-.287-5.232-1.279-5.232-5.678 0-1.25.445-2.285 1.178-3.09-.115-.288-.517-1.467.115-3.048 0 0 .963-.302 3.163 1.179.92-.259 1.897-.388 2.875-.388.977 0 1.955.13 2.875.388 2.2-1.495 3.162-1.179 3.162-1.179.633 1.581.23 2.76.115 3.048.733.805 1.179 1.825 1.179 3.09 0 4.413-2.688 5.39-5.247 5.678.417.36.776 1.05.776 2.128 0 1.538-.014 2.774-.014 3.162 0 .302.216.662.79.547C20.709 21.637 24 17.324 24 12.25 24 5.896 18.854.75 12.5.75Z " > < / path >
< / svg >
< / a >
< div class = " flex-1 flex-order-2 text-right " >
< a
href = " /login?return_to=https%3A%2F%2Fgithub.com%2Fdotnet%2Finstall-scripts%2Fblob%2Fmain%2Fsrc%2Fdotnet-install.ps1 "
class = " HeaderMenu-link HeaderMenu-button d-inline-flex d-lg-none flex-order-1 f5 no-underline border color-border-default rounded-2 px-2 py-1 color-fg-inherit js-prevent-focus-on-mobile-nav "
data-hydro -click = " {"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/dotnet/install-scripts/blob/main/src/dotnet-install.ps1","user_id":null}} " data-hydro -click -hmac = " e97026b84124505336ae0889ce35c7163da6acd303c4017a6f7c962f3132765d "
data-analytics -event = " {"category":"Marketing nav","action":"click to Sign in","label":"ref_page:Marketing;ref_cta:Sign in;ref_loc:Header"} "
>
Sign in
< / a >
< / div >
< / div >
< div class = " HeaderMenu js-header-menu height-fit position-lg-relative d-lg-flex flex-column flex-auto top-0 " >
< div class = " HeaderMenu-wrapper d-flex flex-column flex-self-start flex-lg-row flex-auto rounded rounded-lg-0 " >
< nav class = " HeaderMenu-nav " aria-label = " Global " >
< ul class = " d-lg-flex list-style-none " >
< li class = " HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item " >
< button type = " button " class = " HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target " aria-expanded = " false " >
Product
< svg opacity = " 0.5 " aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-chevron-down HeaderMenu-icon ml-1 " >
< path d = " M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z " > < / path >
< / svg >
< / button >
< div class = " HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 d-lg-flex flex-wrap dropdown-menu-wide " >
< div class = " HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7 " >
< div class = " border-bottom pb-3 pb-lg-0 border-lg-bottom-0 " >
< ul class = " list-style-none f5 " >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3 " data-analytics -event = " {"location":"navbar","action":"github_copilot","context":"product","tag":"link","label":"github_copilot_link_product_navbar"} " href = " https://github.com/features/copilot " >
< svg aria-hidden = " true " height = " 24 " viewBox = " 0 0 24 24 " version = " 1.1 " width = " 24 " data-view -component = " true " class = " octicon octicon-copilot color-fg-subtle mr-3 " >
< path d = " M23.922 16.992c-.861 1.495-5.859 5.023-11.922 5.023-6.063 0-11.061-3.528-11.922-5.023A.641.641 0 0 1 0 16.736v-2.869a.841.841 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.195 10.195 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952 1.399-1.136 3.392-2.093 6.122-2.093 2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.832.832 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256ZM12.172 11h-.344a4.323 4.323 0 0 1-.355.508C10.703 12.455 9.555 13 7.965 13c-1.725 0-2.989-.359-3.782-1.259a2.005 2.005 0 0 1-.085-.104L4 11.741v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.323 4.323 0 0 1-.355-.508h-.016.016Zm.641-2.935c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z " > < / path > < path d = " M14.5 14.25a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Zm-5 0a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Z " > < / path >
< / svg >
< div >
< div class = " color-fg-default h4 " > GitHub Copilot < / div >
Write better code with AI
< / div >
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3 " data-analytics -event = " {"location":"navbar","action":"security","context":"product","tag":"link","label":"security_link_product_navbar"} " href = " https://github.com/features/security " >
< svg aria-hidden = " true " height = " 24 " viewBox = " 0 0 24 24 " version = " 1.1 " width = " 24 " data-view -component = " true " class = " octicon octicon-shield-check color-fg-subtle mr-3 " >
< path d = " M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z " > < / path > < path d = " m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z " > < / path >
< / svg >
< div >
< div class = " color-fg-default h4 " > Security < / div >
Find and fix vulnerabilities
< / div >
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3 " data-analytics -event = " {"location":"navbar","action":"actions","context":"product","tag":"link","label":"actions_link_product_navbar"} " href = " https://github.com/features/actions " >
< svg aria-hidden = " true " height = " 24 " viewBox = " 0 0 24 24 " version = " 1.1 " width = " 24 " data-view -component = " true " class = " octicon octicon-workflow color-fg-subtle mr-3 " >
< path d = " M1 3a2 2 0 0 1 2-2h6.5a2 2 0 0 1 2 2v6.5a2 2 0 0 1-2 2H7v4.063C7 16.355 7.644 17 8.438 17H12.5v-2.5a2 2 0 0 1 2-2H21a2 2 0 0 1 2 2V21a2 2 0 0 1-2 2h-6.5a2 2 0 0 1-2-2v-2.5H8.437A2.939 2.939 0 0 1 5.5 15.562V11.5H3a2 2 0 0 1-2-2Zm2-.5a.5.5 0 0 0-.5.5v6.5a.5.5 0 0 0 .5.5h6.5a.5.5 0 0 0 .5-.5V3a.5.5 0 0 0-.5-.5ZM14.5 14a.5.5 0 0 0-.5.5V21a.5.5 0 0 0 .5.5H21a.5.5 0 0 0 .5-.5v-6.5a.5.5 0 0 0-.5-.5Z " > < / path >
< / svg >
< div >
< div class = " color-fg-default h4 " > Actions < / div >
Automate any workflow
< / div >
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3 " data-analytics -event = " {"location":"navbar","action":"codespaces","context":"product","tag":"link","label":"codespaces_link_product_navbar"} " href = " https://github.com/features/codespaces " >
< svg aria-hidden = " true " height = " 24 " viewBox = " 0 0 24 24 " version = " 1.1 " width = " 24 " data-view -component = " true " class = " octicon octicon-codespaces color-fg-subtle mr-3 " >
< path d = " M3.5 3.75C3.5 2.784 4.284 2 5.25 2h13.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 18.75 13H5.25a1.75 1.75 0 0 1-1.75-1.75Zm-2 12c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v4a1.75 1.75 0 0 1-1.75 1.75H3.25a1.75 1.75 0 0 1-1.75-1.75ZM5.25 3.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h13.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Zm-2 12a.25.25 0 0 0-.25.25v4c0 .138.112.25.25.25h17.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25Z " > < / path > < path d = " M10 17.75a.75.75 0 0 1 .75-.75h6.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z " > < / path >
< / svg >
< div >
< div class = " color-fg-default h4 " > Codespaces < / div >
Instant dev environments
< / div >
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3 " data-analytics -event = " {"location":"navbar","action":"issues","context":"product","tag":"link","label":"issues_link_product_navbar"} " href = " https://github.com/features/issues " >
< svg aria-hidden = " true " height = " 24 " viewBox = " 0 0 24 24 " version = " 1.1 " width = " 24 " data-view -component = " true " class = " octicon octicon-issue-opened color-fg-subtle mr-3 " >
< path d = " M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1ZM2.5 12a9.5 9.5 0 0 0 9.5 9.5 9.5 9.5 0 0 0 9.5-9.5A9.5 9.5 0 0 0 12 2.5 9.5 9.5 0 0 0 2.5 12Zm9.5 2a2 2 0 1 1-.001-3.999A2 2 0 0 1 12 14Z " > < / path >
< / svg >
< div >
< div class = " color-fg-default h4 " > Issues < / div >
Plan and track work
< / div >
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3 " data-analytics -event = " {"location":"navbar","action":"code_review","context":"product","tag":"link","label":"code_review_link_product_navbar"} " href = " https://github.com/features/code-review " >
< svg aria-hidden = " true " height = " 24 " viewBox = " 0 0 24 24 " version = " 1.1 " width = " 24 " data-view -component = " true " class = " octicon octicon-code-review color-fg-subtle mr-3 " >
< path d = " M10.3 6.74a.75.75 0 0 1-.04 1.06l-2.908 2.7 2.908 2.7a.75.75 0 1 1-1.02 1.1l-3.5-3.25a.75.75 0 0 1 0-1.1l3.5-3.25a.75.75 0 0 1 1.06.04Zm3.44 1.06a.75.75 0 1 1 1.02-1.1l3.5 3.25a.75.75 0 0 1 0 1.1l-3.5 3.25a.75.75 0 1 1-1.02-1.1l2.908-2.7-2.908-2.7Z " > < / path > < path d = " M1.5 4.25c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v12.5a1.75 1.75 0 0 1-1.75 1.75h-9.69l-3.573 3.573A1.458 1.458 0 0 1 5 21.043V18.5H3.25a1.75 1.75 0 0 1-1.75-1.75ZM3.25 4a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h2.5a.75.75 0 0 1 .75.75v3.19l3.72-3.72a.749.749 0 0 1 .53-.22h10a.25.25 0 0 0 .25-.25V4.25a.25.25 0 0 0-.25-.25Z " > < / path >
< / svg >
< div >
< div class = " color-fg-default h4 " > Code Review < / div >
Manage code changes
< / div >
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3 " data-analytics -event = " {"location":"navbar","action":"discussions","context":"product","tag":"link","label":"discussions_link_product_navbar"} " href = " https://github.com/features/discussions " >
< svg aria-hidden = " true " height = " 24 " viewBox = " 0 0 24 24 " version = " 1.1 " width = " 24 " data-view -component = " true " class = " octicon octicon-comment-discussion color-fg-subtle mr-3 " >
< path d = " M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z " > < / path > < path d = " M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z " > < / path >
< / svg >
< div >
< div class = " color-fg-default h4 " > Discussions < / div >
Collaborate outside of code
< / div >
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description " data-analytics -event = " {"location":"navbar","action":"code_search","context":"product","tag":"link","label":"code_search_link_product_navbar"} " href = " https://github.com/features/code-search " >
< svg aria-hidden = " true " height = " 24 " viewBox = " 0 0 24 24 " version = " 1.1 " width = " 24 " data-view -component = " true " class = " octicon octicon-code-square color-fg-subtle mr-3 " >
< path d = " M10.3 8.24a.75.75 0 0 1-.04 1.06L7.352 12l2.908 2.7a.75.75 0 1 1-1.02 1.1l-3.5-3.25a.75.75 0 0 1 0-1.1l3.5-3.25a.75.75 0 0 1 1.06.04Zm3.44 1.06a.75.75 0 1 1 1.02-1.1l3.5 3.25a.75.75 0 0 1 0 1.1l-3.5 3.25a.75.75 0 1 1-1.02-1.1l2.908-2.7-2.908-2.7Z " > < / path > < path d = " M2 3.75C2 2.784 2.784 2 3.75 2h16.5c.966 0 1.75.784 1.75 1.75v16.5A1.75 1.75 0 0 1 20.25 22H3.75A1.75 1.75 0 0 1 2 20.25Zm1.75-.25a.25.25 0 0 0-.25.25v16.5c0 .138.112.25.25.25h16.5a.25.25 0 0 0 .25-.25V3.75a.25.25 0 0 0-.25-.25Z " > < / path >
< / svg >
< div >
< div class = " color-fg-default h4 " > Code Search < / div >
Find more , search less
< / div >
< / a > < / li >
< / ul >
< / div >
< / div >
< div class = " HeaderMenu-column px-lg-4 " >
< div class = " border-bottom pb-3 pb-lg-0 border-lg-bottom-0 border-bottom-0 " >
< span class = " d-block h4 color-fg-default my-1 " id = " product-explore-heading " > Explore < / span >
< ul class = " list-style-none f5 " aria-labelledby = " product-explore-heading " >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"all_features","context":"product","tag":"link","label":"all_features_link_product_navbar"} " href = " https://github.com/features " >
All features
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external " target = " _blank " data-analytics -event = " {"location":"navbar","action":"documentation","context":"product","tag":"link","label":"documentation_link_product_navbar"} " href = " https://docs.github.com " >
Documentation
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle " >
< path d = " M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z " > < / path >
< / svg >
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external " target = " _blank " data-analytics -event = " {"location":"navbar","action":"github_skills","context":"product","tag":"link","label":"github_skills_link_product_navbar"} " href = " https://skills.github.com " >
GitHub Skills
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle " >
< path d = " M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z " > < / path >
< / svg >
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external " target = " _blank " data-analytics -event = " {"location":"navbar","action":"blog","context":"product","tag":"link","label":"blog_link_product_navbar"} " href = " https://github.blog " >
Blog
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle " >
< path d = " M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z " > < / path >
< / svg >
< / a > < / li >
< / ul >
< / div >
< / div >
< / div >
< / li >
< li class = " HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item " >
< button type = " button " class = " HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target " aria-expanded = " false " >
Solutions
< svg opacity = " 0.5 " aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-chevron-down HeaderMenu-icon ml-1 " >
< path d = " M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z " > < / path >
< / svg >
< / button >
< div class = " HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 d-lg-flex flex-wrap dropdown-menu-wide " >
< div class = " HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7 " >
< div class = " border-bottom pb-3 pb-lg-0 border-lg-bottom-0 pb-lg-3 mb-3 mb-lg-0 " >
< span class = " d-block h4 color-fg-default my-1 " id = " solutions-by-company-size-heading " > By company size < / span >
< ul class = " list-style-none f5 " aria-labelledby = " solutions-by-company-size-heading " >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"enterprises","context":"solutions","tag":"link","label":"enterprises_link_solutions_navbar"} " href = " https://github.com/enterprise " >
Enterprises
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"small_and_medium_teams","context":"solutions","tag":"link","label":"small_and_medium_teams_link_solutions_navbar"} " href = " https://github.com/team " >
Small and medium teams
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"startups","context":"solutions","tag":"link","label":"startups_link_solutions_navbar"} " href = " https://github.com/enterprise/startups " >
Startups
< / a > < / li >
< / ul >
< / div >
< div class = " border-bottom pb-3 pb-lg-0 border-lg-bottom-0 " >
< span class = " d-block h4 color-fg-default my-1 " id = " solutions-by-use-case-heading " > By use case < / span >
< ul class = " list-style-none f5 " aria-labelledby = " solutions-by-use-case-heading " >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"devsecops","context":"solutions","tag":"link","label":"devsecops_link_solutions_navbar"} " href = " /solutions/use-case/devsecops " >
DevSecOps
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"devops","context":"solutions","tag":"link","label":"devops_link_solutions_navbar"} " href = " /solutions/use-case/devops " >
DevOps
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"ci_cd","context":"solutions","tag":"link","label":"ci_cd_link_solutions_navbar"} " href = " /solutions/use-case/ci-cd " >
CI / CD
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"view_all_use_cases","context":"solutions","tag":"link","label":"view_all_use_cases_link_solutions_navbar"} " href = " /solutions/use-case " >
View all use cases
< / a > < / li >
< / ul >
< / div >
< / div >
< div class = " HeaderMenu-column px-lg-4 " >
< div class = " border-bottom pb-3 pb-lg-0 border-lg-bottom-0 " >
< span class = " d-block h4 color-fg-default my-1 " id = " solutions-by-industry-heading " > By industry < / span >
< ul class = " list-style-none f5 " aria-labelledby = " solutions-by-industry-heading " >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"healthcare","context":"solutions","tag":"link","label":"healthcare_link_solutions_navbar"} " href = " /solutions/industry/healthcare " >
Healthcare
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"financial_services","context":"solutions","tag":"link","label":"financial_services_link_solutions_navbar"} " href = " /solutions/industry/financial-services " >
Financial services
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"manufacturing","context":"solutions","tag":"link","label":"manufacturing_link_solutions_navbar"} " href = " /solutions/industry/manufacturing " >
Manufacturing
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"government","context":"solutions","tag":"link","label":"government_link_solutions_navbar"} " href = " /solutions/industry/government " >
Government
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"view_all_industries","context":"solutions","tag":"link","label":"view_all_industries_link_solutions_navbar"} " href = " /solutions/industry " >
View all industries
< / a > < / li >
< / ul >
< / div >
< / div >
< div class = " HeaderMenu-trailing-link rounded-bottom-2 flex-shrink-0 mt-lg-4 px-lg-4 py-4 py-lg-3 f5 text-semibold " >
< a href = " /solutions " >
View all solutions
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-chevron-right HeaderMenu-trailing-link-icon " >
< path d = " M6.22 3.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L9.94 8 6.22 4.28a.75.75 0 0 1 0-1.06Z " > < / path >
< / svg >
< / a > < / div >
< / div >
< / li >
< li class = " HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item " >
< button type = " button " class = " HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target " aria-expanded = " false " >
Resources
< svg opacity = " 0.5 " aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-chevron-down HeaderMenu-icon ml-1 " >
< path d = " M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z " > < / path >
< / svg >
< / button >
< div class = " HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 d-lg-flex flex-wrap dropdown-menu-wide " >
< div class = " HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7 " >
< div class = " border-bottom pb-3 pb-lg-0 border-lg-bottom-0 " >
< span class = " d-block h4 color-fg-default my-1 " id = " resources-topics-heading " > Topics < / span >
< ul class = " list-style-none f5 " aria-labelledby = " resources-topics-heading " >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"ai","context":"resources","tag":"link","label":"ai_link_resources_navbar"} " href = " /resources/articles/ai " >
AI
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"devops","context":"resources","tag":"link","label":"devops_link_resources_navbar"} " href = " /resources/articles/devops " >
DevOps
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"security","context":"resources","tag":"link","label":"security_link_resources_navbar"} " href = " /resources/articles/security " >
Security
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"software_development","context":"resources","tag":"link","label":"software_development_link_resources_navbar"} " href = " /resources/articles/software-development " >
Software Development
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"view_all","context":"resources","tag":"link","label":"view_all_link_resources_navbar"} " href = " /resources/articles " >
View all
< / a > < / li >
< / ul >
< / div >
< / div >
< div class = " HeaderMenu-column px-lg-4 " >
< div class = " border-bottom pb-3 pb-lg-0 border-lg-bottom-0 border-bottom-0 " >
< span class = " d-block h4 color-fg-default my-1 " id = " resources-explore-heading " > Explore < / span >
< ul class = " list-style-none f5 " aria-labelledby = " resources-explore-heading " >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external " target = " _blank " data-analytics -event = " {"location":"navbar","action":"learning_pathways","context":"resources","tag":"link","label":"learning_pathways_link_resources_navbar"} " href = " https://resources.github.com/learn/pathways " >
Learning Pathways
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle " >
< path d = " M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z " > < / path >
< / svg >
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external " target = " _blank " data-analytics -event = " {"location":"navbar","action":"white_papers_ebooks_webinars","context":"resources","tag":"link","label":"white_papers_ebooks_webinars_link_resources_navbar"} " href = " https://resources.github.com " >
White papers , Ebooks , Webinars
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle " >
< path d = " M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z " > < / path >
< / svg >
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"customer_stories","context":"resources","tag":"link","label":"customer_stories_link_resources_navbar"} " href = " https://github.com/customer-stories " >
Customer Stories
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external " target = " _blank " data-analytics -event = " {"location":"navbar","action":"partners","context":"resources","tag":"link","label":"partners_link_resources_navbar"} " href = " https://partner.github.com " >
Partners
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle " >
< path d = " M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z " > < / path >
< / svg >
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"executive_insights","context":"resources","tag":"link","label":"executive_insights_link_resources_navbar"} " href = " https://github.com/solutions/executive-insights " >
Executive Insights
< / a > < / li >
< / ul >
< / div >
< / div >
< / div >
< / li >
< li class = " HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item " >
< button type = " button " class = " HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target " aria-expanded = " false " >
Open Source
< svg opacity = " 0.5 " aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-chevron-down HeaderMenu-icon ml-1 " >
< path d = " M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z " > < / path >
< / svg >
< / button >
< div class = " HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 px-lg-4 " >
< div class = " HeaderMenu-column " >
< div class = " border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3 " >
< ul class = " list-style-none f5 " >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description " data-analytics -event = " {"location":"navbar","action":"github_sponsors","context":"open_source","tag":"link","label":"github_sponsors_link_open_source_navbar"} " href = " /sponsors " >
< div >
< div class = " color-fg-default h4 " > GitHub Sponsors < / div >
Fund open source developers
< / div >
< / a > < / li >
< / ul >
< / div >
< div class = " border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3 " >
< ul class = " list-style-none f5 " >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description " data-analytics -event = " {"location":"navbar","action":"the_readme_project","context":"open_source","tag":"link","label":"the_readme_project_link_open_source_navbar"} " href = " https://github.com/readme " >
< div >
< div class = " color-fg-default h4 " > The ReadME Project < / div >
GitHub community articles
< / div >
< / a > < / li >
< / ul >
< / div >
< div class = " border-bottom pb-3 pb-lg-0 border-bottom-0 " >
< span class = " d-block h4 color-fg-default my-1 " id = " open-source-repositories-heading " > Repositories < / span >
< ul class = " list-style-none f5 " aria-labelledby = " open-source-repositories-heading " >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"topics","context":"open_source","tag":"link","label":"topics_link_open_source_navbar"} " href = " https://github.com/topics " >
Topics
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"trending","context":"open_source","tag":"link","label":"trending_link_open_source_navbar"} " href = " https://github.com/trending " >
Trending
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary " data-analytics -event = " {"location":"navbar","action":"collections","context":"open_source","tag":"link","label":"collections_link_open_source_navbar"} " href = " https://github.com/collections " >
Collections
< / a > < / li >
< / ul >
< / div >
< / div >
< / div >
< / li >
< li class = " HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item " >
< button type = " button " class = " HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target " aria-expanded = " false " >
Enterprise
< svg opacity = " 0.5 " aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-chevron-down HeaderMenu-icon ml-1 " >
< path d = " M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z " > < / path >
< / svg >
< / button >
< div class = " HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 px-lg-4 " >
< div class = " HeaderMenu-column " >
< div class = " border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3 " >
< ul class = " list-style-none f5 " >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description " data-analytics -event = " {"location":"navbar","action":"enterprise_platform","context":"enterprise","tag":"link","label":"enterprise_platform_link_enterprise_navbar"} " href = " /enterprise " >
< svg aria-hidden = " true " height = " 24 " viewBox = " 0 0 24 24 " version = " 1.1 " width = " 24 " data-view -component = " true " class = " octicon octicon-stack color-fg-subtle mr-3 " >
< path d = " M11.063 1.456a1.749 1.749 0 0 1 1.874 0l8.383 5.316a1.751 1.751 0 0 1 0 2.956l-8.383 5.316a1.749 1.749 0 0 1-1.874 0L2.68 9.728a1.751 1.751 0 0 1 0-2.956Zm1.071 1.267a.25.25 0 0 0-.268 0L3.483 8.039a.25.25 0 0 0 0 .422l8.383 5.316a.25.25 0 0 0 .268 0l8.383-5.316a.25.25 0 0 0 0-.422Z " > < / path > < path d = " M1.867 12.324a.75.75 0 0 1 1.035-.232l8.964 5.685a.25.25 0 0 0 .268 0l8.964-5.685a.75.75 0 0 1 .804 1.267l-8.965 5.685a1.749 1.749 0 0 1-1.874 0l-8.965-5.685a.75.75 0 0 1-.231-1.035Z " > < / path > < path d = " M1.867 16.324a.75.75 0 0 1 1.035-.232l8.964 5.685a.25.25 0 0 0 .268 0l8.964-5.685a.75.75 0 0 1 .804 1.267l-8.965 5.685a1.749 1.749 0 0 1-1.874 0l-8.965-5.685a.75.75 0 0 1-.231-1.035Z " > < / path >
< / svg >
< div >
< div class = " color-fg-default h4 " > Enterprise platform < / div >
AI-powered developer platform
< / div >
< / a > < / li >
< / ul >
< / div >
< div class = " border-bottom pb-3 pb-lg-0 border-bottom-0 " >
< span class = " d-block h4 color-fg-default my-1 " id = " enterprise-available-add-ons-heading " > Available add-ons < / span >
< ul class = " list-style-none f5 " aria-labelledby = " enterprise-available-add-ons-heading " >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3 " data-analytics -event = " {"location":"navbar","action":"advanced_security","context":"enterprise","tag":"link","label":"advanced_security_link_enterprise_navbar"} " href = " https://github.com/enterprise/advanced-security " >
< svg aria-hidden = " true " height = " 24 " viewBox = " 0 0 24 24 " version = " 1.1 " width = " 24 " data-view -component = " true " class = " octicon octicon-shield-check color-fg-subtle mr-3 " >
< path d = " M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z " > < / path > < path d = " m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z " > < / path >
< / svg >
< div >
< div class = " color-fg-default h4 " > Advanced Security < / div >
Enterprise-grade security features
< / div >
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3 " data-analytics -event = " {"location":"navbar","action":"github_copilot","context":"enterprise","tag":"link","label":"github_copilot_link_enterprise_navbar"} " href = " /features/copilot#enterprise " >
< svg aria-hidden = " true " height = " 24 " viewBox = " 0 0 24 24 " version = " 1.1 " width = " 24 " data-view -component = " true " class = " octicon octicon-copilot color-fg-subtle mr-3 " >
< path d = " M23.922 16.992c-.861 1.495-5.859 5.023-11.922 5.023-6.063 0-11.061-3.528-11.922-5.023A.641.641 0 0 1 0 16.736v-2.869a.841.841 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.195 10.195 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952 1.399-1.136 3.392-2.093 6.122-2.093 2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.832.832 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256ZM12.172 11h-.344a4.323 4.323 0 0 1-.355.508C10.703 12.455 9.555 13 7.965 13c-1.725 0-2.989-.359-3.782-1.259a2.005 2.005 0 0 1-.085-.104L4 11.741v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.323 4.323 0 0 1-.355-.508h-.016.016Zm.641-2.935c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z " > < / path > < path d = " M14.5 14.25a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Zm-5 0a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Z " > < / path >
< / svg >
< div >
< div class = " color-fg-default h4 " > GitHub Copilot < / div >
Enterprise-grade AI features
< / div >
< / a > < / li >
< li >
< a class = " HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description " data-analytics -event = " {"location":"navbar","action":"premium_support","context":"enterprise","tag":"link","label":"premium_support_link_enterprise_navbar"} " href = " /premium-support " >
< svg aria-hidden = " true " height = " 24 " viewBox = " 0 0 24 24 " version = " 1.1 " width = " 24 " data-view -component = " true " class = " octicon octicon-comment-discussion color-fg-subtle mr-3 " >
< path d = " M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z " > < / path > < path d = " M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z " > < / path >
< / svg >
< div >
< div class = " color-fg-default h4 " > Premium Support < / div >
Enterprise-grade 24 / 7 support
< / div >
< / a > < / li >
< / ul >
< / div >
< / div >
< / div >
< / li >
< li class = " HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item " >
< a class = " HeaderMenu-link no-underline px-0 px-lg-2 py-3 py-lg-2 d-block d-lg-inline-block " data-analytics -event = " {"location":"navbar","action":"pricing","context":"global","tag":"link","label":"pricing_link_global_navbar"} " href = " https://github.com/pricing " > Pricing < / a >
< / li >
< / ul >
< / nav >
< div class = " d-flex flex-column flex-lg-row width-full flex-justify-end flex-lg-items-center text-center mt-3 mt-lg-0 text-lg-left ml-lg-3 " >
< qbsearch-input class = " search-input " data-scope = " repo:dotnet/install-scripts " data-custom -scopes -path = " /search/custom_scopes " data-delete -custom -scopes -csrf = " 0G2w0UOQQe-yY7Dqn0heO-ZJPtXk7rxuc3V2zIHf8zIJvzo32Oa4FFMCO_UOgLGDEKiY89PcDEfiyACB7CsCyA " data-max -custom -scopes = " 10 " data-header -redesign -enabled = " false " data-initial -value = " " data-blackbird -suggestions -path = " /search/suggestions " data-jump -to -suggestions -path = " /_graphql/GetSuggestedNavigationDestinations " data-current -repository = " dotnet/install-scripts " data-current -org = " dotnet " data-current -owner = " " data-logged -in = " false " data-copilot -chat -enabled = " false " data-nl -search -enabled = " false " data-retain -scroll -position = " true " >
< div
class = " search-input-container search-with-dialog position-relative d-flex flex-row flex-items-center mr-4 rounded "
data-action = " click:qbsearch-input#searchInputContainerClicked "
>
< button
type = " button "
class = " header-search-button placeholder input-button form-control d-flex flex-1 flex-self-stretch flex-items-center no-wrap width-full py-0 pl-2 pr-0 text-left border-0 box-shadow-none "
data-target = " qbsearch-input.inputButton "
aria-label = " Search or jump to… "
aria-haspopup = " dialog "
placeholder = " Search or jump to... "
data-hotkey = s , /
autocapitalize = " off "
data-analytics -event = " {"location":"navbar","action":"searchbar","context":"global","tag":"input","label":"searchbar_input_global_navbar"} "
data-action = " click:qbsearch-input#handleExpand "
>
< div class = " mr-2 color-fg-muted " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-search " >
< path d = " M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z " > < / path >
< / svg >
< / div >
< span class = " flex-1 " data-target = " qbsearch-input.inputButtonText " > Search or jump to . . . < / span >
< div class = " d-flex " data-target = " qbsearch-input.hotkeyIndicator " >
< svg xmlns = " http://www.w3.org/2000/svg " width = " 22 " height = " 20 " aria-hidden = " true " class = " mr-1 " > < path fill = " none " stroke = " #979A9C " opacity = " .4 " d = " M3.5.5h12c1.7 0 3 1.3 3 3v13c0 1.7-1.3 3-3 3h-12c-1.7 0-3-1.3-3-3v-13c0-1.7 1.3-3 3-3z " > < / path > < path fill = " #979A9C " d = " M11.8 6L8 15.1h-.9L10.8 6h1z " > < / path > < / svg >
< / div >
< / button >
< input type = " hidden " name = " type " class = " js-site-search-type-field " >
< div class = " Overlay--hidden " data-modal -dialog -overlay >
< modal-dialog data-action = " close:qbsearch-input#handleClose cancel:qbsearch-input#handleClose " data-target = " qbsearch-input.searchSuggestionsDialog " role = " dialog " id = " search-suggestions-dialog " aria-modal = " true " aria-labelledby = " search-suggestions-dialog-header " data-view -component = " true " class = " Overlay Overlay--width-large Overlay--height-auto " >
< h1 id = " search-suggestions-dialog-header " class = " sr-only " > Search code , repositories , users , issues , pull requests . . . < / h1 >
< div class = " Overlay-body Overlay-body--paddingNone " >
< div data-view -component = " true " > < div class = " search-suggestions position-fixed width-full color-shadow-large border color-fg-default color-bg-default overflow-hidden d-flex flex-column query-builder-container "
style = " border-radius: 12px; "
data-target = " qbsearch-input.queryBuilderContainer "
hidden
>
< ! - - ' " ` --><!-- </textarea></xmp> --></option></form><form id= " query-builder -test -form " action= "" accept-charset= " UTF - 8 " method= " get " >
< query-builder data-target = " qbsearch-input.queryBuilder " id = " query-builder-query-builder-test " data-filter -key = " : " data-view -component = " true " class = " QueryBuilder search-query-builder " >
< div class = " FormControl FormControl--fullWidth " >
< label id = " query-builder-test-label " for = " query-builder-test " class = " FormControl-label sr-only " >
Search
< / label >
< div
class = " QueryBuilder-StyledInput width-fit "
data-target = " query-builder.styledInput "
>
< span id = " query-builder-test-leadingvisual-wrap " class = " FormControl-input-leadingVisualWrap QueryBuilder-leadingVisualWrap " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-search FormControl-input-leadingVisual " >
< path d = " M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z " > < / path >
< / svg >
< / span >
< div data-target = " query-builder.styledInputContainer " class = " QueryBuilder-StyledInputContainer " >
< div
aria-hidden = " true "
class = " QueryBuilder-StyledInputContent "
data-target = " query-builder.styledInputContent "
> < / div >
< div class = " QueryBuilder-InputWrapper " >
< div aria-hidden = " true " class = " QueryBuilder-Sizer " data-target = " query-builder.sizer " > < / div >
< input id = " query-builder-test " name = " query-builder-test " value = " " autocomplete = " off " type = " text " role = " combobox " spellcheck = " false " aria-expanded = " false " aria-describedby = " validation-52a342ee-6bc0-4b95-967f-dfe1f9f4480a " data-target = " query-builder.input " data-action = "
input : query-builder #inputChange
blur : query-builder #inputBlur
keydown : query-builder #inputKeydown
focus : query-builder #inputFocus
" data-view-component= " true " class= " FormControl-input QueryBuilder-Input FormControl-medium " />
< / div >
< / div >
< span class = " sr-only " id = " query-builder-test-clear " > Clear < / span >
< button role = " button " id = " query-builder-test-clear-button " aria-labelledby = " query-builder-test-clear query-builder-test-label " data-target = " query-builder.clearButton " data-action = "
click : query-builder #clear
focus : query-builder #clearButtonFocus
blur : query-builder #clearButtonBlur
" variant= " small " hidden= " hidden " type= " button " data-view-component= " true " class= " Button Button - -iconOnly Button - -invisible Button - -medium mr - 1 px - 2 py - 0 d-flex flex-items -center rounded - 1 color-fg -muted " > <svg aria-hidden= " true " height= " 16 " viewBox= " 0 0 16 16 " version= " 1.1 " width= " 16 " data-view-component= " true " class= " octicon octicon-x -circle -fill Button-visual " >
< path d = " M2.343 13.657A8 8 0 1 1 13.658 2.343 8 8 0 0 1 2.343 13.657ZM6.03 4.97a.751.751 0 0 0-1.042.018.751.751 0 0 0-.018 1.042L6.94 8 4.97 9.97a.749.749 0 0 0 .326 1.275.749.749 0 0 0 .734-.215L8 9.06l1.97 1.97a.749.749 0 0 0 1.275-.326.749.749 0 0 0-.215-.734L9.06 8l1.97-1.97a.749.749 0 0 0-.326-1.275.749.749 0 0 0-.734.215L8 6.94Z " > < / path >
< / svg >
< / button >
< / div >
< template id = " search-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-search " >
< path d = " M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z " > < / path >
< / svg >
< / template >
< template id = " code-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-code " >
< path d = " m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z " > < / path >
< / svg >
< / template >
< template id = " file-code-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-file-code " >
< path d = " M4 1.75C4 .784 4.784 0 5.75 0h5.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v8.586A1.75 1.75 0 0 1 14.25 15h-9a.75.75 0 0 1 0-1.5h9a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 10 4.25V1.5H5.75a.25.25 0 0 0-.25.25v2.5a.75.75 0 0 1-1.5 0Zm1.72 4.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l1.47-1.47-1.47-1.47a.75.75 0 0 1 0-1.06ZM3.28 7.78 1.81 9.25l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Zm8.22-6.218V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z " > < / path >
< / svg >
< / template >
< template id = " history-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-history " >
< path d = " m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z " > < / path >
< / svg >
< / template >
< template id = " repo-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-repo " >
< path d = " M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z " > < / path >
< / svg >
< / template >
< template id = " bookmark-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-bookmark " >
< path d = " M3 2.75C3 1.784 3.784 1 4.75 1h6.5c.966 0 1.75.784 1.75 1.75v11.5a.75.75 0 0 1-1.227.579L8 11.722l-3.773 3.107A.751.751 0 0 1 3 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.91l3.023-2.489a.75.75 0 0 1 .954 0l3.023 2.49V2.75a.25.25 0 0 0-.25-.25Z " > < / path >
< / svg >
< / template >
< template id = " plus-circle-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-plus-circle " >
< path d = " M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm7.25-3.25v2.5h2.5a.75.75 0 0 1 0 1.5h-2.5v2.5a.75.75 0 0 1-1.5 0v-2.5h-2.5a.75.75 0 0 1 0-1.5h2.5v-2.5a.75.75 0 0 1 1.5 0Z " > < / path >
< / svg >
< / template >
< template id = " circle-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-dot-fill " >
< path d = " M8 4a4 4 0 1 1 0 8 4 4 0 0 1 0-8Z " > < / path >
< / svg >
< / template >
< template id = " trash-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-trash " >
< path d = " M11 1.75V3h2.25a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75ZM4.496 6.675l.66 6.6a.25.25 0 0 0 .249.225h5.19a.25.25 0 0 0 .249-.225l.66-6.6a.75.75 0 0 1 1.492.149l-.66 6.6A1.748 1.748 0 0 1 10.595 15h-5.19a1.75 1.75 0 0 1-1.741-1.575l-.66-6.6a.75.75 0 1 1 1.492-.15ZM6.5 1.75V3h3V1.75a.25.25 0 0 0-.25-.25h-2.5a.25.25 0 0 0-.25.25Z " > < / path >
< / svg >
< / template >
< template id = " team-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-people " >
< path d = " M2 5.5a3.5 3.5 0 1 1 5.898 2.549 5.508 5.508 0 0 1 3.034 4.084.75.75 0 1 1-1.482.235 4 4 0 0 0-7.9 0 .75.75 0 0 1-1.482-.236A5.507 5.507 0 0 1 3.102 8.05 3.493 3.493 0 0 1 2 5.5ZM11 4a3.001 3.001 0 0 1 2.22 5.018 5.01 5.01 0 0 1 2.56 3.012.749.749 0 0 1-.885.954.752.752 0 0 1-.549-.514 3.507 3.507 0 0 0-2.522-2.372.75.75 0 0 1-.574-.73v-.352a.75.75 0 0 1 .416-.672A1.5 1.5 0 0 0 11 5.5.75.75 0 0 1 11 4Zm-5.5-.5a2 2 0 1 0-.001 3.999A2 2 0 0 0 5.5 3.5Z " > < / path >
< / svg >
< / template >
< template id = " project-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-project " >
< path d = " M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25ZM11.75 3a.75.75 0 0 1 .75.75v7.5a.75.75 0 0 1-1.5 0v-7.5a.75.75 0 0 1 .75-.75Zm-8.25.75a.75.75 0 0 1 1.5 0v5.5a.75.75 0 0 1-1.5 0ZM8 3a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 3Z " > < / path >
< / svg >
< / template >
< template id = " pencil-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-pencil " >
< path d = " M11.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 0 1-.927-.928l.929-3.25c.081-.286.235-.547.445-.758l8.61-8.61Zm.176 4.823L9.75 4.81l-6.286 6.287a.253.253 0 0 0-.064.108l-.558 1.953 1.953-.558a.253.253 0 0 0 .108-.064Zm1.238-3.763a.25.25 0 0 0-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 0 0 0-.354Z " > < / path >
< / svg >
< / template >
< template id = " copilot-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-copilot " >
< path d = " M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z " > < / path > < path d = " M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z " > < / path >
< / svg >
< / template >
< template id = " copilot-error-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-copilot-error " >
< path d = " M16 11.24c0 .112-.072.274-.21.467L13 9.688V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-.198 0-.388-.009-.571-.029L6.833 5.226a4.01 4.01 0 0 0 .17-.782c.117-.935-.037-1.395-.241-1.614-.193-.206-.637-.413-1.682-.297-.683.076-1.115.231-1.395.415l-1.257-.91c.579-.564 1.413-.877 2.485-.996 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095Zm-5.083-8.707c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Zm2.511 11.074c-1.393.776-3.272 1.428-5.43 1.428-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.18-.455-.241-.963-.252-1.475L.31 4.107A.747.747 0 0 1 0 3.509V3.49a.748.748 0 0 1 .625-.73c.156-.026.306.047.435.139l14.667 10.578a.592.592 0 0 1 .227.264.752.752 0 0 1 .046.249v.022a.75.75 0 0 1-1.19.596Zm-1.367-.991L5.635 7.964a5.128 5.128 0 0 1-.889.073c-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433 1.539 0 3.089-.505 4.063-.934Z " > < / path >
< / svg >
< / template >
< template id = " workflow-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-workflow " >
< path d = " M0 1.75C0 .784.784 0 1.75 0h3.5C6.216 0 7 .784 7 1.75v3.5A1.75 1.75 0 0 1 5.25 7H4v4a1 1 0 0 0 1 1h4v-1.25C9 9.784 9.784 9 10.75 9h3.5c.966 0 1.75.784 1.75 1.75v3.5A1.75 1.75 0 0 1 14.25 16h-3.5A1.75 1.75 0 0 1 9 14.25v-.75H5A2.5 2.5 0 0 1 2.5 11V7h-.75A1.75 1.75 0 0 1 0 5.25Zm1.75-.25a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Zm9 9a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Z " > < / path >
< / svg >
< / template >
< template id = " book-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-book " >
< path d = " M0 1.75A.75.75 0 0 1 .75 1h4.253c1.227 0 2.317.59 3 1.501A3.743 3.743 0 0 1 11.006 1h4.245a.75.75 0 0 1 .75.75v10.5a.75.75 0 0 1-.75.75h-4.507a2.25 2.25 0 0 0-1.591.659l-.622.621a.75.75 0 0 1-1.06 0l-.622-.621A2.25 2.25 0 0 0 5.258 13H.75a.75.75 0 0 1-.75-.75Zm7.251 10.324.004-5.073-.002-2.253A2.25 2.25 0 0 0 5.003 2.5H1.5v9h3.757a3.75 3.75 0 0 1 1.994.574ZM8.755 4.75l-.004 7.322a3.752 3.752 0 0 1 1.992-.572H14.5v-9h-3.495a2.25 2.25 0 0 0-2.25 2.25Z " > < / path >
< / svg >
< / template >
< template id = " code-review-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-code-review " >
< path d = " M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 13H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25v-8.5C0 1.784.784 1 1.75 1ZM1.5 2.75v8.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-8.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm5.28 1.72a.75.75 0 0 1 0 1.06L5.31 7l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.75.75 0 0 1 1.06 0Zm2.44 0a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L10.69 7 9.22 5.53a.75.75 0 0 1 0-1.06Z " > < / path >
< / svg >
< / template >
< template id = " codespaces-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-codespaces " >
< path d = " M0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm2-9.5C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 0 1-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 6.75Zm1.75-.25a.25.25 0 0 0-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5a.25.25 0 0 0-.25-.25Zm-2 9.5a.25.25 0 0 0-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-3a.25.25 0 0 0-.25-.25Z " > < / path > < path d = " M7 12.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z " > < / path >
< / svg >
< / template >
< template id = " comment-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-comment " >
< path d = " M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z " > < / path >
< / svg >
< / template >
< template id = " comment-discussion-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-comment-discussion " >
< path d = " M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z " > < / path >
< / svg >
< / template >
< template id = " organization-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-organization " >
< path d = " M1.75 16A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0h8.5C11.216 0 12 .784 12 1.75v12.5c0 .085-.006.168-.018.25h2.268a.25.25 0 0 0 .25-.25V8.285a.25.25 0 0 0-.111-.208l-1.055-.703a.749.749 0 1 1 .832-1.248l1.055.703c.487.325.779.871.779 1.456v5.965A1.75 1.75 0 0 1 14.25 16h-3.5a.766.766 0 0 1-.197-.026c-.099.017-.2.026-.303.026h-3a.75.75 0 0 1-.75-.75V14h-1v1.25a.75.75 0 0 1-.75.75Zm-.25-1.75c0 .138.112.25.25.25H4v-1.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 .75.75v1.25h2.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25ZM3.75 6h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM3 3.75A.75.75 0 0 1 3.75 3h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 3.75Zm4 3A.75.75 0 0 1 7.75 6h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 7 6.75ZM7.75 3h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM3 9.75A.75.75 0 0 1 3.75 9h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 9.75ZM7.75 9h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5Z " > < / path >
< / svg >
< / template >
< template id = " rocket-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-rocket " >
< path d = " M14.064 0h.186C15.216 0 16 .784 16 1.75v.186a8.752 8.752 0 0 1-2.564 6.186l-.458.459c-.314.314-.641.616-.979.904v3.207c0 .608-.315 1.172-.833 1.49l-2.774 1.707a.749.749 0 0 1-1.11-.418l-.954-3.102a1.214 1.214 0 0 1-.145-.125L3.754 9.816a1.218 1.218 0 0 1-.124-.145L.528 8.717a.749.749 0 0 1-.418-1.11l1.71-2.774A1.748 1.748 0 0 1 3.31 4h3.204c.288-.338.59-.665.904-.979l.459-.458A8.749 8.749 0 0 1 14.064 0ZM8.938 3.623h-.002l-.458.458c-.76.76-1.437 1.598-2.02 2.5l-1.5 2.317 2.143 2.143 2.317-1.5c.902-.583 1.74-1.26 2.499-2.02l.459-.458a7.25 7.25 0 0 0 2.123-5.127V1.75a.25.25 0 0 0-.25-.25h-.186a7.249 7.249 0 0 0-5.125 2.123ZM3.56 14.56c-.732.732-2.334 1.045-3.005 1.148a.234.234 0 0 1-.201-.064.234.234 0 0 1-.064-.201c.103-.671.416-2.273 1.15-3.003a1.502 1.502 0 1 1 2.12 2.12Zm6.94-3.935c-.088.06-.177.118-.266.175l-2.35 1.521.548 1.783 1.949-1.2a.25.25 0 0 0 .119-.213ZM3.678 8.116 5.2 5.766c.058-.09.117-.178.176-.266H3.309a.25.25 0 0 0-.213.119l-1.2 1.95ZM12 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z " > < / path >
< / svg >
< / template >
< template id = " shield-check-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-shield-check " >
< path d = " m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z " > < / path >
< / svg >
< / template >
< template id = " heart-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-heart " >
< path d = " m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002ZM4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.58 20.58 0 0 0 8 13.393a20.58 20.58 0 0 0 3.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.749.749 0 0 1-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5Z " > < / path >
< / svg >
< / template >
< template id = " server-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-server " >
< path d = " M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v4c0 .372-.116.717-.314 1 .198.283.314.628.314 1v4a1.75 1.75 0 0 1-1.75 1.75H1.75A1.75 1.75 0 0 1 0 12.75v-4c0-.358.109-.707.314-1a1.739 1.739 0 0 1-.314-1v-4C0 1.784.784 1 1.75 1ZM1.5 2.75v4c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm.25 5.75a.25.25 0 0 0-.25.25v4c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25ZM7 4.75A.75.75 0 0 1 7.75 4h4.5a.75.75 0 0 1 0 1.5h-4.5A.75.75 0 0 1 7 4.75ZM7.75 10h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM3 4.75A.75.75 0 0 1 3.75 4h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 4.75ZM3.75 10h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5Z " > < / path >
< / svg >
< / template >
< template id = " globe-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-globe " >
< path d = " M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM5.78 8.75a9.64 9.64 0 0 0 1.363 4.177c.255.426.542.832.857 1.215.245-.296.551-.705.857-1.215A9.64 9.64 0 0 0 10.22 8.75Zm4.44-1.5a9.64 9.64 0 0 0-1.363-4.177c-.307-.51-.612-.919-.857-1.215a9.927 9.927 0 0 0-.857 1.215A9.64 9.64 0 0 0 5.78 7.25Zm-5.944 1.5H1.543a6.507 6.507 0 0 0 4.666 5.5c-.123-.181-.24-.365-.352-.552-.715-1.192-1.437-2.874-1.581-4.948Zm-2.733-1.5h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.507 6.507 0 0 0-4.666 5.5Zm10.181 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.507 6.507 0 0 0 4.666-5.5Zm2.733-1.5a6.507 6.507 0 0 0-4.666-5.5c.123.181.24.365.353.552.714 1.192 1.436 2.874 1.58 4.948Z " > < / path >
< / svg >
< / template >
< template id = " issue-opened-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-issue-opened " >
< path d = " M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z " > < / path > < path d = " M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z " > < / path >
< / svg >
< / template >
< template id = " device-mobile-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-device-mobile " >
< path d = " M3.75 0h8.5C13.216 0 14 .784 14 1.75v12.5A1.75 1.75 0 0 1 12.25 16h-8.5A1.75 1.75 0 0 1 2 14.25V1.75C2 .784 2.784 0 3.75 0ZM3.5 1.75v12.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25ZM8 13a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z " > < / path >
< / svg >
< / template >
< template id = " package-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-package " >
< path d = " m8.878.392 5.25 3.045c.54.314.872.89.872 1.514v6.098a1.75 1.75 0 0 1-.872 1.514l-5.25 3.045a1.75 1.75 0 0 1-1.756 0l-5.25-3.045A1.75 1.75 0 0 1 1 11.049V4.951c0-.624.332-1.201.872-1.514L7.122.392a1.75 1.75 0 0 1 1.756 0ZM7.875 1.69l-4.63 2.685L8 7.133l4.755-2.758-4.63-2.685a.248.248 0 0 0-.25 0ZM2.5 5.677v5.372c0 .09.047.171.125.216l4.625 2.683V8.432Zm6.25 8.271 4.625-2.683a.25.25 0 0 0 .125-.216V5.677L8.75 8.432Z " > < / path >
< / svg >
< / template >
< template id = " credit-card-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-credit-card " >
< path d = " M10.75 9a.75.75 0 0 0 0 1.5h1.5a.75.75 0 0 0 0-1.5h-1.5Z " > < / path > < path d = " M0 3.75C0 2.784.784 2 1.75 2h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 14H1.75A1.75 1.75 0 0 1 0 12.25ZM14.5 6.5h-13v5.75c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25Zm0-2.75a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25V5h13Z " > < / path >
< / svg >
< / template >
< template id = " play-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-play " >
< path d = " M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z " > < / path >
< / svg >
< / template >
< template id = " gift-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-gift " >
< path d = " M2 2.75A2.75 2.75 0 0 1 4.75 0c.983 0 1.873.42 2.57 1.232.268.318.497.668.68 1.042.183-.375.411-.725.68-1.044C9.376.42 10.266 0 11.25 0a2.75 2.75 0 0 1 2.45 4h.55c.966 0 1.75.784 1.75 1.75v2c0 .698-.409 1.301-1 1.582v4.918A1.75 1.75 0 0 1 13.25 16H2.75A1.75 1.75 0 0 1 1 14.25V9.332C.409 9.05 0 8.448 0 7.75v-2C0 4.784.784 4 1.75 4h.55c-.192-.375-.3-.8-.3-1.25ZM7.25 9.5H2.5v4.75c0 .138.112.25.25.25h4.5Zm1.5 0v5h4.5a.25.25 0 0 0 .25-.25V9.5Zm0-4V8h5.5a.25.25 0 0 0 .25-.25v-2a.25.25 0 0 0-.25-.25Zm-7 0a.25.25 0 0 0-.25.25v2c0 .138.112.25.25.25h5.5V5.5h-5.5Zm3-4a1.25 1.25 0 0 0 0 2.5h2.309c-.233-.818-.542-1.401-.878-1.793-.43-.502-.915-.707-1.431-.707ZM8.941 4h2.309a1.25 1.25 0 0 0 0-2.5c-.516 0-1 .205-1.43.707-.337.392-.646.975-.879 1.793Z " > < / path >
< / svg >
< / template >
< template id = " code-square-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-code-square " >
< path d = " M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z " > < / path >
< / svg >
< / template >
< template id = " device-desktop-icon " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-device-desktop " >
< path d = " M14.25 1c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 14.25 12h-3.727c.099 1.041.52 1.872 1.292 2.757A.752.752 0 0 1 11.25 16h-6.5a.75.75 0 0 1-.565-1.243c.772-.885 1.192-1.716 1.292-2.757H1.75A1.75 1.75 0 0 1 0 10.25v-7.5C0 1.784.784 1 1.75 1ZM1.75 2.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25ZM9.018 12H6.982a5.72 5.72 0 0 1-.765 2.5h3.566a5.72 5.72 0 0 1-.765-2.5Z " > < / path >
< / svg >
< / template >
< div class = " position-relative " >
< ul
role = " listbox "
class = " ActionListWrap QueryBuilder-ListWrap "
aria-label = " Suggestions "
data-action = "
combobox-commit : query-builder #comboboxCommit
mousedown : query-builder #resultsMousedown
"
data-target = " query-builder.resultsList "
data-persist -list = false
id = " query-builder-test-results "
> < / ul >
< / div >
< div class = " FormControl-inlineValidation " id = " validation-52a342ee-6bc0-4b95-967f-dfe1f9f4480a " hidden = " hidden " >
< span class = " FormControl-inlineValidation--visual " >
< svg aria-hidden = " true " height = " 12 " viewBox = " 0 0 12 12 " version = " 1.1 " width = " 12 " data-view -component = " true " class = " octicon octicon-alert-fill " >
< path d = " M4.855.708c.5-.896 1.79-.896 2.29 0l4.675 8.351a1.312 1.312 0 0 1-1.146 1.954H1.33A1.313 1.313 0 0 1 .183 9.058ZM7 7V3H5v4Zm-1 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z " > < / path >
< / svg >
< / span >
< span > < / span >
< / div > < / div >
< div data-target = " query-builder.screenReaderFeedback " aria-live = " polite " aria-atomic = " true " class = " sr-only " > < / div >
< / query-builder > < / form >
< div class = " d-flex flex-row color-fg-muted px-3 text-small color-bg-default search-feedback-prompt " >
< a target = " _blank " href = " https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax " data-view -component = " true " class = " Link color-fg-accent text-normal ml-2 " > Search syntax tips < / a > < div class = " d-flex flex-1 " > < / div >
< / div >
< / div >
< / div >
< / div >
< / modal-dialog > < / div >
< / div >
< div data-action = " click:qbsearch-input#retract " class = " dark-backdrop position-fixed " hidden data-target = " qbsearch-input.darkBackdrop " > < / div >
< div class = " color-fg-default " >
< dialog-helper >
< dialog data-target = " qbsearch-input.feedbackDialog " data-action = " close:qbsearch-input#handleDialogClose cancel:qbsearch-input#handleDialogClose " id = " feedback-dialog " aria-modal = " true " aria-labelledby = " feedback-dialog-title " aria-describedby = " feedback-dialog-description " data-view -component = " true " class = " Overlay Overlay-whenNarrow Overlay--size-medium Overlay--motion-scaleFade Overlay--disableScroll " >
< div data-view -component = " true " class = " Overlay-header " >
< div class = " Overlay-headerContentWrap " >
< div class = " Overlay-titleWrap " >
< h1 class = " Overlay-title " id = " feedback-dialog-title " >
Provide feedback
< / h1 >
< / div >
< div class = " Overlay-actionWrap " >
< button data-close -dialog -id = " feedback-dialog " aria-label = " Close " type = " button " data-view -component = " true " class = " close-button Overlay-closeButton " > < svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-x " >
< path d = " M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z " > < / path >
< / svg > < / button >
< / div >
< / div >
< / div >
< scrollable-region data-labelled -by = " feedback-dialog-title " >
< div data-view -component = " true " class = " Overlay-body " > < ! - - ' " ` --><!-- </textarea></xmp> --></option></form><form id= " code-search -feedback -form " data-turbo= " false " action= " / search / feedback " accept-charset= " UTF - 8 " method= " post " ><input type= " hidden " data-csrf= " true " name= " authenticity_token " value= " L9sNQwngVE5fDLiS863v3i6aOfibsG51A9daEXZk9wzDHHUajOdvnP3Qq7yVa2nIq72uoMOAtySdwiiYvCQ0jw = = " />
< p > We read every piece of feedback , and take your input very seriously . < / p >
< textarea name = " feedback " class = " form-control width-full mb-2 " style = " height: 120px " id = " feedback " > < / textarea >
< input name = " include_email " id = " include_email " aria-label = " Include my email address so I can be contacted " class = " form-control mr-2 " type = " checkbox " >
< label for = " include_email " style = " font-weight: normal " > Include my email address so I can be contacted < / label >
< / form > < / div >
< / scrollable-region >
< div data-view -component = " true " class = " Overlay-footer Overlay-footer--alignEnd " > < button data-close -dialog -id = " feedback-dialog " type = " button " data-view -component = " true " class = " btn " > Cancel
< / button >
< button form = " code-search-feedback-form " data-action = " click:qbsearch-input#submitFeedback " type = " submit " data-view -component = " true " class = " btn-primary btn " > Submit feedback
< / button >
< / div >
< / dialog > < / dialog-helper >
< custom-scopes data-target = " qbsearch-input.customScopesManager " >
< dialog-helper >
< dialog data-target = " custom-scopes.customScopesModalDialog " data-action = " close:qbsearch-input#handleDialogClose cancel:qbsearch-input#handleDialogClose " id = " custom-scopes-dialog " aria-modal = " true " aria-labelledby = " custom-scopes-dialog-title " aria-describedby = " custom-scopes-dialog-description " data-view -component = " true " class = " Overlay Overlay-whenNarrow Overlay--size-medium Overlay--motion-scaleFade Overlay--disableScroll " >
< div data-view -component = " true " class = " Overlay-header Overlay-header--divided " >
< div class = " Overlay-headerContentWrap " >
< div class = " Overlay-titleWrap " >
< h1 class = " Overlay-title " id = " custom-scopes-dialog-title " >
Saved searches
< / h1 >
< h2 id = " custom-scopes-dialog-description " class = " Overlay-description " > Use saved searches to filter your results more quickly < / h2 >
< / div >
< div class = " Overlay-actionWrap " >
< button data-close -dialog -id = " custom-scopes-dialog " aria-label = " Close " type = " button " data-view -component = " true " class = " close-button Overlay-closeButton " > < svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-x " >
< path d = " M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z " > < / path >
< / svg > < / button >
< / div >
< / div >
< / div >
< scrollable-region data-labelled -by = " custom-scopes-dialog-title " >
< div data-view -component = " true " class = " Overlay-body " > < div data-target = " custom-scopes.customScopesModalDialogFlash " > < / div >
< div hidden class = " create-custom-scope-form " data-target = " custom-scopes.createCustomScopeForm " >
< ! - - ' " ` --><!-- </textarea></xmp> --></option></form><form id= " custom-scopes -dialog -form " data-turbo= " false " action= " / search / custom_scopes " accept-charset= " UTF - 8 " method= " post " ><input type= " hidden " data-csrf= " true " name= " authenticity_token " value= " gdJ74rKqG7QQ2T92yypJLFVgIEPuD / zfyJjrktIIrWwzbZpQm2ArzSfEPzt6iET / GDmV0gnwFVIYcRdtYt9wiw = = " />
< div data-target = " custom-scopes.customScopesModalDialogFlash " > < / div >
< input type = " hidden " id = " custom_scope_id " name = " custom_scope_id " data-target = " custom-scopes.customScopesIdField " >
< div class = " form-group " >
< label for = " custom_scope_name " > Name < / label >
< auto-check src = " /search/custom_scopes/check_name " required >
< input
type = " text "
name = " custom_scope_name "
id = " custom_scope_name "
data-target = " custom-scopes.customScopesNameField "
class = " form-control "
autocomplete = " off "
placeholder = " github-ruby "
required
maxlength = " 50 " >
< input type = " hidden " data-csrf = " true " value = " MkerJdu4Bp1CR2cvIGnMtYvz9IrVbyx38ZmPNHrEqe7UsU1nCx76Vl3X2TmA8mK49b906OBojar/QuOSmM2oWw== " / >
< / auto-check >
< / div >
< div class = " form-group " >
< label for = " custom_scope_query " > Query < / label >
< input
type = " text "
name = " custom_scope_query "
id = " custom_scope_query "
data-target = " custom-scopes.customScopesQueryField "
class = " form-control "
autocomplete = " off "
placeholder = " (repo:mona/a OR repo:mona/b) AND lang:python "
required
maxlength = " 500 " >
< / div >
< p class = " text-small color-fg-muted " >
To see all available qualifiers , see our < a class = " Link--inTextBlock " href = " https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax " > documentation < / a > .
< / p >
< / form > < / div >
< div data-target = " custom-scopes.manageCustomScopesForm " >
< div data-target = " custom-scopes.list " > < / div >
< / div >
< / div >
< / scrollable-region >
< div data-view -component = " true " class = " Overlay-footer Overlay-footer--alignEnd Overlay-footer--divided " > < button data-action = " click:custom-scopes#customScopesCancel " type = " button " data-view -component = " true " class = " btn " > Cancel
< / button >
< button form = " custom-scopes-dialog-form " data-action = " click:custom-scopes#customScopesSubmit " data-target = " custom-scopes.customScopesSubmitButton " type = " submit " data-view -component = " true " class = " btn-primary btn " > Create saved search
< / button >
< / div >
< / dialog > < / dialog-helper >
< / custom-scopes >
< / div >
< / qbsearch-input >
< div class = " position-relative HeaderMenu-link-wrap d-lg-inline-block " >
< a
href = " /login?return_to=https%3A%2F%2Fgithub.com%2Fdotnet%2Finstall-scripts%2Fblob%2Fmain%2Fsrc%2Fdotnet-install.ps1 "
class = " HeaderMenu-link HeaderMenu-link--sign-in HeaderMenu-button flex-shrink-0 no-underline d-none d-lg-inline-flex border border-lg-0 rounded rounded-lg-0 px-2 py-1 "
style = " margin-left: 12px; "
data-hydro -click = " {"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/dotnet/install-scripts/blob/main/src/dotnet-install.ps1","user_id":null}} " data-hydro -click -hmac = " e97026b84124505336ae0889ce35c7163da6acd303c4017a6f7c962f3132765d "
data-analytics -event = " {"category":"Marketing nav","action":"click to go to homepage","label":"ref_page:Marketing;ref_cta:Sign in;ref_loc:Header"} "
>
Sign in
< / a >
< / div >
< a href = " /signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow&source=header-repo&source_repo=dotnet%2Finstall-scripts "
class = " HeaderMenu-link HeaderMenu-link--sign-up HeaderMenu-button flex-shrink-0 d-flex d-lg-inline-flex no-underline border color-border-default rounded px-2 py-1 "
data-hydro -click = " {"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/dotnet/install-scripts/blob/main/src/dotnet-install.ps1","user_id":null}} " data-hydro -click -hmac = " e97026b84124505336ae0889ce35c7163da6acd303c4017a6f7c962f3132765d "
data-analytics -event = " {"category":"Sign up","action":"click to sign up for account","label":"ref_page:/<user-name>/<repo-name>/blob/show;ref_cta:Sign up;ref_loc:header logged out"} "
>
Sign up
< / a >
< button type = " button " class = " sr-only js-header-menu-focus-trap d-block d-lg-none " > Reseting focus < / button >
< / div >
< / div >
< / div >
< / div >
< / header >
< div hidden = " hidden " data-view -component = " true " class = " js-stale-session-flash stale-session-flash flash flash-warn flash-full " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-alert " >
< path d = " M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z " > < / path >
< / svg >
< span class = " js-stale-session-flash-signed-in " hidden > You signed in with another tab or window . < a class = " Link--inTextBlock " href = " " > Reload < / a > to refresh your session . < / span >
< span class = " js-stale-session-flash-signed-out " hidden > You signed out in another tab or window . < a class = " Link--inTextBlock " href = " " > Reload < / a > to refresh your session . < / span >
< span class = " js-stale-session-flash-switched " hidden > You switched accounts on another tab or window . < a class = " Link--inTextBlock " href = " " > Reload < / a > to refresh your session . < / span >
< button id = " icon-button-db284cdd-422d-43ac-9a20-71dd22a9c4cb " aria-labelledby = " tooltip-dee4dbf7-a733-47c8-aa5e-d5a1a3f31413 " type = " button " data-view -component = " true " class = " Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close " > < svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-x Button-visual " >
< path d = " M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z " > < / path >
< / svg >
< / button > < tool-tip id = " tooltip-dee4dbf7-a733-47c8-aa5e-d5a1a3f31413 " for = " icon-button-db284cdd-422d-43ac-9a20-71dd22a9c4cb " popover = " manual " data-direction = " s " data-type = " label " data-view -component = " true " class = " sr-only position-absolute " > Dismiss alert < / tool-tip >
< / div >
< / div >
< div id = " start-of-content " class = " show-on-focus " > < / div >
< div id = " js-flash-container " class = " flash-container " data-turbo -replace >
< template class = " js-flash-template " >
< div class = " flash flash-full {{ className }} " >
< div >
< button autofocus class = " flash-close js-flash-close " type = " button " aria-label = " Dismiss this message " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-x " >
< path d = " M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z " > < / path >
< / svg >
< / button >
< div aria-atomic = " true " role = " alert " class = " js-flash-alert " >
< div > { { message } } < / div >
< / div >
< / div >
< / div >
< / template >
< / div >
< div
class = " application-main "
data-commit -hovercards -enabled
data-discussion -hovercards -enabled
data-issue -and -pr -hovercards -enabled
data-project -hovercards -enabled
>
< div itemscope itemtype = " http://schema.org/SoftwareSourceCode " class = " " >
< main id = " js-repo-pjax-container " >
< div id = " repository-container-header " class = " pt-3 hide-full-screen " style = " background-color: var(--page-header-bgColor, var(--color-page-header-bg)); " data-turbo -replace >
< div class = " d-flex flex-nowrap flex-justify-end mb-3 px-3 px-lg-5 " style = " gap: 1rem; " >
< div class = " flex-auto min-width-0 width-fit " >
< div class = " d-flex flex-wrap flex-items-center wb-break-word f3 text-normal " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-repo color-fg-muted mr-2 " >
< path d = " M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z " > < / path >
< / svg >
< span class = " author flex-self-stretch " itemprop = " author " >
< a class = " url fn " rel = " author " data-hovercard -type = " organization " data-hovercard -url = " /orgs/dotnet/hovercard " data-octo -click = " hovercard-link-click " data-octo -dimensions = " link_type:self " href = " /dotnet " >
dotnet
< / a > < / span >
< span class = " mx-1 flex-self-stretch color-fg-muted " > / < / span >
< strong itemprop = " name " class = " mr-2 flex-self-stretch " >
< a data-pjax = " #repo-content-pjax-container " data-turbo -frame = " repo-content-turbo-frame " href = " /dotnet/install-scripts " > install-scripts < / a >
< / strong >
< span > < / span > < span class = " Label Label--secondary v-align-middle mr-1 " > Public < / span >
< / div >
< / div >
< div id = " repository-details-container " class = " flex-shrink-0 " data-turbo -replace style = " max-width: 70%; " >
< ul class = " pagehead-actions flex-shrink-0 d-none d-md-inline " style = " padding: 2px 0; " >
< li >
< a href = " /login?return_to=%2Fdotnet%2Finstall-scripts " rel = " nofollow " id = " repository-details-watch-button " data-hydro -click = " {"event_type":"authentication.click","payload":{"location_in_page":"notification subscription menu watch","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://github.com/dotnet/install-scripts/blob/main/src/dotnet-install.ps1","user_id":null}} " data-hydro -click -hmac = " e3edce88b7530e08fcf0be962acb8a61ad1582dc986fa9a772fd115440400bad " aria-label = " You must be signed in to change notification settings " data-view -component = " true " class = " btn-sm btn " > < svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-bell mr-2 " >
< path d = " M8 16a2 2 0 0 0 1.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 0 0 8 16ZM3 5a5 5 0 0 1 10 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.519 1.519 0 0 1 13.482 13H2.518a1.516 1.516 0 0 1-1.263-2.36l1.703-2.554A.255.255 0 0 0 3 7.947Zm5-3.5A3.5 3.5 0 0 0 4.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.017.017 0 0 0-.003.01l.001.006c0 .002.002.004.004.006l.006.004.007.001h10.964l.007-.001.006-.004.004-.006.001-.007a.017.017 0 0 0-.003-.01l-1.703-2.554a1.745 1.745 0 0 1-.294-.97V5A3.5 3.5 0 0 0 8 1.5Z " > < / path >
< / svg > Notifications
< / a > < tool-tip id = " tooltip-8877b6ba-d88d-40c0-b0d9-ba2cd2714aaf " for = " repository-details-watch-button " popover = " manual " data-direction = " s " data-type = " description " data-view -component = " true " class = " sr-only position-absolute " > You must be signed in to change notification settings < / tool-tip >
< / li >
< li >
< a icon = " repo-forked " id = " fork-button " href = " /login?return_to=%2Fdotnet%2Finstall-scripts " rel = " nofollow " data-hydro -click = " {"event_type":"authentication.click","payload":{"location_in_page":"repo details fork button","repository_id":265272737,"auth_type":"LOG_IN","originating_url":"https://github.com/dotnet/install-scripts/blob/main/src/dotnet-install.ps1","user_id":null}} " data-hydro -click -hmac = " ab37c9604275712c3c6cf2b79bf2012375323837956148237c72c495668c45b2 " data-view -component = " true " class = " btn-sm btn " > < svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-repo-forked mr-2 " >
< path d = " M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z " > < / path >
< / svg > Fork
< span id = " repo-network-counter " data-pjax -replace = " true " data-turbo -replace = " true " title = " 76 " data-view -component = " true " class = " Counter " > 76 < / span >
< / a >
< / li >
< li >
< div data-view -component = " true " class = " BtnGroup d-flex " >
< a href = " /login?return_to=%2Fdotnet%2Finstall-scripts " rel = " nofollow " data-hydro -click = " {"event_type":"authentication.click","payload":{"location_in_page":"star button","repository_id":265272737,"auth_type":"LOG_IN","originating_url":"https://github.com/dotnet/install-scripts/blob/main/src/dotnet-install.ps1","user_id":null}} " data-hydro -click -hmac = " ba41884b5cbe19e24b5ee698599fbf0f580947783d5532858096d34e66b57c9d " aria-label = " You must be signed in to star a repository " data-view -component = " true " class = " tooltipped tooltipped-sw btn-sm btn " > < svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-star v-align-text-bottom d-inline-block mr-2 " >
< path d = " M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z " > < / path >
< / svg > < span data-view -component = " true " class = " d-inline " >
Star
< / span > < span id = " repo-stars-counter-star " aria-label = " 147 users starred this repository " data-singular -suffix = " user starred this repository " data-plural -suffix = " users starred this repository " data-turbo -replace = " true " title = " 147 " data-view -component = " true " class = " Counter js-social-count " > 147 < / span >
< / a > < / div >
< / li >
< / ul >
< / div >
< / div >
< div id = " responsive-meta-container " data-turbo -replace >
< / div >
< nav data-pjax = " #js-repo-pjax-container " aria-label = " Repository " data-view -component = " true " class = " js-repo-nav js-sidenav-container-pjax js-responsive-underlinenav overflow-hidden UnderlineNav px-3 px-md-4 px-lg-5 " >
< ul data-view -component = " true " class = " UnderlineNav-body list-style-none " >
< li data-view -component = " true " class = " d-inline-flex " >
< a id = " code-tab " href = " /dotnet/install-scripts " data-tab -item = " i0code-tab " data-selected -links = " repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages repo_deployments repo_attestations /dotnet/install-scripts " data-pjax = " #repo-content-pjax-container " data-turbo -frame = " repo-content-turbo-frame " data-hotkey = " g c " data-analytics -event = " {"category":"Underline navbar","action":"Click tab","label":"Code","target":"UNDERLINE_NAV.TAB"} " aria-current = " page " data-view -component = " true " class = " UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item selected " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-code UnderlineNav-octicon d-none d-sm-inline " >
< path d = " m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z " > < / path >
< / svg >
< span data-content = " Code " > Code < / span >
< span id = " code-repo-tab-count " data-pjax -replace = " " data-turbo -replace = " " title = " Not available " data-view -component = " true " class = " Counter " > < / span >
< / a > < / li >
< li data-view -component = " true " class = " d-inline-flex " >
< a id = " issues-tab " href = " /dotnet/install-scripts/issues " data-tab -item = " i1issues-tab " data-selected -links = " repo_issues repo_labels repo_milestones /dotnet/install-scripts/issues " data-pjax = " #repo-content-pjax-container " data-turbo -frame = " repo-content-turbo-frame " data-hotkey = " g i " data-analytics -event = " {"category":"Underline navbar","action":"Click tab","label":"Issues","target":"UNDERLINE_NAV.TAB"} " data-view -component = " true " class = " UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-issue-opened UnderlineNav-octicon d-none d-sm-inline " >
< path d = " M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z " > < / path > < path d = " M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z " > < / path >
< / svg >
< span data-content = " Issues " > Issues < / span >
< span id = " issues-repo-tab-count " data-pjax -replace = " " data-turbo -replace = " " title = " 10 " data-view -component = " true " class = " Counter " > 10 < / span >
< / a > < / li >
< li data-view -component = " true " class = " d-inline-flex " >
< a id = " pull-requests-tab " href = " /dotnet/install-scripts/pulls " data-tab -item = " i2pull-requests-tab " data-selected -links = " repo_pulls checks /dotnet/install-scripts/pulls " data-pjax = " #repo-content-pjax-container " data-turbo -frame = " repo-content-turbo-frame " data-hotkey = " g p " data-analytics -event = " {"category":"Underline navbar","action":"Click tab","label":"Pull requests","target":"UNDERLINE_NAV.TAB"} " data-view -component = " true " class = " UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-git-pull-request UnderlineNav-octicon d-none d-sm-inline " >
< path d = " M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z " > < / path >
< / svg >
< span data-content = " Pull requests " > Pull requests < / span >
< span id = " pull-requests-repo-tab-count " data-pjax -replace = " " data-turbo -replace = " " title = " 2 " data-view -component = " true " class = " Counter " > 2 < / span >
< / a > < / li >
< li data-view -component = " true " class = " d-inline-flex " >
< a id = " projects-tab " href = " /dotnet/install-scripts/projects " data-tab -item = " i3projects-tab " data-selected -links = " repo_projects new_repo_project repo_project /dotnet/install-scripts/projects " data-pjax = " #repo-content-pjax-container " data-turbo -frame = " repo-content-turbo-frame " data-hotkey = " g b " data-analytics -event = " {"category":"Underline navbar","action":"Click tab","label":"Projects","target":"UNDERLINE_NAV.TAB"} " data-view -component = " true " class = " UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-table UnderlineNav-octicon d-none d-sm-inline " >
< path d = " M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25ZM6.5 6.5v8h7.75a.25.25 0 0 0 .25-.25V6.5Zm8-1.5V1.75a.25.25 0 0 0-.25-.25H6.5V5Zm-13 1.5v7.75c0 .138.112.25.25.25H5v-8ZM5 5V1.5H1.75a.25.25 0 0 0-.25.25V5Z " > < / path >
< / svg >
< span data-content = " Projects " > Projects < / span >
< span id = " projects-repo-tab-count " data-pjax -replace = " " data-turbo -replace = " " title = " 0 " hidden = " hidden " data-view -component = " true " class = " Counter " > 0 < / span >
< / a > < / li >
< li data-view -component = " true " class = " d-inline-flex " >
< a id = " security-tab " href = " /dotnet/install-scripts/security " data-tab -item = " i4security-tab " data-selected -links = " security overview alerts policy token_scanning code_scanning /dotnet/install-scripts/security " data-pjax = " #repo-content-pjax-container " data-turbo -frame = " repo-content-turbo-frame " data-hotkey = " g s " data-analytics -event = " {"category":"Underline navbar","action":"Click tab","label":"Security","target":"UNDERLINE_NAV.TAB"} " data-view -component = " true " class = " UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-shield UnderlineNav-octicon d-none d-sm-inline " >
< path d = " M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z " > < / path >
< / svg >
< span data-content = " Security " > Security < / span >
< include-fragment src = " /dotnet/install-scripts/security/overall-count " accept = " text/fragment+html " > < / include-fragment >
< / a > < / li >
< li data-view -component = " true " class = " d-inline-flex " >
< a id = " insights-tab " href = " /dotnet/install-scripts/pulse " data-tab -item = " i5insights-tab " data-selected -links = " repo_graphs repo_contributors dependency_graph dependabot_updates pulse people community /dotnet/install-scripts/pulse " data-pjax = " #repo-content-pjax-container " data-turbo -frame = " repo-content-turbo-frame " data-analytics -event = " {"category":"Underline navbar","action":"Click tab","label":"Insights","target":"UNDERLINE_NAV.TAB"} " data-view -component = " true " class = " UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-graph UnderlineNav-octicon d-none d-sm-inline " >
< path d = " M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z " > < / path >
< / svg >
< span data-content = " Insights " > Insights < / span >
< span id = " insights-repo-tab-count " data-pjax -replace = " " data-turbo -replace = " " title = " Not available " data-view -component = " true " class = " Counter " > < / span >
< / a > < / li >
< / ul >
< div style = " visibility:hidden; " data-view -component = " true " class = " UnderlineNav-actions js-responsive-underlinenav-overflow position-absolute pr-3 pr-md-4 pr-lg-5 right-0 " > < action-menu data-select -variant = " none " data-view -component = " true " >
< focus-group direction = " vertical " mnemonics retain >
< button id = " action-menu-0a5f5627-c227-4f90-85d5-3d62ccdf5abe-button " popovertarget = " action-menu-0a5f5627-c227-4f90-85d5-3d62ccdf5abe-overlay " aria-controls = " action-menu-0a5f5627-c227-4f90-85d5-3d62ccdf5abe-list " aria-haspopup = " true " aria-labelledby = " tooltip-00d3a8d3-6105-48ab-82b3-1ab5befb44c1 " type = " button " data-view -component = " true " class = " Button Button--iconOnly Button--secondary Button--medium UnderlineNav-item " > < svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-kebab-horizontal Button-visual " >
< path d = " M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z " > < / path >
< / svg >
< / button > < tool-tip id = " tooltip-00d3a8d3-6105-48ab-82b3-1ab5befb44c1 " for = " action-menu-0a5f5627-c227-4f90-85d5-3d62ccdf5abe-button " popover = " manual " data-direction = " s " data-type = " label " data-view -component = " true " class = " sr-only position-absolute " > Additional navigation options < / tool-tip >
< anchored-position data-target = " action-menu.overlay " id = " action-menu-0a5f5627-c227-4f90-85d5-3d62ccdf5abe-overlay " anchor = " action-menu-0a5f5627-c227-4f90-85d5-3d62ccdf5abe-button " align = " start " side = " outside-bottom " anchor-offset = " normal " popover = " auto " data-view -component = " true " >
< div data-view -component = " true " class = " Overlay Overlay--size-auto " >
< div data-view -component = " true " class = " Overlay-body Overlay-body--paddingNone " > < action-list >
< div data-view -component = " true " >
< ul aria-labelledby = " action-menu-0a5f5627-c227-4f90-85d5-3d62ccdf5abe-button " id = " action-menu-0a5f5627-c227-4f90-85d5-3d62ccdf5abe-list " role = " menu " data-view -component = " true " class = " ActionListWrap--inset ActionListWrap " >
< li hidden = " hidden " data-menu -item = " i0code-tab " data-targets = " action-list.items " role = " none " data-view -component = " true " class = " ActionListItem " >
< a tabindex = " -1 " id = " item-97dbc47c-db34-4a4d-ac5a-f1b33ae508a0 " href = " /dotnet/install-scripts " role = " menuitem " data-view -component = " true " class = " ActionListContent ActionListContent--visual16 " >
< span class = " ActionListItem-visual ActionListItem-visual--leading " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-code " >
< path d = " m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z " > < / path >
< / svg >
< / span >
< span data-view -component = " true " class = " ActionListItem-label " >
Code
< / span >
< / a >
< / li >
< li hidden = " hidden " data-menu -item = " i1issues-tab " data-targets = " action-list.items " role = " none " data-view -component = " true " class = " ActionListItem " >
< a tabindex = " -1 " id = " item-4e85aa86-af11-4928-9ced-48feec19398c " href = " /dotnet/install-scripts/issues " role = " menuitem " data-view -component = " true " class = " ActionListContent ActionListContent--visual16 " >
< span class = " ActionListItem-visual ActionListItem-visual--leading " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-issue-opened " >
< path d = " M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z " > < / path > < path d = " M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z " > < / path >
< / svg >
< / span >
< span data-view -component = " true " class = " ActionListItem-label " >
Issues
< / span >
< / a >
< / li >
< li hidden = " hidden " data-menu -item = " i2pull-requests-tab " data-targets = " action-list.items " role = " none " data-view -component = " true " class = " ActionListItem " >
< a tabindex = " -1 " id = " item-9f2f3f37-cab4-4d07-bda5-fb49ef8f1d43 " href = " /dotnet/install-scripts/pulls " role = " menuitem " data-view -component = " true " class = " ActionListContent ActionListContent--visual16 " >
< span class = " ActionListItem-visual ActionListItem-visual--leading " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-git-pull-request " >
< path d = " M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z " > < / path >
< / svg >
< / span >
< span data-view -component = " true " class = " ActionListItem-label " >
Pull requests
< / span >
< / a >
< / li >
< li hidden = " hidden " data-menu -item = " i3projects-tab " data-targets = " action-list.items " role = " none " data-view -component = " true " class = " ActionListItem " >
< a tabindex = " -1 " id = " item-6d6122b8-dcf9-4df6-ad19-12d4137a8280 " href = " /dotnet/install-scripts/projects " role = " menuitem " data-view -component = " true " class = " ActionListContent ActionListContent--visual16 " >
< span class = " ActionListItem-visual ActionListItem-visual--leading " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-table " >
< path d = " M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25ZM6.5 6.5v8h7.75a.25.25 0 0 0 .25-.25V6.5Zm8-1.5V1.75a.25.25 0 0 0-.25-.25H6.5V5Zm-13 1.5v7.75c0 .138.112.25.25.25H5v-8ZM5 5V1.5H1.75a.25.25 0 0 0-.25.25V5Z " > < / path >
< / svg >
< / span >
< span data-view -component = " true " class = " ActionListItem-label " >
Projects
< / span >
< / a >
< / li >
< li hidden = " hidden " data-menu -item = " i4security-tab " data-targets = " action-list.items " role = " none " data-view -component = " true " class = " ActionListItem " >
< a tabindex = " -1 " id = " item-eae81f4a-14d1-4e41-9ab9-90f45fb222aa " href = " /dotnet/install-scripts/security " role = " menuitem " data-view -component = " true " class = " ActionListContent ActionListContent--visual16 " >
< span class = " ActionListItem-visual ActionListItem-visual--leading " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-shield " >
< path d = " M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z " > < / path >
< / svg >
< / span >
< span data-view -component = " true " class = " ActionListItem-label " >
Security
< / span >
< / a >
< / li >
< li hidden = " hidden " data-menu -item = " i5insights-tab " data-targets = " action-list.items " role = " none " data-view -component = " true " class = " ActionListItem " >
< a tabindex = " -1 " id = " item-acd0cc85-d377-4d27-a3db-8e72cb9d7b0e " href = " /dotnet/install-scripts/pulse " role = " menuitem " data-view -component = " true " class = " ActionListContent ActionListContent--visual16 " >
< span class = " ActionListItem-visual ActionListItem-visual--leading " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-graph " >
< path d = " M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z " > < / path >
< / svg >
< / span >
< span data-view -component = " true " class = " ActionListItem-label " >
Insights
< / span >
< / a >
< / li >
< / ul >
< / div > < / action-list >
< / div >
< / div > < / anchored-position > < / focus-group >
< / action-menu > < / div >
< / nav >
< / div >
< turbo-frame id = " repo-content-turbo-frame " target = " _top " data-turbo -action = " advance " class = " " >
< div id = " repo-content-pjax-container " class = " repository-content " >
< react-app
app-name = " react-code-view "
initial-path = " /dotnet/install-scripts/blob/main/src/dotnet-install.ps1 "
style = " display: block; min-height: calc(100vh - 64px); "
data-attempted -ssr = " true "
data-ssr = " true "
data-lazy = " false "
data-alternate = " false "
>
< script type = " application/json " data-target = " react-app.embeddedData " > { " payload " : { " allShortcutsEnabled " : false , " fileTree " : { " src " : { " items " : [ { " name " : " .vscode " , " path " : " src/.vscode " , " contentType " : " directory " } , { " name " : " Signing " , " path " : " src/Signing " , " contentType " : " directory " } , { " name " : " dotnet-install.ps1 " , " path " : " src/dotnet-install.ps1 " , " contentType " : " file " } , { " name " : " dotnet-install.sh " , " path " : " src/dotnet-install.sh " , " contentType " : " file " } , { " name " : " install-dotnet-preview.sh " , " path " : " src/install-dotnet-preview.sh " , " contentType " : " file " } ] , " totalCount " : 5 } , " " : { " items " : [ { " name " : " .config " , " path " : " .config " , " contentType " : " directory " } , { " name " : " docs " , " path " : " docs " , " contentType " : " directory " } , { " name " : " eng " , " path " : " eng " , " contentType " : " directory " } , { " name " : " src " , " path " : " src " , " contentType " : " directory " } , { " name " : " tests " , " path " : " tests " , " contentType " : " directory " } , { " name " : " .editorconfig " , " path " : " .editorconfig " , " contentType " : " file " } , { " name " : " .gitattributes " , " path " : " .gitattributes " , " contentType " : " file " } , { " name " : " .gitignore " , " path " : " .gitignore " , " contentType " : " file " } , { " name " : " Build.cmd " , " path " : " Build.cmd " , " contentType " : " file " } , { " name " : " CODE-OF-CONDUCT.md " , " path " : " CODE-OF-CONDUCT.md " , " contentType " : " file " } , { " name " : " Directory.Build.props " , " path " : " Directory.Build.props " , " contentType " : " file " } , { " name " : " Directory.Build.targets " , " path " : " Directory.Build.targets " , " contentType " : " file " } , { " name " : " Install-Scripts.sln " , " path " : " Install-Scripts.sln " , " contentType " : " file " } , { " name " : " LICENSE.TXT " , " path " : " LICENSE.TXT " , " contentType " : " file " } , { " name " : " NuGet.config " , " path " : " NuGet.config " , " contentType " : " file " } , { " name " : " THIRD-PARTY-NOTICES.TXT " , " path " : " THIRD-PARTY-NOTICES.TXT " , " contentType " : " file " } , { " name " : " azure-pipelines-PR.yml " , " path " : " azure-pipelines-PR.yml " , " contentType " : " file " } , { " name " : " azure-pipelines-official.yml " , " path " : " azure-pipelines-official.yml " , " contentType " : " file " } , { " name " : " build.sh " , " path " : " build.sh " , " contentType " : " file " } , { " name " : " dotnet-install.asc " , " path " : " dotnet-install.asc " , " contentType " : " file " } , { " name " : " global.json " , " path " : " global.json " , " contentType " : " file " } , { " name " : " testEnvironments.json " , " path " : " testEnvironments.json " , " contentType " : " file " } ] , " totalCount " : 22 } } , " fileTreeProcessingTime " : 5.164064000000001 , " foldersToFetch " : [ ] , " repo " : { " id " : 265272737 , " defaultBranch " : " main " , " name " : " install-scripts " , " ownerLogin " : " dotnet " , " currentUserCanPush " : false , " isFork " : false , " isEmpty " : false , " createdAt " : " 2020-05-19T14:37:14.000Z " , " ownerAvatar " : " https://avatars.githubusercontent.com/u/9141961?v=4 " , " public " : true , " private " : false , " isOrgOwned " : true } , " codeLineWrapEnabled " : false , " symbolsExpanded " : false , " treeExpanded " : true , " refInfo " : { " name " : " main " , " listCacheKey " : " v0:1734887902.0 " , " canEdit " : false , " refType " : " branch " , " currentOid " : " 6cbf2c9ff4615b468f39dfbd2e536e2f6fbe2f95 " } , " path " : " src/dotnet-install.ps1 " , " currentUser " : null , " blob " : { " rawLines " : [ " # " , " # Copyright (c) .NET Foundation and contributors. All rights reserved. " , " # Licensed under the MIT license. See LICENSE file in the project root for full license information. " , " # " , " " , " \u003c# " , " .SYNOPSIS " , " Installs dotnet cli " , " .DESCRIPTION " , " Installs dotnet cli. If dotnet installation already exists in the given directory " , " it will update it only if the requested version differs from the one already installed. " , " " , " Note that the intended use of this script is for Continuous Integration (CI) scenarios, where: " , " - The SDK needs to be installed without user interaction and without admin rights. " , " - The SDK installation doesn't need to persist across multiple CI runs. " , " To set up a development environment or to run apps, use installers rather than this script. Visit https://dotnet.microsoft.com/download to get the installer. " , " " , " .PARAMETER Channel " , " Default: LTS " , " Download from the Channel specified. Possible values: " , " - STS - the most recent Standard Term Support release " , " - LTS - the most recent Long Term Support release " , " - 2-part version in a format A.B - represents a specific release " , " examples: 2.0, 1.0 " , " - 3-part version in a format A.B.Cxx - represents a specific SDK release " , "
< div data-target = " react-app.reactRoot " > < style data-styled = " true " data-styled -version = " 5.3.11 " > . hOfjFo { padding : 0 ; } / * ! sc * /
. oDGAe { max-width : 100 % ; margin-left : auto ; margin-right : auto ; display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -flex -wrap: wrap ; -ms -flex -wrap: wrap ; flex-wrap : wrap ; } / * ! sc * /
. kowOcT { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -flex: 1 1 100 % ; -ms -flex: 1 1 100 % ; flex : 1 1 100 % ; -webkit -flex -wrap: wrap ; -ms -flex -wrap: wrap ; flex-wrap : wrap ; max-width : 100 % ; } / * ! sc * /
. gISSDQ { width : 100 % ; } / * ! sc * /
@media screen and ( min-width : 544px ) { . gISSDQ { width : 100 % ; } } / * ! sc * /
@media screen and ( min-width : 768px ) { . gISSDQ { width : auto ; } } / * ! sc * /
. cEmWSE { display : none ; -webkit -order: 1 ; -ms -flex -order: 1 ; order : 1 ; width : 100 % ; margin-left : 0 ; margin-right : 0 ; -webkit -flex -direction: column-reverse ; -ms -flex -direction: column-reverse ; flex-direction : column-reverse ; margin-bottom : 0 ; min-width : 0 ; } / * ! sc * /
@media screen and ( min-width : 768px ) { . cEmWSE { width : auto ; margin-top : 0 ! important ; margin-bottom : 0 ! important ; position : -webkit -sticky ; position : sticky ; top : 0px ; max-height : 100vh ! important ; -webkit -flex -direction: row ; -ms -flex -direction: row ; flex-direction : row ; margin-right : 0 ; height : 100vh ; } } / * ! sc * /
@media print , screen and ( max-width : 1011px ) and ( min-width : 768px ) { . cEmWSE { display : none ; } } / * ! sc * /
. hPvFuC { margin-left : 0 ; margin-right : 0 ; display : none ; margin-top : 0 ; } / * ! sc * /
@media screen and ( min-width : 768px ) { . hPvFuC { margin-left : 0 ! important ; margin-right : 0 ! important ; } } / * ! sc * /
. fFSoPl { - -pane -min -width: 256px ; - -pane -max -width -diff: 511px ; - -pane -max -width: calc ( 100vw - var ( - -pane -max -width -diff ) ) ; width : 100 % ; padding : 0 ; } / * ! sc * /
@media screen and ( min-width : 544px ) { } / * ! sc * /
@media screen and ( min-width : 768px ) { . fFSoPl { width : clamp ( var ( - -pane -min -width ) , var ( - -pane -width ) , var ( - -pane -max -width ) ) ; overflow : auto ; } } / * ! sc * /
@media screen and ( min-width : 1280px ) { . fFSoPl { - -pane -max -width -diff: 959px ; } } / * ! sc * /
. bTBnTW { height : 100 % ; position : relative ; display : none ; margin-left : 0 ; } / * ! sc * /
. bHLmSv { position : absolute ; inset : 0 - 2px ; cursor : col-resize ; background-color : transparent ; -webkit -transition -delay: 0 . 1s ; transition-delay : 0 . 1s ; } / * ! sc * /
. bHLmSv : hover { background-color : var ( - -bgColor -neutral -muted , var ( - -color -neutral -muted , rgba ( 175 , 184 , 193 , 0.2 ) ) ) ; } / * ! sc * /
. iKqMNA { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -flex -direction: column ; -ms -flex -direction: column ; flex-direction : column ; -webkit -order: 2 ; -ms -flex -order: 2 ; order : 2 ; -webkit -flex -basis: 0 ; -ms -flex -preferred -size: 0 ; flex-basis : 0 ; -webkit -box -flex: 1 ; -webkit -flex -grow: 1 ; -ms -flex -positive: 1 ; flex-grow : 1 ; -webkit -flex -shrink: 1 ; -ms -flex -negative: 1 ; flex-shrink : 1 ; min-width : 1px ; margin-right : auto ; } / * ! sc * /
@media print { . iKqMNA { display : -webkit -box ! important ; display : -webkit -flex ! important ; display : -ms -flexbox ! important ; display : flex ! important ; } } / * ! sc * /
. FxAyp { width : 100 % ; max-width : 100 % ; margin-left : auto ; margin-right : auto ; -webkit -box -flex: 1 ; -webkit -flex -grow: 1 ; -ms -flex -positive: 1 ; flex-grow : 1 ; padding : 0 ; } / * ! sc * /
. leYMvG { margin-left : auto ; margin-right : auto ; -webkit -flex -direction: column ; -ms -flex -direction: column ; flex-direction : column ; padding-bottom : 40px ; max-width : 100 % ; margin-top : 0 ; } / * ! sc * /
. KMPzq { display : inherit ; } / * ! sc * /
. hfKjHv { width : 100 % ; } / * ! sc * /
. gZWyZE { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; gap : 8px ; -webkit -flex -direction: column ; -ms -flex -direction: column ; flex-direction : column ; width : 100 % ; } / * ! sc * /
. dwYKDk { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -align -items: start ; -webkit -box -align: start ; -ms -flex -align: start ; align-items : start ; -webkit -box -pack: justify ; -webkit -justify -content: space-between ; -ms -flex -pack: justify ; justify-content : space-between ; gap : 8px ; } / * ! sc * /
. ibcGmb { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -align -items: start ; -webkit -box -align: start ; -ms -flex -align: start ; align-items : start ; min-width : 0 ; } / * ! sc * /
. hKaEJF { display : block ; margin-right : 8px ; } / * ! sc * /
@media screen and ( min-width : 1360px ) { . hKaEJF { display : block ; } } / * ! sc * /
. XosP { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; font-size : 14px ; } / * ! sc * /
. bCKfWo [ data-size = " medium " ] { color : var ( - -fgColor -muted , var ( - -color -fg -muted , #656d76));padding-left:8px;padding-right:8px;display:none;}/*!sc*/
@media screen and ( max-width : 768px ) { . bCKfWo [ data-size = " medium " ] { display : block ; } } / * ! sc * /
. gUkoLg { -webkit -box -pack: center ; -webkit -justify -content: center ; -ms -flex -pack: center ; justify-content : center ; } / * ! sc * /
. dmxRgG [ data-size = " medium " ] { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; } / * ! sc * /
. dmxRgG [ data-size = " medium " ] svg { color : var ( - -fgColor -muted , var ( - -color -fg -muted , #656d76));}/*!sc*/
. dmxRgG [ data-size = " medium " ] > span { width : inherit ; } / * ! sc * /
. bZBlpz { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; width : 100 % ; } / * ! sc * /
. lhTYNA { margin-right : 4px ; color : var ( - -fgColor -muted , var ( - -color -fg -muted , #656d76));}/*!sc*/
. dbrgmi { font-size : 14px ; min-width : 0 ; max-width : 125px ; overflow : hidden ; text-overflow : ellipsis ; white-space : nowrap ; } / * ! sc * /
. dHJiml { -webkit -align -self: center ; -ms -flex -item -align: center ; align-self : center ; display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; padding-left : 8px ; padding-right : 8px ; min-width : 0 ; } / * ! sc * /
. cEytCf { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -flex -direction: row ; -ms -flex -direction: row ; flex-direction : row ; font-size : 16px ; min-width : 0 ; -webkit -flex -shrink: 1 ; -ms -flex -negative: 1 ; flex-shrink : 1 ; -webkit -flex -wrap: wrap ; -ms -flex -wrap: wrap ; flex-wrap : wrap ; max-width : 100 % ; -webkit -align -items: center ; -webkit -box -align: center ; -ms -flex -align: center ; align-items : center ; } / * ! sc * /
. fzFXnm { max-width : 100 % ; } / * ! sc * /
. iMnkmv { max-width : 100 % ; list-style : none ; display : inline-block ; } / * ! sc * /
. ghzDag { display : inline-block ; max-width : 100 % ; } / * ! sc * /
. kHuKdh { font-weight : 600 ; } / * ! sc * /
. kgiVEz { font-weight : 400 ; } / * ! sc * /
. jGhzSQ { font-weight : 600 ; display : inline-block ; max-width : 100 % ; font-size : 16px ; } / * ! sc * /
. faNtbn { min-height : 32px ; display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -align -items: start ; -webkit -box -align: start ; -ms -flex -align: start ; align-items : start ; } / * ! sc * /
. fmQaBv { margin-left : 4px ; margin-right : 4px ; } / * ! sc * /
. dwNhzn [ data-size = " medium " ] [ data-no -visuals ] { border-top -left -radius: 0 ; border-bottom -left -radius: 0 ; display : none ; } / * ! sc * /
. fGwBZA [ data-size = " medium " ] [ data-no -visuals ] { color : var ( - -fgColor -muted , var ( - -color -fg -muted , #656d76));}/*!sc*/
. dJxjrT { margin-left : 16px ; margin-right : 16px ; } / * ! sc * /
. eFxKDQ { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -flex -direction: column ; -ms -flex -direction: column ; flex-direction : column ; } / * ! sc * /
. dzCJzi { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -flex -direction: row ; -ms -flex -direction: row ; flex-direction : row ; -webkit -flex -wrap: wrap ; -ms -flex -wrap: wrap ; flex-wrap : wrap ; -webkit -box -pack: justify ; -webkit -justify -content: space-between ; -ms -flex -pack: justify ; justify-content : space-between ; -webkit -align -items: center ; -webkit -box -align: center ; -ms -flex -align: center ; align-items : center ; gap : 8px ; min-width : 273px ; padding : 8px ; } / * ! sc * /
@media screen and ( min-width : 544px ) { . dzCJzi { -webkit -flex -wrap: nowrap ; -ms -flex -wrap: nowrap ; flex-wrap : nowrap ; } } / * ! sc * /
. ldRxiI { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -flex -direction: row ; -ms -flex -direction: row ; flex-direction : row ; } / * ! sc * /
. fVkfyA { width : 100 % ; height : -webkit -fit -content ; height : -moz -fit -content ; height : fit-content ; min-width : 0 ; margin-right : 0 ; } / * ! sc * /
. gNAmSV { height : 40px ; padding-left : 4px ; padding-bottom : 16px ; } / * ! sc * /
. jNEwzY { -webkit -align -items: center ; -webkit -box -align: center ; -ms -flex -align: center ; align-items : center ; } / * ! sc * /
. bsDwxw { font-size : 12px ; -webkit -flex: auto ; -ms -flex: auto ; flex : auto ; padding-right : 16px ; color : var ( - -fgColor -muted , var ( - -color -fg -muted , #656d76));min-width:0;}/*!sc*/
. jdLMhu { top : 0px ; z-index : 4 ; background : var ( - -bgColor -default , var ( - -color -canvas -default ) ) ; position : -webkit -sticky ; position : sticky ; } / * ! sc * /
. tOISc { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -flex -direction: column ; -ms -flex -direction: column ; flex-direction : column ; width : 100 % ; position : absolute ; } / * ! sc * /
. hqwSEx { display : none ; min-width : 0 ; padding-top : 8px ; padding-bottom : 8px ; } / * ! sc * /
. bDVoEr { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -align -items: center ; -webkit -box -align: center ; -ms -flex -align: center ; align-items : center ; overflow : hidden ; margin-left : 8px ; margin-right : 8px ; -webkit -flex -direction: row ; -ms -flex -direction: row ; flex-direction : row ; -webkit -box -pack: justify ; -webkit -justify -content: space-between ; -ms -flex -pack: justify ; justify-content : space-between ; width : 100 % ; } / * ! sc * /
. kYLlPM { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -align -items: center ; -webkit -box -align: center ; -ms -flex -align: center ; align-items : center ; } / * ! sc * /
. gYjEmn { margin-left : 4px ; margin-right : 8px ; } / * ! sc * /
. kGqOLL { text-overflow : ellipsis ; overflow : hidden ; display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; } / * ! sc * /
. fHind { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -flex -direction: row ; -ms -flex -direction: row ; flex-direction : row ; font-size : 14px ; min-width : 0 ; -webkit -flex -shrink: 1 ; -ms -flex -negative: 1 ; flex-shrink : 1 ; -webkit -flex -wrap: wrap ; -ms -flex -wrap: wrap ; flex-wrap : wrap ; max-width : 100 % ; -webkit -align -items: center ; -webkit -box -align: center ; -ms -flex -align: center ; align-items : center ; } / * ! sc * /
. dnZoUW { font-weight : 600 ; display : inline-block ; max-width : 100 % ; font-size : 14px ; } / * ! sc * /
. jRZWlf [ data-size = " small " ] { color : var ( - -fgColor -default , var ( - -color -fg -default , #1F2328));margin-left:8px;}/*!sc*/
. kTvpNk { padding-left : 8px ; padding-top : 8px ; padding-bottom : 8px ; display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -flex: 1 ; -ms -flex: 1 ; flex : 1 ; -webkit -align -items: center ; -webkit -box -align: center ; -ms -flex -align: center ; align-items : center ; -webkit -box -pack: justify ; -webkit -justify -content: space-between ; -ms -flex -pack: justify ; justify-content : space-between ; background-color : var ( - -bgColor -muted , var ( - -color -canvas -subtle , #f6f8fa));border:1px solid var(--borderColor-default,var(--color-border-default));border-radius:6px 6px 0px 0px;}/*!sc*/
. iNMjfP { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -align -items: center ; -webkit -box -align: center ; -ms -flex -align: center ; align-items : center ; gap : 8px ; min-width : 0 ; } / * ! sc * /
. fefCSX { display : block ; position : relative ; -webkit -box -flex: 1 ; -webkit -flex -grow: 1 ; -ms -flex -positive: 1 ; flex-grow : 1 ; margin-top : - 1px ; margin-bottom : - 1px ; - -separator -color: transparent ; } / * ! sc * /
. fefCSX : not ( : last-child ) { margin-right : 1px ; } / * ! sc * /
. fefCSX : not ( : last-child ) : after { background-color : var ( - -separator -color ) ; content : " " ; position : absolute ; right : - 2px ; top : 8px ; bottom : 8px ; width : 1px ; } / * ! sc * /
. fefCSX : focus-within : has ( : focus-visible ) { - -separator -color: transparent ; } / * ! sc * /
. fefCSX : first-child { margin-left : - 1px ; } / * ! sc * /
. fefCSX : last-child { margin-right : - 1px ; } / * ! sc * /
. idgUkN { display : block ; position : relative ; -webkit -box -flex: 1 ; -webkit -flex -grow: 1 ; -ms -flex -positive: 1 ; flex-grow : 1 ; margin-top : - 1px ; margin-bottom : - 1px ; - -separator -color: var ( - -borderColor -default , var ( - -color -border -default , #d0d7de));}/*!sc*/
. idgUkN : not ( : last-child ) { margin-right : 1px ; } / * ! sc * /
. idgUkN : not ( : last-child ) : after { background-color : var ( - -separator -color ) ; content : " " ; position : absolute ; right : - 2px ; top : 8px ; bottom : 8px ; width : 1px ; } / * ! sc * /
. idgUkN : focus-within : has ( : focus-visible ) { - -separator -color: transparent ; } / * ! sc * /
. idgUkN : first-child { margin-left : - 1px ; } / * ! sc * /
. idgUkN : last-child { margin-right : - 1px ; } / * ! sc * /
. kcLCKF { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -align -items: center ; -webkit -box -align: center ; -ms -flex -align: center ; align-items : center ; gap : 8px ; margin-right : 8px ; } / * ! sc * /
. kVWtTz { gap : 8px ; } / * ! sc * /
. gWqxTd { padding-left : 8px ; padding-right : 8px ; } / * ! sc * /
. gWqxTd linkButtonSx : hover : not ( [ disabled ] ) { -webkit -text -decoration: none ; text-decoration : none ; } / * ! sc * /
. gWqxTd linkButtonSx : focus : not ( [ disabled ] ) { -webkit -text -decoration: none ; text-decoration : none ; } / * ! sc * /
. gWqxTd linkButtonSx : active : not ( [ disabled ] ) { -webkit -text -decoration: none ; text-decoration : none ; } / * ! sc * /
. ivobqY [ data-size = " small " ] [ data-no -visuals ] { border-top -left -radius: 0 ; border-bottom -left -radius: 0 ; } / * ! sc * /
. heuRGy [ data-size = " small " ] [ data-no -visuals ] { color : var ( - -fgColor -muted , var ( - -color -fg -muted , #656d76));position:relative;}/*!sc*/
. ffkqe [ data-size = " small " ] [ data-no -visuals ] { color : var ( - -fgColor -muted , var ( - -color -fg -muted , #656d76));}/*!sc*/
. hGyMdv { border : 1px solid ; border-top : none ; border-color : var ( - -borderColor -default , var ( - -color -border -default , #d0d7de));border-radius:0px 0px 6px 6px;min-width:273px;}/*!sc*/
. dceWRL { background-color : var ( - -bgColor -default , var ( - -color -canvas -default ) ) ; border : 0px ; border-width : 0 ; border-radius : 0px 0px 6px 6px ; padding : 0 ; min-width : 0 ; margin-top : 46px ; } / * ! sc * /
. dGXHv { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -flex: 1 ; -ms -flex: 1 ; flex : 1 ; padding-top : 8px ; padding-bottom : 8px ; -webkit -flex -direction: column ; -ms -flex -direction: column ; flex-direction : column ; -webkit -box -pack: justify ; -webkit -justify -content: space-between ; -ms -flex -pack: justify ; justify-content : space-between ; min-width : 0 ; position : relative ; } / * ! sc * /
. bpDFns { position : relative ; } / * ! sc * /
. iJOeCH { -webkit -flex: 1 ; -ms -flex: 1 ; flex : 1 ; position : relative ; min-width : 0 ; } / * ! sc * /
. jewUnv { tab-size : 8 ; isolation : isolate ; position : relative ; overflow : auto ; max-width : unset ; } / * ! sc * /
. gkZUDI { -webkit -box -pack: center ; -webkit -justify -content: center ; -ms -flex -pack: center ; justify-content : center ; display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; } / * ! sc * /
. cCoXib { position : fixed ; top : 0 ; right : 0 ; height : 100 % ; width : 15px ; -webkit -transition: -webkit -transform 0 . 3s ; -webkit -transition: transform 0 . 3s ; transition : transform 0 . 3s ; z-index : 1 ; } / * ! sc * /
. cCoXib : hover { -webkit -transform: scaleX ( 1.5 ) ; -ms -transform: scaleX ( 1.5 ) ; transform : scaleX ( 1.5 ) ; } / * ! sc * /
data-styled . g1 [ id = " Box-sc-g0xbh4-0 " ] { content : " hOfjFo,oDGAe,kowOcT,gISSDQ,cEmWSE,hPvFuC,fFSoPl,bTBnTW,bHLmSv,iKqMNA,FxAyp,leYMvG,KMPzq,hfKjHv,gZWyZE,dwYKDk,ibcGmb,hKaEJF,XosP,bCKfWo,gUkoLg,dmxRgG,bZBlpz,lhTYNA,dbrgmi,dHJiml,cEytCf,fzFXnm,iMnkmv,ghzDag,kHuKdh,kgiVEz,jGhzSQ,faNtbn,fmQaBv,dwNhzn,fGwBZA,dJxjrT,eFxKDQ,dzCJzi,ldRxiI,fVkfyA,gNAmSV,jNEwzY,bsDwxw,jdLMhu,tOISc,hqwSEx,bDVoEr,kYLlPM,gYjEmn,kGqOLL,fHind,dnZoUW,jRZWlf,kTvpNk,iNMjfP,fefCSX,idgUkN,kcLCKF,kVWtTz,gWqxTd,ivobqY,heuRGy,ffkqe,hGyMdv,dceWRL,dGXHv,bpDFns,iJOeCH,jewUnv,gkZUDI,cCoXib, " } / * ! sc * /
. eMMFM { min-width : 0 ; } / * ! sc * /
. eMMFM : where ( [ data-size = 'small' ] ) { font-size : var ( - -text -body -size -small , 0 . 75rem ) ; line-height : var ( - -text -body -lineHeight -small , 1.6666 ) ; } / * ! sc * /
. eMMFM : where ( [ data-size = 'medium' ] ) { font-size : var ( - -text -body -size -medium , 0 . 875rem ) ; line-height : var ( - -text -body -lineHeight -medium , 1.4285 ) ; } / * ! sc * /
. eMMFM : where ( [ data-size = 'large' ] ) { font-size : var ( - -text -body -size -large , 1rem ) ; line-height : var ( - -text -body -lineHeight -large , 1.5 ) ; } / * ! sc * /
. eMMFM : where ( [ data-weight = 'light' ] ) { font-weight : var ( - -base -text -weight -light , 300 ) ; } / * ! sc * /
. eMMFM : where ( [ data-weight = 'normal' ] ) { font-weight : var ( - -base -text -weight -normal , 400 ) ; } / * ! sc * /
. eMMFM : where ( [ data-weight = 'medium' ] ) { font-weight : var ( - -base -text -weight -medium , 500 ) ; } / * ! sc * /
. eMMFM : where ( [ data-weight = 'semibold' ] ) { font-weight : var ( - -base -text -weight -semibold , 600 ) ; } / * ! sc * /
. HlHVj { padding-left : 4px ; padding-right : 4px ; font-weight : 400 ; color : var ( - -fgColor -muted , var ( - -color -fg -muted , #656d76));font-size:16px;}/*!sc*/
. HlHVj : where ( [ data-size = 'small' ] ) { font-size : var ( - -text -body -size -small , 0 . 75rem ) ; line-height : var ( - -text -body -lineHeight -small , 1.6666 ) ; } / * ! sc * /
. HlHVj : where ( [ data-size = 'medium' ] ) { font-size : var ( - -text -body -size -medium , 0 . 875rem ) ; line-height : var ( - -text -body -lineHeight -medium , 1.4285 ) ; } / * ! sc * /
. HlHVj : where ( [ data-size = 'large' ] ) { font-size : var ( - -text -body -size -large , 1rem ) ; line-height : var ( - -text -body -lineHeight -large , 1.5 ) ; } / * ! sc * /
. HlHVj : where ( [ data-weight = 'light' ] ) { font-weight : var ( - -base -text -weight -light , 300 ) ; } / * ! sc * /
. HlHVj : where ( [ data-weight = 'normal' ] ) { font-weight : var ( - -base -text -weight -normal , 400 ) ; } / * ! sc * /
. HlHVj : where ( [ data-weight = 'medium' ] ) { font-weight : var ( - -base -text -weight -medium , 500 ) ; } / * ! sc * /
. HlHVj : where ( [ data-weight = 'semibold' ] ) { font-weight : var ( - -base -text -weight -semibold , 600 ) ; } / * ! sc * /
. lauzFl { padding-left : 4px ; padding-right : 4px ; font-weight : 400 ; color : var ( - -fgColor -muted , var ( - -color -fg -muted , #656d76));font-size:14px;}/*!sc*/
. lauzFl : where ( [ data-size = 'small' ] ) { font-size : var ( - -text -body -size -small , 0 . 75rem ) ; line-height : var ( - -text -body -lineHeight -small , 1.6666 ) ; } / * ! sc * /
. lauzFl : where ( [ data-size = 'medium' ] ) { font-size : var ( - -text -body -size -medium , 0 . 875rem ) ; line-height : var ( - -text -body -lineHeight -medium , 1.4285 ) ; } / * ! sc * /
. lauzFl : where ( [ data-size = 'large' ] ) { font-size : var ( - -text -body -size -large , 1rem ) ; line-height : var ( - -text -body -lineHeight -large , 1.5 ) ; } / * ! sc * /
. lauzFl : where ( [ data-weight = 'light' ] ) { font-weight : var ( - -base -text -weight -light , 300 ) ; } / * ! sc * /
. lauzFl : where ( [ data-weight = 'normal' ] ) { font-weight : var ( - -base -text -weight -normal , 400 ) ; } / * ! sc * /
. lauzFl : where ( [ data-weight = 'medium' ] ) { font-weight : var ( - -base -text -weight -medium , 500 ) ; } / * ! sc * /
. lauzFl : where ( [ data-weight = 'semibold' ] ) { font-weight : var ( - -base -text -weight -semibold , 600 ) ; } / * ! sc * /
data-styled . g3 [ id = " Text__StyledText-sc-17v1xeu-0 " ] { content : " eMMFM,HlHVj,lauzFl, " } / * ! sc * /
. jkNcAv { border : 0 ; font-size : inherit ; font-family : inherit ; background-color : transparent ; -webkit -appearance: none ; color : inherit ; width : 100 % ; } / * ! sc * /
. jkNcAv : focus { outline : 0 ; } / * ! sc * /
data-styled . g14 [ id = " UnstyledTextInput__ToggledUnstyledTextInput-sc-14ypya-0 " ] { content : " jkNcAv, " } / * ! sc * /
. hLzFvi { font-size : 14px ; line-height : var ( - -base -size - 20 ) ; color : var ( - -fgColor -default , var ( - -color -fg -default , #1F2328));vertical-align:middle;background-color:var(--bgColor-default,var(--color-canvas-default,#ffffff));border:1px solid var(--control-borderColor-rest,var(--borderColor-default,var(--color-border-default,#d0d7de)));border-radius:6px;outline:none;box-shadow:var(--shadow-inset,var(--color-primer-shadow-inset,inset 0 1px 0 rgba(208,215,222,0.2)));display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;min-height:var(--base-size-32);overflow:hidden;--inner-action-size:var(--base-size-24);}/*!sc*/
. hLzFvi input , . hLzFvi textarea { cursor : text ; } / * ! sc * /
. hLzFvi select { cursor : pointer ; } / * ! sc * /
. hLzFvi input :: -webkit -input -placeholder , . hLzFvi textarea :: -webkit -input -placeholder , . hLzFvi select :: -webkit -input -placeholder { color : var ( - - -control -fgColor -placeholder , var ( - -fgColor -muted , var ( - -color -fg -muted , #656d76)));}/*!sc*/
. hLzFvi input :: -moz -placeholder , . hLzFvi textarea :: -moz -placeholder , . hLzFvi select :: -moz -placeholder { color : var ( - - -control -fgColor -placeholder , var ( - -fgColor -muted , var ( - -color -fg -muted , #656d76)));}/*!sc*/
. hLzFvi input : -ms -input -placeholder , . hLzFvi textarea : -ms -input -placeholder , . hLzFvi select : -ms -input -placeholder { color : var ( - - -control -fgColor -placeholder , var ( - -fgColor -muted , var ( - -color -fg -muted , #656d76)));}/*!sc*/
. hLzFvi input :: placeholder , . hLzFvi textarea :: placeholder , . hLzFvi select :: placeholder { color : var ( - - -control -fgColor -placeholder , var ( - -fgColor -muted , var ( - -color -fg -muted , #656d76)));}/*!sc*/
. hLzFvi : where ( [ data-trailing -action ] [ data-focused ] ) , . hLzFvi : where ( : not ( [ data-trailing -action ] ) : focus-within ) { border-color : var ( - -fgColor -accent , var ( - -color -accent -fg , #0969da));outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-1px;}/*!sc*/
. hLzFvi > textarea { padding : var ( - -base -size - 12 ) ; } / * ! sc * /
. hLzFvi : where ( [ data-contrast ] ) { background-color : var ( - -bgColor -inset , var ( - -color -canvas -inset , #f6f8fa));}/*!sc*/
. hLzFvi : where ( [ data-disabled ] ) { color : var ( - -fgColor -disabled , var ( - -color -primer -fg -disabled , #8c959f));background-color:var(--control-bgColor-disabled,var(--color-input-disabled-bg,rgba(175,184,193,0.2)));box-shadow:none;border-color:var(--control-borderColor-disabled,var(--borderColor-default,var(--color-border-default,#d0d7de)));}/*!sc*/
. hLzFvi : where ( [ data-disabled ] ) input , . hLzFvi : where ( [ data-disabled ] ) textarea , . hLzFvi : where ( [ data-disabled ] ) select { cursor : not-allowed ; } / * ! sc * /
. hLzFvi : where ( [ data-monospace ] ) { font-family : var ( - -fontStack -monospace , SFMono-Regular , Consolas , " Liberation Mono " , Menlo , Courier , monospace ) ; } / * ! sc * /
. hLzFvi : where ( [ data-validation = 'error' ] ) { border-color : var ( - -borderColor -danger -emphasis , var ( - -color -danger -emphasis , #cf222e));}/*!sc*/
. hLzFvi : where ( [ data-validation = 'error' ] ) : where ( [ data-trailing -action ] [ data-focused ] ) , . hLzFvi : where ( [ data-validation = 'error' ] ) : where ( : not ( [ data-trailing -action ] ) ) : focus-within { border-color : var ( - -fgColor -accent , var ( - -color -accent -fg , #0969da));outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-1px;}/*!sc*/
. hLzFvi : where ( [ data-validation = 'success' ] ) { border-color : var ( - -bgColor -success -emphasis , var ( - -color -success -emphasis , #1f883d));}/*!sc*/
. hLzFvi : where ( [ data-block ] ) { width : 100 % ; display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; -webkit -align -self: stretch ; -ms -flex -item -align: stretch ; align-self : stretch ; } / * ! sc * /
@media ( min-width : 768px ) { . hLzFvi { font-size : var ( - -text -body -size -medium ) ; } } / * ! sc * /
. hLzFvi : where ( [ data-size = 'small' ] ) { - -inner -action -size: var ( - -base -size - 20 ) ; min-height : var ( - -base -size - 28 ) ; padding-top : 3px ; padding-right : var ( - -base -size - 8 ) ; padding-bottom : 3px ; padding-left : var ( - -base -size - 8 ) ; font-size : var ( - -text -body -size -small ) ; line-height : var ( - -base -size - 20 ) ; } / * ! sc * /
. hLzFvi : where ( [ data-size = 'large' ] ) { - -inner -action -size: var ( - -base -size - 28 ) ; height : var ( - -base -size - 40 ) ; padding-top : 10px ; padding-right : var ( - -base -size - 8 ) ; padding-bottom : 10px ; padding-left : var ( - -base -size - 8 ) ; } / * ! sc * /
. hLzFvi : where ( [ data-variant = 'small' ] ) { min-height : 28px ; padding-top : 3px ; padding-right : var ( - -base -size - 8 ) ; padding-bottom : 3px ; padding-left : var ( - -base -size - 8 ) ; font-size : ( - -text -body -size -small ) ; line-height : var ( - -base -size - 20 ) ; } / * ! sc * /
. hLzFvi : where ( [ data-variant = 'large' ] ) { padding-top : 10px ; padding-right : var ( - -base -size - 8 ) ; padding-bottom : 10px ; padding-left : var ( - -base -size - 8 ) ; font-size : var ( - -text -title -size -medium ) ; } / * ! sc * /
. hLzFvi { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; min-width : 160px ; } / * ! sc * /
data-styled . g15 [ id = " TextInputWrapper__StyledTextInputBaseWrapper-sc-1mqhpbi-0 " ] { content : " hLzFvi, " } / * ! sc * /
. iHYdQq { background-repeat : no-repeat ; background-position : right 8px center ; padding-right : 0 ; padding-left : 0 ; } / * ! sc * /
. iHYdQq > : not ( : last-child ) { margin-right : 8px ; } / * ! sc * /
. iHYdQq . TextInput-icon , . iHYdQq . TextInput-action { -webkit -align -self: center ; -ms -flex -item -align: center ; align-self : center ; color : var ( - -fgColor -muted , var ( - -color -fg -muted , #656d76));-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}/*!sc*/
. iHYdQq > input , . iHYdQq > select { padding-right : 0 ; padding-left : 0 ; } / * ! sc * /
. iHYdQq : where ( [ data-leading -visual ] ) { padding-left : var ( - -base -size - 12 ) ; } / * ! sc * /
. iHYdQq : where ( [ data-trailing -visual ] : not ( [ data-trailing -action ] ) ) { padding-right : var ( - -base -size - 12 ) ; } / * ! sc * /
. iHYdQq : where ( : not ( [ data-leading -visual ] ) ) > input , . iHYdQq : where ( : not ( [ data-leading -visual ] ) ) > select { padding-left : var ( - -base -size - 12 ) ; } / * ! sc * /
. iHYdQq : where ( : not ( [ data-trailing -visual ] ) : not ( [ data-trailing -action ] ) ) > input , . iHYdQq : where ( : not ( [ data-trailing -visual ] ) : not ( [ data-trailing -action ] ) ) > select { padding-right : var ( - -base -size - 12 ) ; } / * ! sc * /
. iHYdQq { display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; min-width : 160px ; } / * ! sc * /
data-styled . g16 [ id = " TextInputWrapper__StyledTextInputWrapper-sc-1mqhpbi-1 " ] { content : " iHYdQq, " } / * ! sc * /
. hWlpPn { position : relative ; display : inline-block ; } / * ! sc * /
. hWlpPn :: after { position : absolute ; z-index : 1000000 ; display : none ; padding : 0 . 5em 0 . 75em ; font : normal normal 11px / 1.5 -apple -system , BlinkMacSystemFont , " Segoe UI " , " Noto Sans " , Helvetica , Arial , sans-serif , " Apple Color Emoji " , " Segoe UI Emoji " ; -webkit -font -smoothing: subpixel-antialiased ; color : var ( - -tooltip -fgColor , var ( - -fgColor -onEmphasis , var ( - -color -fg -on -emphasis , #ffffff)));text-align:center;-webkit-text-decoration:none;text-decoration:none;text-shadow:none;text-transform:none;-webkit-letter-spacing:normal;-moz-letter-spacing:normal;-ms-letter-spacing:normal;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:var(--tooltip-bgColor,var(--bgColor-emphasis,var(--color-neutral-emphasis-plus,#24292f)));border-radius:6px;opacity:0;}/*!sc*/
@ -webkit -keyframes tooltip-appear { from { opacity : 0 ; } to { opacity : 1 ; } } / * ! sc * /
@keyframes tooltip-appear { from { opacity : 0 ; } to { opacity : 1 ; } } / * ! sc * /
. hWlpPn : hover :: after , . hWlpPn : active :: after , . hWlpPn : focus :: after , . hWlpPn : focus-within :: after { display : inline-block ; -webkit -text -decoration: none ; text-decoration : none ; -webkit -animation -name: tooltip-appear ; animation-name : tooltip-appear ; -webkit -animation -duration: 0 . 1s ; animation-duration : 0 . 1s ; -webkit -animation -fill -mode: forwards ; animation-fill -mode: forwards ; -webkit -animation -timing -function: ease-in ; animation-timing -function: ease-in ; -webkit -animation -delay: 0s ; animation-delay : 0s ; } / * ! sc * /
. hWlpPn . tooltipped-no -delay: hover :: after , . hWlpPn . tooltipped-no -delay: active :: after , . hWlpPn . tooltipped-no -delay: focus :: after , . hWlpPn . tooltipped-no -delay: focus-within :: after { -webkit -animation -delay: 0s ; animation-delay : 0s ; } / * ! sc * /
. hWlpPn . tooltipped-multiline : hover :: after , . hWlpPn . tooltipped-multiline : active :: after , . hWlpPn . tooltipped-multiline : focus :: after , . hWlpPn . tooltipped-multiline : focus-within :: after { display : table-cell ; } / * ! sc * /
. hWlpPn . tooltipped-s :: after , . hWlpPn . tooltipped-se :: after , . hWlpPn . tooltipped-sw :: after { top : 100 % ; right : 50 % ; margin-top : 6px ; } / * ! sc * /
. hWlpPn . tooltipped-se :: after { right : auto ; left : 50 % ; margin-left : - 16px ; } / * ! sc * /
. hWlpPn . tooltipped-sw :: after { margin-right : - 16px ; } / * ! sc * /
. hWlpPn . tooltipped-n :: after , . hWlpPn . tooltipped-ne :: after , . hWlpPn . tooltipped-nw :: after { right : 50 % ; bottom : 100 % ; margin-bottom : 6px ; } / * ! sc * /
. hWlpPn . tooltipped-ne :: after { right : auto ; left : 50 % ; margin-left : - 16px ; } / * ! sc * /
. hWlpPn . tooltipped-nw :: after { margin-right : - 16px ; } / * ! sc * /
. hWlpPn . tooltipped-s :: after , . hWlpPn . tooltipped-n :: after { -webkit -transform: translateX ( 50 % ) ; -ms -transform: translateX ( 50 % ) ; transform : translateX ( 50 % ) ; } / * ! sc * /
. hWlpPn . tooltipped-w :: after { right : 100 % ; bottom : 50 % ; margin-right : 6px ; -webkit -transform: translateY ( 50 % ) ; -ms -transform: translateY ( 50 % ) ; transform : translateY ( 50 % ) ; } / * ! sc * /
. hWlpPn . tooltipped-e :: after { bottom : 50 % ; left : 100 % ; margin-left : 6px ; -webkit -transform: translateY ( 50 % ) ; -ms -transform: translateY ( 50 % ) ; transform : translateY ( 50 % ) ; } / * ! sc * /
. hWlpPn . tooltipped-multiline :: after { width : -webkit -max -content ; width : -moz -max -content ; width : max-content ; max-width : 250px ; word-wrap : break-word ; white-space : pre-line ; border-collapse : separate ; } / * ! sc * /
. hWlpPn . tooltipped-multiline . tooltipped-s :: after , . hWlpPn . tooltipped-multiline . tooltipped-n :: after { right : auto ; left : 50 % ; -webkit -transform: translateX ( -50 % ) ; -ms -transform: translateX ( -50 % ) ; transform : translateX ( -50 % ) ; } / * ! sc * /
. hWlpPn . tooltipped-multiline . tooltipped-w :: after , . hWlpPn . tooltipped-multiline . tooltipped-e :: after { right : 100 % ; } / * ! sc * /
. hWlpPn . tooltipped-align -right - 2 :: after { right : 0 ; margin-right : 0 ; } / * ! sc * /
. hWlpPn . tooltipped-align -left - 2 :: after { left : 0 ; margin-left : 0 ; } / * ! sc * /
data-styled . g18 [ id = " Tooltip__TooltipBase-sc-17tf59c-0 " ] { content : " hWlpPn, " } / * ! sc * /
. eAtkQz { display : inline-block ; overflow : hidden ; text-overflow : ellipsis ; vertical-align : top ; white-space : nowrap ; max-width : 125px ; max-width : 100 % ; } / * ! sc * /
data-styled . g20 [ id = " Truncate__StyledTruncate-sc-23o1d2-0 " ] { content : " eAtkQz, " } / * ! sc * /
body [ data-page -layout -dragging = " true " ] { cursor : col-resize ; } / * ! sc * /
body [ data-page -layout -dragging = " true " ] * { -webkit -user -select: none ; -moz -user -select: none ; -ms -user -select: none ; user-select : none ; } / * ! sc * /
data-styled . g102 [ id = " sc-global-gbKrvU1 " ] { content : " sc-global-gbKrvU1, " } / * ! sc * /
. lirRhW { display : -webkit -inline -box ; display : -webkit -inline -flex ; display : -ms -inline -flexbox ; display : inline-flex ; vertical-align : middle ; isolation : isolate ; } / * ! sc * /
. lirRhW . lirRhW > * : not ( [ data-loading -wrapper ] ) { margin-inline -end: - 1px ; position : relative ; border-radius : 0 ; } / * ! sc * /
. lirRhW . lirRhW > * : not ( [ data-loading -wrapper ] ) : first-child { border-top -left -radius: 6px ; border-bottom -left -radius: 6px ; } / * ! sc * /
. lirRhW . lirRhW > * : not ( [ data-loading -wrapper ] ) : last-child { border-top -right -radius: 6px ; border-bottom -right -radius: 6px ; } / * ! sc * /
. lirRhW . lirRhW > * : not ( [ data-loading -wrapper ] ) : focus , . lirRhW . lirRhW > * : not ( [ data-loading -wrapper ] ) : active , . lirRhW . lirRhW > * : not ( [ data-loading -wrapper ] ) : hover { z-index : 1 ; } / * ! sc * /
. lirRhW [ data-loading -wrapper ] : first-child button , . lirRhW [ data-loading -wrapper ] : first-child a { border-top -left -radius: 6px ; border-bottom -left -radius: 6px ; } / * ! sc * /
. lirRhW [ data-loading -wrapper ] : last-child button , . lirRhW [ data-loading -wrapper ] : last-child a { border-top -right -radius: 6px ; border-bottom -right -radius: 6px ; } / * ! sc * /
. lirRhW [ data-loading -wrapper ] > * { margin-inline -end: - 1px ; position : relative ; border-radius : 0 ; } / * ! sc * /
. lirRhW [ data-loading -wrapper ] > * : focus , . lirRhW [ data-loading -wrapper ] > * : active , . lirRhW [ data-loading -wrapper ] > * : hover { z-index : 1 ; } / * ! sc * /
data-styled . g107 [ id = " ButtonGroup__StyledButtonGroup-sc-1gxhls1-0 " ] { content : " lirRhW, " } / * ! sc * /
. dbGjOi { - -segmented -control -button -inner -padding: 12px ; - -segmented -control -button -bg -inset: 4px ; - -segmented -control -outer -radius: 6px ; background-color : transparent ; border-color : transparent ; border-radius : var ( - -segmented -control -outer -radius ) ; border-width : 0 ; color : currentColor ; cursor : pointer ; font-family : inherit ; font-size : inherit ; font-weight : 600 ; padding : 0 ; height : 100 % ; width : 100 % ; } / * ! sc * /
. dbGjOi : focus : not ( : disabled ) { box-shadow : none ; outline : 2px solid var ( - -fgColor -accent , var ( - -color -accent -fg , #0969da));outline-offset:-1px;}/*!sc*/
. dbGjOi : focus : not ( : disabled ) : not ( : focus-visible ) { outline : solid 1px transparent ; } / * ! sc * /
. dbGjOi : focus-visible : not ( : disabled ) { box-shadow : none ; outline : 2px solid var ( - -fgColor -accent , var ( - -color -accent -fg , #0969da));outline-offset:-1px;}/*!sc*/
. dbGjOi . segmentedControl-content { -webkit -align -items: center ; -webkit -box -align: center ; -ms -flex -align: center ; align-items : center ; background-color : var ( - -controlKnob -bgColor -rest , var ( - -color -segmented -control -button -bg , #ffffff));border-color:var(--controlKnob-borderColor-rest,var(--color-segmented-control-button-hover-active-selected-border,#8c959f));border-style:solid;border-width:1px;border-radius:var(--segmented-control-outer-radius);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100%;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding-left:var(--segmented-control-button-inner-padding);padding-right:var(--segmented-control-button-inner-padding);}/*!sc*/
. dbGjOi svg { fill : var ( - -fgColor -muted , var ( - -color -fg -muted , #656d76));}/*!sc*/
. dbGjOi : focus : focus-visible : not ( : last-child ) : after { width : 0 ; } / * ! sc * /
. dbGjOi . segmentedControl-text : after { content : " Code " ; display : block ; font-weight : 600 ; height : 0 ; overflow : hidden ; pointer-events : none ; -webkit -user -select: none ; -moz -user -select: none ; -ms -user -select: none ; user-select : none ; visibility : hidden ; } / * ! sc * /
@media ( pointer : coarse ) { . dbGjOi : before { content : " " ; position : absolute ; left : 0 ; right : 0 ; -webkit -transform: translateY ( -50 % ) ; -ms -transform: translateY ( -50 % ) ; transform : translateY ( -50 % ) ; top : 50 % ; min-height : 44px ; } } / * ! sc * /
. bHmvop { - -segmented -control -button -inner -padding: 12px ; - -segmented -control -button -bg -inset: 4px ; - -segmented -control -outer -radius: 6px ; background-color : transparent ; border-color : transparent ; border-radius : var ( - -segmented -control -outer -radius ) ; border-width : 0 ; color : currentColor ; cursor : pointer ; font-family : inherit ; font-size : inherit ; font-weight : 400 ; padding : var ( - -segmented -control -button -bg -inset ) ; height : 100 % ; width : 100 % ; } / * ! sc * /
. bHmvop : focus : not ( : disabled ) { box-shadow : none ; outline : 2px solid var ( - -fgColor -accent , var ( - -color -accent -fg , #0969da));outline-offset:-1px;}/*!sc*/
. bHmvop : focus : not ( : disabled ) : not ( : focus-visible ) { outline : solid 1px transparent ; } / * ! sc * /
. bHmvop : focus-visible : not ( : disabled ) { box-shadow : none ; outline : 2px solid var ( - -fgColor -accent , var ( - -color -accent -fg , #0969da));outline-offset:-1px;}/*!sc*/
. bHmvop . segmentedControl-content { -webkit -align -items: center ; -webkit -box -align: center ; -ms -flex -align: center ; align-items : center ; background-color : transparent ; border-color : transparent ; border-style : solid ; border-width : 1px ; border-radius : calc ( var ( - -segmented -control -outer -radius ) - var ( - -segmented -control -button -bg -inset ) / 2 ) ; display : -webkit -box ; display : -webkit -flex ; display : -ms -flexbox ; display : flex ; height : 100 % ; -webkit -box -pack: center ; -webkit -justify -content: center ; -ms -flex -pack: center ; justify-content : center ; padding-left : calc ( var ( - -segmented -control -button -inner -padding ) - var ( - -segmented -control -button -bg -inset ) ) ; padding-right : calc ( var ( - -segmented -control -button -inner -padding ) - var ( - -segmented -control -button -bg -inset ) ) ; } / * ! sc * /
. bHmvop svg { fill : var ( - -fgColor -muted , var ( - -color -fg -muted , #656d76));}/*!sc*/
. bHmvop : hover . segmentedControl-content { background-color : var ( - -controlTrack -bgColor -hover , var ( - -color -segmented -control -button -hover -bg , rgba ( 175 , 184 , 193 , 0.2 ) ) ) ; } / * ! sc * /
. bHmvop : active . segmentedControl-content { background-color : var ( - -controlTrack -bgColor -active , var ( - -color -segmented -control -button -hover -active -bg , rgba ( 175 , 184 , 193 , 0.4 ) ) ) ; } / * ! sc * /
. bHmvop : focus : focus-visible : not ( : last-child ) : after { width : 0 ; } / * ! sc * /
. bHmvop . segmentedControl-text : after { content : " Blame " ; display : block ; font-weight : 600 ; height : 0 ; overflow : hidden ; pointer-events : none ; -webkit -user -select: none ; -moz -user -select: none ; -ms -user -select: none ; user-select : none ; visibility : hidden ; } / * ! sc * /
@media ( pointer : coarse ) { . bHmvop : before { content : " " ; position : absolute ; left : 0 ; right : 0 ; -webkit -transform: translateY ( -50 % ) ; -ms -transform: translateY ( -50 % ) ; transform : translateY ( -50 % ) ; top : 50 % ; min-height : 44px ; } } / * ! sc * /
data-styled . g109 [ id = " SegmentedControlButton__SegmentedControlButtonStyled-sc-8lkgxl-0 " ] { content : " dbGjOi,bHmvop, " } / * ! sc * /
. lawgDG { background-color : var ( - -controlTrack -bgColor -rest , var ( - -color -segmented -control -bg , #eaeef2));border-radius:6px;border:1px solid;border-color:var(--controlTrack-borderColor-rest,transparent);display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;font-size:14px;height:28px;margin:0;padding:0;}/*!sc*/
data-styled . g111 [ id = " SegmentedControl__SegmentedControlList-sc-1rzig82-0 " ] { content : " lawgDG, " } / * ! sc * /
< / style > < meta data-hydrostats = " publish " / > < ! - - - - > < ! - - - - > < button hidden = " " data-testid = " header-permalink-button " data-hotkey -scope = " read-only-cursor-text-area " > < / button > < button hidden = " " > < / button > < div > < div style = " --sticky-pane-height:100vh;--spacing:var(--spacing-none) " class = " Box-sc-g0xbh4-0 hOfjFo " > < div class = " Box-sc-g0xbh4-0 oDGAe " > < div class = " Box-sc-g0xbh4-0 kowOcT " > < div tabindex = " 0 " class = " Box-sc-g0xbh4-0 gISSDQ " > < div class = " Box-sc-g0xbh4-0 cEmWSE " > < div class = " Box-sc-g0xbh4-0 hPvFuC " > < / div > < div style = " --pane-width:320px " class = " Box-sc-g0xbh4-0 fFSoPl " > < / div > < div class = " Box-sc-g0xbh4-0 bTBnTW " > < div role = " slider " aria-label = " Draggable pane splitter " aria-valuemin = " 0 " aria-valuemax = " 0 " aria-valuenow = " 0 " aria-valuetext = " Pane width 0 pixels " tabindex = " 0 " class = " Box-sc-g0xbh4-0 bHLmSv " > < / div > < / div > < / div > < / div > < div class = " Box-sc-g0xbh4-0 iKqMNA " > < div class = " Box-sc-g0xbh4-0 " > < / div > < div class = " Box-sc-g0xbh4-0 FxAyp " > < div data-selector = " repos-split-pane-content " tabindex = " 0 " class = " Box-sc-g0xbh4-0 leYMvG " > < div class = " Box-sc-g0xbh4-0 KMPzq " > < div class = " Box-sc-g0xbh4-0 hfKjHv container " > < div class = " px-3 pt-3 pb-0 " id = " StickyHeader " > < div class = " Box-sc-g0xbh4-0 gZWyZE " > < div class = " Box-sc-g0xbh4-0 dwYKDk " > < div class = " Box-sc-g0xbh4-0 ibcGmb react-code-view-header-wrap--narrow " > < div class = " Box-sc-g0xbh4-0 hKaEJF " > < h2 class = " Box-sc-g0xbh4-0 XosP prc-Heading-Heading-6CmGO " > < button style = " --button-color:fg.muted " type = " button " aria-label = " Expand file tree " data-testid = " expand-file-tree-button-mobile " class = " Box-sc-g0xbh4-0 bCKfWo prc-Button-ButtonBase-c50BI " data-loading = " false " data-size = " medium " data-variant = " invisible " aria-describedby = " :Rld9lab:-loading-announcement " > < span data-component = " buttonContent " class = " Box-sc-g0xbh4-0 gUkoLg prc-Button-ButtonContent-HKbr- " > < span data-component = " leadingVisual " class = " prc-Button-Visual-2epfX prc-Button-VisualWrap-Db-eB " > < svg aria-hidden = " true " focusable = " false " class = " octicon octicon-arrow-left " viewBox = " 0 0 16 16 " width = " 16 " height = " 16 " fill = " currentColor " style = " display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible " > < path d = " M7.78 12.53a.75.75 0 0 1-1.06 0L2.47 8.28a.75.75 0 0 1 0-1.06l4.25-4.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L4.81 7h7.44a.75.75 0 0 1 0 1.5H4.81l2.97 2.97a.75.75 0 0 1 0 1.06Z " > < / path > < / svg > < / span > < span data-component = " text " class = " prc-Button-Label-pTQ3x " > Files < / span > < / span > < / button > < span role = " tooltip " aria-label = " Expand file tree " id = " expand-button-file-tree-button " class = " Tooltip__TooltipBase-sc-17tf59c-0 hWlpPn tooltipped-se " > < button data-component = " IconButton " type = " button " data-testid = " expand-file-tree-button " aria-controls = " repos-file-tree " class = " prc-Button-ButtonBase-c50BI position-relative ExpandFileTreeButton-module__expandButton--gL4is ExpandFileTreeButton-module__filesButtonBreakpoint--WfX9t fgColor-muted prc-Button-IconButton-szpyj " data-loading = " false " data-no -visuals = " true " data-size = " medium " data-variant = " invisible " aria-describedby = " :R35d9lab:-loading-announcement " aria-labelledby = " expand-button-file-tree-button " > < svg aria-hidden = " true " focusable = " false " class = " octicon octicon-sidebar-collapse " viewBox = " 0 0 16 16 " width = " 16 " height = " 16 " fill = " currentColor " style = " display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible " > < path d = " M6.823 7.823a.25.25 0 0 1 0 .354l-2.396 2.396A.25.25 0 0 1 4 10.396V5.604a.25.25 0 0 1 .427-.177Z " > < / path > < path d = " M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25H9.5v-13H1.75a.25.25 0 0 0-.25.25ZM11 14.5h3.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H11Z " > < / path > < / svg > < / button > < / span > < button hidden = " " data-testid = " " data-hotkey -scope = " read-only-cursor-text-area " > < / button > < / h2 > < / div > < div class = " react-code-view-header-mb--narrow mr-2 " > < button type = " button " aria-haspopup = " true " aria-expanded = " false " tabindex = " 0 " aria-label = " main branch " data-testid = " anchor-button " class = " Box-sc-g0xbh4-0 dmxRgG prc-Button-ButtonBase-c50BI ref-selector-class " data-loa
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC6 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 6 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > <# </span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC7" class="react-file-line html-div" data-testid="code-cell" data-line-number="7" style="position:relative"><span class="pl-c"><span class="pl-c"><span class="pl-c1"> . </span><span class="pl-k">SYNOPSIS</span></span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC8" class="react-file-line html-div" data-testid="code-cell" data-line-number="8" style="position:relative"><span class="pl-c"> Installs dotnet cli</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC9" class="react-file-line html-div" data-testid="code-cell" data-line-number="9" style="position:relative"><span class="pl-c"><span class="pl-c"><span class="pl-c1"> . </span><span class="pl-k">DESCRIPTION</span></span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC10" class="react-file-line html-div" data-testid="code-cell" data-line-number="10" style="position:relative"><span class="pl-c"> Installs dotnet cli . If dotnet installation already exists in the given directory</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC11" class="react-file-line html-div" data-testid="code-cell" data-line-number="11" style="position:relative"><span class="pl-c"> it will update it only if the requested version differs from the one already installed . </span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC12" class="react-file-line html-div" data-testid="code-cell" data-line-number="12" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC13 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 13 " style = " position:relative " > < span class = " pl-c " > Note that the intended use of this script is for Continuous Integration ( CI ) scenarios , where : < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC14 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 14 " style = " position:relative " > < span class = " pl-c " > - The SDK needs to be installed without user interaction and without admin rights . < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC15 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 15 " style = " position:relative " > < span class = " pl-c " > - The SDK installation doesn & #039;t need to persist across multiple CI runs.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC16" class="react-file-line html-div" data-testid="code-cell" data-line-number="16" style="position:relative"><span class="pl-c"> To set up a development environment or to run apps, use installers rather than this script. Visit https://dotnet.microsoft.com/download to get the installer.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC17" class="react-file-line html-div" data-testid="code-cell" data-line-number="17" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC18 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 18 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > < span class = " pl-c1 " > . < / span > < span class = " pl-k " > PARAMETER < / span > < span class = " pl-k " > Channel < / span > < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC19 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 19 " style = " position:relative " > < span class = " pl-c " > Default : LTS < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC20 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 20 " style = " position:relative " > < span class = " pl-c " > Download from the Channel specified . Possible values : < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC21 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 21 " style = " position:relative " > < span class = " pl-c " > - STS - the most recent Standard Term Support release < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC22 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 22 " style = " position:relative " > < span class = " pl-c " > - LTS - the most recent Long Term Support release < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC23 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 23 " style = " position:relative " > < span class = " pl-c " > - 2 -part version in a format A . B - represents a specific release < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC24 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 24 " style = " position:relative " > < span class = " pl-c " > examples : 2.0 , 1.0 < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC25 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 25 " style = " position:relative " > < span class = " pl-c " > - 3 -part version in a format A . B . Cxx - represents a specific SDK release < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC26 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 26 " style = " position:relative " > < span class = " pl-c " > examples : 5.0 . 1xx , 5.0 . 2xx < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC27 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 27 " style = " position:relative " > < span class = " pl-c " > Supported since 5.0 release < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC28 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 28 " style = " position:relative " > < span class = " pl-c " > Warning : Value & quot ; Current & quot ; is deprecated for the Channel parameter . Use & quot ; STS & quot ; instead . < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC29 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 29 " style = " position:relative " > < span class = " pl-c " > Note : The version parameter overrides the channel parameter when any version other than & #039;latest' is used.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC30" class="react-file-line html-div" data-testid="code-cell" data-line-number="30" style="position:relative"><span class="pl-c"><span class="pl-c"><span class="pl-c1">.</span><span class="pl-k">PARAMETER</span> <span class="pl-k">Quality</sp
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC140 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 140 " style = " position:relative " > < span class = " pl-c1 " > Set-StrictMode < / span > < span class = " pl-k " > - < / span > Version Latest < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC141 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 141 " style = " position:relative " > < span class = " pl-c1 " > $ErrorActionPreference < / span > < span class = " pl-k " > = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Stop < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC142 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 142 " style = " position:relative " > < span class = " pl-c1 " > $ProgressPreference < / span > < span class = " pl-k " > = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > SilentlyContinue < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC143 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 143 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC144 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 144 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Say < / span > ( < span class = " pl-smi " > $str < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC145 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 145 " style = " position:relative " > < span class = " pl-k " > try < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC146 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 146 " style = " position:relative " > < span class = " pl-c1 " > Write-Host < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > dotnet-install : < span class = " pl-smi " > $str < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC147 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 147 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC148 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 148 " style = " position:relative " > < span class = " pl-k " > catch < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC149 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 149 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> Some platforms cannot utilize Write-Host (Azure Functions, for instance). Fall back to Write-Output</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC150" class="react-file-line html-div" data-testid="code-cell" data-line-number="150" style="position:relative"> <span class="pl-c1">Write-Output</span> <span class="pl-s"><span class="pl-pds">"</span>dotnet-install: <span class="pl-smi">$str</span><span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC151" class="react-file-line html-div" data-testid="code-cell" data-line-number="151" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC152" class="react-file-line html-div" data-testid="code-cell" data-line-number="152" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC153" class="react-file-line html-div" data-testid="code-cell" data-line-number="153" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC154 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 154 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Say-Warning < / span > ( < span class = " pl-smi " > $str < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC155 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 155 " style = " position:relative " > < span class = " pl-k " > try < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC156 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 156 " style = " position:relative " > < span class = " pl-c1 " > Write-Warning < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > dotnet-install : < span class = " pl-smi " > $str < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC157 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 157 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC158 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 158 " style = " position:relative " > < span class = " pl-k " > catch < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC159 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 159 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> Some platforms cannot utilize Write-Warning (Azure Functions, for instance). Fall back to Write-Output</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC160" class="react-file-line html-div" data-testid="code-cell" data-line-number="160" style="position:relative"> <span class="pl-c1">Write-Output</span> <span class="pl-s"><span class="pl-pds">"</span>dotnet-install: Warning: <span class="pl-smi">$str</span><span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC161" class="react-file-line html-div" data-testid="code-cell" data-line-number="161" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC162" class="react-file-line html-div" data-testid="code-cell" data-line-number="162" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC163" class="react-file-line html-div" data-testid="code-cell" data-line-number="163" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC164 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 164 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> Writes a line with error style settings.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC165" class="react-file-line html-div" data-testid="code-cell" data-line-number="165" style="position:relative"><span class="pl-c"><span class="pl-c">#</span> Use this function to show a human-readable comment along with an exception.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC166" class="react-file-line html-div" data-testid="code-cell" data-line-number="166" style="position:relative"><span class="pl-k">function</span> <span class="pl-en">Say-Error</span>(<span class="pl-smi">$str</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC167" class="react-file-line html-div" data-testid="code-cell" data-line-number="167" style="position:relative"> <span class="pl-k">try</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC168" class="react-file-line html-div" data-testid="code-cell" data-line-number="168" style="position:relative"> <span class="pl-c"><span class="pl-c">#</span> Write-Error is quite oververbose for the purpose of the function, let's write one line with error style settings.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC169" class="react-file-line html-div" data-testid="code-cell" data-line-number="169" style="position:relative"> <span class="pl-c1">$Host<span class="pl-smi">.UI.WriteErrorLine</span></span>(<span class="pl-s"><span class="pl-pds">"</span>dotnet-install: <span class="pl-smi">$str</span><span class="pl-pds">"</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC170" class="react-file-line html-div" data-testid="code-cell" data-line-number="170" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC171" class="react-file-line html-div" data-testid="code-cell" data-line-number="171" style="position:relative"> <span class="pl-k">catch</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC172" class="react-file-line html-div" data-testid="code-cell" data-line-number="172" style="position:relative"> <span class="pl-c1">Write-Output</span> <span class="pl-s"><span class="pl-pds">"</span>dotnet-install: Error: <span class="pl-smi">$str</span><span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC173" class="react-file-line html-div" data-testid="code-cell" data-line-number="173" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC174" class="react-file-line html-div" data-testid="code-cell" data-line-number="174" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC175" class="react-file-line html-div" data-testid="code-cell" data-line-number="175" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC176 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 176 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Say-Verbose < / span > ( < span class = " pl-smi " > $str < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC177 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 177 " style = " position:relative " > < span class = " pl-k " > try < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC178 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 178 " style = " position:relative " > < span class = " pl-c1 " > Write-Verbose < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > dotnet-install : < span class = " pl-smi " > $str < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC179 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 179 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC180 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 180 " style = " position:relative " > < span class = " pl-k " > catch < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC181 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 181 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> Some platforms cannot utilize Write-Verbose (Azure Functions, for instance). Fall back to Write-Output</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC182" class="react-file-line html-div" data-testid="code-cell" data-line-number="182" style="position:relative"> <span class="pl-c1">Write-Output</span> <span class="pl-s"><span class="pl-pds">"</span>dotnet-install: <span class="pl-smi">$str</span><span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC183" class="react-file-line html-div" data-testid="code-cell" data-line-number="183" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC184" class="react-file-line html-div" data-testid="code-cell" data-line-number="184" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC185" class="react-file-line html-div" data-testid="code-cell" data-line-number="185" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC186 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 186 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Measure-Action < / span > ( < span class = " pl-smi " > $name < / span > < span class = " pl-k " > , < / span > < span class = " pl-smi " > $block < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC187 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 187 " style = " position:relative " > < span class = " pl-smi " > $time < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > Measure-Command < / span > < span class = " pl-smi " > $block < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC188 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 188 " style = " position:relative " > < span class = " pl-smi " > $totalSeconds < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $time < span class = " pl-smi " > . TotalSeconds < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC189 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 189 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Verbose < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Action & #039;<span class="pl-smi">$name</span>' took <span class="pl-smi">$totalSeconds</span> seconds<span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC190" class="react-file-line html-div" data-testid="code-cell" data-line-number="190" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC191" class="react-file-line html-div" data-testid="code-cell" data-line-number="191" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC192 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 192 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Get-Remote -File -Size < / span > ( < span class = " pl-smi " > $zipUri < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC193 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 193 " style = " position:relative " > < span class = " pl-k " > try < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC194 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 194 " style = " position:relative " > < span class = " pl-smi " > $response < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > Invoke-WebRequest < / span > < span class = " pl-k " > - < / span > Uri < span class = " pl-smi " > $zipUri < / span > < span class = " pl-k " > - < / span > Method Head < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC195 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 195 " style = " position:relative " > < span class = " pl-smi " > $fileSize < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $response < span class = " pl-smi " > . Headers < / span > < / span > [ < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Content-Length < span class = " pl-pds " > & quot ; < / span > < / span > ] < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC196 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 196 " style = " position:relative " > < span class = " pl-k " > if < / span > ( ( < span class = " pl-k " > ! < / span > [ < span class = " pl-k " > string < / span > ] :: IsNullOrEmpty ( < span class = " pl-smi " > $fileSize < / span > ) ) ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC197 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 197 " style = " position:relative " > Say < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Remote file < span class = " pl-smi " > $zipUri < / span > size is < span class = " pl-smi " > $fileSize < / span > bytes . < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC198 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 198 " style = " position:relative " > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC199 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 199 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-smi " > $fileSize < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC200 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 200 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC201 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 201 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC202 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 202 " style = " position:relative " > < span class = " pl-k " > catch < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC203 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 203 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Verbose < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Content-Length header was not extracted for < span class = " pl-smi " > $zipUri < / span > . < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-c
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC206 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 206 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-c1 " > $null < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC207 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 207 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC208 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 208 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC209 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 209 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Say-Invocation < / span > ( < span class = " pl-smi " > $Invocation < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC210 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 210 " style = " position:relative " > < span class = " pl-smi " > $command < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $Invocation < span class = " pl-smi " > . MyCommand < / span > < / span > ; < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC211 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 211 " style = " position:relative " > < span class = " pl-c1 " > $args < / span > < span class = " pl-k " > = < / span > ( ( < span class = " pl-smi " > $Invocation < span class = " pl-smi " > . BoundParameters . Keys < / span > < / span > < span class = " pl-k " > | < / span > < span class = " pl-k " > foreach < / span > { < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > - < span class = " pl-c1 " > $_ < / span > < span class = " pl-cce " > ` & quot ; < / span > < span class = " pl-k " > < span class = " pl-pse " > $ < / span > < / span > < span class = " pl-pse " > ( < / span > < span class = " pl-smi " > $Invocation < span class = " pl-smi " > . BoundParameters < / span > < / span > [ < span class = " pl-c1 " > $_ < / span > ] < span class = " pl-pse " > ) < / span > < span class = " pl-cce " > ` & quot ; < / span > < span class = " pl-pds " > & quot ; < / span > < / span > } ) < span class = " pl-k " > -join < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-pds " > & quot ; < / span > < / span > ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC212 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 212 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Verbose < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-smi " > $command < / span > < span class = " pl-c1 " > $args < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC213 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 213 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC214 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 214 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC215 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 215 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Invoke-With -Retry < / span > ( [ < span class = " pl-k " > ScriptBlock < / span > ] < span class = " pl-smi " > $ScriptBlock < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > System . Threading . CancellationToken < / span > ] < span class = " pl-smi " > $cancellationToken < / span > < span class = " pl-k " > = < / span > [ < span class = " pl-k " > System . Threading . CancellationToken < / span > ] :: None < span class = " pl-k " > , < / span > [ < span class = " pl-k " > int < / span > ] < span class = " pl-smi " > $MaxAttempts < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > 3 < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > int < / span > ] < span class = " pl-smi " > $SecondsBetweenAttempts < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > 1 < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC216 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 216 " style = " position:relative " > < span class = " pl-smi " > $Attempts < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > 0 < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC217 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 217 " style = " position:relative " > < span class = " pl-smi " > $ < span class = " pl-k " > local < / span > : startTime < / span > < span class = " pl-k " > = < / span > < span class = " pl-k " > $ < / span > ( < span class = " pl-c1 " > get-date < / span > ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC218 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 218 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC219 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 219 " style = " position:relative " > < span class = " pl-k " > while < / span > ( < span class = " pl-c1 " > $true < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC220 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 220 " style = " position:relative " > < span class = " pl-k " > try < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC221 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 221 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-k " > & amp ; < / span > < span class = " pl-smi " > $ScriptBlock < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC222 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 222 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC223 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 223 " style = " position:relative " > < span class = " pl-k " > catch < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC224 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 224 " style = " position:relative " > < span class = " pl-smi " > $Attempts < / span > < span class = " pl-k " > + + < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC225 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 225 " style = " position:relative " > < span class = " pl-k " > if < / span > ( ( < span class = " pl-smi " > $Attempts < / span > < span class = " pl-k " > -lt < / span > < span class = " pl-smi " > $MaxAttempts < / span > ) < span class = " pl-k " > -and < / span > < span class = " pl-k " > -not < / span > < span class = " pl-smi " > $cancellationToken < span class = " pl-smi " > . IsCancellationRequested < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC226 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 226 " style = " position:relative " > < span class = " pl-c1 " > Start-Sleep < / span > < span class = " pl-smi " > $SecondsBetweenAttempts < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC227 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 227 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC228 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 228 " style = " position:relative " > < span class = " pl-k " > else < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC229 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 229 " style = " position:relative " > < span class = " pl-smi " > $ < span class = " pl-k " > local < / span > : elapsedTime < / span > < span class = " pl-k " > = < / span > < span class = " pl-k " > $ < / span > ( < span class = " pl-c1 " > get-date < / span > ) < span class = " pl-k " > - < / span > < span class = " pl-smi " > $ < span class = " pl-k " > local < / span > : startTime < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC230 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 230 " style = " position:relative " > < span class = " pl-k " > if < / span > ( ( < span class = " pl-smi " > $ < span class = " pl-k " > local < / span > : elapsedTime < span class = " pl-smi " > . TotalSeconds < / span > < / span > < span class = " pl-k " > - < / span > < span class = " pl-smi " > $DownloadTimeout < / span > ) < span class = " pl-k " > -gt < / span > < span class = " pl-c1 " > 0 < / span > < span class
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC239 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 239 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Get-Machine -Architecture < / span > ( ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC240 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 240 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Invocation < span class = " pl-c1 " > $MyInvocation < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC241 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 241 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC242 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 242 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> On PS x86, PROCESSOR_ARCHITECTURE reports x86 even on x64 systems.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC243" class="react-file-line html-div" data-testid="code-cell" data-line-number="243" style="position:relative"> <span class="pl-c"><span class="pl-c">#</span> To get the correct architecture, we need to use PROCESSOR_ARCHITEW6432.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC244" class="react-file-line html-div" data-testid="code-cell" data-line-number="244" style="position:relative"> <span class="pl-c"><span class="pl-c">#</span> PS x64 doesn't define this, so we fall back to PROCESSOR_ARCHITECTURE.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC245" class="react-file-line html-div" data-testid="code-cell" data-line-number="245" style="position:relative"> <span class="pl-c"><span class="pl-c">#</span> Possible values: amd64, x64, x86, arm64, arm</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC246" class="react-file-line html-div" data-testid="code-cell" data-line-number="246" style="position:relative"> <span class="pl-k">if</span> ( <span class="pl-smi">$<span class="pl-c1">ENV:</span>PROCESSOR_ARCHITEW6432</span> <span class="pl-k">-ne</span> <span class="pl-c1">$null</span> ) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC247" class="react-file-line html-div" data-testid="code-cell" data-line-number="247" style="position:relative"> <span class="pl-k">return</span> <span class="pl-smi">$<span class="pl-c1">ENV:</span>PROCESSOR_ARCHITEW6432</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC248" class="react-file-line html-div" data-testid="code-cell" data-line-number="248" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC249" class="react-file-line html-div" data-testid="code-cell" data-line-number="249" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC250 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 250 " style = " position:relative " > < span class = " pl-k " > try < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC251 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 251 " style = " position:relative " > < span class = " pl-k " > if < / span > ( ( ( < span class = " pl-c1 " > Get-CimInstance < / span > < span class = " pl-k " > - < / span > ClassName CIM_OperatingSystem ) . OSArchitecture ) < span class = " pl-k " > -like < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > ARM * < span class = " pl-pds " > & quot ; < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC252 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 252 " style = " position:relative " > < span class = " pl-k " > if < / span > ( [ < span class = " pl-k " > Environment < / span > ] :: Is64BitOperatingSystem ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC253 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 253 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > arm64 < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC254 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 254 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC255 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 255 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > arm < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC256 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 256 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC257 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 257 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC258 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 258 " style = " position:relative " > < span class = " pl-k " > catch < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC259 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 259 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> Machine doesn't support Get-CimInstance</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC260" class="react-file-line html-div" data-testid="code-cell" data-line-number="260" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC261" class="react-file-line html-div" data-testid="code-cell" data-line-number="261" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC262 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 262 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-smi " > $ < span class = " pl-c1 " > ENV : < / span > PROCESSOR_ARCHITECTURE < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC263 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 263 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC264 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 264 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC265 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 265 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Get-CLIArchitecture -From -Architecture < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $Architecture < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC266 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 266 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Invocation < span class = " pl-c1 " > $MyInvocation < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC267 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 267 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC268 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 268 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $Architecture < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > & lt ; auto & gt ; < span class = " pl-pds " > & quot ; < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC269 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 269 " style = " position:relative " > < span class = " pl-smi " > $Architecture < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > Get-Machine < / span > < span class = " pl-k " > - < / span > Architecture < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC270 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 270 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC271 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 271 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC272 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 272 " style = " position:relative " > < span class = " pl-k " > switch < / span > ( < span class = " pl-smi " > $Architecture < span class = " pl-smi " > . ToLowerInvariant < / span > < / span > ( ) ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC273 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 273 " style = " position:relative " > { ( < span class = " pl-c1 " > $_ < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > amd64 < span class = " pl-pds " > & quot ; < / span > < / span > ) < span class = " pl-k " > -or < / span > ( < span class = " pl-c1 " > $_ < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > x64 < span class = " pl-pds " > & quot ; < / span > < / span > ) } { < span class = " pl-k " > return < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > x64 < span class = " pl-pds " > & quot ; < / span > < / span > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC274 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 274 " style = " position:relative " > { < span class = " pl-c1 " > $_ < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > x86 < span class = " pl-pds " > & quot ; < / span > < / span > } { < span class = " pl-k " > return < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > x86 < span class = " pl-pds " > & quot ; < / span > < / span > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC275 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 275 " style = " position:relative " > { < span class = " pl-c1 " > $_ < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > arm < span class = " pl-pds " > & quot ; < / span > < / span > } { < span class = " pl-k " > return < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > arm < span class = " pl-pds " > & quot ; < / span > < / span > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC276 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 276 " style = " position:relative " > { < span class = " pl-c1 " > $_ < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > arm64 < span class = " pl-pds " > & quot ; < / span > < / span > } { < span class = " pl-k " > return < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > arm64 < span class = " pl-pds " > & quot ; < / span > < / span > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC277 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 277 " style = " position:relative " > < span class = " pl-k " > default < / span > { < span class = " pl-k " > throw < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Architecture & #039;<span class="pl-smi">$Architecture</span>' not supported. If you think this is a bug, report it at https://github.com/dotnet/install-scripts/issues<span class="pl-pds">"</span></span> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC278" class="react-file-line html-div" data-testid="code-cell" data-line-number="278" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC279" class="react-file-line html-div" data-testid="code-cell" data-line-number="279" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC280" class="react-file-line html-div" data-testid="code-cell" data-line-number="280" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC281 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 281 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > ValidateFeedCredential < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $FeedCredential < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC282 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 282 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $Internal < / span > < span class = " pl-k " > -and < / span > [ < span class = " pl-k " > string < / span > ] :: IsNullOrWhitespace ( < span class = " pl-smi " > $FeedCredential < / span > ) ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC283 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 283 " style = " position:relative " > < span class = " pl-smi " > $message < / span > < span class = " pl-k " > = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Provide credentials via -FeedCredential parameter . < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC284 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 284 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $DryRun < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC285 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 285 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Warning < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-smi " > $message < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC286 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 286 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC287 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 287 " style = " position:relative " > < span class = " pl-k " > else < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC288 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 288 " style = " position:relative " > < span class = " pl-k " > throw < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-smi " > $message < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC289 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 289 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC290 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 290 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC291 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 291 " style = " position:relative " > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC292 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 292 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span>FeedCredential should start with "?", for it to be added to the end of the link.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC293" class="react-file-line html-div" data-testid="code-cell" data-line-num
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC298 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 298 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-smi " > $FeedCredential < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC299 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 299 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC300 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 300 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Get-NormalizedQuality < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $Quality < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC301 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 301 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Invocation < span class = " pl-c1 " > $MyInvocation < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC302 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 302 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC303 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 303 " style = " position:relative " > < span class = " pl-k " > if < / span > ( [ < span class = " pl-k " > string < / span > ] :: IsNullOrEmpty ( < span class = " pl-smi " > $Quality < / span > ) ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC304 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 304 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC305 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 305 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC306 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 306 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC307 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 307 " style = " position:relative " > < span class = " pl-k " > switch < / span > ( < span class = " pl-smi " > $Quality < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC308 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 308 " style = " position:relative " > { < span class = " pl-k " > @ < / span > ( < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > daily < span class = " pl-pds " > & quot ; < / span > < / span > < span class = " pl-k " > , < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > signed < span class = " pl-pds " > & quot ; < / span > < / span > < span class = " pl-k " > , < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > validated < span class = " pl-pds " > & quot ; < / span > < / span > < span class = " pl-k " > , < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > preview < span class = " pl-pds " > & quot ; < / span > < / span > ) < span class = " pl-k " > -contains < / span > < span class = " pl-c1 " > $_ < / span > } { < span class = " pl-k " > return < / span > < span class = " pl-smi " > $Quality < span class = " pl-smi " > . ToLowerInvariant < / span > < / span > ( ) } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC309 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 309 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span>ga quality is available without specifying quality, so normalizing it to empty</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC310" class="react-file-line html-div" data-testid="code-cell" data-line-number="310" style="position:relative"> { <span class="pl-c1">$_</span> <span class="pl-k">-eq</span> <span class="pl-s"><span class="pl-pds">"</span>ga<span class="pl-pds">"</span></span> } { <span class="pl-k">return</span> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-pds">"</span></span> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC311" class="react-file-line html-div" data-testid="code-cell" data-line-number="311" style="position:relative"> <span class="pl-k">default</span> { <span class="pl-k">throw</span> <span class="pl-s"><span class="pl-pds">"</span>'<span class="pl-smi">$Quality</span>' is not a supported value for -Quality option. Supported values are: daily, signed, validated, preview, ga. If you think this is a bug, report it at https://github.com/dotnet/install-scripts/issues.<span class="pl-pds">"</span></span> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC312" class="react-file-line html-div" data-testid="code-cell" data-line-number="312" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC313" class="react-file-line html-div" data-testid="code-cell" data-line-number="313" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC314" class="react-file-line html-div" data-testid="code-cell" data-line-number="314" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC315 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 315 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Get-NormalizedChannel < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $Channel < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC316 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 316 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Invocation < span class = " pl-c1 " > $MyInvocation < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC317 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 317 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC318 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 318 " style = " position:relative " > < span class = " pl-k " > if < / span > ( [ < span class = " pl-k " > string < / span > ] :: IsNullOrEmpty ( < span class = " pl-smi " > $Channel < / span > ) ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC319 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 319 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC320 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 320 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC321 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 321 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC322 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 322 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $Channel < span class = " pl-smi " > . Contains < / span > < / span > ( < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Current < span class = " pl-pds " > & quot ; < / span > < / span > ) ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC323 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 323 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Warning < span class = " pl-s " > < span class = " pl-pds " > & #039;</span>Value "Current" is deprecated for -Channel option. Use "STS" instead.<span class="pl-pds">'</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC324" class="react-file-line html-div" data-testid="code-cell" data-line-number="324" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC325" class="react-file-line html-div" data-testid="code-cell" data-line-number="325" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC326 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 326 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $Channel < span class = " pl-smi " > . StartsWith < / span > < / span > ( < span class = " pl-s " > < span class = " pl-pds " > & #039;</span>release/<span class="pl-pds">'</span></span>)) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC327" class="react-file-line html-div" data-testid="code-cell" data-line-number="327" style="position:relative"> Say<span class="pl-k">-</span>Warning <span class="pl-s"><span class="pl-pds">'</span>Using branch name with -Channel option is no longer supported with newer releases. Use -Quality option with a channel in X.Y format instead, such as "-Channel 5.0 -Quality Daily."<span class="pl-pds">'</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC328" class="react-file-line html-div" data-testid="code-cell" data-line-number="328" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC329" class="react-file-line html-div" data-testid="code-cell" data-line-number="329" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC330 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 330 " style = " position:relative " > < span class = " pl-k " > switch < / span > ( < span class = " pl-smi " > $Channel < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC331 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 331 " style = " position:relative " > { < span class = " pl-c1 " > $_ < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > lts < span class = " pl-pds " > & quot ; < / span > < / span > } { < span class = " pl-k " > return < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > LTS < span class = " pl-pds " > & quot ; < / span > < / span > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC332 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 332 " style = " position:relative " > { < span class = " pl-c1 " > $_ < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > sts < span class = " pl-pds " > & quot ; < / span > < / span > } { < span class = " pl-k " > return < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > STS < span class = " pl-pds " > & quot ; < / span > < / span > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC333 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 333 " style = " position:relative " > { < span class = " pl-c1 " > $_ < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > current < span class = " pl-pds " > & quot ; < / span > < / span > } { < span class = " pl-k " > return < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > STS < span class = " pl-pds " > & quot ; < / span > < / span > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC334 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 334 " style = " position:relative " > < span class = " pl-k " > default < / span > { < span class = " pl-k " > return < / span > < span class = " pl-smi " > $Channel < span class = " pl-smi " > . ToLowerInvariant < / span > < / span > ( ) } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC335 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 335 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC336 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 336 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC337 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 337 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC338 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 338 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Get-NormalizedProduct < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $Runtime < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC339 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 339 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Invocation < span class = " pl-c1 " > $MyInvocation < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC340 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 340 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC341 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 341 " style = " position:relative " > < span class = " pl-k " > switch < / span > ( < span class = " pl-smi " > $Runtime < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC342 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 342 " style = " position:relative " > { < span class = " pl-c1 " > $_ < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > dotnet < span class = " pl-pds " > & quot ; < / span > < / span > } { < span class = " pl-k " > return < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > dotnet-runtime < span class = " pl-pds " > & quot ; < / span > < / span > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC343 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 343 " style = " position:relative " > { < span class = " pl-c1 " > $_ < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > aspnetcore < span class = " pl-pds " > & quot ; < / span > < / span > } { < span class = " pl-k " > return < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > aspnetcore-runtime < span class = " pl-pds " > & quot ; < / span > < / span > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC344 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 344 " style = " position:relative " > { < span class = " pl-c1 " > $_ < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > windowsdesktop < span class = " pl-pds " > & quot ; < / span > < / span > } { < span class = " pl-k " > return < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > windowsdesktop-runtime < span class = " pl-pds " > & quot ; < / span > < / span > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC345 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 345 " style = " position:relative " > { [ < span class = " pl-k " > string < / span > ] :: IsNullOrEmpty ( < span class = " pl-c1 " > $_ < / span > ) } { < span class = " pl-k " > return < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > dotnet-sdk < span class = " pl-pds " > & quot ; < / span > < / span > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC346 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 346 " style = " position:relative " > < span class = " pl-k " > default < / span > { < span class = " pl-k " > throw < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > & #039;<span class="pl-smi">$Runtime</span>' is not a supported value for -Runtime option, supported values are: dotnet, aspnetcore, windowsdesktop. If you think this is a bug, report it at https://github.com/dotnet/install-scripts/issues.<span class="pl-pds">"</span></span> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC347" class="react-file-line html-div" data-testid="code-cell" data-line-number="347" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC348" class="react-file-line html-div" data-testid="code-cell" data-line-number="348" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC349" class="react-file-line html-div" data-testid="code-cell" data-line-number="349" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC350 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 350 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC351 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 351 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> The version text returned from the feeds is a 1-line or 2-line string:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC352" class="react-file-line html-div" data-testid="code-cell" data-line-number="352" style="position:relative"><span class="pl-c"><span class="pl-c">#</span> For the SDK and the dotnet runtime (2 lines):</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC353" class="react-file-line html-div" data-testid="code-cell" data-line-number="353" style="position:relative"><span class="pl-c"><span class="pl-c">#</span> Line 1: # commit_hash</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC354" class="react-file-line html-div" data-testid="code-cell" data-line-number="354" style="position:relative"><span class="pl-c"><span class="pl-c">#</span> Line 2: # 4-part version</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC355" class="react-file-line html-div" data-testid="code-cell" data-line-number="355" style="position:relative"><span class="pl-c"><span class="pl-c">#</span> For the aspnetcore runtime (1 line):</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC356" class="react-file-line html-div" data-testid="code-cell" data-line-number="356" style="position:relative"><span class="pl-c"><span class="pl-c">#</span> Line 1: # 4-part version</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC357" class="react-file-line html-div" data-testid="code-cell" data-line-number="357" style="position:relative"><span class="pl-k">function</span> <span class="pl-en">Get-Version-From-LatestVersion-File-Content</span>([<span class="pl-k">string</span>]<span class="pl-smi">$VersionText</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC358" class="react-file-line html-div" data-testid="code-cell" data-line-number="358" style="position:relative"> Say<span class="pl-k">-</span>Invocation <span class="pl-c1">$MyInvocation</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC359" class="react-file-line html-div" data-testid="code-cell" data-line-number="359" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC360 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 360 " style = " position:relative " > < span class = " pl-smi " > $Data < / span > < span class = " pl-k " > = < / span > < span class = " pl-k " > -split < / span > < span class = " pl-smi " > $VersionText < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC361 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 361 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC362 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 362 " style = " position:relative " > < span class = " pl-smi " > $VersionInfo < / span > < span class = " pl-k " > = < / span > < span class = " pl-k " > @ < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC363 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 363 " style = " position:relative " > < span class = " pl-smi " > CommitHash < / span > < span class = " pl-k " > = < / span > < span class = " pl-k " > $ < / span > ( < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $Data < span class = " pl-smi " > . Count < / span > < / span > < span class = " pl-k " > -gt < / span > < span class = " pl-c1 " > 1 < / span > ) { < span class = " pl-smi " > $Data < / span > [ < span class = " pl-c1 " > 0 < / span > ] } ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC364 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 364 " style = " position:relative " > < span class = " pl-smi " > Version < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $Data < / span > [ < span class = " pl-c1 " > -1 < / span > ] < span class = " pl-c " > < span class = " pl-c " > #</span> last line is always the version number.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC365" class="react-file-line html-div" data-testid="code-cell" data-line-number="365" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC366" class="react-file-line html-div" data-testid="code-cell" data-line-number="366" style="position:relative"> <span class="pl-k">return</span> <span class="pl-smi">$VersionInfo</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC367" class="react-file-line html-div" data-testid="code-cell" data-line-number="367" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC368" class="react-file-line html-div" data-testid="code-cell" data-line-number="368" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC369 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 369 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Load-Assembly < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $Assembly < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC370 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 370 " style = " position:relative " > < span class = " pl-k " > try < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC371 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 371 " style = " position:relative " > < span class = " pl-c1 " > Add-Type < / span > < span class = " pl-k " > - < / span > Assembly < span class = " pl-smi " > $Assembly < / span > < span class = " pl-k " > | < / span > < span class = " pl-c1 " > Out-Null < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC372 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 372 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC373 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 373 " style = " position:relative " > < span class = " pl-k " > catch < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC374 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 374 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> On Nano Server, Powershell Core Edition is used. Add-Type is unable to resolve base class assemblies because they are not GAC'd.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC375" class="react-file-line html-div" data-testid="code-cell" data-line-number="375" style="position:relative"> <span class="pl-c"><span class="pl-c">#</span> Loading the base class assemblies is not unnecessary as the types will automatically get resolved.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC376" class="react-file-line html-div" data-testid="code-cell" data-line-number="376" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC377" class="react-file-line html-div" data-testid="code-cell" data-line-number="377" style="position:relative">}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC378" class="react-file-line html-div" data-testid="code-cell" data-line-number="378" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC379 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 379 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > GetHTTPResponse < / span > ( [ < span class = " pl-k " > Uri < / span > ] < span class = " pl-smi " > $Uri < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > bool < / span > ] < span class = " pl-smi " > $HeaderOnly < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > bool < / span > ] < span class = " pl-smi " > $DisableRedirect < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > bool < / span > ] < span class = " pl-smi " > $DisableFeedCredential < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC380 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 380 " style = " position:relative " > < span class = " pl-smi " > $cts < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > New-Object < / span > System . Threading . CancellationTokenSource < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC381 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 381 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC382 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 382 " style = " position:relative " > < span class = " pl-smi " > $downloadScript < / span > < span class = " pl-k " > = < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC383 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 383 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC384 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 384 " style = " position:relative " > < span class = " pl-smi " > $HttpClient < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > $null < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC385 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 385 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC386 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 386 " style = " position:relative " > < span class = " pl-k " > try < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC387 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 387 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> HttpClient is used vs Invoke-WebRequest in order to support Nano Server which doesn't support the Invoke-WebRequest cmdlet.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC388" class="react-file-line html-div" data-testid="code-cell" data-line-number="388" style="position:relative"> Load<span class="pl-k">-</span>Assembly <span class="pl-k">-</span>Assembly System.Net.Http</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC389" class="react-file-line html-div" data-testid="code-cell" data-line-number="389" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC390 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 390 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-k " > -not < / span > < span class = " pl-smi " > $ProxyAddress < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC391 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 391 " style = " position:relative " > < span class = " pl-k " > try < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC392 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 392 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> Despite no proxy being explicitly specified, we may still be behind a default proxy</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC393" class="react-file-line html-div" data-testid="code-cell" data-line-number="393" style="position:relative"> <span class="pl-smi">$DefaultProxy</span> <span class="pl-k">=</span> [<span class="pl-k">System.Net.WebRequest</span>]::DefaultWebProxy;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC394" class="react-file-line html-div" data-testid="code-cell" data-line-number="394" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-smi">$DefaultProxy</span> <span class="pl-k">-and</span> (<span class="pl-k">-not</span> <span class="pl-smi">$DefaultProxy<span class="pl-smi">.IsBypassed</span></span>(<span class="pl-smi">$Uri</span>))) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC395" class="react-file-line html-div" data-testid="code-cell" data-line-number="395" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-c1">$null</span> <span class="pl-k">-ne</span> <span class="pl-smi">$DefaultProxy<span class="pl-smi">.GetProxy</span></span>(<span class="pl-smi">$Uri</span>)) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC396" class="react-file-line html-div" data-testid="code-cell" data-line-number="396" style="position:relative"> <span class="pl-smi">$ProxyAddress</span> <span class="pl-k">=</span> <span class="pl-smi">$DefaultProxy<span class="pl-smi">.GetProxy</span></span>(<span class="pl-smi">$Uri</span>).OriginalString</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC397" class="react-file-line html-div" data-testid="code-cell" data-line-number="397" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC398" class="react-file-line html-div" data-testid="code-cell" data-line-number="398" style="position:relative"> <span class="pl-k">else</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC399" class="react-file-line html-div" data-testid="code-cell" data-line-number="399" style="position:relative"> <span class="pl-smi">$ProxyAddress</span> <span class="pl-k">=</span> <span class="pl-c1">$null</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC400" class="react-file-line html-div" data-testid="code-cell" data-line-number="400" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC401" class="react-file-line html-div" data-testid="code-cell" data-line-number="401" s
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC412 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 412 " style = " position:relative " > < span class = " pl-smi " > $HttpClientHandler < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > New-Object < / span > System . Net . Http . HttpClientHandler < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC413 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 413 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $ProxyAddress < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC414 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 414 " style = " position:relative " > < span class = " pl-smi " > $HttpClientHandler < span class = " pl-smi " > . Proxy < / span > < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > New-Object < / span > System . Net . WebProxy < span class = " pl-k " > - < / span > Property < span class = " pl-k " > @ < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC415 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 415 " style = " position:relative " > < span class = " pl-smi " > Address < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $ProxyAddress < / span > ; < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC416 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 416 " style = " position:relative " > < span class = " pl-smi " > UseDefaultCredentials < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $ProxyUseDefaultCredentials < / span > ; < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC417 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 417 " style = " position:relative " > < span class = " pl-smi " > BypassList < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $ProxyBypassList < / span > ; < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC418 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 418 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC419 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 419 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC420 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 420 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $DisableRedirect < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC421 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 421 " style = " position:relative " > < span class = " pl-smi " > $HttpClientHandler < span class = " pl-smi " > . AllowAutoRedirect < / span > < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > $false < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC422 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 422 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC423 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 423 " style = " position:relative " > < span class = " pl-smi " > $HttpClient < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > New-Object < / span > System . Net . Http . HttpClient < span class = " pl-k " > - < / span > ArgumentLi
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC425 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 425 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> Default timeout for HttpClient is 100s. For a 50 MB download this assumes 500 KB/s average, any less will time out</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC426" class="react-file-line html-div" data-testid="code-cell" data-line-number="426" style="position:relative"> <span class="pl-c"><span class="pl-c">#</span> Defaulting to 20 minutes allows it to work over much slower connections.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC427" class="react-file-line html-div" data-testid="code-cell" data-line-number="427" style="position:relative"> <span class="pl-smi">$HttpClient<span class="pl-smi">.Timeout</span></span> <span class="pl-k">=</span> <span class="pl-c1">New-TimeSpan</span> <span class="pl-k">-</span>Seconds <span class="pl-smi">$DownloadTimeout</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC428" class="react-file-line html-div" data-testid="code-cell" data-line-number="428" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC429 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 429 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $HeaderOnly < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC430 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 430 " style = " position:relative " > < span class = " pl-smi " > $completionOption < / span > < span class = " pl-k " > = < / span > [ < span class = " pl-k " > System . Net . Http . HttpCompletionOption < / span > ] :: ResponseHeadersRead < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC431 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 431 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC432 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 432 " style = " position:relative " > < span class = " pl-k " > else < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC433 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 433 " style = " position:relative " > < span class = " pl-smi " > $completionOption < / span > < span class = " pl-k " > = < / span > [ < span class = " pl-k " > System . Net . Http . HttpCompletionOption < / span > ] :: ResponseContentRead < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC434 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 434 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC435 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 435 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC436 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 436 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $DisableFeedCredential < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC437 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 437 " style = " position:relative " > < span class = " pl-smi " > $UriWithCredential < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $Uri < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC438 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 438 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC439 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 439 " style = " position:relative " > < span class = " pl-k " > else < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC440 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 440 " style = " position:relative " > < span class = " pl-smi " > $UriWithCredential < / span > < span class = " pl-k " > = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-smi " > $ { Uri } $ { FeedCredential } < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC441 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 441 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC442 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 442 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC443 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 443 " style = " position:relative " > < span class = " pl-smi " > $Task < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $HttpClient < span class = " pl-smi " > . GetAsync < / span > < / span > ( < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-smi " > $UriWithCredential < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < span class = " pl-k " > , < / span > < span class = " pl-smi " > $completionOption < / span > ) . ConfigureAwait ( < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > false < span class = " pl-pds " > & quot ; < / span > < / span > ) ; < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC444 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 444 " style = " position:relative " > < span class = " pl-smi " > $Response < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $Task < span class = " pl-smi " > . GetAwaiter < / span > < / span > ( ) . GetResult ( ) ; < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC445 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 445 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC446 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 446 " style = " position:relative " > < span class = " pl-k " > if < / span > ( ( < span class = " pl-c1 " > $null < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-smi " > $Response < / span > ) < span class = " pl-k " > -or < / span > ( ( < span class = " pl-k " > -not < / span > < span class = " pl-smi " > $HeaderOnly < / span > ) < span class = " pl-k " > -and < / span > ( < span class = " pl-k " > -not < / span > ( < span class = " pl-smi " > $Response < span class = " pl-smi " > . IsSuccessStatusCode < / span > < / span > ) ) ) ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC447 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 447 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> The feed credential is potentially sensitive info. Do not log FeedCredential to console output.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC448" class="react-file-line html-div" data-testid="code-cell" data-line-number="448" style="position:relative"> <span class="pl-smi">$DownloadException</span> <span class="pl-k">=</span> [<span class="pl-k">System.Exception</span>] <span class="pl-s"><span class="pl-pds">"</span>Unable to download <span class="pl-smi">$Uri</span>.<span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC449" class="react-file-line html-div" data-testid="code-cell" data-line-number="449" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC450 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 450 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-c1 " > $null < / span > < span class = " pl-k " > -ne < / span > < span class = " pl-smi " > $Response < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC451 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 451 " style = " position:relative " > < span class = " pl-smi " > $DownloadException < span class = " pl-smi " > . Data < / span > < / span > [ < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > StatusCode < span class = " pl-pds " > & quot ; < / span > < / span > ] < span class = " pl-k " > = < / span > [ < span class = " pl-k " > int < / span > ] < span class = " pl-smi " > $Response < span class = " pl-smi " > . StatusCode < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC452 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 452 " style = " position:relative " > < span class = " pl-smi " > $DownloadException < span class = " pl-smi " > . Data < / span > < / span > [ < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > ErrorMessage < span class = " pl-pds " > & quot ; < / span > < / span > ] < span class = " pl-k " > = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Unable to download < span class = " pl-smi " > $Uri < / span > . Returned HTTP status code : < span class = " pl-pds " > & quot ; < / span > < / span > < span class = " pl-k " > + < / span > < span class = " pl-smi " > $DownloadException < span class = " pl-smi " > . Data < / span > < / span > [ < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > StatusCode < span class = " pl-pds " > & quot ; < / span > < / span > ] < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC453 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 453 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC454 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 454 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-c1 " > 404 < / span > < span class = " pl-k " > -eq < / span > [ < span class = " pl-k " > int < / span > ] < span class = " pl-smi " > $Response < span class = " pl-smi " > . StatusCode < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC455 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 455 " style = " position:relative " > < span class = " pl-smi " > $cts < span class = " pl-smi " > . Cancel < / span > < / span > ( ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC456 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 456 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC457 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 457 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC458 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 458 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC459 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 459 " style = " position:relative " > < span class = " pl-k " > throw < / span > < span class = " pl-smi " > $DownloadException < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC460 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 460 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC461 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 461 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC462 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 462 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-smi " > $Response < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC463 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 463 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC464 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 464 " style = " position:relative " > < span class = " pl-k " > catch < / span > [ < span class = " pl-k " > System . Net . Http . HttpRequestException < / span > ] { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC465 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 465 " style = " position:relative " > < span class = " pl-smi " > $DownloadException < / span > < span class = " pl-k " > = < / span > [ < span class = " pl-k " > System . Exception < / span > ] < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Unable to download < span class = " pl-smi " > $Uri < / span > . < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC466 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 466 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC467 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 467 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> Pick up the exception message and inner exceptions' messages if they exist</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC468" class="react-file-line html-div" data-testid="code-cell" data-line-number="468" style="position:relative"> <span class="pl-smi">$CurrentException</span> <span class="pl-k">=</span> <span class="pl-c1">$PSItem<span class="pl-smi">.Exception</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC469" class="react-file-line html-div" data-testid="code-cell" data-line-number="469" style="position:relative"> <span class="pl-smi">$ErrorMsg</span> <span class="pl-k">=</span> <span class="pl-smi">$CurrentException<span class="pl-smi">.Message</span></span> <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-cce">`r`n</span><span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC470" class="react-file-line html-div" data-testid="code-cell" data-line-number="470" style="position:relative"> <span class="pl-k">while</span> (<span class="pl-smi">$CurrentException<span class="pl-smi">.InnerException</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC471" class="react-file-line html-div" data-testid="code-cell" data-line-number="471" style="position:relative"> <span class="pl-smi">$CurrentException</span> <span class="pl-k">=</span> <span class="pl-smi">$CurrentException<span class="pl-smi">.InnerException</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC472" class="react-file-line html-div" data-testid="code-cell" data-line-number="472" style="position:relative"> <span class="pl-smi">$ErrorMsg</span> <span class="pl-k">+=</span> <span class="pl-smi">$CurrentException<span class="pl-smi">.Message</span></span> <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-cce">`r`n</span><span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC473" class="react-file-line html-div" data-testid="code-cell" data-line-number="473" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC474" class="react-file-line html-div" data-testid="code-cell" data-line-number="474" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC475 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 475 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> Check if there is an issue concerning TLS.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC476" class="react-file-line html-div" data-testid="code-cell" data-line-number="476" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-smi">$ErrorMsg</span> <span class="pl-k">-like</span> <span class="pl-s"><span class="pl-pds">"</span>*SSL/TLS*<span class="pl-pds">"</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC477" class="react-file-line html-div" data-testid="code-cell" data-line-number="477" style="position:relative"> <span class="pl-smi">$ErrorMsg</span> <span class="pl-k">+=</span> <span class="pl-s"><span class="pl-pds">"</span>Ensure that TLS 1.2 or higher is enabled to use this script.<span class="pl-cce">`r`n</span><span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC478" class="react-file-line html-div" data-testid="code-cell" data-line-number="478" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC479" class="react-file-line html-div" data-testid="code-cell" data-line-number="479" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC480 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 480 " style = " position:relative " > < span class = " pl-smi " > $DownloadException < span class = " pl-smi " > . Data < / span > < / span > [ < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > ErrorMessage < span class = " pl-pds " > & quot ; < / span > < / span > ] < span class = " pl-k " > = < / span > < span class = " pl-smi " > $ErrorMsg < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC481 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 481 " style = " position:relative " > < span class = " pl-k " > throw < / span > < span class = " pl-smi " > $DownloadException < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC482 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 482 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC483 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 483 " style = " position:relative " > < span class = " pl-k " > finally < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC484 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 484 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-c1 " > $null < / span > < span class = " pl-k " > -ne < / span > < span class = " pl-smi " > $HttpClient < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC485 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 485 " style = " position:relative " > < span class = " pl-smi " > $HttpClient < span class = " pl-smi " > . Dispose < / span > < / span > ( ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC486 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 486 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC487 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 487 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC488 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 488 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC489 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 489 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC490 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 490 " style = " position:relative " > < span class = " pl-k " > try < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC491 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 491 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-c1 " > Invoke-With < / span > < span class = " pl-k " > - < / span > Retry < span class = " pl-smi " > $downloadScript < / span > < span class = " pl-smi " > $cts < span class = " pl-smi " > . Token < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC492 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 492 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC493 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 493 " style = " position:relative " > < span class = " pl-k " > finally < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC494 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 494 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-c1 " > $null < / span > < span class = " pl-k " > -ne < / span > < span class = " pl-smi " > $cts < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC495 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 495 " style = " position:relative " > < span class = " pl-smi " > $cts < span class = " pl-smi " > . Dispose < / span > < / span > ( ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC496 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 496 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC497 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 497 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC498 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 498 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC499 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 499 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC500 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 500 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Get-Version -From -LatestVersion -File < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $AzureFeed < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $Channel < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC501 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 501 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Invocation < span class = " pl-c1 " > $MyInvocation < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC502 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 502 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC503 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 503 " style = " position:relative " > < span class = " pl-smi " > $VersionFileUrl < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > $null < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC504 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 504 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $Runtime < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > dotnet < span class = " pl-pds " > & quot ; < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC505 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 505 " style = " position:relative " > < span class = " pl-smi " > $VersionFileUrl < / span > < span class = " pl-k " > = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-smi " > $AzureFeed < / span > / Runtime / < span class = " pl-smi " > $Channel < / span > / latest . version < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC506 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 506 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC507 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 507 " style = " position:relative " > < span class = " pl-k " > elseif < / span > ( < span class = " pl-smi " > $Runtime < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > aspnetcore < span class = " pl-pds " > & quot ; < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC508 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 508 " style = " position:relative " > < span class = " pl-smi " > $VersionFileUrl < / span > < span class = " pl-k " > = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-smi " > $AzureFeed < / span > / aspnetcore / Runtime / < span class = " pl-smi " > $Channel < / span > / latest . version < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC509 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 509 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC510 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 510 " style = " position:relative " > < span class = " pl-k " > elseif < / span > ( < span class = " pl-smi " > $Runtime < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > windowsdesktop < span class = " pl-pds " > & quot ; < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC511 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 511 " style = " position:relative " > < span class = " pl-smi " > $VersionFileUrl < / span > < span class = " pl-k " > = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-smi " > $AzureFeed < / span > / WindowsDesktop / < span class = " pl-smi " > $Channel < / span > / latest . version < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC512 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 512 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC513 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 513 " style = " position:relative " > < span class = " pl-k " > elseif < / span > ( < span class = " pl
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC520 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 520 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Verbose < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Constructed latest . version URL : < span class = " pl-smi " > $VersionFileUrl < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC521 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 521 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC522 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 522 " style = " position:relative " > < span class = " pl-k " > try < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC523 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 523 " style = " position:relative " > < span class = " pl-smi " > $Response < / span > < span class = " pl-k " > = < / span > GetHTTPResponse < span class = " pl-k " > - < / span > Uri < span class = " pl-smi " > $VersionFileUrl < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC524 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 524 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC525 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 525 " style = " position:relative " > < span class = " pl-k " > catch < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC526 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 526 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Verbose < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Failed to download latest . version file . < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC527 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 527 " style = " position:relative " > < span class = " pl-k " > throw < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC528 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 528 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC529 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 529 " style = " position:relative " > < span class = " pl-smi " > $StringContent < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $Response < span class = " pl-smi " > . Content . ReadAsStringAsync < / span > < / span > ( ) . Result < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC530 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 530 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC531 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 531 " style = " position:relative " > < span class = " pl-k " > switch < / span > ( < span class = " pl-smi " > $Response < span class = " pl-smi " > . Content . Headers . ContentType < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC532 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 532 " style = " position:relative " > { ( < span class = " pl-c1 " > $_ < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > application / octet-stream < span class = " pl-pds " > & quot ; < / span > < / span > ) } { < span class = " pl-smi " > $VersionText < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $StringContent < / span > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC533 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 533 " style = " position:relative " > { ( < span class = " pl-c1 " > $_ < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > text / plain < span class = " pl-pds " > & quot ; < / span > < / span > ) } { < span class = " pl-smi " > $VersionText < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $StringContent < / span > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC534 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 534 " style = " position:relative " > { ( < span class = " pl-c1 " > $_ < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > text / plain ; charset = UTF - 8 < span class = " pl-pds " > & quot ; < / span > < / span > ) } { < span class = " pl-smi " > $VersionText < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $StringContent < / span > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC535 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 535 " style = " position:relative " > < span class = " pl-k " > default < / span > { < span class = " pl-k " > throw < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-cce " > ` ` < / span > < span class = " pl-smi " > $Response < / span > . Content . Headers . ContentType < span class = " pl-cce " > ` ` < / span > is an unknown . version file content type . < span class = " pl-pds " > & quot ; < / span > < / span > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC536 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 536 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC537 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 537 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC538 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 538 " style = " position:relative " > < span class = " pl-smi " > $VersionInfo < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > Get-Version < / span > < span class = " pl-k " > - < / span > From < span class = " pl-k " > - < / span > LatestVersion < span class = " pl-k " > - < / span > File < span class = " pl-k " > - < / span > Content < span class = " pl-smi " > $VersionText < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC539 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 539 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC540 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 540 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-smi " > $VersionInfo < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC541 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 541 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC542 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 542 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC543 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 543 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Parse-Jsonfile -For -Version < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $JSonFile < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC544 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 544 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Invocation < span class = " pl-c1 " > $MyInvocation < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC545 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 545 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC546 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 546 " style = " position:relative " > < span class = " pl-k " > If < / span > ( < span class = " pl-k " > -Not < / span > ( < span class = " pl-c1 " > Test-Path < / span > < span class = " pl-smi " > $JSonFile < / span > ) ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC547 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 547 " style = " position:relative " > < span class = " pl-k " > throw < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Unable to find & #039;<span class="pl-smi">$JSonFile</span>'<span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC548" class="react-file-line html-div" data-testid="code-cell" data-line-number="548" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC549" class="react-file-line html-div" data-testid="code-cell" data-line-number="549" style="position:relative"> <span class="pl-k">try</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC550" class="react-file-line html-div" data-testid="code-cell" data-line-number="550" style="position:relative"> <span class="pl-smi">$JSonContent</span> <span class="pl-k">=</span> <span class="pl-c1">Get-Content</span>(<span class="pl-smi">$JSonFile</span>) <span class="pl-k">-</span>Raw <span class="pl-k">|</span> <span class="pl-c1">ConvertFrom-Json</span> <span class="pl-k">|</span> <span class="pl-c1">Select-Object</span> <span class="pl-k">-</span>expand <span class="pl-s"><span class="pl-pds">"</span>sdk<span class="pl-pds">"</span></span> <span class="pl-k">-</span>ErrorAction SilentlyContinue</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC551" class="react-file-line html-div" data-testid="code-cell" data-line-number="551" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC552" class="react-file-line html-div" data-testid="code-cell" data-line-number="552" style="position:relative"> <span class="pl-k">catch</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC553" class="react-file-line html-div" data-testid="code-cell" data-line-number="553" style="position:relative"> Say<span class="pl-k">-</span>Error <span class="pl-s"><span class="pl-pds">"</span>Json file unreadable: '<span class="pl-smi">$JSonFile</span>'<span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC554" class="react-file-line html-div" data-testid="code-cell" data-line-number="554" style="position:relative"> <span class="pl-k">throw</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC555" class="react-file-line html-div" data-testid="code-cell" data-line-number="555" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC556" class="react-file-line html-div" data-testid="code-cell" data-line-number="556" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-smi">$JSonContent</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC557" class="react-file-line html-div" data-testid="code-cell" data-line-number="557" style="position:relative"> <span class="pl-k">try</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC580 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 580 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Get-Specific -Version -From -Version < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $AzureFeed < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $Channel < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $Version < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $JSonFile < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC581 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 581 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Invocation < span class = " pl-c1 " > $MyInvocation < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC582 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 582 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC583 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 583 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-k " > -not < / span > < span class = " pl-smi " > $JSonFile < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC584 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 584 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $Version < span class = " pl-smi " > . ToLowerInvariant < / span > < / span > ( ) < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > latest < span class = " pl-pds " > & quot ; < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC585 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 585 " style = " position:relative " > < span class = " pl-smi " > $LatestVersionInfo < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > Get-Version < / span > < span class = " pl-k " > - < / span > From < span class = " pl-k " > - < / span > LatestVersion < span class = " pl-k " > - < / span > File < span class = " pl-k " > - < / span > AzureFeed < span class = " pl-smi " > $AzureFeed < / span > < span class = " pl-k " > - < / span > Channel < span class = " pl-smi " > $Channel < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC586 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 586 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-smi " > $LatestVersionInfo < span class = " pl-smi " > . Version < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC587 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 587 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC588 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 588 " style = " position:relative " > < span class = " pl-k " > else < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC589 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 589 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-smi " > $Version < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC590 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 590 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC591 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 591 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC592 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 592 " style = " position:relative " > < span class = " pl-k " > else < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC593 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 593 " style = " position:relative " > < span class = " pl-k " > return < / span > Parse < span class = " pl-k " > - < / span > Jsonfile < span class = " pl-k " > - < / span > For < span class = " pl-k " > - < / span > Version < span class = " pl-smi " > $JSonFile < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC594 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 594 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC595 " class = " react-file-line html-div " data-testid = " code-cell " data-line -numb
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC597 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 597 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Get-Download -Link < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $AzureFeed < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $SpecificVersion < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $CLIArchitecture < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC598 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 598 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Invocation < span class = " pl-c1 " > $MyInvocation < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC599 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 599 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC600 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 600 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> If anything fails in this lookup it will default to $SpecificVersion</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC601" class="react-file-line html-div" data-testid="code-cell" data-line-number="601" style="position:relative"> <span class="pl-smi">$SpecificProductVersion</span> <span class="pl-k">=</span> <span class="pl-c1">Get-Product</span><span class="pl-k">-</span>Version <span class="pl-k">-</span>AzureFeed <span class="pl-smi">$AzureFeed</span> <span class="pl-k">-</span>SpecificVersion <span class="pl-smi">$SpecificVersion</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC602" class="react-file-line html-div" data-testid="code-cell" data-line-number="602" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC603 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 603 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $Runtime < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > dotnet < span class = " pl-pds " > & quot ; < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC604 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 604 " style = " position:relative " > < span class = " pl-smi " > $PayloadURL < / span > < span class = " pl-k " > = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-smi " > $AzureFeed < / span > / Runtime / < span class = " pl-smi " > $SpecificVersion < / span > / dotnet-runtime - < span class = " pl-smi " > $SpecificProductVersion < / span > -win - < span class = " pl-smi " > $CLIArchitecture < / span > . zip < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC605 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 605 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC606 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 606 " style = " position:relative " > < span class = " pl-k " > elseif < / span > ( < span class = " pl-smi " > $Runtime < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > aspnetcore < span class = " pl-pds " > & quot ; < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC607 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 607 " style = " position:relative " > < span class = " pl-smi " > $PayloadURL < / span > < span class = " pl-k " > = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-smi " > $AzureFeed < / span > / aspnetcore / Runtime / < span class = " pl-smi " > $SpecificVersion < / span > / aspnetcore-runtime - < span class = " pl-smi " > $SpecificProductVersion < / span > -win - < span class = " pl-smi " > $CLIArchitecture < / span > . zip < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC608 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 608 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC609 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 609 " style = " position:relative " > < span class = " pl-k " > elseif < / span > ( < span class = " pl-smi " > $Runtime < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > windowsdesktop < span class = " pl-pds " > & quot ; < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC610 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 610 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> The windows desktop runtime is part of the core runtime layout prior to 5.0</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC611" class="react-file-line html-div" data-testid="code-cell" data-line-number="611" style="position:relative"> <span class="pl-smi">$PayloadURL</span> <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$AzureFeed</span>/Runtime/<span class="pl-smi">$SpecificVersion</span>/windowsdesktop-runtime-<span class="pl-smi">$SpecificProductVersion</span>-win-<span class="pl-smi">$CLIArchitecture</span>.zip<span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC612" class="react-file-line htm
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC626 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 626 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Verbose < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Constructed primary named payload URL : < span class = " pl-smi " > $PayloadURL < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC627 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 627 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC628 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 628 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-smi " > $PayloadURL < / span > < span class = " pl-k " > , < / span > < span class = " pl-smi " > $SpecificProductVersion < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC629 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 629 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC630 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 630 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC631 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 631 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Get-LegacyDownload -Link < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $AzureFeed < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $SpecificVersion < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $CLIArchitecture < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC632 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 632 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Invocation < span class = " pl-c1 " > $MyInvocation < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC633 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 633 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC634 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 634 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-k " > -not < / span > < span class = " pl-smi " > $Runtime < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC635 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 635 " style = " position:relative " > < span class = " pl-smi " > $PayloadURL < / span > < span class = " pl-k " > = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-smi " > $AzureFeed < / span > / Sdk / < span class = " pl-smi " > $SpecificVersion < / span > / dotnet-dev -win - < span class = " pl-smi " > $CLIArchitecture < / span > . < span class = " pl-smi " > $SpecificVersion < / span > . zip < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC636 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 636 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC637 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 637 " style = " position:relative " > < span class = " pl-k " > elseif < / span > ( < span class = " pl-smi " > $Runtime < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > dotnet < span class = " pl-pds " > & quot ; < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC638 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 638 " style = " position:relative " > < span class = " pl-smi " > $PayloadURL < / span > < span class = " pl-k " > = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-smi " > $AzureFeed < / span > / Runtime / < span class = " pl-smi " > $SpecificVersion < / span > / dotnet-win - < span class = " pl-smi " > $CLIArchitecture < / span > . < span class = " pl-smi " > $SpecificVersion < / span > . zip < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC639 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 639 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC640 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 640 " style = " position:relative " > < span class = " pl-k " > else < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC641 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 641 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-c1 " > $null < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC642 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 642 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC643 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 643 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC644 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 644 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Verbose < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Constructed legacy named payload URL : < span class = " pl-smi " > $PayloadURL < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC645 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 645 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC646 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 646 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-smi " > $PayloadURL < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC647 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 647 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC648 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 648 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC649 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 649 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Get-Product -Version < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $AzureFeed < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $SpecificVersion < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $PackageDownloadLink < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC650 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 650 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Invocation < span class = " pl-c1 " > $MyInvocation < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC651 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 651 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC652 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 652 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> Try to get the version number, using the productVersion.txt file located next to the installer file.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC653" class="react-file-line html-div" data-testid="code-cell" data-line-number="653" style="position:relative"> <span class="pl-smi">$ProductVersionTxtURLs</span> <span class="pl-k">=</span> (<span class="pl-c1">Get-Product</span><span class="pl-k">-</span>Version<span class="pl-k">-</span>Url <span class="pl-smi">$AzureFeed</span> <span class="pl-smi">$SpecificVersion</span> <span class="pl-smi">$PackageDownloadLink</span> <span class="pl-k">-</span>Flattened <span class="pl-c1">$true</span>)<span class="pl-k">,</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC654" class="react-file-line html-div" data-testid="code-cell" data-line-number="654" style="position:relative"> (<span class="pl-c1">Get-Product</span><span class="pl-k">-</span>Version<span class="pl-k">-</span>Url <span class="pl-smi">$AzureFeed</span> <span class="pl-smi">$SpecificVersion</span> <span class="pl-smi">$PackageDownloadLink</span> <span class="pl-k">-</span>Flattened <span class="pl-c1">$false</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC655" class="react-file-line html-div" data-testid="code-cell" data-line-number="655" style="position:relative"> </div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC656" class="react-file-line html-div" data-testid="code-cell" data-line-number="656" style="position:relative"> <span class="pl-k">Foreach</span> (<span class="pl-smi">$ProductVersionTxtURL</span> <span class="pl-k">in</span> <span class="pl-smi">$ProductVersionTxtURLs</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC657" class="react-file-line html-div" data-testid="code-cell" data-line-number="657" style="position:relative"> Say<span class="pl-k">-</span>Verbose <span class="pl-s"><span class="pl-pds">"</span>Checking for the existence of <span class="pl-smi">$ProductVersionTxtURL</span><span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC658" class="react-file-line html-div" data-testid="code-cell" data-line-number="658" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC659 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 659 " style = " position:relative " > < span class = " pl-k " > try < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC660 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 660 " style = " position:relative " > < span class = " pl-smi " > $productVersionResponse < / span > < span class = " pl-k " > = < / span > GetHTTPResponse ( < span class = " pl-smi " > $productVersionTxtUrl < / span > ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC661 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 661 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC662 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 662 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $productVersionResponse < span class = " pl-smi " > . StatusCode < / span > < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-c1 " > 200 < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC663 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 663 " style = " position:relative " > < span class = " pl-smi " > $productVersion < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $productVersionResponse < span class = " pl-smi " > . Content . ReadAsStringAsync < / span > < / span > ( ) . Result . Trim ( ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC664 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 664 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $productVersion < / span > < span class = " pl-k " > -ne < / span > < span class = " pl-smi " > $SpecificVersion < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC665 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 665 " style = " position:relative " > Say < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Using alternate version < span class = " pl-smi " > $productVersion < / span > found in < span class = " pl-smi " > $ProductVersionTxtURL < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC666 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 666 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC667 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 667 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-smi " > $productVersion < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC668 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 668 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC669 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 669 " style = " position:relative " > < span class = " pl-k " > else < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC670 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 670 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Verbose < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Got StatusCode < span class = " pl-k " > < span class = " pl-pse " > $ < / span > < / span > < span class = " pl-pse " > ( < / span > < span class = " pl-smi " > $productVersionResponse < span class = " pl-smi " > . StatusCode < / span > < / span > < span class = " pl-pse " > ) < / span > when trying to get productVersion . txt at < span class = " pl-smi " > $productVersionTxtUrl < / span > . < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC671 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 671 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC672 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 672 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC673 " class = " react-file-line html-div " data-testid = " code-cell " data -
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC678 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 678 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> Getting the version number with productVersion.txt has failed. Try parsing the download link for a version number.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC679" class="react-file-line html-div" data-testid="code-cell" data-line-number="679" style="position:relative"> <span class="pl-k">if</span> ([<span class="pl-k">string</span>]::IsNullOrEmpty(<span class="pl-smi">$PackageDownloadLink</span>)) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC680" class="react-file-line html-div" data-testid="code-cell" data-line-number="680" style="position:relative"> Say<span class="pl-k">-</span>Verbose <span class="pl-s"><span class="pl-pds">"</span>Using the default value '<span class="pl-smi">$SpecificVersion</span>' as the product version.<span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC681" class="react-file-line html-div" data-testid="code-cell" data-line-number="681" style="position:relative"> <span class="pl-k">return</span> <span class="pl-smi">$SpecificVersion</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC682" class="react-file-line html-div" data-testid="code-cell" data-line-number="682" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC683" class="react-file-line html-div" data-testid="code-cell" data-line-number="683" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC684 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 684 " style = " position:relative " > < span class = " pl-smi " > $productVersion < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > Get-ProductVersionFromDownloadLink < / span > < span class = " pl-smi " > $PackageDownloadLink < / span > < span class = " pl-smi " > $SpecificVersion < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC685 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 685 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-smi " > $productVersion < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC686 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 686 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC687 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 687 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC688 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 688 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Get-Product -Version -Url < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $AzureFeed < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $SpecificVersion < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $PackageDownloadLink < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > bool < / span > ] < span class = " pl-smi " > $Flattened < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC689 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 689 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Invocation < span class = " pl-c1 " > $MyInvocation < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC690 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 690 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC691 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 691 " style = " position:relative " > < span class = " pl-smi " > $majorVersion < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > $null < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC692 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 692 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $SpecificVersion < / span > < span class = " pl-k " > -match < / span > < span class = " pl-s " > < span class = " pl-pds " > & #039;</span>^(\d+)\.(.*)<span class="pl-pds">'</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC693" class="react-file-line html-div" data-testid="code-cell" data-line-number="693" style="position:relative"> <span class="pl-smi">$majorVersion</span> <span class="pl-k">=</span> <span class="pl-c1">$Matches</span>[<span class="pl-c1">1</span>] <span class="pl-k">-as</span> [<span class="pl-k">int</span>]</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC694" class="react-file-line html-div" data-testid="code-cell" data-line-number="694" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC695" class="react-file-line html-div" data-testid="code-cell" data-line-number="695" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC696 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 696 " style = " position:relative " > < span class = " pl-smi " > $pvFileName < / span > < span class = " pl-k " > = < / span > < span class = " pl-s " > < span class = " pl-pds " > & #039;</span>productVersion.txt<span class="pl-pds">'</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC697" class="react-file-line html-div" data-testid="code-cell" data-line-number="697" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-smi">$Flattened</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC698" class="react-file-line html-div" data-testid="code-cell" data-line-number="698" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-k">-not</span> <span class="pl-smi">$Runtime</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC699" class="react-file-line html-div" data-testid="code-cell" data-line-number="699" style="position:relative"> <span class="pl-smi">$pvFileName</span> <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>sdk-productVersion.txt<span class="pl-pds">'</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC700" class="react-file-line html-div" data-testid="code-cell" data-line-number="700" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC701" class="react-file-line html-div" data-testid="code-cell" data-line-number="701" style="position:relative"> <span class="pl-k">elseif</span> (<span class="pl-smi">$Runtime</span> <span class="pl-k">-eq</span> <span class="pl-s"><span class="pl-pds">"</span>dotnet<span class="pl-pds">"</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC702" class="react-file-line html-div" data-testid="code-cell" data-line-number="702" style="position:relative"> <span class="pl-smi">$pvFileName</span> <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>runtime-productVersion.txt<span class="pl-pds">'</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC703" class="react-file-line html-div" data-testid="code-cell" data-line-number="703" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC704" class="react-file-line html-div" data-testid="code-cell" data-line-number="704" style="position:relative"> <span class="pl-k">else</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC705" class="react-file-line html-div" data-testid="code-cell" data-line-number="705" style="position:relative"> <span class="pl-smi">$pvFileName</span> <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$Runtime</span>-productVersion.txt<span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC706" class="react-file-line html-div" data-testid="code-cell" data-line-number="706" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC707" class="react-file-line html-div" data-testid="code-cell" data-line-number="707" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC708" class="react-file-line htm
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC709 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 709 " style = " position:relative " > < span class = " pl-k " > if < / span > ( [ < span class = " pl-k " > string < / span > ] :: IsNullOrEmpty ( < span class = " pl-smi " > $PackageDownloadLink < / span > ) ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC710 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 710 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $Runtime < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > dotnet < span class = " pl-pds " > & quot ; < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC711 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 711 " style = " position:relative " > < span class = " pl-smi " > $ProductVersionTxtURL < / span > < span class = " pl-k " > = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-smi " > $AzureFeed < / span > / Runtime / < span class = " pl-smi " > $SpecificVersion < / span > / < span class = " pl-smi " > $pvFileName < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC712 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 712 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC713 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 713 " style = " position:relative " > < span class = " pl-k " > elseif < / span > ( < span class = " pl-smi " > $Runtime < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > aspnetcore < span class = " pl-pds " > & quot ; < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC714 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 714 " style = " position:relative " > < span class = " pl-smi " > $ProductVersionTxtURL < / span > < span class = " pl-k " > = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-smi " > $AzureFeed < / span > / aspnetcore / Runtime / < span class = " pl-smi " > $SpecificVersion < / span > / < span class = " pl-smi " > $pvFileName < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC715 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 715 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC716 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 716 " style = " position:relative " > < span class = " pl-k " > elseif < / span > ( < span class = " pl-smi " > $Runtime < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > windowsdesktop < span class = " pl-pds " > & quot ; < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC717 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 717 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> The windows desktop runtime is part of the core runtime layout prior to 5.0</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC718" class="react-file-line html-div" data-testid="code-cell" data-line-number="718" style="position:relative"> <span class="pl-smi">$ProductVersionTxtURL</span> <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$AzureFeed</span>/Runtime/<span class="pl-smi">$SpecificVersion</span>/<span class="pl-smi">$pvFileName</span><span class
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC734 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 734 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Verbose < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Constructed productVersion link : < span class = " pl-smi " > $ProductVersionTxtURL < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC735 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 735 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC736 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 736 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-smi " > $ProductVersionTxtURL < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC737 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 737 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC738 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 738 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC739 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 739 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Get-ProductVersionFromDownloadLink < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $PackageDownloadLink < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $SpecificVersion < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC740 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 740 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Invocation < span class = " pl-c1 " > $MyInvocation < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC741 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 741 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC742 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 742 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span>product specific version follows the product name</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC743" class="react-file-line html-div" data-testid="code-cell" data-line-number="743" style="position:relative"> <span class="pl-c"><span class="pl-c">#</span>for filename 'dotnet-sdk-3.1.404-win-x64.zip': the product version is 3.1.400</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC744" class="react-file-line html-div" data-testid="code-cell" data-line-number="744" style="position:relative"> <span class="pl-smi">$filename</span> <span class="pl-k">=</span> <span class="pl-smi">$PackageDownloadLink<span class="pl-smi">.Substring</span></span>(<span class="pl-smi">$PackageDownloadLink<span class="pl-smi">.LastIndexOf</span></span>(<span class="pl-s"><span class="pl-pds">"</span>/<span class="pl-pds">"</span></span>) <span class="pl-k">+</span> <span class="pl-c1">1</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC745" class="react-file-line html-div" data-testid="code-cell" data-line-number="745" style="position:relative"> <span class="pl-smi">$filenameParts</span> <span class="pl-k">=</span> <span class="pl-smi">$filename<span class="pl-smi">.Split</span></span>(<span class="pl-s"><span class="pl-pds">'</span>-<span class="pl-pds">'</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC746" class="react-file-line html-div" data-testid="code-cell" data-line-number="746" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-smi">$filenameParts<span class="pl-smi">.Length</span></span> <span class="pl-k">-gt</span> <span class="pl-c1">2</span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC747" class="react-file-line html-div" data-testid="code-cell" data-line-number="747" style="position:relative"> <span class="pl-smi">$productVersion</span> <span class="pl-k">=</span> <span class="pl-smi">$filenameParts</span>[<span class="pl-c1">2</span>]</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC748" class="react-file-line html-div" data-testid="code-cell" data-line-number="748" style="position:relative"> Say<span class="pl-k">-</span>Verbose <span class="pl-s"><span class="pl-pds">"</span>Extracted product version '<span class="pl-smi">$productVersion</span>' from download link '<span class="pl-smi">$PackageDownloadLink</span>'.<span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC749" class="react-file-line html-div" data-testid="code-cell" data-line-number="749" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC750" class="react-file-line html-div" data-testid="code-cell" data-line-number="750" style="position:relative"> <span class="pl-k">else</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC751" class="react-file-line html-div" data-testid="code-cell" data-line-number="751" style="position:relative"> Say<span class="pl-k">-</span>Verbose <span class="pl-s"><span class="pl-pds">"</span>Using the default value '<span class="pl-smi">$SpecificVersion</span>' as the product version.<span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-lin
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC757 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 757 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Get-User -Share -Path < / span > ( ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC758 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 758 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Invocation < span class = " pl-c1 " > $MyInvocation < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC759 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 759 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC760 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 760 " style = " position:relative " > < span class = " pl-smi " > $InstallRoot < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $ < span class = " pl-c1 " > env : < / span > DOTNET_INSTALL_DIR < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC761 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 761 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-k " > ! < / span > < span class = " pl-smi " > $InstallRoot < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC762 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 762 " style = " position:relative " > < span class = " pl-smi " > $InstallRoot < / span > < span class = " pl-k " > = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-smi " > $ < span class = " pl-c1 " > env : < / span > LocalAppData < / span > \ Microsoft \ dotnet < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC763 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 763 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC764 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 764 " style = " position:relative " > < span class = " pl-k " > elseif < / span > ( < span class = " pl-smi " > $InstallRoot < / span > < span class = " pl-k " > -like < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-smi " > $ < span class = " pl-c1 " > env : < / span > ProgramFiles < / span > \ dotnet \ ? * < span class = " pl-pds " > & quot ; < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC765 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 765 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Warning < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > The install root specified by the environment variable DOTNET_INSTALL_DIR points to the sub folder of < span class = " pl-smi " > $ < span class = " pl-c1 " > env : < / span > ProgramFiles < / span > \ dotnet which is the default dotnet install root using . NET SDK installer . It is better to keep aligned with . NET SDK installer . < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC766 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 766 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC767 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 767 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-smi " > $InstallRoot < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC768 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 768 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC769 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 769 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC770 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 770 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Resolve-Installation -Path < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $InstallDir < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC771 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 771 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Invocation < span class = " pl-c1 " > $MyInvocation < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC772 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 772 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC773 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 773 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $InstallDir < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > & lt ; auto & gt ; < span class = " pl-pds " > & quot ; < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC774 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 774 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-c1 " > Get-User < / span > < span class = " pl-k " > - < / span > Share < span class = " pl-k " > - < / span > Path < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC775 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 775 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC776 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 776 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-smi " > $InstallDir < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC777 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 777 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC778 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 778 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC779 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 779 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Test-User -Write -Access < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $InstallDir < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC780 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 780 " style = " position:relative " > < span class = " pl-k " > try < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC781 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 781 " style = " position:relative " > < span class = " pl-smi " > $tempFileName < / span > < span class = " pl-k " > = < / span > [ < span class = " pl-k " > guid < / span > ] :: NewGuid ( ) . ToString ( ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC782 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 782 " style = " position:relative " > < span class = " pl-smi " > $tempFilePath < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > Join-Path < / span > < span class = " pl-k " > - < / span > Path < span class = " pl-smi " > $InstallDir < / span > < span class = " pl-k " > - < / span > ChildPath < span class = " pl-smi " > $tempFileName < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC783 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 783 " style = " position:relative " > < span class = " pl-c1 " > New-Item < / span > < span class = " pl-k " > - < / span > Path < span class = " pl-smi " > $tempFilePath < / span > < span class = " pl-k " > - < / span > ItemType File < span class = " pl-k " > - < / span > Force < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC784 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 784 " style = " position:relative " > < span class = " pl-c1 " > Remove-Item < / span > < span class = " pl-smi " > $tempFilePath < / span > < span class = " pl-k " > - < / span > Force < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC785 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 785 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-c1 " > $true < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC786 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 786 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC787 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 787 " style = " position:relative " > < span class = " pl-k " > catch < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC788 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 788 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-c1 " > $false < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC789 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 789 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC790 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 790 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC791 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 791 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC792 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 792 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Is-Dotnet -Package -Installed < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $InstallRoot < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $RelativePathToPackage < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $SpecificVersion < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC793 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 793 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Invocation < span class = " pl-c1 " > $MyInvocation < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC794 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 794 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC795 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 795 " style = " position:relative " > < span class = " pl-smi " > $DotnetPackagePath < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > Join-Path < / span > < span class = " pl-k " > - < / span > Path < span class = " pl-smi " > $InstallRoot < / span > < span class = " pl-k " > - < / span > ChildPath < span class = " pl-smi " > $RelativePathToPackage < / span > < span class = " pl-k " > | < / span > < span class = " pl-c1 " > Join-Path < / span > < span class = " pl-k " > - < / span > ChildPath < span class = " pl-smi " > $SpecificVersion < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC796 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 796 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Verbose < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Is-Dotnet -Package -Installed: DotnetPackagePath = < span class = " pl-smi " > $DotnetPackagePath < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC797 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 797 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-c1 " > Test-Path < / span > < span class = " pl-smi " > $DotnetPackagePath < / span > < span class = " pl-k " > - < / span > PathType Container < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC798 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 798 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC799 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 799 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC800 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 800 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Get-Absolute -Path < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $RelativeOrAbsolutePath < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC801 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 801 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> Too much spam</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC802" class="react-file-line html-div" data-testid="code-cell" data-line-number="802" style="position:relative"> <span class="pl-c"><span class="pl-c">#</span> Say-Invocation $MyInvocation</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC803" class="react-file-line html-div" data-testid="code-cell" data-line-number="803" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC804 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 804 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-c1 " > $ExecutionContext < span class = " pl-smi " > . SessionState . Path . GetUnresolvedProviderPathFromPSPath < / span > < / span > ( < span class = " pl-smi " > $RelativeOrAbsolutePath < / span > ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC805 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 805 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC806 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 806 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC807 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 807 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Get-Path -Prefix -With -Version < / span > ( < span class = " pl-smi " > $path < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC808 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 808 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> example path with regex: shared/1.0.0-beta-12345/somepath</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC809" class="react-file-line html-div" data-testid="code-cell" data-line-number="809" style="position:relative"> <span class="pl-smi">$match</span> <span class="pl-k">=</span> [<span class="pl-k">regex</span>]::match(<span class="pl-smi">$path</span><span class="pl-k">,</span> <span class="pl-s"><span class="pl-pds">"</span>/\d+\.\d+[^/]+/<span class="pl-pds">"</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC810" class="react-file-line html-div" data-testid="code-cell" data-line-number="810" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-smi">$match<span class="pl-smi">.Success</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC811" class="react-file-line html-div" data-testid="code-cell" data-line-number="811" style="position:relative"> <span class="pl-k">return</span> <span class="pl-smi">$entry<span class="pl-smi">.FullName.Substring</span></span>(<span class="pl-c1">0</span><span class="pl-k">,</span> <span class="pl-smi">$match<span class="pl-smi">.Index</span></span> <span class="pl-k">+</span> <span class="pl-smi">$match<span class="pl-smi">.Length</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC812" class="react-file-line html-div" data-testid="code-cell" data-line-number="812" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC813" class="react-file-line html-div" data-testid="code-cell" data-line-number="813" style="position:relative">
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC814 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 814 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-c1 " > $null < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC815 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 815 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC816 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 816 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC817 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 817 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Get-List -Of -Directories -And -Versions -To -Unpack -From -Dotnet -Package < / span > ( [ < span class = " pl-k " > System . IO . Compression . ZipArchive < / span > ] < span class = " pl-smi " > $Zip < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $OutPath < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC818 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 818 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Invocation < span class = " pl-c1 " > $MyInvocation < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC819 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 819 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC820 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 820 " style = " position:relative " > < span class = " pl-smi " > $ret < / span > < span class = " pl-k " > = < / span > < span class = " pl-k " > @ < / span > ( ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC821 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 821 " style = " position:relative " > < span class = " pl-k " > foreach < / span > ( < span class = " pl-smi " > $entry < / span > < span class = " pl-k " > in < / span > < span class = " pl-smi " > $Zip < span class = " pl-smi " > . Entries < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC822 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 822 " style = " position:relative " > < span class = " pl-smi " > $dir < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > Get-Path < / span > < span class = " pl-k " > - < / span > Prefix < span class = " pl-k " > - < / span > With < span class = " pl-k " > - < / span > Version < span class = " pl-smi " > $entry < span class = " pl-smi " > . FullName < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC823 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 823 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-c1 " > $null < / span > < span class = " pl-k " > -ne < / span > < span class = " pl-smi " > $dir < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC824 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 824 " style = " position:relative " > < span class = " pl-smi " > $path < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > Get-Absolute < / span > < span class = " pl-k " > - < / span > Path < span class = " pl-k " > $ < / span > ( < span class = " pl-c1 " > Join-Path < / span > < span class = " pl-k " > - < / span > Path < span class = " pl-smi " > $OutPath < / span > < span class = " pl-k " > - < / span > ChildPath < span class = " pl-smi " > $dir < / span > ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC825 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 825 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-k " > -Not < / span > ( < span class = " pl-c1 " > Test-Path < / span > < span class = " pl-smi " > $path < / span > < span class = " pl-k " > - < / span > PathType Container ) ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC826 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 826 " style = " position:relative " > < span class = " pl-smi " > $ret < / span > < span class = " pl-k " > + = < / span > < span class = " pl-smi " > $dir < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC827 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 827 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC828 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 828 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC829 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 829 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC830 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 830 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC831 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 831 " style = " position:relative " > < span class = " pl-smi " > $ret < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $ret < / span > < span class = " pl-k " > | < / span > < span class = " pl-c1 " > Sort-Object < / span > < span class = " pl-k " > | < / span > < span class = " pl-c1 " > Get-Unique < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC832 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 832 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC833 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 833 " style = " position:relative " > < span class = " pl-smi " > $values < / span > < span class = " pl-k " > = < / span > ( < span class = " pl-smi " > $ret < / span > < span class = " pl-k " > | < / span > < span class = " pl-k " > foreach < / span > { < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-c1 " > $_ < / span > < span class = " pl-pds " > & quot ; < / span > < / span > } ) < span class = " pl-k " > -join < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > ; < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC834 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 834 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Verbose < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Directories to unpack : < span class = " pl-smi " > $values < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC835 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 835 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC836 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 836 " style = " position:relative " > < span class = " pl-k " > return < / span > < span class = " pl-smi " > $ret < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC837 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 837 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC838 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 838 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC839 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 839 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> Example zip content and extraction algorithm:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC840" class="react-file-line html-div" data-testid="code-cell" data-line-number="840" style="position:relative"><span class="pl-c"><span class="pl-c">#</span> Rule: files if extracted are always being extracted to the same relative path locally</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC841" class="react-file-line html-div" data-testid="code-cell" data-line-number="841" style="position:relative"><span class="pl-c"><span class="pl-c">#</span> .\</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC842" class="react-file-line html-div" data-testid="code-cell" data-line-number="842" style="position:relative"><span class="pl-c"><span class="pl-c">#</span> a.exe # file does not exist locally, extract</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC843" class="react-file-line html-div" data-testid="code-cell" data-line-number="843" style="position:relative"><span class="pl-c"><span class="pl-c">#</span> b.dll # file exists locally, override only if $OverrideFiles set</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC844" class="react-file-line html-div" data-testid="code-cell" data-line-number="844" style="position:relative"><span class="pl-c"><span class="pl-c">#</span> aaa\ # same rules as for files</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC845" class="react-file-line html-div" data-testid="code-cell" data-line-number="845" style="position:relative"><span class="pl-c"><span class="pl-c">#</span> ...</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC846" class="react-file-line html-div" data-testid="code-cell" data-line-number="846" style="position:relative"><span class="pl-c"><span class="pl-c">#</span> abc\1.0.0\ # directory contains version and exists locally</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC847" class="react-file-line html-div" data-testid="code-cell" data-line-number="847" style="position:relative"><span class="pl-c"><span class="pl-c">#</span> ... # do not extract content under versioned part</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC848" class="react-file-line html-div" data-testid="code-cell" data-line-number="848" style="position:relative"><span class="pl-c"><span class="pl-c">#</span> abc\asd\ # same rules as for files</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC849" class="react-file-line html-div" data-testid="code-cell" data-line-number="849" style="position:relative"><span class="pl-c"><span class="pl-c">#</span> ...</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC850" class="react-file-line html-div" data-testid="code-cell" data-line-number="850" style="position:relative"><span class="pl-c"><span class="pl-c">#</span> def\ghi\1.0.1\ # directory contains version and does not exist locally</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC851" class="react-file-line html-div" data-testid="code-cell" data-line-number="851" styl
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC855 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 855 " style = " position:relative " > Load < span class = " pl-k " > - < / span > Assembly < span class = " pl-k " > - < / span > Assembly System . IO . Compression . FileSystem < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC856 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 856 " style = " position:relative " > < span class = " pl-c1 " > Set-Variable < / span > < span class = " pl-k " > - < / span > Name Zip < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC857 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 857 " style = " position:relative " > < span class = " pl-k " > try < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC858 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 858 " style = " position:relative " > < span class = " pl-smi " > $Zip < / span > < span class = " pl-k " > = < / span > [ < span class = " pl-k " > System . IO . Compression . ZipFile < / span > ] :: OpenRead ( < span class = " pl-smi " > $ZipPath < / span > ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC859 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 859 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC860 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 860 " style = " position:relative " > < span class = " pl-smi " > $DirectoriesToUnpack < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > Get-List < / span > < span class = " pl-k " > - < / span > Of < span class = " pl-k " > - < / span > Directories < span class = " pl-k " > - < / span > And < span class = " pl-k " > - < / span > Versions < span class = " pl-k " > - < / span > To < span class = " pl-k " > - < / span > Unpack < span class = " pl-k " > - < / span > From < span class = " pl-k " > - < / span > Dotnet < span class = " pl-k " > - < / span > Package < span class = " pl-k " > - < / span > Zip < span class = " pl-smi " > $Zip < / span > < span class = " pl-k " > - < / span > OutPath < span class = " pl-smi " > $OutPath < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC861 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 861 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC862 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 862 " style = " position:relative " > < span class = " pl-k " > foreach < / span > ( < span class = " pl-smi " > $entry < / span > < span class = " pl-k " > in < / span > < span class = " pl-smi " > $Zip < span class = " pl-smi " > . Entries < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC863 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 863 " style = " position:relative " > < span class = " pl-smi " > $PathWithVersion < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > Get-Path < / span > < span class = " pl-k " > - < / span > Prefix < span class = " pl-k " > - < / span > With < span class = " pl-k " > - < / span > Version < span class = " pl-smi " > $entry < span class = " pl-smi " > . FullName < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC864 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 864 " style = " position:relative " > < span class = " pl-k " > if < / span > ( ( < span class = " pl-c1 " > $null < / span > < span class = " pl-k " > -eq < / span > < span class = " pl-smi " > $PathWithVersion < / span > ) < span class = " pl-k " > -Or < / span > ( < span class = " pl-smi " > $DirectoriesToUnpack < / span > < span class = " pl-k " > -contains < / span > < span class = " pl-smi " > $PathWithVersion < / span > ) ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC865 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 865 " style = " position:relative " > < span class = " pl-smi " > $DestinationPath < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > Get-Absolute < / span > < span class = " pl-k " > - < / span > Path < span class = " pl-k " > $ < / span > ( < span class = " pl-c1 " > Join-Path < / span > < span class = " pl-k " > - < / span > Path < span class = " pl-smi " > $OutPath < / span > < span class = " pl-k " > - < / span > ChildPath < span class = " pl-smi " > $entry < span class = " pl-smi " > . FullName < / span > < / span > ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC866 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 866 " style = " position:relative " > < span class = " pl-smi " > $DestinationDir < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > Split-Path < / span > < span class = " pl-k " > - < / span > Parent < span class = " pl-smi " > $DestinationPath < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC867 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 867 " style = " position:relative " > < span class = " pl-smi " > $OverrideFiles < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $OverrideNonVersionedFiles < / span > < span class = " pl-k " > -Or < / span > ( < span class = " pl-k " > -Not < / span > ( < span class = " pl-c1 " > Test-Path < / span > < span class = " pl-smi " > $DestinationPath < / span > ) ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC868 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 868 " style = " position:relative " > < span class = " pl-k " > if < / span > ( ( < span class = " pl-k " > -Not < / span > < span class = " pl-smi " > $DestinationPath < span class = " pl-smi " > . EndsWith < / span > < / span > ( < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > \ < span class = " pl-pds " > & quot ; < / span > < / span > ) ) < span class = " pl-k " > -And < / span > < span class = " pl-smi " > $OverrideFiles < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC869 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 869 " style = " position:relative " > < span class = " pl-c1 " > New-Item < / span > < span class = " pl-k " > - < / span > ItemType Directory < span class = " pl-k " > - < / span > Force < span class = " pl-k " > - < / span > Path < span class = " pl-smi " > $DestinationDir < / span > < span class = " pl-k " > | < / span > < span class = " pl-c1 " > Out-Null < / span > < / div > < / div > < / div > < div c
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC886 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 886 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > DownloadFile < / span > ( < span class = " pl-smi " > $Source < / span > < span class = " pl-k " > , < / span > [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $OutPath < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC887 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 887 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $Source < / span > < span class = " pl-k " > -notlike < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > http * < span class = " pl-pds " > & quot ; < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC888 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 888 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> Using System.IO.Path.GetFullPath to get the current directory</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC889" class="react-file-line html-div" data-testid="code-cell" data-line-number="889" style="position:relative"> <span class="pl-c"><span class="pl-c">#</span> does not work in this context - $pwd gives the current directory</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC890" class="react-file-line html-div" data-testid="code-cell" data-line-number="890" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-k">!</span>[<span class="pl-k">System.IO.Path</span>]::IsPathRooted(<span class="pl-smi">$Source</span>)) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC891" class="react-file-line html-div" data-testid="code-cell" data-line-number="891" style="position:relative"> <span class="pl-smi">$Source</span> <span class="pl-k">=</span> <span class="pl-k">$</span>(<span class="pl-c1">Join-Path</span> <span class="pl-k">-</span>Path <span class="pl-c1">$pwd</span> <span class="pl-k">-</span>ChildPath <span class="pl-smi">$Source</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC892" class="react-file-line html-div" data-testid="code-cell" data-line-number="892" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC893" class="react-file-line html-div" data-testid="code-cell" data-line-number="893" style="position:relative"> <span class="pl-smi">$Source</span> <span class="pl-k">=</span> <span class="pl-c1">Get-Absolute</span><span class="pl-k">-</span>Path <span class="pl-smi">$Source</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC894" class="react-file-line html-div" data-testid="code-cell" data-line-number="894" style="position:relative"> Say <span class="pl-s"><span class="pl-pds">"</span>Copying file from <span class="pl-smi">$Source</span> to <span class="pl-smi">$OutPath</span><span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC895" class="react-file-line html-div" data-testid="code-cell" data-line-number="895" style="position:relative"> <span class="pl-c1">Copy-Item</span> <span class="pl-smi">$Source</span> <span class="pl-smi">$OutPath</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC896" class="react-file-line html-div" data-testid="code-cell" data-line-number="896" style="position:relative"> <span class="pl-k">re
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC899 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 899 " style = " position:relative " > < span class = " pl-smi " > $Stream < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > $null < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC900 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 900 " style = " position:relative " > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC901 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 901 " style = " position:relative " > < span class = " pl-k " > try < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC902 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 902 " style = " position:relative " > < span class = " pl-smi " > $Response < / span > < span class = " pl-k " > = < / span > GetHTTPResponse < span class = " pl-k " > - < / span > Uri < span class = " pl-smi " > $Source < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC903 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 903 " style = " position:relative " > < span class = " pl-smi " > $Stream < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $Response < span class = " pl-smi " > . Content . ReadAsStreamAsync < / span > < / span > ( ) . Result < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC904 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 904 " style = " position:relative " > < span class = " pl-smi " > $File < / span > < span class = " pl-k " > = < / span > [ < span class = " pl-k " > System . IO . File < / span > ] :: Create ( < span class = " pl-smi " > $OutPath < / span > ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC905 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 905 " style = " position:relative " > < span class = " pl-smi " > $Stream < span class = " pl-smi " > . CopyTo < / span > < / span > ( < span class = " pl-smi " > $File < / span > ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC906 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 906 " style = " position:relative " > < span class = " pl-smi " > $File < span class = " pl-smi " > . Close < / span > < / span > ( ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC907 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 907 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC908 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 908 " style = " position:relative " > ValidateRemoteLocalFileSizes < span class = " pl-k " > - < / span > LocalFileOutPath < span class = " pl-smi " > $OutPath < / span > < span class = " pl-k " > - < / span > SourceUri < span class = " pl-smi " > $Source < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC909 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 909 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC910 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 910 " style = " position:relative " > < span class = " pl-k " > finally < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC911 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 911 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-c1 " > $null < / span > < span class = " pl-k " > -ne < / span > < span class = " pl-smi " > $Stream < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC912 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 912 " style = " position:relative " > < span class = " pl-smi " > $Stream < span class = " pl-smi " > . Dispose < / span > < / span > ( ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC913 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 913 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC914 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 914 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC915 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 915 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC916 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 916 " style = " position:relative " >
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC917 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 917 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > ValidateRemoteLocalFileSizes < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $LocalFileOutPath < / span > < span class = " pl-k " > , < / span > < span class = " pl-smi " > $SourceUri < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC918 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 918 " style = " position:relative " > < span class = " pl-k " > try < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC919 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 919 " style = " position:relative " > < span class = " pl-smi " > $remoteFileSize < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > Get-Remote < / span > < span class = " pl-k " > - < / span > File < span class = " pl-k " > - < / span > Size < span class = " pl-k " > - < / span > zipUri < span class = " pl-smi " > $SourceUri < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC920 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 920 " style = " position:relative " > < span class = " pl-smi " > $fileSize < / span > < span class = " pl-k " > = < / span > [ < span class = " pl-k " > long < / span > ] ( < span class = " pl-c1 " > Get-Item < / span > < span class = " pl-smi " > $LocalFileOutPath < / span > ) . Length < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC921 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 921 " style = " position:relative " > Say < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Downloaded file < span class = " pl-smi " > $SourceUri < / span > size is < span class = " pl-smi " > $fileSize < / span > bytes . < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC922 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 922 " style = " position:relative " > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC923 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 923 " style = " position:relative " > < span class = " pl-k " > if < / span > ( ( < span class = " pl-k " > ! < / span > [ < span class = " pl-k " > string < / span > ] :: IsNullOrEmpty ( < span class = " pl-smi " > $remoteFileSize < / span > ) ) < span class = " pl-k " > -and < / span > < span class = " pl-k " > ! < / span > ( [ < span class = " pl-k " > string < / span > ] :: IsNullOrEmpty ( < span class = " pl-smi " > $fileSize < / span > ) ) ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC924 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 924 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $remoteFileSize < / span > < span class = " pl-k " > -ne < / span > < span class = " pl-smi " > $fileSize < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC925 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 925 " style = " position:relative " > Say < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > The remote and local file sizes are not equal . Remote file size is < span class = " pl-smi " > $remoteFileSize < / span > bytes and local size is < span class = " pl-smi " > $fileSize < / span > bytes . The local package may be corrupted . < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC926 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 926 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC92
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC940 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 940 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > SafeRemoveFile < / span > ( < span class = " pl-smi " > $Path < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC941 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 941 " style = " position:relative " > < span class = " pl-k " > try < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC942 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 942 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-c1 " > Test-Path < / span > < span class = " pl-smi " > $Path < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC943 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 943 " style = " position:relative " > < span class = " pl-c1 " > Remove-Item < / span > < span class = " pl-smi " > $Path < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC944 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 944 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Verbose < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > The temporary file < span class = " pl-cce " > ` & quot ; < / span > < span class = " pl-smi " > $Path < / span > < span class = " pl-cce " > ` & quot ; < / span > was removed . < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC945 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 945 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC946 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 946 " style = " position:relative " > < span class = " pl-k " > else < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC947 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 947 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Verbose < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > The temporary file < span class = " pl-cce " > ` & quot ; < / span > < span class = " pl-smi " > $Path < / span > < span class = " pl-cce " > ` & quot ; < / span > does not exist , therefore is not removed . < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC948 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 948 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC949 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 949 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC950 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 950 " style = " position:relative " > < span class = " pl-k " > catch < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC951 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 951 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Warning < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Failed to remove the temporary file : < span class = " pl-cce " > ` & quot ; < / span > < span class = " pl-smi " > $Path < / span > < span class = " pl-cce " > ` & quot ; < / span > , remove it manually . < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-heigh
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC955 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 955 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > Prepend-Sdk -InstallRoot -To -Path < / span > ( [ < span class = " pl-k " > string < / span > ] < span class = " pl-smi " > $InstallRoot < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC956 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 956 " style = " position:relative " > < span class = " pl-smi " > $BinPath < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > Get-Absolute < / span > < span class = " pl-k " > - < / span > Path < span class = " pl-k " > $ < / span > ( < span class = " pl-c1 " > Join-Path < / span > < span class = " pl-k " > - < / span > Path < span class = " pl-smi " > $InstallRoot < / span > < span class = " pl-k " > - < / span > ChildPath < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-pds " > & quot ; < / span > < / span > ) < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC957 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 957 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-k " > -Not < / span > < span class = " pl-smi " > $NoPath < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC958 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 958 " style = " position:relative " > < span class = " pl-smi " > $SuffixedBinPath < / span > < span class = " pl-k " > = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > < span class = " pl-smi " > $BinPath < / span > ; < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC959 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 959 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-k " > -Not < / span > < span class = " pl-smi " > $ < span class = " pl-c1 " > env : < / span > path < span class = " pl-smi " > . Contains < / span > < / span > ( < span class = " pl-smi " > $SuffixedBinPath < / span > ) ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC960 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 960 " style = " position:relative " > Say < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Adding to current process PATH : < span class = " pl-cce " > ` & quot ; < / span > < span class = " pl-smi " > $BinPath < / span > < span class = " pl-cce " > ` & quot ; < / span > . Note : This change will not be visible if PowerShell was run as a child process . < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC961 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 961 " style = " position:relative " > < span class = " pl-smi " > $ < span class = " pl-c1 " > env : < / span > path < / span > < span class = " pl-k " > = < / span > < span class = " pl-smi " > $SuffixedBinPath < / span > < span class = " pl-k " > + < / span > < span class = " pl-smi " > $ < span class = " pl-c1 " > env : < / span > path < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC962 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 962 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC963 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 963 " style = " position:relative " > < span class = " pl-k " > else < / span > { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC964 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 964 " style = " position:relative " > Say < span class = " pl-k " > - < / span > Verbose < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Current process PATH alread
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC972 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 972 " style = " position:relative " > < span class = " pl-k " > function < / span > < span class = " pl-en " > PrintDryRunOutput < / span > ( < span class = " pl-smi " > $Invocation < / span > < span class = " pl-k " > , < / span > < span class = " pl-smi " > $DownloadLinks < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC973 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 973 " style = " position:relative " > Say < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Payload URLs : < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC974 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 974 " style = " position:relative " > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC975 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 975 " style = " position:relative " > < span class = " pl-k " > for < / span > ( < span class = " pl-smi " > $linkIndex < / span > < span class = " pl-k " > = < / span > < span class = " pl-c1 " > 0 < / span > ; < span class = " pl-smi " > $linkIndex < / span > < span class = " pl-k " > -lt < / span > < span class = " pl-smi " > $DownloadLinks < span class = " pl-smi " > . count < / span > < / span > ; < span class = " pl-smi " > $linkIndex < / span > < span class = " pl-k " > + + < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC976 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 976 " style = " position:relative " > Say < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > URL #<span class="pl-smi">$linkIndex</span> - <span class="pl-k"><span class="pl-pse">$</span></span><span class="pl-pse">(</span><span class="pl-smi">$DownloadLinks</span>[<span class="pl-smi">$linkIndex</span>].type<span class="pl-pse">)</span>: <span class="pl-k"><span class="pl-pse">$</span></span><span class="pl-pse">(</span><span class="pl-smi">$DownloadLinks</span>[<span class="pl-smi">$linkIndex</span>].downloadLink<span class="pl-pse">)</span><span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC977" class="react-file-line html-div" data-testid="code-cell" data-line-number="977" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC978" class="react-file-line html-div" data-testid="code-cell" data-line-number="978" style="position:relative"> <span class="pl-smi">$RepeatableCommand</span> <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">"</span>.\<span class="pl-smi">$ScriptName</span> -Version <span class="pl-cce">`"</span><span class="pl-smi">$SpecificVersion</span><span class="pl-cce">`"</span> -InstallDir <span class="pl-cce">`"</span><span class="pl-smi">$InstallRoot</span><span class="pl-cce">`"</span> -Architecture <span class="pl-cce">`"</span><span class="pl-smi">$CLIArchitecture</span><span class="pl-cce">`"</span><span class="pl-pds">"</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC979" class="react-file-line html-div" data-testid="code-cell" data-line-number="979" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-smi">$Runtime</span> <span class="pl-k">-eq</span> <span class="pl-s"><span class="pl-pds">"</span>dotnet<span class="pl-pds">"</span></span>) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC980" class="react-file-line html-div" data-testid="code-cell" data-line-number="980" style="position:relative"> <span class="pl-smi">$RepeatableCommand</span> <span class="
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC986 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 986 " style = " position:relative " > < span class = " pl-k " > foreach < / span > ( < span class = " pl-smi " > $key < / span > < span class = " pl-k " > in < / span > < span class = " pl-smi " > $Invocation < span class = " pl-smi " > . BoundParameters . Keys < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC987 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 987 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-k " > -not < / span > ( < span class = " pl-k " > @ < / span > ( < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Architecture < span class = " pl-pds " > & quot ; < / span > < / span > < span class = " pl-k " > , < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Channel < span class = " pl-pds " > & quot ; < / span > < / span > < span class = " pl-k " > , < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > DryRun < span class = " pl-pds " > & quot ; < / span > < / span > < span class = " pl-k " > , < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > InstallDir < span class = " pl-pds " > & quot ; < / span > < / span > < span class = " pl-k " > , < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Runtime < span class = " pl-pds " > & quot ; < / span > < / span > < span class = " pl-k " > , < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > SharedRuntime < span class = " pl-pds " > & quot ; < / span > < / span > < span class = " pl-k " > , < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Version < span class = " pl-pds " > & quot ; < / span > < / span > < span class = " pl-k " > , < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > Quality < span class = " pl-pds " > & quot ; < / span > < / span > < span class = " pl-k " > , < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > FeedCredential < span class = " pl-pds " > & quot ; < / span > < / span > ) < span class = " pl-k " > -contains < / span > < span class = " pl-smi " > $key < / span > ) ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC988 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 988 " style = " position:relative " > < span class = " pl-smi " > $RepeatableCommand < / span > < span class = " pl-k " > + = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > - < span class = " pl-smi " > $key < / span > < span class = " pl-cce " > ` & quot ; < / span > < span class = " pl-k " > < span class = " pl-pse " > $ < / span > < / span > < span class = " pl-pse " > ( < / span > < span class = " pl-smi " > $Invocation < span class = " pl-smi " > . BoundParameters < / span > < / span > [ < span class = " pl-smi " > $key < / span > ] < span class = " pl-pse " > ) < / span > < span class = " pl-cce " > ` & quot ; < / span > < span class = " pl-pds " > & quot ; < / span > < / span > < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC989 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 989 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC990 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 990 " style = " position:relative " > } < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC991 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 991 " style = " position:relative " > < span class = " pl-k " > if < / span > ( < span class = " pl-smi " > $Invocation < span class = " pl-smi " > . BoundParameters . Keys < / span > < / span > < span class = " pl-k " > -contains < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > FeedCredential < span class = " pl-pds " > & quot ; < / span > < / span > ) { < / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC992 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 992 " style = " position:relative " > < span class = " pl-smi " > $RepeatableCommand < / span > < span class = " pl-k " > + = < / span > < span class = " pl-s " > < span class = " pl-pds " > & quot ; < / span > -FeedCredential < span class = " pl-cce " > ` & quot ; < / span > & lt ; feedCredential & gt ; < span
< / div > < / div > < / div > < div class = " react-code-text react-code-line-contents " style = " min-height:auto " > < div > < div id = " LC1000 " class = " react-file-line html-div " data-testid = " code-cell " data-line -number = " 1000 " style = " position:relative " > < span class = " pl-c " > < span class = " pl-c " > #</span> grab the 'stem' of the redirect and check it against all of our configured feeds, </span></div></div></div></div></div><div class="Box-sc-g0xbh4-0 gkZUDI"><a class="prc-Link-Link-85e08" href="https://github.com/dotnet/install-scripts/raw/refs/heads/main/src/dotnet-install.ps1">View remainder of file in raw view</a></div></div><div id="copilot-button-container"></div></div><div id="highlighted-line-menu-container"></div></div></div><button hidden="" data-testid="hotkey-button" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button></section></div></div></div> <!-- --> <!-- --> </div></div></div><div class="Box-sc-g0xbh4-0"></div></div></div></div></div><div id="find-result-marks-container" class="Box-sc-g0xbh4-0 cCoXib"></div><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button></div> <!-- --> <!-- --> <script type="application/json" id="__PRIMER_DATA_:R0:__">{"resolvedServerColorMode":"day"}</script></div>
< / react-app >
< / turbo-frame >
< / div >
< / turbo-frame >
< / main >
< / div >
< / div >
< footer class = " footer pt-8 pb-6 f6 color-fg-muted p-responsive " role = " contentinfo " >
< h2 class = 'sr-only' > Footer < / h2 >
< div class = " d-flex flex-justify-center flex-items-center flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap " >
< div class = " d-flex flex-items-center flex-shrink-0 mx-2 " >
< a aria-label = " Homepage " title = " GitHub " class = " footer-octicon mr-2 " href = " https://github.com " >
< svg aria-hidden = " true " height = " 24 " viewBox = " 0 0 24 24 " version = " 1.1 " width = " 24 " data-view -component = " true " class = " octicon octicon-mark-github " >
< path d = " M12.5.75C6.146.75 1 5.896 1 12.25c0 5.089 3.292 9.387 7.863 10.91.575.101.79-.244.79-.546 0-.273-.014-1.178-.014-2.142-2.889.532-3.636-.704-3.866-1.35-.13-.331-.69-1.352-1.18-1.625-.402-.216-.977-.748-.014-.762.906-.014 1.553.834 1.769 1.179 1.035 1.74 2.688 1.25 3.349.948.1-.747.402-1.25.733-1.538-2.559-.287-5.232-1.279-5.232-5.678 0-1.25.445-2.285 1.178-3.09-.115-.288-.517-1.467.115-3.048 0 0 .963-.302 3.163 1.179.92-.259 1.897-.388 2.875-.388.977 0 1.955.13 2.875.388 2.2-1.495 3.162-1.179 3.162-1.179.633 1.581.23 2.76.115 3.048.733.805 1.179 1.825 1.179 3.09 0 4.413-2.688 5.39-5.247 5.678.417.36.776 1.05.776 2.128 0 1.538-.014 2.774-.014 3.162 0 .302.216.662.79.547C20.709 21.637 24 17.324 24 12.25 24 5.896 18.854.75 12.5.75Z " > < / path >
< / svg >
< / a >
< span >
& copy ; 2024 GitHub , & nbsp ; Inc .
< / span >
< / div >
< nav aria-label = " Footer " >
< h3 class = " sr-only " id = " sr-footer-heading " > Footer navigation < / h3 >
< ul class = " list-style-none d-flex flex-justify-center flex-wrap mb-2 mb-lg-0 " aria-labelledby = " sr-footer-heading " >
< li class = " mx-2 " >
< a data-analytics -event = " {"category":"Footer","action":"go to Terms","label":"text:terms"} " href = " https://docs.github.com/site-policy/github-terms/github-terms-of-service " data-view -component = " true " class = " Link--secondary Link " > Terms < / a >
< / li >
< li class = " mx-2 " >
< a data-analytics -event = " {"category":"Footer","action":"go to privacy","label":"text:privacy"} " href = " https://docs.github.com/site-policy/privacy-policies/github-privacy-statement " data-view -component = " true " class = " Link--secondary Link " > Privacy < / a >
< / li >
< li class = " mx-2 " >
< a data-analytics -event = " {"category":"Footer","action":"go to security","label":"text:security"} " href = " https://github.com/security " data-view -component = " true " class = " Link--secondary Link " > Security < / a >
< / li >
< li class = " mx-2 " >
< a data-analytics -event = " {"category":"Footer","action":"go to status","label":"text:status"} " href = " https://www.githubstatus.com/ " data-view -component = " true " class = " Link--secondary Link " > Status < / a >
< / li >
< li class = " mx-2 " >
< a data-analytics -event = " {"category":"Footer","action":"go to docs","label":"text:docs"} " href = " https://docs.github.com/ " data-view -component = " true " class = " Link--secondary Link " > Docs < / a >
< / li >
< li class = " mx-2 " >
< a data-analytics -event = " {"category":"Footer","action":"go to contact","label":"text:contact"} " href = " https://support.github.com?tags=dotcom-footer " data-view -component = " true " class = " Link--secondary Link " > Contact < / a >
< / li >
< li class = " mx-2 " >
< cookie-consent -link >
< button
type = " button "
class = " Link--secondary underline-on-hover border-0 p-0 color-bg-transparent "
data-action = " click:cookie-consent-link#showConsentManagement "
data-analytics -event = " {"location":"footer","action":"cookies","context":"subfooter","tag":"link","label":"cookies_link_subfooter_footer"} "
>
Manage cookies
< / button >
< / cookie-consent -link >
< / li >
< li class = " mx-2 " >
< cookie-consent -link >
< button
type = " button "
class = " Link--secondary underline-on-hover border-0 p-0 color-bg-transparent "
data-action = " click:cookie-consent-link#showConsentManagement "
data-analytics -event = " {"location":"footer","action":"dont_share_info","context":"subfooter","tag":"link","label":"dont_share_info_link_subfooter_footer"} "
>
Do not share my personal information
< / button >
< / cookie-consent -link >
< / li >
< / ul >
< / nav >
< / div >
< / footer >
< ghcc-consent id = " ghcc " class = " position-fixed bottom-0 left-0 " style = " z-index: 999999 " data-initial -cookie -consent -allowed = " " data-cookie -consent -required = " false " > < / ghcc-consent >
< div id = " ajax-error-message " class = " ajax-error-message flash flash-error " hidden >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-alert " >
< path d = " M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z " > < / path >
< / svg >
< button type = " button " class = " flash-close js-ajax-error-dismiss " aria-label = " Dismiss error " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-x " >
< path d = " M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z " > < / path >
< / svg >
< / button >
You can ’ t perform that action at this time .
< / div >
< template id = " site-details-dialog " >
< details class = " details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm " open >
< summary role = " button " aria-label = " Close dialog " > < / summary >
< details-dialog class = " Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal " >
< button class = " Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0 " type = " button " aria-label = " Close dialog " data-close -dialog >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-x " >
< path d = " M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z " > < / path >
< / svg >
< / button >
< div class = " octocat-spinner my-6 js-details-dialog-spinner " > < / div >
< / details-dialog >
< / details >
< / template >
< div class = " Popover js-hovercard-content position-absolute " style = " display: none; outline: none; " >
< div class = " Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large " style = " width:360px; " >
< / div >
< / div >
< template id = " snippet-clipboard-copy-button " >
< div class = " zeroclipboard-container position-absolute right-0 top-0 " >
< clipboard-copy aria-label = " Copy " class = " ClipboardButton btn js-clipboard-copy m-2 p-0 " data-copy -feedback = " Copied! " data-tooltip -direction = " w " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-copy js-clipboard-copy-icon m-2 " >
< path d = " M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z " > < / path > < path d = " M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z " > < / path >
< / svg >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2 " >
< path d = " M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z " > < / path >
< / svg >
< / clipboard-copy >
< / div >
< / template >
< template id = " snippet-clipboard-copy-button-unpositioned " >
< div class = " zeroclipboard-container " >
< clipboard-copy aria-label = " Copy " class = " ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center " data-copy -feedback = " Copied! " data-tooltip -direction = " w " >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-copy js-clipboard-copy-icon " >
< path d = " M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z " > < / path > < path d = " M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z " > < / path >
< / svg >
< svg aria-hidden = " true " height = " 16 " viewBox = " 0 0 16 16 " version = " 1.1 " width = " 16 " data-view -component = " true " class = " octicon octicon-check js-clipboard-check-icon color-fg-success d-none " >
< path d = " M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z " > < / path >
< / svg >
< / clipboard-copy >
< / div >
< / template >
< / div >
< div id = " js-global-screen-reader-notice " class = " sr-only mt-n1 " aria-live = " polite " aria-atomic = " true " > < / div >
< div id = " js-global-screen-reader-notice-assertive " class = " sr-only mt-n1 " aria-live = " assertive " aria-atomic = " true " > < / div >
< / body >
< / html >