gCubeDeployer/README.html

403 lines
1.3 MiB
HTML
Raw Permalink Normal View History

2024-02-23 16:06:41 +01:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>README.md - Grip</title>
<link rel="icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAKCgr/FRUX/xYWGP8YGBr/GRkb/xsbHP8dHR7/Hh4f/x4eIP8fHyD/ICAh/yMjJP8kJCX/JiYo/ygoKv8pKSr/LCwu/y0tLv80NDT/QUFC/0ZGR/9MTE7/UFBR/1JSUv9bW1v/XFxc/2BgYP9hYWP/aGhp/2xsbP9ycnL/d3d3/3l5e/98fHz/f3+A/2dn/P9z3a//cNX8/4CAgP+Xl5f/nZ2e/56en/+fn5//n5+h/6amp/+rq6v/rKys/7CvsP+zs7T/uLi5/7u7u/+8vLz/wMDA/8fHx//Kysr/zc3N/9HR0f/d3d3/3t7e/+Xl5f/q6ur/6+vr/+3t7f/z8/P/9fX1//b29v/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+//////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/NCYmJiYmJiYmJiYmJiYmNCZKSkpKSkpKSkpKSkpKSiYmSkpKRisdRkMbMklKSkomJkpKSSEiNUhEEQwpSUpKJiZKSi8LHhhAPAwBDDZKSiYmSkoWACA7SEc6HAEaSkomJkpKBxI/SkpKSj4ICkpKJiZKSgUTR0pKSkpGDwZKSiYmSkoTED1KSkpKOQQVSkomJkpKKgowMy4sNycIMUpKJiZKSkEZDgkDAgsNH0VKSiYmSkpKQigUBgkXLUhKSkomJkpKSkpKSkpKSkpKSkpKJiYmJiYmJiYmJiYmJiYmJiYmIyUkNDQ0NDQ0NDQ0NDQmOCYmJiYmJiYmJiYmJiYmOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" />
<link rel="stylesheet" href="/__/grip/static/octicons/octicons.css" />
<style>
:root {
--base-size-4: 0.25rem;
--base-size-8: 0.5rem;
--base-size-12: 0.75rem;
--base-size-16: 1rem;
--base-size-20: 1.25rem;
--base-size-24: 1.5rem;
--base-size-28: 1.75rem;
--base-size-32: 2rem;
--base-size-36: 2.25rem;
--base-size-40: 2.5rem;
--base-size-44: 2.75rem;
--base-size-48: 3rem;
--base-size-64: 4rem;
--base-size-80: 5rem;
--base-size-96: 6rem;
--base-size-112: 7rem;
--base-size-128: 8rem;
}
:root {
--base-text-weight-light: 300;
--base-text-weight-normal: 400;
--base-text-weight-medium: 500;
--base-text-weight-semibold: 600;
}
:root {
--boxShadow-thin: inset 0 0 0 max(1px, 0.0625rem);
--boxShadow-thick: inset 0 0 0 max(2px, 0.125rem);
--boxShadow-thicker: inset 0 0 0 max(4px, 0.25rem);
--borderWidth-thin: max(1px, 0.0625rem);
--borderWidth-thick: max(2px, 0.125rem);
--borderWidth-thicker: max(4px, 0.25rem);
--borderRadius-small: 3px;
--borderRadius-medium: 6px;
--borderRadius-large: 12px;
--borderRadius-full: 100vh;
--outline-focus-offset: -0.125rem;
--outline-focus-width: 0.125rem;
}
:root {
--breakpoint-xsmall: 20rem;
--breakpoint-small: 34rem;
--breakpoint-medium: 48rem;
--breakpoint-large: 63.25rem;
--breakpoint-xlarge: 80rem;
--breakpoint-xxlarge: 90rem;
}
@media (pointer: coarse) {
:root {
--control-minTarget-auto: 2.75rem;
--controlStack-small-gap-auto: 1rem;
--controlStack-medium-gap-auto: 0.75rem;
}
}
@media (pointer: fine) {
:root {
--control-minTarget-auto: 1rem;
--controlStack-small-gap-auto: 0.5rem;
--controlStack-medium-gap-auto: 0.5rem;
}
}
:root {
--control-minTarget-fine: 1rem;
--control-minTarget-coarse: 2.75rem;
--control-xsmall-size: 1.5rem;
--control-xsmall-lineBoxHeight: 1.25rem;
--control-xsmall-paddingBlock: calc((1.5rem - 1.25rem) / 2);
--control-xsmall-paddingInline-condensed: 0.25rem;
--control-xsmall-paddingInline-normal: 0.5rem;
--control-xsmall-paddingInline-spacious: 0.75rem;
--control-xsmall-gap: 0.25rem;
--control-small-size: 1.75rem;
--control-small-lineBoxHeight: 1.25rem;
--control-small-paddingBlock: calc((1.75rem - 1.25rem) / 2);
--control-small-paddingInline-condensed: 0.5rem;
--control-small-paddingInline-normal: 0.75rem;
--control-small-gap: 0.25rem;
--control-medium-size: 2rem;
--control-medium-lineBoxHeight: 1.25rem;
--control-medium-paddingBlock: calc((2rem - 1.25rem) / 2);
--control-medium-paddingInline-condensed: 0.5rem;
--control-medium-paddingInline-normal: 0.75rem;
--control-medium-paddingInline-spacious: 1rem;
--control-medium-gap: 0.5rem;
--control-large-size: 2.5rem;
--control-large-lineBoxHeight: 1.25rem;
--control-large-paddingBlock: calc((2.5rem - 1.25rem) / 2);
--control-large-paddingInline-normal: 0.75rem;
--control-large-paddingInline-spacious: 1rem;
--control-large-gap: 0.5rem;
--control-xlarge-size: 3rem;
--control-xlarge-lineBoxHeight: 1.25rem;
--control-xlarge-paddingBlock: calc((3rem - 1.25rem) / 2);
--control-xlarge-paddingInline-normal: 0.75rem;
--control-xlarge-paddingInline-spacious: 1rem;
--control-xlarge-gap: 0.5rem;
--controlStack-small-gap-condensed: 0.5rem;
--controlStack-small-gap-spacious: 1rem;
--controlStack-medium-gap-condensed: 0.5rem;
--controlStack-medium-gap-spacious: 0.75rem;
--controlStack-large-gap-auto: 0.5rem;
--controlStack-large-gap-condensed: 0.5rem;
--controlStack-large-gap-spacious: 0.75rem;
--stack-padding-condensed: 0.5rem;
--stack-padding-normal: 1rem;
--stack-padding-spacious: 1.5rem;
--stack-gap-condensed: 0.5rem;
--stack-gap-normal: 1rem;
--stack-gap-spacious: 1.5rem;
}
@custom-media --viewportRange-narrow (max-width: calc(48rem - 0.02px));
@custom-media --viewportRange-narrowLandscape (max-width: calc(63.25rem - 0.02px) and (max-height: calc(34rem - 0.02px)) and (orientation: landscape));
@custom-media --viewportRange-regular (min-width: 48rem);
@custom-media --viewportRange-wide (min-width: 90rem);
@custom-media --viewportRange-portrait (orientation: portrait);
@custom-media --viewportRange-landscape (orientation: landscape);
:root {
--text-codeInline-size: 0.9285em;
--text-codeBlock-lineHeight: calc(20/13);
--text-codeBlock-size: 0.8125rem;
--text-caption-lineHeight: calc(16/12);
--text-caption-size: 0.75rem;
--text-body-lineHeight-small: calc(20/12);
--text-body-lineHeight-medium: calc(20/14);
--text-body-lineHeight-large: calc(24/16);
--text-body-size-small: 0.75rem;
--text-body-size-medium: 0.875rem;
--text-body-size-large: 1rem;
--text-subtitle-lineHeight: calc(32/20);
--text-subtitle-size: 1.25rem;
--text-title-lineHeight-small: calc(24/16);
--text-title-lineHeight-medium: calc(32/20);
--text-title-lineHeight-large: calc(48/32);
--text-title-size-small: 1rem;
--text-title-size-medium: 1.25rem;
--text-title-size-large: 2rem;
--text-display-lineHeight: calc(56/40);
--text-display-size: 2.5rem;
--text-display-lineBoxHeight: 3.5rem;
--fontStack-monospace: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
--fontStack-sansSerif: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
--fontStack-system: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
--text-codeInline-weight: 400;
--text-codeBlock-weight: 400;
--text-caption-weight: 400;
--text-body-weight: 400;
--text-subtitle-weight: 400;
--text-title-weight-small: 600;
--text-title-weight-medium: 600;
--text-title-weight-large: 600;
--text-display-weight: 500;
--text-codeInline-shorthand: var(--text-codeInline-weight) var(--text-codeInline-size) var(--fontStack-monospace);
--text-codeBlock-shorthand: var(--text-codeBlock-weight) var(--text-codeBlock-size)/var(--text-codeBlock-lineHeight) var(--fontStack-monospace);
--text-caption-shorthand: var(--text-caption-weight) var(--text-caption-size)/var(--text-caption-lineHeight) var(--fontStack-sansSerif);
--text-body-shorthand-small: var(--text-body-weight) var(--text-body-size-small)/var(--text-body-lineHeight-small) var(--fontStack-sansSerif);
--text-body-shorthand-medium: var(--text-body-weight) var(--text-body-size-medium)/var(--text-body-lineHeight-medium) var(--fontStack-sansSerif);
--text-body-shorthand-large: var(--text-body-weight) var(--text-body-size-large)/var(--text-body-lineHeight-large) var(--fontStack-sansSerif);
--text-subtitle-shorthand: var(--text-subtitle-weight) var(--text-subtitle-size)/var(--text-subtitle-lineHeight) var(--fontStack-sansSerif);
--text-title-shorthand-small: var(--text-title-weight-small) var(--text-title-size-small)/var(--text-title-lineHeight-small) var(--fontStack-sansSerif);
--text-title-shorthand-medium: var(--text-title-weight-medium) var(--text-title-size-medium)/var(--text-title-lineHeight-medium) var(--fontStack-sansSerif);
--text-title-shorthand-large: var(--text-title-weight-large) var(--text-title-size-large)/var(--text-title-lineHeight-large) var(--fontStack-sansSerif);
--text-display-shorthand: var(--text-display-weight) var(--text-display-size)/var(--text-display-lineHeight) var(--fontStack-sansSerif);
}
/*# sourceMappingURL=primer-primitives-e6fc6e1cdea3.css.map*/
:root{--h00-size-mobile: 2.5rem;--h0-size-mobile: 2rem;--h1-size-mobile: 1.625rem;--h2-size-mobile: 1.375rem;--h3-size-mobile: 1.125rem;--h00-size: 3rem;--h0-size: 2.5rem;--h1-size: 2rem;--h2-size: 1.5rem;--h3-size: 1.25rem;--h4-size: 1rem;--h5-size: 0.875rem;--h6-size: 0.75rem;--body-font-size: 0.875rem;--font-size-small: 0.75rem}[data-color-mode=light][data-light-theme=light_high_contrast],[data-color-mode=light][data-light-theme=light_high_contrast]::selection,[data-color-mode=dark][data-dark-theme=light_high_contrast],[data-color-mode=dark][data-dark-theme=light_high_contrast]::selection{--color-canvas-default-transparent: rgba(255,255,255,0);--color-page-header-bg: #ffffff;--color-marketing-icon-primary: #1168e3;--color-marketing-icon-secondary: #368cf9;--color-diff-blob-addition-num-text: #0e1116;--color-diff-blob-addition-fg: #ffffff;--color-diff-blob-addition-num-bg: #ccffd8;--color-diff-blob-addition-line-bg: #e6ffec;--color-diff-blob-addition-word-bg: #055d20;--color-diff-blob-deletion-num-text: #0e1116;--color-diff-blob-deletion-fg: #ffffff;--color-diff-blob-deletion-num-bg: #ffd7d5;--color-diff-blob-deletion-line-bg: #fff0ee;--color-diff-blob-deletion-word-bg: #a0111f;--color-diff-blob-hunk-num-bg: #9cd7ff;--color-diff-blob-expander-icon: #0e1116;--color-diff-blob-selected-line-highlight-mix-blend-mode: multiply;--color-diffstat-deletion-border: rgba(1,4,9,0.8);--color-diffstat-addition-border: rgba(1,4,9,0.8);--color-diffstat-addition-bg: #055d20;--color-search-keyword-hl: #fcf7be;--color-prettylights-syntax-comment: #66707b;--color-prettylights-syntax-constant: #023b95;--color-prettylights-syntax-entity: #622cbc;--color-prettylights-syntax-storage-modifier-import: #0e1116;--color-prettylights-syntax-entity-tag: #024c1a;--color-prettylights-syntax-keyword: #a0111f;--color-prettylights-syntax-string: #032563;--color-prettylights-syntax-variable: #702c00;--color-prettylights-syntax-brackethighlighter-unmatched: #6e011a;--color-prettylights-syntax-invalid-illegal-text: #ffffff;--color-prettylights-syntax-invalid-illegal-bg: #6e011a;--color-prettylights-syntax-carriage-return-text: #ffffff;--color-prettylights-syntax-carriage-return-bg: #a0111f;--color-prettylights-syntax-string-regexp: #024c1a;--color-prettylights-syntax-markup-list: #2e1800;--color-prettylights-syntax-markup-heading: #023b95;--color-prettylights-syntax-markup-italic: #0e1116;--color-prettylights-syntax-markup-bold: #0e1116;--color-prettylights-syntax-markup-deleted-text: #6e011a;--color-prettylights-syntax-markup-deleted-bg: #fff0ee;--color-prettylights-syntax-markup-inserted-text: #024c1a;--color-prettylights-syntax-markup-inserted-bg: #d2fedb;--color-prettylights-syntax-markup-changed-text: #702c00;--color-prettylights-syntax-markup-changed-bg: #ffc67b;--color-prettylights-syntax-markup-ignored-text: #e7ecf0;--color-prettylights-syntax-markup-ignored-bg: #023b95;--color-prettylights-syntax-meta-diff-range: #622cbc;--color-prettylights-syntax-brackethighlighter-angle: #4b535d;--color-prettylights-syntax-sublimelinter-gutter-mark: #88929d;--color-prettylights-syntax-constant-other-reference-link: #032563;--color-codemirror-text: #0e1116;--color-codemirror-bg: #ffffff;--color-codemirror-gutters-bg: #ffffff;--color-codemirror-guttermarker-text: #ffffff;--color-codemirror-guttermarker-subtle-text: #66707b;--color-codemirror-linenumber-text: #0e1116;--color-codemirror-cursor: #0e1116;--color-codemirror-selection-bg: #368cf9;--color-codemirror-activeline-bg: #e7ecf0;--color-codemirror-matchingbracket-text: #0e1116;--color-codemirror-lines-bg: #ffffff;--color-codemirror-syntax-comment: #0e1116;--color-codemirror-syntax-constant: #023b95;--color-codemirror-syntax-entity: #622cbc;--color-codemirror-syntax-keyword: #a0111f;--color-codemirror-syntax-storage: #a0111f;--color-codemirror-syntax-string: #032563;--color-codemirror-syntax-support: #023b95;--color-codemirror-syntax-variable: #702c00;--color-checks-bg: #0e1116;--color-checks-run-border-width: 0px;--color-checks-container-border-width: 0px;--color-checks-text-primary: #ffffff;--color-checks
/*# sourceMappingURL=light_high_contrast-be6634b20903.css.map*/
:root{--h00-size-mobile: 2.5rem;--h0-size-mobile: 2rem;--h1-size-mobile: 1.625rem;--h2-size-mobile: 1.375rem;--h3-size-mobile: 1.125rem;--h00-size: 3rem;--h0-size: 2.5rem;--h1-size: 2rem;--h2-size: 1.5rem;--h3-size: 1.25rem;--h4-size: 1rem;--h5-size: 0.875rem;--h6-size: 0.75rem;--body-font-size: 0.875rem;--font-size-small: 0.75rem}.min-height-full{min-height:100vh !important}.marketing-section{position:relative;padding-top:80px;padding-bottom:80px;font-size:16px;line-height:1.5;text-align:center;border-bottom:1px solid var(--color-border-default)}.marketing-section::before{display:table;content:""}.marketing-section::after{display:table;clear:both;content:""}.marketing-section h3{font-size:20px;font-weight:var(--base-text-weight-normal, 400)}.marketing-hero-octicon{position:relative;width:100px;height:100px;margin:0 auto 16px;text-align:center;border:solid 1px var(--color-border-default);border-radius:50px}.marketing-hero-octicon .octicon{margin-top:24px;color:var(--color-accent-fg)}.marketing-hero-octicon .octicon-checklist{position:relative;right:-3px}.hanging-icon-list{list-style-type:none}.hanging-icon-list li{padding-left:24px;margin:8px 0;font-size:14px}.hanging-icon-list .octicon{float:left;margin-top:4px;margin-left:-24px;color:var(--color-fg-muted)}.hanging-icon-list .octicon-check{color:var(--color-success-fg)}.hanging-icon-list .octicon-x{color:var(--color-danger-fg)}.integrations-hero-octicon.marketing-hero-octicon{width:75px;height:75px;border-width:5px}.integrations-hero-octicon.marketing-hero-octicon .octicon{margin-top:16px}.marketing-blue-octicon{color:#34acbf;border-color:#34acbf}.marketing-blue-octicon .octicon{color:#34acbf}.marketing-turquoise-octicon{color:#75bbb6;border-color:#75bbb6}.marketing-turquoise-octicon .octicon{color:#75bbb6}.marketing-purple-octicon{color:#b086b7;border-color:#b086b7}.marketing-purple-octicon .octicon{color:#b086b7}.marketing-graphic{position:relative}.intgrs-dir .marketing-graphic{padding-right:0;margin:0}.intgrs-dir .footer{margin-top:40px}.intgrs-dir-section h2{margin-top:0;margin-bottom:16px;font-size:24px;font-weight:var(--base-text-weight-light, 300)}.intgrs-dir-intro{padding:40px 0;margin:0;text-align:left;background-image:linear-gradient(-110deg, #48227d 0%, #2f569c 100%);border-bottom:0}.pagehead+.intgrs-dir-intro{margin-top:-16px}.intgrs-dir-intro .directory-header-back{margin-top:8px;font-size:16px;color:#fff}.intgrs-dir-intro .directory-header-back:hover{color:#d7def1;text-decoration:none}.intgrs-dir-intro .directory-header-back .octicon{vertical-align:middle}.intgrs-dir-intro .directory-header-back .header-link{color:var(--color-accent-fg)}.intgrs-dir-intro .directory-tag-line{margin-bottom:0;font-size:32px;font-weight:var(--base-text-weight-normal, 400);color:#fff}.intgrs-dir-intro .lead{margin-top:8px;margin-bottom:4px;font-size:16px;font-weight:var(--base-text-weight-normal, 400);color:#d7def1}.intgrs-lstng-search{display:inline-block;width:33%;margin-left:16px}.intgrs-lstng-search .subnav-search-input{width:100%}.intgrs-lstng-categories-container{display:inline-block;float:left;width:20%}.intgrs-lstng-categories-container .intgrs-lstng-categories{top:0}.intgrs-lstng-categories-container .filter-item{padding:4px 8px;margin-right:-8px;margin-left:-8px}.intgrs-lstng-container{display:inline-block;width:80%;text-align:left}.intgrs-lstng-item{position:relative;display:inline-flex;width:30.8%;font-size:14px;border:1px solid var(--color-border-muted);border-radius:4px;transition:border-color .15s ease 0s,transform .15s ease 0s,box-shadow .15s ease 0s,color .15s ease 0s}.intgrs-lstng-item:hover{border-color:#51a7e8;box-shadow:0 0 5px rgba(81,167,232,.5);transform:scale(1.05)}.intgrs-lstng-item .intgrs-lstng-logo{display:block;margin:0 auto 8px}.intgrs-lstng-item .draft-tag{position:absolute;top:-1px;left:10px}.intgrs-lstng-item-link{display:block;width:100%;height:181px;padding-top:16px}.intgrs-lstng-item-link:hover{text-decoration:none}.intgrs-lstng-item-link:hover .intgrs-lstng-item-header{color:var(--color-accent-fg)}.intgrs-lstng-item-header{margin:16px
/*# sourceMappingURL=github-86f8c36bff3e.css.map*/
:root{--h00-size-mobile: 2.5rem;--h0-size-mobile: 2rem;--h1-size-mobile: 1.625rem;--h2-size-mobile: 1.375rem;--h3-size-mobile: 1.125rem;--h00-size: 3rem;--h0-size: 2.5rem;--h1-size: 2rem;--h2-size: 1.5rem;--h3-size: 1.25rem;--h4-size: 1rem;--h5-size: 0.875rem;--h6-size: 0.75rem;--body-font-size: 0.875rem;--font-size-small: 0.75rem}[data-color-mode=light][data-light-theme=light_tritanopia],[data-color-mode=light][data-light-theme=light_tritanopia]::selection,[data-color-mode=dark][data-dark-theme=light_tritanopia],[data-color-mode=dark][data-dark-theme=light_tritanopia]::selection{--color-canvas-default-transparent: rgba(255,255,255,0);--color-page-header-bg: #f6f8fa;--color-marketing-icon-primary: #218bff;--color-marketing-icon-secondary: #54aeff;--color-diff-blob-addition-num-text: #24292f;--color-diff-blob-addition-fg: #24292f;--color-diff-blob-addition-num-bg: rgba(84,174,255,0.4);--color-diff-blob-addition-line-bg: rgba(221,244,255,0.5);--color-diff-blob-addition-word-bg: rgba(84,174,255,0.4);--color-diff-blob-deletion-num-text: #24292f;--color-diff-blob-deletion-fg: #24292f;--color-diff-blob-deletion-num-bg: rgba(255,129,130,0.4);--color-diff-blob-deletion-line-bg: rgba(255,235,233,0.5);--color-diff-blob-deletion-word-bg: rgba(255,171,168,0.5);--color-diff-blob-hunk-num-bg: rgba(84,174,255,0.4);--color-diff-blob-expander-icon: #57606a;--color-diff-blob-selected-line-highlight-mix-blend-mode: multiply;--color-diffstat-deletion-border: rgba(27,31,36,0.15);--color-diffstat-addition-border: rgba(27,31,36,0.15);--color-diffstat-addition-bg: #0969da;--color-search-keyword-hl: #fff8c5;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-entity: #8250df;--color-prettylights-syntax-storage-modifier-import: #24292f;--color-prettylights-syntax-entity-tag: #0550ae;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-variable: #a40e26;--color-prettylights-syntax-brackethighlighter-unmatched: #82071e;--color-prettylights-syntax-invalid-illegal-text: #f6f8fa;--color-prettylights-syntax-invalid-illegal-bg: #82071e;--color-prettylights-syntax-carriage-return-text: #f6f8fa;--color-prettylights-syntax-carriage-return-bg: #cf222e;--color-prettylights-syntax-string-regexp: #0550ae;--color-prettylights-syntax-markup-list: #3b2300;--color-prettylights-syntax-markup-heading: #0550ae;--color-prettylights-syntax-markup-italic: #24292f;--color-prettylights-syntax-markup-bold: #24292f;--color-prettylights-syntax-markup-deleted-text: #82071e;--color-prettylights-syntax-markup-deleted-bg: #ffebe9;--color-prettylights-syntax-markup-inserted-text: #0550ae;--color-prettylights-syntax-markup-inserted-bg: #ddf4ff;--color-prettylights-syntax-markup-changed-text: #a40e26;--color-prettylights-syntax-markup-changed-bg: #ffcecb;--color-prettylights-syntax-markup-ignored-text: #eaeef2;--color-prettylights-syntax-markup-ignored-bg: #0550ae;--color-prettylights-syntax-meta-diff-range: #8250df;--color-prettylights-syntax-brackethighlighter-angle: #57606a;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant-other-reference-link: #0a3069;--color-codemirror-text: #24292f;--color-codemirror-bg: #ffffff;--color-codemirror-gutters-bg: #ffffff;--color-codemirror-guttermarker-text: #ffffff;--color-codemirror-guttermarker-subtle-text: #6e7781;--color-codemirror-linenumber-text: #57606a;--color-codemirror-cursor: #24292f;--color-codemirror-selection-bg: rgba(84,174,255,0.4);--color-codemirror-activeline-bg: rgba(234,238,242,0.5);--color-codemirror-matchingbracket-text: #24292f;--color-codemirror-lines-bg: #ffffff;--color-codemirror-syntax-comment: #24292f;--color-codemirror-syntax-constant: #0550ae;--color-codemirror-syntax-entity: #8250df;--color-codemirror-syntax-keyword: #cf222e;--color-codemirror-syntax-storage: #cf222e;--color-codemirror-syntax-string: #0a3069;--color-codemirror-syntax-support: #0550ae;--color-codemirror-syntax-variable: #a40e26;--color-checks-bg: #24292f;--color-check
/*# sourceMappingURL=light_tritanopia-c7b784b64b81.css.map*/
:root{--h00-size-mobile: 2.5rem;--h0-size-mobile: 2rem;--h1-size-mobile: 1.625rem;--h2-size-mobile: 1.375rem;--h3-size-mobile: 1.125rem;--h00-size: 3rem;--h0-size: 2.5rem;--h1-size: 2rem;--h2-size: 1.5rem;--h3-size: 1.25rem;--h4-size: 1rem;--h5-size: 0.875rem;--h6-size: 0.75rem;--body-font-size: 0.875rem;--font-size-small: 0.75rem}[data-color-mode=light][data-light-theme=dark_dimmed],[data-color-mode=light][data-light-theme=dark_dimmed]::selection,[data-color-mode=dark][data-dark-theme=dark_dimmed],[data-color-mode=dark][data-dark-theme=dark_dimmed]::selection{--color-canvas-default-transparent: rgba(34,39,46,0);--color-page-header-bg: #22272e;--color-marketing-icon-primary: #6cb6ff;--color-marketing-icon-secondary: #316dca;--color-diff-blob-addition-num-text: #adbac7;--color-diff-blob-addition-fg: #adbac7;--color-diff-blob-addition-num-bg: rgba(87,171,90,0.3);--color-diff-blob-addition-line-bg: rgba(70,149,74,0.15);--color-diff-blob-addition-word-bg: rgba(70,149,74,0.4);--color-diff-blob-deletion-num-text: #adbac7;--color-diff-blob-deletion-fg: #adbac7;--color-diff-blob-deletion-num-bg: rgba(229,83,75,0.3);--color-diff-blob-deletion-line-bg: rgba(229,83,75,0.1);--color-diff-blob-deletion-word-bg: rgba(229,83,75,0.4);--color-diff-blob-hunk-num-bg: rgba(65,132,228,0.4);--color-diff-blob-expander-icon: #adbac7;--color-diff-blob-selected-line-highlight-mix-blend-mode: screen;--color-diffstat-deletion-border: rgba(205,217,229,0.1);--color-diffstat-addition-border: rgba(205,217,229,0.1);--color-diffstat-addition-bg: #57ab5a;--color-search-keyword-hl: rgba(198,144,38,0.4);--color-prettylights-syntax-comment: #768390;--color-prettylights-syntax-constant: #6cb6ff;--color-prettylights-syntax-entity: #dcbdfb;--color-prettylights-syntax-storage-modifier-import: #adbac7;--color-prettylights-syntax-entity-tag: #8ddb8c;--color-prettylights-syntax-keyword: #f47067;--color-prettylights-syntax-string: #96d0ff;--color-prettylights-syntax-variable: #f69d50;--color-prettylights-syntax-brackethighlighter-unmatched: #e5534b;--color-prettylights-syntax-invalid-illegal-text: #cdd9e5;--color-prettylights-syntax-invalid-illegal-bg: #922323;--color-prettylights-syntax-carriage-return-text: #cdd9e5;--color-prettylights-syntax-carriage-return-bg: #ad2e2c;--color-prettylights-syntax-string-regexp: #8ddb8c;--color-prettylights-syntax-markup-list: #eac55f;--color-prettylights-syntax-markup-heading: #316dca;--color-prettylights-syntax-markup-italic: #adbac7;--color-prettylights-syntax-markup-bold: #adbac7;--color-prettylights-syntax-markup-deleted-text: #ffd8d3;--color-prettylights-syntax-markup-deleted-bg: #78191b;--color-prettylights-syntax-markup-inserted-text: #b4f1b4;--color-prettylights-syntax-markup-inserted-bg: #1b4721;--color-prettylights-syntax-markup-changed-text: #ffddb0;--color-prettylights-syntax-markup-changed-bg: #682d0f;--color-prettylights-syntax-markup-ignored-text: #adbac7;--color-prettylights-syntax-markup-ignored-bg: #255ab2;--color-prettylights-syntax-meta-diff-range: #dcbdfb;--color-prettylights-syntax-brackethighlighter-angle: #768390;--color-prettylights-syntax-sublimelinter-gutter-mark: #545d68;--color-prettylights-syntax-constant-other-reference-link: #96d0ff;--color-codemirror-text: #adbac7;--color-codemirror-bg: #22272e;--color-codemirror-gutters-bg: #22272e;--color-codemirror-guttermarker-text: #22272e;--color-codemirror-guttermarker-subtle-text: #636e7b;--color-codemirror-linenumber-text: #768390;--color-codemirror-cursor: #adbac7;--color-codemirror-selection-bg: rgba(65,132,228,0.4);--color-codemirror-activeline-bg: rgba(99,110,123,0.1);--color-codemirror-matchingbracket-text: #adbac7;--color-codemirror-lines-bg: #22272e;--color-codemirror-syntax-comment: #768390;--color-codemirror-syntax-constant: #6cb6ff;--color-codemirror-syntax-entity: #dcbdfb;--color-codemirror-syntax-keyword: #f47067;--color-codemirror-syntax-storage: #f47067;--color-codemirror-syntax-string: #96d0ff;--color-codemirror-syntax-support: #6cb6ff;--color-codemirror-syntax-variable: #f69d50;--color-checks-bg: #1c2128;--color-checks-run-border-width
/*# sourceMappingURL=dark_dimmed-81dfcd9e8c1e.css.map*/
:root{--h00-size-mobile: 2.5rem;--h0-size-mobile: 2rem;--h1-size-mobile: 1.625rem;--h2-size-mobile: 1.375rem;--h3-size-mobile: 1.125rem;--h00-size: 3rem;--h0-size: 2.5rem;--h1-size: 2rem;--h2-size: 1.5rem;--h3-size: 1.25rem;--h4-size: 1rem;--h5-size: 0.875rem;--h6-size: 0.75rem;--body-font-size: 0.875rem;--font-size-small: 0.75rem}[data-color-mode=light][data-light-theme=light_colorblind],[data-color-mode=light][data-light-theme=light_colorblind]::selection,[data-color-mode=dark][data-dark-theme=light_colorblind],[data-color-mode=dark][data-dark-theme=light_colorblind]::selection{--color-canvas-default-transparent: rgba(255,255,255,0);--color-page-header-bg: #f6f8fa;--color-marketing-icon-primary: #218bff;--color-marketing-icon-secondary: #54aeff;--color-diff-blob-addition-num-text: #24292f;--color-diff-blob-addition-fg: #24292f;--color-diff-blob-addition-num-bg: rgba(84,174,255,0.4);--color-diff-blob-addition-line-bg: rgba(221,244,255,0.5);--color-diff-blob-addition-word-bg: rgba(84,174,255,0.4);--color-diff-blob-deletion-num-text: #24292f;--color-diff-blob-deletion-fg: #24292f;--color-diff-blob-deletion-num-bg: rgba(247,153,57,0.4);--color-diff-blob-deletion-line-bg: rgba(255,245,232,0.5);--color-diff-blob-deletion-word-bg: rgba(255,188,109,0.5);--color-diff-blob-hunk-num-bg: rgba(84,174,255,0.4);--color-diff-blob-expander-icon: #57606a;--color-diff-blob-selected-line-highlight-mix-blend-mode: multiply;--color-diffstat-deletion-border: rgba(27,31,36,0.15);--color-diffstat-addition-border: rgba(27,31,36,0.15);--color-diffstat-addition-bg: #0969da;--color-search-keyword-hl: #fff8c5;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-entity: #8250df;--color-prettylights-syntax-storage-modifier-import: #24292f;--color-prettylights-syntax-entity-tag: #0550ae;--color-prettylights-syntax-keyword: #b35900;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-variable: #8a4600;--color-prettylights-syntax-brackethighlighter-unmatched: #6f3800;--color-prettylights-syntax-invalid-illegal-text: #f6f8fa;--color-prettylights-syntax-invalid-illegal-bg: #6f3800;--color-prettylights-syntax-carriage-return-text: #f6f8fa;--color-prettylights-syntax-carriage-return-bg: #b35900;--color-prettylights-syntax-string-regexp: #0550ae;--color-prettylights-syntax-markup-list: #3b2300;--color-prettylights-syntax-markup-heading: #0550ae;--color-prettylights-syntax-markup-italic: #24292f;--color-prettylights-syntax-markup-bold: #24292f;--color-prettylights-syntax-markup-deleted-text: #6f3800;--color-prettylights-syntax-markup-deleted-bg: #fff5e8;--color-prettylights-syntax-markup-inserted-text: #0550ae;--color-prettylights-syntax-markup-inserted-bg: #ddf4ff;--color-prettylights-syntax-markup-changed-text: #8a4600;--color-prettylights-syntax-markup-changed-bg: #ffddb0;--color-prettylights-syntax-markup-ignored-text: #eaeef2;--color-prettylights-syntax-markup-ignored-bg: #0550ae;--color-prettylights-syntax-meta-diff-range: #8250df;--color-prettylights-syntax-brackethighlighter-angle: #57606a;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant-other-reference-link: #0a3069;--color-codemirror-text: #24292f;--color-codemirror-bg: #ffffff;--color-codemirror-gutters-bg: #ffffff;--color-codemirror-guttermarker-text: #ffffff;--color-codemirror-guttermarker-subtle-text: #6e7781;--color-codemirror-linenumber-text: #57606a;--color-codemirror-cursor: #24292f;--color-codemirror-selection-bg: rgba(84,174,255,0.4);--color-codemirror-activeline-bg: rgba(234,238,242,0.5);--color-codemirror-matchingbracket-text: #24292f;--color-codemirror-lines-bg: #ffffff;--color-codemirror-syntax-comment: #24292f;--color-codemirror-syntax-constant: #0550ae;--color-codemirror-syntax-entity: #8250df;--color-codemirror-syntax-keyword: #b35900;--color-codemirror-syntax-storage: #b35900;--color-codemirror-syntax-string: #0a3069;--color-codemirror-syntax-support: #0550ae;--color-codemirror-syntax-variable: #8a4600;--color-checks-bg: #24292f;--color-checks
/*# sourceMappingURL=light_colorblind-0efbafcf5812.css.map*/
:root{--h00-size-mobile: 2.5rem;--h0-size-mobile: 2rem;--h1-size-mobile: 1.625rem;--h2-size-mobile: 1.375rem;--h3-size-mobile: 1.125rem;--h00-size: 3rem;--h0-size: 2.5rem;--h1-size: 2rem;--h2-size: 1.5rem;--h3-size: 1.25rem;--h4-size: 1rem;--h5-size: 0.875rem;--h6-size: 0.75rem;--body-font-size: 0.875rem;--font-size-small: 0.75rem}[data-color-mode=light][data-light-theme=dark_high_contrast],[data-color-mode=light][data-light-theme=dark_high_contrast]::selection,[data-color-mode=dark][data-dark-theme=dark_high_contrast],[data-color-mode=dark][data-dark-theme=dark_high_contrast]::selection{--color-canvas-default-transparent: rgba(10,12,16,0);--color-page-header-bg: #0a0c10;--color-marketing-icon-primary: #91cbff;--color-marketing-icon-secondary: #409eff;--color-diff-blob-addition-num-text: #f0f3f6;--color-diff-blob-addition-fg: #0a0c10;--color-diff-blob-addition-num-bg: rgba(38,205,77,0.3);--color-diff-blob-addition-line-bg: rgba(9,180,58,0.15);--color-diff-blob-addition-word-bg: #09b43a;--color-diff-blob-deletion-num-text: #f0f3f6;--color-diff-blob-deletion-fg: #0a0c10;--color-diff-blob-deletion-num-bg: rgba(255,106,105,0.3);--color-diff-blob-deletion-line-bg: rgba(255,106,105,0.1);--color-diff-blob-deletion-word-bg: #ff6a69;--color-diff-blob-hunk-num-bg: rgba(64,158,255,0.4);--color-diff-blob-expander-icon: #f0f3f6;--color-diff-blob-selected-line-highlight-mix-blend-mode: screen;--color-diffstat-deletion-border: #ffb1af;--color-diffstat-addition-border: #4ae168;--color-diffstat-addition-bg: #26cd4d;--color-search-keyword-hl: rgba(240,183,47,0.4);--color-prettylights-syntax-comment: #bdc4cc;--color-prettylights-syntax-constant: #91cbff;--color-prettylights-syntax-entity: #dbb7ff;--color-prettylights-syntax-storage-modifier-import: #f0f3f6;--color-prettylights-syntax-entity-tag: #72f088;--color-prettylights-syntax-keyword: #ff9492;--color-prettylights-syntax-string: #addcff;--color-prettylights-syntax-variable: #ffb757;--color-prettylights-syntax-brackethighlighter-unmatched: #ff6a69;--color-prettylights-syntax-invalid-illegal-text: #ffffff;--color-prettylights-syntax-invalid-illegal-bg: #e82a2f;--color-prettylights-syntax-carriage-return-text: #ffffff;--color-prettylights-syntax-carriage-return-bg: #ff4445;--color-prettylights-syntax-string-regexp: #72f088;--color-prettylights-syntax-markup-list: #fbd669;--color-prettylights-syntax-markup-heading: #409eff;--color-prettylights-syntax-markup-italic: #f0f3f6;--color-prettylights-syntax-markup-bold: #f0f3f6;--color-prettylights-syntax-markup-deleted-text: #ffdedb;--color-prettylights-syntax-markup-deleted-bg: #cc1421;--color-prettylights-syntax-markup-inserted-text: #acf7b6;--color-prettylights-syntax-markup-inserted-bg: #007728;--color-prettylights-syntax-markup-changed-text: #ffe1b4;--color-prettylights-syntax-markup-changed-bg: #a74c00;--color-prettylights-syntax-markup-ignored-text: #f0f3f6;--color-prettylights-syntax-markup-ignored-bg: #318bf8;--color-prettylights-syntax-meta-diff-range: #dbb7ff;--color-prettylights-syntax-brackethighlighter-angle: #bdc4cc;--color-prettylights-syntax-sublimelinter-gutter-mark: #7a828e;--color-prettylights-syntax-constant-other-reference-link: #addcff;--color-codemirror-text: #f0f3f6;--color-codemirror-bg: #0a0c10;--color-codemirror-gutters-bg: #0a0c10;--color-codemirror-guttermarker-text: #0a0c10;--color-codemirror-guttermarker-subtle-text: #9ea7b3;--color-codemirror-linenumber-text: #f0f3f6;--color-codemirror-cursor: #f0f3f6;--color-codemirror-selection-bg: rgba(64,158,255,0.4);--color-codemirror-activeline-bg: rgba(158,167,179,0.1);--color-codemirror-matchingbracket-text: #f0f3f6;--color-codemirror-lines-bg: #0a0c10;--color-codemirror-syntax-comment: #bdc4cc;--color-codemirror-syntax-constant: #91cbff;--color-codemirror-syntax-entity: #dbb7ff;--color-codemirror-syntax-keyword: #ff9492;--color-codemirror-syntax-storage: #ff9492;--color-codemirror-syntax-string: #addcff;--color-codemirror-syntax-support: #91cbff;--color-codemirror-syntax-variable: #ffb757;--color-checks-bg: #010409;--color-checks-run-border-width: 1px;--color-checks
/*# sourceMappingURL=dark_high_contrast-d8dc9669b03b.css.map*/
:root{--h00-size-mobile: 2.5rem;--h0-size-mobile: 2rem;--h1-size-mobile: 1.625rem;--h2-size-mobile: 1.375rem;--h3-size-mobile: 1.125rem;--h00-size: 3rem;--h0-size: 2.5rem;--h1-size: 2rem;--h2-size: 1.5rem;--h3-size: 1.25rem;--h4-size: 1rem;--h5-size: 0.875rem;--h6-size: 0.75rem;--body-font-size: 0.875rem;--font-size-small: 0.75rem}[data-color-mode=light][data-light-theme=dark_colorblind],[data-color-mode=light][data-light-theme=dark_colorblind]::selection,[data-color-mode=dark][data-dark-theme=dark_colorblind],[data-color-mode=dark][data-dark-theme=dark_colorblind]::selection{--color-canvas-default-transparent: rgba(13,17,23,0);--color-page-header-bg: #0d1117;--color-marketing-icon-primary: #79c0ff;--color-marketing-icon-secondary: #1f6feb;--color-diff-blob-addition-num-text: #c9d1d9;--color-diff-blob-addition-fg: #c9d1d9;--color-diff-blob-addition-num-bg: rgba(88,166,255,0.3);--color-diff-blob-addition-line-bg: rgba(56,139,253,0.15);--color-diff-blob-addition-word-bg: rgba(56,139,253,0.4);--color-diff-blob-deletion-num-text: #c9d1d9;--color-diff-blob-deletion-fg: #c9d1d9;--color-diff-blob-deletion-num-bg: rgba(212,118,22,0.3);--color-diff-blob-deletion-line-bg: rgba(212,118,22,0.1);--color-diff-blob-deletion-word-bg: rgba(212,118,22,0.4);--color-diff-blob-hunk-num-bg: rgba(56,139,253,0.4);--color-diff-blob-expander-icon: #8b949e;--color-diff-blob-selected-line-highlight-mix-blend-mode: screen;--color-diffstat-deletion-border: rgba(240,246,252,0.1);--color-diffstat-addition-border: rgba(240,246,252,0.1);--color-diffstat-addition-bg: #58a6ff;--color-search-keyword-hl: rgba(210,153,34,0.4);--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-storage-modifier-import: #c9d1d9;--color-prettylights-syntax-entity-tag: #a5d6ff;--color-prettylights-syntax-keyword: #ec8e2c;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-variable: #fdac54;--color-prettylights-syntax-brackethighlighter-unmatched: #d47616;--color-prettylights-syntax-invalid-illegal-text: #f0f6fc;--color-prettylights-syntax-invalid-illegal-bg: #6c3906;--color-prettylights-syntax-carriage-return-text: #f0f6fc;--color-prettylights-syntax-carriage-return-bg: #914d04;--color-prettylights-syntax-string-regexp: #a5d6ff;--color-prettylights-syntax-markup-list: #f2cc60;--color-prettylights-syntax-markup-heading: #1f6feb;--color-prettylights-syntax-markup-italic: #c9d1d9;--color-prettylights-syntax-markup-bold: #c9d1d9;--color-prettylights-syntax-markup-deleted-text: #ffe2bb;--color-prettylights-syntax-markup-deleted-bg: #4e2906;--color-prettylights-syntax-markup-inserted-text: #cae8ff;--color-prettylights-syntax-markup-inserted-bg: #0c2d6b;--color-prettylights-syntax-markup-changed-text: #ffe2bb;--color-prettylights-syntax-markup-changed-bg: #4e2906;--color-prettylights-syntax-markup-ignored-text: #c9d1d9;--color-prettylights-syntax-markup-ignored-bg: #1158c7;--color-prettylights-syntax-meta-diff-range: #d2a8ff;--color-prettylights-syntax-brackethighlighter-angle: #8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant-other-reference-link: #a5d6ff;--color-codemirror-text: #c9d1d9;--color-codemirror-bg: #0d1117;--color-codemirror-gutters-bg: #0d1117;--color-codemirror-guttermarker-text: #0d1117;--color-codemirror-guttermarker-subtle-text: #6e7681;--color-codemirror-linenumber-text: #8b949e;--color-codemirror-cursor: #c9d1d9;--color-codemirror-selection-bg: rgba(56,139,253,0.4);--color-codemirror-activeline-bg: rgba(110,118,129,0.1);--color-codemirror-matchingbracket-text: #c9d1d9;--color-codemirror-lines-bg: #0d1117;--color-codemirror-syntax-comment: #8b949e;--color-codemirror-syntax-constant: #79c0ff;--color-codemirror-syntax-entity: #d2a8ff;--color-codemirror-syntax-keyword: #ec8e2c;--color-codemirror-syntax-storage: #ec8e2c;--color-codemirror-syntax-string: #a5d6ff;--color-codemirror-syntax-support: #79c0ff;--color-codemirror-syntax-variable: #fdac54;--color-checks-bg: #010409;--color-
/*# sourceMappingURL=dark_colorblind-54192a616339.css.map*/
:root{--h00-size-mobile: 2.5rem;--h0-size-mobile: 2rem;--h1-size-mobile: 1.625rem;--h2-size-mobile: 1.375rem;--h3-size-mobile: 1.125rem;--h00-size: 3rem;--h0-size: 2.5rem;--h1-size: 2rem;--h2-size: 1.5rem;--h3-size: 1.25rem;--h4-size: 1rem;--h5-size: 0.875rem;--h6-size: 0.75rem;--body-font-size: 0.875rem;--font-size-small: 0.75rem}:root,[data-color-mode=light][data-light-theme=light],[data-color-mode=dark][data-dark-theme=light]{/*! */}:root,:root::selection,[data-color-mode=light][data-light-theme=light],[data-color-mode=light][data-light-theme=light]::selection,[data-color-mode=dark][data-dark-theme=light],[data-color-mode=dark][data-dark-theme=light]::selection{--color-canvas-default-transparent: rgba(255,255,255,0);--color-page-header-bg: #f6f8fa;--color-marketing-icon-primary: #218bff;--color-marketing-icon-secondary: #54aeff;--color-diff-blob-addition-num-text: #1F2328;--color-diff-blob-addition-fg: #1F2328;--color-diff-blob-addition-num-bg: #ccffd8;--color-diff-blob-addition-line-bg: #e6ffec;--color-diff-blob-addition-word-bg: #abf2bc;--color-diff-blob-deletion-num-text: #1F2328;--color-diff-blob-deletion-fg: #1F2328;--color-diff-blob-deletion-num-bg: #ffd7d5;--color-diff-blob-deletion-line-bg: #ffebe9;--color-diff-blob-deletion-word-bg: rgba(255,129,130,0.4);--color-diff-blob-hunk-num-bg: rgba(84,174,255,0.4);--color-diff-blob-expander-icon: #656d76;--color-diff-blob-selected-line-highlight-mix-blend-mode: multiply;--color-diffstat-deletion-border: rgba(31,35,40,0.15);--color-diffstat-addition-border: rgba(31,35,40,0.15);--color-diffstat-addition-bg: #1f883d;--color-search-keyword-hl: #fff8c5;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-entity: #8250df;--color-prettylights-syntax-storage-modifier-import: #24292f;--color-prettylights-syntax-entity-tag: #116329;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-variable: #953800;--color-prettylights-syntax-brackethighlighter-unmatched: #82071e;--color-prettylights-syntax-invalid-illegal-text: #f6f8fa;--color-prettylights-syntax-invalid-illegal-bg: #82071e;--color-prettylights-syntax-carriage-return-text: #f6f8fa;--color-prettylights-syntax-carriage-return-bg: #cf222e;--color-prettylights-syntax-string-regexp: #116329;--color-prettylights-syntax-markup-list: #3b2300;--color-prettylights-syntax-markup-heading: #0550ae;--color-prettylights-syntax-markup-italic: #24292f;--color-prettylights-syntax-markup-bold: #24292f;--color-prettylights-syntax-markup-deleted-text: #82071e;--color-prettylights-syntax-markup-deleted-bg: #ffebe9;--color-prettylights-syntax-markup-inserted-text: #116329;--color-prettylights-syntax-markup-inserted-bg: #dafbe1;--color-prettylights-syntax-markup-changed-text: #953800;--color-prettylights-syntax-markup-changed-bg: #ffd8b5;--color-prettylights-syntax-markup-ignored-text: #eaeef2;--color-prettylights-syntax-markup-ignored-bg: #0550ae;--color-prettylights-syntax-meta-diff-range: #8250df;--color-prettylights-syntax-brackethighlighter-angle: #57606a;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant-other-reference-link: #0a3069;--color-codemirror-text: #1F2328;--color-codemirror-bg: #ffffff;--color-codemirror-gutters-bg: #ffffff;--color-codemirror-guttermarker-text: #ffffff;--color-codemirror-guttermarker-subtle-text: #6e7781;--color-codemirror-linenumber-text: #656d76;--color-codemirror-cursor: #1F2328;--color-codemirror-selection-bg: rgba(84,174,255,0.4);--color-codemirror-activeline-bg: rgba(234,238,242,0.5);--color-codemirror-matchingbracket-text: #1F2328;--color-codemirror-lines-bg: #ffffff;--color-codemirror-syntax-comment: #24292f;--color-codemirror-syntax-constant: #0550ae;--color-codemirror-syntax-entity: #8250df;--color-codemirror-syntax-keyword: #cf222e;--color-codemirror-syntax-storage: #cf222e;--color-codemirror-syntax-string: #0a3069;--color-codemirror-syntax-support: #0550ae;--color-codemirror-syntax-variable: #953800;--color-checks-bg: #24
/*# sourceMappingURL=light-57c890c766ae.css.map*/
:root{--h00-size-mobile: 2.5rem;--h0-size-mobile: 2rem;--h1-size-mobile: 1.625rem;--h2-size-mobile: 1.375rem;--h3-size-mobile: 1.125rem;--h00-size: 3rem;--h0-size: 2.5rem;--h1-size: 2rem;--h2-size: 1.5rem;--h3-size: 1.25rem;--h4-size: 1rem;--h5-size: 0.875rem;--h6-size: 0.75rem;--body-font-size: 0.875rem;--font-size-small: 0.75rem}.BorderGrid{display:table;width:100%;margin-top:-16px;margin-bottom:-16px;table-layout:fixed;border-collapse:collapse;border-style:hidden}.BorderGrid .BorderGrid-cell{padding-top:16px;padding-bottom:16px}.BorderGrid--spacious{margin-top:-24px;margin-bottom:-24px}.BorderGrid--spacious .BorderGrid-cell{padding-top:24px;padding-bottom:24px}.BorderGrid-row{display:table-row}.BorderGrid-cell{display:table-cell;border:1px solid var(--color-border-muted)}.blame-commit{-webkit-user-select:none;user-select:none}.blame-commit[data-heat="1"]{border-right:2px solid #f66a0a}.blame-commit[data-heat="2"]{border-right:2px solid rgba(246,106,10,.9)}.blame-commit[data-heat="3"]{border-right:2px solid rgba(246,106,10,.8)}.blame-commit[data-heat="4"]{border-right:2px solid rgba(246,106,10,.7)}.blame-commit[data-heat="5"]{border-right:2px solid rgba(246,106,10,.6)}.blame-commit[data-heat="6"]{border-right:2px solid rgba(246,106,10,.5)}.blame-commit[data-heat="7"]{border-right:2px solid rgba(246,106,10,.4)}.blame-commit[data-heat="8"]{border-right:2px solid rgba(246,106,10,.3)}.blame-commit[data-heat="9"]{border-right:2px solid rgba(246,106,10,.2)}.blame-commit[data-heat="10"]{border-right:2px solid rgba(246,106,10,.1)}.heat[data-heat="1"]{background:#f66a0a}.heat[data-heat="2"]{background:rgba(246,106,10,.9)}.heat[data-heat="3"]{background:rgba(246,106,10,.8)}.heat[data-heat="4"]{background:rgba(246,106,10,.7)}.heat[data-heat="5"]{background:rgba(246,106,10,.6)}.heat[data-heat="6"]{background:rgba(246,106,10,.5)}.heat[data-heat="7"]{background:rgba(246,106,10,.4)}.heat[data-heat="8"]{background:rgba(246,106,10,.3)}.heat[data-heat="9"]{background:rgba(246,106,10,.2)}.heat[data-heat="10"]{background:rgba(246,106,10,.1)}.blame-commit-date{font-size:12px;line-height:25px;flex-shrink:0}.blame-commit-date[data-heat="1"]{color:#c24e00}.blame-commit-date[data-heat="2"]{color:#ac571f}.blame-commit-date[data-heat="3"]{color:#a35b2c}.blame-commit-date[data-heat="4"]{color:#9a5f38}.blame-commit-date[data-heat="5"]{color:#926245}.blame-commit-date[data-heat="6"]{color:#896651}.blame-commit-date[data-heat="7"]{color:#806a5e}.blame-commit-date[data-heat="8"]{color:#776d6a}.blame-commit-date[data-heat="9"]{color:#6e7177}.blame-commit-date[data-heat="10"]{color:#6a737d}.line-age-legend .heat{width:2px;height:10px;margin:2px 1px 0}.blame-breadcrumb .css-truncate-target{max-width:680px}.blame-commit-info{width:450px;height:26px}.blame-commit-content{flex-grow:2;overflow:hidden}.blame-commit-message{text-overflow:ellipsis}.blame-commit-message .message.blank{color:var(--color-fg-muted)}.blob-reblame{min-width:24px;-webkit-user-select:none;user-select:none}.reblame-link{padding-top:2px;color:var(--color-fg-muted);opacity:.3}.blame-hunk g-emoji{font-size:14px !important}.blame-hunk:hover .reblame-link{opacity:1}.blame-container .blame-blob-num,.blame-container .blob-code-inner{padding-top:3px;padding-bottom:3px}.blame-container .blob-code-inner{flex-grow:1}.blame-commit .AvatarStack{margin-top:4px}.hx_details-with-rotating-caret[open]>.btn-link .hx_dropdown-caret-rotatable{border-width:0 4px 4px 4px;border-top-color:transparent;border-bottom-color:var(--color-accent-emphasis)}.branches-tag-list{display:inline;margin-right:8px;margin-left:2px;vertical-align:middle;list-style:none}.branches-tag-list .more-commit-details,.branches-tag-list.open .hidden-text-expander{display:none}.branches-tag-list.open .more-commit-details{display:inline-block}.branches-tag-list li{display:inline-block;padding-left:4px}.branches-tag-list li:first-child{padding-left:0;font-weight:var(--base-text-weight-semibold, 600);color:var(--color-fg-default)}.branches-tag-list li.loading{font-weight:var(--base-text-weight-normal, 400);color:var(--color-fg-muted)}.
/*# sourceMappingURL=code-861ac516856a.css.map*/
:root,[data-color-mode=light][data-light-theme*=light],[data-color-mode=dark][data-dark-theme*=light]{color-scheme:light}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=light]{color-scheme:light}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=light]{color-scheme:light}}[data-color-mode=light][data-light-theme*=dark],[data-color-mode=dark][data-dark-theme*=dark]{color-scheme:dark}@media(prefers-color-scheme: light){[data-color-mode=auto][data-light-theme*=dark]{color-scheme:dark}}@media(prefers-color-scheme: dark){[data-color-mode=auto][data-dark-theme*=dark]{color-scheme:dark}}[data-color-mode]{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default))}@media(forced-colors: active){body{--color-accent-emphasis: Highlight;--color-fg-on-emphasis: LinkText;--fgColor-onEmphasis: LinkText;--fgColor-accent: Highlight}}/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */html{font-size:16px;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}template,[hidden]{display:none !important}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:var(--bgColor-attention-muted, var(--color-attention-subtle));color:var(--fgColor-default, var(--color-fg-default))}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace;font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}button,input,select,textarea{font:inherit;margin:0}optgroup{font-weight:var(--base-text-weight-semibold, 600)}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}*{box-sizing:border-box}input,select,textarea,button{font-family:inherit;font-size:inherit;line-height:inherit}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:var(--body-font-size, 14px);line-height:1.5;color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default))}a{color:var(--fgColor-accent, var(--color-accent-fg));text-decoration:none}a:hover{text-decoration:underline}b,strong{font-weight:var(--base-text-weight-semibold, 600)}fieldset{padding:0;margin:0;border:0}label{font-weight:var(--base-text-weight-semibold, 600)}::placeholder{color:var(--fgColor-muted, var(--color-fg-subtle));opacity:1}hr,.rule{height:0;margin:15px 0;overflow:hidden;background:transparent;border:0;border-bottom:1px solid var(--borderColor-muted, var(--color-border-muted))}hr::before,.rule::before{display:table;content:""}hr::after,.rule::after{display:table;clear:both;content:""}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}button{cursor:pointer;border-radius:0}[hidden][hidden]{display:
/*# sourceMappingURL=primer-ec5937d65264.css.map*/
:root{--h00-size-mobile: 2.5rem;--h0-size-mobile: 2rem;--h1-size-mobile: 1.625rem;--h2-size-mobile: 1.375rem;--h3-size-mobile: 1.125rem;--h00-size: 3rem;--h0-size: 2.5rem;--h1-size: 2rem;--h2-size: 1.5rem;--h3-size: 1.25rem;--h4-size: 1rem;--h5-size: 0.875rem;--h6-size: 0.75rem;--body-font-size: 0.875rem;--font-size-small: 0.75rem}[data-color-mode=light][data-light-theme=dark],[data-color-mode=light][data-light-theme=dark]::selection,[data-color-mode=dark][data-dark-theme=dark],[data-color-mode=dark][data-dark-theme=dark]::selection{--color-canvas-default-transparent: rgba(13,17,23,0);--color-page-header-bg: #0d1117;--color-marketing-icon-primary: #79c0ff;--color-marketing-icon-secondary: #1f6feb;--color-diff-blob-addition-num-text: #e6edf3;--color-diff-blob-addition-fg: #e6edf3;--color-diff-blob-addition-num-bg: rgba(63,185,80,0.3);--color-diff-blob-addition-line-bg: rgba(46,160,67,0.15);--color-diff-blob-addition-word-bg: rgba(46,160,67,0.4);--color-diff-blob-deletion-num-text: #e6edf3;--color-diff-blob-deletion-fg: #e6edf3;--color-diff-blob-deletion-num-bg: rgba(248,81,73,0.3);--color-diff-blob-deletion-line-bg: rgba(248,81,73,0.1);--color-diff-blob-deletion-word-bg: rgba(248,81,73,0.4);--color-diff-blob-hunk-num-bg: rgba(56,139,253,0.4);--color-diff-blob-expander-icon: #7d8590;--color-diff-blob-selected-line-highlight-mix-blend-mode: screen;--color-diffstat-deletion-border: rgba(240,246,252,0.1);--color-diffstat-addition-border: rgba(240,246,252,0.1);--color-diffstat-addition-bg: #3fb950;--color-search-keyword-hl: rgba(210,153,34,0.4);--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-storage-modifier-import: #c9d1d9;--color-prettylights-syntax-entity-tag: #7ee787;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-variable: #ffa657;--color-prettylights-syntax-brackethighlighter-unmatched: #f85149;--color-prettylights-syntax-invalid-illegal-text: #f0f6fc;--color-prettylights-syntax-invalid-illegal-bg: #8e1519;--color-prettylights-syntax-carriage-return-text: #f0f6fc;--color-prettylights-syntax-carriage-return-bg: #b62324;--color-prettylights-syntax-string-regexp: #7ee787;--color-prettylights-syntax-markup-list: #f2cc60;--color-prettylights-syntax-markup-heading: #1f6feb;--color-prettylights-syntax-markup-italic: #c9d1d9;--color-prettylights-syntax-markup-bold: #c9d1d9;--color-prettylights-syntax-markup-deleted-text: #ffdcd7;--color-prettylights-syntax-markup-deleted-bg: #67060c;--color-prettylights-syntax-markup-inserted-text: #aff5b4;--color-prettylights-syntax-markup-inserted-bg: #033a16;--color-prettylights-syntax-markup-changed-text: #ffdfb6;--color-prettylights-syntax-markup-changed-bg: #5a1e02;--color-prettylights-syntax-markup-ignored-text: #c9d1d9;--color-prettylights-syntax-markup-ignored-bg: #1158c7;--color-prettylights-syntax-meta-diff-range: #d2a8ff;--color-prettylights-syntax-brackethighlighter-angle: #8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant-other-reference-link: #a5d6ff;--color-codemirror-text: #e6edf3;--color-codemirror-bg: #0d1117;--color-codemirror-gutters-bg: #0d1117;--color-codemirror-guttermarker-text: #0d1117;--color-codemirror-guttermarker-subtle-text: #6e7681;--color-codemirror-linenumber-text: #7d8590;--color-codemirror-cursor: #e6edf3;--color-codemirror-selection-bg: rgba(56,139,253,0.4);--color-codemirror-activeline-bg: rgba(110,118,129,0.1);--color-codemirror-matchingbracket-text: #e6edf3;--color-codemirror-lines-bg: #0d1117;--color-codemirror-syntax-comment: #8b949e;--color-codemirror-syntax-constant: #79c0ff;--color-codemirror-syntax-entity: #d2a8ff;--color-codemirror-syntax-keyword: #ff7b72;--color-codemirror-syntax-storage: #ff7b72;--color-codemirror-syntax-string: #a5d6ff;--color-codemirror-syntax-support: #79c0ff;--color-codemirror-syntax-variable: #ffa657;--color-checks-bg: #010409;--color-checks-run-border-width: 1px;--color-checks-contai
/*# sourceMappingURL=dark-5c882d6ba95a.css.map*/
:root{--h00-size-mobile: 2.5rem;--h0-size-mobile: 2rem;--h1-size-mobile: 1.625rem;--h2-size-mobile: 1.375rem;--h3-size-mobile: 1.125rem;--h00-size: 3rem;--h0-size: 2.5rem;--h1-size: 2rem;--h2-size: 1.5rem;--h3-size: 1.25rem;--h4-size: 1rem;--h5-size: 0.875rem;--h6-size: 0.75rem;--body-font-size: 0.875rem;--font-size-small: 0.75rem}[data-color-mode=light][data-light-theme=dark_tritanopia],[data-color-mode=light][data-light-theme=dark_tritanopia]::selection,[data-color-mode=dark][data-dark-theme=dark_tritanopia],[data-color-mode=dark][data-dark-theme=dark_tritanopia]::selection{--color-canvas-default-transparent: rgba(13,17,23,0);--color-page-header-bg: #0d1117;--color-marketing-icon-primary: #79c0ff;--color-marketing-icon-secondary: #1f6feb;--color-diff-blob-addition-num-text: #c9d1d9;--color-diff-blob-addition-fg: #c9d1d9;--color-diff-blob-addition-num-bg: rgba(88,166,255,0.3);--color-diff-blob-addition-line-bg: rgba(56,139,253,0.15);--color-diff-blob-addition-word-bg: rgba(56,139,253,0.4);--color-diff-blob-deletion-num-text: #c9d1d9;--color-diff-blob-deletion-fg: #c9d1d9;--color-diff-blob-deletion-num-bg: rgba(248,81,73,0.3);--color-diff-blob-deletion-line-bg: rgba(248,81,73,0.1);--color-diff-blob-deletion-word-bg: rgba(248,81,73,0.4);--color-diff-blob-hunk-num-bg: rgba(56,139,253,0.4);--color-diff-blob-expander-icon: #8b949e;--color-diff-blob-selected-line-highlight-mix-blend-mode: screen;--color-diffstat-deletion-border: rgba(240,246,252,0.1);--color-diffstat-addition-border: rgba(240,246,252,0.1);--color-diffstat-addition-bg: #58a6ff;--color-search-keyword-hl: rgba(210,153,34,0.4);--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-storage-modifier-import: #c9d1d9;--color-prettylights-syntax-entity-tag: #a5d6ff;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-variable: #ffa198;--color-prettylights-syntax-brackethighlighter-unmatched: #f85149;--color-prettylights-syntax-invalid-illegal-text: #f0f6fc;--color-prettylights-syntax-invalid-illegal-bg: #8e1519;--color-prettylights-syntax-carriage-return-text: #f0f6fc;--color-prettylights-syntax-carriage-return-bg: #b62324;--color-prettylights-syntax-string-regexp: #a5d6ff;--color-prettylights-syntax-markup-list: #f2cc60;--color-prettylights-syntax-markup-heading: #1f6feb;--color-prettylights-syntax-markup-italic: #c9d1d9;--color-prettylights-syntax-markup-bold: #c9d1d9;--color-prettylights-syntax-markup-deleted-text: #ffdcd7;--color-prettylights-syntax-markup-deleted-bg: #67060c;--color-prettylights-syntax-markup-inserted-text: #cae8ff;--color-prettylights-syntax-markup-inserted-bg: #0c2d6b;--color-prettylights-syntax-markup-changed-text: #ffdcd7;--color-prettylights-syntax-markup-changed-bg: #67060c;--color-prettylights-syntax-markup-ignored-text: #c9d1d9;--color-prettylights-syntax-markup-ignored-bg: #1158c7;--color-prettylights-syntax-meta-diff-range: #d2a8ff;--color-prettylights-syntax-brackethighlighter-angle: #8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant-other-reference-link: #a5d6ff;--color-codemirror-text: #c9d1d9;--color-codemirror-bg: #0d1117;--color-codemirror-gutters-bg: #0d1117;--color-codemirror-guttermarker-text: #0d1117;--color-codemirror-guttermarker-subtle-text: #6e7681;--color-codemirror-linenumber-text: #8b949e;--color-codemirror-cursor: #c9d1d9;--color-codemirror-selection-bg: rgba(56,139,253,0.4);--color-codemirror-activeline-bg: rgba(110,118,129,0.1);--color-codemirror-matchingbracket-text: #c9d1d9;--color-codemirror-lines-bg: #0d1117;--color-codemirror-syntax-comment: #8b949e;--color-codemirror-syntax-constant: #79c0ff;--color-codemirror-syntax-entity: #d2a8ff;--color-codemirror-syntax-keyword: #ff7b72;--color-codemirror-syntax-storage: #ff7b72;--color-codemirror-syntax-string: #a5d6ff;--color-codemirror-syntax-support: #79c0ff;--color-codemirror-syntax-variable: #ffa198;--color-checks-bg: #010409;--color-che
/*# sourceMappingURL=dark_tritanopia-7443435a2524.css.map*/
:root{--h00-size-mobile: 2.5rem;--h0-size-mobile: 2rem;--h1-size-mobile: 1.625rem;--h2-size-mobile: 1.375rem;--h3-size-mobile: 1.125rem;--h00-size: 3rem;--h0-size: 2.5rem;--h1-size: 2rem;--h2-size: 1.5rem;--h3-size: 1.25rem;--h4-size: 1rem;--h5-size: 0.875rem;--h6-size: 0.75rem;--body-font-size: 0.875rem;--font-size-small: 0.75rem}.color-border-inverse{border-color:var(--color-fg-on-emphasis) !important}.bg-gray-2,.bg-gray-3{background-color:var(--color-neutral-muted) !important}.color-text-white{color:var(--color-scale-white) !important}.border-white-fade{border-color:rgba(255,255,255,.15) !important}.lead{color:var(--color-fg-muted)}.text-emphasized{color:var(--color-fg-default)}.Label.Label--orange{color:var(--color-severe-fg);border-color:var(--color-severe-emphasis)}.Label.Label--purple{color:var(--color-done-fg);border-color:var(--color-done-emphasis)}.Label.Label--pink{color:var(--color-sponsors-fg);border-color:var(--color-sponsors-emphasis)}/*!
* GitHub Light v0.5.0
* Copyright (c) 2012 - 2017 GitHub, Inc.
* Licensed under MIT (https://github.com/primer/github-syntax-theme-generator/blob/master/LICENSE)
*/.pl-c{color:var(--color-prettylights-syntax-comment)}.pl-c1,.pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}.pl-e,.pl-en{color:var(--color-prettylights-syntax-entity)}.pl-smi,.pl-s .pl-s1{color:var(--color-prettylights-syntax-storage-modifier-import)}.pl-ent{color:var(--color-prettylights-syntax-entity-tag)}.pl-k{color:var(--color-prettylights-syntax-keyword)}.pl-s,.pl-pds,.pl-s .pl-pse .pl-s1,.pl-sr,.pl-sr .pl-cce,.pl-sr .pl-sre,.pl-sr .pl-sra{color:var(--color-prettylights-syntax-string)}.pl-v,.pl-smw{color:var(--color-prettylights-syntax-variable)}.pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}.pl-ii{color:var(--color-prettylights-syntax-invalid-illegal-text);background-color:var(--color-prettylights-syntax-invalid-illegal-bg)}.pl-c2{color:var(--color-prettylights-syntax-carriage-return-text);background-color:var(--color-prettylights-syntax-carriage-return-bg)}.pl-c2::before{content:"^M"}.pl-sr .pl-cce{font-weight:bold;color:var(--color-prettylights-syntax-string-regexp)}.pl-ml{color:var(--color-prettylights-syntax-markup-list)}.pl-mh,.pl-mh .pl-en,.pl-ms{font-weight:bold;color:var(--color-prettylights-syntax-markup-heading)}.pl-mi{font-style:italic;color:var(--color-prettylights-syntax-markup-italic)}.pl-mb{font-weight:bold;color:var(--color-prettylights-syntax-markup-bold)}.pl-md{color:var(--color-prettylights-syntax-markup-deleted-text);background-color:var(--color-prettylights-syntax-markup-deleted-bg)}.pl-mi1{color:var(--color-prettylights-syntax-markup-inserted-text);background-color:var(--color-prettylights-syntax-markup-inserted-bg)}.pl-mc{color:var(--color-prettylights-syntax-markup-changed-text);background-color:var(--color-prettylights-syntax-markup-changed-bg)}.pl-mi2{color:var(--color-prettylights-syntax-markup-ignored-text);background-color:var(--color-prettylights-syntax-markup-ignored-bg)}.pl-mdr{font-weight:bold;color:var(--color-prettylights-syntax-meta-diff-range)}.pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}.pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.pl-corl{text-decoration:underline;color:var(--color-prettylights-syntax-constant-other-reference-link)}.CodeMirror{font-family:monospace;height:300px;color:black;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:white}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:black}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid black;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0 !important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20, 255, 20, 0.5);animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:bold}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:blue}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3,.cm-s-default .cm-type{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default
* GitHub Light v0.4.2
* Copyright (c) 2012 - 2017 GitHub, Inc.
* Licensed under MIT (https://github.com/primer/github-syntax-theme-generator/blob/master/LICENSE)
*/.cm-s-github-light.CodeMirror{background:var(--color-codemirror-bg);color:var(--color-codemirror-text)}.cm-s-github-light .CodeMirror-gutters{background:var(--color-codemirror-gutters-bg);border-right-width:0}.cm-s-github-light .CodeMirror-guttermarker{color:var(--color-codemirror-guttermarker-text)}.cm-s-github-light .CodeMirror-guttermarker-subtle{color:var(--color-codemirror-guttermarker-subtle-text)}.cm-s-github-light .CodeMirror-scrollbar-filler,.cm-s-github-light .CodeMirror-gutter-filler{background-color:transparent}.cm-s-github-light .CodeMirror-linenumber{color:var(--color-codemirror-linenumber-text);padding:0 16px 0 16px}.cm-s-github-light .CodeMirror-cursor{border-left:1px solid var(--color-codemirror-cursor)}.cm-s-github-light.CodeMirror-focused .CodeMirror-selected,.cm-s-github-light .CodeMirror-line::selection,.cm-s-github-light .CodeMirror-line>span::selection,.cm-s-github-light .CodeMirror-line>span>span::selection{background:var(--color-codemirror-selection-bg, #d7d4f0)}.cm-s-github-light .CodeMirror-line::-moz-selection,.cm-s-github-light .CodeMirror-line>span::-moz-selection,.cm-s-github-light .CodeMirror-line>span>span::-moz-selection{background:var(--color-codemirror-selection-bg, #d7d4f0)}.cm-s-github-light .CodeMirror-activeline-background{background:var(--color-codemirror-activeline-bg)}.cm-s-github-light .CodeMirror-matchingbracket{text-decoration:underline;color:var(--color-codemirror-matchingbracket-text) !important}.cm-s-github-light .CodeMirror-lines{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;background:var(--color-codemirror-lines-bg);line-height:1.5}.react-code-view-edit .CodeMirror,.react-code-view-edit .CodeMirror-scroll{display:flex;flex-direction:column;flex:1 1 auto}.react-code-view-edit .cm-s-github-light .CodeMirror-lines{line-height:20px;font-family:"ui-monospace","SFMono-Regular","SF Mono",Menlo,Consolas,Liberation Mono,monospace;padding-top:8px}.react-code-view-edit .cm-s-github-light .CodeMirror-line,.react-code-view-edit .cm-s-github-light .CodeMirror-placeholder{padding-left:16px}.cm-s-github-light .cm-comment{color:var(--color-codemirror-syntax-comment)}.cm-s-github-light .cm-constant{color:var(--color-codemirror-syntax-constant)}.cm-s-github-light .cm-entity{font-weight:normal;font-style:normal;text-decoration:none;color:var(--color-codemirror-syntax-entity)}.cm-s-github-light .cm-keyword{font-weight:normal;font-style:normal;text-decoration:none;color:var(--color-codemirror-syntax-keyword)}.cm-s-github-light .cm-storage{color:var(--color-codemirror-syntax-storage)}.cm-s-github-light .cm-string{font-weight:normal;font-style:normal;text-decoration:none;color:var(--color-codemirror-syntax-string)}.cm-s-github-light .cm-support{font-weight:normal;font-style:normal;text-decoration:none;color:var(--color-codemirror-syntax-support)}.cm-s-github-light .cm-variable{font-weight:normal;font-style:normal;text-decoration:none;color:var(--color-codemirror-syntax-variable)}details-dialog{position:fixed;margin:10vh auto;top:0;left:50%;transform:translateX(-50%);z-index:999;max-height:80vh;max-width:90vw;width:448px;overflow:auto}.user-select-contain{-webkit-user-select:contain;user-select:contain}.ajax-pagination-form .ajax-pagination-btn{width:100%;padding:6px;margin-top:20px;font-weight:var(--base-text-weight-semibold, 600);color:var(--color-accent-fg);background:var(--color-canvas-default);border:1px solid var(--color-border-default);border-radius:6px}.ajax-pagination-form .ajax-pagination-btn:hover,.ajax-pagination-form .ajax-pagination-btn:focus{color:var(--color-accent-fg);background-color:var(--color-canvas-subtle)}.ajax-pagination-form.loading .ajax-pagination-btn{text-indent:-3000px;background-color:var(--color-canvas-subtle);background-image:url("/images/spinners/octocat-spinner-16px-EAF2F5.gif");background-repeat:no-repeat;background-position:center center;border-color:var(--color-border-default)}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (-moz-min-device-pixel-ratio: 2),only screen and (min-de
/*# sourceMappingURL=global-4f46e41d728f.css.map*/
</style>
<style>
/* Page tweaks */
.preview-page {
margin-top: 64px;
margin-bottom: 21px;
}
/* User-content tweaks */
.timeline-comment-wrapper > .timeline-comment:after,
.timeline-comment-wrapper > .timeline-comment:before {
content: none;
}
/* User-content overrides */
.discussion-timeline.wide {
width: 920px;
}
</style>
</head>
<body>
<div class="page">
<div id="preview-page" class="preview-page" data-autorefresh-url="">
<main id="js-repo-pjax-container">
<div class="clearfix new-discussion-timeline container-xl px-3 px-md-4 px-lg-5">
<div class="repository-content">
<div class="clearfix">
<div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end">
<div class="Layout-main">
<div id="readme" class="Box md Box--responsive">
<div class="Box-header d-flex border-bottom-0 flex-items-center flex-justify-between color-bg-default rounded-top-2">
<div class="d-flex flex-items-center">
<h2 class="Box-title">
README.md
</h2>
</div>
</div>
<div class="Box-body px-5 pb-5">
<article id="grip-content" class="markdown-body entry-content container-lg">
<h1><a id="user-content-pipeline-gcubedeployer" class="anchor" aria-hidden="true" href="#pipeline-gcubedeployer"><span aria-hidden="true" class="octicon octicon-link"></span></a>Pipeline-gCubeDeployer</h1>
<p>Jenkins Pipeline script to manage one or more gCube components deployment</p>
<h2><a id="user-content-requirements" class="anchor" aria-hidden="true" href="#requirements"><span aria-hidden="true" class="octicon octicon-link"></span></a>Requirements</h2>
<ul>
<li>
<a href="https://jenkins.io/" rel="nofollow">Jenkins</a> ver. 2.164.2 or newer</li>
<li><a href="https://wiki.jenkins.io/display/JENKINS/Pipeline+Plugin" rel="nofollow">Pipeline plugin</a></li>
<li><a href="https://plugins.jenkins.io/pipeline-maven" rel="nofollow">Pipeline: Maven</a></li>
<li><a href="https://plugins.jenkins.io/workflow-basic-steps" rel="nofollow">Pipeline: Basic Steps</a></li>
<li>
<a href="https://plugins.jenkins.io/email-ext" rel="nofollow">Email Extension</a> (to send emails with attachments)</li>
<li>Jenkins agent(s) configured with Ansible ver. 2.9.27 or newer</li>
<li>One or more Jenkins agents labeled as 'ansible'</li>
</ul>
<h2><a id="user-content-expected-usage" class="anchor" aria-hidden="true" href="#expected-usage"><span aria-hidden="true" class="octicon octicon-link"></span></a>Expected usage</h2>
<ul>
<li>ContinuousDeployment(CD): configured as post step build on jenkinsjob</li>
<li>Scheduled by system: In this case all the pending deployments (CD) will be managed by a temporized trigger</li>
<li>Manually from Jenkins GUI</li>
</ul>
<h2><a id="user-content-expected-environment-variables" class="anchor" aria-hidden="true" href="#expected-environment-variables"><span aria-hidden="true" class="octicon octicon-link"></span></a>Expected environment variables</h2>
<p>The variables below must be specified as environment variables on the agent where the deployments will be executed:</p>
<ul>
<li>IS_SCHEDULED (True | False): if true all the deployment requests will be performed periodically as specified by cron</li>
<li>ENVIRONMENT: ( DEV | PREPROD | PROD) Indicates the target environment where will be deployed all the artifacts</li>
<li>DEPLOY_CATEGORY: (Related to release build) one or more Component group on yaml file where search the components to deploy</li>
<li>CD: (Continuous Deployment: True | False) if True the remote deploy will be performed</li>
</ul>
<h2><a id="user-content-references" class="anchor" aria-hidden="true" href="#references"><span aria-hidden="true" class="octicon octicon-link"></span></a>References</h2>
<ul>
<li><a href="https://jenkins.io/doc/book/pipeline/" rel="nofollow">Jenkins Pipeline</a></li>
<li><a href="https://jenkins.io/doc/book/pipeline/syntax/" rel="nofollow">Pipeline Syntax</a></li>
</ul>
<h2><a id="user-content-examples" class="anchor" aria-hidden="true" href="#examples"><span aria-hidden="true" class="octicon octicon-link"></span></a>Examples</h2>
<ul>
<li>When configured as post step build on jenkinsjob, there are some variables to pass as triggered parameters. All the values are dinamically set as shown below:</li>
</ul>
<p>[[images/gCubeDeployer-JenkinsJob.png]]</p>
<ul>
<li>The pipeline can run manually. This option is conceived for debug purpose:</li>
</ul>
<p>[[images/gCubeDeployer-manualRun.png]]</p>
<ul>
<li>Follows a stage view example when the pipeline was scheduled by system, but there were any action to do:</li>
</ul>
<p>[[images/gCubeDeployer-stageview.png]]</p>
<h2><a id="user-content-flow-chart" class="anchor" aria-hidden="true" href="#flow-chart"><span aria-hidden="true" class="octicon octicon-link"></span></a>Flow Chart</h2>
<p>[[images/FlowChartgCubeDeployer.jpeg]]</p>
<h2><a id="user-content-license" class="anchor" aria-hidden="true" href="#license"><span aria-hidden="true" class="octicon octicon-link"></span></a>License</h2>
<p>This project is licensed under the <a href="LICENSE.md">EUPL V.1.1 License</a>.</p>
</article>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
</div>
</div><script>
function showCanonicalImages() {
var images = document.getElementsByTagName('img');
if (!images) {
return;
}
for (var index = 0; index < images.length; index++) {
var image = images[index];
if (image.getAttribute('data-canonical-src') && image.src !== image.getAttribute('data-canonical-src')) {
image.src = image.getAttribute('data-canonical-src');
}
}
}
function scrollToHash() {
if (location.hash && !document.querySelector(':target')) {
var element = document.getElementById('user-content-' + location.hash.slice(1));
if (element) {
element.scrollIntoView();
}
}
}
function autorefreshContent(eventSourceUrl) {
var initialTitle = document.title;
var contentElement = document.getElementById('grip-content');
var source = new EventSource(eventSourceUrl);
var isRendering = false;
source.onmessage = function(ev) {
var msg = JSON.parse(ev.data);
if (msg.updating) {
isRendering = true;
document.title = '(Rendering) ' + document.title;
} else {
isRendering = false;
document.title = initialTitle;
contentElement.innerHTML = msg.content;
showCanonicalImages();
}
}
source.onerror = function(e) {
if (e.readyState === EventSource.CLOSED && isRendering) {
isRendering = false;
document.title = initialTitle;
}
}
}
window.onhashchange = function() {
scrollToHash();
}
window.onload = function() {
scrollToHash();
}
showCanonicalImages();
var autorefreshUrl = document.getElementById('preview-page').getAttribute('data-autorefresh-url');
if (autorefreshUrl) {
autorefreshContent(autorefreshUrl);
}
</script>
</body>
</html>