CINXE.COM

Featured Projects | Microsoft Open Source

<!DOCTYPE html> <html lang="en"> <head> <meta name="robots" content="noindex nofollow" /> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="theme-color" content= "#24292e"> <!--[if IE]><meta http-equiv="cleartype" content="on" /><![endif]--> <link rel="canonical" href="/projects/"> <link rel="stylesheet" media="screen" href="/assets/css/index.css?v=1d" /> <link rel="apple-touch-icon" sizes="180x180" href="/assets/images/favicons/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/assets/images/favicons/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/assets/images/favicons/favicon-16x16.png"> <link rel="manifest" href="/assets/images/favicons/site.webmanifest"> <link rel="shortcut icon" type="image/x-icon" href="/assets/images/favicons/favicon.ico"> <link rel="mask-icon" href="/assets/images/favicons/safari-pinned-tab.svg" color="#11100f"> <meta name="msapplication-config" content="/assets/images/favicons/browserconfig.xml" /> <meta name="msapplication-TileColor" content="#11100f"> <meta name="theme-color" content="#11100f"> <!-- Begin Jekyll SEO tag v2.8.0 --> <title>Featured Projects | Microsoft Open Source</title> <meta name="generator" content="Jekyll v4.1.1" /> <meta property="og:title" content="Featured Projects" /> <meta property="og:locale" content="en_US" /> <meta name="description" content="Microsoft Open Source" /> <meta property="og:description" content="Microsoft Open Source" /> <meta property="og:site_name" content="Microsoft Open Source" /> <meta property="og:image" content="https://opensource.azureedge.net/assets/images/social-card.png" /> <meta property="og:type" content="website" /> <meta name="twitter:card" content="summary_large_image" /> <meta property="twitter:image" content="https://opensource.azureedge.net/assets/images/social-card.png" /> <meta property="twitter:title" content="Featured Projects" /> <meta name="twitter:site" content="@openatmicrosoft" /> <script type="application/ld+json"> {"@context":"https://schema.org","@type":"WebPage","description":"Microsoft Open Source","headline":"Featured Projects","image":"https://opensource.azureedge.net/assets/images/social-card.png","url":"/projects/"}</script> <!-- End Jekyll SEO tag --> <script type="text/javascript"> document.write('<style type="text/css">*[data-animate-in="up"], *[data-animate-in="up"], *[data-animate-in="fade"], *[data-animate-in="left"], *[data-animate-in="right"] { opacity: 0; } .tabs__content { display: none; } *[data-javascript-show="immediate"] { opacity: 1.0 }</style>'); </script> <script src="https://wcpstatic.microsoft.com/mscc/lib/v2/wcp-consent.js"></script> <script src="/assets/js/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script> <script src="/assets/js/jquery.timeago.js"></script> <script src="/assets/js/handlebars.js"></script> <meta name="google-site-verification" content="PXNcqyP34d82CBV3rvH8RwDRH5iWWb_zL-UFwp-3Ubs" /> <meta name="google-site-verification" content="jj6XRLurdxcqc_T28_tszxZ4M2K8TFQDPjvVRb8MLsg" /> </head> <body class="page-loading no-js projects" id="page-projects"> <div id="cookiebanner"></div> <a class="skip-to-content" href="#content" tabindex="1">skip to content</a> <header id="site-header" role="banner"> <div class="site-header__inner"> <div class="site-logo"> <a href="/" tabindex="2"> <img class="mr-3 icon" src="/assets/images/svgs/microsoft-logo-no-text.svg" alt="Microsoft | Open Source logo" /> <span class="p-lg text-white">Microsoft | Open Source</span> </a> </div> <ul class="site-header__nav"> <li> <a href="/collaborate/">Get involved</a> </li> <li class="is-active" aria-current="page" > <a href="/projects/">Projects</a> </li> <li> <a href="/ecosystem/">Ecosystem</a> </li> <li> <a href="/program/">Our program</a> </li> <li> <a href="/blog/"> <span>Blog</span> </a> </li> <li> <a class="external" target="_new" href="https://careers.microsoft.com/us/en/search-results?keywords=open%20source"> <span>Jobs</span> </a> </li> </ul> <div class="site-header__utilities"> <div class="site-header__search"> <form class="search-form" role="search" action="/projects/explore" method="GET"> <label for="header-search"> <span class="sr-only">Search projects</span> <svg class="octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg> </label> <input type="text" id="header-search" name="q" placeholder="Search" /> </form> <div class="search-trigger"> <svg class="octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg> </div> </div> <div class="nav-trigger js-menu-trigger"> <img class="open-menu" src="/assets/images/svgs/menu.svg" alt="menu icon" /> <img class="close-menu" src="/assets/images/svgs/close.svg" alt="close icon" /> </div> <!-- <a class="sign-in" href="https://www.microsoft.com/mscomhp/onerf/signin?EEL=True&pcexp=True&ru=https%3A%2F%2Fwww.microsoft.com%2Fen-us"> <span>Sign In</span> <span class="account-img"></span> </a> --> </div> </div> </header> <nav id="navigation"> <div class="site-navigation"> <div> <ul class="main-nav"> <li> <form class="search-form" role="search" action="/projects/explore" method="GET"> <label> <span class="sr-only">Search projects</span> <svg class="octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg> </label> <input id="search" type="text" name="q" placeholder="Search" /> </form> </li> <li> <a class="is-active" href="/">Home</a> </li> <li> <a href="/collaborate/">Get involved</a> </li> <li class="is-active" > <a href="/projects/">Projects</a> </li> <li> <a href="/ecosystem/">Ecosystem</a> </li> <li> <a href="/program/">Our program</a> </li> <li> <a class="external" target="_new" href="https://careers.microsoft.com/us/en/search-results?keywords=open%20source"> <span>Jobs</span> </a> </li> <li> <a class="external" href="https://cloudblogs.microsoft.com/opensource/" target="_new"> <span>Blog</span> </a> </li> <li> <p>&nbsp;</p> </li> <!-- <li> <a class="sign-in" href="https://www.microsoft.com/mscomhp/onerf/signin?EEL=True&pcexp=True&ru=https%3A%2F%2Fwww.microsoft.com%2Fen-us"> <span>Sign In</span> <span class="account-img"></span> </a> </li> --> </ul> </div> </div> <span class="navigation-screen js-menu-trigger"></span> </nav> <div class="search-form-mobile"> <form class="search-form" role="search" action="/projects/explore" method="GET"> <label> <span class="sr-only">Search projects</span> <svg class="octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search octicon octicon-search" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg> </label> <input id="mobile-search" type="text" name="q" placeholder="Search" /> </form> </div> <main id="content" class="main page-content" aria-label="Content"> <article class="mb-6 pb-6"> <div class="page-header"> <div class="wrapper d-md-flex"> <div class="col-md-6 col-lg-6 mb-4 mb-md-0"> <!-- <p>Microsoft Open Source</p> --> <h1 class="h2">Featured Projects</h1> </div> <div class="col-md-6 pl-md-4 col-lg-4"> <p>Check out featured open source projects and products, or search on your own.</p> <div data-animate-in="fade" data-animate-in-delay="240"> <a class="link-arrow text-white mt-4" href="/projects/explore/">All projects</a> </div> </div> </div> <img class="page-header__shapes-lg" src="/assets/images/direction/project-shapes.svg" alt="abstract shapes" /> </div> <div class="wrapper d-lg-flex flex-justify-between my-6 py-lg-4"> <div class="col-12 col-lg-7 pr-lg-6 mb-4 mb-md-0"> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/accessibility-insights.svg" alt="Accessibility Insights logo" /> <h2>Accessibility Insights</h2> </div> <p>Accessibility Insights is a suite of open source tools that help developers find and fix accessibility issues in Web, Windows and Android applications.</p> <a class="link-arrow-external mt-3" href="https://accessibilityinsights.io/" target="_blank" rel= "noopener">Get Accessibility Insights</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/api-extractor.svg" alt="API Extractor logo" /> <h2>API Extractor</h2> </div> <p>API Extractor helps you ship better TypeScript libraries by detecting breaking API changes, bundling .d.ts rollups, and generating API website docs.</p> <a class="link-arrow-external mt-3" href="https://api-extractor.com/" target="_blank" rel= "noopener">Learn about API Extractor</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/azure-sdk-logo.svg" alt="Azure SDKs logo" /> <h2>Azure SDKs</h2> </div> <p>The Azure SDKs are a set of libraries focused on ensuring that developers around the world have a first-class experience leveraging Azure services in their applications.</p> <a class="link-arrow-external mt-3" href="https://github.com/azure/azure-sdk" target="_blank" rel= "noopener">Visit the Azure SDK page</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <svg height="32" style="margin-right: 12px" aria-label="repository" class="octicon octicon-repo" viewBox="0 0 24 24" version="1.1" width="32" role="img"><path fill-rule="evenodd" d="M3 2.75A2.75 2.75 0 015.75 0h14.5a.75.75 0 01.75.75v20.5a.75.75 0 01-.75.75h-6a.75.75 0 010-1.5h5.25v-4H6A1.5 1.5 0 004.5 18v.75c0 .716.43 1.334 1.05 1.605a.75.75 0 01-.6 1.374A3.25 3.25 0 013 18.75v-16zM19.5 1.5V15H6c-.546 0-1.059.146-1.5.401V2.75c0-.69.56-1.25 1.25-1.25H19.5z"></path><path d="M7 18.25a.25.25 0 01.25-.25h5a.25.25 0 01.25.25v5.01a.25.25 0 01-.397.201l-2.206-1.604a.25.25 0 00-.294 0L7.397 23.46a.25.25 0 01-.397-.2v-5.01z"></path></svg> <h2>Blazor</h2> </div> <p>Blazor lets you build interactive web UIs using C# instead of JavaScript</p> <a class="link-arrow-external mt-3" href="https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor" target="_blank" rel= "noopener">Get started with Blazor</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/bond.png" alt="Bond logo" /> <h2>Bond</h2> </div> <p>Bond is an open-source, cross-platform framework for working with schematized data.</p> <a class="link-arrow-external mt-3" href="https://github.com/microsoft/bond" target="_blank" rel= "noopener">Browse the Bond repo</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <svg height="32" style="margin-right: 12px" aria-label="repository" class="octicon octicon-repo octicon octicon-repo" viewBox="0 0 24 24" version="1.1" width="32" role="img"><path fill-rule="evenodd" d="M3 2.75A2.75 2.75 0 015.75 0h14.5a.75.75 0 01.75.75v20.5a.75.75 0 01-.75.75h-6a.75.75 0 010-1.5h5.25v-4H6A1.5 1.5 0 004.5 18v.75c0 .716.43 1.334 1.05 1.605a.75.75 0 01-.6 1.374A3.25 3.25 0 013 18.75v-16zM19.5 1.5V15H6c-.546 0-1.059.146-1.5.401V2.75c0-.69.56-1.25 1.25-1.25H19.5z"></path><path d="M7 18.25a.25.25 0 01.25-.25h5a.25.25 0 01.25.25v5.01a.25.25 0 01-.397.201l-2.206-1.604a.25.25 0 00-.294 0L7.397 23.46a.25.25 0 01-.397-.2v-5.01z"></path></svg> <h2>Windows Calculator</h2> </div> <p>The Windows Calculator app is a modern Windows app written in C++ and C# that ships pre-installed with Windows. The app provides standard, scientific, and programmer calculator functionality, as well as a set of converters between various units of measurement and currencies.</p> <a class="link-arrow-external mt-3" href="https://github.com/microsoft/calculator" target="_blank" rel= "noopener">Explore Windows Calculator</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <svg height="32" style="margin-right: 12px" aria-label="repository" class="octicon octicon-repo octicon octicon-repo octicon octicon-repo" viewBox="0 0 24 24" version="1.1" width="32" role="img"><path fill-rule="evenodd" d="M3 2.75A2.75 2.75 0 015.75 0h14.5a.75.75 0 01.75.75v20.5a.75.75 0 01-.75.75h-6a.75.75 0 010-1.5h5.25v-4H6A1.5 1.5 0 004.5 18v.75c0 .716.43 1.334 1.05 1.605a.75.75 0 01-.6 1.374A3.25 3.25 0 013 18.75v-16zM19.5 1.5V15H6c-.546 0-1.059.146-1.5.401V2.75c0-.69.56-1.25 1.25-1.25H19.5z"></path><path d="M7 18.25a.25.25 0 01.25-.25h5a.25.25 0 01.25.25v5.01a.25.25 0 01-.397.201l-2.206-1.604a.25.25 0 00-.294 0L7.397 23.46a.25.25 0 01-.397-.2v-5.01z"></path></svg> <h2>CCF</h2> </div> <p>CCF is a framework for building secure, highly available, performant blockchain and multi-party applications.</p> <a class="link-arrow-external mt-3" href="https://github.com/microsoft/ccf" target="_blank" rel= "noopener">Learn more about CCF</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <svg height="32" style="margin-right: 12px" aria-label="repository" class="octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo" viewBox="0 0 24 24" version="1.1" width="32" role="img"><path fill-rule="evenodd" d="M3 2.75A2.75 2.75 0 015.75 0h14.5a.75.75 0 01.75.75v20.5a.75.75 0 01-.75.75h-6a.75.75 0 010-1.5h5.25v-4H6A1.5 1.5 0 004.5 18v.75c0 .716.43 1.334 1.05 1.605a.75.75 0 01-.6 1.374A3.25 3.25 0 013 18.75v-16zM19.5 1.5V15H6c-.546 0-1.059.146-1.5.401V2.75c0-.69.56-1.25 1.25-1.25H19.5z"></path><path d="M7 18.25a.25.25 0 01.25-.25h5a.25.25 0 01.25.25v5.01a.25.25 0 01-.397.201l-2.206-1.604a.25.25 0 00-.294 0L7.397 23.46a.25.25 0 01-.397-.2v-5.01z"></path></svg> <h2>Component Detection</h2> </div> <p>Component Detection is a Software Composition Analysis (SCA) tool designed to be used at build-time to determine all dependencies pulled into a build.</p> <a class="link-arrow-external mt-3" href="https://github.com/microsoft/component-detection" target="_blank" rel= "noopener">Learn more about Component Detection</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/containerd.png" alt="containerd logo" /> <h2>containerd</h2> </div> <p>Complete container lifecycle management on Linux and Windows hosts; runwasi; Wasm Shims; Moby. containerd is a Cloud Native Computing Foundation graduated project.</p> <a class="link-arrow-external mt-3" href="https://containerd.io/" target="_blank" rel= "noopener">containerd</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/copa.png" alt="Copa logo" /> <h2>Copa</h2> </div> <p>Copa (Project Copacetic) is a CLI tool for directly patching container images using reports from vulnerability scanners. Copa is a Cloud Native Computing Foundation sandbox project.</p> <a class="link-arrow-external mt-3" href="https://project-copacetic.github.io/copacetic/" target="_blank" rel= "noopener">Copa</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/dapr.svg" alt="Dapr logo" /> <h2>Dapr</h2> </div> <p>An event-driven, portable runtime for building microservices on cloud and edge. Dapr is a Cloud Native Computing Foundation graduated project.</p> <a class="link-arrow-external mt-3" href="https://dapr.io/" target="_blank" rel= "noopener">Get involved in Dapr</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/deca10b.png" alt="Decentralized & Collaborative AI on Blockchain logo" /> <h2>Decentralized & Collaborative AI on Blockchain</h2> </div> <p>Decentralized & Collaborative AI on Blockchain is a framework to host and train publicly available machine learning models. Ideally, using a running inference using a model stored in a smart contract is free.</p> <a class="link-arrow-external mt-3" href="https://github.com/microsoft/0xDeCA10B" target="_blank" rel= "noopener">Hodl that model</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/dotnet.svg" alt=".NET logo" /> <h2>.NET</h2> </div> <p>.NET is Microsoft's open-source, general-purpose development framework for building cross-platform apps.</p> <a class="link-arrow-external mt-3" href="https://dotnet.microsoft.com" target="_blank" rel= "noopener">About .NET</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/eraser.png" alt="Eraser logo" /> <h2>Eraser</h2> </div> <p>Cleaning up images from Kubernetes nodes. Eraser is a Cloud Native Computing Foundation sandbox project.</p> <a class="link-arrow-external mt-3" href="https://eraser-dev.github.io/eraser/" target="_blank" rel= "noopener">Eraser</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/fast.svg" alt="FAST logo" /> <h2>FAST</h2> </div> <p>A collection of technologies built on Web Components and modern Web Standards, designed to help you efficiently tackle some of the most common challenges in website and application design and development</p> <a class="link-arrow-external mt-3" href="https://github.com/microsoft/fast" target="_blank" rel= "noopener">About FAST</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/fluentui.svg" alt="Fluent UI logo" /> <h2>Fluent UI</h2> </div> <p>A collection of Fluent Design UX frameworks for creating beautiful, cross-platform apps that share code, design, and interaction behavior.</p> <a class="link-arrow-external mt-3" href="http://aka.ms/fluentui" target="_blank" rel= "noopener">Get started with Fluent UI</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <svg height="32" style="margin-right: 12px" aria-label="repository" class="octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo" viewBox="0 0 24 24" version="1.1" width="32" role="img"><path fill-rule="evenodd" d="M3 2.75A2.75 2.75 0 015.75 0h14.5a.75.75 0 01.75.75v20.5a.75.75 0 01-.75.75h-6a.75.75 0 010-1.5h5.25v-4H6A1.5 1.5 0 004.5 18v.75c0 .716.43 1.334 1.05 1.605a.75.75 0 01-.6 1.374A3.25 3.25 0 013 18.75v-16zM19.5 1.5V15H6c-.546 0-1.059.146-1.5.401V2.75c0-.69.56-1.25 1.25-1.25H19.5z"></path><path d="M7 18.25a.25.25 0 01.25-.25h5a.25.25 0 01.25.25v5.01a.25.25 0 01-.397.201l-2.206-1.604a.25.25 0 00-.294 0L7.397 23.46a.25.25 0 01-.397-.2v-5.01z"></path></svg> <h2>Fluid Framework</h2> </div> <p>Fluid Framework is a collection of client libraries for distributing and synchronizing shared state.</p> <a class="link-arrow-external mt-3" href="https://fluidframework.com" target="_blank" rel= "noopener">Learn more about Fluid Framework</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <svg height="32" style="margin-right: 12px" aria-label="repository" class="octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo" viewBox="0 0 24 24" version="1.1" width="32" role="img"><path fill-rule="evenodd" d="M3 2.75A2.75 2.75 0 015.75 0h14.5a.75.75 0 01.75.75v20.5a.75.75 0 01-.75.75h-6a.75.75 0 010-1.5h5.25v-4H6A1.5 1.5 0 004.5 18v.75c0 .716.43 1.334 1.05 1.605a.75.75 0 01-.6 1.374A3.25 3.25 0 013 18.75v-16zM19.5 1.5V15H6c-.546 0-1.059.146-1.5.401V2.75c0-.69.56-1.25 1.25-1.25H19.5z"></path><path d="M7 18.25a.25.25 0 01.25-.25h5a.25.25 0 01.25.25v5.01a.25.25 0 01-.397.201l-2.206-1.604a.25.25 0 00-.294 0L7.397 23.46a.25.25 0 01-.397-.2v-5.01z"></path></svg> <h2>Forge</h2> </div> <p>Forge is a generic low-code framework built on a config-driven tree walker.</p> <a class="link-arrow-external mt-3" href="https://github.com/microsoft/Forge" target="_blank" rel= "noopener">Learn more about Forge</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/graphengine.svg" alt="Graph Engine logo" /> <h2>Graph Engine</h2> </div> <p>Graph Engine is an open-source distributed in-memory graph processing engine.</p> <a class="link-arrow-external mt-3" href="https://www.graphengine.io" target="_blank" rel= "noopener">About Graph Engine</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/headlamp.png" alt="Headlamp logo" /> <h2>Headlamp</h2> </div> <p>A user-friendly Kubernetes UI focused on extensibility. Headlamp is a Cloud Native Computing Foundation sandbox project.</p> <a class="link-arrow-external mt-3" href="https://headlamp.dev/" target="_blank" rel= "noopener">Headlamp</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/heft.svg" alt="Heft logo" /> <h2>Heft</h2> </div> <p>Heft standardizes how TypeScript projects get built, simplifying upgrades and migrations when you manage thousands of projects.</p> <a class="link-arrow-external mt-3" href="https://heft.rushstack.io/" target="_blank" rel= "noopener">Learn about Heft</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/helm.png" alt="Helm logo" /> <h2>Helm</h2> </div> <p>Package manager for Kubernetes. Helm is a Cloud Native Computing Foundation graduated project.</p> <a class="link-arrow-external mt-3" href="https://helm.sh/" target="_blank" rel= "noopener">Helm</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/inspektor-gadget.png" alt="Inspektor Gadget logo" /> <h2>Inspektor Gadget</h2> </div> <p>A collection of eBPF-based gadgets to debug and inspect Kubernetes apps and resources.</p> <a class="link-arrow-external mt-3" href="https://www.inspektor-gadget.io/" target="_blank" rel= "noopener">Inspektor Gadget</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/istio.png" alt="Istio logo" /> <h2>Istio</h2> </div> <p>Service mesh on Kubernetes. Istio is a Cloud Native Computing Foundation graduated project.</p> <a class="link-arrow-external mt-3" href="https://istio.io/" target="_blank" rel= "noopener">Istio</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <svg height="32" style="margin-right: 12px" aria-label="repository" class="octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo" viewBox="0 0 24 24" version="1.1" width="32" role="img"><path fill-rule="evenodd" d="M3 2.75A2.75 2.75 0 015.75 0h14.5a.75.75 0 01.75.75v20.5a.75.75 0 01-.75.75h-6a.75.75 0 010-1.5h5.25v-4H6A1.5 1.5 0 004.5 18v.75c0 .716.43 1.334 1.05 1.605a.75.75 0 01-.6 1.374A3.25 3.25 0 013 18.75v-16zM19.5 1.5V15H6c-.546 0-1.059.146-1.5.401V2.75c0-.69.56-1.25 1.25-1.25H19.5z"></path><path d="M7 18.25a.25.25 0 01.25-.25h5a.25.25 0 01.25.25v5.01a.25.25 0 01-.397.201l-2.206-1.604a.25.25 0 00-.294 0L7.397 23.46a.25.25 0 01-.397-.2v-5.01z"></path></svg> <h2>KAITO</h2> </div> <p>Automates the deployment of AI models and associated infrastructure provisioning on a Kubernetes cluster.</p> <a class="link-arrow-external mt-3" href="https://github.com/Azure/kaito" target="_blank" rel= "noopener">KAITO</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/keda.svg" alt="Kubernetes Event-driven Autoscaling (KEDA) logo" /> <h2>Kubernetes Event-driven Autoscaling (KEDA)</h2> </div> <p>Application autoscaling made simple on Kubernetes. KEDA is a Cloud Native Computing Foundation graduated project.</p> <a class="link-arrow-external mt-3" href="https://keda.sh/" target="_blank" rel= "noopener">Learn more about KEDA</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/kubernetes.png" alt="Kubernetes logo" /> <h2>Kubernetes</h2> </div> <p>Kubernetes features; release; governance; Cluster API; Windows containers; testing; Secrets Store CSI Driver; Gateway API; Workload Identity, Multicluster Services API. Kubernetes is a Cloud Native Computing Foundation graduated project.</p> <a class="link-arrow-external mt-3" href="https://kubernetes.io/" target="_blank" rel= "noopener">Kubernetes</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/lockfile-explorer.svg" alt="Lockfile Explorer logo" /> <h2>Lockfile Explorer</h2> </div> <p>Lockfile Explorer helps you visualize and solve version conflicts when working in a monorepo that uses the PNPM package manager.</p> <a class="link-arrow-external mt-3" href="https://lfx.rushstack.io/" target="_blank" rel= "noopener">Learn about Lockfile Explorer</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <svg height="32" style="margin-right: 12px" aria-label="repository" class="octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo" viewBox="0 0 24 24" version="1.1" width="32" role="img"><path fill-rule="evenodd" d="M3 2.75A2.75 2.75 0 015.75 0h14.5a.75.75 0 01.75.75v20.5a.75.75 0 01-.75.75h-6a.75.75 0 010-1.5h5.25v-4H6A1.5 1.5 0 004.5 18v.75c0 .716.43 1.334 1.05 1.605a.75.75 0 01-.6 1.374A3.25 3.25 0 013 18.75v-16zM19.5 1.5V15H6c-.546 0-1.059.146-1.5.401V2.75c0-.69.56-1.25 1.25-1.25H19.5z"></path><path d="M7 18.25a.25.25 0 01.25-.25h5a.25.25 0 01.25.25v5.01a.25.25 0 01-.397.201l-2.206-1.604a.25.25 0 00-.294 0L7.397 23.46a.25.25 0 01-.397-.2v-5.01z"></path></svg> <h2>Language Server Protocol</h2> </div> <p>Defines the protocol used between an editor or IDE and a language server to provide useful features</p> <a class="link-arrow-external mt-3" href="https://microsoft.github.io/language-server-protocol/" target="_blank" rel= "noopener">Learn more about the Language Server Protocol</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/notary-project.png" alt="Notary Project logo" /> <h2>Notary Project</h2> </div> <p>Signing and verifying artifacts. Safeguarding the software delivery security from development to deployment. Notary Project is a Cloud Native Computing Foundation incubating project.</p> <a class="link-arrow-external mt-3" href="https://notaryproject.dev/" target="_blank" rel= "noopener">Notary Project</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/onnx.png" alt="ONNX Runtime logo" /> <h2>ONNX Runtime</h2> </div> <p>ONNX Runtime is a cross-platform inferencing and training accelerator compatible with many popular ML/DNN frameworks, including PyTorch, TensorFlow/Keras, scikit-learn, and more</p> <a class="link-arrow-external mt-3" href="https://github.com/microsoft/onnxruntime" target="_blank" rel= "noopener">About ONNX Runtime</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/open-policy-agent.png" alt="Open Policy Agent logo" /> <h2>Open Policy Agent</h2> </div> <p>Policy-based control for cloud native environments - OPA enforcement via Gatekeeper. Open Policy Agent is a Cloud Native Computing Foundation graduated project.</p> <a class="link-arrow-external mt-3" href="https://www.openpolicyagent.org/" target="_blank" rel= "noopener">Open Policy Agent</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/openeducationanalytics.png" alt="Open Education Analytics (OEA) logo" /> <h2>Open Education Analytics (OEA)</h2> </div> <p>Open Education Analytics collaborates with education systems across the world to develop modern data intelligence capabilities.</p> <a class="link-arrow-external mt-3" href="https://openeducationanalytics.org/" target="_blank" rel= "noopener">Get Involved in Open Education Analytics</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <svg height="32" style="margin-right: 12px" aria-label="repository" class="octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo" viewBox="0 0 24 24" version="1.1" width="32" role="img"><path fill-rule="evenodd" d="M3 2.75A2.75 2.75 0 015.75 0h14.5a.75.75 0 01.75.75v20.5a.75.75 0 01-.75.75h-6a.75.75 0 010-1.5h5.25v-4H6A1.5 1.5 0 004.5 18v.75c0 .716.43 1.334 1.05 1.605a.75.75 0 01-.6 1.374A3.25 3.25 0 013 18.75v-16zM19.5 1.5V15H6c-.546 0-1.059.146-1.5.401V2.75c0-.69.56-1.25 1.25-1.25H19.5z"></path><path d="M7 18.25a.25.25 0 01.25-.25h5a.25.25 0 01.25.25v5.01a.25.25 0 01-.397.201l-2.206-1.604a.25.25 0 00-.294 0L7.397 23.46a.25.25 0 01-.397-.2v-5.01z"></path></svg> <h2>Open Enclave SDK</h2> </div> <p>Open Enclave is an open source C SDK for creating a single unified enclave abstraction to build Trusted Execution Environment (TEEs) based applications.</p> <a class="link-arrow-external mt-3" href="https://github.com/openenclave/openenclave" target="_blank" rel= "noopener">Browse the Open Enclave repo</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/oras.png" alt="ORAS logo" /> <h2>ORAS</h2> </div> <p>OCI Registry as Storage (ORAS) provides CLI and client libraries to distribute artifacts across OCI-compliant registries. ORAS is a Cloud Native Computing Foundation sandbox project.</p> <a class="link-arrow-external mt-3" href="https://oras.land/" target="_blank" rel= "noopener">ORAS</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <svg height="32" style="margin-right: 12px" aria-label="repository" class="octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo" viewBox="0 0 24 24" version="1.1" width="32" role="img"><path fill-rule="evenodd" d="M3 2.75A2.75 2.75 0 015.75 0h14.5a.75.75 0 01.75.75v20.5a.75.75 0 01-.75.75h-6a.75.75 0 010-1.5h5.25v-4H6A1.5 1.5 0 004.5 18v.75c0 .716.43 1.334 1.05 1.605a.75.75 0 01-.6 1.374A3.25 3.25 0 013 18.75v-16zM19.5 1.5V15H6c-.546 0-1.059.146-1.5.401V2.75c0-.69.56-1.25 1.25-1.25H19.5z"></path><path d="M7 18.25a.25.25 0 01.25-.25h5a.25.25 0 01.25.25v5.01a.25.25 0 01-.397.201l-2.206-1.604a.25.25 0 00-.294 0L7.397 23.46a.25.25 0 01-.397-.2v-5.01z"></path></svg> <h2>pg_auto_failover</h2> </div> <p>pg_auto_failover is an extension and service for PostgreSQL that monitors and manages automated failover for a Postgres cluster</p> <a class="link-arrow-external mt-3" href="https://github.com/citusdata/pg_auto_failover" target="_blank" rel= "noopener">About pg_auto_failover</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/playwright.svg" alt="Playwright logo" /> <h2>Playwright</h2> </div> <p>Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.</p> <a class="link-arrow-external mt-3" href="https://github.com/microsoft/playwright" target="_blank" rel= "noopener">About Playwright</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/powershell.svg" alt="PowerShell logo" /> <h2>PowerShell</h2> </div> <p>PowerShell is a cross-platform task automation and configuration management framework, consisting of a command-line shell and scripting language.</p> <a class="link-arrow-external mt-3" href="https://aka.ms/powershell" target="_blank" rel= "noopener">About PowerShell</a> <a class="link-arrow-external mt-3" href="https://apps.microsoft.com/store/detail/powershell/9MZ1SNWT0N5D" target="_blank" rel= "noopener">Download PowerShell from Microsoft Store</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/powertoys.png" alt="PowerToys logo" /> <h2>PowerToys</h2> </div> <p>Microsoft PowerToys is a set of utilities for power users to tune and streamline their Windows experience for greater productivity.</p> <a class="link-arrow-external mt-3" href="https://aka.ms/powertoys" target="_blank" rel= "noopener">Learn about PowerToys</a> <a class="link-arrow-external mt-3" href="https://apps.microsoft.com/store/detail/microsoft-powertoys/XP89DCGQ3K6VLD" target="_blank" rel= "noopener">Download PowerToys from Microsoft Store</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/pr-metrics.png" alt="PR Metrics logo" /> <h2>PR Metrics</h2> </div> <p>An Azure DevOps build task and GitHub Action that augments Azure DevOps and GitHub pull request titles, letting reviewers quickly determine PR size and test coverage.</p> <a class="link-arrow-external mt-3" href="https://github.com/microsoft/PR-Metrics" target="_blank" rel= "noopener">Try PR Metrics</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/project-mu-logo.png" alt="Project Mu logo" /> <h2>Project Mu</h2> </div> <p>Project Mu is a modular adaptation of TianoCore's edk2 (UEFI BIOS reference) tuned for building modern devices using a scalable, maintainable, and reusable pattern</p> <a class="link-arrow-external mt-3" href="https://microsoft.github.io/mu/" target="_blank" rel= "noopener">About Project Mu</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/pwabuilder.png" alt="PWABuilder logo" /> <h2>PWABuilder</h2> </div> <p>Helping developers build Progressive Web Apps (PWAs) and package them for app stores like Google Play, Microsoft Store, MacOS Store, and more.</p> <a class="link-arrow-external mt-3" href="https://pwabuilder.com" target="_blank" rel= "noopener">Try PWABuilder</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/radius.png" alt="Radius logo" /> <h2>Radius</h2> </div> <p>Collaborate on delivering and managing cloud-native applications that follow organizational best practices for cost, operations and security, by default. Radius is a Cloud Native Computing Foundation sandbox project.</p> <a class="link-arrow-external mt-3" href="https://radapp.io/" target="_blank" rel= "noopener">Radius</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/ratify.png" alt="Ratify logo" /> <h2>Ratify</h2> </div> <p>Ratify enables verification of artifact security metadata and admits for deployment on Kubernetes only those that comply with policies you create.</p> <a class="link-arrow-external mt-3" href="https://ratify.dev/" target="_blank" rel= "noopener">Ratify</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/rush.svg" alt="Rush logo" /> <h2>Rush</h2> </div> <p>Rush is a popular build orchestrator for large scale TypeScript monorepos.</p> <a class="link-arrow-external mt-3" href="https://rushjs.io/" target="_blank" rel= "noopener">Learn about Rush</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <svg height="32" style="margin-right: 12px" aria-label="repository" class="octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo" viewBox="0 0 24 24" version="1.1" width="32" role="img"><path fill-rule="evenodd" d="M3 2.75A2.75 2.75 0 015.75 0h14.5a.75.75 0 01.75.75v20.5a.75.75 0 01-.75.75h-6a.75.75 0 010-1.5h5.25v-4H6A1.5 1.5 0 004.5 18v.75c0 .716.43 1.334 1.05 1.605a.75.75 0 01-.6 1.374A3.25 3.25 0 013 18.75v-16zM19.5 1.5V15H6c-.546 0-1.059.146-1.5.401V2.75c0-.69.56-1.25 1.25-1.25H19.5z"></path><path d="M7 18.25a.25.25 0 01.25-.25h5a.25.25 0 01.25.25v5.01a.25.25 0 01-.397.201l-2.206-1.604a.25.25 0 00-.294 0L7.397 23.46a.25.25 0 01-.397-.2v-5.01z"></path></svg> <h2>SONiC</h2> </div> <p>SONiC is an open source network operating system based on Linux that runs on switches from multiple vendors and ASICs</p> <a class="link-arrow-external mt-3" href="https://github.com/Azure/sonic-buildimage" target="_blank" rel= "noopener">Learn more about SONiC</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/spinkube.png" alt="SpinKube logo" /> <h2>SpinKube</h2> </div> <p>SpinKube streamlines developing, deploying and operating WebAssembly workloads in Kubernetes.</p> <a class="link-arrow-external mt-3" href="https://www.spinkube.dev/" target="_blank" rel= "noopener">SpinKube</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/terminal.svg" alt="Windows Terminal logo" /> <h2>Windows Terminal</h2> </div> <p>The new Windows Terminal and the original Windows console host, all in the same place!</p> <a class="link-arrow-external mt-3" href="https://github.com/microsoft/Terminal" target="_blank" rel= "noopener">Check out the Terminal source code</a> <a class="link-arrow-external mt-3" href="https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701" target="_blank" rel= "noopener">Download Windows Terminal from Microsoft Store</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/tsdoc.svg" alt="TSDoc logo" /> <h2>TSDoc</h2> </div> <p>TSDoc is an interoperable standard for API doc comments in TypeScript code.</p> <a class="link-arrow-external mt-3" href="https://tsdoc.org/" target="_blank" rel= "noopener">Learn about TSDoc</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/typescript.png" alt="TypeScript logo" /> <h2>TypeScript</h2> </div> <p>TypeScript is an open-source and cross-platform language that builds on JavaScript by adding static types and type-checking</p> <a class="link-arrow-external mt-3" href="https://www.typescriptlang.org/" target="_blank" rel= "noopener">Visit typescriptlang.org</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/vfs-for-git.png" alt="VFS for Git logo" /> <h2>VFS for Git</h2> </div> <p>The Virtual Filesystem for Git (formerly GVFS) is an open source system that enables Git to operate at enterprise-scale</p> <a class="link-arrow-external mt-3" href="https://github.com/Microsoft/VFSForGit" target="_blank" rel= "noopener">Visit the VFS for Git page</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <img class="mr-3 icon" src="/assets/images/projects/vsc-icon.svg" alt="Visual Studio Code logo" /> <h2>Visual Studio Code</h2> </div> <p>Visual Studio Code is a free, highly customizable code editor that is based on an open-source codebase and runs on Linux, macOS, and Windows.</p> <a class="link-arrow-external mt-3" href="https://code.visualstudio.com/" target="_blank" rel= "noopener">Explore Visual Studio Code</a> <a class="link-arrow-external mt-3" href="https://apps.microsoft.com/store/detail/visual-studio-code/XP9KHM4BK9FZ7Q" target="_blank" rel= "noopener">Download Visual Studio Code from Microsoft Store</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <svg height="32" style="margin-right: 12px" aria-label="repository" class="octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo" viewBox="0 0 24 24" version="1.1" width="32" role="img"><path fill-rule="evenodd" d="M3 2.75A2.75 2.75 0 015.75 0h14.5a.75.75 0 01.75.75v20.5a.75.75 0 01-.75.75h-6a.75.75 0 010-1.5h5.25v-4H6A1.5 1.5 0 004.5 18v.75c0 .716.43 1.334 1.05 1.605a.75.75 0 01-.6 1.374A3.25 3.25 0 013 18.75v-16zM19.5 1.5V15H6c-.546 0-1.059.146-1.5.401V2.75c0-.69.56-1.25 1.25-1.25H19.5z"></path><path d="M7 18.25a.25.25 0 01.25-.25h5a.25.25 0 01.25.25v5.01a.25.25 0 01-.397.201l-2.206-1.604a.25.25 0 00-.294 0L7.397 23.46a.25.25 0 01-.397-.2v-5.01z"></path></svg> <h2>VS Code Kubernetes Tools</h2> </div> <p>Build and troubleshoot applications running in Kubernetes clusters. VS Code Kubernetes Tools is a Cloud Native Computing Foundation sandbox project.</p> <a class="link-arrow-external mt-3" href="https://github.com/vscode-kubernetes-tools/vscode-kubernetes-tools" target="_blank" rel= "noopener">VS Code Kubernetes Tools</a> </div> <div class="mb-6 pb-lg-4" data-animate-in="up"> <div class="d-flex mb-3"> <svg height="32" style="margin-right: 12px" aria-label="repository" class="octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo octicon octicon-repo" viewBox="0 0 24 24" version="1.1" width="32" role="img"><path fill-rule="evenodd" d="M3 2.75A2.75 2.75 0 015.75 0h14.5a.75.75 0 01.75.75v20.5a.75.75 0 01-.75.75h-6a.75.75 0 010-1.5h5.25v-4H6A1.5 1.5 0 004.5 18v.75c0 .716.43 1.334 1.05 1.605a.75.75 0 01-.6 1.374A3.25 3.25 0 013 18.75v-16zM19.5 1.5V15H6c-.546 0-1.059.146-1.5.401V2.75c0-.69.56-1.25 1.25-1.25H19.5z"></path><path d="M7 18.25a.25.25 0 01.25-.25h5a.25.25 0 01.25.25v5.01a.25.25 0 01-.397.201l-2.206-1.604a.25.25 0 00-.294 0L7.397 23.46a.25.25 0 01-.397-.2v-5.01z"></path></svg> <h2>YARN Federation</h2> </div> <p>YARN Federation allows to operate several YARN clusters and tie them together transparently</p> <a class="link-arrow-external mt-3" href="https://issues.apache.org/jira/browse/YARN-2915" target="_blank" rel= "noopener">Learn more about YARN</a> </div> </div> <div class="col-12 col-lg-4 pl-lg-6 col-lg-4"> <div class="sticky"> <div class="cta"> <div class="cta__inner"> <p class="h5">Explore Microsoft projects</p> <p> Microsoft engineers and community members maintain thousands of GitHub repos: everything from complete samples, to product SDKs, to entire products. </p> <!-- <p> Search, filter and explore to find what you're looking for, or an opportunity to join in the fun. </p> <a class="link-arrow text-white mt-4" href="/projects/explore/">View all projects</a> <br /> <a class="link-arrow text-white mt-4" href="/collaborate/">Get involved</a> <br/> <a class="link-arrow text-white mt-4" href="https://github.com/microsoft">Microsoft on GitHub</a> --> </div> </div> </div> </div> </div> <hr class="wrapper" /> <!-- TODO: Pull in other awesome projects --> </article> </main> <div class="wrapper-full bg-dark"> <div class="py-6 my-6"> <div class="wrapper "> <div class="d-md-flex flex-justify-between"> <div class="col-12 col-md-7 col-lg-7 mb-6 mb-md-0"> <div class="text-white" data-animate-in="fade"> <ul class="list-style-none"> <li> <a class="mt-4 link-arrow-external" href="https://twitter.com/OpenAtMicrosoft" target="_blank" rel= "noopener"> <img class="mr-2" src="/assets/images/svgs/twitter.svg" alt="Twitter icon" title="Twitter icon" /> OpenAtMicrosoft </a> </li> <li> <a class="mt-4 link-arrow-external" href="https://github.com/microsoft/opensource.microsoft.com" target="_blank" rel= "noopener"> <img class="mr-2" src="/assets/images/svgs/github.svg" alt="GitHub icon" title="GitHub icon" /> microsoft/opensource.microsoft.com </a> </li> </ul> </div> </div> <div class="col-12 col-md-5 col-lg-4 pl-md-4 pl-lg-2"> <figure class="intro-svg"> <?xml version="1.0" encoding="utf-8"?> <!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 370 178" enable-background="new 0 0 370 178" xml:space="preserve"> <path fill="#FCE100" d="M197.9,58.5c-0.3-0.3-0.6-0.3-1-0.2c0.3,0.6,0.6,1.2,0.9,1.7c0,0,0.1,0,0.1-0.1 C198.2,59.5,198.2,58.9,197.9,58.5z"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 14.4334 160.2719)" fill="#FCE100" cx="200.7" cy="62.7" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 12.967 163.8036)" fill="#FCE100" cx="204.2" cy="66.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 11.5045 167.3429)" fill="#FCE100" cx="207.8" cy="69.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 10.042 170.8824)" fill="#FCE100" cx="211.3" cy="73.3" rx="1" ry="1"/> <path fill="#FCE100" d="M215.5,76.1c-0.4-0.4-1-0.4-1.4,0c0,0,0,0.1-0.1,0.1c0.6,0.3,1.1,0.6,1.7,0.9 C215.9,76.8,215.8,76.4,215.5,76.1z"/> <path fill="#FCE100" d="M194.3,47.9c-0.2-0.2-0.5-0.3-0.8-0.3c0.1,0.6,0.2,1.3,0.4,1.9c0.1,0,0.3-0.1,0.4-0.2 C194.7,48.9,194.7,48.3,194.3,47.9z"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 20.8981 154.6656)" fill="#FCE100" cx="197.1" cy="52.1" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 19.4313 158.1969)" fill="#FCE100" cx="200.7" cy="55.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 17.9692 161.7367)" fill="#FCE100" cx="204.2" cy="59.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 16.5044 165.2719)" fill="#FCE100" cx="207.8" cy="62.7" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 15.0398 168.807)" fill="#FCE100" cx="211.3" cy="66.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 13.5778 172.3472)" fill="#FCE100" cx="214.8" cy="69.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 12.1112 175.8787)" fill="#FCE100" cx="218.4" cy="73.3" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 10.6469 179.4146)" fill="#FCE100" cx="221.9" cy="76.9" rx="1" ry="1"/> <path fill="#FCE100" d="M226.1,79.7c-0.4-0.4-1-0.4-1.4,0c-0.1,0.1-0.2,0.3-0.2,0.4c0.6,0.1,1.3,0.3,1.9,0.4 C226.4,80.2,226.3,79.9,226.1,79.7z"/> <path fill="#FCE100" d="M194.3,42.2c0.4-0.4,0.4-1,0-1.4c-0.4-0.4-0.9-0.4-1.3-0.1c0,0.1,0,0.2,0,0.3c0,0.4,0,0.9,0,1.3 C193.4,42.6,194,42.6,194.3,42.2z"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 25.8981 152.5946)" fill="#FCE100" cx="197.1" cy="45" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 24.4312 156.1259)" fill="#FCE100" cx="200.7" cy="48.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 22.9691 159.6656)" fill="#FCE100" cx="204.2" cy="52.1" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 21.5022 163.1967)" fill="#FCE100" cx="207.8" cy="55.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 20.0423 166.74)" fill="#FCE100" cx="211.3" cy="59.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 18.5755 170.2718)" fill="#FCE100" cx="214.8" cy="62.7" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 17.1112 173.8077)" fill="#FCE100" cx="218.4" cy="66.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 15.6469 177.3435)" fill="#FCE100" cx="221.9" cy="69.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 14.1823 180.8787)" fill="#FCE100" cx="225.4" cy="73.3" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 12.7154 184.4091)" fill="#FCE100" cx="229" cy="76.9" rx="1" ry="1"/> <path fill="#FCE100" d="M233.2,79.7c-0.4-0.4-1-0.4-1.4,0c-0.4,0.4-0.4,0.9-0.1,1.3c0.4,0,0.9,0,1.3,0c0.1,0,0.2,0,0.3,0 C233.6,80.6,233.6,80,233.2,79.7z"/> <path fill="#FCE100" d="M194.3,35.1c0.4-0.4,0.4-1,0-1.4c-0.2-0.2-0.4-0.2-0.6-0.3c-0.1,0.6-0.2,1.3-0.3,1.9 C193.7,35.5,194.1,35.4,194.3,35.1z"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 30.8981 150.5235)" fill="#FCE100" cx="197.1" cy="38" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 29.4335 154.0587)" fill="#FCE100" cx="200.7" cy="41.5" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 27.9692 157.5945)" fill="#FCE100" cx="204.2" cy="45" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 26.5021 161.1258)" fill="#FCE100" cx="207.8" cy="48.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 25.0399 164.6648)" fill="#FCE100" cx="211.3" cy="52.1" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 23.578 168.2048)" fill="#FCE100" cx="214.8" cy="55.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 22.1113 171.7365)" fill="#FCE100" cx="218.4" cy="59.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 20.6444 175.2681)" fill="#FCE100" cx="221.9" cy="62.7" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 19.1798 178.8031)" fill="#FCE100" cx="225.4" cy="66.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 17.7176 182.3428)" fill="#FCE100" cx="229" cy="69.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 16.2509 185.8739)" fill="#FCE100" cx="232.5" cy="73.3" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 14.7912 189.4185)" fill="#FCE100" cx="236" cy="76.9" rx="1" ry="1"/> <path fill="#FCE100" d="M238.9,79.7c-0.2,0.2-0.3,0.6-0.3,0.9c0.7-0.1,1.3-0.2,1.9-0.3c0-0.2-0.1-0.4-0.3-0.6 C239.9,79.3,239.3,79.3,238.9,79.7z"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 35.8981 148.4525)" fill="#FCE100" cx="197.1" cy="30.9" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 34.4334 151.9876)" fill="#FCE100" cx="200.7" cy="34.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 32.9691 155.5235)" fill="#FCE100" cx="204.2" cy="38" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 31.5045 159.0586)" fill="#FCE100" cx="207.8" cy="41.5" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 30.0399 162.5938)" fill="#FCE100" cx="211.3" cy="45" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 28.5782 166.1336)" fill="#FCE100" cx="214.8" cy="48.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 27.1087 169.6614)" fill="#FCE100" cx="218.4" cy="52.1" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 25.6469 173.2014)" fill="#FCE100" cx="221.9" cy="55.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 24.1849 176.7409)" fill="#FCE100" cx="225.4" cy="59.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 22.7151 180.2673)" fill="#FCE100" cx="229" cy="62.7" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 21.2533 183.8076)" fill="#FCE100" cx="232.5" cy="66.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 19.7887 187.3427)" fill="#FCE100" cx="236" cy="69.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 18.3244 190.8786)" fill="#FCE100" cx="239.6" cy="73.3" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 16.8601 194.4144)" fill="#FCE100" cx="243.1" cy="76.9" rx="1" ry="1"/> <path fill="#FCE100" d="M197.9,24.5c0.4-0.4,0.4-1,0-1.4c-0.1-0.1-0.3-0.2-0.5-0.3c-0.3,0.6-0.6,1.1-0.8,1.7 C196.9,24.9,197.5,24.9,197.9,24.5z"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 39.4334 149.9165)" fill="#FCE100" cx="200.7" cy="27.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 37.9691 153.4524)" fill="#FCE100" cx="204.2" cy="30.9" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 36.5045 156.9876)" fill="#FCE100" cx="207.8" cy="34.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 35.0425 160.5265)" fill="#FCE100" cx="211.3" cy="38" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 33.5782 164.0625)" fill="#FCE100" cx="214.8" cy="41.5" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 32.1086 167.5904)" fill="#FCE100" cx="218.4" cy="45" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 30.6443 171.1262)" fill="#FCE100" cx="221.9" cy="48.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 29.1823 174.6655)" fill="#FCE100" cx="225.4" cy="52.1" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 27.7177 178.2006)" fill="#FCE100" cx="229" cy="55.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 26.2507 181.732)" fill="#FCE100" cx="232.5" cy="59.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 24.7886 185.2717)" fill="#FCE100" cx="236" cy="62.7" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 23.3217 188.8029)" fill="#FCE100" cx="239.6" cy="66.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 21.8627 192.3481)" fill="#FCE100" cx="243.1" cy="69.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 20.3954 195.8785)" fill="#FCE100" cx="246.6" cy="73.3" rx="1" ry="1"/> <path fill="#FCE100" d="M249.5,76.1c-0.4,0.4-0.4,0.9-0.1,1.3c0.6-0.3,1.2-0.5,1.7-0.8c0-0.2-0.1-0.4-0.3-0.5 C250.5,75.8,249.9,75.8,249.5,76.1z"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 44.4308 147.8421)" fill="#FCE100" cx="200.7" cy="20.3" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 42.9718 151.3848)" fill="#FCE100" cx="204.2" cy="23.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 41.5045 154.9165)" fill="#FCE100" cx="207.8" cy="27.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 40.0399 158.4516)" fill="#FCE100" cx="211.3" cy="30.9" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 38.5755 161.9875)" fill="#FCE100" cx="214.8" cy="34.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 37.1084 165.5195)" fill="#FCE100" cx="218.4" cy="38" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 35.6469 169.0592)" fill="#FCE100" cx="221.9" cy="41.5" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 34.185 172.5985)" fill="#FCE100" cx="225.4" cy="45" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 32.7149 176.1253)" fill="#FCE100" cx="229" cy="48.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 31.2506 179.6611)" fill="#FCE100" cx="232.5" cy="52.1" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 29.7887 183.2005)" fill="#FCE100" cx="236" cy="55.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 28.3244 186.7364)" fill="#FCE100" cx="239.6" cy="59.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 26.8627 190.277)" fill="#FCE100" cx="243.1" cy="62.7" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 25.3926 193.8027)" fill="#FCE100" cx="246.6" cy="66.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 23.9311 197.3433)" fill="#FCE100" cx="250.2" cy="69.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 22.4692 200.8835)" fill="#FCE100" cx="253.7" cy="73.3" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 47.9692 149.3103)" fill="#FCE100" cx="204.2" cy="16.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 46.5017 152.8419)" fill="#FCE100" cx="207.8" cy="20.3" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 45.0427 156.3842)" fill="#FCE100" cx="211.3" cy="23.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 43.5756 159.9164)" fill="#FCE100" cx="214.8" cy="27.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 42.1084 163.4485)" fill="#FCE100" cx="218.4" cy="30.9" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 40.644 166.9843)" fill="#FCE100" cx="221.9" cy="34.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 39.1823 170.5233)" fill="#FCE100" cx="225.4" cy="38" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 37.7177 174.0585)" fill="#FCE100" cx="229" cy="41.5" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 36.2505 177.5901)" fill="#FCE100" cx="232.5" cy="45" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 34.7859 181.1251)" fill="#FCE100" cx="236" cy="48.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 33.3215 184.6609)" fill="#FCE100" cx="239.6" cy="52.1" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 31.8601 188.2012)" fill="#FCE100" cx="243.1" cy="55.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 30.3983 191.741)" fill="#FCE100" cx="246.6" cy="59.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 28.9282 195.2675)" fill="#FCE100" cx="250.2" cy="62.7" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 27.4664 198.8074)" fill="#FCE100" cx="253.7" cy="66.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 26.005 202.3483)" fill="#FCE100" cx="257.3" cy="69.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 51.5045 150.7743)" fill="#FCE100" cx="207.8" cy="13.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 50.0429 154.313)" fill="#FCE100" cx="211.3" cy="16.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 48.5786 157.8489)" fill="#FCE100" cx="214.8" cy="20.3" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 47.1112 161.3812)" fill="#FCE100" cx="218.4" cy="23.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 45.6469 164.9171)" fill="#FCE100" cx="221.9" cy="27.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 44.1852 168.4562)" fill="#FCE100" cx="225.4" cy="30.9" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 42.7147 171.9834)" fill="#FCE100" cx="229" cy="34.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 41.2503 175.5192)" fill="#FCE100" cx="232.5" cy="38" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 39.7917 179.0627)" fill="#FCE100" cx="236" cy="41.5" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 38.3214 182.5899)" fill="#FCE100" cx="239.6" cy="45" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 36.8601 186.1301)" fill="#FCE100" cx="243.1" cy="48.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 35.3954 189.6653)" fill="#FCE100" cx="246.6" cy="52.1" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 33.9311 193.2012)" fill="#FCE100" cx="250.2" cy="55.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 32.4695 196.7411)" fill="#FCE100" cx="253.7" cy="59.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 31.0021 200.2722)" fill="#FCE100" cx="257.3" cy="62.7" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 29.5345 203.8024)" fill="#FCE100" cx="260.8" cy="66.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 55.043 152.2418)" fill="#FCE100" cx="211.3" cy="9.7" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 53.5787 155.7778)" fill="#FCE100" cx="214.8" cy="13.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 52.1143 159.3138)" fill="#FCE100" cx="218.4" cy="16.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 50.647 162.846)" fill="#FCE100" cx="221.9" cy="20.3" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 49.1822 166.3812)" fill="#FCE100" cx="225.4" cy="23.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 47.7176 169.9164)" fill="#FCE100" cx="229" cy="27.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 46.2503 173.4482)" fill="#FCE100" cx="232.5" cy="30.9" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 44.7856 176.9832)" fill="#FCE100" cx="236" cy="34.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 43.3244 180.5232)" fill="#FCE100" cx="239.6" cy="38" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 41.8631 184.0634)" fill="#FCE100" cx="243.1" cy="41.5" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 40.3924 187.5898)" fill="#FCE100" cx="246.6" cy="45" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 38.9312 191.1301)" fill="#FCE100" cx="250.2" cy="48.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 37.4665 194.6653)" fill="#FCE100" cx="253.7" cy="52.1" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 36.0053 198.2059)" fill="#FCE100" cx="257.3" cy="55.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 34.5345 201.7314)" fill="#FCE100" cx="260.8" cy="59.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 33.0759 205.2765)" fill="#FCE100" cx="264.3" cy="62.7" rx="1" ry="1"/> <path fill="#FCE100" d="M214.1,6.9c0.4,0.4,1,0.4,1.4,0c0.4-0.4,0.4-1,0-1.4c-0.1-0.1-0.2-0.2-0.4-0.2c-0.4,0.2-0.8,0.4-1.3,0.7 C213.8,6.2,213.8,6.6,214.1,6.9z"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 57.1112 157.2391)" fill="#FCE100" cx="218.4" cy="9.7" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 55.6469 160.7749)" fill="#FCE100" cx="221.9" cy="13.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 54.1823 164.3101)" fill="#FCE100" cx="225.4" cy="16.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 52.7177 167.8452)" fill="#FCE100" cx="229" cy="20.3" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 51.2565 171.3851)" fill="#FCE100" cx="232.5" cy="23.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 49.7887 174.9163)" fill="#FCE100" cx="236" cy="27.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 48.3212 178.448)" fill="#FCE100" cx="239.6" cy="30.9" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 46.8632 181.9923)" fill="#FCE100" cx="243.1" cy="34.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 45.3986 185.5275)" fill="#FCE100" cx="246.6" cy="38" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 43.9311 189.059)" fill="#FCE100" cx="250.2" cy="41.5" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 42.4665 192.5942)" fill="#FCE100" cx="253.7" cy="45" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 41.0022 196.1301)" fill="#FCE100" cx="257.3" cy="48.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 39.5343 199.6604)" fill="#FCE100" cx="260.8" cy="52.1" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 38.0729 203.2004)" fill="#FCE100" cx="264.3" cy="55.6" rx="1" ry="1"/> <path fill="#FCE100" d="M267.2,58.5c-0.4,0.4-0.4,1,0,1.4c0.3,0.3,0.6,0.3,1,0.2c0.2-0.4,0.4-0.8,0.7-1.3c0-0.1-0.1-0.3-0.2-0.4 C268.2,58.1,267.5,58.1,267.2,58.5z"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 60.6469 158.7039)" fill="#FCE100" cx="221.9" cy="6.1" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 59.1856 162.2426)" fill="#FCE100" cx="225.4" cy="9.7" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 57.7177 165.7742)" fill="#FCE100" cx="229" cy="13.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 56.2534 169.31)" fill="#FCE100" cx="232.5" cy="16.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 54.7855 172.8413)" fill="#FCE100" cx="236" cy="20.3" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 53.3243 176.3811)" fill="#FCE100" cx="239.6" cy="23.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 51.8633 179.9211)" fill="#FCE100" cx="243.1" cy="27.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 50.3954 183.4521)" fill="#FCE100" cx="246.6" cy="30.9" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 48.9278 186.9836)" fill="#FCE100" cx="250.2" cy="34.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 47.4664 190.5231)" fill="#FCE100" cx="253.7" cy="38" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 46.0054 194.0636)" fill="#FCE100" cx="257.3" cy="41.5" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 44.5343 197.5895)" fill="#FCE100" cx="260.8" cy="45" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 43.0729 201.1293)" fill="#FCE100" cx="264.3" cy="48.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 41.6089 204.6659)" fill="#FCE100" cx="267.9" cy="52.1" rx="1" ry="1"/> <path fill="#FCE100" d="M224.7,3.3c0.4,0.4,1,0.4,1.4,0c0.4-0.4,0.4-1,0-1.4c-0.1-0.1-0.3-0.2-0.4-0.2c-0.3,0.1-0.6,0.1-0.9,0.2 c0,0-0.1,0-0.1,0.1C224.3,2.3,224.3,2.9,224.7,3.3z"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 62.7177 163.7031)" fill="#FCE100" cx="229" cy="6.1" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 61.2533 167.239)" fill="#FCE100" cx="232.5" cy="9.7" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 59.7887 170.7741)" fill="#FCE100" cx="236" cy="13.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 58.3244 174.31)" fill="#FCE100" cx="239.6" cy="16.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 56.8601 177.8458)" fill="#FCE100" cx="243.1" cy="20.3" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 55.3954 181.381)" fill="#FCE100" cx="246.6" cy="23.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 53.9277 184.9127)" fill="#FCE100" cx="250.2" cy="27.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 52.4665 188.4521)" fill="#FCE100" cx="253.7" cy="30.9" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 51.0021 191.9879)" fill="#FCE100" cx="257.3" cy="34.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 49.5341 195.5185)" fill="#FCE100" cx="260.8" cy="38" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 48.0763 199.0629)" fill="#FCE100" cx="264.3" cy="41.5" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 46.6089 202.5948)" fill="#FCE100" cx="267.9" cy="45" rx="1" ry="1"/> <path fill="#FCE100" d="M272.1,47.9c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4c0.4,0.4,1,0.4,1.4,0c0,0,0-0.1,0.1-0.1 c0.1-0.3,0.1-0.6,0.2-0.9C272.3,48.1,272.2,48,272.1,47.9z"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 66.2568 165.1715)" fill="#FCE100" cx="232.5" cy="2.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 64.7887 168.7031)" fill="#FCE100" cx="236" cy="6.1" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 63.3244 172.239)" fill="#FCE100" cx="239.6" cy="9.7" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 61.8636 175.7787)" fill="#FCE100" cx="243.1" cy="13.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 60.392 179.3059)" fill="#FCE100" cx="246.6" cy="16.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 58.9312 182.8458)" fill="#FCE100" cx="250.2" cy="20.3" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 57.4699 186.3852)" fill="#FCE100" cx="253.7" cy="23.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 56.0056 189.9212)" fill="#FCE100" cx="257.3" cy="27.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 54.534 193.4476)" fill="#FCE100" cx="260.8" cy="30.9" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 53.0729 196.9872)" fill="#FCE100" cx="264.3" cy="34.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 51.6124 200.5284)" fill="#FCE100" cx="267.9" cy="38" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 50.1442 204.0589)" fill="#FCE100" cx="271.4" cy="41.5" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 68.3244 170.1679)" fill="#FCE100" cx="239.6" cy="2.6" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 66.8637 173.7075)" fill="#FCE100" cx="243.1" cy="6.1" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 65.3954 177.2389)" fill="#FCE100" cx="246.6" cy="9.7" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 63.9311 180.7748)" fill="#FCE100" cx="250.2" cy="13.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 62.4701 184.314)" fill="#FCE100" cx="253.7" cy="16.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 61.0058 187.85)" fill="#FCE100" cx="257.3" cy="20.3" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 59.5375 191.381)" fill="#FCE100" cx="260.8" cy="23.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 58.0765 194.9206)" fill="#FCE100" cx="264.3" cy="27.4" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 56.6089 198.4527)" fill="#FCE100" cx="267.9" cy="30.9" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 55.1406 201.9832)" fill="#FCE100" cx="271.4" cy="34.4" rx="1" ry="1"/> <path fill="#FCE100" d="M247,3.5c-0.4-0.2-0.8-0.3-1.2-0.4c0,0.1,0.1,0.2,0.1,0.2C246.2,3.6,246.7,3.7,247,3.5z"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 68.9311 178.7037)" fill="#FCE100" cx="250.2" cy="6.1" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 67.4702 182.2429)" fill="#FCE100" cx="253.7" cy="9.7" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 66.0059 185.7789)" fill="#FCE100" cx="257.3" cy="13.2" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 64.5339 189.3056)" fill="#FCE100" cx="260.8" cy="16.8" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 63.073 192.845)" fill="#FCE100" cx="264.3" cy="20.3" rx="1" ry="1"/> <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 61.6125 196.3861)" fill="#FCE100" cx="267.9" cy="23.8" rx="1" ry="1"/> <path fill="#FCE100" d="M270.7,28.1c0.1,0.1,0.1,0.1,0.2,0.1c-0.1-0.4-0.3-0.8-0.4-1.2C270.3,27.3,270.4,27.8,270.7,28.1z"/> <g> <path fill="#FFFFFF" d="M81.5,177.5h-81v-81h81V177.5z M1.5,176.5h79v-79h-79V176.5z"/> </g> <g> <path fill="#FFFFFF" d="M329,81.5c-22.3,0-40.5-18.2-40.5-40.5S306.7,0.5,329,0.5s40.5,18.2,40.5,40.5S351.3,81.5,329,81.5z M329,1.5c-21.8,0-39.5,17.7-39.5,39.5s17.7,39.5,39.5,39.5s39.5-17.7,39.5-39.5S350.8,1.5,329,1.5z"/> </g> <g> <circle fill="#00B7C3" cx="100" cy="99" r="1"/> </g> <g> <circle fill="#00B7C3" cx="100" cy="114" r="1"/> </g> <g> <circle fill="#00B7C3" cx="100" cy="129" r="1"/> </g> <g> <circle fill="#00B7C3" cx="100" cy="144" r="1"/> </g> <g> <circle fill="#00B7C3" cx="100" cy="159" r="1"/> </g> <g> <circle fill="#00B7C3" cx="100" cy="174" r="1"/> </g> <g> <circle fill="#00B7C3" cx="115" cy="99" r="1"/> </g> <g> <circle fill="#00B7C3" cx="115" cy="114" r="1"/> </g> <g> <circle fill="#00B7C3" cx="115" cy="129" r="1"/> </g> <g> <circle fill="#00B7C3" cx="115" cy="144" r="1"/> </g> <g> <circle fill="#00B7C3" cx="115" cy="159" r="1"/> </g> <g> <circle fill="#00B7C3" cx="115" cy="174" r="1"/> </g> <g> <circle fill="#00B7C3" cx="130" cy="99" r="1"/> </g> <g> <circle fill="#00B7C3" cx="130" cy="114" r="1"/> </g> <g> <circle fill="#00B7C3" cx="130" cy="129" r="1"/> </g> <g> <circle fill="#00B7C3" cx="130" cy="144" r="1"/> </g> <g> <circle fill="#00B7C3" cx="130" cy="159" r="1"/> </g> <g> <circle fill="#00B7C3" cx="130" cy="174" r="1"/> </g> <g> <circle fill="#00B7C3" cx="145" cy="99" r="1"/> </g> <g> <circle fill="#00B7C3" cx="145" cy="114" r="1"/> </g> <g> <circle fill="#00B7C3" cx="145" cy="129" r="1"/> </g> <g> <circle fill="#00B7C3" cx="145" cy="144" r="1"/> </g> <g> <circle fill="#00B7C3" cx="145" cy="159" r="1"/> </g> <g> <circle fill="#00B7C3" cx="145" cy="174" r="1"/> </g> <g> <circle fill="#00B7C3" cx="160" cy="99" r="1"/> </g> <g> <circle fill="#00B7C3" cx="160" cy="114" r="1"/> </g> <g> <circle fill="#00B7C3" cx="160" cy="129" r="1"/> </g> <g> <circle fill="#00B7C3" cx="160" cy="144" r="1"/> </g> <g> <circle fill="#00B7C3" cx="160" cy="159" r="1"/> </g> <g> <circle fill="#00B7C3" cx="160" cy="174" r="1"/> </g> <g> <circle fill="#00B7C3" cx="175" cy="99" r="1"/> </g> <g> <circle fill="#00B7C3" cx="175" cy="114" r="1"/> </g> <g> <circle fill="#00B7C3" cx="175" cy="129" r="1"/> </g> <g> <circle fill="#00B7C3" cx="175" cy="144" r="1"/> </g> <g> <circle fill="#00B7C3" cx="175" cy="159" r="1"/> </g> <g> <circle fill="#00B7C3" cx="175" cy="174" r="1"/> </g> <g> <circle fill="#50E6FF" cx="41" cy="41" r="40"/> </g> <g> <rect x="289" y="97" fill="#004E8C" width="80" height="80"/> </g> <g> <g> <path fill="#0078D4" d="M108.7,69.3L108.7,69.3c3,3,6.4,5.5,10.2,7.4L101.3,59C103.2,62.8,105.7,66.3,108.7,69.3z"/> <path fill="#0078D4" d="M98.1,50.1l29.8,29.8c1.1,0.3,2.3,0.5,3.5,0.7L97.4,46.7C97.6,47.8,97.8,49,98.1,50.1z"/> <path fill="#0078D4" d="M97,40.6L137.4,81c0.9,0,1.8-0.1,2.7-0.1l-43-43C97.1,38.8,97,39.7,97,40.6z"/> <path fill="#0078D4" d="M97.8,32.9l47.3,47.3c0.8-0.2,1.5-0.3,2.3-0.5l-49-49C98.2,31.4,98,32.2,97.8,32.9z"/> <path fill="#0078D4" d="M99.8,26.4l51.8,51.8c0.7-0.3,1.3-0.5,2-0.8l-53-53C100.3,25.1,100,25.7,99.8,26.4z"/> <path fill="#0078D4" d="M102.5,20.7l54.8,54.8c0.6-0.3,1.2-0.7,1.7-1.1l-55.4-55.4C103.3,19.5,102.9,20.1,102.5,20.7z"/> <path fill="#0078D4" d="M106,15.7L162.3,72c0.5-0.4,1-0.9,1.5-1.3l-56.5-56.5C106.9,14.7,106.5,15.2,106,15.7z"/> <path fill="#0078D4" d="M110.2,11.3l56.5,56.5c0.4-0.5,0.9-1,1.3-1.5L111.7,10C111.2,10.5,110.7,10.9,110.2,11.3z"/> <path fill="#0078D4" d="M114.9,7.6l55.4,55.4c0.4-0.6,0.7-1.2,1.1-1.7L116.7,6.5C116.1,6.9,115.5,7.3,114.9,7.6z"/> <path fill="#0078D4" d="M120.4,4.6l53,53c0.3-0.7,0.6-1.3,0.8-2L122.4,3.8C121.7,4,121.1,4.3,120.4,4.6z"/> <path fill="#0078D4" d="M126.6,2.4l49,49c0.2-0.8,0.4-1.5,0.5-2.3L128.9,1.8C128.2,2,127.4,2.2,126.6,2.4z"/> <path fill="#0078D4" d="M133.9,1.1l43,43c0.1-0.9,0.1-1.8,0.1-2.7L136.6,1C135.7,1,134.8,1.1,133.9,1.1z"/> <path fill="#0078D4" d="M142.7,1.4l33.9,33.9c-0.2-1.2-0.4-2.3-0.7-3.5L146.1,2.1C145,1.8,143.8,1.6,142.7,1.4z"/> </g> <path fill="#0078D4" d="M155,5.3L172.7,23C168.8,15.4,162.6,9.2,155,5.3z"/> </g> <g> <rect x="193" y="98" fill="#4F6BED" width="2" height="80"/> </g> <g> <rect x="199" y="98" fill="#4F6BED" width="2" height="80"/> </g> <g> <rect x="205" y="98" fill="#4F6BED" width="2" height="80"/> </g> <g> <rect x="211" y="98" fill="#4F6BED" width="2" height="80"/> </g> <g> <rect x="217" y="98" fill="#4F6BED" width="2" height="80"/> </g> <g> <rect x="223" y="98" fill="#4F6BED" width="2" height="80"/> </g> <g> <rect x="229" y="98" fill="#4F6BED" width="2" height="80"/> </g> <g> <rect x="235" y="98" fill="#4F6BED" width="2" height="80"/> </g> <g> <rect x="241" y="98" fill="#4F6BED" width="2" height="80"/> </g> <g> <rect x="247" y="98" fill="#4F6BED" width="2" height="80"/> </g> <g> <rect x="253" y="98" fill="#4F6BED" width="2" height="80"/> </g> <g> <rect x="259" y="98" fill="#4F6BED" width="2" height="80"/> </g> <g> <rect x="265" y="98" fill="#4F6BED" width="2" height="80"/> </g> <g> <rect x="271" y="98" fill="#4F6BED" width="2" height="80"/> </g> </svg> </figure> </div> </div> </div> </div> </div> <footer class="site-footer" role="contentinfo"> <div class="wrapper d-xl-flex flex-justify-between flex-items-center flex-column"> <div class="site-footer__brand flex-column"> <img class="mb-4" src="/assets/images/Microsoft-icon-white.svg" alt="Microsoft icon" /> <p class="mb-4">Powered by <a class="link-decorated" href="/thanks/">Open Source</a> and Microsoft Azure</p> </div> <ul> <li> <a href="https://aka.ms/opensource" onclick="return confirm('Are you sure you want to continue to https://aka.ms/opensource? This resource is restricted to Microsoft employees to share guidance and documentation about open source at Microsoft.\n\nIf you continue, you will be redirected to authenticate with Azure Active Directory, and the error messages may be confusing if you are not able to sign-in.')">Employee sign-in</a> </li> <li> <a href="https://careers.microsoft.com/us/en/search-results?keywords=open%20source" target="_new">Jobs</a> </li> <li> <a href="https://opensource.microsoft.com/blog/" target="_new">Blog</a> </li> <li> <a href="/codeofconduct/">Code of Conduct</a> </li> <li> <a href="https://aka.ms/yourcaliforniaprivacychoices" class="c-uhff-link c-uhff-ccpa" style="display: inline-block"> <svg role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 14" xml:space="preserve" height="16" width="43" style="display: inline-block"> <title>California Consumer Privacy Act (CCPA) 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> <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> <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> <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"></path> </svg> <span>Your Privacy Choices</span> </a> </li> <li> <a href="https://privacy.microsoft.com/en-us/privacystatement" target="_blank">Privacy & Cookies</a> </li> <li id="manageCookies" data-require-javascript="yes" data-javascript-show="immediate"> <a href="#" onclick="manageCookies()" >Manage Cookies</a> </li> <li> <a href="https://www.microsoft.com/en-us/legal/intellectualproperty/copyright/default.aspx" target="_blank">Terms</a> </li> <li> <a href="https://www.microsoft.com/trademarks" target="_blank">Trademarks</a> </li> <li> <p>漏 <span id="year">2023</span> Microsoft</p> </li> </ul> </div> <script> var date = new Date().getFullYear(), year = document.getElementById('year'); if(year) { document.getElementById('year').innerHTML = date; } </script> </footer> <script src="/assets/js/gsap.min.js"></script> <script src="/assets/js/DrawSVGPlugin.min.js"></script> <script src="/assets/js/main.js"></script> <script id="uhf-footer-ccpa"> // Detect GPC const globalPrivacyControlEnabled = navigator.globalPrivacyControl; // Set data sharing opt-in to false when GPC/AMC controls detected const GPC_DataSharingOptIn = (globalPrivacyControlEnabled) ? false : checkThirdPartyAdsOptOutCookie(); // Detect AMC opt out choice function checkThirdPartyAdsOptOutCookie() { try { const ThirdPartyAdsOptOutCookieName = '3PAdsOptOut'; var cookieValue = getCookie(ThirdPartyAdsOptOutCookieName); //for unauthenticated users return cookieValue != 1; } catch { return true; } } function getCookie(cookieName) { var cookieValue = document.cookie.match('(^|;)\\s*' + cookieName + '\\s*=\\s*([^;]+)'); return (cookieValue) ? cookieValue[2] : ''; } </script> <script type="text/javascript"> function enableAppInsights() { var appInsights=window.appInsights||function(config){function s(config){t[config]=function(){var i=arguments;t.queue.push(function(){t[config].apply(t,i)})}}var t={config:config},r=document,f=window,e="script",o=r.createElement(e),i,u;for(o.src=config.url||"//az416426.vo.msecnd.net/scripts/a/ai.0.js",r.getElementsByTagName(e)[0].parentNode.appendChild(o),t.cookie=r.cookie,t.queue=[],i=["Event","Exception","Metric","PageView","Trace"];i.length;)s("track"+i.pop());return config.disableExceptionTracking||(i="onerror",s("_"+i),u=f[i],f[i]=function(config,r,f,e,o){var s=u&&u(config,r,f,e,o);return s!==!0&&t["_"+i](config,r,f,e,o),s}),t}({instrumentationKey:"98f90d2e-54e0-4e9c-a919-deea70bad056"/*the telemetry instrumentation key is NOT a secret FYI */});window.appInsights=appInsights;appInsights.trackPageView(); } </script> <!-- <script src="https://az725175.vo.msecnd.net/scripts/jsll-4.js"></script> --> <script> var siteConsent = null; const currentUrl = window.location.href; const searchParams = new URLSearchParams(new URL(currentUrl).search); var showTelemetryDebug = searchParams.has('console'); if (showTelemetryDebug) { console.log('Will show telemetry debug in the console.'); } function enableAnalytics() { var config = { coreData: { appId: 'opensource.microsoft.com' } }; // no longer using this secondary provider: awa.init(config); } function addTelemetry() { enableAppInsights(); enableAnalytics(); } function onConsentChanged(categoryPreferences) { showTelemetryDebug && console.log('onConsentChanged.'); evaluateUserConsent(); evaluateShowManagement(); } function evaluateShowManagement() { document.getElementById('manageCookies').style.display = siteConsent.isConsentRequired ? 'inline-block' : 'none'; } function evaluateUserConsent() { try { // only connect if there is opt-in (Cali.) and/or cookie banner consent in a required place if (GPC_DataSharingOptIn === true && siteConsent && siteConsent.getConsentFor(WcpConsent.consentCategories.Analytics)) { addTelemetry(); showTelemetryDebug && console.log('Telemetry added.'); } else { if (GPC_DataSharingOptIn === false) { showTelemetryDebug && console.log('No data sharing opt-in present.'); } else { showTelemetryDebug && console.log('No site consent for telemetry.'); } } } catch (error) { if (showTelemetryDebug) { console.dir(error); } } } WcpConsent.init('en-US', 'cookiebanner', function (err, _siteConsent) { if (err != undefined) { if (showTelemetryDebug) { console.log('WcpConsent.init error', err); } return error; } else { siteConsent = _siteConsent; if (showTelemetryDebug) { console.log('WcpConsent.init', siteConsent); } } evaluateShowManagement(); evaluateUserConsent(); }, onConsentChanged); function manageCookies() { if(siteConsent.isConsentRequired){ siteConsent.manageConsent(); } return false; } </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10