CINXE.COM

stuartgibson (Stuart Gibson) · GitHub

<!DOCTYPE html> <html lang="en" data-color-mode="auto" data-light-theme="light" data-dark-theme="dark"> <head><script type="text/javascript" src="https://web-static.archive.org/_static/js/bundle-playback.js?v=7YQSqjSh" charset="utf-8"></script> <script type="text/javascript" src="https://web-static.archive.org/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="https://web-static.archive.org/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://github.com/stuartgibson","20211128155007","https://web.archive.org/","web","https://web-static.archive.org/_static/", "1638114607"); </script> <link rel="stylesheet" type="text/css" href="https://web-static.archive.org/_static/css/banner-styles.css?v=p7PEIJWi" /> <link rel="stylesheet" type="text/css" href="https://web-static.archive.org/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta charset="utf-8"> <link rel="dns-prefetch" href="https://web.archive.org/web/20211128155007/https://github.githubassets.com/"> <link rel="dns-prefetch" href="https://web.archive.org/web/20211128155007/https://avatars.githubusercontent.com/"> <link rel="dns-prefetch" href="https://web.archive.org/web/20211128155007/https://github-cloud.s3.amazonaws.com/"> <link rel="dns-prefetch" href="https://web.archive.org/web/20211128155007/https://user-images.githubusercontent.com/"> <link rel="preconnect" href="https://web.archive.org/web/20211128155007/https://github.githubassets.com/" crossorigin> <link rel="preconnect" href="https://web.archive.org/web/20211128155007/https://avatars.githubusercontent.com/"> <link crossorigin="anonymous" media="all" integrity="" rel="stylesheet" href="https://web.archive.org/web/20211128155007cs_/https://github.githubassets.com/assets/light-d46e2b60992dc114d02a7edf55f254c4.css"/><link crossorigin="anonymous" media="all" integrity="" rel="stylesheet" href="https://web.archive.org/web/20211128155007cs_/https://github.githubassets.com/assets/dark-848e5bda8a9313d9e37e362b7eecd7a8.css"/><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" integrity="" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-92541d6f7b75e0061a44c901d2ff5bb9.css"/><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" integrity="" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-081b1fa41be0d43fc7be7f05158e09c1.css"/><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" integrity="" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-d3d8a99329c0b730aa6ac9760f6fff37.css"/><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" integrity="" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-389c270bfa4674e57740ca16b9df2fa7.css"/><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" integrity="" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-e6cc20d112469618f4507dd22e427a7b.css"/> <link crossorigin="anonymous" media="all" integrity="" rel="stylesheet" href="https://web.archive.org/web/20211128155007cs_/https://github.githubassets.com/assets/frameworks-4f7378e77856098b0bf3229fbb7cb27b.css"/> <link crossorigin="anonymous" media="all" integrity="" rel="stylesheet" href="https://web.archive.org/web/20211128155007cs_/https://github.githubassets.com/assets/behaviors-a40bb620093b7e8d02082ec15d0a19a8.css"/> <link crossorigin="anonymous" media="all" integrity="" rel="stylesheet" href="https://web.archive.org/web/20211128155007cs_/https://github.githubassets.com/assets/tab-size-fix-30224561f6d0a13e045c2e9a5b1e5682.css"/> <link crossorigin="anonymous" media="all" integrity="" rel="stylesheet" href="https://web.archive.org/web/20211128155007cs_/https://github.githubassets.com/assets/github-566492675ba9904b6872e740fd5da457.css"/> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" src="https://web.archive.org/web/20211128155007js_/https://github.githubassets.com/assets/environment-2bf92300.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" src="https://web.archive.org/web/20211128155007js_/https://github.githubassets.com/assets/chunk-frameworks-a010e3b0.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" src="https://web.archive.org/web/20211128155007js_/https://github.githubassets.com/assets/chunk-vendor-a44ba20b.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" src="https://web.archive.org/web/20211128155007js_/https://github.githubassets.com/assets/behaviors-84faf665.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-unveil.js" data-src="https://github.githubassets.com/assets/chunk-unveil-383649cc.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-animate-on-scroll.js" data-src="https://github.githubassets.com/assets/chunk-animate-on-scroll-7a63e051.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-input-demux.js" data-src="https://github.githubassets.com/assets/chunk-input-demux-c7a2fde2.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-ref-selector.js" data-src="https://github.githubassets.com/assets/chunk-ref-selector-77dccb93.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-filter-input.js" data-src="https://github.githubassets.com/assets/chunk-filter-input-a83ff9b7.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-edit.js" data-src="https://github.githubassets.com/assets/chunk-edit-ca75799c.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-responsive-underlinenav.js" data-src="https://github.githubassets.com/assets/chunk-responsive-underlinenav-1a1a870c.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-tag-input.js" data-src="https://github.githubassets.com/assets/chunk-tag-input-826c3ba1.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-notification-list-focus.js" data-src="https://github.githubassets.com/assets/chunk-notification-list-focus-028f6594.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-cookies.js" data-src="https://github.githubassets.com/assets/chunk-cookies-48f59dde.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-slug.js" data-src="https://github.githubassets.com/assets/chunk-slug-e2f551a6.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-async-export.js" data-src="https://github.githubassets.com/assets/chunk-async-export-30ae7719.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-premium-runners.js" data-src="https://github.githubassets.com/assets/chunk-premium-runners-b70f5202.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-get-repo-element.js" data-src="https://github.githubassets.com/assets/chunk-get-repo-element-0f9efa0a.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-color-modes.js" data-src="https://github.githubassets.com/assets/chunk-color-modes-c614803b.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-copy.js" data-src="https://github.githubassets.com/assets/chunk-copy-8e2b71a2.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-voting.js" data-src="https://github.githubassets.com/assets/chunk-voting-b0078bef.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-confetti.js" data-src="https://github.githubassets.com/assets/chunk-confetti-1c3b0b25.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-codemirror.js" data-src="https://github.githubassets.com/assets/chunk-codemirror-266f7585.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-tip.js" data-src="https://github.githubassets.com/assets/chunk-tip-1abdd970.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-line.js" data-src="https://github.githubassets.com/assets/chunk-line-11d42f96.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-array.js" data-src="https://github.githubassets.com/assets/chunk-array-e334873f.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-band.js" data-src="https://github.githubassets.com/assets/chunk-band-83c7dbe9.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-toast.js" data-src="https://github.githubassets.com/assets/chunk-toast-ea8582bb.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-delayed-loading-element.js" data-src="https://github.githubassets.com/assets/chunk-delayed-loading-element-9a26a267.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-three.module.js" data-src="https://github.githubassets.com/assets/chunk-three.module-183db908.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-invitations.js" data-src="https://github.githubassets.com/assets/chunk-invitations-39f93b75.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-profile.js" data-src="https://github.githubassets.com/assets/chunk-profile-bc547e22.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-overview.js" data-src="https://github.githubassets.com/assets/chunk-overview-5b74c5ad.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-advanced.js" data-src="https://github.githubassets.com/assets/chunk-advanced-c6ac36df.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-runner-groups.js" data-src="https://github.githubassets.com/assets/chunk-runner-groups-e9199dd0.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-profile-pins-element.js" data-src="https://github.githubassets.com/assets/chunk-profile-pins-element-e47e4dff.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-emoji-picker-element.js" data-src="https://github.githubassets.com/assets/chunk-emoji-picker-element-2eb0f690.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-edit-hook-secret-element.js" data-src="https://github.githubassets.com/assets/chunk-edit-hook-secret-element-12f27616.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-insights-query.js" data-src="https://github.githubassets.com/assets/chunk-insights-query-f752735a.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-remote-clipboard-copy.js" data-src="https://github.githubassets.com/assets/chunk-remote-clipboard-copy-0ffe4077.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-series-table.js" data-src="https://github.githubassets.com/assets/chunk-series-table-78efebd1.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-line-chart.js" data-src="https://github.githubassets.com/assets/chunk-line-chart-78248c54.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-bar-chart.js" data-src="https://github.githubassets.com/assets/chunk-bar-chart-ad985c66.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-stacked-area-chart.js" data-src="https://github.githubassets.com/assets/chunk-stacked-area-chart-fd03f9c8.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-presence-avatars.js" data-src="https://github.githubassets.com/assets/chunk-presence-avatars-1a8843a5.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-pulse-authors-graph-element.js" data-src="https://github.githubassets.com/assets/chunk-pulse-authors-graph-element-4e91d321.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-stacks-input-config-view.js" data-src="https://github.githubassets.com/assets/chunk-stacks-input-config-view-68d01c14.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-community-contributions.js" data-src="https://github.githubassets.com/assets/chunk-community-contributions-3175dd2a.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-discussion-page-views.js" data-src="https://github.githubassets.com/assets/chunk-discussion-page-views-71eb7d86.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-discussions-daily-contributors.js" data-src="https://github.githubassets.com/assets/chunk-discussions-daily-contributors-e7ebf754.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-discussions-new-contributors.js" data-src="https://github.githubassets.com/assets/chunk-discussions-new-contributors-fcf492dd.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-tweetsodium.js" data-src="https://github.githubassets.com/assets/chunk-tweetsodium-7057bd5a.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-jump-to.js" data-src="https://github.githubassets.com/assets/chunk-jump-to-01529fa8.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-user-status-submit.js" data-src="https://github.githubassets.com/assets/chunk-user-status-submit-ae00780b.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-launch-code-element.js" data-src="https://github.githubassets.com/assets/chunk-launch-code-element-e31b6350.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-metric-selection-element.js" data-src="https://github.githubassets.com/assets/chunk-metric-selection-element-362955c7.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-severity-calculator-element.js" data-src="https://github.githubassets.com/assets/chunk-severity-calculator-element-1b3f4184.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-readme-toc-element.js" data-src="https://github.githubassets.com/assets/chunk-readme-toc-element-c971e4c2.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-feature-callout-element.js" data-src="https://github.githubassets.com/assets/chunk-feature-callout-element-5adc4562.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-action-list-element.js" data-src="https://github.githubassets.com/assets/chunk-action-list-element-7119749a.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-sortable-behavior.js" data-src="https://github.githubassets.com/assets/chunk-sortable-behavior-3efc77ad.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-drag-drop.js" data-src="https://github.githubassets.com/assets/chunk-drag-drop-e895101e.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-contributions-spider-graph.js" data-src="https://github.githubassets.com/assets/chunk-contributions-spider-graph-dbca62a4.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" data-module-id="./chunk-webgl-warp.js" data-src="https://github.githubassets.com/assets/chunk-webgl-warp-cb4cae89.js"></script> <script crossorigin="anonymous" defer="defer" integrity="" type="application/javascript" src="https://web.archive.org/web/20211128155007js_/https://github.githubassets.com/assets/profile-92b89918.js"></script> <meta name="viewport" content="width=device-width"> <title>stuartgibson (Stuart Gibson) · GitHub</title> <meta name="description" content="stuartgibson has 8 repositories available. Follow their code on GitHub."> <link rel="search" type="application/opensearchdescription+xml" href="/web/20211128155007/https://github.com/opensearch.xml" title="GitHub"> <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub"> <meta property="fb:app_id" content="1401488693436528"> <meta name="apple-itunes-app" content="app-id=1477376905"/> <meta name="twitter:image:src" content="https://avatars.githubusercontent.com/u/867993?v=4?s=400"/><meta name="twitter:site" content="@github"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="stuartgibson - Overview"/><meta name="twitter:description" content="stuartgibson has 8 repositories available. Follow their code on GitHub."/> <meta property="og:image" content="https://web.archive.org/web/20211128155007im_/https://avatars.githubusercontent.com/u/867993?v=4?s=400"/><meta property="og:image:alt" content="stuartgibson has 8 repositories available. Follow their code on GitHub."/><meta property="og:site_name" content="GitHub"/><meta property="og:type" content="profile"/><meta property="og:title" content="stuartgibson - Overview"/><meta property="og:url" content="https://web.archive.org/web/20211128155007/https://github.com/stuartgibson"/><meta property="og:description" content="stuartgibson has 8 repositories available. Follow their code on GitHub."/><meta property="profile:username" content="stuartgibson"/> <link rel="assets" href="https://github.githubassets.com/"> <meta name="request-id" content="9E4E:93C9:32A8B:D137B:61A3A52F" data-pjax-transient="true"/><meta name="html-safe-nonce" content="66518d16afdc42536955a1a9334d38b274642f1ac0184145852645168770b723" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5RTRFOjkzQzk6MzJBOEI6RDEzN0I6NjFBM0E1MkYiLCJ2aXNpdG9yX2lkIjoiNjgzNzQxOTAxMTUxMTM5NTYzMSIsInJlZ2lvbl9lZGdlIjoic2VhIiwicmVnaW9uX3JlbmRlciI6InNlYSJ9" data-pjax-transient="true"/><meta name="visitor-hmac" content="cade35da31d48114c7d6d0667508561421db613880222e6edcc700fe3d377901" data-pjax-transient="true"/> <meta name="github-keyboard-shortcuts" content="" data-pjax-transient="true"/> <meta name="selected-link" value="/stuartgibson" data-pjax-transient> <meta name="google-site-verification" content="c1kuD-K2HIVF635lypcsWPoD4kilo5-jA_wBFyT4uMY"> <meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU"> <meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA"> <meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc"> <meta name="octolytics-url" content="https://collector.githubapp.com/github/collect"/> <meta name="analytics-location" content="/<user-name>" data-pjax-transient="true"/> <meta name="hostname" content="github.com"> <meta name="user-login" content=""> <meta name="expected-hostname" content="github.com"> <meta name="enabled-features" content="MARKETPLACE_PENDING_INSTALLATIONS,FILE_UPLOAD_CURSOR_POSITION"> <meta http-equiv="x-pjax-version" content="3bf84d822c560f77745ca1128a49e5dac486262521c91fb35f57a4dba61d4f8e"> <meta http-equiv="x-pjax-csp-version" content="2961869ef171e90c8991818e57dbe138c0fb830bb3b52e0ab0e81ccb4709c345"> <meta http-equiv="x-pjax-css-version" content="49d339c8792c24d5fa8103c5556759f04f67e75a6c7f8d104a2eea524df8c90b"> <meta http-equiv="x-pjax-js-version" content="37239e3770094982a4ee5ef5289318f96dda432abbca25accfa9812ac257002f"> <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats"> <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors"> <meta name="browser-optimizely-client-errors-url" content="https://api.github.com/_private/browser/optimizely_client/errors"> <link rel="mask-icon" href="https://web.archive.org/web/20211128155007im_/https://github.githubassets.com/pinned-octocat.svg" color="#000000"> <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png"> <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://web.archive.org/web/20211128155007im_/https://github.githubassets.com/favicons/favicon.svg"> <meta name="theme-color" content="#1e2327"> <meta name="color-scheme" content="light dark"/> <link rel="manifest" href="/web/20211128155007/https://github.com/manifest.json" crossorigin="use-credentials"> </head> <body class="logged-out env-production page-responsive page-profile" style="word-wrap: break-word;"> <div class="position-relative js-header-wrapper "> <a href="#start-of-content" class="px-2 py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a> <span data-view-component="true" class="progress-pjax-loader js-pjax-loader-bar Progress position-fixed width-full"> <span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar color-bg-accent-emphasis"></span> </span> <header class="Header-old header-logged-out js-details-container Details position-relative f4 py-2" role="banner"> <div class="container-xl d-lg-flex flex-items-center p-responsive"> <div class="d-flex flex-justify-between flex-items-center"> <a class="mr-4 color-fg-inherit" href="https://web.archive.org/web/20211128155007/https://github.com/" aria-label="Homepage" data-ga-click="(Logged out) Header, go to homepage, icon:logo-wordmark"> <svg height="32" aria-hidden="true" viewbox="0 0 16 16" version="1.1" width="32" data-view-component="true" class="octicon octicon-mark-github"> <path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path> </svg> </a> <div class="d-lg-none css-truncate css-truncate-target width-fit p-2"> </div> <div class="d-flex flex-items-center"> <a href="/web/20211128155007/https://github.com/signup?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F%3Cuser-name%3E&amp;source=header" class="d-inline-block d-lg-none f5 no-underline border color-border-default rounded-2 px-2 py-1 mr-3 mr-sm-5 color-fg-inherit" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e5b0001413b409bb8d239f2cf40268e9d59eb33023f970ee92fa0cd467b4bed9"> Sign&nbsp;up </a> <button aria-label="Toggle navigation" aria-expanded="false" type="button" data-view-component="true" class="js-details-target btn-link d-lg-none mt-1 color-fg-inherit"> <svg aria-hidden="true" height="24" viewbox="0 0 16 16" version="1.1" width="24" data-view-component="true" class="octicon octicon-three-bars"> <path fill-rule="evenodd" d="M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z"></path> </svg> </button> </div> </div> <div class="HeaderMenu HeaderMenu--logged-out position-fixed top-0 right-0 bottom-0 height-fit position-lg-relative d-lg-flex flex-justify-between flex-items-center flex-auto"> <div class="d-flex d-lg-none flex-justify-end border-bottom color-bg-subtle p-3"> <button aria-label="Toggle navigation" aria-expanded="false" type="button" data-view-component="true" class="js-details-target btn-link"> <svg aria-hidden="true" height="24" viewbox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-x color-fg-muted"> <path fill-rule="evenodd" d="M5.72 5.72a.75.75 0 011.06 0L12 10.94l5.22-5.22a.75.75 0 111.06 1.06L13.06 12l5.22 5.22a.75.75 0 11-1.06 1.06L12 13.06l-5.22 5.22a.75.75 0 01-1.06-1.06L10.94 12 5.72 6.78a.75.75 0 010-1.06z"></path> </svg> </button> </div> <nav class="mt-0 px-3 px-lg-0 mb-5 mb-lg-0" aria-label="Global"> <ul class="d-lg-flex list-style-none"> <li class="mr-0 mr-lg-3 position-relative flex-wrap flex-justify-between flex-items-center border-bottom border-lg-bottom-0 d-block d-lg-flex flex-lg-nowrap flex-lg-items-center"> <details class="HeaderMenu-details details-overlay details-reset width-full"> <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-block d-lg-inline-block"> Why GitHub? <svg x="0" y="0" viewbox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-absolute position-lg-relative"><path d="M1,1l6.2,6L13,1"></path></svg> </summary> <div class="dropdown-menu flex-auto rounded px-0 mt-0 pb-4 p-lg-4 position-relative position-lg-absolute left-0 left-lg-n4"> <ul class="list-style-none f5 pb-1"> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--primary text-bold py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Features&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Features;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a29218c7ace1e4310fb23aec5967028233795625569ba1ffbb8b297e0a503c19" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Features&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Features;&quot;}" href="/web/20211128155007/https://github.com/features"> Features <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Mobile&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Mobile;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="1088d6219a47fcead0a62441252f51114fb8f103ce9026b74301651a4bf28aec" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Mobile&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Mobile;&quot;}" href="/web/20211128155007/https://github.com/mobile"> Mobile <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Actions&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Actions;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6a5354204e8eb86694e2ebae0b742b19704ee371937b831633f36d04b8c1449d" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Actions&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Actions;&quot;}" href="/web/20211128155007/https://github.com/features/actions"> Actions <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Codespaces&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Codespaces;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="81e4a35fdf349715ee37869824a2dace718dcb0815952b41cdf760449200f8a1" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Codespaces&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Codespaces;&quot;}" href="/web/20211128155007/https://github.com/features/codespaces"> Codespaces <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Packages&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Packages;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="0235067c680b93c2877be7013a39dcc5d1b981eaa33692a5a86e6b8413620482" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Packages&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Packages;&quot;}" href="/web/20211128155007/https://github.com/features/packages"> Packages <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Security&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Security;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="14f82e0d0500cbbad4ac99c065b72a68120eb2c3208421bf49eb769a8e103e28" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Security&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Security;&quot;}" href="/web/20211128155007/https://github.com/features/security"> Security <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Code review&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Code review;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="005948bd0603304346e5c86a8d1b453c8395cd2ffbfd49aba460007b2a738c45" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Code review&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Code review;&quot;}" href="/web/20211128155007/https://github.com/features/code-review"> Code review <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Issues&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Issues;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6b0289dd84215132821d3e290d8bdbc648fcabf78c61185ffa9797421c59893f" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Issues&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Issues;&quot;}" href="/web/20211128155007/https://github.com/features/issues"> Issues <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Integrations&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Integrations;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="0c749a53caebbab6b136208aa8770f85ea46b883ea9f3994f39900fb4b81bacb" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Integrations&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Integrations;&quot;}" href="/web/20211128155007/https://github.com/features/integrations"> Integrations <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--primary text-bold border-top pt-4 pb-2 mt-3" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to GitHub Sponsors&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:GitHub Sponsors;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="f785bf2adc8e44449373759b9ded26937d3f8c632e706c1021038339df058d11" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to GitHub Sponsors&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:GitHub Sponsors;&quot;}" href="/web/20211128155007/https://github.com/sponsors"> GitHub Sponsors <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--primary text-bold py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Customer stories&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Customer stories;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="292656aad4c11a347788f724a0618b71797adf89437a9560a9a6687a5dbfeb58" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Why GitHub?&quot;,&quot;action&quot;:&quot;click to go to Customer stories&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Customer stories;&quot;}" href="/web/20211128155007/https://github.com/customer-stories"> Customer stories <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> </ul> </div> </details> </li> <li class="mr-0 mr-lg-3 position-relative flex-wrap flex-justify-between flex-items-center border-bottom border-lg-bottom-0 d-block d-lg-flex flex-lg-nowrap flex-lg-items-center"> <a class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header menu top item (logged out)&quot;,&quot;action&quot;:&quot;click to go to Team&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Team;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="dfe231d85686a538352d6620daa37345501fb0da03fb53443fa3271c3db0baad" data-analytics-event="{&quot;category&quot;:&quot;Header menu top item (logged out)&quot;,&quot;action&quot;:&quot;click to go to Team&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Team;&quot;}" href="/web/20211128155007/https://github.com/team">Team</a> </li> <li class="mr-0 mr-lg-3 position-relative flex-wrap flex-justify-between flex-items-center border-bottom border-lg-bottom-0 d-block d-lg-flex flex-lg-nowrap flex-lg-items-center"> <a class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header menu top item (logged out)&quot;,&quot;action&quot;:&quot;click to go to Enterprise&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Enterprise;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="07d6734455acfee6c522489994b607954df412e85b3be680aa4f95b4ec6b4e69" data-analytics-event="{&quot;category&quot;:&quot;Header menu top item (logged out)&quot;,&quot;action&quot;:&quot;click to go to Enterprise&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Enterprise;&quot;}" href="/web/20211128155007/https://github.com/enterprise">Enterprise</a> </li> <li class="mr-0 mr-lg-3 position-relative flex-wrap flex-justify-between flex-items-center border-bottom border-lg-bottom-0 d-block d-lg-flex flex-lg-nowrap flex-lg-items-center"> <details class="HeaderMenu-details details-overlay details-reset width-full"> <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-block d-lg-inline-block"> Explore <svg x="0" y="0" viewbox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-absolute position-lg-relative"><path d="M1,1l6.2,6L13,1"></path></svg> </summary> <div class="dropdown-menu flex-auto rounded px-0 mt-0 pb-4 p-lg-4 position-relative position-lg-absolute left-0 left-lg-n4"> <ul class="list-style-none f5 pb-1"> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--primary text-bold py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to Explore GitHub&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Explore GitHub;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="fc8e32bd5c2c87ae818aefbf2bf7efc10d10f408f408d4655c323b0ee6400874" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to Explore GitHub&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Explore GitHub;&quot;}" href="/web/20211128155007/https://github.com/explore"> Explore GitHub <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li class="color-fg-muted text-normal f6 text-mono mb-1 border-top pt-3 mt-3 mb-1">Learn and contribute</li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to Topics&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Topics;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="bfc3a730251cd7b3ef9fbc1d403f02b682dbd3a0128062aad127d2e92bea828e" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to Topics&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Topics;&quot;}" href="/web/20211128155007/https://github.com/topics"> Topics <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to Collections&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Collections;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="907e7c17728c247949cca4966dea5e3f352e5126bd77c6d597dc1d90d9af3e94" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to Collections&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Collections;&quot;}" href="/web/20211128155007/https://github.com/collections"> Collections <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to Trending&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Trending;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="083c3a49cf2d6cb48ec9ec07fc71e497186c6f2c654fc596d8042b27836c8b38" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to Trending&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Trending;&quot;}" href="/web/20211128155007/https://github.com/trending"> Trending <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to Learning Lab&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Learning Lab;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="dc689d05ba940e8079085ff7dbe6ef8effdd416ed2c50d02f6b50e5a7179a4e1" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to Learning Lab&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Learning Lab;&quot;}" href="https://web.archive.org/web/20211128155007/https://lab.github.com/"> Learning Lab <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to Open source guides&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Open source guides;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="0f9f62039844c67fdd18a5e964444cf3bc150d6113e2cf3258ce48b5dbb3cf33" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to Open source guides&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Open source guides;&quot;}" href="https://web.archive.org/web/20211128155007/https://opensource.guide/"> Open source guides <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li class="color-fg-muted text-normal f6 text-mono mb-1 border-top pt-3 mt-3 mb-1">Connect with others</li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to The ReadME Project&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:The ReadME Project;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d5adbc1f71085866e00430e00f426283f9474046bd6ef9039704765864f28442" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to The ReadME Project&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:The ReadME Project;&quot;}" href="/web/20211128155007/https://github.com/readme"> The ReadME Project <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to Events&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Events;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="16a50db5b95d18934b2f13ac5f3e6e084d040a71ba9b5ab70f195415b81b6fd7" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to Events&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Events;&quot;}" href="/web/20211128155007/https://github.com/events"> Events <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to Community forum&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Community forum;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="dc664c80b33630d244efd5458a00cf3d95f83d19172e23fec00a3d0374d6156b" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to Community forum&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Community forum;&quot;}" href="https://web.archive.org/web/20211128155007/https://github.community/"> Community forum <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to GitHub Education&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:GitHub Education;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="a259c6382cd5f7bc552f15342fb79eccf5dffa05a7a0b06e279e2d3482827897" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to GitHub Education&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:GitHub Education;&quot;}" href="https://web.archive.org/web/20211128155007/https://education.github.com/"> GitHub Education <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to GitHub Stars program&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:GitHub Stars program;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="0b3c4cb17d9d7a0f6cf1bc8b969ae9db7aadcf97b8cd53c6ad0a709b08417c0c" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Explore&quot;,&quot;action&quot;:&quot;click to go to GitHub Stars program&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:GitHub Stars program;&quot;}" href="https://web.archive.org/web/20211128155007/https://stars.github.com/"> GitHub Stars program <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> </ul> </div> </details> </li> <li class="mr-0 mr-lg-3 position-relative flex-wrap flex-justify-between flex-items-center border-bottom border-lg-bottom-0 d-block d-lg-flex flex-lg-nowrap flex-lg-items-center"> <a class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header menu top item (logged out)&quot;,&quot;action&quot;:&quot;click to go to Marketplace&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Marketplace;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="81fcb8038a5ac6eacb11407303000453d4d0bd2264684e12490b0761dfa1279b" data-analytics-event="{&quot;category&quot;:&quot;Header menu top item (logged out)&quot;,&quot;action&quot;:&quot;click to go to Marketplace&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Marketplace;&quot;}" href="/web/20211128155007/https://github.com/marketplace">Marketplace</a> </li> <li class="mr-0 mr-lg-3 position-relative flex-wrap flex-justify-between flex-items-center border-bottom border-lg-bottom-0 d-block d-lg-flex flex-lg-nowrap flex-lg-items-center"> <details class="HeaderMenu-details details-overlay details-reset width-full"> <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-block d-lg-inline-block"> Pricing <svg x="0" y="0" viewbox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-absolute position-lg-relative"><path d="M1,1l6.2,6L13,1"></path></svg> </summary> <div class="dropdown-menu flex-auto rounded px-0 mt-0 pb-4 p-lg-4 position-relative position-lg-absolute left-0 left-lg-n4"> <ul class="list-style-none f5 pb-1"> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--primary text-bold py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Pricing&quot;,&quot;action&quot;:&quot;click to go to Plans&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Plans;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e8065bb349eef52d16b0bca97f9ad87bb50630a0a4affee3e2cb44396b9e8a06" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Pricing&quot;,&quot;action&quot;:&quot;click to go to Plans&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Plans;&quot;}" href="/web/20211128155007/https://github.com/pricing"> Plans <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Pricing&quot;,&quot;action&quot;:&quot;click to go to Compare plans&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Compare plans;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9890b9961dbc5dcb33d9c5b96500476fa8c34346985f172d34acc99d4568489e" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Pricing&quot;,&quot;action&quot;:&quot;click to go to Compare plans&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Compare plans;&quot;}" href="/web/20211128155007/https://github.com/pricing#compare-features"> Compare plans <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--secondary py-2" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Pricing&quot;,&quot;action&quot;:&quot;click to go to Contact Sales&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Contact Sales;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="7b28c11bcaae2748791148071ae641b37a34e15691238fd08442db021eea0f7b" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Pricing&quot;,&quot;action&quot;:&quot;click to go to Contact Sales&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Contact Sales;&quot;}" href="https://web.archive.org/web/20211128155007/https://github.com/enterprise/contact"> Contact Sales <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> <li> <a class="lh-condensed-ultra d-block no-underline Bump-link--hover position-relative Link--primary text-bold border-top pt-4 pb-2 mt-3" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Header dropdown (logged out), Pricing&quot;,&quot;action&quot;:&quot;click to go to Education&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Education;&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d9eab6444dc0ce1fd63915e672a5318de1210b51eb80e1b13beb5403d34e5e6b" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Pricing&quot;,&quot;action&quot;:&quot;click to go to Education&quot;,&quot;label&quot;:&quot;ref_page:/stuartgibson;ref_cta:Education;&quot;}" href="https://web.archive.org/web/20211128155007/https://education.github.com/"> Education <span class="Bump-link-symbol position-absolute right-0 text-normal color-fg-muted pr-3">&rarr;</span> </a> </li> </ul> </div> </details> </li> </ul> </nav> <div class="d-lg-flex flex-items-center px-3 px-lg-0 text-center text-lg-left"> <div class="d-lg-flex min-width-0 mb-3 mb-lg-0"> <div class="header-search flex-auto js-site-search position-relative flex-self-stretch flex-md-self-auto mb-3 mb-md-0 mr-0 mr-md-3 scoped-search site-scoped-search js-jump-to"> <div class="position-relative"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-site-search-form" role="search" aria-label="Site" data-scope-type="User" data-scope-id="867993" data-scoped-search-url="/users/stuartgibson/search" data-unscoped-search-url="/search" action="/web/20211128155007/https://github.com/users/stuartgibson/search" accept-charset="UTF-8" method="get"> <label class="form-control input-sm header-search-wrapper p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"> <input type="text" class="form-control input-sm header-search-input jump-to-field js-jump-to-field js-site-search-focus js-site-search-field is-clearable" data-hotkey="s,/" name="q" data-test-selector="nav-search-input" placeholder="Search" data-unscoped-placeholder="Search GitHub" data-scoped-placeholder="Search" autocapitalize="off" role="combobox" aria-haspopup="listbox" aria-expanded="false" aria-autocomplete="list" aria-controls="jump-to-results" aria-label="Search" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" spellcheck="false" autocomplete="off"> <input type="hidden" data-csrf="true" class="js-data-jump-to-suggestions-path-csrf" value="z2GRYVaU1HVLSVtw37nim2uto8e/qjIOifhJGRKpVaJTzDATJrzG1t0Lm97kFFZU+9eBAs31+lXRFFWwfB6CdQ=="/> <input type="hidden" class="js-site-search-type-field" name="type"> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="20" aria-hidden="true" class="mr-1 header-search-key-slash"><path fill="none" stroke="#979A9C" opacity=".4" d="M3.5.5h12c1.7 0 3 1.3 3 3v13c0 1.7-1.3 3-3 3h-12c-1.7 0-3-1.3-3-3v-13c0-1.7 1.3-3 3-3z"></path><path fill="#979A9C" d="M11.8 6L8 15.1h-.9L10.8 6h1z"></path></svg> <div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container"> <ul class="d-none js-jump-to-suggestions-template-container"> <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion" role="option"> <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="suggestion"> <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"> <svg title="Repository" aria-label="Repository" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0"> <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path> </svg> <svg title="Project" aria-label="Project" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0"> <path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path> </svg> <svg title="Search" aria-label="Search" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0"> <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> <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="/web/20211128155007im_/https://github.com/stuartgibson" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-1 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this user"> In this user </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-1 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div> </a> </li> </ul> <ul class="d-none js-jump-to-no-results-template-container"> <li class="d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2"> <span class="color-fg-muted">No suggested jump to results</span> </li> </ul> <ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container"> <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none" role="option"> <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="scoped_search"> <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"> <svg title="Repository" aria-label="Repository" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0"> <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path> </svg> <svg title="Project" aria-label="Project" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0"> <path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path> </svg> <svg title="Search" aria-label="Search" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0"> <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> <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="/web/20211128155007im_/https://github.com/stuartgibson" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-1 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this user"> In this user </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-1 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div> </a> </li> <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-owner-scoped-search d-none" role="option"> <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="owner_scoped_search"> <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"> <svg title="Repository" aria-label="Repository" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0"> <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path> </svg> <svg title="Project" aria-label="Project" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0"> <path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path> </svg> <svg title="Search" aria-label="Search" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0"> <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> <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="/web/20211128155007im_/https://github.com/stuartgibson" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-1 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in all of GitHub"> Search </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-1 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div> </a> </li> <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none" role="option"> <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="global_search"> <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"> <svg title="Repository" aria-label="Repository" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0"> <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path> </svg> <svg title="Project" aria-label="Project" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0"> <path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path> </svg> <svg title="Search" aria-label="Search" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0"> <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> <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="/web/20211128155007im_/https://github.com/stuartgibson" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-1 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this user"> In this user </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-1 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div> </a> </li> </ul> </div> </label> </form> </div> </div> </div> <div class="position-relative mr-3 mb-4 mb-lg-0 d-inline-block"> <a href="/web/20211128155007/https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fstuartgibson" class="HeaderMenu-link flex-shrink-0 no-underline" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="adc8ba6a2e1b19224363734ee547685c070d3fd68c3d7babff16233bfd7279fb" data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in"> Sign in </a> </div> <a href="/web/20211128155007/https://github.com/signup?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F%3Cuser-name%3E&amp;source=header" class="HeaderMenu-link flex-shrink-0 d-inline-block no-underline border color-border-default rounded px-2 py-1" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="adc8ba6a2e1b19224363734ee547685c070d3fd68c3d7babff16233bfd7279fb" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Sign up&quot;,&quot;action&quot;:&quot;click to sign up for account&quot;,&quot;label&quot;:&quot;ref_page:/<user-name>;ref_cta:Sign up;ref_loc:header logged out&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="01c5bbab70b3b67e9966667c4b04e65aba681235333929f432eadf54a645fa4c" data-analytics-event="{&quot;category&quot;:&quot;Sign up&quot;,&quot;action&quot;:&quot;click to sign up for account&quot;,&quot;label&quot;:&quot;ref_page:/<user-name>;ref_cta:Sign up;ref_loc:header logged out&quot;}"> Sign up </a> </div> </div> </div> </header> </div> <div id="start-of-content" class="show-on-focus"></div> <div data-pjax-replace id="js-flash-container"> <template class="js-flash-template"> <div class="flash flash-full {{ className }}"> <div class=" px-2"> <button class="flash-close js-flash-close" type="button" aria-label="Dismiss this message"> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path> </svg> </button> <div>{{ message }}</div> </div> </div> </template> </div> <include-fragment class="js-notification-shelf-include-fragment" data-base-src="https://github.com/notifications/beta/shelf"></include-fragment> <div class="application-main " data-commit-hovercards-enabled data-discussion-hovercards-enabled data-issue-and-pr-hovercards-enabled> <main id="js-pjax-container" data-pjax-container> <div class="mt-4 position-sticky top-0 d-none d-md-block color-bg-default width-full border-bottom color-border-muted" style="z-index:3;"> <div class="container-xl px-3 px-md-4 px-lg-5"> <div data-view-component="true" class="Layout Layout--flowRow-until-md Layout--sidebarPosition-start Layout--sidebarPosition-flowRow-start"> <div data-view-component="true" class="Layout-sidebar"> <div class="user-profile-sticky-bar"> <div class="user-profile-mini-vcard d-table"> <span class="user-profile-mini-avatar d-table-cell v-align-middle lh-condensed-ultra pr-2"> <img class="rounded-1 avatar-user" src="https://web.archive.org/web/20211128155007im_/https://avatars.githubusercontent.com/u/867993?s=64&amp;v=4" width="32" height="32" alt="@stuartgibson"/> </span> <span class="d-table-cell v-align-middle lh-condensed"> <strong>stuartgibson</strong> <span class="user-following-container"> <span class="follow d-block"> <a class="btn btn-sm mini-follow-button" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;follow button&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e5ce3631d6393588f9025554386523733c221409a1c37a023819bc6c9e5cf35e" href="/web/20211128155007/https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fstuartgibson">Follow</a> </span> </span> </span> </div> </div> </div> <div data-view-component="true" class="Layout-main"> <div class="UnderlineNav width-full box-shadow-none"> <nav class="UnderlineNav-body" data-pjax aria-label="User profile"> <a aria-current="page" class="UnderlineNav-item selected" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;TAB_OVERVIEW&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="0c8d39b3b33e9cdeaf39da0f39d935723edd8e43643776d55cb51075117d4293" href="/web/20211128155007/https://github.com/stuartgibson"> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-book UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M0 1.75A.75.75 0 01.75 1h4.253c1.227 0 2.317.59 3 1.501A3.744 3.744 0 0111.006 1h4.245a.75.75 0 01.75.75v10.5a.75.75 0 01-.75.75h-4.507a2.25 2.25 0 00-1.591.659l-.622.621a.75.75 0 01-1.06 0l-.622-.621A2.25 2.25 0 005.258 13H.75a.75.75 0 01-.75-.75V1.75zm8.755 3a2.25 2.25 0 012.25-2.25H14.5v9h-3.757c-.71 0-1.4.201-1.992.572l.004-7.322zm-1.504 7.324l.004-5.073-.002-2.253A2.25 2.25 0 005.003 2.5H1.5v9h3.757a3.75 3.75 0 011.994.574z"></path> </svg> Overview </a> <a class="UnderlineNav-item" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;TAB_REPOSITORIES&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="a3445dce923f46dda46bed02c47113ac241dfc4268e6eb193630ad88ff67cbb0" href="/web/20211128155007/https://github.com/stuartgibson?tab=repositories"> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path> </svg> Repositories <span title="8" data-view-component="true" class="Counter">8</span> </a> <a class="UnderlineNav-item" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;TAB_PROJECTS&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="b4e0d96c4945e1701ddf5174035ee129fed151d592a7a0656254196b8d31464d" href="/web/20211128155007/https://github.com/stuartgibson?tab=projects&amp;type=beta"> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-table UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v3.585a.746.746 0 010 .83v8.085A1.75 1.75 0 0114.25 16H6.309a.748.748 0 01-1.118 0H1.75A1.75 1.75 0 010 14.25V6.165a.746.746 0 010-.83V1.75zM1.5 6.5v7.75c0 .138.112.25.25.25H5v-8H1.5zM5 5H1.5V1.75a.25.25 0 01.25-.25H5V5zm1.5 1.5v8h7.75a.25.25 0 00.25-.25V6.5h-8zm8-1.5h-8V1.5h7.75a.25.25 0 01.25.25V5z"></path> </svg> Projects <span title="0" hidden="hidden" data-view-component="true" class="Counter">0</span> </a> <a class="UnderlineNav-item" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;TAB_PACKAGES&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="49a2e1dee6e4cbfef42c0f525c94919f20b75b3d6cd58d3f69bbde5fe9760d1e" href="/web/20211128155007/https://github.com/stuartgibson?tab=packages"> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-package UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M8.878.392a1.75 1.75 0 00-1.756 0l-5.25 3.045A1.75 1.75 0 001 4.951v6.098c0 .624.332 1.2.872 1.514l5.25 3.045a1.75 1.75 0 001.756 0l5.25-3.045c.54-.313.872-.89.872-1.514V4.951c0-.624-.332-1.2-.872-1.514L8.878.392zM7.875 1.69a.25.25 0 01.25 0l4.63 2.685L8 7.133 3.245 4.375l4.63-2.685zM2.5 5.677v5.372c0 .09.047.171.125.216l4.625 2.683V8.432L2.5 5.677zm6.25 8.271l4.625-2.683a.25.25 0 00.125-.216V5.677L8.75 8.432v5.516z"></path> </svg> Packages <span title="0" hidden="hidden" data-view-component="true" class="Counter">0</span> </a> </nav> </div> </div> </div> </div> </div> <div class="container-xl px-3 px-md-4 px-lg-5"> <div data-view-component="true" class="Layout Layout--flowRow-until-md Layout--sidebarPosition-start Layout--sidebarPosition-flowRow-start"> <div data-view-component="true" class="Layout-sidebar"> <div class="h-card mt-md-n5" data-acv-badge-hovercards-enabled itemscope itemtype="http://schema.org/Person"> <div class="user-profile-sticky-bar js-user-profile-sticky-bar d-none d-md-block"> <div class="user-profile-mini-vcard d-table"> <span class="user-profile-mini-avatar d-table-cell v-align-middle lh-condensed-ultra pr-2"> <img class="rounded-1 avatar-user" src="https://web.archive.org/web/20211128155007im_/https://avatars.githubusercontent.com/u/867993?s=64&amp;v=4" width="32" height="32" alt="@stuartgibson"/> </span> <span class="d-table-cell v-align-middle lh-condensed"> <strong>stuartgibson</strong> <span class="user-following-container"> <span class="follow d-block"> <a class="btn btn-sm mini-follow-button" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;follow button&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e5ce3631d6393588f9025554386523733c221409a1c37a023819bc6c9e5cf35e" href="/web/20211128155007/https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fstuartgibson">Follow</a> </span> </span> </span> </div> </div> <div class="js-profile-editable-replace"> <div class="clearfix d-flex d-md-block flex-items-center mb-4 mb-md-0"> <div class="position-relative d-inline-block col-2 col-md-12 mr-3 mr-md-0 flex-shrink-0" style="z-index:4;"> <a itemprop="image" href="https://web.archive.org/web/20211128155007/https://avatars.githubusercontent.com/u/867993?v=4"><img style="height:auto;" alt="Avatar" width="260" height="260" class="avatar avatar-user width-full border color-bg-default" src="https://web.archive.org/web/20211128155007im_/https://avatars.githubusercontent.com/u/867993?v=4"/></a> </div> <div class="vcard-names-container float-left js-profile-editable-names col-12 py-3 js-sticky js-user-profile-sticky-fields"> <h1 class="vcard-names "> <span class="p-name vcard-fullname d-block overflow-hidden" itemprop="name"> Stuart Gibson </span> <span class="p-nickname vcard-username d-block" itemprop="additionalName"> stuartgibson </span> </h1> </div> </div> <div class="d-flex flex-column"> <div class="flex-order-1 flex-md-order-none"> <div class="d-flex flex-lg-row flex-md-column"> <div class="flex-1 mb-0 mb-md-3"> <div class="js-sticky js-user-profile-follow-button pb-1 mb-n1"></div> <span class="user-following-container"> <span class="follow d-block"> <a class="btn btn-block" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;follow button&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="e5ce3631d6393588f9025554386523733c221409a1c37a023819bc6c9e5cf35e" href="/web/20211128155007/https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fstuartgibson">Follow</a> </span> </span> </div> </div> </div> <div class="js-profile-editable-area d-flex flex-column d-md-block"> <div class="p-note user-profile-bio mb-3 js-user-profile-bio f4" data-bio-text="" hidden></div> <div class="flex-order-1 flex-md-order-none mt-2 mt-md-0"> <div class="mb-3"> <a class="Link--secondary no-underline no-wrap" href="https://web.archive.org/web/20211128155007/https://github.com/stuartgibson?tab=followers"> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-people"> <path fill-rule="evenodd" d="M5.5 3.5a2 2 0 100 4 2 2 0 000-4zM2 5.5a3.5 3.5 0 115.898 2.549 5.507 5.507 0 013.034 4.084.75.75 0 11-1.482.235 4.001 4.001 0 00-7.9 0 .75.75 0 01-1.482-.236A5.507 5.507 0 013.102 8.05 3.49 3.49 0 012 5.5zM11 4a.75.75 0 100 1.5 1.5 1.5 0 01.666 2.844.75.75 0 00-.416.672v.352a.75.75 0 00.574.73c1.2.289 2.162 1.2 2.522 2.372a.75.75 0 101.434-.44 5.01 5.01 0 00-2.56-3.012A3 3 0 0011 4z"></path> </svg> <span class="text-bold color-fg-default">22</span> followers </a> &middot; <a class="Link--secondary no-underline no-wrap" href="https://web.archive.org/web/20211128155007/https://github.com/stuartgibson?tab=following"> <span class="text-bold color-fg-default">4</span> following </a> &middot; <a class="Link--secondary no-underline no-wrap" href="https://web.archive.org/web/20211128155007/https://github.com/stuartgibson?tab=stars"> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star"> <path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"></path> </svg> <span class="text-bold color-fg-default">15</span> </a> </div> </div> <ul class="vcard-details"> <li class="vcard-detail pt-1 css-truncate css-truncate-target hide-sm hide-md" itemprop="worksFor" show_title="false" aria-label="Organization: Flowlens"><svg class="octicon octicon-organization" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 14.25c0 .138.112.25.25.25H4v-1.25a.75.75 0 01.75-.75h2.5a.75.75 0 01.75.75v1.25h2.25a.25.25 0 00.25-.25V1.75a.25.25 0 00-.25-.25h-8.5a.25.25 0 00-.25.25v12.5zM1.75 16A1.75 1.75 0 010 14.25V1.75C0 .784.784 0 1.75 0h8.5C11.216 0 12 .784 12 1.75v12.5c0 .085-.006.168-.018.25h2.268a.25.25 0 00.25-.25V8.285a.25.25 0 00-.111-.208l-1.055-.703a.75.75 0 11.832-1.248l1.055.703c.487.325.779.871.779 1.456v5.965A1.75 1.75 0 0114.25 16h-3.5a.75.75 0 01-.197-.026c-.099.017-.2.026-.303.026h-3a.75.75 0 01-.75-.75V14h-1v1.25a.75.75 0 01-.75.75h-3zM3 3.75A.75.75 0 013.75 3h.5a.75.75 0 010 1.5h-.5A.75.75 0 013 3.75zM3.75 6a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM3 9.75A.75.75 0 013.75 9h.5a.75.75 0 010 1.5h-.5A.75.75 0 013 9.75zM7.75 9a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM7 6.75A.75.75 0 017.75 6h.5a.75.75 0 010 1.5h-.5A.75.75 0 017 6.75zM7.75 3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5z"></path></svg> <span class="p-org"><div>Flowlens</div></span> </li> <li class="vcard-detail pt-1 css-truncate css-truncate-target hide-sm hide-md" itemprop="homeLocation" show_title="false" aria-label="Home location: Northern Ireland"><svg class="octicon octicon-location" viewbox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.536 3.464a5 5 0 010 7.072L8 14.07l-3.536-3.535a5 5 0 117.072-7.072v.001zm1.06 8.132a6.5 6.5 0 10-9.192 0l3.535 3.536a1.5 1.5 0 002.122 0l3.535-3.536zM8 9a2 2 0 100-4 2 2 0 000 4z"></path></svg> <span class="p-label">Northern Ireland</span> </li> <li itemprop="url" data-test-selector="profile-website-url" class="vcard-detail pt-1 css-truncate css-truncate-target "><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link"> <path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path> </svg> <a rel="nofollow me" class="Link--primary " href="https://web.archive.org/web/20211128155007/http://www.imetstuart.com/">http://www.imetstuart.com</a> </li> <li class="vcard-detail pt-1 css-truncate css-truncate-target hide-sm hide-md" itemprop="twitter"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 273.5 222.3" role="img" aria-labelledby="j68pcrcg6nb55kf5nvc487ig3xyex0u" class="octicon"><title id="j68pcrcg6nb55kf5nvc487ig3xyex0u">Twitter</title><path d="M273.5 26.3a109.77 109.77 0 0 1-32.2 8.8 56.07 56.07 0 0 0 24.7-31 113.39 113.39 0 0 1-35.7 13.6 56.1 56.1 0 0 0-97 38.4 54 54 0 0 0 1.5 12.8A159.68 159.68 0 0 1 19.1 10.3a56.12 56.12 0 0 0 17.4 74.9 56.06 56.06 0 0 1-25.4-7v.7a56.11 56.11 0 0 0 45 55 55.65 55.65 0 0 1-14.8 2 62.39 62.39 0 0 1-10.6-1 56.24 56.24 0 0 0 52.4 39 112.87 112.87 0 0 1-69.7 24 119 119 0 0 1-13.4-.8 158.83 158.83 0 0 0 86 25.2c103.2 0 159.6-85.5 159.6-159.6 0-2.4-.1-4.9-.2-7.3a114.25 114.25 0 0 0 28.1-29.1" fill="currentColor"></path></svg> <a rel="nofollow me" class="Link--primary " href="https://web.archive.org/web/20211128155007/https://twitter.com/stuartgibson">@stuartgibson</a> </li> </ul> </div> </div> <div class="border-top color-border-muted pt-3 mt-3 d-none d-md-block"><h2 class="h4 mb-2">Highlights</h2><ul class="list-style-none"><li class="mt-2"> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star color-fg-muted"> <path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"></path> </svg> <span title="Label: Pro" data-view-component="true" class="Label Label--purple text-uppercase"> Pro </span> </li> </ul></div> <div class="border-top color-border-muted pt-3 mt-3 clearfix hide-sm hide-md"> <h2 class="mb-2 h4">Organizations</h2> <a aria-label="craftydevil" itemprop="follows" class="avatar-group-item" data-hovercard-type="organization" data-hovercard-url="/orgs/craftydevil/hovercard" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;MEMBER_ORGANIZATION_AVATAR&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="52f5262cbeb7c7b624a3745a9f18c955d739ff9a2ceb6e62b2d65073cb00788d" href="/web/20211128155007/https://github.com/craftydevil"> <img src="https://web.archive.org/web/20211128155007im_/https://avatars.githubusercontent.com/u/1104705?s=64&amp;v=4" alt="@craftydevil" size="32" height="32" width="32" data-view-component="true" class="avatar"/> </a></div> <details class="details-reset details-overlay details-overlay-dark "> <summary class="btn-link Link--muted my-2 btn-link Link--muted"> Block or Report </summary> <details-dialog class="Box d-flex flex-column anim-fade-in fast Box-overlay--narrow " aria-label="Block or report stuartgibson"> <div class="Box-header"> <button class="Box-btn-octicon btn-octicon float-right" type="button" aria-label="Close dialog" data-close-dialog> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path> </svg> </button> <h1 class="Box-title">Block or report stuartgibson</h1> </div> <div class="Box-body overflow-auto"> <div class="border-bottom"> <form class="mb-3" action="/web/20211128155007/https://github.com/settings/blocked_users" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="hn/wkuWDZ9as8fzaHYoIz5nC8ECXYIDbcO+RRurjDVvSZGW+f1qU1pfuaLMp1q2CLkyG+nkI0AFFx58bY4g6Mg==" autocomplete="off"/> <input type="hidden" name="login" value="stuartgibson"> <input type="hidden" name="return_to" value="/stuartgibson"> <strong>Block user</strong> <p> Prevent this user from interacting with your repositories and sending you notifications. Learn more about <a href="https://web.archive.org/web/20211128155007/https://docs.github.com/en/articles/blocking-a-user-from-your-personal-account">blocking users</a>. </p> <p class="text-small color-fg-muted"> You must be logged in to block users. </p> <button type="submit" class="btn btn-danger" disabled> Block user </button> </form> </div> <div class="mt-3"> <strong>Report abuse</strong> <p> Contact GitHub support about this user’s behavior. Learn more about <a href="https://web.archive.org/web/20211128155007/https://docs.github.com/en/articles/reporting-abuse-or-spam">reporting abuse</a>. </p> <a href="/web/20211128155007/https://github.com/contact/report-abuse?report=stuartgibson+%28user%29" class="btn btn-danger">Report abuse</a> </div> </div> </details-dialog> </details> </div> </div> </div> <div data-view-component="true" class="Layout-main"> <div class="UnderlineNav user-profile-nav d-block d-md-none position-sticky top-0 pl-3 ml-n3 mr-n3 pr-3 color-bg-default" style="z-index:3;"> <nav class="UnderlineNav-body" data-pjax aria-label="User profile"> <a aria-current="page" class="UnderlineNav-item selected" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;TAB_OVERVIEW&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="0c8d39b3b33e9cdeaf39da0f39d935723edd8e43643776d55cb51075117d4293" href="/web/20211128155007/https://github.com/stuartgibson"> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-book UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M0 1.75A.75.75 0 01.75 1h4.253c1.227 0 2.317.59 3 1.501A3.744 3.744 0 0111.006 1h4.245a.75.75 0 01.75.75v10.5a.75.75 0 01-.75.75h-4.507a2.25 2.25 0 00-1.591.659l-.622.621a.75.75 0 01-1.06 0l-.622-.621A2.25 2.25 0 005.258 13H.75a.75.75 0 01-.75-.75V1.75zm8.755 3a2.25 2.25 0 012.25-2.25H14.5v9h-3.757c-.71 0-1.4.201-1.992.572l.004-7.322zm-1.504 7.324l.004-5.073-.002-2.253A2.25 2.25 0 005.003 2.5H1.5v9h3.757a3.75 3.75 0 011.994.574z"></path> </svg> Overview </a> <a class="UnderlineNav-item" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;TAB_REPOSITORIES&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="a3445dce923f46dda46bed02c47113ac241dfc4268e6eb193630ad88ff67cbb0" href="/web/20211128155007/https://github.com/stuartgibson?tab=repositories"> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path> </svg> Repositories <span title="8" data-view-component="true" class="Counter">8</span> </a> <a class="UnderlineNav-item" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;TAB_PROJECTS&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="b4e0d96c4945e1701ddf5174035ee129fed151d592a7a0656254196b8d31464d" href="/web/20211128155007/https://github.com/stuartgibson?tab=projects&amp;type=beta"> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-table UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v3.585a.746.746 0 010 .83v8.085A1.75 1.75 0 0114.25 16H6.309a.748.748 0 01-1.118 0H1.75A1.75 1.75 0 010 14.25V6.165a.746.746 0 010-.83V1.75zM1.5 6.5v7.75c0 .138.112.25.25.25H5v-8H1.5zM5 5H1.5V1.75a.25.25 0 01.25-.25H5V5zm1.5 1.5v8h7.75a.25.25 0 00.25-.25V6.5h-8zm8-1.5h-8V1.5h7.75a.25.25 0 01.25.25V5z"></path> </svg> Projects <span title="0" hidden="hidden" data-view-component="true" class="Counter">0</span> </a> <a class="UnderlineNav-item" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;TAB_PACKAGES&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="49a2e1dee6e4cbfef42c0f525c94919f20b75b3d6cd58d3f69bbde5fe9760d1e" href="/web/20211128155007/https://github.com/stuartgibson?tab=packages"> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-package UnderlineNav-octicon hide-sm"> <path fill-rule="evenodd" d="M8.878.392a1.75 1.75 0 00-1.756 0l-5.25 3.045A1.75 1.75 0 001 4.951v6.098c0 .624.332 1.2.872 1.514l5.25 3.045a1.75 1.75 0 001.756 0l5.25-3.045c.54-.313.872-.89.872-1.514V4.951c0-.624-.332-1.2-.872-1.514L8.878.392zM7.875 1.69a.25.25 0 01.25 0l4.63 2.685L8 7.133 3.245 4.375l4.63-2.685zM2.5 5.677v5.372c0 .09.047.171.125.216l4.625 2.683V8.432L2.5 5.677zm6.25 8.271l4.625-2.683a.25.25 0 00.125-.216V5.677L8.75 8.432v5.516z"></path> </svg> Packages <span title="0" hidden="hidden" data-view-component="true" class="Counter">0</span> </a> </nav> </div> <div> <div class="position-relative"> <div class="mt-4"> <div class="js-pinned-items-reorder-container"> <h2 class="f4 mb-2 text-normal"> Popular repositories <span role="status"> <span class="sr-only">Loading</span> <svg style="box-sizing: content-box; color: var(--color-icon-primary);" width="16" height="16" viewbox="0 0 16 16" fill="none" data-view-component="true" class="spinner pinned-items-spinner js-pinned-items-spinner v-align-text-bottom ml-1 anim-rotate"> <circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"/> <path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"/> </svg></span> <span class="ml-2 color-fg-muted f6 js-pinned-items-reorder-message" role="status" aria-live="polite" data-error-text="Something went wrong." data-success-text="Order updated."></span> </h2> <ol class="d-flex flex-wrap list-style-none gutter-condensed mb-4"> <li class="mb-3 d-flex flex-content-stretch col-12 col-md-6 col-lg-6"> <div class="Box pinned-item-list-item d-flex p-3 width-full public source"> <div class="pinned-item-list-item-content"> <div class="d-flex width-full flex-items-center position-relative"> <a href="/web/20211128155007/https://github.com/stuartgibson/Instagram-Desktop-Latest" class="text-bold flex-auto min-width-0"> <span class="repo" title="Instagram-Desktop-Latest">Instagram-Desktop-Latest</span> </a> <span></span><span class="Label Label--secondary v-align-middle ml-1">Public</span> </div> <p class="pinned-item-desc color-fg-muted text-small d-block mt-2 mb-3"> Quick and dirty script to grab the latest photo in your Instagram feed for use in GeekTool or similar </p> <p class="mb-0 f6 color-fg-muted"> <span class="d-inline-block mr-3"> <span class="repo-language-color" style="background-color: #4F5D95"></span> <span itemprop="programmingLanguage">PHP</span> </span> <a href="/web/20211128155007/https://github.com/stuartgibson/Instagram-Desktop-Latest/stargazers" class="pinned-item-meta Link--muted "> <svg aria-label="stars" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star"> <path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"></path> </svg> 8 </a> <a href="/web/20211128155007/https://github.com/stuartgibson/Instagram-Desktop-Latest/network/members" class="pinned-item-meta Link--muted "> <svg aria-label="fork" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked"> <path fill-rule="evenodd" d="M5 3.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm0 2.122a2.25 2.25 0 10-1.5 0v.878A2.25 2.25 0 005.75 8.5h1.5v2.128a2.251 2.251 0 101.5 0V8.5h1.5a2.25 2.25 0 002.25-2.25v-.878a2.25 2.25 0 10-1.5 0v.878a.75.75 0 01-.75.75h-4.5A.75.75 0 015 6.25v-.878zm3.75 7.378a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm3-8.75a.75.75 0 100-1.5.75.75 0 000 1.5z"></path> </svg> 1 </a> </p> </div> </div> </li> <li class="mb-3 d-flex flex-content-stretch col-12 col-md-6 col-lg-6"> <div class="Box pinned-item-list-item d-flex p-3 width-full public source"> <div class="pinned-item-list-item-content"> <div class="d-flex width-full flex-items-center position-relative"> <a href="/web/20211128155007/https://github.com/stuartgibson/imetstuart.com" class="text-bold flex-auto min-width-0"> <span class="repo" title="imetstuart.com">imetstuart.com</span> </a> <span></span><span class="Label Label--secondary v-align-middle ml-1">Public</span> </div> <p class="pinned-item-desc color-fg-muted text-small d-block mt-2 mb-3"> </p> <p class="mb-0 f6 color-fg-muted"> <span class="d-inline-block mr-3"> <span class="repo-language-color" style="background-color: #e34c26"></span> <span itemprop="programmingLanguage">HTML</span> </span> <a href="/web/20211128155007/https://github.com/stuartgibson/imetstuart.com/stargazers" class="pinned-item-meta Link--muted "> <svg aria-label="stars" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star"> <path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"></path> </svg> 2 </a> <a href="/web/20211128155007/https://github.com/stuartgibson/imetstuart.com/network/members" class="pinned-item-meta Link--muted "> <svg aria-label="fork" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked"> <path fill-rule="evenodd" d="M5 3.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm0 2.122a2.25 2.25 0 10-1.5 0v.878A2.25 2.25 0 005.75 8.5h1.5v2.128a2.251 2.251 0 101.5 0V8.5h1.5a2.25 2.25 0 002.25-2.25v-.878a2.25 2.25 0 10-1.5 0v.878a.75.75 0 01-.75.75h-4.5A.75.75 0 015 6.25v-.878zm3.75 7.378a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm3-8.75a.75.75 0 100-1.5.75.75 0 000 1.5z"></path> </svg> 1 </a> </p> </div> </div> </li> <li class="mb-3 d-flex flex-content-stretch col-12 col-md-6 col-lg-6"> <div class="Box pinned-item-list-item d-flex p-3 width-full public source"> <div class="pinned-item-list-item-content"> <div class="d-flex width-full flex-items-center position-relative"> <a href="/web/20211128155007/https://github.com/stuartgibson/basic-admin" class="text-bold flex-auto min-width-0"> <span class="repo" title="basic-admin">basic-admin</span> </a> <span></span><span class="Label Label--secondary v-align-middle ml-1">Public</span> </div> <p class="pinned-item-desc color-fg-muted text-small d-block mt-2 mb-3"> Quick Rails 4 setup with Devise and Bootrap </p> <p class="mb-0 f6 color-fg-muted"> <span class="d-inline-block mr-3"> <span class="repo-language-color" style="background-color: #701516"></span> <span itemprop="programmingLanguage">Ruby</span> </span> <a href="/web/20211128155007/https://github.com/stuartgibson/basic-admin/stargazers" class="pinned-item-meta Link--muted "> <svg aria-label="star" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star"> <path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"></path> </svg> 1 </a> <a href="/web/20211128155007/https://github.com/stuartgibson/basic-admin/network/members" class="pinned-item-meta Link--muted "> <svg aria-label="fork" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked"> <path fill-rule="evenodd" d="M5 3.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm0 2.122a2.25 2.25 0 10-1.5 0v.878A2.25 2.25 0 005.75 8.5h1.5v2.128a2.251 2.251 0 101.5 0V8.5h1.5a2.25 2.25 0 002.25-2.25v-.878a2.25 2.25 0 10-1.5 0v.878a.75.75 0 01-.75.75h-4.5A.75.75 0 015 6.25v-.878zm3.75 7.378a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm3-8.75a.75.75 0 100-1.5.75.75 0 000 1.5z"></path> </svg> 1 </a> </p> </div> </div> </li> <li class="mb-3 d-flex flex-content-stretch col-12 col-md-6 col-lg-6"> <div class="Box pinned-item-list-item d-flex p-3 width-full public source"> <div class="pinned-item-list-item-content"> <div class="d-flex width-full flex-items-center position-relative"> <a href="/web/20211128155007/https://github.com/stuartgibson/Huebot" class="text-bold flex-auto min-width-0"> <span class="repo" title="Huebot">Huebot</span> </a> <span></span><span class="Label Label--secondary v-align-middle ml-1">Public</span> </div> <p class="pinned-item-desc color-fg-muted text-small d-block mt-2 mb-3"> Single page site for controlling Philips Hue lights </p> <p class="mb-0 f6 color-fg-muted"> </p> </div> </div> </li> <li class="mb-3 d-flex flex-content-stretch col-12 col-md-6 col-lg-6"> <div class="Box pinned-item-list-item d-flex p-3 width-full public source"> <div class="pinned-item-list-item-content"> <div class="d-flex width-full flex-items-center position-relative"> <a href="/web/20211128155007/https://github.com/stuartgibson/quick-and-dirty-xkcd" class="text-bold flex-auto min-width-0"> <span class="repo" title="quick-and-dirty-xkcd">quick-and-dirty-xkcd</span> </a> <span></span><span class="Label Label--secondary v-align-middle ml-1">Public</span> </div> <p class="pinned-item-desc color-fg-muted text-small d-block mt-2 mb-3"> Quick and dirty thingy to get the current xkcd for dashboard etc </p> <p class="mb-0 f6 color-fg-muted"> </p> </div> </div> </li> <li class="mb-3 d-flex flex-content-stretch col-12 col-md-6 col-lg-6"> <div class="Box pinned-item-list-item d-flex p-3 width-full public source"> <div class="pinned-item-list-item-content"> <div class="d-flex width-full flex-items-center position-relative"> <a href="/web/20211128155007/https://github.com/stuartgibson/laterthing-bookmarklet" class="text-bold flex-auto min-width-0"> <span class="repo" title="laterthing-bookmarklet">laterthing-bookmarklet</span> </a> <span></span><span class="Label Label--secondary v-align-middle ml-1">Public</span> </div> <p class="pinned-item-desc color-fg-muted text-small d-block mt-2 mb-3"> Quick add bookmarklet for laterthing.com. </p> <p class="mb-0 f6 color-fg-muted"> </p> </div> </div> </li> </ol> </div> </div> <div class="mt-4 position-relative"> <div class="js-yearly-contributions"> <div class="position-relative"> <h2 class="f4 text-normal mb-2"> 2 contributions in the last year </h2> <div class="border py-2 graph-before-activity-overview"> <div class="js-calendar-graph mx-md-2 mx-3 d-flex flex-column flex-items-end flex-xl-items-center overflow-hidden pt-1 is-graph-loading graph-canvas ContributionCalendar height-full text-center" data-graph-url="/users/stuartgibson/contributions?to=2021-11-28" data-url="/web/20211128155007oe_/https://github.com/stuartgibson" data-from="2020-11-22 00:00:00 UTC" data-to="2021-11-28 23:59:59 UTC" data-org=""> <svg width="828" height="128" class="js-calendar-graph-svg"> <g transform="translate(10, 20)" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;CONTRIBUTION_CALENDAR_SQUARE&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="3f55b457648eda0d45f12ab2838d0d1ec45f06cbeeac4c0255209fd12c8de90f"> <g transform="translate(0, 0)"> <rect width="11" height="11" x="16" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-11-29" data-level="0"></rect> <rect width="11" height="11" x="16" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-11-30" data-level="0"></rect> <rect width="11" height="11" x="16" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-01" data-level="0"></rect> <rect width="11" height="11" x="16" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-02" data-level="0"></rect> <rect width="11" height="11" x="16" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-03" data-level="0"></rect> <rect width="11" height="11" x="16" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-04" data-level="0"></rect> <rect width="11" height="11" x="16" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-05" data-level="0"></rect> </g> <g transform="translate(16, 0)"> <rect width="11" height="11" x="15" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-06" data-level="0"></rect> <rect width="11" height="11" x="15" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-07" data-level="0"></rect> <rect width="11" height="11" x="15" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-08" data-level="0"></rect> <rect width="11" height="11" x="15" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-09" data-level="0"></rect> <rect width="11" height="11" x="15" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-10" data-level="0"></rect> <rect width="11" height="11" x="15" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-11" data-level="0"></rect> <rect width="11" height="11" x="15" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-12" data-level="0"></rect> </g> <g transform="translate(32, 0)"> <rect width="11" height="11" x="14" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-13" data-level="0"></rect> <rect width="11" height="11" x="14" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-14" data-level="0"></rect> <rect width="11" height="11" x="14" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-15" data-level="0"></rect> <rect width="11" height="11" x="14" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-16" data-level="0"></rect> <rect width="11" height="11" x="14" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-17" data-level="0"></rect> <rect width="11" height="11" x="14" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-18" data-level="0"></rect> <rect width="11" height="11" x="14" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-19" data-level="0"></rect> </g> <g transform="translate(48, 0)"> <rect width="11" height="11" x="13" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-20" data-level="0"></rect> <rect width="11" height="11" x="13" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-21" data-level="0"></rect> <rect width="11" height="11" x="13" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-22" data-level="0"></rect> <rect width="11" height="11" x="13" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-23" data-level="0"></rect> <rect width="11" height="11" x="13" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-24" data-level="0"></rect> <rect width="11" height="11" x="13" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-25" data-level="0"></rect> <rect width="11" height="11" x="13" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-26" data-level="0"></rect> </g> <g transform="translate(64, 0)"> <rect width="11" height="11" x="12" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-27" data-level="0"></rect> <rect width="11" height="11" x="12" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-28" data-level="0"></rect> <rect width="11" height="11" x="12" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-29" data-level="0"></rect> <rect width="11" height="11" x="12" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-30" data-level="0"></rect> <rect width="11" height="11" x="12" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2020-12-31" data-level="0"></rect> <rect width="11" height="11" x="12" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-01" data-level="0"></rect> <rect width="11" height="11" x="12" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-02" data-level="0"></rect> </g> <g transform="translate(80, 0)"> <rect width="11" height="11" x="11" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-03" data-level="0"></rect> <rect width="11" height="11" x="11" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-04" data-level="0"></rect> <rect width="11" height="11" x="11" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-05" data-level="0"></rect> <rect width="11" height="11" x="11" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-06" data-level="0"></rect> <rect width="11" height="11" x="11" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-07" data-level="0"></rect> <rect width="11" height="11" x="11" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-08" data-level="0"></rect> <rect width="11" height="11" x="11" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-09" data-level="0"></rect> </g> <g transform="translate(96, 0)"> <rect width="11" height="11" x="10" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-10" data-level="0"></rect> <rect width="11" height="11" x="10" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-11" data-level="0"></rect> <rect width="11" height="11" x="10" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-12" data-level="0"></rect> <rect width="11" height="11" x="10" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-13" data-level="0"></rect> <rect width="11" height="11" x="10" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-14" data-level="0"></rect> <rect width="11" height="11" x="10" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-15" data-level="0"></rect> <rect width="11" height="11" x="10" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-16" data-level="0"></rect> </g> <g transform="translate(112, 0)"> <rect width="11" height="11" x="9" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-17" data-level="0"></rect> <rect width="11" height="11" x="9" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-18" data-level="0"></rect> <rect width="11" height="11" x="9" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-19" data-level="0"></rect> <rect width="11" height="11" x="9" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-20" data-level="0"></rect> <rect width="11" height="11" x="9" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-21" data-level="0"></rect> <rect width="11" height="11" x="9" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-22" data-level="0"></rect> <rect width="11" height="11" x="9" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-23" data-level="0"></rect> </g> <g transform="translate(128, 0)"> <rect width="11" height="11" x="8" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-24" data-level="0"></rect> <rect width="11" height="11" x="8" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-25" data-level="0"></rect> <rect width="11" height="11" x="8" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-26" data-level="0"></rect> <rect width="11" height="11" x="8" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-27" data-level="0"></rect> <rect width="11" height="11" x="8" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-28" data-level="0"></rect> <rect width="11" height="11" x="8" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-29" data-level="0"></rect> <rect width="11" height="11" x="8" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-30" data-level="0"></rect> </g> <g transform="translate(144, 0)"> <rect width="11" height="11" x="7" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-01-31" data-level="0"></rect> <rect width="11" height="11" x="7" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-01" data-level="0"></rect> <rect width="11" height="11" x="7" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-02" data-level="0"></rect> <rect width="11" height="11" x="7" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-03" data-level="0"></rect> <rect width="11" height="11" x="7" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-04" data-level="0"></rect> <rect width="11" height="11" x="7" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-05" data-level="0"></rect> <rect width="11" height="11" x="7" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-06" data-level="0"></rect> </g> <g transform="translate(160, 0)"> <rect width="11" height="11" x="6" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-07" data-level="0"></rect> <rect width="11" height="11" x="6" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-08" data-level="0"></rect> <rect width="11" height="11" x="6" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-09" data-level="0"></rect> <rect width="11" height="11" x="6" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-10" data-level="0"></rect> <rect width="11" height="11" x="6" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-11" data-level="0"></rect> <rect width="11" height="11" x="6" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-12" data-level="0"></rect> <rect width="11" height="11" x="6" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-13" data-level="0"></rect> </g> <g transform="translate(176, 0)"> <rect width="11" height="11" x="5" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-14" data-level="0"></rect> <rect width="11" height="11" x="5" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-15" data-level="0"></rect> <rect width="11" height="11" x="5" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-16" data-level="0"></rect> <rect width="11" height="11" x="5" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-17" data-level="0"></rect> <rect width="11" height="11" x="5" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-18" data-level="0"></rect> <rect width="11" height="11" x="5" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-19" data-level="0"></rect> <rect width="11" height="11" x="5" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-20" data-level="0"></rect> </g> <g transform="translate(192, 0)"> <rect width="11" height="11" x="4" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-21" data-level="0"></rect> <rect width="11" height="11" x="4" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-22" data-level="0"></rect> <rect width="11" height="11" x="4" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-23" data-level="0"></rect> <rect width="11" height="11" x="4" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-24" data-level="0"></rect> <rect width="11" height="11" x="4" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-25" data-level="0"></rect> <rect width="11" height="11" x="4" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-26" data-level="0"></rect> <rect width="11" height="11" x="4" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-27" data-level="0"></rect> </g> <g transform="translate(208, 0)"> <rect width="11" height="11" x="3" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-02-28" data-level="0"></rect> <rect width="11" height="11" x="3" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-01" data-level="0"></rect> <rect width="11" height="11" x="3" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-02" data-level="0"></rect> <rect width="11" height="11" x="3" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-03" data-level="0"></rect> <rect width="11" height="11" x="3" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-04" data-level="0"></rect> <rect width="11" height="11" x="3" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-05" data-level="0"></rect> <rect width="11" height="11" x="3" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-06" data-level="0"></rect> </g> <g transform="translate(224, 0)"> <rect width="11" height="11" x="2" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-07" data-level="0"></rect> <rect width="11" height="11" x="2" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-08" data-level="0"></rect> <rect width="11" height="11" x="2" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="2" data-date="2021-03-09" data-level="4"></rect> <rect width="11" height="11" x="2" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-10" data-level="0"></rect> <rect width="11" height="11" x="2" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-11" data-level="0"></rect> <rect width="11" height="11" x="2" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-12" data-level="0"></rect> <rect width="11" height="11" x="2" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-13" data-level="0"></rect> </g> <g transform="translate(240, 0)"> <rect width="11" height="11" x="1" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-14" data-level="0"></rect> <rect width="11" height="11" x="1" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-15" data-level="0"></rect> <rect width="11" height="11" x="1" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-16" data-level="0"></rect> <rect width="11" height="11" x="1" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-17" data-level="0"></rect> <rect width="11" height="11" x="1" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-18" data-level="0"></rect> <rect width="11" height="11" x="1" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-19" data-level="0"></rect> <rect width="11" height="11" x="1" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-20" data-level="0"></rect> </g> <g transform="translate(256, 0)"> <rect width="11" height="11" x="0" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-21" data-level="0"></rect> <rect width="11" height="11" x="0" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-22" data-level="0"></rect> <rect width="11" height="11" x="0" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-23" data-level="0"></rect> <rect width="11" height="11" x="0" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-24" data-level="0"></rect> <rect width="11" height="11" x="0" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-25" data-level="0"></rect> <rect width="11" height="11" x="0" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-26" data-level="0"></rect> <rect width="11" height="11" x="0" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-27" data-level="0"></rect> </g> <g transform="translate(272, 0)"> <rect width="11" height="11" x="-1" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-28" data-level="0"></rect> <rect width="11" height="11" x="-1" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-29" data-level="0"></rect> <rect width="11" height="11" x="-1" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-30" data-level="0"></rect> <rect width="11" height="11" x="-1" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-03-31" data-level="0"></rect> <rect width="11" height="11" x="-1" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-01" data-level="0"></rect> <rect width="11" height="11" x="-1" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-02" data-level="0"></rect> <rect width="11" height="11" x="-1" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-03" data-level="0"></rect> </g> <g transform="translate(288, 0)"> <rect width="11" height="11" x="-2" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-04" data-level="0"></rect> <rect width="11" height="11" x="-2" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-05" data-level="0"></rect> <rect width="11" height="11" x="-2" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-06" data-level="0"></rect> <rect width="11" height="11" x="-2" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-07" data-level="0"></rect> <rect width="11" height="11" x="-2" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-08" data-level="0"></rect> <rect width="11" height="11" x="-2" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-09" data-level="0"></rect> <rect width="11" height="11" x="-2" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-10" data-level="0"></rect> </g> <g transform="translate(304, 0)"> <rect width="11" height="11" x="-3" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-11" data-level="0"></rect> <rect width="11" height="11" x="-3" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-12" data-level="0"></rect> <rect width="11" height="11" x="-3" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-13" data-level="0"></rect> <rect width="11" height="11" x="-3" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-14" data-level="0"></rect> <rect width="11" height="11" x="-3" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-15" data-level="0"></rect> <rect width="11" height="11" x="-3" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-16" data-level="0"></rect> <rect width="11" height="11" x="-3" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-17" data-level="0"></rect> </g> <g transform="translate(320, 0)"> <rect width="11" height="11" x="-4" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-18" data-level="0"></rect> <rect width="11" height="11" x="-4" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-19" data-level="0"></rect> <rect width="11" height="11" x="-4" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-20" data-level="0"></rect> <rect width="11" height="11" x="-4" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-21" data-level="0"></rect> <rect width="11" height="11" x="-4" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-22" data-level="0"></rect> <rect width="11" height="11" x="-4" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-23" data-level="0"></rect> <rect width="11" height="11" x="-4" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-24" data-level="0"></rect> </g> <g transform="translate(336, 0)"> <rect width="11" height="11" x="-5" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-25" data-level="0"></rect> <rect width="11" height="11" x="-5" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-26" data-level="0"></rect> <rect width="11" height="11" x="-5" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-27" data-level="0"></rect> <rect width="11" height="11" x="-5" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-28" data-level="0"></rect> <rect width="11" height="11" x="-5" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-29" data-level="0"></rect> <rect width="11" height="11" x="-5" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-04-30" data-level="0"></rect> <rect width="11" height="11" x="-5" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-01" data-level="0"></rect> </g> <g transform="translate(352, 0)"> <rect width="11" height="11" x="-6" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-02" data-level="0"></rect> <rect width="11" height="11" x="-6" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-03" data-level="0"></rect> <rect width="11" height="11" x="-6" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-04" data-level="0"></rect> <rect width="11" height="11" x="-6" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-05" data-level="0"></rect> <rect width="11" height="11" x="-6" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-06" data-level="0"></rect> <rect width="11" height="11" x="-6" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-07" data-level="0"></rect> <rect width="11" height="11" x="-6" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-08" data-level="0"></rect> </g> <g transform="translate(368, 0)"> <rect width="11" height="11" x="-7" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-09" data-level="0"></rect> <rect width="11" height="11" x="-7" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-10" data-level="0"></rect> <rect width="11" height="11" x="-7" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-11" data-level="0"></rect> <rect width="11" height="11" x="-7" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-12" data-level="0"></rect> <rect width="11" height="11" x="-7" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-13" data-level="0"></rect> <rect width="11" height="11" x="-7" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-14" data-level="0"></rect> <rect width="11" height="11" x="-7" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-15" data-level="0"></rect> </g> <g transform="translate(384, 0)"> <rect width="11" height="11" x="-8" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-16" data-level="0"></rect> <rect width="11" height="11" x="-8" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-17" data-level="0"></rect> <rect width="11" height="11" x="-8" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-18" data-level="0"></rect> <rect width="11" height="11" x="-8" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-19" data-level="0"></rect> <rect width="11" height="11" x="-8" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-20" data-level="0"></rect> <rect width="11" height="11" x="-8" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-21" data-level="0"></rect> <rect width="11" height="11" x="-8" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-22" data-level="0"></rect> </g> <g transform="translate(400, 0)"> <rect width="11" height="11" x="-9" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-23" data-level="0"></rect> <rect width="11" height="11" x="-9" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-24" data-level="0"></rect> <rect width="11" height="11" x="-9" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-25" data-level="0"></rect> <rect width="11" height="11" x="-9" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-26" data-level="0"></rect> <rect width="11" height="11" x="-9" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-27" data-level="0"></rect> <rect width="11" height="11" x="-9" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-28" data-level="0"></rect> <rect width="11" height="11" x="-9" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-29" data-level="0"></rect> </g> <g transform="translate(416, 0)"> <rect width="11" height="11" x="-10" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-30" data-level="0"></rect> <rect width="11" height="11" x="-10" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-05-31" data-level="0"></rect> <rect width="11" height="11" x="-10" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-01" data-level="0"></rect> <rect width="11" height="11" x="-10" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-02" data-level="0"></rect> <rect width="11" height="11" x="-10" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-03" data-level="0"></rect> <rect width="11" height="11" x="-10" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-04" data-level="0"></rect> <rect width="11" height="11" x="-10" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-05" data-level="0"></rect> </g> <g transform="translate(432, 0)"> <rect width="11" height="11" x="-11" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-06" data-level="0"></rect> <rect width="11" height="11" x="-11" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-07" data-level="0"></rect> <rect width="11" height="11" x="-11" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-08" data-level="0"></rect> <rect width="11" height="11" x="-11" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-09" data-level="0"></rect> <rect width="11" height="11" x="-11" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-10" data-level="0"></rect> <rect width="11" height="11" x="-11" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-11" data-level="0"></rect> <rect width="11" height="11" x="-11" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-12" data-level="0"></rect> </g> <g transform="translate(448, 0)"> <rect width="11" height="11" x="-12" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-13" data-level="0"></rect> <rect width="11" height="11" x="-12" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-14" data-level="0"></rect> <rect width="11" height="11" x="-12" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-15" data-level="0"></rect> <rect width="11" height="11" x="-12" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-16" data-level="0"></rect> <rect width="11" height="11" x="-12" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-17" data-level="0"></rect> <rect width="11" height="11" x="-12" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-18" data-level="0"></rect> <rect width="11" height="11" x="-12" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-19" data-level="0"></rect> </g> <g transform="translate(464, 0)"> <rect width="11" height="11" x="-13" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-20" data-level="0"></rect> <rect width="11" height="11" x="-13" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-21" data-level="0"></rect> <rect width="11" height="11" x="-13" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-22" data-level="0"></rect> <rect width="11" height="11" x="-13" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-23" data-level="0"></rect> <rect width="11" height="11" x="-13" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-24" data-level="0"></rect> <rect width="11" height="11" x="-13" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-25" data-level="0"></rect> <rect width="11" height="11" x="-13" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-26" data-level="0"></rect> </g> <g transform="translate(480, 0)"> <rect width="11" height="11" x="-14" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-27" data-level="0"></rect> <rect width="11" height="11" x="-14" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-28" data-level="0"></rect> <rect width="11" height="11" x="-14" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-29" data-level="0"></rect> <rect width="11" height="11" x="-14" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-06-30" data-level="0"></rect> <rect width="11" height="11" x="-14" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-01" data-level="0"></rect> <rect width="11" height="11" x="-14" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-02" data-level="0"></rect> <rect width="11" height="11" x="-14" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-03" data-level="0"></rect> </g> <g transform="translate(496, 0)"> <rect width="11" height="11" x="-15" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-04" data-level="0"></rect> <rect width="11" height="11" x="-15" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-05" data-level="0"></rect> <rect width="11" height="11" x="-15" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-06" data-level="0"></rect> <rect width="11" height="11" x="-15" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-07" data-level="0"></rect> <rect width="11" height="11" x="-15" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-08" data-level="0"></rect> <rect width="11" height="11" x="-15" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-09" data-level="0"></rect> <rect width="11" height="11" x="-15" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-10" data-level="0"></rect> </g> <g transform="translate(512, 0)"> <rect width="11" height="11" x="-16" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-11" data-level="0"></rect> <rect width="11" height="11" x="-16" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-12" data-level="0"></rect> <rect width="11" height="11" x="-16" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-13" data-level="0"></rect> <rect width="11" height="11" x="-16" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-14" data-level="0"></rect> <rect width="11" height="11" x="-16" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-15" data-level="0"></rect> <rect width="11" height="11" x="-16" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-16" data-level="0"></rect> <rect width="11" height="11" x="-16" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-17" data-level="0"></rect> </g> <g transform="translate(528, 0)"> <rect width="11" height="11" x="-17" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-18" data-level="0"></rect> <rect width="11" height="11" x="-17" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-19" data-level="0"></rect> <rect width="11" height="11" x="-17" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-20" data-level="0"></rect> <rect width="11" height="11" x="-17" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-21" data-level="0"></rect> <rect width="11" height="11" x="-17" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-22" data-level="0"></rect> <rect width="11" height="11" x="-17" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-23" data-level="0"></rect> <rect width="11" height="11" x="-17" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-24" data-level="0"></rect> </g> <g transform="translate(544, 0)"> <rect width="11" height="11" x="-18" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-25" data-level="0"></rect> <rect width="11" height="11" x="-18" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-26" data-level="0"></rect> <rect width="11" height="11" x="-18" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-27" data-level="0"></rect> <rect width="11" height="11" x="-18" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-28" data-level="0"></rect> <rect width="11" height="11" x="-18" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-29" data-level="0"></rect> <rect width="11" height="11" x="-18" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-30" data-level="0"></rect> <rect width="11" height="11" x="-18" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-07-31" data-level="0"></rect> </g> <g transform="translate(560, 0)"> <rect width="11" height="11" x="-19" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-01" data-level="0"></rect> <rect width="11" height="11" x="-19" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-02" data-level="0"></rect> <rect width="11" height="11" x="-19" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-03" data-level="0"></rect> <rect width="11" height="11" x="-19" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-04" data-level="0"></rect> <rect width="11" height="11" x="-19" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-05" data-level="0"></rect> <rect width="11" height="11" x="-19" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-06" data-level="0"></rect> <rect width="11" height="11" x="-19" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-07" data-level="0"></rect> </g> <g transform="translate(576, 0)"> <rect width="11" height="11" x="-20" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-08" data-level="0"></rect> <rect width="11" height="11" x="-20" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-09" data-level="0"></rect> <rect width="11" height="11" x="-20" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-10" data-level="0"></rect> <rect width="11" height="11" x="-20" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-11" data-level="0"></rect> <rect width="11" height="11" x="-20" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-12" data-level="0"></rect> <rect width="11" height="11" x="-20" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-13" data-level="0"></rect> <rect width="11" height="11" x="-20" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-14" data-level="0"></rect> </g> <g transform="translate(592, 0)"> <rect width="11" height="11" x="-21" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-15" data-level="0"></rect> <rect width="11" height="11" x="-21" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-16" data-level="0"></rect> <rect width="11" height="11" x="-21" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-17" data-level="0"></rect> <rect width="11" height="11" x="-21" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-18" data-level="0"></rect> <rect width="11" height="11" x="-21" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-19" data-level="0"></rect> <rect width="11" height="11" x="-21" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-20" data-level="0"></rect> <rect width="11" height="11" x="-21" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-21" data-level="0"></rect> </g> <g transform="translate(608, 0)"> <rect width="11" height="11" x="-22" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-22" data-level="0"></rect> <rect width="11" height="11" x="-22" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-23" data-level="0"></rect> <rect width="11" height="11" x="-22" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-24" data-level="0"></rect> <rect width="11" height="11" x="-22" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-25" data-level="0"></rect> <rect width="11" height="11" x="-22" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-26" data-level="0"></rect> <rect width="11" height="11" x="-22" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-27" data-level="0"></rect> <rect width="11" height="11" x="-22" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-28" data-level="0"></rect> </g> <g transform="translate(624, 0)"> <rect width="11" height="11" x="-23" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-29" data-level="0"></rect> <rect width="11" height="11" x="-23" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-30" data-level="0"></rect> <rect width="11" height="11" x="-23" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-08-31" data-level="0"></rect> <rect width="11" height="11" x="-23" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-01" data-level="0"></rect> <rect width="11" height="11" x="-23" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-02" data-level="0"></rect> <rect width="11" height="11" x="-23" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-03" data-level="0"></rect> <rect width="11" height="11" x="-23" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-04" data-level="0"></rect> </g> <g transform="translate(640, 0)"> <rect width="11" height="11" x="-24" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-05" data-level="0"></rect> <rect width="11" height="11" x="-24" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-06" data-level="0"></rect> <rect width="11" height="11" x="-24" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-07" data-level="0"></rect> <rect width="11" height="11" x="-24" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-08" data-level="0"></rect> <rect width="11" height="11" x="-24" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-09" data-level="0"></rect> <rect width="11" height="11" x="-24" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-10" data-level="0"></rect> <rect width="11" height="11" x="-24" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-11" data-level="0"></rect> </g> <g transform="translate(656, 0)"> <rect width="11" height="11" x="-25" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-12" data-level="0"></rect> <rect width="11" height="11" x="-25" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-13" data-level="0"></rect> <rect width="11" height="11" x="-25" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-14" data-level="0"></rect> <rect width="11" height="11" x="-25" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-15" data-level="0"></rect> <rect width="11" height="11" x="-25" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-16" data-level="0"></rect> <rect width="11" height="11" x="-25" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-17" data-level="0"></rect> <rect width="11" height="11" x="-25" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-18" data-level="0"></rect> </g> <g transform="translate(672, 0)"> <rect width="11" height="11" x="-26" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-19" data-level="0"></rect> <rect width="11" height="11" x="-26" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-20" data-level="0"></rect> <rect width="11" height="11" x="-26" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-21" data-level="0"></rect> <rect width="11" height="11" x="-26" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-22" data-level="0"></rect> <rect width="11" height="11" x="-26" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-23" data-level="0"></rect> <rect width="11" height="11" x="-26" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-24" data-level="0"></rect> <rect width="11" height="11" x="-26" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-25" data-level="0"></rect> </g> <g transform="translate(688, 0)"> <rect width="11" height="11" x="-27" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-26" data-level="0"></rect> <rect width="11" height="11" x="-27" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-27" data-level="0"></rect> <rect width="11" height="11" x="-27" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-28" data-level="0"></rect> <rect width="11" height="11" x="-27" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-29" data-level="0"></rect> <rect width="11" height="11" x="-27" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-09-30" data-level="0"></rect> <rect width="11" height="11" x="-27" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-01" data-level="0"></rect> <rect width="11" height="11" x="-27" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-02" data-level="0"></rect> </g> <g transform="translate(704, 0)"> <rect width="11" height="11" x="-28" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-03" data-level="0"></rect> <rect width="11" height="11" x="-28" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-04" data-level="0"></rect> <rect width="11" height="11" x="-28" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-05" data-level="0"></rect> <rect width="11" height="11" x="-28" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-06" data-level="0"></rect> <rect width="11" height="11" x="-28" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-07" data-level="0"></rect> <rect width="11" height="11" x="-28" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-08" data-level="0"></rect> <rect width="11" height="11" x="-28" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-09" data-level="0"></rect> </g> <g transform="translate(720, 0)"> <rect width="11" height="11" x="-29" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-10" data-level="0"></rect> <rect width="11" height="11" x="-29" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-11" data-level="0"></rect> <rect width="11" height="11" x="-29" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-12" data-level="0"></rect> <rect width="11" height="11" x="-29" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-13" data-level="0"></rect> <rect width="11" height="11" x="-29" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-14" data-level="0"></rect> <rect width="11" height="11" x="-29" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-15" data-level="0"></rect> <rect width="11" height="11" x="-29" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-16" data-level="0"></rect> </g> <g transform="translate(736, 0)"> <rect width="11" height="11" x="-30" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-17" data-level="0"></rect> <rect width="11" height="11" x="-30" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-18" data-level="0"></rect> <rect width="11" height="11" x="-30" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-19" data-level="0"></rect> <rect width="11" height="11" x="-30" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-20" data-level="0"></rect> <rect width="11" height="11" x="-30" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-21" data-level="0"></rect> <rect width="11" height="11" x="-30" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-22" data-level="0"></rect> <rect width="11" height="11" x="-30" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-23" data-level="0"></rect> </g> <g transform="translate(752, 0)"> <rect width="11" height="11" x="-31" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-24" data-level="0"></rect> <rect width="11" height="11" x="-31" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-25" data-level="0"></rect> <rect width="11" height="11" x="-31" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-26" data-level="0"></rect> <rect width="11" height="11" x="-31" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-27" data-level="0"></rect> <rect width="11" height="11" x="-31" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-28" data-level="0"></rect> <rect width="11" height="11" x="-31" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-29" data-level="0"></rect> <rect width="11" height="11" x="-31" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-30" data-level="0"></rect> </g> <g transform="translate(768, 0)"> <rect width="11" height="11" x="-32" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-10-31" data-level="0"></rect> <rect width="11" height="11" x="-32" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-01" data-level="0"></rect> <rect width="11" height="11" x="-32" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-02" data-level="0"></rect> <rect width="11" height="11" x="-32" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-03" data-level="0"></rect> <rect width="11" height="11" x="-32" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-04" data-level="0"></rect> <rect width="11" height="11" x="-32" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-05" data-level="0"></rect> <rect width="11" height="11" x="-32" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-06" data-level="0"></rect> </g> <g transform="translate(784, 0)"> <rect width="11" height="11" x="-33" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-07" data-level="0"></rect> <rect width="11" height="11" x="-33" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-08" data-level="0"></rect> <rect width="11" height="11" x="-33" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-09" data-level="0"></rect> <rect width="11" height="11" x="-33" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-10" data-level="0"></rect> <rect width="11" height="11" x="-33" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-11" data-level="0"></rect> <rect width="11" height="11" x="-33" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-12" data-level="0"></rect> <rect width="11" height="11" x="-33" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-13" data-level="0"></rect> </g> <g transform="translate(800, 0)"> <rect width="11" height="11" x="-34" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-14" data-level="0"></rect> <rect width="11" height="11" x="-34" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-15" data-level="0"></rect> <rect width="11" height="11" x="-34" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-16" data-level="0"></rect> <rect width="11" height="11" x="-34" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-17" data-level="0"></rect> <rect width="11" height="11" x="-34" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-18" data-level="0"></rect> <rect width="11" height="11" x="-34" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-19" data-level="0"></rect> <rect width="11" height="11" x="-34" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-20" data-level="0"></rect> </g> <g transform="translate(816, 0)"> <rect width="11" height="11" x="-35" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-21" data-level="0"></rect> <rect width="11" height="11" x="-35" y="15" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-22" data-level="0"></rect> <rect width="11" height="11" x="-35" y="30" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-23" data-level="0"></rect> <rect width="11" height="11" x="-35" y="45" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-24" data-level="0"></rect> <rect width="11" height="11" x="-35" y="60" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-25" data-level="0"></rect> <rect width="11" height="11" x="-35" y="75" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-26" data-level="0"></rect> <rect width="11" height="11" x="-35" y="90" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-27" data-level="0"></rect> </g> <g transform="translate(832, 0)"> <rect width="11" height="11" x="-36" y="0" class="ContributionCalendar-day" rx="2" ry="2" data-count="0" data-date="2021-11-28" data-level="0"></rect> </g> <text x="31" y="-8" class="ContributionCalendar-label">Dec</text> <text x="91" y="-8" class="ContributionCalendar-label">Jan</text> <text x="166" y="-8" class="ContributionCalendar-label">Feb</text> <text x="226" y="-8" class="ContributionCalendar-label">Mar</text> <text x="286" y="-8" class="ContributionCalendar-label">Apr</text> <text x="346" y="-8" class="ContributionCalendar-label">May</text> <text x="421" y="-8" class="ContributionCalendar-label">Jun</text> <text x="481" y="-8" class="ContributionCalendar-label">Jul</text> <text x="541" y="-8" class="ContributionCalendar-label">Aug</text> <text x="616" y="-8" class="ContributionCalendar-label">Sep</text> <text x="676" y="-8" class="ContributionCalendar-label">Oct</text> <text x="751" y="-8" class="ContributionCalendar-label">Nov</text> <text text-anchor="start" class="ContributionCalendar-label" dx="-10" dy="8" style="display: none;">Sun</text> <text text-anchor="start" class="ContributionCalendar-label" dx="-10" dy="25">Mon</text> <text text-anchor="start" class="ContributionCalendar-label" dx="-10" dy="32" style="display: none;">Tue</text> <text text-anchor="start" class="ContributionCalendar-label" dx="-10" dy="56">Wed</text> <text text-anchor="start" class="ContributionCalendar-label" dx="-10" dy="57" style="display: none;">Thu</text> <text text-anchor="start" class="ContributionCalendar-label" dx="-10" dy="85">Fri</text> <text text-anchor="start" class="ContributionCalendar-label" dx="-10" dy="81" style="display: none;">Sat</text> </g></svg> <div class="width-full f6 px-0 px-md-5 py-1"> <div class="float-left"> <a href="https://web.archive.org/web/20211128155007/https://docs.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile" class="Link--muted"> Learn how we count contributions</a> </div> <div class="float-right color-fg-muted" title="A summary of pull requests, issues opened, and commits to the default and gh-pages branches."> Less <svg width="10" height="10" class="d-inline-block"> <rect width="10" height="10" class="ContributionCalendar-day" rx="2" ry="2" data-level="0"></rect> </svg> <svg width="10" height="10" class="d-inline-block"> <rect width="10" height="10" class="ContributionCalendar-day" rx="2" ry="2" data-level="1"></rect> </svg> <svg width="10" height="10" class="d-inline-block"> <rect width="10" height="10" class="ContributionCalendar-day" rx="2" ry="2" data-level="2"></rect> </svg> <svg width="10" height="10" class="d-inline-block"> <rect width="10" height="10" class="ContributionCalendar-day" rx="2" ry="2" data-level="3"></rect> </svg> <svg width="10" height="10" class="d-inline-block"> <rect width="10" height="10" class="ContributionCalendar-day" rx="2" ry="2" data-level="4"></rect> </svg> More </div> </div> </div> </div> </div> </div> <div id="js-contribution-activity" class="activity-listing contribution-activity" data-pjax-container> <div class="d-none d-lg-block"> <div style="top: 74px;" class="js-profile-timeline-year-list color-bg-default js-sticky float-right col-2 pl-5"> <ul class="filter-list small"> <li> <a id="year-link-2021" class="js-year-link filter-item px-3 mb-2 py-2 selected " aria-label="Contribution activity in 2021" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;CONTRIBUTION_YEAR_LINK&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="7ee3b9c3d80b1d47706f229ef14cc6c972fdbd1237e56b86f3545e55af303582" href="/web/20211128155007/https://github.com/stuartgibson?tab=overview&amp;from=2021-11-01&amp;to=2021-11-28">2021</a> </li> <li> <a id="year-link-2020" class="js-year-link filter-item px-3 mb-2 py-2 " aria-label="Contribution activity in 2020" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;CONTRIBUTION_YEAR_LINK&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="7ee3b9c3d80b1d47706f229ef14cc6c972fdbd1237e56b86f3545e55af303582" href="/web/20211128155007/https://github.com/stuartgibson?tab=overview&amp;from=2020-12-01&amp;to=2020-12-31">2020</a> </li> <li> <a id="year-link-2019" class="js-year-link filter-item px-3 mb-2 py-2 " aria-label="Contribution activity in 2019" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;CONTRIBUTION_YEAR_LINK&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="7ee3b9c3d80b1d47706f229ef14cc6c972fdbd1237e56b86f3545e55af303582" href="/web/20211128155007/https://github.com/stuartgibson?tab=overview&amp;from=2019-12-01&amp;to=2019-12-31">2019</a> </li> <li> <a id="year-link-2018" class="js-year-link filter-item px-3 mb-2 py-2 " aria-label="Contribution activity in 2018" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;CONTRIBUTION_YEAR_LINK&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="7ee3b9c3d80b1d47706f229ef14cc6c972fdbd1237e56b86f3545e55af303582" href="/web/20211128155007/https://github.com/stuartgibson?tab=overview&amp;from=2018-12-01&amp;to=2018-12-31">2018</a> </li> <li> <a id="year-link-2017" class="js-year-link filter-item px-3 mb-2 py-2 " aria-label="Contribution activity in 2017" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;CONTRIBUTION_YEAR_LINK&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="7ee3b9c3d80b1d47706f229ef14cc6c972fdbd1237e56b86f3545e55af303582" href="/web/20211128155007/https://github.com/stuartgibson?tab=overview&amp;from=2017-12-01&amp;to=2017-12-31">2017</a> </li> <li> <a id="year-link-2016" class="js-year-link filter-item px-3 mb-2 py-2 " aria-label="Contribution activity in 2016" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;CONTRIBUTION_YEAR_LINK&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="7ee3b9c3d80b1d47706f229ef14cc6c972fdbd1237e56b86f3545e55af303582" href="/web/20211128155007/https://github.com/stuartgibson?tab=overview&amp;from=2016-12-01&amp;to=2016-12-31">2016</a> </li> <li> <a id="year-link-2015" class="js-year-link filter-item px-3 mb-2 py-2 " aria-label="Contribution activity in 2015" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;CONTRIBUTION_YEAR_LINK&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="7ee3b9c3d80b1d47706f229ef14cc6c972fdbd1237e56b86f3545e55af303582" href="/web/20211128155007/https://github.com/stuartgibson?tab=overview&amp;from=2015-12-01&amp;to=2015-12-31">2015</a> </li> <li> <a id="year-link-2014" class="js-year-link filter-item px-3 mb-2 py-2 " aria-label="Contribution activity in 2014" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;CONTRIBUTION_YEAR_LINK&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="7ee3b9c3d80b1d47706f229ef14cc6c972fdbd1237e56b86f3545e55af303582" href="/web/20211128155007/https://github.com/stuartgibson?tab=overview&amp;from=2014-12-01&amp;to=2014-12-31">2014</a> </li> <li> <a id="year-link-2013" class="js-year-link filter-item px-3 mb-2 py-2 " aria-label="Contribution activity in 2013" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;CONTRIBUTION_YEAR_LINK&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="7ee3b9c3d80b1d47706f229ef14cc6c972fdbd1237e56b86f3545e55af303582" href="/web/20211128155007/https://github.com/stuartgibson?tab=overview&amp;from=2013-12-01&amp;to=2013-12-31">2013</a> </li> <li> <a id="year-link-2012" class="js-year-link filter-item px-3 mb-2 py-2 " aria-label="Contribution activity in 2012" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;CONTRIBUTION_YEAR_LINK&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="7ee3b9c3d80b1d47706f229ef14cc6c972fdbd1237e56b86f3545e55af303582" href="/web/20211128155007/https://github.com/stuartgibson?tab=overview&amp;from=2012-12-01&amp;to=2012-12-31">2012</a> </li> <li> <a id="year-link-2011" class="js-year-link filter-item px-3 mb-2 py-2 " aria-label="Contribution activity in 2011" data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;CONTRIBUTION_YEAR_LINK&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="7ee3b9c3d80b1d47706f229ef14cc6c972fdbd1237e56b86f3545e55af303582" href="/web/20211128155007/https://github.com/stuartgibson?tab=overview&amp;from=2011-12-01&amp;to=2011-12-31">2011</a> </li> </ul> </div> </div> <h2 class="f4 text-normal mt-4 mb-3"> Contribution activity </h2> <div class="contribution-activity-listing float-left col-12 col-lg-10"> <div class="width-full pb-4"> <h3 class="h6 pr-2 py-1 border-bottom mb-3" style="height: 14px;"> <span class="color-bg-default pl-2 pr-3"> November 2021 </span> </h3> <div class="text-center color-fg-muted pt-3"> <span class="color-fg-muted m-0"> stuartgibson has no activity yet for this period. </span> </div> </div> </div> <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="ajax-pagination-form js-ajax-pagination js-show-more-timeline-form col-lg-10 col-12" data-title="stuartgibson (Stuart Gibson) / October 2021" data-year="2021" data-url="/stuartgibson?tab=overview&amp;from=2021-10-01&amp;to=2021-10-31" data-from="2021-11-01" data-to="2021-11-28" action="/web/20211128155007/https://github.com/stuartgibson?tab=overview&amp;from=2021-10-01&amp;to=2021-10-31&amp;include_header=no" accept-charset="UTF-8" method="get"> <span role="status"> <span class="sr-only">Loading</span> <svg style="box-sizing: content-box; color: var(--color-icon-primary);" width="64" height="64" viewbox="0 0 16 16" fill="none" data-view-component="true" class="contribution-activity-spinner my-5 width-full anim-rotate"> <circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"/> <path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke"/> </svg></span> <button name="button" type="submit" class="ajax-pagination-btn btn btn-outline width-full f6 mt-0 py-2 contribution-activity-show-more " data-hydro-click="{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:867993,&quot;target&quot;:&quot;TIMELINE_SHOW_MORE&quot;,&quot;user_id&quot;:null,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;}}" data-hydro-click-hmac="0a8537c487728687f07d8b77b2da3f5193debb2ad910ff2d0f0defd196d0a123" data-disable-with="Loading...">Show more activity</button> <p class="color-fg-muted f6 mt-4"> Seeing something unexpected? Take a look at the <a href="https://web.archive.org/web/20211128155007/https://docs.github.com/categories/setting-up-and-managing-your-github-profile">GitHub profile guide</a>. </p> </form> </div> </div> </div> </div> </div> </div></div> </main> </div> <div class="footer container-xl width-full p-responsive" role="contentinfo"> <div class="position-relative d-flex flex-row-reverse flex-lg-row flex-wrap flex-lg-nowrap flex-justify-center flex-lg-justify-between pt-6 pb-2 mt-6 f6 color-fg-muted border-top color-border-muted "> <ul class="list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0"> <li class="mr-3 mr-lg-0">&copy; 2021 GitHub, Inc.</li> <li class="mr-3 mr-lg-0"><a href="https://web.archive.org/web/20211128155007/https://docs.github.com/en/github/site-policy/github-terms-of-service" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to terms&quot;,&quot;label&quot;:&quot;text:terms&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="3d6b2282e753a41b5a2b174fcf43298d43ccedf53999459e960e7ca874dc842f" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to terms&quot;,&quot;label&quot;:&quot;text:terms&quot;}">Terms</a></li> <li class="mr-3 mr-lg-0"><a href="https://web.archive.org/web/20211128155007/https://docs.github.com/en/github/site-policy/github-privacy-statement" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to privacy&quot;,&quot;label&quot;:&quot;text:privacy&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="d2850905d3c073a86aed9a66d2c34dd371b0562fa1ff719d60783af7147aaba8" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to privacy&quot;,&quot;label&quot;:&quot;text:privacy&quot;}">Privacy</a></li> <li class="mr-3 mr-lg-0"><a data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to security&quot;,&quot;label&quot;:&quot;text:security&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="06181be3cb7c99a57f63af4078ca2d651e8519431f4bcbeacb710eaab2fed97c" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to security&quot;,&quot;label&quot;:&quot;text:security&quot;}" href="https://web.archive.org/web/20211128155007/https://github.com/security">Security</a></li> <li class="mr-3 mr-lg-0"><a href="https://web.archive.org/web/20211128155007/https://www.githubstatus.com/" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to status&quot;,&quot;label&quot;:&quot;text:status&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ba5818283375e292f8ca4cdcd191bd0561ad21bfefd9b2e35b8333348f8db58e" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to status&quot;,&quot;label&quot;:&quot;text:status&quot;}">Status</a></li> <li><a data-ga-click="Footer, go to help, text:Docs" href="https://web.archive.org/web/20211128155007/https://docs.github.com/">Docs</a></li> </ul> <a aria-label="Homepage" title="GitHub" class="footer-octicon d-none d-lg-block mx-lg-4" href="https://web.archive.org/web/20211128155007/https://github.com/"> <svg aria-hidden="true" height="24" viewbox="0 0 16 16" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github"> <path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path> </svg> </a> <ul class="list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0"> <li class="mr-3 mr-lg-0"><a href="https://web.archive.org/web/20211128155007/https://support.github.com/?tags=dotcom-footer" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to contact&quot;,&quot;label&quot;:&quot;text:contact&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="827552569accdd7733f2348db433034ee8f7fa04cca824bd180ef6a866a06df3" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to contact&quot;,&quot;label&quot;:&quot;text:contact&quot;}">Contact GitHub</a></li> <li class="mr-3 mr-lg-0"><a href="https://web.archive.org/web/20211128155007/https://github.com/pricing" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Pricing&quot;,&quot;label&quot;:&quot;text:Pricing&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b05f262956a4896e903f7484b8ee1743c9f325b57443b48dd2c4f2c84fbe0e24" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Pricing&quot;,&quot;label&quot;:&quot;text:Pricing&quot;}">Pricing</a></li> <li class="mr-3 mr-lg-0"><a href="https://web.archive.org/web/20211128155007/https://docs.github.com/" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to api&quot;,&quot;label&quot;:&quot;text:api&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="f36c3f13264bdfc061bbf89c1f6cdbd01432fdda395f8af44e82f5ebb6e7018e" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to api&quot;,&quot;label&quot;:&quot;text:api&quot;}">API</a></li> <li class="mr-3 mr-lg-0"><a href="https://web.archive.org/web/20211128155007/https://services.github.com/" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to training&quot;,&quot;label&quot;:&quot;text:training&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="659df38d9251cfdc78d019e8e9ff8d35029906ba2f9f0f064d0a39965fb47b95" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to training&quot;,&quot;label&quot;:&quot;text:training&quot;}">Training</a></li> <li class="mr-3 mr-lg-0"><a href="https://web.archive.org/web/20211128155007/https://github.blog/" data-hydro-click="{&quot;event_type&quot;:&quot;analytics.event&quot;,&quot;payload&quot;:{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to blog&quot;,&quot;label&quot;:&quot;text:blog&quot;,&quot;originating_url&quot;:&quot;https://github.com/stuartgibson&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ff6e8b3a499edb6c026bbe77d40a78dec92ef371dfd191adde79bfb92e46f2f5" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to blog&quot;,&quot;label&quot;:&quot;text:blog&quot;}">Blog</a></li> <li><a data-ga-click="Footer, go to about, text:about" href="https://web.archive.org/web/20211128155007/https://github.com/about">About</a></li> </ul> </div> <div class="d-flex flex-justify-center pb-6"> <span class="f6 color-fg-muted"></span> </div> </div> <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path> </svg> <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error"> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path> </svg> </button> You can’t perform that action at this time. </div> <div class="js-stale-session-flash flash flash-warn flash-banner" hidden> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path> </svg> <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span> </div> <template id="site-details-dialog"> <details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open> <summary role="button" aria-label="Close dialog"></summary> <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal"> <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path> </svg> </button> <div class="octocat-spinner my-6 js-details-dialog-spinner"></div> </details-dialog> </details> </template> <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0"> <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;"> </div> </div> <template id="snippet-clipboard-copy-button"> <div class="zeroclipboard-container position-absolute right-0 top-0"> <clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w"> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2"> <path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path> </svg> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2"> <path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path> </svg> </clipboard-copy> </div> </template> </body> </html> <!-- FILE ARCHIVED ON 15:50:07 Nov 28, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 07:38:01 Mar 15, 2025. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.477 exclusion.robots: 0.024 exclusion.robots.policy: 0.014 esindex: 0.011 cdx.remote: 3.983 LoadShardBlock: 249.275 (3) PetaboxLoader3.datanode: 112.387 (4) PetaboxLoader3.resolve: 412.877 (2) load_resource: 338.57 -->

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