2024-12-24 18:49:41 +05:30
<!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.sh 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 = "CB99:D7FA:12A274B:1DC504D:6769E0A4" data-pjax-transient= "true" /><meta name = "html-safe-nonce" content = "98622f942b80b287f257035ef4214c9ef00f8cf6575d154983954fa5ea345b67" data-pjax-transient= "true" /><meta name = "visitor-payload" content = "eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDQjk5OkQ3RkE6MTJBMjc0QjoxREM1MDREOjY3NjlFMEE0IiwidmlzaXRvcl9pZCI6Ijc3NTc0NDE3MzU1ODYzNDEwMjgiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==" data-pjax-transient= "true" /><meta name = "visitor-hmac" content = "73020f6f28716ef8cb394fc3751d06350f186c26616860e76de00ea62832f110" 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.sh" />
<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.sh 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.sh at main · dotnet/install-scripts" /><meta property = "og:url" content = "https://github.com/dotnet/install-scripts/blob/main/src/dotnet-install.sh" /><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.sh"
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.sh","user_id":null}}" data-hydro-click-hmac= "a8d43443ad820300473809f3575237b294fd33470087df0af09108bd4f4729fb"
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= "jpr5QiS8jXgCVEgTIn_I0eLdtxQ8sCkJOsg2hOHacpqg8SP0T1yenCdJBp7TGEB067HVb5eB0e1ddBUnprIVug" 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-da59f19e-631c-462d-a876-bcda15df1812" 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-da59f19e-631c-462d-a876-bcda15df1812" 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=" G5Wq7Gz0PmoItkY1YtiS4paQtWv0ocpHUw9ugLa71oK3LtI40T8ZumYwxzb12GlUuXRgf2l+NxqVfh1WyLJQaw== " />
<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 = "AN+ONuwtFwK7JfegD1w622qM+Jmufzwgq55C6rZE1T9sJ8x1aC1aZ6tX4204Z3fwefRWBrQQcOYE+JMHK7NBLA==" />
<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 = "jZq+/MtCNYE9yxZe0CsBmqWeXJs3fB4dAIINhTe1WyPoroU4tn5ambjWO5Ph96+ZY4N6q+qnWvaDhVbh9RqotA==" />
</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.sh"
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.sh","user_id":null}}" data-hydro-click-hmac= "a8d43443ad820300473809f3575237b294fd33470087df0af09108bd4f4729fb"
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.sh","user_id":null}}" data-hydro-click-hmac= "a8d43443ad820300473809f3575237b294fd33470087df0af09108bd4f4729fb"
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-be23fbae-373e-4d8d-a1bb-11c3fd8f27e0" aria-labelledby= "tooltip-cf303228-5f3f-4ab0-8d6d-27ce7efc649e" 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-cf303228-5f3f-4ab0-8d6d-27ce7efc649e" for = "icon-button-be23fbae-373e-4d8d-a1bb-11c3fd8f27e0" 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.sh","user_id":null}}" data-hydro-click-hmac= "f09fbf414c8f7ce940077eef88697daad290a6a7618409d8e48826d680b7d646" 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-3727229f-8f69-4761-ba0a-9dc6d5f9f963" 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.sh","user_id":null}}" data-hydro-click-hmac= "9426ecdbf0907c4dd3b1c4eac33dc9bd753763900896d30e3540b6b4109b3817" 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.sh","user_id":null}}" data-hydro-click-hmac= "2c4f219cb013426fbd3544aa34ca275ecb75bd40c78d05143b682e7c442c5d80" 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-d3c91ff4-cfe4-4011-9382-f454026afb4a-button" popovertarget = "action-menu-d3c91ff4-cfe4-4011-9382-f454026afb4a-overlay" aria-controls= "action-menu-d3c91ff4-cfe4-4011-9382-f454026afb4a-list" aria-haspopup= "true" aria-labelledby= "tooltip-0ad59549-97e1-441b-a04a-161e559f1edc" 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-0ad59549-97e1-441b-a04a-161e559f1edc" for = "action-menu-d3c91ff4-cfe4-4011-9382-f454026afb4a-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-d3c91ff4-cfe4-4011-9382-f454026afb4a-overlay" anchor = "action-menu-d3c91ff4-cfe4-4011-9382-f454026afb4a-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-d3c91ff4-cfe4-4011-9382-f454026afb4a-button" id = "action-menu-d3c91ff4-cfe4-4011-9382-f454026afb4a-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-ef9082ad-bada-47e7-bad4-8ebe5b2f932d" 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-ca87a0c2-98cb-46ab-ad9f-328616c58f4a" 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-420d4d90-6b3e-46fb-852c-5bd7ff49c8b7" 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-41d2de95-e132-46c7-a696-6ba25b3e219f" 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-41a05aa9-3089-4aa9-968c-db1816aa6222" 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-7f9b139c-2a2e-4aa3-bbc8-e503eab07ee3" 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.sh"
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.62274,"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.sh" ,"currentUser" :null,"blob" :{ "rawLines" :[ "#!/usr/bin/env bash" ,"# 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." ,"#" ,"" ,"# Stop script on NZEC" ,"set -e" ,"# Stop script if unbound variable found (use ${ var :- } if intentional)" ,"set -u" ,"# By default cmd1 | cmd2 returns exit code of cmd2 regardless of cmd1 success" ,"# This is causing it to fail" ,"set -o pipefail" ,"" ,"# Use in the the functions: eval $invocation " ,"invocation='say_verbose \"Calling: ${ yellow :- }${ FUNCNAME [0] } ${ green :- } $* ${ normal :- } \"'" ,"" ,"# standard output may be used as a return value in the functions" ,"# we need a way to write text on the screen in the functions so that" ,"# it won't interfere with the return value." ,"# Exposing stream 3 as a pipe to standard output of the script itself" ,"exec 3\u003e\u00261" ,"" ,"# Setup some colors to use. These need to work in fairly limited shells, like the Ubuntu Docker container where there are only 8 colors." ,"# See if stdout is a terminal" ,"if [ -t 1 ] \u0026\u0026 command -v tput \u003e /dev/null; then" ," # see if it supports colors" ," ncolors= $( tput colors || echo 0) " ," if [ -n \" $ncolors \" ] \u0026\u0026 [ $ncolors -ge 8 ]; then" ," bold=\" $( tput bold ||
<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*/
.cJGaMs{margin:1px 8px;position:absolute;z-index:1;}/*!sc*/
.iGLarr{position:absolute;}/*!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,cJGaMs,iGLarr,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> Stop script on NZEC</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-c1">set</span> -e</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"><span class=" pl-c">#</span> Stop script if unbound variable found (use ${ var :- } if intentional)</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-c1">set</span> -u</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"><span class=" pl-c">#</span> By default cmd1 | cmd2 returns exit code of cmd2 regardless of cmd1 success</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"><span class=" pl-c">#</span> This is causing it to fail</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"><span class=" pl-c1">set</span> -o pipefail</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">
</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"><span class=" pl-c">#</span> Use in the the functions: eval $invocation </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">invocation=<span class=" pl-s"><span class=" pl-pds">'</span>say_verbose "Calling: ${ yellow :- }${ FUNCNAME [0] } ${ green :- } $* ${ normal :- } "<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=" LC16" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 16" style=" position:relative">
</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"><span class=" pl-c"><span class=" pl-c">#</span> standard output may be used as a return value in the functions</span></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> we need a way to write text on the screen in the functions so that</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"><span class=" pl-c">#</span> it won't interfere with the return value.</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"><span class=" pl-c">#</span> Exposing stream 3 as a pipe to standard output of the script itself</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-c1">exec</span> <span class=" pl-k">3>&1</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">
</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"><span class=" pl-c">#</span> Setup some colors to use. These need to work in fairly limited shells, like the Ubuntu Docker container where there are only 8 colors.</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"><span class=" pl-c">#</span> See if stdout is a terminal</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-k">if</span> [ <span class=" pl-k">-t</span> 1 ] <span class=" pl-k">&&</span> <span class=" pl-c1">command</span> -v tput <span class=" pl-k">></span> /dev/null<span class=" pl-k">;</span> <span class=" pl-k">then</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"><span class=" pl-c">#</span> see if it supports colors</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"> ncolors=<span class=" pl-s"><span class=" pl-pds"> $( </span>tput colors <span class = "pl-k" >|| </span> <span class = "pl-c1" >echo</span> 0<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=" LC28" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 28" style=" position:relative"> <span class=" pl-k">if</span> [ <span class=" pl-k">-n</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $ncolors </span><span class=" pl-pds">"</span></span> ] <span class=" pl-k">&&</span> [ <span class=" pl-smi"> $ncolors </span> <span class=" pl-k">-ge</span> 8 ]<span class=" pl-k">;</span> <span class=" pl-k">then</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"> bold=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-s"><span class=" pl-pds"> $( </span>tput bold <span class = "pl-k" >|| </span> echo<span class = "pl-pds" >) </span></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=" LC30" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 30" style=" position:relative"> normal=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-s"><span class=" pl-pds"> $( </span>tput sgr0 <span class = "pl-k" >|| </span> echo<span class = "pl-pds" >) </span></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=" LC31" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 31" style=" position:relative"> black=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-s"><span class=" pl-pds"> $( </span>tput setaf 0 <span class = "pl-k" >|| </span> echo<span class = "pl-pds" >) </span></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=" LC32" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 32" style=" position:relative"> red=<span class=" pl-s"><s
</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC42" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 42" style=" position:relative"><span class=" pl-en">say_warning</span>() {</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC43" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 43" style=" position:relative"> <span class=" pl-c1">printf</span> <span class=" pl-s"><span class=" pl-pds">"</span>%b\n<span class=" pl-pds">"</span></span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> ${ yellow <span class= "pl-k" > :- </span> } </span>dotnet_install: Warning: <span class=" pl-smi"> $1 </span><span class=" pl-smi"> ${ normal <span class= "pl-k" > :- </span> } </span><span class=" pl-pds">"</span></span> <span class=" pl-k">>&3</span></div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC44" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 44" style=" position:relative">}</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC45" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 45" style=" position:relative">
</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC46" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 46" style=" position:relative"><span class=" pl-en">say_err</span>() {</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC47" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 47" style=" position:relative"> <span class=" pl-c1">printf</span> <span class=" pl-s"><span class=" pl-pds">"</span>%b\n<span class=" pl-pds">"</span></span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> ${ red <span class= "pl-k" > :- </span> } </span>dotnet_install: Error: <span class=" pl-smi"> $1 </span><span class=" pl-smi"> ${ normal <span class= "pl-k" > :- </span> } </span><span class=" pl-pds">"</span></span> <span class=" pl-k">>&2</span></div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC48" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 48" style=" position:relative">}</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC49" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 49" style=" position:relative">
</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC50" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 50" style=" position:relative"><span class=" pl-en">say</span>() {</div></div></div><div class=" child-of-line-49 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC51" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 51" style=" position:relative"> <span class=" pl-c"><span class=" pl-c">#</span> using stream 3 (defined in the beginning) to not interfere with stdout of functions</span></div></div></div><div class=" child-of-line-49 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC52" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 52" style=" position:relative"> <span class=" pl-c"><span class=" pl-c">#</span> which may be used as return value</span></div></div></div><div class=" child-of-line-49 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC53" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 53" style=" position:relative"> <span class=" pl-c1">printf</span> <span class=" pl-s"><span class=" pl-pds">"</span>%b\n<span class=" pl-pds">"</span></span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> ${ cyan <span class= "pl-k" > :- </span> } </span>dotnet-install:<span class=" pl-smi"> ${ normal <span class= "pl-k" > :- </span> } </span> <span class=" pl-smi"> $1 </span><span class=" pl-pds">"</span></span> <span class=" pl-k">>&3</span></div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC54" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 54" style=" position:relative">}</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC55" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 55" style=" position:relative">
</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC56" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 56" style=" position:relative"><span class=" pl-en">say_verbose</span>() {</div></div></div><div class=" child-of-line-55 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC57" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 57" style=" position:relative"> <span class=" pl-k">if</span> [ <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $verbose </span><span class=" pl-pds">"</span></span> <span class=" pl-k">=</span> <span class=" pl-c1">true</span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-55 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC58" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 58" style=" position:relative"> say <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $1 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-55 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC59" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 59" style=" position:relative"> <span class=" pl-k">fi</span></div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC60" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 60" style=" position:relative">}</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC61" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 61" style=" position:relative">
</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC62" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 62" style=" position:relative"><span class=" pl-c"><span class=" pl-c">#</span> This platform list is finite - if the SDK/Runtime has supported Linux distribution-specific assets,</span></div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC63" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 63" style=" position:relative"><span class=" pl-c"><span class=" pl-c">#</span> then and only then should the Linux distribution appear in this list.</span></div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC64" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 64" style=" position:relative"><span class=" pl-c"><span class=" pl-c">#</span> Adding a Linux distribution to this list does not imply distribution-specific support.</span></div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC65" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 65" style=" position:relative"><span class=" pl-en">get_legacy_os_name_from_platform</span>() {</div></div></div><div class=" child-of-line-64 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC66" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 66" style=" position:relative"> <span class=" pl-c1">eval</span> <span class=" pl-smi"> $invocation </span></div></div></div><div class=" child-of-line-64 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC67" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 67" style=" position:relative">
</div></div></div><div class=" child-of-line-64 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC68" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 68" style=" position:relative"> platform=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $1 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-64 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC69" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 69" style=" position:relative"> <span class=" pl-k">case</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $platform </span><span class=" pl-pds">"</span></span> <span class=" pl-k">in</span></div></div></div><div class=" child-of-line-64 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC70" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 70" style=" position:relative"> <span class=" pl-s"><span class=" pl-pds">"</span>centos.7<span class=" pl-pds">"</span></span>)</div></div></div><div class=" child-of-line-64 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC71" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 71" style=" position:relative"> <span class=" pl-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span>centos<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-64 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC72" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 72" style=" position:relative"> <span class=" pl-k">return</span> 0</div></div></div><div class=" child-of-line-64 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC73" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 73" style=" position:relative"> ;;</div></div></div><div class=" child-of-line-64 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC74" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 74" style=" position:relative"> <span class=" pl-s"><span class=" pl-pds">"</span>debian.8<span class=" pl-pds">"</span></span>)</div></div></div><div class=" child-of-line-64 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC75" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 75" style=" position:relative"> <span class=" pl-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span>debian<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-64 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC76" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 76" style=" position:relative"> <span class=" pl-k">return</span> 0</div></div></div><div class=" child-of-line-64 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC77" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 77" style=" position:relative"> ;;</div></div></div><div class=" child-of-line-64 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC78" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 78" style=" position:relative"> <span class=" pl-s"><span class=" pl-pds">"</span>debian.9<span class=" pl-pds">"</span></span>)</div></div></div><div class=" child-of-line-64 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC79" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 79" style=" position:relative"> <span class=" pl-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span>debian.9<span class=" pl-pds">"</span></span></div></
</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC138" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 138" style=" position:relative"><span class=" pl-en">get_legacy_os_name</span>() {</div></div></div><div class=" child-of-line-137 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC139" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 139" style=" position:relative"> <span class=" pl-c1">eval</span> <span class=" pl-smi"> $invocation </span></div></div></div><div class=" child-of-line-137 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">
</div></div></div><div class=" child-of-line-137 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-k">local</span> uname=<span class=" pl-s"><span class=" pl-pds"> $( </span>uname<span class = "pl-pds" >) </span></span></div></div></div><div class=" child-of-line-137 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-k">if</span> [ <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $uname </span><span class=" pl-pds">"</span></span> <span class=" pl-k">=</span> <span class=" pl-s"><span class=" pl-pds">"</span>Darwin<span class=" pl-pds">"</span></span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-137 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"> <span class=" pl-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span>osx<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-137 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">return</span> 0</div></div></div><div class=" child-of-line-137 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">elif</span> [ <span class=" pl-k">-n</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $runtime_id </span><span class=" pl-pds">"</span></span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-137 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">echo</span> <span class=" pl-s"><span class=" pl-pds"> $( </span>get_legacy_os_name_from_platform <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >${ runtime_id <span class= "pl-k" >%</span>-<span class= "pl-k" >*</span> } </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >|| </span> <span class = "pl-c1" >echo</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >${ runtime_id <span class= "pl-k" >%</span>-<span class= "pl-k" >*</span> } </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span></div></div></div><div class=" child-of-line-137 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"> <span class=" pl-k">return</span> 0</div></div></div><div class=" child-of-line-137 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">else</span></div></div></div><div class=" child-of-line-137 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-k">if</span> [ <span class=" pl-k">-e</span> /etc/os-release ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-137 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC150" class=" react-file-line html-div" data-te
</div></div></div><div class=" child-of-line-137 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"> say_verbose <span class=" pl-s"><span class=" pl-pds">"</span>Distribution specific OS name and version could not be detected: UName = <span class=" pl-smi"> $uname </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-137 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-k">return</span> 1</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"><span class=" pl-en">get_linux_platform_name</span>() {</div></div></div><div class=" child-of-line-162 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-c1">eval</span> <span class=" pl-smi"> $invocation </span></div></div></div><div class=" child-of-line-162 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">
</div></div></div><div class=" child-of-line-162 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">if</span> [ <span class=" pl-k">-n</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $runtime_id </span><span class=" pl-pds">"</span></span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-162 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-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> ${ runtime_id <span class= "pl-k" >%</span>-<span class= "pl-k" >*</span> } </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-162 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-k">return</span> 0</div></div></div><div class=" child-of-line-162 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-k">else</span></div></div></div><div class=" child-of-line-162 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"> <span class=" pl-k">if</span> [ <span class=" pl-k">-e</span> /etc/os-release ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-162 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-c1">.</span> /etc/os-release</div></div></div><div class=" child-of-line-162 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">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $ID </span><span class=" pl-smi"> ${ VERSION_ID <span class= "pl-k" >:</span>+.<span class= "pl-smi" > ${ VERSION_ID } </span> } </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-162 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"> <span class=" pl-k">return</span> 0</div></div></div><div class=" child-of-line-162 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"> <span class=" pl-k">elif</span> [ <span class=" pl-k">-e</span> /etc/redhat-release ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-162 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"> <span class=" pl-k">local</span> redhatRelease=<span class=" pl-s"><span class=" pl-pds"> $( </span><span class = "pl-k" >& lt; </span>/etc/redhat-release<span class = "pl-pds" >) </span></span></div></div></div><div class=" child-of-line-162 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">
</div></div></div><div class=" child-of-line-162 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"> say_verbose <span class=" pl-s"><span class=" pl-pds">"</span>Linux specific platform name and version could not be detected: UName = <span class=" pl-smi"> $uname </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-162 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"> <span class=" pl-k">return</span> 1</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">
</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-en">is_musl_based_distro</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"> (ldd --version <span class=" pl-k">2>&1</span> <span class=" pl-k">||</span> true) <span class=" pl-k">|</span> grep -q musl</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">}</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"><span class=" pl-en">get_current_os_name</span>() {</div></div></div><div class=" child-of-line-190 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-c1">eval</span> <span class=" pl-smi"> $invocation </span></div></div></div><div class=" child-of-line-190 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">
</div></div></div><div class=" child-of-line-190 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-k">local</span> uname=<span class=" pl-s"><span class=" pl-pds"> $( </span>uname<span class = "pl-pds" >) </span></span></div></div></div><div class=" child-of-line-190 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-k">if</span> [ <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $uname </span><span class=" pl-pds">"</span></span> <span class=" pl-k">=</span> <span class=" pl-s"><span class=" pl-pds">"</span>Darwin<span class=" pl-pds">"</span></span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-190 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-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span>osx<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-190 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"> <span class=" pl-k">return</span> 0</div></div></div><div class=" child-of-line-190 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"> <span class=" pl-k">elif</span> [ <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $uname </span><span class=" pl-pds">"</span></span> <span class=" pl-k">=</span> <span class=" pl-s"><span class=" pl-pds">"</span>FreeBSD<span class=" pl-pds">"</span></span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-190 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-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span>freebsd<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-190 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"> <span class=" pl-k">return</span> 0</div></div></div><div class=" child-of-line-190 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"> <span class=" pl-k">elif</span> [ <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $uname </span><span class=" pl-pds">"</span></span> <span class=" pl-k">=</span> <span class=" pl-s"><span class=" pl-pds">"</span>Linux<span class=" pl-pds">"</span></span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-190 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">local</span> linux_platform_name=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-190 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
</div></div></div><div class=" child-of-line-190 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC205" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 205" style=" position:relative"> <span class=" pl-k">if</span> [ <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $linux_platform_name </span><span class=" pl-pds">"</span></span> <span class=" pl-k">=</span> <span class=" pl-s"><span class=" pl-pds">"</span>rhel.6<span class=" pl-pds">"</span></span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-190 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-c1">echo</span> <span class=" pl-smi"> $linux_platform_name </span></div></div></div><div class=" child-of-line-190 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"> <span class=" pl-k">return</span> 0</div></div></div><div class=" child-of-line-190 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"> <span class=" pl-k">elif</span> is_musl_based_distro<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-190 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-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span>linux-musl<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-190 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-k">return</span> 0</div></div></div><div class=" child-of-line-190 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-k">elif</span> [ <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $linux_platform_name </span><span class=" pl-pds">"</span></span> <span class=" pl-k">=</span> <span class=" pl-s"><span class=" pl-pds">"</span>linux-musl<span class=" pl-pds">"</span></span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-190 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"> <span class=" pl-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span>linux-musl<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-190 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"> <span class=" pl-k">return</span> 0</div></div></div><div class=" child-of-line-190 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"> <span class=" pl-k">else</span></div></div></div><div class=" child-of-line-190 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">
</div></div></div><div class=" child-of-line-190 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"> say_err <span class=" pl-s"><span class=" pl-pds">"</span>OS name could not be detected: UName = <span class=" pl-smi"> $uname </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-190 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> 1</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">
</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-en">machine_has</span>() {</div></div></div><div class=" child-of-line-223 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-c1">eval</span> <span class=" pl-smi"> $invocation </span></div></div></div><div class=" child-of-line-223 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">
</div></div></div><div class=" child-of-line-223 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"> <span class=" pl-c1">command</span> -v <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $1 </span><span class=" pl-pds">"</span></span> <span class=" pl-k">></span> /dev/null <span class=" pl-k">2>&1</span></div></div></div><div class=" child-of-line-223 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">return</span> <span class=" pl-smi"> $? </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">}</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">
</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC231" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 231" style=" position:relative"><span class=" pl-en">check_min_reqs</span>() {</div></div></div><div class=" child-of-line-230 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC232" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 232" style=" position:relative"> <span class=" pl-k">local</span> hasMinimum=false</div></div></div><div class=" child-of-line-230 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC233" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 233" style=" position:relative"> <span class=" pl-k">if</span> machine_has <span class=" pl-s"><span class=" pl-pds">"</span>curl<span class=" pl-pds">"</span></span><span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-230 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC234" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 234" style=" position:relative"> hasMinimum=true</div></div></div><div class=" child-of-line-230 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC235" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 235" style=" position:relative"> <span class=" pl-k">elif</span> machine_has <span class=" pl-s"><span class=" pl-pds">"</span>wget<span class=" pl-pds">"</span></span><span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-230 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC236" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 236" style=" position:relative"> hasMinimum=true</div></div></div><div class=" child-of-line-230 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC237" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 237" style=" position:relative"> <span class=" pl-k">fi</span></div></div></div><div class=" child-of-line-230 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC238" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 238" style=" position:relative">
</div></div></div><div class=" child-of-line-230 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">if</span> [ <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $hasMinimum </span><span class=" pl-pds">"</span></span> <span class=" pl-k">=</span> <span class=" pl-s"><span class=" pl-pds">"</span>false<span class=" pl-pds">"</span></span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-230 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_err <span class=" pl-s"><span class=" pl-pds">"</span>curl (recommended) or wget are required to download dotnet. Install missing prerequisite to proceed.<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-230 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"> <span class=" pl-k">return</span> 1</div></div></div><div class=" child-of-line-230 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-k">fi</span></div></div></div><div class=" child-of-line-230 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-k">return</span> 0</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">}</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">
</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-c"><span class=" pl-c">#</span> args:</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-c"><span class=" pl-c">#</span> input - $1 </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"><span class=" pl-en">to_lowercase</span>() {</div></div></div><div class=" child-of-line-247 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"> <span class=" pl-c"><span class=" pl-c">#</span>eval $invocation </span></div></div></div><div class=" child-of-line-247 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">
</div></div></div><div class=" child-of-line-247 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-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $1 </span><span class=" pl-pds">"</span></span> <span class=" pl-k">|</span> tr <span class=" pl-s"><span class=" pl-pds">'</span>[:upper:]<span class=" pl-pds">'</span></span> <span class=" pl-s"><span class=" pl-pds">'</span>[:lower:]<span class=" pl-pds">'</span></span></div></div></div><div class=" child-of-line-247 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">return</span> 0</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">}</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-c"><span class=" pl-c">#</span> args:</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"><span class=" pl-c"><span class=" pl-c">#</span> input - $1 </span></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"><span class=" pl-en">remove_trailing_slash</span>() {</div></div></div><div class=" child-of-line-256 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-c"><span class=" pl-c">#</span>eval $invocation </span></div></div></div><div class=" child-of-line-256 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">
</div></div></div><div class=" child-of-line-256 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"> <span class=" pl-k">local</span> input=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> ${ 1 <span class= "pl-k" > :- </span> } </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-256 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"> <span class=" pl-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> ${ input <span class= "pl-k" >%/</span> } </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-256 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> 0</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-c"><span class=" pl-c">#</span> args:</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"><span class=" pl-c"><span class=" pl-c">#</span> input - $1 </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"><span class=" pl-en">remove_beginning_slash</span>() {</div></div></div><div class=" child-of-line-266 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-c"><span class=" pl-c">#</span>eval $invocation </span></div></div></div><div class=" child-of-line-266 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">
</div></div></div><div class=" child-of-line-266 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"> <span class=" pl-k">local</span> input=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> ${ 1 <span class= "pl-k" > :- </span> } </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-266 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"> <span class=" pl-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> ${ input <span class= "pl-k" >#/</span> } </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-266 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">return</span> 0</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">}</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">
</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-c"><span class=" pl-c">#</span> args:</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-c"><span class=" pl-c">#</span> root_path - $1 </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-c"><span class=" pl-c">#</span> child_path - $2 - this parameter can be empty</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"><span class=" pl-en">combine_paths</span>() {</div></div></div><div class=" child-of-line-277 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"> <span class=" pl-c1">eval</span> <span class=" pl-smi"> $invocation </span></div></div></div><div class=" child-of-line-277 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=" child-of-line-277 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-c"><span class=" pl-c">#</span> TODO: Consider making it work with any number of paths. For now:</span></div></div></div><div class=" child-of-line-277 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-k">!</span> <span class=" pl-k">-z</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> ${ 3 <span class= "pl-k" > :- </span> } </span><span class=" pl-pds">"</span></span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-277 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"> say_err <span class=" pl-s"><span class=" pl-pds">"</span>combine_paths: Function takes two parameters.<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-277 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">return</span> 1</div></div></div><div class=" child-of-line-277 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"> <span class=" pl-k">fi</span></div></div></div><div class=" child-of-line-277 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=" child-of-line-277 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">local</span> root_path=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-s"><span class=" pl-pds"> $( </span>remove_trailing_slash <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$1 </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-277 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">local</span> child_path=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-s"><span class=" pl-pds"> $( </span>remove_beginning_slash <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >${ 2 <span class= "pl-k" > :- </span> } </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-277 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"> say_verbose <span class=" pl-s"><span class=" pl-pds">"</span>combine_paths: root_path=<span class=" pl-smi"> $root_path </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-277 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"> say_verbose <span class=" pl-s"><span class=" pl-pds">"</span>combine_paths: child_path=<span class=" pl-smi"> $child_path </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-277 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"> <span class=" pl-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $root_path </span>/<span class=" pl-smi"> $child_path </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-277 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-k">return</span> 0</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-number=" 293" style=" position:relative">}</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC294" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 294" style=" position:relative">
</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC295" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 295" style=" position:relative"><span class=" pl-en">get_machine_architecture</span>() {</div></div></div><div class=" child-of-line-294 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC296" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 296" style=" position:relative"> <span class=" pl-c1">eval</span> <span class=" pl-smi"> $invocation </span></div></div></div><div class=" child-of-line-294 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC297" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 297" style=" position:relative">
</div></div></div><div class=" child-of-line-294 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">if</span> <span class=" pl-c1">command</span> -v uname <span class=" pl-k">></span> /dev/null<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-294 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"> CPUName=<span class=" pl-s"><span class=" pl-pds"> $( </span>uname -m<span class = "pl-pds" >) </span></span></div></div></div><div class=" child-of-line-294 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">case</span> <span class=" pl-smi"> $CPUName </span> <span class=" pl-k">in</span></div></div></div><div class=" child-of-line-294 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"> armv1<span class=" pl-k">*</span>|armv2<span class=" pl-k">*</span>|armv3<span class=" pl-k">*</span>|armv4<span class=" pl-k">*</span>|armv5<span class=" pl-k">*</span>|armv6<span class=" pl-k">*</span>)</div></div></div><div class=" child-of-line-294 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"> <span class=" pl-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span>armv6-or-below<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-294 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">return</span> 0</div></div></div><div class=" child-of-line-294 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"> ;;</div></div></div><div class=" child-of-line-294 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"> armv<span class=" pl-k">*</span>l)</div></div></div><div class=" child-of-line-294 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"> <span class=" pl-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span>arm<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-294 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">return</span> 0</div></div></div><div class=" child-of-line-294 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"> ;;</div></div></div><div class=" child-of-line-294 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"> aarch64|arm64)</div></div></div><div class=" child-of-line-294 react-code-text react-code-line-contents" style=" min-height:auto"><div><
</div></div></div><div class=" child-of-line-294 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-c"><span class=" pl-c">#</span> Always default to 'x64'</span></div></div></div><div class=" child-of-line-294 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">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span>x64<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-294 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-k">return</span> 0</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">}</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">
</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-c"><span class=" pl-c">#</span> args:</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"><span class=" pl-c"><span class=" pl-c">#</span> architecture - $1 </span></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"><span class=" pl-en">get_normalized_architecture_from_architecture</span>() {</div></div></div><div class=" child-of-line-347 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"> <span class=" pl-c1">eval</span> <span class=" pl-smi"> $invocation </span></div></div></div><div class=" child-of-line-347 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=" child-of-line-347 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-k">local</span> architecture=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-s"><span class=" pl-pds"> $( </span>to_lowercase <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$1 </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-347 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">
</div></div></div><div class=" child-of-line-347 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-k">if</span> [[ <span class=" pl-smi"> $architecture </span> <span class=" pl-k">==</span> <span class=" pl-cce">\<</span>auto<span class=" pl-cce">\></span> ]]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-347 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"> machine_architecture=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-s"><span class=" pl-pds"> $( </span>get_machine_architecture<span class = "pl-pds" >) </span></span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-347 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-k">if</span> [[ <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $machine_architecture </span><span class=" pl-pds">"</span></span> <span class=" pl-k">==</span> <span class=" pl-s"><span class=" pl-pds">"</span>armv6-or-below<span class=" pl-pds">"</span></span> ]]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-347 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"> say_err <span class=" pl-s"><span class=" pl-pds">"</span>Architecture <span class=" pl-cce">\`</span><span class=" pl-smi"> $machine_architecture </span><span class=" pl-cce">\`</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=" child-of-line-347 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">return</span> 1</div></div></div><div class=" child-of-line-347 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"> <span class=" pl-k">fi</span></div></div></div><div class=" child-of-line-347 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=" child-of-line-347 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-c1">echo</span> <span class=" pl-smi"> $machine_architecture </span></div></div></div><div class=" child-of-line-347 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"> <span class=" pl-k">return</span> 0</div></div></div><div class=" child-of-line-347 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-k">fi</span></div></div></div><div class=" child-of-line-347 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">
</div></div></div><div class=" child-of-line-347 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-k">case</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $architecture </span><span class=" pl-pds">"</span></span> <span class=" pl-k">in</span></div></div></div><div class=" child-of-line-347 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"> amd64|x64)</div></div></div><div class=" child-of-line-347 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-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span>x64<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-347 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"> <span class=" pl-k">return</span> 0</div></div></div><div class=" child-of-line-347 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=" child-of-line-347 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"> arm)</div></div></div><div class=" child-of-line-347 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-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span>arm<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-347 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-k">return</span> 0</div></div></div><div class=" child-of-line-347 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=" child-of-line-347 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"> arm64)</div></div></div><div class=" child-of-line-347 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-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span>arm64<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-347 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-k">return</span> 0</div></div></div><div class=" child-of-line-347 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=" child-of-line-347 react-code-text react-code-line-contents" style=" min
</div></div></div><div class = "child-of-line-347 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" > say_err <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>Architecture <span class = "pl-cce" >\` </span><span class = "pl-smi" >$architecture </span><span class = "pl-cce" >\` </span> not supported. If you think this is a bug, report it at https://github.com/dotnet/install-scripts/issues<span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-347 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-k" >return</span> 1</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" >} </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" >
</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-c" ><span class = "pl-c" >#</span> args:</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-c" ><span class = "pl-c" >#</span> version - $1 </span></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" ><span class = "pl-c" ><span class = "pl-c" >#</span> channel - $2 </span></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-c" ><span class = "pl-c" >#</span> architecture - $3 </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-en" >get_normalized_architecture_for_specific_sdk_version</span>() { </div></div></div><div class = "child-of-line-398 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" > <span class = "pl-c1" >eval</span> <span class = "pl-smi" >$invocation </span></div></div></div><div class = "child-of-line-398 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" style = "position:relative" >
</div></div></div><div class = "child-of-line-398 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC402" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "402" style = "position:relative" > <span class = "pl-k" >local</span> is_version_support_arm64 = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-s" ><span class = "pl-pds" >$( </span>is_arm64_supported <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$1 </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-398 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC403" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "403" style = "position:relative" > <span class = "pl-k" >local</span> is_channel_support_arm64 = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-s" ><span class = "pl-pds" >$( </span>is_arm64_supported <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$2 </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-398 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC404" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "404" style = "position:relative" > <span class = "pl-k" >local</span> architecture = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$3 </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-k" >; </span></div></div></div><div class = "child-of-line-398 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC405" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "405" style = "position:relative" > <span class = "pl-k" >local</span> osname = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-s" ><span class = "pl-pds" >$( </span>get_current_os_name<span class = "pl-pds" >) </span></span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-398 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC406" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "406" style = "position:relative" >
</div></div></div><div class = "child-of-line-398 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC407" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "407" style = "position:relative" > <span class = "pl-k" >if</span> [ <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$osname </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >== </span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>osx<span class = "pl-pds" >& quot; </span></span> ] <span class = "pl-k" >& amp;& amp; </span> [ <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$architecture </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >== </span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>arm64<span class = "pl-pds" >& quot; </span></span> ] <span class = "pl-k" >& amp;& amp; </span> { [ <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$is_version_support_arm64 </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >= </span> <span class = "pl-c1" >false</span> ] <span class = "pl-k" >|| </span> [ <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$is_channel_support_arm64 </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >= </span> <span class = "pl-c1" >false</span> ] <span class = "pl-k" >; </span> } <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-398 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC408" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "408" style = "position:relative" > <span class = "pl-c" ><span class = "pl-c" >#</span>check if rosetta is installed</span></div></div></div><div class = "child-of-line-398 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC409" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "409" style = "position:relative" > <span class = "pl-k" >if</span> [ <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-s" ><span class = "pl-pds" >$( </span>/usr/bin/pgrep oahd <span class = "pl-k" >& gt; </span>/dev/null <span class = "pl-k" >2& gt;& amp; 1</span><span class = "pl-k" >; </span><span class = "pl-c1" >echo</span> <span class = "pl-smi" >$? </span><span class = "pl-pds" >) </span></span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >-eq</span> 0 ] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span> </div></div></div><div class = "child-of-line-398 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC410" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "410" style = "position:relative" > say_verbose <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>Changing user architecture from & #039;<span class="pl-smi">$architecture</span>' to 'x64' because .NET SDKs prior to version 6.0 do not support arm64.<span class="pl-pds">"</span></span> </div></div></div><div class="child-of-line-398 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC411" class="react-file-line html-div" data-testid="code-cell" data-line-number="411" style="position:relative"> <span class="pl-c1">echo</span> <span class="pl-s"><span class="pl-pds">"</span>x64<span class="pl-pds">"</span></span></div></div></div><div class="child-of-line-398 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-k">return</span> 0<span class="pl-k">;</span></div></div></div><div class="child-of-line-398 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">else</span></div></div></div><div class="child-of-line-398 react-code-text react-code-line-contents" style="
</div></div></div><div class = "child-of-line-398 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" > <span class = "pl-c1" >echo</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$architecture </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-398 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" >return</span> 0</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" >} </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-c" ><span class = "pl-c" >#</span> args:</span></div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC424" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "424" style = "position:relative" ><span class = "pl-c" ><span class = "pl-c" >#</span> version or channel - $1 </span></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-en" >is_arm64_supported</span>() { </div></div></div><div class = "child-of-line-424 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> Extract the major version by splitting on the dot</span></div></div></div><div class = "child-of-line-424 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" > major_version = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >${ 1 <span class= "pl-k" >%%</span>.<span class= "pl-k" >*</span> } </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-424 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 = "child-of-line-424 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-c" ><span class = "pl-c" >#</span> Check if the major version is a valid number and less than 6</span></div></div></div><div class = "child-of-line-424 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-k" >case</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$major_version </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >in</span></div></div></div><div class = "child-of-line-424 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" > [ 0-9] <span class = "pl-k" >*</span>) </div></div></div><div class = "child-of-line-424 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" >if</span> [ <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$major_version </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >-lt</span> 6 ] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-424 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-c1" >echo</span> <span class = "pl-c1" >false</span></div></div></div><div class = "child-of-line-424 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" > <span class = "pl-k" >return</span> 0</div></div></div><div class = "child-of-line-424 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" > <span class = "pl-k" >fi</span></div></div></div><div class = "child-of-line-424 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" > ;; </div></div></div><div class = "child-of-line-424 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-k" >esac</span></div></div></div><div class = "child-of-line-424 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 = "child-of-line-424 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-c1" >echo</span> <span class = "pl-c1" >true</span></div></div></div><div class = "child-of-line-424 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-k" >return</span> 0</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-c" ><span class = "pl-c" >#</span> args:</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-c" ><span class = "pl-c" >#</span> user_defined_os - $1 </span></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" ><span class = "pl-en" >get_normalized_os</span>() { </div></div></div><div class = "child-of-line-444 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-c1" >eval</span> <span class = "pl-smi" >$invocation </span></div></div></div><div class = "child-of-line-444 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" >
</div></div></div><div class = "child-of-line-444 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-k" >local</span> osname = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-s" ><span class = "pl-pds" >$( </span>to_lowercase <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$1 </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-444 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" > <span class = "pl-k" >if</span> [ <span class = "pl-k" >!</span> <span class = "pl-k" >-z</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$osname </span><span class = "pl-pds" >& quot; </span></span> ] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-444 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" >case</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$osname </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >in</span></div></div></div><div class = "child-of-line-444 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" > osx | freebsd | rhel.6 | linux-musl | linux) </div></div></div><div class = "child-of-line-444 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-c1" >echo</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$osname </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-444 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" > <span class = "pl-k" >return</span> 0</div></div></div><div class = "child-of-line-444 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" > ;; </div></div></div><div class = "child-of-line-444 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" > macos) </div></div></div><div class = "child-of-line-444 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" > osname = <span class = "pl-s" ><span class = "pl-pds" >& #039;</span>osx<span class="pl-pds">'</span></span></div></div></div><div class="child-of-line-444 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"> <span class="pl-c1">echo</span> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$osname</span><span class="pl-pds">"</span></span></div></div></div><div class="child-of-line-444 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=
</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-c" ><span class = "pl-c" >#</span> args:</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" ><span class = "pl-c" ><span class = "pl-c" >#</span> quality - $1 </span></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" ><span class = "pl-en" >get_normalized_quality</span>() { </div></div></div><div class = "child-of-line-473 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-c1" >eval</span> <span class = "pl-smi" >$invocation </span></div></div></div><div class = "child-of-line-473 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" >
</div></div></div><div class = "child-of-line-473 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-k" >local</span> quality = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-s" ><span class = "pl-pds" >$( </span>to_lowercase <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$1 </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-473 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" > <span class = "pl-k" >if</span> [ <span class = "pl-k" >!</span> <span class = "pl-k" >-z</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$quality </span><span class = "pl-pds" >& quot; </span></span> ] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-473 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" > <span class = "pl-k" >case</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$quality </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >in</span></div></div></div><div class = "child-of-line-473 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" > daily | signed | validated | preview) </div></div></div><div class = "child-of-line-473 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-c1" >echo</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$quality </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-473 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" > <span class = "pl-k" >return</span> 0</div></div></div><div class = "child-of-line-473 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" > ;; </div></div></div><div class = "child-of-line-473 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" > ga) </div></div></div><div class = "child-of-line-473 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-c" ><span class = "pl-c" >#</span>ga quality is available without specifying quality, so normalizing it to empty</span></div></div></div><div class = "child-of-line-473 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" > <span class = "pl-k" >return</span> 0</div></div></div><div class = "child-of-line-473 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 = "child-of-line-473 react-code-text rea
</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"><span class=" pl-c"><span class=" pl-c">#</span> args:</span></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"><span class=" pl-c"><span class=" pl-c">#</span> channel - $1 </span></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"><span class=" pl-en">get_normalized_channel</span>() {</div></div></div><div class=" child-of-line-498 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-c1">eval</span> <span class=" pl-smi"> $invocation </span></div></div></div><div class=" child-of-line-498 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">
</div></div></div><div class=" child-of-line-498 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"> <span class=" pl-k">local</span> channel=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-s"><span class=" pl-pds"> $( </span>to_lowercase <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$1 </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-498 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">
</div></div></div><div class=" child-of-line-498 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"> $channel </span> <span class=" pl-k">==</span> current ]]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-498 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"> say_warning <span class=" pl-s"><span class=" pl-pds">'</span>Value "Current" is deprecated for -Channel option. Use "STS" instead.<span class=" pl-pds">'</span></span></div></div></div><div class=" child-of-line-498 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"> <span class=" pl-k">fi</span></div></div></div><div class=" child-of-line-498 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">
</div></div></div><div class=" child-of-line-498 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-k">if</span> [[ <span class=" pl-smi"> $channel </span> <span class=" pl-k">==</span> release/<span class=" pl-k">*</span> ]]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-498 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"> say_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.<span class=" pl-pds">'</span></span><span class=" pl-k">;</span></div></div></div><div class=" child-of-line-498 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">fi</span></div></div></div><div class=" child-of-line-498 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">
</div></div></div><div class=" child-of-line-498 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"> <span class=" pl-k">if</span> [ <span class=" pl-k">!</span> <span class=" pl-k">-z</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $channel </span><span class=" pl-pds">"</span></span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-498 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">case</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $channel </span><span class=" pl-pds">"</span></span> <span class=" pl-k">in</span></div></div></div><div class=" child-of-line-498 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC514" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 514" style=" position:relative"> lts)</div></div></div><div class=" child-of-line-498 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC515" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 515" style=" position:relative"> <span class=" pl-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span>LTS<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-498 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC516" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 516" style=" position:relative"> <span class=" pl-k">return</span> 0</div></div></div><div class=" child-of-line-498 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC517" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 517" style=" position:relative"> ;;</div></div></div><div class=" child-of-line-498 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC518" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 518" style=" position:relative"> sts)</div></div></div><div class=" child-of-line-498 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC519" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 519" style=" position:relative"> <span class=" pl-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span>STS<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-498 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"> <span class=" pl-k">return</span> 0</div></div></div><div class=" child-of-line-498 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=" child-of-line-498 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"> current)</div></div></div><div class=" child-of-line-498 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-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span>STS<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-498 react-code-text react-code-line-content
</div></div></div><div class = "child-of-line-498 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-k" >return</span> 0</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" >} </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" >
</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" ><span class = "pl-c" ><span class = "pl-c" >#</span> args:</span></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" ><span class = "pl-c" ><span class = "pl-c" >#</span> runtime - $1 </span></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-en" >get_normalized_product</span>() { </div></div></div><div class = "child-of-line-537 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" > <span class = "pl-c1" >eval</span> <span class = "pl-smi" >$invocation </span></div></div></div><div class = "child-of-line-537 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" >
</div></div></div><div class = "child-of-line-537 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" > <span class = "pl-k" >local</span> product = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-537 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" > <span class = "pl-k" >local</span> runtime = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-s" ><span class = "pl-pds" >$( </span>to_lowercase <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$1 </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-537 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" >if</span> [[ <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$runtime </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >== </span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>dotnet<span class = "pl-pds" >& quot; </span></span> ]] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-537 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" > product = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>dotnet-runtime<span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-537 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" > <span class = "pl-k" >elif</span> [[ <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$runtime </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >== </span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>aspnetcore<span class = "pl-pds" >& quot; </span></span> ]] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-537 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" > product = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>aspnetcore-runtime<span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-537 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" >elif</span> [ <span class = "pl-k" >-z</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$runtime </span><span class = "pl-pds" >& quot; </span></span> ] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-537 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" > product = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>dotnet-sdk<span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-537 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" >fi</span></div></div></div><div class = "child-of-
</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-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=" LC555" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 555" 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=" LC556" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 556" 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=" LC557" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 557" 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=" LC558" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 558" 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=" LC559" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 559" 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=" LC560" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 560" style=" position:relative">
</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC561" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 561" style=" position:relative"><span class=" pl-c"><span class=" pl-c">#</span> args:</span></div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC562" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 562" style=" position:relative"><span class=" pl-c"><span class=" pl-c">#</span> version_text - stdin</span></div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC563" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 563" style=" position:relative"><span class=" pl-en">get_version_from_latestversion_file_content</span>() {</div></div></div><div class=" child-of-line-562 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC564" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 564" style=" position:relative"> <span class=" pl-c1">eval</span> <span class=" pl-smi"> $invocation </span></div></div></div><div class=" child-of-line-562 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC565" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 565" style=" position:relative">
</div></div></div><div class=" child-of-line-562 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC566" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 566" style=" position:relative"> cat <span class=" pl-k">|</span> tail -n 1 <span class=" pl-k">|</span> sed <span class=" pl-s"><span class=" pl-pds">'</span>s/\r $//<span class=" pl-pds">'</span></span></div></div></div><div class=" child-of-line-562 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC567" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 567" style=" position:relative"> <span class=" pl-k">return</span> 0</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC568" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 568" style=" position:relative">}</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC569" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 569" style=" position:relative">
</div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC570" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 570" style=" position:relative"><span class=" pl-c"><span class=" pl-c">#</span> args:</span></div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC571" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 571" style=" position:relative"><span class=" pl-c"><span class=" pl-c">#</span> install_root - $1 </span></div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC572" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 572" style=" position:relative"><span class=" pl-c"><span class=" pl-c">#</span> relative_path_to_package - $2 </span></div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC573" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 573" style=" position:relative"><span class=" pl-c"><span class=" pl-c">#</span> specific_version - $3 </span></div></div></div><div class=" react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC574" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 574" style=" position:relative"><span class=" pl-en">is_dotnet_package_installed</span>() {</div></div></div><div class=" child-of-line-573 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC575" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 575" style=" position:relative"> <span class=" pl-c1">eval</span> <span class=" pl-smi"> $invocation </span></div></div></div><div class=" child-of-line-573 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC576" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 576" style=" position:relative">
</div></div></div><div class=" child-of-line-573 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC577" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 577" style=" position:relative"> <span class=" pl-k">local</span> install_root=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $1 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-573 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC578" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 578" style=" position:relative"> <span class=" pl-k">local</span> relative_path_to_package=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $2 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-573 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC579" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 579" style=" position:relative"> <span class=" pl-k">local</span> specific_version=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> ${ 3 <span class= "pl-k" >//</span>[ $' \t\r\n '] } </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-573 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">
</div></div></div><div class=" child-of-line-573 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"> <span class=" pl-k">local</span> dotnet_package_path=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-s"><span class=" pl-pds"> $( </span>combine_paths <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-s" ><span class = "pl-pds" >$( </span>combine_paths <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$install_root </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$relative_path_to_package </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$specific_version </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-573 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"> say_verbose <span class=" pl-s"><span class=" pl-pds">"</span>is_dotnet_package_installed: dotnet_package_path=<span class=" pl-smi"> $dotnet_package_path </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-573 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">
</div></div></div><div class=" child-of-line-573 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-k">-d</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $dotnet_package_path </span><span class=" pl-pds">"</span></span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-573 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-k">return</span> 0</div></div></div><div class=" child-of-line-573 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">else</span></div></div></div><div class=" child-of-line-573 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"> <span class=" pl-k">return</span> 1</div></div></div><div class=" child-of-line-573 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">fi</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">}</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"><span class=" pl-c"><span class=" pl-c">#</span> args:</span></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-c"><span class=" pl-c">#</span> downloaded file - $1 </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-c"><span class=" pl-c">#</span> remote_file_size - $2 </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"><span class=" pl-en">validate_remote_local_file_sizes</span>() </div></div></div><div class=" child-of-line-593 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-number=" 595" style=" position:relative">{</div></div></div><div class=" child-of-line-593 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC596" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 596" style=" position:relative"> <span class=" pl-c1">eval</span> <span class=" pl-smi"> $invocation </span></div></div></div><div class=" child-of-line-593 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">
</div></div></div><div class=" child-of-line-593 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"> <span class=" pl-k">local</span> downloaded_file=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $1 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-593 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"> <span class=" pl-k">local</span> remote_file_size=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $2 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-593 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-k">local</span> file_size=<span class=" pl-s"><span class=" pl-pds">'</span><span class=" pl-pds">'</span></span></div></div></div><div class=" child-of-line-593 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">
</div></div></div><div class=" child-of-line-593 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"> <span class=" pl-k">if</span> [[ <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $OSTYPE </span><span class=" pl-pds">"</span></span> <span class=" pl-k">==</span> <span class=" pl-s"><span class=" pl-pds">"</span>linux-gnu<span class=" pl-pds">"</span></span><span class=" pl-k">*</span> ]]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-593 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"> file_size=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-s"><span class=" pl-pds"> $( </span>stat -c <span class = "pl-s" ><span class = "pl-pds" >& #039;</span>%s<span class="pl-pds">'</span></span> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$downloaded_file</span><span class="pl-pds">"</span></span><span class="pl-pds">)</span></span><span class="pl-pds">"</span></span></div></div></div><div class="child-of-line-593 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-k">elif</span> [[ <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$OSTYPE</span><span class="pl-pds">"</span></span> <span class="pl-k">==</span> <span class="pl-s"><span class="pl-pds">"</span>darwin<span class="pl-pds">"</span></span><span class="pl-k">*</span> ]]<span class="pl-k">;</span> <span class="pl-k">then</span></div></div></div><div class="child-of-line-593 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"> <span class="pl-c"><span class="pl-c">#</span> hardcode in order to avoid conflicts with GNU stat</span></div></div></div><div class="child-of-line-593 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"> file_size=<span class="pl-s"><span class="pl-pds">"</span><span class="pl-s"><span class="pl-pds">$(</span>/usr/bin/stat -f <span class="pl-s"><span class="pl-pds">'</span>%z<span class="pl-pds">'</span></span> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$downloaded_file</span><span class="pl-pds">"</span></span><span class="pl-pds">)</span></span><span class="pl-pds">"</span></span></div></div></div><div class="child-of-line-593 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-k">fi</span> </div></div></div><div class="child-of-line-593 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="child-of-line-593 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">if</span> [ <span class="pl-k">-n</span> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$file_size</span><span class="pl-pds">"</span></span> ]<span class="pl-k">;</span> <span class="pl-k">then</span></div></div></div><div class="child-of-line-593 react-code-text react-code-line-contents" st
</div></div></div><div class = "child-of-line-593 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC612" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "612" style = "position:relative" > <span class = "pl-k" >if</span> [ <span class = "pl-k" >-n</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$remote_file_size </span><span class = "pl-pds" >& quot; </span></span> ] <span class = "pl-k" >& amp;& amp; </span> [ <span class = "pl-k" >-n</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$file_size </span><span class = "pl-pds" >& quot; </span></span> ] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-593 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC613" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "613" style = "position:relative" > <span class = "pl-k" >if</span> [ <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$remote_file_size </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >-ne</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$file_size </span><span class = "pl-pds" >& quot; </span></span> ] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-593 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC614" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "614" style = "position:relative" > say <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>The remote and local file sizes are not equal. The remote file size is <span class = "pl-smi" >$remote_file_size </span> bytes and the local size is <span class = "pl-smi" >$file_size </span> bytes. The local package may be corrupted.<span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-593 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC615" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "615" style = "position:relative" > <span class = "pl-k" >else</span></div></div></div><div class = "child-of-line-593 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC616" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "616" style = "position:relative" > say <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>The remote and local file sizes are equal.<span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-593 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC617" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "617" style = "position:relative" > <span class = "pl-k" >fi</span></div></div></div><div class = "child-of-line-593 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC618" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "618" style = "position:relative" > <span class = "pl-k" >fi</span></div></div></div><div class = "child-of-line-593 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC619" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "619" style = "position:relative" > </div></div></div><div class = "child-of-line-593 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC620" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "620" style = "position:relative" > <span class = "pl-k" >else</span></div></div></div><div class = "child-of-line-593 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC621" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "621" style = "position:relative" > say <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>Either downloaded or local package size can not be measured. One of them may be
</div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC625" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "625" style = "position:relative" ><span class = "pl-c" ><span class = "pl-c" >#</span> args:</span></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" ><span class = "pl-c" ><span class = "pl-c" >#</span> azure_feed - $1 </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" ><span class = "pl-c" ><span class = "pl-c" >#</span> channel - $2 </span></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-c" ><span class = "pl-c" >#</span> normalized_architecture - $3 </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" ><span class = "pl-en" >get_version_from_latestversion_file</span>( ) {</div></div></div><div class=" child-of-line-628 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"> <span class=" pl-c1">eval</span> <span class=" pl-smi"> $invocation </span></div></div></div><div class=" child-of-line-628 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">
</div></div></div><div class=" child-of-line-628 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"> <span class=" pl-k">local</span> azure_feed=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $1 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-628 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"> <span class=" pl-k">local</span> channel=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $2 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-628 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">local</span> normalized_architecture=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $3 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-628 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">
</div></div></div><div class=" child-of-line-628 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"> <span class=" pl-k">local</span> version_file_url=null</div></div></div><div class=" child-of-line-628 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">if</span> [[ <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $runtime </span><span class=" pl-pds">"</span></span> <span class=" pl-k">==</span> <span class=" pl-s"><span class=" pl-pds">"</span>dotnet<span class=" pl-pds">"</span></span> ]]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-628 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"> version_file_url=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $azure_feed </span>/Runtime/<span class=" pl-smi"> $channel </span>/latest.version<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-628 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"> <span class=" pl-k">elif</span> [[ <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $runtime </span><span class=" pl-pds">"</span></span> <span class=" pl-k">==</span> <span class=" pl-s"><span class=" pl-pds">"</span>aspnetcore<span class=" pl-pds">"</span></span> ]]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-628 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"> version_file_url=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $azure_feed </span>/aspnetcore/Runtime/<span class=" pl-smi"> $channel </span>/latest.version<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-628 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">elif</span> [ <span class=" pl-k">-z</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $runtime </span><span class=" pl-pds">"</span></span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-628 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"> version_file_url=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $azure_feed </span>/Sdk/<span class=" pl-smi"> $channel </span>/latest.version<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-628 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"> <span class=" pl-k">else</span></div></div></div><div class=" child-of-line-628 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_err <span class=" pl-s"><span class=" pl-pds">"</span>Invalid value for <span class=" pl-cce">\$</span>runtime<span class=" pl-pds">"</span></span></div></div></div><div
</div></div></div><div class=" child-of-line-628 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"> download <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $version_file_url </span><span class=" pl-pds">"</span></span> <span class=" pl-k">||</span> <span class=" pl-k">return</span> <span class=" pl-smi"> $? </span></div></div></div><div class=" child-of-line-628 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"> <span class=" pl-k">return</span> 0</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">
</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-c"><span class=" pl-c">#</span> args:</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-c"><span class=" pl-c">#</span> json_file - $1 </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"><span class=" pl-en">parse_globaljson_file_for_version</span>() {</div></div></div><div class=" child-of-line-654 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-c1">eval</span> <span class=" pl-smi"> $invocation </span></div></div></div><div class=" child-of-line-654 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">
</div></div></div><div class=" child-of-line-654 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"> <span class=" pl-k">local</span> json_file=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $1 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-654 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">if</span> [ <span class=" pl-k">!</span> <span class=" pl-k">-f</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $json_file </span><span class=" pl-pds">"</span></span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-654 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"> say_err <span class=" pl-s"><span class=" pl-pds">"</span>Unable to find <span class=" pl-cce">\`</span><span class=" pl-smi"> $json_file </span><span class=" pl-cce">\`</span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-654 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"> <span class=" pl-k">return</span> 1</div></div></div><div class=" child-of-line-654 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">fi</span></div></div></div><div class=" child-of-line-654 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">
</div></div></div><div class=" child-of-line-654 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"> sdk_section=<span class=" pl-s"><span class=" pl-pds"> $( </span>cat <span class = "pl-smi" >$json_file </span> <span class = "pl-k" >| </span> tr -d <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>\r <span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >| </span> awk <span class = "pl-s" ><span class = "pl-pds" >& #039;</span>/"sdk"/,/}/<span class="pl-pds">'</span></span><span class="pl-pds">)</span></span></div></div></div><div class="child-of-line-654 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"> <span class="pl-k">if</span> [ <span class="pl-k">-z</span> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$sdk_section</span><span class="pl-pds">"</span></span> ]<span class="pl-k">;</span> <span class="pl-k">then</span></div></div></div><div class="child-of-line-654 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"> say_err <span class="pl-s"><span class="pl-pds">"</span>Unable to parse the SDK node in <span class="pl-cce">\`</span><span class="pl-smi">$json_file</span><span class="pl-cce">\`</span><span class="pl-pds">"</span></span></div></div></div><div class="child-of-line-654 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> 1</div></div></div><div class="child-of-line-654 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"> <span class="pl-k">fi</span></div></div></div><div class="child-of-line-654 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">
</div></div></div><div class = "child-of-line-654 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" > sdk_list = <span class = "pl-s" ><span class = "pl-pds" >$( </span>echo <span class = "pl-smi" >$sdk_section </span> <span class = "pl-k" >| </span> awk -F<span class = "pl-s" ><span class = "pl-pds" >& quot; </span>[{}] <span class = "pl-pds" >& quot; </span></span> <span class = "pl-s" ><span class = "pl-pds" >& #039;</span>{print $2}<span class="pl-pds">'</span></span><span class="pl-pds">)</span></span></div></div></div><div class="child-of-line-654 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"> sdk_list=<span class="pl-smi">${sdk_list<span class="pl-k">//</span>[\" ]<span class="pl-k">/</span>}</span></div></div></div><div class="child-of-line-654 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"> sdk_list=<span class="pl-smi">${sdk_list<span class="pl-k">//</span>,<span class="pl-k">/</span><span class="pl-s"><span class="pl-pds">$'</span><span class="pl-cce">\n</span><span class="pl-pds">'</span></span>}</span></div></div></div><div class="child-of-line-654 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-line-number="673" style="position:relative">
</div></div></div><div class = "child-of-line-654 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC674" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "674" style = "position:relative" > <span class = "pl-k" >local</span> version_info = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-654 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC675" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "675" style = "position:relative" > <span class = "pl-k" >while</span> <span class = "pl-c1" >read</span> -r line<span class = "pl-k" >; </span> <span class = "pl-k" >do</span></div></div></div><div class = "child-of-line-654 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC676" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "676" style = "position:relative" > IFS = :</div></div></div><div class = "child-of-line-654 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC677" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "677" style = "position:relative" > <span class = "pl-k" >while</span> <span class = "pl-c1" >read</span> -r key value<span class = "pl-k" >; </span> <span class = "pl-k" >do</span></div></div></div><div class = "child-of-line-654 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-k" >if</span> [[ <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$key </span><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-k" >then</span></div></div></div><div class = "child-of-line-654 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" > version_info = <span class = "pl-smi" >$value </span></div></div></div><div class = "child-of-line-654 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" > <span class = "pl-k" >fi</span></div></div></div><div class = "child-of-line-654 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" >done</span> <span class = "pl-k" >& lt;& lt;& lt; </span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>$line <span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-654 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" > <span class = "pl-k" >done</span> <span class = "pl-k" >& lt;& lt;& lt; </span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>$sdk_list <span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-654 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" > <span class = "pl-k" >if</span> [ <span class = "pl-k" >-z</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$version_info </span><span class = "pl-pds" >& quot; </span></span> ] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-654 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC684" class = "react-file-line html-div" data-testid= "code-cel
</div></div></div><div class=" child-of-line-654 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-c1">unset</span> IFS<span class=" pl-k">;</span></div></div></div><div class=" child-of-line-654 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"> <span class=" pl-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $version_info </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-654 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"> <span class=" pl-k">return</span> 0</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">}</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">
</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-c"><span class=" pl-c">#</span> args:</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"><span class=" pl-c"><span class=" pl-c">#</span> azure_feed - $1 </span></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"><span class=" pl-c"><span class=" pl-c">#</span> channel - $2 </span></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-c"><span class=" pl-c">#</span> normalized_architecture - $3 </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-c"><span class=" pl-c">#</span> version - $4 </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-c"><span class=" pl-c">#</span> json_file - $5 </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-en">get_specific_version_from_version</span>() {</div></div></div><div class=" child-of-line-698 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"> <span class=" pl-c1">eval</span> <span class=" pl-smi"> $invocation </span></div></div></div><div class=" child-of-line-698 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">
</div></div></div><div class=" child-of-line-698 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-k">local</span> azure_feed=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $1 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-698 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"> <span class=" pl-k">local</span> channel=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $2 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-698 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">local</span> normalized_architecture=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $3 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-698 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-k">local</span> version=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-s"><span class=" pl-pds"> $( </span>to_lowercase <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$4 </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-698 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"> <span class=" pl-k">local</span> json_file=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $5 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-698 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=" child-of-line-698 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC708" class=" react-file-line html-div" data-testid=" code-cell" data-line-number=" 708" style=" position:relative"> <span class=" pl-k">if</span> [ <span class=" pl-k">-z</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $json_file </span><span class=" pl-pds">"</span></span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-698 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-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $version </span><span class=" pl-pds">"</span></span> <span class=" pl-k">==</span> <span class=" pl-s"><span class=" pl-pds">"</span>latest<span class=" pl-pds">"</span></span> ]]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-698 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">local</span> version_info</div></div></div><div class=" child-of-line-698 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"> version_info=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-s"><span class=" pl-pds"> $( </span>get_version_from_latestversion_file <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$azure_feed </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$channel </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$normalized_architecture </span><span class = "pl-pds" >& quot; </span></span> false<span class = "pl-pds" >) </span></span><span class=" pl-pds">"</span></span> <span class=" pl-k">||</span> <span class=" pl-k">return</span> 1</div></div></div><div class=" child-of-line-698 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"> say_verbose <span class=" pl-s"><span class=" pl-pds">"</span>get_specific_version_from_version: version_info=<span class=" pl-smi"> $version_info </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-698 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-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $version_info </span><span class=" pl-pds">"</span></span> <span class=" pl-k">|</span> get_version_from_latestversion_file_content</div></div></div><div class=" child-of-line-698 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-k">return</span> 0</div></div></div><div class=" child-of-line-698 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"> <span class=" pl-k">else</span></div></div></div><div class=" child-of-line-698 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="
</div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC727" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "727" style = "position:relative" ><span class = "pl-c" ><span class = "pl-c" >#</span> args:</span></div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC728" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "728" style = "position:relative" ><span class = "pl-c" ><span class = "pl-c" >#</span> azure_feed - $1 </span></div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC729" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "729" style = "position:relative" ><span class = "pl-c" ><span class = "pl-c" >#</span> channel - $2 </span></div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC730" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "730" style = "position:relative" ><span class = "pl-c" ><span class = "pl-c" >#</span> normalized_architecture - $3 </span></div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC731" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "731" style = "position:relative" ><span class = "pl-c" ><span class = "pl-c" >#</span> specific_version - $4 </span></div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC732" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "732" style = "position:relative" ><span class = "pl-c" ><span class = "pl-c" >#</span> normalized_os - $5 </span></div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC733" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "733" style = "position:relative" ><span class = "pl-en" >construct_download_link</span>( ) { </div></div></div><div class = "child-of-line-732 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" > <span class = "pl-c1" >eval</span> <span class = "pl-smi" >$invocation </span></div></div></div><div class = "child-of-line-732 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 = "child-of-line-732 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" >local</span> azure_feed = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$1 </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-732 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" > <span class = "pl-k" >local</span> channel = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$2 </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-732 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" > <span class = "pl-k" >local</span> normalized_architecture = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$3 </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-732 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" >local</span> specific_version = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >${ 4 <span class= "pl-k" >//</span>[ $' \t\r\n '] } </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-732 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" > <span class = "pl-k" >local</span> specific_product_version = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-s" ><span class = "pl-pds" >$( </span>get_specific_product_version <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$1 </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$4 </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-732 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" > <span class = "pl-k" >local</span> osname = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$5 </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-732 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" >
</div></div></div><div class = "child-of-line-732 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-k" >local</span> download_link = null</div></div></div><div class = "child-of-line-732 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-k" >if</span> [[ <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$runtime </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >== </span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>dotnet<span class = "pl-pds" >& quot; </span></span> ]] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-732 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" > download_link = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$azure_feed </span>/Runtime/<span class = "pl-smi" >$specific_version </span>/dotnet-runtime-<span class = "pl-smi" >$specific_product_version </span>-<span class = "pl-smi" >$osname </span>-<span class = "pl-smi" >$normalized_architecture </span>.tar.gz<span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-732 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" >elif</span> [[ <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$runtime </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >== </span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>aspnetcore<span class = "pl-pds" >& quot; </span></span> ]] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-732 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" > download_link = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$azure_feed </span>/aspnetcore/Runtime/<span class = "pl-smi" >$specific_version </span>/aspnetcore-runtime-<span class = "pl-smi" >$specific_product_version </span>-<span class = "pl-smi" >$osname </span>-<span class = "pl-smi" >$normalized_architecture </span>.tar.gz<span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-732 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" > <span class = "pl-k" >elif</span> [ <span class = "pl-k" >-z</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$runtime </span><span class = "pl-pds" >& quot; </span></span> ] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-732 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" > download_link = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$azure_feed </span>/Sdk/<span class = "pl-smi" >$specific_version </span>/dotnet-sdk-<span class = "pl-smi" >$specific_product_version </span>-<span class = "pl-smi" >$osname </span>-<span class = "pl-smi" >$normalized_architecture </span>.tar.gz<span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-732 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" >
</div></div></div><div class = "child-of-line-732 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC754" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "754" style = "position:relative" > <span class = "pl-c1" >echo</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$download_link </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-732 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC755" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "755" style = "position:relative" > <span class = "pl-k" >return</span> 0</div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC756" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "756" style = "position:relative" >} </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" >
</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" ><span class = "pl-c" ><span class = "pl-c" >#</span> args:</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" ><span class = "pl-c" ><span class = "pl-c" >#</span> azure_feed - $1 </span></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-c" ><span class = "pl-c" >#</span> specific_version - $2 </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-c" ><span class = "pl-c" >#</span> download link - $3 ( optional) </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-en">get_specific_product_version</span>() {</div></div></div><div class=" child-of-line-761 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"> <span class=" pl-c"><span class=" pl-c">#</span> If we find a 'productVersion.txt' at the root of any folder, we'll use its contents</span></div></div></div><div class=" child-of-line-761 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-c"><span class=" pl-c">#</span> to resolve the version of what's in the folder, superseding the specified version.</span></div></div></div><div class=" child-of-line-761 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"> <span class=" pl-c"><span class=" pl-c">#</span> if 'productVersion.txt' is missing but download link is already available, product version will be taken from download link</span></div></div></div><div class=" child-of-line-761 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"> <span class=" pl-c1">eval</span> <span class=" pl-smi"> $invocation </span></div></div></div><div class=" child-of-line-761 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">
</div></div></div><div class=" child-of-line-761 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"> <span class=" pl-k">local</span> azure_feed=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $1 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-761 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"> <span class=" pl-k">local</span> specific_version=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> ${ 2 <span class= "pl-k" >//</span>[ $' \t\r\n '] } </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-761 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">local</span> package_download_link=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-761 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"> <span class=" pl-k">if</span> [ <span class=" pl-smi"> $# </span> <span class=" pl-k">-gt</span> 2 ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-761 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"> <span class=" pl-k">local</span> package_download_link=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $3 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-761 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">fi</span></div></div></div><div class=" child-of-line-761 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">local</span> specific_product_version=null</div></div></div><div class=" child-of-line-761 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=" child-of-line-761 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-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=" child-of-line-761 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"> <span class=" pl-k">local</span> download_links=(<span class=" pl-s"><span class=" pl-pds"> $( </span>get_specific_product_version_url <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$azure_feed </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$specific_version </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-c1" >true</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$package_download_link </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span></div></div></div><div class=" child-of-line-761 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"> <span class=" pl-s"><span class=" pl-pds"> $( </span>get_specific_product_version_url <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$azure_feed </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$specific_version </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-c1" >false</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$package_download_link </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span>)</div></div></div><div class=" child-of-line-761 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">
</div></div></div><div class=" child-of-line-761 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">for</span> <span class=" pl-smi">download_link</span> <span class=" pl-k">in</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> ${ download_links [@] } </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-761 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-k">do</span></div></div></div><div class=" child-of-line-761 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"> say_verbose <span class=" pl-s"><span class=" pl-pds">"</span>Checking for the existence of <span class=" pl-smi"> $download_link </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-761 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">
</div></div></div><div class=" child-of-line-761 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-k">if</span> machine_has <span class=" pl-s"><span class=" pl-pds">"</span>curl<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-761 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">then</span></div></div></div><div class=" child-of-line-761 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"> <span class=" pl-k">if</span> <span class=" pl-k">!</span> specific_product_version=<span class=" pl-s"><span class=" pl-pds"> $( </span>curl -s --fail <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >${ download_link }${ feed_credential } </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >2& gt;& amp; 1</span><span class = "pl-pds" >) </span></span><span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-761 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">continue</span></div></div></div><div class=" child-of-line-761 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">else</span></div></div></div><div class=" child-of-line-761 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"> <span class=" pl-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> ${ specific_product_version <span class= "pl-k" >//</span>[ $' \t\r\n '] } </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-761 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"> <span class=" pl-k">return</span> 0</div></div></div><div class=" child-of-line-761 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"> <span class=" pl-k">fi</span></div></div></div><div class=" child-of-line-761 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">
</div></div></div><div class=" child-of-line-761 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"> <span class=" pl-k">elif</span> machine_has <span class=" pl-s"><span class=" pl-pds">"</span>wget<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-761 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"> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-761 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"> specific_product_version=<span class=" pl-s"><span class=" pl-pds"> $( </span>wget -qO- <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >${ download_link }${ feed_credential } </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >2& gt;& amp; 1</span><span class = "pl-pds" >) </span></span></div></div></div><div class=" child-of-line-761 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"> <span class=" pl-k">if</span> [ <span class=" pl-smi"> $? </span> <span class=" pl-k">=</span> 0 ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-761 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-c1">echo</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> ${ specific_product_version <span class= "pl-k" >//</span>[ $' \t\r\n '] } </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-761 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"> <span class=" pl-k">return</span> 0</div></div></div><div class=" child-of-line-761 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"> <span class=" pl-k">fi</span></div></div></div><div class=" child-of-line-761 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">fi</span></div></div></div><div class=" child-of-line-761 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-k">done</span></div></div></div><div class=" child-of-line-761 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"> </div></div></div><div class=" child-of-line-761 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"> <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=" child-of-line-761 react-code-text react-code-line-contents" style=" min-height:auto"><div><div id=" LC804" class=" react-file-line html-div" data-t
</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-c"><span class=" pl-c">#</span> args:</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-c"><span class=" pl-c">#</span> azure_feed - $1 </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"><span class=" pl-c"><span class=" pl-c">#</span> specific_version - $2 </span></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"><span class=" pl-c"><span class=" pl-c">#</span> is_flattened - $3 </span></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-c"><span class=" pl-c">#</span> download link - $4 (optional)</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"><span class=" pl-en">get_specific_product_version_url</span>() {</div></div></div><div class=" child-of-line-814 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"> <span class=" pl-c1">eval</span> <span class=" pl-smi"> $invocation </span></div></div></div><div class=" child-of-line-814 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">
</div></div></div><div class=" child-of-line-814 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"> <span class=" pl-k">local</span> azure_feed=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $1 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-814 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"> <span class=" pl-k">local</span> specific_version=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $2 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-814 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-k">local</span> is_flattened=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $3 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-814 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">local</span> package_download_link=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-814 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-k">if</span> [ <span class=" pl-smi"> $# </span> <span class=" pl-k">-gt</span> 3 ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-814 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">local</span> package_download_link=<span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $4 </span><span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-814 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-k">fi</span></div></div></div><div class=" child-of-line-814 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">
</div></div></div><div class=" child-of-line-814 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-k">local</span> pvFileName=<span class=" pl-s"><span class=" pl-pds">"</span>productVersion.txt<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-814 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"> <span class=" pl-k">if</span> [ <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $is_flattened </span><span class=" pl-pds">"</span></span> <span class=" pl-k">=</span> <span class=" pl-c1">true</span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-814 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"> <span class=" pl-k">if</span> [ <span class=" pl-k">-z</span> <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $runtime </span><span class=" pl-pds">"</span></span> ]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-814 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"> pvFileName=<span class=" pl-s"><span class=" pl-pds">"</span>sdk-productVersion.txt<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-814 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"> <span class=" pl-k">elif</span> [[ <span class=" pl-s"><span class=" pl-pds">"</span><span class=" pl-smi"> $runtime </span><span class=" pl-pds">"</span></span> <span class=" pl-k">==</span> <span class=" pl-s"><span class=" pl-pds">"</span>dotnet<span class=" pl-pds">"</span></span> ]]<span class=" pl-k">;</span> <span class=" pl-k">then</span></div></div></div><div class=" child-of-line-814 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"> pvFileName=<span class=" pl-s"><span class=" pl-pds">"</span>runtime-productVersion.txt<span class=" pl-pds">"</span></span></div></div></div><div class=" child-of-line-814 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"> <span class=" pl-k">else</span></div></div></div><div class=" child-of-line-814 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"> pvFileName=<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=" child-of-line-814 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"> <span class=" pl-k">fi</span></div></div></div><div class=" child-of-line-814 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"> <span class=" pl-k">fi</span></div></div></div><div class=" child-of-line-8
</div></div></div><div class = "child-of-line-814 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" > <span class = "pl-k" >local</span> download_link = null</div></div></div><div class = "child-of-line-814 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 = "child-of-line-814 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-k" >if</span> [ <span class = "pl-k" >-z</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$package_download_link </span><span class = "pl-pds" >& quot; </span></span> ] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-814 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-k" >if</span> [[ <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$runtime </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >== </span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>dotnet<span class = "pl-pds" >& quot; </span></span> ]] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-814 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" > download_link = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$azure_feed </span>/Runtime/<span class = "pl-smi" >$specific_version </span>/<span class = "pl-smi" >${ pvFileName } </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-814 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-k" >elif</span> [[ <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$runtime </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >== </span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>aspnetcore<span class = "pl-pds" >& quot; </span></span> ]] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-814 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" > download_link = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$azure_feed </span>/aspnetcore/Runtime/<span class = "pl-smi" >$specific_version </span>/<span class = "pl-smi" >${ pvFileName } </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-814 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-k" >elif</span> [ <span class = "pl-k" >-z</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$runtime </span><span class = "pl-pds" >& quot; </span></span> ] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-814 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" > download_link = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$azure_feed </span>/Sdk/<span class = "pl-smi" >$specific_version </span>/<span class = "pl-smi" >${ pvFileName } </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-814 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-k" >else</span></div></div></div><div class = "child-of-line-814 react-code-text react-code-line-contents" st
</div></div></div><div class = "child-of-line-814 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC853" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "853" style = "position:relative" > say_verbose <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>Constructed productVersion link: <span class = "pl-smi" >$download_link </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-814 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC854" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "854" style = "position:relative" > <span class = "pl-c1" >echo</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$download_link </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-814 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" > <span class = "pl-k" >return</span> 0</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" >} </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" >
</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-c" ><span class = "pl-c" >#</span> args:</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" ><span class = "pl-c" ><span class = "pl-c" >#</span> download link - $1 </span></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-c" ><span class = "pl-c" >#</span> specific version - $2 </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" ><span class = "pl-en" >get_product_specific_version_from_download_link</span>() </div></div></div><div class = "child-of-line-860 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" >{ </div></div></div><div class = "child-of-line-860 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-c1" >eval</span> <span class = "pl-smi" >$invocation </span></div></div></div><div class = "child-of-line-860 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" >
</div></div></div><div class = "child-of-line-860 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-k" >local</span> download_link = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$1 </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-860 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-k" >local</span> specific_version = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$2 </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-860 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-k" >local</span> specific_product_version = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-pds" >& quot; </span></span> </div></div></div><div class = "child-of-line-860 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" >
</div></div></div><div class = "child-of-line-860 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-k" >if</span> [ <span class = "pl-k" >-z</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$download_link </span><span class = "pl-pds" >& quot; </span></span> ] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-860 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC870" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "870" style = "position:relative" > <span class = "pl-c1" >echo</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$specific_version </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-860 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC871" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "871" style = "position:relative" > <span class = "pl-k" >return</span> 0</div></div></div><div class = "child-of-line-860 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC872" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "872" style = "position:relative" > <span class = "pl-k" >fi</span></div></div></div><div class = "child-of-line-860 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC873" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "873" style = "position:relative" >
</div></div></div><div class = "child-of-line-860 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC874" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "874" style = "position:relative" > <span class = "pl-c" ><span class = "pl-c" >#</span>get filename</span></div></div></div><div class = "child-of-line-860 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC875" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "875" style = "position:relative" > filename = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >${ download_link <span class= "pl-k" >##*/</span> } </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-860 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC876" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "876" style = "position:relative" >
</div></div></div><div class = "child-of-line-860 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC877" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "877" 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 = "child-of-line-860 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC878" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "878" style = "position:relative" > <span class = "pl-c" ><span class = "pl-c" >#</span>for filename & #039;dotnet-sdk-3.1.404-linux-x64.tar.gz': the product version is 3.1.404</span></div></div></div><div class="child-of-line-860 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC879" class="react-file-line html-div" data-testid="code-cell" data-line-number="879" style="position:relative"> IFS=<span class="pl-s"><span class="pl-pds">'</span>-<span class="pl-pds">'</span></span></div></div></div><div class="child-of-line-860 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC880" class="react-file-line html-div" data-testid="code-cell" data-line-number="880" style="position:relative"> <span class="pl-c1">read</span> -ra filename_elems <span class="pl-k"><<<</span> <span class="pl-s"><span class="pl-pds">"</span>$filename<span class="pl-pds">"</span></span></div></div></div><div class="child-of-line-860 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC881" class="react-file-line html-div" data-testid="code-cell" data-line-number="881" style="position:relative"> count=<span class="pl-smi">${<span class="pl-k">#</span>filename_elems[@]}</span></div></div></div><div class="child-of-line-860 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC882" class="react-file-line html-div" data-testid="code-cell" data-line-number="882" style="position:relative"> <span class="pl-k">if</span> [[ <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$count</span><span class="pl-pds">"</span></span> <span class="pl-k">-gt</span> 2 ]]<span class="pl-k">;</span> <span class="pl-k">then</span></div></div></div><div class="child-of-line-860 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC883" class="react-file-line html-div" data-testid="code-cell" data-line-number="883" style="position:relative"> specific_product_version=<span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">${filename_elems[2]}</span><span class="pl-pds">"</span></span></div></div></div><div class="child-of-line-860 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC884" class="react-file-line html-div" data-testid="code-cell" data-line-number="884" style="position:relative"> <span class="pl-k">else</span></div></div></div><div class="child-of-line-860 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC885" class="react-file-line html-div" data-testid="code-cell" data-line-number="885" style="position:relative"> specific_product_version=<span class="pl-smi">$specific_version</span></div></div></div><div class="child-of-line-860 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">fi</span></div></div></div><div class="child-of-line-860 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-c1">unset</span> IFS<span class="pl-k">;</span></div></div></div><div class="child-of-line-860 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC888" class="react-f
</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" ><span class = "pl-c" ><span class = "pl-c" >#</span> args:</span></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-c" ><span class = "pl-c" >#</span> azure_feed - $1 </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" ><span class = "pl-c" ><span class = "pl-c" >#</span> channel - $2 </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-c" ><span class = "pl-c" >#</span> normalized_architecture - $3 </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-c" ><span class = "pl-c" >#</span> specific_version - $4 </span></div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC897" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "897" style = "position:relative" ><span class = "pl-en" >construct_legacy_download_link</span>() { </div></div></div><div class = "child-of-line-896 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC898" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "898" style = "position:relative" > <span class = "pl-c1" >eval</span> <span class = "pl-smi" >$invocation </span></div></div></div><div class = "child-of-line-896 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" >
</div></div></div><div class = "child-of-line-896 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" > <span class = "pl-k" >local</span> azure_feed = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$1 </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-896 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" >local</span> channel = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$2 </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-896 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-k" >local</span> normalized_architecture = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$3 </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-896 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-k" >local</span> specific_version = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >${ 4 <span class= "pl-k" >//</span>[ $' \t\r\n '] } </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-896 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" >
</div></div></div><div class = "child-of-line-896 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-k" >local</span> distro_specific_osname</div></div></div><div class = "child-of-line-896 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" > distro_specific_osname = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-s" ><span class = "pl-pds" >$( </span>get_legacy_os_name<span class = "pl-pds" >) </span></span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >|| </span> <span class = "pl-k" >return</span> 1</div></div></div><div class = "child-of-line-896 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 = "child-of-line-896 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" > <span class = "pl-k" >local</span> legacy_download_link = null</div></div></div><div class = "child-of-line-896 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" > <span class = "pl-k" >if</span> [[ <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$runtime </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >== </span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>dotnet<span class = "pl-pds" >& quot; </span></span> ]] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-896 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" > legacy_download_link = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$azure_feed </span>/Runtime/<span class = "pl-smi" >$specific_version </span>/dotnet-<span class = "pl-smi" >$distro_specific_osname </span>-<span class = "pl-smi" >$normalized_architecture </span>.<span class = "pl-smi" >$specific_version </span>.tar.gz<span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-896 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" >elif</span> [ <span class = "pl-k" >-z</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$runtime </span><span class = "pl-pds" >& quot; </span></span> ] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-896 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" > legacy_download_link = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$azure_feed </span>/Sdk/<span class = "pl-smi" >$specific_version </span>/dotnet-dev-<span class = "pl-smi" >$distro_specific_osname </span>-<span class = "pl-smi" >$normalized_architecture </span>.<span class = "pl-smi" >$specific_version </span>.tar.gz<span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-896 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" > <span class = "pl-k" >else</span></div></div></div><div class = "child-of-line-896 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" > <span class = "pl-k" >return</span> 1</div></div></div><div class = "child-of-line-896 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" > <span class = "pl-k" >fi</span></div></div></div><div class = "child-of-line-896 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 = "child-of-line-896 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-c1" >echo</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$legacy_download_link </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-896 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" >return</span> 0</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" >} </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" >
</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" ><span class = "pl-en" >get_user_install_path</span>() { </div></div></div><div class = "child-of-line-920 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" > <span class = "pl-c1" >eval</span> <span class = "pl-smi" >$invocation </span></div></div></div><div class = "child-of-line-920 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" >
</div></div></div><div class = "child-of-line-920 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-k" >!</span> <span class = "pl-k" >-z</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >${ DOTNET_INSTALL_DIR <span class= "pl-k" > :- </span> } </span><span class = "pl-pds" >& quot; </span></span> ] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-920 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" > <span class = "pl-c1" >echo</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$DOTNET_INSTALL_DIR </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-920 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" > <span class = "pl-k" >else</span></div></div></div><div class = "child-of-line-920 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC927" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "927" style = "position:relative" > <span class = "pl-c1" >echo</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$HOME </span>/.dotnet<span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-920 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC928" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "928" style = "position:relative" > <span class = "pl-k" >fi</span></div></div></div><div class = "child-of-line-920 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC929" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "929" style = "position:relative" > <span class = "pl-k" >return</span> 0</div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC930" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "930" style = "position:relative" >} </div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC931" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "931" style = "position:relative" >
</div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC932" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "932" style = "position:relative" ><span class = "pl-c" ><span class = "pl-c" >#</span> args:</span></div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC933" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "933" style = "position:relative" ><span class = "pl-c" ><span class = "pl-c" >#</span> install_dir - $1 </span></div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC934" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "934" style = "position:relative" ><span class = "pl-en" >resolve_installation_path</span>() { </div></div></div><div class = "child-of-line-933 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC935" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "935" style = "position:relative" > <span class = "pl-c1" >eval</span> <span class = "pl-smi" >$invocation </span></div></div></div><div class = "child-of-line-933 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC936" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "936" style = "position:relative" >
</div></div></div><div class = "child-of-line-933 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC937" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "937" style = "position:relative" > <span class = "pl-k" >local</span> install_dir = <span class = "pl-smi" >$1 </span></div></div></div><div class = "child-of-line-933 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC938" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "938" style = "position:relative" > <span class = "pl-k" >if</span> [ <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$install_dir </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >= </span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>& lt; auto& gt; <span class = "pl-pds" >& quot; </span></span> ] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-933 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC939" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "939" style = "position:relative" > <span class = "pl-k" >local</span> user_install_path = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-s" ><span class = "pl-pds" >$( </span>get_user_install_path<span class = "pl-pds" >) </span></span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-933 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" > say_verbose <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>resolve_installation_path: user_install_path = <span class = "pl-smi" >$user_install_path </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-933 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-c1" >echo</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$user_install_path </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-933 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" >return</span> 0</div></div></div><div class = "child-of-line-933 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-k" >fi</span></div></div></div><div class = "child-of-line-933 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" >
</div></div></div><div class = "child-of-line-933 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" > <span class = "pl-c1" >echo</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$install_dir </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-933 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" >return</span> 0</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" >} </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" ><span class = "pl-c" ><span class = "pl-c" >#</span> args:</span></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-c" ><span class = "pl-c" >#</span> relative_or_absolute_path - $1 </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" ><span class = "pl-en" >get_absolute_path</span>() { </div></div></div><div class = "child-of-line-950 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC952" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "952" style = "position:relative" > <span class = "pl-c1" >eval</span> <span class = "pl-smi" >$invocation </span></div></div></div><div class = "child-of-line-950 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC953" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "953" style = "position:relative" >
</div></div></div><div class = "child-of-line-950 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC954" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "954" style = "position:relative" > <span class = "pl-k" >local</span> relative_or_absolute_path = <span class = "pl-smi" >$1 </span></div></div></div><div class = "child-of-line-950 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-c1" >echo</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-s" ><span class = "pl-pds" >$( </span>cd <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-s" ><span class = "pl-pds" >$( </span>dirname <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$1 </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >& amp;& amp; </span> <span class = "pl-c1" >pwd</span> -P<span class = "pl-pds" >) </span></span>/<span class = "pl-s" ><span class = "pl-pds" >$( </span>basename <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$1 </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-950 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-k" >return</span> 0</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" >} </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" >
</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-c" ><span class = "pl-c" >#</span> args:</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" ><span class = "pl-c" ><span class = "pl-c" >#</span> override - $1 ( boolean, true or false ) </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-en" >get_cp_options</span>() { </div></div></div><div class = "child-of-line-960 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" > <span class = "pl-c1" >eval</span> <span class = "pl-smi" >$invocation </span></div></div></div><div class = "child-of-line-960 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" >
</div></div></div><div class = "child-of-line-960 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" > <span class = "pl-k" >local</span> override = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$1 </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-960 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC965" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "965" style = "position:relative" > <span class = "pl-k" >local</span> override_switch = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-960 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC966" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "966" style = "position:relative" >
</div></div></div><div class = "child-of-line-960 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC967" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "967" style = "position:relative" > <span class = "pl-k" >if</span> [ <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$override </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-k" >= </span> <span class = "pl-c1" >false</span> ] <span class = "pl-k" >; </span> <span class = "pl-k" >then</span></div></div></div><div class = "child-of-line-960 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC968" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "968" style = "position:relative" > override_switch = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span>-n<span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-960 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC969" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "969" style = "position:relative" >
</div></div></div><div class = "child-of-line-960 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC970" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "970" style = "position:relative" > <span class = "pl-c" ><span class = "pl-c" >#</span> create temporary files to check if & #039;cp -u' is supported</span></div></div></div><div class="child-of-line-960 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC971" class="react-file-line html-div" data-testid="code-cell" data-line-number="971" style="position:relative"> tmp_dir=<span class="pl-s"><span class="pl-pds">"</span><span class="pl-s"><span class="pl-pds">$(</span>mktemp -d<span class="pl-pds">)</span></span><span class="pl-pds">"</span></span></div></div></div><div class="child-of-line-960 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"> tmp_file=<span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$tmp_dir</span>/testfile<span class="pl-pds">"</span></span></div></div></div><div class="child-of-line-960 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"> tmp_file2=<span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$tmp_dir</span>/testfile2<span class="pl-pds">"</span></span></div></div></div><div class="child-of-line-960 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 = "child-of-line-960 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" > touch <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$tmp_file </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-960 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" >
</div></div></div><div class = "child-of-line-960 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" > <span class = "pl-c" ><span class = "pl-c" >#</span> use -u instead of -n if it& #039;s available</span></div></div></div><div class="child-of-line-960 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-k">if</span> cp -u <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$tmp_file</span><span class="pl-pds">"</span></span> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$tmp_file2</span><span class="pl-pds">"</span></span> <span class="pl-k">2></span>/dev/null<span class="pl-k">;</span> <span class="pl-k">then</span></div></div></div><div class="child-of-line-960 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"> override_switch=<span class="pl-s"><span class="pl-pds">"</span>-u<span class="pl-pds">"</span></span></div></div></div><div class="child-of-line-960 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-k">fi</span></div></div></div><div class="child-of-line-960 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC981" class="react-file-line html-div" data-testid="code-cell" data-line-number="981" style="position:relative">
</div></div></div><div class = "child-of-line-960 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC982" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "982" style = "position:relative" > <span class = "pl-c" ><span class = "pl-c" >#</span> clean up</span></div></div></div><div class = "child-of-line-960 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC983" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "983" style = "position:relative" > rm -f <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$tmp_file </span><span class = "pl-pds" >& quot; </span></span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$tmp_file2 </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-960 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC984" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "984" style = "position:relative" > rm -rf <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$tmp_dir </span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-960 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC985" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "985" style = "position:relative" > <span class = "pl-k" >fi</span></div></div></div><div class = "child-of-line-960 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" >
</div></div></div><div class = "child-of-line-960 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-c1" >echo</span> <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$override_switch </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 = "LC988" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "988" style = "position:relative" >} </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" ><span class = "pl-c" ><span class = "pl-c" >#</span> args:</span></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-c" ><span class = "pl-c" >#</span> input_files - stdin</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-c" ><span class = "pl-c" >#</span> root_path - $1 </span></div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC993" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "993" style = "position:relative" ><span class = "pl-c" ><span class = "pl-c" >#</span> out_path - $2 </span></div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC994" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "994" style = "position:relative" ><span class = "pl-c" ><span class = "pl-c" >#</span> override - $3 </span></div></div></div><div class = "react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC995" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "995" style = "position:relative" ><span class = "pl-en" >copy_files_or_dirs_from_list</span>() { </div></div></div><div class = "child-of-line-994 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC996" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "996" style = "position:relative" > <span class = "pl-c1" >eval</span> <span class = "pl-smi" >$invocation </span></div></div></div><div class = "child-of-line-994 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC997" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "997" style = "position:relative" >
</div></div></div><div class = "child-of-line-994 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC998" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "998" style = "position:relative" > <span class = "pl-k" >local</span> root_path = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-s" ><span class = "pl-pds" >$( </span>remove_trailing_slash <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$1 </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-994 react-code-text react-code-line-contents" style = "min-height:auto" ><div><div id = "LC999" class = "react-file-line html-div" data-testid= "code-cell" data-line-number= "999" style = "position:relative" > <span class = "pl-k" >local</span> out_path = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-s" ><span class = "pl-pds" >$( </span>remove_trailing_slash <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$2 </span><span class = "pl-pds" >& quot; </span></span><span class = "pl-pds" >) </span></span><span class = "pl-pds" >& quot; </span></span></div></div></div><div class = "child-of-line-994 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-k" >local</span> override = <span class = "pl-s" ><span class = "pl-pds" >& quot; </span><span class = "pl-smi" >$3 </span><span class = "pl-pds" >& quot; </span></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.sh" >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>