Files
nexus/sreweekly/articles/29/03-new-high-availability-checklist-now-available-azure.html
2026-09-12 17:23:01 +08:00

2429 lines
216 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en-US" theme="light">
<head>
<meta charset="UTF-8">
<script>
// Initialize theme from localStorage or system preference
let theme = localStorage.getItem('theme') || (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
document.documentElement.setAttribute('theme', theme);
const metaTag = document.createElement('meta');
metaTag.setAttribute('name', 'awa-ver');
metaTag.content = theme;
document.head.appendChild(metaTag);
isDarkTheme = theme === 'dark';
</script>
<style id="devblogs-reveal">
/* The theme is already set synchronously on <html> above, so the legacy body-hide (visibility:hidden in the deferred theme stylesheet) is unnecessary and blocks the LCP paint; force the page visible immediately via an inline <style> — unlike a <script>, this is not gated on external stylesheet loads. */
html body { visibility: visible !important; opacity: 1 !important; }
</style>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="awa-pageType" content="post" />
<meta name="awa-product" content="Azure Government" />
<meta name="awa-asst" content="https://devblogs.microsoft.com/azuregov/?p=805" />
<meta name="awa-xtag" content="High Availability">
<meta name="awa-xtopic" content="Announcements, portalpreview, Resiliency">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>New high availability checklist now available - Azure Government</title>
<meta name="mobile-web-app-capable" content="yes">
<meta name="color-scheme" content="dark light">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="Azure Government - Updates for building solutions across Microsoft&#039;s Clouds for Government">
<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="pingback" href="https://devblogs.microsoft.com/azuregov/xmlrpc.php">
<!-- [Begin] JSLL SHIM (1DS) domain prefetch -->
<link rel="preconnect" href="//js.monitor.azure.com" crossorigin>
<link rel="preconnect" href="//browser.events.data.microsoft.com" crossorigin>
<!-- [END] JSLL SHIM (1DS) domain prefetch -->
<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
<!-- This site is optimized with the Yoast SEO Premium plugin v28.3 (Yoast SEO v28.3) - https://yoast.com/product/yoast-seo-premium-wordpress/ -->
<meta name="description" content="We’re happy to announce that we’ve released a new high availability checklist to help you increase the resiliency and availability of your applications in" />
<link rel="canonical" href="https://devblogs.microsoft.com/azuregov/new-high-availability-checklist-now-available/" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="article" />
<meta property="og:title" content="New high availability checklist now available - Azure Government" />
<meta property="og:description" content="We’re happy to announce that we’ve released a new high availability checklist to help you increase the resiliency and availability of your applications in" />
<meta property="og:url" content="https://devblogs.microsoft.com/azuregov/new-high-availability-checklist-now-available/" />
<meta property="og:site_name" content="Azure Government" />
<meta property="article:published_time" content="2016-06-30T16:00:10+00:00" />
<meta property="og:image" content="https://devblogs.microsoft.com/azuregov/wp-content/uploads/sites/43/2021/04/Slide1.jpg" />
<meta property="og:image:width" content="1056" />
<meta property="og:image:height" content="816" />
<meta property="og:image:type" content="image/jpeg" />
<meta name="author" content="Adam Glick" />
<meta name="twitter:card" content="summary_large_image" />
<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/devblogs.microsoft.com\/azuregov\/new-high-availability-checklist-now-available\/#article","isPartOf":{"@id":"https:\/\/devblogs.microsoft.com\/azuregov\/new-high-availability-checklist-now-available\/"},"author":{"name":"Adam Glick","@id":"https:\/\/devblogs.microsoft.com\/azuregov\/#\/schema\/person\/092215abd784de968c0073f101c10faf"},"headline":"New high availability checklist now available","datePublished":"2016-06-30T16:00:10+00:00","mainEntityOfPage":{"@id":"https:\/\/devblogs.microsoft.com\/azuregov\/new-high-availability-checklist-now-available\/"},"wordCount":297,"commentCount":0,"image":{"@id":"https:\/\/devblogs.microsoft.com\/azuregov\/new-high-availability-checklist-now-available\/#primaryimage"},"thumbnailUrl":"https:\/\/devblogs.microsoft.com\/azuregov\/wp-content\/uploads\/sites\/43\/2021\/04\/Slide1.jpg","keywords":["High Availability"],"articleSection":["Announcements","portalpreview","Resiliency"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/devblogs.microsoft.com\/azuregov\/new-high-availability-checklist-now-available\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/devblogs.microsoft.com\/azuregov\/new-high-availability-checklist-now-available\/","url":"https:\/\/devblogs.microsoft.com\/azuregov\/new-high-availability-checklist-now-available\/","name":"New high availability checklist now available - Azure Government","isPartOf":{"@id":"https:\/\/devblogs.microsoft.com\/azuregov\/#website"},"primaryImageOfPage":{"@id":"https:\/\/devblogs.microsoft.com\/azuregov\/new-high-availability-checklist-now-available\/#primaryimage"},"image":{"@id":"https:\/\/devblogs.microsoft.com\/azuregov\/new-high-availability-checklist-now-available\/#primaryimage"},"thumbnailUrl":"https:\/\/devblogs.microsoft.com\/azuregov\/wp-content\/uploads\/sites\/43\/2021\/04\/Slide1.jpg","datePublished":"2016-06-30T16:00:10+00:00","author":{"@id":"https:\/\/devblogs.microsoft.com\/azuregov\/#\/schema\/person\/092215abd784de968c0073f101c10faf"},"description":"We’re happy to announce that we’ve released a new high availability checklist to help you increase the resiliency and availability of your applications in","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/devblogs.microsoft.com\/azuregov\/new-high-availability-checklist-now-available\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/devblogs.microsoft.com\/azuregov\/new-high-availability-checklist-now-available\/#primaryimage","url":"https:\/\/devblogs.microsoft.com\/azuregov\/wp-content\/uploads\/sites\/43\/2021\/04\/Slide1.jpg","contentUrl":"https:\/\/devblogs.microsoft.com\/azuregov\/wp-content\/uploads\/sites\/43\/2021\/04\/Slide1.jpg","width":1056,"height":816,"caption":"Image Slide1"},{"@type":"WebSite","@id":"https:\/\/devblogs.microsoft.com\/azuregov\/#website","url":"https:\/\/devblogs.microsoft.com\/azuregov\/","name":"Azure Government","description":"Updates for building solutions across Microsoft&#039;s Clouds for Government","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/devblogs.microsoft.com\/azuregov\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/devblogs.microsoft.com\/azuregov\/#\/schema\/person\/092215abd784de968c0073f101c10faf","name":"Adam Glick","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3fdcbf9c4c8414d6a8ccc664998419aa?s=96&#038;r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3fdcbf9c4c8414d6a8ccc664998419aa?s=96&#038;r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3fdcbf9c4c8414d6a8ccc664998419aa?s=96&#038;r=g","caption":"Adam Glick"},"url":"https:\/\/devblogs.microsoft.com\/azuregov\/author\/mobileglick\/"}]}</script>
<!-- / Yoast SEO Premium plugin. -->
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://devblogs.microsoft.com/azuregov/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdevblogs.microsoft.com%2Fazuregov%2Fnew-high-availability-checklist-now-available%2F" />
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://devblogs.microsoft.com/azuregov/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdevblogs.microsoft.com%2Fazuregov%2Fnew-high-availability-checklist-now-available%2F&#038;format=xml" />
<style id="wp-img-auto-sizes-contain-inline-css">
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
</style>
<style id="wp-emoji-styles-inline-css">
img.wp-smiley, img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 0.07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
/*# sourceURL=wp-emoji-styles-inline-css */
</style>
<style id="wp-block-library-inline-css">
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
</style>
<link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='mpp_gutenberg-css' href='https://devblogs.microsoft.com/azuregov/wp-content/plugins/metronet-profile-picture/dist/blocks.style.build.css?ver=2.6.4' media='all' />
<noscript><link rel='stylesheet' id='mpp_gutenberg-css' href='https://devblogs.microsoft.com/azuregov/wp-content/plugins/metronet-profile-picture/dist/blocks.style.build.css?ver=2.6.4' media='all' />
</noscript><link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='devblogs-lightbox-css-css' href='https://devblogs.microsoft.com/azuregov/wp-content/plugins/devblogs-lightbox/assets/css/lightbox.min.css?ver=1770924660' media='all' />
<noscript><link rel='stylesheet' id='devblogs-lightbox-css-css' href='https://devblogs.microsoft.com/azuregov/wp-content/plugins/devblogs-lightbox/assets/css/lightbox.min.css?ver=1770924660' media='all' />
</noscript><link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='newsletter-css' href='https://devblogs.microsoft.com/azuregov/wp-content/plugins/newsletter/style.css?ver=9.3.5' media='all' />
<noscript><link rel='stylesheet' id='newsletter-css' href='https://devblogs.microsoft.com/azuregov/wp-content/plugins/newsletter/style.css?ver=9.3.5' media='all' />
</noscript><link rel='stylesheet' id='newsletter-country-sync-css-css' href='https://devblogs.microsoft.com/azuregov/wp-content/plugins/newsletter-country-sync/css/newsletter-style.css?ver=1770924660' media='all' />
<link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='devblogs-evo-styles-css' href='https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/css/theme.min.css?ver=1.4.0.1788284719' media='all' />
<noscript><link rel='stylesheet' id='devblogs-evo-styles-css' href='https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/css/theme.min.css?ver=1.4.0.1788284719' media='all' />
</noscript><link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='lite-yt-embed-css' href='https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/css/lite-yt-embed.css?ver=0.3.8' media='all' />
<noscript><link rel='stylesheet' id='lite-yt-embed-css' href='https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/css/lite-yt-embed.css?ver=0.3.8' media='all' />
</noscript><link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='fabric-icons-css' href='https://devblogs.microsoft.com/azuregov/wp-content/plugins/fabric-icon-manager/assets/css/fabric-icons.css?ver=1699358813' media='all' />
<noscript><link rel='stylesheet' id='fabric-icons-css' href='https://devblogs.microsoft.com/azuregov/wp-content/plugins/fabric-icon-manager/assets/css/fabric-icons.css?ver=1699358813' media='all' />
</noscript><link rel='stylesheet' id='dev-comments-evo-style-css' href='https://devblogs.microsoft.com/azuregov/wp-content/plugins/devblogs-comments-evo/admin/css/simplecomments.min.css?ver=1783529315' media='all' />
<link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='dashicons-css' href='https://devblogs.microsoft.com/azuregov/wp-includes/css/dashicons.min.css' media='all' />
<noscript><link rel='stylesheet' id='dashicons-css' href='https://devblogs.microsoft.com/azuregov/wp-includes/css/dashicons.min.css' media='all' />
</noscript><link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='editor-buttons-css' href='https://devblogs.microsoft.com/azuregov/wp-includes/css/editor.min.css' media='all' />
<noscript><link rel='stylesheet' id='editor-buttons-css' href='https://devblogs.microsoft.com/azuregov/wp-includes/css/editor.min.css' media='all' />
</noscript><link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='block-custom-css' href='https://devblogs.microsoft.com/azuregov/wp-content/plugins/devblogs-blocks/assets/block-custom.css' media='all' />
<noscript><link rel='stylesheet' id='block-custom-css' href='https://devblogs.microsoft.com/azuregov/wp-content/plugins/devblogs-blocks/assets/block-custom.css' media='all' />
</noscript><link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'"id='highlight-css-css' href='https://devblogs.microsoft.com/azuregov/wp-content/plugins/devblogs-blocks/assets/highlight.min.css' media='all' />
<noscript><link rel='stylesheet'id='highlight-css-css' href='https://devblogs.microsoft.com/azuregov/wp-content/plugins/devblogs-blocks/assets/highlight.min.css' media='all' />
</noscript><script type="text/javascript">
window._nslDOMReady = (function () {
const executedCallbacks = new Set();
return function (callback) {
/**
* Third parties might dispatch DOMContentLoaded events, so we need to ensure that we only run our callback once!
*/
if (executedCallbacks.has(callback)) return;
const wrappedCallback = function () {
if (executedCallbacks.has(callback)) return;
executedCallbacks.add(callback);
callback();
};
if (document.readyState === "complete" || document.readyState === "interactive") {
wrappedCallback();
} else {
document.addEventListener("DOMContentLoaded", wrappedCallback);
}
};
})();
</script><script id="jquery-core-js" src="https://devblogs.microsoft.com/azuregov/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
<link rel="https://api.w.org/" href="https://devblogs.microsoft.com/azuregov/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://devblogs.microsoft.com/azuregov/wp-json/wp/v2/posts/805" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://devblogs.microsoft.com/azuregov/xmlrpc.php?rsd" />
<link rel='shortlink' href='https://devblogs.microsoft.com/azuregov/?p=805' />
<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Dev Blogs","item":"https:\/\/devblogs.microsoft.com\/"},{"@type":"ListItem","position":2,"name":"Azure Government","item":"https:\/\/devblogs.microsoft.com\/azuregov\/"},{"@type":"ListItem","position":3,"name":"New high availability checklist now available","item":"https:\/\/devblogs.microsoft.com\/azuregov\/new-high-availability-checklist-now-available\/"}]}</script><meta name="generator" content="performance-lab 4.2.0; plugins: webp-uploads">
<meta name="generator" content="webp-uploads 2.7.1">
<style>#respond h3#reply-title{display:none;}</style><link rel="preload" as="style" href="https://devblogs.microsoft.com/azuregov/wp-content/plugins/code-prettify/prettify/prettify.css" /><link rel="icon" href="https://devblogs.microsoft.com/azuregov/wp-content/uploads/sites/43/2021/03/Microsoft-Favicon.png" sizes="32x32" />
<link rel="icon" href="https://devblogs.microsoft.com/azuregov/wp-content/uploads/sites/43/2021/03/Microsoft-Favicon.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://devblogs.microsoft.com/azuregov/wp-content/uploads/sites/43/2021/03/Microsoft-Favicon.png" />
<meta name="msapplication-TileImage" content="https://devblogs.microsoft.com/azuregov/wp-content/uploads/sites/43/2021/03/Microsoft-Favicon.png" />
<style type="text/css">div.nsl-container[data-align="left"] {
text-align: left;
}
div.nsl-container[data-align="center"] {
text-align: center;
}
div.nsl-container[data-align="right"] {
text-align: right;
}
div.nsl-container div.nsl-container-buttons a[data-plugin="nsl"] {
text-decoration: none;
box-shadow: none;
border: 0;
}
div.nsl-container .nsl-container-buttons {
display: flex;
padding: 5px 0;
}
div.nsl-container.nsl-container-block .nsl-container-buttons {
display: inline-grid;
grid-template-columns: minmax(145px, auto);
}
div.nsl-container-block-fullwidth .nsl-container-buttons {
flex-flow: column;
align-items: center;
}
div.nsl-container-block-fullwidth .nsl-container-buttons a,
div.nsl-container-block .nsl-container-buttons a {
flex: 1 1 auto;
display: block;
margin: 5px 0;
width: 100%;
}
div.nsl-container-inline {
margin: -5px;
text-align: left;
}
div.nsl-container-inline .nsl-container-buttons {
justify-content: center;
flex-wrap: wrap;
}
div.nsl-container-inline .nsl-container-buttons a {
margin: 5px;
display: inline-block;
}
div.nsl-container-grid .nsl-container-buttons {
flex-flow: row;
align-items: center;
flex-wrap: wrap;
}
div.nsl-container-grid .nsl-container-buttons a {
flex: 1 1 auto;
display: block;
margin: 5px;
max-width: 280px;
width: 100%;
}
@media only screen and (min-width: 650px) {
div.nsl-container-grid .nsl-container-buttons a {
width: auto;
}
}
div.nsl-container .nsl-button {
cursor: pointer;
vertical-align: top;
border-radius: 4px;
}
div.nsl-container .nsl-button-default {
color: #fff;
display: flex;
}
div.nsl-container .nsl-button-icon {
display: inline-block;
}
div.nsl-container .nsl-button-svg-container {
flex: 0 0 auto;
padding: 8px;
display: flex;
align-items: center;
}
div.nsl-container svg {
height: 24px;
width: 24px;
vertical-align: top;
}
div.nsl-container .nsl-button-default div.nsl-button-label-container {
margin: 0 24px 0 12px;
padding: 10px 0;
font-family: Helvetica, Arial, sans-serif;
font-size: 16px;
line-height: 20px;
letter-spacing: .25px;
overflow: hidden;
text-align: center;
text-overflow: clip;
white-space: nowrap;
flex: 1 1 auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-transform: none;
display: inline-block;
}
div.nsl-container .nsl-button-google[data-skin="light"] {
box-shadow: inset 0 0 0 1px #747775;
color: #1f1f1f;
}
div.nsl-container .nsl-button-google[data-skin="dark"] {
box-shadow: inset 0 0 0 1px #8E918F;
color: #E3E3E3;
}
div.nsl-container .nsl-button-google[data-skin="neutral"] {
color: #1F1F1F;
}
div.nsl-container .nsl-button-google div.nsl-button-label-container {
font-family: "Roboto Medium", Roboto, Helvetica, Arial, sans-serif;
}
div.nsl-container .nsl-button-apple .nsl-button-svg-container {
padding: 0 6px;
}
div.nsl-container .nsl-button-apple .nsl-button-svg-container svg {
height: 40px;
width: auto;
}
div.nsl-container .nsl-button-apple[data-skin="light"] {
color: #000;
box-shadow: 0 0 0 1px #000;
}
div.nsl-container .nsl-button-facebook[data-skin="white"] {
color: #000;
box-shadow: inset 0 0 0 1px #000;
}
div.nsl-container .nsl-button-facebook[data-skin="light"] {
color: #1877F2;
box-shadow: inset 0 0 0 1px #1877F2;
}
div.nsl-container .nsl-button-spotify[data-skin="white"] {
color: #191414;
box-shadow: inset 0 0 0 1px #191414;
}
div.nsl-container .nsl-button-apple div.nsl-button-label-container {
font-size: 17px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
div.nsl-container .nsl-button-slack div.nsl-button-label-container {
font-size: 17px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
div.nsl-container .nsl-button-slack[data-skin="light"] {
color: #000000;
box-shadow: inset 0 0 0 1px #DDDDDD;
}
div.nsl-container .nsl-button-tiktok[data-skin="light"] {
color: #161823;
box-shadow: 0 0 0 1px rgba(22, 24, 35, 0.12);
}
div.nsl-container .nsl-button-kakao {
color: rgba(0, 0, 0, 0.85);
}
.nsl-clear {
clear: both;
}
.nsl-container {
clear: both;
}
.nsl-disabled-provider .nsl-button {
filter: grayscale(1);
opacity: 0.8;
}
/*Button align start*/
div.nsl-container-inline[data-align="left"] .nsl-container-buttons {
justify-content: flex-start;
}
div.nsl-container-inline[data-align="center"] .nsl-container-buttons {
justify-content: center;
}
div.nsl-container-inline[data-align="right"] .nsl-container-buttons {
justify-content: flex-end;
}
div.nsl-container-grid[data-align="left"] .nsl-container-buttons {
justify-content: flex-start;
}
div.nsl-container-grid[data-align="center"] .nsl-container-buttons {
justify-content: center;
}
div.nsl-container-grid[data-align="right"] .nsl-container-buttons {
justify-content: flex-end;
}
div.nsl-container-grid[data-align="space-around"] .nsl-container-buttons {
justify-content: space-around;
}
div.nsl-container-grid[data-align="space-between"] .nsl-container-buttons {
justify-content: space-between;
}
/* Button align end*/
/* Redirect */
#nsl-redirect-overlay {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: fixed;
z-index: 1000000;
left: 0;
top: 0;
width: 100%;
height: 100%;
backdrop-filter: blur(1px);
background-color: RGBA(0, 0, 0, .32);;
}
#nsl-redirect-overlay-container {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background-color: white;
padding: 30px;
border-radius: 10px;
}
#nsl-redirect-overlay-spinner {
content: '';
display: block;
margin: 20px;
border: 9px solid RGBA(0, 0, 0, .6);
border-top: 9px solid #fff;
border-radius: 50%;
box-shadow: inset 0 0 0 1px RGBA(0, 0, 0, .6), 0 0 0 1px RGBA(0, 0, 0, .6);
width: 40px;
height: 40px;
animation: nsl-loader-spin 2s linear infinite;
}
@keyframes nsl-loader-spin {
0% {
transform: rotate(0deg)
}
to {
transform: rotate(360deg)
}
}
#nsl-redirect-overlay-title {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
font-size: 18px;
font-weight: bold;
color: #3C434A;
}
#nsl-redirect-overlay-text {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
text-align: center;
font-size: 14px;
color: #3C434A;
}
/* Redirect END*/</style><style type="text/css">/* Notice fallback */
#nsl-notices-fallback {
position: fixed;
right: 10px;
top: 10px;
z-index: 10000;
}
.admin-bar #nsl-notices-fallback {
top: 42px;
}
#nsl-notices-fallback > div {
position: relative;
background: #fff;
border-left: 4px solid #fff;
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1);
margin: 5px 15px 2px;
padding: 1px 20px;
}
#nsl-notices-fallback > div.error {
display: block;
border-left-color: #dc3232;
}
#nsl-notices-fallback > div.updated {
display: block;
border-left-color: #46b450;
}
#nsl-notices-fallback p {
margin: .5em 0;
padding: 2px;
}
#nsl-notices-fallback > div:after {
position: absolute;
right: 5px;
top: 5px;
content: '\00d7';
display: block;
height: 16px;
width: 16px;
line-height: 16px;
text-align: center;
font-size: 20px;
cursor: pointer;
}</style> <!-- Start JSLL SHIM(1DS) Tags -->
<script src="https://js.monitor.azure.com/scripts/c/ms.jsll-4.min.js" type="text/javascript" defer></script>
<script type="text/javascript">
var config = {
useDefaultContentName: true,
useShortNameForContentBlob: false,
// disablePageUnloadEvents: [0, 1, 2], // Try at top level for JSLL
autoCapture: {
pageView: true,
onLoad: true,
lineage: true,
click: true,
scroll: true,
resize: false,
jsError: true,
addin: true,
perf: true
},
disableUnloadBeacon: true, // Disable deprecated unload event listeners
urlCollectHash: true,
urlCollectQuery: true,
instrumentationKey: "31b03416b80d4fec81330cf396b8bf63-2db31b2d-ee29-4371-af87-871cba555f5a-7031",
coreData: {
appId: "MSDevBlogs",
},
// Initially set the GPC_DataSharingOptIn flag property in 1DS (One Data Source) to false
advancedConfig: {
propertyConfiguration: {
gpcDataSharingOptIn: false
}
},
callback: {
pageName: function () { return document.title },
contentUpdatePageTags: function () {
return {
metaTags: {
'ver': theme
},
}
},
pageActionContentTags: function () {
return {
metaTags: {
'ver': theme
},
}
},
pageActionPageTags: function () {
return {
"pageType": "post",
"pgauth": "Adam Glick",
"authtype": "subscriber",
"pgtag": "High Availability, ",
"pgtop": "Announcements, portalpreview, Resiliency, ",
metaTags: {
"publishedDate": '20160630',
'ver': theme
},
}
},
pageViewPageTags: function () {
return {
"pageType": "post",
"pgauth": "Adam Glick",
"authtype": "subscriber",
"pgtag": "High Availability, ",
"pgtop": "Announcements, portalpreview, Resiliency, ",
"metaTags": {
"publishedDate": '20160630',
}
}
},
}
};
// The JSLL script is now deferred, so it may not be ready while this inline script runs during parse; init immediately if available, otherwise on DOMContentLoaded (deferred scripts always execute before that event).
if (window.awa && typeof awa.init === 'function') {
awa.init(config);
} else {
document.addEventListener('DOMContentLoaded', function () { awa.init(config); });
}
// Suppress Microsoft JSLL v4 internal unload event deprecation warnings
// TODO: Remove when Microsoft updates JSLL to fix internal Application Insights Core JS deprecation
(function() {
const originalWarn = console.warn;
console.warn = function(...args) {
const message = args.join(' ');
// Suppress specific deprecation warning from Microsoft's Application Insights SDK
// Pattern specifically targets Microsoft SDK file path to avoid false positives
if (message.includes('EventHelpers.js') && message.includes('deprecated')) {
// Optionally log once for debugging (comment out for production)
// if (!window._jsllWarningSuppressed) {
// console.log('[Suppressed JSLL SDK deprecation warning]');
// window._jsllWarningSuppressed = true;
// }
return;
}
originalWarn.apply(console, args);
};
})();
</script>
<!-- END JSLL SHIM(1DS) Integration -->
<script>
/*! lazysizes - v4.1.3 | For lazy loading images */
!function (a, b) { var c = b(a, a.document); a.lazySizes = c, "object" == typeof module && module.exports && (module.exports = c) }(window, function (a, b) { "use strict"; if (b.getElementsByClassName) { var c, d, e = b.documentElement, f = a.Date, g = a.HTMLPictureElement, h = "addEventListener", i = "getAttribute", j = a[h], k = a.setTimeout, l = a.requestAnimationFrame || k, m = a.requestIdleCallback, n = /^picture$/i, o = ["load", "error", "lazyincluded", "_lazyloaded"], p = {}, q = Array.prototype.forEach, r = function (a, b) { return p[b] || (p[b] = new RegExp("(\\s|^)" + b + "(\\s|$)")), p[b].test(a[i]("class") || "") && p[b] }, s = function (a, b) { r(a, b) || a.setAttribute("class", (a[i]("class") || "").trim() + " " + b) }, t = function (a, b) { var c; (c = r(a, b)) && a.setAttribute("class", (a[i]("class") || "").replace(c, " ")) }, u = function (a, b, c) { var d = c ? h : "removeEventListener"; c && u(a, b), o.forEach(function (c) { a[d](c, b) }) }, v = function (a, d, e, f, g) { var h = b.createEvent("Event"); return e || (e = {}), e.instance = c, h.initEvent(d, !f, !g), h.detail = e, a.dispatchEvent(h), h }, w = function (b, c) { var e; !g && (e = a.picturefill || d.pf) ? (c && c.src && !b[i]("srcset") && b.setAttribute("srcset", c.src), e({ reevaluate: !0, elements: [b] })) : c && c.src && (b.src = c.src) }, x = function (a, b) { return (getComputedStyle(a, null) || {})[b] }, y = function (a, b, c) { for (c = c || a.offsetWidth; c < d.minSize && b && !a._lazysizesWidth;)c = b.offsetWidth, b = b.parentNode; return c }, z = function () { var a, c, d = [], e = [], f = d, g = function () { var b = f; for (f = d.length ? e : d, a = !0, c = !1; b.length;)b.shift()(); a = !1 }, h = function (d, e) { a && !e ? d.apply(this, arguments) : (f.push(d), c || (c = !0, (b.hidden ? k : l)(g))) }; return h._lsFlush = g, h }(), A = function (a, b) { return b ? function () { z(a) } : function () { var b = this, c = arguments; z(function () { a.apply(b, c) }) } }, B = function (a) { var b, c = 0, e = d.throttleDelay, g = d.ricTimeout, h = function () { b = !1, c = f.now(), a() }, i = m && g > 49 ? function () { m(h, { timeout: g }), g !== d.ricTimeout && (g = d.ricTimeout) } : A(function () { k(h) }, !0); return function (a) { var d; (a = a === !0) && (g = 33), b || (b = !0, d = e - (f.now() - c), 0 > d && (d = 0), a || 9 > d ? i() : k(i, d)) } }, C = function (a) { var b, c, d = 99, e = function () { b = null, a() }, g = function () { var a = f.now() - c; d > a ? k(g, d - a) : (m || e)(e) }; return function () { c = f.now(), b || (b = k(g, d)) } }; !function () { var b, c = { lazyClass: "lazyload", loadedClass: "lazyloaded", loadingClass: "lazyloading", preloadClass: "lazypreload", errorClass: "lazyerror", autosizesClass: "lazyautosizes", srcAttr: "data-src", srcsetAttr: "data-srcset", sizesAttr: "data-sizes", minSize: 40, customMedia: {}, init: !0, expFactor: 1.5, hFac: .8, loadMode: 2, loadHidden: !0, ricTimeout: 0, throttleDelay: 125 }; d = a.lazySizesConfig || a.lazysizesConfig || {}; for (b in c) b in d || (d[b] = c[b]); a.lazySizesConfig = d, k(function () { d.init && F() }) }(); var D = function () { var g, l, m, o, p, y, D, F, G, H, I, J, K, L, M = /^img$/i, N = /^iframe$/i, O = "onscroll" in a && !/(gle|ing)bot/.test(navigator.userAgent), P = 0, Q = 0, R = 0, S = -1, T = function (a) { R--, a && a.target && u(a.target, T), (!a || 0 > R || !a.target) && (R = 0) }, U = function (a, c) { var d, f = a, g = "hidden" == x(b.body, "visibility") || "hidden" != x(a.parentNode, "visibility") && "hidden" != x(a, "visibility"); for (F -= c, I += c, G -= c, H += c; g && (f = f.offsetParent) && f != b.body && f != e;)g = (x(f, "opacity") || 1) > 0, g && "visible" != x(f, "overflow") && (d = f.getBoundingClientRect(), g = H > d.left && G < d.right && I > d.top - 1 && F < d.bottom + 1); return g }, V = function () { var a, f, h, j, k, m, n, p, q, r = c.elements; if ((o = d.loadMode) && 8 > R && (a = r.length)) { f = 0, S++, null == K && ("expand" in d || (d.expand = e.clientHeight > 500 && e.clientWidth > 500 ? 500 : 370), J = d.expand, K = J * d.expFactor), K > Q && 1 > R && S > 2 && o > 2 && !b.hidden ? (Q = K, S = 0) : Q = o > 1 && S > 1 && 6 > R ? J : P; for (; a > f; f++)if (r[f] && !r[f]._lazyRace) if (O) if ((p = r[f][i]("data-expand")) && (m = 1 * p) || (m = Q), q !== m && (y = innerWidth + m * L, D = innerHeight + m, n = -1 * m, q = m), h = r[f].getBoundingClientRect(), (I = h.bottom) >= n && (F = h.top) <= D && (H = h.right) >= n * L && (G = h.left) <= y && (I || H || G || F) && (d.loadHidden || "hidden" != x(r[f], "visibility")) && (l && 3 > R && !p && (3 > o || 4 > S) || U(r[f], m))) { if (ba(r[f]), k = !0, R > 9) break } else !k && l && !j && 4 > R && 4 > S && o > 2 && (g[0] || d.preloadAfterLoad) && (g[0] || !p && (I || H || G || F || "auto" != r[f][i](d.sizesAttr))) && (j = g[0] || r[f]); else ba(r[f]); j && !k && ba(j) } }, W = B(V), X = function (a) { s(a.target, d.loadedClass), t(a.target, d.loadingClass), u(a.target, Z), v(a.target, "lazyloaded") }, Y = A(X), Z = function (a) { Y({ target: a.target }) }, $ = function (a, b) { try { a.contentWindow.location.replace(b) } catch (c) { a.src = b } }, _ = function (a) { var b, c = a[i](d.srcsetAttr); (b = d.customMedia[a[i]("data-media") || a[i]("media")]) && a.setAttribute("media", b), c && a.setAttribute("srcset", c) }, aa = A(function (a, b, c, e, f) { var g, h, j, l, o, p; (o = v(a, "lazybeforeunveil", b)).defaultPrevented || (e && (c ? s(a, d.autosizesClass) : a.setAttribute("sizes", e)), h = a[i](d.srcsetAttr), g = a[i](d.srcAttr), f && (j = a.parentNode, l = j && n.test(j.nodeName || "")), p = b.firesLoad || "src" in a && (h || g || l), o = { target: a }, p && (u(a, T, !0), clearTimeout(m), m = k(T, 2500), s(a, d.loadingClass), u(a, Z, !0)), l && q.call(j.getElementsByTagName("source"), _), h ? a.setAttribute("srcset", h) : g && !l && (N.test(a.nodeName) ? $(a, g) : a.src = g), f && (h || l) && w(a, { src: g })), a._lazyRace && delete a._lazyRace, t(a, d.lazyClass), z(function () { (!p || a.complete && a.naturalWidth > 1) && (p ? T(o) : R--, X(o)) }, !0) }), ba = function (a) { var b, c = M.test(a.nodeName), e = c && (a[i](d.sizesAttr) || a[i]("sizes")), f = "auto" == e; (!f && l || !c || !a[i]("src") && !a.srcset || a.complete || r(a, d.errorClass) || !r(a, d.lazyClass)) && (b = v(a, "lazyunveilread").detail, f && E.updateElem(a, !0, a.offsetWidth), a._lazyRace = !0, R++, aa(a, b, f, e, c)) }, ca = function () { if (!l) { if (f.now() - p < 999) return void k(ca, 999); var a = C(function () { d.loadMode = 3, W() }); l = !0, d.loadMode = 3, W(), j("scroll", function () { 3 == d.loadMode && (d.loadMode = 2), a() }, !0) } }; return { _: function () { p = f.now(), c.elements = b.getElementsByClassName(d.lazyClass), g = b.getElementsByClassName(d.lazyClass + " " + d.preloadClass), L = d.hFac, j("scroll", W, !0), j("resize", W, !0), a.MutationObserver ? new MutationObserver(W).observe(e, { childList: !0, subtree: !0, attributes: !0 }) : (e[h]("DOMNodeInserted", W, !0), e[h]("DOMAttrModified", W, !0), setInterval(W, 999)), j("hashchange", W, !0), ["focus", "mouseover", "click", "load", "transitionend", "animationend", "webkitAnimationEnd"].forEach(function (a) { b[h](a, W, !0) }), /d$|^c/.test(b.readyState) ? ca() : (j("load", ca), b[h]("DOMContentLoaded", W), k(ca, 2e4)), c.elements.length ? (V(), z._lsFlush()) : W() }, checkElems: W, unveil: ba } }(), E = function () { var a, c = A(function (a, b, c, d) { var e, f, g; if (a._lazysizesWidth = d, d += "px", a.setAttribute("sizes", d), n.test(b.nodeName || "")) for (e = b.getElementsByTagName("source"), f = 0, g = e.length; g > f; f++)e[f].setAttribute("sizes", d); c.detail.dataAttr || w(a, c.detail) }), e = function (a, b, d) { var e, f = a.parentNode; f && (d = y(a, f, d), e = v(a, "lazybeforesizes", { width: d, dataAttr: !!b }), e.defaultPrevented || (d = e.detail.width, d && d !== a._lazysizesWidth && c(a, f, e, d))) }, f = function () { var b, c = a.length; if (c) for (b = 0; c > b; b++)e(a[b]) }, g = C(f); return { _: function () { a = b.getElementsByClassName(d.autosizesClass), j("resize", g) }, checkElems: g, updateElem: e } }(), F = function () { F.i || (F.i = !0, E._(), D._()) }; return c = { cfg: d, autoSizer: E, loader: D, init: F, uP: w, aC: s, rC: t, hC: r, fire: v, gW: y, rAF: z } } });
</script>
<div id="sr-announcer" class="visually-hidden" role="status" aria-live="polite"></div>
<style id="global-styles-inline-css">
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:root { --wp--style--global--content-size: 840px;--wp--style--global--wide-size: 840px; }:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
/*# sourceURL=global-styles-inline-css */
</style>
<link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='buttons-css' href='https://devblogs.microsoft.com/azuregov/wp-includes/css/buttons.min.css' media='all' />
<noscript><link rel='stylesheet' id='buttons-css' href='https://devblogs.microsoft.com/azuregov/wp-includes/css/buttons.min.css' media='all' />
</noscript>
</head>
<body class="wp-singular post-template-default single single-post postid-805 single-format-standard wp-theme-devblogs-evo">
<!-- Star cookies banner -->
<script src="https://wcpstatic.microsoft.com/mscc/lib/v2/wcp-consent.js" defer></script>
<div id="cookie-banner"></div>
<!-- end cookies banner -->
<!-- UHF header -->
<uhf-header locale="en-us" partnerId="DEV_Blogs" headerId="Dev_header-main" theme="light">
<a slot="skip-link" class="uhf-skip-link" href="#mainContent" data-m='{"compnm": "UHF", "view": "UHF", "pa": "UniversalHeader", "hn": "SkipToMain", "cN": "Skip to content_nonnav", "ecn": "Skip to content_nonnav", "ehn": "SkipToMain"}'>Skip to main content</a>
<uhf-brand slot="brand">
<a href="https://www.microsoft.com" class="uhf-microsoft-logo" slot="microsoft-logo" aria-label="Microsoft" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Anchor&quot;, &quot;cN&quot;: &quot;GlobalNav_Logo_cont&quot;, &quot;ecn&quot;: &quot;GlobalNav_Logo_cont&quot;, &quot;ehn&quot;: &quot;Anchor&quot;}">
<img src="https://uhf.microsoft.com/images/microsoft/RE1Mu3b.png" alt="Microsoft" />
</a>
<a href="https://devblogs.microsoft.com" class="uhf-site-logo" slot="brand-logo" aria-label="Dev Blogs" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Anchor&quot;, &quot;cN&quot;: &quot;CatNav_Logo_cont&quot;, &quot;ecn&quot;: &quot;CatNav_Logo_cont&quot;, &quot;ehn&quot;: &quot;Anchor&quot;}">
<span>Dev Blogs</span> </a>
</uhf-brand>
<uhf-contextual-nav
slot="contextual-nav"
overflowText="More"
brand="Dev Blogs"
homeUrl="https://devblogs.microsoft.com"
homeText="Home"
data-nav-label="Contextual menu"
theme=cat-theme-blue
>
<a class="uhf-nav-item uhf-nav-link" href="https://devblogs.microsoft.com/ai" id="AI" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;AI&quot;, &quot;cN&quot;: &quot;CatNav_AI_nav&quot;, &quot;ecn&quot;: &quot;CatNav_AI_nav&quot;, &quot;ehn&quot;: &quot;AI&quot;}">AI</a>
<uhf-dropdown
text=".NET"
id="dot-net"
data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;.NET&quot;, &quot;cN&quot;: &quot;CatNav_.NET_nav&quot;, &quot;ecn&quot;: &quot;CatNav_.NET_nav&quot;, &quot;ehn&quot;: &quot;.NET&quot;}"
>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/dotnet/" id="all-dot-net-posts" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;.NET&quot;, &quot;cN&quot;: &quot;CatNav_.NET_All .NET posts_nav&quot;, &quot;ecn&quot;: &quot;CatNav_.NET_All .NET posts_nav&quot;, &quot;ehn&quot;: &quot;.NET&quot;}">All .NET posts</a>
<uhf-flyout text="Frameworks" id="Frameworks" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;.NET&quot;, &quot;cN&quot;: &quot;CatNav_.NET_Frameworks_nav&quot;, &quot;ecn&quot;: &quot;CatNav_.NET_Frameworks_nav&quot;, &quot;ehn&quot;: &quot;.NET&quot;}">
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/dotnet/category/maui/" id="dot-net-maui" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;.NET&quot;, &quot;cN&quot;: &quot;CatNav_.NET_Frameworks_.NET MAUI_nav&quot;, &quot;ecn&quot;: &quot;CatNav_.NET_Frameworks_.NET MAUI_nav&quot;, &quot;ehn&quot;: &quot;.NET&quot;}">.NET MAUI</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/dotnet/category/dotnet-aspire/" id="asp-net-core" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;.NET&quot;, &quot;cN&quot;: &quot;CatNav_.NET_Frameworks_ASP.NET Core_nav&quot;, &quot;ecn&quot;: &quot;CatNav_.NET_Frameworks_ASP.NET Core_nav&quot;, &quot;ehn&quot;: &quot;.NET&quot;}">ASP.NET Core</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/dotnet/category/blazor/" id="Blazor" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;.NET&quot;, &quot;cN&quot;: &quot;CatNav_.NET_Frameworks_Blazor_nav&quot;, &quot;ecn&quot;: &quot;CatNav_.NET_Frameworks_Blazor_nav&quot;, &quot;ehn&quot;: &quot;.NET&quot;}">Blazor</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/dotnet/category/entity-framework/" id="entity-framework" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;.NET&quot;, &quot;cN&quot;: &quot;CatNav_.NET_Frameworks_Entity Framework_nav&quot;, &quot;ecn&quot;: &quot;CatNav_.NET_Frameworks_Entity Framework_nav&quot;, &quot;ehn&quot;: &quot;.NET&quot;}">Entity Framework</a>
</uhf-flyout>
<uhf-flyout text="Languages" id="Languages" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;.NET&quot;, &quot;cN&quot;: &quot;CatNav_.NET_Languages_nav&quot;, &quot;ecn&quot;: &quot;CatNav_.NET_Languages_nav&quot;, &quot;ehn&quot;: &quot;.NET&quot;}">
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/cppblog/" id="cpp" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;.NET&quot;, &quot;cN&quot;: &quot;CatNav_.NET_Languages_C&#x2B;&#x2B;_nav&quot;, &quot;ecn&quot;: &quot;CatNav_.NET_Languages_C&#x2B;&#x2B;_nav&quot;, &quot;ehn&quot;: &quot;.NET&quot;}">C&#x2B;&#x2B;</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/dotnet/category/csharp/" id="C#" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;.NET&quot;, &quot;cN&quot;: &quot;CatNav_.NET_Languages_C#_nav&quot;, &quot;ecn&quot;: &quot;CatNav_.NET_Languages_C#_nav&quot;, &quot;ehn&quot;: &quot;.NET&quot;}">C#</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/dotnet/category/fsharp/" id="F#" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;.NET&quot;, &quot;cN&quot;: &quot;CatNav_.NET_Languages_F#_nav&quot;, &quot;ecn&quot;: &quot;CatNav_.NET_Languages_F#_nav&quot;, &quot;ehn&quot;: &quot;.NET&quot;}">F#</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/typescript/" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;.NET&quot;, &quot;cN&quot;: &quot;CatNav_.NET_Languages_TypeScript_nav&quot;, &quot;ecn&quot;: &quot;CatNav_.NET_Languages_TypeScript_nav&quot;, &quot;ehn&quot;: &quot;.NET&quot;}">TypeScript</a>
</uhf-flyout>
<uhf-flyout text="Tools" id="Tools" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;.NET&quot;, &quot;cN&quot;: &quot;CatNav_.NET_Tools_nav&quot;, &quot;ecn&quot;: &quot;CatNav_.NET_Tools_nav&quot;, &quot;ehn&quot;: &quot;.NET&quot;}">
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/dotnet/category/nuget/" id="NuGet" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;.NET&quot;, &quot;cN&quot;: &quot;CatNav_.NET_Tools_NuGet_nav&quot;, &quot;ecn&quot;: &quot;CatNav_.NET_Tools_NuGet_nav&quot;, &quot;ehn&quot;: &quot;.NET&quot;}">NuGet</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/dotnet/category/maintenance-and-updates/" id="Servicing" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;.NET&quot;, &quot;cN&quot;: &quot;CatNav_.NET_Tools_Servicing_nav&quot;, &quot;ecn&quot;: &quot;CatNav_.NET_Tools_Servicing_nav&quot;, &quot;ehn&quot;: &quot;.NET&quot;}">Servicing</a>
</uhf-flyout> <a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/dotnet-ch/" id="dot-net-blog-in-chinese" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;.NET&quot;, &quot;cN&quot;: &quot;CatNav_.NET_.NET Blog in Chinese_nav&quot;, &quot;ecn&quot;: &quot;CatNav_.NET_.NET Blog in Chinese_nav&quot;, &quot;ehn&quot;: &quot;.NET&quot;}">.NET Blog in Chinese</a>
</uhf-dropdown>
<uhf-dropdown
text="Developer"
id="Developer"
data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Developer&quot;, &quot;cN&quot;: &quot;CatNav_Developer_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Developer_nav&quot;, &quot;ehn&quot;: &quot;Developer&quot;}"
>
<a class="uhf-nav-item uhf-dropdown-link" href="https://developer.microsoft.com/blog" id="microsoft-for-developers" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Developer&quot;, &quot;cN&quot;: &quot;CatNav_Developer_Microsoft for Developers_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Developer_Microsoft for Developers_nav&quot;, &quot;ehn&quot;: &quot;Developer&quot;}">Microsoft for Developers</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/agent-framework/" id="agent-framework" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Developer&quot;, &quot;cN&quot;: &quot;CatNav_Developer_Agent Framework_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Developer_Agent Framework_nav&quot;, &quot;ehn&quot;: &quot;Developer&quot;}">Agent Framework</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/develop-from-the-cloud/" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Developer&quot;, &quot;cN&quot;: &quot;CatNav_Developer_Develop from the cloud_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Developer_Develop from the cloud_nav&quot;, &quot;ehn&quot;: &quot;Developer&quot;}">Develop from the cloud</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/xcode/" id="Xcode" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Developer&quot;, &quot;cN&quot;: &quot;CatNav_Developer_Xcode_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Developer_Xcode_nav&quot;, &quot;ehn&quot;: &quot;Developer&quot;}">Xcode</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/ise/" id="ise-developer" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Developer&quot;, &quot;cN&quot;: &quot;CatNav_Developer_ISE Developer_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Developer_ISE Developer_nav&quot;, &quot;ehn&quot;: &quot;Developer&quot;}">ISE Developer</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/typescript/" id="TypeScript" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Developer&quot;, &quot;cN&quot;: &quot;CatNav_Developer_TypeScript_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Developer_TypeScript_nav&quot;, &quot;ehn&quot;: &quot;Developer&quot;}">TypeScript</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/powershell/" id="PowerShell" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Developer&quot;, &quot;cN&quot;: &quot;CatNav_Developer_PowerShell_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Developer_PowerShell_nav&quot;, &quot;ehn&quot;: &quot;Developer&quot;}">PowerShell</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/python/" id="Python" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Developer&quot;, &quot;cN&quot;: &quot;CatNav_Developer_Python_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Developer_Python_nav&quot;, &quot;ehn&quot;: &quot;Developer&quot;}">Python</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/java/" id="java" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Developer&quot;, &quot;cN&quot;: &quot;CatNav_Developer_Java_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Developer_Java_nav&quot;, &quot;ehn&quot;: &quot;Developer&quot;}">Java</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/java-ch/" id="java-blog-in-chinese" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Developer&quot;, &quot;cN&quot;: &quot;CatNav_Developer_Java Blog in Chinese_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Developer_Java Blog in Chinese_nav&quot;, &quot;ehn&quot;: &quot;Developer&quot;}">Java Blog in Chinese</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/go/" id="go" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Developer&quot;, &quot;cN&quot;: &quot;CatNav_Developer_Go_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Developer_Go_nav&quot;, &quot;ehn&quot;: &quot;Developer&quot;}">Go</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://blogs.windows.com/msedgedev/" id="microsoft-edge-dev" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Developer&quot;, &quot;cN&quot;: &quot;CatNav_Developer_Microsoft Edge Dev_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Developer_Microsoft Edge Dev_nav&quot;, &quot;ehn&quot;: &quot;Developer&quot;}">Microsoft Edge Dev</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/microsoft365dev/" id="microsoft-365-developer" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Developer&quot;, &quot;cN&quot;: &quot;CatNav_Developer_Microsoft 365 Developer_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Developer_Microsoft 365 Developer_nav&quot;, &quot;ehn&quot;: &quot;Developer&quot;}">Microsoft 365 Developer</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/identity/" id="microsoft-entra-identity-developer" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Developer&quot;, &quot;cN&quot;: &quot;CatNav_Developer_Microsoft Entra Identity Developer_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Developer_Microsoft Entra Identity Developer_nav&quot;, &quot;ehn&quot;: &quot;Developer&quot;}">Microsoft Entra Identity Developer</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/entrapowershell/" id="microsoft-entra-powershell" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Developer&quot;, &quot;cN&quot;: &quot;CatNav_Developer_Microsoft Entra PowerShell_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Developer_Microsoft Entra PowerShell_nav&quot;, &quot;ehn&quot;: &quot;Developer&quot;}">Microsoft Entra PowerShell</a>
</uhf-dropdown>
<uhf-dropdown
text="Platform and Tools"
id="platform-development"
data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Platform and Tools&quot;, &quot;cN&quot;: &quot;CatNav_Platform and Tools_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Platform and Tools_nav&quot;, &quot;ehn&quot;: &quot;Platform and Tools&quot;}"
>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/visualstudio/" id="visual-studio" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Platform and Tools&quot;, &quot;cN&quot;: &quot;CatNav_Platform and Tools_Visual Studio_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Platform and Tools_Visual Studio_nav&quot;, &quot;ehn&quot;: &quot;Platform and Tools&quot;}">Visual Studio</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/vscode-blog" id="visual-studio-code" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Platform and Tools&quot;, &quot;cN&quot;: &quot;CatNav_Platform and Tools_Visual Studio Code_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Platform and Tools_Visual Studio Code_nav&quot;, &quot;ehn&quot;: &quot;Platform and Tools&quot;}">Visual Studio Code</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/aspire/" id="aspire" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Platform and Tools&quot;, &quot;cN&quot;: &quot;CatNav_Platform and Tools_Aspire_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Platform and Tools_Aspire_nav&quot;, &quot;ehn&quot;: &quot;Platform and Tools&quot;}">Aspire</a>
<uhf-flyout text="Azure" id="azure" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Platform and Tools&quot;, &quot;cN&quot;: &quot;CatNav_Platform and Tools_Azure_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Platform and Tools_Azure_nav&quot;, &quot;ehn&quot;: &quot;Platform and Tools&quot;}">
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/all-things-azure/" id="all-things-azure-1" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Platform and Tools&quot;, &quot;cN&quot;: &quot;CatNav_Platform and Tools_Azure_All things Azure_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Platform and Tools_Azure_All things Azure_nav&quot;, &quot;ehn&quot;: &quot;Platform and Tools&quot;}">All things Azure</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/azure-sdk/" id="azure-sdk" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Platform and Tools&quot;, &quot;cN&quot;: &quot;CatNav_Platform and Tools_Azure_Azure SDK_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Platform and Tools_Azure_Azure SDK_nav&quot;, &quot;ehn&quot;: &quot;Platform and Tools&quot;}">Azure SDK</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/azure-vm-runtime/" id="azure-vm-runtime" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Platform and Tools&quot;, &quot;cN&quot;: &quot;CatNav_Platform and Tools_Azure_Azure VM Runtime Team_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Platform and Tools_Azure_Azure VM Runtime Team_nav&quot;, &quot;ehn&quot;: &quot;Platform and Tools&quot;}">Azure VM Runtime Team</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://azure.microsoft.com/blog/" id="microsoft-azure" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Platform and Tools&quot;, &quot;cN&quot;: &quot;CatNav_Platform and Tools_Azure_Microsoft Azure_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Platform and Tools_Azure_Microsoft Azure_nav&quot;, &quot;ehn&quot;: &quot;Platform and Tools&quot;}">Microsoft Azure</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/cosmosdb/" id="azure-cosmos-db" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Platform and Tools&quot;, &quot;cN&quot;: &quot;CatNav_Platform and Tools_Azure_Azure Cosmos DB_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Platform and Tools_Azure_Azure Cosmos DB_nav&quot;, &quot;ehn&quot;: &quot;Platform and Tools&quot;}">Azure Cosmos DB</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/documentdb/" id="azure-document-db" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Platform and Tools&quot;, &quot;cN&quot;: &quot;CatNav_Platform and Tools_Azure_Azure DocumentDB_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Platform and Tools_Azure_Azure DocumentDB_nav&quot;, &quot;ehn&quot;: &quot;Platform and Tools&quot;}">Azure DocumentDB</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://cloudblogs.microsoft.com/sqlserver/?product=azure-data-studio" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Platform and Tools&quot;, &quot;cN&quot;: &quot;CatNav_Platform and Tools_Azure_Azure Data Studio_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Platform and Tools_Azure_Azure Data Studio_nav&quot;, &quot;ehn&quot;: &quot;Platform and Tools&quot;}">Azure Data Studio</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/azure-sql/" id="azure-sql" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Platform and Tools&quot;, &quot;cN&quot;: &quot;CatNav_Platform and Tools_Azure_Azure SQL_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Platform and Tools_Azure_Azure SQL_nav&quot;, &quot;ehn&quot;: &quot;Platform and Tools&quot;}">Azure SQL</a>
</uhf-flyout> <a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/devops/" id="devops" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Platform and Tools&quot;, &quot;cN&quot;: &quot;CatNav_Platform and Tools_DevOps_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Platform and Tools_DevOps_nav&quot;, &quot;ehn&quot;: &quot;Platform and Tools&quot;}">DevOps</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/directx/" id="directx" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Platform and Tools&quot;, &quot;cN&quot;: &quot;CatNav_Platform and Tools_DirectX_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Platform and Tools_DirectX_nav&quot;, &quot;ehn&quot;: &quot;Platform and Tools&quot;}">DirectX</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/foundry/" id="azure-aI-foundry" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Platform and Tools&quot;, &quot;cN&quot;: &quot;CatNav_Platform and Tools_Microsoft Foundry_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Platform and Tools_Microsoft Foundry_nav&quot;, &quot;ehn&quot;: &quot;Platform and Tools&quot;}">Microsoft Foundry</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/powerplatform/" id="power-platform" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Platform and Tools&quot;, &quot;cN&quot;: &quot;CatNav_Platform and Tools_Power Platform_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Platform and Tools_Power Platform_nav&quot;, &quot;ehn&quot;: &quot;Platform and Tools&quot;}">Power Platform</a>
</uhf-dropdown>
<uhf-dropdown
text="Data"
id="data-development"
data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Data&quot;, &quot;cN&quot;: &quot;CatNav_Data_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Date_nav&quot;, &quot;ehn&quot;: &quot;Date&quot;}"
>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/odata/" id="OData" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Data&quot;, &quot;cN&quot;: &quot;CatNav_Data_OData_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Date_OData_nav&quot;, &quot;ehn&quot;: &quot;Date&quot;}">OData</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/udm/" id="udm" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Data&quot;, &quot;cN&quot;: &quot;CatNav_Data_Unified Data Model (IDEAs)_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Date_Unified Data Model (IDEAs)_nav&quot;, &quot;ehn&quot;: &quot;Date&quot;}">Unified Data Model (IDEAs)</a>
</uhf-dropdown>
<uhf-dropdown
text="Windows"
id="windows"
data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Windows&quot;, &quot;cN&quot;: &quot;CatNav_Windows_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Windows_nav&quot;, &quot;ehn&quot;: &quot;Windows&quot;}"
>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/commandline/" id="windows-command-line" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Windows&quot;, &quot;cN&quot;: &quot;CatNav_Windows_Windows Command Line_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Windows_Windows Command Line_nav&quot;, &quot;ehn&quot;: &quot;Windows&quot;}">Windows Command Line</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/ifdef-windows/" id="pax-windows" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Windows&quot;, &quot;cN&quot;: &quot;CatNav_Windows_#ifdef Windows_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Windows_#ifdef Windows_nav&quot;, &quot;ehn&quot;: &quot;Windows&quot;}">#ifdef Windows</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/insidemsix/" id="inside-msix" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Windows&quot;, &quot;cN&quot;: &quot;CatNav_Windows_Inside MSIX_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Windows_Inside MSIX_nav&quot;, &quot;ehn&quot;: &quot;Windows&quot;}">Inside MSIX</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/windows-music-dev/" id="midi-music" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Windows&quot;, &quot;cN&quot;: &quot;CatNav_Windows_MIDI and music_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Windows_MIDI and music_nav&quot;, &quot;ehn&quot;: &quot;Windows&quot;}">MIDI and music</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/react-native/" id="react-native-for-windows" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Windows&quot;, &quot;cN&quot;: &quot;CatNav_Windows_React Native_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Windows_React Native_nav&quot;, &quot;ehn&quot;: &quot;Windows&quot;}">React Native</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://devblogs.microsoft.com/oldnewthing/" id="old-new-thing" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Windows&quot;, &quot;cN&quot;: &quot;CatNav_Windows_The Old New Thing_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Windows_The Old New Thing_nav&quot;, &quot;ehn&quot;: &quot;Windows&quot;}">The Old New Thing</a>
<a class="uhf-nav-item uhf-dropdown-link" href="https://blogs.windows.com/windowsdeveloper/" id="windows-developer" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalHeader&quot;, &quot;hn&quot;: &quot;Windows&quot;, &quot;cN&quot;: &quot;CatNav_Windows_Windows Developer_nav&quot;, &quot;ecn&quot;: &quot;CatNav_Windows_Windows Developer_nav&quot;, &quot;ehn&quot;: &quot;Windows&quot;}">Windows Developer</a>
</uhf-dropdown></uhf-contextual-nav> <uhf-actions slot="actions">
<uhf-search
slot="search"
placeholder="Search"
search-label="Search"
cancel-label="Cancel"
searchUrl="/search"
autoSuggestUrl="https://www.microsoft.com/msstoreapiprod/api/autosuggest"
queryParameterName="query"
>
</uhf-search>
</uhf-actions>
</uhf-header><style>
uhf-header:not(:defined) {
display: block;
height: 54px;
}
uhf-brand:not(:defined),
uhf-contextual-nav:not(:defined),
uhf-actions:not(:defined),
uhf-global-nav:not(:defined),
uhf-search:not(:defined),
uhf-mecontrol:not(:defined),
uhf-cart:not(:defined),
uhf-dropdown:not(:defined),
uhf-popout:not(:defined) {
visibility: hidden;
}
</style>
<link rel="stylesheet" href="https://uhf.microsoft.com/statics/20260701.14.10/css/style-BpBYj3rT.css" /><script type="module" src="https://uhf.microsoft.com/statics/20260701.14.10/js/entry.js"></script>
<script src="https://wcpstatic.microsoft.com/mscc/lib/v2/wcp-consent.js"></script> <!--/ UHF header -->
<script>
let userConsentDetailsCallback = function () {
return siteConsent ? siteConsent.getConsent() : null
};
(function configureAwaConsent() {
function applyAwaConsentConfig() {
// JSLL is deferred, so awa may not exist yet while parsing <body>.
if (!window.awa || !window.awa.sku || !window.awa.sku.config) {
return false;
}
var awaObj = window.awa;
var spc =
awaObj.sku.config.extensionConfig &&
awaObj.sku.config.extensionConfig.SystemPropertiesCollector;
if (!spc || !spc.callback) {
return false;
}
spc.callback.userConsentDetails = userConsentDetailsCallback;
spc.userConsented = false;
return true;
}
if (!applyAwaConsentConfig()) {
// Deferred scripts execute before DOMContentLoaded, so this will run after JSLL creates `awa`.
document.addEventListener('DOMContentLoaded', applyAwaConsentConfig, { once: true });
}
})();
var is_post = '1';
function changeAnalyticsCookies() {
//have Analytics consent
if (siteConsent.getConsentFor(WcpConsent.consentCategories.Analytics)) {
//set consent
var date = new Date();
date.setTime(date.getTime() + (180 * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
if (window.clarity) {
window.clarity('consent');
}
} else if (siteConsent.isConsentRequired === false) {
// Consent is not required
if (window.clarity) {
window.clarity('consent');
}
} else {
document.cookie = name + '=_gat; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
document.cookie = name + '=_gid; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
document.cookie = name + '=_ga; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
document.cookie = name + '=simaCookie; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
}
window.WcpConsent && WcpConsent.init("en-US", "cookie-banner", function (err, _siteConsent) {
if (!err) {
siteConsent = _siteConsent; //siteConsent is used to get the current consent
} else {
//console.log("Error initializing WcpConsent: "+ err);
}
}, onConsentChanged, WcpConsent.themes.light);
function onConsentChanged(categoryPreferences) {
changeAnalyticsCookies();
}
</script>
<main class="devblogs-main" id="main" role="main">
<div class="wrapper">
<div class="container-evo pt-24">
<div class="breadcrumbs-wrapper" data-bi-area="breadcrumb" data-bi-id="breadcrumb">
<nav aria-label="breadcrumb"><ul class="breadcrumb d-flex flex-wrap p-0 m-0" style="list-style-type: none;"><li><a href="https://devblogs.microsoft.com/">Dev Blogs</a><span class="breadcrumb-icon px-6"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" style="vertical-align: middle;"><path fill="none" stroke="currentColor" stroke-width="1" d="m9 5l7 7l-7 7"></path></svg></span></li><li><a href="https://devblogs.microsoft.com/azuregov/">Azure Government</a><span class="breadcrumb-icon px-6"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" style="vertical-align: middle;"><path fill="none" stroke="currentColor" stroke-width="1" d="m9 5l7 7l-7 7"></path></svg></span></li><li><span class="ebc-current-readmore fw-600" aria-current="page">New high availability checklist now available</span></li></ul></nav> </div>
<!-- alert-banner-starts -->
<!-- alert-banner-ends -->
</div>
<style>
.gif-responsive canvas {
width: 100%;
height: auto;
}
.container-three-column-post {
display: grid;
grid-template-columns: minmax(0, 1fr);
grid-template-areas:
"post-sidebar"
"middle-column"
"left-sidebar";
}
.left-sidebar {
grid-area: left-sidebar;
}
.middle-column {
grid-area: middle-column;
}
.post-sidebar {
grid-area: post-sidebar;
}
@media (min-width: 1083px) {
.container-three-column-post {
grid-template-columns: 111px minmax(0, 1fr) 358px;
grid-template-areas:
"left-sidebar middle-column post-sidebar";
}
}
@media (min-width: 1083px) {
.container-three-column-even {
display: grid;
grid-template-columns: 111px minmax(0, 1fr) 111px;
}
}
/* Tablet readability: cap post content and comments to 768px below the 1083px break */
@media (max-width: 1082px) {
.container-three-column-post,
.container-three-column-even {
max-width: 768px;
margin-left: auto;
margin-right: auto;
}
}
</style>
<div class="container-evo mt-56"> <!-- page container -->
<div class="container-three-column-post"><!-- container-sidebar-left-post - top heading -->
<div></div>
<div class="pe-xl-198">
<header class="ms-md-111 mb-40">
<div class="d-inline-flex mb-8 gap-24">
<div class="d-flex align-items-center">
<span>June 30th, 2016</span>
</div>
<div id="reactionsMini" class="d-flex align-items-center bg-white border-r-24" style="padding:2px 12px;">
<span class="d-flex align-items-center reacts-icons mr-6" style="display:none;"></span><span class="reacts-count">0 reactions</span> </div>
</div>
<h1>New high availability checklist now available</h1> </header><!-- .entry-header -->
<div class="d-flex justify-content-between flex-column flex-lg-row align-items-center gap-24 mb-40"
style="align-items: start;">
<div class="d-flex gap-10 align-items-center">
<div class="avatar-parent">
<img class="avatar-40" src="https://secure.gravatar.com/avatar/3fdcbf9c4c8414d6a8ccc664998419aa?s=96&#038;r=g"
alt="" style="width: 40px; height: 40px;">
</div>
<div class="d-flex flex-column">
<div class="fs-16 fw-600">
<a class="read-more" href="https://devblogs.microsoft.com/azuregov/author/mobileglick" aria-label="View Adam Glick Author page" data-bi-area="body_author_top"
data-bi-id="post_page_body_author_top_name"
data-bi-name="Adam Glick">Adam Glick</a>
</div>
</div>
</div>
</div>
</div>
<div></div>
</div><!-- container-sidebar-left-post - top heading -->
<div class="container-three-column-post mb-40" id="single-wrapper">
<aside class="post-sidebar sticky scroll-bar pe-12">
<div id="get-height">
<div class="border-bottom pb-32 mb-32 evo-dropdown-menu" data-mobile-dropdown="true" id="toc-sidebar"
data-bi-id="post_page_sidebar_right_table_of_contents" data-bi-area="sidebar_right_table_of_contents">
<button
class="evo-dropdown-button mobile-toc btn-no-styles align-items-center justify-content-between mobile-only"
style="width: 100%;" aria-expanded="false" aria-controls="#tocBody" data-bi-id="post_page_sidebar_right_table_of_contents_dropdown">
<h2 class="fs-20 lh-28 toc-title"></h2>
<span class="evo-dropdown-icon d-flex"></span>
</button>
<h2 class="fs-20 lh-28 toc-title desktop-only"></h2>
<nav id="tocBody" class="evo-dropdown-content mobile-toc-content" data-bi-id="post_page_sidebar_right_table_of_contents">
<ul id="toc"></ul>
<a href="javascript:" class="fw-600 lh-28" id="showMoreBtn"
data-bi-id="post_page_sidebar_right_table_of_contents_show_more" data-bi-name="Show more">Show more</a>
</nav>
</div>
<div class="read-next-mobile"></div>
</div><!-- #get-height -->
</aside>
<article data-clarity-region="article" class="middle-column pe-xl-198" id="post-805">
<div class="entry-content sharepostcontent "
data-bi-area="body_article" data-bi-id="post_page_body_article">
<p>We’re happy to announce that we’ve released a new<a href="https://azure.microsoft.com/en-us/documentation/articles/resiliency-high-availability-checklist/"> high availability checklist</a> to help you increase the resiliency and availability of your applications in Azure.</p>
<p>We know uptime matters to you and Azure gives you great tools and services to help increase your availability. However, we noticed that many people have yet to take full advantage of these benefits of Azure. Azure resiliency is a shared responsibility model. As a result, we created this checklist to provide common ways to increase your application’s availability in Azure, using best practices, tools, and techniques . These suggestions come from both good design patterns as well as the experience of our architects who work with customers building on Azure.</p>
<p>One new addition in this checklist is the inclusion of a short description of what happens if you don’t follow the listed guidance. Based on our discussions of best practices with customers using Azure, a common question we heard was, “What will happen if I don’t follow this suggestion?” We realized that, not only do you want to know what the best practices are, but also why they are important. In response to that feedback, we’ve answered the question of what happens if you don’t use each suggestion within the guidance. We hope this helps you achieve your goal of making better decisions on the design of your Azure applications as well as understanding any particular tradeoffs that you might decide to make.</p>
<p>We hope this checklist helps you with your current and future Azure applications. We welcome any feedback you have on this checklist so please feel free to leave comments in the comments section below, on the article page directly, or email us at <a href="mailto:ResiliencyFeedback@microsoft.com">ResiliencyFeedback@microsoft.com</a>.</p>
</div><!-- .entry-content -->
<!-- AI Disclaimer -->
</article>
<style>
@media (min-width: 1083px) {
.social-panel {
flex-direction: column;
}
}
@media (max-width: 1083px) {
.evo-social-sidebar {
margin-bottom: 24px;
}
.social-panel {
width: 100%;
justify-content: space-around;
}
}
a.like-button svg {
/* width: 24px; */
width: 28px;
}
nav.evo-social-sidebar {
z-index: 5;
}
.evo-social-sidebar .votes-count {
font-size: 14px;
color: var(--clr-social-btn-count);
height: 20px;
}
.evo-social-sidebar .sharing-btns .share-post span {
color: var(--clr-body-light);
text-transform: initial;
}
.evo-social-sidebar .sharing-btns .share-post:hover span {
color: var(--clr-body);
}
.evo-social-sidebar .sharing-btns {
box-shadow: var(--clr-share-btn-shadow);
}
.evo-social-sidebar .social-panel a:focus,
.evo-social-sidebar .social-panel button:focus {
outline-offset: -4px;
}
.evo-social-sidebar .evo-dropdown-content {
position: absolute;
bottom: 100%;
z-index: 1000;
}
.evo-social-sidebar .evo-dropdown-content ul {
list-style: none;
}
@media screen and (min-width: 1890px) {
.evo-dropdown-menu.horizontal-dropdown .evo-dropdown-content {
transform: translateX(-40%);
}
}
@media screen and (max-width: 1084px) {
.evo-social-sidebar .evo-dropdown-content {
top: 100%;
bottom: unset;
left: 0;
}
}
@media (max-width: 1083px) {
.left-sidebar {
margin-top: 40px;
}
}
</style>
<div class="left-sidebar">
<nav class="evo-social-sidebar sticky d-flex position-relative" data-bi-area="sidebar_left_social" aria-label="Share">
<div class="social-panel bg-white d-inline-flex p-8 border-r-8 border-2">
<div style="width: 60px; height: 64px;">
<div id="likesMenu" class="position-relative d-flex flex-column evo-dropdown-menu horizontal-dropdown">
<div id="reaction-feedback" class="visually-hidden" role="alert" aria-atomic="true"></div>
<span class="post-like" id="postLike-805"><span class="icon-like-dislike1 d-flex flex-column"><a class='d-flex flex-column align-items-center p-8 btn-outline-secondary border-0 rounded' data-toggle='tooltip' aria-label='Sign in to react, vote count 0' title='Sign in to react' href='https://devblogs.microsoft.com/azuregov/wp-login.php?redirect_to=https%3A%2F%2Fdevblogs.microsoft.com%2Fazuregov%2Fnew-high-availability-checklist-now-available%2F' data-bi-id='post_page_sidebar_left_social_Sign in to react' data-bi-name='Sign in to react'><svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M20.4167 13.9999C23.9605 13.9999 26.8334 16.8727 26.8334 20.4166C26.8334 23.9604 23.9605 26.8332 20.4167 26.8332C16.8729 26.8332 14 23.9604 14 20.4166C14 16.8727 16.8729 13.9999 20.4167 13.9999ZM14 2.33203C20.4443 2.33203 25.6685 7.55619 25.6685 14.0005C25.6685 14.3076 25.6566 14.6119 25.6333 14.9131C25.1225 14.4282 24.5439 14.014 23.9135 13.6858C23.7477 8.35391 19.3727 4.08203 14 4.08203C8.5222 4.08203 4.08154 8.52268 4.08154 14.0005C4.08154 19.3736 8.35404 23.7488 13.687 23.9141C14.0146 24.5444 14.4286 25.1226 14.913 25.6335C14.6122 25.6571 14.3075 25.669 14 25.669C7.5557 25.669 2.33154 20.4448 2.33154 14.0005C2.33154 7.55619 7.5557 2.33203 14 2.33203ZM20.4167 16.3323L20.3118 16.3417C20.0737 16.385 19.886 16.5727 19.8428 16.8108L19.8334 16.9157L19.8329 19.8323L16.9139 19.8332L16.8091 19.8426C16.571 19.8859 16.3832 20.0736 16.34 20.3117L16.3306 20.4166L16.34 20.5214C16.3832 20.7595 16.571 20.9473 16.8091 20.9905L16.9139 20.9999L19.8341 20.999L19.8346 23.9206L19.844 24.0255C19.8873 24.2636 20.075 24.4514 20.3131 24.4946L20.418 24.504L20.5228 24.4946C20.7609 24.4514 20.9487 24.2636 20.9919 24.0255L21.0013 23.9206L21.0008 20.999L23.922 20.9999L24.0269 20.9905C24.265 20.9473 24.4527 20.7595 24.4959 20.5214L24.5053 20.4166L24.4959 20.3117C24.4527 20.0736 24.265 19.8859 24.0269 19.8426L23.922 19.8332L20.9996 19.8323L21 16.9157L20.9906 16.8108C20.9474 16.5727 20.7597 16.385 20.5215 16.3417L20.4167 16.3323ZM9.87205 17.2477C10.6436 18.227 11.7279 18.8969 12.9404 19.1453C12.8698 19.5577 12.8334 19.9829 12.8334 20.4166C12.8334 20.5809 12.8386 20.7441 12.8489 20.9058C11.1278 20.6227 9.57985 19.7045 8.49745 18.3308C8.19838 17.9512 8.26365 17.401 8.64323 17.1019C9.02281 16.8029 9.57297 16.8681 9.87205 17.2477ZM10.5005 10.2096C11.3055 10.2096 11.958 10.8621 11.958 11.6671C11.958 12.4721 11.3055 13.1246 10.5005 13.1246C9.69558 13.1246 9.04304 12.4721 9.04304 11.6671C9.04304 10.8621 9.69558 10.2096 10.5005 10.2096ZM17.5005 10.2096C18.3055 10.2096 18.958 10.8621 18.958 11.6671C18.958 12.4721 18.3055 13.1246 17.5005 13.1246C16.6956 13.1246 16.043 12.4721 16.043 11.6671C16.043 10.8621 16.6956 10.2096 17.5005 10.2096Z" fill="#0F6CBD"/></svg><span class='votes-count fw-600'> 0</span></a><div id="like-announcement" class="visually-hidden" role="status" aria-live="polite"></div></span></span> <nav id="emoji-reactions" class="evo-dropdown-content" style="display: none;">
<ul class="sharing-btns rounded bg-white d-flex flex-row m-0 p-8" role="menu" aria-label="Reactions">
<li role="none">
<button data-bi-id="post_page_sidebar_left_social_like" data-bi-name="" data-post-id="805" data-react="like" role="menuitem" class="d-flex flex-row align-items-center evo-dropdown-item btn-outline-secondary border-0 rounded p-8 gap-8 " title="" aria-label="like" onclick="post_like_vote_add(805,'5cb4d6bd18',0,43,'like');">
<svg width="28" height="28" style="max-width:unset;">
<image xlink:href="/wp-content/themes/devblogs-evo/images/emojis/like.svg" width="28" height="28" />
</svg>
</button>
</li>
<li role="none">
<button data-bi-id="post_page_sidebar_left_social_heart" data-bi-name="" data-post-id="805" data-react="heart" role="menuitem" class="d-flex flex-row align-items-center evo-dropdown-item btn-outline-secondary border-0 rounded p-8 gap-8 " title="" aria-label="heart" onclick="post_like_vote_add(805,'5cb4d6bd18',0,43,'heart');">
<svg width="28" height="28" style="max-width:unset;">
<image xlink:href="/wp-content/themes/devblogs-evo/images/emojis/heart.svg" width="28" height="28" />
</svg>
</button>
</li>
<li role="none">
<button data-bi-id="post_page_sidebar_left_social_celebrate" data-bi-name="" data-post-id="805" data-react="celebrate" role="menuitem" class="d-flex flex-row align-items-center evo-dropdown-item btn-outline-secondary border-0 rounded p-8 gap-8 " title="" aria-label="celebrate" onclick="post_like_vote_add(805,'5cb4d6bd18',0,43,'celebrate');">
<svg width="28" height="28" style="max-width:unset;">
<image xlink:href="/wp-content/themes/devblogs-evo/images/emojis/celebrate.svg" width="28" height="28" />
</svg>
</button>
</li>
<li role="none">
<button data-bi-id="post_page_sidebar_left_social_mind-blown" data-bi-name="" data-post-id="805" data-react="mind-blown" role="menuitem" class="d-flex flex-row align-items-center evo-dropdown-item btn-outline-secondary border-0 rounded p-8 gap-8 " title="" aria-label="mind blown" onclick="post_like_vote_add(805,'5cb4d6bd18',0,43,'mind-blown');">
<svg width="28" height="28" style="max-width:unset;">
<image xlink:href="/wp-content/themes/devblogs-evo/images/emojis/mind-blown.svg" width="28" height="28" />
</svg>
</button>
</li>
<li role="none">
<button data-bi-id="post_page_sidebar_left_social_intriguing" data-bi-name="" data-post-id="805" data-react="intriguing" role="menuitem" class="d-flex flex-row align-items-center evo-dropdown-item btn-outline-secondary border-0 rounded p-8 gap-8 " title="" aria-label="intriguing" onclick="post_like_vote_add(805,'5cb4d6bd18',0,43,'intriguing');">
<svg width="28" height="28" style="max-width:unset;">
<image xlink:href="/wp-content/themes/devblogs-evo/images/emojis/intriguing.svg" width="28" height="28" />
</svg>
</button>
</li>
<li role="none">
<button data-bi-id="post_page_sidebar_left_social_compelling" data-bi-name="" data-post-id="805" data-react="compelling" role="menuitem" class="d-flex flex-row align-items-center evo-dropdown-item btn-outline-secondary border-0 rounded p-8 gap-8 " title="" aria-label="compelling" onclick="post_like_vote_add(805,'5cb4d6bd18',0,43,'compelling');">
<svg width="28" height="28" style="max-width:unset;">
<image xlink:href="/wp-content/themes/devblogs-evo/images/emojis/compelling.svg" width="28" height="28" />
</svg>
</button>
</li>
</ul>
</nav>
</div>
</div>
<div class="d-flex flex-column" style="width: 60px; height: 64px;">
<a class="d-flex flex-column align-items-center p-8 btn-outline-secondary border-0 rounded" data-toggle="tooltip" title="Go to comments section" aria-label="Jump to comments, 0 total comments" href="#comments" data-bi-id="post_page_sidebar_left_social_comment" data-bi-name="comment">
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" fill="none">
<path d="M5.75 4.5C4.50736 4.5 3.5 5.50736 3.5 6.75V17.25C3.5 18.4926 4.50736 19.5 5.75 19.5H8.5V24.2955C8.5 24.4994 8.73092 24.6175 8.89627 24.4982L15.8244 19.5H22.25C23.4926 19.5 24.5 18.4926 24.5 17.25V6.75C24.5 5.50736 23.4926 4.5 22.25 4.5H5.75ZM2 6.75C2 4.67893 3.67893 3 5.75 3H22.25C24.3211 3 26 4.67893 26 6.75V17.25C26 19.3211 24.3211 21 22.25 21H16.309L9.77388 25.7147C8.61646 26.5497 7 25.7227 7 24.2955V21H5.75C3.67893 21 2 19.3211 2 17.25V6.75Z" fill="#0F6CBD" />
</svg>
<span class="votes-count fw-600"> 0</span>
</a>
</div>
<div class="d-flex flex-column" style="width: 60px; height: 64px;">
<div class="position-relative d-flex flex-column evo-dropdown-menu">
<button data-bi-id="post_page_sidebar_left_social_share" data-bi-name="click to open" data-toggle="tooltip" title="Share this post" class="evo-dropdown-button d-flex flex-column align-items-center p-8 btn-outline-secondary border-0 rounded" type="button" aria-expanded="false" aria-controls="#social-sharing-buttons" aria-label="Share on social media, 0 total shares">
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" fill="none">
<path d="M18.27 3.21001L25.77 10.46C25.8426 10.53 25.9003 10.6139 25.9398 10.7066C25.9792 10.7994 25.9995 10.8992 25.9995 11C25.9995 11.1008 25.9792 11.2006 25.9398 11.2934C25.9003 11.3862 25.8426 11.4701 25.77 11.54L18.27 18.79C18.2014 18.8576 18.1202 18.9109 18.031 18.9469C17.9417 18.983 17.8462 19.001 17.75 19C17.6502 19.0003 17.5515 18.9799 17.46 18.94C17.324 18.883 17.2078 18.7871 17.126 18.6644C17.0441 18.5416 17.0003 18.3975 17 18.25V14.51C10.3 14.78 7.48 18.53 7.36 18.69C7.26453 18.8157 7.13275 18.909 6.98251 18.9573C6.83226 19.0056 6.67081 19.0065 6.52 18.96C6.36957 18.9115 6.2383 18.8168 6.14492 18.6893C6.05153 18.5618 6.00081 18.4081 6 18.25C6 10.23 12.59 7.77001 17 7.52001V3.75001C17.0003 3.60251 17.0441 3.45838 17.126 3.33565C17.2078 3.21293 17.324 3.11705 17.46 3.06001C17.5947 3.00193 17.7436 2.98518 17.8878 3.01188C18.032 3.03859 18.1651 3.10755 18.27 3.21001ZM18.5 13.75V16.46L24.17 11L18.5 5.52001V8.25001C18.4974 8.44812 18.4176 8.63738 18.2775 8.77748C18.1374 8.91757 17.9481 8.99742 17.75 9.00001C16.78 9.00001 8.9 9.22001 7.66 16.28C10.536 14.0399 14.1065 12.8792 17.75 13C17.9481 13.0026 18.1374 13.0825 18.2775 13.2225C18.4176 13.3626 18.4974 13.5519 18.5 13.75ZM22.7225 19.2225C22.8626 19.0824 23.0519 19.0026 23.25 19C23.4481 19.0026 23.6374 19.0824 23.7775 19.2225C23.9176 19.3626 23.9974 19.5519 24 19.75V20.25C24 21.5098 23.4996 22.718 22.6088 23.6088C21.718 24.4996 20.5098 25 19.25 25H7.75C6.49022 25 5.28204 24.4996 4.39124 23.6088C3.50045 22.718 3 21.5098 3 20.25V8.75C3 7.49022 3.50045 6.28204 4.39124 5.39124C5.28204 4.50045 6.49022 4 7.75 4H12.25C12.4489 4 12.6397 4.07902 12.7803 4.21967C12.921 4.36032 13 4.55109 13 4.75C13 4.94891 12.921 5.13968 12.7803 5.28033C12.6397 5.42098 12.4489 5.5 12.25 5.5H7.75C6.88886 5.50264 6.06374 5.84589 5.45482 6.45482C4.84589 7.06374 4.50264 7.88886 4.5 8.75V20.25C4.50264 21.1111 4.84589 21.9363 5.45482 22.5452C6.06374 23.1541 6.88886 23.4974 7.75 23.5H19.25C20.1111 23.4974 20.9363 23.1541 21.5452 22.5452C22.1541 21.9363 22.4974 21.1111 22.5 20.25V19.75C22.5026 19.5519 22.5824 19.3626 22.7225 19.2225Z" fill="#0F6CBD" />
</svg>
<div data-post-id="805" class="evo-count-shares votes-count fw-600 d-flex p-6 align-items-center border-r-40 clr-neutral clr-brand-bg" style="position:relative;">
0 </div>
</button>
<nav id="social-sharing-buttons" class="evo-dropdown-content" style="display: none;">
<ul class="sharing-btns rounded bg-white d-flex flex-column m-0 p-8" role="menu">
<li role="presentation">
<a data-bi-id="post_page_sidebar_left_social_share" data-bi-name="Share on Facebook" role="menuitem" data-post-id="805" class="share-post d-flex flex-row align-items-center evo-dropdown-item facebook btn-outline-secondary border-0 rounded p-8 gap-8" href="https://www.facebook.com/sharer/sharer.php?u=https://devblogs.microsoft.com/azuregov/new-high-availability-checklist-now-available/" title="Share on Facebook" aria-label="Share on Facebook" target="_blank" rel="noopener noreferrer nofollow" tabindex="-1">
<img style="max-width: unset;" src="https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/images/social-icons/facebook.svg" alt="Facebook">
<span class="text-nowrap fs-16">Share on Facebook</span>
</a>
</li>
<li role="presentation">
<a data-bi-id="post_page_sidebar_left_social_share" data-bi-name="Share on X" role="menuitem" data-post-id="805" class="share-post d-flex flex-row align-items-center evo-dropdown-item twitter btn-outline-secondary border-0 rounded p-8 gap-8" href="https://twitter.com/intent/tweet?url=https://devblogs.microsoft.com/azuregov/new-high-availability-checklist-now-available/&text=New high availability checklist now available" title="Share on X" aria-label="Share on X" target="_blank" rel="noopener noreferrer nofollow" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<path class="dark-theme" d="M14.4821 10.6218L21.0389 3H19.4852L13.7919 9.61788L9.24467 3H4L10.8763 13.0074L4 21H5.55384L11.5661 14.0113L16.3683 21H21.613L14.4817 10.6218H14.4821ZM12.3539 13.0956L11.6572 12.0991L6.11372 4.16971H8.50033L12.974 10.5689L13.6707 11.5655L19.4859 19.8835H17.0993L12.3539 13.096V13.0956Z" />
</svg>
<span class="text-nowrap fs-16">Share on X</span>
</a>
</li>
<li role="presentation">
<a data-bi-id="post_page_sidebar_left_social_share" data-bi-name="Share on LinkedIn" role="menuitem" data-post-id="805" class="share-post d-flex flex-row align-items-center evo-dropdown-item linkedin btn-outline-secondary border-0 rounded p-8 gap-8" href="https://www.linkedin.com/shareArticle?mini=true&amp;url=https://devblogs.microsoft.com/azuregov/new-high-availability-checklist-now-available/" title="Share on LinkedIn" aria-label="Share on LinkedIn" target="_blank" rel="noopener noreferrer nofollow" tabindex="-1">
<img style="max-width: unset;" src="https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/images/social-icons/linkedin.svg" alt="LinkedIn">
<span class="text-nowrap fs-16">Share on Linkedin</span>
</a>
</li>
<!-- <li role="presentation">
<button role="menuitem"
class="d-flex flex-row align-items-center evo-dropdown-item copy-url-button btn-outline-secondary border-0 rounded p-8 gap-8"
type="button" tabindex="-1" style="width: 100%;">
<svg width="24" height="10" viewBox="0 0 16 8" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M12 0C14.2091 0 16 1.79086 16 4C16 6.1422 14.316 7.89108 12.1996 7.9951L12 8H10C9.58579 8 9.25 7.66421 9.25 7.25C9.25 6.8703 9.53215 6.55651 9.89823 6.50685L10 6.5H12C13.3807 6.5 14.5 5.38071 14.5 4C14.5 2.67452 13.4685 1.58996 12.1644 1.50532L12 1.5H10C9.58579 1.5 9.25 1.16421 9.25 0.75C9.25 0.370304 9.53215 0.0565088 9.89823 0.00684643L10 0H12ZM6 0C6.41421 0 6.75 0.335786 6.75 0.75C6.75 1.1297 6.46785 1.44349 6.10177 1.49315L6 1.5H4C2.61929 1.5 1.5 2.61929 1.5 4C1.5 5.32548 2.53154 6.41004 3.83562 6.49468L4 6.5H6C6.41421 6.5 6.75 6.83579 6.75 7.25C6.75 7.6297 6.46785 7.94349 6.10177 7.99315L6 8H4C1.79086 8 0 6.20914 0 4C0 1.8578 1.68397 0.108921 3.80036 0.00489521L4 0H6ZM4.25 3.25H11.75C12.1642 3.25 12.5 3.58579 12.5 4C12.5 4.3797 12.2178 4.69349 11.8518 4.74315L11.75 4.75H4.25C3.83579 4.75 3.5 4.41421 3.5 4C3.5 3.6203 3.78215 3.30651 4.14823 3.25685L4.25 3.25H11.75H4.25Z" />
</svg>
<span class="text-nowrap fs-16">Copy Link</span>
</button>
</li> -->
</ul>
</nav>
</div>
</div>
</div>
</nav>
</div></div><!-- This is the end of main section three column -->
<div class="container-three-column-post mb-40">
<div></div>
<div>
<div class="border-bottom pb-40 mb-64"><div class="mb-24"><h3 class="fs-16 fw-600 mb-16">Category</h3><ul class="ul-no-style d-flex justify-content-start flex-wrap gap-12 post-topics"><li><a data-bi-area="body_category" data-bi-id="post_page_body_category" data-bi-name="Announcements Category" class="d-flex align-items-center btn-outline-secondary px-8" href="https://devblogs.microsoft.com/azuregov/category/announcements/"
aria-label="Announcements Category">Announcements</a></li><li><a data-bi-area="body_category" data-bi-id="post_page_body_category" data-bi-name="portalpreview Category" class="d-flex align-items-center btn-outline-secondary px-8" href="https://devblogs.microsoft.com/azuregov/category/announcements/portalpreview/"
aria-label="portalpreview Category">portalpreview</a></li><li><a data-bi-area="body_category" data-bi-id="post_page_body_category" data-bi-name="Resiliency Category" class="d-flex align-items-center btn-outline-secondary px-8" href="https://devblogs.microsoft.com/azuregov/category/resiliency/"
aria-label="Resiliency Category">Resiliency</a></li></ul></div><div class="mb-24"><h3 class="fs-16 fw-600 mb-16">Topics</h3><ul class="ul-no-style d-flex justify-content-start flex-wrap gap-12 post-topics"><li><a data-bi-area="body_topics" data-bi-id="post_page_body_topics" data-bi-name="High Availability tag" class="d-flex align-items-center btn-outline-secondary px-8" href="https://devblogs.microsoft.com/azuregov/tag/high-availability/"
aria-label="High Availability tag">High Availability</a></li></ul></div><div class="post-detail-share social-panel" data-bi-area="body_share post">
<h3 class="fs-16 fw-600 mb-16 x-hidden-focus">Share</h3>
<ul class="ul-no-style d-flex social-share-list gap-24 pl-0">
<li class="social-share-item">
<a href="https://www.facebook.com/sharer/sharer.php?u=https://devblogs.microsoft.com/azuregov/new-high-availability-checklist-now-available/" data-bi-id="post_page_body_share post" data-post-id=805 data-bi-name="Share on Facebook" aria-label="Share on Facebook" rel="noopener noreferrer nofollow" target="_blank" class="d-flex share-post">
<span aria-hidden="true" class="msx-svg"><svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" fill="none">
<path d="M25.6663 13.9997C25.6663 7.55635 20.443 2.33301 13.9997 2.33301C7.55635 2.33301 2.33301 7.55635 2.33301 13.9997C2.33301 19.8228 6.59934 24.6494 12.1768 25.5246V17.3721H9.21452V13.9997H12.1768V11.4294C12.1768 8.5054 13.9185 6.8903 16.5834 6.8903C17.8599 6.8903 19.195 7.11816 19.195 7.11816V9.98926H17.7238C16.2746 9.98926 15.8226 10.8886 15.8226 11.8112V13.9997H19.0583L18.541 17.3721H15.8226V25.5246C21.4 24.6494 25.6663 19.8228 25.6663 13.9997Z" fill="#0F6CBD"/>
<path d="M19.0586 14H15.8229V11.8115C15.8229 10.8889 16.2749 9.98958 17.7242 9.98958H19.1953V7.11849C19.1953 7.11849 17.8602 6.89062 16.5838 6.89062C13.9188 6.89062 12.1771 8.50573 12.1771 11.4297V14H9.21484V17.3724H12.1771V25.5249C12.7711 25.6181 13.3798 25.6667 14 25.6667C14.6202 25.6667 15.2289 25.6181 15.8229 25.5249V17.3724H18.5413L19.0586 14Z" fill="white"/></span></svg></a>
</li>
<li class="social-share-item">
<a href="https://twitter.com/intent/tweet?url=https://devblogs.microsoft.com/azuregov/new-high-availability-checklist-now-available/&text=New high availability checklist now available" data-bi-id="post_page_body_share post" data-post-id=805 data-bi-name="Share on X" aria-label="Share on X" target="_blank" rel="noreferrer noopener" class="d-flex share-post">
<span aria-hidden="true" class="msx-svg"><svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" fill="none"><path class="dark-theme" d="M16.1643 12.2581L24.6335 2.625H22.6266L15.2728 10.9893L9.39934 2.625H2.625L11.5068 15.2732L2.625 25.375H4.63204L12.3979 16.5421L18.6007 25.375H25.375L16.1638 12.2581H16.1643ZM13.4154 15.3847L12.5155 14.1252L5.35521 4.10339H8.43791L14.2164 12.1913L15.1163 13.4508L22.6276 23.9639H19.5449L13.4154 15.3852V15.3847Z" fill="#242424"/></svg></span></a>
</li>
<li class="list-inline-item social-share-item">
<a href="https://www.linkedin.com/shareArticle?mini=true&amp;url=https://devblogs.microsoft.com/azuregov/new-high-availability-checklist-now-available/" data-bi-id="post_page_body_share post" data-post-id=805 data-bi-name="Share on LinkedIn" aria-label="Share on LinkedIn" target="_blank" rel="noreferrer noopener" class="d-flex share-post"><span aria-hidden="true" class="msx-svg"><svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" fill="none"><path d="M2.625 5.01974C2.625 3.69716 3.69716 2.625 5.01974 2.625H22.9803C24.3028 2.625 25.375 3.69716 25.375 5.01974V22.9803C25.375 24.3028 24.3028 25.375 22.9803 25.375H5.01974C3.69716 25.375 2.625 24.3028 2.625 22.9803V5.01974Z" fill="#0F6CBD"/><path d="M9.77138 7.8028C9.77138 6.7122 8.8826 5.82715 7.79011 5.82715C6.69276 5.82715 5.80762 6.7122 5.80762 7.8028C5.80762 8.89461 6.69276 9.77967 7.79011 9.77967C8.8826 9.77967 9.77138 8.89461 9.77138 7.8028ZM18.1982 11.0052C21.6588 11.0052 22.2978 13.2747 22.2978 16.2273V22.2401H18.8809L18.8798 16.6214C18.8681 15.404 18.7292 14.0025 17.1057 14.0025C15.327 14.0025 15.0553 15.3882 15.0553 16.8185V22.2401H11.6433V11.2772H14.9183V12.7753H14.9656C15.4203 11.9132 16.5358 11.0052 18.1982 11.0052ZM9.50026 11.2774V22.2402H6.07971V11.2774H9.50026Z" fill="white"/></svg></span></a>
</li>
</ul>
</div></div> <div><!-- Author section -->
<h2 class="fs-20 mb-24">Author</h2>
<div class="d-flex gap-24 flex-column flex-lg-row"><div style="flex: 0 0 100%"><div class="d-flex gap-12 align-items-start"><div class="avatar-parent" style="flex:0 0 auto;"><img class="avatar-40" src="https://secure.gravatar.com/avatar/3fdcbf9c4c8414d6a8ccc664998419aa?s=96&#038;r=g" alt="Adam Glick" style="width: 64px; height: 64px;"></div><div style="flex: 1 0;"><div class="fs-16 fw-600"><a data-bi-area="body_author_bottom" data-bi-id="post_page_body_author_bottom_name" data-bi-name="Adam Glick" class="read-more" href="https://devblogs.microsoft.com/azuregov/author/mobileglick">Adam Glick</a></div></div></div></div></div> </div>
</div>
<div></div>
</div> <div class="container-three-column-even"><!-- start comments bottom full-width section -->
<div></div><!-- Place holder for left sidebar -->
<div class="mb-80" style="max-width: 1324px;"><!-- start max-width bottom section -->
<!-- Comments section -->
<div id="comments" class="mb-40" data-bi-area="body_comments" data-bi-id="post_page_body_comments">
<div id="comments" class="comments-area" data-bi-id="post_page_body_comments">
<h2 class="comments-title"><span class="cm_count">0</span> comments</h2>
<p class="nocomments">Discussion is closed. </p>
<div class="comment-reply-respond" id="comment-reply-respond">
<form method="post" action="https://devblogs.microsoft.com/azuregov/wp-comments-post.php" id="commentform" class="wp-core-ui">
<div id="editor-container-0">
<div id="wp-comment_reply_content-wrap" class="wp-core-ui wp-editor-wrap html-active"><div id="wp-comment_reply_content-editor-container" class="wp-editor-container"><div id="qt_comment_reply_content_toolbar" class="quicktags-toolbar hide-if-no-js"></div><textarea class="wp-editor-area" style="height: 200px" cols="40" name="comment_reply_content" id="comment_reply_content"></textarea></div>
</div>
<div class="vote">
<span class="form-submit">
<input name="submit" type="submit" id="submit" class="btn btn-primary" value="Reply">
<input type="button" value="Cancel" id="cancel-reply-comment-form" name="Cancel" class="btn btn-secondary">
<input type="hidden" name="comment_post_ID" value="805" id="comment_post_ID">
<input type="hidden" name="comment_parent" id="comment_parent" value="0">
</span>
<span class="code-of-conduct"><a href="https://aka.ms/msftqacodeconduct">Code of Conduct</a></span>
</div>
<input type="hidden" id="_wp_unfiltered_html_comment_disabled" name="_wp_unfiltered_html_comment" value="ad7af05511">
</div><!-- editor-container -->
</form>
</div>
<ul class="commentlist">
</ul><!-- .commentlist -->
</div><!-- #comments .comments-area -->
<script id="commentsloader">
var ajaxurl_comments = 'https://devblogs.microsoft.com/azuregov/wp-admin/admin-ajax.php';
var parent_post_id = 805;
var cpage = 1;
</script> </div>
<div class="read-next-desktop">
<div class="read-next">
<!-- Read Next Section -->
<h2 class="fs-20 mb-24">Read next</h2>
<div>
<article>
<div class="box bg-white p-12 rounded shadow mb-24 position-relative border-1" style="max-width: 334px;">
<div class="fs-14 mb-16 fw-light">June 30, 2016</div>
<h3 class="fs-16 mb-16"><a class="single-click" data-bi-area="sidebar_right_read_next" data-bi-id="post_page_sidebar_right_read_next_singleclick" data-bi-name="Join us at Red Hat’s DevNation Federal 2016 in Washington, DC &#8211; July 28" href="https://devblogs.microsoft.com/azuregov/join-us-at-red-hats-devnation-federal-2016-in-washington-dc-july-28/">Join us at Red Hat’s DevNation Federal 2016 in Washington, DC &#8211; July 28</a></h3>
<div class="d-flex gap-6 align-items-center"><div class="d-flex gap-6 align-items-center">
<div class="avatar-parent">
<img src="https://devblogs.microsoft.com/azuregov/wp-content/uploads/sites/43/2019/03/Karina-Homme-1-150x150.jpg" style="width: 20px; height: 20px;"
class="avatar-20 rounded-pill a" alt="">
</div>
<span class="fs-14">Karina Homme</span>
</div></div>
</div>
</article><article>
<div class="box bg-white p-12 rounded shadow mb-24 position-relative border-1" style="max-width: 334px;">
<div class="fs-14 mb-16 fw-light">July 1, 2016</div>
<h3 class="fs-16 mb-16"><a class="single-click" data-bi-area="sidebar_right_read_next" data-bi-id="post_page_sidebar_right_read_next_singleclick" data-bi-name="Raising the Bar – Personnel Screening" href="https://devblogs.microsoft.com/azuregov/raising-the-bar-personnel-screening/">Raising the Bar – Personnel Screening</a></h3>
<div class="d-flex gap-6 align-items-center"><div class="d-flex gap-6 align-items-center">
<div class="avatar-parent">
<img src="https://devblogs.microsoft.com/azuregov/wp-content/uploads/sites/43/2023/07/Zach-Kramer-96x96.jpg" style="width: 20px; height: 20px;"
class="avatar-20 rounded-pill a" alt="">
</div>
<span class="fs-14">Zach Kramer</span>
</div></div>
</div>
</article> </div>
</div>
</div>
<!-- Stay Informed Section -->
<style>
@media (min-width:1212px) {
.stay-informed.p-16 {
padding: 40px;
}
.single .newsletter-form {
padding-right: 40px;
border-right: 1px solid var(--clr-border);
}
.single .follow-blog {
padding-left: 40px;
}
}
@media (max-width:1211px) {
.single .newsletter-form {
padding-bottom: 24px;
border-bottom: 1px solid var(--clr-border);
margin-bottom: 24px;
}
}
</style>
<div class="stay-informed d-flex align-items-stretch flex-column flex-lg-row border-2 border-r-8 p-16">
<div class="newsletter-form w-100" id="subscribe_form" data-bi-area="body_newsletter" data-bi-id="post_page_body_newsletter">
<h2 id="stayInformed" class="fs-20 fw-600 mb-8">Stay informed</h2>
<div class="fs-14 pb-16">Get notified when new posts are published.</div>
<form method="post" action="https://devblogs.microsoft.com/azuregov?na=s" onsubmit="return newsletter_check(this)">
<input type="hidden" name="nlang" value="">
<div class="d-flex flex-column gap-12 mb-12">
<label for="ne">Email <span>*</span></label>
<div class="d-flex align-items-center justify-content-start flex-md-grow-1 bg-white" style="align-self: stretch; height: 32px; border-radius: 4px; overflow: hidden; border: 1px solid var(--clr-border); width: 90%;"> <input class="x-hidden-focus bg-white" style="flex: 1 1 0; align-self: stretch; border: none; padding: 4px 10px; font-family: Segoe UI; color: var(--clr-body);" type="email" name="ne" placeholder="Enter your email" required="" aria-required="true" autocomplete="email">
</div><div class="tnp-field tnp-field-profile"><label for="tnp-profile_1">Country/Region <span>*</span></label>
<select class="tnp-profile tnp-profile-1 mt-8" id="tnp-profile_1" name="np1" aria-label="Select Country/Region" autocomplete="country-name" required aria-required="true"><option value="" selected disabled>Select...</option><option>United States</option><option>Afghanistan</option><option>Åland Islands</option><option>Albania</option><option>Algeria</option><option>American Samoa</option><option>Andorra</option><option>Angola</option><option>Anguilla</option><option>Antarctica</option><option>Antigua and Barbuda</option><option>Argentina</option><option>Armenia</option><option>Aruba</option><option>Australia</option><option>Austria</option><option>Azerbaijan</option><option>Bahamas</option><option>Bahrain</option><option>Bangladesh</option><option>Barbados</option><option>Belarus</option><option>Belgium</option><option>Belize</option><option>Benin</option><option>Bermuda</option><option>Bhutan</option><option>Bolivia</option><option>Bonaire</option><option>Bosnia and Herzegovina</option><option>Botswana</option><option>Bouvet Island</option><option>Brazil</option><option>British Indian Ocean Territory</option><option>British Virgin Islands</option><option>Brunei</option><option>Bulgaria</option><option>Burkina Faso</option><option>Burundi</option><option>Cabo Verde</option><option>Cambodia</option><option>Cameroon</option><option>Canada</option><option>Cayman Islands</option><option>Central African Republic</option><option>Chad</option><option>Chile</option><option>China</option><option>Christmas Island</option><option>Cocos (Keeling) Islands</option><option>Colombia</option><option>Comoros</option><option>Congo</option><option>Congo (DRC)</option><option>Cook Islands</option><option>Costa Rica</option><option>Côte dIvoire</option><option>Croatia</option><option>Curaçao</option><option>Cyprus</option><option>Czechia</option><option>Denmark</option><option>Djibouti</option><option>Dominica</option><option>Dominican Republic</option><option>Ecuador</option><option>Egypt</option><option>El Salvador</option><option>Equatorial Guinea</option><option>Eritrea</option><option>Estonia</option><option>Eswatini</option><option>Ethiopia</option><option>Falkland Islands</option><option>Faroe Islands</option><option>Fiji</option><option>Finland</option><option>France</option><option>French Guiana</option><option>French Polynesia</option><option>French Southern Territories</option><option>Gabon</option><option>Gambia</option><option>Georgia</option><option>Germany</option><option>Ghana</option><option>Gibraltar</option><option>Greece</option><option>Greenland</option><option>Grenada</option><option>Guadeloupe</option><option>Guam</option><option>Guatemala</option><option>Guernsey</option><option>Guinea</option><option>Guinea-Bissau</option><option>Guyana</option><option>Haiti</option><option>Heard Island and McDonald Islands</option><option>Honduras</option><option>Hong Kong SAR</option><option>Hungary</option><option>Iceland</option><option>India</option><option>Indonesia</option><option>Iraq</option><option>Ireland</option><option>Isle of Man</option><option>Israel</option><option>Italy</option><option>Jamaica</option><option>Jan Mayen</option><option>Japan</option><option>Jersey</option><option>Jordan</option><option>Kazakhstan</option><option>Kenya</option><option>Kiribati</option><option>Korea</option><option>Kosovo</option><option>Kuwait</option><option>Kyrgyzstan</option><option>Laos</option><option>Latvia</option><option>Lebanon</option><option>Lesotho</option><option>Liberia</option><option>Libya</option><option>Liechtenstein</option><option>Lithuania</option><option>Luxembourg</option><option>Macau SAR</option><option>Madagascar</option><option>Malawi</option><option>Malaysia</option><option>Maldives</option><option>Mali</option><option>Malta</option><option>Marshall Islands</option><option>Martinique</option><option>Mauritania</option><option>Mauritius</option><option>Mayotte</option><option>Mexico</option><option>Micronesia</option><option>Moldova</option><option>Monaco</option><option>Mongolia</option><option>Montenegro</option><option>Montserrat</option><option>Morocco</option><option>Mozambique</option><option>Myanmar</option><option>Namibia</option><option>Nauru</option><option>Nepal</option><option>Netherlands</option><option>New Caledonia</option><option>New Zealand</option><option>Nicaragua</option><option>Niger</option><option>Nigeria</option><option>Niue</option><option>Norfolk Island</option><option>North Macedonia</option><option>Northern Mariana Islands</option><option>Norway</option><option>Oman</option><option>Pakistan</option><option>Palau</option><option>Palestinian Authority</option><option>Panama</option><option>Papua New Guinea</option><option>Paraguay</option><option>Peru</option><option>Philippines</option><option>Pitcairn Islands</option><option>Poland</option><option>Portugal</option><option>Puerto Rico</option><option>Qatar</option><option>Réunion</option><option>Romania</option><option>Rwanda</option><option>Saba</option><option>Saint Barthélemy</option><option>Saint Kitts and Nevis</option><option>Saint Lucia</option><option>Saint Martin</option><option>Saint Pierre and Miquelon</option><option>Saint Vincent and the Grenadines</option><option>Samoa</option><option>San Marino</option><option>São Tomé and Príncipe</option><option>Saudi Arabia</option><option>Senegal</option><option>Serbia</option><option>Seychelles</option><option>Sierra Leone</option><option>Singapore</option><option>Sint Eustatius</option><option>Sint Maarten</option><option>Slovakia</option><option>Slovenia</option><option>Solomon Islands</option><option>Somalia</option><option>South Africa</option><option>South Georgia and South Sandwich Islands</option><option>South Sudan</option><option>Spain</option><option>Sri Lanka</option><option>St Helena</option><option>Ascension</option><option>Tristan da Cunha</option><option>Suriname</option><option>Svalbard</option><option>Sweden</option><option>Switzerland</option><option>Taiwan</option><option>Tajikistan</option><option>Tanzania</option><option>Thailand</option><option>Timor-Leste</option><option>Togo</option><option>Tokelau</option><option>Tonga</option><option>Trinidad and Tobago</option><option>Tunisia</option><option>Turkey</option><option>Turkmenistan</option><option>Turks and Caicos Islands</option><option>Tuvalu</option><option>U.S. Outlying Islands</option><option>U.S. Virgin Islands</option><option>Uganda</option><option>Ukraine</option><option>United Arab Emirates</option><option>United Kingdom</option><option>Uruguay</option><option>Uzbekistan</option><option>Vanuatu</option><option>Vatican City</option><option>Venezuela</option><option>Vietnam</option><option>Wallis and Futuna</option><option>Yemen</option><option>Zambia</option><option>Zimbabwe</option></select>
</div><div id="privacyField" class="tnp-field tnp-privacy-field">
<label>I would like to receive the Azure Government Newsletter. <a style="color: var(--clr-body-link); text-decoration: underline;" target="_blank" href="https://go.microsoft.com/fwlink/?LinkId=521839">Privacy Statement.</a></label>
</div>
<div id="consentContainer"></div>
<div class="d-flex">
<button class="tnp-submit btn-primary" type="submit" value="Subscribe">Subscribe</button>
</div>
</div>
</form>
</div> <div class="follow-blog w-100">
<div class="fs-20 fw-600 mb-16">Follow this blog</div>
<ul class="ul-no-style d-inline-flex justify-content-start align-items-center flex-wrap gap-24" data-bi-area="body_blog_follow">
<li><a style="width: 24px; height: 24px; position: relative;" title="RSS Feed" data-bi-id="post_page_body_blog_follow" data-bi-name="Azure Government-rss-feed" aria-label="Subscribe to Our RSS Feed" target="_blank" rel="noopener noreferrer" href="https://devblogs.microsoft.com/azuregov/feed/"><svg xmlns="http://www.w3.org/2000/svg" class="dark-theme-rss" width="24" height="24" viewBox="0 0 24 24" fill="none"><path class="dark-theme" d="M6.25 3C4.45507 3 3 4.45507 3 6.25V17.75C3 19.5449 4.45507 21 6.25 21H17.75C19.5449 21 21 19.5449 21 17.75V6.25C21 4.45507 19.5449 3 17.75 3H6.25ZM6.75 7.5C6.34494 7.5 6 7.18276 6 6.7777V6.7233C6 6.33021 6.30507 6.00189 6.69816 6.00012L6.75 6C12.9632 6 18 11.0368 18 17.25L17.9999 17.3018C17.9981 17.6949 17.6698 18 17.2767 18H17.2223C16.8172 18 16.5 17.6551 16.5 17.25C16.5 11.8652 12.1348 7.5 6.75 7.5ZM13.294 18H13.2036C12.805 18 12.5 17.6486 12.5 17.25C12.5 14.0744 9.92564 11.5 6.75 11.5C6.35135 11.5 6 11.195 6 10.7964V10.706C6 10.3267 6.2871 10.0048 6.66639 10.0005C6.69422 10.0002 6.72209 10 6.75 10C10.7541 10 14 13.2459 14 17.25C14 17.2779 13.9998 17.3058 13.9995 17.3336C13.9952 17.7129 13.6733 18 13.294 18ZM7.5 18C6.67157 18 6 17.3284 6 16.5C6 15.6716 6.67157 15 7.5 15C8.32843 15 9 15.6716 9 16.5C9 17.3284 8.32843 18 7.5 18Z" fill="#DA3B01"/></svg></a></li> </ul>
</div>
</div>
</div><!-- end max-width bottom section -->
</div><!-- end comments bottom full-width section -->
</div>
<!-- Comment icon loader model / popup -->
<div class="modal fade bd-example-modal-sm" id="dev-cm-error-msg" tabindex="-1" role="dialog"
aria-labelledby="mySmallModalLabel" aria-hidden="true">
<div class="modal-dialog modal-sm modal-dialog-centered" style="margin: 0 auto;">
<div class="modal-content">
<div class="modal-body" style="text-align:center;">
</div>
</div>
</div>
</div>
<!-- Comment icon cofirm model / popup -->
<div class="modal fade dev-cm-icon-modal" tabindex="-1" role="dialog" aria-labelledby="commentModalLabel"
aria-hidden="true" id="mi-modal">
<div class="modal-dialog modal-dialog-centered" style="margin: 0 auto; max-width:370px;">
<div class="modal-content">
<div class="modal-header" style="border-bottom: none;">
<div class="modal-title" id="myModalLabel" style="font-size: 16px;">Are you sure you wish to delete this
comment?</div>
<!-- <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> -->
</div>
<div class="modal-footer" style="border-top: none;">
<button type="button" class="btn btn-primary" id="modal-btn-si">OK</button>
<button type="button" class="btn btn-secondary" id="modal-btn-no">Cancel</button>
</div>
</div>
</div>
</div>
<!-- Code Header for Post detail pages and Code to append a click to copy button -->
<script>
let codeblocks = document.querySelectorAll("pre");
// Create the SVG icon element
const svgCodeIcon = `
<svg xmlns="http://www.w3.org/2000/svg" class="dark-theme-copybtn" width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M8 2C6.89543 2 6 2.89543 6 4V14C6 15.1046 6.89543 16 8 16H14C15.1046 16 16 15.1046 16 14V4C16 2.89543 15.1046 2 14 2H8ZM7 4C7 3.44772 7.44772 3 8 3H14C14.5523 3 15 3.44772 15 4V14C15 14.5523 14.5523 15 14 15H8C7.44772 15 7 14.5523 7 14V4ZM4 6.00001C4 5.25973 4.4022 4.61339 5 4.26758V14.5C5 15.8807 6.11929 17 7.5 17H13.7324C13.3866 17.5978 12.7403 18 12 18H7.5C5.567 18 4 16.433 4 14.5V6.00001Z" fill="#616161"/></svg>
`;
codeblocks.forEach((block) => {
if (navigator.clipboard) {
let codeheader = document.createElement("div");
codeheader.className = 'evo-codeheader';
codeheader.innerHTML = '<div class="code-header d-flex align-items-center justify-content-end gap-4"><span class="language"></span><button class="copy-button d-flex align-items-center gap-4 fs-14 fw-600"> ' + svgCodeIcon + ' Copy</button></div>';
block.insertAdjacentElement('beforebegin', codeheader);
let button = codeheader.querySelector('.copy-button');
button.addEventListener("click", async () => {
let blockToCopy = block;
await copyCode(blockToCopy, button);
});
}
});
async function copyCode(blockToCopy, button) {
let code = blockToCopy.querySelector("code");
let text = '';
if (code) {
text = code.innerText;
} else {
text = blockToCopy.innerText;
}
try {
await navigator.clipboard.writeText(text);
} catch (err) {
console.error('Failed to copy:', err);
}
button.innerText = "Copied";
setTimeout(() => {
button.innerHTML = '' + svgCodeIcon + ' Copy';
}, 1400);
}
</script>
<!-- End -->
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery('.post-like a.like-button').on('focus', function () {
jQuery('a.like-button').tooltip('show');
});
jQuery('.post-like a.like-button').on('focusout', function () {
jQuery('a.like-button').tooltip('hide');
});
});
</script>
</div><!-- end .wrapper -->
</main><!-- end #main -->
<!-- Add a hidden dark theme button to trigger the toggle function -->
<div style="display:none;">
<div class="login-section c-me d-flex align-items-center">
<a class="login-but d-flex align-items-center" data-bi-area="dev blogs header" data-bi-name="Sign in" href="https://devblogs.microsoft.com/azuregov/wp-login.php?redirect_to=https%3A%2F%2Fdevblogs.microsoft.com%2Fazuregov%2Fnew-high-availability-checklist-now-available%2F">Sign in</a>
</div>
</div><div id="theme-picker" data-bi-area="dev blogs header" data-bi-id="theme-picker" data-bi-name="Switch to dark theme" class="c-me theme-picker d-flex align-items-center" style="margin-right: 14px;">
<button id="theme-picker-button" style="height: 25px;" class="d-flex btn border-r-12"
aria-pressed="false" aria-label="Dark theme switch">
<span class="theme-text d-flex align-items-center"
style="overflow-x: visible; padding: 0px 8px; gap: 6px; font-family: 'Segoe UI', sans-serif; font-size: 13px;"></svg>Theme</span>
</button>
</div><script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/azuregov/*"},{"not":{"href_matches":["/azuregov/wp-*.php","/azuregov/wp-admin/*","/azuregov/wp-content/uploads/sites/43/*","/azuregov/wp-content/*","/azuregov/wp-content/plugins/*","/azuregov/wp-content/themes/devblogs-evo/*","/azuregov/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script>
// Get iframe youtube video length
var iframes = jQuery('iframe[src^="https://www.youtube.com/embed/"], iframe[src^="//www.youtube.com/embed/"], iframe[src^="http://www.youtube.com/embed/"], iframe[src^="www.youtube.com/embed/"], iframe[src^="youtube.com/embed/"], iframe[src^="https://www.youtube.com/"]');
var i, len;
len = iframes.length;
// Country JSON data
function funJSONData(countryData) {
if (countryData.Country == 'CN') {
if (len > 0) {
for (var i = 0; i < len; ++i) {
var el = iframes[i];
el.parentNode.removeChild(el);
}
}
}
}
jQuery(document).ready(function () {
// Remove youtube videos from page
});
</script>
<script id="commentsvote-js-extra">
var votecommentajax = {"ajaxurl":"https://devblogs.microsoft.com/azuregov/wp-admin/admin-ajax.php"};
//# sourceURL=commentsvote-js-extra
</script>
<script id="commentsvote-js" src="https://devblogs.microsoft.com/azuregov/wp-content/plugins/devblogs-comments-evo/admin/js/commentsvote.js?ver=1.1"></script>
<script id="mpp_gutenberg_tabs-js" src="https://devblogs.microsoft.com/azuregov/wp-content/plugins/metronet-profile-picture/js/mpp-frontend.js?ver=2.6.4"></script>
<script id="evo-breadcrumb-script-js" src="https://devblogs.microsoft.com/azuregov/wp-content/plugins/devblogs-evo-breadcrumbs/assets/breadcrumbs.min.js?ver=1.7"></script>
<script id="page-view-ajax-js-extra">
var PostViewsAjaxData = {"ajax_url":"https://devblogs.microsoft.com/azuregov/wp-admin/admin-ajax.php","post_id":"805","nonce":"public_nonce"};
//# sourceURL=page-view-ajax-js-extra
</script>
<script id="page-view-ajax-js" src="https://devblogs.microsoft.com/azuregov/wp-content/plugins/devblogs-evo-pageviews/assets/js/page-view-ajax.js?ver=1739300924"></script>
<script id="devblogs-lightbox-js-js" src="https://devblogs.microsoft.com/azuregov/wp-content/plugins/devblogs-lightbox/assets/js/lightbox.min.js?ver=1770924660"></script>
<script id="newsletter-country-sync-js-js-extra">
var NCSData = {"blogName":"Azure Government"};
//# sourceURL=newsletter-country-sync-js-js-extra
</script>
<script id="newsletter-country-sync-js-js" src="https://devblogs.microsoft.com/azuregov/wp-content/plugins/newsletter-country-sync/js/newsletter-country-scripts.min.js?ver=1770158083"></script>
<script id="anchorific-js" src="https://devblogs.microsoft.com/azuregov/wp-content/plugins/shortcode-toc/assets/vendor/js/anchorific.js?ver=1.0.3"></script>
<script id="code-prettify-js-before">
var codePrettifyLoaderBaseUrl = "https:\/\/devblogs.microsoft.com\/azuregov\/wp-content\/plugins\/code-prettify\/prettify";
//# sourceURL=code-prettify-js-before
</script>
<script id="code-prettify-js" src="https://devblogs.microsoft.com/azuregov/wp-content/plugins/code-prettify/prettify/run_prettify.js?ver=1.4.0"></script>
<script id="devblogs-evo-scripts-js-extra">
var devblog_url = {"siteurl":"https://devblogs.microsoft.com/azuregov"};
var devblogs_ajax = {"ajaxurl":"https://devblogs.microsoft.com/azuregov/wp-admin/admin-ajax.php"};
var ajax_object = {"is_single":"1"};
var devblogs_ajax2 = {"ajaxurl":"https://devblogs.microsoft.com/azuregov/wp-admin/admin-ajax.php"};
var devblogs_ajax_evo = {"ajaxurl":"https://devblogs.microsoft.com/wp-admin/admin-ajax.php"};
var devblogs_site_url = {"site_url":"https://devblogs.microsoft.com/azuregov"};
//# sourceURL=devblogs-evo-scripts-js-extra
</script>
<script id="devblogs-evo-scripts-js" src="https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/js/theme.min.js?ver=1.4.0.1763057732"></script>
<script id="custom-theme-js-js" src="https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/js/custom-theme.min.js?ver=1776792580"></script>
<script id="toc-script-js" src="https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/js/single/toc.js?ver=1776451092"></script>
<script id="like-script-js" src="https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/js/single/add-likes.min.js?ver=1777571264"></script>
<script id="social-sidebar-script-js" src="https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/js/single/social-sidebar.js?ver=1737047887"></script>
<script id="read-more-script-js" src="https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/js/single/read-more.js?ver=1744306540"></script>
<script id="heading-links-script-js" src="https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/js/single/heading-links.js?ver=1737047887"></script>
<script id="theme-picker-script-js" src="https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/js/theme-picker.min.js?ver=1784834880"></script>
<script id="dropdown-menu-script-js" src="https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/js/dropdown-menu.min.js?ver=1776961454"></script>
<script id="back-to-top-script-js" src="https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/js/back-to-top.min.js?ver=1737047887"></script>
<script id="accordion-toggle-js" src="https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/js/accordion-toggle.min.js?ver=1784230473"></script>
<script id="gifffer-js-js" src="https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/js/gifffer.min.js?ver=1.1"></script>
<script id="lite-yt-embed-js" src="https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/js/lite-yt-embed.js?ver=0.3.8"></script>
<script id="custom-jquery-js" src="https://devblogs.microsoft.com/azuregov/wp-content/themes/devblogs-evo/js/jquery-alias.js"></script>
<script id="newsletter-js-extra">
var newsletter_data = {"action_url":"https://devblogs.microsoft.com/azuregov/wp-admin/admin-ajax.php"};
//# sourceURL=newsletter-js-extra
</script>
<script id="newsletter-js" src="https://devblogs.microsoft.com/azuregov/wp-content/plugins/newsletter/main.js?ver=9.3.5"></script>
<script id="clipboard-js" src="https://devblogs.microsoft.com/azuregov/wp-includes/js/clipboard.min.js?ver=2.0.11"></script>
<script id="dev-comments-evo-js-extra">
var siteurl = {"devblogsiteurl":"https://devblogs.microsoft.com/azuregov"};
var devblogsajax = {"ajaxurl":"https://devblogs.microsoft.com/azuregov/wp-admin/admin-ajax.php"};
var devblogsPost = {"ID":"805"};
var devblogsSecurity = {"checkLinksNonce":"492bb81e61"};
//# sourceURL=dev-comments-evo-js-extra
</script>
<script id="dev-comments-evo-js" src="https://devblogs.microsoft.com/azuregov/wp-content/plugins/devblogs-comments-evo/admin/js/simplecomments.min.js?ver=1783529315"></script>
<script id="highlight-script-js" src="https://devblogs.microsoft.com/azuregov/wp-content/plugins/devblogs-blocks/assets/highlight.js"></script>
<script id="quicktags-js-extra">
var quicktagsL10n = {"closeAllOpenTags":"Close all open tags","closeTags":"close tags","enterURL":"Enter the URL","enterImageURL":"Enter the URL of the image","enterImageDescription":"Enter a description of the image","textdirection":"text direction","toggleTextdirection":"Switch Editor Text Direction","dfw":"Distraction-free writing mode","strong":"Bold","strongClose":"Close bold tag","em":"Italic","emClose":"Close italic tag","link":"Insert link","blockquote":"Blockquote","blockquoteClose":"Close blockquote tag","del":"Deleted text (strikethrough)","delClose":"Close deleted text tag","ins":"Inserted text","insClose":"Close inserted text tag","image":"Insert image","ul":"Bulleted list","ulClose":"Close bulleted list tag","ol":"Numbered list","olClose":"Close numbered list tag","li":"List item","liClose":"Close list item tag","code":"Code","codeClose":"Close code tag","more":"Insert Read More tag"};
//# sourceURL=quicktags-js-extra
</script>
<script id="quicktags-js" src="https://devblogs.microsoft.com/azuregov/wp-includes/js/quicktags.min.js"></script>
<script id="hoverIntent-js" src="https://devblogs.microsoft.com/azuregov/wp-includes/js/hoverIntent.min.js?ver=1.10.2"></script>
<script id="utils-js-extra">
var userSettings = {"url":"/","uid":"0","time":"1788481781","secure":"1"};
//# sourceURL=utils-js-extra
</script>
<script id="utils-js" src="https://devblogs.microsoft.com/azuregov/wp-includes/js/utils.min.js"></script>
<script id="wp-dom-ready-js" src="https://devblogs.microsoft.com/azuregov/wp-includes/js/dist/dom-ready.min.js?ver=3fe927cab37bf38d6a23"></script>
<script id="wp-hooks-js" src="https://devblogs.microsoft.com/azuregov/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script>
<script id="wp-i18n-js" src="https://devblogs.microsoft.com/azuregov/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script>
<script id="wp-i18n-js-after">
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
//# sourceURL=wp-i18n-js-after
</script>
<script id="wp-a11y-js" src="https://devblogs.microsoft.com/azuregov/wp-includes/js/dist/a11y.min.js?ver=31c6cec5a4ff7aff483d"></script>
<script id="common-js-extra">
var bulkActionObserverIds = {"bulk_action":"action","changeit":"new_role"};
//# sourceURL=common-js-extra
</script>
<script id="common-js" src="https://devblogs.microsoft.com/azuregov/wp-admin/js/common.min.js"></script>
<script id="wplink-js-extra">
var wpLinkL10n = {"title":"Insert/edit link","update":"Update","save":"Add Link","noTitle":"(no title)","noMatchesFound":"No results found.","linkSelected":"Link selected.","linkInserted":"Link inserted.","minInputLength":"3"};
//# sourceURL=wplink-js-extra
</script>
<script id="wplink-js" src="https://devblogs.microsoft.com/azuregov/wp-includes/js/wplink.min.js"></script>
<script id="jquery-ui-core-js-before">
jQuery.uiBackCompat = true;
//# sourceURL=jquery-ui-core-js-before
</script>
<script id="jquery-ui-core-js" src="https://devblogs.microsoft.com/azuregov/wp-includes/js/jquery/ui/core.min.js?ver=1.14.2"></script>
<script id="jquery-ui-menu-js" src="https://devblogs.microsoft.com/azuregov/wp-includes/js/jquery/ui/menu.min.js?ver=1.14.2"></script>
<script id="jquery-ui-autocomplete-js" src="https://devblogs.microsoft.com/azuregov/wp-includes/js/jquery/ui/autocomplete.min.js?ver=1.14.2"></script>
<script id="wp-emoji-settings" type="application/json">
{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://devblogs.microsoft.com/azuregov/wp-includes/js/wp-emoji-release.min.js"}}
</script>
<script type="module">
/*! This file is auto-generated */
var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
//# sourceURL=https://devblogs.microsoft.com/azuregov/wp-includes/js/wp-emoji-loader.min.js
</script>
<script>
tinyMCEPreInit = {
baseURL: "https://devblogs.microsoft.com/azuregov/wp-includes/js/tinymce",
suffix: ".min",
mceInit: {},
qtInit: {'comment_reply_content':{id:"comment_reply_content",buttons:"strong,em,del,link,crayon"}},
ref: {plugins:"",theme:"modern",language:""},
load_ext: function(url,lang){var sl=tinymce.ScriptLoader;sl.markDone(url+'/langs/'+lang+'.js');sl.markDone(url+'/langs/'+lang+'_dlg.js');}
};
</script>
<script>
var ajaxurl = "/azuregov/wp-admin/admin-ajax.php";
( function() {
var initialized = [];
var initialize = function() {
var init, id, inPostbox, $wrap;
var readyState = document.readyState;
if ( readyState !== 'complete' && readyState !== 'interactive' ) {
return;
}
for ( id in tinyMCEPreInit.mceInit ) {
if ( initialized.indexOf( id ) > -1 ) {
continue;
}
init = tinyMCEPreInit.mceInit[id];
$wrap = tinymce.$( '#wp-' + id + '-wrap' );
inPostbox = $wrap.parents( '.postbox' ).length > 0;
if (
! init.wp_skip_init &&
( $wrap.hasClass( 'tmce-active' ) || ! tinyMCEPreInit.qtInit.hasOwnProperty( id ) ) &&
( readyState === 'complete' || ( ! inPostbox && readyState === 'interactive' ) )
) {
tinymce.init( init );
initialized.push( id );
if ( ! window.wpActiveEditor ) {
window.wpActiveEditor = id;
}
}
}
}
if ( typeof tinymce !== 'undefined' ) {
if ( tinymce.Env.ie && tinymce.Env.ie < 11 ) {
tinymce.$( '.wp-editor-wrap ' ).removeClass( 'tmce-active' ).addClass( 'html-active' );
} else {
if ( document.readyState === 'complete' ) {
initialize();
} else {
document.addEventListener( 'readystatechange', initialize );
}
}
}
if ( typeof quicktags !== 'undefined' ) {
for ( id in tinyMCEPreInit.qtInit ) {
quicktags( tinyMCEPreInit.qtInit[id] );
if ( ! window.wpActiveEditor ) {
window.wpActiveEditor = id;
}
}
}
}());
</script>
<div id="wp-link-backdrop" style="display: none"></div>
<div id="wp-link-wrap" class="wp-core-ui" style="display: none" role="dialog" aria-modal="true" aria-labelledby="link-modal-title">
<form id="wp-link" tabindex="-1">
<input type="hidden" id="_ajax_linking_nonce" name="_ajax_linking_nonce" value="0b5c702998" /> <h2 id="link-modal-title">Insert/edit link</h2>
<button type="button" id="wp-link-close"><span class="screen-reader-text">
Close </span></button>
<div id="link-selector">
<div id="link-options">
<p class="howto" id="wplink-enter-url">Enter the destination URL</p>
<div>
<label><span>URL</span>
<input id="wp-link-url" type="text" aria-describedby="wplink-enter-url" /></label>
</div>
<div class="wp-link-text-field">
<label><span>Link Text</span>
<input id="wp-link-text" type="text" /></label>
</div>
<div class="link-target">
<label><span></span>
<input type="checkbox" id="wp-link-target" /> Open link in a new tab</label>
</div>
</div>
<p class="howto" id="wplink-link-existing-content">Or link to existing content</p>
<div id="search-panel">
<div class="link-search-wrapper">
<label>
<span class="search-label">Search</span>
<input type="search" id="wp-link-search" class="link-search-field" autocomplete="off" aria-describedby="wplink-link-existing-content" />
<span class="spinner"></span>
</label>
</div>
<div id="search-results" class="query-results" tabindex="0">
<ul></ul>
<div class="river-waiting">
<span class="spinner"></span>
</div>
</div>
<div id="most-recent-results" class="query-results" tabindex="0">
<div class="query-notice" id="query-notice-message">
<em class="query-notice-default">No search term specified. Showing recent items.</em>
<em class="query-notice-hint screen-reader-text">
Search or use up and down arrow keys to select an item. </em>
</div>
<ul></ul>
<div class="river-waiting">
<span class="spinner"></span>
</div>
</div>
</div>
</div>
<div class="submitbox">
<div id="wp-link-cancel">
<button type="button" class="button">Cancel</button>
</div>
<div id="wp-link-update">
<input type="submit" value="Add Link" class="button button-primary" id="wp-link-submit" name="wp-link-submit">
</div>
</div>
</form>
</div>
<script type="text/javascript">
jQuery(document).ready(function ($) {
// Link popup checkbox checked
$('#wp-link .link-target input').prop('checked', true);
// Comment anchor href open in new tab
// $("#comments a").filter(function () {
// return this.indexOf('http://') > -1 || this.indexOf('https://') > -1
// }).attr("target","_blank");
});
</script>
<script type="text/javascript">
var tinyMCE_object = {"button_name":"CTA Button","button_title":"CTA Button Settings"};
</script><script type="text/javascript">(function (undefined) {let scriptOptions={"_localizedStrings":{"redirect_overlay_title":"Hold On","redirect_overlay_text":"You are being redirected to another page,<br>it may take a few seconds.","webview_notification_text":"The selected provider doesn't support embedded browsers!"},"_targetWindow":"prefer-popup","_redirectOverlay":"overlay-with-spinner-and-message","_unsupportedWebviewBehavior":""};
/**
* Used when Cross-Origin-Opener-Policy blocked the access to the opener. We can't have a reference of the opened windows, so we should attempt to refresh only the windows that has opened popups.
*/
window._nslHasOpenedPopup = false;
window._nslWebViewNoticeElement = null;
window.NSLPopup = function (url, title, w, h) {
/**
* Cross-Origin-Opener-Policy blocked the access to the opener
*/
if (typeof BroadcastChannel === "function") {
const _nslLoginBroadCastChannel = new BroadcastChannel('nsl_login_broadcast_channel');
_nslLoginBroadCastChannel.onmessage = (event) => {
if (window?._nslHasOpenedPopup && event.data?.action === 'redirect') {
window._nslHasOpenedPopup = false;
const url = event.data?.href;
_nslLoginBroadCastChannel.close();
if (typeof window.nslRedirect === 'function') {
window.nslRedirect(url);
} else {
window.opener.location = url;
}
}
};
}
const userAgent = navigator.userAgent,
mobile = function () {
return /\b(iPhone|iP[ao]d)/.test(userAgent) ||
/\b(iP[ao]d)/.test(userAgent) ||
/Android/i.test(userAgent) ||
/Mobile/i.test(userAgent);
},
screenX = window.screenX !== undefined ? window.screenX : window.screenLeft,
screenY = window.screenY !== undefined ? window.screenY : window.screenTop,
outerWidth = window.outerWidth !== undefined ? window.outerWidth : document.documentElement.clientWidth,
outerHeight = window.outerHeight !== undefined ? window.outerHeight : document.documentElement.clientHeight - 22,
targetWidth = mobile() ? null : w,
targetHeight = mobile() ? null : h,
left = parseInt(screenX + (outerWidth - targetWidth) / 2, 10),
right = parseInt(screenY + (outerHeight - targetHeight) / 2.5, 10),
features = [];
if (targetWidth !== null) {
features.push('width=' + targetWidth);
}
if (targetHeight !== null) {
features.push('height=' + targetHeight);
}
features.push('left=' + left);
features.push('top=' + right);
features.push('scrollbars=1');
const newWindow = window.open(url, title, features.join(','));
if (window.focus) {
newWindow.focus();
}
window._nslHasOpenedPopup = true;
return newWindow;
};
let isWebView = null;
function checkWebView() {
if (isWebView === null) {
function _detectOS(ua) {
if (/Android/.test(ua)) {
return "Android";
} else if (/iPhone|iPad|iPod/.test(ua)) {
return "iOS";
} else if (/Windows/.test(ua)) {
return "Windows";
} else if (/Mac OS X/.test(ua)) {
return "Mac";
} else if (/CrOS/.test(ua)) {
return "Chrome OS";
} else if (/Firefox/.test(ua)) {
return "Firefox OS";
}
return "";
}
function _detectBrowser(ua) {
let android = /Android/.test(ua);
if (/Opera Mini/.test(ua) || / OPR/.test(ua) || / OPT/.test(ua)) {
return "Opera";
} else if (/CriOS/.test(ua)) {
return "Chrome for iOS";
} else if (/Edge/.test(ua)) {
return "Edge";
} else if (android && /Silk\//.test(ua)) {
return "Silk";
} else if (/Chrome/.test(ua)) {
return "Chrome";
} else if (/Firefox/.test(ua)) {
return "Firefox";
} else if (android) {
return "AOSP";
} else if (/MSIE|Trident/.test(ua)) {
return "IE";
} else if (/Safari\//.test(ua)) {
return "Safari";
} else if (/AppleWebKit/.test(ua)) {
return "WebKit";
}
return "";
}
function _detectBrowserVersion(ua, browser) {
if (browser === "Opera") {
return /Opera Mini/.test(ua) ? _getVersion(ua, "Opera Mini/") :
/ OPR/.test(ua) ? _getVersion(ua, " OPR/") :
_getVersion(ua, " OPT/");
} else if (browser === "Chrome for iOS") {
return _getVersion(ua, "CriOS/");
} else if (browser === "Edge") {
return _getVersion(ua, "Edge/");
} else if (browser === "Chrome") {
return _getVersion(ua, "Chrome/");
} else if (browser === "Firefox") {
return _getVersion(ua, "Firefox/");
} else if (browser === "Silk") {
return _getVersion(ua, "Silk/");
} else if (browser === "AOSP") {
return _getVersion(ua, "Version/");
} else if (browser === "IE") {
return /IEMobile/.test(ua) ? _getVersion(ua, "IEMobile/") :
/MSIE/.test(ua) ? _getVersion(ua, "MSIE ")
:
_getVersion(ua, "rv:");
} else if (browser === "Safari") {
return _getVersion(ua, "Version/");
} else if (browser === "WebKit") {
return _getVersion(ua, "WebKit/");
}
return "0.0.0";
}
function _getVersion(ua, token) {
try {
return _normalizeSemverString(ua.split(token)[1].trim().split(/[^\w\.]/)[0]);
} catch (o_O) {
}
return "0.0.0";
}
function _normalizeSemverString(version) {
const ary = version.split(/[\._]/);
return (parseInt(ary[0], 10) || 0) + "." +
(parseInt(ary[1], 10) || 0) + "." +
(parseInt(ary[2], 10) || 0);
}
function _isWebView(ua, os, browser, version, options) {
switch (os + browser) {
case "iOSSafari":
return false;
case "iOSWebKit":
return _isWebView_iOS(options);
case "AndroidAOSP":
return false;
case "AndroidChrome":
return parseFloat(version) >= 42 ? /; wv/.test(ua) : /\d{2}\.0\.0/.test(version) ? true : _isWebView_Android(options);
}
return false;
}
function _isWebView_iOS(options) {
const document = (window["document"] || {});
if ("WEB_VIEW" in options) {
return options["WEB_VIEW"];
}
return !("fullscreenEnabled" in document || "webkitFullscreenEnabled" in document || false);
}
function _isWebView_Android(options) {
if ("WEB_VIEW" in options) {
return options["WEB_VIEW"];
}
return !("requestFileSystem" in window || "webkitRequestFileSystem" in window || false);
}
const options = {},
nav = window.navigator || {},
ua = nav.userAgent || "",
os = _detectOS(ua),
browser = _detectBrowser(ua),
browserVersion = _detectBrowserVersion(ua, browser);
isWebView = _isWebView(ua, os, browser, browserVersion, options);
}
return isWebView;
}
function isAllowedWebViewForUserAgent(provider) {
const facebookAllowedWebViews = [
'Instagram',
'FBAV',
'FBAN'
];
let whitelist = [];
if (provider && provider === 'facebook') {
whitelist = facebookAllowedWebViews;
}
const nav = window.navigator || {},
ua = nav.userAgent || "";
if (whitelist.length && ua.match(new RegExp(whitelist.join('|')))) {
return true;
}
return false;
}
function disableButtonInWebView(providerButtonElement) {
if (providerButtonElement) {
providerButtonElement.classList.add('nsl-disabled-provider');
providerButtonElement.setAttribute('href', '#');
providerButtonElement.addEventListener('pointerdown', (e) => {
const closeNotice = function () {
if (window._nslWebViewNoticeElement) {
window._nslWebViewNoticeElement.remove();
window._nslWebViewNoticeElement = null;
}
};
closeNotice();
window._nslWebViewNoticeElement = document.createElement('div');
window._nslWebViewNoticeElement.id = "nsl-notices-fallback";
window._nslWebViewNoticeElement.role = 'alert';
window._nslWebViewNoticeElement.ariaLive = 'assertive';
window._nslWebViewNoticeElement.ariaAtomic = 'true';
window._nslWebViewNoticeElement.addEventListener('pointerdown', closeNotice);
window._nslWebViewNoticeElement.addEventListener('keydown', function (e) {
if (e.key === 'Enter') {
e.preventDefault();
closeNotice();
}
});
const webviewNoticeHTML = '<div class="error"><p>' + scriptOptions._localizedStrings.webview_notification_text + '</p></div>';
window._nslWebViewNoticeElement.insertAdjacentHTML("afterbegin", webviewNoticeHTML);
document.body.appendChild(window._nslWebViewNoticeElement);
});
}
}
window._nslDOMReady(function () {
window.nslRedirect = function (url) {
if (scriptOptions._redirectOverlay) {
const overlay = document.createElement('div');
overlay.id = "nsl-redirect-overlay";
let overlayHTML = '';
const overlayContainer = "<div id='nsl-redirect-overlay-container'>",
overlayContainerClose = "</div>",
overlaySpinner = "<div id='nsl-redirect-overlay-spinner'></div>",
overlayTitle = "<p id='nsl-redirect-overlay-title'>" + scriptOptions._localizedStrings.redirect_overlay_title + "</p>",
overlayText = "<p id='nsl-redirect-overlay-text'>" + scriptOptions._localizedStrings.redirect_overlay_text + "</p>";
switch (scriptOptions._redirectOverlay) {
case "overlay-only":
break;
case "overlay-with-spinner":
overlayHTML = overlayContainer + overlaySpinner + overlayContainerClose;
break;
default:
overlayHTML = overlayContainer + overlaySpinner + overlayTitle + overlayText + overlayContainerClose;
break;
}
overlay.insertAdjacentHTML("afterbegin", overlayHTML);
document.body.appendChild(overlay);
}
window.location = url;
};
let targetWindow = scriptOptions._targetWindow || 'prefer-popup',
lastPopup = false;
document.addEventListener('click', function (e) {
if (e.target) {
const buttonLinkElement = e.target.closest('a[data-plugin="nsl"][data-action="connect"]') || e.target.closest('a[data-plugin="nsl"][data-action="link"]');
if (buttonLinkElement) {
if (lastPopup && !lastPopup.closed) {
e.preventDefault();
lastPopup.focus();
} else {
let href = buttonLinkElement.href,
success = false;
if (href.indexOf('?') !== -1) {
href += '&';
} else {
href += '?';
}
const redirectTo = buttonLinkElement.dataset.redirect;
if (redirectTo === 'current') {
href += 'redirect=' + encodeURIComponent(window.location.href) + '&';
} else if (redirectTo && redirectTo !== '') {
href += 'redirect=' + encodeURIComponent(redirectTo) + '&';
}
if (targetWindow !== 'prefer-same-window' && checkWebView()) {
targetWindow = 'prefer-same-window';
}
if (targetWindow === 'prefer-popup') {
lastPopup = NSLPopup(href + 'display=popup', 'nsl-social-connect', buttonLinkElement.dataset.popupwidth, buttonLinkElement.dataset.popupheight);
if (lastPopup) {
success = true;
e.preventDefault();
}
} else if (targetWindow === 'prefer-new-tab') {
const newTab = window.open(href + 'display=popup', '_blank');
if (newTab) {
if (window.focus) {
newTab.focus();
}
success = true;
window._nslHasOpenedPopup = true;
e.preventDefault();
}
}
if (!success) {
window.location = href;
e.preventDefault();
}
}
}
}
});
let buttonCountChanged = false;
const googleLoginButtons = document.querySelectorAll(' a[data-plugin="nsl"][data-provider="google"]');
if (googleLoginButtons.length && checkWebView()) {
googleLoginButtons.forEach(function (googleLoginButton) {
if (scriptOptions._unsupportedWebviewBehavior === 'disable-button') {
disableButtonInWebView(googleLoginButton);
} else {
googleLoginButton.remove();
buttonCountChanged = true;
}
});
}
const facebookLoginButtons = document.querySelectorAll(' a[data-plugin="nsl"][data-provider="facebook"]');
if (facebookLoginButtons.length && checkWebView() && /Android/.test(window.navigator.userAgent) && !isAllowedWebViewForUserAgent('facebook')) {
facebookLoginButtons.forEach(function (facebookLoginButton) {
if (scriptOptions._unsupportedWebviewBehavior === 'disable-button') {
disableButtonInWebView(facebookLoginButton);
} else {
facebookLoginButton.remove();
buttonCountChanged = true;
}
});
}
const separators = document.querySelectorAll('div.nsl-separator');
if (buttonCountChanged && separators.length) {
separators.forEach(function (separator) {
const separatorParentNode = separator.parentNode;
if (separatorParentNode) {
const separatorButtonContainer = separatorParentNode.querySelector('div.nsl-container-buttons');
if (separatorButtonContainer && !separatorButtonContainer.hasChildNodes()) {
separator.remove();
}
}
})
}
});})();</script> <script type="text/javascript">
QTags.addButton( 'customcode', 'code', add_code,'','','',110);
// call back function
function add_code() {
jQuery("#code-text").val("");
jQuery('#codeModal').modal('show');
// Model textarea focus
jQuery('#codeModal').on('shown.bs.modal', function () {
jQuery(this).find('#code-text').focus();
});
}
// Code form add
function myCodeFunction() {
jQuery("myForm").submit();
var codeVal = jQuery("#code-text").val();
if ( codeVal ) {
jQuery('#codeModal').modal('hide');
QTags.insertContent('<pre class="prettyprint">'+ codeVal +'</pre>');
}
}
function myCodeCancelFunction() {
jQuery('#codeModal').modal('hide');
jQuery('[id$=customcode]').focus();
}
</script>
<!-- Model form for code insert -->
<div class="modal fade" id="codeModal" tabindex="-1" role="dialog" aria-labelledby="codeModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="codeModalLabel">Code Block</h5>
<button type="button" class="close" onclick="myCodeCancelFunction()" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<form id="myForm" action="#">
<div class="modal-body">
<div class="form-group">
<label for="code-text">Paste your code snippet</label>
<textarea class="form-control" id="code-text" style="height: 150px;"></textarea>
</div>
</div>
<div class="modal-footer">
<button type="button" onclick="myCodeFunction()" class="btn btn-primary">Ok</button>
<button type="button" name="Cancel" onclick="myCodeCancelFunction()" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
</div>
</form>
</div>
</div>
</div>
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", function () {
const skip = document.getElementById("uhfSkipToMain");
const mainContent = document.getElementById("main");
const announcer = document.getElementById("sr-announcer");
if (!skip || !mainContent) return;
skip.setAttribute("href", "#main");
skip.addEventListener("click", function (e) {
e.preventDefault();
mainContent.setAttribute("tabindex", "-1");
mainContent.focus();
mainContent.scrollIntoView({ behavior: "smooth" });
if (announcer) {
announcer.textContent = "Main content starts here";
}
});
});
</script>
<script>
document.addEventListener("DOMContentLoaded", function () {
document.querySelectorAll('iframe').forEach(function (frame) {
var src = frame.getAttribute('src') || '';
if (
(src.includes('youtube.com') || src.includes('youtu.be')) &&
!frame.hasAttribute('title')
) {
frame.setAttribute('title', 'YouTube video player');
}
});
});
</script>
<!-- UHF footer -->
<uhf-footer locale="en-us" partnerId="DEV_Blogs" footerId="DEV_BlogsFooter" theme="light">
<script id="uhf-footer-ccpa">
(function () {
function checkThirdPartyAdsOptOutCookie() {
try {
var match = document.cookie.match('(^|;)\\s*3PAdsOptOut\\s*=\\s*([^;]+)');
return (match ? match[2] : '') !== '1';
} catch (e) {
return true;
}
}
var globalPrivacyControlEnabled = navigator.globalPrivacyControl;
window.GPC_DataSharingOptIn = globalPrivacyControlEnabled ? false : checkThirdPartyAdsOptOutCookie();
if (typeof window.onGPCLoaded === 'function') {
window.onGPCLoaded();
}
})();
</script>
<uhf-footer-nav slot="uhf-footer-nav">
<div class="uhf-footer-nav-row">
<uhf-footer-nav-group class="uhf-footer-nav-group" heading="What&#x27;s new" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_What&#x27;s new_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Whats_New_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">
<a class="uhf-footer-link" href="https://www.microsoft.com/surface/devices/surface-pro" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_What&#x27;s new_Surface Pro_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Whats_New_Footer_WhatsNew_NewSurfacePro_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Surface Pro</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/surface/devices/surface-laptop" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_What&#x27;s new_Surface Laptop_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Whats_New_Footer_WhatsNew_SurfaceLaptop_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Surface Laptop</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/surface/devices/surface-laptop-ultra?icid=DSM_Footer_WhatsNew_SurfaceLaptopUltra" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_What&#x27;s new_Surface Laptop Ultra_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Whats_New_Footer_WhatsNew_Surface Laptop Ultra_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Surface Laptop Ultra</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/surface/devices/surface-rtx-spark-dev-box?icid=DSM_Footer_WhatsNew_SurfaceRTXSparkDevBox" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_What&#x27;s new_Surface RTX Spark Dev Box_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Whats_New_footer_whatsnew_SurfaceRTXSparksDevBox_nav_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Surface RTX Spark Dev Box</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/microsoft-copilot/organizations?icid=DSM_Footer_CopilotOrganizations" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_What&#x27;s new_Copilot for organizations_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Whats_New_Footer_WhatsNew_CopilotMicrosoft_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Copilot for organizations</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/microsoft-copilot/for-individuals?form=MY02PT&amp;OCID=GE_web_Copilot_Free_868g3t5nj" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_What&#x27;s new_Copilot for personal use_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Whats_New_Footer_WhatsNew_CopilotPersonal_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Copilot for personal use</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/microsoft-products-and-apps" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_What&#x27;s new_Explore Microsoft products_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Whats_New_Footer_WhatsNew_ExploreMicrosoftProducts_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Explore Microsoft products</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/windows/apps-for-windows?icid=DSM_Footer_WhatsNew_Windows11apps" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_What&#x27;s new_Windows 11 apps_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Whats_New_Footer_WhatsNew_Windows_11_apps_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Windows 11 apps</a>
</uhf-footer-nav-group>
<uhf-footer-nav-group class="uhf-footer-nav-group" heading="Microsoft Store" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Microsoft Store_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Store_and_Support_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">
<a class="uhf-footer-link" href="https://account.microsoft.com/" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Microsoft Store_Account profile_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Store_and_Support_Footer_StoreandSupport_AccountProfile_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Account profile</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/download" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Microsoft Store_Download Center_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Store_and_Support_Footer_StoreandSupport_DownloadCenter_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Download Center</a>
<a class="uhf-footer-link" href="https://go.microsoft.com/fwlink/?linkid=2139749" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Microsoft Store_Microsoft Store support_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Store_and_Support_Footer_StoreandSupport_SalesAndSupport_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Microsoft Store support</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/store/b/returns" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Microsoft Store_Returns_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Store_and_Support_Footer_StoreandSupport_Returns_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Returns</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/store/b/order-tracking" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Microsoft Store_Order tracking_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Store_and_Support_Footer_StoreandSupport_OrderTracking_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Order tracking</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/store/b/certified-refurbished-products" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Microsoft Store_Certified Refurbished_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Store_and_Support_Footer_StoreandSupport_StoreLocations_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Certified Refurbished</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/store/b/why-microsoft-store?icid=footer_why-msft-store_7102020" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Microsoft Store_Microsoft Store Promise_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Store_and_Support_Footer_StoreandSupport_MicrosoftPromise_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Microsoft Store Promise</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/store/b/payment-financing-options?icid=footer_financing_vcc" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Microsoft Store_Flexible Payments_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Store_and_Support_Footer_StoreandSupport_Financing_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Flexible Payments</a>
</uhf-footer-nav-group>
<uhf-footer-nav-group class="uhf-footer-nav-group" heading="Education" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Education_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Education_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/education" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Education_Microsoft in education_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Education_Footer_Education_MicrosoftInEducation_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Microsoft in education</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/education/devices/overview" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Education_Devices for education_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Education_Footer_Education_DevicesforEducation_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Devices for education</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/education/products/teams" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Education_Microsoft Teams for Education_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Education_Footer_Education_MicrosoftTeamsforEducation_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Microsoft Teams for Education</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/education/products/microsoft-365" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Education_Microsoft 365 Education_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Education_Footer_Education_Microsoft365Education_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Microsoft 365 Education</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/education/how-to-buy" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Education_How to buy for your school_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Education_Footer_Howtobuyforyourschool_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">How to buy for your school</a>
<a class="uhf-footer-link" href="https://education.microsoft.com/" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Education_Educator training and development_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Education_Footer_Education_EducatorTrainingDevelopment_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Educator training and development</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/store/b/education" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Education_Deals for students and parents_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Education_Footer_Education_DealsForStudentsandParents_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Deals for students and parents</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/education/ai-in-education" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Education_AI for education_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Education_Footer_Education_Azureforstudents_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">AI for education</a>
</uhf-footer-nav-group>
</div>
<div class="uhf-footer-nav-row">
<uhf-footer-nav-group class="uhf-footer-nav-group" heading="Business" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Business_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Business_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/ai?icid=DSM_Footer_AI" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Business_Microsoft AI_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Business_Footer_Business_AI_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Microsoft AI</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/security" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Business_Microsoft Security_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Business_Footer_Business_Microsoft Security_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Microsoft Security</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/dynamics-365" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Business_Dynamics 365_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Business_Footer_Business_MicrosoftDynamics365_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Dynamics 365</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/microsoft-365/business" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Business_Microsoft 365_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Business_Footer_Business_M365_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Microsoft 365</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/power-platform" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Business_Microsoft Power Platform_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Business_Footer_DeveloperAndIT_Power Platform_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Microsoft Power Platform</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/microsoft-teams/group-chat-software" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Business_Microsoft Teams_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Business_Footer_Business_Microsoft365_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Microsoft Teams</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/microsoft-365-copilot?icid=DSM_Footer_Microsoft365Copilot" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Business_Microsoft 365 Copilot_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Business_Footer_CopilotMicrosoft365 _nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Microsoft 365 Copilot</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/store/b/business?icid=CNavBusinessStore" id="Small-Business" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Business_Small Business_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Business_Footer_Business-SmallBusiness_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Small Business</a>
</uhf-footer-nav-group>
<uhf-footer-nav-group class="uhf-footer-nav-group" heading="Developer &amp; IT" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Developer &amp; IT_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Developer_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">
<a class="uhf-footer-link" href="https://azure.microsoft.com/en-us/" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Developer &amp; IT_Azure_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Developer_Footer_DeveloperAndIT_MicrosoftAzure_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Azure</a>
<a class="uhf-footer-link" href="https://developer.microsoft.com/en-us/" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Developer &amp; IT_Microsoft Developer_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Developer_Footer_DeveloperAndIT_MicrosoftDeveloper_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Microsoft Developer</a>
<a class="uhf-footer-link" href="https://learn.microsoft.com/" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Developer &amp; IT_Microsoft Learn_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Developer_Footer_DeveloperAndIT_MicrosoftLearn_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Microsoft Learn</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/software-development-companies/offers-benefits/isv-success?icid=DSM_Footer_SupportAIMarketplace&amp;ocid=cmm3atxvn98" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Developer &amp; IT_Support for AI marketplace apps_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Developer_Footer_DeveloperAndIT_SupportForAIMarketplaceApps_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Support for AI marketplace apps</a>
<a class="uhf-footer-link" href="https://techcommunity.microsoft.com/" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Developer &amp; IT_Microsoft Tech Community_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Developer_Footer_DeveloperAndIT_MicrosoftTechCommunity_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Microsoft Tech Community</a>
<a class="uhf-footer-link" href="https://marketplace.microsoft.com?icid=DSM_Footer_Marketplace&amp;ocid=cmm3atxvn98" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Developer &amp; IT_Microsoft Marketplace_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Developer_Footer_DeveloperAndIT_Marketplace_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Microsoft Marketplace</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/software-development-companies?icid=DSM_Footer_SoftwareCompanies&amp;ocid=cmm3atxvn98" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Developer &amp; IT_Software companies_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Developer_Software companies_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Software companies</a>
<a class="uhf-footer-link" href="https://visualstudio.microsoft.com/" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Developer &amp; IT_Visual Studio_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Developer_Footer_DeveloperAndIT_MicrosoftVisualStudio_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Visual Studio</a>
</uhf-footer-nav-group>
<uhf-footer-nav-group class="uhf-footer-nav-group" heading="Company" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Company_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Company_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">
<a class="uhf-footer-link" href="https://careers.microsoft.com/" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Company_Careers_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Company_Footer_Company_Careers_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Careers</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/about" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Company_About Microsoft_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Company_Footer_Company_AboutMicrosoft_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">About Microsoft</a>
<a class="uhf-footer-link" href="https://news.microsoft.com/source/?icid=DSM_Footer_Company_CompanyNews" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Company_Company news_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Company_Footer_Company_CompanyNews_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Company news</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/privacy?icid=DSM_Footer_Company_Privacy" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Company_Privacy at Microsoft_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Company_Footer_Company_PrivacyAtMicrosoft_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Privacy at Microsoft</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/investor/default.aspx" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Company_Investors_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Company_Footer_Company_Investors_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Investors</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/diversity/default?icid=DSM_Footer_Company_Diversity" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Company_Diversity and inclusion_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Company_Footer_Company_DiversityAndInclusion_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Diversity and inclusion</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/accessibility" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Company_Accessibility_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Company_Footer_Company_Accessibility_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Accessibility</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/corporate-responsibility/sustainability?icid=DSM_Footer_Sustainability" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;FooterNav&quot;, &quot;cN&quot;: &quot;FooterNav_Company_Sustainability_nav&quot;, &quot;ecn&quot;: &quot;FooterNav_Company_Footer_Company_Sustainability_nav&quot;, &quot;ehn&quot;: &quot;FooterNav&quot;}">Sustainability</a>
</uhf-footer-nav-group>
</div>
</uhf-footer-nav>
<div slot="uhf-footer-california-privacy-link">
<a class="uhf-footer-link" href="https://aka.ms/yourcaliforniaprivacychoices" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;LegalNav&quot;, &quot;cN&quot;: &quot;LegalNav_California Privacy_nav&quot;, &quot;ecn&quot;: &quot;LegalNav_CaliforniaPrivacy_nav&quot;, &quot;ehn&quot;: &quot;LegalNav&quot;}">
<svg role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 14" xml:space="preserve" height="16" width="43">
<title>Your Privacy Choices Opt-Out Icon</title>
<path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"/>
<path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"/>
<path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"/>
<path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"/>
</svg>
<span>Your Privacy Choices</span>
</a>
<noscript>
<a class="uhf-footer-link" href="https://aka.ms/yourcaliforniaprivacychoices" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;LegalNav&quot;, &quot;cN&quot;: &quot;LegalNav_California Privacy_nav&quot;, &quot;ecn&quot;: &quot;LegalNav_CaliforniaPrivacy_nav&quot;, &quot;ehn&quot;: &quot;LegalNav&quot;}">
<svg role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 14" xml:space="preserve" height="16" width="43">
<title>Your Privacy Choices Opt-Out Icon</title>
<path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"/>
<path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"/>
<path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"/>
<path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"/>
</svg>
<span>Your Privacy Choices</span>
</a>
</noscript>
</div>
<a slot="uhf-footer-consumer-health-privacy-link" class="uhf-footer-link" href="https://go.microsoft.com/fwlink/?linkid=2259814" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;LegalNav&quot;, &quot;cN&quot;: &quot;LegalNav_Consumer Health Privacy_nav&quot;, &quot;ecn&quot;: &quot;LegalNav_ConsumerHealthPrivacy_nav&quot;, &quot;ehn&quot;: &quot;LegalNav&quot;}">Consumer Health Privacy</a>
<uhf-footer-menu slot="uhf-footer-menu" data-nav-label="Microsoft corporate links">
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/sitemap1.aspx" id="uhf-Footer_Sitemap" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;LegalNav&quot;, &quot;cN&quot;: &quot;LegalNav_Sitemap_nav&quot;, &quot;ecn&quot;: &quot;LegalNav_Footer_Sitemap_nav&quot;, &quot;ehn&quot;: &quot;LegalNav&quot;}">Sitemap</a>
<a class="uhf-footer-link" href="https://support.microsoft.com/contactus" id="uhf-Footer_ContactUs" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;LegalNav&quot;, &quot;cN&quot;: &quot;LegalNav_Contact Microsoft_nav&quot;, &quot;ecn&quot;: &quot;LegalNav_Footer_ContactUs_nav&quot;, &quot;ehn&quot;: &quot;LegalNav&quot;}">Contact Microsoft</a>
<a class="uhf-footer-link" href="https://go.microsoft.com/fwlink/?LinkId=521839" id="uhf-Footer_PrivacyandCookies" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;LegalNav&quot;, &quot;cN&quot;: &quot;LegalNav_Privacy _nav&quot;, &quot;ecn&quot;: &quot;LegalNav_Footer_PrivacyandCookies_nav&quot;, &quot;ehn&quot;: &quot;LegalNav&quot;}">Privacy </a>
<a class="uhf-footer-link" href="#" id="uhf-Footer_ManageCookies" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;LegalNav&quot;, &quot;cN&quot;: &quot;LegalNav_Manage cookies_nav&quot;, &quot;ecn&quot;: &quot;LegalNav_Footer_ManageCookies_nav&quot;, &quot;ehn&quot;: &quot;LegalNav&quot;}">Manage cookies</a>
<a class="uhf-footer-link" href="https://go.microsoft.com/fwlink/?LinkID=206977" id="uhf-Footer_TermsOfUse" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;LegalNav&quot;, &quot;cN&quot;: &quot;LegalNav_Terms of use_nav&quot;, &quot;ecn&quot;: &quot;LegalNav_Footer_TermsOfUse_nav&quot;, &quot;ehn&quot;: &quot;LegalNav&quot;}">Terms of use</a>
<a class="uhf-footer-link" href="https://go.microsoft.com/fwlink/?linkid=2196228" id="uhf-Footer_Trademarks" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;LegalNav&quot;, &quot;cN&quot;: &quot;LegalNav_Trademarks_nav&quot;, &quot;ecn&quot;: &quot;LegalNav_Footer_Trademarks_nav&quot;, &quot;ehn&quot;: &quot;LegalNav&quot;}">Trademarks</a>
<a class="uhf-footer-link" href="https://go.microsoft.com/fwlink/?linkid=2196227" id="uhf-Footer_SafetyAndEco" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;LegalNav&quot;, &quot;cN&quot;: &quot;LegalNav_Safety &amp; eco_nav&quot;, &quot;ecn&quot;: &quot;LegalNav_Footer_SafetyAndEco_nav&quot;, &quot;ehn&quot;: &quot;LegalNav&quot;}">Safety &amp; eco</a>
<a class="uhf-footer-link" href="https://www.microsoft.com/en-us/legal/compliance/recycling" id="uhf-Recycling" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;LegalNav&quot;, &quot;cN&quot;: &quot;LegalNav_Recycling_nav&quot;, &quot;ecn&quot;: &quot;LegalNav_Recycling_nav&quot;, &quot;ehn&quot;: &quot;LegalNav&quot;}">Recycling</a>
<a class="uhf-footer-link" href="https://choice.microsoft.com" id="uhf-Footer_AboutourAds" data-m="{&quot;compnm&quot;: &quot;UHF&quot;, &quot;view&quot;: &quot;UHF&quot;, &quot;pa&quot;: &quot;UniversalFooter&quot;, &quot;hn&quot;: &quot;LegalNav&quot;, &quot;cN&quot;: &quot;LegalNav_About our ads_nav&quot;, &quot;ecn&quot;: &quot;LegalNav_Footer_AboutourAds_nav&quot;, &quot;ehn&quot;: &quot;LegalNav&quot;}">About our ads</a>
</uhf-footer-menu>
</uhf-footer><!--/ UHF footer -->
<!-- back to top button -->
<div class="back-comment-buttons" data-bi-area="sidebar">
<style>
.evo-right-sidebar {
position: fixed !important;
right: 10px;
bottom: 188px;
z-index: 9;
}
.evo-sidebar-button {
display: none;
visibility: hidden;
padding: 0;
z-index: 99999;
border-radius: 50%;
margin-bottom: 1rem;
}
.evo-sidebar-button:hover {
text-decoration: none;
}
.evo-sidebar-button.active {
display: flex;
visibility: visible;
}
.evo-sidebar-button-inner {
padding: 5px 8.5px;
border-radius: 50%;
background: var(--clr-card-bg);
box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.14), 0px 0px 2px 0px rgba(0, 0, 0, 0.12);
color: var(--clr-landing-navbar);
}
.evo-sidebar-button-inner i,
.evo-sidebar-button-inner i::before {
color: var(--clr-landing-navbar);
}
</style>
<div class="evo-right-sidebar">
<a data-bi-id="click back to top of page" data-bi-name="Back to top" href="#page" title="Back to top" aria-label="click back to top of page" class="evo-sidebar-button back-to-top">
<span class="evo-sidebar-button-inner">
<svg width="30" height="30" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M39.5607 32.0607C38.9749 32.6464 38.0251 32.6464 37.4393 32.0607L24 18.6213L10.5607 32.0607C9.97487 32.6464 9.02513 32.6464 8.43934 32.0607C7.85355 31.4749 7.85355 30.5251 8.43934 29.9393L22.9393 15.4393C23.5251 14.8536 24.4749 14.8536 25.0607 15.4393L39.5607 29.9393C40.1464 30.5251 40.1464 31.4749 39.5607 32.0607Z" fill="currentColor"/>
</svg>
</span>
</a>
</div>
</div>
<!-- back to top button -->
<!-- UHF search functionality query parameter append for all pages excluding landing page -->
<script type="text/javascript">
var serachHtml = '<input type="hidden" name="blog" value="/azuregov/" data-m="{&quot;cN&quot;:&quot;HiddenInput_nav&quot;,&quot;id&quot;:&quot;n2c1c9c3m1r1a1&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c1c9c3m1r1a1&quot;}" style="overflow-x: visible;">';
jQuery(".c-uhfh-actions #searchForm").append(serachHtml);
</script>
<!-- Add JSLL tracking to the mobile UHF logo trigger to match the desktop logo (Task 2440600) -->
<script type="text/javascript">
(function () {
// Desktop logo tracking to mirror onto the mobile trigger; falls back to the known UHF blob.
var FALLBACK_DATA_M = '{"compnm":"UHF","view":"UHF","pa":"UniversalHeader","hn":"Anchor","cN":"CatNav_Logo_cont","ecn":"CatNav_Logo_cont","ehn":"Anchor"}';
function applyMobileLogoTracking() {
var desktopLogo = document.querySelector('a.uhf-site-logo');
var dataM = (desktopLogo && desktopLogo.getAttribute('data-m')) || FALLBACK_DATA_M;
var ariaLabel = (desktopLogo && desktopLogo.getAttribute('aria-label')) || 'Dev Blogs';
var triggers = document.querySelectorAll('button.uhf-contextual-nav-trigger');
triggers.forEach(function (trigger) {
if (trigger.dataset.logoTracked) {
return;
}
// Only the brand/logo trigger (mirrors the "Dev Blogs" site logo).
if (!/Dev\s*Blogs/i.test(trigger.textContent)) {
return;
}
trigger.setAttribute('data-m', dataM);
if (!trigger.getAttribute('aria-label')) {
trigger.setAttribute('aria-label', ariaLabel);
}
trigger.dataset.logoTracked = '1';
});
}
document.addEventListener('DOMContentLoaded', applyMobileLogoTracking);
var uhf = document.querySelector('uhf-header') || document.body;
new MutationObserver(applyMobileLogoTracking).observe(uhf, { childList: true, subtree: true });
})();
</script>
</body>
</html>