From 643f4b87e9cecaa2d8f2a57093200660c33c0fea Mon Sep 17 00:00:00 2001 From: Thomas Durieux <5577568+tdurieux@users.noreply.github.com> Date: Wed, 11 Nov 2026 14:10:54 +0100 Subject: [PATCH] feat: let authors leave their bibliography unredacted (#941) (#943) * feat: let owners leave chosen files unredacted (#941) Redacting self-citations in a bibliography reveals which papers are the authors' own. Owners can now pick files whose content is served as written; file names are still redacted. Patterns follow .gitignore rules. The form gets a file picker fed by GitHub's tree API, and the terms box grows with its content and only warns about regex symbols that can stop a term from matching. Co-Authored-By: Claude Opus 5.5 * fix: honour !patterns, keep picked braces literal, preview unredacted README - Patterns now apply in order and the last match wins, as in .gitignore, so "*.bib" then "!private.bib" excludes private.bib instead of preserving every other file. - Picked paths escape glob characters, braces included, with a backslash; "[{]" did not survive brace expansion. - The README preview drops terms when the README is an unredacted file, and refreshes when the list changes. Co-Authored-By: Claude Opus 5.5 * fix: keep rule order when deduplicating unredacted-file patterns Rules apply in order and the last match wins, so dedupe keeps the last copy of a repeated pattern instead of the first. The picker also keeps a plain path in its place when it follows another rule, rather than moving it to the front as a pick. Co-Authored-By: Claude Opus 5.5 * fix: apply unredacted-file rules to folders, as in .gitignore A rule that matches a folder now covers every file inside it, so "*.bib" then "!private" keeps private/refs.bib redacted. A trailing "/" limits a rule to folders. Co-Authored-By: Claude Opus 5.5 * fix: folder unchecks win over broad rules; accept short commit hashes - Unchecking a folder that a broader rule such as "*.bib" still covers appends a "!/folder/" exclusion, so its files really go back to being redacted. - The tree endpoint accepts the 6+ character hashes the commit field allows and resolves them to a full SHA before reading the tree. Co-Authored-By: Claude Opus 5.5 * fix: picker counts folder rules exactly as the server does Rules ending in "/" stay patterns instead of being read as picked files, and the checkboxes now run the saved rule list (picks, then patterns) through the server's matcher, so the dialog cannot show files as redacted that the server leaves unredacted. Co-Authored-By: Claude Opus 5.5 * fix: insert escaped terms literally in "Match as written" String.replace expanded "$&", "$'" and "$1" in the term, so the fix could corrupt the line. Splice by index instead. Co-Authored-By: Claude Opus 5.5 --------- Co-authored-by: Claude Opus 5.5 --- README.md | 2 +- package-lock.json | 1 + package.json | 1 + public/asset-manifest.json | 4 +- public/css/all.min.css | 2 +- public/css/style.css | 31 +++ public/i18n/locale-en.json | 1 + public/llms.txt | 5 +- public/maintenance-openapi.json | 18 ++ public/partials/anonymize.htm | 51 ++++- public/partials/profile.htm | 2 +- public/script/app.js | 195 +++++++++++++++++- public/script/vendor.min.js | 75 ++++--- src/core/Repository.ts | 1 + src/core/anonymize-utils.ts | 16 +- .../anonymizedRepositories.schema.ts | 1 + .../anonymizedRepositories.types.ts | 2 + src/core/preserve-files.ts | 89 ++++++++ src/core/source-file-list.ts | 53 +++++ src/core/term-hints.ts | 48 +++++ src/server/routes/maintenance.ts | 6 + src/server/routes/repository-private.ts | 32 +++ test/frontend-regressions.test.js | 100 +++++++++ test/maintenance-api.test.js | 8 + test/preserve-files.test.js | 133 ++++++++++++ test/source-file-list.test.js | 57 +++++ test/term-hints.test.js | 31 +++ 27 files changed, 916 insertions(+), 49 deletions(-) create mode 100644 src/core/preserve-files.ts create mode 100644 src/core/source-file-list.ts create mode 100644 src/core/term-hints.ts create mode 100644 test/preserve-files.test.js create mode 100644 test/source-file-list.test.js create mode 100644 test/term-hints.test.js diff --git a/README.md b/README.md index d2972b8..eab5835 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ A free public instance is available at **[anonymous.4open.science](https://anony - The GitHub **owner, organization, and repository name** - **File and directory names** -- **File contents** of every extension (Markdown, text, source code, …), replacing a configurable list of terms +- **File contents** of every extension (Markdown, text, source code, …), replacing a configurable list of terms. Files you choose under "Unredacted files" (e.g. `paper/refs.bib`, or a pattern such as `*.bib`) keep their content as written, so redacted self-citations do not single out the authors; their names are still redacted ## Usage diff --git a/package-lock.json b/package-lock.json index 3218deb..8e79863 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,6 +41,7 @@ "marked-katex-extension": "^5.1.13", "mermaid": "^12.2.0", "mime-types": "^3.0.2", + "minimatch": "^11.0.1", "mongoose": "^7.8.13", "node-schedule": "^2.1.2", "parse-github-url": "^1.0.4", diff --git a/package.json b/package.json index 57b6f98..e266f3b 100644 --- a/package.json +++ b/package.json @@ -74,6 +74,7 @@ "marked-katex-extension": "^5.1.13", "mermaid": "^12.2.0", "mime-types": "^3.0.2", + "minimatch": "^11.0.1", "mongoose": "^7.8.13", "node-schedule": "^2.1.2", "parse-github-url": "^1.0.4", diff --git a/public/asset-manifest.json b/public/asset-manifest.json index 064b168..7da30da 100644 --- a/public/asset-manifest.json +++ b/public/asset-manifest.json @@ -1,8 +1,8 @@ { "core.min.js": "core.d23af1c652.min.js", - "vendor.min.js": "vendor.fc4289fc49.min.js", + "vendor.min.js": "vendor.3f99749002.min.js", "mermaid.min.js": "mermaid.a7356d5ed1.min.js", - "all.min.css": "all.e352c264c6.min.css", + "all.min.css": "all.c690a01ace.min.css", "markdown.min.js": "markdown.6c8dfb7b1d.min.js", "pdf.min.js": "pdf.4d9cc6ff49.min.js", "notebook.min.js": "notebook.c3144c18ae.min.js", diff --git a/public/css/all.min.css b/public/css/all.min.css index 9f6a698..b01278c 100644 --- a/public/css/all.min.css +++ b/public/css/all.min.css @@ -6,4 +6,4 @@ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 0%;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}/*! * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\e05e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hive:before{content:"\e07f"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\e065"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\e013"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-innosoft:before{content:"\e080"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\e066"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\e01a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\e068"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-perbyte:before{content:"\e083"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rust:before{content:"\e07a"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\e057"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sink:before{content:"\e06d"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\e070"}.fa-store-slash:before{content:"\e071"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tiktok:before{content:"\e07b"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-uncharted:before{content:"\e084"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\e074"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-watchman-monitoring:before{content:"\e087"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:'Font Awesome 5 Brands';font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:'Font Awesome 5 Brands';font-weight:400}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-regular-400.eot);src:url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.woff) format("woff"),url(../fonts/fa-regular-400.ttf) format("truetype"),url(../fonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:'Font Awesome 5 Free';font-weight:400}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:block;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'Font Awesome 5 Free';font-weight:900}.nb-notebook{line-height:1.5}.nb-stderr,.nb-stdout{white-space:pre-wrap;margin:1em 0;padding:.1em .5em}.nb-stderr{background-color:#faa}.nb-cell+.nb-cell{margin-top:.5em}.nb-output table{border:1px solid #000;border-collapse:collapse}.nb-output th{font-weight:700}.nb-output td,.nb-output th{border:1px solid #000;padding:.25em;text-align:left;vertical-align:middle;border-collapse:collapse}.nb-notebook blockquote{border-left:5px solid #ccc;margin-left:0;padding-left:1em}.nb-cell{position:relative}.nb-raw-cell{white-space:pre-wrap;background-color:#f5f2f0;font-family:Consolas,Monaco,'Andale Mono',monospace;padding:1em;margin:.5em 0}.nb-output{min-height:1em;width:100%;overflow-x:scroll;border-right:1px dotted #ccc}.nb-output img{max-width:100%}.nb-input:before,.nb-output:before{position:absolute;font-family:monospace;color:#999;left:-7.5em;width:7em;text-align:right}.nb-input:before{content:"In [" attr(data-prompt-number) "]:"}.nb-output:before{content:"Out [" attr(data-prompt-number) "]:"}// Fix pandas dataframe formatting div[style="max-height:1000px;max-width:1500px;overflow:auto;"]{max-height:none!important}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,math,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.18.10"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.katex-newline{display:block}.katex .katex-base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .katex-base,.katex .katex-strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .katex-vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .katex-thinbox{display:inline-flex;flex-direction:row;max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .katex-hdashline,.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-rule,.katex .katex-underline .underline-line,.katex .mfrac .frac-line{min-height:1px}.katex .mspace{display:inline-block}.katex .katex-smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.katex-inner,.katex .llap>.katex-inner,.katex .rlap>.katex-inner{position:absolute}.katex .clap>.katex-fix,.katex .llap>.katex-fix,.katex .rlap>.katex-fix{display:inline-block}.katex .llap>.katex-inner{right:0}.katex .clap>.katex-inner,.katex .rlap>.katex-inner{left:0}.katex .clap>.katex-inner>span{margin-left:-50%;margin-right:50%}.katex .katex-rule{border:0 solid;display:inline-block;position:relative}.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .katex-hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.katex-root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .katex-sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .katex-sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .katex-sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .katex-sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .katex-sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .katex-sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .katex-sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .katex-sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .katex-sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .katex-sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .katex-sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .katex-sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .katex-sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .katex-sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .katex-sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .katex-sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .katex-sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .katex-sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .katex-sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .katex-sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .katex-sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .katex-sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .katex-sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .katex-sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .katex-sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .katex-sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .katex-sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .katex-sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .katex-sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .katex-sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .katex-sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .katex-sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .katex-sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .katex-sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .katex-sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .katex-sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .katex-sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .katex-sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .katex-sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .katex-sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .katex-sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .katex-sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .katex-sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .katex-sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .katex-sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .katex-sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .katex-sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .katex-sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .katex-sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .katex-sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .katex-sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .katex-sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .katex-sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .katex-sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .katex-sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .katex-sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .katex-sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .katex-sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .katex-sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .katex-sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .katex-sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .katex-sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .katex-sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .katex-sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .katex-sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .katex-sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .katex-sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .katex-sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .katex-sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .katex-sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .katex-sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .katex-sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .katex-sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .katex-sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .katex-sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .katex-sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .katex-sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .katex-sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .katex-sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .katex-sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .katex-sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .katex-sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .katex-sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .katex-sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .katex-sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .katex-sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .katex-sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .katex-sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .katex-sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .katex-sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .katex-sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .katex-sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .katex-sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .katex-sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .katex-sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .katex-sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .katex-sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .katex-sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .katex-sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .katex-sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .katex-sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .katex-sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .katex-sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .katex-sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .katex-sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .katex-sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .katex-sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .katex-sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .katex-sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .katex-sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .katex-sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .katex-sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .katex-sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .katex-sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .katex-sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .katex-sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .katex-sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .katex-sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .katex-sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .katex-sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .katex-sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .katex-accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .katex-accent .accent-body{position:relative}.katex .katex-accent .accent-body:not(.accent-full){width:0}.katex .katex-overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .katex-stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .katex-stretchy:after,.katex .katex-stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .katex-sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .reflectbox{display:inline-block;transform:scaleX(-1)}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.katex-tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.katex-tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}.mermaid{text-align:center;margin:1em 0;overflow:auto}.mermaid svg{max-width:100%;height:auto}.dark-mode .mermaid{filter:invert(1) hue-rotate(180deg)}.dark-mode .mermaid svg{background:0 0}.dark-mode .mermaid .edgeLabel,.dark-mode .mermaid .nodeLabel{filter:invert(1) hue-rotate(180deg)}.mermaid .node circle,.mermaid .node ellipse,.mermaid .node polygon,.mermaid .node rect{stroke-width:2px}.mermaid .flowchart-link{stroke-width:2px}.mermaid .actor{fill:#f9f9f9;stroke:#333;stroke-width:2px}.mermaid .messageLine0,.mermaid .messageLine1{stroke:#333;stroke-width:1.5px}.mermaid .section0,.mermaid .section1,.mermaid .section2,.mermaid .section3{opacity:.8}.mermaid .pieChart .slice{opacity:.9}.markdown-body .mermaid{background:0 0;border:none;padding:10px}.mermaid .error{color:#d32f2f;font-family:monospace;font-size:12px;padding:10px;border:1px solid #d32f2f;border-radius:4px;background-color:#ffebee}@font-face{font-family:octicons-link;src:url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format('woff')}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.5;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body .pl-c{color:#6a737d}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:#005cc5}.markdown-body .pl-e,.markdown-body .pl-en{color:#6f42c1}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:#24292e}.markdown-body .pl-ent{color:#22863a}.markdown-body .pl-k{color:#d73a49}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:#032f62}.markdown-body .pl-smw,.markdown-body .pl-v{color:#e36209}.markdown-body .pl-bu{color:#b31d28}.markdown-body .pl-ii{color:#fafbfc;background-color:#b31d28}.markdown-body .pl-c2{color:#fafbfc;background-color:#d73a49}.markdown-body .pl-c2::before{content:"^M"}.markdown-body .pl-sr .pl-cce{font-weight:700;color:#22863a}.markdown-body .pl-ml{color:#735c0f}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{font-weight:700;color:#005cc5}.markdown-body .pl-mi{font-style:italic;color:#24292e}.markdown-body .pl-mb{font-weight:700;color:#24292e}.markdown-body .pl-md{color:#b31d28;background-color:#ffeef0}.markdown-body .pl-mi1{color:#22863a;background-color:#f0fff4}.markdown-body .pl-mc{color:#e36209;background-color:#ffebda}.markdown-body .pl-mi2{color:#f6f8fa;background-color:#005cc5}.markdown-body .pl-mdr{font-weight:700;color:#6f42c1}.markdown-body .pl-ba{color:#586069}.markdown-body .pl-sg{color:#959da5}.markdown-body .pl-corl{text-decoration:underline;color:#032f62}.markdown-body .octicon{display:inline-block;vertical-align:text-top;fill:currentColor}.markdown-body a{background-color:transparent;-webkit-text-decoration-skip:objects}.markdown-body a:active,.markdown-body a:hover{outline-width:0}.markdown-body strong{font-weight:inherit}.markdown-body strong{font-weight:bolder}.markdown-body h1{font-size:2em;margin:.67em 0}.markdown-body img{border-style:none}.markdown-body svg:not(:root){overflow:hidden}.markdown-body hr{box-sizing:content-box;height:0;overflow:visible}.markdown-body input{font:inherit;margin:0}.markdown-body input{overflow:visible}.markdown-body [type=checkbox]{box-sizing:border-box;padding:0}.markdown-body *{box-sizing:border-box}.markdown-body input{font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body a{color:#0366d6;text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body strong{font-weight:600}.markdown-body hr{height:0;margin:15px 0;overflow:hidden;background:0 0;border:0;border-bottom:1px solid #dfe2e5}.markdown-body hr::before{display:table;content:""}.markdown-body hr::after{display:table;clear:both;content:""}.markdown-body table{border-spacing:0;border-collapse:collapse}.markdown-body td,.markdown-body th{padding:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:0;margin-bottom:0}.markdown-body h1{font-size:32px;font-weight:600}.markdown-body h2{font-size:24px;font-weight:600}.markdown-body h3{font-size:20px;font-weight:600}.markdown-body h4{font-size:16px;font-weight:600}.markdown-body h5{font-size:14px;font-weight:600}.markdown-body h6{font-size:12px;font-weight:600}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body blockquote{margin:0}.markdown-body ol,.markdown-body ul{padding-left:0;margin-top:0;margin-bottom:0}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code{font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px}.markdown-body .octicon{vertical-align:text-bottom}.markdown-body .pl-0{padding-left:0!important}.markdown-body .pl-1{padding-left:4px!important}.markdown-body .pl-2{padding-left:8px!important}.markdown-body .pl-3{padding-left:16px!important}.markdown-body .pl-4{padding-left:24px!important}.markdown-body .pl-5{padding-left:32px!important}.markdown-body .pl-6{padding-left:40px!important}.markdown-body::before{display:table;content:""}.markdown-body::after{display:table;clear:both;content:""}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:0}.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:solid 1px #c6cbd1;border-bottom-color:#959da5;border-radius:3px;box-shadow:inset 0 -1px 0 #959da5}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1{padding-bottom:.3em;font-size:2em;border-bottom:1px solid #eaecef}.markdown-body h2{padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid #eaecef}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#6a737d}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;overflow:auto}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body code{padding:0;padding-top:.2em;padding-bottom:.2em;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:3px}.markdown-body .full-commit .btn-outline:not(:disabled):hover{color:#005cc5;border-color:#005cc5}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:solid 1px #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px 0 #c6cbd1}.markdown-body :checked+.radio-label{position:relative;z-index:1;border-color:#0366d6}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item+.task-list-item{margin-top:3px}.markdown-body .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}.markdown-body hr{border-bottom-color:#eee}.dark-mode{--canvas-bg-color:#161412;--sidebar-bg-color:#1C1A17;--main-bg-color:#161412;--header-bg-color:#161412;--hover-bg-color:rgba(255, 255, 255, 0.05);--header-color:#FAF9F6;--color:#D6D1C5;--link-color:#7CC7BE;--link-hover-color:#A8DDD6;--border-color:#423D37;--border-soft:#2A2825;--btn-color:#FAF9F6;--input-color:#E6E1D8;--input-bg:#25231F;--primary-bg:#FAF9F6;--primary-hover-bg:#FFFFFF;--primary-color:#1A1815;--primary-active-color:#1A1815;--accent:#7CC7BE;--accent-soft:rgba(124, 199, 190, 0.12);--ink-muted:#A39D92;--ink-faint:#8A857C;--ink-soft:#B5AFA2;--status-ready:#5FB27A;--status-progress:#E0A94A;--status-error:#F08A82;--status-inactive:#8A857C;--status-error-soft:rgba(240, 138, 130, 0.08);--status-error-soft-hover:rgba(240, 138, 130, 0.14);--admin-nav-bg:#1A1918;--admin-nav-active:rgba(124, 199, 190, 0.12);--admin-stat-bg:#25231F;--paper-card:#2C2925;--paper-bg-alt:#211E1B;--highlight:#3A341E;background-color:var(--canvas-bg-color);color:var(--color)}body{--canvas-bg-color:#FAF9F6;--sidebar-bg-color:#FFFFFF;--header-bg-color:#FAF9F6;--header-color:#1A1815;--main-bg-color:#FAF9F6;--hover-bg-color:rgba(26, 24, 21, 0.05);--input-color:#1A1815;--color:#1A1815;--link-color:#1F6A64;--link-hover-color:#17544F;--border-color:#E6E1D8;--border-soft:#EDE9E1;--btn-color:#1A1815;--input-bg:#FFFFFF;--primary-bg:#1A1815;--primary-hover-bg:#000000;--primary-color:#FAF9F6;--primary-active-color:#FAF9F6;--accent:#1F6A64;--accent-soft:#E4F0EE;--ink-muted:#6F6A61;--ink-faint:#8A857C;--ink-soft:#4A4641;--paper-bg-alt:#F3F1EC;--paper-card:#FFFFFF;--highlight:#FFF3C4;--status-ready:#2F7A44;--status-progress:#946512;--status-error:#B42318;--status-inactive:#8A857C;--status-error-soft:rgba(180, 35, 24, 0.04);--status-error-soft-hover:rgba(180, 35, 24, 0.08);--radius-control:6px;--radius-button:8px;--button-height:36px;--button-font-size:14px;--button-line-height:20px;--button-padding-x:13px;--button-compact-height:32px;--radius-surface:10px;--font-serif:'Instrument Serif','Iowan Old Style',Georgia,serif;--font-sans:'Inter',ui-sans-serif,system-ui,-apple-system,sans-serif;--font-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;background-color:var(--canvas-bg-color);color:var(--color);font-family:var(--font-sans);font-size:14px;letter-spacing:-.005em;line-height:1.5}.fadeIn{opacity:1;animation-name:fadeInOpacity;animation-iteration-count:1;animation-timing-function:ease-in;animation-duration:.6s}@keyframes fadeInOpacity{0%{opacity:0}100%{opacity:1}}.btn:active,.btn:focus{box-shadow:none}:focus:not(:focus-visible){outline:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:focus-visible,.dropdown-item:focus-visible,.form-control:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:none}input:active,input:hover{box-shadow:none!important}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:focus,textarea:-webkit-autofill:hover{border-color:var(--border-color);-webkit-text-fill-color:var(--color);-webkit-box-shadow:none;transition:background-color 1000s ease-in-out 0s}.custom-select,.form-control,input:-internal-autofill-selected{color:var(--input-color);background-color:var(--input-bg)!important;border-color:var(--border-color)}.form-control:focus{border-color:var(--border-color)}body,html{position:relative;height:100%;overflow-x:hidden}body{overflow-y:hidden}#app{flex:1 1 auto;min-height:0}.app-header{flex:0 0 auto}@media (min-width:992px){.app-header.is-contained .navbar{padding-left:max(40px,calc((100% - 1140px)/ 2 + 32px))!important;padding-right:max(40px,calc((100% - 1140px)/ 2 + 32px))!important}}.app-view{display:block;flex:1 1 auto;min-height:0;overflow-x:hidden!important;overflow-y:auto!important;max-width:100%}.markdown-body a,a{color:var(--link-color)}.markdown-body a:hover,a:hover{text-decoration:none;color:var(--link-hover-color)}.dropdown-menu a.dropdown-item{color:var(--color)}.dropdown-menu a.dropdown-item:hover{color:var(--color);text-decoration:none}.markdown-body .emoji{height:1.3em;margin:0;vertical-align:-.1em}.navbar.navbar-expand-lg{background:var(--header-bg-color)!important;border-bottom:1px solid var(--border-color);transition:background-color .5s ease;padding:10px max(20px,calc((100vw - 1200px)/ 2));font-family:var(--font-sans)}.navbar-toggler{border:1px solid var(--border-color)!important;color:var(--color)!important;width:44px;height:40px;padding:0!important;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-control)!important}.navbar-toggler .navbar-toggler-icon{width:22px;height:22px}.navbar-toggler .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%231A1815' stroke-width='2' stroke-linecap='round' d='M4 8h22M4 15h22M4 22h22'/%3E%3C/svg%3E")!important}.navbar .navbar-nav{align-items:center}.navbar .nav-link{display:inline-flex;align-items:center;font-size:13px;color:var(--ink-muted)!important;padding:6px 0!important;margin:0 12px;border-bottom:1px solid transparent;letter-spacing:-.005em;line-height:1}.navbar .nav-link:hover{color:var(--color)!important}.navbar .nav-link.active{color:var(--color)!important;border-bottom-color:var(--color)}.navbar .nav-link.nav-icon{padding:0!important;margin:0 8px;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px}.navbar .nav-link .fa,.navbar .nav-link .fab{font-size:15px;line-height:1}.navbar #navbarSupportedContent{align-items:center}.navbar-brand{font-family:var(--font-serif)!important;font-size:20px!important;letter-spacing:-.01em;color:var(--color)!important;padding-right:18px;margin-right:12px;border-right:1px solid var(--border-color)}.navbar-brand em,.navbar-brand i{font-style:italic;font-weight:400}.navbar-dark .navbar-toggler{border-color:var(--border-color);color:var(--color)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%231A1815' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar .btn-signin{display:inline-flex;align-items:center;height:32px;padding:0 14px!important;margin-left:6px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--color)!important;border-radius:var(--radius-control);font-size:13px;font-weight:500;line-height:1}.dark-mode .navbar .btn-signin{border-color:#5a554d;background:0 0}.navbar .btn-signin:hover{background:var(--hover-bg-color);border-color:var(--ink-faint);color:var(--color)!important}.navbar .nav-support{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;order:3;gap:6px;min-height:32px;margin-left:4px;padding:0 10px;border:1px solid transparent;border-radius:var(--radius-control);color:var(--ink-muted);font-size:13px;font-weight:500;text-decoration:none}.navbar .nav-support:hover{background:var(--hover-bg-color);color:var(--color)}.navbar button.nav-link{background:0 0;border:0;cursor:pointer}.navbar .nav-link:focus-visible,.navbar .nav-support:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-control)}.navbar .nav-signin-m{display:none}@media (min-width:992px){.navbar>.nav-support{display:none!important}}.navbar .nav-support-inline{display:inline-flex!important;align-items:center;gap:6px}.navbar .nav-support-inline .ui-icon{width:15px;height:15px}@media (max-width:991px){.navbar .nav-signin-m{display:inline-flex;align-items:center;order:0;height:40px;padding:0 14px;margin-left:0;margin-right:8px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);color:var(--color);font-size:13px;font-weight:500;text-decoration:none}.navbar .nav-support{order:0;width:44px;min-height:44px;margin:0 8px 0 auto;padding:0}.navbar .nav-support-label{display:none}}.navbar .user-chip{display:inline-flex!important;align-items:center;gap:8px;padding:4px 12px 4px 6px!important;margin-left:6px;border:1px solid var(--border-color);border-radius:999px;background:var(--sidebar-bg-color);font-size:13px;color:var(--color)!important}.navbar .user-chip:hover{background:var(--hover-bg-color)}.navbar .user-chip img{width:22px;height:22px}.navbar .user-chip .user-chip-name{color:var(--color);font-weight:500}.navbar .user-chip::after{color:var(--ink-muted)}#navbarSupportedContent{padding-right:0}.generalMessage{display:block;text-align:center;color:var(--header-color)}.rgba-gradient{background:var(--canvas-bg-color);color:var(--color)}.paper-landing{overflow-x:clip}.paper-wrap{width:min(1076px,calc(100% - 64px));margin-left:auto;margin-right:auto;padding-left:0;padding-right:0}.paper-eyebrow{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);font-weight:500}.paper-hero{max-width:1140px;margin:0 auto;padding:40px 32px 0;display:grid;grid-template-columns:.95fr 1.05fr;gap:48px;align-items:center}.paper-hero h1.hero-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.6rem,5.4vw,4.4rem);line-height:1.02;letter-spacing:-.025em;margin:14px 0 0;color:var(--color);text-wrap:balance}.paper-hero h1 .accent{color:var(--accent);font-style:italic}.hero-subtitle{margin-top:18px;font-size:18px;line-height:1.55;color:var(--ink-soft);max-width:30em;text-wrap:pretty}.paper-cta-row{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin-top:26px}.btn-hero{display:inline-flex;align-items:center;font-family:var(--font-sans);border:1px solid var(--color);background:var(--color);color:var(--canvas-bg-color);padding:12px 20px;font-size:14px;font-weight:500;border-radius:var(--radius-control);letter-spacing:-.005em;transition:background .15s,border-color .15s,transform .1s}.btn-hero:hover{background:var(--primary-hover-bg);border-color:var(--primary-hover-bg);color:var(--canvas-bg-color);text-decoration:none;transform:translateY(-1px)}.btn-hero-ghost{background:0 0;border:1px solid var(--border-color);color:var(--color);padding:12px 20px;font-size:14px;font-weight:500;border-radius:var(--radius-control)}.btn-hero-ghost:hover{background:var(--hover-bg-color);border-color:var(--color);color:var(--color)}.paper-link-arrow{font-size:14px;color:var(--ink-soft);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--border-color)}.paper-link-arrow:hover{color:var(--color);text-decoration-color:var(--color)}.paper-reassure{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px;color:var(--ink-muted)}.paper-reassure li{white-space:nowrap}@media (min-width:1100px){.paper-reassure{flex-wrap:nowrap}}.paper-reassure li::before{content:"\2713";color:var(--status-ready);margin-right:7px;font-size:14px;font-weight:600}.paper-frame{border-radius:var(--radius-surface);background:var(--paper-card);border:1px solid var(--border-color);box-shadow:0 24px 60px rgba(26,24,21,.1),0 2px 6px rgba(26,24,21,.04);overflow:hidden}.dark-mode .paper-frame{box-shadow:0 24px 60px rgba(0,0,0,.45)}.paper-frame-bar{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-bottom:1px solid var(--border-soft);background:var(--paper-bg-alt);font-family:var(--font-mono);font-size:11px;color:var(--ink-muted)}.paper-frame-bar .dots{display:flex;gap:5px}.paper-frame-bar .dots i{width:9px;height:9px;border-radius:50%;background:color-mix(in srgb,var(--ink-faint) 45%,transparent)}.paper-frame-bar .url{flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-frame img{display:block;width:100%;height:auto}.paper-hero-shot .paper-frame{width:100%}.hero-mock{display:grid;grid-template-columns:168px 1fr;min-height:360px;font-family:var(--font-sans);text-align:left}.hero-mock-tree{background:var(--paper-bg-alt);border-right:1px solid var(--border-soft);padding:12px 8px}.hero-mock-tree-title{font-size:11px;font-weight:600;color:var(--ink-muted);padding:0 8px 8px}.hero-mock-row{display:flex;align-items:center;gap:7px;height:26px;padding:0 8px;border-radius:var(--radius-control);font-size:12.5px;color:var(--ink-soft);white-space:nowrap}.hero-mock-row svg{width:14px;height:14px;flex-shrink:0;fill:none;stroke:var(--ink-muted);stroke-width:1.2;stroke-linejoin:round}.hero-mock-row.is-active{background:rgba(128,128,128,.15);color:var(--color);font-weight:500}.hero-mock-doc{min-width:0;background:var(--paper-card)}.hero-mock-doc-bar{display:flex;align-items:center;justify-content:space-between;height:40px;padding:0 18px;border-bottom:1px solid var(--border-soft);font-size:13px}.hero-mock-doc-bar span{font-size:12px;color:var(--ink-muted)}.hero-mock-doc-body{padding:18px 22px 22px;font-size:13.5px;line-height:1.6;color:var(--color)}.hero-mock-doc-body p{margin:0 0 10px}.hero-mock-h1{font-size:22px;font-weight:600;letter-spacing:-.01em;padding-bottom:8px;margin-bottom:12px;border-bottom:1px solid var(--border-soft)}.hero-mock-h2{font-size:15px;font-weight:600;margin:16px 0 8px}.hero-mock-doc-body pre{margin:0 0 12px;padding:10px 12px;background:var(--paper-bg-alt);border:1px solid var(--border-soft);border-radius:var(--radius-control);font-family:var(--font-mono);font-size:12px;line-height:1.6;color:var(--color)}.hero-mock .redact{background:var(--accent-soft);color:var(--accent);border-radius:4px;padding:1px 5px;font-family:var(--font-mono);font-size:.88em}@media (max-width:575px){.hero-mock{grid-template-columns:1fr;min-height:0}.hero-mock-tree{display:none}}.paper-proof{margin-top:48px;padding-top:18px;padding-bottom:18px;border-top:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:12px 30px;align-items:center}.paper-proof-venues{display:flex;gap:22px;align-items:center;font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;color:var(--ink-soft)}.paper-proof-venues i{font-style:normal;font-family:var(--font-sans);font-size:14px;color:var(--ink-faint)}.paper-stats{margin-top:40px;padding-top:16px;border-top:1px solid var(--border-color)}.paper-stats-meta-left{display:inline-flex;align-items:center;gap:8px}.paper-stats-meta{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px}.paper-stats-meta-right{display:inline-flex;align-items:center;gap:6px}.paper-stats-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--status-ready)}.paper-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.paper-stat-card{display:flex;flex-direction:column;padding:22px 26px 20px 0;margin-right:26px;border-right:1px solid var(--border-color);min-width:0}.paper-stat-card:last-child{border-right:0;margin-right:0;padding-right:0}.paper-stat-value{font-size:44px;font-weight:500;letter-spacing:-.04em;line-height:1;color:var(--color);font-variant-numeric:tabular-nums}.paper-stat-label{margin-top:6px;font-size:13px;color:var(--ink-soft)}.paper-stat-value.is-pending{color:var(--ink-faint)}.paper-stat-bars{display:block;width:100%;height:34px;margin-top:18px;overflow:visible}.paper-stat-bars rect{fill:color-mix(in srgb,var(--ink-muted) 55%,transparent)}.paper-stat-bars rect.is-latest{fill:var(--accent)}.paper-stat-delta{margin-top:10px;font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.paper-section-head{margin-top:88px;display:grid;grid-template-columns:1fr 1.4fr;gap:40px;align-items:start}.paper-section-head>p{padding-top:34px}@media (max-width:991px){.paper-section-head>p{padding-top:0}}.paper-qa h2,.paper-section-head h2{font-family:var(--font-serif);font-weight:400;font-size:clamp(2rem,4.2vw,3.25rem);line-height:1.05;letter-spacing:-.02em;margin:10px 0 0;color:var(--color);text-wrap:balance}.paper-feature-title em,.paper-qa h2 em,.paper-section-head h2 em{font-style:italic;color:var(--accent)}.paper-section-head p{font-size:15px;color:var(--ink-soft);max-width:32em;margin:0;line-height:1.6}.paper-preview{margin-top:28px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.paper-preview .pane{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);overflow:hidden;min-width:0}.paper-preview .pane-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border-soft)}.paper-preview .pane-label{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);white-space:nowrap}.paper-preview .pane-url{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.paper-preview .pane-body{padding:16px 18px;font-family:var(--font-mono);font-size:13px;line-height:1.9;color:var(--ink-soft)}.paper-preview .pane-body strong{color:var(--color);font-weight:600}.paper-preview .tok{color:var(--ink-faint)}.paper-preview .term{background:color-mix(in srgb,var(--status-error) 9%,transparent);color:inherit;border-radius:4px;padding:0 4px;text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--status-error) 60%,transparent)}.dark-mode .paper-preview .term{background:color-mix(in srgb,var(--status-error) 16%,transparent)}.paper-preview .redact{background:var(--accent-soft);color:var(--accent);border-radius:4px;padding:0 5px}.paper-features{margin-top:28px;padding-top:28px;border-top:1px solid var(--border-color);display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:start}.paper-features-list{display:flex;flex-direction:column}.paper-feature{border-left:2px solid var(--border-soft);padding:16px 0 16px 20px;transition:border-color .2s}.paper-feature.is-on{border-left-color:var(--accent)}.paper-feature-tab{all:unset;display:block;position:relative;width:100%;cursor:pointer;color:inherit;border-radius:4px}.paper-feature:not(.is-on) .paper-feature-tab::after{content:"";position:absolute;right:4px;bottom:12px;width:8px;height:8px;border-right:1.5px solid var(--ink-muted);border-bottom:1.5px solid var(--ink-muted);transform:rotate(45deg)}.paper-feature:not(.is-on) .paper-feature-tab:hover::after{border-color:var(--color)}.paper-feature.is-on .paper-feature-tab::after{content:"";position:absolute;right:4px;bottom:10px;width:8px;height:8px;border-right:1.5px solid var(--color);border-bottom:1.5px solid var(--color);transform:rotate(-135deg)}.paper-feature-tab:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.paper-feature-tab .paper-eyebrow{display:block;margin-bottom:6px}.paper-feature-title{display:block;font-family:var(--font-serif);font-size:24px;line-height:1.15;letter-spacing:-.015em;color:var(--color);transition:color .2s}.paper-feature-title em{color:inherit}.paper-feature-tab:hover .paper-feature-title,.paper-feature.is-on .paper-feature-title{color:var(--color)}.paper-feature.is-on .paper-feature-title em{color:var(--accent)}.paper-feature-more{display:none}.paper-feature.is-on .paper-feature-more{display:block}.paper-feature-more .paper-feature-title-m{display:none}.paper-feature-more p{font-size:15px;color:var(--ink-soft);line-height:1.55;margin:10px 0 12px;max-width:30em}.paper-features-stage{min-width:0}.paper-feature-panel{animation:paper-feature-in .25s ease-out}@keyframes paper-feature-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.paper-feature-panel{animation:none}}.paper-crop{position:relative;height:380px;overflow:hidden;background:var(--paper-card)}.paper-crop img{position:absolute;left:0;top:0;max-width:none;height:auto;display:block}.paper-crop-anonymize img{width:213%;transform:translate(-1.5%,-18%)}.paper-crop-review img{width:213%;transform:translate(0,-6.5%)}.paper-crop-manage img{width:213%;transform:translate(-12.3%,-6.5%)}.paper-qa{margin-top:88px;display:grid;grid-template-columns:1fr 1.4fr;gap:40px;align-items:start}.paper-qa h2{margin-bottom:12px}.paper-qa .q{border-top:1px solid var(--border-color);padding:18px 0}.paper-qa .q:last-child{border-bottom:1px solid var(--border-color)}.paper-qa .q a::after{content:none;display:inline-block;width:7px;height:7px;margin-left:10px;border-right:1.5px solid var(--ink-muted);border-bottom:1.5px solid var(--ink-muted);transform:translateY(-2px) rotate(-45deg);transition:transform .15s,border-color .15s}.paper-qa .q a:hover::after{border-color:var(--accent);transform:translate(3px,-2px) rotate(-45deg)}.paper-qa .q a:hover{text-decoration:underline;text-underline-offset:3px}.paper-qa .q a{display:block;font-weight:500;font-size:15px;color:var(--color);margin-bottom:6px}.paper-qa .q a:hover{color:var(--accent);text-decoration:none}.paper-qa .q p{margin:0;font-size:14px;color:var(--ink-soft);line-height:1.6}@media (max-width:1100px){.paper-hero-shot .paper-frame{width:100%}}@media (max-width:991px){.paper-hero{grid-template-columns:1fr;gap:36px;padding-top:40px}.paper-qa,.paper-section-head{grid-template-columns:1fr;gap:16px}.paper-stats-grid{grid-template-columns:1fr 1fr}.paper-stat-card:nth-child(2n){border-right:0;margin-right:0;padding-right:0}.paper-stat-card:nth-child(-n+2){border-bottom:1px solid var(--border-color)}}@media (max-width:767px){.paper-wrap{width:calc(100% - 40px)}.paper-hero{padding-left:20px;padding-right:20px}.paper-reassure{flex-direction:column;gap:6px}.paper-hero h1.hero-title{font-size:clamp(2.4rem,11vw,3.25rem)}.hero-subtitle{font-size:16px}.paper-cta-row .btn-hero{width:100%;justify-content:center}.paper-proof{margin-top:48px}.paper-stat-card{padding:18px 16px 16px 0;margin-right:16px}.paper-stat-value{font-size:40px}.paper-qa,.paper-section-head{margin-top:72px}.paper-preview{grid-template-columns:1fr}.paper-preview .pane-body{font-size:12px;line-height:1.8}.paper-features{display:flex;flex-wrap:wrap;gap:0;padding-top:0;border-top:0;margin-top:24px}.paper-feature,.paper-features-list,.paper-features-stage{display:contents}.paper-feature-tab{order:1;flex:1 1 0;width:auto;padding:12px 0 10px;border-bottom:2px solid var(--border-color);border-radius:0;text-align:left}.paper-feature.is-on .paper-feature-tab{border-bottom-color:var(--color)}.paper-feature-tab .paper-eyebrow{margin:0;font-size:11px;letter-spacing:.08em}.paper-feature-tab .paper-feature-title{display:none}.paper-feature-panel{order:2;width:100%;margin-top:20px;animation:none}.paper-crop{height:240px}.paper-crop-anonymize img{width:230%;transform:translate(-1.5%,-8%)}.paper-crop-review img{width:240%;transform:translate(-1%,-8%)}.paper-crop-manage img{width:220%;transform:translate(-3%,-9%)}.paper-feature-more{order:3;width:100%}.paper-feature.is-on .paper-feature-more{margin-top:18px}.paper-feature-more .paper-feature-title-m{display:block;font-size:28px;line-height:1.1}.paper-feature-more p{max-width:none}.paper-footer-inner>.paper-footer-brand{grid-column:1/-1}.paper-footer-foot{flex-direction:column;gap:6px}}.dropdown-menu{background-color:var(--paper-card,var(--main-bg-color))!important;color:var(--color)!important;border:1px solid var(--border-color)!important;border-radius:8px!important;box-shadow:0 12px 28px rgba(26,24,21,.08),0 2px 6px rgba(26,24,21,.05)!important;padding:6px!important;font-family:var(--font-sans);font-size:13px;min-width:11rem}.dropdown-menu .dropdown-item{color:var(--color)!important;padding:7px 10px!important;border-radius:5px;font-size:13px}.dropdown-menu .dropdown-item:focus,.dropdown-menu .dropdown-item:hover{background:var(--hover-bg-color)!important;color:var(--color)!important}.dropdown-menu .dropdown-divider{border-top-color:var(--border-color)!important;margin:4px 2px}.dropdown-menu .dropdown-header{color:var(--ink-muted);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.body,.file-content,.markdown-body{background-color:var(--main-bg-color)!important;color:var(--color)!important}.markdown-body table tr{background-color:var(--main-bg-color);border-top:1px solid var(--border-color)}.markdown-body table tr:nth-child(2n){background-color:var(--paper-bg-alt)}.markdown-body table td,.markdown-body table th{border:1px solid var(--border-color)}.file-content{padding:4px 7px;text-align:left;min-height:100%}.file-card{margin:16px 20px 28px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);overflow:clip}.file-card:not(.is-code) .file-card-head{position:sticky;top:0;z-index:2;border-radius:var(--radius-surface) var(--radius-surface) 0 0}.file-card.is-code{display:flex;flex-direction:column;height:calc(100% - 32px);margin-bottom:16px}.file-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:6px 8px 6px 16px;border-bottom:1px solid var(--border-color);background:var(--paper-card)}.dark-mode .file-card-head{background:var(--paper-card)}.file-card-meta{font-size:13px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.file-card-meta .sep{margin:0 8px;color:var(--ink-faint)}.file-card-head .btn{height:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;padding:0 10px}.file-card-head .btn-seg:not(.view-switch){gap:2px;padding-left:8px;margin-left:4px;border-left:1px solid var(--border-color)}.file-card-head .btn-seg:not(.view-switch)>.btn{border:0!important;border-radius:var(--radius-control)!important;margin:0!important;background:0 0!important;color:var(--ink-soft)}.file-card-head .btn-seg:not(.view-switch)>.btn:hover{background:var(--hover-bg-color)!important;color:var(--color)}.file-card-actions>.btn-seg:first-child,.file-card-head .btn-seg:not(.view-switch):has(>.btn:only-child){border-left:0;padding-left:0;margin-left:0}.file-card-head .btn.btn-icon-only{width:32px;padding:0!important;color:var(--ink-soft)}.file-card-head .btn.btn-icon-only:hover{color:var(--color);background:var(--hover-bg-color)!important}.file-card .file-card-body{flex:1 1 auto;min-height:0}.file-card-actions{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;margin-left:auto}.file-card-path{display:none;align-items:center;gap:2px;min-width:0}.file-card-path .paths{overflow:hidden}.file-card-path+.file-card-meta,.file-card-path+.view-switch{margin-left:8px}.status-bar.is-redundant{display:none}.file-card-path{display:inline-flex}@media (max-width:767px){.file-card-head{flex-wrap:wrap;row-gap:0}.file-card-head .file-card-meta{order:3;flex-basis:100%;margin:0 0 6px!important;padding:0!important;border:0!important;font-size:12px;color:var(--ink-muted)}.file-card-head .file-card-meta .meta-extra{display:inline!important}.file-card-head .btn-ghost{color:var(--ink-soft)}.file-card-head .breadcrumb-root,.file-card-head .breadcrumb-root+.breadcrumb-item::before{display:none!important}.file-card-head .breadcrumb-item{padding-left:0}.file-card-head{gap:6px;padding:6px 8px 6px 16px}.file-card-actions{gap:2px}.file-card-actions .btn-seg{margin-left:4px}}@media (min-width:992px){.file-card-path+.file-card-meta{padding-left:14px;border-left:1px solid var(--border-color)}.file-card{margin-top:20px}.file-card.is-code{height:calc(100% - 36px)}}.card-files-btn{margin-right:4px}.leftCol-zip{display:inline-flex;align-items:center;gap:8px;margin-bottom:6px;font-size:13px;font-weight:500;color:var(--ink-soft);text-decoration:none}.leftCol-zip:hover{color:var(--color);text-decoration:none}.leftCol-zip .ui-icon{width:15px;height:15px}.file-card-actions .btn-seg{margin-left:6px}.file-card-head .btn.btn-find,.file-card-head .btn.btn-goto{padding:0 10px;gap:6px;font-weight:400}@media (max-width:1180px){.file-card-head .btn-find .btn-find-label,.file-card-head .btn-goto .btn-find-label{display:none}.file-card-head .btn-find,.file-card-head .btn-goto{width:32px;padding:0!important}}@media (max-width:991px){.file-card-head .btn-find{width:32px;padding:0!important}.file-card-head .btn-find-label{display:none}}@media (max-width:767px){.file-card-head .btn-find{width:40px}}.ace_search{top:8px!important;right:12px!important;left:auto!important;background:var(--paper-card)!important;color:var(--color)!important;border:1px solid var(--border-color)!important;border-radius:var(--radius-surface)!important;box-shadow:0 8px 24px rgba(26,24,21,.14);padding:6px!important;font-family:var(--font-sans)!important;font-size:13px!important}.ace_search_field{background:var(--input-bg)!important;color:var(--input-color)!important;border:1px solid var(--border-color)!important;border-radius:var(--radius-control)!important;margin-right:4px!important;height:28px!important;padding:0 8px!important;font-family:var(--font-sans)!important}.ace_search_field:focus{border-color:var(--ink-muted)!important;outline:0;box-shadow:0 0 0 3px var(--hover-bg-color)}.ace_button,.ace_searchbtn{background:0 0!important;color:var(--ink-soft)!important;border:0!important;border-radius:var(--radius-control)!important;width:28px;height:28px!important;line-height:28px!important}.ace_button:hover,.ace_searchbtn:hover{background:var(--hover-bg-color)!important;color:var(--color)!important}.ace_button.checked{border-color:var(--accent)!important;color:var(--accent)!important}.ace_search_counter{color:var(--ink-soft)!important;font-size:13px;margin:0 8px 0 4px!important;font-variant-numeric:tabular-nums}.ace_search{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;max-width:none!important;width:auto!important}.dark-mode .ace_search{background:var(--paper-card)!important}.ace_search .ace_button.checked{background:var(--accent-soft)!important;color:var(--accent)!important;border-color:var(--accent)!important}.ace_search .ace_button[action=searchInSelection],.ace_search .ace_button[action=toggleReplace],.ace_search .ace_replace_form,.ace_search .ace_searchbtn[action=findAll]{display:none!important}.ace_search_field{width:200px!important}.ace_search_form{display:flex;align-items:center;margin:0!important;float:none!important}.ace_search_options{display:flex!important;align-items:center;gap:4px;margin:0!important;float:none!important;text-align:left!important}.ace_search_options .ace_button{width:28px;height:28px!important;line-height:26px!important;padding:0!important;border-radius:var(--radius-control)!important;font-size:12px!important;text-align:center}.ace_searchbtn_close{position:static!important;margin-left:2px}.ace_editor .ace_marker-layer .ace_selected-word{background:color-mix(in srgb,#e0a94a 30%,transparent)!important;border:0!important;border-radius:2px}.ace_editor.ace-chrome .ace_marker-layer .ace_selection,.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection{background:#f2b544!important;box-shadow:0 0 0 1px #b7791f;border-radius:2px}.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection{background:#b7791f!important;box-shadow:0 0 0 1px #f2b544}.ace_editor .ace_indent-guide-active{background:0 0!important;box-shadow:inset 1px 0 0 var(--border-color)!important}.ace_searchbtn_close{filter:none!important;opacity:.6}.ace_prompt_container{background:var(--paper-card)!important;border:1px solid var(--border-color)!important;border-radius:var(--radius-surface)!important;box-shadow:0 12px 32px rgba(26,24,21,.16)!important}.btn.btn-ghost{background:0 0!important;border-color:transparent!important;color:var(--ink-muted)}.btn.btn-ghost:hover{background:var(--hover-bg-color)!important;color:var(--color)}.btn.btn-ghost.is-on{color:var(--color);background:var(--hover-bg-color)!important;box-shadow:none}.btn.btn-ghost:focus:not(:focus-visible):not(.is-on):not(:hover){background:0 0!important;box-shadow:none}.dark-mode .file-card-head .btn-seg .btn{background:0 0!important;border-color:var(--border-color)!important;color:var(--color);font-weight:500}.file-card-head .btn.btn-find,.file-card-head .btn.btn-goto{color:var(--ink-soft)}.file-card-head>.view-switch{gap:2px;padding:2px;border-radius:calc(var(--radius-control) + 2px);background:var(--hover-bg-color)}.file-card-head>.view-switch .btn{height:28px;min-height:28px;margin:0!important;border:0!important;border-radius:var(--radius-control)!important;background:0 0!important;color:var(--ink-soft);font-weight:500}.file-card-head>.view-switch .btn:hover{color:var(--color)}.file-card-head>.view-switch .btn.is-on{background:var(--paper-card)!important;color:var(--color);box-shadow:0 1px 2px rgba(26,24,21,.1),0 0 0 1px var(--border-color);cursor:default}.dark-mode .file-card-head>.view-switch .btn.is-on{background:#3d3934!important;box-shadow:none}.status-bar .btn.btn-ghost.btn-zip{color:var(--ink-soft)}.copy-path-btn{margin-left:-4px}@media (max-width:767px){.file-card-head .btn,.file-card-head .btn.btn-icon-only{height:40px;min-height:40px}.file-card-head .btn.btn-icon-only{width:40px}.copy-path-btn{display:none!important}}.file-card .ace_editor{height:100%!important}@media (max-width:767px){.file-card{margin:0;border:0;border-radius:0}.file-card.is-code{height:100%}.file-card-head{position:sticky;top:0;z-index:2;padding-left:16px}}.dir-card{margin:20px 20px 0;background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);overflow:hidden}.dir-card+.file-card{margin-top:16px}.dir-card-head{display:flex;align-items:baseline;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-color);background:var(--paper-bg-alt)}.dark-mode .dir-card-head{background:#35312c}.dir-card-title{font-size:14px;font-weight:600;color:var(--color)}.dir-card-sub{font-size:13px;color:var(--ink-muted)}.dir-list{list-style:none;margin:0;padding:4px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:0}.dir-row{display:flex;align-items:center;gap:10px;width:100%;height:34px;padding:0 16px;border:0;background:0 0;font:inherit;font-size:14px;color:var(--color);text-align:left;text-decoration:none;cursor:pointer}.dir-row:hover{background:var(--hover-bg-color);color:var(--color);text-decoration:none}.dir-row:hover .dir-name{text-decoration:underline;text-underline-offset:3px}.dir-row.is-current .dir-name{font-weight:600}.dir-icon{width:16px;height:16px;flex-shrink:0;fill:none;stroke:var(--ink-muted);stroke-width:1.2;stroke-linejoin:round}.dir-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dir-meta{flex-shrink:0;font-size:12px;color:var(--ink-muted);font-variant-numeric:tabular-nums}.dir-list:not(.is-expanded)>li:nth-child(n+9){display:none}.dir-more{display:block;width:100%;height:40px;border:0;border-top:1px solid var(--border-soft);background:0 0;font:inherit;font-size:13px;font-weight:500;color:var(--link-color);cursor:pointer}.dir-more:hover{background:var(--hover-bg-color)}@media (max-width:767px){.dir-card{margin:0;border:0;border-bottom:1px solid var(--border-color);border-radius:0}.dir-list{grid-template-columns:1fr}.dir-card+.file-card{margin-top:0}}.explorer-content .file-card .file-content.markdown-body{max-width:920px;margin:0;min-height:0;padding:28px 40px 48px;background:var(--paper-card)!important;font-family:var(--font-sans);font-size:15px;line-height:1.65}.explorer-content .markdown-body h1,.explorer-content .markdown-body h2{font-family:var(--font-sans);font-weight:600;letter-spacing:-.01em;border-bottom:1px solid var(--border-color);padding-bottom:.3em}.explorer-content .markdown-body h1{font-size:28px;margin-top:0}.explorer-content .markdown-body h2{font-size:21px;margin-top:32px}.explorer-content .markdown-body h3{font-size:17px;font-weight:600;margin-top:24px}.explorer-content .markdown-body h4{font-size:15px;font-weight:600}.explorer-content .markdown-body img{border-radius:var(--radius-control)}.explorer-content .markdown-body p>a:only-child>img,.explorer-content .markdown-body p>img:only-child{border:1px solid var(--border-color)}.explorer-content .markdown-body code,.explorer-content .markdown-body pre{font-family:var(--font-mono);font-size:13px}.explorer-content .markdown-body pre{background:var(--paper-bg-alt)!important;border:1px solid var(--border-soft);border-radius:var(--radius-control);padding:14px 16px;line-height:1.55}.explorer-content .markdown-body :not(pre)>code{background:var(--hover-bg-color);border-radius:4px;padding:.15em .4em;font-size:.86em}@media (max-width:767px){.explorer-content .file-card .file-content.markdown-body{padding:20px 16px 72px;font-size:15px}.explorer-content .markdown-body h1{font-size:24px}}.ace_editor.ace-chrome,.ace_editor.ace-nord-dark{background:var(--paper-card)!important;color:var(--color)!important}.ace_editor.ace-chrome .ace_gutter,.ace_editor.ace-nord-dark .ace_gutter{background:color-mix(in srgb,var(--paper-bg-alt) 55%,var(--paper-card))!important;color:var(--ink-muted)!important;border-right:1px solid var(--border-soft)}.ace_editor .ace_gutter-cell{padding-right:14px;padding-left:12px;font-size:12px}@media (max-width:767px){.ace_editor .ace_gutter-cell{padding-right:8px;padding-left:6px}}.ace_editor .ace_gutter-active-line{background:0 0!important}.ace_editor .ace_indent-guide{background:0 0!important;box-shadow:inset 1px 0 0 var(--border-soft)}.ace_editor .ace_fold-widget{opacity:0;transition:opacity .15s}.ace_editor .ace_fold-widget.ace_closed,.ace_editor .ace_gutter:hover .ace_fold-widget{opacity:.7}.ace_editor .ace_marker-layer .ace_selection{background:var(--accent-soft)!important}.ace-chrome .ace_keyword,.ace-chrome .ace_storage{color:#b4362a}.ace-chrome .ace_string{color:#2b5a3e}.ace-chrome .ace_constant.ace_language,.ace-chrome .ace_constant.ace_numeric,.ace-chrome .ace_support.ace_constant{color:#1f6a64}.ace-chrome .ace_comment{color:#7a746a;font-style:italic}.ace-chrome .ace_entity.ace_name.ace_function,.ace-chrome .ace_support.ace_function{color:#6b45b8}.ace-chrome .ace_variable.ace_parameter{color:#8a5a12;font-style:normal}.ace-chrome .ace_entity.ace_name.ace_tag,.ace-chrome .ace_meta.ace_tag{color:#116329}.ace-chrome .ace_entity.ace_other.ace_attribute-name{color:#0550ae}.ace-chrome .ace_identifier,.ace-chrome .ace_paren,.ace-chrome .ace_punctuation,.ace-chrome .ace_variable{color:var(--color)}.ace-nord-dark .ace_keyword,.ace-nord-dark .ace_storage{color:#f2897d}.ace-nord-dark .ace_string{color:#9dd3a8}.ace-nord-dark .ace_constant.ace_language,.ace-nord-dark .ace_constant.ace_numeric,.ace-nord-dark .ace_support.ace_constant{color:#7cc7be}.ace-nord-dark .ace_comment{color:#9a948a;font-style:italic}.ace-nord-dark .ace_entity.ace_name.ace_function,.ace-nord-dark .ace_support.ace_function{color:#c9a8f5}.ace-nord-dark .ace_variable.ace_parameter{color:#e0a94a;font-style:normal}.ace-nord-dark .ace_entity.ace_name.ace_tag,.ace-nord-dark .ace_meta.ace_tag{color:#7ee787}.ace-nord-dark .ace_entity.ace_other.ace_attribute-name{color:#79c0ff}.ace-nord-dark .ace_identifier,.ace-nord-dark .ace_paren,.ace-nord-dark .ace_punctuation,.ace-nord-dark .ace_variable{color:var(--color)}.badge{font-size:75%;font-weight:500;padding:3px 8px;border-radius:10px;vertical-align:middle}.warning-feedback{width:100%;margin-top:.25rem;font-size:80%;color:#dc8e35}.dropdown-item:focus,.dropdown-item:hover{background-color:var(--hover-bg-color)}.card-header .btn,.card-header .btn:focus,.card-header .btn:hover{border:none!important;background:0 0!important}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--button-height);padding:7px var(--button-padding-x);font:500 var(--button-font-size)/var(--button-line-height) var(--font-sans);vertical-align:middle;max-width:100%;transition:background-color 120ms ease,border-color 120ms ease,color 120ms ease;color:var(--btn-color);border:1px solid var(--border-color);background:var(--paper-card);border-radius:var(--radius-button);white-space:nowrap}.btn:active,.btn:hover{color:var(--btn-color);border:1px solid var(--border-color);background-color:var(--hover-bg-color);box-shadow:none!important}.btn.btn-primary{color:var(--primary-color);background-color:var(--primary-bg)}.btn.btn-primary:active,.btn.btn-primary:hover{color:var(--primary-active-color);background-color:var(--primary-hover-bg)!important}.btn::placeholder{color:var(--color);opacity:1}.white_border{border:1px solid #fff;color:#fff}.leftCol{display:flex;position:relative;flex:0 0 auto;width:100%;z-index:9;flex-direction:column}.card,.leftCol,.sidePanel{background-color:var(--sidebar-bg-color);border:1px solid var(--border-color)}@media (min-width:768px){.leftCol{flex:0 0 var(--sidebar-w,280px);width:var(--sidebar-w,280px);height:100%}}.leftCol-search{padding:10px 12px 0}.tree-search-box{display:flex;align-items:center;gap:8px;background:var(--canvas-bg-color);border:1px solid var(--border-color);border-radius:8px;padding:7px 10px;transition:border-color .15s}.tree-search-box:focus-within{border-color:var(--ink-muted)}.tree-search-icon{font-size:12px;color:var(--ink-muted);flex-shrink:0}.tree-search-input{flex:1;border:none;outline:0;background:0 0;font-family:var(--font-sans);font-size:13px;color:var(--color);min-width:0}.tree-search-input::placeholder{color:var(--ink-muted)}.tree-search-kbd{font-family:var(--font-sans);font-size:11px;color:var(--ink-muted);background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:4px;padding:1px 6px;line-height:1.4;flex-shrink:0}.tree-search-clear{background:0 0;border:none;color:var(--ink-muted);font-size:16px;cursor:pointer;padding:0 2px;line-height:1}.tree-search-clear:hover{color:var(--color)}.leftCol-project-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 4px;gap:8px}.project-name{font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.project-file-count{font-family:var(--font-sans);font-size:12px;color:var(--ink-muted);white-space:nowrap;flex-shrink:0;margin-left:auto}.files{position:relative;display:block;overflow:auto;height:100%;padding:4px 6px}.files ul{list-style:none;margin:0;padding:0}.files li ul{padding-left:8px;margin-left:7px;border-left:1px solid var(--border-color)}.files .folder>ul{display:none}.files .folder.open>ul{display:block}.files .file,.files .folder{position:relative;color:var(--ink-soft);cursor:pointer;word-break:break-all}.files a{display:flex;align-items:center;gap:5px;min-height:26px;padding:2px 8px 2px 4px;font-family:var(--font-sans);font-size:13px;color:var(--ink-soft);border-radius:var(--radius-control);text-decoration:none;line-height:1.5;position:relative}.files a:hover{background:var(--hover-bg-color);color:var(--color);text-decoration:none}.files:focus{outline:0}.files a.tree-focused{background:var(--hover-bg-color);color:var(--color)}.files .file.active>a::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;border-radius:0 2px 2px 0;background:var(--accent)}.files .file.active>a{border-radius:0 var(--radius-control) var(--radius-control) 0;background:rgba(128,128,128,.12);color:var(--color);font-weight:500}.files .file.active>a .tree-icon-file{color:var(--color)}.files .file.active>a .tree-count{color:var(--ink-muted)}.tree-icon-file,.tree-icon-folder{display:inline-block;flex-shrink:0}.tree-icon-folder{width:14px;height:12px;color:var(--ink-muted);opacity:.75}.tree-icon-folder svg{display:block;width:100%;height:100%;fill:currentColor;fill-opacity:0;stroke:currentColor;stroke-width:1.2;stroke-linejoin:round}.files .folder.open>a .tree-icon-folder{color:var(--ink-muted);opacity:1}.files .folder.open>a .tree-icon-folder svg{fill-opacity:.12}.tree-icon-file{width:16px;font-size:14px;text-align:center;color:var(--ink-muted)}.tree-toggle{display:inline-flex;align-items:center;justify-content:center;width:12px;height:14px;flex-shrink:0;opacity:.8}.tree-toggle::after{content:"";display:block;width:6px;height:6px;border-right:1.5px solid var(--ink-muted);border-bottom:1.5px solid var(--ink-muted);transform:translateX(-1px) rotate(-45deg);transition:transform .12s ease}.files .folder.open>a .tree-toggle::after{transform:translateY(-2px) rotate(45deg)}.tree-spacer{display:inline-block;width:12px;flex-shrink:0}.tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files a:not(:hover):not(.tree-focused) .tree-count{opacity:0}.tree-count{transition:opacity .12s;font-family:var(--font-sans);font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink-muted);flex-shrink:0;margin-left:auto;padding-left:8px;opacity:.7}.files .folder>a{color:var(--color)}.files .file::before,.files .folder::before{display:none}.files .folder>a::after{display:none}.tree-search-path{color:var(--ink-muted);font-size:11px}.tree-search-empty{padding:16px 12px;color:var(--ink-muted);font-size:13px;font-family:var(--font-sans);text-align:center}.leftCol{background:var(--paper-bg-alt,#f3f1ec);border:0;border-right:1px solid var(--border-color)}.dark-mode .leftCol{background:var(--paper-bg-alt)}.dark-mode .explorer-content .markdown-body img{filter:brightness(.8)}.dark-mode .hero-mock-tree{background:#1f1d1a}.dark-mode .hero-mock-row.is-active{background:rgba(255,255,255,.1)}.dark-mode .files .file.active>a{background:rgba(255,255,255,.1)}.status-bar{background:var(--canvas-bg-color);border-bottom:1px solid var(--border-color);padding:8px 20px;min-height:48px}.paths .breadcrumb-item,.paths .breadcrumb-item a{font-family:var(--font-sans);font-size:14px;color:var(--ink-muted);letter-spacing:0}.paths .breadcrumb-root a{color:var(--link-color)}.paths .breadcrumb-root a:hover{text-decoration:underline;text-underline-offset:3px}.paths .breadcrumb-item.active,.paths .breadcrumb-item:last-child{color:var(--color);font-family:var(--font-sans);font-size:14px;font-weight:600;letter-spacing:0}.status-files-btn{display:none!important}.leftCol-resizer{display:none}@media (min-width:992px){.leftCol-resizer{display:block;position:absolute;top:0;bottom:0;left:calc(var(--sidebar-w,280px) - 3px);width:6px;cursor:col-resize;z-index:10}.leftCol-resizer:hover,body.is-resizing .leftCol-resizer{background:color-mix(in srgb,var(--accent) 35%,transparent)}body.is-resizing{cursor:col-resize;user-select:none}}.leftCol-hide{display:none;align-items:center;justify-content:center;width:26px;height:26px;margin-right:-6px;border:0;border-radius:var(--radius-control);background:0 0;color:var(--ink-muted);cursor:pointer}.leftCol-hide:hover{background:var(--hover-bg-color);color:var(--color)}.leftCol-hide .ui-icon{width:16px;height:16px}@media (min-width:992px){.leftCol-hide{display:inline-flex}.explorer-page.files-hidden .leftCol{display:none!important}.explorer-page.files-hidden .status-files-btn{display:inline-flex!important}}@media (max-width:991px){.status-files-btn{display:inline-flex!important;flex-shrink:0}.explorer-page .sidebar-toggle{display:none!important}}@media (max-width:767px){.status-bar .btn,.status-bar .btn.btn-icon-only{min-height:40px}.status-bar .btn.btn-icon-only{width:40px}}.dark-mode .status-bar .btn{background:var(--paper-card)}.btn-seg{display:inline-flex}.btn-seg>.btn{border-radius:0;margin:0}.btn-seg>.btn+.btn{margin-left:-1px}.btn-seg>.btn:first-child{border-radius:var(--radius-control) 0 0 var(--radius-control)}.btn-seg>.btn:last-child{border-radius:0 var(--radius-control) var(--radius-control) 0}.btn-seg>.btn:focus-visible,.btn-seg>.btn:hover{position:relative;z-index:1}.status-bar .btn{height:32px;min-height:32px;display:inline-flex;align-items:center;gap:6px}.status-bar .btn.btn-icon-only{padding-left:0;padding-right:0;width:32px;justify-content:center}.status-files-btn{gap:6px}@media (max-width:991px){.status-files-btn{height:40px!important;min-height:40px!important;padding:0 12px;border-radius:var(--radius-control)}}@media (max-width:767px){.file-card.is-code.no-wrap{position:relative}.file-card.is-code.no-wrap::after{content:"";position:absolute;top:46px;right:0;bottom:0;width:44px;pointer-events:none;background:linear-gradient(to right,transparent,var(--paper-card) 85%);z-index:20}.file-card-head .btn-goto{display:none!important}}@media (max-width:575px){.status-bar .btn-zip{display:none!important}.navbar .nav-support{display:none!important}.navbar .nav-signin-m{margin-left:auto}}.ace_editor .ace_gutter-cell{cursor:pointer}.ace_editor .ace_gutter-cell:hover{color:var(--color)}.status-bar .file-meta{flex:0 0 auto;margin-right:auto;font-size:12px;color:var(--ink-muted);white-space:nowrap;font-variant-numeric:tabular-nums}@media (max-width:575px){.status-bar .file-meta{display:none}}.paths .breadcrumb-item+.breadcrumb-item::before{content:'/';color:var(--ink-faint);padding:0 6px 0 3px}.last-update{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);padding:8px 10px;border-top:1px solid var(--border-color);letter-spacing:.02em}.ace_editor{height:100%}.ace_scroller{cursor:default}.status-bar{display:flex;align-items:center;gap:12px;background-color:var(--canvas-bg-color);padding:10px 14px;margin:0;border-bottom:1px solid var(--border-color);border-radius:0;flex-shrink:0}.status-bar-actions{display:flex;align-items:center;margin-left:auto;gap:10px;flex-shrink:0}.status-bar-actions .btn{display:inline-flex;align-items:center;gap:6px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);border-radius:6px;padding:4px 10px;font-size:13px;min-height:30px}.status-bar-actions .btn:hover{background:var(--hover-bg-color);color:var(--color)}.status-bar-actions .btn.btn-active{border-color:currentColor;font-weight:600}.paths{flex:0 1 auto;min-width:0;padding:0;margin:0;background-color:initial;border:none;border-radius:0;align-items:center;overflow-x:auto;white-space:nowrap;flex-wrap:nowrap}.paths::-webkit-scrollbar{display:none}.paths a{color:var(--color)}.paths .breadcrumb-item{padding-left:3px}.paths .breadcrumb-item::before{padding-right:3px}.content{height:100%;overflow:scroll;padding-top:42px;background-color:var(--main-bg-color);text-align:center}.image-content{max-width:100%;max-height:100%;text-align:center;padding:4px}.pdf-viewer{display:flex;flex-direction:column;height:100%;min-height:0;background-color:var(--main-bg-color)}.pdf-toolbar{display:flex;align-items:center;gap:4px;flex:0 0 auto;padding:4px 8px;border-bottom:1px solid var(--border-color,rgba(0,0,0,.12))}.pdf-toolbar-group{display:inline-flex;align-items:center;gap:4px}.pdf-toolbar-right{margin-left:auto}.pdf-toolbar-btn{border:0;background:0 0;color:inherit;padding:4px 8px;border-radius:4px;font-size:13px;line-height:1.2;cursor:pointer}.pdf-toolbar-btn:hover:not(:disabled){background-color:rgba(128,128,128,.18)}.pdf-toolbar-btn:disabled{opacity:.4;cursor:default}.pdf-toolbar-zoom{min-width:52px;font-variant-numeric:tabular-nums}.pdf-toolbar-page{width:3.5em;text-align:right;padding:2px 4px;font-size:13px;color:inherit;background:0 0;border:1px solid var(--border-color,rgba(0,0,0,.2));border-radius:4px}.pdf-toolbar-count{font-size:13px;opacity:.75;font-variant-numeric:tabular-nums}.pdf-pages{flex:1 1 auto;min-height:0;overflow:auto;padding:8px 0}.pdf-viewer-page{margin:0 auto 12px}.pdf-viewer-page canvas{display:block;box-shadow:0 1px 4px rgba(0,0,0,.25)}.pdf-viewer-error{padding:24px;text-align:center;font-weight:700}.html-doc{display:block;height:100%}.html-doc-frame{display:block;width:100%;height:100%;border:0;background-color:#fff}.file-error{font-weight:700;font-size:50px;text-align:center}pdfviewer{display:block;padding:15px}pdfpageviewer{display:block;width:100%;margin-bottom:10px}notebook{display:block;text-align:left;padding:15px}@media (min-width:768px){notebook{padding-left:100px}}.nb-output td,.nb-output th{border:1px solid var(--border-color)!important}.paper-faq{max-width:1140px;margin:0 auto;padding:48px 32px 80px;font-family:var(--font-sans)}.paper-faq-hero{padding-bottom:40px;border-bottom:1px solid var(--border-color);margin-bottom:36px}.paper-faq-eyebrow{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.14em;text-transform:uppercase;margin-bottom:32px}.paper-faq-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.6rem,5.5vw,4.6rem);line-height:1.03;letter-spacing:-.02em;color:var(--color);margin:0 0 22px;max-width:14em}.paper-faq-title em{font-style:italic;color:var(--color)}.paper-faq-lede{color:var(--ink-soft);font-size:18px;line-height:1.55;max-width:38em;margin:0}.paper-faq-lede a{color:var(--link-color);border-bottom:1px solid currentColor}.paper-faq-lede a:hover{color:var(--accent);border-bottom-color:var(--accent)}.paper-faq-body{display:grid;grid-template-columns:220px 1fr;gap:60px;align-items:start}.paper-faq-toc{position:sticky;top:32px;font-size:14px}.paper-faq-toc-head{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.14em;text-transform:uppercase;padding-bottom:10px;margin-bottom:6px;border-bottom:1px solid var(--border-color)}.paper-faq-toc nav{display:flex;flex-direction:column}.paper-faq-toc nav a{color:var(--ink-soft);padding:8px 0 8px 14px;border-left:2px solid transparent;text-decoration:none;margin-left:0}.paper-faq-toc nav a.active,.paper-faq-toc nav a:hover{color:var(--color);border-left-color:var(--color)}.faq-section{min-width:0}.faq-section>div{width:100%}.faq-section h4.faq-cat{font-family:var(--font-serif);font-weight:400;font-size:clamp(1.7rem,2.6vw,2.2rem);letter-spacing:-.015em;color:var(--color);margin:0 0 6px;padding-bottom:14px;border-bottom:1px solid var(--border-color)}.faq-section h4.faq-cat i{display:none}.faq-section .panel-group{margin-bottom:56px}.faq-section .panel-default .panel-title a{display:block;position:relative;padding:22px 0 22px 42px;font-family:var(--font-serif);font-weight:400;font-size:20px;line-height:1.35;letter-spacing:-.005em;color:var(--color);text-decoration:none;cursor:pointer}.faq-section .panel-default .panel-title a:hover{color:var(--accent)}.faq-section .panel-heading{background:0 0;padding:0!important;border:none}.faq-section .panel-default{background:0 0;border:none;border-bottom:1px solid var(--border-soft);border-radius:0;margin-bottom:0!important;box-shadow:none}.faq-section .panel-default .panel-title{margin-bottom:0}.faq-section .panel-default .panel-title a:after{content:"−";position:absolute;left:0;right:auto;top:22px;transform:none;font-family:var(--font-mono);font-size:18px;line-height:1.35;color:var(--ink-muted);float:none;margin:0;font-weight:400}.faq-section .panel-default .panel-title a.collapsed:after{content:"+"}.faq-section .panel-default .panel-body{padding:0 0 22px 42px!important;color:var(--ink-soft);font-size:15px;line-height:1.65;border-top:none;max-width:68ch}.table{color:var(--color)}.dropdown-divider,.table td,.table th,hr{border-color:var(--border-color)}.table.repositories td{word-break:break-word}loc{display:block;position:relative;width:100%;height:5px}loc .lang{float:left;height:100%}.rounded-circle.fa{display:inline-block;font-size:75px;height:140px;width:140px;border:4px solid;line-height:140px;text-align:center}.featurette-divider{margin:4.5rem 0;border-color:var(--border-color)}.featurette-heading{font-family:var(--font-serif);font-weight:400;font-size:2rem;line-height:1.15;letter-spacing:-.02em;margin-bottom:14px;color:var(--color)}.dark-mode .shadow{box-shadow:none}.dark-mode .overflow-auto::-webkit-scrollbar{width:10px}.dark-mode .overflow-auto::-webkit-scrollbar-track{-webkit-box-shadow:none;background:inherit;border-radius:0}.dark-mode .overflow-auto::-webkit-scrollbar-thumb{border-radius:10px;border:1px solid var(--border-color);background-color:var(--hover-bg-color)}.dark-mode .rgba-gradient{background:linear-gradient(135deg,#2a2d4a,#151728)}.section-number{padding-right:10px;font-weight:700;font-style:italic}.org-subscript-child{font-size:85%}.highlighted-line{position:absolute;background:rgba(100,200,100,.5);z-index:20}code,pre{font-family:"Fira Code","Courier New",Courier,monospace;line-height:1.1;color:var(--color)}.diff-file,.diff-index,.diff-lines{background:rgba(172,172,172,.5)}.diff-add{background:rgba(100,200,100,.5)}.diff-remove{background:rgba(200,100,100,.5)}.dashboard-title{font-size:1.375rem;font-weight:600;letter-spacing:-.01em}.quota-row{display:flex;gap:16px;margin-bottom:16px;padding:0}.quota-item{flex:1;min-width:0}.quota-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.quota-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;opacity:.7}.quota-value{font-size:.8125rem;font-weight:500;font-variant-numeric:tabular-nums}.quota-progress{height:6px;border-radius:3px;background:var(--hover-bg-color)}.quota-progress .progress-bar{border-radius:3px}.filter-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:.8125rem;font-weight:500;background:var(--primary-bg);color:var(--primary-color);border-radius:12px;line-height:1.4}.filter-chip-close{display:inline-flex;align-items:center;justify-content:center;background:0 0;border:none;color:inherit;opacity:.7;cursor:pointer;padding:0;min-width:24px;min-height:24px;margin:-6px -6px -6px 0;font-size:1rem;line-height:1;border-radius:999px}.filter-chip-close:hover{opacity:1}.repo-list{list-style:none;padding:0;margin:0}.repo-list-item{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--border-color);gap:12px}.repo-list-item:first-child{border-top:1px solid var(--border-color)}.repo-list-item.repo-inactive{opacity:.6}.repo-list-item-content{flex:1;min-width:0}.repo-list-item-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.repo-name{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--color);word-break:break-word}.repo-name:hover{color:var(--accent)}.repo-source{font-size:.875rem;opacity:.8;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.repo-date{opacity:.7}.repo-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;font-size:.8125rem;opacity:.7}.repo-meta span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.repo-list-item-actions{flex-shrink:0;padding-top:2px;margin-left:14px}.repo-list-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 20px;opacity:.5;font-size:.9375rem;list-style:none;border-bottom:1px solid var(--border-color);border-top:1px solid var(--border-color)}.repo-list-empty i{font-size:1.75rem}.type-badge{display:inline-flex;align-items:center;gap:3px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;padding:2px 8px;border-radius:4px;white-space:nowrap}.type-badge{font-family:var(--font-mono);letter-spacing:.06em;padding:2px 8px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-bg-alt,transparent)}.type-badge.type-pr,.type-badge.type-repo{background:var(--paper-bg-alt);color:var(--ink-muted);border-color:var(--border-color)}.dark-mode .type-badge.type-pr,.dark-mode .type-badge.type-repo{background:rgba(255,255,255,.06);color:var(--ink-muted);border-color:var(--border-color)}.type-badge.type-coauthor{background:rgba(99,102,241,.12);color:#4f46e5;border-color:rgba(99,102,241,.35);margin-left:6px}.dark-mode .type-badge.type-coauthor{background:rgba(129,140,248,.18);color:#7cc7be;border-color:rgba(165,180,252,.45)}.btn-group .btn:not(.btn-primary){background:var(--hover-bg-color)}.anonymize-page{display:flex;flex-direction:column;min-height:0}.anonymize-landing{flex:1 1 0;min-height:min-content;display:flex;align-items:center;justify-content:center;padding:20px}.anonymize-landing-inner{width:100%;max-width:600px}.anonymize-landing-inner h2{font-weight:700}.anonymize-workspace{display:flex;flex-direction:column;flex:1 1 0;min-height:0;background:var(--canvas-bg-color)}.anonymize-topbar{background:var(--paper-card);border-bottom:1px solid var(--border-color);padding:18px 28px;flex:0 0 auto}.anonymize-topbar-inner{max-width:1400px;margin:0 auto}.anonymize-topbar-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.anonymize-topbar-title{margin:4px 0 0;font-size:clamp(1.8rem,3vw,2.4rem)}.anonymize-split{flex:1 1 auto;display:flex;min-height:0}.anonymize-form-col{flex:0 0 auto;width:100%;min-width:0;background:var(--canvas-bg-color);border-right:1px solid var(--border-color);overflow-y:auto}.anonymize-form-col .paper-settings-main{max-width:720px;padding:28px 32px 40px;margin:0}.anonymize-form-col .paper-settings-section:first-child{padding-top:0}.anonymize-form-col .anonymize-submit-bar{position:sticky;bottom:0;background:var(--canvas-bg-color);padding:14px 0 0;border-top:1px solid var(--border-color);margin-top:20px}.anonymize-form-col .anonymize-submit-bar .btn{width:100%;padding:12px 16px;font-size:15px}.anonymize-preview-col{flex:1 1 auto;min-width:0;overflow:auto;background:var(--paper-bg-alt);padding:28px 32px}.anonymize-preview-head{display:flex;align-items:baseline;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border-color);margin-bottom:20px}.anonymize-preview-head .paper-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.anonymize-preview-sub{color:var(--ink-soft);font-size:13px}.anonymize-preview-body{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:28px 32px}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid-3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px}@media (max-width:700px){.form-grid-2,.form-grid-3{grid-template-columns:1fr}}.paper-optional{font-family:var(--font-sans);font-weight:400;color:var(--ink-muted);text-transform:none;letter-spacing:0;font-size:11px;margin-left:6px}.paper-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.paper-plan-card{position:relative;display:block;padding:18px 20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease;margin:0}.paper-plan-card input[type=radio]{position:absolute;opacity:0;pointer-events:none}.paper-plan-card.selected{border-color:var(--color);box-shadow:0 0 0 2px var(--color) inset}.paper-plan-head{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.paper-plan-price{font-family:var(--font-serif);font-size:2rem;color:var(--color);margin:6px 0 4px}.paper-plan-price .paper-plan-per{font-family:var(--font-sans);font-size:12px;color:var(--ink-soft)}.paper-plan-desc{font-size:13px;color:var(--ink-soft)}.paper-plan-desc ul{padding-left:18px;margin:0}.paper-settings-copy{color:var(--ink-soft);font-size:13px;margin:0 0 14px}.anonymize-section-title{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;margin:18px 0 8px 0;padding-bottom:6px;border-bottom:1px solid var(--border-color);opacity:.7}.anonymize-section-title i{margin-right:4px}.anonymize-submit-bar{padding:12px 0 4px 0}.anonymize-submit-bar .btn{font-size:1rem;padding:10px 20px;font-weight:600}.anonymize-page .form-check{padding-top:4px;padding-bottom:4px}.anonymize-page .form-check-label{font-weight:500}.anonymize-preview-col{min-height:0;min-width:0}.pr-diff pre{overflow-x:auto;max-width:100%}@media (min-width:768px){.anonymize-form-col{height:100%;width:520px;flex:0 0 520px}.anonymize-preview-col{height:100%;flex:1}}@media (max-width:767px){.anonymize-workspace{flex:0 0 auto;min-height:0}.anonymize-topbar{padding:14px 16px}.anonymize-topbar-title{font-size:1.5rem;margin-top:2px}.anonymize-split{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.anonymize-form-col{width:100%!important;flex:0 0 auto!important;height:auto!important;border-right:none;border-bottom:1px solid var(--border-color);overflow:visible}.anonymize-form-col .paper-settings-main{padding:18px 16px 24px;max-width:none}.anonymize-form-col .anonymize-submit-bar{position:sticky;bottom:0;margin:20px -16px 0;padding:12px 16px;background:var(--canvas-bg-color);border-top:1px solid var(--border-color);z-index:10}.anonymize-form-col .anonymize-submit-bar .btn{width:100%;padding:12px 16px;font-size:15px}.anonymize-preview-col{width:100%;flex:0 0 auto;height:auto!important;max-height:none;padding:18px 16px 24px;overflow:visible}.anonymize-preview-body{padding:16px;border-radius:8px}.anonymize-preview-body .pr-diff pre,.anonymize-preview-body pre{overflow-x:auto;max-width:100%}.anonymize-landing-inner{padding:16px}}@media (min-width:1280px){.anonymize-form-col{width:620px;flex:0 0 620px}}@media (max-width:767px){.btn{min-height:38px;padding:6px 14px;font-size:14px}.btn-sm{min-height:34px;padding:5px 10px}.navbar .nav-link{padding:8px 12px}.navbar .nav-link .fa,.navbar .nav-link .fab{font-size:24px;line-height:32px}.container.page{padding-left:15px;padding-right:15px;max-width:100%}h1{font-size:1.5rem}h2{font-size:1.375rem}h3{font-size:1.125rem}.repo-list-item{flex-direction:column}.repo-list-item-actions{align-self:flex-start}.quota-row{flex-direction:column;gap:10px;padding:10px 12px}.dropdown-menu{position:absolute;right:0;left:auto}.form-group{margin-bottom:12px}.form-control{font-size:16px}.status-bar{gap:6px;padding:8px 10px}.status-bar .btn{font-size:12px;padding:4px 10px;min-height:32px}.status-bar .paths{font-size:12px;overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;-webkit-overflow-scrolling:touch}.status-bar .paths::-webkit-scrollbar{display:none}.status-bar-actions{flex-shrink:0;gap:4px}#home .display-4{font-size:1.75rem}#home h4.subtext-header{font-size:1rem}.progress:not(.quota-progress){min-width:120px!important}.badge{font-size:70%}.col-2.input-group{width:100%!important;max-width:100%;flex:0 0 100%}.color-text-secondary span{display:inline-block;margin-bottom:2px}.anonymize-landing{align-items:flex-start;padding-top:60px}.anonymize-page .container-fluid>.row{height:auto!important;min-height:100%}.anonymize-form-col{width:100%!important;flex:0 0 100%!important;border-right:none;border-top:1px solid var(--border-color)}.anonymize-preview-col{height:auto!important;max-height:none}.anonymize-section-title{font-size:.8125rem;margin:12px 0 8px 0}.anonymize-submit-bar{position:sticky;bottom:0;background:var(--sidebar-bg-color);padding:10px 0;margin:0 -12px;padding-left:12px;padding-right:12px;border-top:1px solid var(--border-color);z-index:10}.anonymize-submit-bar .btn{font-size:1rem;padding:12px 20px}.anonymize-page .form-check{padding-top:6px;padding-bottom:6px;min-height:36px}.anonymize-page .form-check-label{font-size:.9375rem}.anonymize-page .card-body{padding:12px}.pr-title{font-size:1.125rem}.pr-diff pre{font-size:.75rem}.pr-comment .mb-1 h5{font-size:1rem}.nav-tabs .nav-link{padding:8px 12px;font-size:.875rem}}@media (min-width:768px) and (max-width:991px){.container.page{max-width:100%;padding-left:15px;padding-right:15px}.leftCol{flex:0 0 250px;width:250px}}.explorer-page{display:flex;height:100%;width:100%;background:var(--canvas-bg-color);position:relative}.explorer-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--canvas-bg-color)}.explorer-content{flex:1 1 auto;min-height:0;width:100%;overflow:auto}.leftCol-close,.leftCol-head{display:none}.leftCol-body{flex:1 1 auto;min-height:0;overflow:auto}.leftCol-foot{padding:8px 12px;border-top:1px solid var(--border-color);background:var(--paper-bg-alt)}.leftCol-foot .last-update{display:block;border-top:none;padding:0;font-family:var(--font-sans);font-size:13px;font-weight:400;letter-spacing:0;line-height:1.5;color:var(--ink-muted)}.leftCol-foot{padding:10px 14px}.leftCol-backdrop{display:none}.paper-inline-warning{display:flex;align-items:flex-start;gap:8px;margin:8px;padding:10px 12px;background:rgba(138,107,30,.08);border:1px solid rgba(138,107,30,.35);border-radius:8px;color:var(--color);font-size:13px;line-height:1.4}.paper-inline-warning i{color:var(--status-progress);margin-top:2px;flex-shrink:0}.dark-mode .paper-inline-warning i{color:var(--status-progress)}@media (min-width:768px){.leftCol-body{padding:8px 4px}}.sidebar-toggle{display:none;align-items:center;gap:8px;position:fixed;bottom:18px;right:18px;z-index:1100;padding:10px 14px;background:var(--color);color:var(--canvas-bg-color);border:1px solid var(--color);border-radius:999px;font-family:var(--font-sans);font-size:13px;font-weight:500;box-shadow:0 6px 20px rgba(0,0,0,.15);cursor:pointer;outline:0}.sidebar-toggle:hover{background:var(--primary-hover-bg)}.sidebar-toggle:focus{outline:0}.sidebar-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width:991px){.sidebar-toggle{display:inline-flex}.leftCol{position:fixed;top:0;left:0;bottom:0;width:min(86vw,340px);max-width:340px;z-index:1200;border:none;border-right:1px solid var(--border-color);transform:translateX(0);transition:transform .22s ease;box-shadow:4px 0 24px rgba(0,0,0,.18);background:var(--sidebar-bg-color)}.leftCol.collapsed{transform:translateX(-105%);box-shadow:none;pointer-events:none}.leftCol-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border-color);background:var(--paper-bg-alt)}.leftCol-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.leftCol-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:0 0;border:1px solid var(--border-color);border-radius:8px;color:var(--ink-muted);cursor:pointer}.leftCol-close:hover{color:var(--color);border-color:var(--color)}.leftCol-foot{display:block}.leftCol-body{padding:4px 0}.leftCol-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.32);z-index:1150;backdrop-filter:blur(2px)}.dark-mode .leftCol-backdrop{background:rgba(0,0,0,.5)}}.admin-nav{display:flex;gap:4px;padding:4px;margin:8px 0 20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;flex-wrap:wrap}.admin-nav a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:7px;color:var(--ink-muted);text-decoration:none;font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;transition:background-color .15s,color .15s;white-space:nowrap}.admin-nav a:hover{background:var(--paper-bg-alt);color:var(--color)}.admin-nav a.active{background:var(--color);color:var(--paper-card)}.admin-nav a i{font-size:12px;width:14px;text-align:center}@media (max-width:767px){.admin-nav{flex-direction:column}.admin-nav a{justify-content:flex-start}}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:16px}.admin-stat-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:8px;padding:10px 12px}.admin-stat-card .stat-value{font-family:var(--font-serif);font-size:1.375rem;font-weight:400;line-height:1.1;color:var(--color)}.admin-stat-card .stat-label{font-family:var(--font-mono);font-size:10px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:4px}.admin-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0 12px}.admin-toolbar .form-control{max-width:320px}@media (max-width:767px){.admin-toolbar .form-control{max-width:100%;width:100%}}.pagination-compact{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap;font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.pagination-compact input{width:60px;text-align:center;flex-shrink:0}.pagination-compact .btn{padding:4px 10px;min-height:34px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);flex-shrink:0}.pagination-compact>span{white-space:nowrap}.admin-list-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-color)}.admin-list-item:last-child{border-bottom:none}.admin-list-item .item-main{flex:1;min-width:0}.admin-list-item .item-title{font-size:1rem;font-weight:600;margin-bottom:4px;word-break:break-word}.admin-list-item .item-meta{font-size:.875rem;opacity:.8}.admin-list-item .item-meta span{margin-right:12px;display:inline-block;margin-bottom:2px}.admin-list-item .item-actions{flex-shrink:0}@media (max-width:767px){.admin-list-item{flex-direction:column;gap:8px}.admin-list-item .item-actions{align-self:flex-start}}.status-badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.3px;vertical-align:middle}.status-badge{font-family:var(--font-sans);font-weight:500;letter-spacing:.02em;border:1px solid transparent;text-transform:none;font-size:12px;padding:1px 9px 2px;border-radius:999px}.status-badge.status-ready{background:#e8f3ec;color:#2f7a44;border-color:#cfe6d6}.status-badge.status-error{background:#fbe7e7;color:#b42318;border-color:#f3c7c7}.status-badge.status-download,.status-badge.status-preparing{background:#e4f0ee;color:#1f6a64;border-color:#d4d8fa}.status-badge.status-expired,.status-badge.status-expiring,.status-badge.status-removed,.status-badge.status-removing{background:var(--paper-bg-alt);color:var(--ink-muted);border-color:var(--border-color)}.status-badge.status-active{background:#e8f3ec;color:#2f7a44;border-color:#cfe6d6}.queue-job-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 18px;margin-bottom:10px}.queue-job-card .job-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;flex-wrap:wrap;gap:8px}.queue-job-card .job-id{font-family:var(--font-mono);font-size:.9375rem;color:var(--color);word-break:break-all;display:flex;align-items:center;gap:10px}.queue-job-card .job-timestamps{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);display:flex;flex-wrap:wrap;gap:14px}.queue-job-card .job-actions{display:flex;gap:8px;margin-top:10px}.queue-job-card .job-actions .btn{font-size:12px;padding:4px 12px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}.admin-section-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:24px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.admin-section-header h2{margin:0;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em}.admin-section-header h2 i{margin-right:6px;color:var(--ink-muted)}.admin-section-header .section-count{background:var(--paper-bg-alt);color:var(--ink-muted);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;padding:1px 10px;border-radius:999px}.user-detail-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:22px;margin-bottom:24px}.user-detail-card .user-header{display:flex;align-items:center;gap:16px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--border-color);flex-wrap:wrap}.user-detail-card .user-header img{border-radius:50%}.user-detail-card .user-header h2{margin:0;font-family:var(--font-serif);font-weight:400;font-size:1.5rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.user-detail-grid{display:grid;grid-template-columns:160px 1fr;gap:10px 20px;font-size:.9375rem}.user-detail-grid .detail-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);white-space:nowrap;padding-top:2px}.user-detail-grid .detail-value{word-break:break-all;color:var(--color)}@media (max-width:767px){.user-detail-grid{grid-template-columns:1fr}.user-detail-grid .detail-label{margin-top:8px;border-top:1px solid var(--border-color);padding-top:8px}.user-detail-grid .detail-label:first-child{border-top:none;margin-top:0;padding-top:0}}.paper-empty{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;padding:40px 24px}.paper-empty-inner{max-width:560px;text-align:left}.paper-empty-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.02;letter-spacing:-.025em;margin:18px 0 20px;color:var(--color)}.paper-empty-title em{color:var(--accent);font-style:italic}.paper-empty-lede{font-size:18px;line-height:1.55;color:var(--ink-soft);text-wrap:pretty}.paper-empty-cta{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap}.paper-page{max-width:1100px;margin:0 auto;padding:32px 32px 80px}@media (max-width:991px){.paper-page,.paper-page.container,.paper-page.container-fluid{padding:20px 18px 60px!important}.paper-page .row{margin-left:0;margin-right:0}.paper-page .row>.w-100,.paper-page .row>[class*=col]{padding-left:0;padding-right:0}.navbar.navbar-expand-lg{padding:10px 18px!important}.navbar .navbar-collapse{margin:10px -18px 0;padding:12px 18px 16px;border-top:1px solid var(--border-color);background:var(--header-bg-color)}.navbar .navbar-nav{align-items:stretch!important;gap:2px}.navbar .navbar-nav .nav-item,.navbar .navbar-nav .nav-link{width:100%}.navbar .nav-link{display:flex!important;align-items:center;justify-content:flex-start;margin:0!important;padding:12px 4px!important;border-bottom:1px solid var(--border-color)!important;border-radius:0;font-size:14px;line-height:1.2;gap:0;min-height:44px;box-sizing:border-box}.navbar .nav-link:not(.btn-signin):not(.user-chip){color:var(--color)!important}.navbar .nav-link .fa,.navbar .nav-link .fab,.navbar .nav-link .fas,.navbar .nav-link i{display:inline-flex!important;align-items:center;justify-content:center;width:28px;flex-shrink:0;font-size:16px;line-height:1;margin:0 10px 0 0!important}.navbar .navbar-nav .nav-item:last-child .nav-link,.navbar .navbar-nav>.nav-link:last-child{border-bottom-color:transparent!important}.navbar .nav-link.active{color:var(--color)!important;border-bottom-color:var(--border-color)!important}.navbar .nav-item>.nav-link:not(.btn-signin):not(.user-chip)::before{content:'';display:inline-block;width:28px;margin-right:10px;flex-shrink:0}.navbar .nav-link.nav-icon::before,.navbar .nav-link:has(>i)::before{display:none!important}.navbar .nav-link.nav-icon{width:100%!important;height:auto!important;justify-content:flex-start!important;padding:12px 4px!important}.navbar .nav-link.nav-icon::after{content:attr(title);font-family:var(--font-sans);font-size:14px;color:var(--color)}.navbar .btn-signin{display:inline-flex!important;width:auto!important;align-self:flex-start;justify-content:center;height:40px;padding:0 18px!important;margin:14px 0 0!important;border-radius:8px;border-bottom:none!important}.navbar .btn-signin i{margin:0 8px 0 0!important;width:auto!important}.navbar .user-chip-wrap{width:100%}.navbar .user-chip{display:flex!important;width:100%;margin:0!important;padding:10px 4px!important;background:0 0!important;border:none!important;border-bottom:1px solid var(--border-color)!important;border-radius:0!important;justify-content:flex-start;gap:0;min-height:44px}.navbar .user-chip::before{display:none!important}.navbar .user-chip img{width:28px!important;height:28px!important;margin-right:10px!important;flex-shrink:0}.navbar .user-chip .user-chip-name{font-size:14px;font-weight:500;color:var(--color)!important}.navbar .user-chip.dropdown-toggle::after{margin-left:auto;color:var(--ink-muted)}.navbar .user-chip-wrap .dropdown-menu{position:static!important;float:none;width:100%;margin:0!important;padding:0!important;background:0 0!important;border:none!important;box-shadow:none!important;transform:none!important}.navbar .user-chip-wrap .dropdown-menu .dropdown-item{padding:10px 4px 10px 42px!important;font-size:14px;color:var(--ink-muted)!important;background:0 0!important;border-bottom:1px solid var(--border-color);text-align:left!important}.navbar .user-chip-wrap .dropdown-menu .dropdown-item:last-child{border-bottom:none}.navbar .user-chip-wrap .dropdown-divider{display:none}.navbar-brand{border-right:none!important;padding-right:0!important;margin-right:0!important}.dark-mode .navbar .navbar-collapse{background:var(--header-bg-color);border-top-color:var(--border-color)}.dark-mode .navbar .nav-link{border-bottom-color:var(--border-color)!important}.dark-mode .navbar-toggler .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' d='M4 8h22M4 15h22M4 22h22'/%3E%3C/svg%3E")!important}}.status-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--paper-bg-alt);border:1px solid var(--border-color);color:var(--ink-soft);font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.paper-progress{position:relative;height:auto;background:0 0;margin:18px 0 8px}.paper-progress::before{content:"";display:block;height:8px;background:var(--paper-bg-alt);border-radius:999px}.paper-progress .paper-progress-bar{position:absolute;top:0;left:0;height:8px;background:var(--color);border-radius:999px;transition:width .4s ease;min-width:4px}.paper-progress .paper-progress-label{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}.paper-progress .paper-progress-pct{color:var(--color)}.paper-progress.paper-progress-ready .paper-progress-bar{background:var(--color)}.paper-error-card{margin-top:18px;padding:20px 22px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-left:3px solid var(--status-error);border-radius:10px;color:var(--color)}.dark-mode .paper-error-card{border-left-color:var(--status-error)}.paper-ratelimit-card{margin-top:18px;padding:20px 22px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-left:3px solid var(--status-progress);border-radius:10px;color:var(--color)}.dark-mode .paper-ratelimit-card{border-left-color:var(--status-progress)}.paper-ratelimit-head{display:flex;align-items:flex-start;gap:14px}.paper-ratelimit-head>i{font-size:18px;color:var(--status-progress);margin-top:4px;flex-shrink:0}.dark-mode .paper-ratelimit-head>i{color:var(--status-progress)}.paper-ratelimit-card strong{color:var(--color)}.paper-ratelimit-card{text-align:left;border-left-color:var(--status-progress)}.dark-mode .paper-ratelimit-card{border-left-color:var(--status-progress)}.paper-ratelimit-head>.ui-icon{width:18px;height:18px;margin-top:3px;flex-shrink:0;color:var(--status-progress)}.paper-ratelimit-card .paper-error-title{font-family:var(--font-sans);font-size:17px;font-weight:600}.paper-ratelimit-card .paper-error-msg{font-family:var(--font-sans);white-space:normal;margin-left:32px}.paper-ratelimit-card .paper-error-eyebrow{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.status-pill-ratelimit{border-color:var(--status-progress);color:var(--status-progress)}.dark-mode .status-pill-ratelimit{border-color:var(--status-progress);color:var(--status-progress)}.status-ratelimit{background:var(--status-progress)}.dark-mode .status-ratelimit{background:var(--status-progress)}.paper-error-head{display:flex;align-items:flex-start;gap:14px}.paper-error-head>i{font-size:18px;color:var(--status-error);margin-top:4px;flex-shrink:0}.dark-mode .paper-error-head>i{color:var(--status-error)}.paper-error-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.paper-error-title{font-family:var(--font-serif);font-size:1.375rem;line-height:1.2;margin-top:2px;color:var(--color)}.paper-error-msg{margin:12px 0 0;font-size:14px;line-height:1.55;color:var(--ink-soft);font-family:var(--font-mono);word-break:break-word;white-space:pre-wrap}.paper-error-hints{margin:14px 0 0;padding-left:18px;color:var(--ink-soft);font-size:14px;line-height:1.6}.paper-error-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.paper-detail-grid{display:grid;grid-template-columns:160px 1fr;gap:10px 20px;margin-top:18px;font-size:.9375rem}.paper-detail-grid .detail-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);white-space:nowrap;padding-top:2px}.paper-detail-grid .detail-value{word-break:break-all;color:var(--color)}.paper-detail-grid .detail-value a{color:var(--color);border-bottom:1px solid var(--border-color)}.paper-detail-grid .detail-value a:hover{border-bottom-color:var(--color)}@media (max-width:700px){.paper-detail-grid{grid-template-columns:1fr;gap:4px 0}.paper-detail-grid .detail-label{padding-top:8px}}.paper-support-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:18px 0 28px}.paper-support-card{display:flex;flex-direction:column;gap:10px;padding:20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;color:var(--color);text-decoration:none;transition:border-color .15s ease,transform .15s ease}.paper-support-card:hover{border-color:var(--color);text-decoration:none;color:var(--color)}.paper-support-card .paper-support-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);display:flex;align-items:center;gap:8px}.paper-support-card p{margin:0;font-size:14px;line-height:1.55;color:var(--ink-soft)}.paper-support-card .paper-support-cta{margin-top:auto;font-size:13px;font-weight:500;color:var(--color);display:inline-flex;align-items:center;gap:6px}.paper-support-card:hover .paper-support-cta i{transform:translateX(2px)}.paper-support-card .paper-support-cta i{transition:transform .15s ease}.pr-page{min-height:100%;background:var(--canvas-bg-color)}.pr-page-inner{padding-top:24px;padding-bottom:60px}.pr-header{margin:6px 0 18px}.pr-title{margin:4px 0 10px;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.15;word-break:break-word}.pr-header-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.pr-header-meta .pr-meta-item{display:inline-flex;align-items:center;gap:6px}.pr-header-meta .pr-meta-item i{color:var(--ink-muted)}.pr-body-card{margin:18px 0 24px;padding:20px 22px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px}.pr-body-card .paper-section-eyebrow{margin-bottom:12px}.paper-tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--border-color);margin:18px 0 0}.paper-tabs .paper-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:0 0;border:0;border-bottom:2px solid transparent;font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--ink-muted);cursor:pointer;transition:color .15s ease,border-color .15s ease;margin-bottom:-1px}.paper-tabs .paper-tab:hover{color:var(--color)}.paper-tabs .paper-tab.active{color:var(--color);border-bottom-color:var(--color)}.paper-tabs .paper-tab i{color:inherit;opacity:.85}.paper-tabs .paper-tab:active,.paper-tabs .paper-tab:focus,.paper-tabs .paper-tab:focus-visible{outline:0;box-shadow:none}.paper-tabs .paper-tab:focus-visible{color:var(--color);background:var(--hover-bg-color);border-radius:6px 6px 0 0}.pr-diff{margin:16px 0 28px;display:flex;flex-direction:column;gap:16px}.diff-file-block{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;overflow:hidden}.diff-file-header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--paper-bg-alt);border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:13px;color:var(--color)}.diff-file-icon{color:var(--ink-muted);flex-shrink:0}.diff-file-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.diff-file-status{flex-shrink:0;padding:2px 8px;border-radius:999px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--border-color);color:var(--ink-muted);background:var(--paper-card)}.diff-file-status-added{color:#2f6b3e;border-color:rgba(47,107,62,.35);background:rgba(47,107,62,.08)}.diff-file-status-deleted{color:var(--status-error);border-color:rgba(161,58,46,.35);background:rgba(161,58,46,.08)}.diff-file-status-renamed{color:var(--status-progress);border-color:rgba(138,107,30,.35);background:rgba(138,107,30,.08)}.dark-mode .diff-file-status-added{color:#a7e2a7;border-color:rgba(167,226,167,.35);background:rgba(167,226,167,.08)}.dark-mode .diff-file-status-deleted{color:var(--status-error);border-color:rgba(255,139,123,.35);background:rgba(255,139,123,.08)}.dark-mode .diff-file-status-renamed{color:var(--status-progress);border-color:rgba(255,211,122,.35);background:rgba(255,211,122,.08)}.diff-file-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:13px;line-height:1.55;table-layout:fixed}.diff-file-table tr.diff-row{vertical-align:top}.diff-file-table .diff-gutter{width:48px;padding:0 10px;text-align:right;color:var(--ink-muted);background:var(--paper-bg-alt);border-right:1px solid var(--border-color);user-select:none;font-variant-numeric:tabular-nums;vertical-align:top;white-space:nowrap}.diff-file-table .diff-gutter-new{border-right:1px solid var(--border-color)}.diff-file-table .diff-sign{width:18px;padding:0 6px;text-align:center;color:var(--ink-muted);background:var(--paper-bg-alt);user-select:none;vertical-align:top}.diff-file-table .diff-code{padding:1px 12px;white-space:pre-wrap;word-break:break-word;color:var(--color)}.diff-row-hunk td{background:var(--paper-bg-alt)!important;color:var(--ink-muted);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);font-size:12px;letter-spacing:.02em;padding-top:6px;padding-bottom:6px}.diff-row-hunk .diff-code{color:var(--ink-muted)}.diff-row-add .diff-code{background:rgba(47,107,62,.1);color:#1f4a2a}.diff-row-add .diff-gutter,.diff-row-add .diff-sign{background:rgba(47,107,62,.06);color:#2f6b3e}.diff-row-remove .diff-code{background:rgba(161,58,46,.1);color:#6e1f1a}.diff-row-remove .diff-gutter,.diff-row-remove .diff-sign{background:rgba(161,58,46,.06);color:var(--status-error)}.dark-mode .diff-row-add .diff-code{background:rgba(167,226,167,.1);color:#c9f0c9}.dark-mode .diff-row-add .diff-gutter,.dark-mode .diff-row-add .diff-sign{background:rgba(167,226,167,.06);color:#a7e2a7}.dark-mode .diff-row-remove .diff-code{background:rgba(255,139,123,.1);color:#ffc9c0}.dark-mode .diff-row-remove .diff-gutter,.dark-mode .diff-row-remove .diff-sign{background:rgba(255,139,123,.06);color:var(--status-error)}@media (max-width:700px){.diff-file-table{font-size:12px}.diff-file-table .diff-gutter{width:36px;padding:0 6px}.diff-file-table .diff-sign{width:14px;padding:0 4px}.diff-file-table .diff-code{padding:1px 8px}}.pr-comments{list-style:none;margin:16px 0 28px;padding:0;display:flex;flex-direction:column;gap:12px}.pr-comment{padding:16px 18px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px}.pr-comment-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--border-color)}.pr-comment-author{font-weight:600;color:var(--color);font-size:14px;display:inline-flex;align-items:center;gap:6px}.pr-comment-author i{color:var(--ink-muted);font-size:12px}.pr-comment-date{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);letter-spacing:.02em}.pr-comment-body{color:var(--color);font-size:14px;line-height:1.6}.pr-comment-body :last-child{margin-bottom:0}@media (max-width:700px){.pr-page-inner{padding-top:14px;padding-bottom:40px}.pr-body-card{padding:14px 14px;border-radius:8px}.pr-comment{padding:12px 14px}.paper-tabs .paper-tab{padding:10px 12px;font-size:13px}.pr-diff pre{font-size:12px;padding:12px}}.toast{background-color:var(--paper-card)!important;color:var(--color)!important;border:1px solid var(--border-color)!important;border-radius:10px!important;box-shadow:0 8px 24px rgba(0,0,0,.08);backdrop-filter:none;min-width:280px;max-width:calc(100vw - 24px)}.toast .toast-header{background:0 0!important;color:var(--color)!important;border-bottom:1px solid var(--border-color)!important;font-family:var(--font-sans);padding:10px 12px}.toast .toast-header strong{font-weight:600;color:var(--color);letter-spacing:.01em}.toast .toast-header .close{color:var(--ink-muted)!important;text-shadow:none;opacity:.9;font-size:1.25rem}.toast .toast-header .close:hover{color:var(--color)!important;opacity:1}.toast .toast-body{color:var(--color)!important;padding:12px;font-size:14px;line-height:1.45}.dark-mode .toast{box-shadow:0 8px 24px rgba(0,0,0,.5)}.paper-crumbs{font-family:var(--font-sans);font-size:12px;color:var(--ink-muted);letter-spacing:0}.paper-crumbs .here,.paper-crumbs a{color:var(--color);text-decoration:none}.paper-page-title{font-family:var(--font-sans);font-weight:600;font-size:32px;line-height:1.2;letter-spacing:-.035em;margin:8px 0 6px;color:var(--color)}.paper-page-title em{color:inherit;font-style:normal}.paper-page-lede{color:var(--ink-soft);font-size:16px;max-width:640px;line-height:1.55}.paper-meta-rule{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin:22px 0 18px;padding:12px 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);letter-spacing:.02em}.paper-meta-rule b{color:var(--color);font-weight:500}.paper-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:10px;padding:20px 22px}.dark-mode .paper-card{background:var(--admin-stat-bg)}.paper-section-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);font-weight:500;margin-bottom:10px;display:block}.paper-section-title{font-family:var(--font-serif);font-weight:400;font-size:22px;letter-spacing:-.01em;margin:0 0 8px}.paper-kbd{display:inline-block;font-family:var(--font-mono);font-size:11px;padding:1px 6px;border:1px solid var(--border-color);border-bottom-width:2px;border-radius:3px;background:var(--paper-card,#fff);color:var(--color)}.paper-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;padding:2px 8px;border:1px solid var(--border-color);border-radius:999px;color:var(--ink-soft);background:var(--paper-card,#fff);letter-spacing:.04em}.paper-pill.accent{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.paper-pill.good{border-color:#2f6b3e;color:#2f6b3e}.paper-pill.warn{border-color:var(--status-progress);color:var(--status-progress)}.paper-pill.bad{border-color:var(--status-error);color:var(--status-error)}.paper-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start;padding:18px 0;border-bottom:1px solid var(--border-color)}.paper-row:first-child{border-top:1px solid var(--border-color)}.paper-row .row-title{font-family:var(--font-serif);font-size:20px;letter-spacing:-.01em;line-height:1.2}.paper-row .row-title a{color:var(--color)}.paper-row .row-meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.03em;margin-top:6px;display:flex;flex-wrap:wrap;gap:14px}.paper-row .row-actions{display:flex;gap:6px;flex-shrink:0}.paper-form-step{display:grid;grid-template-columns:48px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--border-color)}.paper-form-step:first-child{border-top:1px solid var(--border-color)}.paper-form-step .step-num{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);padding-top:4px;letter-spacing:.02em}.paper-form-step .step-title{font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;line-height:1.2;margin-bottom:4px}.paper-form-step .step-sub{color:var(--ink-soft);font-size:14px;margin-bottom:14px;text-wrap:pretty}.paper-field-label{font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--color);margin-bottom:6px;display:block}.paper-switch-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:16px}.paper-switch-row+.paper-switch-row{border-top:1px dashed var(--border-soft)}.paper-switch-row .sw-label{font-weight:500}.paper-switch-row .sw-sub{display:block;font-size:13px;color:var(--ink-muted);margin-top:2px}.paper-page .custom-select,.paper-page .form-control{border-radius:6px;border-color:var(--border-color);font-size:14px;padding:8px 12px;height:auto;background:var(--input-bg);color:var(--input-color)}.paper-page .custom-select:focus,.paper-page .form-control:focus{color:var(--input-color);background:var(--input-bg);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.custom-select:focus,.form-control:focus,input:focus,select:focus,textarea:focus{color:var(--input-color)!important;background-color:var(--input-bg)!important}.form-control::selection,input::selection,textarea::selection{background:var(--accent-soft);color:var(--input-color)}.dark-mode .form-control::selection,.dark-mode input::selection,.dark-mode textarea::selection{background:rgba(124,199,190,.3);color:var(--input-color)}.btn.btn-ink{background:var(--color);color:var(--canvas-bg-color);border:1px solid var(--color);font-weight:500;border-radius:6px;padding:8px 14px}.btn.btn-ink:hover{background:var(--primary-hover-bg);color:var(--canvas-bg-color);border-color:var(--primary-hover-bg)}.btn.btn-accent{background:var(--accent);color:#fff;border:1px solid var(--accent);font-weight:500;border-radius:6px}.btn.btn-accent:hover{background:#17544f;border-color:#17544f;color:#fff}.paper-page .dashboard-filter-row{display:flex;align-items:center;gap:10px;padding:14px 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);margin:18px 0 0;flex-wrap:wrap}.paper-page .dashboard-filter-row .form-control{height:38px;background:var(--paper-card)}.paper-page .dashboard-filter-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.paper-page .dashboard-filter-row .btn-group .btn,.paper-page .dashboard-filter-row .dropdown-toggle{background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);height:38px;padding:0 14px;font-size:14px;font-weight:500;border-radius:var(--radius-control,6px);display:inline-flex;align-items:center;gap:6px;line-height:1}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-label{color:var(--ink-muted);font-weight:500}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-label::after{content:"·";margin-left:6px;color:var(--ink-faint)}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-value{font-weight:500}.paper-page .dashboard-filter-row .dropdown-toggle .fas{font-size:11px;color:var(--ink-muted)}.paper-page .dashboard-filter-row .btn-group .btn:hover,.paper-page .dashboard-filter-row .dropdown-toggle:hover{background:var(--hover-bg-color);border-color:var(--border-color);color:var(--color)}.paper-page .dashboard-filter-row .btn-group{gap:0}.paper-page .dashboard-filter-row .btn-group .btn{border-radius:0;border-right-width:0}.paper-page .dashboard-filter-row .btn-group .btn:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.paper-page .dashboard-filter-row .btn-group .btn:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px;border-right-width:1px}.paper-page .dashboard-filter-row .btn-group .btn.btn-primary{background:var(--color);color:var(--canvas-bg-color);border-color:var(--color)}.paper-page .dashboard-filter-row .search-wrap{flex:1 1 280px;min-width:220px}.paper-page .quota-row{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin:24px 0 0;padding:0;background:0 0;border:none;border-radius:0}.paper-page .quota-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);opacity:1}.paper-page .quota-value{font-family:var(--font-mono);font-size:13px;font-variant-numeric:tabular-nums;color:var(--color)}.paper-page .quota-value .quota-unlimited-tag{font-family:var(--font-sans);font-size:12px;color:var(--ink-muted);margin-left:4px}.paper-page .quota-track{height:6px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:999px;overflow:hidden;width:100%;min-width:0}.paper-page .quota-track .quota-fill{height:100%;min-width:2px;border-radius:999px;background:var(--color);transition:width .3s ease}.paper-page .quota-track.quota-warn .quota-fill{background:var(--status-progress)}.paper-page .quota-track.quota-danger .quota-fill{background:var(--status-error)}.paper-page .quota-track.quota-unlimited{background:repeating-linear-gradient(-45deg,var(--paper-bg-alt) 0 4px,var(--border-soft,var(--border-color)) 4px 6px)}.paper-page .repo-list{margin-top:8px}.paper-page .repo-list-item{padding:20px 0;gap:16px;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-page .repo-list-item:first-child{border-top:none}.paper-page .repo-list-item-header{gap:10px;margin-bottom:6px}.paper-page .repo-name{font-family:var(--font-mono);font-size:15px;color:var(--color)}.paper-page .repo-source{font-size:13px;color:var(--ink-soft);opacity:1;gap:10px}.paper-page .repo-source a{color:var(--ink-soft);border-bottom:1px dotted var(--border-color)}.paper-page .repo-source a:hover{color:var(--color)}.paper-page .repo-meta{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);opacity:1;gap:16px;margin-top:10px}.paper-page .type-badge{font-family:var(--font-mono);font-size:11px;padding:3px 8px;letter-spacing:.1em}.paper-page .repo-list-item-actions .dropdown-toggle{background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);border-radius:6px;font-size:13px;padding:6px 12px;height:auto}.paper-settings{max-width:1180px;margin:0 auto;padding:48px 32px 80px}.paper-settings .paper-page-title{max-width:14em}.paper-settings-body{display:grid;grid-template-columns:220px 1fr;gap:60px;margin-top:32px;border-top:1px solid var(--border-color);padding-top:28px}.paper-settings-toc{position:sticky;top:32px;align-self:start}.paper-settings-toc-head{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:12px}.paper-settings-toc nav{display:flex;flex-direction:column;gap:2px}.paper-settings-toc nav a{padding:8px 0 8px 14px;border-left:2px solid transparent;color:var(--ink-soft);font-size:14px;text-decoration:none}.paper-settings-toc nav a.active,.paper-settings-toc nav a:hover{color:var(--color);border-left-color:var(--color)}.paper-settings-main{min-width:0;max-width:720px}.paper-settings-section{padding:28px 0;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-settings-section:first-child{padding-top:0}.paper-settings-section:last-of-type{border-bottom:none}.paper-settings-section .form-group{margin-bottom:18px}.paper-settings-section .form-check{padding:10px 0 10px 28px;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-settings-section .form-check:last-child{border-bottom:none}.paper-settings-section .form-check-label{font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--color);cursor:pointer}.paper-settings-section .form-check-input{cursor:pointer;width:16px;height:16px;margin-top:3px;margin-left:-28px;accent-color:var(--color)}.paper-settings-section .form-text{color:var(--ink-soft);font-size:13px;margin-top:4px;max-width:48em}.paper-settings-section .paper-section-copy{margin:-4px 0 14px}.paper-settings-footer{padding-top:24px;display:flex;flex-direction:column;gap:14px}.paper-settings-footer .btn-ink{align-self:flex-start}.paper-settings-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.paper-settings-hint{font-size:13px;color:var(--ink-muted)}.paper-inline-alert{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--radius-control,6px);border:1px solid var(--border-color);background:var(--paper-bg-alt);font-size:13px;color:var(--color)}.paper-inline-alert i{margin-top:2px;color:var(--ink-muted)}.paper-inline-alert-error{border-color:var(--status-error);background:var(--status-error-soft)}.paper-inline-alert-error i{color:var(--status-error)}.paper-account-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border-color);border-radius:var(--radius-surface,10px);background:var(--paper-card);margin-bottom:20px}.paper-account-card img{flex-shrink:0}.paper-account-identity{flex:1 1 auto;min-width:0}.paper-account-name{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--color)}.paper-account-meta{font-size:13px;color:var(--ink-muted);margin-top:2px}.paper-danger-zone{padding:16px;border:1px solid var(--status-error);border-radius:var(--radius-surface,10px);background:var(--status-error-soft)}.paper-danger-head{font-weight:600;font-size:14px;color:var(--status-error);margin-bottom:6px}.paper-danger-copy{font-size:13px;color:var(--ink-soft);max-width:52em;margin-bottom:12px}.paper-danger-zone .paper-inline-alert{margin-bottom:12px}.btn.btn-outline-danger{background:0 0;color:var(--status-error);border:1px solid var(--status-error);font-weight:500;border-radius:var(--radius-control,6px);padding:8px 14px}.btn.btn-outline-danger:hover{background:var(--status-error);color:#fff;border-color:var(--status-error)}.navbar .user-menu{min-width:260px}.navbar .user-menu .dropdown-item{display:flex;align-items:flex-start;gap:10px;padding:8px 10px!important}.navbar .user-menu .dropdown-item i{width:16px;margin-top:3px;font-size:13px;color:var(--ink-muted);text-align:center}.navbar .user-menu .dropdown-item span{display:flex;flex-direction:column;line-height:1.3}.navbar .user-menu .dropdown-item small{font-size:12px;color:var(--ink-muted)}.navbar .user-menu .dropdown-header{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);padding:8px 10px 6px}.paper-field-label{font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--color);margin-bottom:6px;display:block}@media (max-width:900px){.paper-settings-body{grid-template-columns:1fr;gap:24px}.paper-settings-toc{position:static}.paper-settings-toc nav{flex-direction:row;flex-wrap:wrap;gap:8px}.paper-settings-toc nav a{border-left:none;border-bottom:2px solid transparent;padding:4px 0}.paper-settings-toc nav a.active,.paper-settings-toc nav a:hover{border-bottom-color:var(--color);border-left:none}}.paper-table{display:block;margin-top:20px;background:0 0;border:none;border-top:1px solid var(--border-color);border-radius:0;overflow:visible}.paper-table .paper-table-head,.paper-table .paper-table-row{display:grid;grid-template-columns:minmax(280px,2.4fr) minmax(140px,1fr) 140px 90px 140px 52px;align-items:center;gap:18px;padding:12px 4px}.paper-table.paper-table-conferences .paper-table-head,.paper-table.paper-table-conferences .paper-table-row{grid-template-columns:minmax(280px,2.4fr) 140px 90px 220px 52px}.paper-table.paper-table-repos .paper-table-head,.paper-table.paper-table-repos .paper-table-row{grid-template-columns:minmax(280px,2.4fr) minmax(140px,1fr) 90px 140px 52px}.paper-table.paper-table-repos.has-bulk .paper-table-head,.paper-table.paper-table-repos.has-bulk .paper-table-row{grid-template-columns:28px minmax(280px,2.4fr) minmax(140px,1fr) 90px 140px 52px;gap:12px}.paper-table .admin-users-row{grid-template-columns:28px minmax(280px,2.4fr) 90px 120px 100px 52px!important;gap:12px!important}.paper-table.paper-table-dashboard .paper-table-head,.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(320px,3fr) 190px 90px 170px 52px;gap:20px;padding:8px 4px}.paper-table.paper-table-dashboard .cell-anon .anon-text{gap:2px}.paper-table.paper-table-dashboard .cell-anon .repo-name{padding:0}.paper-table .paper-table-head{background:0 0;border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);padding-top:8px;padding-bottom:8px}.paper-table .paper-table-head .sortable{cursor:pointer;user-select:none;display:inline-flex;align-items:center;gap:6px;background:0 0;border:none;padding:2px 0;margin:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;border-radius:4px}.paper-table .paper-table-head .sortable:hover{color:var(--color)}.paper-table .paper-table-head .sortable.active{color:var(--color)}.paper-table .paper-table-head .sortable i{font-size:10px}.paper-table .paper-table-head .num,.paper-table .paper-table-row .num{text-align:right}.paper-table .paper-table-head .num .sortable{flex-direction:row-reverse}.paper-table .paper-table-row{border-top:1px solid var(--border-soft,var(--border-color));font-size:14px;transition:background-color .12s ease}.paper-table .paper-table-row:hover{background:var(--hover-bg-color)}.paper-table .paper-table-row.row-clickable{cursor:pointer}.paper-table .paper-table-row.repo-inactive>:not(.cell-actions){opacity:.55}.paper-table .paper-table-row.repo-error{background:var(--status-error-soft);border-left:2px solid var(--status-error);padding-left:6px}.paper-table .paper-table-row.repo-error:hover{background:var(--status-error-soft-hover)}.cell-status .status-sub.status-sub-error,.paper-table .cell-status .status-sub-error{color:var(--status-error)}.paper-table .cell-status .status-sub-warn{color:var(--status-progress)}.paper-table .cell-anon{display:flex;align-items:center;gap:12px;min-width:0}.paper-table .cell-anon .type-badge{flex-shrink:0;min-width:52px;justify-content:center}.paper-table .cell-anon .anon-text{min-width:0;display:flex;flex-direction:column;gap:3px}.paper-table .cell-anon .anon-title{display:flex;align-items:center;gap:8px;min-width:0}.paper-table .cell-anon .anon-title .type-badge{margin-left:0}.paper-table .cell-anon .repo-name{font-family:var(--font-mono);font-size:14px;color:var(--color);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%;padding:2px 0}.paper-table .cell-anon .repo-name-static{color:var(--ink-muted);font-style:italic}.paper-table .cell-anon .anon-sub{font-family:var(--font-sans);font-size:13px;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:10px;min-width:0}.paper-table .cell-anon .anon-sub .anon-source{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-anon .anon-sub .conf-tag{flex:0 1 auto;min-width:72px;max-width:50%}.paper-table .cell-anon .anon-sub a{color:var(--ink-muted);border-bottom:1px dotted var(--border-color);padding:4px 0;margin:-4px 0}.paper-table .cell-anon .anon-sub a:hover{color:var(--color)}.paper-table .cell-anon .anon-sub .commit-hash{font-family:var(--font-mono);font-size:12px}.paper-table .cell-conf{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-conf span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-status{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;font-size:14px;color:var(--color);min-width:0}.paper-table .cell-status .status-line{display:inline-flex;align-items:center;gap:8px}.paper-table .cell-status .status-sub{flex-basis:100%;font-family:var(--font-sans);font-size:13px;line-height:1.3;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-views{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color)}.paper-table .cell-expires{font-family:var(--font-sans);font-size:13px;color:var(--ink-soft)}.paper-table .cell-expires .expires-never{color:var(--ink-muted)}.paper-table .cell-expires .expires-past{color:var(--ink-muted)}.paper-table .empty-dash{color:var(--ink-faint)}.paper-table .cell-actions{display:flex;justify-content:flex-end}.status-dot{width:8px;height:8px;border-radius:999px;display:inline-block;flex-shrink:0;background:var(--status-inactive)}.status-dot.status-ready{background:var(--status-ready)}.status-dot.status-error{background:var(--status-error)}.status-dot.status-preparing,.status-dot.status-progress{background:var(--status-progress)}.status-dot.status-expired,.status-dot.status-removed{background:var(--status-inactive)}.dashboard-page{padding-bottom:96px}.dashboard-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:12px;font-size:13px;color:var(--ink-muted)}.dashboard-meta .dashboard-count{font-variant-numeric:tabular-nums}.btn-link-inline{background:0 0;border:none;padding:2px 4px;margin:-2px 0;font:inherit;color:var(--link-color);cursor:pointer;border-radius:4px}.btn-link-inline:hover{color:var(--link-hover-color);text-decoration:underline}.btn.btn-outline-ink{background:0 0;color:var(--color);border:1px solid var(--border-color);font-weight:500;border-radius:var(--radius-control,6px);padding:8px 14px}.btn.btn-outline-ink:hover{background:var(--hover-bg-color);color:var(--color);border-color:var(--ink-faint)}.paper-page .dropdown-menu .dropdown-item-danger,.paper-page .dropdown-menu .dropdown-item-danger i{color:var(--status-error)}.paper-page .dropdown-menu .dropdown-item-danger:focus,.paper-page .dropdown-menu .dropdown-item-danger:hover{background:var(--status-error-soft-hover);color:var(--status-error)}.paper-page .dropdown-menu button.dropdown-item{width:100%;text-align:left;background:0 0;border:none}.paper-page .dropdown-menu .dropdown-divider{border-top-color:var(--border-soft,var(--border-color));margin:4px 0}.paper-table .paper-table-skeleton{pointer-events:none}.skeleton{display:block;background:var(--paper-bg-alt);border-radius:4px;position:relative;overflow:hidden}.skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,var(--hover-bg-color),transparent);animation:skeleton-shimmer 1.4s infinite}.skeleton-line{height:12px}.skeleton-line+.skeleton-line{margin-top:8px}.skeleton-line-sm{height:10px}.skeleton-badge{width:52px;height:22px;border-radius:999px;flex-shrink:0}@keyframes skeleton-shimmer{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.skeleton::after{animation:none}}.paper-table .paper-table-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:56px 20px;color:var(--ink-muted);text-align:center;border-top:1px solid var(--border-soft,var(--border-color))}.paper-table .paper-table-empty>i{font-size:1.5rem;color:var(--ink-faint)}.paper-table .paper-table-empty-actions{display:flex;gap:8px;margin-top:8px}.bulk-bar{display:flex;align-items:center;gap:8px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:8px;padding:8px 12px;margin:8px 0}.paper-page.admin-page .paper-page-title{font-size:1.5rem;margin:4px 0}.paper-page.admin-page .paper-page-lede{display:none}.paper-page.admin-page .paper-crumbs{margin-bottom:4px}.paper-page.admin-page .admin-nav{margin:6px 0 12px}.admin-filter-toolbar{display:flex;flex-direction:column;gap:6px;margin:8px 0 12px;position:sticky;top:0;z-index:4;background:var(--canvas-bg-color);padding:6px 0;border-bottom:1px solid var(--border-soft,var(--border-color));box-shadow:0 1px 0 var(--canvas-bg-color)}@media (max-width:900px){.admin-filter-toolbar{position:static;box-shadow:none}}.admin-filter-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.admin-filter-row .search-wrap{flex:1;min-width:220px}.admin-filter-row .search-wrap .form-control{height:34px}.admin-filter-inline{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-muted)}.admin-filter-inline>label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin:0;white-space:nowrap}.admin-filter-inline .form-control-sm{height:28px;padding:2px 8px;font-size:12px}.admin-filter-inline input[type=search].form-control-sm,.admin-filter-inline input[type=text].form-control-sm{width:130px}.admin-filter-inline input[type=date].form-control-sm{width:130px}.admin-filter-inline select.form-control-sm{width:auto;min-width:88px}.admin-filter-inline .arrow{color:var(--ink-muted);font-size:11px}.admin-filter-spacer{flex:1}.admin-active-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:var(--ink-muted)}.admin-active-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 10px;border:1px solid var(--border-color);border-radius:999px;background:var(--hover-bg-color);font-size:12px;color:var(--color)}.admin-active-chip .key{color:var(--ink-muted);font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.admin-active-chip button{background:0 0;border:none;cursor:pointer;padding:0 4px;color:var(--ink-muted);font-size:12px;border-radius:50%}.admin-active-chip button:hover{color:#b42318}.admin-search-hint{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);pointer-events:none;border:1px solid var(--border-color);border-radius:4px;padding:1px 5px;background:var(--paper-card)}.admin-filter-row .search-wrap{position:relative}.admin-filter-row .search-wrap .form-control{padding-right:40px}.paper-table-row.row-selected{background:rgba(47,122,68,.06)}.queue-state-pills{display:inline-flex;gap:6px;margin-left:8px;flex-wrap:wrap}.queue-state-pills .pill{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted)}.queue-state-pills .pill-active{color:var(--status-progress);border-color:rgba(196,138,46,.4)}.queue-state-pills .pill-failed{color:#b42318;border-color:rgba(180,35,24,.4)}.queue-state-pills .pill-completed{color:#2f7a44;border-color:rgba(47,122,68,.3)}.queue-state-pills .pill-waiting{color:var(--ink-soft)}.queue-state-pills .pill-delayed{color:var(--ink-muted)}.admin-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 12px;font-size:13px}.admin-summary .summary-total{font-family:var(--font-serif);font-size:1rem;color:var(--color);margin-right:8px}.admin-summary .summary-meta{color:var(--ink-muted);font-size:12px;margin-right:8px}.admin-summary .summary-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted);cursor:pointer;font-size:12px;user-select:none;transition:background-color .1s,border-color .1s}.admin-summary .summary-pill:hover{background:var(--hover-bg-color)}.admin-summary .summary-pill .count{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color)}.admin-summary .summary-pill.active{background:var(--primary-bg);color:var(--primary-color);border-color:var(--primary-bg)}.admin-summary .summary-pill.active .count{color:inherit}.admin-summary .summary-pill.error .count{color:#b42318}.admin-summary .summary-pill.warn .count{color:var(--status-progress)}.admin-summary .summary-pill.ok .count{color:#2f7a44}.dark-mode .admin-summary .summary-pill.error .count{color:#f08a82}.dark-mode .admin-summary .summary-pill.warn .count{color:var(--status-progress)}.dark-mode .admin-summary .summary-pill.ok .count{color:#7dc894}.dark-mode .queue-state-pills .pill-active{color:var(--status-progress);border-color:rgba(232,185,112,.4)}.dark-mode .queue-state-pills .pill-failed{color:#f08a82;border-color:rgba(240,138,130,.4)}.dark-mode .queue-state-pills .pill-completed{color:#7dc894;border-color:rgba(125,200,148,.3)}.job-progress{flex:1;height:6px;background:var(--border-soft,var(--border-color));border-radius:999px;overflow:hidden;margin-left:12px;max-width:200px}.job-progress-bar{height:100%;background:#2f7a44;transition:width .3s}.paper-table-empty{padding:48px 4px;text-align:center;color:var(--ink-muted);display:flex;flex-direction:column;align-items:center;gap:8px;border-top:1px solid var(--border-soft,var(--border-color))}.paper-table-empty>i{font-size:1.5rem}.q-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:4px}.q-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.q-range-btns{display:inline-flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.q-range-btns .btn{border:none;border-radius:0;padding:5px 14px;font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);background:var(--paper-card)}.q-range-btns .btn+.btn{border-left:1px solid var(--border-color)}.q-range-btns .btn.active{background:var(--color);color:var(--paper-card)}.q-cards{display:flex;gap:10px;margin:16px 0;flex-wrap:wrap}.q-card{flex:1;min-width:140px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:14px 16px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.q-card:hover{border-color:var(--ink-muted)}.q-card.selected{border-color:var(--color);box-shadow:0 0 0 1px var(--color)}.q-card-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.q-dot{width:8px;height:8px;border-radius:50%;background:#2f7a44;flex-shrink:0}.q-dot-red{background:#b42318}.dark-mode .q-dot{background:#7dc894}.dark-mode .q-dot-red{background:#f08a82}.q-card-name{font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--ink-muted);letter-spacing:.04em}.q-card-count{font-family:var(--font-serif);font-size:2rem;font-weight:400;line-height:1.1;color:var(--color);margin-bottom:6px}.q-card-sub{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.04em}.q-card-bar{height:4px;background:var(--border-color);border-radius:2px;overflow:hidden;margin-top:6px}.q-card-bar-fill{height:100%;background:#1f6a64;border-radius:2px;transition:width .3s}.dark-mode .q-card-bar-fill{background:#7cc7be}.q-detail{display:grid;grid-template-columns:1fr 320px;gap:16px;margin-bottom:20px}.q-throughput{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px}.q-chart-wrap{position:relative}.q-throughput canvas{width:100%;display:block}.q-chart-tooltip{position:absolute;pointer-events:none;background:var(--paper-card);border:1px solid var(--border-color);border-radius:6px;padding:6px 10px;font-family:var(--font-mono);font-size:11px;line-height:1.6;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:10}.q-chart-tooltip .q-tip-time{color:var(--ink-muted);margin-bottom:2px}.q-chart-tooltip .q-tip-completed{color:#1f6a64}.q-chart-tooltip .q-tip-failed{color:#b42318}.dark-mode .q-chart-tooltip .q-tip-completed{color:#7cc7be}.dark-mode .q-chart-tooltip .q-tip-failed{color:#f08a82}.q-chart-crosshair{position:absolute;top:0;width:1px;height:100%;background:var(--ink-muted);opacity:.3;pointer-events:none;z-index:9}.q-stats-panel{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px;display:flex;flex-direction:column}.q-section-label{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--ink-muted);text-transform:lowercase;letter-spacing:.04em;margin-bottom:14px}.q-section-right{float:right;text-transform:uppercase;font-size:10px;letter-spacing:.08em}.q-legend-completed{color:#1f6a64}.q-legend-failed{color:#b42318;margin-left:8px}.q-legend-exec{color:var(--status-progress);margin-left:8px;letter-spacing:2px}.dark-mode .q-legend-completed{color:#7cc7be}.dark-mode .q-legend-failed{color:#f08a82}.dark-mode .q-legend-exec{color:var(--status-progress)}.q-chart-tooltip .q-tip-exec{color:var(--status-progress)}.dark-mode .q-chart-tooltip .q-tip-exec{color:var(--status-progress)}.q-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;flex:1}.q-stat-label{font-family:var(--font-mono);font-size:10px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}.q-stat-value{font-family:var(--font-serif);font-size:1.25rem;font-weight:400;color:var(--color);line-height:1.2}.q-stats-actions{display:flex;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border-color)}.q-stats-actions .btn{font-family:var(--font-mono);font-size:11px;padding:6px 14px;border-radius:8px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}.q-jobs{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px}.q-jobs-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}.q-state-filters{display:inline-flex;gap:6px;flex-wrap:wrap}.q-state-toggle{cursor:pointer;display:inline-flex;align-items:center}.q-state-toggle input{display:none}.q-state-chip{font-family:var(--font-mono);font-size:11px;padding:3px 10px;border-radius:10px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted);transition:opacity .15s,background .15s;text-transform:capitalize}.q-state-toggle input:checked+.q-state-chip{opacity:1}.q-state-toggle input:not(:checked)+.q-state-chip{opacity:.4;text-decoration:line-through}.q-state-badge,.q-state-chip{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.q-state-badge{display:inline-block;padding:2px 8px;border-radius:8px}.q-state-active{background:#dbeafe;color:#1d4ed8}.q-state-waiting{background:#fef3c7;color:#92400e}.q-state-delayed{background:#e0e7ff;color:#4338ca}.q-state-failed{background:#fee2e2;color:#b91c1c}.q-state-completed{background:#dcfce7;color:#166534}.dark-mode .q-state-active{background:rgba(59,130,246,.2);color:#93bbfd}.dark-mode .q-state-waiting{background:rgba(251,191,36,.15);color:#fbbf24}.dark-mode .q-state-delayed{background:rgba(99,102,241,.2);color:#7cc7be}.dark-mode .q-state-failed{background:rgba(239,68,68,.2);color:#fca5a5}.dark-mode .q-state-completed{background:rgba(34,197,94,.15);color:#86efac}.q-cell-state{width:120px}.q-delay-hint{display:block;font-size:10px;color:var(--ink-muted);margin-top:2px;font-family:var(--font-mono)}.q-search-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.q-search-row .form-control{max-width:320px;height:34px}.q-auto-refresh{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}.q-table{width:100%;border-collapse:collapse}.q-table thead th{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;padding:8px 10px;border-bottom:1px solid var(--border-color);text-align:left;white-space:nowrap}.q-table tbody tr{border-bottom:1px solid var(--border-color);transition:background .1s}.q-table tbody tr:hover{background:var(--paper-bg-alt)}.q-table tbody tr:last-child{border-bottom:none}.q-table tbody td{padding:10px 10px;font-size:.875rem;vertical-align:middle}.q-cell-id{font-family:var(--font-mono);font-size:12px;white-space:nowrap}.q-cell-id{display:flex;align-items:center;gap:8px}.q-chevron{font-size:10px;color:var(--ink-muted);transition:transform .15s;flex-shrink:0}.q-chevron-open{transform:rotate(90deg)}.q-cell-id a{color:var(--color)}.q-cell-payload{font-family:var(--font-mono);font-size:12px;color:var(--color)}.q-payload-detail{color:var(--ink-muted)}.q-cell-num{font-family:var(--font-mono);font-size:12px;text-align:center;white-space:nowrap}.q-cell-progress{min-width:120px}.q-progress-wrap{display:flex;align-items:center;gap:8px}.q-progress-bar{flex:1;height:6px;border-radius:3px;overflow:hidden;background-image:linear-gradient(to right,#1f6a64 var(--pct,0),var(--border-color) var(--pct,0))}.dark-mode .q-progress-bar{background-image:linear-gradient(to right,#7cc7be var(--pct,0),var(--border-color) var(--pct,0))}.q-progress-label{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);white-space:nowrap;min-width:32px;text-align:right}.q-cell-actions{text-align:right;white-space:nowrap}.q-cell-actions .btn{padding:3px 8px;font-size:11px;background:0 0;border:1px solid var(--border-color);color:var(--ink-muted)}.q-cell-actions .btn:hover{color:var(--color)}.q-row-failed{background:rgba(180,35,24,.04)}.dark-mode .q-row-failed{background:rgba(240,138,130,.06)}.q-error-detail{padding:4px 10px 12px;font-size:12px}.q-error-reason{color:#b42318;font-size:.8125rem;margin-bottom:4px}.dark-mode .q-error-reason{color:#f08a82}.q-toast-error{background:#fbe7e7;color:#b42318;border:1px solid #f3c7c7;border-radius:8px;padding:10px 16px;margin-bottom:12px;font-family:var(--font-mono);font-size:12px;cursor:pointer;display:flex;align-items:center;gap:8px}.dark-mode .q-toast-error{background:rgba(240,138,130,.1);color:#f08a82;border-color:rgba(240,138,130,.25)}.q-error-stack{font-size:.75rem;max-height:120px;overflow:auto;margin:4px 0 0;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:6px;padding:8px 10px}.q-row-expanded>td{border-bottom-color:transparent}.q-detail-row>td{padding:0 10px 14px!important;border-bottom:1px solid var(--border-color)}.q-job-detail{background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:8px;padding:14px 16px}.q-job-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px 20px;margin-bottom:10px}.q-job-detail-item{display:flex;flex-direction:column;gap:2px}.q-job-detail-label{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em}.q-job-detail-value{font-family:var(--font-mono);font-size:12px;color:var(--color);word-break:break-all}.q-job-detail-value a{color:var(--color)}.q-job-detail-error{margin:8px 0}.q-job-detail-actions{display:flex;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border-color)}.q-job-detail-actions .btn{font-family:var(--font-mono);font-size:11px;padding:5px 12px;border-radius:6px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}@media (max-width:900px){.q-detail{grid-template-columns:1fr}.q-cards{flex-direction:column}.q-card{min-width:100%}.q-jobs-header{flex-direction:column;align-items:flex-start}.q-tabs{flex-wrap:wrap}.q-search-row{flex-wrap:wrap}.q-search-row .form-control{max-width:100%;flex:1}.q-table{font-size:12px}.q-header{flex-direction:column}.q-job-detail-grid{grid-template-columns:1fr 1fr}}@media (max-width:900px){.paper-table .paper-table-head{display:none}.paper-table .admin-users-row,.paper-table .paper-table-row,.paper-table.paper-table-conferences .paper-table-row,.paper-table.paper-table-repos .paper-table-row{display:flex!important;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:14px 0;grid-template-columns:none!important}.paper-table .cell-anon{flex:1 1 calc(100% - 52px);min-width:0;order:1}.paper-table .cell-actions{flex:0 0 auto;order:2;align-self:center}.paper-table .cell-conf,.paper-table .cell-expires,.paper-table .cell-status,.paper-table .cell-views{order:3;font-size:13px;color:var(--ink-muted);display:inline-flex;align-items:center;gap:6px;text-align:left}.paper-table .cell-status{flex-wrap:nowrap;gap:6px;min-width:0}.paper-table .cell-status .status-sub{flex-basis:auto;font-size:13px;line-height:inherit}.paper-table .cell-status .status-sub::before{content:"·";margin-right:6px;color:var(--ink-faint)}.paper-table .cell-conf{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-views.num{text-align:left}.paper-table .paper-table-skeleton .cell-expires,.paper-table .paper-table-skeleton .cell-status,.paper-table .paper-table-skeleton .cell-views{flex:1 1 30%}.paper-table .cell-views::before{content:'\f06e';font-family:'Font Awesome 5 Free';font-weight:900;font-size:10px;color:var(--ink-muted)}.paper-table .cell-expires::before{content:'\f017';font-family:'Font Awesome 5 Free';font-weight:400;font-size:10px;color:var(--ink-muted)}.paper-table .cell-conf::before{content:'\f51c';font-family:'Font Awesome 5 Free';font-weight:900;font-size:10px;color:var(--ink-muted)}.paper-table-dashboard .cell-conf::before{content:none}.paper-table .cell-conf:has(.empty-dash),.paper-table .cell-expires:has(.empty-dash){display:none}.paper-table .cell-expires::before,.paper-table .cell-views::before{color:var(--ink-faint)}}.paper-page .dropdown-menu{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface,10px);box-shadow:0 12px 28px rgba(26,24,21,.08);padding:6px;min-width:220px;font-family:var(--font-sans);font-size:14px;color:var(--color);margin-top:6px}.paper-page .dropdown-menu .dropdown-header{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);padding:8px 10px 6px;font-weight:500}.paper-page .dropdown-menu .dropdown-item{border-radius:6px;padding:8px 10px;color:var(--color);font-size:14px;display:flex;align-items:center;gap:8px}.paper-page .dropdown-menu .dropdown-item:focus,.paper-page .dropdown-menu .dropdown-item:hover{background:var(--hover-bg-color);color:var(--color)}.paper-page .dropdown-menu .dropdown-item i{width:16px;font-size:13px;color:var(--ink-muted)}.paper-page .dropdown-menu .form-check.dropdown-item{padding:8px 10px 8px 36px!important;position:relative}.paper-page .dropdown-menu .form-check.dropdown-item .form-check-input{position:absolute;left:12px;top:50%;transform:translateY(-50%);margin:0;width:16px;height:16px;accent-color:var(--color);cursor:pointer}.paper-page .dropdown-menu .form-check.dropdown-item .form-check-label{font-family:var(--font-sans);font-size:14px;color:var(--color);font-weight:400;margin:0;cursor:pointer}.btn.btn-icon-dots{width:32px;height:32px;padding:0;border:1px solid transparent;background:0 0;color:var(--ink-muted);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;line-height:1}.btn.btn-icon-dots:focus,.btn.btn-icon-dots:hover,.btn.btn-icon-dots[aria-expanded=true]{background:var(--hover-bg-color);border-color:var(--border-color);color:var(--color)}.btn.btn-icon-dots::after{display:none}.btn.btn-icon-dots i{font-size:15px}.paper-page .repo-list-empty{border-top:none;padding:56px 20px;color:var(--ink-muted)}.paper-page .filter-chip{background:var(--paper-bg-alt);color:var(--color);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px}@media (max-width:768px){.paper-page .paper-page-title{font-size:clamp(1.4rem,6vw,1.9rem);margin:4px 0 2px}.paper-page .paper-page-lede{font-size:13px;line-height:1.4;margin-bottom:0}.paper-page .btn-ink{padding:6px 12px;font-size:13px}.paper-page .quota-row{grid-template-columns:1fr;gap:12px;padding:0;margin:16px 0 0}.paper-page .dashboard-filter-row{padding:10px 0;margin-top:12px;gap:8px}.paper-page .quota-header{flex-direction:row;align-items:baseline;gap:8px}.paper-page .quota-value{white-space:nowrap}.paper-page .dashboard-filter-controls{width:100%}.paper-page .dashboard-filter-controls .btn-group{flex:1 1 100%;display:flex}.paper-page .dashboard-filter-controls .btn-group .btn{flex:1;justify-content:center}.paper-page .dashboard-filter-controls .dropdown{flex:1 1 0;min-width:0}.paper-page .dashboard-filter-controls .dropdown .dropdown-toggle{width:100%;justify-content:space-between}.paper-page .dashboard-filter-controls .dropdown .filter-btn-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media (max-width:480px){.paper-page .paper-page-lede{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}.empty-state{text-align:center;padding:40px 20px;opacity:.6}.empty-state i{font-size:2rem;margin-bottom:10px;display:block}.paper-page .progress{height:10px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:999px;overflow:hidden;margin-bottom:20px}.paper-page .progress .progress-bar{background:var(--color);color:var(--canvas-bg-color);font-family:var(--font-mono);font-size:10px;line-height:10px}.paper-page .progress .progress-bar.bg-success{background:var(--status-ready)!important}.paper-page .progress .progress-bar.bg-warning{background:var(--status-progress)!important;color:#fff}.paper-page .progress .progress-bar.bg-danger{background:var(--status-error)!important}.paper-page .progress .progress-bar.bg-dark{background:var(--ink-faint)!important}.paper-page .form>h5,.paper-page form>h5,.paper-page>h5{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin:24px 0 8px}.paper-page .accordion .card{background:var(--paper-card,var(--sidebar-bg-color));border:1px solid var(--border-color);border-radius:8px!important;margin-bottom:8px;overflow:hidden}.paper-page .accordion .card+.card{border-top:1px solid var(--border-color)}.paper-page .accordion .card-header{background:0 0;border:none;padding:0}.paper-page .accordion .card-header .btn{color:var(--color)!important;font-family:var(--font-sans);font-weight:500;font-size:14px;padding:14px 18px!important;background:0 0!important;border:none!important;position:relative}.paper-page .accordion .card-header .btn::after{content:"+";position:absolute;right:18px;font-family:var(--font-serif);font-size:20px;color:var(--ink-muted)}.paper-page .accordion .card-header .btn:not(.collapsed)::after{content:"–"}.paper-page .accordion .card-body{padding:6px 18px 18px!important;border-top:1px solid var(--border-soft)}.paper-page .accordion .form-check-label{color:var(--color);font-weight:500;font-size:14px}.paper-page .accordion .form-text{color:var(--ink-muted);font-size:12px;margin-top:2px}.faq-section .panel-body code{font-family:var(--font-mono);font-size:13px;padding:1px 6px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:3px;color:var(--color)}.faq-section .panel-body a{color:var(--accent)}@media (max-width:820px){.paper-faq-body{grid-template-columns:1fr;gap:24px}.paper-faq-toc{position:static}}.paper-footer{margin-top:80px;padding:56px max(20px,calc((100% - 1076px)/ 2)) 28px;border-top:1px solid var(--border-color);background:var(--canvas-bg-color);font-family:var(--font-sans)}.paper-footer-inner{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}.paper-footer-brand .paper-footer-mark{font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;color:var(--color)}.paper-footer-brand .paper-footer-mark em{font-style:italic;font-weight:400}.paper-footer-tag{margin-top:10px;color:var(--ink-soft);font-size:14px;line-height:1.55;max-width:340px}.paper-footer-head{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px}.paper-footer-col a{display:block;color:var(--color);font-size:14px;padding:4px 0;text-decoration:none}.paper-footer-col a:hover{color:var(--accent)}.paper-footer-rule{height:1px;background:var(--border-color);margin:40px 0 16px}.paper-footer-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--ink-muted);font-family:var(--font-sans);letter-spacing:0}.paper-footer-foot .paper-footer-meta{font-family:var(--font-serif);font-style:italic;font-size:14px;letter-spacing:0;color:var(--ink-soft)}@media (max-width:768px){.paper-footer-inner{grid-template-columns:1fr 1fr}}.file.folder.truncated .truncated-warning{color:var(--status-progress);margin-left:4px;font-size:.85em;flex-shrink:0}.file.folder.truncated>a{color:var(--status-progress)}body{--bucket-error-bg:#FCEDED;--bucket-error-fg:#8A1F1F;--bucket-error-bd:#F0C4C4;--bucket-error-dot:#B53737;--bucket-warn-bg:#FFF3DF;--bucket-warn-fg:#7A4D00;--bucket-warn-bd:#F0D8A0;--bucket-warn-dot:#B07A2F;--bucket-info-bg:#EAF2EC;--bucket-info-fg:#2C5D3A;--bucket-info-bd:#C5DCCD;--bucket-info-dot:#5B8D6B;--card-shadow:0 1px 2px rgba(26, 24, 21, 0.04),0 4px 14px rgba(26, 24, 21, 0.05);--card-shadow-hover:0 1px 2px rgba(26, 24, 21, 0.06),0 8px 24px rgba(26, 24, 21, 0.08)}.dark-mode{--bucket-error-bg:rgba(255, 139, 123, 0.10);--bucket-error-fg:var(--status-error);--bucket-error-bd:rgba(255, 139, 123, 0.28);--bucket-error-dot:var(--status-error);--bucket-warn-bg:rgba(255, 211, 122, 0.10);--bucket-warn-fg:var(--status-progress);--bucket-warn-bd:rgba(255, 211, 122, 0.28);--bucket-warn-dot:var(--status-progress);--bucket-info-bg:rgba(152, 200, 168, 0.10);--bucket-info-fg:#98C8A8;--bucket-info-bd:rgba(152, 200, 168, 0.28);--bucket-info-dot:#98C8A8;--card-shadow:0 1px 2px rgba(0, 0, 0, 0.35),0 6px 18px rgba(0, 0, 0, 0.30);--card-shadow-hover:0 2px 4px rgba(0, 0, 0, 0.45),0 12px 28px rgba(0, 0, 0, 0.40)}.errors-page .errors-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:4px 0 8px}.errors-page .errors-actions{display:flex;gap:6px}.errors-page .kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin:14px 0 18px}.errors-page .kpi-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 20px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--card-shadow);transition:box-shadow 160ms ease,transform 160ms ease}.errors-page .kpi-card:hover{box-shadow:var(--card-shadow-hover)}.errors-page .kpi-label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.errors-page .kpi-value{font-family:var(--font-serif);font-size:2.6rem;font-weight:400;line-height:1;margin-top:2px;color:var(--color)}.errors-page .kpi-card.kpi-error .kpi-value{color:var(--bucket-error-fg)}.errors-page .kpi-card.kpi-warn .kpi-value{color:var(--bucket-warn-fg)}.errors-page .kpi-card.kpi-info .kpi-value{color:var(--bucket-info-fg)}.errors-page .kpi-sub{font-size:.75rem;color:var(--ink-muted);font-style:italic}.errors-page .kpi-sub.up{color:var(--bucket-error-fg);font-style:normal}.errors-page .kpi-sub.down{color:var(--bucket-info-fg);font-style:normal}.errors-page .dropped-warn{color:var(--bucket-error-fg);font-weight:600;font-style:normal}.errors-page .volume-chart{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;margin-bottom:18px;box-shadow:var(--card-shadow)}.errors-page .volume-head{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.errors-page .volume-legend{display:flex;gap:14px;align-items:center;text-transform:none;letter-spacing:0;font-family:var(--font-sans)}.errors-page .volume-legend .dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;vertical-align:middle}.errors-page .dot.dot-error{background:var(--bucket-error-dot)}.errors-page .dot.dot-warn{background:var(--bucket-warn-dot)}.errors-page .dot.dot-info{background:var(--bucket-info-dot)}.errors-page .volume-bars{display:flex;align-items:flex-end;gap:4px;height:80px}.errors-page .volume-bar{display:flex;flex-direction:column-reverse;flex:1 1 0;min-width:6px;height:100%}.errors-page .volume-bar .seg{display:block;width:100%}.errors-page .seg.seg-error{background:var(--bucket-error-dot)}.errors-page .seg.seg-warn{background:var(--bucket-warn-dot)}.errors-page .seg.seg-info{background:var(--bucket-info-dot);opacity:.7}.errors-page .errors-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.errors-page .seg-tabs{display:inline-flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--paper-card)}.errors-page .seg-tabs button{background:0 0;border:none;padding:6px 14px;font-size:.875rem;cursor:pointer;color:var(--color);font-family:var(--font-sans)}.errors-page .seg-tabs button+button{border-left:1px solid var(--border-color)}.errors-page .seg-tabs button.active{background:var(--primary-bg);color:var(--primary-color)}.errors-page .errors-toolbar .search-wrap{position:relative;flex:1 1 320px;min-width:220px}.errors-page .errors-toolbar .search-wrap input{width:100%;padding:6px 10px 6px 32px;border:1px solid var(--border-color);border-radius:8px;font-family:var(--font-mono);font-size:.8125rem;background:var(--input-bg);color:var(--input-color)}.errors-page .errors-toolbar .search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-muted);font-size:.875rem}.errors-page .errors-toolbar .filter-count{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:.75rem;color:var(--ink-muted)}.errors-page .errors-toolbar .select-wrap{display:inline-flex;align-items:center;gap:6px}.errors-page .errors-toolbar .select-wrap label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin:0}.errors-page .errors-toolbar .select-wrap select{background:var(--input-bg);color:var(--input-color);border:1px solid var(--border-color);border-radius:8px}.errors-page .errors-toolbar .autoref{display:inline-flex;gap:6px;align-items:center;font-size:.8125rem;color:var(--color);cursor:pointer;margin:0}.errors-page .btn-icon{width:32px;padding:4px 0}.errors-page .errors-list{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;box-shadow:var(--card-shadow)}.errors-page .errors-list-head,.errors-page .errors-row-main{display:grid;grid-template-columns:110px 100px 100px 1fr 60px 70px;gap:16px;padding:18px 20px;align-items:start}.errors-page .errors-list-head{padding:12px 20px;align-items:center}.errors-page .errors-list-head{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);border-bottom:1px solid var(--border-color);background:var(--paper-bg-alt)}.errors-page .errors-row{border-bottom:1px solid var(--border-soft)}.errors-page .errors-row:last-child{border-bottom:none}.errors-page .errors-row.open{background:var(--paper-bg-alt)}.errors-page .errors-row-main{cursor:pointer}.errors-page .errors-row-main:hover{background:var(--hover-bg-color)}.errors-page .col-when .when-rel{font-size:.9375rem;color:var(--color);font-variant-numeric:tabular-nums}.errors-page .col-when .when-abs{font-family:var(--font-mono);font-size:.75rem;color:var(--ink-muted);font-variant-numeric:tabular-nums;margin-top:2px}.errors-page .col-sev{display:flex;align-items:center;gap:8px}.errors-page .sev-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.errors-page .sev-dot.sev-error{background:var(--bucket-error-dot)}.errors-page .sev-dot.sev-warn{background:var(--bucket-warn-dot)}.errors-page .sev-dot.sev-info{background:var(--bucket-info-dot)}.errors-page .sev-label{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.08em;color:var(--color)}.errors-page .pill-module{display:inline-block;font-family:var(--font-mono);font-size:.75rem;background:var(--paper-bg-alt);color:var(--ink-soft);border:1px solid var(--border-color);padding:3px 10px;border-radius:6px}.errors-page .col-msg .msg-code{font-family:var(--font-mono);font-size:1rem;color:var(--color);font-weight:600}.errors-page .col-msg .msg-context{color:var(--ink-muted);font-style:italic;font-size:.875rem;margin-left:10px}.errors-page .col-msg .msg-detail{color:var(--ink-soft);font-family:var(--font-mono);font-size:.8125rem;margin-left:10px}.errors-page .col-msg .msg-url{color:var(--ink-muted);font-family:var(--font-mono);font-size:.8125rem;margin-top:6px;word-break:break-all}.errors-page .count-pill{display:inline-block;padding:2px 8px;border-radius:4px;background:var(--primary-bg);color:var(--primary-color);font-family:var(--font-mono);font-size:.75rem;font-variant-numeric:tabular-nums}.errors-page .count-pill.count-pill-muted{background:0 0;color:var(--ink-muted);border:1px solid var(--border-color)}.errors-page .status-pill{display:inline-block;padding:2px 10px;border-radius:4px;font-family:var(--font-mono);font-size:.8125rem;font-variant-numeric:tabular-nums;border:1px solid transparent}.errors-page .status-pill.status-error{background:var(--bucket-error-bg);color:var(--bucket-error-fg);border-color:var(--bucket-error-bd)}.errors-page .status-pill.status-warn{background:var(--bucket-warn-bg);color:var(--bucket-warn-fg);border-color:var(--bucket-warn-bd)}.errors-page .status-pill.status-info{background:var(--bucket-info-bg);color:var(--bucket-info-fg);border-color:var(--bucket-info-bd)}.errors-page .errors-row-detail{padding:0 16px 16px}.errors-page .detail-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border-color);margin-bottom:12px}.errors-page .detail-tabs button{background:0 0;border:0;border-bottom:2px solid transparent;padding:8px 12px;font-size:.875rem;cursor:pointer;color:var(--ink-muted);font-family:var(--font-sans)}.errors-page .detail-tabs button.active{color:var(--color);border-bottom-color:var(--color)}.errors-page .detail-body{display:grid;grid-template-columns:1fr 260px;gap:20px}.errors-page .detail-main pre{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;font-family:var(--font-mono);font-size:.875rem;line-height:1.7;color:var(--color);max-height:26em;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;box-shadow:var(--card-shadow)}.errors-page .related-list{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;max-height:22em;overflow:auto;box-shadow:var(--card-shadow)}.errors-page .stack-pre{line-height:1.45;white-space:pre;overflow-x:auto}.errors-page .related-row{display:flex;gap:10px;padding:6px 12px;align-items:center;border-bottom:1px solid var(--border-soft);font-size:.8125rem}.errors-page .related-row:last-child{border-bottom:none}.errors-page .detail-actions{display:flex;gap:6px;align-items:center;margin-top:10px}.errors-page .copy-hint{font-size:.75rem;color:var(--bucket-info-fg)}.errors-page .detail-aside{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px;box-shadow:var(--card-shadow)}.errors-page .aside-block+.aside-block{margin-top:16px}.errors-page .aside-label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin-bottom:4px}.errors-page .aside-value{font-family:var(--font-serif);font-size:1rem;color:var(--color);word-break:break-word;line-height:1.3}.errors-page .aside-value.mono{font-family:var(--font-mono);font-size:.8125rem}.errors-page .aside-sub{color:var(--ink-muted);font-style:italic;font-size:.8125rem;font-family:var(--font-sans)}.errors-page .errors-pager{display:flex;justify-content:space-between;align-items:center;padding:10px 0;color:var(--ink-muted);font-size:.875rem}@media (max-width:720px){.errors-page .errors-list-head,.errors-page .errors-row-main{grid-template-columns:80px 80px 1fr 60px}.errors-page .errors-list-head .col-mod,.errors-page .errors-list-head .col-sev,.errors-page .errors-row-main .col-mod,.errors-page .errors-row-main .col-sev{display:none}.errors-page .detail-body{grid-template-columns:1fr}}.overview-page .ov-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:2px}.overview-page .ov-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:6px;vertical-align:middle}.overview-page .ov-dot-ok{background:#2f7a44}.overview-page .ov-dot-warn{background:var(--status-progress)}.overview-page .ov-dot-idle{background:var(--ink-muted)}.dark-mode .overview-page .ov-dot-ok{background:#7dc894}.dark-mode .overview-page .ov-dot-warn{background:var(--status-progress)}.overview-page .ov-kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin:16px 0 22px}.overview-page .ov-kpi-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--card-shadow);transition:box-shadow 160ms ease}.overview-page .ov-kpi-card:hover{box-shadow:var(--card-shadow-hover)}.overview-page .ov-kpi-label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.overview-page .ov-kpi-value{font-family:var(--font-serif);font-size:2.6rem;font-weight:400;line-height:1;margin-top:2px;color:var(--color)}.overview-page .ov-kpi-value.ov-val-warn{color:#b42318}.dark-mode .overview-page .ov-kpi-value.ov-val-warn{color:#f08a82}.overview-page .ov-kpi-sub{font-size:.75rem;color:var(--ink-muted);margin-top:2px}.overview-page .ov-daily-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:-4px 0 22px}.overview-page .ov-daily-card{background:var(--primary-bg);border:1px solid var(--border-color);border-radius:12px;padding:16px 20px;box-shadow:var(--card-shadow)}.overview-page .ov-daily-label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.overview-page .ov-daily-value{font-family:var(--font-serif);font-size:2.5rem;font-weight:400;line-height:1;color:var(--accent,#1f6a64);margin-top:6px}.overview-page .ov-daily-sub{font-size:.75rem;color:var(--ink-muted);margin-top:5px}.dark-mode .overview-page .ov-daily-card{background:var(--paper-card)}.dark-mode .overview-page .ov-daily-value{color:#7cc7be}.overview-page .ov-chart-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.overview-page .ov-chart-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px 14px;box-shadow:var(--card-shadow)}.overview-page .ov-chart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.overview-page .ov-chart-title{font-family:var(--font-serif);font-size:1rem}.overview-page .ov-chart-legend{font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-muted);display:flex;align-items:center;gap:5px}.overview-page .ov-dot-legend{display:inline-block;width:8px;height:8px;border-radius:50%}.overview-page .ov-dot-accent{background:var(--accent,#1f6a64)}.overview-page .ov-dot-ok-fill{background:#2f7a44}.overview-page .ov-dot-user-fill{background:#8b5e2e}.overview-page .ov-dot-new-user-fill{background:var(--status-progress)}.dark-mode .overview-page .ov-dot-ok-fill{background:#7dc894}.dark-mode .overview-page .ov-dot-user-fill{background:var(--status-progress)}.dark-mode .overview-page .ov-dot-new-user-fill{background:var(--status-progress)}.overview-page .ov-spark-bars{display:flex;align-items:flex-end;gap:3px;height:140px}.overview-page .ov-spark-col{flex:1;display:flex;align-items:flex-end;height:100%;position:relative}.overview-page .ov-spark-fill{width:100%;background:var(--accent,#1f6a64);border-radius:2px 2px 0 0;transition:height .3s ease;opacity:.55}.overview-page .ov-spark-fill-alt{background:#2f7a44}.overview-page .ov-spark-fill-user{background:#8b5e2e}.overview-page .ov-spark-fill-new-user{background:var(--status-progress)}.dark-mode .overview-page .ov-spark-fill-alt{background:#7dc894}.dark-mode .overview-page .ov-spark-fill-user{background:var(--status-progress)}.dark-mode .overview-page .ov-spark-fill-new-user{background:var(--status-progress)}.overview-page .ov-spark-col:hover .ov-spark-fill{opacity:1}.overview-page .ov-spark-col.has-tip::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%) translateY(4px);z-index:10;padding:6px 8px;border-radius:6px;background:var(--color);color:var(--canvas-bg-color);font-family:var(--font-mono);font-size:.6875rem;line-height:1;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity 120ms ease,transform 120ms ease}.overview-page .ov-spark-col.has-tip::before{content:"";position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%) translateY(4px);z-index:10;border:5px solid transparent;border-top-color:var(--color);opacity:0;pointer-events:none;transition:opacity 120ms ease,transform 120ms ease}.overview-page .ov-spark-col.has-tip:hover::after,.overview-page .ov-spark-col.has-tip:hover::before{opacity:1;transform:translateX(-50%) translateY(0)}.overview-page .ov-spark-x{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-muted);margin-top:6px}.overview-page .ov-triple-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:18px}.overview-page .ov-panel-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 20px;box-shadow:var(--card-shadow)}.overview-page .ov-panel-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}.overview-page .ov-panel-title{font-family:var(--font-serif);font-size:1rem}.overview-page .ov-panel-meta{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted)}.overview-page .ov-panel-foot{margin-top:12px;padding-top:10px;border-top:1px solid var(--border-color);font-size:.8125rem}.overview-page .ov-panel-foot a{color:var(--link-color);text-decoration:none}.overview-page .ov-panel-foot a:hover{text-decoration:underline}.overview-page .ov-performance{min-width:0;margin:22px 0}.overview-page .ov-performance-head{align-items:center;flex-wrap:wrap;gap:12px 20px}.overview-page .ov-performance-head h2{margin:0 0 4px}.overview-page .ov-performance-note{margin:0 0 12px;font-size:12px;line-height:1.5;color:var(--ink-muted)}.overview-page .ov-performance-head .ov-performance-note{margin:0}.overview-page .ov-performance-window{display:flex;align-items:center;gap:8px;flex-shrink:0}.overview-page .ov-performance-window label{margin:0;font-size:12px;color:var(--ink-muted)}.overview-page .ov-performance-window select{width:auto}.overview-page .ov-performance-tabs{margin:0 0 16px;gap:4px}.overview-page .ov-performance-tabs .paper-tab{white-space:nowrap}.overview-page .ov-metrics-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--border-color);border-radius:var(--radius-control,8px)}.overview-page .ov-metrics-table{width:100%;border-collapse:collapse;color:var(--color);font-size:13px;line-height:1.5;font-variant-numeric:tabular-nums}.overview-page .ov-metrics-table td,.overview-page .ov-metrics-table th{padding:10px 12px;border-bottom:1px solid var(--border-color);vertical-align:middle;white-space:nowrap}.overview-page .ov-metrics-table thead th{background:var(--paper-bg-alt);color:var(--ink-muted);font-size:12px;font-weight:500}.overview-page .ov-metrics-table .num{text-align:right}.overview-page .ov-metrics-table tr:last-child>*{border-bottom:0}.overview-page .ov-metrics-table thead tr:last-child>*{border-bottom:1px solid var(--border-color)}.overview-page .ov-metrics-table tbody tr:hover{background:var(--hover-bg-color)}.overview-page .ov-metrics-table .ov-metric-name{min-width:190px;max-width:280px;text-align:left;white-space:normal;overflow-wrap:anywhere;font-weight:500}.overview-page .ov-metrics-table small{display:block;margin-top:3px;font-size:11px;font-weight:400;color:var(--ink-muted)}.overview-page .ov-metrics-table small .ui-icon{width:12px;height:12px}.overview-page .ov-metric-warning-row{background:rgba(196,138,46,.07)}.overview-page .ov-metric-warn,.overview-page .ov-metrics-table small.ov-metric-warn{color:#946519}.dark-mode .overview-page .ov-metric-warn,.dark-mode .overview-page .ov-metrics-table small.ov-metric-warn{color:var(--status-progress)}.overview-page .ov-performance-message{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;margin:0 0 16px;border:1px solid var(--border-color);border-radius:var(--radius-control,8px);font-size:13px;line-height:1.5}.overview-page .ov-performance-message span{flex:1;min-width:160px}.overview-page .ov-performance-warning{background:rgba(196,138,46,.07)}.overview-page .ov-performance-empty{margin:0;padding:24px 12px;text-align:center;font-size:13px;color:var(--ink-muted)}.overview-page .ov-performance-help{margin-top:16px;font-size:12px;line-height:1.6;color:var(--ink-muted)}.overview-page .ov-performance-help summary{width:fit-content;cursor:pointer}.overview-page .ov-performance-help p{margin:8px 0 0;max-width:80ch}@media (max-width:575px){.overview-page .ov-performance{padding:16px 12px}.overview-page .ov-performance-window{width:100%}.overview-page .ov-performance-window select{flex:1;min-width:0}.overview-page .ov-performance-tabs .paper-tab{flex:1;padding:10px 8px}}.overview-page .ov-stacked-bar{display:flex;height:18px;border-radius:6px;overflow:hidden;margin-bottom:14px}.overview-page .ov-bar-seg{min-width:2px;transition:width .4s ease}.overview-page .ov-bar-ready{background:#2f7a44}.overview-page .ov-bar-preparing{background:var(--status-progress)}.overview-page .ov-bar-error{background:#b42318}.overview-page .ov-bar-expired{background:#8a857c}.overview-page .ov-bar-removed{background:#b5afa2}.dark-mode .overview-page .ov-bar-ready{background:#7dc894}.dark-mode .overview-page .ov-bar-preparing{background:var(--status-progress)}.dark-mode .overview-page .ov-bar-error{background:#f08a82}.dark-mode .overview-page .ov-bar-expired{background:#6b665e}.dark-mode .overview-page .ov-bar-removed{background:#4a453e}.overview-page .ov-bar-legend{display:flex;flex-direction:column;gap:6px}.overview-page .ov-legend-item{display:flex;align-items:center;gap:8px;font-size:.8125rem;text-decoration:none;color:inherit}.overview-page .ov-legend-item:hover{text-decoration:none;color:inherit}.overview-page .ov-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;flex-shrink:0}.overview-page .ov-legend-n{margin-left:auto;font-family:var(--font-mono);font-size:.8125rem;font-weight:600}.overview-page .ov-error-bars{display:flex;flex-direction:column;gap:12px}.overview-page .ov-ebar-row{display:flex;align-items:center;gap:10px}.overview-page .ov-ebar-label{width:30px;flex-shrink:0;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;color:var(--ink-muted)}.overview-page .ov-ebar-track{flex:1;height:10px;background:var(--hover-bg-color);border-radius:5px;overflow:hidden}.overview-page .ov-ebar-fill{height:100%;border-radius:5px;transition:width .4s ease}.overview-page .ov-ebar-error{background:#b42318}.overview-page .ov-ebar-warn{background:var(--status-progress)}.overview-page .ov-ebar-info{background:var(--accent,#1f6a64)}.dark-mode .overview-page .ov-ebar-error{background:#f08a82}.dark-mode .overview-page .ov-ebar-warn{background:var(--status-progress)}.overview-page .ov-ebar-n{width:36px;text-align:right;font-family:var(--font-mono);font-size:.8125rem;font-weight:600;flex-shrink:0}.overview-page .ov-routes-table{display:flex;flex-direction:column}.overview-page .ov-route-row{display:grid;grid-template-columns:1fr 60px 60px 60px;padding:8px 0;border-bottom:1px solid var(--border-soft,var(--border-color));text-decoration:none;color:inherit;font-size:.875rem;align-items:center}.overview-page .ov-route-row:last-child{border-bottom:none}.overview-page .ov-route-row:hover{background:var(--hover-bg-color);text-decoration:none;color:inherit}.overview-page .ov-route-head{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);border-bottom:1px solid var(--border-color)}.overview-page .ov-route-head:hover{background:0 0}.overview-page .ov-route-name{font-family:var(--font-mono);font-size:.8125rem}.overview-page .ov-route-n{text-align:right;font-family:var(--font-mono);font-size:.8125rem}.overview-page .ov-route-lat{color:var(--ink-muted)}.overview-page .ov-n-bad{color:#b42318;font-weight:600}.dark-mode .overview-page .ov-n-bad{color:#f08a82}.overview-page .ov-services-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;box-shadow:var(--card-shadow);margin-bottom:18px}.overview-page .ov-services-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}.overview-page .ov-services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.overview-page .ov-svc{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--border-soft,var(--border-color));border-radius:10px}.overview-page .ov-svc-dot{width:10px;height:10px;border-radius:50%;margin-top:3px;flex-shrink:0}.overview-page .ov-svc-info{display:flex;flex-direction:column;gap:1px;flex:1}.overview-page .ov-svc-name{font-family:var(--font-mono);font-size:.875rem;font-weight:600}.overview-page .ov-svc-meta{font-size:.75rem;color:var(--ink-muted)}.overview-page .ov-svc-detail{font-size:.75rem;color:var(--ink-muted);white-space:nowrap}@media (max-width:900px){.overview-page .ov-kpi-row{grid-template-columns:repeat(3,1fr)}.overview-page .ov-daily-row{grid-template-columns:repeat(3,1fr)}.overview-page .ov-triple-row{grid-template-columns:1fr}}@media (max-width:720px){.overview-page .ov-kpi-row{grid-template-columns:repeat(2,1fr)}.overview-page .ov-daily-row{grid-template-columns:1fr}.overview-page .ov-chart-row{grid-template-columns:1fr}.overview-page .ov-header{flex-direction:column;gap:8px}}@media (max-width:480px){.overview-page .ov-kpi-row{grid-template-columns:1fr 1fr}.overview-page .ov-services-grid{grid-template-columns:1fr 1fr}}.dashboard-heading-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;padding-bottom:12px}.dashboard-heading-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}.dashboard-connections-link{display:inline-flex;align-items:center;gap:7px;min-height:32px;color:var(--ink-muted);font-size:12px;line-height:1.5}.dashboard-connections-link:hover{color:var(--accent);text-decoration:none}.dashboard-connections-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}@media (max-width:767px){.dashboard-heading-actions{align-items:flex-start;padding-bottom:0;gap:4px}.dashboard-connections-link{min-height:44px}}.paper-settings-connection-link{display:flex;align-items:center;gap:12px;padding:18px 0;color:var(--color);font-size:14px}.paper-settings-connection-link>i{color:var(--ink-muted);font-size:18px}.paper-settings-connection-link>span:first-of-type{flex:1}.paper-settings-connection-link small{display:block;margin-top:4px;color:var(--ink-muted);font-size:12px}.paper-settings-connection-link:hover{color:var(--accent);text-decoration:none}.paper-settings-connection-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.connections-heading{margin-bottom:36px}.connections-heading .paper-page-title{font-size:clamp(38px,4.5vw,56px);margin-bottom:12px}.connections-heading .paper-page-lede{font-size:15px}.connections-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:start;border-top:1px solid var(--border-color);padding-top:28px}.connections-grid>section{min-width:0}.connection-title,.connection-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.connection-top{margin-bottom:24px;min-height:28px}.connection-top>i{color:var(--ink-muted);font-size:24px}.connection-top>.fa-key{font-size:18px}.connection-title{margin-bottom:10px}.connections-page h2{font-family:inherit;font-size:22px;font-weight:600;letter-spacing:-.5px;margin:0}.connections-page p{font-size:14px;line-height:1.65;color:var(--ink-muted)}.connection-badge{background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:600;border-radius:5px;padding:4px 8px;white-space:nowrap}.connection-badge-muted{background:var(--paper-bg-alt);color:var(--ink-muted)}.connection-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-muted)}.connection-status::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}.connection-status.is-connected{color:var(--status-ready)}.connection-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:22px 0 16px}.connections-page .btn{font-size:13px;padding:9px 13px;white-space:normal}.connection-revoke p,.connections-page .connection-help{font-size:12px}.connection-link{display:inline-flex;align-items:center;gap:8px;border:0;padding:0;background:0 0;color:var(--accent);font-size:13px;line-height:1.6;font-weight:500;text-align:left;cursor:pointer}.connection-link:hover{color:var(--link-hover-color);text-decoration:underline}.connection-link:disabled{color:var(--ink-muted);opacity:.65;cursor:not-allowed;text-decoration:none}.connection-link:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.connection-installations{list-style:none;padding:0;margin:18px 0;border-top:1px solid var(--border-soft)}.connection-installations li{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 0;font-size:12px;border-bottom:1px solid var(--border-soft)}.connection-revoke{border-top:1px solid var(--border-soft);padding-top:18px;margin-top:24px}.connection-danger{color:var(--status-error)}.connection-resources{margin-top:36px;padding-top:28px;border-top:1px solid var(--border-color)}.connection-count{color:var(--ink-muted);font-size:12px}.connection-empty{display:flex;align-items:center;gap:18px;padding:20px 0;margin:22px 0}.connection-empty>i{font-size:22px;color:var(--ink-muted)}.connection-empty h3{font-size:14px;font-weight:600;margin:0 0 5px}.connection-empty p{font-size:12px;margin:0}.connection-empty>a{margin-left:auto;flex-shrink:0}.connection-resource{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 0;border-bottom:1px solid var(--border-color)}.connection-resource-name{flex:1;min-width:180px;overflow-wrap:anywhere;font-size:14px}.connection-resource-name small{display:block;color:var(--ink-muted);font-size:11px;margin-top:5px}.connection-resource-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.connection-resource-actions .connection-help{flex-basis:100%}.connections-page .connection-footnote{display:flex;align-items:baseline;gap:10px;margin-top:22px;font-size:12px}@media (max-width:767px){.connections-grid{grid-template-columns:1fr;gap:28px}.connections-grid>section+section{border-top:1px solid var(--border-color);padding-top:28px}.connection-empty{flex-wrap:wrap}.connection-empty>div{flex:1;min-width:180px}.connection-empty>a{margin-left:40px}.connection-resource-actions{flex-basis:100%}}.paper-table-empty-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}.paper-table-empty-actions .btn>i{font-size:1em;line-height:1;color:inherit;margin-right:0!important}.auth-back{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-muted);margin-bottom:48px}.auth-layout{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.auth-intro,.auth-options{padding-top:28px}.auth-title-mobile{display:none}.auth-intro .paper-page-title{font-size:clamp(48px,5vw,76px);line-height:1.06;margin:18px 0 24px}.auth-intro .paper-page-lede{max-width:330px}.auth-options{display:grid;gap:28px}.auth-options h2{font-family:inherit;font-size:22px;font-weight:600;margin:0 0 10px}.auth-options p{font-size:14px;line-height:1.65;color:var(--ink-muted)}.auth-options .auth-existing{font-size:12px;border-left:2px solid var(--accent);padding-left:14px;margin:0}.auth-permissions{padding:6px 0 12px;list-style:none;font-size:13px;line-height:1.6}.auth-permissions li{display:flex;gap:10px;margin:12px 0}.auth-permissions i{color:var(--status-ready);margin-top:4px}.auth-continue{display:flex!important;align-items:center;justify-content:space-between;min-height:48px;padding:12px 16px!important}.auth-options small{display:block;font-size:12px;text-align:center;color:var(--ink-muted);margin-top:12px}.auth-legacy{border-top:1px solid var(--border-color);padding-top:24px}.auth-legacy h2{font-size:16px;margin:0}.auth-legacy p{font-size:13px}.source-url-label-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin-bottom:8px}.source-url-label-row>.paper-field-label{font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--color);margin-bottom:6px;display:block}.repo-access{margin:0}.repo-access-details{margin:12px 0 24px}.source-url-label-row .repo-access-switch{padding:2px}.source-url-label-row .repo-access-switch button{padding:6px 10px;font-size:12px;line-height:20px}.repo-access-main{display:flex;align-items:center;gap:10px;padding:0 0 8px;flex-wrap:wrap}.repo-access-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.repo-access-switch{display:inline-flex;gap:3px;padding:3px;border:1px solid var(--border-color);border-radius:7px;flex-wrap:wrap}.repo-access-switch button{border:0;border-radius:4px;background:0 0;color:var(--ink-muted);padding:7px 10px;font:inherit;font-size:12px;cursor:pointer}.repo-access-switch button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);opacity:1;cursor:default;font-weight:600}.repo-access-switch button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.repo-access-details .btn{font-size:12px;padding:8px 12px}.repo-access-note{display:flex;gap:6px 16px;flex-wrap:wrap;padding:0;color:var(--ink-muted);font-size:11px;line-height:1.6}@media (max-width:767px){.auth-page{max-width:480px}.auth-back,.auth-intro .paper-eyebrow,.auth-title-desktop{display:none}.auth-title-mobile{display:inline}.auth-layout{grid-template-columns:1fr;gap:24px}.auth-intro,.auth-options{padding-top:0}.auth-intro .paper-page-title{font-size:40px;line-height:1.15;margin:6px 0 12px}.auth-intro .paper-page-lede{max-width:none;font-size:14px;margin:0}.auth-options{gap:24px}.auth-options .connection-top{margin-bottom:16px}.auth-options h2{font-size:18px}.auth-options p{font-size:13px;margin-bottom:12px}.auth-permissions{padding:0;margin:14px 0 20px;font-size:12px}.auth-permissions li{margin:8px 0}.auth-continue{font-size:14px}.auth-legacy{padding-top:20px}.auth-legacy h2{font-size:15px}.auth-legacy .connection-link{min-height:44px}.repo-access-controls{width:100%;gap:12px}}.text-muted{color:var(--ink-muted)!important}.anonymize-review-note,.draft-status{font-size:13px;color:var(--ink-muted)}.anonymize-review-note{padding:12px 0;margin:0}.anonymize-preview-status{padding:20px 32px;color:var(--ink-muted)}.anonymize-preview-status p{margin:0 0 12px}@media (max-width:575px){.dashboard-page .paper-page-lede{margin-bottom:8px}.dashboard-page .dashboard-heading-actions{gap:4px}.dashboard-page .dashboard-connections-link{min-height:32px}.dashboard-page .dashboard-filter-row{margin-top:12px}.anonymize-preview-status{padding:16px}}.paper-page .paper-page-title{font-size:32px}.paper-page.admin-page .paper-page-title{font-size:28px}.paper-page .paper-page-lede{font-size:14px;line-height:1.5}.paper-settings{padding-top:32px}.paper-settings-body{grid-template-columns:180px minmax(0,1fr);gap:40px;margin-top:24px;padding-top:24px;border-top:0}.paper-settings-main .paper-settings-section{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);padding:20px;margin-bottom:16px}.anonymize-page .paper-section-eyebrow,.paper-settings .paper-section-eyebrow{font-family:var(--font-sans);font-size:16px;font-weight:600;color:var(--color);text-transform:none;letter-spacing:-.01em;margin-bottom:12px}.paper-settings .paper-settings-toc-head{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.paper-settings-section .paper-section-copy{margin-top:0}.paper-settings .quota-row{gap:24px}.paper-settings .quota-header{flex-direction:column;align-items:flex-start;gap:4px}.paper-settings .quota-value{white-space:nowrap}.paper-settings .paper-settings-footer{padding:0 0 20px}.paper-settings .form-control{font-size:14px;border-color:var(--border-color);border-radius:var(--radius-control)}.paper-settings .form-check{padding-top:8px;padding-bottom:8px}.anonymize-page .btn-ink,.explorer-page .btn-ink,.paper-page .btn-ink{background:var(--accent);color:#fff;border-color:var(--accent)}.dark-mode .anonymize-page .btn-ink,.dark-mode .explorer-page .btn-ink,.dark-mode .paper-page .btn-ink{color:#1a1815}.anonymize-page .btn-ink:hover,.explorer-page .btn-ink:hover,.paper-page .btn-ink:hover{background:var(--accent);border-color:var(--accent);color:#fff;filter:brightness(.94)}.dark-mode .anonymize-page .btn-ink:hover,.dark-mode .explorer-page .btn-ink:hover,.dark-mode .paper-page .btn-ink:hover{color:#1a1815}.anonymize-page .btn-ink:active,.explorer-page .btn-ink:active,.paper-page .btn-ink:active{filter:brightness(.9)}input[type=date],select{color-scheme:light}.dark-mode input[type=date],.dark-mode select{color-scheme:dark}.draft-status{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:10px 0}.draft-discard{padding:0;border:0;color:var(--accent);font:inherit;font-size:13px;text-decoration:underline;background:0 0;cursor:pointer}.conference-feedback{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;margin-top:16px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);width:100%}.paper-table{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);margin-top:12px}.dashboard-page .paper-table-dashboard{width:100%}.paper-account-email{margin:20px 0}.paper-account-email .form-control{max-width:420px}.paper-settings .paper-account-email .btn[type=submit]{min-height:36px;padding:7px 18px;white-space:nowrap}.paper-table .paper-table-head{font-family:var(--font-sans);text-transform:none;letter-spacing:0;font-size:12px;background:var(--paper-bg-alt);border-radius:var(--radius-surface) var(--radius-surface) 0 0}.paper-table .paper-table-head,.paper-table .paper-table-row{padding-left:16px;padding-right:16px}.dashboard-page{--dashboard-space-xs:4px;--dashboard-space-sm:8px;--dashboard-space-md:12px;--dashboard-space-lg:16px;--dashboard-space-xl:24px;padding-top:var(--dashboard-space-xl)}.project-icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.project-type-svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.project-empty-icon{width:28px;height:28px;color:var(--ink-faint)}.project-type-icon{display:inline-flex;color:var(--ink-muted);flex-shrink:0}.dashboard-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--dashboard-space-lg)}.dashboard-heading .paper-page-title{font-size:28px;margin-bottom:var(--dashboard-space-xs)}.dashboard-heading .paper-page-lede{display:none}.dashboard-heading .btn{min-height:40px;display:inline-flex;gap:var(--dashboard-space-sm);align-items:center}.dashboard-new-mobile{display:none}.dashboard-quota{position:relative;margin:0;padding:0;border:0;background:0 0}.dashboard-quota>summary{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:5px 10px;border:1px solid var(--border-color);border-radius:6px;background:var(--paper-card);color:var(--color);font-family:var(--font-sans);font-size:12px;cursor:pointer;list-style:none;white-space:nowrap}.dashboard-quota>summary::-webkit-details-marker{display:none}.dashboard-quota>summary:hover,.dashboard-quota[open]>summary{background:var(--paper-bg-alt);border-color:var(--ink-faint)}.quota-summary-label{font-weight:600}.quota-summary-value{color:var(--ink-muted);font-variant-numeric:tabular-nums}.quota-summary-ring{width:18px;height:18px;flex-shrink:0;fill:none;stroke-width:2.5}.quota-ring-track{stroke:var(--border-color)}.quota-ring-fill{stroke:var(--accent);transform:rotate(-90deg);transform-origin:50% 50%}.quota-summary-ring.quota-warn .quota-ring-fill{stroke:var(--status-progress)}.quota-summary-ring.quota-danger .quota-ring-fill{stroke:var(--status-error)}.quota-ring-unlimited{stroke:var(--accent);stroke-width:1.7}.quota-summary-chevron{width:14px;height:14px;margin-left:2px;color:var(--ink-muted);transition:transform .15s ease}.dashboard-quota[open] .quota-summary-chevron{transform:rotate(180deg)}.dashboard-quota .quota-panel{position:absolute;z-index:25;top:calc(100% + 8px);left:0;width:344px;max-width:calc(100vw - 36px);padding:16px;border:1px solid var(--border-color);border-radius:12px;background:var(--paper-card);box-shadow:0 12px 36px rgba(26,24,21,.16)}.quota-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.quota-panel-heading h2{font:600 15px var(--font-sans);margin:0}.quota-panel-heading .project-close{margin:-8px -8px -8px 0}.paper-page .quota-usage{display:grid;grid-template-columns:1fr;gap:16px;margin:0;padding:0}.quota-usage .quota-item+.quota-item{padding-top:16px;border-top:1px solid var(--border-soft,var(--border-color))}.quota-usage .quota-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.quota-usage .quota-label{display:inline-flex;align-items:center;gap:8px;font:500 12px var(--font-sans);letter-spacing:0;text-transform:none;color:var(--ink-muted)}.quota-usage .quota-label .project-type-svg{width:16px;height:16px}.quota-usage .quota-value{display:flex;align-items:baseline;gap:4px;font:12px var(--font-sans);font-variant-numeric:tabular-nums;color:var(--ink-muted);margin-bottom:8px}.quota-usage .quota-value strong{font-size:20px;line-height:1.2;font-weight:600;color:var(--color)}.quota-percent,.quota-usage .quota-unlimited-tag{margin-left:auto;padding:2px 6px;border-radius:4px;background:var(--paper-bg-alt);font:11px var(--font-sans);color:var(--ink-muted);white-space:nowrap}.quota-warn>.quota-header .quota-percent{color:var(--status-progress)}.quota-danger>.quota-header .quota-percent{color:var(--status-error)}.quota-usage .quota-track{height:5px;border:0;background:var(--paper-bg-alt)}.quota-usage .quota-track .quota-fill{min-width:0;background:var(--accent)}.quota-remaining{margin:6px 0 0;color:var(--ink-muted);font-size:11px}.quota-remaining.quota-limit{color:var(--status-error)}.quota-loading{font-size:12px;color:var(--ink-muted);margin:12px 0 0}.dashboard-page .dashboard-filter-row{display:flex;align-items:center;gap:var(--dashboard-space-md);padding:0;margin:var(--dashboard-space-lg) 0 0;border:0;background:0 0}.dashboard-page .dashboard-filter-row .search-wrap{flex:1 1 240px;min-width:0}.dashboard-page .dashboard-filter-row .form-control{height:40px;padding:8px 12px;font-size:13px;background:var(--paper-card)}.dashboard-page .dashboard-filter-controls{display:flex;flex-wrap:nowrap;align-items:center;gap:var(--dashboard-space-sm)}.dashboard-extra-filters{display:flex;gap:var(--dashboard-space-sm)}.dashboard-filters-toggle{display:none}.dashboard-page .dashboard-filter-row .btn-group .btn{border:0;background:0 0;border-radius:6px;height:36px;padding:6px 10px}.dashboard-page .dashboard-filter-row .btn-group .btn.btn-primary{background:var(--accent-soft);color:var(--accent)}.dashboard-page .dashboard-filter-row .btn-group .btn.btn-primary:active,.dashboard-page .dashboard-filter-row .btn-group .btn.btn-primary:hover{background:var(--accent-soft)!important;color:var(--accent)}.dashboard-page .dashboard-filter-row .dropdown-toggle{height:36px;padding:6px 10px}.dashboard-type-filter .project-type-svg{display:none}.sort-direction{width:14px;height:14px}.sort-direction.ascending{transform:rotate(180deg)}.dashboard-page .dashboard-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dashboard-space-sm) var(--dashboard-space-md);margin:var(--dashboard-space-md) 0 0;padding:0}.dashboard-view-tabs{display:flex;align-items:center;gap:var(--dashboard-space-lg)}.dashboard-view-short{display:none}.dashboard-view-tabs button{min-height:36px;border:0;border-bottom:2px solid transparent;border-radius:0;background:0 0;font:inherit;font-size:13px;color:var(--ink-muted);padding:4px 0}.dashboard-view-tabs button[aria-pressed=true]{color:var(--color);border-bottom-color:var(--color);font-weight:600}.attention-count{padding:1px 5px;margin-left:4px;border-radius:4px;background:var(--paper-bg-alt);font-size:11px;font-variant-numeric:tabular-nums}.attention-count.has-attention{color:var(--status-error)}.dashboard-count{margin-left:auto;font-size:12px;color:var(--ink-muted)}.dashboard-active-filters{display:flex;align-items:center;flex-wrap:wrap;gap:var(--dashboard-space-sm);width:100%}.dashboard-page .filter-chip{display:inline-flex;font-family:var(--font-sans);font-size:11px;text-transform:none;letter-spacing:0;border-radius:6px}.dashboard-page .filter-chip .project-type-svg{width:12px;height:12px;margin-left:4px}.dashboard-page .filter-chip-close{min-width:24px;min-height:24px;display:inline-flex;align-items:center;justify-content:center;margin:-2px -4px -2px 2px}.dashboard-page .btn-link-inline{color:var(--ink-muted);font-size:12px}.dashboard-page .paper-table-dashboard{margin-top:var(--dashboard-space-md);border-left:0;border-right:0;border-radius:0}.dashboard-page .paper-table-dashboard .paper-table-head,.dashboard-page .paper-table-dashboard .paper-table-row{grid-template-columns:minmax(280px,3fr) 180px 72px 148px 64px;gap:var(--dashboard-space-lg);padding:8px 12px}.dashboard-page .paper-table-dashboard .paper-table-head{border-radius:0}.dashboard-page .paper-table .cell-anon{gap:var(--dashboard-space-sm)}.dashboard-page .paper-table .anon-text{flex:1}.dashboard-page .paper-table .repo-name{font-family:var(--font-sans);font-size:14px;font-weight:600}.dashboard-page .paper-table .anon-sub{display:flex;align-items:center;gap:var(--dashboard-space-sm);min-width:0}.anonymous-id{font-size:12px;font-family:var(--font-mono);color:var(--ink-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-page .paper-table .type-badge{font-family:var(--font-sans);letter-spacing:0;font-size:11px;text-transform:none;border-radius:6px}.dashboard-page .paper-table .status-sub{font-size:12px}.dashboard-page .paper-table .cell-conf{font-family:var(--font-sans);letter-spacing:0;text-transform:none}.dashboard-page .conf-tag .project-type-svg{width:14px;height:14px}.dashboard-row-meta{display:contents}.dashboard-page .cell-actions{gap:0;align-items:center}.copy-link-inline,.dashboard-page .btn-icon-dots,.project-close{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:0 0;color:var(--ink-muted);padding:0;width:32px;height:32px;min-width:32px;cursor:pointer}.copy-link-inline:focus-visible,.copy-link-inline:hover,.dashboard-page .btn-icon-dots:hover,.project-close:hover{background:var(--accent-soft);color:var(--accent)}.copy-link-inline:disabled{opacity:.5;cursor:wait}.mobile-meta-icon{display:none}.project-attention-action{display:inline-block;color:var(--accent);border:0;background:0 0;padding:0;font:inherit;font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.project-attention-action{text-align:left}.dashboard-page .cell-status .project-attention-action{flex-basis:100%}.project-details-row{width:100%;border-bottom:1px solid var(--border-color)}.project-details{padding:var(--dashboard-space-xl);background:var(--paper-bg-alt)}.project-details-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--dashboard-space-sm)}.project-details-heading h2{font:600 16px var(--font-sans);margin:0}.project-details-list{display:grid;grid-template-columns:1fr 1fr;gap:var(--dashboard-space-md) var(--dashboard-space-xl);margin:12px 0}.project-details-list dt{font-size:12px;color:var(--ink-muted);font-weight:500;margin-bottom:4px}.project-details-list dd{margin:0;font-size:13px;overflow-wrap:anywhere}.project-details-list code{color:var(--color);font-size:12px}.project-name-form{margin-top:var(--dashboard-space-lg);padding-top:var(--dashboard-space-lg);border-top:1px solid var(--border-color)}.project-name-form label{display:block;font-size:13px;font-weight:500;margin-bottom:4px}.project-name-form p,.project-progress-help{font-size:12px;color:var(--ink-muted);margin-bottom:8px}.project-name-controls{display:flex;gap:var(--dashboard-space-sm);max-width:560px}.project-name-controls .form-control{min-width:0;font-size:14px}.project-name-controls .btn{flex-shrink:0;min-height:40px}.project-name-form .project-name-error{color:var(--status-error)}.project-details-button{min-height:44px;padding:0 8px;border:0;border-radius:6px;background:0 0;font:inherit;font-size:12px;color:var(--ink-muted);cursor:pointer}.anonymize-page .anonymize-topbar-title{font-family:var(--font-sans);font-size:28px;font-weight:600}.anonymize-topbar{padding:16px 24px}.anonymize-form-col{background:var(--paper-bg-alt)}.anonymize-form-col .paper-settings-main{padding:20px 24px}.anonymize-form-col .paper-settings-section{padding:18px}.anonymize-form-col .paper-settings-section:first-child{padding-top:18px}.anonymize-form-col .anonymize-submit-bar{background:var(--paper-bg-alt);padding:12px 0}.anonymize-preview-head .paper-eyebrow{font-family:var(--font-sans);font-size:14px;font-weight:600;color:var(--color);text-transform:none;letter-spacing:0}.anonymize-preview-col{background:var(--canvas-bg-color);padding:24px}.anonymize-preview-head{flex-wrap:wrap;gap:6px 12px;margin-bottom:16px}.anonymize-preview-body{padding:24px}.anonymize-mobile-tabs,.anonymize-preview-empty,.mobile-preview-jump{display:none}.anonymize-page .repo-access-note{font-size:12px}@media (max-width:900px){.paper-settings-body{grid-template-columns:1fr;gap:18px}.paper-settings-toc{padding:0}.paper-settings-toc-head{display:none}.paper-table .paper-table-row{padding-left:14px;padding-right:14px}}@media (max-width:767px){.anonymize-page .paper-page-title,.paper-page .paper-page-title{font-size:24px}.paper-settings{padding:20px 16px 40px}.paper-settings-main .paper-settings-section{padding:16px}.anonymize-topbar{padding:12px 16px}.anonymize-topbar .paper-crumbs{display:none}.anonymize-mobile-tabs{display:flex;gap:4px;padding:8px 16px;border-bottom:1px solid var(--border-color);background:var(--paper-card)}.anonymize-mobile-tabs button{flex:1;font:inherit;font-size:13px;padding:10px;border:0;border-radius:6px;background:0 0;color:var(--ink-muted)}.anonymize-mobile-tabs button[aria-selected=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.anonymize-page:not(.mobile-preview-active) .anonymize-preview-col{display:none}.mobile-preview-active .anonymize-form-col{display:none}.mobile-preview-active .anonymize-preview-empty{display:block;padding:24px 16px;color:var(--ink-muted)}.anonymize-form-col .paper-settings-main{padding:16px}.anonymize-form-col .anonymize-submit-bar{background:var(--paper-bg-alt)}.mobile-preview-jump{display:block;width:100%;min-height:44px}.anonymize-preview-col{padding:16px}.anonymize-preview-body{padding:16px}}@media (max-width:575px){.paper-settings .quota-header{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 8px}}@media (max-width:1100px) and (min-width:901px){.dashboard-page .dashboard-filter-row{flex-wrap:wrap}.dashboard-page .dashboard-filter-row .search-wrap{flex-basis:100%}.dashboard-page .dashboard-filter-controls{width:100%;justify-content:space-between}}@media (max-width:900px){.dashboard-page .paper-table.paper-table-dashboard .paper-table-row{gap:4px 8px;padding:8px 12px}.dashboard-page .paper-table .cell-anon{flex:1 1 calc(100% - 96px);min-width:0}.dashboard-page .paper-table .cell-actions{flex:0 0 88px}.dashboard-row-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;order:3;width:100%}.dashboard-page .dashboard-row-meta .cell-status{flex:1 1 80px;flex-wrap:wrap;gap:2px 8px}.dashboard-page .dashboard-row-meta .cell-expires,.dashboard-page .dashboard-row-meta .cell-views{flex-shrink:0;font-size:12px}.dashboard-page .cell-expires::before,.dashboard-page .cell-views::before{content:none}.dashboard-page .mobile-meta-icon{display:inline-block;width:14px;height:14px}.dashboard-page .dashboard-row-meta .status-sub-date{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dashboard-page .dashboard-row-meta .status-sub-error,.dashboard-page .dashboard-row-meta .status-sub-warn{flex-basis:100%;white-space:normal;overflow-wrap:anywhere}.dashboard-page .dashboard-row-meta .status-sub::before{content:none}.dashboard-page .project-attention-action{min-height:44px;display:inline-flex;align-items:center}.dashboard-page .paper-table .anon-sub .commit-hash,.dashboard-page .paper-table .anon-sub .conf-tag{display:none}}@media (max-width:767px){.container.dashboard-page{padding-top:12px}.dashboard-heading .paper-page-title{font-size:24px}.dashboard-heading-actions .btn-ink{min-height:44px}.dashboard-new-label{display:none}.dashboard-new-mobile{display:inline}.dashboard-quota>summary{min-height:44px;gap:6px;padding:10px;font-size:12px;line-height:20px}.dashboard-quota .quota-panel{max-height:calc(100dvh - 184px);overflow-y:auto;overscroll-behavior:contain}.dashboard-page .dashboard-filter-row{flex-wrap:wrap;gap:8px;margin-top:12px}.dashboard-page .dashboard-filter-row .search-wrap{flex:1 1 0}.dashboard-page .dashboard-filter-row .form-control{height:44px}.dashboard-page .dashboard-filters-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:8px;min-height:44px;background:0 0;border:0}.dashboard-page .dashboard-filter-controls{display:none;width:100%}.dashboard-page .dashboard-filter-controls.expanded{display:flex;flex-wrap:wrap;gap:8px}.dashboard-page .dashboard-filter-controls .btn-group{width:100%;display:flex}.dashboard-page .dashboard-filter-controls .btn-group .btn{flex:1;min-height:44px}.dashboard-extra-filters{display:flex;width:100%}.dashboard-page .dashboard-extra-filters .dropdown{flex:1;min-width:0}.dashboard-page .dashboard-extra-filters .dropdown-toggle{width:100%;height:44px}.dashboard-type-filter .type-filter-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dashboard-type-filter .project-type-svg{display:inline-block}.dashboard-page .dashboard-meta{margin-top:8px;gap:4px 8px}.dashboard-view-tabs{gap:16px}.dashboard-view-tabs button{min-width:44px;min-height:44px;font-size:12px}.dashboard-count{font-size:11px}.dashboard-count{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.dashboard-view-long{display:none}.dashboard-view-short{display:inline}.dashboard-active-filters{display:contents}.dashboard-page .filter-chip{font-size:11px;padding:0 8px;min-height:44px;gap:4px}.dashboard-page .filter-chip-close{min-width:44px;min-height:44px;margin:0}.dashboard-page .btn-link-inline{min-height:44px;font-size:12px}.dashboard-page .paper-table-dashboard{width:calc(100% + 36px);margin:8px -18px 0;border-left:0;border-right:0;border-radius:0}.dashboard-page .paper-table .repo-name{font-size:13px}.project-details{padding:16px 12px}.project-details-list{grid-template-columns:1fr;gap:12px}.project-name-controls{flex-wrap:wrap}.project-name-controls .form-control{flex-basis:100%}.project-name-controls .btn{min-height:44px}}@media (max-width:360px){.dashboard-attention-prefix{display:none}.dashboard-attention-prefix+span{text-transform:capitalize}}.ui-icon-definitions{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}.ui-icon{display:inline-block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;vertical-align:-3px}.ui-icon.sort-direction{width:14px;height:14px}.pr-title-row{display:flex;align-items:flex-start;gap:16px}.pr-title-row .pr-title{flex:1;min-width:0}.pr-title-row>.btn{flex-shrink:0}.ui-icon.record-type-icon{color:var(--ink-muted)}.btn .ui-icon,.dropdown-item .ui-icon{width:16px;height:16px}.btn-icon-dots .ui-icon{width:18px;height:18px}.anonymize-page .paper-page-title,.paper-page .paper-page-title{font-size:28px}.paper-faq,.paper-page{padding-top:24px}.paper-page .paper-page-lede{margin-bottom:16px;overflow-wrap:anywhere}.paper-page-title{overflow-wrap:anywhere}.anonymize-page .form-control,.paper-page .form-control{min-height:40px;font-family:var(--font-sans);font-size:14px;border-radius:var(--radius-control)}.anonymize-page textarea.form-control,.paper-page textarea.form-control{height:auto}.anonymize-page .btn,.paper-page .btn,.status-bar-actions .btn{min-height:var(--button-height);padding:7px var(--button-padding-x);font:500 var(--button-font-size)/var(--button-line-height) var(--font-sans);border-radius:var(--radius-button);gap:6px}.anonymize-page .btn.btn-sm,.paper-page .btn.btn-sm,.status-bar-actions .btn{min-height:var(--button-compact-height);padding:5px 10px;font-size:13px;border-radius:6px}.anonymize-page .btn-ink,.paper-page .btn-ink{min-height:40px;padding:9px 15px}.btn-hero>i,.btn>.project-type-svg,.btn>.ui-icon,.btn>i{width:16px;height:16px;margin:0!important;flex-shrink:0}.btn.dropdown-toggle::after{margin-left:0}.btn.disabled,.btn:disabled{cursor:not-allowed}.btn.disabled:hover,.btn:disabled:hover{filter:none}.paper-page .btn.btn-link{background:0 0;border-color:transparent}.auth-continue.btn{min-height:44px;padding:11px 16px!important}.anonymize-page .btn.btn-icon,.paper-page .btn.btn-icon{width:32px;height:32px;min-width:32px;min-height:32px;padding:0}.paper-page .btn.btn-icon-dots{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border:0;background:0 0;color:var(--ink-muted)}.paper-page .btn-icon-dots:hover{background:var(--accent-soft);color:var(--accent)}.paper-page .btn-group .btn-primary:active,.paper-page .btn-group .btn-primary:hover{background:var(--accent-soft)!important;color:var(--accent)}.paper-page .paper-section-eyebrow{font-family:var(--font-sans);font-size:16px;font-weight:600;color:var(--color);text-transform:none;letter-spacing:0;margin-bottom:12px}.paper-page .paper-field-label{font-family:var(--font-sans);font-size:13px;letter-spacing:0}.paper-tabs .paper-tab{min-height:44px}.paper-pill,.status-pill{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none;border-radius:6px}.paper-meta-rule{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none;gap:12px 24px}.paper-meta-rule b:not(.commit-hash){font-family:var(--font-sans);font-weight:500}.connections-grid{gap:16px}.connections-grid>section{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);padding:20px}.connections-heading{margin-bottom:24px}.claim-page .claim-form,.status-page>.paper-settings-section{padding:20px;margin-top:24px;border:1px solid var(--border-color);border-radius:var(--radius-surface);background:var(--paper-card)}.claim-page .claim-form{max-width:640px}.status-page .anonymize-submit-bar{background:0 0;gap:8px;flex-wrap:wrap}.anonymize-landing{padding-top:32px}.paper-settings .quota-usage{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.paper-settings .quota-usage .quota-item+.quota-item{padding-top:0;border-top:0;padding-left:16px;border-left:1px solid var(--border-color)}.paper-settings .quota-usage .quota-header{flex-direction:row;align-items:center;flex-wrap:wrap}.paper-settings .quota-usage .quota-value{white-space:normal;flex-wrap:wrap}.paper-faq-hero{padding-bottom:24px;margin-bottom:24px}.paper-faq-toc-head{font-family:var(--font-sans);font-size:12px;text-transform:none;letter-spacing:0;margin-bottom:8px}.paper-faq-eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px}.paper-faq-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.4rem,4.6vw,3.6rem);line-height:1.05;letter-spacing:-.02em;max-width:13em;margin-bottom:16px;text-wrap:balance}.paper-faq-title em{font-style:italic;color:var(--accent)}.paper-faq-lede{font-size:14px}.paper-faq-body{grid-template-columns:180px minmax(0,1fr);gap:40px}.faq-section h4.faq-cat{font:400 30px/1.15 var(--font-serif);letter-spacing:-.015em;padding-bottom:12px}.faq-section h4.faq-cat .ui-icon{display:none}.faq-section .panel-group{margin-bottom:32px}.faq-section .panel-default .panel-title a{font:500 15px/1.5 var(--font-sans);padding:16px 0 16px 28px;min-height:44px}.faq-section .panel-default .panel-body{padding-left:28px!important}.faq-section .panel-default .panel-title a:after{content:"";top:22px;width:8px;height:8px;border-right:1.5px solid var(--ink-soft);border-bottom:1.5px solid var(--ink-soft);transform:translateX(4px) rotate(45deg);transition:transform .15s ease}.faq-section .panel-default .panel-title a.collapsed:after{content:"";transform:translateX(2px) rotate(-45deg)}.faq-section .panel-default .panel-title a:hover:after{border-color:var(--color)}.paper-faq-toc nav a.active{color:var(--color);font-weight:500}.paper-empty-title{font:600 32px/1.2 var(--font-sans);letter-spacing:-.025em}.paper-empty-title em{font-style:normal}.btn-hero{justify-content:center;gap:8px;min-height:48px;padding:13px 20px;font-size:15px;line-height:20px;background:var(--accent);border-color:var(--accent);color:#fff;border-radius:var(--radius-button)}.dark-mode .btn-hero{background:#1f6a64;border-color:#1f6a64;color:#fff}.btn-hero:hover{background:var(--accent);color:#fff;filter:brightness(.94)}.dark-mode .btn-hero:hover{background:#24786f;border-color:#24786f;color:#fff;filter:none}.paper-table:not(.paper-table-dashboard){border-left:0;border-right:0;border-radius:0}.paper-table:not(.paper-table-dashboard) .paper-table-head{border-radius:0}.paper-table .cell-anon{gap:8px}.paper-table .cell-anon .anon-text{flex:1}.paper-table-conferences .cell-anon .repo-name{font-family:var(--font-sans);font-weight:600}.paper-table .anon-sub>a,.paper-table .anon-sub>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.paper-table .anon-sub .ui-icon{width:14px;height:14px}.paper-page .filter-chip{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none;border-radius:6px}.paper-page .filter-chip-close .ui-icon{width:12px;height:12px}.admin-nav{gap:4px;border:0;border-bottom:1px solid var(--border-color);border-radius:0;padding:0 0 8px;background:0 0}.admin-nav a{font-family:var(--font-sans);font-size:13px;letter-spacing:0;text-transform:none;border-radius:6px;min-height:40px;padding:8px 12px}.admin-nav a.active{background:var(--accent-soft);color:var(--accent)}.admin-nav .ui-icon{width:16px;height:16px}.admin-filter-toolbar{background:0 0;border:0;padding:0}.admin-filter-inline>label,.admin-filter-inline>span{font-family:var(--font-sans);text-transform:none;letter-spacing:0}.admin-summary .summary-total{font-family:var(--font-sans);font-size:18px;font-weight:600}.admin-summary .summary-pill{font:500 13px/20px var(--font-sans);min-height:32px;padding:5px 10px;border-radius:6px}.admin-summary .summary-pill.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.admin-summary .summary-pill .count{font-family:var(--font-sans)}.admin-active-chip{font-family:var(--font-sans);font-size:12px}.admin-active-chip button .ui-icon{width:12px;height:12px}.user-detail-card .user-header h2{font:600 20px/1.4 var(--font-sans)}.errors-page .errors-toolbar .select-wrap label,.errors-page .volume-head,.overview-page .ov-panel-meta,.paper-detail-grid .detail-label,.paper-progress .paper-progress-label,.status-page .paper-error-eyebrow,.user-detail-grid .detail-label{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.overview-page .ov-chart-title,.overview-page .ov-panel-title,.paper-error-title{font:600 16px/1.4 var(--font-sans)}.paper-error-head>.ui-icon,.paper-ratelimit-head>.ui-icon{margin-top:3px;color:var(--status-error)}.paper-ratelimit-head>.ui-icon{color:var(--status-progress)}.errors-page .seg-tabs{border-radius:var(--radius-control)}.errors-page .seg-tabs button{min-height:36px;padding:7px 12px;font:500 14px/20px var(--font-sans)}.errors-page .seg-tabs button.active{background:var(--accent-soft);color:var(--accent)}.errors-page .errors-list,.errors-page .kpi-card:hover,.errors-page .volume-chart,.overview-page .ov-chart-card,.overview-page .ov-panel-card{box-shadow:none}.errors-page .kpi-value,.overview-page .ov-daily-value,.overview-page .ov-kpi-value,.q-card-count,.user-hero-name{font-family:var(--font-sans);font-size:28px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.errors-page .kpi-label,.overview-page .ov-daily-label,.overview-page .ov-kpi-label,.q-card-name,.q-section-label,.user-hero-details .detail-label{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.overview-page .ov-daily-card{background:var(--paper-card);box-shadow:none;border-radius:var(--radius-surface)}.dark-mode .overview-page .ov-daily-value,.overview-page .ov-daily-value{color:var(--accent)}.errors-page .kpi-card,.overview-page .ov-kpi-card{box-shadow:none;border-radius:var(--radius-surface)}.q-card{border-radius:var(--radius-surface)}.q-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.q-range-btns{border-radius:var(--radius-control)}.q-job-detail-actions .btn,.q-range-btns .btn{font-family:var(--font-sans);font-size:13px}.q-range-btns .btn.active{background:var(--accent-soft);color:var(--accent)}@media (max-width:900px){.paper-settings .quota-usage{grid-template-columns:1fr;gap:16px}.paper-settings .quota-usage .quota-item+.quota-item{padding-left:0;border-left:0;border-top:1px solid var(--border-color);padding-top:16px}.paper-table:not(.paper-table-dashboard) .paper-table-row{gap:4px 8px!important;padding:8px 12px}.paper-table:not(.paper-table-dashboard) .cell-anon{flex:1 1 calc(100% - 52px);order:1}.paper-table:not(.paper-table-dashboard) .cell-actions{order:2;flex:0 0 44px}.paper-table .admin-users-row>[role=cell]:first-child,.paper-table.paper-table-repos.has-bulk .paper-table-row>[role=cell]:first-child{flex:0 0 24px;order:0}.paper-table .admin-users-row .cell-anon,.paper-table.paper-table-repos.has-bulk .cell-anon{flex-basis:calc(100% - 84px)}.paper-table:not(.paper-table-dashboard) .cell-anon .anon-sub{font-size:12px;gap:6px}.paper-table:not(.paper-table-dashboard) .cell-status .status-sub{font-size:12px}.paper-table .cell-expires::before,.paper-table .cell-views::before{content:none}.paper-table .cell-expires .mobile-meta-icon,.paper-table .cell-views .mobile-meta-icon{display:inline-block;width:14px;height:14px}.paper-faq-body{grid-template-columns:1fr;gap:24px}}@media (max-width:767px){.paper-faq,.paper-page{padding-top:20px}.paper-settings .paper-account-email .btn[type=submit]{min-height:40px;padding:9px 18px}.anonymize-page .paper-page-title,.paper-page .paper-page-title,.paper-page.admin-page .paper-page-title{font-size:24px}.paper-faq-title{font-size:40px}.anonymize-page .form-control,.paper-page .form-control{min-height:44px}.anonymize-page .btn,.connection-link,.draft-discard,.paper-faq-toc a,.paper-page .btn,.paper-settings-toc nav a{min-height:44px}.anonymize-page .btn,.paper-page .btn,.status-bar-actions .btn{min-height:44px;padding:11px 14px;font-size:14px;line-height:20px;white-space:normal}.anonymize-page .btn.btn-sm,.paper-page .btn.btn-sm{min-height:44px;padding:11px 12px;font-size:14px}.anonymize-page .btn.btn-icon,.copy-link-inline,.paper-page .btn.btn-icon,.paper-page .btn.btn-icon-dots,.project-close{width:44px;height:44px;min-width:44px;min-height:44px;padding:0}.dashboard-page .dashboard-filter-row .btn-group .btn,.dashboard-page .dashboard-filter-row .dropdown-toggle{height:auto;min-height:44px;font-size:14px;padding:11px 10px}.dashboard-heading-actions .btn-ink{padding:11px 16px}.dashboard-page .dashboard-filters-toggle{padding:11px 10px}.errors-page .btn-icon,.pr-title-row .btn,.status-bar-actions .btn{min-width:44px;min-height:44px;padding:0}.status-bar-actions .btn{width:44px;height:44px}.errors-page .seg-tabs button,.paper-tab{min-height:44px}.errors-page .seg-tabs button{padding:11px 12px}.status-bar-actions{flex-wrap:wrap;max-width:100%}.leftCol-close,.tree-search-clear{min-width:44px;min-height:44px}.anonymize-landing{padding:20px 18px}.anonymize-landing .repo-access-switch button,.source-url-label-row .repo-access-switch button{min-height:44px;padding:11px 10px;font-size:13px}.paper-settings-body{margin-top:16px;padding-top:0;gap:16px}.paper-settings-toc nav{gap:0 12px}.paper-settings-toc nav a{display:inline-flex;align-items:center}.paper-faq{padding-left:18px;padding-right:18px}.paper-faq-toc nav{display:flex;flex-direction:row;flex-wrap:wrap;gap:0 16px}.paper-faq-toc a{display:inline-flex;align-items:center;padding:8px 0;border-left:0;border-bottom:2px solid transparent;margin-left:0}.paper-faq-toc nav a.active,.paper-faq-toc nav a:hover{border-bottom-color:var(--accent);color:var(--accent)}.claim-page .claim-form,.status-page>.paper-settings-section{padding:16px;margin-top:16px}.admin-nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:4px;max-width:100%;margin:8px 0 16px}.admin-nav a{flex-shrink:0;min-height:44px}.admin-summary .summary-pill{min-height:44px;padding:11px 12px;font-size:14px}.admin-active-chip button{min-width:44px;min-height:44px}.admin-filter-row{gap:8px}.admin-filter-row .admin-filter-inline{gap:8px;flex-wrap:wrap}.errors-page .kpi-grid{grid-template-columns:1fr 1fr;gap:12px}.q-cards{flex-direction:row}.q-card{min-width:130px}.q-header-actions{flex-wrap:wrap;gap:8px}}.paper-page.container:not(.auth-page){max-width:1180px}.paper-page>.row{margin-left:0;margin-right:0}.paper-page>.row>.w-100,.paper-page>.row>[class*=col]{padding-left:0;padding-right:0}.anonymize-landing{align-items:flex-start}.status-page .paper-support-grid{margin-bottom:0}.explorer-content .ace_editor{font-family:var(--font-mono);line-height:1.6}.dark-mode .explorer-content .ace-nord-dark,.dark-mode .explorer-content .ace-nord-dark .ace_gutter{background:var(--main-bg-color)}.explorer-content .file-content.markdown-body{max-width:960px;padding:32px 40px 96px}.leftCol-project-header .project-name{white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.file-error{font-size:inherit;font-weight:inherit;text-align:left}.file-error-card{width:100%;max-width:520px;margin-top:0}.file-error-msg{margin:12px 0 0;font-size:14px;line-height:1.55;color:var(--ink-soft)}.file-error-actions{display:flex;gap:8px;margin-top:16px}.file-error .paper-empty-title{font-size:20px;text-align:center}@media (min-width:992px){.leftCol-foot{padding-bottom:72px}}.explorer-content .ace-chrome,.explorer-content .ace-chrome .ace_gutter{background:var(--main-bg-color)}@media (max-width:991px){.explorer-content .file-content.markdown-body{padding:20px 16px 96px}.anonymize-landing{padding:20px 18px}.anonymize-landing-inner{padding:0}.paper-faq-toc nav,.paper-settings-toc nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.paper-faq-toc nav a,.paper-settings-toc nav a{flex-shrink:0;white-space:nowrap}.paper-faq-body,.paper-settings-body{grid-template-columns:minmax(0,1fr)}.paper-faq-toc,.paper-settings-toc{position:static}.paper-faq-toc nav,.paper-settings-toc nav{display:flex;flex-direction:row;gap:0 16px}.paper-faq-toc nav a,.paper-settings-toc nav a{display:inline-flex;align-items:center;padding:8px 0;margin-left:0;border-left:0;border-bottom:2px solid transparent}.paper-faq-toc nav a.active,.paper-faq-toc nav a:hover,.paper-settings-toc nav a.active,.paper-settings-toc nav a:hover{border-bottom-color:var(--accent)}.paper-page .dashboard-filter-controls .dropdown .dropdown-toggle{justify-content:flex-start;gap:6px}.paper-page .dashboard-filter-controls .dropdown .dropdown-toggle::after{margin-left:auto}}@media (max-width:480px){.paper-page .paper-page-lede{display:block;-webkit-line-clamp:unset;overflow:visible}}.navbar .btn-signin,.navbar .btn-signin:hover{background:var(--accent);border-color:var(--accent);color:#fff!important}.dark-mode .navbar .btn-signin,.dark-mode .navbar .btn-signin:hover{background:#237a71;border-color:#237a71;color:#fff!important}.navbar .btn-signin:hover{filter:brightness(.94)}.paper-progress .paper-progress-bar,.paper-progress.paper-progress-ready .paper-progress-bar{background:var(--accent)}.paper-progress .paper-progress-label{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.paper-error-eyebrow,.paper-support-card .paper-support-eyebrow{font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}.leftCol-foot .last-update{font-family:var(--font-sans);font-size:11px;letter-spacing:0}.paper-proof-venues span{font-family:var(--font-sans);font-size:18px;font-weight:600;letter-spacing:.02em;color:var(--ink-soft)}.markdown-body mark.redaction{background:var(--accent-soft);color:var(--accent);border-radius:3px;padding:0 2px}.ace_marker-layer .ace_redaction{position:absolute;background:var(--accent-soft);border-radius:3px}.leftCol-project-header{flex-wrap:wrap;row-gap:2px}.project-expiry{flex:1 0 100%;display:flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-muted)}.project-expiry .ui-icon{width:12px;height:12px}.status-bar-actions .btn-icon-only{width:32px;padding:0;justify-content:center}.share-link-row{display:flex;gap:8px;margin-top:4px}.share-link-input{flex:1;min-width:0;font-family:var(--font-mono);font-size:14px;background:var(--paper-bg-alt)}.share-link-row .btn{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;min-width:112px;justify-content:center}.share-link-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.share-link-actions .btn{display:inline-flex;align-items:center;gap:6px}.status-page .paper-support-grid{gap:0 32px}.status-page .paper-support-card{padding:16px 0 0;border:0;border-top:1px solid var(--border-color);border-radius:0;background:0 0}.status-page .paper-support-card:hover{border-color:var(--color)}@media (min-width:992px){.paper-table .cell-expires{white-space:nowrap}}.paper-settings .paper-settings-main .paper-settings-section{background:0 0;border:0;border-bottom:1px solid var(--border-color);border-radius:0;padding:0 0 28px;margin-bottom:28px}.paper-settings .paper-settings-main .paper-settings-section:last-of-type{border-bottom:0}@media (max-width:991px){.paper-settings .paper-settings-main .paper-settings-section{padding:0 0 20px;margin-bottom:20px}.share-link-row{flex-direction:column}.share-link-actions{flex-direction:column}.share-link-actions .btn{justify-content:center}.status-page .paper-support-grid{row-gap:20px}}.paper-page .q-range-btns{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);overflow:visible}.paper-page .q-range-btns .btn,.paper-page .q-range-btns .btn+.btn{min-height:0;height:28px;padding:0 10px;border:0;border-radius:4px;background:0 0;color:var(--ink-muted);font:500 13px/1 var(--font-sans)}.paper-page .q-range-btns .btn:hover{background:var(--hover-bg-color);color:var(--color)}.paper-page .q-range-btns .btn.active{background:var(--accent-soft);color:var(--accent)}.q-header-actions>.btn{height:34px;min-height:34px}.paper-page .btn.btn-danger-soft{background:0 0;border-color:var(--status-error);color:var(--status-error)}.paper-page .btn.btn-danger-soft:hover{background:var(--status-error-soft-hover);border-color:var(--status-error);color:var(--status-error)}.q-auto-refresh,.q-section-label,.q-state-chip{font-family:var(--font-sans);letter-spacing:0;text-transform:none}.q-state-chip{font-size:12px;text-transform:capitalize}.overview-page .ov-ebar-fill{display:block}.paper-table .paper-table-row.repo-error{border-left:0;box-shadow:inset 2px 0 0 var(--status-error);padding-left:16px}.admin-page .q-table th,.admin-page .type-badge,.admin-page .user-detail-section h2,.admin-page section>h2,.admin-page th,.admin-page>h2,.errors-page .col-count,.errors-page .col-mod,.errors-page .col-msg,.errors-page .col-sev,.errors-page .col-status,.errors-page .col-when,.overview-page .ov-chart-legend,.overview-page .ov-ebar-label,.overview-page .ov-route-n,.overview-page .ov-route-name,.q-card-sub,.q-delay-hint,.q-legend-completed,.q-legend-exec,.q-legend-failed,.q-section-right,.q-stat-label,.user-detail-grid .detail-label{font-family:var(--font-sans);letter-spacing:0;text-transform:none}.admin-page th,.errors-page [class^=col-]{font-size:12px;font-weight:500;color:var(--ink-muted)}.q-card-sub,.q-stat-label,.user-detail-grid .detail-label{font-size:12px}.q-stat-value{font-family:var(--font-sans);font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.q-state-badge{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:capitalize}.admin-page .type-badge{font-size:12px;text-transform:none}.errors-page .col-sev span,.errors-page .sev-label{text-transform:capitalize}.dark-mode .overview-page .ov-daily-value,.overview-page .ov-daily-value{color:var(--color)}.dark-mode .overview-page .ov-spark-fill-alt,.dark-mode .overview-page .ov-spark-fill-new-user,.dark-mode .overview-page .ov-spark-fill-user,.overview-page .ov-spark-fill-alt,.overview-page .ov-spark-fill-new-user,.overview-page .ov-spark-fill-user{background:var(--accent)}.dark-mode .overview-page .ov-dot-new-user-fill,.dark-mode .overview-page .ov-dot-ok-fill,.dark-mode .overview-page .ov-dot-user-fill,.overview-page .ov-dot-new-user-fill,.overview-page .ov-dot-ok-fill,.overview-page .ov-dot-user-fill{background:var(--accent)}.errors-page .seg-tabs{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card)}.errors-page .seg-tabs button,.errors-page .seg-tabs button+button{min-height:0;height:30px;padding:0 10px;border:0;border-radius:4px;background:0 0;color:var(--ink-muted);font:500 13px/1 var(--font-sans)}.errors-page .seg-tabs button:hover{background:var(--hover-bg-color);color:var(--color)}.errors-page .seg-tabs button.active{background:var(--accent-soft);color:var(--accent)}.user-detail-card .user-header .status-dot-wrap{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:400;color:var(--ink-soft)}.user-detail-card .user-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-page .paper-table .cell-anon .anon-sub{flex-wrap:wrap;row-gap:2px}.admin-page .paper-table .anon-sub>a,.admin-page .paper-table .anon-sub>span{flex:0 1 auto;max-width:100%;white-space:nowrap}.admin-page .paper-table .cell-views .mobile-meta-icon{margin-right:4px}.q-jobs{overflow-x:auto}.q-job-detail-label{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.admin-section-header h2{font-family:var(--font-sans);font-size:16px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--color)}.errors-page .sev-label{font-family:var(--font-sans);font-size:13px;letter-spacing:0}.email-prompt{width:min(560px,calc(100vw - 32px));padding:28px;border:1px solid var(--paper-border,#e5e1d9);border-radius:12px;background:var(--paper-bg,#faf9f6);color:inherit;box-shadow:0 16px 64px #0003}.email-prompt::backdrop{background:#0006}.email-prompt h2{margin:0 0 12px;font-size:24px}.email-prompt p{margin-bottom:20px}.email-prompt-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:24px}body.dark-mode .email-prompt{background:#242320;color:#faf9f6}.file-error .viewer-error{width:100%;max-width:65ch;padding:2rem 1rem;overflow-wrap:anywhere;font-size:1rem;font-weight:400;text-align:left}.viewer-error .paper-empty-title{margin-bottom:1rem}.viewer-error p{line-height:1.6}.viewer-error .paper-error-actions{display:flex;flex-wrap:wrap;gap:.75rem}.markdown-body .markdown-alert{margin:1rem 0;padding:.5rem 1rem;border-left:4px solid var(--alert-color,#0969da)}.markdown-body .markdown-alert-note{--alert-color:#0969da}.markdown-body .markdown-alert-tip{--alert-color:#1a7f37}.markdown-body .markdown-alert-important{--alert-color:#8250df}.markdown-body .markdown-alert-warning{--alert-color:#9a6700}.markdown-body .markdown-alert-caution{--alert-color:#cf222e}.markdown-body .markdown-alert-title{color:var(--alert-color);font-weight:600;display:flex;align-items:center;gap:.5rem}.markdown-body .markdown-alert-title svg{fill:currentColor;flex-shrink:0}.markdown-body .markdown-alert>:last-child{margin-bottom:0}body.dark-mode .markdown-alert-note{--alert-color:#79c0ff}body.dark-mode .markdown-alert-tip{--alert-color:#7ee787}body.dark-mode .markdown-alert-important{--alert-color:#d2a8ff}body.dark-mode .markdown-alert-warning{--alert-color:#e3b341}body.dark-mode .markdown-alert-caution{--alert-color:#ff7b72}.markdown-body .emoji{display:inline;vertical-align:text-bottom}.markdown-body .footnotes{margin-top:2rem;border-top:1px solid var(--border-color,#d0d7de);padding-top:1rem;font-size:.875em}.markdown-body .katex-display{overflow-x:auto;overflow-y:hidden;padding:.25rem 0}.markdown-body .markdown-diagram{margin:1rem 0;border:1px solid var(--border-color,#d0d7de);padding:.75rem}.markdown-body .markdown-diagram svg{display:block;width:100%;max-height:360px}.markdown-body .markdown-diagram path{fill:#7cc7be;fill-opacity:.5;stroke:var(--link-color,#1f6a64);stroke-width:1;vector-effect:non-scaling-stroke}.markdown-body .diagram-controls{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.markdown-body .diagram-controls button{min-width:44px;min-height:44px;padding:.25rem .75rem;border:1px solid var(--border-color,#d0d7de);background:var(--main-bg-color,#fff);color:inherit;border-radius:4px}.markdown-body .diagram-controls button:hover{background:var(--hover-bg-color,#f6f8fa)}.markdown-body .diagram-controls button:focus-visible{outline:2px solid var(--link-color,#0969da);outline-offset:2px}.markdown-body .hljs-keyword,.markdown-body .hljs-selector-tag{color:#cf222e}.markdown-body .hljs-attr,.markdown-body .hljs-string{color:#0a3069}.markdown-body .hljs-literal,.markdown-body .hljs-number,.markdown-body .hljs-title{color:#8250df}.markdown-body .hljs-comment{color:#57606a}body.dark-mode .markdown-body .hljs-keyword{color:#ff7b72}body.dark-mode .markdown-body .hljs-attr,body.dark-mode .markdown-body .hljs-string{color:#a5d6ff}body.dark-mode .markdown-body .hljs-literal,body.dark-mode .markdown-body .hljs-number,body.dark-mode .markdown-body .hljs-title{color:#d2a8ff}body.dark-mode .markdown-body .hljs-comment{color:#b1bac4}body.dark-mode .markdown-body .gh-light-mode-only,body:not(.dark-mode) .markdown-body .gh-dark-mode-only{display:none}.billing-plan{padding:1.5rem 0;border-bottom:1px solid var(--paper-border,#d8d4cd)}.billing-plan h3{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between}.billing-price{font-variant-numeric:tabular-nums;font-weight:400}.billing-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}#settings-billing p{max-width:72ch}.repository-hosting{border-top:1px solid var(--border-color);margin-top:24px}.repository-hosting h2{font-size:1.5rem}.hosting-choices{border:0;padding:0;margin:20px 0;min-width:0}.hosting-choices legend{font-size:1rem;font-weight:600}.hosting-choice{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid var(--border-color);background:var(--paper-card);cursor:pointer}.hosting-choice+.hosting-choice{border-top:0}.hosting-choice input{margin-top:5px;accent-color:var(--accent)}.hosting-choice small,.hosting-choice strong{display:block}.hosting-choice small{margin-top:6px;color:var(--ink-muted)}.hosting-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:20px 0}.repository-pass{margin:20px 0}.repository-pass summary{cursor:pointer;color:var(--link-color)}.repository-pass p{margin-top:12px}.task-review-active.anonymize-page{height:auto!important;min-height:100%;overflow:visible}.task-review-active .anonymize-workspace{flex:0 0 auto;overflow:visible}.repository-task{width:100%;max-width:1020px;margin:0 auto;padding:32px 24px 42px;color:var(--color);font-size:15px;line-height:1.55}.repository-task .paper-crumbs{margin-bottom:24px}.repository-task h1{font:normal 40px/1.15 'Iowan Old Style',Georgia,serif;margin:8px 0 10px}.repository-task h2{font:normal 27px/1.25 'Iowan Old Style',Georgia,serif;margin:0 0 12px}.repository-task h3{font:600 17px/1.5 var(--font-sans);margin:0 0 10px}.repository-task p{margin:0 0 16px}.task-lede,.task-muted{color:var(--ink-muted)}.task-trail{list-style:none;display:flex;flex-wrap:wrap;gap:24px;margin:30px 0;padding:18px 0;border-bottom:1px solid var(--border-color);color:var(--ink-muted);font-size:13px}.task-trail [aria-current]{color:var(--color);font-weight:600}.task-trail button{color:inherit;padding:0;border:0;background:0 0;font:inherit;cursor:pointer}.task-columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(245px,1fr);gap:34px;align-items:start}.task-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.task-text-button{border:0;padding:7px 0;background:0 0;color:var(--link-color);cursor:pointer;font:inherit;text-align:left}.task-text-button:focus-visible,.task-trail button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.task-summary{background:var(--paper-bg-alt);padding:24px;border-radius:5px}.task-summary dt{margin-top:18px;font-size:12px;font-weight:400;color:var(--ink-muted)}.task-summary dd{margin:3px 0;overflow-wrap:anywhere}.task-redactions,.task-summary h3{overflow-wrap:anywhere}.task-summary dl{margin-bottom:0}.task-summary-foot{border-top:1px solid var(--border-color);margin-top:28px;padding-top:24px}.task-summary-foot p{color:var(--ink-muted);margin:0}.task-hosting{border-top:1px solid var(--border-color);margin-top:22px;padding-top:20px}.repository-task .hosting-choices{margin:18px 0}.repository-task .hosting-choice{padding:18px;gap:13px;font-weight:400;margin:0}.repository-task .hosting-choice:first-of-type{border-radius:6px 6px 0 0}.repository-task .hosting-choice:last-of-type{border-radius:0 0 6px 6px}.repository-task .hosting-choice small{margin-top:0;font-size:13px;line-height:1.55}.task-terms{font-size:13px;color:var(--ink-soft)}.task-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin:24px 0 16px}.repository-task .btn{padding:10px 16px;border-radius:5px;font-size:15px}.task-status{background:var(--accent-soft);padding:16px 20px;margin:20px 0}.task-status p:last-child{margin:0}@media(max-width:650px){.repository-task{padding:24px 18px}.repository-task h1{font-size:32px}.task-columns{display:block}.task-summary{margin-top:28px}.task-trail{gap:15px;font-size:12px}}.repository-task{scroll-margin-top:70px}.task-columns{align-items:stretch}.repository-task .btn-ink{background:var(--color);border-color:var(--color);color:var(--canvas-bg-color);box-shadow:none}.repository-task .btn-ink:hover{background:var(--ink-soft);border-color:var(--ink-soft)}.task-field{margin-bottom:24px}.task-field>label{display:block;font-weight:600;margin-bottom:8px}.task-field input,.task-field select,.task-field textarea{width:100%;padding:12px;border:1px solid var(--border-color);border-radius:4px;background:var(--paper-card);color:var(--color);font:inherit}.task-field textarea{resize:vertical}.task-field small{display:block;margin-top:8px;font-size:13px;color:var(--ink-muted)}.task-field :is(input,select,textarea):focus-visible{outline:3px solid var(--accent);outline-offset:3px}.task-paybox{background:var(--paper-card);border:1px solid var(--border-color);border-radius:5px;padding:22px;margin-top:20px}.task-ready{border-left:3px solid var(--success,#2f7a44);padding:16px 20px;background:var(--paper-bg-alt);margin-bottom:22px}.repository-task.status-page .paper-progress{margin-top:24px}.task-date-options summary{cursor:pointer;color:var(--link-color);font-size:13px}.task-date-options[open] summary{margin-bottom:12px}.task-result{padding:18px;background:var(--paper-bg-alt);overflow-wrap:anywhere}.task-result .detail-label{font-size:12px;color:var(--ink-muted);margin-bottom:6px}.task-configure-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.task-live-preview{min-width:0;border:1px solid var(--border-color);border-radius:5px;background:var(--paper-card)}.task-preview-head{padding:20px 24px;border-bottom:1px solid var(--border-color)}.task-preview-head h2{font-size:23px;margin-bottom:6px}.task-preview-head p{margin:0;font-size:13px}.task-preview-content,.task-preview-message{padding:24px}.task-preview-content{overflow:auto;max-height:650px;overflow-wrap:anywhere}.repository-task .task-preview-content h1{font:600 28px/1.3 var(--font-sans)}.repository-task .task-preview-content h2{font:600 22px/1.3 var(--font-sans)}@media(max-width:650px){.task-live-preview{margin-top:28px}.task-preview-content{max-height:none}}.anonymize-page .anonymize-topbar{padding:14px 22px;background:var(--canvas-bg-color)}.anonymize-page .anonymize-topbar-inner{max-width:none}.anonymize-page .anonymize-topbar-head{justify-content:space-between}.anonymize-page .anonymize-topbar-title{font:600 19px/1.25 var(--font-sans);margin:0}.anonymize-page .anonymize-split{display:grid;grid-template-columns:minmax(320px,42%) minmax(0,1fr);overflow:hidden}.anonymize-page .anonymize-form-col{width:auto;min-height:0;overflow:hidden!important;background:var(--paper-card)}.anonymize-page .anonymize-form-col .paper-settings-main{display:flex;flex-direction:column;height:100%;min-height:0;max-width:none;padding:0}.anonymize-fields{flex:1;min-height:0;overflow:auto;position:relative;scrollbar-width:thin}.anonymize-page .paper-settings-main .paper-settings-section{border:0;border-top:1px solid var(--border-color);border-radius:0;padding:18px 20px 20px;margin:0;box-shadow:none}.anonymize-page .paper-settings-main .paper-settings-section:first-child{border-top:0;padding-top:18px}.anonymize-page .paper-section-eyebrow{font:600 15px/1.4 var(--font-sans);margin:0 0 16px;letter-spacing:0}.anonymize-page .paper-field-label{font:500 13px/1.5 var(--font-sans);margin-bottom:8px}.anonymize-page .form-group{margin-bottom:16px}.anonymize-page .form-group:last-child{margin-bottom:0}.anonymize-page .form-control{font-size:14px;min-height:40px;padding:9px 10px;border-radius:4px}.anonymize-page textarea.form-control{line-height:1.6}.anonymize-page .form-grid-2{gap:12px}.anonymize-page .form-check{padding-top:10px;padding-bottom:10px;font-size:14px}.anonymize-page .form-check-label{font-size:14px;line-height:1.5}.anonymize-page .form-text{font-size:12px;line-height:1.6}.anonymize-page .repo-access-details{margin:12px 0 16px}.anonymize-page .repo-access-note{font-size:11px}.anonymize-page .anonymize-submit-bar{flex:none;position:static;margin:0;padding:16px 20px;background:var(--paper-card);border-top:1px solid var(--border-color)}.anonymize-page .anonymize-submit-bar .btn{width:100%;font-size:14px;padding:10px 12px;min-height:43px}.checkout-return-note{font-size:11px;line-height:1.5;color:var(--ink-muted);margin:8px 0 0;text-align:center}.anonymize-fields>.alert,.anonymize-fields>.anonymize-review-note,.anonymize-fields>.draft-status{margin:12px 20px}.anonymize-page .anonymize-preview-col{min-height:0;padding:20px;position:relative;background:var(--canvas-bg-color)}.anonymize-page .anonymize-preview-head{border:0;padding:0;min-height:32px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between}.anonymize-preview-head button,.anonymize-preview-head strong{font-size:13px}.anonymize-page .anonymize-preview-body{padding:24px;border-radius:6px;min-height:480px;overflow-wrap:anywhere;font:14px/1.7 var(--font-sans)}.anonymize-page .anonymize-preview-body h1{font-size:27px;line-height:1.2;margin:0 0 20px;padding-bottom:14px}.anonymize-page .anonymize-preview-body h2{font-size:18px;margin:28px 0 12px}.anonymize-page .anonymize-preview-body pre{font-size:12px;padding:15px}.anonymize-page.preview-expanded .anonymize-split{grid-template-columns:1fr}.anonymize-page.preview-expanded .anonymize-form-col{display:none}.hosting-usage{font-size:12px;color:var(--ink-muted);margin:0 0 4px}.expiration-choices{border:0;padding:0;margin:0 0 16px;min-width:0}.expiration-choice{display:flex;align-items:flex-start;gap:10px;padding:12px 0;margin:0;cursor:pointer;font-size:14px;font-weight:500;line-height:1.5}.expiration-choice input{width:16px;height:16px;margin:4px 0 0;flex:none;accent-color:var(--accent)}.expiration-choice small{display:block;font-size:12px;font-weight:400;color:var(--ink-muted);margin-top:2px}.dated-options{padding:2px 0 14px 26px}.hosting-date,.hosting-property{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px;align-items:center;margin-bottom:10px}.hosting-property{margin-bottom:0}.hosting-date .paper-field-label,.hosting-property label{font-size:12px;font-weight:400;margin:0}.hosting-date .invalid-feedback{grid-column:1/-1}.anonymize-page .conference-field{border-top:1px solid var(--border-color);padding:16px 0;margin:0}.subscription-choice{padding:16px;background:var(--paper-bg-alt);border-radius:6px;margin-top:4px}.subscription-choice h3{font-size:13px;font-weight:600;margin:0 0 10px}.billing-cycle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:0;padding:0;margin:0 0 12px;min-width:0}.cycle-option{display:flex;align-items:center;gap:7px;padding:10px 8px;border:1px solid var(--border-color);border-radius:4px;background:var(--paper-card);font-size:12px;cursor:pointer;margin:0}.cycle-option.selected{border-color:var(--accent);background:var(--accent-soft)}.cycle-option input{accent-color:var(--accent);margin:0;flex:none}.subscription-choice p{font-size:12px;line-height:1.5;margin:0 0 8px}.subscription-choice p:last-child{margin:0}.hosting-terms{font-size:12px;line-height:1.5;color:var(--ink-muted)}.capacity-reason{font-size:13px}.capacity-options,.repository-pass{margin-top:12px;font-size:12px}.capacity-options summary,.repository-pass summary{cursor:pointer}.capacity-options p,.repository-pass p{margin:8px 0}.capacity-options .task-text-button{display:block}@media(max-width:767px){.anonymize-page .anonymize-split{display:block;overflow:visible}.anonymize-page .anonymize-form-col .paper-settings-main{height:auto}.anonymize-fields{overflow:visible}.anonymize-page .paper-settings-main .paper-settings-section{padding:18px 16px 20px}.anonymize-page .anonymize-topbar{padding:14px 16px}.anonymize-page .anonymize-preview-col{padding:16px}.anonymize-page .anonymize-preview-body{padding:20px}.anonymize-page .anonymize-submit-bar{padding:16px}.anonymize-page .preview-expand{display:none}.anonymize-page .anonymize-mobile-tabs{padding:0;gap:0;background:var(--paper-card)}.anonymize-mobile-tabs button{border-radius:0;padding:12px;min-height:44px}.anonymize-mobile-tabs button[aria-selected=true]{background:0 0;box-shadow:inset 0 -2px var(--accent)}.cycle-option{min-height:44px}}.anonymize-page{--font-sans:system-ui,-apple-system,sans-serif;font-family:var(--font-sans)}body:not(.dark-mode) .anonymize-page{--paper-card:#fff;--canvas-bg-color:#faf9f6;--paper-bg-alt:#f5f4f0;--border-color:#dedbd4;--color:#242320;--ink-muted:#68655e}.anonymize-page .repo-access-controls .btn{font-size:12px;padding:8px 12px;min-height:36px}.anonymize-page .form-check-label{font-weight:400}.anonymize-page .form-check{padding-left:26px}.anonymize-page .form-check input{width:16px;height:16px;margin-left:-26px;accent-color:var(--accent)}.anonymize-page .form-check small{margin-top:6px}.anonymize-page .btn.btn-icon.refresh-branches{display:inline-flex;align-items:center;justify-content:center;width:40px;min-width:40px;height:100%;min-height:40px;padding:0}@media (max-width:767px){.anonymize-page #branch,.anonymize-page #commit{min-height:44px}.anonymize-page .btn.btn-icon.refresh-branches{width:44px;min-width:44px;min-height:44px}}.anonymize-page .redaction-syntax{font-size:12px;margin-top:8px}.redaction-syntax summary{cursor:pointer;color:var(--link-color);min-height:28px}.anonymize-page .anonymize-preview-body h2{border:0;padding:0;font-weight:700}.anonymize-page .anonymize-preview-body h1{font-weight:700}.anonymize-page .anonymize-preview-body pre{background:var(--paper-bg-alt);line-height:1.7}.anonymize-page .anonymize-preview-body pre code{font:12px/1.7 ui-monospace,monospace;background:0 0;padding:0}.anonymize-page .anonymize-preview-body{--main-bg-color:var(--paper-card);background:var(--paper-card)}.anonymize-page .anonymize-submit-bar .btn{font-weight:600}.anonymize-page .form-grid-2 .form-group{margin-bottom:0}.anonymize-page .form-check small{margin-left:-26px}.user-settings{max-width:1060px;padding:28px 26px 40px}.user-settings .settings-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:22px}.user-settings .settings-title h1{font:650 26px/1.3 var(--font-sans);letter-spacing:-.025em;margin:0}.settings-title>span{color:var(--ink-muted);font-size:12px}.settings-nav{display:flex;gap:28px;border-bottom:1px solid var(--border-color)}.settings-nav button{border:0;border-radius:0;background:0 0;color:var(--ink-muted);padding:12px 0;min-height:44px;font:13px/1.4 var(--font-sans)}.settings-nav button[aria-current=page]{color:var(--color);font-weight:600;box-shadow:inset 0 -2px var(--accent)}.settings-nav button:hover{color:var(--accent)}.user-settings .settings-scope{color:var(--ink-muted);font-size:12px;margin:20px 0 4px}.user-settings .settings-row{display:grid;grid-template-columns:210px minmax(0,1fr);gap:32px;padding:22px 0;border-bottom:1px solid var(--border-color)}.user-settings .settings-label,.user-settings .settings-row>h2{font-size:13px;font-weight:600;line-height:1.5;margin:8px 0 0;display:block}.user-settings .settings-help{font-size:12px;color:var(--ink-muted);margin:7px 0 0;line-height:1.6}.user-settings .form-control{font-size:14px;min-height:40px;padding:9px 10px;border-radius:4px;background:var(--paper-card)}.user-settings textarea.form-control{line-height:1.6}.settings-syntax{font-size:12px;margin-top:8px}.settings-syntax summary{cursor:pointer;color:var(--link-color);min-height:26px}.settings-syntax p{margin:8px 0}.settings-checks{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;padding:4px 0;margin-bottom:12px}.user-settings .settings-check{display:flex;gap:9px;align-items:center;font-size:13px;font-weight:400;margin:0}.user-settings .settings-check .form-check-input{position:static;width:16px;height:16px;margin:0;flex:none;accent-color:var(--accent)}.settings-save{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 0 22px}.settings-save-status{color:var(--ink-muted);font-size:12px}.settings-save #save{margin-left:auto;min-width:125px}.settings-save-error{color:var(--status-error);flex-basis:100%}.user-settings .settings-inline{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.user-settings .btn{font-size:13px;min-height:40px;padding:9px 13px}.settings-inline .btn{flex-shrink:0}.user-settings #settings-quota{margin:22px 0 16px}.user-settings .quota-row{gap:20px}.user-settings .quota-item{padding:0;background:0 0;border:0}.user-settings .quota-label{font-size:12px}.user-settings .quota-value{font-size:13px;margin:6px 0}.user-settings .quota-value strong{font-size:14px}.user-settings .quota-percent,.user-settings .quota-remaining{font-size:11px}.user-settings .settings-plan{background:var(--paper-card);border:1px solid var(--border-color);border-radius:6px;padding:20px;margin:20px 0 0}.user-settings .settings-plan h3{font-size:15px;margin:0 0 10px}.user-settings .settings-plan>p{font-size:13px}.settings-cycles{display:flex;flex-wrap:wrap;gap:10px;border:0;padding:0;margin:16px 0}.settings-cycles label{display:flex;align-items:center;gap:8px;border:1px solid var(--border-color);background:var(--paper-card);border-radius:5px;padding:12px;font-size:13px;margin:0;cursor:pointer;flex:1}.settings-cycles label.selected{border-color:var(--accent);background:var(--accent-soft)}.settings-cycles input{accent-color:var(--accent)}.settings-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.settings-notice{background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:5px;padding:14px 16px;margin:16px 0;font-size:13px}.settings-notice p{margin:6px 0 12px}.settings-text-button{border:0;background:0 0;color:var(--link-color);padding:8px 0;font-size:12px}.settings-pass{margin-top:18px}.settings-pass label{display:block;font-size:13px;margin-bottom:8px}.settings-pass .btn{margin-top:12px}.settings-purchase{padding:12px 0;border-bottom:1px solid var(--border-color);font-size:13px;overflow-wrap:anywhere}.settings-purchase:last-child{border:0}.settings-purchase>span{display:block;color:var(--ink-muted);margin-top:4px}.user-settings .paper-account-card{padding:24px 0;border:0;background:0 0}.user-settings .paper-danger-zone{margin-top:24px}@media (max-width:767px){.user-settings{padding:22px 18px 90px}.user-settings .settings-row{grid-template-columns:1fr;gap:12px;padding:20px 0}.user-settings .settings-label,.user-settings .settings-row>h2{margin-top:0}.settings-nav{gap:18px;justify-content:space-between}.settings-nav button{text-align:left;font-size:12px;max-width:124px}.user-settings .settings-check{font-size:12px;min-height:28px}.settings-save{gap:8px}.settings-save-status{font-size:11px}.settings-save #save{min-width:120px}.user-settings .quota-row{grid-template-columns:1fr}.settings-cycles label{flex-basis:100%}}.user-settings .settings-save .draft-status{margin:0;padding:0}.settings-delete-confirm{max-width:480px;margin-top:18px}.settings-delete-confirm label{display:block;font-size:13px;margin-bottom:8px}.user-settings .quota-usage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.user-settings .quota-usage .quota-item+.quota-item{border:0;padding:0}.user-settings .quota-percent,.user-settings .quota-remaining{display:none}@media (max-width:767px){.user-settings .quota-usage{grid-template-columns:1fr}}.settings-header-actions{display:flex;align-items:center;gap:16px}.settings-header-actions>span{color:var(--ink-muted);font-size:12px}.user-settings .settings-upgrade{color:var(--accent);border-color:var(--accent);background:0 0}.user-settings .settings-comparison{width:100%;table-layout:fixed;margin:16px 0 20px;font-size:12px}.settings-comparison td,.settings-comparison th{padding:10px 8px;border-bottom:1px solid var(--border-color);text-align:left;overflow-wrap:anywhere;vertical-align:top}.settings-comparison th:first-child{width:42%;padding-left:0}.settings-comparison tbody th{font-weight:400}.settings-comparison thead th{font-weight:600}@media(max-width:580px){.settings-header-actions>span{display:none}.settings-header-actions{gap:8px}.user-settings .settings-comparison{font-size:11px}}.navbar .nav-link.nav-upgrade{border:1px solid var(--accent);border-radius:5px;color:var(--accent)!important;padding:7px 12px!important;margin-right:12px;font-size:12px;line-height:1.5}.navbar .nav-link.nav-upgrade:hover{background:var(--accent-soft)}@media(max-width:991px){.navbar .nav-link.nav-upgrade{display:inline-block;min-height:44px;padding:11px 14px!important;margin:8px 0}}@media (max-width:600px){.ov-cache .ov-performance-window{display:grid;grid-template-columns:auto minmax(0,1fr);width:100%}.ov-cache .ov-performance-window select{width:100%;min-width:0}}.viewer-loading{padding:24px clamp(16px,4vw,40px);min-height:280px;color:var(--color)}.viewer-loading-status{min-height:84px}.viewer-loading-status strong{display:block;font-size:15px;font-weight:600}.viewer-loading-name{display:block;margin-top:6px;font-family:monospace;font-size:13px;overflow-wrap:anywhere;opacity:.75}.viewer-loading-status p{margin:12px 0;font-size:14px}.viewer-loading-lines{display:grid;gap:14px;max-width:720px;padding-top:16px}.viewer-loading-lines span{height:9px;width:70%;background:var(--border-color);border-radius:3px}.viewer-loading-lines span:nth-child(3n+1){width:48%}.viewer-loading-lines span:nth-child(3n+2){width:88%}.ace_scrollbar-h{height:8px!important}.ace_scrollbar-h::-webkit-scrollbar{height:8px}.ace_scrollbar::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ink-faint) 55%,transparent);border-radius:4px}.ace_scrollbar::-webkit-scrollbar-track{background:0 0}.explorer-content,.explorer-main{background:var(--paper-card)}.explorer-content .dir-card,.explorer-content .file-card{margin:0!important;border:0;border-radius:0;background:0 0;overflow:visible}.explorer-content .file-card{min-height:100%}.explorer-content .file-card.is-code{height:100%!important;overflow:clip}.explorer-content .file-card-head{position:sticky;top:0;z-index:3;min-height:52px;padding:8px 12px 8px 32px;border-radius:0!important;border-bottom:1px solid var(--border-soft);background:color-mix(in srgb,var(--paper-card) 90%,transparent);-webkit-backdrop-filter:saturate(1.2) blur(8px);backdrop-filter:saturate(1.2) blur(8px)}.dark-mode .explorer-content .file-card-head{background:color-mix(in srgb,var(--paper-card) 90%,transparent)}.explorer-content .file-card .file-content.markdown-body{max-width:880px;padding:36px 32px 96px;background:0 0!important}.explorer-content .file-card .ace_editor{border-radius:0}.explorer-content .ace_editor.ace-chrome .ace_gutter,.explorer-content .ace_editor.ace-nord-dark .ace_gutter{background:var(--paper-card)!important;border-right:0}.explorer-content .ace_editor .ace_gutter-cell{padding-left:20px}.explorer-content .dir-card{border-bottom:1px solid var(--border-soft)}.explorer-content .dir-card-head{padding:14px 32px;background:0 0!important;border-bottom:0}.explorer-content .dir-row{padding:0 32px}.explorer-content .dir-card+.file-card{margin-top:0!important}@media (max-width:767px){.explorer-content .file-card-head{padding:6px 8px 6px 16px;min-height:0}.explorer-content .file-card .file-content.markdown-body{padding:20px 16px 72px}.explorer-content .ace_editor .ace_gutter-cell{padding-left:8px}.explorer-content .dir-card-head,.explorer-content .dir-row{padding-left:16px;padding-right:16px}}.leftCol-brand{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:52px;padding:0 14px;border-bottom:1px solid var(--border-soft)}.leftCol-logo{font-family:var(--font-serif);font-size:19px;letter-spacing:-.01em;color:var(--color)!important;text-decoration:none!important;white-space:nowrap}.leftCol-logo em{font-style:italic}.leftCol-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px 2px 6px;border-radius:999px;background:var(--hover-bg-color);font-size:11.5px;font-weight:500;color:var(--ink-soft);white-space:nowrap}.leftCol-badge .ui-icon{width:13px;height:13px;color:var(--status-ready)}.leftCol-search{padding-top:12px}.leftCol-links{display:flex;align-items:center;gap:14px;margin:0 0 10px;font-size:13px}.leftCol-links a{color:var(--ink-soft);text-decoration:none}.leftCol-links a:hover{color:var(--color);text-decoration:underline;text-underline-offset:3px}.leftCol-theme{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-left:auto;border:0;border-radius:var(--radius-control);background:0 0;color:var(--ink-soft);cursor:pointer}.leftCol-theme:hover{background:var(--hover-bg-color);color:var(--color)}.leftCol-theme .ui-icon{width:16px;height:16px}.leftCol-foot .leftCol-zip{display:flex}.card-files-btn{display:none!important}@media (max-width:991px){.card-files-btn{display:inline-flex!important}}.card-files-btn.is-needed{display:inline-flex!important}@media (max-width:991px){.leftCol-brand{padding-right:60px}.leftCol-head{position:absolute;top:0;right:0;z-index:2;padding:4px 6px!important;border:0!important;background:0 0!important}.leftCol-head .leftCol-eyebrow{display:none}}@media (max-width:991px){.leftCol-head .leftCol-close{width:40px;height:40px;border:0!important;background:0 0!important;border-radius:var(--radius-control);color:var(--ink-soft)}.leftCol-head .leftCol-close:hover{background:var(--hover-bg-color)!important;color:var(--color)}.leftCol-brand{min-height:52px}}.leftCol-links .leftCol-donate{display:inline-flex;align-items:center;gap:5px}.leftCol-links .leftCol-donate .ui-icon{width:14px;height:14px}.leftCol-links .leftCol-donate:hover{color:var(--status-error);text-decoration:none}.leftCol-links .leftCol-donate:hover .ui-icon{fill:currentColor}.files .file.active>a{border-radius:var(--radius-control)!important}.files .file.active>a::before{left:4px!important;top:7px!important;bottom:7px!important;width:3px!important;border-radius:2px!important}.leftCol-backdrop{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:rgba(20,18,16,.45)!important}@media (max-width:991px){.leftCol-head{right:6px!important}}.symbols{position:relative}.file-card-head .btn.btn-symbols{gap:6px;padding:0 10px;color:var(--ink-soft);font-weight:500}.symbols-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:30;width:300px;max-height:420px;overflow:auto;padding:6px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);box-shadow:0 12px 32px rgba(26,24,21,.16)}.symbols-head{padding:6px 8px 8px;font-size:12px;font-weight:600;color:var(--ink-muted)}.symbols-item{display:flex;align-items:center;gap:10px;width:100%;height:32px;padding:0 8px;border:0;border-radius:var(--radius-control);background:0 0;font:inherit;font-size:13px;color:var(--color);text-align:left;cursor:pointer}.symbols-item:focus-visible,.symbols-item:hover{background:var(--hover-bg-color);outline:0}.symbols-kind{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;font:600 11px/1 var(--font-mono);flex-shrink:0}.symbols-kind.is-function{background:color-mix(in srgb,#6b45b8 14%,transparent);color:#6b45b8}.symbols-kind.is-class{background:color-mix(in srgb,#b4362a 14%,transparent);color:#b4362a}.dark-mode .symbols-kind.is-function{color:#c9a8f5}.dark-mode .symbols-kind.is-class{color:#f2897d}.symbols-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:12.5px}.symbols-line{font-size:12px;color:var(--ink-muted);font-variant-numeric:tabular-nums}@media (max-width:1180px){.file-card-head .btn-symbols .btn-find-label{display:none}.file-card-head .btn-symbols{width:32px;padding:0!important}}.ace_search{top:0!important;left:0!important;right:0!important;border:0!important;border-bottom:1px solid var(--border-soft)!important;border-radius:0!important;box-shadow:none!important;padding:8px 12px 8px 8px!important;background:var(--paper-card)!important}.ace_search_field{border-color:var(--border-color)!important}.ace_search .ace_button{border:1px solid transparent!important}.ace_search .ace_button.checked{background:var(--accent-soft)!important;color:var(--accent)!important;border-color:color-mix(in srgb,var(--accent) 40%,transparent)!important}.ace_search_counter{color:var(--ink-soft)!important;font-size:13px!important}.ace_editor .ace_marker-layer .ace_selected-word{background:var(--accent-soft)!important}.ace_editor.ace-chrome .ace_marker-layer .ace_selection{background:color-mix(in srgb,var(--accent) 28%,transparent)!important;box-shadow:0 0 0 1px var(--accent)!important}.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection{background:color-mix(in srgb,var(--accent) 34%,transparent)!important;box-shadow:0 0 0 1px var(--accent)!important}.leftCol-foot{padding:10px 14px 12px}.leftCol-links{margin:0 0 6px;gap:12px}.leftCol-repo-actions{display:inline-flex}.leftCol-project-header .leftCol-hide{display:inline-flex}@media (max-width:991px){.leftCol-project-header button.leftCol-hide{display:none}}.ace-chrome .ace_string{color:#11704f!important}.ace-chrome .ace_entity.ace_name.ace_function,.ace-chrome .ace_support.ace_function{color:#5b3dc2!important}.ace-chrome .ace_keyword,.ace-chrome .ace_storage{color:#b02f22!important}.ace-chrome .ace_comment{color:#6f6a61!important}.ace-chrome .ace_keyword.ace_operator,.ace-chrome .ace_paren,.ace-chrome .ace_punctuation{color:#5c574f!important}.dark-mode .ace_editor.ace-nord-dark,.dark-mode .explorer-content,.dark-mode .explorer-content .ace_editor.ace-nord-dark .ace_gutter,.dark-mode .explorer-main{background:var(--canvas-bg-color)!important}.dark-mode .ace_search,.dark-mode .explorer-content .file-card-head{background:color-mix(in srgb,var(--canvas-bg-color) 92%,transparent)!important}.dark-mode .leftCol{background:var(--sidebar-bg-color)}.dark-mode .symbols-menu{background:#22201c}.paper-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.paper-stats-grid .paper-stat-card{padding-left:24px!important;padding-right:24px!important}.paper-stats-grid .paper-stat-card:first-child{padding-left:0!important}.paper-stat-value{font-size:40px!important}.paper-stats-grid .paper-stat-card{margin-right:0!important}.paper-stats-grid .paper-stat-card:last-child{border-right:0;padding-right:0!important}@media (max-width:767px){.paper-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.paper-stats-grid .paper-stat-card:nth-child(odd){padding-left:0!important}}.dark-mode .leftCol-foot,.leftCol-foot{background:0 0!important}.paper-faq-toc nav a.active,.paper-faq-toc nav a:hover{border-left-color:var(--accent)!important}.card-files-label{display:none}@media (max-width:991px){.file-card-head .card-files-btn{width:auto!important;padding:0 10px!important;gap:6px;border:1px solid var(--border-color)!important;color:var(--color)!important}.card-files-label{display:inline;font-size:13px;font-weight:500}}@media (max-width:767px){.file-card-head .btn.btn-icon-only{color:var(--color)!important}.file-card-head .file-card-meta .meta-extra{display:none!important}.file-card.is-code.no-wrap::after{width:64px!important}}.btn.btn-ghost.is-on{color:var(--accent)!important;background:var(--accent-soft)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)!important}.explorer-content .ace_editor.ace-chrome .ace_gutter,.explorer-content .ace_editor.ace-nord-dark .ace_gutter{border-right:1px solid var(--border-soft)!important}.ace_search .ace_button{width:28px!important;height:28px!important;border:1px solid var(--border-color)!important;color:var(--ink-soft)!important;font-size:12px!important}.ace_search .ace_button.checked{background:var(--accent-soft)!important;color:var(--accent)!important;border-color:var(--accent)!important}.ace_search_counter{margin-left:2px!important}.ace_editor .ace_marker-layer .ace_selected-word{background:rgba(242,204,96,.38)!important;box-shadow:none!important}.ace_editor.ace-chrome .ace_marker-layer .ace_selection,.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection{background:#f2cc60!important;box-shadow:0 0 0 1px #c69026!important}.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection{background:rgba(242,204,96,.55)!important}.explorer-content .file-card .file-content.markdown-body{margin:0 auto!important}.leftCol-project-header .leftCol-zipbtn{width:auto!important;gap:4px;padding:0 6px;font-size:11.5px;font-weight:600;letter-spacing:.02em}.leftCol-project-header .leftCol-zipbtn .ui-icon{width:13px;height:13px}.leftCol-brand{justify-content:space-between}.repo-panel{display:grid;gap:8px;padding:14px 14px 12px;border-bottom:1px solid var(--border-soft)}.repo-panel-title{display:flex;align-items:center;gap:8px;min-width:0;font-size:14px;font-weight:600;color:var(--color)}.repo-panel-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.repo-panel-title .ui-icon{width:16px;height:16px;flex-shrink:0;color:var(--ink-muted)}.repo-panel-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:12.5px;color:var(--ink-soft)}.repo-panel-meta .last-update{font:inherit!important;color:inherit!important;padding:0;border:0}.repo-panel-meta>span+span::before{content:"·";margin-right:10px;color:var(--ink-faint)}.repo-panel-meta>.repo-panel-badge+span::before{content:none}.repo-panel-badge{display:inline-flex;align-items:center;gap:4px;padding:1px 8px 1px 6px;border-radius:999px;background:color-mix(in srgb,var(--status-ready) 12%,transparent);color:var(--status-ready);font-size:11.5px;font-weight:600}.repo-panel-badge .ui-icon{width:12px;height:12px}.repo-panel-zip{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);font-size:13px;font-weight:500;color:var(--color)!important;text-decoration:none!important}.repo-panel-zip:hover{background:var(--hover-bg-color);border-color:var(--ink-faint)}.repo-panel-zip .ui-icon{width:15px;height:15px}.dark-mode .repo-panel-zip{background:0 0}.leftCol-project-header{display:none!important}.leftCol-search{padding-top:12px;padding-bottom:4px}.tb-file{display:inline-flex;align-items:center;gap:4px;margin-left:6px;padding-left:10px;border-left:1px solid var(--border-color)}.file-card-head .btn.tb-btn{height:32px;gap:6px;padding:0 12px!important;border:1px solid var(--border-color)!important;border-radius:var(--radius-control)!important;background:var(--paper-card)!important;color:var(--color)!important;font-size:13px;font-weight:500}.file-card-head .btn.tb-btn:hover{background:var(--hover-bg-color)!important;border-color:var(--ink-faint)!important}.file-card-head .btn.tb-btn .ui-icon{width:15px;height:15px}.file-card-head .btn.tb-btn-icon{width:32px;padding:0!important;justify-content:center}.dark-mode .file-card-head .btn.tb-btn{background:0 0!important}.file-card-actions>.tb-file:first-child{border-left:0;padding-left:0;margin-left:0}.tb-more{position:relative;display:none}.tb-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:40;width:220px;padding:6px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);box-shadow:0 12px 32px rgba(26,24,21,.18)}.tb-menu>a,.tb-menu>button{display:flex;align-items:center;gap:10px;width:100%;height:40px;padding:0 10px;border:0;border-radius:var(--radius-control);background:0 0;font:inherit;font-size:14px;color:var(--color)!important;text-align:left;text-decoration:none!important}.tb-menu>a:hover,.tb-menu>button:hover{background:var(--hover-bg-color)}.tb-menu .ui-icon{width:16px;height:16px;color:var(--ink-soft)}.tb-menu-check{margin-left:auto;color:var(--accent);font-weight:600}.tb-menu-sep{height:1px;margin:6px 4px;background:var(--border-soft)}@media (max-width:767px){.tb-more{display:inline-flex}.file-card-head .btn-find,.file-card-head .btn-goto,.file-card-head .btn-toggle,.file-card-head .symbols,.file-card-head .tb-file,.file-card-head .view-switch+.file-card-actions .tb-file{display:none!important}.file-card-head .tb-more-btn{width:40px!important;height:40px!important}.file-card-head .card-files-btn{height:40px!important}.file-card-path .paths .breadcrumb-item:last-child{font-size:15px}}.feat-mock{height:380px;overflow:hidden;background:var(--paper-card);font-family:var(--font-sans);color:var(--color)}.fm-form{padding:22px 26px;display:grid;gap:8px}.fm-label{font-size:12px;font-weight:600;color:var(--ink-soft);margin-top:6px}.fm-input{height:36px;display:flex;align-items:center;padding:0 12px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--input-bg);font-size:13.5px}.fm-input-sm{width:150px}.fm-chips{display:flex;flex-wrap:wrap;gap:6px}.fm-chips span{padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--status-error) 9%,transparent);color:var(--color);font-size:12.5px;text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--status-error) 55%,transparent)}.fm-chips .fm-chip-add{background:0 0;border:1px dashed var(--border-color);color:var(--ink-muted);text-decoration:none}.fm-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:end}.fm-toggles{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.fm-toggles span{padding:5px 10px;border:1px solid var(--border-color);border-radius:var(--radius-control);font-size:12.5px;color:var(--ink-muted)}.fm-toggles .is-on{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:var(--accent-soft);color:var(--accent)}.fm-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border-soft)}.fm-share{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft)}.fm-btn{padding:9px 14px;border-radius:var(--radius-button);background:var(--accent);color:#fff;font-size:13px;font-weight:600;white-space:nowrap}.dark-mode .fm-btn{background:#1f6a64}.fm-viewer{display:grid;grid-template-columns:150px 1fr;height:100%}.fm-tree{padding:14px 8px;background:var(--paper-bg-alt);border-right:1px solid var(--border-soft);font-size:12.5px}.fm-tree div{padding:5px 10px;border-radius:var(--radius-control);color:var(--ink-soft)}.fm-tree .is-folder::before{content:"▸ ";color:var(--ink-faint)}.fm-tree .is-active{background:rgba(128,128,128,.14);color:var(--color);font-weight:500;box-shadow:inset 3px 0 0 var(--accent)}.fm-code{min-width:0}.fm-code-bar{display:flex;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border-soft);font-size:12.5px;color:var(--ink-muted)}.fm-code-bar b{color:var(--color);font-weight:600}.fm-code pre{margin:0;padding:12px 16px;font-family:var(--font-mono);font-size:12.5px;line-height:1.75;color:var(--color);background:0 0;white-space:pre}.fm-code .ln{display:inline-block;width:22px;margin-right:14px;text-align:right;color:var(--ink-faint)}.fm-code .k{color:#b02f22}.fm-code .f{color:#5b3dc2}.fm-code .s{color:#11704f}.fm-code .c{color:var(--ink-muted);font-style:italic}.dark-mode .fm-code .k{color:#f2897d}.dark-mode .fm-code .f{color:#c9a8f5}.dark-mode .fm-code .s{color:#9dd3a8}.fm-code .redact{padding:0 4px;border-radius:3px;background:var(--accent-soft);color:var(--accent);font-style:normal}.fm-dash{padding:12px 18px;font-size:13px}.fm-dash-head,.fm-dash-row{display:grid;grid-template-columns:1.7fr .9fr .5fr .9fr;gap:12px;align-items:center}.fm-dash-head{padding:8px 0;border-bottom:1px solid var(--border-color);font-size:12px;font-weight:600;color:var(--ink-muted)}.fm-dash-row{padding:12px 0;border-bottom:1px solid var(--border-soft)}.fm-dash-row b{display:block;font-weight:600}.fm-dash-row i{display:block;font-style:normal;font-size:12px;color:var(--ink-muted);font-family:var(--font-mono)}.fm-dash-row.is-muted{color:var(--ink-muted)}.fm-dash .st{display:inline-flex;align-items:center;gap:6px}.fm-dash .st::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.fm-dash .st.is-ready{color:var(--status-ready)}.fm-dash .st.is-progress{color:var(--status-progress)}.fm-dash .st.is-expired{color:var(--ink-muted)}@media (max-width:767px){.feat-mock{height:auto;min-height:260px}.fm-viewer{grid-template-columns:1fr}.fm-tree{display:none}.fm-dash-head span:nth-child(4),.fm-dash-row span:nth-child(4){display:none}.fm-dash-head,.fm-dash-row{grid-template-columns:1.6fr 1fr .5fr}.fm-row{grid-template-columns:1fr}}.paper-stat-delta{margin-top:6px!important;font-family:var(--font-sans)!important;font-size:13px!important;color:var(--ink-muted)!important}.paper-stats-grid .paper-stat-card{padding-top:22px!important;padding-bottom:22px!important}.paper-eyebrow,.paper-faq-eyebrow,.paper-stats-meta{font-family:var(--font-sans)!important;font-size:12.5px!important;font-weight:600!important;letter-spacing:.06em!important;color:var(--ink-soft)!important}.paper-feature-tab .paper-eyebrow{font-size:12px!important}.paper-reassure li::before{color:var(--ink-soft)!important}.feat-mock{height:auto!important;min-height:300px}@media (max-width:767px){.file-card.is-code.no-wrap::after{display:none!important}.file-card.is-code.no-wrap .ace_scroller{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 48px),transparent)}.explorer-content .file-card-head{row-gap:6px;padding-top:8px;padding-bottom:8px}.file-card-path{flex:1 1 auto;gap:10px}.file-card-path .paths{flex:1 1 auto;min-width:0}.file-card-path .paths .breadcrumb-item:last-child{overflow:hidden;text-overflow:ellipsis}.file-card-head .card-files-btn{height:32px!important;border-radius:var(--radius-control)!important;padding:0 10px!important}.file-card-head .tb-more-btn{width:36px!important;height:32px!important}.file-card-head>.view-switch{order:4;margin-left:auto!important}.file-card-head .file-card-meta{order:3;flex-basis:auto!important;flex:1 1 auto;margin:0!important;align-self:center}}@media (min-width:768px){.explorer-content .file-card-head{padding-left:20px}.explorer-content .file-card .file-content.markdown-body{margin:0!important;padding-left:20px!important;padding-right:40px!important;max-width:900px}}.dark-mode .files .file.active>a{background:rgba(255,255,255,.13)!important}.dark-mode .btn.btn-ghost.is-on{background:rgba(124,199,190,.18)!important;box-shadow:inset 0 0 0 1px rgba(124,199,190,.45)!important}.dark-mode .leftCol{background:#1e1b18!important}.ace_searchbtn_close{width:24px!important;height:24px!important;background-size:12px!important;opacity:.7}.ace_search_field:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}.navbar .nav-link:not(.active):not(.btn-signin){color:var(--ink-soft)!important}.navbar .nav-support-inline{color:var(--ink-soft)!important}.paper-stat-delta{color:var(--ink-soft)!important}.paper-faq-toc-head,.paper-footer-head{font-family:var(--font-sans)!important;font-size:12px!important;font-weight:600!important;letter-spacing:.06em!important;text-transform:uppercase;color:var(--ink-soft)!important}.paper-feature:not(.is-on) .paper-feature-tab::after{border-color:var(--ink-soft)!important;border-width:0 2px 2px 0!important}.faq-section .panel-default .panel-body{max-width:720px!important}.repo-panel-meta .last-update{flex-basis:100%}.repo-panel-meta .last-update::before{content:none!important}@media (max-width:767px){.file-card-head .file-card-path{flex:1 1 calc(100% - 56px)!important}.file-card-head .file-card-actions{order:1}.file-card-head .file-card-meta{order:3}.file-card-head>.view-switch{order:4}}.repo-panel{display:none!important}.repo-id{display:flex;align-items:center;gap:10px;padding:14px 14px 6px}.repo-id-tile{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border-radius:9px;background:linear-gradient(140deg,color-mix(in srgb,var(--accent) 16%,var(--paper-card)),color-mix(in srgb,var(--accent) 6%,var(--paper-card)));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent);color:var(--accent)}.repo-id-tile .ui-icon{width:17px;height:17px}.repo-id-text{min-width:0}.repo-id-title{font-size:14px;font-weight:600;color:var(--color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.repo-id-sub{margin-top:1px;font-size:12.5px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.repo-id-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 14px 12px 58px;border-bottom:1px solid var(--border-soft);font-size:12.5px}.repo-id-count{color:var(--ink-muted);font-variant-numeric:tabular-nums}.repo-id-zip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--radius-control);color:var(--link-color)!important;font-weight:500;text-decoration:none!important}.repo-id-zip:hover{background:var(--accent-soft)}.repo-id-zip .ui-icon{width:14px;height:14px}.leftCol-foot .leftCol-links{display:none!important}.acct-bar{display:flex;align-items:center;justify-content:space-between;gap:8px}.acct{position:relative;min-width:0}.acct-chip{display:inline-flex;align-items:center;gap:8px;max-width:150px;height:34px;padding:0 8px 0 4px;border:0;border-radius:var(--radius-control);background:0 0;font:inherit;font-size:13px;font-weight:500;color:var(--color);cursor:pointer}.acct-chip:hover,.acct-chip[aria-expanded=true]{background:var(--hover-bg-color)}.acct-chip img,.acct-initial{width:24px;height:24px;border-radius:50%;flex-shrink:0}.acct-initial{display:inline-flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700}.acct-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-caret{width:12px;height:12px;color:var(--ink-muted);transform:rotate(-90deg)}.acct-menu{position:absolute;bottom:calc(100% + 6px);left:0;z-index:40;width:190px;padding:6px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);box-shadow:0 12px 32px rgba(26,24,21,.18)}.acct-menu a{display:flex;align-items:center;gap:10px;height:36px;padding:0 10px;border-radius:var(--radius-control);font-size:13.5px;color:var(--color)!important;text-decoration:none!important}.acct-menu a:hover{background:var(--hover-bg-color)}.acct-menu .ui-icon{width:16px;height:16px;color:var(--ink-soft)}.acct-signin{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);font-size:13px;font-weight:500;color:var(--color)!important;text-decoration:none!important}.acct-signin:hover{background:var(--hover-bg-color);border-color:var(--ink-faint)}.dark-mode .acct-signin{background:0 0}.acct-icons{display:inline-flex;align-items:center;gap:2px}.acct-icons a,.acct-icons button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:var(--radius-control);background:0 0;color:var(--ink-soft)!important;cursor:pointer}.acct-icons a:hover,.acct-icons button:hover{background:var(--hover-bg-color);color:var(--color)!important}.acct-icons .acct-donate:hover{color:var(--status-error)!important}.acct-icons .ui-icon{width:17px;height:17px}.leftCol-foot{padding:8px 10px 10px 14px!important}.leftCol-foot .last-update{display:none}.file-card-head .card-files-btn,.file-card-head .card-files-btn.is-needed{width:34px!important;height:34px!important;padding:0!important;border:0!important;background:0 0!important;color:var(--ink-soft)!important}.file-card-head .card-files-btn:hover{background:var(--hover-bg-color)!important;color:var(--color)!important}.file-card-head .card-files-btn .ui-icon{width:19px;height:19px}.card-files-label{display:none!important}.tb-copy-m{display:none!important}@media (max-width:767px){.tb-copy-m{display:inline-flex!important;width:36px!important;height:34px!important}.file-card-head .file-card-path{flex:1 1 calc(100% - 96px)!important;gap:6px!important}}.ace_search{flex-direction:row}.ace_searchbtn_close{order:99;margin-left:auto!important;width:28px!important;height:28px!important}.ace_search .ace_button,.ace_searchbtn{color:var(--ink-soft)!important}.file-card-head .btn-find:focus:not(:focus-visible){background:0 0!important}.dark-mode .explorer-content .markdown-body img{filter:brightness(.92)!important}@media (max-width:767px){.file-card.is-code.no-wrap .ace_scroller{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 80px),rgba(0,0,0,.15) calc(100% - 8px),transparent)!important;mask-image:linear-gradient(to right,#000 calc(100% - 80px),rgba(0,0,0,.15) calc(100% - 8px),transparent)!important}}.acct-menu-head{padding:6px 10px 8px;margin-bottom:4px;border-bottom:1px solid var(--border-soft);font-size:12px;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-menu-head b{color:var(--color);font-weight:600}@media (max-width:767px){.file-card.is-code.no-wrap{position:relative}.file-card.is-code.no-wrap::before{content:"Scroll \2194";position:absolute;right:12px;bottom:14px;z-index:25;padding:5px 10px;border-radius:999px;background:color-mix(in srgb,var(--color) 82%,transparent);color:var(--canvas-bg-color);font:600 12px/1 var(--font-sans);pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.18)}.file-card-head>.view-switch{order:5!important;flex:1 1 100%;margin-left:0!important;display:grid!important;grid-template-columns:1fr 1fr}.file-card-head>.view-switch .btn{height:36px!important;min-height:36px!important;justify-content:center;font-size:14px}.file-card-head .file-card-meta{font-size:13px!important}}.acct-menu{width:240px}.acct-menu-head{white-space:normal;overflow-wrap:anywhere}.paper-feature .paper-feature-tab::after{border-width:0 1.5px 1.5px 0!important;border-color:var(--ink-soft)!important}.hero-mock-doc-bar span,.hero-mock-tree-title{color:var(--ink-soft)!important}.paper-frame-bar{color:var(--ink-soft)!important}.paper-frame-bar .dots i{background:color-mix(in srgb,var(--ink-muted) 55%,transparent)!important}.dark-mode .hero-mock-doc,.dark-mode .paper-frame{background:#24211d!important}.dark-mode .hero-mock-tree{background:#1c1a17!important}.dark-mode .paper-stats-grid .paper-stat-card{border-color:#3a3631!important}.dark-mode .paper-stats,.dark-mode .paper-stats-grid{border-color:#3a3631!important}.faq-section .panel-default .panel-body{padding-bottom:18px!important}.btn.btn-ghost.is-on{background:var(--hover-bg-color)!important;color:var(--accent)!important;box-shadow:none!important}.dark-mode .btn.btn-ghost.is-on{background:rgba(255,255,255,.08)!important;color:#7cc7be!important;box-shadow:none!important}.acct-chip .acct-caret,.acct-chip .acct-name{display:none}.acct-chip{padding:0 5px!important}.acct-chip img,.acct-initial{width:26px!important;height:26px!important}@media (min-width:768px){.explorer-content .file-card .file-content.markdown-body{margin:0 auto!important;padding-left:40px!important;padding-right:40px!important;max-width:920px}}.files .file.active>a::before{top:5px!important;bottom:5px!important}@media (max-width:767px){.explorer-content .ace_editor .ace_gutter-cell{padding-left:6px!important;padding-right:6px!important}}.repo-id,.repo-id-actions{display:none!important}.leftCol-search{display:flex;align-items:center;gap:6px;padding:12px 12px 8px!important}.leftCol-search .tree-search-box{flex:1 1 auto;min-width:0}.search-zip{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;border:1px solid var(--border-color);border-radius:8px;background:var(--canvas-bg-color);color:var(--ink-soft)!important}.search-zip:hover{background:var(--hover-bg-color);color:var(--color)!important;border-color:var(--ink-faint)}.search-zip .ui-icon{width:17px;height:17px}.dark-mode .search-zip{background:0 0}.support-cta{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:9px 12px;border-radius:var(--radius-surface);background:color-mix(in srgb,#e5484d 9%,var(--paper-card));box-shadow:inset 0 0 0 1px color-mix(in srgb,#e5484d 22%,transparent);color:var(--color)!important;text-decoration:none!important;transition:background .15s,box-shadow .15s}.support-cta:hover{background:color-mix(in srgb,#e5484d 14%,var(--paper-card));box-shadow:inset 0 0 0 1px color-mix(in srgb,#e5484d 40%,transparent)}.support-cta .ui-icon{width:18px;height:18px;flex-shrink:0;color:#e5484d;fill:#e5484d}.support-cta span{display:grid;min-width:0}.support-cta b{font-size:13px;font-weight:600}.support-cta small{font-size:12px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dark-mode .support-cta{background:color-mix(in srgb,#e5484d 12%,var(--sidebar-bg-color))}.leftCol-foot{padding:10px 12px 10px!important}.tb-file{display:inline-flex!important;align-items:stretch;gap:0!important;margin-left:8px;padding-left:0!important;border:1px solid var(--border-color)!important;border-radius:var(--radius-control);overflow:hidden}.tb-seg-btn{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 12px;border:0;background:var(--paper-card);font:inherit;font-size:13px;font-weight:500;color:var(--color)!important;text-decoration:none!important;cursor:pointer}.tb-seg-btn+.tb-seg-btn{border-left:1px solid var(--border-color)}.tb-seg-btn:hover{background:var(--hover-bg-color)}.tb-seg-icon{width:34px;padding:0;color:var(--ink-soft)!important}.tb-seg-icon:hover{color:var(--color)!important}.tb-seg-icon .ui-icon{width:15px;height:15px}.dark-mode .tb-seg-btn{background:0 0}.file-card-actions>.tb-file:first-child{margin-left:0}.file-card-head .btn-find,.file-card-head .btn-goto,.file-card-head .btn-toggle{width:32px!important;height:32px!important}.file-card.is-code.no-wrap::before{content:none!important;display:none!important}.acct-chip{width:34px;height:34px;padding:0!important;justify-content:center;border-radius:50%!important;background:0 0!important}.acct-chip:hover,.acct-chip[aria-expanded=true]{background:var(--hover-bg-color)!important}.ace_searchbtn_close{margin-left:4px!important}.dark-mode .explorer-content .markdown-body img{filter:brightness(.9)!important}.snapshot-line{display:flex;align-items:center;gap:6px;padding:0 14px 8px;font-size:12.5px;color:var(--ink-soft);white-space:nowrap;overflow:hidden}.snapshot-line span{overflow:hidden;text-overflow:ellipsis}.snapshot-line .ui-icon{width:14px;height:14px;flex-shrink:0;color:var(--ink-muted)}.leftCol-search{padding-bottom:6px!important}@media (max-width:767px){.explorer-content .file-card-head .file-card-meta{display:none!important}.explorer-content .file-card-head{flex-wrap:nowrap!important;min-height:52px!important}.file-card-head .card-files-btn,.file-card-head .tb-copy-m,.file-card-head .tb-more-btn{width:40px!important;height:40px!important}.file-card-head .card-files-btn{background:var(--hover-bg-color)!important;color:var(--color)!important;border-radius:var(--radius-control)!important}.file-card-head .file-card-path{flex:1 1 auto!important}}.acct-menu{box-shadow:0 16px 40px rgba(26,24,21,.22),0 0 0 1px var(--border-color)!important;border:0!important}.dark-mode .acct-menu{background:#26231f;box-shadow:0 16px 40px rgba(0,0,0,.55),0 0 0 1px #3a3631!important}.acct-chip{width:32px!important;height:32px!important}.acct-chip img,.acct-initial{width:30px!important;height:30px!important;font-size:13px!important}.ace_search{padding:6px 12px 6px 8px!important;min-height:40px}.ace_search_field{height:28px!important}.ace_search_options{gap:0!important;margin-left:4px!important}.ace_search_options .ace_button{border-radius:0!important;margin:0!important}.ace_search_options .ace_button+.ace_button{margin-left:-1px!important}.ace_search_options .ace_button:first-of-type{border-radius:var(--radius-control) 0 0 var(--radius-control)!important}.ace_search_options .ace_button:last-of-type{border-radius:0 var(--radius-control) var(--radius-control) 0!important}.ace_searchbtn_close{width:28px!important;height:28px!important;border-radius:var(--radius-control)!important;margin-left:8px!important;background-color:transparent!important;opacity:.65}.ace_searchbtn_close:hover{background-color:var(--hover-bg-color)!important;opacity:1}.ace_search_counter{color:var(--ink-soft)!important}.ace_editor .ace_marker-layer .ace_selected-word{background:color-mix(in srgb,var(--accent) 16%,transparent)!important}.ace_editor.ace-chrome .ace_marker-layer .ace_selection,.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection{background:color-mix(in srgb,var(--accent) 34%,transparent)!important;box-shadow:0 0 0 1px var(--accent)!important}.dark-mode .btn.btn-ghost.is-on{background:rgba(124,199,190,.16)!important;color:#a8ddd6!important}.paper-features{grid-template-columns:1fr 1.4fr!important;gap:40px!important}.faq-section .panel-default .panel-title a:after{border-color:var(--ink-soft)!important}.paper-features .paper-feature.is-on .paper-feature-tab::after,.paper-features .paper-feature:not(.is-on) .paper-feature-tab::after{border-width:0 1.5px 1.5px 0!important;border-color:var(--ink-muted)!important}.markdown-body mark.redact-chip,.redact-chip{display:inline-block;padding:0 6px;margin:0 1px;border-radius:4px;background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent);color:var(--accent);font-family:var(--font-mono);font-size:.82em;font-weight:500;line-height:1.5;vertical-align:.06em;cursor:help;transition:background .1s}.redact-chip:hover{background:color-mix(in srgb,var(--accent) 22%,transparent)}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip{font-size:.7em;vertical-align:.18em}.dark-mode .redact-chip{background:rgba(124,199,190,.14);color:#a8ddd6}.ace_editor .ace_marker-layer .ace_redacted{position:absolute;background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent);border-radius:3px}.dark-mode .ace_editor .ace_marker-layer .ace_redacted{background:rgba(124,199,190,.16)}.meta-redact{color:var(--accent);font-weight:500}.explorer-page{display:grid!important;grid-template-columns:var(--sidebar-w,280px) minmax(0,1fr);grid-template-rows:44px minmax(0,1fr)}.viewer-bar{grid-column:1/-1;grid-row:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px 0 14px;border-bottom:1px solid var(--border-color);background:var(--paper-bg-alt);z-index:20}.dark-mode .viewer-bar{background:var(--sidebar-bg-color)}.explorer-page>.leftCol{grid-row:2;grid-column:1;width:auto!important;flex:none!important;height:auto!important;min-height:0;border-top:0}.explorer-page>.explorer-main{grid-row:2;grid-column:2;min-height:0}.explorer-page.files-hidden{grid-template-columns:minmax(0,1fr)}.explorer-page.files-hidden>.explorer-main{grid-column:1/-1}.leftCol-resizer{top:44px!important}.card-files-btn.is-needed{display:none!important}.vb-left,.vb-right{display:flex;align-items:center;gap:4px;min-width:0}.vb-logo{font-family:var(--font-serif);font-size:18px;letter-spacing:-.01em;color:var(--color)!important;text-decoration:none!important;white-space:nowrap;margin-right:10px}.vb-logo em{font-style:italic}.vb-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:var(--radius-control);background:0 0;color:var(--ink-soft)!important;cursor:pointer;text-decoration:none!important}.vb-icon:hover{background:var(--hover-bg-color);color:var(--color)!important}.vb-icon .ui-icon{width:17px;height:17px}.vb-snapshot{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;margin-right:6px;border-radius:999px;background:var(--hover-bg-color);font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);white-space:nowrap;cursor:help}.vb-snapshot .ui-icon{width:13px;height:13px;color:var(--ink-muted)}.vb-support{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;margin-right:4px;border-radius:999px;background:color-mix(in srgb,#e5484d 10%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,#e5484d 28%,transparent);font-size:13px;font-weight:600;color:#c2353a!important;text-decoration:none!important}.vb-support:hover{background:color-mix(in srgb,#e5484d 16%,transparent)}.vb-support .ui-icon{width:15px;height:15px;fill:currentColor}.dark-mode .vb-support{color:#ff8a8e!important;background:rgba(229,72,77,.14)}.vb-signin{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px;margin-left:6px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);font-size:13px;font-weight:500;color:var(--color)!important;text-decoration:none!important}.vb-signin:hover{background:var(--hover-bg-color)}.dark-mode .vb-signin{background:0 0}.viewer-bar .acct{margin-left:6px}.viewer-bar .acct-menu{top:calc(100% + 8px);bottom:auto;left:auto;right:0}.explorer-page>.leftCol .leftCol-search{padding-top:12px!important}@media (max-width:991px){.explorer-page{grid-template-columns:minmax(0,1fr)}.explorer-page>.explorer-main{grid-column:1/-1}.vb-sidebar{display:none}.explorer-page>.leftCol{grid-row:auto}}@media (max-width:575px){.vb-bug,.vb-snapshot{display:none}.vb-support span{display:none}.vb-support{width:32px;padding:0;justify-content:center}}@media (max-width:991px){.explorer-page>.leftCol .leftCol-head{position:static!important;display:flex!important;align-items:center;justify-content:space-between;min-height:52px;padding:6px 8px 6px 16px!important;border-bottom:1px solid var(--border-soft)!important;background:0 0!important}.explorer-page>.leftCol .leftCol-head .leftCol-eyebrow{display:inline!important;font:600 15px/1 var(--font-sans);letter-spacing:0;text-transform:none;color:var(--color)}.explorer-page>.leftCol .leftCol-close{width:44px!important;height:44px!important}.files a{min-height:38px!important;font-size:15px}}.vb-support{background:var(--paper-card)!important;box-shadow:inset 0 0 0 1px var(--border-color)!important;color:var(--color)!important;font-weight:500!important}.vb-support .ui-icon{color:#e5484d;fill:#e5484d}.vb-support:hover{background:var(--hover-bg-color)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,#e5484d 40%,var(--border-color))!important}.dark-mode .vb-support{background:0 0!important;color:var(--color)!important}.vb-snapshot{font-family:var(--font-sans)!important;font-variant-numeric:tabular-nums;font-size:12.5px!important}.file-card-path .breadcrumb-root a{color:var(--ink-soft)!important}.file-card-path .breadcrumb-root a:hover{color:var(--color)!important;text-decoration:underline}@media (max-width:767px){.viewer-bar{padding:0 6px 0 12px}.vb-icon,.vb-support{width:40px!important;height:40px!important}.vb-signin{height:36px}.file-card-head .card-files-btn{background:0 0!important;color:var(--ink-soft)!important}}.ace_search{background:var(--paper-bg-alt)!important;border-bottom:1px solid var(--border-color)!important;gap:6px!important}.dark-mode .ace_search{background:#1e1b18!important}.ace_search .ace_searchbtn{width:28px!important;height:28px!important;border-radius:var(--radius-control)!important;border:1px solid var(--border-color)!important;background:var(--paper-card)!important}.ace_searchbtn_close{order:99;margin-left:6px!important;border:1px solid transparent!important;background-position:center!important;opacity:.8!important}@media (max-width:767px){.file-card.is-code.no-wrap .ace_scroller{-webkit-mask-image:none!important;mask-image:none!important}.file-card.is-code.no-wrap .file-card-body{position:relative}.file-card.is-code.no-wrap .file-card-body::after{content:"";position:absolute;top:0;right:0;bottom:0;width:36px;z-index:8;pointer-events:none;background:linear-gradient(to right,color-mix(in srgb,var(--paper-card) 0,transparent),var(--paper-card) 85%)}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,transparent,var(--canvas-bg-color) 85%)}}.dark-mode .ace_editor .ace_marker-layer .ace_redacted{background:rgba(124,199,190,.24)!important;box-shadow:inset 0 0 0 1px rgba(124,199,190,.5)!important}.paper-reassure,.paper-stat-delta,.paper-stat-label{color:var(--ink-soft)!important}.paper-faq-title{font-size:clamp(2.2rem,4vw,3.1rem)!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,transparent,var(--paper-card) 80%)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,transparent,var(--canvas-bg-color) 80%)!important}}@media (max-width:575px){.vb-support{box-shadow:none!important;background:0 0!important;border-radius:var(--radius-control)!important}.vb-support:hover{background:var(--hover-bg-color)!important}}.meta-redact{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent)!important;font-size:12px;font-weight:600;cursor:default}.dark-mode .meta-redact{background:rgba(124,199,190,.14);color:#a8ddd6!important}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{font-size:.6em!important;padding:1px 6px!important;vertical-align:.25em!important}.ace_search .ace_button{color:var(--ink-soft)!important;font-size:12.5px!important;font-weight:600!important;background:var(--paper-card)!important}.ace_search .ace_button.checked{background:var(--accent-soft)!important;color:var(--accent)!important;border-color:var(--accent)!important;position:relative;z-index:1}.ace_search{align-items:center!important}.ace_search_counter{align-self:center;line-height:28px}.hero-mock-row.is-active{background:rgba(128,128,128,.12)!important;box-shadow:inset 3px 0 0 var(--accent)}.mobile-sub{display:none}@media (max-width:767px){.file-card-head .file-card-path{display:grid!important;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;align-items:center}.file-card-head .file-card-path .card-files-btn{grid-row:1/span 2}.file-card-head .file-card-path .paths{grid-column:2}.mobile-sub{display:block;grid-column:2;margin-top:1px;font-size:12px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-sub b{color:var(--accent);font-weight:600}.dark-mode .mobile-sub b{color:#a8ddd6}.vb-icon[href="/faq"]{display:none!important}}.ace_searchbtn_close{font-size:0!important;color:transparent!important;background-size:10px 10px!important;align-self:center}.acct-initial{background:var(--hover-bg-color)!important;color:var(--color)!important;box-shadow:inset 0 0 0 1px var(--border-color)}.acct-chip[aria-expanded=true] .acct-initial{background:var(--accent-soft)!important;color:var(--accent)!important}.viewer-bar .acct-menu{top:calc(100% + 12px)!important}.dark-mode .paper-frame{box-shadow:0 0 0 1px #3f3a34,0 24px 60px rgba(0,0,0,.5)!important}.faq-section .panel-default .panel-body{max-width:640px!important}.anonymize-landing{align-items:flex-start!important;padding-top:clamp(32px,9vh,88px)!important}.landing-url-row{display:flex;gap:8px;align-items:stretch}.landing-url-row .form-control{flex:1 1 auto;min-width:0}.landing-continue{flex-shrink:0;height:auto;min-height:46px;padding:0 20px;font-weight:600}@media (max-width:575px){.landing-url-row{flex-direction:column}.landing-continue{min-height:44px}.source-url-label-row{flex-direction:column;align-items:flex-start!important;gap:8px}}.paper-table.paper-table-dashboard{width:100%}.q-card-count,.q-stat-value{font-family:var(--font-sans)!important;font-variant-numeric:tabular-nums;font-weight:600}.paper-table .paper-table-head [role=columnheader],.paper-table-head>div,.q-stat-label{font-family:var(--font-sans)!important;font-size:12px!important;letter-spacing:.02em!important;color:var(--ink-soft)!important}.errors-page .kpi-card.kpi-info .kpi-value{color:var(--color)!important}.errors-page .col-msg,.errors-page .col-msg *{font-weight:400!important}.errors-page .col-msg .msg-code,.errors-page .msg-code{font-size:13px!important}.admin-page select,.anonymize-page select,.errors-page select,.paper-page select,.paper-table select{height:34px;padding:0 30px 0 10px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--input-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236F6A61' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;-webkit-appearance:none;appearance:none;font:inherit;font-size:13px;color:var(--input-color)}input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px}.anonymize-page .form-control,.paper-page .form-control,.paper-page input[type=date],.paper-page input[type=text],.paper-page textarea{border:1px solid color-mix(in srgb,var(--ink-faint) 55%,var(--border-color))!important;border-radius:var(--radius-control)!important}.anonymize-page code,.paper-page code,.paper-page kbd{font-family:var(--font-mono)!important}.filter-chip.is-active .count,.paper-chip.is-active .count,.status-chip.active .count{color:inherit!important}.user-header h2{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.status-dot-wrap{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--ink-soft)}.user-actions{display:flex;flex-wrap:wrap;gap:8px}.user-detail-grid .detail-value.is-empty{color:var(--ink-muted);font-style:normal;font-family:var(--font-sans)!important}.admin-section-header h2{font-family:var(--font-sans)!important;font-size:15px!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;color:var(--color)!important}.errors-page .kpi-sub.down,.errors-page .kpi-sub.up{color:var(--ink-soft)!important}.errors-page .kpi-card.kpi-error .kpi-value{color:var(--color)!important}.errors-page .kpi-card.kpi-error:has(.kpi-value:not(:empty)) .kpi-value{color:var(--color)!important}.errors-page .kpi-label{font-family:var(--font-sans)!important}.errors-page .col-msg{font-family:var(--font-mono)!important;font-size:13px!important}.admin-page .admin-head,.admin-page .paper-page-head,.admin-page>header{min-height:92px}.admin-page .paper-page-title{min-height:44px;display:flex;align-items:center;margin-bottom:8px!important}.admin-page .errors-header,.admin-page .ov-header,.admin-page .q-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin-bottom:8px!important}.admin-page .errors-header .paper-page-title,.admin-page .ov-header .paper-page-title,.admin-page .q-header .paper-page-title{margin-bottom:0!important}.admin-page .admin-nav{margin-top:0!important}.admin-page .paper-crumbs{min-height:20px;margin-bottom:4px!important}.dashboard-page,.paper-page{max-width:1112px}.landing-continue:disabled{background:var(--hover-bg-color)!important;border-color:var(--border-color)!important;color:var(--ink-muted)!important;opacity:1!important;box-shadow:none!important}.landing-continue:not(:disabled){background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.admin-summary .summary-pill{border-color:var(--border-color)!important;color:var(--color)!important;background:var(--paper-card)!important}.admin-summary .summary-pill::before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--ink-faint);vertical-align:1px}.admin-summary .summary-pill.ok::before{background:var(--status-ready)}.admin-summary .summary-pill.progress::before,.admin-summary .summary-pill.warn::before{background:var(--status-progress)}.admin-summary .summary-pill.err::before,.admin-summary .summary-pill.error::before{background:var(--status-error)}.admin-summary .summary-pill .count{color:var(--ink-soft)!important;font-weight:600}.admin-summary .summary-pill.active{background:var(--accent-soft)!important;border-color:color-mix(in srgb,var(--accent) 45%,transparent)!important;color:var(--accent)!important}.admin-summary .summary-pill.active .count{color:var(--accent)!important}.admin-summary .summary-pill:has(.count:is(:empty)){opacity:.6}.admin-page .btn-dark,.admin-page .btn-primary{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.btn-outline-danger{border:1px solid color-mix(in srgb,var(--status-error) 45%,transparent)!important;color:var(--status-error)!important;background:0 0!important}.admin-page .paper-table-head>*,.admin-page [role=columnheader],.admin-page h3,.errors-page th,.q-card-title,.q-header-label,.q-panel-title{font-family:var(--font-sans)!important;text-transform:none!important;letter-spacing:0!important;font-size:12.5px!important;font-weight:600!important;color:var(--ink-soft)!important}.ov-flag{color:var(--status-error);font-weight:600}.overview-page .ov-daily-value{color:var(--color)!important}@media (max-width:767px){.paper-table.paper-table-dashboard{margin-left:0!important;margin-right:0!important;width:100%!important}.dashboard-meta{flex-wrap:wrap;row-gap:8px}.dashboard-active-filters{flex-basis:100%;flex-wrap:wrap}.anonymize-landing{padding-top:20px!important}.anonymize-landing .paper-page-lede{font-size:15px!important}}.anonymize-landing .source-privacy-note,.anonymize-landing .text-muted:has(.ui-icon){display:flex;gap:8px;align-items:flex-start;padding:10px 12px;margin-top:12px;border-radius:var(--radius-control);background:color-mix(in srgb,var(--status-progress) 9%,transparent);color:var(--color)!important;font-size:13px}.repo-access-note>span:has(.ui-icon){display:flex;gap:8px;align-items:flex-start;margin-top:10px;padding:9px 12px;border-radius:var(--radius-control);background:color-mix(in srgb,var(--status-progress) 10%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--status-progress) 25%,transparent);color:var(--color)!important;font-size:13px}.repo-access-note>span:has(.ui-icon) .ui-icon{color:var(--status-progress);flex-shrink:0;margin-top:2px}.admin-summary .summary-pill.active{background:var(--paper-card)!important;border-color:var(--border-color)!important;color:var(--color)!important}.admin-summary .summary-pill.active .count{color:var(--ink-soft)!important}.admin-summary .summary-pill:not(.active){background:0 0!important;border-style:dashed!important;color:var(--ink-muted)!important}.admin-summary .summary-pill:not(.active),.admin-summary .summary-pill:not(.active)>:not(.count){text-decoration:line-through;text-decoration-color:var(--ink-faint)}.admin-summary .summary-pill:not(.active) .count{text-decoration:none}.admin-summary .summary-pill:not(.active)::before{opacity:.45}.admin-page:has(.admin-users-row) .admin-summary .summary-pill:not(.active),.user-detail-card~* .admin-summary .summary-pill:not(.active){border-style:solid!important;text-decoration:none!important;color:var(--color)!important;background:var(--paper-card)!important}.admin-page:has(.admin-users-row) .admin-summary .summary-pill:not(.active)::before{opacity:1}.admin-page:has(.admin-users-row) .admin-summary .summary-pill.active{background:var(--accent-soft)!important;border-color:color-mix(in srgb,var(--accent) 45%,transparent)!important;color:var(--accent)!important}.copy-link-inline{display:inline-flex!important;align-items:center;gap:6px;height:30px;padding:0 10px!important;border:1px solid var(--border-color)!important;border-radius:var(--radius-control);background:var(--paper-card)!important;color:var(--color)!important;font-size:13px;font-weight:500}.copy-link-inline:hover{background:var(--hover-bg-color)!important}.copy-link-inline .project-type-svg{width:14px;height:14px}@media (max-width:767px){.copy-link-label{display:none}.copy-link-inline{width:36px;justify-content:center;padding:0!important}}.overview-page .ov-val-warn{color:var(--color)!important}.ov-flag{color:var(--status-progress)!important}@media (max-width:767px){.admin-page .admin-nav{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,#000 85%,transparent);mask-image:linear-gradient(to right,#000 85%,transparent)}.admin-page .admin-nav::-webkit-scrollbar{display:none}.admin-page .admin-nav a{flex-shrink:0}.admin-page .ov-header,.admin-page .paper-page-title{text-align:left!important;justify-content:flex-start!important}.overview-page .ov-kpi-row>:last-child:nth-child(odd){grid-column:1/-1}.admin-summary{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none}.admin-summary>*{flex-shrink:0}}.user-detail-grid .detail-value:first-of-type{font-family:var(--font-mono);font-size:13px}.user-header .type-badge{font-family:var(--font-sans)!important;letter-spacing:0!important;text-transform:none!important;font-weight:600}.errors-page .count-badge,.errors-page .msg-count,.errors-page [class*=count]{background:var(--hover-bg-color)!important;color:var(--color)!important}.ov-flag.critical{color:var(--status-error)!important}.paper-table.paper-table-dashboard .paper-table-head,.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(280px,3fr) 180px 70px 150px 150px!important}.paper-table.paper-table-dashboard .paper-table-row>:last-child{display:flex;justify-content:flex-end;align-items:center;gap:4px}.copy-link-inline{white-space:nowrap}@media (max-width:767px){.admin-filter-row,.admin-page form[class*=filter]{display:grid!important;grid-template-columns:1fr;gap:8px}.admin-page form[class*=filter] input,.admin-page form[class*=filter] select{width:100%!important}.admin-page form[class*=filter]>*{width:100%}.admin-page form[class*=filter] label{font-size:12px!important}}@media (min-width:768px){.copy-link-inline{width:auto!important;min-width:0!important}}@media (max-width:767px){.copy-link-inline{width:44px!important;height:44px!important}}.errors-list-head,.errors-list-head>span,.q-section-label{font-family:var(--font-sans)!important;text-transform:none!important;letter-spacing:0!important;font-size:12.5px!important;font-weight:600!important;color:var(--ink-soft)!important}.errors-list-head>span{background:0 0!important}.q-state-chip{background:var(--paper-card)!important;color:var(--color)!important;border:1px solid var(--border-color)!important;text-transform:none!important;font-family:var(--font-sans)!important;letter-spacing:0!important}.q-state-chip::before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--ink-faint)}.q-state-chip.q-state-active::before{background:var(--accent)}.q-state-chip.q-state-delayed::before,.q-state-chip.q-state-waiting::before{background:var(--status-progress)}.q-state-chip.q-state-failed::before{background:var(--status-error)}.q-state-chip.q-state-completed::before{background:var(--status-ready)}.role-pill{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:var(--hover-bg-color);font:600 12px/1 var(--font-sans);color:var(--color)}.user-header .type-badge{background:var(--hover-bg-color)!important;border:0!important}.admin-filter-inline label,.admin-page label{font-size:12px!important;color:var(--ink-soft)!important}.admin-page select,.admin-page select.form-control{padding-right:30px!important;background:var(--input-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236F6A61' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center!important;-webkit-appearance:none!important;appearance:none!important}.admin-page .paper-table-row .text-muted,.admin-page .paper-table-row [class*=meta]{color:var(--ink-soft)!important}.dashboard-page.container,.paper-page,.paper-page.container{max-width:1112px!important;padding-left:32px!important;padding-right:32px!important}@media (max-width:767px){.dashboard-page.container,.paper-page,.paper-page.container{padding-left:18px!important;padding-right:18px!important}}.page-head-row>a.btn{margin-top:6px}.paper-faq-toc nav,.paper-settings-toc nav{border-left:1px solid var(--border-color)}.paper-settings-toc nav a{margin-left:-1px;border-left:2px solid transparent}.paper-settings-toc nav a.active{border-left-color:var(--accent)!important;color:var(--color)}.paper-page textarea{resize:vertical}.paper-page input[type=date]{height:38px;padding:0 10px;color:var(--input-color);font-family:var(--font-sans)}@media (max-width:767px){.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"name actions" "meta meta";row-gap:6px}.paper-table.paper-table-dashboard .paper-table-row>:first-child{grid-area:name}.paper-table.paper-table-dashboard .paper-table-row>:last-child{grid-area:actions;align-self:start}.paper-table.paper-table-dashboard .paper-table-row>:not(:first-child):not(:last-child){grid-column:1/-1}.copy-link-inline{width:36px!important;height:36px!important}.admin-filter-toolbar{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}.admin-filter-toolbar>:first-child{grid-column:1/-1}.admin-filter-toolbar .admin-filter-inline{display:grid!important;gap:4px}.admin-filter-toolbar .admin-filter-inline label{margin:0}.admin-filter-toolbar>:last-child{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center}.overview-page .ov-header{align-items:flex-start!important;text-align:left!important}.overview-page .ov-header .paper-page-title{width:100%;justify-content:flex-start!important;text-align:left!important}}@media (max-width:767px){.paper-table.paper-table-dashboard .paper-table-row{flex-wrap:wrap!important;align-items:flex-start!important;row-gap:6px}.paper-table.paper-table-dashboard .paper-table-row>.cell-anon{flex:1 1 0!important;min-width:0;order:1}.paper-table.paper-table-dashboard .paper-table-row>.cell-actions{flex:0 0 auto!important;order:2;width:auto!important;margin:0!important}.paper-table.paper-table-dashboard .paper-table-row>.dashboard-row-meta{flex:1 1 100%!important;order:3}.admin-filter-toolbar{display:block!important}.admin-filter-row{display:grid!important;grid-template-columns:1fr 1fr;gap:8px!important}.admin-filter-row>:first-child{grid-column:1/-1}.admin-filter-row .admin-filter-inline{display:grid!important;gap:4px;min-width:0}.admin-filter-row .admin-filter-inline input{width:100%!important}.admin-filter-row>:last-child{grid-column:1/-1;display:flex!important;justify-content:space-between;align-items:center;flex-direction:row!important}.admin-filter-row>:last-child .btn{width:auto!important}}.page-head-row .btn-primary,.paper-page .btn-primary{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.dark-mode .paper-page .btn-primary{background:#1f6a64!important;border-color:#1f6a64!important}.q-section-right,.q-section-right *,.q-stat-label{font-family:var(--font-sans)!important;text-transform:none!important;letter-spacing:0!important;font-size:12px!important;color:var(--ink-soft)!important}.q-card .q-card-sub,[class*=q-card] small{font-family:var(--font-sans)!important}.quota-ring-track{stroke:var(--border-color)!important;stroke-width:3!important;fill:none}.quota-ring-fill{stroke:var(--accent)!important;stroke-width:3!important;fill:none;stroke-linecap:round;transform:rotate(-90deg);transform-origin:12px 12px;min-width:0}.quota-summary-ring{width:18px!important;height:18px!important}.errors-list-head .col-count,.errors-list-head .col-msg{background:0 0!important;font-family:var(--font-sans)!important;font-weight:600!important}.errors-page .col-count>*{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:var(--hover-bg-color)!important;color:var(--color)!important;font:600 12px/1 var(--font-sans);box-shadow:none!important}.errors-page .col-count>*>*{background:0 0!important}.errors-page .col-when{display:flex;flex-direction:column;gap:0;line-height:1.3}.errors-page .errors-list>div:not(.errors-list-head){padding-top:10px!important;padding-bottom:10px!important;min-height:0!important}.errors-page .kpi-sub{font-style:normal!important;color:var(--ink-soft)!important}.q-legend-exec{display:inline-block;width:14px;height:0;border-top:2px dashed var(--ink-muted);vertical-align:middle;margin-right:4px}.admin-filter-row .admin-search,.admin-filter-row input[placeholder^=Search],.admin-filter-row input[type=search],.admin-filter-row>:first-child{flex:1 1 320px!important;min-width:280px}.repo-access-note>span:has(.ui-icon){background:var(--hover-bg-color)!important;box-shadow:none!important}.repo-access-note>span:has(.ui-icon) .ui-icon{color:var(--ink-soft)!important}.dark-mode .paper-table-row{background:0 0!important}.dark-mode .paper-table-row:hover{background:rgba(255,255,255,.04)!important}.dark-mode .btn-primary,.dark-mode .dashboard-page .btn-primary,.dark-mode .paper-page .btn-primary{background:#1f6a64!important;border-color:#1f6a64!important;color:#fff!important}.dark-mode .dashboard-type-filter.btn-primary{background:rgba(124,199,190,.16)!important;border-color:transparent!important;color:#a8ddd6!important}.paper-page .form-control,.paper-page input[type=date],.paper-page input[type=text],.paper-page textarea{border-color:var(--border-color)!important}.paper-page .form-control:focus,.paper-page textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}.errors-page .col-count{background:0 0!important;box-shadow:none!important;display:flex;align-items:center}.errors-page .col-count::after,.errors-page .col-count::before{content:none!important;display:none!important}.errors-page .col-count .count-pill{width:auto!important;min-width:0!important}.paper-page .dashboard-type-filter.btn-primary{background:var(--accent-soft)!important;border-color:transparent!important;color:var(--accent)!important}.paper-page>.row{margin-left:0!important;margin-right:0!important}.paper-page>.row>[class*=col],.paper-page>.row>[class*=w-100]{padding-left:0!important;padding-right:0!important}.q-table th{font-family:var(--font-sans)!important;text-transform:none!important;letter-spacing:0!important;font-size:12.5px!important;font-weight:600!important;color:var(--ink-soft)!important}.admin-page input:not([type=checkbox]),.claim-page input,.paper-page input.form-control,.paper-page input[type=date],.paper-page input[type=search],.paper-page input[type=text],.paper-page input[type=url],.paper-page select.form-control,.paper-page textarea,.paper-page textarea.form-control{border:1px solid var(--border-color)!important}.dark-mode .admin-page input:not([type=checkbox]),.dark-mode .claim-page input,.dark-mode .paper-page input.form-control,.dark-mode .paper-page textarea{border-color:#5a554d!important}.landing-continue:disabled{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important;opacity:.45!important}.overview-page .ov-kpi-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width:767px){.admin-page .admin-nav{flex-wrap:wrap!important;overflow:visible!important;-webkit-mask-image:none!important;mask-image:none!important;row-gap:4px}.admin-summary{flex-wrap:wrap!important;overflow:visible!important;row-gap:8px}.admin-page .paper-table-row .text-muted,.admin-page .paper-table-row [class*=meta]{white-space:normal!important}}.summary-total small{font-size:13px;font-weight:500;color:var(--ink-soft);margin-left:2px}@media (max-width:767px){.overview-page .ov-daily-row,.overview-page .ov-kpi-row,.overview-page [class*=ov-][class*="-row"]{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.overview-page .ov-kpi-card,.overview-page [class*=ov-daily-card]{min-width:0!important;width:auto!important}.overview-page .ov-kpi-row>:last-child:nth-child(odd){grid-column:1/-1}}.user-detail-grid .detail-value:nth-of-type(1){font-family:var(--font-mono)!important}.paper-table-empty .empty-title{display:block;font-size:15px;font-weight:600;color:var(--color);margin-bottom:4px}.paper-table-empty>span{max-width:440px;text-align:center}.paper-table-empty-actions{margin-top:12px;display:flex;gap:8px;justify-content:center}.q-action-sep{display:inline-block;width:1px;height:22px;margin:0 6px;background:var(--border-color);vertical-align:middle}.hidden-toggle{padding:0;border:0;background:0 0;color:var(--link-color);font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.ov-meter{height:4px;margin:6px 0 2px;border-radius:4px;background:var(--hover-bg-color);overflow:hidden}.ov-meter>span{display:block;height:100%;border-radius:4px;background:var(--ink-faint)}.ov-meter.warn>span{background:var(--status-progress)}.ov-meter.crit>span{background:var(--status-error)}.admin-filters-toggle{display:none}@media (max-width:767px){.admin-filters-toggle{display:inline-flex;margin:8px 0}.admin-filter-toolbar .admin-filter-row:not(.is-open)>:not(:first-child){display:none!important}.admin-filter-toolbar .admin-filter-row:not(.is-open){grid-template-columns:1fr!important}}.paper-settings-layout,.settings-layout{max-width:none!important}.paper-settings-layout>:last-child,.settings-layout>:last-child{max-width:none!important;flex:1 1 auto}.errors-list-head>span{font-weight:600!important}.errors-page .errors-list>div:not(.errors-list-head){min-height:56px!important}.reading-layout{display:grid;grid-template-columns:minmax(0,720px) 220px;justify-content:center;gap:48px;padding:0 32px}.reading-layout .file-content.markdown-body{max-width:none!important;margin:0!important;padding:40px 0 96px!important;font-size:16px!important;line-height:1.7!important}.reading-layout .markdown-body h1{font-size:34px!important;font-weight:600!important;letter-spacing:-.02em;border-bottom:0!important;margin-bottom:12px!important}.reading-layout .markdown-body h2{font-size:24px!important;font-weight:600!important;letter-spacing:-.01em;border-bottom:0!important;margin-top:44px!important;padding-bottom:0!important;scroll-margin-top:72px}.reading-layout .markdown-body h3{font-size:18px!important;margin-top:28px!important;scroll-margin-top:72px}.reading-layout .markdown-body>p:first-of-type{font-size:18px;color:var(--ink-soft)}.readme-toc{position:sticky;top:68px;align-self:start;margin-top:44px;max-height:calc(100% - 100px);overflow:auto;display:grid;gap:2px;font-size:13px}.readme-toc-head{font-size:12px;font-weight:600;color:var(--color);margin-bottom:8px}.readme-toc a{display:block;padding:4px 0 4px 12px;border-left:1px solid var(--border-color);color:var(--ink-soft)!important;text-decoration:none!important;line-height:1.35}.readme-toc a:hover{color:var(--color)!important;border-left-color:var(--ink-muted)}.readme-toc a.lvl-3{padding-left:24px;font-size:12.5px}@media (max-width:1199px){.reading-layout{grid-template-columns:minmax(0,760px)}.readme-toc{display:none}}@media (max-width:767px){.reading-layout{padding:0 16px}.reading-layout .file-content.markdown-body{padding:20px 0 72px!important}.reading-layout .markdown-body h1{font-size:26px!important}.reading-layout .markdown-body h2{font-size:20px!important}}.demo{margin-top:28px;display:grid;gap:14px}.demo-terms{display:grid;gap:6px}.demo-terms label{font-size:13px;font-weight:600;color:var(--color);margin:0}.demo-terms label span{font-weight:400;color:var(--ink-soft);margin-left:6px}.demo-terms input{height:42px;padding:0 14px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);font:14px var(--font-mono);color:var(--color)}.demo-terms input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.demo-panes{display:grid;grid-template-columns:1fr 1fr;gap:14px}.demo .pane{border:1px solid var(--border-color);border-radius:var(--radius-surface);background:var(--paper-card);overflow:hidden;display:flex;flex-direction:column}.demo .pane-header{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border-soft);font-size:12px;color:var(--ink-soft)}.demo .pane-label{font-weight:600;color:var(--color)}.demo .pane-url{font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo .pane-after{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent);border-color:color-mix(in srgb,var(--accent) 35%,var(--border-color))}.demo .pane-body{min-height:150px;padding:14px 16px;font:13px/1.75 var(--font-mono);color:var(--color);white-space:pre-wrap}.demo-input{border:0;resize:vertical;background:0 0;outline:0;width:100%}.demo-input:focus{background:color-mix(in srgb,var(--accent) 3%,transparent)}.demo-output .redact-chip{font-size:.92em}@media (max-width:767px){.demo-panes{grid-template-columns:1fr}}.paper-frame-bar .dots{display:none!important}.paper-frame-bar{justify-content:flex-start!important;height:32px!important;background:0 0!important}.paper-frame-bar .url{text-align:left!important;flex:none!important}.reading-layout .markdown-body>p:first-of-type{font-size:inherit!important;color:inherit!important}@media (max-width:767px){.mobile-sub b{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:999px;background:var(--accent-soft);font-size:11.5px}.explorer-content .file-card-head{min-height:52px!important;padding-top:6px!important;padding-bottom:6px!important}.file-card-head .file-card-path{gap:4px!important;column-gap:4px!important}.file-card.is-code.no-wrap .file-card-body::after{width:48px!important;background:linear-gradient(to right,transparent,var(--paper-card) 60%)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,transparent,var(--canvas-bg-color) 60%)!important}}.ace_search{justify-content:flex-start}.ace_searchbtn_close{margin-left:auto!important;order:99}.fm-chips span,.paper-preview .term{background:var(--hover-bg-color)!important;color:var(--ink-soft)!important;text-decoration-color:var(--ink-muted)!important}.dark-mode .files .file.active>a{background:rgba(255,255,255,.06)!important}.dark-mode .ace-nord-dark .ace_marker-layer .ace_redacted,.dark-mode .ace_editor .ace_marker-layer .ace_redacted{background:rgba(124,199,190,.32)!important;box-shadow:inset 0 0 0 1px rgba(124,199,190,.65)!important}.paper-link-arrow{font-size:15px!important}.paper-reassure{font-size:14px!important}.acct-menu-head,.dark-mode .acct-menu-head{color:var(--ink-soft)!important}.reading-layout{grid-template-columns:minmax(0,720px) 200px!important;gap:40px!important;padding:0 24px!important}.vb-snapshot{color:var(--ink-soft)!important;background:var(--paper-card)!important;box-shadow:inset 0 0 0 1px var(--border-color)}.paper-faq-lede a{color:var(--color)!important;border-bottom:1px solid var(--ink-faint)!important;text-decoration:none!important}.paper-faq-lede a:hover{border-bottom-color:var(--color)!important}.paper-qa,.paper-section-head{margin-top:96px!important}.ace-chrome .ace_constant.ace_language,.ace-chrome .ace_constant.ace_numeric,.ace-chrome .ace_support.ace_constant{color:#0550ae!important}.ace-nord-dark .ace_constant.ace_language,.ace-nord-dark .ace_constant.ace_numeric,.ace-nord-dark .ace_support.ace_constant{color:#79c0ff!important}.copy-url{display:inline-flex;align-items:center;gap:8px;max-width:230px;height:30px;padding:0 8px 0 10px;border:0;border-radius:var(--radius-control);background:var(--hover-bg-color);font:500 12.5px/1 var(--font-mono);color:var(--ink-soft);cursor:pointer;transition:background .12s,color .12s}.copy-url:hover{background:var(--accent-soft);color:var(--accent)}.copy-url:disabled{cursor:progress}.copy-url-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.copy-url .project-type-svg{width:14px;height:14px;flex-shrink:0;opacity:.75}.copy-url:hover .project-type-svg{opacity:1}.paper-table.paper-table-dashboard .paper-table-head,.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(260px,3fr) 170px 64px 140px 280px!important}@media (max-width:767px){.copy-url{max-width:44px;padding:0;justify-content:center;width:40px;height:40px}.copy-url-text{display:none}}.dashboard-page .btn.dashboard-type-filter.btn-primary,.paper-page .btn.dashboard-type-filter.btn-primary{background:var(--accent-soft)!important;border-color:transparent!important;color:var(--accent)!important}.ace_editor .ace_marker-layer .ace_selected-word{background:rgba(242,204,96,.42)!important;box-shadow:none!important;border-radius:2px}.ace_editor.ace-chrome .ace_marker-layer .ace_selection{background:#f2cc60!important;box-shadow:0 0 0 1px #c69026!important}.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection{background:rgba(242,204,96,.55)!important;box-shadow:0 0 0 1px #f2cc60!important}.ace_searchbtn_close{background-image:none!important;width:28px!important;height:28px!important;display:inline-flex!important;align-items:center;justify-content:center;border-radius:var(--radius-control)!important;opacity:1!important;color:var(--ink-soft)!important}.ace_searchbtn_close::before{content:"\00d7";font:400 20px/1 var(--font-sans);color:var(--ink-soft)}.ace_searchbtn_close:hover{background-color:var(--hover-bg-color)!important}.ace_search{padding:6px 12px!important}.readme-toc a.is-active{color:var(--color)!important;border-left:2px solid var(--accent)!important;margin-left:-.5px;font-weight:500}.demo .pane-after{box-shadow:none!important;border-color:var(--border-color)!important}.demo .pane-body{min-height:120px!important}.demo-input{resize:none!important}.vb-snapshot .vb-dot{margin:0 2px;color:var(--ink-faint)}.dark-mode .btn-hero,.dark-mode .btn-primary,.dark-mode .landing-continue:not(:disabled){background:#2b8a80!important;border-color:#2b8a80!important;color:#fff!important}.paper-reassure li::before{content:""!important;display:inline-block;width:14px;height:14px;margin-right:7px;vertical-align:-2px;background:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat}.nav-support-inline .nav-heart{width:14px;height:14px;color:#e5484d;fill:#e5484d}.fm-chips span{color:var(--color)!important}@media (max-width:767px){.vb-icon,.vb-support{width:36px!important;height:36px!important}.vb-signin{height:36px!important}.navbar .nav-signin-m,.navbar-toggler{height:36px!important;border-radius:var(--radius-control)!important}}.overview-page .ov-spark-fill,.overview-page .ov-spark-fill-alt,.overview-page .ov-spark-fill-new-user,.overview-page .ov-spark-fill-user{background:color-mix(in srgb,var(--accent) 70%,transparent)!important}.overview-page .ov-dot-legend{background:var(--accent)!important}.errors-page .bucket-info,.errors-page .col-sev .sev-info::before,.errors-page .errors-chart [class*=info]{background:var(--ink-faint)!important}.errors-header .btn-danger{background:0 0!important;color:var(--status-error)!important;border:1px solid color-mix(in srgb,var(--status-error) 45%,transparent)!important;margin-left:10px}.conferences-page .paper-table:has(.paper-table-empty) .paper-table-head{display:none!important}.copy-url{max-width:280px!important}.paper-table.paper-table-dashboard .paper-table-head,.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(240px,3fr) 150px 60px 130px 320px!important}.dark-mode .paper-table-dashboard .paper-table-row{background:0 0!important}.ace_editor .ace_marker-layer .ace_redacted{background:color-mix(in srgb,var(--accent) 18%,transparent)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 60%,transparent)!important}.ace_searchbtn_close{margin-left:4px!important}.ace_search .ace_button{font-size:12px!important}.nav-support-inline .nav-heart,.support-cta .ui-icon,.vb-support .ui-icon{color:#c25b5e!important;fill:#c25b5e!important}.nav-support-inline:hover .nav-heart,.support-cta:hover .ui-icon,.vb-support:hover .ui-icon{color:#e5484d!important;fill:#e5484d!important}.vb-support{background:0 0!important;box-shadow:inset 0 0 0 1px var(--border-color)!important}.dark-mode .nav-support-inline .nav-heart,.dark-mode .vb-support .ui-icon{color:#d9787b!important;fill:#d9787b!important}.readme-toc .toc-rail{border-left:1px solid var(--border-color)}.readme-toc a,.readme-toc a.is-active{border-left:0!important;margin-left:-1px!important;padding:5px 0 5px 13px!important;line-height:1.4}.readme-toc a.lvl-3{padding-left:25px!important}.readme-toc a:hover{box-shadow:inset 1px 0 0 var(--ink-muted)}.readme-toc a.is-active{box-shadow:inset 2px 0 0 var(--accent)!important}@media (min-width:992px){.demo-panes{grid-template-columns:1fr 1.4fr;gap:40px}}.fm-chips span{text-decoration:none!important}.dark-mode .btn-hero,.dark-mode .btn-primary,.dark-mode .landing-continue:not(:disabled){background:#237a71!important;border-color:#237a71!important}.dark-mode .paper-frame{box-shadow:0 0 0 1px #34302b,0 24px 60px rgba(0,0,0,.5)!important}.dark-mode .leftCol{background:#1d1a17!important}.dark-mode .files .file.active>a{background:rgba(255,255,255,.09)!important}.dark-mode .explorer-content .markdown-body img{filter:none!important}@media (max-width:767px){.viewer-bar{padding-left:12px!important;padding-right:12px!important}.vb-signin{height:30px!important;padding:0 10px!important}}.paper-table.paper-table-dashboard .paper-table-head,.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(240px,3fr) 190px 60px 120px 300px!important}.paper-table-dashboard .cell-status .status-sub-date{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}.row-edit{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-control);color:var(--ink-soft)!important}.row-edit:hover{background:var(--hover-bg-color);color:var(--color)!important}.row-edit .ui-icon{width:16px;height:16px}.cell-actions{display:flex;align-items:center;gap:4px;justify-content:flex-end}.dashboard-filter-controls .btn-group[aria-label=Type]{background:var(--hover-bg-color);padding:3px;border-radius:calc(var(--radius-control) + 3px);gap:2px}.dashboard-filter-controls .btn-group[aria-label=Type]>.btn{border:0!important;background:0 0!important;color:var(--ink-soft)!important;border-radius:var(--radius-control)!important;height:32px;box-shadow:none!important}.dashboard-filter-controls .btn-group[aria-label=Type]>.btn.btn-primary{background:var(--paper-card)!important;color:var(--color)!important;box-shadow:0 1px 2px rgba(0,0,0,.08),0 0 0 1px var(--border-color)!important}.admin-filter-row .form-control,.dashboard-page .dashboard-filter-row .form-control,.paper-page .search-wrap .form-control{border:1px solid #a39d92!important}.dark-mode .admin-filter-row .form-control,.dark-mode .dashboard-page .dashboard-filter-row .form-control,.dark-mode .paper-page .search-wrap .form-control{border-color:#4a443d!important}.ov-health{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;margin:0 0 20px;border-radius:var(--radius-control);background:color-mix(in srgb,var(--status-error,#b42318) 8%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--status-error,#b42318) 30%,transparent);font-size:14px;color:var(--color)}.ov-health .ui-icon{width:18px;height:18px;flex:none;margin-top:1px;color:var(--status-error,#b42318)}.dark-mode .ov-health{background:rgba(240,138,130,.1);box-shadow:inset 0 0 0 1px rgba(240,138,130,.35)}.dark-mode .ov-health .ui-icon{color:#f08a82}.cell-anon .record-type-icon{display:none!important}.cell-anon{padding-left:0!important}.errors-page .errors-row-main{padding-top:10px!important;padding-bottom:10px!important;min-height:46px;align-items:center!important}.errors-page .col-when{display:flex;gap:8px;align-items:baseline}.errors-page .when-abs{font-size:12px}.errors-page .msg-code{font-family:var(--font-sans)!important;font-weight:500!important;font-size:13.5px!important}@media (max-width:767px){.viewer-bar .vb-icon,.viewer-bar .vb-signin,.viewer-bar .vb-support{height:36px!important;border-radius:var(--radius-control)!important;background:0 0!important;box-shadow:inset 0 0 0 1px var(--border-color)!important;border:0!important}.viewer-bar .vb-icon,.viewer-bar .vb-support{width:36px!important}.viewer-bar .vb-signin{padding:0 12px!important}.file-card-head .card-files-btn,.file-card-head .tb-copy-m,.file-card-head .tb-more-btn{width:36px!important;height:36px!important;border-radius:var(--radius-control)!important;background:0 0!important;box-shadow:inset 0 0 0 1px var(--border-color)!important;color:var(--color)!important}.file-card.is-code.no-wrap .file-card-body::after{width:64px!important;background:linear-gradient(to right,transparent,var(--paper-card) 70%)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,transparent,var(--canvas-bg-color) 75%)!important}}.btn-toggle.is-on,.btn-toggle[aria-pressed=true]{color:var(--accent)!important;background:var(--accent-soft)!important}.dark-mode .btn-toggle.is-on{background:rgba(124,199,190,.14)!important}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{font-size:.78em!important;padding:0 6px!important;vertical-align:.08em!important;font-weight:600!important}@media (min-width:1200px){.readme-toc{padding-top:10px}}.fm-toggles span{color:var(--color)!important}.dark-mode .paper-frame{border:0!important;box-shadow:0 0 0 1px #34302b,0 24px 60px rgba(0,0,0,.45)!important}.q-section-right .q-legend-completed{color:#2f7d4f!important}.q-section-right .q-legend-failed{color:#b42318!important}.dark-mode .q-section-right .q-legend-completed{color:#6fbf8a!important}.dark-mode .q-section-right .q-legend-failed{color:#f08a82!important}.q-chart-wrap canvas{max-height:180px}.avatar-fallback{width:28px;height:28px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--hover-bg-color);color:var(--ink-soft);font-size:12px;font-weight:600}.mono-id{font-family:var(--font-mono)!important;font-size:13px!important}.landing-continue:disabled{background:var(--hover-bg-color)!important;border-color:var(--border-color)!important;color:var(--ink-soft)!important;opacity:1!important;cursor:not-allowed}.paper-table .anon-sub,.paper-table .anon-sub *{font-size:12px}.dashboard-heading-actions{display:flex;align-items:center;gap:10px}.dashboard-heading-actions .dashboard-quota{position:relative;margin:0!important}.dashboard-heading-actions .quota-panel{right:0;left:auto!important}@media (max-width:767px){.admin-nav{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;gap:4px;margin-left:-16px;margin-right:-16px;padding:0 16px 4px}.admin-nav::-webkit-scrollbar,.admin-summary::-webkit-scrollbar{display:none}.admin-nav a{flex:none;white-space:nowrap}.admin-summary{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;gap:6px;margin-left:-16px;margin-right:-16px;padding:0 16px 4px}.admin-summary>*{flex:none;white-space:nowrap}.paper-table .anon-sub{flex-wrap:wrap!important;white-space:normal!important;row-gap:2px}.paper-table .anon-sub>a,.paper-table .anon-sub>span{overflow:visible!important;text-overflow:clip!important;white-space:nowrap}.paper-table .cell-anon .repo-name{white-space:normal!important;overflow-wrap:anywhere;overflow:visible!important;text-overflow:clip!important}.overview-page .ov-kpi-sub{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}.overview-page .ov-kpi-row{grid-template-columns:1fr 1fr!important}}.dashboard-page .dashboard-heading-actions{flex-direction:row!important;align-items:center!important;gap:10px!important}@media (max-width:767px){.admin-page .admin-nav{flex-wrap:nowrap!important;overflow-x:auto!important;margin-left:-16px;margin-right:-16px;padding:0 16px 4px}header.viewer-bar .vb-icon,header.viewer-bar .vb-support{box-shadow:inset 0 0 0 1px var(--border-color)!important;background:0 0!important}}@media (max-width:767px){.dashboard-page .dashboard-heading{flex-direction:column!important;align-items:stretch!important;gap:12px}.dashboard-page .dashboard-heading-actions{justify-content:space-between!important;width:100%}.row-edit{display:none!important}}@media (max-width:767px){.paper-table-dashboard .copy-url{background:0 0!important;box-shadow:inset 0 0 0 1px var(--border-color)!important}}@media (max-width:767px){.mobile-sub{display:flex!important;align-items:center;gap:6px;margin-top:3px!important}.mobile-sub>*+::before{content:"·";margin-right:6px;color:var(--ink-muted);font-weight:400}.mobile-sub>b::before{display:none}header.viewer-bar .vb-icon,header.viewer-bar .vb-support{box-shadow:none!important;background:0 0!important}.file-card-head .card-files-btn,.file-card-head .tb-copy-m,.file-card-head .tb-more-btn{box-shadow:none!important;background:0 0!important}.file-card-head .card-files-btn:active,.file-card-head .tb-copy-m:active,.file-card-head .tb-more-btn:active{background:var(--hover-bg-color)!important}.file-card-head{padding-top:6px!important;padding-bottom:6px!important}}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{box-shadow:none!important;border:0!important;padding:0 5px!important;font-weight:500!important}@media (min-width:1200px){.reading-layout{gap:40px!important}}.ace_search .ace_search_field:focus,.ace_search_field:focus{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent)!important;border-color:color-mix(in srgb,var(--accent) 70%,transparent)!important}.demo-terms label span,.paper-eyebrow,.paper-footer,.paper-footer a{color:var(--ink-soft)!important}.dark-mode .anonymize-page .btn-ink,.dark-mode .btn-hero,.dark-mode .btn-primary,.dark-mode .landing-continue,.dark-mode .page-head-row .btn-primary,.dark-mode .paper-page .btn-ink,.dark-mode .paper-page .btn-primary{background:#237a71!important;border-color:#237a71!important;color:#fff!important}.dark-mode .anonymize-page .btn-ink:hover,.dark-mode .btn-primary:hover,.dark-mode .paper-page .btn-ink:hover{background:#1e6b63!important;color:#fff!important;filter:none!important}.landing-continue,.landing-continue:disabled{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important;opacity:1!important;cursor:pointer}.errors-page .seg.seg-info{background:var(--ink-faint)!important;opacity:1!important}.errors-page .dot-info,.errors-page .sev-dot.sev-info{background:var(--ink-muted)!important}@media (max-width:767px){.admin-page .admin-nav,.admin-summary{-webkit-mask-image:linear-gradient(to right,#000 82%,transparent)!important;mask-image:linear-gradient(to right,#000 82%,transparent)!important;scroll-snap-type:x proximity}.admin-page .admin-nav a,.admin-summary>*{scroll-snap-align:start}.admin-page .admin-filters-toggle,.admin-page .dashboard-filters-toggle{width:auto!important}}.admin-filter-inline{display:inline-flex;align-items:center;gap:6px;margin-left:14px}.admin-filter-inline label{margin:0!important;font-size:12.5px;color:var(--ink-soft)}.admin-filter-row .form-control,.dashboard-page .dashboard-filter-row .form-control,.paper-page .search-wrap .form-control{border-color:var(--border-color)!important;height:36px!important}.admin-filter-row .form-control:focus,.dashboard-page .dashboard-filter-row .form-control:focus{border-color:var(--accent)!important}.dashboard-page .dashboard-filter-controls .btn,.dashboard-page .dashboard-filter-controls .dropdown-toggle{height:36px}.admin-page .cell-repos a,.paper-table [role=cell].num a{color:var(--color)!important;font-family:var(--font-sans)!important}.errors-page .col-count{font-weight:inherit!important;color:inherit!important}.errors-page .errors-row-main{min-height:52px!important;padding-top:8px!important;padding-bottom:8px!important}.connections-grid{display:grid!important;grid-template-columns:1fr 1fr!important;align-items:stretch}@media (max-width:767px){.connections-grid{grid-template-columns:1fr!important}}.admin-page .admin-filter-inline .form-control,.admin-page .admin-filter-row .form-control,.admin-page .search-wrap .form-control{height:36px!important;min-height:36px!important;border:1px solid var(--border-color)!important;font-size:13.5px!important;padding-top:0!important;padding-bottom:0!important}.admin-page .admin-filter-inline .form-control:focus,.admin-page .admin-filter-row .form-control:focus{border-color:var(--accent)!important}.admin-page select.form-control{height:36px!important;border:1px solid var(--border-color)!important}.admin-page .paper-table .anon-sub{gap:0!important;column-gap:0!important}.admin-page .paper-table .anon-sub>a{border-bottom:0!important;text-decoration:none}.tb-menu-note{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:13px;color:var(--ink-soft)}.tb-menu-note .ui-icon{width:16px;height:16px}.readme-toc a{color:var(--ink-soft)!important;font-size:13.5px!important}.readme-toc a.lvl-3{font-size:13px!important}.readme-toc a.is-active{color:var(--accent)!important;font-weight:500!important}.dark-mode .readme-toc a.is-active{color:#a8ddd6!important}.ace_search_form .ace_searchbtn{border-radius:0!important;margin:0!important}.ace_search_form .ace_searchbtn.prev{border-radius:var(--radius-control) 0 0 var(--radius-control)!important;margin-left:8px!important}.ace_search_form .ace_searchbtn.next{border-radius:0 var(--radius-control) var(--radius-control) 0!important;margin-left:-1px!important}.ace_search .ace_searchbtn.next,.ace_search .ace_searchbtn.prev{box-shadow:none!important}.ace_editor .ace_marker-layer .ace_selected-word,.ace_editor .ace_marker-layer .ace_selection{box-shadow:none!important;border:0!important}@media (max-width:767px){.file-card-head{padding-left:12px!important;padding-right:12px!important}.file-card-head .file-card-path{column-gap:8px!important}}.dark-mode .files .file.active>a{background:rgba(255,255,255,.07)!important}@media (min-width:1200px){.reading-layout{grid-template-columns:minmax(0,700px) 190px!important;gap:40px!important;padding:0 24px!important}}.ace-chrome .ace_string{color:#0a3069!important}.ace-nord-dark .ace_string,.dark-mode .ace_editor .ace_string{color:#a5c8ff!important}.ace_editor .ace_marker-layer .ace_redacted{background:color-mix(in srgb,var(--accent) 20%,transparent)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent)!important;border-radius:3px}.ace_search .ace_button{height:28px!important;min-width:30px!important;font-size:12px!important;color:var(--ink-soft)!important;display:inline-flex!important;align-items:center;justify-content:center}.ace_search .ace_button.checked{background:var(--accent-soft)!important;color:var(--accent)!important;box-shadow:inset 0 0 0 1px var(--accent)!important}.ace_search_counter{font-size:12.5px!important;color:var(--ink-soft)!important}.ace_searchbtn_close::before{font-size:18px!important;font-weight:300!important}.btn-toggle.is-on{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent)!important}.vb-snapshot{background:0 0!important;box-shadow:none!important;color:var(--ink-soft)!important;padding-left:4px!important;padding-right:4px!important}.dark-mode .files .file.active>a{background:rgba(255,255,255,.1)!important;color:#f2eee8!important}.paper-faq-title,.paper-hero h1,.paper-section-head h2{text-wrap:balance}@media (min-width:992px){.demo-panes{grid-template-columns:1fr 1fr!important;gap:20px!important}}.paper-faq details a:not(.btn),.paper-faq-a a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent)}@media (max-width:767px){.file-card.is-code .ace_gutter-cell{padding-left:8px!important;padding-right:8px!important}}.auto-refresh-label{font-family:var(--font-sans)!important}.ov-spark-fill{opacity:1!important;background:color-mix(in srgb,var(--accent) 70%,transparent)!important}.connections-grid .connection-link:not(.connection-danger){display:inline-flex;align-items:center;height:34px;padding:0 12px;border:1px solid var(--border-color);border-radius:var(--radius-control);color:var(--color)!important;text-decoration:none!important}.reading-layout .file-content.markdown-body,.reading-layout .markdown-body{padding-left:0!important;padding-right:0!important}.explorer-content .file-card .reading-layout .file-content.markdown-body{padding-left:0!important;padding-right:0!important}.admin-page h1.paper-page-title{margin:0!important;line-height:44px!important;min-height:44px}.admin-page .errors-header,.admin-page .ov-header,.admin-page .q-header{min-height:44px;margin:0 0 12px!important;display:flex;align-items:center;justify-content:space-between}.admin-page>h1.paper-page-title{margin-bottom:12px!important}.admin-page:has(.admin-users-row) .admin-summary .summary-pill.active{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.admin-page:has(.admin-users-row) .admin-summary .summary-pill.active .count{color:rgba(255,255,255,.8)!important}.admin-page:has(.admin-users-row) .admin-summary .summary-pill.active::before{display:none!important}.admin-page input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.ov-health{background:var(--paper-card)!important;box-shadow:inset 3px 0 0 var(--status-error,#b42318),inset 0 0 0 1px var(--border-color)!important}.dark-mode .ov-health{background:var(--paper-card)!important;box-shadow:inset 3px 0 0 #f08a82,inset 0 0 0 1px var(--border-color)!important}.dashboard-quota .quota-summary-ring{display:none!important}.errors-page .errors-row-main{min-height:44px!important}.errors-page .when-abs{display:none!important}@media (max-width:767px){.admin-summary{flex-wrap:wrap!important;overflow:visible!important;-webkit-mask-image:none!important;mask-image:none!important;margin-left:0!important;margin-right:0!important;padding:0!important}.admin-summary .summary-pill{height:30px!important;padding:0 10px!important;font-size:13px!important}.admin-page .admin-nav{flex-wrap:wrap!important;overflow:visible!important;-webkit-mask-image:none!important;mask-image:none!important;margin-left:0!important;margin-right:0!important;padding:0!important;gap:2px!important}.admin-page .admin-nav a{min-height:34px!important;padding:0 10px!important;font-size:13.5px!important}.admin-page .admin-nav a .ui-icon{display:none!important}}.fm-toggles span{display:inline-flex;align-items:center;gap:6px}.fm-toggles span::before{content:"";width:12px;height:12px;flex:none}.fm-toggles .is-on::before{background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") center/contain no-repeat}.faq-toc a,.paper-faq nav a,.paper-faq-toc a{text-decoration:none!important}@media (max-width:991px){.navbar .navbar-toggler{border-color:transparent!important;background:0 0!important;box-shadow:none!important}}.ace-chrome .ace_gutter-cell{color:#8a847a!important}.dark-mode .ace_editor .ace_gutter-cell{color:#7a746b!important}.ace-chrome .ace_keyword,.ace-chrome .ace_keyword.ace_operator.ace_new,.ace-chrome .ace_storage{color:#7a3e6e!important}.ace-chrome .ace_string{color:#6b5a1e!important}.ace-chrome .ace_entity.ace_name.ace_function,.ace-chrome .ace_support.ace_function{color:#2b2824!important;font-weight:500}.ace-chrome .ace_constant,.ace-chrome .ace_constant.ace_language,.ace-chrome .ace_constant.ace_numeric{color:#8a4b12!important}.ace-chrome .ace_comment{color:#8a847a!important;font-style:italic}.ace-chrome .ace_identifier,.ace-chrome .ace_variable{color:#2b2824!important}.ace-chrome .ace_keyword.ace_operator,.ace-chrome .ace_paren,.ace-chrome .ace_punctuation{color:#6e6860!important}.ace-chrome .ace_entity.ace_name.ace_tag,.ace-chrome .ace_support.ace_class,.ace-chrome .ace_support.ace_type{color:#7a3e6e!important}.ace-chrome .ace_entity.ace_other.ace_attribute-name{color:#8a4b12!important}.dark-mode .ace_editor .ace_entity.ace_name.ace_tag,.dark-mode .ace_editor .ace_keyword,.dark-mode .ace_editor .ace_storage,.dark-mode .ace_editor .ace_support.ace_type{color:#d7a6cb!important}.dark-mode .ace_editor .ace_string{color:#d9c08a!important}.dark-mode .ace_editor .ace_entity.ace_name.ace_function,.dark-mode .ace_editor .ace_identifier,.dark-mode .ace_editor .ace_support.ace_function,.dark-mode .ace_editor .ace_variable{color:#ece7df!important}.dark-mode .ace_editor .ace_constant,.dark-mode .ace_editor .ace_constant.ace_numeric,.dark-mode .ace_editor .ace_entity.ace_other.ace_attribute-name{color:#e0b070!important}.dark-mode .ace_editor .ace_comment{color:#8a847a!important;font-style:italic}.dark-mode .ace_editor .ace_keyword.ace_operator,.dark-mode .ace_editor .ace_paren,.dark-mode .ace_editor .ace_punctuation{color:#a39d92!important}.ace_editor .ace_marker-layer .ace_redacted{background:rgba(31,106,100,.22)!important;box-shadow:inset 0 0 0 1px rgba(31,106,100,.55)!important;border-radius:3px;mix-blend-mode:multiply}.dark-mode .ace_editor .ace_marker-layer .ace_redacted{background:rgba(124,199,190,.26)!important;box-shadow:inset 0 0 0 1px rgba(124,199,190,.6)!important;mix-blend-mode:screen}.ace-chrome .ace_gutter-cell{color:#77716a!important}.dark-mode .ace_editor .ace_gutter-cell{color:#8a847a!important}@media (min-width:1200px){.reading-layout{justify-content:center!important}}.fm-toggles span:not(.is-on)::before{display:none!important}.demo-panes .pane-header{display:flex;gap:10px;min-width:0}.demo-panes .pane-url{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:767px){.mobile-sub{font-size:12.5px!important;line-height:1.4}}.ov-live{font-size:12.5px;color:var(--ink-soft)}.admin-summary .summary-pill:not(.active) .count{text-decoration:none!important}.paper-table:not(.paper-table-dashboard) .paper-table-head,.paper-table:not(.paper-table-dashboard) .paper-table-row{column-gap:24px!important}.connection-label{font-size:12.5px;color:var(--ink-soft);margin-right:4px}.paper-table-dashboard .copy-url:hover{background:var(--hover-bg-color)!important;box-shadow:inset 0 0 0 1px var(--border-color)!important}.dashboard-page .dashboard-count button,.dashboard-page .show-hidden{font-size:13px!important}@media (max-width:767px){.paper-table.paper-table-dashboard .paper-table-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"name more" "meta meta" "link link"!important;row-gap:8px!important}.paper-table.paper-table-dashboard .paper-table-row>.cell-anon{grid-area:name!important;grid-column:auto!important;min-width:0}.paper-table.paper-table-dashboard .paper-table-row>.dashboard-row-meta{grid-area:meta!important;grid-column:auto!important}.paper-table.paper-table-dashboard .paper-table-row>.cell-actions{display:contents!important}.paper-table-dashboard .cell-actions>.copy-url{grid-area:link;width:100%!important;height:36px!important;padding:0 12px!important;justify-content:space-between!important;background:var(--hover-bg-color)!important;box-shadow:none!important}.paper-table-dashboard .cell-actions>.copy-url .copy-url-text{display:inline!important;min-width:0;overflow:hidden;text-overflow:ellipsis}.paper-table-dashboard .cell-actions>.dropdown{grid-area:more;align-self:start}.paper-table-dashboard .cell-actions>.project-details-button,.paper-table-dashboard .cell-actions>.row-edit{display:none!important}}@media (max-width:767px){.paper-table.paper-table-dashboard .paper-table-row{padding-right:12px!important}}.vb-support{background:0 0!important;box-shadow:none!important;border:0!important}.vb-support:hover{background:var(--hover-bg-color)!important}.vb-snapshot{margin-right:8px!important}.paper-eyebrow,.paper-stat small,.paper-stat-sub,.paper-stats .sub{color:#5e5950!important}.dark-mode .paper-eyebrow,.dark-mode .paper-stat-sub{color:#b5aea3!important}.paper-qa,.paper-section-head{margin-top:80px!important}.demo{margin-bottom:0!important}.ace_editor .ace_marker-layer .ace_selected-word{background:rgba(242,204,96,.35)!important}.ace_editor .ace_marker-layer .ace_selection{background:rgba(232,184,58,.55)!important}.paper-faq details>:not(summary),.paper-faq-a{max-width:720px!important}.q-state-chip.q-state-active::before{background:var(--color)!important}.q-state-chip.q-state-delayed::before{background:var(--ink-muted)!important}.repo-access-note>span:last-child{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius-control);background:color-mix(in srgb,#b7791f 8%,transparent);box-shadow:inset 3px 0 0 #b7791f;color:var(--color)!important}.repo-access-note>span:last-child .ui-icon{color:#9a6416;flex:none;margin-top:2px}.dark-mode .repo-access-note>span:last-child{background:rgba(224,176,112,.1);box-shadow:inset 3px 0 0 #e0b070}.repo-access-note>span:has(.ui-icon){background:color-mix(in srgb,#b7791f 8%,transparent)!important;box-shadow:inset 3px 0 0 #b7791f!important;color:var(--color)!important}.repo-access-note>span:has(.ui-icon) .ui-icon{color:#9a6416!important}.dark-mode .repo-access-note>span:has(.ui-icon){background:rgba(224,176,112,.1)!important;box-shadow:inset 3px 0 0 #e0b070!important}.dark-mode .repo-access-note>span:has(.ui-icon) .ui-icon{color:#e0b070!important}@media (min-width:1200px){.reading-layout{grid-template-columns:minmax(0,680px) 190px!important;padding:0 40px!important}}.ace-chrome .ace_entity.ace_name.ace_tag,.ace-chrome .ace_keyword,.ace-chrome .ace_storage,.ace-chrome .ace_support.ace_type{color:#93306a!important}.ace-chrome .ace_string{color:#7a5300!important}.ace-chrome .ace_constant,.ace-chrome .ace_constant.ace_numeric{color:#a14a0f!important}.dark-mode .ace_editor .ace_string{color:#cdb98e!important}.ace_editor .ace_marker-layer .ace_redacted{background:rgba(31,106,100,.28)!important;box-shadow:inset 0 0 0 1px rgba(31,106,100,.65)!important}.ace_search{background:var(--paper-card)!important;box-shadow:inset 0 1px 0 var(--border-color),inset 0 -1px 0 var(--border-color)!important}.ace_search .ace_search_field{height:32px!important;border-radius:var(--radius-control)!important}.ace_search .ace_searchbtn{height:32px!important}.paper-stats-dot{background:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}.paper-stats-meta-right{color:var(--ink-soft)!important;font-weight:400!important}.paper-frame{box-shadow:0 0 0 1px var(--border-color),0 12px 32px rgba(40,30,20,.08)!important;border:0!important}.dark-mode .paper-frame{box-shadow:0 0 0 1px #34302b,0 12px 32px rgba(0,0,0,.4)!important}.paper-faq details>summary,.paper-faq summary{font-weight:600!important}@media (max-width:767px){.file-card-head .file-card-path{column-gap:12px!important}.file-card.is-code.no-wrap .file-card-body::after{width:72px!important;background:linear-gradient(to right,rgba(255,255,255,0),var(--paper-card) 65%)!important}}.dashboard-page .hidden-toggle{font-size:13px!important;color:var(--color)!important}.paper-table-dashboard .btn-icon-dots{width:32px!important;height:32px!important}.access-q{display:block;font-size:13px;color:var(--ink-soft);margin:4px 0 6px}.repo-access-note{max-width:none!important;width:100%}.repo-access-note>span:has(.ui-icon){width:100%}@media (max-width:767px){.anonymize-page .repo-access-switch,.anonymize-page [role=group][aria-label*=onnection]{width:100%!important;display:flex!important}.anonymize-page .repo-access-switch button{flex:1 1 0}}.admin-empty,.paper-table-empty{border:1px solid var(--border-color)!important;border-radius:var(--radius-surface,12px)!important;background:var(--paper-card)!important;padding:40px 24px!important;text-align:center}.dark-mode .paper-table-head{background:#26221e!important}.dark-mode .paper-table-row{background:#1e1b18}.paper-table:has(.paper-table-empty),:has(>.paper-table-empty:only-child){border-top:0!important;border-bottom:0!important;box-shadow:none!important}.ace_editor .ace_text-layer .ace_redacted{color:var(--accent)!important;background:var(--accent-soft)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent);border-radius:3px;font-weight:500}.dark-mode .ace_editor .ace_text-layer .ace_redacted{color:#a8ddd6!important;background:rgba(124,199,190,.16)!important;box-shadow:inset 0 0 0 1px rgba(124,199,190,.35)}.ace_editor .ace_marker-layer .ace_redacted{display:none!important}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{font-size:.82em!important;padding:0 .2em!important;background:color-mix(in srgb,var(--accent) 9%,transparent)!important;box-shadow:none!important;border:0!important;line-height:1.1!important;vertical-align:baseline!important;font-weight:500!important}.vb-snapshot{color:var(--color)!important;opacity:.78}.ace_search{box-shadow:inset 0 -1px 0 var(--border-color)!important}.btn-find.is-on,.btn-toggle.is-on{color:var(--accent)!important;background:var(--accent-soft)!important}.readme-toc a{text-indent:0;padding-left:13px!important}.readme-toc a.lvl-3{padding-left:25px!important}@media (max-width:767px){.anonymize-page .repo-access,.repo-access{flex-wrap:wrap;width:100%}.repo-access-switch{display:flex!important;width:100%!important}.repo-access-switch button{flex:1 1 0!important;white-space:nowrap!important;justify-content:center}}.q-card.selected{box-shadow:none!important;border-color:color-mix(in srgb,var(--accent) 60%,transparent)!important}.dark-mode .paper-table-head{background:#2e2a25!important}.dark-mode .paper-table-row{background:#1c1a17!important}.ov-chart-legend{font-family:var(--font-sans)!important;font-size:12px!important;color:var(--ink-soft)!important}.readme-toc a.lvl-2{font-weight:500!important;color:var(--color)!important}.readme-toc a.lvl-3{font-size:12.5px!important;color:var(--ink-soft)!important;font-weight:400!important}.readme-toc a.is-active{color:var(--accent)!important}.readme-toc a.lvl-2+a.lvl-2,.readme-toc a.lvl-3+a.lvl-2{margin-top:4px}.dark-mode .ace_editor .ace_text-layer .ace_redacted,.dark-mode .redact-chip{color:#9fe0d7!important;background:rgba(124,199,190,.2)!important;box-shadow:inset 0 0 0 1px rgba(124,199,190,.38)!important}.file-card-head .btn.btn-toggle.is-on,.file-card-head .btn.btn-toggle[aria-pressed=true]{color:var(--accent)!important;background:var(--accent-soft)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent)!important}.dark-mode .file-card-head .btn.btn-toggle.is-on{color:#a8ddd6!important;background:rgba(124,199,190,.14)!important}@media (max-width:767px){.file-card-head .file-card-path .card-files-btn{align-self:start!important}}@media (max-width:767px){.paper-hero-shot{max-height:300px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}}.dark-mode .hero-mock-doc,.dark-mode .paper-frame{background:#24211d!important}.paper-stats-meta-right{color:#5e5950!important}.dark-mode .paper-stats-meta-right{color:#b5aea3!important}.errors-page .status-pill.status-neutral{background:var(--hover-bg-color)!important;color:var(--ink-soft)!important;border-color:var(--border-color)!important}.connections-grid .btn,.connections-grid .connection-link:not(.connection-danger){height:36px!important;min-height:36px!important;padding-top:0!important;padding-bottom:0!important;display:inline-flex!important;align-items:center}.claim-page .form-control,.claim-page input{border:1px solid var(--border-color)!important}@media (max-width:767px){.overview-page .ov-kpi-sub{white-space:nowrap!important;font-size:12px!important;overflow:visible!important}.overview-page .ov-kpi-row>:last-child:nth-child(odd){grid-column:1/-1}.admin-summary .summary-pill{height:28px!important}.admin-summary .summary-total{flex-basis:100%}.admin-page .paper-table:not(.paper-table-dashboard) .paper-table-row{position:relative;padding-right:44px!important}.admin-page .paper-table:not(.paper-table-dashboard) .paper-table-row>:last-child{position:absolute!important;top:10px;right:4px}.admin-page .paper-table .anon-sub>span{white-space:nowrap}}.file-card-head .btn.btn-toggle.is-on,.file-card-head .btn.btn-toggle[aria-pressed=true]{background:0 0!important;box-shadow:none!important;color:var(--accent)!important}.file-card-head .btn.btn-toggle.is-on:hover{background:var(--hover-bg-color)!important}.dark-mode .file-card-head .btn.btn-toggle.is-on{background:0 0!important;color:#a8ddd6!important}.ace-chrome .ace_string{color:#3d5a73!important}.dark-mode .ace_editor .ace_string{color:#afc4d6!important}.ace-chrome .ace_gutter-cell{color:#6b655d!important}.readme-toc a.lvl-2{color:var(--ink-soft)!important;font-weight:500!important}.readme-toc a.lvl-3{color:var(--ink-soft)!important;opacity:.9}.readme-toc a.is-active{color:var(--accent)!important}.readme-toc-head{font-size:12.5px!important}.vb-snapshot{opacity:1!important;color:var(--ink-soft)!important}@media (max-width:767px){.viewer-bar .vb-signin{height:32px!important}}.paper-footer-meta{font-size:15px!important;color:var(--ink-soft)!important}.dark-mode .files .file.active>a{background:rgba(255,255,255,.07)!important}@media (min-width:992px){.anonymize-landing{justify-content:flex-start!important;align-items:flex-start!important}.anonymize-landing-inner{margin-left:max(4px,calc((100vw - 1048px)/ 2 - 20px))!important;margin-right:auto!important;max-width:640px!important}}.paper-settings-body>:not(aside){max-width:none!important}.paper-settings-body .paper-card,.paper-settings-body section{max-width:none!important}.dark-mode .paper-table-row{background:0 0!important}.dark-mode .paper-table-head{background:#26231f!important}@media (max-width:767px){.overview-page .ov-kpi-sub{white-space:normal!important;font-size:12px!important;padding-right:4px}.dashboard-count{position:static!important;width:auto!important;height:auto!important;margin:0 0 0 auto!important;overflow:visible!important;clip:auto!important;font-size:12.5px!important}}.errors-page input[type=search]{font-family:var(--font-sans)!important}.paper-settings-body .form-text,.paper-settings-body .paper-field-help,.paper-settings-body small{max-width:none!important}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip{font-size:.7em!important;vertical-align:.12em!important}.ace_search{border-bottom:1px solid var(--border-color)!important;box-shadow:none!important;border-top:0!important}.ace_search .ace_button,.ace_search .ace_searchbtn{height:32px!important}.file-card-head .btn.btn-toggle.is-on,.file-card-head .btn.btn-toggle[aria-pressed=true]{background:var(--accent-soft)!important;color:var(--accent)!important;box-shadow:none!important}.dark-mode .file-card-head .btn.btn-toggle.is-on{background:rgba(124,199,190,.14)!important}@media (max-width:767px){.file-card-head .card-files-btn{width:32px!important;height:32px!important}.file-card-head .file-card-path{column-gap:8px!important}}.dark-mode .leftCol{background:#1c1a17!important}.dark-mode .explorer-content,.dark-mode .file-card{background:#141311!important}.nav-support-inline{color:var(--color)!important;font-weight:500!important}@media (min-width:992px){.anonymize-landing{padding-top:24px!important}.anonymize-landing-inner{padding-top:0!important;margin-top:0!important}}.anonymize-page .access-q+.btn-outline-ink{height:30px!important;padding:0 10px!important;font-size:13px!important}.admin-summary .summary-pill:not(.active){color:var(--ink-soft)!important}.volume-legend>span{display:inline-flex;align-items:center;gap:5px;margin-left:12px}.dark-mode .leftCol{background:#221f1b!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{box-shadow:inset -1px 0 0 var(--border-color),inset -10px 0 10px -10px rgba(0,0,0,.18)!important}}.readme-toc a.is-active{font-weight:600!important}.paper-stats-meta-right{color:var(--ink-soft)!important;font-weight:500!important;letter-spacing:inherit}.paper-faq details a:not(.btn),.paper-faq-a a,.paper-section a{text-decoration-color:color-mix(in srgb,currentColor 35%,transparent)!important;text-decoration-thickness:1px!important}.volume-axis{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-soft);margin-top:6px}.errors-page .seg.seg-info{background:color-mix(in srgb,var(--ink-muted) 55%,transparent)!important}.paper-crumbs a{color:var(--ink-soft)!important}.paper-crumbs .here{color:var(--color)!important}.paper-table .mobile-meta-icon,.paper-table [role=cell]>.ui-icon{opacity:.45}@media (min-width:768px){.paper-table-dashboard .cell-expires{padding-left:24px!important}}.dark-mode .paper-table-dashboard .paper-table-head,.dark-mode .paper-table-head{background:0 0!important;box-shadow:inset 0 -1px 0 var(--border-color)!important}@media (max-width:767px){.paper-table-dashboard .cell-actions>.copy-url{max-width:none!important;justify-self:stretch}.paper-table.paper-table-dashboard .paper-table-row{padding-right:16px!important}.dashboard-filters-toggle{border:1px solid var(--border-color)!important;border-radius:var(--radius-control)!important;height:44px;padding:0 12px!important}.overview-page .ov-kpi-card{padding-left:14px!important;padding-right:14px!important}.overview-page .ov-kpi-sub{white-space:nowrap!important;font-size:11.5px!important}.admin-filter-row kbd,.search-wrap .kbd,.search-wrap kbd{display:none!important}}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{background:0 0!important;padding:0!important;font-size:.78em!important;color:var(--accent)!important;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px;text-decoration-color:color-mix(in srgb,var(--accent) 30%,transparent)}.dark-mode .markdown-body h1 .redact-chip,.dark-mode .markdown-body h2 .redact-chip{color:#9fe0d7!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:56px!important;background:linear-gradient(to right,rgba(255,255,255,0),var(--paper-card) 55%)!important}}.readme-toc a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (min-width:768px){.paper-table-dashboard .cell-expires,.paper-table-dashboard .paper-table-head>:nth-child(4){text-align:left!important;justify-content:flex-start!important;padding-left:24px!important}}.anonymize-page #sourceUrl-landing,.anonymize-page .form-control-lg{border:1px solid var(--border-color)!important}.anonymize-page .form-control-lg:focus{border-color:var(--accent)!important}.repo-access-note>span:has(.ui-icon){background:var(--accent-soft)!important;box-shadow:inset 3px 0 0 var(--accent)!important;color:var(--color)!important;font-size:13.5px}.repo-access-note>span:has(.ui-icon) .ui-icon{color:var(--accent)!important}.dark-mode .repo-access-note>span:has(.ui-icon){background:rgba(124,199,190,.1)!important;box-shadow:inset 3px 0 0 #7cc7be!important}.dark-mode .repo-access-note>span:has(.ui-icon) .ui-icon{color:#7cc7be!important}.readme-toc a{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::before{content:"Scroll \2192";position:absolute;right:10px;bottom:14px;z-index:9;font:500 12px/1 var(--font-sans);color:var(--ink-soft);background:var(--paper-card);box-shadow:0 0 0 1px var(--border-color),0 2px 6px rgba(0,0,0,.06);border-radius:999px;padding:6px 10px;pointer-events:none}}.ace-chrome .ace_string{color:#2d5f86!important}.ace-chrome .ace_keyword,.ace-chrome .ace_storage{color:#9a2b6b!important}.dark-mode .ace_editor .ace_string{color:#9cc3e6!important}.dark-mode .ace_editor .ace_keyword,.dark-mode .ace_editor .ace_storage{color:#e3a6d2!important}.reading-layout .markdown-body h1{font-size:34px!important;letter-spacing:-.015em}.errors-page .btn-group>.btn,.errors-page .btn-icon,.errors-page .form-control,.errors-page select{height:36px!important;min-height:36px!important}.errors-page .col-when .when-rel{font-size:13.5px!important}.q-danger-group{display:inline-flex;gap:6px;margin-left:auto;padding-left:12px;border-left:1px solid var(--border-color)}.q-stats-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.repo-access-note>span:has(.ui-icon){background:color-mix(in srgb,#b7791f 8%,transparent)!important;box-shadow:inset 3px 0 0 #b7791f!important}.repo-access-note>span:has(.ui-icon) .ui-icon{color:#9a6416!important}.dark-mode .repo-access-note>span:has(.ui-icon){background:rgba(224,176,112,.1)!important;box-shadow:inset 3px 0 0 #e0b070!important}.dark-mode .repo-access-note>span:has(.ui-icon) .ui-icon{color:#e0b070!important}@media (max-width:767px){.admin-page .paper-table [role=cell]:has(>input[type=checkbox]),.admin-page .paper-table input[type=checkbox],.admin-page .paper-table-head [role=columnheader]:has(>input[type=checkbox]){display:none!important}.admin-page .admin-filters-toggle,.admin-page .dashboard-filters-toggle{width:auto!important}}.q-danger-group{border-left:0!important;padding-left:0!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::before{animation:scrollHintOut .4s ease 2.6s forwards}}@keyframes scrollHintOut{to{opacity:0;visibility:hidden}}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{text-decoration:none!important;background:color-mix(in srgb,var(--accent) 8%,transparent)!important;padding:0 .15em!important;border-radius:4px}.readme-toc a.lvl-3{padding-left:29px!important}.ace_search .ace_button{color:var(--color)!important;opacity:.8}.ace_search .ace_button.checked{opacity:1}.dark-mode .files .file>a,.dark-mode .files .folder>a{color:#d8d2c8!important}.ov-live{display:inline-flex;align-items:center;gap:6px}.ov-live-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.anon-sub .meta-sep{display:inline-flex;align-items:center;white-space:nowrap}@media (max-width:767px){.anon-sub{column-gap:0!important}}.connection-status-legacy{color:var(--ink-soft)!important}.connection-status-legacy::before{background:var(--ink-muted)!important}.q-detail{align-items:start!important}.q-chart-wrap canvas{max-height:200px}.admin-page .paper-table .cell-anon .anon-text:has(.meta-sep){overflow:hidden}.admin-page .paper-table .anon-sub:has(.meta-sep){display:flex!important;flex-wrap:wrap!important;margin-left:-14px!important;gap:0!important}.admin-page .paper-table .anon-sub:has(.meta-sep)>*{white-space:nowrap}.admin-page .paper-table .anon-sub:has(.meta-sep)>::before{content:"\00b7";display:inline-block;width:14px;text-align:center;color:var(--ink-muted)}.ace-chrome .ace_gutter-cell,.dark-mode .ace_editor .ace_gutter-cell{font-size:12px!important}.q-stats-actions{display:grid!important;grid-template-columns:auto auto 1fr;gap:8px;align-items:center}.q-danger-group{grid-column:1/-1;justify-self:start;margin:4px 0 0!important;padding:10px 0 0!important;border-top:1px solid var(--border-color)!important;width:100%;display:flex!important;gap:8px}@media (max-width:767px){.overview-page .ov-header{flex-wrap:nowrap!important;align-items:center!important}.ov-live{font-size:12px}.ov-live .ov-live-text-extra{display:none}.overview-page .ov-daily-card,.overview-page .ov-kpi-card{padding-left:14px!important;padding-right:14px!important}}.admin-page input[type=checkbox]{width:14px!important;height:14px!important}.demo-input-wrap{position:relative}.demo-input-wrap .demo-backdrop{position:absolute;inset:0;margin:0;overflow:hidden;color:var(--color);pointer-events:none;overflow-wrap:break-word}.demo-input-wrap .demo-input{position:relative;color:transparent!important;caret-color:var(--color);background:0 0!important;overflow-wrap:break-word}.demo-input-wrap .demo-input::selection{color:var(--color);background:color-mix(in srgb,var(--accent) 25%,transparent)}.demo-match{background:0 0;color:inherit;padding:0;border-radius:2px;box-shadow:inset 0 -2px 0 color-mix(in srgb,var(--accent) 55%,transparent);background-color:color-mix(in srgb,var(--accent) 10%,transparent)}.demo-output .redact-chip{font-size:12.5px!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::before{display:none!important}.file-card.is-code.no-wrap .file-card-body::after{width:36px!important;background:linear-gradient(to right,rgba(0,0,0,0),rgba(60,45,30,.1))!important;box-shadow:inset -1px 0 0 rgba(60,45,30,.18)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(0,0,0,0),rgba(0,0,0,.45))!important;box-shadow:inset -1px 0 0 rgba(255,255,255,.12)!important}}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:44px!important;background:linear-gradient(to right,rgba(255,255,255,0),var(--paper-card) 70%)!important;box-shadow:inset -8px 0 10px -6px rgba(40,30,20,.28),inset -1px 0 0 rgba(40,30,20,.16)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(0,0,0,0),var(--canvas-bg-color) 70%)!important;box-shadow:inset -8px 0 10px -6px rgba(0,0,0,.6),inset -1px 0 0 rgba(255,255,255,.1)!important}}.q-chart-wrap{position:relative}.q-chart-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--paper-card);border-bottom:1px solid var(--border-color);text-align:center}.q-chart-empty strong{font-size:14px;font-weight:500;color:var(--color)}.q-chart-empty span{font-size:12.5px;color:var(--ink-soft)}.q-danger-group .btn{margin-left:0!important}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{background:0 0!important;padding:0!important;border-radius:0!important}.paper-settings-body .form-control,.paper-settings-body input[type=date],.paper-settings-body input[type=text],.paper-settings-body input[type=url],.paper-settings-body textarea{border:1px solid var(--border-color)!important;border-radius:var(--radius-control)!important}.admin-page .paper-table .cell-views .ui-icon{display:none!important}.admin-page:has(.admin-users-row) .paper-table-head,.admin-page:has(.admin-users-row) .paper-table-row{column-gap:40px!important}@media (max-width:767px){.overview-page .ov-header{justify-content:space-between!important}.ov-live{margin-left:0!important}}.dark-mode .paper-table-dashboard .paper-table-row{background:0 0!important}.mono-hash{font-family:var(--font-mono)!important;font-size:11.5px}.nav-heart-m{display:none}@media (max-width:991px){.nav-heart-m{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin-left:auto;color:#c25b5e}.nav-heart-m .ui-icon{width:18px;height:18px;fill:currentColor}.nav-heart-m+.nav-signin-m{margin-left:4px!important}}.file-card:has(.ace_search:not([style*=none])) .btn-find{color:var(--accent)!important;background:var(--accent-soft)!important}.paper-link-arrow{color:var(--color)!important;text-decoration-color:color-mix(in srgb,var(--accent) 55%,transparent)!important}.paper-faq details p,.paper-faq details>:not(summary),.paper-faq-a{max-width:none!important}.paper-stat-value{font-family:var(--font-display,var(--font-serif))!important;font-weight:400!important;letter-spacing:-.01em}@media (max-width:767px){.ov-live-extra{display:none}.paper-table-dashboard .cell-views.num::after{content:" views";color:var(--ink-soft)}.paper-table-dashboard .cell-expires>span:not(.expires-never):not(.expires-past)::before{content:"Expires ";color:var(--ink-soft)}.admin-page .admin-filters-toggle{width:auto!important;height:36px!important;padding:0 12px!important}}.dashboard-quota summary{border:0!important;box-shadow:none!important;background:0 0!important;padding-left:0!important}.q-card.selected{background:var(--accent-soft)!important}.dark-mode .q-card.selected{background:rgba(124,199,190,.08)!important}.dark-mode .ov-meter .fill.critical,.dark-mode .ov-meter-fill.critical{background:#f08a82!important}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{font-family:inherit!important;font-weight:inherit!important;font-size:.9em!important;background:var(--accent-soft)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent)!important;padding:0 .25em!important;border-radius:6px!important;color:var(--accent)!important;text-decoration:none!important}.dark-mode .markdown-body h1 .redact-chip,.dark-mode .markdown-body h2 .redact-chip,.dark-mode .markdown-body h3 .redact-chip{background:rgba(124,199,190,.16)!important;color:#9fe0d7!important}.file-card-head .btn.btn-toggle.is-on,.file-card-head .btn.btn-toggle[aria-pressed=true],.file-card:has(.ace_search:not([style*=none])) .btn-find{background:0 0!important;color:var(--accent)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 50%,transparent)!important}.dark-mode .file-card-head .btn.btn-toggle.is-on,.dark-mode .file-card:has(.ace_search:not([style*=none])) .btn-find{background:0 0!important;color:#a8ddd6!important;box-shadow:inset 0 0 0 1px rgba(124,199,190,.5)!important}@media (min-width:768px){.file-card-head{padding-left:46px!important}}.breadcrumb-root{display:none!important}.breadcrumb-root+.breadcrumb-item::before{display:none!important}.ace_editor .ace_marker-layer .ace_selection{background:rgba(232,170,40,.65)!important;box-shadow:0 0 0 1px rgba(160,100,10,.6)!important}.ace_search_counter{color:var(--color)!important;opacity:.75}.dark-mode .files .file.active>a{background:rgba(255,255,255,.12)!important}.dark-mode .leftCol{box-shadow:inset -1px 0 0 rgba(255,255,255,.08)!important}.hero-mock-doc-bar span,.paper-stat-delta,.paper-stat-sub,.paper-stats .sub{color:#5e5950!important}.dark-mode .paper-stat-delta,.dark-mode .paper-stat-sub{color:#b5aea3!important}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{font-size:.72em!important;font-weight:600!important;vertical-align:.1em;padding:.05em .3em!important}.is-unsynced{color:var(--ink-muted)!important;font-size:12.5px;font-family:var(--font-sans)!important}.q-dot.q-dot-idle{background:var(--ink-muted)!important}.dark-mode .paper-table,.dark-mode .paper-table-dashboard{background:0 0!important}.dark-mode .paper-table .paper-table-head{background:#24211d!important}.dark-mode .paper-table .paper-table-row{background:#141311!important}@media (min-width:768px){.file-card.is-code .file-card-head{padding-left:16px!important}.readme-toc{margin-left:16px}.reading-layout{grid-template-columns:minmax(0,660px) 190px!important;gap:56px!important}}.dark-mode .leftCol{box-shadow:none!important;border-right:1px solid var(--border-color)!important}.dark-mode .leftCol-resizer,.dark-mode .sidebar-resizer{background:0 0!important}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{box-shadow:none!important}.files .file.active>a::before{left:4px!important;top:6px!important;bottom:6px!important;width:3px!important;border-radius:2px!important}.hero-mock-row.is-active{box-shadow:inset 3px 0 0 var(--accent)!important;border-radius:6px}.fm-label,.paper-eyebrow,.paper-stats-meta-left,.paper-stats-meta-right{color:#57524a!important}.dark-mode .paper-eyebrow,.dark-mode .paper-stats-meta-left,.dark-mode .paper-stats-meta-right{color:#bdb6ab!important}.demo-match{box-shadow:inset 0 -1px 0 color-mix(in srgb,var(--accent) 50%,transparent)!important}.redact-glue{white-space:nowrap}@media (min-width:768px){.file-card-head,.file-card.is-code .file-card-head{padding-left:20px!important}}.dark-mode .files .file.active>a{background:rgba(255,255,255,.08)!important}.files .file.active>a{position:relative}.files .file.active>a::before{left:0!important;top:4px!important;bottom:4px!important;width:3px!important;border-radius:0 2px 2px 0!important}.admin-page .paper-table [role=cell]>svg.ui-icon[aria-hidden],.paper-table .cell-expires .mobile-meta-icon{display:none!important}@media (max-width:767px){.admin-page .paper-table .cell-views.num::after{content:" views";color:var(--ink-soft)}}.dark-mode .paper-table .paper-table-row{background:#1e1b18!important}.dark-mode .paper-table .paper-table-head{background:#26231f!important}.paper-page input.form-control,.paper-page input[type=date],.paper-page input[type=email],.paper-page input[type=text],.paper-page input[type=url],.paper-page select.form-control,.paper-page textarea,.paper-page textarea.form-control{border:1px solid var(--border-color)!important;border-radius:var(--radius-control)!important}.paper-page input:focus,.paper-page select:focus,.paper-page textarea:focus{border-color:var(--accent)!important}.q-detail{align-items:stretch!important}.q-throughput{display:flex;flex-direction:column}.q-throughput .q-chart-wrap{flex:1;min-height:180px}.admin-page .search-wrap{flex:0 1 420px!important;max-width:420px!important}@media (max-width:767px){.overview-page .ov-header{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;justify-content:space-between!important;align-items:center!important}.overview-page .ov-header .ov-live{margin:0 0 0 auto!important;align-self:center}}.hero-mock-count{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent)!important;font-weight:600;font-size:11.5px}.dark-mode .hero-mock-count{background:rgba(124,199,190,.16);color:#a8ddd6!important}.vb-support{color:var(--ink-soft)!important;font-weight:400!important}.vb-support:hover{color:var(--color)!important}@media (max-width:767px){.file-card.is-code .ace_gutter-cell{padding-left:4px!important;padding-right:6px!important}.file-card.is-code .ace_scroller{left:30px!important}.file-card.is-code .ace_gutter{width:30px!important}}.md-find-bar{position:sticky;top:52px;z-index:5;display:flex;align-items:center;gap:10px;padding:8px 20px;background:var(--paper-card);border-bottom:1px solid var(--border-color)}.md-find-input{width:260px;height:32px;padding:0 10px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);color:var(--color);font:14px var(--font-sans)}.md-find-input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.md-find-count{font-size:12.5px;color:var(--ink-soft);min-width:64px;font-variant-numeric:tabular-nums}.md-find-nav{display:inline-flex}.md-find-close,.md-find-nav button{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-color);background:var(--paper-card);color:var(--color)}.md-find-nav button:first-child{border-radius:var(--radius-control) 0 0 var(--radius-control)}.md-find-nav button:last-child{border-radius:0 var(--radius-control) var(--radius-control) 0;margin-left:-1px}.md-find-nav button:disabled{opacity:.45}.md-find-close{border:0;background:0 0;font-size:20px;border-radius:var(--radius-control)}.md-find-close:hover{background:var(--hover-bg-color)}mark.md-find{background:rgba(242,204,96,.45);color:inherit;border-radius:2px;padding:0}mark.md-find.is-current{background:rgba(232,170,40,.8);box-shadow:0 0 0 1px rgba(160,100,10,.6)}@media (min-width:1280px){.viewer-bar a.vb-icon[href="/faq"]{width:auto!important;padding:0 10px!important;gap:6px}.viewer-bar a.vb-icon[href="/faq"]::after{content:"FAQ";font:500 13px var(--font-sans);color:var(--ink-soft)}}.file-card-head .btn-md-find.is-on{background:0 0!important;color:var(--accent)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 50%,transparent)!important}.md-find-input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}@media (min-width:768px){.md-find-bar{padding-left:63px!important}}.md-find-input{width:240px!important}.file-card:has(.md-find-bar) .readme-toc{top:120px!important}.claim-page input,.claim-page textarea{border-color:var(--border-color)!important}.connection-status{font-size:12.5px!important}@media (max-width:767px){.admin-page .admin-filters-toggle::before{content:"";width:14px;height:14px;margin-right:6px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 6h16M7 12h10M10 18h4'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 6h16M7 12h10M10 18h4'/%3E%3C/svg%3E") center/contain no-repeat}.admin-page .admin-filters-toggle{display:inline-flex!important;align-items:center}}.paper-faq-title{text-wrap:balance}.file-card-head,.md-find-bar{background:var(--paper-card)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;opacity:1!important}.dark-mode .file-card-head,.dark-mode .md-find-bar{background:#141311!important}@media (min-width:1200px){.reading-layout{grid-template-columns:minmax(0,640px) 190px!important;gap:56px!important;justify-content:center!important;padding:0 24px!important}}.reading-layout .file-content.markdown-body{padding-top:32px!important}@media (min-width:1200px){.md-find-bar{padding-left:calc((100% - 886px)/ 2)!important}}@media (min-width:1280px){.viewer-bar a.vb-bug{width:auto!important;padding:0 10px!important;gap:6px}.viewer-bar a.vb-bug::after{content:"Report a bug";font:500 13px var(--font-sans);color:var(--ink-soft)}}.vb-snapshot{font-size:13px!important;color:var(--ink-soft)!important}.dashboard-filter-controls .btn-group[aria-label=Type]>.btn,.dashboard-page .dashboard-filter-controls .dropdown-toggle,.dashboard-page .dashboard-filter-row .form-control{height:36px!important;min-height:36px!important}.dashboard-filter-controls .btn-group[aria-label=Type]{padding:0!important;height:36px;align-items:center}.dashboard-filter-controls .btn-group[aria-label=Type]>.btn{height:30px!important;min-height:30px!important;margin:3px 0}.errors-page .errors-toolbar{flex-wrap:nowrap!important}.errors-page .errors-toolbar input[type=search]{min-width:0;flex:1 1 260px}.paper-table .paper-table-head{background:color-mix(in srgb,var(--hover-bg-color) 60%,transparent)!important}@media (min-width:1200px){.reading-layout{grid-template-columns:minmax(0,700px) 190px!important;gap:48px!important}}.md-find-bar{padding-top:4px!important;padding-bottom:4px!important}.md-find-input{height:30px!important}.md-find-input:focus{box-shadow:0 0 0 1px var(--accent)!important}.ace_editor .ace_marker-layer .ace_selection,mark.md-find.is-current{background:rgba(240,190,80,.6)!important;box-shadow:0 0 0 1px rgba(170,110,20,.5)!important}.viewer-bar .vb-right{gap:12px!important}.viewer-bar .vb-right>*{margin:0!important}.auto-refresh-label{white-space:nowrap!important}.errors-page .errors-toolbar{flex-wrap:wrap!important}.errors-page .errors-row-head,.errors-page .errors-thead,.paper-table .paper-table-head,.q-table thead th{background:#f3f1ec!important}.dark-mode .errors-page .errors-thead,.dark-mode .paper-table .paper-table-head,.dark-mode .q-table thead th{background:#24211d!important}.summary-show-label{font-size:12.5px;color:var(--ink-soft);margin-right:2px;align-self:center}.anon-sub a.mono-hash,.mono-hash{text-decoration:none!important;border-bottom:0!important}.errors-page .errors-list-head{background:#f3f1ec!important}.dark-mode .errors-page .errors-list-head{background:#24211d!important}.errors-page .errors-toolbar .search-wrap,.errors-page .errors-toolbar input[type=search]{flex:1 1 220px!important;max-width:340px!important;min-width:0!important}.errors-page .errors-toolbar{flex-wrap:nowrap!important;gap:8px!important}.faq-section .panel-default .panel-title a{padding:16px 32px 16px 0!important;position:relative;display:block}.faq-section .panel-default .panel-body{padding-left:0!important}.faq-section .panel-default .panel-title a:after{left:auto!important;right:6px!important}.md-find-bar{padding-left:20px!important}.vb-logo{font-size:19px!important}@media (max-width:767px){.vb-logo{font-size:18px!important}.admin-summary .summary-show-label{flex-basis:100%}}.btn-ghost-danger{background:0 0!important;border:1px solid transparent!important;color:#b42318!important;display:inline-flex;align-items:center;gap:6px}.btn-ghost-danger:hover{background:color-mix(in srgb,#b42318 8%,transparent)!important}.dark-mode .btn-ghost-danger{color:#f08a82!important}mark.md-find{background:rgba(242,204,96,.32)!important;box-shadow:none!important}mark.md-find.is-current{background:rgba(232,160,30,.85)!important;box-shadow:0 0 0 1px rgba(150,90,10,.7)!important;color:#2b2824!important}.md-find-opt{height:30px;min-width:32px;padding:0 8px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);color:var(--ink-soft);font:600 12px var(--font-sans)}.md-find-opt.is-on{color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.md-find-nav button{color:var(--ink-soft)!important}.md-find-close{font-size:18px!important;font-weight:300!important;color:var(--ink-soft)!important}@media (min-width:768px){.file-card .ace_search{left:0!important;right:0!important;padding-left:20px!important;margin:0!important;max-width:none!important}}@media (min-width:768px){.md-find-bar{padding-left:71px!important}}@media (min-width:768px){.md-find-bar{padding-left:71px!important}}@media (min-width:1200px){.file-card:has(.md-find-bar) .readme-toc,.readme-toc{top:120px!important}}.dark-mode .dashboard-filter-controls .btn-group[aria-label=Type]>.btn.btn-primary{background:#3a3631!important;color:#f2eee8!important;box-shadow:0 0 0 1px rgba(255,255,255,.14)!important}.admin-page .paper-table .user-name,.admin-page .paper-table .username,.admin-page:has(.admin-users-row) .cell-anon .repo-name,.admin-users-row .repo-name{font-family:var(--font-sans)!important;font-weight:600}.paper-page input[type=checkbox]{-webkit-appearance:none;appearance:none;width:16px!important;height:16px!important;margin:0;border:1.5px solid #a39d92;border-radius:4px;background:var(--paper-card);display:inline-grid;place-content:center;cursor:pointer;vertical-align:middle}.paper-page input[type=checkbox]::before{content:"";width:9px;height:9px;transform:scale(0);background:#fff;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5'/%3E%3C/svg%3E") center/contain no-repeat}.paper-page input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.paper-page input[type=checkbox]:checked::before{transform:scale(1)}.paper-page input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dark-mode .paper-page input[type=checkbox]{border-color:#6e6860;background:0 0}.admin-page .detail-value:is(:empty),.detail-value.is-empty{color:var(--ink-muted)!important;font-style:italic}.paper-table-dashboard .btn-icon-dots,.row-edit{width:32px!important;height:32px!important;border-radius:var(--radius-control)}.paper-table-dashboard .btn-icon-dots:hover,.row-edit:hover{background:var(--hover-bg-color)!important}.q-state-toggle input[type=checkbox]{position:absolute;opacity:0;width:1px!important;height:1px!important;pointer-events:none}.q-state-toggle{position:relative;cursor:pointer}.q-state-toggle input:not(:checked)+.q-state-chip{opacity:.45;text-decoration:line-through}.q-state-toggle input:focus-visible+.q-state-chip{outline:2px solid var(--accent);outline-offset:2px}@media (min-width:768px){.md-find-bar{padding-left:31px!important}}.ace_search .ace_search_field,.anonymize-page .form-control,.md-find-input,.paper-page input.form-control,.paper-page input[type=date],.paper-page input[type=text],.paper-page input[type=url],.paper-page select.form-control,.paper-page textarea{border-radius:8px!important}.page-head-row .btn-primary,.paper-page .btn-ink,.paper-page .btn-primary{min-height:40px!important}.errors-page .errors-list-head>*,.paper-table .paper-table-head [role=columnheader],.paper-table .paper-table-head>div{font-weight:500!important;font-size:12.5px!important;letter-spacing:0!important;text-transform:none!important;color:var(--ink-soft)!important}.admin-page .admin-section-header h2{font:600 18px/1.3 var(--font-sans)!important;display:inline-flex;align-items:center;gap:8px}.admin-page .admin-section-header h2 .ui-icon{width:16px;height:16px;color:var(--ink-soft)}.files .file.active>a{background:#e2ded7!important}.files .file.active>a::before{left:3px!important}.dark-mode .files .file.active>a{background:rgba(255,255,255,.09)!important}.admin-page:has(.admin-users-row) .paper-table-head,.admin-page:has(.admin-users-row) .paper-table-row{grid-template-columns:28px minmax(220px,320px) 120px 140px 1fr 40px!important}@media (max-width:767px){.mobile-sub{margin-top:3px!important}}.paper-faq-lede,.paper-page-lede{text-wrap:pretty;max-width:640px}.errors-page .status-pill.status-neutral:not([title=""])[title]{background:0 0!important;border-color:transparent!important;color:var(--ink-muted)!important}.md-find-bar{min-height:47px!important;padding-top:7px!important;padding-bottom:7px!important}.ace_search .ace_search_field:focus,.md-find-input:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}mark.md-find{background:rgba(246,224,138,.7)!important}.ace_editor .ace_marker-layer .ace_selected-word{background:rgba(246,224,138,.7)!important}.files .file.active>a{background:#e6e3dc!important}@media (min-width:1200px){.readme-toc{margin-top:32px!important;padding-top:0!important}}.errors-page .kpi-card.kpi-info .kpi-value{color:var(--ink-soft)!important;font-weight:500!important;font-size:26px!important}.errors-page .kpi-card.kpi-info{background:color-mix(in srgb,var(--paper-card) 70%,transparent)!important}.ov-meter span{background:var(--accent)}.ov-meter.warn span{background:#b7791f!important}.ov-meter.crit span{background:#b42318!important}@media (max-width:767px){.admin-summary .summary-show-label{flex-basis:auto!important}}@media (max-width:767px){.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(0,1fr) auto auto!important;grid-template-areas:"name edit more" "meta meta meta" "link link link"!important;column-gap:2px!important}.paper-table-dashboard .cell-actions>.row-edit{display:inline-flex!important;grid-area:edit;align-self:start;align-items:center;justify-content:center}.dashboard-page .paper-table-dashboard .dashboard-row-meta{display:flex!important;flex-wrap:nowrap!important;align-items:center!important;gap:0!important;padding-left:26px;font-size:12.5px;color:var(--ink-soft)}.dashboard-page .dashboard-row-meta .cell-status{flex:0 0 auto!important}.dashboard-page .dashboard-row-meta .cell-status .status-line{gap:6px}.dashboard-page .dashboard-row-meta .cell-expires,.dashboard-page .dashboard-row-meta .cell-views{display:inline-flex!important;align-items:center;font-family:var(--font-sans,Inter,sans-serif)!important;font-size:12.5px!important;color:var(--ink-soft)!important;white-space:nowrap;margin:0!important;padding:0!important;text-align:left!important;justify-content:flex-start!important}.dashboard-page .dashboard-row-meta .cell-expires::before,.dashboard-page .dashboard-row-meta .cell-views::before{content:"·";margin:0 8px;color:var(--ink-muted)}.dashboard-page .dashboard-row-meta .cell-views .ui-icon,.dashboard-page .dashboard-row-meta .cell-views svg{display:none!important}.dashboard-page .dashboard-row-meta .cell-expires .cell-label,.dashboard-page .dashboard-row-meta .cell-expires small{font-size:inherit!important;color:inherit!important;margin-right:4px}}.dashboard-page .dashboard-quota>summary{border:1px solid var(--border-color)!important;border-radius:999px!important;padding:0 12px 0 10px!important;height:36px;min-height:36px!important;display:inline-flex!important;align-items:center;gap:8px;background:var(--paper-card)!important}.dashboard-page .dashboard-quota>summary:hover{background:var(--hover-bg-color)!important}.dashboard-page .dashboard-quota .quota-summary-ring{display:inline-block!important;width:16px;height:16px}@media (min-width:1200px){.reading-layout{grid-template-columns:minmax(0,660px) 176px!important;gap:56px!important;justify-content:center!important}}@media (max-width:767px){.admin-summary .summary-show-label{flex-basis:100%!important;margin:4px 0 -2px!important}.admin-summary .summary-meta{flex:1 1 auto}}.q-throughput:has(.q-chart-empty) .q-chart-wrap{flex:0 0 auto!important;min-height:120px!important;height:120px}.q-throughput:has(.q-chart-empty) .q-chart-wrap canvas{visibility:hidden}.q-chart-empty{border-bottom:0!important;border-radius:8px}@media (min-width:768px){.md-find-bar{padding-left:20px!important}.file-card .ace_search{padding-left:20px!important}.file-card .ace_search .ace_search_form{margin-left:0!important}}@media (min-width:768px){.file-card .ace_search{left:0!important;padding-left:0!important}}@media (min-width:1200px){.md-find-bar{padding-left:max(20px,calc((100% - 892px)/ 2))!important}}.q-throughput:has(.q-chart-empty) .q-chart-wrap{flex:1 1 auto!important;height:auto!important;min-height:160px!important}.q-danger-group{align-items:center;flex-wrap:wrap}.q-danger-group::before{content:"Clear jobs";flex-basis:100%;font-size:12px;color:var(--ink-soft);margin-bottom:2px}.q-legend .q-legend-item,.q-legend button,.q-legend span{font-size:12px!important}.q-state-filters .q-state-toggle,.q-state-filters .q-state-toggle *{font-size:12px!important}.admin-nav a.active,.admin-nav a.router-link-active{background:0 0!important;color:var(--accent)!important;box-shadow:inset 0 -2px 0 var(--accent)!important;border-radius:0!important}.admin-nav a:not(.active):hover{background:0 0!important;color:var(--color)!important;box-shadow:inset 0 -2px 0 var(--border-color)!important}.dark-mode .q-card.selected,.q-card.selected{background:var(--paper-card)!important;border-color:var(--accent)!important;box-shadow:inset 0 0 0 1px var(--accent)!important}.errors-page .kpi-card .kpi-value,.errors-page .kpi-card.kpi-info .kpi-value,.errors-page .kpi-card.kpi-warn .kpi-value{color:var(--color)!important;font-weight:600!important;font-size:28px!important}.errors-page .kpi-card.kpi-info{background:var(--paper-card)!important}.paper-table-dashboard .btn-icon-dots,.paper-table-dashboard .row-edit{color:var(--color)!important;opacity:.72}.paper-table-dashboard .btn-icon-dots:hover,.paper-table-dashboard .row-edit:hover{opacity:1}@media (max-width:767px){.paper-table-dashboard .cell-actions>.dropdown,.paper-table-dashboard .cell-actions>.row-edit{margin-top:-6px}}@media (min-width:1280px){.viewer-bar a.vb-bug,.viewer-bar a.vb-icon[href="/faq"]{width:32px!important;padding:0!important}.viewer-bar a.vb-bug::after,.viewer-bar a.vb-icon[href="/faq"]::after{content:none!important}}.markdown-body h2{margin-bottom:12px!important}.markdown-body h3{margin-top:32px!important;margin-bottom:8px!important}.markdown-body h4{margin-top:24px!important;margin-bottom:6px!important;color:var(--ink-soft)!important}@media (min-width:768px){.file-card .ace_search{padding-left:16px!important}}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:48px!important;background:linear-gradient(to right,rgba(255,255,255,0),var(--paper-card) 55%)!important;box-shadow:inset -1px 0 0 var(--border-color)}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(20,19,17,0),#141311 55%)!important}}.connections-page .connection-actions{flex-wrap:nowrap!important;align-items:center;gap:12px!important}.connections-page .connection-actions .connection-link{white-space:nowrap}.paper-table-dashboard .paper-table-head .col-link{font-size:inherit;color:inherit}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:40px!important;background:linear-gradient(to right,rgba(40,32,24,0),rgba(40,32,24,.07)),linear-gradient(to right,rgba(255,255,255,0),#fff 70%)!important;border-right:2px solid rgba(40,32,24,.12)}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(0,0,0,0),rgba(0,0,0,.35)),linear-gradient(to right,rgba(20,19,17,0),#141311 70%)!important;border-right-color:rgba(255,255,255,.08)}}.connections-page .connection-actions .btn{white-space:nowrap}.connections-page .connection-refresh{width:36px;height:36px;justify-content:center;padding:0!important;border-radius:var(--radius-control,8px);margin-left:auto}.faq-section .faq-cat,.faq-section .panel-group{max-width:720px}.ace-chrome .ace_gutter-cell{color:#5f5a52!important}.connections-grid{align-items:start!important}.connection-installations{border-bottom:0!important;margin-bottom:0!important;padding-bottom:0!important}.anonymize-page .form-control,.paper-page input.form-control,.paper-page input[type=date],.paper-page input[type=text],.paper-page input[type=url],.paper-page select.form-control,.paper-page textarea,.paper-page textarea.form-control{border-color:#c2baac!important}.dark-mode .anonymize-page .form-control,.dark-mode .paper-page input.form-control,.dark-mode .paper-page input[type=date],.dark-mode .paper-page input[type=text],.dark-mode .paper-page input[type=url],.dark-mode .paper-page select.form-control,.dark-mode .paper-page textarea{border-color:#4a453e!important}.paper-page input::placeholder,.paper-page textarea::placeholder{color:#a39b8e!important}@media (max-width:767px){.paper-table-dashboard .cell-actions>.dropdown,.paper-table-dashboard .cell-actions>.dropdown>.btn-icon-dots,.paper-table-dashboard .cell-actions>.row-edit{width:36px!important;height:36px!important;margin-top:-4px!important;align-self:start!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}}.anonymize-page .repo-access-switch{border:0!important;background:0 0!important;padding:0!important;box-shadow:none!important;gap:0!important;display:inline-flex!important;align-items:center;width:auto!important;font-size:12.5px;color:var(--ink-soft)}.anonymize-page .repo-access-switch::before{content:"Access:";margin-right:6px;color:var(--ink-soft)}.anonymize-page .repo-access-switch button{background:0 0!important;border:0!important;box-shadow:none!important;padding:2px 4px!important;height:auto!important;min-height:0!important;font-size:12.5px!important;font-weight:500!important;color:var(--ink-soft)!important;flex:0 0 auto!important;border-radius:4px!important}.anonymize-page .repo-access-switch button+button::before{content:"·";margin-right:8px;color:var(--ink-muted)}.anonymize-page .repo-access-switch button[aria-pressed=true]{color:var(--color)!important;font-weight:600!important;opacity:1!important}.anonymize-page .repo-access-switch button:not([aria-pressed=true]):hover{color:var(--accent)!important;text-decoration:underline}.anonymize-page .repo-access-switch button .ui-icon{display:none!important}.ace_editor .ace_marker-layer .ace_selection,mark.md-find.is-current{background:rgba(240,206,90,.95)!important;box-shadow:0 0 0 1.5px #5c4a12!important;color:inherit!important}.dark-mode .ace_editor .ace_marker-layer .ace_selection,.dark-mode mark.md-find.is-current{background:rgba(214,178,60,.55)!important;box-shadow:0 0 0 1.5px #f2d77a!important}.ace_search .ace_search_field,.md-find-input,.paper-page input:not([type=checkbox]):not([type=radio]):not([type=range]),.paper-page select,.paper-page textarea{border-color:#cfc7b9!important}.dark-mode .md-find-input,.dark-mode .paper-page input:not([type=checkbox]):not([type=radio]):not([type=range]),.dark-mode .paper-page select,.dark-mode .paper-page textarea{border-color:#48433c!important}.ace_search .ace_search_field:focus,.md-find-input:focus,.paper-page input:focus,.paper-page select:focus,.paper-page textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}.q-dot.q-dot-idle{background:#2f7d4f!important}.dark-mode .q-dot.q-dot-idle{background:#6fbf8a!important}@media (min-width:1200px){.readme-toc{margin-top:0!important;padding-top:0!important}}@media (min-width:1200px){.readme-toc{margin-top:-30px!important}}.anonymize-workspace .anonymize-topbar{background:var(--paper-bg,var(--background))!important;border-bottom:1px solid var(--border-color)!important}.anonymize-workspace .type-badge{font-family:var(--font-sans)!important;letter-spacing:0!important;text-transform:none!important;font-size:12px!important;font-weight:600!important;padding:2px 8px!important;border-radius:999px!important;background:var(--hover-bg-color)!important;color:var(--ink-soft)!important;border:0!important;vertical-align:middle}.anonymize-page input[type=checkbox]{-webkit-appearance:none;appearance:none;width:16px!important;height:16px!important;margin:2px 0 0;border:1.5px solid #a39d92;border-radius:4px;background:var(--paper-card);display:inline-grid;place-content:center;cursor:pointer;flex:0 0 16px}.anonymize-page input[type=checkbox]::before{content:"";width:9px;height:9px;transform:scale(0);background:#fff;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5'/%3E%3C/svg%3E") center/contain no-repeat}.anonymize-page input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.anonymize-page input[type=checkbox]:checked::before{transform:scale(1)}.anonymize-page input[type=checkbox]:disabled{opacity:.45;cursor:not-allowed}.anonymize-page input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dark-mode .anonymize-page input[type=checkbox]{border-color:#6e6860;background:0 0}.anonymize-page #commit{font-family:var(--font-mono, "JetBrains Mono", monospace)!important;font-size:13px!important}.anonymize-page .form-control,.anonymize-page select,.anonymize-page textarea{border-color:#cfc7b9!important}.dark-mode .anonymize-page .form-control,.dark-mode .anonymize-page select,.dark-mode .anonymize-page textarea{border-color:#48433c!important}.anonymize-page .form-control:focus,.anonymize-page select:focus,.anonymize-page textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}.anonymize-review-note{font-size:12.5px!important;color:var(--ink-soft)!important;margin:0 0 8px!important}.anonymize-page .form-check-input[type=checkbox]{position:absolute!important;margin-left:-28px!important;margin-top:3px!important}.anonymize-page .repo-access-controls:not(:has(button,a)),.anonymize-page .repo-access-main:not(:has(button,a)){display:none!important}.anonymize-page .repo-access-note:not(:has(span+span)){margin-top:0!important}.anonymize-form-col .anonymize-submit-bar{position:sticky;bottom:0;z-index:3;background:var(--paper-bg-alt)!important;border-top:1px solid var(--border-color);padding:12px 0 16px!important;margin-top:8px}.anonymize-form-col .anonymize-submit-bar::before{content:"";position:absolute;left:0;right:0;top:-25px;height:24px;background:linear-gradient(to bottom,transparent,var(--paper-bg-alt));pointer-events:none}.anonymize-form-col .anonymize-review-note,.anonymize-form-col .draft-status{font-size:12.5px!important;color:var(--ink-soft)!important;margin:0 0 6px!important;padding:0 2px}.anonymize-form-col .anonymize-review-note::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--status-progress,#b7791f);margin-right:8px;vertical-align:1px}.anonymize-page .repo-access-switch button[aria-pressed=true]{color:var(--accent)!important;box-shadow:inset 0 -2px 0 var(--accent)!important;border-radius:0!important}.anonymize-page .input-group-append .btn-icon{height:40px!important;width:40px!important;min-height:40px!important;display:inline-flex!important;align-items:center;justify-content:center;border:1px solid #cfc7b9!important;border-radius:8px!important;margin-left:8px!important;background:var(--paper-card)!important}.dark-mode .anonymize-page .input-group-append .btn-icon{border-color:#48433c!important}.custom-select,input.form-control,select.form-control,textarea.form-control{border-color:#cfc7b9!important}.dark-mode .custom-select,.dark-mode input.form-control,.dark-mode select.form-control,.dark-mode textarea.form-control{border-color:#48433c!important}input.form-control:focus,select.form-control:focus,textarea.form-control:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}@media (max-width:767px){.paper-table-dashboard .cell-views.num::after{content:"views"!important;margin-left:4px}}@media (min-width:768px){.paper-table-dashboard .cell-views.num::after{content:none!important}}@media (max-width:767px){.admin-page .paper-table:not(.users-table) .cell-views.num::after{margin-left:4px}}.markdown-body li .redact-chip,.markdown-body p .redact-chip{line-height:1!important;padding-top:1px!important;padding-bottom:1px!important;vertical-align:baseline}.dark-mode .explorer-sidebar,.dark-mode .leftCol{background:#1e1c19!important}.errors-page .seg-tabs,.q-range-btns{display:inline-flex!important;gap:2px!important;padding:3px!important;background:var(--hover-bg-color)!important;border:0!important;border-radius:9px!important}.errors-page .seg-tabs button,.q-range-btns .btn{border:0!important;background:0 0!important;color:var(--ink-soft)!important;border-radius:7px!important;height:28px!important;min-height:28px!important;padding:0 10px!important;font-size:13px!important;font-weight:500!important;box-shadow:none!important}.errors-page .seg-tabs button.active,.q-range-btns .btn.active{background:var(--paper-card)!important;color:var(--color)!important;box-shadow:0 1px 2px rgba(40,32,24,.12),0 0 0 1px rgba(40,32,24,.06)!important}.dark-mode .errors-page .seg-tabs button.active,.dark-mode .q-range-btns .btn.active{background:#2c2925!important;box-shadow:0 0 0 1px rgba(255,255,255,.06)!important}.ace_search .ace_search_field,.md-find-input{border-width:1px!important}.ace_search .ace_search_field:focus,.md-find-input:focus{outline:0!important;border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}.anonymize-form-col .anonymize-review-note{color:#8a5a12!important;font-weight:500}.dark-mode .anonymize-form-col .anonymize-review-note{color:#e3b062!important}@media (max-width:767px){.anonymize-form-col .anonymize-submit-bar{position:sticky!important;bottom:0!important;padding:12px 0 calc(12px + env(safe-area-inset-bottom))!important}}@media (max-width:767px){.anonymize-form-col{overflow:visible!important}.anonymize-page .form-group+.form-group,.anonymize-page .form-row>[class*=col]+[class*=col]{margin-top:0!important}.anonymize-page .input-group-append .btn-icon{height:44px!important;width:44px!important}}#sourceUrl,#sourceUrl-landing{border-color:#cfc7b9!important}.dark-mode #sourceUrl,.dark-mode #sourceUrl-landing{border-color:#48433c!important}#sourceUrl-landing:focus,#sourceUrl:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}.anonymize-form-col .anonymize-review-note{color:#6e470c!important}.dark-mode .anonymize-preview-col .markdown-body h1,.dark-mode .anonymize-preview-col .markdown-body h2,.dark-mode .anonymize-preview-col .markdown-body hr{border-color:var(--border-color)!important}.dark-mode .q-dot.q-dot-idle,.q-dot.q-dot-idle{background:var(--ink-muted)!important}.ace_search .ace_search_counter,.md-find-count{color:var(--color)!important;font-weight:500!important;font-variant-numeric:tabular-nums;font-size:12.5px!important}.readme-toc a:not(.is-active){color:#57524a!important}.dark-mode .readme-toc a:not(.is-active){color:#b8b1a6!important}.viewer-bar .vb-support{margin-right:8px!important}:root{--redact-bar:#1F1C19;--redact-ink:#5A544C;--redact-reveal:#F4EFE6}.dark-mode{--redact-bar:#000000;--redact-ink:#3E3A35;--redact-reveal:#F4EFE6}.demo-output .redact-chip,.hero .redact,.hero-mock .redact,.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip,.markdown-body h3 mark.redact-chip,.markdown-body h4 mark.redact-chip,.markdown-body mark.redact-chip,span.redact{background:var(--redact-bar)!important;color:var(--redact-ink)!important;box-shadow:none!important;border:0!important;border-radius:2px!important;padding:0 .28em!important;text-decoration:none!important;font-weight:inherit;letter-spacing:.02em;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:color .12s ease;cursor:help}.dark-mode .demo-output .redact-chip,.dark-mode .markdown-body mark.redact-chip,.dark-mode span.redact{box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)!important}.demo-output .redact-chip:hover,.markdown-body mark.redact-chip:hover,span.redact:hover{color:var(--redact-reveal)!important}.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip,.markdown-body h3 mark.redact-chip{font-size:inherit!important;vertical-align:baseline!important;padding:0 .2em!important}.ace_text-layer .ace_redacted{background:var(--redact-bar)!important;color:var(--redact-ink)!important;border-radius:2px;box-shadow:none!important;text-decoration:none!important}.dark-mode .ace_text-layer .ace_redacted{box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)!important}.meta-redact{background:0 0!important;color:var(--ink-soft)!important;box-shadow:none!important;padding:0!important;display:inline-flex!important;align-items:center;gap:6px;font-weight:500!important}.meta-redact::before{content:"";width:14px;height:8px;border-radius:1.5px;background:var(--redact-bar);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}.ace_editor .ace_text-layer .ace_redacted,.dark-mode .ace_editor .ace_text-layer .ace_redacted{background:var(--redact-bar)!important;color:var(--redact-ink)!important;border-radius:2px!important}.ace_editor .ace_text-layer .ace_redacted{box-shadow:none!important}.dark-mode .ace_editor .ace_text-layer .ace_redacted{box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)!important}.dark-mode .demo-output .redact-chip,.dark-mode .markdown-body h1 mark.redact-chip,.dark-mode .markdown-body h2 mark.redact-chip,.dark-mode .markdown-body h3 mark.redact-chip,.dark-mode .markdown-body mark.redact-chip,.dark-mode span.redact{background:var(--redact-bar)!important;color:var(--redact-ink)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)!important}.dark-mode .demo-output .redact-chip:hover,.dark-mode .markdown-body mark.redact-chip:hover{color:var(--redact-reveal)!important}.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip{color:#3e3933!important}.dark-mode .meta-redact{color:var(--ink-soft)!important}.dark-mode .hero-mock-count,.hero-mock-count{background:0 0!important;color:var(--ink-soft)!important;padding:0!important;gap:6px;font-weight:500!important}.hero-mock-count::before{content:"";width:12px;height:7px;border-radius:1.5px;background:var(--redact-bar);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}@media (max-width:767px){.dark-mode .mobile-sub b,.mobile-sub b{background:0 0!important;color:var(--ink-soft)!important;padding:0!important;gap:5px;font-weight:500!important}.mobile-sub b::before{content:"";width:12px;height:7px;border-radius:1.5px;background:var(--redact-bar);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}}:root{--redact-bar:#E4DED3;--redact-ink:#8A8378;--redact-reveal:#2B2824}.dark-mode{--redact-bar:#34302A;--redact-ink:#8F887D;--redact-reveal:#F1ECE3}.ace_editor .ace_text-layer .ace_redacted,.dark-mode .ace_editor .ace_text-layer .ace_redacted,.dark-mode .demo-output .redact-chip,.dark-mode .markdown-body mark.redact-chip,.dark-mode span.redact,.demo-output .redact-chip,.markdown-body mark.redact-chip,span.redact{box-shadow:none!important;border-radius:3px!important}.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip{color:var(--redact-ink)!important}.dark-mode .markdown-body h1 mark.redact-chip,.dark-mode .markdown-body h2 mark.redact-chip,.dark-mode .markdown-body h3 mark.redact-chip{box-shadow:none!important}.hero-mock-count::before,.meta-redact::before,.mobile-sub b::before{box-shadow:none!important}:root{--redact-bar:#EEEAE2;--redact-ink:#8C8478;--redact-reveal:#2B2824;--redact-deboss:inset 0 1px 2px rgba(60,48,32,.18),inset 0 0 0 1px rgba(60,48,32,.06)}.dark-mode{--redact-bar:#0E0D0B;--redact-ink:#7A746A;--redact-reveal:#F1ECE3;--redact-deboss:inset 0 1px 2px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.05)}.dark-mode .demo-output .redact-chip,.dark-mode .markdown-body mark.redact-chip,.dark-mode span.redact,.demo-output .redact-chip,.markdown-body mark.redact-chip,span.redact{background:var(--redact-bar)!important;color:var(--redact-ink)!important;box-shadow:var(--redact-deboss)!important;border-radius:4px!important;padding:.05em .45em!important;font-family:var(--font-mono, "JetBrains Mono", monospace)!important;font-size:.78em!important;font-weight:500!important;letter-spacing:.02em!important;line-height:1.4!important;vertical-align:.08em!important;white-space:nowrap}.dark-mode .markdown-body h1 mark.redact-chip,.dark-mode .markdown-body h2 mark.redact-chip,.dark-mode .markdown-body h3 mark.redact-chip,.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip,.markdown-body h3 mark.redact-chip{font-size:.55em!important;vertical-align:.3em!important;color:var(--redact-ink)!important;padding:.15em .5em!important}.demo-output .redact-chip:hover,.markdown-body mark.redact-chip:hover,span.redact:hover{color:var(--redact-reveal)!important}.ace_editor .ace_text-layer .ace_redacted,.dark-mode .ace_editor .ace_text-layer .ace_redacted{background:var(--redact-bar)!important;color:var(--redact-ink)!important;box-shadow:var(--redact-deboss)!important;border-radius:3px!important}.hero-mock-count::before,.meta-redact::before,.mobile-sub b::before{background:var(--redact-bar)!important;box-shadow:var(--redact-deboss)!important;border-radius:2px!important}:root{--slot-bg:#E3DCD0;--slot-bg-sel:#D3CBBD;--slot-num:#1F5F5A}.dark-mode{--slot-bg:#3A352F;--slot-bg-sel:#4A443C;--slot-num:#7CC7BE}.dark-mode .demo-output .redact-chip,.dark-mode .markdown-body h1 mark.redact-chip,.dark-mode .markdown-body h2 mark.redact-chip,.dark-mode .markdown-body h3 mark.redact-chip,.dark-mode .markdown-body mark.redact-chip,.dark-mode span.redact,.demo-output .redact-chip,.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip,.markdown-body h3 mark.redact-chip,.markdown-body h4 mark.redact-chip,.markdown-body mark.redact-chip,.redact-slot,span.redact{display:inline-flex!important;align-items:center!important;justify-content:flex-end!important;min-width:2.5em!important;height:1.12em!important;padding:0 .32em!important;margin:0 .06em!important;background:var(--slot-bg)!important;color:var(--slot-num)!important;box-shadow:none!important;border:0!important;border-radius:3px!important;vertical-align:-.2em!important;line-height:1!important;font-size:inherit!important;letter-spacing:0!important;text-decoration:none!important;cursor:help;white-space:nowrap}.markdown-body mark.redact-chip i,.redact-slot i,span.redact i{font:700 .66em/1 var(--font-sans,Inter,sans-serif)!important;font-style:normal!important;color:var(--slot-num)!important}.demo-output .redact-chip{font:700 .66em/1 var(--font-sans,Inter,sans-serif)!important;min-width:3.8em!important;height:1.7em!important;vertical-align:-.35em!important}.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip{height:.95em!important;vertical-align:-.1em!important;border-radius:4px!important}.files .redact-slot{min-width:2.3em!important;height:1.08em!important;vertical-align:-.18em!important}.files .file.active>a .redact-slot,.files a[aria-current] .redact-slot{background:var(--slot-bg-sel)!important}.breadcrumb .redact-slot{vertical-align:-.22em!important}.ace_editor .ace_text-layer .ace_redacted,.dark-mode .ace_editor .ace_text-layer .ace_redacted{position:relative;color:transparent!important;background:var(--slot-bg)!important;box-shadow:none!important;border-radius:3px!important}.ace_editor .ace_text-layer .ace_redacted::after{position:absolute;right:.35em;top:50%;transform:translateY(-50%);font:700 9.5px/1 var(--font-sans,Inter,sans-serif);color:var(--slot-num)}.hero-mock-count::before,.meta-redact::before,.mobile-sub b::before{background:var(--slot-bg)!important;box-shadow:none!important;border-radius:2px!important}.files .tree-name{display:inline-flex;align-items:center;gap:0;min-width:0}.files .tree-name .redact-slot{vertical-align:middle!important;margin:0 .08em!important}.markdown-body li mark.redact-chip,.markdown-body p mark.redact-chip{vertical-align:-.16em!important}.ace_editor .ace_marker-layer .ace_selection,mark.md-find.is-current{background:rgba(240,196,70,.95)!important;box-shadow:0 0 0 2px rgba(196,140,20,.55)!important}.dark-mode .ace_editor .ace_marker-layer .ace_selection,.dark-mode mark.md-find.is-current{background:rgba(214,170,50,.6)!important;box-shadow:0 0 0 2px rgba(240,200,90,.55)!important}.demo-output .redact-chip,span.redact i{font-size:10px!important}.dark-mode{--slot-num:#8FD6CC}.dark-mode .markdown-body h1 mark.redact-chip,.dark-mode .markdown-body h2 mark.redact-chip,.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip{min-width:1.9em!important;height:.78em!important;vertical-align:0!important;padding:0 .22em!important}.viewer-bar .vb-right{gap:4px!important}.viewer-bar .vb-right .vb-icon{width:34px!important;height:34px!important;margin:0!important}.viewer-bar .vb-support{margin-right:10px!important}.viewer-bar .vb-snapshot{margin-right:14px!important}@media (max-width:767px){.mobile-sub{font-size:13px!important;color:#5f5a52!important}.dark-mode .mobile-sub{color:#b3aca1!important}}.file-card-meta{overflow:visible!important}:root{--control-border:#CFC7B9}.dark-mode{--control-border:#48433C}.admin-page .btn:not(.btn-ink):not(.btn-primary):not(.btn-outline-danger):not(.summary-pill),.admin-page select,.anonymize-page #branch,.anonymize-page #sourceUrl,.anonymize-page #sourceUrl-landing,.anonymize-page .form-control-lg,.anonymize-page select.form-control,.dashboard-page .dashboard-quota>summary,.dashboard-page .dropdown-toggle,.dashboard-page .filter-btn,.errors-page select,.q-range-btns+.btn{border-color:var(--control-border)!important}.anonymize-page #sourceUrl-landing:focus,.anonymize-page #sourceUrl:focus{border-color:var(--accent)!important}.errors-page .seg-tabs{height:36px!important;align-items:center}.errors-page .seg-tabs button{height:30px!important}.admin-page .admin-toolbar .btn,.admin-page .btn-export,.admin-page a.btn[href*=export],.admin-page button[title*=xport]{height:36px!important;min-height:36px!important}@media (max-width:767px){.paper-table .cell-views{gap:0!important}}@media (min-width:1200px){.anonymize-workspace .anonymize-split,.anonymize-workspace .anonymize-topbar-inner{max-width:1048px;margin-left:auto!important;margin-right:auto!important}.anonymize-workspace .anonymize-topbar{padding-left:0!important;padding-right:0!important}.anonymize-workspace .anonymize-form-col{padding-left:0!important}}@media (max-width:767px){.anonymize-form-col .anonymize-submit-bar{margin:8px 0 0!important;padding:10px 0 calc(10px + env(safe-area-inset-bottom))!important}.anonymize-form-col .anonymize-submit-bar .btn{border-radius:10px!important}}.img-unavailable{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px dashed var(--control-border);border-radius:8px;font-size:12.5px;color:var(--ink-soft);background:var(--hover-bg-color)}.anonymize-form-col .draft-status{color:var(--ink-soft)!important}.errors-page .errors-toolbar .form-control,.errors-page .errors-toolbar select,.errors-page form select{border-color:var(--control-border)!important}@media (min-width:1200px){.anonymize-workspace .anonymize-form-col,.anonymize-workspace .anonymize-form-col .paper-section,.anonymize-workspace .anonymize-form-col form{padding-left:0!important}.anonymize-workspace .anonymize-form-col{background:0 0!important;padding-right:24px!important}.anonymize-workspace .anonymize-form-col .anonymize-submit-bar,.anonymize-workspace .anonymize-form-col .anonymize-submit-bar::before{background:var(--paper-bg,var(--background))!important}.anonymize-workspace .anonymize-form-col .anonymize-submit-bar::before{background:linear-gradient(to bottom,transparent,var(--paper-bg,#faf9f6))!important}}@media (max-width:767px){.anonymize-page .form-row>.form-group,.anonymize-page .form-row>[class*=col] .form-group{margin-bottom:14px!important}.anonymize-page .form-row>[class*=col]{margin-bottom:0!important;padding-bottom:0!important}}@media (min-width:1200px){.anonymize-workspace .anonymize-form-col .anonymize-submit-bar{background:#faf9f6!important}.anonymize-workspace .anonymize-form-col .anonymize-submit-bar::before{background:linear-gradient(to bottom,rgba(250,249,246,0),#faf9f6)!important}.dark-mode .anonymize-workspace .anonymize-form-col .anonymize-submit-bar{background:#161412!important}.dark-mode .anonymize-workspace .anonymize-form-col .anonymize-submit-bar::before{background:linear-gradient(to bottom,rgba(22,20,18,0),#161412)!important}}:root{--slot-num:#0F4F4A}.dark-mode{--slot-num:#A8E6DD;--slot-bg:#3F3A33}.markdown-body li mark.redact-chip,.markdown-body p mark.redact-chip,.markdown-body td mark.redact-chip,span.redact{display:inline-block!important;height:1.08em!important;line-height:1.08em!important;vertical-align:-.17em!important;min-width:2.5em!important;text-align:right!important;padding:0 .34em!important}.breadcrumb .redact-slot i,.files .redact-slot i,.markdown-body li mark.redact-chip i,.markdown-body p mark.redact-chip i,.markdown-body td mark.redact-chip i,span.redact i{font-size:max(10.5px,.72em)!important;line-height:inherit!important;vertical-align:top!important;font-weight:700!important}.markdown-body h1 mark.redact-chip i,.markdown-body h2 mark.redact-chip i,.markdown-body h3 mark.redact-chip i{font-size:.62em!important}.ace_editor .ace_text-layer .ace_redacted::after{font-size:10.5px!important}.demo-output .redact-chip{font-size:11px!important}.errors-page .bar-info,.errors-page .vol-info,.errors-page [class*=seg-info]{opacity:.45}.connections-grid{align-items:stretch!important}.connections-grid>section{display:flex;flex-direction:column}.connections-grid>section .connection-installations{margin-top:auto!important;border-top:1px solid var(--border-color);border-bottom:0!important}.navbar .nav-link.active,.site-nav .nav-link.active,header .nav-link.active{color:var(--color)!important;box-shadow:inset 0 -2px 0 var(--accent)!important;border-bottom-color:transparent!important}@media (max-width:767px){.anonymize-topbar .paper-crumbs{display:block!important;margin-bottom:4px;font-size:13px}}.anonymize-form-col .draft-discard{background:0 0;border:0;padding:0 0 0 6px;font-size:12.5px;font-weight:500;color:var(--color)!important;text-decoration:underline;text-underline-offset:3px}.anonymize-form-col .draft-discard:hover{color:#b42318!important}@media (max-width:767px){.mobile-sub b{display:inline-flex!important;align-items:center;gap:5px;font-weight:400!important;color:inherit!important}.mobile-sub b::before{content:""!important;display:inline-block!important;width:12px;height:7px;border-radius:2px;background:var(--slot-bg)!important}.mobile-sub span:has(+b)::after{content:"·";margin:0 6px;opacity:.7}}.demo-output .redact-chip,span.redact{display:inline-block!important;height:1.15em!important;line-height:1.15em!important;vertical-align:-.2em!important;text-align:right!important}.demo-output .redact-chip{font-size:11px!important;min-width:3.4em!important}.ace-chrome .ace_gutter-cell{color:#5a554d!important}.dark-mode .ace_editor .ace_gutter-cell{color:#a39c91!important}.files .file.active>a{background:#e2ded6!important}@media (min-width:1200px){.reading-layout{grid-template-columns:minmax(0,700px) 176px!important;gap:44px!important}}@media (hover:none){.anonymize-page .repo-access-switch button:not([aria-pressed=true]):hover{color:var(--ink-soft)!important;text-decoration:none!important}}.connections-grid>section .connection-installations{margin-top:16px!important}.dashboard-page .dashboard-quota .quota-summary-ring{display:none!important}.dashboard-page .dashboard-quota>summary::before{content:"";width:28px;height:4px;border-radius:2px;background:linear-gradient(to right,var(--accent) var(--quota-pct,5%),var(--border-color) 0);flex:0 0 28px}.paper-table-dashboard .row-open{margin-right:2px}@media (max-width:767px){.paper-table-dashboard .cell-actions>.row-open{display:none!important}}.dashboard-page .dashboard-quota>summary::before{width:32px;height:5px;flex-basis:32px;background:linear-gradient(to right,var(--accent) 0 max(3px,var(--quota-pct,5%)),#d9d3c8 0)!important}.dark-mode .dashboard-page .dashboard-quota>summary::before{background:linear-gradient(to right,#7cc7be 0 max(3px,var(--quota-pct,5%)),#3a352f 0)!important}@media (min-width:1200px){.reading-layout{grid-template-columns:minmax(0,680px) 176px!important;gap:44px!important}.md-find-bar{padding-left:max(20px,calc((100% - 900px)/ 2))!important}}.breadcrumb .redact-slot i,.files .redact-slot i,.markdown-body li mark.redact-chip i,.markdown-body p mark.redact-chip i,.markdown-body td mark.redact-chip i,span.redact i{font-size:max(11px,.8em)!important;letter-spacing:.01em}.files .file.active>a{background:#ebe7e0!important}.files .file.active>a .redact-slot{background:#d6cec0!important}.demo-output .redact-chip{font-size:12px!important;height:1.3em!important;line-height:1.3em!important;min-width:3em!important;vertical-align:-.28em!important;padding:0 .4em!important}.paper-table-dashboard .cell-actions{gap:4px!important}.paper-table-dashboard .cell-actions>.copy-url{margin-right:6px!important}.paper-table-dashboard .btn-icon-dots,.paper-table-dashboard .row-edit{width:32px!important;height:32px!important;display:inline-flex!important;align-items:center;justify-content:center;border-radius:8px}.paper-table-dashboard .btn-icon-dots:hover,.paper-table-dashboard .row-edit:hover{background:var(--hover-bg-color)!important}.anonymize-page #commit{text-overflow:ellipsis}@media (max-width:767px){.anonymize-page .form-grid-2{row-gap:0!important;gap:0!important}.anonymize-page .form-grid-2>.form-group{margin-bottom:16px!important}}.connections-grid>section .connection-installations{border-top:0!important;padding-top:0!important}.vb-help{position:relative;display:inline-flex}.vb-help-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:0;border-radius:8px;background:0 0;color:var(--ink-soft);font:500 13px var(--font-sans,Inter,sans-serif);cursor:pointer}.vb-help-btn:hover,.vb-help-btn[aria-expanded=true]{background:var(--hover-bg-color);color:var(--color)}.vb-help-menu{position:absolute;top:calc(100% + 8px)!important;right:0;left:auto;min-width:250px;z-index:50}.vb-help-menu a{display:flex;gap:10px;align-items:flex-start}.vb-help-menu small{display:block;font-size:12px;color:var(--ink-soft);font-weight:400;margin-top:1px}@media (max-width:767px){.viewer-bar .vb-help{display:none!important}}.paper-table-dashboard .paper-table-head .col-link{padding-left:0!important;margin-left:-16px}@media (min-width:768px){.anonymize-workspace .anonymize-topbar{padding-top:12px!important;padding-bottom:12px!important}.anonymize-workspace .anonymize-topbar .paper-crumbs{margin-bottom:2px!important}.anonymize-workspace .anonymize-topbar .paper-page-title,.anonymize-workspace .anonymize-topbar h1{font-size:26px!important;margin:0!important}}#sourceUrl-landing::placeholder,#terms::placeholder,.form-control::placeholder,input::placeholder,textarea::placeholder{color:#a39b8e!important;opacity:1!important}.dark-mode .form-control::placeholder,.dark-mode input::placeholder,.dark-mode textarea::placeholder{color:#6f695f!important}.q-dot-active,.q-state-filters .q-legend-active,.q-state-filters [class*=active]>.q-dot,.q-state-toggle .q-dot-active{background:var(--accent)!important}@media (max-width:767px){.mobile-sub b{font-size:inherit!important;gap:6px!important;margin-left:0!important;padding-left:0!important}.mobile-sub span:has(+b)::after{margin:0 6px 0 6px!important}.mobile-sub b::before{width:14px!important;height:8px!important;background:#d6cec0!important}.file-card-head{min-height:56px!important}}.markdown-body h1 mark.redact-chip i,.markdown-body h2 mark.redact-chip i{font-weight:600!important;font-size:.58em!important}.dark-mode .markdown-body h1 mark.redact-chip,.dark-mode .markdown-body h2 mark.redact-chip,.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip{min-width:1.6em!important;padding:0 .18em!important}.readme-toc a.lvl-3{font-size:12.5px!important;color:#6e685f!important}.dark-mode .readme-toc a.lvl-3{color:#9c958a!important}.file-card-head .file-card-tools,.file-card-head .view-tools{margin-right:10px!important;padding-right:10px!important;border-right:1px solid var(--border-color)!important}.files .file.active>a{background:#e5e0d8!important}.files .file.active>a .redact-slot{background:#cec5b5!important}.markdown-body li mark.redact-chip,.markdown-body p mark.redact-chip,.markdown-body td mark.redact-chip{vertical-align:-.1em!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:24px!important;transition:opacity .15s}.file-card.at-right-edge .file-card-body::after{opacity:0!important}}.hero-mock .is-active,.hero-mock [class*=active]{position:relative}.hero-mock .is-active::before{left:0!important}.anonymize-form-col form{padding-bottom:36px!important}.connections-grid>section p{font-size:13.5px!important;line-height:1.55!important}.connections-grid>section>.btn,.connections-grid>section>a.btn{width:auto!important;align-self:flex-start}@media (max-width:767px){.paper-table-dashboard .cell-actions>.dropdown,.paper-table-dashboard .cell-actions>.dropdown>.btn-icon-dots,.paper-table-dashboard .cell-actions>.row-edit{width:40px!important;height:40px!important}.dashboard-page .dashboard-row-meta .cell-expires,.dashboard-page .dashboard-row-meta .cell-status,.dashboard-page .dashboard-row-meta .cell-views{padding:0!important;margin:0!important}.dashboard-page .dashboard-row-meta .cell-expires::before,.dashboard-page .dashboard-row-meta .cell-views::before{margin:0 7px!important;width:auto!important}.dashboard-page .dashboard-row-meta .status-line{padding:0!important;margin:0!important}.dashboard-page .dashboard-row-meta .cell-expires .cell-label{margin-right:4px!important}}.connection-installations,.connection-installations li{border:0!important;padding-bottom:0!important;margin-bottom:0!important}.connection-installations li{padding-top:0!important}.connections-page .connection-refresh{margin-left:0!important}.anonymize-form-col .anonymize-submit-bar::before{display:none!important}.anonymize-form-col .anonymize-submit-bar{border-top:1px solid var(--border-color)!important;box-shadow:0 -6px 12px -10px rgba(40,32,24,.18)}.anonymize-form-col form{padding-bottom:24px!important}.img-unavailable{display:flex!important;align-items:center;justify-content:center;gap:8px;width:100%;min-height:72px;border:1px solid var(--border-color)!important;border-style:solid!important;background:var(--hover-bg-color);font:500 12.5px var(--font-sans,Inter,sans-serif)!important;color:var(--ink-soft)}.img-unavailable::before{content:"";width:16px;height:13px;border:1.5px solid currentColor;border-radius:2px;opacity:.7;background:linear-gradient(135deg,transparent 55%,currentColor 55% 62%,transparent 62%)}.admin-summary .summary-pill:not(.active) .count{text-decoration:none!important;opacity:1!important;color:var(--ink-soft)!important}.admin-summary .summary-pill:not(.active)::before{background:#8a8680!important}.dashboard-page .dashboard-quota>summary::before{width:44px!important;flex-basis:44px!important}@media (min-width:1200px){.reading-layout{grid-template-columns:minmax(0,664px) 176px!important;gap:40px!important}.md-find-bar{padding-left:max(20px,calc((100% - 880px)/ 2))!important}}.file-card-head .tb-file{margin-left:8px!important;position:relative}.file-card-head .tb-file::before{content:"";position:absolute;left:-9px;top:6px;bottom:6px;width:1px;background:var(--border-color)}.tree-search-input::placeholder{color:#8a8378!important}.tree-search-kbd{color:#6e685f!important;border:1px solid var(--border-color)!important;background:var(--paper-card)!important}@media (max-width:767px){.mobile-sub{gap:0!important;column-gap:0!important}.mobile-sub span:has(+b)::after,.mobile-sub>span+span::before{margin:0 6px!important}.mobile-sub b::before{margin:0!important}.file-card-head{min-height:52px!important;padding-top:6px!important;padding-bottom:6px!important}}.errors-page .dot-info,.errors-page .seg-info{background:#cfc9bf!important;opacity:1!important}.dark-mode .errors-page .dot-info,.dark-mode .errors-page .seg-info{background:#4a453e!important}.errors-page .dot-error,.errors-page .seg-error{background:#b42318!important}.errors-page .dot-warn,.errors-page .seg-warn{background:#b7791f!important}.dark-mode .leftCol,.dark-mode .viewer-bar{background:#221f1b!important}.paper-table-dashboard .copy-url{box-shadow:inset 0 0 0 1px var(--control-border,#cfc7b9)!important;background:var(--paper-card)!important}.paper-table-dashboard .copy-url .ui-icon,.paper-table-dashboard .copy-url svg{width:15px!important;height:15px!important;color:var(--color)!important;opacity:.75}.paper-table-dashboard .copy-url:hover{background:var(--hover-bg-color)!important}@media (min-width:1200px){.anonymize-workspace .anonymize-preview-col{padding-right:0!important}}.anonymize-submit-bar .draft-status{display:block;margin:0 0 8px!important;font-size:12.5px!important}@media (max-width:767px){.paper-table-dashboard .cell-actions>.row-open{display:inline-flex!important;grid-area:auto}.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(0,1fr) auto auto auto!important;grid-template-areas:"name open edit more" "meta meta meta meta" "link link link link"!important}.paper-table-dashboard .cell-actions>.row-open{grid-area:open;width:40px!important;height:40px!important;align-self:start;margin-top:-4px}}.overview-page :is(.ov-kpi,.ov-card,.kpi-card):has(.ov-meter.crit){border-color:rgba(180,35,24,.45)!important;box-shadow:inset 3px 0 0 #b42318!important}.overview-page :is(.ov-kpi,.ov-card,.kpi-card):has(.ov-meter.warn):not(:has(.ov-meter.crit)){border-color:rgba(183,121,31,.45)!important;box-shadow:inset 3px 0 0 #b7791f!important}.dark-mode{--slot-bg:#46403A}.faq-section .panel-default .panel-title a:after{transform:rotate(45deg)!important}.faq-section .panel-default .panel-title a[aria-expanded=true]:after{transform:rotate(-135deg)!important}.overview-page .ov-kpi-card:has(.ov-meter.crit){border-color:rgba(180,35,24,.45)!important;box-shadow:inset 3px 0 0 #b42318!important}.overview-page .ov-kpi-card:has(.ov-meter.warn):not(:has(.ov-meter.crit)){border-color:rgba(183,121,31,.45)!important;box-shadow:inset 3px 0 0 #b7791f!important}@media (max-width:767px){.paper-table-dashboard .cell-anon,.paper-table-dashboard .cell-anon a,.paper-table-dashboard .cell-anon strong,.paper-table-dashboard .cell-anon>*{min-width:0}.paper-table-dashboard .cell-anon .anon-name,.paper-table-dashboard .cell-anon .anon-title,.paper-table-dashboard .cell-anon .anon-title>a{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;word-break:normal!important;overflow-wrap:normal!important;display:block}}.admin-page .summary-pill.ok::before,.users-page .summary-pill.ok::before{background:var(--status-ready,#2f7d4f)!important}.admin-page .summary-pill.error::before{background:var(--status-error,#b42318)!important}@media (max-width:767px){.paper-table-dashboard .cell-actions>.row-open{display:none!important}.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(0,1fr) auto auto!important;grid-template-areas:"name edit more" "meta meta meta" "link link link"!important}.paper-table-dashboard .cell-anon .anon-title,.paper-table-dashboard .cell-anon .anon-title>a{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important}}.ace-chrome .ace_keyword,.ace-chrome .ace_storage,.ace-chrome .ace_storage.ace_type{color:#7a3e6b!important}.dark-mode .ace_editor .ace_keyword,.dark-mode .ace_editor .ace_storage{color:#d3a3c6!important}.dark-mode{--slot-bg:#4A443D;--slot-num:#9FE0D6}.faq-hero h1,.faq-page h1,.paper-page-title{text-wrap:balance}@media (min-width:1200px){.readme-toc{margin-top:-18px!important}}@media (min-width:768px){.leftCol-search{height:52px!important;min-height:52px!important;box-sizing:border-box;display:flex!important;align-items:center;padding-top:0!important;padding-bottom:0!important;border-bottom:1px solid var(--border-color)!important;margin-bottom:6px!important}}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:32px!important;background:linear-gradient(to right,rgba(255,255,255,0),#fff 75%)!important;border-right:2px solid rgba(40,32,24,.14)}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(20,19,17,0),#141311 75%)!important;border-right-color:rgba(255,255,255,.1)}}.anonymize-form-col form{padding-bottom:0!important}.anonymize-form-col .anonymize-submit-bar{margin-bottom:0!important}.errors-page .kpi-filter{cursor:pointer;transition:border-color .12s,box-shadow .12s}.errors-page .kpi-filter:hover{border-color:var(--control-border,#cfc7b9)!important}.errors-page .kpi-filter.is-selected{border-color:var(--accent)!important;box-shadow:inset 0 0 0 1px var(--accent)!important}.errors-page .kpi-filter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.readme-toc a:not(.is-active){color:#4f4a43!important}.readme-toc a.lvl-3:not(.is-active){color:#625c53!important}.ace_search .ace_search_field:focus,.md-find-input:focus{box-shadow:0 0 0 2px var(--accent-soft)!important;border-color:var(--accent)!important}@media (max-width:767px){.file-card-head{align-items:flex-start!important}.file-card-head .btn-sidebar-toggle,.file-card-head .mobile-files-toggle,.file-card-head>button:first-child{margin-top:2px!important}}@media (max-width:767px){.dashboard-page #search,.dashboard-page .btn-filters,.dashboard-page .dashboard-heading-actions .btn,.dashboard-page .dashboard-quota>summary,.dashboard-page .filters-toggle{height:40px!important;min-height:40px!important}}.profile-page .quota-tile:has(.quota-unlimited)::after,.quota-panel .quota-item:has(.quota-unlimited)::after{content:"No limit on file count";display:block;font-size:12.5px;color:var(--ink-soft);margin-top:6px}.admin-page .detail-value.is-empty,.admin-page .is-unsynced{color:#9a9389!important;font-style:normal!important}@media (min-width:768px){.anonymize-form-col .anonymize-submit-bar{display:flex!important;align-items:center;gap:16px}.anonymize-submit-bar .draft-status{margin:0!important;flex:0 1 auto;max-width:46%;line-height:1.35}.anonymize-submit-bar .btn-ink{flex:1 1 auto}}.anonymize-landing .repo-access-note>span:has(.ui-icon){display:none!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{box-shadow:inset -8px 0 8px -8px rgba(40,32,24,.35)!important;border-right:0!important}}.dark-mode .leftCol{background:#1c1a17!important}.dark-mode .viewer-bar{background:#181614!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:44px!important;background:linear-gradient(to right,rgba(250,249,246,0) 0,rgba(250,249,246,.92) 55%,rgba(226,220,210,.95) 100%)!important;box-shadow:inset -1px 0 0 rgba(40,32,24,.18)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(20,19,17,0) 0,rgba(20,19,17,.92) 55%,rgba(44,40,35,.95) 100%)!important;box-shadow:inset -1px 0 0 rgba(255,255,255,.14)!important}}@media (max-width:767px){.file-card-head{min-height:48px!important;align-items:center!important;padding-top:4px!important;padding-bottom:4px!important}.file-card-head .file-card-path{display:flex!important;flex-direction:row!important;align-items:center!important;flex-wrap:nowrap!important;gap:8px!important;min-width:0}.file-card-head .file-card-path .breadcrumb{min-width:0;flex:0 1 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mobile-sub{margin:0!important;flex:0 0 auto;white-space:nowrap}.mobile-sub>span{display:none!important}.mobile-sub span:has(+b)::after{content:none!important}.mobile-sub b{font-size:12.5px!important}}.paper-features,.paper-qa,.paper-section-head,.paper-stats{margin-top:88px!important}.paper-hero+.paper-stats{margin-top:40px!important}@media (min-width:1100px){.paper-faq-body{grid-template-columns:180px minmax(0,1fr) 220px!important;gap:48px!important}.paper-faq-help{display:block}}.paper-faq-help{display:none}.paper-faq-help-card{position:sticky;top:96px;border:1px solid var(--border-color);border-radius:12px;background:var(--paper-card);padding:18px}.paper-faq-help-card strong{display:block;font-size:14px;margin-bottom:6px}.paper-faq-help-card p{font-size:13px;line-height:1.5;color:var(--ink-soft);margin:0 0 12px}.anonymize-submit-bar .draft-status{white-space:nowrap;flex:0 0 auto!important;max-width:none!important}.q-throughput .q-range-btns{float:right;margin:-4px 0 0 12px}.admin-page .paper-table{border:1px solid var(--border-color)!important;border-radius:12px!important;overflow:hidden;background:var(--paper-card)}.dark-mode{--ink-soft:#ADA699;--ink-muted:#8C8579}.hero-mock-count::before{background:var(--slot-bg)!important}@media (min-width:1100px){.paper-faq-help{display:block!important}}.q-throughput{position:relative}.q-throughput .q-range-btns{position:absolute!important;top:12px;right:16px;float:none!important;margin:0!important;width:auto!important;display:inline-flex!important;z-index:2}.anonymize-submit-bar .draft-status{order:-1}.dark-mode .readme-toc a:not(.is-active){color:#b8b1a6!important}.dark-mode .readme-toc a.lvl-3:not(.is-active){color:#a39c91!important}.dark-mode .files .file.active>a{background:rgba(255,255,255,.13)!important}.files .file.active>a{background:#ebe7e0!important}.files .file.active>a .redact-slot{background:var(--slot-bg)!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:28px!important;background:linear-gradient(to right,rgba(250,249,246,0) 0,rgba(250,249,246,.85) 100%)!important;box-shadow:inset -1px 0 0 rgba(40,32,24,.16)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(20,19,17,0) 0,rgba(20,19,17,.85) 100%)!important;box-shadow:inset -1px 0 0 rgba(255,255,255,.12)!important}}@media (min-width:1100px){.readme-toc{margin-top:-54px!important;top:84px!important}}.dark-mode .leftCol,.dark-mode .leftCol .leftCol-search{background:#1f1d1a!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:32px!important;background:linear-gradient(to right,rgba(250,249,246,0) 0,rgba(250,249,246,.75) 45%,rgba(236,232,225,.98) 100%)!important;box-shadow:inset -1px 0 0 rgba(40,32,24,.2)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(20,19,17,0) 0,rgba(20,19,17,.75) 45%,rgba(38,35,31,.98) 100%)!important;box-shadow:inset -1px 0 0 rgba(255,255,255,.16)!important}}@media (max-width:991px){.navbar .nav-signin-m{display:inline-flex;align-items:center;gap:6px;background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important;padding:0 12px!important;font-weight:500}.dark-mode .navbar .nav-signin-m{background:#237a71!important;border-color:#237a71!important;color:#fff!important}.navbar .nav-signin-m .fa-github{font-size:15px}}.paper-faq-help-card p{font-size:14px!important;line-height:1.55!important}@media (min-width:1100px){.paper-hero{grid-template-columns:minmax(0,1fr) 500px!important;column-gap:48px!important}}@media (max-width:767px){.viewer-bar .vb-right{gap:8px!important}.viewer-bar .vb-right>.vb-icon,.viewer-bar .vb-right>.vb-support{margin:0!important}}@media (min-width:1100px){.paper-reassure{flex-wrap:wrap!important;column-gap:18px!important;row-gap:6px!important;max-width:100%}.paper-reassure li{white-space:nowrap}}@media (min-width:1100px){.paper-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;column-gap:20px!important}.paper-section-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;column-gap:20px!important}.paper-section-head>p{max-width:500px}}.dark-mode{--slot-bg:#3D3833;--slot-num:#8FDACD}@media (min-width:768px){.explorer-page>.leftCol .leftCol-search,.leftCol-search{height:53px!important;padding:0 12px!important;display:flex!important;align-items:center!important;box-sizing:border-box}.leftCol-search .tree-search-box{height:36px!important;padding-top:0!important;padding-bottom:0!important;align-items:center}.leftCol-search .search-zip{height:36px!important;width:36px!important}}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:36px!important;background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(250,249,246,.9) 55%,#ece7df 100%)!important;box-shadow:inset -2px 0 0 rgba(40,32,24,.18)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(20,19,17,0) 0,rgba(20,19,17,.9) 55%,#2a2622 100%)!important;box-shadow:inset -2px 0 0 rgba(255,255,255,.18)!important}}@media (min-width:1100px){.paper-faq-help-card{margin-top:7px}}.hero-mock-count::before,.meta-redact::before,.mobile-sub b::before{background:#d9d1c3!important;box-shadow:inset 0 0 0 1px rgba(40,32,24,.12)!important}.dark-mode .hero-mock-count::before,.dark-mode .meta-redact::before,.dark-mode .mobile-sub b::before{background:#4a443d!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)!important}.viewer-bar .vb-signin,.viewer-bar .vb-signin:hover{background:var(--accent)!important;color:#fff!important;box-shadow:none!important;border:0!important}.viewer-bar .vb-signin:hover{filter:brightness(.94)}.dark-mode .viewer-bar .vb-signin,.dark-mode .viewer-bar .vb-signin:hover{background:#237a71!important;color:#fff!important}@media (min-width:992px){.paper-features,.paper-qa,.paper-section-head,.paper-stats{margin-top:72px!important}.demo{margin-bottom:0!important}.paper-qa{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;column-gap:20px!important}}.ace-chrome .ace_gutter-cell{color:#57524a!important}.dark-mode .ace_editor .ace_gutter-cell{color:#ada69b!important}.readme-toc a.lvl-3:not(.is-active){color:#57524a!important}.dark-mode .readme-toc a.lvl-3:not(.is-active){color:#ada69b!important}.paper-stat-delta,.paper-stats small{color:#57524a!important}.nav-heart-m,.nav-heart-m:focus,.nav-heart-m:hover{background:0 0!important;box-shadow:none!important;border:0!important}@media (min-width:992px){.paper-section-head+.paper-features{margin-top:32px!important}}@media (min-width:1100px){.paper-features{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;column-gap:20px!important}.paper-features>:first-child{padding-right:28px}}@media (min-width:1100px){.fm-input-sm{width:118px!important}.fm-row{gap:12px!important}.fm-toggles{flex-wrap:nowrap!important}}@media (min-width:768px){.viewer-bar .vb-right{gap:8px!important}.viewer-bar .vb-right>*{margin:0!important}.viewer-bar .vb-help-btn,.viewer-bar .vb-icon,.viewer-bar .vb-signin,.viewer-bar .vb-support{height:32px!important;min-height:32px!important;box-sizing:border-box}.viewer-bar .vb-icon{width:32px!important}.viewer-bar .vb-snapshot{margin-right:8px!important}}.dark-mode .hero-mock{background:#221f1c!important;box-shadow:0 0 0 1px rgba(255,255,255,.1),0 18px 40px -18px rgba(0,0,0,.7)!important}@media (min-width:768px){.viewer-bar .vb-right .vb-icon{width:32px!important;height:32px!important}}.pane-url .meta-redact{display:inline-flex;align-items:center;gap:6px;font-family:inherit}@media (min-width:768px){.file-card-head .tb-file,.tb-file{margin-left:16px!important}}.demo-panes .pane-header{height:40px!important;min-height:40px!important;box-sizing:border-box;display:flex;align-items:center;padding-top:0!important;padding-bottom:0!important}.files .file.active>a .tree-name{font-weight:500;color:var(--color)}.files .file.active>a{background:#e8e3db!important}.viewer-bar .vb-snapshot{font-size:12px!important;color:var(--ink-soft)!important;gap:5px!important}.dark-mode .files .file.active>a{background:rgba(255,255,255,.08)!important}.demo-terms .label,.demo-terms label,.fm-label,.pane-label{letter-spacing:0!important}@media (min-width:992px){.navbar .nav-link:not(.btn-signin){font-size:14px!important}}.paper-faq-toc a.active{color:var(--accent)!important;font-weight:500}.dark-mode .paper-faq-toc a.active{color:#7fcfc2!important}.paper-features .paper-feature.is-on .paper-feature-tab::after,.paper-features .paper-feature:not(.is-on) .paper-feature-tab::after{border-color:#57524a!important}.dark-mode .paper-features .paper-feature .paper-feature-tab::after{border-color:#ada69b!important}.paper-feature:not(.is-on) .paper-feature-tab:hover .paper-feature-title{color:var(--accent)}.dark-mode .ace_redacted,.dark-mode .redact-chip,.dark-mode .redact-slot{box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)!important}@media (min-width:768px){.file-card-meta{font-size:13px!important}}@media (min-width:768px){.file-card-head .btn-goto{order:1}.file-card-head .btn-toggle{order:2}.file-card-head .btn-find{order:3}.file-card-head .tb-file{order:4}.file-card-head .tb-copy-m,.file-card-head .tb-more-btn{order:5}}.leftCol-search .search-zip{width:auto!important;padding:0 9px!important;gap:4px;display:inline-flex!important;align-items:center;justify-content:center}.search-zip-label{font-size:11px;font-weight:600;letter-spacing:.02em}.navbar .nav-support,.navbar .nav-support-inline{font-weight:400!important;color:var(--ink-soft)!important}.files .file.active>a::before{left:0!important}.dark-mode .hero-mock{border-color:#3a3631!important}.dark-mode .hero-mock .hm-side,.dark-mode .hero-mock-side,.dark-mode .hero-mock-tree{background:#1e1c19!important}.paper-faq-lede{font-size:18px!important;line-height:1.55!important}@media (min-width:768px){.file-card-actions>.btn-ghost.btn-icon-only,.file-card-actions>.btn-toggle{height:32px!important;width:32px!important;min-height:32px!important;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center}}.tree-search-input::placeholder{color:#6e685f!important;opacity:1}.dark-mode .tree-search-input::placeholder{color:#9c958a!important}.tree-search-kbd{color:#57524a!important}.dark-mode .tree-search-kbd{color:#ada69b!important}@media (min-width:1100px){.paper-footer-inner{grid-template-columns:calc(50% - 10px) repeat(3,minmax(0,1fr))!important;column-gap:20px!important}.paper-footer-brand{max-width:420px}}.ace_search_counter,.find-count,.md-find-count{font-variant-numeric:tabular-nums}.demo-panes .pane-label,.demo-panes .pane-url{font-size:13px!important}.dark-mode .files .file.active>a{background:rgba(255,255,255,.1)!important}.demo-output .redact-chip{vertical-align:-.16em!important}.hero-mock .redact,span.redact{vertical-align:-.12em!important}.tb-seg-icon .ui-icon{width:16px!important;height:16px!important}.files .file.active>a{background:#e3ddd2!important}.files .file.active>a .redact-slot{background:#d0c7b7!important}.file-card-actions>.btn-find.is-on{box-shadow:inset 0 0 0 1px rgba(31,106,100,.55)!important;border-color:transparent!important}.demo-panes>:last-child .pane-header{background:#f3efe8!important}.dark-mode .demo-panes>:last-child .pane-header{background:#1f1c19!important}.demo-terms input:focus,.demo-terms textarea:focus{outline:0!important;border-color:var(--accent)!important;box-shadow:0 0 0 3px rgba(31,106,100,.18)!important}.markdown-body>h1:first-child{margin-top:8px!important;margin-bottom:24px!important}.tb-menu-label{padding:8px 14px 4px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#57524a}.dark-mode .tb-menu-label{color:#ada69b}.tb-menu .tb-menu-toc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px;display:block;text-align:left}.tb-menu .tb-menu-toc.lvl-3{padding-left:28px!important;color:#57524a}.dark-mode .tb-menu .tb-menu-toc.lvl-3{color:#ada69b}.files .file.active>a{background:#ece8e1!important}.files .file.active>a .redact-slot{background:var(--slot-bg)!important}.tb-menu{max-height:calc(100dvh - 120px);overflow-y:auto;overscroll-behavior:contain}.tb-menu .tb-menu-toc.is-active{color:var(--accent)!important;font-weight:500}.dark-mode .tb-menu .tb-menu-toc.is-active{color:#7fcfc2!important}.markdown-body>h1:first-child{margin-bottom:18px!important}@media (max-width:767px){.markdown-body>h1:first-child{margin-top:0!important;margin-bottom:14px!important}}.files .file.active>a{background:#e8e5dd!important}.tree-toggle::after{border-color:#7a746a!important}.dark-mode .tree-toggle::after{border-color:#8f887d!important}.dark-mode .hero-mock{box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 0 0 1px rgba(255,255,255,.1),0 18px 40px -18px rgba(0,0,0,.7)!important;background:#24211d!important}.paper-faq-lede{text-wrap:balance;max-width:640px}.pane-edit-hint{font-weight:400;color:#6e685f}.dark-mode .pane-edit-hint{color:#9c958a}.demo-panes>:first-child:focus-within,.demo-panes>:first-child:hover{border-color:#cfc7b9!important}.tb-menu .tb-menu-toc{white-space:normal!important;font-size:14px!important;line-height:1.35;padding-top:7px!important;padding-bottom:7px!important;max-width:none!important}.tb-menu .tb-menu-toc.lvl-3{padding-left:24px!important}.tb-menu-note{font-size:13px!important;color:#6e685f!important}.dark-mode .tb-menu-note{color:#9c958a!important}@media (max-width:767px){.tb-more:has(.tb-menu)::before{content:"";position:fixed;inset:0;background:rgba(26,24,21,.22);z-index:40}.tb-menu{z-index:41!important}}.paper-faq-help-card{border-radius:12px!important}.nav-theme-m{display:none}@media (max-width:991px){.nav-theme-m{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;background:0 0;color:var(--ink-soft);padding:0;margin-left:2px}.nav-theme-m .ui-icon{width:18px;height:18px}.navbar .nav-signin-m{height:32px!important;margin-left:6px!important}.nav-heart-m+.nav-theme-m{margin-left:2px}}@media (max-width:767px){.viewer-bar .vb-signin{height:32px!important}}.tb-menu .tb-menu-toc.lvl-2{padding-left:42px!important}.tb-menu .tb-menu-toc.lvl-3{padding-left:58px!important}.tb-menu-label{padding-left:42px!important}@media (max-width:991px){.navbar-collapse .nav-item:has(>.nav-icon){display:none!important}}.file-card-head .tb-menu>button.tb-menu-toc,.tb-menu>button.tb-menu-toc{font-size:14px!important;min-height:36px!important;padding-top:8px!important;padding-bottom:8px!important;line-height:1.35!important;height:auto!important}.tb-menu>.tb-menu-label{padding-left:40px!important}.tb-menu>button.tb-menu-toc.lvl-2{padding-left:40px!important}.tb-menu>button.tb-menu-toc.lvl-3{padding-left:56px!important}.tb-toc-m{display:none;position:relative}@media (max-width:767px){.tb-toc-m{display:inline-flex}.file-card-head .tb-toc-btn{box-shadow:none!important;background:0 0!important;width:36px;height:36px}.tb-toc-m .tb-menu{right:-44px;min-width:260px}.tb-toc-m:has(.tb-menu)::before{content:"";position:fixed;inset:0;background:rgba(26,24,21,.22);z-index:40}}.dark-mode .file-card-actions>.btn-find.is-on,.dark-mode .file-card-actions>.btn-toggle.is-on{box-shadow:inset 0 0 0 1px #7fcfc2!important;color:#7fcfc2!important}.tb-more:has(.tb-menu)::before,.tb-toc-m:has(.tb-menu)::before{pointer-events:none}.tb-toc-menu>.tb-menu-label{padding-left:16px!important}.tb-toc-menu>button.tb-menu-toc.lvl-2{padding-left:16px!important}.tb-toc-menu>button.tb-menu-toc.lvl-3{padding-left:32px!important}@media (max-width:767px){.tb-toc-m .tb-menu{right:-40px;max-width:calc(100vw - 28px)}}.files .tree-icon-file,.files .tree-icon-folder{width:16px!important;min-width:16px;display:inline-flex;justify-content:center}.ace_search .ace_button.checked,.ace_search .ace_button[aria-checked=true],.ace_search .ace_button[checked]{color:var(--accent)!important;box-shadow:inset 0 0 0 1px rgba(31,106,100,.55)!important;background:0 0!important}.dark-mode .ace_search .ace_button.checked,.dark-mode .ace_search .ace_button[aria-checked=true],.dark-mode .ace_search .ace_button[checked]{color:#7fcfc2!important;box-shadow:inset 0 0 0 1px #7fcfc2!important}.file-card-meta .sep{font-size:0!important;display:inline-block;width:0;margin:0 6px!important}@media (max-width:991px){.navbar .nav-heart-m{margin-left:auto!important}.navbar .nav-heart-m+.nav-theme-m{margin-left:4px!important}.navbar .nav-theme-m+.nav-signin-m{margin-left:4px!important}.navbar .navbar-toggler{margin-left:4px!important;margin-right:-6px}}.tb-more:has(.tb-menu)::before,.tb-toc-m:has(.tb-menu)::before{background:rgba(26,24,21,.1)!important}.dark-mode .tb-more:has(.tb-menu)::before,.dark-mode .tb-toc-m:has(.tb-menu)::before{background:rgba(0,0,0,.3)!important}.tb-more:has(.tb-menu)::before,.tb-toc-m:has(.tb-menu)::before{content:none!important}.tb-menu{box-shadow:0 12px 32px -8px rgba(26,24,21,.28),0 0 0 1px rgba(26,24,21,.08)!important}.tb-menu [role=menuitemcheckbox]{position:relative;padding-right:40px!important}.tb-menu [role=menuitemcheckbox][aria-checked=true]::after{content:"";position:absolute;right:18px;top:50%;width:10px;height:5px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:translateY(-70%) rotate(-45deg)}.tb-menu [role=menuitemcheckbox][aria-checked=true] .ui-icon{color:var(--accent)}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:20px!important}}.search-zip-label{font-size:12px!important;font-weight:500!important}.meta-redact::before,.mobile-sub b::before{box-shadow:inset 0 0 0 1px rgba(40,32,24,.22)!important}@media (max-width:767px){.file-card-actions>.tb-toc-m,.file-card-head .tb-toc-m{order:1!important}.file-card-actions>.tb-copy-m,.file-card-head .tb-copy-m{order:2!important}.file-card-actions>.tb-more,.file-card-head .tb-more{order:3!important}.file-card.is-code.no-wrap .file-card-body::after{width:26px!important;background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(250,249,246,.92) 60%,#eae5dc 100%)!important;box-shadow:inset -1px 0 0 rgba(40,32,24,.2)!important}}@media (max-width:767px){.ace_editor .ace_gutter-cell{padding-left:6px!important;padding-right:8px!important}}.files .redact-slot i{font-size:11px!important}.tb-menu-meta{padding-top:0!important;padding-left:42px!important}.pane-url .meta-redact{font-family:var(--font-sans,Inter,system-ui,sans-serif)!important;font-size:12px}@media (max-width:767px){.tb-toc-m .tb-menu{right:-76px!important}}@media (max-width:991px){.navbar .navbar-brand{font-size:18px!important;margin-right:16px!important}}.tb-menu .tb-menu-meta{white-space:nowrap;font-size:12px!important;padding-left:44px!important;padding-bottom:8px!important}.tb-menu .tb-menu-meta{padding-left:38px!important}.paper-cta{margin-top:72px;margin-bottom:72px;padding:40px 0;border-top:1px solid var(--border-color);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:20px;align-items:center}.paper-cta h2{font-family:var(--font-serif);font-size:40px;line-height:1.05;letter-spacing:-.01em;margin:0 0 10px;color:var(--color);font-weight:400}.paper-cta p{margin:0;color:var(--ink-soft);font-size:16px;max-width:440px}.paper-cta-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.paper-cta-actions .btn-hero{display:inline-flex;align-items:center;gap:10px}@media (max-width:991px){.paper-cta{grid-template-columns:1fr;row-gap:20px;margin-top:56px;margin-bottom:40px}.paper-cta h2{font-size:32px}}.tb-menu .tb-menu-meta,.tb-menu-note{color:#57524a!important}.dark-mode .tb-menu .tb-menu-meta,.dark-mode .tb-menu-note{color:#ada69b!important}.paper-cta{margin-bottom:40px!important;padding-bottom:40px!important}.ace_search .ace_search_field{height:32px!important;box-sizing:border-box;border:1px solid var(--control-border,#cfc7b9)!important;box-shadow:none!important}.ace_search .ace_search_field:focus-visible{border-color:var(--accent)!important;box-shadow:0 0 0 3px rgba(31,106,100,.16)!important}.ace_search .ace_button,.ace_search .ace_searchbtn,.ace_search .ace_searchbtn_close{height:32px!important;min-height:32px!important;box-sizing:border-box;display:inline-flex!important;align-items:center;justify-content:center}.ace_search .ace_searchbtn_close{width:32px!important;border-radius:6px}.ace_search .ace_searchbtn_close:hover{background:var(--hover-bg-color)!important}.file-card-head .tb-toc-btn.is-on{background:0 0!important;box-shadow:inset 0 0 0 1px rgba(31,106,100,.55)!important;color:var(--accent)!important}@media (min-width:1100px){.readme-toc{top:110px!important;margin-top:-28px!important}}@media (min-width:1100px){.paper-faq-help-card{margin-top:2px!important}}@media (min-width:1100px){.readme-toc{top:92px!important}}@media (min-width:1100px){.paper-hero{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;column-gap:40px!important;overflow:visible}.paper-hero-shot{margin-right:calc((100vw - 100%)/ -2 + 0px);margin-right:min(-24px,calc((1076px - 100vw)/ 2))}.paper-hero-shot .paper-frame{border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-right:0!important}.hero-mock{font-size:14px;min-height:420px}.hero-mock-row{font-size:13.5px!important}.hero-mock-doc-bar span{font-size:13px!important}.paper-landing{overflow-x:clip}}@media (min-width:1100px){.hero-mock{min-height:0!important}}.dark-mode .markdown-body pre code mark.redact-chip,.markdown-body pre code mark.redact-chip,pre code mark.redact-chip{display:inline-block!important;box-sizing:border-box!important;overflow:hidden!important;width:var(--slot-ch,6ch)!important;min-width:0!important;height:1.2em!important;margin:0!important;padding:0 .4ch!important;vertical-align:-.24em!important;font-size:inherit!important;line-height:1.2em!important;text-align:right!important}.markdown-body pre code mark.redact-chip i,pre code mark.redact-chip i{font-size:.8em!important;line-height:inherit!important;vertical-align:top!important}@media (max-width:1199px){.reading-layout{grid-template-columns:minmax(0,760px)!important}}@media (max-width:767px){.reading-layout{grid-template-columns:minmax(0,1fr)!important;padding:0 16px!important}}.reading-layout>.file-content.markdown-body{min-width:0!important;max-width:100%!important}.paper-cta{border-top:0!important;padding-top:0!important;padding-bottom:0!important;margin-top:96px!important;margin-bottom:88px!important}.paper-cta+.paper-footer{margin-top:0!important}@media (max-width:991px){.paper-cta{margin-top:72px!important;margin-bottom:64px!important}}@media (max-width:767px){.dashboard-heading-actions .dashboard-quota .quota-panel{left:0!important;right:auto!important;width:calc(100vw - 36px)!important}}@media (max-width:767px){.errors-page .errors-toolbar{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px!important;align-items:center}.errors-page .errors-toolbar .seg-tabs{grid-column:1/-1;display:flex!important;width:100%}.errors-page .errors-toolbar .seg-tabs button{flex:1 1 0}.errors-page .errors-toolbar .search-wrap{grid-column:1/-1;max-width:none!important;min-width:0!important;width:100%}.errors-page .errors-toolbar .select-wrap{display:flex!important;min-width:0}.errors-page .errors-toolbar .select-wrap select{flex:1 1 auto;min-width:0!important;width:100%!important;max-width:none!important}.errors-page .errors-toolbar .autoref{grid-column:1}.errors-page .errors-toolbar>.btn-icon{grid-column:2;justify-self:end}}.overview-page .ov-views{display:inline-flex;gap:2px;padding:3px;margin:4px 0 16px;border-radius:9px;background:var(--paper-sunk,rgba(0,0,0,.05))}.overview-page .ov-views button{border:0;background:0 0;padding:6px 14px;border-radius:7px;font:500 13.5px var(--font-sans);color:var(--ink-soft);cursor:pointer}.overview-page .ov-views button:hover{color:var(--color)}.overview-page .ov-views button.active{background:var(--paper-card,#fff);color:var(--color);box-shadow:0 1px 2px rgba(0,0,0,.08)}.dark-mode .overview-page .ov-views{background:rgba(255,255,255,.06)}.dark-mode .overview-page .ov-views button.active{background:rgba(255,255,255,.1);box-shadow:none}@media (max-width:767px){.overview-page .ov-views{display:flex}.overview-page .ov-views button{flex:1 1 0}.admin-page.overview-page section.ov-chart-row,.admin-page.overview-page section.ov-triple-row{grid-template-columns:minmax(0,1fr)!important}}@media (max-width:991.98px){.navbar .navbar-collapse{padding:8px 10px 12px!important}.navbar .navbar-collapse .navbar-nav{gap:2px!important;margin:0!important;padding:0!important}.navbar .navbar-collapse .nav-item{margin:0!important;padding:0!important;width:100%!important}.navbar .navbar-collapse .nav-link,.navbar .navbar-collapse .user-menu .dropdown-item{display:flex!important;align-items:center!important;gap:12px!important;width:100%!important;min-height:44px;padding:10px 12px!important;margin:0!important;border:0!important;border-radius:8px!important;font:500 15px/1.2 var(--font-sans)!important;color:var(--color)!important;background:0 0!important;box-shadow:none!important;text-decoration:none!important;white-space:normal}.navbar .navbar-collapse .nav-link::after,.navbar .navbar-collapse .nav-link::before{display:none!important}.navbar .navbar-collapse .nav-link:hover,.navbar .navbar-collapse .user-menu .dropdown-item:hover{background:rgba(0,0,0,.04)!important}.navbar .navbar-collapse .nav-link.active{background:rgba(0,0,0,.06)!important;font-weight:600!important}.dark-mode .navbar .navbar-collapse .nav-link:hover,.dark-mode .navbar .navbar-collapse .user-menu .dropdown-item:hover{background:rgba(255,255,255,.05)!important}.dark-mode .navbar .navbar-collapse .nav-link.active{background:rgba(255,255,255,.08)!important}.navbar .navbar-collapse .nav-link .ui-icon,.navbar .navbar-collapse .user-menu .dropdown-item .fab,.navbar .navbar-collapse .user-menu .dropdown-item .ui-icon{flex:none;width:18px!important;height:18px!important;margin:0!important;color:var(--ink-soft)!important;font-size:16px;text-align:center}.navbar .navbar-collapse .nav-signin-item{display:none!important}.navbar .navbar-collapse .user-chip-wrap{margin-top:8px!important;padding-top:8px!important;border-top:1px solid var(--border-color)!important}.navbar .navbar-collapse .user-chip{pointer-events:none;font-weight:600!important}.navbar .navbar-collapse .user-chip img{width:24px!important;height:24px!important;margin:-3px 0!important}.navbar .navbar-collapse .user-menu{display:block!important;position:static!important;transform:none!important;float:none!important;min-width:0!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;background:0 0!important}.navbar .navbar-collapse .user-menu .dropdown-header,.navbar .navbar-collapse .user-menu .um-extra{display:none!important}.navbar .navbar-collapse .user-menu .dropdown-item small{display:none!important}.navbar .navbar-collapse .user-menu .dropdown-item span{display:inline!important}.navbar .navbar-collapse .user-menu .dropdown-divider{margin:6px 12px!important}}.paper-table .paper-table-row.repo-inactive>:not(.cell-actions){opacity:1!important}.paper-table .paper-table-row.repo-inactive .cell-anon,.paper-table .paper-table-row.repo-inactive .cell-expires,.paper-table .paper-table-row.repo-inactive .cell-views,.paper-table .paper-table-row.repo-inactive .status-sub{opacity:.55}.paper-table .paper-table-row.repo-inactive .repo-name{color:var(--ink-soft)!important}.status-line.status-ended{display:inline-flex!important;align-items:center;gap:5px;padding:2px 8px 2px 6px;border-radius:999px;background:rgba(0,0,0,.06);color:var(--ink-soft)}.status-line.status-ended .status-word{font-size:12.5px!important;font-weight:600!important;color:inherit!important}.status-line.status-ended .status-ended-icon{width:13px;height:13px;flex:none}.status-line.status-ended-expired{background:rgba(245,158,11,.1);color:#b45309}.dark-mode .status-line.status-ended{background:rgba(255,255,255,.08);color:var(--ink-soft)}.dark-mode .status-line.status-ended-expired{background:rgba(245,158,11,.16);color:#fbbf24}.ended-link{font-size:12.5px;color:var(--ink-muted,var(--ink-soft));font-style:italic;white-space:nowrap;margin-right:4px}.ended-action{border:1px solid var(--control-border,var(--border-color));background:0 0;color:var(--color);border-radius:7px;padding:4px 10px;font:500 12.5px var(--font-sans);cursor:pointer;white-space:nowrap}.ended-action:hover{background:rgba(0,0,0,.04)}.dark-mode .ended-action:hover{background:rgba(255,255,255,.06)}.ended-row{display:inline-flex;align-items:center;gap:8px;margin-right:6px}@media (max-width:767px){.paper-table-dashboard .cell-actions>.ended-row{grid-area:link;display:flex;justify-content:space-between;width:100%;margin:0;padding:6px 6px 6px 12px;border-radius:8px;border:1px dashed var(--border-color)}.paper-table-dashboard .paper-table-row.repo-inactive .cell-expires{display:none!important}}input.form-control[type=date]{-webkit-appearance:none;appearance:none;display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:40px;min-height:40px;line-height:1.25;text-align:left}input.form-control[type=date]::-webkit-date-and-time-value{text-align:left;margin:0;min-height:1.25em}input.form-control[type=date]::-webkit-datetime-edit{padding:0}.hosting-date>input.form-control[type=date]{justify-self:stretch}.paper-table-dashboard .cell-actions>.copy-url{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:36px!important;height:36px!important;min-width:0!important;max-width:none!important;padding:0!important;margin:0!important;border:0!important;border-radius:8px!important;background:0 0!important;color:var(--ink-soft)!important;box-shadow:none!important}.paper-table-dashboard .cell-actions>.copy-url:hover{background:rgba(0,0,0,.05)!important;color:var(--color)!important}.dark-mode .paper-table-dashboard .cell-actions>.copy-url:hover{background:rgba(255,255,255,.07)!important}.paper-table-dashboard .cell-actions>.copy-url .project-type-svg{width:18px;height:18px;margin:0!important}@media (max-width:767px){.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(0,1fr) auto auto auto!important;grid-template-areas:"name copy edit more" "meta meta meta meta"!important}.paper-table.paper-table-dashboard .paper-table-row.repo-inactive{grid-template-areas:"name copy edit more" "meta meta meta meta" "link link link link"!important}.paper-table-dashboard .cell-actions>.copy-url{grid-area:copy;align-self:start;width:40px!important;height:40px!important;margin-top:-4px!important;justify-self:auto!important}}.paper-table-dashboard .cell-actions>.copy-url .project-type-svg{width:16px!important;height:16px!important}@media (max-width:767px){.paper-table-dashboard .anon-title{min-width:0}.paper-table.paper-table-dashboard .anon-title .repo-name{display:block!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;word-break:normal!important;overflow-wrap:normal!important}}.ace_editor .ace_marker-layer .ace_selection,.dark-mode .ace_editor .ace_marker-layer .ace_selection{box-shadow:none!important;border-radius:0!important}.ace_editor .ace_marker-layer .ace_selection.ace_br15{box-shadow:inset 0 0 0 1px rgba(170,115,15,.75)!important;border-radius:3px!important}.dark-mode .ace_editor .ace_marker-layer .ace_selection.ace_br15{box-shadow:inset 0 0 0 1px rgba(240,200,90,.7)!important}.ace_editor.ace-chrome .ace_marker-layer .ace_selection,.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection{box-shadow:none!important;border-radius:0!important}.ace_editor.ace-chrome .ace_marker-layer .ace_selection.ace_br15{box-shadow:inset 0 0 0 1px rgba(170,115,15,.75)!important;border-radius:3px!important}.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection.ace_br15{box-shadow:inset 0 0 0 1px rgba(240,200,90,.7)!important;border-radius:3px!important}.file-card .file-card-head{position:relative}.file-card:not(.is-code) .file-card-head{position:sticky}.goto-pop{position:absolute;z-index:30;top:calc(100% + 6px);right:12px;width:260px;max-width:calc(100vw - 24px);margin:0;padding:12px;display:grid;gap:6px;background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 12px 32px rgba(26,24,21,.16)}.dark-mode .goto-pop{box-shadow:0 12px 32px rgba(0,0,0,.5)}.goto-label{margin:0;font:600 12.5px var(--font-sans);color:var(--color)}.goto-input{width:100%;height:36px;padding:0 10px;border:1px solid var(--control-border,var(--border-color));border-radius:7px;background:var(--bg-color,transparent);color:var(--color);font:500 14px var(--font-mono,ui-monospace,monospace);outline:0}.goto-input:focus{border-color:var(--accent,#1f6b66);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,#1f6b66) 22%,transparent)}.goto-input[aria-invalid=true]{border-color:#b91c1c}.goto-hint{font-size:12px;color:var(--ink-soft)}.goto-hint.is-error{color:#b91c1c}.dark-mode .goto-input[aria-invalid=true]{border-color:#f87171}.dark-mode .goto-hint.is-error{color:#f87171}.anonymize-form-col .anonymize-submit-bar:has(>.checkout-return-note){flex-wrap:wrap!important;row-gap:6px!important}.anonymize-submit-bar .checkout-return-note{order:3;flex:1 0 100%;margin:0!important;font-size:12px;text-align:center;white-space:normal}.paper-table{overflow:visible!important}.paper-table>.paper-table-head{border-top-left-radius:inherit;border-top-right-radius:inherit}.paper-table>:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit} \ No newline at end of file + */.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\e05e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hive:before{content:"\e07f"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\e065"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\e013"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-innosoft:before{content:"\e080"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\e066"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\e01a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\e068"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-perbyte:before{content:"\e083"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rust:before{content:"\e07a"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\e057"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sink:before{content:"\e06d"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\e070"}.fa-store-slash:before{content:"\e071"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tiktok:before{content:"\e07b"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-uncharted:before{content:"\e084"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\e074"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-watchman-monitoring:before{content:"\e087"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:'Font Awesome 5 Brands';font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:'Font Awesome 5 Brands';font-weight:400}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-regular-400.eot);src:url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.woff) format("woff"),url(../fonts/fa-regular-400.ttf) format("truetype"),url(../fonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:'Font Awesome 5 Free';font-weight:400}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:block;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'Font Awesome 5 Free';font-weight:900}.nb-notebook{line-height:1.5}.nb-stderr,.nb-stdout{white-space:pre-wrap;margin:1em 0;padding:.1em .5em}.nb-stderr{background-color:#faa}.nb-cell+.nb-cell{margin-top:.5em}.nb-output table{border:1px solid #000;border-collapse:collapse}.nb-output th{font-weight:700}.nb-output td,.nb-output th{border:1px solid #000;padding:.25em;text-align:left;vertical-align:middle;border-collapse:collapse}.nb-notebook blockquote{border-left:5px solid #ccc;margin-left:0;padding-left:1em}.nb-cell{position:relative}.nb-raw-cell{white-space:pre-wrap;background-color:#f5f2f0;font-family:Consolas,Monaco,'Andale Mono',monospace;padding:1em;margin:.5em 0}.nb-output{min-height:1em;width:100%;overflow-x:scroll;border-right:1px dotted #ccc}.nb-output img{max-width:100%}.nb-input:before,.nb-output:before{position:absolute;font-family:monospace;color:#999;left:-7.5em;width:7em;text-align:right}.nb-input:before{content:"In [" attr(data-prompt-number) "]:"}.nb-output:before{content:"Out [" attr(data-prompt-number) "]:"}// Fix pandas dataframe formatting div[style="max-height:1000px;max-width:1500px;overflow:auto;"]{max-height:none!important}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,math,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.18.10"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.katex-newline{display:block}.katex .katex-base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .katex-base,.katex .katex-strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .katex-vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .katex-thinbox{display:inline-flex;flex-direction:row;max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .katex-hdashline,.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-rule,.katex .katex-underline .underline-line,.katex .mfrac .frac-line{min-height:1px}.katex .mspace{display:inline-block}.katex .katex-smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.katex-inner,.katex .llap>.katex-inner,.katex .rlap>.katex-inner{position:absolute}.katex .clap>.katex-fix,.katex .llap>.katex-fix,.katex .rlap>.katex-fix{display:inline-block}.katex .llap>.katex-inner{right:0}.katex .clap>.katex-inner,.katex .rlap>.katex-inner{left:0}.katex .clap>.katex-inner>span{margin-left:-50%;margin-right:50%}.katex .katex-rule{border:0 solid;display:inline-block;position:relative}.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .katex-hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.katex-root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .katex-sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .katex-sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .katex-sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .katex-sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .katex-sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .katex-sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .katex-sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .katex-sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .katex-sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .katex-sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .katex-sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .katex-sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .katex-sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .katex-sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .katex-sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .katex-sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .katex-sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .katex-sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .katex-sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .katex-sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .katex-sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .katex-sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .katex-sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .katex-sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .katex-sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .katex-sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .katex-sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .katex-sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .katex-sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .katex-sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .katex-sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .katex-sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .katex-sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .katex-sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .katex-sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .katex-sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .katex-sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .katex-sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .katex-sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .katex-sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .katex-sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .katex-sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .katex-sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .katex-sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .katex-sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .katex-sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .katex-sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .katex-sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .katex-sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .katex-sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .katex-sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .katex-sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .katex-sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .katex-sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .katex-sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .katex-sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .katex-sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .katex-sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .katex-sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .katex-sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .katex-sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .katex-sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .katex-sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .katex-sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .katex-sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .katex-sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .katex-sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .katex-sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .katex-sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .katex-sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .katex-sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .katex-sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .katex-sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .katex-sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .katex-sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .katex-sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .katex-sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .katex-sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .katex-sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .katex-sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .katex-sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .katex-sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .katex-sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .katex-sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .katex-sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .katex-sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .katex-sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .katex-sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .katex-sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .katex-sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .katex-sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .katex-sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .katex-sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .katex-sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .katex-sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .katex-sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .katex-sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .katex-sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .katex-sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .katex-sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .katex-sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .katex-sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .katex-sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .katex-sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .katex-sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .katex-sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .katex-sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .katex-sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .katex-sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .katex-sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .katex-sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .katex-sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .katex-sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .katex-sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .katex-sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .katex-sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .katex-sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .katex-sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .katex-sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .katex-sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .katex-sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .katex-accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .katex-accent .accent-body{position:relative}.katex .katex-accent .accent-body:not(.accent-full){width:0}.katex .katex-overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .katex-stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .katex-stretchy:after,.katex .katex-stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .katex-sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .reflectbox{display:inline-block;transform:scaleX(-1)}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.katex-tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.katex-tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}.mermaid{text-align:center;margin:1em 0;overflow:auto}.mermaid svg{max-width:100%;height:auto}.dark-mode .mermaid{filter:invert(1) hue-rotate(180deg)}.dark-mode .mermaid svg{background:0 0}.dark-mode .mermaid .edgeLabel,.dark-mode .mermaid .nodeLabel{filter:invert(1) hue-rotate(180deg)}.mermaid .node circle,.mermaid .node ellipse,.mermaid .node polygon,.mermaid .node rect{stroke-width:2px}.mermaid .flowchart-link{stroke-width:2px}.mermaid .actor{fill:#f9f9f9;stroke:#333;stroke-width:2px}.mermaid .messageLine0,.mermaid .messageLine1{stroke:#333;stroke-width:1.5px}.mermaid .section0,.mermaid .section1,.mermaid .section2,.mermaid .section3{opacity:.8}.mermaid .pieChart .slice{opacity:.9}.markdown-body .mermaid{background:0 0;border:none;padding:10px}.mermaid .error{color:#d32f2f;font-family:monospace;font-size:12px;padding:10px;border:1px solid #d32f2f;border-radius:4px;background-color:#ffebee}@font-face{font-family:octicons-link;src:url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format('woff')}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.5;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body .pl-c{color:#6a737d}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:#005cc5}.markdown-body .pl-e,.markdown-body .pl-en{color:#6f42c1}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:#24292e}.markdown-body .pl-ent{color:#22863a}.markdown-body .pl-k{color:#d73a49}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:#032f62}.markdown-body .pl-smw,.markdown-body .pl-v{color:#e36209}.markdown-body .pl-bu{color:#b31d28}.markdown-body .pl-ii{color:#fafbfc;background-color:#b31d28}.markdown-body .pl-c2{color:#fafbfc;background-color:#d73a49}.markdown-body .pl-c2::before{content:"^M"}.markdown-body .pl-sr .pl-cce{font-weight:700;color:#22863a}.markdown-body .pl-ml{color:#735c0f}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{font-weight:700;color:#005cc5}.markdown-body .pl-mi{font-style:italic;color:#24292e}.markdown-body .pl-mb{font-weight:700;color:#24292e}.markdown-body .pl-md{color:#b31d28;background-color:#ffeef0}.markdown-body .pl-mi1{color:#22863a;background-color:#f0fff4}.markdown-body .pl-mc{color:#e36209;background-color:#ffebda}.markdown-body .pl-mi2{color:#f6f8fa;background-color:#005cc5}.markdown-body .pl-mdr{font-weight:700;color:#6f42c1}.markdown-body .pl-ba{color:#586069}.markdown-body .pl-sg{color:#959da5}.markdown-body .pl-corl{text-decoration:underline;color:#032f62}.markdown-body .octicon{display:inline-block;vertical-align:text-top;fill:currentColor}.markdown-body a{background-color:transparent;-webkit-text-decoration-skip:objects}.markdown-body a:active,.markdown-body a:hover{outline-width:0}.markdown-body strong{font-weight:inherit}.markdown-body strong{font-weight:bolder}.markdown-body h1{font-size:2em;margin:.67em 0}.markdown-body img{border-style:none}.markdown-body svg:not(:root){overflow:hidden}.markdown-body hr{box-sizing:content-box;height:0;overflow:visible}.markdown-body input{font:inherit;margin:0}.markdown-body input{overflow:visible}.markdown-body [type=checkbox]{box-sizing:border-box;padding:0}.markdown-body *{box-sizing:border-box}.markdown-body input{font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body a{color:#0366d6;text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body strong{font-weight:600}.markdown-body hr{height:0;margin:15px 0;overflow:hidden;background:0 0;border:0;border-bottom:1px solid #dfe2e5}.markdown-body hr::before{display:table;content:""}.markdown-body hr::after{display:table;clear:both;content:""}.markdown-body table{border-spacing:0;border-collapse:collapse}.markdown-body td,.markdown-body th{padding:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:0;margin-bottom:0}.markdown-body h1{font-size:32px;font-weight:600}.markdown-body h2{font-size:24px;font-weight:600}.markdown-body h3{font-size:20px;font-weight:600}.markdown-body h4{font-size:16px;font-weight:600}.markdown-body h5{font-size:14px;font-weight:600}.markdown-body h6{font-size:12px;font-weight:600}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body blockquote{margin:0}.markdown-body ol,.markdown-body ul{padding-left:0;margin-top:0;margin-bottom:0}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code{font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px}.markdown-body .octicon{vertical-align:text-bottom}.markdown-body .pl-0{padding-left:0!important}.markdown-body .pl-1{padding-left:4px!important}.markdown-body .pl-2{padding-left:8px!important}.markdown-body .pl-3{padding-left:16px!important}.markdown-body .pl-4{padding-left:24px!important}.markdown-body .pl-5{padding-left:32px!important}.markdown-body .pl-6{padding-left:40px!important}.markdown-body::before{display:table;content:""}.markdown-body::after{display:table;clear:both;content:""}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:0}.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:solid 1px #c6cbd1;border-bottom-color:#959da5;border-radius:3px;box-shadow:inset 0 -1px 0 #959da5}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1{padding-bottom:.3em;font-size:2em;border-bottom:1px solid #eaecef}.markdown-body h2{padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid #eaecef}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#6a737d}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;overflow:auto}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body code{padding:0;padding-top:.2em;padding-bottom:.2em;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:3px}.markdown-body .full-commit .btn-outline:not(:disabled):hover{color:#005cc5;border-color:#005cc5}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:solid 1px #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px 0 #c6cbd1}.markdown-body :checked+.radio-label{position:relative;z-index:1;border-color:#0366d6}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item+.task-list-item{margin-top:3px}.markdown-body .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}.markdown-body hr{border-bottom-color:#eee}.dark-mode{--canvas-bg-color:#161412;--sidebar-bg-color:#1C1A17;--main-bg-color:#161412;--header-bg-color:#161412;--hover-bg-color:rgba(255, 255, 255, 0.05);--header-color:#FAF9F6;--color:#D6D1C5;--link-color:#7CC7BE;--link-hover-color:#A8DDD6;--border-color:#423D37;--border-soft:#2A2825;--btn-color:#FAF9F6;--input-color:#E6E1D8;--input-bg:#25231F;--primary-bg:#FAF9F6;--primary-hover-bg:#FFFFFF;--primary-color:#1A1815;--primary-active-color:#1A1815;--accent:#7CC7BE;--accent-soft:rgba(124, 199, 190, 0.12);--ink-muted:#A39D92;--ink-faint:#8A857C;--ink-soft:#B5AFA2;--status-ready:#5FB27A;--status-progress:#E0A94A;--status-error:#F08A82;--status-inactive:#8A857C;--status-error-soft:rgba(240, 138, 130, 0.08);--status-error-soft-hover:rgba(240, 138, 130, 0.14);--admin-nav-bg:#1A1918;--admin-nav-active:rgba(124, 199, 190, 0.12);--admin-stat-bg:#25231F;--paper-card:#2C2925;--paper-bg-alt:#211E1B;--highlight:#3A341E;background-color:var(--canvas-bg-color);color:var(--color)}body{--canvas-bg-color:#FAF9F6;--sidebar-bg-color:#FFFFFF;--header-bg-color:#FAF9F6;--header-color:#1A1815;--main-bg-color:#FAF9F6;--hover-bg-color:rgba(26, 24, 21, 0.05);--input-color:#1A1815;--color:#1A1815;--link-color:#1F6A64;--link-hover-color:#17544F;--border-color:#E6E1D8;--border-soft:#EDE9E1;--btn-color:#1A1815;--input-bg:#FFFFFF;--primary-bg:#1A1815;--primary-hover-bg:#000000;--primary-color:#FAF9F6;--primary-active-color:#FAF9F6;--accent:#1F6A64;--accent-soft:#E4F0EE;--ink-muted:#6F6A61;--ink-faint:#8A857C;--ink-soft:#4A4641;--paper-bg-alt:#F3F1EC;--paper-card:#FFFFFF;--highlight:#FFF3C4;--status-ready:#2F7A44;--status-progress:#946512;--status-error:#B42318;--status-inactive:#8A857C;--status-error-soft:rgba(180, 35, 24, 0.04);--status-error-soft-hover:rgba(180, 35, 24, 0.08);--radius-control:6px;--radius-button:8px;--button-height:36px;--button-font-size:14px;--button-line-height:20px;--button-padding-x:13px;--button-compact-height:32px;--radius-surface:10px;--font-serif:'Instrument Serif','Iowan Old Style',Georgia,serif;--font-sans:'Inter',ui-sans-serif,system-ui,-apple-system,sans-serif;--font-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;background-color:var(--canvas-bg-color);color:var(--color);font-family:var(--font-sans);font-size:14px;letter-spacing:-.005em;line-height:1.5}.fadeIn{opacity:1;animation-name:fadeInOpacity;animation-iteration-count:1;animation-timing-function:ease-in;animation-duration:.6s}@keyframes fadeInOpacity{0%{opacity:0}100%{opacity:1}}.btn:active,.btn:focus{box-shadow:none}:focus:not(:focus-visible){outline:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:focus-visible,.dropdown-item:focus-visible,.form-control:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:none}input:active,input:hover{box-shadow:none!important}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:focus,textarea:-webkit-autofill:hover{border-color:var(--border-color);-webkit-text-fill-color:var(--color);-webkit-box-shadow:none;transition:background-color 1000s ease-in-out 0s}.custom-select,.form-control,input:-internal-autofill-selected{color:var(--input-color);background-color:var(--input-bg)!important;border-color:var(--border-color)}.form-control:focus{border-color:var(--border-color)}body,html{position:relative;height:100%;overflow-x:hidden}body{overflow-y:hidden}#app{flex:1 1 auto;min-height:0}.app-header{flex:0 0 auto}@media (min-width:992px){.app-header.is-contained .navbar{padding-left:max(40px,calc((100% - 1140px)/ 2 + 32px))!important;padding-right:max(40px,calc((100% - 1140px)/ 2 + 32px))!important}}.app-view{display:block;flex:1 1 auto;min-height:0;overflow-x:hidden!important;overflow-y:auto!important;max-width:100%}.markdown-body a,a{color:var(--link-color)}.markdown-body a:hover,a:hover{text-decoration:none;color:var(--link-hover-color)}.dropdown-menu a.dropdown-item{color:var(--color)}.dropdown-menu a.dropdown-item:hover{color:var(--color);text-decoration:none}.markdown-body .emoji{height:1.3em;margin:0;vertical-align:-.1em}.navbar.navbar-expand-lg{background:var(--header-bg-color)!important;border-bottom:1px solid var(--border-color);transition:background-color .5s ease;padding:10px max(20px,calc((100vw - 1200px)/ 2));font-family:var(--font-sans)}.navbar-toggler{border:1px solid var(--border-color)!important;color:var(--color)!important;width:44px;height:40px;padding:0!important;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-control)!important}.navbar-toggler .navbar-toggler-icon{width:22px;height:22px}.navbar-toggler .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%231A1815' stroke-width='2' stroke-linecap='round' d='M4 8h22M4 15h22M4 22h22'/%3E%3C/svg%3E")!important}.navbar .navbar-nav{align-items:center}.navbar .nav-link{display:inline-flex;align-items:center;font-size:13px;color:var(--ink-muted)!important;padding:6px 0!important;margin:0 12px;border-bottom:1px solid transparent;letter-spacing:-.005em;line-height:1}.navbar .nav-link:hover{color:var(--color)!important}.navbar .nav-link.active{color:var(--color)!important;border-bottom-color:var(--color)}.navbar .nav-link.nav-icon{padding:0!important;margin:0 8px;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px}.navbar .nav-link .fa,.navbar .nav-link .fab{font-size:15px;line-height:1}.navbar #navbarSupportedContent{align-items:center}.navbar-brand{font-family:var(--font-serif)!important;font-size:20px!important;letter-spacing:-.01em;color:var(--color)!important;padding-right:18px;margin-right:12px;border-right:1px solid var(--border-color)}.navbar-brand em,.navbar-brand i{font-style:italic;font-weight:400}.navbar-dark .navbar-toggler{border-color:var(--border-color);color:var(--color)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%231A1815' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar .btn-signin{display:inline-flex;align-items:center;height:32px;padding:0 14px!important;margin-left:6px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--color)!important;border-radius:var(--radius-control);font-size:13px;font-weight:500;line-height:1}.dark-mode .navbar .btn-signin{border-color:#5a554d;background:0 0}.navbar .btn-signin:hover{background:var(--hover-bg-color);border-color:var(--ink-faint);color:var(--color)!important}.navbar .nav-support{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;order:3;gap:6px;min-height:32px;margin-left:4px;padding:0 10px;border:1px solid transparent;border-radius:var(--radius-control);color:var(--ink-muted);font-size:13px;font-weight:500;text-decoration:none}.navbar .nav-support:hover{background:var(--hover-bg-color);color:var(--color)}.navbar button.nav-link{background:0 0;border:0;cursor:pointer}.navbar .nav-link:focus-visible,.navbar .nav-support:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-control)}.navbar .nav-signin-m{display:none}@media (min-width:992px){.navbar>.nav-support{display:none!important}}.navbar .nav-support-inline{display:inline-flex!important;align-items:center;gap:6px}.navbar .nav-support-inline .ui-icon{width:15px;height:15px}@media (max-width:991px){.navbar .nav-signin-m{display:inline-flex;align-items:center;order:0;height:40px;padding:0 14px;margin-left:0;margin-right:8px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);color:var(--color);font-size:13px;font-weight:500;text-decoration:none}.navbar .nav-support{order:0;width:44px;min-height:44px;margin:0 8px 0 auto;padding:0}.navbar .nav-support-label{display:none}}.navbar .user-chip{display:inline-flex!important;align-items:center;gap:8px;padding:4px 12px 4px 6px!important;margin-left:6px;border:1px solid var(--border-color);border-radius:999px;background:var(--sidebar-bg-color);font-size:13px;color:var(--color)!important}.navbar .user-chip:hover{background:var(--hover-bg-color)}.navbar .user-chip img{width:22px;height:22px}.navbar .user-chip .user-chip-name{color:var(--color);font-weight:500}.navbar .user-chip::after{color:var(--ink-muted)}#navbarSupportedContent{padding-right:0}.generalMessage{display:block;text-align:center;color:var(--header-color)}.rgba-gradient{background:var(--canvas-bg-color);color:var(--color)}.paper-landing{overflow-x:clip}.paper-wrap{width:min(1076px,calc(100% - 64px));margin-left:auto;margin-right:auto;padding-left:0;padding-right:0}.paper-eyebrow{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);font-weight:500}.paper-hero{max-width:1140px;margin:0 auto;padding:40px 32px 0;display:grid;grid-template-columns:.95fr 1.05fr;gap:48px;align-items:center}.paper-hero h1.hero-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.6rem,5.4vw,4.4rem);line-height:1.02;letter-spacing:-.025em;margin:14px 0 0;color:var(--color);text-wrap:balance}.paper-hero h1 .accent{color:var(--accent);font-style:italic}.hero-subtitle{margin-top:18px;font-size:18px;line-height:1.55;color:var(--ink-soft);max-width:30em;text-wrap:pretty}.paper-cta-row{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin-top:26px}.btn-hero{display:inline-flex;align-items:center;font-family:var(--font-sans);border:1px solid var(--color);background:var(--color);color:var(--canvas-bg-color);padding:12px 20px;font-size:14px;font-weight:500;border-radius:var(--radius-control);letter-spacing:-.005em;transition:background .15s,border-color .15s,transform .1s}.btn-hero:hover{background:var(--primary-hover-bg);border-color:var(--primary-hover-bg);color:var(--canvas-bg-color);text-decoration:none;transform:translateY(-1px)}.btn-hero-ghost{background:0 0;border:1px solid var(--border-color);color:var(--color);padding:12px 20px;font-size:14px;font-weight:500;border-radius:var(--radius-control)}.btn-hero-ghost:hover{background:var(--hover-bg-color);border-color:var(--color);color:var(--color)}.paper-link-arrow{font-size:14px;color:var(--ink-soft);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--border-color)}.paper-link-arrow:hover{color:var(--color);text-decoration-color:var(--color)}.paper-reassure{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px;color:var(--ink-muted)}.paper-reassure li{white-space:nowrap}@media (min-width:1100px){.paper-reassure{flex-wrap:nowrap}}.paper-reassure li::before{content:"\2713";color:var(--status-ready);margin-right:7px;font-size:14px;font-weight:600}.paper-frame{border-radius:var(--radius-surface);background:var(--paper-card);border:1px solid var(--border-color);box-shadow:0 24px 60px rgba(26,24,21,.1),0 2px 6px rgba(26,24,21,.04);overflow:hidden}.dark-mode .paper-frame{box-shadow:0 24px 60px rgba(0,0,0,.45)}.paper-frame-bar{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-bottom:1px solid var(--border-soft);background:var(--paper-bg-alt);font-family:var(--font-mono);font-size:11px;color:var(--ink-muted)}.paper-frame-bar .dots{display:flex;gap:5px}.paper-frame-bar .dots i{width:9px;height:9px;border-radius:50%;background:color-mix(in srgb,var(--ink-faint) 45%,transparent)}.paper-frame-bar .url{flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-frame img{display:block;width:100%;height:auto}.paper-hero-shot .paper-frame{width:100%}.hero-mock{display:grid;grid-template-columns:168px 1fr;min-height:360px;font-family:var(--font-sans);text-align:left}.hero-mock-tree{background:var(--paper-bg-alt);border-right:1px solid var(--border-soft);padding:12px 8px}.hero-mock-tree-title{font-size:11px;font-weight:600;color:var(--ink-muted);padding:0 8px 8px}.hero-mock-row{display:flex;align-items:center;gap:7px;height:26px;padding:0 8px;border-radius:var(--radius-control);font-size:12.5px;color:var(--ink-soft);white-space:nowrap}.hero-mock-row svg{width:14px;height:14px;flex-shrink:0;fill:none;stroke:var(--ink-muted);stroke-width:1.2;stroke-linejoin:round}.hero-mock-row.is-active{background:rgba(128,128,128,.15);color:var(--color);font-weight:500}.hero-mock-doc{min-width:0;background:var(--paper-card)}.hero-mock-doc-bar{display:flex;align-items:center;justify-content:space-between;height:40px;padding:0 18px;border-bottom:1px solid var(--border-soft);font-size:13px}.hero-mock-doc-bar span{font-size:12px;color:var(--ink-muted)}.hero-mock-doc-body{padding:18px 22px 22px;font-size:13.5px;line-height:1.6;color:var(--color)}.hero-mock-doc-body p{margin:0 0 10px}.hero-mock-h1{font-size:22px;font-weight:600;letter-spacing:-.01em;padding-bottom:8px;margin-bottom:12px;border-bottom:1px solid var(--border-soft)}.hero-mock-h2{font-size:15px;font-weight:600;margin:16px 0 8px}.hero-mock-doc-body pre{margin:0 0 12px;padding:10px 12px;background:var(--paper-bg-alt);border:1px solid var(--border-soft);border-radius:var(--radius-control);font-family:var(--font-mono);font-size:12px;line-height:1.6;color:var(--color)}.hero-mock .redact{background:var(--accent-soft);color:var(--accent);border-radius:4px;padding:1px 5px;font-family:var(--font-mono);font-size:.88em}@media (max-width:575px){.hero-mock{grid-template-columns:1fr;min-height:0}.hero-mock-tree{display:none}}.paper-proof{margin-top:48px;padding-top:18px;padding-bottom:18px;border-top:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:12px 30px;align-items:center}.paper-proof-venues{display:flex;gap:22px;align-items:center;font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;color:var(--ink-soft)}.paper-proof-venues i{font-style:normal;font-family:var(--font-sans);font-size:14px;color:var(--ink-faint)}.paper-stats{margin-top:40px;padding-top:16px;border-top:1px solid var(--border-color)}.paper-stats-meta-left{display:inline-flex;align-items:center;gap:8px}.paper-stats-meta{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px}.paper-stats-meta-right{display:inline-flex;align-items:center;gap:6px}.paper-stats-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--status-ready)}.paper-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.paper-stat-card{display:flex;flex-direction:column;padding:22px 26px 20px 0;margin-right:26px;border-right:1px solid var(--border-color);min-width:0}.paper-stat-card:last-child{border-right:0;margin-right:0;padding-right:0}.paper-stat-value{font-size:44px;font-weight:500;letter-spacing:-.04em;line-height:1;color:var(--color);font-variant-numeric:tabular-nums}.paper-stat-label{margin-top:6px;font-size:13px;color:var(--ink-soft)}.paper-stat-value.is-pending{color:var(--ink-faint)}.paper-stat-bars{display:block;width:100%;height:34px;margin-top:18px;overflow:visible}.paper-stat-bars rect{fill:color-mix(in srgb,var(--ink-muted) 55%,transparent)}.paper-stat-bars rect.is-latest{fill:var(--accent)}.paper-stat-delta{margin-top:10px;font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.paper-section-head{margin-top:88px;display:grid;grid-template-columns:1fr 1.4fr;gap:40px;align-items:start}.paper-section-head>p{padding-top:34px}@media (max-width:991px){.paper-section-head>p{padding-top:0}}.paper-qa h2,.paper-section-head h2{font-family:var(--font-serif);font-weight:400;font-size:clamp(2rem,4.2vw,3.25rem);line-height:1.05;letter-spacing:-.02em;margin:10px 0 0;color:var(--color);text-wrap:balance}.paper-feature-title em,.paper-qa h2 em,.paper-section-head h2 em{font-style:italic;color:var(--accent)}.paper-section-head p{font-size:15px;color:var(--ink-soft);max-width:32em;margin:0;line-height:1.6}.paper-preview{margin-top:28px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.paper-preview .pane{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);overflow:hidden;min-width:0}.paper-preview .pane-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border-soft)}.paper-preview .pane-label{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);white-space:nowrap}.paper-preview .pane-url{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.paper-preview .pane-body{padding:16px 18px;font-family:var(--font-mono);font-size:13px;line-height:1.9;color:var(--ink-soft)}.paper-preview .pane-body strong{color:var(--color);font-weight:600}.paper-preview .tok{color:var(--ink-faint)}.paper-preview .term{background:color-mix(in srgb,var(--status-error) 9%,transparent);color:inherit;border-radius:4px;padding:0 4px;text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--status-error) 60%,transparent)}.dark-mode .paper-preview .term{background:color-mix(in srgb,var(--status-error) 16%,transparent)}.paper-preview .redact{background:var(--accent-soft);color:var(--accent);border-radius:4px;padding:0 5px}.paper-features{margin-top:28px;padding-top:28px;border-top:1px solid var(--border-color);display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:start}.paper-features-list{display:flex;flex-direction:column}.paper-feature{border-left:2px solid var(--border-soft);padding:16px 0 16px 20px;transition:border-color .2s}.paper-feature.is-on{border-left-color:var(--accent)}.paper-feature-tab{all:unset;display:block;position:relative;width:100%;cursor:pointer;color:inherit;border-radius:4px}.paper-feature:not(.is-on) .paper-feature-tab::after{content:"";position:absolute;right:4px;bottom:12px;width:8px;height:8px;border-right:1.5px solid var(--ink-muted);border-bottom:1.5px solid var(--ink-muted);transform:rotate(45deg)}.paper-feature:not(.is-on) .paper-feature-tab:hover::after{border-color:var(--color)}.paper-feature.is-on .paper-feature-tab::after{content:"";position:absolute;right:4px;bottom:10px;width:8px;height:8px;border-right:1.5px solid var(--color);border-bottom:1.5px solid var(--color);transform:rotate(-135deg)}.paper-feature-tab:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.paper-feature-tab .paper-eyebrow{display:block;margin-bottom:6px}.paper-feature-title{display:block;font-family:var(--font-serif);font-size:24px;line-height:1.15;letter-spacing:-.015em;color:var(--color);transition:color .2s}.paper-feature-title em{color:inherit}.paper-feature-tab:hover .paper-feature-title,.paper-feature.is-on .paper-feature-title{color:var(--color)}.paper-feature.is-on .paper-feature-title em{color:var(--accent)}.paper-feature-more{display:none}.paper-feature.is-on .paper-feature-more{display:block}.paper-feature-more .paper-feature-title-m{display:none}.paper-feature-more p{font-size:15px;color:var(--ink-soft);line-height:1.55;margin:10px 0 12px;max-width:30em}.paper-features-stage{min-width:0}.paper-feature-panel{animation:paper-feature-in .25s ease-out}@keyframes paper-feature-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.paper-feature-panel{animation:none}}.paper-crop{position:relative;height:380px;overflow:hidden;background:var(--paper-card)}.paper-crop img{position:absolute;left:0;top:0;max-width:none;height:auto;display:block}.paper-crop-anonymize img{width:213%;transform:translate(-1.5%,-18%)}.paper-crop-review img{width:213%;transform:translate(0,-6.5%)}.paper-crop-manage img{width:213%;transform:translate(-12.3%,-6.5%)}.paper-qa{margin-top:88px;display:grid;grid-template-columns:1fr 1.4fr;gap:40px;align-items:start}.paper-qa h2{margin-bottom:12px}.paper-qa .q{border-top:1px solid var(--border-color);padding:18px 0}.paper-qa .q:last-child{border-bottom:1px solid var(--border-color)}.paper-qa .q a::after{content:none;display:inline-block;width:7px;height:7px;margin-left:10px;border-right:1.5px solid var(--ink-muted);border-bottom:1.5px solid var(--ink-muted);transform:translateY(-2px) rotate(-45deg);transition:transform .15s,border-color .15s}.paper-qa .q a:hover::after{border-color:var(--accent);transform:translate(3px,-2px) rotate(-45deg)}.paper-qa .q a:hover{text-decoration:underline;text-underline-offset:3px}.paper-qa .q a{display:block;font-weight:500;font-size:15px;color:var(--color);margin-bottom:6px}.paper-qa .q a:hover{color:var(--accent);text-decoration:none}.paper-qa .q p{margin:0;font-size:14px;color:var(--ink-soft);line-height:1.6}@media (max-width:1100px){.paper-hero-shot .paper-frame{width:100%}}@media (max-width:991px){.paper-hero{grid-template-columns:1fr;gap:36px;padding-top:40px}.paper-qa,.paper-section-head{grid-template-columns:1fr;gap:16px}.paper-stats-grid{grid-template-columns:1fr 1fr}.paper-stat-card:nth-child(2n){border-right:0;margin-right:0;padding-right:0}.paper-stat-card:nth-child(-n+2){border-bottom:1px solid var(--border-color)}}@media (max-width:767px){.paper-wrap{width:calc(100% - 40px)}.paper-hero{padding-left:20px;padding-right:20px}.paper-reassure{flex-direction:column;gap:6px}.paper-hero h1.hero-title{font-size:clamp(2.4rem,11vw,3.25rem)}.hero-subtitle{font-size:16px}.paper-cta-row .btn-hero{width:100%;justify-content:center}.paper-proof{margin-top:48px}.paper-stat-card{padding:18px 16px 16px 0;margin-right:16px}.paper-stat-value{font-size:40px}.paper-qa,.paper-section-head{margin-top:72px}.paper-preview{grid-template-columns:1fr}.paper-preview .pane-body{font-size:12px;line-height:1.8}.paper-features{display:flex;flex-wrap:wrap;gap:0;padding-top:0;border-top:0;margin-top:24px}.paper-feature,.paper-features-list,.paper-features-stage{display:contents}.paper-feature-tab{order:1;flex:1 1 0;width:auto;padding:12px 0 10px;border-bottom:2px solid var(--border-color);border-radius:0;text-align:left}.paper-feature.is-on .paper-feature-tab{border-bottom-color:var(--color)}.paper-feature-tab .paper-eyebrow{margin:0;font-size:11px;letter-spacing:.08em}.paper-feature-tab .paper-feature-title{display:none}.paper-feature-panel{order:2;width:100%;margin-top:20px;animation:none}.paper-crop{height:240px}.paper-crop-anonymize img{width:230%;transform:translate(-1.5%,-8%)}.paper-crop-review img{width:240%;transform:translate(-1%,-8%)}.paper-crop-manage img{width:220%;transform:translate(-3%,-9%)}.paper-feature-more{order:3;width:100%}.paper-feature.is-on .paper-feature-more{margin-top:18px}.paper-feature-more .paper-feature-title-m{display:block;font-size:28px;line-height:1.1}.paper-feature-more p{max-width:none}.paper-footer-inner>.paper-footer-brand{grid-column:1/-1}.paper-footer-foot{flex-direction:column;gap:6px}}.dropdown-menu{background-color:var(--paper-card,var(--main-bg-color))!important;color:var(--color)!important;border:1px solid var(--border-color)!important;border-radius:8px!important;box-shadow:0 12px 28px rgba(26,24,21,.08),0 2px 6px rgba(26,24,21,.05)!important;padding:6px!important;font-family:var(--font-sans);font-size:13px;min-width:11rem}.dropdown-menu .dropdown-item{color:var(--color)!important;padding:7px 10px!important;border-radius:5px;font-size:13px}.dropdown-menu .dropdown-item:focus,.dropdown-menu .dropdown-item:hover{background:var(--hover-bg-color)!important;color:var(--color)!important}.dropdown-menu .dropdown-divider{border-top-color:var(--border-color)!important;margin:4px 2px}.dropdown-menu .dropdown-header{color:var(--ink-muted);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.body,.file-content,.markdown-body{background-color:var(--main-bg-color)!important;color:var(--color)!important}.markdown-body table tr{background-color:var(--main-bg-color);border-top:1px solid var(--border-color)}.markdown-body table tr:nth-child(2n){background-color:var(--paper-bg-alt)}.markdown-body table td,.markdown-body table th{border:1px solid var(--border-color)}.file-content{padding:4px 7px;text-align:left;min-height:100%}.file-card{margin:16px 20px 28px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);overflow:clip}.file-card:not(.is-code) .file-card-head{position:sticky;top:0;z-index:2;border-radius:var(--radius-surface) var(--radius-surface) 0 0}.file-card.is-code{display:flex;flex-direction:column;height:calc(100% - 32px);margin-bottom:16px}.file-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:6px 8px 6px 16px;border-bottom:1px solid var(--border-color);background:var(--paper-card)}.dark-mode .file-card-head{background:var(--paper-card)}.file-card-meta{font-size:13px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.file-card-meta .sep{margin:0 8px;color:var(--ink-faint)}.file-card-head .btn{height:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;padding:0 10px}.file-card-head .btn-seg:not(.view-switch){gap:2px;padding-left:8px;margin-left:4px;border-left:1px solid var(--border-color)}.file-card-head .btn-seg:not(.view-switch)>.btn{border:0!important;border-radius:var(--radius-control)!important;margin:0!important;background:0 0!important;color:var(--ink-soft)}.file-card-head .btn-seg:not(.view-switch)>.btn:hover{background:var(--hover-bg-color)!important;color:var(--color)}.file-card-actions>.btn-seg:first-child,.file-card-head .btn-seg:not(.view-switch):has(>.btn:only-child){border-left:0;padding-left:0;margin-left:0}.file-card-head .btn.btn-icon-only{width:32px;padding:0!important;color:var(--ink-soft)}.file-card-head .btn.btn-icon-only:hover{color:var(--color);background:var(--hover-bg-color)!important}.file-card .file-card-body{flex:1 1 auto;min-height:0}.file-card-actions{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;margin-left:auto}.file-card-path{display:none;align-items:center;gap:2px;min-width:0}.file-card-path .paths{overflow:hidden}.file-card-path+.file-card-meta,.file-card-path+.view-switch{margin-left:8px}.status-bar.is-redundant{display:none}.file-card-path{display:inline-flex}@media (max-width:767px){.file-card-head{flex-wrap:wrap;row-gap:0}.file-card-head .file-card-meta{order:3;flex-basis:100%;margin:0 0 6px!important;padding:0!important;border:0!important;font-size:12px;color:var(--ink-muted)}.file-card-head .file-card-meta .meta-extra{display:inline!important}.file-card-head .btn-ghost{color:var(--ink-soft)}.file-card-head .breadcrumb-root,.file-card-head .breadcrumb-root+.breadcrumb-item::before{display:none!important}.file-card-head .breadcrumb-item{padding-left:0}.file-card-head{gap:6px;padding:6px 8px 6px 16px}.file-card-actions{gap:2px}.file-card-actions .btn-seg{margin-left:4px}}@media (min-width:992px){.file-card-path+.file-card-meta{padding-left:14px;border-left:1px solid var(--border-color)}.file-card{margin-top:20px}.file-card.is-code{height:calc(100% - 36px)}}.card-files-btn{margin-right:4px}.leftCol-zip{display:inline-flex;align-items:center;gap:8px;margin-bottom:6px;font-size:13px;font-weight:500;color:var(--ink-soft);text-decoration:none}.leftCol-zip:hover{color:var(--color);text-decoration:none}.leftCol-zip .ui-icon{width:15px;height:15px}.file-card-actions .btn-seg{margin-left:6px}.file-card-head .btn.btn-find,.file-card-head .btn.btn-goto{padding:0 10px;gap:6px;font-weight:400}@media (max-width:1180px){.file-card-head .btn-find .btn-find-label,.file-card-head .btn-goto .btn-find-label{display:none}.file-card-head .btn-find,.file-card-head .btn-goto{width:32px;padding:0!important}}@media (max-width:991px){.file-card-head .btn-find{width:32px;padding:0!important}.file-card-head .btn-find-label{display:none}}@media (max-width:767px){.file-card-head .btn-find{width:40px}}.ace_search{top:8px!important;right:12px!important;left:auto!important;background:var(--paper-card)!important;color:var(--color)!important;border:1px solid var(--border-color)!important;border-radius:var(--radius-surface)!important;box-shadow:0 8px 24px rgba(26,24,21,.14);padding:6px!important;font-family:var(--font-sans)!important;font-size:13px!important}.ace_search_field{background:var(--input-bg)!important;color:var(--input-color)!important;border:1px solid var(--border-color)!important;border-radius:var(--radius-control)!important;margin-right:4px!important;height:28px!important;padding:0 8px!important;font-family:var(--font-sans)!important}.ace_search_field:focus{border-color:var(--ink-muted)!important;outline:0;box-shadow:0 0 0 3px var(--hover-bg-color)}.ace_button,.ace_searchbtn{background:0 0!important;color:var(--ink-soft)!important;border:0!important;border-radius:var(--radius-control)!important;width:28px;height:28px!important;line-height:28px!important}.ace_button:hover,.ace_searchbtn:hover{background:var(--hover-bg-color)!important;color:var(--color)!important}.ace_button.checked{border-color:var(--accent)!important;color:var(--accent)!important}.ace_search_counter{color:var(--ink-soft)!important;font-size:13px;margin:0 8px 0 4px!important;font-variant-numeric:tabular-nums}.ace_search{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;max-width:none!important;width:auto!important}.dark-mode .ace_search{background:var(--paper-card)!important}.ace_search .ace_button.checked{background:var(--accent-soft)!important;color:var(--accent)!important;border-color:var(--accent)!important}.ace_search .ace_button[action=searchInSelection],.ace_search .ace_button[action=toggleReplace],.ace_search .ace_replace_form,.ace_search .ace_searchbtn[action=findAll]{display:none!important}.ace_search_field{width:200px!important}.ace_search_form{display:flex;align-items:center;margin:0!important;float:none!important}.ace_search_options{display:flex!important;align-items:center;gap:4px;margin:0!important;float:none!important;text-align:left!important}.ace_search_options .ace_button{width:28px;height:28px!important;line-height:26px!important;padding:0!important;border-radius:var(--radius-control)!important;font-size:12px!important;text-align:center}.ace_searchbtn_close{position:static!important;margin-left:2px}.ace_editor .ace_marker-layer .ace_selected-word{background:color-mix(in srgb,#e0a94a 30%,transparent)!important;border:0!important;border-radius:2px}.ace_editor.ace-chrome .ace_marker-layer .ace_selection,.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection{background:#f2b544!important;box-shadow:0 0 0 1px #b7791f;border-radius:2px}.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection{background:#b7791f!important;box-shadow:0 0 0 1px #f2b544}.ace_editor .ace_indent-guide-active{background:0 0!important;box-shadow:inset 1px 0 0 var(--border-color)!important}.ace_searchbtn_close{filter:none!important;opacity:.6}.ace_prompt_container{background:var(--paper-card)!important;border:1px solid var(--border-color)!important;border-radius:var(--radius-surface)!important;box-shadow:0 12px 32px rgba(26,24,21,.16)!important}.btn.btn-ghost{background:0 0!important;border-color:transparent!important;color:var(--ink-muted)}.btn.btn-ghost:hover{background:var(--hover-bg-color)!important;color:var(--color)}.btn.btn-ghost.is-on{color:var(--color);background:var(--hover-bg-color)!important;box-shadow:none}.btn.btn-ghost:focus:not(:focus-visible):not(.is-on):not(:hover){background:0 0!important;box-shadow:none}.dark-mode .file-card-head .btn-seg .btn{background:0 0!important;border-color:var(--border-color)!important;color:var(--color);font-weight:500}.file-card-head .btn.btn-find,.file-card-head .btn.btn-goto{color:var(--ink-soft)}.file-card-head>.view-switch{gap:2px;padding:2px;border-radius:calc(var(--radius-control) + 2px);background:var(--hover-bg-color)}.file-card-head>.view-switch .btn{height:28px;min-height:28px;margin:0!important;border:0!important;border-radius:var(--radius-control)!important;background:0 0!important;color:var(--ink-soft);font-weight:500}.file-card-head>.view-switch .btn:hover{color:var(--color)}.file-card-head>.view-switch .btn.is-on{background:var(--paper-card)!important;color:var(--color);box-shadow:0 1px 2px rgba(26,24,21,.1),0 0 0 1px var(--border-color);cursor:default}.dark-mode .file-card-head>.view-switch .btn.is-on{background:#3d3934!important;box-shadow:none}.status-bar .btn.btn-ghost.btn-zip{color:var(--ink-soft)}.copy-path-btn{margin-left:-4px}@media (max-width:767px){.file-card-head .btn,.file-card-head .btn.btn-icon-only{height:40px;min-height:40px}.file-card-head .btn.btn-icon-only{width:40px}.copy-path-btn{display:none!important}}.file-card .ace_editor{height:100%!important}@media (max-width:767px){.file-card{margin:0;border:0;border-radius:0}.file-card.is-code{height:100%}.file-card-head{position:sticky;top:0;z-index:2;padding-left:16px}}.dir-card{margin:20px 20px 0;background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);overflow:hidden}.dir-card+.file-card{margin-top:16px}.dir-card-head{display:flex;align-items:baseline;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-color);background:var(--paper-bg-alt)}.dark-mode .dir-card-head{background:#35312c}.dir-card-title{font-size:14px;font-weight:600;color:var(--color)}.dir-card-sub{font-size:13px;color:var(--ink-muted)}.dir-list{list-style:none;margin:0;padding:4px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:0}.dir-row{display:flex;align-items:center;gap:10px;width:100%;height:34px;padding:0 16px;border:0;background:0 0;font:inherit;font-size:14px;color:var(--color);text-align:left;text-decoration:none;cursor:pointer}.dir-row:hover{background:var(--hover-bg-color);color:var(--color);text-decoration:none}.dir-row:hover .dir-name{text-decoration:underline;text-underline-offset:3px}.dir-row.is-current .dir-name{font-weight:600}.dir-icon{width:16px;height:16px;flex-shrink:0;fill:none;stroke:var(--ink-muted);stroke-width:1.2;stroke-linejoin:round}.dir-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dir-meta{flex-shrink:0;font-size:12px;color:var(--ink-muted);font-variant-numeric:tabular-nums}.dir-list:not(.is-expanded)>li:nth-child(n+9){display:none}.dir-more{display:block;width:100%;height:40px;border:0;border-top:1px solid var(--border-soft);background:0 0;font:inherit;font-size:13px;font-weight:500;color:var(--link-color);cursor:pointer}.dir-more:hover{background:var(--hover-bg-color)}@media (max-width:767px){.dir-card{margin:0;border:0;border-bottom:1px solid var(--border-color);border-radius:0}.dir-list{grid-template-columns:1fr}.dir-card+.file-card{margin-top:0}}.explorer-content .file-card .file-content.markdown-body{max-width:920px;margin:0;min-height:0;padding:28px 40px 48px;background:var(--paper-card)!important;font-family:var(--font-sans);font-size:15px;line-height:1.65}.explorer-content .markdown-body h1,.explorer-content .markdown-body h2{font-family:var(--font-sans);font-weight:600;letter-spacing:-.01em;border-bottom:1px solid var(--border-color);padding-bottom:.3em}.explorer-content .markdown-body h1{font-size:28px;margin-top:0}.explorer-content .markdown-body h2{font-size:21px;margin-top:32px}.explorer-content .markdown-body h3{font-size:17px;font-weight:600;margin-top:24px}.explorer-content .markdown-body h4{font-size:15px;font-weight:600}.explorer-content .markdown-body img{border-radius:var(--radius-control)}.explorer-content .markdown-body p>a:only-child>img,.explorer-content .markdown-body p>img:only-child{border:1px solid var(--border-color)}.explorer-content .markdown-body code,.explorer-content .markdown-body pre{font-family:var(--font-mono);font-size:13px}.explorer-content .markdown-body pre{background:var(--paper-bg-alt)!important;border:1px solid var(--border-soft);border-radius:var(--radius-control);padding:14px 16px;line-height:1.55}.explorer-content .markdown-body :not(pre)>code{background:var(--hover-bg-color);border-radius:4px;padding:.15em .4em;font-size:.86em}@media (max-width:767px){.explorer-content .file-card .file-content.markdown-body{padding:20px 16px 72px;font-size:15px}.explorer-content .markdown-body h1{font-size:24px}}.ace_editor.ace-chrome,.ace_editor.ace-nord-dark{background:var(--paper-card)!important;color:var(--color)!important}.ace_editor.ace-chrome .ace_gutter,.ace_editor.ace-nord-dark .ace_gutter{background:color-mix(in srgb,var(--paper-bg-alt) 55%,var(--paper-card))!important;color:var(--ink-muted)!important;border-right:1px solid var(--border-soft)}.ace_editor .ace_gutter-cell{padding-right:14px;padding-left:12px;font-size:12px}@media (max-width:767px){.ace_editor .ace_gutter-cell{padding-right:8px;padding-left:6px}}.ace_editor .ace_gutter-active-line{background:0 0!important}.ace_editor .ace_indent-guide{background:0 0!important;box-shadow:inset 1px 0 0 var(--border-soft)}.ace_editor .ace_fold-widget{opacity:0;transition:opacity .15s}.ace_editor .ace_fold-widget.ace_closed,.ace_editor .ace_gutter:hover .ace_fold-widget{opacity:.7}.ace_editor .ace_marker-layer .ace_selection{background:var(--accent-soft)!important}.ace-chrome .ace_keyword,.ace-chrome .ace_storage{color:#b4362a}.ace-chrome .ace_string{color:#2b5a3e}.ace-chrome .ace_constant.ace_language,.ace-chrome .ace_constant.ace_numeric,.ace-chrome .ace_support.ace_constant{color:#1f6a64}.ace-chrome .ace_comment{color:#7a746a;font-style:italic}.ace-chrome .ace_entity.ace_name.ace_function,.ace-chrome .ace_support.ace_function{color:#6b45b8}.ace-chrome .ace_variable.ace_parameter{color:#8a5a12;font-style:normal}.ace-chrome .ace_entity.ace_name.ace_tag,.ace-chrome .ace_meta.ace_tag{color:#116329}.ace-chrome .ace_entity.ace_other.ace_attribute-name{color:#0550ae}.ace-chrome .ace_identifier,.ace-chrome .ace_paren,.ace-chrome .ace_punctuation,.ace-chrome .ace_variable{color:var(--color)}.ace-nord-dark .ace_keyword,.ace-nord-dark .ace_storage{color:#f2897d}.ace-nord-dark .ace_string{color:#9dd3a8}.ace-nord-dark .ace_constant.ace_language,.ace-nord-dark .ace_constant.ace_numeric,.ace-nord-dark .ace_support.ace_constant{color:#7cc7be}.ace-nord-dark .ace_comment{color:#9a948a;font-style:italic}.ace-nord-dark .ace_entity.ace_name.ace_function,.ace-nord-dark .ace_support.ace_function{color:#c9a8f5}.ace-nord-dark .ace_variable.ace_parameter{color:#e0a94a;font-style:normal}.ace-nord-dark .ace_entity.ace_name.ace_tag,.ace-nord-dark .ace_meta.ace_tag{color:#7ee787}.ace-nord-dark .ace_entity.ace_other.ace_attribute-name{color:#79c0ff}.ace-nord-dark .ace_identifier,.ace-nord-dark .ace_paren,.ace-nord-dark .ace_punctuation,.ace-nord-dark .ace_variable{color:var(--color)}.badge{font-size:75%;font-weight:500;padding:3px 8px;border-radius:10px;vertical-align:middle}.warning-feedback{width:100%;margin-top:.25rem;font-size:80%;color:#dc8e35}.dropdown-item:focus,.dropdown-item:hover{background-color:var(--hover-bg-color)}.card-header .btn,.card-header .btn:focus,.card-header .btn:hover{border:none!important;background:0 0!important}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--button-height);padding:7px var(--button-padding-x);font:500 var(--button-font-size)/var(--button-line-height) var(--font-sans);vertical-align:middle;max-width:100%;transition:background-color 120ms ease,border-color 120ms ease,color 120ms ease;color:var(--btn-color);border:1px solid var(--border-color);background:var(--paper-card);border-radius:var(--radius-button);white-space:nowrap}.btn:active,.btn:hover{color:var(--btn-color);border:1px solid var(--border-color);background-color:var(--hover-bg-color);box-shadow:none!important}.btn.btn-primary{color:var(--primary-color);background-color:var(--primary-bg)}.btn.btn-primary:active,.btn.btn-primary:hover{color:var(--primary-active-color);background-color:var(--primary-hover-bg)!important}.btn::placeholder{color:var(--color);opacity:1}.white_border{border:1px solid #fff;color:#fff}.leftCol{display:flex;position:relative;flex:0 0 auto;width:100%;z-index:9;flex-direction:column}.card,.leftCol,.sidePanel{background-color:var(--sidebar-bg-color);border:1px solid var(--border-color)}@media (min-width:768px){.leftCol{flex:0 0 var(--sidebar-w,280px);width:var(--sidebar-w,280px);height:100%}}.leftCol-search{padding:10px 12px 0}.tree-search-box{display:flex;align-items:center;gap:8px;background:var(--canvas-bg-color);border:1px solid var(--border-color);border-radius:8px;padding:7px 10px;transition:border-color .15s}.tree-search-box:focus-within{border-color:var(--ink-muted)}.tree-search-icon{font-size:12px;color:var(--ink-muted);flex-shrink:0}.tree-search-input{flex:1;border:none;outline:0;background:0 0;font-family:var(--font-sans);font-size:13px;color:var(--color);min-width:0}.tree-search-input::placeholder{color:var(--ink-muted)}.tree-search-kbd{font-family:var(--font-sans);font-size:11px;color:var(--ink-muted);background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:4px;padding:1px 6px;line-height:1.4;flex-shrink:0}.tree-search-clear{background:0 0;border:none;color:var(--ink-muted);font-size:16px;cursor:pointer;padding:0 2px;line-height:1}.tree-search-clear:hover{color:var(--color)}.leftCol-project-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 4px;gap:8px}.project-name{font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.project-file-count{font-family:var(--font-sans);font-size:12px;color:var(--ink-muted);white-space:nowrap;flex-shrink:0;margin-left:auto}.files{position:relative;display:block;overflow:auto;height:100%;padding:4px 6px}.files ul{list-style:none;margin:0;padding:0}.files li ul{padding-left:8px;margin-left:7px;border-left:1px solid var(--border-color)}.files .folder>ul{display:none}.files .folder.open>ul{display:block}.files .file,.files .folder{position:relative;color:var(--ink-soft);cursor:pointer;word-break:break-all}.files a{display:flex;align-items:center;gap:5px;min-height:26px;padding:2px 8px 2px 4px;font-family:var(--font-sans);font-size:13px;color:var(--ink-soft);border-radius:var(--radius-control);text-decoration:none;line-height:1.5;position:relative}.files a:hover{background:var(--hover-bg-color);color:var(--color);text-decoration:none}.files:focus{outline:0}.files a.tree-focused{background:var(--hover-bg-color);color:var(--color)}.files .file.active>a::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;border-radius:0 2px 2px 0;background:var(--accent)}.files .file.active>a{border-radius:0 var(--radius-control) var(--radius-control) 0;background:rgba(128,128,128,.12);color:var(--color);font-weight:500}.files .file.active>a .tree-icon-file{color:var(--color)}.files .file.active>a .tree-count{color:var(--ink-muted)}.tree-icon-file,.tree-icon-folder{display:inline-block;flex-shrink:0}.tree-icon-folder{width:14px;height:12px;color:var(--ink-muted);opacity:.75}.tree-icon-folder svg{display:block;width:100%;height:100%;fill:currentColor;fill-opacity:0;stroke:currentColor;stroke-width:1.2;stroke-linejoin:round}.files .folder.open>a .tree-icon-folder{color:var(--ink-muted);opacity:1}.files .folder.open>a .tree-icon-folder svg{fill-opacity:.12}.tree-icon-file{width:16px;font-size:14px;text-align:center;color:var(--ink-muted)}.tree-toggle{display:inline-flex;align-items:center;justify-content:center;width:12px;height:14px;flex-shrink:0;opacity:.8}.tree-toggle::after{content:"";display:block;width:6px;height:6px;border-right:1.5px solid var(--ink-muted);border-bottom:1.5px solid var(--ink-muted);transform:translateX(-1px) rotate(-45deg);transition:transform .12s ease}.files .folder.open>a .tree-toggle::after{transform:translateY(-2px) rotate(45deg)}.tree-spacer{display:inline-block;width:12px;flex-shrink:0}.tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files a:not(:hover):not(.tree-focused) .tree-count{opacity:0}.tree-count{transition:opacity .12s;font-family:var(--font-sans);font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink-muted);flex-shrink:0;margin-left:auto;padding-left:8px;opacity:.7}.files .folder>a{color:var(--color)}.files .file::before,.files .folder::before{display:none}.files .folder>a::after{display:none}.tree-search-path{color:var(--ink-muted);font-size:11px}.tree-search-empty{padding:16px 12px;color:var(--ink-muted);font-size:13px;font-family:var(--font-sans);text-align:center}.leftCol{background:var(--paper-bg-alt,#f3f1ec);border:0;border-right:1px solid var(--border-color)}.dark-mode .leftCol{background:var(--paper-bg-alt)}.dark-mode .explorer-content .markdown-body img{filter:brightness(.8)}.dark-mode .hero-mock-tree{background:#1f1d1a}.dark-mode .hero-mock-row.is-active{background:rgba(255,255,255,.1)}.dark-mode .files .file.active>a{background:rgba(255,255,255,.1)}.status-bar{background:var(--canvas-bg-color);border-bottom:1px solid var(--border-color);padding:8px 20px;min-height:48px}.paths .breadcrumb-item,.paths .breadcrumb-item a{font-family:var(--font-sans);font-size:14px;color:var(--ink-muted);letter-spacing:0}.paths .breadcrumb-root a{color:var(--link-color)}.paths .breadcrumb-root a:hover{text-decoration:underline;text-underline-offset:3px}.paths .breadcrumb-item.active,.paths .breadcrumb-item:last-child{color:var(--color);font-family:var(--font-sans);font-size:14px;font-weight:600;letter-spacing:0}.status-files-btn{display:none!important}.leftCol-resizer{display:none}@media (min-width:992px){.leftCol-resizer{display:block;position:absolute;top:0;bottom:0;left:calc(var(--sidebar-w,280px) - 3px);width:6px;cursor:col-resize;z-index:10}.leftCol-resizer:hover,body.is-resizing .leftCol-resizer{background:color-mix(in srgb,var(--accent) 35%,transparent)}body.is-resizing{cursor:col-resize;user-select:none}}.leftCol-hide{display:none;align-items:center;justify-content:center;width:26px;height:26px;margin-right:-6px;border:0;border-radius:var(--radius-control);background:0 0;color:var(--ink-muted);cursor:pointer}.leftCol-hide:hover{background:var(--hover-bg-color);color:var(--color)}.leftCol-hide .ui-icon{width:16px;height:16px}@media (min-width:992px){.leftCol-hide{display:inline-flex}.explorer-page.files-hidden .leftCol{display:none!important}.explorer-page.files-hidden .status-files-btn{display:inline-flex!important}}@media (max-width:991px){.status-files-btn{display:inline-flex!important;flex-shrink:0}.explorer-page .sidebar-toggle{display:none!important}}@media (max-width:767px){.status-bar .btn,.status-bar .btn.btn-icon-only{min-height:40px}.status-bar .btn.btn-icon-only{width:40px}}.dark-mode .status-bar .btn{background:var(--paper-card)}.btn-seg{display:inline-flex}.btn-seg>.btn{border-radius:0;margin:0}.btn-seg>.btn+.btn{margin-left:-1px}.btn-seg>.btn:first-child{border-radius:var(--radius-control) 0 0 var(--radius-control)}.btn-seg>.btn:last-child{border-radius:0 var(--radius-control) var(--radius-control) 0}.btn-seg>.btn:focus-visible,.btn-seg>.btn:hover{position:relative;z-index:1}.status-bar .btn{height:32px;min-height:32px;display:inline-flex;align-items:center;gap:6px}.status-bar .btn.btn-icon-only{padding-left:0;padding-right:0;width:32px;justify-content:center}.status-files-btn{gap:6px}@media (max-width:991px){.status-files-btn{height:40px!important;min-height:40px!important;padding:0 12px;border-radius:var(--radius-control)}}@media (max-width:767px){.file-card.is-code.no-wrap{position:relative}.file-card.is-code.no-wrap::after{content:"";position:absolute;top:46px;right:0;bottom:0;width:44px;pointer-events:none;background:linear-gradient(to right,transparent,var(--paper-card) 85%);z-index:20}.file-card-head .btn-goto{display:none!important}}@media (max-width:575px){.status-bar .btn-zip{display:none!important}.navbar .nav-support{display:none!important}.navbar .nav-signin-m{margin-left:auto}}.ace_editor .ace_gutter-cell{cursor:pointer}.ace_editor .ace_gutter-cell:hover{color:var(--color)}.status-bar .file-meta{flex:0 0 auto;margin-right:auto;font-size:12px;color:var(--ink-muted);white-space:nowrap;font-variant-numeric:tabular-nums}@media (max-width:575px){.status-bar .file-meta{display:none}}.paths .breadcrumb-item+.breadcrumb-item::before{content:'/';color:var(--ink-faint);padding:0 6px 0 3px}.last-update{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);padding:8px 10px;border-top:1px solid var(--border-color);letter-spacing:.02em}.ace_editor{height:100%}.ace_scroller{cursor:default}.status-bar{display:flex;align-items:center;gap:12px;background-color:var(--canvas-bg-color);padding:10px 14px;margin:0;border-bottom:1px solid var(--border-color);border-radius:0;flex-shrink:0}.status-bar-actions{display:flex;align-items:center;margin-left:auto;gap:10px;flex-shrink:0}.status-bar-actions .btn{display:inline-flex;align-items:center;gap:6px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);border-radius:6px;padding:4px 10px;font-size:13px;min-height:30px}.status-bar-actions .btn:hover{background:var(--hover-bg-color);color:var(--color)}.status-bar-actions .btn.btn-active{border-color:currentColor;font-weight:600}.paths{flex:0 1 auto;min-width:0;padding:0;margin:0;background-color:initial;border:none;border-radius:0;align-items:center;overflow-x:auto;white-space:nowrap;flex-wrap:nowrap}.paths::-webkit-scrollbar{display:none}.paths a{color:var(--color)}.paths .breadcrumb-item{padding-left:3px}.paths .breadcrumb-item::before{padding-right:3px}.content{height:100%;overflow:scroll;padding-top:42px;background-color:var(--main-bg-color);text-align:center}.image-content{max-width:100%;max-height:100%;text-align:center;padding:4px}.pdf-viewer{display:flex;flex-direction:column;height:100%;min-height:0;background-color:var(--main-bg-color)}.pdf-toolbar{display:flex;align-items:center;gap:4px;flex:0 0 auto;padding:4px 8px;border-bottom:1px solid var(--border-color,rgba(0,0,0,.12))}.pdf-toolbar-group{display:inline-flex;align-items:center;gap:4px}.pdf-toolbar-right{margin-left:auto}.pdf-toolbar-btn{border:0;background:0 0;color:inherit;padding:4px 8px;border-radius:4px;font-size:13px;line-height:1.2;cursor:pointer}.pdf-toolbar-btn:hover:not(:disabled){background-color:rgba(128,128,128,.18)}.pdf-toolbar-btn:disabled{opacity:.4;cursor:default}.pdf-toolbar-zoom{min-width:52px;font-variant-numeric:tabular-nums}.pdf-toolbar-page{width:3.5em;text-align:right;padding:2px 4px;font-size:13px;color:inherit;background:0 0;border:1px solid var(--border-color,rgba(0,0,0,.2));border-radius:4px}.pdf-toolbar-count{font-size:13px;opacity:.75;font-variant-numeric:tabular-nums}.pdf-pages{flex:1 1 auto;min-height:0;overflow:auto;padding:8px 0}.pdf-viewer-page{margin:0 auto 12px}.pdf-viewer-page canvas{display:block;box-shadow:0 1px 4px rgba(0,0,0,.25)}.pdf-viewer-error{padding:24px;text-align:center;font-weight:700}.html-doc{display:block;height:100%}.html-doc-frame{display:block;width:100%;height:100%;border:0;background-color:#fff}.file-error{font-weight:700;font-size:50px;text-align:center}pdfviewer{display:block;padding:15px}pdfpageviewer{display:block;width:100%;margin-bottom:10px}notebook{display:block;text-align:left;padding:15px}@media (min-width:768px){notebook{padding-left:100px}}.nb-output td,.nb-output th{border:1px solid var(--border-color)!important}.paper-faq{max-width:1140px;margin:0 auto;padding:48px 32px 80px;font-family:var(--font-sans)}.paper-faq-hero{padding-bottom:40px;border-bottom:1px solid var(--border-color);margin-bottom:36px}.paper-faq-eyebrow{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.14em;text-transform:uppercase;margin-bottom:32px}.paper-faq-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.6rem,5.5vw,4.6rem);line-height:1.03;letter-spacing:-.02em;color:var(--color);margin:0 0 22px;max-width:14em}.paper-faq-title em{font-style:italic;color:var(--color)}.paper-faq-lede{color:var(--ink-soft);font-size:18px;line-height:1.55;max-width:38em;margin:0}.paper-faq-lede a{color:var(--link-color);border-bottom:1px solid currentColor}.paper-faq-lede a:hover{color:var(--accent);border-bottom-color:var(--accent)}.paper-faq-body{display:grid;grid-template-columns:220px 1fr;gap:60px;align-items:start}.paper-faq-toc{position:sticky;top:32px;font-size:14px}.paper-faq-toc-head{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.14em;text-transform:uppercase;padding-bottom:10px;margin-bottom:6px;border-bottom:1px solid var(--border-color)}.paper-faq-toc nav{display:flex;flex-direction:column}.paper-faq-toc nav a{color:var(--ink-soft);padding:8px 0 8px 14px;border-left:2px solid transparent;text-decoration:none;margin-left:0}.paper-faq-toc nav a.active,.paper-faq-toc nav a:hover{color:var(--color);border-left-color:var(--color)}.faq-section{min-width:0}.faq-section>div{width:100%}.faq-section h4.faq-cat{font-family:var(--font-serif);font-weight:400;font-size:clamp(1.7rem,2.6vw,2.2rem);letter-spacing:-.015em;color:var(--color);margin:0 0 6px;padding-bottom:14px;border-bottom:1px solid var(--border-color)}.faq-section h4.faq-cat i{display:none}.faq-section .panel-group{margin-bottom:56px}.faq-section .panel-default .panel-title a{display:block;position:relative;padding:22px 0 22px 42px;font-family:var(--font-serif);font-weight:400;font-size:20px;line-height:1.35;letter-spacing:-.005em;color:var(--color);text-decoration:none;cursor:pointer}.faq-section .panel-default .panel-title a:hover{color:var(--accent)}.faq-section .panel-heading{background:0 0;padding:0!important;border:none}.faq-section .panel-default{background:0 0;border:none;border-bottom:1px solid var(--border-soft);border-radius:0;margin-bottom:0!important;box-shadow:none}.faq-section .panel-default .panel-title{margin-bottom:0}.faq-section .panel-default .panel-title a:after{content:"−";position:absolute;left:0;right:auto;top:22px;transform:none;font-family:var(--font-mono);font-size:18px;line-height:1.35;color:var(--ink-muted);float:none;margin:0;font-weight:400}.faq-section .panel-default .panel-title a.collapsed:after{content:"+"}.faq-section .panel-default .panel-body{padding:0 0 22px 42px!important;color:var(--ink-soft);font-size:15px;line-height:1.65;border-top:none;max-width:68ch}.table{color:var(--color)}.dropdown-divider,.table td,.table th,hr{border-color:var(--border-color)}.table.repositories td{word-break:break-word}loc{display:block;position:relative;width:100%;height:5px}loc .lang{float:left;height:100%}.rounded-circle.fa{display:inline-block;font-size:75px;height:140px;width:140px;border:4px solid;line-height:140px;text-align:center}.featurette-divider{margin:4.5rem 0;border-color:var(--border-color)}.featurette-heading{font-family:var(--font-serif);font-weight:400;font-size:2rem;line-height:1.15;letter-spacing:-.02em;margin-bottom:14px;color:var(--color)}.dark-mode .shadow{box-shadow:none}.dark-mode .overflow-auto::-webkit-scrollbar{width:10px}.dark-mode .overflow-auto::-webkit-scrollbar-track{-webkit-box-shadow:none;background:inherit;border-radius:0}.dark-mode .overflow-auto::-webkit-scrollbar-thumb{border-radius:10px;border:1px solid var(--border-color);background-color:var(--hover-bg-color)}.dark-mode .rgba-gradient{background:linear-gradient(135deg,#2a2d4a,#151728)}.section-number{padding-right:10px;font-weight:700;font-style:italic}.org-subscript-child{font-size:85%}.highlighted-line{position:absolute;background:rgba(100,200,100,.5);z-index:20}code,pre{font-family:"Fira Code","Courier New",Courier,monospace;line-height:1.1;color:var(--color)}.diff-file,.diff-index,.diff-lines{background:rgba(172,172,172,.5)}.diff-add{background:rgba(100,200,100,.5)}.diff-remove{background:rgba(200,100,100,.5)}.dashboard-title{font-size:1.375rem;font-weight:600;letter-spacing:-.01em}.quota-row{display:flex;gap:16px;margin-bottom:16px;padding:0}.quota-item{flex:1;min-width:0}.quota-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.quota-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;opacity:.7}.quota-value{font-size:.8125rem;font-weight:500;font-variant-numeric:tabular-nums}.quota-progress{height:6px;border-radius:3px;background:var(--hover-bg-color)}.quota-progress .progress-bar{border-radius:3px}.filter-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:.8125rem;font-weight:500;background:var(--primary-bg);color:var(--primary-color);border-radius:12px;line-height:1.4}.filter-chip-close{display:inline-flex;align-items:center;justify-content:center;background:0 0;border:none;color:inherit;opacity:.7;cursor:pointer;padding:0;min-width:24px;min-height:24px;margin:-6px -6px -6px 0;font-size:1rem;line-height:1;border-radius:999px}.filter-chip-close:hover{opacity:1}.repo-list{list-style:none;padding:0;margin:0}.repo-list-item{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--border-color);gap:12px}.repo-list-item:first-child{border-top:1px solid var(--border-color)}.repo-list-item.repo-inactive{opacity:.6}.repo-list-item-content{flex:1;min-width:0}.repo-list-item-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.repo-name{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--color);word-break:break-word}.repo-name:hover{color:var(--accent)}.repo-source{font-size:.875rem;opacity:.8;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.repo-date{opacity:.7}.repo-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;font-size:.8125rem;opacity:.7}.repo-meta span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.repo-list-item-actions{flex-shrink:0;padding-top:2px;margin-left:14px}.repo-list-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 20px;opacity:.5;font-size:.9375rem;list-style:none;border-bottom:1px solid var(--border-color);border-top:1px solid var(--border-color)}.repo-list-empty i{font-size:1.75rem}.type-badge{display:inline-flex;align-items:center;gap:3px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;padding:2px 8px;border-radius:4px;white-space:nowrap}.type-badge{font-family:var(--font-mono);letter-spacing:.06em;padding:2px 8px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-bg-alt,transparent)}.type-badge.type-pr,.type-badge.type-repo{background:var(--paper-bg-alt);color:var(--ink-muted);border-color:var(--border-color)}.dark-mode .type-badge.type-pr,.dark-mode .type-badge.type-repo{background:rgba(255,255,255,.06);color:var(--ink-muted);border-color:var(--border-color)}.type-badge.type-coauthor{background:rgba(99,102,241,.12);color:#4f46e5;border-color:rgba(99,102,241,.35);margin-left:6px}.dark-mode .type-badge.type-coauthor{background:rgba(129,140,248,.18);color:#7cc7be;border-color:rgba(165,180,252,.45)}.btn-group .btn:not(.btn-primary){background:var(--hover-bg-color)}.anonymize-page{display:flex;flex-direction:column;min-height:0}.anonymize-landing{flex:1 1 0;min-height:min-content;display:flex;align-items:center;justify-content:center;padding:20px}.anonymize-landing-inner{width:100%;max-width:600px}.anonymize-landing-inner h2{font-weight:700}.anonymize-workspace{display:flex;flex-direction:column;flex:1 1 0;min-height:0;background:var(--canvas-bg-color)}.anonymize-topbar{background:var(--paper-card);border-bottom:1px solid var(--border-color);padding:18px 28px;flex:0 0 auto}.anonymize-topbar-inner{max-width:1400px;margin:0 auto}.anonymize-topbar-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.anonymize-topbar-title{margin:4px 0 0;font-size:clamp(1.8rem,3vw,2.4rem)}.anonymize-split{flex:1 1 auto;display:flex;min-height:0}.anonymize-form-col{flex:0 0 auto;width:100%;min-width:0;background:var(--canvas-bg-color);border-right:1px solid var(--border-color);overflow-y:auto}.anonymize-form-col .paper-settings-main{max-width:720px;padding:28px 32px 40px;margin:0}.anonymize-form-col .paper-settings-section:first-child{padding-top:0}.anonymize-form-col .anonymize-submit-bar{position:sticky;bottom:0;background:var(--canvas-bg-color);padding:14px 0 0;border-top:1px solid var(--border-color);margin-top:20px}.anonymize-form-col .anonymize-submit-bar .btn{width:100%;padding:12px 16px;font-size:15px}.anonymize-preview-col{flex:1 1 auto;min-width:0;overflow:auto;background:var(--paper-bg-alt);padding:28px 32px}.anonymize-preview-head{display:flex;align-items:baseline;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border-color);margin-bottom:20px}.anonymize-preview-head .paper-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.anonymize-preview-sub{color:var(--ink-soft);font-size:13px}.anonymize-preview-body{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:28px 32px}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid-3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px}@media (max-width:700px){.form-grid-2,.form-grid-3{grid-template-columns:1fr}}.paper-optional{font-family:var(--font-sans);font-weight:400;color:var(--ink-muted);text-transform:none;letter-spacing:0;font-size:11px;margin-left:6px}.paper-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.paper-plan-card{position:relative;display:block;padding:18px 20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease;margin:0}.paper-plan-card input[type=radio]{position:absolute;opacity:0;pointer-events:none}.paper-plan-card.selected{border-color:var(--color);box-shadow:0 0 0 2px var(--color) inset}.paper-plan-head{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.paper-plan-price{font-family:var(--font-serif);font-size:2rem;color:var(--color);margin:6px 0 4px}.paper-plan-price .paper-plan-per{font-family:var(--font-sans);font-size:12px;color:var(--ink-soft)}.paper-plan-desc{font-size:13px;color:var(--ink-soft)}.paper-plan-desc ul{padding-left:18px;margin:0}.paper-settings-copy{color:var(--ink-soft);font-size:13px;margin:0 0 14px}.anonymize-section-title{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;margin:18px 0 8px 0;padding-bottom:6px;border-bottom:1px solid var(--border-color);opacity:.7}.anonymize-section-title i{margin-right:4px}.anonymize-submit-bar{padding:12px 0 4px 0}.anonymize-submit-bar .btn{font-size:1rem;padding:10px 20px;font-weight:600}.anonymize-page .form-check{padding-top:4px;padding-bottom:4px}.anonymize-page .form-check-label{font-weight:500}.anonymize-preview-col{min-height:0;min-width:0}.pr-diff pre{overflow-x:auto;max-width:100%}@media (min-width:768px){.anonymize-form-col{height:100%;width:520px;flex:0 0 520px}.anonymize-preview-col{height:100%;flex:1}}@media (max-width:767px){.anonymize-workspace{flex:0 0 auto;min-height:0}.anonymize-topbar{padding:14px 16px}.anonymize-topbar-title{font-size:1.5rem;margin-top:2px}.anonymize-split{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.anonymize-form-col{width:100%!important;flex:0 0 auto!important;height:auto!important;border-right:none;border-bottom:1px solid var(--border-color);overflow:visible}.anonymize-form-col .paper-settings-main{padding:18px 16px 24px;max-width:none}.anonymize-form-col .anonymize-submit-bar{position:sticky;bottom:0;margin:20px -16px 0;padding:12px 16px;background:var(--canvas-bg-color);border-top:1px solid var(--border-color);z-index:10}.anonymize-form-col .anonymize-submit-bar .btn{width:100%;padding:12px 16px;font-size:15px}.anonymize-preview-col{width:100%;flex:0 0 auto;height:auto!important;max-height:none;padding:18px 16px 24px;overflow:visible}.anonymize-preview-body{padding:16px;border-radius:8px}.anonymize-preview-body .pr-diff pre,.anonymize-preview-body pre{overflow-x:auto;max-width:100%}.anonymize-landing-inner{padding:16px}}@media (min-width:1280px){.anonymize-form-col{width:620px;flex:0 0 620px}}@media (max-width:767px){.btn{min-height:38px;padding:6px 14px;font-size:14px}.btn-sm{min-height:34px;padding:5px 10px}.navbar .nav-link{padding:8px 12px}.navbar .nav-link .fa,.navbar .nav-link .fab{font-size:24px;line-height:32px}.container.page{padding-left:15px;padding-right:15px;max-width:100%}h1{font-size:1.5rem}h2{font-size:1.375rem}h3{font-size:1.125rem}.repo-list-item{flex-direction:column}.repo-list-item-actions{align-self:flex-start}.quota-row{flex-direction:column;gap:10px;padding:10px 12px}.dropdown-menu{position:absolute;right:0;left:auto}.form-group{margin-bottom:12px}.form-control{font-size:16px}.status-bar{gap:6px;padding:8px 10px}.status-bar .btn{font-size:12px;padding:4px 10px;min-height:32px}.status-bar .paths{font-size:12px;overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;-webkit-overflow-scrolling:touch}.status-bar .paths::-webkit-scrollbar{display:none}.status-bar-actions{flex-shrink:0;gap:4px}#home .display-4{font-size:1.75rem}#home h4.subtext-header{font-size:1rem}.progress:not(.quota-progress){min-width:120px!important}.badge{font-size:70%}.col-2.input-group{width:100%!important;max-width:100%;flex:0 0 100%}.color-text-secondary span{display:inline-block;margin-bottom:2px}.anonymize-landing{align-items:flex-start;padding-top:60px}.anonymize-page .container-fluid>.row{height:auto!important;min-height:100%}.anonymize-form-col{width:100%!important;flex:0 0 100%!important;border-right:none;border-top:1px solid var(--border-color)}.anonymize-preview-col{height:auto!important;max-height:none}.anonymize-section-title{font-size:.8125rem;margin:12px 0 8px 0}.anonymize-submit-bar{position:sticky;bottom:0;background:var(--sidebar-bg-color);padding:10px 0;margin:0 -12px;padding-left:12px;padding-right:12px;border-top:1px solid var(--border-color);z-index:10}.anonymize-submit-bar .btn{font-size:1rem;padding:12px 20px}.anonymize-page .form-check{padding-top:6px;padding-bottom:6px;min-height:36px}.anonymize-page .form-check-label{font-size:.9375rem}.anonymize-page .card-body{padding:12px}.pr-title{font-size:1.125rem}.pr-diff pre{font-size:.75rem}.pr-comment .mb-1 h5{font-size:1rem}.nav-tabs .nav-link{padding:8px 12px;font-size:.875rem}}@media (min-width:768px) and (max-width:991px){.container.page{max-width:100%;padding-left:15px;padding-right:15px}.leftCol{flex:0 0 250px;width:250px}}.explorer-page{display:flex;height:100%;width:100%;background:var(--canvas-bg-color);position:relative}.explorer-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--canvas-bg-color)}.explorer-content{flex:1 1 auto;min-height:0;width:100%;overflow:auto}.leftCol-close,.leftCol-head{display:none}.leftCol-body{flex:1 1 auto;min-height:0;overflow:auto}.leftCol-foot{padding:8px 12px;border-top:1px solid var(--border-color);background:var(--paper-bg-alt)}.leftCol-foot .last-update{display:block;border-top:none;padding:0;font-family:var(--font-sans);font-size:13px;font-weight:400;letter-spacing:0;line-height:1.5;color:var(--ink-muted)}.leftCol-foot{padding:10px 14px}.leftCol-backdrop{display:none}.paper-inline-warning{display:flex;align-items:flex-start;gap:8px;margin:8px;padding:10px 12px;background:rgba(138,107,30,.08);border:1px solid rgba(138,107,30,.35);border-radius:8px;color:var(--color);font-size:13px;line-height:1.4}.paper-inline-warning i{color:var(--status-progress);margin-top:2px;flex-shrink:0}.dark-mode .paper-inline-warning i{color:var(--status-progress)}@media (min-width:768px){.leftCol-body{padding:8px 4px}}.sidebar-toggle{display:none;align-items:center;gap:8px;position:fixed;bottom:18px;right:18px;z-index:1100;padding:10px 14px;background:var(--color);color:var(--canvas-bg-color);border:1px solid var(--color);border-radius:999px;font-family:var(--font-sans);font-size:13px;font-weight:500;box-shadow:0 6px 20px rgba(0,0,0,.15);cursor:pointer;outline:0}.sidebar-toggle:hover{background:var(--primary-hover-bg)}.sidebar-toggle:focus{outline:0}.sidebar-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width:991px){.sidebar-toggle{display:inline-flex}.leftCol{position:fixed;top:0;left:0;bottom:0;width:min(86vw,340px);max-width:340px;z-index:1200;border:none;border-right:1px solid var(--border-color);transform:translateX(0);transition:transform .22s ease;box-shadow:4px 0 24px rgba(0,0,0,.18);background:var(--sidebar-bg-color)}.leftCol.collapsed{transform:translateX(-105%);box-shadow:none;pointer-events:none}.leftCol-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border-color);background:var(--paper-bg-alt)}.leftCol-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.leftCol-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:0 0;border:1px solid var(--border-color);border-radius:8px;color:var(--ink-muted);cursor:pointer}.leftCol-close:hover{color:var(--color);border-color:var(--color)}.leftCol-foot{display:block}.leftCol-body{padding:4px 0}.leftCol-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.32);z-index:1150;backdrop-filter:blur(2px)}.dark-mode .leftCol-backdrop{background:rgba(0,0,0,.5)}}.admin-nav{display:flex;gap:4px;padding:4px;margin:8px 0 20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;flex-wrap:wrap}.admin-nav a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:7px;color:var(--ink-muted);text-decoration:none;font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;transition:background-color .15s,color .15s;white-space:nowrap}.admin-nav a:hover{background:var(--paper-bg-alt);color:var(--color)}.admin-nav a.active{background:var(--color);color:var(--paper-card)}.admin-nav a i{font-size:12px;width:14px;text-align:center}@media (max-width:767px){.admin-nav{flex-direction:column}.admin-nav a{justify-content:flex-start}}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:16px}.admin-stat-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:8px;padding:10px 12px}.admin-stat-card .stat-value{font-family:var(--font-serif);font-size:1.375rem;font-weight:400;line-height:1.1;color:var(--color)}.admin-stat-card .stat-label{font-family:var(--font-mono);font-size:10px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:4px}.admin-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0 12px}.admin-toolbar .form-control{max-width:320px}@media (max-width:767px){.admin-toolbar .form-control{max-width:100%;width:100%}}.pagination-compact{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap;font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.pagination-compact input{width:60px;text-align:center;flex-shrink:0}.pagination-compact .btn{padding:4px 10px;min-height:34px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);flex-shrink:0}.pagination-compact>span{white-space:nowrap}.admin-list-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-color)}.admin-list-item:last-child{border-bottom:none}.admin-list-item .item-main{flex:1;min-width:0}.admin-list-item .item-title{font-size:1rem;font-weight:600;margin-bottom:4px;word-break:break-word}.admin-list-item .item-meta{font-size:.875rem;opacity:.8}.admin-list-item .item-meta span{margin-right:12px;display:inline-block;margin-bottom:2px}.admin-list-item .item-actions{flex-shrink:0}@media (max-width:767px){.admin-list-item{flex-direction:column;gap:8px}.admin-list-item .item-actions{align-self:flex-start}}.status-badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.3px;vertical-align:middle}.status-badge{font-family:var(--font-sans);font-weight:500;letter-spacing:.02em;border:1px solid transparent;text-transform:none;font-size:12px;padding:1px 9px 2px;border-radius:999px}.status-badge.status-ready{background:#e8f3ec;color:#2f7a44;border-color:#cfe6d6}.status-badge.status-error{background:#fbe7e7;color:#b42318;border-color:#f3c7c7}.status-badge.status-download,.status-badge.status-preparing{background:#e4f0ee;color:#1f6a64;border-color:#d4d8fa}.status-badge.status-expired,.status-badge.status-expiring,.status-badge.status-removed,.status-badge.status-removing{background:var(--paper-bg-alt);color:var(--ink-muted);border-color:var(--border-color)}.status-badge.status-active{background:#e8f3ec;color:#2f7a44;border-color:#cfe6d6}.queue-job-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 18px;margin-bottom:10px}.queue-job-card .job-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;flex-wrap:wrap;gap:8px}.queue-job-card .job-id{font-family:var(--font-mono);font-size:.9375rem;color:var(--color);word-break:break-all;display:flex;align-items:center;gap:10px}.queue-job-card .job-timestamps{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);display:flex;flex-wrap:wrap;gap:14px}.queue-job-card .job-actions{display:flex;gap:8px;margin-top:10px}.queue-job-card .job-actions .btn{font-size:12px;padding:4px 12px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}.admin-section-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:24px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.admin-section-header h2{margin:0;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em}.admin-section-header h2 i{margin-right:6px;color:var(--ink-muted)}.admin-section-header .section-count{background:var(--paper-bg-alt);color:var(--ink-muted);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;padding:1px 10px;border-radius:999px}.user-detail-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:22px;margin-bottom:24px}.user-detail-card .user-header{display:flex;align-items:center;gap:16px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--border-color);flex-wrap:wrap}.user-detail-card .user-header img{border-radius:50%}.user-detail-card .user-header h2{margin:0;font-family:var(--font-serif);font-weight:400;font-size:1.5rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.user-detail-grid{display:grid;grid-template-columns:160px 1fr;gap:10px 20px;font-size:.9375rem}.user-detail-grid .detail-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);white-space:nowrap;padding-top:2px}.user-detail-grid .detail-value{word-break:break-all;color:var(--color)}@media (max-width:767px){.user-detail-grid{grid-template-columns:1fr}.user-detail-grid .detail-label{margin-top:8px;border-top:1px solid var(--border-color);padding-top:8px}.user-detail-grid .detail-label:first-child{border-top:none;margin-top:0;padding-top:0}}.paper-empty{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;padding:40px 24px}.paper-empty-inner{max-width:560px;text-align:left}.paper-empty-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.02;letter-spacing:-.025em;margin:18px 0 20px;color:var(--color)}.paper-empty-title em{color:var(--accent);font-style:italic}.paper-empty-lede{font-size:18px;line-height:1.55;color:var(--ink-soft);text-wrap:pretty}.paper-empty-cta{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap}.paper-page{max-width:1100px;margin:0 auto;padding:32px 32px 80px}@media (max-width:991px){.paper-page,.paper-page.container,.paper-page.container-fluid{padding:20px 18px 60px!important}.paper-page .row{margin-left:0;margin-right:0}.paper-page .row>.w-100,.paper-page .row>[class*=col]{padding-left:0;padding-right:0}.navbar.navbar-expand-lg{padding:10px 18px!important}.navbar .navbar-collapse{margin:10px -18px 0;padding:12px 18px 16px;border-top:1px solid var(--border-color);background:var(--header-bg-color)}.navbar .navbar-nav{align-items:stretch!important;gap:2px}.navbar .navbar-nav .nav-item,.navbar .navbar-nav .nav-link{width:100%}.navbar .nav-link{display:flex!important;align-items:center;justify-content:flex-start;margin:0!important;padding:12px 4px!important;border-bottom:1px solid var(--border-color)!important;border-radius:0;font-size:14px;line-height:1.2;gap:0;min-height:44px;box-sizing:border-box}.navbar .nav-link:not(.btn-signin):not(.user-chip){color:var(--color)!important}.navbar .nav-link .fa,.navbar .nav-link .fab,.navbar .nav-link .fas,.navbar .nav-link i{display:inline-flex!important;align-items:center;justify-content:center;width:28px;flex-shrink:0;font-size:16px;line-height:1;margin:0 10px 0 0!important}.navbar .navbar-nav .nav-item:last-child .nav-link,.navbar .navbar-nav>.nav-link:last-child{border-bottom-color:transparent!important}.navbar .nav-link.active{color:var(--color)!important;border-bottom-color:var(--border-color)!important}.navbar .nav-item>.nav-link:not(.btn-signin):not(.user-chip)::before{content:'';display:inline-block;width:28px;margin-right:10px;flex-shrink:0}.navbar .nav-link.nav-icon::before,.navbar .nav-link:has(>i)::before{display:none!important}.navbar .nav-link.nav-icon{width:100%!important;height:auto!important;justify-content:flex-start!important;padding:12px 4px!important}.navbar .nav-link.nav-icon::after{content:attr(title);font-family:var(--font-sans);font-size:14px;color:var(--color)}.navbar .btn-signin{display:inline-flex!important;width:auto!important;align-self:flex-start;justify-content:center;height:40px;padding:0 18px!important;margin:14px 0 0!important;border-radius:8px;border-bottom:none!important}.navbar .btn-signin i{margin:0 8px 0 0!important;width:auto!important}.navbar .user-chip-wrap{width:100%}.navbar .user-chip{display:flex!important;width:100%;margin:0!important;padding:10px 4px!important;background:0 0!important;border:none!important;border-bottom:1px solid var(--border-color)!important;border-radius:0!important;justify-content:flex-start;gap:0;min-height:44px}.navbar .user-chip::before{display:none!important}.navbar .user-chip img{width:28px!important;height:28px!important;margin-right:10px!important;flex-shrink:0}.navbar .user-chip .user-chip-name{font-size:14px;font-weight:500;color:var(--color)!important}.navbar .user-chip.dropdown-toggle::after{margin-left:auto;color:var(--ink-muted)}.navbar .user-chip-wrap .dropdown-menu{position:static!important;float:none;width:100%;margin:0!important;padding:0!important;background:0 0!important;border:none!important;box-shadow:none!important;transform:none!important}.navbar .user-chip-wrap .dropdown-menu .dropdown-item{padding:10px 4px 10px 42px!important;font-size:14px;color:var(--ink-muted)!important;background:0 0!important;border-bottom:1px solid var(--border-color);text-align:left!important}.navbar .user-chip-wrap .dropdown-menu .dropdown-item:last-child{border-bottom:none}.navbar .user-chip-wrap .dropdown-divider{display:none}.navbar-brand{border-right:none!important;padding-right:0!important;margin-right:0!important}.dark-mode .navbar .navbar-collapse{background:var(--header-bg-color);border-top-color:var(--border-color)}.dark-mode .navbar .nav-link{border-bottom-color:var(--border-color)!important}.dark-mode .navbar-toggler .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' d='M4 8h22M4 15h22M4 22h22'/%3E%3C/svg%3E")!important}}.status-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--paper-bg-alt);border:1px solid var(--border-color);color:var(--ink-soft);font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.paper-progress{position:relative;height:auto;background:0 0;margin:18px 0 8px}.paper-progress::before{content:"";display:block;height:8px;background:var(--paper-bg-alt);border-radius:999px}.paper-progress .paper-progress-bar{position:absolute;top:0;left:0;height:8px;background:var(--color);border-radius:999px;transition:width .4s ease;min-width:4px}.paper-progress .paper-progress-label{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}.paper-progress .paper-progress-pct{color:var(--color)}.paper-progress.paper-progress-ready .paper-progress-bar{background:var(--color)}.paper-error-card{margin-top:18px;padding:20px 22px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-left:3px solid var(--status-error);border-radius:10px;color:var(--color)}.dark-mode .paper-error-card{border-left-color:var(--status-error)}.paper-ratelimit-card{margin-top:18px;padding:20px 22px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-left:3px solid var(--status-progress);border-radius:10px;color:var(--color)}.dark-mode .paper-ratelimit-card{border-left-color:var(--status-progress)}.paper-ratelimit-head{display:flex;align-items:flex-start;gap:14px}.paper-ratelimit-head>i{font-size:18px;color:var(--status-progress);margin-top:4px;flex-shrink:0}.dark-mode .paper-ratelimit-head>i{color:var(--status-progress)}.paper-ratelimit-card strong{color:var(--color)}.paper-ratelimit-card{text-align:left;border-left-color:var(--status-progress)}.dark-mode .paper-ratelimit-card{border-left-color:var(--status-progress)}.paper-ratelimit-head>.ui-icon{width:18px;height:18px;margin-top:3px;flex-shrink:0;color:var(--status-progress)}.paper-ratelimit-card .paper-error-title{font-family:var(--font-sans);font-size:17px;font-weight:600}.paper-ratelimit-card .paper-error-msg{font-family:var(--font-sans);white-space:normal;margin-left:32px}.paper-ratelimit-card .paper-error-eyebrow{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.status-pill-ratelimit{border-color:var(--status-progress);color:var(--status-progress)}.dark-mode .status-pill-ratelimit{border-color:var(--status-progress);color:var(--status-progress)}.status-ratelimit{background:var(--status-progress)}.dark-mode .status-ratelimit{background:var(--status-progress)}.paper-error-head{display:flex;align-items:flex-start;gap:14px}.paper-error-head>i{font-size:18px;color:var(--status-error);margin-top:4px;flex-shrink:0}.dark-mode .paper-error-head>i{color:var(--status-error)}.paper-error-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.paper-error-title{font-family:var(--font-serif);font-size:1.375rem;line-height:1.2;margin-top:2px;color:var(--color)}.paper-error-msg{margin:12px 0 0;font-size:14px;line-height:1.55;color:var(--ink-soft);font-family:var(--font-mono);word-break:break-word;white-space:pre-wrap}.paper-error-hints{margin:14px 0 0;padding-left:18px;color:var(--ink-soft);font-size:14px;line-height:1.6}.paper-error-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.paper-detail-grid{display:grid;grid-template-columns:160px 1fr;gap:10px 20px;margin-top:18px;font-size:.9375rem}.paper-detail-grid .detail-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);white-space:nowrap;padding-top:2px}.paper-detail-grid .detail-value{word-break:break-all;color:var(--color)}.paper-detail-grid .detail-value a{color:var(--color);border-bottom:1px solid var(--border-color)}.paper-detail-grid .detail-value a:hover{border-bottom-color:var(--color)}@media (max-width:700px){.paper-detail-grid{grid-template-columns:1fr;gap:4px 0}.paper-detail-grid .detail-label{padding-top:8px}}.paper-support-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:18px 0 28px}.paper-support-card{display:flex;flex-direction:column;gap:10px;padding:20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;color:var(--color);text-decoration:none;transition:border-color .15s ease,transform .15s ease}.paper-support-card:hover{border-color:var(--color);text-decoration:none;color:var(--color)}.paper-support-card .paper-support-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);display:flex;align-items:center;gap:8px}.paper-support-card p{margin:0;font-size:14px;line-height:1.55;color:var(--ink-soft)}.paper-support-card .paper-support-cta{margin-top:auto;font-size:13px;font-weight:500;color:var(--color);display:inline-flex;align-items:center;gap:6px}.paper-support-card:hover .paper-support-cta i{transform:translateX(2px)}.paper-support-card .paper-support-cta i{transition:transform .15s ease}.pr-page{min-height:100%;background:var(--canvas-bg-color)}.pr-page-inner{padding-top:24px;padding-bottom:60px}.pr-header{margin:6px 0 18px}.pr-title{margin:4px 0 10px;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.15;word-break:break-word}.pr-header-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.pr-header-meta .pr-meta-item{display:inline-flex;align-items:center;gap:6px}.pr-header-meta .pr-meta-item i{color:var(--ink-muted)}.pr-body-card{margin:18px 0 24px;padding:20px 22px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px}.pr-body-card .paper-section-eyebrow{margin-bottom:12px}.paper-tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--border-color);margin:18px 0 0}.paper-tabs .paper-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:0 0;border:0;border-bottom:2px solid transparent;font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--ink-muted);cursor:pointer;transition:color .15s ease,border-color .15s ease;margin-bottom:-1px}.paper-tabs .paper-tab:hover{color:var(--color)}.paper-tabs .paper-tab.active{color:var(--color);border-bottom-color:var(--color)}.paper-tabs .paper-tab i{color:inherit;opacity:.85}.paper-tabs .paper-tab:active,.paper-tabs .paper-tab:focus,.paper-tabs .paper-tab:focus-visible{outline:0;box-shadow:none}.paper-tabs .paper-tab:focus-visible{color:var(--color);background:var(--hover-bg-color);border-radius:6px 6px 0 0}.pr-diff{margin:16px 0 28px;display:flex;flex-direction:column;gap:16px}.diff-file-block{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;overflow:hidden}.diff-file-header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--paper-bg-alt);border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:13px;color:var(--color)}.diff-file-icon{color:var(--ink-muted);flex-shrink:0}.diff-file-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.diff-file-status{flex-shrink:0;padding:2px 8px;border-radius:999px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--border-color);color:var(--ink-muted);background:var(--paper-card)}.diff-file-status-added{color:#2f6b3e;border-color:rgba(47,107,62,.35);background:rgba(47,107,62,.08)}.diff-file-status-deleted{color:var(--status-error);border-color:rgba(161,58,46,.35);background:rgba(161,58,46,.08)}.diff-file-status-renamed{color:var(--status-progress);border-color:rgba(138,107,30,.35);background:rgba(138,107,30,.08)}.dark-mode .diff-file-status-added{color:#a7e2a7;border-color:rgba(167,226,167,.35);background:rgba(167,226,167,.08)}.dark-mode .diff-file-status-deleted{color:var(--status-error);border-color:rgba(255,139,123,.35);background:rgba(255,139,123,.08)}.dark-mode .diff-file-status-renamed{color:var(--status-progress);border-color:rgba(255,211,122,.35);background:rgba(255,211,122,.08)}.diff-file-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:13px;line-height:1.55;table-layout:fixed}.diff-file-table tr.diff-row{vertical-align:top}.diff-file-table .diff-gutter{width:48px;padding:0 10px;text-align:right;color:var(--ink-muted);background:var(--paper-bg-alt);border-right:1px solid var(--border-color);user-select:none;font-variant-numeric:tabular-nums;vertical-align:top;white-space:nowrap}.diff-file-table .diff-gutter-new{border-right:1px solid var(--border-color)}.diff-file-table .diff-sign{width:18px;padding:0 6px;text-align:center;color:var(--ink-muted);background:var(--paper-bg-alt);user-select:none;vertical-align:top}.diff-file-table .diff-code{padding:1px 12px;white-space:pre-wrap;word-break:break-word;color:var(--color)}.diff-row-hunk td{background:var(--paper-bg-alt)!important;color:var(--ink-muted);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);font-size:12px;letter-spacing:.02em;padding-top:6px;padding-bottom:6px}.diff-row-hunk .diff-code{color:var(--ink-muted)}.diff-row-add .diff-code{background:rgba(47,107,62,.1);color:#1f4a2a}.diff-row-add .diff-gutter,.diff-row-add .diff-sign{background:rgba(47,107,62,.06);color:#2f6b3e}.diff-row-remove .diff-code{background:rgba(161,58,46,.1);color:#6e1f1a}.diff-row-remove .diff-gutter,.diff-row-remove .diff-sign{background:rgba(161,58,46,.06);color:var(--status-error)}.dark-mode .diff-row-add .diff-code{background:rgba(167,226,167,.1);color:#c9f0c9}.dark-mode .diff-row-add .diff-gutter,.dark-mode .diff-row-add .diff-sign{background:rgba(167,226,167,.06);color:#a7e2a7}.dark-mode .diff-row-remove .diff-code{background:rgba(255,139,123,.1);color:#ffc9c0}.dark-mode .diff-row-remove .diff-gutter,.dark-mode .diff-row-remove .diff-sign{background:rgba(255,139,123,.06);color:var(--status-error)}@media (max-width:700px){.diff-file-table{font-size:12px}.diff-file-table .diff-gutter{width:36px;padding:0 6px}.diff-file-table .diff-sign{width:14px;padding:0 4px}.diff-file-table .diff-code{padding:1px 8px}}.pr-comments{list-style:none;margin:16px 0 28px;padding:0;display:flex;flex-direction:column;gap:12px}.pr-comment{padding:16px 18px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px}.pr-comment-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--border-color)}.pr-comment-author{font-weight:600;color:var(--color);font-size:14px;display:inline-flex;align-items:center;gap:6px}.pr-comment-author i{color:var(--ink-muted);font-size:12px}.pr-comment-date{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);letter-spacing:.02em}.pr-comment-body{color:var(--color);font-size:14px;line-height:1.6}.pr-comment-body :last-child{margin-bottom:0}@media (max-width:700px){.pr-page-inner{padding-top:14px;padding-bottom:40px}.pr-body-card{padding:14px 14px;border-radius:8px}.pr-comment{padding:12px 14px}.paper-tabs .paper-tab{padding:10px 12px;font-size:13px}.pr-diff pre{font-size:12px;padding:12px}}.toast{background-color:var(--paper-card)!important;color:var(--color)!important;border:1px solid var(--border-color)!important;border-radius:10px!important;box-shadow:0 8px 24px rgba(0,0,0,.08);backdrop-filter:none;min-width:280px;max-width:calc(100vw - 24px)}.toast .toast-header{background:0 0!important;color:var(--color)!important;border-bottom:1px solid var(--border-color)!important;font-family:var(--font-sans);padding:10px 12px}.toast .toast-header strong{font-weight:600;color:var(--color);letter-spacing:.01em}.toast .toast-header .close{color:var(--ink-muted)!important;text-shadow:none;opacity:.9;font-size:1.25rem}.toast .toast-header .close:hover{color:var(--color)!important;opacity:1}.toast .toast-body{color:var(--color)!important;padding:12px;font-size:14px;line-height:1.45}.dark-mode .toast{box-shadow:0 8px 24px rgba(0,0,0,.5)}.paper-crumbs{font-family:var(--font-sans);font-size:12px;color:var(--ink-muted);letter-spacing:0}.paper-crumbs .here,.paper-crumbs a{color:var(--color);text-decoration:none}.paper-page-title{font-family:var(--font-sans);font-weight:600;font-size:32px;line-height:1.2;letter-spacing:-.035em;margin:8px 0 6px;color:var(--color)}.paper-page-title em{color:inherit;font-style:normal}.paper-page-lede{color:var(--ink-soft);font-size:16px;max-width:640px;line-height:1.55}.paper-meta-rule{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin:22px 0 18px;padding:12px 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);letter-spacing:.02em}.paper-meta-rule b{color:var(--color);font-weight:500}.paper-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:10px;padding:20px 22px}.dark-mode .paper-card{background:var(--admin-stat-bg)}.paper-section-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);font-weight:500;margin-bottom:10px;display:block}.paper-section-title{font-family:var(--font-serif);font-weight:400;font-size:22px;letter-spacing:-.01em;margin:0 0 8px}.paper-kbd{display:inline-block;font-family:var(--font-mono);font-size:11px;padding:1px 6px;border:1px solid var(--border-color);border-bottom-width:2px;border-radius:3px;background:var(--paper-card,#fff);color:var(--color)}.paper-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;padding:2px 8px;border:1px solid var(--border-color);border-radius:999px;color:var(--ink-soft);background:var(--paper-card,#fff);letter-spacing:.04em}.paper-pill.accent{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.paper-pill.good{border-color:#2f6b3e;color:#2f6b3e}.paper-pill.warn{border-color:var(--status-progress);color:var(--status-progress)}.paper-pill.bad{border-color:var(--status-error);color:var(--status-error)}.paper-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start;padding:18px 0;border-bottom:1px solid var(--border-color)}.paper-row:first-child{border-top:1px solid var(--border-color)}.paper-row .row-title{font-family:var(--font-serif);font-size:20px;letter-spacing:-.01em;line-height:1.2}.paper-row .row-title a{color:var(--color)}.paper-row .row-meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.03em;margin-top:6px;display:flex;flex-wrap:wrap;gap:14px}.paper-row .row-actions{display:flex;gap:6px;flex-shrink:0}.paper-form-step{display:grid;grid-template-columns:48px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--border-color)}.paper-form-step:first-child{border-top:1px solid var(--border-color)}.paper-form-step .step-num{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);padding-top:4px;letter-spacing:.02em}.paper-form-step .step-title{font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;line-height:1.2;margin-bottom:4px}.paper-form-step .step-sub{color:var(--ink-soft);font-size:14px;margin-bottom:14px;text-wrap:pretty}.paper-field-label{font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--color);margin-bottom:6px;display:block}.paper-switch-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:16px}.paper-switch-row+.paper-switch-row{border-top:1px dashed var(--border-soft)}.paper-switch-row .sw-label{font-weight:500}.paper-switch-row .sw-sub{display:block;font-size:13px;color:var(--ink-muted);margin-top:2px}.paper-page .custom-select,.paper-page .form-control{border-radius:6px;border-color:var(--border-color);font-size:14px;padding:8px 12px;height:auto;background:var(--input-bg);color:var(--input-color)}.paper-page .custom-select:focus,.paper-page .form-control:focus{color:var(--input-color);background:var(--input-bg);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.custom-select:focus,.form-control:focus,input:focus,select:focus,textarea:focus{color:var(--input-color)!important;background-color:var(--input-bg)!important}.form-control::selection,input::selection,textarea::selection{background:var(--accent-soft);color:var(--input-color)}.dark-mode .form-control::selection,.dark-mode input::selection,.dark-mode textarea::selection{background:rgba(124,199,190,.3);color:var(--input-color)}.btn.btn-ink{background:var(--color);color:var(--canvas-bg-color);border:1px solid var(--color);font-weight:500;border-radius:6px;padding:8px 14px}.btn.btn-ink:hover{background:var(--primary-hover-bg);color:var(--canvas-bg-color);border-color:var(--primary-hover-bg)}.btn.btn-accent{background:var(--accent);color:#fff;border:1px solid var(--accent);font-weight:500;border-radius:6px}.btn.btn-accent:hover{background:#17544f;border-color:#17544f;color:#fff}.paper-page .dashboard-filter-row{display:flex;align-items:center;gap:10px;padding:14px 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);margin:18px 0 0;flex-wrap:wrap}.paper-page .dashboard-filter-row .form-control{height:38px;background:var(--paper-card)}.paper-page .dashboard-filter-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.paper-page .dashboard-filter-row .btn-group .btn,.paper-page .dashboard-filter-row .dropdown-toggle{background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);height:38px;padding:0 14px;font-size:14px;font-weight:500;border-radius:var(--radius-control,6px);display:inline-flex;align-items:center;gap:6px;line-height:1}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-label{color:var(--ink-muted);font-weight:500}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-label::after{content:"·";margin-left:6px;color:var(--ink-faint)}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-value{font-weight:500}.paper-page .dashboard-filter-row .dropdown-toggle .fas{font-size:11px;color:var(--ink-muted)}.paper-page .dashboard-filter-row .btn-group .btn:hover,.paper-page .dashboard-filter-row .dropdown-toggle:hover{background:var(--hover-bg-color);border-color:var(--border-color);color:var(--color)}.paper-page .dashboard-filter-row .btn-group{gap:0}.paper-page .dashboard-filter-row .btn-group .btn{border-radius:0;border-right-width:0}.paper-page .dashboard-filter-row .btn-group .btn:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.paper-page .dashboard-filter-row .btn-group .btn:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px;border-right-width:1px}.paper-page .dashboard-filter-row .btn-group .btn.btn-primary{background:var(--color);color:var(--canvas-bg-color);border-color:var(--color)}.paper-page .dashboard-filter-row .search-wrap{flex:1 1 280px;min-width:220px}.paper-page .quota-row{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin:24px 0 0;padding:0;background:0 0;border:none;border-radius:0}.paper-page .quota-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);opacity:1}.paper-page .quota-value{font-family:var(--font-mono);font-size:13px;font-variant-numeric:tabular-nums;color:var(--color)}.paper-page .quota-value .quota-unlimited-tag{font-family:var(--font-sans);font-size:12px;color:var(--ink-muted);margin-left:4px}.paper-page .quota-track{height:6px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:999px;overflow:hidden;width:100%;min-width:0}.paper-page .quota-track .quota-fill{height:100%;min-width:2px;border-radius:999px;background:var(--color);transition:width .3s ease}.paper-page .quota-track.quota-warn .quota-fill{background:var(--status-progress)}.paper-page .quota-track.quota-danger .quota-fill{background:var(--status-error)}.paper-page .quota-track.quota-unlimited{background:repeating-linear-gradient(-45deg,var(--paper-bg-alt) 0 4px,var(--border-soft,var(--border-color)) 4px 6px)}.paper-page .repo-list{margin-top:8px}.paper-page .repo-list-item{padding:20px 0;gap:16px;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-page .repo-list-item:first-child{border-top:none}.paper-page .repo-list-item-header{gap:10px;margin-bottom:6px}.paper-page .repo-name{font-family:var(--font-mono);font-size:15px;color:var(--color)}.paper-page .repo-source{font-size:13px;color:var(--ink-soft);opacity:1;gap:10px}.paper-page .repo-source a{color:var(--ink-soft);border-bottom:1px dotted var(--border-color)}.paper-page .repo-source a:hover{color:var(--color)}.paper-page .repo-meta{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);opacity:1;gap:16px;margin-top:10px}.paper-page .type-badge{font-family:var(--font-mono);font-size:11px;padding:3px 8px;letter-spacing:.1em}.paper-page .repo-list-item-actions .dropdown-toggle{background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);border-radius:6px;font-size:13px;padding:6px 12px;height:auto}.paper-settings{max-width:1180px;margin:0 auto;padding:48px 32px 80px}.paper-settings .paper-page-title{max-width:14em}.paper-settings-body{display:grid;grid-template-columns:220px 1fr;gap:60px;margin-top:32px;border-top:1px solid var(--border-color);padding-top:28px}.paper-settings-toc{position:sticky;top:32px;align-self:start}.paper-settings-toc-head{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:12px}.paper-settings-toc nav{display:flex;flex-direction:column;gap:2px}.paper-settings-toc nav a{padding:8px 0 8px 14px;border-left:2px solid transparent;color:var(--ink-soft);font-size:14px;text-decoration:none}.paper-settings-toc nav a.active,.paper-settings-toc nav a:hover{color:var(--color);border-left-color:var(--color)}.paper-settings-main{min-width:0;max-width:720px}.paper-settings-section{padding:28px 0;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-settings-section:first-child{padding-top:0}.paper-settings-section:last-of-type{border-bottom:none}.paper-settings-section .form-group{margin-bottom:18px}.paper-settings-section .form-check{padding:10px 0 10px 28px;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-settings-section .form-check:last-child{border-bottom:none}.paper-settings-section .form-check-label{font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--color);cursor:pointer}.paper-settings-section .form-check-input{cursor:pointer;width:16px;height:16px;margin-top:3px;margin-left:-28px;accent-color:var(--color)}.paper-settings-section .form-text{color:var(--ink-soft);font-size:13px;margin-top:4px;max-width:48em}.paper-settings-section .paper-section-copy{margin:-4px 0 14px}.paper-settings-footer{padding-top:24px;display:flex;flex-direction:column;gap:14px}.paper-settings-footer .btn-ink{align-self:flex-start}.paper-settings-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.paper-settings-hint{font-size:13px;color:var(--ink-muted)}.paper-inline-alert{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--radius-control,6px);border:1px solid var(--border-color);background:var(--paper-bg-alt);font-size:13px;color:var(--color)}.paper-inline-alert i{margin-top:2px;color:var(--ink-muted)}.paper-inline-alert-error{border-color:var(--status-error);background:var(--status-error-soft)}.paper-inline-alert-error i{color:var(--status-error)}.paper-account-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border-color);border-radius:var(--radius-surface,10px);background:var(--paper-card);margin-bottom:20px}.paper-account-card img{flex-shrink:0}.paper-account-identity{flex:1 1 auto;min-width:0}.paper-account-name{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--color)}.paper-account-meta{font-size:13px;color:var(--ink-muted);margin-top:2px}.paper-danger-zone{padding:16px;border:1px solid var(--status-error);border-radius:var(--radius-surface,10px);background:var(--status-error-soft)}.paper-danger-head{font-weight:600;font-size:14px;color:var(--status-error);margin-bottom:6px}.paper-danger-copy{font-size:13px;color:var(--ink-soft);max-width:52em;margin-bottom:12px}.paper-danger-zone .paper-inline-alert{margin-bottom:12px}.btn.btn-outline-danger{background:0 0;color:var(--status-error);border:1px solid var(--status-error);font-weight:500;border-radius:var(--radius-control,6px);padding:8px 14px}.btn.btn-outline-danger:hover{background:var(--status-error);color:#fff;border-color:var(--status-error)}.navbar .user-menu{min-width:260px}.navbar .user-menu .dropdown-item{display:flex;align-items:flex-start;gap:10px;padding:8px 10px!important}.navbar .user-menu .dropdown-item i{width:16px;margin-top:3px;font-size:13px;color:var(--ink-muted);text-align:center}.navbar .user-menu .dropdown-item span{display:flex;flex-direction:column;line-height:1.3}.navbar .user-menu .dropdown-item small{font-size:12px;color:var(--ink-muted)}.navbar .user-menu .dropdown-header{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);padding:8px 10px 6px}.paper-field-label{font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--color);margin-bottom:6px;display:block}@media (max-width:900px){.paper-settings-body{grid-template-columns:1fr;gap:24px}.paper-settings-toc{position:static}.paper-settings-toc nav{flex-direction:row;flex-wrap:wrap;gap:8px}.paper-settings-toc nav a{border-left:none;border-bottom:2px solid transparent;padding:4px 0}.paper-settings-toc nav a.active,.paper-settings-toc nav a:hover{border-bottom-color:var(--color);border-left:none}}.paper-table{display:block;margin-top:20px;background:0 0;border:none;border-top:1px solid var(--border-color);border-radius:0;overflow:visible}.paper-table .paper-table-head,.paper-table .paper-table-row{display:grid;grid-template-columns:minmax(280px,2.4fr) minmax(140px,1fr) 140px 90px 140px 52px;align-items:center;gap:18px;padding:12px 4px}.paper-table.paper-table-conferences .paper-table-head,.paper-table.paper-table-conferences .paper-table-row{grid-template-columns:minmax(280px,2.4fr) 140px 90px 220px 52px}.paper-table.paper-table-repos .paper-table-head,.paper-table.paper-table-repos .paper-table-row{grid-template-columns:minmax(280px,2.4fr) minmax(140px,1fr) 90px 140px 52px}.paper-table.paper-table-repos.has-bulk .paper-table-head,.paper-table.paper-table-repos.has-bulk .paper-table-row{grid-template-columns:28px minmax(280px,2.4fr) minmax(140px,1fr) 90px 140px 52px;gap:12px}.paper-table .admin-users-row{grid-template-columns:28px minmax(280px,2.4fr) 90px 120px 100px 52px!important;gap:12px!important}.paper-table.paper-table-dashboard .paper-table-head,.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(320px,3fr) 190px 90px 170px 52px;gap:20px;padding:8px 4px}.paper-table.paper-table-dashboard .cell-anon .anon-text{gap:2px}.paper-table.paper-table-dashboard .cell-anon .repo-name{padding:0}.paper-table .paper-table-head{background:0 0;border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);padding-top:8px;padding-bottom:8px}.paper-table .paper-table-head .sortable{cursor:pointer;user-select:none;display:inline-flex;align-items:center;gap:6px;background:0 0;border:none;padding:2px 0;margin:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;border-radius:4px}.paper-table .paper-table-head .sortable:hover{color:var(--color)}.paper-table .paper-table-head .sortable.active{color:var(--color)}.paper-table .paper-table-head .sortable i{font-size:10px}.paper-table .paper-table-head .num,.paper-table .paper-table-row .num{text-align:right}.paper-table .paper-table-head .num .sortable{flex-direction:row-reverse}.paper-table .paper-table-row{border-top:1px solid var(--border-soft,var(--border-color));font-size:14px;transition:background-color .12s ease}.paper-table .paper-table-row:hover{background:var(--hover-bg-color)}.paper-table .paper-table-row.row-clickable{cursor:pointer}.paper-table .paper-table-row.repo-inactive>:not(.cell-actions){opacity:.55}.paper-table .paper-table-row.repo-error{background:var(--status-error-soft);border-left:2px solid var(--status-error);padding-left:6px}.paper-table .paper-table-row.repo-error:hover{background:var(--status-error-soft-hover)}.cell-status .status-sub.status-sub-error,.paper-table .cell-status .status-sub-error{color:var(--status-error)}.paper-table .cell-status .status-sub-warn{color:var(--status-progress)}.paper-table .cell-anon{display:flex;align-items:center;gap:12px;min-width:0}.paper-table .cell-anon .type-badge{flex-shrink:0;min-width:52px;justify-content:center}.paper-table .cell-anon .anon-text{min-width:0;display:flex;flex-direction:column;gap:3px}.paper-table .cell-anon .anon-title{display:flex;align-items:center;gap:8px;min-width:0}.paper-table .cell-anon .anon-title .type-badge{margin-left:0}.paper-table .cell-anon .repo-name{font-family:var(--font-mono);font-size:14px;color:var(--color);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%;padding:2px 0}.paper-table .cell-anon .repo-name-static{color:var(--ink-muted);font-style:italic}.paper-table .cell-anon .anon-sub{font-family:var(--font-sans);font-size:13px;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:10px;min-width:0}.paper-table .cell-anon .anon-sub .anon-source{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-anon .anon-sub .conf-tag{flex:0 1 auto;min-width:72px;max-width:50%}.paper-table .cell-anon .anon-sub a{color:var(--ink-muted);border-bottom:1px dotted var(--border-color);padding:4px 0;margin:-4px 0}.paper-table .cell-anon .anon-sub a:hover{color:var(--color)}.paper-table .cell-anon .anon-sub .commit-hash{font-family:var(--font-mono);font-size:12px}.paper-table .cell-conf{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-conf span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-status{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;font-size:14px;color:var(--color);min-width:0}.paper-table .cell-status .status-line{display:inline-flex;align-items:center;gap:8px}.paper-table .cell-status .status-sub{flex-basis:100%;font-family:var(--font-sans);font-size:13px;line-height:1.3;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-views{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color)}.paper-table .cell-expires{font-family:var(--font-sans);font-size:13px;color:var(--ink-soft)}.paper-table .cell-expires .expires-never{color:var(--ink-muted)}.paper-table .cell-expires .expires-past{color:var(--ink-muted)}.paper-table .empty-dash{color:var(--ink-faint)}.paper-table .cell-actions{display:flex;justify-content:flex-end}.status-dot{width:8px;height:8px;border-radius:999px;display:inline-block;flex-shrink:0;background:var(--status-inactive)}.status-dot.status-ready{background:var(--status-ready)}.status-dot.status-error{background:var(--status-error)}.status-dot.status-preparing,.status-dot.status-progress{background:var(--status-progress)}.status-dot.status-expired,.status-dot.status-removed{background:var(--status-inactive)}.dashboard-page{padding-bottom:96px}.dashboard-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:12px;font-size:13px;color:var(--ink-muted)}.dashboard-meta .dashboard-count{font-variant-numeric:tabular-nums}.btn-link-inline{background:0 0;border:none;padding:2px 4px;margin:-2px 0;font:inherit;color:var(--link-color);cursor:pointer;border-radius:4px}.btn-link-inline:hover{color:var(--link-hover-color);text-decoration:underline}.btn.btn-outline-ink{background:0 0;color:var(--color);border:1px solid var(--border-color);font-weight:500;border-radius:var(--radius-control,6px);padding:8px 14px}.btn.btn-outline-ink:hover{background:var(--hover-bg-color);color:var(--color);border-color:var(--ink-faint)}.paper-page .dropdown-menu .dropdown-item-danger,.paper-page .dropdown-menu .dropdown-item-danger i{color:var(--status-error)}.paper-page .dropdown-menu .dropdown-item-danger:focus,.paper-page .dropdown-menu .dropdown-item-danger:hover{background:var(--status-error-soft-hover);color:var(--status-error)}.paper-page .dropdown-menu button.dropdown-item{width:100%;text-align:left;background:0 0;border:none}.paper-page .dropdown-menu .dropdown-divider{border-top-color:var(--border-soft,var(--border-color));margin:4px 0}.paper-table .paper-table-skeleton{pointer-events:none}.skeleton{display:block;background:var(--paper-bg-alt);border-radius:4px;position:relative;overflow:hidden}.skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,var(--hover-bg-color),transparent);animation:skeleton-shimmer 1.4s infinite}.skeleton-line{height:12px}.skeleton-line+.skeleton-line{margin-top:8px}.skeleton-line-sm{height:10px}.skeleton-badge{width:52px;height:22px;border-radius:999px;flex-shrink:0}@keyframes skeleton-shimmer{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.skeleton::after{animation:none}}.paper-table .paper-table-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:56px 20px;color:var(--ink-muted);text-align:center;border-top:1px solid var(--border-soft,var(--border-color))}.paper-table .paper-table-empty>i{font-size:1.5rem;color:var(--ink-faint)}.paper-table .paper-table-empty-actions{display:flex;gap:8px;margin-top:8px}.bulk-bar{display:flex;align-items:center;gap:8px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:8px;padding:8px 12px;margin:8px 0}.paper-page.admin-page .paper-page-title{font-size:1.5rem;margin:4px 0}.paper-page.admin-page .paper-page-lede{display:none}.paper-page.admin-page .paper-crumbs{margin-bottom:4px}.paper-page.admin-page .admin-nav{margin:6px 0 12px}.admin-filter-toolbar{display:flex;flex-direction:column;gap:6px;margin:8px 0 12px;position:sticky;top:0;z-index:4;background:var(--canvas-bg-color);padding:6px 0;border-bottom:1px solid var(--border-soft,var(--border-color));box-shadow:0 1px 0 var(--canvas-bg-color)}@media (max-width:900px){.admin-filter-toolbar{position:static;box-shadow:none}}.admin-filter-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.admin-filter-row .search-wrap{flex:1;min-width:220px}.admin-filter-row .search-wrap .form-control{height:34px}.admin-filter-inline{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-muted)}.admin-filter-inline>label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin:0;white-space:nowrap}.admin-filter-inline .form-control-sm{height:28px;padding:2px 8px;font-size:12px}.admin-filter-inline input[type=search].form-control-sm,.admin-filter-inline input[type=text].form-control-sm{width:130px}.admin-filter-inline input[type=date].form-control-sm{width:130px}.admin-filter-inline select.form-control-sm{width:auto;min-width:88px}.admin-filter-inline .arrow{color:var(--ink-muted);font-size:11px}.admin-filter-spacer{flex:1}.admin-active-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:var(--ink-muted)}.admin-active-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 10px;border:1px solid var(--border-color);border-radius:999px;background:var(--hover-bg-color);font-size:12px;color:var(--color)}.admin-active-chip .key{color:var(--ink-muted);font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.admin-active-chip button{background:0 0;border:none;cursor:pointer;padding:0 4px;color:var(--ink-muted);font-size:12px;border-radius:50%}.admin-active-chip button:hover{color:#b42318}.admin-search-hint{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);pointer-events:none;border:1px solid var(--border-color);border-radius:4px;padding:1px 5px;background:var(--paper-card)}.admin-filter-row .search-wrap{position:relative}.admin-filter-row .search-wrap .form-control{padding-right:40px}.paper-table-row.row-selected{background:rgba(47,122,68,.06)}.queue-state-pills{display:inline-flex;gap:6px;margin-left:8px;flex-wrap:wrap}.queue-state-pills .pill{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted)}.queue-state-pills .pill-active{color:var(--status-progress);border-color:rgba(196,138,46,.4)}.queue-state-pills .pill-failed{color:#b42318;border-color:rgba(180,35,24,.4)}.queue-state-pills .pill-completed{color:#2f7a44;border-color:rgba(47,122,68,.3)}.queue-state-pills .pill-waiting{color:var(--ink-soft)}.queue-state-pills .pill-delayed{color:var(--ink-muted)}.admin-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 12px;font-size:13px}.admin-summary .summary-total{font-family:var(--font-serif);font-size:1rem;color:var(--color);margin-right:8px}.admin-summary .summary-meta{color:var(--ink-muted);font-size:12px;margin-right:8px}.admin-summary .summary-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted);cursor:pointer;font-size:12px;user-select:none;transition:background-color .1s,border-color .1s}.admin-summary .summary-pill:hover{background:var(--hover-bg-color)}.admin-summary .summary-pill .count{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color)}.admin-summary .summary-pill.active{background:var(--primary-bg);color:var(--primary-color);border-color:var(--primary-bg)}.admin-summary .summary-pill.active .count{color:inherit}.admin-summary .summary-pill.error .count{color:#b42318}.admin-summary .summary-pill.warn .count{color:var(--status-progress)}.admin-summary .summary-pill.ok .count{color:#2f7a44}.dark-mode .admin-summary .summary-pill.error .count{color:#f08a82}.dark-mode .admin-summary .summary-pill.warn .count{color:var(--status-progress)}.dark-mode .admin-summary .summary-pill.ok .count{color:#7dc894}.dark-mode .queue-state-pills .pill-active{color:var(--status-progress);border-color:rgba(232,185,112,.4)}.dark-mode .queue-state-pills .pill-failed{color:#f08a82;border-color:rgba(240,138,130,.4)}.dark-mode .queue-state-pills .pill-completed{color:#7dc894;border-color:rgba(125,200,148,.3)}.job-progress{flex:1;height:6px;background:var(--border-soft,var(--border-color));border-radius:999px;overflow:hidden;margin-left:12px;max-width:200px}.job-progress-bar{height:100%;background:#2f7a44;transition:width .3s}.paper-table-empty{padding:48px 4px;text-align:center;color:var(--ink-muted);display:flex;flex-direction:column;align-items:center;gap:8px;border-top:1px solid var(--border-soft,var(--border-color))}.paper-table-empty>i{font-size:1.5rem}.q-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:4px}.q-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.q-range-btns{display:inline-flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.q-range-btns .btn{border:none;border-radius:0;padding:5px 14px;font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);background:var(--paper-card)}.q-range-btns .btn+.btn{border-left:1px solid var(--border-color)}.q-range-btns .btn.active{background:var(--color);color:var(--paper-card)}.q-cards{display:flex;gap:10px;margin:16px 0;flex-wrap:wrap}.q-card{flex:1;min-width:140px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:14px 16px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.q-card:hover{border-color:var(--ink-muted)}.q-card.selected{border-color:var(--color);box-shadow:0 0 0 1px var(--color)}.q-card-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.q-dot{width:8px;height:8px;border-radius:50%;background:#2f7a44;flex-shrink:0}.q-dot-red{background:#b42318}.dark-mode .q-dot{background:#7dc894}.dark-mode .q-dot-red{background:#f08a82}.q-card-name{font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--ink-muted);letter-spacing:.04em}.q-card-count{font-family:var(--font-serif);font-size:2rem;font-weight:400;line-height:1.1;color:var(--color);margin-bottom:6px}.q-card-sub{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.04em}.q-card-bar{height:4px;background:var(--border-color);border-radius:2px;overflow:hidden;margin-top:6px}.q-card-bar-fill{height:100%;background:#1f6a64;border-radius:2px;transition:width .3s}.dark-mode .q-card-bar-fill{background:#7cc7be}.q-detail{display:grid;grid-template-columns:1fr 320px;gap:16px;margin-bottom:20px}.q-throughput{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px}.q-chart-wrap{position:relative}.q-throughput canvas{width:100%;display:block}.q-chart-tooltip{position:absolute;pointer-events:none;background:var(--paper-card);border:1px solid var(--border-color);border-radius:6px;padding:6px 10px;font-family:var(--font-mono);font-size:11px;line-height:1.6;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:10}.q-chart-tooltip .q-tip-time{color:var(--ink-muted);margin-bottom:2px}.q-chart-tooltip .q-tip-completed{color:#1f6a64}.q-chart-tooltip .q-tip-failed{color:#b42318}.dark-mode .q-chart-tooltip .q-tip-completed{color:#7cc7be}.dark-mode .q-chart-tooltip .q-tip-failed{color:#f08a82}.q-chart-crosshair{position:absolute;top:0;width:1px;height:100%;background:var(--ink-muted);opacity:.3;pointer-events:none;z-index:9}.q-stats-panel{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px;display:flex;flex-direction:column}.q-section-label{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--ink-muted);text-transform:lowercase;letter-spacing:.04em;margin-bottom:14px}.q-section-right{float:right;text-transform:uppercase;font-size:10px;letter-spacing:.08em}.q-legend-completed{color:#1f6a64}.q-legend-failed{color:#b42318;margin-left:8px}.q-legend-exec{color:var(--status-progress);margin-left:8px;letter-spacing:2px}.dark-mode .q-legend-completed{color:#7cc7be}.dark-mode .q-legend-failed{color:#f08a82}.dark-mode .q-legend-exec{color:var(--status-progress)}.q-chart-tooltip .q-tip-exec{color:var(--status-progress)}.dark-mode .q-chart-tooltip .q-tip-exec{color:var(--status-progress)}.q-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;flex:1}.q-stat-label{font-family:var(--font-mono);font-size:10px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}.q-stat-value{font-family:var(--font-serif);font-size:1.25rem;font-weight:400;color:var(--color);line-height:1.2}.q-stats-actions{display:flex;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border-color)}.q-stats-actions .btn{font-family:var(--font-mono);font-size:11px;padding:6px 14px;border-radius:8px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}.q-jobs{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px}.q-jobs-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}.q-state-filters{display:inline-flex;gap:6px;flex-wrap:wrap}.q-state-toggle{cursor:pointer;display:inline-flex;align-items:center}.q-state-toggle input{display:none}.q-state-chip{font-family:var(--font-mono);font-size:11px;padding:3px 10px;border-radius:10px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted);transition:opacity .15s,background .15s;text-transform:capitalize}.q-state-toggle input:checked+.q-state-chip{opacity:1}.q-state-toggle input:not(:checked)+.q-state-chip{opacity:.4;text-decoration:line-through}.q-state-badge,.q-state-chip{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.q-state-badge{display:inline-block;padding:2px 8px;border-radius:8px}.q-state-active{background:#dbeafe;color:#1d4ed8}.q-state-waiting{background:#fef3c7;color:#92400e}.q-state-delayed{background:#e0e7ff;color:#4338ca}.q-state-failed{background:#fee2e2;color:#b91c1c}.q-state-completed{background:#dcfce7;color:#166534}.dark-mode .q-state-active{background:rgba(59,130,246,.2);color:#93bbfd}.dark-mode .q-state-waiting{background:rgba(251,191,36,.15);color:#fbbf24}.dark-mode .q-state-delayed{background:rgba(99,102,241,.2);color:#7cc7be}.dark-mode .q-state-failed{background:rgba(239,68,68,.2);color:#fca5a5}.dark-mode .q-state-completed{background:rgba(34,197,94,.15);color:#86efac}.q-cell-state{width:120px}.q-delay-hint{display:block;font-size:10px;color:var(--ink-muted);margin-top:2px;font-family:var(--font-mono)}.q-search-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.q-search-row .form-control{max-width:320px;height:34px}.q-auto-refresh{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}.q-table{width:100%;border-collapse:collapse}.q-table thead th{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;padding:8px 10px;border-bottom:1px solid var(--border-color);text-align:left;white-space:nowrap}.q-table tbody tr{border-bottom:1px solid var(--border-color);transition:background .1s}.q-table tbody tr:hover{background:var(--paper-bg-alt)}.q-table tbody tr:last-child{border-bottom:none}.q-table tbody td{padding:10px 10px;font-size:.875rem;vertical-align:middle}.q-cell-id{font-family:var(--font-mono);font-size:12px;white-space:nowrap}.q-cell-id{display:flex;align-items:center;gap:8px}.q-chevron{font-size:10px;color:var(--ink-muted);transition:transform .15s;flex-shrink:0}.q-chevron-open{transform:rotate(90deg)}.q-cell-id a{color:var(--color)}.q-cell-payload{font-family:var(--font-mono);font-size:12px;color:var(--color)}.q-payload-detail{color:var(--ink-muted)}.q-cell-num{font-family:var(--font-mono);font-size:12px;text-align:center;white-space:nowrap}.q-cell-progress{min-width:120px}.q-progress-wrap{display:flex;align-items:center;gap:8px}.q-progress-bar{flex:1;height:6px;border-radius:3px;overflow:hidden;background-image:linear-gradient(to right,#1f6a64 var(--pct,0),var(--border-color) var(--pct,0))}.dark-mode .q-progress-bar{background-image:linear-gradient(to right,#7cc7be var(--pct,0),var(--border-color) var(--pct,0))}.q-progress-label{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);white-space:nowrap;min-width:32px;text-align:right}.q-cell-actions{text-align:right;white-space:nowrap}.q-cell-actions .btn{padding:3px 8px;font-size:11px;background:0 0;border:1px solid var(--border-color);color:var(--ink-muted)}.q-cell-actions .btn:hover{color:var(--color)}.q-row-failed{background:rgba(180,35,24,.04)}.dark-mode .q-row-failed{background:rgba(240,138,130,.06)}.q-error-detail{padding:4px 10px 12px;font-size:12px}.q-error-reason{color:#b42318;font-size:.8125rem;margin-bottom:4px}.dark-mode .q-error-reason{color:#f08a82}.q-toast-error{background:#fbe7e7;color:#b42318;border:1px solid #f3c7c7;border-radius:8px;padding:10px 16px;margin-bottom:12px;font-family:var(--font-mono);font-size:12px;cursor:pointer;display:flex;align-items:center;gap:8px}.dark-mode .q-toast-error{background:rgba(240,138,130,.1);color:#f08a82;border-color:rgba(240,138,130,.25)}.q-error-stack{font-size:.75rem;max-height:120px;overflow:auto;margin:4px 0 0;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:6px;padding:8px 10px}.q-row-expanded>td{border-bottom-color:transparent}.q-detail-row>td{padding:0 10px 14px!important;border-bottom:1px solid var(--border-color)}.q-job-detail{background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:8px;padding:14px 16px}.q-job-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px 20px;margin-bottom:10px}.q-job-detail-item{display:flex;flex-direction:column;gap:2px}.q-job-detail-label{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em}.q-job-detail-value{font-family:var(--font-mono);font-size:12px;color:var(--color);word-break:break-all}.q-job-detail-value a{color:var(--color)}.q-job-detail-error{margin:8px 0}.q-job-detail-actions{display:flex;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border-color)}.q-job-detail-actions .btn{font-family:var(--font-mono);font-size:11px;padding:5px 12px;border-radius:6px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}@media (max-width:900px){.q-detail{grid-template-columns:1fr}.q-cards{flex-direction:column}.q-card{min-width:100%}.q-jobs-header{flex-direction:column;align-items:flex-start}.q-tabs{flex-wrap:wrap}.q-search-row{flex-wrap:wrap}.q-search-row .form-control{max-width:100%;flex:1}.q-table{font-size:12px}.q-header{flex-direction:column}.q-job-detail-grid{grid-template-columns:1fr 1fr}}@media (max-width:900px){.paper-table .paper-table-head{display:none}.paper-table .admin-users-row,.paper-table .paper-table-row,.paper-table.paper-table-conferences .paper-table-row,.paper-table.paper-table-repos .paper-table-row{display:flex!important;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:14px 0;grid-template-columns:none!important}.paper-table .cell-anon{flex:1 1 calc(100% - 52px);min-width:0;order:1}.paper-table .cell-actions{flex:0 0 auto;order:2;align-self:center}.paper-table .cell-conf,.paper-table .cell-expires,.paper-table .cell-status,.paper-table .cell-views{order:3;font-size:13px;color:var(--ink-muted);display:inline-flex;align-items:center;gap:6px;text-align:left}.paper-table .cell-status{flex-wrap:nowrap;gap:6px;min-width:0}.paper-table .cell-status .status-sub{flex-basis:auto;font-size:13px;line-height:inherit}.paper-table .cell-status .status-sub::before{content:"·";margin-right:6px;color:var(--ink-faint)}.paper-table .cell-conf{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-views.num{text-align:left}.paper-table .paper-table-skeleton .cell-expires,.paper-table .paper-table-skeleton .cell-status,.paper-table .paper-table-skeleton .cell-views{flex:1 1 30%}.paper-table .cell-views::before{content:'\f06e';font-family:'Font Awesome 5 Free';font-weight:900;font-size:10px;color:var(--ink-muted)}.paper-table .cell-expires::before{content:'\f017';font-family:'Font Awesome 5 Free';font-weight:400;font-size:10px;color:var(--ink-muted)}.paper-table .cell-conf::before{content:'\f51c';font-family:'Font Awesome 5 Free';font-weight:900;font-size:10px;color:var(--ink-muted)}.paper-table-dashboard .cell-conf::before{content:none}.paper-table .cell-conf:has(.empty-dash),.paper-table .cell-expires:has(.empty-dash){display:none}.paper-table .cell-expires::before,.paper-table .cell-views::before{color:var(--ink-faint)}}.paper-page .dropdown-menu{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface,10px);box-shadow:0 12px 28px rgba(26,24,21,.08);padding:6px;min-width:220px;font-family:var(--font-sans);font-size:14px;color:var(--color);margin-top:6px}.paper-page .dropdown-menu .dropdown-header{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);padding:8px 10px 6px;font-weight:500}.paper-page .dropdown-menu .dropdown-item{border-radius:6px;padding:8px 10px;color:var(--color);font-size:14px;display:flex;align-items:center;gap:8px}.paper-page .dropdown-menu .dropdown-item:focus,.paper-page .dropdown-menu .dropdown-item:hover{background:var(--hover-bg-color);color:var(--color)}.paper-page .dropdown-menu .dropdown-item i{width:16px;font-size:13px;color:var(--ink-muted)}.paper-page .dropdown-menu .form-check.dropdown-item{padding:8px 10px 8px 36px!important;position:relative}.paper-page .dropdown-menu .form-check.dropdown-item .form-check-input{position:absolute;left:12px;top:50%;transform:translateY(-50%);margin:0;width:16px;height:16px;accent-color:var(--color);cursor:pointer}.paper-page .dropdown-menu .form-check.dropdown-item .form-check-label{font-family:var(--font-sans);font-size:14px;color:var(--color);font-weight:400;margin:0;cursor:pointer}.btn.btn-icon-dots{width:32px;height:32px;padding:0;border:1px solid transparent;background:0 0;color:var(--ink-muted);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;line-height:1}.btn.btn-icon-dots:focus,.btn.btn-icon-dots:hover,.btn.btn-icon-dots[aria-expanded=true]{background:var(--hover-bg-color);border-color:var(--border-color);color:var(--color)}.btn.btn-icon-dots::after{display:none}.btn.btn-icon-dots i{font-size:15px}.paper-page .repo-list-empty{border-top:none;padding:56px 20px;color:var(--ink-muted)}.paper-page .filter-chip{background:var(--paper-bg-alt);color:var(--color);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px}@media (max-width:768px){.paper-page .paper-page-title{font-size:clamp(1.4rem,6vw,1.9rem);margin:4px 0 2px}.paper-page .paper-page-lede{font-size:13px;line-height:1.4;margin-bottom:0}.paper-page .btn-ink{padding:6px 12px;font-size:13px}.paper-page .quota-row{grid-template-columns:1fr;gap:12px;padding:0;margin:16px 0 0}.paper-page .dashboard-filter-row{padding:10px 0;margin-top:12px;gap:8px}.paper-page .quota-header{flex-direction:row;align-items:baseline;gap:8px}.paper-page .quota-value{white-space:nowrap}.paper-page .dashboard-filter-controls{width:100%}.paper-page .dashboard-filter-controls .btn-group{flex:1 1 100%;display:flex}.paper-page .dashboard-filter-controls .btn-group .btn{flex:1;justify-content:center}.paper-page .dashboard-filter-controls .dropdown{flex:1 1 0;min-width:0}.paper-page .dashboard-filter-controls .dropdown .dropdown-toggle{width:100%;justify-content:space-between}.paper-page .dashboard-filter-controls .dropdown .filter-btn-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media (max-width:480px){.paper-page .paper-page-lede{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}.empty-state{text-align:center;padding:40px 20px;opacity:.6}.empty-state i{font-size:2rem;margin-bottom:10px;display:block}.paper-page .progress{height:10px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:999px;overflow:hidden;margin-bottom:20px}.paper-page .progress .progress-bar{background:var(--color);color:var(--canvas-bg-color);font-family:var(--font-mono);font-size:10px;line-height:10px}.paper-page .progress .progress-bar.bg-success{background:var(--status-ready)!important}.paper-page .progress .progress-bar.bg-warning{background:var(--status-progress)!important;color:#fff}.paper-page .progress .progress-bar.bg-danger{background:var(--status-error)!important}.paper-page .progress .progress-bar.bg-dark{background:var(--ink-faint)!important}.paper-page .form>h5,.paper-page form>h5,.paper-page>h5{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin:24px 0 8px}.paper-page .accordion .card{background:var(--paper-card,var(--sidebar-bg-color));border:1px solid var(--border-color);border-radius:8px!important;margin-bottom:8px;overflow:hidden}.paper-page .accordion .card+.card{border-top:1px solid var(--border-color)}.paper-page .accordion .card-header{background:0 0;border:none;padding:0}.paper-page .accordion .card-header .btn{color:var(--color)!important;font-family:var(--font-sans);font-weight:500;font-size:14px;padding:14px 18px!important;background:0 0!important;border:none!important;position:relative}.paper-page .accordion .card-header .btn::after{content:"+";position:absolute;right:18px;font-family:var(--font-serif);font-size:20px;color:var(--ink-muted)}.paper-page .accordion .card-header .btn:not(.collapsed)::after{content:"–"}.paper-page .accordion .card-body{padding:6px 18px 18px!important;border-top:1px solid var(--border-soft)}.paper-page .accordion .form-check-label{color:var(--color);font-weight:500;font-size:14px}.paper-page .accordion .form-text{color:var(--ink-muted);font-size:12px;margin-top:2px}.faq-section .panel-body code{font-family:var(--font-mono);font-size:13px;padding:1px 6px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:3px;color:var(--color)}.faq-section .panel-body a{color:var(--accent)}@media (max-width:820px){.paper-faq-body{grid-template-columns:1fr;gap:24px}.paper-faq-toc{position:static}}.paper-footer{margin-top:80px;padding:56px max(20px,calc((100% - 1076px)/ 2)) 28px;border-top:1px solid var(--border-color);background:var(--canvas-bg-color);font-family:var(--font-sans)}.paper-footer-inner{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}.paper-footer-brand .paper-footer-mark{font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;color:var(--color)}.paper-footer-brand .paper-footer-mark em{font-style:italic;font-weight:400}.paper-footer-tag{margin-top:10px;color:var(--ink-soft);font-size:14px;line-height:1.55;max-width:340px}.paper-footer-head{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px}.paper-footer-col a{display:block;color:var(--color);font-size:14px;padding:4px 0;text-decoration:none}.paper-footer-col a:hover{color:var(--accent)}.paper-footer-rule{height:1px;background:var(--border-color);margin:40px 0 16px}.paper-footer-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--ink-muted);font-family:var(--font-sans);letter-spacing:0}.paper-footer-foot .paper-footer-meta{font-family:var(--font-serif);font-style:italic;font-size:14px;letter-spacing:0;color:var(--ink-soft)}@media (max-width:768px){.paper-footer-inner{grid-template-columns:1fr 1fr}}.file.folder.truncated .truncated-warning{color:var(--status-progress);margin-left:4px;font-size:.85em;flex-shrink:0}.file.folder.truncated>a{color:var(--status-progress)}body{--bucket-error-bg:#FCEDED;--bucket-error-fg:#8A1F1F;--bucket-error-bd:#F0C4C4;--bucket-error-dot:#B53737;--bucket-warn-bg:#FFF3DF;--bucket-warn-fg:#7A4D00;--bucket-warn-bd:#F0D8A0;--bucket-warn-dot:#B07A2F;--bucket-info-bg:#EAF2EC;--bucket-info-fg:#2C5D3A;--bucket-info-bd:#C5DCCD;--bucket-info-dot:#5B8D6B;--card-shadow:0 1px 2px rgba(26, 24, 21, 0.04),0 4px 14px rgba(26, 24, 21, 0.05);--card-shadow-hover:0 1px 2px rgba(26, 24, 21, 0.06),0 8px 24px rgba(26, 24, 21, 0.08)}.dark-mode{--bucket-error-bg:rgba(255, 139, 123, 0.10);--bucket-error-fg:var(--status-error);--bucket-error-bd:rgba(255, 139, 123, 0.28);--bucket-error-dot:var(--status-error);--bucket-warn-bg:rgba(255, 211, 122, 0.10);--bucket-warn-fg:var(--status-progress);--bucket-warn-bd:rgba(255, 211, 122, 0.28);--bucket-warn-dot:var(--status-progress);--bucket-info-bg:rgba(152, 200, 168, 0.10);--bucket-info-fg:#98C8A8;--bucket-info-bd:rgba(152, 200, 168, 0.28);--bucket-info-dot:#98C8A8;--card-shadow:0 1px 2px rgba(0, 0, 0, 0.35),0 6px 18px rgba(0, 0, 0, 0.30);--card-shadow-hover:0 2px 4px rgba(0, 0, 0, 0.45),0 12px 28px rgba(0, 0, 0, 0.40)}.errors-page .errors-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:4px 0 8px}.errors-page .errors-actions{display:flex;gap:6px}.errors-page .kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin:14px 0 18px}.errors-page .kpi-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 20px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--card-shadow);transition:box-shadow 160ms ease,transform 160ms ease}.errors-page .kpi-card:hover{box-shadow:var(--card-shadow-hover)}.errors-page .kpi-label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.errors-page .kpi-value{font-family:var(--font-serif);font-size:2.6rem;font-weight:400;line-height:1;margin-top:2px;color:var(--color)}.errors-page .kpi-card.kpi-error .kpi-value{color:var(--bucket-error-fg)}.errors-page .kpi-card.kpi-warn .kpi-value{color:var(--bucket-warn-fg)}.errors-page .kpi-card.kpi-info .kpi-value{color:var(--bucket-info-fg)}.errors-page .kpi-sub{font-size:.75rem;color:var(--ink-muted);font-style:italic}.errors-page .kpi-sub.up{color:var(--bucket-error-fg);font-style:normal}.errors-page .kpi-sub.down{color:var(--bucket-info-fg);font-style:normal}.errors-page .dropped-warn{color:var(--bucket-error-fg);font-weight:600;font-style:normal}.errors-page .volume-chart{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;margin-bottom:18px;box-shadow:var(--card-shadow)}.errors-page .volume-head{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.errors-page .volume-legend{display:flex;gap:14px;align-items:center;text-transform:none;letter-spacing:0;font-family:var(--font-sans)}.errors-page .volume-legend .dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;vertical-align:middle}.errors-page .dot.dot-error{background:var(--bucket-error-dot)}.errors-page .dot.dot-warn{background:var(--bucket-warn-dot)}.errors-page .dot.dot-info{background:var(--bucket-info-dot)}.errors-page .volume-bars{display:flex;align-items:flex-end;gap:4px;height:80px}.errors-page .volume-bar{display:flex;flex-direction:column-reverse;flex:1 1 0;min-width:6px;height:100%}.errors-page .volume-bar .seg{display:block;width:100%}.errors-page .seg.seg-error{background:var(--bucket-error-dot)}.errors-page .seg.seg-warn{background:var(--bucket-warn-dot)}.errors-page .seg.seg-info{background:var(--bucket-info-dot);opacity:.7}.errors-page .errors-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.errors-page .seg-tabs{display:inline-flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--paper-card)}.errors-page .seg-tabs button{background:0 0;border:none;padding:6px 14px;font-size:.875rem;cursor:pointer;color:var(--color);font-family:var(--font-sans)}.errors-page .seg-tabs button+button{border-left:1px solid var(--border-color)}.errors-page .seg-tabs button.active{background:var(--primary-bg);color:var(--primary-color)}.errors-page .errors-toolbar .search-wrap{position:relative;flex:1 1 320px;min-width:220px}.errors-page .errors-toolbar .search-wrap input{width:100%;padding:6px 10px 6px 32px;border:1px solid var(--border-color);border-radius:8px;font-family:var(--font-mono);font-size:.8125rem;background:var(--input-bg);color:var(--input-color)}.errors-page .errors-toolbar .search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-muted);font-size:.875rem}.errors-page .errors-toolbar .filter-count{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:.75rem;color:var(--ink-muted)}.errors-page .errors-toolbar .select-wrap{display:inline-flex;align-items:center;gap:6px}.errors-page .errors-toolbar .select-wrap label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin:0}.errors-page .errors-toolbar .select-wrap select{background:var(--input-bg);color:var(--input-color);border:1px solid var(--border-color);border-radius:8px}.errors-page .errors-toolbar .autoref{display:inline-flex;gap:6px;align-items:center;font-size:.8125rem;color:var(--color);cursor:pointer;margin:0}.errors-page .btn-icon{width:32px;padding:4px 0}.errors-page .errors-list{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;box-shadow:var(--card-shadow)}.errors-page .errors-list-head,.errors-page .errors-row-main{display:grid;grid-template-columns:110px 100px 100px 1fr 60px 70px;gap:16px;padding:18px 20px;align-items:start}.errors-page .errors-list-head{padding:12px 20px;align-items:center}.errors-page .errors-list-head{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);border-bottom:1px solid var(--border-color);background:var(--paper-bg-alt)}.errors-page .errors-row{border-bottom:1px solid var(--border-soft)}.errors-page .errors-row:last-child{border-bottom:none}.errors-page .errors-row.open{background:var(--paper-bg-alt)}.errors-page .errors-row-main{cursor:pointer}.errors-page .errors-row-main:hover{background:var(--hover-bg-color)}.errors-page .col-when .when-rel{font-size:.9375rem;color:var(--color);font-variant-numeric:tabular-nums}.errors-page .col-when .when-abs{font-family:var(--font-mono);font-size:.75rem;color:var(--ink-muted);font-variant-numeric:tabular-nums;margin-top:2px}.errors-page .col-sev{display:flex;align-items:center;gap:8px}.errors-page .sev-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.errors-page .sev-dot.sev-error{background:var(--bucket-error-dot)}.errors-page .sev-dot.sev-warn{background:var(--bucket-warn-dot)}.errors-page .sev-dot.sev-info{background:var(--bucket-info-dot)}.errors-page .sev-label{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.08em;color:var(--color)}.errors-page .pill-module{display:inline-block;font-family:var(--font-mono);font-size:.75rem;background:var(--paper-bg-alt);color:var(--ink-soft);border:1px solid var(--border-color);padding:3px 10px;border-radius:6px}.errors-page .col-msg .msg-code{font-family:var(--font-mono);font-size:1rem;color:var(--color);font-weight:600}.errors-page .col-msg .msg-context{color:var(--ink-muted);font-style:italic;font-size:.875rem;margin-left:10px}.errors-page .col-msg .msg-detail{color:var(--ink-soft);font-family:var(--font-mono);font-size:.8125rem;margin-left:10px}.errors-page .col-msg .msg-url{color:var(--ink-muted);font-family:var(--font-mono);font-size:.8125rem;margin-top:6px;word-break:break-all}.errors-page .count-pill{display:inline-block;padding:2px 8px;border-radius:4px;background:var(--primary-bg);color:var(--primary-color);font-family:var(--font-mono);font-size:.75rem;font-variant-numeric:tabular-nums}.errors-page .count-pill.count-pill-muted{background:0 0;color:var(--ink-muted);border:1px solid var(--border-color)}.errors-page .status-pill{display:inline-block;padding:2px 10px;border-radius:4px;font-family:var(--font-mono);font-size:.8125rem;font-variant-numeric:tabular-nums;border:1px solid transparent}.errors-page .status-pill.status-error{background:var(--bucket-error-bg);color:var(--bucket-error-fg);border-color:var(--bucket-error-bd)}.errors-page .status-pill.status-warn{background:var(--bucket-warn-bg);color:var(--bucket-warn-fg);border-color:var(--bucket-warn-bd)}.errors-page .status-pill.status-info{background:var(--bucket-info-bg);color:var(--bucket-info-fg);border-color:var(--bucket-info-bd)}.errors-page .errors-row-detail{padding:0 16px 16px}.errors-page .detail-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border-color);margin-bottom:12px}.errors-page .detail-tabs button{background:0 0;border:0;border-bottom:2px solid transparent;padding:8px 12px;font-size:.875rem;cursor:pointer;color:var(--ink-muted);font-family:var(--font-sans)}.errors-page .detail-tabs button.active{color:var(--color);border-bottom-color:var(--color)}.errors-page .detail-body{display:grid;grid-template-columns:1fr 260px;gap:20px}.errors-page .detail-main pre{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;font-family:var(--font-mono);font-size:.875rem;line-height:1.7;color:var(--color);max-height:26em;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;box-shadow:var(--card-shadow)}.errors-page .related-list{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;max-height:22em;overflow:auto;box-shadow:var(--card-shadow)}.errors-page .stack-pre{line-height:1.45;white-space:pre;overflow-x:auto}.errors-page .related-row{display:flex;gap:10px;padding:6px 12px;align-items:center;border-bottom:1px solid var(--border-soft);font-size:.8125rem}.errors-page .related-row:last-child{border-bottom:none}.errors-page .detail-actions{display:flex;gap:6px;align-items:center;margin-top:10px}.errors-page .copy-hint{font-size:.75rem;color:var(--bucket-info-fg)}.errors-page .detail-aside{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px;box-shadow:var(--card-shadow)}.errors-page .aside-block+.aside-block{margin-top:16px}.errors-page .aside-label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin-bottom:4px}.errors-page .aside-value{font-family:var(--font-serif);font-size:1rem;color:var(--color);word-break:break-word;line-height:1.3}.errors-page .aside-value.mono{font-family:var(--font-mono);font-size:.8125rem}.errors-page .aside-sub{color:var(--ink-muted);font-style:italic;font-size:.8125rem;font-family:var(--font-sans)}.errors-page .errors-pager{display:flex;justify-content:space-between;align-items:center;padding:10px 0;color:var(--ink-muted);font-size:.875rem}@media (max-width:720px){.errors-page .errors-list-head,.errors-page .errors-row-main{grid-template-columns:80px 80px 1fr 60px}.errors-page .errors-list-head .col-mod,.errors-page .errors-list-head .col-sev,.errors-page .errors-row-main .col-mod,.errors-page .errors-row-main .col-sev{display:none}.errors-page .detail-body{grid-template-columns:1fr}}.overview-page .ov-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:2px}.overview-page .ov-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:6px;vertical-align:middle}.overview-page .ov-dot-ok{background:#2f7a44}.overview-page .ov-dot-warn{background:var(--status-progress)}.overview-page .ov-dot-idle{background:var(--ink-muted)}.dark-mode .overview-page .ov-dot-ok{background:#7dc894}.dark-mode .overview-page .ov-dot-warn{background:var(--status-progress)}.overview-page .ov-kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin:16px 0 22px}.overview-page .ov-kpi-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--card-shadow);transition:box-shadow 160ms ease}.overview-page .ov-kpi-card:hover{box-shadow:var(--card-shadow-hover)}.overview-page .ov-kpi-label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.overview-page .ov-kpi-value{font-family:var(--font-serif);font-size:2.6rem;font-weight:400;line-height:1;margin-top:2px;color:var(--color)}.overview-page .ov-kpi-value.ov-val-warn{color:#b42318}.dark-mode .overview-page .ov-kpi-value.ov-val-warn{color:#f08a82}.overview-page .ov-kpi-sub{font-size:.75rem;color:var(--ink-muted);margin-top:2px}.overview-page .ov-daily-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:-4px 0 22px}.overview-page .ov-daily-card{background:var(--primary-bg);border:1px solid var(--border-color);border-radius:12px;padding:16px 20px;box-shadow:var(--card-shadow)}.overview-page .ov-daily-label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.overview-page .ov-daily-value{font-family:var(--font-serif);font-size:2.5rem;font-weight:400;line-height:1;color:var(--accent,#1f6a64);margin-top:6px}.overview-page .ov-daily-sub{font-size:.75rem;color:var(--ink-muted);margin-top:5px}.dark-mode .overview-page .ov-daily-card{background:var(--paper-card)}.dark-mode .overview-page .ov-daily-value{color:#7cc7be}.overview-page .ov-chart-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.overview-page .ov-chart-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px 14px;box-shadow:var(--card-shadow)}.overview-page .ov-chart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.overview-page .ov-chart-title{font-family:var(--font-serif);font-size:1rem}.overview-page .ov-chart-legend{font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-muted);display:flex;align-items:center;gap:5px}.overview-page .ov-dot-legend{display:inline-block;width:8px;height:8px;border-radius:50%}.overview-page .ov-dot-accent{background:var(--accent,#1f6a64)}.overview-page .ov-dot-ok-fill{background:#2f7a44}.overview-page .ov-dot-user-fill{background:#8b5e2e}.overview-page .ov-dot-new-user-fill{background:var(--status-progress)}.dark-mode .overview-page .ov-dot-ok-fill{background:#7dc894}.dark-mode .overview-page .ov-dot-user-fill{background:var(--status-progress)}.dark-mode .overview-page .ov-dot-new-user-fill{background:var(--status-progress)}.overview-page .ov-spark-bars{display:flex;align-items:flex-end;gap:3px;height:140px}.overview-page .ov-spark-col{flex:1;display:flex;align-items:flex-end;height:100%;position:relative}.overview-page .ov-spark-fill{width:100%;background:var(--accent,#1f6a64);border-radius:2px 2px 0 0;transition:height .3s ease;opacity:.55}.overview-page .ov-spark-fill-alt{background:#2f7a44}.overview-page .ov-spark-fill-user{background:#8b5e2e}.overview-page .ov-spark-fill-new-user{background:var(--status-progress)}.dark-mode .overview-page .ov-spark-fill-alt{background:#7dc894}.dark-mode .overview-page .ov-spark-fill-user{background:var(--status-progress)}.dark-mode .overview-page .ov-spark-fill-new-user{background:var(--status-progress)}.overview-page .ov-spark-col:hover .ov-spark-fill{opacity:1}.overview-page .ov-spark-col.has-tip::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%) translateY(4px);z-index:10;padding:6px 8px;border-radius:6px;background:var(--color);color:var(--canvas-bg-color);font-family:var(--font-mono);font-size:.6875rem;line-height:1;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity 120ms ease,transform 120ms ease}.overview-page .ov-spark-col.has-tip::before{content:"";position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%) translateY(4px);z-index:10;border:5px solid transparent;border-top-color:var(--color);opacity:0;pointer-events:none;transition:opacity 120ms ease,transform 120ms ease}.overview-page .ov-spark-col.has-tip:hover::after,.overview-page .ov-spark-col.has-tip:hover::before{opacity:1;transform:translateX(-50%) translateY(0)}.overview-page .ov-spark-x{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-muted);margin-top:6px}.overview-page .ov-triple-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:18px}.overview-page .ov-panel-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 20px;box-shadow:var(--card-shadow)}.overview-page .ov-panel-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}.overview-page .ov-panel-title{font-family:var(--font-serif);font-size:1rem}.overview-page .ov-panel-meta{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted)}.overview-page .ov-panel-foot{margin-top:12px;padding-top:10px;border-top:1px solid var(--border-color);font-size:.8125rem}.overview-page .ov-panel-foot a{color:var(--link-color);text-decoration:none}.overview-page .ov-panel-foot a:hover{text-decoration:underline}.overview-page .ov-performance{min-width:0;margin:22px 0}.overview-page .ov-performance-head{align-items:center;flex-wrap:wrap;gap:12px 20px}.overview-page .ov-performance-head h2{margin:0 0 4px}.overview-page .ov-performance-note{margin:0 0 12px;font-size:12px;line-height:1.5;color:var(--ink-muted)}.overview-page .ov-performance-head .ov-performance-note{margin:0}.overview-page .ov-performance-window{display:flex;align-items:center;gap:8px;flex-shrink:0}.overview-page .ov-performance-window label{margin:0;font-size:12px;color:var(--ink-muted)}.overview-page .ov-performance-window select{width:auto}.overview-page .ov-performance-tabs{margin:0 0 16px;gap:4px}.overview-page .ov-performance-tabs .paper-tab{white-space:nowrap}.overview-page .ov-metrics-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--border-color);border-radius:var(--radius-control,8px)}.overview-page .ov-metrics-table{width:100%;border-collapse:collapse;color:var(--color);font-size:13px;line-height:1.5;font-variant-numeric:tabular-nums}.overview-page .ov-metrics-table td,.overview-page .ov-metrics-table th{padding:10px 12px;border-bottom:1px solid var(--border-color);vertical-align:middle;white-space:nowrap}.overview-page .ov-metrics-table thead th{background:var(--paper-bg-alt);color:var(--ink-muted);font-size:12px;font-weight:500}.overview-page .ov-metrics-table .num{text-align:right}.overview-page .ov-metrics-table tr:last-child>*{border-bottom:0}.overview-page .ov-metrics-table thead tr:last-child>*{border-bottom:1px solid var(--border-color)}.overview-page .ov-metrics-table tbody tr:hover{background:var(--hover-bg-color)}.overview-page .ov-metrics-table .ov-metric-name{min-width:190px;max-width:280px;text-align:left;white-space:normal;overflow-wrap:anywhere;font-weight:500}.overview-page .ov-metrics-table small{display:block;margin-top:3px;font-size:11px;font-weight:400;color:var(--ink-muted)}.overview-page .ov-metrics-table small .ui-icon{width:12px;height:12px}.overview-page .ov-metric-warning-row{background:rgba(196,138,46,.07)}.overview-page .ov-metric-warn,.overview-page .ov-metrics-table small.ov-metric-warn{color:#946519}.dark-mode .overview-page .ov-metric-warn,.dark-mode .overview-page .ov-metrics-table small.ov-metric-warn{color:var(--status-progress)}.overview-page .ov-performance-message{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;margin:0 0 16px;border:1px solid var(--border-color);border-radius:var(--radius-control,8px);font-size:13px;line-height:1.5}.overview-page .ov-performance-message span{flex:1;min-width:160px}.overview-page .ov-performance-warning{background:rgba(196,138,46,.07)}.overview-page .ov-performance-empty{margin:0;padding:24px 12px;text-align:center;font-size:13px;color:var(--ink-muted)}.overview-page .ov-performance-help{margin-top:16px;font-size:12px;line-height:1.6;color:var(--ink-muted)}.overview-page .ov-performance-help summary{width:fit-content;cursor:pointer}.overview-page .ov-performance-help p{margin:8px 0 0;max-width:80ch}@media (max-width:575px){.overview-page .ov-performance{padding:16px 12px}.overview-page .ov-performance-window{width:100%}.overview-page .ov-performance-window select{flex:1;min-width:0}.overview-page .ov-performance-tabs .paper-tab{flex:1;padding:10px 8px}}.overview-page .ov-stacked-bar{display:flex;height:18px;border-radius:6px;overflow:hidden;margin-bottom:14px}.overview-page .ov-bar-seg{min-width:2px;transition:width .4s ease}.overview-page .ov-bar-ready{background:#2f7a44}.overview-page .ov-bar-preparing{background:var(--status-progress)}.overview-page .ov-bar-error{background:#b42318}.overview-page .ov-bar-expired{background:#8a857c}.overview-page .ov-bar-removed{background:#b5afa2}.dark-mode .overview-page .ov-bar-ready{background:#7dc894}.dark-mode .overview-page .ov-bar-preparing{background:var(--status-progress)}.dark-mode .overview-page .ov-bar-error{background:#f08a82}.dark-mode .overview-page .ov-bar-expired{background:#6b665e}.dark-mode .overview-page .ov-bar-removed{background:#4a453e}.overview-page .ov-bar-legend{display:flex;flex-direction:column;gap:6px}.overview-page .ov-legend-item{display:flex;align-items:center;gap:8px;font-size:.8125rem;text-decoration:none;color:inherit}.overview-page .ov-legend-item:hover{text-decoration:none;color:inherit}.overview-page .ov-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;flex-shrink:0}.overview-page .ov-legend-n{margin-left:auto;font-family:var(--font-mono);font-size:.8125rem;font-weight:600}.overview-page .ov-error-bars{display:flex;flex-direction:column;gap:12px}.overview-page .ov-ebar-row{display:flex;align-items:center;gap:10px}.overview-page .ov-ebar-label{width:30px;flex-shrink:0;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;color:var(--ink-muted)}.overview-page .ov-ebar-track{flex:1;height:10px;background:var(--hover-bg-color);border-radius:5px;overflow:hidden}.overview-page .ov-ebar-fill{height:100%;border-radius:5px;transition:width .4s ease}.overview-page .ov-ebar-error{background:#b42318}.overview-page .ov-ebar-warn{background:var(--status-progress)}.overview-page .ov-ebar-info{background:var(--accent,#1f6a64)}.dark-mode .overview-page .ov-ebar-error{background:#f08a82}.dark-mode .overview-page .ov-ebar-warn{background:var(--status-progress)}.overview-page .ov-ebar-n{width:36px;text-align:right;font-family:var(--font-mono);font-size:.8125rem;font-weight:600;flex-shrink:0}.overview-page .ov-routes-table{display:flex;flex-direction:column}.overview-page .ov-route-row{display:grid;grid-template-columns:1fr 60px 60px 60px;padding:8px 0;border-bottom:1px solid var(--border-soft,var(--border-color));text-decoration:none;color:inherit;font-size:.875rem;align-items:center}.overview-page .ov-route-row:last-child{border-bottom:none}.overview-page .ov-route-row:hover{background:var(--hover-bg-color);text-decoration:none;color:inherit}.overview-page .ov-route-head{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);border-bottom:1px solid var(--border-color)}.overview-page .ov-route-head:hover{background:0 0}.overview-page .ov-route-name{font-family:var(--font-mono);font-size:.8125rem}.overview-page .ov-route-n{text-align:right;font-family:var(--font-mono);font-size:.8125rem}.overview-page .ov-route-lat{color:var(--ink-muted)}.overview-page .ov-n-bad{color:#b42318;font-weight:600}.dark-mode .overview-page .ov-n-bad{color:#f08a82}.overview-page .ov-services-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;box-shadow:var(--card-shadow);margin-bottom:18px}.overview-page .ov-services-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}.overview-page .ov-services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.overview-page .ov-svc{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--border-soft,var(--border-color));border-radius:10px}.overview-page .ov-svc-dot{width:10px;height:10px;border-radius:50%;margin-top:3px;flex-shrink:0}.overview-page .ov-svc-info{display:flex;flex-direction:column;gap:1px;flex:1}.overview-page .ov-svc-name{font-family:var(--font-mono);font-size:.875rem;font-weight:600}.overview-page .ov-svc-meta{font-size:.75rem;color:var(--ink-muted)}.overview-page .ov-svc-detail{font-size:.75rem;color:var(--ink-muted);white-space:nowrap}@media (max-width:900px){.overview-page .ov-kpi-row{grid-template-columns:repeat(3,1fr)}.overview-page .ov-daily-row{grid-template-columns:repeat(3,1fr)}.overview-page .ov-triple-row{grid-template-columns:1fr}}@media (max-width:720px){.overview-page .ov-kpi-row{grid-template-columns:repeat(2,1fr)}.overview-page .ov-daily-row{grid-template-columns:1fr}.overview-page .ov-chart-row{grid-template-columns:1fr}.overview-page .ov-header{flex-direction:column;gap:8px}}@media (max-width:480px){.overview-page .ov-kpi-row{grid-template-columns:1fr 1fr}.overview-page .ov-services-grid{grid-template-columns:1fr 1fr}}.dashboard-heading-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;padding-bottom:12px}.dashboard-heading-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}.dashboard-connections-link{display:inline-flex;align-items:center;gap:7px;min-height:32px;color:var(--ink-muted);font-size:12px;line-height:1.5}.dashboard-connections-link:hover{color:var(--accent);text-decoration:none}.dashboard-connections-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}@media (max-width:767px){.dashboard-heading-actions{align-items:flex-start;padding-bottom:0;gap:4px}.dashboard-connections-link{min-height:44px}}.paper-settings-connection-link{display:flex;align-items:center;gap:12px;padding:18px 0;color:var(--color);font-size:14px}.paper-settings-connection-link>i{color:var(--ink-muted);font-size:18px}.paper-settings-connection-link>span:first-of-type{flex:1}.paper-settings-connection-link small{display:block;margin-top:4px;color:var(--ink-muted);font-size:12px}.paper-settings-connection-link:hover{color:var(--accent);text-decoration:none}.paper-settings-connection-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.connections-heading{margin-bottom:36px}.connections-heading .paper-page-title{font-size:clamp(38px,4.5vw,56px);margin-bottom:12px}.connections-heading .paper-page-lede{font-size:15px}.connections-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:start;border-top:1px solid var(--border-color);padding-top:28px}.connections-grid>section{min-width:0}.connection-title,.connection-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.connection-top{margin-bottom:24px;min-height:28px}.connection-top>i{color:var(--ink-muted);font-size:24px}.connection-top>.fa-key{font-size:18px}.connection-title{margin-bottom:10px}.connections-page h2{font-family:inherit;font-size:22px;font-weight:600;letter-spacing:-.5px;margin:0}.connections-page p{font-size:14px;line-height:1.65;color:var(--ink-muted)}.connection-badge{background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:600;border-radius:5px;padding:4px 8px;white-space:nowrap}.connection-badge-muted{background:var(--paper-bg-alt);color:var(--ink-muted)}.connection-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-muted)}.connection-status::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}.connection-status.is-connected{color:var(--status-ready)}.connection-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:22px 0 16px}.connections-page .btn{font-size:13px;padding:9px 13px;white-space:normal}.connection-revoke p,.connections-page .connection-help{font-size:12px}.connection-link{display:inline-flex;align-items:center;gap:8px;border:0;padding:0;background:0 0;color:var(--accent);font-size:13px;line-height:1.6;font-weight:500;text-align:left;cursor:pointer}.connection-link:hover{color:var(--link-hover-color);text-decoration:underline}.connection-link:disabled{color:var(--ink-muted);opacity:.65;cursor:not-allowed;text-decoration:none}.connection-link:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.connection-installations{list-style:none;padding:0;margin:18px 0;border-top:1px solid var(--border-soft)}.connection-installations li{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 0;font-size:12px;border-bottom:1px solid var(--border-soft)}.connection-revoke{border-top:1px solid var(--border-soft);padding-top:18px;margin-top:24px}.connection-danger{color:var(--status-error)}.connection-resources{margin-top:36px;padding-top:28px;border-top:1px solid var(--border-color)}.connection-count{color:var(--ink-muted);font-size:12px}.connection-empty{display:flex;align-items:center;gap:18px;padding:20px 0;margin:22px 0}.connection-empty>i{font-size:22px;color:var(--ink-muted)}.connection-empty h3{font-size:14px;font-weight:600;margin:0 0 5px}.connection-empty p{font-size:12px;margin:0}.connection-empty>a{margin-left:auto;flex-shrink:0}.connection-resource{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 0;border-bottom:1px solid var(--border-color)}.connection-resource-name{flex:1;min-width:180px;overflow-wrap:anywhere;font-size:14px}.connection-resource-name small{display:block;color:var(--ink-muted);font-size:11px;margin-top:5px}.connection-resource-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.connection-resource-actions .connection-help{flex-basis:100%}.connections-page .connection-footnote{display:flex;align-items:baseline;gap:10px;margin-top:22px;font-size:12px}@media (max-width:767px){.connections-grid{grid-template-columns:1fr;gap:28px}.connections-grid>section+section{border-top:1px solid var(--border-color);padding-top:28px}.connection-empty{flex-wrap:wrap}.connection-empty>div{flex:1;min-width:180px}.connection-empty>a{margin-left:40px}.connection-resource-actions{flex-basis:100%}}.paper-table-empty-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}.paper-table-empty-actions .btn>i{font-size:1em;line-height:1;color:inherit;margin-right:0!important}.auth-back{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-muted);margin-bottom:48px}.auth-layout{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.auth-intro,.auth-options{padding-top:28px}.auth-title-mobile{display:none}.auth-intro .paper-page-title{font-size:clamp(48px,5vw,76px);line-height:1.06;margin:18px 0 24px}.auth-intro .paper-page-lede{max-width:330px}.auth-options{display:grid;gap:28px}.auth-options h2{font-family:inherit;font-size:22px;font-weight:600;margin:0 0 10px}.auth-options p{font-size:14px;line-height:1.65;color:var(--ink-muted)}.auth-options .auth-existing{font-size:12px;border-left:2px solid var(--accent);padding-left:14px;margin:0}.auth-permissions{padding:6px 0 12px;list-style:none;font-size:13px;line-height:1.6}.auth-permissions li{display:flex;gap:10px;margin:12px 0}.auth-permissions i{color:var(--status-ready);margin-top:4px}.auth-continue{display:flex!important;align-items:center;justify-content:space-between;min-height:48px;padding:12px 16px!important}.auth-options small{display:block;font-size:12px;text-align:center;color:var(--ink-muted);margin-top:12px}.auth-legacy{border-top:1px solid var(--border-color);padding-top:24px}.auth-legacy h2{font-size:16px;margin:0}.auth-legacy p{font-size:13px}.source-url-label-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin-bottom:8px}.source-url-label-row>.paper-field-label{font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--color);margin-bottom:6px;display:block}.repo-access{margin:0}.repo-access-details{margin:12px 0 24px}.source-url-label-row .repo-access-switch{padding:2px}.source-url-label-row .repo-access-switch button{padding:6px 10px;font-size:12px;line-height:20px}.repo-access-main{display:flex;align-items:center;gap:10px;padding:0 0 8px;flex-wrap:wrap}.repo-access-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.repo-access-switch{display:inline-flex;gap:3px;padding:3px;border:1px solid var(--border-color);border-radius:7px;flex-wrap:wrap}.repo-access-switch button{border:0;border-radius:4px;background:0 0;color:var(--ink-muted);padding:7px 10px;font:inherit;font-size:12px;cursor:pointer}.repo-access-switch button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);opacity:1;cursor:default;font-weight:600}.repo-access-switch button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.repo-access-details .btn{font-size:12px;padding:8px 12px}.repo-access-note{display:flex;gap:6px 16px;flex-wrap:wrap;padding:0;color:var(--ink-muted);font-size:11px;line-height:1.6}@media (max-width:767px){.auth-page{max-width:480px}.auth-back,.auth-intro .paper-eyebrow,.auth-title-desktop{display:none}.auth-title-mobile{display:inline}.auth-layout{grid-template-columns:1fr;gap:24px}.auth-intro,.auth-options{padding-top:0}.auth-intro .paper-page-title{font-size:40px;line-height:1.15;margin:6px 0 12px}.auth-intro .paper-page-lede{max-width:none;font-size:14px;margin:0}.auth-options{gap:24px}.auth-options .connection-top{margin-bottom:16px}.auth-options h2{font-size:18px}.auth-options p{font-size:13px;margin-bottom:12px}.auth-permissions{padding:0;margin:14px 0 20px;font-size:12px}.auth-permissions li{margin:8px 0}.auth-continue{font-size:14px}.auth-legacy{padding-top:20px}.auth-legacy h2{font-size:15px}.auth-legacy .connection-link{min-height:44px}.repo-access-controls{width:100%;gap:12px}}.text-muted{color:var(--ink-muted)!important}.anonymize-review-note,.draft-status{font-size:13px;color:var(--ink-muted)}.anonymize-review-note{padding:12px 0;margin:0}.anonymize-preview-status{padding:20px 32px;color:var(--ink-muted)}.anonymize-preview-status p{margin:0 0 12px}@media (max-width:575px){.dashboard-page .paper-page-lede{margin-bottom:8px}.dashboard-page .dashboard-heading-actions{gap:4px}.dashboard-page .dashboard-connections-link{min-height:32px}.dashboard-page .dashboard-filter-row{margin-top:12px}.anonymize-preview-status{padding:16px}}.paper-page .paper-page-title{font-size:32px}.paper-page.admin-page .paper-page-title{font-size:28px}.paper-page .paper-page-lede{font-size:14px;line-height:1.5}.paper-settings{padding-top:32px}.paper-settings-body{grid-template-columns:180px minmax(0,1fr);gap:40px;margin-top:24px;padding-top:24px;border-top:0}.paper-settings-main .paper-settings-section{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);padding:20px;margin-bottom:16px}.anonymize-page .paper-section-eyebrow,.paper-settings .paper-section-eyebrow{font-family:var(--font-sans);font-size:16px;font-weight:600;color:var(--color);text-transform:none;letter-spacing:-.01em;margin-bottom:12px}.paper-settings .paper-settings-toc-head{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.paper-settings-section .paper-section-copy{margin-top:0}.paper-settings .quota-row{gap:24px}.paper-settings .quota-header{flex-direction:column;align-items:flex-start;gap:4px}.paper-settings .quota-value{white-space:nowrap}.paper-settings .paper-settings-footer{padding:0 0 20px}.paper-settings .form-control{font-size:14px;border-color:var(--border-color);border-radius:var(--radius-control)}.paper-settings .form-check{padding-top:8px;padding-bottom:8px}.anonymize-page .btn-ink,.explorer-page .btn-ink,.paper-page .btn-ink{background:var(--accent);color:#fff;border-color:var(--accent)}.dark-mode .anonymize-page .btn-ink,.dark-mode .explorer-page .btn-ink,.dark-mode .paper-page .btn-ink{color:#1a1815}.anonymize-page .btn-ink:hover,.explorer-page .btn-ink:hover,.paper-page .btn-ink:hover{background:var(--accent);border-color:var(--accent);color:#fff;filter:brightness(.94)}.dark-mode .anonymize-page .btn-ink:hover,.dark-mode .explorer-page .btn-ink:hover,.dark-mode .paper-page .btn-ink:hover{color:#1a1815}.anonymize-page .btn-ink:active,.explorer-page .btn-ink:active,.paper-page .btn-ink:active{filter:brightness(.9)}input[type=date],select{color-scheme:light}.dark-mode input[type=date],.dark-mode select{color-scheme:dark}.draft-status{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:10px 0}.draft-discard{padding:0;border:0;color:var(--accent);font:inherit;font-size:13px;text-decoration:underline;background:0 0;cursor:pointer}.conference-feedback{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;margin-top:16px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);width:100%}.paper-table{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);margin-top:12px}.dashboard-page .paper-table-dashboard{width:100%}.paper-account-email{margin:20px 0}.paper-account-email .form-control{max-width:420px}.paper-settings .paper-account-email .btn[type=submit]{min-height:36px;padding:7px 18px;white-space:nowrap}.paper-table .paper-table-head{font-family:var(--font-sans);text-transform:none;letter-spacing:0;font-size:12px;background:var(--paper-bg-alt);border-radius:var(--radius-surface) var(--radius-surface) 0 0}.paper-table .paper-table-head,.paper-table .paper-table-row{padding-left:16px;padding-right:16px}.dashboard-page{--dashboard-space-xs:4px;--dashboard-space-sm:8px;--dashboard-space-md:12px;--dashboard-space-lg:16px;--dashboard-space-xl:24px;padding-top:var(--dashboard-space-xl)}.project-icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.project-type-svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.project-empty-icon{width:28px;height:28px;color:var(--ink-faint)}.project-type-icon{display:inline-flex;color:var(--ink-muted);flex-shrink:0}.dashboard-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--dashboard-space-lg)}.dashboard-heading .paper-page-title{font-size:28px;margin-bottom:var(--dashboard-space-xs)}.dashboard-heading .paper-page-lede{display:none}.dashboard-heading .btn{min-height:40px;display:inline-flex;gap:var(--dashboard-space-sm);align-items:center}.dashboard-new-mobile{display:none}.dashboard-quota{position:relative;margin:0;padding:0;border:0;background:0 0}.dashboard-quota>summary{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:5px 10px;border:1px solid var(--border-color);border-radius:6px;background:var(--paper-card);color:var(--color);font-family:var(--font-sans);font-size:12px;cursor:pointer;list-style:none;white-space:nowrap}.dashboard-quota>summary::-webkit-details-marker{display:none}.dashboard-quota>summary:hover,.dashboard-quota[open]>summary{background:var(--paper-bg-alt);border-color:var(--ink-faint)}.quota-summary-label{font-weight:600}.quota-summary-value{color:var(--ink-muted);font-variant-numeric:tabular-nums}.quota-summary-ring{width:18px;height:18px;flex-shrink:0;fill:none;stroke-width:2.5}.quota-ring-track{stroke:var(--border-color)}.quota-ring-fill{stroke:var(--accent);transform:rotate(-90deg);transform-origin:50% 50%}.quota-summary-ring.quota-warn .quota-ring-fill{stroke:var(--status-progress)}.quota-summary-ring.quota-danger .quota-ring-fill{stroke:var(--status-error)}.quota-ring-unlimited{stroke:var(--accent);stroke-width:1.7}.quota-summary-chevron{width:14px;height:14px;margin-left:2px;color:var(--ink-muted);transition:transform .15s ease}.dashboard-quota[open] .quota-summary-chevron{transform:rotate(180deg)}.dashboard-quota .quota-panel{position:absolute;z-index:25;top:calc(100% + 8px);left:0;width:344px;max-width:calc(100vw - 36px);padding:16px;border:1px solid var(--border-color);border-radius:12px;background:var(--paper-card);box-shadow:0 12px 36px rgba(26,24,21,.16)}.quota-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.quota-panel-heading h2{font:600 15px var(--font-sans);margin:0}.quota-panel-heading .project-close{margin:-8px -8px -8px 0}.paper-page .quota-usage{display:grid;grid-template-columns:1fr;gap:16px;margin:0;padding:0}.quota-usage .quota-item+.quota-item{padding-top:16px;border-top:1px solid var(--border-soft,var(--border-color))}.quota-usage .quota-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.quota-usage .quota-label{display:inline-flex;align-items:center;gap:8px;font:500 12px var(--font-sans);letter-spacing:0;text-transform:none;color:var(--ink-muted)}.quota-usage .quota-label .project-type-svg{width:16px;height:16px}.quota-usage .quota-value{display:flex;align-items:baseline;gap:4px;font:12px var(--font-sans);font-variant-numeric:tabular-nums;color:var(--ink-muted);margin-bottom:8px}.quota-usage .quota-value strong{font-size:20px;line-height:1.2;font-weight:600;color:var(--color)}.quota-percent,.quota-usage .quota-unlimited-tag{margin-left:auto;padding:2px 6px;border-radius:4px;background:var(--paper-bg-alt);font:11px var(--font-sans);color:var(--ink-muted);white-space:nowrap}.quota-warn>.quota-header .quota-percent{color:var(--status-progress)}.quota-danger>.quota-header .quota-percent{color:var(--status-error)}.quota-usage .quota-track{height:5px;border:0;background:var(--paper-bg-alt)}.quota-usage .quota-track .quota-fill{min-width:0;background:var(--accent)}.quota-remaining{margin:6px 0 0;color:var(--ink-muted);font-size:11px}.quota-remaining.quota-limit{color:var(--status-error)}.quota-loading{font-size:12px;color:var(--ink-muted);margin:12px 0 0}.dashboard-page .dashboard-filter-row{display:flex;align-items:center;gap:var(--dashboard-space-md);padding:0;margin:var(--dashboard-space-lg) 0 0;border:0;background:0 0}.dashboard-page .dashboard-filter-row .search-wrap{flex:1 1 240px;min-width:0}.dashboard-page .dashboard-filter-row .form-control{height:40px;padding:8px 12px;font-size:13px;background:var(--paper-card)}.dashboard-page .dashboard-filter-controls{display:flex;flex-wrap:nowrap;align-items:center;gap:var(--dashboard-space-sm)}.dashboard-extra-filters{display:flex;gap:var(--dashboard-space-sm)}.dashboard-filters-toggle{display:none}.dashboard-page .dashboard-filter-row .btn-group .btn{border:0;background:0 0;border-radius:6px;height:36px;padding:6px 10px}.dashboard-page .dashboard-filter-row .btn-group .btn.btn-primary{background:var(--accent-soft);color:var(--accent)}.dashboard-page .dashboard-filter-row .btn-group .btn.btn-primary:active,.dashboard-page .dashboard-filter-row .btn-group .btn.btn-primary:hover{background:var(--accent-soft)!important;color:var(--accent)}.dashboard-page .dashboard-filter-row .dropdown-toggle{height:36px;padding:6px 10px}.dashboard-type-filter .project-type-svg{display:none}.sort-direction{width:14px;height:14px}.sort-direction.ascending{transform:rotate(180deg)}.dashboard-page .dashboard-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dashboard-space-sm) var(--dashboard-space-md);margin:var(--dashboard-space-md) 0 0;padding:0}.dashboard-view-tabs{display:flex;align-items:center;gap:var(--dashboard-space-lg)}.dashboard-view-short{display:none}.dashboard-view-tabs button{min-height:36px;border:0;border-bottom:2px solid transparent;border-radius:0;background:0 0;font:inherit;font-size:13px;color:var(--ink-muted);padding:4px 0}.dashboard-view-tabs button[aria-pressed=true]{color:var(--color);border-bottom-color:var(--color);font-weight:600}.attention-count{padding:1px 5px;margin-left:4px;border-radius:4px;background:var(--paper-bg-alt);font-size:11px;font-variant-numeric:tabular-nums}.attention-count.has-attention{color:var(--status-error)}.dashboard-count{margin-left:auto;font-size:12px;color:var(--ink-muted)}.dashboard-active-filters{display:flex;align-items:center;flex-wrap:wrap;gap:var(--dashboard-space-sm);width:100%}.dashboard-page .filter-chip{display:inline-flex;font-family:var(--font-sans);font-size:11px;text-transform:none;letter-spacing:0;border-radius:6px}.dashboard-page .filter-chip .project-type-svg{width:12px;height:12px;margin-left:4px}.dashboard-page .filter-chip-close{min-width:24px;min-height:24px;display:inline-flex;align-items:center;justify-content:center;margin:-2px -4px -2px 2px}.dashboard-page .btn-link-inline{color:var(--ink-muted);font-size:12px}.dashboard-page .paper-table-dashboard{margin-top:var(--dashboard-space-md);border-left:0;border-right:0;border-radius:0}.dashboard-page .paper-table-dashboard .paper-table-head,.dashboard-page .paper-table-dashboard .paper-table-row{grid-template-columns:minmax(280px,3fr) 180px 72px 148px 64px;gap:var(--dashboard-space-lg);padding:8px 12px}.dashboard-page .paper-table-dashboard .paper-table-head{border-radius:0}.dashboard-page .paper-table .cell-anon{gap:var(--dashboard-space-sm)}.dashboard-page .paper-table .anon-text{flex:1}.dashboard-page .paper-table .repo-name{font-family:var(--font-sans);font-size:14px;font-weight:600}.dashboard-page .paper-table .anon-sub{display:flex;align-items:center;gap:var(--dashboard-space-sm);min-width:0}.anonymous-id{font-size:12px;font-family:var(--font-mono);color:var(--ink-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-page .paper-table .type-badge{font-family:var(--font-sans);letter-spacing:0;font-size:11px;text-transform:none;border-radius:6px}.dashboard-page .paper-table .status-sub{font-size:12px}.dashboard-page .paper-table .cell-conf{font-family:var(--font-sans);letter-spacing:0;text-transform:none}.dashboard-page .conf-tag .project-type-svg{width:14px;height:14px}.dashboard-row-meta{display:contents}.dashboard-page .cell-actions{gap:0;align-items:center}.copy-link-inline,.dashboard-page .btn-icon-dots,.project-close{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:0 0;color:var(--ink-muted);padding:0;width:32px;height:32px;min-width:32px;cursor:pointer}.copy-link-inline:focus-visible,.copy-link-inline:hover,.dashboard-page .btn-icon-dots:hover,.project-close:hover{background:var(--accent-soft);color:var(--accent)}.copy-link-inline:disabled{opacity:.5;cursor:wait}.mobile-meta-icon{display:none}.project-attention-action{display:inline-block;color:var(--accent);border:0;background:0 0;padding:0;font:inherit;font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.project-attention-action{text-align:left}.dashboard-page .cell-status .project-attention-action{flex-basis:100%}.project-details-row{width:100%;border-bottom:1px solid var(--border-color)}.project-details{padding:var(--dashboard-space-xl);background:var(--paper-bg-alt)}.project-details-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--dashboard-space-sm)}.project-details-heading h2{font:600 16px var(--font-sans);margin:0}.project-details-list{display:grid;grid-template-columns:1fr 1fr;gap:var(--dashboard-space-md) var(--dashboard-space-xl);margin:12px 0}.project-details-list dt{font-size:12px;color:var(--ink-muted);font-weight:500;margin-bottom:4px}.project-details-list dd{margin:0;font-size:13px;overflow-wrap:anywhere}.project-details-list code{color:var(--color);font-size:12px}.project-name-form{margin-top:var(--dashboard-space-lg);padding-top:var(--dashboard-space-lg);border-top:1px solid var(--border-color)}.project-name-form label{display:block;font-size:13px;font-weight:500;margin-bottom:4px}.project-name-form p,.project-progress-help{font-size:12px;color:var(--ink-muted);margin-bottom:8px}.project-name-controls{display:flex;gap:var(--dashboard-space-sm);max-width:560px}.project-name-controls .form-control{min-width:0;font-size:14px}.project-name-controls .btn{flex-shrink:0;min-height:40px}.project-name-form .project-name-error{color:var(--status-error)}.project-details-button{min-height:44px;padding:0 8px;border:0;border-radius:6px;background:0 0;font:inherit;font-size:12px;color:var(--ink-muted);cursor:pointer}.anonymize-page .anonymize-topbar-title{font-family:var(--font-sans);font-size:28px;font-weight:600}.anonymize-topbar{padding:16px 24px}.anonymize-form-col{background:var(--paper-bg-alt)}.anonymize-form-col .paper-settings-main{padding:20px 24px}.anonymize-form-col .paper-settings-section{padding:18px}.anonymize-form-col .paper-settings-section:first-child{padding-top:18px}.anonymize-form-col .anonymize-submit-bar{background:var(--paper-bg-alt);padding:12px 0}.anonymize-preview-head .paper-eyebrow{font-family:var(--font-sans);font-size:14px;font-weight:600;color:var(--color);text-transform:none;letter-spacing:0}.anonymize-preview-col{background:var(--canvas-bg-color);padding:24px}.anonymize-preview-head{flex-wrap:wrap;gap:6px 12px;margin-bottom:16px}.anonymize-preview-body{padding:24px}.anonymize-mobile-tabs,.anonymize-preview-empty,.mobile-preview-jump{display:none}.anonymize-page .repo-access-note{font-size:12px}@media (max-width:900px){.paper-settings-body{grid-template-columns:1fr;gap:18px}.paper-settings-toc{padding:0}.paper-settings-toc-head{display:none}.paper-table .paper-table-row{padding-left:14px;padding-right:14px}}@media (max-width:767px){.anonymize-page .paper-page-title,.paper-page .paper-page-title{font-size:24px}.paper-settings{padding:20px 16px 40px}.paper-settings-main .paper-settings-section{padding:16px}.anonymize-topbar{padding:12px 16px}.anonymize-topbar .paper-crumbs{display:none}.anonymize-mobile-tabs{display:flex;gap:4px;padding:8px 16px;border-bottom:1px solid var(--border-color);background:var(--paper-card)}.anonymize-mobile-tabs button{flex:1;font:inherit;font-size:13px;padding:10px;border:0;border-radius:6px;background:0 0;color:var(--ink-muted)}.anonymize-mobile-tabs button[aria-selected=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.anonymize-page:not(.mobile-preview-active) .anonymize-preview-col{display:none}.mobile-preview-active .anonymize-form-col{display:none}.mobile-preview-active .anonymize-preview-empty{display:block;padding:24px 16px;color:var(--ink-muted)}.anonymize-form-col .paper-settings-main{padding:16px}.anonymize-form-col .anonymize-submit-bar{background:var(--paper-bg-alt)}.mobile-preview-jump{display:block;width:100%;min-height:44px}.anonymize-preview-col{padding:16px}.anonymize-preview-body{padding:16px}}@media (max-width:575px){.paper-settings .quota-header{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 8px}}@media (max-width:1100px) and (min-width:901px){.dashboard-page .dashboard-filter-row{flex-wrap:wrap}.dashboard-page .dashboard-filter-row .search-wrap{flex-basis:100%}.dashboard-page .dashboard-filter-controls{width:100%;justify-content:space-between}}@media (max-width:900px){.dashboard-page .paper-table.paper-table-dashboard .paper-table-row{gap:4px 8px;padding:8px 12px}.dashboard-page .paper-table .cell-anon{flex:1 1 calc(100% - 96px);min-width:0}.dashboard-page .paper-table .cell-actions{flex:0 0 88px}.dashboard-row-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;order:3;width:100%}.dashboard-page .dashboard-row-meta .cell-status{flex:1 1 80px;flex-wrap:wrap;gap:2px 8px}.dashboard-page .dashboard-row-meta .cell-expires,.dashboard-page .dashboard-row-meta .cell-views{flex-shrink:0;font-size:12px}.dashboard-page .cell-expires::before,.dashboard-page .cell-views::before{content:none}.dashboard-page .mobile-meta-icon{display:inline-block;width:14px;height:14px}.dashboard-page .dashboard-row-meta .status-sub-date{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dashboard-page .dashboard-row-meta .status-sub-error,.dashboard-page .dashboard-row-meta .status-sub-warn{flex-basis:100%;white-space:normal;overflow-wrap:anywhere}.dashboard-page .dashboard-row-meta .status-sub::before{content:none}.dashboard-page .project-attention-action{min-height:44px;display:inline-flex;align-items:center}.dashboard-page .paper-table .anon-sub .commit-hash,.dashboard-page .paper-table .anon-sub .conf-tag{display:none}}@media (max-width:767px){.container.dashboard-page{padding-top:12px}.dashboard-heading .paper-page-title{font-size:24px}.dashboard-heading-actions .btn-ink{min-height:44px}.dashboard-new-label{display:none}.dashboard-new-mobile{display:inline}.dashboard-quota>summary{min-height:44px;gap:6px;padding:10px;font-size:12px;line-height:20px}.dashboard-quota .quota-panel{max-height:calc(100dvh - 184px);overflow-y:auto;overscroll-behavior:contain}.dashboard-page .dashboard-filter-row{flex-wrap:wrap;gap:8px;margin-top:12px}.dashboard-page .dashboard-filter-row .search-wrap{flex:1 1 0}.dashboard-page .dashboard-filter-row .form-control{height:44px}.dashboard-page .dashboard-filters-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:8px;min-height:44px;background:0 0;border:0}.dashboard-page .dashboard-filter-controls{display:none;width:100%}.dashboard-page .dashboard-filter-controls.expanded{display:flex;flex-wrap:wrap;gap:8px}.dashboard-page .dashboard-filter-controls .btn-group{width:100%;display:flex}.dashboard-page .dashboard-filter-controls .btn-group .btn{flex:1;min-height:44px}.dashboard-extra-filters{display:flex;width:100%}.dashboard-page .dashboard-extra-filters .dropdown{flex:1;min-width:0}.dashboard-page .dashboard-extra-filters .dropdown-toggle{width:100%;height:44px}.dashboard-type-filter .type-filter-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dashboard-type-filter .project-type-svg{display:inline-block}.dashboard-page .dashboard-meta{margin-top:8px;gap:4px 8px}.dashboard-view-tabs{gap:16px}.dashboard-view-tabs button{min-width:44px;min-height:44px;font-size:12px}.dashboard-count{font-size:11px}.dashboard-count{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.dashboard-view-long{display:none}.dashboard-view-short{display:inline}.dashboard-active-filters{display:contents}.dashboard-page .filter-chip{font-size:11px;padding:0 8px;min-height:44px;gap:4px}.dashboard-page .filter-chip-close{min-width:44px;min-height:44px;margin:0}.dashboard-page .btn-link-inline{min-height:44px;font-size:12px}.dashboard-page .paper-table-dashboard{width:calc(100% + 36px);margin:8px -18px 0;border-left:0;border-right:0;border-radius:0}.dashboard-page .paper-table .repo-name{font-size:13px}.project-details{padding:16px 12px}.project-details-list{grid-template-columns:1fr;gap:12px}.project-name-controls{flex-wrap:wrap}.project-name-controls .form-control{flex-basis:100%}.project-name-controls .btn{min-height:44px}}@media (max-width:360px){.dashboard-attention-prefix{display:none}.dashboard-attention-prefix+span{text-transform:capitalize}}.ui-icon-definitions{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}.ui-icon{display:inline-block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;vertical-align:-3px}.ui-icon.sort-direction{width:14px;height:14px}.pr-title-row{display:flex;align-items:flex-start;gap:16px}.pr-title-row .pr-title{flex:1;min-width:0}.pr-title-row>.btn{flex-shrink:0}.ui-icon.record-type-icon{color:var(--ink-muted)}.btn .ui-icon,.dropdown-item .ui-icon{width:16px;height:16px}.btn-icon-dots .ui-icon{width:18px;height:18px}.anonymize-page .paper-page-title,.paper-page .paper-page-title{font-size:28px}.paper-faq,.paper-page{padding-top:24px}.paper-page .paper-page-lede{margin-bottom:16px;overflow-wrap:anywhere}.paper-page-title{overflow-wrap:anywhere}.anonymize-page .form-control,.paper-page .form-control{min-height:40px;font-family:var(--font-sans);font-size:14px;border-radius:var(--radius-control)}.anonymize-page textarea.form-control,.paper-page textarea.form-control{height:auto}.anonymize-page .btn,.paper-page .btn,.status-bar-actions .btn{min-height:var(--button-height);padding:7px var(--button-padding-x);font:500 var(--button-font-size)/var(--button-line-height) var(--font-sans);border-radius:var(--radius-button);gap:6px}.anonymize-page .btn.btn-sm,.paper-page .btn.btn-sm,.status-bar-actions .btn{min-height:var(--button-compact-height);padding:5px 10px;font-size:13px;border-radius:6px}.anonymize-page .btn-ink,.paper-page .btn-ink{min-height:40px;padding:9px 15px}.btn-hero>i,.btn>.project-type-svg,.btn>.ui-icon,.btn>i{width:16px;height:16px;margin:0!important;flex-shrink:0}.btn.dropdown-toggle::after{margin-left:0}.btn.disabled,.btn:disabled{cursor:not-allowed}.btn.disabled:hover,.btn:disabled:hover{filter:none}.paper-page .btn.btn-link{background:0 0;border-color:transparent}.auth-continue.btn{min-height:44px;padding:11px 16px!important}.anonymize-page .btn.btn-icon,.paper-page .btn.btn-icon{width:32px;height:32px;min-width:32px;min-height:32px;padding:0}.paper-page .btn.btn-icon-dots{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border:0;background:0 0;color:var(--ink-muted)}.paper-page .btn-icon-dots:hover{background:var(--accent-soft);color:var(--accent)}.paper-page .btn-group .btn-primary:active,.paper-page .btn-group .btn-primary:hover{background:var(--accent-soft)!important;color:var(--accent)}.paper-page .paper-section-eyebrow{font-family:var(--font-sans);font-size:16px;font-weight:600;color:var(--color);text-transform:none;letter-spacing:0;margin-bottom:12px}.paper-page .paper-field-label{font-family:var(--font-sans);font-size:13px;letter-spacing:0}.paper-tabs .paper-tab{min-height:44px}.paper-pill,.status-pill{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none;border-radius:6px}.paper-meta-rule{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none;gap:12px 24px}.paper-meta-rule b:not(.commit-hash){font-family:var(--font-sans);font-weight:500}.connections-grid{gap:16px}.connections-grid>section{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);padding:20px}.connections-heading{margin-bottom:24px}.claim-page .claim-form,.status-page>.paper-settings-section{padding:20px;margin-top:24px;border:1px solid var(--border-color);border-radius:var(--radius-surface);background:var(--paper-card)}.claim-page .claim-form{max-width:640px}.status-page .anonymize-submit-bar{background:0 0;gap:8px;flex-wrap:wrap}.anonymize-landing{padding-top:32px}.paper-settings .quota-usage{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.paper-settings .quota-usage .quota-item+.quota-item{padding-top:0;border-top:0;padding-left:16px;border-left:1px solid var(--border-color)}.paper-settings .quota-usage .quota-header{flex-direction:row;align-items:center;flex-wrap:wrap}.paper-settings .quota-usage .quota-value{white-space:normal;flex-wrap:wrap}.paper-faq-hero{padding-bottom:24px;margin-bottom:24px}.paper-faq-toc-head{font-family:var(--font-sans);font-size:12px;text-transform:none;letter-spacing:0;margin-bottom:8px}.paper-faq-eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px}.paper-faq-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.4rem,4.6vw,3.6rem);line-height:1.05;letter-spacing:-.02em;max-width:13em;margin-bottom:16px;text-wrap:balance}.paper-faq-title em{font-style:italic;color:var(--accent)}.paper-faq-lede{font-size:14px}.paper-faq-body{grid-template-columns:180px minmax(0,1fr);gap:40px}.faq-section h4.faq-cat{font:400 30px/1.15 var(--font-serif);letter-spacing:-.015em;padding-bottom:12px}.faq-section h4.faq-cat .ui-icon{display:none}.faq-section .panel-group{margin-bottom:32px}.faq-section .panel-default .panel-title a{font:500 15px/1.5 var(--font-sans);padding:16px 0 16px 28px;min-height:44px}.faq-section .panel-default .panel-body{padding-left:28px!important}.faq-section .panel-default .panel-title a:after{content:"";top:22px;width:8px;height:8px;border-right:1.5px solid var(--ink-soft);border-bottom:1.5px solid var(--ink-soft);transform:translateX(4px) rotate(45deg);transition:transform .15s ease}.faq-section .panel-default .panel-title a.collapsed:after{content:"";transform:translateX(2px) rotate(-45deg)}.faq-section .panel-default .panel-title a:hover:after{border-color:var(--color)}.paper-faq-toc nav a.active{color:var(--color);font-weight:500}.paper-empty-title{font:600 32px/1.2 var(--font-sans);letter-spacing:-.025em}.paper-empty-title em{font-style:normal}.btn-hero{justify-content:center;gap:8px;min-height:48px;padding:13px 20px;font-size:15px;line-height:20px;background:var(--accent);border-color:var(--accent);color:#fff;border-radius:var(--radius-button)}.dark-mode .btn-hero{background:#1f6a64;border-color:#1f6a64;color:#fff}.btn-hero:hover{background:var(--accent);color:#fff;filter:brightness(.94)}.dark-mode .btn-hero:hover{background:#24786f;border-color:#24786f;color:#fff;filter:none}.paper-table:not(.paper-table-dashboard){border-left:0;border-right:0;border-radius:0}.paper-table:not(.paper-table-dashboard) .paper-table-head{border-radius:0}.paper-table .cell-anon{gap:8px}.paper-table .cell-anon .anon-text{flex:1}.paper-table-conferences .cell-anon .repo-name{font-family:var(--font-sans);font-weight:600}.paper-table .anon-sub>a,.paper-table .anon-sub>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.paper-table .anon-sub .ui-icon{width:14px;height:14px}.paper-page .filter-chip{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none;border-radius:6px}.paper-page .filter-chip-close .ui-icon{width:12px;height:12px}.admin-nav{gap:4px;border:0;border-bottom:1px solid var(--border-color);border-radius:0;padding:0 0 8px;background:0 0}.admin-nav a{font-family:var(--font-sans);font-size:13px;letter-spacing:0;text-transform:none;border-radius:6px;min-height:40px;padding:8px 12px}.admin-nav a.active{background:var(--accent-soft);color:var(--accent)}.admin-nav .ui-icon{width:16px;height:16px}.admin-filter-toolbar{background:0 0;border:0;padding:0}.admin-filter-inline>label,.admin-filter-inline>span{font-family:var(--font-sans);text-transform:none;letter-spacing:0}.admin-summary .summary-total{font-family:var(--font-sans);font-size:18px;font-weight:600}.admin-summary .summary-pill{font:500 13px/20px var(--font-sans);min-height:32px;padding:5px 10px;border-radius:6px}.admin-summary .summary-pill.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.admin-summary .summary-pill .count{font-family:var(--font-sans)}.admin-active-chip{font-family:var(--font-sans);font-size:12px}.admin-active-chip button .ui-icon{width:12px;height:12px}.user-detail-card .user-header h2{font:600 20px/1.4 var(--font-sans)}.errors-page .errors-toolbar .select-wrap label,.errors-page .volume-head,.overview-page .ov-panel-meta,.paper-detail-grid .detail-label,.paper-progress .paper-progress-label,.status-page .paper-error-eyebrow,.user-detail-grid .detail-label{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.overview-page .ov-chart-title,.overview-page .ov-panel-title,.paper-error-title{font:600 16px/1.4 var(--font-sans)}.paper-error-head>.ui-icon,.paper-ratelimit-head>.ui-icon{margin-top:3px;color:var(--status-error)}.paper-ratelimit-head>.ui-icon{color:var(--status-progress)}.errors-page .seg-tabs{border-radius:var(--radius-control)}.errors-page .seg-tabs button{min-height:36px;padding:7px 12px;font:500 14px/20px var(--font-sans)}.errors-page .seg-tabs button.active{background:var(--accent-soft);color:var(--accent)}.errors-page .errors-list,.errors-page .kpi-card:hover,.errors-page .volume-chart,.overview-page .ov-chart-card,.overview-page .ov-panel-card{box-shadow:none}.errors-page .kpi-value,.overview-page .ov-daily-value,.overview-page .ov-kpi-value,.q-card-count,.user-hero-name{font-family:var(--font-sans);font-size:28px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.errors-page .kpi-label,.overview-page .ov-daily-label,.overview-page .ov-kpi-label,.q-card-name,.q-section-label,.user-hero-details .detail-label{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.overview-page .ov-daily-card{background:var(--paper-card);box-shadow:none;border-radius:var(--radius-surface)}.dark-mode .overview-page .ov-daily-value,.overview-page .ov-daily-value{color:var(--accent)}.errors-page .kpi-card,.overview-page .ov-kpi-card{box-shadow:none;border-radius:var(--radius-surface)}.q-card{border-radius:var(--radius-surface)}.q-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.q-range-btns{border-radius:var(--radius-control)}.q-job-detail-actions .btn,.q-range-btns .btn{font-family:var(--font-sans);font-size:13px}.q-range-btns .btn.active{background:var(--accent-soft);color:var(--accent)}@media (max-width:900px){.paper-settings .quota-usage{grid-template-columns:1fr;gap:16px}.paper-settings .quota-usage .quota-item+.quota-item{padding-left:0;border-left:0;border-top:1px solid var(--border-color);padding-top:16px}.paper-table:not(.paper-table-dashboard) .paper-table-row{gap:4px 8px!important;padding:8px 12px}.paper-table:not(.paper-table-dashboard) .cell-anon{flex:1 1 calc(100% - 52px);order:1}.paper-table:not(.paper-table-dashboard) .cell-actions{order:2;flex:0 0 44px}.paper-table .admin-users-row>[role=cell]:first-child,.paper-table.paper-table-repos.has-bulk .paper-table-row>[role=cell]:first-child{flex:0 0 24px;order:0}.paper-table .admin-users-row .cell-anon,.paper-table.paper-table-repos.has-bulk .cell-anon{flex-basis:calc(100% - 84px)}.paper-table:not(.paper-table-dashboard) .cell-anon .anon-sub{font-size:12px;gap:6px}.paper-table:not(.paper-table-dashboard) .cell-status .status-sub{font-size:12px}.paper-table .cell-expires::before,.paper-table .cell-views::before{content:none}.paper-table .cell-expires .mobile-meta-icon,.paper-table .cell-views .mobile-meta-icon{display:inline-block;width:14px;height:14px}.paper-faq-body{grid-template-columns:1fr;gap:24px}}@media (max-width:767px){.paper-faq,.paper-page{padding-top:20px}.paper-settings .paper-account-email .btn[type=submit]{min-height:40px;padding:9px 18px}.anonymize-page .paper-page-title,.paper-page .paper-page-title,.paper-page.admin-page .paper-page-title{font-size:24px}.paper-faq-title{font-size:40px}.anonymize-page .form-control,.paper-page .form-control{min-height:44px}.anonymize-page .btn,.connection-link,.draft-discard,.paper-faq-toc a,.paper-page .btn,.paper-settings-toc nav a{min-height:44px}.anonymize-page .btn,.paper-page .btn,.status-bar-actions .btn{min-height:44px;padding:11px 14px;font-size:14px;line-height:20px;white-space:normal}.anonymize-page .btn.btn-sm,.paper-page .btn.btn-sm{min-height:44px;padding:11px 12px;font-size:14px}.anonymize-page .btn.btn-icon,.copy-link-inline,.paper-page .btn.btn-icon,.paper-page .btn.btn-icon-dots,.project-close{width:44px;height:44px;min-width:44px;min-height:44px;padding:0}.dashboard-page .dashboard-filter-row .btn-group .btn,.dashboard-page .dashboard-filter-row .dropdown-toggle{height:auto;min-height:44px;font-size:14px;padding:11px 10px}.dashboard-heading-actions .btn-ink{padding:11px 16px}.dashboard-page .dashboard-filters-toggle{padding:11px 10px}.errors-page .btn-icon,.pr-title-row .btn,.status-bar-actions .btn{min-width:44px;min-height:44px;padding:0}.status-bar-actions .btn{width:44px;height:44px}.errors-page .seg-tabs button,.paper-tab{min-height:44px}.errors-page .seg-tabs button{padding:11px 12px}.status-bar-actions{flex-wrap:wrap;max-width:100%}.leftCol-close,.tree-search-clear{min-width:44px;min-height:44px}.anonymize-landing{padding:20px 18px}.anonymize-landing .repo-access-switch button,.source-url-label-row .repo-access-switch button{min-height:44px;padding:11px 10px;font-size:13px}.paper-settings-body{margin-top:16px;padding-top:0;gap:16px}.paper-settings-toc nav{gap:0 12px}.paper-settings-toc nav a{display:inline-flex;align-items:center}.paper-faq{padding-left:18px;padding-right:18px}.paper-faq-toc nav{display:flex;flex-direction:row;flex-wrap:wrap;gap:0 16px}.paper-faq-toc a{display:inline-flex;align-items:center;padding:8px 0;border-left:0;border-bottom:2px solid transparent;margin-left:0}.paper-faq-toc nav a.active,.paper-faq-toc nav a:hover{border-bottom-color:var(--accent);color:var(--accent)}.claim-page .claim-form,.status-page>.paper-settings-section{padding:16px;margin-top:16px}.admin-nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:4px;max-width:100%;margin:8px 0 16px}.admin-nav a{flex-shrink:0;min-height:44px}.admin-summary .summary-pill{min-height:44px;padding:11px 12px;font-size:14px}.admin-active-chip button{min-width:44px;min-height:44px}.admin-filter-row{gap:8px}.admin-filter-row .admin-filter-inline{gap:8px;flex-wrap:wrap}.errors-page .kpi-grid{grid-template-columns:1fr 1fr;gap:12px}.q-cards{flex-direction:row}.q-card{min-width:130px}.q-header-actions{flex-wrap:wrap;gap:8px}}.paper-page.container:not(.auth-page){max-width:1180px}.paper-page>.row{margin-left:0;margin-right:0}.paper-page>.row>.w-100,.paper-page>.row>[class*=col]{padding-left:0;padding-right:0}.anonymize-landing{align-items:flex-start}.status-page .paper-support-grid{margin-bottom:0}.explorer-content .ace_editor{font-family:var(--font-mono);line-height:1.6}.dark-mode .explorer-content .ace-nord-dark,.dark-mode .explorer-content .ace-nord-dark .ace_gutter{background:var(--main-bg-color)}.explorer-content .file-content.markdown-body{max-width:960px;padding:32px 40px 96px}.leftCol-project-header .project-name{white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.file-error{font-size:inherit;font-weight:inherit;text-align:left}.file-error-card{width:100%;max-width:520px;margin-top:0}.file-error-msg{margin:12px 0 0;font-size:14px;line-height:1.55;color:var(--ink-soft)}.file-error-actions{display:flex;gap:8px;margin-top:16px}.file-error .paper-empty-title{font-size:20px;text-align:center}@media (min-width:992px){.leftCol-foot{padding-bottom:72px}}.explorer-content .ace-chrome,.explorer-content .ace-chrome .ace_gutter{background:var(--main-bg-color)}@media (max-width:991px){.explorer-content .file-content.markdown-body{padding:20px 16px 96px}.anonymize-landing{padding:20px 18px}.anonymize-landing-inner{padding:0}.paper-faq-toc nav,.paper-settings-toc nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.paper-faq-toc nav a,.paper-settings-toc nav a{flex-shrink:0;white-space:nowrap}.paper-faq-body,.paper-settings-body{grid-template-columns:minmax(0,1fr)}.paper-faq-toc,.paper-settings-toc{position:static}.paper-faq-toc nav,.paper-settings-toc nav{display:flex;flex-direction:row;gap:0 16px}.paper-faq-toc nav a,.paper-settings-toc nav a{display:inline-flex;align-items:center;padding:8px 0;margin-left:0;border-left:0;border-bottom:2px solid transparent}.paper-faq-toc nav a.active,.paper-faq-toc nav a:hover,.paper-settings-toc nav a.active,.paper-settings-toc nav a:hover{border-bottom-color:var(--accent)}.paper-page .dashboard-filter-controls .dropdown .dropdown-toggle{justify-content:flex-start;gap:6px}.paper-page .dashboard-filter-controls .dropdown .dropdown-toggle::after{margin-left:auto}}@media (max-width:480px){.paper-page .paper-page-lede{display:block;-webkit-line-clamp:unset;overflow:visible}}.navbar .btn-signin,.navbar .btn-signin:hover{background:var(--accent);border-color:var(--accent);color:#fff!important}.dark-mode .navbar .btn-signin,.dark-mode .navbar .btn-signin:hover{background:#237a71;border-color:#237a71;color:#fff!important}.navbar .btn-signin:hover{filter:brightness(.94)}.paper-progress .paper-progress-bar,.paper-progress.paper-progress-ready .paper-progress-bar{background:var(--accent)}.paper-progress .paper-progress-label{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.paper-error-eyebrow,.paper-support-card .paper-support-eyebrow{font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}.leftCol-foot .last-update{font-family:var(--font-sans);font-size:11px;letter-spacing:0}.paper-proof-venues span{font-family:var(--font-sans);font-size:18px;font-weight:600;letter-spacing:.02em;color:var(--ink-soft)}.markdown-body mark.redaction{background:var(--accent-soft);color:var(--accent);border-radius:3px;padding:0 2px}.ace_marker-layer .ace_redaction{position:absolute;background:var(--accent-soft);border-radius:3px}.leftCol-project-header{flex-wrap:wrap;row-gap:2px}.project-expiry{flex:1 0 100%;display:flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-muted)}.project-expiry .ui-icon{width:12px;height:12px}.status-bar-actions .btn-icon-only{width:32px;padding:0;justify-content:center}.share-link-row{display:flex;gap:8px;margin-top:4px}.share-link-input{flex:1;min-width:0;font-family:var(--font-mono);font-size:14px;background:var(--paper-bg-alt)}.share-link-row .btn{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;min-width:112px;justify-content:center}.share-link-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.share-link-actions .btn{display:inline-flex;align-items:center;gap:6px}.status-page .paper-support-grid{gap:0 32px}.status-page .paper-support-card{padding:16px 0 0;border:0;border-top:1px solid var(--border-color);border-radius:0;background:0 0}.status-page .paper-support-card:hover{border-color:var(--color)}@media (min-width:992px){.paper-table .cell-expires{white-space:nowrap}}.paper-settings .paper-settings-main .paper-settings-section{background:0 0;border:0;border-bottom:1px solid var(--border-color);border-radius:0;padding:0 0 28px;margin-bottom:28px}.paper-settings .paper-settings-main .paper-settings-section:last-of-type{border-bottom:0}@media (max-width:991px){.paper-settings .paper-settings-main .paper-settings-section{padding:0 0 20px;margin-bottom:20px}.share-link-row{flex-direction:column}.share-link-actions{flex-direction:column}.share-link-actions .btn{justify-content:center}.status-page .paper-support-grid{row-gap:20px}}.paper-page .q-range-btns{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);overflow:visible}.paper-page .q-range-btns .btn,.paper-page .q-range-btns .btn+.btn{min-height:0;height:28px;padding:0 10px;border:0;border-radius:4px;background:0 0;color:var(--ink-muted);font:500 13px/1 var(--font-sans)}.paper-page .q-range-btns .btn:hover{background:var(--hover-bg-color);color:var(--color)}.paper-page .q-range-btns .btn.active{background:var(--accent-soft);color:var(--accent)}.q-header-actions>.btn{height:34px;min-height:34px}.paper-page .btn.btn-danger-soft{background:0 0;border-color:var(--status-error);color:var(--status-error)}.paper-page .btn.btn-danger-soft:hover{background:var(--status-error-soft-hover);border-color:var(--status-error);color:var(--status-error)}.q-auto-refresh,.q-section-label,.q-state-chip{font-family:var(--font-sans);letter-spacing:0;text-transform:none}.q-state-chip{font-size:12px;text-transform:capitalize}.overview-page .ov-ebar-fill{display:block}.paper-table .paper-table-row.repo-error{border-left:0;box-shadow:inset 2px 0 0 var(--status-error);padding-left:16px}.admin-page .q-table th,.admin-page .type-badge,.admin-page .user-detail-section h2,.admin-page section>h2,.admin-page th,.admin-page>h2,.errors-page .col-count,.errors-page .col-mod,.errors-page .col-msg,.errors-page .col-sev,.errors-page .col-status,.errors-page .col-when,.overview-page .ov-chart-legend,.overview-page .ov-ebar-label,.overview-page .ov-route-n,.overview-page .ov-route-name,.q-card-sub,.q-delay-hint,.q-legend-completed,.q-legend-exec,.q-legend-failed,.q-section-right,.q-stat-label,.user-detail-grid .detail-label{font-family:var(--font-sans);letter-spacing:0;text-transform:none}.admin-page th,.errors-page [class^=col-]{font-size:12px;font-weight:500;color:var(--ink-muted)}.q-card-sub,.q-stat-label,.user-detail-grid .detail-label{font-size:12px}.q-stat-value{font-family:var(--font-sans);font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.q-state-badge{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:capitalize}.admin-page .type-badge{font-size:12px;text-transform:none}.errors-page .col-sev span,.errors-page .sev-label{text-transform:capitalize}.dark-mode .overview-page .ov-daily-value,.overview-page .ov-daily-value{color:var(--color)}.dark-mode .overview-page .ov-spark-fill-alt,.dark-mode .overview-page .ov-spark-fill-new-user,.dark-mode .overview-page .ov-spark-fill-user,.overview-page .ov-spark-fill-alt,.overview-page .ov-spark-fill-new-user,.overview-page .ov-spark-fill-user{background:var(--accent)}.dark-mode .overview-page .ov-dot-new-user-fill,.dark-mode .overview-page .ov-dot-ok-fill,.dark-mode .overview-page .ov-dot-user-fill,.overview-page .ov-dot-new-user-fill,.overview-page .ov-dot-ok-fill,.overview-page .ov-dot-user-fill{background:var(--accent)}.errors-page .seg-tabs{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card)}.errors-page .seg-tabs button,.errors-page .seg-tabs button+button{min-height:0;height:30px;padding:0 10px;border:0;border-radius:4px;background:0 0;color:var(--ink-muted);font:500 13px/1 var(--font-sans)}.errors-page .seg-tabs button:hover{background:var(--hover-bg-color);color:var(--color)}.errors-page .seg-tabs button.active{background:var(--accent-soft);color:var(--accent)}.user-detail-card .user-header .status-dot-wrap{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:400;color:var(--ink-soft)}.user-detail-card .user-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-page .paper-table .cell-anon .anon-sub{flex-wrap:wrap;row-gap:2px}.admin-page .paper-table .anon-sub>a,.admin-page .paper-table .anon-sub>span{flex:0 1 auto;max-width:100%;white-space:nowrap}.admin-page .paper-table .cell-views .mobile-meta-icon{margin-right:4px}.q-jobs{overflow-x:auto}.q-job-detail-label{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.admin-section-header h2{font-family:var(--font-sans);font-size:16px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--color)}.errors-page .sev-label{font-family:var(--font-sans);font-size:13px;letter-spacing:0}.email-prompt{width:min(560px,calc(100vw - 32px));padding:28px;border:1px solid var(--paper-border,#e5e1d9);border-radius:12px;background:var(--paper-bg,#faf9f6);color:inherit;box-shadow:0 16px 64px #0003}.email-prompt::backdrop{background:#0006}.email-prompt h2{margin:0 0 12px;font-size:24px}.email-prompt p{margin-bottom:20px}.email-prompt-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:24px}body.dark-mode .email-prompt{background:#242320;color:#faf9f6}.file-error .viewer-error{width:100%;max-width:65ch;padding:2rem 1rem;overflow-wrap:anywhere;font-size:1rem;font-weight:400;text-align:left}.viewer-error .paper-empty-title{margin-bottom:1rem}.viewer-error p{line-height:1.6}.viewer-error .paper-error-actions{display:flex;flex-wrap:wrap;gap:.75rem}.markdown-body .markdown-alert{margin:1rem 0;padding:.5rem 1rem;border-left:4px solid var(--alert-color,#0969da)}.markdown-body .markdown-alert-note{--alert-color:#0969da}.markdown-body .markdown-alert-tip{--alert-color:#1a7f37}.markdown-body .markdown-alert-important{--alert-color:#8250df}.markdown-body .markdown-alert-warning{--alert-color:#9a6700}.markdown-body .markdown-alert-caution{--alert-color:#cf222e}.markdown-body .markdown-alert-title{color:var(--alert-color);font-weight:600;display:flex;align-items:center;gap:.5rem}.markdown-body .markdown-alert-title svg{fill:currentColor;flex-shrink:0}.markdown-body .markdown-alert>:last-child{margin-bottom:0}body.dark-mode .markdown-alert-note{--alert-color:#79c0ff}body.dark-mode .markdown-alert-tip{--alert-color:#7ee787}body.dark-mode .markdown-alert-important{--alert-color:#d2a8ff}body.dark-mode .markdown-alert-warning{--alert-color:#e3b341}body.dark-mode .markdown-alert-caution{--alert-color:#ff7b72}.markdown-body .emoji{display:inline;vertical-align:text-bottom}.markdown-body .footnotes{margin-top:2rem;border-top:1px solid var(--border-color,#d0d7de);padding-top:1rem;font-size:.875em}.markdown-body .katex-display{overflow-x:auto;overflow-y:hidden;padding:.25rem 0}.markdown-body .markdown-diagram{margin:1rem 0;border:1px solid var(--border-color,#d0d7de);padding:.75rem}.markdown-body .markdown-diagram svg{display:block;width:100%;max-height:360px}.markdown-body .markdown-diagram path{fill:#7cc7be;fill-opacity:.5;stroke:var(--link-color,#1f6a64);stroke-width:1;vector-effect:non-scaling-stroke}.markdown-body .diagram-controls{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.markdown-body .diagram-controls button{min-width:44px;min-height:44px;padding:.25rem .75rem;border:1px solid var(--border-color,#d0d7de);background:var(--main-bg-color,#fff);color:inherit;border-radius:4px}.markdown-body .diagram-controls button:hover{background:var(--hover-bg-color,#f6f8fa)}.markdown-body .diagram-controls button:focus-visible{outline:2px solid var(--link-color,#0969da);outline-offset:2px}.markdown-body .hljs-keyword,.markdown-body .hljs-selector-tag{color:#cf222e}.markdown-body .hljs-attr,.markdown-body .hljs-string{color:#0a3069}.markdown-body .hljs-literal,.markdown-body .hljs-number,.markdown-body .hljs-title{color:#8250df}.markdown-body .hljs-comment{color:#57606a}body.dark-mode .markdown-body .hljs-keyword{color:#ff7b72}body.dark-mode .markdown-body .hljs-attr,body.dark-mode .markdown-body .hljs-string{color:#a5d6ff}body.dark-mode .markdown-body .hljs-literal,body.dark-mode .markdown-body .hljs-number,body.dark-mode .markdown-body .hljs-title{color:#d2a8ff}body.dark-mode .markdown-body .hljs-comment{color:#b1bac4}body.dark-mode .markdown-body .gh-light-mode-only,body:not(.dark-mode) .markdown-body .gh-dark-mode-only{display:none}.billing-plan{padding:1.5rem 0;border-bottom:1px solid var(--paper-border,#d8d4cd)}.billing-plan h3{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between}.billing-price{font-variant-numeric:tabular-nums;font-weight:400}.billing-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}#settings-billing p{max-width:72ch}.repository-hosting{border-top:1px solid var(--border-color);margin-top:24px}.repository-hosting h2{font-size:1.5rem}.hosting-choices{border:0;padding:0;margin:20px 0;min-width:0}.hosting-choices legend{font-size:1rem;font-weight:600}.hosting-choice{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid var(--border-color);background:var(--paper-card);cursor:pointer}.hosting-choice+.hosting-choice{border-top:0}.hosting-choice input{margin-top:5px;accent-color:var(--accent)}.hosting-choice small,.hosting-choice strong{display:block}.hosting-choice small{margin-top:6px;color:var(--ink-muted)}.hosting-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:20px 0}.repository-pass{margin:20px 0}.repository-pass summary{cursor:pointer;color:var(--link-color)}.repository-pass p{margin-top:12px}.task-review-active.anonymize-page{height:auto!important;min-height:100%;overflow:visible}.task-review-active .anonymize-workspace{flex:0 0 auto;overflow:visible}.repository-task{width:100%;max-width:1020px;margin:0 auto;padding:32px 24px 42px;color:var(--color);font-size:15px;line-height:1.55}.repository-task .paper-crumbs{margin-bottom:24px}.repository-task h1{font:normal 40px/1.15 'Iowan Old Style',Georgia,serif;margin:8px 0 10px}.repository-task h2{font:normal 27px/1.25 'Iowan Old Style',Georgia,serif;margin:0 0 12px}.repository-task h3{font:600 17px/1.5 var(--font-sans);margin:0 0 10px}.repository-task p{margin:0 0 16px}.task-lede,.task-muted{color:var(--ink-muted)}.task-trail{list-style:none;display:flex;flex-wrap:wrap;gap:24px;margin:30px 0;padding:18px 0;border-bottom:1px solid var(--border-color);color:var(--ink-muted);font-size:13px}.task-trail [aria-current]{color:var(--color);font-weight:600}.task-trail button{color:inherit;padding:0;border:0;background:0 0;font:inherit;cursor:pointer}.task-columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(245px,1fr);gap:34px;align-items:start}.task-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.task-text-button{border:0;padding:7px 0;background:0 0;color:var(--link-color);cursor:pointer;font:inherit;text-align:left}.task-text-button:focus-visible,.task-trail button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.task-summary{background:var(--paper-bg-alt);padding:24px;border-radius:5px}.task-summary dt{margin-top:18px;font-size:12px;font-weight:400;color:var(--ink-muted)}.task-summary dd{margin:3px 0;overflow-wrap:anywhere}.task-redactions,.task-summary h3{overflow-wrap:anywhere}.task-summary dl{margin-bottom:0}.task-summary-foot{border-top:1px solid var(--border-color);margin-top:28px;padding-top:24px}.task-summary-foot p{color:var(--ink-muted);margin:0}.task-hosting{border-top:1px solid var(--border-color);margin-top:22px;padding-top:20px}.repository-task .hosting-choices{margin:18px 0}.repository-task .hosting-choice{padding:18px;gap:13px;font-weight:400;margin:0}.repository-task .hosting-choice:first-of-type{border-radius:6px 6px 0 0}.repository-task .hosting-choice:last-of-type{border-radius:0 0 6px 6px}.repository-task .hosting-choice small{margin-top:0;font-size:13px;line-height:1.55}.task-terms{font-size:13px;color:var(--ink-soft)}.task-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin:24px 0 16px}.repository-task .btn{padding:10px 16px;border-radius:5px;font-size:15px}.task-status{background:var(--accent-soft);padding:16px 20px;margin:20px 0}.task-status p:last-child{margin:0}@media(max-width:650px){.repository-task{padding:24px 18px}.repository-task h1{font-size:32px}.task-columns{display:block}.task-summary{margin-top:28px}.task-trail{gap:15px;font-size:12px}}.repository-task{scroll-margin-top:70px}.task-columns{align-items:stretch}.repository-task .btn-ink{background:var(--color);border-color:var(--color);color:var(--canvas-bg-color);box-shadow:none}.repository-task .btn-ink:hover{background:var(--ink-soft);border-color:var(--ink-soft)}.task-field{margin-bottom:24px}.task-field>label{display:block;font-weight:600;margin-bottom:8px}.task-field input,.task-field select,.task-field textarea{width:100%;padding:12px;border:1px solid var(--border-color);border-radius:4px;background:var(--paper-card);color:var(--color);font:inherit}.task-field textarea{resize:vertical}.task-field small{display:block;margin-top:8px;font-size:13px;color:var(--ink-muted)}.task-field :is(input,select,textarea):focus-visible{outline:3px solid var(--accent);outline-offset:3px}.task-paybox{background:var(--paper-card);border:1px solid var(--border-color);border-radius:5px;padding:22px;margin-top:20px}.task-ready{border-left:3px solid var(--success,#2f7a44);padding:16px 20px;background:var(--paper-bg-alt);margin-bottom:22px}.repository-task.status-page .paper-progress{margin-top:24px}.task-date-options summary{cursor:pointer;color:var(--link-color);font-size:13px}.task-date-options[open] summary{margin-bottom:12px}.task-result{padding:18px;background:var(--paper-bg-alt);overflow-wrap:anywhere}.task-result .detail-label{font-size:12px;color:var(--ink-muted);margin-bottom:6px}.task-configure-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.task-live-preview{min-width:0;border:1px solid var(--border-color);border-radius:5px;background:var(--paper-card)}.task-preview-head{padding:20px 24px;border-bottom:1px solid var(--border-color)}.task-preview-head h2{font-size:23px;margin-bottom:6px}.task-preview-head p{margin:0;font-size:13px}.task-preview-content,.task-preview-message{padding:24px}.task-preview-content{overflow:auto;max-height:650px;overflow-wrap:anywhere}.repository-task .task-preview-content h1{font:600 28px/1.3 var(--font-sans)}.repository-task .task-preview-content h2{font:600 22px/1.3 var(--font-sans)}@media(max-width:650px){.task-live-preview{margin-top:28px}.task-preview-content{max-height:none}}.anonymize-page .anonymize-topbar{padding:14px 22px;background:var(--canvas-bg-color)}.anonymize-page .anonymize-topbar-inner{max-width:none}.anonymize-page .anonymize-topbar-head{justify-content:space-between}.anonymize-page .anonymize-topbar-title{font:600 19px/1.25 var(--font-sans);margin:0}.anonymize-page .anonymize-split{display:grid;grid-template-columns:minmax(320px,42%) minmax(0,1fr);overflow:hidden}.anonymize-page .anonymize-form-col{width:auto;min-height:0;overflow:hidden!important;background:var(--paper-card)}.anonymize-page .anonymize-form-col .paper-settings-main{display:flex;flex-direction:column;height:100%;min-height:0;max-width:none;padding:0}.anonymize-fields{flex:1;min-height:0;overflow:auto;position:relative;scrollbar-width:thin}.anonymize-page .paper-settings-main .paper-settings-section{border:0;border-top:1px solid var(--border-color);border-radius:0;padding:18px 20px 20px;margin:0;box-shadow:none}.anonymize-page .paper-settings-main .paper-settings-section:first-child{border-top:0;padding-top:18px}.anonymize-page .paper-section-eyebrow{font:600 15px/1.4 var(--font-sans);margin:0 0 16px;letter-spacing:0}.anonymize-page .paper-field-label{font:500 13px/1.5 var(--font-sans);margin-bottom:8px}.anonymize-page .form-group{margin-bottom:16px}.anonymize-page .form-group:last-child{margin-bottom:0}.anonymize-page .form-control{font-size:14px;min-height:40px;padding:9px 10px;border-radius:4px}.anonymize-page textarea.form-control{line-height:1.6}.anonymize-page .form-grid-2{gap:12px}.anonymize-page .form-check{padding-top:10px;padding-bottom:10px;font-size:14px}.anonymize-page .form-check-label{font-size:14px;line-height:1.5}.anonymize-page .form-text{font-size:12px;line-height:1.6}.anonymize-page .repo-access-details{margin:12px 0 16px}.anonymize-page .repo-access-note{font-size:11px}.anonymize-page .anonymize-submit-bar{flex:none;position:static;margin:0;padding:16px 20px;background:var(--paper-card);border-top:1px solid var(--border-color)}.anonymize-page .anonymize-submit-bar .btn{width:100%;font-size:14px;padding:10px 12px;min-height:43px}.checkout-return-note{font-size:11px;line-height:1.5;color:var(--ink-muted);margin:8px 0 0;text-align:center}.anonymize-fields>.alert,.anonymize-fields>.anonymize-review-note,.anonymize-fields>.draft-status{margin:12px 20px}.anonymize-page .anonymize-preview-col{min-height:0;padding:20px;position:relative;background:var(--canvas-bg-color)}.anonymize-page .anonymize-preview-head{border:0;padding:0;min-height:32px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between}.anonymize-preview-head button,.anonymize-preview-head strong{font-size:13px}.anonymize-page .anonymize-preview-body{padding:24px;border-radius:6px;min-height:480px;overflow-wrap:anywhere;font:14px/1.7 var(--font-sans)}.anonymize-page .anonymize-preview-body h1{font-size:27px;line-height:1.2;margin:0 0 20px;padding-bottom:14px}.anonymize-page .anonymize-preview-body h2{font-size:18px;margin:28px 0 12px}.anonymize-page .anonymize-preview-body pre{font-size:12px;padding:15px}.anonymize-page.preview-expanded .anonymize-split{grid-template-columns:1fr}.anonymize-page.preview-expanded .anonymize-form-col{display:none}.hosting-usage{font-size:12px;color:var(--ink-muted);margin:0 0 4px}.expiration-choices{border:0;padding:0;margin:0 0 16px;min-width:0}.expiration-choice{display:flex;align-items:flex-start;gap:10px;padding:12px 0;margin:0;cursor:pointer;font-size:14px;font-weight:500;line-height:1.5}.expiration-choice input{width:16px;height:16px;margin:4px 0 0;flex:none;accent-color:var(--accent)}.expiration-choice small{display:block;font-size:12px;font-weight:400;color:var(--ink-muted);margin-top:2px}.dated-options{padding:2px 0 14px 26px}.hosting-date,.hosting-property{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px;align-items:center;margin-bottom:10px}.hosting-property{margin-bottom:0}.hosting-date .paper-field-label,.hosting-property label{font-size:12px;font-weight:400;margin:0}.hosting-date .invalid-feedback{grid-column:1/-1}.anonymize-page .conference-field{border-top:1px solid var(--border-color);padding:16px 0;margin:0}.subscription-choice{padding:16px;background:var(--paper-bg-alt);border-radius:6px;margin-top:4px}.subscription-choice h3{font-size:13px;font-weight:600;margin:0 0 10px}.billing-cycle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:0;padding:0;margin:0 0 12px;min-width:0}.cycle-option{display:flex;align-items:center;gap:7px;padding:10px 8px;border:1px solid var(--border-color);border-radius:4px;background:var(--paper-card);font-size:12px;cursor:pointer;margin:0}.cycle-option.selected{border-color:var(--accent);background:var(--accent-soft)}.cycle-option input{accent-color:var(--accent);margin:0;flex:none}.subscription-choice p{font-size:12px;line-height:1.5;margin:0 0 8px}.subscription-choice p:last-child{margin:0}.hosting-terms{font-size:12px;line-height:1.5;color:var(--ink-muted)}.capacity-reason{font-size:13px}.capacity-options,.repository-pass{margin-top:12px;font-size:12px}.capacity-options summary,.repository-pass summary{cursor:pointer}.capacity-options p,.repository-pass p{margin:8px 0}.capacity-options .task-text-button{display:block}@media(max-width:767px){.anonymize-page .anonymize-split{display:block;overflow:visible}.anonymize-page .anonymize-form-col .paper-settings-main{height:auto}.anonymize-fields{overflow:visible}.anonymize-page .paper-settings-main .paper-settings-section{padding:18px 16px 20px}.anonymize-page .anonymize-topbar{padding:14px 16px}.anonymize-page .anonymize-preview-col{padding:16px}.anonymize-page .anonymize-preview-body{padding:20px}.anonymize-page .anonymize-submit-bar{padding:16px}.anonymize-page .preview-expand{display:none}.anonymize-page .anonymize-mobile-tabs{padding:0;gap:0;background:var(--paper-card)}.anonymize-mobile-tabs button{border-radius:0;padding:12px;min-height:44px}.anonymize-mobile-tabs button[aria-selected=true]{background:0 0;box-shadow:inset 0 -2px var(--accent)}.cycle-option{min-height:44px}}.anonymize-page{--font-sans:system-ui,-apple-system,sans-serif;font-family:var(--font-sans)}body:not(.dark-mode) .anonymize-page{--paper-card:#fff;--canvas-bg-color:#faf9f6;--paper-bg-alt:#f5f4f0;--border-color:#dedbd4;--color:#242320;--ink-muted:#68655e}.anonymize-page .repo-access-controls .btn{font-size:12px;padding:8px 12px;min-height:36px}.anonymize-page .form-check-label{font-weight:400}.anonymize-page .form-check{padding-left:26px}.anonymize-page .form-check input{width:16px;height:16px;margin-left:-26px;accent-color:var(--accent)}.anonymize-page .form-check small{margin-top:6px}.anonymize-page .btn.btn-icon.refresh-branches{display:inline-flex;align-items:center;justify-content:center;width:40px;min-width:40px;height:100%;min-height:40px;padding:0}@media (max-width:767px){.anonymize-page #branch,.anonymize-page #commit{min-height:44px}.anonymize-page .btn.btn-icon.refresh-branches{width:44px;min-width:44px;min-height:44px}}.anonymize-page .redaction-syntax{font-size:12px;margin-top:8px}.redaction-syntax summary{cursor:pointer;color:var(--link-color);min-height:28px}.anonymize-page .term-hint{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:8px;padding:8px 10px;border-radius:6px;background:#fbf1df;color:#5c3a07;font-size:12px}.anonymize-page .term-hint code{background:0 0;padding:0;color:inherit;font-weight:600}.anonymize-page .term-hint .btn{flex:none}.anonymize-page .term-hint-more{margin-top:6px;font-size:12px;color:var(--ink-muted)}body.dark-mode .anonymize-page .term-hint{background:#3a2f1c;color:#f3dcb4}.anonymize-page .preserve-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 16px;padding-top:14px;border-top:1px solid var(--paper-border,#e5e1d9)}.anonymize-page .preserve-row-text{display:flex;flex-direction:column;min-width:0}.anonymize-page .preserve-row .paper-field-label{margin-bottom:2px}.anonymize-page .preserve-row-value{font-size:12px;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.anonymize-page .preserve-row .btn{flex:none}.preserve-dialog{width:min(620px,calc(100vw - 32px));padding:24px;border:1px solid var(--paper-border,#e5e1d9);border-radius:12px;background:var(--paper-bg,#faf9f6);color:inherit;box-shadow:0 16px 64px #0003}.preserve-dialog::backdrop{background:#0006}.preserve-dialog h2{margin:0 0 6px;font-size:20px}.preserve-dialog .preserve-intro{font-size:13px;color:var(--ink-muted);margin-bottom:14px}.preserve-dialog .preserve-tree{margin-top:10px;height:300px;overflow:auto;border:1px solid var(--paper-border,#e5e1d9);border-radius:8px;background:var(--paper-card);padding:4px 0}.preserve-dialog .preserve-item{display:flex;align-items:center;gap:6px;min-height:30px;padding-right:10px;font-size:13px}.preserve-dialog .preserve-item:hover{background:var(--paper-bg-alt)}.preserve-dialog .preserve-caret,.preserve-dialog .preserve-caret-space{flex:none;width:18px;height:22px;border:0;padding:0;background:0 0;color:var(--ink-muted);font-size:12px;cursor:pointer}.preserve-dialog .preserve-item input{flex:none;margin:0}.preserve-dialog .preserve-name{flex:1;min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,monospace;font-size:12.5px;cursor:pointer}.preserve-dialog .preserve-note{flex:none;font-size:11px;color:var(--ink-muted)}.preserve-dialog .preserve-status{margin:10px 12px;font-size:13px;color:var(--ink-muted)}.preserve-dialog .preserve-patterns{margin-top:12px;font-size:13px}.preserve-dialog .preserve-patterns summary{cursor:pointer;color:var(--link-color);min-height:28px}.preserve-dialog .preserve-patterns textarea{margin-top:6px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:12.5px}.preserve-dialog .preserve-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}.preserve-dialog .preserve-count{font-size:13px;color:var(--ink-muted)}.preserve-dialog .preserve-actions{display:flex;gap:8px;margin-left:auto}body.dark-mode .preserve-dialog{background:#242320;color:#faf9f6}.anonymize-page .anonymize-preview-body h2{border:0;padding:0;font-weight:700}.anonymize-page .anonymize-preview-body h1{font-weight:700}.anonymize-page .anonymize-preview-body pre{background:var(--paper-bg-alt);line-height:1.7}.anonymize-page .anonymize-preview-body pre code{font:12px/1.7 ui-monospace,monospace;background:0 0;padding:0}.anonymize-page .anonymize-preview-body{--main-bg-color:var(--paper-card);background:var(--paper-card)}.anonymize-page .anonymize-submit-bar .btn{font-weight:600}.anonymize-page .form-grid-2 .form-group{margin-bottom:0}.anonymize-page .form-check small{margin-left:-26px}.user-settings{max-width:1060px;padding:28px 26px 40px}.user-settings .settings-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:22px}.user-settings .settings-title h1{font:650 26px/1.3 var(--font-sans);letter-spacing:-.025em;margin:0}.settings-title>span{color:var(--ink-muted);font-size:12px}.settings-nav{display:flex;gap:28px;border-bottom:1px solid var(--border-color)}.settings-nav button{border:0;border-radius:0;background:0 0;color:var(--ink-muted);padding:12px 0;min-height:44px;font:13px/1.4 var(--font-sans)}.settings-nav button[aria-current=page]{color:var(--color);font-weight:600;box-shadow:inset 0 -2px var(--accent)}.settings-nav button:hover{color:var(--accent)}.user-settings .settings-scope{color:var(--ink-muted);font-size:12px;margin:20px 0 4px}.user-settings .settings-row{display:grid;grid-template-columns:210px minmax(0,1fr);gap:32px;padding:22px 0;border-bottom:1px solid var(--border-color)}.user-settings .settings-label,.user-settings .settings-row>h2{font-size:13px;font-weight:600;line-height:1.5;margin:8px 0 0;display:block}.user-settings .settings-help{font-size:12px;color:var(--ink-muted);margin:7px 0 0;line-height:1.6}.user-settings .form-control{font-size:14px;min-height:40px;padding:9px 10px;border-radius:4px;background:var(--paper-card)}.user-settings textarea.form-control{line-height:1.6}.settings-syntax{font-size:12px;margin-top:8px}.settings-syntax summary{cursor:pointer;color:var(--link-color);min-height:26px}.settings-syntax p{margin:8px 0}.settings-checks{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;padding:4px 0;margin-bottom:12px}.user-settings .settings-check{display:flex;gap:9px;align-items:center;font-size:13px;font-weight:400;margin:0}.user-settings .settings-check .form-check-input{position:static;width:16px;height:16px;margin:0;flex:none;accent-color:var(--accent)}.settings-save{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 0 22px}.settings-save-status{color:var(--ink-muted);font-size:12px}.settings-save #save{margin-left:auto;min-width:125px}.settings-save-error{color:var(--status-error);flex-basis:100%}.user-settings .settings-inline{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.user-settings .btn{font-size:13px;min-height:40px;padding:9px 13px}.settings-inline .btn{flex-shrink:0}.user-settings #settings-quota{margin:22px 0 16px}.user-settings .quota-row{gap:20px}.user-settings .quota-item{padding:0;background:0 0;border:0}.user-settings .quota-label{font-size:12px}.user-settings .quota-value{font-size:13px;margin:6px 0}.user-settings .quota-value strong{font-size:14px}.user-settings .quota-percent,.user-settings .quota-remaining{font-size:11px}.user-settings .settings-plan{background:var(--paper-card);border:1px solid var(--border-color);border-radius:6px;padding:20px;margin:20px 0 0}.user-settings .settings-plan h3{font-size:15px;margin:0 0 10px}.user-settings .settings-plan>p{font-size:13px}.settings-cycles{display:flex;flex-wrap:wrap;gap:10px;border:0;padding:0;margin:16px 0}.settings-cycles label{display:flex;align-items:center;gap:8px;border:1px solid var(--border-color);background:var(--paper-card);border-radius:5px;padding:12px;font-size:13px;margin:0;cursor:pointer;flex:1}.settings-cycles label.selected{border-color:var(--accent);background:var(--accent-soft)}.settings-cycles input{accent-color:var(--accent)}.settings-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.settings-notice{background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:5px;padding:14px 16px;margin:16px 0;font-size:13px}.settings-notice p{margin:6px 0 12px}.settings-text-button{border:0;background:0 0;color:var(--link-color);padding:8px 0;font-size:12px}.settings-pass{margin-top:18px}.settings-pass label{display:block;font-size:13px;margin-bottom:8px}.settings-pass .btn{margin-top:12px}.settings-purchase{padding:12px 0;border-bottom:1px solid var(--border-color);font-size:13px;overflow-wrap:anywhere}.settings-purchase:last-child{border:0}.settings-purchase>span{display:block;color:var(--ink-muted);margin-top:4px}.user-settings .paper-account-card{padding:24px 0;border:0;background:0 0}.user-settings .paper-danger-zone{margin-top:24px}@media (max-width:767px){.user-settings{padding:22px 18px 90px}.user-settings .settings-row{grid-template-columns:1fr;gap:12px;padding:20px 0}.user-settings .settings-label,.user-settings .settings-row>h2{margin-top:0}.settings-nav{gap:18px;justify-content:space-between}.settings-nav button{text-align:left;font-size:12px;max-width:124px}.user-settings .settings-check{font-size:12px;min-height:28px}.settings-save{gap:8px}.settings-save-status{font-size:11px}.settings-save #save{min-width:120px}.user-settings .quota-row{grid-template-columns:1fr}.settings-cycles label{flex-basis:100%}}.user-settings .settings-save .draft-status{margin:0;padding:0}.settings-delete-confirm{max-width:480px;margin-top:18px}.settings-delete-confirm label{display:block;font-size:13px;margin-bottom:8px}.user-settings .quota-usage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.user-settings .quota-usage .quota-item+.quota-item{border:0;padding:0}.user-settings .quota-percent,.user-settings .quota-remaining{display:none}@media (max-width:767px){.user-settings .quota-usage{grid-template-columns:1fr}}.settings-header-actions{display:flex;align-items:center;gap:16px}.settings-header-actions>span{color:var(--ink-muted);font-size:12px}.user-settings .settings-upgrade{color:var(--accent);border-color:var(--accent);background:0 0}.user-settings .settings-comparison{width:100%;table-layout:fixed;margin:16px 0 20px;font-size:12px}.settings-comparison td,.settings-comparison th{padding:10px 8px;border-bottom:1px solid var(--border-color);text-align:left;overflow-wrap:anywhere;vertical-align:top}.settings-comparison th:first-child{width:42%;padding-left:0}.settings-comparison tbody th{font-weight:400}.settings-comparison thead th{font-weight:600}@media(max-width:580px){.settings-header-actions>span{display:none}.settings-header-actions{gap:8px}.user-settings .settings-comparison{font-size:11px}}.navbar .nav-link.nav-upgrade{border:1px solid var(--accent);border-radius:5px;color:var(--accent)!important;padding:7px 12px!important;margin-right:12px;font-size:12px;line-height:1.5}.navbar .nav-link.nav-upgrade:hover{background:var(--accent-soft)}@media(max-width:991px){.navbar .nav-link.nav-upgrade{display:inline-block;min-height:44px;padding:11px 14px!important;margin:8px 0}}@media (max-width:600px){.ov-cache .ov-performance-window{display:grid;grid-template-columns:auto minmax(0,1fr);width:100%}.ov-cache .ov-performance-window select{width:100%;min-width:0}}.viewer-loading{padding:24px clamp(16px,4vw,40px);min-height:280px;color:var(--color)}.viewer-loading-status{min-height:84px}.viewer-loading-status strong{display:block;font-size:15px;font-weight:600}.viewer-loading-name{display:block;margin-top:6px;font-family:monospace;font-size:13px;overflow-wrap:anywhere;opacity:.75}.viewer-loading-status p{margin:12px 0;font-size:14px}.viewer-loading-lines{display:grid;gap:14px;max-width:720px;padding-top:16px}.viewer-loading-lines span{height:9px;width:70%;background:var(--border-color);border-radius:3px}.viewer-loading-lines span:nth-child(3n+1){width:48%}.viewer-loading-lines span:nth-child(3n+2){width:88%}.ace_scrollbar-h{height:8px!important}.ace_scrollbar-h::-webkit-scrollbar{height:8px}.ace_scrollbar::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ink-faint) 55%,transparent);border-radius:4px}.ace_scrollbar::-webkit-scrollbar-track{background:0 0}.explorer-content,.explorer-main{background:var(--paper-card)}.explorer-content .dir-card,.explorer-content .file-card{margin:0!important;border:0;border-radius:0;background:0 0;overflow:visible}.explorer-content .file-card{min-height:100%}.explorer-content .file-card.is-code{height:100%!important;overflow:clip}.explorer-content .file-card-head{position:sticky;top:0;z-index:3;min-height:52px;padding:8px 12px 8px 32px;border-radius:0!important;border-bottom:1px solid var(--border-soft);background:color-mix(in srgb,var(--paper-card) 90%,transparent);-webkit-backdrop-filter:saturate(1.2) blur(8px);backdrop-filter:saturate(1.2) blur(8px)}.dark-mode .explorer-content .file-card-head{background:color-mix(in srgb,var(--paper-card) 90%,transparent)}.explorer-content .file-card .file-content.markdown-body{max-width:880px;padding:36px 32px 96px;background:0 0!important}.explorer-content .file-card .ace_editor{border-radius:0}.explorer-content .ace_editor.ace-chrome .ace_gutter,.explorer-content .ace_editor.ace-nord-dark .ace_gutter{background:var(--paper-card)!important;border-right:0}.explorer-content .ace_editor .ace_gutter-cell{padding-left:20px}.explorer-content .dir-card{border-bottom:1px solid var(--border-soft)}.explorer-content .dir-card-head{padding:14px 32px;background:0 0!important;border-bottom:0}.explorer-content .dir-row{padding:0 32px}.explorer-content .dir-card+.file-card{margin-top:0!important}@media (max-width:767px){.explorer-content .file-card-head{padding:6px 8px 6px 16px;min-height:0}.explorer-content .file-card .file-content.markdown-body{padding:20px 16px 72px}.explorer-content .ace_editor .ace_gutter-cell{padding-left:8px}.explorer-content .dir-card-head,.explorer-content .dir-row{padding-left:16px;padding-right:16px}}.leftCol-brand{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:52px;padding:0 14px;border-bottom:1px solid var(--border-soft)}.leftCol-logo{font-family:var(--font-serif);font-size:19px;letter-spacing:-.01em;color:var(--color)!important;text-decoration:none!important;white-space:nowrap}.leftCol-logo em{font-style:italic}.leftCol-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px 2px 6px;border-radius:999px;background:var(--hover-bg-color);font-size:11.5px;font-weight:500;color:var(--ink-soft);white-space:nowrap}.leftCol-badge .ui-icon{width:13px;height:13px;color:var(--status-ready)}.leftCol-search{padding-top:12px}.leftCol-links{display:flex;align-items:center;gap:14px;margin:0 0 10px;font-size:13px}.leftCol-links a{color:var(--ink-soft);text-decoration:none}.leftCol-links a:hover{color:var(--color);text-decoration:underline;text-underline-offset:3px}.leftCol-theme{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-left:auto;border:0;border-radius:var(--radius-control);background:0 0;color:var(--ink-soft);cursor:pointer}.leftCol-theme:hover{background:var(--hover-bg-color);color:var(--color)}.leftCol-theme .ui-icon{width:16px;height:16px}.leftCol-foot .leftCol-zip{display:flex}.card-files-btn{display:none!important}@media (max-width:991px){.card-files-btn{display:inline-flex!important}}.card-files-btn.is-needed{display:inline-flex!important}@media (max-width:991px){.leftCol-brand{padding-right:60px}.leftCol-head{position:absolute;top:0;right:0;z-index:2;padding:4px 6px!important;border:0!important;background:0 0!important}.leftCol-head .leftCol-eyebrow{display:none}}@media (max-width:991px){.leftCol-head .leftCol-close{width:40px;height:40px;border:0!important;background:0 0!important;border-radius:var(--radius-control);color:var(--ink-soft)}.leftCol-head .leftCol-close:hover{background:var(--hover-bg-color)!important;color:var(--color)}.leftCol-brand{min-height:52px}}.leftCol-links .leftCol-donate{display:inline-flex;align-items:center;gap:5px}.leftCol-links .leftCol-donate .ui-icon{width:14px;height:14px}.leftCol-links .leftCol-donate:hover{color:var(--status-error);text-decoration:none}.leftCol-links .leftCol-donate:hover .ui-icon{fill:currentColor}.files .file.active>a{border-radius:var(--radius-control)!important}.files .file.active>a::before{left:4px!important;top:7px!important;bottom:7px!important;width:3px!important;border-radius:2px!important}.leftCol-backdrop{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:rgba(20,18,16,.45)!important}@media (max-width:991px){.leftCol-head{right:6px!important}}.symbols{position:relative}.file-card-head .btn.btn-symbols{gap:6px;padding:0 10px;color:var(--ink-soft);font-weight:500}.symbols-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:30;width:300px;max-height:420px;overflow:auto;padding:6px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);box-shadow:0 12px 32px rgba(26,24,21,.16)}.symbols-head{padding:6px 8px 8px;font-size:12px;font-weight:600;color:var(--ink-muted)}.symbols-item{display:flex;align-items:center;gap:10px;width:100%;height:32px;padding:0 8px;border:0;border-radius:var(--radius-control);background:0 0;font:inherit;font-size:13px;color:var(--color);text-align:left;cursor:pointer}.symbols-item:focus-visible,.symbols-item:hover{background:var(--hover-bg-color);outline:0}.symbols-kind{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;font:600 11px/1 var(--font-mono);flex-shrink:0}.symbols-kind.is-function{background:color-mix(in srgb,#6b45b8 14%,transparent);color:#6b45b8}.symbols-kind.is-class{background:color-mix(in srgb,#b4362a 14%,transparent);color:#b4362a}.dark-mode .symbols-kind.is-function{color:#c9a8f5}.dark-mode .symbols-kind.is-class{color:#f2897d}.symbols-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:12.5px}.symbols-line{font-size:12px;color:var(--ink-muted);font-variant-numeric:tabular-nums}@media (max-width:1180px){.file-card-head .btn-symbols .btn-find-label{display:none}.file-card-head .btn-symbols{width:32px;padding:0!important}}.ace_search{top:0!important;left:0!important;right:0!important;border:0!important;border-bottom:1px solid var(--border-soft)!important;border-radius:0!important;box-shadow:none!important;padding:8px 12px 8px 8px!important;background:var(--paper-card)!important}.ace_search_field{border-color:var(--border-color)!important}.ace_search .ace_button{border:1px solid transparent!important}.ace_search .ace_button.checked{background:var(--accent-soft)!important;color:var(--accent)!important;border-color:color-mix(in srgb,var(--accent) 40%,transparent)!important}.ace_search_counter{color:var(--ink-soft)!important;font-size:13px!important}.ace_editor .ace_marker-layer .ace_selected-word{background:var(--accent-soft)!important}.ace_editor.ace-chrome .ace_marker-layer .ace_selection{background:color-mix(in srgb,var(--accent) 28%,transparent)!important;box-shadow:0 0 0 1px var(--accent)!important}.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection{background:color-mix(in srgb,var(--accent) 34%,transparent)!important;box-shadow:0 0 0 1px var(--accent)!important}.leftCol-foot{padding:10px 14px 12px}.leftCol-links{margin:0 0 6px;gap:12px}.leftCol-repo-actions{display:inline-flex}.leftCol-project-header .leftCol-hide{display:inline-flex}@media (max-width:991px){.leftCol-project-header button.leftCol-hide{display:none}}.ace-chrome .ace_string{color:#11704f!important}.ace-chrome .ace_entity.ace_name.ace_function,.ace-chrome .ace_support.ace_function{color:#5b3dc2!important}.ace-chrome .ace_keyword,.ace-chrome .ace_storage{color:#b02f22!important}.ace-chrome .ace_comment{color:#6f6a61!important}.ace-chrome .ace_keyword.ace_operator,.ace-chrome .ace_paren,.ace-chrome .ace_punctuation{color:#5c574f!important}.dark-mode .ace_editor.ace-nord-dark,.dark-mode .explorer-content,.dark-mode .explorer-content .ace_editor.ace-nord-dark .ace_gutter,.dark-mode .explorer-main{background:var(--canvas-bg-color)!important}.dark-mode .ace_search,.dark-mode .explorer-content .file-card-head{background:color-mix(in srgb,var(--canvas-bg-color) 92%,transparent)!important}.dark-mode .leftCol{background:var(--sidebar-bg-color)}.dark-mode .symbols-menu{background:#22201c}.paper-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.paper-stats-grid .paper-stat-card{padding-left:24px!important;padding-right:24px!important}.paper-stats-grid .paper-stat-card:first-child{padding-left:0!important}.paper-stat-value{font-size:40px!important}.paper-stats-grid .paper-stat-card{margin-right:0!important}.paper-stats-grid .paper-stat-card:last-child{border-right:0;padding-right:0!important}@media (max-width:767px){.paper-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.paper-stats-grid .paper-stat-card:nth-child(odd){padding-left:0!important}}.dark-mode .leftCol-foot,.leftCol-foot{background:0 0!important}.paper-faq-toc nav a.active,.paper-faq-toc nav a:hover{border-left-color:var(--accent)!important}.card-files-label{display:none}@media (max-width:991px){.file-card-head .card-files-btn{width:auto!important;padding:0 10px!important;gap:6px;border:1px solid var(--border-color)!important;color:var(--color)!important}.card-files-label{display:inline;font-size:13px;font-weight:500}}@media (max-width:767px){.file-card-head .btn.btn-icon-only{color:var(--color)!important}.file-card-head .file-card-meta .meta-extra{display:none!important}.file-card.is-code.no-wrap::after{width:64px!important}}.btn.btn-ghost.is-on{color:var(--accent)!important;background:var(--accent-soft)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)!important}.explorer-content .ace_editor.ace-chrome .ace_gutter,.explorer-content .ace_editor.ace-nord-dark .ace_gutter{border-right:1px solid var(--border-soft)!important}.ace_search .ace_button{width:28px!important;height:28px!important;border:1px solid var(--border-color)!important;color:var(--ink-soft)!important;font-size:12px!important}.ace_search .ace_button.checked{background:var(--accent-soft)!important;color:var(--accent)!important;border-color:var(--accent)!important}.ace_search_counter{margin-left:2px!important}.ace_editor .ace_marker-layer .ace_selected-word{background:rgba(242,204,96,.38)!important;box-shadow:none!important}.ace_editor.ace-chrome .ace_marker-layer .ace_selection,.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection{background:#f2cc60!important;box-shadow:0 0 0 1px #c69026!important}.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection{background:rgba(242,204,96,.55)!important}.explorer-content .file-card .file-content.markdown-body{margin:0 auto!important}.leftCol-project-header .leftCol-zipbtn{width:auto!important;gap:4px;padding:0 6px;font-size:11.5px;font-weight:600;letter-spacing:.02em}.leftCol-project-header .leftCol-zipbtn .ui-icon{width:13px;height:13px}.leftCol-brand{justify-content:space-between}.repo-panel{display:grid;gap:8px;padding:14px 14px 12px;border-bottom:1px solid var(--border-soft)}.repo-panel-title{display:flex;align-items:center;gap:8px;min-width:0;font-size:14px;font-weight:600;color:var(--color)}.repo-panel-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.repo-panel-title .ui-icon{width:16px;height:16px;flex-shrink:0;color:var(--ink-muted)}.repo-panel-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:12.5px;color:var(--ink-soft)}.repo-panel-meta .last-update{font:inherit!important;color:inherit!important;padding:0;border:0}.repo-panel-meta>span+span::before{content:"·";margin-right:10px;color:var(--ink-faint)}.repo-panel-meta>.repo-panel-badge+span::before{content:none}.repo-panel-badge{display:inline-flex;align-items:center;gap:4px;padding:1px 8px 1px 6px;border-radius:999px;background:color-mix(in srgb,var(--status-ready) 12%,transparent);color:var(--status-ready);font-size:11.5px;font-weight:600}.repo-panel-badge .ui-icon{width:12px;height:12px}.repo-panel-zip{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);font-size:13px;font-weight:500;color:var(--color)!important;text-decoration:none!important}.repo-panel-zip:hover{background:var(--hover-bg-color);border-color:var(--ink-faint)}.repo-panel-zip .ui-icon{width:15px;height:15px}.dark-mode .repo-panel-zip{background:0 0}.leftCol-project-header{display:none!important}.leftCol-search{padding-top:12px;padding-bottom:4px}.tb-file{display:inline-flex;align-items:center;gap:4px;margin-left:6px;padding-left:10px;border-left:1px solid var(--border-color)}.file-card-head .btn.tb-btn{height:32px;gap:6px;padding:0 12px!important;border:1px solid var(--border-color)!important;border-radius:var(--radius-control)!important;background:var(--paper-card)!important;color:var(--color)!important;font-size:13px;font-weight:500}.file-card-head .btn.tb-btn:hover{background:var(--hover-bg-color)!important;border-color:var(--ink-faint)!important}.file-card-head .btn.tb-btn .ui-icon{width:15px;height:15px}.file-card-head .btn.tb-btn-icon{width:32px;padding:0!important;justify-content:center}.dark-mode .file-card-head .btn.tb-btn{background:0 0!important}.file-card-actions>.tb-file:first-child{border-left:0;padding-left:0;margin-left:0}.tb-more{position:relative;display:none}.tb-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:40;width:220px;padding:6px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);box-shadow:0 12px 32px rgba(26,24,21,.18)}.tb-menu>a,.tb-menu>button{display:flex;align-items:center;gap:10px;width:100%;height:40px;padding:0 10px;border:0;border-radius:var(--radius-control);background:0 0;font:inherit;font-size:14px;color:var(--color)!important;text-align:left;text-decoration:none!important}.tb-menu>a:hover,.tb-menu>button:hover{background:var(--hover-bg-color)}.tb-menu .ui-icon{width:16px;height:16px;color:var(--ink-soft)}.tb-menu-check{margin-left:auto;color:var(--accent);font-weight:600}.tb-menu-sep{height:1px;margin:6px 4px;background:var(--border-soft)}@media (max-width:767px){.tb-more{display:inline-flex}.file-card-head .btn-find,.file-card-head .btn-goto,.file-card-head .btn-toggle,.file-card-head .symbols,.file-card-head .tb-file,.file-card-head .view-switch+.file-card-actions .tb-file{display:none!important}.file-card-head .tb-more-btn{width:40px!important;height:40px!important}.file-card-head .card-files-btn{height:40px!important}.file-card-path .paths .breadcrumb-item:last-child{font-size:15px}}.feat-mock{height:380px;overflow:hidden;background:var(--paper-card);font-family:var(--font-sans);color:var(--color)}.fm-form{padding:22px 26px;display:grid;gap:8px}.fm-label{font-size:12px;font-weight:600;color:var(--ink-soft);margin-top:6px}.fm-input{height:36px;display:flex;align-items:center;padding:0 12px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--input-bg);font-size:13.5px}.fm-input-sm{width:150px}.fm-chips{display:flex;flex-wrap:wrap;gap:6px}.fm-chips span{padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--status-error) 9%,transparent);color:var(--color);font-size:12.5px;text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--status-error) 55%,transparent)}.fm-chips .fm-chip-add{background:0 0;border:1px dashed var(--border-color);color:var(--ink-muted);text-decoration:none}.fm-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:end}.fm-toggles{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.fm-toggles span{padding:5px 10px;border:1px solid var(--border-color);border-radius:var(--radius-control);font-size:12.5px;color:var(--ink-muted)}.fm-toggles .is-on{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:var(--accent-soft);color:var(--accent)}.fm-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border-soft)}.fm-share{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft)}.fm-btn{padding:9px 14px;border-radius:var(--radius-button);background:var(--accent);color:#fff;font-size:13px;font-weight:600;white-space:nowrap}.dark-mode .fm-btn{background:#1f6a64}.fm-viewer{display:grid;grid-template-columns:150px 1fr;height:100%}.fm-tree{padding:14px 8px;background:var(--paper-bg-alt);border-right:1px solid var(--border-soft);font-size:12.5px}.fm-tree div{padding:5px 10px;border-radius:var(--radius-control);color:var(--ink-soft)}.fm-tree .is-folder::before{content:"▸ ";color:var(--ink-faint)}.fm-tree .is-active{background:rgba(128,128,128,.14);color:var(--color);font-weight:500;box-shadow:inset 3px 0 0 var(--accent)}.fm-code{min-width:0}.fm-code-bar{display:flex;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border-soft);font-size:12.5px;color:var(--ink-muted)}.fm-code-bar b{color:var(--color);font-weight:600}.fm-code pre{margin:0;padding:12px 16px;font-family:var(--font-mono);font-size:12.5px;line-height:1.75;color:var(--color);background:0 0;white-space:pre}.fm-code .ln{display:inline-block;width:22px;margin-right:14px;text-align:right;color:var(--ink-faint)}.fm-code .k{color:#b02f22}.fm-code .f{color:#5b3dc2}.fm-code .s{color:#11704f}.fm-code .c{color:var(--ink-muted);font-style:italic}.dark-mode .fm-code .k{color:#f2897d}.dark-mode .fm-code .f{color:#c9a8f5}.dark-mode .fm-code .s{color:#9dd3a8}.fm-code .redact{padding:0 4px;border-radius:3px;background:var(--accent-soft);color:var(--accent);font-style:normal}.fm-dash{padding:12px 18px;font-size:13px}.fm-dash-head,.fm-dash-row{display:grid;grid-template-columns:1.7fr .9fr .5fr .9fr;gap:12px;align-items:center}.fm-dash-head{padding:8px 0;border-bottom:1px solid var(--border-color);font-size:12px;font-weight:600;color:var(--ink-muted)}.fm-dash-row{padding:12px 0;border-bottom:1px solid var(--border-soft)}.fm-dash-row b{display:block;font-weight:600}.fm-dash-row i{display:block;font-style:normal;font-size:12px;color:var(--ink-muted);font-family:var(--font-mono)}.fm-dash-row.is-muted{color:var(--ink-muted)}.fm-dash .st{display:inline-flex;align-items:center;gap:6px}.fm-dash .st::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.fm-dash .st.is-ready{color:var(--status-ready)}.fm-dash .st.is-progress{color:var(--status-progress)}.fm-dash .st.is-expired{color:var(--ink-muted)}@media (max-width:767px){.feat-mock{height:auto;min-height:260px}.fm-viewer{grid-template-columns:1fr}.fm-tree{display:none}.fm-dash-head span:nth-child(4),.fm-dash-row span:nth-child(4){display:none}.fm-dash-head,.fm-dash-row{grid-template-columns:1.6fr 1fr .5fr}.fm-row{grid-template-columns:1fr}}.paper-stat-delta{margin-top:6px!important;font-family:var(--font-sans)!important;font-size:13px!important;color:var(--ink-muted)!important}.paper-stats-grid .paper-stat-card{padding-top:22px!important;padding-bottom:22px!important}.paper-eyebrow,.paper-faq-eyebrow,.paper-stats-meta{font-family:var(--font-sans)!important;font-size:12.5px!important;font-weight:600!important;letter-spacing:.06em!important;color:var(--ink-soft)!important}.paper-feature-tab .paper-eyebrow{font-size:12px!important}.paper-reassure li::before{color:var(--ink-soft)!important}.feat-mock{height:auto!important;min-height:300px}@media (max-width:767px){.file-card.is-code.no-wrap::after{display:none!important}.file-card.is-code.no-wrap .ace_scroller{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 48px),transparent)}.explorer-content .file-card-head{row-gap:6px;padding-top:8px;padding-bottom:8px}.file-card-path{flex:1 1 auto;gap:10px}.file-card-path .paths{flex:1 1 auto;min-width:0}.file-card-path .paths .breadcrumb-item:last-child{overflow:hidden;text-overflow:ellipsis}.file-card-head .card-files-btn{height:32px!important;border-radius:var(--radius-control)!important;padding:0 10px!important}.file-card-head .tb-more-btn{width:36px!important;height:32px!important}.file-card-head>.view-switch{order:4;margin-left:auto!important}.file-card-head .file-card-meta{order:3;flex-basis:auto!important;flex:1 1 auto;margin:0!important;align-self:center}}@media (min-width:768px){.explorer-content .file-card-head{padding-left:20px}.explorer-content .file-card .file-content.markdown-body{margin:0!important;padding-left:20px!important;padding-right:40px!important;max-width:900px}}.dark-mode .files .file.active>a{background:rgba(255,255,255,.13)!important}.dark-mode .btn.btn-ghost.is-on{background:rgba(124,199,190,.18)!important;box-shadow:inset 0 0 0 1px rgba(124,199,190,.45)!important}.dark-mode .leftCol{background:#1e1b18!important}.ace_searchbtn_close{width:24px!important;height:24px!important;background-size:12px!important;opacity:.7}.ace_search_field:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}.navbar .nav-link:not(.active):not(.btn-signin){color:var(--ink-soft)!important}.navbar .nav-support-inline{color:var(--ink-soft)!important}.paper-stat-delta{color:var(--ink-soft)!important}.paper-faq-toc-head,.paper-footer-head{font-family:var(--font-sans)!important;font-size:12px!important;font-weight:600!important;letter-spacing:.06em!important;text-transform:uppercase;color:var(--ink-soft)!important}.paper-feature:not(.is-on) .paper-feature-tab::after{border-color:var(--ink-soft)!important;border-width:0 2px 2px 0!important}.faq-section .panel-default .panel-body{max-width:720px!important}.repo-panel-meta .last-update{flex-basis:100%}.repo-panel-meta .last-update::before{content:none!important}@media (max-width:767px){.file-card-head .file-card-path{flex:1 1 calc(100% - 56px)!important}.file-card-head .file-card-actions{order:1}.file-card-head .file-card-meta{order:3}.file-card-head>.view-switch{order:4}}.repo-panel{display:none!important}.repo-id{display:flex;align-items:center;gap:10px;padding:14px 14px 6px}.repo-id-tile{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border-radius:9px;background:linear-gradient(140deg,color-mix(in srgb,var(--accent) 16%,var(--paper-card)),color-mix(in srgb,var(--accent) 6%,var(--paper-card)));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent);color:var(--accent)}.repo-id-tile .ui-icon{width:17px;height:17px}.repo-id-text{min-width:0}.repo-id-title{font-size:14px;font-weight:600;color:var(--color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.repo-id-sub{margin-top:1px;font-size:12.5px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.repo-id-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 14px 12px 58px;border-bottom:1px solid var(--border-soft);font-size:12.5px}.repo-id-count{color:var(--ink-muted);font-variant-numeric:tabular-nums}.repo-id-zip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--radius-control);color:var(--link-color)!important;font-weight:500;text-decoration:none!important}.repo-id-zip:hover{background:var(--accent-soft)}.repo-id-zip .ui-icon{width:14px;height:14px}.leftCol-foot .leftCol-links{display:none!important}.acct-bar{display:flex;align-items:center;justify-content:space-between;gap:8px}.acct{position:relative;min-width:0}.acct-chip{display:inline-flex;align-items:center;gap:8px;max-width:150px;height:34px;padding:0 8px 0 4px;border:0;border-radius:var(--radius-control);background:0 0;font:inherit;font-size:13px;font-weight:500;color:var(--color);cursor:pointer}.acct-chip:hover,.acct-chip[aria-expanded=true]{background:var(--hover-bg-color)}.acct-chip img,.acct-initial{width:24px;height:24px;border-radius:50%;flex-shrink:0}.acct-initial{display:inline-flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700}.acct-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-caret{width:12px;height:12px;color:var(--ink-muted);transform:rotate(-90deg)}.acct-menu{position:absolute;bottom:calc(100% + 6px);left:0;z-index:40;width:190px;padding:6px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);box-shadow:0 12px 32px rgba(26,24,21,.18)}.acct-menu a{display:flex;align-items:center;gap:10px;height:36px;padding:0 10px;border-radius:var(--radius-control);font-size:13.5px;color:var(--color)!important;text-decoration:none!important}.acct-menu a:hover{background:var(--hover-bg-color)}.acct-menu .ui-icon{width:16px;height:16px;color:var(--ink-soft)}.acct-signin{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);font-size:13px;font-weight:500;color:var(--color)!important;text-decoration:none!important}.acct-signin:hover{background:var(--hover-bg-color);border-color:var(--ink-faint)}.dark-mode .acct-signin{background:0 0}.acct-icons{display:inline-flex;align-items:center;gap:2px}.acct-icons a,.acct-icons button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:var(--radius-control);background:0 0;color:var(--ink-soft)!important;cursor:pointer}.acct-icons a:hover,.acct-icons button:hover{background:var(--hover-bg-color);color:var(--color)!important}.acct-icons .acct-donate:hover{color:var(--status-error)!important}.acct-icons .ui-icon{width:17px;height:17px}.leftCol-foot{padding:8px 10px 10px 14px!important}.leftCol-foot .last-update{display:none}.file-card-head .card-files-btn,.file-card-head .card-files-btn.is-needed{width:34px!important;height:34px!important;padding:0!important;border:0!important;background:0 0!important;color:var(--ink-soft)!important}.file-card-head .card-files-btn:hover{background:var(--hover-bg-color)!important;color:var(--color)!important}.file-card-head .card-files-btn .ui-icon{width:19px;height:19px}.card-files-label{display:none!important}.tb-copy-m{display:none!important}@media (max-width:767px){.tb-copy-m{display:inline-flex!important;width:36px!important;height:34px!important}.file-card-head .file-card-path{flex:1 1 calc(100% - 96px)!important;gap:6px!important}}.ace_search{flex-direction:row}.ace_searchbtn_close{order:99;margin-left:auto!important;width:28px!important;height:28px!important}.ace_search .ace_button,.ace_searchbtn{color:var(--ink-soft)!important}.file-card-head .btn-find:focus:not(:focus-visible){background:0 0!important}.dark-mode .explorer-content .markdown-body img{filter:brightness(.92)!important}@media (max-width:767px){.file-card.is-code.no-wrap .ace_scroller{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 80px),rgba(0,0,0,.15) calc(100% - 8px),transparent)!important;mask-image:linear-gradient(to right,#000 calc(100% - 80px),rgba(0,0,0,.15) calc(100% - 8px),transparent)!important}}.acct-menu-head{padding:6px 10px 8px;margin-bottom:4px;border-bottom:1px solid var(--border-soft);font-size:12px;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-menu-head b{color:var(--color);font-weight:600}@media (max-width:767px){.file-card.is-code.no-wrap{position:relative}.file-card.is-code.no-wrap::before{content:"Scroll \2194";position:absolute;right:12px;bottom:14px;z-index:25;padding:5px 10px;border-radius:999px;background:color-mix(in srgb,var(--color) 82%,transparent);color:var(--canvas-bg-color);font:600 12px/1 var(--font-sans);pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.18)}.file-card-head>.view-switch{order:5!important;flex:1 1 100%;margin-left:0!important;display:grid!important;grid-template-columns:1fr 1fr}.file-card-head>.view-switch .btn{height:36px!important;min-height:36px!important;justify-content:center;font-size:14px}.file-card-head .file-card-meta{font-size:13px!important}}.acct-menu{width:240px}.acct-menu-head{white-space:normal;overflow-wrap:anywhere}.paper-feature .paper-feature-tab::after{border-width:0 1.5px 1.5px 0!important;border-color:var(--ink-soft)!important}.hero-mock-doc-bar span,.hero-mock-tree-title{color:var(--ink-soft)!important}.paper-frame-bar{color:var(--ink-soft)!important}.paper-frame-bar .dots i{background:color-mix(in srgb,var(--ink-muted) 55%,transparent)!important}.dark-mode .hero-mock-doc,.dark-mode .paper-frame{background:#24211d!important}.dark-mode .hero-mock-tree{background:#1c1a17!important}.dark-mode .paper-stats-grid .paper-stat-card{border-color:#3a3631!important}.dark-mode .paper-stats,.dark-mode .paper-stats-grid{border-color:#3a3631!important}.faq-section .panel-default .panel-body{padding-bottom:18px!important}.btn.btn-ghost.is-on{background:var(--hover-bg-color)!important;color:var(--accent)!important;box-shadow:none!important}.dark-mode .btn.btn-ghost.is-on{background:rgba(255,255,255,.08)!important;color:#7cc7be!important;box-shadow:none!important}.acct-chip .acct-caret,.acct-chip .acct-name{display:none}.acct-chip{padding:0 5px!important}.acct-chip img,.acct-initial{width:26px!important;height:26px!important}@media (min-width:768px){.explorer-content .file-card .file-content.markdown-body{margin:0 auto!important;padding-left:40px!important;padding-right:40px!important;max-width:920px}}.files .file.active>a::before{top:5px!important;bottom:5px!important}@media (max-width:767px){.explorer-content .ace_editor .ace_gutter-cell{padding-left:6px!important;padding-right:6px!important}}.repo-id,.repo-id-actions{display:none!important}.leftCol-search{display:flex;align-items:center;gap:6px;padding:12px 12px 8px!important}.leftCol-search .tree-search-box{flex:1 1 auto;min-width:0}.search-zip{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;border:1px solid var(--border-color);border-radius:8px;background:var(--canvas-bg-color);color:var(--ink-soft)!important}.search-zip:hover{background:var(--hover-bg-color);color:var(--color)!important;border-color:var(--ink-faint)}.search-zip .ui-icon{width:17px;height:17px}.dark-mode .search-zip{background:0 0}.support-cta{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:9px 12px;border-radius:var(--radius-surface);background:color-mix(in srgb,#e5484d 9%,var(--paper-card));box-shadow:inset 0 0 0 1px color-mix(in srgb,#e5484d 22%,transparent);color:var(--color)!important;text-decoration:none!important;transition:background .15s,box-shadow .15s}.support-cta:hover{background:color-mix(in srgb,#e5484d 14%,var(--paper-card));box-shadow:inset 0 0 0 1px color-mix(in srgb,#e5484d 40%,transparent)}.support-cta .ui-icon{width:18px;height:18px;flex-shrink:0;color:#e5484d;fill:#e5484d}.support-cta span{display:grid;min-width:0}.support-cta b{font-size:13px;font-weight:600}.support-cta small{font-size:12px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dark-mode .support-cta{background:color-mix(in srgb,#e5484d 12%,var(--sidebar-bg-color))}.leftCol-foot{padding:10px 12px 10px!important}.tb-file{display:inline-flex!important;align-items:stretch;gap:0!important;margin-left:8px;padding-left:0!important;border:1px solid var(--border-color)!important;border-radius:var(--radius-control);overflow:hidden}.tb-seg-btn{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 12px;border:0;background:var(--paper-card);font:inherit;font-size:13px;font-weight:500;color:var(--color)!important;text-decoration:none!important;cursor:pointer}.tb-seg-btn+.tb-seg-btn{border-left:1px solid var(--border-color)}.tb-seg-btn:hover{background:var(--hover-bg-color)}.tb-seg-icon{width:34px;padding:0;color:var(--ink-soft)!important}.tb-seg-icon:hover{color:var(--color)!important}.tb-seg-icon .ui-icon{width:15px;height:15px}.dark-mode .tb-seg-btn{background:0 0}.file-card-actions>.tb-file:first-child{margin-left:0}.file-card-head .btn-find,.file-card-head .btn-goto,.file-card-head .btn-toggle{width:32px!important;height:32px!important}.file-card.is-code.no-wrap::before{content:none!important;display:none!important}.acct-chip{width:34px;height:34px;padding:0!important;justify-content:center;border-radius:50%!important;background:0 0!important}.acct-chip:hover,.acct-chip[aria-expanded=true]{background:var(--hover-bg-color)!important}.ace_searchbtn_close{margin-left:4px!important}.dark-mode .explorer-content .markdown-body img{filter:brightness(.9)!important}.snapshot-line{display:flex;align-items:center;gap:6px;padding:0 14px 8px;font-size:12.5px;color:var(--ink-soft);white-space:nowrap;overflow:hidden}.snapshot-line span{overflow:hidden;text-overflow:ellipsis}.snapshot-line .ui-icon{width:14px;height:14px;flex-shrink:0;color:var(--ink-muted)}.leftCol-search{padding-bottom:6px!important}@media (max-width:767px){.explorer-content .file-card-head .file-card-meta{display:none!important}.explorer-content .file-card-head{flex-wrap:nowrap!important;min-height:52px!important}.file-card-head .card-files-btn,.file-card-head .tb-copy-m,.file-card-head .tb-more-btn{width:40px!important;height:40px!important}.file-card-head .card-files-btn{background:var(--hover-bg-color)!important;color:var(--color)!important;border-radius:var(--radius-control)!important}.file-card-head .file-card-path{flex:1 1 auto!important}}.acct-menu{box-shadow:0 16px 40px rgba(26,24,21,.22),0 0 0 1px var(--border-color)!important;border:0!important}.dark-mode .acct-menu{background:#26231f;box-shadow:0 16px 40px rgba(0,0,0,.55),0 0 0 1px #3a3631!important}.acct-chip{width:32px!important;height:32px!important}.acct-chip img,.acct-initial{width:30px!important;height:30px!important;font-size:13px!important}.ace_search{padding:6px 12px 6px 8px!important;min-height:40px}.ace_search_field{height:28px!important}.ace_search_options{gap:0!important;margin-left:4px!important}.ace_search_options .ace_button{border-radius:0!important;margin:0!important}.ace_search_options .ace_button+.ace_button{margin-left:-1px!important}.ace_search_options .ace_button:first-of-type{border-radius:var(--radius-control) 0 0 var(--radius-control)!important}.ace_search_options .ace_button:last-of-type{border-radius:0 var(--radius-control) var(--radius-control) 0!important}.ace_searchbtn_close{width:28px!important;height:28px!important;border-radius:var(--radius-control)!important;margin-left:8px!important;background-color:transparent!important;opacity:.65}.ace_searchbtn_close:hover{background-color:var(--hover-bg-color)!important;opacity:1}.ace_search_counter{color:var(--ink-soft)!important}.ace_editor .ace_marker-layer .ace_selected-word{background:color-mix(in srgb,var(--accent) 16%,transparent)!important}.ace_editor.ace-chrome .ace_marker-layer .ace_selection,.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection{background:color-mix(in srgb,var(--accent) 34%,transparent)!important;box-shadow:0 0 0 1px var(--accent)!important}.dark-mode .btn.btn-ghost.is-on{background:rgba(124,199,190,.16)!important;color:#a8ddd6!important}.paper-features{grid-template-columns:1fr 1.4fr!important;gap:40px!important}.faq-section .panel-default .panel-title a:after{border-color:var(--ink-soft)!important}.paper-features .paper-feature.is-on .paper-feature-tab::after,.paper-features .paper-feature:not(.is-on) .paper-feature-tab::after{border-width:0 1.5px 1.5px 0!important;border-color:var(--ink-muted)!important}.markdown-body mark.redact-chip,.redact-chip{display:inline-block;padding:0 6px;margin:0 1px;border-radius:4px;background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent);color:var(--accent);font-family:var(--font-mono);font-size:.82em;font-weight:500;line-height:1.5;vertical-align:.06em;cursor:help;transition:background .1s}.redact-chip:hover{background:color-mix(in srgb,var(--accent) 22%,transparent)}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip{font-size:.7em;vertical-align:.18em}.dark-mode .redact-chip{background:rgba(124,199,190,.14);color:#a8ddd6}.ace_editor .ace_marker-layer .ace_redacted{position:absolute;background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent);border-radius:3px}.dark-mode .ace_editor .ace_marker-layer .ace_redacted{background:rgba(124,199,190,.16)}.meta-redact{color:var(--accent);font-weight:500}.explorer-page{display:grid!important;grid-template-columns:var(--sidebar-w,280px) minmax(0,1fr);grid-template-rows:44px minmax(0,1fr)}.viewer-bar{grid-column:1/-1;grid-row:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px 0 14px;border-bottom:1px solid var(--border-color);background:var(--paper-bg-alt);z-index:20}.dark-mode .viewer-bar{background:var(--sidebar-bg-color)}.explorer-page>.leftCol{grid-row:2;grid-column:1;width:auto!important;flex:none!important;height:auto!important;min-height:0;border-top:0}.explorer-page>.explorer-main{grid-row:2;grid-column:2;min-height:0}.explorer-page.files-hidden{grid-template-columns:minmax(0,1fr)}.explorer-page.files-hidden>.explorer-main{grid-column:1/-1}.leftCol-resizer{top:44px!important}.card-files-btn.is-needed{display:none!important}.vb-left,.vb-right{display:flex;align-items:center;gap:4px;min-width:0}.vb-logo{font-family:var(--font-serif);font-size:18px;letter-spacing:-.01em;color:var(--color)!important;text-decoration:none!important;white-space:nowrap;margin-right:10px}.vb-logo em{font-style:italic}.vb-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:var(--radius-control);background:0 0;color:var(--ink-soft)!important;cursor:pointer;text-decoration:none!important}.vb-icon:hover{background:var(--hover-bg-color);color:var(--color)!important}.vb-icon .ui-icon{width:17px;height:17px}.vb-snapshot{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;margin-right:6px;border-radius:999px;background:var(--hover-bg-color);font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);white-space:nowrap;cursor:help}.vb-snapshot .ui-icon{width:13px;height:13px;color:var(--ink-muted)}.vb-support{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;margin-right:4px;border-radius:999px;background:color-mix(in srgb,#e5484d 10%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,#e5484d 28%,transparent);font-size:13px;font-weight:600;color:#c2353a!important;text-decoration:none!important}.vb-support:hover{background:color-mix(in srgb,#e5484d 16%,transparent)}.vb-support .ui-icon{width:15px;height:15px;fill:currentColor}.dark-mode .vb-support{color:#ff8a8e!important;background:rgba(229,72,77,.14)}.vb-signin{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px;margin-left:6px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);font-size:13px;font-weight:500;color:var(--color)!important;text-decoration:none!important}.vb-signin:hover{background:var(--hover-bg-color)}.dark-mode .vb-signin{background:0 0}.viewer-bar .acct{margin-left:6px}.viewer-bar .acct-menu{top:calc(100% + 8px);bottom:auto;left:auto;right:0}.explorer-page>.leftCol .leftCol-search{padding-top:12px!important}@media (max-width:991px){.explorer-page{grid-template-columns:minmax(0,1fr)}.explorer-page>.explorer-main{grid-column:1/-1}.vb-sidebar{display:none}.explorer-page>.leftCol{grid-row:auto}}@media (max-width:575px){.vb-bug,.vb-snapshot{display:none}.vb-support span{display:none}.vb-support{width:32px;padding:0;justify-content:center}}@media (max-width:991px){.explorer-page>.leftCol .leftCol-head{position:static!important;display:flex!important;align-items:center;justify-content:space-between;min-height:52px;padding:6px 8px 6px 16px!important;border-bottom:1px solid var(--border-soft)!important;background:0 0!important}.explorer-page>.leftCol .leftCol-head .leftCol-eyebrow{display:inline!important;font:600 15px/1 var(--font-sans);letter-spacing:0;text-transform:none;color:var(--color)}.explorer-page>.leftCol .leftCol-close{width:44px!important;height:44px!important}.files a{min-height:38px!important;font-size:15px}}.vb-support{background:var(--paper-card)!important;box-shadow:inset 0 0 0 1px var(--border-color)!important;color:var(--color)!important;font-weight:500!important}.vb-support .ui-icon{color:#e5484d;fill:#e5484d}.vb-support:hover{background:var(--hover-bg-color)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,#e5484d 40%,var(--border-color))!important}.dark-mode .vb-support{background:0 0!important;color:var(--color)!important}.vb-snapshot{font-family:var(--font-sans)!important;font-variant-numeric:tabular-nums;font-size:12.5px!important}.file-card-path .breadcrumb-root a{color:var(--ink-soft)!important}.file-card-path .breadcrumb-root a:hover{color:var(--color)!important;text-decoration:underline}@media (max-width:767px){.viewer-bar{padding:0 6px 0 12px}.vb-icon,.vb-support{width:40px!important;height:40px!important}.vb-signin{height:36px}.file-card-head .card-files-btn{background:0 0!important;color:var(--ink-soft)!important}}.ace_search{background:var(--paper-bg-alt)!important;border-bottom:1px solid var(--border-color)!important;gap:6px!important}.dark-mode .ace_search{background:#1e1b18!important}.ace_search .ace_searchbtn{width:28px!important;height:28px!important;border-radius:var(--radius-control)!important;border:1px solid var(--border-color)!important;background:var(--paper-card)!important}.ace_searchbtn_close{order:99;margin-left:6px!important;border:1px solid transparent!important;background-position:center!important;opacity:.8!important}@media (max-width:767px){.file-card.is-code.no-wrap .ace_scroller{-webkit-mask-image:none!important;mask-image:none!important}.file-card.is-code.no-wrap .file-card-body{position:relative}.file-card.is-code.no-wrap .file-card-body::after{content:"";position:absolute;top:0;right:0;bottom:0;width:36px;z-index:8;pointer-events:none;background:linear-gradient(to right,color-mix(in srgb,var(--paper-card) 0,transparent),var(--paper-card) 85%)}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,transparent,var(--canvas-bg-color) 85%)}}.dark-mode .ace_editor .ace_marker-layer .ace_redacted{background:rgba(124,199,190,.24)!important;box-shadow:inset 0 0 0 1px rgba(124,199,190,.5)!important}.paper-reassure,.paper-stat-delta,.paper-stat-label{color:var(--ink-soft)!important}.paper-faq-title{font-size:clamp(2.2rem,4vw,3.1rem)!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,transparent,var(--paper-card) 80%)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,transparent,var(--canvas-bg-color) 80%)!important}}@media (max-width:575px){.vb-support{box-shadow:none!important;background:0 0!important;border-radius:var(--radius-control)!important}.vb-support:hover{background:var(--hover-bg-color)!important}}.meta-redact{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent)!important;font-size:12px;font-weight:600;cursor:default}.dark-mode .meta-redact{background:rgba(124,199,190,.14);color:#a8ddd6!important}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{font-size:.6em!important;padding:1px 6px!important;vertical-align:.25em!important}.ace_search .ace_button{color:var(--ink-soft)!important;font-size:12.5px!important;font-weight:600!important;background:var(--paper-card)!important}.ace_search .ace_button.checked{background:var(--accent-soft)!important;color:var(--accent)!important;border-color:var(--accent)!important;position:relative;z-index:1}.ace_search{align-items:center!important}.ace_search_counter{align-self:center;line-height:28px}.hero-mock-row.is-active{background:rgba(128,128,128,.12)!important;box-shadow:inset 3px 0 0 var(--accent)}.mobile-sub{display:none}@media (max-width:767px){.file-card-head .file-card-path{display:grid!important;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;align-items:center}.file-card-head .file-card-path .card-files-btn{grid-row:1/span 2}.file-card-head .file-card-path .paths{grid-column:2}.mobile-sub{display:block;grid-column:2;margin-top:1px;font-size:12px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-sub b{color:var(--accent);font-weight:600}.dark-mode .mobile-sub b{color:#a8ddd6}.vb-icon[href="/faq"]{display:none!important}}.ace_searchbtn_close{font-size:0!important;color:transparent!important;background-size:10px 10px!important;align-self:center}.acct-initial{background:var(--hover-bg-color)!important;color:var(--color)!important;box-shadow:inset 0 0 0 1px var(--border-color)}.acct-chip[aria-expanded=true] .acct-initial{background:var(--accent-soft)!important;color:var(--accent)!important}.viewer-bar .acct-menu{top:calc(100% + 12px)!important}.dark-mode .paper-frame{box-shadow:0 0 0 1px #3f3a34,0 24px 60px rgba(0,0,0,.5)!important}.faq-section .panel-default .panel-body{max-width:640px!important}.anonymize-landing{align-items:flex-start!important;padding-top:clamp(32px,9vh,88px)!important}.landing-url-row{display:flex;gap:8px;align-items:stretch}.landing-url-row .form-control{flex:1 1 auto;min-width:0}.landing-continue{flex-shrink:0;height:auto;min-height:46px;padding:0 20px;font-weight:600}@media (max-width:575px){.landing-url-row{flex-direction:column}.landing-continue{min-height:44px}.source-url-label-row{flex-direction:column;align-items:flex-start!important;gap:8px}}.paper-table.paper-table-dashboard{width:100%}.q-card-count,.q-stat-value{font-family:var(--font-sans)!important;font-variant-numeric:tabular-nums;font-weight:600}.paper-table .paper-table-head [role=columnheader],.paper-table-head>div,.q-stat-label{font-family:var(--font-sans)!important;font-size:12px!important;letter-spacing:.02em!important;color:var(--ink-soft)!important}.errors-page .kpi-card.kpi-info .kpi-value{color:var(--color)!important}.errors-page .col-msg,.errors-page .col-msg *{font-weight:400!important}.errors-page .col-msg .msg-code,.errors-page .msg-code{font-size:13px!important}.admin-page select,.anonymize-page select,.errors-page select,.paper-page select,.paper-table select{height:34px;padding:0 30px 0 10px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--input-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236F6A61' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;-webkit-appearance:none;appearance:none;font:inherit;font-size:13px;color:var(--input-color)}input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px}.anonymize-page .form-control,.paper-page .form-control,.paper-page input[type=date],.paper-page input[type=text],.paper-page textarea{border:1px solid color-mix(in srgb,var(--ink-faint) 55%,var(--border-color))!important;border-radius:var(--radius-control)!important}.anonymize-page code,.paper-page code,.paper-page kbd{font-family:var(--font-mono)!important}.filter-chip.is-active .count,.paper-chip.is-active .count,.status-chip.active .count{color:inherit!important}.user-header h2{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.status-dot-wrap{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--ink-soft)}.user-actions{display:flex;flex-wrap:wrap;gap:8px}.user-detail-grid .detail-value.is-empty{color:var(--ink-muted);font-style:normal;font-family:var(--font-sans)!important}.admin-section-header h2{font-family:var(--font-sans)!important;font-size:15px!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;color:var(--color)!important}.errors-page .kpi-sub.down,.errors-page .kpi-sub.up{color:var(--ink-soft)!important}.errors-page .kpi-card.kpi-error .kpi-value{color:var(--color)!important}.errors-page .kpi-card.kpi-error:has(.kpi-value:not(:empty)) .kpi-value{color:var(--color)!important}.errors-page .kpi-label{font-family:var(--font-sans)!important}.errors-page .col-msg{font-family:var(--font-mono)!important;font-size:13px!important}.admin-page .admin-head,.admin-page .paper-page-head,.admin-page>header{min-height:92px}.admin-page .paper-page-title{min-height:44px;display:flex;align-items:center;margin-bottom:8px!important}.admin-page .errors-header,.admin-page .ov-header,.admin-page .q-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin-bottom:8px!important}.admin-page .errors-header .paper-page-title,.admin-page .ov-header .paper-page-title,.admin-page .q-header .paper-page-title{margin-bottom:0!important}.admin-page .admin-nav{margin-top:0!important}.admin-page .paper-crumbs{min-height:20px;margin-bottom:4px!important}.dashboard-page,.paper-page{max-width:1112px}.landing-continue:disabled{background:var(--hover-bg-color)!important;border-color:var(--border-color)!important;color:var(--ink-muted)!important;opacity:1!important;box-shadow:none!important}.landing-continue:not(:disabled){background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.admin-summary .summary-pill{border-color:var(--border-color)!important;color:var(--color)!important;background:var(--paper-card)!important}.admin-summary .summary-pill::before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--ink-faint);vertical-align:1px}.admin-summary .summary-pill.ok::before{background:var(--status-ready)}.admin-summary .summary-pill.progress::before,.admin-summary .summary-pill.warn::before{background:var(--status-progress)}.admin-summary .summary-pill.err::before,.admin-summary .summary-pill.error::before{background:var(--status-error)}.admin-summary .summary-pill .count{color:var(--ink-soft)!important;font-weight:600}.admin-summary .summary-pill.active{background:var(--accent-soft)!important;border-color:color-mix(in srgb,var(--accent) 45%,transparent)!important;color:var(--accent)!important}.admin-summary .summary-pill.active .count{color:var(--accent)!important}.admin-summary .summary-pill:has(.count:is(:empty)){opacity:.6}.admin-page .btn-dark,.admin-page .btn-primary{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.btn-outline-danger{border:1px solid color-mix(in srgb,var(--status-error) 45%,transparent)!important;color:var(--status-error)!important;background:0 0!important}.admin-page .paper-table-head>*,.admin-page [role=columnheader],.admin-page h3,.errors-page th,.q-card-title,.q-header-label,.q-panel-title{font-family:var(--font-sans)!important;text-transform:none!important;letter-spacing:0!important;font-size:12.5px!important;font-weight:600!important;color:var(--ink-soft)!important}.ov-flag{color:var(--status-error);font-weight:600}.overview-page .ov-daily-value{color:var(--color)!important}@media (max-width:767px){.paper-table.paper-table-dashboard{margin-left:0!important;margin-right:0!important;width:100%!important}.dashboard-meta{flex-wrap:wrap;row-gap:8px}.dashboard-active-filters{flex-basis:100%;flex-wrap:wrap}.anonymize-landing{padding-top:20px!important}.anonymize-landing .paper-page-lede{font-size:15px!important}}.anonymize-landing .source-privacy-note,.anonymize-landing .text-muted:has(.ui-icon){display:flex;gap:8px;align-items:flex-start;padding:10px 12px;margin-top:12px;border-radius:var(--radius-control);background:color-mix(in srgb,var(--status-progress) 9%,transparent);color:var(--color)!important;font-size:13px}.repo-access-note>span:has(.ui-icon){display:flex;gap:8px;align-items:flex-start;margin-top:10px;padding:9px 12px;border-radius:var(--radius-control);background:color-mix(in srgb,var(--status-progress) 10%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--status-progress) 25%,transparent);color:var(--color)!important;font-size:13px}.repo-access-note>span:has(.ui-icon) .ui-icon{color:var(--status-progress);flex-shrink:0;margin-top:2px}.admin-summary .summary-pill.active{background:var(--paper-card)!important;border-color:var(--border-color)!important;color:var(--color)!important}.admin-summary .summary-pill.active .count{color:var(--ink-soft)!important}.admin-summary .summary-pill:not(.active){background:0 0!important;border-style:dashed!important;color:var(--ink-muted)!important}.admin-summary .summary-pill:not(.active),.admin-summary .summary-pill:not(.active)>:not(.count){text-decoration:line-through;text-decoration-color:var(--ink-faint)}.admin-summary .summary-pill:not(.active) .count{text-decoration:none}.admin-summary .summary-pill:not(.active)::before{opacity:.45}.admin-page:has(.admin-users-row) .admin-summary .summary-pill:not(.active),.user-detail-card~* .admin-summary .summary-pill:not(.active){border-style:solid!important;text-decoration:none!important;color:var(--color)!important;background:var(--paper-card)!important}.admin-page:has(.admin-users-row) .admin-summary .summary-pill:not(.active)::before{opacity:1}.admin-page:has(.admin-users-row) .admin-summary .summary-pill.active{background:var(--accent-soft)!important;border-color:color-mix(in srgb,var(--accent) 45%,transparent)!important;color:var(--accent)!important}.copy-link-inline{display:inline-flex!important;align-items:center;gap:6px;height:30px;padding:0 10px!important;border:1px solid var(--border-color)!important;border-radius:var(--radius-control);background:var(--paper-card)!important;color:var(--color)!important;font-size:13px;font-weight:500}.copy-link-inline:hover{background:var(--hover-bg-color)!important}.copy-link-inline .project-type-svg{width:14px;height:14px}@media (max-width:767px){.copy-link-label{display:none}.copy-link-inline{width:36px;justify-content:center;padding:0!important}}.overview-page .ov-val-warn{color:var(--color)!important}.ov-flag{color:var(--status-progress)!important}@media (max-width:767px){.admin-page .admin-nav{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,#000 85%,transparent);mask-image:linear-gradient(to right,#000 85%,transparent)}.admin-page .admin-nav::-webkit-scrollbar{display:none}.admin-page .admin-nav a{flex-shrink:0}.admin-page .ov-header,.admin-page .paper-page-title{text-align:left!important;justify-content:flex-start!important}.overview-page .ov-kpi-row>:last-child:nth-child(odd){grid-column:1/-1}.admin-summary{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none}.admin-summary>*{flex-shrink:0}}.user-detail-grid .detail-value:first-of-type{font-family:var(--font-mono);font-size:13px}.user-header .type-badge{font-family:var(--font-sans)!important;letter-spacing:0!important;text-transform:none!important;font-weight:600}.errors-page .count-badge,.errors-page .msg-count,.errors-page [class*=count]{background:var(--hover-bg-color)!important;color:var(--color)!important}.ov-flag.critical{color:var(--status-error)!important}.paper-table.paper-table-dashboard .paper-table-head,.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(280px,3fr) 180px 70px 150px 150px!important}.paper-table.paper-table-dashboard .paper-table-row>:last-child{display:flex;justify-content:flex-end;align-items:center;gap:4px}.copy-link-inline{white-space:nowrap}@media (max-width:767px){.admin-filter-row,.admin-page form[class*=filter]{display:grid!important;grid-template-columns:1fr;gap:8px}.admin-page form[class*=filter] input,.admin-page form[class*=filter] select{width:100%!important}.admin-page form[class*=filter]>*{width:100%}.admin-page form[class*=filter] label{font-size:12px!important}}@media (min-width:768px){.copy-link-inline{width:auto!important;min-width:0!important}}@media (max-width:767px){.copy-link-inline{width:44px!important;height:44px!important}}.errors-list-head,.errors-list-head>span,.q-section-label{font-family:var(--font-sans)!important;text-transform:none!important;letter-spacing:0!important;font-size:12.5px!important;font-weight:600!important;color:var(--ink-soft)!important}.errors-list-head>span{background:0 0!important}.q-state-chip{background:var(--paper-card)!important;color:var(--color)!important;border:1px solid var(--border-color)!important;text-transform:none!important;font-family:var(--font-sans)!important;letter-spacing:0!important}.q-state-chip::before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--ink-faint)}.q-state-chip.q-state-active::before{background:var(--accent)}.q-state-chip.q-state-delayed::before,.q-state-chip.q-state-waiting::before{background:var(--status-progress)}.q-state-chip.q-state-failed::before{background:var(--status-error)}.q-state-chip.q-state-completed::before{background:var(--status-ready)}.role-pill{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:var(--hover-bg-color);font:600 12px/1 var(--font-sans);color:var(--color)}.user-header .type-badge{background:var(--hover-bg-color)!important;border:0!important}.admin-filter-inline label,.admin-page label{font-size:12px!important;color:var(--ink-soft)!important}.admin-page select,.admin-page select.form-control{padding-right:30px!important;background:var(--input-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236F6A61' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center!important;-webkit-appearance:none!important;appearance:none!important}.admin-page .paper-table-row .text-muted,.admin-page .paper-table-row [class*=meta]{color:var(--ink-soft)!important}.dashboard-page.container,.paper-page,.paper-page.container{max-width:1112px!important;padding-left:32px!important;padding-right:32px!important}@media (max-width:767px){.dashboard-page.container,.paper-page,.paper-page.container{padding-left:18px!important;padding-right:18px!important}}.page-head-row>a.btn{margin-top:6px}.paper-faq-toc nav,.paper-settings-toc nav{border-left:1px solid var(--border-color)}.paper-settings-toc nav a{margin-left:-1px;border-left:2px solid transparent}.paper-settings-toc nav a.active{border-left-color:var(--accent)!important;color:var(--color)}.paper-page textarea{resize:vertical}.paper-page input[type=date]{height:38px;padding:0 10px;color:var(--input-color);font-family:var(--font-sans)}@media (max-width:767px){.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"name actions" "meta meta";row-gap:6px}.paper-table.paper-table-dashboard .paper-table-row>:first-child{grid-area:name}.paper-table.paper-table-dashboard .paper-table-row>:last-child{grid-area:actions;align-self:start}.paper-table.paper-table-dashboard .paper-table-row>:not(:first-child):not(:last-child){grid-column:1/-1}.copy-link-inline{width:36px!important;height:36px!important}.admin-filter-toolbar{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}.admin-filter-toolbar>:first-child{grid-column:1/-1}.admin-filter-toolbar .admin-filter-inline{display:grid!important;gap:4px}.admin-filter-toolbar .admin-filter-inline label{margin:0}.admin-filter-toolbar>:last-child{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center}.overview-page .ov-header{align-items:flex-start!important;text-align:left!important}.overview-page .ov-header .paper-page-title{width:100%;justify-content:flex-start!important;text-align:left!important}}@media (max-width:767px){.paper-table.paper-table-dashboard .paper-table-row{flex-wrap:wrap!important;align-items:flex-start!important;row-gap:6px}.paper-table.paper-table-dashboard .paper-table-row>.cell-anon{flex:1 1 0!important;min-width:0;order:1}.paper-table.paper-table-dashboard .paper-table-row>.cell-actions{flex:0 0 auto!important;order:2;width:auto!important;margin:0!important}.paper-table.paper-table-dashboard .paper-table-row>.dashboard-row-meta{flex:1 1 100%!important;order:3}.admin-filter-toolbar{display:block!important}.admin-filter-row{display:grid!important;grid-template-columns:1fr 1fr;gap:8px!important}.admin-filter-row>:first-child{grid-column:1/-1}.admin-filter-row .admin-filter-inline{display:grid!important;gap:4px;min-width:0}.admin-filter-row .admin-filter-inline input{width:100%!important}.admin-filter-row>:last-child{grid-column:1/-1;display:flex!important;justify-content:space-between;align-items:center;flex-direction:row!important}.admin-filter-row>:last-child .btn{width:auto!important}}.page-head-row .btn-primary,.paper-page .btn-primary{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.dark-mode .paper-page .btn-primary{background:#1f6a64!important;border-color:#1f6a64!important}.q-section-right,.q-section-right *,.q-stat-label{font-family:var(--font-sans)!important;text-transform:none!important;letter-spacing:0!important;font-size:12px!important;color:var(--ink-soft)!important}.q-card .q-card-sub,[class*=q-card] small{font-family:var(--font-sans)!important}.quota-ring-track{stroke:var(--border-color)!important;stroke-width:3!important;fill:none}.quota-ring-fill{stroke:var(--accent)!important;stroke-width:3!important;fill:none;stroke-linecap:round;transform:rotate(-90deg);transform-origin:12px 12px;min-width:0}.quota-summary-ring{width:18px!important;height:18px!important}.errors-list-head .col-count,.errors-list-head .col-msg{background:0 0!important;font-family:var(--font-sans)!important;font-weight:600!important}.errors-page .col-count>*{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:var(--hover-bg-color)!important;color:var(--color)!important;font:600 12px/1 var(--font-sans);box-shadow:none!important}.errors-page .col-count>*>*{background:0 0!important}.errors-page .col-when{display:flex;flex-direction:column;gap:0;line-height:1.3}.errors-page .errors-list>div:not(.errors-list-head){padding-top:10px!important;padding-bottom:10px!important;min-height:0!important}.errors-page .kpi-sub{font-style:normal!important;color:var(--ink-soft)!important}.q-legend-exec{display:inline-block;width:14px;height:0;border-top:2px dashed var(--ink-muted);vertical-align:middle;margin-right:4px}.admin-filter-row .admin-search,.admin-filter-row input[placeholder^=Search],.admin-filter-row input[type=search],.admin-filter-row>:first-child{flex:1 1 320px!important;min-width:280px}.repo-access-note>span:has(.ui-icon){background:var(--hover-bg-color)!important;box-shadow:none!important}.repo-access-note>span:has(.ui-icon) .ui-icon{color:var(--ink-soft)!important}.dark-mode .paper-table-row{background:0 0!important}.dark-mode .paper-table-row:hover{background:rgba(255,255,255,.04)!important}.dark-mode .btn-primary,.dark-mode .dashboard-page .btn-primary,.dark-mode .paper-page .btn-primary{background:#1f6a64!important;border-color:#1f6a64!important;color:#fff!important}.dark-mode .dashboard-type-filter.btn-primary{background:rgba(124,199,190,.16)!important;border-color:transparent!important;color:#a8ddd6!important}.paper-page .form-control,.paper-page input[type=date],.paper-page input[type=text],.paper-page textarea{border-color:var(--border-color)!important}.paper-page .form-control:focus,.paper-page textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}.errors-page .col-count{background:0 0!important;box-shadow:none!important;display:flex;align-items:center}.errors-page .col-count::after,.errors-page .col-count::before{content:none!important;display:none!important}.errors-page .col-count .count-pill{width:auto!important;min-width:0!important}.paper-page .dashboard-type-filter.btn-primary{background:var(--accent-soft)!important;border-color:transparent!important;color:var(--accent)!important}.paper-page>.row{margin-left:0!important;margin-right:0!important}.paper-page>.row>[class*=col],.paper-page>.row>[class*=w-100]{padding-left:0!important;padding-right:0!important}.q-table th{font-family:var(--font-sans)!important;text-transform:none!important;letter-spacing:0!important;font-size:12.5px!important;font-weight:600!important;color:var(--ink-soft)!important}.admin-page input:not([type=checkbox]),.claim-page input,.paper-page input.form-control,.paper-page input[type=date],.paper-page input[type=search],.paper-page input[type=text],.paper-page input[type=url],.paper-page select.form-control,.paper-page textarea,.paper-page textarea.form-control{border:1px solid var(--border-color)!important}.dark-mode .admin-page input:not([type=checkbox]),.dark-mode .claim-page input,.dark-mode .paper-page input.form-control,.dark-mode .paper-page textarea{border-color:#5a554d!important}.landing-continue:disabled{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important;opacity:.45!important}.overview-page .ov-kpi-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width:767px){.admin-page .admin-nav{flex-wrap:wrap!important;overflow:visible!important;-webkit-mask-image:none!important;mask-image:none!important;row-gap:4px}.admin-summary{flex-wrap:wrap!important;overflow:visible!important;row-gap:8px}.admin-page .paper-table-row .text-muted,.admin-page .paper-table-row [class*=meta]{white-space:normal!important}}.summary-total small{font-size:13px;font-weight:500;color:var(--ink-soft);margin-left:2px}@media (max-width:767px){.overview-page .ov-daily-row,.overview-page .ov-kpi-row,.overview-page [class*=ov-][class*="-row"]{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.overview-page .ov-kpi-card,.overview-page [class*=ov-daily-card]{min-width:0!important;width:auto!important}.overview-page .ov-kpi-row>:last-child:nth-child(odd){grid-column:1/-1}}.user-detail-grid .detail-value:nth-of-type(1){font-family:var(--font-mono)!important}.paper-table-empty .empty-title{display:block;font-size:15px;font-weight:600;color:var(--color);margin-bottom:4px}.paper-table-empty>span{max-width:440px;text-align:center}.paper-table-empty-actions{margin-top:12px;display:flex;gap:8px;justify-content:center}.q-action-sep{display:inline-block;width:1px;height:22px;margin:0 6px;background:var(--border-color);vertical-align:middle}.hidden-toggle{padding:0;border:0;background:0 0;color:var(--link-color);font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.ov-meter{height:4px;margin:6px 0 2px;border-radius:4px;background:var(--hover-bg-color);overflow:hidden}.ov-meter>span{display:block;height:100%;border-radius:4px;background:var(--ink-faint)}.ov-meter.warn>span{background:var(--status-progress)}.ov-meter.crit>span{background:var(--status-error)}.admin-filters-toggle{display:none}@media (max-width:767px){.admin-filters-toggle{display:inline-flex;margin:8px 0}.admin-filter-toolbar .admin-filter-row:not(.is-open)>:not(:first-child){display:none!important}.admin-filter-toolbar .admin-filter-row:not(.is-open){grid-template-columns:1fr!important}}.paper-settings-layout,.settings-layout{max-width:none!important}.paper-settings-layout>:last-child,.settings-layout>:last-child{max-width:none!important;flex:1 1 auto}.errors-list-head>span{font-weight:600!important}.errors-page .errors-list>div:not(.errors-list-head){min-height:56px!important}.reading-layout{display:grid;grid-template-columns:minmax(0,720px) 220px;justify-content:center;gap:48px;padding:0 32px}.reading-layout .file-content.markdown-body{max-width:none!important;margin:0!important;padding:40px 0 96px!important;font-size:16px!important;line-height:1.7!important}.reading-layout .markdown-body h1{font-size:34px!important;font-weight:600!important;letter-spacing:-.02em;border-bottom:0!important;margin-bottom:12px!important}.reading-layout .markdown-body h2{font-size:24px!important;font-weight:600!important;letter-spacing:-.01em;border-bottom:0!important;margin-top:44px!important;padding-bottom:0!important;scroll-margin-top:72px}.reading-layout .markdown-body h3{font-size:18px!important;margin-top:28px!important;scroll-margin-top:72px}.reading-layout .markdown-body>p:first-of-type{font-size:18px;color:var(--ink-soft)}.readme-toc{position:sticky;top:68px;align-self:start;margin-top:44px;max-height:calc(100% - 100px);overflow:auto;display:grid;gap:2px;font-size:13px}.readme-toc-head{font-size:12px;font-weight:600;color:var(--color);margin-bottom:8px}.readme-toc a{display:block;padding:4px 0 4px 12px;border-left:1px solid var(--border-color);color:var(--ink-soft)!important;text-decoration:none!important;line-height:1.35}.readme-toc a:hover{color:var(--color)!important;border-left-color:var(--ink-muted)}.readme-toc a.lvl-3{padding-left:24px;font-size:12.5px}@media (max-width:1199px){.reading-layout{grid-template-columns:minmax(0,760px)}.readme-toc{display:none}}@media (max-width:767px){.reading-layout{padding:0 16px}.reading-layout .file-content.markdown-body{padding:20px 0 72px!important}.reading-layout .markdown-body h1{font-size:26px!important}.reading-layout .markdown-body h2{font-size:20px!important}}.demo{margin-top:28px;display:grid;gap:14px}.demo-terms{display:grid;gap:6px}.demo-terms label{font-size:13px;font-weight:600;color:var(--color);margin:0}.demo-terms label span{font-weight:400;color:var(--ink-soft);margin-left:6px}.demo-terms input{height:42px;padding:0 14px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);font:14px var(--font-mono);color:var(--color)}.demo-terms input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.demo-panes{display:grid;grid-template-columns:1fr 1fr;gap:14px}.demo .pane{border:1px solid var(--border-color);border-radius:var(--radius-surface);background:var(--paper-card);overflow:hidden;display:flex;flex-direction:column}.demo .pane-header{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border-soft);font-size:12px;color:var(--ink-soft)}.demo .pane-label{font-weight:600;color:var(--color)}.demo .pane-url{font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo .pane-after{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent);border-color:color-mix(in srgb,var(--accent) 35%,var(--border-color))}.demo .pane-body{min-height:150px;padding:14px 16px;font:13px/1.75 var(--font-mono);color:var(--color);white-space:pre-wrap}.demo-input{border:0;resize:vertical;background:0 0;outline:0;width:100%}.demo-input:focus{background:color-mix(in srgb,var(--accent) 3%,transparent)}.demo-output .redact-chip{font-size:.92em}@media (max-width:767px){.demo-panes{grid-template-columns:1fr}}.paper-frame-bar .dots{display:none!important}.paper-frame-bar{justify-content:flex-start!important;height:32px!important;background:0 0!important}.paper-frame-bar .url{text-align:left!important;flex:none!important}.reading-layout .markdown-body>p:first-of-type{font-size:inherit!important;color:inherit!important}@media (max-width:767px){.mobile-sub b{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:999px;background:var(--accent-soft);font-size:11.5px}.explorer-content .file-card-head{min-height:52px!important;padding-top:6px!important;padding-bottom:6px!important}.file-card-head .file-card-path{gap:4px!important;column-gap:4px!important}.file-card.is-code.no-wrap .file-card-body::after{width:48px!important;background:linear-gradient(to right,transparent,var(--paper-card) 60%)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,transparent,var(--canvas-bg-color) 60%)!important}}.ace_search{justify-content:flex-start}.ace_searchbtn_close{margin-left:auto!important;order:99}.fm-chips span,.paper-preview .term{background:var(--hover-bg-color)!important;color:var(--ink-soft)!important;text-decoration-color:var(--ink-muted)!important}.dark-mode .files .file.active>a{background:rgba(255,255,255,.06)!important}.dark-mode .ace-nord-dark .ace_marker-layer .ace_redacted,.dark-mode .ace_editor .ace_marker-layer .ace_redacted{background:rgba(124,199,190,.32)!important;box-shadow:inset 0 0 0 1px rgba(124,199,190,.65)!important}.paper-link-arrow{font-size:15px!important}.paper-reassure{font-size:14px!important}.acct-menu-head,.dark-mode .acct-menu-head{color:var(--ink-soft)!important}.reading-layout{grid-template-columns:minmax(0,720px) 200px!important;gap:40px!important;padding:0 24px!important}.vb-snapshot{color:var(--ink-soft)!important;background:var(--paper-card)!important;box-shadow:inset 0 0 0 1px var(--border-color)}.paper-faq-lede a{color:var(--color)!important;border-bottom:1px solid var(--ink-faint)!important;text-decoration:none!important}.paper-faq-lede a:hover{border-bottom-color:var(--color)!important}.paper-qa,.paper-section-head{margin-top:96px!important}.ace-chrome .ace_constant.ace_language,.ace-chrome .ace_constant.ace_numeric,.ace-chrome .ace_support.ace_constant{color:#0550ae!important}.ace-nord-dark .ace_constant.ace_language,.ace-nord-dark .ace_constant.ace_numeric,.ace-nord-dark .ace_support.ace_constant{color:#79c0ff!important}.copy-url{display:inline-flex;align-items:center;gap:8px;max-width:230px;height:30px;padding:0 8px 0 10px;border:0;border-radius:var(--radius-control);background:var(--hover-bg-color);font:500 12.5px/1 var(--font-mono);color:var(--ink-soft);cursor:pointer;transition:background .12s,color .12s}.copy-url:hover{background:var(--accent-soft);color:var(--accent)}.copy-url:disabled{cursor:progress}.copy-url-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.copy-url .project-type-svg{width:14px;height:14px;flex-shrink:0;opacity:.75}.copy-url:hover .project-type-svg{opacity:1}.paper-table.paper-table-dashboard .paper-table-head,.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(260px,3fr) 170px 64px 140px 280px!important}@media (max-width:767px){.copy-url{max-width:44px;padding:0;justify-content:center;width:40px;height:40px}.copy-url-text{display:none}}.dashboard-page .btn.dashboard-type-filter.btn-primary,.paper-page .btn.dashboard-type-filter.btn-primary{background:var(--accent-soft)!important;border-color:transparent!important;color:var(--accent)!important}.ace_editor .ace_marker-layer .ace_selected-word{background:rgba(242,204,96,.42)!important;box-shadow:none!important;border-radius:2px}.ace_editor.ace-chrome .ace_marker-layer .ace_selection{background:#f2cc60!important;box-shadow:0 0 0 1px #c69026!important}.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection{background:rgba(242,204,96,.55)!important;box-shadow:0 0 0 1px #f2cc60!important}.ace_searchbtn_close{background-image:none!important;width:28px!important;height:28px!important;display:inline-flex!important;align-items:center;justify-content:center;border-radius:var(--radius-control)!important;opacity:1!important;color:var(--ink-soft)!important}.ace_searchbtn_close::before{content:"\00d7";font:400 20px/1 var(--font-sans);color:var(--ink-soft)}.ace_searchbtn_close:hover{background-color:var(--hover-bg-color)!important}.ace_search{padding:6px 12px!important}.readme-toc a.is-active{color:var(--color)!important;border-left:2px solid var(--accent)!important;margin-left:-.5px;font-weight:500}.demo .pane-after{box-shadow:none!important;border-color:var(--border-color)!important}.demo .pane-body{min-height:120px!important}.demo-input{resize:none!important}.vb-snapshot .vb-dot{margin:0 2px;color:var(--ink-faint)}.dark-mode .btn-hero,.dark-mode .btn-primary,.dark-mode .landing-continue:not(:disabled){background:#2b8a80!important;border-color:#2b8a80!important;color:#fff!important}.paper-reassure li::before{content:""!important;display:inline-block;width:14px;height:14px;margin-right:7px;vertical-align:-2px;background:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat}.nav-support-inline .nav-heart{width:14px;height:14px;color:#e5484d;fill:#e5484d}.fm-chips span{color:var(--color)!important}@media (max-width:767px){.vb-icon,.vb-support{width:36px!important;height:36px!important}.vb-signin{height:36px!important}.navbar .nav-signin-m,.navbar-toggler{height:36px!important;border-radius:var(--radius-control)!important}}.overview-page .ov-spark-fill,.overview-page .ov-spark-fill-alt,.overview-page .ov-spark-fill-new-user,.overview-page .ov-spark-fill-user{background:color-mix(in srgb,var(--accent) 70%,transparent)!important}.overview-page .ov-dot-legend{background:var(--accent)!important}.errors-page .bucket-info,.errors-page .col-sev .sev-info::before,.errors-page .errors-chart [class*=info]{background:var(--ink-faint)!important}.errors-header .btn-danger{background:0 0!important;color:var(--status-error)!important;border:1px solid color-mix(in srgb,var(--status-error) 45%,transparent)!important;margin-left:10px}.conferences-page .paper-table:has(.paper-table-empty) .paper-table-head{display:none!important}.copy-url{max-width:280px!important}.paper-table.paper-table-dashboard .paper-table-head,.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(240px,3fr) 150px 60px 130px 320px!important}.dark-mode .paper-table-dashboard .paper-table-row{background:0 0!important}.ace_editor .ace_marker-layer .ace_redacted{background:color-mix(in srgb,var(--accent) 18%,transparent)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 60%,transparent)!important}.ace_searchbtn_close{margin-left:4px!important}.ace_search .ace_button{font-size:12px!important}.nav-support-inline .nav-heart,.support-cta .ui-icon,.vb-support .ui-icon{color:#c25b5e!important;fill:#c25b5e!important}.nav-support-inline:hover .nav-heart,.support-cta:hover .ui-icon,.vb-support:hover .ui-icon{color:#e5484d!important;fill:#e5484d!important}.vb-support{background:0 0!important;box-shadow:inset 0 0 0 1px var(--border-color)!important}.dark-mode .nav-support-inline .nav-heart,.dark-mode .vb-support .ui-icon{color:#d9787b!important;fill:#d9787b!important}.readme-toc .toc-rail{border-left:1px solid var(--border-color)}.readme-toc a,.readme-toc a.is-active{border-left:0!important;margin-left:-1px!important;padding:5px 0 5px 13px!important;line-height:1.4}.readme-toc a.lvl-3{padding-left:25px!important}.readme-toc a:hover{box-shadow:inset 1px 0 0 var(--ink-muted)}.readme-toc a.is-active{box-shadow:inset 2px 0 0 var(--accent)!important}@media (min-width:992px){.demo-panes{grid-template-columns:1fr 1.4fr;gap:40px}}.fm-chips span{text-decoration:none!important}.dark-mode .btn-hero,.dark-mode .btn-primary,.dark-mode .landing-continue:not(:disabled){background:#237a71!important;border-color:#237a71!important}.dark-mode .paper-frame{box-shadow:0 0 0 1px #34302b,0 24px 60px rgba(0,0,0,.5)!important}.dark-mode .leftCol{background:#1d1a17!important}.dark-mode .files .file.active>a{background:rgba(255,255,255,.09)!important}.dark-mode .explorer-content .markdown-body img{filter:none!important}@media (max-width:767px){.viewer-bar{padding-left:12px!important;padding-right:12px!important}.vb-signin{height:30px!important;padding:0 10px!important}}.paper-table.paper-table-dashboard .paper-table-head,.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(240px,3fr) 190px 60px 120px 300px!important}.paper-table-dashboard .cell-status .status-sub-date{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}.row-edit{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-control);color:var(--ink-soft)!important}.row-edit:hover{background:var(--hover-bg-color);color:var(--color)!important}.row-edit .ui-icon{width:16px;height:16px}.cell-actions{display:flex;align-items:center;gap:4px;justify-content:flex-end}.dashboard-filter-controls .btn-group[aria-label=Type]{background:var(--hover-bg-color);padding:3px;border-radius:calc(var(--radius-control) + 3px);gap:2px}.dashboard-filter-controls .btn-group[aria-label=Type]>.btn{border:0!important;background:0 0!important;color:var(--ink-soft)!important;border-radius:var(--radius-control)!important;height:32px;box-shadow:none!important}.dashboard-filter-controls .btn-group[aria-label=Type]>.btn.btn-primary{background:var(--paper-card)!important;color:var(--color)!important;box-shadow:0 1px 2px rgba(0,0,0,.08),0 0 0 1px var(--border-color)!important}.admin-filter-row .form-control,.dashboard-page .dashboard-filter-row .form-control,.paper-page .search-wrap .form-control{border:1px solid #a39d92!important}.dark-mode .admin-filter-row .form-control,.dark-mode .dashboard-page .dashboard-filter-row .form-control,.dark-mode .paper-page .search-wrap .form-control{border-color:#4a443d!important}.ov-health{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;margin:0 0 20px;border-radius:var(--radius-control);background:color-mix(in srgb,var(--status-error,#b42318) 8%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--status-error,#b42318) 30%,transparent);font-size:14px;color:var(--color)}.ov-health .ui-icon{width:18px;height:18px;flex:none;margin-top:1px;color:var(--status-error,#b42318)}.dark-mode .ov-health{background:rgba(240,138,130,.1);box-shadow:inset 0 0 0 1px rgba(240,138,130,.35)}.dark-mode .ov-health .ui-icon{color:#f08a82}.cell-anon .record-type-icon{display:none!important}.cell-anon{padding-left:0!important}.errors-page .errors-row-main{padding-top:10px!important;padding-bottom:10px!important;min-height:46px;align-items:center!important}.errors-page .col-when{display:flex;gap:8px;align-items:baseline}.errors-page .when-abs{font-size:12px}.errors-page .msg-code{font-family:var(--font-sans)!important;font-weight:500!important;font-size:13.5px!important}@media (max-width:767px){.viewer-bar .vb-icon,.viewer-bar .vb-signin,.viewer-bar .vb-support{height:36px!important;border-radius:var(--radius-control)!important;background:0 0!important;box-shadow:inset 0 0 0 1px var(--border-color)!important;border:0!important}.viewer-bar .vb-icon,.viewer-bar .vb-support{width:36px!important}.viewer-bar .vb-signin{padding:0 12px!important}.file-card-head .card-files-btn,.file-card-head .tb-copy-m,.file-card-head .tb-more-btn{width:36px!important;height:36px!important;border-radius:var(--radius-control)!important;background:0 0!important;box-shadow:inset 0 0 0 1px var(--border-color)!important;color:var(--color)!important}.file-card.is-code.no-wrap .file-card-body::after{width:64px!important;background:linear-gradient(to right,transparent,var(--paper-card) 70%)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,transparent,var(--canvas-bg-color) 75%)!important}}.btn-toggle.is-on,.btn-toggle[aria-pressed=true]{color:var(--accent)!important;background:var(--accent-soft)!important}.dark-mode .btn-toggle.is-on{background:rgba(124,199,190,.14)!important}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{font-size:.78em!important;padding:0 6px!important;vertical-align:.08em!important;font-weight:600!important}@media (min-width:1200px){.readme-toc{padding-top:10px}}.fm-toggles span{color:var(--color)!important}.dark-mode .paper-frame{border:0!important;box-shadow:0 0 0 1px #34302b,0 24px 60px rgba(0,0,0,.45)!important}.q-section-right .q-legend-completed{color:#2f7d4f!important}.q-section-right .q-legend-failed{color:#b42318!important}.dark-mode .q-section-right .q-legend-completed{color:#6fbf8a!important}.dark-mode .q-section-right .q-legend-failed{color:#f08a82!important}.q-chart-wrap canvas{max-height:180px}.avatar-fallback{width:28px;height:28px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--hover-bg-color);color:var(--ink-soft);font-size:12px;font-weight:600}.mono-id{font-family:var(--font-mono)!important;font-size:13px!important}.landing-continue:disabled{background:var(--hover-bg-color)!important;border-color:var(--border-color)!important;color:var(--ink-soft)!important;opacity:1!important;cursor:not-allowed}.paper-table .anon-sub,.paper-table .anon-sub *{font-size:12px}.dashboard-heading-actions{display:flex;align-items:center;gap:10px}.dashboard-heading-actions .dashboard-quota{position:relative;margin:0!important}.dashboard-heading-actions .quota-panel{right:0;left:auto!important}@media (max-width:767px){.admin-nav{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;gap:4px;margin-left:-16px;margin-right:-16px;padding:0 16px 4px}.admin-nav::-webkit-scrollbar,.admin-summary::-webkit-scrollbar{display:none}.admin-nav a{flex:none;white-space:nowrap}.admin-summary{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;gap:6px;margin-left:-16px;margin-right:-16px;padding:0 16px 4px}.admin-summary>*{flex:none;white-space:nowrap}.paper-table .anon-sub{flex-wrap:wrap!important;white-space:normal!important;row-gap:2px}.paper-table .anon-sub>a,.paper-table .anon-sub>span{overflow:visible!important;text-overflow:clip!important;white-space:nowrap}.paper-table .cell-anon .repo-name{white-space:normal!important;overflow-wrap:anywhere;overflow:visible!important;text-overflow:clip!important}.overview-page .ov-kpi-sub{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}.overview-page .ov-kpi-row{grid-template-columns:1fr 1fr!important}}.dashboard-page .dashboard-heading-actions{flex-direction:row!important;align-items:center!important;gap:10px!important}@media (max-width:767px){.admin-page .admin-nav{flex-wrap:nowrap!important;overflow-x:auto!important;margin-left:-16px;margin-right:-16px;padding:0 16px 4px}header.viewer-bar .vb-icon,header.viewer-bar .vb-support{box-shadow:inset 0 0 0 1px var(--border-color)!important;background:0 0!important}}@media (max-width:767px){.dashboard-page .dashboard-heading{flex-direction:column!important;align-items:stretch!important;gap:12px}.dashboard-page .dashboard-heading-actions{justify-content:space-between!important;width:100%}.row-edit{display:none!important}}@media (max-width:767px){.paper-table-dashboard .copy-url{background:0 0!important;box-shadow:inset 0 0 0 1px var(--border-color)!important}}@media (max-width:767px){.mobile-sub{display:flex!important;align-items:center;gap:6px;margin-top:3px!important}.mobile-sub>*+::before{content:"·";margin-right:6px;color:var(--ink-muted);font-weight:400}.mobile-sub>b::before{display:none}header.viewer-bar .vb-icon,header.viewer-bar .vb-support{box-shadow:none!important;background:0 0!important}.file-card-head .card-files-btn,.file-card-head .tb-copy-m,.file-card-head .tb-more-btn{box-shadow:none!important;background:0 0!important}.file-card-head .card-files-btn:active,.file-card-head .tb-copy-m:active,.file-card-head .tb-more-btn:active{background:var(--hover-bg-color)!important}.file-card-head{padding-top:6px!important;padding-bottom:6px!important}}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{box-shadow:none!important;border:0!important;padding:0 5px!important;font-weight:500!important}@media (min-width:1200px){.reading-layout{gap:40px!important}}.ace_search .ace_search_field:focus,.ace_search_field:focus{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent)!important;border-color:color-mix(in srgb,var(--accent) 70%,transparent)!important}.demo-terms label span,.paper-eyebrow,.paper-footer,.paper-footer a{color:var(--ink-soft)!important}.dark-mode .anonymize-page .btn-ink,.dark-mode .btn-hero,.dark-mode .btn-primary,.dark-mode .landing-continue,.dark-mode .page-head-row .btn-primary,.dark-mode .paper-page .btn-ink,.dark-mode .paper-page .btn-primary{background:#237a71!important;border-color:#237a71!important;color:#fff!important}.dark-mode .anonymize-page .btn-ink:hover,.dark-mode .btn-primary:hover,.dark-mode .paper-page .btn-ink:hover{background:#1e6b63!important;color:#fff!important;filter:none!important}.landing-continue,.landing-continue:disabled{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important;opacity:1!important;cursor:pointer}.errors-page .seg.seg-info{background:var(--ink-faint)!important;opacity:1!important}.errors-page .dot-info,.errors-page .sev-dot.sev-info{background:var(--ink-muted)!important}@media (max-width:767px){.admin-page .admin-nav,.admin-summary{-webkit-mask-image:linear-gradient(to right,#000 82%,transparent)!important;mask-image:linear-gradient(to right,#000 82%,transparent)!important;scroll-snap-type:x proximity}.admin-page .admin-nav a,.admin-summary>*{scroll-snap-align:start}.admin-page .admin-filters-toggle,.admin-page .dashboard-filters-toggle{width:auto!important}}.admin-filter-inline{display:inline-flex;align-items:center;gap:6px;margin-left:14px}.admin-filter-inline label{margin:0!important;font-size:12.5px;color:var(--ink-soft)}.admin-filter-row .form-control,.dashboard-page .dashboard-filter-row .form-control,.paper-page .search-wrap .form-control{border-color:var(--border-color)!important;height:36px!important}.admin-filter-row .form-control:focus,.dashboard-page .dashboard-filter-row .form-control:focus{border-color:var(--accent)!important}.dashboard-page .dashboard-filter-controls .btn,.dashboard-page .dashboard-filter-controls .dropdown-toggle{height:36px}.admin-page .cell-repos a,.paper-table [role=cell].num a{color:var(--color)!important;font-family:var(--font-sans)!important}.errors-page .col-count{font-weight:inherit!important;color:inherit!important}.errors-page .errors-row-main{min-height:52px!important;padding-top:8px!important;padding-bottom:8px!important}.connections-grid{display:grid!important;grid-template-columns:1fr 1fr!important;align-items:stretch}@media (max-width:767px){.connections-grid{grid-template-columns:1fr!important}}.admin-page .admin-filter-inline .form-control,.admin-page .admin-filter-row .form-control,.admin-page .search-wrap .form-control{height:36px!important;min-height:36px!important;border:1px solid var(--border-color)!important;font-size:13.5px!important;padding-top:0!important;padding-bottom:0!important}.admin-page .admin-filter-inline .form-control:focus,.admin-page .admin-filter-row .form-control:focus{border-color:var(--accent)!important}.admin-page select.form-control{height:36px!important;border:1px solid var(--border-color)!important}.admin-page .paper-table .anon-sub{gap:0!important;column-gap:0!important}.admin-page .paper-table .anon-sub>a{border-bottom:0!important;text-decoration:none}.tb-menu-note{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:13px;color:var(--ink-soft)}.tb-menu-note .ui-icon{width:16px;height:16px}.readme-toc a{color:var(--ink-soft)!important;font-size:13.5px!important}.readme-toc a.lvl-3{font-size:13px!important}.readme-toc a.is-active{color:var(--accent)!important;font-weight:500!important}.dark-mode .readme-toc a.is-active{color:#a8ddd6!important}.ace_search_form .ace_searchbtn{border-radius:0!important;margin:0!important}.ace_search_form .ace_searchbtn.prev{border-radius:var(--radius-control) 0 0 var(--radius-control)!important;margin-left:8px!important}.ace_search_form .ace_searchbtn.next{border-radius:0 var(--radius-control) var(--radius-control) 0!important;margin-left:-1px!important}.ace_search .ace_searchbtn.next,.ace_search .ace_searchbtn.prev{box-shadow:none!important}.ace_editor .ace_marker-layer .ace_selected-word,.ace_editor .ace_marker-layer .ace_selection{box-shadow:none!important;border:0!important}@media (max-width:767px){.file-card-head{padding-left:12px!important;padding-right:12px!important}.file-card-head .file-card-path{column-gap:8px!important}}.dark-mode .files .file.active>a{background:rgba(255,255,255,.07)!important}@media (min-width:1200px){.reading-layout{grid-template-columns:minmax(0,700px) 190px!important;gap:40px!important;padding:0 24px!important}}.ace-chrome .ace_string{color:#0a3069!important}.ace-nord-dark .ace_string,.dark-mode .ace_editor .ace_string{color:#a5c8ff!important}.ace_editor .ace_marker-layer .ace_redacted{background:color-mix(in srgb,var(--accent) 20%,transparent)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent)!important;border-radius:3px}.ace_search .ace_button{height:28px!important;min-width:30px!important;font-size:12px!important;color:var(--ink-soft)!important;display:inline-flex!important;align-items:center;justify-content:center}.ace_search .ace_button.checked{background:var(--accent-soft)!important;color:var(--accent)!important;box-shadow:inset 0 0 0 1px var(--accent)!important}.ace_search_counter{font-size:12.5px!important;color:var(--ink-soft)!important}.ace_searchbtn_close::before{font-size:18px!important;font-weight:300!important}.btn-toggle.is-on{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent)!important}.vb-snapshot{background:0 0!important;box-shadow:none!important;color:var(--ink-soft)!important;padding-left:4px!important;padding-right:4px!important}.dark-mode .files .file.active>a{background:rgba(255,255,255,.1)!important;color:#f2eee8!important}.paper-faq-title,.paper-hero h1,.paper-section-head h2{text-wrap:balance}@media (min-width:992px){.demo-panes{grid-template-columns:1fr 1fr!important;gap:20px!important}}.paper-faq details a:not(.btn),.paper-faq-a a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent)}@media (max-width:767px){.file-card.is-code .ace_gutter-cell{padding-left:8px!important;padding-right:8px!important}}.auto-refresh-label{font-family:var(--font-sans)!important}.ov-spark-fill{opacity:1!important;background:color-mix(in srgb,var(--accent) 70%,transparent)!important}.connections-grid .connection-link:not(.connection-danger){display:inline-flex;align-items:center;height:34px;padding:0 12px;border:1px solid var(--border-color);border-radius:var(--radius-control);color:var(--color)!important;text-decoration:none!important}.reading-layout .file-content.markdown-body,.reading-layout .markdown-body{padding-left:0!important;padding-right:0!important}.explorer-content .file-card .reading-layout .file-content.markdown-body{padding-left:0!important;padding-right:0!important}.admin-page h1.paper-page-title{margin:0!important;line-height:44px!important;min-height:44px}.admin-page .errors-header,.admin-page .ov-header,.admin-page .q-header{min-height:44px;margin:0 0 12px!important;display:flex;align-items:center;justify-content:space-between}.admin-page>h1.paper-page-title{margin-bottom:12px!important}.admin-page:has(.admin-users-row) .admin-summary .summary-pill.active{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.admin-page:has(.admin-users-row) .admin-summary .summary-pill.active .count{color:rgba(255,255,255,.8)!important}.admin-page:has(.admin-users-row) .admin-summary .summary-pill.active::before{display:none!important}.admin-page input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.ov-health{background:var(--paper-card)!important;box-shadow:inset 3px 0 0 var(--status-error,#b42318),inset 0 0 0 1px var(--border-color)!important}.dark-mode .ov-health{background:var(--paper-card)!important;box-shadow:inset 3px 0 0 #f08a82,inset 0 0 0 1px var(--border-color)!important}.dashboard-quota .quota-summary-ring{display:none!important}.errors-page .errors-row-main{min-height:44px!important}.errors-page .when-abs{display:none!important}@media (max-width:767px){.admin-summary{flex-wrap:wrap!important;overflow:visible!important;-webkit-mask-image:none!important;mask-image:none!important;margin-left:0!important;margin-right:0!important;padding:0!important}.admin-summary .summary-pill{height:30px!important;padding:0 10px!important;font-size:13px!important}.admin-page .admin-nav{flex-wrap:wrap!important;overflow:visible!important;-webkit-mask-image:none!important;mask-image:none!important;margin-left:0!important;margin-right:0!important;padding:0!important;gap:2px!important}.admin-page .admin-nav a{min-height:34px!important;padding:0 10px!important;font-size:13.5px!important}.admin-page .admin-nav a .ui-icon{display:none!important}}.fm-toggles span{display:inline-flex;align-items:center;gap:6px}.fm-toggles span::before{content:"";width:12px;height:12px;flex:none}.fm-toggles .is-on::before{background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") center/contain no-repeat}.faq-toc a,.paper-faq nav a,.paper-faq-toc a{text-decoration:none!important}@media (max-width:991px){.navbar .navbar-toggler{border-color:transparent!important;background:0 0!important;box-shadow:none!important}}.ace-chrome .ace_gutter-cell{color:#8a847a!important}.dark-mode .ace_editor .ace_gutter-cell{color:#7a746b!important}.ace-chrome .ace_keyword,.ace-chrome .ace_keyword.ace_operator.ace_new,.ace-chrome .ace_storage{color:#7a3e6e!important}.ace-chrome .ace_string{color:#6b5a1e!important}.ace-chrome .ace_entity.ace_name.ace_function,.ace-chrome .ace_support.ace_function{color:#2b2824!important;font-weight:500}.ace-chrome .ace_constant,.ace-chrome .ace_constant.ace_language,.ace-chrome .ace_constant.ace_numeric{color:#8a4b12!important}.ace-chrome .ace_comment{color:#8a847a!important;font-style:italic}.ace-chrome .ace_identifier,.ace-chrome .ace_variable{color:#2b2824!important}.ace-chrome .ace_keyword.ace_operator,.ace-chrome .ace_paren,.ace-chrome .ace_punctuation{color:#6e6860!important}.ace-chrome .ace_entity.ace_name.ace_tag,.ace-chrome .ace_support.ace_class,.ace-chrome .ace_support.ace_type{color:#7a3e6e!important}.ace-chrome .ace_entity.ace_other.ace_attribute-name{color:#8a4b12!important}.dark-mode .ace_editor .ace_entity.ace_name.ace_tag,.dark-mode .ace_editor .ace_keyword,.dark-mode .ace_editor .ace_storage,.dark-mode .ace_editor .ace_support.ace_type{color:#d7a6cb!important}.dark-mode .ace_editor .ace_string{color:#d9c08a!important}.dark-mode .ace_editor .ace_entity.ace_name.ace_function,.dark-mode .ace_editor .ace_identifier,.dark-mode .ace_editor .ace_support.ace_function,.dark-mode .ace_editor .ace_variable{color:#ece7df!important}.dark-mode .ace_editor .ace_constant,.dark-mode .ace_editor .ace_constant.ace_numeric,.dark-mode .ace_editor .ace_entity.ace_other.ace_attribute-name{color:#e0b070!important}.dark-mode .ace_editor .ace_comment{color:#8a847a!important;font-style:italic}.dark-mode .ace_editor .ace_keyword.ace_operator,.dark-mode .ace_editor .ace_paren,.dark-mode .ace_editor .ace_punctuation{color:#a39d92!important}.ace_editor .ace_marker-layer .ace_redacted{background:rgba(31,106,100,.22)!important;box-shadow:inset 0 0 0 1px rgba(31,106,100,.55)!important;border-radius:3px;mix-blend-mode:multiply}.dark-mode .ace_editor .ace_marker-layer .ace_redacted{background:rgba(124,199,190,.26)!important;box-shadow:inset 0 0 0 1px rgba(124,199,190,.6)!important;mix-blend-mode:screen}.ace-chrome .ace_gutter-cell{color:#77716a!important}.dark-mode .ace_editor .ace_gutter-cell{color:#8a847a!important}@media (min-width:1200px){.reading-layout{justify-content:center!important}}.fm-toggles span:not(.is-on)::before{display:none!important}.demo-panes .pane-header{display:flex;gap:10px;min-width:0}.demo-panes .pane-url{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:767px){.mobile-sub{font-size:12.5px!important;line-height:1.4}}.ov-live{font-size:12.5px;color:var(--ink-soft)}.admin-summary .summary-pill:not(.active) .count{text-decoration:none!important}.paper-table:not(.paper-table-dashboard) .paper-table-head,.paper-table:not(.paper-table-dashboard) .paper-table-row{column-gap:24px!important}.connection-label{font-size:12.5px;color:var(--ink-soft);margin-right:4px}.paper-table-dashboard .copy-url:hover{background:var(--hover-bg-color)!important;box-shadow:inset 0 0 0 1px var(--border-color)!important}.dashboard-page .dashboard-count button,.dashboard-page .show-hidden{font-size:13px!important}@media (max-width:767px){.paper-table.paper-table-dashboard .paper-table-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"name more" "meta meta" "link link"!important;row-gap:8px!important}.paper-table.paper-table-dashboard .paper-table-row>.cell-anon{grid-area:name!important;grid-column:auto!important;min-width:0}.paper-table.paper-table-dashboard .paper-table-row>.dashboard-row-meta{grid-area:meta!important;grid-column:auto!important}.paper-table.paper-table-dashboard .paper-table-row>.cell-actions{display:contents!important}.paper-table-dashboard .cell-actions>.copy-url{grid-area:link;width:100%!important;height:36px!important;padding:0 12px!important;justify-content:space-between!important;background:var(--hover-bg-color)!important;box-shadow:none!important}.paper-table-dashboard .cell-actions>.copy-url .copy-url-text{display:inline!important;min-width:0;overflow:hidden;text-overflow:ellipsis}.paper-table-dashboard .cell-actions>.dropdown{grid-area:more;align-self:start}.paper-table-dashboard .cell-actions>.project-details-button,.paper-table-dashboard .cell-actions>.row-edit{display:none!important}}@media (max-width:767px){.paper-table.paper-table-dashboard .paper-table-row{padding-right:12px!important}}.vb-support{background:0 0!important;box-shadow:none!important;border:0!important}.vb-support:hover{background:var(--hover-bg-color)!important}.vb-snapshot{margin-right:8px!important}.paper-eyebrow,.paper-stat small,.paper-stat-sub,.paper-stats .sub{color:#5e5950!important}.dark-mode .paper-eyebrow,.dark-mode .paper-stat-sub{color:#b5aea3!important}.paper-qa,.paper-section-head{margin-top:80px!important}.demo{margin-bottom:0!important}.ace_editor .ace_marker-layer .ace_selected-word{background:rgba(242,204,96,.35)!important}.ace_editor .ace_marker-layer .ace_selection{background:rgba(232,184,58,.55)!important}.paper-faq details>:not(summary),.paper-faq-a{max-width:720px!important}.q-state-chip.q-state-active::before{background:var(--color)!important}.q-state-chip.q-state-delayed::before{background:var(--ink-muted)!important}.repo-access-note>span:last-child{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius-control);background:color-mix(in srgb,#b7791f 8%,transparent);box-shadow:inset 3px 0 0 #b7791f;color:var(--color)!important}.repo-access-note>span:last-child .ui-icon{color:#9a6416;flex:none;margin-top:2px}.dark-mode .repo-access-note>span:last-child{background:rgba(224,176,112,.1);box-shadow:inset 3px 0 0 #e0b070}.repo-access-note>span:has(.ui-icon){background:color-mix(in srgb,#b7791f 8%,transparent)!important;box-shadow:inset 3px 0 0 #b7791f!important;color:var(--color)!important}.repo-access-note>span:has(.ui-icon) .ui-icon{color:#9a6416!important}.dark-mode .repo-access-note>span:has(.ui-icon){background:rgba(224,176,112,.1)!important;box-shadow:inset 3px 0 0 #e0b070!important}.dark-mode .repo-access-note>span:has(.ui-icon) .ui-icon{color:#e0b070!important}@media (min-width:1200px){.reading-layout{grid-template-columns:minmax(0,680px) 190px!important;padding:0 40px!important}}.ace-chrome .ace_entity.ace_name.ace_tag,.ace-chrome .ace_keyword,.ace-chrome .ace_storage,.ace-chrome .ace_support.ace_type{color:#93306a!important}.ace-chrome .ace_string{color:#7a5300!important}.ace-chrome .ace_constant,.ace-chrome .ace_constant.ace_numeric{color:#a14a0f!important}.dark-mode .ace_editor .ace_string{color:#cdb98e!important}.ace_editor .ace_marker-layer .ace_redacted{background:rgba(31,106,100,.28)!important;box-shadow:inset 0 0 0 1px rgba(31,106,100,.65)!important}.ace_search{background:var(--paper-card)!important;box-shadow:inset 0 1px 0 var(--border-color),inset 0 -1px 0 var(--border-color)!important}.ace_search .ace_search_field{height:32px!important;border-radius:var(--radius-control)!important}.ace_search .ace_searchbtn{height:32px!important}.paper-stats-dot{background:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}.paper-stats-meta-right{color:var(--ink-soft)!important;font-weight:400!important}.paper-frame{box-shadow:0 0 0 1px var(--border-color),0 12px 32px rgba(40,30,20,.08)!important;border:0!important}.dark-mode .paper-frame{box-shadow:0 0 0 1px #34302b,0 12px 32px rgba(0,0,0,.4)!important}.paper-faq details>summary,.paper-faq summary{font-weight:600!important}@media (max-width:767px){.file-card-head .file-card-path{column-gap:12px!important}.file-card.is-code.no-wrap .file-card-body::after{width:72px!important;background:linear-gradient(to right,rgba(255,255,255,0),var(--paper-card) 65%)!important}}.dashboard-page .hidden-toggle{font-size:13px!important;color:var(--color)!important}.paper-table-dashboard .btn-icon-dots{width:32px!important;height:32px!important}.access-q{display:block;font-size:13px;color:var(--ink-soft);margin:4px 0 6px}.repo-access-note{max-width:none!important;width:100%}.repo-access-note>span:has(.ui-icon){width:100%}@media (max-width:767px){.anonymize-page .repo-access-switch,.anonymize-page [role=group][aria-label*=onnection]{width:100%!important;display:flex!important}.anonymize-page .repo-access-switch button{flex:1 1 0}}.admin-empty,.paper-table-empty{border:1px solid var(--border-color)!important;border-radius:var(--radius-surface,12px)!important;background:var(--paper-card)!important;padding:40px 24px!important;text-align:center}.dark-mode .paper-table-head{background:#26221e!important}.dark-mode .paper-table-row{background:#1e1b18}.paper-table:has(.paper-table-empty),:has(>.paper-table-empty:only-child){border-top:0!important;border-bottom:0!important;box-shadow:none!important}.ace_editor .ace_text-layer .ace_redacted{color:var(--accent)!important;background:var(--accent-soft)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent);border-radius:3px;font-weight:500}.dark-mode .ace_editor .ace_text-layer .ace_redacted{color:#a8ddd6!important;background:rgba(124,199,190,.16)!important;box-shadow:inset 0 0 0 1px rgba(124,199,190,.35)}.ace_editor .ace_marker-layer .ace_redacted{display:none!important}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{font-size:.82em!important;padding:0 .2em!important;background:color-mix(in srgb,var(--accent) 9%,transparent)!important;box-shadow:none!important;border:0!important;line-height:1.1!important;vertical-align:baseline!important;font-weight:500!important}.vb-snapshot{color:var(--color)!important;opacity:.78}.ace_search{box-shadow:inset 0 -1px 0 var(--border-color)!important}.btn-find.is-on,.btn-toggle.is-on{color:var(--accent)!important;background:var(--accent-soft)!important}.readme-toc a{text-indent:0;padding-left:13px!important}.readme-toc a.lvl-3{padding-left:25px!important}@media (max-width:767px){.anonymize-page .repo-access,.repo-access{flex-wrap:wrap;width:100%}.repo-access-switch{display:flex!important;width:100%!important}.repo-access-switch button{flex:1 1 0!important;white-space:nowrap!important;justify-content:center}}.q-card.selected{box-shadow:none!important;border-color:color-mix(in srgb,var(--accent) 60%,transparent)!important}.dark-mode .paper-table-head{background:#2e2a25!important}.dark-mode .paper-table-row{background:#1c1a17!important}.ov-chart-legend{font-family:var(--font-sans)!important;font-size:12px!important;color:var(--ink-soft)!important}.readme-toc a.lvl-2{font-weight:500!important;color:var(--color)!important}.readme-toc a.lvl-3{font-size:12.5px!important;color:var(--ink-soft)!important;font-weight:400!important}.readme-toc a.is-active{color:var(--accent)!important}.readme-toc a.lvl-2+a.lvl-2,.readme-toc a.lvl-3+a.lvl-2{margin-top:4px}.dark-mode .ace_editor .ace_text-layer .ace_redacted,.dark-mode .redact-chip{color:#9fe0d7!important;background:rgba(124,199,190,.2)!important;box-shadow:inset 0 0 0 1px rgba(124,199,190,.38)!important}.file-card-head .btn.btn-toggle.is-on,.file-card-head .btn.btn-toggle[aria-pressed=true]{color:var(--accent)!important;background:var(--accent-soft)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent)!important}.dark-mode .file-card-head .btn.btn-toggle.is-on{color:#a8ddd6!important;background:rgba(124,199,190,.14)!important}@media (max-width:767px){.file-card-head .file-card-path .card-files-btn{align-self:start!important}}@media (max-width:767px){.paper-hero-shot{max-height:300px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}}.dark-mode .hero-mock-doc,.dark-mode .paper-frame{background:#24211d!important}.paper-stats-meta-right{color:#5e5950!important}.dark-mode .paper-stats-meta-right{color:#b5aea3!important}.errors-page .status-pill.status-neutral{background:var(--hover-bg-color)!important;color:var(--ink-soft)!important;border-color:var(--border-color)!important}.connections-grid .btn,.connections-grid .connection-link:not(.connection-danger){height:36px!important;min-height:36px!important;padding-top:0!important;padding-bottom:0!important;display:inline-flex!important;align-items:center}.claim-page .form-control,.claim-page input{border:1px solid var(--border-color)!important}@media (max-width:767px){.overview-page .ov-kpi-sub{white-space:nowrap!important;font-size:12px!important;overflow:visible!important}.overview-page .ov-kpi-row>:last-child:nth-child(odd){grid-column:1/-1}.admin-summary .summary-pill{height:28px!important}.admin-summary .summary-total{flex-basis:100%}.admin-page .paper-table:not(.paper-table-dashboard) .paper-table-row{position:relative;padding-right:44px!important}.admin-page .paper-table:not(.paper-table-dashboard) .paper-table-row>:last-child{position:absolute!important;top:10px;right:4px}.admin-page .paper-table .anon-sub>span{white-space:nowrap}}.file-card-head .btn.btn-toggle.is-on,.file-card-head .btn.btn-toggle[aria-pressed=true]{background:0 0!important;box-shadow:none!important;color:var(--accent)!important}.file-card-head .btn.btn-toggle.is-on:hover{background:var(--hover-bg-color)!important}.dark-mode .file-card-head .btn.btn-toggle.is-on{background:0 0!important;color:#a8ddd6!important}.ace-chrome .ace_string{color:#3d5a73!important}.dark-mode .ace_editor .ace_string{color:#afc4d6!important}.ace-chrome .ace_gutter-cell{color:#6b655d!important}.readme-toc a.lvl-2{color:var(--ink-soft)!important;font-weight:500!important}.readme-toc a.lvl-3{color:var(--ink-soft)!important;opacity:.9}.readme-toc a.is-active{color:var(--accent)!important}.readme-toc-head{font-size:12.5px!important}.vb-snapshot{opacity:1!important;color:var(--ink-soft)!important}@media (max-width:767px){.viewer-bar .vb-signin{height:32px!important}}.paper-footer-meta{font-size:15px!important;color:var(--ink-soft)!important}.dark-mode .files .file.active>a{background:rgba(255,255,255,.07)!important}@media (min-width:992px){.anonymize-landing{justify-content:flex-start!important;align-items:flex-start!important}.anonymize-landing-inner{margin-left:max(4px,calc((100vw - 1048px)/ 2 - 20px))!important;margin-right:auto!important;max-width:640px!important}}.paper-settings-body>:not(aside){max-width:none!important}.paper-settings-body .paper-card,.paper-settings-body section{max-width:none!important}.dark-mode .paper-table-row{background:0 0!important}.dark-mode .paper-table-head{background:#26231f!important}@media (max-width:767px){.overview-page .ov-kpi-sub{white-space:normal!important;font-size:12px!important;padding-right:4px}.dashboard-count{position:static!important;width:auto!important;height:auto!important;margin:0 0 0 auto!important;overflow:visible!important;clip:auto!important;font-size:12.5px!important}}.errors-page input[type=search]{font-family:var(--font-sans)!important}.paper-settings-body .form-text,.paper-settings-body .paper-field-help,.paper-settings-body small{max-width:none!important}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip{font-size:.7em!important;vertical-align:.12em!important}.ace_search{border-bottom:1px solid var(--border-color)!important;box-shadow:none!important;border-top:0!important}.ace_search .ace_button,.ace_search .ace_searchbtn{height:32px!important}.file-card-head .btn.btn-toggle.is-on,.file-card-head .btn.btn-toggle[aria-pressed=true]{background:var(--accent-soft)!important;color:var(--accent)!important;box-shadow:none!important}.dark-mode .file-card-head .btn.btn-toggle.is-on{background:rgba(124,199,190,.14)!important}@media (max-width:767px){.file-card-head .card-files-btn{width:32px!important;height:32px!important}.file-card-head .file-card-path{column-gap:8px!important}}.dark-mode .leftCol{background:#1c1a17!important}.dark-mode .explorer-content,.dark-mode .file-card{background:#141311!important}.nav-support-inline{color:var(--color)!important;font-weight:500!important}@media (min-width:992px){.anonymize-landing{padding-top:24px!important}.anonymize-landing-inner{padding-top:0!important;margin-top:0!important}}.anonymize-page .access-q+.btn-outline-ink{height:30px!important;padding:0 10px!important;font-size:13px!important}.admin-summary .summary-pill:not(.active){color:var(--ink-soft)!important}.volume-legend>span{display:inline-flex;align-items:center;gap:5px;margin-left:12px}.dark-mode .leftCol{background:#221f1b!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{box-shadow:inset -1px 0 0 var(--border-color),inset -10px 0 10px -10px rgba(0,0,0,.18)!important}}.readme-toc a.is-active{font-weight:600!important}.paper-stats-meta-right{color:var(--ink-soft)!important;font-weight:500!important;letter-spacing:inherit}.paper-faq details a:not(.btn),.paper-faq-a a,.paper-section a{text-decoration-color:color-mix(in srgb,currentColor 35%,transparent)!important;text-decoration-thickness:1px!important}.volume-axis{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-soft);margin-top:6px}.errors-page .seg.seg-info{background:color-mix(in srgb,var(--ink-muted) 55%,transparent)!important}.paper-crumbs a{color:var(--ink-soft)!important}.paper-crumbs .here{color:var(--color)!important}.paper-table .mobile-meta-icon,.paper-table [role=cell]>.ui-icon{opacity:.45}@media (min-width:768px){.paper-table-dashboard .cell-expires{padding-left:24px!important}}.dark-mode .paper-table-dashboard .paper-table-head,.dark-mode .paper-table-head{background:0 0!important;box-shadow:inset 0 -1px 0 var(--border-color)!important}@media (max-width:767px){.paper-table-dashboard .cell-actions>.copy-url{max-width:none!important;justify-self:stretch}.paper-table.paper-table-dashboard .paper-table-row{padding-right:16px!important}.dashboard-filters-toggle{border:1px solid var(--border-color)!important;border-radius:var(--radius-control)!important;height:44px;padding:0 12px!important}.overview-page .ov-kpi-card{padding-left:14px!important;padding-right:14px!important}.overview-page .ov-kpi-sub{white-space:nowrap!important;font-size:11.5px!important}.admin-filter-row kbd,.search-wrap .kbd,.search-wrap kbd{display:none!important}}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{background:0 0!important;padding:0!important;font-size:.78em!important;color:var(--accent)!important;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px;text-decoration-color:color-mix(in srgb,var(--accent) 30%,transparent)}.dark-mode .markdown-body h1 .redact-chip,.dark-mode .markdown-body h2 .redact-chip{color:#9fe0d7!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:56px!important;background:linear-gradient(to right,rgba(255,255,255,0),var(--paper-card) 55%)!important}}.readme-toc a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (min-width:768px){.paper-table-dashboard .cell-expires,.paper-table-dashboard .paper-table-head>:nth-child(4){text-align:left!important;justify-content:flex-start!important;padding-left:24px!important}}.anonymize-page #sourceUrl-landing,.anonymize-page .form-control-lg{border:1px solid var(--border-color)!important}.anonymize-page .form-control-lg:focus{border-color:var(--accent)!important}.repo-access-note>span:has(.ui-icon){background:var(--accent-soft)!important;box-shadow:inset 3px 0 0 var(--accent)!important;color:var(--color)!important;font-size:13.5px}.repo-access-note>span:has(.ui-icon) .ui-icon{color:var(--accent)!important}.dark-mode .repo-access-note>span:has(.ui-icon){background:rgba(124,199,190,.1)!important;box-shadow:inset 3px 0 0 #7cc7be!important}.dark-mode .repo-access-note>span:has(.ui-icon) .ui-icon{color:#7cc7be!important}.readme-toc a{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::before{content:"Scroll \2192";position:absolute;right:10px;bottom:14px;z-index:9;font:500 12px/1 var(--font-sans);color:var(--ink-soft);background:var(--paper-card);box-shadow:0 0 0 1px var(--border-color),0 2px 6px rgba(0,0,0,.06);border-radius:999px;padding:6px 10px;pointer-events:none}}.ace-chrome .ace_string{color:#2d5f86!important}.ace-chrome .ace_keyword,.ace-chrome .ace_storage{color:#9a2b6b!important}.dark-mode .ace_editor .ace_string{color:#9cc3e6!important}.dark-mode .ace_editor .ace_keyword,.dark-mode .ace_editor .ace_storage{color:#e3a6d2!important}.reading-layout .markdown-body h1{font-size:34px!important;letter-spacing:-.015em}.errors-page .btn-group>.btn,.errors-page .btn-icon,.errors-page .form-control,.errors-page select{height:36px!important;min-height:36px!important}.errors-page .col-when .when-rel{font-size:13.5px!important}.q-danger-group{display:inline-flex;gap:6px;margin-left:auto;padding-left:12px;border-left:1px solid var(--border-color)}.q-stats-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.repo-access-note>span:has(.ui-icon){background:color-mix(in srgb,#b7791f 8%,transparent)!important;box-shadow:inset 3px 0 0 #b7791f!important}.repo-access-note>span:has(.ui-icon) .ui-icon{color:#9a6416!important}.dark-mode .repo-access-note>span:has(.ui-icon){background:rgba(224,176,112,.1)!important;box-shadow:inset 3px 0 0 #e0b070!important}.dark-mode .repo-access-note>span:has(.ui-icon) .ui-icon{color:#e0b070!important}@media (max-width:767px){.admin-page .paper-table [role=cell]:has(>input[type=checkbox]),.admin-page .paper-table input[type=checkbox],.admin-page .paper-table-head [role=columnheader]:has(>input[type=checkbox]){display:none!important}.admin-page .admin-filters-toggle,.admin-page .dashboard-filters-toggle{width:auto!important}}.q-danger-group{border-left:0!important;padding-left:0!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::before{animation:scrollHintOut .4s ease 2.6s forwards}}@keyframes scrollHintOut{to{opacity:0;visibility:hidden}}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{text-decoration:none!important;background:color-mix(in srgb,var(--accent) 8%,transparent)!important;padding:0 .15em!important;border-radius:4px}.readme-toc a.lvl-3{padding-left:29px!important}.ace_search .ace_button{color:var(--color)!important;opacity:.8}.ace_search .ace_button.checked{opacity:1}.dark-mode .files .file>a,.dark-mode .files .folder>a{color:#d8d2c8!important}.ov-live{display:inline-flex;align-items:center;gap:6px}.ov-live-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.anon-sub .meta-sep{display:inline-flex;align-items:center;white-space:nowrap}@media (max-width:767px){.anon-sub{column-gap:0!important}}.connection-status-legacy{color:var(--ink-soft)!important}.connection-status-legacy::before{background:var(--ink-muted)!important}.q-detail{align-items:start!important}.q-chart-wrap canvas{max-height:200px}.admin-page .paper-table .cell-anon .anon-text:has(.meta-sep){overflow:hidden}.admin-page .paper-table .anon-sub:has(.meta-sep){display:flex!important;flex-wrap:wrap!important;margin-left:-14px!important;gap:0!important}.admin-page .paper-table .anon-sub:has(.meta-sep)>*{white-space:nowrap}.admin-page .paper-table .anon-sub:has(.meta-sep)>::before{content:"\00b7";display:inline-block;width:14px;text-align:center;color:var(--ink-muted)}.ace-chrome .ace_gutter-cell,.dark-mode .ace_editor .ace_gutter-cell{font-size:12px!important}.q-stats-actions{display:grid!important;grid-template-columns:auto auto 1fr;gap:8px;align-items:center}.q-danger-group{grid-column:1/-1;justify-self:start;margin:4px 0 0!important;padding:10px 0 0!important;border-top:1px solid var(--border-color)!important;width:100%;display:flex!important;gap:8px}@media (max-width:767px){.overview-page .ov-header{flex-wrap:nowrap!important;align-items:center!important}.ov-live{font-size:12px}.ov-live .ov-live-text-extra{display:none}.overview-page .ov-daily-card,.overview-page .ov-kpi-card{padding-left:14px!important;padding-right:14px!important}}.admin-page input[type=checkbox]{width:14px!important;height:14px!important}.demo-input-wrap{position:relative}.demo-input-wrap .demo-backdrop{position:absolute;inset:0;margin:0;overflow:hidden;color:var(--color);pointer-events:none;overflow-wrap:break-word}.demo-input-wrap .demo-input{position:relative;color:transparent!important;caret-color:var(--color);background:0 0!important;overflow-wrap:break-word}.demo-input-wrap .demo-input::selection{color:var(--color);background:color-mix(in srgb,var(--accent) 25%,transparent)}.demo-match{background:0 0;color:inherit;padding:0;border-radius:2px;box-shadow:inset 0 -2px 0 color-mix(in srgb,var(--accent) 55%,transparent);background-color:color-mix(in srgb,var(--accent) 10%,transparent)}.demo-output .redact-chip{font-size:12.5px!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::before{display:none!important}.file-card.is-code.no-wrap .file-card-body::after{width:36px!important;background:linear-gradient(to right,rgba(0,0,0,0),rgba(60,45,30,.1))!important;box-shadow:inset -1px 0 0 rgba(60,45,30,.18)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(0,0,0,0),rgba(0,0,0,.45))!important;box-shadow:inset -1px 0 0 rgba(255,255,255,.12)!important}}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:44px!important;background:linear-gradient(to right,rgba(255,255,255,0),var(--paper-card) 70%)!important;box-shadow:inset -8px 0 10px -6px rgba(40,30,20,.28),inset -1px 0 0 rgba(40,30,20,.16)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(0,0,0,0),var(--canvas-bg-color) 70%)!important;box-shadow:inset -8px 0 10px -6px rgba(0,0,0,.6),inset -1px 0 0 rgba(255,255,255,.1)!important}}.q-chart-wrap{position:relative}.q-chart-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--paper-card);border-bottom:1px solid var(--border-color);text-align:center}.q-chart-empty strong{font-size:14px;font-weight:500;color:var(--color)}.q-chart-empty span{font-size:12.5px;color:var(--ink-soft)}.q-danger-group .btn{margin-left:0!important}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{background:0 0!important;padding:0!important;border-radius:0!important}.paper-settings-body .form-control,.paper-settings-body input[type=date],.paper-settings-body input[type=text],.paper-settings-body input[type=url],.paper-settings-body textarea{border:1px solid var(--border-color)!important;border-radius:var(--radius-control)!important}.admin-page .paper-table .cell-views .ui-icon{display:none!important}.admin-page:has(.admin-users-row) .paper-table-head,.admin-page:has(.admin-users-row) .paper-table-row{column-gap:40px!important}@media (max-width:767px){.overview-page .ov-header{justify-content:space-between!important}.ov-live{margin-left:0!important}}.dark-mode .paper-table-dashboard .paper-table-row{background:0 0!important}.mono-hash{font-family:var(--font-mono)!important;font-size:11.5px}.nav-heart-m{display:none}@media (max-width:991px){.nav-heart-m{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin-left:auto;color:#c25b5e}.nav-heart-m .ui-icon{width:18px;height:18px;fill:currentColor}.nav-heart-m+.nav-signin-m{margin-left:4px!important}}.file-card:has(.ace_search:not([style*=none])) .btn-find{color:var(--accent)!important;background:var(--accent-soft)!important}.paper-link-arrow{color:var(--color)!important;text-decoration-color:color-mix(in srgb,var(--accent) 55%,transparent)!important}.paper-faq details p,.paper-faq details>:not(summary),.paper-faq-a{max-width:none!important}.paper-stat-value{font-family:var(--font-display,var(--font-serif))!important;font-weight:400!important;letter-spacing:-.01em}@media (max-width:767px){.ov-live-extra{display:none}.paper-table-dashboard .cell-views.num::after{content:" views";color:var(--ink-soft)}.paper-table-dashboard .cell-expires>span:not(.expires-never):not(.expires-past)::before{content:"Expires ";color:var(--ink-soft)}.admin-page .admin-filters-toggle{width:auto!important;height:36px!important;padding:0 12px!important}}.dashboard-quota summary{border:0!important;box-shadow:none!important;background:0 0!important;padding-left:0!important}.q-card.selected{background:var(--accent-soft)!important}.dark-mode .q-card.selected{background:rgba(124,199,190,.08)!important}.dark-mode .ov-meter .fill.critical,.dark-mode .ov-meter-fill.critical{background:#f08a82!important}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{font-family:inherit!important;font-weight:inherit!important;font-size:.9em!important;background:var(--accent-soft)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent)!important;padding:0 .25em!important;border-radius:6px!important;color:var(--accent)!important;text-decoration:none!important}.dark-mode .markdown-body h1 .redact-chip,.dark-mode .markdown-body h2 .redact-chip,.dark-mode .markdown-body h3 .redact-chip{background:rgba(124,199,190,.16)!important;color:#9fe0d7!important}.file-card-head .btn.btn-toggle.is-on,.file-card-head .btn.btn-toggle[aria-pressed=true],.file-card:has(.ace_search:not([style*=none])) .btn-find{background:0 0!important;color:var(--accent)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 50%,transparent)!important}.dark-mode .file-card-head .btn.btn-toggle.is-on,.dark-mode .file-card:has(.ace_search:not([style*=none])) .btn-find{background:0 0!important;color:#a8ddd6!important;box-shadow:inset 0 0 0 1px rgba(124,199,190,.5)!important}@media (min-width:768px){.file-card-head{padding-left:46px!important}}.breadcrumb-root{display:none!important}.breadcrumb-root+.breadcrumb-item::before{display:none!important}.ace_editor .ace_marker-layer .ace_selection{background:rgba(232,170,40,.65)!important;box-shadow:0 0 0 1px rgba(160,100,10,.6)!important}.ace_search_counter{color:var(--color)!important;opacity:.75}.dark-mode .files .file.active>a{background:rgba(255,255,255,.12)!important}.dark-mode .leftCol{box-shadow:inset -1px 0 0 rgba(255,255,255,.08)!important}.hero-mock-doc-bar span,.paper-stat-delta,.paper-stat-sub,.paper-stats .sub{color:#5e5950!important}.dark-mode .paper-stat-delta,.dark-mode .paper-stat-sub{color:#b5aea3!important}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{font-size:.72em!important;font-weight:600!important;vertical-align:.1em;padding:.05em .3em!important}.is-unsynced{color:var(--ink-muted)!important;font-size:12.5px;font-family:var(--font-sans)!important}.q-dot.q-dot-idle{background:var(--ink-muted)!important}.dark-mode .paper-table,.dark-mode .paper-table-dashboard{background:0 0!important}.dark-mode .paper-table .paper-table-head{background:#24211d!important}.dark-mode .paper-table .paper-table-row{background:#141311!important}@media (min-width:768px){.file-card.is-code .file-card-head{padding-left:16px!important}.readme-toc{margin-left:16px}.reading-layout{grid-template-columns:minmax(0,660px) 190px!important;gap:56px!important}}.dark-mode .leftCol{box-shadow:none!important;border-right:1px solid var(--border-color)!important}.dark-mode .leftCol-resizer,.dark-mode .sidebar-resizer{background:0 0!important}.markdown-body h1 .redact-chip,.markdown-body h2 .redact-chip,.markdown-body h3 .redact-chip{box-shadow:none!important}.files .file.active>a::before{left:4px!important;top:6px!important;bottom:6px!important;width:3px!important;border-radius:2px!important}.hero-mock-row.is-active{box-shadow:inset 3px 0 0 var(--accent)!important;border-radius:6px}.fm-label,.paper-eyebrow,.paper-stats-meta-left,.paper-stats-meta-right{color:#57524a!important}.dark-mode .paper-eyebrow,.dark-mode .paper-stats-meta-left,.dark-mode .paper-stats-meta-right{color:#bdb6ab!important}.demo-match{box-shadow:inset 0 -1px 0 color-mix(in srgb,var(--accent) 50%,transparent)!important}.redact-glue{white-space:nowrap}@media (min-width:768px){.file-card-head,.file-card.is-code .file-card-head{padding-left:20px!important}}.dark-mode .files .file.active>a{background:rgba(255,255,255,.08)!important}.files .file.active>a{position:relative}.files .file.active>a::before{left:0!important;top:4px!important;bottom:4px!important;width:3px!important;border-radius:0 2px 2px 0!important}.admin-page .paper-table [role=cell]>svg.ui-icon[aria-hidden],.paper-table .cell-expires .mobile-meta-icon{display:none!important}@media (max-width:767px){.admin-page .paper-table .cell-views.num::after{content:" views";color:var(--ink-soft)}}.dark-mode .paper-table .paper-table-row{background:#1e1b18!important}.dark-mode .paper-table .paper-table-head{background:#26231f!important}.paper-page input.form-control,.paper-page input[type=date],.paper-page input[type=email],.paper-page input[type=text],.paper-page input[type=url],.paper-page select.form-control,.paper-page textarea,.paper-page textarea.form-control{border:1px solid var(--border-color)!important;border-radius:var(--radius-control)!important}.paper-page input:focus,.paper-page select:focus,.paper-page textarea:focus{border-color:var(--accent)!important}.q-detail{align-items:stretch!important}.q-throughput{display:flex;flex-direction:column}.q-throughput .q-chart-wrap{flex:1;min-height:180px}.admin-page .search-wrap{flex:0 1 420px!important;max-width:420px!important}@media (max-width:767px){.overview-page .ov-header{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;justify-content:space-between!important;align-items:center!important}.overview-page .ov-header .ov-live{margin:0 0 0 auto!important;align-self:center}}.hero-mock-count{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent)!important;font-weight:600;font-size:11.5px}.dark-mode .hero-mock-count{background:rgba(124,199,190,.16);color:#a8ddd6!important}.vb-support{color:var(--ink-soft)!important;font-weight:400!important}.vb-support:hover{color:var(--color)!important}@media (max-width:767px){.file-card.is-code .ace_gutter-cell{padding-left:4px!important;padding-right:6px!important}.file-card.is-code .ace_scroller{left:30px!important}.file-card.is-code .ace_gutter{width:30px!important}}.md-find-bar{position:sticky;top:52px;z-index:5;display:flex;align-items:center;gap:10px;padding:8px 20px;background:var(--paper-card);border-bottom:1px solid var(--border-color)}.md-find-input{width:260px;height:32px;padding:0 10px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);color:var(--color);font:14px var(--font-sans)}.md-find-input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.md-find-count{font-size:12.5px;color:var(--ink-soft);min-width:64px;font-variant-numeric:tabular-nums}.md-find-nav{display:inline-flex}.md-find-close,.md-find-nav button{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-color);background:var(--paper-card);color:var(--color)}.md-find-nav button:first-child{border-radius:var(--radius-control) 0 0 var(--radius-control)}.md-find-nav button:last-child{border-radius:0 var(--radius-control) var(--radius-control) 0;margin-left:-1px}.md-find-nav button:disabled{opacity:.45}.md-find-close{border:0;background:0 0;font-size:20px;border-radius:var(--radius-control)}.md-find-close:hover{background:var(--hover-bg-color)}mark.md-find{background:rgba(242,204,96,.45);color:inherit;border-radius:2px;padding:0}mark.md-find.is-current{background:rgba(232,170,40,.8);box-shadow:0 0 0 1px rgba(160,100,10,.6)}@media (min-width:1280px){.viewer-bar a.vb-icon[href="/faq"]{width:auto!important;padding:0 10px!important;gap:6px}.viewer-bar a.vb-icon[href="/faq"]::after{content:"FAQ";font:500 13px var(--font-sans);color:var(--ink-soft)}}.file-card-head .btn-md-find.is-on{background:0 0!important;color:var(--accent)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 50%,transparent)!important}.md-find-input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}@media (min-width:768px){.md-find-bar{padding-left:63px!important}}.md-find-input{width:240px!important}.file-card:has(.md-find-bar) .readme-toc{top:120px!important}.claim-page input,.claim-page textarea{border-color:var(--border-color)!important}.connection-status{font-size:12.5px!important}@media (max-width:767px){.admin-page .admin-filters-toggle::before{content:"";width:14px;height:14px;margin-right:6px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 6h16M7 12h10M10 18h4'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 6h16M7 12h10M10 18h4'/%3E%3C/svg%3E") center/contain no-repeat}.admin-page .admin-filters-toggle{display:inline-flex!important;align-items:center}}.paper-faq-title{text-wrap:balance}.file-card-head,.md-find-bar{background:var(--paper-card)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;opacity:1!important}.dark-mode .file-card-head,.dark-mode .md-find-bar{background:#141311!important}@media (min-width:1200px){.reading-layout{grid-template-columns:minmax(0,640px) 190px!important;gap:56px!important;justify-content:center!important;padding:0 24px!important}}.reading-layout .file-content.markdown-body{padding-top:32px!important}@media (min-width:1200px){.md-find-bar{padding-left:calc((100% - 886px)/ 2)!important}}@media (min-width:1280px){.viewer-bar a.vb-bug{width:auto!important;padding:0 10px!important;gap:6px}.viewer-bar a.vb-bug::after{content:"Report a bug";font:500 13px var(--font-sans);color:var(--ink-soft)}}.vb-snapshot{font-size:13px!important;color:var(--ink-soft)!important}.dashboard-filter-controls .btn-group[aria-label=Type]>.btn,.dashboard-page .dashboard-filter-controls .dropdown-toggle,.dashboard-page .dashboard-filter-row .form-control{height:36px!important;min-height:36px!important}.dashboard-filter-controls .btn-group[aria-label=Type]{padding:0!important;height:36px;align-items:center}.dashboard-filter-controls .btn-group[aria-label=Type]>.btn{height:30px!important;min-height:30px!important;margin:3px 0}.errors-page .errors-toolbar{flex-wrap:nowrap!important}.errors-page .errors-toolbar input[type=search]{min-width:0;flex:1 1 260px}.paper-table .paper-table-head{background:color-mix(in srgb,var(--hover-bg-color) 60%,transparent)!important}@media (min-width:1200px){.reading-layout{grid-template-columns:minmax(0,700px) 190px!important;gap:48px!important}}.md-find-bar{padding-top:4px!important;padding-bottom:4px!important}.md-find-input{height:30px!important}.md-find-input:focus{box-shadow:0 0 0 1px var(--accent)!important}.ace_editor .ace_marker-layer .ace_selection,mark.md-find.is-current{background:rgba(240,190,80,.6)!important;box-shadow:0 0 0 1px rgba(170,110,20,.5)!important}.viewer-bar .vb-right{gap:12px!important}.viewer-bar .vb-right>*{margin:0!important}.auto-refresh-label{white-space:nowrap!important}.errors-page .errors-toolbar{flex-wrap:wrap!important}.errors-page .errors-row-head,.errors-page .errors-thead,.paper-table .paper-table-head,.q-table thead th{background:#f3f1ec!important}.dark-mode .errors-page .errors-thead,.dark-mode .paper-table .paper-table-head,.dark-mode .q-table thead th{background:#24211d!important}.summary-show-label{font-size:12.5px;color:var(--ink-soft);margin-right:2px;align-self:center}.anon-sub a.mono-hash,.mono-hash{text-decoration:none!important;border-bottom:0!important}.errors-page .errors-list-head{background:#f3f1ec!important}.dark-mode .errors-page .errors-list-head{background:#24211d!important}.errors-page .errors-toolbar .search-wrap,.errors-page .errors-toolbar input[type=search]{flex:1 1 220px!important;max-width:340px!important;min-width:0!important}.errors-page .errors-toolbar{flex-wrap:nowrap!important;gap:8px!important}.faq-section .panel-default .panel-title a{padding:16px 32px 16px 0!important;position:relative;display:block}.faq-section .panel-default .panel-body{padding-left:0!important}.faq-section .panel-default .panel-title a:after{left:auto!important;right:6px!important}.md-find-bar{padding-left:20px!important}.vb-logo{font-size:19px!important}@media (max-width:767px){.vb-logo{font-size:18px!important}.admin-summary .summary-show-label{flex-basis:100%}}.btn-ghost-danger{background:0 0!important;border:1px solid transparent!important;color:#b42318!important;display:inline-flex;align-items:center;gap:6px}.btn-ghost-danger:hover{background:color-mix(in srgb,#b42318 8%,transparent)!important}.dark-mode .btn-ghost-danger{color:#f08a82!important}mark.md-find{background:rgba(242,204,96,.32)!important;box-shadow:none!important}mark.md-find.is-current{background:rgba(232,160,30,.85)!important;box-shadow:0 0 0 1px rgba(150,90,10,.7)!important;color:#2b2824!important}.md-find-opt{height:30px;min-width:32px;padding:0 8px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);color:var(--ink-soft);font:600 12px var(--font-sans)}.md-find-opt.is-on{color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.md-find-nav button{color:var(--ink-soft)!important}.md-find-close{font-size:18px!important;font-weight:300!important;color:var(--ink-soft)!important}@media (min-width:768px){.file-card .ace_search{left:0!important;right:0!important;padding-left:20px!important;margin:0!important;max-width:none!important}}@media (min-width:768px){.md-find-bar{padding-left:71px!important}}@media (min-width:768px){.md-find-bar{padding-left:71px!important}}@media (min-width:1200px){.file-card:has(.md-find-bar) .readme-toc,.readme-toc{top:120px!important}}.dark-mode .dashboard-filter-controls .btn-group[aria-label=Type]>.btn.btn-primary{background:#3a3631!important;color:#f2eee8!important;box-shadow:0 0 0 1px rgba(255,255,255,.14)!important}.admin-page .paper-table .user-name,.admin-page .paper-table .username,.admin-page:has(.admin-users-row) .cell-anon .repo-name,.admin-users-row .repo-name{font-family:var(--font-sans)!important;font-weight:600}.paper-page input[type=checkbox]{-webkit-appearance:none;appearance:none;width:16px!important;height:16px!important;margin:0;border:1.5px solid #a39d92;border-radius:4px;background:var(--paper-card);display:inline-grid;place-content:center;cursor:pointer;vertical-align:middle}.paper-page input[type=checkbox]::before{content:"";width:9px;height:9px;transform:scale(0);background:#fff;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5'/%3E%3C/svg%3E") center/contain no-repeat}.paper-page input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.paper-page input[type=checkbox]:checked::before{transform:scale(1)}.paper-page input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dark-mode .paper-page input[type=checkbox]{border-color:#6e6860;background:0 0}.admin-page .detail-value:is(:empty),.detail-value.is-empty{color:var(--ink-muted)!important;font-style:italic}.paper-table-dashboard .btn-icon-dots,.row-edit{width:32px!important;height:32px!important;border-radius:var(--radius-control)}.paper-table-dashboard .btn-icon-dots:hover,.row-edit:hover{background:var(--hover-bg-color)!important}.q-state-toggle input[type=checkbox]{position:absolute;opacity:0;width:1px!important;height:1px!important;pointer-events:none}.q-state-toggle{position:relative;cursor:pointer}.q-state-toggle input:not(:checked)+.q-state-chip{opacity:.45;text-decoration:line-through}.q-state-toggle input:focus-visible+.q-state-chip{outline:2px solid var(--accent);outline-offset:2px}@media (min-width:768px){.md-find-bar{padding-left:31px!important}}.ace_search .ace_search_field,.anonymize-page .form-control,.md-find-input,.paper-page input.form-control,.paper-page input[type=date],.paper-page input[type=text],.paper-page input[type=url],.paper-page select.form-control,.paper-page textarea{border-radius:8px!important}.page-head-row .btn-primary,.paper-page .btn-ink,.paper-page .btn-primary{min-height:40px!important}.errors-page .errors-list-head>*,.paper-table .paper-table-head [role=columnheader],.paper-table .paper-table-head>div{font-weight:500!important;font-size:12.5px!important;letter-spacing:0!important;text-transform:none!important;color:var(--ink-soft)!important}.admin-page .admin-section-header h2{font:600 18px/1.3 var(--font-sans)!important;display:inline-flex;align-items:center;gap:8px}.admin-page .admin-section-header h2 .ui-icon{width:16px;height:16px;color:var(--ink-soft)}.files .file.active>a{background:#e2ded7!important}.files .file.active>a::before{left:3px!important}.dark-mode .files .file.active>a{background:rgba(255,255,255,.09)!important}.admin-page:has(.admin-users-row) .paper-table-head,.admin-page:has(.admin-users-row) .paper-table-row{grid-template-columns:28px minmax(220px,320px) 120px 140px 1fr 40px!important}@media (max-width:767px){.mobile-sub{margin-top:3px!important}}.paper-faq-lede,.paper-page-lede{text-wrap:pretty;max-width:640px}.errors-page .status-pill.status-neutral:not([title=""])[title]{background:0 0!important;border-color:transparent!important;color:var(--ink-muted)!important}.md-find-bar{min-height:47px!important;padding-top:7px!important;padding-bottom:7px!important}.ace_search .ace_search_field:focus,.md-find-input:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}mark.md-find{background:rgba(246,224,138,.7)!important}.ace_editor .ace_marker-layer .ace_selected-word{background:rgba(246,224,138,.7)!important}.files .file.active>a{background:#e6e3dc!important}@media (min-width:1200px){.readme-toc{margin-top:32px!important;padding-top:0!important}}.errors-page .kpi-card.kpi-info .kpi-value{color:var(--ink-soft)!important;font-weight:500!important;font-size:26px!important}.errors-page .kpi-card.kpi-info{background:color-mix(in srgb,var(--paper-card) 70%,transparent)!important}.ov-meter span{background:var(--accent)}.ov-meter.warn span{background:#b7791f!important}.ov-meter.crit span{background:#b42318!important}@media (max-width:767px){.admin-summary .summary-show-label{flex-basis:auto!important}}@media (max-width:767px){.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(0,1fr) auto auto!important;grid-template-areas:"name edit more" "meta meta meta" "link link link"!important;column-gap:2px!important}.paper-table-dashboard .cell-actions>.row-edit{display:inline-flex!important;grid-area:edit;align-self:start;align-items:center;justify-content:center}.dashboard-page .paper-table-dashboard .dashboard-row-meta{display:flex!important;flex-wrap:nowrap!important;align-items:center!important;gap:0!important;padding-left:26px;font-size:12.5px;color:var(--ink-soft)}.dashboard-page .dashboard-row-meta .cell-status{flex:0 0 auto!important}.dashboard-page .dashboard-row-meta .cell-status .status-line{gap:6px}.dashboard-page .dashboard-row-meta .cell-expires,.dashboard-page .dashboard-row-meta .cell-views{display:inline-flex!important;align-items:center;font-family:var(--font-sans,Inter,sans-serif)!important;font-size:12.5px!important;color:var(--ink-soft)!important;white-space:nowrap;margin:0!important;padding:0!important;text-align:left!important;justify-content:flex-start!important}.dashboard-page .dashboard-row-meta .cell-expires::before,.dashboard-page .dashboard-row-meta .cell-views::before{content:"·";margin:0 8px;color:var(--ink-muted)}.dashboard-page .dashboard-row-meta .cell-views .ui-icon,.dashboard-page .dashboard-row-meta .cell-views svg{display:none!important}.dashboard-page .dashboard-row-meta .cell-expires .cell-label,.dashboard-page .dashboard-row-meta .cell-expires small{font-size:inherit!important;color:inherit!important;margin-right:4px}}.dashboard-page .dashboard-quota>summary{border:1px solid var(--border-color)!important;border-radius:999px!important;padding:0 12px 0 10px!important;height:36px;min-height:36px!important;display:inline-flex!important;align-items:center;gap:8px;background:var(--paper-card)!important}.dashboard-page .dashboard-quota>summary:hover{background:var(--hover-bg-color)!important}.dashboard-page .dashboard-quota .quota-summary-ring{display:inline-block!important;width:16px;height:16px}@media (min-width:1200px){.reading-layout{grid-template-columns:minmax(0,660px) 176px!important;gap:56px!important;justify-content:center!important}}@media (max-width:767px){.admin-summary .summary-show-label{flex-basis:100%!important;margin:4px 0 -2px!important}.admin-summary .summary-meta{flex:1 1 auto}}.q-throughput:has(.q-chart-empty) .q-chart-wrap{flex:0 0 auto!important;min-height:120px!important;height:120px}.q-throughput:has(.q-chart-empty) .q-chart-wrap canvas{visibility:hidden}.q-chart-empty{border-bottom:0!important;border-radius:8px}@media (min-width:768px){.md-find-bar{padding-left:20px!important}.file-card .ace_search{padding-left:20px!important}.file-card .ace_search .ace_search_form{margin-left:0!important}}@media (min-width:768px){.file-card .ace_search{left:0!important;padding-left:0!important}}@media (min-width:1200px){.md-find-bar{padding-left:max(20px,calc((100% - 892px)/ 2))!important}}.q-throughput:has(.q-chart-empty) .q-chart-wrap{flex:1 1 auto!important;height:auto!important;min-height:160px!important}.q-danger-group{align-items:center;flex-wrap:wrap}.q-danger-group::before{content:"Clear jobs";flex-basis:100%;font-size:12px;color:var(--ink-soft);margin-bottom:2px}.q-legend .q-legend-item,.q-legend button,.q-legend span{font-size:12px!important}.q-state-filters .q-state-toggle,.q-state-filters .q-state-toggle *{font-size:12px!important}.admin-nav a.active,.admin-nav a.router-link-active{background:0 0!important;color:var(--accent)!important;box-shadow:inset 0 -2px 0 var(--accent)!important;border-radius:0!important}.admin-nav a:not(.active):hover{background:0 0!important;color:var(--color)!important;box-shadow:inset 0 -2px 0 var(--border-color)!important}.dark-mode .q-card.selected,.q-card.selected{background:var(--paper-card)!important;border-color:var(--accent)!important;box-shadow:inset 0 0 0 1px var(--accent)!important}.errors-page .kpi-card .kpi-value,.errors-page .kpi-card.kpi-info .kpi-value,.errors-page .kpi-card.kpi-warn .kpi-value{color:var(--color)!important;font-weight:600!important;font-size:28px!important}.errors-page .kpi-card.kpi-info{background:var(--paper-card)!important}.paper-table-dashboard .btn-icon-dots,.paper-table-dashboard .row-edit{color:var(--color)!important;opacity:.72}.paper-table-dashboard .btn-icon-dots:hover,.paper-table-dashboard .row-edit:hover{opacity:1}@media (max-width:767px){.paper-table-dashboard .cell-actions>.dropdown,.paper-table-dashboard .cell-actions>.row-edit{margin-top:-6px}}@media (min-width:1280px){.viewer-bar a.vb-bug,.viewer-bar a.vb-icon[href="/faq"]{width:32px!important;padding:0!important}.viewer-bar a.vb-bug::after,.viewer-bar a.vb-icon[href="/faq"]::after{content:none!important}}.markdown-body h2{margin-bottom:12px!important}.markdown-body h3{margin-top:32px!important;margin-bottom:8px!important}.markdown-body h4{margin-top:24px!important;margin-bottom:6px!important;color:var(--ink-soft)!important}@media (min-width:768px){.file-card .ace_search{padding-left:16px!important}}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:48px!important;background:linear-gradient(to right,rgba(255,255,255,0),var(--paper-card) 55%)!important;box-shadow:inset -1px 0 0 var(--border-color)}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(20,19,17,0),#141311 55%)!important}}.connections-page .connection-actions{flex-wrap:nowrap!important;align-items:center;gap:12px!important}.connections-page .connection-actions .connection-link{white-space:nowrap}.paper-table-dashboard .paper-table-head .col-link{font-size:inherit;color:inherit}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:40px!important;background:linear-gradient(to right,rgba(40,32,24,0),rgba(40,32,24,.07)),linear-gradient(to right,rgba(255,255,255,0),#fff 70%)!important;border-right:2px solid rgba(40,32,24,.12)}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(0,0,0,0),rgba(0,0,0,.35)),linear-gradient(to right,rgba(20,19,17,0),#141311 70%)!important;border-right-color:rgba(255,255,255,.08)}}.connections-page .connection-actions .btn{white-space:nowrap}.connections-page .connection-refresh{width:36px;height:36px;justify-content:center;padding:0!important;border-radius:var(--radius-control,8px);margin-left:auto}.faq-section .faq-cat,.faq-section .panel-group{max-width:720px}.ace-chrome .ace_gutter-cell{color:#5f5a52!important}.connections-grid{align-items:start!important}.connection-installations{border-bottom:0!important;margin-bottom:0!important;padding-bottom:0!important}.anonymize-page .form-control,.paper-page input.form-control,.paper-page input[type=date],.paper-page input[type=text],.paper-page input[type=url],.paper-page select.form-control,.paper-page textarea,.paper-page textarea.form-control{border-color:#c2baac!important}.dark-mode .anonymize-page .form-control,.dark-mode .paper-page input.form-control,.dark-mode .paper-page input[type=date],.dark-mode .paper-page input[type=text],.dark-mode .paper-page input[type=url],.dark-mode .paper-page select.form-control,.dark-mode .paper-page textarea{border-color:#4a453e!important}.paper-page input::placeholder,.paper-page textarea::placeholder{color:#a39b8e!important}@media (max-width:767px){.paper-table-dashboard .cell-actions>.dropdown,.paper-table-dashboard .cell-actions>.dropdown>.btn-icon-dots,.paper-table-dashboard .cell-actions>.row-edit{width:36px!important;height:36px!important;margin-top:-4px!important;align-self:start!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}}.anonymize-page .repo-access-switch{border:0!important;background:0 0!important;padding:0!important;box-shadow:none!important;gap:0!important;display:inline-flex!important;align-items:center;width:auto!important;font-size:12.5px;color:var(--ink-soft)}.anonymize-page .repo-access-switch::before{content:"Access:";margin-right:6px;color:var(--ink-soft)}.anonymize-page .repo-access-switch button{background:0 0!important;border:0!important;box-shadow:none!important;padding:2px 4px!important;height:auto!important;min-height:0!important;font-size:12.5px!important;font-weight:500!important;color:var(--ink-soft)!important;flex:0 0 auto!important;border-radius:4px!important}.anonymize-page .repo-access-switch button+button::before{content:"·";margin-right:8px;color:var(--ink-muted)}.anonymize-page .repo-access-switch button[aria-pressed=true]{color:var(--color)!important;font-weight:600!important;opacity:1!important}.anonymize-page .repo-access-switch button:not([aria-pressed=true]):hover{color:var(--accent)!important;text-decoration:underline}.anonymize-page .repo-access-switch button .ui-icon{display:none!important}.ace_editor .ace_marker-layer .ace_selection,mark.md-find.is-current{background:rgba(240,206,90,.95)!important;box-shadow:0 0 0 1.5px #5c4a12!important;color:inherit!important}.dark-mode .ace_editor .ace_marker-layer .ace_selection,.dark-mode mark.md-find.is-current{background:rgba(214,178,60,.55)!important;box-shadow:0 0 0 1.5px #f2d77a!important}.ace_search .ace_search_field,.md-find-input,.paper-page input:not([type=checkbox]):not([type=radio]):not([type=range]),.paper-page select,.paper-page textarea{border-color:#cfc7b9!important}.dark-mode .md-find-input,.dark-mode .paper-page input:not([type=checkbox]):not([type=radio]):not([type=range]),.dark-mode .paper-page select,.dark-mode .paper-page textarea{border-color:#48433c!important}.ace_search .ace_search_field:focus,.md-find-input:focus,.paper-page input:focus,.paper-page select:focus,.paper-page textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}.q-dot.q-dot-idle{background:#2f7d4f!important}.dark-mode .q-dot.q-dot-idle{background:#6fbf8a!important}@media (min-width:1200px){.readme-toc{margin-top:0!important;padding-top:0!important}}@media (min-width:1200px){.readme-toc{margin-top:-30px!important}}.anonymize-workspace .anonymize-topbar{background:var(--paper-bg,var(--background))!important;border-bottom:1px solid var(--border-color)!important}.anonymize-workspace .type-badge{font-family:var(--font-sans)!important;letter-spacing:0!important;text-transform:none!important;font-size:12px!important;font-weight:600!important;padding:2px 8px!important;border-radius:999px!important;background:var(--hover-bg-color)!important;color:var(--ink-soft)!important;border:0!important;vertical-align:middle}.anonymize-page input[type=checkbox]{-webkit-appearance:none;appearance:none;width:16px!important;height:16px!important;margin:2px 0 0;border:1.5px solid #a39d92;border-radius:4px;background:var(--paper-card);display:inline-grid;place-content:center;cursor:pointer;flex:0 0 16px}.anonymize-page input[type=checkbox]::before{content:"";width:9px;height:9px;transform:scale(0);background:#fff;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5'/%3E%3C/svg%3E") center/contain no-repeat}.anonymize-page input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.anonymize-page input[type=checkbox]:checked::before{transform:scale(1)}.anonymize-page input[type=checkbox]:indeterminate{background:var(--accent);border-color:var(--accent)}.anonymize-page input[type=checkbox]:indeterminate::before{width:8px;height:2px;border-radius:1px;-webkit-mask:none;mask:none;transform:scale(1)}.anonymize-page input[type=checkbox]:disabled{opacity:.45;cursor:not-allowed}.anonymize-page input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dark-mode .anonymize-page input[type=checkbox]{border-color:#6e6860;background:0 0}.anonymize-page #commit{font-family:var(--font-mono, "JetBrains Mono", monospace)!important;font-size:13px!important}.anonymize-page .form-control,.anonymize-page select,.anonymize-page textarea{border-color:#cfc7b9!important}.dark-mode .anonymize-page .form-control,.dark-mode .anonymize-page select,.dark-mode .anonymize-page textarea{border-color:#48433c!important}.anonymize-page .form-control:focus,.anonymize-page select:focus,.anonymize-page textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}.anonymize-review-note{font-size:12.5px!important;color:var(--ink-soft)!important;margin:0 0 8px!important}.anonymize-page .form-check-input[type=checkbox]{position:absolute!important;margin-left:-28px!important;margin-top:3px!important}.anonymize-page .repo-access-controls:not(:has(button,a)),.anonymize-page .repo-access-main:not(:has(button,a)){display:none!important}.anonymize-page .repo-access-note:not(:has(span+span)){margin-top:0!important}.anonymize-form-col .anonymize-submit-bar{position:sticky;bottom:0;z-index:3;background:var(--paper-bg-alt)!important;border-top:1px solid var(--border-color);padding:12px 0 16px!important;margin-top:8px}.anonymize-form-col .anonymize-submit-bar::before{content:"";position:absolute;left:0;right:0;top:-25px;height:24px;background:linear-gradient(to bottom,transparent,var(--paper-bg-alt));pointer-events:none}.anonymize-form-col .anonymize-review-note,.anonymize-form-col .draft-status{font-size:12.5px!important;color:var(--ink-soft)!important;margin:0 0 6px!important;padding:0 2px}.anonymize-form-col .anonymize-review-note::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--status-progress,#b7791f);margin-right:8px;vertical-align:1px}.anonymize-page .repo-access-switch button[aria-pressed=true]{color:var(--accent)!important;box-shadow:inset 0 -2px 0 var(--accent)!important;border-radius:0!important}.anonymize-page .input-group-append .btn-icon{height:40px!important;width:40px!important;min-height:40px!important;display:inline-flex!important;align-items:center;justify-content:center;border:1px solid #cfc7b9!important;border-radius:8px!important;margin-left:8px!important;background:var(--paper-card)!important}.dark-mode .anonymize-page .input-group-append .btn-icon{border-color:#48433c!important}.custom-select,input.form-control,select.form-control,textarea.form-control{border-color:#cfc7b9!important}.dark-mode .custom-select,.dark-mode input.form-control,.dark-mode select.form-control,.dark-mode textarea.form-control{border-color:#48433c!important}input.form-control:focus,select.form-control:focus,textarea.form-control:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}@media (max-width:767px){.paper-table-dashboard .cell-views.num::after{content:"views"!important;margin-left:4px}}@media (min-width:768px){.paper-table-dashboard .cell-views.num::after{content:none!important}}@media (max-width:767px){.admin-page .paper-table:not(.users-table) .cell-views.num::after{margin-left:4px}}.markdown-body li .redact-chip,.markdown-body p .redact-chip{line-height:1!important;padding-top:1px!important;padding-bottom:1px!important;vertical-align:baseline}.dark-mode .explorer-sidebar,.dark-mode .leftCol{background:#1e1c19!important}.errors-page .seg-tabs,.q-range-btns{display:inline-flex!important;gap:2px!important;padding:3px!important;background:var(--hover-bg-color)!important;border:0!important;border-radius:9px!important}.errors-page .seg-tabs button,.q-range-btns .btn{border:0!important;background:0 0!important;color:var(--ink-soft)!important;border-radius:7px!important;height:28px!important;min-height:28px!important;padding:0 10px!important;font-size:13px!important;font-weight:500!important;box-shadow:none!important}.errors-page .seg-tabs button.active,.q-range-btns .btn.active{background:var(--paper-card)!important;color:var(--color)!important;box-shadow:0 1px 2px rgba(40,32,24,.12),0 0 0 1px rgba(40,32,24,.06)!important}.dark-mode .errors-page .seg-tabs button.active,.dark-mode .q-range-btns .btn.active{background:#2c2925!important;box-shadow:0 0 0 1px rgba(255,255,255,.06)!important}.ace_search .ace_search_field,.md-find-input{border-width:1px!important}.ace_search .ace_search_field:focus,.md-find-input:focus{outline:0!important;border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}.anonymize-form-col .anonymize-review-note{color:#8a5a12!important;font-weight:500}.dark-mode .anonymize-form-col .anonymize-review-note{color:#e3b062!important}@media (max-width:767px){.anonymize-form-col .anonymize-submit-bar{position:sticky!important;bottom:0!important;padding:12px 0 calc(12px + env(safe-area-inset-bottom))!important}}@media (max-width:767px){.anonymize-form-col{overflow:visible!important}.anonymize-page .form-group+.form-group,.anonymize-page .form-row>[class*=col]+[class*=col]{margin-top:0!important}.anonymize-page .input-group-append .btn-icon{height:44px!important;width:44px!important}}#sourceUrl,#sourceUrl-landing{border-color:#cfc7b9!important}.dark-mode #sourceUrl,.dark-mode #sourceUrl-landing{border-color:#48433c!important}#sourceUrl-landing:focus,#sourceUrl:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}.anonymize-form-col .anonymize-review-note{color:#6e470c!important}.dark-mode .anonymize-preview-col .markdown-body h1,.dark-mode .anonymize-preview-col .markdown-body h2,.dark-mode .anonymize-preview-col .markdown-body hr{border-color:var(--border-color)!important}.dark-mode .q-dot.q-dot-idle,.q-dot.q-dot-idle{background:var(--ink-muted)!important}.ace_search .ace_search_counter,.md-find-count{color:var(--color)!important;font-weight:500!important;font-variant-numeric:tabular-nums;font-size:12.5px!important}.readme-toc a:not(.is-active){color:#57524a!important}.dark-mode .readme-toc a:not(.is-active){color:#b8b1a6!important}.viewer-bar .vb-support{margin-right:8px!important}:root{--redact-bar:#1F1C19;--redact-ink:#5A544C;--redact-reveal:#F4EFE6}.dark-mode{--redact-bar:#000000;--redact-ink:#3E3A35;--redact-reveal:#F4EFE6}.demo-output .redact-chip,.hero .redact,.hero-mock .redact,.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip,.markdown-body h3 mark.redact-chip,.markdown-body h4 mark.redact-chip,.markdown-body mark.redact-chip,span.redact{background:var(--redact-bar)!important;color:var(--redact-ink)!important;box-shadow:none!important;border:0!important;border-radius:2px!important;padding:0 .28em!important;text-decoration:none!important;font-weight:inherit;letter-spacing:.02em;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:color .12s ease;cursor:help}.dark-mode .demo-output .redact-chip,.dark-mode .markdown-body mark.redact-chip,.dark-mode span.redact{box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)!important}.demo-output .redact-chip:hover,.markdown-body mark.redact-chip:hover,span.redact:hover{color:var(--redact-reveal)!important}.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip,.markdown-body h3 mark.redact-chip{font-size:inherit!important;vertical-align:baseline!important;padding:0 .2em!important}.ace_text-layer .ace_redacted{background:var(--redact-bar)!important;color:var(--redact-ink)!important;border-radius:2px;box-shadow:none!important;text-decoration:none!important}.dark-mode .ace_text-layer .ace_redacted{box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)!important}.meta-redact{background:0 0!important;color:var(--ink-soft)!important;box-shadow:none!important;padding:0!important;display:inline-flex!important;align-items:center;gap:6px;font-weight:500!important}.meta-redact::before{content:"";width:14px;height:8px;border-radius:1.5px;background:var(--redact-bar);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}.ace_editor .ace_text-layer .ace_redacted,.dark-mode .ace_editor .ace_text-layer .ace_redacted{background:var(--redact-bar)!important;color:var(--redact-ink)!important;border-radius:2px!important}.ace_editor .ace_text-layer .ace_redacted{box-shadow:none!important}.dark-mode .ace_editor .ace_text-layer .ace_redacted{box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)!important}.dark-mode .demo-output .redact-chip,.dark-mode .markdown-body h1 mark.redact-chip,.dark-mode .markdown-body h2 mark.redact-chip,.dark-mode .markdown-body h3 mark.redact-chip,.dark-mode .markdown-body mark.redact-chip,.dark-mode span.redact{background:var(--redact-bar)!important;color:var(--redact-ink)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)!important}.dark-mode .demo-output .redact-chip:hover,.dark-mode .markdown-body mark.redact-chip:hover{color:var(--redact-reveal)!important}.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip{color:#3e3933!important}.dark-mode .meta-redact{color:var(--ink-soft)!important}.dark-mode .hero-mock-count,.hero-mock-count{background:0 0!important;color:var(--ink-soft)!important;padding:0!important;gap:6px;font-weight:500!important}.hero-mock-count::before{content:"";width:12px;height:7px;border-radius:1.5px;background:var(--redact-bar);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}@media (max-width:767px){.dark-mode .mobile-sub b,.mobile-sub b{background:0 0!important;color:var(--ink-soft)!important;padding:0!important;gap:5px;font-weight:500!important}.mobile-sub b::before{content:"";width:12px;height:7px;border-radius:1.5px;background:var(--redact-bar);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}}:root{--redact-bar:#E4DED3;--redact-ink:#8A8378;--redact-reveal:#2B2824}.dark-mode{--redact-bar:#34302A;--redact-ink:#8F887D;--redact-reveal:#F1ECE3}.ace_editor .ace_text-layer .ace_redacted,.dark-mode .ace_editor .ace_text-layer .ace_redacted,.dark-mode .demo-output .redact-chip,.dark-mode .markdown-body mark.redact-chip,.dark-mode span.redact,.demo-output .redact-chip,.markdown-body mark.redact-chip,span.redact{box-shadow:none!important;border-radius:3px!important}.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip{color:var(--redact-ink)!important}.dark-mode .markdown-body h1 mark.redact-chip,.dark-mode .markdown-body h2 mark.redact-chip,.dark-mode .markdown-body h3 mark.redact-chip{box-shadow:none!important}.hero-mock-count::before,.meta-redact::before,.mobile-sub b::before{box-shadow:none!important}:root{--redact-bar:#EEEAE2;--redact-ink:#8C8478;--redact-reveal:#2B2824;--redact-deboss:inset 0 1px 2px rgba(60,48,32,.18),inset 0 0 0 1px rgba(60,48,32,.06)}.dark-mode{--redact-bar:#0E0D0B;--redact-ink:#7A746A;--redact-reveal:#F1ECE3;--redact-deboss:inset 0 1px 2px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.05)}.dark-mode .demo-output .redact-chip,.dark-mode .markdown-body mark.redact-chip,.dark-mode span.redact,.demo-output .redact-chip,.markdown-body mark.redact-chip,span.redact{background:var(--redact-bar)!important;color:var(--redact-ink)!important;box-shadow:var(--redact-deboss)!important;border-radius:4px!important;padding:.05em .45em!important;font-family:var(--font-mono, "JetBrains Mono", monospace)!important;font-size:.78em!important;font-weight:500!important;letter-spacing:.02em!important;line-height:1.4!important;vertical-align:.08em!important;white-space:nowrap}.dark-mode .markdown-body h1 mark.redact-chip,.dark-mode .markdown-body h2 mark.redact-chip,.dark-mode .markdown-body h3 mark.redact-chip,.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip,.markdown-body h3 mark.redact-chip{font-size:.55em!important;vertical-align:.3em!important;color:var(--redact-ink)!important;padding:.15em .5em!important}.demo-output .redact-chip:hover,.markdown-body mark.redact-chip:hover,span.redact:hover{color:var(--redact-reveal)!important}.ace_editor .ace_text-layer .ace_redacted,.dark-mode .ace_editor .ace_text-layer .ace_redacted{background:var(--redact-bar)!important;color:var(--redact-ink)!important;box-shadow:var(--redact-deboss)!important;border-radius:3px!important}.hero-mock-count::before,.meta-redact::before,.mobile-sub b::before{background:var(--redact-bar)!important;box-shadow:var(--redact-deboss)!important;border-radius:2px!important}:root{--slot-bg:#E3DCD0;--slot-bg-sel:#D3CBBD;--slot-num:#1F5F5A}.dark-mode{--slot-bg:#3A352F;--slot-bg-sel:#4A443C;--slot-num:#7CC7BE}.dark-mode .demo-output .redact-chip,.dark-mode .markdown-body h1 mark.redact-chip,.dark-mode .markdown-body h2 mark.redact-chip,.dark-mode .markdown-body h3 mark.redact-chip,.dark-mode .markdown-body mark.redact-chip,.dark-mode span.redact,.demo-output .redact-chip,.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip,.markdown-body h3 mark.redact-chip,.markdown-body h4 mark.redact-chip,.markdown-body mark.redact-chip,.redact-slot,span.redact{display:inline-flex!important;align-items:center!important;justify-content:flex-end!important;min-width:2.5em!important;height:1.12em!important;padding:0 .32em!important;margin:0 .06em!important;background:var(--slot-bg)!important;color:var(--slot-num)!important;box-shadow:none!important;border:0!important;border-radius:3px!important;vertical-align:-.2em!important;line-height:1!important;font-size:inherit!important;letter-spacing:0!important;text-decoration:none!important;cursor:help;white-space:nowrap}.markdown-body mark.redact-chip i,.redact-slot i,span.redact i{font:700 .66em/1 var(--font-sans,Inter,sans-serif)!important;font-style:normal!important;color:var(--slot-num)!important}.demo-output .redact-chip{font:700 .66em/1 var(--font-sans,Inter,sans-serif)!important;min-width:3.8em!important;height:1.7em!important;vertical-align:-.35em!important}.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip{height:.95em!important;vertical-align:-.1em!important;border-radius:4px!important}.files .redact-slot{min-width:2.3em!important;height:1.08em!important;vertical-align:-.18em!important}.files .file.active>a .redact-slot,.files a[aria-current] .redact-slot{background:var(--slot-bg-sel)!important}.breadcrumb .redact-slot{vertical-align:-.22em!important}.ace_editor .ace_text-layer .ace_redacted,.dark-mode .ace_editor .ace_text-layer .ace_redacted{position:relative;color:transparent!important;background:var(--slot-bg)!important;box-shadow:none!important;border-radius:3px!important}.ace_editor .ace_text-layer .ace_redacted::after{position:absolute;right:.35em;top:50%;transform:translateY(-50%);font:700 9.5px/1 var(--font-sans,Inter,sans-serif);color:var(--slot-num)}.hero-mock-count::before,.meta-redact::before,.mobile-sub b::before{background:var(--slot-bg)!important;box-shadow:none!important;border-radius:2px!important}.files .tree-name{display:inline-flex;align-items:center;gap:0;min-width:0}.files .tree-name .redact-slot{vertical-align:middle!important;margin:0 .08em!important}.markdown-body li mark.redact-chip,.markdown-body p mark.redact-chip{vertical-align:-.16em!important}.ace_editor .ace_marker-layer .ace_selection,mark.md-find.is-current{background:rgba(240,196,70,.95)!important;box-shadow:0 0 0 2px rgba(196,140,20,.55)!important}.dark-mode .ace_editor .ace_marker-layer .ace_selection,.dark-mode mark.md-find.is-current{background:rgba(214,170,50,.6)!important;box-shadow:0 0 0 2px rgba(240,200,90,.55)!important}.demo-output .redact-chip,span.redact i{font-size:10px!important}.dark-mode{--slot-num:#8FD6CC}.dark-mode .markdown-body h1 mark.redact-chip,.dark-mode .markdown-body h2 mark.redact-chip,.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip{min-width:1.9em!important;height:.78em!important;vertical-align:0!important;padding:0 .22em!important}.viewer-bar .vb-right{gap:4px!important}.viewer-bar .vb-right .vb-icon{width:34px!important;height:34px!important;margin:0!important}.viewer-bar .vb-support{margin-right:10px!important}.viewer-bar .vb-snapshot{margin-right:14px!important}@media (max-width:767px){.mobile-sub{font-size:13px!important;color:#5f5a52!important}.dark-mode .mobile-sub{color:#b3aca1!important}}.file-card-meta{overflow:visible!important}:root{--control-border:#CFC7B9}.dark-mode{--control-border:#48433C}.admin-page .btn:not(.btn-ink):not(.btn-primary):not(.btn-outline-danger):not(.summary-pill),.admin-page select,.anonymize-page #branch,.anonymize-page #sourceUrl,.anonymize-page #sourceUrl-landing,.anonymize-page .form-control-lg,.anonymize-page select.form-control,.dashboard-page .dashboard-quota>summary,.dashboard-page .dropdown-toggle,.dashboard-page .filter-btn,.errors-page select,.q-range-btns+.btn{border-color:var(--control-border)!important}.anonymize-page #sourceUrl-landing:focus,.anonymize-page #sourceUrl:focus{border-color:var(--accent)!important}.errors-page .seg-tabs{height:36px!important;align-items:center}.errors-page .seg-tabs button{height:30px!important}.admin-page .admin-toolbar .btn,.admin-page .btn-export,.admin-page a.btn[href*=export],.admin-page button[title*=xport]{height:36px!important;min-height:36px!important}@media (max-width:767px){.paper-table .cell-views{gap:0!important}}@media (min-width:1200px){.anonymize-workspace .anonymize-split,.anonymize-workspace .anonymize-topbar-inner{max-width:1048px;margin-left:auto!important;margin-right:auto!important}.anonymize-workspace .anonymize-topbar{padding-left:0!important;padding-right:0!important}.anonymize-workspace .anonymize-form-col{padding-left:0!important}}@media (max-width:767px){.anonymize-form-col .anonymize-submit-bar{margin:8px 0 0!important;padding:10px 0 calc(10px + env(safe-area-inset-bottom))!important}.anonymize-form-col .anonymize-submit-bar .btn{border-radius:10px!important}}.img-unavailable{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px dashed var(--control-border);border-radius:8px;font-size:12.5px;color:var(--ink-soft);background:var(--hover-bg-color)}.anonymize-form-col .draft-status{color:var(--ink-soft)!important}.errors-page .errors-toolbar .form-control,.errors-page .errors-toolbar select,.errors-page form select{border-color:var(--control-border)!important}@media (min-width:1200px){.anonymize-workspace .anonymize-form-col,.anonymize-workspace .anonymize-form-col .paper-section,.anonymize-workspace .anonymize-form-col form{padding-left:0!important}.anonymize-workspace .anonymize-form-col{background:0 0!important;padding-right:24px!important}.anonymize-workspace .anonymize-form-col .anonymize-submit-bar,.anonymize-workspace .anonymize-form-col .anonymize-submit-bar::before{background:var(--paper-bg,var(--background))!important}.anonymize-workspace .anonymize-form-col .anonymize-submit-bar::before{background:linear-gradient(to bottom,transparent,var(--paper-bg,#faf9f6))!important}}@media (max-width:767px){.anonymize-page .form-row>.form-group,.anonymize-page .form-row>[class*=col] .form-group{margin-bottom:14px!important}.anonymize-page .form-row>[class*=col]{margin-bottom:0!important;padding-bottom:0!important}}@media (min-width:1200px){.anonymize-workspace .anonymize-form-col .anonymize-submit-bar{background:#faf9f6!important}.anonymize-workspace .anonymize-form-col .anonymize-submit-bar::before{background:linear-gradient(to bottom,rgba(250,249,246,0),#faf9f6)!important}.dark-mode .anonymize-workspace .anonymize-form-col .anonymize-submit-bar{background:#161412!important}.dark-mode .anonymize-workspace .anonymize-form-col .anonymize-submit-bar::before{background:linear-gradient(to bottom,rgba(22,20,18,0),#161412)!important}}:root{--slot-num:#0F4F4A}.dark-mode{--slot-num:#A8E6DD;--slot-bg:#3F3A33}.markdown-body li mark.redact-chip,.markdown-body p mark.redact-chip,.markdown-body td mark.redact-chip,span.redact{display:inline-block!important;height:1.08em!important;line-height:1.08em!important;vertical-align:-.17em!important;min-width:2.5em!important;text-align:right!important;padding:0 .34em!important}.breadcrumb .redact-slot i,.files .redact-slot i,.markdown-body li mark.redact-chip i,.markdown-body p mark.redact-chip i,.markdown-body td mark.redact-chip i,span.redact i{font-size:max(10.5px,.72em)!important;line-height:inherit!important;vertical-align:top!important;font-weight:700!important}.markdown-body h1 mark.redact-chip i,.markdown-body h2 mark.redact-chip i,.markdown-body h3 mark.redact-chip i{font-size:.62em!important}.ace_editor .ace_text-layer .ace_redacted::after{font-size:10.5px!important}.demo-output .redact-chip{font-size:11px!important}.errors-page .bar-info,.errors-page .vol-info,.errors-page [class*=seg-info]{opacity:.45}.connections-grid{align-items:stretch!important}.connections-grid>section{display:flex;flex-direction:column}.connections-grid>section .connection-installations{margin-top:auto!important;border-top:1px solid var(--border-color);border-bottom:0!important}.navbar .nav-link.active,.site-nav .nav-link.active,header .nav-link.active{color:var(--color)!important;box-shadow:inset 0 -2px 0 var(--accent)!important;border-bottom-color:transparent!important}@media (max-width:767px){.anonymize-topbar .paper-crumbs{display:block!important;margin-bottom:4px;font-size:13px}}.anonymize-form-col .draft-discard{background:0 0;border:0;padding:0 0 0 6px;font-size:12.5px;font-weight:500;color:var(--color)!important;text-decoration:underline;text-underline-offset:3px}.anonymize-form-col .draft-discard:hover{color:#b42318!important}@media (max-width:767px){.mobile-sub b{display:inline-flex!important;align-items:center;gap:5px;font-weight:400!important;color:inherit!important}.mobile-sub b::before{content:""!important;display:inline-block!important;width:12px;height:7px;border-radius:2px;background:var(--slot-bg)!important}.mobile-sub span:has(+b)::after{content:"·";margin:0 6px;opacity:.7}}.demo-output .redact-chip,span.redact{display:inline-block!important;height:1.15em!important;line-height:1.15em!important;vertical-align:-.2em!important;text-align:right!important}.demo-output .redact-chip{font-size:11px!important;min-width:3.4em!important}.ace-chrome .ace_gutter-cell{color:#5a554d!important}.dark-mode .ace_editor .ace_gutter-cell{color:#a39c91!important}.files .file.active>a{background:#e2ded6!important}@media (min-width:1200px){.reading-layout{grid-template-columns:minmax(0,700px) 176px!important;gap:44px!important}}@media (hover:none){.anonymize-page .repo-access-switch button:not([aria-pressed=true]):hover{color:var(--ink-soft)!important;text-decoration:none!important}}.connections-grid>section .connection-installations{margin-top:16px!important}.dashboard-page .dashboard-quota .quota-summary-ring{display:none!important}.dashboard-page .dashboard-quota>summary::before{content:"";width:28px;height:4px;border-radius:2px;background:linear-gradient(to right,var(--accent) var(--quota-pct,5%),var(--border-color) 0);flex:0 0 28px}.paper-table-dashboard .row-open{margin-right:2px}@media (max-width:767px){.paper-table-dashboard .cell-actions>.row-open{display:none!important}}.dashboard-page .dashboard-quota>summary::before{width:32px;height:5px;flex-basis:32px;background:linear-gradient(to right,var(--accent) 0 max(3px,var(--quota-pct,5%)),#d9d3c8 0)!important}.dark-mode .dashboard-page .dashboard-quota>summary::before{background:linear-gradient(to right,#7cc7be 0 max(3px,var(--quota-pct,5%)),#3a352f 0)!important}@media (min-width:1200px){.reading-layout{grid-template-columns:minmax(0,680px) 176px!important;gap:44px!important}.md-find-bar{padding-left:max(20px,calc((100% - 900px)/ 2))!important}}.breadcrumb .redact-slot i,.files .redact-slot i,.markdown-body li mark.redact-chip i,.markdown-body p mark.redact-chip i,.markdown-body td mark.redact-chip i,span.redact i{font-size:max(11px,.8em)!important;letter-spacing:.01em}.files .file.active>a{background:#ebe7e0!important}.files .file.active>a .redact-slot{background:#d6cec0!important}.demo-output .redact-chip{font-size:12px!important;height:1.3em!important;line-height:1.3em!important;min-width:3em!important;vertical-align:-.28em!important;padding:0 .4em!important}.paper-table-dashboard .cell-actions{gap:4px!important}.paper-table-dashboard .cell-actions>.copy-url{margin-right:6px!important}.paper-table-dashboard .btn-icon-dots,.paper-table-dashboard .row-edit{width:32px!important;height:32px!important;display:inline-flex!important;align-items:center;justify-content:center;border-radius:8px}.paper-table-dashboard .btn-icon-dots:hover,.paper-table-dashboard .row-edit:hover{background:var(--hover-bg-color)!important}.anonymize-page #commit{text-overflow:ellipsis}@media (max-width:767px){.anonymize-page .form-grid-2{row-gap:0!important;gap:0!important}.anonymize-page .form-grid-2>.form-group{margin-bottom:16px!important}}.connections-grid>section .connection-installations{border-top:0!important;padding-top:0!important}.vb-help{position:relative;display:inline-flex}.vb-help-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:0;border-radius:8px;background:0 0;color:var(--ink-soft);font:500 13px var(--font-sans,Inter,sans-serif);cursor:pointer}.vb-help-btn:hover,.vb-help-btn[aria-expanded=true]{background:var(--hover-bg-color);color:var(--color)}.vb-help-menu{position:absolute;top:calc(100% + 8px)!important;right:0;left:auto;min-width:250px;z-index:50}.vb-help-menu a{display:flex;gap:10px;align-items:flex-start}.vb-help-menu small{display:block;font-size:12px;color:var(--ink-soft);font-weight:400;margin-top:1px}@media (max-width:767px){.viewer-bar .vb-help{display:none!important}}.paper-table-dashboard .paper-table-head .col-link{padding-left:0!important;margin-left:-16px}@media (min-width:768px){.anonymize-workspace .anonymize-topbar{padding-top:12px!important;padding-bottom:12px!important}.anonymize-workspace .anonymize-topbar .paper-crumbs{margin-bottom:2px!important}.anonymize-workspace .anonymize-topbar .paper-page-title,.anonymize-workspace .anonymize-topbar h1{font-size:26px!important;margin:0!important}}#sourceUrl-landing::placeholder,#terms::placeholder,.form-control::placeholder,input::placeholder,textarea::placeholder{color:#a39b8e!important;opacity:1!important}.dark-mode .form-control::placeholder,.dark-mode input::placeholder,.dark-mode textarea::placeholder{color:#6f695f!important}.q-dot-active,.q-state-filters .q-legend-active,.q-state-filters [class*=active]>.q-dot,.q-state-toggle .q-dot-active{background:var(--accent)!important}@media (max-width:767px){.mobile-sub b{font-size:inherit!important;gap:6px!important;margin-left:0!important;padding-left:0!important}.mobile-sub span:has(+b)::after{margin:0 6px 0 6px!important}.mobile-sub b::before{width:14px!important;height:8px!important;background:#d6cec0!important}.file-card-head{min-height:56px!important}}.markdown-body h1 mark.redact-chip i,.markdown-body h2 mark.redact-chip i{font-weight:600!important;font-size:.58em!important}.dark-mode .markdown-body h1 mark.redact-chip,.dark-mode .markdown-body h2 mark.redact-chip,.markdown-body h1 mark.redact-chip,.markdown-body h2 mark.redact-chip{min-width:1.6em!important;padding:0 .18em!important}.readme-toc a.lvl-3{font-size:12.5px!important;color:#6e685f!important}.dark-mode .readme-toc a.lvl-3{color:#9c958a!important}.file-card-head .file-card-tools,.file-card-head .view-tools{margin-right:10px!important;padding-right:10px!important;border-right:1px solid var(--border-color)!important}.files .file.active>a{background:#e5e0d8!important}.files .file.active>a .redact-slot{background:#cec5b5!important}.markdown-body li mark.redact-chip,.markdown-body p mark.redact-chip,.markdown-body td mark.redact-chip{vertical-align:-.1em!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:24px!important;transition:opacity .15s}.file-card.at-right-edge .file-card-body::after{opacity:0!important}}.hero-mock .is-active,.hero-mock [class*=active]{position:relative}.hero-mock .is-active::before{left:0!important}.anonymize-form-col form{padding-bottom:36px!important}.connections-grid>section p{font-size:13.5px!important;line-height:1.55!important}.connections-grid>section>.btn,.connections-grid>section>a.btn{width:auto!important;align-self:flex-start}@media (max-width:767px){.paper-table-dashboard .cell-actions>.dropdown,.paper-table-dashboard .cell-actions>.dropdown>.btn-icon-dots,.paper-table-dashboard .cell-actions>.row-edit{width:40px!important;height:40px!important}.dashboard-page .dashboard-row-meta .cell-expires,.dashboard-page .dashboard-row-meta .cell-status,.dashboard-page .dashboard-row-meta .cell-views{padding:0!important;margin:0!important}.dashboard-page .dashboard-row-meta .cell-expires::before,.dashboard-page .dashboard-row-meta .cell-views::before{margin:0 7px!important;width:auto!important}.dashboard-page .dashboard-row-meta .status-line{padding:0!important;margin:0!important}.dashboard-page .dashboard-row-meta .cell-expires .cell-label{margin-right:4px!important}}.connection-installations,.connection-installations li{border:0!important;padding-bottom:0!important;margin-bottom:0!important}.connection-installations li{padding-top:0!important}.connections-page .connection-refresh{margin-left:0!important}.anonymize-form-col .anonymize-submit-bar::before{display:none!important}.anonymize-form-col .anonymize-submit-bar{border-top:1px solid var(--border-color)!important;box-shadow:0 -6px 12px -10px rgba(40,32,24,.18)}.anonymize-form-col form{padding-bottom:24px!important}.img-unavailable{display:flex!important;align-items:center;justify-content:center;gap:8px;width:100%;min-height:72px;border:1px solid var(--border-color)!important;border-style:solid!important;background:var(--hover-bg-color);font:500 12.5px var(--font-sans,Inter,sans-serif)!important;color:var(--ink-soft)}.img-unavailable::before{content:"";width:16px;height:13px;border:1.5px solid currentColor;border-radius:2px;opacity:.7;background:linear-gradient(135deg,transparent 55%,currentColor 55% 62%,transparent 62%)}.admin-summary .summary-pill:not(.active) .count{text-decoration:none!important;opacity:1!important;color:var(--ink-soft)!important}.admin-summary .summary-pill:not(.active)::before{background:#8a8680!important}.dashboard-page .dashboard-quota>summary::before{width:44px!important;flex-basis:44px!important}@media (min-width:1200px){.reading-layout{grid-template-columns:minmax(0,664px) 176px!important;gap:40px!important}.md-find-bar{padding-left:max(20px,calc((100% - 880px)/ 2))!important}}.file-card-head .tb-file{margin-left:8px!important;position:relative}.file-card-head .tb-file::before{content:"";position:absolute;left:-9px;top:6px;bottom:6px;width:1px;background:var(--border-color)}.tree-search-input::placeholder{color:#8a8378!important}.tree-search-kbd{color:#6e685f!important;border:1px solid var(--border-color)!important;background:var(--paper-card)!important}@media (max-width:767px){.mobile-sub{gap:0!important;column-gap:0!important}.mobile-sub span:has(+b)::after,.mobile-sub>span+span::before{margin:0 6px!important}.mobile-sub b::before{margin:0!important}.file-card-head{min-height:52px!important;padding-top:6px!important;padding-bottom:6px!important}}.errors-page .dot-info,.errors-page .seg-info{background:#cfc9bf!important;opacity:1!important}.dark-mode .errors-page .dot-info,.dark-mode .errors-page .seg-info{background:#4a453e!important}.errors-page .dot-error,.errors-page .seg-error{background:#b42318!important}.errors-page .dot-warn,.errors-page .seg-warn{background:#b7791f!important}.dark-mode .leftCol,.dark-mode .viewer-bar{background:#221f1b!important}.paper-table-dashboard .copy-url{box-shadow:inset 0 0 0 1px var(--control-border,#cfc7b9)!important;background:var(--paper-card)!important}.paper-table-dashboard .copy-url .ui-icon,.paper-table-dashboard .copy-url svg{width:15px!important;height:15px!important;color:var(--color)!important;opacity:.75}.paper-table-dashboard .copy-url:hover{background:var(--hover-bg-color)!important}@media (min-width:1200px){.anonymize-workspace .anonymize-preview-col{padding-right:0!important}}.anonymize-submit-bar .draft-status{display:block;margin:0 0 8px!important;font-size:12.5px!important}@media (max-width:767px){.paper-table-dashboard .cell-actions>.row-open{display:inline-flex!important;grid-area:auto}.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(0,1fr) auto auto auto!important;grid-template-areas:"name open edit more" "meta meta meta meta" "link link link link"!important}.paper-table-dashboard .cell-actions>.row-open{grid-area:open;width:40px!important;height:40px!important;align-self:start;margin-top:-4px}}.overview-page :is(.ov-kpi,.ov-card,.kpi-card):has(.ov-meter.crit){border-color:rgba(180,35,24,.45)!important;box-shadow:inset 3px 0 0 #b42318!important}.overview-page :is(.ov-kpi,.ov-card,.kpi-card):has(.ov-meter.warn):not(:has(.ov-meter.crit)){border-color:rgba(183,121,31,.45)!important;box-shadow:inset 3px 0 0 #b7791f!important}.dark-mode{--slot-bg:#46403A}.faq-section .panel-default .panel-title a:after{transform:rotate(45deg)!important}.faq-section .panel-default .panel-title a[aria-expanded=true]:after{transform:rotate(-135deg)!important}.overview-page .ov-kpi-card:has(.ov-meter.crit){border-color:rgba(180,35,24,.45)!important;box-shadow:inset 3px 0 0 #b42318!important}.overview-page .ov-kpi-card:has(.ov-meter.warn):not(:has(.ov-meter.crit)){border-color:rgba(183,121,31,.45)!important;box-shadow:inset 3px 0 0 #b7791f!important}@media (max-width:767px){.paper-table-dashboard .cell-anon,.paper-table-dashboard .cell-anon a,.paper-table-dashboard .cell-anon strong,.paper-table-dashboard .cell-anon>*{min-width:0}.paper-table-dashboard .cell-anon .anon-name,.paper-table-dashboard .cell-anon .anon-title,.paper-table-dashboard .cell-anon .anon-title>a{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;word-break:normal!important;overflow-wrap:normal!important;display:block}}.admin-page .summary-pill.ok::before,.users-page .summary-pill.ok::before{background:var(--status-ready,#2f7d4f)!important}.admin-page .summary-pill.error::before{background:var(--status-error,#b42318)!important}@media (max-width:767px){.paper-table-dashboard .cell-actions>.row-open{display:none!important}.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(0,1fr) auto auto!important;grid-template-areas:"name edit more" "meta meta meta" "link link link"!important}.paper-table-dashboard .cell-anon .anon-title,.paper-table-dashboard .cell-anon .anon-title>a{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important}}.ace-chrome .ace_keyword,.ace-chrome .ace_storage,.ace-chrome .ace_storage.ace_type{color:#7a3e6b!important}.dark-mode .ace_editor .ace_keyword,.dark-mode .ace_editor .ace_storage{color:#d3a3c6!important}.dark-mode{--slot-bg:#4A443D;--slot-num:#9FE0D6}.faq-hero h1,.faq-page h1,.paper-page-title{text-wrap:balance}@media (min-width:1200px){.readme-toc{margin-top:-18px!important}}@media (min-width:768px){.leftCol-search{height:52px!important;min-height:52px!important;box-sizing:border-box;display:flex!important;align-items:center;padding-top:0!important;padding-bottom:0!important;border-bottom:1px solid var(--border-color)!important;margin-bottom:6px!important}}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:32px!important;background:linear-gradient(to right,rgba(255,255,255,0),#fff 75%)!important;border-right:2px solid rgba(40,32,24,.14)}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(20,19,17,0),#141311 75%)!important;border-right-color:rgba(255,255,255,.1)}}.anonymize-form-col form{padding-bottom:0!important}.anonymize-form-col .anonymize-submit-bar{margin-bottom:0!important}.errors-page .kpi-filter{cursor:pointer;transition:border-color .12s,box-shadow .12s}.errors-page .kpi-filter:hover{border-color:var(--control-border,#cfc7b9)!important}.errors-page .kpi-filter.is-selected{border-color:var(--accent)!important;box-shadow:inset 0 0 0 1px var(--accent)!important}.errors-page .kpi-filter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.readme-toc a:not(.is-active){color:#4f4a43!important}.readme-toc a.lvl-3:not(.is-active){color:#625c53!important}.ace_search .ace_search_field:focus,.md-find-input:focus{box-shadow:0 0 0 2px var(--accent-soft)!important;border-color:var(--accent)!important}@media (max-width:767px){.file-card-head{align-items:flex-start!important}.file-card-head .btn-sidebar-toggle,.file-card-head .mobile-files-toggle,.file-card-head>button:first-child{margin-top:2px!important}}@media (max-width:767px){.dashboard-page #search,.dashboard-page .btn-filters,.dashboard-page .dashboard-heading-actions .btn,.dashboard-page .dashboard-quota>summary,.dashboard-page .filters-toggle{height:40px!important;min-height:40px!important}}.profile-page .quota-tile:has(.quota-unlimited)::after,.quota-panel .quota-item:has(.quota-unlimited)::after{content:"No limit on file count";display:block;font-size:12.5px;color:var(--ink-soft);margin-top:6px}.admin-page .detail-value.is-empty,.admin-page .is-unsynced{color:#9a9389!important;font-style:normal!important}@media (min-width:768px){.anonymize-form-col .anonymize-submit-bar{display:flex!important;align-items:center;gap:16px}.anonymize-submit-bar .draft-status{margin:0!important;flex:0 1 auto;max-width:46%;line-height:1.35}.anonymize-submit-bar .btn-ink{flex:1 1 auto}}.anonymize-landing .repo-access-note>span:has(.ui-icon){display:none!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{box-shadow:inset -8px 0 8px -8px rgba(40,32,24,.35)!important;border-right:0!important}}.dark-mode .leftCol{background:#1c1a17!important}.dark-mode .viewer-bar{background:#181614!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:44px!important;background:linear-gradient(to right,rgba(250,249,246,0) 0,rgba(250,249,246,.92) 55%,rgba(226,220,210,.95) 100%)!important;box-shadow:inset -1px 0 0 rgba(40,32,24,.18)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(20,19,17,0) 0,rgba(20,19,17,.92) 55%,rgba(44,40,35,.95) 100%)!important;box-shadow:inset -1px 0 0 rgba(255,255,255,.14)!important}}@media (max-width:767px){.file-card-head{min-height:48px!important;align-items:center!important;padding-top:4px!important;padding-bottom:4px!important}.file-card-head .file-card-path{display:flex!important;flex-direction:row!important;align-items:center!important;flex-wrap:nowrap!important;gap:8px!important;min-width:0}.file-card-head .file-card-path .breadcrumb{min-width:0;flex:0 1 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mobile-sub{margin:0!important;flex:0 0 auto;white-space:nowrap}.mobile-sub>span{display:none!important}.mobile-sub span:has(+b)::after{content:none!important}.mobile-sub b{font-size:12.5px!important}}.paper-features,.paper-qa,.paper-section-head,.paper-stats{margin-top:88px!important}.paper-hero+.paper-stats{margin-top:40px!important}@media (min-width:1100px){.paper-faq-body{grid-template-columns:180px minmax(0,1fr) 220px!important;gap:48px!important}.paper-faq-help{display:block}}.paper-faq-help{display:none}.paper-faq-help-card{position:sticky;top:96px;border:1px solid var(--border-color);border-radius:12px;background:var(--paper-card);padding:18px}.paper-faq-help-card strong{display:block;font-size:14px;margin-bottom:6px}.paper-faq-help-card p{font-size:13px;line-height:1.5;color:var(--ink-soft);margin:0 0 12px}.anonymize-submit-bar .draft-status{white-space:nowrap;flex:0 0 auto!important;max-width:none!important}.q-throughput .q-range-btns{float:right;margin:-4px 0 0 12px}.admin-page .paper-table{border:1px solid var(--border-color)!important;border-radius:12px!important;overflow:hidden;background:var(--paper-card)}.dark-mode{--ink-soft:#ADA699;--ink-muted:#8C8579}.hero-mock-count::before{background:var(--slot-bg)!important}@media (min-width:1100px){.paper-faq-help{display:block!important}}.q-throughput{position:relative}.q-throughput .q-range-btns{position:absolute!important;top:12px;right:16px;float:none!important;margin:0!important;width:auto!important;display:inline-flex!important;z-index:2}.anonymize-submit-bar .draft-status{order:-1}.dark-mode .readme-toc a:not(.is-active){color:#b8b1a6!important}.dark-mode .readme-toc a.lvl-3:not(.is-active){color:#a39c91!important}.dark-mode .files .file.active>a{background:rgba(255,255,255,.13)!important}.files .file.active>a{background:#ebe7e0!important}.files .file.active>a .redact-slot{background:var(--slot-bg)!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:28px!important;background:linear-gradient(to right,rgba(250,249,246,0) 0,rgba(250,249,246,.85) 100%)!important;box-shadow:inset -1px 0 0 rgba(40,32,24,.16)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(20,19,17,0) 0,rgba(20,19,17,.85) 100%)!important;box-shadow:inset -1px 0 0 rgba(255,255,255,.12)!important}}@media (min-width:1100px){.readme-toc{margin-top:-54px!important;top:84px!important}}.dark-mode .leftCol,.dark-mode .leftCol .leftCol-search{background:#1f1d1a!important}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:32px!important;background:linear-gradient(to right,rgba(250,249,246,0) 0,rgba(250,249,246,.75) 45%,rgba(236,232,225,.98) 100%)!important;box-shadow:inset -1px 0 0 rgba(40,32,24,.2)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(20,19,17,0) 0,rgba(20,19,17,.75) 45%,rgba(38,35,31,.98) 100%)!important;box-shadow:inset -1px 0 0 rgba(255,255,255,.16)!important}}@media (max-width:991px){.navbar .nav-signin-m{display:inline-flex;align-items:center;gap:6px;background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important;padding:0 12px!important;font-weight:500}.dark-mode .navbar .nav-signin-m{background:#237a71!important;border-color:#237a71!important;color:#fff!important}.navbar .nav-signin-m .fa-github{font-size:15px}}.paper-faq-help-card p{font-size:14px!important;line-height:1.55!important}@media (min-width:1100px){.paper-hero{grid-template-columns:minmax(0,1fr) 500px!important;column-gap:48px!important}}@media (max-width:767px){.viewer-bar .vb-right{gap:8px!important}.viewer-bar .vb-right>.vb-icon,.viewer-bar .vb-right>.vb-support{margin:0!important}}@media (min-width:1100px){.paper-reassure{flex-wrap:wrap!important;column-gap:18px!important;row-gap:6px!important;max-width:100%}.paper-reassure li{white-space:nowrap}}@media (min-width:1100px){.paper-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;column-gap:20px!important}.paper-section-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;column-gap:20px!important}.paper-section-head>p{max-width:500px}}.dark-mode{--slot-bg:#3D3833;--slot-num:#8FDACD}@media (min-width:768px){.explorer-page>.leftCol .leftCol-search,.leftCol-search{height:53px!important;padding:0 12px!important;display:flex!important;align-items:center!important;box-sizing:border-box}.leftCol-search .tree-search-box{height:36px!important;padding-top:0!important;padding-bottom:0!important;align-items:center}.leftCol-search .search-zip{height:36px!important;width:36px!important}}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:36px!important;background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(250,249,246,.9) 55%,#ece7df 100%)!important;box-shadow:inset -2px 0 0 rgba(40,32,24,.18)!important}.dark-mode .file-card.is-code.no-wrap .file-card-body::after{background:linear-gradient(to right,rgba(20,19,17,0) 0,rgba(20,19,17,.9) 55%,#2a2622 100%)!important;box-shadow:inset -2px 0 0 rgba(255,255,255,.18)!important}}@media (min-width:1100px){.paper-faq-help-card{margin-top:7px}}.hero-mock-count::before,.meta-redact::before,.mobile-sub b::before{background:#d9d1c3!important;box-shadow:inset 0 0 0 1px rgba(40,32,24,.12)!important}.dark-mode .hero-mock-count::before,.dark-mode .meta-redact::before,.dark-mode .mobile-sub b::before{background:#4a443d!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)!important}.viewer-bar .vb-signin,.viewer-bar .vb-signin:hover{background:var(--accent)!important;color:#fff!important;box-shadow:none!important;border:0!important}.viewer-bar .vb-signin:hover{filter:brightness(.94)}.dark-mode .viewer-bar .vb-signin,.dark-mode .viewer-bar .vb-signin:hover{background:#237a71!important;color:#fff!important}@media (min-width:992px){.paper-features,.paper-qa,.paper-section-head,.paper-stats{margin-top:72px!important}.demo{margin-bottom:0!important}.paper-qa{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;column-gap:20px!important}}.ace-chrome .ace_gutter-cell{color:#57524a!important}.dark-mode .ace_editor .ace_gutter-cell{color:#ada69b!important}.readme-toc a.lvl-3:not(.is-active){color:#57524a!important}.dark-mode .readme-toc a.lvl-3:not(.is-active){color:#ada69b!important}.paper-stat-delta,.paper-stats small{color:#57524a!important}.nav-heart-m,.nav-heart-m:focus,.nav-heart-m:hover{background:0 0!important;box-shadow:none!important;border:0!important}@media (min-width:992px){.paper-section-head+.paper-features{margin-top:32px!important}}@media (min-width:1100px){.paper-features{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;column-gap:20px!important}.paper-features>:first-child{padding-right:28px}}@media (min-width:1100px){.fm-input-sm{width:118px!important}.fm-row{gap:12px!important}.fm-toggles{flex-wrap:nowrap!important}}@media (min-width:768px){.viewer-bar .vb-right{gap:8px!important}.viewer-bar .vb-right>*{margin:0!important}.viewer-bar .vb-help-btn,.viewer-bar .vb-icon,.viewer-bar .vb-signin,.viewer-bar .vb-support{height:32px!important;min-height:32px!important;box-sizing:border-box}.viewer-bar .vb-icon{width:32px!important}.viewer-bar .vb-snapshot{margin-right:8px!important}}.dark-mode .hero-mock{background:#221f1c!important;box-shadow:0 0 0 1px rgba(255,255,255,.1),0 18px 40px -18px rgba(0,0,0,.7)!important}@media (min-width:768px){.viewer-bar .vb-right .vb-icon{width:32px!important;height:32px!important}}.pane-url .meta-redact{display:inline-flex;align-items:center;gap:6px;font-family:inherit}@media (min-width:768px){.file-card-head .tb-file,.tb-file{margin-left:16px!important}}.demo-panes .pane-header{height:40px!important;min-height:40px!important;box-sizing:border-box;display:flex;align-items:center;padding-top:0!important;padding-bottom:0!important}.files .file.active>a .tree-name{font-weight:500;color:var(--color)}.files .file.active>a{background:#e8e3db!important}.viewer-bar .vb-snapshot{font-size:12px!important;color:var(--ink-soft)!important;gap:5px!important}.dark-mode .files .file.active>a{background:rgba(255,255,255,.08)!important}.demo-terms .label,.demo-terms label,.fm-label,.pane-label{letter-spacing:0!important}@media (min-width:992px){.navbar .nav-link:not(.btn-signin){font-size:14px!important}}.paper-faq-toc a.active{color:var(--accent)!important;font-weight:500}.dark-mode .paper-faq-toc a.active{color:#7fcfc2!important}.paper-features .paper-feature.is-on .paper-feature-tab::after,.paper-features .paper-feature:not(.is-on) .paper-feature-tab::after{border-color:#57524a!important}.dark-mode .paper-features .paper-feature .paper-feature-tab::after{border-color:#ada69b!important}.paper-feature:not(.is-on) .paper-feature-tab:hover .paper-feature-title{color:var(--accent)}.dark-mode .ace_redacted,.dark-mode .redact-chip,.dark-mode .redact-slot{box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)!important}@media (min-width:768px){.file-card-meta{font-size:13px!important}}@media (min-width:768px){.file-card-head .btn-goto{order:1}.file-card-head .btn-toggle{order:2}.file-card-head .btn-find{order:3}.file-card-head .tb-file{order:4}.file-card-head .tb-copy-m,.file-card-head .tb-more-btn{order:5}}.leftCol-search .search-zip{width:auto!important;padding:0 9px!important;gap:4px;display:inline-flex!important;align-items:center;justify-content:center}.search-zip-label{font-size:11px;font-weight:600;letter-spacing:.02em}.navbar .nav-support,.navbar .nav-support-inline{font-weight:400!important;color:var(--ink-soft)!important}.files .file.active>a::before{left:0!important}.dark-mode .hero-mock{border-color:#3a3631!important}.dark-mode .hero-mock .hm-side,.dark-mode .hero-mock-side,.dark-mode .hero-mock-tree{background:#1e1c19!important}.paper-faq-lede{font-size:18px!important;line-height:1.55!important}@media (min-width:768px){.file-card-actions>.btn-ghost.btn-icon-only,.file-card-actions>.btn-toggle{height:32px!important;width:32px!important;min-height:32px!important;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center}}.tree-search-input::placeholder{color:#6e685f!important;opacity:1}.dark-mode .tree-search-input::placeholder{color:#9c958a!important}.tree-search-kbd{color:#57524a!important}.dark-mode .tree-search-kbd{color:#ada69b!important}@media (min-width:1100px){.paper-footer-inner{grid-template-columns:calc(50% - 10px) repeat(3,minmax(0,1fr))!important;column-gap:20px!important}.paper-footer-brand{max-width:420px}}.ace_search_counter,.find-count,.md-find-count{font-variant-numeric:tabular-nums}.demo-panes .pane-label,.demo-panes .pane-url{font-size:13px!important}.dark-mode .files .file.active>a{background:rgba(255,255,255,.1)!important}.demo-output .redact-chip{vertical-align:-.16em!important}.hero-mock .redact,span.redact{vertical-align:-.12em!important}.tb-seg-icon .ui-icon{width:16px!important;height:16px!important}.files .file.active>a{background:#e3ddd2!important}.files .file.active>a .redact-slot{background:#d0c7b7!important}.file-card-actions>.btn-find.is-on{box-shadow:inset 0 0 0 1px rgba(31,106,100,.55)!important;border-color:transparent!important}.demo-panes>:last-child .pane-header{background:#f3efe8!important}.dark-mode .demo-panes>:last-child .pane-header{background:#1f1c19!important}.demo-terms input:focus,.demo-terms textarea:focus{outline:0!important;border-color:var(--accent)!important;box-shadow:0 0 0 3px rgba(31,106,100,.18)!important}.markdown-body>h1:first-child{margin-top:8px!important;margin-bottom:24px!important}.tb-menu-label{padding:8px 14px 4px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#57524a}.dark-mode .tb-menu-label{color:#ada69b}.tb-menu .tb-menu-toc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px;display:block;text-align:left}.tb-menu .tb-menu-toc.lvl-3{padding-left:28px!important;color:#57524a}.dark-mode .tb-menu .tb-menu-toc.lvl-3{color:#ada69b}.files .file.active>a{background:#ece8e1!important}.files .file.active>a .redact-slot{background:var(--slot-bg)!important}.tb-menu{max-height:calc(100dvh - 120px);overflow-y:auto;overscroll-behavior:contain}.tb-menu .tb-menu-toc.is-active{color:var(--accent)!important;font-weight:500}.dark-mode .tb-menu .tb-menu-toc.is-active{color:#7fcfc2!important}.markdown-body>h1:first-child{margin-bottom:18px!important}@media (max-width:767px){.markdown-body>h1:first-child{margin-top:0!important;margin-bottom:14px!important}}.files .file.active>a{background:#e8e5dd!important}.tree-toggle::after{border-color:#7a746a!important}.dark-mode .tree-toggle::after{border-color:#8f887d!important}.dark-mode .hero-mock{box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 0 0 1px rgba(255,255,255,.1),0 18px 40px -18px rgba(0,0,0,.7)!important;background:#24211d!important}.paper-faq-lede{text-wrap:balance;max-width:640px}.pane-edit-hint{font-weight:400;color:#6e685f}.dark-mode .pane-edit-hint{color:#9c958a}.demo-panes>:first-child:focus-within,.demo-panes>:first-child:hover{border-color:#cfc7b9!important}.tb-menu .tb-menu-toc{white-space:normal!important;font-size:14px!important;line-height:1.35;padding-top:7px!important;padding-bottom:7px!important;max-width:none!important}.tb-menu .tb-menu-toc.lvl-3{padding-left:24px!important}.tb-menu-note{font-size:13px!important;color:#6e685f!important}.dark-mode .tb-menu-note{color:#9c958a!important}@media (max-width:767px){.tb-more:has(.tb-menu)::before{content:"";position:fixed;inset:0;background:rgba(26,24,21,.22);z-index:40}.tb-menu{z-index:41!important}}.paper-faq-help-card{border-radius:12px!important}.nav-theme-m{display:none}@media (max-width:991px){.nav-theme-m{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;background:0 0;color:var(--ink-soft);padding:0;margin-left:2px}.nav-theme-m .ui-icon{width:18px;height:18px}.navbar .nav-signin-m{height:32px!important;margin-left:6px!important}.nav-heart-m+.nav-theme-m{margin-left:2px}}@media (max-width:767px){.viewer-bar .vb-signin{height:32px!important}}.tb-menu .tb-menu-toc.lvl-2{padding-left:42px!important}.tb-menu .tb-menu-toc.lvl-3{padding-left:58px!important}.tb-menu-label{padding-left:42px!important}@media (max-width:991px){.navbar-collapse .nav-item:has(>.nav-icon){display:none!important}}.file-card-head .tb-menu>button.tb-menu-toc,.tb-menu>button.tb-menu-toc{font-size:14px!important;min-height:36px!important;padding-top:8px!important;padding-bottom:8px!important;line-height:1.35!important;height:auto!important}.tb-menu>.tb-menu-label{padding-left:40px!important}.tb-menu>button.tb-menu-toc.lvl-2{padding-left:40px!important}.tb-menu>button.tb-menu-toc.lvl-3{padding-left:56px!important}.tb-toc-m{display:none;position:relative}@media (max-width:767px){.tb-toc-m{display:inline-flex}.file-card-head .tb-toc-btn{box-shadow:none!important;background:0 0!important;width:36px;height:36px}.tb-toc-m .tb-menu{right:-44px;min-width:260px}.tb-toc-m:has(.tb-menu)::before{content:"";position:fixed;inset:0;background:rgba(26,24,21,.22);z-index:40}}.dark-mode .file-card-actions>.btn-find.is-on,.dark-mode .file-card-actions>.btn-toggle.is-on{box-shadow:inset 0 0 0 1px #7fcfc2!important;color:#7fcfc2!important}.tb-more:has(.tb-menu)::before,.tb-toc-m:has(.tb-menu)::before{pointer-events:none}.tb-toc-menu>.tb-menu-label{padding-left:16px!important}.tb-toc-menu>button.tb-menu-toc.lvl-2{padding-left:16px!important}.tb-toc-menu>button.tb-menu-toc.lvl-3{padding-left:32px!important}@media (max-width:767px){.tb-toc-m .tb-menu{right:-40px;max-width:calc(100vw - 28px)}}.files .tree-icon-file,.files .tree-icon-folder{width:16px!important;min-width:16px;display:inline-flex;justify-content:center}.ace_search .ace_button.checked,.ace_search .ace_button[aria-checked=true],.ace_search .ace_button[checked]{color:var(--accent)!important;box-shadow:inset 0 0 0 1px rgba(31,106,100,.55)!important;background:0 0!important}.dark-mode .ace_search .ace_button.checked,.dark-mode .ace_search .ace_button[aria-checked=true],.dark-mode .ace_search .ace_button[checked]{color:#7fcfc2!important;box-shadow:inset 0 0 0 1px #7fcfc2!important}.file-card-meta .sep{font-size:0!important;display:inline-block;width:0;margin:0 6px!important}@media (max-width:991px){.navbar .nav-heart-m{margin-left:auto!important}.navbar .nav-heart-m+.nav-theme-m{margin-left:4px!important}.navbar .nav-theme-m+.nav-signin-m{margin-left:4px!important}.navbar .navbar-toggler{margin-left:4px!important;margin-right:-6px}}.tb-more:has(.tb-menu)::before,.tb-toc-m:has(.tb-menu)::before{background:rgba(26,24,21,.1)!important}.dark-mode .tb-more:has(.tb-menu)::before,.dark-mode .tb-toc-m:has(.tb-menu)::before{background:rgba(0,0,0,.3)!important}.tb-more:has(.tb-menu)::before,.tb-toc-m:has(.tb-menu)::before{content:none!important}.tb-menu{box-shadow:0 12px 32px -8px rgba(26,24,21,.28),0 0 0 1px rgba(26,24,21,.08)!important}.tb-menu [role=menuitemcheckbox]{position:relative;padding-right:40px!important}.tb-menu [role=menuitemcheckbox][aria-checked=true]::after{content:"";position:absolute;right:18px;top:50%;width:10px;height:5px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:translateY(-70%) rotate(-45deg)}.tb-menu [role=menuitemcheckbox][aria-checked=true] .ui-icon{color:var(--accent)}@media (max-width:767px){.file-card.is-code.no-wrap .file-card-body::after{width:20px!important}}.search-zip-label{font-size:12px!important;font-weight:500!important}.meta-redact::before,.mobile-sub b::before{box-shadow:inset 0 0 0 1px rgba(40,32,24,.22)!important}@media (max-width:767px){.file-card-actions>.tb-toc-m,.file-card-head .tb-toc-m{order:1!important}.file-card-actions>.tb-copy-m,.file-card-head .tb-copy-m{order:2!important}.file-card-actions>.tb-more,.file-card-head .tb-more{order:3!important}.file-card.is-code.no-wrap .file-card-body::after{width:26px!important;background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(250,249,246,.92) 60%,#eae5dc 100%)!important;box-shadow:inset -1px 0 0 rgba(40,32,24,.2)!important}}@media (max-width:767px){.ace_editor .ace_gutter-cell{padding-left:6px!important;padding-right:8px!important}}.files .redact-slot i{font-size:11px!important}.tb-menu-meta{padding-top:0!important;padding-left:42px!important}.pane-url .meta-redact{font-family:var(--font-sans,Inter,system-ui,sans-serif)!important;font-size:12px}@media (max-width:767px){.tb-toc-m .tb-menu{right:-76px!important}}@media (max-width:991px){.navbar .navbar-brand{font-size:18px!important;margin-right:16px!important}}.tb-menu .tb-menu-meta{white-space:nowrap;font-size:12px!important;padding-left:44px!important;padding-bottom:8px!important}.tb-menu .tb-menu-meta{padding-left:38px!important}.paper-cta{margin-top:72px;margin-bottom:72px;padding:40px 0;border-top:1px solid var(--border-color);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:20px;align-items:center}.paper-cta h2{font-family:var(--font-serif);font-size:40px;line-height:1.05;letter-spacing:-.01em;margin:0 0 10px;color:var(--color);font-weight:400}.paper-cta p{margin:0;color:var(--ink-soft);font-size:16px;max-width:440px}.paper-cta-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.paper-cta-actions .btn-hero{display:inline-flex;align-items:center;gap:10px}@media (max-width:991px){.paper-cta{grid-template-columns:1fr;row-gap:20px;margin-top:56px;margin-bottom:40px}.paper-cta h2{font-size:32px}}.tb-menu .tb-menu-meta,.tb-menu-note{color:#57524a!important}.dark-mode .tb-menu .tb-menu-meta,.dark-mode .tb-menu-note{color:#ada69b!important}.paper-cta{margin-bottom:40px!important;padding-bottom:40px!important}.ace_search .ace_search_field{height:32px!important;box-sizing:border-box;border:1px solid var(--control-border,#cfc7b9)!important;box-shadow:none!important}.ace_search .ace_search_field:focus-visible{border-color:var(--accent)!important;box-shadow:0 0 0 3px rgba(31,106,100,.16)!important}.ace_search .ace_button,.ace_search .ace_searchbtn,.ace_search .ace_searchbtn_close{height:32px!important;min-height:32px!important;box-sizing:border-box;display:inline-flex!important;align-items:center;justify-content:center}.ace_search .ace_searchbtn_close{width:32px!important;border-radius:6px}.ace_search .ace_searchbtn_close:hover{background:var(--hover-bg-color)!important}.file-card-head .tb-toc-btn.is-on{background:0 0!important;box-shadow:inset 0 0 0 1px rgba(31,106,100,.55)!important;color:var(--accent)!important}@media (min-width:1100px){.readme-toc{top:110px!important;margin-top:-28px!important}}@media (min-width:1100px){.paper-faq-help-card{margin-top:2px!important}}@media (min-width:1100px){.readme-toc{top:92px!important}}@media (min-width:1100px){.paper-hero{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;column-gap:40px!important;overflow:visible}.paper-hero-shot{margin-right:calc((100vw - 100%)/ -2 + 0px);margin-right:min(-24px,calc((1076px - 100vw)/ 2))}.paper-hero-shot .paper-frame{border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-right:0!important}.hero-mock{font-size:14px;min-height:420px}.hero-mock-row{font-size:13.5px!important}.hero-mock-doc-bar span{font-size:13px!important}.paper-landing{overflow-x:clip}}@media (min-width:1100px){.hero-mock{min-height:0!important}}.dark-mode .markdown-body pre code mark.redact-chip,.markdown-body pre code mark.redact-chip,pre code mark.redact-chip{display:inline-block!important;box-sizing:border-box!important;overflow:hidden!important;width:var(--slot-ch,6ch)!important;min-width:0!important;height:1.2em!important;margin:0!important;padding:0 .4ch!important;vertical-align:-.24em!important;font-size:inherit!important;line-height:1.2em!important;text-align:right!important}.markdown-body pre code mark.redact-chip i,pre code mark.redact-chip i{font-size:.8em!important;line-height:inherit!important;vertical-align:top!important}@media (max-width:1199px){.reading-layout{grid-template-columns:minmax(0,760px)!important}}@media (max-width:767px){.reading-layout{grid-template-columns:minmax(0,1fr)!important;padding:0 16px!important}}.reading-layout>.file-content.markdown-body{min-width:0!important;max-width:100%!important}.paper-cta{border-top:0!important;padding-top:0!important;padding-bottom:0!important;margin-top:96px!important;margin-bottom:88px!important}.paper-cta+.paper-footer{margin-top:0!important}@media (max-width:991px){.paper-cta{margin-top:72px!important;margin-bottom:64px!important}}@media (max-width:767px){.dashboard-heading-actions .dashboard-quota .quota-panel{left:0!important;right:auto!important;width:calc(100vw - 36px)!important}}@media (max-width:767px){.errors-page .errors-toolbar{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px!important;align-items:center}.errors-page .errors-toolbar .seg-tabs{grid-column:1/-1;display:flex!important;width:100%}.errors-page .errors-toolbar .seg-tabs button{flex:1 1 0}.errors-page .errors-toolbar .search-wrap{grid-column:1/-1;max-width:none!important;min-width:0!important;width:100%}.errors-page .errors-toolbar .select-wrap{display:flex!important;min-width:0}.errors-page .errors-toolbar .select-wrap select{flex:1 1 auto;min-width:0!important;width:100%!important;max-width:none!important}.errors-page .errors-toolbar .autoref{grid-column:1}.errors-page .errors-toolbar>.btn-icon{grid-column:2;justify-self:end}}.overview-page .ov-views{display:inline-flex;gap:2px;padding:3px;margin:4px 0 16px;border-radius:9px;background:var(--paper-sunk,rgba(0,0,0,.05))}.overview-page .ov-views button{border:0;background:0 0;padding:6px 14px;border-radius:7px;font:500 13.5px var(--font-sans);color:var(--ink-soft);cursor:pointer}.overview-page .ov-views button:hover{color:var(--color)}.overview-page .ov-views button.active{background:var(--paper-card,#fff);color:var(--color);box-shadow:0 1px 2px rgba(0,0,0,.08)}.dark-mode .overview-page .ov-views{background:rgba(255,255,255,.06)}.dark-mode .overview-page .ov-views button.active{background:rgba(255,255,255,.1);box-shadow:none}@media (max-width:767px){.overview-page .ov-views{display:flex}.overview-page .ov-views button{flex:1 1 0}.admin-page.overview-page section.ov-chart-row,.admin-page.overview-page section.ov-triple-row{grid-template-columns:minmax(0,1fr)!important}}@media (max-width:991.98px){.navbar .navbar-collapse{padding:8px 10px 12px!important}.navbar .navbar-collapse .navbar-nav{gap:2px!important;margin:0!important;padding:0!important}.navbar .navbar-collapse .nav-item{margin:0!important;padding:0!important;width:100%!important}.navbar .navbar-collapse .nav-link,.navbar .navbar-collapse .user-menu .dropdown-item{display:flex!important;align-items:center!important;gap:12px!important;width:100%!important;min-height:44px;padding:10px 12px!important;margin:0!important;border:0!important;border-radius:8px!important;font:500 15px/1.2 var(--font-sans)!important;color:var(--color)!important;background:0 0!important;box-shadow:none!important;text-decoration:none!important;white-space:normal}.navbar .navbar-collapse .nav-link::after,.navbar .navbar-collapse .nav-link::before{display:none!important}.navbar .navbar-collapse .nav-link:hover,.navbar .navbar-collapse .user-menu .dropdown-item:hover{background:rgba(0,0,0,.04)!important}.navbar .navbar-collapse .nav-link.active{background:rgba(0,0,0,.06)!important;font-weight:600!important}.dark-mode .navbar .navbar-collapse .nav-link:hover,.dark-mode .navbar .navbar-collapse .user-menu .dropdown-item:hover{background:rgba(255,255,255,.05)!important}.dark-mode .navbar .navbar-collapse .nav-link.active{background:rgba(255,255,255,.08)!important}.navbar .navbar-collapse .nav-link .ui-icon,.navbar .navbar-collapse .user-menu .dropdown-item .fab,.navbar .navbar-collapse .user-menu .dropdown-item .ui-icon{flex:none;width:18px!important;height:18px!important;margin:0!important;color:var(--ink-soft)!important;font-size:16px;text-align:center}.navbar .navbar-collapse .nav-signin-item{display:none!important}.navbar .navbar-collapse .user-chip-wrap{margin-top:8px!important;padding-top:8px!important;border-top:1px solid var(--border-color)!important}.navbar .navbar-collapse .user-chip{pointer-events:none;font-weight:600!important}.navbar .navbar-collapse .user-chip img{width:24px!important;height:24px!important;margin:-3px 0!important}.navbar .navbar-collapse .user-menu{display:block!important;position:static!important;transform:none!important;float:none!important;min-width:0!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;background:0 0!important}.navbar .navbar-collapse .user-menu .dropdown-header,.navbar .navbar-collapse .user-menu .um-extra{display:none!important}.navbar .navbar-collapse .user-menu .dropdown-item small{display:none!important}.navbar .navbar-collapse .user-menu .dropdown-item span{display:inline!important}.navbar .navbar-collapse .user-menu .dropdown-divider{margin:6px 12px!important}}.paper-table .paper-table-row.repo-inactive>:not(.cell-actions){opacity:1!important}.paper-table .paper-table-row.repo-inactive .cell-anon,.paper-table .paper-table-row.repo-inactive .cell-expires,.paper-table .paper-table-row.repo-inactive .cell-views,.paper-table .paper-table-row.repo-inactive .status-sub{opacity:.55}.paper-table .paper-table-row.repo-inactive .repo-name{color:var(--ink-soft)!important}.status-line.status-ended{display:inline-flex!important;align-items:center;gap:5px;padding:2px 8px 2px 6px;border-radius:999px;background:rgba(0,0,0,.06);color:var(--ink-soft)}.status-line.status-ended .status-word{font-size:12.5px!important;font-weight:600!important;color:inherit!important}.status-line.status-ended .status-ended-icon{width:13px;height:13px;flex:none}.status-line.status-ended-expired{background:rgba(245,158,11,.1);color:#b45309}.dark-mode .status-line.status-ended{background:rgba(255,255,255,.08);color:var(--ink-soft)}.dark-mode .status-line.status-ended-expired{background:rgba(245,158,11,.16);color:#fbbf24}.ended-link{font-size:12.5px;color:var(--ink-muted,var(--ink-soft));font-style:italic;white-space:nowrap;margin-right:4px}.ended-action{border:1px solid var(--control-border,var(--border-color));background:0 0;color:var(--color);border-radius:7px;padding:4px 10px;font:500 12.5px var(--font-sans);cursor:pointer;white-space:nowrap}.ended-action:hover{background:rgba(0,0,0,.04)}.dark-mode .ended-action:hover{background:rgba(255,255,255,.06)}.ended-row{display:inline-flex;align-items:center;gap:8px;margin-right:6px}@media (max-width:767px){.paper-table-dashboard .cell-actions>.ended-row{grid-area:link;display:flex;justify-content:space-between;width:100%;margin:0;padding:6px 6px 6px 12px;border-radius:8px;border:1px dashed var(--border-color)}.paper-table-dashboard .paper-table-row.repo-inactive .cell-expires{display:none!important}}input.form-control[type=date]{-webkit-appearance:none;appearance:none;display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:40px;min-height:40px;line-height:1.25;text-align:left}input.form-control[type=date]::-webkit-date-and-time-value{text-align:left;margin:0;min-height:1.25em}input.form-control[type=date]::-webkit-datetime-edit{padding:0}.hosting-date>input.form-control[type=date]{justify-self:stretch}.paper-table-dashboard .cell-actions>.copy-url{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:36px!important;height:36px!important;min-width:0!important;max-width:none!important;padding:0!important;margin:0!important;border:0!important;border-radius:8px!important;background:0 0!important;color:var(--ink-soft)!important;box-shadow:none!important}.paper-table-dashboard .cell-actions>.copy-url:hover{background:rgba(0,0,0,.05)!important;color:var(--color)!important}.dark-mode .paper-table-dashboard .cell-actions>.copy-url:hover{background:rgba(255,255,255,.07)!important}.paper-table-dashboard .cell-actions>.copy-url .project-type-svg{width:18px;height:18px;margin:0!important}@media (max-width:767px){.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(0,1fr) auto auto auto!important;grid-template-areas:"name copy edit more" "meta meta meta meta"!important}.paper-table.paper-table-dashboard .paper-table-row.repo-inactive{grid-template-areas:"name copy edit more" "meta meta meta meta" "link link link link"!important}.paper-table-dashboard .cell-actions>.copy-url{grid-area:copy;align-self:start;width:40px!important;height:40px!important;margin-top:-4px!important;justify-self:auto!important}}.paper-table-dashboard .cell-actions>.copy-url .project-type-svg{width:16px!important;height:16px!important}@media (max-width:767px){.paper-table-dashboard .anon-title{min-width:0}.paper-table.paper-table-dashboard .anon-title .repo-name{display:block!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;word-break:normal!important;overflow-wrap:normal!important}}.ace_editor .ace_marker-layer .ace_selection,.dark-mode .ace_editor .ace_marker-layer .ace_selection{box-shadow:none!important;border-radius:0!important}.ace_editor .ace_marker-layer .ace_selection.ace_br15{box-shadow:inset 0 0 0 1px rgba(170,115,15,.75)!important;border-radius:3px!important}.dark-mode .ace_editor .ace_marker-layer .ace_selection.ace_br15{box-shadow:inset 0 0 0 1px rgba(240,200,90,.7)!important}.ace_editor.ace-chrome .ace_marker-layer .ace_selection,.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection{box-shadow:none!important;border-radius:0!important}.ace_editor.ace-chrome .ace_marker-layer .ace_selection.ace_br15{box-shadow:inset 0 0 0 1px rgba(170,115,15,.75)!important;border-radius:3px!important}.ace_editor.ace-nord-dark .ace_marker-layer .ace_selection.ace_br15{box-shadow:inset 0 0 0 1px rgba(240,200,90,.7)!important;border-radius:3px!important}.file-card .file-card-head{position:relative}.file-card:not(.is-code) .file-card-head{position:sticky}.goto-pop{position:absolute;z-index:30;top:calc(100% + 6px);right:12px;width:260px;max-width:calc(100vw - 24px);margin:0;padding:12px;display:grid;gap:6px;background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 12px 32px rgba(26,24,21,.16)}.dark-mode .goto-pop{box-shadow:0 12px 32px rgba(0,0,0,.5)}.goto-label{margin:0;font:600 12.5px var(--font-sans);color:var(--color)}.goto-input{width:100%;height:36px;padding:0 10px;border:1px solid var(--control-border,var(--border-color));border-radius:7px;background:var(--bg-color,transparent);color:var(--color);font:500 14px var(--font-mono,ui-monospace,monospace);outline:0}.goto-input:focus{border-color:var(--accent,#1f6b66);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,#1f6b66) 22%,transparent)}.goto-input[aria-invalid=true]{border-color:#b91c1c}.goto-hint{font-size:12px;color:var(--ink-soft)}.goto-hint.is-error{color:#b91c1c}.dark-mode .goto-input[aria-invalid=true]{border-color:#f87171}.dark-mode .goto-hint.is-error{color:#f87171}.anonymize-form-col .anonymize-submit-bar:has(>.checkout-return-note){flex-wrap:wrap!important;row-gap:6px!important}.anonymize-submit-bar .checkout-return-note{order:3;flex:1 0 100%;margin:0!important;font-size:12px;text-align:center;white-space:normal}.paper-table{overflow:visible!important}.paper-table>.paper-table-head{border-top-left-radius:inherit;border-top-right-radius:inherit}.paper-table>:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit} \ No newline at end of file diff --git a/public/css/style.css b/public/css/style.css index 884b271..6be0d91 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -8829,6 +8829,35 @@ body:not(.dark-mode) .anonymize-page { --paper-card: #fff; --canvas-bg-color: #f } .anonymize-page .redaction-syntax { font-size: 12px; margin-top: 8px; } .redaction-syntax summary { cursor: pointer; color: var(--link-color); min-height: 28px; } +.anonymize-page .term-hint { display: flex; gap: 10px; align-items: center; justify-content: space-between; margin-top: 8px; padding: 8px 10px; border-radius: 6px; background: #fbf1df; color: #5c3a07; font-size: 12px; } +.anonymize-page .term-hint code { background: none; padding: 0; color: inherit; font-weight: 600; } +.anonymize-page .term-hint .btn { flex: none; } +.anonymize-page .term-hint-more { margin-top: 6px; font-size: 12px; color: var(--ink-muted); } +body.dark-mode .anonymize-page .term-hint { background: #3a2f1c; color: #f3dcb4; } +.anonymize-page .preserve-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 4px 0 16px; padding-top: 14px; border-top: 1px solid var(--paper-border, #e5e1d9); } +.anonymize-page .preserve-row-text { display: flex; flex-direction: column; min-width: 0; } +.anonymize-page .preserve-row .paper-field-label { margin-bottom: 2px; } +.anonymize-page .preserve-row-value { font-size: 12px; color: var(--ink-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.anonymize-page .preserve-row .btn { flex: none; } +.preserve-dialog { width: min(620px, calc(100vw - 32px)); padding: 24px; border: 1px solid var(--paper-border, #e5e1d9); border-radius: 12px; background: var(--paper-bg, #faf9f6); color: inherit; box-shadow: 0 16px 64px #0003; } +.preserve-dialog::backdrop { background: #0006; } +.preserve-dialog h2 { margin: 0 0 6px; font-size: 20px; } +.preserve-dialog .preserve-intro { font-size: 13px; color: var(--ink-muted); margin-bottom: 14px; } +.preserve-dialog .preserve-tree { margin-top: 10px; height: 300px; overflow: auto; border: 1px solid var(--paper-border, #e5e1d9); border-radius: 8px; background: var(--paper-card); padding: 4px 0; } +.preserve-dialog .preserve-item { display: flex; align-items: center; gap: 6px; min-height: 30px; padding-right: 10px; font-size: 13px; } +.preserve-dialog .preserve-item:hover { background: var(--paper-bg-alt); } +.preserve-dialog .preserve-caret, .preserve-dialog .preserve-caret-space { flex: none; width: 18px; height: 22px; border: 0; padding: 0; background: none; color: var(--ink-muted); font-size: 12px; cursor: pointer; } +.preserve-dialog .preserve-item input { flex: none; margin: 0; } +.preserve-dialog .preserve-name { flex: 1; min-width: 0; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: ui-monospace, SFMono-Regular, monospace; font-size: 12.5px; cursor: pointer; } +.preserve-dialog .preserve-note { flex: none; font-size: 11px; color: var(--ink-muted); } +.preserve-dialog .preserve-status { margin: 10px 12px; font-size: 13px; color: var(--ink-muted); } +.preserve-dialog .preserve-patterns { margin-top: 12px; font-size: 13px; } +.preserve-dialog .preserve-patterns summary { cursor: pointer; color: var(--link-color); min-height: 28px; } +.preserve-dialog .preserve-patterns textarea { margin-top: 6px; font-family: ui-monospace, SFMono-Regular, monospace; font-size: 12.5px; } +.preserve-dialog .preserve-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 16px; } +.preserve-dialog .preserve-count { font-size: 13px; color: var(--ink-muted); } +.preserve-dialog .preserve-actions { display: flex; gap: 8px; margin-left: auto; } +body.dark-mode .preserve-dialog { background: #242320; color: #faf9f6; } .anonymize-page .anonymize-preview-body h2 { border: 0; padding: 0; font-weight: 700; } .anonymize-page .anonymize-preview-body h1 { font-weight: 700; } .anonymize-page .anonymize-preview-body pre { background: var(--paper-bg-alt); line-height: 1.7; } @@ -11566,6 +11595,8 @@ mark.md-find.is-current, .ace_editor .ace_marker-layer .ace_selection { backgrou .anonymize-page input[type="checkbox"]::before { content: ""; width: 9px; height: 9px; transform: scale(0); background: #fff; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5'/%3E%3C/svg%3E") center/contain no-repeat; } .anonymize-page input[type="checkbox"]:checked { background: var(--accent); border-color: var(--accent); } .anonymize-page input[type="checkbox"]:checked::before { transform: scale(1); } +.anonymize-page input[type="checkbox"]:indeterminate { background: var(--accent); border-color: var(--accent); } +.anonymize-page input[type="checkbox"]:indeterminate::before { width: 8px; height: 2px; border-radius: 1px; -webkit-mask: none; mask: none; transform: scale(1); } .anonymize-page input[type="checkbox"]:disabled { opacity: .45; cursor: not-allowed; } .anonymize-page input[type="checkbox"]:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; } .dark-mode .anonymize-page input[type="checkbox"] { border-color: #6E6860; background: transparent; } diff --git a/public/i18n/locale-en.json b/public/i18n/locale-en.json index b7c09b8..9f69c4f 100644 --- a/public/i18n/locale-en.json +++ b/public/i18n/locale-en.json @@ -62,6 +62,7 @@ "options_not_provided": "Anonymization options are mandatory.", "terms_not_specified": "Anonymization terms must be specified.", "invalid_terms_format": "Terms are in an invalid format.", + "invalid_preserve_files_format": "Unredacted files must be repository paths or patterns, at most 200 of them.", "missing_content": "No content was provided to the anonymization preview.", "unable_to_anonymize": "An error happened during the anonymization process. Please try later or report the issue.", "non_supported_mode": "The selected anonymization mode is invalid, only download and stream are supported.", diff --git a/public/llms.txt b/public/llms.txt index 7291787..df1254c 100644 --- a/public/llms.txt +++ b/public/llms.txt @@ -30,7 +30,10 @@ an admin token or browser cookie. Maintenance tokens cannot log into the UI. 2. PATCH the same URL with only the settings to change, for example: {"terms":["Alice Smith","Example University"],"image":false,"update":false} Omitted settings stay unchanged. terms replaces the whole term list; - [] clears it. Supported boolean fields: update, image, pdf, notebook, link. + [] clears it. preserveFiles is a list of .gitignore-style patterns + (*.bib, /refs.bib, paper/**, !private.bib) whose file content is served without term + redaction; file names are still redacted. Supported boolean fields: update, image, pdf, + notebook, link. update controls automatic snapshot updates. Settings edits work in ready or error state, and cannot change the upstream source or connection. 3. POST /api/repo/{repoId}/refresh with {} requests the latest snapshot of the diff --git a/public/maintenance-openapi.json b/public/maintenance-openapi.json index 00c90d0..1565eaa 100644 --- a/public/maintenance-openapi.json +++ b/public/maintenance-openapi.json @@ -85,6 +85,15 @@ "maxLength": 1000 } }, + "preserveFiles": { + "type": "array", + "maxItems": 200, + "description": "Glob patterns of files whose content is not redacted. Same rules as .gitignore: a pattern without / matches the file name in any folder; one containing / (including a leading /) matches from the repository root; !pattern excludes again and the last match wins. Replaces the whole list.", + "items": { + "type": "string", + "maxLength": 512 + } + }, "update": { "type": "boolean" }, @@ -258,6 +267,15 @@ "maxLength": 1000 } }, + "preserveFiles": { + "type": "array", + "maxItems": 200, + "description": "Glob patterns of files whose content is not redacted. Same rules as .gitignore: a pattern without / matches the file name in any folder; one containing / (including a leading /) matches from the repository root; !pattern excludes again and the last match wins. Replaces the whole list.", + "items": { + "type": "string", + "maxLength": 512 + } + }, "update": { "type": "boolean" }, diff --git a/public/partials/anonymize.htm b/public/partials/anonymize.htm index e715478..5ce062d 100644 --- a/public/partials/anonymize.htm +++ b/public/partials/anonymize.htm @@ -208,11 +208,56 @@
- + One term per line.
Regex & replacement syntax Regex is supported. Replaced by {{ site_options?.ANONYMIZATION_MASK }}-[N], or use term=>replacement to pick your own (e.g. Anonymous=>ABC).
-
Regex characters detected. Escape them if unintentional.
+
+ In {{ hint.term }}, {{ hint.symbols.join(" ") }} {{ hint.symbols.length > 1 ? "are regex symbols" : "is a regex symbol" }}, so it may not match the text as written. + +
+
{{ termHints.length - 3 }} more {{ termHints.length - 3 === 1 ? "term uses" : "terms use" }} regex symbols.
Terms are in an invalid format.
+
+
+ Unredacted files + {{ preserveSummary() }} +
+ +
+ +
+

Leave files unredacted

+

Checked files are shown exactly as written, for example a bibliography where redacted self-citations would reveal you. File names are still redacted.

+ +
+

Loading files from GitHub…

+ + +
+

This repository has too many files to list them all. Use a pattern for files you cannot find.

+
+ Patterns + + One per line, as in .gitignore: *.bib matches in any folder; /refs.bib and paper/refs.bib match from the repository root; a folder name such as drafts/ covers everything inside it; !private.bib excludes again. +
+
+ {{ preserve.loading || preserve.error ? "" : preserveCount() + (preserveCount() === 1 ? " file" : " files") + " will be shown as written" }} + + + + +
+
+
@@ -432,7 +477,7 @@
Live preview - {{ previewStatus !== 'ready' ? 'README preview' : (String(terms || '').trim() ? 'README with redactions applied' : 'No terms yet. Add some to see them redacted here.') }} + {{ previewStatus !== 'ready' ? 'README preview' : (readmePreserved() ? 'README left unredacted (Unredacted files)' : (String(terms || '').trim() ? 'README with redactions applied' : 'No terms yet. Add some to see them redacted here.')) }}
Loading source…
diff --git a/public/partials/profile.htm b/public/partials/profile.htm index 5bd3131..91ab5e1 100644 --- a/public/partials/profile.htm +++ b/public/partials/profile.htm @@ -6,7 +6,7 @@

For new anonymizations only. Existing repositories keep their settings.

-

One term per line.

Regex & replacement syntax

Matches become {{ site_options?.ANONYMIZATION_MASK || 'XXX' }}-[N]. Use term=>replacement for a custom replacement. Regex is supported.

diff --git a/public/script/app.js b/public/script/app.js index f42cfa8..520d713 100644 --- a/public/script/app.js +++ b/public/script/app.js @@ -3,6 +3,9 @@ import { reactive, nextTick, markRaw } from "vue"; import { loadEditor } from "./lazy-assets.js"; import { createTimers, createListeners } from "./state.js"; import { formDraft } from "./drafts.js"; +import { escape as globEscape, unescape as globUnescape } from "minimatch"; +import { compilePreserveMatcher, dedupePreservePatterns } from "../../src/core/preserve-files"; +import { termHints, escapeTermLine } from "../../src/core/term-hints"; import translations from "../i18n/locale-en.json"; // A README image that fails to load becomes a quiet placeholder, not a broken-image glyph. @@ -2058,9 +2061,187 @@ export const anonymizeController = function (state, http, html, params, location // debounced and the in-flight request is dropped on the next change so // typing in the form stays responsive. + // ---- "Leave files unredacted" picker (#941) ---- + // Picked files are saved first, as root-anchored paths with glob characters + // (braces included) escaped by a backslash; folders and anything typed by + // hand follow as patterns. Patterns apply in order, so a later "!pattern" + // can exclude a picked file, exactly as on the server. + const globOpts = { magicalBraces: true }; + // A picked file: a root-anchored path with no glob characters. Folder rules + // ("/paper/") stay patterns. + const isPickedPattern = (p) => p.startsWith("/") && !p.endsWith("/") && globEscape(globUnescape(p.slice(1), globOpts), globOpts) === p.slice(1); + const pickedRules = () => Object.keys(state.preserve.picked).filter((f) => state.preserve.picked[f]).sort() + .map((f) => "/" + globEscape(f, globOpts)); + const folderPattern = (dir) => "/" + globEscape(dir, globOpts) + "/**"; + const folderExclusion = (dir) => "!/" + globEscape(dir, globOpts) + "/"; + const patternLines = () => String(state.preserve.patterns || "").split("\n").map((l) => l.trim()).filter(Boolean); + let preserveIndex = null; + // The checkboxes use the exact rule list that will be saved (picks first, + // then patterns) through the server's matcher, so they cannot disagree. + let pickVersion = 0; + let matcherKey = null; + let matcherFn = () => false; + function preserveMatcher() { + const key = pickVersion + "\u0000" + state.preserve.patterns; + if (key !== matcherKey) { + matcherKey = key; + try { matcherFn = compilePreserveMatcher(dedupePreservePatterns([...pickedRules(), ...patternLines()])); } catch { matcherFn = () => false; } + } + return matcherFn; + } + function buildPreserveIndex(files) { + const dirs = new Map([["", { dirs: [], files: [] }]]); + for (const file of files) { + const parts = file.split("/"); + let parent = ""; + for (let i = 0; i < parts.length - 1; i++) { + const dir = parts.slice(0, i + 1).join("/"); + if (!dirs.has(dir)) { dirs.set(dir, { dirs: [], files: [] }); dirs.get(parent).dirs.push(dir); } + parent = dir; + } + dirs.get(parent).files.push(file); + } + for (const entry of dirs.values()) entry.dirs.sort(); + return { files, dirs, descendants: new Map() }; + } + function descendants(dir) { + if (!preserveIndex.descendants.has(dir)) { + preserveIndex.descendants.set(dir, preserveIndex.files.filter((f) => f.startsWith(dir + "/"))); + } + return preserveIndex.descendants.get(dir); + } + const fileChecked = (file) => preserveMatcher()(file); + function dirState(dir) { + const files = descendants(dir); + let checked = 0; + for (const f of files) if (fileChecked(f)) checked++; + return checked === 0 ? "none" : checked === files.length ? "all" : "some"; + } + state.preserve = { open: false, loading: false, error: "", truncated: false, commit: "", search: "", expanded: {}, picked: {}, patterns: "", patternsOpen: false }; + state.preserveSummary = () => { + const list = (state.options?.preserveFiles || []).map((p) => String(p).trim()).filter(Boolean) + .map((p) => isPickedPattern(p) ? globUnescape(p.slice(1), globOpts) : p); + if (!list.length) return "None. Every file is redacted."; + return list.slice(0, 2).join(", ") + (list.length > 2 ? ` and ${list.length - 2} more` : ""); + }; + async function loadPreserveTree() { + const commit = state.source?.commit; + if (preserveIndex && state.preserve.commit === commit) return; + state.preserve.loading = true; + state.preserve.error = ""; + preserveIndex = null; + try { + const o = parseGithubUrl(state.sourceUrl); + const res = await http.get(`/api/repo/${o.owner}/${o.repo}/tree`, { + params: { commit, connection: state.githubConnection, anonymizedRepoId: state.isUpdate && params.repoId && parseRepoFullName(state.sourceUrl) === state._originalFullName ? params.repoId : undefined, repositoryID: sourceRepositoryID() }, + }); + if (state.source?.commit !== commit) return; + preserveIndex = markRaw(buildPreserveIndex(res.data.files || [])); + state.preserve.commit = commit; + state.preserve.truncated = !!res.data.truncated; + } catch (error) { + state.preserve.error = "The file list could not be loaded from GitHub. You can still use patterns."; + state.preserve.patternsOpen = true; + } finally { + state.preserve.loading = false; + } + } + state.openPreserveFiles = () => { + // Picks are saved first, so only the leading run of plain paths can be + // shown as picks; a plain path after another rule stays a pattern to + // keep its place in the order. + const picked = {}; + const patterns = []; + for (const raw of state.options?.preserveFiles || []) { + const p = String(raw).trim(); + if (!p) continue; + if (!patterns.length && isPickedPattern(p)) picked[globUnescape(p.slice(1), globOpts)] = true; + else patterns.push(p); + } + const expanded = {}; + for (const file of Object.keys(picked)) { + const parts = file.split("/"); + for (let i = 1; i < parts.length; i++) expanded[parts.slice(0, i).join("/")] = true; + } + Object.assign(state.preserve, { open: true, search: "", picked, expanded, patterns: patterns.join("\n"), patternsOpen: patterns.length > 0 }); + pickVersion++; + timeout(() => { + const dialog = document.getElementById("preserve-files-dialog"); + if (dialog?.showModal && !dialog.open) dialog.showModal(); + document.getElementById("preserve-files-search")?.focus(); + }, 0); + loadPreserveTree(); + }; + state.closePreserveFiles = () => { + document.getElementById("preserve-files-dialog")?.close?.(); + state.preserve.open = false; + }; + state.savePreserveFiles = () => { + state.options.preserveFiles = dedupePreservePatterns([...pickedRules(), ...patternLines()]); + state.closePreserveFiles(); + }; + state.preserveRows = () => { + if (!preserveIndex) return []; + const matcher = preserveMatcher(); + const fileRow = (file, depth, label) => { + const picked = !!state.preserve.picked[file]; + const checked = matcher(file); + const note = !picked && checked ? "matched by a pattern" : picked && !checked ? "excluded by a pattern" : ""; + return { kind: "file", path: file, label, depth, state: checked ? "all" : "none", locked: !picked && checked, note }; + }; + const search = String(state.preserve.search || "").trim().toLowerCase(); + if (search) { + return preserveIndex.files.filter((f) => f.toLowerCase().includes(search)).slice(0, 300).map((f) => fileRow(f, 0, f)); + } + const rows = []; + const walk = (dir, depth) => { + const entry = preserveIndex.dirs.get(dir); + for (const sub of entry.dirs) { + const open = !!state.preserve.expanded[sub]; + const ownPattern = patternLines().includes(folderPattern(sub)); + rows.push({ kind: "dir", path: sub, label: sub.slice(dir ? dir.length + 1 : 0) + "/", depth, open, state: dirState(sub), locked: false, note: ownPattern ? "whole folder" : "" }); + if (open) walk(sub, depth + 1); + } + for (const file of entry.files) rows.push(fileRow(file, depth, file.slice(dir ? dir.length + 1 : 0))); + }; + walk("", 0); + return rows; + }; + state.preserveCount = () => preserveIndex ? preserveIndex.files.filter(fileChecked).length : 0; + state.togglePreserveDir = (dir) => { state.preserve.expanded[dir] = !state.preserve.expanded[dir]; }; + state.togglePreserveFile = (file) => { state.preserve.picked[file] = !state.preserve.picked[file]; pickVersion++; }; + // Unchecking a folder must win over broader rules such as "*.bib", so a + // folder exclusion is appended when files inside would stay checked. + state.togglePreserveFolder = (dir) => { + const own = folderPattern(dir); + const exclusion = folderExclusion(dir); + const lines = patternLines().filter((l) => l !== own && l !== exclusion); + const wasChecked = dirState(dir) === "all" || patternLines().includes(own); + for (const f of descendants(dir)) state.preserve.picked[f] = false; + pickVersion++; + state.preserve.patterns = (wasChecked ? lines : [...lines, own]).join("\n"); + if (wasChecked && descendants(dir).some(fileChecked)) { + state.preserve.patterns = [...lines, exclusion].join("\n"); + } + }; + + // GitHub's README lookup order. The exact path is not known here, so the + // preview treats the README as unredacted if any candidate is selected: + // when unsure, it shows the author more exposure, not less. + const README_CANDIDATES = [".github", "", "docs"].flatMap((dir) => + ["README.md", "README", "README.markdown", "README.rst", "README.txt", "readme.md"].map((name) => (dir ? dir + "/" : "") + name)); + state.readmePreserved = () => { + if (state.detectedType !== "repo") return false; + const patterns = (state.options?.preserveFiles || []).map((p) => String(p).trim()).filter(Boolean); + if (!patterns.length) return false; + try { + const matcher = compilePreserveMatcher(patterns); + return README_CANDIDATES.some((path) => matcher(path)); + } catch { return false; } + }; function previewOptions() { const opts = { - terms: state.terms ? state.terms.split("\n") : [], + terms: state.terms && !state.readmePreserved() ? state.terms.split("\n") : [], image: !!state.options.image, link: !!state.options.link, repoId: state.repoId, @@ -2144,8 +2325,6 @@ export const anonymizeController = function (state, http, html, params, location if (!state.anonymize || !state.anonymize.terms) return; // The "regex characters detected" hint is informational, not a blocker // — IP addresses, escaped chars, etc. are all legitimate terms (#430). - state.termsRegexWarning = - !!state.terms && !!state.terms.match(/[-[\]{}()*+?.,\\^$|#]/g); scheduleReadmePreview(); } @@ -2371,7 +2550,7 @@ export const anonymizeController = function (state, http, html, params, location setValidity("commit", "exists", true); setValidity("conference", "activated", true); setValidity("terms", "format", true); - state.termsRegexWarning = false; + state.termHints = []; } // Guards against submitting a missing or out-of-range expiration date. @@ -2587,7 +2766,15 @@ export const anonymizeController = function (state, http, html, params, location }; state.watch("conference", () => { getConference(); }); + state.termHints = []; + state.matchTermAsWritten = (line) => { + state.terms = escapeTermLine(state.terms, line); + }; + state.watch("options.preserveFiles", () => { + if (state.detectedType === "repo") scheduleReadmePreview(); + }); state.watch("terms", () => { + state.termHints = termHints(state.terms); if (state.detectedType === "repo") anonymizeReadme(); if (state.detectedType === "pr") refreshPrPreview(); if (state.detectedType === "gist") refreshGistPreview(); diff --git a/public/script/vendor.min.js b/public/script/vendor.min.js index d064fce..68284d3 100644 --- a/public/script/vendor.min.js +++ b/public/script/vendor.min.js @@ -1,34 +1,44 @@ -"use strict";(()=>{var Rd=Object.defineProperty;var Dd=(e,t)=>{for(var o in t)Rd(e,o,{get:t[o],enumerable:!0})};var pe=["abap","abc","actionscript","ada","alda","apache_conf","apex","applescript","aql","asciidoc","asl","assembly_x86","autohotkey","batchfile","c9search","c_cpp","cirru","clojure","cobol","coffee","coldfusion","crystal","csharp","csound_document","csound_orchestra","csound_score","csp","css","curly","d","dart","diff","django","dockerfile","dot","drools","edifact","eiffel","ejs","elixir","elm","erlang","forth","fortran","fsharp","fsl","ftl","gcode","gherkin","gitignore","glsl","gobstones","golang","graphqlschema","groovy","haml","handlebars","haskell","haskell_cabal","haxe","hjson","html","html_elixir","html_ruby","ini","io","jack","jade","java","javascript","json","json5","jsoniq","jsp","jssm","jsx","julia","kotlin","latex","less","liquid","lisp","livescript","logiql","logtalk","lsl","lua","luapage","lucene","makefile","markdown","mask","matlab","maze","mediawiki","mel","mixal","mushcode","mysql","nginx","nim","nix","nsis","nunjucks","objectivec","ocaml","pascal","perl","perl6","pgsql","php","php_laravel_blade","pig","plain_text","powershell","praat","prisma","prolog","properties","protobuf","puppet","python","qml","r","razor","rdoc","red","redshift","rhtml","rst","ruby","rust","sass","scad","scala","scheme","scss","sh","sjs","slim","smarty","snippets","soy_template","space","sparql","sql","sqlserver","stylus","svg","swift","tcl","terraform","tex","text","textile","toml","tsx","turtle","twig","typescript","vala","vbscript","velocity","verilog","vhdl","visualforce","wollok","xml","xquery","yaml","zeek"];var fe={markdown:"/script/markdown.6c8dfb7b1d.min.js",notebook:"/script/notebook.c3144c18ae.min.js",org:"/script/org.f61f262915.min.js",pdf:"/script/pdf.4d9cc6ff49.min.js",editor:"/script/editor.4f142d3adc.min.js"};function Si(e){let t=e.location.hash.slice(1);if(e.history.replaceState(null,"","/review-link"),t.length>2048)return null;let o=new URLSearchParams(t);if([...o.keys()].length!==3||[...o.keys()].some(a=>!["clientId","intentId","token"].includes(a)))return null;let i=o.get("clientId"),s=o.get("intentId"),r=o.get("token");return!/^[a-f0-9]{32}$/.test(i||"")||!/^[a-f0-9]{32}$/.test(s||"")||!/^[a-f0-9]{64}$/.test(r||"")?null:{contract:"4open.artifacts/1",clientId:i,intentId:s,token:r}}function Ni(e,t){let{http:o,promises:i,window:s}=t,r=t.takeReviewHandoff(),a=r?{clientId:r.clientId,intentId:r.intentId}:null,p,f,g,y,b,m=!0,E,P=i.defer(),k=()=>[...s.crypto.getRandomValues(new Uint8Array(16))].map(L=>L.toString(16).padStart(2,"0")).join("");Object.assign(e,{repositoryId:"",handoffEnabled:!1,busy:!1,preview:null,acceptAccess:!1,acceptRetention:!1,uncertain:!1,saved:!1,expired:!1,error:r?"":"Open a new artifact link from your submission. This link is missing or invalid."});let v=()=>m&&e.user?.username===b;function S(){m=!1,r=p=f=void 0,P.resolve(),s.clearTimeout(E)}e.on("dispose",S),e.on("routeLeave",S),e.watch(()=>e.user?.username,L=>{!b&&L?b=L:b&&L!==b&&(S(),e.preview=null,e.repositoryId="",e.busy=!1,e.saved=!1,e.handoffEnabled=!1,e.error="Your account changed. Open a new artifact link from your submission.")});let _=()=>({timeout:P.promise,headers:{"Content-Type":"application/json","X-Review-CSRF":f}}),M=L=>L?.status===404?"Artifact linking is not available on this server.":L?.status===401?"Sign in, then open a new artifact link from your submission.":L?.status===403?"This account cannot approve this repository or this link.":"The request could not be completed. You can retry from this page.";e.loadPreview=async()=>{if(!m||!r||e.busy||e.uncertain||e.saved||!e.user?.username)return;b=e.user.username;let L=e.repositoryId.trim();if(!/^[A-Za-z0-9_-]{3,128}$/.test(L)){e.error="Enter the anonymous repository ID from its URL.";return}e.busy=!0,e.error="",e.preview=null,p=void 0,e.acceptAccess=e.acceptRetention=!1,e.expired=!1,s.clearTimeout(E),y||(y=k());try{let q=(await o.get("/api/review-consent/csrf",{timeout:P.promise})).data;if(!v())return;if(f=q.csrf,e.handoffEnabled=q.handoffEnabled===!0,!/^[a-f0-9]{64}$/.test(f||""))throw new Error("invalid_csrf");let G=(await o.post("/api/review-consent/preview",{repositoryId:L,intent:{...r,requestId:y}},_())).data;if(!v())return;if(!G||typeof G.ticket!="string"||!G.ticket||G.ticket.length>8192||typeof G.repositoryName!="string"||!["restricted-review","anonymous-link"].includes(G.policy?.access)||!Number.isSafeInteger(G.policy.version)||!Number.isFinite(Date.parse(G.policy.retainUntil))||!Number.isFinite(Date.parse(G.expiresAt))||Date.parse(G.expiresAt)<=Date.now()||Date.parse(G.expiresAt)>Date.now()+6e5)throw new Error("invalid_preview");p=G.ticket,g=k(),e.preview={repositoryName:G.repositoryName,policy:{...G.policy},expiresAt:G.expiresAt},E=s.setTimeout(()=>{m&&(e.expired=!0)},Math.max(0,Date.parse(G.expiresAt)-Date.now()))}catch(q){v()&&(e.error=M(q))}finally{v()&&(e.busy=!1)}},e.confirmConsent=async()=>{if(!(!v()||e.busy||e.saved||!p||!e.acceptAccess||!e.acceptRetention)){if(Date.parse(e.preview.expiresAt)<=Date.now()){e.expired=!0;return}e.busy=!0,e.error="";try{let L=(await o.post("/api/review-consent/confirm",{ticket:p,requestId:g,acceptAccess:!0,acceptRetention:!0},_())).data;if(!v())return;if(L?.requestId!==g||!Number.isFinite(Date.parse(L.confirmedAt)))throw new Error("invalid_receipt");e.saved=!0,e.uncertain=!1,r=void 0,e.handoffEnabled||(p=void 0)}catch{v()&&(e.uncertain=!0,e.error="The confirmation was not verified. Retry with the same approval, or return to your submission to check its status.")}finally{v()&&(e.busy=!1)}}},e.continueReview=async()=>{if(!v()||e.busy||!e.saved||!e.handoffEnabled||!p||!a)return;e.busy=!0,e.error="";let L,q=()=>{L?.remove(),s.removeEventListener("securitypolicyviolation",G)},G=se=>{se.violatedDirective?.startsWith("form-action")&&(q(),v()&&(e.busy=!1,e.error="The return address was blocked. Return to your submission to check the artifact status."))};try{let se=(await o.post("/api/review-consent/handoff",{ticket:p},_())).data;if(!v())return;let ee=se?.completion,R=new URL(se?.callbackUrl);if(!ee||Object.keys(ee).sort().join(",")!=="clientId,code,contract,expiresAt,intentId"||ee.contract!=="4open.artifacts/1"||ee.clientId!==a.clientId||ee.intentId!==a.intentId||!/^[a-f0-9]{64}$/.test(ee.code||"")||!Number.isFinite(Date.parse(ee.expiresAt))||Date.parse(ee.expiresAt)<=Date.now()||Date.parse(ee.expiresAt)>Date.now()+3e5||R.protocol!=="https:"||R.href!==se.callbackUrl||R.username||R.password||se.callbackUrl.includes("?")||se.callbackUrl.includes("#"))throw new Error("invalid_handoff");L=s.document.createElement("form"),L.method="POST",L.action=R.href;let K=s.document.createElement("input");K.type="hidden",K.name="completion",K.value=JSON.stringify(ee),L.appendChild(K),s.document.body.appendChild(L),s.addEventListener("securitypolicyviolation",G),e.on("dispose",q),L.submit()}catch{q(),v()&&(e.busy=!1,e.error="The return to review could not be prepared. Retry from this page, or return to your submission to check its status.")}}}var wo=new Map,Ad=fe;function on(e){if(!wo.has(e)){let t=document.createElement("script");t.src=Ad[e];let o=new Promise((i,s)=>{t.onload=i,t.onerror=()=>{wo.delete(e),t.remove(),s(new Error(`Unable to load ${e}. Please retry.`))}});wo.set(e,o),document.head.appendChild(t)}return wo.get(e)}async function ko(){await on("editor"),ace.config.set("basePath","/script/external/ace/")}function yn(e){let t=Object.create(null);for(let o of e.split(","))t[o]=1;return o=>o in t}var Pe={},en=[],at=()=>{},hs=()=>!1,bn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),wn=e=>e.startsWith("onUpdate:"),je=Object.assign,Vn=(e,t)=>{let o=e.indexOf(t);o>-1&&e.splice(o,1)},Od=Object.prototype.hasOwnProperty,Te=(e,t)=>Od.call(e,t),ge=Array.isArray,jt=e=>qn(e)==="[object Map]",St=e=>qn(e)==="[object Set]",Ri=e=>qn(e)==="[object Date]";var ke=e=>typeof e=="function",$e=e=>typeof e=="string",ht=e=>typeof e=="symbol",Ae=e=>e!==null&&typeof e=="object",vs=e=>(Ae(e)||ke(e))&&ke(e.then)&&ke(e.catch),Ai=Object.prototype.toString,qn=e=>Ai.call(e),gs=e=>qn(e).slice(8,-1),Co=e=>qn(e)==="[object Object]",Eo=e=>$e(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,kn=yn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");var So=e=>{let t=Object.create(null);return(o=>t[o]||(t[o]=e(o)))},Pd=/-\w/g,Je=So(e=>e.replace(Pd,t=>t.slice(1).toUpperCase())),Id=/\B([A-Z])/g,Pt=So(e=>e.replace(Id,"-$1").toLowerCase()),sn=So(e=>e.charAt(0).toUpperCase()+e.slice(1)),Ln=So(e=>e?`on${sn(e)}`:""),bt=(e,t)=>!Object.is(e,t),Cn=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:i,value:o})},En=e=>{let t=parseFloat(e);return isNaN(t)?e:t};var Di,$n=()=>Di||(Di=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Re(e){if(ge(e)){let t={};for(let o=0;oo.startsWith("/*")?"":o).split(Md).forEach(o=>{if(o){let i=o.split(Vd);i.length>1&&(t[i[0].trim()]=i[1].trim())}}),t}function O(e){let t="";if($e(e))t=e;else if(ge(e))for(let o=0;oNt(o,t))}var Ii=e=>!!(e&&e.__v_isRef===!0),u=e=>$e(e)?e:e==null?"":ge(e)||Ae(e)&&(e.toString===Ai||!ke(e.toString))?Ii(e)?u(e.value):JSON.stringify(e,Mi,2):String(e),Mi=(e,t)=>Ii(t)?Mi(e,t.value):jt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[i,s],r)=>(o[ms(i,r)+" =>"]=s,o),{})}:St(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>ms(o))}:ht(t)?ms(t):Ae(t)&&!ge(t)&&!Co(t)?String(t):t,ms=(e,t="")=>{var o;return ht(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};function Bd(e,...t){console.warn(`[Vue warn] ${e}`,...t)}var Qe,zn=class{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Qe&&(Qe.active?(this.parent=Qe,this.index=(Qe.scopes||(Qe.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){let i=this.scopes.slice();for(t=0,o=i.length;t0&&--this._on===0){if(Qe===this)Qe=this.prevScope;else{let t=Qe;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,i;for(o=0,i=this.effects.length;o0)return;if(Bn){let t=Bn;for(Bn=void 0;t;){let o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;Fn;){let t=Fn;for(Fn=void 0;t;){let o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(i){e||(e=i)}t=o}}if(e)throw e}function Bi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function zi(e){let t,o=e.depsTail,i=o;for(;i;){let s=i.prevDep;i.version===-1?(i===o&&(o=s),Os(i),zd(i)):t=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=s}e.deps=t,e.depsTail=o}function ks(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Hi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Hi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Hn)||(e.globalVersion=Hn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ks(e))))return;e.flags|=2;let t=e.dep,o=qe,i=Rt;qe=e,Rt=!0;try{Bi(e);let s=e.fn(e._value);(t.version===0||bt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{qe=o,Rt=i,zi(e),e.flags&=-3}}function Os(e,t=!1){let{dep:o,prevSub:i,nextSub:s}=e;if(i&&(i.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=i,e.nextSub=void 0),o.subs===e&&(o.subs=i,!i&&o.computed)){o.computed.flags&=-5;for(let r=o.computed.deps;r;r=r.nextDep)Os(r,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function zd(e){let{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}var Rt=!0,ji=[];function Dt(){ji.push(Rt),Rt=!1}function Tt(){let e=ji.pop();Rt=e===void 0?!0:e}function Vi(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let o=qe;qe=void 0;try{t()}finally{qe=o}}}var Hn=0,Cs=class{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},jn=class{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!qe||!Rt||qe===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==qe)o=this.activeLink=new Cs(qe,this),qe.deps?(o.prevDep=qe.depsTail,qe.depsTail.nextDep=o,qe.depsTail=o):qe.deps=qe.depsTail=o,Gi(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){let i=o.nextDep;i.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=i),o.prevDep=qe.depsTail,o.nextDep=void 0,qe.depsTail.nextDep=o,qe.depsTail=o,qe.deps===o&&(qe.deps=i)}return o}trigger(t){this.version++,Hn++,this.notify(t)}notify(t){_s();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{As()}}};function Gi(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let i=t.deps;i;i=i.nextDep)Gi(i)}let o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}var Es=new WeakMap,an=Symbol(""),Ss=Symbol(""),Gn=Symbol("");function xe(e,t,o){if(Rt&&qe){let i=Es.get(e);i||Es.set(e,i=new Map);let s=i.get(o);s||(i.set(o,s=new jn),s.map=i,s.key=o),s.track()}}function Mt(e,t,o,i,s,r){let a=Es.get(e);if(!a){Hn++;return}let p=f=>{f&&f.trigger()};if(_s(),t==="clear")a.forEach(p);else{let f=ge(e),g=f&&Eo(o);if(f&&o==="length"){let y=Number(i);a.forEach((b,m)=>{(m==="length"||m===Gn||!ht(m)&&m>=y)&&p(b)})}else switch((o!==void 0||a.has(void 0))&&p(a.get(o)),g&&p(a.get(Gn)),t){case"add":f?g&&p(a.get("length")):(p(a.get(an)),jt(e)&&p(a.get(Ss)));break;case"delete":f||(p(a.get(an)),jt(e)&&p(a.get(Ss)));break;case"set":jt(e)&&p(a.get(an));break}}As()}function Sn(e){let t=_e(e);return t===e||(xe(t,"iterate",Gn),lt(e))?t:wt(e)?qt(e)?t.map(o=>Wt(vt(o))):t.map(Wt):t.map(vt)}function Kn(e){return xe(e=_e(e),"iterate",Gn),e}function It(e,t){return wt(e)?Wt(qt(e)?vt(t):t):vt(t)}var Hd={__proto__:null,[Symbol.iterator](){return bs(this,Symbol.iterator,e=>It(this,e))},concat(...e){return Sn(this).concat(...e.map(t=>ge(t)?Sn(t):t))},entries(){return bs(this,"entries",e=>(e[1]=It(this,e[1]),e))},every(e,t){return Gt(this,"every",e,t,void 0,arguments)},filter(e,t){return Gt(this,"filter",e,t,o=>o.map(i=>It(this,i)),arguments)},find(e,t){return Gt(this,"find",e,t,o=>It(this,o),arguments)},findIndex(e,t){return Gt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Gt(this,"findLast",e,t,o=>It(this,o),arguments)},findLastIndex(e,t){return Gt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Gt(this,"forEach",e,t,void 0,arguments)},includes(...e){return ws(this,"includes",e)},indexOf(...e){return ws(this,"indexOf",e)},join(e){return Sn(this).join(e)},lastIndexOf(...e){return ws(this,"lastIndexOf",e)},map(e,t){return Gt(this,"map",e,t,void 0,arguments)},pop(){return Un(this,"pop")},push(...e){return Un(this,"push",e)},reduce(e,...t){return Li(this,"reduce",e,t)},reduceRight(e,...t){return Li(this,"reduceRight",e,t)},shift(){return Un(this,"shift")},some(e,t){return Gt(this,"some",e,t,void 0,arguments)},splice(...e){return Un(this,"splice",e)},toReversed(){return Sn(this).toReversed()},toSorted(e){return Sn(this).toSorted(e)},toSpliced(...e){return Sn(this).toSpliced(...e)},unshift(...e){return Un(this,"unshift",e)},values(){return bs(this,"values",e=>It(this,e))}};function bs(e,t,o){let i=Kn(e),s=i[t],r=s.call(i);if(i!==e&&!lt(e)){if(r[Symbol.toStringTag]==="Array Iterator"){let a=Object.create(Object.getPrototypeOf(r));return a.next=()=>qi(r.next(),o),s!==Wi[t]&&Object.defineProperties(a,{return:{get(){let p=r.return;return typeof p=="function"?p.bind(r):p}},throw:{get(){let p=r.throw;return typeof p=="function"?p.bind(r):p}}}),a}r._next=r.next,r.next=()=>qi(r._next(),o)}return r}function qi(e,t){return e.done||(e.value=t(e.value)),e}var Wi=Array.prototype;function Gt(e,t,o,i,s,r){let a=Kn(e),p=a!==e&&!lt(e),f=a[t];if(f!==Wi[t]){let b=f.apply(e,r);return p?vt(b):b}let g=o;a!==e&&(p?g=function(b,m){return o.call(this,It(e,b),m,e)}:o.length>2&&(g=function(b,m){return o.call(this,b,m,e)}));let y=f.call(a,g,i);return p&&s?s(y):y}function Li(e,t,o,i){let s=Kn(e),r=s!==e&&!lt(e),a=o,p=!1;s!==e&&(r?(p=i.length===0,a=function(g,y,b){return p&&(p=!1,g=It(e,g)),o.call(this,g,It(e,y),b,e)}):o.length>3&&(a=function(g,y,b){return o.call(this,g,y,b,e)}));let f=s[t](a,...i);return p?It(e,f):f}function ws(e,t,o){let i=_e(e);xe(i,"iterate",Gn);let s=i[t](...o);return(s===-1||s===!1)&&Jn(o[0])?(o[0]=_e(o[0]),i[t](...o)):s}function Un(e,t,o=[]){Dt(),_s();let i=_e(e)[t].apply(e,o);return As(),Tt(),i}var jd=yn("__proto__,__v_isRef,__isVue"),Ki=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ht));function Gd(e){ht(e)||(e=String(e));let t=_e(this);return xe(t,"has",e),t.hasOwnProperty(e)}var Oo=class{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,i){if(o==="__v_skip")return t.__v_skip;let s=this._isReadonly,r=this._isShallow;if(o==="__v_isReactive")return!s;if(o==="__v_isReadonly")return s;if(o==="__v_isShallow")return r;if(o==="__v_raw")return i===(s?r?eu:Qi:r?Ji:Yi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(i)?t:void 0;let a=ge(t);if(!s){let f;if(a&&(f=Hd[o]))return f;if(o==="hasOwnProperty")return Gd}let p=Reflect.get(t,o,Ze(t)?t:i);if((ht(o)?Ki.has(o):jd(o))||(s||xe(t,"get",o),r))return p;if(Ze(p)){let f=a&&Eo(o)?p:p.value;return s&&Ae(f)?Io(f):f}return Ae(p)?s?Io(p):Ue(p):p}},Po=class extends Oo{constructor(t=!1){super(!1,t)}set(t,o,i,s){let r=t[o],a=ge(t)&&Eo(o);if(!this._isShallow){let g=wt(r);if(!lt(i)&&!wt(i)&&(r=_e(r),i=_e(i)),!a&&Ze(r)&&!Ze(i))return g||(r.value=i),!0}let p=a?Number(o)e,To=e=>Reflect.getPrototypeOf(e);function Jd(e,t,o){return function(...i){let s=this.__v_raw,r=_e(s),a=jt(r),p=e==="entries"||e===Symbol.iterator&&a,f=e==="keys"&&a,g=s[e](...i),y=o?Rs:t?Wt:vt;return!t&&xe(r,"iterate",f?Ss:an),je(Object.create(g),{next(){let{value:b,done:m}=g.next();return m?{value:b,done:m}:{value:p?[y(b[0]),y(b[1])]:y(b),done:m}}})}}function _o(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Qd(e,t){let o={get(s){let r=this.__v_raw,a=_e(r),p=_e(s);e||(bt(s,p)&&xe(a,"get",s),xe(a,"get",p));let{has:f}=To(a),g=t?Rs:e?Wt:vt;if(f.call(a,s))return g(r.get(s));if(f.call(a,p))return g(r.get(p));r!==a&&r.get(s)},get size(){let s=this.__v_raw;return!e&&xe(_e(s),"iterate",an),s.size},has(s){let r=this.__v_raw,a=_e(r),p=_e(s);return e||(bt(s,p)&&xe(a,"has",s),xe(a,"has",p)),s===p?r.has(s):r.has(s)||r.has(p)},forEach(s,r){let a=this,p=a.__v_raw,f=_e(p),g=t?Rs:e?Wt:vt;return!e&&xe(f,"iterate",an),p.forEach((y,b)=>s.call(r,g(y),g(b),a))}};return je(o,e?{add:_o("add"),set:_o("set"),delete:_o("delete"),clear:_o("clear")}:{add(s){let r=_e(this),a=To(r),p=_e(s),f=!t&&!lt(s)&&!wt(s)?p:s;return a.has.call(r,f)||bt(s,f)&&a.has.call(r,s)||bt(p,f)&&a.has.call(r,p)||(r.add(f),Mt(r,"add",f,f)),this},set(s,r){!t&&!lt(r)&&!wt(r)&&(r=_e(r));let a=_e(this),{has:p,get:f}=To(a),g=p.call(a,s);g||(s=_e(s),g=p.call(a,s));let y=f.call(a,s);return a.set(s,r),g?bt(r,y)&&Mt(a,"set",s,r,y):Mt(a,"add",s,r),this},delete(s){let r=_e(this),{has:a,get:p}=To(r),f=a.call(r,s);f||(s=_e(s),f=a.call(r,s));let g=p?p.call(r,s):void 0,y=r.delete(s);return f&&Mt(r,"delete",s,void 0,g),y},clear(){let s=_e(this),r=s.size!==0,a=void 0,p=s.clear();return r&&Mt(s,"clear",void 0,void 0,a),p}}),["keys","values","entries",Symbol.iterator].forEach(s=>{o[s]=Jd(s,e,t)}),o}function Ps(e,t){let o=Qd(e,t);return(i,s,r)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_isShallow"?t:s==="__v_raw"?i:Reflect.get(Te(o,s)&&s in i?o:i,s,r)}var Xd={get:Ps(!1,!1)},Zd={get:Ps(!1,!0)},xd={get:Ps(!0,!1)};var Yi=new WeakMap,Ji=new WeakMap,Qi=new WeakMap,eu=new WeakMap;function tu(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Ue(e){return wt(e)?e:Is(e,!1,Wd,Xd,Yi)}function Yn(e){return Is(e,!1,Yd,Zd,Ji)}function Io(e){return Is(e,!0,Kd,xd,Qi)}function Is(e,t,o,i,s){if(!Ae(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let r=s.get(e);if(r)return r;let a=tu(gs(e));if(a===0)return e;let p=new Proxy(e,a===2?i:o);return s.set(e,p),p}function qt(e){return wt(e)?qt(e.__v_raw):!!(e&&e.__v_isReactive)}function wt(e){return!!(e&&e.__v_isReadonly)}function lt(e){return!!(e&&e.__v_isShallow)}function Jn(e){return e?!!e.__v_raw:!1}function _e(e){let t=e&&e.__v_raw;return t?_e(t):e}function Qn(e){return!Te(e,"__v_skip")&&Object.isExtensible(e)&&No(e,"__v_skip",!0),e}var vt=e=>Ae(e)?Ue(e):e,Wt=e=>Ae(e)?Io(e):e;function Ze(e){return e?e.__v_isRef===!0:!1}function et(e){return Xi(e,!1)}function Vo(e){return Xi(e,!0)}function Xi(e,t){return Ze(e)?e:new Ds(e,t)}var Ds=class{constructor(t,o){this.dep=new jn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:_e(t),this._value=o?t:vt(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){let o=this._rawValue,i=this.__v_isShallow||lt(t)||wt(t);t=i?t:_e(t),bt(t,o)&&(this._rawValue=t,this._value=i?t:vt(t),this.dep.trigger())}};function Kt(e){return Ze(e)?e.value:e}var nu={get:(e,t,o)=>t==="__v_raw"?e:Kt(Reflect.get(e,t,o)),set:(e,t,o,i)=>{let s=e[t];return Ze(s)&&!Ze(o)?(s.value=o,!0):Reflect.set(e,t,o,i)}};function qo(e){return qt(e)?e:new Proxy(e,nu)}var Ts=class{constructor(t,o,i){this.fn=t,this.setter=o,this._value=void 0,this.dep=new jn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Hn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&qe!==this)return Fi(this,!0),!0}get value(){let t=this.dep.track();return Hi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}};function Zi(e,t,o=!1){let i,s;return ke(e)?i=e:(i=e.get,s=e.set),new Ts(i,s,o)}var Ao={},Mo=new WeakMap,rn;function xi(e,t=!1,o=rn){if(o){let i=Mo.get(o);i||Mo.set(o,i=[]),i.push(e)}}function er(e,t,o=Pe){let{immediate:i,deep:s,once:r,scheduler:a,augmentJob:p,call:f}=o,g=q=>{(o.onWarn||Bd)("Invalid watch source: ",q,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},y=q=>s?q:lt(q)||s===!1||s===0?Vt(q,1):Vt(q),b,m,E,P,k=!1,v=!1;if(Ze(e)?(m=()=>e.value,k=lt(e)):qt(e)?(m=()=>y(e),k=!0):ge(e)?(v=!0,k=e.some(q=>qt(q)||lt(q)),m=()=>e.map(q=>{if(Ze(q))return q.value;if(qt(q))return y(q);if(ke(q))return f?f(q,2):q()})):ke(e)?t?m=f?()=>f(e,2):e:m=()=>{if(E){Dt();try{E()}finally{Tt()}}let q=rn;rn=b;try{return f?f(e,3,[P]):e(P)}finally{rn=q}}:m=at,t&&s){let q=m,G=s===!0?1/0:s;m=()=>Vt(q(),G)}let S=$i(),_=()=>{b.stop(),S&&S.active&&Vn(S.effects,b)};if(r&&t){let q=t;t=(...G)=>{try{return q(...G)}finally{_()}}}let M=v?new Array(e.length).fill(Ao):Ao,L=q=>{if(!(!(b.flags&1)||!b.dirty&&!q))if(t){let G=b.run();if(q||s||k||(v?G.some((se,ee)=>bt(se,M[ee])):bt(G,M))){let se=rn;Dt();try{E&&E(),rn=b;let ee=[G,M===Ao?void 0:v&&M[0]===Ao?[]:M,P];M=G,f?f(t,3,ee):t(...ee)}finally{rn=se,Tt()}}}else b.run()};return p&&p(L),b=new Nn(m),b.scheduler=a?()=>a(L,!1):L,P=q=>xi(q,!1,b),E=b.onStop=()=>{let q=Mo.get(b);if(q){if(f)f(q,4);else for(let G of q)G();Mo.delete(b)}},t?i?L(!0):M=b.run():a?a(L.bind(null,!0),!0):b.run(),_.pause=b.pause.bind(b),_.resume=b.resume.bind(b),_.stop=_,_}function Vt(e,t=1/0,o){if(t<=0||!Ae(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,Ze(e))Vt(e.value,t,o);else if(ge(e))for(let i=0;i{Vt(i,t,o)});else if(Co(e)){for(let i in e)Vt(e[i],t,o);for(let i of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,i)&&Vt(e[i],t,o)}return e}function lo(e,t,o,i){try{return i?e(...i):e()}catch(s){uo(s,t,o)}}function kt(e,t,o,i){if(ke(e)){let s=lo(e,t,o,i);return s&&vs(s)&&s.catch(r=>{uo(r,t,o)}),s}if(ge(e)){let s=[];for(let r=0;r>>1,s=it[i],r=oo(s);r=oo(o)?it.push(e):it.splice(au(t),0,e),e.flags|=1,gr()}}function gr(){Uo||(Uo=vr.then(kr))}function yr(e){if(!ge(e))tn&&e.id===-1?tn.splice(Rn+1,0,e):e.flags&1||($t.push(e),e.flags|=1);else for(let t=0;t=t))continue;it.splice(i,1),i=e?i-1:_t,s.flags&4&&(s.flags&=-2),s(),s.flags&4||(s.flags&=-2)}}}function wr(e,t,o=0){if($t.length){let i=$t,s=0;if(t){i=[];for(let a=0;a<$t.length;a++){let p=$t[a];(p.i!==void 0?!p.i||p.i.uidoo(a)-oo(p));if($t.length=s,tn){for(let a=0;ae.id==null?e.flags&2?-1:1/0:e.id;function kr(e){let t=at;try{for(_t=0;_t{i._d&&Ho(-1);let r=Fo(t),a=un.length,p;try{p=e(...s)}finally{for(let f=un.length;f>a;f--)Xr();Fo(r),i._d&&Ho(1)}return p};return i._n=!0,i._c=!0,i._d=!0,i}function T(e,t){if(gt===null)return e;let o=Xo(gt),i=e.dirs||(e.dirs=[]);for(let s=0;s1)return o&&ke(t)?t.call(i&&i.proxy):t}}var uu=Symbol.for("v-scx"),cu=()=>{{let e=ut(uu);return e}};function Fe(e,t,o){return Er(e,t,o)}function Er(e,t,o=Pe){let{immediate:i,deep:s,flush:r,once:a}=o,p=je({},o),f=t&&i||!t&&r!=="post",g;if(_n){if(r==="sync"){let E=cu();g=E.__watcherHandles||(E.__watcherHandles=[])}else if(!f){let E=()=>{};return E.stop=at,E.resume=at,E.pause=at,E}}let y=tt;p.call=(E,P,k)=>kt(E,y,P,k);let b=!1;r==="post"?p.scheduler=E=>{E.i=y,dt(E,y&&y.suspense)}:r!=="sync"&&(b=!0,p.scheduler=(E,P)=>{P?E():Gs(E)}),p.augmentJob=E=>{t&&(E.flags|=4),b&&(E.flags|=2,y&&(E.id=y.uid,E.i=y))};let m=er(e,t,p);return _n&&(g?g.push(m):f&&m()),m}function pu(e,t,o){let i=this.proxy,s=$e(e)?e.includes(".")?Sr(i,e):()=>i[e]:e.bind(i,i),r;ke(t)?r=t:(r=t.handler,o=t);let a=fo(this),p=Er(s,r.bind(i),o);return a(),p}function Sr(e,t){let o=t.split(".");return()=>{let i=e;for(let s=0;se.__isTeleport;var Vs=Symbol("_leaveCb");function mu(e){let t=e[0];if(e.length>1){let o=!1;for(let i of e)if(i.type!==At){t=i,o=!0;break}}return t}function Nr(e){if(!Ko(e))return Wo(e.type)&&e.children?mu(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&ke(o.default))return o.default()}}function so(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let o=e.component.subTree;so(Wo(o.type)&&Nr(o)||o,t)}else if(e.shapeFlag&128)e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback);else if(e.transition=t,e.type===W&&ge(e.children)){let o=Lr(e.children,!1);o&&so(o,t)}}function Us(e){if(e.component)return Us(e.component.subTree);if(e.type===W){let t=ge(e.children)&&Lr(e.children,!1);return t?Us(t):void 0}if(e.type!==At)return e}function co(e,t){return ke(e)?je({name:e.name},t,{setup:e}):e}function Ws(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function tr(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}var Bo=new WeakMap;function xn(e,t,o,i,s=!1){if(ge(e)){e.forEach((k,v)=>xn(k,t&&(ge(t)?t[v]:t),o,i,s));return}if(eo(i)&&!s){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&xn(e,t,o,i.component.subTree);return}let r=i.shapeFlag&4?Xo(i.component):i.el,a=s?null:r,{i:p,r:f}=e,g=t&&t.r,y=p.refs===Pe?p.refs={}:p.refs,b=p.setupState,m=_e(b),E=b===Pe?hs:k=>tr(y,k)?!1:Te(m,k),P=(k,v)=>!(v&&tr(y,v));if(g!=null&&g!==f){if(nr(t),$e(g))y[g]=null,E(g)&&(b[g]=null);else if(Ze(g)){let k=t;P(g,k.k)&&(g.value=null),k.k&&(y[k.k]=null)}}if(ke(f))lo(f,p,12,[a,y]);else{let k=$e(f),v=Ze(f);if(k||v){let S=()=>{if(e.f){let _=k?E(f)?b[f]:y[f]:P(f)||!e.k?f.value:y[e.k];if(s)ge(_)&&Vn(_,r);else if(ge(_))_.includes(r)||_.push(r);else if(k)y[f]=[r],E(f)&&(b[f]=y[f]);else{let M=[r];P(f,e.k)&&(f.value=M),e.k&&(y[e.k]=M)}}else k?(y[f]=a,E(f)&&(b[f]=a)):v&&(P(f,e.k)&&(f.value=a),e.k&&(y[e.k]=a))};if(a){let _=()=>{S(),Bo.delete(e)};_.id=-1,Bo.set(e,_),dt(_,o)}else nr(e),S()}}}function nr(e){let t=Bo.get(e);t&&(t.flags|=8,Bo.delete(e))}var or=e=>e.nodeType===8;var q7=$n().requestIdleCallback||(e=>setTimeout(e,1)),L7=$n().cancelIdleCallback||(e=>clearTimeout(e));function hu(e,t){if(or(e)&&e.data==="["){let o=1,i=e.nextSibling;for(;i;){if(i.nodeType===1){if(t(i)===!1)break}else if(or(i))if(i.data==="]"){if(--o===0)break}else i.data==="["&&o++;i=i.nextSibling}}else t(e)}var eo=e=>!!e.type.__asyncLoader;function Rr(e){ke(e)&&(e={loader:e});let{loader:t,loadingComponent:o,errorComponent:i,delay:s=200,hydrate:r,timeout:a,suspensible:p=!0,onError:f}=e,g=null,y,b=0,m=()=>(b++,g=null,E()),E=()=>{let P;return g||(P=g=t().catch(k=>{if(k=k instanceof Error?k:new Error(String(k)),f)return new Promise((v,S)=>{f(k,()=>v(m()),()=>S(k),b+1)});throw k}).then(k=>P!==g&&g?g:(k&&(k.__esModule||k[Symbol.toStringTag]==="Module")&&(k=k.default),y=k,k)))};return co({name:"AsyncComponentWrapper",__asyncLoader:E,__asyncHydrate(P,k,v){let S=P.isConnected,_=!1;(k.bu||(k.bu=[])).push(()=>_=!0);let M=()=>{_||!P.parentNode||S&&!P.isConnected||v()},L=r?()=>{let q=r(M,G=>hu(P,G));q&&(k.bum||(k.bum=[])).push(q)}:M;y?L():E().then(()=>!k.isUnmounted&&L())},get __asyncResolved(){return y},setup(){let P=tt;if(Ws(P),y)return()=>Lo(y,P);let k=q=>{g=null,uo(q,P,13,!i)};if(p&&P.suspense||_n)return E().then(q=>()=>Lo(q,P)).catch(q=>(k(q),()=>i?De(i,{error:q}):null));let v=et(!1),S=et(),_=et(!!s),M,L;return po(()=>{M!=null&&clearTimeout(M),L!=null&&clearTimeout(L)}),s&&(L=setTimeout(()=>{P.isUnmounted||(_.value=!1)},s)),a!=null&&(M=setTimeout(()=>{if(!P.isUnmounted&&!v.value&&!S.value){let q=new Error(`Async component timed out after ${a}ms.`);k(q),S.value=q}},a)),E().then(()=>{P.isUnmounted||(v.value=!0,P.parent&&Ko(P.parent.vnode)&&P.parent.update())}).catch(q=>{if(P.isUnmounted){g=null;return}k(q),S.value=q}),()=>{if(v.value&&y)return Lo(y,P);if(S.value&&i)return De(i,{error:S.value});if(o&&!_.value)return Lo(o,P)}}})}function Lo(e,t){let{ref:o,props:i,children:s,ce:r}=t.vnode,a=De(e,i,s);return a.ref=o,a.ce=r,delete t.vnode.ce,a}var Ko=e=>e.type.__isKeepAlive;function Dr(e,t){_r(e,"a",t)}function Tr(e,t){_r(e,"da",t)}function _r(e,t,o=tt){let i=e.__wdc||(e.__wdc=()=>{let s=o;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Yo(t,i,o),o){let s=o.parent;for(;s&&s.parent;)Ko(s.parent.vnode)&&vu(i,t,o,s),s=s.parent}}function vu(e,t,o,i){let s=Yo(t,e,i,!0);po(()=>{Vn(i[t],s)},o)}function Yo(e,t,o=tt,i=!1){if(o){let s=o[e]||(o[e]=[]),r=t.__weh||(t.__weh=(...a)=>{Dt();let p=fo(o),f=kt(t,o,e,a);return p(),Tt(),f});return i?s.unshift(r):s.push(r),r}}var Jt=e=>(t,o=tt)=>{(!_n||e==="sp")&&Yo(e,(...i)=>t(...i),o)},gu=Jt("bm"),Ft=Jt("m"),Ar=Jt("bu"),Or=Jt("u"),pn=Jt("bum"),po=Jt("um"),yu=Jt("sp"),bu=Jt("rtg"),wu=Jt("rtc");function ku(e,t=tt){Yo("ec",e,t)}var Pr="components",Cu="directives";function We(e,t){return Ir(Pr,e,!0,t)||e}var Eu=Symbol.for("v-ndc");function we(e){return Ir(Cu,e)}function Ir(e,t,o=!0,i=!1){let s=gt||tt;if(s){let r=s.type;if(e===Pr){let p=rc(r,!1);if(p&&(p===t||p===Je(t)||p===sn(Je(t))))return r}let a=sr(s[e]||r[e],t)||sr(s.appContext[e],t);return!a&&i?r:a}}function sr(e,t){return e&&(e[t]||e[Je(t)]||e[sn(Je(t))])}function oe(e,t,o,i){let s,r=o&&o[i],a=ge(e);if(a||$e(e)){let p=a&&qt(e),f=!1,g=!1;p&&(f=!lt(e),g=wt(e),e=Kn(e)),s=new Array(e.length);for(let y=0,b=e.length;yt(p,f,void 0,r&&r[f]));else{let p=Object.keys(e);s=new Array(p.length);for(let f=0,g=p.length;fe?ta(e)?Xo(e):Fs(e.parent):null;var to=je(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Fs(e.parent),$root:e=>Fs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ks(e),$forceUpdate:e=>e.f||(e.f=()=>{Gs(e.update)}),$nextTick:e=>e.n||(e.n=Ge.bind(e.proxy)),$watch:e=>pu.bind(e)});var qs=(e,t)=>e!==Pe&&!e.__isScriptSetup&&Te(e,t),Su={get({_:e},t){if(t==="__v_skip")return!0;let{ctx:o,setupState:i,data:s,props:r,accessCache:a,type:p,appContext:f}=e;if(t[0]!=="$"){let m=a[t];if(m!==void 0)switch(m){case 1:return i[t];case 2:return s[t];case 4:return o[t];case 3:return r[t]}else{if(qs(i,t))return a[t]=1,i[t];if(s!==Pe&&Te(s,t))return a[t]=2,s[t];if(Te(r,t))return a[t]=3,r[t];if(o!==Pe&&Te(o,t))return a[t]=4,o[t];Bs&&(a[t]=0)}}let g=to[t],y,b;if(g)return t==="$attrs"&&xe(e.attrs,"get",""),g(e);if((y=p.__cssModules)&&(y=y[t]))return y;if(o!==Pe&&Te(o,t))return a[t]=4,o[t];if(b=f.config.globalProperties,Te(b,t))return b[t]},set({_:e},t,o){let{data:i,setupState:s,ctx:r}=e;return qs(s,t)?(s[t]=o,!0):i!==Pe&&Te(i,t)?(i[t]=o,!0):Te(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:i,appContext:s,props:r,type:a}},p){let f;return!!(o[p]||e!==Pe&&p[0]!=="$"&&Te(e,p)||qs(t,p)||Te(r,p)||Te(i,p)||Te(to,p)||Te(s.config.globalProperties,p)||(f=a.__cssModules)&&f[p])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Te(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function ir(e){return ge(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}var Bs=!0;function Nu(e){let t=Ks(e),o=e.proxy,i=e.ctx;Bs=!1,t.beforeCreate&&rr(t.beforeCreate,e,"bc");let{data:s,computed:r,methods:a,watch:p,provide:f,inject:g,created:y,beforeMount:b,mounted:m,beforeUpdate:E,updated:P,activated:k,deactivated:v,beforeDestroy:S,beforeUnmount:_,destroyed:M,unmounted:L,render:q,renderTracked:G,renderTriggered:se,errorCaptured:ee,serverPrefetch:R,expose:K,inheritAttrs:te,components:ve,directives:x,filters:ue}=t;if(g&&Ru(g,i,null),a)for(let ye in a){let be=a[ye];ke(be)&&(i[ye]=be.bind(o))}if(s){let ye=s.call(o,o);Ae(ye)&&(e.data=Ue(ye))}if(Bs=!0,r)for(let ye in r){let be=r[ye],Le=ke(be)?be.bind(o,o):ke(be.get)?be.get.bind(o,o):at,ze=!ke(be)&&ke(be.set)?be.set.bind(o):at,He=nt({get:Le,set:ze});Object.defineProperty(i,ye,{enumerable:!0,configurable:!0,get:()=>He.value,set:Me=>He.value=Me})}if(p)for(let ye in p)Mr(p[ye],i,o,ye);if(f){let ye=ke(f)?f.call(o):f;Reflect.ownKeys(ye).forEach(be=>{cn(be,ye[be])})}y&&rr(y,e,"c");function Ee(ye,be){ge(be)?be.forEach(Le=>ye(Le.bind(o))):be&&ye(be.bind(o))}if(Ee(gu,b),Ee(Ft,m),Ee(Ar,E),Ee(Or,P),Ee(Dr,k),Ee(Tr,v),Ee(ku,ee),Ee(wu,G),Ee(bu,se),Ee(pn,_),Ee(po,L),Ee(yu,R),ge(K))if(K.length){let ye=e.exposed||(e.exposed={});K.forEach(be=>{Object.defineProperty(ye,be,{get:()=>o[be],set:Le=>o[be]=Le,enumerable:!0})})}else e.exposed||(e.exposed={});q&&e.render===at&&(e.render=q),te!=null&&(e.inheritAttrs=te),ve&&(e.components=ve),x&&(e.directives=x),R&&Ws(e)}function Ru(e,t,o=at){ge(e)&&(e=zs(e));for(let i in e){let s=e[i],r;Ae(s)?"default"in s?r=ut(s.from||i,s.default,!0):r=ut(s.from||i):r=ut(s),Ze(r)?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>r.value,set:a=>r.value=a}):t[i]=r}}function rr(e,t,o){kt(ge(e)?e.map(i=>i.bind(t.proxy)):e.bind(t.proxy),t,o)}function Mr(e,t,o,i){let s=i.includes(".")?Sr(o,i):()=>o[i];if($e(e)){let r=t[e];ke(r)&&Fe(s,r)}else if(ke(e))Fe(s,e.bind(o));else if(Ae(e))if(ge(e))e.forEach(r=>Mr(r,t,o,i));else{let r=ke(e.handler)?e.handler.bind(o):t[e.handler];ke(r)&&Fe(s,r,e)}}function Ks(e){let t=e.type,{mixins:o,extends:i}=t,{mixins:s,optionsCache:r,config:{optionMergeStrategies:a}}=e.appContext,p=r.get(t),f;return p?f=p:!s.length&&!o&&!i?f=t:(f={},s.length&&s.forEach(g=>zo(f,g,a,!0)),zo(f,t,a)),Ae(t)&&r.set(t,f),f}function zo(e,t,o,i=!1){let{mixins:s,extends:r}=t;r&&zo(e,r,o,!0),s&&s.forEach(a=>zo(e,a,o,!0));for(let a in t)if(!(i&&a==="expose")){let p=Du[a]||o&&o[a];e[a]=p?p(e[a],t[a]):t[a]}return e}var Du={data:ar,props:lr,emits:lr,methods:Zn,computed:Zn,beforeCreate:st,created:st,beforeMount:st,mounted:st,beforeUpdate:st,updated:st,beforeDestroy:st,beforeUnmount:st,destroyed:st,unmounted:st,activated:st,deactivated:st,errorCaptured:st,serverPrefetch:st,components:Zn,directives:Zn,watch:_u,provide:ar,inject:Tu};function ar(e,t){return t?e?function(){return je(ke(e)?e.call(this,this):e,ke(t)?t.call(this,this):t)}:t:e}function Tu(e,t){return Zn(zs(e),zs(t))}function zs(e){if(ge(e)){let t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Je(t)}Modifiers`]||e[`${Pt(t)}Modifiers`];function Iu(e,t,...o){if(e.isUnmounted)return;let i=e.vnode.props||Pe,s=o,r=t.startsWith("update:"),a=r&&Pu(i,t.slice(7));a&&(a.trim&&(s=o.map(y=>$e(y)?y.trim():y)),a.number&&(s=s.map(En)));let p,f=i[p=Ln(t)]||i[p=Ln(Je(t))];!f&&r&&(f=i[p=Ln(Pt(t))]),f&&kt(f,e,6,s);let g=i[p+"Once"];if(g){if(!e.emitted)e.emitted={};else if(e.emitted[p])return;e.emitted[p]=!0,kt(g,e,6,s)}}var Mu=new WeakMap;function qr(e,t,o=!1){let i=o?Mu:t.emitsCache,s=i.get(e);if(s!==void 0)return s;let r=e.emits,a={},p=!1;if(!ke(e)){let f=g=>{let y=qr(g,t,!0);y&&(p=!0,je(a,y))};!o&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}return!r&&!p?(Ae(e)&&i.set(e,null),null):(ge(r)?r.forEach(f=>a[f]=null):je(a,r),Ae(e)&&i.set(e,a),a)}function Jo(e,t){return!e||!bn(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Te(e,t[0].toLowerCase()+t.slice(1))||Te(e,Pt(t))||Te(e,t))}function Ls(e){let{type:t,vnode:o,proxy:i,withProxy:s,propsOptions:[r],slots:a,attrs:p,emit:f,render:g,renderCache:y,props:b,data:m,setupState:E,ctx:P,inheritAttrs:k}=e,v=Fo(e),S,_;try{if(o.shapeFlag&4){let q=s||i,G=q;S=Ut(g.call(G,q,y,b,E,m,P)),_=p}else{let q=t;S=Ut(q.length>1?q(b,{attrs:p,slots:a,emit:f}):q(b,null)),_=t.props?p:Vu(p)}}catch(q){un.length=0,uo(q,e,1),S=De(At)}let M=S,L;if(_&&k!==!1){let q=Object.keys(_),{shapeFlag:G}=M;q.length&&G&7&&(r&&q.some(wn)&&(_=qu(_,r)),M=Tn(M,_,!1,!0))}if(o.dirs&&(M=Tn(M,null,!1,!0),M.dirs=M.dirs?M.dirs.concat(o.dirs):o.dirs),o.transition){let q=Wo(M.type)&&Nr(M)||M;so(q,o.transition)}return S=M,Fo(v),S}function Lr(e,t=!0){let o;for(let i=0;i{let t;for(let o in e)(o==="class"||o==="style"||bn(o))&&((t||(t={}))[o]=e[o]);return t},qu=(e,t)=>{let o={};for(let i in e)(!wn(i)||!(i.slice(9)in t))&&(o[i]=e[i]);return o};function Lu(e,t,o){let{props:i,children:s,component:r}=e,{props:a,children:p,patchFlag:f}=t,g=r.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&f>=0){if(f&1024)return!0;if(f&16)return i?dr(i,a,g):!!a;if(f&8){let y=t.dynamicProps;for(let b=0;bObject.create(Ur),Br=e=>Object.getPrototypeOf(e)===Ur;function Uu(e,t,o,i=!1){let s={},r=Fr();e.propsDefaults=Object.create(null),zr(e,t,s,r);for(let a in e.propsOptions[0])a in s||(s[a]=void 0);o?e.props=i?s:Yn(s):e.type.props?e.props=s:e.props=r,e.attrs=r}function Fu(e,t,o,i){let{props:s,attrs:r,vnode:{patchFlag:a}}=e,p=_e(s),[f]=e.propsOptions,g=!1;if((i||a>0)&&!(a&16)){if(a&8){let y=e.vnode.dynamicProps;for(let b=0;b{f=!0;let[m,E]=Hr(b,t,!0);je(a,m),E&&p.push(...E)};!o&&t.mixins.length&&t.mixins.forEach(y),e.extends&&y(e.extends),e.mixins&&e.mixins.forEach(y)}if(!r&&!f)return Ae(e)&&i.set(e,en),en;if(ge(r))for(let y=0;ye==="_"||e==="_ctx"||e==="$stable",Js=e=>ge(e)?e.map(Ut):[Ut(e)],zu=(e,t,o)=>{if(t._n)return t;let i=du((...s)=>Js(t(...s)),o);return i._c=!1,i},jr=(e,t,o)=>{let i=e._ctx;for(let s in e){if(Ys(s))continue;let r=e[s];if(ke(r))t[s]=zu(s,r,i);else if(r!=null){let a=Js(r);t[s]=()=>a}}},Gr=(e,t)=>{let o=Js(t);e.slots.default=()=>o},Wr=(e,t,o)=>{for(let i in t)(o||!Ys(i))&&(e[i]=t[i])},Hu=(e,t,o)=>{let i=e.slots=Fr();if(e.vnode.shapeFlag&32){let s=t._;s?(Wr(i,t,o),o&&No(i,"_",s,!0)):jr(t,i)}else t&&Gr(e,t)},ju=(e,t,o)=>{let{vnode:i,slots:s}=e,r=!0,a=Pe;if(i.shapeFlag&32){let p=t._;p?o&&p===1?r=!1:Wr(s,t,o):(r=!t.$stable,jr(t,s)),a=t}else t&&(Gr(e,t),a={default:1});if(r)for(let p in s)!Ys(p)&&a[p]==null&&delete s[p]};function Gu(){let e=[]}var dt=Ju;function Kr(e){return Wu(e)}function Wu(e,t){Gu();let o=$n();o.__VUE__=!0;let{insert:i,remove:s,patchProp:r,createElement:a,createText:p,createComment:f,setText:g,setElementText:y,parentNode:b,nextSibling:m,setScopeId:E=at,insertStaticContent:P}=e,k=(C,N,V,j=null,w=null,A=null,D=void 0,I=null,z=!!N.dynamicChildren)=>{if(C===N)return;C&&!Xn(C,N)&&(j=Q(C),F(C,w,A,!0),C=null),N.patchFlag===-2&&(z=!1,N.dynamicChildren=null),N.dynamicChildren&&C&&C.dynamicChildren&&C.dynamicChildren.hasOnce&&(N.dynamicChildren===en&&(N.dynamicChildren=[]),N.dynamicChildren.hasOnce=!0);let{type:B,ref:ie,shapeFlag:Z}=N;switch(B){case Qo:v(C,N,V,j);break;case At:S(C,N,V,j);break;case no:C==null&&_(N,V,j,D);break;case W:x(C,N,V,j,w,A,D,I,z);break;default:Z&1?G(C,N,V,j,w,A,D,I,z):Z&6?ue(C,N,V,j,w,A,D,I,z):(Z&64||Z&128)&&B.process(C,N,V,j,w,A,D,I,z,re)}ie!=null&&w?xn(ie,C&&C.ref,A,N||C,!N):ie==null&&C&&C.ref!=null&&xn(C.ref,null,A,C,!0)},v=(C,N,V,j)=>{if(C==null)i(N.el=p(N.children),V,j);else{let w=N.el=C.el;N.children!==C.children&&g(w,N.children)}},S=(C,N,V,j)=>{C==null?i(N.el=f(N.children||""),V,j):N.el=C.el},_=(C,N,V,j)=>{[C.el,C.anchor]=P(C.children,N,V,j,C.el,C.anchor)},M=(C,N,V,j)=>{if(N.children!==C.children){let w=m(C.anchor);q(C),[N.el,N.anchor]=P(N.children,V,w,j)}else N.el=C.el,N.anchor=C.anchor},L=({el:C,anchor:N},V,j)=>{let w;for(;C&&C!==N;)w=m(C),i(C,V,j),C=w;i(N,V,j)},q=({el:C,anchor:N})=>{let V;for(;C&&C!==N;)V=m(C),s(C),C=V;s(N)},G=(C,N,V,j,w,A,D,I,z)=>{if(N.type==="svg"?D="svg":N.type==="math"&&(D="mathml"),C==null)se(N,V,j,w,A,D,I,z);else{let B=C.el&&C.el._isVueCE?C.el:null;try{B&&B._beginPatch(),K(C,N,w,A,D,I,z)}finally{B&&B._endPatch()}}},se=(C,N,V,j,w,A,D,I)=>{let z,B,{props:ie,shapeFlag:Z,transition:le,dirs:ce}=C;if(z=C.el=a(C.type,A,ie&&ie.is,ie),Z&8?y(z,C.children):Z&16&&R(C.children,z,null,j,w,$s(C,A),D,I),ce&&ln(C,null,j,"created"),ee(z,C,C.scopeId,D,j),ie){for(let Ve in ie)Ve!=="value"&&!kn(Ve)&&r(z,Ve,null,ie[Ve],A,j);"value"in ie&&r(z,"value",null,ie.value,A),(B=ie.onVnodeBeforeMount)&&Lt(B,j,C)}ce&&ln(C,null,j,"beforeMount");let Ce=Ku(w,le);Ce&&le.beforeEnter(z),i(z,N,V),((B=ie&&ie.onVnodeMounted)||Ce||ce)&&dt(()=>{let Ie;B&&Lt(B,j,C),Ce&&le.enter(z),ce&&ln(C,null,j,"mounted")},w)},ee=(C,N,V,j,w)=>{if(V&&E(C,V),j)for(let A=0;A{for(let B=z;B{let I=N.el=C.el,{patchFlag:z,dynamicChildren:B,dirs:ie}=N;z|=C.patchFlag&16;let Z=C.props||Pe,le=N.props||Pe,ce;if(V&&dn(V,!1),(ce=le.onVnodeBeforeUpdate)&&Lt(ce,V,N,C),ie&&ln(N,C,V,"beforeUpdate"),V&&dn(V,!0),B&&(!C.dynamicChildren||C.dynamicChildren.length!==B.length)&&(z=0,D=!1,B=null),(Z.innerHTML&&le.innerHTML==null||Z.textContent&&le.textContent==null)&&y(I,""),B?te(C.dynamicChildren,B,I,V,j,$s(N,w),A):D||Le(C,N,I,null,V,j,$s(N,w),A,!1),z>0){if(z&16)ve(I,Z,le,V,w);else if(z&2&&Z.class!==le.class&&r(I,"class",null,le.class,w),z&4&&r(I,"style",Z.style,le.style,w),z&8){let Ce=N.dynamicProps;for(let Ve=0;Ve{ce&&Lt(ce,V,N,C),ie&&ln(N,C,V,"updated")},j)},te=(C,N,V,j,w,A,D)=>{for(let I=0;I{if(N!==V){if(N!==Pe)for(let A in N)!kn(A)&&!(A in V)&&r(C,A,N[A],null,w,j);for(let A in V){if(kn(A))continue;let D=V[A],I=N[A];D!==I&&A!=="value"&&r(C,A,I,D,w,j)}"value"in V&&r(C,"value",N.value,V.value,w)}},x=(C,N,V,j,w,A,D,I,z)=>{let B=N.el=C?C.el:p(""),ie=N.anchor=C?C.anchor:p(""),{patchFlag:Z,dynamicChildren:le,slotScopeIds:ce}=N;ce&&(I=I?I.concat(ce):ce),C==null?(i(B,V,j),i(ie,V,j),R(N.children||[],V,ie,w,A,D,I,z)):Z>0&&Z&64&&le&&C.dynamicChildren&&C.dynamicChildren.length===le.length?(te(C.dynamicChildren,le,V,w,A,D,I),(N.key!=null||w&&N===w.subTree)&&Yr(C,N,!0)):Le(C,N,V,ie,w,A,D,I,z)},ue=(C,N,V,j,w,A,D,I,z)=>{N.slotScopeIds=I,C==null?N.shapeFlag&512?w.ctx.activate(N,V,j,D,z):he(N,V,j,w,A,D,z):Ee(C,N,z)},he=(C,N,V,j,w,A,D)=>{let I=C.component=tc(C,j,w);if(Ko(C)&&(I.ctx.renderer=re),nc(I,!1,D),I.asyncDep){if(w&&w.registerDep(I,ye,D,A),!C.el){let z=I.subTree=De(At);S(null,z,N,V),C.placeholder=z.el}}else ye(I,C,N,V,w,A,D)},Ee=(C,N,V)=>{let j=N.component=C.component;if(Lu(C,N,V))if(j.asyncDep&&!j.asyncResolved){N.el=C.el,N.placeholder=C.placeholder,be(j,N,V);return}else j.next=N,j.update();else N.el=C.el,N.placeholder=C.placeholder,j.vnode=N},ye=(C,N,V,j,w,A,D)=>{let I=()=>{if(C.isMounted){let{next:Z,bu:le,u:ce,parent:Ce,vnode:Ve}=C;{let ft=Jr(C);if(ft){Z&&(Z.el=Ve.el,be(C,Z,D)),ft.asyncDep.then(()=>{dt(()=>{C.isUnmounted||B()},w)});return}}let Ie=Z,Ke;dn(C,!1),Z?(Z.el=Ve.el,be(C,Z,D)):Z=Ve,le&&Cn(le),(Ke=Z.props&&Z.props.onVnodeBeforeUpdate)&&Lt(Ke,Ce,Z,Ve),dn(C,!0);let Ye=Ls(C),Et=C.subTree;C.subTree=Ye,k(Et,Ye,b(Et.el),Q(Et),C,w,A),Z.el=Ye.el,Ie===null&&$u(C,Ye.el),ce&&dt(ce,w),(Ke=Z.props&&Z.props.onVnodeUpdated)&&dt(()=>Lt(Ke,Ce,Z,Ve),w)}else{let Z,{el:le,props:ce}=N,{bm:Ce,m:Ve,parent:Ie,root:Ke,type:Ye}=C,Et=eo(N);if(dn(C,!1),Ce&&Cn(Ce),!Et&&(Z=ce&&ce.onVnodeBeforeMount)&&Lt(Z,Ie,N),dn(C,!0),le&&Ne){let ft=()=>{C.subTree=Ls(C),Ne(le,C.subTree,C,w,null)};Et&&Ye.__asyncHydrate?Ye.__asyncHydrate(le,C,ft):ft()}else{Ke.ce&&Ke.ce._hasShadowRoot()&&Ke.ce._injectChildStyle(Ye,C.parent?C.parent.type:void 0);let ft=C.subTree=Ls(C);k(null,ft,V,j,C,w,A),N.el=ft.el}if(Ve&&dt(Ve,w),!Et&&(Z=ce&&ce.onVnodeMounted)){let ft=N;dt(()=>Lt(Z,Ie,ft),w)}(N.shapeFlag&256||Ie&&eo(Ie.vnode)&&Ie.vnode.shapeFlag&256)&&C.a&&dt(C.a,w),C.isMounted=!0,N=V=j=null}};C.scope.on();let z=C.effect=new Nn(I);C.scope.off();let B=C.update=z.run.bind(z),ie=C.job=z.runIfDirty.bind(z);ie.i=C,ie.id=C.uid,z.scheduler=()=>Gs(ie),dn(C,!0),B()},be=(C,N,V)=>{N.component=C;let j=C.vnode.props;C.vnode=N,C.next=null,Fu(C,N.props,j,V),ju(C,N.children,V),Dt(),br(C),Tt()},Le=(C,N,V,j,w,A,D,I,z=!1)=>{let B=C&&C.children,ie=C?C.shapeFlag:0,Z=N.children,{patchFlag:le,shapeFlag:ce}=N;if(le>0){if(le&128){He(B,Z,V,j,w,A,D,I,z);return}else if(le&256){ze(B,Z,V,j,w,A,D,I,z);return}}ce&8?(ie&16&&U(B,w,A),Z!==B&&y(V,Z)):ie&16?ce&16?He(B,Z,V,j,w,A,D,I,z):U(B,w,A,!0):(ie&8&&y(V,""),ce&16&&R(Z,V,j,w,A,D,I,z))},ze=(C,N,V,j,w,A,D,I,z)=>{C=C||en,N=N||en;let B=C.length,ie=N.length,Z=Math.min(B,ie),le;for(le=0;leie?U(C,w,A,!0,!1,Z):R(N,V,j,w,A,D,I,z,Z)},He=(C,N,V,j,w,A,D,I,z)=>{let B=0,ie=N.length,Z=C.length-1,le=ie-1;for(;B<=Z&&B<=le;){let ce=C[B],Ce=N[B]=z?Yt(N[B]):Ut(N[B]);if(Xn(ce,Ce))k(ce,Ce,V,null,w,A,D,I,z);else break;B++}for(;B<=Z&&B<=le;){let ce=C[Z],Ce=N[le]=z?Yt(N[le]):Ut(N[le]);if(Xn(ce,Ce))k(ce,Ce,V,null,w,A,D,I,z);else break;Z--,le--}if(B>Z){if(B<=le){let ce=le+1,Ce=cele)for(;B<=Z;)F(C[B],w,A,!0),B++;else{let ce=B,Ce=B,Ve=new Map;for(B=Ce;B<=le;B++){let mt=N[B]=z?Yt(N[B]):Ut(N[B]);mt.key!=null&&Ve.set(mt.key,B)}let Ie,Ke=0,Ye=le-Ce+1,Et=!1,ft=0,Mn=new Array(Ye);for(B=0;B=Ye){F(mt,w,A,!0);continue}let Ot;if(mt.key!=null)Ot=Ve.get(mt.key);else for(Ie=Ce;Ie<=le;Ie++)if(Mn[Ie-Ce]===0&&Xn(mt,N[Ie])){Ot=Ie;break}Ot===void 0?F(mt,w,A,!0):(Mn[Ot-Ce]=B+1,Ot>=ft?ft=Ot:Et=!0,k(mt,N[Ot],V,null,w,A,D,I,z),Ke++)}let ki=Et?Yu(Mn):en;for(Ie=ki.length-1,B=Ye-1;B>=0;B--){let mt=Ce+B,Ot=N[mt],Ci=N[mt+1],Ei=mt+1{let{el:A,type:D,transition:I,children:z,shapeFlag:B}=C;if(B&6){Me(C.component.subTree,N,V,j);return}if(B&128){C.suspense.move(N,V,j);return}if(B&64){D.move(C,N,V,re);return}if(D===W){i(A,N,V);for(let Z=0;ZI.enter(A),w));else{let{leave:Z,delayLeave:le,afterLeave:ce}=I,Ce=()=>{C.ctx.isUnmounted?s(A):i(A,N,V)},Ve=()=>{let Ie=A._isLeaving||!!A[Vs];A._isLeaving&&A[Vs](!0),I.persisted&&!Ie?Ce():Z(A,()=>{Ce(),ce&&ce()})};le?le(A,Ce,Ve):Ve()}else i(A,N,V)},F=(C,N,V,j=!1,w=!1)=>{let{type:A,props:D,ref:I,children:z,dynamicChildren:B,shapeFlag:ie,patchFlag:Z,dirs:le,cacheIndex:ce,memo:Ce}=C;if((Z===-2||B&&B.hasOnce)&&(w=!1),I!=null&&(Dt(),xn(I,null,V,C,!0),Tt()),ce!=null&&(!C.ctx||C.ctx===N)&&(N.renderCache[ce]=void 0),ie&256){N.ctx.deactivate(C);return}let Ve=ie&1&&le,Ie=!eo(C),Ke;if(Ie&&(Ke=D&&D.onVnodeBeforeUnmount)&&Lt(Ke,N,C),ie&6)ne(C.component,V,j);else{if(ie&128){C.suspense.unmount(V,j);return}Ve&&ln(C,null,N,"beforeUnmount"),ie&64?C.type.remove(C,N,V,re,j):B&&!B.hasOnce&&(A!==W||Z>0&&Z&64)?U(B,N,V,!1,!0):(A===W&&Z&384||!w&&ie&16)&&U(z,N,V),j&&X(C)}let Ye=Ce!=null&&ce==null;(Ie&&(Ke=D&&D.onVnodeUnmounted)||Ve||Ye)&&dt(()=>{Ke&&Lt(Ke,N,C),Ve&&ln(C,null,N,"unmounted"),Ye&&(C.el=null)},V)},X=C=>{let{type:N,el:V,anchor:j,transition:w}=C,A=N===W;if(A&&!w){J(V,j);return}if(N===no){q(C),w&&!w.persisted&&w.afterLeave&&w.afterLeave();return}let D=A?Us(C):C,I=()=>{A?b(V)&&J(V,j):s(V),w&&!w.persisted&&w.afterLeave&&w.afterLeave()};if(D&&D.shapeFlag&1&&w&&!w.persisted){let{leave:z,delayLeave:B}=w,ie=D.el,Z=()=>z(ie,I);B?B(ie,I,Z):Z()}else I()},J=(C,N)=>{let V;for(;C!==N;)V=m(C),s(C),C=V;s(N)},ne=(C,N,V)=>{let{bum:j,scope:w,job:A,subTree:D,um:I,m:z,a:B}=C;cr(z),cr(B),j&&Cn(j),w.stop(),A?(A.flags|=8,F(D,C,N,V)):C.vnode.el&&D&&(D.transition=C.vnode.transition,F(D,C,N,V)),I&&dt(I,N),dt(()=>{C.isUnmounted=!0},N)},U=(C,N,V,j=!1,w=!1,A=0)=>{for(let D=A;D{if(C.shapeFlag&6)return Q(C.component.subTree);if(C.shapeFlag&128)return C.suspense.next();let N=m(C.anchor||C.el),V=N&&N[fu];return V?m(V):N},H=(C,N,V)=>{let j=C&&N._vnode?void 0:C&&C.component?C.component.uid:ec();lu(()=>{C==null?N._vnode&&F(N._vnode,null,null,!0):k(N._vnode||null,C,N,null,null,null,V),N._vnode=C},j)},re={p:k,um:F,m:Me,r:X,mt:he,mc:R,pc:Le,pbc:te,n:Q,o:e},de,Ne;return t&&([de,Ne]=t(re)),{render:H,hydrate:de,createApp:Ou(H,de)}}function $s({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function dn({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ku(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Yr(e,t,o=!1){let i=e.children,s=t.children;if(ge(i)&&ge(s))for(let r=0;r>1,e[o[p]]0&&(t[i]=o[r-1]),o[r]=i)}}for(r=o.length,a=o[r-1];r-- >0;)o[r]=a,a=t[a];return o}function Jr(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Jr(t)}function cr(e){if(e)for(let t=0;te.__isSuspense;function Ju(e,t){t&&t.pendingBranch?ge(e)?t.effects.push(...e):t.effects.push(e):yr(e)}var W=Symbol.for("v-fgt"),Qo=Symbol.for("v-txt"),At=Symbol.for("v-cmt"),no=Symbol.for("v-stc"),un=[],yt=null;function l(e=!1){un.push(yt=e?null:[])}function Xr(){un.pop(),yt=un[un.length-1]||null}var io=1;function Ho(e,t=!1){io+=e,e<0&&yt&&t&&(yt.hasOnce=!0)}function Zr(e){return e.dynamicChildren=io>0?yt||en:null,Xr(),io>0&&yt&&yt.push(e),e}function d(e,t,o,i,s,r){return Zr(n(e,t,o,i,s,r,!0))}function Bt(e,t,o,i,s){return Zr(De(e,t,o,i,s,!0))}function ro(e){return e?e.__v_isVNode===!0:!1}function Xn(e,t){return e.type===t.type&&e.key===t.key}var xr=({key:e})=>e??null,$o=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?$e(e)||Ze(e)||ke(e)?{i:gt,r:e,k:t,f:!!o}:e:null);function n(e,t=null,o=null,i=0,s=null,r=e===W?0:1,a=!1,p=!1){let f={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&xr(t),ref:t&&$o(t),scopeId:Cr,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:i,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:gt};return p?(jo(f,o),r&128&&e.normalize(f)):o&&(f.shapeFlag|=$e(o)?8:16),io>0&&!a&&yt&&(f.patchFlag>0||r&6)&&f.patchFlag!==32&&yt.push(f),f}var De=Qu;function Qu(e,t=null,o=null,i=0,s=null,r=!1){if((!e||e===Eu)&&(e=At),ro(e)){let p=Tn(e,t,!0);return o&&jo(p,o),io>0&&!r&&yt&&(p.shapeFlag&6?yt[yt.indexOf(e)]=p:yt.push(p)),p.patchFlag=-2,p}if(ac(e)&&(e=e.__vccOpts),t){t=Xu(t);let{class:p,style:f}=t;p&&!$e(p)&&(t.class=O(p)),Ae(f)&&(Jn(f)&&!ge(f)&&(f=je({},f)),t.style=Re(f))}let a=$e(e)?1:Qr(e)?128:Wo(e)?64:Ae(e)?4:ke(e)?2:0;return n(e,t,o,i,s,a,r,!0)}function Xu(e){return e?Jn(e)||Br(e)?je({},e):e:null}function Tn(e,t,o=!1,i=!1){let{props:s,ref:r,patchFlag:a,children:p,transition:f}=e,g=t?Zu(s||{},t):s,y={__v_isVNode:!0,__v_skip:!0,type:e.type,props:g,key:g&&xr(g),ref:t&&t.ref?o&&r?ge(r)?r.concat($o(t)):[r,$o(t)]:$o(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:p,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==W?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:f,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Tn(e.ssContent),ssFallback:e.ssFallback&&Tn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return f&&i&&so(y,f.clone(y)),y}function h(e=" ",t=0){return De(Qo,null,e,t)}function me(e,t){let o=De(no,null,e);return o.staticCount=t,o}function c(e="",t=!1){return t?(l(),Bt(At,null,e)):De(At,null,e)}function Ut(e){return e==null||typeof e=="boolean"?De(At):ge(e)?De(W,null,e.slice()):ro(e)?Yt(e):De(Qo,null,String(e))}function Yt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Tn(e)}function jo(e,t){let o=0,{shapeFlag:i}=e;if(t==null)t=null;else if(ge(t))o=16;else if(typeof t=="object")if(i&65){let s=t.default;s&&(s._c&&(s._d=!1),jo(e,s()),s._c&&(s._d=!0));return}else{o=32;let s=t._;!s&&!Br(t)?t._ctx=gt:s===3&>&&(gt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(ke(t)){if(i&65){jo(e,{default:t});return}t={default:t,_ctx:gt},o=32}else t=String(t),i&64?(o=16,t=[h(t)]):o=8;e.children=t,e.shapeFlag|=o}function Zu(...e){let t={};for(let o=0;ott||gt,Go,ao;{let e=$n(),t=(o,i)=>{let s;return(s=e[o])||(s=e[o]=[]),s.push(i),r=>{s.length>1?s.forEach(a=>a(r)):s[0](r)}};Go=t("__VUE_INSTANCE_SETTERS__",o=>tt=o),ao=t("__VUE_SSR_SETTERS__",o=>_n=o)}var fo=e=>{let t=tt;return Go(e),e.scope.on(),()=>{e.scope.off(),Go(t)}},pr=()=>{tt&&tt.scope.off(),Go(null)};function ta(e){return e.vnode.shapeFlag&4}var _n=!1;function nc(e,t=!1,o=!1){t&&ao(t);let{props:i,children:s}=e.vnode,r=ta(e);Uu(e,i,r,t),Hu(e,s,o||t);let a=r?oc(e,t):void 0;return t&&ao(!1),a}function oc(e,t){let o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Su);let{setup:i}=o;if(i){Dt();let s=e.setupContext=i.length>1?ic(e):null,r=fo(e),a=lo(i,e,0,[e.props,s]),p=vs(a);if(Tt(),r(),(p||e.sp)&&!eo(e)&&Ws(e),p){if(a.then(pr,pr),t)return a.then(f=>{ao(!0);try{fr(e,f,t)}finally{ao(!1)}}).catch(f=>{uo(f,e,0)});e.asyncDep=a}else fr(e,a,t)}else na(e,t)}function fr(e,t,o){ke(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ae(t)&&(e.setupState=qo(t)),na(e,o)}var mr,hr;function na(e,t,o){let i=e.type;if(!e.render){if(!t&&mr&&!i.render){let s=i.template||Ks(e).template;if(s){let{isCustomElement:r,compilerOptions:a}=e.appContext.config,{delimiters:p,compilerOptions:f}=i,g=je(je({isCustomElement:r,delimiters:p},a),f);i.render=mr(s,g)}}e.render=i.render||at,hr&&hr(e)}{let s=fo(e);Dt();try{Nu(e)}finally{Tt(),s()}}}var sc={get(e,t){return xe(e,"get",""),e[t]}};function ic(e){let t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,sc),slots:e.slots,emit:e.emit,expose:t}}function Xo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(qo(Qn(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in to)return to[o](e)},has(t,o){return o in t||o in to}})):e.proxy}function rc(e,t=!0){return ke(e)?e.displayName||e.name:e.name||t&&e.__name}function ac(e){return ke(e)&&"__vccOpts"in e}var nt=(e,t)=>Zi(e,t,_n);function Se(e,t,o){try{Ho(-1);let i=arguments.length;return i===2?Ae(t)&&!ge(t)?ro(t)?De(e,null,[t]):De(e,t):De(e,null,t):(i>3?o=Array.prototype.slice.call(arguments,2):i===3&&ro(o)&&(o=[o]),De(e,t,o))}finally{Ho(1)}}var lc="3.5.44";var ei,oa=typeof window<"u"&&window.trustedTypes;if(oa)try{ei=oa.createPolicy("vue",{createHTML:e=>e})}catch{}var ha=ei?e=>ei.createHTML(e):e=>e,dc="http://www.w3.org/2000/svg",uc="http://www.w3.org/1998/Math/MathML",Qt=typeof document<"u"?document:null,sa=Qt&&Qt.createElement("template"),cc={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,i)=>{let s=t==="svg"?Qt.createElementNS(dc,e):t==="mathml"?Qt.createElementNS(uc,e):o?Qt.createElement(e,{is:o}):Qt.createElement(e);return e==="select"&&i&&i.multiple!=null&&s.setAttribute("multiple",i.multiple),s},createText:e=>Qt.createTextNode(e),createComment:e=>Qt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Qt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,i,s,r){let a=o?o.previousSibling:t.lastChild;if(s&&(s===r||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),o),!(s===r||!(s=s.nextSibling)););else{sa.innerHTML=ha(i==="svg"?`${e}`:i==="mathml"?`${e}`:e);let p=sa.content;if(i==="svg"||i==="mathml"){let f=p.firstChild;for(;f.firstChild;)p.appendChild(f.firstChild);p.removeChild(f)}t.insertBefore(p,o)}return[a?a.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}};var pc=Symbol("_vtc");function fc(e,t,o){let i=e[pc];i&&(t=(t?[t,...i]:[...i]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}var es=Symbol("_vod"),va=Symbol("_vsh"),Y={name:"show",beforeMount(e,{value:t},{transition:o}){e[es]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):mo(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:i}){!t!=!o&&(i?t?(i.beforeEnter(e),mo(e,!0),i.enter(e)):i.leave(e,()=>{mo(e,!1)}):mo(e,t))},beforeUnmount(e,{value:t}){mo(e,t)}};function mo(e,t){e.style.display=t?e[es]:"none",e[va]=!t}var mc=Symbol("");var hc=/(?:^|;)\s*display\s*:/;function vc(e,t,o){let i=e.style,s=$e(o),r=!1;if(o&&!s){if(t)if($e(t))for(let a of t.split(";")){let p=a.slice(0,a.indexOf(":")).trim();o[p]==null&&ho(i,p,"")}else for(let a in t)o[a]==null&&ho(i,a,"");for(let a in o){a==="display"&&(r=!0);let p=o[a];p!=null?yc(e,a,!$e(t)&&t?t[a]:void 0,p)||ho(i,a,p):ho(i,a,"")}}else if(s){if(t!==o){let a=i[mc];a&&(o+=";"+a),i.cssText=o,r=hc.test(o)}}else t&&e.removeAttribute("style");es in e&&((!s||t!==o)&&(e[es]=r?i.display:""),e[va]&&(i.display="none"))}var Zo=/\s*!important$/;function ho(e,t,o){if(ge(o))o.forEach(i=>ho(e,t,i));else if(o==null&&(o=""),t.startsWith("--"))Zo.test(o)?e.setProperty(t,o.replace(Zo,""),"important"):e.setProperty(t,o);else{let i=gc(e,t);Zo.test(o)?e.setProperty(Pt(i),o.replace(Zo,""),"important"):e[i]=o}}var ia=["Webkit","Moz","ms"],Xs={};function gc(e,t){let o=Xs[t];if(o)return o;let i=Je(t);if(i!=="filter"&&i in e)return Xs[t]=i;i=sn(i);for(let s=0;sZs||(Sc.then(()=>Zs=0),Zs=Date.now());function Rc(e,t){let o=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=o.attached)return;let s=o.value;if(ge(s)){let r=i.stopImmediatePropagation;i.stopImmediatePropagation=()=>{r.call(i),i._stopped=!0};let a=s.slice(),p=[i];for(let f=0;fe.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Dc=(e,t,o,i,s,r)=>{let a=s==="svg";t==="class"?fc(e,i,a):t==="style"?vc(e,o,i):bn(t)?wn(t)||wc(e,t,o,i,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Tc(e,t,i,a))?(la(e,t,i),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&aa(e,t,i,a,r,t!=="value")):e._isVueCE&&(_c(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!$e(i)))?la(e,Je(t),i,r,t):(t==="true-value"?e._trueValue=i:t==="false-value"&&(e._falseValue=i),aa(e,t,i,a))};function Tc(e,t,o,i){if(i)return!!(t==="innerHTML"||t==="textContent"||t in e&&ua(t)&&ke(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){let s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return ua(t)&&$e(o)?!1:t in e}function _c(e,t){let o=e._def.props;if(!o)return!1;let i=Je(t);return Array.isArray(o)?o.some(s=>Je(s)===i):Object.keys(o).some(s=>Je(s)===i)}var An=e=>{let t=e.props["onUpdate:modelValue"]||!1;return ge(t)?o=>Cn(t,o):t};function Ac(e){e.target.composing=!0}function ca(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}var zt=Symbol("_assign"),xo=Symbol("_initialValue");function xs(e,t,o){return t&&(e=e.trim()),o&&(e=En(e)),e}var ot={created(e,{modifiers:{lazy:t,trim:o,number:i}},s){e.parentNode&&(e.type==="text"?e[xo]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[xo]=e.defaultValue.replace(/\r\n?/g,` -`))),e[zt]=An(s);let r=i||s.props&&s.props.type==="number";nn(e,t?"change":"input",a=>{a.target.composing||e[zt](xs(e.value,o,r))}),(o||r)&&nn(e,"change",()=>{e.value=xs(e.value,o,r)}),t||(nn(e,"compositionstart",Ac),nn(e,"compositionend",ca),nn(e,"change",ca))},mounted(e,{value:t,modifiers:{trim:o,number:i}}){let s=t??"",r=e[xo];delete e[xo],r!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==r?e[zt](xs(e.value,o,i)):e.value=s},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:i,trim:s,number:r}},a){if(e[zt]=An(a),e.composing)return;let p=(r||e.type==="number")&&!/^0\d/.test(e.value)?En(e.value):e.value,f=t??"";if(p===f)return;let g=e.getRootNode();(g instanceof Document||g instanceof ShadowRoot)&&g.activeElement===e&&e.type!=="range"&&(i&&t===o||s&&e.value.trim()===f)||(e.value=f)}},ti={deep:!0,created(e,t,o){e[zt]=An(o),nn(e,"change",()=>{let i=e._modelValue,s=vo(e),r=e.checked,a=e[zt];if(ge(i)){let p=Do(i,s),f=p!==-1;if(r&&!f)a(i.concat(s));else if(!r&&f){let g=[...i];g.splice(p,1),a(g)}}else if(St(i)){let p=new Set(i);r?p.add(s):p.delete(s),a(p)}else a(ga(e,r))})},mounted:pa,beforeUpdate(e,t,o){e[zt]=An(o),pa(e,t,o)}};function pa(e,{value:t,oldValue:o},i){e._modelValue=t;let s;if(ge(t))s=Do(t,i.props.value)>-1;else if(St(t))s=t.has(i.props.value);else{if(t===o)return;s=Nt(t,ga(e,!0))}e.checked!==s&&(e.checked=s)}var fn={deep:!0,created(e,{value:t,modifiers:{number:o}},i){e._modelValue=t,nn(e,"change",()=>{let s=Array.prototype.filter.call(e.options,f=>f.selected).map(f=>o?En(vo(f)):vo(f)),r=e.multiple,a=r?St(e._modelValue)?new Set(s):s:s[0],p=e._pendingValue=[r,r?ge(a)?s.slice():s:a];try{e[zt](a)}finally{Ge(()=>{e._pendingValue===p&&(e._pendingValue=void 0)})}}),e[zt]=An(i)},mounted(e,{value:t}){fa(e,t)},beforeUpdate(e,{value:t},o){e._modelValue=t,e[zt]=An(o)},updated(e,{value:t}){let o=e._pendingValue;e._pendingValue=void 0,(!o||o[0]!==e.multiple||!Oc(t,o[1],o[0]))&&fa(e,t)}};function Oc(e,t,o){if(!o)return Nt(e,t);if(ge(e))return Nt(e,t);if(St(e)){if(e.size!==t.length)return!1;for(let i of t)if(!e.has(i))return!1;return!0}return!1}function fa(e,t){let o=e.multiple,i=ge(t);if(!(o&&!i&&!St(t))){for(let s=0,r=e.options.length;sString(g)===String(p)):a.selected=Do(t,p)>-1}else a.selected=t.has(p);else if(Nt(vo(a),t)){e.selectedIndex!==s&&(e.selectedIndex=s);return}}!o&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function vo(e){return"_value"in e?e._value:e.value}function ga(e,t){let o=t?"_trueValue":"_falseValue";return o in e?e[o]:t}var Pc=["ctrl","shift","alt","meta"],Ic={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Pc.some(o=>e[`${o}Key`]&&!t.includes(o))},ae=(e,t)=>{if(!e)return e;let o=e._withMods||(e._withMods={}),i=t.join(".");return o[i]||(o[i]=((s,...r)=>{for(let a=0;a{let o=e._withKeys||(e._withKeys={}),i=t.join(".");return o[i]||(o[i]=(s=>{if(!("key"in s))return;let r=Pt(s.key);if(t.some(a=>a===r||Mc[a]===r))return e(s)}))},Vc=je({patchProp:Dc},cc),ma;function qc(){return ma||(ma=Kr(Vc))}var ya=((...e)=>{let t=qc().createApp(...e),{mount:o}=t;return t.mount=i=>{let s=$c(i);if(!s)return;let r=t._component;!ke(r)&&!r.render&&!r.template&&(r.template=s.innerHTML),s.nodeType===1&&(s.textContent="");let a=o(s,!1,Lc(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),a},t});function Lc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function $c(e){return $e(e)?document.querySelector(e):e}var vn=typeof document<"u";function wa(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Uc(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wa(e.default)}var Oe=Object.assign;function ts(e,t){let o={};for(let i in t){let s=t[i];o[i]=Ct(s)?s.map(e):e(s)}return o}var Pn=()=>{},Ct=Array.isArray;function si(e,t){let o={};for(let i in e)o[i]=i in t?t[i]:e[i];return o}var ka=/#/g,Fc=/&/g,Bc=/\//g,zc=/=/g,Hc=/\?/g,Ca=/\+/g,jc=/%5B/g,Gc=/%5D/g,Ea=/%5E/g,Wc=/%60/g,Sa=/%7B/g,Kc=/%7C/g,Na=/%7D/g,Yc=/%20/g;function ii(e){return e==null?"":encodeURI(""+e).replace(Kc,"|").replace(jc,"[").replace(Gc,"]")}function Ra(e){return ii(e).replace(Sa,"{").replace(Na,"}").replace(Ea,"^")}function ni(e){return ii(e).replace(Ca,"%2B").replace(Yc,"+").replace(ka,"%23").replace(Fc,"%26").replace(Wc,"`").replace(Sa,"{").replace(Na,"}").replace(Ea,"^")}function Jc(e){return ni(e).replace(zc,"%3D")}function Qc(e){return ii(e).replace(ka,"%23").replace(Hc,"%3F")}function Da(e){return Qc(e).replace(Bc,"%2F")}function On(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}var Xc=/\/$/,Zc=e=>e.replace(Xc,"");function ns(e,t,o="/"){let i,s={},r="",a="",p=t.indexOf("#"),f=t.indexOf("?");return f=p>=0&&f>p?-1:f,f>=0&&(i=t.slice(0,f),r=t.slice(f,p>0?p:t.length),s=e(r.slice(1))),p>=0&&(i=i||t.slice(0,p),a=t.slice(p,t.length)),i=ep(i??t,o),{fullPath:i+r+a,path:i,query:s,hash:On(a)}}function Ta(e,t){let o=t.query?e(t.query):"";return t.path+(o&&"?")+o+(t.hash||"")}function ri(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function _a(e,t,o){let i=t.matched.length-1,s=o.matched.length-1;return i>-1&&i===s&&mn(t.matched[i],o.matched[s])&&ai(t.params,o.params)&&e(t.query)===e(o.query)&&t.hash===o.hash}function mn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function ai(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var o in e)if(!xc(e[o],t[o]))return!1;return!0}function xc(e,t){return Ct(e)?ba(e,t):Ct(t)?ba(t,e):e?.valueOf()===t?.valueOf()}function ba(e,t){return Ct(t)?e.length===t.length&&e.every((o,i)=>o===t[i]):e.length===1&&e[0]===t}function ep(e,t){if(e.startsWith("/"))return e;if(!e)return t;let o=t.split("/"),i=e.split("/"),s=i[i.length-1];(s===".."||s===".")&&i.push("");let r=o.length-1,a,p;for(a=0;a1&&r--;else break;return o.slice(0,r).join("/")+"/"+i.slice(a).join("/")}var Zt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},os=(function(e){return e.pop="pop",e.push="push",e})({}),ss=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Aa(e){if(!e)if(vn){let t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Zc(e)}var tp=/^[^#]+#/;function Oa(e,t){return e.replace(tp,"#")+t}function np(e,t){let o=document.documentElement.getBoundingClientRect(),i=e.getBoundingClientRect();return{behavior:t.behavior,left:i.left-o.left-(t.left||0),top:i.top-o.top-(t.top||0)}}var go=()=>({left:window.scrollX,top:window.scrollY});function Pa(e){let t;if("el"in e){let o=e.el,i=typeof o=="string"&&o.startsWith("#"),s=typeof o=="string"?i?document.getElementById(o.slice(1)):document.querySelector(o):o;if(!s)return;t=np(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function li(e,t){return(history.state?history.state.position-t:-1)+e}var oi=new Map;function Ia(e,t){oi.set(e,t)}function Ma(e){let t=oi.get(e);return oi.delete(e),t}function op(e){return typeof e=="string"||e&&typeof e=="object"}function di(e){return typeof e=="string"||typeof e=="symbol"}var Be=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({}),Va=Symbol("");var mB={[Be.MATCHER_NOT_FOUND]({location:e,currentLocation:t}){return`No match for +"use strict";(()=>{var va=Object.defineProperty;var ya=e=>{throw TypeError(e)};var ip=(e,t,s)=>t in e?va(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var rp=(e,t)=>{for(var s in t)va(e,s,{get:t[s],enumerable:!0})};var We=(e,t,s)=>ip(e,typeof t!="symbol"?t+"":t,s),$i=(e,t,s)=>t.has(e)||ya("Cannot "+s);var oe=(e,t,s)=>($i(e,t,"read from private field"),s?s.call(e):t.get(e)),Ie=(e,t,s)=>t.has(e)?ya("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),qe=(e,t,s,i)=>($i(e,t,"write to private field"),i?i.call(e,s):t.set(e,s),s),Me=(e,t,s)=>($i(e,t,"access private method"),s);var ba=(e,t,s,i)=>({set _(o){qe(e,t,o,s)},get _(){return oe(e,t,i)}});var ge=["abap","abc","actionscript","ada","alda","apache_conf","apex","applescript","aql","asciidoc","asl","assembly_x86","autohotkey","batchfile","c9search","c_cpp","cirru","clojure","cobol","coffee","coldfusion","crystal","csharp","csound_document","csound_orchestra","csound_score","csp","css","curly","d","dart","diff","django","dockerfile","dot","drools","edifact","eiffel","ejs","elixir","elm","erlang","forth","fortran","fsharp","fsl","ftl","gcode","gherkin","gitignore","glsl","gobstones","golang","graphqlschema","groovy","haml","handlebars","haskell","haskell_cabal","haxe","hjson","html","html_elixir","html_ruby","ini","io","jack","jade","java","javascript","json","json5","jsoniq","jsp","jssm","jsx","julia","kotlin","latex","less","liquid","lisp","livescript","logiql","logtalk","lsl","lua","luapage","lucene","makefile","markdown","mask","matlab","maze","mediawiki","mel","mixal","mushcode","mysql","nginx","nim","nix","nsis","nunjucks","objectivec","ocaml","pascal","perl","perl6","pgsql","php","php_laravel_blade","pig","plain_text","powershell","praat","prisma","prolog","properties","protobuf","puppet","python","qml","r","razor","rdoc","red","redshift","rhtml","rst","ruby","rust","sass","scad","scala","scheme","scss","sh","sjs","slim","smarty","snippets","soy_template","space","sparql","sql","sqlserver","stylus","svg","swift","tcl","terraform","tex","text","textile","toml","tsx","turtle","twig","typescript","vala","vbscript","velocity","verilog","vhdl","visualforce","wollok","xml","xquery","yaml","zeek"];var ve={markdown:"/script/markdown.6c8dfb7b1d.min.js",org:"/script/org.f61f262915.min.js",notebook:"/script/notebook.c3144c18ae.min.js",editor:"/script/editor.4f142d3adc.min.js",pdf:"/script/pdf.4d9cc6ff49.min.js"};function wa(e){let t=e.location.hash.slice(1);if(e.history.replaceState(null,"","/review-link"),t.length>2048)return null;let s=new URLSearchParams(t);if([...s.keys()].length!==3||[...s.keys()].some(a=>!["clientId","intentId","token"].includes(a)))return null;let i=s.get("clientId"),o=s.get("intentId"),r=s.get("token");return!/^[a-f0-9]{32}$/.test(i||"")||!/^[a-f0-9]{32}$/.test(o||"")||!/^[a-f0-9]{64}$/.test(r||"")?null:{contract:"4open.artifacts/1",clientId:i,intentId:o,token:r}}function ka(e,t){let{http:s,promises:i,window:o}=t,r=t.takeReviewHandoff(),a=r?{clientId:r.clientId,intentId:r.intentId}:null,u,c,m,g,v,h=!0,k,A=i.defer(),w=()=>[...o.crypto.getRandomValues(new Uint8Array(16))].map(q=>q.toString(16).padStart(2,"0")).join("");Object.assign(e,{repositoryId:"",handoffEnabled:!1,busy:!1,preview:null,acceptAccess:!1,acceptRetention:!1,uncertain:!1,saved:!1,expired:!1,error:r?"":"Open a new artifact link from your submission. This link is missing or invalid."});let b=()=>h&&e.user?.username===v;function E(){h=!1,r=u=c=void 0,A.resolve(),o.clearTimeout(k)}e.on("dispose",E),e.on("routeLeave",E),e.watch(()=>e.user?.username,q=>{!v&&q?v=q:v&&q!==v&&(E(),e.preview=null,e.repositoryId="",e.busy=!1,e.saved=!1,e.handoffEnabled=!1,e.error="Your account changed. Open a new artifact link from your submission.")});let N=()=>({timeout:A.promise,headers:{"Content-Type":"application/json","X-Review-CSRF":c}}),O=q=>q?.status===404?"Artifact linking is not available on this server.":q?.status===401?"Sign in, then open a new artifact link from your submission.":q?.status===403?"This account cannot approve this repository or this link.":"The request could not be completed. You can retry from this page.";e.loadPreview=async()=>{if(!h||!r||e.busy||e.uncertain||e.saved||!e.user?.username)return;v=e.user.username;let q=e.repositoryId.trim();if(!/^[A-Za-z0-9_-]{3,128}$/.test(q)){e.error="Enter the anonymous repository ID from its URL.";return}e.busy=!0,e.error="",e.preview=null,u=void 0,e.acceptAccess=e.acceptRetention=!1,e.expired=!1,o.clearTimeout(k),g||(g=w());try{let I=(await s.get("/api/review-consent/csrf",{timeout:A.promise})).data;if(!b())return;if(c=I.csrf,e.handoffEnabled=I.handoffEnabled===!0,!/^[a-f0-9]{64}$/.test(c||""))throw new Error("invalid_csrf");let j=(await s.post("/api/review-consent/preview",{repositoryId:q,intent:{...r,requestId:g}},N())).data;if(!b())return;if(!j||typeof j.ticket!="string"||!j.ticket||j.ticket.length>8192||typeof j.repositoryName!="string"||!["restricted-review","anonymous-link"].includes(j.policy?.access)||!Number.isSafeInteger(j.policy.version)||!Number.isFinite(Date.parse(j.policy.retainUntil))||!Number.isFinite(Date.parse(j.expiresAt))||Date.parse(j.expiresAt)<=Date.now()||Date.parse(j.expiresAt)>Date.now()+6e5)throw new Error("invalid_preview");u=j.ticket,m=w(),e.preview={repositoryName:j.repositoryName,policy:{...j.policy},expiresAt:j.expiresAt},k=o.setTimeout(()=>{h&&(e.expired=!0)},Math.max(0,Date.parse(j.expiresAt)-Date.now()))}catch(I){b()&&(e.error=O(I))}finally{b()&&(e.busy=!1)}},e.confirmConsent=async()=>{if(!(!b()||e.busy||e.saved||!u||!e.acceptAccess||!e.acceptRetention)){if(Date.parse(e.preview.expiresAt)<=Date.now()){e.expired=!0;return}e.busy=!0,e.error="";try{let q=(await s.post("/api/review-consent/confirm",{ticket:u,requestId:m,acceptAccess:!0,acceptRetention:!0},N())).data;if(!b())return;if(q?.requestId!==m||!Number.isFinite(Date.parse(q.confirmedAt)))throw new Error("invalid_receipt");e.saved=!0,e.uncertain=!1,r=void 0,e.handoffEnabled||(u=void 0)}catch{b()&&(e.uncertain=!0,e.error="The confirmation was not verified. Retry with the same approval, or return to your submission to check its status.")}finally{b()&&(e.busy=!1)}}},e.continueReview=async()=>{if(!b()||e.busy||!e.saved||!e.handoffEnabled||!u||!a)return;e.busy=!0,e.error="";let q,I=()=>{q?.remove(),o.removeEventListener("securitypolicyviolation",j)},j=de=>{de.violatedDirective?.startsWith("form-action")&&(I(),b()&&(e.busy=!1,e.error="The return address was blocked. Return to your submission to check the artifact status."))};try{let de=(await s.post("/api/review-consent/handoff",{ticket:u},N())).data;if(!b())return;let ie=de?.completion,D=new URL(de?.callbackUrl);if(!ie||Object.keys(ie).sort().join(",")!=="clientId,code,contract,expiresAt,intentId"||ie.contract!=="4open.artifacts/1"||ie.clientId!==a.clientId||ie.intentId!==a.intentId||!/^[a-f0-9]{64}$/.test(ie.code||"")||!Number.isFinite(Date.parse(ie.expiresAt))||Date.parse(ie.expiresAt)<=Date.now()||Date.parse(ie.expiresAt)>Date.now()+3e5||D.protocol!=="https:"||D.href!==de.callbackUrl||D.username||D.password||de.callbackUrl.includes("?")||de.callbackUrl.includes("#"))throw new Error("invalid_handoff");q=o.document.createElement("form"),q.method="POST",q.action=D.href;let X=o.document.createElement("input");X.type="hidden",X.name="completion",X.value=JSON.stringify(ie),q.appendChild(X),o.document.body.appendChild(q),o.addEventListener("securitypolicyviolation",j),e.on("dispose",I),q.submit()}catch{I(),b()&&(e.busy=!1,e.error="The return to review could not be prepared. Retry from this page, or return to your submission to check its status.")}}}var Io=new Map,dp=ve;function $n(e){if(!Io.has(e)){let t=document.createElement("script");t.src=dp[e];let s=new Promise((i,o)=>{t.onload=i,t.onerror=()=>{Io.delete(e),t.remove(),o(new Error(`Unable to load ${e}. Please retry.`))}});Io.set(e,s),document.head.appendChild(t)}return Io.get(e)}async function Mo(){await $n("editor"),ace.config.set("basePath","/script/external/ace/")}function rs(e){let t=Object.create(null);for(let s of e.split(","))t[s]=1;return s=>s in t}var Ge={},Cn=[],St=()=>{},Ui=()=>!1,as=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ls=e=>e.startsWith("onUpdate:"),ot=Object.assign,Ms=(e,t)=>{let s=e.indexOf(t);s>-1&&e.splice(s,1)},up=Object.prototype.hasOwnProperty,Fe=(e,t)=>up.call(e,t),Se=Array.isArray,ln=e=>Vs(e)==="[object Map]",Ut=e=>Vs(e)==="[object Set]",Ca=e=>Vs(e)==="[object Date]";var Ae=e=>typeof e=="function",xe=e=>typeof e=="string",_t=e=>typeof e=="symbol",He=e=>e!==null&&typeof e=="object",Fi=e=>(He(e)||Ae(e))&&Ae(e.then)&&Ae(e.catch),Ra=Object.prototype.toString,Vs=e=>Ra.call(e),Bi=e=>Vs(e).slice(8,-1),Vo=e=>Vs(e)==="[object Object]",qo=e=>xe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ds=rs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");var $o=e=>{let t=Object.create(null);return(s=>t[s]||(t[s]=e(s)))},cp=/-\w/g,ut=$o(e=>e.replace(cp,t=>t.slice(1).toUpperCase())),pp=/\B([A-Z])/g,Yt=$o(e=>e.replace(pp,"-$1").toLowerCase()),Ln=$o(e=>e.charAt(0).toUpperCase()+e.slice(1)),qs=$o(e=>e?`on${Ln(e)}`:""),Vt=(e,t)=>!Object.is(e,t),us=(e,...t)=>{for(let s=0;s{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:i,value:s})},cs=e=>{let t=parseFloat(e);return isNaN(t)?e:t};var Ea,$s=()=>Ea||(Ea=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function $e(e){if(Se(e)){let t={};for(let s=0;ss.startsWith("/*")?"":s).split(fp).forEach(s=>{if(s){let i=s.split(hp);i.length>1&&(t[i[0].trim()]=i[1].trim())}}),t}function _(e){let t="";if(xe(e))t=e;else if(Se(e))for(let s=0;sFt(s,t))}var Aa=e=>!!(e&&e.__v_isRef===!0),p=e=>xe(e)?e:e==null?"":Se(e)||He(e)&&(e.toString===Ra||!Ae(e.toString))?Aa(e)?p(e.value):JSON.stringify(e,_a,2):String(e),_a=(e,t)=>Aa(t)?_a(e,t.value):ln(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[i,o],r)=>(s[Li(i,r)+" =>"]=o,s),{})}:Ut(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>Li(s))}:_t(t)?Li(t):He(t)&&!Se(t)&&!Vo(t)?String(t):t,Li=(e,t="")=>{var s;return _t(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};function wp(e,...t){console.warn(`[Vue warn] ${e}`,...t)}var ct,Bs=class{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&ct&&(ct.active?(this.parent=ct,this.index=(ct.scopes||(ct.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes){let i=this.scopes.slice();for(t=0,s=i.length;t0&&--this._on===0){if(ct===this)ct=this.prevScope;else{let t=ct;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let s,i;for(s=0,i=this.effects.length;s0)return;if(Fs){let t=Fs;for(Fs=void 0;t;){let s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;Us;){let t=Us;for(Us=void 0;t;){let s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(i){e||(e=i)}t=s}}if(e)throw e}function $a(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function La(e){let t,s=e.depsTail,i=s;for(;i;){let o=i.prevDep;i.version===-1?(i===s&&(s=o),tr(i),kp(i)):t=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=o}e.deps=t,e.depsTail=s}function Gi(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ua(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ua(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===zs)||(e.globalVersion=zs,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Gi(e))))return;e.flags|=2;let t=e.dep,s=Xe,i=Bt;Xe=e,Bt=!0;try{$a(e);let o=e.fn(e._value);(t.version===0||Vt(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{Xe=s,Bt=i,La(e),e.flags&=-3}}function tr(e,t=!1){let{dep:s,prevSub:i,nextSub:o}=e;if(i&&(i.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=i,e.nextSub=void 0),s.subs===e&&(s.subs=i,!i&&s.computed)){s.computed.flags&=-5;for(let r=s.computed.deps;r;r=r.nextDep)tr(r,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function kp(e){let{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}var Bt=!0,Fa=[];function zt(){Fa.push(Bt),Bt=!1}function Ht(){let e=Fa.pop();Bt=e===void 0?!0:e}function Oa(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let s=Xe;Xe=void 0;try{t()}finally{Xe=s}}}var zs=0,Wi=class{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},Hs=class{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Xe||!Bt||Xe===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==Xe)s=this.activeLink=new Wi(Xe,this),Xe.deps?(s.prevDep=Xe.depsTail,Xe.depsTail.nextDep=s,Xe.depsTail=s):Xe.deps=Xe.depsTail=s,Ba(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){let i=s.nextDep;i.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=i),s.prevDep=Xe.depsTail,s.nextDep=void 0,Xe.depsTail.nextDep=s,Xe.depsTail=s,Xe.deps===s&&(Xe.deps=i)}return s}trigger(t){this.version++,zs++,this.notify(t)}notify(t){xi();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{er()}}};function Ba(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let i=t.deps;i;i=i.nextDep)Ba(i)}let s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}var Ki=new WeakMap,Fn=Symbol(""),Yi=Symbol(""),js=Symbol("");function mt(e,t,s){if(Bt&&Xe){let i=Ki.get(e);i||Ki.set(e,i=new Map);let o=i.get(s);o||(i.set(s,o=new Hs),o.map=i,o.key=s),o.track()}}function Jt(e,t,s,i,o,r){let a=Ki.get(e);if(!a){zs++;return}let u=c=>{c&&c.trigger()};if(xi(),t==="clear")a.forEach(u);else{let c=Se(e),m=c&&qo(s);if(c&&s==="length"){let g=Number(i);a.forEach((v,h)=>{(h==="length"||h===js||!_t(h)&&h>=g)&&u(v)})}else switch((s!==void 0||a.has(void 0))&&u(a.get(s)),m&&u(a.get(js)),t){case"add":c?m&&u(a.get("length")):(u(a.get(Fn)),ln(e)&&u(a.get(Yi)));break;case"delete":c||(u(a.get(Fn)),ln(e)&&u(a.get(Yi)));break;case"set":ln(e)&&u(a.get(Fn));break}}er()}function ps(e){let t=ze(e);return t===e||(mt(t,"iterate",js),Nt(e))?t:qt(e)?Zt(e)?t.map(s=>un(Ot(s))):t.map(un):t.map(Ot)}function Ws(e){return mt(e=ze(e),"iterate",js),e}function Xt(e,t){return qt(e)?un(Zt(e)?Ot(t):t):Ot(t)}var Cp={__proto__:null,[Symbol.iterator](){return Hi(this,Symbol.iterator,e=>Xt(this,e))},concat(...e){return ps(this).concat(...e.map(t=>Se(t)?ps(t):t))},entries(){return Hi(this,"entries",e=>(e[1]=Xt(this,e[1]),e))},every(e,t){return dn(this,"every",e,t,void 0,arguments)},filter(e,t){return dn(this,"filter",e,t,s=>s.map(i=>Xt(this,i)),arguments)},find(e,t){return dn(this,"find",e,t,s=>Xt(this,s),arguments)},findIndex(e,t){return dn(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return dn(this,"findLast",e,t,s=>Xt(this,s),arguments)},findLastIndex(e,t){return dn(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return dn(this,"forEach",e,t,void 0,arguments)},includes(...e){return ji(this,"includes",e)},indexOf(...e){return ji(this,"indexOf",e)},join(e){return ps(this).join(e)},lastIndexOf(...e){return ji(this,"lastIndexOf",e)},map(e,t){return dn(this,"map",e,t,void 0,arguments)},pop(){return Ls(this,"pop")},push(...e){return Ls(this,"push",e)},reduce(e,...t){return Ia(this,"reduce",e,t)},reduceRight(e,...t){return Ia(this,"reduceRight",e,t)},shift(){return Ls(this,"shift")},some(e,t){return dn(this,"some",e,t,void 0,arguments)},splice(...e){return Ls(this,"splice",e)},toReversed(){return ps(this).toReversed()},toSorted(e){return ps(this).toSorted(e)},toSpliced(...e){return ps(this).toSpliced(...e)},unshift(...e){return Ls(this,"unshift",e)},values(){return Hi(this,"values",e=>Xt(this,e))}};function Hi(e,t,s){let i=Ws(e),o=i[t],r=o.call(i);if(i!==e&&!Nt(e)){if(r[Symbol.toStringTag]==="Array Iterator"){let a=Object.create(Object.getPrototypeOf(r));return a.next=()=>Pa(r.next(),s),o!==za[t]&&Object.defineProperties(a,{return:{get(){let u=r.return;return typeof u=="function"?u.bind(r):u}},throw:{get(){let u=r.throw;return typeof u=="function"?u.bind(r):u}}}),a}r._next=r.next,r.next=()=>Pa(r._next(),s)}return r}function Pa(e,t){return e.done||(e.value=t(e.value)),e}var za=Array.prototype;function dn(e,t,s,i,o,r){let a=Ws(e),u=a!==e&&!Nt(e),c=a[t];if(c!==za[t]){let v=c.apply(e,r);return u?Ot(v):v}let m=s;a!==e&&(u?m=function(v,h){return s.call(this,Xt(e,v),h,e)}:s.length>2&&(m=function(v,h){return s.call(this,v,h,e)}));let g=c.call(a,m,i);return u&&o?o(g):g}function Ia(e,t,s,i){let o=Ws(e),r=o!==e&&!Nt(e),a=s,u=!1;o!==e&&(r?(u=i.length===0,a=function(m,g,v){return u&&(u=!1,m=Xt(e,m)),s.call(this,m,Xt(e,g),v,e)}):s.length>3&&(a=function(m,g,v){return s.call(this,m,g,v,e)}));let c=o[t](a,...i);return u?Xt(e,c):c}function ji(e,t,s){let i=ze(e);mt(i,"iterate",js);let o=i[t](...s);return(o===-1||o===!1)&&Ys(s[0])?(s[0]=ze(s[0]),i[t](...s)):o}function Ls(e,t,s=[]){zt(),xi();let i=ze(e)[t].apply(e,s);return er(),Ht(),i}var Ep=rs("__proto__,__v_isRef,__isVue"),Ha=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(_t));function Sp(e){_t(e)||(e=String(e));let t=ze(this);return mt(t,"has",e),t.hasOwnProperty(e)}var jo=class{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,i){if(s==="__v_skip")return t.__v_skip;let o=this._isReadonly,r=this._isShallow;if(s==="__v_isReactive")return!o;if(s==="__v_isReadonly")return o;if(s==="__v_isShallow")return r;if(s==="__v_raw")return i===(o?r?Ip:Wa:r?Ga:ja).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(i)?t:void 0;let a=Se(t);if(!o){let c;if(a&&(c=Cp[s]))return c;if(s==="hasOwnProperty")return Sp}let u=Reflect.get(t,s,ht(t)?t:i);if((_t(s)?Ha.has(s):Ep(s))||(o||mt(t,"get",s),r))return u;if(ht(u)){let c=a&&qo(s)?u:u.value;return o&&He(c)?Wo(c):c}return He(u)?o?Wo(u):et(u):u}},Go=class extends jo{constructor(t=!1){super(!1,t)}set(t,s,i,o){let r=t[s],a=Se(t)&&qo(s);if(!this._isShallow){let m=qt(r);if(!Nt(i)&&!qt(i)&&(r=ze(r),i=ze(i)),!a&&ht(r)&&!ht(i))return m||(r.value=i),!0}let u=a?Number(s)e,Bo=e=>Reflect.getPrototypeOf(e);function Tp(e,t,s){return function(...i){let o=this.__v_raw,r=ze(o),a=ln(r),u=e==="entries"||e===Symbol.iterator&&a,c=e==="keys"&&a,m=o[e](...i),g=s?Ji:t?un:Ot;return!t&&mt(r,"iterate",c?Yi:Fn),ot(Object.create(m),{next(){let{value:v,done:h}=m.next();return h?{value:v,done:h}:{value:u?[g(v[0]),g(v[1])]:g(v),done:h}}})}}function zo(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Ap(e,t){let s={get(o){let r=this.__v_raw,a=ze(r),u=ze(o);e||(Vt(o,u)&&mt(a,"get",o),mt(a,"get",u));let{has:c}=Bo(a),m=t?Ji:e?un:Ot;if(c.call(a,o))return m(r.get(o));if(c.call(a,u))return m(r.get(u));r!==a&&r.get(o)},get size(){let o=this.__v_raw;return!e&&mt(ze(o),"iterate",Fn),o.size},has(o){let r=this.__v_raw,a=ze(r),u=ze(o);return e||(Vt(o,u)&&mt(a,"has",o),mt(a,"has",u)),o===u?r.has(o):r.has(o)||r.has(u)},forEach(o,r){let a=this,u=a.__v_raw,c=ze(u),m=t?Ji:e?un:Ot;return!e&&mt(c,"iterate",Fn),u.forEach((g,v)=>o.call(r,m(g),m(v),a))}};return ot(s,e?{add:zo("add"),set:zo("set"),delete:zo("delete"),clear:zo("clear")}:{add(o){let r=ze(this),a=Bo(r),u=ze(o),c=!t&&!Nt(o)&&!qt(o)?u:o;return a.has.call(r,c)||Vt(o,c)&&a.has.call(r,o)||Vt(u,c)&&a.has.call(r,u)||(r.add(c),Jt(r,"add",c,c)),this},set(o,r){!t&&!Nt(r)&&!qt(r)&&(r=ze(r));let a=ze(this),{has:u,get:c}=Bo(a),m=u.call(a,o);m||(o=ze(o),m=u.call(a,o));let g=c.call(a,o);return a.set(o,r),m?Vt(r,g)&&Jt(a,"set",o,r,g):Jt(a,"add",o,r),this},delete(o){let r=ze(this),{has:a,get:u}=Bo(r),c=a.call(r,o);c||(o=ze(o),c=a.call(r,o));let m=u?u.call(r,o):void 0,g=r.delete(o);return c&&Jt(r,"delete",o,void 0,m),g},clear(){let o=ze(this),r=o.size!==0,a=void 0,u=o.clear();return r&&Jt(o,"clear",void 0,void 0,a),u}}),["keys","values","entries",Symbol.iterator].forEach(o=>{s[o]=Tp(o,e,t)}),s}function nr(e,t){let s=Ap(e,t);return(i,o,r)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_isShallow"?t:o==="__v_raw"?i:Reflect.get(Fe(s,o)&&o in i?s:i,o,r)}var _p={get:nr(!1,!1)},Op={get:nr(!1,!0)},Pp={get:nr(!0,!1)};var ja=new WeakMap,Ga=new WeakMap,Wa=new WeakMap,Ip=new WeakMap;function Mp(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function et(e){return qt(e)?e:sr(e,!1,Np,_p,ja)}function Ks(e){return sr(e,!1,Dp,Op,Ga)}function Wo(e){return sr(e,!0,Rp,Pp,Wa)}function sr(e,t,s,i,o){if(!He(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let r=o.get(e);if(r)return r;let a=Mp(Bi(e));if(a===0)return e;let u=new Proxy(e,a===2?i:s);return o.set(e,u),u}function Zt(e){return qt(e)?Zt(e.__v_raw):!!(e&&e.__v_isReactive)}function qt(e){return!!(e&&e.__v_isReadonly)}function Nt(e){return!!(e&&e.__v_isShallow)}function Ys(e){return e?!!e.__v_raw:!1}function ze(e){let t=e&&e.__v_raw;return t?ze(t):e}function hs(e){return!Fe(e,"__v_skip")&&Object.isExtensible(e)&&Lo(e,"__v_skip",!0),e}var Ot=e=>He(e)?et(e):e,un=e=>He(e)?Wo(e):e;function ht(e){return e?e.__v_isRef===!0:!1}function gt(e){return Ka(e,!1)}function Yo(e){return Ka(e,!0)}function Ka(e,t){return ht(e)?e:new Qi(e,t)}var Qi=class{constructor(t,s){this.dep=new Hs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:ze(t),this._value=s?t:Ot(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){let s=this._rawValue,i=this.__v_isShallow||Nt(t)||qt(t);t=i?t:ze(t),Vt(t,s)&&(this._rawValue=t,this._value=i?t:Ot(t),this.dep.trigger())}};function cn(e){return ht(e)?e.value:e}var Vp={get:(e,t,s)=>t==="__v_raw"?e:cn(Reflect.get(e,t,s)),set:(e,t,s,i)=>{let o=e[t];return ht(o)&&!ht(s)?(o.value=s,!0):Reflect.set(e,t,s,i)}};function Xo(e){return Zt(e)?e:new Proxy(e,Vp)}var Zi=class{constructor(t,s,i){this.fn=t,this.setter=s,this._value=void 0,this.dep=new Hs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=zs-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&Xe!==this)return qa(this,!0),!0}get value(){let t=this.dep.track();return Ua(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}};function Ya(e,t,s=!1){let i,o;return Ae(e)?i=e:(i=e.get,o=e.set),new Zi(i,o,s)}var Ho={},Ko=new WeakMap,Un;function Xa(e,t=!1,s=Un){if(s){let i=Ko.get(s);i||Ko.set(s,i=[]),i.push(e)}}function Ja(e,t,s=Ge){let{immediate:i,deep:o,once:r,scheduler:a,augmentJob:u,call:c}=s,m=I=>{(s.onWarn||wp)("Invalid watch source: ",I,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},g=I=>o?I:Nt(I)||o===!1||o===0?Qt(I,1):Qt(I),v,h,k,A,w=!1,b=!1;if(ht(e)?(h=()=>e.value,w=Nt(e)):Zt(e)?(h=()=>g(e),w=!0):Se(e)?(b=!0,w=e.some(I=>Zt(I)||Nt(I)),h=()=>e.map(I=>{if(ht(I))return I.value;if(Zt(I))return g(I);if(Ae(I))return c?c(I,2):I()})):Ae(e)?t?h=c?()=>c(e,2):e:h=()=>{if(k){zt();try{k()}finally{Ht()}}let I=Un;Un=v;try{return c?c(e,3,[A]):e(A)}finally{Un=I}}:h=St,t&&o){let I=h,j=o===!0?1/0:o;h=()=>Qt(I(),j)}let E=Ma(),N=()=>{v.stop(),E&&E.active&&Ms(E.effects,v)};if(r&&t){let I=t;t=(...j)=>{try{return I(...j)}finally{N()}}}let O=b?new Array(e.length).fill(Ho):Ho,q=I=>{if(!(!(v.flags&1)||!v.dirty&&!I))if(t){let j=v.run();if(I||o||w||(b?j.some((de,ie)=>Vt(de,O[ie])):Vt(j,O))){let de=Un;zt();try{k&&k(),Un=v;let ie=[j,O===Ho?void 0:b&&O[0]===Ho?[]:O,A];O=j,c?c(t,3,ie):t(...ie)}finally{Un=de,Ht()}}}else v.run()};return u&&u(q),v=new fs(h),v.scheduler=a?()=>a(q,!1):q,A=I=>Xa(I,!1,v),k=v.onStop=()=>{let I=Ko.get(v);if(I){if(c)c(I,4);else for(let j of I)j();Ko.delete(v)}},t?i?q(!0):O=v.run():a?a(q.bind(null,!0),!0):v.run(),N.pause=v.pause.bind(v),N.resume=v.resume.bind(v),N.stop=N,N}function Qt(e,t=1/0,s){if(t<=0||!He(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,ht(e))Qt(e.value,t,s);else if(Se(e))for(let i=0;i{Qt(i,t,s)});else if(Vo(e)){for(let i in e)Qt(e[i],t,s);for(let i of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,i)&&Qt(e[i],t,s)}return e}function ro(e,t,s,i){try{return i?e(...i):e()}catch(o){ao(o,t,s)}}function $t(e,t,s,i){if(Ae(e)){let o=ro(e,t,s,i);return o&&Fi(o)&&o.catch(r=>{ao(r,t,s)}),o}if(Se(e)){let o=[];for(let r=0;r>>1,o=Ct[i],r=to(o);r=to(s)?Ct.push(e):Ct.splice(Fp(t),0,e),e.flags|=1,fl()}}function fl(){Zo||(Zo=pl.then(vl))}function hl(e){if(!Se(e))En&&e.id===-1?En.splice(ms+1,0,e):e.flags&1||(en.push(e),e.flags|=1);else for(let t=0;t=t))continue;Ct.splice(i,1),i=e?i-1:jt,o.flags&4&&(o.flags&=-2),o(),o.flags&4||(o.flags&=-2)}}}function gl(e,t,s=0){if(en.length){let i=en,o=0;if(t){i=[];for(let a=0;ato(a)-to(u));if(en.length=o,En){for(let a=0;ae.id==null?e.flags&2?-1:1/0:e.id;function vl(e){let t=St;try{for(jt=0;jt{i._d&&ni(-1);let r=xo(t),a=Hn.length,u;try{u=e(...o)}finally{for(let c=Hn.length;c>a;c--)Kl();xo(r),i._d&&ni(1)}return u};return i._n=!0,i._c=!0,i._d=!0,i}function T(e,t){if(Pt===null)return e;let s=ui(Pt),i=e.dirs||(e.dirs=[]);for(let o=0;o1)return s&&Ae(t)?t.call(i&&i.proxy):t}}var Hp=Symbol.for("v-scx"),jp=()=>{{let e=Dt(Hp);return e}};function tt(e,t,s){return bl(e,t,s)}function bl(e,t,s=Ge){let{immediate:i,deep:o,flush:r,once:a}=s,u=ot({},s),c=t&&i||!t&&r!=="post",m;if(ys){if(r==="sync"){let k=jp();m=k.__watcherHandles||(k.__watcherHandles=[])}else if(!c){let k=()=>{};return k.stop=St,k.resume=St,k.pause=St,k}}let g=vt;u.call=(k,A,w)=>$t(k,g,A,w);let v=!1;r==="post"?u.scheduler=k=>{k.i=g,Rt(k,g&&g.suspense)}:r!=="sync"&&(v=!0,u.scheduler=(k,A)=>{A?k():mr(k)}),u.augmentJob=k=>{t&&(k.flags|=4),v&&(k.flags|=2,g&&(k.id=g.uid,k.i=g))};let h=Ja(e,t,u);return ys&&(m?m.push(h):c&&h()),h}function Gp(e,t,s){let i=this.proxy,o=xe(e)?e.includes(".")?wl(i,e):()=>i[e]:e.bind(i,i),r;Ae(t)?r=t:(r=t.handler,s=t);let a=co(this),u=bl(o,r.bind(i),s);return a(),u}function wl(e,t){let s=t.split(".");return()=>{let i=e;for(let o=0;oe.__isTeleport;var ir=Symbol("_leaveCb");function Kp(e){let t=e[0];if(e.length>1){let s=!1;for(let i of e)if(i.type!==Gt){t=i,s=!0;break}}return t}function kl(e){if(!ri(e))return ii(e.type)&&e.children?Kp(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:s}=e;if(s){if(t&16)return s[0];if(t&32&&Ae(s.default))return s.default()}}function no(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let s=e.component.subTree;no(ii(s.type)&&kl(s)||s,t)}else if(e.shapeFlag&128)e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback);else if(e.transition=t,e.type===W&&Se(e.children)){let s=Il(e.children,!1);s&&no(s,t)}}function dr(e){if(e.component)return dr(e.component.subTree);if(e.type===W){let t=Se(e.children)&&Il(e.children,!1);return t?dr(t):void 0}if(e.type!==Gt)return e}function lo(e,t){return Ae(e)?ot({name:e.name},t,{setup:e}):e}function gr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Qa(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}var ei=new WeakMap;function Qs(e,t,s,i,o=!1){if(Se(e)){e.forEach((w,b)=>Qs(w,t&&(Se(t)?t[b]:t),s,i,o));return}if(Zs(i)&&!o){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&Qs(e,t,s,i.component.subTree);return}let r=i.shapeFlag&4?ui(i.component):i.el,a=o?null:r,{i:u,r:c}=e,m=t&&t.r,g=u.refs===Ge?u.refs={}:u.refs,v=u.setupState,h=ze(v),k=v===Ge?Ui:w=>Qa(g,w)?!1:Fe(h,w),A=(w,b)=>!(b&&Qa(g,b));if(m!=null&&m!==c){if(Za(t),xe(m))g[m]=null,k(m)&&(v[m]=null);else if(ht(m)){let w=t;A(m,w.k)&&(m.value=null),w.k&&(g[w.k]=null)}}if(Ae(c))ro(c,u,12,[a,g]);else{let w=xe(c),b=ht(c);if(w||b){let E=()=>{if(e.f){let N=w?k(c)?v[c]:g[c]:A(c)||!e.k?c.value:g[e.k];if(o)Se(N)&&Ms(N,r);else if(Se(N))N.includes(r)||N.push(r);else if(w)g[c]=[r],k(c)&&(v[c]=g[c]);else{let O=[r];A(c,e.k)&&(c.value=O),e.k&&(g[e.k]=O)}}else w?(g[c]=a,k(c)&&(v[c]=a)):b&&(A(c,e.k)&&(c.value=a),e.k&&(g[e.k]=a))};if(a){let N=()=>{E(),ei.delete(e)};N.id=-1,ei.set(e,N),Rt(N,s)}else Za(e),E()}}}function Za(e){let t=ei.get(e);t&&(t.flags|=8,ei.delete(e))}var xa=e=>e.nodeType===8;var R9=$s().requestIdleCallback||(e=>setTimeout(e,1)),D9=$s().cancelIdleCallback||(e=>clearTimeout(e));function Yp(e,t){if(xa(e)&&e.data==="["){let s=1,i=e.nextSibling;for(;i;){if(i.nodeType===1){if(t(i)===!1)break}else if(xa(i))if(i.data==="]"){if(--s===0)break}else i.data==="["&&s++;i=i.nextSibling}}else t(e)}var Zs=e=>!!e.type.__asyncLoader;function Cl(e){Ae(e)&&(e={loader:e});let{loader:t,loadingComponent:s,errorComponent:i,delay:o=200,hydrate:r,timeout:a,suspensible:u=!0,onError:c}=e,m=null,g,v=0,h=()=>(v++,m=null,k()),k=()=>{let A;return m||(A=m=t().catch(w=>{if(w=w instanceof Error?w:new Error(String(w)),c)return new Promise((b,E)=>{c(w,()=>b(h()),()=>E(w),v+1)});throw w}).then(w=>A!==m&&m?m:(w&&(w.__esModule||w[Symbol.toStringTag]==="Module")&&(w=w.default),g=w,w)))};return lo({name:"AsyncComponentWrapper",__asyncLoader:k,__asyncHydrate(A,w,b){let E=A.isConnected,N=!1;(w.bu||(w.bu=[])).push(()=>N=!0);let O=()=>{N||!A.parentNode||E&&!A.isConnected||b()},q=r?()=>{let I=r(O,j=>Yp(A,j));I&&(w.bum||(w.bum=[])).push(I)}:O;g?q():k().then(()=>!w.isUnmounted&&q())},get __asyncResolved(){return g},setup(){let A=vt;if(gr(A),g)return()=>Jo(g,A);let w=I=>{m=null,ao(I,A,13,!i)};if(u&&A.suspense||ys)return k().then(I=>()=>Jo(I,A)).catch(I=>(w(I),()=>i?Ue(i,{error:I}):null));let b=gt(!1),E=gt(),N=gt(!!o),O,q;return uo(()=>{O!=null&&clearTimeout(O),q!=null&&clearTimeout(q)}),o&&(q=setTimeout(()=>{A.isUnmounted||(N.value=!1)},o)),a!=null&&(O=setTimeout(()=>{if(!A.isUnmounted&&!b.value&&!E.value){let I=new Error(`Async component timed out after ${a}ms.`);w(I),E.value=I}},a)),k().then(()=>{A.isUnmounted||(b.value=!0,A.parent&&ri(A.parent.vnode)&&A.parent.update())}).catch(I=>{if(A.isUnmounted){m=null;return}w(I),E.value=I}),()=>{if(b.value&&g)return Jo(g,A);if(E.value&&i)return Ue(i,{error:E.value});if(s&&!N.value)return Jo(s,A)}}})}function Jo(e,t){let{ref:s,props:i,children:o,ce:r}=t.vnode,a=Ue(e,i,o);return a.ref=s,a.ce=r,delete t.vnode.ce,a}var ri=e=>e.type.__isKeepAlive;function El(e,t){Nl(e,"a",t)}function Sl(e,t){Nl(e,"da",t)}function Nl(e,t,s=vt){let i=e.__wdc||(e.__wdc=()=>{let o=s;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(ai(t,i,s),s){let o=s.parent;for(;o&&o.parent;)ri(o.parent.vnode)&&Xp(i,t,s,o),o=o.parent}}function Xp(e,t,s,i){let o=ai(t,e,i,!0);uo(()=>{Ms(i[t],o)},s)}function ai(e,t,s=vt,i=!1){if(s){let o=s[e]||(s[e]=[]),r=t.__weh||(t.__weh=(...a)=>{zt();let u=co(s),c=$t(t,s,e,a);return u(),Ht(),c});return i?o.unshift(r):o.push(r),r}}var fn=e=>(t,s=vt)=>{(!ys||e==="sp")&&ai(e,(...i)=>t(...i),s)},Jp=fn("bm"),nn=fn("m"),Rl=fn("bu"),Dl=fn("u"),Gn=fn("bum"),uo=fn("um"),Qp=fn("sp"),Zp=fn("rtg"),xp=fn("rtc");function ef(e,t=vt){ai("ec",e,t)}var Tl="components",tf="directives";function at(e,t){return Al(Tl,e,!0,t)||e}var nf=Symbol.for("v-ndc");function De(e){return Al(tf,e)}function Al(e,t,s=!0,i=!1){let o=Pt||vt;if(o){let r=o.type;if(e===Tl){let u=Ff(r,!1);if(u&&(u===t||u===ut(t)||u===Ln(ut(t))))return r}let a=el(o[e]||r[e],t)||el(o.appContext[e],t);return!a&&i?r:a}}function el(e,t){return e&&(e[t]||e[ut(t)]||e[Ln(ut(t))])}function ae(e,t,s,i){let o,r=s&&s[i],a=Se(e);if(a||xe(e)){let u=a&&Zt(e),c=!1,m=!1;u&&(c=!Nt(e),m=qt(e),e=Ws(e)),o=new Array(e.length);for(let g=0,v=e.length;gt(u,c,void 0,r&&r[c]));else{let u=Object.keys(e);o=new Array(u.length);for(let c=0,m=u.length;ce?Ql(e)?ui(e):ur(e.parent):null;var xs=ot(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ur(e.parent),$root:e=>ur(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>vr(e),$forceUpdate:e=>e.f||(e.f=()=>{mr(e.update)}),$nextTick:e=>e.n||(e.n=it.bind(e.proxy)),$watch:e=>Gp.bind(e)});var rr=(e,t)=>e!==Ge&&!e.__isScriptSetup&&Fe(e,t),sf={get({_:e},t){if(t==="__v_skip")return!0;let{ctx:s,setupState:i,data:o,props:r,accessCache:a,type:u,appContext:c}=e;if(t[0]!=="$"){let h=a[t];if(h!==void 0)switch(h){case 1:return i[t];case 2:return o[t];case 4:return s[t];case 3:return r[t]}else{if(rr(i,t))return a[t]=1,i[t];if(o!==Ge&&Fe(o,t))return a[t]=2,o[t];if(Fe(r,t))return a[t]=3,r[t];if(s!==Ge&&Fe(s,t))return a[t]=4,s[t];cr&&(a[t]=0)}}let m=xs[t],g,v;if(m)return t==="$attrs"&&mt(e.attrs,"get",""),m(e);if((g=u.__cssModules)&&(g=g[t]))return g;if(s!==Ge&&Fe(s,t))return a[t]=4,s[t];if(v=c.config.globalProperties,Fe(v,t))return v[t]},set({_:e},t,s){let{data:i,setupState:o,ctx:r}=e;return rr(o,t)?(o[t]=s,!0):i!==Ge&&Fe(i,t)?(i[t]=s,!0):Fe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:i,appContext:o,props:r,type:a}},u){let c;return!!(s[u]||e!==Ge&&u[0]!=="$"&&Fe(e,u)||rr(t,u)||Fe(r,u)||Fe(i,u)||Fe(xs,u)||Fe(o.config.globalProperties,u)||(c=a.__cssModules)&&c[u])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:Fe(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function tl(e){return Se(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}var cr=!0;function of(e){let t=vr(e),s=e.proxy,i=e.ctx;cr=!1,t.beforeCreate&&nl(t.beforeCreate,e,"bc");let{data:o,computed:r,methods:a,watch:u,provide:c,inject:m,created:g,beforeMount:v,mounted:h,beforeUpdate:k,updated:A,activated:w,deactivated:b,beforeDestroy:E,beforeUnmount:N,destroyed:O,unmounted:q,render:I,renderTracked:j,renderTriggered:de,errorCaptured:ie,serverPrefetch:D,expose:X,inheritAttrs:le,components:Ee,directives:re,filters:me}=t;if(m&&rf(m,i,null),a)for(let Ne in a){let Re=a[Ne];Ae(Re)&&(i[Ne]=Re.bind(s))}if(o){let Ne=o.call(s,s);He(Ne)&&(e.data=et(Ne))}if(cr=!0,r)for(let Ne in r){let Re=r[Ne],Je=Ae(Re)?Re.bind(s,s):Ae(Re.get)?Re.get.bind(s,s):St,Ke=!Ae(Re)&&Ae(Re.set)?Re.set.bind(s):St,rt=yt({get:Je,set:Ke});Object.defineProperty(i,Ne,{enumerable:!0,configurable:!0,get:()=>rt.value,set:Qe=>rt.value=Qe})}if(u)for(let Ne in u)_l(u[Ne],i,s,Ne);if(c){let Ne=Ae(c)?c.call(s):c;Reflect.ownKeys(Ne).forEach(Re=>{jn(Re,Ne[Re])})}g&&nl(g,e,"c");function _e(Ne,Re){Se(Re)?Re.forEach(Je=>Ne(Je.bind(s))):Re&&Ne(Re.bind(s))}if(_e(Jp,v),_e(nn,h),_e(Rl,k),_e(Dl,A),_e(El,w),_e(Sl,b),_e(ef,ie),_e(xp,j),_e(Zp,de),_e(Gn,N),_e(uo,q),_e(Qp,D),Se(X))if(X.length){let Ne=e.exposed||(e.exposed={});X.forEach(Re=>{Object.defineProperty(Ne,Re,{get:()=>s[Re],set:Je=>s[Re]=Je,enumerable:!0})})}else e.exposed||(e.exposed={});I&&e.render===St&&(e.render=I),le!=null&&(e.inheritAttrs=le),Ee&&(e.components=Ee),re&&(e.directives=re),D&&gr(e)}function rf(e,t,s=St){Se(e)&&(e=pr(e));for(let i in e){let o=e[i],r;He(o)?"default"in o?r=Dt(o.from||i,o.default,!0):r=Dt(o.from||i):r=Dt(o),ht(r)?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>r.value,set:a=>r.value=a}):t[i]=r}}function nl(e,t,s){$t(Se(e)?e.map(i=>i.bind(t.proxy)):e.bind(t.proxy),t,s)}function _l(e,t,s,i){let o=i.includes(".")?wl(s,i):()=>s[i];if(xe(e)){let r=t[e];Ae(r)&&tt(o,r)}else if(Ae(e))tt(o,e.bind(s));else if(He(e))if(Se(e))e.forEach(r=>_l(r,t,s,i));else{let r=Ae(e.handler)?e.handler.bind(s):t[e.handler];Ae(r)&&tt(o,r,e)}}function vr(e){let t=e.type,{mixins:s,extends:i}=t,{mixins:o,optionsCache:r,config:{optionMergeStrategies:a}}=e.appContext,u=r.get(t),c;return u?c=u:!o.length&&!s&&!i?c=t:(c={},o.length&&o.forEach(m=>ti(c,m,a,!0)),ti(c,t,a)),He(t)&&r.set(t,c),c}function ti(e,t,s,i=!1){let{mixins:o,extends:r}=t;r&&ti(e,r,s,!0),o&&o.forEach(a=>ti(e,a,s,!0));for(let a in t)if(!(i&&a==="expose")){let u=af[a]||s&&s[a];e[a]=u?u(e[a],t[a]):t[a]}return e}var af={data:sl,props:ol,emits:ol,methods:Js,computed:Js,beforeCreate:kt,created:kt,beforeMount:kt,mounted:kt,beforeUpdate:kt,updated:kt,beforeDestroy:kt,beforeUnmount:kt,destroyed:kt,unmounted:kt,activated:kt,deactivated:kt,errorCaptured:kt,serverPrefetch:kt,components:Js,directives:Js,watch:df,provide:sl,inject:lf};function sl(e,t){return t?e?function(){return ot(Ae(e)?e.call(this,this):e,Ae(t)?t.call(this,this):t)}:t:e}function lf(e,t){return Js(pr(e),pr(t))}function pr(e){if(Se(e)){let t={};for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ut(t)}Modifiers`]||e[`${Yt(t)}Modifiers`];function ff(e,t,...s){if(e.isUnmounted)return;let i=e.vnode.props||Ge,o=s,r=t.startsWith("update:"),a=r&&pf(i,t.slice(7));a&&(a.trim&&(o=s.map(g=>xe(g)?g.trim():g)),a.number&&(o=o.map(cs)));let u,c=i[u=qs(t)]||i[u=qs(ut(t))];!c&&r&&(c=i[u=qs(Yt(t))]),c&&$t(c,e,6,o);let m=i[u+"Once"];if(m){if(!e.emitted)e.emitted={};else if(e.emitted[u])return;e.emitted[u]=!0,$t(m,e,6,o)}}var hf=new WeakMap;function Pl(e,t,s=!1){let i=s?hf:t.emitsCache,o=i.get(e);if(o!==void 0)return o;let r=e.emits,a={},u=!1;if(!Ae(e)){let c=m=>{let g=Pl(m,t,!0);g&&(u=!0,ot(a,g))};!s&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!r&&!u?(He(e)&&i.set(e,null),null):(Se(r)?r.forEach(c=>a[c]=null):ot(a,r),He(e)&&i.set(e,a),a)}function li(e,t){return!e||!as(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Fe(e,t[0].toLowerCase()+t.slice(1))||Fe(e,Yt(t))||Fe(e,t))}function ar(e){let{type:t,vnode:s,proxy:i,withProxy:o,propsOptions:[r],slots:a,attrs:u,emit:c,render:m,renderCache:g,props:v,data:h,setupState:k,ctx:A,inheritAttrs:w}=e,b=xo(e),E,N;try{if(s.shapeFlag&4){let I=o||i,j=I;E=tn(m.call(j,I,g,v,k,h,A)),N=u}else{let I=t;E=tn(I.length>1?I(v,{attrs:u,slots:a,emit:c}):I(v,null)),N=t.props?u:mf(u)}}catch(I){Hn.length=0,ao(I,e,1),E=Ue(Gt)}let O=E,q;if(N&&w!==!1){let I=Object.keys(N),{shapeFlag:j}=O;I.length&&j&7&&(r&&I.some(ls)&&(N=gf(N,r)),O=vs(O,N,!1,!0))}if(s.dirs&&(O=vs(O,null,!1,!0),O.dirs=O.dirs?O.dirs.concat(s.dirs):s.dirs),s.transition){let I=ii(O.type)&&kl(O)||O;no(I,s.transition)}return E=O,xo(b),E}function Il(e,t=!0){let s;for(let i=0;i{let t;for(let s in e)(s==="class"||s==="style"||as(s))&&((t||(t={}))[s]=e[s]);return t},gf=(e,t)=>{let s={};for(let i in e)(!ls(i)||!(i.slice(9)in t))&&(s[i]=e[i]);return s};function vf(e,t,s){let{props:i,children:o,component:r}=e,{props:a,children:u,patchFlag:c}=t,m=r.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&c>=0){if(c&1024)return!0;if(c&16)return i?il(i,a,m):!!a;if(c&8){let g=t.dynamicProps;for(let v=0;vObject.create(Vl),$l=e=>Object.getPrototypeOf(e)===Vl;function bf(e,t,s,i=!1){let o={},r=ql();e.propsDefaults=Object.create(null),Ll(e,t,o,r);for(let a in e.propsOptions[0])a in o||(o[a]=void 0);s?e.props=i?o:Ks(o):e.type.props?e.props=o:e.props=r,e.attrs=r}function wf(e,t,s,i){let{props:o,attrs:r,vnode:{patchFlag:a}}=e,u=ze(o),[c]=e.propsOptions,m=!1;if((i||a>0)&&!(a&16)){if(a&8){let g=e.vnode.dynamicProps;for(let v=0;v{c=!0;let[h,k]=Ul(v,t,!0);ot(a,h),k&&u.push(...k)};!s&&t.mixins.length&&t.mixins.forEach(g),e.extends&&g(e.extends),e.mixins&&e.mixins.forEach(g)}if(!r&&!c)return He(e)&&i.set(e,Cn),Cn;if(Se(r))for(let g=0;ge==="_"||e==="_ctx"||e==="$stable",br=e=>Se(e)?e.map(tn):[tn(e)],Cf=(e,t,s)=>{if(t._n)return t;let i=zp((...o)=>br(t(...o)),s);return i._c=!1,i},Fl=(e,t,s)=>{let i=e._ctx;for(let o in e){if(yr(o))continue;let r=e[o];if(Ae(r))t[o]=Cf(o,r,i);else if(r!=null){let a=br(r);t[o]=()=>a}}},Bl=(e,t)=>{let s=br(t);e.slots.default=()=>s},zl=(e,t,s)=>{for(let i in t)(s||!yr(i))&&(e[i]=t[i])},Ef=(e,t,s)=>{let i=e.slots=ql();if(e.vnode.shapeFlag&32){let o=t._;o?(zl(i,t,s),s&&Lo(i,"_",o,!0)):Fl(t,i)}else t&&Bl(e,t)},Sf=(e,t,s)=>{let{vnode:i,slots:o}=e,r=!0,a=Ge;if(i.shapeFlag&32){let u=t._;u?s&&u===1?r=!1:zl(o,t,s):(r=!t.$stable,Fl(t,o)),a=t}else t&&(Bl(e,t),a={default:1});if(r)for(let u in o)!yr(u)&&a[u]==null&&delete o[u]};function Nf(){let e=[]}var Rt=Af;function Hl(e){return Rf(e)}function Rf(e,t){Nf();let s=$s();s.__VUE__=!0;let{insert:i,remove:o,patchProp:r,createElement:a,createText:u,createComment:c,setText:m,setElementText:g,parentNode:v,nextSibling:h,setScopeId:k=St,insertStaticContent:A}=e,w=(C,R,P,G=null,F=null,Y=null,M=void 0,H=null,ee=!!R.dynamicChildren)=>{if(C===R)return;C&&!Xs(C,R)&&(G=x(C),U(C,F,Y,!0),C=null),R.patchFlag===-2&&(ee=!1,R.dynamicChildren=null),R.dynamicChildren&&C&&C.dynamicChildren&&C.dynamicChildren.hasOnce&&(R.dynamicChildren===Cn&&(R.dynamicChildren=[]),R.dynamicChildren.hasOnce=!0);let{type:K,ref:he,shapeFlag:ne}=R;switch(K){case di:b(C,R,P,G);break;case Gt:E(C,R,P,G);break;case eo:C==null&&N(R,P,G,M);break;case W:re(C,R,P,G,F,Y,M,H,ee);break;default:ne&1?j(C,R,P,G,F,Y,M,H,ee):ne&6?me(C,R,P,G,F,Y,M,H,ee):(ne&64||ne&128)&&K.process(C,R,P,G,F,Y,M,H,ee,ue)}he!=null&&F?Qs(he,C&&C.ref,Y,R||C,!R):he==null&&C&&C.ref!=null&&Qs(C.ref,null,Y,C,!0)},b=(C,R,P,G)=>{if(C==null)i(R.el=u(R.children),P,G);else{let F=R.el=C.el;R.children!==C.children&&m(F,R.children)}},E=(C,R,P,G)=>{C==null?i(R.el=c(R.children||""),P,G):R.el=C.el},N=(C,R,P,G)=>{[C.el,C.anchor]=A(C.children,R,P,G,C.el,C.anchor)},O=(C,R,P,G)=>{if(R.children!==C.children){let F=h(C.anchor);I(C),[R.el,R.anchor]=A(R.children,P,F,G)}else R.el=C.el,R.anchor=C.anchor},q=({el:C,anchor:R},P,G)=>{let F;for(;C&&C!==R;)F=h(C),i(C,P,G),C=F;i(R,P,G)},I=({el:C,anchor:R})=>{let P;for(;C&&C!==R;)P=h(C),o(C),C=P;o(R)},j=(C,R,P,G,F,Y,M,H,ee)=>{if(R.type==="svg"?M="svg":R.type==="math"&&(M="mathml"),C==null)de(R,P,G,F,Y,M,H,ee);else{let K=C.el&&C.el._isVueCE?C.el:null;try{K&&K._beginPatch(),X(C,R,F,Y,M,H,ee)}finally{K&&K._endPatch()}}},de=(C,R,P,G,F,Y,M,H)=>{let ee,K,{props:he,shapeFlag:ne,transition:pe,dirs:ye}=C;if(ee=C.el=a(C.type,Y,he&&he.is,he),ne&8?g(ee,C.children):ne&16&&D(C.children,ee,null,G,F,lr(C,Y),M,H),ye&&Bn(C,null,G,"created"),ie(ee,C,C.scopeId,M,G),he){for(let Le in he)Le!=="value"&&!ds(Le)&&r(ee,Le,null,he[Le],Y,G);"value"in he&&r(ee,"value",null,he.value,Y),(K=he.onVnodeBeforeMount)&&xt(K,G,C)}ye&&Bn(C,null,G,"beforeMount");let Te=Df(F,pe);Te&&pe.beforeEnter(ee),i(ee,R,P),((K=he&&he.onVnodeMounted)||Te||ye)&&Rt(()=>{let Be;K&&xt(K,G,C),Te&&pe.enter(ee),ye&&Bn(C,null,G,"mounted")},F)},ie=(C,R,P,G,F)=>{if(P&&k(C,P),G)for(let Y=0;Y{for(let K=ee;K{let H=R.el=C.el,{patchFlag:ee,dynamicChildren:K,dirs:he}=R;ee|=C.patchFlag&16;let ne=C.props||Ge,pe=R.props||Ge,ye;if(P&&zn(P,!1),(ye=pe.onVnodeBeforeUpdate)&&xt(ye,P,R,C),he&&Bn(R,C,P,"beforeUpdate"),P&&zn(P,!0),K&&(!C.dynamicChildren||C.dynamicChildren.length!==K.length)&&(ee=0,M=!1,K=null),(ne.innerHTML&&pe.innerHTML==null||ne.textContent&&pe.textContent==null)&&g(H,""),K?le(C.dynamicChildren,K,H,P,G,lr(R,F),Y):M||Je(C,R,H,null,P,G,lr(R,F),Y,!1),ee>0){if(ee&16)Ee(H,ne,pe,P,F);else if(ee&2&&ne.class!==pe.class&&r(H,"class",null,pe.class,F),ee&4&&r(H,"style",ne.style,pe.style,F),ee&8){let Te=R.dynamicProps;for(let Le=0;Le{ye&&xt(ye,P,R,C),he&&Bn(R,C,P,"updated")},G)},le=(C,R,P,G,F,Y,M)=>{for(let H=0;H{if(R!==P){if(R!==Ge)for(let Y in R)!ds(Y)&&!(Y in P)&&r(C,Y,R[Y],null,F,G);for(let Y in P){if(ds(Y))continue;let M=P[Y],H=R[Y];M!==H&&Y!=="value"&&r(C,Y,H,M,F,G)}"value"in P&&r(C,"value",R.value,P.value,F)}},re=(C,R,P,G,F,Y,M,H,ee)=>{let K=R.el=C?C.el:u(""),he=R.anchor=C?C.anchor:u(""),{patchFlag:ne,dynamicChildren:pe,slotScopeIds:ye}=R;ye&&(H=H?H.concat(ye):ye),C==null?(i(K,P,G),i(he,P,G),D(R.children||[],P,he,F,Y,M,H,ee)):ne>0&&ne&64&&pe&&C.dynamicChildren&&C.dynamicChildren.length===pe.length?(le(C.dynamicChildren,pe,P,F,Y,M,H),(R.key!=null||F&&R===F.subTree)&&jl(C,R,!0)):Je(C,R,P,he,F,Y,M,H,ee)},me=(C,R,P,G,F,Y,M,H,ee)=>{R.slotScopeIds=H,C==null?R.shapeFlag&512?F.ctx.activate(R,P,G,M,ee):ke(R,P,G,F,Y,M,ee):_e(C,R,ee)},ke=(C,R,P,G,F,Y,M)=>{let H=C.component=Vf(C,G,F);if(ri(C)&&(H.ctx.renderer=ue),qf(H,!1,M),H.asyncDep){if(F&&F.registerDep(H,Ne,M,Y),!C.el){let ee=H.subTree=Ue(Gt);E(null,ee,R,P),C.placeholder=ee.el}}else Ne(H,C,R,P,F,Y,M)},_e=(C,R,P)=>{let G=R.component=C.component;if(vf(C,R,P))if(G.asyncDep&&!G.asyncResolved){R.el=C.el,R.placeholder=C.placeholder,Re(G,R,P);return}else G.next=R,G.update();else R.el=C.el,R.placeholder=C.placeholder,G.vnode=R},Ne=(C,R,P,G,F,Y,M)=>{let H=()=>{if(C.isMounted){let{next:ne,bu:pe,u:ye,parent:Te,vnode:Le}=C;{let lt=Gl(C);if(lt){ne&&(ne.el=Le.el,Re(C,ne,M)),lt.asyncDep.then(()=>{Rt(()=>{C.isUnmounted||K()},F)});return}}let Be=ne,st;zn(C,!1),ne?(ne.el=Le.el,Re(C,ne,M)):ne=Le,pe&&us(pe),(st=ne.props&&ne.props.onVnodeBeforeUpdate)&&xt(st,Te,ne,Le),zn(C,!0);let Ye=ar(C),bt=C.subTree;C.subTree=Ye,w(bt,Ye,v(bt.el),x(bt),C,F,Y),ne.el=Ye.el,Be===null&&yf(C,Ye.el),ye&&Rt(ye,F),(st=ne.props&&ne.props.onVnodeUpdated)&&Rt(()=>xt(st,Te,ne,Le),F)}else{let ne,{el:pe,props:ye}=R,{bm:Te,m:Le,parent:Be,root:st,type:Ye}=C,bt=Zs(R);if(zn(C,!1),Te&&us(Te),!bt&&(ne=ye&&ye.onVnodeBeforeMount)&&xt(ne,Be,R),zn(C,!0),pe&&Pe){let lt=()=>{C.subTree=ar(C),Pe(pe,C.subTree,C,F,null)};bt&&Ye.__asyncHydrate?Ye.__asyncHydrate(pe,C,lt):lt()}else{st.ce&&st.ce._hasShadowRoot()&&st.ce._injectChildStyle(Ye,C.parent?C.parent.type:void 0);let lt=C.subTree=ar(C);w(null,lt,P,G,C,F,Y),R.el=lt.el}if(Le&&Rt(Le,F),!bt&&(ne=ye&&ye.onVnodeMounted)){let lt=R;Rt(()=>xt(ne,Be,lt),F)}(R.shapeFlag&256||Be&&Zs(Be.vnode)&&Be.vnode.shapeFlag&256)&&C.a&&Rt(C.a,F),C.isMounted=!0,R=P=G=null}};C.scope.on();let ee=C.effect=new fs(H);C.scope.off();let K=C.update=ee.run.bind(ee),he=C.job=ee.runIfDirty.bind(ee);he.i=C,he.id=C.uid,ee.scheduler=()=>mr(he),zn(C,!0),K()},Re=(C,R,P)=>{R.component=C;let G=C.vnode.props;C.vnode=R,C.next=null,wf(C,R.props,G,P),Sf(C,R.children,P),zt(),ml(C),Ht()},Je=(C,R,P,G,F,Y,M,H,ee=!1)=>{let K=C&&C.children,he=C?C.shapeFlag:0,ne=R.children,{patchFlag:pe,shapeFlag:ye}=R;if(pe>0){if(pe&128){rt(K,ne,P,G,F,Y,M,H,ee);return}else if(pe&256){Ke(K,ne,P,G,F,Y,M,H,ee);return}}ye&8?(he&16&&L(K,F,Y),ne!==K&&g(P,ne)):he&16?ye&16?rt(K,ne,P,G,F,Y,M,H,ee):L(K,F,Y,!0):(he&8&&g(P,""),ye&16&&D(ne,P,G,F,Y,M,H,ee))},Ke=(C,R,P,G,F,Y,M,H,ee)=>{C=C||Cn,R=R||Cn;let K=C.length,he=R.length,ne=Math.min(K,he),pe;for(pe=0;pehe?L(C,F,Y,!0,!1,ne):D(R,P,G,F,Y,M,H,ee,ne)},rt=(C,R,P,G,F,Y,M,H,ee)=>{let K=0,he=R.length,ne=C.length-1,pe=he-1;for(;K<=ne&&K<=pe;){let ye=C[K],Te=R[K]=ee?pn(R[K]):tn(R[K]);if(Xs(ye,Te))w(ye,Te,P,null,F,Y,M,H,ee);else break;K++}for(;K<=ne&&K<=pe;){let ye=C[ne],Te=R[pe]=ee?pn(R[pe]):tn(R[pe]);if(Xs(ye,Te))w(ye,Te,P,null,F,Y,M,H,ee);else break;ne--,pe--}if(K>ne){if(K<=pe){let ye=pe+1,Te=yepe)for(;K<=ne;)U(C[K],F,Y,!0),K++;else{let ye=K,Te=K,Le=new Map;for(K=Te;K<=pe;K++){let z=R[K]=ee?pn(R[K]):tn(R[K]);z.key!=null&&Le.set(z.key,K)}let Be,st=0,Ye=pe-Te+1,bt=!1,lt=0,S=new Array(Ye);for(K=0;K=Ye){U(z,F,Y,!0);continue}let Z;if(z.key!=null)Z=Le.get(z.key);else for(Be=Te;Be<=pe;Be++)if(S[Be-Te]===0&&Xs(z,R[Be])){Z=Be;break}Z===void 0?U(z,F,Y,!0):(S[Z-Te]=K+1,Z>=lt?lt=Z:bt=!0,w(z,R[Z],P,null,F,Y,M,H,ee),st++)}let V=bt?Tf(S):Cn;for(Be=V.length-1,K=Ye-1;K>=0;K--){let z=Te+K,Z=R[z],fe=R[z+1],be=z+1{let{el:Y,type:M,transition:H,children:ee,shapeFlag:K}=C;if(K&6){Qe(C.component.subTree,R,P,G);return}if(K&128){C.suspense.move(R,P,G);return}if(K&64){M.move(C,R,P,ue);return}if(M===W){i(Y,R,P);for(let ne=0;neH.enter(Y),F));else{let{leave:ne,delayLeave:pe,afterLeave:ye}=H,Te=()=>{C.ctx.isUnmounted?o(Y):i(Y,R,P)},Le=()=>{let Be=Y._isLeaving||!!Y[ir];Y._isLeaving&&Y[ir](!0),H.persisted&&!Be?Te():ne(Y,()=>{Te(),ye&&ye()})};pe?pe(Y,Te,Le):Le()}else i(Y,R,P)},U=(C,R,P,G=!1,F=!1)=>{let{type:Y,props:M,ref:H,children:ee,dynamicChildren:K,shapeFlag:he,patchFlag:ne,dirs:pe,cacheIndex:ye,memo:Te}=C;if((ne===-2||K&&K.hasOnce)&&(F=!1),H!=null&&(zt(),Qs(H,null,P,C,!0),Ht()),ye!=null&&(!C.ctx||C.ctx===R)&&(R.renderCache[ye]=void 0),he&256){R.ctx.deactivate(C);return}let Le=he&1&&pe,Be=!Zs(C),st;if(Be&&(st=M&&M.onVnodeBeforeUnmount)&&xt(st,R,C),he&6)te(C.component,P,G);else{if(he&128){C.suspense.unmount(P,G);return}Le&&Bn(C,null,R,"beforeUnmount"),he&64?C.type.remove(C,R,P,ue,G):K&&!K.hasOnce&&(Y!==W||ne>0&&ne&64)?L(K,R,P,!1,!0):(Y===W&&ne&384||!F&&he&16)&&L(ee,R,P),G&&se(C)}let Ye=Te!=null&&ye==null;(Be&&(st=M&&M.onVnodeUnmounted)||Le||Ye)&&Rt(()=>{st&&xt(st,R,C),Le&&Bn(C,null,R,"unmounted"),Ye&&(C.el=null)},P)},se=C=>{let{type:R,el:P,anchor:G,transition:F}=C,Y=R===W;if(Y&&!F){Q(P,G);return}if(R===eo){I(C),F&&!F.persisted&&F.afterLeave&&F.afterLeave();return}let M=Y?dr(C):C,H=()=>{Y?v(P)&&Q(P,G):o(P),F&&!F.persisted&&F.afterLeave&&F.afterLeave()};if(M&&M.shapeFlag&1&&F&&!F.persisted){let{leave:ee,delayLeave:K}=F,he=M.el,ne=()=>ee(he,H);K?K(he,H,ne):ne()}else H()},Q=(C,R)=>{let P;for(;C!==R;)P=h(C),o(C),C=P;o(R)},te=(C,R,P)=>{let{bum:G,scope:F,job:Y,subTree:M,um:H,m:ee,a:K}=C;al(ee),al(K),G&&us(G),F.stop(),Y?(Y.flags|=8,U(M,C,R,P)):C.vnode.el&&M&&(M.transition=C.vnode.transition,U(M,C,R,P)),H&&Rt(H,R),Rt(()=>{C.isUnmounted=!0},R)},L=(C,R,P,G=!1,F=!1,Y=0)=>{for(let M=Y;M{if(C.shapeFlag&6)return x(C.component.subTree);if(C.shapeFlag&128)return C.suspense.next();let R=h(C.anchor||C.el),P=R&&R[Wp];return P?h(P):R},B=(C,R,P)=>{let G=C&&R._vnode?void 0:C&&C.component?C.component.uid:Mf();Bp(()=>{C==null?R._vnode&&U(R._vnode,null,null,!0):w(R._vnode||null,C,R,null,null,null,P),R._vnode=C},G)},ue={p:w,um:U,m:Qe,r:se,mt:ke,mc:D,pc:Je,pbc:le,n:x,o:e},we,Pe;return t&&([we,Pe]=t(ue)),{render:B,hydrate:we,createApp:cf(B,we)}}function lr({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function zn({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Df(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function jl(e,t,s=!1){let i=e.children,o=t.children;if(Se(i)&&Se(o))for(let r=0;r>1,e[s[u]]0&&(t[i]=s[r-1]),s[r]=i)}}for(r=s.length,a=s[r-1];r-- >0;)s[r]=a,a=t[a];return s}function Gl(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Gl(t)}function al(e){if(e)for(let t=0;te.__isSuspense;function Af(e,t){t&&t.pendingBranch?Se(e)?t.effects.push(...e):t.effects.push(e):hl(e)}var W=Symbol.for("v-fgt"),di=Symbol.for("v-txt"),Gt=Symbol.for("v-cmt"),eo=Symbol.for("v-stc"),Hn=[],It=null;function l(e=!1){Hn.push(It=e?null:[])}function Kl(){Hn.pop(),It=Hn[Hn.length-1]||null}var so=1;function ni(e,t=!1){so+=e,e<0&&It&&t&&(It.hasOnce=!0)}function Yl(e){return e.dynamicChildren=so>0?It||Cn:null,Kl(),so>0&&It&&It.push(e),e}function d(e,t,s,i,o,r){return Yl(n(e,t,s,i,o,r,!0))}function sn(e,t,s,i,o){return Yl(Ue(e,t,s,i,o,!0))}function oo(e){return e?e.__v_isVNode===!0:!1}function Xs(e,t){return e.type===t.type&&e.key===t.key}var Xl=({key:e})=>e??null,Qo=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?xe(e)||ht(e)||Ae(e)?{i:Pt,r:e,k:t,f:!!s}:e:null);function n(e,t=null,s=null,i=0,o=null,r=e===W?0:1,a=!1,u=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Xl(t),ref:t&&Qo(t),scopeId:yl,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:i,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Pt};return u?(si(c,s),r&128&&e.normalize(c)):s&&(c.shapeFlag|=xe(s)?8:16),so>0&&!a&&It&&(c.patchFlag>0||r&6)&&c.patchFlag!==32&&It.push(c),c}var Ue=_f;function _f(e,t=null,s=null,i=0,o=null,r=!1){if((!e||e===nf)&&(e=Gt),oo(e)){let u=vs(e,t,!0);return s&&si(u,s),so>0&&!r&&It&&(u.shapeFlag&6?It[It.indexOf(e)]=u:It.push(u)),u.patchFlag=-2,u}if(Bf(e)&&(e=e.__vccOpts),t){t=Of(t);let{class:u,style:c}=t;u&&!xe(u)&&(t.class=_(u)),He(c)&&(Ys(c)&&!Se(c)&&(c=ot({},c)),t.style=$e(c))}let a=xe(e)?1:Wl(e)?128:ii(e)?64:He(e)?4:Ae(e)?2:0;return n(e,t,s,i,o,a,r,!0)}function Of(e){return e?Ys(e)||$l(e)?ot({},e):e:null}function vs(e,t,s=!1,i=!1){let{props:o,ref:r,patchFlag:a,children:u,transition:c}=e,m=t?Pf(o||{},t):o,g={__v_isVNode:!0,__v_skip:!0,type:e.type,props:m,key:m&&Xl(m),ref:t&&t.ref?s&&r?Se(r)?r.concat(Qo(t)):[r,Qo(t)]:Qo(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:u,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==W?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&vs(e.ssContent),ssFallback:e.ssFallback&&vs(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return c&&i&&no(g,c.clone(g)),g}function y(e=" ",t=0){return Ue(di,null,e,t)}function Ce(e,t){let s=Ue(eo,null,e);return s.staticCount=t,s}function f(e="",t=!1){return t?(l(),sn(Gt,null,e)):Ue(Gt,null,e)}function tn(e){return e==null||typeof e=="boolean"?Ue(Gt):Se(e)?Ue(W,null,e.slice()):oo(e)?pn(e):Ue(di,null,String(e))}function pn(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:vs(e)}function si(e,t){let s=0,{shapeFlag:i}=e;if(t==null)t=null;else if(Se(t))s=16;else if(typeof t=="object")if(i&65){let o=t.default;o&&(o._c&&(o._d=!1),si(e,o()),o._c&&(o._d=!0));return}else{s=32;let o=t._;!o&&!$l(t)?t._ctx=Pt:o===3&&Pt&&(Pt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Ae(t)){if(i&65){si(e,{default:t});return}t={default:t,_ctx:Pt},s=32}else t=String(t),i&64?(s=16,t=[y(t)]):s=8;e.children=t,e.shapeFlag|=s}function Pf(...e){let t={};for(let s=0;svt||Pt,oi,io;{let e=$s(),t=(s,i)=>{let o;return(o=e[s])||(o=e[s]=[]),o.push(i),r=>{o.length>1?o.forEach(a=>a(r)):o[0](r)}};oi=t("__VUE_INSTANCE_SETTERS__",s=>vt=s),io=t("__VUE_SSR_SETTERS__",s=>ys=s)}var co=e=>{let t=vt;return oi(e),e.scope.on(),()=>{e.scope.off(),oi(t)}},ll=()=>{vt&&vt.scope.off(),oi(null)};function Ql(e){return e.vnode.shapeFlag&4}var ys=!1;function qf(e,t=!1,s=!1){t&&io(t);let{props:i,children:o}=e.vnode,r=Ql(e);bf(e,i,r,t),Ef(e,o,s||t);let a=r?$f(e,t):void 0;return t&&io(!1),a}function $f(e,t){let s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,sf);let{setup:i}=s;if(i){zt();let o=e.setupContext=i.length>1?Uf(e):null,r=co(e),a=ro(i,e,0,[e.props,o]),u=Fi(a);if(Ht(),r(),(u||e.sp)&&!Zs(e)&&gr(e),u){if(a.then(ll,ll),t)return a.then(c=>{io(!0);try{dl(e,c,t)}finally{io(!1)}}).catch(c=>{ao(c,e,0)});e.asyncDep=a}else dl(e,a,t)}else Zl(e,t)}function dl(e,t,s){Ae(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:He(t)&&(e.setupState=Xo(t)),Zl(e,s)}var ul,cl;function Zl(e,t,s){let i=e.type;if(!e.render){if(!t&&ul&&!i.render){let o=i.template||vr(e).template;if(o){let{isCustomElement:r,compilerOptions:a}=e.appContext.config,{delimiters:u,compilerOptions:c}=i,m=ot(ot({isCustomElement:r,delimiters:u},a),c);i.render=ul(o,m)}}e.render=i.render||St,cl&&cl(e)}{let o=co(e);zt();try{of(e)}finally{Ht(),o()}}}var Lf={get(e,t){return mt(e,"get",""),e[t]}};function Uf(e){let t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,Lf),slots:e.slots,emit:e.emit,expose:t}}function ui(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Xo(hs(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in xs)return xs[s](e)},has(t,s){return s in t||s in xs}})):e.proxy}function Ff(e,t=!0){return Ae(e)?e.displayName||e.name:e.name||t&&e.__name}function Bf(e){return Ae(e)&&"__vccOpts"in e}var yt=(e,t)=>Ya(e,t,ys);function Oe(e,t,s){try{ni(-1);let i=arguments.length;return i===2?He(t)&&!Se(t)?oo(t)?Ue(e,null,[t]):Ue(e,t):Ue(e,null,t):(i>3?s=Array.prototype.slice.call(arguments,2):i===3&&oo(s)&&(s=[s]),Ue(e,t,s))}finally{ni(1)}}var zf="3.5.44";var Sr,xl=typeof window<"u"&&window.trustedTypes;if(xl)try{Sr=xl.createPolicy("vue",{createHTML:e=>e})}catch{}var cd=Sr?e=>Sr.createHTML(e):e=>e,Hf="http://www.w3.org/2000/svg",jf="http://www.w3.org/1998/Math/MathML",hn=typeof document<"u"?document:null,ed=hn&&hn.createElement("template"),Gf={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,i)=>{let o=t==="svg"?hn.createElementNS(Hf,e):t==="mathml"?hn.createElementNS(jf,e):s?hn.createElement(e,{is:s}):hn.createElement(e);return e==="select"&&i&&i.multiple!=null&&o.setAttribute("multiple",i.multiple),o},createText:e=>hn.createTextNode(e),createComment:e=>hn.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>hn.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,i,o,r){let a=s?s.previousSibling:t.lastChild;if(o&&(o===r||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),s),!(o===r||!(o=o.nextSibling)););else{ed.innerHTML=cd(i==="svg"?`${e}`:i==="mathml"?`${e}`:e);let u=ed.content;if(i==="svg"||i==="mathml"){let c=u.firstChild;for(;c.firstChild;)u.appendChild(c.firstChild);u.removeChild(c)}t.insertBefore(u,s)}return[a?a.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}};var Wf=Symbol("_vtc");function Kf(e,t,s){let i=e[Wf];i&&(t=(t?[t,...i]:[...i]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}var fi=Symbol("_vod"),pd=Symbol("_vsh"),J={name:"show",beforeMount(e,{value:t},{transition:s}){e[fi]=e.style.display==="none"?"":e.style.display,s&&t?s.beforeEnter(e):po(e,t)},mounted(e,{value:t},{transition:s}){s&&t&&s.enter(e)},updated(e,{value:t,oldValue:s},{transition:i}){!t!=!s&&(i?t?(i.beforeEnter(e),po(e,!0),i.enter(e)):i.leave(e,()=>{po(e,!1)}):po(e,t))},beforeUnmount(e,{value:t}){po(e,t)}};function po(e,t){e.style.display=t?e[fi]:"none",e[pd]=!t}var Yf=Symbol("");var Xf=/(?:^|;)\s*display\s*:/;function Jf(e,t,s){let i=e.style,o=xe(s),r=!1;if(s&&!o){if(t)if(xe(t))for(let a of t.split(";")){let u=a.slice(0,a.indexOf(":")).trim();s[u]==null&&fo(i,u,"")}else for(let a in t)s[a]==null&&fo(i,a,"");for(let a in s){a==="display"&&(r=!0);let u=s[a];u!=null?Zf(e,a,!xe(t)&&t?t[a]:void 0,u)||fo(i,a,u):fo(i,a,"")}}else if(o){if(t!==s){let a=i[Yf];a&&(s+=";"+a),i.cssText=s,r=Xf.test(s)}}else t&&e.removeAttribute("style");fi in e&&((!o||t!==s)&&(e[fi]=r?i.display:""),e[pd]&&(i.display="none"))}var ci=/\s*!important$/;function fo(e,t,s){if(Se(s))s.forEach(i=>fo(e,t,i));else if(s==null&&(s=""),t.startsWith("--"))ci.test(s)?e.setProperty(t,s.replace(ci,""),"important"):e.setProperty(t,s);else{let i=Qf(e,t);ci.test(s)?e.setProperty(Yt(i),s.replace(ci,""),"important"):e[i]=s}}var td=["Webkit","Moz","ms"],kr={};function Qf(e,t){let s=kr[t];if(s)return s;let i=ut(t);if(i!=="filter"&&i in e)return kr[t]=i;i=Ln(i);for(let o=0;oCr||(oh.then(()=>Cr=0),Cr=Date.now());function rh(e,t){let s=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=s.attached)return;let o=s.value;if(Se(o)){let r=i.stopImmediatePropagation;i.stopImmediatePropagation=()=>{r.call(i),i._stopped=!0};let a=o.slice(),u=[i];for(let c=0;ce.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ah=(e,t,s,i,o,r)=>{let a=o==="svg";t==="class"?Kf(e,i,a):t==="style"?Jf(e,s,i):as(t)?ls(t)||eh(e,t,s,i,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):lh(e,t,i,a))?(od(e,t,i),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&sd(e,t,i,a,r,t!=="value")):e._isVueCE&&(dh(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!xe(i)))?od(e,ut(t),i,r,t):(t==="true-value"?e._trueValue=i:t==="false-value"&&(e._falseValue=i),sd(e,t,i,a))};function lh(e,t,s,i){if(i)return!!(t==="innerHTML"||t==="textContent"||t in e&&rd(t)&&Ae(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){let o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return rd(t)&&xe(s)?!1:t in e}function dh(e,t){let s=e._def.props;if(!s)return!1;let i=ut(t);return Array.isArray(s)?s.some(o=>ut(o)===i):Object.keys(s).some(o=>ut(o)===i)}var bs=e=>{let t=e.props["onUpdate:modelValue"]||!1;return Se(t)?s=>us(t,s):t};function uh(e){e.target.composing=!0}function ad(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}var on=Symbol("_assign"),pi=Symbol("_initialValue");function Er(e,t,s){return t&&(e=e.trim()),s&&(e=cs(e)),e}var dt={created(e,{modifiers:{lazy:t,trim:s,number:i}},o){e.parentNode&&(e.type==="text"?e[pi]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[pi]=e.defaultValue.replace(/\r\n?/g,` +`))),e[on]=bs(o);let r=i||o.props&&o.props.type==="number";Sn(e,t?"change":"input",a=>{a.target.composing||e[on](Er(e.value,s,r))}),(s||r)&&Sn(e,"change",()=>{e.value=Er(e.value,s,r)}),t||(Sn(e,"compositionstart",uh),Sn(e,"compositionend",ad),Sn(e,"change",ad))},mounted(e,{value:t,modifiers:{trim:s,number:i}}){let o=t??"",r=e[pi];delete e[pi],r!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==r?e[on](Er(e.value,s,i)):e.value=o},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:i,trim:o,number:r}},a){if(e[on]=bs(a),e.composing)return;let u=(r||e.type==="number")&&!/^0\d/.test(e.value)?cs(e.value):e.value,c=t??"";if(u===c)return;let m=e.getRootNode();(m instanceof Document||m instanceof ShadowRoot)&&m.activeElement===e&&e.type!=="range"&&(i&&t===s||o&&e.value.trim()===c)||(e.value=c)}},Nr={deep:!0,created(e,t,s){e[on]=bs(s),Sn(e,"change",()=>{let i=e._modelValue,o=ho(e),r=e.checked,a=e[on];if(Se(i)){let u=Fo(i,o),c=u!==-1;if(r&&!c)a(i.concat(o));else if(!r&&c){let m=[...i];m.splice(u,1),a(m)}}else if(Ut(i)){let u=new Set(i);r?u.add(o):u.delete(o),a(u)}else a(fd(e,r))})},mounted:ld,beforeUpdate(e,t,s){e[on]=bs(s),ld(e,t,s)}};function ld(e,{value:t,oldValue:s},i){e._modelValue=t;let o;if(Se(t))o=Fo(t,i.props.value)>-1;else if(Ut(t))o=t.has(i.props.value);else{if(t===s)return;o=Ft(t,fd(e,!0))}e.checked!==o&&(e.checked=o)}var Wn={deep:!0,created(e,{value:t,modifiers:{number:s}},i){e._modelValue=t,Sn(e,"change",()=>{let o=Array.prototype.filter.call(e.options,c=>c.selected).map(c=>s?cs(ho(c)):ho(c)),r=e.multiple,a=r?Ut(e._modelValue)?new Set(o):o:o[0],u=e._pendingValue=[r,r?Se(a)?o.slice():o:a];try{e[on](a)}finally{it(()=>{e._pendingValue===u&&(e._pendingValue=void 0)})}}),e[on]=bs(i)},mounted(e,{value:t}){dd(e,t)},beforeUpdate(e,{value:t},s){e._modelValue=t,e[on]=bs(s)},updated(e,{value:t}){let s=e._pendingValue;e._pendingValue=void 0,(!s||s[0]!==e.multiple||!ch(t,s[1],s[0]))&&dd(e,t)}};function ch(e,t,s){if(!s)return Ft(e,t);if(Se(e))return Ft(e,t);if(Ut(e)){if(e.size!==t.length)return!1;for(let i of t)if(!e.has(i))return!1;return!0}return!1}function dd(e,t){let s=e.multiple,i=Se(t);if(!(s&&!i&&!Ut(t))){for(let o=0,r=e.options.length;oString(m)===String(u)):a.selected=Fo(t,u)>-1}else a.selected=t.has(u);else if(Ft(ho(a),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!s&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function ho(e){return"_value"in e?e._value:e.value}function fd(e,t){let s=t?"_trueValue":"_falseValue";return s in e?e[s]:t}var ph=["ctrl","shift","alt","meta"],fh={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>ph.some(s=>e[`${s}Key`]&&!t.includes(s))},ce=(e,t)=>{if(!e)return e;let s=e._withMods||(e._withMods={}),i=t.join(".");return s[i]||(s[i]=((o,...r)=>{for(let a=0;a{let s=e._withKeys||(e._withKeys={}),i=t.join(".");return s[i]||(s[i]=(o=>{if(!("key"in o))return;let r=Yt(o.key);if(t.some(a=>a===r||hh[a]===r))return e(o)}))},mh=ot({patchProp:ah},Gf),ud;function gh(){return ud||(ud=Hl(mh))}var hd=((...e)=>{let t=gh().createApp(...e),{mount:s}=t;return t.mount=i=>{let o=yh(i);if(!o)return;let r=t._component;!Ae(r)&&!r.render&&!r.template&&(r.template=o.innerHTML),o.nodeType===1&&(o.textContent="");let a=s(o,!1,vh(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),a},t});function vh(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function yh(e){return xe(e)?document.querySelector(e):e}var Xn=typeof document<"u";function gd(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function bh(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&gd(e.default)}var je=Object.assign;function hi(e,t){let s={};for(let i in t){let o=t[i];s[i]=Lt(o)?o.map(e):e(o)}return s}var ks=()=>{},Lt=Array.isArray;function Tr(e,t){let s={};for(let i in e)s[i]=i in t?t[i]:e[i];return s}var vd=/#/g,wh=/&/g,kh=/\//g,Ch=/=/g,Eh=/\?/g,yd=/\+/g,Sh=/%5B/g,Nh=/%5D/g,bd=/%5E/g,Rh=/%60/g,wd=/%7B/g,Dh=/%7C/g,kd=/%7D/g,Th=/%20/g;function Ar(e){return e==null?"":encodeURI(""+e).replace(Dh,"|").replace(Sh,"[").replace(Nh,"]")}function Cd(e){return Ar(e).replace(wd,"{").replace(kd,"}").replace(bd,"^")}function Rr(e){return Ar(e).replace(yd,"%2B").replace(Th,"+").replace(vd,"%23").replace(wh,"%26").replace(Rh,"`").replace(wd,"{").replace(kd,"}").replace(bd,"^")}function Ah(e){return Rr(e).replace(Ch,"%3D")}function _h(e){return Ar(e).replace(vd,"%23").replace(Eh,"%3F")}function Ed(e){return _h(e).replace(kh,"%2F")}function ws(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}var Oh=/\/$/,Ph=e=>e.replace(Oh,"");function mi(e,t,s="/"){let i,o={},r="",a="",u=t.indexOf("#"),c=t.indexOf("?");return c=u>=0&&c>u?-1:c,c>=0&&(i=t.slice(0,c),r=t.slice(c,u>0?u:t.length),o=e(r.slice(1))),u>=0&&(i=i||t.slice(0,u),a=t.slice(u,t.length)),i=Mh(i??t,s),{fullPath:i+r+a,path:i,query:o,hash:ws(a)}}function Sd(e,t){let s=t.query?e(t.query):"";return t.path+(s&&"?")+s+(t.hash||"")}function _r(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Nd(e,t,s){let i=t.matched.length-1,o=s.matched.length-1;return i>-1&&i===o&&Kn(t.matched[i],s.matched[o])&&Or(t.params,s.params)&&e(t.query)===e(s.query)&&t.hash===s.hash}function Kn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Or(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var s in e)if(!Ih(e[s],t[s]))return!1;return!0}function Ih(e,t){return Lt(e)?md(e,t):Lt(t)?md(t,e):e?.valueOf()===t?.valueOf()}function md(e,t){return Lt(t)?e.length===t.length&&e.every((s,i)=>s===t[i]):e.length===1&&e[0]===t}function Mh(e,t){if(e.startsWith("/"))return e;if(!e)return t;let s=t.split("/"),i=e.split("/"),o=i[i.length-1];(o===".."||o===".")&&i.push("");let r=s.length-1,a,u;for(a=0;a1&&r--;else break;return s.slice(0,r).join("/")+"/"+i.slice(a).join("/")}var gn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},gi=(function(e){return e.pop="pop",e.push="push",e})({}),vi=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Rd(e){if(!e)if(Xn){let t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Ph(e)}var Vh=/^[^#]+#/;function Dd(e,t){return e.replace(Vh,"#")+t}function qh(e,t){let s=document.documentElement.getBoundingClientRect(),i=e.getBoundingClientRect();return{behavior:t.behavior,left:i.left-s.left-(t.left||0),top:i.top-s.top-(t.top||0)}}var mo=()=>({left:window.scrollX,top:window.scrollY});function Td(e){let t;if("el"in e){let s=e.el,i=typeof s=="string"&&s.startsWith("#"),o=typeof s=="string"?i?document.getElementById(s.slice(1)):document.querySelector(s):s;if(!o)return;t=qh(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Pr(e,t){return(history.state?history.state.position-t:-1)+e}var Dr=new Map;function Ad(e,t){Dr.set(e,t)}function _d(e){let t=Dr.get(e);return Dr.delete(e),t}function $h(e){return typeof e=="string"||e&&typeof e=="object"}function Ir(e){return typeof e=="string"||typeof e=="symbol"}var nt=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({}),Od=Symbol("");var oj={[nt.MATCHER_NOT_FOUND]({location:e,currentLocation:t}){return`No match for ${JSON.stringify(e)}${t?` while being at -`+JSON.stringify(t):""}`},[Be.NAVIGATION_GUARD_REDIRECT]({from:e,to:t}){return`Redirected from "${e.fullPath}" to "${ip(t)}" via a navigation guard.`},[Be.NAVIGATION_ABORTED]({from:e,to:t}){return`Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`},[Be.NAVIGATION_CANCELLED]({from:e,to:t}){return`Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`},[Be.NAVIGATION_DUPLICATED]({from:e,to:t}){return`Avoided redundant navigation to current location: "${e.fullPath}".`}};function hn(e,t){return Oe(new Error,{type:e,[Va]:!0},t)}function Ht(e,t){return e instanceof Error&&Va in e&&(t==null||!!(e.type&t))}var sp=["params","query","hash"];function ip(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;let t={};for(let o of sp)o in e&&(t[o]=e[o]);return JSON.stringify(t,null,2)}function qa(e){let t={};if(e===""||e==="?")return t;let o=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;is&&ni(s)):[i&&ni(i)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+o,s!=null&&(t+="="+s))})}return t}function La(e){let t={};for(let o in e){let i=e[o];i!==void 0&&(t[o]=Ct(i)?i.map(s=>s==null?null:""+s):i==null?i:""+i)}return t}var $a=Symbol(""),ci=Symbol(""),is=Symbol(""),rs=Symbol(""),as=Symbol("");function In(){let e=[];function t(i){return e.push(i),()=>{let s=e.indexOf(i);s>-1&&e.splice(s,1)}}function o(){e=[]}return{add:t,list:()=>e.slice(),reset:o}}function Xt(e,t,o,i,s,r=a=>a()){let a=i&&(i.enterCallbacks[s]=i.enterCallbacks[s]||[]);return()=>new Promise((p,f)=>{let g=m=>{m===!1?f(hn(Be.NAVIGATION_ABORTED,{from:o,to:t})):m instanceof Error?f(m):op(m)?f(hn(Be.NAVIGATION_GUARD_REDIRECT,{from:t,to:m})):(a&&i.enterCallbacks[s]===a&&typeof m=="function"&&a.push(m),p())},y=r(()=>e.call(i&&i.instances[s],t,o,g)),b=Promise.resolve(y);e.length<3&&(b=b.then(g)),b.catch(m=>f(m))})}function ls(e,t,o,i,s=r=>r()){let r=[];for(let a of e)for(let p in a.components){let f=a.components[p];if(!(t!=="beforeRouteEnter"&&!a.instances[p]))if(wa(f)){let g=(f.__vccOpts||f)[t];g&&r.push(Xt(g,o,i,a,p,s))}else{let g=f();r.push(()=>g.then(y=>{if(!y)throw new Error(`Couldn't resolve component "${p}" at "${a.path}"`);let b=Uc(y)?y.default:y;a.mods[p]=y,a.components[p]=b;let m=(b.__vccOpts||b)[t];return m&&Xt(m,o,i,a,p,s)()}))}}return r}function Ua(e,t){let o=[],i=[],s=[],r=Math.max(t.matched.length,e.matched.length);for(let a=0;amn(g,p))?i.push(p):o.push(p));let f=e.matched[a];f&&(t.matched.find(g=>mn(g,f))||s.push(f))}return[o,i,s]}var rp=()=>location.protocol+"//"+location.host;function Qa(e,t){let{pathname:o,search:i,hash:s}=t,r=e.indexOf("#");if(r>-1){let a=s.includes(e.slice(r))?e.slice(r).length:1,p=s.slice(a);return p[0]!=="/"&&(p="/"+p),ri(p,"")}return ri(o,e)+i+s}function ap(e,t,o,i){let s=[],r=[],a=null,p=({state:m})=>{let E=Qa(e,location),P=o.value,k=t.value,v=0;if(m){if(o.value=E,t.value=m,a&&a===P){a=null;return}v=k?m.position-k.position:0}else i(E);s.forEach(S=>{S(o.value,P,{delta:v,type:os.pop,direction:v?v>0?ss.forward:ss.back:ss.unknown})})};function f(){a=o.value}function g(m){s.push(m);let E=()=>{let P=s.indexOf(m);P>-1&&s.splice(P,1)};return r.push(E),E}function y(){if(document.visibilityState==="hidden"){let{history:m}=window;if(!m.state)return;m.replaceState(Oe({},m.state,{scroll:go()}),"")}}function b(){for(let m of r)m();r=[],window.removeEventListener("popstate",p),window.removeEventListener("pagehide",y),document.removeEventListener("visibilitychange",y)}return window.addEventListener("popstate",p),window.addEventListener("pagehide",y),document.addEventListener("visibilitychange",y),{pauseListeners:f,listen:g,destroy:b}}function Fa(e,t,o,i=!1,s=!1){return{back:e,current:t,forward:o,replaced:i,position:window.history.length,scroll:s?go():null}}function lp(e){let{history:t,location:o}=window,i={value:Qa(e,o)},s={value:t.state};s.value||r(i.value,{back:null,current:i.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function r(f,g,y){let b=e.indexOf("#"),m=b>-1?(o.host&&document.querySelector("base")?e:e.slice(b))+f:rp()+e+f;try{t[y?"replaceState":"pushState"](g,"",m),s.value=g}catch(E){console.error(E),o[y?"replace":"assign"](m)}}function a(f,g){r(f,Oe({},t.state,Fa(s.value.back,f,s.value.forward,!0),g,{position:s.value.position}),!0),i.value=f}function p(f,g){let y=Oe({},s.value,t.state,{forward:f,scroll:go()});r(y.current,y,!0),r(f,Oe({},Fa(i.value,f,null),{position:y.position+1},g),!1),i.value=f}return{location:i,state:s,push:p,replace:a}}function Xa(e){e=Aa(e);let t=lp(e),o=ap(e,t.state,t.location,t.replace);function i(r,a=!0){a||o.pauseListeners(),history.go(r)}let s=Oe({location:"",base:e,go:i,createHref:Oa.bind(null,e)},t,o);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}var gn=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({}),Xe=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(Xe||{}),dp={type:gn.Static,value:""},up=/[a-zA-Z0-9_]/;function cp(e){if(!e)return[[]];if(e==="/")return[[dp]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(E){throw new Error(`ERR (${o})/"${g}": ${E}`)}let o=Xe.Static,i=o,s=[],r;function a(){r&&s.push(r),r=[]}let p=0,f,g="",y="";function b(){g&&(o===Xe.Static?r.push({type:gn.Static,value:g}):o===Xe.Param||o===Xe.ParamRegExp||o===Xe.ParamRegExpEnd?(r.length>1&&(f==="*"||f==="+")&&t(`A repeatable param (${g}) must be alone in its segment. eg: '/:ids+.`),r.push({type:gn.Param,value:g,regexp:y,repeatable:f==="*"||f==="+",optional:f==="*"||f==="?"})):t("Invalid state to consume buffer"),g="")}function m(){g+=f}for(;pt.length?t.length===1&&t[0]===rt.Static+rt.Segment?1:-1:0}function Za(e,t){let o=0,i=e.score,s=t.score;for(;o0&&t[t.length-1]<0}var vp={strict:!1,end:!0,sensitive:!1};function gp(e,t,o){let i=mp(cp(e.path),o),s=Oe(i,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function yp(e,t){let o=[],i=new Map;t=si(vp,t);function s(b){return i.get(b)}function r(b,m,E){let P=!E,k=ja(b);k.aliasOf=E&&E.record;let v=si(t,b),S=[k];if("alias"in b){let L=typeof b.alias=="string"?[b.alias]:b.alias;for(let q of L)S.push(ja(Oe({},k,{components:E?E.record.components:k.components,path:q,aliasOf:E?E.record:k})))}let _,M;for(let L of S){let{path:q}=L;if(m&&q[0]!=="/"){let G=m.record.path,se=G[G.length-1]==="/"?"":"/";L.path=m.record.path+(q&&se+q)}if(_=gp(L,m,v),E?E.alias.push(_):(M=M||_,M!==_&&M.alias.push(_),P&&b.name&&!Ga(_)&&a(b.name)),xa(_)&&f(_),k.children){let G=k.children;for(let se=0;se{a(M)}:Pn}function a(b){if(di(b)){let m=i.get(b);m&&(i.delete(b),o.splice(o.indexOf(m),1),m.children.forEach(a),m.alias.forEach(a))}else{let m=o.indexOf(b);m>-1&&(o.splice(m,1),b.record.name&&i.delete(b.record.name),b.children.forEach(a),b.alias.forEach(a))}}function p(){return o}function f(b){let m=kp(b,o);o.splice(m,0,b),b.record.name&&!Ga(b)&&i.set(b.record.name,b)}function g(b,m){let E,P={},k,v;if("name"in b&&b.name){if(E=i.get(b.name),!E)throw hn(Be.MATCHER_NOT_FOUND,{location:b});v=E.record.name,P=Oe(Ha(m.params,E.keys.filter(M=>!M.optional).concat(E.parent?E.parent.keys.filter(M=>M.optional):[]).map(M=>M.name)),b.params&&Ha(b.params,E.keys.map(M=>M.name))),k=E.stringify(P)}else if(b.path!=null)k=b.path,E=o.find(M=>M.re.test(k)),E&&(P=E.parse(k),v=E.record.name);else{if(E=m.name?i.get(m.name):o.find(M=>M.re.test(m.path)),!E)throw hn(Be.MATCHER_NOT_FOUND,{location:b,currentLocation:m});v=E.record.name,P=Oe({},m.params,b.params),k=E.stringify(P)}let S=[],_=E;for(;_;)S.unshift(_.record),_=_.parent;return{name:v,path:k,params:P,matched:S,meta:wp(S)}}e.forEach(b=>r(b));function y(){o.length=0,i.clear()}return{addRoute:r,resolve:g,removeRoute:a,clearRoutes:y,getRoutes:p,getRecordMatcher:s}}function Ha(e,t){let o={};for(let i of t)i in e&&(o[i]=e[i]);return o}function ja(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:bp(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function bp(e){let t={},o=e.props||!1;if("component"in e)t.default=o;else for(let i in e.components)t[i]=typeof o=="object"?o[i]:o;return t}function Ga(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function wp(e){return e.reduce((t,o)=>Oe(t,o.meta),{})}function kp(e,t){let o=0,i=t.length;for(;o!==i;){let r=o+i>>1;Za(e,t[r])<0?i=r:o=r+1}let s=Cp(e);return s&&(i=t.lastIndexOf(s,i-1)),i}function Cp(e){let t=e;for(;t=t.parent;)if(xa(t)&&Za(e,t)===0)return t}function xa({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Wa(e){let t=ut(is),o=ut(rs),i=!1,s=null,r=nt(()=>{let y=Kt(e.to);return t.resolve(y)}),a=nt(()=>{let{matched:y}=r.value,{length:b}=y,m=y[b-1],E=o.matched;if(!m||!E.length)return-1;let P=E.findIndex(mn.bind(null,m));if(P>-1)return P;let k=Ka(y[b-2]);return b>1&&Ka(m)===k&&E[E.length-1].path!==k?E.findIndex(mn.bind(null,y[b-2])):P}),p=nt(()=>a.value>-1&&Dp(o.params,r.value.params)),f=nt(()=>a.value>-1&&a.value===o.matched.length-1&&ai(o.params,r.value.params));function g(y={}){if(Rp(y)){let b=t[Kt(e.replace)?"replace":"push"](Kt(e.to)).catch(Pn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>b),b}return Promise.resolve()}return{route:r,href:nt(()=>r.value.href),isActive:p,isExactActive:f,navigate:g}}function Ep(e){return e.length===1?e[0]:e}var Sp=co({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Wa,setup(e,{slots:t}){let o=Ue(Wa(e)),{options:i}=ut(is),s=nt(()=>({[Ya(e.activeClass,i.linkActiveClass,"router-link-active")]:o.isActive,[Ya(e.exactActiveClass,i.linkExactActiveClass,"router-link-exact-active")]:o.isExactActive}));return()=>{let r=t.default&&Ep(t.default(o));return e.custom?r:Se("a",{"aria-current":o.isExactActive?e.ariaCurrentValue:null,href:o.href,onClick:o.navigate,class:s.value},r)}}}),Np=Sp;function Rp(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Dp(e,t){for(let o in t){let i=t[o],s=e[o];if(typeof i=="string"){if(i!==s)return!1}else if(!Ct(s)||s.length!==i.length||i.some((r,a)=>r.valueOf()!==s[a].valueOf()))return!1}return!0}function Ka(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}var Ya=(e,t,o)=>e??t??o,Tp=co({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:o}){let i=ut(as),s=nt(()=>e.route||i.value),r=ut(ci,0),a=nt(()=>{let g=Kt(r),{matched:y}=s.value,b;for(;(b=y[g])&&!b.components;)g++;return g}),p=nt(()=>s.value.matched[a.value]);cn(ci,nt(()=>a.value+1)),cn($a,p),cn(as,s);let f=et();return Fe(()=>[f.value,p.value,e.name],([g,y,b],[m,E,P])=>{y&&(y.instances[b]=g,E&&E!==y&&g&&g===m&&(y.leaveGuards.size||(y.leaveGuards=E.leaveGuards),y.updateGuards.size||(y.updateGuards=E.updateGuards))),g&&y&&(!E||!mn(y,E)||!m)&&(y.enterCallbacks[b]||[]).forEach(k=>k(g))},{flush:"post"}),()=>{let g=s.value,y=e.name,b=p.value,m=b&&b.components[y];if(!m)return Ja(o.default,{Component:m,route:g});let E=b.props[y],P=E?E===!0?g.params:typeof E=="function"?E(g):E:null,v=Se(m,Oe({},P,t,{onVnodeUnmounted:S=>{S.component.isUnmounted&&(b.instances[y]=null)},ref:f}));return Ja(o.default,{Component:v,route:g})||v}}});function Ja(e,t){if(!e)return null;let o=e(t);return o.length===1?o[0]:o}var pi=Tp;function el(e){let t=yp(e.routes,e),o=e.parseQuery||qa,i=e.stringifyQuery||ui,s=e.history,r=In(),a=In(),p=In(),f=Vo(Zt),g=Zt;vn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");let y=ts.bind(null,U=>""+U),b=ts.bind(null,Da),m=ts.bind(null,On);function E(U,Q){let H,re;return di(U)?(H=t.getRecordMatcher(U),re=Q):re=U,t.addRoute(re,H)}function P(U){let Q=t.getRecordMatcher(U);Q&&t.removeRoute(Q)}function k(){return t.getRoutes().map(U=>U.record)}function v(U){return!!t.getRecordMatcher(U)}function S(U,Q){if(Q=Oe({},Q||f.value),typeof U=="string"){let N=ns(o,U,Q.path),V=t.resolve({path:N.path},Q),j=s.createHref(N.fullPath);return Oe(N,V,{params:m(V.params),hash:On(N.hash),redirectedFrom:void 0,href:j})}let H;if(U.path!=null)H=Oe({},U,{path:ns(o,U.path,Q.path).path});else{let N=Oe({},U.params);for(let V in N)N[V]==null&&delete N[V];H=Oe({},U,{params:b(N)}),Q.params=b(Q.params)}let re=t.resolve(H,Q),de=U.hash||"";re.params=y(m(re.params));let Ne=Ta(i,Oe({},U,{hash:Ra(de),path:re.path})),C=s.createHref(Ne);return Oe({fullPath:Ne,hash:de,query:i===ui?La(U.query):U.query||{}},re,{redirectedFrom:void 0,href:C})}function _(U){return typeof U=="string"?ns(o,U,f.value.path):Oe({},U)}function M(U,Q){if(g!==U)return hn(Be.NAVIGATION_CANCELLED,{from:Q,to:U})}function L(U){return se(U)}function q(U){return L(Oe(_(U),{replace:!0}))}function G(U,Q){let H=U.matched[U.matched.length-1];if(H&&H.redirect){let{redirect:re}=H,de=typeof re=="function"?re(U,Q):re;return typeof de=="string"&&(de=de.includes("?")||de.includes("#")?de=_(de):{path:de},de.params={}),Oe({query:U.query,hash:U.hash,params:de.path!=null?{}:U.params},de)}}function se(U,Q){let H=g=S(U),re=f.value,de=U.state,Ne=U.force,C=U.replace===!0,N=G(H,re);if(N)return se(Oe(_(N),{state:typeof N=="object"?Oe({},de,N.state):de,force:Ne,replace:C}),Q||H);let V=H;V.redirectedFrom=Q;let j;return!Ne&&_a(i,re,H)&&(j=hn(Be.NAVIGATION_DUPLICATED,{to:V,from:re}),He(re,re,!0,!1)),(j?Promise.resolve(j):K(V,re)).catch(w=>Ht(w)?Ht(w,Be.NAVIGATION_GUARD_REDIRECT)?w:ze(w):be(w,V,re)).then(w=>{if(w){if(Ht(w,Be.NAVIGATION_GUARD_REDIRECT))return se(Oe({replace:C},_(w.to),{state:typeof w.to=="object"?Oe({},de,w.to.state):de,force:Ne}),Q||V)}else w=ve(V,re,!0,C,de);return te(V,re,w),w})}function ee(U,Q){let H=M(U,Q);return H?Promise.reject(H):Promise.resolve()}function R(U){let Q=X.values().next().value;return Q&&typeof Q.runWithContext=="function"?Q.runWithContext(U):U()}function K(U,Q){let H,[re,de,Ne]=Ua(U,Q);H=ls(re.reverse(),"beforeRouteLeave",U,Q);for(let N of re)N.leaveGuards.forEach(V=>{H.push(Xt(V,U,Q))});let C=ee.bind(null,U,Q);return H.push(C),ne(H).then(()=>{H=[];for(let N of r.list())H.push(Xt(N,U,Q));return H.push(C),ne(H)}).then(()=>{H=ls(de,"beforeRouteUpdate",U,Q);for(let N of de)N.updateGuards.forEach(V=>{H.push(Xt(V,U,Q))});return H.push(C),ne(H)}).then(()=>{H=[];for(let N of Ne)if(N.beforeEnter)if(Ct(N.beforeEnter))for(let V of N.beforeEnter)H.push(Xt(V,U,Q));else H.push(Xt(N.beforeEnter,U,Q));return H.push(C),ne(H)}).then(()=>(U.matched.forEach(N=>N.enterCallbacks={}),H=ls(Ne,"beforeRouteEnter",U,Q,R),H.push(C),ne(H))).then(()=>{H=[];for(let N of a.list())H.push(Xt(N,U,Q));return H.push(C),ne(H)}).catch(N=>Ht(N,Be.NAVIGATION_CANCELLED)?N:Promise.reject(N))}function te(U,Q,H){p.list().forEach(re=>R(()=>re(U,Q,H)))}function ve(U,Q,H,re,de){let Ne=M(U,Q);if(Ne)return Ne;let C=Q===Zt,N=vn?history.state:{};H&&(re||C?s.replace(U.fullPath,Oe({scroll:C&&N&&N.scroll},de)):s.push(U.fullPath,de)),f.value=U,He(U,Q,H,C),ze()}let x;function ue(){x||(x=s.listen((U,Q,H)=>{if(!J.listening)return;let re=S(U),de=G(re,J.currentRoute.value);if(de){se(Oe(de,{replace:!0,force:!0}),re).catch(Pn);return}g=re;let Ne=f.value;vn&&Ia(li(Ne.fullPath,H.delta),go()),K(re,Ne).catch(C=>Ht(C,Be.NAVIGATION_ABORTED|Be.NAVIGATION_CANCELLED)?C:Ht(C,Be.NAVIGATION_GUARD_REDIRECT)?(se(Oe(_(C.to),{force:!0}),re).then(N=>{Ht(N,Be.NAVIGATION_ABORTED|Be.NAVIGATION_DUPLICATED)&&!H.delta&&H.type===os.pop&&s.go(-1,!1)}).catch(Pn),Promise.reject()):(H.delta&&s.go(-H.delta,!1),be(C,re,Ne))).then(C=>{C=C||ve(re,Ne,!1),C&&(H.delta&&!Ht(C,Be.NAVIGATION_CANCELLED)?s.go(-H.delta,!1):H.type===os.pop&&Ht(C,Be.NAVIGATION_ABORTED|Be.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),te(re,Ne,C)}).catch(Pn)}))}let he=In(),Ee=In(),ye;function be(U,Q,H){ze(U);let re=Ee.list();return re.length?re.forEach(de=>de(U,Q,H)):console.error(U),Promise.reject(U)}function Le(){return ye&&f.value!==Zt?Promise.resolve():new Promise((U,Q)=>{he.add([U,Q])})}function ze(U){return ye||(ye=!U,ue(),he.list().forEach(([Q,H])=>U?H(U):Q()),he.reset()),U}function He(U,Q,H,re){let{scrollBehavior:de}=e;if(!vn||!de)return Promise.resolve();let Ne=!H&&Ma(li(U.fullPath,0))||(re||!H)&&history.state&&history.state.scroll||null;return Ge().then(()=>de(U,Q,Ne)).then(C=>C&&Pa(C)).catch(C=>be(C,U,Q))}let Me=U=>s.go(U),F,X=new Set,J={currentRoute:f,listening:!0,addRoute:E,removeRoute:P,clearRoutes:t.clearRoutes,hasRoute:v,getRoutes:k,resolve:S,options:e,push:L,replace:q,go:Me,back:()=>Me(-1),forward:()=>Me(1),beforeEach:r.add,beforeResolve:a.add,afterEach:p.add,onError:Ee.add,isReady:Le,install(U){U.component("RouterLink",Np),U.component("RouterView",pi),U.config.globalProperties.$router=J,Object.defineProperty(U.config.globalProperties,"$route",{enumerable:!0,get:()=>Kt(f)}),vn&&!F&&f.value===Zt&&(F=!0,L(s.location).catch(re=>{}));let Q={};for(let re in Zt)Object.defineProperty(Q,re,{get:()=>f.value[re],enumerable:!0});U.provide(is,J),U.provide(rs,Yn(Q)),U.provide(as,f);let H=U.unmount;X.add(U),U.unmount=function(){X.delete(U),X.size<1&&(g=Zt,x&&x(),x=null,f.value=Zt,F=!1,ye=!1),H()}}};function ne(U){return U.reduce((Q,H)=>Q.then(()=>R(H)),Promise.resolve())}return J}function tl(e){return ut(rs)}var ds=new WeakMap;function fi(e){if(!ds.has(e)){let t=e.get("/api/billing/").finally(()=>ds.delete(e));ds.set(e,t)}return ds.get(e)}function us(e,t,o=()=>{},i={}){let s=new URLSearchParams(window.location.search).get("billing");e.billing=null,e.billingLoading=!0,e.billingBusy=!1,e.billingError="",e.billingNotice="",e.billingPending=s==="success"||s==="portal",e.billingRepository="";let r={billing_invalid_draft:"This draft could not be saved. Your form is unchanged. Try again.",billing_draft_not_found:"This checkout draft is unavailable or expired. Your local form is unchanged.",billing_recovery_required:"Your earlier payment needs verification. Please contact support before paying again.",billing_checkout_disabled:"New purchases are temporarily unavailable. You can still manage existing billing.",billing_unavailable:"Payments are not available yet. Please try again later.",billing_subscription_exists:"You already have a subscription. Use Manage billing to change or cancel it.",billing_checkout_in_progress:"You have another checkout open. Complete it or wait for it to expire before choosing a different plan.",billing_busy:"Another billing request is processing. Please try again shortly.",billing_already_paid:"This repository or conference already has an active paid package.",billing_invalid_review_window:"Conference packages cover up to 180 days. Check the review dates.",billing_invalid_conference:"Only a conference owner can pay for a conference awaiting payment.",repo_not_found:"Enter the ID of an existing repository that you own."};e.billingPrice=f=>f.amount==null?"Price shown at checkout":new Intl.NumberFormat(void 0,{style:"currency",currency:f.currency}).format(f.amount/100)+(f.interval?` / ${f.intervalCount>1?f.intervalCount+" ":""}${f.interval}`:" once"),e.billingBytes=f=>{let g=Number(f)||0;if(g<1024)return`${g} B`;let y=Math.min(4,Math.floor(Math.log2(g)/10));return`${new Intl.NumberFormat(void 0,{maximumFractionDigits:1}).format(g/1024**y)} ${["B","KiB","MiB","GiB","TiB"][y]}`},e.billingDate=f=>f?new Date(f).toLocaleDateString():"",e.loadBilling=()=>(e.billingError="",e.billingLoading=!0,fi(t).then(f=>{e.billing=f.data,e.emit?.("billing:updated",f.data)}).catch(()=>{e.billingError="Billing could not be loaded. Try again."}).finally(()=>{e.billingLoading=!1}));async function a(f,g,y=!0){if(!(e.billingBusy||!e.billing?.csrf)){e.billingBusy=!0,e.billingError="";try{let b=await t.post(`/api/billing/${f}`,g,{headers:{"x-csrf-token":e.billing.csrf}});if(y)window.location.assign(b.data.url);else return await e.loadBilling(),await o(),e.billingPending=!!b.data.pending,e.emit?.("billing:pending",e.billingPending),e.billingNotice=b.data.pending?"Your payment is still pending. Please do not pay again.":i.confirmedMessage||"Billing status refreshed. Your confirmed access appears below.",b.data}catch(b){e.billingError=r[b.data?.error]||"The billing request failed. Please try again."}finally{e.billingBusy=!1}}}e.checkout=(f,g="",y={})=>a("checkout",{planId:f,target:g,...y}),e.billingPortal=()=>a("portal",{}),e.refreshBilling=()=>a("refresh",{},!1);async function p(){for(let f=0;f<5;f++){let g=await e.refreshBilling();if(!g||!g.pending)return;await new Promise(y=>window.setTimeout(y,3e3))}e.billingNotice="Confirmation is taking longer than usual. You can refresh payment status later. Please do not pay again."}e.loadBilling().then(()=>{s==="success"||s==="portal"?(e.billingNotice="Checking your payment. Paid access starts after confirmation.",p()):s==="cancelled"&&(e.billingNotice="Checkout was closed. No new paid access has been activated.")})}function nl(e,t){return t?.split(".").reduce((o,i)=>o?.[i],e)}function mi(e=null,t=new Map){let o=Ue({}),i=[],s=!1,r=new Proxy(o,{get(a,p){return typeof p=="string"&&p.startsWith("__v_")||Reflect.has(a,p)?Reflect.get(a,p):e?.[p]}});return Object.defineProperty(o,"parent",{value:e,configurable:!0}),Object.defineProperty(o,"viewState",{get:()=>r}),r.watch=(a,p,f=!1,g=!0)=>{let y=typeof a=="function"?()=>a(r):()=>nl(r,a),b=Fe(y,p,{deep:f,flush:"post"});return i.push(b),g&&Ge(()=>{s||p(y(),y())}),b},r.watchGroup=(a,p,f=!0)=>r.watch(()=>a.map(g=>nl(r,g)),p,!0,f),r.on=(a,p)=>{if(a==="dispose")return i.push(p),()=>{};t.has(a)||t.set(a,new Set),t.get(a).add(p);let f=()=>t.get(a)?.delete(p);return i.push(f),f},r.emit=(a,...p)=>{for(let f of[...t.get(a)||[]])f({},...p)},r.dispose=()=>{s=!0,i.splice(0).reverse().forEach(a=>a())},Wn(r.dispose),r}function pt(){let e=new Set,t=new Set,o=!1,i=(r,a=0)=>{if(o)return;let p=setTimeout(()=>{e.delete(p),r()},a);return e.add(p),p};i.cancel=r=>{clearTimeout(r),e.delete(r)};let s=(r,a)=>{if(o)return;let p=setInterval(r,a);return t.add(p),p};return s.cancel=r=>{clearInterval(r),t.delete(r)},Wn(()=>{o=!0,e.forEach(clearTimeout),t.forEach(clearInterval)}),{timeout:i,interval:s}}function xt(){let e=new Set;return Wn(()=>{e.forEach(t=>t()),e.clear()}),(t,o,i,s)=>{t.addEventListener(o,i,s);let r=()=>{t.removeEventListener(o,i,s),e.delete(r)};return e.add(r),r}}function hi(e,t,o){let i,s=!1,r="form-draft:"+o,a=()=>Object.fromEntries(t.map(m=>[m,e[m]])),p=()=>JSON.stringify(a()),f=m=>{for(let E of t)Object.prototype.hasOwnProperty.call(m,E)&&(e[E]=m[E]);e.options?.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate))},g=()=>{try{window.sessionStorage.removeItem(r)}catch{}},y=(m=!1)=>{if(i!==void 0){if(m&&document.querySelectorAll("input, select, textarea").forEach(E=>{E._field?.binding.state===e&&E._field.timer&&E._field.commit()}),e.unsavedChanges=p()!==i,e.draftSaved=!1,!e.unsavedChanges){g();return}try{window.sessionStorage.setItem(r,JSON.stringify({account:e.user?.username||null,savedAt:Date.now(),values:a()})),e.draftSaved=!0}catch{}}},b=()=>y(!0);return e.on("routeLeave",b),window.addEventListener("beforeunload",b),e.on("dispose",()=>window.removeEventListener("beforeunload",b)),{restore(){i=p();let m;try{m=JSON.parse(window.sessionStorage.getItem(r)||"null")}catch{}let E=m&&m.account===(e.user?.username||null)&&Date.now()-m.savedAt<30*6e4&&m.values;return E&&(f(m.values),e.draftRestored=!0),s||(s=!0,e.watch(()=>a(),()=>y(),!0)),e.unsavedChanges=p()!==i,!!E},checkpoint(){return document.querySelectorAll("input, select, textarea").forEach(m=>{m._field?.binding.state===e&&m._field.timer&&m._field.commit()}),JSON.parse(p())},accept(m){i=JSON.stringify(m),e.draftRestored=!1,y()},discard(){document.querySelectorAll("input, select, textarea").forEach(m=>{m._field?.binding.state!==e||!m._field.timer||(clearTimeout(m._field.timer),m._field.timer=null,m.value=m._field.binding.value??"")}),i!==void 0&&f(JSON.parse(i)),e.draftRestored=!1,y()},clear(){i=p(),e.unsavedChanges=!1,e.draftRestored=!1,e.draftSaved=!1,g()}}}var yo={VIEWER_ERRORS:{title:"Content could not be loaded",access_title:"GitHub access needs attention",reader_help:"Reading this repository? You do not need to sign in. Try again after the owner restores access, or let them know this anonymous link is unavailable.",owner_help:"Own this repository? If your GitHub account was suspended or recently recovered, sign in to Anonymous GitHub again and check the GitHub connection and repository permissions in your dashboard. Then retry this page. Keep the existing anonymous URL; do not delete the repository to restore access.",retry:"Try again",dashboard:"Open owner dashboard"},ERRORS:{cache_busy:"Downloads are busy. Please try again shortly.",invalid_sort:"The selected sort order is invalid.",invalid_cursor:"This project page is no longer valid. Reload the list.",repository_changed:"The repository changed while processing. Please retry.",repository_job_cancelled:"The repository changed or was removed while processing.",storage_delete_failed:"Unable to remove cached files. Please try again later.",unknown_error:"We could not load this content. Try again. If it still fails, contact support with the anonymous URL and the time of the error.",unreachable:"The service could not complete this request. Wait a moment and try again.",request_error:"The connection was interrupted. Check your internet connection and try again.",not_found:"The requested resource could not be found.",not_connected:"You must be logged in to perform this action.",not_authorized:"You do not have permission to perform this action.",unable_to_connect_user:"Unable to connect your account. Please try again later.",user_not_found:"The requested user could not be found.",user_banned:"Your account has been banned. Contact the admin for more information.",repo_access_limited:"GitHub blocked access because the repository's organization restricts third-party OAuth apps. Ask an org owner to approve Anonymous GitHub under Settings \u2192 Third-party Access \u2192 OAuth app policy, or anonymize a personal fork instead.",repo_saml_enforcement:"The repository's organization enforces SAML single sign-on. Authorize your token for that organization (GitHub \u2192 Settings \u2192 Applications, or re-run the org's SSO sign-in), then retry. Alternatively, anonymize a personal fork.",repo_not_found:"Anonymous GitHub cannot access the source repository on GitHub. It may be private, unavailable, or require the owner to reconnect GitHub.",repo_empty:"The selected branch has no commits on GitHub. Push at least one commit, or pick a different branch, then retry.",repo_not_accessible:"Anonymous GitHub cannot access this repository. Verify the repository exists and that Anonymous GitHub has been authorized for the owning organization.",repository_archived:"This repository has been archived and its files are no longer available.",repository_expired:"The repository is expired.",invalid_status:"This action cannot be performed while the resource is in its current state.",repository_not_ready:"Anonymous GitHub is still processing the repository, it can take several minutes.",repository_not_accessible:"This repository is currently not accessible.",repo_is_updating:"Anonymous GitHub is still processing the repository, it can take several minutes.",invalid_repo:"The provided repository is not valid.",invalid_source_repository:"The repository source name is invalid; expected the form 'owner/name'.",repoId_not_defined:"A repository ID must be provided.",repoUrl_not_defined:"The repository URL needs to be defined.",source_not_provided:"A repository source must be provided.",github_rate_limit_exceeded:"GitHub temporarily blocked the request because we hit its API rate limit. Wait a few minutes and try again. If the problem persists and you contact GitHub Support, include the request ID and timestamp shown in GitHub's response (the 'X-GitHub-Request-Id' header).",rate_limited:"GitHub API rate limit reached. The repository will be available shortly \u2014 please wait a moment and refresh.",repoId_already_used:"The repository ID is already used.",invalid_repoId:"The format of the repository ID is invalid.",unsupported_source:"The repository source type is not supported.",branch_not_specified:"The branch is not specified.",branch_not_found:"The branch of the repository cannot be found.",commit_not_specified:"A commit must be specified.",commit_not_found:"The configured commit no longer exists in the source repository. It may have been force-pushed, rebased, or removed.",repo_renamed:"The source repository appears to have been renamed or moved on GitHub. Please refresh and try again \u2014 the cached name has been updated.",invalid_commit_format:"The commit hash format is invalid. It must be a hexadecimal string.",pull_request_not_found:"The requested pull request could not be found.",pull_request_expired:"This pull request has expired and is no longer available.",pull_request_not_ready:"This pull request is still being prepared. Please try again shortly.",pull_request_not_available:"This pull request is currently not available.",invalid_pullRequestId:"The pull request ID is invalid.",pullRequestId_already_used:"This pull request ID is already in use. Please choose a different one.",repository_not_specified:"A repository must be specified for this pull request.",pullRequestId_not_specified:"A pull request ID must be specified.",pullRequestId_is_not_a_number:"The source pull request ID must be a number.",options_not_provided:"Anonymization options are mandatory.",terms_not_specified:"Anonymization terms must be specified.",invalid_terms_format:"Terms are in an invalid format.",missing_content:"No content was provided to the anonymization preview.",unable_to_anonymize:"An error happened during the anonymization process. Please try later or report the issue.",non_supported_mode:"The selected anonymization mode is invalid, only download and stream are supported.",invalid_path:"The provided path is invalid or missing.",path_not_specified:"A file path must be specified.",path_not_defined:"The file path has not been resolved yet.",invalid_file_path:"The requested file path is not valid.",invalid_request:"The request is missing required fields or is malformed.",invalid_project_name:"Use a project name of up to 100 characters without line breaks or control characters.",no_file_selected:"Please select a file.",submodule_not_available:"This public submodule file is no longer available at its recorded commit.",file_not_found:"The requested file is not found.",file_not_accessible:"The requested file is not accessible.",file_not_supported:"The file type is not supported. Anonymous GitHub cannot handle it.",repository_tree_too_large:"The repository has too many pending folders to process safely. Share a smaller repository.",file_listing_too_large:"This folder has too many entries to list. Open a more specific folder or use file search.",file_too_big:"The file size exceeds the limit of Anonymous GitHub.",is_folder:"The path points to a folder.",folder_not_supported:"The path points to a folder. Please select a file.",unable_to_write_file:"Unable to write file on disk.",download_not_enabled:"Repository downloads are not enabled on this server.",unable_to_download:"The repository could not be downloaded. Please try again later.",s3_config_not_provided:"Object storage has not been configured on this server.",stats_unsupported:"Statistics are only supported in download mode.",branches_not_found:"The requested branch is not found.",readme_not_available:"No README for the repository is found.",page_not_supported_on_different_branch:"GitHub Pages is served from a different branch than the one selected. Pick the branch that GitHub Pages is configured to use.",page_not_activated:"GitHub Pages is not enabled on this repository. Enable it in the repository settings on GitHub before anonymizing.",is_removed:"This resource has been removed and is no longer available.",conf_name_missing:"A conference name is required.",conf_id_missing:"A conference ID is required.",conf_id_used:"This conference ID is already in use. Please choose a different one.",conf_start_date_missing:"A start date is required for the conference.",conf_end_date_missing:"An end date is required for the conference.",conf_start_date_invalid:"The start date must be before the end date.",conf_end_date_invalid:"The end date must be in the future.",invalid_plan:"The selected plan is not valid.",conference_not_found:"The requested conference could not be found.",conf_not_found:"The requested conference could not be found.",conf_not_activated:"The conference is not activated.",billing_missing:"Billing information is required for this plan.",billing_name_missing:"A billing name is required.",billing_email_missing:"A billing email is required.",billing_address_missing:"A billing address is required.",billing_city_missing:"A billing city is required.",billing_zip_missing:"A billing ZIP/postal code is required.",billing_country_missing:"A billing country is required.",queue_not_found:"The specified queue could not be found.",job_not_found:"The specified job could not be found in the queue.",error_retrying_job:"An error occurred while retrying the job.",gist_expired:"The gist is expired.",gist_not_ready:"Anonymous GitHub is still processing the gist, it can take several minutes.",gist_not_found:"The requested gist could not be found.",gist_not_available:"This gist is currently not available.",invalid_gistId:"The format of the gist ID is invalid.",gistId_not_specified:"A gist ID must be provided.",gistId_already_used:"The gist ID is already used.",missing_token:"An authentication token is required.",token_attempts_rate_limited:"Too many token authentication attempts. Wait before trying again.",refresh_rate_limited:"A refresh was already requested for this repository. Wait one minute before trying again.",session_required:"Sign in through your browser to manage maintenance tokens.",invalid_token_options:"Provide a token name, 1 to 20 repository IDs, and an expiration of 1 to 90 days.",token_limit_reached:"You have reached the limit of 50 API tokens. Revoke an unused token before creating another.",invalid_token_id:"The token ID is invalid.",invalid_settings:"Provide supported settings with boolean values, or a list of anonymization terms.",token_scope_forbidden:"This token does not allow this operation or repository.",authentication_unavailable:"Authentication is temporarily unavailable. Try again later.",invalid_token:"The provided authentication token is invalid.",login_failed:"Login failed. Please try again.",server_error:"An unexpected server error occurred. Please try again later.",username_not_defined:"A username must be provided.",github_user_not_found:"The specified GitHub user could not be found.",cannot_coauthor_self:"You cannot add yourself as a co-author.",storage_write_size_mismatch:"The downloaded file was smaller than expected. The upstream source may have returned an incomplete response \u2014 please try again.",storage_read_error:"An error occurred while reading the file from storage \u2014 please try again.",upstream_error:"A temporary error occurred while fetching from GitHub \u2014 please try again.",token_expired:"The repository owner needs to renew their GitHub connection before this content can be loaded.",job_is_active:"This job is currently running \u2014 wait for it to finish or remove it first.",github_app_access_required:"Allow this repository on GitHub using the read-only access button, then retry. Organization access may require administrator approval.",github_app_reconnect_required:"Reconnect your GitHub App account to restore read-only access.",github_app_disabled:"New GitHub App connections are currently unavailable.",github_oauth_required:"Connect legacy GitHub OAuth to use this feature.",github_identity_mismatch:"Use the same GitHub account that you are signed in with here.",github_app_permissions_invalid:"The GitHub App must be configured with read-only permissions.",github_unavailable:"GitHub is temporarily unavailable. Please retry.",connection_changed:"The repository connection changed. Reload and try again.",repository_busy:"Wait for the repository operation to finish before changing its connection.",invalid_connection:"Select a supported GitHub connection.",github_oauth_disabled:"Legacy OAuth sign-in is currently disabled.",invalid_auth_state:"The authorization session expired. Please start again from Anonymous GitHub.",invalid_webhook_signature:"The webhook signature is invalid.",webhook_processing_failed:"Webhook processing failed. Retry the delivery.",github_app_authorization_cancelled:"GitHub authorization was cancelled.",github_account_link_required:"Verify your existing account with your previous GitHub connection. Future sign-ins will use the GitHub App.",github_app_refresh_busy:"GitHub credentials are being renewed. Please retry shortly.",github_grant_revocation_failed:"Unable to revoke the GitHub grant. Please retry.",another_login_required:"Connect and verify another sign-in method before disconnecting OAuth.",oauth_resources_remaining:"Some resources still require OAuth. Migrate or remove them before disconnecting.",invalid_github_path:"The GitHub repository path is invalid.",repository_tree_incomplete:"The repository file tree is incomplete. Reduce its size and refresh before downloading.",billing_environment_mismatch:"The payment event does not match this billing environment.",billing_unavailable:"Payments are not available. Please try again later.",invalid_billing_signature:"The payment notification could not be verified.",billing_webhook_failed:"The payment notification could not be processed.",billing_customer_not_found:"No billing account was found.",subscription_required_for_never_expiration:"Never-expiring repositories require the owner\u2019s active monthly or annual author subscription. Choose a dated expiration or upgrade in Plans and billing.",invalid_billing_expiration:"Choose an expiration date within the next year, or select Never expire with an author subscription.",pending_payment:"Awaiting payment"},WARNINGS:{page_not_enabled_on_repo:"GitHub Pages is not enabled on this repository. Enable it in the repository's Settings \u2192 Pages on GitHub, then refresh.",page_branch_mismatch:"GitHub Pages on this repository is served from the '{{pageBranch}}' branch, but you selected '{{selectedBranch}}'. Switch the branch above to '{{pageBranch}}' to anonymize the Pages site.",folder_truncated:"This folder has more than 10,000 entries; only a partial listing is shown.",repo_truncated:"Some folders in this repository have too many files to be fully listed. Affected folders are marked with a warning icon.",submodules_not_included:"Some submodule contents could not be included. Only direct public GitHub submodules within the size limits are supported. Private, external, nested, or unavailable submodules appear as empty folders."},VIEWER_LOADING:{loading:"Loading file\u2026",receiving:"Receiving file\u2026",slow:"Still loading. You can select another file while you wait."}};typeof window<"u"&&window.document?.addEventListener&&window.document.addEventListener("error",e=>{let t=e.target;if(!t||t.tagName!=="IMG"||t.dataset.failed||!t.closest?.(".markdown-body, .anonymize-preview-body"))return;t.dataset.failed="1";let o=window.document.createElement("span");o.className="img-unavailable",o.textContent=t.alt?"Image unavailable: "+t.alt:"Image unavailable",t.replaceWith(o)},!0);function vi(e){let t=e?.data;if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return typeof t?.error=="string"&&Object.prototype.hasOwnProperty.call(yo.ERRORS,t.error)?t.error:e?.status===-1||e?.status===0?"request_error":[502,503,504].includes(e?.status)?"unreachable":"unknown_error"}var cs="XXXX",Ap=e=>{cs=e||"XXXX"},Op=(e=cs)=>{if(!e)return null;let t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(t+"(?:-\\d+)?","g")},ol=(e,t=cs)=>{let o=Op(t);if(!o||!e||!e.textContent.includes(t))return;let i=e.ownerDocument,s=i.createTreeWalker(e,NodeFilter.SHOW_TEXT),r=[];for(;s.nextNode();)r.push(s.currentNode);for(let a of r){let p=a.nodeValue,f=a.parentElement;if(!p.includes(t)||!f||f.closest("script, style, mark.redaction, .mermaid"))continue;let g=f.closest('code[class*="language-"]');if(g&&!g.contains(e))continue;let y=i.createDocumentFragment(),b=0;for(let m of p.matchAll(o)){y.append(p.slice(b,m.index));let E=i.createElement("mark");E.className="redaction",E.title="Redacted by Anonymous GitHub",E.textContent=m[0],y.append(E),b=m.index+m[0].length}y.append(p.slice(b)),a.replaceWith(y)}},bo=/\bXXXX-\d+\b/g,sl=function(e){if(!e||e.indexOf("XXXX-")===-1||typeof window.DOMParser!="function")return e;let t=new window.DOMParser().parseFromString("
"+e+"
","text/html"),o=t.createTreeWalker(t.body,4),i=[];for(;o.nextNode();)bo.lastIndex=0,!o.currentNode.parentElement?.closest("pre code")&&bo.test(o.currentNode.nodeValue)&&i.push(o.currentNode);for(let s of i){bo.lastIndex=0;let r=t.createDocumentFragment(),a=0,p,f=s.nodeValue;for(;p=bo.exec(f);){r.appendChild(t.createTextNode(f.slice(a,p.index)));let g=t.createElement("mark");g.className="redact-chip",g.setAttribute("title","Redacted term "+p[0].slice(5)+" \u2014 the same term everywhere in this snapshot");let y=p[0].slice(5);g.textContent="";let b=t.createElement("i");b.textContent=y,g.appendChild(b),g.dataset.term=p[0],g.setAttribute("aria-label","Redacted term "+y);let m=/^[.,;:!?)\]]+/.exec(f.slice(p.index+p[0].length));if(m){let E=t.createElement("span");E.className="redact-glue",E.appendChild(g),E.appendChild(t.createTextNode(m[0])),r.appendChild(E),a=p.index+p[0].length+m[0].length}else r.appendChild(g),a=p.index+p[0].length}r.appendChild(t.createTextNode(f.slice(a))),s.parentNode.replaceChild(r,s)}return t.body.firstChild.innerHTML},il=()=>{window.Prism?.hooks&&!window.Prism.redactionHook&&(window.Prism.hooks.add("complete",e=>{ol(e.element),e.element.querySelectorAll?.("mark.redaction").forEach(t=>{let o=/^XXXX-(\d+)$/.exec(t.textContent);if(!o)return;t.className="redact-chip",t.setAttribute("title","Redacted term "+o[1]+" \u2014 the same term everywhere in this snapshot"),t.setAttribute("aria-label","Redacted term "+o[1]),t.dataset.term=o[0],t.style.setProperty("--slot-ch",o[0].length+"ch"),t.textContent="";let i=t.ownerDocument.createElement("i");i.textContent=o[1],t.appendChild(i)})}),window.Prism.redactionHook=!0)},rl=(e,t=cs)=>{if(!e||!t||!e.includes(t))return e;let o=new DOMParser().parseFromString(""+e+"","text/html");return ol(o.body,t),o.body.innerHTML};async function al(e){if(window.navigator.clipboard?.writeText){await window.navigator.clipboard.writeText(e);return}let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.opacity="0";let o=document.activeElement;document.body.appendChild(t);try{if(t.select(),!document.execCommand?.("copy"))throw Error("Copy unavailable")}finally{t.remove(),o?.focus()}}function Pp(e){if(!["ArrowLeft","ArrowRight","Home","End"].includes(e.key))return;let t=[...e.currentTarget.closest('[role="tablist"]').querySelectorAll('[role="tab"]')],o=t.indexOf(e.currentTarget),i=e.key==="Home"?0:e.key==="End"?t.length-1:(o+(e.key==="ArrowRight"?1:-1)+t.length)%t.length;e.preventDefault(),t[i]?.focus(),t[i]?.click()}var ll=function(e,t,o,i){e.previewTabKeydown=Pp,e.headerCanUpgrade=!1,e.headerShowSupport=!1,e.headerBillingPending=["success","portal"].includes(new URLSearchParams(window.location.search).get("billing"));let s=b=>{e.headerShowSupport=!(b?.grants||[]).some(E=>["active","paid","past_due"].includes(E.status)&&new Date(E.until).getTime()>Date.now());let m=(b?.grants||[]).some(E=>["author_monthly","author_annual"].includes(E.planId)&&["active","paid","past_due"].includes(E.status)&&new Date(E.until).getTime()>Date.now());e.headerCanUpgrade=!!b?.enabled&&b.checkoutEnabled!==!1&&!m&&(b.plans||[]).some(E=>["author_monthly","author_annual"].includes(E.id))};e.on("billing:updated",(b,m)=>s(m)),e.on("billing:pending",(b,m)=>{e.headerBillingPending=m}),e.openHeaderUpgrade=()=>{o.path()==="/profile"?e.emit("settings:upgrade"):o.url("/profile?upgrade=1")},e.title="Main",e.user={status:"connection"},e.site_options,e.toasts=[],e.removeToast=function(b){let m=e.toasts.indexOf(b);m!==-1&&e.toasts.splice(m,1)},e.addToast=function(b){return e.toasts.push(b),i(function(){e.removeToast(b)},8e3),b};let r=/^\/(r|repository|pr|gist)\//;e.path=o.url(),e.paths=o.path().substring(1).split("/"),e.isReviewerRoute=r.test(o.path()),e.darkMode=function(b){localStorage.setItem("darkMode",b),e.isDarkMode=b;let m="/css/prism-okaidia.css",E="/css/prism.css";if(b){$("body").addClass("dark-mode");let P=document.createElement("link");P.href=m,P.rel="stylesheet",document.head.append(P),$(`link[href='${E}']`).remove()}else{$("body").removeClass("dark-mode");let P=document.createElement("link");P.href=E,P.rel="stylesheet",document.head.append(P),$(`link[href='${m}']`).remove()}e.emit("dark-mode",b)},e.darkMode(localStorage.getItem("darkMode")=="true"),e.emailPromptOpen=!1,e.emailPromptAddress="",e.emailPromptBusy=!1,e.emailPromptError="";let a;e.respondToEmailPrompt=async b=>{if(!e.emailPromptBusy){e.emailPromptBusy=!0,e.emailPromptError="";try{let m=await t.post("/github/connections/email",{action:b,email:e.emailPromptAddress},{headers:{"X-CSRF-Token":e.user.emailPromptCSRF}});b==="save"&&(e.user.notificationEmail=m.data.notificationEmail),e.emailPromptOpen=!1,e.user.showEmailPrompt=!1,a?.focus()}catch(m){e.emailPromptError=m.data?.error||"Unable to save your preference. Please try again."}finally{e.emailPromptBusy=!1}}};function p(){t.get("/api/user").then(b=>{b&&(e.user=b.data),e.user?.username?fi(t).then(m=>s(m.data)).catch(()=>{}):e.headerShowSupport=!0,e.user?.emailNotificationsEnabled&&e.user.showEmailPrompt&&!e.user.notificationEmail&&(a=document.activeElement,e.emailPromptOpen=!0,i(()=>{let m=document.getElementById("email-prompt");m?.showModal?m.showModal():m?.setAttribute("open",""),document.getElementById("email-prompt-address")?.focus()},0))},()=>{e.user=null,e.headerShowSupport=!0})}p();function f(){t.get("/api/options").then(b=>{b&&(e.site_options=b.data),Ap(b?.data?.ANONYMIZATION_MASK),e.emit("site-options")},()=>{e.site_options=null})}f();function g(){t.get("/api/message").then(b=>{b&&(e.generalMessage=b.data)},()=>{e.generalMessage=null})}g();function y(b,m){m&&(e.title=m.title),e.path=o.url(),e.paths=o.path().substring(1).split("/"),e.isReviewerRoute=r.test(o.path())}e.on("routeChange",y),e.on("routeUpdate",y)},dl=function(e,t){let o=xt(),i=pt(),s=()=>{let r=window.location.hash.slice(1),a=document.getElementById(r);if(!a?.classList.contains("panel-collapse"))return;$(a).collapse("show");let p=document.getElementById(a.getAttribute("aria-labelledby"));p?.setAttribute("tabindex","-1"),p?.focus({preventScroll:!0}),p?.scrollIntoView?.({block:"start"})};e.on("routeUpdate",()=>i.timeout(s,0)),o(window,"hashchange",s),i.timeout(s,0)},ul=function(e,t,o,i,s){e.settingsTab=/(?:billing|upgrade)=/.test(window.location.search)?"billing":"defaults",e.confirmDeleteAccount=!1,e.deleteUsername="",e.profilePastSubscription=()=>!e.profileAuthorGrant()&&(e.billing?.grants||[]).some(g=>["author_monthly","author_annual"].includes(g.planId)),e.showAuthorPlans=new URLSearchParams(window.location.search).get("upgrade")==="1",e.showRepositoryPass=!1,e.profilePlan="author_monthly",e.openProfileUpgrade=()=>{e.settingsTab="billing",e.showAuthorPlans=!0,Ge(()=>document.getElementById("settings-plan-comparison")?.focus())},e.on("settings:upgrade",()=>e.openProfileUpgrade()),e.profileAuthorPlans=()=>(e.billing?.plans||[]).filter(g=>["author_monthly","author_annual"].includes(g.id)),e.profileSelectedPlan=()=>e.profileAuthorPlans().find(g=>g.id===e.profilePlan)||e.profileAuthorPlans()[0],e.profilePassPlan=()=>(e.billing?.plans||[]).find(g=>g.id==="author_pass"),e.profileAuthorGrant=()=>(e.billing?.grants||[]).find(g=>["author_monthly","author_annual"].includes(g.planId)&&["active","paid","past_due"].includes(g.status)&&new Date(g.until).getTime()>Date.now()),e.profileGrantName=g=>({author_monthly:"Author monthly",author_annual:"Author annual",author_pass:"Repository pass",conference:"Conference hosting"})[g.planId]||g.planId,us(e,t,()=>s.load().then(g=>{e.quota=g},console.error)),e.terms="",e.options={expirationMode:"remove",update:!1,image:!0,pdf:!0,notebook:!0,loc:!0,link:!0},e.saving=!1,e.message=null,e.error=null,e.accountEmail="",e.emailLoading=!0,e.emailCSRFReady=!1,e.emailSaving=!1,e.emailSaved=!1,e.emailError="";let r="";e.loadAccountEmail=async()=>{e.emailLoading=!0,e.emailError="";try{let g=await t.get("/github/connections/email");e.accountEmail=g.data.notificationEmail||"",r=g.data.csrf,e.emailCSRFReady=!!r}catch{e.emailError="Unable to load your email address. Please try again."}finally{e.emailLoading=!1}},e.saveAccountEmail=async()=>{if(!(e.emailSaving||e.emailLoading||!r)){e.emailSaving=!0,e.emailSaved=!1,e.emailError="";try{let g=await t.post("/github/connections/email",{email:e.accountEmail},{headers:{"X-CSRF-Token":r}});e.accountEmail=g.data.notificationEmail,e.user&&(e.user.notificationEmail=g.data.notificationEmail),e.emailSaved=!0}catch{e.emailError="Unable to save your email address. Check the address and try again."}finally{e.emailSaving=!1}}},e.loadAccountEmail(),s.load().then(g=>{e.quota=g},console.error);let a=hi(e,["terms","options"],"profile");e.discardDraft=()=>a.discard();function p(){t.get("/api/user/default").then(g=>{let y=g.data||{};y.terms&&(e.terms=y.terms.join(` -`)),e.options=Object.assign({},e.options,y.options),a.restore()})}p();let f=null;e.saveDefault=g=>{if(g&&g.preventDefault&&g.preventDefault(),e.saving)return;let y=a.checkpoint(),b={terms:e.terms.split(` -`).map(m=>m.trim()).filter(m=>m.length>0),options:e.options};e.saving=!0,e.error=null,t.post("/api/user/default",b).then(()=>{a.accept(y),e.saving=!1,e.message=e.unsavedChanges?null:"Saved",f&&i.cancel(f),f=i(()=>{e.message=null},2500)},m=>{e.saving=!1;let E=m&&m.data&&m.data.error,P="Unable to save your defaults. Please try again.";Promise.all([o("ERRORS."+E),o("ERRORS.unknown_error")]).then(([k,v])=>{e.error=E&&k!==v?k:P},()=>{e.error=P})})},e.deleteAccount=()=>{e.deletingAccount||!e.confirmDeleteAccount||e.deleteUsername!==e.user?.username||(e.deletingAccount=!0,t.delete("/api/user").then(()=>{window.location.href="/"},()=>{e.deletingAccount=!1,e.deleteError="Unable to delete the account. Please try again."}))}},cl=function(e,t,o){e.repoId=null,e.repoUrl=null,e.claim=()=>{t.post("/api/repo/claim",{repoId:e.repoId,repoUrl:e.repoUrl}).then(i=>{o.url("/dashboard")},i=>{e.error=i.data,e.claimForm.repoUrl.setValidity("not_found",!1),e.claimForm.repoId.setValidity("not_found",!1)})}},pl=function(e,t,o,i,s){e.user&&!e.user.status&&o.url("/dashboard"),e.watch("user.status",()=>{e.user&&!e.user.status&&o.url("/dashboard")}),e.features=[{key:"anonymize",num:"01",eyebrow:"Anonymize",title:"Double-anonymous,",accent:"your rules.",text:"Choose what reviewers may see: links, images, PDFs, notebooks, GitHub Pages. Add your own terms, with regex if you need it, and pick the expiration date.",cta:"Start an anonymization",href:"/anonymize",url:"anonymous.4open.science/anonymize",img:"/imgs/anonymize.png",alt:"The anonymize form: source repository, terms to redact, options and a live README preview"},{key:"review",num:"02",eyebrow:"Review",title:"Reviewers browse",accent:"the real thing.",text:"Highlighted source code, rendered PDFs, images, and notebooks, in a familiar file explorer. GitHub Pages is also supported.",cta:"Open the example",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/",target:"_self",url:"anonymous.4open.science/r/840c8c57-\u2026",img:"/imgs/explorer.png",alt:"The repository explorer with a file tree and a rendered README"},{key:"manage",num:"03",eyebrow:"Manage",title:"One dashboard,",accent:"until the decision.",text:"Monitor views, edit configuration, remove or update your repository. Program chairs can group submissions under a conference with one shared expiry.",cta:"Open the dashboard",href:"/dashboard",needsUser:!0,url:"anonymous.4open.science/dashboard",img:"/imgs/dashboard.png",alt:"The dashboard listing anonymized repositories with status, views and expiry"}],e.feature=e.features[0].key,e.selectFeature=function(p){e.feature=p},e.featureHref=function(p){return p.needsUser&&!e.user?"/signin":p.href},e.featureTarget=function(p){return p.needsUser&&!e.user?"_self":p.target||void 0},e.featureKeydown=function(p,f){let g={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1,Home:"first",End:"last"}[p.key];if(g===void 0)return;p.preventDefault();let y=e.features.length,b=g==="first"?0:g==="last"?y-1:(f+g+y)%y;e.feature=e.features[b].key,s(()=>{let m=i.document.getElementById("feature-tab-"+e.feature);m&&m.focus()})},e.demoText=`# DeepLearnUtils +`+JSON.stringify(t):""}`},[nt.NAVIGATION_GUARD_REDIRECT]({from:e,to:t}){return`Redirected from "${e.fullPath}" to "${Uh(t)}" via a navigation guard.`},[nt.NAVIGATION_ABORTED]({from:e,to:t}){return`Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`},[nt.NAVIGATION_CANCELLED]({from:e,to:t}){return`Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`},[nt.NAVIGATION_DUPLICATED]({from:e,to:t}){return`Avoided redundant navigation to current location: "${e.fullPath}".`}};function Yn(e,t){return je(new Error,{type:e,[Od]:!0},t)}function rn(e,t){return e instanceof Error&&Od in e&&(t==null||!!(e.type&t))}var Lh=["params","query","hash"];function Uh(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;let t={};for(let s of Lh)s in e&&(t[s]=e[s]);return JSON.stringify(t,null,2)}function Pd(e){let t={};if(e===""||e==="?")return t;let s=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;io&&Rr(o)):[i&&Rr(i)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+s,o!=null&&(t+="="+o))})}return t}function Id(e){let t={};for(let s in e){let i=e[s];i!==void 0&&(t[s]=Lt(i)?i.map(o=>o==null?null:""+o):i==null?i:""+i)}return t}var Md=Symbol(""),Vr=Symbol(""),yi=Symbol(""),bi=Symbol(""),wi=Symbol("");function Cs(){let e=[];function t(i){return e.push(i),()=>{let o=e.indexOf(i);o>-1&&e.splice(o,1)}}function s(){e=[]}return{add:t,list:()=>e.slice(),reset:s}}function mn(e,t,s,i,o,r=a=>a()){let a=i&&(i.enterCallbacks[o]=i.enterCallbacks[o]||[]);return()=>new Promise((u,c)=>{let m=h=>{h===!1?c(Yn(nt.NAVIGATION_ABORTED,{from:s,to:t})):h instanceof Error?c(h):$h(h)?c(Yn(nt.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(a&&i.enterCallbacks[o]===a&&typeof h=="function"&&a.push(h),u())},g=r(()=>e.call(i&&i.instances[o],t,s,m)),v=Promise.resolve(g);e.length<3&&(v=v.then(m)),v.catch(h=>c(h))})}function ki(e,t,s,i,o=r=>r()){let r=[];for(let a of e)for(let u in a.components){let c=a.components[u];if(!(t!=="beforeRouteEnter"&&!a.instances[u]))if(gd(c)){let m=(c.__vccOpts||c)[t];m&&r.push(mn(m,s,i,a,u,o))}else{let m=c();r.push(()=>m.then(g=>{if(!g)throw new Error(`Couldn't resolve component "${u}" at "${a.path}"`);let v=bh(g)?g.default:g;a.mods[u]=g,a.components[u]=v;let h=(v.__vccOpts||v)[t];return h&&mn(h,s,i,a,u,o)()}))}}return r}function Vd(e,t){let s=[],i=[],o=[],r=Math.max(t.matched.length,e.matched.length);for(let a=0;aKn(m,u))?i.push(u):s.push(u));let c=e.matched[a];c&&(t.matched.find(m=>Kn(m,c))||o.push(c))}return[s,i,o]}var Fh=()=>location.protocol+"//"+location.host;function Wd(e,t){let{pathname:s,search:i,hash:o}=t,r=e.indexOf("#");if(r>-1){let a=o.includes(e.slice(r))?e.slice(r).length:1,u=o.slice(a);return u[0]!=="/"&&(u="/"+u),_r(u,"")}return _r(s,e)+i+o}function Bh(e,t,s,i){let o=[],r=[],a=null,u=({state:h})=>{let k=Wd(e,location),A=s.value,w=t.value,b=0;if(h){if(s.value=k,t.value=h,a&&a===A){a=null;return}b=w?h.position-w.position:0}else i(k);o.forEach(E=>{E(s.value,A,{delta:b,type:gi.pop,direction:b?b>0?vi.forward:vi.back:vi.unknown})})};function c(){a=s.value}function m(h){o.push(h);let k=()=>{let A=o.indexOf(h);A>-1&&o.splice(A,1)};return r.push(k),k}function g(){if(document.visibilityState==="hidden"){let{history:h}=window;if(!h.state)return;h.replaceState(je({},h.state,{scroll:mo()}),"")}}function v(){for(let h of r)h();r=[],window.removeEventListener("popstate",u),window.removeEventListener("pagehide",g),document.removeEventListener("visibilitychange",g)}return window.addEventListener("popstate",u),window.addEventListener("pagehide",g),document.addEventListener("visibilitychange",g),{pauseListeners:c,listen:m,destroy:v}}function qd(e,t,s,i=!1,o=!1){return{back:e,current:t,forward:s,replaced:i,position:window.history.length,scroll:o?mo():null}}function zh(e){let{history:t,location:s}=window,i={value:Wd(e,s)},o={value:t.state};o.value||r(i.value,{back:null,current:i.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function r(c,m,g){let v=e.indexOf("#"),h=v>-1?(s.host&&document.querySelector("base")?e:e.slice(v))+c:Fh()+e+c;try{t[g?"replaceState":"pushState"](m,"",h),o.value=m}catch(k){console.error(k),s[g?"replace":"assign"](h)}}function a(c,m){r(c,je({},t.state,qd(o.value.back,c,o.value.forward,!0),m,{position:o.value.position}),!0),i.value=c}function u(c,m){let g=je({},o.value,t.state,{forward:c,scroll:mo()});r(g.current,g,!0),r(c,je({},qd(i.value,c,null),{position:g.position+1},m),!1),i.value=c}return{location:i,state:o,push:u,replace:a}}function Kd(e){e=Rd(e);let t=zh(e),s=Bh(e,t.state,t.location,t.replace);function i(r,a=!0){a||s.pauseListeners(),history.go(r)}let o=je({location:"",base:e,go:i,createHref:Dd.bind(null,e)},t,s);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}var Jn=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({}),pt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(pt||{}),Hh={type:Jn.Static,value:""},jh=/[a-zA-Z0-9_]/;function Gh(e){if(!e)return[[]];if(e==="/")return[[Hh]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(k){throw new Error(`ERR (${s})/"${m}": ${k}`)}let s=pt.Static,i=s,o=[],r;function a(){r&&o.push(r),r=[]}let u=0,c,m="",g="";function v(){m&&(s===pt.Static?r.push({type:Jn.Static,value:m}):s===pt.Param||s===pt.ParamRegExp||s===pt.ParamRegExpEnd?(r.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${m}) must be alone in its segment. eg: '/:ids+.`),r.push({type:Jn.Param,value:m,regexp:g,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),m="")}function h(){m+=c}for(;ut.length?t.length===1&&t[0]===Et.Static+Et.Segment?1:-1:0}function Yd(e,t){let s=0,i=e.score,o=t.score;for(;s0&&t[t.length-1]<0}var Jh={strict:!1,end:!0,sensitive:!1};function Qh(e,t,s){let i=Yh(Gh(e.path),s),o=je(i,{record:e,parent:t,children:[],alias:[]});return t&&!o.record.aliasOf==!t.record.aliasOf&&t.children.push(o),o}function Zh(e,t){let s=[],i=new Map;t=Tr(Jh,t);function o(v){return i.get(v)}function r(v,h,k){let A=!k,w=Fd(v);w.aliasOf=k&&k.record;let b=Tr(t,v),E=[w];if("alias"in v){let q=typeof v.alias=="string"?[v.alias]:v.alias;for(let I of q)E.push(Fd(je({},w,{components:k?k.record.components:w.components,path:I,aliasOf:k?k.record:w})))}let N,O;for(let q of E){let{path:I}=q;if(h&&I[0]!=="/"){let j=h.record.path,de=j[j.length-1]==="/"?"":"/";q.path=h.record.path+(I&&de+I)}if(N=Qh(q,h,b),k?k.alias.push(N):(O=O||N,O!==N&&O.alias.push(N),A&&v.name&&!Bd(N)&&a(v.name)),Xd(N)&&c(N),w.children){let j=w.children;for(let de=0;de{a(O)}:ks}function a(v){if(Ir(v)){let h=i.get(v);h&&(i.delete(v),s.splice(s.indexOf(h),1),h.children.forEach(a),h.alias.forEach(a))}else{let h=s.indexOf(v);h>-1&&(s.splice(h,1),v.record.name&&i.delete(v.record.name),v.children.forEach(a),v.alias.forEach(a))}}function u(){return s}function c(v){let h=tm(v,s);s.splice(h,0,v),v.record.name&&!Bd(v)&&i.set(v.record.name,v)}function m(v,h){let k,A={},w,b;if("name"in v&&v.name){if(k=i.get(v.name),!k)throw Yn(nt.MATCHER_NOT_FOUND,{location:v});b=k.record.name,A=je(Ud(h.params,k.keys.filter(O=>!O.optional).concat(k.parent?k.parent.keys.filter(O=>O.optional):[]).map(O=>O.name)),v.params&&Ud(v.params,k.keys.map(O=>O.name))),w=k.stringify(A)}else if(v.path!=null)w=v.path,k=s.find(O=>O.re.test(w)),k&&(A=k.parse(w),b=k.record.name);else{if(k=h.name?i.get(h.name):s.find(O=>O.re.test(h.path)),!k)throw Yn(nt.MATCHER_NOT_FOUND,{location:v,currentLocation:h});b=k.record.name,A=je({},h.params,v.params),w=k.stringify(A)}let E=[],N=k;for(;N;)E.unshift(N.record),N=N.parent;return{name:b,path:w,params:A,matched:E,meta:em(E)}}e.forEach(v=>r(v));function g(){s.length=0,i.clear()}return{addRoute:r,resolve:m,removeRoute:a,clearRoutes:g,getRoutes:u,getRecordMatcher:o}}function Ud(e,t){let s={};for(let i of t)i in e&&(s[i]=e[i]);return s}function Fd(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:xh(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function xh(e){let t={},s=e.props||!1;if("component"in e)t.default=s;else for(let i in e.components)t[i]=typeof s=="object"?s[i]:s;return t}function Bd(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function em(e){return e.reduce((t,s)=>je(t,s.meta),{})}function tm(e,t){let s=0,i=t.length;for(;s!==i;){let r=s+i>>1;Yd(e,t[r])<0?i=r:s=r+1}let o=nm(e);return o&&(i=t.lastIndexOf(o,i-1)),i}function nm(e){let t=e;for(;t=t.parent;)if(Xd(t)&&Yd(e,t)===0)return t}function Xd({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function zd(e){let t=Dt(yi),s=Dt(bi),i=!1,o=null,r=yt(()=>{let g=cn(e.to);return t.resolve(g)}),a=yt(()=>{let{matched:g}=r.value,{length:v}=g,h=g[v-1],k=s.matched;if(!h||!k.length)return-1;let A=k.findIndex(Kn.bind(null,h));if(A>-1)return A;let w=Hd(g[v-2]);return v>1&&Hd(h)===w&&k[k.length-1].path!==w?k.findIndex(Kn.bind(null,g[v-2])):A}),u=yt(()=>a.value>-1&&am(s.params,r.value.params)),c=yt(()=>a.value>-1&&a.value===s.matched.length-1&&Or(s.params,r.value.params));function m(g={}){if(rm(g)){let v=t[cn(e.replace)?"replace":"push"](cn(e.to)).catch(ks);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>v),v}return Promise.resolve()}return{route:r,href:yt(()=>r.value.href),isActive:u,isExactActive:c,navigate:m}}function sm(e){return e.length===1?e[0]:e}var om=lo({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:zd,setup(e,{slots:t}){let s=et(zd(e)),{options:i}=Dt(yi),o=yt(()=>({[jd(e.activeClass,i.linkActiveClass,"router-link-active")]:s.isActive,[jd(e.exactActiveClass,i.linkExactActiveClass,"router-link-exact-active")]:s.isExactActive}));return()=>{let r=t.default&&sm(t.default(s));return e.custom?r:Oe("a",{"aria-current":s.isExactActive?e.ariaCurrentValue:null,href:s.href,onClick:s.navigate,class:o.value},r)}}}),im=om;function rm(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function am(e,t){for(let s in t){let i=t[s],o=e[s];if(typeof i=="string"){if(i!==o)return!1}else if(!Lt(o)||o.length!==i.length||i.some((r,a)=>r.valueOf()!==o[a].valueOf()))return!1}return!0}function Hd(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}var jd=(e,t,s)=>e??t??s,lm=lo({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:s}){let i=Dt(wi),o=yt(()=>e.route||i.value),r=Dt(Vr,0),a=yt(()=>{let m=cn(r),{matched:g}=o.value,v;for(;(v=g[m])&&!v.components;)m++;return m}),u=yt(()=>o.value.matched[a.value]);jn(Vr,yt(()=>a.value+1)),jn(Md,u),jn(wi,o);let c=gt();return tt(()=>[c.value,u.value,e.name],([m,g,v],[h,k,A])=>{g&&(g.instances[v]=m,k&&k!==g&&m&&m===h&&(g.leaveGuards.size||(g.leaveGuards=k.leaveGuards),g.updateGuards.size||(g.updateGuards=k.updateGuards))),m&&g&&(!k||!Kn(g,k)||!h)&&(g.enterCallbacks[v]||[]).forEach(w=>w(m))},{flush:"post"}),()=>{let m=o.value,g=e.name,v=u.value,h=v&&v.components[g];if(!h)return Gd(s.default,{Component:h,route:m});let k=v.props[g],A=k?k===!0?m.params:typeof k=="function"?k(m):k:null,b=Oe(h,je({},A,t,{onVnodeUnmounted:E=>{E.component.isUnmounted&&(v.instances[g]=null)},ref:c}));return Gd(s.default,{Component:b,route:m})||b}}});function Gd(e,t){if(!e)return null;let s=e(t);return s.length===1?s[0]:s}var qr=lm;function Jd(e){let t=Zh(e.routes,e),s=e.parseQuery||Pd,i=e.stringifyQuery||Mr,o=e.history,r=Cs(),a=Cs(),u=Cs(),c=Yo(gn),m=gn;Xn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");let g=hi.bind(null,L=>""+L),v=hi.bind(null,Ed),h=hi.bind(null,ws);function k(L,x){let B,ue;return Ir(L)?(B=t.getRecordMatcher(L),ue=x):ue=L,t.addRoute(ue,B)}function A(L){let x=t.getRecordMatcher(L);x&&t.removeRoute(x)}function w(){return t.getRoutes().map(L=>L.record)}function b(L){return!!t.getRecordMatcher(L)}function E(L,x){if(x=je({},x||c.value),typeof L=="string"){let R=mi(s,L,x.path),P=t.resolve({path:R.path},x),G=o.createHref(R.fullPath);return je(R,P,{params:h(P.params),hash:ws(R.hash),redirectedFrom:void 0,href:G})}let B;if(L.path!=null)B=je({},L,{path:mi(s,L.path,x.path).path});else{let R=je({},L.params);for(let P in R)R[P]==null&&delete R[P];B=je({},L,{params:v(R)}),x.params=v(x.params)}let ue=t.resolve(B,x),we=L.hash||"";ue.params=g(h(ue.params));let Pe=Sd(i,je({},L,{hash:Cd(we),path:ue.path})),C=o.createHref(Pe);return je({fullPath:Pe,hash:we,query:i===Mr?Id(L.query):L.query||{}},ue,{redirectedFrom:void 0,href:C})}function N(L){return typeof L=="string"?mi(s,L,c.value.path):je({},L)}function O(L,x){if(m!==L)return Yn(nt.NAVIGATION_CANCELLED,{from:x,to:L})}function q(L){return de(L)}function I(L){return q(je(N(L),{replace:!0}))}function j(L,x){let B=L.matched[L.matched.length-1];if(B&&B.redirect){let{redirect:ue}=B,we=typeof ue=="function"?ue(L,x):ue;return typeof we=="string"&&(we=we.includes("?")||we.includes("#")?we=N(we):{path:we},we.params={}),je({query:L.query,hash:L.hash,params:we.path!=null?{}:L.params},we)}}function de(L,x){let B=m=E(L),ue=c.value,we=L.state,Pe=L.force,C=L.replace===!0,R=j(B,ue);if(R)return de(je(N(R),{state:typeof R=="object"?je({},we,R.state):we,force:Pe,replace:C}),x||B);let P=B;P.redirectedFrom=x;let G;return!Pe&&Nd(i,ue,B)&&(G=Yn(nt.NAVIGATION_DUPLICATED,{to:P,from:ue}),rt(ue,ue,!0,!1)),(G?Promise.resolve(G):X(P,ue)).catch(F=>rn(F)?rn(F,nt.NAVIGATION_GUARD_REDIRECT)?F:Ke(F):Re(F,P,ue)).then(F=>{if(F){if(rn(F,nt.NAVIGATION_GUARD_REDIRECT))return de(je({replace:C},N(F.to),{state:typeof F.to=="object"?je({},we,F.to.state):we,force:Pe}),x||P)}else F=Ee(P,ue,!0,C,we);return le(P,ue,F),F})}function ie(L,x){let B=O(L,x);return B?Promise.reject(B):Promise.resolve()}function D(L){let x=se.values().next().value;return x&&typeof x.runWithContext=="function"?x.runWithContext(L):L()}function X(L,x){let B,[ue,we,Pe]=Vd(L,x);B=ki(ue.reverse(),"beforeRouteLeave",L,x);for(let R of ue)R.leaveGuards.forEach(P=>{B.push(mn(P,L,x))});let C=ie.bind(null,L,x);return B.push(C),te(B).then(()=>{B=[];for(let R of r.list())B.push(mn(R,L,x));return B.push(C),te(B)}).then(()=>{B=ki(we,"beforeRouteUpdate",L,x);for(let R of we)R.updateGuards.forEach(P=>{B.push(mn(P,L,x))});return B.push(C),te(B)}).then(()=>{B=[];for(let R of Pe)if(R.beforeEnter)if(Lt(R.beforeEnter))for(let P of R.beforeEnter)B.push(mn(P,L,x));else B.push(mn(R.beforeEnter,L,x));return B.push(C),te(B)}).then(()=>(L.matched.forEach(R=>R.enterCallbacks={}),B=ki(Pe,"beforeRouteEnter",L,x,D),B.push(C),te(B))).then(()=>{B=[];for(let R of a.list())B.push(mn(R,L,x));return B.push(C),te(B)}).catch(R=>rn(R,nt.NAVIGATION_CANCELLED)?R:Promise.reject(R))}function le(L,x,B){u.list().forEach(ue=>D(()=>ue(L,x,B)))}function Ee(L,x,B,ue,we){let Pe=O(L,x);if(Pe)return Pe;let C=x===gn,R=Xn?history.state:{};B&&(ue||C?o.replace(L.fullPath,je({scroll:C&&R&&R.scroll},we)):o.push(L.fullPath,we)),c.value=L,rt(L,x,B,C),Ke()}let re;function me(){re||(re=o.listen((L,x,B)=>{if(!Q.listening)return;let ue=E(L),we=j(ue,Q.currentRoute.value);if(we){de(je(we,{replace:!0,force:!0}),ue).catch(ks);return}m=ue;let Pe=c.value;Xn&&Ad(Pr(Pe.fullPath,B.delta),mo()),X(ue,Pe).catch(C=>rn(C,nt.NAVIGATION_ABORTED|nt.NAVIGATION_CANCELLED)?C:rn(C,nt.NAVIGATION_GUARD_REDIRECT)?(de(je(N(C.to),{force:!0}),ue).then(R=>{rn(R,nt.NAVIGATION_ABORTED|nt.NAVIGATION_DUPLICATED)&&!B.delta&&B.type===gi.pop&&o.go(-1,!1)}).catch(ks),Promise.reject()):(B.delta&&o.go(-B.delta,!1),Re(C,ue,Pe))).then(C=>{C=C||Ee(ue,Pe,!1),C&&(B.delta&&!rn(C,nt.NAVIGATION_CANCELLED)?o.go(-B.delta,!1):B.type===gi.pop&&rn(C,nt.NAVIGATION_ABORTED|nt.NAVIGATION_DUPLICATED)&&o.go(-1,!1)),le(ue,Pe,C)}).catch(ks)}))}let ke=Cs(),_e=Cs(),Ne;function Re(L,x,B){Ke(L);let ue=_e.list();return ue.length?ue.forEach(we=>we(L,x,B)):console.error(L),Promise.reject(L)}function Je(){return Ne&&c.value!==gn?Promise.resolve():new Promise((L,x)=>{ke.add([L,x])})}function Ke(L){return Ne||(Ne=!L,me(),ke.list().forEach(([x,B])=>L?B(L):x()),ke.reset()),L}function rt(L,x,B,ue){let{scrollBehavior:we}=e;if(!Xn||!we)return Promise.resolve();let Pe=!B&&_d(Pr(L.fullPath,0))||(ue||!B)&&history.state&&history.state.scroll||null;return it().then(()=>we(L,x,Pe)).then(C=>C&&Td(C)).catch(C=>Re(C,L,x))}let Qe=L=>o.go(L),U,se=new Set,Q={currentRoute:c,listening:!0,addRoute:k,removeRoute:A,clearRoutes:t.clearRoutes,hasRoute:b,getRoutes:w,resolve:E,options:e,push:q,replace:I,go:Qe,back:()=>Qe(-1),forward:()=>Qe(1),beforeEach:r.add,beforeResolve:a.add,afterEach:u.add,onError:_e.add,isReady:Je,install(L){L.component("RouterLink",im),L.component("RouterView",qr),L.config.globalProperties.$router=Q,Object.defineProperty(L.config.globalProperties,"$route",{enumerable:!0,get:()=>cn(c)}),Xn&&!U&&c.value===gn&&(U=!0,q(o.location).catch(ue=>{}));let x={};for(let ue in gn)Object.defineProperty(x,ue,{get:()=>c.value[ue],enumerable:!0});L.provide(yi,Q),L.provide(bi,Ks(x)),L.provide(wi,c);let B=L.unmount;se.add(L),L.unmount=function(){se.delete(L),se.size<1&&(m=gn,re&&re(),re=null,c.value=gn,U=!1,Ne=!1),B()}}};function te(L){return L.reduce((x,B)=>x.then(()=>D(B)),Promise.resolve())}return Q}function Qd(e){return Dt(bi)}var Ci=new WeakMap;function $r(e){if(!Ci.has(e)){let t=e.get("/api/billing/").finally(()=>Ci.delete(e));Ci.set(e,t)}return Ci.get(e)}function Ei(e,t,s=()=>{},i={}){let o=new URLSearchParams(window.location.search).get("billing");e.billing=null,e.billingLoading=!0,e.billingBusy=!1,e.billingError="",e.billingNotice="",e.billingPending=o==="success"||o==="portal",e.billingRepository="";let r={billing_invalid_draft:"This draft could not be saved. Your form is unchanged. Try again.",billing_draft_not_found:"This checkout draft is unavailable or expired. Your local form is unchanged.",billing_recovery_required:"Your earlier payment needs verification. Please contact support before paying again.",billing_checkout_disabled:"New purchases are temporarily unavailable. You can still manage existing billing.",billing_unavailable:"Payments are not available yet. Please try again later.",billing_subscription_exists:"You already have a subscription. Use Manage billing to change or cancel it.",billing_checkout_in_progress:"You have another checkout open. Complete it or wait for it to expire before choosing a different plan.",billing_busy:"Another billing request is processing. Please try again shortly.",billing_already_paid:"This repository or conference already has an active paid package.",billing_invalid_review_window:"Conference packages cover up to 180 days. Check the review dates.",billing_invalid_conference:"Only a conference owner can pay for a conference awaiting payment.",repo_not_found:"Enter the ID of an existing repository that you own."};e.billingPrice=c=>c.amount==null?"Price shown at checkout":new Intl.NumberFormat(void 0,{style:"currency",currency:c.currency}).format(c.amount/100)+(c.interval?` / ${c.intervalCount>1?c.intervalCount+" ":""}${c.interval}`:" once"),e.billingBytes=c=>{let m=Number(c)||0;if(m<1024)return`${m} B`;let g=Math.min(4,Math.floor(Math.log2(m)/10));return`${new Intl.NumberFormat(void 0,{maximumFractionDigits:1}).format(m/1024**g)} ${["B","KiB","MiB","GiB","TiB"][g]}`},e.billingDate=c=>c?new Date(c).toLocaleDateString():"",e.loadBilling=()=>(e.billingError="",e.billingLoading=!0,$r(t).then(c=>{e.billing=c.data,e.emit?.("billing:updated",c.data)}).catch(()=>{e.billingError="Billing could not be loaded. Try again."}).finally(()=>{e.billingLoading=!1}));async function a(c,m,g=!0){if(!(e.billingBusy||!e.billing?.csrf)){e.billingBusy=!0,e.billingError="";try{let v=await t.post(`/api/billing/${c}`,m,{headers:{"x-csrf-token":e.billing.csrf}});if(g)window.location.assign(v.data.url);else return await e.loadBilling(),await s(),e.billingPending=!!v.data.pending,e.emit?.("billing:pending",e.billingPending),e.billingNotice=v.data.pending?"Your payment is still pending. Please do not pay again.":i.confirmedMessage||"Billing status refreshed. Your confirmed access appears below.",v.data}catch(v){e.billingError=r[v.data?.error]||"The billing request failed. Please try again."}finally{e.billingBusy=!1}}}e.checkout=(c,m="",g={})=>a("checkout",{planId:c,target:m,...g}),e.billingPortal=()=>a("portal",{}),e.refreshBilling=()=>a("refresh",{},!1);async function u(){for(let c=0;c<5;c++){let m=await e.refreshBilling();if(!m||!m.pending)return;await new Promise(g=>window.setTimeout(g,3e3))}e.billingNotice="Confirmation is taking longer than usual. You can refresh payment status later. Please do not pay again."}e.loadBilling().then(()=>{o==="success"||o==="portal"?(e.billingNotice="Checking your payment. Paid access starts after confirmation.",u()):o==="cancelled"&&(e.billingNotice="Checkout was closed. No new paid access has been activated.")})}function Zd(e,t){return t?.split(".").reduce((s,i)=>s?.[i],e)}function Lr(e=null,t=new Map){let s=et({}),i=[],o=!1,r=new Proxy(s,{get(a,u){return typeof u=="string"&&u.startsWith("__v_")||Reflect.has(a,u)?Reflect.get(a,u):e?.[u]}});return Object.defineProperty(s,"parent",{value:e,configurable:!0}),Object.defineProperty(s,"viewState",{get:()=>r}),r.watch=(a,u,c=!1,m=!0)=>{let g=typeof a=="function"?()=>a(r):()=>Zd(r,a),v=tt(g,u,{deep:c,flush:"post"});return i.push(v),m&&it(()=>{o||u(g(),g())}),v},r.watchGroup=(a,u,c=!0)=>r.watch(()=>a.map(m=>Zd(r,m)),u,!0,c),r.on=(a,u)=>{if(a==="dispose")return i.push(u),()=>{};t.has(a)||t.set(a,new Set),t.get(a).add(u);let c=()=>t.get(a)?.delete(u);return i.push(c),c},r.emit=(a,...u)=>{for(let c of[...t.get(a)||[]])c({},...u)},r.dispose=()=>{o=!0,i.splice(0).reverse().forEach(a=>a())},Gs(r.dispose),r}function At(){let e=new Set,t=new Set,s=!1,i=(r,a=0)=>{if(s)return;let u=setTimeout(()=>{e.delete(u),r()},a);return e.add(u),u};i.cancel=r=>{clearTimeout(r),e.delete(r)};let o=(r,a)=>{if(s)return;let u=setInterval(r,a);return t.add(u),u};return o.cancel=r=>{clearInterval(r),t.delete(r)},Gs(()=>{s=!0,e.forEach(clearTimeout),t.forEach(clearInterval)}),{timeout:i,interval:o}}function vn(){let e=new Set;return Gs(()=>{e.forEach(t=>t()),e.clear()}),(t,s,i,o)=>{t.addEventListener(s,i,o);let r=()=>{t.removeEventListener(s,i,o),e.delete(r)};return e.add(r),r}}function Ur(e,t,s){let i,o=!1,r="form-draft:"+s,a=()=>Object.fromEntries(t.map(h=>[h,e[h]])),u=()=>JSON.stringify(a()),c=h=>{for(let k of t)Object.prototype.hasOwnProperty.call(h,k)&&(e[k]=h[k]);e.options?.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate))},m=()=>{try{window.sessionStorage.removeItem(r)}catch{}},g=(h=!1)=>{if(i!==void 0){if(h&&document.querySelectorAll("input, select, textarea").forEach(k=>{k._field?.binding.state===e&&k._field.timer&&k._field.commit()}),e.unsavedChanges=u()!==i,e.draftSaved=!1,!e.unsavedChanges){m();return}try{window.sessionStorage.setItem(r,JSON.stringify({account:e.user?.username||null,savedAt:Date.now(),values:a()})),e.draftSaved=!0}catch{}}},v=()=>g(!0);return e.on("routeLeave",v),window.addEventListener("beforeunload",v),e.on("dispose",()=>window.removeEventListener("beforeunload",v)),{restore(){i=u();let h;try{h=JSON.parse(window.sessionStorage.getItem(r)||"null")}catch{}let k=h&&h.account===(e.user?.username||null)&&Date.now()-h.savedAt<30*6e4&&h.values;return k&&(c(h.values),e.draftRestored=!0),o||(o=!0,e.watch(()=>a(),()=>g(),!0)),e.unsavedChanges=u()!==i,!!k},checkpoint(){return document.querySelectorAll("input, select, textarea").forEach(h=>{h._field?.binding.state===e&&h._field.timer&&h._field.commit()}),JSON.parse(u())},accept(h){i=JSON.stringify(h),e.draftRestored=!1,g()},discard(){document.querySelectorAll("input, select, textarea").forEach(h=>{h._field?.binding.state!==e||!h._field.timer||(clearTimeout(h._field.timer),h._field.timer=null,h.value=h._field.binding.value??"")}),i!==void 0&&c(JSON.parse(i)),e.draftRestored=!1,g()},clear(){i=u(),e.unsavedChanges=!1,e.draftRestored=!1,e.draftSaved=!1,m()}}}var Fr=(e,t,s)=>{let i=e instanceof RegExp?xd(e,s):e,o=t instanceof RegExp?xd(t,s):t,r=i!==null&&o!=null&&dm(i,o,s);return r&&{start:r[0],end:r[1],pre:s.slice(0,r[0]),body:s.slice(r[0]+i.length,r[1]),post:s.slice(r[1]+o.length)}},xd=(e,t)=>{let s=t.match(e);return s?s[0]:null},dm=(e,t,s)=>{let i,o,r,a,u,c=s.indexOf(e),m=s.indexOf(t,c+1),g=c;if(c>=0&&m>0){if(e===t)return[c,m];for(i=[],r=s.length;g>=0&&!u;){if(g===c)i.push(g),c=s.indexOf(e,g+1);else if(i.length===1){let v=i.pop();v!==void 0&&(u=[v,m])}else o=i.pop(),o!==void 0&&o=0?c:m}i.length&&a!==void 0&&(u=[r,a])}return u};var eu="\0SLASH"+Math.random()+"\0",tu="\0OPEN"+Math.random()+"\0",jr="\0CLOSE"+Math.random()+"\0",nu="\0COMMA"+Math.random()+"\0",su="\0PERIOD"+Math.random()+"\0",um=new RegExp(eu,"g"),cm=new RegExp(tu,"g"),pm=new RegExp(jr,"g"),fm=new RegExp(nu,"g"),hm=new RegExp(su,"g"),mm=/\\\\/g,gm=/\\{/g,vm=/\\}/g,ym=/\\,/g,bm=/\\\./g,wm=1e5,km=4e6,Cm=1e3,Em=1e3;function Br(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function Sm(e){return e.replace(mm,eu).replace(gm,tu).replace(vm,jr).replace(ym,nu).replace(bm,su)}function Nm(e){return e.replace(um,"\\").replace(cm,"{").replace(pm,"}").replace(fm,",").replace(hm,".")}function zr(e,t){for(let s=0;s=t}function go(e,t,s,i,o,r){let a=[],u=0;for(let c=0;c=i)return a;let g=e[c]+t+s[m];if(!(r&&!g)){if(u+g.length>o)return a;a.push(g),u+=g.length}}return a}function Om(e,t,s,i){let o=e.split(/\.\./),r=[];if(o[0]===void 0||o[1]===void 0)return r;let a=Br(o[0]),u=Br(o[1]),c=Math.max(o[0].length,o[1].length),m=o.length===3&&o[2]!==void 0?Math.max(Math.abs(Br(o[2])),1):1,g=Am;u0){let E=new Array(b+1).join("0");A<0?w="-"+E+w.slice(1):w=E+w}}if(k+w.length>i)break;r.push(w),k+=w.length}return r}function Hr(e,t,s,i,o,r,a){if(o>i)return[e];let u=[""],c=0,m=!1,g=!0;for(;;){let v=Fr("{","}",e);if(!v)return go(u,e,[""],t,s,m);let h=v.pre;if(/\$$/.test(h)){if(u=go(u,h+"{"+v.body+"}",[""],t,s,m&&!v.post.length),g=!1,!v.post.length)break;e=v.post;continue}let k=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(v.body),A=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(v.body),w=k||A,b=v.body.indexOf(",")>=0;if(!w&&!b){if(c=t||q+ie.length>s)break e;E.push(ie),q+=ie.length}}}}if(u=go(u,h,E,t,s,m&&!v.post.length),!v.post.length)break;e=v.post}return u}var Pm={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}"],"[:alpha:]":["\\p{L}\\p{Nl}"],"[:ascii:]":["\\x00-\\x7f"],"[:blank:]":["\\p{Zs}\\t"],"[:cntrl:]":["\\p{Cc}"],"[:digit:]":["\\p{Nd}"],"[:graph:]":["\\p{Z}\\p{C}",!0],"[:lower:]":["\\p{Ll}"],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}\\p{S}"],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f"],"[:upper:]":["\\p{Lu}"],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}"],"[:xdigit:]":["A-Fa-f0-9"]},vo=e=>e.replace(/[[\]\\-]/g,"\\$&"),Gr=/$./,iu=(e,t,s=!1,i)=>{let o=E=>{let N=i?E.normalize(i):E;return[...N].length===1?N:E},r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");let a=[],u=[],c=r+1,m=!1,g=!1,v=!1,h=r,k="";e:for(;ck.codePointAt(0)?a.push(vo(k)+"-"+vo(N)):N===k&&a.push(vo(N)),k="",c+=E.length;continue}if(e.startsWith("-]",c+E.length)){a.push(vo(N+"-")),c+=E.length+1;continue}if(e.startsWith("-",c+E.length)){k=N,c+=E.length+1;continue}a.push(vo(N)),c+=E.length}if(h({t:"lit",ch:e}),Mm=e=>e.replace(/[\\^$.*+?()[\]{}|/]/g,"\\$&"),du=e=>new RegExp(`^${Mm(e)}$`,"iu"),Si=new Map,uu=e=>{let t=Si.get(e);return t||(t=du(e),Si.size>=1e3&&Si.clear(),Si.set(e,t)),t},Zr=(e,t)=>{if(t===e.ch)return!0;if(!e.re)return!1;let s=t.charCodeAt(0);if(s>=128)return e.re.test(t);let i=e.ascii??(e.ascii=new Uint8Array(128));return i[s]||(i[s]=e.re.test(t)?1:2),i[s]===1},Vm=(e,t,s,i)=>{let o=[];for(let r=0;r{let t=new Map,s=[];return e.forEach((i,o)=>{i.t==="open"?s.push(o):i.t==="close"&&s.length&&t.set(s.pop(),o)}),t},cu=(e,t,s,i,o)=>{let r=[],a=[r];for(let u=s;u{let s=[],i="",o=()=>{for(let r of i.normalize(t))s.push(Qn(r));i=""};for(let r of e){if(r.t==="lit"){i+=r.ch;continue}o(),s.push(r.t==="ext"?{...r,alts:r.alts.map(a=>pu(a,t))}:r)}return o(),s},$m=(e,t)=>{let s=1,i=u=>({t:"split",id:s++,out:u}),o=(u,c)=>u.reduceRight((m,g)=>r(g,m),c),r=(u,c)=>{switch(u.t){case"lit":let h=t?uu(u.ch):void 0;return{t:"lit",id:s++,ch:u.ch,re:h,next:c};case"any":case"star":return{t:u.t,id:s++,next:c};case"class":return{t:"class",id:s++,re:u.re,next:c}}let m=h=>u.alts.map(k=>o(k,h));switch(u.type){case"@":return i(m(c));case"?":return i([c,...m(c)]);case"!":return{t:"neg",id:s++,sub:i(m(Wr)),next:c}}let g=i([]),v=i(m(g));return g.out.push(c,v),u.type==="*"?g:v};return[o(e,Wr),s]},Lm=e=>{let t=[],s=new Set,i=r=>r.t==="match"?"match":String(r.id),o=(r,a)=>{if(r.t==="match"||s.has(r))return;s.add(r);let u=c=>t.push(`${a}${r.id}: ${c}`);switch(r.t){case"split":u(`split -> ${r.out.map(i).join(", ")}`);for(let c of r.out)o(c,a);return;case"neg":return u(`!(${i(r.sub)}) -> ${i(r.next)}`),o(r.sub,a+" "),o(r.next,a);case"lit":u(`${JSON.stringify(r.ch)} -> ${i(r.next)}`);break;case"class":u(`${r.re} -> ${i(r.next)}`);break;default:u(`${r.t==="any"?"?":"*"} -> ${i(r.next)}`)}o(r.next,a)};return o(e,""),[`start -> ${i(e)}`,...t].join(` +`)},Kr=class{constructor(t){We(this,"gen");We(this,"threads",[]);We(this,"match",!1);We(this,"runs",[]);We(this,"ids",[]);this.gen=t}get dead(){return!this.threads.length&&!this.match&&!this.runs.length}},fu=(e,t)=>e.ids.length!==t.ids.length||e.runs.length!==t.runs.length||e.ids.some((s,i)=>s!==t.ids[i])?!1:e.runs.every(s=>t.runs.some(i=>i.neg===s.neg&&fu(i.state,s.state))),ru=e=>({has:new Float64Array(e),seen:new Float64Array(e),gen:0}),Zn,_n,Yr,Xr,bo=class{constructor(t,s,i){Ie(this,_n);We(this,"dots");We(this,"dotStart");Ie(this,Zn);this.dots=t,this.dotStart=s,qe(this,Zn,i)}state(){return new Kr(++oe(this,Zn).gen)}done(t){return t.ids=t.threads.map(s=>s.id).sort((s,i)=>s-i),t.match&&t.ids.unshift(Wr.id),t}restricted(t,s){return s&&(this.dots||this.dotStart&&t===0)}add(t,s,i,o){switch(s.t){case"split":if(!Me(this,_n,Yr).call(this,t,s))return;for(let a of s.out)this.add(t,a,i,o);return;case"neg":if(!Me(this,_n,Yr).call(this,t,s))return;let r=this.state();return this.add(r,s.sub,i,!1),this.done(r),this.addRun(t,{t:"run",neg:s,state:r},i,o);case"star":if(this.restricted(i,o))return;Me(this,_n,Xr).call(this,t,s)&&this.add(t,s.next,i,o);return;case"match":t.match=!0;return;default:Me(this,_n,Xr).call(this,t,s)}}addRun(t,s,i,o){for(let r of t.runs)if(r.neg===s.neg&&fu(r.state,s.state))return;t.runs.push(s),s.state.match||this.add(t,s.neg.next,i,o)}step(t,s,i,o){let r=this.state();for(let a of t.threads)switch(a.t){case"lit":Zr(a,s)&&this.add(r,a.next,i+1,o);break;case"any":this.restricted(i,o)||this.add(r,a.next,i+1,o);break;case"class":!this.restricted(i,o)&&a.re.test(s)&&this.add(r,a.next,i+1,o);break;case"star":this.restricted(i,o)||this.add(r,a,i+1,o)}if(!this.restricted(i,o))for(let a of t.runs){if(a.state.dead){this.addRun(r,a,i+1,o);continue}let u=this.step(a.state,s,i,!1);this.addRun(r,{t:"run",neg:a.neg,state:u},i+1,o)}return this.done(r)}};Zn=new WeakMap,_n=new WeakSet,Yr=function(t,s){let{seen:i}=oe(this,Zn);return i[s.id]===t.gen?!1:(i[s.id]=t.gen,!0)},Xr=function(t,s){let{has:i}=oe(this,Zn);return i[s.id]===t.gen?!1:(i[s.id]=t.gen,t.threads.push(s),!0)};var hu=e=>{let t=e.ids.join();if(!e.runs.length)return t;let s=e.runs.map(i=>`${i.neg.id}(${hu(i.state)})`);return`${t}|${s.sort().join("|")}`},Um=1<<18,Es,Ss,Nn,xn,Rn,Dn,Tn,Kt,Qr,Ri,mu,Jr=class{constructor(t,s){Ie(this,Kt);Ie(this,Es);Ie(this,Ss,new Map);Ie(this,Nn,0);Ie(this,xn);Ie(this,Rn);Ie(this,Dn);Ie(this,Tn);qe(this,Es,t),qe(this,Dn,new bo(!1,!1,s)),qe(this,Tn,new bo(!1,!0,s))}start(t){if(t){if(oe(this,Rn))return oe(this,Rn);let i=oe(this,Tn).state();return oe(this,Tn).add(i,oe(this,Es),0,!0),qe(this,Rn,Me(this,Kt,Qr).call(this,oe(this,Tn).done(i)))}if(oe(this,xn))return oe(this,xn);let s=oe(this,Dn).state();return oe(this,Dn).add(s,oe(this,Es),0,!0),qe(this,xn,Me(this,Kt,Ri).call(this,oe(this,Dn).done(s)))}next(t,s){let i=s.charCodeAt(0),o=i<128?void 0:t.next.get(s);if(o)return o;let r=t===oe(this,Rn)?Me(this,Kt,Ri).call(this,oe(this,Tn).step(t.state,s,0,!0)):Me(this,Kt,Ri).call(this,oe(this,Dn).step(t.state,s,1,!0));return i<128?(t.ascii||(t.ascii=new Array(128),qe(this,Nn,oe(this,Nn)+128)),t.ascii[i]=r):t.next.set(s,r),ba(this,Nn)._++,r}};Es=new WeakMap,Ss=new WeakMap,Nn=new WeakMap,xn=new WeakMap,Rn=new WeakMap,Dn=new WeakMap,Tn=new WeakMap,Kt=new WeakSet,Qr=function(t){return{state:t,match:t.match,dead:t.dead,next:new Map}},Ri=function(t){let s=hu(t),i=oe(this,Ss).get(s);if(i)return i;oe(this,Nn)>Um&&Me(this,Kt,mu).call(this);let o=Me(this,Kt,Qr).call(this,t);return oe(this,Ss).set(s,o),qe(this,Nn,oe(this,Nn)+(s.length+1)),o},mu=function(){oe(this,Ss).clear(),qe(this,Nn,0),qe(this,xn,void 0),qe(this,Rn,void 0)};var Fm=e=>{let t=[];for(let s=e;s.t!=="match";s=s.next){if(s.t==="split"||s.t==="neg")return;t.push(s)}return t},Bm=(e,t,s,i)=>{let o=0,r=s,a=-1,u=0;for(;r{let t=0,s=0;for(let i of e){let[o,r]=zm(i);t+=o,s+=r}return[t,s]},zm=e=>{if(e.t==="star")return[0,1/0];if(e.t!=="ext")return[1,1];if(e.type==="!")return[0,1/0];let t=e.alts.map(gu),s=Math.min(...t.map(r=>r[0])),i=Math.max(...t.map(r=>r[1])),o=i===0?0:1/0;return e.type==="@"?[s,i]:e.type==="?"?[0,i]:e.type==="*"?[0,o]:[s,o]},au=(e,t,s)=>{for(let i=0;ijm.test(e)?[...e]:e,lu=e=>{if(e.includes("/"))throw new Error("can only match a single path portion, got: "+e)},An,Ns,es,Di,ts,ko,Ti,ns,Co,Eo,So,yn,an,Rs,Ds,No,Ai,Wt,ss,yo,wo=class{constructor(t,s={}){Ie(this,ss);We(this,"pattern");We(this,"options");Ie(this,An);Ie(this,Ns);Ie(this,es);Ie(this,Di);Ie(this,ts);Ie(this,ko,!1);Ie(this,Ti);Ie(this,ns);Ie(this,Co,!1);Ie(this,Eo,0);Ie(this,So,1/0);Ie(this,yn,[]);Ie(this,an,[]);Ie(this,Rs);Ie(this,Ds);Ie(this,No,!1);Ie(this,Ai);Ie(this,Wt);if(t.includes("/"))throw new Error("can only match a single path portion, got pattern: "+t);this.pattern=t,this.options=s;let{nocase:i=!1,noext:o=!1,normalize:r}=s;qe(this,Wt,r===!0?"NFC":r||void 0);let a=/^[?*+@]\(\)$/.test(t),u=Vm(t,i,o||a,oe(this,Wt)),[c]=cu(u,qm(u),0,u.length,!0);oe(this,Wt)&&(c=pu(c,oe(this,Wt)));let[m,g]=$m(c,i);if(qe(this,An,m),qe(this,Ns,g),c.every(v=>v.t==="lit"))qe(this,ts,c.map(v=>v.ch).join("")),qe(this,ko,i);else{let v=A=>A.t!=="lit"?void 0:i?{ch:A.ch,re:uu(A.ch)}:{ch:A.ch};for(let A of c){let w=v(A);if(!w)break;oe(this,yn).push(w)}for(let A=c.length-1;A>=0;A--){let w=v(c[A]);if(!w)break;oe(this,an).unshift(w)}qe(this,No,!!(oe(this,yn).length||oe(this,an).length)),i||(qe(this,Rs,oe(this,yn).map(A=>A.ch).join("")),qe(this,Ds,oe(this,an).map(A=>A.ch).join(""))),qe(this,ns,Fm(oe(this,An))?.slice(oe(this,yn).length,-oe(this,an).length||void 0)),qe(this,Co,!!oe(this,ns)?.every(A=>A.t==="star"||A.t==="any"));let[h,k]=gu(c);qe(this,Eo,h),qe(this,So,k)}}test(t){return oe(this,Wt)?(lu(t),Me(this,ss,yo).call(this,t.normalize(oe(this,Wt)))):Hm.test(t)?(lu(t),Me(this,ss,yo).call(this,t,[...t])):Me(this,ss,yo).call(this,t,t)}testUnchecked(t){return Me(this,ss,yo).call(this,oe(this,Wt)?t.normalize(oe(this,Wt)):t)}toString(){return Lm(oe(this,An))}};An=new WeakMap,Ns=new WeakMap,es=new WeakMap,Di=new WeakMap,ts=new WeakMap,ko=new WeakMap,Ti=new WeakMap,ns=new WeakMap,Co=new WeakMap,Eo=new WeakMap,So=new WeakMap,yn=new WeakMap,an=new WeakMap,Rs=new WeakMap,Ds=new WeakMap,No=new WeakMap,Ai=new WeakMap,Wt=new WeakMap,ss=new WeakSet,yo=function(t,s){if(oe(this,ts)!==void 0)return oe(this,ko)?(oe(this,Ti)??qe(this,Ti,du(oe(this,ts)))).test(t):t===oe(this,ts);let i=oe(this,Eo),o=oe(this,So);if(s===void 0){let g=t.length,v=g+1>>1;if(go)return!1;(vo)&&(s=Ni(t))}if(s!==void 0&&(s.lengtho))return!1;let r=oe(this,yn).length;if(oe(this,No))if(oe(this,Rs)!==void 0&&oe(this,Ds)!==void 0){if(!t.startsWith(oe(this,Rs))||!t.endsWith(oe(this,Ds)))return!1}else{s??(s=Ni(t));let g=s.length-oe(this,an).length;if(!au(oe(this,yn),s,0)||!au(oe(this,an),s,g))return!1}let a=!this.options.dot&&t.startsWith(".");if(oe(this,ns)){if(t==="."||t===".."||a&&!r)return!1;if(oe(this,Co))return!0;s??(s=Ni(t));let g=s.length-oe(this,an).length;return Bm(oe(this,ns),s,r,g)}if(s??(s=Ni(t)),t==="."||t===".."){oe(this,es)??qe(this,es,ru(oe(this,Ns)));let g=oe(this,Di)??qe(this,Di,new bo(!0,!1,oe(this,es))),v=g.state();g.add(v,oe(this,An),0,!0);let h=g.done(v);for(let k=0;k{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>65536)throw new TypeError("pattern is too long")};var On=(e,{windowsPathsNoEscape:t=!1,magicalBraces:s=!1}={})=>s?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");var os=(e,{windowsPathsNoEscape:t=!1,magicalBraces:s=!0}={})=>s?t?e.replace(/\[([^/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\])\]/g,"$1$2").replace(/\\([^/])/g,"$1"):t?e.replace(/\[([^/\\{}])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\{}])\]/g,"$1$2").replace(/\\([^/{}])/g,"$1");var Mt=(e,t,s={})=>(Ro(t),!s.nocomment&&t.charAt(0)==="#"?!1:Wm(t,s).match(e)),Ts=new Map,Gm=256,Wm=(e,t)=>{let s=e+"\0"+JSON.stringify(t),i=Ts.get(s);return i?Ts.delete(s):(i=new is(e,{...t}),Ts.size>=Gm&&Ts.delete(Ts.keys().next().value)),Ts.set(s,i),i},Cu=typeof process=="object"&&process?process.env?.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",vu={win32:{sep:"\\"},posix:{sep:"/"}},Km=Cu==="win32"?vu.win32.sep:vu.posix.sep;Mt.sep=Km;var ft=Symbol("globstar **");Mt.GLOBSTAR=ft;var Ym=(e,t={})=>s=>Mt(s,e,t);Mt.filter=Ym;var bn=(e,t={})=>Object.assign({},e,t),Xm=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return Mt;let t=Mt;return Object.assign((i,o,r={})=>t(i,o,bn(e,r)),{Minimatch:class extends t.Minimatch{constructor(o,r={}){super(o,bn(e,r))}static defaults(o){return t.defaults(bn(e,o)).Minimatch}},unescape:(i,o={})=>t.unescape(i,bn(e,o)),escape:(i,o={})=>t.escape(i,bn(e,o)),filter:(i,o={})=>t.filter(i,bn(e,o)),defaults:i=>t.defaults(bn(e,i)),braceExpand:(i,o={})=>t.braceExpand(i,bn(e,o)),match:(i,o,r={})=>t.match(i,o,bn(e,r)),sep:t.sep,GLOBSTAR:ft})};Mt.defaults=Xm;var Eu=(e,t={})=>(Ro(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:ou(e,{max:t.braceExpandMax}));Mt.braceExpand=Eu;var Jm=(e,t,s={})=>{let i=new is(t,s);return e=e.filter(o=>i.match(o)),i.options.nonull&&!e.length&&e.push(t),e};Mt.match=Jm;var yu=/[?*]|[+@!]\(.*?\)|\[|\]/,Su=(e,t)=>{let s=t+1;(e.charAt(s)==="!"||e.charAt(s)==="^")&&s++;let i=!1;for(;s{if(!t&&(e==="+()"||e==="@()"))return e;let s="";for(let i=0;i{if(/^[?*+@]\(\)$/.test(e)||e.includes("[:"))return!1;let t=0;for(let s=0;stypeof e=="string"?t===e:t!==""&&e.testUnchecked(t),wu=(e,t,s,i,o)=>Pn(e,t)?s:i!==void 0&&Pn(e,i)?o:-1,sa=e=>e==="."||e==="..",ea=e=>typeof e=="string"&&/^[a-z]:$/i.test(e),Oi=e=>typeof e=="string"&&/^unc$/i.test(e),ta=e=>{if(e[0]!==""||e[1]!=="")return-1;let t=e[2]!=="?"?2:Oi(e[3])?4:-1,s=e[t],i=e[t+1];return t!==-1&&s!==void 0&&s!==""&&s!==ft&&i!==void 0&&i!==""&&i!==ft?t:-1},_i=(e,t)=>!sa(e)&&(t||!e.startsWith(".")),Do=(e,t,s,i,o)=>{for(let r=t;r=s||Ii(e.charCodeAt(u),o))return!0}let a=oa(e,r,o);if(a===-1)return!1;for(r=a+1;rt==="/"?e===47:t==="\\"?e===92:e===47||e===92,oa=(e,t,s)=>{if(s!=="both")return e.indexOf(s,t);let i=e.indexOf("/",t),o=e.indexOf("\\",t);return i===-1?o:o===-1?i:Math.min(i,o)},ku=(e,t,s)=>s!=="both"?e.lastIndexOf(s,t):Math.max(e.lastIndexOf("/",t),e.lastIndexOf("\\",t)),na={},In,_s,Mn,wn,Os,Ps,Vn,Ao,Is,_o,Ve,Pi,To,Nu,Ru,Du,Tu,Au,_u,ia,Ou,Pu,ra,As,aa,is=class{constructor(t,s={}){Ie(this,Ve);We(this,"options");We(this,"set");We(this,"pattern");We(this,"windowsPathsNoEscape");We(this,"nonegate");We(this,"negate");We(this,"comment");We(this,"empty");We(this,"preserveMultipleSlashes");We(this,"partial");We(this,"globSet");We(this,"globParts");We(this,"nocase");We(this,"isWindows");We(this,"platform");We(this,"windowsNoMagicRoot");We(this,"maxGlobstarRecursion");Ie(this,In);Ie(this,_s);Ie(this,Mn);Ie(this,wn);Ie(this,Os,[]);Ie(this,Ps,[]);Ie(this,Vn,[]);Ie(this,Ao,new Map);Ie(this,Is,!1);Ie(this,_o,new WeakMap);Ro(t),s=s||{},this.options=s,this.maxGlobstarRecursion=s.maxGlobstarRecursion??200,this.pattern=t,this.platform=s.platform||Cu,this.isWindows=this.platform==="win32";let i="allowWindowsEscape";this.windowsPathsNoEscape=!!s.windowsPathsNoEscape||s[i]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!s.preserveMultipleSlashes,this.negate=!1,this.nonegate=!!s.nonegate,this.comment=!1,this.empty=!1,this.partial=!!s.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=s.windowsNoMagicRoot!==void 0?s.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],qe(this,In,!this.preserveMultipleSlashes),qe(this,Mn,(s.optimizationLevel??1)>=2);let o=s.normalize;qe(this,wn,o===!0?"NFC":o||void 0),this.make();let r=this.set.map(a=>Me(this,Ve,To).call(this,a));qe(this,Vn,this.set.map((a,u)=>oe(this,In)&&a.length-1>r[u])),qe(this,Os,this.set.map((a,u)=>{let c=oe(this,Vn)[u]?a.length-1:a.length,m=a.slice(r[u]+1,c).filter(g=>typeof g=="string"&&!!g);return[...new Set(m)]})),qe(this,_s,oe(this,Os).some(a=>a.length)),qe(this,Ps,this.set.map((a,u)=>{let[c,m,g]=a;if(oe(this,Vn)[u]&&a.length===2&&c===ft&&m!==ft)return"tail";if(oe(this,Vn)[u]&&s.matchBase&&a.length===1&&c!==ft&&c!=="")return"base";if(!(!oe(this,In)||r[u]!==-1)){if(a.length===3&&c===ft&&g===ft&&m!==ft&&m!==""&&this.maxGlobstarRecursion>0)return"mid";if(a.length===2&&m===ft&&c!==ft&&c!=="")return"head"}}))}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let s of t)if(typeof s!="string")return!0;return!1}make(){let t=this.pattern,s=this.options;if(!s.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())];let i=this.globSet.map(r=>Me(this,Ve,aa).call(this,r));this.globParts=this.preprocess(i),qe(this,Is,!0);let o=this.globParts.map((r,a,u)=>{if(this.isWindows&&this.windowsNoMagicRoot){let c=r[2]==="?"&&Oi(r[3])?6:4,m=r[0]===""&&r[1]===""&&(r[2]==="?"||!yu.test(r[2]))&&r.slice(3,c).every(v=>!yu.test(v)),g=/^[a-z]:/i.test(r[0]);if(m)return[...r.slice(0,c).map(v=>Me(this,Ve,Pi).call(this,v)),...r.slice(c).map(v=>this.parse(v))];if(g)return[Me(this,Ve,Pi).call(this,r[0]),...r.slice(1).map(v=>this.parse(v))]}return r.map(c=>this.parse(c))});if(this.set=o.filter(r=>r.indexOf(!1)===-1),this.isWindows)for(let r=0;r{for(let u=0;ui.length));for(let i=0;i{if(!(a[i]instanceof wo||a[i]===na)||!Zm(this.globParts[u][i]))return;let c=[...this.globParts[u]];c[i]="";let m=`${a.length}/${c.join("/")}`,g=o.get(m);g?g.push(u):o.set(m,[u])});let r=new Set;for(let a of o.values()){if(a.length<2)continue;let[u,...c]=a,g=`@(${a.map(v=>this.globParts[v][i]).join("|")})`;this.globParts[u][i]=g,this.set[u][i]=this.parse(g);for(let v of c)r.add(v)}r.size&&(t=!0,this.set=this.set.filter((a,u)=>!r.has(u)),this.globParts=this.globParts.filter((a,u)=>!r.has(u)))}}}preprocess(t){if(this.options.noglobstar)for(let i of t)for(let o=0;o=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):s>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(s=>{let i=-1;for(;(i=s.indexOf("**",i+1))!==-1;){let o=i;for(;s[o+1]==="**";)o++;o!==i&&s.splice(i,o-i)}return s})}levelOneOptimize(t){return t.map(s=>{let i=Me(this,Ve,To).call(this,s)+1;return s=s.reduce((o,r)=>{let a=o[o.length-1];return r==="**"&&a==="**"?o:r===".."&&o.length>i&&a&&a!==".."&&a!=="."&&a!=="**"?(o.pop(),o):(o.push(r),o)},[]),s.length===0?[""]:s})}firstPhasePreProcess(t){let{braceExpandMax:s=1e5}=this.options,i=!1;do{i=!1;for(let o of t){let r=-1;for(;(r=o.indexOf("**",r+1))!==-1;){let c=r;for(;o[c+1]==="**";)c++;c>r&&o.splice(r+1,c-r);let m=o[r+1],g=o[r+2],v=o[r+3];if(m!==".."||!g||g==="."||g===".."||!v||v==="."||v===".."||t.length>=s)continue;i=!0,o.splice(r,1);let h=o.slice(0);h[r]="**",t.push(h),r--}if(!this.preserveMultipleSlashes){for(let c=1;c1e3)return t;for(let s=0;ss.length)}partsMatch(t,s,i=!1){let o=0,r=0,a=[],u="";for(;o=0;m--)c=r[m];for(let m=0;m=0){let E=w;for(;E>0&&Ii(t.charCodeAt(E-1),s);)E--;u=E===0?0:ku(t,E-1,s)+1,a=t.slice(u,E)}let b=oe(this,Mn)&&(sa(o)||o===""&&a!==void 0&&sa(a));i=b?-1:1,h=!b}let k=-1;if(h&&typeof v=="string"&&(k=wu(v,o,r,a,u),k===-1))continue;if(oe(this,_s)){for(let w of oe(this,Os)[m])if(!t.includes(w))continue e}if(h&&typeof v=="object"&&(k=wu(v,o,r,a,u),k===-1))continue;let A=oe(this,Ps)[m];if(A==="base"&&h)return"yes";if(A==="tail"&&h){if(oe(this,Mn)&&Do(t,0,k,!0,s))return"maybe";if(!Do(t,0,k,c,s))return"yes";continue}if(A==="mid"||A==="head"){let w=Me(this,Ve,Du).call(this,t,g,A==="head",c,s);if(w!=="no")return w;continue}return"maybe"}return"no"},Ru=function(t,s,i){let o=!!this.options.dot,r=t.length;if(i==="head"){if(r<2||!Pn(s[0],t[0]))return!1;for(let u=1;uu&&a.testUnchecked(t.slice(u,c)))&&!Do(t,m,t.length,o,r))return"yes";if(i||Do(t,u,m,o,r))return"no";u=m}return"no"},Tu=function(t){let s=xr;return s?.f===t&&s.isWindows===this.isWindows&&s.preserveMultipleSlashes===this.preserveMultipleSlashes&&s.normalize===oe(this,wn)?s:void 0},Au=function(t){let{isWindows:s,preserveMultipleSlashes:i}=this,o=Me(this,Ve,aa).call(this,s?t.split("\\").join("/"):t),r=oe(this,wn);return r&&(o=o.map(a=>a.normalize(r))),xr={f:t,isWindows:s,preserveMultipleSlashes:i,normalize:r,parts:o},xr},_u=function(t){let s=[...t],i=!1;do{if(i=!1,!this.preserveMultipleSlashes){for(let a=1;at.length)return!1;let v=t.length-c.length;if(Me(this,Ve,As).call(this,t,c,i,v,0))g=c.length;else{if(t[t.length-1]!==""||o+c.length===t.length||(v--,!Me(this,Ve,As).call(this,t,c,i,v,0)))return!1;g=c.length+1}}if(!u.length){let v=!!g;for(let h=o;h{E[1]=A-w[N]});let b={head:m,body:g,tail:v,segments:h};return o[r]=b,b},ra=function(t,s,i,o,r,a,u,c,m){let g=s[r];if(!g){if(a)return o>=i||o===i-1&&t[o]==="";for(let A=o;Ae.lastIndexOf(t)===s)}function da(e){let t=(e||[]).filter(s=>typeof s=="string"&&s.length>0).map(s=>{let{negated:i,anchored:o,directoryOnly:r,body:a}=xm(s);return{negated:i,directoryOnly:r,matcher:new is(a,{dot:!0,nonegate:!0,nocomment:!0,matchBase:!o&&!a.includes("/")})}});return(s,i=!1)=>{let o=(s||"").replace(/^\/+/,"");if(!o)return!1;let r=o.split("/"),a=r.slice(0,-1).map((c,m)=>r.slice(0,m+1).join("/")),u=i;for(let c of t){if(c.negated?!u:u)continue;(c.directoryOnly?a:[...a,o]).some(g=>c.matcher.match(g))&&(u=!c.negated)}return u}}var yG=new Set("^$\\.*+?()[]{}|/dDsSwWbBnrtvf0cxupP".split(""));function ua(e){let t=e.indexOf("=>");if(t<0)return{term:e,replacement:null};let s=e.slice(0,t).replace(/\s+$/,""),i=e.slice(t+2).replace(/^\s+/,"");return s?{term:s,replacement:i}:{term:e,replacement:null}}var Iu=new Set(["*","+","?","(",")","[","]","{","}","|","^","$"]);function Mu(e){let t=[];return String(e||"").split(` +`).forEach((s,i)=>{let{term:o}=ua(s.trim());if(!o)return;let r=[];for(let a=0;a{let t=e.target;if(!t||t.tagName!=="IMG"||t.dataset.failed||!t.closest?.(".markdown-body, .anonymize-preview-body"))return;t.dataset.failed="1";let s=window.document.createElement("span");s.className="img-unavailable",s.textContent=t.alt?"Image unavailable: "+t.alt:"Image unavailable",t.replaceWith(s)},!0);function ca(e){let t=e?.data;if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return typeof t?.error=="string"&&Object.prototype.hasOwnProperty.call(Oo.ERRORS,t.error)?t.error:e?.status===-1||e?.status===0?"request_error":[502,503,504].includes(e?.status)?"unreachable":"unknown_error"}var Mi="XXXX",tg=e=>{Mi=e||"XXXX"},ng=(e=Mi)=>{if(!e)return null;let t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(t+"(?:-\\d+)?","g")},qu=(e,t=Mi)=>{let s=ng(t);if(!s||!e||!e.textContent.includes(t))return;let i=e.ownerDocument,o=i.createTreeWalker(e,NodeFilter.SHOW_TEXT),r=[];for(;o.nextNode();)r.push(o.currentNode);for(let a of r){let u=a.nodeValue,c=a.parentElement;if(!u.includes(t)||!c||c.closest("script, style, mark.redaction, .mermaid"))continue;let m=c.closest('code[class*="language-"]');if(m&&!m.contains(e))continue;let g=i.createDocumentFragment(),v=0;for(let h of u.matchAll(s)){g.append(u.slice(v,h.index));let k=i.createElement("mark");k.className="redaction",k.title="Redacted by Anonymous GitHub",k.textContent=h[0],g.append(k),v=h.index+h[0].length}g.append(u.slice(v)),a.replaceWith(g)}},Po=/\bXXXX-\d+\b/g,$u=function(e){if(!e||e.indexOf("XXXX-")===-1||typeof window.DOMParser!="function")return e;let t=new window.DOMParser().parseFromString("
"+e+"
","text/html"),s=t.createTreeWalker(t.body,4),i=[];for(;s.nextNode();)Po.lastIndex=0,!s.currentNode.parentElement?.closest("pre code")&&Po.test(s.currentNode.nodeValue)&&i.push(s.currentNode);for(let o of i){Po.lastIndex=0;let r=t.createDocumentFragment(),a=0,u,c=o.nodeValue;for(;u=Po.exec(c);){r.appendChild(t.createTextNode(c.slice(a,u.index)));let m=t.createElement("mark");m.className="redact-chip",m.setAttribute("title","Redacted term "+u[0].slice(5)+" \u2014 the same term everywhere in this snapshot");let g=u[0].slice(5);m.textContent="";let v=t.createElement("i");v.textContent=g,m.appendChild(v),m.dataset.term=u[0],m.setAttribute("aria-label","Redacted term "+g);let h=/^[.,;:!?)\]]+/.exec(c.slice(u.index+u[0].length));if(h){let k=t.createElement("span");k.className="redact-glue",k.appendChild(m),k.appendChild(t.createTextNode(h[0])),r.appendChild(k),a=u.index+u[0].length+h[0].length}else r.appendChild(m),a=u.index+u[0].length}r.appendChild(t.createTextNode(c.slice(a))),o.parentNode.replaceChild(r,o)}return t.body.firstChild.innerHTML},Lu=()=>{window.Prism?.hooks&&!window.Prism.redactionHook&&(window.Prism.hooks.add("complete",e=>{qu(e.element),e.element.querySelectorAll?.("mark.redaction").forEach(t=>{let s=/^XXXX-(\d+)$/.exec(t.textContent);if(!s)return;t.className="redact-chip",t.setAttribute("title","Redacted term "+s[1]+" \u2014 the same term everywhere in this snapshot"),t.setAttribute("aria-label","Redacted term "+s[1]),t.dataset.term=s[0],t.style.setProperty("--slot-ch",s[0].length+"ch"),t.textContent="";let i=t.ownerDocument.createElement("i");i.textContent=s[1],t.appendChild(i)})}),window.Prism.redactionHook=!0)},Uu=(e,t=Mi)=>{if(!e||!t||!e.includes(t))return e;let s=new DOMParser().parseFromString(""+e+"","text/html");return qu(s.body,t),s.body.innerHTML};async function Fu(e){if(window.navigator.clipboard?.writeText){await window.navigator.clipboard.writeText(e);return}let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.opacity="0";let s=document.activeElement;document.body.appendChild(t);try{if(t.select(),!document.execCommand?.("copy"))throw Error("Copy unavailable")}finally{t.remove(),s?.focus()}}function sg(e){if(!["ArrowLeft","ArrowRight","Home","End"].includes(e.key))return;let t=[...e.currentTarget.closest('[role="tablist"]').querySelectorAll('[role="tab"]')],s=t.indexOf(e.currentTarget),i=e.key==="Home"?0:e.key==="End"?t.length-1:(s+(e.key==="ArrowRight"?1:-1)+t.length)%t.length;e.preventDefault(),t[i]?.focus(),t[i]?.click()}var Bu=function(e,t,s,i){e.previewTabKeydown=sg,e.headerCanUpgrade=!1,e.headerShowSupport=!1,e.headerBillingPending=["success","portal"].includes(new URLSearchParams(window.location.search).get("billing"));let o=v=>{e.headerShowSupport=!(v?.grants||[]).some(k=>["active","paid","past_due"].includes(k.status)&&new Date(k.until).getTime()>Date.now());let h=(v?.grants||[]).some(k=>["author_monthly","author_annual"].includes(k.planId)&&["active","paid","past_due"].includes(k.status)&&new Date(k.until).getTime()>Date.now());e.headerCanUpgrade=!!v?.enabled&&v.checkoutEnabled!==!1&&!h&&(v.plans||[]).some(k=>["author_monthly","author_annual"].includes(k.id))};e.on("billing:updated",(v,h)=>o(h)),e.on("billing:pending",(v,h)=>{e.headerBillingPending=h}),e.openHeaderUpgrade=()=>{s.path()==="/profile"?e.emit("settings:upgrade"):s.url("/profile?upgrade=1")},e.title="Main",e.user={status:"connection"},e.site_options,e.toasts=[],e.removeToast=function(v){let h=e.toasts.indexOf(v);h!==-1&&e.toasts.splice(h,1)},e.addToast=function(v){return e.toasts.push(v),i(function(){e.removeToast(v)},8e3),v};let r=/^\/(r|repository|pr|gist)\//;e.path=s.url(),e.paths=s.path().substring(1).split("/"),e.isReviewerRoute=r.test(s.path()),e.darkMode=function(v){localStorage.setItem("darkMode",v),e.isDarkMode=v;let h="/css/prism-okaidia.css",k="/css/prism.css";if(v){$("body").addClass("dark-mode");let A=document.createElement("link");A.href=h,A.rel="stylesheet",document.head.append(A),$(`link[href='${k}']`).remove()}else{$("body").removeClass("dark-mode");let A=document.createElement("link");A.href=k,A.rel="stylesheet",document.head.append(A),$(`link[href='${h}']`).remove()}e.emit("dark-mode",v)},e.darkMode(localStorage.getItem("darkMode")=="true"),e.emailPromptOpen=!1,e.emailPromptAddress="",e.emailPromptBusy=!1,e.emailPromptError="";let a;e.respondToEmailPrompt=async v=>{if(!e.emailPromptBusy){e.emailPromptBusy=!0,e.emailPromptError="";try{let h=await t.post("/github/connections/email",{action:v,email:e.emailPromptAddress},{headers:{"X-CSRF-Token":e.user.emailPromptCSRF}});v==="save"&&(e.user.notificationEmail=h.data.notificationEmail),e.emailPromptOpen=!1,e.user.showEmailPrompt=!1,a?.focus()}catch(h){e.emailPromptError=h.data?.error||"Unable to save your preference. Please try again."}finally{e.emailPromptBusy=!1}}};function u(){t.get("/api/user").then(v=>{v&&(e.user=v.data),e.user?.username?$r(t).then(h=>o(h.data)).catch(()=>{}):e.headerShowSupport=!0,e.user?.emailNotificationsEnabled&&e.user.showEmailPrompt&&!e.user.notificationEmail&&(a=document.activeElement,e.emailPromptOpen=!0,i(()=>{let h=document.getElementById("email-prompt");h?.showModal?h.showModal():h?.setAttribute("open",""),document.getElementById("email-prompt-address")?.focus()},0))},()=>{e.user=null,e.headerShowSupport=!0})}u();function c(){t.get("/api/options").then(v=>{v&&(e.site_options=v.data),tg(v?.data?.ANONYMIZATION_MASK),e.emit("site-options")},()=>{e.site_options=null})}c();function m(){t.get("/api/message").then(v=>{v&&(e.generalMessage=v.data)},()=>{e.generalMessage=null})}m();function g(v,h){h&&(e.title=h.title),e.path=s.url(),e.paths=s.path().substring(1).split("/"),e.isReviewerRoute=r.test(s.path())}e.on("routeChange",g),e.on("routeUpdate",g)},zu=function(e,t){let s=vn(),i=At(),o=()=>{let r=window.location.hash.slice(1),a=document.getElementById(r);if(!a?.classList.contains("panel-collapse"))return;$(a).collapse("show");let u=document.getElementById(a.getAttribute("aria-labelledby"));u?.setAttribute("tabindex","-1"),u?.focus({preventScroll:!0}),u?.scrollIntoView?.({block:"start"})};e.on("routeUpdate",()=>i.timeout(o,0)),s(window,"hashchange",o),i.timeout(o,0)},Hu=function(e,t,s,i,o){e.settingsTab=/(?:billing|upgrade)=/.test(window.location.search)?"billing":"defaults",e.confirmDeleteAccount=!1,e.deleteUsername="",e.profilePastSubscription=()=>!e.profileAuthorGrant()&&(e.billing?.grants||[]).some(m=>["author_monthly","author_annual"].includes(m.planId)),e.showAuthorPlans=new URLSearchParams(window.location.search).get("upgrade")==="1",e.showRepositoryPass=!1,e.profilePlan="author_monthly",e.openProfileUpgrade=()=>{e.settingsTab="billing",e.showAuthorPlans=!0,it(()=>document.getElementById("settings-plan-comparison")?.focus())},e.on("settings:upgrade",()=>e.openProfileUpgrade()),e.profileAuthorPlans=()=>(e.billing?.plans||[]).filter(m=>["author_monthly","author_annual"].includes(m.id)),e.profileSelectedPlan=()=>e.profileAuthorPlans().find(m=>m.id===e.profilePlan)||e.profileAuthorPlans()[0],e.profilePassPlan=()=>(e.billing?.plans||[]).find(m=>m.id==="author_pass"),e.profileAuthorGrant=()=>(e.billing?.grants||[]).find(m=>["author_monthly","author_annual"].includes(m.planId)&&["active","paid","past_due"].includes(m.status)&&new Date(m.until).getTime()>Date.now()),e.profileGrantName=m=>({author_monthly:"Author monthly",author_annual:"Author annual",author_pass:"Repository pass",conference:"Conference hosting"})[m.planId]||m.planId,Ei(e,t,()=>o.load().then(m=>{e.quota=m},console.error)),e.terms="",e.options={expirationMode:"remove",update:!1,image:!0,pdf:!0,notebook:!0,loc:!0,link:!0},e.saving=!1,e.message=null,e.error=null,e.accountEmail="",e.emailLoading=!0,e.emailCSRFReady=!1,e.emailSaving=!1,e.emailSaved=!1,e.emailError="";let r="";e.loadAccountEmail=async()=>{e.emailLoading=!0,e.emailError="";try{let m=await t.get("/github/connections/email");e.accountEmail=m.data.notificationEmail||"",r=m.data.csrf,e.emailCSRFReady=!!r}catch{e.emailError="Unable to load your email address. Please try again."}finally{e.emailLoading=!1}},e.saveAccountEmail=async()=>{if(!(e.emailSaving||e.emailLoading||!r)){e.emailSaving=!0,e.emailSaved=!1,e.emailError="";try{let m=await t.post("/github/connections/email",{email:e.accountEmail},{headers:{"X-CSRF-Token":r}});e.accountEmail=m.data.notificationEmail,e.user&&(e.user.notificationEmail=m.data.notificationEmail),e.emailSaved=!0}catch{e.emailError="Unable to save your email address. Check the address and try again."}finally{e.emailSaving=!1}}},e.loadAccountEmail(),o.load().then(m=>{e.quota=m},console.error);let a=Ur(e,["terms","options"],"profile");e.discardDraft=()=>a.discard();function u(){t.get("/api/user/default").then(m=>{let g=m.data||{};g.terms&&(e.terms=g.terms.join(` +`)),e.options=Object.assign({},e.options,g.options),a.restore()})}u();let c=null;e.saveDefault=m=>{if(m&&m.preventDefault&&m.preventDefault(),e.saving)return;let g=a.checkpoint(),v={terms:e.terms.split(` +`).map(h=>h.trim()).filter(h=>h.length>0),options:e.options};e.saving=!0,e.error=null,t.post("/api/user/default",v).then(()=>{a.accept(g),e.saving=!1,e.message=e.unsavedChanges?null:"Saved",c&&i.cancel(c),c=i(()=>{e.message=null},2500)},h=>{e.saving=!1;let k=h&&h.data&&h.data.error,A="Unable to save your defaults. Please try again.";Promise.all([s("ERRORS."+k),s("ERRORS.unknown_error")]).then(([w,b])=>{e.error=k&&w!==b?w:A},()=>{e.error=A})})},e.deleteAccount=()=>{e.deletingAccount||!e.confirmDeleteAccount||e.deleteUsername!==e.user?.username||(e.deletingAccount=!0,t.delete("/api/user").then(()=>{window.location.href="/"},()=>{e.deletingAccount=!1,e.deleteError="Unable to delete the account. Please try again."}))}},ju=function(e,t,s){e.repoId=null,e.repoUrl=null,e.claim=()=>{t.post("/api/repo/claim",{repoId:e.repoId,repoUrl:e.repoUrl}).then(i=>{s.url("/dashboard")},i=>{e.error=i.data,e.claimForm.repoUrl.setValidity("not_found",!1),e.claimForm.repoId.setValidity("not_found",!1)})}},Gu=function(e,t,s,i,o){e.user&&!e.user.status&&s.url("/dashboard"),e.watch("user.status",()=>{e.user&&!e.user.status&&s.url("/dashboard")}),e.features=[{key:"anonymize",num:"01",eyebrow:"Anonymize",title:"Double-anonymous,",accent:"your rules.",text:"Choose what reviewers may see: links, images, PDFs, notebooks, GitHub Pages. Add your own terms, with regex if you need it, and pick the expiration date.",cta:"Start an anonymization",href:"/anonymize",url:"anonymous.4open.science/anonymize",img:"/imgs/anonymize.png",alt:"The anonymize form: source repository, terms to redact, options and a live README preview"},{key:"review",num:"02",eyebrow:"Review",title:"Reviewers browse",accent:"the real thing.",text:"Highlighted source code, rendered PDFs, images, and notebooks, in a familiar file explorer. GitHub Pages is also supported.",cta:"Open the example",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/",target:"_self",url:"anonymous.4open.science/r/840c8c57-\u2026",img:"/imgs/explorer.png",alt:"The repository explorer with a file tree and a rendered README"},{key:"manage",num:"03",eyebrow:"Manage",title:"One dashboard,",accent:"until the decision.",text:"Monitor views, edit configuration, remove or update your repository. Program chairs can group submissions under a conference with one shared expiry.",cta:"Open the dashboard",href:"/dashboard",needsUser:!0,url:"anonymous.4open.science/dashboard",img:"/imgs/dashboard.png",alt:"The dashboard listing anonymized repositories with status, views and expiry"}],e.feature=e.features[0].key,e.selectFeature=function(u){e.feature=u},e.featureHref=function(u){return u.needsUser&&!e.user?"/signin":u.href},e.featureTarget=function(u){return u.needsUser&&!e.user?"_self":u.target||void 0},e.featureKeydown=function(u,c){let m={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1,Home:"first",End:"last"}[u.key];if(m===void 0)return;u.preventDefault();let g=e.features.length,v=m==="first"?0:m==="last"?g-1:(c+m+g)%g;e.feature=e.features[v].key,o(()=>{let h=i.document.getElementById("feature-tab-"+e.feature);h&&h.focus()})},e.demoText=`# DeepLearnUtils Developed by Jane Smith at MIT CSAIL. See Smith et al., "Attention That Works," 2026. -Contact: jane.smith@mit.edu`,e.demoTerms="Jane Smith, Smith, MIT CSAIL, jane.smith@mit.edu",e.demoParts=function(){let p=(e.demoTerms||"").split(/[,\n]/).map(m=>m.trim()).filter(Boolean).sort((m,E)=>E.length-m.length),f=m=>m.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(!p.length)return[{text:e.demoText}];let g=new RegExp("("+p.map(f).join("|")+")","gi"),y={},b=0;return(e.demoText||"").split(g).filter(m=>m!=="").map(m=>{let E=p.find(P=>P.toLowerCase()===m.toLowerCase());return E?(y[E.toLowerCase()]||(y[E.toLowerCase()]=++b),{text:String(y[E.toLowerCase()]),redacted:!0,original:m}):{text:m}})},e.demoCount=()=>e.demoParts().filter(p=>p.redacted).length,e.cards=[{key:"repositories",total:0,label:"repositories anonymized"},{key:"users",total:0,label:"researchers"},{key:"pageViews",total:0,label:"page views"},{key:"pullRequests",total:0,label:"pull requests"}];function r(){t.get("/api/stat/").then(p=>{e.stat=p.data,e.cards[0].total=p.data.nbRepositories,e.cards[1].total=p.data.nbUsers,e.cards[2].total=p.data.nbPageViews,e.cards[3].total=p.data.nbPullRequests}).catch(()=>{})}r();function a(p){let f={series:p,bars:[],viewW:100,deltaToday:0,pctChange:0,pctAbs:0,isUp:!0};if(!p||p.length<2)return f;let g=new Array(p.length-1);for(let k=1;k=2){let k=g[y-2];k&&(f.pctChange=(f.deltaToday-k)/k*100)}return f.pctAbs=Math.round(Math.abs(f.pctChange)),f.isUp=f.pctChange>=0,f}e.history={repositories:a([]),users:a([]),pageViews:a([]),pullRequests:a([])},t.get("/api/stat/history?days=60").then(p=>{let f=p.data||[];e.history={repositories:a(f.map(g=>g.nbRepositories||0)),users:a(f.map(g=>g.nbUsers||0)),pageViews:a(f.map(g=>g.nbPageViews||0)),pullRequests:a(f.map(g=>g.nbPullRequests||0))}}).catch(()=>{})},fl=function(e,t,o,i,s,r){let a=pt();e.on("routeLeave",function(){$('[data-toggle="tooltip"]').tooltip("dispose")}),e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),a.timeout(()=>{$('[data-toggle="tooltip"]').tooltip()},250),e.quotaExpanded=!1,e.closeQuota=()=>{e.quotaExpanded=!1,Ge(()=>document.querySelector(".dashboard-quota > summary")?.focus())},xt()(document,"click",R=>{e.quotaExpanded&&!R.target.closest?.(".dashboard-quota")&&(e.quotaExpanded=!1)}),e.filtersExpanded=!1,e.projectView="all",e.selectedProject=null,e.projectName="",e.nameSaving=!1,e.nameError="",e.nameMessage="",e.needsAttention=R=>R.status==="error"||R._broken||f(R.status)==="progress"&&R._stale,e.attentionCount=()=>e.dashboardTotals?.attention??e.items.filter(e.needsAttention).length,e.hasProjects=()=>(e.dashboardTotals?.total??e.items.length)>0,e.setProjectView=R=>{e.projectView=R,R==="attention"&&(e.filters.status.error=!0,e.filters.status.progress=!0)},e.projectDetailsId=R=>"project-details-"+encodeURIComponent(R._type+":"+(R._id||R._source||"unknown")),e.showProjectDetails=async R=>{e.selectedProject=R,e.projectName=R.projectName||"",e.nameError="",e.nameMessage="",await Ge();let K=document.getElementById(e.projectDetailsId(R));K?.focus(),K?.scrollIntoView?.({block:"nearest"})},e.closeProjectDetails=R=>{e.selectedProject=null,Ge(()=>document.querySelector(`[data-project-actions="${encodeURIComponent(R._type+":"+R._id)}"]`)?.focus())},e.saveProjectName=async R=>{if(e.nameSaving||!R._id)return;let K=e.projectName.trim();if(K.length>100){e.nameError="Use 100 characters or fewer.";return}e.nameSaving=!0,e.nameError="",e.nameMessage="";try{let te=await t.post("/api/user/project-name",{type:R._type,id:R._id,name:K});R.projectName=te.data.name,R._label=R.projectName||R._fallbackLabel,e.selectedProject===R&&(e.nameMessage=K?"Project name saved.":"Default project name restored."),_||(e.dashboardCursor=null,await L(),e.selectedProject===R&&(e.selectedProject=e.items.find(ve=>ve._type===R._type&&ve._id===R._id)||null))}catch{e.selectedProject===R&&(e.nameError="The project name could not be saved. Try again.")}finally{e.nameSaving=!1}},e.copyingId=null,e.copyLink=async R=>{if(!R._viewUrl||e.copyingId)return;let K=new URL(R._viewUrl,s.location.origin).href;e.copyingId=R._type+":"+R._id;try{await al(K),e.addToast({title:"Link copied",body:"The anonymous link is ready to share."})}catch{e.addToast({title:"Copy this anonymous link",body:K})}finally{e.copyingId=null}},e.items=[],e.search="",e.loading=!0,e.statusKeyLabels={ready:"Ready",progress:"In progress",error:"Error",expired:"Expired",removed:"Removed"};let p=["queue","download","downloaded","preparing","anonymizing"];function f(R){return R==="ready"||R==="error"?R:R==="expired"||R==="expiring"?"expired":R==="removed"||R==="removing"?"removed":(p.indexOf(R)>-1,"progress")}let g=7200*1e3,y="dashboard.filterPrefs",b={typeFilter:"all",filters:{status:{ready:!0,progress:!0,error:!0,expired:!0,removed:!1}},orderBy:"-anonymizeDate"},m=loadFilterPrefs(y)||{};e.typeFilter=m.typeFilter||b.typeFilter,e.filters={status:Object.assign({},b.filters.status,m.filters&&m.filters.status||{})},e.orderBy=m.orderBy||b.orderBy;let E={_name:{label:"Anonymous ID",defaultDesc:!1},_label:{label:"Project",defaultDesc:!1},anonymizeDate:{label:"Anonymize date",defaultDesc:!0},status:{label:"Status",defaultDesc:!1},lastView:{label:"Last view",defaultDesc:!0},pageView:{label:"Views",defaultDesc:!0},"options.expirationDate":{label:"Expiration",defaultDesc:!1}};e.sortFields=E,e.sortField=()=>e.orderBy.replace(/^-/,""),e.sortDesc=()=>e.orderBy.charAt(0)==="-",e.sortLabel=()=>{let R=E[e.sortField()];return R?R.label:"Custom"},e.isSortedBy=R=>e.sortField()===R,e.setSort=(R,K)=>{typeof K!="boolean"&&(K=e.isSortedBy(R)?!e.sortDesc():!!(E[R]&&E[R].defaultDesc)),e.orderBy=(K?"-":"")+R},e.toggleSortDirection=()=>{e.setSort(e.sortField(),!e.sortDesc())},e.watchGroup(["typeFilter","orderBy"],()=>{saveFilterPrefs(y,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(y,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})},!0),r.load().then(R=>{e.quota=R},console.error);function P(R,K,te,ve,x,ue){R.pageView||(R.pageView=0),R.lastView||(R.lastView=""),R.options=R.options||{},R.options.terms=(R.options.terms||[]).filter(Ee=>Ee),R._id=K||"",R._source=ve,R._broken=!K,R._name=K||ve||"(unnamed)",R._fallbackLabel=R._type==="gist"?"Gist "+(K||ve||"without an ID"):ve||te||R._name,R._label=R.projectName||R._fallbackLabel,R._editUrl=K?x:null,R._viewUrl=K?ue:null,R._broken&&(R.status="error",R.statusMessage="incomplete_record"),R._statusKey=f(R.status);let he=R.anonymizeDate||R.lastView;return R._stale=R._statusKey==="progress"&&!!he&&Date.now()-new Date(he).getTime()>g,R.status==="expired"||R.status==="expiring"?R._expiry={kind:"expired",date:R.options.expirationDate}:R.status!=="ready"?R._expiry={kind:"none"}:R.options.expirationMode==="never"||!R.options.expirationDate?R._expiry={kind:"never"}:R._expiry={kind:"date",date:R.options.expirationDate},R}function k(R){return t.get(R).then(K=>K.data||[],K=>(console.error(K),[]))}function v(){return e.loading=!0,i.all([k("/api/user/anonymized_repositories"),k("/api/user/anonymized_pull_requests"),k("/api/user/anonymized_gists")]).then(R=>{let K=R[0],te=R[1],ve=R[2],x=[];K.forEach(ue=>{ue._type="repo";let he=ue.source||{};x.push(P(ue,ue.repoId,ue.repoId,he.fullName,"/anonymize/"+ue.repoId,"/r/"+ue.repoId+"/"))}),te.forEach(ue=>{ue._type="pr";let he=ue.source||{};x.push(P(ue,ue.pullRequestId,ue.pullRequestId,he.repositoryFullName?he.repositoryFullName+"#"+he.pullRequestId:void 0,"/pull-request-anonymize/"+ue.pullRequestId,"/pr/"+ue.pullRequestId+"/"))}),ve.forEach(ue=>{ue._type="gist";let he=ue.source||{};x.push(P(ue,ue.gistId,ue.gistId,he.gistId,"/gist-anonymize/"+ue.gistId,"/gist/"+ue.gistId+"/"))}),e.items=x,e.loading=!1})}let S=0,_=!1;e.dashboardCursor=null,e.dashboardError="";function M(R){let K=R.source||{};return R._type==="repo"?P(R,R.repoId,R.repoId,K.fullName,"/anonymize/"+R.repoId,"/r/"+R.repoId+"/"):R._type==="pr"?P(R,R.pullRequestId,R.pullRequestId,K.repositoryFullName?K.repositoryFullName+"#"+K.pullRequestId:void 0,"/pull-request-anonymize/"+R.pullRequestId,"/pr/"+R.pullRequestId+"/"):P(R,R.gistId,R.gistId,K.gistId,"/gist-anonymize/"+R.gistId,"/gist/"+R.gistId+"/")}function L(R=!1){if(_)return v();let K=++S;return e.loading=!R,e.loadingMore=R,e.dashboardError="",t.get("/api/user/dashboard",{params:{q:e.search,type:e.typeFilter,sort:e.orderBy,statuses:Object.keys(e.filters.status).filter(te=>e.filters.status[te]!==!1).join(",")||"none",attention:String(e.projectView==="attention"),cursor:R?e.dashboardCursor:void 0}}).then(te=>{if(K===S){if(!Array.isArray(te.data?.items))return _=!0,v();e.items=(R?e.items:[]).concat(te.data.items.map(M)),e.dashboardCursor=te.data.cursor,e.dashboardTotals=te.data}},te=>{if(K===S){if(te.status===404)return _=!0,v();e.dashboardError="Projects could not be loaded. Please try again."}}).finally(()=>{K===S&&(e.loading=!1,e.loadingMore=!1)})}e.loadMoreProjects=()=>L(!0);let q;e.watchGroup(["search","typeFilter","orderBy","projectView"],()=>{_||(q&&a.timeout.cancel(q),q=a.timeout(()=>L(),150))},!1),e.watch("filters",()=>{_||L()},!0,!1),e.on("dispose",()=>{S++}),L(),e.openItem=(R,K)=>{if(!R._viewUrl)return;let te=K&&K.target;te&&te.closest&&te.closest("a, button, .dropdown, input")||(s.location.href=R._viewUrl)},e.hiddenStatusCount=()=>Object.keys(e.filters.status).filter(R=>e.filters.status[R]===!1).length,e.hasHiddenStatus=()=>e.hiddenStatusCount()>0,e.hasActiveFilters=()=>e.projectView!=="all"||e.typeFilter!=="all"||e.search.trim().length>0||Object.keys(e.filters.status).some(R=>e.filters.status[R]===!1),e.showClearFilters=()=>e.search.trim().length>0||e.typeFilter!=="all"||e.hiddenStatusCount()>1,e.clearFilters=()=>{e.projectView="all",e.typeFilter="all",e.search="",Object.keys(e.filters.status).forEach(R=>{e.filters.status[R]=!0})};function G(R,K,te,ve){t.get("/api/repo/"+R).then(async x=>{let ue=ve!==void 0&&ve!==x.data.status;for(let he of e.items)if(he._type==="repo"&&he.repoId==R){ue=ue||he.status!==x.data.status;let Ee=e.needsAttention(he);he.status=x.data.status,he.statusMessage=x.data.statusMessage,he._statusKey=f(he.status),he._statusKey!=="progress"&&(he._stale=!1);let ye=e.needsAttention(he);e.dashboardTotals&&Ee!==ye&&(e.dashboardTotals.attention=Math.max(0,e.dashboardTotals.attention+(ye?1:-1)));break}if(ue&&!_){e.dashboardCursor=null;let he=e.selectedProject;await L(),he&&e.selectedProject===he&&(e.selectedProject=e.items.find(Ee=>Ee._type===he._type&&Ee._id===he._id)||null)}if(x.data.status=="ready"||x.data.status=="error"||x.data.status=="removed"||x.data.status=="expired"){K(x.data);return}a.timeout(()=>G(R,K,te,x.data.status),2500)},te)}let se=R=>R==="repo"?"repository":R==="gist"?"gist":"pull request",ee=R=>R==="repo"?"/api/repo":R==="gist"?"/api/gist":"/api/pr";e.removeItem=R=>{let K=se(R._type);if(confirm(`Are you sure that you want to remove the ${K} ${R._id}?`)){let te=Ue({title:`Removing ${R._id}...`,date:new Date,body:`The ${K} ${R._id} is going to be removed.`});e.addToast(te);let ve=`${ee(R._type)}/${R._id}`;t.delete(ve).then(()=>{R._type==="repo"?G(R._id,()=>{te.title=`${R._id} is removed.`,te.body=`The ${K} ${R._id} is removed.`},void 0,R.status):(te.title=`${R._id} is removed.`,te.body=`The ${K} ${R._id} is removed.`,L())},x=>{te.title=`Error during the removal of ${R._id}.`,te.body=x.body,L()})}},e.refreshItem=R=>{let K=se(R._type),te=Ue({title:`Refreshing ${R._id}...`,date:new Date,body:`The ${K} ${R._id} is going to be refreshed.`});e.addToast(te);let ve=ue=>{te.title=`Error during the refresh of ${R._id}.`,te.body=ue.data?.error||ue.body||"The refresh could not be completed. Please try again.",L()},x=`${ee(R._type)}/${R._id}/refresh`;t.post(x).then(()=>{R._type==="repo"?G(R._id,ue=>{if(ue.status!=="ready"){ve({body:ue.statusMessage||`The repository is ${ue.status}.`});return}te.title=`${R._id} is refreshed.`,te.body=`The ${K} ${R._id} is refreshed.`},ve,R.status):(te.title=`${R._id} is refreshed.`,te.body=`The ${K} ${R._id} is refreshed.`,L())},ve)},e.extendItem=R=>{let K=se(R._type),te=Ue({title:`Extending ${R._id}...`,date:new Date,body:`The expiration of ${K} ${R._id} is going to be extended by 6 months.`});e.addToast(te);let ve=`${ee(R._type)}/${R._id}/extend`;t.post(ve).then(()=>{R._type==="repo"?G(R._id,()=>{te.title=`${R._id} is extended.`,te.body=`The expiration of ${K} ${R._id} is extended by 6 months.`},void 0,R.status):(te.title=`${R._id} is extended.`,te.body=`The expiration of ${K} ${R._id} is extended by 6 months.`,L())},x=>{te.title=`Error during the extension of ${R._id}.`,te.body=x.data&&x.data.error||x.body,L()})},e.itemFilter=R=>{if(e.projectView==="attention"&&!e.needsAttention(R)||e.typeFilter!=="all"&&R._type!==e.typeFilter||e.filters.status[R._statusKey]===!1)return!1;let K=e.search.trim().toLowerCase();return!!(K.length==0||R._label&&String(R._label).toLowerCase().indexOf(K)>-1||R._source&&String(R._source).toLowerCase().indexOf(K)>-1||R._id&&String(R._id).toLowerCase().indexOf(K)>-1||R.conference&&String(R.conference).toLowerCase().indexOf(K)>-1)}};var ml=function(e,t,o){let i=pt();e.repoId=o.repoId,e.reviewUrl=window.location.origin+"/r/"+encodeURIComponent(o.repoId)+"/",e.repo=null,e.progress=0,e.rateLimitResetAt=0,e.rateLimitCountdown="",e.shareUrl=(window.location?.origin||"")+"/r/"+encodeURIComponent(e.repoId)+"/",e.copied=!1;let s=null;e.copyShareUrl=async()=>{try{await al(e.shareUrl),e.copied=!0,s&&i.timeout.cancel(s),s=i.timeout(()=>{e.copied=!1},2e3)}catch{e.addToast?.({title:"Copy this anonymous link",body:e.shareUrl})}};var r=null;let a=null,p=!1;function f(y){e.rateLimitResetAt=y,r&&i.interval.cancel(r);function b(){var m=Math.max(0,Math.ceil((y-Date.now())/1e3));if(m<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,i.interval.cancel(r),r=null;else{var E=Math.floor(m/60),P=m%60;e.rateLimitCountdown=E>0?E+"m "+P+"s":P+"s"}}b(),r=i.interval(b,1e3)}e.on("dispose",function(){p=!0,r&&i.interval.cancel(r),a&&i.timeout.cancel(a)});function g(y){if(!y)return y;var b=y.match(/^rate_limited:(\d+)$/);return b?(f(parseInt(b[1],10)),null):(e.rateLimitResetAt=0,y)}e.getStatus=()=>{p||t.get("/api/repo/"+e.repoId,{repoId:e.repoId,repoUrl:e.repoUrl}).then(y=>{if(!p){e.repo=y.data,y.data.rateLimitResetAt?f(y.data.rateLimitResetAt):e.repo.statusMessage=g(e.repo.statusMessage),e.repo.status=="ready"?e.progress=100:e.repo.status=="queue"?e.progress=10:e.repo.status=="downloaded"?e.progress=50:e.repo.status=="download"||e.repo.status=="preparing"?e.progress=25:e.repo.status=="anonymizing"&&(e.progress=75);var b=!["ready","removed","expired"].includes(e.repo.status);e.repo.status=="error"&&!e.rateLimitResetAt&&(b=!1),b&&(a=i.timeout(e.getStatus,2e3))}},y=>{e.error=y.data.error})},e.getStatus()},ps=function(e,t,o,i,s,r,a){il(),e.renderRedacted=sl,e.sourceUrl="",e.workspaceOpen=!1,e.sourceUrlError="",e.previewStatus="idle",e.sourceLoading=!1,e.mobilePane="settings";let p=window.matchMedia?.("(max-width: 767px)");e.mobileWorkspace=!!p?.matches,p?.addEventListener&&xt()(p,"change",w=>{e.mobileWorkspace=w.matches}),e.selectMobilePane=w=>{e.mobilePane=w};let f=0,g=!1,y=new Set,b=(w,A=!1)=>!g&&w.generation===f&&w.url===e.sourceUrl.trim()&&w.connection===e.githubConnection&&(!A||w.branch===e.source.branch),m=()=>{let w={generation:f,url:e.sourceUrl.trim(),connection:e.githubConnection,branch:e.source.branch};return y.add(w),e.sourceLoading=!0,w},E=w=>{y.delete(w),g||(e.sourceLoading=[...y].some(A=>b(A)))};e.on("dispose",()=>{g=!0,f++});let P=null,k=w=>w.gistId&&!w.repo?"gist:"+w.gistId.toLowerCase():(w.owner+"/"+w.repo).toLowerCase()+(w.pullRequestId?"/pull/"+w.pullRequestId:""),v=hi(e,["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"],"anonymize:"+(s.path?.()||"")),S=null,_=null,M=null;e.hostingReview=!1,e.previewExpanded=!1,e.taskValidationError="",e.editRepository=()=>{e.mobilePane="settings",e.previewExpanded=!1,Ge(()=>document.querySelector(".anonymize-fields .is-invalid")?.focus())},e.submitRepository=w=>{if(e.taskValidationError="",!(e.sourceLoading||e.billingBusy||e.hostingSaving||e.billingPending)){if(V()||e.anonymize?.invalid||e.sourceUrlError){e.taskValidationError="Check the highlighted fields before continuing.",e.editRepository();return}return e.hostingNeedsPayment()?e.checkoutRepository():e.anonymizeRepo(w)}},e.hostingPayment=!1,e.hostingAlternatives=!1,e.hostingPrice=w=>w.amount==null?"Price shown at checkout":new Intl.NumberFormat(void 0,{style:"currency",currency:w.currency,minimumFractionDigits:0,maximumFractionDigits:2}).format(w.amount/100)+(w.interval==="year"?" billed annually":" billed monthly"),e.hostingPlan="author_monthly",e.hostingSaving=!1,e.selectedHostingPlan=()=>e.authorPlans().find(w=>w.id===e.hostingPlan)||e.authorPlans()[0];let L=()=>t.get("/api/user/quota").then(w=>{e.hostingQuota=w.data});us(e,t,async()=>{await L(),e.hostingQuotaBlocked=!1},{confirmedMessage:"Hosting status refreshed. Your draft is ready to continue."}),L().catch(()=>{}),e.authorPlans=()=>(e.billing?.plans||[]).filter(w=>["author_monthly","author_annual"].includes(w.id)),e.hasAuthorHosting=()=>["author_monthly","author_annual"].includes(e.billing?.allowance?.plan),e.hostingNeedsPayment=()=>!e.billing?.enabled||e.detectedType!=="repo"||e.hasAuthorHosting()||e.isUpdate&&e.role!=="owner"?!1:!!(e.options?.expirationMode==="never"&&!e._existingNever||!e.conference&&e.hostingQuotaBlocked),e.checkoutRepository=async(w=!1)=>{if(!(e.hostingSaving||e.billingBusy||!e.billing?.csrf||e.sourceLoading)){e.hostingSaving=!0,e.billingError="";try{let A=v.checkpoint(),D=JSON.stringify(A);(!_||D!==M)&&(_=(await t.post("/api/billing/draft",{path:s.path(),values:A},{headers:{"x-csrf-token":e.billing.csrf}})).data.id,M=D);let I=e.authorPlans().find(z=>z.id===e.hostingPlan)||e.authorPlans()[0];if(!w&&!I)throw new Error("No author plan available");await e.checkout(w?"author_pass":I.id,w?e.repoId:"",{draftId:_})}catch{e.billingError="Your draft could not be saved for checkout. Your form is unchanged. Please try again."}finally{e.hostingSaving=!1}}},e.useDatedHosting=()=>{e.options.expirationMode="remove"},e.discardDraft=async()=>{v.discard(),e.workspaceOpen=!!e.sourceUrl,e.error=null,e.sourceUrl?await e.urlSelected(!0):(f++,e.sourceLoading=!1,e.detectedType=null,e.details=null,e.sourceUrlError="",Me.cancel(),U.cancel(),de.cancel(),e.previewStatus="idle")},e.githubConnection=void 0,e.githubConnections=null,e.gistOAuthRequired=!1,e.gistAppRequired=!1;let q=()=>{let w={};for(let A of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])w[A]=e[A];sessionStorage.setItem("github-access-draft",JSON.stringify({path:s.path(),savedAt:Date.now(),draft:w}))};e.connectGistApp=()=>{q(),window.location.href="/github/app/login?returnTo="+encodeURIComponent(s.path())},e.connectGistOAuth=()=>{q(),window.location.href="/github/login?returnTo="+encodeURIComponent(s.path())},e.grantGitHubAccess=()=>{q();let w=s.path(),A=ue(e.sourceUrl)||"",D=e.githubConnections?.appConnected?"/github/app/install":"/github/app/login";window.location.href=D+"?returnTo="+encodeURIComponent(w)+"&repository="+encodeURIComponent(A)+"&install=1"},e.chooseGitHubConnection=async w=>{e.githubConnection=w,e.readme="",e.sourceUrl&&await Ee()},e.detectedType=null,e.repoId="",e.pullRequestId="",e.gistId="",e.terms="",e.defaultTerms="",e.branches=[],e.source={branch:"",commit:""},e.options={expirationMode:"remove",expirationDate:new Date,update:!1,image:!0,pdf:!0,notebook:!0,link:!0,body:!0,title:!0,origin:!1,diff:!0,content:!0,comments:!0,username:!0,date:!0};function G(){let w=new Date;return w.setMonth(w.getMonth()+6),w}e.options.expirationDate=G();function se(w){let A=w.getFullYear(),D=String(w.getMonth()+1).padStart(2,"0"),I=String(w.getDate()).padStart(2,"0");return`${A}-${D}-${I}`}e.minExpirationDate=se(new Date);let ee=new Date;ee.setFullYear(ee.getFullYear()+1),e.maxExpirationDate=se(ee),e.anonymize_readme="",e.readme="",e.html_readme="",e.isUpdate=!1,e.previousConfigurations=[],e.previousConfigurationId="";let R,K=w=>String(w||"").replace(/\/$/,"").replace(/\.git$/i,"").toLowerCase();async function te(){if(e.isUpdate||i.repoId||i.pullRequestId||i.gistId)return;let w={generation:f,url:e.sourceUrl.trim(),connection:e.githubConnection};try{R||(R=t.get("/api/user/anonymized_repositories").then(I=>I.data));let A=await R;if(!b(w))return;let D=K(ue(w.url));e.previousConfigurations=A.filter(I=>I.repoId&&I.options&&K(I.source?.fullName)===D).sort((I,z)=>(Date.parse(z.anonymizeDate)||0)-(Date.parse(I.anonymizeDate)||0)),e.previousConfigurationId=e.previousConfigurations[0]?.repoId||""}catch{R=void 0}}e.existingConfigurationUrl=()=>{let w=e.previousConfigurations.find(A=>A.repoId===e.previousConfigurationId);return w?"/anonymize/"+encodeURIComponent(w.repoId):null};function ve(w){t.get("/api/user/default").then(A=>{let D=A.data;D.terms&&(e.defaultTerms=D.terms.join(` -`)),e.options=Object.assign({},e.options,D.options),e.options.expirationDate=D.options&&D.options.expirationDate?new Date(D.options.expirationDate):G(),!i.repoId&&!i.pullRequestId&&!i.gistId&&!e.anonymize?.terms?.dirty&&(e.terms=e.defaultTerms),w&&w()})}function x(w,A,D){e.anonymize&&e.anonymize[w]&&e.anonymize[w].setValidity(A,D)}function ue(w){try{let A=parseGithubUrl(w);if(A&&A.owner&&A.repo)return A.owner+"/"+A.repo}catch{}return null}e.accessRepairAllowed=!1,e.repairingGitHubAccess=!1,e.accessRepairMessage="",e.repairGitHubAccess=async()=>{if(!e.accessRepairAllowed||e.repairingGitHubAccess||!e.githubConnections?.appEnabled||!i.repoId||e.role!=="owner"||e.githubConnection!=="github-app"||ue(e.sourceUrl)!==e._originalFullName)return;e.repairingGitHubAccess=!0,e.accessRepairMessage="";let w=m();try{let A=await t.get("/github/connections");if(e.githubConnections=A.data,!A.data.appEnabled)return;let D=await t.post("/github/connections/migrate",{type:"repository",id:i.repoId,connection:"github-app"},{headers:{"X-CSRF-Token":A.data.csrf}});if(!b(w))return;e.error=null,D.data.fullName&&(e._originalFullName=D.data.fullName,e.source.fullName=D.data.fullName,e.sourceUrl="https://github.com/"+D.data.fullName),e.accessRepairMessage="GitHub access repaired. Your anonymous URL and published commit are unchanged.",await e.urlSelected(!0)}catch{b(w)&&(e.accessRepairMessage="Unable to repair GitHub access. Check the App's repository permissions in Manage access, then retry. Your published snapshot has not been replaced.")}finally{e.repairingGitHubAccess=!1,E(w)}},e.reconnectingSource=!1,e.reconnectRepositoryId=void 0,e.reconnectSource=async()=>{if(confirm("Reconnect to the repository currently at this GitHub URL? Review its branch and commit before saving. Saving will replace the published snapshot.")){e.reconnectingSource=!0,e.reconnectRepositoryId=void 0,e.source.commit="",e.source.branch="",e.readme="",e.branches=[];try{await be()}catch{}}};function he(){return e.reconnectingSource||!e.isUpdate||!e._originalRepositoryID?void 0:ue(e.sourceUrl)===e._originalFullName?e._originalRepositoryID:void 0}async function Ee(){e._preservingDraft=!0;try{await e.urlSelected(!0)}finally{e._preservingDraft=!1}}async function ye(){let w=new URLSearchParams(window.location.search).get("billingDraft");if(w){v.restore();try{let D=(await t.get("/api/billing/draft/"+encodeURIComponent(w))).data;if(D.path!==s.path())throw new Error("Wrong task");S=D.values.conference||null;for(let I of["sourceUrl","terms","repoId","source","options","conference","githubConnection"])Object.prototype.hasOwnProperty.call(D.values,I)&&(e[I]=D.values[I]);return e.options?.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate)),_=D.id,M=JSON.stringify(v.checkpoint()),e.draftRestored=!0,e.hostingReview=!0,e.sourceUrl&&await Ee(),s.replace?.(s.path()),!0}catch{e.billingError="The checkout draft could not be restored. Retry by reloading this page; any local draft is still available."}}let A;try{A=JSON.parse(sessionStorage.getItem("github-access-draft")||"null")}catch{return!1}if(!A||A.path!==s.path()||Date.now()-A.savedAt>=30*6e4)return v.restore()?(e.sourceUrl&&await Ee(),!0):!1;v.restore();for(let D of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])Object.prototype.hasOwnProperty.call(A.draft,D)&&(e[D]=A.draft[D]);return e.options.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate)),await Ee(),sessionStorage.removeItem("github-access-draft"),!0}ve(()=>{!i.repoId&&!i.pullRequestId&&!i.gistId&&a(ye,0),i.repoId&&i.repoId!=""&&(e.isUpdate=!0,e.detectedType="repo",e.repoId=i.repoId,t.get("/api/repo/"+e.repoId).then(async w=>{e.accessRepairAllowed=!["removed","archived","preparing","queue","download","removing","expiring"].includes(w.data.status),e.githubConnection=w.data.connection||"oauth",e.sourceUrl="https://github.com/"+w.data.source.fullName,e._originalFullName=w.data.source.fullName,e.terms=w.data.options.terms.filter(A=>A).join(` -`),e.source=w.data.source,e.role=w.data.role||"owner",e._existingNever=w.data.options.expirationMode==="never",e.coauthors=w.data.coauthors||[],e._originalBranch=w.data.source.branch,e.options=Object.assign({},e.options,w.data.options),e.conference=w.data.conference,e._originalConference=w.data.conference,e.repositoryID=w.data.source.repositoryID,e._originalRepositoryID=w.data.source.repositoryID,w.data.options.expirationDate&&(e.options.expirationDate=new Date(w.data.options.expirationDate)),P=k(parseGithubUrl(e.sourceUrl)),!await ye()&&(await Promise.all([be(),Le()]),F())},()=>{s.url("/404")})),i.pullRequestId&&i.pullRequestId!=""&&(e.isUpdate=!0,e.detectedType="pr",e.pullRequestId=i.pullRequestId,t.get("/api/pr/"+e.pullRequestId).then(async w=>{if(e.githubConnection=w.data.connection||"oauth",e.sourceUrl="https://github.com/"+w.data.source.repositoryFullName+"/pull/"+w.data.source.pullRequestId,e.terms=w.data.options.terms.filter(A=>A).join(` -`),e.source=w.data.source,e.options=Object.assign({},e.options,w.data.options),e.conference=w.data.conference,e._originalConference=w.data.conference,w.data.options.expirationDate&&(e.options.expirationDate=new Date(w.data.options.expirationDate)),P=k(parseGithubUrl(e.sourceUrl)),!await ye())try{await X()}catch{}},()=>{s.url("/404")})),i.gistId&&i.gistId!=""&&(e.isUpdate=!0,e.detectedType="gist",e.gistId=i.gistId,t.get("/api/gist/"+e.gistId).then(async w=>{e.sourceUrl="https://gist.github.com/"+w.data.source.gistId,e.terms=w.data.options.terms.filter(A=>A).join(` -`),e.source=w.data.source,e.options=Object.assign({},e.options,w.data.options),e.conference=w.data.conference,e._originalConference=w.data.conference,w.data.options.expirationDate&&(e.options.expirationDate=new Date(w.data.options.expirationDate)),P=k(parseGithubUrl(e.sourceUrl)),!await ye()&&await Q()},()=>{s.url("/404")}))}),t.get("/github/connections").then(w=>{e.githubConnections=w.data,!i.repoId&&!i.pullRequestId&&!i.gistId&&e.githubConnection===void 0&&w.data.appEnabled&&w.data.appConnected&&(e.githubConnection="github-app",e.sourceUrl&&e.workspaceOpen&&Ee())}).catch(()=>{}),e.urlSelected=async(w=!1)=>{let A=++f;e.previousConfigurations=[],e.previousConfigurationId="";let D;try{D=parseGithubUrl(e.sourceUrl.trim())}catch{e.sourceLoading=!1,Me.cancel(),U.cancel(),de.cancel(),e.previewStatus="idle",e.sourceUrlError=e.sourceUrl?"Please provide a valid GitHub URL.":"",x("sourceUrl","github",!1);return}let I=k(D),z=w||P===I;P=I,e.sourceUrlError="",x("sourceUrl","github",!0);let B=document.activeElement?.id==="sourceUrl-landing";e.workspaceOpen=!0,setTimeout(()=>{let ie=window.document.getElementById("sourceUrl");if(ie){try{ie.setSelectionRange(0,0)}catch{}ie.scrollLeft=0}},50),B&&a(()=>document.getElementById("sourceUrl")?.focus(),0),e.reconnectingSource=!1,e.reconnectRepositoryId=void 0,!z&&!e.isUpdate&&(e.repoId="",e.pullRequestId="",e.gistId=""),e.details=null,e.branches=[],z||(e.source={type:"GitHubStream",branch:"",commit:""}),Me.cancel(),U.cancel(),de.cancel(),J.clear(),H.clear(),e.previewStatus="idle",e.anonymize_readme="",e.readme="",e.html_readme="",e.detectedType=null,e.gistOAuthRequired=!1,e.gistAppRequired=!1,e._preservingDraft=z;try{D.gistId&&!D.repo?(e.detectedType="gist",e.source={gistId:D.gistId},await Q()):D.pullRequestId?(e.detectedType="pr",e.source={repositoryFullName:D.owner+"/"+D.repo,pullRequestId:D.pullRequestId},await X()):(e.detectedType="repo",te(),await Promise.all([be(),Le()]),F())}catch{}finally{A===f&&(e._preservingDraft=!1)}$('[data-toggle="tooltip"]').tooltip()},$('[data-toggle="tooltip"]').tooltip(),e.watch("source.branch",async()=>{if(e.detectedType!=="repo")return;let w=e.branches.filter(D=>D.name==e.source.branch)[0];if(!w)return;!(!e.reconnectingSource&&e.isUpdate&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=w.commit),e.readme=w.readme,await Le(),F()}),e.getBranches=async w=>{let A=parseGithubUrl(e.sourceUrl),D=m();try{let I=await t.get(`/api/repo/${A.owner}/${A.repo}/branches`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&ue(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,force:w===!0||e.reconnectingSource?"1":"0",repositoryID:he()}});if(!b(D))return;e.branches=I.data,e.sourceUnreachable=!1,e.source.branch||(e.source.branch=e.details.defaultBranch);let z=e.branches.filter(B=>B.name==e.source.branch);z.length>0&&(!(!e.reconnectingSource&&!w&&e.isUpdate&&!e.options.update&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=z[0].commit),e.readme=z[0].readme,await Le(w))}catch(I){if(!b(D))return;e.branches=[],e.sourceUnreachable=I&&(I.status===404||I.data&&I.data.error==="repo_not_found");let z=I&&I.data&&I.data.error||(I&&I.status===404?"repo_not_found":"unknown_error");r("ERRORS."+z).then(B=>{e.toasts=e.toasts||[],e.addToast({title:"Error",date:new Date,body:B}),e.error=B},console.error),typeof x=="function"&&x("sourceUrl","missing",!1)}finally{E(D)}};async function be(){let w=parseGithubUrl(e.sourceUrl),A=m();try{N();let D=await t.get(`/api/repo/${w.owner}/${w.repo}/`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&ue(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,repositoryID:he(),force:"1"}});if(!b(A))return;e.details=D.data,e.reconnectingSource&&(e.reconnectRepositoryId=e.details.externalId),e.details&&e.details.id&&(e.repositoryID=e.details.id),e.repoId||(e.repoId=e.details.repo+"-"+generateRandomId(4)),await e.getBranches(e.reconnectingSource)}catch(D){if(!b(A))return;throw D.data&&(r("ERRORS."+D.data.error).then(I=>{e.addToast({title:"Error",date:new Date,body:I}),e.error=I},console.error),j(D.data.error)),x("sourceUrl","missing",!1),D}finally{E(A)}}async function Le(w){if(e.readme&&!w)return e.readme;let A=parseGithubUrl(e.sourceUrl),D=m();try{let I=await t.get(`/api/repo/${A.owner}/${A.repo}/readme`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&ue(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,force:w===!0?"1":"0",branch:e.source.branch,repositoryID:he()}});b(D,!0)&&(e.readme=I.data)}catch{b(D,!0)&&(e.readme="")}finally{E(D)}}function ze(){let w={terms:e.terms?e.terms.split(` -`):[],image:!!e.options.image,link:!!e.options.link,repoId:e.repoId};e.source&&e.source.branch&&(w.branchName=e.source.branch);try{let A=parseGithubUrl(e.sourceUrl);w.repoName=`${A.owner}/${A.repo}`}catch{}return w}function He(w,A,D){let I=null,z=0,B=()=>{if(e.detectedType!==w)return;I&&a.cancel(I);let ie=++z;e.previewStatus="loading",I=a(()=>{I=null;let Z=A();if(!Z){e.previewStatus="idle";return}t.post("/api/anonymize-preview",Z).then(le=>{ie===z&&(D(le.data,Z),e.previewStatus="ready")}).catch(()=>{ie===z&&(e.previewStatus="error")})},200)};return B.cancel=()=>{z++,I&&a.cancel(I),I=null},e.on("dispose",B.cancel),B}e.retryPreview=()=>{e.detectedType==="repo"&&Me(),e.detectedType==="pr"&&U(),e.detectedType==="gist"&&de()};let Me=He("repo",()=>e.readme?{content:e.readme,options:ze()}:null,w=>{if(typeof w?.content!="string")throw Error("Invalid preview response");e.anonymize_readme=w.content;let A="";try{let I=parseGithubUrl(e.sourceUrl),z=e.source.branch||e.details&&e.details.defaultBranch||"main";A=`https://github.com/${I.owner}/${I.repo}/raw/${z}/`}catch{}let D=renderMD(e.anonymize_readme,A);e.html_readme=D,a(Prism.highlightAll,150)});function F(){!e.anonymize||!e.anonymize.terms||(e.termsRegexWarning=!!e.terms&&!!e.terms.match(/[-[\]{}()*+?.,\\^$|#]/g),Me())}async function X(){let w=parseGithubUrl(e.sourceUrl),A=m();try{N();let D=await t.get(`/api/pr/${w.owner}/${w.repo}/${w.pullRequestId}`,{params:{connection:e.githubConnection}});if(!b(A))return;e.details=D.data,e.pullRequestId||(e.pullRequestId=w.repo+"-PR"+w.pullRequestId+"-"+generateRandomId(4))}catch(D){if(!b(A))return;throw D.data&&(r("ERRORS."+D.data.error).then(I=>{e.addToast({title:"Error",date:new Date,body:I}),e.error=I},console.error),j(D.data.error)),x("sourceUrl","missing",!1),D}finally{E(A)}}let J=Ue(new Map);function ne(){let w=new Set,A=e.details&&e.details.pullRequest;if(!A)return w;typeof A.title=="string"&&w.add(A.title),typeof A.body=="string"&&w.add(A.body),typeof A.diff=="string"&&w.add(A.diff);let D=A.comments||[];for(let I of D)typeof I.author=="string"&&w.add(I.author),typeof I.body=="string"&&w.add(I.body);return w}let U=He("pr",()=>{let w=ne(),A=Array.from(w);return A.length===0?null:{contents:A,options:ze()}},(w,A)=>{if(!Array.isArray(w?.contents)||w.contents.length!==A.contents.length||w.contents.some(z=>typeof z!="string"))throw Error("Invalid preview response");let D=A.contents,I=new Map;for(let z=0;zJ.set(B,z))});e.anonymizePrContent=function(w){return w&&(J.has(w)?J.get(w):"")};async function Q(){let w=parseGithubUrl(e.sourceUrl),A=m();try{N(),e.gistOAuthRequired=!1,e.gistAppRequired=!1;let D=await t.get(`/api/gist/source/${w.gistId}`);if(!b(A))return;e.details=D.data,e.gistId||(e.gistId="gist-"+w.gistId.substring(0,6)+"-"+generateRandomId(4))}catch(D){if(!b(A))return;if(D.data?.error==="github_app_reconnect_required"){e.gistAppRequired=!0,x("sourceUrl","missing",!1);return}if(D.data?.error==="github_oauth_required"){e.gistOAuthRequired=!0,x("sourceUrl","missing",!1);return}throw D.data&&(r("ERRORS."+D.data.error).then(I=>{e.addToast({title:"Error",date:new Date,body:I}),e.error=I},console.error),j(D.data.error)),x("sourceUrl","missing",!1),D}finally{E(A)}}let H=Ue(new Map);function re(){let w=new Set,A=e.details&&e.details.gist;if(!A)return w;typeof A.description=="string"&&w.add(A.description),typeof A.ownerLogin=="string"&&w.add(A.ownerLogin);let D=A.files||[];for(let z of D)typeof z.filename=="string"&&w.add(z.filename),typeof z.content=="string"&&w.add(z.content);let I=A.comments||[];for(let z of I)typeof z.author=="string"&&w.add(z.author),typeof z.body=="string"&&w.add(z.body);return w}let de=He("gist",()=>{let w=re(),A=Array.from(w);return A.length===0?null:{contents:A,options:ze()}},(w,A)=>{if(!Array.isArray(w?.contents)||w.contents.length!==A.contents.length||w.contents.some(z=>typeof z!="string"))throw Error("Invalid preview response");let D=A.contents,I=new Map;for(let z=0;zH.set(B,z)),Ne()});e.anonymizeGistContent=function(w){return w&&(H.has(w)?H.get(w):"")},e.previewGistFiles=[];function Ne(){let w=e.details&&e.details.gist&&e.details.gist.files||[];e.previewGistFiles=w.map(A=>({filename:e.anonymizeGistContent(A.filename),content:e.anonymizeGistContent(A.content),language:A.language}))}e.watch("details.gist.files",Ne,!0),e.watch("terms",Ne);function C(){let w=e.conference;if(e.conference_data=null,!w)return;let A=w===S||e.isUpdate&&w===e._originalConference;w!==S&&(S=null),t.get("/api/conferences/"+w).then(D=>{e.conference===w&&(e.conference_data=D.data,e.conference_data.startDate=new Date(e.conference_data.startDate),e.conference_data.endDate=new Date(e.conference_data.endDate),!A&&(e.options.expirationDate=new Date(e.conference_data.endDate),e.options.expirationMode="remove",e.options.update=e.conference_data.options.update,e.options.image=e.conference_data.options.image,e.options.pdf=e.conference_data.options.pdf,e.options.notebook=e.conference_data.options.notebook,e.options.link=e.conference_data.options.link))},()=>{e.conference===w&&(e.conference_data=null)})}function N(){x("repoId","used",!0),x("repoId","format",!0),x("pullRequestId","used",!0),x("pullRequestId","format",!0),x("gistId","used",!0),x("gistId","format",!0),x("sourceUrl","used",!0),x("sourceUrl","missing",!0),x("sourceUrl","access",!0),x("sourceUrl","github",!0),x("commit","exists",!0),x("conference","activated",!0),x("terms","format",!0),e.termsRegexWarning=!1}function V(){if(e.detectedType==="repo"&&e.options.expirationMode==="never")return!1;let w=e.anonymize&&e.anonymize.expirationDate;return!e.options.expirationDate||w&&w.invalid?(w&&w.setDirty&&w.setDirty(),e.error="Please choose a valid expiration date.",!0):!1}function j(w){let A=e.detectedType==="pr"?"pullRequestId":e.detectedType==="gist"?"gistId":"repoId";switch(w){case"repoId_already_used":x(A,"used",!1);break;case"invalid_repoId":x(A,"format",!1);break;case"options_not_provided":x(A,"format",!1);break;case"repo_already_anonymized":x("sourceUrl","used",!1);break;case"invalid_terms_format":x("terms","format",!1);break;case"repo_not_found":x("sourceUrl","missing",!1);break;case"repo_not_accessible":x("sourceUrl","access",!1);break;case"commit_not_found":x("commit","exists",!1);break;case"conf_not_activated":x("conference","activated",!1);break}}e.coauthors=e.coauthors||[],e.coauthorResults=[],e.coauthorError="",e.searchCoauthors=()=>{let w=(e.coauthorSearch||"").trim();if(e.coauthorError="",w.length<2){e.coauthorResults=[];return}t.get("/api/user/search/github-users",{params:{q:w}}).then(A=>{let D=new Set((e.coauthors||[]).map(I=>(I.username||"").toLowerCase()));e.coauthorResults=(A.data||[]).filter(I=>!D.has((I.username||"").toLowerCase()))},()=>{e.coauthorResults=[]})},e.addCoauthor=(w,A)=>{A&&A.preventDefault(),!(!w||!w.username)&&t.post("/api/repo/"+e.repoId+"/coauthors",{username:w.username}).then(D=>{e.coauthors=D.data||[],e.coauthorResults=[],e.coauthorSearch="",e.coauthorError=""},D=>{let I=D&&D.data&&D.data.error||"unknown_error";e.coauthorError=I})},e.removeCoauthor=w=>{!w||!w.username||confirm("Remove co-author "+w.username+"?")&&t.delete("/api/repo/"+e.repoId+"/coauthors/"+encodeURIComponent(w.username)).then(A=>{e.coauthors=A.data||[]},A=>{let D=A&&A.data&&A.data.error||"unknown_error";e.coauthorError=D})},e.anonymizeRepo=w=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(e.reconnectingSource&&!e.reconnectRepositoryId)return;if(V()){e.editRepository();return}if(e.anonymize?.invalid||e.sourceUrlError){e.editRepository(),e.error="Please correct the highlighted fields before saving.";return}if(e.hostingNeedsPayment()&&e.options.expirationMode==="never"){e.hostingReview=!0,Ge(()=>document.getElementById("repository-hosting")?.scrollIntoView({block:"center"}));return}let A=w.currentTarget||w.target.closest?.("button")||w.target;A.disabled=!0;let D=parseGithubUrl(e.sourceUrl),I={repoId:e.repoId,terms:e.terms.trim().split(` -`).filter(B=>B),connection:e.githubConnection,fullName:`${D.owner}/${D.repo}`,repository:e.sourceUrl,reconnectRepositoryId:e.reconnectRepositoryId,options:e.options,source:e.source,conference:e.conference};e.details&&(I.options.pageSource=e.details.pageSource),N();let z=e.isUpdate?"/api/repo/"+e.repoId:"/api/repo/";t.post(z,I,{headers:{"Content-Type":"application/json"}}).then(()=>{v.clear(),window.location.href="/status/"+e.repoId},B=>{B.data&&(r("ERRORS."+B.data.error).then(ie=>{e.error=ie},console.error),j(B.data.error),["quota_exceeded","subscription_required_for_never_expiration"].includes(B.data.error)&&(B.data.error==="subscription_required_for_never_expiration"&&(e._existingNever=!1),e.hostingQuotaBlocked=!0,e.hostingReview=!0,Ge(()=>document.getElementById("repository-hosting")?.scrollIntoView({block:"center"}))))}).finally(()=>{A.disabled=!1})},e.anonymizeGist=w=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(V())return;if(e.anonymize?.invalid||e.sourceUrlError){e.error="Please correct the highlighted fields before saving.";return}let A=w.currentTarget||w.target.closest?.("button")||w.target;A.disabled=!0;let D=parseGithubUrl(e.sourceUrl),I={gistId:e.gistId,terms:e.terms.trim().split(` -`).filter(B=>B),source:{gistId:D.gistId},options:e.options,conference:e.conference};N();let z=e.isUpdate?"/api/gist/"+e.gistId:"/api/gist/";t.post(z,I,{headers:{"Content-Type":"application/json"}}).then(()=>{v.clear(),window.location.href="/gist/"+e.gistId},B=>{B.data&&(r("ERRORS."+B.data.error).then(ie=>{e.error=ie},console.error),j(B.data.error))}).finally(()=>{A.disabled=!1})},e.anonymizePullRequest=w=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(V())return;if(e.anonymize?.invalid||e.sourceUrlError){e.error="Please correct the highlighted fields before saving.";return}let A=w.currentTarget||w.target.closest?.("button")||w.target;A.disabled=!0;let D=parseGithubUrl(e.sourceUrl),I={pullRequestId:e.pullRequestId,connection:e.githubConnection,terms:e.terms.trim().split(` -`).filter(B=>B),source:{repositoryFullName:`${D.owner}/${D.repo}`,pullRequestId:D.pullRequestId},options:e.options,conference:e.conference};N();let z=e.isUpdate?"/api/pr/"+e.pullRequestId:"/api/pr/";t.post(z,I,{headers:{"Content-Type":"application/json"}}).then(()=>{v.clear(),window.location.href="/pr/"+e.pullRequestId},B=>{B.data&&(r("ERRORS."+B.data.error).then(ie=>{e.error=ie},console.error),j(B.data.error))}).finally(()=>{A.disabled=!1})},e.watch("conference",()=>{C()}),e.watch("terms",()=>{e.detectedType==="repo"&&F(),e.detectedType==="pr"&&U(),e.detectedType==="gist"&&de()}),e.watch("options.image",()=>{e.detectedType==="repo"&&F(),e.detectedType==="pr"&&U(),e.detectedType==="gist"&&de()}),e.watch("options.link",()=>{e.detectedType==="repo"&&F(),e.detectedType==="pr"&&U(),e.detectedType==="gist"&&de()}),e.watch("details",()=>{e.detectedType==="pr"&&U(),e.detectedType==="gist"&&de()},!0)},gi=function(e,t,o,i,s,r){let a=pt();il();let p=xt();e.on("dark-mode",(F,X)=>{e.aceOption&&(X?e.aceOption.theme="nord_dark":e.aceOption.theme="chrome")});let f=0,g=null,y=null;e.fileLoadingSlow=!1,e.fileReceivedBytes=0;function b(){g&&(g.resolve(),g=null),y&&(a.timeout.cancel(y),y=null)}let m=!1;e.on("dispose",()=>{m=!0,f++,b(),E&&E.resolve()}),e.files=[],e.isMac=/Mac|iPhone|iPad|iPod/.test(navigator.platform||navigator.userAgent),e.fileSearchQuery="",e.fileSearchResults=null,e.fileSearchLoading=!1,p(document,"click",F=>{e.symbolsOpen&&!F.target.closest?.(".symbols")&&(e.symbolsOpen=!1),e.moreOpen&&!F.target.closest?.(".tb-more")&&(e.moreOpen=!1),e.tocOpen&&!F.target.closest?.(".tb-toc-m")&&(e.tocOpen=!1),e.gotoOpen&&F.target.isConnected&&!F.target.closest?.(".goto-pop, .btn-goto, .tb-more")&&(e.gotoOpen=!1),e.accountOpen&&!F.target.closest?.(".acct")&&(e.accountOpen=!1),e.helpOpen&&!F.target.closest?.(".vb-help")&&(e.helpOpen=!1)}),p(document,"keydown",F=>{F.key==="Escape"&&(e.symbolsOpen=!1,e.moreOpen=!1,e.tocOpen=!1,e.gotoOpen=!1,e.accountOpen=!1,e.helpOpen=!1),(F.ctrlKey||F.metaKey)&&!F.altKey&&F.key&&F.key.toLowerCase()==="f"&&e.type==="html"&&window.document.querySelector(".reading-layout")&&(F.preventDefault(),e.toggleMdFind(!0))}),p(document,"keydown",function(F){if((F.metaKey||F.ctrlKey)&&F.key==="k"){F.preventDefault();var X=document.querySelector(".tree-search-input");X&&(X.focus(),X.select())}});var E=null;e.onFileSearchChange=function(){E&&(E.resolve(),E=null);let F=e.fileSearchQuery;if(!F||F.length<2){e.fileSearchResults=null,e.fileSearchLoading=!1;return}e.fileSearchLoading=!0;let X=r.defer();E=X,t.get(`/api/repo/${e.repoId}/files/search?q=${encodeURIComponent(F)}`,{timeout:X.promise}).then(function(J){if(!(m||E!==X)){E=null,e.fileSearchLoading=!1;var ne={};e.files.forEach(function(I){ne[(I.path||"")+"/"+I.name]=!0});for(var U=[],Q={},H=0;H0&&e.files.push.apply(e.files,U);for(var j=[],w=0;w0&&e.files.push.apply(e.files,j),e.fileSearchResults=J.data}},function(){!m&&E===X&&(E=null,e.fileSearchLoading=!1,e.fileSearchResults=[])})};let P={yml:"yaml",txt:"text",py:"python",js:"javascript",ts:"typescript"},k=["license","txt"],v=["png","jpg","jpeg","gif","svg","ico","bmp","tiff","tif","webp","avif","heif","heic"],S=["wav","mp3","ogg","wma","flac","aac","m4a"],_=["mp4","avi","webm","mov","mpg","mpeg","mkv","flv","wmv","3gp","3g2","m4v","f4v","f4p","f4a","f4b"];e.on("routeUpdate",function(F,X){if(e.repoId!=i.repoId)return Me();if((i.path||"")!=e.filePath){window.matchMedia?.("(max-width: 767px)").matches&&(e.sidebarCollapsed=!0),e.filePath=i.path||"",e.paths=e.filePath.split("/").filter(J=>J&&J.trim().length>0),He();for(let J=0;J0?e.paths.slice(0,J).join("/"):"";e.files.some(Q=>Q.path===ne)||e.getFiles(ne)}}});function M(){if(e.paths[0]!="")return;let F=["readme.md","readme.txt","readme.org","readme.1st","readme"],X={};for(let ne of e.files)ne.name.toLowerCase().indexOf("readme")>-1&&(X[ne.name.toLowerCase()]=ne.name);let J=null;for(let ne of F)if(X[ne]){J=ne;break}if(!J&&Object.keys(X).length>0&&(J=Object.keys(X)[0]),J){let ne=o.url();ne[ne.length-1]!="/"&&(ne+="/"),o.url(ne+encodePathForUrl(X[J]))}}e.fileCounts=null;let L=0,q=new Set,G=!1;e.getFiles=function(F,X=!1){let J=e.repoId,ne=L;return t.get(`/api/repo/${e.repoId}/files/?path=${encodeURIComponent(F)}&v=${e.options.lastUpdateDate}`).then(function(U){if(m||J!==e.repoId||ne!==L)return[];let Q=F||"";return e.files=e.files.filter(H=>H.path!==Q),e.files.push(...U.data),se(Q,ne),U.data},function(U){if(m||J!==e.repoId||ne!==L)return[];X||(e.type="error",e.content=vi(U),e.files=[])})};function se(F,X){if(G||q.has(F))return;q.add(F);let J=e.repoId;t.get(`/api/repo/${e.repoId}/files/counts?path=${encodeURIComponent(F)}`).then(function(ne){m||J!==e.repoId||X!==L||(e.fileCounts={...e.fileCounts,...ne.data})},function(){m||J!==e.repoId||X!==L||(G=!0)})}function ee(){return e.files.filter(F=>F.name==e.paths[e.paths.length-1]&&F.path==e.paths.slice(0,e.paths.length-1).join("/"))[0]}var R=null;e.on("dispose",function(){R&&a.interval.cancel(R)});function K(F){if(m)return;let X=e.repoId;t.get(`/api/repo/${e.repoId}/options`).then(J=>{if(!(m||X!==e.repoId)){if(e.options=J.data,e.options.url){window.location=e.options.url;return}F&&F(J.data)}},J=>{if(!(m||X!==e.repoId)){var ne=J.data||{};if(ne.error==="rate_limited"&&ne.resetAt){let Q=function(){var H=Math.max(0,Math.ceil((e.rateLimitResetAt-Date.now())/1e3));if(H<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,R&&(a.interval.cancel(R),R=null),K(F);else{var re=Math.floor(H/60),de=H%60;e.rateLimitCountdown=re>0?re+"m "+de+"s":de+"s"}};var U=Q;e.type="rate_limited",e.rateLimitResetAt=ne.resetAt,R&&a.interval.cancel(R),Q(),R=a.interval(Q,1e3)}else ne.error==="repository_not_ready"?(e.type="loading",a.timeout(function(){K(F)},3e3)):(e.type="error",e.content=vi(J))}})}e.toggleSource=function(){e.showSource=!e.showSource},e.toggleAllowScripts=function(){e.allowScripts=!e.allowScripts};let te=(()=>{try{return window.localStorage?.getItem("wrapLines")}catch{return null}})();e.wrapLines=(te??(window.matchMedia?.("(max-width: 767px)").matches?"false":"true"))!=="false",e.toggleWrap=function(){e.wrapLines=!e.wrapLines;try{window.localStorage?.setItem("wrapLines",String(e.wrapLines))}catch{}e.codeEditor?.session.setUseWrapMode(e.wrapLines)};function ve(){return window.document.querySelector(".reading-layout .markdown-body")}function x(){let F=ve();F&&(F.querySelectorAll("mark.md-find").forEach(X=>{X.replaceWith(window.document.createTextNode(X.textContent))}),F.normalize())}e.runMdFind=function(){x(),e.mdFindTotal=0,e.mdFindIndex=0;let F=(e.mdFindQuery||"").trim(),X=ve();if(!F||!X)return;let J=!!e.mdFindCase,ne=J?F:F.toLowerCase(),U=window.document.createTreeWalker(X,4),Q=[];for(;U.nextNode();)(J?U.currentNode.nodeValue:U.currentNode.nodeValue.toLowerCase()).includes(ne)&&Q.push(U.currentNode);let H=0;for(let re of Q){let de=re.nodeValue,Ne=J?de:de.toLowerCase(),C=window.document.createDocumentFragment(),N=0,V;for(;(V=Ne.indexOf(ne,N))!==-1;){C.appendChild(window.document.createTextNode(de.slice(N,V)));let j=window.document.createElement("mark");j.className="md-find",j.textContent=de.slice(V,V+F.length),C.appendChild(j),H++,N=V+F.length}C.appendChild(window.document.createTextNode(de.slice(N))),re.parentNode.replaceChild(C,re)}e.mdFindTotal=H,H&&e.stepMdFind(0)},e.stepMdFind=function(F){let X=ve();if(!X||!e.mdFindTotal)return;let J=X.querySelectorAll("mark.md-find");e.mdFindIndex=(e.mdFindIndex+F+J.length)%J.length,J.forEach((ne,U)=>ne.classList.toggle("is-current",U===e.mdFindIndex)),J[e.mdFindIndex]?.scrollIntoView({block:"center",behavior:"smooth"})},e.toggleMdFind=function(F){if(e.mdFindOpen=F===void 0?!e.mdFindOpen:F,!e.mdFindOpen){x(),e.mdFindTotal=0;return}Ge(()=>window.document.querySelector(".md-find-input")?.focus())},e.findInFile=function(){let F=e.codeEditor;if(!F)return;F.focus(),F.execCommand("find");let X=()=>{let J=F.searchBox?.element;J&&(F.renderer.setScrollMargin(52,12,0,0),!J._dockObserver&&(J._dockObserver=new MutationObserver(()=>{F.renderer.setScrollMargin(J.style.display!=="none"?52:12,12,0,0)}),J._dockObserver.observe(J,{attributes:!0,attributeFilter:["style"]})))};X(),setTimeout(X,150)};let ue=[[/^\s*(?:export\s+)?(?:default\s+)?(?:abstract\s+)?class\s+([A-Za-z_$][\w$]*)/,"class"],[/^\s*(?:export\s+)?(?:default\s+)?(?:async\s+)?function\s*\*?\s*([A-Za-z_$][\w$]*)/,"function"],[/^\s*(?:export\s+)?(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*(?:async\s*)?(?:function|\([^)]*\)\s*=>|[A-Za-z_$][\w$]*\s*=>)/,"function"],[/^\s*(?:async\s+)?def\s+([A-Za-z_]\w*)/,"function"],[/^\s*class\s+([A-Za-z_]\w*)/,"class"],[/^\s*func\s+(?:\([^)]*\)\s*)?([A-Za-z_]\w*)/,"function"],[/^\s*(?:pub\s+)?fn\s+([A-Za-z_]\w*)/,"function"],[/^\s*(?:public|private|protected|static|\s)+[\w<>\[\],\s]+\s+([A-Za-z_]\w*)\s*\([^;]*\)\s*\{?\s*$/,"function"]],he={content:null,list:[]};e.symbolsOpen=!1,e.symbols=function(){if(typeof e.content!="string"||e.content.length>2e6)return[];if(he.content===e.content)return he.list;let F=[];return e.content.split(` -`).forEach((X,J)=>{for(let[ne,U]of ue){let Q=ne.exec(X);if(Q&&!/^(if|for|while|switch|return|catch)$/.test(Q[1])){F.push({name:Q[1],kind:U,line:J+1});break}}}),he={content:e.content,list:F.slice(0,300)},he.list},e.goToSymbol=function(F){e.symbolsOpen=!1;let X=e.codeEditor;X&&(X.scrollToLine(F-1,!0,!0,()=>{}),X.gotoLine(F,0,!0),window.history.replaceState(null,"",window.location.pathname+window.location.search+"#L"+F),window.dispatchEvent(new HashChangeEvent("hashchange")))},e.gotoLine=function(){e.codeEditor&&(e.moreOpen=!1,e.gotoError="",e.gotoValue=String(e.codeEditor.getCursorPosition().row+1),e.gotoOpen=!0,setTimeout(()=>{let F=window.document.getElementById("goto-input");F&&(F.focus(),F.select())},0))},e.closeGoto=function(){e.gotoOpen=!1,e.gotoError="",e.codeEditor?.focus()},e.submitGoto=function(){let F=e.codeEditor;if(!F)return;let X=/^\s*:?\s*(\d+)\s*(?:[:,]\s*(\d+))?\s*$/.exec(e.gotoValue||""),J=F.session.getLength();if(!X||+X[1]<1||+X[1]>J){e.gotoError="Enter a line from 1 to "+J;return}F.gotoLine(+X[1],X[2]?Math.max(0,+X[2]-1):0,!0),e.gotoOpen=!1,e.gotoError="",F.focus()},e.rootEntries=function(){return[...e.files||[]].sort((F,X)=>{let J=F.size==null,ne=X.size==null;return J!==ne?J?-1:1:F.name.localeCompare(X.name)})},e.formatSize=function(F){if(F==null)return"";if(F<1024)return F+" B";let X=F/1024;return X<1024?X.toFixed(1)+" KB":(X/1024).toFixed(1)+" MB"},e.fileSize=function(F){if(!F)return null;let X=F.replace(/^\/+/,""),J=(e.files||[]).find(ne=>(ne.path?ne.path+"/":"")+ne.name===X);return J&&J.size!=null?J.size:null},e.revealFolder=function(F){e.sidebarHidden=!1,e.sidebarCollapsed=!1,Ge(()=>{let X=window.document.querySelector('.files a[data-path="/'+(window.CSS?.escape?window.CSS.escape(F):F)+'"]');X&&(X.closest("li")?.classList.contains("open")||X.click(),X.scrollIntoView({block:"nearest"}),X.focus())})},e.redactionCount=function(){return typeof e.content!="string"?0:((e.type==="html"?e.content.replace(/<[^>]*>/g," "):e.content).match(bo)||[]).length},e.renderRedacted=sl;let Ee=F=>F.toLowerCase().trim().replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").slice(0,60)||"section";e.renderReadme=function(F){let X=e.renderRedacted(F);if(!X||typeof window.DOMParser!="function")return X;let J=new window.DOMParser().parseFromString("
"+X+"
","text/html"),ne={};return J.querySelectorAll("h1, h2, h3").forEach(U=>{let Q=U.id||Ee(U.textContent);ne[Q]?Q+="-"+ ++ne[Q]:ne[Q]=1,U.id=Q}),J.body.firstChild.innerHTML};let ye={content:null,list:[]};e.readmeToc=function(){if(e.type!=="html"||typeof e.content!="string")return[];if(ye.content===e.content)return ye.list;let X=[...new window.DOMParser().parseFromString("
"+e.renderReadme(e.sanitize?e.sanitize(e.content):e.content)+"
","text/html").querySelectorAll("h2, h3")].map(J=>({id:J.id,text:J.textContent.trim(),level:J.tagName==="H3"?3:2})).slice(0,40);return ye={content:e.content,list:X},X},e.activeHeading=null,p(window,"scroll",()=>{let F=e.readmeToc?e.readmeToc():[];if(!F.length)return;let X=150,J="",ne="";for(let U of F){let Q=window.document.getElementById(U.id);if(!Q)continue;let H=Q.getBoundingClientRect().top;HJ&&X.push({t:F.slice(J,ne.index)}),X.push({n:ne[1]}),J=ne.index+ne[0].length;return J{e.pathCopied=!1},1600))},e.contentCopied=!1,e.copyContent=async function(){if(typeof e.content!="string"||!window.navigator.clipboard?.writeText)return;let F=e.content;if(e.type==="html"&&e.url)try{F=await(await window.fetch(e.url,{credentials:"same-origin"})).text()}catch{return}await window.navigator.clipboard.writeText(F),e.contentCopied=!0,setTimeout(()=>{e.contentCopied=!1},1600)};function be(F){return P[F]?P[F]:F}function Le(F){return F=="pdf"?"pdf":F=="html"||F=="htm"?"html-doc":F=="md"?"md":F=="org"?"org":F=="ipynb"?"IPython":k.indexOf(F)>-1?"text":v.indexOf(F)>-1?"image":_.indexOf(F)>-1?"media":S.indexOf(F)>-1?"audio":"code"}function ze(F,X){let J=f;if(!F){e.type="error",e.content="no_file_selected";return}let ne=e.type;(ne==="code"||ne==="text")&&ko().catch(()=>{}),e.type="loading",e.content="loading",e.fileLoadingSlow=!1,e.fileReceivedBytes=0;let U=r.defer();g=U,y=a.timeout(()=>{!m&&J===f&&e.type==="loading"&&(e.fileLoadingSlow=!0)},1500);let Q=X&&X.sha||"0";t.get(`/api/repo/${e.repoId}/file/${encodePathForUrl(F)}?v=`+Q,{timeout:U.promise,onDownloadProgress:H=>{!m&&J===f&&(e.fileReceivedBytes=H)},transformResponse:H=>H}).then(H=>{if(!(m||J!==f)){if(b(),e.type=ne,e.content=H.data,e.content==""&&(e.content=null),e.type=="md"&&(e.content=renderMD(H.data,o.url()+"/../"),e.type="html"),e.type=="org"){let de=contentAbs2Relative(H.data);var re=new Org.Parser().parse(de).convert(Org.ConverterHTML,{headerOffset:1,exportFromLineNumber:!1,suppressSubScriptHandling:!0,suppressAutoLink:!1});e.content=DOMPurify.sanitize(re.toString()),e.type="html"}e.type=="code"&&H.headers("content-type")=="application/octet-stream"&&(e.type="binary",e.content="binary"),a.timeout(()=>{Prism.highlightAll()},50)}},H=>{m||J!==f||(b(),e.type="error",e.content=vi(H))})}function He(){f++,b(),e.content="",e.file=ee();let F="0";e.file&&e.file.sha&&(F=e.file.sha),e.url=`/api/repo/${e.repoId}/file/${encodePathForUrl(e.filePath)}?v=${F}`;let X=e.filePath.substring(0,e.filePath.lastIndexOf("/")+1);e.fileBaseUrl=`/api/repo/${e.repoId}/file/${X?encodePathForUrl(X):""}`,e.showSource=!1,e.allowScripts=!1;let J=e.filePath.toLowerCase(),ne=J.lastIndexOf(".");ne>-1&&(J=J.substring(ne+1));let U={javascript:"JavaScript",typescript:"TypeScript",tsx:"TSX",jsx:"JSX",python:"Python",java:"Java",c_cpp:"C/C++",csharp:"C#",golang:"Go",rust:"Rust",ruby:"Ruby",php:"PHP",html:"HTML",css:"CSS",scss:"SCSS",json:"JSON",yaml:"YAML",markdown:"Markdown",sh:"Shell",dockerfile:"Dockerfile",xml:"XML",sql:"SQL",kotlin:"Kotlin",swift:"Swift",scala:"Scala",r:"R",julia:"Julia",latex:"LaTeX",toml:"TOML",text:""},Q=be(J);if(e.languageName=U[Q]??(Q?Q.charAt(0).toUpperCase()+Q.slice(1):""),e.aceOption={readOnly:!0,useWrapMode:!0,showGutter:!0,theme:"chrome",useSoftTab:!0,tabSize:2,fontSize:window.matchMedia?.("(max-width: 767px)").matches?12:13,keyBinding:"vscode",fullLineSelection:!0,highlightActiveLine:!1,highlightGutterLine:!1,cursor:"hide",showInvisibles:!1,showIndentGuides:!1,showPrintMargin:!1,highlightSelectedWord:!1,enableBehaviours:!0,fadeFoldWidgets:!1,mode:be(J),onLoad:function(H){e.codeEditor=Qn(H);{let D=H.session,I=D.getTokens.bind(D),z=/\bXXXX-\d+\b/g;if(D.getTokens=function(B){let ie=I(B);if(!ie.some(le=>le.value.indexOf("XXXX-")!==-1))return ie;let Z=[];for(let le of ie){if(le.value.indexOf("XXXX-")===-1){Z.push(le);continue}let ce=0;z.lastIndex=0;let Ce;for(;Ce=z.exec(le.value);)Ce.index>ce&&Z.push({type:le.type,value:le.value.slice(ce,Ce.index)}),Z.push({type:"redacted.n"+Ce[0].slice(5),value:Ce[0]}),ce=Ce.index+Ce[0].length;ce`.ace_redacted.ace_n${Z+1}::after{content:"${Z+1}"}`).join(""),window.document.head.appendChild(B)}H.renderer.updateFull(!0)}H.session.setUseWrapMode(e.wrapLines!==!1);let re=H.container.closest?.(".file-card"),de=()=>{if(!re)return;let D=H.renderer,I=(D.layerConfig?.width||0)-(D.$size?.scrollerWidth||0);re.classList.toggle("at-right-edge",I<=2||D.getScrollLeft()>=I-2)};H.session.on("changeScrollLeft",de),H.renderer.on("afterRender",de),window.matchMedia?.("(max-width: 767px)").matches&&H.setOption("hScrollBarAlwaysVisible",!0);let Ne=ace.require("ace/range").Range,C=null;function N(D,I){C!==null&&(H.session.removeMarker(C),C=null),D!=null&&(C=H.session.addMarker(new Ne(D,0,I,1),"highlighted-line","fullLine"))}function V(D){let I=window.location.hash.match(/^#L(\d+)(?:-L(\d+))?/);if(!I){N(null);return}let z=parseInt(I[1])-1,B=I[2]?parseInt(I[2])-1:z;N(z,B),D&&a.timeout(()=>{H.scrollToLine(z,!0,!0,function(){})},100)}V(!0);let j=null;H.on("guttermousedown",function(D){let I=D.getDocumentPosition().row,z=D.domEvent&&D.domEvent.shiftKey,B=I,ie=I;z&&j!==null?(B=Math.min(j,I),ie=Math.max(j,I)):j=I;let Z=B===ie?`#L${B+1}`:`#L${B+1}-L${ie+1}`,le=window.location.pathname+window.location.search+Z;window.history.replaceState(null,"",le),N(B,ie),D.stop()});let w=p(window,"hashchange",()=>V(!1));H.setFontSize(e.aceOption.fontSize),H.setOptions({fontFamily:"'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace"}),H.container.style.lineHeight="20px",H.renderer.setPadding(16),H.renderer.setScrollMargin(12,12,0,0),H.renderer.updateFontSize(),H.setReadOnly(e.aceOption.readOnly),H.setKeyboardHandler(e.aceOption.keyBinding),H.setSelectionStyle(e.aceOption.fullLineSelection?"line":"text"),H.setOption("displayIndentGuides",!1),H.setHighlightActiveLine(e.aceOption.highlightActiveLine),e.aceOption.cursor=="hide"&&(H.renderer.$cursorLayer.element.style.display="none"),H.setHighlightGutterLine(e.aceOption.highlightGutterLine),H.setShowInvisibles(e.aceOption.showInvisibles),H.setDisplayIndentGuides(e.aceOption.showIndentGuides),H.renderer.setShowPrintMargin(e.aceOption.showPrintMargin),H.setHighlightSelectedWord(e.aceOption.highlightSelectedWord),H.session.setUseSoftTabs(e.aceOption.useSoftTab),H.session.setTabSize(e.aceOption.tabSize),H.setBehavioursEnabled(e.aceOption.enableBehaviours),H.setFadeFoldWidgets(e.aceOption.fadeFoldWidgets);let A=p(window,"keydown",D=>{if((D.ctrlKey||D.metaKey)&&!D.altKey&&D.key.toLowerCase()==="g"&&document.body.contains(H.container)){D.preventDefault(),e.gotoLine();return}if(D.altKey&&!D.ctrlKey&&!D.metaKey&&D.key.toLowerCase()==="z"&&document.body.contains(H.container)){D.preventDefault(),e.toggleWrap();return}(D.ctrlKey||D.metaKey)&&!D.altKey&&D.key.toLowerCase()==="f"&&document.body.contains(H.container)&&(D.preventDefault(),e.findInFile())});return()=>{w(),A()}}},e.isDarkMode&&(e.aceOption.theme="nord_dark"),e.type=Le(J),e.type=="pdf"){e.content="pdf";return}ze(e.filePath,e.file)}e.isSourceAccessError=()=>["repo_not_found","token_expired","github_app_access_required","github_app_reconnect_required","repo_saml_enforcement","repo_access_limited"].includes(e.content),e.retryContent=()=>Me();function Me(){f++,b(),e.files=[],e.content=null,e.fileCounts=null,L++,q=new Set,G=!1,e.fileSearchQuery="",e.onFileSearchChange(),e.repoId=i.repoId,e.type="loading",e.filePath=i.path||"",e.paths=e.filePath.split("/");let F=e.repoId;K(function(X){if(e.filePath){He();let ne=[...new Set(e.paths.map((U,Q)=>e.paths.slice(0,Q).join("/")))];r.all(ne.map(U=>e.getFiles(U,!0)));return}var J=r.resolve();for(let ne=0;ne0?e.paths.slice(0,ne).join("/"):"";J=J.then(function(){return e.getFiles(U)}).then(function(){if(e.type==="error")return r.reject("error")})}J.then(function(){m||F!==e.repoId||(e.files.length==1&&e.files[0].name==""?(e.files=[],e.type="empty"):(M(),He()))})})}Me()},hl=function(e,t,o,i,s){async function r(f){t.get(`/api/pr/${e.pullRequestId}/options`).then(g=>{if(e.options=g.data,e.options.url){window.location=e.options.url;return}f&&f(g.data)},g=>{e.type="error",e.content=g.data.error})}async function a(f){t.get(`/api/pr/${e.pullRequestId}/content`).then(g=>{e.details=g.data,e.tabState={active:g.data.diff?"diff":"comments"},f&&f(g.data)},g=>{e.type="error",e.content=g.data.error})}function p(){e.pullRequestId=i.pullRequestId,e.type="loading",r(f=>{a()})}p()},vl=function(e,t,o,i,s){async function r(f){t.get(`/api/gist/${e.gistId}/options`).then(g=>{if(e.options=g.data,e.options.url){window.location=e.options.url;return}f&&f(g.data)},g=>{e.type="error",e.content=g.data.error})}async function a(f){t.get(`/api/gist/${e.gistId}/content`).then(g=>{e.details=g.data;let y=g.data&&g.data.files&&g.data.files.length;e.tabState={active:y?"files":"comments"},f&&f(g.data)},g=>{e.type="error",e.content=g.data.error})}function p(){e.gistId=i.gistId,e.type="loading",r(()=>{a()})}p()},gl=function(e,t,o){e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.conferences=[],e.loading=!0,e.error="",e.search="";let i="conferences.filterPrefs",s={filters:{status:{ready:!0,expired:!1,removed:!1}},orderBy:"name"},r=loadFilterPrefs(i)||{};e.filters={status:Object.assign({},s.filters.status,r.filters&&r.filters.status||{})},e.orderBy=r.orderBy||s.orderBy,e.watch("orderBy",()=>{saveFilterPrefs(i,{filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(i,{filters:e.filters,orderBy:e.orderBy})},!0),e.removeConference=function(a){if(!a.removing&&confirm(`Are you sure that you want to remove the conference ${a.name}? All the repositories linked to this conference will expire.`)){a.removing=!0;let p=Ue({title:`Removing ${a.name}...`,date:new Date,body:`The conference ${a.name} is going to be removed.`});e.addToast(p),t.delete(`/api/conferences/${a.conferenceID}`).then(()=>{p.title=`${a.name} is removed.`,p.body=`The conference ${a.name} is removed.`,e.loadConferences()}).catch(()=>{p.title="Unable to remove conference",p.body="Please try again. The conference has not been removed."}).finally(()=>{a.removing=!1})}},e.loadConferences=()=>(e.loading=!0,e.error="",t.get("/api/conferences/").then(a=>{e.conferences=a.data||[]},a=>{e.error="Unable to load your conferences. Please try again."}).finally(()=>{e.loading=!1})),e.loadConferences(),e.conferenceFilter=a=>{if(e.filters.status[a.status]==!1)return!1;let p=e.search.trim().toLowerCase();return!!(!p||(a.name||"").toLowerCase().includes(p)||(a.conferenceID||"").toLowerCase().includes(p))}},yi=function(e,t,o,i){e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.plans=[],e.editionMode=!1,e.saving=!1,e.error="";function s(){return t.get("/api/conferences/"+i.conferenceId).then(y=>{e.options={...e.options,...y.data,billing:y.data.billing||{}},e.options.startDate=new Date(e.options.startDate),e.options.endDate=new Date(e.options.endDate)})}i.conferenceId&&(e.editionMode=!0,s());function r(){t.get("/api/conferences/plans").then(y=>{e.plans=y.data,e.plan=e.plans.filter(b=>b.id==e.options.plan.planID)[0]})}r();let a=new Date;a.setDate(1),a.setMonth(a.getMonth()+1);let p=new Date(a);p.setTime(a.getTime()+179*864e5),e.options={billing:{},startDate:a,endDate:p,plan:{planID:"free_conference"},options:{link:!0,image:!0,pdf:!0,notebook:!0,update:!0,page:!0}},e.plan=null,e.watch("options.plan.planID",()=>{e.plan=e.plans.filter(y=>y.id==e.options.plan.planID)[0]});function f(){e.conference.name.setValidity("required",!0),e.conference.conferenceID.setValidity("pattern",!0),e.conference.conferenceID.setValidity("required",!0),e.conference.conferenceID.setValidity("used",!0),e.conference.startDate.setValidity("required",!0),e.conference.startDate.setValidity("invalid",!0),e.conference.endDate.setValidity("required",!0),e.conference.endDate.setValidity("invalid",!0),e.conference.setValidity("error",!0)}function g(y){switch(y){case"conf_name_missing":e.conference.name.setValidity("required",!1);break;case"conf_id_missing":e.conference.conferenceID.setValidity("required",!1);break;case"conf_id_format":e.conference.conferenceID.setValidity("pattern",!1);break;case"conf_id_used":e.conference.conferenceID.setValidity("used",!1);break;case"conf_start_date_missing":e.conference.startDate.setValidity("required",!1);break;case"conf_end_date_missing":e.conference.endDate.setValidity("required",!1);break;case"conf_start_date_invalid":e.conference.startDate.setValidity("invalid",!1);break;case"conf_end_date_invalid":e.conference.endDate.setValidity("invalid",!1);break;default:e.conference.setValidity("error",!1);break}}e.submit=function(){if(e.saving)return;e.saving=!0,e.error="";let y=JSON.parse(JSON.stringify(e.options)),b=Ue({title:`Creating ${y.name}...`,date:new Date,body:`The conference ${y.conferenceID} is in creation.`});e.editionMode&&(b.title=`Updating ${y.name}...`,b.body=`The conference '${y.conferenceID}' is updating.`),e.addToast(b),f(),t.post("/api/conferences/"+(e.editionMode?y.conferenceID:""),y).then(()=>{e.editionMode?(b.title=`${y.name} updated`,b.body=`The conference '${y.conferenceID}' is updated.`):(b.title=`${y.name} created`,b.body=`The conference '${y.conferenceID}' is created.`),o.url("/conference/"+y.conferenceID)},m=>{g(m.data?.error),e.error="Unable to save the conference. Please correct any highlighted fields and try again.",e.removeToast(b)}).finally(()=>{e.saving=!1})}},yl=function(e,t,o,i){us(e,t,()=>s(),{confirmedMessage:"Payment status checked. Your conference is ready for submissions once payment is confirmed."}),e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.conference=null,e.search="",e.filters={status:{ready:!0,expired:!1,removed:!1}},e.orderBy="-anonymizeDate",e.repoFiler=r=>{if(e.filters.status[r.status]==!1)return!1;let a=e.search.trim().toLowerCase();return!!(!a||(r.source?.fullName||"").toLowerCase().includes(a)||(r.repoId||"").toLowerCase().includes(a))};function s(){t.get("/api/conferences/"+i.conferenceId).then(r=>{e.conference=r.data})}s()},bl=function(e,t){e.notificationEmail="",e.emailSaved=!1,e.saveNotificationEmail=async()=>{e.busy=!0,e.emailSaved=!1,e.connectionError="";try{let o=await t.post("/github/connections/email",{email:e.notificationEmail},{headers:{"X-CSRF-Token":e.connections.csrf}});e.notificationEmail=o.data.notificationEmail,e.user&&(e.user.notificationEmail=o.data.notificationEmail),e.emailSaved=!0}catch(o){e.connectionError=o.data?.error||"Unable to save email address."}finally{e.busy=!1}},e.connections=null,e.connectionError="",e.busy=!1,e.loadConnections=()=>t.get("/github/connections").then(o=>{e.connections=o.data,e.notificationEmail=o.data.notificationEmail||""}).catch(o=>{e.connectionError=o.data?.error||"Unable to load connections."}),e.changeConnection=async(o,i,s)=>{e.busy=!0,e.connectionError="";try{let r=await t.post("/github/connections/migrate",{type:o.type,id:o.id,connection:i,preview:s},{headers:{"X-CSRF-Token":e.connections.csrf}});s?o.eligible=r.data.eligible:await e.loadConnections()}catch(r){e.connectionError=r.data?.error||"Unable to change connection."}finally{e.busy=!1}},e.disconnectOAuth=async()=>{e.busy=!0;try{await t.post("/github/connections/disconnect-oauth",{},{headers:{"X-CSRF-Token":e.connections.csrf}}),await e.loadConnections()}catch(o){e.connectionError=o.data?.error||"Unable to disconnect OAuth."}finally{e.busy=!1}},e.loadConnections()},wl=function(e,t){e.accountRecovery=!1,t.get("/github/account-recovery").then(o=>{e.accountRecovery=o.data.required}).catch(()=>{})};var kl=function(e,t,o){let i=pt(),s=xt();e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.repositories=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.totalSize=0,e.selected={},e.allSelected=!1;let r=k=>{if(k.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){k.preventDefault();let v=document.querySelector('.admin-filter-toolbar input[type="search"]');v&&v.focus()}};s(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=k=>{k==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[k]="",e.query.page=1},e.chips=[];let a=()=>{let k=[];e.query.owner&&k.push({key:"owner",label:"Owner",value:e.query.owner}),e.query.conference&&k.push({key:"conference",label:"Conference",value:e.query.conference}),e.chips=k};e.showStatusMessage=k=>{let v=k.statusMessage||"(no message)";window.prompt(`Status message for ${k.repoId} (${k.status}):`,v)},e.fetchGithubInfo=k=>{let v=window.open("","_blank");v&&v.document.write("
Loading GitHub info for "+k.repoId+"...
"),t.get("/api/admin/repos/"+k.repoId+"/github").then(S=>{v&&(v.document.open(),v.document.write('
'+JSON.stringify(S.data,null,2).replace(/[<>]/g,_=>_==="<"?"<":">")+"
"),v.document.close())},S=>{let _=S&&S.data?JSON.stringify(S.data,null,2):String(S);v&&(v.document.body.innerHTML='
'+_+"
")})},e.statusCountFor=k=>{let v=(e.statusCounts||[]).find(S=>S._id===k);return v?v.count:0},e.statusStorageFor=k=>{let v=(e.statusCounts||[]).find(S=>S._id===k);return v?v.storage:0},e.isErrorsOnly=()=>e.query&&e.query.error&&!e.query.ready&&!e.query.preparing&&!e.query.expired&&!e.query.removed,e.toggleErrorsOnly=()=>{e.isErrorsOnly()?Object.assign(e.query,{ready:!1,preparing:!0,expired:!1,removed:!1,error:!0}):Object.assign(e.query,{ready:!1,preparing:!1,expired:!1,removed:!1,error:!0}),e.query.page=1},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=k=>{e.query.sort===k?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=k,e.query.direction="desc"),e.query.page=1},e.sortIcon=k=>e.query.sort===k?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let p="admin.repos.filterPrefs",f={page:1,limit:25,sort:"lastView",direction:"desc",search:"",owner:"",conference:"",dateFrom:"",dateTo:"",ready:!0,expired:!0,removed:!1,error:!0,preparing:!0},g=loadFilterPrefs(p)||{};e.query=Object.assign({},f,g,{page:1,search:""});let y=o.search();y.owner&&(e.query.owner=y.owner),y.conference&&(e.query.conference=y.conference),y.search&&(e.query.search=y.search);let b="admin.repos.presets";e.presets=JSON.parse(localStorage.getItem(b)||"[]"),e.savePreset=()=>{let k=window.prompt("Preset name:");if(!k)return;let v=Object.assign({},e.query);delete v.page,e.presets=(e.presets||[]).filter(S=>S.name!==k),e.presets.push({name:k,query:v}),localStorage.setItem(b,JSON.stringify(e.presets))},e.applyPreset=k=>{Object.assign(e.query,k.query,{page:1})},e.deletePreset=k=>{e.presets=(e.presets||[]).filter(v=>v.name!==k.name),localStorage.setItem(b,JSON.stringify(e.presets))},e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.repositories.forEach(k=>{e.selected[k.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(k=>e.selected[k.repoId]),e.bulkRefresh=()=>{let k=e.selectedRepos();k.length&&confirm(`Force refresh ${k.length} repositories?`)&&k.forEach(v=>e.updateRepository(v))},e.bulkRemoveCache=()=>{let k=e.selectedRepos();k.length&&confirm(`Purge cache for ${k.length} repositories?`)&&k.forEach(v=>e.removeCache(v))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let k=new URLSearchParams(Object.entries(e.query).filter(([,v])=>v!==""&&v!==!1&&v!=null));k.set("format","csv"),k.set("limit","10000"),window.open("/api/admin/repos?"+k.toString(),"_blank")},e.removeCache=k=>{confirm("Remove cached files for "+k.repoId+"?")&&t.delete("/api/admin/repos/"+k.repoId).then(()=>m(),v=>console.error(v))},e.removeRepository=k=>{confirm("Remove repository "+k.repoId+"?")&&t.delete("/api/repo/"+k.repoId+"/").then(()=>m(),v=>console.error(v))},e.updateRepository=k=>{let v=Ue({title:`Refreshing ${k.repoId}...`,date:new Date,body:`The repository ${k.repoId} is going to be refreshed.`});e.toasts.push(v),t.post(`/api/repo/${k.repoId}/refresh`).then(S=>{S.data.status=="ready"?v.title=`${k.repoId} is refreshed.`:v.title=`Refreshing of ${k.repoId}.`},S=>{v.title=`Error during the refresh of ${k.repoId}.`,v.body=S.body})},e.filtersOpen=!1,e.fetchError=null;function m(){e.fetchError=null,t.get("/api/admin/repos",{params:e.query}).then(k=>{e.total=k.data.total,e.totalPage=Math.ceil(k.data.total/e.query.limit),e.repositories=k.data.results,e.allSelected=!1},k=>{e.fetchError=k&&k.data&&k.data.error||"Failed to load repositories",console.error(k)})}function E(){let k=Object.assign({},e.query,{page:1,limit:1,ready:!0,expired:!0,removed:!0,error:!0,preparing:!0});t.get("/api/admin/repos",{params:k}).then(v=>{e.statusCounts=v.data.statusCounts||[],e.totalSize=v.data.totalSize||0},()=>{})}e.showAllStatuses=()=>Object.assign(e.query,{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0,page:1}),m(),E();let P=null;e.watch("query",()=>{i.timeout.cancel(P),P=i.timeout(()=>{m(),E()},500);let{page:k,search:v,...S}=e.query;saveFilterPrefs(p,S),a()},!0),a()},Cl=function(e,t,o){let i=pt(),s=xt();e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.users=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.selected={},e.allSelected=!1;let r=m=>{if(m.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){m.preventDefault();let E=document.querySelector('.admin-filter-toolbar input[type="search"]');E&&E.focus()}};s(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=m=>{m==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[m]="",e.query.page=1},e.chips=[];let a=()=>{let m=[];e.query.role&&m.push({key:"role",label:"Role",value:e.query.role}),e.chips=m};e.statusCountFor=m=>{let E=(e.statusCounts||[]).find(P=>P._id===m);return E?E.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=m=>{e.query.sort===m?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=m,e.query.direction="desc"),e.query.page=1},e.sortIcon=m=>e.query.sort===m?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let p="admin.users.filterPrefs",f={page:1,limit:25,sort:"username",direction:"asc",search:"",status:"",role:"",dateFrom:"",dateTo:""},g=loadFilterPrefs(p)||{};e.query=Object.assign({},f,g,{page:1,search:""}),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.users.forEach(m=>{e.selected[m.username]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedUsers=()=>e.users.filter(m=>e.selected[m.username]),e.banUser=m=>{confirm(`Ban user ${m.username}?`)&&t.post(`/api/admin/users/${m.username}/ban`).then(y,E=>console.error(E))},e.activateUser=m=>{t.post(`/api/admin/users/${m.username}/activate`).then(y,E=>console.error(E))},e.bulkBan=()=>{let m=e.selectedUsers();m.length&&confirm(`Ban ${m.length} users?`)&&m.forEach(E=>e.banUser(E))},e.exportCsv=()=>{let m=new URLSearchParams(Object.entries(e.query).filter(([,E])=>E!==""&&E!==!1&&E!=null));m.set("format","csv"),m.set("limit","10000"),window.open("/api/admin/users?"+m.toString(),"_blank")},e.fetchError=null;function y(){e.fetchError=null,t.get("/api/admin/users",{params:e.query}).then(m=>{e.total=m.data.total,e.totalPage=Math.ceil(m.data.total/e.query.limit),e.users=m.data.results,e.statusCounts=m.data.statusCounts||[],e.allSelected=!1},m=>{e.fetchError=m&&m.data&&m.data.error||"Failed to load users",console.error(m)})}y();let b=null;e.watch("query",()=>{i.timeout.cancel(b),b=i.timeout(y,500);let{page:m,search:E,...P}=e.query;saveFilterPrefs(p,P),a()},!0),a()},El=function(e,t,o,i){let s=pt();e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.userInfo,e.repositories=[],e.search="",e.selected={},e.allSelected=!1;let r="admin.user.filterPrefs",a={filters:{status:{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0}},sort:"anonymizeDate",direction:"desc"},p=loadFilterPrefs(r)||{};e.filters={status:Object.assign({},a.filters.status,p.filters&&p.filters.status||{})},e.query={sort:p.sort||a.sort,direction:p.direction||a.direction},e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort,e.sortBy=m=>{e.query.sort===m?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=m,e.query.direction="desc"),e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort},e.sortIcon=m=>e.query.sort===m?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"",e.watch("query",()=>{saveFilterPrefs(r,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.watch("filters",()=>{saveFilterPrefs(r,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.statusCountFor=m=>(e.repositories||[]).filter(E=>E.status===m).length,e.repoFiler=m=>e.filters.status[m.status]==!1?!1:!!(e.search.trim().length==0||m.source.fullName.indexOf(e.search)>-1||m.repoId.indexOf(e.search)>-1||m.statusMessage&&m.statusMessage.indexOf(e.search)>-1||m.conference&&m.conference.indexOf(e.search)>-1),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,(e.filteredRepositories||e.repositories).forEach(m=>{e.selected[m.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(m=>e.selected[m.repoId]),e.bulkRefresh=()=>{let m=e.selectedRepos();m.length&&confirm(`Force refresh ${m.length} repositories?`)&&m.forEach(E=>e.updateRepository(E))},e.bulkRemoveCache=()=>{let m=e.selectedRepos();m.length&&confirm(`Purge cache for ${m.length} repositories?`)&&m.forEach(E=>e.removeCache(E))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let m=e.filteredRepositories||e.repositories,P=["repoId","status","statusMessage","pageView","anonymizeDate","source.fullName","conference","size.storage"].join(","),k=m.map(_=>[_.repoId,_.status,_.statusMessage||"",_.pageView||0,_.anonymizeDate||"",_.source&&_.source.fullName||"",_.conference||"",_.size&&_.size.storage||0].map(M=>{let L=String(M??"");return/[",\n\r]/.test(L)?'"'+L.replace(/"/g,'""')+'"':L}).join(",")),v=new Blob([P+` -`+k.join(` -`)],{type:"text/csv"}),S=document.createElement("a");S.href=URL.createObjectURL(v),S.download=i.username+"-repositories.csv",S.click()},e.showStatusMessage=m=>{let E=m.statusMessage||"(no message)";window.prompt(`Status message for ${m.repoId} (${m.status}):`,E)},e.fetchGithubInfo=m=>{let E=window.open("","_blank");E&&E.document.write("
Loading GitHub info for "+m.repoId+"...
"),t.get("/api/admin/repos/"+m.repoId+"/github").then(P=>{E&&(E.document.open(),E.document.write('
'+JSON.stringify(P.data,null,2).replace(/[<>]/g,k=>k==="<"?"<":">")+"
"),E.document.close())},P=>{let k=P&&P.data?JSON.stringify(P.data,null,2):String(P);E&&(E.document.body.innerHTML='
'+k+"
")})};function f(m){t.get("/api/admin/users/"+m+"/repos",{}).then(E=>{e.repositories=E.data},E=>{console.error(E)})}function g(m){t.get("/api/admin/users/"+m,{}).then(E=>{e.userInfo=E.data},E=>{console.error(E)})}g(i.username),f(i.username),e.banUser=()=>{confirm(`Ban user ${i.username}?`)&&t.post(`/api/admin/users/${i.username}/ban`).then(()=>g(i.username),m=>console.error(m))},e.activateUser=()=>{t.post(`/api/admin/users/${i.username}/activate`).then(()=>g(i.username),m=>console.error(m))},e.promoteUser=()=>{confirm(`Promote ${i.username} to admin?`)&&t.post(`/api/admin/users/${i.username}/promote`).then(()=>g(i.username),m=>console.error(m))},e.demoteUser=()=>{confirm(`Remove admin privileges from ${i.username}?`)&&t.post(`/api/admin/users/${i.username}/demote`).then(()=>g(i.username),m=>console.error(m))},e.tokens=[],e.tokenForm={name:"",plaintext:null};function y(){t.get("/api/admin/tokens").then(m=>{e.tokens=m.data||[]},m=>{m.status!==401&&m.status!==403&&console.error(m)})}y(),e.createToken=()=>{e.tokenForm.name&&t.post("/api/admin/tokens",{name:e.tokenForm.name}).then(m=>{e.tokenForm.plaintext=m.data.token,e.tokenForm.name="",y()},m=>console.error(m))},e.revokeToken=m=>{confirm(`Revoke token "${m.name}"?`)&&t.delete("/api/admin/tokens/"+m.id).then(()=>y(),E=>console.error(E))},e.removeCache=m=>{confirm("Remove cached files for "+m.repoId+"?")&&t.delete("/api/admin/repos/"+m.repoId).then(()=>f(i.username),E=>console.error(E))},e.removeRepository=m=>{confirm("Remove repository "+m.repoId+"?")&&t.delete("/api/repo/"+m.repoId+"/").then(()=>f(i.username),E=>console.error(E))},e.updateRepository=m=>{let E=Ue({title:`Refreshing ${m.repoId}...`,date:new Date,body:`The repository ${m.repoId} is going to be refreshed.`});e.toasts.push(E),t.post(`/api/repo/${m.repoId}/refresh`).then(P=>{P.data.status=="ready"?E.title=`${m.repoId} is refreshed.`:E.title=`Refreshing of ${m.repoId}.`},P=>{E.title=`Error during the refresh of ${m.repoId}.`,E.body=P.body})},e.getGitHubRepositories=m=>{t.get(`/api/user/${e.userInfo.username}/all_repositories`,{params:{force:"1"}}).then(E=>{e.userInfo.repositories=E.data})};let b=null;e.watch("query",()=>{s.timeout.cancel(b),b=s.timeout(()=>{f(i.username)},500)},!0)},Sl=function(e,t,o){let i=pt(),s=xt();e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.conferences=[],e.total=-1,e.totalPage=0,e.statusCounts=[];let r=P=>{if(P.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){P.preventDefault();let k=document.querySelector('.admin-filter-toolbar input[type="search"]');k&&k.focus()}};s(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=P=>{P==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[P]="",e.query.page=1},e.chips=[];let a=()=>{let P=[];(e.query.dateFrom||e.query.dateTo)&&P.push({key:"dateRange",label:"Date",value:(e.query.dateFrom||"\u2026")+" \u2013 "+(e.query.dateTo||"\u2026")}),e.chips=P};e.statusCountFor=P=>{let k=(e.statusCounts||[]).find(v=>v._id===P);return k?k.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=P=>{e.query.sort===P?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=P,e.query.direction="desc"),e.query.page=1},e.sortIcon=P=>e.query.sort===P?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let p="admin.conferences.filterPrefs",f={page:1,limit:25,sort:"name",direction:"asc",search:"",dateFrom:"",dateTo:"",ready:!0,expired:!0,removed:!1,error:!0,preparing:!0},g=loadFilterPrefs(p)||{};e.query=Object.assign({},f,g,{page:1,search:""});let y=o.search();y.search&&(e.query.search=y.search);let b="admin.conferences.presets";e.presets=JSON.parse(localStorage.getItem(b)||"[]"),e.savePreset=()=>{let P=window.prompt("Preset name:");if(!P)return;let k=Object.assign({},e.query);delete k.page,e.presets=(e.presets||[]).filter(v=>v.name!==P),e.presets.push({name:P,query:k}),localStorage.setItem(b,JSON.stringify(e.presets))},e.applyPreset=P=>{Object.assign(e.query,P.query,{page:1})},e.deletePreset=P=>{e.presets=(e.presets||[]).filter(k=>k.name!==P.name),localStorage.setItem(b,JSON.stringify(e.presets))},e.removeConference=P=>{confirm("Remove conference "+P.conferenceID+"?")&&t.delete("/api/admin/conferences/"+P.conferenceID).then(()=>m(),k=>console.error(k))},e.exportCsv=()=>{let P=new URLSearchParams(Object.entries(e.query).filter(([,k])=>k!==""&&k!==!1&&k!=null));P.set("format","csv"),P.set("limit","10000"),window.open("/api/admin/conferences?"+P.toString(),"_blank")},e.fetchError=null;function m(){e.fetchError=null,t.get("/api/admin/conferences",{params:e.query}).then(P=>{e.total=P.data.total,e.totalPage=Math.ceil(P.data.total/e.query.limit),e.conferences=P.data.results,e.statusCounts=P.data.statusCounts||[]},P=>{e.fetchError=P&&P.data&&P.data.error||"Failed to load conferences",console.error(P)})}m();let E=null;e.watch("query",()=>{i.timeout.cancel(E),E=i.timeout(m,500);let{page:P,search:k,...v}=e.query;saveFilterPrefs(p,v),a()},!0),a()},Nl=function(e,t,o,i,s){let r=pt();e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.queueList=[],e.jobs=[],e.selectedQueue="download",e.selectedStats=null,e.range="1h",e.allStates=["active","waiting","delayed","failed","completed"],e.stateFilter={active:!0,waiting:!0,delayed:!0,failed:!0,completed:!0},e.query={search:"",autoRefresh:!0},e.filteredJobs=()=>(e.jobs||[]).filter(k=>e.stateFilter[k._state]),e.jobProgressPct=k=>k&&k.progress&&typeof k.progress=="object"&&typeof k.progress.percent=="number"?Math.max(0,Math.min(100,Math.round(k.progress.percent))):typeof k.progress=="number"?Math.max(0,Math.min(100,Math.round(k.progress))):null,e.jobDuration=k=>{if(!k.processedOn)return"-";let S=(k.finishedOn||Date.now())-k.processedOn;return S<1e3?S+"ms":(S/1e3).toFixed(1)+"s"},e.metricsPoints=[],e.selectQueue=k=>{e.selectedQueue=k,a(),p()},e.setRange=k=>{e.range=k,p()};function a(){let k={queue:e.selectedQueue,search:e.query.search};t.get("/api/admin/queues",{params:k}).then(v=>{e.queueList=v.data.queues||[],e.jobs=v.data.jobs||[],e.selectedStats=e.queueList.find(S=>S.key===e.selectedQueue)||e.queueList[0]||null},v=>console.error(v))}function p(){t.get("/api/admin/queues/metrics",{params:{queue:e.selectedQueue,range:e.range}}).then(k=>{e.metricsPoints=k.data.points||[],s(m,0)},k=>console.error(k))}a(),p();let f=i(()=>{e.query.autoRefresh&&(a(),p())},15e3);e.on("dispose",()=>i.cancel(f)),e.refreshNow=function(){a(),p()};function g(k){let v=k&&k.data&&(k.data.message||k.data.error)||"Request failed";e.actionError=v,s(()=>{e.actionError=null},5e3),console.error(k)}e.actionError=null,e.removeJob=k=>{t.delete(`/api/admin/queue/${e.selectedQueue}/${k.id}`).then(a,g)},e.retryJob=k=>{t.post(`/api/admin/queue/${e.selectedQueue}/${k.id}`).then(a,g)},e.retryFailed=()=>{confirm(`Retry all failed jobs in ${e.selectedQueue}?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/retry-failed`).then(a,k=>console.error(k))},e.drainSelected=()=>{confirm(`Drain the ${e.selectedQueue} queue?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/drain`).then(a,k=>console.error(k))},e.togglePause=()=>{let k=e.selectedStats&&e.selectedStats.paused?"resume":"pause";t.post(`/api/admin/queue/${e.selectedQueue}/${k}`).then(a,v=>console.error(v))},e.emptyQueue=()=>{confirm(`Empty the ${e.selectedQueue} queue? This removes ALL jobs.`)&&t.post(`/api/admin/queue/${e.selectedQueue}/empty`).then(a,k=>console.error(k))},e.pauseAll=()=>{confirm("Pause all queues?")&&t.post("/api/admin/queues/pause-all").then(a,k=>console.error(k))};let y=null;e.watch("query.search",()=>{r.timeout.cancel(y),y=r.timeout(a,350)}),e.expanded={},e.toggleJob=k=>{e.expanded[k.id]=!e.expanded[k.id]},e.humanTime=k=>{if(!k)return"";let v=new Date(k);return v.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})+" "+v.toLocaleDateString([],{month:"short",day:"numeric"})},e.delayCountdown=k=>{if(!k)return"";var v=Math.max(0,Math.ceil((k-Date.now())/1e3));if(v<=0)return"resuming soon";var S=Math.floor(v/60),_=v%60;return"in "+(S>0?S+"m "+_+"s":_+"s")};function b(k){if(k<=0)return{ticks:[0],niceMax:1};let v=Math.pow(10,Math.floor(Math.log10(k))),S=v;k/S<2?S=v/2:k/S>5&&(S=v*2);let _=Math.ceil(k/S)*S,M=[];for(let L=0;L<=_;L+=S)M.push(L);return{ticks:M,niceMax:_}}function m(){var k=document.getElementById("q-throughput-chart");if(!k)return;var v=k.getContext("2d"),S=window.devicePixelRatio||1,_=k.parentElement.getBoundingClientRect(),M=44,L=50,q=20,G=_.width-40,se=180,ee=G-M-L,R=se-q;k.width=G*S,k.height=se*S,k.style.width=G+"px",k.style.height=se+"px",v.setTransform(S,0,0,S,0,0);var K=document.body.classList.contains("dark-mode"),te="#8A857C",ve=K?"rgba(255,255,255,0.06)":"rgba(0,0,0,0.06)",x=K?"#6FBF8A":"#2F7D4F",ue=K?"rgba(111,191,138,0.12)":"rgba(47,125,79,0.08)",he=K?"#F08A82":"#B42318",Ee=K?"rgba(240,138,130,0.08)":"rgba(180,35,24,0.06)",ye=K?"#F5C842":"#B8860B",be=e.metricsPoints||[];if(be.length===0){v.fillStyle=te,v.font="13px Inter, system-ui, sans-serif",v.textAlign="center",v.fillText("No metrics data yet",G/2,se/2),E=null;return}var Le=be.map(function(D){return D.completed}),ze=be.map(function(D){return D.failed}),He=be.map(function(D){return D.avgMs});if(!Le.some(Boolean)&&!ze.some(Boolean)){v.strokeStyle=K?"rgba(255,255,255,0.14)":"rgba(0,0,0,0.12)",v.beginPath(),v.moveTo(0,se-18.5),v.lineTo(G,se-18.5),v.stroke(),v.fillStyle=K?"#CFC8BD":"#4F4A42",v.font="500 14px Inter, system-ui, sans-serif",v.textAlign="center",v.fillText("No jobs processed in this window",G/2,se/2-6),v.fillStyle=te,v.font="12.5px Inter, system-ui, sans-serif",v.fillText("Completed and failed jobs will chart here",G/2,se/2+16),E=null;return}var Me=be.length,F=ee/(Me-1||1),X=Math.max(1,Math.max.apply(null,Le),Math.max.apply(null,ze)),J=b(X),ne=Math.max.apply(null,He),U=ne>0?b(ne):{ticks:[0],niceMax:1},Q=function(D){return R-D/J.niceMax*(R-10)},H=function(D){return R-D/U.niceMax*(R-10)},re=function(D){return M+D*F};v.textAlign="right",v.textBaseline="middle",v.font="10px monospace",J.ticks.forEach(function(D){var I=Q(D);v.strokeStyle=ve,v.lineWidth=1,v.beginPath(),v.moveTo(M,I),v.lineTo(G-L,I),v.stroke(),v.fillStyle=te,v.fillText(D>=1e3?(D/1e3).toFixed(1)+"k":String(D),M-6,I)}),ne>0&&(v.textAlign="left",U.ticks.forEach(function(D){var I=H(D);v.fillStyle=ye,v.fillText(D>=1e3?(D/1e3).toFixed(1)+"s":D+"ms",G-L+6,I)}));var de=Date.now(),Ne=Math.min(6,Me);v.textAlign="center",v.textBaseline="top";for(var C=0;C0&&(v.beginPath(),He.forEach(function(D,I){var z=re(I),B=H(D);if(I===0)v.moveTo(z,B);else{var ie=(re(I-1)+z)/2;v.bezierCurveTo(ie,H(He[I-1]),ie,B,z,B)}}),v.strokeStyle=ye,v.lineWidth=1,v.setLineDash([4,3]),v.stroke(),v.setLineDash([])),E={pts:be,maxLen:Me,marginLeft:M,step:F,totalW:G,toX:re}}var E=null;function P(){var k=document.getElementById("q-throughput-chart");if(!(!k||k._tipBound)){k._tipBound=!0;var v=document.getElementById("q-chart-tooltip"),S=document.getElementById("q-chart-crosshair");k.addEventListener("mousemove",function(_){if(!(!E||!v||!S)){var M=E,L=k.getBoundingClientRect(),q=_.clientX-L.left,G=Math.round((q-M.marginLeft)/M.step);if(G<0||G>=M.maxLen){v.style.display="none",S.style.display="none";return}var se=M.pts[G],ee=Date.now(),R=Math.round((ee-se.ts)/6e4),K;if(R<=0)K="now";else if(R<60)K=R+"m ago";else if(R<1440){var te=Math.floor(R/60),ve=R%60;K=te+"h"+(ve?" "+ve+"m":"")+" ago"}else K=Math.round(R/1440)+"d ago";var x='
'+K+'
● completed: '+se.completed+'/min
● failed: '+se.failed+"/min
";if(se.avgMs>0){var ue=se.avgMs>=1e3?(se.avgMs/1e3).toFixed(1)+"s":se.avgMs+"ms";x+='
● avg time: '+ue+"
"}v.innerHTML=x;var he=M.toX(G),Ee=v.offsetWidth,ye=he+10;ye+Ee>M.totalW&&(ye=he-Ee-10),v.style.display="block",v.style.left=ye+"px",v.style.top="8px",S.style.display="block",S.style.left=he+"px"}}),k.addEventListener("mouseleave",function(){v&&(v.style.display="none"),S&&(S.style.display="none")})}}e.watch("metricsPoints",function(){s(P,50)})},Rl=function(e,t,o,i){let s=pt();e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.entries=[],e.visible=[],e.available=!0,e.cap=1e3,e.total=0,e.pageSize=250,e.expanded={},e.detailTab={},e.copyHint="",e.parsedFilterCount=0,e.stats={last24h:0,prev24h:0,delta:0,severity:{error:0,warn:0,info:0},unique:{error:0,warn:0,info:0},buckets:[],dropped:0},e.query={search:"",bucket:"",sort:"recent",group:"code",autoRefresh:!0},e.relTime=S=>{if(!S)return"";let _=new Date(S).getTime();if(isNaN(_))return S;let M=Math.max(0,Date.now()-_),L=Math.floor(M/1e3);if(L<5)return"just now";if(L<60)return`${L}s ago`;let q=Math.floor(L/60);if(q<60)return`${q}m ago`;let G=Math.floor(q/60);if(G<24)return`${G}h ago`;let se=Math.floor(G/24);return se<7?`${se}d ago`:new Date(S).toLocaleDateString()},e.absTime=S=>{if(!S)return"";let _=new Date(S);return isNaN(_.getTime())?S:_.toLocaleString()},e.absTimeShort=S=>{if(!S)return"";let _=new Date(S);return isNaN(_.getTime())?S:_.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})};let r=/^[a-zA-Z][a-zA-Z0-9]*(?:_[a-zA-Z0-9]+)+$/;function a(S,_){let M=S&&(S.httpStatus||S.status)||null;if(typeof M=="number"){if(M>=500)return"error";if(M===401||M===403||M===404)return"info";if(M>=400)return"warn"}return _==="error"?"error":_==="warn"?"warn":"info"}function p(S){let _=(S.raw||[]).find(G=>G&&typeof G=="object"&&!Array.isArray(G));if(_){_.message&&r.test(_.message)?(S.displayMessage=_.message,S.displayContext=S.message):_.code&&r.test(String(_.code))?(S.displayMessage=String(_.code),S.displayContext=S.message):_.name&&_.name!=="AnonymousError"&&_.name!=="Error"?(S.displayMessage=_.name,S.displayContext=_.message||S.message):S.displayMessage=S.message,S._status=_.httpStatus||_.status||null,S._url=_.url||null,S._method=_.method||null,S._repoId=_.repoId||_.detail||null,S._detail=_.detail&&_.detail!==S._repoId?_.detail:null;let G=typeof _.stack=="string"?_.stack:null;for(var M=[_.cause,_.err].filter(Boolean),L=0;!G&&L{R==null||R===""||M.push([ee,R])};L("name",_&&_.name),L("code",S.displayMessage||_&&_.message),S._bucket&&L("kind",S._bucket),L("httpStatus",_&&_.httpStatus),_&&_.status&&!_.httpStatus&&L("status",_.status),L("module",S.module);let q=_&&_.detail;if(typeof q=="string"){let ee=q.trim();if(ee[0]==="{"||ee[0]==="[")try{q=JSON.parse(q)}catch{}}if(L("detail",q),L("repoId",_&&_.repoId),L("filePath",_&&_.filePath),L("upstreamStatus",_&&_.upstreamStatus),L("upstreamBody",_&&_.upstreamBody),L("url",S._url),L("err",_&&_.err),L("cause",_&&!_.err&&_.cause),L("ts",S.ts),!M.length)return JSON.stringify(S,null,2);let G=M.reduce((ee,R)=>Math.max(ee,R[0].length),0),se=["{"];return M.forEach(([ee,R],K)=>{let ve=` ${`"${ee}":`.padEnd(G+3," ")} `,x=Kye===0?Ee:he+Ee).join(` -`)}else typeof R=="number"||typeof R=="boolean"?ue=String(R):ue=JSON.stringify(R);se.push(`${ve}${ue}${x}`)}),se.push("}"),se.join(` -`)}function g(S){let _=[],M="",L=/(\w+):(>=|<=|!=|>|<|=)?([^\s]+)/g,q=0,G;for(;G=L.exec(S);)M+=S.slice(q,G.index),q=L.lastIndex,_.push({key:G[1],op:G[2]||"=",val:G[3]});return M+=S.slice(q),{filters:_,free:M.trim().toLowerCase()}}function y(S,_){for(let M of _.filters){let L=(G,se,ee)=>{let R=parseFloat(G),K=parseFloat(se);return ee==="="?String(G)===String(se):ee==="!="?String(G)!==String(se):ee===">="?R>=K:ee==="<="?R<=K:ee===">"?R>K:ee==="<"?R_&&ee._bucket!==_?!1:y(ee,S)),L=e.query.group;if(L){let ee=te=>L==="module"?te.module:te.displayMessage||te.message||"_",R=new Map;for(let te of M){let ve=ee(te);if(R.has(ve)){let x=R.get(ve);x.count++,x._related.push(te),new Date(te.ts)>new Date(x.ts)&&(x.ts=te.ts,x._url=te._url,x._status=te._status),new Date(te.ts)new Date(ve.ts).getTime()>=K).length;M=Array.from(R.values())}else M=M.map((ee,R)=>(ee._key="row:"+R+":"+ee.ts,ee._related=[ee],ee._firstSeen=ee.ts,ee._lastHourCount=0,ee.count=1,ee));let q=ee=>({error:0,warn:1,info:2})[ee._bucket]??1;e.query.sort==="count"?M.sort((ee,R)=>q(ee)-q(R)||R.count-ee.count||new Date(R.ts)-new Date(ee.ts)):M.sort((ee,R)=>q(ee)-q(R)||new Date(R.ts)-new Date(ee.ts)),e.visible=M;let G=!!(e.query.bucket||(e.query.search||"").trim()),se=!G&&(e.stats?.severity?.error||0)>0&&!M.some(ee=>ee._bucket==="error")&&e.entries.length<1500;(G&&!M.length||se)&&e.canLoadMore?.()&&!e._autoLoading&&e.entries.length<2500&&(e._autoLoading=!0,m(!0))}function m(S){let _=S?e.entries.length:0,M=S?e.pageSize:Math.max(e.pageSize,e.entries.length||e.pageSize);t.get("/api/admin/errors",{params:{offset:_,limit:M}}).then(L=>{let q=(L.data.entries||[]).map(p);e.entries=S?e.entries.concat(q):q,e.available=!!L.data.available,e.cap=L.data.max||e.cap,e.total=L.data.total||e.entries.length,e._autoLoading=!1,b()},L=>{e._autoLoading=!1,console.error(L)})}e.loadMore=()=>m(!0),e.canLoadMore=()=>e.entries.length{let _=S.data||{},M=_.prev24h?Math.round((_.last24h-_.prev24h)/_.prev24h*100):0;e.stats={last24h:_.last24h||0,prev24h:_.prev24h||0,delta:M,severity:_.severity||{error:0,warn:0,info:0},unique:_.unique||{error:0,warn:0,info:0},buckets:_.buckets||[],dropped:_.dropped||0},b()},S=>console.error(S))}function P(){m(),E()}e.barPx=(S,_)=>{let M=e.stats.buckets||[],L=0,q=0;for(let R of M)L=Math.max(L,(R.error||0)+(R.warn||0)),q=Math.max(q,R.info||0);let G=S[_]||0;if(!G)return 0;if(_==="info")return q?Math.max(2,Math.round(G/q*(L?16:60))):0;let se=(S.error||0)+(S.warn||0),ee=Math.round(se/L*44);return Math.max(4,Math.round(G/se*ee))},e.bucketTitle=S=>`${new Date(S.hour).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})} \xB7 ${S.error||0} err \xB7 ${S.warn||0} warn \xB7 ${S.info||0} info`,e.toggle=S=>{e.expanded[S._key]=!e.expanded[S._key]},e.setBucket=S=>{e.query.bucket=S},e.refreshNow=P,e.clearAll=()=>{confirm("Clear all captured errors?")&&t.delete("/api/admin/errors").then(P,S=>console.error(S))},e.exportCsv=()=>{let S=["ts","level","module","displayMessage","_status","_url","_repoId"],_=[S.join(",")];for(let G of e.visible)_.push(S.map(se=>{let ee=G[se]==null?"":String(G[se]);return/[",\n]/.test(ee)?`"${ee.replace(/"/g,'""')}"`:ee}).join(","));let M=new Blob([_.join(` -`)],{type:"text/csv;charset=utf-8"}),L=URL.createObjectURL(M),q=document.createElement("a");q.href=L,q.download=`errors-${new Date().toISOString().slice(0,19)}.csv`,document.body.appendChild(q),q.click(),document.body.removeChild(q),URL.revokeObjectURL(L)};function k(S){e.copyHint=`${S} copied`,s.timeout(()=>{e.copyHint=""},1500)}e.copyJson=S=>{navigator.clipboard.writeText(S._detailJson).then(()=>k("JSON"))},e.copyCurl=S=>{if(!S._url)return;let M=`curl -X ${S._method||"GET"} '${window.location.origin}${S._url}'`;navigator.clipboard.writeText(M).then(()=>k("curl"))},P();let v=i(()=>{e.query.autoRefresh&&P()},15e3);e.on("dispose",()=>i.cancel(v)),e.watch("query.search",b),e.watch("query.bucket",b),e.watch("query.sort",b),e.watch("query.group",b)},Dl=function(e,t,o,i){if(e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null){o.url("/");return}e.data=null,e.loading=!0,e.error=null,e.performance=null,e.performanceMinutes=15,e.performanceTab="routes",e.cacheReport=null,e.cacheError=null,e.cacheMinutes=60,e.cacheTraffic="all",e.ovView=["performance","cache"].includes((window.location.hash||"").slice(1))?window.location.hash.slice(1):"summary",e.setOvView=function(v){e.ovView=v;try{window.history.replaceState(null,"",v==="summary"?window.location.pathname:"#"+v)}catch{}};var s=!1;e.loadCache=function(){if(!s){s=!0;var v=e.cacheMinutes;t.get("/api/admin/cache",{params:{minutes:v}}).then(function(S){v===e.cacheMinutes&&(e.cacheReport=S.data,e.cacheError=S.data.available?null:S.data.reason||"Cache monitoring is unavailable.")},function(){e.cacheError="Could not refresh cache monitoring. Displayed values may be stale."}).finally(function(){s=!1,v!==e.cacheMinutes&&e.loadCache()})}},e.cacheRows=function(){return(e.cacheReport?.rows||[]).filter(function(v){return e.cacheTraffic==="all"||v.traffic===e.cacheTraffic})},e.cacheRate=function(v,S){var _=e.cacheRows(),M=function(G){return _.filter(function(se){return se.name===G}).reduce(function(se,ee){return se+ee[S]},0)},L=M(v+"_hit"),q=M(v+"_miss");return L+q?(100*L/(L+q)).toFixed(1)+"%":"No samples"},e.cacheEventName=function(v){return v.replaceAll("_"," ")},e.cacheP95=function(v){var S=0,_=e.cacheReport?.latencyBucketsMs||[];if(!v.count)return"No samples";if(!v.ms)return"Not timed";for(var M=0;M<=_.length;M++)if(S+=v["b"+M]||0,S>=Math.ceil(v.count*.95))return M<_.length?"\u2264 "+_[M]+" ms":"> 10 s";return"No samples"},e.performanceError=null,e.formatMs=function(v){return v==null?"":v<1e3?v+" ms":+(v/1e3).toFixed(1)+" s"},e.latencyBound=function(v,S){return v.count?v[S]==null?"> 60 s":"\u2264 "+e.formatMs(v[S]):"No samples"},e.firstByteBound=function(v){return e.latencyBound({count:v.firstByteCount,p95UpperMs:v.firstByteP95UpperMs},"p95UpperMs")},e.sampleAge=function(v){return Math.max(0,Math.round((Date.now()-v.sampledAt)/1e3))},e.peakRss=function(v){return(e.performance.runtimeSeries||[]).filter(function(S){return S.instance===v.instance}).reduce(function(S,_){return Math.max(S,_.rss)},v.memory.rss)},e.performanceWarning=function(v){return e.sampleAge(v)>45||v.droppedBatches||v.droppedMetrics||v.sockets?.closeWait>0||v.eventLoop?.p95Ms>100||v.memoryLimitBytes&&v.memory.rss>v.memoryLimitBytes*.8};var r=!1;e.loadPerformance=function(){var v=e.performanceMinutes;e.performance?.windowMinutes&&e.performance.windowMinutes!==v&&(e.performance=null),!r&&(r=!0,t.get("/api/admin/performance",{params:{minutes:v}}).then(function(S){v===e.performanceMinutes&&(e.performance=S.data,e.performanceError=S.data.available?null:"Performance monitoring is unavailable. Request history may be incomplete.")},function(){v===e.performanceMinutes&&(e.performanceError="Could not refresh performance monitoring. Displayed samples may be stale.")}).finally(function(){r=!1,v!==e.performanceMinutes&&e.loadPerformance()}))};function a(v){if(v==null)return"\u2014";for(var S=["B","KB","MB","GB","TB"],_=0,M=v;M>=1024&&_0?1:0)+" "+S[_]}e.humanBytes=a;function p(v){if(!v)return"\u2014";var S=Math.floor(v/86400),_=Math.floor(v%86400/3600),M=Math.floor(v%3600/60);return S>0?S+"d "+(_<10?"0":"")+_+"h":_>0?_+"h "+(M<10?"0":"")+M+"m":M+"m"}e.humanDuration=p;function f(v){return v==null?"\u2014":v>=1e6?(v/1e6).toFixed(1)+"M":v>=1e3?(v/1e3).toFixed(1)+"K":String(v)}e.humanNum=f,e.queueTotal=function(v){return v?(v.waiting||0)+(v.active||0)+(v.delayed||0)+(v.failed||0):0},e.statusCount=function(v){if(!e.data||!e.data.repos)return 0;for(var S=e.data.repos.statusBreakdown||[],_=0;_=0;q--){var G=new Date(_.getTime()-q*864e5),se=G.toISOString().slice(0,10);L.push(M[se]||{date:G.toISOString(),_empty:!0,dailyPageViews:0,dailyRepositories:0,dailyUsers:0,nbUsers:0})}return L}var m={};e.historyMax=function(v){return m[v]||0};var E={};e.historyBarH=function(v,S){return!v||!m[S]?0:Math.max(1,Math.round(v[S]/m[S]*140))},e.historyRangeH=function(v,S){if(!v||m[S]==null)return 0;var _=m[S]-E[S];return _?Math.round(8+(v[S]-E[S])/_*132):70},e.historyRange=function(v){return{min:E[v],max:m[v]}},e.historyLabel=function(v){if(!v||!v.date)return"";var S=new Date(v.date);return S.getUTCMonth()+1+"/"+S.getUTCDate()};function P(){e.loadPerformance(),e.loadCache(),t.get("/api/admin/overview").then(function(v){v.data.history=g(v.data.history),v.data.daily={today:y(v.data.history)},v.data.history=b(v.data.history,30),v.data.daily={today:y(v.data.history)},e.data=v.data,e.loading=!1,e.error=null,m={},E={},(v.data.history||[]).forEach(function(S){["dailyPageViews","dailyRepositories","dailyUsers","nbUsers"].forEach(function(_){(!m[_]||S[_]>m[_])&&(m[_]=S[_]),(E[_]==null||S[_]Ni(e,t)},{path:"/connections",template:"partials/connections.htm",title:"GitHub connections \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>bl(e,t.http)},{path:"/signin",template:"partials/signin.htm",title:"Sign in \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>wl(e,t.http)},{path:"/",template:"partials/home.htm",title:"Anonymous GitHub \u2013 Share the code, not the author",preserveExplorer:!1,setup:(e,t)=>pl(e,t.http,t.location,t.window,t.timeout)},{path:"/dashboard",template:"partials/dashboard.htm",title:"Your anonymizations \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>fl(e,t.http,t.location,t.promises,t.window,t.quotaService)},{path:"/pr-dashboard",redirect:"/dashboard"},{path:"/anonymize/:repoId?",template:"partials/anonymize.htm",title:"New anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ps(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/pull-request-anonymize/:pullRequestId?",template:"partials/anonymize.htm",title:"Anonymize a pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ps(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/gist-anonymize/:gistId?",template:"partials/anonymize.htm",title:"Anonymize a gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ps(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/status/:repoId",template:"partials/status.htm",title:"Repository status \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ml(e,t.http,t.params)},{path:"/conferences",template:"partials/conferences.htm",title:"Your conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>gl(e,t.http,t.location)},{path:"/conference/new",template:"partials/newConference.htm",title:"New conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>yi(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId/edit",template:"partials/newConference.htm",title:"Edit conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>yi(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId",template:"partials/conference.htm",title:"Conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>yl(e,t.http,t.location,t.params)},{path:"/faq",template:"partials/faq.htm",title:"FAQ \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>dl(e,t.http)},{path:"/profile",template:"partials/profile.htm",title:"Your settings \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ul(e,t.http,t.translate,t.timeout,t.quotaService)},{path:"/claim",template:"partials/claim.htm",title:"Claim an anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>cl(e,t.http,t.location)},{path:"/pr/:pullRequestId/:path(.*)*",template:"partials/pullRequest.htm",title:"Anonymous pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>hl(e,t.http,t.location,t.params,t.html)},{path:"/gist/:gistId/:path(.*)*",template:"partials/gist.htm",title:"Anonymous gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>vl(e,t.http,t.location,t.params,t.html)},{path:"/r/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>gi(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/repository/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>gi(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/admin/",template:"partials/admin/overview.htm",title:"Admin \xB7 Overview \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Dl(e,t.http,t.location,t.interval)},{path:"/admin/repositories",template:"partials/admin/repositories.htm",title:"Admin \xB7 Repositories \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>kl(e,t.http,t.location)},{path:"/admin/users",template:"partials/admin/users.htm",title:"Admin \xB7 Users \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Cl(e,t.http,t.location)},{path:"/admin/users/:username",template:"partials/admin/user.htm",title:"Admin \xB7 User details \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>El(e,t.http,t.location,t.params)},{path:"/admin/conferences",template:"partials/admin/conferences.htm",title:"Admin \xB7 Conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Sl(e,t.http,t.location)},{path:"/admin/queues",template:"partials/admin/queues.htm",title:"Admin \xB7 Queues \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Nl(e,t.http,t.location,t.interval,t.timeout)},{path:"/admin/errors",template:"partials/admin/errors.htm",title:"Admin \xB7 Errors \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Rl(e,t.http,t.location,t.interval)},{path:"/404",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",preserveExplorer:!1,setup:()=>{}},{path:"/:pathMatch(.*)*",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",setup:()=>{}}];var Vp={class:"container py-4",style:{"max-width":"48rem","overflow-wrap":"anywhere"}},qp={key:0},Lp={key:1,role:"alert"},$p={key:2,role:"status"},Up={key:0},Fp={key:1},Bp=["disabled"],zp=["disabled"],Hp=["disabled"],jp={key:5,class:"mt-4","aria-labelledby":"review-policy-title"},Gp={id:"review-policy-title"},Wp={key:0,role:"alert"},Kp=["disabled"],Yp=["disabled"],Jp=["disabled"],Qp={key:6,role:"status"};function _l(e,t){return l(),d("section",Vp,[t[12]||(t[12]=n("a",{href:"/"},"Anonymous GitHub",-1)),t[13]||(t[13]=n("h1",{class:"mt-3"},"Approve artifact access",-1)),t[14]||(t[14]=n("p",null,"This records your approval as the repository owner or an authorized coauthor.",-1)),e.user?.username?c("v-if",!0):(l(),d("p",qp,[...t[6]||(t[6]=[h("Sign in first, then reopen the artifact link from your submission. ",-1),n("a",{href:"/signin"},"Sign in",-1)])])),e.error?(l(),d("p",Lp,u(e.error),1)):c("v-if",!0),e.saved?(l(),d("p",$p,[t[7]||(t[7]=h("Consent recorded. ",-1)),e.handoffEnabled?(l(),d("span",Up,"Continue to review to finish linking.")):(l(),d("span",Fp,"Artifact linking is not complete. Return to your submission to check its status."))])):c("v-if",!0),e.saved&&e.handoffEnabled?(l(),d("button",{key:3,class:"btn btn-primary",type:"button",onClick:t[0]||(t[0]=(...o)=>e.continueReview&&e.continueReview(...o)),disabled:e.busy},"Continue to review",8,Bp)):c("v-if",!0),e.user?.username&&!e.saved?(l(),d("form",{key:4,onSubmit:t[2]||(t[2]=ae((...o)=>e.loadPreview&&e.loadPreview(...o),["prevent"]))},[t[8]||(t[8]=n("label",{for:"review-repository"},"Anonymous repository ID",-1)),T(n("input",{id:"review-repository",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=o=>e.repositoryId=o),maxlength:"128",autocomplete:"off",disabled:e.busy||e.uncertain,"aria-describedby":"review-repository-help"},null,8,zp),[[ot,e.repositoryId]]),t[9]||(t[9]=n("p",{id:"review-repository-help"},"Use the ID after /r/ in the anonymous repository URL.",-1)),n("button",{type:"submit",class:"btn btn-primary",disabled:e.busy||e.uncertain},"Preview access and retention",8,Hp)],32)):c("v-if",!0),e.preview&&!e.saved?(l(),d("section",jp,[n("h2",Gp,u(e.preview.repositoryName),1),n("p",null,"Access: "+u(e.preview.policy.access==="anonymous-link"?"Anyone with the anonymous link":"Restricted review access")+".",1),n("p",null,"Retain until "+u(e.preview.policy.retainUntil)+". Policy version "+u(e.preview.policy.version)+".",1),e.expired?(l(),d("p",Wp,"This preview expired. Open a new artifact link from your submission.")):c("v-if",!0),n("div",null,[n("label",null,[T(n("input",{type:"checkbox","onUpdate:modelValue":t[3]||(t[3]=o=>e.acceptAccess=o),disabled:e.busy||e.uncertain||e.expired},null,8,Kp),[[ti,e.acceptAccess]]),t[10]||(t[10]=h(" I approve the access policy above.",-1))])]),n("div",null,[n("label",null,[T(n("input",{type:"checkbox","onUpdate:modelValue":t[4]||(t[4]=o=>e.acceptRetention=o),disabled:e.busy||e.uncertain||e.expired},null,8,Yp),[[ti,e.acceptRetention]]),t[11]||(t[11]=h(" I approve retention until the date above.",-1))])]),n("button",{class:"btn btn-primary",type:"button",onClick:t[5]||(t[5]=(...o)=>e.confirmConsent&&e.confirmConsent(...o)),disabled:e.busy||e.expired||!e.acceptAccess||!e.acceptRetention},u(e.uncertain?"Retry confirmation":"Confirm consent"),9,Jp)])):c("v-if",!0),e.busy?(l(),d("p",Qp,"Waiting for the server\u2026")):c("v-if",!0)])}var Xp={class:"container paper-page connections-page"},Zp={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},xp={key:1,role:"status"},ef=["disabled"],tf={key:3},nf={key:0,class:"connection-resources"},of=["disabled"],sf=["disabled"],rf={key:0,role:"status"},af={class:"connections-grid"},lf={key:0},df={class:"connection-title"},uf={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},cf={class:"connection-actions"},pf={key:0,class:"btn btn-ink",target:"_self",href:"/github/app/install"},ff=["disabled"],mf={key:1,class:"connection-installations"},hf={key:0},vf=["href"],gf={class:"sr-only"},yf={class:"connection-title"},bf={key:0,target:"_self",href:"/github/login",class:"btn btn-outline-ink"},wf={key:1,class:"connection-revoke"},kf={key:0},Cf=["disabled"],Ef={class:"connection-resources"},Sf={class:"connection-title"},Nf={class:"connection-count"},Rf={key:0,class:"connection-empty"},Df={class:"connection-resource-name"},Tf={key:0,class:"connection-resource-actions"},_f=["disabled","onClick"],Af=["disabled","onClick"],Of={key:1,class:"connection-help",role:"status"},Pf=["disabled","onClick"];function Al(e,t){return l(),d("div",Xp,[t[27]||(t[27]=me('
My work \xA0/\xA0 GitHub connections

GitHub connections

Manage how GitHub shares your code. Your anonymizations and URLs stay the same.

',2)),e.connectionError?(l(),d("p",Zp,u(e.connectionError),1)):c("v-if",!0),!e.connections&&!e.connectionError?(l(),d("p",xp,"Loading your connections\u2026")):c("v-if",!0),!e.connections&&e.connectionError?(l(),d("button",{key:2,class:"btn btn-outline-ink",disabled:e.busy,onClick:t[0]||(t[0]=o=>e.loadConnections())},"Try again",8,ef)):c("v-if",!0),e.connections?(l(),d("div",tf,[e.connections.emailNotificationsEnabled?(l(),d("section",nf,[t[6]||(t[6]=n("h2",null,"Email alerts",-1)),t[7]||(t[7]=n("p",null,"We will email you if your GitHub connection stops working or a repository becomes inaccessible. Your address is never shown on anonymous pages.",-1)),n("form",{onSubmit:t[2]||(t[2]=ae(o=>e.saveNotificationEmail(),["prevent"]))},[t[5]||(t[5]=n("label",{for:"notification-email"},"Email address",-1)),T(n("input",{id:"notification-email",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[1]||(t[1]=o=>e.notificationEmail=o),disabled:e.busy},null,8,of),[[ot,e.notificationEmail]]),n("button",{class:"btn btn-ink mt-2",type:"submit",disabled:e.busy},"Save email address",8,sf),e.emailSaved?(l(),d("p",rf,"Email address saved.")):c("v-if",!0)],32)])):c("v-if",!0),n("div",af,[e.connections.appEnabled?(l(),d("section",lf,[t[15]||(t[15]=n("div",{class:"connection-top"},[n("i",{class:"fab fa-github","aria-hidden":"true"}),n("span",{class:"connection-badge"},"Recommended")],-1)),n("div",df,[t[8]||(t[8]=n("h2",null,"GitHub App",-1)),n("span",{class:O(["connection-status",{"is-connected":e.connections.appConnected&&!e.connections.appError}])},u(e.connections.appError?"Needs attention":e.connections.appConnected?"Connected":"Not connected"),3)]),t[16]||(t[16]=n("p",null,"Read-only access to gists and the repositories you choose.",-1)),e.connections.appError?(l(),d("p",uf,u(e.connections.appError)+". Reconnect to restore access.",1)):c("v-if",!0),n("div",cf,[e.connections.appConnected&&!e.connections.appError?(l(),d("a",pf,[...t[9]||(t[9]=[h("Manage repository access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):c("v-if",!0),n("a",{class:O(e.connections.appConnected&&!e.connections.appError?"connection-link":"btn btn-ink"),target:"_self",href:"/github/app/login"},u(e.connections.appConnected?"Reconnect account":"Connect GitHub account"),3),e.connections.appConnected?(l(),d("button",{key:1,class:"connection-link connection-refresh",title:"Refresh access",disabled:e.busy,onClick:t[3]||(t[3]=o=>e.loadConnections())},[...t[10]||(t[10]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),n("span",{class:"sr-only"},"Refresh access",-1)])],8,ff)):c("v-if",!0)]),t[17]||(t[17]=n("p",{class:"connection-help"},"Choose repositories on GitHub. Organization access may need an administrator's approval.",-1)),e.connections.installations?.length?(l(),d("ul",mf,[(l(!0),d(W,null,oe(e.connections.installations,o=>(l(),d("li",{key:o.id},[n("div",null,[t[11]||(t[11]=n("span",{class:"connection-label"},"Installed on",-1)),t[12]||(t[12]=h()),n("strong",null,u(o.account),1),o.suspended?(l(),d("span",hf," \xB7 Suspended")):c("v-if",!0)]),e.connections.installations.length>1?(l(),d("a",{key:0,target:"_self",href:"/github/app/install?installationId="+o.id},[t[13]||(t[13]=h("Manage access ",-1)),n("span",gf,"for "+u(o.account),1),t[14]||(t[14]=h(" \u2192",-1))],8,vf)):c("v-if",!0)]))),128))])):c("v-if",!0)])):c("v-if",!0),n("section",null,[t[20]||(t[20]=n("div",{class:"connection-top"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-key"})]),n("span",{class:"connection-badge connection-badge-muted"},"Legacy")],-1)),n("div",yf,[t[18]||(t[18]=n("h2",null,"GitHub OAuth",-1)),n("span",{class:O(["connection-status",{"is-connected":e.connections.oauthConnected}])},u(e.connections.oauthConnected?"Connected":"Not connected"),3)]),t[21]||(t[21]=n("p",null,"For existing OAuth anonymizations.",-1)),t[22]||(t[22]=n("p",{class:"connection-help"},"This connection uses GitHub's broader repository permissions. Existing work keeps using it until you switch below.",-1)),e.connections.oauthEnabled?(l(),d("a",bf,u(e.connections.oauthConnected?"Reconnect OAuth":"Connect legacy OAuth"),1)):c("v-if",!0),e.connections.oauthConnected?(l(),d("div",wf,[e.connections.gistCount?(l(),d("p",kf,u(e.connections.gistCount)+" gist(s) use your GitHub App connection when available.",1)):c("v-if",!0),t[19]||(t[19]=n("p",null,"Switch all dependent repositories before revoking access. Gists can use your GitHub App connection.",-1)),e.connections.appConnected?(l(),d("button",{key:1,class:"btn btn-sm btn-outline-danger connection-danger",disabled:e.busy||e.connections.resources.some(o=>o.connection==="oauth"),onClick:t[4]||(t[4]=o=>e.disconnectOAuth())},"Revoke OAuth access",8,Cf)):c("v-if",!0)])):c("v-if",!0)])]),n("section",Ef,[n("div",Sf,[t[23]||(t[23]=n("h2",null,"Repository connections",-1)),n("span",Nf,u(e.connections.resources?.length||0)+" "+u((e.connections.resources?.length||0)===1?"resource":"resources"),1)]),t[25]||(t[25]=n("p",null,"Check access, then switch each resource to the GitHub App. After reinstalling the App, reconnect existing resources here to keep their anonymous URLs and published snapshots.",-1)),e.connections.resources?.length?c("v-if",!0):(l(),d("div",Rf,[...t[24]||(t[24]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),n("div",null,[n("h3",null,"No repository connections yet"),n("p",null,"Your repositories and pull requests will appear here once you anonymize them.")],-1),n("a",{class:"connection-link",href:"/anonymize"},"New anonymization \u2192",-1)])])),(l(!0),d(W,null,oe(e.connections.resources,o=>(l(),d("div",{class:"connection-resource",key:o.type+o.id},[n("div",Df,[n("strong",null,u(o.name||o.id),1),n("small",null,u(o.type)+" \xB7 "+u(o.id),1)]),n("span",{class:O(["connection-badge",{"connection-badge-muted":o.connection==="oauth"}])},u(o.connection==="github-app"?"Read-only App":"Legacy OAuth"),3),!["archived","removed","preparing","queue","removing","expiring"].includes(o.status)&&(o.status!=="download"||o.type==="pull-request"&&(!o.statusDate||new Date(o.statusDate).getTime()<=Date.now()-3e5))&&e.connections.appEnabled&&e.connections.appConnected?(l(),d("div",Tf,[n("button",{class:"btn btn-outline-ink",disabled:e.busy,onClick:i=>e.changeConnection(o,"github-app",!0)},"Check read-only access",8,_f),o.eligible?(l(),d("button",{key:0,class:"btn btn-ink",disabled:e.busy,onClick:i=>e.changeConnection(o,"github-app",!1)},u(o.connection==="github-app"?"Reconnect read-only access":"Switch to read-only access"),9,Af)):c("v-if",!0),o.eligible===!1?(l(),d("span",Of,"Access unavailable. Allow this repository on GitHub, then check again.")):c("v-if",!0)])):c("v-if",!0),!["archived","removed","preparing","queue","removing","expiring"].includes(o.status)&&(o.status!=="download"||o.type==="pull-request"&&(!o.statusDate||new Date(o.statusDate).getTime()<=Date.now()-3e5))&&o.connection==="github-app"&&e.connections.oauthConnected?(l(),d("button",{key:1,class:"connection-link",disabled:e.busy,onClick:i=>e.changeConnection(o,"oauth",!1)},"Use OAuth",8,Pf)):c("v-if",!0)]))),128)),t[26]||(t[26]=n("p",{class:"connection-footnote"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),h(" Removing access stops new fetches from GitHub. Published content keeps its current expiration and removal settings.")],-1))])])):c("v-if",!0)])}var If={class:"container paper-page auth-page"},Mf={class:"auth-layout"},Vf={class:"auth-options"},qf={key:0},Lf={key:0,class:"btn btn-ink auth-continue",target:"_self",href:"/github/login?recover=1"},$f={key:1},Uf={key:1},Ff={key:2,class:"auth-legacy"},Bf={key:3,role:"status"};function Ol(e,t){return l(),d("div",If,[t[5]||(t[5]=n("a",{class:"auth-back",href:"/"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-arrow-left"})]),h(" Anonymous GitHub")],-1)),n("div",Mf,[t[4]||(t[4]=me('
Your research, ready for review

Your code.
Your identity,
protected.
Sign in to GitHub

Sign in to create and manage your anonymizations.

',1)),n("div",Vf,[e.accountRecovery?(l(),d("section",qf,[t[0]||(t[0]=n("h2",null,"Verify your existing account",-1)),t[1]||(t[1]=n("p",null,"We found an existing account. Verify it with your previous GitHub connection to keep your anonymizations. Future sign-ins will use the GitHub App.",-1)),e.site_options?.GITHUB_OAUTH_ENABLED?(l(),d("a",Lf,"Verify with previous GitHub connection")):(l(),d("p",$f,"Account verification is currently unavailable. Please try again later."))])):c("v-if",!0),e.site_options?.GITHUB_APP_ENABLED&&!e.accountRecovery?(l(),d("section",Uf,[...t[2]||(t[2]=[me('
Read-only access

Continue with GitHub

Connect through the GitHub App with read-only repository access.

  • You choose which repositories to share
  • No permission to write to your code
Sign in with GitHub Your existing anonymizations and connections stay with your account.',6)])])):c("v-if",!0),!e.site_options?.GITHUB_APP_ENABLED&&e.site_options?.GITHUB_OAUTH_ENABLED&&!e.accountRecovery?(l(),d("section",Ff,[...t[3]||(t[3]=[n("div",{class:"connection-title"},[n("h2",null,"Continue with GitHub")],-1),n("p",null,"Sign in to access your account. GitHub OAuth includes write access to private repositories.",-1),n("a",{class:"connection-link",target:"_self",href:"/github/login"},[h("Sign in with GitHub "),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-arrow-right"})])],-1)])])):c("v-if",!0),e.site_options&&!e.site_options.GITHUB_APP_ENABLED&&!e.site_options.GITHUB_OAUTH_ENABLED?(l(),d("p",Bf,"GitHub sign-in is currently unavailable. Please try again later.")):c("v-if",!0)])])])}var zf={class:"paper-empty"};function Pl(e,t){return l(),d("div",zf,[...t[0]||(t[0]=[me('
Error \xB7 404

This link
isn\u2019t here.

The anonymous mirror you\u2019re looking for has expired, been removed by its owner, or never existed. If you received this URL from an author, ask them to re-issue it.

',1)])])}var Hf={class:"container paper-page admin-page"},jf={class:"summary-total"},Gf=["aria-pressed"],Wf={class:"count"},Kf=["aria-pressed"],Yf={class:"count"},Jf=["aria-pressed"],Qf={class:"count"},Xf=["aria-pressed"],Zf={class:"count"},xf=["aria-pressed"],em={class:"count"},tm={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},nm={class:"w-100 admin-filter-toolbar","aria-label":"Conferences","accept-charset":"UTF-8"},om={class:"admin-filter-row"},sm={class:"search-wrap"},im={type:"search",class:"form-control",placeholder:"Search conferences\u2026",autocomplete:"off"},rm={key:0,class:"admin-search-hint"},am={key:1,class:"admin-filter-inline","aria-label":"Pagination"},lm=["disabled"],dm={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},um=["disabled"],cm={key:0,class:"admin-filter-row"},pm={class:"admin-active-chips"},fm={class:"key"},mm=["onClick"],hm={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},vm={key:0,class:"paper-table-head",role:"row"},gm={role:"columnheader"},ym={role:"columnheader"},bm={role:"columnheader"},wm={class:"paper-table-row",role:"row"},km={class:"cell-anon",role:"cell"},Cm={class:"anon-text"},Em=["textContent","href"],Sm={class:"anon-sub"},Nm={class:"cell-status",role:"cell"},Rm=["textContent"],Dm={class:"cell-views num",role:"cell"},Tm=["textContent","href"],_m={class:"cell-expires",role:"cell"},Am={class:"cell-actions",role:"cell"},Om={class:"dropdown"},Pm={class:"dropdown-menu dropdown-menu-right"},Im=["href"],Mm=["href"],Vm=["href"],qm=["onClick"],Lm={key:1,class:"paper-table-empty"},$m={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},Um={style:{"font-size":"12px",color:"var(--ink-muted)"}},Fm={key:0,class:"pagination-compact"},Bm=["disabled"],zm=["max"],Hm=["disabled"],jm={class:"admin-filter-inline"},Gm={class:"form-control form-control-sm"};function Il(e,t){let o=we("field"),i=we("form");return l(),d("div",Hf,[t[48]||(t[48]=me('
Admin \xA0/\xA0 Conferences

Conferences

',3)),n("div",{class:O(["admin-summary",{"is-empty":e.total===0}])},[n("span",jf,[h(u(e.total>=0?e.fmt.number(e.total):"\u2026")+" ",1),n("small",null,u(e.total===1?"conference":"conferences"),1)]),t[18]||(t[18]=n("span",{class:"summary-show-label"},"Show:",-1)),n("button",{type:"button",class:O(["summary-pill ok",{active:e.query?.ready}]),title:"Toggle ready filter",onClick:t[0]||(t[0]=s=>{e.query.ready=!e.query.ready,e.query.page=1}),"aria-pressed":!!e.query?.ready},[t[13]||(t[13]=h("Ready ",-1)),n("span",Wf,u(e.fmt?.number(e.statusCountFor("ready"))),1)],10,Gf),n("button",{type:"button",class:O(["summary-pill warn",{active:e.query?.preparing}]),title:"Toggle preparing filter",onClick:t[1]||(t[1]=s=>{e.query.preparing=!e.query.preparing,e.query.page=1}),"aria-pressed":!!e.query?.preparing},[t[14]||(t[14]=h("Preparing ",-1)),n("span",Yf,u(e.fmt?.number(e.statusCountFor("preparing"))),1)],10,Kf),n("button",{type:"button",class:O(["summary-pill error",{active:e.query?.error}]),title:"Toggle errored filter",onClick:t[2]||(t[2]=s=>{e.query.error=!e.query.error,e.query.page=1}),"aria-pressed":!!e.query?.error},[t[15]||(t[15]=h("Errored ",-1)),n("span",Qf,u(e.fmt?.number(e.statusCountFor("error"))),1)],10,Jf),n("button",{type:"button",class:O(["summary-pill",{active:e.query?.expired}]),title:"Toggle expired filter",onClick:t[3]||(t[3]=s=>{e.query.expired=!e.query.expired,e.query.page=1}),"aria-pressed":!!e.query?.expired},[t[16]||(t[16]=h("Expired ",-1)),n("span",Zf,u(e.fmt?.number(e.statusCountFor("expired"))),1)],10,Xf),n("button",{type:"button",class:O(["summary-pill",{active:e.query?.removed}]),title:"Toggle removed filter",onClick:t[4]||(t[4]=s=>{e.query.removed=!e.query.removed,e.query.page=1}),"aria-pressed":!!e.query?.removed},[t[17]||(t[17]=h("Removed ",-1)),n("span",em,u(e.fmt?.number(e.statusCountFor("removed"))),1)],10,xf)],2),e.fetchError?(l(),d("div",tm,[t[19]||(t[19]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),h(" "+u(e.fetchError),1)])):c("v-if",!0),T((l(),d("form",nm,[n("div",om,[n("div",sm,[T(n("input",im,null,512),[[o,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.query?.search?c("v-if",!0):(l(),d("span",rm,"/"))]),t[23]||(t[23]=n("span",{class:"admin-filter-spacer"},null,-1)),e.total>0?(l(),d("button",{key:0,class:"btn btn-sm",type:"button",onClick:t[5]||(t[5]=s=>e.exportCsv())},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),h(" Export",-1)])])):c("v-if",!0),e.totalPage>1?(l(),d("span",am,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[6]||(t[6]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,lm),n("span",dm,u(e.query?.page)+"/"+u(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[7]||(t[7]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,um)])):c("v-if",!0)]),e.chips?.length?(l(),d("div",cm,[n("div",pm,[(l(!0),d(W,null,oe(e.chips,(s,r)=>(l(),d("span",{class:"admin-active-chip",key:s?.key},[n("span",fm,u(s?.label),1),n("span",null,u(s?.value),1),n("button",{type:"button",onClick:a=>e.clearFilter(s.key),"aria-label":"Clear filter"},[...t[24]||(t[24]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,mm)]))),128))])])):c("v-if",!0)])),[[i,e.viewState]]),n("div",hm,[e.total!==0?(l(),d("div",vm,[n("div",gm,[n("button",{type:"button",class:O(["sortable",{active:e.query?.sort=="name"}]),onClick:t[8]||(t[8]=s=>e.sortBy("name"))},[t[26]||(t[26]=h("Conference ",-1)),e.sortIcon("name")?(l(),d("svg",{key:0,class:O(["ui-icon sort-direction",{ascending:e.sortIcon("name")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[25]||(t[25]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):c("v-if",!0)],2)]),n("div",ym,[n("button",{type:"button",class:O(["sortable",{active:e.query?.sort=="status"}]),onClick:t[9]||(t[9]=s=>e.sortBy("status"))},[t[28]||(t[28]=h("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:O(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[27]||(t[27]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):c("v-if",!0)],2)]),t[31]||(t[31]=n("div",{role:"columnheader",class:"num"},"Repos",-1)),n("div",bm,[n("button",{type:"button",class:O(["sortable",{active:e.query?.sort=="startDate"}]),onClick:t[10]||(t[10]=s=>e.sortBy("startDate"))},[t[30]||(t[30]=h("Window ",-1)),e.sortIcon("startDate")?(l(),d("svg",{key:0,class:O(["ui-icon sort-direction",{ascending:e.sortIcon("startDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[29]||(t[29]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):c("v-if",!0)],2)]),t[32]||(t[32]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))])):c("v-if",!0),(l(!0),d(W,null,oe(e.filteredConferences,(s,r)=>(l(),d("div",wm,[n("div",km,[t[34]||(t[34]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Conference"},[n("use",{href:"#project-icon-conference"})],-1)),n("div",Cm,[n("a",{class:"repo-name",textContent:u(s?.name),href:e.safeUrl("/conference/"+s?.conferenceID)},null,8,Em),n("div",Sm,[n("span",null,u(s?.conferenceID),1),t[33]||(t[33]=h("\xA0\xB7\xA0",-1)),n("span",null,u(e.fmt?.number(s?.price||0))+" \u20AC",1)])])]),n("div",Nm,[n("span",{class:O(["status-dot",{"status-removed":s?.status=="removed"||s?.status=="expired","status-ready":s?.status=="ready","status-error":s?.status=="error","status-preparing":s?.status=="preparing"}])},null,2),n("span",{textContent:u(e.fmt?.title(s?.status))},null,8,Rm)]),n("div",Dm,[t[35]||(t[35]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),n("a",{title:"Show repositories in this conference",textContent:u(e.fmt?.number(s?.repositories?.length||0)),href:e.safeUrl("/admin/?conference="+s?.conferenceID)},null,8,Tm)]),n("div",_m,[t[36]||(t[36]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),h(" "+u(e.fmt?.date(s?.startDate))+" \u2013 "+u(e.fmt?.date(s?.endDate)),1)]),n("div",Am,[n("div",Om,[t[42]||(t[42]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",Pm,[n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/edit")},[...t[37]||(t[37]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),h(" Edit",-1)])],8,Im),n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/")},[...t[38]||(t[38]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),h(" View",-1)])],8,Mm),n("a",{class:"dropdown-item",href:e.safeUrl("/admin/?conference="+s?.conferenceID)},[...t[39]||(t[39]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),h(" View repositories",-1)])],8,Vm),t[41]||(t[41]=n("div",{class:"dropdown-divider"},null,-1)),T(n("a",{class:"dropdown-item text-danger",href:"#",onClick:ae(a=>e.removeConference(s),["prevent"])},[...t[40]||(t[40]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),h(" Remove",-1)])],8,qm),[[Y,s?.status!="removed"]])])])])]))),256)),e.filteredConferences?.length==0?(l(),d("div",Lm,[t[43]||(t[43]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),n("span",null,u(e.total?"No conferences match the current filters.":"No conferences yet."),1)])):c("v-if",!0)]),n("div",$m,[n("span",Um,u(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",Fm,[n("button",{class:"btn btn-sm",onClick:t[11]||(t[11]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[44]||(t[44]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),h(" Previous",-1)])],8,Bm),T(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,zm),[[o,{state:e.viewState,set:s=>{e.query.page=s},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+u(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[45]||(t[45]=[h("Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,Hm)])):c("v-if",!0),n("span",jm,[t[47]||(t[47]=n("label",null,"Per page",-1)),T((l(),d("select",Gm,[...t[46]||(t[46]=[me('',5)])])),[[o,{state:e.viewState,set:s=>{e.query.limit=s},value:e.query?.limit,form:null,options:{}}]])])])])}var Wm={class:"container paper-page admin-page errors-page"},Km={class:"errors-header"},Ym={class:"errors-actions"},Jm={class:"kpi-grid"},Qm={class:"kpi-card"},Xm={class:"kpi-value"},Zm={key:0},xm={key:1},eh={key:2},th=["aria-pressed"],nh={class:"kpi-value"},oh={class:"kpi-sub"},sh=["aria-pressed"],ih={class:"kpi-value"},rh={class:"kpi-sub"},ah=["aria-pressed"],lh={class:"kpi-value"},dh={class:"kpi-sub"},uh={class:"kpi-value"},ch={class:"kpi-sub"},ph={key:0,class:"dropped-warn"},fh={class:"volume-chart"},mh={class:"volume-head"},hh={class:"volume-legend"},vh={key:0},gh={key:1},yh={key:2},bh={class:"volume-bars"},wh=["title"],kh={class:"errors-toolbar","aria-label":"Error filters"},Ch={class:"seg-tabs"},Eh={class:"search-wrap"},Sh={type:"search",class:"form-control",placeholder:"Search code, module, status\u2026",title:"Syntax: code:repo_not_found module:route status:>=400",autocomplete:"off"},Nh={key:0,class:"filter-count"},Rh={class:"select-wrap"},Dh={class:"form-control form-control-sm"},Th={class:"select-wrap"},_h={class:"form-control form-control-sm"},Ah={class:"autoref"},Oh={type:"checkbox"},Ph={key:0,class:"admin-empty"},Ih={key:1,class:"errors-pager"},Mh={key:2,class:"errors-list"},Vh=["onClick"],qh={class:"col-when"},Lh={class:"when-rel"},$h={class:"when-abs"},Uh={class:"col-sev"},Fh={class:"sev-label"},Bh={class:"col-mod"},zh={class:"pill pill-module"},Hh={class:"col-msg"},jh={class:"msg-code"},Gh={key:0,class:"msg-context"},Wh={key:1,class:"msg-detail"},Kh={key:2,class:"msg-url"},Yh={class:"col-count"},Jh={key:0,class:"count-pill"},Qh={key:1,class:"count-pill count-pill-muted"},Xh={class:"col-status"},Zh=["title"],xh={key:0,class:"errors-row-detail"},ev={class:"detail-tabs"},tv=["onClick"],nv=["onClick"],ov=["onClick"],sv={class:"detail-body"},iv={class:"detail-main"},rv={key:0},av={key:1,class:"stack-pre"},lv={key:2,class:"related-list"},dv={class:"when-abs"},uv={class:"msg-url"},cv={class:"detail-actions"},pv=["onClick"],fv=["onClick"],mv={key:0,class:"copy-hint"},hv={class:"detail-aside"},vv={class:"aside-block"},gv=["title"],yv={class:"aside-block"},bv=["title"],wv={class:"aside-block"},kv={class:"aside-value"},Cv={key:0,class:"aside-sub"},Ev={key:0,class:"aside-block"},Sv=["href"],Nv={key:1,class:"aside-block"},Rv={class:"aside-value mono"};function Ml(e,t){let o=we("field"),i=we("form");return l(),d("div",Wm,[t[42]||(t[42]=n("div",{class:"paper-crumbs"},[h("Admin \xA0/\xA0 "),n("span",{class:"here"},"Errors")],-1)),n("header",Km,[t[16]||(t[16]=n("h1",{class:"paper-page-title"},"Errors",-1)),n("div",Ym,[n("button",{class:"btn btn-sm",type:"button",onClick:t[0]||(t[0]=s=>e.exportCsv())},[...t[14]||(t[14]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),h(" Export CSV",-1)])]),n("button",{class:"btn btn-sm btn-outline-danger",type:"button",onClick:t[1]||(t[1]=s=>e.clearAll())},[...t[15]||(t[15]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),h(" Clear all",-1)])])])]),t[43]||(t[43]=me('',1)),n("section",Jm,[n("div",Qm,[t[17]||(t[17]=n("div",{class:"kpi-label"},"Occurrences \xB7 24h",-1)),n("div",Xm,u(e.fmt?.number(e.stats?.last24h??0)),1),n("div",{class:O(["kpi-sub",{up:e.stats?.delta>0,down:e.stats?.delta<0}])},[e.stats?.prev24h>=20?(l(),d("span",Zm,u((e.stats?.last24h??0)-(e.stats?.prev24h??0)>=0?"+":"")+u(Math.round(((e.stats?.last24h??0)-(e.stats?.prev24h??0))/e.stats.prev24h*100))+"% vs yesterday",1)):e.stats?.prev24h!==void 0?(l(),d("span",xm,u(e.fmt?.number(e.stats?.prev24h??0))+" in prior 24h",1)):c("v-if",!0),e.stats?.prev24h?c("v-if",!0):(l(),d("span",eh,"no prior baseline"))],2)]),n("div",{class:O(["kpi-card kpi-error kpi-filter",{"is-selected":e.query?.bucket==="error"}]),role:"button",tabindex:"0","aria-pressed":e.query?.bucket==="error",title:"Show only 5xx errors",onClick:t[2]||(t[2]=s=>e.setBucket(e.query?.bucket==="error"?"":"error")),onKeydown:t[3]||(t[3]=ct(ae(s=>e.setBucket(e.query?.bucket==="error"?"":"error"),["prevent"]),["enter"]))},[t[18]||(t[18]=n("div",{class:"kpi-label"},"Errors (5xx)",-1)),n("div",nh,u(e.fmt?.number(e.stats?.severity?.error??0)),1),n("div",oh,u(e.stats?.unique?.error)+" unique",1)],42,th),n("div",{class:O(["kpi-card kpi-warn kpi-filter",{"is-selected":e.query?.bucket==="warn"}]),role:"button",tabindex:"0","aria-pressed":e.query?.bucket==="warn",title:"Show only 4xx responses",onClick:t[4]||(t[4]=s=>e.setBucket(e.query?.bucket==="warn"?"":"warn")),onKeydown:t[5]||(t[5]=ct(ae(s=>e.setBucket(e.query?.bucket==="warn"?"":"warn"),["prevent"]),["enter"]))},[t[19]||(t[19]=n("div",{class:"kpi-label"},"4xx responses",-1)),n("div",ih,u(e.fmt?.number(e.stats?.severity?.warn??0)),1),n("div",rh,u(e.stats?.unique?.warn)+" unique",1)],42,sh),n("div",{class:O(["kpi-card kpi-info kpi-filter",{"is-selected":e.query?.bucket==="info"}]),role:"button",tabindex:"0","aria-pressed":e.query?.bucket==="info",title:"Show only info events",onClick:t[6]||(t[6]=s=>e.setBucket(e.query?.bucket==="info"?"":"info")),onKeydown:t[7]||(t[7]=ct(ae(s=>e.setBucket(e.query?.bucket==="info"?"":"info"),["prevent"]),["enter"]))},[t[20]||(t[20]=n("div",{class:"kpi-label"},"Info (auth, 404)",-1)),n("div",lh,u(e.fmt?.number(e.stats?.severity?.info??0)),1),n("div",dh,u(e.stats?.unique?.info)+" unique",1)],42,ah),n("div",{class:O(["kpi-card",{"kpi-error":e.stats?.dropped>0}])},[t[21]||(t[21]=n("div",{class:"kpi-label"},"Distinct errors stored",-1)),n("div",uh,u(e.fmt?.number(e.total)),1),n("div",ch,[h(" all time \xB7 cap "+u(e.fmt?.number(e.cap))+" \xB7 "+u(e.available?"live":"redis off")+" ",1),e.stats?.dropped>0?(l(),d("span",ph," \xB7 "+u(e.stats?.dropped)+" dropped",1)):c("v-if",!0)])],2)]),n("section",fh,[n("div",mh,[t[25]||(t[25]=n("span",{class:"volume-title"},"Volume \xB7 24h \xB7 1h buckets",-1)),n("span",hh,[e.stats?.severity?.error?(l(),d("span",vh,[...t[22]||(t[22]=[n("span",{class:"dot dot-error"},null,-1),h("error",-1)])])):c("v-if",!0),e.stats?.severity?.warn?(l(),d("span",gh,[...t[23]||(t[23]=[n("span",{class:"dot dot-warn"},null,-1),h("warn",-1)])])):c("v-if",!0),e.stats?.severity?.info?(l(),d("span",yh,[...t[24]||(t[24]=[n("span",{class:"dot dot-info"},null,-1),h("info",-1)])])):c("v-if",!0)])]),n("div",bh,[(l(!0),d(W,null,oe(e.stats?.buckets,(s,r)=>(l(),d("div",{class:"volume-bar",key:r,title:e.bucketTitle(s)},[n("span",{class:"seg seg-error",style:Re({height:e.barPx(s,"error")+"px"})},null,4),n("span",{class:"seg seg-warn",style:Re({height:e.barPx(s,"warn")+"px"})},null,4),n("span",{class:"seg seg-info",style:Re({height:e.barPx(s,"info")+"px"})},null,4)],8,wh))),128))]),t[26]||(t[26]=n("div",{class:"volume-axis","aria-hidden":"true"},[n("span",null,"24h ago"),n("span",null,"12h ago"),n("span",null,"now")],-1))]),T((l(),d("form",kh,[n("div",Ch,[n("button",{type:"button",class:O({active:e.query?.bucket===""}),onClick:t[8]||(t[8]=s=>e.setBucket(""))},"All",2),n("button",{type:"button",class:O({active:e.query?.bucket==="error"}),onClick:t[9]||(t[9]=s=>e.setBucket("error"))},"5xx",2),n("button",{type:"button",class:O({active:e.query?.bucket==="warn"}),onClick:t[10]||(t[10]=s=>e.setBucket("warn"))},"4xx",2),n("button",{type:"button",class:O({active:e.query?.bucket==="info"}),onClick:t[11]||(t[11]=s=>e.setBucket("info"))},"Info",2)]),n("div",Eh,[t[27]||(t[27]=n("svg",{class:"ui-icon search-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)),T(n("input",Sh,null,512),[[o,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.parsedFilterCount?(l(),d("span",Nh,u(e.parsedFilterCount)+" filter"+u(e.parsedFilterCount>1?"s":""),1)):c("v-if",!0)]),n("div",Rh,[t[29]||(t[29]=n("label",null,"Sort",-1)),T((l(),d("select",Dh,[...t[28]||(t[28]=[n("option",{value:"recent"},"Most recent",-1),n("option",{value:"count"},"Most frequent",-1)])])),[[o,{state:e.viewState,set:s=>{e.query.sort=s},value:e.query?.sort,form:null,options:{}}]])]),n("div",Th,[t[31]||(t[31]=n("label",null,"Group",-1)),T((l(),d("select",_h,[...t[30]||(t[30]=[n("option",{value:""},"Off",-1),n("option",{value:"code"},"By code",-1),n("option",{value:"module"},"By module",-1)])])),[[o,{state:e.viewState,set:s=>{e.query.group=s},value:e.query?.group,form:null,options:{}}]])]),n("label",Ah,[T(n("input",Oh,null,512),[[o,{state:e.viewState,set:s=>{e.query.autoRefresh=s},value:e.query?.autoRefresh,form:null,options:{}}]]),t[32]||(t[32]=n("span",{class:"auto-refresh-label"},"Auto-refresh",-1))]),n("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[12]||(t[12]=s=>e.refreshNow()),"aria-label":"Refresh"},[...t[33]||(t[33]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])])),[[i,e.viewState]]),e.visible?.length?c("v-if",!0):(l(),d("div",Ph,"No errors captured.")),e.canLoadMore()&&e.visible?.length?(l(),d("div",Ih,[n("span",null,u(e.query?.group&&e.visible?.length!==e.entries?.length?e.fmt?.number(e.visible?.length)+(e.visible?.length===1?" group":" groups")+" from ":"")+u(e.fmt?.number(e.entries?.length))+" of "+u(e.fmt?.number(e.total))+" stored errors loaded",1),n("button",{class:"btn btn-sm",type:"button",onClick:t[13]||(t[13]=s=>e.loadMore())},"Load 250 older")])):c("v-if",!0),e.visible?.length?(l(),d("div",Mh,[t[41]||(t[41]=me('
WhenSeverityModuleMessageTotalStatus
',1)),(l(!0),d(W,null,oe(e.visible,(s,r)=>(l(),d("div",{class:O(["errors-row",{open:e.expanded[s?._key]}]),key:s?._key},[n("div",{class:"errors-row-main",onClick:a=>e.toggle(s)},[n("div",qh,[n("div",Lh,u(e.relTime(s?.ts)),1),n("div",$h,u(e.absTimeShort(s?.ts)),1)]),n("div",Uh,[n("span",{class:O(["sev-dot","sev-"+s?._bucket])},null,2),n("span",Fh,u(e.fmt?.title(s?._bucket)),1)]),n("div",Bh,[n("span",zh,u(s?.module),1)]),n("div",Hh,[n("strong",jh,u(s?.displayMessage),1),s?.displayContext&&s?.displayContext!==s?.displayMessage?(l(),d("span",Gh,u(s?.displayContext),1)):c("v-if",!0),s?._detail?(l(),d("span",Wh,u(s?._detail),1)):c("v-if",!0),s?._url?(l(),d("div",Kh,u(s?._url),1)):c("v-if",!0)]),n("div",Yh,[s?.count>1?(l(),d("span",Jh,"\xD7"+u(s?.count),1)):c("v-if",!0),s?.count===1?(l(),d("span",Qh,"\xD71")):c("v-if",!0)]),n("div",Xh,[s?._status?(l(),d("span",{key:0,class:O(["status-pill",String(s?._status).match(/^[23]/)?"status-neutral":"status-"+s?._bucket]),title:String(s?._status).match(/^2/)&&s?._bucket==="warn"?"Client closed the connection":null},u(String(s?._status).match(/^2/)&&s?._bucket==="warn"?"\u2014":s?._status),11,Zh)):c("v-if",!0)])],8,Vh),e.expanded[s?._key]?(l(),d("div",xh,[n("div",ev,[n("button",{type:"button",class:O({active:e.detailTab[s?._key]==="raw"||!e.detailTab[s?._key]}),onClick:a=>e.detailTab[s._key]="raw"},"Raw",10,tv),s?._stack?(l(),d("button",{key:0,type:"button",class:O({active:e.detailTab[s?._key]==="stack"}),onClick:a=>e.detailTab[s._key]="stack"},"Stack",10,nv)):c("v-if",!0),s?.count>1?(l(),d("button",{key:1,type:"button",class:O({active:e.detailTab[s?._key]==="related"}),onClick:a=>e.detailTab[s._key]="related"},"Related ("+u(s?.count)+")",11,ov)):c("v-if",!0)]),n("div",sv,[n("div",iv,[(e.detailTab[s?._key]||"raw")==="raw"?(l(),d("pre",rv,u(s?._detailJson),1)):c("v-if",!0),e.detailTab[s?._key]==="stack"?(l(),d("pre",av,u(s?._stack),1)):c("v-if",!0),e.detailTab[s?._key]==="related"?(l(),d("div",lv,[(l(!0),d(W,null,oe(s?._related,(a,p)=>(l(),d("div",{class:"related-row",key:p},[n("span",dv,u(e.absTimeShort(a?.ts)),1),n("span",uv,u(a?._url),1),a?._status?(l(),d("span",{key:0,class:O(["status-pill","status-"+a?._bucket])},u(a?._status),3)):c("v-if",!0)]))),128))])):c("v-if",!0),n("div",cv,[n("button",{class:"btn btn-sm",type:"button",title:"Copy a curl that reproduces the request",onClick:a=>e.copyCurl(s)},[...t[34]||(t[34]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),h(" Copy curl",-1)])],8,pv),n("button",{class:"btn btn-sm",type:"button",onClick:a=>e.copyJson(s)},[...t[35]||(t[35]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-clipboard"})],-1),h(" Copy JSON",-1)])],8,fv),e.copyHint?(l(),d("span",mv,u(e.copyHint),1)):c("v-if",!0)])]),n("aside",hv,[n("div",vv,[t[36]||(t[36]=n("div",{class:"aside-label"},"First seen",-1)),n("div",{class:"aside-value",title:e.absTime(s?._firstSeen)},u(e.relTime(s?._firstSeen)),9,gv)]),n("div",yv,[t[37]||(t[37]=n("div",{class:"aside-label"},"Last seen",-1)),n("div",{class:"aside-value",title:e.absTime(s?.ts)},u(e.relTime(s?.ts)),9,bv)]),n("div",wv,[t[38]||(t[38]=n("div",{class:"aside-label"},"Occurrences",-1)),n("div",kv,[h(u(s?.count),1),s?._lastHourCount?(l(),d("span",Cv," \xB7 "+u(s?._lastHourCount)+" this hour",1)):c("v-if",!0)])]),s?._repoId?(l(),d("div",Ev,[t[39]||(t[39]=n("div",{class:"aside-label"},"Repository",-1)),n("a",{class:"aside-value",href:e.safeUrl("/r/"+s?._repoId)},u(s?._repoId),9,Sv)])):c("v-if",!0),s?._url?(l(),d("div",Nv,[t[40]||(t[40]=n("div",{class:"aside-label"},"URL",-1)),n("div",Rv,u(s?._url),1)])):c("v-if",!0)])])])):c("v-if",!0)],2))),128))])):c("v-if",!0)])}var Dv={class:"container paper-page admin-page overview-page"},Tv={key:0,class:"admin-empty"},_v={key:1,class:"alert alert-danger",style:{margin:"12px 0"}},Av={class:"ov-views",role:"tablist","aria-label":"Overview sections"},Ov=["aria-selected","onClick"],Pv={key:2},Iv={key:0,class:"ov-health",role:"status"},Mv={class:"ov-kpi-row"},Vv={class:"ov-kpi-card"},qv={class:"ov-kpi-value"},Lv={class:"ov-kpi-sub"},$v={class:"ov-kpi-card"},Uv={class:"ov-kpi-sub"},Fv={class:"ov-kpi-card"},Bv={class:"ov-kpi-sub"},zv={class:"ov-kpi-card"},Hv={class:"ov-kpi-sub"},jv={class:"ov-kpi-card"},Gv={class:"ov-kpi-value"},Wv={class:"ov-kpi-sub"},Kv={class:"ov-daily-row"},Yv={class:"ov-daily-card"},Jv={class:"ov-daily-value"},Qv={class:"ov-daily-card"},Xv={class:"ov-daily-value"},Zv={class:"ov-daily-sub"},xv={class:"ov-daily-card"},eg={class:"ov-daily-value"},tg={class:"ov-chart-row"},ng={class:"ov-chart-card"},og={class:"ov-chart-head"},sg={class:"ov-chart-legend"},ig={key:0,class:"ov-spark-bars"},rg=["data-tip","aria-label"],ag={key:1,class:"ov-spark-x"},lg={class:"ov-chart-card"},dg={class:"ov-chart-head"},ug={class:"ov-chart-legend"},cg={key:0,class:"ov-spark-bars"},pg=["data-tip","aria-label"],fg={key:1,class:"ov-spark-x"},mg={class:"ov-chart-card"},hg={class:"ov-chart-head"},vg={class:"ov-chart-legend"},gg={key:0,class:"ov-spark-bars"},yg=["data-tip","aria-label"],bg={key:1,class:"ov-spark-x"},wg={class:"ov-chart-card"},kg={class:"ov-chart-head"},Cg={class:"ov-chart-legend"},Eg={key:0,class:"ov-spark-bars"},Sg=["data-tip","aria-label"],Ng={key:1,class:"ov-spark-x"},Rg={class:"ov-triple-row"},Dg={class:"ov-panel-card"},Tg={class:"ov-panel-head"},_g={class:"ov-panel-meta"},Ag={class:"ov-stacked-bar"},Og={class:"ov-bar-legend"},Pg={href:"/admin/repositories",class:"ov-legend-item"},Ig={class:"ov-legend-n"},Mg={href:"/admin/repositories",class:"ov-legend-item"},Vg={class:"ov-legend-n"},qg={href:"/admin/repositories",class:"ov-legend-item"},Lg={class:"ov-legend-n"},$g={href:"/admin/repositories",class:"ov-legend-item"},Ug={class:"ov-legend-n"},Fg={href:"/admin/repositories",class:"ov-legend-item"},Bg={class:"ov-legend-n"},zg={class:"ov-panel-card"},Hg={class:"ov-panel-head"},jg={class:"ov-panel-meta"},Gg={class:"ov-error-bars"},Wg={class:"ov-ebar-row"},Kg={class:"ov-ebar-track"},Yg={class:"ov-ebar-n"},Jg={class:"ov-ebar-row"},Qg={class:"ov-ebar-track"},Xg={class:"ov-ebar-n"},Zg={class:"ov-ebar-row"},xg={class:"ov-ebar-track"},ey={class:"ov-ebar-n"},ty={key:0,class:"ov-panel-foot"},ny={href:"/admin/errors"},oy={class:"ov-panel-card"},sy={class:"ov-routes-table"},iy={class:"ov-route-row",href:"/admin/queues"},ry={class:"ov-route-n"},ay={class:"ov-route-n"},ly={class:"ov-route-row",href:"/admin/queues"},dy={class:"ov-route-n"},uy={class:"ov-route-n"},cy={class:"ov-route-row",href:"/admin/queues"},py={class:"ov-route-n"},fy={class:"ov-route-n"},my={class:"ov-services-card"},hy={class:"ov-services-head"},vy={class:"ov-panel-meta"},gy={class:"ov-services-grid"},yy={class:"ov-svc"},by={class:"ov-svc-info"},wy={class:"ov-svc-meta"},ky={class:"ov-svc-detail"},Cy={class:"ov-svc"},Ey={class:"ov-svc-info"},Sy={key:0,class:"ov-svc-meta"},Ny={key:1,class:"ov-svc-meta"},Ry={class:"ov-svc"},Dy={class:"ov-svc-info"},Ty={key:0,class:"ov-svc-meta"},_y={key:1,class:"ov-svc-meta"},Ay={class:"ov-svc"},Oy={class:"ov-svc-info"},Py={key:0,class:"ov-svc-meta"},Iy={key:1,class:"ov-svc-meta"},My={class:"ov-svc"},Vy={class:"ov-svc-info"},qy={class:"ov-svc-meta"},Ly={class:"ov-panel-card ov-cache","aria-labelledby":"cache-heading"},$y={class:"ov-panel-head ov-performance-head"},Uy={class:"ov-performance-window"},Fy={key:0,class:"ov-performance-message ov-performance-warning",role:"alert"},By={key:1,class:"ov-performance-empty",role:"status"},zy={key:0,class:"ov-performance-note"},Hy={key:1,class:"ov-performance-note"},jy={key:2,class:"ov-performance-message ov-performance-warning",role:"status"},Gy={key:3,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Cache storage budgets"},Wy={class:"ov-metrics-table"},Ky={scope:"row"},Yy={key:4,class:"ov-performance-note"},Jy={key:5,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Cache events and processing durations"},Qy={class:"ov-metrics-table"},Xy={scope:"row"},Zy={key:6,class:"ov-performance-empty",role:"status"},xy={class:"ov-performance-note"},eb={class:"ov-panel-card ov-performance","aria-labelledby":"performance-heading"},tb={class:"ov-panel-head ov-performance-head"},ob={class:"ov-performance-window"},sb={key:0,class:"ov-performance-message ov-performance-warning",role:"alert"},ib={key:1,class:"ov-performance-empty",role:"status"},rb={key:2},ab={class:"paper-tabs ov-performance-tabs",role:"tablist","aria-label":"Performance metrics"},lb=["aria-selected","tabindex"],db=["aria-selected","tabindex"],ub=["aria-selected","tabindex"],cb={id:"performance-routes",role:"tabpanel","aria-labelledby":"performance-routes-tab"},pb={key:0,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Route latency metrics, scroll for more columns"},fb={class:"ov-metrics-table"},mb={scope:"row",class:"ov-metric-name"},hb={class:"num"},vb={class:"num"},gb={class:"num"},yb={class:"num"},bb={class:"num"},wb={key:1,class:"ov-performance-empty"},kb={id:"performance-processes",role:"tabpanel","aria-labelledby":"performance-processes-tab"},Cb={key:0,class:"ov-performance-message ov-performance-warning",role:"status"},Eb={key:1,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Process resource metrics, scroll for more columns"},Sb={class:"ov-metrics-table"},Nb={scope:"row",class:"ov-metric-name"},Rb={key:0,class:"ov-metric-warn"},Db={class:"num"},Tb={class:"num"},_b={class:"num"},Ab={class:"num"},Ob={class:"num"},Pb={class:"num"},Ib={class:"num"},Mb={class:"num"},Vb={id:"performance-stages",role:"tabpanel","aria-labelledby":"performance-stages-tab"},qb={key:0,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Work stage metrics, scroll for more columns"},Lb={class:"ov-metrics-table"},$b={scope:"row",class:"ov-metric-name"},Ub={class:"num"},Fb={class:"num"},Bb={class:"num"},zb={key:1,class:"ov-performance-empty"};function Vl(e,t){return l(),d("div",Dv,[t[83]||(t[83]=me('
Admin \xA0/\xA0 Overview

Overview

Live \xB7 refreshes every 30s
',3)),e.loading?(l(),d("div",Tv,"Loading overview\u2026")):c("v-if",!0),e.error?(l(),d("div",_v,[t[13]||(t[13]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),h(" "+u(e.error),1)])):c("v-if",!0),n("div",Av,[(l(),d(W,null,oe([{id:"summary",label:"Summary"},{id:"performance",label:"Performance"},{id:"cache",label:"Cache"}],o=>n("button",{type:"button",role:"tab",key:o.id,"aria-selected":e.ovView===o.id?"true":"false",class:O({active:e.ovView===o.id}),onClick:i=>e.setOvView(o.id)},u(o.label),11,Ov)),64))]),e.data?T((l(),d("div",Pv,[e.data?.system?.memPercent>90||e.data?.system?.diskPercent>90?(l(),d("div",Iv,[...t[14]||(t[14]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),n("span",null,[n("b",null,"Server needs attention."),h(" Memory or disk is running high (see the cards below). New anonymizations may fail until it drops.")],-1)])])):c("v-if",!0),c(" \u2500\u2500 Top KPI row \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",Mv,[n("div",Vv,[t[15]||(t[15]=n("div",{class:"ov-kpi-label"},"Live repositories",-1)),n("div",qv,u(e.humanNum((e.data?.repos?.statusBreakdown||[]).filter(o=>o._id!=="removed"&&o._id!=="expired").reduce((o,i)=>o+(i.count||0),0))),1),n("div",Lv,u(e.humanNum(((e.data?.repos?.statusBreakdown||[]).find(o=>o._id==="removed")||{}).count||0))+" removed \xB7 "+u(e.humanNum(e.data?.repos?.total))+" total",1)]),n("div",$v,[t[16]||(t[16]=n("div",{class:"ov-kpi-label"},"CPU",-1)),n("div",{class:O(["ov-kpi-value",{"ov-val-warn":e.data?.system?.cpuPercent>80}])},u(e.data?.system?.cpuPercent)+"%",3),n("div",{class:O(["ov-meter",{warn:e.data?.system?.cpuPercent>80,crit:e.data?.system?.cpuPercent>90}])},[n("span",{style:Re({width:Math.min(100,e.data?.system?.cpuPercent||0)+"%"})},null,4)],2),n("div",Uv,u(e.data?.system?.cpuCount)+" cores \xB7 load "+u(e.data?.system?.loadAvg?.[0]?.toFixed(1)),1)]),n("div",Fv,[t[17]||(t[17]=n("div",{class:"ov-kpi-label"},"Memory",-1)),n("div",{class:O(["ov-kpi-value",{"ov-val-warn":e.data?.system?.memPercent>85}])},u(e.data?.system?.memPercent)+"%",3),n("div",{class:O(["ov-meter",{warn:e.data?.system?.memPercent>85,crit:e.data?.system?.memPercent>90}])},[n("span",{style:Re({width:Math.min(100,e.data?.system?.memPercent||0)+"%"})},null,4)],2),n("div",Bv,[e.data?.system?.memPercent>85?(l(),d("b",{key:0,class:O(["ov-flag",{critical:e.data?.system?.memPercent>90}])},u(e.data?.system?.memPercent>90?"Critical":"High")+" \xB7 ",3)):c("v-if",!0),h(u(e.humanBytes(e.data?.system?.memUsed).replace(/\s*GB$/,""))+" / "+u(e.humanBytes(e.data?.system?.memTotal)),1)])]),n("div",zv,[t[18]||(t[18]=n("div",{class:"ov-kpi-label"},"Disk",-1)),n("div",{class:O(["ov-kpi-value",{"ov-val-warn":e.data?.system?.diskPercent>85}])},u(e.data?.system?.diskPercent)+"%",3),n("div",{class:O(["ov-meter",{warn:e.data?.system?.diskPercent>85,crit:e.data?.system?.diskPercent>90}])},[n("span",{style:Re({width:Math.min(100,e.data?.system?.diskPercent||0)+"%"})},null,4)],2),n("div",Hv,[e.data?.system?.diskPercent>85?(l(),d("b",{key:0,class:O(["ov-flag",{critical:e.data?.system?.diskPercent>90}])},u(e.data?.system?.diskPercent>90?"Critical":"High")+" \xB7 ",3)):c("v-if",!0),h(u(e.humanBytes(e.data?.system?.diskUsed).replace(/\s*GB$/,""))+" / "+u(e.humanBytes(e.data?.system?.diskTotal)),1),e.data?.system?.diskMount&&e.data.system.diskMount!=="/"?(l(),d(W,{key:1},[h(" \xB7 "+u(e.data?.system?.diskMount),1)],64)):c("v-if",!0)])]),n("div",jv,[t[19]||(t[19]=n("div",{class:"ov-kpi-label"},"Uptime",-1)),n("div",Gv,u(e.humanDuration(e.data?.system?.uptime)),1),n("div",Wv,u(e.data?.system?.nodeVersion)+" \xB7 "+u(e.data?.system?.platform),1)])]),c(" \u2500\u2500 Daily activity highlights \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",Kv,[n("div",Yv,[t[20]||(t[20]=n("div",{class:"ov-daily-label"},"New repos today",-1)),n("div",Jv,u(e.fmt?.number(e.data?.daily?.today?.repositories||0)),1),t[21]||(t[21]=n("div",{class:"ov-daily-sub"},"so far today",-1))]),n("div",Qv,[t[22]||(t[22]=n("div",{class:"ov-daily-label"},"New users today",-1)),n("div",Xv,u(e.fmt?.number(e.data?.daily?.today?.users||0)),1),n("div",Zv,u(e.fmt?.number(e.data?.users?.total))+" total users",1)]),n("div",xv,[t[23]||(t[23]=n("div",{class:"ov-daily-label"},"Page views today",-1)),n("div",eg,u(e.fmt?.number(e.data?.daily?.today?.pageViews||0)),1),t[24]||(t[24]=n("div",{class:"ov-daily-sub"},"so far today",-1))])]),c(" \u2500\u2500 Daily charts \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",tg,[n("div",ng,[n("div",og,[t[26]||(t[26]=n("span",{class:"ov-chart-title"},"Daily page views \xB7 30d",-1)),n("span",sg,[t[25]||(t[25]=n("span",{class:"ov-dot-legend ov-dot-accent"},null,-1)),h("views/day \xB7 peak "+u(e.fmt?.number(e.historyMax("dailyPageViews"))),1)])]),e.data?.history?.length?(l(),d("div",ig,[(l(!0),d(W,null,oe(e.data?.history,(o,i)=>(l(),d("div",{class:"ov-spark-col has-tip",key:i,"data-tip":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyPageViews)+" views","aria-label":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyPageViews)+" views"},[n("span",{class:"ov-spark-fill",style:Re({height:e.historyBarH(o,"dailyPageViews")+"px"})},null,4)],8,rg))),128))])):c("v-if",!0),e.data?.history?.length?(l(),d("div",ag,[n("span",null,u(e.historyLabel(e.data?.history[0])),1),n("span",null,u(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,u(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):c("v-if",!0)]),n("div",lg,[n("div",dg,[t[28]||(t[28]=n("span",{class:"ov-chart-title"},"New repos \xB7 30d",-1)),n("span",ug,[t[27]||(t[27]=n("span",{class:"ov-dot-legend ov-dot-ok-fill"},null,-1)),h("repos/day \xB7 peak "+u(e.fmt?.number(e.historyMax("dailyRepositories"))),1)])]),e.data?.history?.length?(l(),d("div",cg,[(l(!0),d(W,null,oe(e.data?.history,(o,i)=>(l(),d("div",{class:"ov-spark-col has-tip",key:i,"data-tip":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyRepositories)+" repos","aria-label":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyRepositories)+" repos"},[n("span",{class:"ov-spark-fill ov-spark-fill-alt",style:Re({height:e.historyBarH(o,"dailyRepositories")+"px"})},null,4)],8,pg))),128))])):c("v-if",!0),e.data?.history?.length?(l(),d("div",fg,[n("span",null,u(e.historyLabel(e.data?.history[0])),1),n("span",null,u(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,u(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):c("v-if",!0)]),n("div",mg,[n("div",hg,[t[30]||(t[30]=n("span",{class:"ov-chart-title"},"Users \xB7 30d",-1)),n("span",vg,[t[29]||(t[29]=n("span",{class:"ov-dot-legend ov-dot-user-fill"},null,-1)),h("total users \xB7 "+u(e.fmt?.number(e.historyRange("nbUsers").min))+"\u2013"+u(e.fmt?.number(e.historyRange("nbUsers").max)),1)])]),e.data?.history?.length?(l(),d("div",gg,[(l(!0),d(W,null,oe(e.data?.history,(o,i)=>(l(),d("div",{class:"ov-spark-col has-tip",key:i,"data-tip":e.historyLabel(o)+": "+e.fmt?.number(o?.nbUsers)+" users","aria-label":e.historyLabel(o)+": "+e.fmt?.number(o?.nbUsers)+" users"},[n("span",{class:"ov-spark-fill ov-spark-fill-user",style:Re({height:e.historyRangeH(o,"nbUsers")+"px"})},null,4)],8,yg))),128))])):c("v-if",!0),e.data?.history?.length?(l(),d("div",bg,[n("span",null,u(e.historyLabel(e.data?.history[0])),1),n("span",null,u(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,u(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):c("v-if",!0)]),n("div",wg,[n("div",kg,[t[32]||(t[32]=n("span",{class:"ov-chart-title"},"New users \xB7 30d",-1)),n("span",Cg,[t[31]||(t[31]=n("span",{class:"ov-dot-legend ov-dot-new-user-fill"},null,-1)),h("users/day \xB7 peak "+u(e.fmt?.number(e.historyMax("dailyUsers"))),1)])]),e.data?.history?.length?(l(),d("div",Eg,[(l(!0),d(W,null,oe(e.data?.history,(o,i)=>(l(),d("div",{class:"ov-spark-col has-tip",key:i,"data-tip":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyUsers)+" users","aria-label":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyUsers)+" users"},[n("span",{class:"ov-spark-fill ov-spark-fill-new-user",style:Re({height:e.historyBarH(o,"dailyUsers")+"px"})},null,4)],8,Sg))),128))])):c("v-if",!0),e.data?.history?.length?(l(),d("div",Ng,[n("span",null,u(e.historyLabel(e.data?.history[0])),1),n("span",null,u(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,u(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):c("v-if",!0)])]),c(" \u2500\u2500 Three-panel row: Status / Errors / Queues \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",Rg,[c(" Repo status breakdown "),n("div",Dg,[n("div",Tg,[t[33]||(t[33]=n("span",{class:"ov-panel-title"},"Repo status",-1)),n("span",_g,u(e.fmt?.number(e.data?.repos?.total))+" total",1)]),n("div",Ag,[n("span",{class:"ov-bar-seg ov-bar-ready",title:"Ready",style:Re({width:e.barPct("ready")+"%"})},null,4),n("span",{class:"ov-bar-seg ov-bar-preparing",title:"Preparing",style:Re({width:e.barPct("preparing")+"%"})},null,4),n("span",{class:"ov-bar-seg ov-bar-error",title:"Error",style:Re({width:e.barPct("error")+"%"})},null,4),n("span",{class:"ov-bar-seg ov-bar-expired",title:"Expired",style:Re({width:e.barPct("expired")+"%"})},null,4),n("span",{class:"ov-bar-seg ov-bar-removed",title:"Removed",style:Re({width:e.barPct("removed")+"%"})},null,4)]),n("div",Og,[n("a",Pg,[t[34]||(t[34]=n("span",{class:"ov-swatch ov-bar-ready"},null,-1)),t[35]||(t[35]=h(" ready ",-1)),n("span",Ig,u(e.fmt?.number(e.statusCount("ready"))),1)]),n("a",Mg,[t[36]||(t[36]=n("span",{class:"ov-swatch ov-bar-preparing"},null,-1)),t[37]||(t[37]=h(" preparing ",-1)),n("span",Vg,u(e.fmt?.number(e.statusCount("preparing")+e.statusCount("download"))),1)]),n("a",qg,[t[38]||(t[38]=n("span",{class:"ov-swatch ov-bar-error"},null,-1)),t[39]||(t[39]=h(" error ",-1)),n("span",Lg,u(e.fmt?.number(e.statusCount("error"))),1)]),n("a",$g,[t[40]||(t[40]=n("span",{class:"ov-swatch ov-bar-expired"},null,-1)),t[41]||(t[41]=h(" expired ",-1)),n("span",Ug,u(e.fmt?.number(e.statusCount("expired")+e.statusCount("expiring"))),1)]),n("a",Fg,[t[42]||(t[42]=n("span",{class:"ov-swatch ov-bar-removed"},null,-1)),t[43]||(t[43]=h(" removed ",-1)),n("span",Bg,u(e.fmt?.number(e.statusCount("removed")+e.statusCount("removing"))),1)])])]),c(" Error breakdown "),n("div",zg,[n("div",Hg,[t[44]||(t[44]=n("span",{class:"ov-panel-title"},"Errors \xB7 24h",-1)),n("span",jg,u(e.data?.errors?.last24h)+" total",1)]),n("div",Gg,[n("div",Wg,[t[45]||(t[45]=n("span",{class:"ov-ebar-label"},"5xx",-1)),n("span",Kg,[n("span",{class:"ov-ebar-fill ov-ebar-error",style:Re({width:e.errPct("error")+"%"})},null,4)]),n("span",Yg,u(e.data?.errors?.severity?.error),1)]),n("div",Jg,[t[46]||(t[46]=n("span",{class:"ov-ebar-label"},"4xx",-1)),n("span",Qg,[n("span",{class:"ov-ebar-fill ov-ebar-warn",style:Re({width:e.errPct("warn")+"%"})},null,4)]),n("span",Xg,u(e.data?.errors?.severity?.warn),1)]),n("div",Zg,[t[47]||(t[47]=n("span",{class:"ov-ebar-label"},"Info",-1)),n("span",xg,[n("span",{class:"ov-ebar-fill ov-ebar-info",style:Re({width:e.errPct("info")+"%"})},null,4)]),n("span",ey,u(e.data?.errors?.severity?.info),1)])]),e.data?.repos?.recentErrors24h?(l(),d("div",ty,[n("a",ny,u(e.data?.repos?.recentErrors24h)+" repos in error state \u2192",1)])):c("v-if",!0)]),c(" Top routes / queues "),n("div",oy,[t[52]||(t[52]=n("div",{class:"ov-panel-head"},[n("span",{class:"ov-panel-title"},"Queues"),n("span",{class:"ov-panel-meta"},"by state")],-1)),n("div",sy,[t[51]||(t[51]=me('
QueueActiveWaitFailed
',1)),n("a",iy,[t[48]||(t[48]=n("span",{class:"ov-route-name"},"download",-1)),n("span",ry,u(e.data?.queues?.download?.active),1),n("span",ay,u(e.data?.queues?.download?.waiting),1),n("span",{class:O(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.download?.failed>0}])},u(e.data?.queues?.download?.failed),3)]),n("a",ly,[t[49]||(t[49]=n("span",{class:"ov-route-name"},"remove",-1)),n("span",dy,u(e.data?.queues?.remove?.active),1),n("span",uy,u(e.data?.queues?.remove?.waiting),1),n("span",{class:O(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.remove?.failed>0}])},u(e.data?.queues?.remove?.failed),3)]),n("a",cy,[t[50]||(t[50]=n("span",{class:"ov-route-name"},"cache",-1)),n("span",py,u(e.data?.queues?.cache?.active),1),n("span",fy,u(e.data?.queues?.cache?.waiting),1),n("span",{class:O(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.cache?.failed>0}])},u(e.data?.queues?.cache?.failed),3)])])])]),c(" \u2500\u2500 Services bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",my,[n("div",hy,[t[53]||(t[53]=n("span",{class:"ov-panel-title"},"Services",-1)),n("span",vy,u(e.fmt?.number(e.data?.users?.total))+" users \xB7 "+u(e.data?.conferences?.total)+" conferences",1)]),n("div",gy,[n("div",yy,[t[55]||(t[55]=n("span",{class:"ov-svc-dot ov-dot-ok"},null,-1)),n("div",by,[t[54]||(t[54]=n("span",{class:"ov-svc-name"},"web",-1)),n("span",wy,u(e.data?.system?.nodeVersion),1)]),n("span",ky,"uptime "+u(e.humanDuration(e.data?.system?.uptime)),1)]),n("div",Cy,[n("span",{class:O(["ov-svc-dot",e.queueTotal(e.data?.queues?.download)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",Ey,[t[56]||(t[56]=n("span",{class:"ov-svc-name"},"download",-1)),e.queueTotal(e.data?.queues?.download)?(l(),d("span",Sy,u(e.queueTotal(e.data?.queues?.download))+" jobs",1)):c("v-if",!0),e.queueTotal(e.data?.queues?.download)?c("v-if",!0):(l(),d("span",Ny,"idle"))])]),n("div",Ry,[n("span",{class:O(["ov-svc-dot",e.queueTotal(e.data?.queues?.cache)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",Dy,[t[57]||(t[57]=n("span",{class:"ov-svc-name"},"cache",-1)),e.queueTotal(e.data?.queues?.cache)?(l(),d("span",Ty,u(e.queueTotal(e.data?.queues?.cache))+" jobs",1)):c("v-if",!0),e.queueTotal(e.data?.queues?.cache)?c("v-if",!0):(l(),d("span",_y,"idle"))])]),n("div",Ay,[n("span",{class:O(["ov-svc-dot",e.queueTotal(e.data?.queues?.remove)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",Oy,[t[58]||(t[58]=n("span",{class:"ov-svc-name"},"remove",-1)),e.queueTotal(e.data?.queues?.remove)?(l(),d("span",Py,u(e.queueTotal(e.data?.queues?.remove))+" jobs",1)):c("v-if",!0),e.queueTotal(e.data?.queues?.remove)?c("v-if",!0):(l(),d("span",Iy,"idle"))])]),n("div",My,[n("span",{class:O(["ov-svc-dot",e.data?.repos?.recentErrors24h>10?"ov-dot-warn":"ov-dot-ok"])},null,2),n("div",Vy,[t[59]||(t[59]=n("span",{class:"ov-svc-name"},"errors",-1)),n("span",qy,u(e.data?.errors?.last24h)+" / 24h",1)])])])])],512)),[[Y,e.ovView==="summary"]]):c("v-if",!0),T(n("section",Ly,[n("div",$y,[t[64]||(t[64]=n("div",null,[n("h2",{class:"ov-panel-title",id:"cache-heading"},"Cache"),n("p",{class:"ov-performance-note"},"Shared storage, repeated reads and anonymization work \xB7 refreshes every 30 seconds")],-1)),n("div",Uy,[t[62]||(t[62]=n("label",{for:"cache-window"},"Time range",-1)),T(n("select",{id:"cache-window",class:"form-control form-control-sm","onUpdate:modelValue":t[0]||(t[0]=o=>e.cacheMinutes=o),onChange:t[1]||(t[1]=o=>e.loadCache())},[...t[60]||(t[60]=[n("option",{value:15},"Last 15 minutes",-1),n("option",{value:60},"Last hour",-1),n("option",{value:1440},"Last 24 hours",-1),n("option",{value:10080},"Last 7 days",-1)])],544),[[fn,e.cacheMinutes,void 0,{number:!0}]]),t[63]||(t[63]=n("label",{for:"cache-traffic"},"Traffic",-1)),T(n("select",{id:"cache-traffic",class:"form-control form-control-sm","onUpdate:modelValue":t[2]||(t[2]=o=>e.cacheTraffic=o)},[...t[61]||(t[61]=[me('',6)])],512),[[fn,e.cacheTraffic]])])]),e.cacheError?(l(),d("div",Fy,[n("span",null,u(e.cacheError),1),n("button",{type:"button",class:"btn btn-sm",onClick:t[3]||(t[3]=o=>e.loadCache())},"Retry")])):c("v-if",!0),!e.cacheReport&&!e.cacheError?(l(),d("p",By,"Loading cache monitoring\u2026")):c("v-if",!0),e.cacheReport?.available?(l(),d(W,{key:2},[e.cacheReport.enabled?c("v-if",!0):(l(),d("p",zy,"Shared blob storage is disabled. Inspection and legacy-cache activity are still measured.")),e.cacheReport.filesystemSupported?c("v-if",!0):(l(),d("p",Hy,"Shared blobs require a local filesystem. The configured storage continues to use its existing cache.")),e.cacheReport.dropped?(l(),d("p",jy,u(e.cacheReport.dropped)+" telemetry events were dropped. Totals may be incomplete.",1)):c("v-if",!0),e.cacheReport.source?(l(),d("div",Gy,[n("table",Wy,[t[65]||(t[65]=n("caption",{class:"sr-only"},"Current shared-cache storage and byte budgets",-1)),t[66]||(t[66]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Pool"),n("th",{scope:"col"},"Allocated / budget"),n("th",{scope:"col"},"Reserved for fills"),n("th",{scope:"col"},"Original bytes"),n("th",{scope:"col"},"Blobs"),n("th",{scope:"col"},"Active readers")])],-1)),n("tbody",null,[(l(!0),d(W,null,oe([{name:"Source blobs",data:e.cacheReport.source},{name:"Transformed output",data:e.cacheReport.results}],o=>T((l(),d("tr",{key:o.name},[n("th",Ky,u(o.name),1),n("td",null,u(e.humanBytes(o.data?.allocatedBytes))+" / "+u(e.humanBytes(o.data?.budgetBytes)),1),n("td",null,u(e.humanBytes(o.data?.reservedBytes)),1),n("td",null,u(e.humanBytes(o.data?.originalBytes)),1),n("td",null,u(o.data?.blobs),1),n("td",null,u(o.data?.activeReaders),1)])),[[Y,o.data]])),128))])])])):c("v-if",!0),e.cacheReport.source?(l(),d("p",Yy,"Source request hit rate: "+u(e.cacheRate("source","count"))+" \xB7 Source byte hit rate: "+u(e.cacheRate("source","bytes"))+" \xB7 Decision hit rate: "+u(e.cacheRate("decision","count")),1)):c("v-if",!0),t[69]||(t[69]=n("p",{class:"ov-performance-note"},"Reuse counts measure consecutive reads of the same blob within each interval. Codec timings are elapsed stream time, not CPU time; eviction times measure how long a blob was idle. Known monitors are identified by request metadata; other automation may remain in file reads.",-1)),e.cacheRows().length?(l(),d("div",Jy,[n("table",Qy,[t[67]||(t[67]=n("caption",{class:"sr-only"},"Cache events for the selected time range and traffic",-1)),t[68]||(t[68]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Event"),n("th",{scope:"col"},"Traffic"),n("th",{scope:"col"},"Count"),n("th",{scope:"col"},"Bytes"),n("th",{scope:"col"},"Mean measured time"),n("th",{scope:"col"},"p95 bound")])],-1)),n("tbody",null,[(l(!0),d(W,null,oe(e.cacheRows(),o=>(l(),d("tr",{key:o.name+":"+o.traffic},[n("th",Xy,u(e.cacheEventName(o.name)),1),n("td",null,u(o.traffic),1),n("td",null,u(o.count),1),n("td",null,u(e.humanBytes(o.bytes)),1),n("td",null,u(o.ms?(o.ms/o.count).toFixed(2)+" ms":"Not timed"),1),n("td",null,u(e.cacheP95(o)),1)]))),128))])])])):(l(),d("p",Zy,"No cache events in this time range for the selected traffic.")),n("p",xy,"Updated "+u(e.sampleAge(e.cacheReport))+" seconds ago. Minute history is retained for 48 hours; hourly history for 30 days.",1)],64)):c("v-if",!0)],512),[[Y,e.ovView==="cache"]]),T(n("section",eb,[n("div",tb,[t[72]||(t[72]=n("div",null,[n("h2",{class:"ov-panel-title",id:"performance-heading"},"Request performance"),n("p",{class:"ov-performance-note"},"Request latency and process health \xB7 refreshes every 30 seconds")],-1)),n("div",ob,[t[71]||(t[71]=n("label",{for:"performance-window"},"Time range",-1)),T(n("select",{id:"performance-window",class:"form-control form-control-sm","onUpdate:modelValue":t[4]||(t[4]=o=>e.performanceMinutes=o),onChange:t[5]||(t[5]=o=>e.loadPerformance()),"aria-label":"Performance time range"},[...t[70]||(t[70]=[n("option",{value:15},"Last 15 minutes",-1),n("option",{value:60},"Last hour",-1)])],544),[[fn,e.performanceMinutes,void 0,{number:!0}]])])]),e.performanceError?(l(),d("div",sb,[t[73]||(t[73]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),n("span",null,u(e.performanceError),1),n("button",{type:"button",class:"btn btn-sm",onClick:t[6]||(t[6]=o=>e.loadPerformance())},"Retry")])):c("v-if",!0),!e.performance&&!e.performanceError?(l(),d("p",ib,"Loading performance monitoring\u2026")):c("v-if",!0),e.performance?.available?(l(),d("div",rb,[n("div",ab,[n("button",{id:"performance-routes-tab",type:"button",class:O(["paper-tab",{active:e.performanceTab==="routes"}]),role:"tab","aria-selected":e.performanceTab==="routes",tabindex:e.performanceTab==="routes"?0:-1,"aria-controls":"performance-routes",onClick:t[7]||(t[7]=o=>e.performanceTab="routes"),onKeydown:t[8]||(t[8]=o=>e.previewTabKeydown(o))},"Routes",42,lb),n("button",{id:"performance-processes-tab",type:"button",class:O(["paper-tab",{active:e.performanceTab==="processes"}]),role:"tab","aria-selected":e.performanceTab==="processes",tabindex:e.performanceTab==="processes"?0:-1,"aria-controls":"performance-processes",onClick:t[9]||(t[9]=o=>e.performanceTab="processes"),onKeydown:t[10]||(t[10]=o=>e.previewTabKeydown(o))},"Processes",42,db),n("button",{id:"performance-stages-tab",type:"button",class:O(["paper-tab",{active:e.performanceTab==="stages"}]),role:"tab","aria-selected":e.performanceTab==="stages",tabindex:e.performanceTab==="stages"?0:-1,"aria-controls":"performance-stages",onClick:t[11]||(t[11]=o=>e.performanceTab="stages"),onKeydown:t[12]||(t[12]=o=>e.previewTabKeydown(o))},"Work stages",42,ub)]),T(n("div",cb,[e.performance.routes?.length?(l(),d("div",pb,[n("table",fb,[t[74]||(t[74]=n("caption",{class:"sr-only"},"Route latency for the selected time range",-1)),t[75]||(t[75]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Route"),n("th",{scope:"col",class:"num"},"Requests"),n("th",{scope:"col",class:"num"},"Average"),n("th",{scope:"col",class:"num"},"First byte p95"),n("th",{scope:"col",class:"num"},"p95"),n("th",{scope:"col",class:"num"},"p99"),n("th",{scope:"col",class:"num"},"Interrupted"),n("th",{scope:"col",class:"num"},"5xx"),n("th",{scope:"col",class:"num"},"Slow")])],-1)),n("tbody",null,[(l(!0),d(W,null,oe(e.performance.routes,o=>(l(),d("tr",{key:o.service+o.method+o.route},[n("th",mb,[n("span",null,u(o.route),1),n("small",null,u(o.service)+" \xB7 "+u(o.method),1)]),n("td",hb,u(e.fmt.number(o.count)),1),n("td",vb,u(e.formatMs(o.avgMs)),1),n("td",gb,u(e.firstByteBound(o)),1),n("td",yb,u(e.latencyBound(o,"p95UpperMs")),1),n("td",bb,u(e.latencyBound(o,"p99UpperMs")),1),n("td",{class:O(["num",{"ov-metric-warn":o.aborted>0}])},u(e.fmt.number(o.aborted)),3),n("td",{class:O(["num",{"ov-metric-warn":o.errors>0}])},u(e.fmt.number(o.errors)),3),n("td",{class:O(["num",{"ov-metric-warn":o.slow>0}])},u(e.fmt.number(o.slow)),3)]))),128))])])])):(l(),d("p",wb,"No recorded requests in this time range yet."))],512),[[Y,e.performanceTab==="routes"]]),T(n("div",kb,[t[79]||(t[79]=n("p",{class:"ov-performance-note"},"API and streamer processes \xB7 latest sample per instance",-1)),e.performance.instances?.length?(l(),d("div",Eb,[n("table",Sb,[t[77]||(t[77]=n("caption",{class:"sr-only"},"API and streamer process resource usage",-1)),t[78]||(t[78]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Process"),n("th",{scope:"col",class:"num"},"RSS / limit"),n("th",{scope:"col",class:"num"},"CPU"),n("th",{scope:"col",class:"num"},"Event loop p95"),n("th",{scope:"col",class:"num"},"Active requests"),n("th",{scope:"col",class:"num"},"Sockets / CLOSE_WAIT"),n("th",{scope:"col",class:"num"},"Workers / waiting"),n("th",{scope:"col",class:"num"},"Sample age"),n("th",{scope:"col",class:"num"},"Dropped batches / metrics")])],-1)),n("tbody",null,[(l(!0),d(W,null,oe(e.performance.instances,o=>(l(),d("tr",{key:o.instance,class:O({"ov-metric-warning-row":e.performanceWarning(o)})},[n("th",Nb,[n("span",null,u(o.instance),1),e.performanceWarning(o)?(l(),d("small",Rb,[...t[76]||(t[76]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),h(" Needs attention",-1)])])):c("v-if",!0)]),n("td",Db,[h(u(e.humanBytes(o.memory.rss))+" / "+u(e.humanBytes(o.memoryLimitBytes)),1),n("small",null,"Peak "+u(e.humanBytes(e.peakRss(o))),1)]),n("td",Tb,u(o.cpuPercent==null?"Unavailable":o.cpuPercent.toFixed(1)+"%"),1),n("td",_b,u(o.eventLoop?.p95Ms==null?"Not applicable":o.eventLoop.p95Ms.toFixed(1)+" ms"),1),n("td",Ab,u(o.activeRequests),1),n("td",Ob,u(o.sockets?.descriptors??"Unavailable")+" / "+u(o.sockets?.closeWait??"Unavailable"),1),n("td",Pb,u(o.workers?.running??0)+" / "+u(o.workers?.waiting??0),1),n("td",Ib,u(e.sampleAge(o))+" s",1),n("td",Mb,u(o.droppedBatches)+" / "+u(o.droppedMetrics),1)],2))),128))])])])):(l(),d("div",Cb,"No recent process samples. Monitoring coverage is incomplete."))],512),[[Y,e.performanceTab==="processes"]]),T(n("div",Vb,[e.performance.stages?.some(o=>o.metric!=="first_byte")?(l(),d("div",qb,[n("table",Lb,[t[80]||(t[80]=n("caption",{class:"sr-only"},"Work stages and cache results",-1)),t[81]||(t[81]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Work stage"),n("th",{scope:"col",class:"num"},"Samples"),n("th",{scope:"col",class:"num"},"Average"),n("th",{scope:"col",class:"num"},"p95")])],-1)),n("tbody",null,[(l(!0),d(W,null,oe(e.performance.stages.filter(o=>o.metric!=="first_byte"),o=>(l(),d("tr",{key:o.service+o.metric},[n("th",$b,[n("span",null,u(o.metric),1),n("small",null,u(o.service),1)]),n("td",Ub,u(e.fmt.number(o.count)),1),n("td",Fb,u(e.formatMs(o.avgMs)),1),n("td",Bb,u(e.latencyBound(o,"p95UpperMs")),1)]))),128))])])])):(l(),d("p",zb,"No recorded work stages or cache results in this time range yet."))],512),[[Y,e.performanceTab==="stages"]]),t[82]||(t[82]=n("details",{class:"ov-performance-help"},[n("summary",null,"How to read these metrics"),n("p",null,"Latency includes upstream waits and response transfer. Percentiles show histogram bucket upper bounds, not exact timings. Process rows marked \u201CNeeds attention\u201D have stale samples, dropped monitoring data, CLOSE_WAIT sockets, high event loop delay, or high memory usage.")],-1))])):c("v-if",!0)],512),[[Y,e.ovView==="performance"]])])}var Hb={class:"container paper-page admin-page"},jb={class:"q-header"},Gb={class:"q-header-actions"},Wb={class:"q-cards"},Kb=["aria-pressed","onKeydown","onClick"],Yb={class:"q-card-head"},Jb=["textContent"],Qb=["textContent"],Xb={class:"q-card-sub"},Zb={key:0,class:"q-card-bar"},xb={key:0,class:"q-detail"},e1={class:"q-throughput"},t1={class:"q-range-btns"},n1={class:"q-section-label"},o1={key:0,class:"q-section-right"},s1={class:"q-chart-wrap"},i1={key:0,class:"q-chart-empty"},r1={class:"q-stats-panel"},a1={class:"q-section-label"},l1={class:"q-stats-grid"},d1={class:"q-stat"},u1=["textContent"],c1={class:"q-stat"},p1=["textContent"],f1={class:"q-stat"},m1=["textContent"],h1={class:"q-stat"},v1=["textContent"],g1={class:"q-stat"},y1=["textContent"],b1={class:"q-stat"},w1=["textContent"],k1={class:"q-stats-actions"},C1=["disabled"],E1={class:"q-danger-group"},S1={class:"q-jobs"},N1={class:"q-jobs-header"},R1={class:"q-section-label"},D1={class:"q-state-filters"},T1={class:"q-state-toggle"},_1={type:"checkbox"},A1={class:"q-search-row"},O1={type:"search",class:"form-control",placeholder:"Search by job/repo id\u2026",autocomplete:"off"},P1={class:"q-auto-refresh"},I1={type:"checkbox"},M1={key:0,class:"q-table"},V1=["onClick"],q1={class:"q-cell-state"},L1=["textContent"],$1=["textContent"],U1={class:"q-cell-id"},F1=["textContent","href"],B1={class:"q-cell-payload"},z1=["textContent"],H1={key:0,class:"q-payload-detail"},j1=["textContent"],G1=["textContent"],W1={class:"q-cell-progress"},K1={key:0,class:"q-progress-wrap"},Y1=["textContent"],J1={class:"q-cell-actions"},Q1=["onClick"],X1=["onClick"],Z1={key:0,class:"q-detail-row"},x1={colspan:"7"},ew={class:"q-job-detail"},tw={class:"q-job-detail-grid"},nw={class:"q-job-detail-item"},ow={class:"q-job-detail-value"},sw=["textContent","href"],iw={class:"q-job-detail-item"},rw={class:"q-job-detail-value"},aw=["textContent"],lw={key:0,class:"q-job-detail-item"},dw=["textContent"],uw={key:1,class:"q-job-detail-item"},cw=["textContent"],pw={key:2,class:"q-job-detail-item"},fw={class:"q-job-detail-value"},mw={key:3,class:"q-job-detail-item"},hw=["textContent"],vw={key:4,class:"q-job-detail-item"},gw=["textContent"],yw={key:5,class:"q-job-detail-item"},bw=["textContent"],ww={key:6,class:"q-job-detail-item"},kw=["textContent"],Cw={key:7,class:"q-job-detail-item"},Ew=["textContent"],Sw={key:0,class:"q-job-detail-error"},Nw=["textContent"],Rw={key:1},Dw=["textContent"],Tw={class:"q-job-detail-actions"},_w=["onClick"],Aw=["onClick"],Ow=["href"],Pw={key:1,class:"paper-table-empty",style:{border:"1px solid var(--border-color)","border-radius":"10px",background:"var(--paper-card)"}},Iw={key:0},Mw={key:1};function ql(e,t){let o=we("field");return l(),d("div",Hb,[t[51]||(t[51]=n("div",{class:"paper-crumbs"},[h("Admin \xA0/\xA0 "),n("span",{class:"here"},"Queues")],-1)),n("div",jb,[t[12]||(t[12]=n("h1",{class:"paper-page-title"},"Queues",-1)),n("div",Gb,[n("button",{class:"btn btn-sm",onClick:t[0]||(t[0]=i=>e.pauseAll())},"Pause all queues")])]),t[52]||(t[52]=me('',1)),c(" Queue overview cards "),n("div",Wb,[(l(!0),d(W,null,oe(e.queueList,(i,s)=>(l(),d("div",{class:O(["q-card",{selected:e.selectedQueue==i?.key,paused:i?.paused}]),role:"button",tabindex:"0","aria-pressed":e.selectedQueue===i.key,onKeydown:[ct(ae(r=>e.selectQueue(i.key),["prevent"]),["enter"]),ct(ae(r=>e.selectQueue(i.key),["prevent"]),["space"])],onClick:r=>e.selectQueue(i.key)},[n("div",Yb,[n("span",{class:O(["q-dot",{"q-dot-red":i?.paused||i?.counts?.failed>0,"q-dot-idle":!i?.counts?.active&&!i?.counts?.waiting}])},null,2),n("span",{class:"q-card-name",textContent:u(i?.label)},null,8,Jb)]),n("div",{class:"q-card-count",textContent:u((i?.counts?.waiting||0)+(i?.counts?.active||0)+(i?.counts?.delayed||0))},null,8,Qb),n("div",Xb,[n("span",null,"waiting \xB7 "+u(i?.counts?.active||0)+" active",1),i?.counts?.active?(l(),d("div",Zb,[n("div",{class:"q-card-bar-fill",style:Re({width:i?.counts?.active/((i?.counts?.waiting||0)+(i?.counts?.active||0)+(i?.counts?.delayed||0)||1)*100+"%"})},null,4)])):c("v-if",!0)])],42,Kb))),256))]),c(" Detail: throughput chart + stats panel "),e.selectedStats?(l(),d("div",xb,[n("div",e1,[n("div",t1,[n("button",{class:O(["btn btn-sm",{active:e.range=="1h"}]),onClick:t[1]||(t[1]=i=>e.setRange("1h"))},"1h",2),n("button",{class:O(["btn btn-sm",{active:e.range=="6h"}]),onClick:t[2]||(t[2]=i=>e.setRange("6h"))},"6h",2),n("button",{class:O(["btn btn-sm",{active:e.range=="24h"}]),onClick:t[3]||(t[3]=i=>e.setRange("24h"))},"24h",2),n("button",{class:O(["btn btn-sm",{active:e.range=="7d"}]),onClick:t[4]||(t[4]=i=>e.setRange("7d"))},"7d",2)]),n("div",n1,[h("Throughput \xB7 "+u(e.selectedQueue)+" ",1),(e.selectedStats?.completed24h||0)+(e.selectedStats?.failed24h||0)>0?(l(),d("span",o1,[t[14]||(t[14]=n("span",{class:"q-legend-completed"},"\u25CF",-1)),t[15]||(t[15]=h(" completed ",-1)),t[16]||(t[16]=n("span",{class:"q-legend-failed"},"\u25CF",-1)),t[17]||(t[17]=h(" failed ",-1)),(e.selectedStats?.completed24h||0)+(e.selectedStats?.failed24h||0)>0?(l(),d(W,{key:0},[t[13]||(t[13]=n("span",{class:"q-legend-exec","aria-hidden":"true"},null,-1)),h(" avg time \xB7 "+u(e.range),1)],64)):c("v-if",!0)])):c("v-if",!0)]),n("div",s1,[t[19]||(t[19]=n("canvas",{id:"q-throughput-chart",height:"180"},null,-1)),(e.selectedStats?.completed24h||0)+(e.selectedStats?.failed24h||0)===0?(l(),d("div",i1,[...t[18]||(t[18]=[n("strong",null,"No jobs processed in this window",-1),n("span",null,"Completed and failed jobs will chart here.",-1)])])):c("v-if",!0),t[20]||(t[20]=n("div",{id:"q-chart-tooltip",class:"q-chart-tooltip",style:{display:"none"}},null,-1)),t[21]||(t[21]=n("div",{id:"q-chart-crosshair",class:"q-chart-crosshair",style:{display:"none"}},null,-1))])]),n("div",r1,[n("div",a1,"Stats \xB7 "+u(e.selectedQueue),1),n("div",l1,[n("div",d1,[t[22]||(t[22]=n("div",{class:"q-stat-label"},"Waiting",-1)),n("div",{class:"q-stat-value",textContent:u(e.selectedStats?.counts?.waiting||0)},null,8,u1)]),n("div",c1,[t[23]||(t[23]=n("div",{class:"q-stat-label"},"Active",-1)),n("div",{class:"q-stat-value",textContent:u(e.selectedStats?.counts?.active||0)},null,8,p1)]),n("div",f1,[t[24]||(t[24]=n("div",{class:"q-stat-label"},"Completed (24h)",-1)),n("div",{class:"q-stat-value",textContent:u(e.fmt?.number(e.selectedStats?.completed24h))},null,8,m1)]),n("div",h1,[t[25]||(t[25]=n("div",{class:"q-stat-label"},"Failed (24h)",-1)),n("div",{class:"q-stat-value",textContent:u(e.selectedStats?.failed24h||0)},null,8,v1)]),n("div",g1,[t[26]||(t[26]=n("div",{class:"q-stat-label"},"Delayed",-1)),n("div",{class:"q-stat-value",textContent:u(e.selectedStats?.counts?.delayed||0)},null,8,y1)]),n("div",b1,[t[27]||(t[27]=n("div",{class:"q-stat-label"},"Workers",-1)),n("div",{class:"q-stat-value",textContent:u(e.selectedStats?.workers||0)},null,8,w1)])]),n("div",k1,[n("button",{class:"btn btn-sm",onClick:t[5]||(t[5]=i=>e.togglePause())},u(e.selectedStats?.paused?"Resume "+e.selectedQueue:"Pause "+e.selectedQueue),1),n("button",{class:"btn btn-sm",onClick:t[6]||(t[6]=i=>e.retryFailed()),disabled:!e.selectedStats?.counts?.failed},"Retry failed",8,C1),n("span",E1,[n("button",{class:"btn btn-sm btn-outline-danger",onClick:t[7]||(t[7]=i=>e.drainSelected())},"Drain"),n("button",{class:"btn btn-sm btn-outline-danger",onClick:t[8]||(t[8]=i=>e.emptyQueue())},"Empty")])])])])):c("v-if",!0),e.actionError?(l(),d("div",{key:1,class:"q-toast-error",onClick:t[9]||(t[9]=i=>e.actionError=null)},[t[28]||(t[28]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1)),h(" "+u(e.actionError),1)])):c("v-if",!0),c(" Jobs table "),n("div",S1,[n("div",N1,[n("div",R1,"All jobs \xB7 "+u(e.selectedQueue),1),n("div",D1,[(l(!0),d(W,null,oe(e.allStates,(i,s)=>(l(),d("label",T1,[T(n("input",_1,null,512),[[o,{state:e.viewState,set:r=>{e.stateFilter[i]=r},value:e.stateFilter[i],form:null,options:{}}]]),n("span",{class:O("q-state-chip q-state-"+i)},u(i),3)]))),256))])]),n("div",A1,[T(n("input",O1,null,512),[[o,{state:e.viewState,set:i=>{e.query.search=i},value:e.query?.search,form:null,options:{}}]]),n("label",P1,[T(n("input",I1,null,512),[[o,{state:e.viewState,set:i=>{e.query.autoRefresh=i},value:e.query?.autoRefresh,form:null,options:{}}]]),t[29]||(t[29]=n("span",{class:"auto-refresh-label"},"Auto-refresh",-1))]),n("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[10]||(t[10]=i=>e.refreshNow()),"aria-label":"Refresh"},[...t[30]||(t[30]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])]),e.filteredJobs().length>0?(l(),d("table",M1,[t[49]||(t[49]=n("thead",null,[n("tr",null,[n("th",null,"State"),n("th",null,"Job ID"),n("th",null,"Payload"),n("th",null,"Attempts"),n("th",null,"Duration"),n("th",null,"Progress"),n("th")])],-1)),(l(!0),d(W,null,oe(e.filteredJobs(),(i,s)=>(l(),d("tbody",null,[n("tr",{style:{cursor:"pointer"},class:O({"q-row-failed":i?._state=="failed","q-row-expanded":e.expanded[i?.id]}),onClick:r=>e.toggleJob(i)},[n("td",q1,[n("span",{textContent:u(i?._state),class:O("q-state-badge q-state-"+i?._state)},null,10,L1),i?._state=="delayed"&&i?.delayUntil?(l(),d("span",{key:0,class:"q-delay-hint",textContent:u(e.delayCountdown(i?.delayUntil))},null,8,$1)):c("v-if",!0)]),n("td",U1,[(l(),d("svg",{class:O(["ui-icon q-chevron",{"q-chevron-open":e.expanded[i?.id]}]),"aria-hidden":"true"},[...t[31]||(t[31]=[n("use",{href:"#ui-icon-chevron-right"},null,-1)])],2)),n("a",{target:"_blank",textContent:u("job:"+e.fmt.limitTo(i?.id,6)),onClick:t[11]||(t[11]=r=>r.stopPropagation()),href:e.safeUrl("/r/"+i?.id)},null,8,F1)]),n("td",B1,[n("span",{textContent:u(i?.name||"anonymize")},null,8,z1),i?.data?.repoId&&i?.data?.repoId!==i?.name?(l(),d("span",H1," \xB7 "+u(i?.data?.repoId),1)):c("v-if",!0)]),n("td",{class:"q-cell-num",textContent:u(i?.attemptsMade||1)},null,8,j1),n("td",{class:"q-cell-num",textContent:u(e.jobDuration(i))},null,8,G1),n("td",W1,[e.jobProgressPct(i)!==null?(l(),d("div",K1,[n("div",{class:"q-progress-bar",style:Re({"--pct":e.jobProgressPct(i)+"%"})},null,4),n("span",{class:"q-progress-label",textContent:u(e.jobProgressPct(i)+"%")},null,8,Y1)])):c("v-if",!0)]),n("td",J1,[i?._state=="failed"?(l(),d("button",{key:0,class:"btn btn-sm btn-icon",title:"Retry",onClick:r=>{e.retryJob(i),r.stopPropagation()},"aria-label":"Retry job"},[...t[32]||(t[32]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])],8,Q1)):c("v-if",!0),n("button",{class:"btn btn-sm btn-icon",title:"Remove","aria-label":"Remove job",onClick:r=>{e.removeJob(i),r.stopPropagation()}},[...t[33]||(t[33]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)])],8,X1)])],10,V1),e.expanded[i?.id]?(l(),d("tr",Z1,[n("td",x1,[n("div",ew,[n("div",tw,[n("div",nw,[t[34]||(t[34]=n("span",{class:"q-job-detail-label"},"Job id",-1)),n("span",ow,[n("a",{target:"_blank",textContent:u(i?.id),href:e.safeUrl("/r/"+i?.id)},null,8,sw)])]),n("div",iw,[t[35]||(t[35]=n("span",{class:"q-job-detail-label"},"State",-1)),n("span",rw,[n("span",{textContent:u(i?._state),class:O("q-state-badge q-state-"+i?._state)},null,10,aw)])]),i?.data?.repoId?(l(),d("div",lw,[t[36]||(t[36]=n("span",{class:"q-job-detail-label"},"Repo ID",-1)),n("span",{class:"q-job-detail-value",textContent:u(i?.data?.repoId)},null,8,dw)])):c("v-if",!0),i?.timestamp?(l(),d("div",uw,[t[37]||(t[37]=n("span",{class:"q-job-detail-label"},"Created",-1)),n("span",{class:"q-job-detail-value",textContent:u(e.humanTime(i?.timestamp))},null,8,cw)])):c("v-if",!0),i?._state=="delayed"&&i?.delayUntil?(l(),d("div",pw,[t[38]||(t[38]=n("span",{class:"q-job-detail-label"},"Retry at",-1)),n("span",fw,u(e.humanTime(i?.delayUntil))+" ("+u(e.delayCountdown(i?.delayUntil))+")",1)])):c("v-if",!0),i?.processedOn?(l(),d("div",mw,[t[39]||(t[39]=n("span",{class:"q-job-detail-label"},"Processed",-1)),n("span",{class:"q-job-detail-value",textContent:u(e.humanTime(i?.processedOn))},null,8,hw)])):c("v-if",!0),i?.finishedOn?(l(),d("div",vw,[t[40]||(t[40]=n("span",{class:"q-job-detail-label"},"Finished",-1)),n("span",{class:"q-job-detail-value",textContent:u(e.humanTime(i?.finishedOn))},null,8,gw)])):c("v-if",!0),i?.attemptsMade?(l(),d("div",yw,[t[41]||(t[41]=n("span",{class:"q-job-detail-label"},"Attempts",-1)),n("span",{class:"q-job-detail-value",textContent:u(i?.attemptsMade)},null,8,bw)])):c("v-if",!0),i?.progress&&i?.progress?.status?(l(),d("div",ww,[t[42]||(t[42]=n("span",{class:"q-job-detail-label"},"Status",-1)),n("span",{class:"q-job-detail-value",textContent:u(i?.progress?.status)},null,8,kw)])):c("v-if",!0),e.jobProgressPct(i)!==null?(l(),d("div",Cw,[t[43]||(t[43]=n("span",{class:"q-job-detail-label"},"Progress",-1)),n("span",{class:"q-job-detail-value",textContent:u(e.jobProgressPct(i)+"%")},null,8,Ew)])):c("v-if",!0)]),i?.failedReason?(l(),d("div",Sw,[t[44]||(t[44]=n("span",{class:"q-job-detail-label"},"Error",-1)),n("div",{class:"q-error-reason",textContent:u(i?.failedReason)},null,8,Nw)])):c("v-if",!0),i?.stacktrace?.length?(l(),d("div",Rw,[t[45]||(t[45]=n("span",{class:"q-job-detail-label"},"Stacktrace",-1)),(l(!0),d(W,null,oe(i?.stacktrace,(r,a)=>(l(),d("pre",{class:"q-error-stack",key:a},[n("code",{textContent:u(r)},null,8,Dw)]))),128))])):c("v-if",!0),n("div",Tw,[i?._state=="failed"?(l(),d("button",{key:0,class:"btn btn-sm",onClick:r=>e.retryJob(i)},[...t[46]||(t[46]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),h(" Retry",-1)])],8,_w)):c("v-if",!0),n("button",{class:"btn btn-sm",onClick:r=>e.removeJob(i)},[...t[47]||(t[47]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),h(" Remove",-1)])],8,Aw),n("a",{class:"btn btn-sm",target:"_blank",href:e.safeUrl("/r/"+i?.id)},[...t[48]||(t[48]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1),h(" View repo",-1)])],8,Ow)])])])])):c("v-if",!0)]))),256))])):c("v-if",!0),e.filteredJobs().length==0?(l(),d("div",Pw,[t[50]||(t[50]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1)),e.query?.search?c("v-if",!0):(l(),d("span",Iw,"No jobs in the "+u(e.selectedQueue)+" queue.",1)),e.query?.search?(l(),d("span",Mw,"No jobs match the current filters.")):c("v-if",!0)])):c("v-if",!0)])])}var Vw={class:"container paper-page admin-page"},qw={class:"admin-summary"},Lw={class:"summary-total"},$w={class:"summary-meta"},Uw=["aria-pressed"],Fw={class:"count"},Bw=["aria-pressed"],zw={class:"count"},Hw=["aria-pressed"],jw={class:"count"},Gw=["aria-pressed"],Ww={class:"count"},Kw=["title","aria-pressed"],Yw={class:"count"},Jw={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},Qw={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},Xw=["aria-expanded"],Zw={class:"search-wrap"},xw={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repositories\u2026",autocomplete:"off"},ek={key:0,class:"admin-search-hint"},tk={class:"admin-filter-inline"},nk={type:"text",class:"form-control form-control-sm",placeholder:"username"},ok={class:"admin-filter-inline"},sk={type:"text",class:"form-control form-control-sm",placeholder:"ID"},ik={key:0,class:"admin-filter-inline","aria-label":"Pagination"},rk=["disabled"],ak={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},lk=["disabled"],dk={key:0,class:"admin-filter-row"},uk={class:"admin-active-chips"},ck={class:"key"},pk=["onClick"],fk={key:1,class:"bulk-bar"},mk={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},hk={class:"paper-table-head",role:"row"},vk={role:"columnheader",style:{width:"28px"}},gk=["checked"],yk={role:"columnheader"},bk={role:"columnheader"},wk={role:"columnheader",class:"num"},kk={role:"columnheader"},Ck={role:"cell",style:{width:"28px"}},Ek={type:"checkbox","aria-label":"Select repository"},Sk={class:"cell-anon",role:"cell"},Nk={class:"anon-text"},Rk=["textContent","href"],Dk={class:"anon-sub"},Tk=["textContent","href"],_k={key:0,class:"meta-sep"},Ak=["textContent","href"],Ok={key:1,class:"meta-sep"},Pk=["textContent","href"],Ik={key:2,class:"meta-sep"},Mk={key:3,class:"meta-sep"},Vk={class:"cell-status",role:"cell"},qk={class:"status-line"},Lk=["textContent"],$k=["textContent","title"],Uk={class:"cell-views num",role:"cell"},Fk=["textContent"],Bk={class:"cell-expires",role:"cell"},zk=["textContent"],Hk={class:"cell-actions",role:"cell"},jk={class:"dropdown"},Gk={class:"dropdown-menu dropdown-menu-right"},Wk=["href"],Kk=["href"],Yk=["href"],Jk=["onClick"],Qk=["onClick"],Xk=["onClick"],Zk=["onClick"],xk=["onClick"],e0=["onClick"],t0={key:0,class:"paper-table-empty"},n0={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},o0={style:{"font-size":"12px",color:"var(--ink-muted)"}},s0={key:0,class:"pagination-compact"},i0=["disabled"],r0=["max"],a0=["disabled"],l0={class:"admin-filter-inline"},d0={class:"form-control form-control-sm"};function Ll(e,t){let o=we("field"),i=we("form");return l(),d("div",Vw,[t[70]||(t[70]=me('
Admin \xA0/\xA0 Repositories

Repositories

',3)),n("div",qw,[n("span",Lw,[h(u(e.total>=0?e.fmt.number(e.total):"\u2026")+" ",1),n("small",null,u(e.total===1?"repository":"repositories"),1)]),n("span",$w,u(e.fmt?.humanFileSize(e.totalSize))+" on disk",1),t[25]||(t[25]=n("span",{class:"summary-show-label"},"Show:",-1)),n("button",{type:"button",class:O(["summary-pill ok",{active:e.query?.ready}]),title:"Toggle ready filter",onClick:t[0]||(t[0]=s=>{e.query.ready=!e.query.ready,e.query.page=1}),"aria-pressed":!!e.query?.ready},[t[20]||(t[20]=h("Ready ",-1)),n("span",Fw,u(e.fmt?.number(e.statusCountFor("ready"))),1)],10,Uw),n("button",{type:"button",class:O(["summary-pill warn",{active:e.query?.preparing}]),title:"Toggle preparing filter",onClick:t[1]||(t[1]=s=>{e.query.preparing=!e.query.preparing,e.query.page=1}),"aria-pressed":!!e.query?.preparing},[t[21]||(t[21]=h("Preparing ",-1)),n("span",zw,u(e.fmt?.number(e.statusCountFor("preparing")+e.statusCountFor("download"))),1)],10,Bw),n("button",{type:"button",class:O(["summary-pill error",{active:e.query?.error}]),title:"Toggle errored filter",onClick:t[2]||(t[2]=s=>{e.query.error=!e.query.error,e.query.page=1}),"aria-pressed":!!e.query?.error},[t[22]||(t[22]=h("Errored ",-1)),n("span",jw,u(e.fmt?.number(e.statusCountFor("error"))),1)],10,Hw),n("button",{type:"button",class:O(["summary-pill",{active:e.query?.expired}]),title:"Toggle expired filter",onClick:t[3]||(t[3]=s=>{e.query.expired=!e.query.expired,e.query.page=1}),"aria-pressed":!!e.query?.expired},[t[23]||(t[23]=h("Expired ",-1)),n("span",Ww,u(e.fmt?.number(e.statusCountFor("expired")+e.statusCountFor("expiring"))),1)],10,Gw),n("button",{type:"button",class:O(["summary-pill",{active:e.query?.removed}]),title:e.query?.removed?"Removed repositories are shown. Click to hide them.":"Removed repositories are hidden. Click to include them.",onClick:t[4]||(t[4]=s=>{e.query.removed=!e.query.removed,e.query.page=1}),"aria-pressed":!!e.query?.removed},[t[24]||(t[24]=h("Removed ",-1)),n("span",Yw,u(e.fmt?.number(e.statusCountFor("removed")+e.statusCountFor("removing"))),1)],10,Kw)]),e.fetchError?(l(),d("div",Jw,[t[26]||(t[26]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),h(" "+u(e.fetchError),1)])):c("v-if",!0),T((l(),d("form",Qw,[c(" Row 1: search + scoped inputs + headline actions "),n("button",{type:"button",class:"btn btn-sm admin-filters-toggle",onClick:t[5]||(t[5]=s=>e.filtersOpen=!e.filtersOpen),"aria-expanded":e.filtersOpen?"true":"false"},"Filters",8,Xw),n("div",{class:O(["admin-filter-row",{"is-open":e.filtersOpen}])},[n("div",Zw,[T(n("input",xw,null,512),[[o,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.query?.search?c("v-if",!0):(l(),d("span",ek,"/"))]),n("span",tk,[t[27]||(t[27]=n("label",null,"Owner",-1)),T(n("input",nk,null,512),[[o,{state:e.viewState,set:s=>{e.query.owner=s},value:e.query?.owner,form:null,options:{}}]])]),n("span",ok,[t[28]||(t[28]=n("label",null,"Conference",-1)),T(n("input",sk,null,512),[[o,{state:e.viewState,set:s=>{e.query.conference=s},value:e.query?.conference,form:null,options:{}}]])]),t[32]||(t[32]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[6]||(t[6]=s=>e.exportCsv())},[...t[29]||(t[29]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),h(" Export",-1)])]),e.totalPage>1?(l(),d("span",ik,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[7]||(t[7]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[30]||(t[30]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,rk),n("span",ak,u(e.query?.page)+"/"+u(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[8]||(t[8]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[31]||(t[31]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,lk)])):c("v-if",!0)],2),c(" Row 2: appears only when there are active filter chips "),e.chips?.length?(l(),d("div",dk,[n("div",uk,[(l(!0),d(W,null,oe(e.chips,(s,r)=>(l(),d("span",{class:"admin-active-chip",key:s?.key},[n("span",ck,u(s?.label),1),n("span",null,u(s?.value),1),n("button",{type:"button","aria-label":"Remove filter",onClick:a=>e.clearFilter(s.key)},[...t[33]||(t[33]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,pk)]))),128))])])):c("v-if",!0)])),[[i,e.viewState]]),e.selectedCount()>0?(l(),d("div",fk,[n("span",null,[n("strong",null,u(e.selectedCount()),1),t[34]||(t[34]=h(" selected",-1))]),n("button",{class:"btn btn-sm",type:"button",onClick:t[9]||(t[9]=s=>e.bulkRefresh())},[...t[35]||(t[35]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),h(" Force refresh",-1)])]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[10]||(t[10]=s=>e.bulkRemoveCache())},[...t[36]||(t[36]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),h(" Remove cache",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[11]||(t[11]=s=>e.clearSelection())},"Clear")])):c("v-if",!0),n("div",mk,[n("div",hk,[n("div",vk,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[12]||(t[12]=s=>e.selectAllOnPage()),checked:e.allSelected},null,8,gk)]),n("div",yk,[n("button",{type:"button",class:O(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[13]||(t[13]=s=>e.sortBy("source.repositoryName"))},[t[38]||(t[38]=h("Repository ",-1)),e.sortIcon("source.repositoryName")?(l(),d("svg",{key:0,class:O(["ui-icon sort-direction",{ascending:e.sortIcon("source.repositoryName")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[37]||(t[37]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):c("v-if",!0)],2)]),n("div",bk,[n("button",{type:"button",class:O(["sortable",{active:e.query?.sort=="status"}]),onClick:t[14]||(t[14]=s=>e.sortBy("status"))},[t[40]||(t[40]=h("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:O(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[39]||(t[39]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):c("v-if",!0)],2)]),n("div",wk,[n("button",{type:"button",class:O(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[15]||(t[15]=s=>e.sortBy("pageView"))},[t[42]||(t[42]=h("Views ",-1)),e.sortIcon("pageView")?(l(),d("svg",{key:0,class:O(["ui-icon sort-direction",{ascending:e.sortIcon("pageView")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[41]||(t[41]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):c("v-if",!0)],2)]),n("div",kk,[n("button",{type:"button",class:O(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[16]||(t[16]=s=>e.sortBy("anonymizeDate"))},[t[44]||(t[44]=h("Anonymized ",-1)),e.sortIcon("anonymizeDate")?(l(),d("svg",{key:0,class:O(["ui-icon sort-direction",{ascending:e.sortIcon("anonymizeDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[43]||(t[43]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):c("v-if",!0)],2)]),t[45]||(t[45]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(W,null,oe(e.filteredRepositories,(s,r)=>(l(),d("div",{class:O(["paper-table-row",{"repo-inactive":s?.status=="expired"||s?.status=="removed","repo-error":s?.status=="error","row-selected":e.selected[s?.repoId]}]),role:"row"},[n("div",Ck,[T(n("input",Ek,null,512),[[o,{state:e.viewState,set:a=>{e.selected[s.repoId]=a},value:e.selected[s?.repoId],form:null,options:{}}]])]),n("div",Sk,[t[47]||(t[47]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",Nk,[n("a",{class:"repo-name",target:"_blank",textContent:u(s?.repoId),href:e.safeUrl("/r/"+s?.repoId)},null,8,Rk),n("div",Dk,[n("a",{textContent:u(s?.source?.repositoryName),href:e.safeUrl("https://github.com/"+s?.source?.repositoryName+"/")},null,8,Tk),s?.options?.update?(l(),d("span",_k,[n("a",{textContent:u(s?.source?.branch),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.branch)},null,8,Ak)])):c("v-if",!0),s?.options?.update?c("v-if",!0):(l(),d("span",Ok,[n("a",{class:"mono-hash",textContent:u(s?.source?.commit?.substring(0,7)),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.commit)},null,8,Pk)])),s?.conference?(l(),d("span",Ik,[t[46]||(t[46]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),h(" "+u(s?.conference),1)])):c("v-if",!0),s?.size?.storage>0?(l(),d("span",Mk,u(e.fmt?.humanFileSize(s?.size?.storage)),1)):c("v-if",!0),n("span",null,u(e.fmt?.number(s?.options?.terms?.length))+" "+u(s?.options?.terms?.length===1?"term":"terms"),1)])])]),n("div",Vk,[n("span",qk,[n("span",{class:O(["status-dot",{"status-removed":s?.status=="removed"||s?.status=="expired","status-ready":s?.status=="ready","status-error":s?.status=="error","status-preparing":s?.status=="preparing"}])},null,2),n("span",{textContent:u(e.fmt?.title(s?.status))},null,8,Lk)]),s?.statusMessage?(l(),d("span",{key:0,class:"status-sub",textContent:u(e.fmt?.statusMsg(s?.statusMessage)),title:s?.statusMessage},null,8,$k)):c("v-if",!0)]),n("div",Uk,[t[48]||(t[48]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),t[49]||(t[49]=h()),n("span",{textContent:u(e.fmt?.number(s?.pageView||0))},null,8,Fk)]),n("div",Bk,[t[50]||(t[50]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[51]||(t[51]=h()),n("span",{textContent:u((e.fmt?.humanTime(s?.anonymizeDate)||"").replace(/^on /,""))},null,8,zk)]),n("div",Hk,[n("div",jk,[t[63]||(t[63]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",Gk,[n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+s?.repoId)},[...t[52]||(t[52]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),h(" Edit",-1)])],8,Wk),n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+s?.repoId+"/")},[...t[53]||(t[53]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),h(" View repo",-1)])],8,Kk),s?.options?.page&&s?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+s?.repoId+"/")},[...t[54]||(t[54]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),h(" View page",-1)])],8,Yk)):c("v-if",!0),n("a",{class:"dropdown-item",href:"#",onClick:ae(a=>e.fetchGithubInfo(s),["prevent"])},[...t[55]||(t[55]=[n("i",{class:"fab fa-github"},null,-1),h(" Live GitHub info",-1)])],8,Jk),t[61]||(t[61]=n("div",{class:"dropdown-divider"},null,-1)),T(n("a",{class:"dropdown-item",href:"#",onClick:ae(a=>e.updateRepository(s),["prevent"])},[...t[56]||(t[56]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),h(" Force update",-1)])],8,Qk),[[Y,s?.status=="ready"||s?.status=="error"]]),T(n("a",{class:"dropdown-item",href:"#",onClick:ae(a=>e.updateRepository(s),["prevent"])},[...t[57]||(t[57]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),h(" Enable",-1)])],8,Xk),[[Y,s?.status=="removed"]]),T(n("a",{class:"dropdown-item",href:"#",onClick:ae(a=>e.showStatusMessage(s),["prevent"])},[...t[58]||(t[58]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),h(" View status message",-1)])],8,Zk),[[Y,s?.statusMessage]]),t[62]||(t[62]=n("div",{class:"dropdown-divider"},null,-1)),n("a",{class:"dropdown-item",href:"#",onClick:ae(a=>e.removeCache(s),["prevent"])},[...t[59]||(t[59]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),h(" Remove cache",-1)])],8,xk),T(n("a",{class:"dropdown-item text-danger",href:"#",onClick:ae(a=>e.removeRepository(s),["prevent"])},[...t[60]||(t[60]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),h(" Remove",-1)])],8,e0),[[Y,s?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(l(),d("div",t0,[t[64]||(t[64]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),t[65]||(t[65]=n("span",null,"No repositories match the current filters.",-1)),e.query.ready&&e.query.expired&&e.query.removed&&e.query.error&&e.query.preparing?c("v-if",!0):(l(),d("button",{key:0,type:"button",class:"btn btn-sm btn-outline-ink",onClick:t[17]||(t[17]=s=>e.showAllStatuses())},"Show all statuses"))])):c("v-if",!0)]),n("div",n0,[n("span",o0,u(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",s0,[n("button",{class:"btn btn-sm",onClick:t[18]||(t[18]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[66]||(t[66]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),h(" Previous ",-1)])],8,i0),T(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},"aria-label":"Page",max:e.totalPage},null,8,r0),[[o,{state:e.viewState,set:s=>{e.query.page=s},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+u(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[19]||(t[19]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[67]||(t[67]=[h(" Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,a0)])):c("v-if",!0),n("span",l0,[t[69]||(t[69]=n("label",null,"Per page",-1)),T((l(),d("select",d0,[...t[68]||(t[68]=[me('',5)])])),[[o,{state:e.viewState,set:s=>{e.query.limit=s},value:e.query?.limit,form:null,options:{}}]])])])])}var u0={class:"container paper-page admin-page"},c0={class:"paper-crumbs"},p0={class:"here"},f0={class:"paper-page-title"},m0={key:0,class:"user-detail-card"},h0={class:"user-header"},v0=["src"],g0={class:"status-dot-wrap"},y0=["textContent"],b0={key:0,class:"type-badge type-repo"},w0={class:"user-actions",style:{"margin-top":"4px"}},k0={class:"user-detail-grid"},C0={class:"detail-value mono-id"},E0={class:"detail-value"},S0=["href"],N0={class:"detail-value"},R0={class:"detail-value"},D0={key:0},T0={key:1,class:"text-muted"},_0={class:"detail-value"},A0={key:0,style:{"margin-top":"20px"}},O0={class:"paper-table w-100",style:{"margin-top":"10px"}},P0={class:"paper-table-row",style:{"grid-template-columns":"1fr 160px"}},I0={class:"cell-anon",role:"cell"},M0={class:"anon-text"},V0=["textContent"],q0={class:"cell-expires",role:"cell"},L0={key:1,class:"admin-section-header"},$0={class:"section-count"},U0={key:2,class:"user-detail-card"},F0={type:"text",class:"form-control",placeholder:"Token name (e.g. dev-laptop)",required:""},B0={key:0,class:"alert alert-warning",role:"alert"},z0={style:{"white-space":"pre-wrap","word-break":"break-all",margin:"8px 0 0","font-family":"var(--font-mono)","font-size":"0.85rem"}},H0={key:1,class:"paper-table w-100"},j0={class:"paper-table-row",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},G0=["textContent"],W0=["textContent"],K0={role:"cell"},Y0={key:0},J0={key:1,class:"text-muted"},Q0={role:"cell"},X0=["onClick"],Z0={key:2,class:"paper-table-empty"},x0={class:"admin-section-header"},e2={class:"section-count"},t2={class:"admin-summary"},n2={class:"summary-total"},o2=["aria-pressed"],s2={class:"count"},i2=["aria-pressed"],r2={class:"count"},a2=["aria-pressed"],l2={class:"count"},d2=["aria-pressed"],u2={class:"count"},c2=["aria-pressed"],p2={class:"count"},f2={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},m2={class:"admin-filter-row"},h2={class:"search-wrap"},v2={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repoId, source repo, error message\u2026",autocomplete:"off"},g2={key:3,class:"bulk-bar"},y2={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},b2={class:"paper-table-head",role:"row"},w2={role:"columnheader",style:{width:"28px"}},k2=["checked"],C2={role:"columnheader"},E2={role:"columnheader"},S2={role:"columnheader",class:"num"},N2={role:"columnheader"},R2={role:"cell",style:{width:"28px"}},D2={type:"checkbox","aria-label":"Select repository"},T2={class:"cell-anon",role:"cell"},_2={class:"anon-text"},A2=["textContent","href"],O2={class:"anon-sub"},P2=["textContent","href"],I2={key:0},M2=["textContent","href"],V2={key:1},q2=["textContent","href"],L2={key:2},$2={class:"cell-status",role:"cell"},U2={class:"status-line"},F2=["textContent"],B2=["textContent","title"],z2=["textContent"],H2=["textContent"],j2={class:"cell-actions",role:"cell"},G2={class:"dropdown"},W2={class:"dropdown-menu dropdown-menu-right"},K2=["href"],Y2=["href"],J2=["href"],Q2=["onClick"],X2=["onClick"],Z2=["onClick"],x2=["onClick"],eC=["onClick"],tC=["onClick"],nC={key:0,class:"paper-table-empty"};function $l(e,t){let o=we("field"),i=we("form");return l(),d("div",u0,[n("div",c0,[t[22]||(t[22]=n("a",{href:"/admin/"},"Admin",-1)),t[23]||(t[23]=h(" \xA0/\xA0 ",-1)),t[24]||(t[24]=n("a",{href:"/admin/users"},"Users",-1)),t[25]||(t[25]=h(" \xA0/\xA0 ",-1)),n("span",p0,u(e.userInfo?.username||"Profile"),1)]),n("h1",f0,u(e.userInfo?.username||"User"),1),t[87]||(t[87]=me('',1)),e.userInfo?(l(),d("div",m0,[n("div",h0,[e.userInfo?.photo?(l(),d("img",{key:0,width:"56",height:"56",src:e.safeUrl(e.userInfo?.photo)},null,8,v0)):c("v-if",!0),n("div",null,[n("h2",null,[h(u(e.userInfo?.username)+" ",1),n("span",g0,[n("span",{class:O(["status-dot",{"status-ready":e.userInfo?.status=="active","status-removed":e.userInfo?.status!="active"}])},null,2),n("span",{textContent:u(e.fmt?.title(e.userInfo?.status))},null,8,y0)]),e.userInfo?.isAdmin?(l(),d("span",b0,"Admin")):c("v-if",!0)]),n("div",w0,[e.userInfo?.status!=="banned"&&e.userInfo?.username!==e.user?.username?(l(),d("button",{key:0,class:"btn btn-sm btn-outline-danger",onClick:t[0]||(t[0]=s=>e.banUser())},[...t[26]||(t[26]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),h(" Ban",-1)])])):c("v-if",!0),e.userInfo?.status==="banned"||e.userInfo?.status==="removed"?(l(),d("button",{key:1,class:"btn btn-sm",onClick:t[1]||(t[1]=s=>e.activateUser())},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),h(" Activate",-1)])])):c("v-if",!0),e.userInfo?.isAdmin?c("v-if",!0):(l(),d("button",{key:2,class:"btn btn-sm",onClick:t[2]||(t[2]=s=>e.promoteUser())},[...t[28]||(t[28]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user-shield"})],-1),h(" Promote to admin",-1)])])),e.userInfo?.isAdmin&&e.userInfo?.username!==e.user?.username?(l(),d("button",{key:3,class:"btn btn-sm btn-outline-ink",onClick:t[3]||(t[3]=s=>e.demoteUser())},[...t[29]||(t[29]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user-minus"})],-1),h(" Remove admin",-1)])])):c("v-if",!0)])])]),n("div",k0,[t[32]||(t[32]=n("div",{class:"detail-label"},"ID",-1)),n("div",C0,u(e.userInfo?._id),1),t[33]||(t[33]=n("div",{class:"detail-label"},"Email",-1)),n("div",{class:O(["detail-value",{"is-empty":!e.userInfo?.emails?.[0]?.email}])},u(e.userInfo?.emails?.[0]?.email||"Not shared"),3),t[34]||(t[34]=n("div",{class:"detail-label"},"Access token",-1)),n("div",{class:O(["detail-value",{"is-empty":!e.userInfo?.accessTokens?.github}]),style:{"font-family":"var(--font-mono)","font-size":"0.85rem"}},u(e.userInfo?.accessTokens?.github||"Not stored"),3),t[35]||(t[35]=n("div",{class:"detail-label"},"GitHub",-1)),n("div",E0,[n("a",{target:"_blank",href:e.safeUrl("https://github.com/"+e.userInfo?.username)},[t[30]||(t[30]=n("i",{class:"fab fa-github"},null,-1)),h(" "+u(e.userInfo?.username),1)],8,S0)]),t[36]||(t[36]=n("div",{class:"detail-label"},"Created",-1)),n("div",N0,u(e.fmt?.humanTime(e.userInfo?.dateOfEntry)),1),t[37]||(t[37]=n("div",{class:"detail-label"},"Last connection",-1)),n("div",R0,[e.userInfo?.accessTokenDates?.github?(l(),d("span",D0,u(e.fmt?.humanTime(e.userInfo?.accessTokenDates?.github)),1)):c("v-if",!0),e.userInfo?.accessTokenDates?.github?c("v-if",!0):(l(),d("span",T0,"Not recorded (GitHub App sign-in)"))]),t[38]||(t[38]=n("div",{class:"detail-label"},"GitHub repos",-1)),n("div",_0,[h(u(e.userInfo?.repositories?.length?e.userInfo.repositories.length+" repositories":"Not synced")+" ",1),e.userInfo?.repositories?.length?(l(),d("button",{key:0,class:"btn btn-sm ml-2",onClick:t[4]||(t[4]=s=>e.showRepos=!e.showRepos)},u(e.showRepos?"Hide repos":"Show repos"),1)):c("v-if",!0),n("button",{class:"btn btn-sm ml-1",onClick:t[5]||(t[5]=s=>e.getGitHubRepositories())},[...t[31]||(t[31]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),h(" Refresh ",-1)])])])]),e.showRepos?(l(),d("div",A0,[t[41]||(t[41]=n("div",{class:"paper-section-eyebrow"},"GitHub repositories",-1)),n("div",O0,[(l(!0),d(W,null,oe(e.userInfo?.repositories,(s,r)=>(l(),d("div",P0,[n("div",I0,[t[39]||(t[39]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",M0,[n("span",{class:"repo-name",textContent:u(s?.name)},null,8,V0)])]),n("div",q0,[t[40]||(t[40]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-database"})],-1)),h(" "+u(e.fmt?.humanFileSize(s?.size)),1)])]))),256))])])):c("v-if",!0)])):c("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(l(),d("div",L0,[t[42]||(t[42]=n("h2",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-key"})]),h(" API tokens")],-1)),n("span",$0,u(e.tokens?.length),1)])):c("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(l(),d("div",U0,[t[48]||(t[48]=n("p",{class:"paper-page-lede"},[h("Personal API tokens for this admin account. Send as "),n("code",null,"Authorization: Bearer "),h(" to authenticate without GitHub OAuth (useful for development).")],-1)),T((l(),d("form",{class:"d-flex",style:{gap:"8px","margin-bottom":"12px"},onSubmit:t[6]||(t[6]=ae(s=>e.submitForm(s,()=>{e.createToken()}),["prevent"]))},[T(n("input",F0,null,512),[[o,{state:e.viewState,set:s=>{e.tokenForm.name=s},value:e.tokenForm?.name,form:null,options:{}}]]),t[43]||(t[43]=n("button",{type:"submit",class:"btn btn-ink"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})]),h(" Generate")],-1))],32)),[[i,e.viewState]]),e.tokenForm?.plaintext?(l(),d("div",B0,[t[44]||(t[44]=n("strong",null,"Copy this token now \u2014 it will not be shown again:",-1)),n("pre",z0,u(e.tokenForm?.plaintext),1),n("button",{class:"btn btn-sm",onClick:t[7]||(t[7]=s=>e.tokenForm.plaintext=null)},"Dismiss")])):c("v-if",!0),e.tokens?.length?(l(),d("div",H0,[t[46]||(t[46]=n("div",{class:"paper-table-head",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},[n("div",{role:"columnheader"},"Name"),n("div",{role:"columnheader"},"Created"),n("div",{role:"columnheader"},"Last used"),n("div",{role:"columnheader","aria-label":"Actions"})],-1)),(l(!0),d(W,null,oe(e.tokens,(s,r)=>(l(),d("div",j0,[n("div",{role:"cell",textContent:u(s?.name)},null,8,G0),n("div",{role:"cell",textContent:u(e.fmt?.humanTime(s?.createdAt))},null,8,W0),n("div",K0,[s?.lastUsedAt?(l(),d("span",Y0,u(e.fmt?.humanTime(s?.lastUsedAt)),1)):c("v-if",!0),s?.lastUsedAt?c("v-if",!0):(l(),d("span",J0,"never"))]),n("div",Q0,[n("button",{class:"btn btn-sm text-danger btn-icon",title:"Revoke","aria-label":"Revoke token",onClick:a=>e.revokeToken(s)},[...t[45]||(t[45]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)])],8,X0)])]))),256))])):c("v-if",!0),e.tokens?.length?c("v-if",!0):(l(),d("div",Z0,[...t[47]||(t[47]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No tokens yet.",-1)])]))])):c("v-if",!0),n("div",x0,[t[49]||(t[49]=n("h2",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})]),h(" Anonymized repositories")],-1)),n("span",e2,u(e.repositories?.length),1)]),n("div",t2,[n("span",n2,u(e.fmt?.number(e.repositories?.length)),1),n("button",{type:"button",class:O(["summary-pill ok",{active:e.filters?.status?.ready===!1}]),title:"Toggle ready filter",onClick:t[8]||(t[8]=s=>e.filters.status.ready=!e.filters.status.ready),"aria-pressed":e.filters?.status?.ready===!1},[t[50]||(t[50]=h("Ready ",-1)),n("span",s2,u(e.fmt?.number(e.statusCountFor("ready"))),1)],10,o2),n("button",{type:"button",class:O(["summary-pill warn",{active:e.filters?.status?.preparing===!1}]),title:"Toggle preparing filter",onClick:t[9]||(t[9]=s=>e.filters.status.preparing=!e.filters.status.preparing),"aria-pressed":e.filters?.status?.preparing===!1},[t[51]||(t[51]=h("Preparing ",-1)),n("span",r2,u(e.fmt?.number(e.statusCountFor("preparing"))),1)],10,i2),n("button",{type:"button",class:O(["summary-pill error",{active:e.filters?.status?.error===!1}]),title:"Toggle errored filter",onClick:t[10]||(t[10]=s=>e.filters.status.error=!e.filters.status.error),"aria-pressed":e.filters?.status?.error===!1},[t[52]||(t[52]=h("Errored ",-1)),n("span",l2,u(e.fmt?.number(e.statusCountFor("error"))),1)],10,a2),n("button",{type:"button",class:O(["summary-pill",{active:e.filters?.status?.expired===!1}]),title:"Toggle expired filter",onClick:t[11]||(t[11]=s=>e.filters.status.expired=!e.filters.status.expired),"aria-pressed":e.filters?.status?.expired===!1},[t[53]||(t[53]=h("Expired ",-1)),n("span",u2,u(e.fmt?.number(e.statusCountFor("expired"))),1)],10,d2),n("button",{type:"button",class:O(["summary-pill",{active:e.filters?.status?.removed===!1}]),title:"Toggle removed filter",onClick:t[12]||(t[12]=s=>e.filters.status.removed=!e.filters.status.removed),"aria-pressed":e.filters?.status?.removed===!1},[t[54]||(t[54]=h("Removed ",-1)),n("span",p2,u(e.fmt?.number(e.statusCountFor("removed"))),1)],10,c2)]),T((l(),d("form",f2,[n("div",m2,[n("div",h2,[T(n("input",v2,null,512),[[o,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),t[56]||(t[56]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[13]||(t[13]=s=>e.exportCsv())},[...t[55]||(t[55]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),h(" Export",-1)])])])])),[[i,e.viewState]]),e.selectedCount()>0?(l(),d("div",g2,[n("span",null,[n("strong",null,u(e.selectedCount()),1),t[57]||(t[57]=h(" selected",-1))]),n("button",{class:"btn btn-sm",type:"button",onClick:t[14]||(t[14]=s=>e.bulkRefresh())},[...t[58]||(t[58]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),h(" Force refresh",-1)])]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[15]||(t[15]=s=>e.bulkRemoveCache())},[...t[59]||(t[59]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),h(" Remove cache",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[16]||(t[16]=s=>e.clearSelection())},"Clear")])):c("v-if",!0),n("div",y2,[n("div",b2,[n("div",w2,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[17]||(t[17]=s=>e.selectAllOnPage()),checked:e.allSelected},null,8,k2)]),n("div",C2,[n("button",{type:"button",class:O(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[18]||(t[18]=s=>e.sortBy("source.repositoryName"))},[t[61]||(t[61]=h("Repository ",-1)),e.sortIcon("source.repositoryName")?(l(),d("svg",{key:0,class:O(["ui-icon sort-direction",{ascending:e.sortIcon("source.repositoryName")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[60]||(t[60]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):c("v-if",!0)],2)]),n("div",E2,[n("button",{type:"button",class:O(["sortable",{active:e.query?.sort=="status"}]),onClick:t[19]||(t[19]=s=>e.sortBy("status"))},[t[63]||(t[63]=h("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:O(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[62]||(t[62]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):c("v-if",!0)],2)]),n("div",S2,[n("button",{type:"button",class:O(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[20]||(t[20]=s=>e.sortBy("pageView"))},[t[65]||(t[65]=h("Views ",-1)),e.sortIcon("pageView")?(l(),d("svg",{key:0,class:O(["ui-icon sort-direction",{ascending:e.sortIcon("pageView")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[64]||(t[64]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):c("v-if",!0)],2)]),n("div",N2,[n("button",{type:"button",class:O(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[21]||(t[21]=s=>e.sortBy("anonymizeDate"))},[t[67]||(t[67]=h("Anonymized ",-1)),e.sortIcon("anonymizeDate")?(l(),d("svg",{key:0,class:O(["ui-icon sort-direction",{ascending:e.sortIcon("anonymizeDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[66]||(t[66]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):c("v-if",!0)],2)]),t[68]||(t[68]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(W,null,oe(e.filteredRepositories,(s,r)=>(l(),d("div",{class:O(["paper-table-row",{"repo-inactive":s?.status=="expired"||s?.status=="removed","repo-error":s?.status=="error","row-selected":e.selected[s?.repoId]}]),role:"row"},[n("div",R2,[T(n("input",D2,null,512),[[o,{state:e.viewState,set:a=>{e.selected[s.repoId]=a},value:e.selected[s?.repoId],form:null,options:{}}]])]),n("div",T2,[t[73]||(t[73]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",_2,[n("a",{class:"repo-name",target:"_blank",textContent:u(s?.repoId),href:e.safeUrl("/r/"+s?.repoId)},null,8,A2),n("div",O2,[n("a",{textContent:u(s?.source?.fullName),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/")},null,8,P2),s?.options?.update?(l(),d("span",I2,[t[69]||(t[69]=h("\xA0\xB7\xA0",-1)),n("a",{textContent:u(s?.source?.branch),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.branch)},null,8,M2)])):c("v-if",!0),s?.options?.update?c("v-if",!0):(l(),d("span",V2,[t[70]||(t[70]=h("\xA0\xB7\xA0@",-1)),n("a",{textContent:u(s?.source?.commit?.substring(0,8)),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.commit)},null,8,q2)])),s?.conference?(l(),d("span",L2,[t[71]||(t[71]=h("\xA0\xB7\xA0",-1)),t[72]||(t[72]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),h(" "+u(s?.conference),1)])):c("v-if",!0),n("span",null,"\xA0\xB7\xA0"+u(e.fmt?.humanFileSize(s?.size?.storage)),1),n("span",null,"\xA0\xB7\xA0"+u(e.fmt?.number(s?.options?.terms?.length))+" "+u(s?.options?.terms?.length===1?"term":"terms"),1)])])]),n("div",$2,[n("span",U2,[n("span",{class:O(["status-dot",{"status-removed":s?.status=="removed"||s?.status=="expired","status-ready":s?.status=="ready","status-error":s?.status=="error","status-preparing":s?.status=="preparing"}])},null,2),n("span",{textContent:u(e.fmt?.title(s?.status))},null,8,F2)]),s?.statusMessage?(l(),d("span",{key:0,class:"status-sub",textContent:u(e.fmt?.statusMsg(s?.statusMessage)),title:s?.statusMessage},null,8,B2)):c("v-if",!0)]),n("div",{class:"cell-views num",role:"cell",textContent:u(e.fmt?.number(s?.pageView||0))},null,8,z2),n("div",{class:"cell-expires",role:"cell",textContent:u(e.fmt?.humanTime(s?.anonymizeDate))},null,8,H2),n("div",j2,[n("div",G2,[t[85]||(t[85]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",W2,[n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+s?.repoId)},[...t[74]||(t[74]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),h(" Edit",-1)])],8,K2),n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+s?.repoId+"/")},[...t[75]||(t[75]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),h(" View repo",-1)])],8,Y2),s?.options?.page&&s?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+s?.repoId+"/")},[...t[76]||(t[76]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),h(" View page",-1)])],8,J2)):c("v-if",!0),n("a",{class:"dropdown-item",href:"#",onClick:ae(a=>e.fetchGithubInfo(s),["prevent"])},[...t[77]||(t[77]=[n("i",{class:"fab fa-github"},null,-1),h(" Live GitHub info",-1)])],8,Q2),t[83]||(t[83]=n("div",{class:"dropdown-divider"},null,-1)),T(n("a",{class:"dropdown-item",href:"#",onClick:ae(a=>e.updateRepository(s),["prevent"])},[...t[78]||(t[78]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),h(" Force update",-1)])],8,X2),[[Y,s?.status=="ready"||s?.status=="error"]]),T(n("a",{class:"dropdown-item",href:"#",onClick:ae(a=>e.updateRepository(s),["prevent"])},[...t[79]||(t[79]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),h(" Enable",-1)])],8,Z2),[[Y,s?.status=="removed"]]),T(n("a",{class:"dropdown-item",href:"#",onClick:ae(a=>e.showStatusMessage(s),["prevent"])},[...t[80]||(t[80]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),h(" View status message",-1)])],8,x2),[[Y,s?.statusMessage]]),t[84]||(t[84]=n("div",{class:"dropdown-divider"},null,-1)),n("a",{class:"dropdown-item",href:"#",onClick:ae(a=>e.removeCache(s),["prevent"])},[...t[81]||(t[81]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),h(" Remove cache",-1)])],8,eC),T(n("a",{class:"dropdown-item text-danger",href:"#",onClick:ae(a=>e.removeRepository(s),["prevent"])},[...t[82]||(t[82]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),h(" Remove",-1)])],8,tC),[[Y,s?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(l(),d("div",nC,[...t[86]||(t[86]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No repositories match the current filters.",-1)])])):c("v-if",!0)])])}var oC={class:"container paper-page admin-page"},sC={class:"admin-summary"},iC={class:"summary-total"},rC=["aria-pressed"],aC={class:"count"},lC=["aria-pressed"],dC={class:"count"},uC=["aria-pressed"],cC={class:"count"},pC=["aria-pressed"],fC={class:"count"},mC={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},hC={class:"w-100 admin-filter-toolbar","aria-label":"Users","accept-charset":"UTF-8"},vC={class:"admin-filter-row"},gC={class:"search-wrap"},yC={type:"search",class:"form-control","aria-label":"Search users",placeholder:"Search username or email\u2026",autocomplete:"off"},bC={key:0,class:"admin-search-hint"},wC={class:"admin-filter-inline"},kC={class:"form-control form-control-sm"},CC={key:0,class:"admin-filter-inline","aria-label":"Pagination"},EC=["disabled"],SC={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},NC=["disabled"],RC={key:0,class:"admin-filter-row"},DC={class:"admin-active-chips"},TC={class:"key"},_C=["onClick"],AC={key:1,class:"bulk-bar"},OC={class:"paper-table w-100",role:"table","aria-label":"Users",style:{"--cols":"28px minmax(280px, 2.4fr) 100px 140px 140px 52px"}},PC={class:"paper-table-head admin-users-row",role:"row"},IC={role:"columnheader",style:{width:"28px"}},MC=["checked"],VC={role:"columnheader"},qC={role:"columnheader"},LC={role:"cell",style:{width:"28px"}},$C={type:"checkbox","aria-label":"Select user"},UC={class:"cell-anon",role:"cell"},FC=["src"],BC={key:1,class:"avatar-fallback","aria-hidden":"true"},zC={class:"anon-text"},HC=["textContent","href"],jC={class:"anon-sub"},GC={key:0},WC=["href"],KC={key:1},YC={class:"cell-views num",role:"cell"},JC=["title","textContent","href"],QC={class:"cell-status",role:"cell"},XC=["textContent"],ZC={class:"cell-status",role:"cell"},xC={key:0,class:"role-pill"},eE={key:1,class:"empty-dash"},tE={class:"cell-actions",role:"cell"},nE={class:"dropdown"},oE={class:"dropdown-menu dropdown-menu-right"},sE=["href"],iE=["href"],rE=["onClick"],aE=["onClick"],lE={key:0,class:"paper-table-empty"},dE={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},uE={style:{"font-size":"12px",color:"var(--ink-muted)"}},cE={key:0,class:"pagination-compact"},pE=["disabled"],fE=["max"],mE=["disabled"],hE={class:"admin-filter-inline"},vE={class:"form-control form-control-sm"};function Ul(e,t){let o=we("field"),i=we("form");return l(),d("div",oC,[t[48]||(t[48]=me('
Admin \xA0/\xA0 Users

Users

',3)),n("div",sC,[n("span",iC,[h(u(e.total>=0?e.fmt.number(e.total):"\u2026")+" ",1),n("small",null,u(e.total===1?"user":"users"),1)]),n("button",{type:"button",class:O(["summary-pill",{active:!e.query?.status}]),onClick:t[0]||(t[0]=s=>{e.query.status="",e.query.page=1}),"aria-pressed":!e.query?.status},[t[14]||(t[14]=h("All ",-1)),n("span",aC,u(e.fmt?.number(e.total)),1)],10,rC),n("button",{type:"button",class:O(["summary-pill ok",{active:e.query?.status=="active"}]),onClick:t[1]||(t[1]=s=>{e.query.status=e.query.status=="active"?"":"active",e.query.page=1}),"aria-pressed":e.query?.status=="active"},[t[15]||(t[15]=h("Active ",-1)),n("span",dC,u(e.fmt?.number(e.statusCountFor("active"))),1)],10,lC),n("button",{type:"button",class:O(["summary-pill error",{active:e.query?.status=="banned"}]),onClick:t[2]||(t[2]=s=>{e.query.status=e.query.status=="banned"?"":"banned",e.query.page=1}),"aria-pressed":e.query?.status=="banned"},[t[16]||(t[16]=h("Banned ",-1)),n("span",cC,u(e.fmt?.number(e.statusCountFor("banned"))),1)],10,uC),n("button",{type:"button",class:O(["summary-pill",{active:e.query?.status=="removed"}]),onClick:t[3]||(t[3]=s=>{e.query.status=e.query.status=="removed"?"":"removed",e.query.page=1}),"aria-pressed":e.query?.status=="removed"},[t[17]||(t[17]=h("Removed ",-1)),n("span",fC,u(e.fmt?.number(e.statusCountFor("removed"))),1)],10,pC)]),e.fetchError?(l(),d("div",mC,[t[18]||(t[18]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),h(" "+u(e.fetchError),1)])):c("v-if",!0),T((l(),d("form",hC,[n("div",vC,[n("div",gC,[T(n("input",yC,null,512),[[o,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.query?.search?c("v-if",!0):(l(),d("span",bC,"/"))]),n("span",wC,[t[20]||(t[20]=n("label",null,"Role",-1)),T((l(),d("select",kC,[...t[19]||(t[19]=[n("option",{value:""},"Any",-1),n("option",{value:"admin"},"Admin",-1)])])),[[o,{state:e.viewState,set:s=>{e.query.role=s},value:e.query?.role,form:null,options:{}}]])]),t[24]||(t[24]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",onClick:t[4]||(t[4]=s=>e.exportCsv())},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),h(" Export",-1)])]),e.totalPage>1?(l(),d("span",CC,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[5]||(t[5]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,EC),n("span",SC,u(e.query?.page)+"/"+u(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[6]||(t[6]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[23]||(t[23]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,NC)])):c("v-if",!0)]),e.chips?.length?(l(),d("div",RC,[n("div",DC,[(l(!0),d(W,null,oe(e.chips,(s,r)=>(l(),d("span",{class:"admin-active-chip",key:s?.key},[n("span",TC,u(s?.label),1),n("span",null,u(s?.value),1),n("button",{type:"button",onClick:a=>e.clearFilter(s.key),"aria-label":"Clear filter"},[...t[25]||(t[25]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,_C)]))),128))])])):c("v-if",!0)])),[[i,e.viewState]]),e.selectedCount()>0?(l(),d("div",AC,[n("span",null,[n("strong",null,u(e.selectedCount()),1),t[26]||(t[26]=h(" selected",-1))]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[7]||(t[7]=s=>e.bulkBan())},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),h(" Ban",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[8]||(t[8]=s=>{e.selected={},e.allSelected=!1})},"Clear")])):c("v-if",!0),n("div",OC,[n("div",PC,[n("div",IC,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[9]||(t[9]=s=>e.selectAllOnPage()),checked:e.allSelected},null,8,MC)]),n("div",VC,[n("button",{type:"button",class:O(["sortable",{active:e.query?.sort=="username"}]),onClick:t[10]||(t[10]=s=>e.sortBy("username"))},[t[29]||(t[29]=h("User ",-1)),e.sortIcon("username")?(l(),d("svg",{key:0,class:O(["ui-icon sort-direction",{ascending:e.sortIcon("username")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[28]||(t[28]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):c("v-if",!0)],2)]),t[32]||(t[32]=n("div",{role:"columnheader",class:"num",title:"Repositories discovered on the user's GitHub account"},"GitHub repos",-1)),n("div",qC,[n("button",{type:"button",class:O(["sortable",{active:e.query?.sort=="status"}]),onClick:t[11]||(t[11]=s=>e.sortBy("status"))},[t[31]||(t[31]=h("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:O(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[30]||(t[30]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):c("v-if",!0)],2)]),t[33]||(t[33]=n("div",{role:"columnheader"},"Role",-1)),t[34]||(t[34]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(W,null,oe(e.filteredUsers,(s,r)=>(l(),d("div",{class:O(["paper-table-row admin-users-row",{"row-selected":e.selected[s?.username]}]),role:"row"},[n("div",LC,[T(n("input",$C,null,512),[[o,{state:e.viewState,set:a=>{e.selected[s.username]=a},value:e.selected[s?.username],form:null,options:{}}]])]),n("div",UC,[s?.photo?(l(),d("img",{key:0,width:"28",height:"28",class:"rounded-circle",style:{"flex-shrink":"0"},src:e.safeUrl(s?.photo)},null,8,FC)):(l(),d("span",BC,u((s?.username||"?").charAt(0).toUpperCase()),1)),n("div",zC,[n("a",{class:"repo-name",textContent:u(s?.username),href:e.safeUrl("/admin/users/"+s?.username)},null,8,HC),n("div",jC,[s?.emails?.[0]?.email?(l(),d("span",GC,u(s?.emails?.[0]?.email)+" \xB7 ",1)):c("v-if",!0),n("a",{target:"_blank",href:e.safeUrl("https://github.com/"+s?.username)},[t[35]||(t[35]=n("i",{class:"fab fa-github"},null,-1)),h(" "+u(s?.username),1)],8,WC),s?.dateOfEntry?(l(),d("span",KC,"\xA0\xB7\xA0Joined "+u(e.fmt?.humanTime(s?.dateOfEntry)),1)):c("v-if",!0)])])]),n("div",YC,[t[36]||(t[36]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),n("a",{title:s?.repoCount?"Show this user\u2019s repositories":"Repositories not synced yet",textContent:u(s?.repoCount?e.fmt?.number(s.repoCount):"Not synced"),class:O({"is-unsynced":!s?.repoCount}),href:e.safeUrl("/admin/repositories?owner="+s?.username)},null,10,JC)]),n("div",QC,[n("span",{class:O(["status-dot",{"status-ready":s?.status=="active","status-removed":s?.status=="removed"||s?.status=="banned"}])},null,2),n("span",{textContent:u(e.fmt?.title(s?.status))},null,8,XC)]),n("div",ZC,[s?.isAdmin?(l(),d("span",xC,"Admin")):c("v-if",!0),s?.isAdmin?c("v-if",!0):(l(),d("span",eE,"\u2014"))]),n("div",tE,[n("div",nE,[t[42]||(t[42]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",oE,[n("a",{class:"dropdown-item",href:e.safeUrl("/admin/users/"+s?.username)},[...t[37]||(t[37]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),h(" View details",-1)])],8,sE),n("a",{class:"dropdown-item",href:e.safeUrl("/admin/repositories?owner="+s?.username)},[...t[38]||(t[38]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),h(" View repositories",-1)])],8,iE),t[41]||(t[41]=n("div",{class:"dropdown-divider"},null,-1)),T(n("a",{class:"dropdown-item text-danger",href:"#",onClick:ae(a=>e.banUser(s),["prevent"])},[...t[39]||(t[39]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),h(" Ban",-1)])],8,rE),[[Y,s?.status=="active"]]),T(n("a",{class:"dropdown-item",href:"#",onClick:ae(a=>e.activateUser(s),["prevent"])},[...t[40]||(t[40]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),h(" Activate",-1)])],8,aE),[[Y,s?.status=="removed"||s?.status=="banned"]])])])])],2))),256)),e.filteredUsers?.length==0?(l(),d("div",lE,[...t[43]||(t[43]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No users match the current filters.",-1)])])):c("v-if",!0)]),n("div",dE,[n("span",uE,u(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",cE,[n("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[44]||(t[44]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),h(" Previous",-1)])],8,pE),T(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,fE),[[o,{state:e.viewState,set:s=>{e.query.page=s},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+u(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[13]||(t[13]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[45]||(t[45]=[h("Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,mE)])):c("v-if",!0),n("span",hE,[t[47]||(t[47]=n("label",null,"Per page",-1)),T((l(),d("select",vE,[...t[46]||(t[46]=[n("option",{value:"10"},"10",-1),n("option",{value:"25"},"25",-1),n("option",{value:"50"},"50",-1),n("option",{value:"100"},"100",-1)])])),[[o,{state:e.viewState,set:s=>{e.query.limit=s},value:e.query?.limit,form:null,options:{}}]])])])])}var gE={class:"anonymize-landing"},yE={class:"anonymize-landing-inner"},bE={class:"form-group mt-4 mb-2"},wE={class:"source-url-label-row"},kE={key:0,class:"repo-access","aria-label":"GitHub access"},CE={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},EE=["aria-pressed","disabled"],SE=["aria-pressed","disabled"],NE={key:1,class:"connection-badge"},RE={class:"landing-url-row"},DE={id:"sourceUrl-landing",onblur:"this.scrollLeft=0",type:"text",class:"form-control form-control-lg",placeholder:"https://github.com/owner/repository"},TE=["aria-disabled"],_E={key:0,class:"text-danger",role:"alert"},AE={key:1,class:"repo-access-details","aria-label":"GitHub access"},OE={class:"repo-access-main"},PE={class:"repo-access-controls"},IE={key:0,class:"access-q"},ME={key:2,class:"connection-link",href:"/connections"},VE={class:"repo-access-note"},qE={key:0},LE={class:"anonymize-workspace"},$E={class:"anonymize-topbar"},UE={class:"anonymize-topbar-inner"},FE={class:"anonymize-topbar-head"},BE={class:"paper-page-title anonymize-topbar-title"},zE={key:0},HE={key:1},jE={key:0,class:"alert alert-info",role:"status"},GE={key:1,class:"alert alert-info",role:"status"},WE={key:1},KE={class:"anonymize-mobile-tabs",role:"tablist","aria-label":"Anonymization workspace"},YE=["aria-selected","tabindex"],JE=["aria-selected","tabindex"],QE={key:2,class:"anonymize-preview-empty",id:"workspace-preview",role:"status"},XE={class:"anonymize-split"},ZE=["role","aria-labelledby"],xE={class:"form needs-validation paper-settings-main",name:"anonymize",novalidate:""},eS={class:"anonymize-fields"},tS={class:"paper-settings-section"},nS={class:"form-group"},oS={class:"source-url-label-row"},sS={key:0,class:"repo-access","aria-label":"GitHub access"},iS={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},rS=["aria-pressed","disabled"],aS=["aria-pressed","disabled"],lS={key:1,class:"connection-badge"},dS=["disabled"],uS={class:"invalid-feedback"},cS={class:"invalid-feedback"},pS={class:"invalid-feedback"},fS={class:"invalid-feedback"},mS={key:0,class:"repo-access-details","aria-label":"Previous repository configuration"},hS={key:0,class:"form-group"},vS=["value"],gS={key:1},yS={class:"repo-access-controls"},bS=["href"],wS={key:1,class:"repo-access-details","aria-label":"GitHub access"},kS={class:"repo-access-main"},CS={class:"repo-access-controls"},ES={key:0,class:"access-q"},SS={key:2,class:"connection-link",href:"/connections"},NS={class:"repo-access-note"},RS={key:0},DS={key:1},TS={key:2,class:"repo-access-details"},_S=["disabled"],AS={key:0,role:"status"},OS={key:3,class:"repo-access-details"},PS={key:0,role:"status"},IS={key:4,class:"form-grid-2"},MS={class:"form-group"},VS={class:"input-group"},qS={class:"form-control",id:"branch",name:"branch"},LS=["textContent","value"],$S={class:"input-group-append"},US={class:"form-group"},FS=["disabled"],BS={class:"invalid-feedback"},zS={class:"invalid-feedback"},HS={class:"form-check"},jS={class:"form-check-input",type:"checkbox",id:"update",name:"update"},GS={class:"paper-settings-section"},WS={class:"form-group"},KS=["disabled"],YS={class:"form-text text-muted"},JS={class:"invalid-feedback"},QS={class:"form-group"},XS=["disabled"],ZS={class:"form-text text-muted"},xS={class:"invalid-feedback"},eN={class:"form-group"},tN=["disabled"],nN={class:"form-text text-muted"},oN={class:"invalid-feedback"},sN={class:"form-group"},iN={class:"redaction-syntax"},rN={class:"form-text text-muted"},aN={class:"warning-feedback"},lN={class:"invalid-feedback"},dN={class:"paper-settings-section"},uN={class:"form-check"},cN={class:"form-check-input",type:"checkbox",id:"link",name:"link"},pN={class:"form-check"},fN={class:"form-check-input",type:"checkbox",id:"image",name:"image"},mN={class:"form-check"},hN={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},vN={class:"form-check"},gN={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},yN={class:"form-check"},bN=["disabled"],wN={key:0,class:"form-text text-muted"},kN={key:1,class:"form-text text-muted"},CN={key:0,class:"form-text text-muted"},EN={class:"form-check"},SN={class:"form-check-input",type:"checkbox",id:"title-gist",name:"title-gist"},NN={class:"form-check"},RN={class:"form-check-input",type:"checkbox",id:"content-gist",name:"content-gist"},DN={class:"form-check"},TN={class:"form-check-input",type:"checkbox",id:"comments-gist",name:"comments-gist"},_N={class:"form-check"},AN={class:"form-check-input",type:"checkbox",id:"username-gist",name:"username-gist"},ON={class:"form-check"},PN={class:"form-check-input",type:"checkbox",id:"date-gist",name:"date-gist"},IN={class:"form-check"},MN={class:"form-check-input",type:"checkbox",id:"origin-gist",name:"origin-gist"},VN={class:"form-check"},qN={class:"form-check-input",type:"checkbox",id:"title",name:"title"},LN={class:"form-check"},$N={class:"form-check-input",type:"checkbox",id:"body",name:"body"},UN={class:"form-check"},FN={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},BN={class:"form-check"},zN={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},HN={class:"form-check"},jN={class:"form-check-input",type:"checkbox",id:"username",name:"username"},GN={class:"form-check"},WN={class:"form-check-input",type:"checkbox",id:"date",name:"date"},KN={class:"form-check"},YN={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},JN={class:"paper-settings-section hosting-settings",id:"repository-hosting","aria-labelledby":"hosting-heading"},QN={key:0,class:"hosting-usage"},XN={key:0},ZN={key:1},xN={key:2},eR={key:3},tR={class:"expiration-choices"},nR={class:"expiration-choice"},oR=["checked","disabled"],sR={key:0,class:"dated-options"},iR={key:0,class:"hosting-date"},rR=["min","max"],aR={class:"invalid-feedback"},lR={class:"invalid-feedback"},dR={class:"hosting-property"},uR={key:1,class:"expiration-choice"},cR=["checked","disabled"],pR={key:0},fR={key:1,class:"form-text text-muted"},mR={class:"form-group conference-field"},hR={class:"form-text text-muted"},vR=["href"],gR={class:"invalid-feedback"},yR={class:"form-text text-muted"},bR={key:2,class:"inline-hosting"},wR={key:0,role:"alert",class:"text-danger"},kR={key:1,role:"alert",class:"text-danger"},CR=["disabled"],ER={key:2,role:"status"},SR={key:3,role:"status",class:"form-text text-muted"},NR={key:0,class:"capacity-reason"},RR={key:1,class:"subscription-choice"},DR={class:"billing-cycle"},TR=["value","checked","onChange"],_R={class:"hosting-terms"},AR={key:2,role:"status"},OR={key:3,class:"capacity-options"},PR=["disabled"],IR={key:5,class:"hosting-terms"},MR={key:6,class:"repository-pass"},VR=["disabled"],qR={class:"paper-settings-section"},LR={class:"form-group"},$R={style:{position:"relative"}},UR={type:"text",id:"coauthorSearch",class:"form-control",placeholder:"Search GitHub username\u2026",autocomplete:"off"},FR={class:"dropdown-menu show",style:{display:"block","max-height":"220px","overflow-y":"auto",width:"100%"}},BR=["onClick"],zR=["src"],HR=["textContent"],jR=["textContent"],GR={class:"coauthor-list"},WR={class:"coauthor-row d-flex align-items-center",style:{padding:"6px 0",gap:"8px"}},KR=["src"],YR=["textContent","href"],JR=["onClick"],QR={class:"form-text text-muted"},XR=["textContent"],ZR={class:"anonymize-submit-bar"},xR=["disabled"],eD=["disabled"],tD={key:2,class:"checkout-return-note"},nD=["disabled"],oD=["disabled"],sD=["disabled"],iD=["disabled"],rD={key:5,class:"draft-status",role:"status"},aD={key:6,class:"draft-status"},lD=["role","aria-labelledby"],dD={class:"anonymize-preview-head"},uD={class:"anonymize-preview-sub"},cD={key:0,class:"anonymize-preview-status",role:"status"},pD={key:1,class:"anonymize-preview-status",role:"status"},fD={key:2,class:"anonymize-preview-status",role:"alert"},mD={key:3,class:"anonymize-preview-status"},hD=["innerHTML"],vD=["role","aria-labelledby"],gD={class:"anonymize-preview-head"},yD={key:0,class:"anonymize-preview-status",role:"status"},bD={key:1,class:"anonymize-preview-status",role:"status"},wD={key:2,class:"anonymize-preview-status",role:"alert"},kD={key:3,class:"anonymize-preview-body"},CD={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},ED={class:"pr-title mb-1"},SD={key:0},ND=["textContent"],RD={key:0},DD={key:1},TD={key:2},_D={class:"pr-comments mt-3"},AD={class:"pr-comment"},OD={class:"pr-comment-head"},PD=["textContent"],ID={key:0,class:"pr-comment-date"},MD={key:3},VD={class:"pr-comments"},qD={class:"pr-comment"},LD={class:"pr-comment-head"},$D={key:0,class:"pr-comment-author"},UD=["textContent"],FD=["textContent"],BD={key:0,class:"pr-comment-body"},zD=["role","aria-labelledby"],HD={class:"anonymize-preview-head"},jD={key:0,class:"anonymize-preview-status",role:"status"},GD={key:1,class:"anonymize-preview-status",role:"status"},WD={key:2,class:"anonymize-preview-status",role:"alert"},KD={key:3,class:"anonymize-preview-body"},YD={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},JD={class:"pr-title mb-1"},QD={key:0},XD=["textContent"],ZD={key:0},xD={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--paper-bg-alt)"}},eT={key:2,class:"paper-tabs",role:"tablist"},tT=["aria-selected","tabindex"],nT=["aria-selected","tabindex"],oT=["textContent"],sT={key:3,class:"anonymize-preview-status"},iT={class:"paper-tab-content"},rT={key:0,role:"tabpanel",id:"preview-pr-diff-panel","aria-labelledby":"preview-pr-diff-tab"},aT=["innerHTML"],lT={key:1,role:"tabpanel",id:"preview-pr-comments-panel","aria-labelledby":"preview-pr-comments-tab"},dT={class:"pr-comments"},uT={class:"pr-comment"},cT={class:"pr-comment-head"},pT={key:0,class:"pr-comment-author"},fT=["textContent"],mT=["textContent"],hT={key:0,class:"pr-comment-body"};function Fl(e,t){let o=We("gist-file"),i=We("markdown"),s=we("field"),r=we("form");return l(),d("div",{class:O(["anonymize-page h-100",{"mobile-preview-active":e.mobilePane==="preview","preview-expanded":e.previewExpanded}])},[c(" ===== STATE 1: No URL \u2014 centered input ===== "),T(n("div",gE,[n("div",yE,[t[48]||(t[48]=n("div",{class:"paper-crumbs"},[h("My work \xA0/\xA0 "),n("span",{class:"here"},"New anonymization")],-1)),t[49]||(t[49]=n("h1",{class:"paper-page-title"},[h("New "),n("em",null,"anonymization")],-1)),t[50]||(t[50]=n("p",{class:"paper-page-lede"}," Paste a repository, pull request, or gist URL. You\u2019ll choose the terms to redact next. ",-1)),n("div",bE,[n("div",wE,[t[45]||(t[45]=n("label",{class:"paper-field-label",for:"sourceUrl-landing"},"Source URL",-1)),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",kE,[!e.isUpdate&&e.detectedType!=="gist"?(l(),d("div",CE,[n("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[0]||(t[0]=a=>e.chooseGitHubConnection("github-app"))},[...t[44]||(t[44]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),h(),n("span",{class:"sr-only"},"Read-only ",-1),h("GitHub App",-1)])],8,EE),n("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[1]||(t[1]=a=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,SE)])):c("v-if",!0),e.isUpdate||e.detectedType==="gist"?(l(),d("span",NE,u((e.detectedType==="gist"?e.githubConnections?.gistConnection==="github-app":e.githubConnection==="github-app")?"Read-only GitHub App":"Legacy OAuth"),1)):c("v-if",!0)])):c("v-if",!0)]),n("div",RE,[T(n("input",DE,null,512),[[s,{state:e.viewState,set:a=>{e.sourceUrl=a},value:e.sourceUrl,form:null,options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]]),n("button",{type:"button",class:"btn btn-primary landing-continue","aria-disabled":e.sourceUrl?null:"true",onClick:t[2]||(t[2]=a=>e.sourceUrl&&e.urlSelected())},"Continue",8,TE)])]),e.sourceUrlError?(l(),d("p",_E,u(e.sourceUrlError),1)):c("v-if",!0),t[51]||(t[51]=n("small",{class:"form-text",style:{color:"var(--ink-muted)"}}," Repository, pull request (\u2026/pull/42) and gist (gist.github.com/\u2026) URLs are all accepted. ",-1)),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected?(l(),d("aside",AE,[n("div",OE,[n("div",PE,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("span",IE,"Repository not listed?")):c("v-if",!0),e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("button",{key:1,type:"button",class:"btn btn-outline-ink",onClick:t[3]||(t[3]=a=>e.grantGitHubAccess())},[...t[46]||(t[46]=[h("Manage access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):c("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(l(),d("a",ME,u(e.isUpdate?"Change connection":"Manage connections")+" \u2192",1)):c("v-if",!0)])]),n("div",VE,[e.error&&e.detectedType!=="gist"&&e.githubConnection==="github-app"?(l(),d("span",qE,"Signing in does not grant access to private repositories. Use Manage access to select this repository, then return here. Organization access may require administrator approval.")):c("v-if",!0),t[47]||(t[47]=n("span",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),h(" Anonymized content is public, even from private repositories.")],-1))])])):c("v-if",!0)])],512),[[Y,!e.workspaceOpen&&!e.isUpdate]]),c(" ===== STATE 2: URL provided \u2014 form (left) + preview (right) ===== "),T(n("div",LE,[n("header",$E,[n("div",UE,[n("div",FE,[n("h1",BE,[e.isUpdate?c("v-if",!0):(l(),d("span",zE,"New anonymization")),e.isUpdate?(l(),d("span",HE,"Edit anonymization")):c("v-if",!0)]),T(n("span",{class:O(["type-badge",{"type-repo":e.detectedType==="repo","type-pr":e.detectedType==="pr","type-gist":e.detectedType==="gist"}])},u(e.detectedType==="repo"?"Repository":e.detectedType==="pr"?"Pull request":"Gist"),3),[[Y,e.detectedType]])])])]),e.detectedType==="gist"&&e.gistAppRequired?(l(),d("aside",jE,[t[52]||(t[52]=n("p",null,"Reconnect your GitHub account to read this gist. Your draft will be restored when you return.",-1)),n("button",{type:"button",class:"btn btn-ink",onClick:t[4]||(t[4]=a=>e.connectGistApp())},"Connect GitHub App to access gists")])):c("v-if",!0),e.detectedType==="gist"&&e.gistOAuthRequired?(l(),d("aside",GE,[t[53]||(t[53]=n("p",null,"Connect GitHub OAuth to access gists. Your account and existing anonymizations stay the same, and your draft will be restored when you return.",-1)),t[54]||(t[54]=n("p",null,"GitHub's legacy OAuth connection includes write access to private repositories.",-1)),e.githubConnections?.oauthEnabled?(l(),d("button",{key:0,type:"button",class:"btn btn-ink",onClick:t[5]||(t[5]=a=>e.connectGistOAuth())},"Connect GitHub OAuth to access gists")):(l(),d("p",WE,"GitHub OAuth is currently unavailable. Please try again later."))])):c("v-if",!0),n("nav",KE,[n("button",{id:"workspace-settings-tab",role:"tab",type:"button","aria-selected":e.mobilePane==="settings","aria-controls":"workspace-settings",tabindex:e.mobilePane==="settings"?0:-1,onKeydown:t[6]||(t[6]=a=>e.previewTabKeydown(a)),onClick:t[7]||(t[7]=a=>e.selectMobilePane("settings"))},"Settings",40,YE),n("button",{id:"workspace-preview-tab",role:"tab",type:"button","aria-selected":e.mobilePane==="preview","aria-controls":"workspace-preview",tabindex:e.mobilePane==="preview"?0:-1,onKeydown:t[8]||(t[8]=a=>e.previewTabKeydown(a)),onClick:t[9]||(t[9]=a=>e.selectMobilePane("preview"))},"Reviewer preview",40,JE)]),e.detectedType!=="repo"&&!e.details?(l(),d("div",QE,u(e.sourceLoading?"Loading source\u2026":"Choose an accessible source to see its preview."),1)):c("v-if",!0),n("div",XE,[c(" Form column (left) "),n("div",{id:"workspace-settings",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-settings-tab":null,class:"anonymize-form-col overflow-auto"},[T((l(),d("form",xE,[n("div",eS,[n("section",tS,[t[69]||(t[69]=n("h2",{class:"paper-section-eyebrow"},"Source & access",-1)),n("div",nS,[n("div",oS,[t[56]||(t[56]=n("label",{class:"paper-field-label",for:"sourceUrl"},"Source URL",-1)),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",sS,[!e.isUpdate&&e.detectedType!=="gist"?(l(),d("div",iS,[n("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[10]||(t[10]=a=>e.chooseGitHubConnection("github-app"))},[...t[55]||(t[55]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),h(),n("span",{class:"sr-only"},"Read-only ",-1),h("GitHub App",-1)])],8,rS),n("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[11]||(t[11]=a=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,aS)])):c("v-if",!0),e.isUpdate||e.detectedType==="gist"?(l(),d("span",lS,u((e.detectedType==="gist"?e.githubConnections?.gistConnection==="github-app":e.githubConnection==="github-app")?"Read-only GitHub App":"Legacy OAuth"),1)):c("v-if",!0)])):c("v-if",!0)]),T(n("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.sourceUrl?.invalid}]),name:"sourceUrl",id:"sourceUrl",onblur:"this.scrollLeft=0",disabled:e.isUpdate&&e.detectedType!=="repo",placeholder:"Paste a GitHub repo or pull request URL"},null,10,dS),[[s,{state:e.viewState,set:a=>{e.sourceUrl=a},value:e.sourceUrl,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]]),T(n("div",uS," Please provide a valid GitHub URL. ",512),[[Y,e.anonymize?.sourceUrl?.errors?.github]]),T(n("div",cS," Not accessible. The organization may restrict access. ",512),[[Y,e.anonymize?.sourceUrl?.errors?.access]]),T(n("div",pS," Does not exist or is not accessible. ",512),[[Y,e.anonymize?.sourceUrl?.errors?.missing]]),T(n("div",fS," Already anonymized. ",512),[[Y,e.anonymize?.sourceUrl?.errors?.used]])]),!e.isUpdate&&e.previousConfigurations.length?(l(),d("aside",mS,[t[58]||(t[58]=n("p",{role:"status"},"You have already anonymized this repository. Use the existing configuration to keep its anonymous link and avoid creating another repository.",-1)),e.previousConfigurations.length>1?(l(),d("div",hS,[t[57]||(t[57]=n("label",{class:"paper-field-label",for:"previousConfiguration"},"Previous anonymization",-1)),T(n("select",{id:"previousConfiguration",class:"form-control","onUpdate:modelValue":t[12]||(t[12]=a=>e.previousConfigurationId=a)},[(l(!0),d(W,null,oe(e.previousConfigurations,a=>(l(),d("option",{key:a.repoId,value:a.repoId},u(a.repoId),9,vS))),128))],512),[[fn,e.previousConfigurationId]])])):(l(),d("p",gS,u(e.previousConfigurationId),1)),t[59]||(t[59]=n("p",null,"You can review and update its settings before saving.",-1)),n("div",yS,[n("a",{class:"btn btn-ink",href:e.existingConfigurationUrl()},"Use existing configuration",8,bS),n("button",{type:"button",class:"btn btn-link",onClick:t[13]||(t[13]=a=>e.previousConfigurations=[])},"Create a separate anonymization")])])):c("v-if",!0),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected?(l(),d("aside",wS,[n("div",kS,[n("div",CS,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"&&!e.details?(l(),d("span",ES,"Repository not listed?")):c("v-if",!0),e.detectedType!=="gist"&&e.githubConnection!=="oauth"&&!e.details?(l(),d("button",{key:1,type:"button",class:"btn btn-outline-ink",onClick:t[14]||(t[14]=a=>e.grantGitHubAccess())},[...t[60]||(t[60]=[h("Manage access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):c("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(l(),d("a",SS,u(e.isUpdate?"Change connection":"Manage connections")+" \u2192",1)):c("v-if",!0)])]),n("div",NS,[e.error&&e.detectedType!=="gist"&&e.githubConnection==="github-app"?(l(),d("span",RS,"Signing in does not grant access to private repositories. Use Manage access to select this repository, then return here. Organization access may require administrator approval.")):c("v-if",!0),e.detectedType!=="gist"&&e.githubConnection!=="oauth"&&!e.details?(l(),d("span",DS,"Select repositories on GitHub, then return here.")):c("v-if",!0),t[61]||(t[61]=n("span",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),h(" Selected content will be published, including content from private repositories.")],-1))])])):c("v-if",!0),e.isUpdate&&e.detectedType==="repo"&&e.role==="owner"&&e.accessRepairAllowed&&e.githubConnections?.appEnabled&&e.githubConnection==="github-app"&&e.sourceUrl==="https://github.com/"+e._originalFullName?(l(),d("aside",TS,[t[62]||(t[62]=n("p",null,"If this repository became private or its App installation changed, repair its access here. This keeps the same anonymous URL and published commit.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.repairingGitHubAccess,onClick:t[15]||(t[15]=a=>e.repairGitHubAccess())},"Repair GitHub access",8,_S),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[16]||(t[16]=a=>e.grantGitHubAccess())},"Manage access"),e.accessRepairMessage?(l(),d("p",AS,u(e.accessRepairMessage),1)):c("v-if",!0)])):c("v-if",!0),e.isUpdate&&e.detectedType==="repo"&&e.role==="owner"&&e.sourceUrl==="https://github.com/"+e._originalFullName?(l(),d("aside",OS,[t[63]||(t[63]=n("p",null,"If you deleted and recreated this repository, reconnect it before choosing a branch.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[17]||(t[17]=a=>e.reconnectSource())},"Reconnect source repository"),e.reconnectRepositoryId?(l(),d("p",PS,"Source reloaded. Review the branch, commit, and anonymization preview, then save to replace the published snapshot.")):c("v-if",!0)])):c("v-if",!0),e.detectedType==="repo"?(l(),d("div",IS,[n("div",MS,[t[65]||(t[65]=n("label",{class:"paper-field-label",for:"branch"},"Branch",-1)),n("div",VS,[T((l(),d("select",qS,[(l(!0),d(W,null,oe(e.branches,(a,p)=>(l(),d("option",{textContent:u(a?.name),value:a?.name},null,8,LS))),256))])),[[s,{state:e.viewState,set:a=>{e.source.branch=a},value:e.source?.branch,form:"anonymize",options:{}}]]),n("div",$S,[n("button",{class:"btn btn-icon refresh-branches",type:"button",title:"Refresh branches",onClick:t[18]||(t[18]=a=>e.getBranches(!0)),"aria-label":"Refresh branches"},[...t[64]||(t[64]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])])])]),n("div",US,[t[66]||(t[66]=n("label",{class:"paper-field-label",for:"commit"},"Commit",-1)),T(n("input",{class:O(["form-control",{"is-invalid":e.anonymize?.commit?.invalid}]),id:"commit",disabled:e.options.update,name:"commit",pattern:"[a-fA-Z0-9]{6,}",required:""},null,10,FS),[[s,{state:e.viewState,set:a=>{e.source.commit=a},value:e.source?.commit,form:"anonymize",options:{}}]]),T(n("div",BS," The commit SHA is not valid. ",512),[[Y,e.anonymize?.commit?.errors?.pattern||e.anonymize?.commit?.errors?.required]]),T(n("div",zS," This commit no longer exists in the repository. Click refresh to get the latest. ",512),[[Y,e.anonymize?.commit?.errors?.exists]])])])):c("v-if",!0),T(n("div",HS,[T(n("input",jS,null,512),[[s,{state:e.viewState,set:a=>{e.options.update=a},value:e.options?.update,form:"anonymize",options:{}}]]),t[67]||(t[67]=n("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[68]||(t[68]=n("small",{class:"form-text text-muted"},"Follows the latest version, at most once an hour.",-1))],512),[[Y,e.detectedType]])]),T(n("section",GS,[t[87]||(t[87]=n("h2",{class:"paper-section-eyebrow"},"Anonymization",-1)),T(n("div",WS,[t[70]||(t[70]=n("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),T(n("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.repoId?.invalid}]),name:"repoId",id:"repoId",disabled:e.isUpdate},null,10,KS),[[s,{state:e.viewState,set:a=>{e.repoId=a},value:e.repoId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",YS,"anonymous.4open.science/r/"+u(e.repoId),1),T(n("div",JS,"ID can only contain letters and numbers.",512),[[Y,e.anonymize?.repoId?.errors?.format]]),T(n("div",{class:"invalid-feedback"},u(e.repoId)+" is already used.",513),[[Y,e.anonymize?.repoId?.errors?.used]])],512),[[Y,e.detectedType==="repo"]]),T(n("div",QS,[t[73]||(t[73]=n("label",{class:"paper-field-label",for:"pullRequestId"},"Anonymized pull request ID",-1)),T(n("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId",disabled:e.isUpdate},null,10,XS),[[s,{state:e.viewState,set:a=>{e.pullRequestId=a},value:e.pullRequestId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",ZS,[t[71]||(t[71]=h("Your share link will be ",-1)),n("code",null,"anonymous.4open.science/pr/"+u(e.pullRequestId),1),t[72]||(t[72]=h(".",-1))]),T(n("div",xS,"ID can only contain letters and numbers.",512),[[Y,e.anonymize?.pullRequestId?.errors?.format]]),T(n("div",{class:"invalid-feedback"},u(e.pullRequestId)+" is already used.",513),[[Y,e.anonymize?.pullRequestId?.errors?.used]])],512),[[Y,e.detectedType==="pr"]]),T(n("div",eN,[t[76]||(t[76]=n("label",{class:"paper-field-label",for:"gistId"},"Anonymized gist ID",-1)),T(n("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.gistId?.invalid}]),name:"gistId",id:"gistId",disabled:e.isUpdate},null,10,tN),[[s,{state:e.viewState,set:a=>{e.gistId=a},value:e.gistId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",nN,[t[74]||(t[74]=h("Your share link will be ",-1)),n("code",null,"anonymous.4open.science/gist/"+u(e.gistId),1),t[75]||(t[75]=h(".",-1))]),T(n("div",oN,"ID can only contain letters and numbers.",512),[[Y,e.anonymize?.gistId?.errors?.format]]),T(n("div",{class:"invalid-feedback"},u(e.gistId)+" is already used.",513),[[Y,e.anonymize?.gistId?.errors?.used]])],512),[[Y,e.detectedType==="gist"]]),n("div",sN,[t[85]||(t[85]=n("label",{class:"paper-field-label",for:"terms"},"Terms to redact",-1)),T(n("textarea",{class:O(["form-control",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:"4",placeholder:`Jane Smith +Contact: jane.smith@mit.edu`,e.demoTerms="Jane Smith, Smith, MIT CSAIL, jane.smith@mit.edu",e.demoParts=function(){let u=(e.demoTerms||"").split(/[,\n]/).map(h=>h.trim()).filter(Boolean).sort((h,k)=>k.length-h.length),c=h=>h.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(!u.length)return[{text:e.demoText}];let m=new RegExp("("+u.map(c).join("|")+")","gi"),g={},v=0;return(e.demoText||"").split(m).filter(h=>h!=="").map(h=>{let k=u.find(A=>A.toLowerCase()===h.toLowerCase());return k?(g[k.toLowerCase()]||(g[k.toLowerCase()]=++v),{text:String(g[k.toLowerCase()]),redacted:!0,original:h}):{text:h}})},e.demoCount=()=>e.demoParts().filter(u=>u.redacted).length,e.cards=[{key:"repositories",total:0,label:"repositories anonymized"},{key:"users",total:0,label:"researchers"},{key:"pageViews",total:0,label:"page views"},{key:"pullRequests",total:0,label:"pull requests"}];function r(){t.get("/api/stat/").then(u=>{e.stat=u.data,e.cards[0].total=u.data.nbRepositories,e.cards[1].total=u.data.nbUsers,e.cards[2].total=u.data.nbPageViews,e.cards[3].total=u.data.nbPullRequests}).catch(()=>{})}r();function a(u){let c={series:u,bars:[],viewW:100,deltaToday:0,pctChange:0,pctAbs:0,isUp:!0};if(!u||u.length<2)return c;let m=new Array(u.length-1);for(let w=1;w=2){let w=m[g-2];w&&(c.pctChange=(c.deltaToday-w)/w*100)}return c.pctAbs=Math.round(Math.abs(c.pctChange)),c.isUp=c.pctChange>=0,c}e.history={repositories:a([]),users:a([]),pageViews:a([]),pullRequests:a([])},t.get("/api/stat/history?days=60").then(u=>{let c=u.data||[];e.history={repositories:a(c.map(m=>m.nbRepositories||0)),users:a(c.map(m=>m.nbUsers||0)),pageViews:a(c.map(m=>m.nbPageViews||0)),pullRequests:a(c.map(m=>m.nbPullRequests||0))}}).catch(()=>{})},Wu=function(e,t,s,i,o,r){let a=At();e.on("routeLeave",function(){$('[data-toggle="tooltip"]').tooltip("dispose")}),e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),a.timeout(()=>{$('[data-toggle="tooltip"]').tooltip()},250),e.quotaExpanded=!1,e.closeQuota=()=>{e.quotaExpanded=!1,it(()=>document.querySelector(".dashboard-quota > summary")?.focus())},vn()(document,"click",D=>{e.quotaExpanded&&!D.target.closest?.(".dashboard-quota")&&(e.quotaExpanded=!1)}),e.filtersExpanded=!1,e.projectView="all",e.selectedProject=null,e.projectName="",e.nameSaving=!1,e.nameError="",e.nameMessage="",e.needsAttention=D=>D.status==="error"||D._broken||c(D.status)==="progress"&&D._stale,e.attentionCount=()=>e.dashboardTotals?.attention??e.items.filter(e.needsAttention).length,e.hasProjects=()=>(e.dashboardTotals?.total??e.items.length)>0,e.setProjectView=D=>{e.projectView=D,D==="attention"&&(e.filters.status.error=!0,e.filters.status.progress=!0)},e.projectDetailsId=D=>"project-details-"+encodeURIComponent(D._type+":"+(D._id||D._source||"unknown")),e.showProjectDetails=async D=>{e.selectedProject=D,e.projectName=D.projectName||"",e.nameError="",e.nameMessage="",await it();let X=document.getElementById(e.projectDetailsId(D));X?.focus(),X?.scrollIntoView?.({block:"nearest"})},e.closeProjectDetails=D=>{e.selectedProject=null,it(()=>document.querySelector(`[data-project-actions="${encodeURIComponent(D._type+":"+D._id)}"]`)?.focus())},e.saveProjectName=async D=>{if(e.nameSaving||!D._id)return;let X=e.projectName.trim();if(X.length>100){e.nameError="Use 100 characters or fewer.";return}e.nameSaving=!0,e.nameError="",e.nameMessage="";try{let le=await t.post("/api/user/project-name",{type:D._type,id:D._id,name:X});D.projectName=le.data.name,D._label=D.projectName||D._fallbackLabel,e.selectedProject===D&&(e.nameMessage=X?"Project name saved.":"Default project name restored."),N||(e.dashboardCursor=null,await q(),e.selectedProject===D&&(e.selectedProject=e.items.find(Ee=>Ee._type===D._type&&Ee._id===D._id)||null))}catch{e.selectedProject===D&&(e.nameError="The project name could not be saved. Try again.")}finally{e.nameSaving=!1}},e.copyingId=null,e.copyLink=async D=>{if(!D._viewUrl||e.copyingId)return;let X=new URL(D._viewUrl,o.location.origin).href;e.copyingId=D._type+":"+D._id;try{await Fu(X),e.addToast({title:"Link copied",body:"The anonymous link is ready to share."})}catch{e.addToast({title:"Copy this anonymous link",body:X})}finally{e.copyingId=null}},e.items=[],e.search="",e.loading=!0,e.statusKeyLabels={ready:"Ready",progress:"In progress",error:"Error",expired:"Expired",removed:"Removed"};let u=["queue","download","downloaded","preparing","anonymizing"];function c(D){return D==="ready"||D==="error"?D:D==="expired"||D==="expiring"?"expired":D==="removed"||D==="removing"?"removed":(u.indexOf(D)>-1,"progress")}let m=7200*1e3,g="dashboard.filterPrefs",v={typeFilter:"all",filters:{status:{ready:!0,progress:!0,error:!0,expired:!0,removed:!1}},orderBy:"-anonymizeDate"},h=loadFilterPrefs(g)||{};e.typeFilter=h.typeFilter||v.typeFilter,e.filters={status:Object.assign({},v.filters.status,h.filters&&h.filters.status||{})},e.orderBy=h.orderBy||v.orderBy;let k={_name:{label:"Anonymous ID",defaultDesc:!1},_label:{label:"Project",defaultDesc:!1},anonymizeDate:{label:"Anonymize date",defaultDesc:!0},status:{label:"Status",defaultDesc:!1},lastView:{label:"Last view",defaultDesc:!0},pageView:{label:"Views",defaultDesc:!0},"options.expirationDate":{label:"Expiration",defaultDesc:!1}};e.sortFields=k,e.sortField=()=>e.orderBy.replace(/^-/,""),e.sortDesc=()=>e.orderBy.charAt(0)==="-",e.sortLabel=()=>{let D=k[e.sortField()];return D?D.label:"Custom"},e.isSortedBy=D=>e.sortField()===D,e.setSort=(D,X)=>{typeof X!="boolean"&&(X=e.isSortedBy(D)?!e.sortDesc():!!(k[D]&&k[D].defaultDesc)),e.orderBy=(X?"-":"")+D},e.toggleSortDirection=()=>{e.setSort(e.sortField(),!e.sortDesc())},e.watchGroup(["typeFilter","orderBy"],()=>{saveFilterPrefs(g,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(g,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})},!0),r.load().then(D=>{e.quota=D},console.error);function A(D,X,le,Ee,re,me){D.pageView||(D.pageView=0),D.lastView||(D.lastView=""),D.options=D.options||{},D.options.terms=(D.options.terms||[]).filter(_e=>_e),D._id=X||"",D._source=Ee,D._broken=!X,D._name=X||Ee||"(unnamed)",D._fallbackLabel=D._type==="gist"?"Gist "+(X||Ee||"without an ID"):Ee||le||D._name,D._label=D.projectName||D._fallbackLabel,D._editUrl=X?re:null,D._viewUrl=X?me:null,D._broken&&(D.status="error",D.statusMessage="incomplete_record"),D._statusKey=c(D.status);let ke=D.anonymizeDate||D.lastView;return D._stale=D._statusKey==="progress"&&!!ke&&Date.now()-new Date(ke).getTime()>m,D.status==="expired"||D.status==="expiring"?D._expiry={kind:"expired",date:D.options.expirationDate}:D.status!=="ready"?D._expiry={kind:"none"}:D.options.expirationMode==="never"||!D.options.expirationDate?D._expiry={kind:"never"}:D._expiry={kind:"date",date:D.options.expirationDate},D}function w(D){return t.get(D).then(X=>X.data||[],X=>(console.error(X),[]))}function b(){return e.loading=!0,i.all([w("/api/user/anonymized_repositories"),w("/api/user/anonymized_pull_requests"),w("/api/user/anonymized_gists")]).then(D=>{let X=D[0],le=D[1],Ee=D[2],re=[];X.forEach(me=>{me._type="repo";let ke=me.source||{};re.push(A(me,me.repoId,me.repoId,ke.fullName,"/anonymize/"+me.repoId,"/r/"+me.repoId+"/"))}),le.forEach(me=>{me._type="pr";let ke=me.source||{};re.push(A(me,me.pullRequestId,me.pullRequestId,ke.repositoryFullName?ke.repositoryFullName+"#"+ke.pullRequestId:void 0,"/pull-request-anonymize/"+me.pullRequestId,"/pr/"+me.pullRequestId+"/"))}),Ee.forEach(me=>{me._type="gist";let ke=me.source||{};re.push(A(me,me.gistId,me.gistId,ke.gistId,"/gist-anonymize/"+me.gistId,"/gist/"+me.gistId+"/"))}),e.items=re,e.loading=!1})}let E=0,N=!1;e.dashboardCursor=null,e.dashboardError="";function O(D){let X=D.source||{};return D._type==="repo"?A(D,D.repoId,D.repoId,X.fullName,"/anonymize/"+D.repoId,"/r/"+D.repoId+"/"):D._type==="pr"?A(D,D.pullRequestId,D.pullRequestId,X.repositoryFullName?X.repositoryFullName+"#"+X.pullRequestId:void 0,"/pull-request-anonymize/"+D.pullRequestId,"/pr/"+D.pullRequestId+"/"):A(D,D.gistId,D.gistId,X.gistId,"/gist-anonymize/"+D.gistId,"/gist/"+D.gistId+"/")}function q(D=!1){if(N)return b();let X=++E;return e.loading=!D,e.loadingMore=D,e.dashboardError="",t.get("/api/user/dashboard",{params:{q:e.search,type:e.typeFilter,sort:e.orderBy,statuses:Object.keys(e.filters.status).filter(le=>e.filters.status[le]!==!1).join(",")||"none",attention:String(e.projectView==="attention"),cursor:D?e.dashboardCursor:void 0}}).then(le=>{if(X===E){if(!Array.isArray(le.data?.items))return N=!0,b();e.items=(D?e.items:[]).concat(le.data.items.map(O)),e.dashboardCursor=le.data.cursor,e.dashboardTotals=le.data}},le=>{if(X===E){if(le.status===404)return N=!0,b();e.dashboardError="Projects could not be loaded. Please try again."}}).finally(()=>{X===E&&(e.loading=!1,e.loadingMore=!1)})}e.loadMoreProjects=()=>q(!0);let I;e.watchGroup(["search","typeFilter","orderBy","projectView"],()=>{N||(I&&a.timeout.cancel(I),I=a.timeout(()=>q(),150))},!1),e.watch("filters",()=>{N||q()},!0,!1),e.on("dispose",()=>{E++}),q(),e.openItem=(D,X)=>{if(!D._viewUrl)return;let le=X&&X.target;le&&le.closest&&le.closest("a, button, .dropdown, input")||(o.location.href=D._viewUrl)},e.hiddenStatusCount=()=>Object.keys(e.filters.status).filter(D=>e.filters.status[D]===!1).length,e.hasHiddenStatus=()=>e.hiddenStatusCount()>0,e.hasActiveFilters=()=>e.projectView!=="all"||e.typeFilter!=="all"||e.search.trim().length>0||Object.keys(e.filters.status).some(D=>e.filters.status[D]===!1),e.showClearFilters=()=>e.search.trim().length>0||e.typeFilter!=="all"||e.hiddenStatusCount()>1,e.clearFilters=()=>{e.projectView="all",e.typeFilter="all",e.search="",Object.keys(e.filters.status).forEach(D=>{e.filters.status[D]=!0})};function j(D,X,le,Ee){t.get("/api/repo/"+D).then(async re=>{let me=Ee!==void 0&&Ee!==re.data.status;for(let ke of e.items)if(ke._type==="repo"&&ke.repoId==D){me=me||ke.status!==re.data.status;let _e=e.needsAttention(ke);ke.status=re.data.status,ke.statusMessage=re.data.statusMessage,ke._statusKey=c(ke.status),ke._statusKey!=="progress"&&(ke._stale=!1);let Ne=e.needsAttention(ke);e.dashboardTotals&&_e!==Ne&&(e.dashboardTotals.attention=Math.max(0,e.dashboardTotals.attention+(Ne?1:-1)));break}if(me&&!N){e.dashboardCursor=null;let ke=e.selectedProject;await q(),ke&&e.selectedProject===ke&&(e.selectedProject=e.items.find(_e=>_e._type===ke._type&&_e._id===ke._id)||null)}if(re.data.status=="ready"||re.data.status=="error"||re.data.status=="removed"||re.data.status=="expired"){X(re.data);return}a.timeout(()=>j(D,X,le,re.data.status),2500)},le)}let de=D=>D==="repo"?"repository":D==="gist"?"gist":"pull request",ie=D=>D==="repo"?"/api/repo":D==="gist"?"/api/gist":"/api/pr";e.removeItem=D=>{let X=de(D._type);if(confirm(`Are you sure that you want to remove the ${X} ${D._id}?`)){let le=et({title:`Removing ${D._id}...`,date:new Date,body:`The ${X} ${D._id} is going to be removed.`});e.addToast(le);let Ee=`${ie(D._type)}/${D._id}`;t.delete(Ee).then(()=>{D._type==="repo"?j(D._id,()=>{le.title=`${D._id} is removed.`,le.body=`The ${X} ${D._id} is removed.`},void 0,D.status):(le.title=`${D._id} is removed.`,le.body=`The ${X} ${D._id} is removed.`,q())},re=>{le.title=`Error during the removal of ${D._id}.`,le.body=re.body,q()})}},e.refreshItem=D=>{let X=de(D._type),le=et({title:`Refreshing ${D._id}...`,date:new Date,body:`The ${X} ${D._id} is going to be refreshed.`});e.addToast(le);let Ee=me=>{le.title=`Error during the refresh of ${D._id}.`,le.body=me.data?.error||me.body||"The refresh could not be completed. Please try again.",q()},re=`${ie(D._type)}/${D._id}/refresh`;t.post(re).then(()=>{D._type==="repo"?j(D._id,me=>{if(me.status!=="ready"){Ee({body:me.statusMessage||`The repository is ${me.status}.`});return}le.title=`${D._id} is refreshed.`,le.body=`The ${X} ${D._id} is refreshed.`},Ee,D.status):(le.title=`${D._id} is refreshed.`,le.body=`The ${X} ${D._id} is refreshed.`,q())},Ee)},e.extendItem=D=>{let X=de(D._type),le=et({title:`Extending ${D._id}...`,date:new Date,body:`The expiration of ${X} ${D._id} is going to be extended by 6 months.`});e.addToast(le);let Ee=`${ie(D._type)}/${D._id}/extend`;t.post(Ee).then(()=>{D._type==="repo"?j(D._id,()=>{le.title=`${D._id} is extended.`,le.body=`The expiration of ${X} ${D._id} is extended by 6 months.`},void 0,D.status):(le.title=`${D._id} is extended.`,le.body=`The expiration of ${X} ${D._id} is extended by 6 months.`,q())},re=>{le.title=`Error during the extension of ${D._id}.`,le.body=re.data&&re.data.error||re.body,q()})},e.itemFilter=D=>{if(e.projectView==="attention"&&!e.needsAttention(D)||e.typeFilter!=="all"&&D._type!==e.typeFilter||e.filters.status[D._statusKey]===!1)return!1;let X=e.search.trim().toLowerCase();return!!(X.length==0||D._label&&String(D._label).toLowerCase().indexOf(X)>-1||D._source&&String(D._source).toLowerCase().indexOf(X)>-1||D._id&&String(D._id).toLowerCase().indexOf(X)>-1||D.conference&&String(D.conference).toLowerCase().indexOf(X)>-1)}};var Ku=function(e,t,s){let i=At();e.repoId=s.repoId,e.reviewUrl=window.location.origin+"/r/"+encodeURIComponent(s.repoId)+"/",e.repo=null,e.progress=0,e.rateLimitResetAt=0,e.rateLimitCountdown="",e.shareUrl=(window.location?.origin||"")+"/r/"+encodeURIComponent(e.repoId)+"/",e.copied=!1;let o=null;e.copyShareUrl=async()=>{try{await Fu(e.shareUrl),e.copied=!0,o&&i.timeout.cancel(o),o=i.timeout(()=>{e.copied=!1},2e3)}catch{e.addToast?.({title:"Copy this anonymous link",body:e.shareUrl})}};var r=null;let a=null,u=!1;function c(g){e.rateLimitResetAt=g,r&&i.interval.cancel(r);function v(){var h=Math.max(0,Math.ceil((g-Date.now())/1e3));if(h<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,i.interval.cancel(r),r=null;else{var k=Math.floor(h/60),A=h%60;e.rateLimitCountdown=k>0?k+"m "+A+"s":A+"s"}}v(),r=i.interval(v,1e3)}e.on("dispose",function(){u=!0,r&&i.interval.cancel(r),a&&i.timeout.cancel(a)});function m(g){if(!g)return g;var v=g.match(/^rate_limited:(\d+)$/);return v?(c(parseInt(v[1],10)),null):(e.rateLimitResetAt=0,g)}e.getStatus=()=>{u||t.get("/api/repo/"+e.repoId,{repoId:e.repoId,repoUrl:e.repoUrl}).then(g=>{if(!u){e.repo=g.data,g.data.rateLimitResetAt?c(g.data.rateLimitResetAt):e.repo.statusMessage=m(e.repo.statusMessage),e.repo.status=="ready"?e.progress=100:e.repo.status=="queue"?e.progress=10:e.repo.status=="downloaded"?e.progress=50:e.repo.status=="download"||e.repo.status=="preparing"?e.progress=25:e.repo.status=="anonymizing"&&(e.progress=75);var v=!["ready","removed","expired"].includes(e.repo.status);e.repo.status=="error"&&!e.rateLimitResetAt&&(v=!1),v&&(a=i.timeout(e.getStatus,2e3))}},g=>{e.error=g.data.error})},e.getStatus()},Vi=function(e,t,s,i,o,r,a){Lu(),e.renderRedacted=$u,e.sourceUrl="",e.workspaceOpen=!1,e.sourceUrlError="",e.previewStatus="idle",e.sourceLoading=!1,e.mobilePane="settings";let u=window.matchMedia?.("(max-width: 767px)");e.mobileWorkspace=!!u?.matches,u?.addEventListener&&vn()(u,"change",S=>{e.mobileWorkspace=S.matches}),e.selectMobilePane=S=>{e.mobilePane=S};let c=0,m=!1,g=new Set,v=(S,V=!1)=>!m&&S.generation===c&&S.url===e.sourceUrl.trim()&&S.connection===e.githubConnection&&(!V||S.branch===e.source.branch),h=()=>{let S={generation:c,url:e.sourceUrl.trim(),connection:e.githubConnection,branch:e.source.branch};return g.add(S),e.sourceLoading=!0,S},k=S=>{g.delete(S),m||(e.sourceLoading=[...g].some(V=>v(V)))};e.on("dispose",()=>{m=!0,c++});let A=null,w=S=>S.gistId&&!S.repo?"gist:"+S.gistId.toLowerCase():(S.owner+"/"+S.repo).toLowerCase()+(S.pullRequestId?"/pull/"+S.pullRequestId:""),b=Ur(e,["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"],"anonymize:"+(o.path?.()||"")),E=null,N=null,O=null;e.hostingReview=!1,e.previewExpanded=!1,e.taskValidationError="",e.editRepository=()=>{e.mobilePane="settings",e.previewExpanded=!1,it(()=>document.querySelector(".anonymize-fields .is-invalid")?.focus())},e.submitRepository=S=>{if(e.taskValidationError="",!(e.sourceLoading||e.billingBusy||e.hostingSaving||e.billingPending)){if(bt()||e.anonymize?.invalid||e.sourceUrlError){e.taskValidationError="Check the highlighted fields before continuing.",e.editRepository();return}return e.hostingNeedsPayment()?e.checkoutRepository():e.anonymizeRepo(S)}},e.hostingPayment=!1,e.hostingAlternatives=!1,e.hostingPrice=S=>S.amount==null?"Price shown at checkout":new Intl.NumberFormat(void 0,{style:"currency",currency:S.currency,minimumFractionDigits:0,maximumFractionDigits:2}).format(S.amount/100)+(S.interval==="year"?" billed annually":" billed monthly"),e.hostingPlan="author_monthly",e.hostingSaving=!1,e.selectedHostingPlan=()=>e.authorPlans().find(S=>S.id===e.hostingPlan)||e.authorPlans()[0];let q=()=>t.get("/api/user/quota").then(S=>{e.hostingQuota=S.data});Ei(e,t,async()=>{await q(),e.hostingQuotaBlocked=!1},{confirmedMessage:"Hosting status refreshed. Your draft is ready to continue."}),q().catch(()=>{}),e.authorPlans=()=>(e.billing?.plans||[]).filter(S=>["author_monthly","author_annual"].includes(S.id)),e.hasAuthorHosting=()=>["author_monthly","author_annual"].includes(e.billing?.allowance?.plan),e.hostingNeedsPayment=()=>!e.billing?.enabled||e.detectedType!=="repo"||e.hasAuthorHosting()||e.isUpdate&&e.role!=="owner"?!1:!!(e.options?.expirationMode==="never"&&!e._existingNever||!e.conference&&e.hostingQuotaBlocked),e.checkoutRepository=async(S=!1)=>{if(!(e.hostingSaving||e.billingBusy||!e.billing?.csrf||e.sourceLoading)){e.hostingSaving=!0,e.billingError="";try{let V=b.checkpoint(),z=JSON.stringify(V);(!N||z!==O)&&(N=(await t.post("/api/billing/draft",{path:o.path(),values:V},{headers:{"x-csrf-token":e.billing.csrf}})).data.id,O=z);let Z=e.authorPlans().find(fe=>fe.id===e.hostingPlan)||e.authorPlans()[0];if(!S&&!Z)throw new Error("No author plan available");await e.checkout(S?"author_pass":Z.id,S?e.repoId:"",{draftId:N})}catch{e.billingError="Your draft could not be saved for checkout. Your form is unchanged. Please try again."}finally{e.hostingSaving=!1}}},e.useDatedHosting=()=>{e.options.expirationMode="remove"},e.discardDraft=async()=>{b.discard(),e.workspaceOpen=!!e.sourceUrl,e.error=null,e.sourceUrl?await e.urlSelected(!0):(c++,e.sourceLoading=!1,e.detectedType=null,e.details=null,e.sourceUrlError="",M.cancel(),ne.cancel(),Le.cancel(),e.previewStatus="idle")},e.githubConnection=void 0,e.githubConnections=null,e.gistOAuthRequired=!1,e.gistAppRequired=!1;let I=()=>{let S={};for(let V of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])S[V]=e[V];sessionStorage.setItem("github-access-draft",JSON.stringify({path:o.path(),savedAt:Date.now(),draft:S}))};e.connectGistApp=()=>{I(),window.location.href="/github/app/login?returnTo="+encodeURIComponent(o.path())},e.connectGistOAuth=()=>{I(),window.location.href="/github/login?returnTo="+encodeURIComponent(o.path())},e.grantGitHubAccess=()=>{I();let S=o.path(),V=me(e.sourceUrl)||"",z=e.githubConnections?.appConnected?"/github/app/install":"/github/app/login";window.location.href=z+"?returnTo="+encodeURIComponent(S)+"&repository="+encodeURIComponent(V)+"&install=1"},e.chooseGitHubConnection=async S=>{e.githubConnection=S,e.readme="",e.sourceUrl&&await _e()},e.detectedType=null,e.repoId="",e.pullRequestId="",e.gistId="",e.terms="",e.defaultTerms="",e.branches=[],e.source={branch:"",commit:""},e.options={expirationMode:"remove",expirationDate:new Date,update:!1,image:!0,pdf:!0,notebook:!0,link:!0,body:!0,title:!0,origin:!1,diff:!0,content:!0,comments:!0,username:!0,date:!0};function j(){let S=new Date;return S.setMonth(S.getMonth()+6),S}e.options.expirationDate=j();function de(S){let V=S.getFullYear(),z=String(S.getMonth()+1).padStart(2,"0"),Z=String(S.getDate()).padStart(2,"0");return`${V}-${z}-${Z}`}e.minExpirationDate=de(new Date);let ie=new Date;ie.setFullYear(ie.getFullYear()+1),e.maxExpirationDate=de(ie),e.anonymize_readme="",e.readme="",e.html_readme="",e.isUpdate=!1,e.previousConfigurations=[],e.previousConfigurationId="";let D,X=S=>String(S||"").replace(/\/$/,"").replace(/\.git$/i,"").toLowerCase();async function le(){if(e.isUpdate||i.repoId||i.pullRequestId||i.gistId)return;let S={generation:c,url:e.sourceUrl.trim(),connection:e.githubConnection};try{D||(D=t.get("/api/user/anonymized_repositories").then(Z=>Z.data));let V=await D;if(!v(S))return;let z=X(me(S.url));e.previousConfigurations=V.filter(Z=>Z.repoId&&Z.options&&X(Z.source?.fullName)===z).sort((Z,fe)=>(Date.parse(fe.anonymizeDate)||0)-(Date.parse(Z.anonymizeDate)||0)),e.previousConfigurationId=e.previousConfigurations[0]?.repoId||""}catch{D=void 0}}e.existingConfigurationUrl=()=>{let S=e.previousConfigurations.find(V=>V.repoId===e.previousConfigurationId);return S?"/anonymize/"+encodeURIComponent(S.repoId):null};function Ee(S){t.get("/api/user/default").then(V=>{let z=V.data;z.terms&&(e.defaultTerms=z.terms.join(` +`)),e.options=Object.assign({},e.options,z.options),e.options.expirationDate=z.options&&z.options.expirationDate?new Date(z.options.expirationDate):j(),!i.repoId&&!i.pullRequestId&&!i.gistId&&!e.anonymize?.terms?.dirty&&(e.terms=e.defaultTerms),S&&S()})}function re(S,V,z){e.anonymize&&e.anonymize[S]&&e.anonymize[S].setValidity(V,z)}function me(S){try{let V=parseGithubUrl(S);if(V&&V.owner&&V.repo)return V.owner+"/"+V.repo}catch{}return null}e.accessRepairAllowed=!1,e.repairingGitHubAccess=!1,e.accessRepairMessage="",e.repairGitHubAccess=async()=>{if(!e.accessRepairAllowed||e.repairingGitHubAccess||!e.githubConnections?.appEnabled||!i.repoId||e.role!=="owner"||e.githubConnection!=="github-app"||me(e.sourceUrl)!==e._originalFullName)return;e.repairingGitHubAccess=!0,e.accessRepairMessage="";let S=h();try{let V=await t.get("/github/connections");if(e.githubConnections=V.data,!V.data.appEnabled)return;let z=await t.post("/github/connections/migrate",{type:"repository",id:i.repoId,connection:"github-app"},{headers:{"X-CSRF-Token":V.data.csrf}});if(!v(S))return;e.error=null,z.data.fullName&&(e._originalFullName=z.data.fullName,e.source.fullName=z.data.fullName,e.sourceUrl="https://github.com/"+z.data.fullName),e.accessRepairMessage="GitHub access repaired. Your anonymous URL and published commit are unchanged.",await e.urlSelected(!0)}catch{v(S)&&(e.accessRepairMessage="Unable to repair GitHub access. Check the App's repository permissions in Manage access, then retry. Your published snapshot has not been replaced.")}finally{e.repairingGitHubAccess=!1,k(S)}},e.reconnectingSource=!1,e.reconnectRepositoryId=void 0,e.reconnectSource=async()=>{if(confirm("Reconnect to the repository currently at this GitHub URL? Review its branch and commit before saving. Saving will replace the published snapshot.")){e.reconnectingSource=!0,e.reconnectRepositoryId=void 0,e.source.commit="",e.source.branch="",e.readme="",e.branches=[];try{await Re()}catch{}}};function ke(){return e.reconnectingSource||!e.isUpdate||!e._originalRepositoryID?void 0:me(e.sourceUrl)===e._originalFullName?e._originalRepositoryID:void 0}async function _e(){e._preservingDraft=!0;try{await e.urlSelected(!0)}finally{e._preservingDraft=!1}}async function Ne(){let S=new URLSearchParams(window.location.search).get("billingDraft");if(S){b.restore();try{let z=(await t.get("/api/billing/draft/"+encodeURIComponent(S))).data;if(z.path!==o.path())throw new Error("Wrong task");E=z.values.conference||null;for(let Z of["sourceUrl","terms","repoId","source","options","conference","githubConnection"])Object.prototype.hasOwnProperty.call(z.values,Z)&&(e[Z]=z.values[Z]);return e.options?.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate)),N=z.id,O=JSON.stringify(b.checkpoint()),e.draftRestored=!0,e.hostingReview=!0,e.sourceUrl&&await _e(),o.replace?.(o.path()),!0}catch{e.billingError="The checkout draft could not be restored. Retry by reloading this page; any local draft is still available."}}let V;try{V=JSON.parse(sessionStorage.getItem("github-access-draft")||"null")}catch{return!1}if(!V||V.path!==o.path()||Date.now()-V.savedAt>=30*6e4)return b.restore()?(e.sourceUrl&&await _e(),!0):!1;b.restore();for(let z of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])Object.prototype.hasOwnProperty.call(V.draft,z)&&(e[z]=V.draft[z]);return e.options.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate)),await _e(),sessionStorage.removeItem("github-access-draft"),!0}Ee(()=>{!i.repoId&&!i.pullRequestId&&!i.gistId&&a(Ne,0),i.repoId&&i.repoId!=""&&(e.isUpdate=!0,e.detectedType="repo",e.repoId=i.repoId,t.get("/api/repo/"+e.repoId).then(async S=>{e.accessRepairAllowed=!["removed","archived","preparing","queue","download","removing","expiring"].includes(S.data.status),e.githubConnection=S.data.connection||"oauth",e.sourceUrl="https://github.com/"+S.data.source.fullName,e._originalFullName=S.data.source.fullName,e.terms=S.data.options.terms.filter(V=>V).join(` +`),e.source=S.data.source,e.role=S.data.role||"owner",e._existingNever=S.data.options.expirationMode==="never",e.coauthors=S.data.coauthors||[],e._originalBranch=S.data.source.branch,e.options=Object.assign({},e.options,S.data.options),e.conference=S.data.conference,e._originalConference=S.data.conference,e.repositoryID=S.data.source.repositoryID,e._originalRepositoryID=S.data.source.repositoryID,S.data.options.expirationDate&&(e.options.expirationDate=new Date(S.data.options.expirationDate)),A=w(parseGithubUrl(e.sourceUrl)),!await Ne()&&(await Promise.all([Re(),Je()]),H())},()=>{o.url("/404")})),i.pullRequestId&&i.pullRequestId!=""&&(e.isUpdate=!0,e.detectedType="pr",e.pullRequestId=i.pullRequestId,t.get("/api/pr/"+e.pullRequestId).then(async S=>{if(e.githubConnection=S.data.connection||"oauth",e.sourceUrl="https://github.com/"+S.data.source.repositoryFullName+"/pull/"+S.data.source.pullRequestId,e.terms=S.data.options.terms.filter(V=>V).join(` +`),e.source=S.data.source,e.options=Object.assign({},e.options,S.data.options),e.conference=S.data.conference,e._originalConference=S.data.conference,S.data.options.expirationDate&&(e.options.expirationDate=new Date(S.data.options.expirationDate)),A=w(parseGithubUrl(e.sourceUrl)),!await Ne())try{await ee()}catch{}},()=>{o.url("/404")})),i.gistId&&i.gistId!=""&&(e.isUpdate=!0,e.detectedType="gist",e.gistId=i.gistId,t.get("/api/gist/"+e.gistId).then(async S=>{e.sourceUrl="https://gist.github.com/"+S.data.source.gistId,e.terms=S.data.options.terms.filter(V=>V).join(` +`),e.source=S.data.source,e.options=Object.assign({},e.options,S.data.options),e.conference=S.data.conference,e._originalConference=S.data.conference,S.data.options.expirationDate&&(e.options.expirationDate=new Date(S.data.options.expirationDate)),A=w(parseGithubUrl(e.sourceUrl)),!await Ne()&&await pe()},()=>{o.url("/404")}))}),t.get("/github/connections").then(S=>{e.githubConnections=S.data,!i.repoId&&!i.pullRequestId&&!i.gistId&&e.githubConnection===void 0&&S.data.appEnabled&&S.data.appConnected&&(e.githubConnection="github-app",e.sourceUrl&&e.workspaceOpen&&_e())}).catch(()=>{}),e.urlSelected=async(S=!1)=>{let V=++c;e.previousConfigurations=[],e.previousConfigurationId="";let z;try{z=parseGithubUrl(e.sourceUrl.trim())}catch{e.sourceLoading=!1,M.cancel(),ne.cancel(),Le.cancel(),e.previewStatus="idle",e.sourceUrlError=e.sourceUrl?"Please provide a valid GitHub URL.":"",re("sourceUrl","github",!1);return}let Z=w(z),fe=S||A===Z;A=Z,e.sourceUrlError="",re("sourceUrl","github",!0);let be=document.activeElement?.id==="sourceUrl-landing";e.workspaceOpen=!0,setTimeout(()=>{let Ze=window.document.getElementById("sourceUrl");if(Ze){try{Ze.setSelectionRange(0,0)}catch{}Ze.scrollLeft=0}},50),be&&a(()=>document.getElementById("sourceUrl")?.focus(),0),e.reconnectingSource=!1,e.reconnectRepositoryId=void 0,!fe&&!e.isUpdate&&(e.repoId="",e.pullRequestId="",e.gistId=""),e.details=null,e.branches=[],fe||(e.source={type:"GitHubStream",branch:"",commit:""}),M.cancel(),ne.cancel(),Le.cancel(),K.clear(),ye.clear(),e.previewStatus="idle",e.anonymize_readme="",e.readme="",e.html_readme="",e.detectedType=null,e.gistOAuthRequired=!1,e.gistAppRequired=!1,e._preservingDraft=fe;try{z.gistId&&!z.repo?(e.detectedType="gist",e.source={gistId:z.gistId},await pe()):z.pullRequestId?(e.detectedType="pr",e.source={repositoryFullName:z.owner+"/"+z.repo,pullRequestId:z.pullRequestId},await ee()):(e.detectedType="repo",le(),await Promise.all([Re(),Je()]),H())}catch{}finally{V===c&&(e._preservingDraft=!1)}$('[data-toggle="tooltip"]').tooltip()},$('[data-toggle="tooltip"]').tooltip(),e.watch("source.branch",async()=>{if(e.detectedType!=="repo")return;let S=e.branches.filter(z=>z.name==e.source.branch)[0];if(!S)return;!(!e.reconnectingSource&&e.isUpdate&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=S.commit),e.readme=S.readme,await Je(),H()}),e.getBranches=async S=>{let V=parseGithubUrl(e.sourceUrl),z=h();try{let Z=await t.get(`/api/repo/${V.owner}/${V.repo}/branches`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&me(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,force:S===!0||e.reconnectingSource?"1":"0",repositoryID:ke()}});if(!v(z))return;e.branches=Z.data,e.sourceUnreachable=!1,e.source.branch||(e.source.branch=e.details.defaultBranch);let fe=e.branches.filter(be=>be.name==e.source.branch);fe.length>0&&(!(!e.reconnectingSource&&!S&&e.isUpdate&&!e.options.update&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=fe[0].commit),e.readme=fe[0].readme,await Je(S))}catch(Z){if(!v(z))return;e.branches=[],e.sourceUnreachable=Z&&(Z.status===404||Z.data&&Z.data.error==="repo_not_found");let fe=Z&&Z.data&&Z.data.error||(Z&&Z.status===404?"repo_not_found":"unknown_error");r("ERRORS."+fe).then(be=>{e.toasts=e.toasts||[],e.addToast({title:"Error",date:new Date,body:be}),e.error=be},console.error),typeof re=="function"&&re("sourceUrl","missing",!1)}finally{k(z)}};async function Re(){let S=parseGithubUrl(e.sourceUrl),V=h();try{Ye();let z=await t.get(`/api/repo/${S.owner}/${S.repo}/`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&me(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,repositoryID:ke(),force:"1"}});if(!v(V))return;e.details=z.data,e.reconnectingSource&&(e.reconnectRepositoryId=e.details.externalId),e.details&&e.details.id&&(e.repositoryID=e.details.id),e.repoId||(e.repoId=e.details.repo+"-"+generateRandomId(4)),await e.getBranches(e.reconnectingSource)}catch(z){if(!v(V))return;throw z.data&&(r("ERRORS."+z.data.error).then(Z=>{e.addToast({title:"Error",date:new Date,body:Z}),e.error=Z},console.error),lt(z.data.error)),re("sourceUrl","missing",!1),z}finally{k(V)}}async function Je(S){if(e.readme&&!S)return e.readme;let V=parseGithubUrl(e.sourceUrl),z=h();try{let Z=await t.get(`/api/repo/${V.owner}/${V.repo}/readme`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&me(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,force:S===!0?"1":"0",branch:e.source.branch,repositoryID:ke()}});v(z,!0)&&(e.readme=Z.data)}catch{v(z,!0)&&(e.readme="")}finally{k(z)}}let Ke={magicalBraces:!0},rt=S=>S.startsWith("/")&&!S.endsWith("/")&&On(os(S.slice(1),Ke),Ke)===S.slice(1),Qe=()=>Object.keys(e.preserve.picked).filter(S=>e.preserve.picked[S]).sort().map(S=>"/"+On(S,Ke)),U=S=>"/"+On(S,Ke)+"/**",se=S=>"!/"+On(S,Ke)+"/",Q=()=>String(e.preserve.patterns||"").split(` +`).map(S=>S.trim()).filter(Boolean),te=null,L=0,x=null,B=()=>!1;function ue(){let S=L+"\0"+e.preserve.patterns;if(S!==x){x=S;try{B=da(la([...Qe(),...Q()]))}catch{B=()=>!1}}return B}function we(S){let V=new Map([["",{dirs:[],files:[]}]]);for(let z of S){let Z=z.split("/"),fe="";for(let be=0;beV.startsWith(S+"/"))),te.descendants.get(S)}let C=S=>ue()(S);function R(S){let V=Pe(S),z=0;for(let Z of V)C(Z)&&z++;return z===0?"none":z===V.length?"all":"some"}e.preserve={open:!1,loading:!1,error:"",truncated:!1,commit:"",search:"",expanded:{},picked:{},patterns:"",patternsOpen:!1},e.preserveSummary=()=>{let S=(e.options?.preserveFiles||[]).map(V=>String(V).trim()).filter(Boolean).map(V=>rt(V)?os(V.slice(1),Ke):V);return S.length?S.slice(0,2).join(", ")+(S.length>2?` and ${S.length-2} more`:""):"None. Every file is redacted."};async function P(){let S=e.source?.commit;if(!(te&&e.preserve.commit===S)){e.preserve.loading=!0,e.preserve.error="",te=null;try{let V=parseGithubUrl(e.sourceUrl),z=await t.get(`/api/repo/${V.owner}/${V.repo}/tree`,{params:{commit:S,connection:e.githubConnection,anonymizedRepoId:e.isUpdate&&i.repoId&&me(e.sourceUrl)===e._originalFullName?i.repoId:void 0,repositoryID:ke()}});if(e.source?.commit!==S)return;te=hs(we(z.data.files||[])),e.preserve.commit=S,e.preserve.truncated=!!z.data.truncated}catch{e.preserve.error="The file list could not be loaded from GitHub. You can still use patterns.",e.preserve.patternsOpen=!0}finally{e.preserve.loading=!1}}}e.openPreserveFiles=()=>{let S={},V=[];for(let Z of e.options?.preserveFiles||[]){let fe=String(Z).trim();fe&&(!V.length&&rt(fe)?S[os(fe.slice(1),Ke)]=!0:V.push(fe))}let z={};for(let Z of Object.keys(S)){let fe=Z.split("/");for(let be=1;be0}),L++,a(()=>{let Z=document.getElementById("preserve-files-dialog");Z?.showModal&&!Z.open&&Z.showModal(),document.getElementById("preserve-files-search")?.focus()},0),P()},e.closePreserveFiles=()=>{document.getElementById("preserve-files-dialog")?.close?.(),e.preserve.open=!1},e.savePreserveFiles=()=>{e.options.preserveFiles=la([...Qe(),...Q()]),e.closePreserveFiles()},e.preserveRows=()=>{if(!te)return[];let S=ue(),V=(be,Ze,kn)=>{let wt=!!e.preserve.picked[be],qn=S(be);return{kind:"file",path:be,label:kn,depth:Ze,state:qn?"all":"none",locked:!wt&&qn,note:!wt&&qn?"matched by a pattern":wt&&!qn?"excluded by a pattern":""}},z=String(e.preserve.search||"").trim().toLowerCase();if(z)return te.files.filter(be=>be.toLowerCase().includes(z)).slice(0,300).map(be=>V(be,0,be));let Z=[],fe=(be,Ze)=>{let kn=te.dirs.get(be);for(let wt of kn.dirs){let qn=!!e.preserve.expanded[wt],ga=Q().includes(U(wt));Z.push({kind:"dir",path:wt,label:wt.slice(be?be.length+1:0)+"/",depth:Ze,open:qn,state:R(wt),locked:!1,note:ga?"whole folder":""}),qn&&fe(wt,Ze+1)}for(let wt of kn.files)Z.push(V(wt,Ze,wt.slice(be?be.length+1:0)))};return fe("",0),Z},e.preserveCount=()=>te?te.files.filter(C).length:0,e.togglePreserveDir=S=>{e.preserve.expanded[S]=!e.preserve.expanded[S]},e.togglePreserveFile=S=>{e.preserve.picked[S]=!e.preserve.picked[S],L++},e.togglePreserveFolder=S=>{let V=U(S),z=se(S),Z=Q().filter(be=>be!==V&&be!==z),fe=R(S)==="all"||Q().includes(V);for(let be of Pe(S))e.preserve.picked[be]=!1;L++,e.preserve.patterns=(fe?Z:[...Z,V]).join(` +`),fe&&Pe(S).some(C)&&(e.preserve.patterns=[...Z,z].join(` +`))};let G=[".github","","docs"].flatMap(S=>["README.md","README","README.markdown","README.rst","README.txt","readme.md"].map(V=>(S?S+"/":"")+V));e.readmePreserved=()=>{if(e.detectedType!=="repo")return!1;let S=(e.options?.preserveFiles||[]).map(V=>String(V).trim()).filter(Boolean);if(!S.length)return!1;try{let V=da(S);return G.some(z=>V(z))}catch{return!1}};function F(){let S={terms:e.terms&&!e.readmePreserved()?e.terms.split(` +`):[],image:!!e.options.image,link:!!e.options.link,repoId:e.repoId};e.source&&e.source.branch&&(S.branchName=e.source.branch);try{let V=parseGithubUrl(e.sourceUrl);S.repoName=`${V.owner}/${V.repo}`}catch{}return S}function Y(S,V,z){let Z=null,fe=0,be=()=>{if(e.detectedType!==S)return;Z&&a.cancel(Z);let Ze=++fe;e.previewStatus="loading",Z=a(()=>{Z=null;let kn=V();if(!kn){e.previewStatus="idle";return}t.post("/api/anonymize-preview",kn).then(wt=>{Ze===fe&&(z(wt.data,kn),e.previewStatus="ready")}).catch(()=>{Ze===fe&&(e.previewStatus="error")})},200)};return be.cancel=()=>{fe++,Z&&a.cancel(Z),Z=null},e.on("dispose",be.cancel),be}e.retryPreview=()=>{e.detectedType==="repo"&&M(),e.detectedType==="pr"&&ne(),e.detectedType==="gist"&&Le()};let M=Y("repo",()=>e.readme?{content:e.readme,options:F()}:null,S=>{if(typeof S?.content!="string")throw Error("Invalid preview response");e.anonymize_readme=S.content;let V="";try{let Z=parseGithubUrl(e.sourceUrl),fe=e.source.branch||e.details&&e.details.defaultBranch||"main";V=`https://github.com/${Z.owner}/${Z.repo}/raw/${fe}/`}catch{}let z=renderMD(e.anonymize_readme,V);e.html_readme=z,a(Prism.highlightAll,150)});function H(){!e.anonymize||!e.anonymize.terms||M()}async function ee(){let S=parseGithubUrl(e.sourceUrl),V=h();try{Ye();let z=await t.get(`/api/pr/${S.owner}/${S.repo}/${S.pullRequestId}`,{params:{connection:e.githubConnection}});if(!v(V))return;e.details=z.data,e.pullRequestId||(e.pullRequestId=S.repo+"-PR"+S.pullRequestId+"-"+generateRandomId(4))}catch(z){if(!v(V))return;throw z.data&&(r("ERRORS."+z.data.error).then(Z=>{e.addToast({title:"Error",date:new Date,body:Z}),e.error=Z},console.error),lt(z.data.error)),re("sourceUrl","missing",!1),z}finally{k(V)}}let K=et(new Map);function he(){let S=new Set,V=e.details&&e.details.pullRequest;if(!V)return S;typeof V.title=="string"&&S.add(V.title),typeof V.body=="string"&&S.add(V.body),typeof V.diff=="string"&&S.add(V.diff);let z=V.comments||[];for(let Z of z)typeof Z.author=="string"&&S.add(Z.author),typeof Z.body=="string"&&S.add(Z.body);return S}let ne=Y("pr",()=>{let S=he(),V=Array.from(S);return V.length===0?null:{contents:V,options:F()}},(S,V)=>{if(!Array.isArray(S?.contents)||S.contents.length!==V.contents.length||S.contents.some(fe=>typeof fe!="string"))throw Error("Invalid preview response");let z=V.contents,Z=new Map;for(let fe=0;feK.set(be,fe))});e.anonymizePrContent=function(S){return S&&(K.has(S)?K.get(S):"")};async function pe(){let S=parseGithubUrl(e.sourceUrl),V=h();try{Ye(),e.gistOAuthRequired=!1,e.gistAppRequired=!1;let z=await t.get(`/api/gist/source/${S.gistId}`);if(!v(V))return;e.details=z.data,e.gistId||(e.gistId="gist-"+S.gistId.substring(0,6)+"-"+generateRandomId(4))}catch(z){if(!v(V))return;if(z.data?.error==="github_app_reconnect_required"){e.gistAppRequired=!0,re("sourceUrl","missing",!1);return}if(z.data?.error==="github_oauth_required"){e.gistOAuthRequired=!0,re("sourceUrl","missing",!1);return}throw z.data&&(r("ERRORS."+z.data.error).then(Z=>{e.addToast({title:"Error",date:new Date,body:Z}),e.error=Z},console.error),lt(z.data.error)),re("sourceUrl","missing",!1),z}finally{k(V)}}let ye=et(new Map);function Te(){let S=new Set,V=e.details&&e.details.gist;if(!V)return S;typeof V.description=="string"&&S.add(V.description),typeof V.ownerLogin=="string"&&S.add(V.ownerLogin);let z=V.files||[];for(let fe of z)typeof fe.filename=="string"&&S.add(fe.filename),typeof fe.content=="string"&&S.add(fe.content);let Z=V.comments||[];for(let fe of Z)typeof fe.author=="string"&&S.add(fe.author),typeof fe.body=="string"&&S.add(fe.body);return S}let Le=Y("gist",()=>{let S=Te(),V=Array.from(S);return V.length===0?null:{contents:V,options:F()}},(S,V)=>{if(!Array.isArray(S?.contents)||S.contents.length!==V.contents.length||S.contents.some(fe=>typeof fe!="string"))throw Error("Invalid preview response");let z=V.contents,Z=new Map;for(let fe=0;feye.set(be,fe)),Be()});e.anonymizeGistContent=function(S){return S&&(ye.has(S)?ye.get(S):"")},e.previewGistFiles=[];function Be(){let S=e.details&&e.details.gist&&e.details.gist.files||[];e.previewGistFiles=S.map(V=>({filename:e.anonymizeGistContent(V.filename),content:e.anonymizeGistContent(V.content),language:V.language}))}e.watch("details.gist.files",Be,!0),e.watch("terms",Be);function st(){let S=e.conference;if(e.conference_data=null,!S)return;let V=S===E||e.isUpdate&&S===e._originalConference;S!==E&&(E=null),t.get("/api/conferences/"+S).then(z=>{e.conference===S&&(e.conference_data=z.data,e.conference_data.startDate=new Date(e.conference_data.startDate),e.conference_data.endDate=new Date(e.conference_data.endDate),!V&&(e.options.expirationDate=new Date(e.conference_data.endDate),e.options.expirationMode="remove",e.options.update=e.conference_data.options.update,e.options.image=e.conference_data.options.image,e.options.pdf=e.conference_data.options.pdf,e.options.notebook=e.conference_data.options.notebook,e.options.link=e.conference_data.options.link))},()=>{e.conference===S&&(e.conference_data=null)})}function Ye(){re("repoId","used",!0),re("repoId","format",!0),re("pullRequestId","used",!0),re("pullRequestId","format",!0),re("gistId","used",!0),re("gistId","format",!0),re("sourceUrl","used",!0),re("sourceUrl","missing",!0),re("sourceUrl","access",!0),re("sourceUrl","github",!0),re("commit","exists",!0),re("conference","activated",!0),re("terms","format",!0),e.termHints=[]}function bt(){if(e.detectedType==="repo"&&e.options.expirationMode==="never")return!1;let S=e.anonymize&&e.anonymize.expirationDate;return!e.options.expirationDate||S&&S.invalid?(S&&S.setDirty&&S.setDirty(),e.error="Please choose a valid expiration date.",!0):!1}function lt(S){let V=e.detectedType==="pr"?"pullRequestId":e.detectedType==="gist"?"gistId":"repoId";switch(S){case"repoId_already_used":re(V,"used",!1);break;case"invalid_repoId":re(V,"format",!1);break;case"options_not_provided":re(V,"format",!1);break;case"repo_already_anonymized":re("sourceUrl","used",!1);break;case"invalid_terms_format":re("terms","format",!1);break;case"repo_not_found":re("sourceUrl","missing",!1);break;case"repo_not_accessible":re("sourceUrl","access",!1);break;case"commit_not_found":re("commit","exists",!1);break;case"conf_not_activated":re("conference","activated",!1);break}}e.coauthors=e.coauthors||[],e.coauthorResults=[],e.coauthorError="",e.searchCoauthors=()=>{let S=(e.coauthorSearch||"").trim();if(e.coauthorError="",S.length<2){e.coauthorResults=[];return}t.get("/api/user/search/github-users",{params:{q:S}}).then(V=>{let z=new Set((e.coauthors||[]).map(Z=>(Z.username||"").toLowerCase()));e.coauthorResults=(V.data||[]).filter(Z=>!z.has((Z.username||"").toLowerCase()))},()=>{e.coauthorResults=[]})},e.addCoauthor=(S,V)=>{V&&V.preventDefault(),!(!S||!S.username)&&t.post("/api/repo/"+e.repoId+"/coauthors",{username:S.username}).then(z=>{e.coauthors=z.data||[],e.coauthorResults=[],e.coauthorSearch="",e.coauthorError=""},z=>{let Z=z&&z.data&&z.data.error||"unknown_error";e.coauthorError=Z})},e.removeCoauthor=S=>{!S||!S.username||confirm("Remove co-author "+S.username+"?")&&t.delete("/api/repo/"+e.repoId+"/coauthors/"+encodeURIComponent(S.username)).then(V=>{e.coauthors=V.data||[]},V=>{let z=V&&V.data&&V.data.error||"unknown_error";e.coauthorError=z})},e.anonymizeRepo=S=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(e.reconnectingSource&&!e.reconnectRepositoryId)return;if(bt()){e.editRepository();return}if(e.anonymize?.invalid||e.sourceUrlError){e.editRepository(),e.error="Please correct the highlighted fields before saving.";return}if(e.hostingNeedsPayment()&&e.options.expirationMode==="never"){e.hostingReview=!0,it(()=>document.getElementById("repository-hosting")?.scrollIntoView({block:"center"}));return}let V=S.currentTarget||S.target.closest?.("button")||S.target;V.disabled=!0;let z=parseGithubUrl(e.sourceUrl),Z={repoId:e.repoId,terms:e.terms.trim().split(` +`).filter(be=>be),connection:e.githubConnection,fullName:`${z.owner}/${z.repo}`,repository:e.sourceUrl,reconnectRepositoryId:e.reconnectRepositoryId,options:e.options,source:e.source,conference:e.conference};e.details&&(Z.options.pageSource=e.details.pageSource),Ye();let fe=e.isUpdate?"/api/repo/"+e.repoId:"/api/repo/";t.post(fe,Z,{headers:{"Content-Type":"application/json"}}).then(()=>{b.clear(),window.location.href="/status/"+e.repoId},be=>{be.data&&(r("ERRORS."+be.data.error).then(Ze=>{e.error=Ze},console.error),lt(be.data.error),["quota_exceeded","subscription_required_for_never_expiration"].includes(be.data.error)&&(be.data.error==="subscription_required_for_never_expiration"&&(e._existingNever=!1),e.hostingQuotaBlocked=!0,e.hostingReview=!0,it(()=>document.getElementById("repository-hosting")?.scrollIntoView({block:"center"}))))}).finally(()=>{V.disabled=!1})},e.anonymizeGist=S=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(bt())return;if(e.anonymize?.invalid||e.sourceUrlError){e.error="Please correct the highlighted fields before saving.";return}let V=S.currentTarget||S.target.closest?.("button")||S.target;V.disabled=!0;let z=parseGithubUrl(e.sourceUrl),Z={gistId:e.gistId,terms:e.terms.trim().split(` +`).filter(be=>be),source:{gistId:z.gistId},options:e.options,conference:e.conference};Ye();let fe=e.isUpdate?"/api/gist/"+e.gistId:"/api/gist/";t.post(fe,Z,{headers:{"Content-Type":"application/json"}}).then(()=>{b.clear(),window.location.href="/gist/"+e.gistId},be=>{be.data&&(r("ERRORS."+be.data.error).then(Ze=>{e.error=Ze},console.error),lt(be.data.error))}).finally(()=>{V.disabled=!1})},e.anonymizePullRequest=S=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(bt())return;if(e.anonymize?.invalid||e.sourceUrlError){e.error="Please correct the highlighted fields before saving.";return}let V=S.currentTarget||S.target.closest?.("button")||S.target;V.disabled=!0;let z=parseGithubUrl(e.sourceUrl),Z={pullRequestId:e.pullRequestId,connection:e.githubConnection,terms:e.terms.trim().split(` +`).filter(be=>be),source:{repositoryFullName:`${z.owner}/${z.repo}`,pullRequestId:z.pullRequestId},options:e.options,conference:e.conference};Ye();let fe=e.isUpdate?"/api/pr/"+e.pullRequestId:"/api/pr/";t.post(fe,Z,{headers:{"Content-Type":"application/json"}}).then(()=>{b.clear(),window.location.href="/pr/"+e.pullRequestId},be=>{be.data&&(r("ERRORS."+be.data.error).then(Ze=>{e.error=Ze},console.error),lt(be.data.error))}).finally(()=>{V.disabled=!1})},e.watch("conference",()=>{st()}),e.termHints=[],e.matchTermAsWritten=S=>{e.terms=Vu(e.terms,S)},e.watch("options.preserveFiles",()=>{e.detectedType==="repo"&&M()}),e.watch("terms",()=>{e.termHints=Mu(e.terms),e.detectedType==="repo"&&H(),e.detectedType==="pr"&&ne(),e.detectedType==="gist"&&Le()}),e.watch("options.image",()=>{e.detectedType==="repo"&&H(),e.detectedType==="pr"&&ne(),e.detectedType==="gist"&&Le()}),e.watch("options.link",()=>{e.detectedType==="repo"&&H(),e.detectedType==="pr"&&ne(),e.detectedType==="gist"&&Le()}),e.watch("details",()=>{e.detectedType==="pr"&&ne(),e.detectedType==="gist"&&Le()},!0)},pa=function(e,t,s,i,o,r){let a=At();Lu();let u=vn();e.on("dark-mode",(U,se)=>{e.aceOption&&(se?e.aceOption.theme="nord_dark":e.aceOption.theme="chrome")});let c=0,m=null,g=null;e.fileLoadingSlow=!1,e.fileReceivedBytes=0;function v(){m&&(m.resolve(),m=null),g&&(a.timeout.cancel(g),g=null)}let h=!1;e.on("dispose",()=>{h=!0,c++,v(),k&&k.resolve()}),e.files=[],e.isMac=/Mac|iPhone|iPad|iPod/.test(navigator.platform||navigator.userAgent),e.fileSearchQuery="",e.fileSearchResults=null,e.fileSearchLoading=!1,u(document,"click",U=>{e.symbolsOpen&&!U.target.closest?.(".symbols")&&(e.symbolsOpen=!1),e.moreOpen&&!U.target.closest?.(".tb-more")&&(e.moreOpen=!1),e.tocOpen&&!U.target.closest?.(".tb-toc-m")&&(e.tocOpen=!1),e.gotoOpen&&U.target.isConnected&&!U.target.closest?.(".goto-pop, .btn-goto, .tb-more")&&(e.gotoOpen=!1),e.accountOpen&&!U.target.closest?.(".acct")&&(e.accountOpen=!1),e.helpOpen&&!U.target.closest?.(".vb-help")&&(e.helpOpen=!1)}),u(document,"keydown",U=>{U.key==="Escape"&&(e.symbolsOpen=!1,e.moreOpen=!1,e.tocOpen=!1,e.gotoOpen=!1,e.accountOpen=!1,e.helpOpen=!1),(U.ctrlKey||U.metaKey)&&!U.altKey&&U.key&&U.key.toLowerCase()==="f"&&e.type==="html"&&window.document.querySelector(".reading-layout")&&(U.preventDefault(),e.toggleMdFind(!0))}),u(document,"keydown",function(U){if((U.metaKey||U.ctrlKey)&&U.key==="k"){U.preventDefault();var se=document.querySelector(".tree-search-input");se&&(se.focus(),se.select())}});var k=null;e.onFileSearchChange=function(){k&&(k.resolve(),k=null);let U=e.fileSearchQuery;if(!U||U.length<2){e.fileSearchResults=null,e.fileSearchLoading=!1;return}e.fileSearchLoading=!0;let se=r.defer();k=se,t.get(`/api/repo/${e.repoId}/files/search?q=${encodeURIComponent(U)}`,{timeout:se.promise}).then(function(Q){if(!(h||k!==se)){k=null,e.fileSearchLoading=!1;var te={};e.files.forEach(function(H){te[(H.path||"")+"/"+H.name]=!0});for(var L=[],x={},B=0;B0&&e.files.push.apply(e.files,L);for(var G=[],F=0;F0&&e.files.push.apply(e.files,G),e.fileSearchResults=Q.data}},function(){!h&&k===se&&(k=null,e.fileSearchLoading=!1,e.fileSearchResults=[])})};let A={yml:"yaml",txt:"text",py:"python",js:"javascript",ts:"typescript"},w=["license","txt"],b=["png","jpg","jpeg","gif","svg","ico","bmp","tiff","tif","webp","avif","heif","heic"],E=["wav","mp3","ogg","wma","flac","aac","m4a"],N=["mp4","avi","webm","mov","mpg","mpeg","mkv","flv","wmv","3gp","3g2","m4v","f4v","f4p","f4a","f4b"];e.on("routeUpdate",function(U,se){if(e.repoId!=i.repoId)return Qe();if((i.path||"")!=e.filePath){window.matchMedia?.("(max-width: 767px)").matches&&(e.sidebarCollapsed=!0),e.filePath=i.path||"",e.paths=e.filePath.split("/").filter(Q=>Q&&Q.trim().length>0),rt();for(let Q=0;Q0?e.paths.slice(0,Q).join("/"):"";e.files.some(x=>x.path===te)||e.getFiles(te)}}});function O(){if(e.paths[0]!="")return;let U=["readme.md","readme.txt","readme.org","readme.1st","readme"],se={};for(let te of e.files)te.name.toLowerCase().indexOf("readme")>-1&&(se[te.name.toLowerCase()]=te.name);let Q=null;for(let te of U)if(se[te]){Q=te;break}if(!Q&&Object.keys(se).length>0&&(Q=Object.keys(se)[0]),Q){let te=s.url();te[te.length-1]!="/"&&(te+="/"),s.url(te+encodePathForUrl(se[Q]))}}e.fileCounts=null;let q=0,I=new Set,j=!1;e.getFiles=function(U,se=!1){let Q=e.repoId,te=q;return t.get(`/api/repo/${e.repoId}/files/?path=${encodeURIComponent(U)}&v=${e.options.lastUpdateDate}`).then(function(L){if(h||Q!==e.repoId||te!==q)return[];let x=U||"";return e.files=e.files.filter(B=>B.path!==x),e.files.push(...L.data),de(x,te),L.data},function(L){if(h||Q!==e.repoId||te!==q)return[];se||(e.type="error",e.content=ca(L),e.files=[])})};function de(U,se){if(j||I.has(U))return;I.add(U);let Q=e.repoId;t.get(`/api/repo/${e.repoId}/files/counts?path=${encodeURIComponent(U)}`).then(function(te){h||Q!==e.repoId||se!==q||(e.fileCounts={...e.fileCounts,...te.data})},function(){h||Q!==e.repoId||se!==q||(j=!0)})}function ie(){return e.files.filter(U=>U.name==e.paths[e.paths.length-1]&&U.path==e.paths.slice(0,e.paths.length-1).join("/"))[0]}var D=null;e.on("dispose",function(){D&&a.interval.cancel(D)});function X(U){if(h)return;let se=e.repoId;t.get(`/api/repo/${e.repoId}/options`).then(Q=>{if(!(h||se!==e.repoId)){if(e.options=Q.data,e.options.url){window.location=e.options.url;return}U&&U(Q.data)}},Q=>{if(!(h||se!==e.repoId)){var te=Q.data||{};if(te.error==="rate_limited"&&te.resetAt){let x=function(){var B=Math.max(0,Math.ceil((e.rateLimitResetAt-Date.now())/1e3));if(B<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,D&&(a.interval.cancel(D),D=null),X(U);else{var ue=Math.floor(B/60),we=B%60;e.rateLimitCountdown=ue>0?ue+"m "+we+"s":we+"s"}};var L=x;e.type="rate_limited",e.rateLimitResetAt=te.resetAt,D&&a.interval.cancel(D),x(),D=a.interval(x,1e3)}else te.error==="repository_not_ready"?(e.type="loading",a.timeout(function(){X(U)},3e3)):(e.type="error",e.content=ca(Q))}})}e.toggleSource=function(){e.showSource=!e.showSource},e.toggleAllowScripts=function(){e.allowScripts=!e.allowScripts};let le=(()=>{try{return window.localStorage?.getItem("wrapLines")}catch{return null}})();e.wrapLines=(le??(window.matchMedia?.("(max-width: 767px)").matches?"false":"true"))!=="false",e.toggleWrap=function(){e.wrapLines=!e.wrapLines;try{window.localStorage?.setItem("wrapLines",String(e.wrapLines))}catch{}e.codeEditor?.session.setUseWrapMode(e.wrapLines)};function Ee(){return window.document.querySelector(".reading-layout .markdown-body")}function re(){let U=Ee();U&&(U.querySelectorAll("mark.md-find").forEach(se=>{se.replaceWith(window.document.createTextNode(se.textContent))}),U.normalize())}e.runMdFind=function(){re(),e.mdFindTotal=0,e.mdFindIndex=0;let U=(e.mdFindQuery||"").trim(),se=Ee();if(!U||!se)return;let Q=!!e.mdFindCase,te=Q?U:U.toLowerCase(),L=window.document.createTreeWalker(se,4),x=[];for(;L.nextNode();)(Q?L.currentNode.nodeValue:L.currentNode.nodeValue.toLowerCase()).includes(te)&&x.push(L.currentNode);let B=0;for(let ue of x){let we=ue.nodeValue,Pe=Q?we:we.toLowerCase(),C=window.document.createDocumentFragment(),R=0,P;for(;(P=Pe.indexOf(te,R))!==-1;){C.appendChild(window.document.createTextNode(we.slice(R,P)));let G=window.document.createElement("mark");G.className="md-find",G.textContent=we.slice(P,P+U.length),C.appendChild(G),B++,R=P+U.length}C.appendChild(window.document.createTextNode(we.slice(R))),ue.parentNode.replaceChild(C,ue)}e.mdFindTotal=B,B&&e.stepMdFind(0)},e.stepMdFind=function(U){let se=Ee();if(!se||!e.mdFindTotal)return;let Q=se.querySelectorAll("mark.md-find");e.mdFindIndex=(e.mdFindIndex+U+Q.length)%Q.length,Q.forEach((te,L)=>te.classList.toggle("is-current",L===e.mdFindIndex)),Q[e.mdFindIndex]?.scrollIntoView({block:"center",behavior:"smooth"})},e.toggleMdFind=function(U){if(e.mdFindOpen=U===void 0?!e.mdFindOpen:U,!e.mdFindOpen){re(),e.mdFindTotal=0;return}it(()=>window.document.querySelector(".md-find-input")?.focus())},e.findInFile=function(){let U=e.codeEditor;if(!U)return;U.focus(),U.execCommand("find");let se=()=>{let Q=U.searchBox?.element;Q&&(U.renderer.setScrollMargin(52,12,0,0),!Q._dockObserver&&(Q._dockObserver=new MutationObserver(()=>{U.renderer.setScrollMargin(Q.style.display!=="none"?52:12,12,0,0)}),Q._dockObserver.observe(Q,{attributes:!0,attributeFilter:["style"]})))};se(),setTimeout(se,150)};let me=[[/^\s*(?:export\s+)?(?:default\s+)?(?:abstract\s+)?class\s+([A-Za-z_$][\w$]*)/,"class"],[/^\s*(?:export\s+)?(?:default\s+)?(?:async\s+)?function\s*\*?\s*([A-Za-z_$][\w$]*)/,"function"],[/^\s*(?:export\s+)?(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*(?:async\s*)?(?:function|\([^)]*\)\s*=>|[A-Za-z_$][\w$]*\s*=>)/,"function"],[/^\s*(?:async\s+)?def\s+([A-Za-z_]\w*)/,"function"],[/^\s*class\s+([A-Za-z_]\w*)/,"class"],[/^\s*func\s+(?:\([^)]*\)\s*)?([A-Za-z_]\w*)/,"function"],[/^\s*(?:pub\s+)?fn\s+([A-Za-z_]\w*)/,"function"],[/^\s*(?:public|private|protected|static|\s)+[\w<>\[\],\s]+\s+([A-Za-z_]\w*)\s*\([^;]*\)\s*\{?\s*$/,"function"]],ke={content:null,list:[]};e.symbolsOpen=!1,e.symbols=function(){if(typeof e.content!="string"||e.content.length>2e6)return[];if(ke.content===e.content)return ke.list;let U=[];return e.content.split(` +`).forEach((se,Q)=>{for(let[te,L]of me){let x=te.exec(se);if(x&&!/^(if|for|while|switch|return|catch)$/.test(x[1])){U.push({name:x[1],kind:L,line:Q+1});break}}}),ke={content:e.content,list:U.slice(0,300)},ke.list},e.goToSymbol=function(U){e.symbolsOpen=!1;let se=e.codeEditor;se&&(se.scrollToLine(U-1,!0,!0,()=>{}),se.gotoLine(U,0,!0),window.history.replaceState(null,"",window.location.pathname+window.location.search+"#L"+U),window.dispatchEvent(new HashChangeEvent("hashchange")))},e.gotoLine=function(){e.codeEditor&&(e.moreOpen=!1,e.gotoError="",e.gotoValue=String(e.codeEditor.getCursorPosition().row+1),e.gotoOpen=!0,setTimeout(()=>{let U=window.document.getElementById("goto-input");U&&(U.focus(),U.select())},0))},e.closeGoto=function(){e.gotoOpen=!1,e.gotoError="",e.codeEditor?.focus()},e.submitGoto=function(){let U=e.codeEditor;if(!U)return;let se=/^\s*:?\s*(\d+)\s*(?:[:,]\s*(\d+))?\s*$/.exec(e.gotoValue||""),Q=U.session.getLength();if(!se||+se[1]<1||+se[1]>Q){e.gotoError="Enter a line from 1 to "+Q;return}U.gotoLine(+se[1],se[2]?Math.max(0,+se[2]-1):0,!0),e.gotoOpen=!1,e.gotoError="",U.focus()},e.rootEntries=function(){return[...e.files||[]].sort((U,se)=>{let Q=U.size==null,te=se.size==null;return Q!==te?Q?-1:1:U.name.localeCompare(se.name)})},e.formatSize=function(U){if(U==null)return"";if(U<1024)return U+" B";let se=U/1024;return se<1024?se.toFixed(1)+" KB":(se/1024).toFixed(1)+" MB"},e.fileSize=function(U){if(!U)return null;let se=U.replace(/^\/+/,""),Q=(e.files||[]).find(te=>(te.path?te.path+"/":"")+te.name===se);return Q&&Q.size!=null?Q.size:null},e.revealFolder=function(U){e.sidebarHidden=!1,e.sidebarCollapsed=!1,it(()=>{let se=window.document.querySelector('.files a[data-path="/'+(window.CSS?.escape?window.CSS.escape(U):U)+'"]');se&&(se.closest("li")?.classList.contains("open")||se.click(),se.scrollIntoView({block:"nearest"}),se.focus())})},e.redactionCount=function(){return typeof e.content!="string"?0:((e.type==="html"?e.content.replace(/<[^>]*>/g," "):e.content).match(Po)||[]).length},e.renderRedacted=$u;let _e=U=>U.toLowerCase().trim().replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").slice(0,60)||"section";e.renderReadme=function(U){let se=e.renderRedacted(U);if(!se||typeof window.DOMParser!="function")return se;let Q=new window.DOMParser().parseFromString("
"+se+"
","text/html"),te={};return Q.querySelectorAll("h1, h2, h3").forEach(L=>{let x=L.id||_e(L.textContent);te[x]?x+="-"+ ++te[x]:te[x]=1,L.id=x}),Q.body.firstChild.innerHTML};let Ne={content:null,list:[]};e.readmeToc=function(){if(e.type!=="html"||typeof e.content!="string")return[];if(Ne.content===e.content)return Ne.list;let se=[...new window.DOMParser().parseFromString("
"+e.renderReadme(e.sanitize?e.sanitize(e.content):e.content)+"
","text/html").querySelectorAll("h2, h3")].map(Q=>({id:Q.id,text:Q.textContent.trim(),level:Q.tagName==="H3"?3:2})).slice(0,40);return Ne={content:e.content,list:se},se},e.activeHeading=null,u(window,"scroll",()=>{let U=e.readmeToc?e.readmeToc():[];if(!U.length)return;let se=150,Q="",te="";for(let L of U){let x=window.document.getElementById(L.id);if(!x)continue;let B=x.getBoundingClientRect().top;BQ&&se.push({t:U.slice(Q,te.index)}),se.push({n:te[1]}),Q=te.index+te[0].length;return Q{e.pathCopied=!1},1600))},e.contentCopied=!1,e.copyContent=async function(){if(typeof e.content!="string"||!window.navigator.clipboard?.writeText)return;let U=e.content;if(e.type==="html"&&e.url)try{U=await(await window.fetch(e.url,{credentials:"same-origin"})).text()}catch{return}await window.navigator.clipboard.writeText(U),e.contentCopied=!0,setTimeout(()=>{e.contentCopied=!1},1600)};function Re(U){return A[U]?A[U]:U}function Je(U){return U=="pdf"?"pdf":U=="html"||U=="htm"?"html-doc":U=="md"?"md":U=="org"?"org":U=="ipynb"?"IPython":w.indexOf(U)>-1?"text":b.indexOf(U)>-1?"image":N.indexOf(U)>-1?"media":E.indexOf(U)>-1?"audio":"code"}function Ke(U,se){let Q=c;if(!U){e.type="error",e.content="no_file_selected";return}let te=e.type;(te==="code"||te==="text")&&Mo().catch(()=>{}),e.type="loading",e.content="loading",e.fileLoadingSlow=!1,e.fileReceivedBytes=0;let L=r.defer();m=L,g=a.timeout(()=>{!h&&Q===c&&e.type==="loading"&&(e.fileLoadingSlow=!0)},1500);let x=se&&se.sha||"0";t.get(`/api/repo/${e.repoId}/file/${encodePathForUrl(U)}?v=`+x,{timeout:L.promise,onDownloadProgress:B=>{!h&&Q===c&&(e.fileReceivedBytes=B)},transformResponse:B=>B}).then(B=>{if(!(h||Q!==c)){if(v(),e.type=te,e.content=B.data,e.content==""&&(e.content=null),e.type=="md"&&(e.content=renderMD(B.data,s.url()+"/../"),e.type="html"),e.type=="org"){let we=contentAbs2Relative(B.data);var ue=new Org.Parser().parse(we).convert(Org.ConverterHTML,{headerOffset:1,exportFromLineNumber:!1,suppressSubScriptHandling:!0,suppressAutoLink:!1});e.content=DOMPurify.sanitize(ue.toString()),e.type="html"}e.type=="code"&&B.headers("content-type")=="application/octet-stream"&&(e.type="binary",e.content="binary"),a.timeout(()=>{Prism.highlightAll()},50)}},B=>{h||Q!==c||(v(),e.type="error",e.content=ca(B))})}function rt(){c++,v(),e.content="",e.file=ie();let U="0";e.file&&e.file.sha&&(U=e.file.sha),e.url=`/api/repo/${e.repoId}/file/${encodePathForUrl(e.filePath)}?v=${U}`;let se=e.filePath.substring(0,e.filePath.lastIndexOf("/")+1);e.fileBaseUrl=`/api/repo/${e.repoId}/file/${se?encodePathForUrl(se):""}`,e.showSource=!1,e.allowScripts=!1;let Q=e.filePath.toLowerCase(),te=Q.lastIndexOf(".");te>-1&&(Q=Q.substring(te+1));let L={javascript:"JavaScript",typescript:"TypeScript",tsx:"TSX",jsx:"JSX",python:"Python",java:"Java",c_cpp:"C/C++",csharp:"C#",golang:"Go",rust:"Rust",ruby:"Ruby",php:"PHP",html:"HTML",css:"CSS",scss:"SCSS",json:"JSON",yaml:"YAML",markdown:"Markdown",sh:"Shell",dockerfile:"Dockerfile",xml:"XML",sql:"SQL",kotlin:"Kotlin",swift:"Swift",scala:"Scala",r:"R",julia:"Julia",latex:"LaTeX",toml:"TOML",text:""},x=Re(Q);if(e.languageName=L[x]??(x?x.charAt(0).toUpperCase()+x.slice(1):""),e.aceOption={readOnly:!0,useWrapMode:!0,showGutter:!0,theme:"chrome",useSoftTab:!0,tabSize:2,fontSize:window.matchMedia?.("(max-width: 767px)").matches?12:13,keyBinding:"vscode",fullLineSelection:!0,highlightActiveLine:!1,highlightGutterLine:!1,cursor:"hide",showInvisibles:!1,showIndentGuides:!1,showPrintMargin:!1,highlightSelectedWord:!1,enableBehaviours:!0,fadeFoldWidgets:!1,mode:Re(Q),onLoad:function(B){e.codeEditor=hs(B);{let M=B.session,H=M.getTokens.bind(M),ee=/\bXXXX-\d+\b/g;if(M.getTokens=function(K){let he=H(K);if(!he.some(pe=>pe.value.indexOf("XXXX-")!==-1))return he;let ne=[];for(let pe of he){if(pe.value.indexOf("XXXX-")===-1){ne.push(pe);continue}let ye=0;ee.lastIndex=0;let Te;for(;Te=ee.exec(pe.value);)Te.index>ye&&ne.push({type:pe.type,value:pe.value.slice(ye,Te.index)}),ne.push({type:"redacted.n"+Te[0].slice(5),value:Te[0]}),ye=Te.index+Te[0].length;ye`.ace_redacted.ace_n${ne+1}::after{content:"${ne+1}"}`).join(""),window.document.head.appendChild(K)}B.renderer.updateFull(!0)}B.session.setUseWrapMode(e.wrapLines!==!1);let ue=B.container.closest?.(".file-card"),we=()=>{if(!ue)return;let M=B.renderer,H=(M.layerConfig?.width||0)-(M.$size?.scrollerWidth||0);ue.classList.toggle("at-right-edge",H<=2||M.getScrollLeft()>=H-2)};B.session.on("changeScrollLeft",we),B.renderer.on("afterRender",we),window.matchMedia?.("(max-width: 767px)").matches&&B.setOption("hScrollBarAlwaysVisible",!0);let Pe=ace.require("ace/range").Range,C=null;function R(M,H){C!==null&&(B.session.removeMarker(C),C=null),M!=null&&(C=B.session.addMarker(new Pe(M,0,H,1),"highlighted-line","fullLine"))}function P(M){let H=window.location.hash.match(/^#L(\d+)(?:-L(\d+))?/);if(!H){R(null);return}let ee=parseInt(H[1])-1,K=H[2]?parseInt(H[2])-1:ee;R(ee,K),M&&a.timeout(()=>{B.scrollToLine(ee,!0,!0,function(){})},100)}P(!0);let G=null;B.on("guttermousedown",function(M){let H=M.getDocumentPosition().row,ee=M.domEvent&&M.domEvent.shiftKey,K=H,he=H;ee&&G!==null?(K=Math.min(G,H),he=Math.max(G,H)):G=H;let ne=K===he?`#L${K+1}`:`#L${K+1}-L${he+1}`,pe=window.location.pathname+window.location.search+ne;window.history.replaceState(null,"",pe),R(K,he),M.stop()});let F=u(window,"hashchange",()=>P(!1));B.setFontSize(e.aceOption.fontSize),B.setOptions({fontFamily:"'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace"}),B.container.style.lineHeight="20px",B.renderer.setPadding(16),B.renderer.setScrollMargin(12,12,0,0),B.renderer.updateFontSize(),B.setReadOnly(e.aceOption.readOnly),B.setKeyboardHandler(e.aceOption.keyBinding),B.setSelectionStyle(e.aceOption.fullLineSelection?"line":"text"),B.setOption("displayIndentGuides",!1),B.setHighlightActiveLine(e.aceOption.highlightActiveLine),e.aceOption.cursor=="hide"&&(B.renderer.$cursorLayer.element.style.display="none"),B.setHighlightGutterLine(e.aceOption.highlightGutterLine),B.setShowInvisibles(e.aceOption.showInvisibles),B.setDisplayIndentGuides(e.aceOption.showIndentGuides),B.renderer.setShowPrintMargin(e.aceOption.showPrintMargin),B.setHighlightSelectedWord(e.aceOption.highlightSelectedWord),B.session.setUseSoftTabs(e.aceOption.useSoftTab),B.session.setTabSize(e.aceOption.tabSize),B.setBehavioursEnabled(e.aceOption.enableBehaviours),B.setFadeFoldWidgets(e.aceOption.fadeFoldWidgets);let Y=u(window,"keydown",M=>{if((M.ctrlKey||M.metaKey)&&!M.altKey&&M.key.toLowerCase()==="g"&&document.body.contains(B.container)){M.preventDefault(),e.gotoLine();return}if(M.altKey&&!M.ctrlKey&&!M.metaKey&&M.key.toLowerCase()==="z"&&document.body.contains(B.container)){M.preventDefault(),e.toggleWrap();return}(M.ctrlKey||M.metaKey)&&!M.altKey&&M.key.toLowerCase()==="f"&&document.body.contains(B.container)&&(M.preventDefault(),e.findInFile())});return()=>{F(),Y()}}},e.isDarkMode&&(e.aceOption.theme="nord_dark"),e.type=Je(Q),e.type=="pdf"){e.content="pdf";return}Ke(e.filePath,e.file)}e.isSourceAccessError=()=>["repo_not_found","token_expired","github_app_access_required","github_app_reconnect_required","repo_saml_enforcement","repo_access_limited"].includes(e.content),e.retryContent=()=>Qe();function Qe(){c++,v(),e.files=[],e.content=null,e.fileCounts=null,q++,I=new Set,j=!1,e.fileSearchQuery="",e.onFileSearchChange(),e.repoId=i.repoId,e.type="loading",e.filePath=i.path||"",e.paths=e.filePath.split("/");let U=e.repoId;X(function(se){if(e.filePath){rt();let te=[...new Set(e.paths.map((L,x)=>e.paths.slice(0,x).join("/")))];r.all(te.map(L=>e.getFiles(L,!0)));return}var Q=r.resolve();for(let te=0;te0?e.paths.slice(0,te).join("/"):"";Q=Q.then(function(){return e.getFiles(L)}).then(function(){if(e.type==="error")return r.reject("error")})}Q.then(function(){h||U!==e.repoId||(e.files.length==1&&e.files[0].name==""?(e.files=[],e.type="empty"):(O(),rt()))})})}Qe()},Yu=function(e,t,s,i,o){async function r(c){t.get(`/api/pr/${e.pullRequestId}/options`).then(m=>{if(e.options=m.data,e.options.url){window.location=e.options.url;return}c&&c(m.data)},m=>{e.type="error",e.content=m.data.error})}async function a(c){t.get(`/api/pr/${e.pullRequestId}/content`).then(m=>{e.details=m.data,e.tabState={active:m.data.diff?"diff":"comments"},c&&c(m.data)},m=>{e.type="error",e.content=m.data.error})}function u(){e.pullRequestId=i.pullRequestId,e.type="loading",r(c=>{a()})}u()},Xu=function(e,t,s,i,o){async function r(c){t.get(`/api/gist/${e.gistId}/options`).then(m=>{if(e.options=m.data,e.options.url){window.location=e.options.url;return}c&&c(m.data)},m=>{e.type="error",e.content=m.data.error})}async function a(c){t.get(`/api/gist/${e.gistId}/content`).then(m=>{e.details=m.data;let g=m.data&&m.data.files&&m.data.files.length;e.tabState={active:g?"files":"comments"},c&&c(m.data)},m=>{e.type="error",e.content=m.data.error})}function u(){e.gistId=i.gistId,e.type="loading",r(()=>{a()})}u()},Ju=function(e,t,s){e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.conferences=[],e.loading=!0,e.error="",e.search="";let i="conferences.filterPrefs",o={filters:{status:{ready:!0,expired:!1,removed:!1}},orderBy:"name"},r=loadFilterPrefs(i)||{};e.filters={status:Object.assign({},o.filters.status,r.filters&&r.filters.status||{})},e.orderBy=r.orderBy||o.orderBy,e.watch("orderBy",()=>{saveFilterPrefs(i,{filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(i,{filters:e.filters,orderBy:e.orderBy})},!0),e.removeConference=function(a){if(!a.removing&&confirm(`Are you sure that you want to remove the conference ${a.name}? All the repositories linked to this conference will expire.`)){a.removing=!0;let u=et({title:`Removing ${a.name}...`,date:new Date,body:`The conference ${a.name} is going to be removed.`});e.addToast(u),t.delete(`/api/conferences/${a.conferenceID}`).then(()=>{u.title=`${a.name} is removed.`,u.body=`The conference ${a.name} is removed.`,e.loadConferences()}).catch(()=>{u.title="Unable to remove conference",u.body="Please try again. The conference has not been removed."}).finally(()=>{a.removing=!1})}},e.loadConferences=()=>(e.loading=!0,e.error="",t.get("/api/conferences/").then(a=>{e.conferences=a.data||[]},a=>{e.error="Unable to load your conferences. Please try again."}).finally(()=>{e.loading=!1})),e.loadConferences(),e.conferenceFilter=a=>{if(e.filters.status[a.status]==!1)return!1;let u=e.search.trim().toLowerCase();return!!(!u||(a.name||"").toLowerCase().includes(u)||(a.conferenceID||"").toLowerCase().includes(u))}},fa=function(e,t,s,i){e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.plans=[],e.editionMode=!1,e.saving=!1,e.error="";function o(){return t.get("/api/conferences/"+i.conferenceId).then(g=>{e.options={...e.options,...g.data,billing:g.data.billing||{}},e.options.startDate=new Date(e.options.startDate),e.options.endDate=new Date(e.options.endDate)})}i.conferenceId&&(e.editionMode=!0,o());function r(){t.get("/api/conferences/plans").then(g=>{e.plans=g.data,e.plan=e.plans.filter(v=>v.id==e.options.plan.planID)[0]})}r();let a=new Date;a.setDate(1),a.setMonth(a.getMonth()+1);let u=new Date(a);u.setTime(a.getTime()+179*864e5),e.options={billing:{},startDate:a,endDate:u,plan:{planID:"free_conference"},options:{link:!0,image:!0,pdf:!0,notebook:!0,update:!0,page:!0}},e.plan=null,e.watch("options.plan.planID",()=>{e.plan=e.plans.filter(g=>g.id==e.options.plan.planID)[0]});function c(){e.conference.name.setValidity("required",!0),e.conference.conferenceID.setValidity("pattern",!0),e.conference.conferenceID.setValidity("required",!0),e.conference.conferenceID.setValidity("used",!0),e.conference.startDate.setValidity("required",!0),e.conference.startDate.setValidity("invalid",!0),e.conference.endDate.setValidity("required",!0),e.conference.endDate.setValidity("invalid",!0),e.conference.setValidity("error",!0)}function m(g){switch(g){case"conf_name_missing":e.conference.name.setValidity("required",!1);break;case"conf_id_missing":e.conference.conferenceID.setValidity("required",!1);break;case"conf_id_format":e.conference.conferenceID.setValidity("pattern",!1);break;case"conf_id_used":e.conference.conferenceID.setValidity("used",!1);break;case"conf_start_date_missing":e.conference.startDate.setValidity("required",!1);break;case"conf_end_date_missing":e.conference.endDate.setValidity("required",!1);break;case"conf_start_date_invalid":e.conference.startDate.setValidity("invalid",!1);break;case"conf_end_date_invalid":e.conference.endDate.setValidity("invalid",!1);break;default:e.conference.setValidity("error",!1);break}}e.submit=function(){if(e.saving)return;e.saving=!0,e.error="";let g=JSON.parse(JSON.stringify(e.options)),v=et({title:`Creating ${g.name}...`,date:new Date,body:`The conference ${g.conferenceID} is in creation.`});e.editionMode&&(v.title=`Updating ${g.name}...`,v.body=`The conference '${g.conferenceID}' is updating.`),e.addToast(v),c(),t.post("/api/conferences/"+(e.editionMode?g.conferenceID:""),g).then(()=>{e.editionMode?(v.title=`${g.name} updated`,v.body=`The conference '${g.conferenceID}' is updated.`):(v.title=`${g.name} created`,v.body=`The conference '${g.conferenceID}' is created.`),s.url("/conference/"+g.conferenceID)},h=>{m(h.data?.error),e.error="Unable to save the conference. Please correct any highlighted fields and try again.",e.removeToast(v)}).finally(()=>{e.saving=!1})}},Qu=function(e,t,s,i){Ei(e,t,()=>o(),{confirmedMessage:"Payment status checked. Your conference is ready for submissions once payment is confirmed."}),e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.conference=null,e.search="",e.filters={status:{ready:!0,expired:!1,removed:!1}},e.orderBy="-anonymizeDate",e.repoFiler=r=>{if(e.filters.status[r.status]==!1)return!1;let a=e.search.trim().toLowerCase();return!!(!a||(r.source?.fullName||"").toLowerCase().includes(a)||(r.repoId||"").toLowerCase().includes(a))};function o(){t.get("/api/conferences/"+i.conferenceId).then(r=>{e.conference=r.data})}o()},Zu=function(e,t){e.notificationEmail="",e.emailSaved=!1,e.saveNotificationEmail=async()=>{e.busy=!0,e.emailSaved=!1,e.connectionError="";try{let s=await t.post("/github/connections/email",{email:e.notificationEmail},{headers:{"X-CSRF-Token":e.connections.csrf}});e.notificationEmail=s.data.notificationEmail,e.user&&(e.user.notificationEmail=s.data.notificationEmail),e.emailSaved=!0}catch(s){e.connectionError=s.data?.error||"Unable to save email address."}finally{e.busy=!1}},e.connections=null,e.connectionError="",e.busy=!1,e.loadConnections=()=>t.get("/github/connections").then(s=>{e.connections=s.data,e.notificationEmail=s.data.notificationEmail||""}).catch(s=>{e.connectionError=s.data?.error||"Unable to load connections."}),e.changeConnection=async(s,i,o)=>{e.busy=!0,e.connectionError="";try{let r=await t.post("/github/connections/migrate",{type:s.type,id:s.id,connection:i,preview:o},{headers:{"X-CSRF-Token":e.connections.csrf}});o?s.eligible=r.data.eligible:await e.loadConnections()}catch(r){e.connectionError=r.data?.error||"Unable to change connection."}finally{e.busy=!1}},e.disconnectOAuth=async()=>{e.busy=!0;try{await t.post("/github/connections/disconnect-oauth",{},{headers:{"X-CSRF-Token":e.connections.csrf}}),await e.loadConnections()}catch(s){e.connectionError=s.data?.error||"Unable to disconnect OAuth."}finally{e.busy=!1}},e.loadConnections()},xu=function(e,t){e.accountRecovery=!1,t.get("/github/account-recovery").then(s=>{e.accountRecovery=s.data.required}).catch(()=>{})};var ec=function(e,t,s){let i=At(),o=vn();e.Math=Math,e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.repositories=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.totalSize=0,e.selected={},e.allSelected=!1;let r=w=>{if(w.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){w.preventDefault();let b=document.querySelector('.admin-filter-toolbar input[type="search"]');b&&b.focus()}};o(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=w=>{w==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[w]="",e.query.page=1},e.chips=[];let a=()=>{let w=[];e.query.owner&&w.push({key:"owner",label:"Owner",value:e.query.owner}),e.query.conference&&w.push({key:"conference",label:"Conference",value:e.query.conference}),e.chips=w};e.showStatusMessage=w=>{let b=w.statusMessage||"(no message)";window.prompt(`Status message for ${w.repoId} (${w.status}):`,b)},e.fetchGithubInfo=w=>{let b=window.open("","_blank");b&&b.document.write("
Loading GitHub info for "+w.repoId+"...
"),t.get("/api/admin/repos/"+w.repoId+"/github").then(E=>{b&&(b.document.open(),b.document.write('
'+JSON.stringify(E.data,null,2).replace(/[<>]/g,N=>N==="<"?"<":">")+"
"),b.document.close())},E=>{let N=E&&E.data?JSON.stringify(E.data,null,2):String(E);b&&(b.document.body.innerHTML='
'+N+"
")})},e.statusCountFor=w=>{let b=(e.statusCounts||[]).find(E=>E._id===w);return b?b.count:0},e.statusStorageFor=w=>{let b=(e.statusCounts||[]).find(E=>E._id===w);return b?b.storage:0},e.isErrorsOnly=()=>e.query&&e.query.error&&!e.query.ready&&!e.query.preparing&&!e.query.expired&&!e.query.removed,e.toggleErrorsOnly=()=>{e.isErrorsOnly()?Object.assign(e.query,{ready:!1,preparing:!0,expired:!1,removed:!1,error:!0}):Object.assign(e.query,{ready:!1,preparing:!1,expired:!1,removed:!1,error:!0}),e.query.page=1},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=w=>{e.query.sort===w?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=w,e.query.direction="desc"),e.query.page=1},e.sortIcon=w=>e.query.sort===w?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let u="admin.repos.filterPrefs",c={page:1,limit:25,sort:"lastView",direction:"desc",search:"",owner:"",conference:"",dateFrom:"",dateTo:"",ready:!0,expired:!0,removed:!1,error:!0,preparing:!0},m=loadFilterPrefs(u)||{};e.query=Object.assign({},c,m,{page:1,search:""});let g=s.search();g.owner&&(e.query.owner=g.owner),g.conference&&(e.query.conference=g.conference),g.search&&(e.query.search=g.search);let v="admin.repos.presets";e.presets=JSON.parse(localStorage.getItem(v)||"[]"),e.savePreset=()=>{let w=window.prompt("Preset name:");if(!w)return;let b=Object.assign({},e.query);delete b.page,e.presets=(e.presets||[]).filter(E=>E.name!==w),e.presets.push({name:w,query:b}),localStorage.setItem(v,JSON.stringify(e.presets))},e.applyPreset=w=>{Object.assign(e.query,w.query,{page:1})},e.deletePreset=w=>{e.presets=(e.presets||[]).filter(b=>b.name!==w.name),localStorage.setItem(v,JSON.stringify(e.presets))},e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.repositories.forEach(w=>{e.selected[w.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(w=>e.selected[w.repoId]),e.bulkRefresh=()=>{let w=e.selectedRepos();w.length&&confirm(`Force refresh ${w.length} repositories?`)&&w.forEach(b=>e.updateRepository(b))},e.bulkRemoveCache=()=>{let w=e.selectedRepos();w.length&&confirm(`Purge cache for ${w.length} repositories?`)&&w.forEach(b=>e.removeCache(b))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let w=new URLSearchParams(Object.entries(e.query).filter(([,b])=>b!==""&&b!==!1&&b!=null));w.set("format","csv"),w.set("limit","10000"),window.open("/api/admin/repos?"+w.toString(),"_blank")},e.removeCache=w=>{confirm("Remove cached files for "+w.repoId+"?")&&t.delete("/api/admin/repos/"+w.repoId).then(()=>h(),b=>console.error(b))},e.removeRepository=w=>{confirm("Remove repository "+w.repoId+"?")&&t.delete("/api/repo/"+w.repoId+"/").then(()=>h(),b=>console.error(b))},e.updateRepository=w=>{let b=et({title:`Refreshing ${w.repoId}...`,date:new Date,body:`The repository ${w.repoId} is going to be refreshed.`});e.toasts.push(b),t.post(`/api/repo/${w.repoId}/refresh`).then(E=>{E.data.status=="ready"?b.title=`${w.repoId} is refreshed.`:b.title=`Refreshing of ${w.repoId}.`},E=>{b.title=`Error during the refresh of ${w.repoId}.`,b.body=E.body})},e.filtersOpen=!1,e.fetchError=null;function h(){e.fetchError=null,t.get("/api/admin/repos",{params:e.query}).then(w=>{e.total=w.data.total,e.totalPage=Math.ceil(w.data.total/e.query.limit),e.repositories=w.data.results,e.allSelected=!1},w=>{e.fetchError=w&&w.data&&w.data.error||"Failed to load repositories",console.error(w)})}function k(){let w=Object.assign({},e.query,{page:1,limit:1,ready:!0,expired:!0,removed:!0,error:!0,preparing:!0});t.get("/api/admin/repos",{params:w}).then(b=>{e.statusCounts=b.data.statusCounts||[],e.totalSize=b.data.totalSize||0},()=>{})}e.showAllStatuses=()=>Object.assign(e.query,{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0,page:1}),h(),k();let A=null;e.watch("query",()=>{i.timeout.cancel(A),A=i.timeout(()=>{h(),k()},500);let{page:w,search:b,...E}=e.query;saveFilterPrefs(u,E),a()},!0),a()},tc=function(e,t,s){let i=At(),o=vn();e.Math=Math,e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.users=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.selected={},e.allSelected=!1;let r=h=>{if(h.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){h.preventDefault();let k=document.querySelector('.admin-filter-toolbar input[type="search"]');k&&k.focus()}};o(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=h=>{h==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[h]="",e.query.page=1},e.chips=[];let a=()=>{let h=[];e.query.role&&h.push({key:"role",label:"Role",value:e.query.role}),e.chips=h};e.statusCountFor=h=>{let k=(e.statusCounts||[]).find(A=>A._id===h);return k?k.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=h=>{e.query.sort===h?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=h,e.query.direction="desc"),e.query.page=1},e.sortIcon=h=>e.query.sort===h?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let u="admin.users.filterPrefs",c={page:1,limit:25,sort:"username",direction:"asc",search:"",status:"",role:"",dateFrom:"",dateTo:""},m=loadFilterPrefs(u)||{};e.query=Object.assign({},c,m,{page:1,search:""}),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.users.forEach(h=>{e.selected[h.username]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedUsers=()=>e.users.filter(h=>e.selected[h.username]),e.banUser=h=>{confirm(`Ban user ${h.username}?`)&&t.post(`/api/admin/users/${h.username}/ban`).then(g,k=>console.error(k))},e.activateUser=h=>{t.post(`/api/admin/users/${h.username}/activate`).then(g,k=>console.error(k))},e.bulkBan=()=>{let h=e.selectedUsers();h.length&&confirm(`Ban ${h.length} users?`)&&h.forEach(k=>e.banUser(k))},e.exportCsv=()=>{let h=new URLSearchParams(Object.entries(e.query).filter(([,k])=>k!==""&&k!==!1&&k!=null));h.set("format","csv"),h.set("limit","10000"),window.open("/api/admin/users?"+h.toString(),"_blank")},e.fetchError=null;function g(){e.fetchError=null,t.get("/api/admin/users",{params:e.query}).then(h=>{e.total=h.data.total,e.totalPage=Math.ceil(h.data.total/e.query.limit),e.users=h.data.results,e.statusCounts=h.data.statusCounts||[],e.allSelected=!1},h=>{e.fetchError=h&&h.data&&h.data.error||"Failed to load users",console.error(h)})}g();let v=null;e.watch("query",()=>{i.timeout.cancel(v),v=i.timeout(g,500);let{page:h,search:k,...A}=e.query;saveFilterPrefs(u,A),a()},!0),a()},nc=function(e,t,s,i){let o=At();e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.userInfo,e.repositories=[],e.search="",e.selected={},e.allSelected=!1;let r="admin.user.filterPrefs",a={filters:{status:{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0}},sort:"anonymizeDate",direction:"desc"},u=loadFilterPrefs(r)||{};e.filters={status:Object.assign({},a.filters.status,u.filters&&u.filters.status||{})},e.query={sort:u.sort||a.sort,direction:u.direction||a.direction},e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort,e.sortBy=h=>{e.query.sort===h?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=h,e.query.direction="desc"),e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort},e.sortIcon=h=>e.query.sort===h?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"",e.watch("query",()=>{saveFilterPrefs(r,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.watch("filters",()=>{saveFilterPrefs(r,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.statusCountFor=h=>(e.repositories||[]).filter(k=>k.status===h).length,e.repoFiler=h=>e.filters.status[h.status]==!1?!1:!!(e.search.trim().length==0||h.source.fullName.indexOf(e.search)>-1||h.repoId.indexOf(e.search)>-1||h.statusMessage&&h.statusMessage.indexOf(e.search)>-1||h.conference&&h.conference.indexOf(e.search)>-1),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,(e.filteredRepositories||e.repositories).forEach(h=>{e.selected[h.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(h=>e.selected[h.repoId]),e.bulkRefresh=()=>{let h=e.selectedRepos();h.length&&confirm(`Force refresh ${h.length} repositories?`)&&h.forEach(k=>e.updateRepository(k))},e.bulkRemoveCache=()=>{let h=e.selectedRepos();h.length&&confirm(`Purge cache for ${h.length} repositories?`)&&h.forEach(k=>e.removeCache(k))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let h=e.filteredRepositories||e.repositories,A=["repoId","status","statusMessage","pageView","anonymizeDate","source.fullName","conference","size.storage"].join(","),w=h.map(N=>[N.repoId,N.status,N.statusMessage||"",N.pageView||0,N.anonymizeDate||"",N.source&&N.source.fullName||"",N.conference||"",N.size&&N.size.storage||0].map(O=>{let q=String(O??"");return/[",\n\r]/.test(q)?'"'+q.replace(/"/g,'""')+'"':q}).join(",")),b=new Blob([A+` +`+w.join(` +`)],{type:"text/csv"}),E=document.createElement("a");E.href=URL.createObjectURL(b),E.download=i.username+"-repositories.csv",E.click()},e.showStatusMessage=h=>{let k=h.statusMessage||"(no message)";window.prompt(`Status message for ${h.repoId} (${h.status}):`,k)},e.fetchGithubInfo=h=>{let k=window.open("","_blank");k&&k.document.write("
Loading GitHub info for "+h.repoId+"...
"),t.get("/api/admin/repos/"+h.repoId+"/github").then(A=>{k&&(k.document.open(),k.document.write('
'+JSON.stringify(A.data,null,2).replace(/[<>]/g,w=>w==="<"?"<":">")+"
"),k.document.close())},A=>{let w=A&&A.data?JSON.stringify(A.data,null,2):String(A);k&&(k.document.body.innerHTML='
'+w+"
")})};function c(h){t.get("/api/admin/users/"+h+"/repos",{}).then(k=>{e.repositories=k.data},k=>{console.error(k)})}function m(h){t.get("/api/admin/users/"+h,{}).then(k=>{e.userInfo=k.data},k=>{console.error(k)})}m(i.username),c(i.username),e.banUser=()=>{confirm(`Ban user ${i.username}?`)&&t.post(`/api/admin/users/${i.username}/ban`).then(()=>m(i.username),h=>console.error(h))},e.activateUser=()=>{t.post(`/api/admin/users/${i.username}/activate`).then(()=>m(i.username),h=>console.error(h))},e.promoteUser=()=>{confirm(`Promote ${i.username} to admin?`)&&t.post(`/api/admin/users/${i.username}/promote`).then(()=>m(i.username),h=>console.error(h))},e.demoteUser=()=>{confirm(`Remove admin privileges from ${i.username}?`)&&t.post(`/api/admin/users/${i.username}/demote`).then(()=>m(i.username),h=>console.error(h))},e.tokens=[],e.tokenForm={name:"",plaintext:null};function g(){t.get("/api/admin/tokens").then(h=>{e.tokens=h.data||[]},h=>{h.status!==401&&h.status!==403&&console.error(h)})}g(),e.createToken=()=>{e.tokenForm.name&&t.post("/api/admin/tokens",{name:e.tokenForm.name}).then(h=>{e.tokenForm.plaintext=h.data.token,e.tokenForm.name="",g()},h=>console.error(h))},e.revokeToken=h=>{confirm(`Revoke token "${h.name}"?`)&&t.delete("/api/admin/tokens/"+h.id).then(()=>g(),k=>console.error(k))},e.removeCache=h=>{confirm("Remove cached files for "+h.repoId+"?")&&t.delete("/api/admin/repos/"+h.repoId).then(()=>c(i.username),k=>console.error(k))},e.removeRepository=h=>{confirm("Remove repository "+h.repoId+"?")&&t.delete("/api/repo/"+h.repoId+"/").then(()=>c(i.username),k=>console.error(k))},e.updateRepository=h=>{let k=et({title:`Refreshing ${h.repoId}...`,date:new Date,body:`The repository ${h.repoId} is going to be refreshed.`});e.toasts.push(k),t.post(`/api/repo/${h.repoId}/refresh`).then(A=>{A.data.status=="ready"?k.title=`${h.repoId} is refreshed.`:k.title=`Refreshing of ${h.repoId}.`},A=>{k.title=`Error during the refresh of ${h.repoId}.`,k.body=A.body})},e.getGitHubRepositories=h=>{t.get(`/api/user/${e.userInfo.username}/all_repositories`,{params:{force:"1"}}).then(k=>{e.userInfo.repositories=k.data})};let v=null;e.watch("query",()=>{o.timeout.cancel(v),v=o.timeout(()=>{c(i.username)},500)},!0)},sc=function(e,t,s){let i=At(),o=vn();e.Math=Math,e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.conferences=[],e.total=-1,e.totalPage=0,e.statusCounts=[];let r=A=>{if(A.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){A.preventDefault();let w=document.querySelector('.admin-filter-toolbar input[type="search"]');w&&w.focus()}};o(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=A=>{A==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[A]="",e.query.page=1},e.chips=[];let a=()=>{let A=[];(e.query.dateFrom||e.query.dateTo)&&A.push({key:"dateRange",label:"Date",value:(e.query.dateFrom||"\u2026")+" \u2013 "+(e.query.dateTo||"\u2026")}),e.chips=A};e.statusCountFor=A=>{let w=(e.statusCounts||[]).find(b=>b._id===A);return w?w.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=A=>{e.query.sort===A?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=A,e.query.direction="desc"),e.query.page=1},e.sortIcon=A=>e.query.sort===A?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let u="admin.conferences.filterPrefs",c={page:1,limit:25,sort:"name",direction:"asc",search:"",dateFrom:"",dateTo:"",ready:!0,expired:!0,removed:!1,error:!0,preparing:!0},m=loadFilterPrefs(u)||{};e.query=Object.assign({},c,m,{page:1,search:""});let g=s.search();g.search&&(e.query.search=g.search);let v="admin.conferences.presets";e.presets=JSON.parse(localStorage.getItem(v)||"[]"),e.savePreset=()=>{let A=window.prompt("Preset name:");if(!A)return;let w=Object.assign({},e.query);delete w.page,e.presets=(e.presets||[]).filter(b=>b.name!==A),e.presets.push({name:A,query:w}),localStorage.setItem(v,JSON.stringify(e.presets))},e.applyPreset=A=>{Object.assign(e.query,A.query,{page:1})},e.deletePreset=A=>{e.presets=(e.presets||[]).filter(w=>w.name!==A.name),localStorage.setItem(v,JSON.stringify(e.presets))},e.removeConference=A=>{confirm("Remove conference "+A.conferenceID+"?")&&t.delete("/api/admin/conferences/"+A.conferenceID).then(()=>h(),w=>console.error(w))},e.exportCsv=()=>{let A=new URLSearchParams(Object.entries(e.query).filter(([,w])=>w!==""&&w!==!1&&w!=null));A.set("format","csv"),A.set("limit","10000"),window.open("/api/admin/conferences?"+A.toString(),"_blank")},e.fetchError=null;function h(){e.fetchError=null,t.get("/api/admin/conferences",{params:e.query}).then(A=>{e.total=A.data.total,e.totalPage=Math.ceil(A.data.total/e.query.limit),e.conferences=A.data.results,e.statusCounts=A.data.statusCounts||[]},A=>{e.fetchError=A&&A.data&&A.data.error||"Failed to load conferences",console.error(A)})}h();let k=null;e.watch("query",()=>{i.timeout.cancel(k),k=i.timeout(h,500);let{page:A,search:w,...b}=e.query;saveFilterPrefs(u,b),a()},!0),a()},oc=function(e,t,s,i,o){let r=At();e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.queueList=[],e.jobs=[],e.selectedQueue="download",e.selectedStats=null,e.range="1h",e.allStates=["active","waiting","delayed","failed","completed"],e.stateFilter={active:!0,waiting:!0,delayed:!0,failed:!0,completed:!0},e.query={search:"",autoRefresh:!0},e.filteredJobs=()=>(e.jobs||[]).filter(w=>e.stateFilter[w._state]),e.jobProgressPct=w=>w&&w.progress&&typeof w.progress=="object"&&typeof w.progress.percent=="number"?Math.max(0,Math.min(100,Math.round(w.progress.percent))):typeof w.progress=="number"?Math.max(0,Math.min(100,Math.round(w.progress))):null,e.jobDuration=w=>{if(!w.processedOn)return"-";let E=(w.finishedOn||Date.now())-w.processedOn;return E<1e3?E+"ms":(E/1e3).toFixed(1)+"s"},e.metricsPoints=[],e.selectQueue=w=>{e.selectedQueue=w,a(),u()},e.setRange=w=>{e.range=w,u()};function a(){let w={queue:e.selectedQueue,search:e.query.search};t.get("/api/admin/queues",{params:w}).then(b=>{e.queueList=b.data.queues||[],e.jobs=b.data.jobs||[],e.selectedStats=e.queueList.find(E=>E.key===e.selectedQueue)||e.queueList[0]||null},b=>console.error(b))}function u(){t.get("/api/admin/queues/metrics",{params:{queue:e.selectedQueue,range:e.range}}).then(w=>{e.metricsPoints=w.data.points||[],o(h,0)},w=>console.error(w))}a(),u();let c=i(()=>{e.query.autoRefresh&&(a(),u())},15e3);e.on("dispose",()=>i.cancel(c)),e.refreshNow=function(){a(),u()};function m(w){let b=w&&w.data&&(w.data.message||w.data.error)||"Request failed";e.actionError=b,o(()=>{e.actionError=null},5e3),console.error(w)}e.actionError=null,e.removeJob=w=>{t.delete(`/api/admin/queue/${e.selectedQueue}/${w.id}`).then(a,m)},e.retryJob=w=>{t.post(`/api/admin/queue/${e.selectedQueue}/${w.id}`).then(a,m)},e.retryFailed=()=>{confirm(`Retry all failed jobs in ${e.selectedQueue}?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/retry-failed`).then(a,w=>console.error(w))},e.drainSelected=()=>{confirm(`Drain the ${e.selectedQueue} queue?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/drain`).then(a,w=>console.error(w))},e.togglePause=()=>{let w=e.selectedStats&&e.selectedStats.paused?"resume":"pause";t.post(`/api/admin/queue/${e.selectedQueue}/${w}`).then(a,b=>console.error(b))},e.emptyQueue=()=>{confirm(`Empty the ${e.selectedQueue} queue? This removes ALL jobs.`)&&t.post(`/api/admin/queue/${e.selectedQueue}/empty`).then(a,w=>console.error(w))},e.pauseAll=()=>{confirm("Pause all queues?")&&t.post("/api/admin/queues/pause-all").then(a,w=>console.error(w))};let g=null;e.watch("query.search",()=>{r.timeout.cancel(g),g=r.timeout(a,350)}),e.expanded={},e.toggleJob=w=>{e.expanded[w.id]=!e.expanded[w.id]},e.humanTime=w=>{if(!w)return"";let b=new Date(w);return b.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})+" "+b.toLocaleDateString([],{month:"short",day:"numeric"})},e.delayCountdown=w=>{if(!w)return"";var b=Math.max(0,Math.ceil((w-Date.now())/1e3));if(b<=0)return"resuming soon";var E=Math.floor(b/60),N=b%60;return"in "+(E>0?E+"m "+N+"s":N+"s")};function v(w){if(w<=0)return{ticks:[0],niceMax:1};let b=Math.pow(10,Math.floor(Math.log10(w))),E=b;w/E<2?E=b/2:w/E>5&&(E=b*2);let N=Math.ceil(w/E)*E,O=[];for(let q=0;q<=N;q+=E)O.push(q);return{ticks:O,niceMax:N}}function h(){var w=document.getElementById("q-throughput-chart");if(!w)return;var b=w.getContext("2d"),E=window.devicePixelRatio||1,N=w.parentElement.getBoundingClientRect(),O=44,q=50,I=20,j=N.width-40,de=180,ie=j-O-q,D=de-I;w.width=j*E,w.height=de*E,w.style.width=j+"px",w.style.height=de+"px",b.setTransform(E,0,0,E,0,0);var X=document.body.classList.contains("dark-mode"),le="#8A857C",Ee=X?"rgba(255,255,255,0.06)":"rgba(0,0,0,0.06)",re=X?"#6FBF8A":"#2F7D4F",me=X?"rgba(111,191,138,0.12)":"rgba(47,125,79,0.08)",ke=X?"#F08A82":"#B42318",_e=X?"rgba(240,138,130,0.08)":"rgba(180,35,24,0.06)",Ne=X?"#F5C842":"#B8860B",Re=e.metricsPoints||[];if(Re.length===0){b.fillStyle=le,b.font="13px Inter, system-ui, sans-serif",b.textAlign="center",b.fillText("No metrics data yet",j/2,de/2),k=null;return}var Je=Re.map(function(M){return M.completed}),Ke=Re.map(function(M){return M.failed}),rt=Re.map(function(M){return M.avgMs});if(!Je.some(Boolean)&&!Ke.some(Boolean)){b.strokeStyle=X?"rgba(255,255,255,0.14)":"rgba(0,0,0,0.12)",b.beginPath(),b.moveTo(0,de-18.5),b.lineTo(j,de-18.5),b.stroke(),b.fillStyle=X?"#CFC8BD":"#4F4A42",b.font="500 14px Inter, system-ui, sans-serif",b.textAlign="center",b.fillText("No jobs processed in this window",j/2,de/2-6),b.fillStyle=le,b.font="12.5px Inter, system-ui, sans-serif",b.fillText("Completed and failed jobs will chart here",j/2,de/2+16),k=null;return}var Qe=Re.length,U=ie/(Qe-1||1),se=Math.max(1,Math.max.apply(null,Je),Math.max.apply(null,Ke)),Q=v(se),te=Math.max.apply(null,rt),L=te>0?v(te):{ticks:[0],niceMax:1},x=function(M){return D-M/Q.niceMax*(D-10)},B=function(M){return D-M/L.niceMax*(D-10)},ue=function(M){return O+M*U};b.textAlign="right",b.textBaseline="middle",b.font="10px monospace",Q.ticks.forEach(function(M){var H=x(M);b.strokeStyle=Ee,b.lineWidth=1,b.beginPath(),b.moveTo(O,H),b.lineTo(j-q,H),b.stroke(),b.fillStyle=le,b.fillText(M>=1e3?(M/1e3).toFixed(1)+"k":String(M),O-6,H)}),te>0&&(b.textAlign="left",L.ticks.forEach(function(M){var H=B(M);b.fillStyle=Ne,b.fillText(M>=1e3?(M/1e3).toFixed(1)+"s":M+"ms",j-q+6,H)}));var we=Date.now(),Pe=Math.min(6,Qe);b.textAlign="center",b.textBaseline="top";for(var C=0;C0&&(b.beginPath(),rt.forEach(function(M,H){var ee=ue(H),K=B(M);if(H===0)b.moveTo(ee,K);else{var he=(ue(H-1)+ee)/2;b.bezierCurveTo(he,B(rt[H-1]),he,K,ee,K)}}),b.strokeStyle=Ne,b.lineWidth=1,b.setLineDash([4,3]),b.stroke(),b.setLineDash([])),k={pts:Re,maxLen:Qe,marginLeft:O,step:U,totalW:j,toX:ue}}var k=null;function A(){var w=document.getElementById("q-throughput-chart");if(!(!w||w._tipBound)){w._tipBound=!0;var b=document.getElementById("q-chart-tooltip"),E=document.getElementById("q-chart-crosshair");w.addEventListener("mousemove",function(N){if(!(!k||!b||!E)){var O=k,q=w.getBoundingClientRect(),I=N.clientX-q.left,j=Math.round((I-O.marginLeft)/O.step);if(j<0||j>=O.maxLen){b.style.display="none",E.style.display="none";return}var de=O.pts[j],ie=Date.now(),D=Math.round((ie-de.ts)/6e4),X;if(D<=0)X="now";else if(D<60)X=D+"m ago";else if(D<1440){var le=Math.floor(D/60),Ee=D%60;X=le+"h"+(Ee?" "+Ee+"m":"")+" ago"}else X=Math.round(D/1440)+"d ago";var re='
'+X+'
● completed: '+de.completed+'/min
● failed: '+de.failed+"/min
";if(de.avgMs>0){var me=de.avgMs>=1e3?(de.avgMs/1e3).toFixed(1)+"s":de.avgMs+"ms";re+='
● avg time: '+me+"
"}b.innerHTML=re;var ke=O.toX(j),_e=b.offsetWidth,Ne=ke+10;Ne+_e>O.totalW&&(Ne=ke-_e-10),b.style.display="block",b.style.left=Ne+"px",b.style.top="8px",E.style.display="block",E.style.left=ke+"px"}}),w.addEventListener("mouseleave",function(){b&&(b.style.display="none"),E&&(E.style.display="none")})}}e.watch("metricsPoints",function(){o(A,50)})},ic=function(e,t,s,i){let o=At();e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.entries=[],e.visible=[],e.available=!0,e.cap=1e3,e.total=0,e.pageSize=250,e.expanded={},e.detailTab={},e.copyHint="",e.parsedFilterCount=0,e.stats={last24h:0,prev24h:0,delta:0,severity:{error:0,warn:0,info:0},unique:{error:0,warn:0,info:0},buckets:[],dropped:0},e.query={search:"",bucket:"",sort:"recent",group:"code",autoRefresh:!0},e.relTime=E=>{if(!E)return"";let N=new Date(E).getTime();if(isNaN(N))return E;let O=Math.max(0,Date.now()-N),q=Math.floor(O/1e3);if(q<5)return"just now";if(q<60)return`${q}s ago`;let I=Math.floor(q/60);if(I<60)return`${I}m ago`;let j=Math.floor(I/60);if(j<24)return`${j}h ago`;let de=Math.floor(j/24);return de<7?`${de}d ago`:new Date(E).toLocaleDateString()},e.absTime=E=>{if(!E)return"";let N=new Date(E);return isNaN(N.getTime())?E:N.toLocaleString()},e.absTimeShort=E=>{if(!E)return"";let N=new Date(E);return isNaN(N.getTime())?E:N.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})};let r=/^[a-zA-Z][a-zA-Z0-9]*(?:_[a-zA-Z0-9]+)+$/;function a(E,N){let O=E&&(E.httpStatus||E.status)||null;if(typeof O=="number"){if(O>=500)return"error";if(O===401||O===403||O===404)return"info";if(O>=400)return"warn"}return N==="error"?"error":N==="warn"?"warn":"info"}function u(E){let N=(E.raw||[]).find(j=>j&&typeof j=="object"&&!Array.isArray(j));if(N){N.message&&r.test(N.message)?(E.displayMessage=N.message,E.displayContext=E.message):N.code&&r.test(String(N.code))?(E.displayMessage=String(N.code),E.displayContext=E.message):N.name&&N.name!=="AnonymousError"&&N.name!=="Error"?(E.displayMessage=N.name,E.displayContext=N.message||E.message):E.displayMessage=E.message,E._status=N.httpStatus||N.status||null,E._url=N.url||null,E._method=N.method||null,E._repoId=N.repoId||N.detail||null,E._detail=N.detail&&N.detail!==E._repoId?N.detail:null;let j=typeof N.stack=="string"?N.stack:null;for(var O=[N.cause,N.err].filter(Boolean),q=0;!j&&q{D==null||D===""||O.push([ie,D])};q("name",N&&N.name),q("code",E.displayMessage||N&&N.message),E._bucket&&q("kind",E._bucket),q("httpStatus",N&&N.httpStatus),N&&N.status&&!N.httpStatus&&q("status",N.status),q("module",E.module);let I=N&&N.detail;if(typeof I=="string"){let ie=I.trim();if(ie[0]==="{"||ie[0]==="[")try{I=JSON.parse(I)}catch{}}if(q("detail",I),q("repoId",N&&N.repoId),q("filePath",N&&N.filePath),q("upstreamStatus",N&&N.upstreamStatus),q("upstreamBody",N&&N.upstreamBody),q("url",E._url),q("err",N&&N.err),q("cause",N&&!N.err&&N.cause),q("ts",E.ts),!O.length)return JSON.stringify(E,null,2);let j=O.reduce((ie,D)=>Math.max(ie,D[0].length),0),de=["{"];return O.forEach(([ie,D],X)=>{let Ee=` ${`"${ie}":`.padEnd(j+3," ")} `,re=XNe===0?_e:ke+_e).join(` +`)}else typeof D=="number"||typeof D=="boolean"?me=String(D):me=JSON.stringify(D);de.push(`${Ee}${me}${re}`)}),de.push("}"),de.join(` +`)}function m(E){let N=[],O="",q=/(\w+):(>=|<=|!=|>|<|=)?([^\s]+)/g,I=0,j;for(;j=q.exec(E);)O+=E.slice(I,j.index),I=q.lastIndex,N.push({key:j[1],op:j[2]||"=",val:j[3]});return O+=E.slice(I),{filters:N,free:O.trim().toLowerCase()}}function g(E,N){for(let O of N.filters){let q=(j,de,ie)=>{let D=parseFloat(j),X=parseFloat(de);return ie==="="?String(j)===String(de):ie==="!="?String(j)!==String(de):ie===">="?D>=X:ie==="<="?D<=X:ie===">"?D>X:ie==="<"?DN&&ie._bucket!==N?!1:g(ie,E)),q=e.query.group;if(q){let ie=le=>q==="module"?le.module:le.displayMessage||le.message||"_",D=new Map;for(let le of O){let Ee=ie(le);if(D.has(Ee)){let re=D.get(Ee);re.count++,re._related.push(le),new Date(le.ts)>new Date(re.ts)&&(re.ts=le.ts,re._url=le._url,re._status=le._status),new Date(le.ts)new Date(Ee.ts).getTime()>=X).length;O=Array.from(D.values())}else O=O.map((ie,D)=>(ie._key="row:"+D+":"+ie.ts,ie._related=[ie],ie._firstSeen=ie.ts,ie._lastHourCount=0,ie.count=1,ie));let I=ie=>({error:0,warn:1,info:2})[ie._bucket]??1;e.query.sort==="count"?O.sort((ie,D)=>I(ie)-I(D)||D.count-ie.count||new Date(D.ts)-new Date(ie.ts)):O.sort((ie,D)=>I(ie)-I(D)||new Date(D.ts)-new Date(ie.ts)),e.visible=O;let j=!!(e.query.bucket||(e.query.search||"").trim()),de=!j&&(e.stats?.severity?.error||0)>0&&!O.some(ie=>ie._bucket==="error")&&e.entries.length<1500;(j&&!O.length||de)&&e.canLoadMore?.()&&!e._autoLoading&&e.entries.length<2500&&(e._autoLoading=!0,h(!0))}function h(E){let N=E?e.entries.length:0,O=E?e.pageSize:Math.max(e.pageSize,e.entries.length||e.pageSize);t.get("/api/admin/errors",{params:{offset:N,limit:O}}).then(q=>{let I=(q.data.entries||[]).map(u);e.entries=E?e.entries.concat(I):I,e.available=!!q.data.available,e.cap=q.data.max||e.cap,e.total=q.data.total||e.entries.length,e._autoLoading=!1,v()},q=>{e._autoLoading=!1,console.error(q)})}e.loadMore=()=>h(!0),e.canLoadMore=()=>e.entries.length{let N=E.data||{},O=N.prev24h?Math.round((N.last24h-N.prev24h)/N.prev24h*100):0;e.stats={last24h:N.last24h||0,prev24h:N.prev24h||0,delta:O,severity:N.severity||{error:0,warn:0,info:0},unique:N.unique||{error:0,warn:0,info:0},buckets:N.buckets||[],dropped:N.dropped||0},v()},E=>console.error(E))}function A(){h(),k()}e.barPx=(E,N)=>{let O=e.stats.buckets||[],q=0,I=0;for(let D of O)q=Math.max(q,(D.error||0)+(D.warn||0)),I=Math.max(I,D.info||0);let j=E[N]||0;if(!j)return 0;if(N==="info")return I?Math.max(2,Math.round(j/I*(q?16:60))):0;let de=(E.error||0)+(E.warn||0),ie=Math.round(de/q*44);return Math.max(4,Math.round(j/de*ie))},e.bucketTitle=E=>`${new Date(E.hour).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})} \xB7 ${E.error||0} err \xB7 ${E.warn||0} warn \xB7 ${E.info||0} info`,e.toggle=E=>{e.expanded[E._key]=!e.expanded[E._key]},e.setBucket=E=>{e.query.bucket=E},e.refreshNow=A,e.clearAll=()=>{confirm("Clear all captured errors?")&&t.delete("/api/admin/errors").then(A,E=>console.error(E))},e.exportCsv=()=>{let E=["ts","level","module","displayMessage","_status","_url","_repoId"],N=[E.join(",")];for(let j of e.visible)N.push(E.map(de=>{let ie=j[de]==null?"":String(j[de]);return/[",\n]/.test(ie)?`"${ie.replace(/"/g,'""')}"`:ie}).join(","));let O=new Blob([N.join(` +`)],{type:"text/csv;charset=utf-8"}),q=URL.createObjectURL(O),I=document.createElement("a");I.href=q,I.download=`errors-${new Date().toISOString().slice(0,19)}.csv`,document.body.appendChild(I),I.click(),document.body.removeChild(I),URL.revokeObjectURL(q)};function w(E){e.copyHint=`${E} copied`,o.timeout(()=>{e.copyHint=""},1500)}e.copyJson=E=>{navigator.clipboard.writeText(E._detailJson).then(()=>w("JSON"))},e.copyCurl=E=>{if(!E._url)return;let O=`curl -X ${E._method||"GET"} '${window.location.origin}${E._url}'`;navigator.clipboard.writeText(O).then(()=>w("curl"))},A();let b=i(()=>{e.query.autoRefresh&&A()},15e3);e.on("dispose",()=>i.cancel(b)),e.watch("query.search",v),e.watch("query.bucket",v),e.watch("query.sort",v),e.watch("query.group",v)},rc=function(e,t,s,i){if(e.Math=Math,e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null){s.url("/");return}e.data=null,e.loading=!0,e.error=null,e.performance=null,e.performanceMinutes=15,e.performanceTab="routes",e.cacheReport=null,e.cacheError=null,e.cacheMinutes=60,e.cacheTraffic="all",e.ovView=["performance","cache"].includes((window.location.hash||"").slice(1))?window.location.hash.slice(1):"summary",e.setOvView=function(b){e.ovView=b;try{window.history.replaceState(null,"",b==="summary"?window.location.pathname:"#"+b)}catch{}};var o=!1;e.loadCache=function(){if(!o){o=!0;var b=e.cacheMinutes;t.get("/api/admin/cache",{params:{minutes:b}}).then(function(E){b===e.cacheMinutes&&(e.cacheReport=E.data,e.cacheError=E.data.available?null:E.data.reason||"Cache monitoring is unavailable.")},function(){e.cacheError="Could not refresh cache monitoring. Displayed values may be stale."}).finally(function(){o=!1,b!==e.cacheMinutes&&e.loadCache()})}},e.cacheRows=function(){return(e.cacheReport?.rows||[]).filter(function(b){return e.cacheTraffic==="all"||b.traffic===e.cacheTraffic})},e.cacheRate=function(b,E){var N=e.cacheRows(),O=function(j){return N.filter(function(de){return de.name===j}).reduce(function(de,ie){return de+ie[E]},0)},q=O(b+"_hit"),I=O(b+"_miss");return q+I?(100*q/(q+I)).toFixed(1)+"%":"No samples"},e.cacheEventName=function(b){return b.replaceAll("_"," ")},e.cacheP95=function(b){var E=0,N=e.cacheReport?.latencyBucketsMs||[];if(!b.count)return"No samples";if(!b.ms)return"Not timed";for(var O=0;O<=N.length;O++)if(E+=b["b"+O]||0,E>=Math.ceil(b.count*.95))return O 10 s";return"No samples"},e.performanceError=null,e.formatMs=function(b){return b==null?"":b<1e3?b+" ms":+(b/1e3).toFixed(1)+" s"},e.latencyBound=function(b,E){return b.count?b[E]==null?"> 60 s":"\u2264 "+e.formatMs(b[E]):"No samples"},e.firstByteBound=function(b){return e.latencyBound({count:b.firstByteCount,p95UpperMs:b.firstByteP95UpperMs},"p95UpperMs")},e.sampleAge=function(b){return Math.max(0,Math.round((Date.now()-b.sampledAt)/1e3))},e.peakRss=function(b){return(e.performance.runtimeSeries||[]).filter(function(E){return E.instance===b.instance}).reduce(function(E,N){return Math.max(E,N.rss)},b.memory.rss)},e.performanceWarning=function(b){return e.sampleAge(b)>45||b.droppedBatches||b.droppedMetrics||b.sockets?.closeWait>0||b.eventLoop?.p95Ms>100||b.memoryLimitBytes&&b.memory.rss>b.memoryLimitBytes*.8};var r=!1;e.loadPerformance=function(){var b=e.performanceMinutes;e.performance?.windowMinutes&&e.performance.windowMinutes!==b&&(e.performance=null),!r&&(r=!0,t.get("/api/admin/performance",{params:{minutes:b}}).then(function(E){b===e.performanceMinutes&&(e.performance=E.data,e.performanceError=E.data.available?null:"Performance monitoring is unavailable. Request history may be incomplete.")},function(){b===e.performanceMinutes&&(e.performanceError="Could not refresh performance monitoring. Displayed samples may be stale.")}).finally(function(){r=!1,b!==e.performanceMinutes&&e.loadPerformance()}))};function a(b){if(b==null)return"\u2014";for(var E=["B","KB","MB","GB","TB"],N=0,O=b;O>=1024&&N0?1:0)+" "+E[N]}e.humanBytes=a;function u(b){if(!b)return"\u2014";var E=Math.floor(b/86400),N=Math.floor(b%86400/3600),O=Math.floor(b%3600/60);return E>0?E+"d "+(N<10?"0":"")+N+"h":N>0?N+"h "+(O<10?"0":"")+O+"m":O+"m"}e.humanDuration=u;function c(b){return b==null?"\u2014":b>=1e6?(b/1e6).toFixed(1)+"M":b>=1e3?(b/1e3).toFixed(1)+"K":String(b)}e.humanNum=c,e.queueTotal=function(b){return b?(b.waiting||0)+(b.active||0)+(b.delayed||0)+(b.failed||0):0},e.statusCount=function(b){if(!e.data||!e.data.repos)return 0;for(var E=e.data.repos.statusBreakdown||[],N=0;N=0;I--){var j=new Date(N.getTime()-I*864e5),de=j.toISOString().slice(0,10);q.push(O[de]||{date:j.toISOString(),_empty:!0,dailyPageViews:0,dailyRepositories:0,dailyUsers:0,nbUsers:0})}return q}var h={};e.historyMax=function(b){return h[b]||0};var k={};e.historyBarH=function(b,E){return!b||!h[E]?0:Math.max(1,Math.round(b[E]/h[E]*140))},e.historyRangeH=function(b,E){if(!b||h[E]==null)return 0;var N=h[E]-k[E];return N?Math.round(8+(b[E]-k[E])/N*132):70},e.historyRange=function(b){return{min:k[b],max:h[b]}},e.historyLabel=function(b){if(!b||!b.date)return"";var E=new Date(b.date);return E.getUTCMonth()+1+"/"+E.getUTCDate()};function A(){e.loadPerformance(),e.loadCache(),t.get("/api/admin/overview").then(function(b){b.data.history=m(b.data.history),b.data.daily={today:g(b.data.history)},b.data.history=v(b.data.history,30),b.data.daily={today:g(b.data.history)},e.data=b.data,e.loading=!1,e.error=null,h={},k={},(b.data.history||[]).forEach(function(E){["dailyPageViews","dailyRepositories","dailyUsers","nbUsers"].forEach(function(N){(!h[N]||E[N]>h[N])&&(h[N]=E[N]),(k[N]==null||E[N]ka(e,t)},{path:"/connections",template:"partials/connections.htm",title:"GitHub connections \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Zu(e,t.http)},{path:"/signin",template:"partials/signin.htm",title:"Sign in \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>xu(e,t.http)},{path:"/",template:"partials/home.htm",title:"Anonymous GitHub \u2013 Share the code, not the author",preserveExplorer:!1,setup:(e,t)=>Gu(e,t.http,t.location,t.window,t.timeout)},{path:"/dashboard",template:"partials/dashboard.htm",title:"Your anonymizations \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Wu(e,t.http,t.location,t.promises,t.window,t.quotaService)},{path:"/pr-dashboard",redirect:"/dashboard"},{path:"/anonymize/:repoId?",template:"partials/anonymize.htm",title:"New anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Vi(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/pull-request-anonymize/:pullRequestId?",template:"partials/anonymize.htm",title:"Anonymize a pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Vi(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/gist-anonymize/:gistId?",template:"partials/anonymize.htm",title:"Anonymize a gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Vi(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/status/:repoId",template:"partials/status.htm",title:"Repository status \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ku(e,t.http,t.params)},{path:"/conferences",template:"partials/conferences.htm",title:"Your conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Ju(e,t.http,t.location)},{path:"/conference/new",template:"partials/newConference.htm",title:"New conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>fa(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId/edit",template:"partials/newConference.htm",title:"Edit conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>fa(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId",template:"partials/conference.htm",title:"Conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Qu(e,t.http,t.location,t.params)},{path:"/faq",template:"partials/faq.htm",title:"FAQ \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>zu(e,t.http)},{path:"/profile",template:"partials/profile.htm",title:"Your settings \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Hu(e,t.http,t.translate,t.timeout,t.quotaService)},{path:"/claim",template:"partials/claim.htm",title:"Claim an anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ju(e,t.http,t.location)},{path:"/pr/:pullRequestId/:path(.*)*",template:"partials/pullRequest.htm",title:"Anonymous pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Yu(e,t.http,t.location,t.params,t.html)},{path:"/gist/:gistId/:path(.*)*",template:"partials/gist.htm",title:"Anonymous gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Xu(e,t.http,t.location,t.params,t.html)},{path:"/r/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>pa(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/repository/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>pa(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/admin/",template:"partials/admin/overview.htm",title:"Admin \xB7 Overview \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>rc(e,t.http,t.location,t.interval)},{path:"/admin/repositories",template:"partials/admin/repositories.htm",title:"Admin \xB7 Repositories \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ec(e,t.http,t.location)},{path:"/admin/users",template:"partials/admin/users.htm",title:"Admin \xB7 Users \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>tc(e,t.http,t.location)},{path:"/admin/users/:username",template:"partials/admin/user.htm",title:"Admin \xB7 User details \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>nc(e,t.http,t.location,t.params)},{path:"/admin/conferences",template:"partials/admin/conferences.htm",title:"Admin \xB7 Conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>sc(e,t.http,t.location)},{path:"/admin/queues",template:"partials/admin/queues.htm",title:"Admin \xB7 Queues \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>oc(e,t.http,t.location,t.interval,t.timeout)},{path:"/admin/errors",template:"partials/admin/errors.htm",title:"Admin \xB7 Errors \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ic(e,t.http,t.location,t.interval)},{path:"/404",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",preserveExplorer:!1,setup:()=>{}},{path:"/:pathMatch(.*)*",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",setup:()=>{}}];var rg={class:"container py-4",style:{"max-width":"48rem","overflow-wrap":"anywhere"}},ag={key:0},lg={key:1,role:"alert"},dg={key:2,role:"status"},ug={key:0},cg={key:1},pg=["disabled"],fg=["disabled"],hg=["disabled"],mg={key:5,class:"mt-4","aria-labelledby":"review-policy-title"},gg={id:"review-policy-title"},vg={key:0,role:"alert"},yg=["disabled"],bg=["disabled"],wg=["disabled"],kg={key:6,role:"status"};function lc(e,t){return l(),d("section",rg,[t[12]||(t[12]=n("a",{href:"/"},"Anonymous GitHub",-1)),t[13]||(t[13]=n("h1",{class:"mt-3"},"Approve artifact access",-1)),t[14]||(t[14]=n("p",null,"This records your approval as the repository owner or an authorized coauthor.",-1)),e.user?.username?f("v-if",!0):(l(),d("p",ag,[...t[6]||(t[6]=[y("Sign in first, then reopen the artifact link from your submission. ",-1),n("a",{href:"/signin"},"Sign in",-1)])])),e.error?(l(),d("p",lg,p(e.error),1)):f("v-if",!0),e.saved?(l(),d("p",dg,[t[7]||(t[7]=y("Consent recorded. ",-1)),e.handoffEnabled?(l(),d("span",ug,"Continue to review to finish linking.")):(l(),d("span",cg,"Artifact linking is not complete. Return to your submission to check its status."))])):f("v-if",!0),e.saved&&e.handoffEnabled?(l(),d("button",{key:3,class:"btn btn-primary",type:"button",onClick:t[0]||(t[0]=(...s)=>e.continueReview&&e.continueReview(...s)),disabled:e.busy},"Continue to review",8,pg)):f("v-if",!0),e.user?.username&&!e.saved?(l(),d("form",{key:4,onSubmit:t[2]||(t[2]=ce((...s)=>e.loadPreview&&e.loadPreview(...s),["prevent"]))},[t[8]||(t[8]=n("label",{for:"review-repository"},"Anonymous repository ID",-1)),T(n("input",{id:"review-repository",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=s=>e.repositoryId=s),maxlength:"128",autocomplete:"off",disabled:e.busy||e.uncertain,"aria-describedby":"review-repository-help"},null,8,fg),[[dt,e.repositoryId]]),t[9]||(t[9]=n("p",{id:"review-repository-help"},"Use the ID after /r/ in the anonymous repository URL.",-1)),n("button",{type:"submit",class:"btn btn-primary",disabled:e.busy||e.uncertain},"Preview access and retention",8,hg)],32)):f("v-if",!0),e.preview&&!e.saved?(l(),d("section",mg,[n("h2",gg,p(e.preview.repositoryName),1),n("p",null,"Access: "+p(e.preview.policy.access==="anonymous-link"?"Anyone with the anonymous link":"Restricted review access")+".",1),n("p",null,"Retain until "+p(e.preview.policy.retainUntil)+". Policy version "+p(e.preview.policy.version)+".",1),e.expired?(l(),d("p",vg,"This preview expired. Open a new artifact link from your submission.")):f("v-if",!0),n("div",null,[n("label",null,[T(n("input",{type:"checkbox","onUpdate:modelValue":t[3]||(t[3]=s=>e.acceptAccess=s),disabled:e.busy||e.uncertain||e.expired},null,8,yg),[[Nr,e.acceptAccess]]),t[10]||(t[10]=y(" I approve the access policy above.",-1))])]),n("div",null,[n("label",null,[T(n("input",{type:"checkbox","onUpdate:modelValue":t[4]||(t[4]=s=>e.acceptRetention=s),disabled:e.busy||e.uncertain||e.expired},null,8,bg),[[Nr,e.acceptRetention]]),t[11]||(t[11]=y(" I approve retention until the date above.",-1))])]),n("button",{class:"btn btn-primary",type:"button",onClick:t[5]||(t[5]=(...s)=>e.confirmConsent&&e.confirmConsent(...s)),disabled:e.busy||e.expired||!e.acceptAccess||!e.acceptRetention},p(e.uncertain?"Retry confirmation":"Confirm consent"),9,wg)])):f("v-if",!0),e.busy?(l(),d("p",kg,"Waiting for the server\u2026")):f("v-if",!0)])}var Cg={class:"container paper-page connections-page"},Eg={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},Sg={key:1,role:"status"},Ng=["disabled"],Rg={key:3},Dg={key:0,class:"connection-resources"},Tg=["disabled"],Ag=["disabled"],_g={key:0,role:"status"},Og={class:"connections-grid"},Pg={key:0},Ig={class:"connection-title"},Mg={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},Vg={class:"connection-actions"},qg={key:0,class:"btn btn-ink",target:"_self",href:"/github/app/install"},$g=["disabled"],Lg={key:1,class:"connection-installations"},Ug={key:0},Fg=["href"],Bg={class:"sr-only"},zg={class:"connection-title"},Hg={key:0,target:"_self",href:"/github/login",class:"btn btn-outline-ink"},jg={key:1,class:"connection-revoke"},Gg={key:0},Wg=["disabled"],Kg={class:"connection-resources"},Yg={class:"connection-title"},Xg={class:"connection-count"},Jg={key:0,class:"connection-empty"},Qg={class:"connection-resource-name"},Zg={key:0,class:"connection-resource-actions"},xg=["disabled","onClick"],ev=["disabled","onClick"],tv={key:1,class:"connection-help",role:"status"},nv=["disabled","onClick"];function dc(e,t){return l(),d("div",Cg,[t[27]||(t[27]=Ce('
My work \xA0/\xA0 GitHub connections

GitHub connections

Manage how GitHub shares your code. Your anonymizations and URLs stay the same.

',2)),e.connectionError?(l(),d("p",Eg,p(e.connectionError),1)):f("v-if",!0),!e.connections&&!e.connectionError?(l(),d("p",Sg,"Loading your connections\u2026")):f("v-if",!0),!e.connections&&e.connectionError?(l(),d("button",{key:2,class:"btn btn-outline-ink",disabled:e.busy,onClick:t[0]||(t[0]=s=>e.loadConnections())},"Try again",8,Ng)):f("v-if",!0),e.connections?(l(),d("div",Rg,[e.connections.emailNotificationsEnabled?(l(),d("section",Dg,[t[6]||(t[6]=n("h2",null,"Email alerts",-1)),t[7]||(t[7]=n("p",null,"We will email you if your GitHub connection stops working or a repository becomes inaccessible. Your address is never shown on anonymous pages.",-1)),n("form",{onSubmit:t[2]||(t[2]=ce(s=>e.saveNotificationEmail(),["prevent"]))},[t[5]||(t[5]=n("label",{for:"notification-email"},"Email address",-1)),T(n("input",{id:"notification-email",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[1]||(t[1]=s=>e.notificationEmail=s),disabled:e.busy},null,8,Tg),[[dt,e.notificationEmail]]),n("button",{class:"btn btn-ink mt-2",type:"submit",disabled:e.busy},"Save email address",8,Ag),e.emailSaved?(l(),d("p",_g,"Email address saved.")):f("v-if",!0)],32)])):f("v-if",!0),n("div",Og,[e.connections.appEnabled?(l(),d("section",Pg,[t[15]||(t[15]=n("div",{class:"connection-top"},[n("i",{class:"fab fa-github","aria-hidden":"true"}),n("span",{class:"connection-badge"},"Recommended")],-1)),n("div",Ig,[t[8]||(t[8]=n("h2",null,"GitHub App",-1)),n("span",{class:_(["connection-status",{"is-connected":e.connections.appConnected&&!e.connections.appError}])},p(e.connections.appError?"Needs attention":e.connections.appConnected?"Connected":"Not connected"),3)]),t[16]||(t[16]=n("p",null,"Read-only access to gists and the repositories you choose.",-1)),e.connections.appError?(l(),d("p",Mg,p(e.connections.appError)+". Reconnect to restore access.",1)):f("v-if",!0),n("div",Vg,[e.connections.appConnected&&!e.connections.appError?(l(),d("a",qg,[...t[9]||(t[9]=[y("Manage repository access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):f("v-if",!0),n("a",{class:_(e.connections.appConnected&&!e.connections.appError?"connection-link":"btn btn-ink"),target:"_self",href:"/github/app/login"},p(e.connections.appConnected?"Reconnect account":"Connect GitHub account"),3),e.connections.appConnected?(l(),d("button",{key:1,class:"connection-link connection-refresh",title:"Refresh access",disabled:e.busy,onClick:t[3]||(t[3]=s=>e.loadConnections())},[...t[10]||(t[10]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),n("span",{class:"sr-only"},"Refresh access",-1)])],8,$g)):f("v-if",!0)]),t[17]||(t[17]=n("p",{class:"connection-help"},"Choose repositories on GitHub. Organization access may need an administrator's approval.",-1)),e.connections.installations?.length?(l(),d("ul",Lg,[(l(!0),d(W,null,ae(e.connections.installations,s=>(l(),d("li",{key:s.id},[n("div",null,[t[11]||(t[11]=n("span",{class:"connection-label"},"Installed on",-1)),t[12]||(t[12]=y()),n("strong",null,p(s.account),1),s.suspended?(l(),d("span",Ug," \xB7 Suspended")):f("v-if",!0)]),e.connections.installations.length>1?(l(),d("a",{key:0,target:"_self",href:"/github/app/install?installationId="+s.id},[t[13]||(t[13]=y("Manage access ",-1)),n("span",Bg,"for "+p(s.account),1),t[14]||(t[14]=y(" \u2192",-1))],8,Fg)):f("v-if",!0)]))),128))])):f("v-if",!0)])):f("v-if",!0),n("section",null,[t[20]||(t[20]=n("div",{class:"connection-top"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-key"})]),n("span",{class:"connection-badge connection-badge-muted"},"Legacy")],-1)),n("div",zg,[t[18]||(t[18]=n("h2",null,"GitHub OAuth",-1)),n("span",{class:_(["connection-status",{"is-connected":e.connections.oauthConnected}])},p(e.connections.oauthConnected?"Connected":"Not connected"),3)]),t[21]||(t[21]=n("p",null,"For existing OAuth anonymizations.",-1)),t[22]||(t[22]=n("p",{class:"connection-help"},"This connection uses GitHub's broader repository permissions. Existing work keeps using it until you switch below.",-1)),e.connections.oauthEnabled?(l(),d("a",Hg,p(e.connections.oauthConnected?"Reconnect OAuth":"Connect legacy OAuth"),1)):f("v-if",!0),e.connections.oauthConnected?(l(),d("div",jg,[e.connections.gistCount?(l(),d("p",Gg,p(e.connections.gistCount)+" gist(s) use your GitHub App connection when available.",1)):f("v-if",!0),t[19]||(t[19]=n("p",null,"Switch all dependent repositories before revoking access. Gists can use your GitHub App connection.",-1)),e.connections.appConnected?(l(),d("button",{key:1,class:"btn btn-sm btn-outline-danger connection-danger",disabled:e.busy||e.connections.resources.some(s=>s.connection==="oauth"),onClick:t[4]||(t[4]=s=>e.disconnectOAuth())},"Revoke OAuth access",8,Wg)):f("v-if",!0)])):f("v-if",!0)])]),n("section",Kg,[n("div",Yg,[t[23]||(t[23]=n("h2",null,"Repository connections",-1)),n("span",Xg,p(e.connections.resources?.length||0)+" "+p((e.connections.resources?.length||0)===1?"resource":"resources"),1)]),t[25]||(t[25]=n("p",null,"Check access, then switch each resource to the GitHub App. After reinstalling the App, reconnect existing resources here to keep their anonymous URLs and published snapshots.",-1)),e.connections.resources?.length?f("v-if",!0):(l(),d("div",Jg,[...t[24]||(t[24]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),n("div",null,[n("h3",null,"No repository connections yet"),n("p",null,"Your repositories and pull requests will appear here once you anonymize them.")],-1),n("a",{class:"connection-link",href:"/anonymize"},"New anonymization \u2192",-1)])])),(l(!0),d(W,null,ae(e.connections.resources,s=>(l(),d("div",{class:"connection-resource",key:s.type+s.id},[n("div",Qg,[n("strong",null,p(s.name||s.id),1),n("small",null,p(s.type)+" \xB7 "+p(s.id),1)]),n("span",{class:_(["connection-badge",{"connection-badge-muted":s.connection==="oauth"}])},p(s.connection==="github-app"?"Read-only App":"Legacy OAuth"),3),!["archived","removed","preparing","queue","removing","expiring"].includes(s.status)&&(s.status!=="download"||s.type==="pull-request"&&(!s.statusDate||new Date(s.statusDate).getTime()<=Date.now()-3e5))&&e.connections.appEnabled&&e.connections.appConnected?(l(),d("div",Zg,[n("button",{class:"btn btn-outline-ink",disabled:e.busy,onClick:i=>e.changeConnection(s,"github-app",!0)},"Check read-only access",8,xg),s.eligible?(l(),d("button",{key:0,class:"btn btn-ink",disabled:e.busy,onClick:i=>e.changeConnection(s,"github-app",!1)},p(s.connection==="github-app"?"Reconnect read-only access":"Switch to read-only access"),9,ev)):f("v-if",!0),s.eligible===!1?(l(),d("span",tv,"Access unavailable. Allow this repository on GitHub, then check again.")):f("v-if",!0)])):f("v-if",!0),!["archived","removed","preparing","queue","removing","expiring"].includes(s.status)&&(s.status!=="download"||s.type==="pull-request"&&(!s.statusDate||new Date(s.statusDate).getTime()<=Date.now()-3e5))&&s.connection==="github-app"&&e.connections.oauthConnected?(l(),d("button",{key:1,class:"connection-link",disabled:e.busy,onClick:i=>e.changeConnection(s,"oauth",!1)},"Use OAuth",8,nv)):f("v-if",!0)]))),128)),t[26]||(t[26]=n("p",{class:"connection-footnote"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),y(" Removing access stops new fetches from GitHub. Published content keeps its current expiration and removal settings.")],-1))])])):f("v-if",!0)])}var sv={class:"container paper-page auth-page"},ov={class:"auth-layout"},iv={class:"auth-options"},rv={key:0},av={key:0,class:"btn btn-ink auth-continue",target:"_self",href:"/github/login?recover=1"},lv={key:1},dv={key:1},uv={key:2,class:"auth-legacy"},cv={key:3,role:"status"};function uc(e,t){return l(),d("div",sv,[t[5]||(t[5]=n("a",{class:"auth-back",href:"/"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-arrow-left"})]),y(" Anonymous GitHub")],-1)),n("div",ov,[t[4]||(t[4]=Ce('
Your research, ready for review

Your code.
Your identity,
protected.
Sign in to GitHub

Sign in to create and manage your anonymizations.

',1)),n("div",iv,[e.accountRecovery?(l(),d("section",rv,[t[0]||(t[0]=n("h2",null,"Verify your existing account",-1)),t[1]||(t[1]=n("p",null,"We found an existing account. Verify it with your previous GitHub connection to keep your anonymizations. Future sign-ins will use the GitHub App.",-1)),e.site_options?.GITHUB_OAUTH_ENABLED?(l(),d("a",av,"Verify with previous GitHub connection")):(l(),d("p",lv,"Account verification is currently unavailable. Please try again later."))])):f("v-if",!0),e.site_options?.GITHUB_APP_ENABLED&&!e.accountRecovery?(l(),d("section",dv,[...t[2]||(t[2]=[Ce('
Read-only access

Continue with GitHub

Connect through the GitHub App with read-only repository access.

  • You choose which repositories to share
  • No permission to write to your code
Sign in with GitHub Your existing anonymizations and connections stay with your account.',6)])])):f("v-if",!0),!e.site_options?.GITHUB_APP_ENABLED&&e.site_options?.GITHUB_OAUTH_ENABLED&&!e.accountRecovery?(l(),d("section",uv,[...t[3]||(t[3]=[n("div",{class:"connection-title"},[n("h2",null,"Continue with GitHub")],-1),n("p",null,"Sign in to access your account. GitHub OAuth includes write access to private repositories.",-1),n("a",{class:"connection-link",target:"_self",href:"/github/login"},[y("Sign in with GitHub "),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-arrow-right"})])],-1)])])):f("v-if",!0),e.site_options&&!e.site_options.GITHUB_APP_ENABLED&&!e.site_options.GITHUB_OAUTH_ENABLED?(l(),d("p",cv,"GitHub sign-in is currently unavailable. Please try again later.")):f("v-if",!0)])])])}var pv={class:"paper-empty"};function cc(e,t){return l(),d("div",pv,[...t[0]||(t[0]=[Ce('
Error \xB7 404

This link
isn\u2019t here.

The anonymous mirror you\u2019re looking for has expired, been removed by its owner, or never existed. If you received this URL from an author, ask them to re-issue it.

',1)])])}var fv={class:"container paper-page admin-page"},hv={class:"summary-total"},mv=["aria-pressed"],gv={class:"count"},vv=["aria-pressed"],yv={class:"count"},bv=["aria-pressed"],wv={class:"count"},kv=["aria-pressed"],Cv={class:"count"},Ev=["aria-pressed"],Sv={class:"count"},Nv={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},Rv={class:"w-100 admin-filter-toolbar","aria-label":"Conferences","accept-charset":"UTF-8"},Dv={class:"admin-filter-row"},Tv={class:"search-wrap"},Av={type:"search",class:"form-control",placeholder:"Search conferences\u2026",autocomplete:"off"},_v={key:0,class:"admin-search-hint"},Ov={key:1,class:"admin-filter-inline","aria-label":"Pagination"},Pv=["disabled"],Iv={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},Mv=["disabled"],Vv={key:0,class:"admin-filter-row"},qv={class:"admin-active-chips"},$v={class:"key"},Lv=["onClick"],Uv={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},Fv={key:0,class:"paper-table-head",role:"row"},Bv={role:"columnheader"},zv={role:"columnheader"},Hv={role:"columnheader"},jv={class:"paper-table-row",role:"row"},Gv={class:"cell-anon",role:"cell"},Wv={class:"anon-text"},Kv=["textContent","href"],Yv={class:"anon-sub"},Xv={class:"cell-status",role:"cell"},Jv=["textContent"],Qv={class:"cell-views num",role:"cell"},Zv=["textContent","href"],xv={class:"cell-expires",role:"cell"},ey={class:"cell-actions",role:"cell"},ty={class:"dropdown"},ny={class:"dropdown-menu dropdown-menu-right"},sy=["href"],oy=["href"],iy=["href"],ry=["onClick"],ay={key:1,class:"paper-table-empty"},ly={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},dy={style:{"font-size":"12px",color:"var(--ink-muted)"}},uy={key:0,class:"pagination-compact"},cy=["disabled"],py=["max"],fy=["disabled"],hy={class:"admin-filter-inline"},my={class:"form-control form-control-sm"};function pc(e,t){let s=De("field"),i=De("form");return l(),d("div",fv,[t[48]||(t[48]=Ce('
Admin \xA0/\xA0 Conferences

Conferences

',3)),n("div",{class:_(["admin-summary",{"is-empty":e.total===0}])},[n("span",hv,[y(p(e.total>=0?e.fmt.number(e.total):"\u2026")+" ",1),n("small",null,p(e.total===1?"conference":"conferences"),1)]),t[18]||(t[18]=n("span",{class:"summary-show-label"},"Show:",-1)),n("button",{type:"button",class:_(["summary-pill ok",{active:e.query?.ready}]),title:"Toggle ready filter",onClick:t[0]||(t[0]=o=>{e.query.ready=!e.query.ready,e.query.page=1}),"aria-pressed":!!e.query?.ready},[t[13]||(t[13]=y("Ready ",-1)),n("span",gv,p(e.fmt?.number(e.statusCountFor("ready"))),1)],10,mv),n("button",{type:"button",class:_(["summary-pill warn",{active:e.query?.preparing}]),title:"Toggle preparing filter",onClick:t[1]||(t[1]=o=>{e.query.preparing=!e.query.preparing,e.query.page=1}),"aria-pressed":!!e.query?.preparing},[t[14]||(t[14]=y("Preparing ",-1)),n("span",yv,p(e.fmt?.number(e.statusCountFor("preparing"))),1)],10,vv),n("button",{type:"button",class:_(["summary-pill error",{active:e.query?.error}]),title:"Toggle errored filter",onClick:t[2]||(t[2]=o=>{e.query.error=!e.query.error,e.query.page=1}),"aria-pressed":!!e.query?.error},[t[15]||(t[15]=y("Errored ",-1)),n("span",wv,p(e.fmt?.number(e.statusCountFor("error"))),1)],10,bv),n("button",{type:"button",class:_(["summary-pill",{active:e.query?.expired}]),title:"Toggle expired filter",onClick:t[3]||(t[3]=o=>{e.query.expired=!e.query.expired,e.query.page=1}),"aria-pressed":!!e.query?.expired},[t[16]||(t[16]=y("Expired ",-1)),n("span",Cv,p(e.fmt?.number(e.statusCountFor("expired"))),1)],10,kv),n("button",{type:"button",class:_(["summary-pill",{active:e.query?.removed}]),title:"Toggle removed filter",onClick:t[4]||(t[4]=o=>{e.query.removed=!e.query.removed,e.query.page=1}),"aria-pressed":!!e.query?.removed},[t[17]||(t[17]=y("Removed ",-1)),n("span",Sv,p(e.fmt?.number(e.statusCountFor("removed"))),1)],10,Ev)],2),e.fetchError?(l(),d("div",Nv,[t[19]||(t[19]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),y(" "+p(e.fetchError),1)])):f("v-if",!0),T((l(),d("form",Rv,[n("div",Dv,[n("div",Tv,[T(n("input",Av,null,512),[[s,{state:e.viewState,set:o=>{e.query.search=o},value:e.query?.search,form:null,options:{}}]]),e.query?.search?f("v-if",!0):(l(),d("span",_v,"/"))]),t[23]||(t[23]=n("span",{class:"admin-filter-spacer"},null,-1)),e.total>0?(l(),d("button",{key:0,class:"btn btn-sm",type:"button",onClick:t[5]||(t[5]=o=>e.exportCsv())},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),y(" Export",-1)])])):f("v-if",!0),e.totalPage>1?(l(),d("span",Ov,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[6]||(t[6]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,Pv),n("span",Iv,p(e.query?.page)+"/"+p(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[7]||(t[7]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,Mv)])):f("v-if",!0)]),e.chips?.length?(l(),d("div",Vv,[n("div",qv,[(l(!0),d(W,null,ae(e.chips,(o,r)=>(l(),d("span",{class:"admin-active-chip",key:o?.key},[n("span",$v,p(o?.label),1),n("span",null,p(o?.value),1),n("button",{type:"button",onClick:a=>e.clearFilter(o.key),"aria-label":"Clear filter"},[...t[24]||(t[24]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,Lv)]))),128))])])):f("v-if",!0)])),[[i,e.viewState]]),n("div",Uv,[e.total!==0?(l(),d("div",Fv,[n("div",Bv,[n("button",{type:"button",class:_(["sortable",{active:e.query?.sort=="name"}]),onClick:t[8]||(t[8]=o=>e.sortBy("name"))},[t[26]||(t[26]=y("Conference ",-1)),e.sortIcon("name")?(l(),d("svg",{key:0,class:_(["ui-icon sort-direction",{ascending:e.sortIcon("name")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[25]||(t[25]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",zv,[n("button",{type:"button",class:_(["sortable",{active:e.query?.sort=="status"}]),onClick:t[9]||(t[9]=o=>e.sortBy("status"))},[t[28]||(t[28]=y("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:_(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[27]||(t[27]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[31]||(t[31]=n("div",{role:"columnheader",class:"num"},"Repos",-1)),n("div",Hv,[n("button",{type:"button",class:_(["sortable",{active:e.query?.sort=="startDate"}]),onClick:t[10]||(t[10]=o=>e.sortBy("startDate"))},[t[30]||(t[30]=y("Window ",-1)),e.sortIcon("startDate")?(l(),d("svg",{key:0,class:_(["ui-icon sort-direction",{ascending:e.sortIcon("startDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[29]||(t[29]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[32]||(t[32]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))])):f("v-if",!0),(l(!0),d(W,null,ae(e.filteredConferences,(o,r)=>(l(),d("div",jv,[n("div",Gv,[t[34]||(t[34]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Conference"},[n("use",{href:"#project-icon-conference"})],-1)),n("div",Wv,[n("a",{class:"repo-name",textContent:p(o?.name),href:e.safeUrl("/conference/"+o?.conferenceID)},null,8,Kv),n("div",Yv,[n("span",null,p(o?.conferenceID),1),t[33]||(t[33]=y("\xA0\xB7\xA0",-1)),n("span",null,p(e.fmt?.number(o?.price||0))+" \u20AC",1)])])]),n("div",Xv,[n("span",{class:_(["status-dot",{"status-removed":o?.status=="removed"||o?.status=="expired","status-ready":o?.status=="ready","status-error":o?.status=="error","status-preparing":o?.status=="preparing"}])},null,2),n("span",{textContent:p(e.fmt?.title(o?.status))},null,8,Jv)]),n("div",Qv,[t[35]||(t[35]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),n("a",{title:"Show repositories in this conference",textContent:p(e.fmt?.number(o?.repositories?.length||0)),href:e.safeUrl("/admin/?conference="+o?.conferenceID)},null,8,Zv)]),n("div",xv,[t[36]||(t[36]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),y(" "+p(e.fmt?.date(o?.startDate))+" \u2013 "+p(e.fmt?.date(o?.endDate)),1)]),n("div",ey,[n("div",ty,[t[42]||(t[42]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",ny,[n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+o?.conferenceID+"/edit")},[...t[37]||(t[37]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),y(" Edit",-1)])],8,sy),n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+o?.conferenceID+"/")},[...t[38]||(t[38]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),y(" View",-1)])],8,oy),n("a",{class:"dropdown-item",href:e.safeUrl("/admin/?conference="+o?.conferenceID)},[...t[39]||(t[39]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),y(" View repositories",-1)])],8,iy),t[41]||(t[41]=n("div",{class:"dropdown-divider"},null,-1)),T(n("a",{class:"dropdown-item text-danger",href:"#",onClick:ce(a=>e.removeConference(o),["prevent"])},[...t[40]||(t[40]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),y(" Remove",-1)])],8,ry),[[J,o?.status!="removed"]])])])])]))),256)),e.filteredConferences?.length==0?(l(),d("div",ay,[t[43]||(t[43]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),n("span",null,p(e.total?"No conferences match the current filters.":"No conferences yet."),1)])):f("v-if",!0)]),n("div",ly,[n("span",dy,p(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",uy,[n("button",{class:"btn btn-sm",onClick:t[11]||(t[11]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[44]||(t[44]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),y(" Previous",-1)])],8,cy),T(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,py),[[s,{state:e.viewState,set:o=>{e.query.page=o},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+p(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[45]||(t[45]=[y("Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,fy)])):f("v-if",!0),n("span",hy,[t[47]||(t[47]=n("label",null,"Per page",-1)),T((l(),d("select",my,[...t[46]||(t[46]=[Ce('',5)])])),[[s,{state:e.viewState,set:o=>{e.query.limit=o},value:e.query?.limit,form:null,options:{}}]])])])])}var gy={class:"container paper-page admin-page errors-page"},vy={class:"errors-header"},yy={class:"errors-actions"},by={class:"kpi-grid"},wy={class:"kpi-card"},ky={class:"kpi-value"},Cy={key:0},Ey={key:1},Sy={key:2},Ny=["aria-pressed"],Ry={class:"kpi-value"},Dy={class:"kpi-sub"},Ty=["aria-pressed"],Ay={class:"kpi-value"},_y={class:"kpi-sub"},Oy=["aria-pressed"],Py={class:"kpi-value"},Iy={class:"kpi-sub"},My={class:"kpi-value"},Vy={class:"kpi-sub"},qy={key:0,class:"dropped-warn"},$y={class:"volume-chart"},Ly={class:"volume-head"},Uy={class:"volume-legend"},Fy={key:0},By={key:1},zy={key:2},Hy={class:"volume-bars"},jy=["title"],Gy={class:"errors-toolbar","aria-label":"Error filters"},Wy={class:"seg-tabs"},Ky={class:"search-wrap"},Yy={type:"search",class:"form-control",placeholder:"Search code, module, status\u2026",title:"Syntax: code:repo_not_found module:route status:>=400",autocomplete:"off"},Xy={key:0,class:"filter-count"},Jy={class:"select-wrap"},Qy={class:"form-control form-control-sm"},Zy={class:"select-wrap"},xy={class:"form-control form-control-sm"},eb={class:"autoref"},tb={type:"checkbox"},sb={key:0,class:"admin-empty"},ob={key:1,class:"errors-pager"},ib={key:2,class:"errors-list"},rb=["onClick"],ab={class:"col-when"},lb={class:"when-rel"},db={class:"when-abs"},ub={class:"col-sev"},cb={class:"sev-label"},pb={class:"col-mod"},fb={class:"pill pill-module"},hb={class:"col-msg"},mb={class:"msg-code"},gb={key:0,class:"msg-context"},vb={key:1,class:"msg-detail"},yb={key:2,class:"msg-url"},bb={class:"col-count"},wb={key:0,class:"count-pill"},kb={key:1,class:"count-pill count-pill-muted"},Cb={class:"col-status"},Eb=["title"],Sb={key:0,class:"errors-row-detail"},Nb={class:"detail-tabs"},Rb=["onClick"],Db=["onClick"],Tb=["onClick"],Ab={class:"detail-body"},_b={class:"detail-main"},Ob={key:0},Pb={key:1,class:"stack-pre"},Ib={key:2,class:"related-list"},Mb={class:"when-abs"},Vb={class:"msg-url"},qb={class:"detail-actions"},$b=["onClick"],Lb=["onClick"],Ub={key:0,class:"copy-hint"},Fb={class:"detail-aside"},Bb={class:"aside-block"},zb=["title"],Hb={class:"aside-block"},jb=["title"],Gb={class:"aside-block"},Wb={class:"aside-value"},Kb={key:0,class:"aside-sub"},Yb={key:0,class:"aside-block"},Xb=["href"],Jb={key:1,class:"aside-block"},Qb={class:"aside-value mono"};function fc(e,t){let s=De("field"),i=De("form");return l(),d("div",gy,[t[42]||(t[42]=n("div",{class:"paper-crumbs"},[y("Admin \xA0/\xA0 "),n("span",{class:"here"},"Errors")],-1)),n("header",vy,[t[16]||(t[16]=n("h1",{class:"paper-page-title"},"Errors",-1)),n("div",yy,[n("button",{class:"btn btn-sm",type:"button",onClick:t[0]||(t[0]=o=>e.exportCsv())},[...t[14]||(t[14]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),y(" Export CSV",-1)])]),n("button",{class:"btn btn-sm btn-outline-danger",type:"button",onClick:t[1]||(t[1]=o=>e.clearAll())},[...t[15]||(t[15]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),y(" Clear all",-1)])])])]),t[43]||(t[43]=Ce('',1)),n("section",by,[n("div",wy,[t[17]||(t[17]=n("div",{class:"kpi-label"},"Occurrences \xB7 24h",-1)),n("div",ky,p(e.fmt?.number(e.stats?.last24h??0)),1),n("div",{class:_(["kpi-sub",{up:e.stats?.delta>0,down:e.stats?.delta<0}])},[e.stats?.prev24h>=20?(l(),d("span",Cy,p((e.stats?.last24h??0)-(e.stats?.prev24h??0)>=0?"+":"")+p(Math.round(((e.stats?.last24h??0)-(e.stats?.prev24h??0))/e.stats.prev24h*100))+"% vs yesterday",1)):e.stats?.prev24h!==void 0?(l(),d("span",Ey,p(e.fmt?.number(e.stats?.prev24h??0))+" in prior 24h",1)):f("v-if",!0),e.stats?.prev24h?f("v-if",!0):(l(),d("span",Sy,"no prior baseline"))],2)]),n("div",{class:_(["kpi-card kpi-error kpi-filter",{"is-selected":e.query?.bucket==="error"}]),role:"button",tabindex:"0","aria-pressed":e.query?.bucket==="error",title:"Show only 5xx errors",onClick:t[2]||(t[2]=o=>e.setBucket(e.query?.bucket==="error"?"":"error")),onKeydown:t[3]||(t[3]=Tt(ce(o=>e.setBucket(e.query?.bucket==="error"?"":"error"),["prevent"]),["enter"]))},[t[18]||(t[18]=n("div",{class:"kpi-label"},"Errors (5xx)",-1)),n("div",Ry,p(e.fmt?.number(e.stats?.severity?.error??0)),1),n("div",Dy,p(e.stats?.unique?.error)+" unique",1)],42,Ny),n("div",{class:_(["kpi-card kpi-warn kpi-filter",{"is-selected":e.query?.bucket==="warn"}]),role:"button",tabindex:"0","aria-pressed":e.query?.bucket==="warn",title:"Show only 4xx responses",onClick:t[4]||(t[4]=o=>e.setBucket(e.query?.bucket==="warn"?"":"warn")),onKeydown:t[5]||(t[5]=Tt(ce(o=>e.setBucket(e.query?.bucket==="warn"?"":"warn"),["prevent"]),["enter"]))},[t[19]||(t[19]=n("div",{class:"kpi-label"},"4xx responses",-1)),n("div",Ay,p(e.fmt?.number(e.stats?.severity?.warn??0)),1),n("div",_y,p(e.stats?.unique?.warn)+" unique",1)],42,Ty),n("div",{class:_(["kpi-card kpi-info kpi-filter",{"is-selected":e.query?.bucket==="info"}]),role:"button",tabindex:"0","aria-pressed":e.query?.bucket==="info",title:"Show only info events",onClick:t[6]||(t[6]=o=>e.setBucket(e.query?.bucket==="info"?"":"info")),onKeydown:t[7]||(t[7]=Tt(ce(o=>e.setBucket(e.query?.bucket==="info"?"":"info"),["prevent"]),["enter"]))},[t[20]||(t[20]=n("div",{class:"kpi-label"},"Info (auth, 404)",-1)),n("div",Py,p(e.fmt?.number(e.stats?.severity?.info??0)),1),n("div",Iy,p(e.stats?.unique?.info)+" unique",1)],42,Oy),n("div",{class:_(["kpi-card",{"kpi-error":e.stats?.dropped>0}])},[t[21]||(t[21]=n("div",{class:"kpi-label"},"Distinct errors stored",-1)),n("div",My,p(e.fmt?.number(e.total)),1),n("div",Vy,[y(" all time \xB7 cap "+p(e.fmt?.number(e.cap))+" \xB7 "+p(e.available?"live":"redis off")+" ",1),e.stats?.dropped>0?(l(),d("span",qy," \xB7 "+p(e.stats?.dropped)+" dropped",1)):f("v-if",!0)])],2)]),n("section",$y,[n("div",Ly,[t[25]||(t[25]=n("span",{class:"volume-title"},"Volume \xB7 24h \xB7 1h buckets",-1)),n("span",Uy,[e.stats?.severity?.error?(l(),d("span",Fy,[...t[22]||(t[22]=[n("span",{class:"dot dot-error"},null,-1),y("error",-1)])])):f("v-if",!0),e.stats?.severity?.warn?(l(),d("span",By,[...t[23]||(t[23]=[n("span",{class:"dot dot-warn"},null,-1),y("warn",-1)])])):f("v-if",!0),e.stats?.severity?.info?(l(),d("span",zy,[...t[24]||(t[24]=[n("span",{class:"dot dot-info"},null,-1),y("info",-1)])])):f("v-if",!0)])]),n("div",Hy,[(l(!0),d(W,null,ae(e.stats?.buckets,(o,r)=>(l(),d("div",{class:"volume-bar",key:r,title:e.bucketTitle(o)},[n("span",{class:"seg seg-error",style:$e({height:e.barPx(o,"error")+"px"})},null,4),n("span",{class:"seg seg-warn",style:$e({height:e.barPx(o,"warn")+"px"})},null,4),n("span",{class:"seg seg-info",style:$e({height:e.barPx(o,"info")+"px"})},null,4)],8,jy))),128))]),t[26]||(t[26]=n("div",{class:"volume-axis","aria-hidden":"true"},[n("span",null,"24h ago"),n("span",null,"12h ago"),n("span",null,"now")],-1))]),T((l(),d("form",Gy,[n("div",Wy,[n("button",{type:"button",class:_({active:e.query?.bucket===""}),onClick:t[8]||(t[8]=o=>e.setBucket(""))},"All",2),n("button",{type:"button",class:_({active:e.query?.bucket==="error"}),onClick:t[9]||(t[9]=o=>e.setBucket("error"))},"5xx",2),n("button",{type:"button",class:_({active:e.query?.bucket==="warn"}),onClick:t[10]||(t[10]=o=>e.setBucket("warn"))},"4xx",2),n("button",{type:"button",class:_({active:e.query?.bucket==="info"}),onClick:t[11]||(t[11]=o=>e.setBucket("info"))},"Info",2)]),n("div",Ky,[t[27]||(t[27]=n("svg",{class:"ui-icon search-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)),T(n("input",Yy,null,512),[[s,{state:e.viewState,set:o=>{e.query.search=o},value:e.query?.search,form:null,options:{}}]]),e.parsedFilterCount?(l(),d("span",Xy,p(e.parsedFilterCount)+" filter"+p(e.parsedFilterCount>1?"s":""),1)):f("v-if",!0)]),n("div",Jy,[t[29]||(t[29]=n("label",null,"Sort",-1)),T((l(),d("select",Qy,[...t[28]||(t[28]=[n("option",{value:"recent"},"Most recent",-1),n("option",{value:"count"},"Most frequent",-1)])])),[[s,{state:e.viewState,set:o=>{e.query.sort=o},value:e.query?.sort,form:null,options:{}}]])]),n("div",Zy,[t[31]||(t[31]=n("label",null,"Group",-1)),T((l(),d("select",xy,[...t[30]||(t[30]=[n("option",{value:""},"Off",-1),n("option",{value:"code"},"By code",-1),n("option",{value:"module"},"By module",-1)])])),[[s,{state:e.viewState,set:o=>{e.query.group=o},value:e.query?.group,form:null,options:{}}]])]),n("label",eb,[T(n("input",tb,null,512),[[s,{state:e.viewState,set:o=>{e.query.autoRefresh=o},value:e.query?.autoRefresh,form:null,options:{}}]]),t[32]||(t[32]=n("span",{class:"auto-refresh-label"},"Auto-refresh",-1))]),n("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[12]||(t[12]=o=>e.refreshNow()),"aria-label":"Refresh"},[...t[33]||(t[33]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])])),[[i,e.viewState]]),e.visible?.length?f("v-if",!0):(l(),d("div",sb,"No errors captured.")),e.canLoadMore()&&e.visible?.length?(l(),d("div",ob,[n("span",null,p(e.query?.group&&e.visible?.length!==e.entries?.length?e.fmt?.number(e.visible?.length)+(e.visible?.length===1?" group":" groups")+" from ":"")+p(e.fmt?.number(e.entries?.length))+" of "+p(e.fmt?.number(e.total))+" stored errors loaded",1),n("button",{class:"btn btn-sm",type:"button",onClick:t[13]||(t[13]=o=>e.loadMore())},"Load 250 older")])):f("v-if",!0),e.visible?.length?(l(),d("div",ib,[t[41]||(t[41]=Ce('
WhenSeverityModuleMessageTotalStatus
',1)),(l(!0),d(W,null,ae(e.visible,(o,r)=>(l(),d("div",{class:_(["errors-row",{open:e.expanded[o?._key]}]),key:o?._key},[n("div",{class:"errors-row-main",onClick:a=>e.toggle(o)},[n("div",ab,[n("div",lb,p(e.relTime(o?.ts)),1),n("div",db,p(e.absTimeShort(o?.ts)),1)]),n("div",ub,[n("span",{class:_(["sev-dot","sev-"+o?._bucket])},null,2),n("span",cb,p(e.fmt?.title(o?._bucket)),1)]),n("div",pb,[n("span",fb,p(o?.module),1)]),n("div",hb,[n("strong",mb,p(o?.displayMessage),1),o?.displayContext&&o?.displayContext!==o?.displayMessage?(l(),d("span",gb,p(o?.displayContext),1)):f("v-if",!0),o?._detail?(l(),d("span",vb,p(o?._detail),1)):f("v-if",!0),o?._url?(l(),d("div",yb,p(o?._url),1)):f("v-if",!0)]),n("div",bb,[o?.count>1?(l(),d("span",wb,"\xD7"+p(o?.count),1)):f("v-if",!0),o?.count===1?(l(),d("span",kb,"\xD71")):f("v-if",!0)]),n("div",Cb,[o?._status?(l(),d("span",{key:0,class:_(["status-pill",String(o?._status).match(/^[23]/)?"status-neutral":"status-"+o?._bucket]),title:String(o?._status).match(/^2/)&&o?._bucket==="warn"?"Client closed the connection":null},p(String(o?._status).match(/^2/)&&o?._bucket==="warn"?"\u2014":o?._status),11,Eb)):f("v-if",!0)])],8,rb),e.expanded[o?._key]?(l(),d("div",Sb,[n("div",Nb,[n("button",{type:"button",class:_({active:e.detailTab[o?._key]==="raw"||!e.detailTab[o?._key]}),onClick:a=>e.detailTab[o._key]="raw"},"Raw",10,Rb),o?._stack?(l(),d("button",{key:0,type:"button",class:_({active:e.detailTab[o?._key]==="stack"}),onClick:a=>e.detailTab[o._key]="stack"},"Stack",10,Db)):f("v-if",!0),o?.count>1?(l(),d("button",{key:1,type:"button",class:_({active:e.detailTab[o?._key]==="related"}),onClick:a=>e.detailTab[o._key]="related"},"Related ("+p(o?.count)+")",11,Tb)):f("v-if",!0)]),n("div",Ab,[n("div",_b,[(e.detailTab[o?._key]||"raw")==="raw"?(l(),d("pre",Ob,p(o?._detailJson),1)):f("v-if",!0),e.detailTab[o?._key]==="stack"?(l(),d("pre",Pb,p(o?._stack),1)):f("v-if",!0),e.detailTab[o?._key]==="related"?(l(),d("div",Ib,[(l(!0),d(W,null,ae(o?._related,(a,u)=>(l(),d("div",{class:"related-row",key:u},[n("span",Mb,p(e.absTimeShort(a?.ts)),1),n("span",Vb,p(a?._url),1),a?._status?(l(),d("span",{key:0,class:_(["status-pill","status-"+a?._bucket])},p(a?._status),3)):f("v-if",!0)]))),128))])):f("v-if",!0),n("div",qb,[n("button",{class:"btn btn-sm",type:"button",title:"Copy a curl that reproduces the request",onClick:a=>e.copyCurl(o)},[...t[34]||(t[34]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),y(" Copy curl",-1)])],8,$b),n("button",{class:"btn btn-sm",type:"button",onClick:a=>e.copyJson(o)},[...t[35]||(t[35]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-clipboard"})],-1),y(" Copy JSON",-1)])],8,Lb),e.copyHint?(l(),d("span",Ub,p(e.copyHint),1)):f("v-if",!0)])]),n("aside",Fb,[n("div",Bb,[t[36]||(t[36]=n("div",{class:"aside-label"},"First seen",-1)),n("div",{class:"aside-value",title:e.absTime(o?._firstSeen)},p(e.relTime(o?._firstSeen)),9,zb)]),n("div",Hb,[t[37]||(t[37]=n("div",{class:"aside-label"},"Last seen",-1)),n("div",{class:"aside-value",title:e.absTime(o?.ts)},p(e.relTime(o?.ts)),9,jb)]),n("div",Gb,[t[38]||(t[38]=n("div",{class:"aside-label"},"Occurrences",-1)),n("div",Wb,[y(p(o?.count),1),o?._lastHourCount?(l(),d("span",Kb," \xB7 "+p(o?._lastHourCount)+" this hour",1)):f("v-if",!0)])]),o?._repoId?(l(),d("div",Yb,[t[39]||(t[39]=n("div",{class:"aside-label"},"Repository",-1)),n("a",{class:"aside-value",href:e.safeUrl("/r/"+o?._repoId)},p(o?._repoId),9,Xb)])):f("v-if",!0),o?._url?(l(),d("div",Jb,[t[40]||(t[40]=n("div",{class:"aside-label"},"URL",-1)),n("div",Qb,p(o?._url),1)])):f("v-if",!0)])])])):f("v-if",!0)],2))),128))])):f("v-if",!0)])}var Zb={class:"container paper-page admin-page overview-page"},xb={key:0,class:"admin-empty"},e1={key:1,class:"alert alert-danger",style:{margin:"12px 0"}},t1={class:"ov-views",role:"tablist","aria-label":"Overview sections"},n1=["aria-selected","onClick"],s1={key:2},o1={key:0,class:"ov-health",role:"status"},i1={class:"ov-kpi-row"},r1={class:"ov-kpi-card"},a1={class:"ov-kpi-value"},l1={class:"ov-kpi-sub"},d1={class:"ov-kpi-card"},u1={class:"ov-kpi-sub"},c1={class:"ov-kpi-card"},p1={class:"ov-kpi-sub"},f1={class:"ov-kpi-card"},h1={class:"ov-kpi-sub"},m1={class:"ov-kpi-card"},g1={class:"ov-kpi-value"},v1={class:"ov-kpi-sub"},y1={class:"ov-daily-row"},b1={class:"ov-daily-card"},w1={class:"ov-daily-value"},k1={class:"ov-daily-card"},C1={class:"ov-daily-value"},E1={class:"ov-daily-sub"},S1={class:"ov-daily-card"},N1={class:"ov-daily-value"},R1={class:"ov-chart-row"},D1={class:"ov-chart-card"},T1={class:"ov-chart-head"},A1={class:"ov-chart-legend"},_1={key:0,class:"ov-spark-bars"},O1=["data-tip","aria-label"],P1={key:1,class:"ov-spark-x"},I1={class:"ov-chart-card"},M1={class:"ov-chart-head"},V1={class:"ov-chart-legend"},q1={key:0,class:"ov-spark-bars"},$1=["data-tip","aria-label"],L1={key:1,class:"ov-spark-x"},U1={class:"ov-chart-card"},F1={class:"ov-chart-head"},B1={class:"ov-chart-legend"},z1={key:0,class:"ov-spark-bars"},H1=["data-tip","aria-label"],j1={key:1,class:"ov-spark-x"},G1={class:"ov-chart-card"},W1={class:"ov-chart-head"},K1={class:"ov-chart-legend"},Y1={key:0,class:"ov-spark-bars"},X1=["data-tip","aria-label"],J1={key:1,class:"ov-spark-x"},Q1={class:"ov-triple-row"},Z1={class:"ov-panel-card"},x1={class:"ov-panel-head"},ew={class:"ov-panel-meta"},tw={class:"ov-stacked-bar"},nw={class:"ov-bar-legend"},sw={href:"/admin/repositories",class:"ov-legend-item"},ow={class:"ov-legend-n"},iw={href:"/admin/repositories",class:"ov-legend-item"},rw={class:"ov-legend-n"},aw={href:"/admin/repositories",class:"ov-legend-item"},lw={class:"ov-legend-n"},dw={href:"/admin/repositories",class:"ov-legend-item"},uw={class:"ov-legend-n"},cw={href:"/admin/repositories",class:"ov-legend-item"},pw={class:"ov-legend-n"},fw={class:"ov-panel-card"},hw={class:"ov-panel-head"},mw={class:"ov-panel-meta"},gw={class:"ov-error-bars"},vw={class:"ov-ebar-row"},yw={class:"ov-ebar-track"},bw={class:"ov-ebar-n"},ww={class:"ov-ebar-row"},kw={class:"ov-ebar-track"},Cw={class:"ov-ebar-n"},Ew={class:"ov-ebar-row"},Sw={class:"ov-ebar-track"},Nw={class:"ov-ebar-n"},Rw={key:0,class:"ov-panel-foot"},Dw={href:"/admin/errors"},Tw={class:"ov-panel-card"},Aw={class:"ov-routes-table"},_w={class:"ov-route-row",href:"/admin/queues"},Ow={class:"ov-route-n"},Pw={class:"ov-route-n"},Iw={class:"ov-route-row",href:"/admin/queues"},Mw={class:"ov-route-n"},Vw={class:"ov-route-n"},qw={class:"ov-route-row",href:"/admin/queues"},$w={class:"ov-route-n"},Lw={class:"ov-route-n"},Uw={class:"ov-services-card"},Fw={class:"ov-services-head"},Bw={class:"ov-panel-meta"},zw={class:"ov-services-grid"},Hw={class:"ov-svc"},jw={class:"ov-svc-info"},Gw={class:"ov-svc-meta"},Ww={class:"ov-svc-detail"},Kw={class:"ov-svc"},Yw={class:"ov-svc-info"},Xw={key:0,class:"ov-svc-meta"},Jw={key:1,class:"ov-svc-meta"},Qw={class:"ov-svc"},Zw={class:"ov-svc-info"},xw={key:0,class:"ov-svc-meta"},ek={key:1,class:"ov-svc-meta"},tk={class:"ov-svc"},nk={class:"ov-svc-info"},sk={key:0,class:"ov-svc-meta"},ok={key:1,class:"ov-svc-meta"},ik={class:"ov-svc"},rk={class:"ov-svc-info"},ak={class:"ov-svc-meta"},lk={class:"ov-panel-card ov-cache","aria-labelledby":"cache-heading"},dk={class:"ov-panel-head ov-performance-head"},uk={class:"ov-performance-window"},ck={key:0,class:"ov-performance-message ov-performance-warning",role:"alert"},pk={key:1,class:"ov-performance-empty",role:"status"},fk={key:0,class:"ov-performance-note"},hk={key:1,class:"ov-performance-note"},mk={key:2,class:"ov-performance-message ov-performance-warning",role:"status"},gk={key:3,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Cache storage budgets"},vk={class:"ov-metrics-table"},yk={scope:"row"},bk={key:4,class:"ov-performance-note"},wk={key:5,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Cache events and processing durations"},kk={class:"ov-metrics-table"},Ck={scope:"row"},Ek={key:6,class:"ov-performance-empty",role:"status"},Sk={class:"ov-performance-note"},Nk={class:"ov-panel-card ov-performance","aria-labelledby":"performance-heading"},Rk={class:"ov-panel-head ov-performance-head"},Dk={class:"ov-performance-window"},Tk={key:0,class:"ov-performance-message ov-performance-warning",role:"alert"},Ak={key:1,class:"ov-performance-empty",role:"status"},_k={key:2},Ok={class:"paper-tabs ov-performance-tabs",role:"tablist","aria-label":"Performance metrics"},Pk=["aria-selected","tabindex"],Ik=["aria-selected","tabindex"],Mk=["aria-selected","tabindex"],Vk={id:"performance-routes",role:"tabpanel","aria-labelledby":"performance-routes-tab"},qk={key:0,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Route latency metrics, scroll for more columns"},$k={class:"ov-metrics-table"},Lk={scope:"row",class:"ov-metric-name"},Uk={class:"num"},Fk={class:"num"},Bk={class:"num"},zk={class:"num"},Hk={class:"num"},jk={key:1,class:"ov-performance-empty"},Gk={id:"performance-processes",role:"tabpanel","aria-labelledby":"performance-processes-tab"},Wk={key:0,class:"ov-performance-message ov-performance-warning",role:"status"},Kk={key:1,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Process resource metrics, scroll for more columns"},Yk={class:"ov-metrics-table"},Xk={scope:"row",class:"ov-metric-name"},Jk={key:0,class:"ov-metric-warn"},Qk={class:"num"},Zk={class:"num"},xk={class:"num"},e0={class:"num"},t0={class:"num"},n0={class:"num"},s0={class:"num"},o0={class:"num"},i0={id:"performance-stages",role:"tabpanel","aria-labelledby":"performance-stages-tab"},r0={key:0,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Work stage metrics, scroll for more columns"},a0={class:"ov-metrics-table"},l0={scope:"row",class:"ov-metric-name"},d0={class:"num"},u0={class:"num"},c0={class:"num"},p0={key:1,class:"ov-performance-empty"};function hc(e,t){return l(),d("div",Zb,[t[83]||(t[83]=Ce('
Admin \xA0/\xA0 Overview

Overview

Live \xB7 refreshes every 30s
',3)),e.loading?(l(),d("div",xb,"Loading overview\u2026")):f("v-if",!0),e.error?(l(),d("div",e1,[t[13]||(t[13]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),y(" "+p(e.error),1)])):f("v-if",!0),n("div",t1,[(l(),d(W,null,ae([{id:"summary",label:"Summary"},{id:"performance",label:"Performance"},{id:"cache",label:"Cache"}],s=>n("button",{type:"button",role:"tab",key:s.id,"aria-selected":e.ovView===s.id?"true":"false",class:_({active:e.ovView===s.id}),onClick:i=>e.setOvView(s.id)},p(s.label),11,n1)),64))]),e.data?T((l(),d("div",s1,[e.data?.system?.memPercent>90||e.data?.system?.diskPercent>90?(l(),d("div",o1,[...t[14]||(t[14]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),n("span",null,[n("b",null,"Server needs attention."),y(" Memory or disk is running high (see the cards below). New anonymizations may fail until it drops.")],-1)])])):f("v-if",!0),f(" \u2500\u2500 Top KPI row \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",i1,[n("div",r1,[t[15]||(t[15]=n("div",{class:"ov-kpi-label"},"Live repositories",-1)),n("div",a1,p(e.humanNum((e.data?.repos?.statusBreakdown||[]).filter(s=>s._id!=="removed"&&s._id!=="expired").reduce((s,i)=>s+(i.count||0),0))),1),n("div",l1,p(e.humanNum(((e.data?.repos?.statusBreakdown||[]).find(s=>s._id==="removed")||{}).count||0))+" removed \xB7 "+p(e.humanNum(e.data?.repos?.total))+" total",1)]),n("div",d1,[t[16]||(t[16]=n("div",{class:"ov-kpi-label"},"CPU",-1)),n("div",{class:_(["ov-kpi-value",{"ov-val-warn":e.data?.system?.cpuPercent>80}])},p(e.data?.system?.cpuPercent)+"%",3),n("div",{class:_(["ov-meter",{warn:e.data?.system?.cpuPercent>80,crit:e.data?.system?.cpuPercent>90}])},[n("span",{style:$e({width:Math.min(100,e.data?.system?.cpuPercent||0)+"%"})},null,4)],2),n("div",u1,p(e.data?.system?.cpuCount)+" cores \xB7 load "+p(e.data?.system?.loadAvg?.[0]?.toFixed(1)),1)]),n("div",c1,[t[17]||(t[17]=n("div",{class:"ov-kpi-label"},"Memory",-1)),n("div",{class:_(["ov-kpi-value",{"ov-val-warn":e.data?.system?.memPercent>85}])},p(e.data?.system?.memPercent)+"%",3),n("div",{class:_(["ov-meter",{warn:e.data?.system?.memPercent>85,crit:e.data?.system?.memPercent>90}])},[n("span",{style:$e({width:Math.min(100,e.data?.system?.memPercent||0)+"%"})},null,4)],2),n("div",p1,[e.data?.system?.memPercent>85?(l(),d("b",{key:0,class:_(["ov-flag",{critical:e.data?.system?.memPercent>90}])},p(e.data?.system?.memPercent>90?"Critical":"High")+" \xB7 ",3)):f("v-if",!0),y(p(e.humanBytes(e.data?.system?.memUsed).replace(/\s*GB$/,""))+" / "+p(e.humanBytes(e.data?.system?.memTotal)),1)])]),n("div",f1,[t[18]||(t[18]=n("div",{class:"ov-kpi-label"},"Disk",-1)),n("div",{class:_(["ov-kpi-value",{"ov-val-warn":e.data?.system?.diskPercent>85}])},p(e.data?.system?.diskPercent)+"%",3),n("div",{class:_(["ov-meter",{warn:e.data?.system?.diskPercent>85,crit:e.data?.system?.diskPercent>90}])},[n("span",{style:$e({width:Math.min(100,e.data?.system?.diskPercent||0)+"%"})},null,4)],2),n("div",h1,[e.data?.system?.diskPercent>85?(l(),d("b",{key:0,class:_(["ov-flag",{critical:e.data?.system?.diskPercent>90}])},p(e.data?.system?.diskPercent>90?"Critical":"High")+" \xB7 ",3)):f("v-if",!0),y(p(e.humanBytes(e.data?.system?.diskUsed).replace(/\s*GB$/,""))+" / "+p(e.humanBytes(e.data?.system?.diskTotal)),1),e.data?.system?.diskMount&&e.data.system.diskMount!=="/"?(l(),d(W,{key:1},[y(" \xB7 "+p(e.data?.system?.diskMount),1)],64)):f("v-if",!0)])]),n("div",m1,[t[19]||(t[19]=n("div",{class:"ov-kpi-label"},"Uptime",-1)),n("div",g1,p(e.humanDuration(e.data?.system?.uptime)),1),n("div",v1,p(e.data?.system?.nodeVersion)+" \xB7 "+p(e.data?.system?.platform),1)])]),f(" \u2500\u2500 Daily activity highlights \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",y1,[n("div",b1,[t[20]||(t[20]=n("div",{class:"ov-daily-label"},"New repos today",-1)),n("div",w1,p(e.fmt?.number(e.data?.daily?.today?.repositories||0)),1),t[21]||(t[21]=n("div",{class:"ov-daily-sub"},"so far today",-1))]),n("div",k1,[t[22]||(t[22]=n("div",{class:"ov-daily-label"},"New users today",-1)),n("div",C1,p(e.fmt?.number(e.data?.daily?.today?.users||0)),1),n("div",E1,p(e.fmt?.number(e.data?.users?.total))+" total users",1)]),n("div",S1,[t[23]||(t[23]=n("div",{class:"ov-daily-label"},"Page views today",-1)),n("div",N1,p(e.fmt?.number(e.data?.daily?.today?.pageViews||0)),1),t[24]||(t[24]=n("div",{class:"ov-daily-sub"},"so far today",-1))])]),f(" \u2500\u2500 Daily charts \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",R1,[n("div",D1,[n("div",T1,[t[26]||(t[26]=n("span",{class:"ov-chart-title"},"Daily page views \xB7 30d",-1)),n("span",A1,[t[25]||(t[25]=n("span",{class:"ov-dot-legend ov-dot-accent"},null,-1)),y("views/day \xB7 peak "+p(e.fmt?.number(e.historyMax("dailyPageViews"))),1)])]),e.data?.history?.length?(l(),d("div",_1,[(l(!0),d(W,null,ae(e.data?.history,(s,i)=>(l(),d("div",{class:"ov-spark-col has-tip",key:i,"data-tip":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyPageViews)+" views","aria-label":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyPageViews)+" views"},[n("span",{class:"ov-spark-fill",style:$e({height:e.historyBarH(s,"dailyPageViews")+"px"})},null,4)],8,O1))),128))])):f("v-if",!0),e.data?.history?.length?(l(),d("div",P1,[n("span",null,p(e.historyLabel(e.data?.history[0])),1),n("span",null,p(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,p(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):f("v-if",!0)]),n("div",I1,[n("div",M1,[t[28]||(t[28]=n("span",{class:"ov-chart-title"},"New repos \xB7 30d",-1)),n("span",V1,[t[27]||(t[27]=n("span",{class:"ov-dot-legend ov-dot-ok-fill"},null,-1)),y("repos/day \xB7 peak "+p(e.fmt?.number(e.historyMax("dailyRepositories"))),1)])]),e.data?.history?.length?(l(),d("div",q1,[(l(!0),d(W,null,ae(e.data?.history,(s,i)=>(l(),d("div",{class:"ov-spark-col has-tip",key:i,"data-tip":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyRepositories)+" repos","aria-label":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyRepositories)+" repos"},[n("span",{class:"ov-spark-fill ov-spark-fill-alt",style:$e({height:e.historyBarH(s,"dailyRepositories")+"px"})},null,4)],8,$1))),128))])):f("v-if",!0),e.data?.history?.length?(l(),d("div",L1,[n("span",null,p(e.historyLabel(e.data?.history[0])),1),n("span",null,p(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,p(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):f("v-if",!0)]),n("div",U1,[n("div",F1,[t[30]||(t[30]=n("span",{class:"ov-chart-title"},"Users \xB7 30d",-1)),n("span",B1,[t[29]||(t[29]=n("span",{class:"ov-dot-legend ov-dot-user-fill"},null,-1)),y("total users \xB7 "+p(e.fmt?.number(e.historyRange("nbUsers").min))+"\u2013"+p(e.fmt?.number(e.historyRange("nbUsers").max)),1)])]),e.data?.history?.length?(l(),d("div",z1,[(l(!0),d(W,null,ae(e.data?.history,(s,i)=>(l(),d("div",{class:"ov-spark-col has-tip",key:i,"data-tip":e.historyLabel(s)+": "+e.fmt?.number(s?.nbUsers)+" users","aria-label":e.historyLabel(s)+": "+e.fmt?.number(s?.nbUsers)+" users"},[n("span",{class:"ov-spark-fill ov-spark-fill-user",style:$e({height:e.historyRangeH(s,"nbUsers")+"px"})},null,4)],8,H1))),128))])):f("v-if",!0),e.data?.history?.length?(l(),d("div",j1,[n("span",null,p(e.historyLabel(e.data?.history[0])),1),n("span",null,p(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,p(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):f("v-if",!0)]),n("div",G1,[n("div",W1,[t[32]||(t[32]=n("span",{class:"ov-chart-title"},"New users \xB7 30d",-1)),n("span",K1,[t[31]||(t[31]=n("span",{class:"ov-dot-legend ov-dot-new-user-fill"},null,-1)),y("users/day \xB7 peak "+p(e.fmt?.number(e.historyMax("dailyUsers"))),1)])]),e.data?.history?.length?(l(),d("div",Y1,[(l(!0),d(W,null,ae(e.data?.history,(s,i)=>(l(),d("div",{class:"ov-spark-col has-tip",key:i,"data-tip":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyUsers)+" users","aria-label":e.historyLabel(s)+": +"+e.fmt?.number(s?.dailyUsers)+" users"},[n("span",{class:"ov-spark-fill ov-spark-fill-new-user",style:$e({height:e.historyBarH(s,"dailyUsers")+"px"})},null,4)],8,X1))),128))])):f("v-if",!0),e.data?.history?.length?(l(),d("div",J1,[n("span",null,p(e.historyLabel(e.data?.history[0])),1),n("span",null,p(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,p(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):f("v-if",!0)])]),f(" \u2500\u2500 Three-panel row: Status / Errors / Queues \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",Q1,[f(" Repo status breakdown "),n("div",Z1,[n("div",x1,[t[33]||(t[33]=n("span",{class:"ov-panel-title"},"Repo status",-1)),n("span",ew,p(e.fmt?.number(e.data?.repos?.total))+" total",1)]),n("div",tw,[n("span",{class:"ov-bar-seg ov-bar-ready",title:"Ready",style:$e({width:e.barPct("ready")+"%"})},null,4),n("span",{class:"ov-bar-seg ov-bar-preparing",title:"Preparing",style:$e({width:e.barPct("preparing")+"%"})},null,4),n("span",{class:"ov-bar-seg ov-bar-error",title:"Error",style:$e({width:e.barPct("error")+"%"})},null,4),n("span",{class:"ov-bar-seg ov-bar-expired",title:"Expired",style:$e({width:e.barPct("expired")+"%"})},null,4),n("span",{class:"ov-bar-seg ov-bar-removed",title:"Removed",style:$e({width:e.barPct("removed")+"%"})},null,4)]),n("div",nw,[n("a",sw,[t[34]||(t[34]=n("span",{class:"ov-swatch ov-bar-ready"},null,-1)),t[35]||(t[35]=y(" ready ",-1)),n("span",ow,p(e.fmt?.number(e.statusCount("ready"))),1)]),n("a",iw,[t[36]||(t[36]=n("span",{class:"ov-swatch ov-bar-preparing"},null,-1)),t[37]||(t[37]=y(" preparing ",-1)),n("span",rw,p(e.fmt?.number(e.statusCount("preparing")+e.statusCount("download"))),1)]),n("a",aw,[t[38]||(t[38]=n("span",{class:"ov-swatch ov-bar-error"},null,-1)),t[39]||(t[39]=y(" error ",-1)),n("span",lw,p(e.fmt?.number(e.statusCount("error"))),1)]),n("a",dw,[t[40]||(t[40]=n("span",{class:"ov-swatch ov-bar-expired"},null,-1)),t[41]||(t[41]=y(" expired ",-1)),n("span",uw,p(e.fmt?.number(e.statusCount("expired")+e.statusCount("expiring"))),1)]),n("a",cw,[t[42]||(t[42]=n("span",{class:"ov-swatch ov-bar-removed"},null,-1)),t[43]||(t[43]=y(" removed ",-1)),n("span",pw,p(e.fmt?.number(e.statusCount("removed")+e.statusCount("removing"))),1)])])]),f(" Error breakdown "),n("div",fw,[n("div",hw,[t[44]||(t[44]=n("span",{class:"ov-panel-title"},"Errors \xB7 24h",-1)),n("span",mw,p(e.data?.errors?.last24h)+" total",1)]),n("div",gw,[n("div",vw,[t[45]||(t[45]=n("span",{class:"ov-ebar-label"},"5xx",-1)),n("span",yw,[n("span",{class:"ov-ebar-fill ov-ebar-error",style:$e({width:e.errPct("error")+"%"})},null,4)]),n("span",bw,p(e.data?.errors?.severity?.error),1)]),n("div",ww,[t[46]||(t[46]=n("span",{class:"ov-ebar-label"},"4xx",-1)),n("span",kw,[n("span",{class:"ov-ebar-fill ov-ebar-warn",style:$e({width:e.errPct("warn")+"%"})},null,4)]),n("span",Cw,p(e.data?.errors?.severity?.warn),1)]),n("div",Ew,[t[47]||(t[47]=n("span",{class:"ov-ebar-label"},"Info",-1)),n("span",Sw,[n("span",{class:"ov-ebar-fill ov-ebar-info",style:$e({width:e.errPct("info")+"%"})},null,4)]),n("span",Nw,p(e.data?.errors?.severity?.info),1)])]),e.data?.repos?.recentErrors24h?(l(),d("div",Rw,[n("a",Dw,p(e.data?.repos?.recentErrors24h)+" repos in error state \u2192",1)])):f("v-if",!0)]),f(" Top routes / queues "),n("div",Tw,[t[52]||(t[52]=n("div",{class:"ov-panel-head"},[n("span",{class:"ov-panel-title"},"Queues"),n("span",{class:"ov-panel-meta"},"by state")],-1)),n("div",Aw,[t[51]||(t[51]=Ce('
QueueActiveWaitFailed
',1)),n("a",_w,[t[48]||(t[48]=n("span",{class:"ov-route-name"},"download",-1)),n("span",Ow,p(e.data?.queues?.download?.active),1),n("span",Pw,p(e.data?.queues?.download?.waiting),1),n("span",{class:_(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.download?.failed>0}])},p(e.data?.queues?.download?.failed),3)]),n("a",Iw,[t[49]||(t[49]=n("span",{class:"ov-route-name"},"remove",-1)),n("span",Mw,p(e.data?.queues?.remove?.active),1),n("span",Vw,p(e.data?.queues?.remove?.waiting),1),n("span",{class:_(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.remove?.failed>0}])},p(e.data?.queues?.remove?.failed),3)]),n("a",qw,[t[50]||(t[50]=n("span",{class:"ov-route-name"},"cache",-1)),n("span",$w,p(e.data?.queues?.cache?.active),1),n("span",Lw,p(e.data?.queues?.cache?.waiting),1),n("span",{class:_(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.cache?.failed>0}])},p(e.data?.queues?.cache?.failed),3)])])])]),f(" \u2500\u2500 Services bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",Uw,[n("div",Fw,[t[53]||(t[53]=n("span",{class:"ov-panel-title"},"Services",-1)),n("span",Bw,p(e.fmt?.number(e.data?.users?.total))+" users \xB7 "+p(e.data?.conferences?.total)+" conferences",1)]),n("div",zw,[n("div",Hw,[t[55]||(t[55]=n("span",{class:"ov-svc-dot ov-dot-ok"},null,-1)),n("div",jw,[t[54]||(t[54]=n("span",{class:"ov-svc-name"},"web",-1)),n("span",Gw,p(e.data?.system?.nodeVersion),1)]),n("span",Ww,"uptime "+p(e.humanDuration(e.data?.system?.uptime)),1)]),n("div",Kw,[n("span",{class:_(["ov-svc-dot",e.queueTotal(e.data?.queues?.download)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",Yw,[t[56]||(t[56]=n("span",{class:"ov-svc-name"},"download",-1)),e.queueTotal(e.data?.queues?.download)?(l(),d("span",Xw,p(e.queueTotal(e.data?.queues?.download))+" jobs",1)):f("v-if",!0),e.queueTotal(e.data?.queues?.download)?f("v-if",!0):(l(),d("span",Jw,"idle"))])]),n("div",Qw,[n("span",{class:_(["ov-svc-dot",e.queueTotal(e.data?.queues?.cache)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",Zw,[t[57]||(t[57]=n("span",{class:"ov-svc-name"},"cache",-1)),e.queueTotal(e.data?.queues?.cache)?(l(),d("span",xw,p(e.queueTotal(e.data?.queues?.cache))+" jobs",1)):f("v-if",!0),e.queueTotal(e.data?.queues?.cache)?f("v-if",!0):(l(),d("span",ek,"idle"))])]),n("div",tk,[n("span",{class:_(["ov-svc-dot",e.queueTotal(e.data?.queues?.remove)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",nk,[t[58]||(t[58]=n("span",{class:"ov-svc-name"},"remove",-1)),e.queueTotal(e.data?.queues?.remove)?(l(),d("span",sk,p(e.queueTotal(e.data?.queues?.remove))+" jobs",1)):f("v-if",!0),e.queueTotal(e.data?.queues?.remove)?f("v-if",!0):(l(),d("span",ok,"idle"))])]),n("div",ik,[n("span",{class:_(["ov-svc-dot",e.data?.repos?.recentErrors24h>10?"ov-dot-warn":"ov-dot-ok"])},null,2),n("div",rk,[t[59]||(t[59]=n("span",{class:"ov-svc-name"},"errors",-1)),n("span",ak,p(e.data?.errors?.last24h)+" / 24h",1)])])])])],512)),[[J,e.ovView==="summary"]]):f("v-if",!0),T(n("section",lk,[n("div",dk,[t[64]||(t[64]=n("div",null,[n("h2",{class:"ov-panel-title",id:"cache-heading"},"Cache"),n("p",{class:"ov-performance-note"},"Shared storage, repeated reads and anonymization work \xB7 refreshes every 30 seconds")],-1)),n("div",uk,[t[62]||(t[62]=n("label",{for:"cache-window"},"Time range",-1)),T(n("select",{id:"cache-window",class:"form-control form-control-sm","onUpdate:modelValue":t[0]||(t[0]=s=>e.cacheMinutes=s),onChange:t[1]||(t[1]=s=>e.loadCache())},[...t[60]||(t[60]=[n("option",{value:15},"Last 15 minutes",-1),n("option",{value:60},"Last hour",-1),n("option",{value:1440},"Last 24 hours",-1),n("option",{value:10080},"Last 7 days",-1)])],544),[[Wn,e.cacheMinutes,void 0,{number:!0}]]),t[63]||(t[63]=n("label",{for:"cache-traffic"},"Traffic",-1)),T(n("select",{id:"cache-traffic",class:"form-control form-control-sm","onUpdate:modelValue":t[2]||(t[2]=s=>e.cacheTraffic=s)},[...t[61]||(t[61]=[Ce('',6)])],512),[[Wn,e.cacheTraffic]])])]),e.cacheError?(l(),d("div",ck,[n("span",null,p(e.cacheError),1),n("button",{type:"button",class:"btn btn-sm",onClick:t[3]||(t[3]=s=>e.loadCache())},"Retry")])):f("v-if",!0),!e.cacheReport&&!e.cacheError?(l(),d("p",pk,"Loading cache monitoring\u2026")):f("v-if",!0),e.cacheReport?.available?(l(),d(W,{key:2},[e.cacheReport.enabled?f("v-if",!0):(l(),d("p",fk,"Shared blob storage is disabled. Inspection and legacy-cache activity are still measured.")),e.cacheReport.filesystemSupported?f("v-if",!0):(l(),d("p",hk,"Shared blobs require a local filesystem. The configured storage continues to use its existing cache.")),e.cacheReport.dropped?(l(),d("p",mk,p(e.cacheReport.dropped)+" telemetry events were dropped. Totals may be incomplete.",1)):f("v-if",!0),e.cacheReport.source?(l(),d("div",gk,[n("table",vk,[t[65]||(t[65]=n("caption",{class:"sr-only"},"Current shared-cache storage and byte budgets",-1)),t[66]||(t[66]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Pool"),n("th",{scope:"col"},"Allocated / budget"),n("th",{scope:"col"},"Reserved for fills"),n("th",{scope:"col"},"Original bytes"),n("th",{scope:"col"},"Blobs"),n("th",{scope:"col"},"Active readers")])],-1)),n("tbody",null,[(l(!0),d(W,null,ae([{name:"Source blobs",data:e.cacheReport.source},{name:"Transformed output",data:e.cacheReport.results}],s=>T((l(),d("tr",{key:s.name},[n("th",yk,p(s.name),1),n("td",null,p(e.humanBytes(s.data?.allocatedBytes))+" / "+p(e.humanBytes(s.data?.budgetBytes)),1),n("td",null,p(e.humanBytes(s.data?.reservedBytes)),1),n("td",null,p(e.humanBytes(s.data?.originalBytes)),1),n("td",null,p(s.data?.blobs),1),n("td",null,p(s.data?.activeReaders),1)])),[[J,s.data]])),128))])])])):f("v-if",!0),e.cacheReport.source?(l(),d("p",bk,"Source request hit rate: "+p(e.cacheRate("source","count"))+" \xB7 Source byte hit rate: "+p(e.cacheRate("source","bytes"))+" \xB7 Decision hit rate: "+p(e.cacheRate("decision","count")),1)):f("v-if",!0),t[69]||(t[69]=n("p",{class:"ov-performance-note"},"Reuse counts measure consecutive reads of the same blob within each interval. Codec timings are elapsed stream time, not CPU time; eviction times measure how long a blob was idle. Known monitors are identified by request metadata; other automation may remain in file reads.",-1)),e.cacheRows().length?(l(),d("div",wk,[n("table",kk,[t[67]||(t[67]=n("caption",{class:"sr-only"},"Cache events for the selected time range and traffic",-1)),t[68]||(t[68]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Event"),n("th",{scope:"col"},"Traffic"),n("th",{scope:"col"},"Count"),n("th",{scope:"col"},"Bytes"),n("th",{scope:"col"},"Mean measured time"),n("th",{scope:"col"},"p95 bound")])],-1)),n("tbody",null,[(l(!0),d(W,null,ae(e.cacheRows(),s=>(l(),d("tr",{key:s.name+":"+s.traffic},[n("th",Ck,p(e.cacheEventName(s.name)),1),n("td",null,p(s.traffic),1),n("td",null,p(s.count),1),n("td",null,p(e.humanBytes(s.bytes)),1),n("td",null,p(s.ms?(s.ms/s.count).toFixed(2)+" ms":"Not timed"),1),n("td",null,p(e.cacheP95(s)),1)]))),128))])])])):(l(),d("p",Ek,"No cache events in this time range for the selected traffic.")),n("p",Sk,"Updated "+p(e.sampleAge(e.cacheReport))+" seconds ago. Minute history is retained for 48 hours; hourly history for 30 days.",1)],64)):f("v-if",!0)],512),[[J,e.ovView==="cache"]]),T(n("section",Nk,[n("div",Rk,[t[72]||(t[72]=n("div",null,[n("h2",{class:"ov-panel-title",id:"performance-heading"},"Request performance"),n("p",{class:"ov-performance-note"},"Request latency and process health \xB7 refreshes every 30 seconds")],-1)),n("div",Dk,[t[71]||(t[71]=n("label",{for:"performance-window"},"Time range",-1)),T(n("select",{id:"performance-window",class:"form-control form-control-sm","onUpdate:modelValue":t[4]||(t[4]=s=>e.performanceMinutes=s),onChange:t[5]||(t[5]=s=>e.loadPerformance()),"aria-label":"Performance time range"},[...t[70]||(t[70]=[n("option",{value:15},"Last 15 minutes",-1),n("option",{value:60},"Last hour",-1)])],544),[[Wn,e.performanceMinutes,void 0,{number:!0}]])])]),e.performanceError?(l(),d("div",Tk,[t[73]||(t[73]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),n("span",null,p(e.performanceError),1),n("button",{type:"button",class:"btn btn-sm",onClick:t[6]||(t[6]=s=>e.loadPerformance())},"Retry")])):f("v-if",!0),!e.performance&&!e.performanceError?(l(),d("p",Ak,"Loading performance monitoring\u2026")):f("v-if",!0),e.performance?.available?(l(),d("div",_k,[n("div",Ok,[n("button",{id:"performance-routes-tab",type:"button",class:_(["paper-tab",{active:e.performanceTab==="routes"}]),role:"tab","aria-selected":e.performanceTab==="routes",tabindex:e.performanceTab==="routes"?0:-1,"aria-controls":"performance-routes",onClick:t[7]||(t[7]=s=>e.performanceTab="routes"),onKeydown:t[8]||(t[8]=s=>e.previewTabKeydown(s))},"Routes",42,Pk),n("button",{id:"performance-processes-tab",type:"button",class:_(["paper-tab",{active:e.performanceTab==="processes"}]),role:"tab","aria-selected":e.performanceTab==="processes",tabindex:e.performanceTab==="processes"?0:-1,"aria-controls":"performance-processes",onClick:t[9]||(t[9]=s=>e.performanceTab="processes"),onKeydown:t[10]||(t[10]=s=>e.previewTabKeydown(s))},"Processes",42,Ik),n("button",{id:"performance-stages-tab",type:"button",class:_(["paper-tab",{active:e.performanceTab==="stages"}]),role:"tab","aria-selected":e.performanceTab==="stages",tabindex:e.performanceTab==="stages"?0:-1,"aria-controls":"performance-stages",onClick:t[11]||(t[11]=s=>e.performanceTab="stages"),onKeydown:t[12]||(t[12]=s=>e.previewTabKeydown(s))},"Work stages",42,Mk)]),T(n("div",Vk,[e.performance.routes?.length?(l(),d("div",qk,[n("table",$k,[t[74]||(t[74]=n("caption",{class:"sr-only"},"Route latency for the selected time range",-1)),t[75]||(t[75]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Route"),n("th",{scope:"col",class:"num"},"Requests"),n("th",{scope:"col",class:"num"},"Average"),n("th",{scope:"col",class:"num"},"First byte p95"),n("th",{scope:"col",class:"num"},"p95"),n("th",{scope:"col",class:"num"},"p99"),n("th",{scope:"col",class:"num"},"Interrupted"),n("th",{scope:"col",class:"num"},"5xx"),n("th",{scope:"col",class:"num"},"Slow")])],-1)),n("tbody",null,[(l(!0),d(W,null,ae(e.performance.routes,s=>(l(),d("tr",{key:s.service+s.method+s.route},[n("th",Lk,[n("span",null,p(s.route),1),n("small",null,p(s.service)+" \xB7 "+p(s.method),1)]),n("td",Uk,p(e.fmt.number(s.count)),1),n("td",Fk,p(e.formatMs(s.avgMs)),1),n("td",Bk,p(e.firstByteBound(s)),1),n("td",zk,p(e.latencyBound(s,"p95UpperMs")),1),n("td",Hk,p(e.latencyBound(s,"p99UpperMs")),1),n("td",{class:_(["num",{"ov-metric-warn":s.aborted>0}])},p(e.fmt.number(s.aborted)),3),n("td",{class:_(["num",{"ov-metric-warn":s.errors>0}])},p(e.fmt.number(s.errors)),3),n("td",{class:_(["num",{"ov-metric-warn":s.slow>0}])},p(e.fmt.number(s.slow)),3)]))),128))])])])):(l(),d("p",jk,"No recorded requests in this time range yet."))],512),[[J,e.performanceTab==="routes"]]),T(n("div",Gk,[t[79]||(t[79]=n("p",{class:"ov-performance-note"},"API and streamer processes \xB7 latest sample per instance",-1)),e.performance.instances?.length?(l(),d("div",Kk,[n("table",Yk,[t[77]||(t[77]=n("caption",{class:"sr-only"},"API and streamer process resource usage",-1)),t[78]||(t[78]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Process"),n("th",{scope:"col",class:"num"},"RSS / limit"),n("th",{scope:"col",class:"num"},"CPU"),n("th",{scope:"col",class:"num"},"Event loop p95"),n("th",{scope:"col",class:"num"},"Active requests"),n("th",{scope:"col",class:"num"},"Sockets / CLOSE_WAIT"),n("th",{scope:"col",class:"num"},"Workers / waiting"),n("th",{scope:"col",class:"num"},"Sample age"),n("th",{scope:"col",class:"num"},"Dropped batches / metrics")])],-1)),n("tbody",null,[(l(!0),d(W,null,ae(e.performance.instances,s=>(l(),d("tr",{key:s.instance,class:_({"ov-metric-warning-row":e.performanceWarning(s)})},[n("th",Xk,[n("span",null,p(s.instance),1),e.performanceWarning(s)?(l(),d("small",Jk,[...t[76]||(t[76]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),y(" Needs attention",-1)])])):f("v-if",!0)]),n("td",Qk,[y(p(e.humanBytes(s.memory.rss))+" / "+p(e.humanBytes(s.memoryLimitBytes)),1),n("small",null,"Peak "+p(e.humanBytes(e.peakRss(s))),1)]),n("td",Zk,p(s.cpuPercent==null?"Unavailable":s.cpuPercent.toFixed(1)+"%"),1),n("td",xk,p(s.eventLoop?.p95Ms==null?"Not applicable":s.eventLoop.p95Ms.toFixed(1)+" ms"),1),n("td",e0,p(s.activeRequests),1),n("td",t0,p(s.sockets?.descriptors??"Unavailable")+" / "+p(s.sockets?.closeWait??"Unavailable"),1),n("td",n0,p(s.workers?.running??0)+" / "+p(s.workers?.waiting??0),1),n("td",s0,p(e.sampleAge(s))+" s",1),n("td",o0,p(s.droppedBatches)+" / "+p(s.droppedMetrics),1)],2))),128))])])])):(l(),d("div",Wk,"No recent process samples. Monitoring coverage is incomplete."))],512),[[J,e.performanceTab==="processes"]]),T(n("div",i0,[e.performance.stages?.some(s=>s.metric!=="first_byte")?(l(),d("div",r0,[n("table",a0,[t[80]||(t[80]=n("caption",{class:"sr-only"},"Work stages and cache results",-1)),t[81]||(t[81]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Work stage"),n("th",{scope:"col",class:"num"},"Samples"),n("th",{scope:"col",class:"num"},"Average"),n("th",{scope:"col",class:"num"},"p95")])],-1)),n("tbody",null,[(l(!0),d(W,null,ae(e.performance.stages.filter(s=>s.metric!=="first_byte"),s=>(l(),d("tr",{key:s.service+s.metric},[n("th",l0,[n("span",null,p(s.metric),1),n("small",null,p(s.service),1)]),n("td",d0,p(e.fmt.number(s.count)),1),n("td",u0,p(e.formatMs(s.avgMs)),1),n("td",c0,p(e.latencyBound(s,"p95UpperMs")),1)]))),128))])])])):(l(),d("p",p0,"No recorded work stages or cache results in this time range yet."))],512),[[J,e.performanceTab==="stages"]]),t[82]||(t[82]=n("details",{class:"ov-performance-help"},[n("summary",null,"How to read these metrics"),n("p",null,"Latency includes upstream waits and response transfer. Percentiles show histogram bucket upper bounds, not exact timings. Process rows marked \u201CNeeds attention\u201D have stale samples, dropped monitoring data, CLOSE_WAIT sockets, high event loop delay, or high memory usage.")],-1))])):f("v-if",!0)],512),[[J,e.ovView==="performance"]])])}var f0={class:"container paper-page admin-page"},h0={class:"q-header"},m0={class:"q-header-actions"},g0={class:"q-cards"},v0=["aria-pressed","onKeydown","onClick"],y0={class:"q-card-head"},b0=["textContent"],w0=["textContent"],k0={class:"q-card-sub"},C0={key:0,class:"q-card-bar"},E0={key:0,class:"q-detail"},S0={class:"q-throughput"},N0={class:"q-range-btns"},R0={class:"q-section-label"},D0={key:0,class:"q-section-right"},T0={class:"q-chart-wrap"},A0={key:0,class:"q-chart-empty"},_0={class:"q-stats-panel"},O0={class:"q-section-label"},P0={class:"q-stats-grid"},I0={class:"q-stat"},M0=["textContent"],V0={class:"q-stat"},q0=["textContent"],$0={class:"q-stat"},L0=["textContent"],U0={class:"q-stat"},F0=["textContent"],B0={class:"q-stat"},z0=["textContent"],H0={class:"q-stat"},j0=["textContent"],G0={class:"q-stats-actions"},W0=["disabled"],K0={class:"q-danger-group"},Y0={class:"q-jobs"},X0={class:"q-jobs-header"},J0={class:"q-section-label"},Q0={class:"q-state-filters"},Z0={class:"q-state-toggle"},x0={type:"checkbox"},e2={class:"q-search-row"},t2={type:"search",class:"form-control",placeholder:"Search by job/repo id\u2026",autocomplete:"off"},n2={class:"q-auto-refresh"},s2={type:"checkbox"},o2={key:0,class:"q-table"},i2=["onClick"],r2={class:"q-cell-state"},a2=["textContent"],l2=["textContent"],d2={class:"q-cell-id"},u2=["textContent","href"],c2={class:"q-cell-payload"},p2=["textContent"],f2={key:0,class:"q-payload-detail"},h2=["textContent"],m2=["textContent"],g2={class:"q-cell-progress"},v2={key:0,class:"q-progress-wrap"},y2=["textContent"],b2={class:"q-cell-actions"},w2=["onClick"],k2=["onClick"],C2={key:0,class:"q-detail-row"},E2={colspan:"7"},S2={class:"q-job-detail"},N2={class:"q-job-detail-grid"},R2={class:"q-job-detail-item"},D2={class:"q-job-detail-value"},T2=["textContent","href"],A2={class:"q-job-detail-item"},_2={class:"q-job-detail-value"},O2=["textContent"],P2={key:0,class:"q-job-detail-item"},I2=["textContent"],M2={key:1,class:"q-job-detail-item"},V2=["textContent"],q2={key:2,class:"q-job-detail-item"},$2={class:"q-job-detail-value"},L2={key:3,class:"q-job-detail-item"},U2=["textContent"],F2={key:4,class:"q-job-detail-item"},B2=["textContent"],z2={key:5,class:"q-job-detail-item"},H2=["textContent"],j2={key:6,class:"q-job-detail-item"},G2=["textContent"],W2={key:7,class:"q-job-detail-item"},K2=["textContent"],Y2={key:0,class:"q-job-detail-error"},X2=["textContent"],J2={key:1},Q2=["textContent"],Z2={class:"q-job-detail-actions"},x2=["onClick"],eC=["onClick"],tC=["href"],nC={key:1,class:"paper-table-empty",style:{border:"1px solid var(--border-color)","border-radius":"10px",background:"var(--paper-card)"}},sC={key:0},oC={key:1};function mc(e,t){let s=De("field");return l(),d("div",f0,[t[51]||(t[51]=n("div",{class:"paper-crumbs"},[y("Admin \xA0/\xA0 "),n("span",{class:"here"},"Queues")],-1)),n("div",h0,[t[12]||(t[12]=n("h1",{class:"paper-page-title"},"Queues",-1)),n("div",m0,[n("button",{class:"btn btn-sm",onClick:t[0]||(t[0]=i=>e.pauseAll())},"Pause all queues")])]),t[52]||(t[52]=Ce('',1)),f(" Queue overview cards "),n("div",g0,[(l(!0),d(W,null,ae(e.queueList,(i,o)=>(l(),d("div",{class:_(["q-card",{selected:e.selectedQueue==i?.key,paused:i?.paused}]),role:"button",tabindex:"0","aria-pressed":e.selectedQueue===i.key,onKeydown:[Tt(ce(r=>e.selectQueue(i.key),["prevent"]),["enter"]),Tt(ce(r=>e.selectQueue(i.key),["prevent"]),["space"])],onClick:r=>e.selectQueue(i.key)},[n("div",y0,[n("span",{class:_(["q-dot",{"q-dot-red":i?.paused||i?.counts?.failed>0,"q-dot-idle":!i?.counts?.active&&!i?.counts?.waiting}])},null,2),n("span",{class:"q-card-name",textContent:p(i?.label)},null,8,b0)]),n("div",{class:"q-card-count",textContent:p((i?.counts?.waiting||0)+(i?.counts?.active||0)+(i?.counts?.delayed||0))},null,8,w0),n("div",k0,[n("span",null,"waiting \xB7 "+p(i?.counts?.active||0)+" active",1),i?.counts?.active?(l(),d("div",C0,[n("div",{class:"q-card-bar-fill",style:$e({width:i?.counts?.active/((i?.counts?.waiting||0)+(i?.counts?.active||0)+(i?.counts?.delayed||0)||1)*100+"%"})},null,4)])):f("v-if",!0)])],42,v0))),256))]),f(" Detail: throughput chart + stats panel "),e.selectedStats?(l(),d("div",E0,[n("div",S0,[n("div",N0,[n("button",{class:_(["btn btn-sm",{active:e.range=="1h"}]),onClick:t[1]||(t[1]=i=>e.setRange("1h"))},"1h",2),n("button",{class:_(["btn btn-sm",{active:e.range=="6h"}]),onClick:t[2]||(t[2]=i=>e.setRange("6h"))},"6h",2),n("button",{class:_(["btn btn-sm",{active:e.range=="24h"}]),onClick:t[3]||(t[3]=i=>e.setRange("24h"))},"24h",2),n("button",{class:_(["btn btn-sm",{active:e.range=="7d"}]),onClick:t[4]||(t[4]=i=>e.setRange("7d"))},"7d",2)]),n("div",R0,[y("Throughput \xB7 "+p(e.selectedQueue)+" ",1),(e.selectedStats?.completed24h||0)+(e.selectedStats?.failed24h||0)>0?(l(),d("span",D0,[t[14]||(t[14]=n("span",{class:"q-legend-completed"},"\u25CF",-1)),t[15]||(t[15]=y(" completed ",-1)),t[16]||(t[16]=n("span",{class:"q-legend-failed"},"\u25CF",-1)),t[17]||(t[17]=y(" failed ",-1)),(e.selectedStats?.completed24h||0)+(e.selectedStats?.failed24h||0)>0?(l(),d(W,{key:0},[t[13]||(t[13]=n("span",{class:"q-legend-exec","aria-hidden":"true"},null,-1)),y(" avg time \xB7 "+p(e.range),1)],64)):f("v-if",!0)])):f("v-if",!0)]),n("div",T0,[t[19]||(t[19]=n("canvas",{id:"q-throughput-chart",height:"180"},null,-1)),(e.selectedStats?.completed24h||0)+(e.selectedStats?.failed24h||0)===0?(l(),d("div",A0,[...t[18]||(t[18]=[n("strong",null,"No jobs processed in this window",-1),n("span",null,"Completed and failed jobs will chart here.",-1)])])):f("v-if",!0),t[20]||(t[20]=n("div",{id:"q-chart-tooltip",class:"q-chart-tooltip",style:{display:"none"}},null,-1)),t[21]||(t[21]=n("div",{id:"q-chart-crosshair",class:"q-chart-crosshair",style:{display:"none"}},null,-1))])]),n("div",_0,[n("div",O0,"Stats \xB7 "+p(e.selectedQueue),1),n("div",P0,[n("div",I0,[t[22]||(t[22]=n("div",{class:"q-stat-label"},"Waiting",-1)),n("div",{class:"q-stat-value",textContent:p(e.selectedStats?.counts?.waiting||0)},null,8,M0)]),n("div",V0,[t[23]||(t[23]=n("div",{class:"q-stat-label"},"Active",-1)),n("div",{class:"q-stat-value",textContent:p(e.selectedStats?.counts?.active||0)},null,8,q0)]),n("div",$0,[t[24]||(t[24]=n("div",{class:"q-stat-label"},"Completed (24h)",-1)),n("div",{class:"q-stat-value",textContent:p(e.fmt?.number(e.selectedStats?.completed24h))},null,8,L0)]),n("div",U0,[t[25]||(t[25]=n("div",{class:"q-stat-label"},"Failed (24h)",-1)),n("div",{class:"q-stat-value",textContent:p(e.selectedStats?.failed24h||0)},null,8,F0)]),n("div",B0,[t[26]||(t[26]=n("div",{class:"q-stat-label"},"Delayed",-1)),n("div",{class:"q-stat-value",textContent:p(e.selectedStats?.counts?.delayed||0)},null,8,z0)]),n("div",H0,[t[27]||(t[27]=n("div",{class:"q-stat-label"},"Workers",-1)),n("div",{class:"q-stat-value",textContent:p(e.selectedStats?.workers||0)},null,8,j0)])]),n("div",G0,[n("button",{class:"btn btn-sm",onClick:t[5]||(t[5]=i=>e.togglePause())},p(e.selectedStats?.paused?"Resume "+e.selectedQueue:"Pause "+e.selectedQueue),1),n("button",{class:"btn btn-sm",onClick:t[6]||(t[6]=i=>e.retryFailed()),disabled:!e.selectedStats?.counts?.failed},"Retry failed",8,W0),n("span",K0,[n("button",{class:"btn btn-sm btn-outline-danger",onClick:t[7]||(t[7]=i=>e.drainSelected())},"Drain"),n("button",{class:"btn btn-sm btn-outline-danger",onClick:t[8]||(t[8]=i=>e.emptyQueue())},"Empty")])])])])):f("v-if",!0),e.actionError?(l(),d("div",{key:1,class:"q-toast-error",onClick:t[9]||(t[9]=i=>e.actionError=null)},[t[28]||(t[28]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1)),y(" "+p(e.actionError),1)])):f("v-if",!0),f(" Jobs table "),n("div",Y0,[n("div",X0,[n("div",J0,"All jobs \xB7 "+p(e.selectedQueue),1),n("div",Q0,[(l(!0),d(W,null,ae(e.allStates,(i,o)=>(l(),d("label",Z0,[T(n("input",x0,null,512),[[s,{state:e.viewState,set:r=>{e.stateFilter[i]=r},value:e.stateFilter[i],form:null,options:{}}]]),n("span",{class:_("q-state-chip q-state-"+i)},p(i),3)]))),256))])]),n("div",e2,[T(n("input",t2,null,512),[[s,{state:e.viewState,set:i=>{e.query.search=i},value:e.query?.search,form:null,options:{}}]]),n("label",n2,[T(n("input",s2,null,512),[[s,{state:e.viewState,set:i=>{e.query.autoRefresh=i},value:e.query?.autoRefresh,form:null,options:{}}]]),t[29]||(t[29]=n("span",{class:"auto-refresh-label"},"Auto-refresh",-1))]),n("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[10]||(t[10]=i=>e.refreshNow()),"aria-label":"Refresh"},[...t[30]||(t[30]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])]),e.filteredJobs().length>0?(l(),d("table",o2,[t[49]||(t[49]=n("thead",null,[n("tr",null,[n("th",null,"State"),n("th",null,"Job ID"),n("th",null,"Payload"),n("th",null,"Attempts"),n("th",null,"Duration"),n("th",null,"Progress"),n("th")])],-1)),(l(!0),d(W,null,ae(e.filteredJobs(),(i,o)=>(l(),d("tbody",null,[n("tr",{style:{cursor:"pointer"},class:_({"q-row-failed":i?._state=="failed","q-row-expanded":e.expanded[i?.id]}),onClick:r=>e.toggleJob(i)},[n("td",r2,[n("span",{textContent:p(i?._state),class:_("q-state-badge q-state-"+i?._state)},null,10,a2),i?._state=="delayed"&&i?.delayUntil?(l(),d("span",{key:0,class:"q-delay-hint",textContent:p(e.delayCountdown(i?.delayUntil))},null,8,l2)):f("v-if",!0)]),n("td",d2,[(l(),d("svg",{class:_(["ui-icon q-chevron",{"q-chevron-open":e.expanded[i?.id]}]),"aria-hidden":"true"},[...t[31]||(t[31]=[n("use",{href:"#ui-icon-chevron-right"},null,-1)])],2)),n("a",{target:"_blank",textContent:p("job:"+e.fmt.limitTo(i?.id,6)),onClick:t[11]||(t[11]=r=>r.stopPropagation()),href:e.safeUrl("/r/"+i?.id)},null,8,u2)]),n("td",c2,[n("span",{textContent:p(i?.name||"anonymize")},null,8,p2),i?.data?.repoId&&i?.data?.repoId!==i?.name?(l(),d("span",f2," \xB7 "+p(i?.data?.repoId),1)):f("v-if",!0)]),n("td",{class:"q-cell-num",textContent:p(i?.attemptsMade||1)},null,8,h2),n("td",{class:"q-cell-num",textContent:p(e.jobDuration(i))},null,8,m2),n("td",g2,[e.jobProgressPct(i)!==null?(l(),d("div",v2,[n("div",{class:"q-progress-bar",style:$e({"--pct":e.jobProgressPct(i)+"%"})},null,4),n("span",{class:"q-progress-label",textContent:p(e.jobProgressPct(i)+"%")},null,8,y2)])):f("v-if",!0)]),n("td",b2,[i?._state=="failed"?(l(),d("button",{key:0,class:"btn btn-sm btn-icon",title:"Retry",onClick:r=>{e.retryJob(i),r.stopPropagation()},"aria-label":"Retry job"},[...t[32]||(t[32]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])],8,w2)):f("v-if",!0),n("button",{class:"btn btn-sm btn-icon",title:"Remove","aria-label":"Remove job",onClick:r=>{e.removeJob(i),r.stopPropagation()}},[...t[33]||(t[33]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)])],8,k2)])],10,i2),e.expanded[i?.id]?(l(),d("tr",C2,[n("td",E2,[n("div",S2,[n("div",N2,[n("div",R2,[t[34]||(t[34]=n("span",{class:"q-job-detail-label"},"Job id",-1)),n("span",D2,[n("a",{target:"_blank",textContent:p(i?.id),href:e.safeUrl("/r/"+i?.id)},null,8,T2)])]),n("div",A2,[t[35]||(t[35]=n("span",{class:"q-job-detail-label"},"State",-1)),n("span",_2,[n("span",{textContent:p(i?._state),class:_("q-state-badge q-state-"+i?._state)},null,10,O2)])]),i?.data?.repoId?(l(),d("div",P2,[t[36]||(t[36]=n("span",{class:"q-job-detail-label"},"Repo ID",-1)),n("span",{class:"q-job-detail-value",textContent:p(i?.data?.repoId)},null,8,I2)])):f("v-if",!0),i?.timestamp?(l(),d("div",M2,[t[37]||(t[37]=n("span",{class:"q-job-detail-label"},"Created",-1)),n("span",{class:"q-job-detail-value",textContent:p(e.humanTime(i?.timestamp))},null,8,V2)])):f("v-if",!0),i?._state=="delayed"&&i?.delayUntil?(l(),d("div",q2,[t[38]||(t[38]=n("span",{class:"q-job-detail-label"},"Retry at",-1)),n("span",$2,p(e.humanTime(i?.delayUntil))+" ("+p(e.delayCountdown(i?.delayUntil))+")",1)])):f("v-if",!0),i?.processedOn?(l(),d("div",L2,[t[39]||(t[39]=n("span",{class:"q-job-detail-label"},"Processed",-1)),n("span",{class:"q-job-detail-value",textContent:p(e.humanTime(i?.processedOn))},null,8,U2)])):f("v-if",!0),i?.finishedOn?(l(),d("div",F2,[t[40]||(t[40]=n("span",{class:"q-job-detail-label"},"Finished",-1)),n("span",{class:"q-job-detail-value",textContent:p(e.humanTime(i?.finishedOn))},null,8,B2)])):f("v-if",!0),i?.attemptsMade?(l(),d("div",z2,[t[41]||(t[41]=n("span",{class:"q-job-detail-label"},"Attempts",-1)),n("span",{class:"q-job-detail-value",textContent:p(i?.attemptsMade)},null,8,H2)])):f("v-if",!0),i?.progress&&i?.progress?.status?(l(),d("div",j2,[t[42]||(t[42]=n("span",{class:"q-job-detail-label"},"Status",-1)),n("span",{class:"q-job-detail-value",textContent:p(i?.progress?.status)},null,8,G2)])):f("v-if",!0),e.jobProgressPct(i)!==null?(l(),d("div",W2,[t[43]||(t[43]=n("span",{class:"q-job-detail-label"},"Progress",-1)),n("span",{class:"q-job-detail-value",textContent:p(e.jobProgressPct(i)+"%")},null,8,K2)])):f("v-if",!0)]),i?.failedReason?(l(),d("div",Y2,[t[44]||(t[44]=n("span",{class:"q-job-detail-label"},"Error",-1)),n("div",{class:"q-error-reason",textContent:p(i?.failedReason)},null,8,X2)])):f("v-if",!0),i?.stacktrace?.length?(l(),d("div",J2,[t[45]||(t[45]=n("span",{class:"q-job-detail-label"},"Stacktrace",-1)),(l(!0),d(W,null,ae(i?.stacktrace,(r,a)=>(l(),d("pre",{class:"q-error-stack",key:a},[n("code",{textContent:p(r)},null,8,Q2)]))),128))])):f("v-if",!0),n("div",Z2,[i?._state=="failed"?(l(),d("button",{key:0,class:"btn btn-sm",onClick:r=>e.retryJob(i)},[...t[46]||(t[46]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),y(" Retry",-1)])],8,x2)):f("v-if",!0),n("button",{class:"btn btn-sm",onClick:r=>e.removeJob(i)},[...t[47]||(t[47]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),y(" Remove",-1)])],8,eC),n("a",{class:"btn btn-sm",target:"_blank",href:e.safeUrl("/r/"+i?.id)},[...t[48]||(t[48]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1),y(" View repo",-1)])],8,tC)])])])])):f("v-if",!0)]))),256))])):f("v-if",!0),e.filteredJobs().length==0?(l(),d("div",nC,[t[50]||(t[50]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1)),e.query?.search?f("v-if",!0):(l(),d("span",sC,"No jobs in the "+p(e.selectedQueue)+" queue.",1)),e.query?.search?(l(),d("span",oC,"No jobs match the current filters.")):f("v-if",!0)])):f("v-if",!0)])])}var iC={class:"container paper-page admin-page"},rC={class:"admin-summary"},aC={class:"summary-total"},lC={class:"summary-meta"},dC=["aria-pressed"],uC={class:"count"},cC=["aria-pressed"],pC={class:"count"},fC=["aria-pressed"],hC={class:"count"},mC=["aria-pressed"],gC={class:"count"},vC=["title","aria-pressed"],yC={class:"count"},bC={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},wC={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},kC=["aria-expanded"],CC={class:"search-wrap"},EC={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repositories\u2026",autocomplete:"off"},SC={key:0,class:"admin-search-hint"},NC={class:"admin-filter-inline"},RC={type:"text",class:"form-control form-control-sm",placeholder:"username"},DC={class:"admin-filter-inline"},TC={type:"text",class:"form-control form-control-sm",placeholder:"ID"},AC={key:0,class:"admin-filter-inline","aria-label":"Pagination"},_C=["disabled"],OC={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},PC=["disabled"],IC={key:0,class:"admin-filter-row"},MC={class:"admin-active-chips"},VC={class:"key"},qC=["onClick"],$C={key:1,class:"bulk-bar"},LC={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},UC={class:"paper-table-head",role:"row"},FC={role:"columnheader",style:{width:"28px"}},BC=["checked"],zC={role:"columnheader"},HC={role:"columnheader"},jC={role:"columnheader",class:"num"},GC={role:"columnheader"},WC={role:"cell",style:{width:"28px"}},KC={type:"checkbox","aria-label":"Select repository"},YC={class:"cell-anon",role:"cell"},XC={class:"anon-text"},JC=["textContent","href"],QC={class:"anon-sub"},ZC=["textContent","href"],xC={key:0,class:"meta-sep"},eE=["textContent","href"],tE={key:1,class:"meta-sep"},nE=["textContent","href"],sE={key:2,class:"meta-sep"},oE={key:3,class:"meta-sep"},iE={class:"cell-status",role:"cell"},rE={class:"status-line"},aE=["textContent"],lE=["textContent","title"],dE={class:"cell-views num",role:"cell"},uE=["textContent"],cE={class:"cell-expires",role:"cell"},pE=["textContent"],fE={class:"cell-actions",role:"cell"},hE={class:"dropdown"},mE={class:"dropdown-menu dropdown-menu-right"},gE=["href"],vE=["href"],yE=["href"],bE=["onClick"],wE=["onClick"],kE=["onClick"],CE=["onClick"],EE=["onClick"],SE=["onClick"],NE={key:0,class:"paper-table-empty"},RE={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},DE={style:{"font-size":"12px",color:"var(--ink-muted)"}},TE={key:0,class:"pagination-compact"},AE=["disabled"],_E=["max"],OE=["disabled"],PE={class:"admin-filter-inline"},IE={class:"form-control form-control-sm"};function gc(e,t){let s=De("field"),i=De("form");return l(),d("div",iC,[t[70]||(t[70]=Ce('
Admin \xA0/\xA0 Repositories

Repositories

',3)),n("div",rC,[n("span",aC,[y(p(e.total>=0?e.fmt.number(e.total):"\u2026")+" ",1),n("small",null,p(e.total===1?"repository":"repositories"),1)]),n("span",lC,p(e.fmt?.humanFileSize(e.totalSize))+" on disk",1),t[25]||(t[25]=n("span",{class:"summary-show-label"},"Show:",-1)),n("button",{type:"button",class:_(["summary-pill ok",{active:e.query?.ready}]),title:"Toggle ready filter",onClick:t[0]||(t[0]=o=>{e.query.ready=!e.query.ready,e.query.page=1}),"aria-pressed":!!e.query?.ready},[t[20]||(t[20]=y("Ready ",-1)),n("span",uC,p(e.fmt?.number(e.statusCountFor("ready"))),1)],10,dC),n("button",{type:"button",class:_(["summary-pill warn",{active:e.query?.preparing}]),title:"Toggle preparing filter",onClick:t[1]||(t[1]=o=>{e.query.preparing=!e.query.preparing,e.query.page=1}),"aria-pressed":!!e.query?.preparing},[t[21]||(t[21]=y("Preparing ",-1)),n("span",pC,p(e.fmt?.number(e.statusCountFor("preparing")+e.statusCountFor("download"))),1)],10,cC),n("button",{type:"button",class:_(["summary-pill error",{active:e.query?.error}]),title:"Toggle errored filter",onClick:t[2]||(t[2]=o=>{e.query.error=!e.query.error,e.query.page=1}),"aria-pressed":!!e.query?.error},[t[22]||(t[22]=y("Errored ",-1)),n("span",hC,p(e.fmt?.number(e.statusCountFor("error"))),1)],10,fC),n("button",{type:"button",class:_(["summary-pill",{active:e.query?.expired}]),title:"Toggle expired filter",onClick:t[3]||(t[3]=o=>{e.query.expired=!e.query.expired,e.query.page=1}),"aria-pressed":!!e.query?.expired},[t[23]||(t[23]=y("Expired ",-1)),n("span",gC,p(e.fmt?.number(e.statusCountFor("expired")+e.statusCountFor("expiring"))),1)],10,mC),n("button",{type:"button",class:_(["summary-pill",{active:e.query?.removed}]),title:e.query?.removed?"Removed repositories are shown. Click to hide them.":"Removed repositories are hidden. Click to include them.",onClick:t[4]||(t[4]=o=>{e.query.removed=!e.query.removed,e.query.page=1}),"aria-pressed":!!e.query?.removed},[t[24]||(t[24]=y("Removed ",-1)),n("span",yC,p(e.fmt?.number(e.statusCountFor("removed")+e.statusCountFor("removing"))),1)],10,vC)]),e.fetchError?(l(),d("div",bC,[t[26]||(t[26]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),y(" "+p(e.fetchError),1)])):f("v-if",!0),T((l(),d("form",wC,[f(" Row 1: search + scoped inputs + headline actions "),n("button",{type:"button",class:"btn btn-sm admin-filters-toggle",onClick:t[5]||(t[5]=o=>e.filtersOpen=!e.filtersOpen),"aria-expanded":e.filtersOpen?"true":"false"},"Filters",8,kC),n("div",{class:_(["admin-filter-row",{"is-open":e.filtersOpen}])},[n("div",CC,[T(n("input",EC,null,512),[[s,{state:e.viewState,set:o=>{e.query.search=o},value:e.query?.search,form:null,options:{}}]]),e.query?.search?f("v-if",!0):(l(),d("span",SC,"/"))]),n("span",NC,[t[27]||(t[27]=n("label",null,"Owner",-1)),T(n("input",RC,null,512),[[s,{state:e.viewState,set:o=>{e.query.owner=o},value:e.query?.owner,form:null,options:{}}]])]),n("span",DC,[t[28]||(t[28]=n("label",null,"Conference",-1)),T(n("input",TC,null,512),[[s,{state:e.viewState,set:o=>{e.query.conference=o},value:e.query?.conference,form:null,options:{}}]])]),t[32]||(t[32]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[6]||(t[6]=o=>e.exportCsv())},[...t[29]||(t[29]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),y(" Export",-1)])]),e.totalPage>1?(l(),d("span",AC,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[7]||(t[7]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[30]||(t[30]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,_C),n("span",OC,p(e.query?.page)+"/"+p(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[8]||(t[8]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[31]||(t[31]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,PC)])):f("v-if",!0)],2),f(" Row 2: appears only when there are active filter chips "),e.chips?.length?(l(),d("div",IC,[n("div",MC,[(l(!0),d(W,null,ae(e.chips,(o,r)=>(l(),d("span",{class:"admin-active-chip",key:o?.key},[n("span",VC,p(o?.label),1),n("span",null,p(o?.value),1),n("button",{type:"button","aria-label":"Remove filter",onClick:a=>e.clearFilter(o.key)},[...t[33]||(t[33]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,qC)]))),128))])])):f("v-if",!0)])),[[i,e.viewState]]),e.selectedCount()>0?(l(),d("div",$C,[n("span",null,[n("strong",null,p(e.selectedCount()),1),t[34]||(t[34]=y(" selected",-1))]),n("button",{class:"btn btn-sm",type:"button",onClick:t[9]||(t[9]=o=>e.bulkRefresh())},[...t[35]||(t[35]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),y(" Force refresh",-1)])]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[10]||(t[10]=o=>e.bulkRemoveCache())},[...t[36]||(t[36]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),y(" Remove cache",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[11]||(t[11]=o=>e.clearSelection())},"Clear")])):f("v-if",!0),n("div",LC,[n("div",UC,[n("div",FC,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[12]||(t[12]=o=>e.selectAllOnPage()),checked:e.allSelected},null,8,BC)]),n("div",zC,[n("button",{type:"button",class:_(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[13]||(t[13]=o=>e.sortBy("source.repositoryName"))},[t[38]||(t[38]=y("Repository ",-1)),e.sortIcon("source.repositoryName")?(l(),d("svg",{key:0,class:_(["ui-icon sort-direction",{ascending:e.sortIcon("source.repositoryName")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[37]||(t[37]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",HC,[n("button",{type:"button",class:_(["sortable",{active:e.query?.sort=="status"}]),onClick:t[14]||(t[14]=o=>e.sortBy("status"))},[t[40]||(t[40]=y("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:_(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[39]||(t[39]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",jC,[n("button",{type:"button",class:_(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[15]||(t[15]=o=>e.sortBy("pageView"))},[t[42]||(t[42]=y("Views ",-1)),e.sortIcon("pageView")?(l(),d("svg",{key:0,class:_(["ui-icon sort-direction",{ascending:e.sortIcon("pageView")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[41]||(t[41]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",GC,[n("button",{type:"button",class:_(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[16]||(t[16]=o=>e.sortBy("anonymizeDate"))},[t[44]||(t[44]=y("Anonymized ",-1)),e.sortIcon("anonymizeDate")?(l(),d("svg",{key:0,class:_(["ui-icon sort-direction",{ascending:e.sortIcon("anonymizeDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[43]||(t[43]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[45]||(t[45]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(W,null,ae(e.filteredRepositories,(o,r)=>(l(),d("div",{class:_(["paper-table-row",{"repo-inactive":o?.status=="expired"||o?.status=="removed","repo-error":o?.status=="error","row-selected":e.selected[o?.repoId]}]),role:"row"},[n("div",WC,[T(n("input",KC,null,512),[[s,{state:e.viewState,set:a=>{e.selected[o.repoId]=a},value:e.selected[o?.repoId],form:null,options:{}}]])]),n("div",YC,[t[47]||(t[47]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",XC,[n("a",{class:"repo-name",target:"_blank",textContent:p(o?.repoId),href:e.safeUrl("/r/"+o?.repoId)},null,8,JC),n("div",QC,[n("a",{textContent:p(o?.source?.repositoryName),href:e.safeUrl("https://github.com/"+o?.source?.repositoryName+"/")},null,8,ZC),o?.options?.update?(l(),d("span",xC,[n("a",{textContent:p(o?.source?.branch),href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/tree/"+o?.source?.branch)},null,8,eE)])):f("v-if",!0),o?.options?.update?f("v-if",!0):(l(),d("span",tE,[n("a",{class:"mono-hash",textContent:p(o?.source?.commit?.substring(0,7)),href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/tree/"+o?.source?.commit)},null,8,nE)])),o?.conference?(l(),d("span",sE,[t[46]||(t[46]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),y(" "+p(o?.conference),1)])):f("v-if",!0),o?.size?.storage>0?(l(),d("span",oE,p(e.fmt?.humanFileSize(o?.size?.storage)),1)):f("v-if",!0),n("span",null,p(e.fmt?.number(o?.options?.terms?.length))+" "+p(o?.options?.terms?.length===1?"term":"terms"),1)])])]),n("div",iE,[n("span",rE,[n("span",{class:_(["status-dot",{"status-removed":o?.status=="removed"||o?.status=="expired","status-ready":o?.status=="ready","status-error":o?.status=="error","status-preparing":o?.status=="preparing"}])},null,2),n("span",{textContent:p(e.fmt?.title(o?.status))},null,8,aE)]),o?.statusMessage?(l(),d("span",{key:0,class:"status-sub",textContent:p(e.fmt?.statusMsg(o?.statusMessage)),title:o?.statusMessage},null,8,lE)):f("v-if",!0)]),n("div",dE,[t[48]||(t[48]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),t[49]||(t[49]=y()),n("span",{textContent:p(e.fmt?.number(o?.pageView||0))},null,8,uE)]),n("div",cE,[t[50]||(t[50]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[51]||(t[51]=y()),n("span",{textContent:p((e.fmt?.humanTime(o?.anonymizeDate)||"").replace(/^on /,""))},null,8,pE)]),n("div",fE,[n("div",hE,[t[63]||(t[63]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",mE,[n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+o?.repoId)},[...t[52]||(t[52]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),y(" Edit",-1)])],8,gE),n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+o?.repoId+"/")},[...t[53]||(t[53]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),y(" View repo",-1)])],8,vE),o?.options?.page&&o?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+o?.repoId+"/")},[...t[54]||(t[54]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),y(" View page",-1)])],8,yE)):f("v-if",!0),n("a",{class:"dropdown-item",href:"#",onClick:ce(a=>e.fetchGithubInfo(o),["prevent"])},[...t[55]||(t[55]=[n("i",{class:"fab fa-github"},null,-1),y(" Live GitHub info",-1)])],8,bE),t[61]||(t[61]=n("div",{class:"dropdown-divider"},null,-1)),T(n("a",{class:"dropdown-item",href:"#",onClick:ce(a=>e.updateRepository(o),["prevent"])},[...t[56]||(t[56]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),y(" Force update",-1)])],8,wE),[[J,o?.status=="ready"||o?.status=="error"]]),T(n("a",{class:"dropdown-item",href:"#",onClick:ce(a=>e.updateRepository(o),["prevent"])},[...t[57]||(t[57]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),y(" Enable",-1)])],8,kE),[[J,o?.status=="removed"]]),T(n("a",{class:"dropdown-item",href:"#",onClick:ce(a=>e.showStatusMessage(o),["prevent"])},[...t[58]||(t[58]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),y(" View status message",-1)])],8,CE),[[J,o?.statusMessage]]),t[62]||(t[62]=n("div",{class:"dropdown-divider"},null,-1)),n("a",{class:"dropdown-item",href:"#",onClick:ce(a=>e.removeCache(o),["prevent"])},[...t[59]||(t[59]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),y(" Remove cache",-1)])],8,EE),T(n("a",{class:"dropdown-item text-danger",href:"#",onClick:ce(a=>e.removeRepository(o),["prevent"])},[...t[60]||(t[60]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),y(" Remove",-1)])],8,SE),[[J,o?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(l(),d("div",NE,[t[64]||(t[64]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),t[65]||(t[65]=n("span",null,"No repositories match the current filters.",-1)),e.query.ready&&e.query.expired&&e.query.removed&&e.query.error&&e.query.preparing?f("v-if",!0):(l(),d("button",{key:0,type:"button",class:"btn btn-sm btn-outline-ink",onClick:t[17]||(t[17]=o=>e.showAllStatuses())},"Show all statuses"))])):f("v-if",!0)]),n("div",RE,[n("span",DE,p(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",TE,[n("button",{class:"btn btn-sm",onClick:t[18]||(t[18]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[66]||(t[66]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),y(" Previous ",-1)])],8,AE),T(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},"aria-label":"Page",max:e.totalPage},null,8,_E),[[s,{state:e.viewState,set:o=>{e.query.page=o},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+p(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[19]||(t[19]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[67]||(t[67]=[y(" Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,OE)])):f("v-if",!0),n("span",PE,[t[69]||(t[69]=n("label",null,"Per page",-1)),T((l(),d("select",IE,[...t[68]||(t[68]=[Ce('',5)])])),[[s,{state:e.viewState,set:o=>{e.query.limit=o},value:e.query?.limit,form:null,options:{}}]])])])])}var ME={class:"container paper-page admin-page"},VE={class:"paper-crumbs"},qE={class:"here"},$E={class:"paper-page-title"},LE={key:0,class:"user-detail-card"},UE={class:"user-header"},FE=["src"],BE={class:"status-dot-wrap"},zE=["textContent"],HE={key:0,class:"type-badge type-repo"},jE={class:"user-actions",style:{"margin-top":"4px"}},GE={class:"user-detail-grid"},WE={class:"detail-value mono-id"},KE={class:"detail-value"},YE=["href"],XE={class:"detail-value"},JE={class:"detail-value"},QE={key:0},ZE={key:1,class:"text-muted"},xE={class:"detail-value"},eS={key:0,style:{"margin-top":"20px"}},tS={class:"paper-table w-100",style:{"margin-top":"10px"}},nS={class:"paper-table-row",style:{"grid-template-columns":"1fr 160px"}},sS={class:"cell-anon",role:"cell"},oS={class:"anon-text"},iS=["textContent"],rS={class:"cell-expires",role:"cell"},aS={key:1,class:"admin-section-header"},lS={class:"section-count"},dS={key:2,class:"user-detail-card"},uS={type:"text",class:"form-control",placeholder:"Token name (e.g. dev-laptop)",required:""},cS={key:0,class:"alert alert-warning",role:"alert"},pS={style:{"white-space":"pre-wrap","word-break":"break-all",margin:"8px 0 0","font-family":"var(--font-mono)","font-size":"0.85rem"}},fS={key:1,class:"paper-table w-100"},hS={class:"paper-table-row",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},mS=["textContent"],gS=["textContent"],vS={role:"cell"},yS={key:0},bS={key:1,class:"text-muted"},wS={role:"cell"},kS=["onClick"],CS={key:2,class:"paper-table-empty"},ES={class:"admin-section-header"},SS={class:"section-count"},NS={class:"admin-summary"},RS={class:"summary-total"},DS=["aria-pressed"],TS={class:"count"},AS=["aria-pressed"],_S={class:"count"},OS=["aria-pressed"],PS={class:"count"},IS=["aria-pressed"],MS={class:"count"},VS=["aria-pressed"],qS={class:"count"},$S={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},LS={class:"admin-filter-row"},US={class:"search-wrap"},FS={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repoId, source repo, error message\u2026",autocomplete:"off"},BS={key:3,class:"bulk-bar"},zS={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},HS={class:"paper-table-head",role:"row"},jS={role:"columnheader",style:{width:"28px"}},GS=["checked"],WS={role:"columnheader"},KS={role:"columnheader"},YS={role:"columnheader",class:"num"},XS={role:"columnheader"},JS={role:"cell",style:{width:"28px"}},QS={type:"checkbox","aria-label":"Select repository"},ZS={class:"cell-anon",role:"cell"},xS={class:"anon-text"},eN=["textContent","href"],tN={class:"anon-sub"},nN=["textContent","href"],sN={key:0},oN=["textContent","href"],iN={key:1},rN=["textContent","href"],aN={key:2},lN={class:"cell-status",role:"cell"},dN={class:"status-line"},uN=["textContent"],cN=["textContent","title"],pN=["textContent"],fN=["textContent"],hN={class:"cell-actions",role:"cell"},mN={class:"dropdown"},gN={class:"dropdown-menu dropdown-menu-right"},vN=["href"],yN=["href"],bN=["href"],wN=["onClick"],kN=["onClick"],CN=["onClick"],EN=["onClick"],SN=["onClick"],NN=["onClick"],RN={key:0,class:"paper-table-empty"};function vc(e,t){let s=De("field"),i=De("form");return l(),d("div",ME,[n("div",VE,[t[22]||(t[22]=n("a",{href:"/admin/"},"Admin",-1)),t[23]||(t[23]=y(" \xA0/\xA0 ",-1)),t[24]||(t[24]=n("a",{href:"/admin/users"},"Users",-1)),t[25]||(t[25]=y(" \xA0/\xA0 ",-1)),n("span",qE,p(e.userInfo?.username||"Profile"),1)]),n("h1",$E,p(e.userInfo?.username||"User"),1),t[87]||(t[87]=Ce('',1)),e.userInfo?(l(),d("div",LE,[n("div",UE,[e.userInfo?.photo?(l(),d("img",{key:0,width:"56",height:"56",src:e.safeUrl(e.userInfo?.photo)},null,8,FE)):f("v-if",!0),n("div",null,[n("h2",null,[y(p(e.userInfo?.username)+" ",1),n("span",BE,[n("span",{class:_(["status-dot",{"status-ready":e.userInfo?.status=="active","status-removed":e.userInfo?.status!="active"}])},null,2),n("span",{textContent:p(e.fmt?.title(e.userInfo?.status))},null,8,zE)]),e.userInfo?.isAdmin?(l(),d("span",HE,"Admin")):f("v-if",!0)]),n("div",jE,[e.userInfo?.status!=="banned"&&e.userInfo?.username!==e.user?.username?(l(),d("button",{key:0,class:"btn btn-sm btn-outline-danger",onClick:t[0]||(t[0]=o=>e.banUser())},[...t[26]||(t[26]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),y(" Ban",-1)])])):f("v-if",!0),e.userInfo?.status==="banned"||e.userInfo?.status==="removed"?(l(),d("button",{key:1,class:"btn btn-sm",onClick:t[1]||(t[1]=o=>e.activateUser())},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),y(" Activate",-1)])])):f("v-if",!0),e.userInfo?.isAdmin?f("v-if",!0):(l(),d("button",{key:2,class:"btn btn-sm",onClick:t[2]||(t[2]=o=>e.promoteUser())},[...t[28]||(t[28]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user-shield"})],-1),y(" Promote to admin",-1)])])),e.userInfo?.isAdmin&&e.userInfo?.username!==e.user?.username?(l(),d("button",{key:3,class:"btn btn-sm btn-outline-ink",onClick:t[3]||(t[3]=o=>e.demoteUser())},[...t[29]||(t[29]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user-minus"})],-1),y(" Remove admin",-1)])])):f("v-if",!0)])])]),n("div",GE,[t[32]||(t[32]=n("div",{class:"detail-label"},"ID",-1)),n("div",WE,p(e.userInfo?._id),1),t[33]||(t[33]=n("div",{class:"detail-label"},"Email",-1)),n("div",{class:_(["detail-value",{"is-empty":!e.userInfo?.emails?.[0]?.email}])},p(e.userInfo?.emails?.[0]?.email||"Not shared"),3),t[34]||(t[34]=n("div",{class:"detail-label"},"Access token",-1)),n("div",{class:_(["detail-value",{"is-empty":!e.userInfo?.accessTokens?.github}]),style:{"font-family":"var(--font-mono)","font-size":"0.85rem"}},p(e.userInfo?.accessTokens?.github||"Not stored"),3),t[35]||(t[35]=n("div",{class:"detail-label"},"GitHub",-1)),n("div",KE,[n("a",{target:"_blank",href:e.safeUrl("https://github.com/"+e.userInfo?.username)},[t[30]||(t[30]=n("i",{class:"fab fa-github"},null,-1)),y(" "+p(e.userInfo?.username),1)],8,YE)]),t[36]||(t[36]=n("div",{class:"detail-label"},"Created",-1)),n("div",XE,p(e.fmt?.humanTime(e.userInfo?.dateOfEntry)),1),t[37]||(t[37]=n("div",{class:"detail-label"},"Last connection",-1)),n("div",JE,[e.userInfo?.accessTokenDates?.github?(l(),d("span",QE,p(e.fmt?.humanTime(e.userInfo?.accessTokenDates?.github)),1)):f("v-if",!0),e.userInfo?.accessTokenDates?.github?f("v-if",!0):(l(),d("span",ZE,"Not recorded (GitHub App sign-in)"))]),t[38]||(t[38]=n("div",{class:"detail-label"},"GitHub repos",-1)),n("div",xE,[y(p(e.userInfo?.repositories?.length?e.userInfo.repositories.length+" repositories":"Not synced")+" ",1),e.userInfo?.repositories?.length?(l(),d("button",{key:0,class:"btn btn-sm ml-2",onClick:t[4]||(t[4]=o=>e.showRepos=!e.showRepos)},p(e.showRepos?"Hide repos":"Show repos"),1)):f("v-if",!0),n("button",{class:"btn btn-sm ml-1",onClick:t[5]||(t[5]=o=>e.getGitHubRepositories())},[...t[31]||(t[31]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),y(" Refresh ",-1)])])])]),e.showRepos?(l(),d("div",eS,[t[41]||(t[41]=n("div",{class:"paper-section-eyebrow"},"GitHub repositories",-1)),n("div",tS,[(l(!0),d(W,null,ae(e.userInfo?.repositories,(o,r)=>(l(),d("div",nS,[n("div",sS,[t[39]||(t[39]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",oS,[n("span",{class:"repo-name",textContent:p(o?.name)},null,8,iS)])]),n("div",rS,[t[40]||(t[40]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-database"})],-1)),y(" "+p(e.fmt?.humanFileSize(o?.size)),1)])]))),256))])])):f("v-if",!0)])):f("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(l(),d("div",aS,[t[42]||(t[42]=n("h2",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-key"})]),y(" API tokens")],-1)),n("span",lS,p(e.tokens?.length),1)])):f("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(l(),d("div",dS,[t[48]||(t[48]=n("p",{class:"paper-page-lede"},[y("Personal API tokens for this admin account. Send as "),n("code",null,"Authorization: Bearer "),y(" to authenticate without GitHub OAuth (useful for development).")],-1)),T((l(),d("form",{class:"d-flex",style:{gap:"8px","margin-bottom":"12px"},onSubmit:t[6]||(t[6]=ce(o=>e.submitForm(o,()=>{e.createToken()}),["prevent"]))},[T(n("input",uS,null,512),[[s,{state:e.viewState,set:o=>{e.tokenForm.name=o},value:e.tokenForm?.name,form:null,options:{}}]]),t[43]||(t[43]=n("button",{type:"submit",class:"btn btn-ink"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})]),y(" Generate")],-1))],32)),[[i,e.viewState]]),e.tokenForm?.plaintext?(l(),d("div",cS,[t[44]||(t[44]=n("strong",null,"Copy this token now \u2014 it will not be shown again:",-1)),n("pre",pS,p(e.tokenForm?.plaintext),1),n("button",{class:"btn btn-sm",onClick:t[7]||(t[7]=o=>e.tokenForm.plaintext=null)},"Dismiss")])):f("v-if",!0),e.tokens?.length?(l(),d("div",fS,[t[46]||(t[46]=n("div",{class:"paper-table-head",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},[n("div",{role:"columnheader"},"Name"),n("div",{role:"columnheader"},"Created"),n("div",{role:"columnheader"},"Last used"),n("div",{role:"columnheader","aria-label":"Actions"})],-1)),(l(!0),d(W,null,ae(e.tokens,(o,r)=>(l(),d("div",hS,[n("div",{role:"cell",textContent:p(o?.name)},null,8,mS),n("div",{role:"cell",textContent:p(e.fmt?.humanTime(o?.createdAt))},null,8,gS),n("div",vS,[o?.lastUsedAt?(l(),d("span",yS,p(e.fmt?.humanTime(o?.lastUsedAt)),1)):f("v-if",!0),o?.lastUsedAt?f("v-if",!0):(l(),d("span",bS,"never"))]),n("div",wS,[n("button",{class:"btn btn-sm text-danger btn-icon",title:"Revoke","aria-label":"Revoke token",onClick:a=>e.revokeToken(o)},[...t[45]||(t[45]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)])],8,kS)])]))),256))])):f("v-if",!0),e.tokens?.length?f("v-if",!0):(l(),d("div",CS,[...t[47]||(t[47]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No tokens yet.",-1)])]))])):f("v-if",!0),n("div",ES,[t[49]||(t[49]=n("h2",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})]),y(" Anonymized repositories")],-1)),n("span",SS,p(e.repositories?.length),1)]),n("div",NS,[n("span",RS,p(e.fmt?.number(e.repositories?.length)),1),n("button",{type:"button",class:_(["summary-pill ok",{active:e.filters?.status?.ready===!1}]),title:"Toggle ready filter",onClick:t[8]||(t[8]=o=>e.filters.status.ready=!e.filters.status.ready),"aria-pressed":e.filters?.status?.ready===!1},[t[50]||(t[50]=y("Ready ",-1)),n("span",TS,p(e.fmt?.number(e.statusCountFor("ready"))),1)],10,DS),n("button",{type:"button",class:_(["summary-pill warn",{active:e.filters?.status?.preparing===!1}]),title:"Toggle preparing filter",onClick:t[9]||(t[9]=o=>e.filters.status.preparing=!e.filters.status.preparing),"aria-pressed":e.filters?.status?.preparing===!1},[t[51]||(t[51]=y("Preparing ",-1)),n("span",_S,p(e.fmt?.number(e.statusCountFor("preparing"))),1)],10,AS),n("button",{type:"button",class:_(["summary-pill error",{active:e.filters?.status?.error===!1}]),title:"Toggle errored filter",onClick:t[10]||(t[10]=o=>e.filters.status.error=!e.filters.status.error),"aria-pressed":e.filters?.status?.error===!1},[t[52]||(t[52]=y("Errored ",-1)),n("span",PS,p(e.fmt?.number(e.statusCountFor("error"))),1)],10,OS),n("button",{type:"button",class:_(["summary-pill",{active:e.filters?.status?.expired===!1}]),title:"Toggle expired filter",onClick:t[11]||(t[11]=o=>e.filters.status.expired=!e.filters.status.expired),"aria-pressed":e.filters?.status?.expired===!1},[t[53]||(t[53]=y("Expired ",-1)),n("span",MS,p(e.fmt?.number(e.statusCountFor("expired"))),1)],10,IS),n("button",{type:"button",class:_(["summary-pill",{active:e.filters?.status?.removed===!1}]),title:"Toggle removed filter",onClick:t[12]||(t[12]=o=>e.filters.status.removed=!e.filters.status.removed),"aria-pressed":e.filters?.status?.removed===!1},[t[54]||(t[54]=y("Removed ",-1)),n("span",qS,p(e.fmt?.number(e.statusCountFor("removed"))),1)],10,VS)]),T((l(),d("form",$S,[n("div",LS,[n("div",US,[T(n("input",FS,null,512),[[s,{state:e.viewState,set:o=>{e.search=o},value:e.search,form:null,options:{}}]])]),t[56]||(t[56]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[13]||(t[13]=o=>e.exportCsv())},[...t[55]||(t[55]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),y(" Export",-1)])])])])),[[i,e.viewState]]),e.selectedCount()>0?(l(),d("div",BS,[n("span",null,[n("strong",null,p(e.selectedCount()),1),t[57]||(t[57]=y(" selected",-1))]),n("button",{class:"btn btn-sm",type:"button",onClick:t[14]||(t[14]=o=>e.bulkRefresh())},[...t[58]||(t[58]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),y(" Force refresh",-1)])]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[15]||(t[15]=o=>e.bulkRemoveCache())},[...t[59]||(t[59]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),y(" Remove cache",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[16]||(t[16]=o=>e.clearSelection())},"Clear")])):f("v-if",!0),n("div",zS,[n("div",HS,[n("div",jS,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[17]||(t[17]=o=>e.selectAllOnPage()),checked:e.allSelected},null,8,GS)]),n("div",WS,[n("button",{type:"button",class:_(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[18]||(t[18]=o=>e.sortBy("source.repositoryName"))},[t[61]||(t[61]=y("Repository ",-1)),e.sortIcon("source.repositoryName")?(l(),d("svg",{key:0,class:_(["ui-icon sort-direction",{ascending:e.sortIcon("source.repositoryName")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[60]||(t[60]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",KS,[n("button",{type:"button",class:_(["sortable",{active:e.query?.sort=="status"}]),onClick:t[19]||(t[19]=o=>e.sortBy("status"))},[t[63]||(t[63]=y("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:_(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[62]||(t[62]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",YS,[n("button",{type:"button",class:_(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[20]||(t[20]=o=>e.sortBy("pageView"))},[t[65]||(t[65]=y("Views ",-1)),e.sortIcon("pageView")?(l(),d("svg",{key:0,class:_(["ui-icon sort-direction",{ascending:e.sortIcon("pageView")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[64]||(t[64]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),n("div",XS,[n("button",{type:"button",class:_(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[21]||(t[21]=o=>e.sortBy("anonymizeDate"))},[t[67]||(t[67]=y("Anonymized ",-1)),e.sortIcon("anonymizeDate")?(l(),d("svg",{key:0,class:_(["ui-icon sort-direction",{ascending:e.sortIcon("anonymizeDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[66]||(t[66]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[68]||(t[68]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(W,null,ae(e.filteredRepositories,(o,r)=>(l(),d("div",{class:_(["paper-table-row",{"repo-inactive":o?.status=="expired"||o?.status=="removed","repo-error":o?.status=="error","row-selected":e.selected[o?.repoId]}]),role:"row"},[n("div",JS,[T(n("input",QS,null,512),[[s,{state:e.viewState,set:a=>{e.selected[o.repoId]=a},value:e.selected[o?.repoId],form:null,options:{}}]])]),n("div",ZS,[t[73]||(t[73]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",xS,[n("a",{class:"repo-name",target:"_blank",textContent:p(o?.repoId),href:e.safeUrl("/r/"+o?.repoId)},null,8,eN),n("div",tN,[n("a",{textContent:p(o?.source?.fullName),href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/")},null,8,nN),o?.options?.update?(l(),d("span",sN,[t[69]||(t[69]=y("\xA0\xB7\xA0",-1)),n("a",{textContent:p(o?.source?.branch),href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/tree/"+o?.source?.branch)},null,8,oN)])):f("v-if",!0),o?.options?.update?f("v-if",!0):(l(),d("span",iN,[t[70]||(t[70]=y("\xA0\xB7\xA0@",-1)),n("a",{textContent:p(o?.source?.commit?.substring(0,8)),href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/tree/"+o?.source?.commit)},null,8,rN)])),o?.conference?(l(),d("span",aN,[t[71]||(t[71]=y("\xA0\xB7\xA0",-1)),t[72]||(t[72]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),y(" "+p(o?.conference),1)])):f("v-if",!0),n("span",null,"\xA0\xB7\xA0"+p(e.fmt?.humanFileSize(o?.size?.storage)),1),n("span",null,"\xA0\xB7\xA0"+p(e.fmt?.number(o?.options?.terms?.length))+" "+p(o?.options?.terms?.length===1?"term":"terms"),1)])])]),n("div",lN,[n("span",dN,[n("span",{class:_(["status-dot",{"status-removed":o?.status=="removed"||o?.status=="expired","status-ready":o?.status=="ready","status-error":o?.status=="error","status-preparing":o?.status=="preparing"}])},null,2),n("span",{textContent:p(e.fmt?.title(o?.status))},null,8,uN)]),o?.statusMessage?(l(),d("span",{key:0,class:"status-sub",textContent:p(e.fmt?.statusMsg(o?.statusMessage)),title:o?.statusMessage},null,8,cN)):f("v-if",!0)]),n("div",{class:"cell-views num",role:"cell",textContent:p(e.fmt?.number(o?.pageView||0))},null,8,pN),n("div",{class:"cell-expires",role:"cell",textContent:p(e.fmt?.humanTime(o?.anonymizeDate))},null,8,fN),n("div",hN,[n("div",mN,[t[85]||(t[85]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",gN,[n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+o?.repoId)},[...t[74]||(t[74]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),y(" Edit",-1)])],8,vN),n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+o?.repoId+"/")},[...t[75]||(t[75]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),y(" View repo",-1)])],8,yN),o?.options?.page&&o?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+o?.repoId+"/")},[...t[76]||(t[76]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),y(" View page",-1)])],8,bN)):f("v-if",!0),n("a",{class:"dropdown-item",href:"#",onClick:ce(a=>e.fetchGithubInfo(o),["prevent"])},[...t[77]||(t[77]=[n("i",{class:"fab fa-github"},null,-1),y(" Live GitHub info",-1)])],8,wN),t[83]||(t[83]=n("div",{class:"dropdown-divider"},null,-1)),T(n("a",{class:"dropdown-item",href:"#",onClick:ce(a=>e.updateRepository(o),["prevent"])},[...t[78]||(t[78]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),y(" Force update",-1)])],8,kN),[[J,o?.status=="ready"||o?.status=="error"]]),T(n("a",{class:"dropdown-item",href:"#",onClick:ce(a=>e.updateRepository(o),["prevent"])},[...t[79]||(t[79]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),y(" Enable",-1)])],8,CN),[[J,o?.status=="removed"]]),T(n("a",{class:"dropdown-item",href:"#",onClick:ce(a=>e.showStatusMessage(o),["prevent"])},[...t[80]||(t[80]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),y(" View status message",-1)])],8,EN),[[J,o?.statusMessage]]),t[84]||(t[84]=n("div",{class:"dropdown-divider"},null,-1)),n("a",{class:"dropdown-item",href:"#",onClick:ce(a=>e.removeCache(o),["prevent"])},[...t[81]||(t[81]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),y(" Remove cache",-1)])],8,SN),T(n("a",{class:"dropdown-item text-danger",href:"#",onClick:ce(a=>e.removeRepository(o),["prevent"])},[...t[82]||(t[82]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),y(" Remove",-1)])],8,NN),[[J,o?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(l(),d("div",RN,[...t[86]||(t[86]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No repositories match the current filters.",-1)])])):f("v-if",!0)])])}var DN={class:"container paper-page admin-page"},TN={class:"admin-summary"},AN={class:"summary-total"},_N=["aria-pressed"],ON={class:"count"},PN=["aria-pressed"],IN={class:"count"},MN=["aria-pressed"],VN={class:"count"},qN=["aria-pressed"],$N={class:"count"},LN={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},UN={class:"w-100 admin-filter-toolbar","aria-label":"Users","accept-charset":"UTF-8"},FN={class:"admin-filter-row"},BN={class:"search-wrap"},zN={type:"search",class:"form-control","aria-label":"Search users",placeholder:"Search username or email\u2026",autocomplete:"off"},HN={key:0,class:"admin-search-hint"},jN={class:"admin-filter-inline"},GN={class:"form-control form-control-sm"},WN={key:0,class:"admin-filter-inline","aria-label":"Pagination"},KN=["disabled"],YN={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},XN=["disabled"],JN={key:0,class:"admin-filter-row"},QN={class:"admin-active-chips"},ZN={class:"key"},xN=["onClick"],eR={key:1,class:"bulk-bar"},tR={class:"paper-table w-100",role:"table","aria-label":"Users",style:{"--cols":"28px minmax(280px, 2.4fr) 100px 140px 140px 52px"}},nR={class:"paper-table-head admin-users-row",role:"row"},sR={role:"columnheader",style:{width:"28px"}},oR=["checked"],iR={role:"columnheader"},rR={role:"columnheader"},aR={role:"cell",style:{width:"28px"}},lR={type:"checkbox","aria-label":"Select user"},dR={class:"cell-anon",role:"cell"},uR=["src"],cR={key:1,class:"avatar-fallback","aria-hidden":"true"},pR={class:"anon-text"},fR=["textContent","href"],hR={class:"anon-sub"},mR={key:0},gR=["href"],vR={key:1},yR={class:"cell-views num",role:"cell"},bR=["title","textContent","href"],wR={class:"cell-status",role:"cell"},kR=["textContent"],CR={class:"cell-status",role:"cell"},ER={key:0,class:"role-pill"},SR={key:1,class:"empty-dash"},NR={class:"cell-actions",role:"cell"},RR={class:"dropdown"},DR={class:"dropdown-menu dropdown-menu-right"},TR=["href"],AR=["href"],_R=["onClick"],OR=["onClick"],PR={key:0,class:"paper-table-empty"},IR={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},MR={style:{"font-size":"12px",color:"var(--ink-muted)"}},VR={key:0,class:"pagination-compact"},qR=["disabled"],$R=["max"],LR=["disabled"],UR={class:"admin-filter-inline"},FR={class:"form-control form-control-sm"};function yc(e,t){let s=De("field"),i=De("form");return l(),d("div",DN,[t[48]||(t[48]=Ce('
Admin \xA0/\xA0 Users

Users

',3)),n("div",TN,[n("span",AN,[y(p(e.total>=0?e.fmt.number(e.total):"\u2026")+" ",1),n("small",null,p(e.total===1?"user":"users"),1)]),n("button",{type:"button",class:_(["summary-pill",{active:!e.query?.status}]),onClick:t[0]||(t[0]=o=>{e.query.status="",e.query.page=1}),"aria-pressed":!e.query?.status},[t[14]||(t[14]=y("All ",-1)),n("span",ON,p(e.fmt?.number(e.total)),1)],10,_N),n("button",{type:"button",class:_(["summary-pill ok",{active:e.query?.status=="active"}]),onClick:t[1]||(t[1]=o=>{e.query.status=e.query.status=="active"?"":"active",e.query.page=1}),"aria-pressed":e.query?.status=="active"},[t[15]||(t[15]=y("Active ",-1)),n("span",IN,p(e.fmt?.number(e.statusCountFor("active"))),1)],10,PN),n("button",{type:"button",class:_(["summary-pill error",{active:e.query?.status=="banned"}]),onClick:t[2]||(t[2]=o=>{e.query.status=e.query.status=="banned"?"":"banned",e.query.page=1}),"aria-pressed":e.query?.status=="banned"},[t[16]||(t[16]=y("Banned ",-1)),n("span",VN,p(e.fmt?.number(e.statusCountFor("banned"))),1)],10,MN),n("button",{type:"button",class:_(["summary-pill",{active:e.query?.status=="removed"}]),onClick:t[3]||(t[3]=o=>{e.query.status=e.query.status=="removed"?"":"removed",e.query.page=1}),"aria-pressed":e.query?.status=="removed"},[t[17]||(t[17]=y("Removed ",-1)),n("span",$N,p(e.fmt?.number(e.statusCountFor("removed"))),1)],10,qN)]),e.fetchError?(l(),d("div",LN,[t[18]||(t[18]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),y(" "+p(e.fetchError),1)])):f("v-if",!0),T((l(),d("form",UN,[n("div",FN,[n("div",BN,[T(n("input",zN,null,512),[[s,{state:e.viewState,set:o=>{e.query.search=o},value:e.query?.search,form:null,options:{}}]]),e.query?.search?f("v-if",!0):(l(),d("span",HN,"/"))]),n("span",jN,[t[20]||(t[20]=n("label",null,"Role",-1)),T((l(),d("select",GN,[...t[19]||(t[19]=[n("option",{value:""},"Any",-1),n("option",{value:"admin"},"Admin",-1)])])),[[s,{state:e.viewState,set:o=>{e.query.role=o},value:e.query?.role,form:null,options:{}}]])]),t[24]||(t[24]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",onClick:t[4]||(t[4]=o=>e.exportCsv())},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),y(" Export",-1)])]),e.totalPage>1?(l(),d("span",WN,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[5]||(t[5]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,KN),n("span",YN,p(e.query?.page)+"/"+p(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[6]||(t[6]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[23]||(t[23]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,XN)])):f("v-if",!0)]),e.chips?.length?(l(),d("div",JN,[n("div",QN,[(l(!0),d(W,null,ae(e.chips,(o,r)=>(l(),d("span",{class:"admin-active-chip",key:o?.key},[n("span",ZN,p(o?.label),1),n("span",null,p(o?.value),1),n("button",{type:"button",onClick:a=>e.clearFilter(o.key),"aria-label":"Clear filter"},[...t[25]||(t[25]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,xN)]))),128))])])):f("v-if",!0)])),[[i,e.viewState]]),e.selectedCount()>0?(l(),d("div",eR,[n("span",null,[n("strong",null,p(e.selectedCount()),1),t[26]||(t[26]=y(" selected",-1))]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[7]||(t[7]=o=>e.bulkBan())},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),y(" Ban",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[8]||(t[8]=o=>{e.selected={},e.allSelected=!1})},"Clear")])):f("v-if",!0),n("div",tR,[n("div",nR,[n("div",sR,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[9]||(t[9]=o=>e.selectAllOnPage()),checked:e.allSelected},null,8,oR)]),n("div",iR,[n("button",{type:"button",class:_(["sortable",{active:e.query?.sort=="username"}]),onClick:t[10]||(t[10]=o=>e.sortBy("username"))},[t[29]||(t[29]=y("User ",-1)),e.sortIcon("username")?(l(),d("svg",{key:0,class:_(["ui-icon sort-direction",{ascending:e.sortIcon("username")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[28]||(t[28]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[32]||(t[32]=n("div",{role:"columnheader",class:"num",title:"Repositories discovered on the user's GitHub account"},"GitHub repos",-1)),n("div",rR,[n("button",{type:"button",class:_(["sortable",{active:e.query?.sort=="status"}]),onClick:t[11]||(t[11]=o=>e.sortBy("status"))},[t[31]||(t[31]=y("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:_(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[30]||(t[30]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)]),t[33]||(t[33]=n("div",{role:"columnheader"},"Role",-1)),t[34]||(t[34]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(W,null,ae(e.filteredUsers,(o,r)=>(l(),d("div",{class:_(["paper-table-row admin-users-row",{"row-selected":e.selected[o?.username]}]),role:"row"},[n("div",aR,[T(n("input",lR,null,512),[[s,{state:e.viewState,set:a=>{e.selected[o.username]=a},value:e.selected[o?.username],form:null,options:{}}]])]),n("div",dR,[o?.photo?(l(),d("img",{key:0,width:"28",height:"28",class:"rounded-circle",style:{"flex-shrink":"0"},src:e.safeUrl(o?.photo)},null,8,uR)):(l(),d("span",cR,p((o?.username||"?").charAt(0).toUpperCase()),1)),n("div",pR,[n("a",{class:"repo-name",textContent:p(o?.username),href:e.safeUrl("/admin/users/"+o?.username)},null,8,fR),n("div",hR,[o?.emails?.[0]?.email?(l(),d("span",mR,p(o?.emails?.[0]?.email)+" \xB7 ",1)):f("v-if",!0),n("a",{target:"_blank",href:e.safeUrl("https://github.com/"+o?.username)},[t[35]||(t[35]=n("i",{class:"fab fa-github"},null,-1)),y(" "+p(o?.username),1)],8,gR),o?.dateOfEntry?(l(),d("span",vR,"\xA0\xB7\xA0Joined "+p(e.fmt?.humanTime(o?.dateOfEntry)),1)):f("v-if",!0)])])]),n("div",yR,[t[36]||(t[36]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),n("a",{title:o?.repoCount?"Show this user\u2019s repositories":"Repositories not synced yet",textContent:p(o?.repoCount?e.fmt?.number(o.repoCount):"Not synced"),class:_({"is-unsynced":!o?.repoCount}),href:e.safeUrl("/admin/repositories?owner="+o?.username)},null,10,bR)]),n("div",wR,[n("span",{class:_(["status-dot",{"status-ready":o?.status=="active","status-removed":o?.status=="removed"||o?.status=="banned"}])},null,2),n("span",{textContent:p(e.fmt?.title(o?.status))},null,8,kR)]),n("div",CR,[o?.isAdmin?(l(),d("span",ER,"Admin")):f("v-if",!0),o?.isAdmin?f("v-if",!0):(l(),d("span",SR,"\u2014"))]),n("div",NR,[n("div",RR,[t[42]||(t[42]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",DR,[n("a",{class:"dropdown-item",href:e.safeUrl("/admin/users/"+o?.username)},[...t[37]||(t[37]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),y(" View details",-1)])],8,TR),n("a",{class:"dropdown-item",href:e.safeUrl("/admin/repositories?owner="+o?.username)},[...t[38]||(t[38]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),y(" View repositories",-1)])],8,AR),t[41]||(t[41]=n("div",{class:"dropdown-divider"},null,-1)),T(n("a",{class:"dropdown-item text-danger",href:"#",onClick:ce(a=>e.banUser(o),["prevent"])},[...t[39]||(t[39]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),y(" Ban",-1)])],8,_R),[[J,o?.status=="active"]]),T(n("a",{class:"dropdown-item",href:"#",onClick:ce(a=>e.activateUser(o),["prevent"])},[...t[40]||(t[40]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),y(" Activate",-1)])],8,OR),[[J,o?.status=="removed"||o?.status=="banned"]])])])])],2))),256)),e.filteredUsers?.length==0?(l(),d("div",PR,[...t[43]||(t[43]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No users match the current filters.",-1)])])):f("v-if",!0)]),n("div",IR,[n("span",MR,p(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",VR,[n("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=o=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[44]||(t[44]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),y(" Previous",-1)])],8,qR),T(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,$R),[[s,{state:e.viewState,set:o=>{e.query.page=o},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+p(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[13]||(t[13]=o=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[45]||(t[45]=[y("Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,LR)])):f("v-if",!0),n("span",UR,[t[47]||(t[47]=n("label",null,"Per page",-1)),T((l(),d("select",FR,[...t[46]||(t[46]=[n("option",{value:"10"},"10",-1),n("option",{value:"25"},"25",-1),n("option",{value:"50"},"50",-1),n("option",{value:"100"},"100",-1)])])),[[s,{state:e.viewState,set:o=>{e.query.limit=o},value:e.query?.limit,form:null,options:{}}]])])])])}var BR={class:"anonymize-landing"},zR={class:"anonymize-landing-inner"},HR={class:"form-group mt-4 mb-2"},jR={class:"source-url-label-row"},GR={key:0,class:"repo-access","aria-label":"GitHub access"},WR={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},KR=["aria-pressed","disabled"],YR=["aria-pressed","disabled"],XR={key:1,class:"connection-badge"},JR={class:"landing-url-row"},QR={id:"sourceUrl-landing",onblur:"this.scrollLeft=0",type:"text",class:"form-control form-control-lg",placeholder:"https://github.com/owner/repository"},ZR=["aria-disabled"],xR={key:0,class:"text-danger",role:"alert"},eD={key:1,class:"repo-access-details","aria-label":"GitHub access"},tD={class:"repo-access-main"},nD={class:"repo-access-controls"},sD={key:0,class:"access-q"},oD={key:2,class:"connection-link",href:"/connections"},iD={class:"repo-access-note"},rD={key:0},aD={class:"anonymize-workspace"},lD={class:"anonymize-topbar"},dD={class:"anonymize-topbar-inner"},uD={class:"anonymize-topbar-head"},cD={class:"paper-page-title anonymize-topbar-title"},pD={key:0},fD={key:1},hD={key:0,class:"alert alert-info",role:"status"},mD={key:1,class:"alert alert-info",role:"status"},gD={key:1},vD={class:"anonymize-mobile-tabs",role:"tablist","aria-label":"Anonymization workspace"},yD=["aria-selected","tabindex"],bD=["aria-selected","tabindex"],wD={key:2,class:"anonymize-preview-empty",id:"workspace-preview",role:"status"},kD={class:"anonymize-split"},CD=["role","aria-labelledby"],ED={class:"form needs-validation paper-settings-main",name:"anonymize",novalidate:""},SD={class:"anonymize-fields"},ND={class:"paper-settings-section"},RD={class:"form-group"},DD={class:"source-url-label-row"},TD={key:0,class:"repo-access","aria-label":"GitHub access"},AD={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},_D=["aria-pressed","disabled"],OD=["aria-pressed","disabled"],PD={key:1,class:"connection-badge"},ID=["disabled"],MD={class:"invalid-feedback"},VD={class:"invalid-feedback"},qD={class:"invalid-feedback"},$D={class:"invalid-feedback"},LD={key:0,class:"repo-access-details","aria-label":"Previous repository configuration"},UD={key:0,class:"form-group"},FD=["value"],BD={key:1},zD={class:"repo-access-controls"},HD=["href"],jD={key:1,class:"repo-access-details","aria-label":"GitHub access"},GD={class:"repo-access-main"},WD={class:"repo-access-controls"},KD={key:0,class:"access-q"},YD={key:2,class:"connection-link",href:"/connections"},XD={class:"repo-access-note"},JD={key:0},QD={key:1},ZD={key:2,class:"repo-access-details"},xD=["disabled"],eT={key:0,role:"status"},tT={key:3,class:"repo-access-details"},nT={key:0,role:"status"},sT={key:4,class:"form-grid-2"},oT={class:"form-group"},iT={class:"input-group"},rT={class:"form-control",id:"branch",name:"branch"},aT=["textContent","value"],lT={class:"input-group-append"},dT={class:"form-group"},uT=["disabled"],cT={class:"invalid-feedback"},pT={class:"invalid-feedback"},fT={class:"form-check"},hT={class:"form-check-input",type:"checkbox",id:"update",name:"update"},mT={class:"paper-settings-section"},gT={class:"form-group"},vT=["disabled"],yT={class:"form-text text-muted"},bT={class:"invalid-feedback"},wT={class:"form-group"},kT=["disabled"],CT={class:"form-text text-muted"},ET={class:"invalid-feedback"},ST={class:"form-group"},NT=["disabled"],RT={class:"form-text text-muted"},DT={class:"invalid-feedback"},TT={class:"form-group"},AT=["rows"],_T={class:"redaction-syntax"},OT={class:"form-text text-muted"},PT=["onClick"],IT={key:0,class:"term-hint-more"},MT={class:"invalid-feedback"},VT={class:"preserve-row"},qT={class:"preserve-row-text"},$T={class:"preserve-row-value"},LT=["disabled"],UT={class:"preserve-tree"},FT={key:0,class:"preserve-status"},BT={key:1,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},zT=["aria-expanded","aria-label","onClick"],HT={key:1,class:"preserve-caret-space"},jT=["id","aria-label","checked",".indeterminate","disabled","onChange"],GT=["for","onClick"],WT={key:2,class:"preserve-note"},KT={key:0,class:"preserve-status"},YT={key:0,class:"preserve-status"},XT=["open"],JT={class:"preserve-foot"},QT={class:"preserve-count","aria-live":"polite"},ZT={class:"preserve-actions"},xT={class:"paper-settings-section"},eA={class:"form-check"},tA={class:"form-check-input",type:"checkbox",id:"link",name:"link"},nA={class:"form-check"},sA={class:"form-check-input",type:"checkbox",id:"image",name:"image"},oA={class:"form-check"},iA={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},rA={class:"form-check"},aA={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},lA={class:"form-check"},dA=["disabled"],uA={key:0,class:"form-text text-muted"},cA={key:1,class:"form-text text-muted"},pA={key:0,class:"form-text text-muted"},fA={class:"form-check"},hA={class:"form-check-input",type:"checkbox",id:"title-gist",name:"title-gist"},mA={class:"form-check"},gA={class:"form-check-input",type:"checkbox",id:"content-gist",name:"content-gist"},vA={class:"form-check"},yA={class:"form-check-input",type:"checkbox",id:"comments-gist",name:"comments-gist"},bA={class:"form-check"},wA={class:"form-check-input",type:"checkbox",id:"username-gist",name:"username-gist"},kA={class:"form-check"},CA={class:"form-check-input",type:"checkbox",id:"date-gist",name:"date-gist"},EA={class:"form-check"},SA={class:"form-check-input",type:"checkbox",id:"origin-gist",name:"origin-gist"},NA={class:"form-check"},RA={class:"form-check-input",type:"checkbox",id:"title",name:"title"},DA={class:"form-check"},TA={class:"form-check-input",type:"checkbox",id:"body",name:"body"},AA={class:"form-check"},_A={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},OA={class:"form-check"},PA={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},IA={class:"form-check"},MA={class:"form-check-input",type:"checkbox",id:"username",name:"username"},VA={class:"form-check"},qA={class:"form-check-input",type:"checkbox",id:"date",name:"date"},$A={class:"form-check"},LA={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},UA={class:"paper-settings-section hosting-settings",id:"repository-hosting","aria-labelledby":"hosting-heading"},FA={key:0,class:"hosting-usage"},BA={key:0},zA={key:1},HA={key:2},jA={key:3},GA={class:"expiration-choices"},WA={class:"expiration-choice"},KA=["checked","disabled"],YA={key:0,class:"dated-options"},XA={key:0,class:"hosting-date"},JA=["min","max"],QA={class:"invalid-feedback"},ZA={class:"invalid-feedback"},xA={class:"hosting-property"},e_={key:1,class:"expiration-choice"},t_=["checked","disabled"],n_={key:0},s_={key:1,class:"form-text text-muted"},o_={class:"form-group conference-field"},i_={class:"form-text text-muted"},r_=["href"],a_={class:"invalid-feedback"},l_={class:"form-text text-muted"},d_={key:2,class:"inline-hosting"},u_={key:0,role:"alert",class:"text-danger"},c_={key:1,role:"alert",class:"text-danger"},p_=["disabled"],f_={key:2,role:"status"},h_={key:3,role:"status",class:"form-text text-muted"},m_={key:0,class:"capacity-reason"},g_={key:1,class:"subscription-choice"},v_={class:"billing-cycle"},y_=["value","checked","onChange"],b_={class:"hosting-terms"},w_={key:2,role:"status"},k_={key:3,class:"capacity-options"},C_=["disabled"],E_={key:5,class:"hosting-terms"},S_={key:6,class:"repository-pass"},N_=["disabled"],R_={class:"paper-settings-section"},D_={class:"form-group"},T_={style:{position:"relative"}},A_={type:"text",id:"coauthorSearch",class:"form-control",placeholder:"Search GitHub username\u2026",autocomplete:"off"},__={class:"dropdown-menu show",style:{display:"block","max-height":"220px","overflow-y":"auto",width:"100%"}},O_=["onClick"],P_=["src"],I_=["textContent"],M_=["textContent"],V_={class:"coauthor-list"},q_={class:"coauthor-row d-flex align-items-center",style:{padding:"6px 0",gap:"8px"}},$_=["src"],L_=["textContent","href"],U_=["onClick"],F_={class:"form-text text-muted"},B_=["textContent"],z_={class:"anonymize-submit-bar"},H_=["disabled"],j_=["disabled"],G_={key:2,class:"checkout-return-note"},W_=["disabled"],K_=["disabled"],Y_=["disabled"],X_=["disabled"],J_={key:5,class:"draft-status",role:"status"},Q_={key:6,class:"draft-status"},Z_=["role","aria-labelledby"],x_={class:"anonymize-preview-head"},e4={class:"anonymize-preview-sub"},t4={key:0,class:"anonymize-preview-status",role:"status"},n4={key:1,class:"anonymize-preview-status",role:"status"},s4={key:2,class:"anonymize-preview-status",role:"alert"},o4={key:3,class:"anonymize-preview-status"},i4=["innerHTML"],r4=["role","aria-labelledby"],a4={class:"anonymize-preview-head"},l4={key:0,class:"anonymize-preview-status",role:"status"},d4={key:1,class:"anonymize-preview-status",role:"status"},u4={key:2,class:"anonymize-preview-status",role:"alert"},c4={key:3,class:"anonymize-preview-body"},p4={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},f4={class:"pr-title mb-1"},h4={key:0},m4=["textContent"],g4={key:0},v4={key:1},y4={key:2},b4={class:"pr-comments mt-3"},w4={class:"pr-comment"},k4={class:"pr-comment-head"},C4=["textContent"],E4={key:0,class:"pr-comment-date"},S4={key:3},N4={class:"pr-comments"},R4={class:"pr-comment"},D4={class:"pr-comment-head"},T4={key:0,class:"pr-comment-author"},A4=["textContent"],_4=["textContent"],O4={key:0,class:"pr-comment-body"},P4=["role","aria-labelledby"],I4={class:"anonymize-preview-head"},M4={key:0,class:"anonymize-preview-status",role:"status"},V4={key:1,class:"anonymize-preview-status",role:"status"},q4={key:2,class:"anonymize-preview-status",role:"alert"},$4={key:3,class:"anonymize-preview-body"},L4={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},U4={class:"pr-title mb-1"},F4={key:0},B4=["textContent"],z4={key:0},H4={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--paper-bg-alt)"}},j4={key:2,class:"paper-tabs",role:"tablist"},G4=["aria-selected","tabindex"],W4=["aria-selected","tabindex"],K4=["textContent"],Y4={key:3,class:"anonymize-preview-status"},X4={class:"paper-tab-content"},J4={key:0,role:"tabpanel",id:"preview-pr-diff-panel","aria-labelledby":"preview-pr-diff-tab"},Q4=["innerHTML"],Z4={key:1,role:"tabpanel",id:"preview-pr-comments-panel","aria-labelledby":"preview-pr-comments-tab"},x4={class:"pr-comments"},e3={class:"pr-comment"},t3={class:"pr-comment-head"},n3={key:0,class:"pr-comment-author"},s3=["textContent"],o3=["textContent"],i3={key:0,class:"pr-comment-body"};function bc(e,t){let s=at("gist-file"),i=at("markdown"),o=De("field"),r=De("form");return l(),d("div",{class:_(["anonymize-page h-100",{"mobile-preview-active":e.mobilePane==="preview","preview-expanded":e.previewExpanded}])},[f(" ===== STATE 1: No URL \u2014 centered input ===== "),T(n("div",BR,[n("div",zR,[t[54]||(t[54]=n("div",{class:"paper-crumbs"},[y("My work \xA0/\xA0 "),n("span",{class:"here"},"New anonymization")],-1)),t[55]||(t[55]=n("h1",{class:"paper-page-title"},[y("New "),n("em",null,"anonymization")],-1)),t[56]||(t[56]=n("p",{class:"paper-page-lede"}," Paste a repository, pull request, or gist URL. You\u2019ll choose the terms to redact next. ",-1)),n("div",HR,[n("div",jR,[t[51]||(t[51]=n("label",{class:"paper-field-label",for:"sourceUrl-landing"},"Source URL",-1)),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",GR,[!e.isUpdate&&e.detectedType!=="gist"?(l(),d("div",WR,[n("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[0]||(t[0]=a=>e.chooseGitHubConnection("github-app"))},[...t[50]||(t[50]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),y(),n("span",{class:"sr-only"},"Read-only ",-1),y("GitHub App",-1)])],8,KR),n("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[1]||(t[1]=a=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,YR)])):f("v-if",!0),e.isUpdate||e.detectedType==="gist"?(l(),d("span",XR,p((e.detectedType==="gist"?e.githubConnections?.gistConnection==="github-app":e.githubConnection==="github-app")?"Read-only GitHub App":"Legacy OAuth"),1)):f("v-if",!0)])):f("v-if",!0)]),n("div",JR,[T(n("input",QR,null,512),[[o,{state:e.viewState,set:a=>{e.sourceUrl=a},value:e.sourceUrl,form:null,options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]]),n("button",{type:"button",class:"btn btn-primary landing-continue","aria-disabled":e.sourceUrl?null:"true",onClick:t[2]||(t[2]=a=>e.sourceUrl&&e.urlSelected())},"Continue",8,ZR)])]),e.sourceUrlError?(l(),d("p",xR,p(e.sourceUrlError),1)):f("v-if",!0),t[57]||(t[57]=n("small",{class:"form-text",style:{color:"var(--ink-muted)"}}," Repository, pull request (\u2026/pull/42) and gist (gist.github.com/\u2026) URLs are all accepted. ",-1)),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected?(l(),d("aside",eD,[n("div",tD,[n("div",nD,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("span",sD,"Repository not listed?")):f("v-if",!0),e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("button",{key:1,type:"button",class:"btn btn-outline-ink",onClick:t[3]||(t[3]=a=>e.grantGitHubAccess())},[...t[52]||(t[52]=[y("Manage access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):f("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(l(),d("a",oD,p(e.isUpdate?"Change connection":"Manage connections")+" \u2192",1)):f("v-if",!0)])]),n("div",iD,[e.error&&e.detectedType!=="gist"&&e.githubConnection==="github-app"?(l(),d("span",rD,"Signing in does not grant access to private repositories. Use Manage access to select this repository, then return here. Organization access may require administrator approval.")):f("v-if",!0),t[53]||(t[53]=n("span",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),y(" Anonymized content is public, even from private repositories.")],-1))])])):f("v-if",!0)])],512),[[J,!e.workspaceOpen&&!e.isUpdate]]),f(" ===== STATE 2: URL provided \u2014 form (left) + preview (right) ===== "),T(n("div",aD,[n("header",lD,[n("div",dD,[n("div",uD,[n("h1",cD,[e.isUpdate?f("v-if",!0):(l(),d("span",pD,"New anonymization")),e.isUpdate?(l(),d("span",fD,"Edit anonymization")):f("v-if",!0)]),T(n("span",{class:_(["type-badge",{"type-repo":e.detectedType==="repo","type-pr":e.detectedType==="pr","type-gist":e.detectedType==="gist"}])},p(e.detectedType==="repo"?"Repository":e.detectedType==="pr"?"Pull request":"Gist"),3),[[J,e.detectedType]])])])]),e.detectedType==="gist"&&e.gistAppRequired?(l(),d("aside",hD,[t[58]||(t[58]=n("p",null,"Reconnect your GitHub account to read this gist. Your draft will be restored when you return.",-1)),n("button",{type:"button",class:"btn btn-ink",onClick:t[4]||(t[4]=a=>e.connectGistApp())},"Connect GitHub App to access gists")])):f("v-if",!0),e.detectedType==="gist"&&e.gistOAuthRequired?(l(),d("aside",mD,[t[59]||(t[59]=n("p",null,"Connect GitHub OAuth to access gists. Your account and existing anonymizations stay the same, and your draft will be restored when you return.",-1)),t[60]||(t[60]=n("p",null,"GitHub's legacy OAuth connection includes write access to private repositories.",-1)),e.githubConnections?.oauthEnabled?(l(),d("button",{key:0,type:"button",class:"btn btn-ink",onClick:t[5]||(t[5]=a=>e.connectGistOAuth())},"Connect GitHub OAuth to access gists")):(l(),d("p",gD,"GitHub OAuth is currently unavailable. Please try again later."))])):f("v-if",!0),n("nav",vD,[n("button",{id:"workspace-settings-tab",role:"tab",type:"button","aria-selected":e.mobilePane==="settings","aria-controls":"workspace-settings",tabindex:e.mobilePane==="settings"?0:-1,onKeydown:t[6]||(t[6]=a=>e.previewTabKeydown(a)),onClick:t[7]||(t[7]=a=>e.selectMobilePane("settings"))},"Settings",40,yD),n("button",{id:"workspace-preview-tab",role:"tab",type:"button","aria-selected":e.mobilePane==="preview","aria-controls":"workspace-preview",tabindex:e.mobilePane==="preview"?0:-1,onKeydown:t[8]||(t[8]=a=>e.previewTabKeydown(a)),onClick:t[9]||(t[9]=a=>e.selectMobilePane("preview"))},"Reviewer preview",40,bD)]),e.detectedType!=="repo"&&!e.details?(l(),d("div",wD,p(e.sourceLoading?"Loading source\u2026":"Choose an accessible source to see its preview."),1)):f("v-if",!0),n("div",kD,[f(" Form column (left) "),n("div",{id:"workspace-settings",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-settings-tab":null,class:"anonymize-form-col overflow-auto"},[T((l(),d("form",ED,[n("div",SD,[n("section",ND,[t[75]||(t[75]=n("h2",{class:"paper-section-eyebrow"},"Source & access",-1)),n("div",RD,[n("div",DD,[t[62]||(t[62]=n("label",{class:"paper-field-label",for:"sourceUrl"},"Source URL",-1)),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",TD,[!e.isUpdate&&e.detectedType!=="gist"?(l(),d("div",AD,[n("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[10]||(t[10]=a=>e.chooseGitHubConnection("github-app"))},[...t[61]||(t[61]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),y(),n("span",{class:"sr-only"},"Read-only ",-1),y("GitHub App",-1)])],8,_D),n("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[11]||(t[11]=a=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,OD)])):f("v-if",!0),e.isUpdate||e.detectedType==="gist"?(l(),d("span",PD,p((e.detectedType==="gist"?e.githubConnections?.gistConnection==="github-app":e.githubConnection==="github-app")?"Read-only GitHub App":"Legacy OAuth"),1)):f("v-if",!0)])):f("v-if",!0)]),T(n("input",{type:"text",class:_(["form-control",{"is-invalid":e.anonymize?.sourceUrl?.invalid}]),name:"sourceUrl",id:"sourceUrl",onblur:"this.scrollLeft=0",disabled:e.isUpdate&&e.detectedType!=="repo",placeholder:"Paste a GitHub repo or pull request URL"},null,10,ID),[[o,{state:e.viewState,set:a=>{e.sourceUrl=a},value:e.sourceUrl,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]]),T(n("div",MD," Please provide a valid GitHub URL. ",512),[[J,e.anonymize?.sourceUrl?.errors?.github]]),T(n("div",VD," Not accessible. The organization may restrict access. ",512),[[J,e.anonymize?.sourceUrl?.errors?.access]]),T(n("div",qD," Does not exist or is not accessible. ",512),[[J,e.anonymize?.sourceUrl?.errors?.missing]]),T(n("div",$D," Already anonymized. ",512),[[J,e.anonymize?.sourceUrl?.errors?.used]])]),!e.isUpdate&&e.previousConfigurations.length?(l(),d("aside",LD,[t[64]||(t[64]=n("p",{role:"status"},"You have already anonymized this repository. Use the existing configuration to keep its anonymous link and avoid creating another repository.",-1)),e.previousConfigurations.length>1?(l(),d("div",UD,[t[63]||(t[63]=n("label",{class:"paper-field-label",for:"previousConfiguration"},"Previous anonymization",-1)),T(n("select",{id:"previousConfiguration",class:"form-control","onUpdate:modelValue":t[12]||(t[12]=a=>e.previousConfigurationId=a)},[(l(!0),d(W,null,ae(e.previousConfigurations,a=>(l(),d("option",{key:a.repoId,value:a.repoId},p(a.repoId),9,FD))),128))],512),[[Wn,e.previousConfigurationId]])])):(l(),d("p",BD,p(e.previousConfigurationId),1)),t[65]||(t[65]=n("p",null,"You can review and update its settings before saving.",-1)),n("div",zD,[n("a",{class:"btn btn-ink",href:e.existingConfigurationUrl()},"Use existing configuration",8,HD),n("button",{type:"button",class:"btn btn-link",onClick:t[13]||(t[13]=a=>e.previousConfigurations=[])},"Create a separate anonymization")])])):f("v-if",!0),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected?(l(),d("aside",jD,[n("div",GD,[n("div",WD,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"&&!e.details?(l(),d("span",KD,"Repository not listed?")):f("v-if",!0),e.detectedType!=="gist"&&e.githubConnection!=="oauth"&&!e.details?(l(),d("button",{key:1,type:"button",class:"btn btn-outline-ink",onClick:t[14]||(t[14]=a=>e.grantGitHubAccess())},[...t[66]||(t[66]=[y("Manage access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):f("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(l(),d("a",YD,p(e.isUpdate?"Change connection":"Manage connections")+" \u2192",1)):f("v-if",!0)])]),n("div",XD,[e.error&&e.detectedType!=="gist"&&e.githubConnection==="github-app"?(l(),d("span",JD,"Signing in does not grant access to private repositories. Use Manage access to select this repository, then return here. Organization access may require administrator approval.")):f("v-if",!0),e.detectedType!=="gist"&&e.githubConnection!=="oauth"&&!e.details?(l(),d("span",QD,"Select repositories on GitHub, then return here.")):f("v-if",!0),t[67]||(t[67]=n("span",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),y(" Selected content will be published, including content from private repositories.")],-1))])])):f("v-if",!0),e.isUpdate&&e.detectedType==="repo"&&e.role==="owner"&&e.accessRepairAllowed&&e.githubConnections?.appEnabled&&e.githubConnection==="github-app"&&e.sourceUrl==="https://github.com/"+e._originalFullName?(l(),d("aside",ZD,[t[68]||(t[68]=n("p",null,"If this repository became private or its App installation changed, repair its access here. This keeps the same anonymous URL and published commit.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.repairingGitHubAccess,onClick:t[15]||(t[15]=a=>e.repairGitHubAccess())},"Repair GitHub access",8,xD),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[16]||(t[16]=a=>e.grantGitHubAccess())},"Manage access"),e.accessRepairMessage?(l(),d("p",eT,p(e.accessRepairMessage),1)):f("v-if",!0)])):f("v-if",!0),e.isUpdate&&e.detectedType==="repo"&&e.role==="owner"&&e.sourceUrl==="https://github.com/"+e._originalFullName?(l(),d("aside",tT,[t[69]||(t[69]=n("p",null,"If you deleted and recreated this repository, reconnect it before choosing a branch.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[17]||(t[17]=a=>e.reconnectSource())},"Reconnect source repository"),e.reconnectRepositoryId?(l(),d("p",nT,"Source reloaded. Review the branch, commit, and anonymization preview, then save to replace the published snapshot.")):f("v-if",!0)])):f("v-if",!0),e.detectedType==="repo"?(l(),d("div",sT,[n("div",oT,[t[71]||(t[71]=n("label",{class:"paper-field-label",for:"branch"},"Branch",-1)),n("div",iT,[T((l(),d("select",rT,[(l(!0),d(W,null,ae(e.branches,(a,u)=>(l(),d("option",{textContent:p(a?.name),value:a?.name},null,8,aT))),256))])),[[o,{state:e.viewState,set:a=>{e.source.branch=a},value:e.source?.branch,form:"anonymize",options:{}}]]),n("div",lT,[n("button",{class:"btn btn-icon refresh-branches",type:"button",title:"Refresh branches",onClick:t[18]||(t[18]=a=>e.getBranches(!0)),"aria-label":"Refresh branches"},[...t[70]||(t[70]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])])])]),n("div",dT,[t[72]||(t[72]=n("label",{class:"paper-field-label",for:"commit"},"Commit",-1)),T(n("input",{class:_(["form-control",{"is-invalid":e.anonymize?.commit?.invalid}]),id:"commit",disabled:e.options.update,name:"commit",pattern:"[a-fA-Z0-9]{6,}",required:""},null,10,uT),[[o,{state:e.viewState,set:a=>{e.source.commit=a},value:e.source?.commit,form:"anonymize",options:{}}]]),T(n("div",cT," The commit SHA is not valid. ",512),[[J,e.anonymize?.commit?.errors?.pattern||e.anonymize?.commit?.errors?.required]]),T(n("div",pT," This commit no longer exists in the repository. Click refresh to get the latest. ",512),[[J,e.anonymize?.commit?.errors?.exists]])])])):f("v-if",!0),T(n("div",fT,[T(n("input",hT,null,512),[[o,{state:e.viewState,set:a=>{e.options.update=a},value:e.options?.update,form:"anonymize",options:{}}]]),t[73]||(t[73]=n("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[74]||(t[74]=n("small",{class:"form-text text-muted"},"Follows the latest version, at most once an hour.",-1))],512),[[J,e.detectedType]])]),T(n("section",mT,[t[101]||(t[101]=n("h2",{class:"paper-section-eyebrow"},"Anonymization",-1)),T(n("div",gT,[t[76]||(t[76]=n("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),T(n("input",{type:"text",class:_(["form-control",{"is-invalid":e.anonymize?.repoId?.invalid}]),name:"repoId",id:"repoId",disabled:e.isUpdate},null,10,vT),[[o,{state:e.viewState,set:a=>{e.repoId=a},value:e.repoId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",yT,"anonymous.4open.science/r/"+p(e.repoId),1),T(n("div",bT,"ID can only contain letters and numbers.",512),[[J,e.anonymize?.repoId?.errors?.format]]),T(n("div",{class:"invalid-feedback"},p(e.repoId)+" is already used.",513),[[J,e.anonymize?.repoId?.errors?.used]])],512),[[J,e.detectedType==="repo"]]),T(n("div",wT,[t[79]||(t[79]=n("label",{class:"paper-field-label",for:"pullRequestId"},"Anonymized pull request ID",-1)),T(n("input",{type:"text",class:_(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId",disabled:e.isUpdate},null,10,kT),[[o,{state:e.viewState,set:a=>{e.pullRequestId=a},value:e.pullRequestId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",CT,[t[77]||(t[77]=y("Your share link will be ",-1)),n("code",null,"anonymous.4open.science/pr/"+p(e.pullRequestId),1),t[78]||(t[78]=y(".",-1))]),T(n("div",ET,"ID can only contain letters and numbers.",512),[[J,e.anonymize?.pullRequestId?.errors?.format]]),T(n("div",{class:"invalid-feedback"},p(e.pullRequestId)+" is already used.",513),[[J,e.anonymize?.pullRequestId?.errors?.used]])],512),[[J,e.detectedType==="pr"]]),T(n("div",ST,[t[82]||(t[82]=n("label",{class:"paper-field-label",for:"gistId"},"Anonymized gist ID",-1)),T(n("input",{type:"text",class:_(["form-control",{"is-invalid":e.anonymize?.gistId?.invalid}]),name:"gistId",id:"gistId",disabled:e.isUpdate},null,10,NT),[[o,{state:e.viewState,set:a=>{e.gistId=a},value:e.gistId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",RT,[t[80]||(t[80]=y("Your share link will be ",-1)),n("code",null,"anonymous.4open.science/gist/"+p(e.gistId),1),t[81]||(t[81]=y(".",-1))]),T(n("div",DT,"ID can only contain letters and numbers.",512),[[J,e.anonymize?.gistId?.errors?.format]]),T(n("div",{class:"invalid-feedback"},p(e.gistId)+" is already used.",513),[[J,e.anonymize?.gistId?.errors?.used]])],512),[[J,e.detectedType==="gist"]]),n("div",TT,[t[93]||(t[93]=n("label",{class:"paper-field-label",for:"terms"},"Terms to redact",-1)),T(n("textarea",{class:_(["form-control terms-input",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:Math.min(14,Math.max(4,String(e.terms||"").split(` +`).length+1)),placeholder:`Jane Smith MIT CSAIL -jane.smith@example.org`},null,2),[[s,{state:e.viewState,set:a=>{e.terms=a},value:e.terms,form:"anonymize",options:{debounce:250}}]]),t[86]||(t[86]=n("small",{class:"form-text text-muted"},"One term per line.",-1)),n("details",iN,[t[83]||(t[83]=n("summary",null,"Regex & replacement syntax",-1)),t[84]||(t[84]=h()),n("small",rN,[t[77]||(t[77]=h("Regex is supported. Replaced by ",-1)),n("code",null,u(e.site_options?.ANONYMIZATION_MASK)+"-[N]",1),t[78]||(t[78]=h(", or use ",-1)),t[79]||(t[79]=n("code",null,"term=>replacement",-1)),t[80]||(t[80]=h(" to pick your own (e.g. ",-1)),t[81]||(t[81]=n("code",null,"Anonymous=>ABC",-1)),t[82]||(t[82]=h(").",-1))])]),T(n("div",aN,"Regex characters detected. Escape them if unintentional.",512),[[Y,e.termsRegexWarning]]),T(n("div",lN,"Terms are in an invalid format.",512),[[Y,e.anonymize?.terms?.errors?.format]])])],512),[[Y,e.detectedType]]),T(n("section",dN,[t[107]||(t[107]=n("h2",{class:"paper-section-eyebrow"},"Display",-1)),T(n("div",null,[n("div",uN,[T(n("input",cN,null,512),[[s,{state:e.viewState,set:a=>{e.options.link=a},value:e.options?.link,form:"anonymize",options:{}}]]),t[88]||(t[88]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1))]),n("div",pN,[T(n("input",fN,null,512),[[s,{state:e.viewState,set:a=>{e.options.image=a},value:e.options?.image,form:"anonymize",options:{}}]]),t[89]||(t[89]=n("label",{class:"form-check-label",for:"image"},"Display images",-1))]),n("div",mN,[T(n("input",hN,null,512),[[s,{state:e.viewState,set:a=>{e.options.pdf=a},value:e.options?.pdf,form:"anonymize",options:{}}]]),t[90]||(t[90]=n("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1))]),n("div",vN,[T(n("input",gN,null,512),[[s,{state:e.viewState,set:a=>{e.options.notebook=a},value:e.options?.notebook,form:"anonymize",options:{}}]]),t[91]||(t[91]=n("label",{class:"form-check-label",for:"notebook"},"Display Notebooks",-1))]),n("div",yN,[T(n("input",{class:"form-check-input",type:"checkbox",id:"page",name:"page",disabled:!e.details?.hasPage||e.details?.pageSource&&e.details?.pageSource?.branch!==e.source?.branch},null,8,bN),[[s,{state:e.viewState,set:a=>{e.options.page=a},value:e.options?.page,form:"anonymize",options:{}}]]),t[92]||(t[92]=n("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),e.details?.hasPage?c("v-if",!0):(l(),d("small",wN,u(e.fmt?.translate("WARNINGS.page_not_enabled_on_repo")),1)),e.details?.hasPage&&e.details?.pageSource?.branch&&e.source?.branch&&e.details.pageSource.branch!==e.source.branch?(l(),d("small",kN,u(e.fmt?.translate("WARNINGS.page_branch_mismatch",{pageBranch:e.details?.pageSource?.branch,selectedBranch:e.source?.branch})),1)):c("v-if",!0)])],512),[[Y,e.detectedType==="repo"]]),e.detectedType==="repo"&&(e.options.image||e.options.pdf)?(l(),d("p",CN,[...t[93]||(t[93]=[h("Images and PDFs are served unchanged. Review their contents and metadata before sharing. ",-1),n("a",{href:"/faq#formats"},"Supported formats",-1)])])):c("v-if",!0),T(n("div",null,[n("div",EN,[T(n("input",SN,null,512),[[s,{state:e.viewState,set:a=>{e.options.title=a},value:e.options?.title,form:"anonymize",options:{}}]]),t[94]||(t[94]=n("label",{class:"form-check-label",for:"title-gist"},"Gist description",-1))]),n("div",NN,[T(n("input",RN,null,512),[[s,{state:e.viewState,set:a=>{e.options.content=a},value:e.options?.content,form:"anonymize",options:{}}]]),t[95]||(t[95]=n("label",{class:"form-check-label",for:"content-gist"},"File contents",-1))]),n("div",DN,[T(n("input",TN,null,512),[[s,{state:e.viewState,set:a=>{e.options.comments=a},value:e.options?.comments,form:"anonymize",options:{}}]]),t[96]||(t[96]=n("label",{class:"form-check-label",for:"comments-gist"},"Comments",-1))]),n("div",_N,[T(n("input",AN,null,512),[[s,{state:e.viewState,set:a=>{e.options.username=a},value:e.options?.username,form:"anonymize",options:{}}]]),t[97]||(t[97]=n("label",{class:"form-check-label",for:"username-gist"},"Usernames",-1))]),n("div",ON,[T(n("input",PN,null,512),[[s,{state:e.viewState,set:a=>{e.options.date=a},value:e.options?.date,form:"anonymize",options:{}}]]),t[98]||(t[98]=n("label",{class:"form-check-label",for:"date-gist"},"Dates",-1))]),n("div",IN,[T(n("input",MN,null,512),[[s,{state:e.viewState,set:a=>{e.options.origin=a},value:e.options?.origin,form:"anonymize",options:{}}]]),t[99]||(t[99]=n("label",{class:"form-check-label",for:"origin-gist"},"Source gist ID",-1))])],512),[[Y,e.detectedType==="gist"]]),T(n("div",null,[n("div",VN,[T(n("input",qN,null,512),[[s,{state:e.viewState,set:a=>{e.options.title=a},value:e.options?.title,form:"anonymize",options:{}}]]),t[100]||(t[100]=n("label",{class:"form-check-label",for:"title"},"PR title",-1))]),n("div",LN,[T(n("input",$N,null,512),[[s,{state:e.viewState,set:a=>{e.options.body=a},value:e.options?.body,form:"anonymize",options:{}}]]),t[101]||(t[101]=n("label",{class:"form-check-label",for:"body"},"PR body",-1))]),n("div",UN,[T(n("input",FN,null,512),[[s,{state:e.viewState,set:a=>{e.options.diff=a},value:e.options?.diff,form:"anonymize",options:{}}]]),t[102]||(t[102]=n("label",{class:"form-check-label",for:"diff"},"Diff",-1))]),n("div",BN,[T(n("input",zN,null,512),[[s,{state:e.viewState,set:a=>{e.options.comments=a},value:e.options?.comments,form:"anonymize",options:{}}]]),t[103]||(t[103]=n("label",{class:"form-check-label",for:"comments"},"Comments",-1))]),n("div",HN,[T(n("input",jN,null,512),[[s,{state:e.viewState,set:a=>{e.options.username=a},value:e.options?.username,form:"anonymize",options:{}}]]),t[104]||(t[104]=n("label",{class:"form-check-label",for:"username"},"Usernames",-1))]),n("div",GN,[T(n("input",WN,null,512),[[s,{state:e.viewState,set:a=>{e.options.date=a},value:e.options?.date,form:"anonymize",options:{}}]]),t[105]||(t[105]=n("label",{class:"form-check-label",for:"date"},"Dates",-1))]),n("div",KN,[T(n("input",YN,null,512),[[s,{state:e.viewState,set:a=>{e.options.origin=a},value:e.options?.origin,form:"anonymize",options:{}}]]),t[106]||(t[106]=n("label",{class:"form-check-label",for:"origin"},"Project name",-1))])],512),[[Y,e.detectedType==="pr"]])],512),[[Y,e.detectedType]]),T(n("section",JN,[t[123]||(t[123]=n("h2",{class:"paper-section-eyebrow",id:"hosting-heading"},"Hosting & expiration",-1)),e.detectedType==="repo"&&e.billing?.enabled?(l(),d("p",QN,[e.isUpdate&&e.role!=="owner"?(l(),d("span",XN,"Uses the owner's hosting")):e.hasAuthorHosting()?(l(),d("span",ZN,"Your author subscription is active.")):e.conference?(l(),d("span",xN,"Conference hosting is checked on submission.")):e.hostingQuota?.repository?(l(),d("span",eR,u(e.hostingQuota.repository.used)+" of "+u(e.hostingQuota.repository.total)+" active repositories \xB7 Free",1)):c("v-if",!0)])):c("v-if",!0),n("fieldset",tR,[t[113]||(t[113]=n("legend",{class:"sr-only"},"Expiration",-1)),n("label",nR,[n("input",{type:"radio",name:"expiration-choice",checked:e.options.expirationMode!=="never",onChange:t[19]||(t[19]=a=>e.useDatedHosting()),disabled:e.billingPending},null,40,oR),t[108]||(t[108]=n("span",null,"Expire on a date",-1))]),e.options.expirationMode!=="never"?(l(),d("div",sR,[e.options?.expirationMode!=="never"?(l(),d("div",iR,[t[109]||(t[109]=n("label",{class:"paper-field-label",for:"expirationDate"},"Expires",-1)),T(n("input",{class:O(["form-control",{"is-invalid":e.anonymize?.expirationDate?.invalid}]),type:"date",name:"expirationDate",id:"expirationDate",required:"",min:e.minExpirationDate,max:e.maxExpirationDate},null,10,rR),[[s,{state:e.viewState,set:a=>{e.options.expirationDate=a},value:e.options?.expirationDate,form:"anonymize",options:{}}]]),T(n("div",aR,"Pick a date in the future.",512),[[Y,e.anonymize?.expirationDate?.errors?.min]]),T(n("div",{class:"invalid-feedback"},"Pick a date on or before "+u(e.fmt?.date(e.maxExpirationDate))+".",513),[[Y,e.anonymize?.expirationDate?.errors?.max]]),T(n("div",lR,"Enter a valid expiration date.",512),[[Y,e.anonymize?.expirationDate?.errors?.required||e.anonymize?.expirationDate?.errors?.date]])])):c("v-if",!0),n("div",dR,[t[111]||(t[111]=n("label",{for:"expiration"},"Then",-1)),T(n("select",{id:"expiration",class:"form-control","onUpdate:modelValue":t[20]||(t[20]=a=>e.options.expirationMode=a)},[...t[110]||(t[110]=[n("option",{value:"remove"},"Remove content",-1),n("option",{value:"redirect"},"Redirect to GitHub",-1)])],512),[[fn,e.options.expirationMode]])])])):c("v-if",!0),e.detectedType==="repo"?(l(),d("label",uR,[n("input",{type:"radio",name:"expiration-choice",checked:e.options.expirationMode==="never",onChange:t[21]||(t[21]=a=>e.options.expirationMode="never"),disabled:e.billingPending},null,40,cR),n("span",null,[t[112]||(t[112]=h("Never expire",-1)),e.options.expirationMode!=="never"||e.hasAuthorHosting()?(l(),d("small",pR,u(e.hasAuthorHosting()?"Included in your subscription":"Author subscription"),1)):c("v-if",!0)])])):c("v-if",!0)]),e.options.expirationMode==="redirect"?(l(),d("p",fR,"Visitors will be redirected to the original GitHub source on this date, revealing its identity.")):c("v-if",!0),n("div",mR,[t[114]||(t[114]=n("label",{class:"paper-field-label",for:"conference"},[h("Conference code "),n("span",{class:"paper-optional"},"(optional)")],-1)),T(n("input",{class:O(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[s,{state:e.viewState,set:a=>{e.conference=a},value:e.conference,form:"anonymize",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),T(n("small",hR,[n("a",{target:"_blank",href:e.safeUrl(e.conference_data?.url)},u(e.conference_data?.name),9,vR),h(" expires "+u(e.fmt?.date(e.conference_data?.endDate))+". ",1)],512),[[Y,e.conference_data]]),T(n("div",gR,"The conference is not activated.",512),[[Y,e.anonymize?.conference?.errors?.activated]]),T(n("small",yR,"Link to a conference to apply its shared defaults.",512),[[Y,!e.conference_data]])]),e.detectedType==="repo"&&e.billing?.enabled?(l(),d("div",bR,[e.taskValidationError?(l(),d("p",wR,u(e.taskValidationError),1)):c("v-if",!0),e.billingError?(l(),d("p",kR,[h(u(e.billingError)+" ",1),n("button",{type:"button",class:"task-text-button",onClick:t[22]||(t[22]=a=>e.loadBilling()),disabled:e.billingBusy},"Reload billing",8,CR)])):c("v-if",!0),e.billingPending?(l(),d("div",ER,[...t[115]||(t[115]=[n("p",null,[n("strong",null,"Confirming your payment\u2026")],-1),n("p",{class:"form-text text-muted"},"Your draft is saved. Please do not pay again.",-1)])])):e.billingNotice?(l(),d("p",SR,u(e.billingNotice),1)):c("v-if",!0),e.hostingNeedsPayment()&&!e.billingPending?(l(),d(W,{key:4},[e.options.expirationMode!=="never"?(l(),d("p",NR,u(e.options.update&&!e.hostingQuotaBlocked&&e.hostingQuota?.repository?.used(l(),d("label",{class:O(["cycle-option",{selected:e.selectedHostingPlan()?.id===a.id}]),key:a.id},[n("input",{type:"radio",name:"hosting-plan",value:a.id,checked:e.selectedHostingPlan()?.id===a.id,onChange:p=>e.hostingPlan=a.id},null,40,TR),n("span",null,u(e.billingPrice(a)),1)],2))),128))]),n("p",null,u(e.selectedHostingPlan()?.repositories)+" repositories, "+u(e.billingBytes(e.selectedHostingPlan()?.storage))+". Coauthors included.",1),n("p",_R,"Renews "+u(e.selectedHostingPlan()?.interval==="year"?"annually":"monthly")+" until cancelled. Tax shown at checkout.",1),t[118]||(t[118]=n("p",{class:"hosting-terms"},"If paid access ends, never-expiring repositories expire after 90 days.",-1))])):(l(),d("p",AR,"New purchases are temporarily unavailable. Your draft is kept.")),e.options.expirationMode!=="never"?(l(),d("details",OR,[t[119]||(t[119]=n("summary",null,"Keep using free hosting",-1)),t[120]||(t[120]=n("p",null,"Remove a repository you no longer need, or use conference hosting. Removing a repository affects its review link.",-1)),t[121]||(t[121]=n("a",{href:"/dashboard"},"Review my repositories",-1)),n("button",{type:"button",class:"task-text-button",onClick:t[23]||(t[23]=a=>e.anonymizeRepo(a)),disabled:e.sourceLoading||e.billingBusy},"Recheck capacity and submit",8,PR)])):c("v-if",!0)],64)):e.options.expirationMode==="never"&&!e.billingPending?(l(),d("p",IR,"No scheduled expiration while subscribed. A 90-day grace period applies if paid access ends.")):c("v-if",!0),e.isUpdate&&e.role==="owner"&&!e.hasAuthorHosting()?(l(),d("details",MR,[t[122]||(t[122]=n("summary",null,"Hosting just this repository?",-1)),(l(!0),d(W,null,oe((e.billing?.plans||[]).filter(a=>a.id==="author_pass"),a=>(l(),d("div",{key:a.id},[n("p",null,u(e.billingPrice(a))+" \xB7 "+u(e.billingBytes(a.storage))+" for 180 days. No renewal. Does not include Never expire.",1),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.billingBusy||e.hostingSaving||e.sourceLoading||e.billing.checkoutEnabled===!1||e.billingPending,onClick:t[24]||(t[24]=p=>e.checkoutRepository(!0))},"Review repository pass",8,VR)]))),128))])):c("v-if",!0)])):c("v-if",!0)],512),[[Y,e.detectedType]]),T(n("section",qR,[t[127]||(t[127]=n("h2",{class:"paper-section-eyebrow"},"Coauthors",-1)),t[128]||(t[128]=n("p",{class:"form-text text-muted",style:{"margin-bottom":"8px"}}," Co-authors can view and edit these settings. They cannot delete the anonymization or manage co-authors. ",-1)),T(n("div",LR,[t[124]||(t[124]=n("label",{class:"paper-field-label",for:"coauthorSearch"},"Add a GitHub user",-1)),n("div",$R,[T(n("input",UR,null,512),[[s,{state:e.viewState,set:a=>{e.coauthorSearch=a},value:e.coauthorSearch,form:"anonymize",options:{debounce:300},change:()=>{e.searchCoauthors()}}]]),T(n("div",FR,[(l(!0),d(W,null,oe(e.coauthorResults,(a,p)=>(l(),d("a",{href:"#",class:"dropdown-item d-flex align-items-center",onClick:ae(f=>e.addCoauthor(a,f),["prevent"])},[n("img",{alt:"",style:{width:"22px",height:"22px","border-radius":"50%","margin-right":"8px"},src:e.safeUrl(a?.photo)},null,8,zR),n("span",{textContent:u(a?.username)},null,8,HR)],8,BR))),256))],512),[[Y,e.coauthorResults?.length>0]])]),T(n("small",{class:"form-text text-muted",textContent:u(e.coauthorError)},null,8,jR),[[Y,e.coauthorError]])],512),[[Y,e.role==="owner"||e.role==="admin"]]),n("div",GR,[(l(!0),d(W,null,oe(e.coauthors,(a,p)=>(l(),d("div",WR,[a?.photo?(l(),d("img",{key:0,alt:"",style:{width:"24px",height:"24px","border-radius":"50%"},src:e.safeUrl(a?.photo)},null,8,KR)):c("v-if",!0),n("a",{target:"_blank",textContent:u(a?.username),href:e.safeUrl("https://github.com/"+a?.username)},null,8,YR),t[126]||(t[126]=n("span",{class:"type-badge type-coauthor"},"Co-author",-1)),T(n("button",{type:"button",class:"btn btn-sm btn-icon",style:{"margin-left":"auto"},title:"Remove co-author",onClick:f=>e.removeCoauthor(a),"aria-label":"Remove co-author"},[...t[125]||(t[125]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,JR),[[Y,e.role==="owner"||e.role==="admin"]])]))),256)),T(n("div",QR," No co-authors yet. ",512),[[Y,!e.coauthors||e.coauthors?.length===0]])])],512),[[Y,e.isUpdate&&e.detectedType==="repo"]]),e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:u(e.error)},null,8,XR)):c("v-if",!0)]),n("button",{type:"button",class:"btn btn-outline-ink mobile-preview-jump",onClick:t[25]||(t[25]=a=>e.selectMobilePane("preview"))},[...t[129]||(t[129]=[h("Review preview ",-1),n("span",{"aria-hidden":"true"},"\u2192",-1)])]),T(n("div",ZR,[e.detectedType==="repo"?(l(),d(W,{key:0},[e.billingPending?(l(),d("button",{key:0,type:"button",class:"btn btn-ink",onClick:t[26]||(t[26]=a=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,xR)):(l(),d("button",{key:1,type:"submit",class:"btn btn-ink",disabled:e.sourceLoading||e.billingBusy||e.hostingSaving||e.billingLoading||e.hostingNeedsPayment()&&(!e.authorPlans().length||e.billing?.checkoutEnabled===!1),onClick:t[27]||(t[27]=ae(a=>e.submitForm(a,()=>{e.submitRepository(a)}),["prevent"]))},u(e.hostingSaving?"Saving draft\u2026":e.hostingNeedsPayment()?"Continue to checkout":e.isUpdate?"Save changes":"Create anonymous link"),9,eD)),e.hostingNeedsPayment()&&!e.billingPending?(l(),d("p",tD,"Review payment in Stripe, then return to finish.")):c("v-if",!0)],64)):c("v-if",!0),e.detectedType==="pr"&&!e.isUpdate?(l(),d("button",{key:1,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[28]||(t[28]=ae(a=>e.submitForm(a,()=>{e.anonymizePullRequest(a)}),["prevent"]))},[...t[130]||(t[130]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),h(" Anonymize Pull Request ",-1)])],8,nD)):c("v-if",!0),e.detectedType==="pr"&&e.isUpdate?(l(),d("button",{key:2,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[29]||(t[29]=ae(a=>e.submitForm(a,()=>{e.anonymizePullRequest(a)}),["prevent"]))},[...t[131]||(t[131]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-save"})],-1),h(" Update Pull Request ",-1)])],8,oD)):c("v-if",!0),e.detectedType==="gist"&&!e.isUpdate?(l(),d("button",{key:3,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[30]||(t[30]=ae(a=>e.submitForm(a,()=>{e.anonymizeGist(a)}),["prevent"]))},[...t[132]||(t[132]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),h(" Anonymize Gist ",-1)])],8,sD)):c("v-if",!0),e.detectedType==="gist"&&e.isUpdate?(l(),d("button",{key:4,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[31]||(t[31]=ae(a=>e.submitForm(a,()=>{e.anonymizeGist(a)}),["prevent"]))},[...t[133]||(t[133]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-save"})],-1),h(" Update Gist ",-1)])],8,iD)):c("v-if",!0),e.draftRestored?(l(),d("div",rD,[t[134]||(t[134]=h("Your unsaved draft was restored. ",-1)),n("button",{type:"button",class:"draft-discard",onClick:t[32]||(t[32]=a=>e.discardDraft())},"Discard draft")])):e.unsavedChanges?(l(),d("div",aD,[h(u(e.draftSaved?"Draft saved \xB7":"Unsaved changes \xB7")+" ",1),n("button",{type:"button",class:"draft-discard",onClick:t[33]||(t[33]=a=>e.discardDraft())},u(e.isUpdate?"Restore saved":"Discard"),1)])):c("v-if",!0)],512),[[Y,e.detectedType]])])),[[r,e.viewState]])],8,ZE),c(" Preview column (right) "),e.detectedType==="repo"?(l(),d("div",{key:0,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[n("div",dD,[t[135]||(t[135]=n("span",{class:"paper-eyebrow"},"Live preview",-1)),n("span",uD,u(e.previewStatus!=="ready"?"README preview":String(e.terms||"").trim()?"README with redactions applied":"No terms yet. Add some to see them redacted here."),1),n("button",{type:"button",class:"task-text-button preview-expand",onClick:t[34]||(t[34]=a=>e.previewExpanded=!e.previewExpanded)},u(e.previewExpanded?"Restore split view":"Expand preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",cD,"Loading source\u2026")):c("v-if",!0),e.previewStatus==="loading"?(l(),d("div",pD,"Updating the anonymized preview\u2026")):c("v-if",!0),e.previewStatus==="error"?(l(),d("div",fD,[t[136]||(t[136]=n("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),n("button",{class:"btn btn-outline-ink",type:"button",onClick:t[35]||(t[35]=a=>e.retryPreview())},"Retry preview")])):c("v-if",!0),!e.sourceLoading&&!e.readme&&e.previewStatus==="idle"?(l(),d("div",mD,"No README is available to preview. Review the published files before sharing.")):c("v-if",!0),e.previewStatus==="ready"?(l(),d("div",{key:4,class:"anonymize-preview-body markdown-body body",innerHTML:e.renderRedacted(e.sanitize(e.html_readme))},null,8,hD)):c("v-if",!0)],8,lD)):c("v-if",!0),e.detectedType==="gist"&&e.details?(l(),d("div",{key:1,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[n("div",gD,[t[137]||(t[137]=n("strong",null,"Gist preview",-1)),n("button",{type:"button",class:"task-text-button preview-expand",onClick:t[36]||(t[36]=a=>e.previewExpanded=!e.previewExpanded)},u(e.previewExpanded?"Restore split view":"Expand preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",yD,"Loading source\u2026")):c("v-if",!0),e.previewStatus==="loading"?(l(),d("div",bD,"Updating the anonymized preview\u2026")):c("v-if",!0),e.previewStatus==="error"?(l(),d("div",wD,[t[138]||(t[138]=n("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),n("button",{class:"btn btn-outline-ink",type:"button",onClick:t[37]||(t[37]=a=>e.retryPreview())},"Retry preview")])):c("v-if",!0),e.previewStatus==="ready"?(l(),d("div",kD,[n("div",CD,[n("h2",ED,[e.options?.title?(l(),d("span",SD,u(e.anonymizeGistContent(e.details?.gist?.description)||"Untitled gist"),1)):c("v-if",!0),n("span",{class:O(["badge",{"badge-success":e.details?.gist?.isPublic,"badge-secondary":!e.details?.gist?.isPublic}])},u(e.details?.gist?.isPublic?"public":"secret"),3)]),e.options?.date?(l(),d("small",{key:0,textContent:u(e.fmt?.date(e.details?.gist?.updatedDate))},null,8,ND)):c("v-if",!0)]),e.options?.origin?(l(),d("small",RD,"Gist ID: "+u(e.details?.source?.gistId),1)):c("v-if",!0),e.options?.username&&e.details?.gist?.ownerLogin?(l(),d("small",DD,"By @"+u(e.anonymizeGistContent(e.details?.gist?.ownerLogin)),1)):c("v-if",!0),e.options?.content&&e.previewGistFiles?.length?(l(),d("div",TD,[n("ul",_D,[(l(!0),d(W,null,oe(e.previewGistFiles,(a,p)=>(l(),d("li",AD,[n("div",OD,[n("strong",{textContent:u(a?.filename)},null,8,PD),a?.language?(l(),d("span",ID,u(a?.language),1)):c("v-if",!0)]),De(o,{file:a,terms:e.terms,options:e.options},null,8,["file","terms","options"])]))),256))])])):c("v-if",!0),e.options?.comments&&e.details?.gist?.comments&&e.details?.gist?.comments?.length?(l(),d("div",MD,[t[141]||(t[141]=n("h3",{class:"paper-section-eyebrow mt-3"},"Comments",-1)),n("ul",VD,[(l(!0),d(W,null,oe(e.details?.gist?.comments,(a,p)=>(l(),d("li",qD,[n("div",LD,[e.options?.username?(l(),d("span",$D,[t[139]||(t[139]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[140]||(t[140]=h(" @",-1)),n("span",{textContent:u(e.anonymizeGistContent(a?.author))},null,8,UD)])):c("v-if",!0),e.options?.date?(l(),d("span",{key:1,class:"pr-comment-date",textContent:u(e.fmt?.date(a?.updatedDate))},null,8,FD)):c("v-if",!0)]),e.options?.body?(l(),d("div",BD,[De(i,{content:e.anonymizeGistContent(a?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):c("v-if",!0)]))),256))])])):c("v-if",!0)])):c("v-if",!0)],8,vD)):c("v-if",!0),e.detectedType==="pr"&&e.details?(l(),d("div",{key:2,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[n("div",HD,[t[142]||(t[142]=n("strong",null,"Pull request preview",-1)),n("button",{type:"button",class:"task-text-button preview-expand",onClick:t[38]||(t[38]=a=>e.previewExpanded=!e.previewExpanded)},u(e.previewExpanded?"Restore split view":"Expand preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",jD,"Loading source\u2026")):c("v-if",!0),e.previewStatus==="loading"?(l(),d("div",GD,"Updating the anonymized preview\u2026")):c("v-if",!0),e.previewStatus==="error"?(l(),d("div",WD,[t[143]||(t[143]=n("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),n("button",{class:"btn btn-outline-ink",type:"button",onClick:t[39]||(t[39]=a=>e.retryPreview())},"Retry preview")])):c("v-if",!0),e.previewStatus==="ready"?(l(),d("div",KD,[n("div",YD,[n("h2",JD,[e.options?.title?(l(),d("span",QD,u(e.anonymizePrContent(e.details?.pullRequest?.title)),1)):c("v-if",!0),n("span",{class:O(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},u(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(l(),d("small",{key:0,textContent:u(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,XD)):c("v-if",!0)]),e.options?.origin?(l(),d("small",ZD,"Pull Request on "+u(e.details?.pullRequest?.baseRepositoryFullName),1)):c("v-if",!0),e.options?.body?(l(),d("div",xD,[De(i,{content:e.anonymizePrContent(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):c("v-if",!0),e.options?.diff||e.options?.comments?(l(),d("nav",eT,[e.options?.diff?(l(),d("button",{key:0,class:O(["paper-tab",{active:e.prTabState?.active=="diff"}]),type:"button",role:"tab",id:"preview-pr-diff-tab","aria-selected":e.prTabState?.active==="diff","aria-controls":"preview-pr-diff-panel",tabindex:e.prTabState?.active==="diff"?0:-1,onKeydown:t[40]||(t[40]=a=>e.previewTabKeydown(a)),onClick:t[41]||(t[41]=a=>e.prTabState.active="diff")},[...t[144]||(t[144]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),h(" Diff ",-1)])],42,tT)):c("v-if",!0),e.options?.comments?(l(),d("button",{key:1,class:O(["paper-tab",{active:e.prTabState?.active=="comments"}]),type:"button",role:"tab",id:"preview-pr-comments-tab","aria-selected":e.prTabState?.active==="comments","aria-controls":"preview-pr-comments-panel",tabindex:e.prTabState?.active==="comments"?0:-1,onKeydown:t[42]||(t[42]=a=>e.previewTabKeydown(a)),onClick:t[43]||(t[43]=a=>e.prTabState.active="comments")},[t[145]||(t[145]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1)),n("span",{textContent:u(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,oT)],42,nT)):c("v-if",!0)])):c("v-if",!0),!e.options?.diff&&!e.options?.comments?(l(),d("div",sT,"Diff and comments are hidden by your display settings.")):c("v-if",!0),n("div",iT,[e.options?.diff&&e.prTabState?.active=="diff"?(l(),d("div",rT,[n("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.anonymizePrContent(e.details?.pullRequest?.diff)))},null,8,aT)])):c("v-if",!0),e.options?.comments&&e.prTabState?.active=="comments"?(l(),d("div",lT,[n("ul",dT,[(l(!0),d(W,null,oe(e.details?.pullRequest?.comments,(a,p)=>(l(),d("li",uT,[n("div",cT,[e.options?.username?(l(),d("span",pT,[t[146]||(t[146]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[147]||(t[147]=h(" @",-1)),n("span",{textContent:u(e.anonymizePrContent(a?.author))},null,8,fT)])):c("v-if",!0),e.options?.date?(l(),d("span",{key:1,class:"pr-comment-date",textContent:u(e.fmt?.date(a?.updatedDate))},null,8,mT)):c("v-if",!0)]),e.options?.body?(l(),d("div",hT,[De(i,{content:e.anonymizePrContent(a?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):c("v-if",!0)]))),256))])])):c("v-if",!0)])])):c("v-if",!0)],8,zD)):c("v-if",!0)])],512),[[Y,e.workspaceOpen||e.isUpdate]])],2)}var vT={class:"container-fluid h-100 anonymize-page"},gT={class:"row h-100 flex-column flex-md-row"},yT={class:"col-md sidePanel shadow overflow-auto anonymize-form-col"},bT={class:"form-group"},wT={class:"form-group"},kT={class:"form-check"},CT={class:"form-check-input",type:"checkbox",id:"update",name:"update"},ET={class:"form-group"},ST={class:"form-text text-muted"},NT=["href"],RT={class:"invalid-feedback"},DT={class:"form-text text-muted"},TT={class:"form-group"},_T={id:"idHelp",class:"form-text text-muted"},AT={class:"invalid-feedback"},OT={class:"form-group"},PT={class:"invalid-feedback"},IT={class:"form-group"},MT={class:"form-control",id:"expiration",name:"expiration"},VT={class:"form-group",id:"expiration-date-form"},qT={class:"form-control",type:"date",name:"expirationDate",id:"expirationDate"},LT={class:"accordion mb-3",id:"options"},$T={class:"card"},UT={id:"collapseOne",class:"collapse show","aria-labelledby":"headingOne","data-parent":"#options"},FT={class:"card-body"},BT={class:"form-group mb-0"},zT={class:"form-check"},HT={class:"form-check-input",type:"checkbox",id:"link",name:"link"},jT={class:"form-check"},GT={class:"form-check-input",type:"checkbox",id:"image",name:"image"},WT={class:"form-check"},KT={class:"form-check-input",type:"checkbox",id:"date",name:"date"},YT={class:"form-check"},JT={class:"form-check-input",type:"checkbox",id:"username",name:"username"},QT={class:"form-check"},XT={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},ZT={class:"form-check"},xT={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},e_={class:"form-check"},t_={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},n_={class:"form-check"},o_={class:"form-check-input",type:"checkbox",id:"title",name:"title"},s_={class:"form-check"},i_={class:"form-check-input",type:"checkbox",id:"body",name:"body"},r_=["textContent"],a_={class:"anonymize-submit-bar"},l_={key:0,class:"col-md-8 p-2 overflow-auto anonymize-preview-col"},d_={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},u_={class:"pr-title mb-1"},c_={key:0},p_=["textContent"],f_={key:0},m_={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},h_={class:"nav nav-tabs",id:"myTab",role:"tablist"},v_={key:0,class:"nav-item",role:"presentation"},g_={key:1,class:"nav-item",role:"presentation"},y_=["textContent"],b_={class:"tab-content",id:"pills-tabContent"},w_={class:"tab-pane show active",id:"pills-diff",role:"tabpanel","aria-labelledby":"pills-diff-tab"},k_={key:0,class:"pr-diff shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},C_={style:{"overflow-x":"auto"}},E_=["innerHTML"],S_={key:0,class:"pr-comments list-group"},N_={class:"pr-comment list-group-item"},R_={class:"d-flex w-100 justify-content-between flex-wrap"},D_={key:0,class:"mb-1"},T_=["textContent"],__={class:"mb-1"};function Bl(e,t){let o=We("markdown"),i=we("field"),s=we("form");return l(),d("div",vT,[n("div",gT,[n("div",yT,[n("div",{class:O(["p-0 py-2 m-auto",{card:!e.pullRequestUrl,container:e.pullRequestUrl}])},[T((l(),d("form",{class:O(["form needs-validation",{"card-body":!e.pullRequestUrl}]),name:"anonymizeForm",novalidate:""},[t[30]||(t[30]=me('
Anonymize \xA0/\xA0 Pull request

Anonymize a pull request

Fill in the details \u2014 it only takes a minute.

Source
',4)),c(" pullRequestUrl "),n("div",bT,[t[2]||(t[2]=n("label",{for:"pullRequestUrl"},"URL of your pull request",-1)),T(n("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.pullRequestUrl?.invalid}]),name:"pullRequestUrl",id:"pullRequestUrl",placeholder:"https://github.com/owner/repo/pull/123"},null,2),[[i,{state:e.viewState,set:r=>{e.pullRequestUrl=r},value:e.pullRequestUrl,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.pullRequestSelected()}}]]),T(n("div",{class:"invalid-feedback"},u(e.pullRequestUrl)+" is not accessible. Some organizations are restricting the access to the repositories. ",513),[[Y,e.anonymize?.pullRequestUrl?.errors?.access]]),T(n("div",{class:"invalid-feedback"},u(e.pullRequestUrl)+" does not exist or is not accessible ",513),[[Y,e.anonymize?.pullRequestUrl?.errors?.missing]]),T(n("div",{class:"invalid-feedback"},u(e.pullRequestUrl)+" is already anonymized ",513),[[Y,e.anonymize?.pullRequestUrl?.errors?.used]])]),T(n("div",null,[n("div",wT,[n("div",kT,[T(n("input",CT,null,512),[[i,{state:e.viewState,set:r=>{e.options.update=r},value:e.options?.update,form:"anonymizeForm",options:{}}]]),t[3]||(t[3]=n("label",{class:"form-check-label",for:"update"},"Auto update",-1)),t[4]||(t[4]=n("small",{id:"updateHelp",class:"form-text text-muted"},"Automatically update the anonymized pull request with the latest updates. The pull request is updated once per day maximum.",-1))])]),t[26]||(t[26]=n("div",{class:"paper-section-eyebrow anonymize-section-title"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})]),h(" Conference ID ")],-1)),c(" Conference "),n("div",ET,[t[5]||(t[5]=n("label",{for:"conference"},[h("Conference ID "),n("span",{class:"text-muted"},"(Optional)")],-1)),T(n("input",{class:O(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[i,{state:e.viewState,set:r=>{e.conference=r},value:e.conference,form:"anonymizeForm",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),T(n("small",ST,[n("a",{target:"_target",href:e.safeUrl(e.conference_data?.url)},u(e.conference_data?.name),9,NT),h(" will expire on "+u(e.fmt?.date(e.conference_data?.endDate))+".",1)],512),[[Y,e.conference_data]]),T(n("div",RT," The conference is not activated. ",512),[[Y,e.anonymize?.conference?.errors?.activated]]),T(n("small",DT," Use the Conference ID that your conference provided you. This will update automatically the anonymization options based on the conference preferences. ",512),[[Y,!e.conference_data]])]),t[27]||(t[27]=n("div",{class:"paper-section-eyebrow anonymize-section-title"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})]),h(" Anonymization Options ")],-1)),c(" Pull Request ID "),n("div",TT,[t[6]||(t[6]=n("label",{for:"pullRequestId"},"Anonymized pull request id",-1)),T(n("input",{type:"text",class:O(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId"},null,2),[[i,{state:e.viewState,set:r=>{e.pullRequestId=r},value:e.pullRequestId,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",_T,"Id used in the url: https://anonymous.4open.science/r/"+u(e.pullRequestId),1),T(n("div",AT," Repository id can only contain letters and numbers ",512),[[Y,e.anonymize?.pullRequestId?.errors?.format]]),T(n("div",{class:"invalid-feedback"},u(e.pullRequestId)+" is already used ",513),[[Y,e.anonymize?.pullRequestId?.errors?.used]])]),c(" Terms "),n("div",OT,[t[7]||(t[7]=n("label",{for:"terms"},"Terms to anonymize",-1)),T(n("textarea",{class:O(["form-control",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:"3"},null,2),[[i,{state:e.viewState,set:r=>{e.terms=r},value:e.terms,form:"anonymizeForm",options:{debounce:250}}]]),t[8]||(t[8]=n("small",{id:"termsHelp",class:"form-text text-muted"},"One term per line. Each term will be replaced by XXX.",-1)),T(n("div",PT," Terms are in an invalid format ",512),[[Y,e.anonymize?.terms?.errors?.format]])]),n("div",IT,[t[10]||(t[10]=n("label",{for:"expiration"},"Expiration strategy",-1)),T((l(),d("select",MT,[...t[9]||(t[9]=[n("option",{value:"never",selected:""},"Never expire",-1),n("option",{value:"redirect"}," Redirect to GitHub when expired ",-1),n("option",{value:"remove"},"Remove when expired",-1)])])),[[i,{state:e.viewState,set:r=>{e.options.expirationMode=r},value:e.options?.expirationMode,form:"anonymizeForm",options:{}}]]),t[11]||(t[11]=n("small",{class:"form-text text-muted"},"Define the expiration strategy for the anonymized repository.",-1))]),T(n("div",VT,[t[12]||(t[12]=n("label",{for:"expirationDate"},"Expiration date of the anonymized repository",-1)),T(n("input",qT,null,512),[[i,{state:e.viewState,set:r=>{e.options.expirationDate=r},value:e.options?.expirationDate,form:"anonymizeForm",options:{}}]]),T(n("small",{class:"form-text text-muted"},"After "+u(e.fmt?.date(e.options?.expirationDate))+", the repository will be removed and the visitor will not be able to see the content of the repository.",513),[[Y,e.options?.expirationMode=="remove"]]),T(n("small",{class:"form-text text-muted"},"After "+u(e.fmt?.date(e.options?.expirationDate))+", the visitors of the anonymized repository will be redirected to "+u(e.pullRequestUrl)+".",513),[[Y,e.options?.expirationMode=="redirect"]])],512),[[Y,e.options?.expirationMode!="never"]]),n("div",LT,[n("div",$T,[t[25]||(t[25]=me('

',1)),n("div",UT,[n("div",FT,[n("div",BT,[n("div",zT,[T(n("input",HT,null,512),[[i,{state:e.viewState,set:r=>{e.options.link=r},value:e.options?.link,form:"anonymizeForm",options:{}}]]),t[13]||(t[13]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[14]||(t[14]=n("small",{class:"form-text text-muted"},"Keep or remove all the links.",-1))]),n("div",jT,[T(n("input",GT,null,512),[[i,{state:e.viewState,set:r=>{e.options.image=r},value:e.options?.image,form:"anonymizeForm",options:{}}]]),t[15]||(t[15]=n("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[16]||(t[16]=n("small",{class:"form-text text-muted"},"Images are not anonymized",-1))]),n("div",WT,[T(n("input",KT,null,512),[[i,{state:e.viewState,set:r=>{e.options.date=r},value:e.options?.date,form:"anonymizeForm",options:{}}]]),t[17]||(t[17]=n("label",{class:"form-check-label",for:"date"},"Display dates",-1)),t[18]||(t[18]=n("small",{class:"form-text text-muted"},"Display the date of the Pull Request and the date of the comments.",-1))]),n("div",YT,[T(n("input",JT,null,512),[[i,{state:e.viewState,set:r=>{e.options.username=r},value:e.options?.username,form:"anonymizeForm",options:{}}]]),t[19]||(t[19]=n("label",{class:"form-check-label",for:"username"},"Display username",-1))]),n("div",QT,[T(n("input",XT,null,512),[[i,{state:e.viewState,set:r=>{e.options.comments=r},value:e.options?.comments,form:"anonymizeForm",options:{}}]]),t[20]||(t[20]=n("label",{class:"form-check-label",for:"comments"},"Display comments",-1))]),n("div",ZT,[T(n("input",xT,null,512),[[i,{state:e.viewState,set:r=>{e.options.diff=r},value:e.options?.diff,form:"anonymizeForm",options:{}}]]),t[21]||(t[21]=n("label",{class:"form-check-label",for:"diff"},"Display diff",-1))]),n("div",e_,[T(n("input",t_,null,512),[[i,{state:e.viewState,set:r=>{e.options.origin=r},value:e.options?.origin,form:"anonymizeForm",options:{}}]]),t[22]||(t[22]=n("label",{class:"form-check-label",for:"origin"},"Display the project name",-1))]),n("div",n_,[T(n("input",o_,null,512),[[i,{state:e.viewState,set:r=>{e.options.title=r},value:e.options?.title,form:"anonymizeForm",options:{}}]]),t[23]||(t[23]=n("label",{class:"form-check-label",for:"title"},"Display the PR title",-1))]),n("div",s_,[T(n("input",i_,null,512),[[i,{state:e.viewState,set:r=>{e.options.body=r},value:e.options?.body,form:"anonymizeForm",options:{}}]]),t[24]||(t[24]=n("label",{class:"form-check-label",for:"body"},"Display the PR body and comment bodies",-1))])])])])])])],512),[[Y,e.pullRequestUrl]]),e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:u(e.error)},null,8,r_)):c("v-if",!0),T(n("div",a_,[e.isUpdate?c("v-if",!0):(l(),d("button",{key:0,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[0]||(t[0]=ae(r=>e.submitForm(r,()=>{e.anonymizePullRequest(r)}),["prevent"]))},[...t[28]||(t[28]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),h(" Anonymize ",-1)])])),e.isUpdate?(l(),d("button",{key:1,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[1]||(t[1]=ae(r=>e.submitForm(r,()=>{e.updatePullRequest(r)}),["prevent"]))},[...t[29]||(t[29]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-save"})],-1),h(" Update ",-1)])])):c("v-if",!0)],512),[[Y,e.pullRequestUrl]])],2)),[[s,e.viewState]])],2)]),e.details?(l(),d("div",l_,[n("div",d_,[n("h2",u_,[e.options?.title?(l(),d("span",c_,u(e.anonymize(e.details?.pullRequest?.title)),1)):c("v-if",!0),n("span",{class:O(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},u(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(l(),d("small",{key:0,textContent:u(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,p_)):c("v-if",!0)]),e.options?.origin?(l(),d("small",f_,"Pull Request on "+u(e.details?.pullRequest?.baseRepositoryFullName),1)):c("v-if",!0),e.options?.body?(l(),d("div",m_,[De(o,{content:e.anonymize(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):c("v-if",!0),n("ul",h_,[e.options?.diff?(l(),d("li",v_,[...t[31]||(t[31]=[n("button",{class:"nav-link active",id:"pills-diff-tab","data-toggle":"pill","data-target":"#pills-diff",type:"button",role:"tab","aria-controls":"pills-diff","aria-selected":"true"}," Diff ",-1)])])):c("v-if",!0),e.options?.comments?(l(),d("li",g_,[n("button",{class:O(["nav-link",{active:!e.options?.diff}]),id:"pills-comments-tab","data-toggle":"pill","data-target":"#pills-comments",type:"button",role:"tab","aria-controls":"pills-comments","aria-selected":"false"},[n("span",{textContent:u(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comment",one:"One Comment",other:"{} Comments"}))},null,8,y_)],2)])):c("v-if",!0)]),n("div",b_,[n("div",w_,[e.options?.diff?(l(),d("div",k_,[n("pre",C_,[n("code",{innerHTML:e.sanitize(e.fmt?.diff(e.anonymize(e.details?.pullRequest?.diff)))},null,8,E_)])])):c("v-if",!0)]),n("div",{class:O(["tab-pane",{"show active":!e.options?.diff}]),id:"pills-comments",role:"tabpanel","aria-labelledby":"pills-comments-tab"},[e.options?.comments?(l(),d("ul",S_,[(l(!0),d(W,null,oe(e.details?.pullRequest?.comments,(r,a)=>(l(),d("li",N_,[n("div",R_,[e.options?.username?(l(),d("h5",D_," @"+u(e.anonymize(r?.author)),1)):c("v-if",!0),e.options?.date?(l(),d("small",{key:1,textContent:u(e.fmt?.date(r?.updatedDate))},null,8,T_)):c("v-if",!0)]),n("p",__,[e.options?.body?(l(),Bt(o,{key:0,class:"pr-comment-body",content:e.anonymize(r?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])):c("v-if",!0)])]))),256))])):c("v-if",!0)],2)])])):c("v-if",!0)])])}var A_={class:"container paper-page claim-page"},O_={class:"paper-settings-main claim-form"},P_={class:"form-group"},I_={class:"invalid-feedback"},M_={class:"form-group"};function zl(e,t){let o=we("field"),i=we("form");return l(),d("div",A_,[t[6]||(t[6]=me('
My work \xA0/\xA0 Claim

Claim an anonymization

Take ownership of an existing anonymized repository so it appears on your dashboard.

',3)),n("div",O_,[t[5]||(t[5]=n("p",{class:"paper-section-copy"},"Use this when an anonymization was created by a co-author or from another account. You must have access to the GitHub repository it was made from.",-1)),T((l(),d("form",{class:"form needs-validation",name:"claimForm",novalidate:"",onSubmit:t[0]||(t[0]=ae(s=>e.submitForm(s,()=>{e.claim()}),["prevent"]))},[n("div",P_,[t[1]||(t[1]=n("label",{class:"paper-field-label",for:"repoUrl"},"GitHub repository URL",-1)),T(n("input",{type:"text",class:O(["form-control",{"is-invalid":e.claimForm?.repoUrl?.invalid&&(e.claimForm?.repoUrl?.touched||e.claimForm?.submitted)}]),name:"repoUrl",id:"repoUrl",placeholder:"https://github.com/owner/repository",required:""},null,2),[[o,{state:e.viewState,set:s=>{e.repoUrl=s},value:e.repoUrl,form:"claimForm",options:{}}]]),T(n("div",I_," No anonymization matches this repository and ID. Check both values and that you can access the repository on GitHub. ",512),[[Y,e.claimForm?.repoUrl?.errors?.not_found]])]),n("div",M_,[t[2]||(t[2]=n("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),T(n("input",{type:"text",class:O(["form-control",{"is-invalid":e.claimForm?.repoId?.invalid&&(e.claimForm?.repoId?.touched||e.claimForm?.submitted)}]),name:"repoId",id:"repoId",placeholder:"e.g. my-paper-7F2A","aria-describedby":"idHelp",required:""},null,2),[[o,{state:e.viewState,set:s=>{e.repoId=s},value:e.repoId,form:"claimForm",options:{}}]]),t[3]||(t[3]=n("small",{id:"idHelp",class:"form-text text-muted"},[h("The ID is the last part of the anonymized URL: "),n("code",null,"anonymous.4open.science/r/"),h(".")],-1))]),t[4]||(t[4]=n("button",{id:"submit",type:"submit",class:"btn btn-ink"}," Claim anonymization ",-1))],32)),[[i,e.viewState]])])])}var V_={class:"container page paper-page conference-page"},q_={class:"paper-crumbs"},L_={class:"here"},$_={class:"d-flex align-items-end flex-wrap",style:{gap:"12px","justify-content":"space-between"}},U_=["textContent"],F_={key:0,class:"paper-page-lede"},B_=["textContent","href"],z_={class:"d-flex align-items-center flex-wrap",style:{gap:"10px"}},H_=["textContent"],j_=["href"],G_={class:"paper-meta-rule"},W_=["textContent"],K_=["textContent"],Y_={key:0},J_={key:0,class:"conference-payment-status",role:"status"},Q_=["disabled"],X_={key:1,role:"alert"},Z_={key:2,class:"paper-settings-section","aria-labelledby":"conference-payment-heading"},x_={key:0,role:"status"},e4={key:1,role:"alert"},t4=["disabled"],n4={class:"search-wrap"},o4={type:"search",id:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search by ID or source repository\u2026",autocomplete:"off"},s4={class:"dashboard-filter-controls"},i4={class:"dropdown"},r4={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},a4={class:"filter-btn-value"},l4={class:"dropdown-menu","aria-labelledby":"dropdownSort"},d4={class:"form-check dropdown-item"},u4={class:"form-check-input",type:"radio",name:"sort",id:"anonymizeDate",value:"-anonymizeDate"},c4={class:"form-check dropdown-item"},p4={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"repoId"},f4={class:"form-check dropdown-item"},m4={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},h4={class:"form-check dropdown-item"},v4={class:"form-check-input",type:"radio",name:"sort",id:"sortViews",value:"-pageView"},g4={class:"dropdown"},y4={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},b4={key:0,class:"filter-btn-value"},w4={key:1,class:"filter-btn-value"},k4={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},C4={class:"form-check dropdown-item"},E4=["id"],S4=["for"],N4={class:"dashboard-meta"},R4={class:"dashboard-count"},D4={key:0},T4={key:0},_4={key:1},A4={key:1},O4={key:0,class:"filter-chip"},P4=["onClick","aria-label"],I4={class:"paper-table paper-table-repos w-100",role:"table","aria-label":"Repositories"},M4={class:"cell-anon",role:"cell"},V4={class:"anon-text"},q4=["textContent","href"],L4={class:"anon-sub"},$4={class:"anon-source"},U4=["textContent","href"],F4={key:0},B4=["textContent","href"],z4={key:1},H4=["href"],j4={class:"cell-status",role:"cell"},G4={class:"status-line"},W4=["textContent"],K4={key:0,class:"status-sub"},Y4={class:"cell-views num",role:"cell"},J4=["textContent"],Q4={class:"cell-expires",role:"cell"},X4={key:0,class:"expires-never"},Z4=["textContent"],x4={key:2,class:"expires-past"},eA={key:0},tA={key:3,class:"empty-dash","aria-label":"Not applicable"},nA={class:"cell-actions",role:"cell"},oA={class:"dropdown"},sA=["aria-label"],iA={class:"dropdown-menu dropdown-menu-right"},rA=["href"],aA=["href"],lA={key:0,class:"paper-table-empty"},dA={key:0},uA={key:1},cA={key:2,class:"paper-table-empty-actions"};function Hl(e,t){let o=we("field"),i=we("form");return l(),d("div",V_,[n("div",null,[n("div",q_,[t[4]||(t[4]=n("a",{href:"/dashboard"},"My work",-1)),t[5]||(t[5]=h(" \xA0/\xA0 ",-1)),t[6]||(t[6]=n("a",{href:"/conferences"},"Conferences",-1)),t[7]||(t[7]=h(" \xA0/\xA0 ",-1)),n("span",L_,u(e.conference?.conferenceID),1)]),n("div",$_,[n("div",null,[n("h1",{class:"paper-page-title",textContent:u(e.conference?.name)},null,8,U_),e.conference?.url?(l(),d("p",F_,[n("a",{target:"_blank",rel:"noopener",textContent:u(e.conference?.url),href:e.safeUrl(e.conference?.url)},null,8,B_)])):c("v-if",!0)]),n("div",z_,[n("span",{class:O(["status-pill",{"status-pill-ready":e.conference?.status=="ready","status-pill-removed":e.conference?.status=="removed"||e.conference?.status=="expired"}])},[n("span",{class:O(["status-dot","status-"+e.conference?.status]),"aria-hidden":"true"},null,2),n("span",{textContent:u(e.fmt?.statusLabel(e.conference?.status))},null,8,H_)],2),n("a",{class:"btn btn-outline-ink",href:e.safeUrl("/conference/"+e.conference?.conferenceID+"/edit")},[...t[8]||(t[8]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),h(" Edit conference",-1)])],8,j_)])]),n("div",G_,[n("span",null,[t[9]||(t[9]=h("ID ",-1)),n("b",{class:"commit-hash",textContent:u(e.conference?.conferenceID)},null,8,W_)]),n("span",null,[t[10]||(t[10]=h("Review window ",-1)),n("b",null,u(e.fmt?.date(e.conference?.startDate,"mediumDate"))+" \u2013 "+u(e.fmt?.date(e.conference?.endDate,"mediumDate")),1)]),n("span",null,[t[11]||(t[11]=h("Repositories ",-1)),n("b",null,u(e.fmt?.number(e.conference?.repositories?.length)),1)]),n("span",null,[t[12]||(t[12]=h("Plan ",-1)),n("b",{textContent:u(e.conference?.plan?.name||e.conference?.plan?.planID||"Free")},null,8,K_)]),e.conference?.price?(l(),d("span",Y_,[t[13]||(t[13]=h("Cost so far ",-1)),n("b",null,u(e.fmt?.number(e.conference?.price,2))+" \u20AC",1)])):c("v-if",!0)]),e.billingNotice?(l(),d("div",J_,[n("p",null,u(e.billingNotice),1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[0]||(t[0]=s=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,Q_)])):c("v-if",!0),e.billingError&&e.conference?.status!=="pending_payment"?(l(),d("p",X_,u(e.billingError),1)):c("v-if",!0),e.conference?.status==="pending_payment"?(l(),d("section",Z_,[t[14]||(t[14]=n("h2",{id:"conference-payment-heading"},"Activate your review package",-1)),t[15]||(t[15]=n("p",null,"This conference is waiting for payment. Authors can join after payment is confirmed. Checkout returns to this conference. Authors within the package do not pay separately.",-1)),e.billingLoading?(l(),d("p",x_,"Loading payment options\u2026")):c("v-if",!0),e.billingError?(l(),d("p",e4,u(e.billingError),1)):c("v-if",!0),(l(!0),d(W,null,oe((e.billing?.plans||[]).filter(s=>s.id==="conference"),s=>(l(),d("div",{key:s.id},[n("p",null,u(e.billingPrice(s))+" for up to "+u(s.repositories)+" repositories and "+u(e.billingBytes(s.storage))+" of source files during the review window. Taxes, if applicable, appear at checkout.",1),n("button",{type:"button",class:"btn btn-primary",onClick:t[1]||(t[1]=r=>e.checkout("conference",e.conference.conferenceID)),disabled:e.billingBusy||e.billingPending||e.billing?.checkoutEnabled===!1},u(e.billingBusy?"Please wait\u2026":"Pay for review package"),9,t4)]))),128)),t[16]||(t[16]=n("p",null,[n("a",{href:"/profile#settings-billing"},"Manage invoices")],-1))])):c("v-if",!0),t[37]||(t[37]=n("div",{class:"paper-section-eyebrow"},"Repositories",-1)),T((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter repositories","accept-charset":"UTF-8",onSubmit:t[2]||(t[2]=ae(s=>e.submitForm(s,()=>{s.preventDefault()}),["prevent"]))},[n("div",n4,[T(n("input",o4,null,512),[[o,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),n("div",s4,[n("div",i4,[n("button",r4,[t[17]||(t[17]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",a4,u({"-anonymizeDate":"Anonymize date",repoId:"ID","-status":"Status","-pageView":"Views"}[e.orderBy]||"Custom"),1)]),n("div",l4,[t[22]||(t[22]=n("h6",{class:"dropdown-header"},"Order by",-1)),n("div",d4,[T(n("input",u4,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[18]||(t[18]=n("label",{class:"form-check-label",for:"anonymizeDate"},"Anonymize date",-1))]),n("div",c4,[T(n("input",p4,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[19]||(t[19]=n("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),n("div",f4,[T(n("input",m4,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[20]||(t[20]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),n("div",h4,[T(n("input",v4,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[21]||(t[21]=n("label",{class:"form-check-label",for:"sortViews"},"Views",-1))])])]),n("div",g4,[n("button",y4,[t[23]||(t[23]=n("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(l(),d("span",b4,"All")):c("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?c("v-if",!0):(l(),d("span",w4,u((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),n("div",k4,[t[24]||(t[24]=n("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(W,null,oe(e.statusLabels,(s,r,a)=>(l(),d("div",C4,[T(n("input",{class:"form-check-input",type:"checkbox",id:"status-"+r},null,8,E4),[[o,{state:e.viewState,set:p=>{e.filters.status[r]=p},value:e.filters?.status[r],form:null,options:{}}]]),n("label",{class:"form-check-label",for:"status-"+r},u(s),9,S4)]))),256))])])])],32)),[[i,e.viewState]]),n("div",N4,[n("span",R4,[e.filteredRepositories?.length===e.conference?.repositories?.length?(l(),d("span",D4,[h(u(e.fmt?.number(e.conference?.repositories?.length))+" repositor",1),e.conference?.repositories?.length===1?(l(),d("span",T4,"y")):c("v-if",!0),e.conference?.repositories?.length!==1?(l(),d("span",_4,"ies")):c("v-if",!0)])):c("v-if",!0),e.filteredRepositories?.length!==e.conference?.repositories?.length?(l(),d("span",A4,u(e.fmt?.number(e.filteredRepositories?.length))+" of "+u(e.fmt?.number(e.conference?.repositories?.length))+" shown",1)):c("v-if",!0)]),(l(!0),d(W,null,oe(e.filters?.status,(s,r,a)=>(l(),d(W,null,[s===!1?(l(),d("span",O4,[h(" Hiding "+u(e.statusLabels[r])+" ",1),n("button",{type:"button",class:"filter-chip-close",onClick:p=>{e.filters.status[r]=!0},"aria-label":"Show "+e.statusLabels[r]+" again"},"\xD7",8,P4)])):c("v-if",!0)],64))),256))]),n("div",I4,[t[36]||(t[36]=n("div",{class:"paper-table-head",role:"row"},[n("div",{role:"columnheader"},"Repository"),n("div",{role:"columnheader"},"Status"),n("div",{role:"columnheader",class:"num"},"Views"),n("div",{role:"columnheader"},"Expires"),n("div",{role:"columnheader"},[n("span",{class:"sr-only"},"Actions")])],-1)),(l(!0),d(W,null,oe(e.filteredRepositories,(s,r)=>(l(),d("div",{class:O(["paper-table-row",{"repo-inactive":s?.status=="expired"||s?.status=="removed","repo-error":s?.status=="error"}]),role:"row",key:s?.repoId},[n("div",M4,[t[27]||(t[27]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",V4,[n("a",{class:"repo-name",textContent:u(s?.repoId),href:e.safeUrl("/r/"+s?.repoId+"/")},null,8,q4),n("div",L4,[n("span",$4,[n("a",{target:"_blank",rel:"noopener",textContent:u(s?.source?.fullName),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/")},null,8,U4),s?.options?.update&&s?.source?.branch?(l(),d("span",F4,[t[25]||(t[25]=h(" \xB7 ",-1)),n("a",{target:"_blank",rel:"noopener",textContent:u(s?.source?.branch),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.branch)},null,8,B4)])):c("v-if",!0),s?.source?.commit?(l(),d("span",z4,[t[26]||(t[26]=h(" \xB7 ",-1)),n("a",{class:"commit-hash",target:"_blank",rel:"noopener",href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.commit)},"@"+u(s?.source?.commit?.substring(0,8)),9,H4)])):c("v-if",!0)])])])]),n("div",j4,[n("div",G4,[n("span",{class:O(["status-dot","status-"+(s?.status=="error"?"error":s?.status=="ready"?"ready":s?.status=="expired"||s?.status=="removed"?s?.status:"progress")]),"aria-hidden":"true"},null,2),n("span",{class:"status-word",textContent:u(e.fmt?.statusLabel(s?.status))},null,8,W4)]),s?.anonymizeDate?(l(),d("div",K4,"anonymized "+u(e.fmt?.humanTime(s?.anonymizeDate)),1)):c("v-if",!0)]),n("div",Y4,[t[28]||(t[28]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),t[29]||(t[29]=h()),n("span",{textContent:u(e.fmt?.number(s?.pageView))},null,8,J4)]),n("div",Q4,[t[31]||(t[31]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),s?.status=="ready"&&(s?.options?.expirationMode==="never"||!s?.options?.expirationDate)?(l(),d("span",X4,"Never")):c("v-if",!0),s?.status=="ready"&&s?.options?.expirationMode!=="never"&&s?.options?.expirationDate?(l(),d("span",{key:1,textContent:u(e.fmt?.humanTime(s?.options?.expirationDate))},null,8,Z4)):c("v-if",!0),s?.status=="expired"?(l(),d("span",x4,[t[30]||(t[30]=h("Expired",-1)),s?.options?.expirationDate?(l(),d("span",eA,u(e.fmt?.humanTime(s?.options?.expirationDate)),1)):c("v-if",!0)])):c("v-if",!0),s?.status!="ready"&&s?.status!="expired"?(l(),d("span",tA,"\u2014")):c("v-if",!0)]),n("div",nA,[n("div",oA,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions for "+s?.repoId},[...t[32]||(t[32]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,sA),n("div",iA,[n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+s?.repoId+"/")},[...t[33]||(t[33]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),h(" View ",-1)])],8,rA),n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+s?.repoId)},[...t[34]||(t[34]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),h(" Edit ",-1)])],8,aA)])])])],2))),128)),e.filteredRepositories?.length==0?(l(),d("div",lA,[t[35]||(t[35]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),e.conference?.repositories?.length?c("v-if",!0):(l(),d("span",dA,"No repository has been submitted to this conference yet.")),e.conference?.repositories?.length?(l(),d("span",uA,"Nothing matches the current filters.")):c("v-if",!0),e.conference?.repositories?.length?(l(),d("div",cA,[n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[3]||(t[3]=s=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")])):c("v-if",!0)])):c("v-if",!0)])])])}var pA={class:"container page paper-page conferences-page"},fA={class:"row"},mA={class:"w-100"},hA={class:"search-wrap"},vA={type:"search",id:"search",class:"form-control","aria-label":"Search conferences",placeholder:"Search by name or ID\u2026",autocomplete:"off"},gA={class:"dashboard-filter-controls"},yA={class:"dropdown"},bA={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},wA={class:"filter-btn-value"},kA={class:"dropdown-menu","aria-labelledby":"dropdownSort"},CA={class:"form-check dropdown-item"},EA={class:"form-check-input",type:"radio",name:"sort",id:"sortName",value:"name"},SA={class:"form-check dropdown-item"},NA={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"conferenceID"},RA={class:"form-check dropdown-item"},DA={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},TA={class:"dropdown"},_A={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},AA={key:0,class:"filter-btn-value"},OA={key:1,class:"filter-btn-value"},PA={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},IA={class:"form-check dropdown-item"},MA=["id"],VA=["for"],qA={key:1,class:"dashboard-meta"},LA={class:"dashboard-count"},$A={key:0},UA={key:0},FA={key:1},BA={key:0,class:"filter-chip"},zA=["onClick","aria-label"],HA={key:0,class:"conference-feedback",role:"alert"},jA={key:1,class:"conference-feedback",role:"status"},GA={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},WA={class:"cell-anon",role:"cell"},KA={class:"anon-text"},YA=["textContent","href"],JA={class:"anon-sub"},QA={class:"anon-source"},XA=["textContent"],ZA={key:0},xA=["textContent","href"],e3={class:"cell-status",role:"cell"},t3={class:"status-line"},n3=["textContent"],o3={class:"cell-views num",role:"cell"},s3=["textContent"],i3={class:"cell-expires",role:"cell"},r3={key:0},a3={key:1,class:"empty-dash","aria-label":"No review window"},l3={class:"cell-actions",role:"cell"},d3={class:"dropdown"},u3=["disabled","aria-label"],c3={class:"dropdown-menu dropdown-menu-right"},p3=["href"],f3=["href"],m3={key:0},h3=["onClick"],v3={key:0,class:"paper-table-empty"},g3={key:1},y3={class:"paper-table-empty-actions"};function jl(e,t){let o=we("field"),i=we("form");return l(),d("div",pA,[n("div",fA,[n("div",mA,[t[10]||(t[10]=me('
My work \xA0/\xA0 Conferences

Your conferences

Group anonymizations by venue, give chairs a shared dashboard, and set one expiry for every submission.

New conference
',2)),e.conferences?.length>0?T((l(),d("form",{key:0,class:"w-100 dashboard-filter-row","aria-label":"Filter conferences","accept-charset":"UTF-8",onSubmit:t[0]||(t[0]=ae(s=>e.submitForm(s,()=>{s.preventDefault()}),["prevent"]))},[n("div",hA,[T(n("input",vA,null,512),[[o,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),n("div",gA,[n("div",yA,[n("button",bA,[t[3]||(t[3]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",wA,u({name:"Name",conferenceID:"ID","-status":"Status"}[e.orderBy]||"Custom"),1)]),n("div",kA,[t[7]||(t[7]=n("h6",{class:"dropdown-header"},"Order by",-1)),n("div",CA,[T(n("input",EA,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=n("label",{class:"form-check-label",for:"sortName"},"Name",-1))]),n("div",SA,[T(n("input",NA,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[5]||(t[5]=n("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),n("div",RA,[T(n("input",DA,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[6]||(t[6]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))])])]),n("div",TA,[n("button",_A,[t[8]||(t[8]=n("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(l(),d("span",AA,"All")):c("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?c("v-if",!0):(l(),d("span",OA,u((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),n("div",PA,[t[9]||(t[9]=n("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(W,null,oe(e.statusLabels,(s,r,a)=>(l(),d("div",IA,[T(n("input",{class:"form-check-input",type:"checkbox",id:"status-"+r},null,8,MA),[[o,{state:e.viewState,set:p=>{e.filters.status[r]=p},value:e.filters?.status[r],form:null,options:{}}]]),n("label",{class:"form-check-label",for:"status-"+r},u(s),9,VA)]))),256))])])])],32)),[[i,e.viewState]]):c("v-if",!0),e.conferences?.length>0?(l(),d("div",qA,[n("span",LA,[e.filteredConferences?.length===e.conferences?.length?(l(),d("span",$A,[h(u(e.fmt?.number(e.conferences?.length))+" conference",1),e.conferences?.length!==1?(l(),d("span",UA,"s")):c("v-if",!0)])):c("v-if",!0),e.filteredConferences?.length!==e.conferences?.length?(l(),d("span",FA,u(e.fmt?.number(e.filteredConferences?.length))+" of "+u(e.fmt?.number(e.conferences?.length))+" shown",1)):c("v-if",!0)]),(l(!0),d(W,null,oe(e.filters?.status,(s,r,a)=>(l(),d(W,null,[s===!1?(l(),d("span",BA,[h(" Hiding "+u(e.statusLabels[r])+" ",1),n("button",{type:"button",class:"filter-chip-close",onClick:p=>{e.filters.status[r]=!0},"aria-label":"Show "+e.statusLabels[r]+" again"},"\xD7",8,zA)])):c("v-if",!0)],64))),256))])):c("v-if",!0)]),e.error?(l(),d("div",HA,[n("span",null,u(e.error),1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[1]||(t[1]=s=>e.loadConferences())},"Retry")])):c("v-if",!0),e.loading?(l(),d("div",jA,"Loading conferences\u2026")):c("v-if",!0),n("div",GA,[t[25]||(t[25]=n("div",{class:"paper-table-head",role:"row"},[n("div",{role:"columnheader"},"Conference"),n("div",{role:"columnheader"},"Status"),n("div",{role:"columnheader",class:"num"},"Repos"),n("div",{role:"columnheader"},"Review window"),n("div",{role:"columnheader"},[n("span",{class:"sr-only"},"Actions")])],-1)),(l(!0),d(W,null,oe(e.filteredConferences,(s,r)=>(l(),d("div",{class:O(["paper-table-row row-clickable",{"repo-inactive":s?.status=="expired"||s?.status=="removed"}]),role:"row",key:s?.conferenceID},[n("div",WA,[t[13]||(t[13]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Conference"},[n("use",{href:"#project-icon-conference"})],-1)),n("div",KA,[n("a",{class:"repo-name",textContent:u(s?.name),href:e.safeUrl("/conference/"+s?.conferenceID)},null,8,YA),n("div",JA,[n("span",QA,[t[12]||(t[12]=h("ID ",-1)),n("span",{class:"commit-hash",textContent:u(s?.conferenceID)},null,8,XA),s?.url?(l(),d("span",ZA,[t[11]||(t[11]=h(" \xB7 ",-1)),n("a",{target:"_blank",rel:"noopener",textContent:u(e.fmt?.limitTo(s?.url,60)),href:e.safeUrl(s?.url)},null,8,xA)])):c("v-if",!0)])])])]),n("div",e3,[n("div",t3,[n("span",{class:O(["status-dot","status-"+s?.status]),"aria-hidden":"true"},null,2),n("span",{class:"status-word",textContent:u(e.fmt?.statusLabel(s?.status))},null,8,n3)])]),n("div",o3,[t[14]||(t[14]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),t[15]||(t[15]=h()),n("span",{textContent:u(e.fmt?.number(s?.nbRepositories||0))},null,8,s3)]),n("div",i3,[t[16]||(t[16]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),s?.startDate?(l(),d("span",r3,u(e.fmt?.date(s?.startDate,"mediumDate"))+" \u2013 "+u(e.fmt?.date(s?.endDate,"mediumDate")),1)):c("v-if",!0),s?.startDate?c("v-if",!0):(l(),d("span",a3,"\u2014"))]),n("div",l3,[n("div",d3,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",disabled:s?.removing,"aria-label":"Actions for "+s?.name},[...t[17]||(t[17]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,u3),n("div",c3,[n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/")},[...t[18]||(t[18]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),h(" View ",-1)])],8,p3),n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/edit")},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),h(" Edit ",-1)])],8,f3),s?.status!="removed"?(l(),d("div",m3,[t[21]||(t[21]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:a=>e.removeConference(s)},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),h(" Remove ",-1)])],8,h3)])):c("v-if",!0)])])])],2))),128)),!e.loading&&!e.error&&e.filteredConferences?.length==0?(l(),d("div",v3,[t[24]||(t[24]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),e.conferences?.length==0?(l(),d(W,{key:0},[t[22]||(t[22]=n("strong",{class:"empty-title"},"No conferences yet",-1)),t[23]||(t[23]=n("span",null,"Create one to group submissions for a venue, share a dashboard with chairs, and set a single expiry date.",-1))],64)):c("v-if",!0),e.conferences?.length>0?(l(),d("span",g3,"Nothing matches the current filters.")):c("v-if",!0),n("div",y3,[c("v-if",!0),e.conferences?.length>0?(l(),d("button",{key:1,type:"button",class:"btn btn-outline-ink",onClick:t[2]||(t[2]=s=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")):c("v-if",!0)])])):c("v-if",!0)])])])}var b3={class:"container page dashboard-page paper-page"},w3={class:"row"},k3={class:"w-100"},C3={class:"dashboard-heading"},E3={class:"dashboard-heading-actions"},S3=["open"],N3=["aria-expanded"],R3=["stroke-dasharray"],D3={key:1,d:"M7 12c0-4 4-4 5 0s5 4 5 0-4-4-5 0-5 4-5 0",class:"quota-ring-unlimited"},T3={key:0,class:"quota-summary-value"},_3={key:0},A3={class:"quota-panel",id:"dashboard-usage"},O3={class:"quota-panel-heading"},P3={key:1,class:"quota-loading",role:"status"},I3={class:"search-wrap"},M3={type:"search",id:"search",class:"form-control","aria-label":"Search anonymizations",placeholder:"Search projects\u2026",autocomplete:"off"},V3=["aria-expanded"],q3={class:"btn-group",role:"group","aria-label":"Type"},L3=["aria-pressed"],$3=["aria-pressed"],U3=["aria-pressed"],F3=["aria-pressed"],B3={class:"dropdown"},z3={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},H3={class:"filter-btn-value"},j3={class:"sr-only"},G3={class:"dropdown-menu","aria-labelledby":"dropdownSort"},W3={class:"form-check dropdown-item"},K3=["onClick","checked","id"],Y3=["for"],J3={class:"dropdown"},Q3={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},X3={key:0,class:"filter-btn-value"},Z3={key:1,class:"filter-btn-value"},x3={key:2,class:"filter-btn-value"},eO={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},tO={class:"form-check dropdown-item"},nO=["id"],oO=["for"],sO={key:0,class:"dashboard-meta"},iO={key:0,class:"dashboard-view-tabs",role:"group","aria-label":"Project view"},rO=["aria-pressed"],aO=["aria-pressed","aria-label"],lO={class:"dashboard-count"},dO={key:0},uO={key:0},cO={key:1},pO={class:"dashboard-active-filters"},fO=["onClick","aria-label","title"],mO=["aria-busy"],hO={class:"paper-table-head",role:"row"},vO=["aria-sort"],gO=["aria-sort"],yO=["aria-sort"],bO=["aria-sort"],wO={key:0,class:"paper-table-row paper-table-skeleton",role:"row","aria-hidden":"true"},kO=["onClick"],CO={class:"cell-anon",role:"cell"},EO=["aria-label","title"],SO={class:"project-type-svg","aria-hidden":"true"},NO=["href"],RO={class:"anon-text"},DO={class:"anon-title"},TO=["title","textContent","href"],_O=["textContent"],AO={key:2,class:"type-badge type-coauthor",title:"You are a co-author on this anonymization"},OO={class:"anon-sub"},PO=["title"],IO=["title"],MO=["title"],VO=["textContent"],qO={class:"dashboard-row-meta",role:"presentation"},LO={class:"cell-status",role:"cell"},$O={key:1,class:"ui-icon status-ended-icon","aria-hidden":"true"},UO=["href"],FO=["textContent"],BO=["textContent","title"],zO=["title"],HO=["href"],jO=["onClick"],GO={key:4,class:"status-sub status-sub-date"},WO=["aria-label"],KO={class:"cell-expires",role:"cell"},YO={key:0,class:"expires-never"},JO=["textContent"],QO={key:2,class:"expires-past"},XO={key:3,class:"expires-past"},ZO={key:4,class:"empty-dash","aria-label":"Not applicable"},xO={class:"cell-actions",role:"cell"},eP={key:0,class:"ended-row"},tP=["onClick"],nP=["onClick"],oP=["onClick","disabled","title","aria-label"],sP={class:"sr-only","aria-live":"polite"},iP={class:"project-type-svg","aria-hidden":"true"},rP=["href"],aP=["onClick","data-project-actions","aria-controls","aria-expanded"],lP=["href","aria-label"],dP=["href","title","aria-label"],uP={key:5,class:"dropdown"},cP=["data-project-actions","aria-label"],pP={class:"dropdown-menu dropdown-menu-right"},fP=["onClick","aria-controls","aria-expanded"],mP=["href"],hP=["href"],vP=["onClick","disabled"],gP=["href"],yP=["onClick"],bP=["onClick"],wP=["onClick"],kP={key:5},CP=["onClick"],EP={key:1,class:"project-details-row",role:"row"},SP=["id","onKeydown"],NP={class:"project-details-heading"},RP=["onClick"],DP={class:"project-details-list"},TP={key:0},_P={key:1},AP={key:0},OP={key:2},PP={key:0,class:"project-progress-help"},IP=["href"],MP=["onSubmit"],VP=["for"],qP=["id"],LP={class:"project-name-controls"},$P=["id","aria-describedby","disabled"],UP=["disabled"],FP={key:0,class:"project-name-error",role:"alert"},BP={key:1,role:"status"},zP={key:0,class:"paper-table-empty"},HP={key:0},jP={key:1},GP={class:"paper-table-empty-actions"},WP={key:1,href:"/anonymize",class:"btn btn-ink"},KP={key:0,class:"dashboard-pagination"},YP={key:0,role:"alert"},JP=["disabled"];function Gl(e,t){let o=We("quota-usage"),i=we("field"),s=we("form");return l(),d("div",b3,[n("div",w3,[n("div",k3,[n("div",C3,[t[29]||(t[29]=n("div",null,[n("h1",{class:"paper-page-title"},"My work"),n("p",{class:"paper-page-lede"},"Manage your anonymous links.")],-1)),n("div",E3,[n("details",{class:"dashboard-quota",open:e.quotaExpanded,onToggle:t[1]||(t[1]=r=>e.quotaExpanded=r.target.open),onKeydown:t[2]||(t[2]=ct(ae(r=>e.closeQuota(),["prevent","stop"]),["esc"]))},[n("summary",{"aria-controls":"dashboard-usage","aria-expanded":e.quotaExpanded,style:Re(e.quota&&!e.quota.repository.unlimited?{"--quota-pct":e.quota.repository.percent+"%"}:null)},[(l(),d("svg",{class:O(["quota-summary-ring",e.quota?"quota-"+e.quota.repository.level:""]),viewBox:"0 0 24 24","aria-hidden":"true"},[t[22]||(t[22]=n("circle",{class:"quota-ring-track",cx:"12",cy:"12",r:"9"},null,-1)),e.quota&&!e.quota.repository.unlimited?(l(),d("circle",{key:0,class:"quota-ring-fill",cx:"12",cy:"12",r:"9",pathLength:"100","stroke-dasharray":e.quota.repository.percent+" 100"},null,8,R3)):c("v-if",!0),e.quota?.repository.unlimited?(l(),d("path",D3)):c("v-if",!0)],2)),t[24]||(t[24]=n("span",{class:"quota-summary-label"},"Usage",-1)),e.quota?(l(),d("span",T3,[h(u(e.fmt.number(e.quota.repository.used)),1),e.quota.repository.unlimited?c("v-if",!0):(l(),d("span",_3," / "+u(e.fmt.number(e.quota.repository.total)),1)),t[23]||(t[23]=h(" repos",-1))])):c("v-if",!0),t[25]||(t[25]=n("svg",{class:"project-type-svg quota-summary-chevron","aria-hidden":"true"},[n("use",{href:"#project-icon-chevron"})],-1))],12,N3),n("div",A3,[n("div",O3,[t[27]||(t[27]=n("h2",null,"Account usage",-1)),n("button",{type:"button",class:"project-close","aria-label":"Close usage",onClick:t[0]||(t[0]=r=>e.closeQuota())},[...t[26]||(t[26]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])])]),e.quota?(l(),Bt(o,{key:0,quota:e.quota,fmt:e.fmt},null,8,["quota","fmt"])):(l(),d("p",P3,"Loading usage\u2026"))])],40,S3),t[28]||(t[28]=me('New anonymization',1))])]),c(" Search + filters "),T((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter anonymizations","accept-charset":"UTF-8",onSubmit:t[9]||(t[9]=ae(r=>e.submitForm(r,()=>{r.preventDefault()}),["prevent"]))},[n("div",I3,[T(n("input",M3,null,512),[[i,{state:e.viewState,set:r=>{e.search=r},value:e.search,form:null,options:{}}]])]),n("button",{class:"btn dashboard-filters-toggle",type:"button","aria-expanded":e.filtersExpanded,"aria-controls":"dashboard-filter-controls",onClick:t[3]||(t[3]=r=>e.filtersExpanded=!e.filtersExpanded)},[...t[30]||(t[30]=[h("Filters",-1),n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-filter"})],-1)])],8,V3),n("div",{id:"dashboard-filter-controls",class:O(["dashboard-filter-controls",{expanded:e.filtersExpanded}])},[n("div",q3,[n("button",{type:"button",class:O(["btn",{"btn-primary":e.typeFilter==="all"}]),onClick:t[4]||(t[4]=r=>e.typeFilter="all"),"aria-pressed":e.typeFilter==="all"},"All",10,L3),n("button",{type:"button",class:O(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="repo"}]),title:"Repositories",onClick:t[5]||(t[5]=r=>e.typeFilter="repo"),"aria-pressed":e.typeFilter==="repo"},[...t[31]||(t[31]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),n("span",{class:"type-filter-label"},"Repos",-1)])],10,$3),n("button",{type:"button",class:O(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="pr"}]),title:"Pull requests",onClick:t[6]||(t[6]=r=>e.typeFilter="pr"),"aria-pressed":e.typeFilter==="pr"},[...t[32]||(t[32]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-pr"})],-1),n("span",{class:"type-filter-label"},"PRs",-1)])],10,U3),n("button",{type:"button",class:O(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="gist"}]),title:"Gists",onClick:t[7]||(t[7]=r=>e.typeFilter="gist"),"aria-pressed":e.typeFilter==="gist"},[...t[33]||(t[33]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-gist"})],-1),n("span",{class:"type-filter-label"},"Gists",-1)])],10,F3)]),n("div",{id:"dashboard-extra-filters",class:O(["dashboard-extra-filters",{expanded:e.filtersExpanded}])},[n("div",B3,[n("button",z3,[t[35]||(t[35]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",H3,u(e.sortLabel()),1),(l(),d("svg",{class:O(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[34]||(t[34]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)),n("span",j3,u(e.sortDesc()?"descending":"ascending"),1)]),n("div",G3,[t[36]||(t[36]=n("h6",{class:"dropdown-header"},"Order by",-1)),(l(!0),d(W,null,oe(e.sortFields,(r,a,p)=>(l(),d("div",W3,[n("input",{class:"form-check-input",type:"radio",name:"sort",onClick:f=>e.setSort(a,r.defaultDesc),checked:e.isSortedBy(a),id:"sort-"+p},null,8,K3),n("label",{class:"form-check-label",for:"sort-"+p},u(r?.label),9,Y3)]))),256)),t[37]||(t[37]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item",onClick:t[8]||(t[8]=r=>e.toggleSortDirection())},u(e.sortDesc()?"Switch to ascending":"Switch to descending"),1)])]),n("div",J3,[n("button",Q3,[t[38]||(t[38]=n("span",{class:"filter-btn-label"},"Status",-1)),e.hasHiddenStatus()?c("v-if",!0):(l(),d("span",X3,"All")),e.hiddenStatusCount()===1&&e.filters?.status?.removed===!1?(l(),d("span",Z3,"Active")):c("v-if",!0),e.hasHiddenStatus()&&!(e.hiddenStatusCount()===1&&e.filters?.status?.removed===!1)?(l(),d("span",x3,u(e.hiddenStatusCount()===1?"Hiding "+(e.statusKeyLabels[Object.keys(e.filters?.status||{}).find(r=>e.filters.status[r]===!1)]||"").toLowerCase():e.hiddenStatusCount()+" hidden"),1)):c("v-if",!0)]),n("div",eO,[t[39]||(t[39]=n("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(W,null,oe(e.statusKeyLabels,(r,a,p)=>(l(),d("div",tO,[T(n("input",{class:"form-check-input",type:"checkbox",id:"status-"+a},null,8,nO),[[i,{state:e.viewState,set:f=>{e.filters.status[a]=f},value:e.filters?.status[a],form:null,options:{}}]]),n("label",{class:"form-check-label",for:"status-"+a},u(r),9,oO)]))),256))])])],2)],2)],32)),[[s,e.viewState]]),c(" Result count + active filter chips "),e.loading?c("v-if",!0):(l(),d("div",sO,[e.attentionCount()>0||e.projectView==="attention"?(l(),d("div",iO,[n("button",{type:"button","aria-pressed":e.projectView==="all",onClick:t[10]||(t[10]=r=>e.setProjectView("all")),"aria-label":"All projects"},[...t[40]||(t[40]=[n("span",{class:"dashboard-view-long"},"All projects",-1),n("span",{class:"dashboard-view-short","aria-hidden":"true"},"All",-1)])],8,rO),e.attentionCount()>0||e.projectView==="attention"?(l(),d("button",{key:0,type:"button","aria-pressed":e.projectView==="attention",onClick:t[11]||(t[11]=r=>e.setProjectView("attention")),"aria-label":"Needs attention "+e.attentionCount()},[t[41]||(t[41]=n("span",{class:"dashboard-attention-prefix"},"Needs ",-1)),t[42]||(t[42]=n("span",null,"attention",-1)),t[43]||(t[43]=h()),n("span",{class:O(["attention-count",{"has-attention":e.attentionCount()>0}])},u(e.attentionCount()),3)],8,aO)):c("v-if",!0)])):c("v-if",!0),n("span",lO,[(e.dashboardTotals?.filtered??e.filteredItems?.length)===(e.dashboardTotals?.total??e.items?.length)?(l(),d("span",dO,[h(u(e.fmt?.number(e.dashboardTotals?.total??e.items?.length))+" project",1),(e.dashboardTotals?.total??e.items?.length)!==1?(l(),d("span",uO,"s")):c("v-if",!0)])):(l(),d("span",cO,[h(u(e.fmt?.number(e.dashboardTotals?.filtered??e.filteredItems?.length))+" shown \xB7 ",1),n("button",{type:"button",class:"btn-link-inline hidden-toggle",onClick:t[12]||(t[12]=r=>e.clearFilters())},"Show "+u(e.fmt?.number((e.dashboardTotals?.total??e.items?.length)-(e.dashboardTotals?.filtered??e.filteredItems?.length)))+" removed",1)]))]),n("div",pO,[(l(!0),d(W,null,oe(e.filters?.status,(r,a,p)=>(l(),d(W,null,[r===!1&&!(a==="removed"&&e.hiddenStatusCount()===1)?(l(),d("button",{key:0,type:"button",class:"filter-chip",onClick:f=>e.filters.status[a]=!0,"aria-label":"Show "+e.statusKeyLabels[a]+" again",title:"Show "+e.statusKeyLabels[a]+" again"},[h("Hiding "+u((e.statusKeyLabels[a]||"").toLowerCase()),1),t[44]||(t[44]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1))],8,fO)):c("v-if",!0)],64))),256)),e.typeFilter!=="all"?(l(),d("button",{key:0,type:"button",class:"filter-chip",onClick:t[13]||(t[13]=r=>e.typeFilter="all"),"aria-label":"Show all project types"},[h(u(e.typeFilter==="repo"?"Repositories":e.typeFilter==="pr"?"Pull requests":"Gists"),1),t[45]||(t[45]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1))])):c("v-if",!0),e.showClearFilters()?(l(),d("button",{key:1,type:"button",class:"btn-link-inline",onClick:t[14]||(t[14]=r=>e.clearFilters())},"Clear filters")):c("v-if",!0)])]))]),c(" Table "),n("div",{class:"paper-table paper-table-dashboard",role:"table","aria-label":"Anonymizations","aria-busy":e.loading},[n("div",hO,[n("div",{role:"columnheader","aria-sort":e.isSortedBy("_label")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:O(["sortable",{active:e.isSortedBy("_label")}]),onClick:t[15]||(t[15]=r=>e.setSort("_label"))},[t[47]||(t[47]=h(" Project ",-1)),e.isSortedBy("_label")?(l(),d("svg",{key:0,class:O(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[46]||(t[46]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):c("v-if",!0)],2)],8,vO),n("div",{role:"columnheader","aria-sort":e.isSortedBy("status")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:O(["sortable",{active:e.isSortedBy("status")}]),onClick:t[16]||(t[16]=r=>e.setSort("status"))},[t[49]||(t[49]=h(" Status ",-1)),e.isSortedBy("status")?(l(),d("svg",{key:0,class:O(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[48]||(t[48]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):c("v-if",!0)],2)],8,gO),n("div",{role:"columnheader",class:"num","aria-sort":e.isSortedBy("pageView")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:O(["sortable",{active:e.isSortedBy("pageView")}]),onClick:t[17]||(t[17]=r=>e.setSort("pageView"))},[t[51]||(t[51]=h(" Views ",-1)),e.isSortedBy("pageView")?(l(),d("svg",{key:0,class:O(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[50]||(t[50]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):c("v-if",!0)],2)],8,yO),n("div",{role:"columnheader","aria-sort":e.isSortedBy("options.expirationDate")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:O(["sortable",{active:e.isSortedBy("options.expirationDate")}]),onClick:t[18]||(t[18]=r=>e.setSort("options.expirationDate"))},[t[53]||(t[53]=h(" Expires ",-1)),e.isSortedBy("options.expirationDate")?(l(),d("svg",{key:0,class:O(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[52]||(t[52]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):c("v-if",!0)],2)],8,bO),t[54]||(t[54]=n("div",{role:"columnheader",class:"col-link"},[n("span",{class:"sr-only"},"Actions")],-1))]),c(" Loading skeleton: keeps the layout stable while the three lists load "),(l(),d(W,null,oe([1,2,3,4],(r,a)=>(l(),d(W,null,[e.loading?(l(),d("div",wO,[...t[55]||(t[55]=[n("div",{class:"cell-anon",role:"cell"},[n("span",{class:"skeleton skeleton-badge"}),n("div",{class:"anon-text"},[n("span",{class:"skeleton skeleton-line",style:{width:"38%"}}),n("span",{class:"skeleton skeleton-line skeleton-line-sm",style:{width:"56%"}})])],-1),n("div",{class:"cell-status",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"60%"}})],-1),n("div",{class:"cell-views num",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"40%"}})],-1),n("div",{class:"cell-expires",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"55%"}})],-1),n("div",{class:"cell-actions",role:"cell"},null,-1)])])):c("v-if",!0)],64))),64)),(l(!0),d(W,null,oe(e.filteredItems,(r,a)=>(l(),d(W,{key:r?._type+":"+(r?._id||a)},[e.loading?c("v-if",!0):(l(),d("div",{key:0,class:O(["paper-table-row",{"repo-inactive":r?._statusKey=="expired"||r?._statusKey=="removed","repo-error":r?.status=="error","row-clickable":!!r?._viewUrl}]),role:"row",onClick:p=>e.openItem(r,p)},[n("div",CO,[n("span",{class:"project-type-icon",role:"img","aria-label":r?._type==="repo"?"Repository":r?._type==="pr"?"Pull request":"Gist",title:r?._type==="repo"?"Repository":r?._type==="pr"?"Pull request":"Gist"},[(l(),d("svg",SO,[n("use",{href:"#project-type-"+r._type},null,8,NO)]))],8,EO),n("div",RO,[n("div",DO,[r?._viewUrl?(l(),d("a",{key:0,class:"repo-name",title:r._label,textContent:u(r?._label),href:e.safeUrl(r?._viewUrl)},null,8,TO)):c("v-if",!0),r?._viewUrl?c("v-if",!0):(l(),d("span",{key:1,class:"repo-name repo-name-static",textContent:u(r?._label)},null,8,_O)),r?.role==="coauthor"?(l(),d("span",AO,"Co-author")):c("v-if",!0)]),n("div",OO,[r?._id?(l(),d("code",{key:0,class:"anonymous-id",title:r._id},u(r._id),9,PO)):c("v-if",!0),r?._type==="repo"&&r?.source?.commit?(l(),d("span",{key:1,class:"commit-hash",title:r.source.commit},u(r.source.commit.substring(0,8)),9,IO)):c("v-if",!0),r?.conference?(l(),d("span",{key:2,class:"cell-conf conf-tag",title:r?.conference},[t[56]||(t[56]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),t[57]||(t[57]=h()),n("span",{textContent:u(r?.conference)},null,8,VO)],8,MO)):c("v-if",!0)])])]),n("div",qO,[n("div",LO,[n("div",{class:O(["status-line",{"status-ended":r?._statusKey=="expired"||r?._statusKey=="removed",["status-ended-"+r?._statusKey]:r?._statusKey=="expired"||r?._statusKey=="removed"}])},[r?._statusKey=="expired"||r?._statusKey=="removed"?c("v-if",!0):(l(),d("span",{key:0,class:O(["status-dot","status-"+r?._statusKey]),"aria-hidden":"true"},null,2)),r?._statusKey=="expired"||r?._statusKey=="removed"?(l(),d("svg",$O,[n("use",{href:r?._statusKey=="removed"?"#ui-icon-trash":"#ui-icon-hourglass"},null,8,UO)])):c("v-if",!0),n("span",{class:"status-word",textContent:u(e.fmt?.statusLabel(r?.status))},null,8,FO)],2),r?.status=="error"&&r?.statusMessage?(l(),d("div",{key:0,class:"status-sub status-sub-error",textContent:u(e.fmt?.statusMsg(r?.statusMessage)),title:r?.statusMessage},null,8,BO)):c("v-if",!0),r?._stale?(l(),d("div",{key:1,class:"status-sub status-sub-warn",title:"Last activity "+e.fmt?.humanTime(r?.anonymizeDate||r?.lastView)}," Last activity "+u(e.fmt?.humanTime(r?.anonymizeDate||r?.lastView))+" \xB7 may be stuck ",9,zO)):c("v-if",!0),r.status==="error"&&r._editUrl?(l(),d("a",{key:2,class:"project-attention-action",href:e.safeUrl(r._editUrl)},"Fix source",8,HO)):c("v-if",!0),r._stale||r._broken?(l(),d("button",{key:3,type:"button",class:"project-attention-action",onClick:ae(p=>e.showProjectDetails(r),["stop"])},u(r._broken?"Review details":"Check progress"),9,jO)):c("v-if",!0),r?.status!="error"&&!r?._stale&&r?.anonymizeDate?(l(),d("div",GO," anonymized "+u(e.fmt?.humanTime(r?.anonymizeDate)),1)):c("v-if",!0)]),n("div",{class:"cell-views num",role:"cell","aria-label":e.fmt.number(r.pageView)+" views"},[t[58]||(t[58]=n("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),n("span",null,u(e.fmt.number(r.pageView)),1)],8,WO),n("div",KO,[t[59]||(t[59]=n("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),r?._expiry?.kind==="never"?(l(),d("span",YO,"Never")):c("v-if",!0),r?._expiry?.kind==="date"?(l(),d("span",{key:1,textContent:u((e.fmt?.humanTime(r?._expiry?.date)||"").replace(/^on /,""))},null,8,JO)):c("v-if",!0),r?._expiry?.kind==="expired"&&r?._expiry?.date?(l(),d("span",QO,"Expired "+u(e.fmt?.humanTime(r?._expiry?.date)),1)):c("v-if",!0),r?._expiry?.kind==="expired"&&!r?._expiry?.date?(l(),d("span",XO,"Expired")):c("v-if",!0),r?._expiry?.kind==="none"?(l(),d("span",ZO,"\u2014")):c("v-if",!0)])]),n("div",xO,[r?._statusKey=="expired"||r?._statusKey=="removed"?(l(),d("div",eP,[t[60]||(t[60]=n("span",{class:"ended-link",title:"Reviewers can no longer open this link"},"Link offline",-1)),r?.status=="removed"?(l(),d("button",{key:0,type:"button",class:"ended-action",onClick:ae(p=>e.refreshItem(r),["stop"])},"Enable",8,tP)):c("v-if",!0),r?.status=="expired"?(l(),d("button",{key:1,type:"button",class:"ended-action",onClick:ae(p=>e.extendItem(r),["stop"])},"Extend",8,nP)):c("v-if",!0)])):c("v-if",!0),r._viewUrl&&!(r?._statusKey=="expired"||r?._statusKey=="removed")?(l(),d("button",{key:1,type:"button",class:"copy-url",onClick:ae(p=>e.copyLink(r),["stop"]),disabled:!!e.copyingId,title:"Copy link: "+r._viewUrl,"aria-label":"Copy anonymous link for "+r._label},[n("span",sP,u(e.copyingId===r._type+":"+r._id?"Link copied":""),1),(l(),d("svg",iP,[n("use",{href:e.copyingId===r._type+":"+r._id?"#ui-icon-check":"#project-icon-copy"},null,8,rP)]))],8,oP)):c("v-if",!0),r._broken?(l(),d("button",{key:2,type:"button",class:"project-details-button",onClick:ae(p=>e.showProjectDetails(r),["stop"]),"data-project-actions":encodeURIComponent(r._type+":"+r._id),"aria-controls":e.projectDetailsId(r),"aria-expanded":e.selectedProject===r},"Details",8,aP)):c("v-if",!0),r._viewUrl&&!(r?._statusKey=="expired"||r?._statusKey=="removed")?(l(),d("a",{key:3,class:"row-edit row-open",href:e.safeUrl(r._viewUrl),target:"_blank",rel:"noopener",title:"Open what reviewers see","aria-label":"Open anonymous page for "+r._label},[...t[61]||(t[61]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])],8,lP)):c("v-if",!0),r?._editUrl&&!r?._broken?(l(),d("a",{key:4,class:"row-edit",href:e.safeUrl(r._editUrl),title:"Edit "+r._name,"aria-label":"Edit "+r._name},[...t[62]||(t[62]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1)])],8,dP)):c("v-if",!0),r?._broken?c("v-if",!0):(l(),d("div",uP,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","data-project-actions":encodeURIComponent(r._type+":"+r._id),"aria-label":"Actions for "+r?._name},[...t[63]||(t[63]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,cP),n("div",pP,[n("button",{type:"button",class:"dropdown-item",onClick:p=>e.showProjectDetails(r),"aria-controls":e.projectDetailsId(r),"aria-expanded":e.selectedProject===r},"Project details & name",8,fP),n("a",{class:"dropdown-item",href:e.safeUrl(r?._viewUrl)}," View ",8,mP),r?._type==="repo"&&r?.options?.page&&r?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+r?.repoId+"/")}," View page ",8,hP)):c("v-if",!0),r?._viewUrl?(l(),d("button",{key:1,type:"button",class:"dropdown-item",onClick:p=>e.copyLink(r),disabled:!!e.copyingId}," Copy anonymous link ",8,vP)):c("v-if",!0),n("a",{class:"dropdown-item",href:e.safeUrl(r?._editUrl)}," Edit ",8,gP),r?.status=="ready"||r?.status=="error"?(l(),d("button",{key:2,type:"button",class:"dropdown-item",onClick:p=>e.refreshItem(r)}," Force update ",8,yP)):c("v-if",!0),r?.status=="removed"?(l(),d("button",{key:3,type:"button",class:"dropdown-item",onClick:p=>e.refreshItem(r)}," Enable ",8,bP)):c("v-if",!0),r?.status=="expired"?(l(),d("button",{key:4,type:"button",class:"dropdown-item",onClick:p=>e.extendItem(r)}," Extend 6 months ",8,wP)):c("v-if",!0),(r?.status=="ready"||r?.status=="expired"||r?.status=="error")&&r?.role!=="coauthor"?(l(),d("div",kP,[t[64]||(t[64]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:p=>e.removeItem(r)}," Remove ",8,CP)])):c("v-if",!0)])]))])],10,kO)),!e.loading&&e.selectedProject===r?(l(),d("div",EP,[n("div",{class:"project-details",role:"cell","aria-colspan":"5",id:e.projectDetailsId(r),tabindex:"-1",onKeydown:ct(ae(p=>e.closeProjectDetails(r),["stop"]),["esc"])},[n("div",NP,[t[66]||(t[66]=n("h2",null,"Project details",-1)),n("button",{type:"button",class:"project-close",onClick:p=>e.closeProjectDetails(r),"aria-label":"Close project details"},[...t[65]||(t[65]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,RP)]),n("dl",DP,[n("div",null,[t[67]||(t[67]=n("dt",null,"Source",-1)),n("dd",null,u(r._source||"Not available"),1)]),n("div",null,[t[68]||(t[68]=n("dt",null,"Anonymous ID",-1)),n("dd",null,[n("code",null,u(r._id||"Missing identifier"),1)])]),r.source?.commit?(l(),d("div",TP,[t[69]||(t[69]=n("dt",null,"Commit",-1)),n("dd",null,[n("code",null,u(r.source.commit),1)])])):c("v-if",!0),r.conference?(l(),d("div",_P,[t[70]||(t[70]=n("dt",null,"Conference",-1)),n("dd",null,u(r.conference),1)])):c("v-if",!0),n("div",null,[t[71]||(t[71]=n("dt",null,"Status",-1)),n("dd",null,[h(u(e.fmt.statusLabel(r.status)),1),r.statusMessage?(l(),d("span",AP," \xB7 "+u(e.fmt.statusMsg(r.statusMessage)),1)):c("v-if",!0)])]),r.anonymizeDate?(l(),d("div",OP,[t[72]||(t[72]=n("dt",null,"Last anonymized",-1)),n("dd",null,u(e.fmt.humanTime(r.anonymizeDate)),1)])):c("v-if",!0)]),r._stale?(l(),d("p",PP,"This download has not progressed recently. Check the source access and selected branch before retrying.")):c("v-if",!0),r._editUrl?(l(),d("a",{key:1,class:"project-attention-action",href:e.safeUrl(r._editUrl)},u(e.needsAttention(r)?"Check source settings":"Edit anonymization settings"),9,IP)):c("v-if",!0),r._id?(l(),d("form",{key:2,class:"project-name-form",onSubmit:ae(p=>e.saveProjectName(r),["prevent"])},[n("label",{for:"project-name-"+r._type+"-"+r._id},"Project name",8,VP),n("p",{id:"project-name-help-"+r._type+"-"+r._id},"Only you see this name. Leave it blank to use the default.",8,qP),n("div",LP,[T(n("input",{class:"form-control",type:"text",id:"project-name-"+r._type+"-"+r._id,"aria-describedby":"project-name-help-"+r._type+"-"+r._id,maxlength:"100","onUpdate:modelValue":t[19]||(t[19]=p=>e.projectName=p),disabled:e.nameSaving},null,8,$P),[[ot,e.projectName]]),n("button",{class:"btn btn-ink",type:"submit",disabled:e.nameSaving},u(e.nameSaving?"Saving\u2026":"Save name"),9,UP)]),e.nameError?(l(),d("p",FP,u(e.nameError),1)):c("v-if",!0),e.nameMessage?(l(),d("p",BP,u(e.nameMessage),1)):c("v-if",!0)],40,MP)):c("v-if",!0)],40,SP)])):c("v-if",!0)],64))),128)),!e.loading&&e.filteredItems?.length==0?(l(),d("div",zP,[t[74]||(t[74]=n("svg",{class:"project-type-svg project-empty-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),e.hasProjects()?c("v-if",!0):(l(),d("span",HP,"You have no anonymizations yet.")),e.hasProjects()?(l(),d("span",jP,"Nothing matches the current filters.")):c("v-if",!0),n("div",GP,[e.hasActiveFilters()?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[20]||(t[20]=r=>e.clearFilters())},"Clear filters")):c("v-if",!0),e.hasProjects()?c("v-if",!0):(l(),d("a",WP,[...t[73]||(t[73]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})],-1),h(" New anonymization",-1)])]))])])):c("v-if",!0)],8,mO)]),e.dashboardCursor||e.dashboardError?(l(),d("div",KP,[e.dashboardError?(l(),d("p",YP,u(e.dashboardError),1)):c("v-if",!0),e.dashboardCursor?(l(),d("button",{key:1,type:"button",class:"btn",onClick:t[21]||(t[21]=r=>e.loadMoreProjects()),disabled:e.loadingMore},u(e.loadingMore?"Loading\u2026":"Load more projects"),9,JP)):c("v-if",!0)])):c("v-if",!0)])}var QP={class:"viewer-bar"},XP={class:"vb-left"},ZP=["aria-label","title"],xP={class:"vb-right"},eI=["title"],tI={class:"vb-help"},nI=["aria-expanded"],oI={key:0,class:"acct-menu vb-help-menu",role:"menu"},sI=["aria-label","title"],iI={class:"ui-icon","aria-hidden":"true"},rI=["href"],aI={key:1,class:"acct"},lI=["aria-label","aria-expanded"],dI=["src"],uI={key:1,class:"acct-initial"},cI={key:0,class:"acct-menu",role:"menu"},pI={class:"acct-menu-head"},fI={key:2,class:"vb-signin",href:"/signin",target:"_self"},mI=["aria-label"],hI={class:"ui-icon","aria-hidden":"true"},vI=["href"],gI=["textContent"],yI={class:"leftCol-head"},bI={class:"leftCol-search"},wI={class:"tree-search-box"},kI=["href"],CI={type:"text",class:"tree-search-input",placeholder:"Search files","aria-label":"Search files"},EI=["title","href"],SI={class:"leftCol-body"},NI={key:0,class:"paper-inline-warning",role:"alert"},RI={key:1,class:"paper-inline-warning",role:"alert"},DI={class:"explorer-main"},TI={class:"breadcrumb paths","aria-label":"Path"},_I={class:"breadcrumb-item breadcrumb-root"},AI=["href","title","textContent"],OI=["aria-current","textContent"],PI=["aria-label","title"],II={class:"ui-icon","aria-hidden":"true"},MI=["href"],VI={class:"status-bar-actions"},qI=["href"],LI={class:"d-none d-md-inline"},$I={class:"ui-icon","aria-hidden":"true"},UI=["href"],FI={class:"d-none d-md-inline"},BI=["href"],zI={class:"explorer-content"};function Wl(e,t){let o=We("tree"),i=We("partial-view"),s=we("field");return l(),d("div",{class:O(["explorer-page",{"files-hidden":e.sidebarHidden}]),style:Re({"--sidebar-w":e.sidebarWidth+"px"})},[n("header",QP,[n("div",XP,[t[14]||(t[14]=n("a",{class:"vb-logo",href:"/"},[h("Anonymous "),n("em",null,"GitHub")],-1)),n("button",{type:"button",class:"vb-icon vb-sidebar","aria-label":e.sidebarHidden?"Show file tree":"Hide file tree",title:e.sidebarHidden?"Show file tree":"Hide file tree",onClick:t[0]||(t[0]=r=>e.sidebarHidden=!e.sidebarHidden)},[...t[13]||(t[13]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sidebar"})],-1)])],8,ZP)]),n("div",xP,[e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(l(),d("span",{key:0,class:"vb-snapshot",title:(e.options?.expirationDate?"Available until "+e.fmt?.date(e.options.expirationDate)+". ":"")+(e.options?.anonymizedAt&&!e.options?.publishedAt?"Older repositories have no recorded publication date. The source commit date does not establish when files became available here.":(e.options?.sourceCommitDate?"Source commit ":e.options?.anonymizedAt?"Anonymized ":"Updated ")+e.fmt?.date(e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)+(e.options?.publishedAt?" \xB7 snapshot ready "+e.fmt?.date(e.options.publishedAt):""))},[t[15]||(t[15]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[16]||(t[16]=n("span",null,"Snapshot",-1)),n("span",null,u(e.fmt?.date(e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),1)],8,eI)):c("v-if",!0),t[24]||(t[24]=n("a",{class:"vb-support",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener",title:"Support Anonymous GitHub \u2014 help keep it free for researchers"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})]),n("span",null,"Support")],-1)),n("div",tI,[n("button",{type:"button",class:"vb-help-btn","aria-haspopup":"true","aria-expanded":e.helpOpen?"true":"false",onClick:t[1]||(t[1]=ae(r=>e.helpOpen=!e.helpOpen,["stop"]))},[...t[17]||(t[17]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})],-1),n("span",null,"Help",-1)])],8,nI),e.helpOpen?(l(),d("div",oI,[...t[18]||(t[18]=[n("a",{role:"menuitem",href:"/faq"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})]),n("span",null,[h("FAQ"),n("small",null,"How anonymization works")])],-1),n("a",{role:"menuitem",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",target:"_blank",rel:"noopener"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),n("span",null,[h("Report a bug"),n("small",null,"About this service, not the paper")])],-1)])])):c("v-if",!0)]),n("button",{type:"button",class:"vb-icon","aria-label":e.isDarkMode?"Switch to light mode":"Switch to dark mode",title:e.isDarkMode?"Light mode":"Dark mode",onClick:t[2]||(t[2]=r=>e.darkMode(!e.isDarkMode))},[(l(),d("svg",iI,[n("use",{href:e.isDarkMode?"#ui-icon-sun":"#ui-icon-moon"},null,8,rI)]))],8,sI),e.user?(l(),d("div",aI,[n("button",{type:"button",class:"acct-chip","aria-haspopup":"true","aria-label":"Account: "+e.user?.username,"aria-expanded":e.accountOpen?"true":"false",onClick:t[3]||(t[3]=ae(r=>e.accountOpen=!e.accountOpen,["stop"]))},[e.user?.photo?(l(),d("img",{key:0,src:e.safeUrl(e.user.photo),alt:"",width:"26",height:"26"},null,8,dI)):(l(),d("span",uI,u((e.user?.username||"?").charAt(0).toUpperCase()),1))],8,lI),e.accountOpen?(l(),d("div",cI,[n("div",pI,[t[19]||(t[19]=h("Signed in as ",-1)),n("b",null,"@"+u(e.user?.username),1)]),t[20]||(t[20]=n("a",{role:"menuitem",href:"/dashboard"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-grid"})]),h("My work")],-1)),t[21]||(t[21]=n("a",{role:"menuitem",href:"/profile"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})]),h("Settings")],-1)),t[22]||(t[22]=n("a",{role:"menuitem",href:"/api/user/logout",target:"_self"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-logout"})]),h("Sign out")],-1))])):c("v-if",!0)])):(l(),d("a",fI,[...t[23]||(t[23]=[n("i",{class:"fab fa-github","aria-hidden":"true"},null,-1),h("Sign in",-1)])]))])]),T(n("button",{class:"sidebar-toggle",onClick:t[4]||(t[4]=r=>e.sidebarCollapsed=!e.sidebarCollapsed),"aria-label":e.sidebarCollapsed?"Show files":"Hide files"},[(l(),d("svg",hI,[n("use",{href:e.sidebarCollapsed?"#ui-icon-folder":"#project-icon-close"},null,8,vI)])),n("span",{textContent:u(e.sidebarCollapsed?"Files":"Close")},null,8,gI)],8,mI),[[Y,e.files?.length]]),T(n("div",{class:O(["leftCol",{collapsed:e.sidebarCollapsed}])},[n("div",yI,[t[26]||(t[26]=n("span",{class:"leftCol-eyebrow"},"Files",-1)),n("button",{class:"leftCol-close","aria-label":"Close files",onClick:t[5]||(t[5]=r=>e.sidebarCollapsed=!0)},[...t[25]||(t[25]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])])]),n("div",bI,[n("div",wI,[(l(),d("svg",{class:O(["ui-icon tree-search-icon",{"fa-spin":e.fileSearchLoading}]),"aria-hidden":"true"},[n("use",{href:e.fileSearchLoading?"#ui-icon-spinner":"#ui-icon-search"},null,8,kI)],2)),T(n("input",CI,null,512),[[s,{state:e.viewState,set:r=>{e.fileSearchQuery=r},value:e.fileSearchQuery,form:null,options:{debounce:300},change:()=>{e.onFileSearchChange()}}]]),T(n("kbd",{class:"tree-search-kbd"},u(e.isMac?"\u2318":"Ctrl+")+"K",513),[[Y,!e.fileSearchQuery]]),T(n("button",{class:"tree-search-clear","aria-label":"Clear search",onClick:t[6]||(t[6]=r=>{e.fileSearchQuery="",e.onFileSearchChange()})},"\xD7",512),[[Y,e.fileSearchQuery]])]),e.options?.download?(l(),d("a",{key:0,target:"_self",class:"search-zip","aria-label":"Download repository as ZIP",title:"Download the repository (snapshot "+e.fmt?.date(e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)+") as ZIP",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),n("span",{class:"search-zip-label","aria-hidden":"true"},"ZIP",-1)])],8,EI)):c("v-if",!0)]),n("div",SI,[e.options?.truncatedFolders?.length>0?(l(),d("div",NI,[t[28]||(t[28]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),h(" "+u(e.fmt?.translate("WARNINGS.repo_truncated")),1)])):c("v-if",!0),e.options?.hasSubmodules?(l(),d("div",RI,[t[29]||(t[29]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),h(" "+u(e.fmt?.translate("WARNINGS.submodules_not_included")),1)])):c("v-if",!0),De(o,{class:"files",file:e.files,"search-query":e.fileSearchQuery,"search-results":e.fileSearchResults,page:e.viewState},null,8,["file","search-query","search-results","page"])])],2),[[Y,e.files?.length]]),T(n("div",{class:"leftCol-resizer",role:"separator","aria-orientation":"vertical","aria-label":"Resize file tree",title:"Drag to resize",onPointerdown:t[7]||(t[7]=r=>e.startSidebarResize(r))},null,544),[[Y,e.files?.length&&!e.sidebarHidden]]),T(n("div",{class:"leftCol-backdrop",onClick:t[8]||(t[8]=r=>e.sidebarCollapsed=!0)},null,512),[[Y,e.files?.length&&!e.sidebarCollapsed]]),n("div",DI,[T(n("div",{class:O(["status-bar",{"is-redundant":["code","text","html"].includes(e.type)&&e.content!=null}])},[T(n("button",{type:"button",class:"btn btn-sm status-files-btn","aria-label":"Show files",title:"Show files",onClick:t[9]||(t[9]=r=>e.sidebarHidden?e.sidebarHidden=!1:e.sidebarCollapsed=!1)},[...t[30]||(t[30]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-folder"})],-1),n("span",null,"Files",-1)])],512),[[Y,e.files?.length]]),n("ol",TI,[n("li",_I,[n("a",{href:e.safeUrl("/r/"+e.repoId+"/"),title:e.repoId,textContent:u(/^[0-9a-f]{8}-[0-9a-f]{4}-/i.test(e.repoId||"")?"repository":e.repoId)},null,8,AI)]),(l(!0),d(W,null,oe(e.paths,(r,a)=>(l(),d("li",{class:"breadcrumb-item","aria-current":a===e.paths.length-1?"page":null,textContent:u(r)},null,8,OI))),256))]),T(n("button",{type:"button",class:"btn btn-sm btn-icon-only btn-ghost copy-path-btn","aria-label":e.pathCopied?"Path copied":"Copy path",title:e.pathCopied?"Path copied":"Copy path",onClick:t[10]||(t[10]=r=>e.copyPath())},[(l(),d("svg",II,[n("use",{href:e.pathCopied?"#ui-icon-check":"#project-icon-copy"},null,8,MI)]))],8,PI),[[Y,e.filePath]]),n("div",VI,[e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[31]||(t[31]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),n("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,qI)):c("v-if",!0),e.type=="html-doc"&&!e.showSource?(l(),d("button",{key:1,class:O(["btn btn-sm",{"btn-active":e.allowScripts}]),"aria-label":"Allow this document to run JavaScript",title:"Scripts in this file are blocked by default. Enable them only if you trust the repository \u2014 the document stays isolated from your session either way.",onClick:t[11]||(t[11]=r=>e.toggleAllowScripts())},[t[32]||(t[32]=n("i",{class:"fab fa-js"},null,-1)),n("span",LI,u(e.allowScripts?"JS on":"JS off"),1)],2)):c("v-if",!0),e.type=="html-doc"?(l(),d("button",{key:2,class:"btn btn-sm","aria-label":"Toggle between the rendered document and its source",title:"Toggle between the rendered document and its source",onClick:t[12]||(t[12]=r=>e.toggleSource())},[(l(),d("svg",$I,[n("use",{href:e.showSource?"#project-icon-eye":"#ui-icon-code"},null,8,UI)])),n("span",FI,u(e.showSource?"Rendered":"Source"),1)])):c("v-if",!0),e.options?.hasWebsite?(l(),d("a",{key:3,target:"_self",class:"btn btn-sm","aria-label":"Website",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[33]||(t[33]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),n("span",{class:"d-none d-md-inline"}," Website",-1)])],8,BI)):c("v-if",!0)])],2),[[Y,e.type!="error"||e.files?.length]]),n("div",zI,[De(i,{name:"partials/pageView.htm",state:e.viewState},null,8,["state"])])])],6)}var HI={class:"paper-faq"},jI={class:"paper-faq-body"},GI={class:"paper-faq-toc"};function Kl(e,t){let o=we("paper-scrollspy");return l(),d("div",HI,[t[3]||(t[3]=n("div",{class:"paper-faq-hero"},[n("div",{class:"paper-faq-eyebrow"},"Help"),n("h1",{class:"paper-faq-title"},[h("Mirrors, redaction, and "),n("em",null,"what reviewers see.")]),n("p",{class:"paper-faq-lede"}," How to set up an anonymous mirror, what it hides, and how long it stays online. ")],-1)),n("div",jI,[T((l(),d("aside",GI,[...t[0]||(t[0]=[me('
Contents
',2)])])),[[o]]),t[1]||(t[1]=n("section",{class:"faq-section","aria-label":"FAQs"},[n("div",null,[c(" General "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),h("General ")]),n("div",{class:"panel-group",id:"faq-general",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingWhatIs"},[n("h3",{class:"panel-title"},[n("a",{role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#whatIs","aria-expanded":"true","aria-controls":"whatIs"}," What is Anonymous GitHub? ")])]),n("div",{id:"whatIs",class:"panel-collapse collapse show",role:"tabpanel","aria-labelledby":"headingWhatIs"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub is an open-source tool with free hosting and optional paid plans that anonymizes GitHub repositories and pull requests for double-anonymous (double-blind) peer review. It replaces identifying information, such as the repository owner, organization name, and custom terms, so that reviewers cannot determine the identity of the authors through the code repository. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingHowWork"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#howWork","aria-expanded":"false","aria-controls":"howWork"}," How does Anonymous GitHub work? ")])]),n("div",{id:"howWork",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingHowWork"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub either downloads the complete repository and anonymizes the content, or proxies requests to GitHub on the fly. In both cases, the original and anonymized versions of files are cached on the server. The system automatically detects and replaces the repository owner, organization name, and repository name. You can also specify additional custom terms to anonymize using one-per-line regex patterns. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingScope"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#scope","aria-expanded":"false","aria-controls":"scope"}," What is the scope of anonymization? ")])]),n("div",{id:"scope",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingScope"},[n("div",{class:"panel-body p-3"},[n("p",null," In double-anonymous peer review, the boundary of anonymization is the paper plus its online appendix, not the entire internet. Searching for any part of the paper or the online appendix can be considered a deliberate attempt to break anonymity. Anonymous GitHub anonymizes the repository owner, organization, repository name, file and directory names, and file contents across all text-based file types. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCost"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#cost","aria-expanded":"false","aria-controls":"cost"}," How much does it cost? ")])]),n("div",{id:"cost",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCost"},[n("div",{class:"panel-body p-3"},[n("p",null," A free account includes 5 owned repositories and 2 GiB of source files. Optional paid plans offer more capacity, automatic refresh, and, with an author subscription, never-expiring repositories. Reviewers can read shared repositories without an account or payment. "),n("p",null,[h(" See "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),h(" for available plans and current prices. Offers depend on whether payments are enabled on this instance; the checkout shows the amount before you pay. Subscriptions help fund hosting, storage, backups, and continued maintenance. ")]),n("p",null,[h(" You can also support development through "),n("a",{href:"https://github.com/sponsors/tdurieux/",target:"_blank",rel:"noopener"},"GitHub Sponsors"),h(" or "),n("a",{href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener"},"Ko-fi"),h(". Donations are separate from subscriptions and do not automatically unlock paid features. ")])])])])]),c(" Plans and billing "),n("h4",{class:"faq-cat",id:"faq-plans-title"},"Plans and billing"),n("div",{class:"panel-group",id:"faq-plans",role:"tablist","aria-label":"Plans and billing","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingFreePlan"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#freePlan","aria-expanded":"false","aria-controls":"freePlan"},"What is included in a free account?")])]),n("div",{id:"freePlan",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingFreePlan"},[n("div",{class:"panel-body p-3"},[n("p",null,"The default free allowance is 5 repositories you own and 2 GiB of source files in total. Core anonymization and reviewer access remain free. You can manually refresh a repository within your allowance and choose a dated expiration up to one year ahead."),n("p",null,"Repositories shared with you as a coauthor do not use your own slots. Gists and pull requests are not included in these repository quotas. The usage shown in your account is the allowance available on this instance.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingAuthorPlans"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#authorPlans","aria-expanded":"false","aria-controls":"authorPlans"},"What do monthly and annual author subscriptions include?")])]),n("div",{id:"authorPlans",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingAuthorPlans"},[n("div",{class:"panel-body p-3"},[n("p",null,[h("Both include 20 owned repositories and 10 GiB of source files in total. They also allow automatic refresh when enabled in repository settings and let the owner choose "),n("strong",null,"Never expire"),h(".")]),n("p",null,[h("Monthly and annual plans offer the same features with different billing periods. They renew automatically until you cancel renewal. Current prices are shown in "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),h(".")]),n("p",null,"Paid plans do not change how anonymization works. File-size limits and other service safeguards still apply. Review your anonymized content before sharing it.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingReviewPass"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#reviewPass","aria-expanded":"false","aria-controls":"reviewPass"},"Can I pay for one repository without subscribing?")])]),n("div",{id:"reviewPass",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingReviewPass"},[n("div",{class:"panel-body p-3"},[n("p",null,"The author review pass covers one selected repository for 180 days, with a separate 2 GiB allowance and automatic refresh when enabled. It is a one-time purchase and does not renew automatically."),n("p",null,[h("Enter the anonymized ID of an existing repository you own in "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),h(". A pass does not unlock Never expire and does not override the repository's chosen expiration date.")])])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingConferencePlans"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#conferencePlans","aria-expanded":"false","aria-controls":"conferencePlans"},"Can a conference or lab pay for a group?")])]),n("div",{id:"conferencePlans",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingConferencePlans"},[n("div",{class:"panel-body p-3"},[n("p",null,"A conference review package provides a shared allowance of 100 repositories and 50 GiB for a review window of up to 180 days. The organizer pays once; the package does not renew automatically. A lab organizing a review can use this shared package too."),n("p",null,"The paid conference must be activated by payment before authors can submit under its Conference ID. Eligible repositories use the conference allowance before an author's personal allowance, so authors do not each need a subscription for that capacity."),n("p",null,"The package has a fixed review window. Never expire still requires the repository owner's monthly or annual author subscription. See the available offer when creating a conference.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPaidCoauthors"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#paidCoauthors","aria-expanded":"false","aria-controls":"paidCoauthors"},"Does every coauthor need to pay?")])]),n("div",{id:"paidCoauthors",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPaidCoauthors"},[n("div",{class:"panel-body p-3"},[n("p",null,"No. Coauthors can collaborate without buying a subscription. A shared repository uses its owner's allowance, unless a repository pass or paid conference covers it. It does not consume each coauthor's personal allowance."),n("p",null,"A coauthor's subscription does not increase the owner's allowance. If the owner's available capacity is exhausted, a coauthor's refresh or edit may also be blocked. Reviewers never need a paid account.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCapacity"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#capacity","aria-expanded":"false","aria-controls":"capacity"},"What counts toward my allowance, and what happens at the limit?")])]),n("div",{id:"capacity",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCapacity"},[n("div",{class:"panel-body p-3"},[n("p",null,"The repository limit counts work you own. Storage counts the source-file sizes reserved for those repositories, not just files a reviewer opens. Archived or failed repositories can still reserve capacity, and a refresh does not automatically reduce a previous storage reservation."),n("p",null,"At the repository limit you cannot add another repository to that allowance. An edit or refresh must also fit the available storage. Remove work you no longer need, choose a paid plan, or use an eligible conference allowance."),n("p",null,"Removing a repository releases its reservation when capacity is next checked. Expired repositories may continue to reserve capacity until cleanup. Reaching a limit does not itself delete existing review links.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingNeverExpire"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#neverExpire","aria-expanded":"false","aria-controls":"neverExpire"},"What happens to Never expire repositories if I stop subscribing?")])]),n("div",{id:"neverExpire",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingNeverExpire"},[n("div",{class:"panel-body p-3"},[n("p",null,[h("Never expire is available to monthly and annual author subscribers. If paid access ends, these repositories remain available for a "),n("strong",null,"90-day grace period"),h(", then expire and their hosted content is removed.")]),n("p",null,"Renewing during the grace period keeps them active. After expiration, you must renew and explicitly reactivate the repository; restoring content also requires access to its GitHub source. A repository does not become public on GitHub when it expires."),n("p",null,"Existing never-expiring repositories created before this billing policy retain their settings. Never expire is not a guarantee of perpetual service availability.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCancelPlan"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#cancelPlan","aria-expanded":"false","aria-controls":"cancelPlan"},"How do I cancel, and what happens after paid access ends?")])]),n("div",{id:"cancelPlan",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCancelPlan"},[n("div",{class:"panel-body p-3"},[n("p",null,[h("Open "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),h(" and choose "),n("strong",null,"Manage billing and invoices"),h(" to manage renewal. Cancelling renewal keeps subscription benefits until the end of the paid period.")]),n("p",null,"After paid access ends, repositories fall back to another eligible allowance or the free allowance. Automatic refresh pauses on the free allowance; manual refresh remains available within its limits. Existing review links keep their configured expiration dates, except paid Never expire repositories, which follow the 90-day grace period described above."),n("p",null,"A repository pass or conference package ends after its paid window without automatic renewal.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPaymentHandling"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#paymentHandling","aria-expanded":"false","aria-controls":"paymentHandling"},"How are payments handled?")])]),n("div",{id:"paymentHandling",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPaymentHandling"},[n("div",{class:"panel-body p-3"},[n("p",null,[h("Stripe processes checkout and billing management. Anonymous GitHub does not store your card details. You can access billing management and invoices from "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),h(".")]),n("p",null,[h("Paid access is activated after payment is confirmed. If checkout succeeds but your account has not updated, choose "),n("strong",null,"Refresh payment status"),h(" before trying another purchase. If paid plans are unavailable on this instance, no checkout is offered.")])])])])]),c(" Features "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#project-icon-filter"})]),h("Features ")]),n("div",{class:"panel-group",id:"faq-features",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingFormats"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#formats","aria-expanded":"false","aria-controls":"formats"}," Which file formats are supported? ")])]),n("div",{id:"formats",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingFormats"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub can display and render a wide variety of file types: "),n("ul",null,[n("li",null,[n("strong",null,"Text and source code"),h(": displayed with syntax highlighting")]),n("li",null,[n("strong",null,"Markdown"),h(": rendered as formatted HTML")]),n("li",null,[n("strong",null,"Images"),h(" (PNG, JPG, SVG, etc.): displayed inline")]),n("li",null,[n("strong",null,"PDFs"),h(": rendered directly in the browser")]),n("li",null,[n("strong",null,"Jupyter Notebooks"),h(": rendered with code cells and outputs")])]),n("p",null," Only text-based files are anonymized. Anonymous GitHub analyzes the content of each file to determine whether it is textual or binary. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPR"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#pullRequests","aria-expanded":"false","aria-controls":"pullRequests"}," Can I anonymize pull requests? ")])]),n("div",{id:"pullRequests",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPR"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. In addition to full repositories, Anonymous GitHub supports anonymizing individual pull requests. Simply paste the URL of a GitHub pull request when creating a new anonymized repository, and the system will automatically detect that it is a pull request and anonymize it accordingly. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingConference"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#conference","aria-expanded":"false","aria-controls":"conference"}," What is the Conference ID feature? ")])]),n("div",{id:"conference",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingConference"},[n("div",{class:"panel-body p-3"},[n("p",null," When creating an anonymized repository, you can associate it with a Conference ID. This allows conferences to define default anonymization settings (such as expiration dates) that are automatically applied to repositories submitted under that conference. If your conference provides a Conference ID, enter it during the anonymization setup. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingExpiration"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#expiration","aria-expanded":"false","aria-controls":"expiration"}," What happens when an anonymized repository expires? ")])]),n("div",{id:"expiration",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingExpiration"},[n("div",{class:"panel-body p-3"},[n("p",null," You can configure one of three expiration strategies when creating your anonymized repository: "),n("ul",null,[n("li",null,[n("strong",null,"Never expire"),h(": with a monthly or annual author subscription, no scheduled expiration while subscribed. A 90-day grace period applies after paid access ends. See "),n("a",{href:"#neverExpire"},"the subscription expiration policy"),h(".")]),n("li",null,[n("strong",null,"Redirect to GitHub"),h(": after expiration, visitors are redirected to the original GitHub repository.")]),n("li",null,[n("strong",null,"Remove content"),h(": after expiration, the anonymized content is deleted from the server.")])])])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingDownload"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#download","aria-expanded":"false","aria-controls":"download"}," Can I download an anonymized repository? ")])]),n("div",{id:"download",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDownload"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. Anonymized repositories can be downloaded as a ZIP file. This is useful if reviewers want to build or test the code locally. The downloaded archive contains the fully anonymized version of the repository. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingUpdates"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#updates","aria-expanded":"false","aria-controls":"updates"}," Are updates to the original repository reflected in the anonymized version? ")])]),n("div",{id:"updates",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingUpdates"},[n("div",{class:"panel-body p-3"},[n("p",null," You can refresh the anonymized repository from GitHub without creating a new share link. Free accounts can request a manual refresh within their allowance. Automatic refresh requires an eligible paid allowance and must be enabled in repository settings. It pauses when the repository falls back to the free allowance. "),n("p",null," After changing files or contributor names, review your anonymization terms before sharing the updated content. If GitHub access is revoked or the source is deleted, the service cannot fetch updates. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCLI"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#cli","aria-expanded":"false","aria-controls":"cli"}," Is there a command-line tool? ")])]),n("div",{id:"cli",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCLI"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. Anonymous GitHub provides a CLI tool that lets you anonymize repositories locally, generating an anonymized ZIP file on your machine. Install it via npm: "),n("pre",{style:{"background-color":"var(--hover-bg-color)",padding:"12px","border-radius":"4px","margin-top":"8px",color:"var(--color)"}},[n("code",null,`npm install -g @tdurieux/anonymous_github -anonymous_github`)])])])])]),c(" Limitations "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})]),h("Limitations ")]),n("div",{class:"panel-group",id:"faq-limitations",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingLimitation"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-limitations",href:"#limitation","aria-expanded":"false","aria-controls":"limitation"}," What are the limitations of Anonymous GitHub? ")])]),n("div",{id:"limitation",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingLimitation"},[n("div",{class:"panel-body p-3"},[n("ul",null,[n("li",null," Anonymous GitHub only anonymizes text-based files. Binary files (compiled executables, archives, etc.) are served as-is without anonymization. "),n("li",null," Files larger than 8 MB are not supported. "),n("li",null," Static site generators (such as Jekyll) used with GitHub Pages are not fully supported, although Markdown files are converted to HTML. "),n("li",null," The anonymization of terms within source code may change the behavior of the program (e.g., if a replaced term appears in a string literal or identifier). ")])])])])]),c(" Privacy & Security "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})]),h("Privacy & Security ")]),n("div",{class:"panel-group",id:"faq-privacy",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingData"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#data","aria-expanded":"false","aria-controls":"data"}," How is my data handled? ")])]),n("div",{id:"data",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingData"},[n("div",{class:"panel-body p-3"},[n("p",null," Repository data is used to provide the anonymization service. If you purchase a plan, Stripe processes payment and billing information. When a repository is removed or expires, only its configuration is retained. This makes it easy to restore the repository if needed and ensures that no future repository reuses the same ID. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPermissions"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#permissions","aria-expanded":"false","aria-controls":"permissions"}," Why does GitHub say Anonymous GitHub asks for write access? ")])]),n("div",{id:"permissions",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPermissions"},[n("div",{class:"panel-body p-3"},[n("p",null,[h("The GitHub App has read-only access to the repositories you choose. You can change repository access on your "),n("a",{href:"/connections"},"GitHub connections"),h(" page.")]),n("p",null,"Legacy GitHub OAuth includes write access to private repositories because GitHub's OAuth scopes do not offer a read-only option for them. Existing OAuth anonymizations and gists can still use this connection."),n("p",null,"Anonymous GitHub reads repository content. It never pushes, modifies, or deletes files on GitHub.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingViewer"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#viewer","aria-expanded":"false","aria-controls":"viewer"}," Can repository owners see who viewed their anonymized repository? ")])]),n("div",{id:"viewer",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingViewer"},[n("div",{class:"panel-body p-3"},[n("p",null," No. Only the total number of views is tracked as an incremental counter. It is not possible for the repository owner or for Anonymous GitHub to identify individual viewers. Reviewer anonymity is fully preserved. ")])])])]),c(" Self-Hosting "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#project-icon-storage"})]),h("Self-Hosting ")]),n("div",{class:"panel-group",id:"faq-hosting",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingDeploy"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-hosting",href:"#deploy","aria-expanded":"false","aria-controls":"deploy"}," Can I deploy my own instance? ")])]),n("div",{id:"deploy",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDeploy"},[n("div",{class:"panel-body p-3"},[n("p",null,[h(" Yes. Anonymous GitHub is fully open source (GPL-3.0) and supports Docker-based deployment. Billing is optional and disabled by default for self-hosted instances; paid hosted plans are not required to run your own server. You will need to configure a GitHub OAuth app and provide a GitHub token. Detailed setup instructions are available on the "),n("a",{href:"https://github.com/tdurieux/anonymous_github/",target:"_blank"},"GitHub repository"),h(". ")]),n("p",null," The basic steps are: "),n("ol",null,[n("li",null,"Clone the repository and install dependencies"),n("li",null,[h("Create a "),n("code",null,".env"),h(" file with your GitHub token, OAuth client ID, and client secret")]),n("li",null,[h("Run "),n("code",null,"docker-compose up -d")])])])])])]),n("div",{class:"text-center mt-5 mb-5 p-4",style:{"background-color":"var(--hover-bg-color)","border-radius":"8px"}},[n("p",{class:"mb-2",style:{"font-size":"1.1rem"}}," Still have questions? "),n("p",{class:"text-muted mb-0"},[h(" Open an issue on the "),n("a",{href:"https://github.com/tdurieux/anonymous_github/issues",target:"_blank"},"GitHub repository"),h(" and we'll be happy to help. ")])])])],-1)),t[2]||(t[2]=n("aside",{class:"paper-faq-help","aria-label":"More help"},[n("div",{class:"paper-faq-help-card"},[n("strong",null,"Still stuck?"),n("p",null,"Open an issue on GitHub about the service. For a paper's content, contact the conference instead."),n("a",{class:"btn btn-outline-ink btn-sm",target:"_blank",rel:"noopener",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml"},"Open an issue")])],-1))])])}var WI={class:"pr-page"},KI={class:"container paper-page pr-page-inner"},YI={class:"pr-header"},JI={class:"pr-title-row"},QI={class:"paper-page-title pr-title"},XI=["textContent"],ZI={key:1,class:"text-muted"},xI=["href"],e5={class:"pr-header-meta"},t5={key:0,class:"pr-meta-item"},n5=["textContent"],o5={key:1,class:"pr-meta-item"},s5=["textContent"],i5={key:2,class:"pr-meta-item"},r5=["textContent"],a5={key:0,class:"paper-tabs",role:"tablist"},l5=["aria-selected","tabindex"],d5=["textContent"],u5=["aria-selected","tabindex"],c5=["textContent"],p5={class:"paper-tab-content"},f5={key:0,role:"tabpanel",id:"gist-files-panel","aria-labelledby":"gist-files-tab"},m5={class:"pr-comments"},h5={class:"pr-comment"},v5={class:"pr-comment-head"},g5=["textContent"],y5={key:0,class:"pr-comment-date"},b5={key:0,class:"paper-table-empty"},w5={key:1,role:"tabpanel",id:"gist-comments-panel","aria-labelledby":"gist-comments-tab"},k5={class:"pr-comments"},C5={class:"pr-comment"},E5={class:"pr-comment-head"},S5={key:0,class:"pr-comment-author"},N5=["textContent"],R5=["textContent"],D5={key:0,class:"pr-comment-body"},T5={key:0,class:"paper-table-empty"};function Yl(e,t){let o=We("gist-file"),i=We("markdown");return l(),d("div",WI,[n("div",KI,[t[17]||(t[17]=n("div",{class:"paper-crumbs"},[n("a",{href:"/dashboard"},"Reviewer"),h(" \xA0/\xA0 "),n("span",{class:"here"},"Gist")],-1)),n("header",YI,[n("div",JI,[n("h1",QI,[e.details?.description?(l(),d("span",{key:0,textContent:u(e.details?.description)},null,8,XI)):c("v-if",!0),e.details?.description?c("v-if",!0):(l(),d("span",ZI,"Untitled gist"))]),e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/gist-anonymize/"+e.gistId)},[...t[4]||(t[4]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),n("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,xI)):c("v-if",!0)]),n("div",e5,[n("span",{class:O(["paper-pill",{good:e.details?.isPublic,warn:!e.details?.isPublic}])},u(e.details?.isPublic?"Public":"Secret"),3),e.details?.ownerLogin?(l(),d("span",t5,[t[5]||(t[5]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[6]||(t[6]=h(" @",-1)),n("span",{textContent:u(e.details?.ownerLogin)},null,8,n5)])):c("v-if",!0),e.details?.updatedDate?(l(),d("span",o5,[t[7]||(t[7]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[8]||(t[8]=h()),n("span",{textContent:u(e.fmt?.date(e.details?.updatedDate))},null,8,s5)])):c("v-if",!0),e.details?.anonymizeDate?(l(),d("span",i5,[t[9]||(t[9]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),t[10]||(t[10]=h(" Anonymized ",-1)),n("span",{textContent:u(e.fmt?.date(e.details?.anonymizeDate))},null,8,r5)])):c("v-if",!0)])]),e.details?.files&&e.details?.files?.length||e.details?.comments&&e.details?.comments?.length?(l(),d("nav",a5,[e.details?.files?(l(),d("button",{key:0,class:O(["paper-tab",{active:e.tabState?.active=="files"}]),type:"button",role:"tab",id:"gist-files-tab","aria-selected":e.tabState?.active==="files","aria-controls":"gist-files-panel",tabindex:e.tabState?.active==="files"?0:-1,onKeydown:t[0]||(t[0]=s=>e.previewTabKeydown(s)),onClick:t[1]||(t[1]=s=>e.tabState.active="files")},[t[11]||(t[11]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-gist"})],-1)),n("span",{textContent:u(e.fmt.plural(e.details?.files?.length,{0:"No files",one:"1 file",other:"{} files"}))},null,8,d5)],42,l5)):c("v-if",!0),e.details?.comments?(l(),d("button",{key:1,class:O(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",id:"gist-comments-tab","aria-selected":e.tabState?.active==="comments","aria-controls":"gist-comments-panel",tabindex:e.tabState?.active==="comments"?0:-1,onKeydown:t[2]||(t[2]=s=>e.previewTabKeydown(s)),onClick:t[3]||(t[3]=s=>e.tabState.active="comments")},[t[12]||(t[12]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1)),n("span",{textContent:u(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,c5)],42,u5)):c("v-if",!0)])):c("v-if",!0),n("div",p5,[e.details?.files&&e.tabState?.active=="files"?(l(),d("div",f5,[n("ul",m5,[(l(!0),d(W,null,oe(e.details?.files,(s,r)=>(l(),d("li",h5,[n("div",v5,[n("strong",{textContent:u(s?.filename)},null,8,g5),s?.language?(l(),d("span",y5,u(s?.language),1)):c("v-if",!0)]),De(o,{file:s},null,8,["file"])]))),256)),e.details?.files?.length?c("v-if",!0):(l(),d("li",b5,[...t[13]||(t[13]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-file"})],-1),n("span",null,"No files in this gist.",-1)])]))])])):c("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(l(),d("div",w5,[n("ul",k5,[(l(!0),d(W,null,oe(e.details?.comments,(s,r)=>(l(),d("li",C5,[n("div",E5,[s?.author?(l(),d("span",S5,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[15]||(t[15]=h(" @",-1)),n("span",{textContent:u(s?.author)},null,8,N5)])):c("v-if",!0),s?.updatedDate?(l(),d("span",{key:1,class:"pr-comment-date",textContent:u(e.fmt?.date(s?.updatedDate))},null,8,R5)):c("v-if",!0)]),s?.body?(l(),d("div",D5,[De(i,{content:s?.body},null,8,["content"])])):c("v-if",!0)]))),256)),e.details?.comments?.length?c("v-if",!0):(l(),d("li",T5,[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1),n("span",null,"No comments on this gist.",-1)])]))])])):c("v-if",!0)])])])}var _5={key:0,class:"nav-support",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener",title:"Donate on Ko-fi to help cover hosting costs","aria-label":"Donate on Ko-fi to help cover hosting costs"},A5={key:1,class:"nav-heart-m",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener","aria-label":"Support Anonymous GitHub",title:"Support Anonymous GitHub"},O5=["aria-label","title"],P5={class:"ui-icon","aria-hidden":"true"},I5=["href"],M5={key:3,class:"nav-signin-m",href:"/signin",target:"_self","aria-label":"Sign in with GitHub"},V5={class:"collapse navbar-collapse",id:"navbarSupportedContent"},q5={class:"navbar-nav mr-auto smooth-scroll"},L5={key:0,class:"nav-item nav-home-item"},$5={key:1,class:"nav-item"},U5={key:2,class:"nav-item"},F5={key:3,class:"nav-item"},B5={class:"nav-item"},z5={key:4,class:"nav-item"},H5={class:"navbar-nav"},j5={key:0,class:"nav-item d-lg-none"},G5={key:1,class:"nav-item"},W5={key:2,class:"nav-item"},K5={key:3,class:"nav-item nav-signin-item"},Y5={key:4,class:"nav-item"},J5={key:5,class:"nav-item dropdown user-chip-wrap"},Q5={class:"nav-link user-chip dropdown-toggle",href:"#",id:"navbarDropdownMenuLink",role:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},X5=["src"],Z5={class:"user-chip-name"},x5={class:"dropdown-menu dropdown-menu-right user-menu","aria-labelledby":"navbarDropdownMenuLink"},e8={class:"dropdown-header"},t8={key:0,class:"dropdown-item um-extra",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener"},n8=["innerHTML"],o8=["disabled"],s8={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},i8={class:"email-prompt-actions"},r8=["disabled"],a8=["disabled"],l8=["disabled"];function Jl(e,t){return l(),d(W,null,[n("nav",{class:O(["navbar navbar-expand-lg",{"navbar-dark":e.isDarkMode}])},[t[27]||(t[27]=n("a",{class:"navbar-brand",href:"/"},[h("Anonymous "),n("em",null,"GitHub")],-1)),e.headerShowSupport?(l(),d("a",_5,[...t[9]||(t[9]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})],-1),n("span",{class:"nav-support-label"},"Support",-1)])])):c("v-if",!0),/^\/(r|w|pr|gist)\//.test(e.path||"")?c("v-if",!0):(l(),d("a",A5,[...t[10]||(t[10]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})],-1)])])),/^\/(r|w|pr|gist)\//.test(e.path||"")?c("v-if",!0):(l(),d("button",{key:2,type:"button",class:"nav-theme-m","aria-label":e.isDarkMode?"Switch to light mode":"Switch to dark mode",title:e.isDarkMode?"Switch to light mode":"Switch to dark mode",onClick:t[0]||(t[0]=o=>e.darkMode(!e.isDarkMode))},[(l(),d("svg",P5,[n("use",{href:e.isDarkMode?"#ui-icon-sun":"#ui-icon-moon"},null,8,I5)]))],8,O5)),!e.user&&!/^\/(r|w|pr|gist)\//.test(e.path||"")?(l(),d("a",M5,[...t[11]||(t[11]=[n("i",{class:"fab fa-github","aria-hidden":"true"},null,-1),h("Sign in",-1)])])):c("v-if",!0),t[28]||(t[28]=n("button",{class:"navbar-toggler",type:"button","data-toggle":"collapse","data-target":"#navbarSupportedContent","aria-controls":"navbarSupportedContent","aria-expanded":"false","aria-label":"Toggle navigation"},[n("span",{class:"navbar-toggler-icon"})],-1)),n("div",V5,[n("ul",q5,[e.user?c("v-if",!0):(l(),d("li",L5,[n("a",{class:O(["nav-link",{active:e.path=="/"}]),href:"/"},[...t[12]||(t[12]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-home"})],-1),h(" Home ",-1)])],2)])),e.user?(l(),d("li",$5,[n("a",{class:O(["nav-link",{active:e.path=="/dashboard"}]),href:"/dashboard"},[...t[13]||(t[13]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-grid"})],-1),h(" My work ",-1)])],2)])):c("v-if",!0),e.user?(l(),d("li",U5,[n("a",{class:O(["nav-link",{active:e.path=="/anonymize"||e.path=="/pull-request-anonymize"}]),href:"/anonymize"},[...t[14]||(t[14]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),h(" Anonymize ",-1)])],2)])):c("v-if",!0),e.user?(l(),d("li",F5,[n("a",{class:O(["nav-link",{active:e.path=="/conferences"||e.path?.startsWith("/conference/")}]),href:"/conferences"},[...t[15]||(t[15]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1),h(" Conferences ",-1)])],2)])):c("v-if",!0),n("li",B5,[n("a",{class:O(["nav-link",{active:e.path=="/faq"}]),href:"/faq"},[...t[16]||(t[16]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})],-1),h("FAQ",-1)])],2)]),e.user&&e.user?.isAdmin?(l(),d("li",z5,[n("a",{class:O(["nav-link",{active:e.path?.indexOf("/admin")===0}]),href:"/admin/"},[...t[17]||(t[17]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-user-shield"})],-1),h(" Admin ",-1)])],2)])):c("v-if",!0)]),n("ul",H5,[e.user||!e.isReviewerRoute?(l(),d("li",j5,[...t[18]||(t[18]=[n("a",{class:"nav-link nav-icon",target:"_blank",href:"https://github.com/tdurieux/anonymous_github/",title:"Anonymous GitHub source code","aria-label":"Anonymous GitHub source code on GitHub",rel:"noopener","data-offset":"30"},[n("i",{class:"fab fa-github","aria-hidden":"true"})],-1)])])):c("v-if",!0),c(` "Report a bug" is about this service. Reviewers who land on an +jane.smith@example.org`},null,10,AT),[[o,{state:e.viewState,set:a=>{e.terms=a},value:e.terms,form:"anonymize",options:{debounce:250}}]]),t[94]||(t[94]=n("small",{class:"form-text text-muted"},"One term per line.",-1)),n("details",_T,[t[89]||(t[89]=n("summary",null,"Regex & replacement syntax",-1)),t[90]||(t[90]=y()),n("small",OT,[t[83]||(t[83]=y("Regex is supported. Replaced by ",-1)),n("code",null,p(e.site_options?.ANONYMIZATION_MASK)+"-[N]",1),t[84]||(t[84]=y(", or use ",-1)),t[85]||(t[85]=n("code",null,"term=>replacement",-1)),t[86]||(t[86]=y(" to pick your own (e.g. ",-1)),t[87]||(t[87]=n("code",null,"Anonymous=>ABC",-1)),t[88]||(t[88]=y(").",-1))])]),(l(!0),d(W,null,ae((e.termHints||[]).slice(0,3),a=>(l(),d("div",{class:"term-hint",key:a.line},[n("span",null,[t[91]||(t[91]=y("In ",-1)),n("code",null,p(a.term),1),t[92]||(t[92]=y(", ",-1)),n("code",null,p(a.symbols.join(" ")),1),y(" "+p(a.symbols.length>1?"are regex symbols":"is a regex symbol")+", so it may not match the text as written.",1)]),n("button",{type:"button",class:"btn btn-outline-ink btn-sm",onClick:u=>e.matchTermAsWritten(a.line)},"Match as written",8,PT)]))),128)),(e.termHints||[]).length>3?(l(),d("div",IT,p(e.termHints.length-3)+" more "+p(e.termHints.length-3===1?"term uses":"terms use")+" regex symbols.",1)):f("v-if",!0),T(n("div",MT,"Terms are in an invalid format.",512),[[J,e.anonymize?.terms?.errors?.format]])]),T(n("div",VT,[n("div",qT,[t[95]||(t[95]=n("span",{class:"paper-field-label",id:"preserve-files-label"},"Unredacted files",-1)),n("span",$T,p(e.preserveSummary()),1)]),n("button",{type:"button",class:"btn btn-outline-ink btn-sm","aria-describedby":"preserve-files-label",disabled:!e.source?.commit,onClick:t[19]||(t[19]=a=>e.openPreserveFiles())},p((e.options?.preserveFiles||[]).length?"Edit":"Choose files"),9,LT)],512),[[J,e.detectedType==="repo"]]),e.preserve?.open?(l(),d("dialog",{key:0,id:"preserve-files-dialog",class:"preserve-dialog","aria-labelledby":"preserve-files-title",onCancel:t[24]||(t[24]=ce(a=>e.closePreserveFiles(),["prevent"]))},[n("form",{onSubmit:t[23]||(t[23]=ce(a=>e.savePreserveFiles(),["prevent"]))},[t[99]||(t[99]=n("h2",{id:"preserve-files-title"},"Leave files unredacted",-1)),t[100]||(t[100]=n("p",{class:"preserve-intro"},"Checked files are shown exactly as written, for example a bibliography where redacted self-citations would reveal you. File names are still redacted.",-1)),T(n("input",{type:"search",id:"preserve-files-search",class:"form-control",placeholder:"Search files","aria-label":"Search files",autocomplete:"off","onUpdate:modelValue":t[20]||(t[20]=a=>e.preserve.search=a)},null,512),[[dt,e.preserve.search]]),n("div",UT,[e.preserve.loading?(l(),d("p",FT,"Loading files from GitHub\u2026")):e.preserve.error?(l(),d("p",BT,p(e.preserve.error),1)):(l(),d(W,{key:2},[(l(!0),d(W,null,ae(e.preserveRows(),(a,u)=>(l(),d("div",{class:"preserve-item",key:a.kind+":"+a.path,style:$e({paddingLeft:a.depth*18+6+"px"})},[a.kind==="dir"?(l(),d("button",{key:0,type:"button",class:"preserve-caret","aria-expanded":a.open?"true":"false","aria-label":(a.open?"Collapse ":"Expand ")+a.label,onClick:c=>e.togglePreserveDir(a.path)},p(a.open?"\u25BE":"\u25B8"),9,zT)):(l(),d("span",HT)),n("input",{type:"checkbox",id:"pf-"+u,"aria-label":a.kind==="dir"?"Leave folder "+a.path+" unredacted":null,checked:a.state==="all",".indeterminate":a.state==="some",disabled:a.locked,onChange:c=>a.kind==="dir"?e.togglePreserveFolder(a.path):e.togglePreserveFile(a.path)},null,40,jT),n("label",{for:a.kind==="file"?"pf-"+u:null,class:"preserve-name",onClick:c=>a.kind==="dir"&&e.togglePreserveDir(a.path)},p(a.label),9,GT),a.note?(l(),d("span",WT,p(a.note),1)):f("v-if",!0)],4))),128)),!e.preserve.loading&&!e.preserveRows().length?(l(),d("p",KT,p(e.preserve.search?"No file matches your search.":"No text files in this commit."),1)):f("v-if",!0)],64))]),e.preserve.truncated?(l(),d("p",YT,"This repository has too many files to list them all. Use a pattern for files you cannot find.")):f("v-if",!0),n("details",{class:"preserve-patterns",open:e.preserve.patternsOpen},[t[96]||(t[96]=n("summary",null,"Patterns",-1)),T(n("textarea",{class:"form-control",rows:"3","aria-label":"Patterns",placeholder:`*.bib +paper/appendix/**`,"onUpdate:modelValue":t[21]||(t[21]=a=>e.preserve.patterns=a)},null,512),[[dt,e.preserve.patterns]]),t[97]||(t[97]=n("small",{class:"form-text text-muted"},[y("One per line, as in .gitignore: "),n("code",null,"*.bib"),y(" matches in any folder; "),n("code",null,"/refs.bib"),y(" and "),n("code",null,"paper/refs.bib"),y(" match from the repository root; a folder name such as "),n("code",null,"drafts/"),y(" covers everything inside it; "),n("code",null,"!private.bib"),y(" excludes again.")],-1))],8,XT),n("div",JT,[n("span",QT,p(e.preserve.loading||e.preserve.error?"":e.preserveCount()+(e.preserveCount()===1?" file":" files")+" will be shown as written"),1),n("span",ZT,[n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[22]||(t[22]=a=>e.closePreserveFiles())},"Cancel"),t[98]||(t[98]=n("button",{type:"submit",class:"btn btn-ink"},"Save",-1))])])],32)],32)):f("v-if",!0)],512),[[J,e.detectedType]]),T(n("section",xT,[t[121]||(t[121]=n("h2",{class:"paper-section-eyebrow"},"Display",-1)),T(n("div",null,[n("div",eA,[T(n("input",tA,null,512),[[o,{state:e.viewState,set:a=>{e.options.link=a},value:e.options?.link,form:"anonymize",options:{}}]]),t[102]||(t[102]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1))]),n("div",nA,[T(n("input",sA,null,512),[[o,{state:e.viewState,set:a=>{e.options.image=a},value:e.options?.image,form:"anonymize",options:{}}]]),t[103]||(t[103]=n("label",{class:"form-check-label",for:"image"},"Display images",-1))]),n("div",oA,[T(n("input",iA,null,512),[[o,{state:e.viewState,set:a=>{e.options.pdf=a},value:e.options?.pdf,form:"anonymize",options:{}}]]),t[104]||(t[104]=n("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1))]),n("div",rA,[T(n("input",aA,null,512),[[o,{state:e.viewState,set:a=>{e.options.notebook=a},value:e.options?.notebook,form:"anonymize",options:{}}]]),t[105]||(t[105]=n("label",{class:"form-check-label",for:"notebook"},"Display Notebooks",-1))]),n("div",lA,[T(n("input",{class:"form-check-input",type:"checkbox",id:"page",name:"page",disabled:!e.details?.hasPage||e.details?.pageSource&&e.details?.pageSource?.branch!==e.source?.branch},null,8,dA),[[o,{state:e.viewState,set:a=>{e.options.page=a},value:e.options?.page,form:"anonymize",options:{}}]]),t[106]||(t[106]=n("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),e.details?.hasPage?f("v-if",!0):(l(),d("small",uA,p(e.fmt?.translate("WARNINGS.page_not_enabled_on_repo")),1)),e.details?.hasPage&&e.details?.pageSource?.branch&&e.source?.branch&&e.details.pageSource.branch!==e.source.branch?(l(),d("small",cA,p(e.fmt?.translate("WARNINGS.page_branch_mismatch",{pageBranch:e.details?.pageSource?.branch,selectedBranch:e.source?.branch})),1)):f("v-if",!0)])],512),[[J,e.detectedType==="repo"]]),e.detectedType==="repo"&&(e.options.image||e.options.pdf)?(l(),d("p",pA,[...t[107]||(t[107]=[y("Images and PDFs are served unchanged. Review their contents and metadata before sharing. ",-1),n("a",{href:"/faq#formats"},"Supported formats",-1)])])):f("v-if",!0),T(n("div",null,[n("div",fA,[T(n("input",hA,null,512),[[o,{state:e.viewState,set:a=>{e.options.title=a},value:e.options?.title,form:"anonymize",options:{}}]]),t[108]||(t[108]=n("label",{class:"form-check-label",for:"title-gist"},"Gist description",-1))]),n("div",mA,[T(n("input",gA,null,512),[[o,{state:e.viewState,set:a=>{e.options.content=a},value:e.options?.content,form:"anonymize",options:{}}]]),t[109]||(t[109]=n("label",{class:"form-check-label",for:"content-gist"},"File contents",-1))]),n("div",vA,[T(n("input",yA,null,512),[[o,{state:e.viewState,set:a=>{e.options.comments=a},value:e.options?.comments,form:"anonymize",options:{}}]]),t[110]||(t[110]=n("label",{class:"form-check-label",for:"comments-gist"},"Comments",-1))]),n("div",bA,[T(n("input",wA,null,512),[[o,{state:e.viewState,set:a=>{e.options.username=a},value:e.options?.username,form:"anonymize",options:{}}]]),t[111]||(t[111]=n("label",{class:"form-check-label",for:"username-gist"},"Usernames",-1))]),n("div",kA,[T(n("input",CA,null,512),[[o,{state:e.viewState,set:a=>{e.options.date=a},value:e.options?.date,form:"anonymize",options:{}}]]),t[112]||(t[112]=n("label",{class:"form-check-label",for:"date-gist"},"Dates",-1))]),n("div",EA,[T(n("input",SA,null,512),[[o,{state:e.viewState,set:a=>{e.options.origin=a},value:e.options?.origin,form:"anonymize",options:{}}]]),t[113]||(t[113]=n("label",{class:"form-check-label",for:"origin-gist"},"Source gist ID",-1))])],512),[[J,e.detectedType==="gist"]]),T(n("div",null,[n("div",NA,[T(n("input",RA,null,512),[[o,{state:e.viewState,set:a=>{e.options.title=a},value:e.options?.title,form:"anonymize",options:{}}]]),t[114]||(t[114]=n("label",{class:"form-check-label",for:"title"},"PR title",-1))]),n("div",DA,[T(n("input",TA,null,512),[[o,{state:e.viewState,set:a=>{e.options.body=a},value:e.options?.body,form:"anonymize",options:{}}]]),t[115]||(t[115]=n("label",{class:"form-check-label",for:"body"},"PR body",-1))]),n("div",AA,[T(n("input",_A,null,512),[[o,{state:e.viewState,set:a=>{e.options.diff=a},value:e.options?.diff,form:"anonymize",options:{}}]]),t[116]||(t[116]=n("label",{class:"form-check-label",for:"diff"},"Diff",-1))]),n("div",OA,[T(n("input",PA,null,512),[[o,{state:e.viewState,set:a=>{e.options.comments=a},value:e.options?.comments,form:"anonymize",options:{}}]]),t[117]||(t[117]=n("label",{class:"form-check-label",for:"comments"},"Comments",-1))]),n("div",IA,[T(n("input",MA,null,512),[[o,{state:e.viewState,set:a=>{e.options.username=a},value:e.options?.username,form:"anonymize",options:{}}]]),t[118]||(t[118]=n("label",{class:"form-check-label",for:"username"},"Usernames",-1))]),n("div",VA,[T(n("input",qA,null,512),[[o,{state:e.viewState,set:a=>{e.options.date=a},value:e.options?.date,form:"anonymize",options:{}}]]),t[119]||(t[119]=n("label",{class:"form-check-label",for:"date"},"Dates",-1))]),n("div",$A,[T(n("input",LA,null,512),[[o,{state:e.viewState,set:a=>{e.options.origin=a},value:e.options?.origin,form:"anonymize",options:{}}]]),t[120]||(t[120]=n("label",{class:"form-check-label",for:"origin"},"Project name",-1))])],512),[[J,e.detectedType==="pr"]])],512),[[J,e.detectedType]]),T(n("section",UA,[t[137]||(t[137]=n("h2",{class:"paper-section-eyebrow",id:"hosting-heading"},"Hosting & expiration",-1)),e.detectedType==="repo"&&e.billing?.enabled?(l(),d("p",FA,[e.isUpdate&&e.role!=="owner"?(l(),d("span",BA,"Uses the owner's hosting")):e.hasAuthorHosting()?(l(),d("span",zA,"Your author subscription is active.")):e.conference?(l(),d("span",HA,"Conference hosting is checked on submission.")):e.hostingQuota?.repository?(l(),d("span",jA,p(e.hostingQuota.repository.used)+" of "+p(e.hostingQuota.repository.total)+" active repositories \xB7 Free",1)):f("v-if",!0)])):f("v-if",!0),n("fieldset",GA,[t[127]||(t[127]=n("legend",{class:"sr-only"},"Expiration",-1)),n("label",WA,[n("input",{type:"radio",name:"expiration-choice",checked:e.options.expirationMode!=="never",onChange:t[25]||(t[25]=a=>e.useDatedHosting()),disabled:e.billingPending},null,40,KA),t[122]||(t[122]=n("span",null,"Expire on a date",-1))]),e.options.expirationMode!=="never"?(l(),d("div",YA,[e.options?.expirationMode!=="never"?(l(),d("div",XA,[t[123]||(t[123]=n("label",{class:"paper-field-label",for:"expirationDate"},"Expires",-1)),T(n("input",{class:_(["form-control",{"is-invalid":e.anonymize?.expirationDate?.invalid}]),type:"date",name:"expirationDate",id:"expirationDate",required:"",min:e.minExpirationDate,max:e.maxExpirationDate},null,10,JA),[[o,{state:e.viewState,set:a=>{e.options.expirationDate=a},value:e.options?.expirationDate,form:"anonymize",options:{}}]]),T(n("div",QA,"Pick a date in the future.",512),[[J,e.anonymize?.expirationDate?.errors?.min]]),T(n("div",{class:"invalid-feedback"},"Pick a date on or before "+p(e.fmt?.date(e.maxExpirationDate))+".",513),[[J,e.anonymize?.expirationDate?.errors?.max]]),T(n("div",ZA,"Enter a valid expiration date.",512),[[J,e.anonymize?.expirationDate?.errors?.required||e.anonymize?.expirationDate?.errors?.date]])])):f("v-if",!0),n("div",xA,[t[125]||(t[125]=n("label",{for:"expiration"},"Then",-1)),T(n("select",{id:"expiration",class:"form-control","onUpdate:modelValue":t[26]||(t[26]=a=>e.options.expirationMode=a)},[...t[124]||(t[124]=[n("option",{value:"remove"},"Remove content",-1),n("option",{value:"redirect"},"Redirect to GitHub",-1)])],512),[[Wn,e.options.expirationMode]])])])):f("v-if",!0),e.detectedType==="repo"?(l(),d("label",e_,[n("input",{type:"radio",name:"expiration-choice",checked:e.options.expirationMode==="never",onChange:t[27]||(t[27]=a=>e.options.expirationMode="never"),disabled:e.billingPending},null,40,t_),n("span",null,[t[126]||(t[126]=y("Never expire",-1)),e.options.expirationMode!=="never"||e.hasAuthorHosting()?(l(),d("small",n_,p(e.hasAuthorHosting()?"Included in your subscription":"Author subscription"),1)):f("v-if",!0)])])):f("v-if",!0)]),e.options.expirationMode==="redirect"?(l(),d("p",s_,"Visitors will be redirected to the original GitHub source on this date, revealing its identity.")):f("v-if",!0),n("div",o_,[t[128]||(t[128]=n("label",{class:"paper-field-label",for:"conference"},[y("Conference code "),n("span",{class:"paper-optional"},"(optional)")],-1)),T(n("input",{class:_(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[o,{state:e.viewState,set:a=>{e.conference=a},value:e.conference,form:"anonymize",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),T(n("small",i_,[n("a",{target:"_blank",href:e.safeUrl(e.conference_data?.url)},p(e.conference_data?.name),9,r_),y(" expires "+p(e.fmt?.date(e.conference_data?.endDate))+". ",1)],512),[[J,e.conference_data]]),T(n("div",a_,"The conference is not activated.",512),[[J,e.anonymize?.conference?.errors?.activated]]),T(n("small",l_,"Link to a conference to apply its shared defaults.",512),[[J,!e.conference_data]])]),e.detectedType==="repo"&&e.billing?.enabled?(l(),d("div",d_,[e.taskValidationError?(l(),d("p",u_,p(e.taskValidationError),1)):f("v-if",!0),e.billingError?(l(),d("p",c_,[y(p(e.billingError)+" ",1),n("button",{type:"button",class:"task-text-button",onClick:t[28]||(t[28]=a=>e.loadBilling()),disabled:e.billingBusy},"Reload billing",8,p_)])):f("v-if",!0),e.billingPending?(l(),d("div",f_,[...t[129]||(t[129]=[n("p",null,[n("strong",null,"Confirming your payment\u2026")],-1),n("p",{class:"form-text text-muted"},"Your draft is saved. Please do not pay again.",-1)])])):e.billingNotice?(l(),d("p",h_,p(e.billingNotice),1)):f("v-if",!0),e.hostingNeedsPayment()&&!e.billingPending?(l(),d(W,{key:4},[e.options.expirationMode!=="never"?(l(),d("p",m_,p(e.options.update&&!e.hostingQuotaBlocked&&e.hostingQuota?.repository?.used(l(),d("label",{class:_(["cycle-option",{selected:e.selectedHostingPlan()?.id===a.id}]),key:a.id},[n("input",{type:"radio",name:"hosting-plan",value:a.id,checked:e.selectedHostingPlan()?.id===a.id,onChange:u=>e.hostingPlan=a.id},null,40,y_),n("span",null,p(e.billingPrice(a)),1)],2))),128))]),n("p",null,p(e.selectedHostingPlan()?.repositories)+" repositories, "+p(e.billingBytes(e.selectedHostingPlan()?.storage))+". Coauthors included.",1),n("p",b_,"Renews "+p(e.selectedHostingPlan()?.interval==="year"?"annually":"monthly")+" until cancelled. Tax shown at checkout.",1),t[132]||(t[132]=n("p",{class:"hosting-terms"},"If paid access ends, never-expiring repositories expire after 90 days.",-1))])):(l(),d("p",w_,"New purchases are temporarily unavailable. Your draft is kept.")),e.options.expirationMode!=="never"?(l(),d("details",k_,[t[133]||(t[133]=n("summary",null,"Keep using free hosting",-1)),t[134]||(t[134]=n("p",null,"Remove a repository you no longer need, or use conference hosting. Removing a repository affects its review link.",-1)),t[135]||(t[135]=n("a",{href:"/dashboard"},"Review my repositories",-1)),n("button",{type:"button",class:"task-text-button",onClick:t[29]||(t[29]=a=>e.anonymizeRepo(a)),disabled:e.sourceLoading||e.billingBusy},"Recheck capacity and submit",8,C_)])):f("v-if",!0)],64)):e.options.expirationMode==="never"&&!e.billingPending?(l(),d("p",E_,"No scheduled expiration while subscribed. A 90-day grace period applies if paid access ends.")):f("v-if",!0),e.isUpdate&&e.role==="owner"&&!e.hasAuthorHosting()?(l(),d("details",S_,[t[136]||(t[136]=n("summary",null,"Hosting just this repository?",-1)),(l(!0),d(W,null,ae((e.billing?.plans||[]).filter(a=>a.id==="author_pass"),a=>(l(),d("div",{key:a.id},[n("p",null,p(e.billingPrice(a))+" \xB7 "+p(e.billingBytes(a.storage))+" for 180 days. No renewal. Does not include Never expire.",1),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.billingBusy||e.hostingSaving||e.sourceLoading||e.billing.checkoutEnabled===!1||e.billingPending,onClick:t[30]||(t[30]=u=>e.checkoutRepository(!0))},"Review repository pass",8,N_)]))),128))])):f("v-if",!0)])):f("v-if",!0)],512),[[J,e.detectedType]]),T(n("section",R_,[t[141]||(t[141]=n("h2",{class:"paper-section-eyebrow"},"Coauthors",-1)),t[142]||(t[142]=n("p",{class:"form-text text-muted",style:{"margin-bottom":"8px"}}," Co-authors can view and edit these settings. They cannot delete the anonymization or manage co-authors. ",-1)),T(n("div",D_,[t[138]||(t[138]=n("label",{class:"paper-field-label",for:"coauthorSearch"},"Add a GitHub user",-1)),n("div",T_,[T(n("input",A_,null,512),[[o,{state:e.viewState,set:a=>{e.coauthorSearch=a},value:e.coauthorSearch,form:"anonymize",options:{debounce:300},change:()=>{e.searchCoauthors()}}]]),T(n("div",__,[(l(!0),d(W,null,ae(e.coauthorResults,(a,u)=>(l(),d("a",{href:"#",class:"dropdown-item d-flex align-items-center",onClick:ce(c=>e.addCoauthor(a,c),["prevent"])},[n("img",{alt:"",style:{width:"22px",height:"22px","border-radius":"50%","margin-right":"8px"},src:e.safeUrl(a?.photo)},null,8,P_),n("span",{textContent:p(a?.username)},null,8,I_)],8,O_))),256))],512),[[J,e.coauthorResults?.length>0]])]),T(n("small",{class:"form-text text-muted",textContent:p(e.coauthorError)},null,8,M_),[[J,e.coauthorError]])],512),[[J,e.role==="owner"||e.role==="admin"]]),n("div",V_,[(l(!0),d(W,null,ae(e.coauthors,(a,u)=>(l(),d("div",q_,[a?.photo?(l(),d("img",{key:0,alt:"",style:{width:"24px",height:"24px","border-radius":"50%"},src:e.safeUrl(a?.photo)},null,8,$_)):f("v-if",!0),n("a",{target:"_blank",textContent:p(a?.username),href:e.safeUrl("https://github.com/"+a?.username)},null,8,L_),t[140]||(t[140]=n("span",{class:"type-badge type-coauthor"},"Co-author",-1)),T(n("button",{type:"button",class:"btn btn-sm btn-icon",style:{"margin-left":"auto"},title:"Remove co-author",onClick:c=>e.removeCoauthor(a),"aria-label":"Remove co-author"},[...t[139]||(t[139]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,U_),[[J,e.role==="owner"||e.role==="admin"]])]))),256)),T(n("div",F_," No co-authors yet. ",512),[[J,!e.coauthors||e.coauthors?.length===0]])])],512),[[J,e.isUpdate&&e.detectedType==="repo"]]),e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:p(e.error)},null,8,B_)):f("v-if",!0)]),n("button",{type:"button",class:"btn btn-outline-ink mobile-preview-jump",onClick:t[31]||(t[31]=a=>e.selectMobilePane("preview"))},[...t[143]||(t[143]=[y("Review preview ",-1),n("span",{"aria-hidden":"true"},"\u2192",-1)])]),T(n("div",z_,[e.detectedType==="repo"?(l(),d(W,{key:0},[e.billingPending?(l(),d("button",{key:0,type:"button",class:"btn btn-ink",onClick:t[32]||(t[32]=a=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,H_)):(l(),d("button",{key:1,type:"submit",class:"btn btn-ink",disabled:e.sourceLoading||e.billingBusy||e.hostingSaving||e.billingLoading||e.hostingNeedsPayment()&&(!e.authorPlans().length||e.billing?.checkoutEnabled===!1),onClick:t[33]||(t[33]=ce(a=>e.submitForm(a,()=>{e.submitRepository(a)}),["prevent"]))},p(e.hostingSaving?"Saving draft\u2026":e.hostingNeedsPayment()?"Continue to checkout":e.isUpdate?"Save changes":"Create anonymous link"),9,j_)),e.hostingNeedsPayment()&&!e.billingPending?(l(),d("p",G_,"Review payment in Stripe, then return to finish.")):f("v-if",!0)],64)):f("v-if",!0),e.detectedType==="pr"&&!e.isUpdate?(l(),d("button",{key:1,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[34]||(t[34]=ce(a=>e.submitForm(a,()=>{e.anonymizePullRequest(a)}),["prevent"]))},[...t[144]||(t[144]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),y(" Anonymize Pull Request ",-1)])],8,W_)):f("v-if",!0),e.detectedType==="pr"&&e.isUpdate?(l(),d("button",{key:2,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[35]||(t[35]=ce(a=>e.submitForm(a,()=>{e.anonymizePullRequest(a)}),["prevent"]))},[...t[145]||(t[145]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-save"})],-1),y(" Update Pull Request ",-1)])],8,K_)):f("v-if",!0),e.detectedType==="gist"&&!e.isUpdate?(l(),d("button",{key:3,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[36]||(t[36]=ce(a=>e.submitForm(a,()=>{e.anonymizeGist(a)}),["prevent"]))},[...t[146]||(t[146]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),y(" Anonymize Gist ",-1)])],8,Y_)):f("v-if",!0),e.detectedType==="gist"&&e.isUpdate?(l(),d("button",{key:4,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[37]||(t[37]=ce(a=>e.submitForm(a,()=>{e.anonymizeGist(a)}),["prevent"]))},[...t[147]||(t[147]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-save"})],-1),y(" Update Gist ",-1)])],8,X_)):f("v-if",!0),e.draftRestored?(l(),d("div",J_,[t[148]||(t[148]=y("Your unsaved draft was restored. ",-1)),n("button",{type:"button",class:"draft-discard",onClick:t[38]||(t[38]=a=>e.discardDraft())},"Discard draft")])):e.unsavedChanges?(l(),d("div",Q_,[y(p(e.draftSaved?"Draft saved \xB7":"Unsaved changes \xB7")+" ",1),n("button",{type:"button",class:"draft-discard",onClick:t[39]||(t[39]=a=>e.discardDraft())},p(e.isUpdate?"Restore saved":"Discard"),1)])):f("v-if",!0)],512),[[J,e.detectedType]])])),[[r,e.viewState]])],8,CD),f(" Preview column (right) "),e.detectedType==="repo"?(l(),d("div",{key:0,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[n("div",x_,[t[149]||(t[149]=n("span",{class:"paper-eyebrow"},"Live preview",-1)),n("span",e4,p(e.previewStatus!=="ready"?"README preview":e.readmePreserved()?"README left unredacted (Unredacted files)":String(e.terms||"").trim()?"README with redactions applied":"No terms yet. Add some to see them redacted here."),1),n("button",{type:"button",class:"task-text-button preview-expand",onClick:t[40]||(t[40]=a=>e.previewExpanded=!e.previewExpanded)},p(e.previewExpanded?"Restore split view":"Expand preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",t4,"Loading source\u2026")):f("v-if",!0),e.previewStatus==="loading"?(l(),d("div",n4,"Updating the anonymized preview\u2026")):f("v-if",!0),e.previewStatus==="error"?(l(),d("div",s4,[t[150]||(t[150]=n("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),n("button",{class:"btn btn-outline-ink",type:"button",onClick:t[41]||(t[41]=a=>e.retryPreview())},"Retry preview")])):f("v-if",!0),!e.sourceLoading&&!e.readme&&e.previewStatus==="idle"?(l(),d("div",o4,"No README is available to preview. Review the published files before sharing.")):f("v-if",!0),e.previewStatus==="ready"?(l(),d("div",{key:4,class:"anonymize-preview-body markdown-body body",innerHTML:e.renderRedacted(e.sanitize(e.html_readme))},null,8,i4)):f("v-if",!0)],8,Z_)):f("v-if",!0),e.detectedType==="gist"&&e.details?(l(),d("div",{key:1,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[n("div",a4,[t[151]||(t[151]=n("strong",null,"Gist preview",-1)),n("button",{type:"button",class:"task-text-button preview-expand",onClick:t[42]||(t[42]=a=>e.previewExpanded=!e.previewExpanded)},p(e.previewExpanded?"Restore split view":"Expand preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",l4,"Loading source\u2026")):f("v-if",!0),e.previewStatus==="loading"?(l(),d("div",d4,"Updating the anonymized preview\u2026")):f("v-if",!0),e.previewStatus==="error"?(l(),d("div",u4,[t[152]||(t[152]=n("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),n("button",{class:"btn btn-outline-ink",type:"button",onClick:t[43]||(t[43]=a=>e.retryPreview())},"Retry preview")])):f("v-if",!0),e.previewStatus==="ready"?(l(),d("div",c4,[n("div",p4,[n("h2",f4,[e.options?.title?(l(),d("span",h4,p(e.anonymizeGistContent(e.details?.gist?.description)||"Untitled gist"),1)):f("v-if",!0),n("span",{class:_(["badge",{"badge-success":e.details?.gist?.isPublic,"badge-secondary":!e.details?.gist?.isPublic}])},p(e.details?.gist?.isPublic?"public":"secret"),3)]),e.options?.date?(l(),d("small",{key:0,textContent:p(e.fmt?.date(e.details?.gist?.updatedDate))},null,8,m4)):f("v-if",!0)]),e.options?.origin?(l(),d("small",g4,"Gist ID: "+p(e.details?.source?.gistId),1)):f("v-if",!0),e.options?.username&&e.details?.gist?.ownerLogin?(l(),d("small",v4,"By @"+p(e.anonymizeGistContent(e.details?.gist?.ownerLogin)),1)):f("v-if",!0),e.options?.content&&e.previewGistFiles?.length?(l(),d("div",y4,[n("ul",b4,[(l(!0),d(W,null,ae(e.previewGistFiles,(a,u)=>(l(),d("li",w4,[n("div",k4,[n("strong",{textContent:p(a?.filename)},null,8,C4),a?.language?(l(),d("span",E4,p(a?.language),1)):f("v-if",!0)]),Ue(s,{file:a,terms:e.terms,options:e.options},null,8,["file","terms","options"])]))),256))])])):f("v-if",!0),e.options?.comments&&e.details?.gist?.comments&&e.details?.gist?.comments?.length?(l(),d("div",S4,[t[155]||(t[155]=n("h3",{class:"paper-section-eyebrow mt-3"},"Comments",-1)),n("ul",N4,[(l(!0),d(W,null,ae(e.details?.gist?.comments,(a,u)=>(l(),d("li",R4,[n("div",D4,[e.options?.username?(l(),d("span",T4,[t[153]||(t[153]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[154]||(t[154]=y(" @",-1)),n("span",{textContent:p(e.anonymizeGistContent(a?.author))},null,8,A4)])):f("v-if",!0),e.options?.date?(l(),d("span",{key:1,class:"pr-comment-date",textContent:p(e.fmt?.date(a?.updatedDate))},null,8,_4)):f("v-if",!0)]),e.options?.body?(l(),d("div",O4,[Ue(i,{content:e.anonymizeGistContent(a?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):f("v-if",!0)]))),256))])])):f("v-if",!0)])):f("v-if",!0)],8,r4)):f("v-if",!0),e.detectedType==="pr"&&e.details?(l(),d("div",{key:2,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[n("div",I4,[t[156]||(t[156]=n("strong",null,"Pull request preview",-1)),n("button",{type:"button",class:"task-text-button preview-expand",onClick:t[44]||(t[44]=a=>e.previewExpanded=!e.previewExpanded)},p(e.previewExpanded?"Restore split view":"Expand preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",M4,"Loading source\u2026")):f("v-if",!0),e.previewStatus==="loading"?(l(),d("div",V4,"Updating the anonymized preview\u2026")):f("v-if",!0),e.previewStatus==="error"?(l(),d("div",q4,[t[157]||(t[157]=n("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),n("button",{class:"btn btn-outline-ink",type:"button",onClick:t[45]||(t[45]=a=>e.retryPreview())},"Retry preview")])):f("v-if",!0),e.previewStatus==="ready"?(l(),d("div",$4,[n("div",L4,[n("h2",U4,[e.options?.title?(l(),d("span",F4,p(e.anonymizePrContent(e.details?.pullRequest?.title)),1)):f("v-if",!0),n("span",{class:_(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},p(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(l(),d("small",{key:0,textContent:p(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,B4)):f("v-if",!0)]),e.options?.origin?(l(),d("small",z4,"Pull Request on "+p(e.details?.pullRequest?.baseRepositoryFullName),1)):f("v-if",!0),e.options?.body?(l(),d("div",H4,[Ue(i,{content:e.anonymizePrContent(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):f("v-if",!0),e.options?.diff||e.options?.comments?(l(),d("nav",j4,[e.options?.diff?(l(),d("button",{key:0,class:_(["paper-tab",{active:e.prTabState?.active=="diff"}]),type:"button",role:"tab",id:"preview-pr-diff-tab","aria-selected":e.prTabState?.active==="diff","aria-controls":"preview-pr-diff-panel",tabindex:e.prTabState?.active==="diff"?0:-1,onKeydown:t[46]||(t[46]=a=>e.previewTabKeydown(a)),onClick:t[47]||(t[47]=a=>e.prTabState.active="diff")},[...t[158]||(t[158]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),y(" Diff ",-1)])],42,G4)):f("v-if",!0),e.options?.comments?(l(),d("button",{key:1,class:_(["paper-tab",{active:e.prTabState?.active=="comments"}]),type:"button",role:"tab",id:"preview-pr-comments-tab","aria-selected":e.prTabState?.active==="comments","aria-controls":"preview-pr-comments-panel",tabindex:e.prTabState?.active==="comments"?0:-1,onKeydown:t[48]||(t[48]=a=>e.previewTabKeydown(a)),onClick:t[49]||(t[49]=a=>e.prTabState.active="comments")},[t[159]||(t[159]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1)),n("span",{textContent:p(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,K4)],42,W4)):f("v-if",!0)])):f("v-if",!0),!e.options?.diff&&!e.options?.comments?(l(),d("div",Y4,"Diff and comments are hidden by your display settings.")):f("v-if",!0),n("div",X4,[e.options?.diff&&e.prTabState?.active=="diff"?(l(),d("div",J4,[n("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.anonymizePrContent(e.details?.pullRequest?.diff)))},null,8,Q4)])):f("v-if",!0),e.options?.comments&&e.prTabState?.active=="comments"?(l(),d("div",Z4,[n("ul",x4,[(l(!0),d(W,null,ae(e.details?.pullRequest?.comments,(a,u)=>(l(),d("li",e3,[n("div",t3,[e.options?.username?(l(),d("span",n3,[t[160]||(t[160]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[161]||(t[161]=y(" @",-1)),n("span",{textContent:p(e.anonymizePrContent(a?.author))},null,8,s3)])):f("v-if",!0),e.options?.date?(l(),d("span",{key:1,class:"pr-comment-date",textContent:p(e.fmt?.date(a?.updatedDate))},null,8,o3)):f("v-if",!0)]),e.options?.body?(l(),d("div",i3,[Ue(i,{content:e.anonymizePrContent(a?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):f("v-if",!0)]))),256))])])):f("v-if",!0)])])):f("v-if",!0)],8,P4)):f("v-if",!0)])],512),[[J,e.workspaceOpen||e.isUpdate]])],2)}var r3={class:"container-fluid h-100 anonymize-page"},a3={class:"row h-100 flex-column flex-md-row"},l3={class:"col-md sidePanel shadow overflow-auto anonymize-form-col"},d3={class:"form-group"},u3={class:"form-group"},c3={class:"form-check"},p3={class:"form-check-input",type:"checkbox",id:"update",name:"update"},f3={class:"form-group"},h3={class:"form-text text-muted"},m3=["href"],g3={class:"invalid-feedback"},v3={class:"form-text text-muted"},y3={class:"form-group"},b3={id:"idHelp",class:"form-text text-muted"},w3={class:"invalid-feedback"},k3={class:"form-group"},C3={class:"invalid-feedback"},E3={class:"form-group"},S3={class:"form-control",id:"expiration",name:"expiration"},N3={class:"form-group",id:"expiration-date-form"},R3={class:"form-control",type:"date",name:"expirationDate",id:"expirationDate"},D3={class:"accordion mb-3",id:"options"},T3={class:"card"},A3={id:"collapseOne",class:"collapse show","aria-labelledby":"headingOne","data-parent":"#options"},_3={class:"card-body"},O3={class:"form-group mb-0"},P3={class:"form-check"},I3={class:"form-check-input",type:"checkbox",id:"link",name:"link"},M3={class:"form-check"},V3={class:"form-check-input",type:"checkbox",id:"image",name:"image"},q3={class:"form-check"},$3={class:"form-check-input",type:"checkbox",id:"date",name:"date"},L3={class:"form-check"},U3={class:"form-check-input",type:"checkbox",id:"username",name:"username"},F3={class:"form-check"},B3={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},z3={class:"form-check"},H3={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},j3={class:"form-check"},G3={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},W3={class:"form-check"},K3={class:"form-check-input",type:"checkbox",id:"title",name:"title"},Y3={class:"form-check"},X3={class:"form-check-input",type:"checkbox",id:"body",name:"body"},J3=["textContent"],Q3={class:"anonymize-submit-bar"},Z3={key:0,class:"col-md-8 p-2 overflow-auto anonymize-preview-col"},x3={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},eO={class:"pr-title mb-1"},tO={key:0},nO=["textContent"],sO={key:0},oO={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},iO={class:"nav nav-tabs",id:"myTab",role:"tablist"},rO={key:0,class:"nav-item",role:"presentation"},aO={key:1,class:"nav-item",role:"presentation"},lO=["textContent"],dO={class:"tab-content",id:"pills-tabContent"},uO={class:"tab-pane show active",id:"pills-diff",role:"tabpanel","aria-labelledby":"pills-diff-tab"},cO={key:0,class:"pr-diff shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},pO={style:{"overflow-x":"auto"}},fO=["innerHTML"],hO={key:0,class:"pr-comments list-group"},mO={class:"pr-comment list-group-item"},gO={class:"d-flex w-100 justify-content-between flex-wrap"},vO={key:0,class:"mb-1"},yO=["textContent"],bO={class:"mb-1"};function wc(e,t){let s=at("markdown"),i=De("field"),o=De("form");return l(),d("div",r3,[n("div",a3,[n("div",l3,[n("div",{class:_(["p-0 py-2 m-auto",{card:!e.pullRequestUrl,container:e.pullRequestUrl}])},[T((l(),d("form",{class:_(["form needs-validation",{"card-body":!e.pullRequestUrl}]),name:"anonymizeForm",novalidate:""},[t[30]||(t[30]=Ce('
Anonymize \xA0/\xA0 Pull request

Anonymize a pull request

Fill in the details \u2014 it only takes a minute.

Source
',4)),f(" pullRequestUrl "),n("div",d3,[t[2]||(t[2]=n("label",{for:"pullRequestUrl"},"URL of your pull request",-1)),T(n("input",{type:"text",class:_(["form-control",{"is-invalid":e.anonymize?.pullRequestUrl?.invalid}]),name:"pullRequestUrl",id:"pullRequestUrl",placeholder:"https://github.com/owner/repo/pull/123"},null,2),[[i,{state:e.viewState,set:r=>{e.pullRequestUrl=r},value:e.pullRequestUrl,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.pullRequestSelected()}}]]),T(n("div",{class:"invalid-feedback"},p(e.pullRequestUrl)+" is not accessible. Some organizations are restricting the access to the repositories. ",513),[[J,e.anonymize?.pullRequestUrl?.errors?.access]]),T(n("div",{class:"invalid-feedback"},p(e.pullRequestUrl)+" does not exist or is not accessible ",513),[[J,e.anonymize?.pullRequestUrl?.errors?.missing]]),T(n("div",{class:"invalid-feedback"},p(e.pullRequestUrl)+" is already anonymized ",513),[[J,e.anonymize?.pullRequestUrl?.errors?.used]])]),T(n("div",null,[n("div",u3,[n("div",c3,[T(n("input",p3,null,512),[[i,{state:e.viewState,set:r=>{e.options.update=r},value:e.options?.update,form:"anonymizeForm",options:{}}]]),t[3]||(t[3]=n("label",{class:"form-check-label",for:"update"},"Auto update",-1)),t[4]||(t[4]=n("small",{id:"updateHelp",class:"form-text text-muted"},"Automatically update the anonymized pull request with the latest updates. The pull request is updated once per day maximum.",-1))])]),t[26]||(t[26]=n("div",{class:"paper-section-eyebrow anonymize-section-title"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})]),y(" Conference ID ")],-1)),f(" Conference "),n("div",f3,[t[5]||(t[5]=n("label",{for:"conference"},[y("Conference ID "),n("span",{class:"text-muted"},"(Optional)")],-1)),T(n("input",{class:_(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[i,{state:e.viewState,set:r=>{e.conference=r},value:e.conference,form:"anonymizeForm",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),T(n("small",h3,[n("a",{target:"_target",href:e.safeUrl(e.conference_data?.url)},p(e.conference_data?.name),9,m3),y(" will expire on "+p(e.fmt?.date(e.conference_data?.endDate))+".",1)],512),[[J,e.conference_data]]),T(n("div",g3," The conference is not activated. ",512),[[J,e.anonymize?.conference?.errors?.activated]]),T(n("small",v3," Use the Conference ID that your conference provided you. This will update automatically the anonymization options based on the conference preferences. ",512),[[J,!e.conference_data]])]),t[27]||(t[27]=n("div",{class:"paper-section-eyebrow anonymize-section-title"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})]),y(" Anonymization Options ")],-1)),f(" Pull Request ID "),n("div",y3,[t[6]||(t[6]=n("label",{for:"pullRequestId"},"Anonymized pull request id",-1)),T(n("input",{type:"text",class:_(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId"},null,2),[[i,{state:e.viewState,set:r=>{e.pullRequestId=r},value:e.pullRequestId,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",b3,"Id used in the url: https://anonymous.4open.science/r/"+p(e.pullRequestId),1),T(n("div",w3," Repository id can only contain letters and numbers ",512),[[J,e.anonymize?.pullRequestId?.errors?.format]]),T(n("div",{class:"invalid-feedback"},p(e.pullRequestId)+" is already used ",513),[[J,e.anonymize?.pullRequestId?.errors?.used]])]),f(" Terms "),n("div",k3,[t[7]||(t[7]=n("label",{for:"terms"},"Terms to anonymize",-1)),T(n("textarea",{class:_(["form-control",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:"3"},null,2),[[i,{state:e.viewState,set:r=>{e.terms=r},value:e.terms,form:"anonymizeForm",options:{debounce:250}}]]),t[8]||(t[8]=n("small",{id:"termsHelp",class:"form-text text-muted"},"One term per line. Each term will be replaced by XXX.",-1)),T(n("div",C3," Terms are in an invalid format ",512),[[J,e.anonymize?.terms?.errors?.format]])]),n("div",E3,[t[10]||(t[10]=n("label",{for:"expiration"},"Expiration strategy",-1)),T((l(),d("select",S3,[...t[9]||(t[9]=[n("option",{value:"never",selected:""},"Never expire",-1),n("option",{value:"redirect"}," Redirect to GitHub when expired ",-1),n("option",{value:"remove"},"Remove when expired",-1)])])),[[i,{state:e.viewState,set:r=>{e.options.expirationMode=r},value:e.options?.expirationMode,form:"anonymizeForm",options:{}}]]),t[11]||(t[11]=n("small",{class:"form-text text-muted"},"Define the expiration strategy for the anonymized repository.",-1))]),T(n("div",N3,[t[12]||(t[12]=n("label",{for:"expirationDate"},"Expiration date of the anonymized repository",-1)),T(n("input",R3,null,512),[[i,{state:e.viewState,set:r=>{e.options.expirationDate=r},value:e.options?.expirationDate,form:"anonymizeForm",options:{}}]]),T(n("small",{class:"form-text text-muted"},"After "+p(e.fmt?.date(e.options?.expirationDate))+", the repository will be removed and the visitor will not be able to see the content of the repository.",513),[[J,e.options?.expirationMode=="remove"]]),T(n("small",{class:"form-text text-muted"},"After "+p(e.fmt?.date(e.options?.expirationDate))+", the visitors of the anonymized repository will be redirected to "+p(e.pullRequestUrl)+".",513),[[J,e.options?.expirationMode=="redirect"]])],512),[[J,e.options?.expirationMode!="never"]]),n("div",D3,[n("div",T3,[t[25]||(t[25]=Ce('

',1)),n("div",A3,[n("div",_3,[n("div",O3,[n("div",P3,[T(n("input",I3,null,512),[[i,{state:e.viewState,set:r=>{e.options.link=r},value:e.options?.link,form:"anonymizeForm",options:{}}]]),t[13]||(t[13]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[14]||(t[14]=n("small",{class:"form-text text-muted"},"Keep or remove all the links.",-1))]),n("div",M3,[T(n("input",V3,null,512),[[i,{state:e.viewState,set:r=>{e.options.image=r},value:e.options?.image,form:"anonymizeForm",options:{}}]]),t[15]||(t[15]=n("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[16]||(t[16]=n("small",{class:"form-text text-muted"},"Images are not anonymized",-1))]),n("div",q3,[T(n("input",$3,null,512),[[i,{state:e.viewState,set:r=>{e.options.date=r},value:e.options?.date,form:"anonymizeForm",options:{}}]]),t[17]||(t[17]=n("label",{class:"form-check-label",for:"date"},"Display dates",-1)),t[18]||(t[18]=n("small",{class:"form-text text-muted"},"Display the date of the Pull Request and the date of the comments.",-1))]),n("div",L3,[T(n("input",U3,null,512),[[i,{state:e.viewState,set:r=>{e.options.username=r},value:e.options?.username,form:"anonymizeForm",options:{}}]]),t[19]||(t[19]=n("label",{class:"form-check-label",for:"username"},"Display username",-1))]),n("div",F3,[T(n("input",B3,null,512),[[i,{state:e.viewState,set:r=>{e.options.comments=r},value:e.options?.comments,form:"anonymizeForm",options:{}}]]),t[20]||(t[20]=n("label",{class:"form-check-label",for:"comments"},"Display comments",-1))]),n("div",z3,[T(n("input",H3,null,512),[[i,{state:e.viewState,set:r=>{e.options.diff=r},value:e.options?.diff,form:"anonymizeForm",options:{}}]]),t[21]||(t[21]=n("label",{class:"form-check-label",for:"diff"},"Display diff",-1))]),n("div",j3,[T(n("input",G3,null,512),[[i,{state:e.viewState,set:r=>{e.options.origin=r},value:e.options?.origin,form:"anonymizeForm",options:{}}]]),t[22]||(t[22]=n("label",{class:"form-check-label",for:"origin"},"Display the project name",-1))]),n("div",W3,[T(n("input",K3,null,512),[[i,{state:e.viewState,set:r=>{e.options.title=r},value:e.options?.title,form:"anonymizeForm",options:{}}]]),t[23]||(t[23]=n("label",{class:"form-check-label",for:"title"},"Display the PR title",-1))]),n("div",Y3,[T(n("input",X3,null,512),[[i,{state:e.viewState,set:r=>{e.options.body=r},value:e.options?.body,form:"anonymizeForm",options:{}}]]),t[24]||(t[24]=n("label",{class:"form-check-label",for:"body"},"Display the PR body and comment bodies",-1))])])])])])])],512),[[J,e.pullRequestUrl]]),e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:p(e.error)},null,8,J3)):f("v-if",!0),T(n("div",Q3,[e.isUpdate?f("v-if",!0):(l(),d("button",{key:0,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[0]||(t[0]=ce(r=>e.submitForm(r,()=>{e.anonymizePullRequest(r)}),["prevent"]))},[...t[28]||(t[28]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),y(" Anonymize ",-1)])])),e.isUpdate?(l(),d("button",{key:1,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[1]||(t[1]=ce(r=>e.submitForm(r,()=>{e.updatePullRequest(r)}),["prevent"]))},[...t[29]||(t[29]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-save"})],-1),y(" Update ",-1)])])):f("v-if",!0)],512),[[J,e.pullRequestUrl]])],2)),[[o,e.viewState]])],2)]),e.details?(l(),d("div",Z3,[n("div",x3,[n("h2",eO,[e.options?.title?(l(),d("span",tO,p(e.anonymize(e.details?.pullRequest?.title)),1)):f("v-if",!0),n("span",{class:_(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},p(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(l(),d("small",{key:0,textContent:p(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,nO)):f("v-if",!0)]),e.options?.origin?(l(),d("small",sO,"Pull Request on "+p(e.details?.pullRequest?.baseRepositoryFullName),1)):f("v-if",!0),e.options?.body?(l(),d("div",oO,[Ue(s,{content:e.anonymize(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):f("v-if",!0),n("ul",iO,[e.options?.diff?(l(),d("li",rO,[...t[31]||(t[31]=[n("button",{class:"nav-link active",id:"pills-diff-tab","data-toggle":"pill","data-target":"#pills-diff",type:"button",role:"tab","aria-controls":"pills-diff","aria-selected":"true"}," Diff ",-1)])])):f("v-if",!0),e.options?.comments?(l(),d("li",aO,[n("button",{class:_(["nav-link",{active:!e.options?.diff}]),id:"pills-comments-tab","data-toggle":"pill","data-target":"#pills-comments",type:"button",role:"tab","aria-controls":"pills-comments","aria-selected":"false"},[n("span",{textContent:p(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comment",one:"One Comment",other:"{} Comments"}))},null,8,lO)],2)])):f("v-if",!0)]),n("div",dO,[n("div",uO,[e.options?.diff?(l(),d("div",cO,[n("pre",pO,[n("code",{innerHTML:e.sanitize(e.fmt?.diff(e.anonymize(e.details?.pullRequest?.diff)))},null,8,fO)])])):f("v-if",!0)]),n("div",{class:_(["tab-pane",{"show active":!e.options?.diff}]),id:"pills-comments",role:"tabpanel","aria-labelledby":"pills-comments-tab"},[e.options?.comments?(l(),d("ul",hO,[(l(!0),d(W,null,ae(e.details?.pullRequest?.comments,(r,a)=>(l(),d("li",mO,[n("div",gO,[e.options?.username?(l(),d("h5",vO," @"+p(e.anonymize(r?.author)),1)):f("v-if",!0),e.options?.date?(l(),d("small",{key:1,textContent:p(e.fmt?.date(r?.updatedDate))},null,8,yO)):f("v-if",!0)]),n("p",bO,[e.options?.body?(l(),sn(s,{key:0,class:"pr-comment-body",content:e.anonymize(r?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])):f("v-if",!0)])]))),256))])):f("v-if",!0)],2)])])):f("v-if",!0)])])}var wO={class:"container paper-page claim-page"},kO={class:"paper-settings-main claim-form"},CO={class:"form-group"},EO={class:"invalid-feedback"},SO={class:"form-group"};function kc(e,t){let s=De("field"),i=De("form");return l(),d("div",wO,[t[6]||(t[6]=Ce('
My work \xA0/\xA0 Claim

Claim an anonymization

Take ownership of an existing anonymized repository so it appears on your dashboard.

',3)),n("div",kO,[t[5]||(t[5]=n("p",{class:"paper-section-copy"},"Use this when an anonymization was created by a co-author or from another account. You must have access to the GitHub repository it was made from.",-1)),T((l(),d("form",{class:"form needs-validation",name:"claimForm",novalidate:"",onSubmit:t[0]||(t[0]=ce(o=>e.submitForm(o,()=>{e.claim()}),["prevent"]))},[n("div",CO,[t[1]||(t[1]=n("label",{class:"paper-field-label",for:"repoUrl"},"GitHub repository URL",-1)),T(n("input",{type:"text",class:_(["form-control",{"is-invalid":e.claimForm?.repoUrl?.invalid&&(e.claimForm?.repoUrl?.touched||e.claimForm?.submitted)}]),name:"repoUrl",id:"repoUrl",placeholder:"https://github.com/owner/repository",required:""},null,2),[[s,{state:e.viewState,set:o=>{e.repoUrl=o},value:e.repoUrl,form:"claimForm",options:{}}]]),T(n("div",EO," No anonymization matches this repository and ID. Check both values and that you can access the repository on GitHub. ",512),[[J,e.claimForm?.repoUrl?.errors?.not_found]])]),n("div",SO,[t[2]||(t[2]=n("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),T(n("input",{type:"text",class:_(["form-control",{"is-invalid":e.claimForm?.repoId?.invalid&&(e.claimForm?.repoId?.touched||e.claimForm?.submitted)}]),name:"repoId",id:"repoId",placeholder:"e.g. my-paper-7F2A","aria-describedby":"idHelp",required:""},null,2),[[s,{state:e.viewState,set:o=>{e.repoId=o},value:e.repoId,form:"claimForm",options:{}}]]),t[3]||(t[3]=n("small",{id:"idHelp",class:"form-text text-muted"},[y("The ID is the last part of the anonymized URL: "),n("code",null,"anonymous.4open.science/r/"),y(".")],-1))]),t[4]||(t[4]=n("button",{id:"submit",type:"submit",class:"btn btn-ink"}," Claim anonymization ",-1))],32)),[[i,e.viewState]])])])}var NO={class:"container page paper-page conference-page"},RO={class:"paper-crumbs"},DO={class:"here"},TO={class:"d-flex align-items-end flex-wrap",style:{gap:"12px","justify-content":"space-between"}},AO=["textContent"],_O={key:0,class:"paper-page-lede"},OO=["textContent","href"],PO={class:"d-flex align-items-center flex-wrap",style:{gap:"10px"}},IO=["textContent"],MO=["href"],VO={class:"paper-meta-rule"},qO=["textContent"],$O=["textContent"],LO={key:0},UO={key:0,class:"conference-payment-status",role:"status"},FO=["disabled"],BO={key:1,role:"alert"},zO={key:2,class:"paper-settings-section","aria-labelledby":"conference-payment-heading"},HO={key:0,role:"status"},jO={key:1,role:"alert"},GO=["disabled"],WO={class:"search-wrap"},KO={type:"search",id:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search by ID or source repository\u2026",autocomplete:"off"},YO={class:"dashboard-filter-controls"},XO={class:"dropdown"},JO={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},QO={class:"filter-btn-value"},ZO={class:"dropdown-menu","aria-labelledby":"dropdownSort"},xO={class:"form-check dropdown-item"},eP={class:"form-check-input",type:"radio",name:"sort",id:"anonymizeDate",value:"-anonymizeDate"},tP={class:"form-check dropdown-item"},nP={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"repoId"},sP={class:"form-check dropdown-item"},oP={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},iP={class:"form-check dropdown-item"},rP={class:"form-check-input",type:"radio",name:"sort",id:"sortViews",value:"-pageView"},aP={class:"dropdown"},lP={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},dP={key:0,class:"filter-btn-value"},uP={key:1,class:"filter-btn-value"},cP={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},pP={class:"form-check dropdown-item"},fP=["id"],hP=["for"],mP={class:"dashboard-meta"},gP={class:"dashboard-count"},vP={key:0},yP={key:0},bP={key:1},wP={key:1},kP={key:0,class:"filter-chip"},CP=["onClick","aria-label"],EP={class:"paper-table paper-table-repos w-100",role:"table","aria-label":"Repositories"},SP={class:"cell-anon",role:"cell"},NP={class:"anon-text"},RP=["textContent","href"],DP={class:"anon-sub"},TP={class:"anon-source"},AP=["textContent","href"],_P={key:0},OP=["textContent","href"],PP={key:1},IP=["href"],MP={class:"cell-status",role:"cell"},VP={class:"status-line"},qP=["textContent"],$P={key:0,class:"status-sub"},LP={class:"cell-views num",role:"cell"},UP=["textContent"],FP={class:"cell-expires",role:"cell"},BP={key:0,class:"expires-never"},zP=["textContent"],HP={key:2,class:"expires-past"},jP={key:0},GP={key:3,class:"empty-dash","aria-label":"Not applicable"},WP={class:"cell-actions",role:"cell"},KP={class:"dropdown"},YP=["aria-label"],XP={class:"dropdown-menu dropdown-menu-right"},JP=["href"],QP=["href"],ZP={key:0,class:"paper-table-empty"},xP={key:0},eI={key:1},tI={key:2,class:"paper-table-empty-actions"};function Cc(e,t){let s=De("field"),i=De("form");return l(),d("div",NO,[n("div",null,[n("div",RO,[t[4]||(t[4]=n("a",{href:"/dashboard"},"My work",-1)),t[5]||(t[5]=y(" \xA0/\xA0 ",-1)),t[6]||(t[6]=n("a",{href:"/conferences"},"Conferences",-1)),t[7]||(t[7]=y(" \xA0/\xA0 ",-1)),n("span",DO,p(e.conference?.conferenceID),1)]),n("div",TO,[n("div",null,[n("h1",{class:"paper-page-title",textContent:p(e.conference?.name)},null,8,AO),e.conference?.url?(l(),d("p",_O,[n("a",{target:"_blank",rel:"noopener",textContent:p(e.conference?.url),href:e.safeUrl(e.conference?.url)},null,8,OO)])):f("v-if",!0)]),n("div",PO,[n("span",{class:_(["status-pill",{"status-pill-ready":e.conference?.status=="ready","status-pill-removed":e.conference?.status=="removed"||e.conference?.status=="expired"}])},[n("span",{class:_(["status-dot","status-"+e.conference?.status]),"aria-hidden":"true"},null,2),n("span",{textContent:p(e.fmt?.statusLabel(e.conference?.status))},null,8,IO)],2),n("a",{class:"btn btn-outline-ink",href:e.safeUrl("/conference/"+e.conference?.conferenceID+"/edit")},[...t[8]||(t[8]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),y(" Edit conference",-1)])],8,MO)])]),n("div",VO,[n("span",null,[t[9]||(t[9]=y("ID ",-1)),n("b",{class:"commit-hash",textContent:p(e.conference?.conferenceID)},null,8,qO)]),n("span",null,[t[10]||(t[10]=y("Review window ",-1)),n("b",null,p(e.fmt?.date(e.conference?.startDate,"mediumDate"))+" \u2013 "+p(e.fmt?.date(e.conference?.endDate,"mediumDate")),1)]),n("span",null,[t[11]||(t[11]=y("Repositories ",-1)),n("b",null,p(e.fmt?.number(e.conference?.repositories?.length)),1)]),n("span",null,[t[12]||(t[12]=y("Plan ",-1)),n("b",{textContent:p(e.conference?.plan?.name||e.conference?.plan?.planID||"Free")},null,8,$O)]),e.conference?.price?(l(),d("span",LO,[t[13]||(t[13]=y("Cost so far ",-1)),n("b",null,p(e.fmt?.number(e.conference?.price,2))+" \u20AC",1)])):f("v-if",!0)]),e.billingNotice?(l(),d("div",UO,[n("p",null,p(e.billingNotice),1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[0]||(t[0]=o=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,FO)])):f("v-if",!0),e.billingError&&e.conference?.status!=="pending_payment"?(l(),d("p",BO,p(e.billingError),1)):f("v-if",!0),e.conference?.status==="pending_payment"?(l(),d("section",zO,[t[14]||(t[14]=n("h2",{id:"conference-payment-heading"},"Activate your review package",-1)),t[15]||(t[15]=n("p",null,"This conference is waiting for payment. Authors can join after payment is confirmed. Checkout returns to this conference. Authors within the package do not pay separately.",-1)),e.billingLoading?(l(),d("p",HO,"Loading payment options\u2026")):f("v-if",!0),e.billingError?(l(),d("p",jO,p(e.billingError),1)):f("v-if",!0),(l(!0),d(W,null,ae((e.billing?.plans||[]).filter(o=>o.id==="conference"),o=>(l(),d("div",{key:o.id},[n("p",null,p(e.billingPrice(o))+" for up to "+p(o.repositories)+" repositories and "+p(e.billingBytes(o.storage))+" of source files during the review window. Taxes, if applicable, appear at checkout.",1),n("button",{type:"button",class:"btn btn-primary",onClick:t[1]||(t[1]=r=>e.checkout("conference",e.conference.conferenceID)),disabled:e.billingBusy||e.billingPending||e.billing?.checkoutEnabled===!1},p(e.billingBusy?"Please wait\u2026":"Pay for review package"),9,GO)]))),128)),t[16]||(t[16]=n("p",null,[n("a",{href:"/profile#settings-billing"},"Manage invoices")],-1))])):f("v-if",!0),t[37]||(t[37]=n("div",{class:"paper-section-eyebrow"},"Repositories",-1)),T((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter repositories","accept-charset":"UTF-8",onSubmit:t[2]||(t[2]=ce(o=>e.submitForm(o,()=>{o.preventDefault()}),["prevent"]))},[n("div",WO,[T(n("input",KO,null,512),[[s,{state:e.viewState,set:o=>{e.search=o},value:e.search,form:null,options:{}}]])]),n("div",YO,[n("div",XO,[n("button",JO,[t[17]||(t[17]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",QO,p({"-anonymizeDate":"Anonymize date",repoId:"ID","-status":"Status","-pageView":"Views"}[e.orderBy]||"Custom"),1)]),n("div",ZO,[t[22]||(t[22]=n("h6",{class:"dropdown-header"},"Order by",-1)),n("div",xO,[T(n("input",eP,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[18]||(t[18]=n("label",{class:"form-check-label",for:"anonymizeDate"},"Anonymize date",-1))]),n("div",tP,[T(n("input",nP,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[19]||(t[19]=n("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),n("div",sP,[T(n("input",oP,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[20]||(t[20]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),n("div",iP,[T(n("input",rP,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[21]||(t[21]=n("label",{class:"form-check-label",for:"sortViews"},"Views",-1))])])]),n("div",aP,[n("button",lP,[t[23]||(t[23]=n("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(l(),d("span",dP,"All")):f("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?f("v-if",!0):(l(),d("span",uP,p((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),n("div",cP,[t[24]||(t[24]=n("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(W,null,ae(e.statusLabels,(o,r,a)=>(l(),d("div",pP,[T(n("input",{class:"form-check-input",type:"checkbox",id:"status-"+r},null,8,fP),[[s,{state:e.viewState,set:u=>{e.filters.status[r]=u},value:e.filters?.status[r],form:null,options:{}}]]),n("label",{class:"form-check-label",for:"status-"+r},p(o),9,hP)]))),256))])])])],32)),[[i,e.viewState]]),n("div",mP,[n("span",gP,[e.filteredRepositories?.length===e.conference?.repositories?.length?(l(),d("span",vP,[y(p(e.fmt?.number(e.conference?.repositories?.length))+" repositor",1),e.conference?.repositories?.length===1?(l(),d("span",yP,"y")):f("v-if",!0),e.conference?.repositories?.length!==1?(l(),d("span",bP,"ies")):f("v-if",!0)])):f("v-if",!0),e.filteredRepositories?.length!==e.conference?.repositories?.length?(l(),d("span",wP,p(e.fmt?.number(e.filteredRepositories?.length))+" of "+p(e.fmt?.number(e.conference?.repositories?.length))+" shown",1)):f("v-if",!0)]),(l(!0),d(W,null,ae(e.filters?.status,(o,r,a)=>(l(),d(W,null,[o===!1?(l(),d("span",kP,[y(" Hiding "+p(e.statusLabels[r])+" ",1),n("button",{type:"button",class:"filter-chip-close",onClick:u=>{e.filters.status[r]=!0},"aria-label":"Show "+e.statusLabels[r]+" again"},"\xD7",8,CP)])):f("v-if",!0)],64))),256))]),n("div",EP,[t[36]||(t[36]=n("div",{class:"paper-table-head",role:"row"},[n("div",{role:"columnheader"},"Repository"),n("div",{role:"columnheader"},"Status"),n("div",{role:"columnheader",class:"num"},"Views"),n("div",{role:"columnheader"},"Expires"),n("div",{role:"columnheader"},[n("span",{class:"sr-only"},"Actions")])],-1)),(l(!0),d(W,null,ae(e.filteredRepositories,(o,r)=>(l(),d("div",{class:_(["paper-table-row",{"repo-inactive":o?.status=="expired"||o?.status=="removed","repo-error":o?.status=="error"}]),role:"row",key:o?.repoId},[n("div",SP,[t[27]||(t[27]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",NP,[n("a",{class:"repo-name",textContent:p(o?.repoId),href:e.safeUrl("/r/"+o?.repoId+"/")},null,8,RP),n("div",DP,[n("span",TP,[n("a",{target:"_blank",rel:"noopener",textContent:p(o?.source?.fullName),href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/")},null,8,AP),o?.options?.update&&o?.source?.branch?(l(),d("span",_P,[t[25]||(t[25]=y(" \xB7 ",-1)),n("a",{target:"_blank",rel:"noopener",textContent:p(o?.source?.branch),href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/tree/"+o?.source?.branch)},null,8,OP)])):f("v-if",!0),o?.source?.commit?(l(),d("span",PP,[t[26]||(t[26]=y(" \xB7 ",-1)),n("a",{class:"commit-hash",target:"_blank",rel:"noopener",href:e.safeUrl("https://github.com/"+o?.source?.fullName+"/tree/"+o?.source?.commit)},"@"+p(o?.source?.commit?.substring(0,8)),9,IP)])):f("v-if",!0)])])])]),n("div",MP,[n("div",VP,[n("span",{class:_(["status-dot","status-"+(o?.status=="error"?"error":o?.status=="ready"?"ready":o?.status=="expired"||o?.status=="removed"?o?.status:"progress")]),"aria-hidden":"true"},null,2),n("span",{class:"status-word",textContent:p(e.fmt?.statusLabel(o?.status))},null,8,qP)]),o?.anonymizeDate?(l(),d("div",$P,"anonymized "+p(e.fmt?.humanTime(o?.anonymizeDate)),1)):f("v-if",!0)]),n("div",LP,[t[28]||(t[28]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),t[29]||(t[29]=y()),n("span",{textContent:p(e.fmt?.number(o?.pageView))},null,8,UP)]),n("div",FP,[t[31]||(t[31]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),o?.status=="ready"&&(o?.options?.expirationMode==="never"||!o?.options?.expirationDate)?(l(),d("span",BP,"Never")):f("v-if",!0),o?.status=="ready"&&o?.options?.expirationMode!=="never"&&o?.options?.expirationDate?(l(),d("span",{key:1,textContent:p(e.fmt?.humanTime(o?.options?.expirationDate))},null,8,zP)):f("v-if",!0),o?.status=="expired"?(l(),d("span",HP,[t[30]||(t[30]=y("Expired",-1)),o?.options?.expirationDate?(l(),d("span",jP,p(e.fmt?.humanTime(o?.options?.expirationDate)),1)):f("v-if",!0)])):f("v-if",!0),o?.status!="ready"&&o?.status!="expired"?(l(),d("span",GP,"\u2014")):f("v-if",!0)]),n("div",WP,[n("div",KP,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions for "+o?.repoId},[...t[32]||(t[32]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,YP),n("div",XP,[n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+o?.repoId+"/")},[...t[33]||(t[33]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),y(" View ",-1)])],8,JP),n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+o?.repoId)},[...t[34]||(t[34]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),y(" Edit ",-1)])],8,QP)])])])],2))),128)),e.filteredRepositories?.length==0?(l(),d("div",ZP,[t[35]||(t[35]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),e.conference?.repositories?.length?f("v-if",!0):(l(),d("span",xP,"No repository has been submitted to this conference yet.")),e.conference?.repositories?.length?(l(),d("span",eI,"Nothing matches the current filters.")):f("v-if",!0),e.conference?.repositories?.length?(l(),d("div",tI,[n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[3]||(t[3]=o=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")])):f("v-if",!0)])):f("v-if",!0)])])])}var nI={class:"container page paper-page conferences-page"},sI={class:"row"},oI={class:"w-100"},iI={class:"search-wrap"},rI={type:"search",id:"search",class:"form-control","aria-label":"Search conferences",placeholder:"Search by name or ID\u2026",autocomplete:"off"},aI={class:"dashboard-filter-controls"},lI={class:"dropdown"},dI={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},uI={class:"filter-btn-value"},cI={class:"dropdown-menu","aria-labelledby":"dropdownSort"},pI={class:"form-check dropdown-item"},fI={class:"form-check-input",type:"radio",name:"sort",id:"sortName",value:"name"},hI={class:"form-check dropdown-item"},mI={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"conferenceID"},gI={class:"form-check dropdown-item"},vI={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},yI={class:"dropdown"},bI={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},wI={key:0,class:"filter-btn-value"},kI={key:1,class:"filter-btn-value"},CI={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},EI={class:"form-check dropdown-item"},SI=["id"],NI=["for"],RI={key:1,class:"dashboard-meta"},DI={class:"dashboard-count"},TI={key:0},AI={key:0},_I={key:1},OI={key:0,class:"filter-chip"},PI=["onClick","aria-label"],II={key:0,class:"conference-feedback",role:"alert"},MI={key:1,class:"conference-feedback",role:"status"},VI={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},qI={class:"cell-anon",role:"cell"},$I={class:"anon-text"},LI=["textContent","href"],UI={class:"anon-sub"},FI={class:"anon-source"},BI=["textContent"],zI={key:0},HI=["textContent","href"],jI={class:"cell-status",role:"cell"},GI={class:"status-line"},WI=["textContent"],KI={class:"cell-views num",role:"cell"},YI=["textContent"],XI={class:"cell-expires",role:"cell"},JI={key:0},QI={key:1,class:"empty-dash","aria-label":"No review window"},ZI={class:"cell-actions",role:"cell"},xI={class:"dropdown"},e5=["disabled","aria-label"],t5={class:"dropdown-menu dropdown-menu-right"},n5=["href"],s5=["href"],o5={key:0},i5=["onClick"],r5={key:0,class:"paper-table-empty"},a5={key:1},l5={class:"paper-table-empty-actions"};function Ec(e,t){let s=De("field"),i=De("form");return l(),d("div",nI,[n("div",sI,[n("div",oI,[t[10]||(t[10]=Ce('
My work \xA0/\xA0 Conferences

Your conferences

Group anonymizations by venue, give chairs a shared dashboard, and set one expiry for every submission.

New conference
',2)),e.conferences?.length>0?T((l(),d("form",{key:0,class:"w-100 dashboard-filter-row","aria-label":"Filter conferences","accept-charset":"UTF-8",onSubmit:t[0]||(t[0]=ce(o=>e.submitForm(o,()=>{o.preventDefault()}),["prevent"]))},[n("div",iI,[T(n("input",rI,null,512),[[s,{state:e.viewState,set:o=>{e.search=o},value:e.search,form:null,options:{}}]])]),n("div",aI,[n("div",lI,[n("button",dI,[t[3]||(t[3]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",uI,p({name:"Name",conferenceID:"ID","-status":"Status"}[e.orderBy]||"Custom"),1)]),n("div",cI,[t[7]||(t[7]=n("h6",{class:"dropdown-header"},"Order by",-1)),n("div",pI,[T(n("input",fI,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=n("label",{class:"form-check-label",for:"sortName"},"Name",-1))]),n("div",hI,[T(n("input",mI,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[5]||(t[5]=n("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),n("div",gI,[T(n("input",vI,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[6]||(t[6]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))])])]),n("div",yI,[n("button",bI,[t[8]||(t[8]=n("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(l(),d("span",wI,"All")):f("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?f("v-if",!0):(l(),d("span",kI,p((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),n("div",CI,[t[9]||(t[9]=n("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(W,null,ae(e.statusLabels,(o,r,a)=>(l(),d("div",EI,[T(n("input",{class:"form-check-input",type:"checkbox",id:"status-"+r},null,8,SI),[[s,{state:e.viewState,set:u=>{e.filters.status[r]=u},value:e.filters?.status[r],form:null,options:{}}]]),n("label",{class:"form-check-label",for:"status-"+r},p(o),9,NI)]))),256))])])])],32)),[[i,e.viewState]]):f("v-if",!0),e.conferences?.length>0?(l(),d("div",RI,[n("span",DI,[e.filteredConferences?.length===e.conferences?.length?(l(),d("span",TI,[y(p(e.fmt?.number(e.conferences?.length))+" conference",1),e.conferences?.length!==1?(l(),d("span",AI,"s")):f("v-if",!0)])):f("v-if",!0),e.filteredConferences?.length!==e.conferences?.length?(l(),d("span",_I,p(e.fmt?.number(e.filteredConferences?.length))+" of "+p(e.fmt?.number(e.conferences?.length))+" shown",1)):f("v-if",!0)]),(l(!0),d(W,null,ae(e.filters?.status,(o,r,a)=>(l(),d(W,null,[o===!1?(l(),d("span",OI,[y(" Hiding "+p(e.statusLabels[r])+" ",1),n("button",{type:"button",class:"filter-chip-close",onClick:u=>{e.filters.status[r]=!0},"aria-label":"Show "+e.statusLabels[r]+" again"},"\xD7",8,PI)])):f("v-if",!0)],64))),256))])):f("v-if",!0)]),e.error?(l(),d("div",II,[n("span",null,p(e.error),1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[1]||(t[1]=o=>e.loadConferences())},"Retry")])):f("v-if",!0),e.loading?(l(),d("div",MI,"Loading conferences\u2026")):f("v-if",!0),n("div",VI,[t[25]||(t[25]=n("div",{class:"paper-table-head",role:"row"},[n("div",{role:"columnheader"},"Conference"),n("div",{role:"columnheader"},"Status"),n("div",{role:"columnheader",class:"num"},"Repos"),n("div",{role:"columnheader"},"Review window"),n("div",{role:"columnheader"},[n("span",{class:"sr-only"},"Actions")])],-1)),(l(!0),d(W,null,ae(e.filteredConferences,(o,r)=>(l(),d("div",{class:_(["paper-table-row row-clickable",{"repo-inactive":o?.status=="expired"||o?.status=="removed"}]),role:"row",key:o?.conferenceID},[n("div",qI,[t[13]||(t[13]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Conference"},[n("use",{href:"#project-icon-conference"})],-1)),n("div",$I,[n("a",{class:"repo-name",textContent:p(o?.name),href:e.safeUrl("/conference/"+o?.conferenceID)},null,8,LI),n("div",UI,[n("span",FI,[t[12]||(t[12]=y("ID ",-1)),n("span",{class:"commit-hash",textContent:p(o?.conferenceID)},null,8,BI),o?.url?(l(),d("span",zI,[t[11]||(t[11]=y(" \xB7 ",-1)),n("a",{target:"_blank",rel:"noopener",textContent:p(e.fmt?.limitTo(o?.url,60)),href:e.safeUrl(o?.url)},null,8,HI)])):f("v-if",!0)])])])]),n("div",jI,[n("div",GI,[n("span",{class:_(["status-dot","status-"+o?.status]),"aria-hidden":"true"},null,2),n("span",{class:"status-word",textContent:p(e.fmt?.statusLabel(o?.status))},null,8,WI)])]),n("div",KI,[t[14]||(t[14]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),t[15]||(t[15]=y()),n("span",{textContent:p(e.fmt?.number(o?.nbRepositories||0))},null,8,YI)]),n("div",XI,[t[16]||(t[16]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),o?.startDate?(l(),d("span",JI,p(e.fmt?.date(o?.startDate,"mediumDate"))+" \u2013 "+p(e.fmt?.date(o?.endDate,"mediumDate")),1)):f("v-if",!0),o?.startDate?f("v-if",!0):(l(),d("span",QI,"\u2014"))]),n("div",ZI,[n("div",xI,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",disabled:o?.removing,"aria-label":"Actions for "+o?.name},[...t[17]||(t[17]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,e5),n("div",t5,[n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+o?.conferenceID+"/")},[...t[18]||(t[18]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),y(" View ",-1)])],8,n5),n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+o?.conferenceID+"/edit")},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),y(" Edit ",-1)])],8,s5),o?.status!="removed"?(l(),d("div",o5,[t[21]||(t[21]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:a=>e.removeConference(o)},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),y(" Remove ",-1)])],8,i5)])):f("v-if",!0)])])])],2))),128)),!e.loading&&!e.error&&e.filteredConferences?.length==0?(l(),d("div",r5,[t[24]||(t[24]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),e.conferences?.length==0?(l(),d(W,{key:0},[t[22]||(t[22]=n("strong",{class:"empty-title"},"No conferences yet",-1)),t[23]||(t[23]=n("span",null,"Create one to group submissions for a venue, share a dashboard with chairs, and set a single expiry date.",-1))],64)):f("v-if",!0),e.conferences?.length>0?(l(),d("span",a5,"Nothing matches the current filters.")):f("v-if",!0),n("div",l5,[f("v-if",!0),e.conferences?.length>0?(l(),d("button",{key:1,type:"button",class:"btn btn-outline-ink",onClick:t[2]||(t[2]=o=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")):f("v-if",!0)])])):f("v-if",!0)])])])}var d5={class:"container page dashboard-page paper-page"},u5={class:"row"},c5={class:"w-100"},p5={class:"dashboard-heading"},f5={class:"dashboard-heading-actions"},h5=["open"],m5=["aria-expanded"],g5=["stroke-dasharray"],v5={key:1,d:"M7 12c0-4 4-4 5 0s5 4 5 0-4-4-5 0-5 4-5 0",class:"quota-ring-unlimited"},y5={key:0,class:"quota-summary-value"},b5={key:0},w5={class:"quota-panel",id:"dashboard-usage"},k5={class:"quota-panel-heading"},C5={key:1,class:"quota-loading",role:"status"},E5={class:"search-wrap"},S5={type:"search",id:"search",class:"form-control","aria-label":"Search anonymizations",placeholder:"Search projects\u2026",autocomplete:"off"},N5=["aria-expanded"],R5={class:"btn-group",role:"group","aria-label":"Type"},D5=["aria-pressed"],T5=["aria-pressed"],A5=["aria-pressed"],_5=["aria-pressed"],O5={class:"dropdown"},P5={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},I5={class:"filter-btn-value"},M5={class:"sr-only"},V5={class:"dropdown-menu","aria-labelledby":"dropdownSort"},q5={class:"form-check dropdown-item"},$5=["onClick","checked","id"],L5=["for"],U5={class:"dropdown"},F5={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},B5={key:0,class:"filter-btn-value"},z5={key:1,class:"filter-btn-value"},H5={key:2,class:"filter-btn-value"},j5={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},G5={class:"form-check dropdown-item"},W5=["id"],K5=["for"],Y5={key:0,class:"dashboard-meta"},X5={key:0,class:"dashboard-view-tabs",role:"group","aria-label":"Project view"},J5=["aria-pressed"],Q5=["aria-pressed","aria-label"],Z5={class:"dashboard-count"},x5={key:0},eM={key:0},tM={key:1},nM={class:"dashboard-active-filters"},sM=["onClick","aria-label","title"],oM=["aria-busy"],iM={class:"paper-table-head",role:"row"},rM=["aria-sort"],aM=["aria-sort"],lM=["aria-sort"],dM=["aria-sort"],uM={key:0,class:"paper-table-row paper-table-skeleton",role:"row","aria-hidden":"true"},cM=["onClick"],pM={class:"cell-anon",role:"cell"},fM=["aria-label","title"],hM={class:"project-type-svg","aria-hidden":"true"},mM=["href"],gM={class:"anon-text"},vM={class:"anon-title"},yM=["title","textContent","href"],bM=["textContent"],wM={key:2,class:"type-badge type-coauthor",title:"You are a co-author on this anonymization"},kM={class:"anon-sub"},CM=["title"],EM=["title"],SM=["title"],NM=["textContent"],RM={class:"dashboard-row-meta",role:"presentation"},DM={class:"cell-status",role:"cell"},TM={key:1,class:"ui-icon status-ended-icon","aria-hidden":"true"},AM=["href"],_M=["textContent"],OM=["textContent","title"],PM=["title"],IM=["href"],MM=["onClick"],VM={key:4,class:"status-sub status-sub-date"},qM=["aria-label"],$M={class:"cell-expires",role:"cell"},LM={key:0,class:"expires-never"},UM=["textContent"],FM={key:2,class:"expires-past"},BM={key:3,class:"expires-past"},zM={key:4,class:"empty-dash","aria-label":"Not applicable"},HM={class:"cell-actions",role:"cell"},jM={key:0,class:"ended-row"},GM=["onClick"],WM=["onClick"],KM=["onClick","disabled","title","aria-label"],YM={class:"sr-only","aria-live":"polite"},XM={class:"project-type-svg","aria-hidden":"true"},JM=["href"],QM=["onClick","data-project-actions","aria-controls","aria-expanded"],ZM=["href","aria-label"],xM=["href","title","aria-label"],e8={key:5,class:"dropdown"},t8=["data-project-actions","aria-label"],n8={class:"dropdown-menu dropdown-menu-right"},s8=["onClick","aria-controls","aria-expanded"],o8=["href"],i8=["href"],r8=["onClick","disabled"],a8=["href"],l8=["onClick"],d8=["onClick"],u8=["onClick"],c8={key:5},p8=["onClick"],f8={key:1,class:"project-details-row",role:"row"},h8=["id","onKeydown"],m8={class:"project-details-heading"},g8=["onClick"],v8={class:"project-details-list"},y8={key:0},b8={key:1},w8={key:0},k8={key:2},C8={key:0,class:"project-progress-help"},E8=["href"],S8=["onSubmit"],N8=["for"],R8=["id"],D8={class:"project-name-controls"},T8=["id","aria-describedby","disabled"],A8=["disabled"],_8={key:0,class:"project-name-error",role:"alert"},O8={key:1,role:"status"},P8={key:0,class:"paper-table-empty"},I8={key:0},M8={key:1},V8={class:"paper-table-empty-actions"},q8={key:1,href:"/anonymize",class:"btn btn-ink"},$8={key:0,class:"dashboard-pagination"},L8={key:0,role:"alert"},U8=["disabled"];function Sc(e,t){let s=at("quota-usage"),i=De("field"),o=De("form");return l(),d("div",d5,[n("div",u5,[n("div",c5,[n("div",p5,[t[29]||(t[29]=n("div",null,[n("h1",{class:"paper-page-title"},"My work"),n("p",{class:"paper-page-lede"},"Manage your anonymous links.")],-1)),n("div",f5,[n("details",{class:"dashboard-quota",open:e.quotaExpanded,onToggle:t[1]||(t[1]=r=>e.quotaExpanded=r.target.open),onKeydown:t[2]||(t[2]=Tt(ce(r=>e.closeQuota(),["prevent","stop"]),["esc"]))},[n("summary",{"aria-controls":"dashboard-usage","aria-expanded":e.quotaExpanded,style:$e(e.quota&&!e.quota.repository.unlimited?{"--quota-pct":e.quota.repository.percent+"%"}:null)},[(l(),d("svg",{class:_(["quota-summary-ring",e.quota?"quota-"+e.quota.repository.level:""]),viewBox:"0 0 24 24","aria-hidden":"true"},[t[22]||(t[22]=n("circle",{class:"quota-ring-track",cx:"12",cy:"12",r:"9"},null,-1)),e.quota&&!e.quota.repository.unlimited?(l(),d("circle",{key:0,class:"quota-ring-fill",cx:"12",cy:"12",r:"9",pathLength:"100","stroke-dasharray":e.quota.repository.percent+" 100"},null,8,g5)):f("v-if",!0),e.quota?.repository.unlimited?(l(),d("path",v5)):f("v-if",!0)],2)),t[24]||(t[24]=n("span",{class:"quota-summary-label"},"Usage",-1)),e.quota?(l(),d("span",y5,[y(p(e.fmt.number(e.quota.repository.used)),1),e.quota.repository.unlimited?f("v-if",!0):(l(),d("span",b5," / "+p(e.fmt.number(e.quota.repository.total)),1)),t[23]||(t[23]=y(" repos",-1))])):f("v-if",!0),t[25]||(t[25]=n("svg",{class:"project-type-svg quota-summary-chevron","aria-hidden":"true"},[n("use",{href:"#project-icon-chevron"})],-1))],12,m5),n("div",w5,[n("div",k5,[t[27]||(t[27]=n("h2",null,"Account usage",-1)),n("button",{type:"button",class:"project-close","aria-label":"Close usage",onClick:t[0]||(t[0]=r=>e.closeQuota())},[...t[26]||(t[26]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])])]),e.quota?(l(),sn(s,{key:0,quota:e.quota,fmt:e.fmt},null,8,["quota","fmt"])):(l(),d("p",C5,"Loading usage\u2026"))])],40,h5),t[28]||(t[28]=Ce('New anonymization',1))])]),f(" Search + filters "),T((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter anonymizations","accept-charset":"UTF-8",onSubmit:t[9]||(t[9]=ce(r=>e.submitForm(r,()=>{r.preventDefault()}),["prevent"]))},[n("div",E5,[T(n("input",S5,null,512),[[i,{state:e.viewState,set:r=>{e.search=r},value:e.search,form:null,options:{}}]])]),n("button",{class:"btn dashboard-filters-toggle",type:"button","aria-expanded":e.filtersExpanded,"aria-controls":"dashboard-filter-controls",onClick:t[3]||(t[3]=r=>e.filtersExpanded=!e.filtersExpanded)},[...t[30]||(t[30]=[y("Filters",-1),n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-filter"})],-1)])],8,N5),n("div",{id:"dashboard-filter-controls",class:_(["dashboard-filter-controls",{expanded:e.filtersExpanded}])},[n("div",R5,[n("button",{type:"button",class:_(["btn",{"btn-primary":e.typeFilter==="all"}]),onClick:t[4]||(t[4]=r=>e.typeFilter="all"),"aria-pressed":e.typeFilter==="all"},"All",10,D5),n("button",{type:"button",class:_(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="repo"}]),title:"Repositories",onClick:t[5]||(t[5]=r=>e.typeFilter="repo"),"aria-pressed":e.typeFilter==="repo"},[...t[31]||(t[31]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),n("span",{class:"type-filter-label"},"Repos",-1)])],10,T5),n("button",{type:"button",class:_(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="pr"}]),title:"Pull requests",onClick:t[6]||(t[6]=r=>e.typeFilter="pr"),"aria-pressed":e.typeFilter==="pr"},[...t[32]||(t[32]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-pr"})],-1),n("span",{class:"type-filter-label"},"PRs",-1)])],10,A5),n("button",{type:"button",class:_(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="gist"}]),title:"Gists",onClick:t[7]||(t[7]=r=>e.typeFilter="gist"),"aria-pressed":e.typeFilter==="gist"},[...t[33]||(t[33]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-gist"})],-1),n("span",{class:"type-filter-label"},"Gists",-1)])],10,_5)]),n("div",{id:"dashboard-extra-filters",class:_(["dashboard-extra-filters",{expanded:e.filtersExpanded}])},[n("div",O5,[n("button",P5,[t[35]||(t[35]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",I5,p(e.sortLabel()),1),(l(),d("svg",{class:_(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[34]||(t[34]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)),n("span",M5,p(e.sortDesc()?"descending":"ascending"),1)]),n("div",V5,[t[36]||(t[36]=n("h6",{class:"dropdown-header"},"Order by",-1)),(l(!0),d(W,null,ae(e.sortFields,(r,a,u)=>(l(),d("div",q5,[n("input",{class:"form-check-input",type:"radio",name:"sort",onClick:c=>e.setSort(a,r.defaultDesc),checked:e.isSortedBy(a),id:"sort-"+u},null,8,$5),n("label",{class:"form-check-label",for:"sort-"+u},p(r?.label),9,L5)]))),256)),t[37]||(t[37]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item",onClick:t[8]||(t[8]=r=>e.toggleSortDirection())},p(e.sortDesc()?"Switch to ascending":"Switch to descending"),1)])]),n("div",U5,[n("button",F5,[t[38]||(t[38]=n("span",{class:"filter-btn-label"},"Status",-1)),e.hasHiddenStatus()?f("v-if",!0):(l(),d("span",B5,"All")),e.hiddenStatusCount()===1&&e.filters?.status?.removed===!1?(l(),d("span",z5,"Active")):f("v-if",!0),e.hasHiddenStatus()&&!(e.hiddenStatusCount()===1&&e.filters?.status?.removed===!1)?(l(),d("span",H5,p(e.hiddenStatusCount()===1?"Hiding "+(e.statusKeyLabels[Object.keys(e.filters?.status||{}).find(r=>e.filters.status[r]===!1)]||"").toLowerCase():e.hiddenStatusCount()+" hidden"),1)):f("v-if",!0)]),n("div",j5,[t[39]||(t[39]=n("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(W,null,ae(e.statusKeyLabels,(r,a,u)=>(l(),d("div",G5,[T(n("input",{class:"form-check-input",type:"checkbox",id:"status-"+a},null,8,W5),[[i,{state:e.viewState,set:c=>{e.filters.status[a]=c},value:e.filters?.status[a],form:null,options:{}}]]),n("label",{class:"form-check-label",for:"status-"+a},p(r),9,K5)]))),256))])])],2)],2)],32)),[[o,e.viewState]]),f(" Result count + active filter chips "),e.loading?f("v-if",!0):(l(),d("div",Y5,[e.attentionCount()>0||e.projectView==="attention"?(l(),d("div",X5,[n("button",{type:"button","aria-pressed":e.projectView==="all",onClick:t[10]||(t[10]=r=>e.setProjectView("all")),"aria-label":"All projects"},[...t[40]||(t[40]=[n("span",{class:"dashboard-view-long"},"All projects",-1),n("span",{class:"dashboard-view-short","aria-hidden":"true"},"All",-1)])],8,J5),e.attentionCount()>0||e.projectView==="attention"?(l(),d("button",{key:0,type:"button","aria-pressed":e.projectView==="attention",onClick:t[11]||(t[11]=r=>e.setProjectView("attention")),"aria-label":"Needs attention "+e.attentionCount()},[t[41]||(t[41]=n("span",{class:"dashboard-attention-prefix"},"Needs ",-1)),t[42]||(t[42]=n("span",null,"attention",-1)),t[43]||(t[43]=y()),n("span",{class:_(["attention-count",{"has-attention":e.attentionCount()>0}])},p(e.attentionCount()),3)],8,Q5)):f("v-if",!0)])):f("v-if",!0),n("span",Z5,[(e.dashboardTotals?.filtered??e.filteredItems?.length)===(e.dashboardTotals?.total??e.items?.length)?(l(),d("span",x5,[y(p(e.fmt?.number(e.dashboardTotals?.total??e.items?.length))+" project",1),(e.dashboardTotals?.total??e.items?.length)!==1?(l(),d("span",eM,"s")):f("v-if",!0)])):(l(),d("span",tM,[y(p(e.fmt?.number(e.dashboardTotals?.filtered??e.filteredItems?.length))+" shown \xB7 ",1),n("button",{type:"button",class:"btn-link-inline hidden-toggle",onClick:t[12]||(t[12]=r=>e.clearFilters())},"Show "+p(e.fmt?.number((e.dashboardTotals?.total??e.items?.length)-(e.dashboardTotals?.filtered??e.filteredItems?.length)))+" removed",1)]))]),n("div",nM,[(l(!0),d(W,null,ae(e.filters?.status,(r,a,u)=>(l(),d(W,null,[r===!1&&!(a==="removed"&&e.hiddenStatusCount()===1)?(l(),d("button",{key:0,type:"button",class:"filter-chip",onClick:c=>e.filters.status[a]=!0,"aria-label":"Show "+e.statusKeyLabels[a]+" again",title:"Show "+e.statusKeyLabels[a]+" again"},[y("Hiding "+p((e.statusKeyLabels[a]||"").toLowerCase()),1),t[44]||(t[44]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1))],8,sM)):f("v-if",!0)],64))),256)),e.typeFilter!=="all"?(l(),d("button",{key:0,type:"button",class:"filter-chip",onClick:t[13]||(t[13]=r=>e.typeFilter="all"),"aria-label":"Show all project types"},[y(p(e.typeFilter==="repo"?"Repositories":e.typeFilter==="pr"?"Pull requests":"Gists"),1),t[45]||(t[45]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1))])):f("v-if",!0),e.showClearFilters()?(l(),d("button",{key:1,type:"button",class:"btn-link-inline",onClick:t[14]||(t[14]=r=>e.clearFilters())},"Clear filters")):f("v-if",!0)])]))]),f(" Table "),n("div",{class:"paper-table paper-table-dashboard",role:"table","aria-label":"Anonymizations","aria-busy":e.loading},[n("div",iM,[n("div",{role:"columnheader","aria-sort":e.isSortedBy("_label")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:_(["sortable",{active:e.isSortedBy("_label")}]),onClick:t[15]||(t[15]=r=>e.setSort("_label"))},[t[47]||(t[47]=y(" Project ",-1)),e.isSortedBy("_label")?(l(),d("svg",{key:0,class:_(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[46]||(t[46]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)],8,rM),n("div",{role:"columnheader","aria-sort":e.isSortedBy("status")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:_(["sortable",{active:e.isSortedBy("status")}]),onClick:t[16]||(t[16]=r=>e.setSort("status"))},[t[49]||(t[49]=y(" Status ",-1)),e.isSortedBy("status")?(l(),d("svg",{key:0,class:_(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[48]||(t[48]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)],8,aM),n("div",{role:"columnheader",class:"num","aria-sort":e.isSortedBy("pageView")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:_(["sortable",{active:e.isSortedBy("pageView")}]),onClick:t[17]||(t[17]=r=>e.setSort("pageView"))},[t[51]||(t[51]=y(" Views ",-1)),e.isSortedBy("pageView")?(l(),d("svg",{key:0,class:_(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[50]||(t[50]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)],8,lM),n("div",{role:"columnheader","aria-sort":e.isSortedBy("options.expirationDate")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:_(["sortable",{active:e.isSortedBy("options.expirationDate")}]),onClick:t[18]||(t[18]=r=>e.setSort("options.expirationDate"))},[t[53]||(t[53]=y(" Expires ",-1)),e.isSortedBy("options.expirationDate")?(l(),d("svg",{key:0,class:_(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[52]||(t[52]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):f("v-if",!0)],2)],8,dM),t[54]||(t[54]=n("div",{role:"columnheader",class:"col-link"},[n("span",{class:"sr-only"},"Actions")],-1))]),f(" Loading skeleton: keeps the layout stable while the three lists load "),(l(),d(W,null,ae([1,2,3,4],(r,a)=>(l(),d(W,null,[e.loading?(l(),d("div",uM,[...t[55]||(t[55]=[n("div",{class:"cell-anon",role:"cell"},[n("span",{class:"skeleton skeleton-badge"}),n("div",{class:"anon-text"},[n("span",{class:"skeleton skeleton-line",style:{width:"38%"}}),n("span",{class:"skeleton skeleton-line skeleton-line-sm",style:{width:"56%"}})])],-1),n("div",{class:"cell-status",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"60%"}})],-1),n("div",{class:"cell-views num",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"40%"}})],-1),n("div",{class:"cell-expires",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"55%"}})],-1),n("div",{class:"cell-actions",role:"cell"},null,-1)])])):f("v-if",!0)],64))),64)),(l(!0),d(W,null,ae(e.filteredItems,(r,a)=>(l(),d(W,{key:r?._type+":"+(r?._id||a)},[e.loading?f("v-if",!0):(l(),d("div",{key:0,class:_(["paper-table-row",{"repo-inactive":r?._statusKey=="expired"||r?._statusKey=="removed","repo-error":r?.status=="error","row-clickable":!!r?._viewUrl}]),role:"row",onClick:u=>e.openItem(r,u)},[n("div",pM,[n("span",{class:"project-type-icon",role:"img","aria-label":r?._type==="repo"?"Repository":r?._type==="pr"?"Pull request":"Gist",title:r?._type==="repo"?"Repository":r?._type==="pr"?"Pull request":"Gist"},[(l(),d("svg",hM,[n("use",{href:"#project-type-"+r._type},null,8,mM)]))],8,fM),n("div",gM,[n("div",vM,[r?._viewUrl?(l(),d("a",{key:0,class:"repo-name",title:r._label,textContent:p(r?._label),href:e.safeUrl(r?._viewUrl)},null,8,yM)):f("v-if",!0),r?._viewUrl?f("v-if",!0):(l(),d("span",{key:1,class:"repo-name repo-name-static",textContent:p(r?._label)},null,8,bM)),r?.role==="coauthor"?(l(),d("span",wM,"Co-author")):f("v-if",!0)]),n("div",kM,[r?._id?(l(),d("code",{key:0,class:"anonymous-id",title:r._id},p(r._id),9,CM)):f("v-if",!0),r?._type==="repo"&&r?.source?.commit?(l(),d("span",{key:1,class:"commit-hash",title:r.source.commit},p(r.source.commit.substring(0,8)),9,EM)):f("v-if",!0),r?.conference?(l(),d("span",{key:2,class:"cell-conf conf-tag",title:r?.conference},[t[56]||(t[56]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),t[57]||(t[57]=y()),n("span",{textContent:p(r?.conference)},null,8,NM)],8,SM)):f("v-if",!0)])])]),n("div",RM,[n("div",DM,[n("div",{class:_(["status-line",{"status-ended":r?._statusKey=="expired"||r?._statusKey=="removed",["status-ended-"+r?._statusKey]:r?._statusKey=="expired"||r?._statusKey=="removed"}])},[r?._statusKey=="expired"||r?._statusKey=="removed"?f("v-if",!0):(l(),d("span",{key:0,class:_(["status-dot","status-"+r?._statusKey]),"aria-hidden":"true"},null,2)),r?._statusKey=="expired"||r?._statusKey=="removed"?(l(),d("svg",TM,[n("use",{href:r?._statusKey=="removed"?"#ui-icon-trash":"#ui-icon-hourglass"},null,8,AM)])):f("v-if",!0),n("span",{class:"status-word",textContent:p(e.fmt?.statusLabel(r?.status))},null,8,_M)],2),r?.status=="error"&&r?.statusMessage?(l(),d("div",{key:0,class:"status-sub status-sub-error",textContent:p(e.fmt?.statusMsg(r?.statusMessage)),title:r?.statusMessage},null,8,OM)):f("v-if",!0),r?._stale?(l(),d("div",{key:1,class:"status-sub status-sub-warn",title:"Last activity "+e.fmt?.humanTime(r?.anonymizeDate||r?.lastView)}," Last activity "+p(e.fmt?.humanTime(r?.anonymizeDate||r?.lastView))+" \xB7 may be stuck ",9,PM)):f("v-if",!0),r.status==="error"&&r._editUrl?(l(),d("a",{key:2,class:"project-attention-action",href:e.safeUrl(r._editUrl)},"Fix source",8,IM)):f("v-if",!0),r._stale||r._broken?(l(),d("button",{key:3,type:"button",class:"project-attention-action",onClick:ce(u=>e.showProjectDetails(r),["stop"])},p(r._broken?"Review details":"Check progress"),9,MM)):f("v-if",!0),r?.status!="error"&&!r?._stale&&r?.anonymizeDate?(l(),d("div",VM," anonymized "+p(e.fmt?.humanTime(r?.anonymizeDate)),1)):f("v-if",!0)]),n("div",{class:"cell-views num",role:"cell","aria-label":e.fmt.number(r.pageView)+" views"},[t[58]||(t[58]=n("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),n("span",null,p(e.fmt.number(r.pageView)),1)],8,qM),n("div",$M,[t[59]||(t[59]=n("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),r?._expiry?.kind==="never"?(l(),d("span",LM,"Never")):f("v-if",!0),r?._expiry?.kind==="date"?(l(),d("span",{key:1,textContent:p((e.fmt?.humanTime(r?._expiry?.date)||"").replace(/^on /,""))},null,8,UM)):f("v-if",!0),r?._expiry?.kind==="expired"&&r?._expiry?.date?(l(),d("span",FM,"Expired "+p(e.fmt?.humanTime(r?._expiry?.date)),1)):f("v-if",!0),r?._expiry?.kind==="expired"&&!r?._expiry?.date?(l(),d("span",BM,"Expired")):f("v-if",!0),r?._expiry?.kind==="none"?(l(),d("span",zM,"\u2014")):f("v-if",!0)])]),n("div",HM,[r?._statusKey=="expired"||r?._statusKey=="removed"?(l(),d("div",jM,[t[60]||(t[60]=n("span",{class:"ended-link",title:"Reviewers can no longer open this link"},"Link offline",-1)),r?.status=="removed"?(l(),d("button",{key:0,type:"button",class:"ended-action",onClick:ce(u=>e.refreshItem(r),["stop"])},"Enable",8,GM)):f("v-if",!0),r?.status=="expired"?(l(),d("button",{key:1,type:"button",class:"ended-action",onClick:ce(u=>e.extendItem(r),["stop"])},"Extend",8,WM)):f("v-if",!0)])):f("v-if",!0),r._viewUrl&&!(r?._statusKey=="expired"||r?._statusKey=="removed")?(l(),d("button",{key:1,type:"button",class:"copy-url",onClick:ce(u=>e.copyLink(r),["stop"]),disabled:!!e.copyingId,title:"Copy link: "+r._viewUrl,"aria-label":"Copy anonymous link for "+r._label},[n("span",YM,p(e.copyingId===r._type+":"+r._id?"Link copied":""),1),(l(),d("svg",XM,[n("use",{href:e.copyingId===r._type+":"+r._id?"#ui-icon-check":"#project-icon-copy"},null,8,JM)]))],8,KM)):f("v-if",!0),r._broken?(l(),d("button",{key:2,type:"button",class:"project-details-button",onClick:ce(u=>e.showProjectDetails(r),["stop"]),"data-project-actions":encodeURIComponent(r._type+":"+r._id),"aria-controls":e.projectDetailsId(r),"aria-expanded":e.selectedProject===r},"Details",8,QM)):f("v-if",!0),r._viewUrl&&!(r?._statusKey=="expired"||r?._statusKey=="removed")?(l(),d("a",{key:3,class:"row-edit row-open",href:e.safeUrl(r._viewUrl),target:"_blank",rel:"noopener",title:"Open what reviewers see","aria-label":"Open anonymous page for "+r._label},[...t[61]||(t[61]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])],8,ZM)):f("v-if",!0),r?._editUrl&&!r?._broken?(l(),d("a",{key:4,class:"row-edit",href:e.safeUrl(r._editUrl),title:"Edit "+r._name,"aria-label":"Edit "+r._name},[...t[62]||(t[62]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1)])],8,xM)):f("v-if",!0),r?._broken?f("v-if",!0):(l(),d("div",e8,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","data-project-actions":encodeURIComponent(r._type+":"+r._id),"aria-label":"Actions for "+r?._name},[...t[63]||(t[63]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,t8),n("div",n8,[n("button",{type:"button",class:"dropdown-item",onClick:u=>e.showProjectDetails(r),"aria-controls":e.projectDetailsId(r),"aria-expanded":e.selectedProject===r},"Project details & name",8,s8),n("a",{class:"dropdown-item",href:e.safeUrl(r?._viewUrl)}," View ",8,o8),r?._type==="repo"&&r?.options?.page&&r?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+r?.repoId+"/")}," View page ",8,i8)):f("v-if",!0),r?._viewUrl?(l(),d("button",{key:1,type:"button",class:"dropdown-item",onClick:u=>e.copyLink(r),disabled:!!e.copyingId}," Copy anonymous link ",8,r8)):f("v-if",!0),n("a",{class:"dropdown-item",href:e.safeUrl(r?._editUrl)}," Edit ",8,a8),r?.status=="ready"||r?.status=="error"?(l(),d("button",{key:2,type:"button",class:"dropdown-item",onClick:u=>e.refreshItem(r)}," Force update ",8,l8)):f("v-if",!0),r?.status=="removed"?(l(),d("button",{key:3,type:"button",class:"dropdown-item",onClick:u=>e.refreshItem(r)}," Enable ",8,d8)):f("v-if",!0),r?.status=="expired"?(l(),d("button",{key:4,type:"button",class:"dropdown-item",onClick:u=>e.extendItem(r)}," Extend 6 months ",8,u8)):f("v-if",!0),(r?.status=="ready"||r?.status=="expired"||r?.status=="error")&&r?.role!=="coauthor"?(l(),d("div",c8,[t[64]||(t[64]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:u=>e.removeItem(r)}," Remove ",8,p8)])):f("v-if",!0)])]))])],10,cM)),!e.loading&&e.selectedProject===r?(l(),d("div",f8,[n("div",{class:"project-details",role:"cell","aria-colspan":"5",id:e.projectDetailsId(r),tabindex:"-1",onKeydown:Tt(ce(u=>e.closeProjectDetails(r),["stop"]),["esc"])},[n("div",m8,[t[66]||(t[66]=n("h2",null,"Project details",-1)),n("button",{type:"button",class:"project-close",onClick:u=>e.closeProjectDetails(r),"aria-label":"Close project details"},[...t[65]||(t[65]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,g8)]),n("dl",v8,[n("div",null,[t[67]||(t[67]=n("dt",null,"Source",-1)),n("dd",null,p(r._source||"Not available"),1)]),n("div",null,[t[68]||(t[68]=n("dt",null,"Anonymous ID",-1)),n("dd",null,[n("code",null,p(r._id||"Missing identifier"),1)])]),r.source?.commit?(l(),d("div",y8,[t[69]||(t[69]=n("dt",null,"Commit",-1)),n("dd",null,[n("code",null,p(r.source.commit),1)])])):f("v-if",!0),r.conference?(l(),d("div",b8,[t[70]||(t[70]=n("dt",null,"Conference",-1)),n("dd",null,p(r.conference),1)])):f("v-if",!0),n("div",null,[t[71]||(t[71]=n("dt",null,"Status",-1)),n("dd",null,[y(p(e.fmt.statusLabel(r.status)),1),r.statusMessage?(l(),d("span",w8," \xB7 "+p(e.fmt.statusMsg(r.statusMessage)),1)):f("v-if",!0)])]),r.anonymizeDate?(l(),d("div",k8,[t[72]||(t[72]=n("dt",null,"Last anonymized",-1)),n("dd",null,p(e.fmt.humanTime(r.anonymizeDate)),1)])):f("v-if",!0)]),r._stale?(l(),d("p",C8,"This download has not progressed recently. Check the source access and selected branch before retrying.")):f("v-if",!0),r._editUrl?(l(),d("a",{key:1,class:"project-attention-action",href:e.safeUrl(r._editUrl)},p(e.needsAttention(r)?"Check source settings":"Edit anonymization settings"),9,E8)):f("v-if",!0),r._id?(l(),d("form",{key:2,class:"project-name-form",onSubmit:ce(u=>e.saveProjectName(r),["prevent"])},[n("label",{for:"project-name-"+r._type+"-"+r._id},"Project name",8,N8),n("p",{id:"project-name-help-"+r._type+"-"+r._id},"Only you see this name. Leave it blank to use the default.",8,R8),n("div",D8,[T(n("input",{class:"form-control",type:"text",id:"project-name-"+r._type+"-"+r._id,"aria-describedby":"project-name-help-"+r._type+"-"+r._id,maxlength:"100","onUpdate:modelValue":t[19]||(t[19]=u=>e.projectName=u),disabled:e.nameSaving},null,8,T8),[[dt,e.projectName]]),n("button",{class:"btn btn-ink",type:"submit",disabled:e.nameSaving},p(e.nameSaving?"Saving\u2026":"Save name"),9,A8)]),e.nameError?(l(),d("p",_8,p(e.nameError),1)):f("v-if",!0),e.nameMessage?(l(),d("p",O8,p(e.nameMessage),1)):f("v-if",!0)],40,S8)):f("v-if",!0)],40,h8)])):f("v-if",!0)],64))),128)),!e.loading&&e.filteredItems?.length==0?(l(),d("div",P8,[t[74]||(t[74]=n("svg",{class:"project-type-svg project-empty-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),e.hasProjects()?f("v-if",!0):(l(),d("span",I8,"You have no anonymizations yet.")),e.hasProjects()?(l(),d("span",M8,"Nothing matches the current filters.")):f("v-if",!0),n("div",V8,[e.hasActiveFilters()?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[20]||(t[20]=r=>e.clearFilters())},"Clear filters")):f("v-if",!0),e.hasProjects()?f("v-if",!0):(l(),d("a",q8,[...t[73]||(t[73]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})],-1),y(" New anonymization",-1)])]))])])):f("v-if",!0)],8,oM)]),e.dashboardCursor||e.dashboardError?(l(),d("div",$8,[e.dashboardError?(l(),d("p",L8,p(e.dashboardError),1)):f("v-if",!0),e.dashboardCursor?(l(),d("button",{key:1,type:"button",class:"btn",onClick:t[21]||(t[21]=r=>e.loadMoreProjects()),disabled:e.loadingMore},p(e.loadingMore?"Loading\u2026":"Load more projects"),9,U8)):f("v-if",!0)])):f("v-if",!0)])}var F8={class:"viewer-bar"},B8={class:"vb-left"},z8=["aria-label","title"],H8={class:"vb-right"},j8=["title"],G8={class:"vb-help"},W8=["aria-expanded"],K8={key:0,class:"acct-menu vb-help-menu",role:"menu"},Y8=["aria-label","title"],X8={class:"ui-icon","aria-hidden":"true"},J8=["href"],Q8={key:1,class:"acct"},Z8=["aria-label","aria-expanded"],x8=["src"],eV={key:1,class:"acct-initial"},tV={key:0,class:"acct-menu",role:"menu"},nV={class:"acct-menu-head"},sV={key:2,class:"vb-signin",href:"/signin",target:"_self"},oV=["aria-label"],iV={class:"ui-icon","aria-hidden":"true"},rV=["href"],aV=["textContent"],lV={class:"leftCol-head"},dV={class:"leftCol-search"},uV={class:"tree-search-box"},cV=["href"],pV={type:"text",class:"tree-search-input",placeholder:"Search files","aria-label":"Search files"},fV=["title","href"],hV={class:"leftCol-body"},mV={key:0,class:"paper-inline-warning",role:"alert"},gV={key:1,class:"paper-inline-warning",role:"alert"},vV={class:"explorer-main"},yV={class:"breadcrumb paths","aria-label":"Path"},bV={class:"breadcrumb-item breadcrumb-root"},wV=["href","title","textContent"],kV=["aria-current","textContent"],CV=["aria-label","title"],EV={class:"ui-icon","aria-hidden":"true"},SV=["href"],NV={class:"status-bar-actions"},RV=["href"],DV={class:"d-none d-md-inline"},TV={class:"ui-icon","aria-hidden":"true"},AV=["href"],_V={class:"d-none d-md-inline"},OV=["href"],PV={class:"explorer-content"};function Nc(e,t){let s=at("tree"),i=at("partial-view"),o=De("field");return l(),d("div",{class:_(["explorer-page",{"files-hidden":e.sidebarHidden}]),style:$e({"--sidebar-w":e.sidebarWidth+"px"})},[n("header",F8,[n("div",B8,[t[14]||(t[14]=n("a",{class:"vb-logo",href:"/"},[y("Anonymous "),n("em",null,"GitHub")],-1)),n("button",{type:"button",class:"vb-icon vb-sidebar","aria-label":e.sidebarHidden?"Show file tree":"Hide file tree",title:e.sidebarHidden?"Show file tree":"Hide file tree",onClick:t[0]||(t[0]=r=>e.sidebarHidden=!e.sidebarHidden)},[...t[13]||(t[13]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sidebar"})],-1)])],8,z8)]),n("div",H8,[e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(l(),d("span",{key:0,class:"vb-snapshot",title:(e.options?.expirationDate?"Available until "+e.fmt?.date(e.options.expirationDate)+". ":"")+(e.options?.anonymizedAt&&!e.options?.publishedAt?"Older repositories have no recorded publication date. The source commit date does not establish when files became available here.":(e.options?.sourceCommitDate?"Source commit ":e.options?.anonymizedAt?"Anonymized ":"Updated ")+e.fmt?.date(e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)+(e.options?.publishedAt?" \xB7 snapshot ready "+e.fmt?.date(e.options.publishedAt):""))},[t[15]||(t[15]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[16]||(t[16]=n("span",null,"Snapshot",-1)),n("span",null,p(e.fmt?.date(e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),1)],8,j8)):f("v-if",!0),t[24]||(t[24]=n("a",{class:"vb-support",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener",title:"Support Anonymous GitHub \u2014 help keep it free for researchers"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})]),n("span",null,"Support")],-1)),n("div",G8,[n("button",{type:"button",class:"vb-help-btn","aria-haspopup":"true","aria-expanded":e.helpOpen?"true":"false",onClick:t[1]||(t[1]=ce(r=>e.helpOpen=!e.helpOpen,["stop"]))},[...t[17]||(t[17]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})],-1),n("span",null,"Help",-1)])],8,W8),e.helpOpen?(l(),d("div",K8,[...t[18]||(t[18]=[n("a",{role:"menuitem",href:"/faq"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})]),n("span",null,[y("FAQ"),n("small",null,"How anonymization works")])],-1),n("a",{role:"menuitem",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",target:"_blank",rel:"noopener"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),n("span",null,[y("Report a bug"),n("small",null,"About this service, not the paper")])],-1)])])):f("v-if",!0)]),n("button",{type:"button",class:"vb-icon","aria-label":e.isDarkMode?"Switch to light mode":"Switch to dark mode",title:e.isDarkMode?"Light mode":"Dark mode",onClick:t[2]||(t[2]=r=>e.darkMode(!e.isDarkMode))},[(l(),d("svg",X8,[n("use",{href:e.isDarkMode?"#ui-icon-sun":"#ui-icon-moon"},null,8,J8)]))],8,Y8),e.user?(l(),d("div",Q8,[n("button",{type:"button",class:"acct-chip","aria-haspopup":"true","aria-label":"Account: "+e.user?.username,"aria-expanded":e.accountOpen?"true":"false",onClick:t[3]||(t[3]=ce(r=>e.accountOpen=!e.accountOpen,["stop"]))},[e.user?.photo?(l(),d("img",{key:0,src:e.safeUrl(e.user.photo),alt:"",width:"26",height:"26"},null,8,x8)):(l(),d("span",eV,p((e.user?.username||"?").charAt(0).toUpperCase()),1))],8,Z8),e.accountOpen?(l(),d("div",tV,[n("div",nV,[t[19]||(t[19]=y("Signed in as ",-1)),n("b",null,"@"+p(e.user?.username),1)]),t[20]||(t[20]=n("a",{role:"menuitem",href:"/dashboard"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-grid"})]),y("My work")],-1)),t[21]||(t[21]=n("a",{role:"menuitem",href:"/profile"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})]),y("Settings")],-1)),t[22]||(t[22]=n("a",{role:"menuitem",href:"/api/user/logout",target:"_self"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-logout"})]),y("Sign out")],-1))])):f("v-if",!0)])):(l(),d("a",sV,[...t[23]||(t[23]=[n("i",{class:"fab fa-github","aria-hidden":"true"},null,-1),y("Sign in",-1)])]))])]),T(n("button",{class:"sidebar-toggle",onClick:t[4]||(t[4]=r=>e.sidebarCollapsed=!e.sidebarCollapsed),"aria-label":e.sidebarCollapsed?"Show files":"Hide files"},[(l(),d("svg",iV,[n("use",{href:e.sidebarCollapsed?"#ui-icon-folder":"#project-icon-close"},null,8,rV)])),n("span",{textContent:p(e.sidebarCollapsed?"Files":"Close")},null,8,aV)],8,oV),[[J,e.files?.length]]),T(n("div",{class:_(["leftCol",{collapsed:e.sidebarCollapsed}])},[n("div",lV,[t[26]||(t[26]=n("span",{class:"leftCol-eyebrow"},"Files",-1)),n("button",{class:"leftCol-close","aria-label":"Close files",onClick:t[5]||(t[5]=r=>e.sidebarCollapsed=!0)},[...t[25]||(t[25]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])])]),n("div",dV,[n("div",uV,[(l(),d("svg",{class:_(["ui-icon tree-search-icon",{"fa-spin":e.fileSearchLoading}]),"aria-hidden":"true"},[n("use",{href:e.fileSearchLoading?"#ui-icon-spinner":"#ui-icon-search"},null,8,cV)],2)),T(n("input",pV,null,512),[[o,{state:e.viewState,set:r=>{e.fileSearchQuery=r},value:e.fileSearchQuery,form:null,options:{debounce:300},change:()=>{e.onFileSearchChange()}}]]),T(n("kbd",{class:"tree-search-kbd"},p(e.isMac?"\u2318":"Ctrl+")+"K",513),[[J,!e.fileSearchQuery]]),T(n("button",{class:"tree-search-clear","aria-label":"Clear search",onClick:t[6]||(t[6]=r=>{e.fileSearchQuery="",e.onFileSearchChange()})},"\xD7",512),[[J,e.fileSearchQuery]])]),e.options?.download?(l(),d("a",{key:0,target:"_self",class:"search-zip","aria-label":"Download repository as ZIP",title:"Download the repository (snapshot "+e.fmt?.date(e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)+") as ZIP",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),n("span",{class:"search-zip-label","aria-hidden":"true"},"ZIP",-1)])],8,fV)):f("v-if",!0)]),n("div",hV,[e.options?.truncatedFolders?.length>0?(l(),d("div",mV,[t[28]||(t[28]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),y(" "+p(e.fmt?.translate("WARNINGS.repo_truncated")),1)])):f("v-if",!0),e.options?.hasSubmodules?(l(),d("div",gV,[t[29]||(t[29]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),y(" "+p(e.fmt?.translate("WARNINGS.submodules_not_included")),1)])):f("v-if",!0),Ue(s,{class:"files",file:e.files,"search-query":e.fileSearchQuery,"search-results":e.fileSearchResults,page:e.viewState},null,8,["file","search-query","search-results","page"])])],2),[[J,e.files?.length]]),T(n("div",{class:"leftCol-resizer",role:"separator","aria-orientation":"vertical","aria-label":"Resize file tree",title:"Drag to resize",onPointerdown:t[7]||(t[7]=r=>e.startSidebarResize(r))},null,544),[[J,e.files?.length&&!e.sidebarHidden]]),T(n("div",{class:"leftCol-backdrop",onClick:t[8]||(t[8]=r=>e.sidebarCollapsed=!0)},null,512),[[J,e.files?.length&&!e.sidebarCollapsed]]),n("div",vV,[T(n("div",{class:_(["status-bar",{"is-redundant":["code","text","html"].includes(e.type)&&e.content!=null}])},[T(n("button",{type:"button",class:"btn btn-sm status-files-btn","aria-label":"Show files",title:"Show files",onClick:t[9]||(t[9]=r=>e.sidebarHidden?e.sidebarHidden=!1:e.sidebarCollapsed=!1)},[...t[30]||(t[30]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-folder"})],-1),n("span",null,"Files",-1)])],512),[[J,e.files?.length]]),n("ol",yV,[n("li",bV,[n("a",{href:e.safeUrl("/r/"+e.repoId+"/"),title:e.repoId,textContent:p(/^[0-9a-f]{8}-[0-9a-f]{4}-/i.test(e.repoId||"")?"repository":e.repoId)},null,8,wV)]),(l(!0),d(W,null,ae(e.paths,(r,a)=>(l(),d("li",{class:"breadcrumb-item","aria-current":a===e.paths.length-1?"page":null,textContent:p(r)},null,8,kV))),256))]),T(n("button",{type:"button",class:"btn btn-sm btn-icon-only btn-ghost copy-path-btn","aria-label":e.pathCopied?"Path copied":"Copy path",title:e.pathCopied?"Path copied":"Copy path",onClick:t[10]||(t[10]=r=>e.copyPath())},[(l(),d("svg",EV,[n("use",{href:e.pathCopied?"#ui-icon-check":"#project-icon-copy"},null,8,SV)]))],8,CV),[[J,e.filePath]]),n("div",NV,[e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[31]||(t[31]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),n("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,RV)):f("v-if",!0),e.type=="html-doc"&&!e.showSource?(l(),d("button",{key:1,class:_(["btn btn-sm",{"btn-active":e.allowScripts}]),"aria-label":"Allow this document to run JavaScript",title:"Scripts in this file are blocked by default. Enable them only if you trust the repository \u2014 the document stays isolated from your session either way.",onClick:t[11]||(t[11]=r=>e.toggleAllowScripts())},[t[32]||(t[32]=n("i",{class:"fab fa-js"},null,-1)),n("span",DV,p(e.allowScripts?"JS on":"JS off"),1)],2)):f("v-if",!0),e.type=="html-doc"?(l(),d("button",{key:2,class:"btn btn-sm","aria-label":"Toggle between the rendered document and its source",title:"Toggle between the rendered document and its source",onClick:t[12]||(t[12]=r=>e.toggleSource())},[(l(),d("svg",TV,[n("use",{href:e.showSource?"#project-icon-eye":"#ui-icon-code"},null,8,AV)])),n("span",_V,p(e.showSource?"Rendered":"Source"),1)])):f("v-if",!0),e.options?.hasWebsite?(l(),d("a",{key:3,target:"_self",class:"btn btn-sm","aria-label":"Website",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[33]||(t[33]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),n("span",{class:"d-none d-md-inline"}," Website",-1)])],8,OV)):f("v-if",!0)])],2),[[J,e.type!="error"||e.files?.length]]),n("div",PV,[Ue(i,{name:"partials/pageView.htm",state:e.viewState},null,8,["state"])])])],6)}var IV={class:"paper-faq"},MV={class:"paper-faq-body"},VV={class:"paper-faq-toc"};function Rc(e,t){let s=De("paper-scrollspy");return l(),d("div",IV,[t[3]||(t[3]=n("div",{class:"paper-faq-hero"},[n("div",{class:"paper-faq-eyebrow"},"Help"),n("h1",{class:"paper-faq-title"},[y("Mirrors, redaction, and "),n("em",null,"what reviewers see.")]),n("p",{class:"paper-faq-lede"}," How to set up an anonymous mirror, what it hides, and how long it stays online. ")],-1)),n("div",MV,[T((l(),d("aside",VV,[...t[0]||(t[0]=[Ce('
Contents
',2)])])),[[s]]),t[1]||(t[1]=n("section",{class:"faq-section","aria-label":"FAQs"},[n("div",null,[f(" General "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),y("General ")]),n("div",{class:"panel-group",id:"faq-general",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingWhatIs"},[n("h3",{class:"panel-title"},[n("a",{role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#whatIs","aria-expanded":"true","aria-controls":"whatIs"}," What is Anonymous GitHub? ")])]),n("div",{id:"whatIs",class:"panel-collapse collapse show",role:"tabpanel","aria-labelledby":"headingWhatIs"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub is an open-source tool with free hosting and optional paid plans that anonymizes GitHub repositories and pull requests for double-anonymous (double-blind) peer review. It replaces identifying information, such as the repository owner, organization name, and custom terms, so that reviewers cannot determine the identity of the authors through the code repository. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingHowWork"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#howWork","aria-expanded":"false","aria-controls":"howWork"}," How does Anonymous GitHub work? ")])]),n("div",{id:"howWork",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingHowWork"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub either downloads the complete repository and anonymizes the content, or proxies requests to GitHub on the fly. In both cases, the original and anonymized versions of files are cached on the server. The system automatically detects and replaces the repository owner, organization name, and repository name. You can also specify additional custom terms to anonymize using one-per-line regex patterns. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingScope"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#scope","aria-expanded":"false","aria-controls":"scope"}," What is the scope of anonymization? ")])]),n("div",{id:"scope",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingScope"},[n("div",{class:"panel-body p-3"},[n("p",null," In double-anonymous peer review, the boundary of anonymization is the paper plus its online appendix, not the entire internet. Searching for any part of the paper or the online appendix can be considered a deliberate attempt to break anonymity. Anonymous GitHub anonymizes the repository owner, organization, repository name, file and directory names, and file contents across all text-based file types. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCost"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#cost","aria-expanded":"false","aria-controls":"cost"}," How much does it cost? ")])]),n("div",{id:"cost",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCost"},[n("div",{class:"panel-body p-3"},[n("p",null," A free account includes 5 owned repositories and 2 GiB of source files. Optional paid plans offer more capacity, automatic refresh, and, with an author subscription, never-expiring repositories. Reviewers can read shared repositories without an account or payment. "),n("p",null,[y(" See "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),y(" for available plans and current prices. Offers depend on whether payments are enabled on this instance; the checkout shows the amount before you pay. Subscriptions help fund hosting, storage, backups, and continued maintenance. ")]),n("p",null,[y(" You can also support development through "),n("a",{href:"https://github.com/sponsors/tdurieux/",target:"_blank",rel:"noopener"},"GitHub Sponsors"),y(" or "),n("a",{href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener"},"Ko-fi"),y(". Donations are separate from subscriptions and do not automatically unlock paid features. ")])])])])]),f(" Plans and billing "),n("h4",{class:"faq-cat",id:"faq-plans-title"},"Plans and billing"),n("div",{class:"panel-group",id:"faq-plans",role:"tablist","aria-label":"Plans and billing","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingFreePlan"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#freePlan","aria-expanded":"false","aria-controls":"freePlan"},"What is included in a free account?")])]),n("div",{id:"freePlan",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingFreePlan"},[n("div",{class:"panel-body p-3"},[n("p",null,"The default free allowance is 5 repositories you own and 2 GiB of source files in total. Core anonymization and reviewer access remain free. You can manually refresh a repository within your allowance and choose a dated expiration up to one year ahead."),n("p",null,"Repositories shared with you as a coauthor do not use your own slots. Gists and pull requests are not included in these repository quotas. The usage shown in your account is the allowance available on this instance.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingAuthorPlans"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#authorPlans","aria-expanded":"false","aria-controls":"authorPlans"},"What do monthly and annual author subscriptions include?")])]),n("div",{id:"authorPlans",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingAuthorPlans"},[n("div",{class:"panel-body p-3"},[n("p",null,[y("Both include 20 owned repositories and 10 GiB of source files in total. They also allow automatic refresh when enabled in repository settings and let the owner choose "),n("strong",null,"Never expire"),y(".")]),n("p",null,[y("Monthly and annual plans offer the same features with different billing periods. They renew automatically until you cancel renewal. Current prices are shown in "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),y(".")]),n("p",null,"Paid plans do not change how anonymization works. File-size limits and other service safeguards still apply. Review your anonymized content before sharing it.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingReviewPass"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#reviewPass","aria-expanded":"false","aria-controls":"reviewPass"},"Can I pay for one repository without subscribing?")])]),n("div",{id:"reviewPass",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingReviewPass"},[n("div",{class:"panel-body p-3"},[n("p",null,"The author review pass covers one selected repository for 180 days, with a separate 2 GiB allowance and automatic refresh when enabled. It is a one-time purchase and does not renew automatically."),n("p",null,[y("Enter the anonymized ID of an existing repository you own in "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),y(". A pass does not unlock Never expire and does not override the repository's chosen expiration date.")])])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingConferencePlans"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#conferencePlans","aria-expanded":"false","aria-controls":"conferencePlans"},"Can a conference or lab pay for a group?")])]),n("div",{id:"conferencePlans",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingConferencePlans"},[n("div",{class:"panel-body p-3"},[n("p",null,"A conference review package provides a shared allowance of 100 repositories and 50 GiB for a review window of up to 180 days. The organizer pays once; the package does not renew automatically. A lab organizing a review can use this shared package too."),n("p",null,"The paid conference must be activated by payment before authors can submit under its Conference ID. Eligible repositories use the conference allowance before an author's personal allowance, so authors do not each need a subscription for that capacity."),n("p",null,"The package has a fixed review window. Never expire still requires the repository owner's monthly or annual author subscription. See the available offer when creating a conference.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPaidCoauthors"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#paidCoauthors","aria-expanded":"false","aria-controls":"paidCoauthors"},"Does every coauthor need to pay?")])]),n("div",{id:"paidCoauthors",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPaidCoauthors"},[n("div",{class:"panel-body p-3"},[n("p",null,"No. Coauthors can collaborate without buying a subscription. A shared repository uses its owner's allowance, unless a repository pass or paid conference covers it. It does not consume each coauthor's personal allowance."),n("p",null,"A coauthor's subscription does not increase the owner's allowance. If the owner's available capacity is exhausted, a coauthor's refresh or edit may also be blocked. Reviewers never need a paid account.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCapacity"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#capacity","aria-expanded":"false","aria-controls":"capacity"},"What counts toward my allowance, and what happens at the limit?")])]),n("div",{id:"capacity",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCapacity"},[n("div",{class:"panel-body p-3"},[n("p",null,"The repository limit counts work you own. Storage counts the source-file sizes reserved for those repositories, not just files a reviewer opens. Archived or failed repositories can still reserve capacity, and a refresh does not automatically reduce a previous storage reservation."),n("p",null,"At the repository limit you cannot add another repository to that allowance. An edit or refresh must also fit the available storage. Remove work you no longer need, choose a paid plan, or use an eligible conference allowance."),n("p",null,"Removing a repository releases its reservation when capacity is next checked. Expired repositories may continue to reserve capacity until cleanup. Reaching a limit does not itself delete existing review links.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingNeverExpire"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#neverExpire","aria-expanded":"false","aria-controls":"neverExpire"},"What happens to Never expire repositories if I stop subscribing?")])]),n("div",{id:"neverExpire",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingNeverExpire"},[n("div",{class:"panel-body p-3"},[n("p",null,[y("Never expire is available to monthly and annual author subscribers. If paid access ends, these repositories remain available for a "),n("strong",null,"90-day grace period"),y(", then expire and their hosted content is removed.")]),n("p",null,"Renewing during the grace period keeps them active. After expiration, you must renew and explicitly reactivate the repository; restoring content also requires access to its GitHub source. A repository does not become public on GitHub when it expires."),n("p",null,"Existing never-expiring repositories created before this billing policy retain their settings. Never expire is not a guarantee of perpetual service availability.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCancelPlan"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#cancelPlan","aria-expanded":"false","aria-controls":"cancelPlan"},"How do I cancel, and what happens after paid access ends?")])]),n("div",{id:"cancelPlan",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCancelPlan"},[n("div",{class:"panel-body p-3"},[n("p",null,[y("Open "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),y(" and choose "),n("strong",null,"Manage billing and invoices"),y(" to manage renewal. Cancelling renewal keeps subscription benefits until the end of the paid period.")]),n("p",null,"After paid access ends, repositories fall back to another eligible allowance or the free allowance. Automatic refresh pauses on the free allowance; manual refresh remains available within its limits. Existing review links keep their configured expiration dates, except paid Never expire repositories, which follow the 90-day grace period described above."),n("p",null,"A repository pass or conference package ends after its paid window without automatic renewal.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPaymentHandling"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#paymentHandling","aria-expanded":"false","aria-controls":"paymentHandling"},"How are payments handled?")])]),n("div",{id:"paymentHandling",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPaymentHandling"},[n("div",{class:"panel-body p-3"},[n("p",null,[y("Stripe processes checkout and billing management. Anonymous GitHub does not store your card details. You can access billing management and invoices from "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),y(".")]),n("p",null,[y("Paid access is activated after payment is confirmed. If checkout succeeds but your account has not updated, choose "),n("strong",null,"Refresh payment status"),y(" before trying another purchase. If paid plans are unavailable on this instance, no checkout is offered.")])])])])]),f(" Features "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#project-icon-filter"})]),y("Features ")]),n("div",{class:"panel-group",id:"faq-features",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingFormats"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#formats","aria-expanded":"false","aria-controls":"formats"}," Which file formats are supported? ")])]),n("div",{id:"formats",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingFormats"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub can display and render a wide variety of file types: "),n("ul",null,[n("li",null,[n("strong",null,"Text and source code"),y(": displayed with syntax highlighting")]),n("li",null,[n("strong",null,"Markdown"),y(": rendered as formatted HTML")]),n("li",null,[n("strong",null,"Images"),y(" (PNG, JPG, SVG, etc.): displayed inline")]),n("li",null,[n("strong",null,"PDFs"),y(": rendered directly in the browser")]),n("li",null,[n("strong",null,"Jupyter Notebooks"),y(": rendered with code cells and outputs")])]),n("p",null," Only text-based files are anonymized. Anonymous GitHub analyzes the content of each file to determine whether it is textual or binary. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPR"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#pullRequests","aria-expanded":"false","aria-controls":"pullRequests"}," Can I anonymize pull requests? ")])]),n("div",{id:"pullRequests",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPR"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. In addition to full repositories, Anonymous GitHub supports anonymizing individual pull requests. Simply paste the URL of a GitHub pull request when creating a new anonymized repository, and the system will automatically detect that it is a pull request and anonymize it accordingly. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingConference"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#conference","aria-expanded":"false","aria-controls":"conference"}," What is the Conference ID feature? ")])]),n("div",{id:"conference",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingConference"},[n("div",{class:"panel-body p-3"},[n("p",null," When creating an anonymized repository, you can associate it with a Conference ID. This allows conferences to define default anonymization settings (such as expiration dates) that are automatically applied to repositories submitted under that conference. If your conference provides a Conference ID, enter it during the anonymization setup. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingExpiration"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#expiration","aria-expanded":"false","aria-controls":"expiration"}," What happens when an anonymized repository expires? ")])]),n("div",{id:"expiration",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingExpiration"},[n("div",{class:"panel-body p-3"},[n("p",null," You can configure one of three expiration strategies when creating your anonymized repository: "),n("ul",null,[n("li",null,[n("strong",null,"Never expire"),y(": with a monthly or annual author subscription, no scheduled expiration while subscribed. A 90-day grace period applies after paid access ends. See "),n("a",{href:"#neverExpire"},"the subscription expiration policy"),y(".")]),n("li",null,[n("strong",null,"Redirect to GitHub"),y(": after expiration, visitors are redirected to the original GitHub repository.")]),n("li",null,[n("strong",null,"Remove content"),y(": after expiration, the anonymized content is deleted from the server.")])])])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingDownload"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#download","aria-expanded":"false","aria-controls":"download"}," Can I download an anonymized repository? ")])]),n("div",{id:"download",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDownload"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. Anonymized repositories can be downloaded as a ZIP file. This is useful if reviewers want to build or test the code locally. The downloaded archive contains the fully anonymized version of the repository. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingUpdates"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#updates","aria-expanded":"false","aria-controls":"updates"}," Are updates to the original repository reflected in the anonymized version? ")])]),n("div",{id:"updates",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingUpdates"},[n("div",{class:"panel-body p-3"},[n("p",null," You can refresh the anonymized repository from GitHub without creating a new share link. Free accounts can request a manual refresh within their allowance. Automatic refresh requires an eligible paid allowance and must be enabled in repository settings. It pauses when the repository falls back to the free allowance. "),n("p",null," After changing files or contributor names, review your anonymization terms before sharing the updated content. If GitHub access is revoked or the source is deleted, the service cannot fetch updates. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCLI"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#cli","aria-expanded":"false","aria-controls":"cli"}," Is there a command-line tool? ")])]),n("div",{id:"cli",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCLI"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. Anonymous GitHub provides a CLI tool that lets you anonymize repositories locally, generating an anonymized ZIP file on your machine. Install it via npm: "),n("pre",{style:{"background-color":"var(--hover-bg-color)",padding:"12px","border-radius":"4px","margin-top":"8px",color:"var(--color)"}},[n("code",null,`npm install -g @tdurieux/anonymous_github +anonymous_github`)])])])])]),f(" Limitations "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})]),y("Limitations ")]),n("div",{class:"panel-group",id:"faq-limitations",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingLimitation"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-limitations",href:"#limitation","aria-expanded":"false","aria-controls":"limitation"}," What are the limitations of Anonymous GitHub? ")])]),n("div",{id:"limitation",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingLimitation"},[n("div",{class:"panel-body p-3"},[n("ul",null,[n("li",null," Anonymous GitHub only anonymizes text-based files. Binary files (compiled executables, archives, etc.) are served as-is without anonymization. "),n("li",null," Files larger than 8 MB are not supported. "),n("li",null," Static site generators (such as Jekyll) used with GitHub Pages are not fully supported, although Markdown files are converted to HTML. "),n("li",null," The anonymization of terms within source code may change the behavior of the program (e.g., if a replaced term appears in a string literal or identifier). ")])])])])]),f(" Privacy & Security "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})]),y("Privacy & Security ")]),n("div",{class:"panel-group",id:"faq-privacy",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingData"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#data","aria-expanded":"false","aria-controls":"data"}," How is my data handled? ")])]),n("div",{id:"data",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingData"},[n("div",{class:"panel-body p-3"},[n("p",null," Repository data is used to provide the anonymization service. If you purchase a plan, Stripe processes payment and billing information. When a repository is removed or expires, only its configuration is retained. This makes it easy to restore the repository if needed and ensures that no future repository reuses the same ID. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPermissions"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#permissions","aria-expanded":"false","aria-controls":"permissions"}," Why does GitHub say Anonymous GitHub asks for write access? ")])]),n("div",{id:"permissions",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPermissions"},[n("div",{class:"panel-body p-3"},[n("p",null,[y("The GitHub App has read-only access to the repositories you choose. You can change repository access on your "),n("a",{href:"/connections"},"GitHub connections"),y(" page.")]),n("p",null,"Legacy GitHub OAuth includes write access to private repositories because GitHub's OAuth scopes do not offer a read-only option for them. Existing OAuth anonymizations and gists can still use this connection."),n("p",null,"Anonymous GitHub reads repository content. It never pushes, modifies, or deletes files on GitHub.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingViewer"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#viewer","aria-expanded":"false","aria-controls":"viewer"}," Can repository owners see who viewed their anonymized repository? ")])]),n("div",{id:"viewer",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingViewer"},[n("div",{class:"panel-body p-3"},[n("p",null," No. Only the total number of views is tracked as an incremental counter. It is not possible for the repository owner or for Anonymous GitHub to identify individual viewers. Reviewer anonymity is fully preserved. ")])])])]),f(" Self-Hosting "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#project-icon-storage"})]),y("Self-Hosting ")]),n("div",{class:"panel-group",id:"faq-hosting",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingDeploy"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-hosting",href:"#deploy","aria-expanded":"false","aria-controls":"deploy"}," Can I deploy my own instance? ")])]),n("div",{id:"deploy",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDeploy"},[n("div",{class:"panel-body p-3"},[n("p",null,[y(" Yes. Anonymous GitHub is fully open source (GPL-3.0) and supports Docker-based deployment. Billing is optional and disabled by default for self-hosted instances; paid hosted plans are not required to run your own server. You will need to configure a GitHub OAuth app and provide a GitHub token. Detailed setup instructions are available on the "),n("a",{href:"https://github.com/tdurieux/anonymous_github/",target:"_blank"},"GitHub repository"),y(". ")]),n("p",null," The basic steps are: "),n("ol",null,[n("li",null,"Clone the repository and install dependencies"),n("li",null,[y("Create a "),n("code",null,".env"),y(" file with your GitHub token, OAuth client ID, and client secret")]),n("li",null,[y("Run "),n("code",null,"docker-compose up -d")])])])])])]),n("div",{class:"text-center mt-5 mb-5 p-4",style:{"background-color":"var(--hover-bg-color)","border-radius":"8px"}},[n("p",{class:"mb-2",style:{"font-size":"1.1rem"}}," Still have questions? "),n("p",{class:"text-muted mb-0"},[y(" Open an issue on the "),n("a",{href:"https://github.com/tdurieux/anonymous_github/issues",target:"_blank"},"GitHub repository"),y(" and we'll be happy to help. ")])])])],-1)),t[2]||(t[2]=n("aside",{class:"paper-faq-help","aria-label":"More help"},[n("div",{class:"paper-faq-help-card"},[n("strong",null,"Still stuck?"),n("p",null,"Open an issue on GitHub about the service. For a paper's content, contact the conference instead."),n("a",{class:"btn btn-outline-ink btn-sm",target:"_blank",rel:"noopener",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml"},"Open an issue")])],-1))])])}var qV={class:"pr-page"},$V={class:"container paper-page pr-page-inner"},LV={class:"pr-header"},UV={class:"pr-title-row"},FV={class:"paper-page-title pr-title"},BV=["textContent"],zV={key:1,class:"text-muted"},HV=["href"],jV={class:"pr-header-meta"},GV={key:0,class:"pr-meta-item"},WV=["textContent"],KV={key:1,class:"pr-meta-item"},YV=["textContent"],XV={key:2,class:"pr-meta-item"},JV=["textContent"],QV={key:0,class:"paper-tabs",role:"tablist"},ZV=["aria-selected","tabindex"],xV=["textContent"],e6=["aria-selected","tabindex"],t6=["textContent"],n6={class:"paper-tab-content"},s6={key:0,role:"tabpanel",id:"gist-files-panel","aria-labelledby":"gist-files-tab"},o6={class:"pr-comments"},i6={class:"pr-comment"},r6={class:"pr-comment-head"},a6=["textContent"],l6={key:0,class:"pr-comment-date"},d6={key:0,class:"paper-table-empty"},u6={key:1,role:"tabpanel",id:"gist-comments-panel","aria-labelledby":"gist-comments-tab"},c6={class:"pr-comments"},p6={class:"pr-comment"},f6={class:"pr-comment-head"},h6={key:0,class:"pr-comment-author"},m6=["textContent"],g6=["textContent"],v6={key:0,class:"pr-comment-body"},y6={key:0,class:"paper-table-empty"};function Dc(e,t){let s=at("gist-file"),i=at("markdown");return l(),d("div",qV,[n("div",$V,[t[17]||(t[17]=n("div",{class:"paper-crumbs"},[n("a",{href:"/dashboard"},"Reviewer"),y(" \xA0/\xA0 "),n("span",{class:"here"},"Gist")],-1)),n("header",LV,[n("div",UV,[n("h1",FV,[e.details?.description?(l(),d("span",{key:0,textContent:p(e.details?.description)},null,8,BV)):f("v-if",!0),e.details?.description?f("v-if",!0):(l(),d("span",zV,"Untitled gist"))]),e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/gist-anonymize/"+e.gistId)},[...t[4]||(t[4]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),n("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,HV)):f("v-if",!0)]),n("div",jV,[n("span",{class:_(["paper-pill",{good:e.details?.isPublic,warn:!e.details?.isPublic}])},p(e.details?.isPublic?"Public":"Secret"),3),e.details?.ownerLogin?(l(),d("span",GV,[t[5]||(t[5]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[6]||(t[6]=y(" @",-1)),n("span",{textContent:p(e.details?.ownerLogin)},null,8,WV)])):f("v-if",!0),e.details?.updatedDate?(l(),d("span",KV,[t[7]||(t[7]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[8]||(t[8]=y()),n("span",{textContent:p(e.fmt?.date(e.details?.updatedDate))},null,8,YV)])):f("v-if",!0),e.details?.anonymizeDate?(l(),d("span",XV,[t[9]||(t[9]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),t[10]||(t[10]=y(" Anonymized ",-1)),n("span",{textContent:p(e.fmt?.date(e.details?.anonymizeDate))},null,8,JV)])):f("v-if",!0)])]),e.details?.files&&e.details?.files?.length||e.details?.comments&&e.details?.comments?.length?(l(),d("nav",QV,[e.details?.files?(l(),d("button",{key:0,class:_(["paper-tab",{active:e.tabState?.active=="files"}]),type:"button",role:"tab",id:"gist-files-tab","aria-selected":e.tabState?.active==="files","aria-controls":"gist-files-panel",tabindex:e.tabState?.active==="files"?0:-1,onKeydown:t[0]||(t[0]=o=>e.previewTabKeydown(o)),onClick:t[1]||(t[1]=o=>e.tabState.active="files")},[t[11]||(t[11]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-gist"})],-1)),n("span",{textContent:p(e.fmt.plural(e.details?.files?.length,{0:"No files",one:"1 file",other:"{} files"}))},null,8,xV)],42,ZV)):f("v-if",!0),e.details?.comments?(l(),d("button",{key:1,class:_(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",id:"gist-comments-tab","aria-selected":e.tabState?.active==="comments","aria-controls":"gist-comments-panel",tabindex:e.tabState?.active==="comments"?0:-1,onKeydown:t[2]||(t[2]=o=>e.previewTabKeydown(o)),onClick:t[3]||(t[3]=o=>e.tabState.active="comments")},[t[12]||(t[12]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1)),n("span",{textContent:p(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,t6)],42,e6)):f("v-if",!0)])):f("v-if",!0),n("div",n6,[e.details?.files&&e.tabState?.active=="files"?(l(),d("div",s6,[n("ul",o6,[(l(!0),d(W,null,ae(e.details?.files,(o,r)=>(l(),d("li",i6,[n("div",r6,[n("strong",{textContent:p(o?.filename)},null,8,a6),o?.language?(l(),d("span",l6,p(o?.language),1)):f("v-if",!0)]),Ue(s,{file:o},null,8,["file"])]))),256)),e.details?.files?.length?f("v-if",!0):(l(),d("li",d6,[...t[13]||(t[13]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-file"})],-1),n("span",null,"No files in this gist.",-1)])]))])])):f("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(l(),d("div",u6,[n("ul",c6,[(l(!0),d(W,null,ae(e.details?.comments,(o,r)=>(l(),d("li",p6,[n("div",f6,[o?.author?(l(),d("span",h6,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[15]||(t[15]=y(" @",-1)),n("span",{textContent:p(o?.author)},null,8,m6)])):f("v-if",!0),o?.updatedDate?(l(),d("span",{key:1,class:"pr-comment-date",textContent:p(e.fmt?.date(o?.updatedDate))},null,8,g6)):f("v-if",!0)]),o?.body?(l(),d("div",v6,[Ue(i,{content:o?.body},null,8,["content"])])):f("v-if",!0)]))),256)),e.details?.comments?.length?f("v-if",!0):(l(),d("li",y6,[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1),n("span",null,"No comments on this gist.",-1)])]))])])):f("v-if",!0)])])])}var b6={key:0,class:"nav-support",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener",title:"Donate on Ko-fi to help cover hosting costs","aria-label":"Donate on Ko-fi to help cover hosting costs"},w6={key:1,class:"nav-heart-m",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener","aria-label":"Support Anonymous GitHub",title:"Support Anonymous GitHub"},k6=["aria-label","title"],C6={class:"ui-icon","aria-hidden":"true"},E6=["href"],S6={key:3,class:"nav-signin-m",href:"/signin",target:"_self","aria-label":"Sign in with GitHub"},N6={class:"collapse navbar-collapse",id:"navbarSupportedContent"},R6={class:"navbar-nav mr-auto smooth-scroll"},D6={key:0,class:"nav-item nav-home-item"},T6={key:1,class:"nav-item"},A6={key:2,class:"nav-item"},_6={key:3,class:"nav-item"},O6={class:"nav-item"},P6={key:4,class:"nav-item"},I6={class:"navbar-nav"},M6={key:0,class:"nav-item d-lg-none"},V6={key:1,class:"nav-item"},q6={key:2,class:"nav-item"},$6={key:3,class:"nav-item nav-signin-item"},L6={key:4,class:"nav-item"},U6={key:5,class:"nav-item dropdown user-chip-wrap"},F6={class:"nav-link user-chip dropdown-toggle",href:"#",id:"navbarDropdownMenuLink",role:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},B6=["src"],z6={class:"user-chip-name"},H6={class:"dropdown-menu dropdown-menu-right user-menu","aria-labelledby":"navbarDropdownMenuLink"},j6={class:"dropdown-header"},G6={key:0,class:"dropdown-item um-extra",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener"},W6=["innerHTML"],K6=["disabled"],Y6={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},X6={class:"email-prompt-actions"},J6=["disabled"],Q6=["disabled"],Z6=["disabled"];function Tc(e,t){return l(),d(W,null,[n("nav",{class:_(["navbar navbar-expand-lg",{"navbar-dark":e.isDarkMode}])},[t[27]||(t[27]=n("a",{class:"navbar-brand",href:"/"},[y("Anonymous "),n("em",null,"GitHub")],-1)),e.headerShowSupport?(l(),d("a",b6,[...t[9]||(t[9]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})],-1),n("span",{class:"nav-support-label"},"Support",-1)])])):f("v-if",!0),/^\/(r|w|pr|gist)\//.test(e.path||"")?f("v-if",!0):(l(),d("a",w6,[...t[10]||(t[10]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})],-1)])])),/^\/(r|w|pr|gist)\//.test(e.path||"")?f("v-if",!0):(l(),d("button",{key:2,type:"button",class:"nav-theme-m","aria-label":e.isDarkMode?"Switch to light mode":"Switch to dark mode",title:e.isDarkMode?"Switch to light mode":"Switch to dark mode",onClick:t[0]||(t[0]=s=>e.darkMode(!e.isDarkMode))},[(l(),d("svg",C6,[n("use",{href:e.isDarkMode?"#ui-icon-sun":"#ui-icon-moon"},null,8,E6)]))],8,k6)),!e.user&&!/^\/(r|w|pr|gist)\//.test(e.path||"")?(l(),d("a",S6,[...t[11]||(t[11]=[n("i",{class:"fab fa-github","aria-hidden":"true"},null,-1),y("Sign in",-1)])])):f("v-if",!0),t[28]||(t[28]=n("button",{class:"navbar-toggler",type:"button","data-toggle":"collapse","data-target":"#navbarSupportedContent","aria-controls":"navbarSupportedContent","aria-expanded":"false","aria-label":"Toggle navigation"},[n("span",{class:"navbar-toggler-icon"})],-1)),n("div",N6,[n("ul",R6,[e.user?f("v-if",!0):(l(),d("li",D6,[n("a",{class:_(["nav-link",{active:e.path=="/"}]),href:"/"},[...t[12]||(t[12]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-home"})],-1),y(" Home ",-1)])],2)])),e.user?(l(),d("li",T6,[n("a",{class:_(["nav-link",{active:e.path=="/dashboard"}]),href:"/dashboard"},[...t[13]||(t[13]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-grid"})],-1),y(" My work ",-1)])],2)])):f("v-if",!0),e.user?(l(),d("li",A6,[n("a",{class:_(["nav-link",{active:e.path=="/anonymize"||e.path=="/pull-request-anonymize"}]),href:"/anonymize"},[...t[14]||(t[14]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),y(" Anonymize ",-1)])],2)])):f("v-if",!0),e.user?(l(),d("li",_6,[n("a",{class:_(["nav-link",{active:e.path=="/conferences"||e.path?.startsWith("/conference/")}]),href:"/conferences"},[...t[15]||(t[15]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1),y(" Conferences ",-1)])],2)])):f("v-if",!0),n("li",O6,[n("a",{class:_(["nav-link",{active:e.path=="/faq"}]),href:"/faq"},[...t[16]||(t[16]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})],-1),y("FAQ",-1)])],2)]),e.user&&e.user?.isAdmin?(l(),d("li",P6,[n("a",{class:_(["nav-link",{active:e.path?.indexOf("/admin")===0}]),href:"/admin/"},[...t[17]||(t[17]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-user-shield"})],-1),y(" Admin ",-1)])],2)])):f("v-if",!0)]),n("ul",I6,[e.user||!e.isReviewerRoute?(l(),d("li",M6,[...t[18]||(t[18]=[n("a",{class:"nav-link nav-icon",target:"_blank",href:"https://github.com/tdurieux/anonymous_github/",title:"Anonymous GitHub source code","aria-label":"Anonymous GitHub source code on GitHub",rel:"noopener","data-offset":"30"},[n("i",{class:"fab fa-github","aria-hidden":"true"})],-1)])])):f("v-if",!0),f(` "Report a bug" is about this service. Reviewers who land on an anonymized repository often think it is about the paper, so the - label names the service and the tooltip says who to contact. `),t[26]||(t[26]=me('',2)),e.isDarkMode?c("v-if",!0):(l(),d("li",G5,[n("button",{type:"button",class:"nav-link nav-icon",title:"Switch to dark mode","aria-label":"Switch to dark mode",onClick:t[1]||(t[1]=o=>{e.darkMode(!0)})},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-moon"})],-1)])])])),e.isDarkMode?(l(),d("li",W5,[n("button",{type:"button",class:"nav-link nav-icon",title:"Switch to light mode","aria-label":"Switch to light mode",onClick:t[2]||(t[2]=o=>{e.darkMode(!1)})},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sun"})],-1)])])])):c("v-if",!0),!e.user&&!e.isReviewerRoute?(l(),d("li",K5,[...t[21]||(t[21]=[n("a",{class:"nav-link btn-signin",target:"_self",href:"/signin","data-offset":"30"},[n("i",{class:"fab fa-github mr-1"}),h(" Sign in ")],-1)])])):c("v-if",!0),e.user?.username&&e.headerCanUpgrade&&!e.headerBillingPending?(l(),d("li",Y5,[n("a",{class:"nav-link nav-upgrade",href:"/profile?upgrade=1",onClick:t[3]||(t[3]=ae(o=>e.openHeaderUpgrade(),["prevent"]))},"Upgrade")])):c("v-if",!0),e.user?(l(),d("li",J5,[n("a",Q5,[e.user?.photo?(l(),d("img",{key:0,width:"22",height:"22",class:"rounded-circle",src:e.safeUrl(e.user?.photo)},null,8,X5)):c("v-if",!0),n("span",Z5,u(e.user?.username),1)]),n("div",x5,[n("h6",e8,"Signed in as @"+u(e.user?.username),1),t[23]||(t[23]=me('SettingsDefaults, quotas, accountGitHub connectionsRepository access and OAuthClaim an anonymizationAttach an existing mirror to your accountReport a bugAbout this service, not a paperSource code',6)),e.headerShowSupport?(l(),d("a",t8,[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})],-1),n("span",null,"Support the project",-1)])])):c("v-if",!0),t[24]||(t[24]=n("div",{class:"dropdown-divider"},null,-1)),t[25]||(t[25]=n("a",{class:"dropdown-item",href:"/api/user/logout",target:"_self"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-logout"})]),n("span",null,"Sign out")],-1))])])):c("v-if",!0)])])],2),e.generalMessage?(l(),d("div",{key:0,class:"navbar shadow generalMessage",innerHTML:e.sanitize(e.generalMessage)},null,8,n8)):c("v-if",!0),e.emailPromptOpen?(l(),d("dialog",{key:1,id:"email-prompt",class:"email-prompt","aria-labelledby":"email-prompt-title","aria-describedby":"email-prompt-reason",onCancel:t[8]||(t[8]=ae(o=>e.respondToEmailPrompt("later"),["prevent"]))},[n("form",{onSubmit:t[7]||(t[7]=ae(o=>e.respondToEmailPrompt("save"),["prevent"]))},[t[29]||(t[29]=n("h2",{id:"email-prompt-title"},"Stay informed about access problems",-1)),t[30]||(t[30]=n("p",{id:"email-prompt-reason"},"Get email alerts when your GitHub token or repository access fails.",-1)),t[31]||(t[31]=n("label",{for:"email-prompt-address"},"Email address",-1)),T(n("input",{id:"email-prompt-address",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[4]||(t[4]=o=>e.emailPromptAddress=o),disabled:e.emailPromptBusy},null,8,o8),[[ot,e.emailPromptAddress]]),e.emailPromptError?(l(),d("p",s8,u(e.emailPromptError),1)):c("v-if",!0),n("div",i8,[n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[5]||(t[5]=o=>e.respondToEmailPrompt("later"))},"Remind me later",8,r8),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[6]||(t[6]=o=>e.respondToEmailPrompt("never"))},"Never",8,a8),n("button",{type:"submit",class:"btn btn-ink",disabled:e.emailPromptBusy},u(e.emailPromptBusy?"Saving\u2026":"Save"),9,l8)])],32)],32)):c("v-if",!0)],64)}var d8={class:"paper-landing"},u8={class:"paper-hero"},c8={class:"paper-hero-copy"},p8={class:"paper-cta-row"},f8={key:0,href:"/signin",target:"_self",class:"btn-hero"},m8={key:1,href:"/anonymize",class:"btn-hero"},h8={class:"paper-stats paper-wrap",id:"metrics","aria-label":"Usage over the last 60 days"},v8={class:"paper-stats-grid"},g8={class:"paper-stat-label"},y8={key:0,class:"paper-stat-delta"},b8={class:"demo paper-wrap","aria-label":"Try redaction"},w8={class:"demo-terms"},k8={class:"demo-panes"},C8={class:"pane"},E8={class:"demo-input-wrap"},S8={class:"pane-body demo-backdrop","aria-hidden":"true"},N8={key:0,class:"demo-match"},R8={class:"pane pane-after"},D8={class:"pane-header"},T8={class:"pane-url"},_8={class:"meta-redact"},A8={class:"pane-body demo-output","aria-live":"polite"},O8=["title"],P8={class:"paper-features paper-wrap","aria-label":"Product features"},I8={class:"paper-features-list",role:"tablist","aria-label":"Features","aria-orientation":"vertical"},M8=["onClick","onKeydown","id","aria-controls","aria-selected","tabindex"],V8={class:"paper-eyebrow"},q8={class:"paper-feature-title"},L8={class:"paper-feature-more"},$8={class:"paper-feature-title paper-feature-title-m","aria-hidden":"true"},U8=["href","target"],F8={class:"paper-features-stage"},B8=["id","aria-labelledby"],z8={class:"paper-frame"},H8={class:"paper-frame-bar","aria-hidden":"true"},j8={class:"url"},G8=["aria-label"],W8={key:0,class:"fm-form"},K8={key:1,class:"fm-viewer"},Y8={key:2,class:"fm-dash"},J8={class:"paper-footer"},Q8={class:"paper-footer-inner"},X8={class:"paper-footer-col"},Z8={key:0,href:"/dashboard"},x8={key:1,href:"/conferences"},eM={class:"paper-footer-foot"};function Ql(e,t){return l(),d("div",d8,[c(" Hero: copy on the left, the product on the right "),n("section",u8,[n("div",c8,[t[4]||(t[4]=n("div",{class:"paper-eyebrow"},"For double-blind peer review",-1)),t[5]||(t[5]=n("h1",{class:"hero-title"},[h(" Share the code,"),n("br"),n("span",{class:"accent"},"not the author.")],-1)),t[6]||(t[6]=n("p",{class:"hero-subtitle"}," Anonymous GitHub makes a read-only mirror of your repository, pull request, or gist. It redacts the terms you choose in text files, so reviewers can browse your artifact through an anonymous link. ",-1)),n("div",p8,[e.user?c("v-if",!0):(l(),d("a",f8,[...t[2]||(t[2]=[n("i",{class:"fab fa-github mr-2","aria-hidden":"true"},null,-1),h("Sign in with GitHub ",-1)])])),e.user?(l(),d("a",m8," Anonymize a repository \u2192 ")):c("v-if",!0),t[3]||(t[3]=n("a",{class:"paper-link-arrow",target:"_self",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/"},"See an anonymized repository \u2192",-1))]),t[7]||(t[7]=n("ul",{class:"paper-reassure"},[n("li",null,"Free, open source"),n("li",null,"Read-only access"),n("li",null,"Set an expiry date")],-1))]),t[8]||(t[8]=n("div",{class:"paper-hero-shot"},[n("div",{class:"paper-frame"},[n("div",{class:"paper-frame-bar","aria-hidden":"true"},[n("span",{class:"dots"},[n("i"),n("i"),n("i")]),n("span",{class:"url"},"anonymous.4open.science/r/paper-7f2a")]),n("div",{class:"hero-mock",role:"img","aria-label":"A reviewer browsing an anonymized repository: the author, affiliation, and email in the README are replaced by anonymous terms"},[n("div",{class:"hero-mock-tree","aria-hidden":"true"},[n("div",{class:"hero-mock-tree-title"},"Files"),n("div",{class:"hero-mock-row is-folder"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})]),h("data")]),n("div",{class:"hero-mock-row is-folder"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})]),h("experiments")]),n("div",{class:"hero-mock-row is-folder"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})]),h("src")]),n("div",{class:"hero-mock-row"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})]),h("LICENSE")]),n("div",{class:"hero-mock-row is-active"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})]),h("README.md")]),n("div",{class:"hero-mock-row"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})]),h("requirements.txt")])]),n("div",{class:"hero-mock-doc","aria-hidden":"true"},[n("div",{class:"hero-mock-doc-bar"},[n("strong",null,"README.md"),n("span",{class:"hero-mock-count"},"3 redacted")]),n("div",{class:"hero-mock-doc-body"},[n("div",{class:"hero-mock-h1"},"DeepLearnUtils"),n("p",null,[h("Developed by "),n("span",{class:"redact",role:"img","aria-label":"Redacted term 1"},[n("i",null,"1")]),h(" at "),n("span",{class:"redact",role:"img","aria-label":"Redacted term 2"},[n("i",null,"2")]),h(".")]),n("p",null,"Utilities for reproducing the paper\u2019s experiments."),n("div",{class:"hero-mock-h2"},"Quick start"),n("pre",null,`pip install -r requirements.txt -python experiments/run.py`),n("p",null,[h("Contact: "),n("span",{class:"redact",role:"img","aria-label":"Redacted term 3"},[n("i",null,"3")])])])])])])],-1))]),c(" Live stats "),n("section",h8,[t[9]||(t[9]=n("div",{class:"paper-stats-meta"},[n("div",{class:"paper-stats-meta-left"},[n("span",{class:"paper-stats-dot","aria-hidden":"true"}),h(" Live \xB7 last 60 days \xB7 updated daily")]),n("div",{class:"paper-stats-meta-right"},"Used by authors at ICSE \xB7 FSE \xB7 OOPSLA")],-1)),n("div",v8,[(l(!0),d(W,null,oe(e.cards,(o,i)=>(l(),d("div",{class:"paper-stat-card",key:o?.key},[n("div",{class:O(["paper-stat-value",{"is-pending":!e.stat}])},u(e.stat?e.fmt?.bigNum(o?.total):"\u2014"),3),n("div",g8,u(o?.label),1),e.history[o?.key].bars?.length>1?(l(),d("div",y8," +"+u(e.fmt?.number(e.history[o?.key].deltaToday))+" today ",1)):c("v-if",!0)]))),128))])]),c(" Before / after "),t[25]||(t[25]=n("section",{class:"paper-section-head paper-wrap"},[n("div",null,[n("div",{class:"paper-eyebrow"},"Try it"),n("h2",null,[h("The same repository, "),n("em",null,"minus you.")])]),n("p",null," Names, affiliations, emails, and any term you list are replaced across the README, source files, notebooks, and PDF links. Reviewers browse the real thing, not a zip. ")],-1)),n("div",b8,[n("div",w8,[t[10]||(t[10]=n("label",{for:"demo-terms"},[h("Terms to redact "),n("span",null,"comma-separated, try adding your own")],-1)),T(n("input",{id:"demo-terms",type:"text","onUpdate:modelValue":t[0]||(t[0]=o=>e.demoTerms=o),spellcheck:"false",autocomplete:"off"},null,512),[[ot,e.demoTerms]])]),n("div",k8,[n("div",C8,[t[12]||(t[12]=n("div",{class:"pane-header"},[n("span",{class:"pane-label"},[h("Your repository "),n("span",{class:"pane-edit-hint"},"\xB7 editable")]),n("span",{class:"pane-url"},"github.com/jane-smith/DeepLearnUtils")],-1)),n("div",E8,[n("div",S8,[(l(!0),d(W,null,oe(e.demoParts(),(o,i)=>(l(),d(W,{key:i},[o.redacted?(l(),d("mark",N8,u(o.original),1)):(l(),d(W,{key:1},[h(u(o.text),1)],64))],64))),128)),t[11]||(t[11]=h("\u200B",-1))]),T(n("textarea",{class:"pane-body demo-input","onUpdate:modelValue":t[1]||(t[1]=o=>e.demoText=o),spellcheck:"false","aria-label":"Sample README to anonymize"},null,512),[[ot,e.demoText]])])]),n("div",R8,[n("div",D8,[t[13]||(t[13]=n("span",{class:"pane-label"},"What reviewers see",-1)),n("span",T8,[n("span",_8,u(e.demoCount())+" redacted",1)])]),n("div",A8,[(l(!0),d(W,null,oe(e.demoParts(),(o,i)=>(l(),d(W,{key:i},[o.redacted?(l(),d("span",{key:0,class:"redact-chip",title:"Replaces \u201C"+o.original+"\u201D"},u(o.text),9,O8)):(l(),d(W,{key:1},[h(u(o.text),1)],64))],64))),128))])])])]),c(" What you get: one screenshot, three tabs "),t[26]||(t[26]=n("section",{class:"paper-section-head paper-wrap",id:"about"},[n("div",null,[n("div",{class:"paper-eyebrow"},"What you get"),n("h2",null,"Anonymize, review, manage.")]),n("p",null," Terms are redacted in text files. Enabled images and PDFs are served unchanged, so review them for identifying content before sharing. Monitor your mirror, update it, or remove it when the review is over. ")],-1)),n("section",P8,[n("div",I8,[(l(!0),d(W,null,oe(e.features,(o,i)=>(l(),d("div",{class:O(["paper-feature",{"is-on":e.feature===o?.key}]),key:o?.key},[n("button",{type:"button",class:"paper-feature-tab",role:"tab",onClick:s=>e.selectFeature(o.key),onKeydown:s=>e.featureKeydown(s,i),id:"feature-tab-"+o?.key,"aria-controls":"feature-panel-"+o?.key,"aria-selected":e.feature===o?.key,tabindex:e.feature===o?.key?0:-1},[n("span",V8,u(o?.num)+" \xB7 "+u(o?.eyebrow),1),n("span",q8,u(o?.title)+" "+u(o?.accent),1)],40,M8),n("div",L8,[n("span",$8,u(o?.title)+" "+u(o?.accent),1),n("p",null,u(o?.text),1),n("a",{class:"paper-link-arrow",href:e.safeUrl(e.featureHref(o)),target:e.featureTarget(o)},u(o?.cta)+" \u2192",9,U8)])],2))),128))]),n("div",F8,[(l(!0),d(W,null,oe(e.features,(o,i)=>T((l(),d("div",{class:"paper-feature-panel",role:"tabpanel",key:o?.key,id:"feature-panel-"+o?.key,"aria-labelledby":"feature-tab-"+o?.key},[n("div",z8,[n("div",H8,[t[14]||(t[14]=n("span",{class:"dots"},[n("i"),n("i"),n("i")],-1)),n("span",j8,u(o?.url),1)]),n("div",{class:O(["feat-mock","is-"+o?.key]),role:"img","aria-label":o?.alt},[o?.key==="anonymize"?(l(),d("div",W8,[...t[15]||(t[15]=[me('
GitHub repository
github.com/jane-smith/DeepLearnUtils
Terms to redact
Jane SmithMIT CSAILjane.smith@mit.edu+ Add term
Reviewers can see
ImagesPDFsLinksNotebooks
Expires
Mar 31, 2027
Anonymize repository
',6)])])):o?.key==="review"?(l(),d("div",K8,[...t[16]||(t[16]=[me(`
data
src
train.py
README.md
LICENSE
train.py48 lines \xB7 Python
1# Training loop for DeepLearnUtils
+           label names the service and the tooltip says who to contact. `),t[26]||(t[26]=Ce('',2)),e.isDarkMode?f("v-if",!0):(l(),d("li",V6,[n("button",{type:"button",class:"nav-link nav-icon",title:"Switch to dark mode","aria-label":"Switch to dark mode",onClick:t[1]||(t[1]=s=>{e.darkMode(!0)})},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-moon"})],-1)])])])),e.isDarkMode?(l(),d("li",q6,[n("button",{type:"button",class:"nav-link nav-icon",title:"Switch to light mode","aria-label":"Switch to light mode",onClick:t[2]||(t[2]=s=>{e.darkMode(!1)})},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sun"})],-1)])])])):f("v-if",!0),!e.user&&!e.isReviewerRoute?(l(),d("li",$6,[...t[21]||(t[21]=[n("a",{class:"nav-link btn-signin",target:"_self",href:"/signin","data-offset":"30"},[n("i",{class:"fab fa-github mr-1"}),y(" Sign in ")],-1)])])):f("v-if",!0),e.user?.username&&e.headerCanUpgrade&&!e.headerBillingPending?(l(),d("li",L6,[n("a",{class:"nav-link nav-upgrade",href:"/profile?upgrade=1",onClick:t[3]||(t[3]=ce(s=>e.openHeaderUpgrade(),["prevent"]))},"Upgrade")])):f("v-if",!0),e.user?(l(),d("li",U6,[n("a",F6,[e.user?.photo?(l(),d("img",{key:0,width:"22",height:"22",class:"rounded-circle",src:e.safeUrl(e.user?.photo)},null,8,B6)):f("v-if",!0),n("span",z6,p(e.user?.username),1)]),n("div",H6,[n("h6",j6,"Signed in as @"+p(e.user?.username),1),t[23]||(t[23]=Ce('SettingsDefaults, quotas, accountGitHub connectionsRepository access and OAuthClaim an anonymizationAttach an existing mirror to your accountReport a bugAbout this service, not a paperSource code',6)),e.headerShowSupport?(l(),d("a",G6,[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})],-1),n("span",null,"Support the project",-1)])])):f("v-if",!0),t[24]||(t[24]=n("div",{class:"dropdown-divider"},null,-1)),t[25]||(t[25]=n("a",{class:"dropdown-item",href:"/api/user/logout",target:"_self"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-logout"})]),n("span",null,"Sign out")],-1))])])):f("v-if",!0)])])],2),e.generalMessage?(l(),d("div",{key:0,class:"navbar shadow generalMessage",innerHTML:e.sanitize(e.generalMessage)},null,8,W6)):f("v-if",!0),e.emailPromptOpen?(l(),d("dialog",{key:1,id:"email-prompt",class:"email-prompt","aria-labelledby":"email-prompt-title","aria-describedby":"email-prompt-reason",onCancel:t[8]||(t[8]=ce(s=>e.respondToEmailPrompt("later"),["prevent"]))},[n("form",{onSubmit:t[7]||(t[7]=ce(s=>e.respondToEmailPrompt("save"),["prevent"]))},[t[29]||(t[29]=n("h2",{id:"email-prompt-title"},"Stay informed about access problems",-1)),t[30]||(t[30]=n("p",{id:"email-prompt-reason"},"Get email alerts when your GitHub token or repository access fails.",-1)),t[31]||(t[31]=n("label",{for:"email-prompt-address"},"Email address",-1)),T(n("input",{id:"email-prompt-address",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[4]||(t[4]=s=>e.emailPromptAddress=s),disabled:e.emailPromptBusy},null,8,K6),[[dt,e.emailPromptAddress]]),e.emailPromptError?(l(),d("p",Y6,p(e.emailPromptError),1)):f("v-if",!0),n("div",X6,[n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[5]||(t[5]=s=>e.respondToEmailPrompt("later"))},"Remind me later",8,J6),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[6]||(t[6]=s=>e.respondToEmailPrompt("never"))},"Never",8,Q6),n("button",{type:"submit",class:"btn btn-ink",disabled:e.emailPromptBusy},p(e.emailPromptBusy?"Saving\u2026":"Save"),9,Z6)])],32)],32)):f("v-if",!0)],64)}var x6={class:"paper-landing"},eq={class:"paper-hero"},tq={class:"paper-hero-copy"},nq={class:"paper-cta-row"},sq={key:0,href:"/signin",target:"_self",class:"btn-hero"},oq={key:1,href:"/anonymize",class:"btn-hero"},iq={class:"paper-stats paper-wrap",id:"metrics","aria-label":"Usage over the last 60 days"},rq={class:"paper-stats-grid"},aq={class:"paper-stat-label"},lq={key:0,class:"paper-stat-delta"},dq={class:"demo paper-wrap","aria-label":"Try redaction"},uq={class:"demo-terms"},cq={class:"demo-panes"},pq={class:"pane"},fq={class:"demo-input-wrap"},hq={class:"pane-body demo-backdrop","aria-hidden":"true"},mq={key:0,class:"demo-match"},gq={class:"pane pane-after"},vq={class:"pane-header"},yq={class:"pane-url"},bq={class:"meta-redact"},wq={class:"pane-body demo-output","aria-live":"polite"},kq=["title"],Cq={class:"paper-features paper-wrap","aria-label":"Product features"},Eq={class:"paper-features-list",role:"tablist","aria-label":"Features","aria-orientation":"vertical"},Sq=["onClick","onKeydown","id","aria-controls","aria-selected","tabindex"],Nq={class:"paper-eyebrow"},Rq={class:"paper-feature-title"},Dq={class:"paper-feature-more"},Tq={class:"paper-feature-title paper-feature-title-m","aria-hidden":"true"},Aq=["href","target"],_q={class:"paper-features-stage"},Oq=["id","aria-labelledby"],Pq={class:"paper-frame"},Iq={class:"paper-frame-bar","aria-hidden":"true"},Mq={class:"url"},Vq=["aria-label"],qq={key:0,class:"fm-form"},$q={key:1,class:"fm-viewer"},Lq={key:2,class:"fm-dash"},Uq={class:"paper-footer"},Fq={class:"paper-footer-inner"},Bq={class:"paper-footer-col"},zq={key:0,href:"/dashboard"},Hq={key:1,href:"/conferences"},jq={class:"paper-footer-foot"};function Ac(e,t){return l(),d("div",x6,[f(" Hero: copy on the left, the product on the right "),n("section",eq,[n("div",tq,[t[4]||(t[4]=n("div",{class:"paper-eyebrow"},"For double-blind peer review",-1)),t[5]||(t[5]=n("h1",{class:"hero-title"},[y(" Share the code,"),n("br"),n("span",{class:"accent"},"not the author.")],-1)),t[6]||(t[6]=n("p",{class:"hero-subtitle"}," Anonymous GitHub makes a read-only mirror of your repository, pull request, or gist. It redacts the terms you choose in text files, so reviewers can browse your artifact through an anonymous link. ",-1)),n("div",nq,[e.user?f("v-if",!0):(l(),d("a",sq,[...t[2]||(t[2]=[n("i",{class:"fab fa-github mr-2","aria-hidden":"true"},null,-1),y("Sign in with GitHub ",-1)])])),e.user?(l(),d("a",oq," Anonymize a repository \u2192 ")):f("v-if",!0),t[3]||(t[3]=n("a",{class:"paper-link-arrow",target:"_self",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/"},"See an anonymized repository \u2192",-1))]),t[7]||(t[7]=n("ul",{class:"paper-reassure"},[n("li",null,"Free, open source"),n("li",null,"Read-only access"),n("li",null,"Set an expiry date")],-1))]),t[8]||(t[8]=n("div",{class:"paper-hero-shot"},[n("div",{class:"paper-frame"},[n("div",{class:"paper-frame-bar","aria-hidden":"true"},[n("span",{class:"dots"},[n("i"),n("i"),n("i")]),n("span",{class:"url"},"anonymous.4open.science/r/paper-7f2a")]),n("div",{class:"hero-mock",role:"img","aria-label":"A reviewer browsing an anonymized repository: the author, affiliation, and email in the README are replaced by anonymous terms"},[n("div",{class:"hero-mock-tree","aria-hidden":"true"},[n("div",{class:"hero-mock-tree-title"},"Files"),n("div",{class:"hero-mock-row is-folder"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})]),y("data")]),n("div",{class:"hero-mock-row is-folder"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})]),y("experiments")]),n("div",{class:"hero-mock-row is-folder"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})]),y("src")]),n("div",{class:"hero-mock-row"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})]),y("LICENSE")]),n("div",{class:"hero-mock-row is-active"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})]),y("README.md")]),n("div",{class:"hero-mock-row"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})]),y("requirements.txt")])]),n("div",{class:"hero-mock-doc","aria-hidden":"true"},[n("div",{class:"hero-mock-doc-bar"},[n("strong",null,"README.md"),n("span",{class:"hero-mock-count"},"3 redacted")]),n("div",{class:"hero-mock-doc-body"},[n("div",{class:"hero-mock-h1"},"DeepLearnUtils"),n("p",null,[y("Developed by "),n("span",{class:"redact",role:"img","aria-label":"Redacted term 1"},[n("i",null,"1")]),y(" at "),n("span",{class:"redact",role:"img","aria-label":"Redacted term 2"},[n("i",null,"2")]),y(".")]),n("p",null,"Utilities for reproducing the paper\u2019s experiments."),n("div",{class:"hero-mock-h2"},"Quick start"),n("pre",null,`pip install -r requirements.txt
+python experiments/run.py`),n("p",null,[y("Contact: "),n("span",{class:"redact",role:"img","aria-label":"Redacted term 3"},[n("i",null,"3")])])])])])])],-1))]),f(" Live stats "),n("section",iq,[t[9]||(t[9]=n("div",{class:"paper-stats-meta"},[n("div",{class:"paper-stats-meta-left"},[n("span",{class:"paper-stats-dot","aria-hidden":"true"}),y(" Live \xB7 last 60 days \xB7 updated daily")]),n("div",{class:"paper-stats-meta-right"},"Used by authors at ICSE \xB7 FSE \xB7 OOPSLA")],-1)),n("div",rq,[(l(!0),d(W,null,ae(e.cards,(s,i)=>(l(),d("div",{class:"paper-stat-card",key:s?.key},[n("div",{class:_(["paper-stat-value",{"is-pending":!e.stat}])},p(e.stat?e.fmt?.bigNum(s?.total):"\u2014"),3),n("div",aq,p(s?.label),1),e.history[s?.key].bars?.length>1?(l(),d("div",lq," +"+p(e.fmt?.number(e.history[s?.key].deltaToday))+" today ",1)):f("v-if",!0)]))),128))])]),f(" Before / after "),t[25]||(t[25]=n("section",{class:"paper-section-head paper-wrap"},[n("div",null,[n("div",{class:"paper-eyebrow"},"Try it"),n("h2",null,[y("The same repository, "),n("em",null,"minus you.")])]),n("p",null," Names, affiliations, emails, and any term you list are replaced across the README, source files, notebooks, and PDF links. Reviewers browse the real thing, not a zip. ")],-1)),n("div",dq,[n("div",uq,[t[10]||(t[10]=n("label",{for:"demo-terms"},[y("Terms to redact "),n("span",null,"comma-separated, try adding your own")],-1)),T(n("input",{id:"demo-terms",type:"text","onUpdate:modelValue":t[0]||(t[0]=s=>e.demoTerms=s),spellcheck:"false",autocomplete:"off"},null,512),[[dt,e.demoTerms]])]),n("div",cq,[n("div",pq,[t[12]||(t[12]=n("div",{class:"pane-header"},[n("span",{class:"pane-label"},[y("Your repository "),n("span",{class:"pane-edit-hint"},"\xB7 editable")]),n("span",{class:"pane-url"},"github.com/jane-smith/DeepLearnUtils")],-1)),n("div",fq,[n("div",hq,[(l(!0),d(W,null,ae(e.demoParts(),(s,i)=>(l(),d(W,{key:i},[s.redacted?(l(),d("mark",mq,p(s.original),1)):(l(),d(W,{key:1},[y(p(s.text),1)],64))],64))),128)),t[11]||(t[11]=y("\u200B",-1))]),T(n("textarea",{class:"pane-body demo-input","onUpdate:modelValue":t[1]||(t[1]=s=>e.demoText=s),spellcheck:"false","aria-label":"Sample README to anonymize"},null,512),[[dt,e.demoText]])])]),n("div",gq,[n("div",vq,[t[13]||(t[13]=n("span",{class:"pane-label"},"What reviewers see",-1)),n("span",yq,[n("span",bq,p(e.demoCount())+" redacted",1)])]),n("div",wq,[(l(!0),d(W,null,ae(e.demoParts(),(s,i)=>(l(),d(W,{key:i},[s.redacted?(l(),d("span",{key:0,class:"redact-chip",title:"Replaces \u201C"+s.original+"\u201D"},p(s.text),9,kq)):(l(),d(W,{key:1},[y(p(s.text),1)],64))],64))),128))])])])]),f(" What you get: one screenshot, three tabs "),t[26]||(t[26]=n("section",{class:"paper-section-head paper-wrap",id:"about"},[n("div",null,[n("div",{class:"paper-eyebrow"},"What you get"),n("h2",null,"Anonymize, review, manage.")]),n("p",null," Terms are redacted in text files. Enabled images and PDFs are served unchanged, so review them for identifying content before sharing. Monitor your mirror, update it, or remove it when the review is over. ")],-1)),n("section",Cq,[n("div",Eq,[(l(!0),d(W,null,ae(e.features,(s,i)=>(l(),d("div",{class:_(["paper-feature",{"is-on":e.feature===s?.key}]),key:s?.key},[n("button",{type:"button",class:"paper-feature-tab",role:"tab",onClick:o=>e.selectFeature(s.key),onKeydown:o=>e.featureKeydown(o,i),id:"feature-tab-"+s?.key,"aria-controls":"feature-panel-"+s?.key,"aria-selected":e.feature===s?.key,tabindex:e.feature===s?.key?0:-1},[n("span",Nq,p(s?.num)+" \xB7 "+p(s?.eyebrow),1),n("span",Rq,p(s?.title)+" "+p(s?.accent),1)],40,Sq),n("div",Dq,[n("span",Tq,p(s?.title)+" "+p(s?.accent),1),n("p",null,p(s?.text),1),n("a",{class:"paper-link-arrow",href:e.safeUrl(e.featureHref(s)),target:e.featureTarget(s)},p(s?.cta)+" \u2192",9,Aq)])],2))),128))]),n("div",_q,[(l(!0),d(W,null,ae(e.features,(s,i)=>T((l(),d("div",{class:"paper-feature-panel",role:"tabpanel",key:s?.key,id:"feature-panel-"+s?.key,"aria-labelledby":"feature-tab-"+s?.key},[n("div",Pq,[n("div",Iq,[t[14]||(t[14]=n("span",{class:"dots"},[n("i"),n("i"),n("i")],-1)),n("span",Mq,p(s?.url),1)]),n("div",{class:_(["feat-mock","is-"+s?.key]),role:"img","aria-label":s?.alt},[s?.key==="anonymize"?(l(),d("div",qq,[...t[15]||(t[15]=[Ce('
GitHub repository
github.com/jane-smith/DeepLearnUtils
Terms to redact
Jane SmithMIT CSAILjane.smith@mit.edu+ Add term
Reviewers can see
ImagesPDFsLinksNotebooks
Expires
Mar 31, 2027
Anonymize repository
',6)])])):s?.key==="review"?(l(),d("div",$q,[...t[16]||(t[16]=[Ce(`
data
src
train.py
README.md
LICENSE
train.py48 lines \xB7 Python
1# Training loop for DeepLearnUtils
 2# Author: XXXX-1, XXXX-2
 3import torch
 4from utils import load_config
@@ -37,14 +47,15 @@ python experiments/run.py`),n("p",null,[h("Contact: "),n("span",{class:"redact",
 7    model = build_model(config)
 8    for epoch in range(config.epochs):
 9        loss = step(model)
-10        log("epoch %d: %.3f", epoch, loss)
`,2)])])):(l(),d("div",Y8,[...t[17]||(t[17]=[me('
ProjectStatusViewsExpires
DeepLearnUtilspaper-7f2a \xB7 ICSE 2027Ready41Mar 31, 2027
vision-bench#212pull request \xB7 FSE 2027Ready12Never
graph-repairgr-91abUpdating5Jan 5, 2027
JarSiftOOPSLA 2025Expired72Sep 28, 2026
',5)])]))],10,G8)])],8,B8)),[[Y,e.feature===o?.key]])),128))])]),c(" FAQ teaser "),t[27]||(t[27]=me('
Before you sign in

The questions that come up most.

Read the full FAQ \u2192
What access does GitHub sign-in require?

The GitHub App has read-only access to gists and the repositories you choose. Legacy OAuth uses broader permissions. Anonymous GitHub never writes to your repositories.

Which file formats are supported?

Source code with syntax highlighting, Markdown, Jupyter notebooks, PDFs, images, and GitHub Pages sites. Text files are anonymized; enabled images and PDFs are served unchanged.

What happens when an anonymized repository expires?

You choose: the mirror is removed, or visitors are redirected to the original GitHub repository once the review is over.

Ready for review?

Create an anonymous mirror in a couple of minutes. Reviewers just open the link.

',2)),n("footer",J8,[n("div",Q8,[t[21]||(t[21]=n("div",{class:"paper-footer-brand"},[n("div",{class:"paper-footer-mark"},[h("Anonymous "),n("em",null,"GitHub")]),n("p",{class:"paper-footer-tag"}," A read-only, identity-stripped mirror of your repository, built for double-anonymous peer review. ")],-1)),n("div",X8,[t[18]||(t[18]=n("div",{class:"paper-footer-head"},"Product",-1)),t[19]||(t[19]=n("a",{href:"/anonymize"},"Anonymize",-1)),e.user?(l(),d("a",Z8,"My work")):c("v-if",!0),e.user?(l(),d("a",x8,"Conferences")):c("v-if",!0),t[20]||(t[20]=n("a",{href:"/faq"},"FAQ",-1))]),t[22]||(t[22]=me('',2))]),t[24]||(t[24]=n("div",{class:"paper-footer-rule"},null,-1)),n("div",eM,[n("span",null,"\xA9 "+u(e.year||2026)+" Anonymous GitHub \xB7 GPL-3.0 licensed",1),t[23]||(t[23]=n("span",{class:"paper-footer-meta"},"Built for reviewers, by researchers.",-1))])])])}var tM={class:"paper-empty"},nM={class:"paper-empty-inner"},oM={key:0,class:"paper-eyebrow"},sM={key:1,class:"paper-eyebrow"},iM={key:2,class:"paper-empty-title"},rM=["textContent"];function Xl(e,t){return l(),d("div",tM,[n("div",nM,[e.error?c("v-if",!0):(l(),d("div",oM,"Working")),e.error?(l(),d("div",sM,"Error")):c("v-if",!0),e.error?c("v-if",!0):(l(),d("h1",iM,[...t[0]||(t[0]=[h(" Loading",-1),n("span",{class:"dot-anim"},"\u2026",-1)])])),e.error?(l(),d("h1",{key:3,class:"paper-empty-title",textContent:u(e.fmt.translate(e.error))},null,8,rM)):c("v-if",!0)])])}var aM={class:"container paper-page paper-settings"},lM={class:"paper-crumbs"},dM={class:"here"},uM={class:"paper-page-title"},cM={class:"paper-settings-body"},pM={class:"paper-settings-toc"},fM={href:"#conf-billing"},mM={class:"form needs-validation paper-settings-main",name:"conference",novalidate:""},hM={id:"conf-basics",class:"paper-settings-section"},vM={class:"form-group"},gM={class:"invalid-feedback"},yM={class:"invalid-feedback"},bM={class:"form-group"},wM={class:"invalid-feedback"},kM={class:"form-group"},CM={class:"invalid-feedback"},EM={class:"invalid-feedback"},SM={id:"conf-window",class:"paper-settings-section"},NM={class:"form-grid-2"},RM={class:"form-group"},DM={class:"invalid-feedback"},TM={class:"invalid-feedback"},_M={class:"form-group"},AM={class:"invalid-feedback"},OM={class:"invalid-feedback"},PM={id:"conf-rendering",class:"paper-settings-section"},IM={class:"form-check"},MM={class:"form-check-input",type:"checkbox",id:"link",name:"link"},VM={class:"form-check"},qM={class:"form-check-input",type:"checkbox",id:"image",name:"image"},LM={class:"form-check"},$M={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},UM={class:"form-check"},FM={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},BM={id:"conf-features",class:"paper-settings-section"},zM={class:"form-check"},HM={class:"form-check-input",type:"checkbox",id:"update",name:"update"},jM={class:"form-check"},GM={class:"form-check-input",type:"checkbox",id:"page",name:"page"},WM={id:"conf-plan",class:"paper-settings-section"},KM={class:"paper-plan-grid"},YM=["disabled","value"],JM=["textContent"],QM={class:"paper-plan-price"},XM={class:"paper-plan-per"},ZM=["innerHTML"],xM={key:0,id:"conf-billing",class:"paper-settings-section"},eV={class:"form-group"},tV={class:"form-group"},nV={class:"form-group"},oV={class:"form-group"},sV={class:"form-grid-3"},iV={class:"form-group"},rV={class:"form-group"},aV={class:"form-group"},lV={class:"form-group"},dV={class:"paper-settings-footer"},uV=["textContent"],cV=["textContent"],pV=["disabled"];function Zl(e,t){let o=we("paper-scrollspy"),i=we("field"),s=we("form");return l(),d("div",aM,[n("div",lM,[t[1]||(t[1]=n("a",{href:"/dashboard"},"My work",-1)),t[2]||(t[2]=h(" \xA0/\xA0 ",-1)),t[3]||(t[3]=n("a",{href:"/conferences"},"Conferences",-1)),t[4]||(t[4]=h(" \xA0/\xA0 ",-1)),n("span",dM,u(e.editionMode?"Edit":"New"),1)]),n("h1",uM,[h(u(e.editionMode?"Edit":"Create a")+" ",1),t[5]||(t[5]=n("em",null,"conference",-1))]),t[42]||(t[42]=n("p",{class:"paper-page-lede"}," Give chairs access to every anonymization submitted to a venue, and lift author quotas during the review window. ",-1)),n("div",cM,[T((l(),d("aside",pM,[t[7]||(t[7]=n("div",{class:"paper-settings-toc-head"},"On this page",-1)),n("nav",null,[t[6]||(t[6]=me('BasicsReview windowRendering defaultsFeaturesPlan',5)),T(n("a",fM,"Billing",512),[[Y,e.plan?.pricePerRepo>0]])])])),[[o]]),T((l(),d("form",mM,[n("section",hM,[t[12]||(t[12]=n("div",{class:"paper-section-eyebrow"},"Basics",-1)),n("div",vM,[t[8]||(t[8]=n("label",{class:"paper-field-label",for:"name"},"Conference name",-1)),T(n("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.name?.invalid&&(e.conference?.name?.touched||e.conference?.submitted)}]),name:"name",id:"name",required:"",placeholder:"e.g. International Conference on Software Engineering"},null,2),[[i,{state:e.viewState,set:r=>{e.options.name=r},value:e.options?.name,form:"conference",options:{}}]]),T(n("div",gM," The name of the conference is invalid. ",512),[[Y,e.conference?.name?.errors?.invalid]]),T(n("div",yM," The name of the conference is required. ",512),[[Y,e.conference?.name?.errors?.required]])]),n("div",bM,[t[9]||(t[9]=n("label",{class:"paper-field-label",for:"url"},"Website",-1)),T(n("input",{type:"url",class:O(["form-control",{"is-invalid":e.conference?.url?.invalid&&(e.conference?.url?.touched||e.conference?.submitted)}]),name:"url",id:"url",placeholder:"https://example.org"},null,2),[[i,{state:e.viewState,set:r=>{e.options.url=r},value:e.options?.url,form:"conference",options:{}}]]),T(n("div",wM," The url of the conference is invalid. ",512),[[Y,e.conference?.url?.errors?.url]])]),n("div",kM,[t[10]||(t[10]=n("label",{class:"paper-field-label",for:"conferenceID"},"Conference ID",-1)),T(n("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.conferenceID?.invalid&&(e.conference?.conferenceID?.touched||e.conference?.submitted)}]),name:"conferenceID",id:"conferenceID",required:"",pattern:"[a-zA-Z0-9\\-_]{3,10}",placeholder:"ICSE26"},null,2),[[i,{state:e.viewState,set:r=>{e.options.conferenceID=r},value:e.options?.conferenceID,form:"conference",options:{}}]]),t[11]||(t[11]=n("small",{class:"form-text text-muted"},[h("3\u201310 characters, letters, numbers, "),n("code",null,"-"),h(" and "),n("code",null,"_"),h(". Authors reference this when they anonymize.")],-1)),T(n("div",{class:"invalid-feedback"}," The conference ID '"+u(e.options?.conferenceID)+"' is already used. ",513),[[Y,e.conference?.conferenceID?.errors?.used]]),T(n("div",CM," The conference ID is required. ",512),[[Y,e.conference?.conferenceID?.errors?.required]]),T(n("div",EM," The format of the conference ID is incorrect ([a-zA-Z0-9-_]{3,10}). ",512),[[Y,e.conference?.conferenceID?.errors?.pattern]])])]),n("section",SM,[t[17]||(t[17]=n("div",{class:"paper-section-eyebrow"},"Review window",-1)),n("div",NM,[n("div",RM,[t[13]||(t[13]=n("label",{class:"paper-field-label",for:"startDate"},"Start date",-1)),T(n("input",{type:"date",class:O(["form-control",{"is-invalid":e.conference?.startDate?.invalid&&(e.conference?.startDate?.touched||e.conference?.submitted)}]),name:"startDate",id:"startDate",required:""},null,2),[[i,{state:e.viewState,set:r=>{e.options.startDate=r},value:e.options?.startDate,form:"conference",options:{}}]]),t[14]||(t[14]=n("small",{class:"form-text text-muted"},"Beginning of the review process.",-1)),T(n("div",DM," Start date is required. ",512),[[Y,e.conference?.startDate?.errors?.required]]),T(n("div",TM," Start date must be before end date. ",512),[[Y,e.conference?.startDate?.errors?.invalid]])]),n("div",_M,[t[15]||(t[15]=n("label",{class:"paper-field-label",for:"endDate"},"End date",-1)),T(n("input",{type:"date",class:O(["form-control",{"is-invalid":e.conference?.endDate?.invalid&&(e.conference?.endDate?.touched||e.conference?.submitted)}]),name:"endDate",id:"endDate",required:""},null,2),[[i,{state:e.viewState,set:r=>{e.options.endDate=r},value:e.options?.endDate,form:"conference",options:{}}]]),t[16]||(t[16]=n("small",{class:"form-text text-muted"},"All repositories expire on this date.",-1)),T(n("div",AM," End date is required. ",512),[[Y,e.conference?.endDate?.errors?.required]]),T(n("div",OM," End date is invalid. ",512),[[Y,e.conference?.endDate?.errors?.invalid]])])])]),n("section",PM,[t[26]||(t[26]=n("div",{class:"paper-section-eyebrow"},"Rendering defaults",-1)),n("div",IM,[T(n("input",MM,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.link=r},value:e.options?.options?.link,form:"conference",options:{}}]]),t[18]||(t[18]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[19]||(t[19]=n("small",{class:"form-text text-muted"},"Keep or remove all links from text files.",-1))]),n("div",VM,[T(n("input",qM,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.image=r},value:e.options?.options?.image,form:"conference",options:{}}]]),t[20]||(t[20]=n("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[21]||(t[21]=n("small",{class:"form-text text-muted"},"Images are not anonymized.",-1))]),n("div",LM,[T(n("input",$M,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.pdf=r},value:e.options?.options?.pdf,form:"conference",options:{}}]]),t[22]||(t[22]=n("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1)),t[23]||(t[23]=n("small",{class:"form-text text-muted"},"PDFs are not anonymized.",-1))]),n("div",UM,[T(n("input",FM,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.notebook=r},value:e.options?.options?.notebook,form:"conference",options:{}}]]),t[24]||(t[24]=n("label",{class:"form-check-label",for:"notebook"},"Display notebooks",-1)),t[25]||(t[25]=n("small",{class:"form-text text-muted"},"Render Jupyter notebooks instead of raw JSON.",-1))])]),n("section",BM,[t[31]||(t[31]=n("div",{class:"paper-section-eyebrow"},"Features",-1)),n("div",zM,[T(n("input",HM,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.update=r},value:e.options?.options?.update,form:"conference",options:{}}]]),t[27]||(t[27]=n("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[28]||(t[28]=n("small",{class:"form-text text-muted"},"Pull the latest commit automatically (hourly maximum).",-1))]),n("div",jM,[T(n("input",GM,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.page=r},value:e.options?.options?.page,form:"conference",options:{}}]]),t[29]||(t[29]=n("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),t[30]||(t[30]=n("small",{class:"form-text text-muted"},"Enable anonymized GitHub pages.",-1))])]),n("section",WM,[t[32]||(t[32]=n("div",{class:"paper-section-eyebrow"},"Plan",-1)),t[33]||(t[33]=n("p",{class:"paper-section-copy"},"The review package is prepaid and covers up to 180 days. Pay from the conference page after creating it. Plan and review dates cannot change after creation.",-1)),n("div",KM,[(l(!0),d(W,null,oe(e.plans,(r,a)=>(l(),d("label",{class:O(["paper-plan-card",{selected:e.options?.plan?.planID==r?.id}])},[T(n("input",{type:"radio",disabled:e.editionMode,name:"planPicker",value:r?.id},null,8,YM),[[i,{state:e.viewState,set:p=>{e.options.plan.planID=p},value:e.options?.plan?.planID,form:"conference",options:{}}]]),n("div",{class:"paper-plan-head",textContent:u(r?.name)},null,8,JM),n("div",QM,[h(u(r.id==="free_conference"?"Free":"Prepaid package")+" ",1),n("span",XM,u(r.id==="free_conference"?"":"Price on the conference page"),1)]),n("div",{class:"paper-plan-desc",innerHTML:e.sanitize(r?.description)},null,8,ZM)],2))),256))])]),e.plan?.pricePerRepo>0?(l(),d("section",xM,[t[41]||(t[41]=n("div",{class:"paper-section-eyebrow"},"Billing",-1)),n("div",eV,[t[34]||(t[34]=n("label",{class:"paper-field-label",for:"billing_name"},"Name",-1)),T(n("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.billing_name?.invalid&&(e.conference?.billing_name?.touched||e.conference?.submitted)}]),name:"billing_name",id:"billing_name",required:"",placeholder:"First & last name"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.name=r},value:e.options?.billing?.name,form:"conference",options:{}}]])]),n("div",tV,[t[35]||(t[35]=n("label",{class:"paper-field-label",for:"email"},"Email",-1)),T(n("input",{type:"email",class:O(["form-control",{"is-invalid":e.conference?.email?.invalid&&(e.conference?.email?.touched||e.conference?.submitted)}]),name:"email",id:"email",required:"",placeholder:"you@example.org"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.email=r},value:e.options?.billing?.email,form:"conference",options:{}}]])]),n("div",nV,[t[36]||(t[36]=n("label",{class:"paper-field-label",for:"inputAddress"},"Address",-1)),T(n("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.inputAddress?.invalid&&(e.conference?.inputAddress?.touched||e.conference?.submitted)}]),name:"inputAddress",id:"inputAddress",required:"",placeholder:"1234 Main St"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.address=r},value:e.options?.billing?.address,form:"conference",options:{}}]])]),n("div",oV,[T(n("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.inputAddress2?.invalid&&(e.conference?.inputAddress2?.touched||e.conference?.submitted)}]),name:"inputAddress2",id:"inputAddress2",placeholder:"Apartment, studio, or floor"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.address2=r},value:e.options?.billing?.address2,form:"conference",options:{}}]])]),n("div",sV,[n("div",iV,[t[37]||(t[37]=n("label",{class:"paper-field-label",for:"city"},"City",-1)),T(n("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.city?.invalid&&(e.conference?.city?.touched||e.conference?.submitted)}]),name:"city",id:"city",required:"",placeholder:"City"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.city=r},value:e.options?.billing?.city,form:"conference",options:{}}]])]),n("div",rV,[t[38]||(t[38]=n("label",{class:"paper-field-label",for:"country"},"Country",-1)),T(n("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.country?.invalid&&(e.conference?.country?.touched||e.conference?.submitted)}]),name:"country",id:"country",required:"",placeholder:"Country"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.country=r},value:e.options?.billing?.country,form:"conference",options:{}}]])]),n("div",aV,[t[39]||(t[39]=n("label",{class:"paper-field-label",for:"zip"},"Zip",-1)),T(n("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.zip?.invalid&&(e.conference?.zip?.touched||e.conference?.submitted)}]),name:"zip",id:"zip",required:"",placeholder:"Zip"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.zip=r},value:e.options?.billing?.zip,form:"conference",options:{}}]])])]),n("div",lV,[t[40]||(t[40]=n("label",{class:"paper-field-label",for:"vat"},"VAT number",-1)),T(n("input",{type:"text",class:O(["form-control",{"is-invalid":e.conference?.vat?.invalid&&(e.conference?.vat?.touched||e.conference?.submitted)}]),name:"vat",id:"vat",placeholder:"VAT Number"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.vat=r},value:e.options?.billing?.vat,form:"conference",options:{}}]])])])):c("v-if",!0),n("div",dV,[e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:u(e.error)},null,8,uV)):c("v-if",!0),e.message?(l(),d("div",{key:1,class:"alert alert-success",role:"alert",textContent:u(e.message)},null,8,cV)):c("v-if",!0),n("button",{id:"send",disabled:e.saving,type:"submit",class:"btn btn-ink",onClick:t[0]||(t[0]=ae(r=>e.submitForm(r,()=>{e.submit(r)}),["prevent"]))},u(e.saving?e.editionMode?"Updating\u2026":"Creating\u2026":e.editionMode?"Update conference":"Create conference"),9,pV)])])),[[s,e.viewState]])])])}var fV={key:0,class:"dir-card","aria-label":"Repository files"},mV=["onClick"],hV={class:"dir-name"},vV=["href"],gV={class:"dir-name"},yV={class:"dir-meta"},bV={class:"file-card-head"},wV={class:"file-card-path"},kV={class:"breadcrumb paths","aria-label":"Path"},CV={class:"breadcrumb-item breadcrumb-root"},EV=["href","title","textContent"],SV=["aria-current"],NV=["aria-label"],RV={class:"mobile-sub"},DV={key:0},TV={key:1},_V={key:2},AV=["aria-label","title"],OV={class:"ui-icon","aria-hidden":"true"},PV=["href"],IV={key:0,class:"file-card-meta"},MV={class:"meta-extra"},VV={class:"meta-redact"},qV={key:1,class:"file-card-meta"},LV={class:"meta-redact"},$V={class:"file-card-actions"},UV={key:0,class:"symbols"},FV=["aria-expanded"],BV={key:0,class:"symbols-menu",role:"menu"},zV={class:"symbols-head"},HV=["onClick"],jV={class:"symbols-name"},GV={class:"symbols-line"},WV=["title"],KV=["title"],YV=["title"],JV=["aria-pressed"],QV={class:"tb-file",role:"group","aria-label":"File actions"},XV=["title","href"],ZV=["aria-label","title"],xV={class:"ui-icon","aria-hidden":"true"},e6=["href"],t6=["href"],n6=["aria-label"],o6={class:"ui-icon","aria-hidden":"true"},s6=["href"],i6={key:6,class:"tb-toc-m"},r6=["aria-expanded"],a6=["onClick"],l6={class:"tb-more"},d6=["aria-expanded"],u6={viewBox:"0 0 24 24",class:"ui-icon","aria-hidden":"true",style:{fill:"currentColor",stroke:"none"}},c6={key:0,class:"tb-menu-note"},p6={key:1,class:"tb-menu-note tb-menu-meta"},f6={key:2,class:"tb-menu-sep"},m6={key:4,class:"tb-menu-sep"},h6=["aria-checked"],v6={key:0,class:"tb-menu-check"},g6={key:8,class:"tb-menu-sep"},y6=["href"],b6=["href"],w6=["href"],k6=["href"],C6=["href"],E6=["href"],S6=["placeholder","aria-invalid"],N6={key:0,class:"file-card-body"},R6={key:1,class:"md-find-bar",role:"search"},D6=["value"],T6={class:"md-find-nav"},_6=["disabled"],A6=["disabled"],O6={class:"md-find-count","aria-live":"polite"},P6=["aria-pressed"],I6={key:2,class:"reading-layout"},M6=["innerHTML"],V6={key:0,class:"readme-toc","aria-label":"On this page"},q6={class:"toc-rail"},L6=["href","onClick"],$6=["src"],U6=["src"],F6={key:6},B6={controls:"controls"},z6=["src"],H6={key:7},j6={key:8,class:"file-error container d-flex h-100"},G6={class:"paper-ratelimit-card m-auto",style:{"max-width":"520px"}},W6={class:"paper-error-msg"},K6={key:9,class:"file-error container d-flex h-100"},Y6={class:"viewer-error paper-error-card file-error-card m-auto",role:"alert","aria-labelledby":"viewer-error-title"},J6={id:"viewer-error-title",class:"paper-empty-title"},Q6={class:"paper-error-actions"},X6={key:0,href:"/",class:"btn btn-sm"},Z6={key:1,href:"/faq",class:"btn btn-sm"},x6={key:2,class:"btn btn-outline-ink",href:"/dashboard"},eq={key:10,class:"viewer-loading","aria-busy":"true"},tq={class:"viewer-loading-status",role:"status","aria-live":"polite"},nq={class:"viewer-loading-name sr-only"},oq={key:0},sq={class:"viewer-loading-lines","aria-hidden":"true"},iq={key:11,class:"file-error container d-flex h-100"},rq={key:12,class:"file-error container d-flex h-100"},aq={key:13,class:"file-error container d-flex h-100"},lq={class:"paper-empty-title m-auto"},dq=["href"];function xl(e,t){let o=We("html-doc"),i=We("pdfviewer"),s=We("notebook"),r=we("code-editor");return l(),d(W,null,[e.sidebarHidden&&e.type=="html"&&e.content!=null&&e.paths?.length===1&&/^readme/i.test(e.paths[0]||"")&&e.files?.length?(l(),d("section",fV,[t[35]||(t[35]=n("header",{class:"dir-card-head"},[n("span",{class:"dir-card-title"},"Files"),n("span",{class:"dir-card-sub"},"Snapshot of the repository at review time")],-1)),n("ul",{class:O(["dir-list",{"is-expanded":e.dirExpanded}])},[(l(!0),d(W,null,oe(e.rootEntries(),a=>(l(),d("li",{key:a.name},[a.size==null?(l(),d("button",{key:0,type:"button",class:"dir-row",onClick:p=>e.revealFolder(a.name)},[t[32]||(t[32]=n("svg",{class:"dir-icon",viewBox:"0 0 16 16","aria-hidden":"true"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})],-1)),n("span",hV,u(a.name),1),t[33]||(t[33]=n("span",{class:"dir-meta"},"Folder",-1))],8,mV)):(l(),d("a",{key:1,class:O(["dir-row",{"is-current":a.name===e.paths[0]}]),href:e.safeUrl("/r/"+e.repoId+"/"+encodeURIComponent(a.name))},[t[34]||(t[34]=n("svg",{class:"dir-icon",viewBox:"0 0 16 16","aria-hidden":"true"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})],-1)),n("span",gV,u(a.name),1),n("span",yV,u(e.formatSize(a.size)),1)],10,vV))]))),128))],2),!e.dirExpanded&&e.files.length>8?(l(),d("button",{key:0,type:"button",class:"dir-more",onClick:t[0]||(t[0]=a=>e.dirExpanded=!0)},"Show all "+u(e.files.length)+" items",1)):c("v-if",!0)])):c("v-if",!0),(e.type=="text"||e.type=="code"||e.type=="html"||e.type=="html-doc"&&e.showSource)&&e.content!=null?(l(),d("section",{key:1,class:O(["file-card",{"is-code":e.type!="html","no-wrap":!e.wrapLines}])},[n("header",bV,[n("div",wV,[n("button",{type:"button",class:O(["btn btn-sm btn-icon-only btn-ghost card-files-btn",{"is-needed":e.sidebarHidden}]),"aria-label":"Show file tree",title:"Show file tree",onClick:t[1]||(t[1]=a=>e.sidebarHidden?e.sidebarHidden=!1:e.sidebarCollapsed=!1)},[...t[36]||(t[36]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sidebar"})],-1)])],2),n("ol",kV,[n("li",CV,[n("a",{href:e.safeUrl("/r/"+e.repoId+"/"),title:e.repoId,textContent:u(/^[0-9a-f]{8}-[0-9a-f]{4}-/i.test(e.repoId||"")?"repository":e.repoId)},null,8,EV)]),(l(!0),d(W,null,oe(e.paths,(a,p)=>(l(),d("li",{class:"breadcrumb-item","aria-current":p===e.paths.length-1?"page":null},[(l(!0),d(W,null,oe(e.redactParts(a),(f,g)=>(l(),d(W,{key:g},[f.n?(l(),d("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+f.n},[n("i",null,u(f.n),1)],8,NV)):(l(),d(W,{key:1},[h(u(f.t),1)],64))],64))),128))],8,SV))),256))]),n("span",RV,[n("span",null,u(e.type=="html"?"Markdown":e.languageName||"Text"),1),e.type!="html"&&typeof e.content=="string"?(l(),d("span",DV,u(e.fmt?.number(e.content.split(` -`).length))+" lines",1)):c("v-if",!0),e.type=="html"&&e.fileSize(e.filePath)!=null?(l(),d("span",TV,u(e.formatSize(e.fileSize(e.filePath))),1)):c("v-if",!0),e.redactionCount()?(l(),d("b",_V,u(e.redactionCount())+" redacted",1)):c("v-if",!0)]),T(n("button",{type:"button",class:"btn btn-sm btn-icon-only btn-ghost copy-path-btn","aria-label":e.pathCopied?"Path copied":"Copy file path",title:e.pathCopied?"Path copied":"Copy file path",onClick:t[2]||(t[2]=a=>e.copyPath())},[(l(),d("svg",OV,[n("use",{href:e.pathCopied?"#ui-icon-check":"#ui-icon-link"},null,8,PV)]))],8,AV),[[Y,e.filePath]])]),e.type!="html"&&typeof e.content=="string"?(l(),d("span",IV,[e.languageName?(l(),d(W,{key:0},[h(u(e.languageName),1),t[37]||(t[37]=n("span",{class:"sep"},"\xB7",-1))],64)):c("v-if",!0),h(u(e.fmt?.number(e.content.split(` -`).length))+" lines",1),n("span",MV,[t[38]||(t[38]=n("span",{class:"sep"},"\xB7",-1)),h(u(e.content.length<1024?e.content.length+" B":(e.content.length/1024).toFixed(1)+" KB"),1)]),e.redactionCount()?(l(),d(W,{key:1},[t[39]||(t[39]=n("span",{class:"sep"},"\xB7",-1)),n("span",VV,u(e.redactionCount())+" redacted",1)],64)):c("v-if",!0)])):c("v-if",!0),e.type=="html"?(l(),d("span",qV,[t[42]||(t[42]=h("Markdown",-1)),e.fileSize(e.filePath)!=null?(l(),d(W,{key:0},[t[40]||(t[40]=n("span",{class:"sep"},"\xB7",-1)),h(u(e.formatSize(e.fileSize(e.filePath))),1)],64)):c("v-if",!0),e.redactionCount()?(l(),d(W,{key:1},[t[41]||(t[41]=n("span",{class:"sep"},"\xB7",-1)),n("span",LV,u(e.redactionCount())+" redacted",1)],64)):c("v-if",!0)])):c("v-if",!0),n("div",$V,[e.type!="html"&&e.symbols().length>1?(l(),d("div",UV,[n("button",{type:"button",class:O(["btn btn-sm btn-ghost btn-symbols",{"is-on":e.symbolsOpen}]),"aria-expanded":e.symbolsOpen?"true":"false","aria-haspopup":"true",title:"Symbols in this file",onClick:t[3]||(t[3]=a=>e.symbolsOpen=!e.symbolsOpen)},[...t[43]||(t[43]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-list"})],-1),n("span",{class:"btn-find-label"},"Symbols",-1)])],10,FV),e.symbolsOpen?(l(),d("div",BV,[n("div",zV,u(e.symbols().length)+" "+u(e.symbols().length===1?"symbol":"symbols"),1),(l(!0),d(W,null,oe(e.symbols(),a=>(l(),d("button",{type:"button",class:"symbols-item",role:"menuitem",key:a.line+a.name,onClick:p=>e.goToSymbol(a.line)},[n("span",{class:O(["symbols-kind","is-"+a.kind])},u(a.kind==="class"?"C":a.kind==="function"?"\u0192":"v"),3),n("span",jV,u(a.name),1),n("span",GV,u(a.line),1)],8,HV))),128))])):c("v-if",!0)])):c("v-if",!0),e.type=="html"?(l(),d("button",{key:1,type:"button",class:O(["btn btn-sm btn-ghost btn-icon-only btn-find btn-md-find",{"is-on":e.mdFindOpen}]),"aria-label":"Find on this page",title:"Find on this page ("+(e.isMac?"\u2318":"Ctrl+")+"F)",onClick:t[4]||(t[4]=a=>e.toggleMdFind())},[...t[44]||(t[44]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)])],10,WV)):c("v-if",!0),e.type!="html"?(l(),d("button",{key:2,type:"button",class:"btn btn-sm btn-ghost btn-icon-only btn-find","aria-label":"Find in file",title:"Find in file ("+(e.isMac?"\u2318":"Ctrl+")+"F)",onClick:t[5]||(t[5]=a=>e.findInFile())},[...t[45]||(t[45]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)])],8,KV)):c("v-if",!0),e.type!="html"?(l(),d("button",{key:3,type:"button",class:"btn btn-sm btn-ghost btn-icon-only btn-goto","aria-label":"Go to line",title:"Go to line ("+(e.isMac?"\u2318":"Ctrl+")+"G)",onClick:t[6]||(t[6]=a=>e.gotoLine())},[...t[46]||(t[46]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-goto"})],-1)])],8,YV)):c("v-if",!0),e.type!="html"?(l(),d("button",{key:4,type:"button",class:O(["btn btn-sm btn-icon-only btn-ghost btn-toggle",{"is-on":e.wrapLines}]),"aria-pressed":e.wrapLines?"true":"false","aria-label":"Wrap long lines",title:"Wrap long lines (Alt+Z)",onClick:t[7]||(t[7]=a=>e.toggleWrap())},[...t[47]||(t[47]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-wrap"})],-1)])],10,JV)):c("v-if",!0),n("div",QV,[n("a",{target:"_self",class:"tb-seg-btn",title:e.type=="html"?"Open the Markdown source":"Open the raw file",href:e.safeUrl(e.url)},"Raw",8,XV),typeof e.content=="string"?(l(),d("button",{key:0,type:"button",class:"tb-seg-btn tb-seg-icon","aria-label":e.contentCopied?"Copied":"Copy file contents",title:e.contentCopied?"Copied":"Copy file contents",onClick:t[8]||(t[8]=a=>e.copyContent())},[(l(),d("svg",xV,[n("use",{href:e.contentCopied?"#ui-icon-check":"#project-icon-copy"},null,8,e6)]))],8,ZV)):c("v-if",!0),n("a",{target:"_self",class:"tb-seg-btn tb-seg-icon","aria-label":"Download file",title:"Download file",href:e.safeUrl(e.url+"&download=true")},[...t[48]||(t[48]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1)])],8,t6)]),typeof e.content=="string"?(l(),d("button",{key:5,type:"button",class:"btn btn-sm btn-icon-only btn-ghost tb-copy-m","aria-label":e.contentCopied?"Copied":"Copy file contents",onClick:t[9]||(t[9]=a=>e.copyContent())},[(l(),d("svg",o6,[n("use",{href:e.contentCopied?"#ui-icon-check":"#project-icon-copy"},null,8,s6)]))],8,n6)):c("v-if",!0),e.type=="html"&&e.readmeToc().length>=3?(l(),d("div",i6,[n("button",{type:"button",class:O(["btn btn-sm btn-icon-only btn-ghost tb-toc-btn",{"is-on":e.tocOpen}]),"aria-label":"On this page",title:"On this page","aria-haspopup":"true","aria-expanded":e.tocOpen?"true":"false",onClick:t[10]||(t[10]=ae(a=>{e.tocOpen=!e.tocOpen,e.moreOpen=!1},["stop"]))},[...t[49]||(t[49]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-outline"})],-1)])],10,r6),e.tocOpen?(l(),d("div",{key:0,class:"tb-menu tb-toc-menu",role:"menu",onClick:t[12]||(t[12]=a=>e.tocOpen=!1)},[t[50]||(t[50]=n("div",{class:"tb-menu-label"},"On this page",-1)),n("button",{type:"button",role:"menuitem",class:O(["tb-menu-toc","lvl-2",{"is-active":!e.activeHeading}]),onClick:t[11]||(t[11]=a=>e.scrollToHeading(null))},"Introduction",2),(l(!0),d(W,null,oe(e.readmeToc(),a=>(l(),d("button",{type:"button",role:"menuitem",key:"m-"+a.id,class:O(["tb-menu-toc","lvl-"+a.level,{"is-active":e.activeHeading===a.id}]),onClick:p=>e.scrollToHeading(a.id)},u(a.text),11,a6))),128))])):c("v-if",!0)])):c("v-if",!0),n("div",l6,[n("button",{type:"button",class:O(["btn btn-sm btn-icon-only btn-ghost tb-more-btn",{"is-on":e.moreOpen}]),"aria-label":"More actions","aria-haspopup":"true","aria-expanded":e.moreOpen?"true":"false",onClick:t[13]||(t[13]=ae(a=>{e.tocOpen=!1,e.moreOpen=!e.moreOpen},["stop"]))},[(l(),d("svg",u6,[...t[51]||(t[51]=[n("circle",{cx:"5",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"12",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"19",cy:"12",r:"1.8"},null,-1)])]))],10,d6),e.moreOpen?(l(),d("div",{key:0,class:"tb-menu",role:"menu",onClick:t[19]||(t[19]=a=>e.moreOpen=!1)},[e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(l(),d("div",c6,[t[52]||(t[52]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),h("Snapshot \xB7 "+u(e.fmt?.date(e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),1)])):c("v-if",!0),typeof e.content=="string"?(l(),d("div",p6,[h(u(e.type=="html"?"Markdown":e.languageName||"Text"),1),e.type!="html"?(l(),d(W,{key:0},[h(" \xB7 "+u(e.fmt?.number(e.content.split(` -`).length))+" lines",1)],64)):c("v-if",!0),h(" \xB7 "+u(e.type=="html"&&e.fileSize(e.filePath)!=null?e.formatSize(e.fileSize(e.filePath)):e.content.length<1024?e.content.length+" B":(e.content.length/1024).toFixed(1)+" KB"),1)])):c("v-if",!0),e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(l(),d("div",f6)):c("v-if",!0),e.type=="html"?(l(),d("button",{key:3,type:"button",role:"menuitem",onClick:t[14]||(t[14]=a=>e.toggleMdFind())},[...t[53]||(t[53]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1),h("Find in file",-1)])])):c("v-if",!0),e.type=="html"?(l(),d("div",m6)):c("v-if",!0),e.type!="html"?(l(),d("button",{key:5,type:"button",role:"menuitem",onClick:t[15]||(t[15]=a=>e.findInFile())},[...t[54]||(t[54]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1),h("Find in file",-1)])])):c("v-if",!0),e.type!="html"?(l(),d("button",{key:6,type:"button",role:"menuitem",onClick:t[16]||(t[16]=a=>e.gotoLine())},[...t[55]||(t[55]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-goto"})],-1),h("Go to line",-1)])])):c("v-if",!0),e.type!="html"?(l(),d("button",{key:7,type:"button",role:"menuitemcheckbox","aria-checked":e.wrapLines?"true":"false",onClick:t[17]||(t[17]=a=>e.toggleWrap())},[t[56]||(t[56]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-wrap"})],-1)),t[57]||(t[57]=h("Wrap lines",-1)),e.wrapLines?(l(),d("span",v6,"\u2713")):c("v-if",!0)],8,h6)):c("v-if",!0),e.type!="html"?(l(),d("div",g6)):c("v-if",!0),e.type=="html"?(l(),d("a",{key:9,role:"menuitem",target:"_self",href:e.safeUrl(e.url)},[...t[58]||(t[58]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),h("View raw",-1)])],8,y6)):c("v-if",!0),e.type!="html"?(l(),d("a",{key:10,role:"menuitem",target:"_self",href:e.safeUrl(e.url)},[...t[59]||(t[59]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),h("View raw",-1)])],8,b6)):c("v-if",!0),n("a",{role:"menuitem",target:"_self",href:e.safeUrl(e.url+"&download=true")},[...t[60]||(t[60]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),h("Download file",-1)])],8,w6),e.options?.hasWebsite?(l(),d("a",{key:11,role:"menuitem",target:"_self",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[61]||(t[61]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),h("Open website",-1)])],8,k6)):c("v-if",!0),e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:12,role:"menuitem",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[62]||(t[62]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),h("Edit anonymization",-1)])],8,C6)):c("v-if",!0),e.options?.download?(l(),d("a",{key:13,role:"menuitem",target:"_self",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[63]||(t[63]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-archive"})],-1),h("Download ZIP",-1)])],8,E6)):c("v-if",!0),n("button",{type:"button",role:"menuitem",onClick:t[18]||(t[18]=a=>e.copyPath())},[...t[64]||(t[64]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-link"})],-1),h("Copy file path",-1)])]),t[65]||(t[65]=n("div",{class:"tb-menu-sep"},null,-1)),t[66]||(t[66]=n("a",{role:"menuitem",href:"/faq"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})]),h("FAQ")],-1)),t[67]||(t[67]=n("a",{role:"menuitem",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",target:"_blank",rel:"noopener"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),h("Report a bug")],-1))])):c("v-if",!0)])]),e.gotoOpen&&e.type!="html"?(l(),d("form",{key:2,class:"goto-pop",role:"dialog","aria-label":"Go to line",onSubmit:t[22]||(t[22]=ae(a=>e.submitGoto(),["prevent"]))},[t[68]||(t[68]=n("label",{class:"goto-label",for:"goto-input"},"Go to line",-1)),T(n("input",{id:"goto-input",class:"goto-input",type:"text",inputmode:"numeric",autocomplete:"off",spellcheck:"false",placeholder:"1\u2013"+e.fmt?.number(typeof e.content=="string"?e.content.split(` -`).length:1),"aria-invalid":e.gotoError?"true":"false","onUpdate:modelValue":t[20]||(t[20]=a=>e.gotoValue=a),onKeydown:t[21]||(t[21]=ct(ae(a=>e.closeGoto(),["prevent","stop"]),["esc"]))},null,40,S6),[[ot,e.gotoValue]]),n("span",{class:O(["goto-hint",{"is-error":e.gotoError}])},u(e.gotoError||"Line, or line:column"),3)],32)):c("v-if",!0)]),e.type!="html"?T((l(),d("div",N6,null,512)),[[r,{content:e.content,options:e.aceOption}]]):c("v-if",!0),e.type=="html"&&e.mdFindOpen?(l(),d("div",R6,[n("input",{type:"search",class:"md-find-input",placeholder:"Find on this page","aria-label":"Find on this page",value:e.mdFindQuery,onInput:t[23]||(t[23]=a=>{e.mdFindQuery=a.target.value,e.runMdFind()}),onKeydown:[t[24]||(t[24]=ct(ae(a=>a.shiftKey?e.stepMdFind(-1):e.stepMdFind(1),["prevent"]),["enter"])),t[25]||(t[25]=ct(ae(a=>e.toggleMdFind(!1),["prevent"]),["esc"]))]},null,40,D6),n("span",T6,[n("button",{type:"button","aria-label":"Previous match",onClick:t[26]||(t[26]=a=>e.stepMdFind(-1)),disabled:!e.mdFindTotal},[...t[69]||(t[69]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,_6),n("button",{type:"button","aria-label":"Next match",onClick:t[27]||(t[27]=a=>e.stepMdFind(1)),disabled:!e.mdFindTotal},[...t[70]||(t[70]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,A6)]),n("span",O6,u(e.mdFindQuery?e.mdFindTotal?e.mdFindIndex+1+" of "+e.mdFindTotal:"No results":""),1),n("button",{type:"button",class:O(["md-find-opt",{"is-on":e.mdFindCase}]),"aria-pressed":e.mdFindCase?"true":"false",title:"Match case","aria-label":"Match case",onClick:t[28]||(t[28]=a=>{e.mdFindCase=!e.mdFindCase,e.runMdFind()})},"Aa",10,P6),n("button",{type:"button",class:"md-find-close","aria-label":"Close find",onClick:t[29]||(t[29]=a=>e.toggleMdFind(!1))},"\xD7")])):c("v-if",!0),e.type=="html"?(l(),d("div",I6,[n("div",{class:"file-content markdown-body",innerHTML:e.renderReadme(e.sanitize(e.content))},null,8,M6),e.readmeToc().length>=3?(l(),d("aside",V6,[t[71]||(t[71]=n("div",{class:"readme-toc-head"},"On this page",-1)),n("nav",q6,[n("a",{href:"#",class:O(["lvl-2 toc-top",{"is-active":!e.activeHeading}]),onClick:t[30]||(t[30]=ae(a=>e.scrollToHeading(null),["prevent"]))},"Introduction",2),(l(!0),d(W,null,oe(e.readmeToc(),(a,p)=>(l(),d("a",{key:a.id,href:"#"+a.id,class:O(["lvl-"+a.level,{"is-active":e.activeHeading===a.id}]),onClick:ae(f=>e.scrollToHeading(a.id),["prevent"])},u(a.text),11,L6))),128))])])):c("v-if",!0)])):c("v-if",!0)],2)):c("v-if",!0),e.type=="html-doc"&&!e.showSource&&e.content!=null?(l(),Bt(o,{key:2,content:e.content,"base-url":e.fileBaseUrl,"allow-scripts":e.allowScripts},null,8,["content","base-url","allow-scripts"])):c("v-if",!0),e.type=="image"?(l(),d("img",{key:3,class:"image-content",src:e.safeUrl(e.url)},null,8,$6)):c("v-if",!0),e.type=="media"?(l(),d("iframe",{key:4,class:"h-100 overflow-auto w-100 b-0",src:e.safeUrl(e.url)},null,8,U6)):c("v-if",!0),e.type=="pdf"?(l(),Bt(i,{key:5,src:e.safeUrl(e.url)},null,8,["src"])):c("v-if",!0),e.type=="audio"?(l(),d("div",F6,[n("audio",B6,[n("source",{src:e.safeUrl(e.url)},null,8,z6)])])):c("v-if",!0),e.type=="IPython"?(l(),d("div",H6,[De(s,{file:e.url,content:e.content},null,8,["file","content"])])):c("v-if",!0),e.type=="rate_limited"?(l(),d("div",j6,[n("div",G6,[t[74]||(t[74]=me('
Temporarily paused
GitHub API rate limit reached
',1)),n("p",W6,[t[72]||(t[72]=h("This repository will be available in ",-1)),n("strong",null,u(e.rateLimitCountdown),1),t[73]||(t[73]=h(". The page will reload automatically.",-1))])])])):c("v-if",!0),e.type=="error"?(l(),d("div",K6,[n("section",Y6,[n("h1",J6,u(e.fmt.translate(e.isSourceAccessError()?"VIEWER_ERRORS.access_title":"VIEWER_ERRORS.title")),1),n("p",null,u(e.fmt.translate("ERRORS."+e.content)),1),e.isSourceAccessError()?(l(),d(W,{key:0},[n("p",null,u(e.fmt.translate("VIEWER_ERRORS.reader_help")),1),n("p",null,u(e.fmt.translate("VIEWER_ERRORS.owner_help")),1)],64)):c("v-if",!0),n("div",Q6,[e.isSourceAccessError()?c("v-if",!0):(l(),d("a",X6,"Back to home")),e.isSourceAccessError()?c("v-if",!0):(l(),d("a",Z6,"Read the FAQ")),n("button",{type:"button",class:"btn btn-primary",onClick:t[31]||(t[31]=a=>e.retryContent())},u(e.fmt.translate("VIEWER_ERRORS.retry")),1),e.isSourceAccessError()?(l(),d("a",x6,u(e.fmt.translate("VIEWER_ERRORS.dashboard")),1)):c("v-if",!0)])])])):c("v-if",!0),e.type=="loading"&&!e.error?(l(),d("section",eq,[n("div",tq,[n("strong",null,u(e.fmt.translate(e.fileReceivedBytes?"VIEWER_LOADING.receiving":"VIEWER_LOADING.loading")),1),n("span",nq,u(e.filePath),1),e.fileLoadingSlow?(l(),d("p",oq,u(e.fmt.translate("VIEWER_LOADING.slow")),1)):c("v-if",!0)]),n("div",sq,[(l(),d(W,null,oe(10,a=>n("span",{key:a})),64))])])):c("v-if",!0),e.type=="empty"?(l(),d("div",iq,[...t[75]||(t[75]=[n("h1",{class:"paper-empty-title m-auto"},[h("Empty "),n("em",null,"repository"),h(".")],-1)])])):c("v-if",!0),e.content==null&&!["empty","loading","error","rate_limited"].includes(e.type)?(l(),d("div",rq,[...t[76]||(t[76]=[n("h1",{class:"paper-empty-title m-auto"},[h("Empty "),n("em",null,"file"),h(".")],-1)])])):c("v-if",!0),e.type=="binary"?(l(),d("div",aq,[n("h1",lq,[t[77]||(t[77]=h("Unsupported ",-1)),t[78]||(t[78]=n("em",null,"binary file",-1)),t[79]||(t[79]=h(". You can ",-1)),n("a",{target:"_blank",href:e.safeUrl(e.url+"&download=true")},"download it",8,dq),t[80]||(t[80]=h(".",-1))])])):c("v-if",!0)],64)}var uq={class:"container page dashboard-page paper-page"},cq={class:"row"},pq={class:"w-100"},fq={class:"w-100","aria-label":"Pull Requests","accept-charset":"UTF-8"},mq={class:"d-flex flex-column flex-md-row align-items-md-center",style:{gap:"8px"}},hq={class:"flex-grow-1"},vq={type:"search",id:"search",class:"form-control","aria-label":"Find a pull request...",placeholder:"Find a pull request...",autocomplete:"off"},gq={class:"d-flex flex-wrap",style:{gap:"6px"}},yq={class:"dropdown"},bq={class:"dropdown-menu","aria-labelledby":"dropdownSort"},wq={class:"form-check dropdown-item"},kq={class:"form-check-input",type:"radio",name:"sort",id:"sortFullName",value:"fullName"},Cq={class:"form-check dropdown-item"},Eq={class:"form-check-input",type:"radio",name:"sort",id:"sortAnonymizeDate",value:"-anonymizeDate"},Sq={class:"form-check dropdown-item"},Nq={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},Rq={class:"form-check dropdown-item"},Dq={class:"form-check-input",type:"radio",name:"sort",id:"sortLastView",value:"-lastView"},Tq={class:"form-check dropdown-item"},_q={class:"form-check-input",type:"radio",name:"sort",id:"sortPageView",value:"-pageView"},Aq={class:"dropdown"},Oq={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},Pq={class:"form-check dropdown-item"},Iq={class:"form-check-input",type:"checkbox",name:"sort",id:"statusReady",value:"ready"},Mq={class:"form-check dropdown-item"},Vq={class:"form-check-input",type:"checkbox",name:"sort",id:"statusExpired",value:"expired"},qq={class:"form-check dropdown-item"},Lq={class:"form-check-input",type:"checkbox",name:"sort",id:"statusRemoved",value:"removed"},$q={class:"d-flex flex-wrap mt-2",style:{gap:"6px"}},Uq={class:"filter-chip"},Fq=["onClick"],Bq={class:"repo-list w-100"},zq={class:"repo-list-item-content"},Hq={class:"repo-list-item-main"},jq={class:"repo-list-item-header"},Gq=["textContent","href"],Wq=["textContent"],Kq=["textContent"],Yq={class:"repo-source"},Jq=["href"],Qq={class:"repo-date"},Xq={class:"repo-meta"},Zq={key:0,title:"Conference"},xq=["title"],eL=["title"],tL=["title"],nL={key:1},oL={class:"repo-list-item-actions"},sL={class:"dropdown"},iL={class:"dropdown-menu dropdown-menu-right"},rL=["href"],aL=["onClick"],lL=["onClick"],dL=["onClick"],uL=["href"],cL={key:0,class:"repo-list-empty"};function ed(e,t){let o=we("field"),i=we("form");return l(),d("div",uq,[n("div",cq,[n("div",pq,[t[12]||(t[12]=me('
My work \xA0/\xA0 Pull requests

Anonymized pull requests

Track PR mirrors you\u2019ve created and their reviewer traffic.

',2)),c(" Search + filters row "),T((l(),d("form",fq,[n("div",mq,[n("div",hq,[T(n("input",vq,null,512),[[o,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),n("div",gq,[n("div",yq,[t[6]||(t[6]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Sort ",-1)),n("div",bq,[t[5]||(t[5]=n("h6",{class:"dropdown-header"},"Select order",-1)),n("div",wq,[T(n("input",kq,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[0]||(t[0]=n("label",{class:"form-check-label",for:"sortFullName"},"Pull Request",-1))]),n("div",Cq,[T(n("input",Eq,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[1]||(t[1]=n("label",{class:"form-check-label",for:"sortAnonymizeDate"},"Anonymize Date",-1))]),n("div",Sq,[T(n("input",Nq,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[2]||(t[2]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),n("div",Rq,[T(n("input",Dq,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[3]||(t[3]=n("label",{class:"form-check-label",for:"sortLastView"},"Last View",-1))]),n("div",Tq,[T(n("input",_q,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=n("label",{class:"form-check-label",for:"sortPageView"},"Page View",-1))])])]),n("div",Aq,[t[11]||(t[11]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Status ",-1)),n("div",Oq,[t[10]||(t[10]=n("h6",{class:"dropdown-header"},"Select status",-1)),n("div",Pq,[T(n("input",Iq,null,512),[[o,{state:e.viewState,set:s=>{e.filters.status.ready=s},value:e.filters?.status?.ready,form:null,options:{}}]]),t[7]||(t[7]=n("label",{class:"form-check-label",for:"statusReady"},"Ready",-1))]),n("div",Mq,[T(n("input",Vq,null,512),[[o,{state:e.viewState,set:s=>{e.filters.status.expired=s},value:e.filters?.status?.expired,form:null,options:{}}]]),t[8]||(t[8]=n("label",{class:"form-check-label",for:"statusExpired"},"Expired",-1))]),n("div",qq,[T(n("input",Lq,null,512),[[o,{state:e.viewState,set:s=>{e.filters.status.removed=s},value:e.filters?.status?.removed,form:null,options:{}}]]),t[9]||(t[9]=n("label",{class:"form-check-label",for:"statusRemoved"},"Removed",-1))])])])])])])),[[i,e.viewState]]),c(" Active filter chips "),T(n("div",$q,[(l(!0),d(W,null,oe(e.filters?.status,(s,r,a)=>T((l(),d("span",Uq,[h(u(e.fmt?.title(r))+" ",1),n("button",{type:"button",class:"filter-chip-close","aria-label":"Remove filter",onClick:p=>{e.filters.status[r]=!0}}," \xD7 ",8,Fq)],512)),[[Y,!s]])),256))],512),[[Y,e.filters?.status?.ready===!1||e.filters?.status?.expired===!1||e.filters?.status?.removed===!1]])]),c(" Pull request list "),n("ul",Bq,[(l(!0),d(W,null,oe(e.filteredPullRequests,(s,r)=>(l(),d("li",{class:O(["repo-list-item",{"repo-inactive":s?.status=="expired"||s?.status=="removed"||s?.status=="error"}])},[n("div",zq,[n("div",Hq,[n("div",jq,[n("a",{class:"repo-name",textContent:u(s?.pullRequestId),href:e.safeUrl("/pr/"+s?.pullRequestId)},null,8,Gq),n("span",{class:O(["status-badge",{"status-removed":s?.status=="removed"||s?.status=="expired"||s?.status=="removing"||s?.status=="expiring","status-preparing":s?.status=="preparing"||s?.status=="download","status-ready":s?.status=="ready","status-error":s?.status=="error"}])},[n("span",{textContent:u(e.fmt?.title(s?.status))},null,8,Wq),s?.status=="error"?(l(),d("span",{key:0,textContent:u(": "+s?.statusMessage)},null,8,Kq)):c("v-if",!0)],2)]),n("div",Yq,[n("span",null,[t[13]||(t[13]=n("i",{class:"fab fa-github","aria-hidden":"true"},null,-1)),n("a",{href:e.safeUrl("https://github.com/"+s?.source?.repositoryFullName+"/pull/"+s?.source?.pullRequestId)},u(s?.source?.repositoryFullName)+"#"+u(s?.source?.pullRequestId),9,Jq)]),n("span",{class:O(["status-badge",{"status-ready":s?.merged,"status-removed":s?.state=="open","status-error":s?.state=="closed"&&!s?.merged}]),style:{"font-size":"10px"}},u(e.fmt?.title(s?.merged?"merged":s?.state)),3),n("span",Qq,"anonymized "+u(e.fmt?.humanTime(s?.anonymizeDate)),1)])]),n("div",Xq,[s?.conference?(l(),d("span",Zq,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),h(" "+u(s?.conference),1)])):c("v-if",!0),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Terms: "+s?.options?.terms?.join(", ")},[t[15]||(t[15]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),h(" "+u(e.fmt?.number(s?.options?.terms?.length)),1)],8,xq),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Views: "+e.fmt?.number(s?.pageView)},[t[16]||(t[16]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),h(" "+u(e.fmt?.number(s?.pageView)),1)],8,eL),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Last view: "+e.fmt?.date(s?.lastView)},[t[17]||(t[17]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-calendar"})],-1)),h(" "+u(e.fmt?.humanTime(s?.lastView)),1)],8,tL),s?.options?.expirationMode!="never"&&s?.status=="ready"?(l(),d("span",nL,[t[18]||(t[18]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),h(" Expire: "+u(e.fmt?.humanTime(s?.options?.expirationDate)),1)])):c("v-if",!0)])]),n("div",oL,[n("div",sL,[t[24]||(t[24]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Actions ",-1)),n("div",iL,[n("a",{class:"dropdown-item",href:e.safeUrl("/pull-request-anonymize/"+s?.pullRequestId)},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),h(" Edit ",-1)])],8,rL),T(n("a",{class:"dropdown-item",href:"#",onClick:ae(a=>e.updatePullRequest(s),["prevent"])},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),h(" Force update ",-1)])],8,aL),[[Y,s?.status=="ready"||s?.status=="error"]]),T(n("a",{class:"dropdown-item",href:"#",onClick:ae(a=>e.updatePullRequest(s),["prevent"])},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),h(" Enable ",-1)])],8,lL),[[Y,s?.status=="removed"]]),T(n("a",{class:"dropdown-item",href:"#",onClick:ae(a=>e.removePullRequest(s),["prevent"])},[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),h(" Remove ",-1)])],8,dL),[[Y,s?.status=="ready"]]),n("a",{class:"dropdown-item",href:e.safeUrl("/pr/"+s?.pullRequestId+"/")},[...t[23]||(t[23]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),h(" View PR ",-1)])],8,uL)])])])],2))),256)),e.filteredPullRequests?.length==0?(l(),d("li",cL,[...t[25]||(t[25]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No pull requests to display.",-1)])])):c("v-if",!0)])])])}var pL={class:"container paper-page user-settings"},fL={class:"settings-title"},mL={class:"settings-header-actions"},hL={class:"settings-nav","aria-label":"Settings"},vL=["aria-current","onClick"],gL={class:"settings-row"},yL={class:"form-control",id:"terms",name:"terms",rows:"3",placeholder:`Jane Smith +10 log("epoch %d: %.3f", epoch, loss)
`,2)])])):(l(),d("div",Lq,[...t[17]||(t[17]=[Ce('
ProjectStatusViewsExpires
DeepLearnUtilspaper-7f2a \xB7 ICSE 2027Ready41Mar 31, 2027
vision-bench#212pull request \xB7 FSE 2027Ready12Never
graph-repairgr-91abUpdating5Jan 5, 2027
JarSiftOOPSLA 2025Expired72Sep 28, 2026
',5)])]))],10,Vq)])],8,Oq)),[[J,e.feature===s?.key]])),128))])]),f(" FAQ teaser "),t[27]||(t[27]=Ce('
Before you sign in

The questions that come up most.

Read the full FAQ \u2192
What access does GitHub sign-in require?

The GitHub App has read-only access to gists and the repositories you choose. Legacy OAuth uses broader permissions. Anonymous GitHub never writes to your repositories.

Which file formats are supported?

Source code with syntax highlighting, Markdown, Jupyter notebooks, PDFs, images, and GitHub Pages sites. Text files are anonymized; enabled images and PDFs are served unchanged.

What happens when an anonymized repository expires?

You choose: the mirror is removed, or visitors are redirected to the original GitHub repository once the review is over.

Ready for review?

Create an anonymous mirror in a couple of minutes. Reviewers just open the link.

',2)),n("footer",Uq,[n("div",Fq,[t[21]||(t[21]=n("div",{class:"paper-footer-brand"},[n("div",{class:"paper-footer-mark"},[y("Anonymous "),n("em",null,"GitHub")]),n("p",{class:"paper-footer-tag"}," A read-only, identity-stripped mirror of your repository, built for double-anonymous peer review. ")],-1)),n("div",Bq,[t[18]||(t[18]=n("div",{class:"paper-footer-head"},"Product",-1)),t[19]||(t[19]=n("a",{href:"/anonymize"},"Anonymize",-1)),e.user?(l(),d("a",zq,"My work")):f("v-if",!0),e.user?(l(),d("a",Hq,"Conferences")):f("v-if",!0),t[20]||(t[20]=n("a",{href:"/faq"},"FAQ",-1))]),t[22]||(t[22]=Ce('',2))]),t[24]||(t[24]=n("div",{class:"paper-footer-rule"},null,-1)),n("div",jq,[n("span",null,"\xA9 "+p(e.year||2026)+" Anonymous GitHub \xB7 GPL-3.0 licensed",1),t[23]||(t[23]=n("span",{class:"paper-footer-meta"},"Built for reviewers, by researchers.",-1))])])])}var Gq={class:"paper-empty"},Wq={class:"paper-empty-inner"},Kq={key:0,class:"paper-eyebrow"},Yq={key:1,class:"paper-eyebrow"},Xq={key:2,class:"paper-empty-title"},Jq=["textContent"];function _c(e,t){return l(),d("div",Gq,[n("div",Wq,[e.error?f("v-if",!0):(l(),d("div",Kq,"Working")),e.error?(l(),d("div",Yq,"Error")):f("v-if",!0),e.error?f("v-if",!0):(l(),d("h1",Xq,[...t[0]||(t[0]=[y(" Loading",-1),n("span",{class:"dot-anim"},"\u2026",-1)])])),e.error?(l(),d("h1",{key:3,class:"paper-empty-title",textContent:p(e.fmt.translate(e.error))},null,8,Jq)):f("v-if",!0)])])}var Qq={class:"container paper-page paper-settings"},Zq={class:"paper-crumbs"},xq={class:"here"},e$={class:"paper-page-title"},t$={class:"paper-settings-body"},n$={class:"paper-settings-toc"},s$={href:"#conf-billing"},o$={class:"form needs-validation paper-settings-main",name:"conference",novalidate:""},i$={id:"conf-basics",class:"paper-settings-section"},r$={class:"form-group"},a$={class:"invalid-feedback"},l$={class:"invalid-feedback"},d$={class:"form-group"},u$={class:"invalid-feedback"},c$={class:"form-group"},p$={class:"invalid-feedback"},f$={class:"invalid-feedback"},h$={id:"conf-window",class:"paper-settings-section"},m$={class:"form-grid-2"},g$={class:"form-group"},v$={class:"invalid-feedback"},y$={class:"invalid-feedback"},b$={class:"form-group"},w$={class:"invalid-feedback"},k$={class:"invalid-feedback"},C$={id:"conf-rendering",class:"paper-settings-section"},E$={class:"form-check"},S$={class:"form-check-input",type:"checkbox",id:"link",name:"link"},N$={class:"form-check"},R$={class:"form-check-input",type:"checkbox",id:"image",name:"image"},D$={class:"form-check"},T$={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},A$={class:"form-check"},_$={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},O$={id:"conf-features",class:"paper-settings-section"},P$={class:"form-check"},I$={class:"form-check-input",type:"checkbox",id:"update",name:"update"},M$={class:"form-check"},V$={class:"form-check-input",type:"checkbox",id:"page",name:"page"},q$={id:"conf-plan",class:"paper-settings-section"},$$={class:"paper-plan-grid"},L$=["disabled","value"],U$=["textContent"],F$={class:"paper-plan-price"},B$={class:"paper-plan-per"},z$=["innerHTML"],H$={key:0,id:"conf-billing",class:"paper-settings-section"},j$={class:"form-group"},G$={class:"form-group"},W$={class:"form-group"},K$={class:"form-group"},Y$={class:"form-grid-3"},X$={class:"form-group"},J$={class:"form-group"},Q$={class:"form-group"},Z$={class:"form-group"},x$={class:"paper-settings-footer"},eL=["textContent"],tL=["textContent"],nL=["disabled"];function Oc(e,t){let s=De("paper-scrollspy"),i=De("field"),o=De("form");return l(),d("div",Qq,[n("div",Zq,[t[1]||(t[1]=n("a",{href:"/dashboard"},"My work",-1)),t[2]||(t[2]=y(" \xA0/\xA0 ",-1)),t[3]||(t[3]=n("a",{href:"/conferences"},"Conferences",-1)),t[4]||(t[4]=y(" \xA0/\xA0 ",-1)),n("span",xq,p(e.editionMode?"Edit":"New"),1)]),n("h1",e$,[y(p(e.editionMode?"Edit":"Create a")+" ",1),t[5]||(t[5]=n("em",null,"conference",-1))]),t[42]||(t[42]=n("p",{class:"paper-page-lede"}," Give chairs access to every anonymization submitted to a venue, and lift author quotas during the review window. ",-1)),n("div",t$,[T((l(),d("aside",n$,[t[7]||(t[7]=n("div",{class:"paper-settings-toc-head"},"On this page",-1)),n("nav",null,[t[6]||(t[6]=Ce('BasicsReview windowRendering defaultsFeaturesPlan',5)),T(n("a",s$,"Billing",512),[[J,e.plan?.pricePerRepo>0]])])])),[[s]]),T((l(),d("form",o$,[n("section",i$,[t[12]||(t[12]=n("div",{class:"paper-section-eyebrow"},"Basics",-1)),n("div",r$,[t[8]||(t[8]=n("label",{class:"paper-field-label",for:"name"},"Conference name",-1)),T(n("input",{type:"text",class:_(["form-control",{"is-invalid":e.conference?.name?.invalid&&(e.conference?.name?.touched||e.conference?.submitted)}]),name:"name",id:"name",required:"",placeholder:"e.g. International Conference on Software Engineering"},null,2),[[i,{state:e.viewState,set:r=>{e.options.name=r},value:e.options?.name,form:"conference",options:{}}]]),T(n("div",a$," The name of the conference is invalid. ",512),[[J,e.conference?.name?.errors?.invalid]]),T(n("div",l$," The name of the conference is required. ",512),[[J,e.conference?.name?.errors?.required]])]),n("div",d$,[t[9]||(t[9]=n("label",{class:"paper-field-label",for:"url"},"Website",-1)),T(n("input",{type:"url",class:_(["form-control",{"is-invalid":e.conference?.url?.invalid&&(e.conference?.url?.touched||e.conference?.submitted)}]),name:"url",id:"url",placeholder:"https://example.org"},null,2),[[i,{state:e.viewState,set:r=>{e.options.url=r},value:e.options?.url,form:"conference",options:{}}]]),T(n("div",u$," The url of the conference is invalid. ",512),[[J,e.conference?.url?.errors?.url]])]),n("div",c$,[t[10]||(t[10]=n("label",{class:"paper-field-label",for:"conferenceID"},"Conference ID",-1)),T(n("input",{type:"text",class:_(["form-control",{"is-invalid":e.conference?.conferenceID?.invalid&&(e.conference?.conferenceID?.touched||e.conference?.submitted)}]),name:"conferenceID",id:"conferenceID",required:"",pattern:"[a-zA-Z0-9\\-_]{3,10}",placeholder:"ICSE26"},null,2),[[i,{state:e.viewState,set:r=>{e.options.conferenceID=r},value:e.options?.conferenceID,form:"conference",options:{}}]]),t[11]||(t[11]=n("small",{class:"form-text text-muted"},[y("3\u201310 characters, letters, numbers, "),n("code",null,"-"),y(" and "),n("code",null,"_"),y(". Authors reference this when they anonymize.")],-1)),T(n("div",{class:"invalid-feedback"}," The conference ID '"+p(e.options?.conferenceID)+"' is already used. ",513),[[J,e.conference?.conferenceID?.errors?.used]]),T(n("div",p$," The conference ID is required. ",512),[[J,e.conference?.conferenceID?.errors?.required]]),T(n("div",f$," The format of the conference ID is incorrect ([a-zA-Z0-9-_]{3,10}). ",512),[[J,e.conference?.conferenceID?.errors?.pattern]])])]),n("section",h$,[t[17]||(t[17]=n("div",{class:"paper-section-eyebrow"},"Review window",-1)),n("div",m$,[n("div",g$,[t[13]||(t[13]=n("label",{class:"paper-field-label",for:"startDate"},"Start date",-1)),T(n("input",{type:"date",class:_(["form-control",{"is-invalid":e.conference?.startDate?.invalid&&(e.conference?.startDate?.touched||e.conference?.submitted)}]),name:"startDate",id:"startDate",required:""},null,2),[[i,{state:e.viewState,set:r=>{e.options.startDate=r},value:e.options?.startDate,form:"conference",options:{}}]]),t[14]||(t[14]=n("small",{class:"form-text text-muted"},"Beginning of the review process.",-1)),T(n("div",v$," Start date is required. ",512),[[J,e.conference?.startDate?.errors?.required]]),T(n("div",y$," Start date must be before end date. ",512),[[J,e.conference?.startDate?.errors?.invalid]])]),n("div",b$,[t[15]||(t[15]=n("label",{class:"paper-field-label",for:"endDate"},"End date",-1)),T(n("input",{type:"date",class:_(["form-control",{"is-invalid":e.conference?.endDate?.invalid&&(e.conference?.endDate?.touched||e.conference?.submitted)}]),name:"endDate",id:"endDate",required:""},null,2),[[i,{state:e.viewState,set:r=>{e.options.endDate=r},value:e.options?.endDate,form:"conference",options:{}}]]),t[16]||(t[16]=n("small",{class:"form-text text-muted"},"All repositories expire on this date.",-1)),T(n("div",w$," End date is required. ",512),[[J,e.conference?.endDate?.errors?.required]]),T(n("div",k$," End date is invalid. ",512),[[J,e.conference?.endDate?.errors?.invalid]])])])]),n("section",C$,[t[26]||(t[26]=n("div",{class:"paper-section-eyebrow"},"Rendering defaults",-1)),n("div",E$,[T(n("input",S$,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.link=r},value:e.options?.options?.link,form:"conference",options:{}}]]),t[18]||(t[18]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[19]||(t[19]=n("small",{class:"form-text text-muted"},"Keep or remove all links from text files.",-1))]),n("div",N$,[T(n("input",R$,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.image=r},value:e.options?.options?.image,form:"conference",options:{}}]]),t[20]||(t[20]=n("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[21]||(t[21]=n("small",{class:"form-text text-muted"},"Images are not anonymized.",-1))]),n("div",D$,[T(n("input",T$,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.pdf=r},value:e.options?.options?.pdf,form:"conference",options:{}}]]),t[22]||(t[22]=n("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1)),t[23]||(t[23]=n("small",{class:"form-text text-muted"},"PDFs are not anonymized.",-1))]),n("div",A$,[T(n("input",_$,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.notebook=r},value:e.options?.options?.notebook,form:"conference",options:{}}]]),t[24]||(t[24]=n("label",{class:"form-check-label",for:"notebook"},"Display notebooks",-1)),t[25]||(t[25]=n("small",{class:"form-text text-muted"},"Render Jupyter notebooks instead of raw JSON.",-1))])]),n("section",O$,[t[31]||(t[31]=n("div",{class:"paper-section-eyebrow"},"Features",-1)),n("div",P$,[T(n("input",I$,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.update=r},value:e.options?.options?.update,form:"conference",options:{}}]]),t[27]||(t[27]=n("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[28]||(t[28]=n("small",{class:"form-text text-muted"},"Pull the latest commit automatically (hourly maximum).",-1))]),n("div",M$,[T(n("input",V$,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.page=r},value:e.options?.options?.page,form:"conference",options:{}}]]),t[29]||(t[29]=n("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),t[30]||(t[30]=n("small",{class:"form-text text-muted"},"Enable anonymized GitHub pages.",-1))])]),n("section",q$,[t[32]||(t[32]=n("div",{class:"paper-section-eyebrow"},"Plan",-1)),t[33]||(t[33]=n("p",{class:"paper-section-copy"},"The review package is prepaid and covers up to 180 days. Pay from the conference page after creating it. Plan and review dates cannot change after creation.",-1)),n("div",$$,[(l(!0),d(W,null,ae(e.plans,(r,a)=>(l(),d("label",{class:_(["paper-plan-card",{selected:e.options?.plan?.planID==r?.id}])},[T(n("input",{type:"radio",disabled:e.editionMode,name:"planPicker",value:r?.id},null,8,L$),[[i,{state:e.viewState,set:u=>{e.options.plan.planID=u},value:e.options?.plan?.planID,form:"conference",options:{}}]]),n("div",{class:"paper-plan-head",textContent:p(r?.name)},null,8,U$),n("div",F$,[y(p(r.id==="free_conference"?"Free":"Prepaid package")+" ",1),n("span",B$,p(r.id==="free_conference"?"":"Price on the conference page"),1)]),n("div",{class:"paper-plan-desc",innerHTML:e.sanitize(r?.description)},null,8,z$)],2))),256))])]),e.plan?.pricePerRepo>0?(l(),d("section",H$,[t[41]||(t[41]=n("div",{class:"paper-section-eyebrow"},"Billing",-1)),n("div",j$,[t[34]||(t[34]=n("label",{class:"paper-field-label",for:"billing_name"},"Name",-1)),T(n("input",{type:"text",class:_(["form-control",{"is-invalid":e.conference?.billing_name?.invalid&&(e.conference?.billing_name?.touched||e.conference?.submitted)}]),name:"billing_name",id:"billing_name",required:"",placeholder:"First & last name"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.name=r},value:e.options?.billing?.name,form:"conference",options:{}}]])]),n("div",G$,[t[35]||(t[35]=n("label",{class:"paper-field-label",for:"email"},"Email",-1)),T(n("input",{type:"email",class:_(["form-control",{"is-invalid":e.conference?.email?.invalid&&(e.conference?.email?.touched||e.conference?.submitted)}]),name:"email",id:"email",required:"",placeholder:"you@example.org"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.email=r},value:e.options?.billing?.email,form:"conference",options:{}}]])]),n("div",W$,[t[36]||(t[36]=n("label",{class:"paper-field-label",for:"inputAddress"},"Address",-1)),T(n("input",{type:"text",class:_(["form-control",{"is-invalid":e.conference?.inputAddress?.invalid&&(e.conference?.inputAddress?.touched||e.conference?.submitted)}]),name:"inputAddress",id:"inputAddress",required:"",placeholder:"1234 Main St"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.address=r},value:e.options?.billing?.address,form:"conference",options:{}}]])]),n("div",K$,[T(n("input",{type:"text",class:_(["form-control",{"is-invalid":e.conference?.inputAddress2?.invalid&&(e.conference?.inputAddress2?.touched||e.conference?.submitted)}]),name:"inputAddress2",id:"inputAddress2",placeholder:"Apartment, studio, or floor"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.address2=r},value:e.options?.billing?.address2,form:"conference",options:{}}]])]),n("div",Y$,[n("div",X$,[t[37]||(t[37]=n("label",{class:"paper-field-label",for:"city"},"City",-1)),T(n("input",{type:"text",class:_(["form-control",{"is-invalid":e.conference?.city?.invalid&&(e.conference?.city?.touched||e.conference?.submitted)}]),name:"city",id:"city",required:"",placeholder:"City"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.city=r},value:e.options?.billing?.city,form:"conference",options:{}}]])]),n("div",J$,[t[38]||(t[38]=n("label",{class:"paper-field-label",for:"country"},"Country",-1)),T(n("input",{type:"text",class:_(["form-control",{"is-invalid":e.conference?.country?.invalid&&(e.conference?.country?.touched||e.conference?.submitted)}]),name:"country",id:"country",required:"",placeholder:"Country"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.country=r},value:e.options?.billing?.country,form:"conference",options:{}}]])]),n("div",Q$,[t[39]||(t[39]=n("label",{class:"paper-field-label",for:"zip"},"Zip",-1)),T(n("input",{type:"text",class:_(["form-control",{"is-invalid":e.conference?.zip?.invalid&&(e.conference?.zip?.touched||e.conference?.submitted)}]),name:"zip",id:"zip",required:"",placeholder:"Zip"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.zip=r},value:e.options?.billing?.zip,form:"conference",options:{}}]])])]),n("div",Z$,[t[40]||(t[40]=n("label",{class:"paper-field-label",for:"vat"},"VAT number",-1)),T(n("input",{type:"text",class:_(["form-control",{"is-invalid":e.conference?.vat?.invalid&&(e.conference?.vat?.touched||e.conference?.submitted)}]),name:"vat",id:"vat",placeholder:"VAT Number"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.vat=r},value:e.options?.billing?.vat,form:"conference",options:{}}]])])])):f("v-if",!0),n("div",x$,[e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:p(e.error)},null,8,eL)):f("v-if",!0),e.message?(l(),d("div",{key:1,class:"alert alert-success",role:"alert",textContent:p(e.message)},null,8,tL)):f("v-if",!0),n("button",{id:"send",disabled:e.saving,type:"submit",class:"btn btn-ink",onClick:t[0]||(t[0]=ce(r=>e.submitForm(r,()=>{e.submit(r)}),["prevent"]))},p(e.saving?e.editionMode?"Updating\u2026":"Creating\u2026":e.editionMode?"Update conference":"Create conference"),9,nL)])])),[[o,e.viewState]])])])}var sL={key:0,class:"dir-card","aria-label":"Repository files"},oL=["onClick"],iL={class:"dir-name"},rL=["href"],aL={class:"dir-name"},lL={class:"dir-meta"},dL={class:"file-card-head"},uL={class:"file-card-path"},cL={class:"breadcrumb paths","aria-label":"Path"},pL={class:"breadcrumb-item breadcrumb-root"},fL=["href","title","textContent"],hL=["aria-current"],mL=["aria-label"],gL={class:"mobile-sub"},vL={key:0},yL={key:1},bL={key:2},wL=["aria-label","title"],kL={class:"ui-icon","aria-hidden":"true"},CL=["href"],EL={key:0,class:"file-card-meta"},SL={class:"meta-extra"},NL={class:"meta-redact"},RL={key:1,class:"file-card-meta"},DL={class:"meta-redact"},TL={class:"file-card-actions"},AL={key:0,class:"symbols"},_L=["aria-expanded"],OL={key:0,class:"symbols-menu",role:"menu"},PL={class:"symbols-head"},IL=["onClick"],ML={class:"symbols-name"},VL={class:"symbols-line"},qL=["title"],$L=["title"],LL=["title"],UL=["aria-pressed"],FL={class:"tb-file",role:"group","aria-label":"File actions"},BL=["title","href"],zL=["aria-label","title"],HL={class:"ui-icon","aria-hidden":"true"},jL=["href"],GL=["href"],WL=["aria-label"],KL={class:"ui-icon","aria-hidden":"true"},YL=["href"],XL={key:6,class:"tb-toc-m"},JL=["aria-expanded"],QL=["onClick"],ZL={class:"tb-more"},xL=["aria-expanded"],eU={viewBox:"0 0 24 24",class:"ui-icon","aria-hidden":"true",style:{fill:"currentColor",stroke:"none"}},tU={key:0,class:"tb-menu-note"},nU={key:1,class:"tb-menu-note tb-menu-meta"},sU={key:2,class:"tb-menu-sep"},oU={key:4,class:"tb-menu-sep"},iU=["aria-checked"],rU={key:0,class:"tb-menu-check"},aU={key:8,class:"tb-menu-sep"},lU=["href"],dU=["href"],uU=["href"],cU=["href"],pU=["href"],fU=["href"],hU=["placeholder","aria-invalid"],mU={key:0,class:"file-card-body"},gU={key:1,class:"md-find-bar",role:"search"},vU=["value"],yU={class:"md-find-nav"},bU=["disabled"],wU=["disabled"],kU={class:"md-find-count","aria-live":"polite"},CU=["aria-pressed"],EU={key:2,class:"reading-layout"},SU=["innerHTML"],NU={key:0,class:"readme-toc","aria-label":"On this page"},RU={class:"toc-rail"},DU=["href","onClick"],TU=["src"],AU=["src"],_U={key:6},OU={controls:"controls"},PU=["src"],IU={key:7},MU={key:8,class:"file-error container d-flex h-100"},VU={class:"paper-ratelimit-card m-auto",style:{"max-width":"520px"}},qU={class:"paper-error-msg"},$U={key:9,class:"file-error container d-flex h-100"},LU={class:"viewer-error paper-error-card file-error-card m-auto",role:"alert","aria-labelledby":"viewer-error-title"},UU={id:"viewer-error-title",class:"paper-empty-title"},FU={class:"paper-error-actions"},BU={key:0,href:"/",class:"btn btn-sm"},zU={key:1,href:"/faq",class:"btn btn-sm"},HU={key:2,class:"btn btn-outline-ink",href:"/dashboard"},jU={key:10,class:"viewer-loading","aria-busy":"true"},GU={class:"viewer-loading-status",role:"status","aria-live":"polite"},WU={class:"viewer-loading-name sr-only"},KU={key:0},YU={class:"viewer-loading-lines","aria-hidden":"true"},XU={key:11,class:"file-error container d-flex h-100"},JU={key:12,class:"file-error container d-flex h-100"},QU={key:13,class:"file-error container d-flex h-100"},ZU={class:"paper-empty-title m-auto"},xU=["href"];function Pc(e,t){let s=at("html-doc"),i=at("pdfviewer"),o=at("notebook"),r=De("code-editor");return l(),d(W,null,[e.sidebarHidden&&e.type=="html"&&e.content!=null&&e.paths?.length===1&&/^readme/i.test(e.paths[0]||"")&&e.files?.length?(l(),d("section",sL,[t[35]||(t[35]=n("header",{class:"dir-card-head"},[n("span",{class:"dir-card-title"},"Files"),n("span",{class:"dir-card-sub"},"Snapshot of the repository at review time")],-1)),n("ul",{class:_(["dir-list",{"is-expanded":e.dirExpanded}])},[(l(!0),d(W,null,ae(e.rootEntries(),a=>(l(),d("li",{key:a.name},[a.size==null?(l(),d("button",{key:0,type:"button",class:"dir-row",onClick:u=>e.revealFolder(a.name)},[t[32]||(t[32]=n("svg",{class:"dir-icon",viewBox:"0 0 16 16","aria-hidden":"true"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})],-1)),n("span",iL,p(a.name),1),t[33]||(t[33]=n("span",{class:"dir-meta"},"Folder",-1))],8,oL)):(l(),d("a",{key:1,class:_(["dir-row",{"is-current":a.name===e.paths[0]}]),href:e.safeUrl("/r/"+e.repoId+"/"+encodeURIComponent(a.name))},[t[34]||(t[34]=n("svg",{class:"dir-icon",viewBox:"0 0 16 16","aria-hidden":"true"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})],-1)),n("span",aL,p(a.name),1),n("span",lL,p(e.formatSize(a.size)),1)],10,rL))]))),128))],2),!e.dirExpanded&&e.files.length>8?(l(),d("button",{key:0,type:"button",class:"dir-more",onClick:t[0]||(t[0]=a=>e.dirExpanded=!0)},"Show all "+p(e.files.length)+" items",1)):f("v-if",!0)])):f("v-if",!0),(e.type=="text"||e.type=="code"||e.type=="html"||e.type=="html-doc"&&e.showSource)&&e.content!=null?(l(),d("section",{key:1,class:_(["file-card",{"is-code":e.type!="html","no-wrap":!e.wrapLines}])},[n("header",dL,[n("div",uL,[n("button",{type:"button",class:_(["btn btn-sm btn-icon-only btn-ghost card-files-btn",{"is-needed":e.sidebarHidden}]),"aria-label":"Show file tree",title:"Show file tree",onClick:t[1]||(t[1]=a=>e.sidebarHidden?e.sidebarHidden=!1:e.sidebarCollapsed=!1)},[...t[36]||(t[36]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sidebar"})],-1)])],2),n("ol",cL,[n("li",pL,[n("a",{href:e.safeUrl("/r/"+e.repoId+"/"),title:e.repoId,textContent:p(/^[0-9a-f]{8}-[0-9a-f]{4}-/i.test(e.repoId||"")?"repository":e.repoId)},null,8,fL)]),(l(!0),d(W,null,ae(e.paths,(a,u)=>(l(),d("li",{class:"breadcrumb-item","aria-current":u===e.paths.length-1?"page":null},[(l(!0),d(W,null,ae(e.redactParts(a),(c,m)=>(l(),d(W,{key:m},[c.n?(l(),d("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+c.n},[n("i",null,p(c.n),1)],8,mL)):(l(),d(W,{key:1},[y(p(c.t),1)],64))],64))),128))],8,hL))),256))]),n("span",gL,[n("span",null,p(e.type=="html"?"Markdown":e.languageName||"Text"),1),e.type!="html"&&typeof e.content=="string"?(l(),d("span",vL,p(e.fmt?.number(e.content.split(` +`).length))+" lines",1)):f("v-if",!0),e.type=="html"&&e.fileSize(e.filePath)!=null?(l(),d("span",yL,p(e.formatSize(e.fileSize(e.filePath))),1)):f("v-if",!0),e.redactionCount()?(l(),d("b",bL,p(e.redactionCount())+" redacted",1)):f("v-if",!0)]),T(n("button",{type:"button",class:"btn btn-sm btn-icon-only btn-ghost copy-path-btn","aria-label":e.pathCopied?"Path copied":"Copy file path",title:e.pathCopied?"Path copied":"Copy file path",onClick:t[2]||(t[2]=a=>e.copyPath())},[(l(),d("svg",kL,[n("use",{href:e.pathCopied?"#ui-icon-check":"#ui-icon-link"},null,8,CL)]))],8,wL),[[J,e.filePath]])]),e.type!="html"&&typeof e.content=="string"?(l(),d("span",EL,[e.languageName?(l(),d(W,{key:0},[y(p(e.languageName),1),t[37]||(t[37]=n("span",{class:"sep"},"\xB7",-1))],64)):f("v-if",!0),y(p(e.fmt?.number(e.content.split(` +`).length))+" lines",1),n("span",SL,[t[38]||(t[38]=n("span",{class:"sep"},"\xB7",-1)),y(p(e.content.length<1024?e.content.length+" B":(e.content.length/1024).toFixed(1)+" KB"),1)]),e.redactionCount()?(l(),d(W,{key:1},[t[39]||(t[39]=n("span",{class:"sep"},"\xB7",-1)),n("span",NL,p(e.redactionCount())+" redacted",1)],64)):f("v-if",!0)])):f("v-if",!0),e.type=="html"?(l(),d("span",RL,[t[42]||(t[42]=y("Markdown",-1)),e.fileSize(e.filePath)!=null?(l(),d(W,{key:0},[t[40]||(t[40]=n("span",{class:"sep"},"\xB7",-1)),y(p(e.formatSize(e.fileSize(e.filePath))),1)],64)):f("v-if",!0),e.redactionCount()?(l(),d(W,{key:1},[t[41]||(t[41]=n("span",{class:"sep"},"\xB7",-1)),n("span",DL,p(e.redactionCount())+" redacted",1)],64)):f("v-if",!0)])):f("v-if",!0),n("div",TL,[e.type!="html"&&e.symbols().length>1?(l(),d("div",AL,[n("button",{type:"button",class:_(["btn btn-sm btn-ghost btn-symbols",{"is-on":e.symbolsOpen}]),"aria-expanded":e.symbolsOpen?"true":"false","aria-haspopup":"true",title:"Symbols in this file",onClick:t[3]||(t[3]=a=>e.symbolsOpen=!e.symbolsOpen)},[...t[43]||(t[43]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-list"})],-1),n("span",{class:"btn-find-label"},"Symbols",-1)])],10,_L),e.symbolsOpen?(l(),d("div",OL,[n("div",PL,p(e.symbols().length)+" "+p(e.symbols().length===1?"symbol":"symbols"),1),(l(!0),d(W,null,ae(e.symbols(),a=>(l(),d("button",{type:"button",class:"symbols-item",role:"menuitem",key:a.line+a.name,onClick:u=>e.goToSymbol(a.line)},[n("span",{class:_(["symbols-kind","is-"+a.kind])},p(a.kind==="class"?"C":a.kind==="function"?"\u0192":"v"),3),n("span",ML,p(a.name),1),n("span",VL,p(a.line),1)],8,IL))),128))])):f("v-if",!0)])):f("v-if",!0),e.type=="html"?(l(),d("button",{key:1,type:"button",class:_(["btn btn-sm btn-ghost btn-icon-only btn-find btn-md-find",{"is-on":e.mdFindOpen}]),"aria-label":"Find on this page",title:"Find on this page ("+(e.isMac?"\u2318":"Ctrl+")+"F)",onClick:t[4]||(t[4]=a=>e.toggleMdFind())},[...t[44]||(t[44]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)])],10,qL)):f("v-if",!0),e.type!="html"?(l(),d("button",{key:2,type:"button",class:"btn btn-sm btn-ghost btn-icon-only btn-find","aria-label":"Find in file",title:"Find in file ("+(e.isMac?"\u2318":"Ctrl+")+"F)",onClick:t[5]||(t[5]=a=>e.findInFile())},[...t[45]||(t[45]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)])],8,$L)):f("v-if",!0),e.type!="html"?(l(),d("button",{key:3,type:"button",class:"btn btn-sm btn-ghost btn-icon-only btn-goto","aria-label":"Go to line",title:"Go to line ("+(e.isMac?"\u2318":"Ctrl+")+"G)",onClick:t[6]||(t[6]=a=>e.gotoLine())},[...t[46]||(t[46]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-goto"})],-1)])],8,LL)):f("v-if",!0),e.type!="html"?(l(),d("button",{key:4,type:"button",class:_(["btn btn-sm btn-icon-only btn-ghost btn-toggle",{"is-on":e.wrapLines}]),"aria-pressed":e.wrapLines?"true":"false","aria-label":"Wrap long lines",title:"Wrap long lines (Alt+Z)",onClick:t[7]||(t[7]=a=>e.toggleWrap())},[...t[47]||(t[47]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-wrap"})],-1)])],10,UL)):f("v-if",!0),n("div",FL,[n("a",{target:"_self",class:"tb-seg-btn",title:e.type=="html"?"Open the Markdown source":"Open the raw file",href:e.safeUrl(e.url)},"Raw",8,BL),typeof e.content=="string"?(l(),d("button",{key:0,type:"button",class:"tb-seg-btn tb-seg-icon","aria-label":e.contentCopied?"Copied":"Copy file contents",title:e.contentCopied?"Copied":"Copy file contents",onClick:t[8]||(t[8]=a=>e.copyContent())},[(l(),d("svg",HL,[n("use",{href:e.contentCopied?"#ui-icon-check":"#project-icon-copy"},null,8,jL)]))],8,zL)):f("v-if",!0),n("a",{target:"_self",class:"tb-seg-btn tb-seg-icon","aria-label":"Download file",title:"Download file",href:e.safeUrl(e.url+"&download=true")},[...t[48]||(t[48]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1)])],8,GL)]),typeof e.content=="string"?(l(),d("button",{key:5,type:"button",class:"btn btn-sm btn-icon-only btn-ghost tb-copy-m","aria-label":e.contentCopied?"Copied":"Copy file contents",onClick:t[9]||(t[9]=a=>e.copyContent())},[(l(),d("svg",KL,[n("use",{href:e.contentCopied?"#ui-icon-check":"#project-icon-copy"},null,8,YL)]))],8,WL)):f("v-if",!0),e.type=="html"&&e.readmeToc().length>=3?(l(),d("div",XL,[n("button",{type:"button",class:_(["btn btn-sm btn-icon-only btn-ghost tb-toc-btn",{"is-on":e.tocOpen}]),"aria-label":"On this page",title:"On this page","aria-haspopup":"true","aria-expanded":e.tocOpen?"true":"false",onClick:t[10]||(t[10]=ce(a=>{e.tocOpen=!e.tocOpen,e.moreOpen=!1},["stop"]))},[...t[49]||(t[49]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-outline"})],-1)])],10,JL),e.tocOpen?(l(),d("div",{key:0,class:"tb-menu tb-toc-menu",role:"menu",onClick:t[12]||(t[12]=a=>e.tocOpen=!1)},[t[50]||(t[50]=n("div",{class:"tb-menu-label"},"On this page",-1)),n("button",{type:"button",role:"menuitem",class:_(["tb-menu-toc","lvl-2",{"is-active":!e.activeHeading}]),onClick:t[11]||(t[11]=a=>e.scrollToHeading(null))},"Introduction",2),(l(!0),d(W,null,ae(e.readmeToc(),a=>(l(),d("button",{type:"button",role:"menuitem",key:"m-"+a.id,class:_(["tb-menu-toc","lvl-"+a.level,{"is-active":e.activeHeading===a.id}]),onClick:u=>e.scrollToHeading(a.id)},p(a.text),11,QL))),128))])):f("v-if",!0)])):f("v-if",!0),n("div",ZL,[n("button",{type:"button",class:_(["btn btn-sm btn-icon-only btn-ghost tb-more-btn",{"is-on":e.moreOpen}]),"aria-label":"More actions","aria-haspopup":"true","aria-expanded":e.moreOpen?"true":"false",onClick:t[13]||(t[13]=ce(a=>{e.tocOpen=!1,e.moreOpen=!e.moreOpen},["stop"]))},[(l(),d("svg",eU,[...t[51]||(t[51]=[n("circle",{cx:"5",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"12",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"19",cy:"12",r:"1.8"},null,-1)])]))],10,xL),e.moreOpen?(l(),d("div",{key:0,class:"tb-menu",role:"menu",onClick:t[19]||(t[19]=a=>e.moreOpen=!1)},[e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(l(),d("div",tU,[t[52]||(t[52]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),y("Snapshot \xB7 "+p(e.fmt?.date(e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),1)])):f("v-if",!0),typeof e.content=="string"?(l(),d("div",nU,[y(p(e.type=="html"?"Markdown":e.languageName||"Text"),1),e.type!="html"?(l(),d(W,{key:0},[y(" \xB7 "+p(e.fmt?.number(e.content.split(` +`).length))+" lines",1)],64)):f("v-if",!0),y(" \xB7 "+p(e.type=="html"&&e.fileSize(e.filePath)!=null?e.formatSize(e.fileSize(e.filePath)):e.content.length<1024?e.content.length+" B":(e.content.length/1024).toFixed(1)+" KB"),1)])):f("v-if",!0),e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(l(),d("div",sU)):f("v-if",!0),e.type=="html"?(l(),d("button",{key:3,type:"button",role:"menuitem",onClick:t[14]||(t[14]=a=>e.toggleMdFind())},[...t[53]||(t[53]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1),y("Find in file",-1)])])):f("v-if",!0),e.type=="html"?(l(),d("div",oU)):f("v-if",!0),e.type!="html"?(l(),d("button",{key:5,type:"button",role:"menuitem",onClick:t[15]||(t[15]=a=>e.findInFile())},[...t[54]||(t[54]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1),y("Find in file",-1)])])):f("v-if",!0),e.type!="html"?(l(),d("button",{key:6,type:"button",role:"menuitem",onClick:t[16]||(t[16]=a=>e.gotoLine())},[...t[55]||(t[55]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-goto"})],-1),y("Go to line",-1)])])):f("v-if",!0),e.type!="html"?(l(),d("button",{key:7,type:"button",role:"menuitemcheckbox","aria-checked":e.wrapLines?"true":"false",onClick:t[17]||(t[17]=a=>e.toggleWrap())},[t[56]||(t[56]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-wrap"})],-1)),t[57]||(t[57]=y("Wrap lines",-1)),e.wrapLines?(l(),d("span",rU,"\u2713")):f("v-if",!0)],8,iU)):f("v-if",!0),e.type!="html"?(l(),d("div",aU)):f("v-if",!0),e.type=="html"?(l(),d("a",{key:9,role:"menuitem",target:"_self",href:e.safeUrl(e.url)},[...t[58]||(t[58]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),y("View raw",-1)])],8,lU)):f("v-if",!0),e.type!="html"?(l(),d("a",{key:10,role:"menuitem",target:"_self",href:e.safeUrl(e.url)},[...t[59]||(t[59]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),y("View raw",-1)])],8,dU)):f("v-if",!0),n("a",{role:"menuitem",target:"_self",href:e.safeUrl(e.url+"&download=true")},[...t[60]||(t[60]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),y("Download file",-1)])],8,uU),e.options?.hasWebsite?(l(),d("a",{key:11,role:"menuitem",target:"_self",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[61]||(t[61]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),y("Open website",-1)])],8,cU)):f("v-if",!0),e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:12,role:"menuitem",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[62]||(t[62]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),y("Edit anonymization",-1)])],8,pU)):f("v-if",!0),e.options?.download?(l(),d("a",{key:13,role:"menuitem",target:"_self",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[63]||(t[63]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-archive"})],-1),y("Download ZIP",-1)])],8,fU)):f("v-if",!0),n("button",{type:"button",role:"menuitem",onClick:t[18]||(t[18]=a=>e.copyPath())},[...t[64]||(t[64]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-link"})],-1),y("Copy file path",-1)])]),t[65]||(t[65]=n("div",{class:"tb-menu-sep"},null,-1)),t[66]||(t[66]=n("a",{role:"menuitem",href:"/faq"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})]),y("FAQ")],-1)),t[67]||(t[67]=n("a",{role:"menuitem",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",target:"_blank",rel:"noopener"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),y("Report a bug")],-1))])):f("v-if",!0)])]),e.gotoOpen&&e.type!="html"?(l(),d("form",{key:2,class:"goto-pop",role:"dialog","aria-label":"Go to line",onSubmit:t[22]||(t[22]=ce(a=>e.submitGoto(),["prevent"]))},[t[68]||(t[68]=n("label",{class:"goto-label",for:"goto-input"},"Go to line",-1)),T(n("input",{id:"goto-input",class:"goto-input",type:"text",inputmode:"numeric",autocomplete:"off",spellcheck:"false",placeholder:"1\u2013"+e.fmt?.number(typeof e.content=="string"?e.content.split(` +`).length:1),"aria-invalid":e.gotoError?"true":"false","onUpdate:modelValue":t[20]||(t[20]=a=>e.gotoValue=a),onKeydown:t[21]||(t[21]=Tt(ce(a=>e.closeGoto(),["prevent","stop"]),["esc"]))},null,40,hU),[[dt,e.gotoValue]]),n("span",{class:_(["goto-hint",{"is-error":e.gotoError}])},p(e.gotoError||"Line, or line:column"),3)],32)):f("v-if",!0)]),e.type!="html"?T((l(),d("div",mU,null,512)),[[r,{content:e.content,options:e.aceOption}]]):f("v-if",!0),e.type=="html"&&e.mdFindOpen?(l(),d("div",gU,[n("input",{type:"search",class:"md-find-input",placeholder:"Find on this page","aria-label":"Find on this page",value:e.mdFindQuery,onInput:t[23]||(t[23]=a=>{e.mdFindQuery=a.target.value,e.runMdFind()}),onKeydown:[t[24]||(t[24]=Tt(ce(a=>a.shiftKey?e.stepMdFind(-1):e.stepMdFind(1),["prevent"]),["enter"])),t[25]||(t[25]=Tt(ce(a=>e.toggleMdFind(!1),["prevent"]),["esc"]))]},null,40,vU),n("span",yU,[n("button",{type:"button","aria-label":"Previous match",onClick:t[26]||(t[26]=a=>e.stepMdFind(-1)),disabled:!e.mdFindTotal},[...t[69]||(t[69]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,bU),n("button",{type:"button","aria-label":"Next match",onClick:t[27]||(t[27]=a=>e.stepMdFind(1)),disabled:!e.mdFindTotal},[...t[70]||(t[70]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,wU)]),n("span",kU,p(e.mdFindQuery?e.mdFindTotal?e.mdFindIndex+1+" of "+e.mdFindTotal:"No results":""),1),n("button",{type:"button",class:_(["md-find-opt",{"is-on":e.mdFindCase}]),"aria-pressed":e.mdFindCase?"true":"false",title:"Match case","aria-label":"Match case",onClick:t[28]||(t[28]=a=>{e.mdFindCase=!e.mdFindCase,e.runMdFind()})},"Aa",10,CU),n("button",{type:"button",class:"md-find-close","aria-label":"Close find",onClick:t[29]||(t[29]=a=>e.toggleMdFind(!1))},"\xD7")])):f("v-if",!0),e.type=="html"?(l(),d("div",EU,[n("div",{class:"file-content markdown-body",innerHTML:e.renderReadme(e.sanitize(e.content))},null,8,SU),e.readmeToc().length>=3?(l(),d("aside",NU,[t[71]||(t[71]=n("div",{class:"readme-toc-head"},"On this page",-1)),n("nav",RU,[n("a",{href:"#",class:_(["lvl-2 toc-top",{"is-active":!e.activeHeading}]),onClick:t[30]||(t[30]=ce(a=>e.scrollToHeading(null),["prevent"]))},"Introduction",2),(l(!0),d(W,null,ae(e.readmeToc(),(a,u)=>(l(),d("a",{key:a.id,href:"#"+a.id,class:_(["lvl-"+a.level,{"is-active":e.activeHeading===a.id}]),onClick:ce(c=>e.scrollToHeading(a.id),["prevent"])},p(a.text),11,DU))),128))])])):f("v-if",!0)])):f("v-if",!0)],2)):f("v-if",!0),e.type=="html-doc"&&!e.showSource&&e.content!=null?(l(),sn(s,{key:2,content:e.content,"base-url":e.fileBaseUrl,"allow-scripts":e.allowScripts},null,8,["content","base-url","allow-scripts"])):f("v-if",!0),e.type=="image"?(l(),d("img",{key:3,class:"image-content",src:e.safeUrl(e.url)},null,8,TU)):f("v-if",!0),e.type=="media"?(l(),d("iframe",{key:4,class:"h-100 overflow-auto w-100 b-0",src:e.safeUrl(e.url)},null,8,AU)):f("v-if",!0),e.type=="pdf"?(l(),sn(i,{key:5,src:e.safeUrl(e.url)},null,8,["src"])):f("v-if",!0),e.type=="audio"?(l(),d("div",_U,[n("audio",OU,[n("source",{src:e.safeUrl(e.url)},null,8,PU)])])):f("v-if",!0),e.type=="IPython"?(l(),d("div",IU,[Ue(o,{file:e.url,content:e.content},null,8,["file","content"])])):f("v-if",!0),e.type=="rate_limited"?(l(),d("div",MU,[n("div",VU,[t[74]||(t[74]=Ce('
Temporarily paused
GitHub API rate limit reached
',1)),n("p",qU,[t[72]||(t[72]=y("This repository will be available in ",-1)),n("strong",null,p(e.rateLimitCountdown),1),t[73]||(t[73]=y(". The page will reload automatically.",-1))])])])):f("v-if",!0),e.type=="error"?(l(),d("div",$U,[n("section",LU,[n("h1",UU,p(e.fmt.translate(e.isSourceAccessError()?"VIEWER_ERRORS.access_title":"VIEWER_ERRORS.title")),1),n("p",null,p(e.fmt.translate("ERRORS."+e.content)),1),e.isSourceAccessError()?(l(),d(W,{key:0},[n("p",null,p(e.fmt.translate("VIEWER_ERRORS.reader_help")),1),n("p",null,p(e.fmt.translate("VIEWER_ERRORS.owner_help")),1)],64)):f("v-if",!0),n("div",FU,[e.isSourceAccessError()?f("v-if",!0):(l(),d("a",BU,"Back to home")),e.isSourceAccessError()?f("v-if",!0):(l(),d("a",zU,"Read the FAQ")),n("button",{type:"button",class:"btn btn-primary",onClick:t[31]||(t[31]=a=>e.retryContent())},p(e.fmt.translate("VIEWER_ERRORS.retry")),1),e.isSourceAccessError()?(l(),d("a",HU,p(e.fmt.translate("VIEWER_ERRORS.dashboard")),1)):f("v-if",!0)])])])):f("v-if",!0),e.type=="loading"&&!e.error?(l(),d("section",jU,[n("div",GU,[n("strong",null,p(e.fmt.translate(e.fileReceivedBytes?"VIEWER_LOADING.receiving":"VIEWER_LOADING.loading")),1),n("span",WU,p(e.filePath),1),e.fileLoadingSlow?(l(),d("p",KU,p(e.fmt.translate("VIEWER_LOADING.slow")),1)):f("v-if",!0)]),n("div",YU,[(l(),d(W,null,ae(10,a=>n("span",{key:a})),64))])])):f("v-if",!0),e.type=="empty"?(l(),d("div",XU,[...t[75]||(t[75]=[n("h1",{class:"paper-empty-title m-auto"},[y("Empty "),n("em",null,"repository"),y(".")],-1)])])):f("v-if",!0),e.content==null&&!["empty","loading","error","rate_limited"].includes(e.type)?(l(),d("div",JU,[...t[76]||(t[76]=[n("h1",{class:"paper-empty-title m-auto"},[y("Empty "),n("em",null,"file"),y(".")],-1)])])):f("v-if",!0),e.type=="binary"?(l(),d("div",QU,[n("h1",ZU,[t[77]||(t[77]=y("Unsupported ",-1)),t[78]||(t[78]=n("em",null,"binary file",-1)),t[79]||(t[79]=y(". You can ",-1)),n("a",{target:"_blank",href:e.safeUrl(e.url+"&download=true")},"download it",8,xU),t[80]||(t[80]=y(".",-1))])])):f("v-if",!0)],64)}var eF={class:"container page dashboard-page paper-page"},tF={class:"row"},nF={class:"w-100"},sF={class:"w-100","aria-label":"Pull Requests","accept-charset":"UTF-8"},oF={class:"d-flex flex-column flex-md-row align-items-md-center",style:{gap:"8px"}},iF={class:"flex-grow-1"},rF={type:"search",id:"search",class:"form-control","aria-label":"Find a pull request...",placeholder:"Find a pull request...",autocomplete:"off"},aF={class:"d-flex flex-wrap",style:{gap:"6px"}},lF={class:"dropdown"},dF={class:"dropdown-menu","aria-labelledby":"dropdownSort"},uF={class:"form-check dropdown-item"},cF={class:"form-check-input",type:"radio",name:"sort",id:"sortFullName",value:"fullName"},pF={class:"form-check dropdown-item"},fF={class:"form-check-input",type:"radio",name:"sort",id:"sortAnonymizeDate",value:"-anonymizeDate"},hF={class:"form-check dropdown-item"},mF={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},gF={class:"form-check dropdown-item"},vF={class:"form-check-input",type:"radio",name:"sort",id:"sortLastView",value:"-lastView"},yF={class:"form-check dropdown-item"},bF={class:"form-check-input",type:"radio",name:"sort",id:"sortPageView",value:"-pageView"},wF={class:"dropdown"},kF={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},CF={class:"form-check dropdown-item"},EF={class:"form-check-input",type:"checkbox",name:"sort",id:"statusReady",value:"ready"},SF={class:"form-check dropdown-item"},NF={class:"form-check-input",type:"checkbox",name:"sort",id:"statusExpired",value:"expired"},RF={class:"form-check dropdown-item"},DF={class:"form-check-input",type:"checkbox",name:"sort",id:"statusRemoved",value:"removed"},TF={class:"d-flex flex-wrap mt-2",style:{gap:"6px"}},AF={class:"filter-chip"},_F=["onClick"],OF={class:"repo-list w-100"},PF={class:"repo-list-item-content"},IF={class:"repo-list-item-main"},MF={class:"repo-list-item-header"},VF=["textContent","href"],qF=["textContent"],$F=["textContent"],LF={class:"repo-source"},UF=["href"],FF={class:"repo-date"},BF={class:"repo-meta"},zF={key:0,title:"Conference"},HF=["title"],jF=["title"],GF=["title"],WF={key:1},KF={class:"repo-list-item-actions"},YF={class:"dropdown"},XF={class:"dropdown-menu dropdown-menu-right"},JF=["href"],QF=["onClick"],ZF=["onClick"],xF=["onClick"],e7=["href"],t7={key:0,class:"repo-list-empty"};function Ic(e,t){let s=De("field"),i=De("form");return l(),d("div",eF,[n("div",tF,[n("div",nF,[t[12]||(t[12]=Ce('
My work \xA0/\xA0 Pull requests

Anonymized pull requests

Track PR mirrors you\u2019ve created and their reviewer traffic.

',2)),f(" Search + filters row "),T((l(),d("form",sF,[n("div",oF,[n("div",iF,[T(n("input",rF,null,512),[[s,{state:e.viewState,set:o=>{e.search=o},value:e.search,form:null,options:{}}]])]),n("div",aF,[n("div",lF,[t[6]||(t[6]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Sort ",-1)),n("div",dF,[t[5]||(t[5]=n("h6",{class:"dropdown-header"},"Select order",-1)),n("div",uF,[T(n("input",cF,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[0]||(t[0]=n("label",{class:"form-check-label",for:"sortFullName"},"Pull Request",-1))]),n("div",pF,[T(n("input",fF,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[1]||(t[1]=n("label",{class:"form-check-label",for:"sortAnonymizeDate"},"Anonymize Date",-1))]),n("div",hF,[T(n("input",mF,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[2]||(t[2]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),n("div",gF,[T(n("input",vF,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[3]||(t[3]=n("label",{class:"form-check-label",for:"sortLastView"},"Last View",-1))]),n("div",yF,[T(n("input",bF,null,512),[[s,{state:e.viewState,set:o=>{e.orderBy=o},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=n("label",{class:"form-check-label",for:"sortPageView"},"Page View",-1))])])]),n("div",wF,[t[11]||(t[11]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Status ",-1)),n("div",kF,[t[10]||(t[10]=n("h6",{class:"dropdown-header"},"Select status",-1)),n("div",CF,[T(n("input",EF,null,512),[[s,{state:e.viewState,set:o=>{e.filters.status.ready=o},value:e.filters?.status?.ready,form:null,options:{}}]]),t[7]||(t[7]=n("label",{class:"form-check-label",for:"statusReady"},"Ready",-1))]),n("div",SF,[T(n("input",NF,null,512),[[s,{state:e.viewState,set:o=>{e.filters.status.expired=o},value:e.filters?.status?.expired,form:null,options:{}}]]),t[8]||(t[8]=n("label",{class:"form-check-label",for:"statusExpired"},"Expired",-1))]),n("div",RF,[T(n("input",DF,null,512),[[s,{state:e.viewState,set:o=>{e.filters.status.removed=o},value:e.filters?.status?.removed,form:null,options:{}}]]),t[9]||(t[9]=n("label",{class:"form-check-label",for:"statusRemoved"},"Removed",-1))])])])])])])),[[i,e.viewState]]),f(" Active filter chips "),T(n("div",TF,[(l(!0),d(W,null,ae(e.filters?.status,(o,r,a)=>T((l(),d("span",AF,[y(p(e.fmt?.title(r))+" ",1),n("button",{type:"button",class:"filter-chip-close","aria-label":"Remove filter",onClick:u=>{e.filters.status[r]=!0}}," \xD7 ",8,_F)],512)),[[J,!o]])),256))],512),[[J,e.filters?.status?.ready===!1||e.filters?.status?.expired===!1||e.filters?.status?.removed===!1]])]),f(" Pull request list "),n("ul",OF,[(l(!0),d(W,null,ae(e.filteredPullRequests,(o,r)=>(l(),d("li",{class:_(["repo-list-item",{"repo-inactive":o?.status=="expired"||o?.status=="removed"||o?.status=="error"}])},[n("div",PF,[n("div",IF,[n("div",MF,[n("a",{class:"repo-name",textContent:p(o?.pullRequestId),href:e.safeUrl("/pr/"+o?.pullRequestId)},null,8,VF),n("span",{class:_(["status-badge",{"status-removed":o?.status=="removed"||o?.status=="expired"||o?.status=="removing"||o?.status=="expiring","status-preparing":o?.status=="preparing"||o?.status=="download","status-ready":o?.status=="ready","status-error":o?.status=="error"}])},[n("span",{textContent:p(e.fmt?.title(o?.status))},null,8,qF),o?.status=="error"?(l(),d("span",{key:0,textContent:p(": "+o?.statusMessage)},null,8,$F)):f("v-if",!0)],2)]),n("div",LF,[n("span",null,[t[13]||(t[13]=n("i",{class:"fab fa-github","aria-hidden":"true"},null,-1)),n("a",{href:e.safeUrl("https://github.com/"+o?.source?.repositoryFullName+"/pull/"+o?.source?.pullRequestId)},p(o?.source?.repositoryFullName)+"#"+p(o?.source?.pullRequestId),9,UF)]),n("span",{class:_(["status-badge",{"status-ready":o?.merged,"status-removed":o?.state=="open","status-error":o?.state=="closed"&&!o?.merged}]),style:{"font-size":"10px"}},p(e.fmt?.title(o?.merged?"merged":o?.state)),3),n("span",FF,"anonymized "+p(e.fmt?.humanTime(o?.anonymizeDate)),1)])]),n("div",BF,[o?.conference?(l(),d("span",zF,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),y(" "+p(o?.conference),1)])):f("v-if",!0),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Terms: "+o?.options?.terms?.join(", ")},[t[15]||(t[15]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),y(" "+p(e.fmt?.number(o?.options?.terms?.length)),1)],8,HF),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Views: "+e.fmt?.number(o?.pageView)},[t[16]||(t[16]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),y(" "+p(e.fmt?.number(o?.pageView)),1)],8,jF),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Last view: "+e.fmt?.date(o?.lastView)},[t[17]||(t[17]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-calendar"})],-1)),y(" "+p(e.fmt?.humanTime(o?.lastView)),1)],8,GF),o?.options?.expirationMode!="never"&&o?.status=="ready"?(l(),d("span",WF,[t[18]||(t[18]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),y(" Expire: "+p(e.fmt?.humanTime(o?.options?.expirationDate)),1)])):f("v-if",!0)])]),n("div",KF,[n("div",YF,[t[24]||(t[24]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Actions ",-1)),n("div",XF,[n("a",{class:"dropdown-item",href:e.safeUrl("/pull-request-anonymize/"+o?.pullRequestId)},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),y(" Edit ",-1)])],8,JF),T(n("a",{class:"dropdown-item",href:"#",onClick:ce(a=>e.updatePullRequest(o),["prevent"])},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),y(" Force update ",-1)])],8,QF),[[J,o?.status=="ready"||o?.status=="error"]]),T(n("a",{class:"dropdown-item",href:"#",onClick:ce(a=>e.updatePullRequest(o),["prevent"])},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),y(" Enable ",-1)])],8,ZF),[[J,o?.status=="removed"]]),T(n("a",{class:"dropdown-item",href:"#",onClick:ce(a=>e.removePullRequest(o),["prevent"])},[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),y(" Remove ",-1)])],8,xF),[[J,o?.status=="ready"]]),n("a",{class:"dropdown-item",href:e.safeUrl("/pr/"+o?.pullRequestId+"/")},[...t[23]||(t[23]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),y(" View PR ",-1)])],8,e7)])])])],2))),256)),e.filteredPullRequests?.length==0?(l(),d("li",t7,[...t[25]||(t[25]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No pull requests to display.",-1)])])):f("v-if",!0)])])])}var n7={class:"container paper-page user-settings"},s7={class:"settings-title"},o7={class:"settings-header-actions"},i7={class:"settings-nav","aria-label":"Settings"},r7=["aria-current","onClick"],a7={class:"settings-row"},l7=["rows"],d7={class:"settings-syntax"},u7={class:"invalid-feedback"},c7={class:"settings-row"},p7={class:"settings-checks"},f7={class:"settings-check"},h7={class:"form-check-input",type:"checkbox",id:"link",name:"link"},m7={class:"settings-check"},g7={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},v7={class:"settings-check"},y7={class:"form-check-input",type:"checkbox",id:"image",name:"image"},b7={class:"settings-check"},w7={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},k7={class:"settings-check"},C7={class:"form-check-input",type:"checkbox",id:"loc",name:"loc"},E7={class:"settings-check"},S7={class:"form-check-input",type:"checkbox",id:"page",name:"page"},N7={class:"settings-row"},R7={class:"settings-check"},D7={class:"form-check-input",type:"checkbox",id:"update",name:"update"},T7={class:"settings-row"},A7={class:"form-control",id:"expiration",name:"expiration"},_7={class:"settings-help"},O7={class:"settings-save"},P7={class:"settings-save-status draft-status",role:"status"},I7={key:0},M7={key:1},V7={key:2},q7=["disabled"],$7={key:1,class:"settings-save-error",role:"alert"},L7=["aria-busy"],U7={key:0,role:"status"},F7={key:1,class:"settings-notice",role:"alert"},B7=["disabled"],z7={key:2,class:"settings-notice",role:"status"},H7={key:3,class:"settings-notice",role:"status"},j7=["disabled"],G7={class:"settings-row"},W7={class:"settings-inline"},K7={key:0,class:"settings-help"},Y7={key:0,class:"settings-help"},X7={id:"settings-quota"},J7={key:1,role:"status"},Q7={key:1,class:"settings-notice"},Z7={key:2,class:"settings-notice"},x7={key:3,class:"settings-notice"},eB={key:4,class:"settings-help"},tB={key:5,class:"settings-plan billing-plan"},nB={class:"settings-comparison"},sB={class:"settings-cycles"},oB=["checked","onChange"],iB={class:"settings-help"},rB={class:"settings-actions"},aB=["disabled"],lB={key:6,class:"settings-help"},dB={class:"settings-row"},uB={key:0,class:"settings-inline"},cB=["disabled"],pB={key:1,class:"settings-help"},fB=["disabled"],hB={key:4,class:"settings-row"},mB={class:"settings-inline"},gB=["disabled"],vB={key:0,class:"settings-pass"},yB={class:"settings-help"},bB=["disabled"],wB={key:5,class:"settings-row"},kB={class:"settings-help"},CB={id:"settings-account",class:"settings-account-panel"},EB={class:"paper-account-card"},SB=["src"],NB={class:"paper-account-identity"},RB={class:"paper-account-name"},DB=["disabled"],TB={key:0,role:"status"},AB={key:1,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},_B=["disabled"],OB={key:3,role:"status"},PB={class:"paper-danger-zone"},IB={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},MB=["textContent"],VB=["disabled"],qB={key:1,class:"settings-delete-confirm"},$B={for:"delete-username"},LB={class:"settings-actions"},UB=["disabled"],FB=["disabled"];function Mc(e,t){let s=at("quota-usage"),i=De("field"),o=De("form");return l(),d("div",n7,[n("header",s7,[t[20]||(t[20]=n("h1",null,"Settings",-1)),n("div",o7,[n("span",null,"@"+p(e.user?.username),1)])]),n("nav",i7,[(l(),d(W,null,ae([{id:"defaults",label:"Anonymization defaults"},{id:"billing",label:"Hosting & billing"},{id:"account",label:"Account"}],r=>n("button",{type:"button","aria-current":e.settingsTab===r.id?"page":null,onClick:a=>e.settingsTab=r.id},p(r.label),9,r7)),64))]),T(n("div",null,[t[41]||(t[41]=n("p",{class:"settings-scope"},"For new anonymizations only. Existing repositories keep their settings.",-1)),T((l(),d("form",{class:"form needs-validation",name:"defaultsForm",novalidate:"",onSubmit:t[1]||(t[1]=ce(r=>e.submitForm(r,()=>{e.saveDefault(r)}),["prevent"]))},[n("section",a7,[t[26]||(t[26]=n("div",null,[n("label",{class:"settings-label",for:"terms"},"Terms to redact"),n("p",{class:"settings-help"},"One term per line.")],-1)),n("div",null,[T(n("textarea",{class:"form-control",id:"terms",name:"terms",rows:Math.min(14,Math.max(3,String(e.terms||"").split(` +`).length+1)),placeholder:`Jane Smith MIT CSAIL -jane.smith@example.org`},bL={class:"settings-syntax"},wL={class:"invalid-feedback"},kL={class:"settings-row"},CL={class:"settings-checks"},EL={class:"settings-check"},SL={class:"form-check-input",type:"checkbox",id:"link",name:"link"},NL={class:"settings-check"},RL={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},DL={class:"settings-check"},TL={class:"form-check-input",type:"checkbox",id:"image",name:"image"},_L={class:"settings-check"},AL={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},OL={class:"settings-check"},PL={class:"form-check-input",type:"checkbox",id:"loc",name:"loc"},IL={class:"settings-check"},ML={class:"form-check-input",type:"checkbox",id:"page",name:"page"},VL={class:"settings-row"},qL={class:"settings-check"},LL={class:"form-check-input",type:"checkbox",id:"update",name:"update"},$L={class:"settings-row"},UL={class:"form-control",id:"expiration",name:"expiration"},FL={class:"settings-help"},BL={class:"settings-save"},zL={class:"settings-save-status draft-status",role:"status"},HL={key:0},jL={key:1},GL={key:2},WL=["disabled"],KL={key:1,class:"settings-save-error",role:"alert"},YL=["aria-busy"],JL={key:0,role:"status"},QL={key:1,class:"settings-notice",role:"alert"},XL=["disabled"],ZL={key:2,class:"settings-notice",role:"status"},xL={key:3,class:"settings-notice",role:"status"},e$=["disabled"],t$={class:"settings-row"},n$={class:"settings-inline"},o$={key:0,class:"settings-help"},s$={key:0,class:"settings-help"},i$={id:"settings-quota"},r$={key:1,role:"status"},a$={key:1,class:"settings-notice"},l$={key:2,class:"settings-notice"},d$={key:3,class:"settings-notice"},u$={key:4,class:"settings-help"},c$={key:5,class:"settings-plan billing-plan"},p$={class:"settings-comparison"},f$={class:"settings-cycles"},m$=["checked","onChange"],h$={class:"settings-help"},v$={class:"settings-actions"},g$=["disabled"],y$={key:6,class:"settings-help"},b$={class:"settings-row"},w$={key:0,class:"settings-inline"},k$=["disabled"],C$={key:1,class:"settings-help"},E$=["disabled"],S$={key:4,class:"settings-row"},N$={class:"settings-inline"},R$=["disabled"],D$={key:0,class:"settings-pass"},T$={class:"settings-help"},_$=["disabled"],A$={key:5,class:"settings-row"},O$={class:"settings-help"},P$={id:"settings-account",class:"settings-account-panel"},I$={class:"paper-account-card"},M$=["src"],V$={class:"paper-account-identity"},q$={class:"paper-account-name"},L$=["disabled"],$$={key:0,role:"status"},U$={key:1,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},F$=["disabled"],B$={key:3,role:"status"},z$={class:"paper-danger-zone"},H$={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},j$=["textContent"],G$=["disabled"],W$={key:1,class:"settings-delete-confirm"},K$={for:"delete-username"},Y$={class:"settings-actions"},J$=["disabled"],Q$=["disabled"];function td(e,t){let o=We("quota-usage"),i=we("field"),s=we("form");return l(),d("div",pL,[n("header",fL,[t[20]||(t[20]=n("h1",null,"Settings",-1)),n("div",mL,[n("span",null,"@"+u(e.user?.username),1)])]),n("nav",hL,[(l(),d(W,null,oe([{id:"defaults",label:"Anonymization defaults"},{id:"billing",label:"Hosting & billing"},{id:"account",label:"Account"}],r=>n("button",{type:"button","aria-current":e.settingsTab===r.id?"page":null,onClick:a=>e.settingsTab=r.id},u(r.label),9,vL)),64))]),T(n("div",null,[t[41]||(t[41]=n("p",{class:"settings-scope"},"For new anonymizations only. Existing repositories keep their settings.",-1)),T((l(),d("form",{class:"form needs-validation",name:"defaultsForm",novalidate:"",onSubmit:t[1]||(t[1]=ae(r=>e.submitForm(r,()=>{e.saveDefault(r)}),["prevent"]))},[n("section",gL,[t[26]||(t[26]=n("div",null,[n("label",{class:"settings-label",for:"terms"},"Terms to redact"),n("p",{class:"settings-help"},"One term per line.")],-1)),n("div",null,[T(n("textarea",yL,null,512),[[i,{state:e.viewState,set:r=>{e.terms=r},value:e.terms,form:"defaultsForm",options:{debounce:250}}]]),n("details",bL,[t[25]||(t[25]=n("summary",null,"Regex & replacement syntax",-1)),n("p",null,[t[21]||(t[21]=h("Matches become ",-1)),n("code",null,u(e.site_options?.ANONYMIZATION_MASK||"XXX")+"-[N]",1),t[22]||(t[22]=h(". Use ",-1)),t[23]||(t[23]=n("code",null,"term=>replacement",-1)),t[24]||(t[24]=h(" for a custom replacement. Regex is supported.",-1))])]),T(n("div",wL,"Terms are in an invalid format.",512),[[Y,e.defaultsForm?.terms?.errors?.format]])])]),n("section",kL,[t[35]||(t[35]=n("h2",null,"Reviewer display",-1)),n("div",null,[n("div",CL,[n("label",EL,[T(n("input",SL,null,512),[[i,{state:e.viewState,set:r=>{e.options.link=r},value:e.options?.link,form:"defaultsForm",options:{}}]]),t[27]||(t[27]=h("Keep links",-1))]),n("label",NL,[T(n("input",RL,null,512),[[i,{state:e.viewState,set:r=>{e.options.notebook=r},value:e.options?.notebook,form:"defaultsForm",options:{}}]]),t[28]||(t[28]=h("Render notebooks",-1))]),n("label",DL,[T(n("input",TL,null,512),[[i,{state:e.viewState,set:r=>{e.options.image=r},value:e.options?.image,form:"defaultsForm",options:{}}]]),t[29]||(t[29]=h("Show images",-1))]),n("label",_L,[T(n("input",AL,null,512),[[i,{state:e.viewState,set:r=>{e.options.pdf=r},value:e.options?.pdf,form:"defaultsForm",options:{}}]]),t[30]||(t[30]=h("Show PDFs",-1))]),n("label",OL,[T(n("input",PL,null,512),[[i,{state:e.viewState,set:r=>{e.options.loc=r},value:e.options?.loc,form:"defaultsForm",options:{}}]]),t[31]||(t[31]=h("Show line counts",-1))]),n("label",IL,[T(n("input",ML,null,512),[[i,{state:e.viewState,set:r=>{e.options.page=r},value:e.options?.page,form:"defaultsForm",options:{}}]]),t[32]||(t[32]=h("GitHub Pages",-1))])]),t[33]||(t[33]=n("p",{class:"settings-help"},"Images and PDFs are not anonymized.",-1)),t[34]||(t[34]=n("p",{class:"settings-help"},"GitHub Pages must use the anonymized branch.",-1))])]),n("section",VL,[t[38]||(t[38]=n("h2",null,"Source updates",-1)),n("div",null,[n("label",qL,[T(n("input",LL,null,512),[[i,{state:e.viewState,set:r=>{e.options.update=r},value:e.options?.update,form:"defaultsForm",options:{}}]]),t[36]||(t[36]=h("Auto-update from GitHub",-1))]),t[37]||(t[37]=n("p",{class:"settings-help"},"Latest commit, at most once an hour.",-1))])]),n("section",$L,[t[40]||(t[40]=n("label",{class:"settings-label",for:"expiration"},"On expiration",-1)),n("div",null,[T((l(),d("select",UL,[...t[39]||(t[39]=[n("option",{value:"redirect"},"Redirect visitors to the GitHub repository",-1),n("option",{value:"remove",selected:""},"Remove the anonymized repository",-1)])])),[[i,{state:e.viewState,set:r=>{e.options.expirationMode=r},value:e.options?.expirationMode,form:"defaultsForm",options:{}}]]),n("p",FL,u(e.options.expirationMode==="redirect"?"Redirecting reveals the original repository. Choose the date per anonymization.":"Set the expiration date for each repository."),1)])]),n("footer",BL,[n("div",zL,[e.draftRestored?(l(),d("span",HL,"Your unsaved draft was restored.")):e.unsavedChanges?(l(),d("span",jL,"Unsaved changes"+u(e.draftSaved?" \xB7 Draft saved in this tab":""),1)):(l(),d("span",GL,u(e.message?"Defaults saved":"All changes saved"),1))]),e.draftRestored||e.unsavedChanges?(l(),d("button",{key:0,type:"button",class:"draft-discard",onClick:t[0]||(t[0]=r=>e.discardDraft())},"Discard changes")):c("v-if",!0),n("button",{id:"save",type:"submit",class:"btn btn-ink",disabled:e.saving},u(e.saving?"Saving\u2026":"Save defaults"),9,WL),e.error?(l(),d("div",KL,u(e.error),1)):c("v-if",!0)])],32)),[[s,e.viewState]])],512),[[Y,e.settingsTab==="defaults"]]),T(n("section",{id:"settings-billing","aria-busy":e.billingLoading||e.billingBusy},[t[64]||(t[64]=n("p",{class:"settings-scope"},"Your plan and usage. Reviewer access is always free.",-1)),e.billingLoading?(l(),d("p",JL,"Loading billing\u2026")):c("v-if",!0),e.billingError?(l(),d("div",QL,[h(u(e.billingError)+" ",1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[2]||(t[2]=r=>e.loadBilling()),disabled:e.billingBusy},"Try again",8,XL)])):c("v-if",!0),e.billingNotice?(l(),d("p",ZL,u(e.billingNotice),1)):c("v-if",!0),e.billingPending?(l(),d("div",xL,[t[42]||(t[42]=n("strong",null,"Confirming your payment",-1)),t[43]||(t[43]=n("p",null,"Your allowance will update after confirmation. Please do not pay again.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[3]||(t[3]=r=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,e$)])):c("v-if",!0),n("section",t$,[t[57]||(t[57]=n("h2",null,"Current plan",-1)),n("div",null,[n("div",n$,[n("div",null,[n("strong",null,u(e.profileAuthorGrant()?"Author subscription":e.billing?.enabled?"Free":"Account allowance"),1),e.profileAuthorGrant()?(l(),d("p",o$,u(e.profileAuthorGrant().cancelAtPeriodEnd?"Renewal cancelled \xB7 Access until ":"Paid access through ")+u(e.billingDate(e.profileAuthorGrant().until)),1)):c("v-if",!0)]),e.billing?.enabled&&!e.profileAuthorGrant()&&!e.billingPending&&!e.showAuthorPlans&&e.profileAuthorPlans().length?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[4]||(t[4]=r=>e.openProfileUpgrade())},"View Author plan")):c("v-if",!0)]),e.billing?.allowance?(l(),d("p",s$,u(e.billing.allowance.repositories)+" repositories \xB7 "+u(e.billingBytes(e.billing.allowance.storage)),1)):c("v-if",!0),n("div",i$,[e.quota?(l(),Bt(o,{key:0,quota:e.quota,fmt:e.fmt},null,8,["quota","fmt"])):(l(),d("p",r$,"Loading usage\u2026"))]),t[56]||(t[56]=n("p",{class:"settings-help"},"Coauthored repositories use their owner's allowance. Conference hosting is separate.",-1)),e.quota?.repository&&!e.quota.repository.unlimited&&e.quota.repository.used>=e.quota.repository.total?(l(),d("p",a$,[...t[44]||(t[44]=[h("Your repository allowance is full. ",-1),n("a",{href:"/dashboard"},"Review your repositories",-1),h(" to remove work you no longer need.",-1)])])):c("v-if",!0),e.profilePastSubscription()?(l(),d("p",l$,[...t[45]||(t[45]=[h("Your previous subscription is no longer active. Never-expiring repositories receive a 90-day grace period after paid access ends. ",-1),n("a",{href:"/dashboard"},"Review repository expiration dates",-1),h(".",-1)])])):c("v-if",!0),e.profileAuthorGrant()?.status==="past_due"?(l(),d("p",d$,"A subscription payment is overdue. Use Manage billing to update your payment details.")):c("v-if",!0),e.profileAuthorGrant()?.cancelAtPeriodEnd?(l(),d("p",u$,"When paid access ends, never-expiring repositories enter a 90-day grace period. Dated repositories keep their expiration dates.")):c("v-if",!0),e.showAuthorPlans&&!e.profileAuthorGrant()&&!e.billingPending&&e.profileAuthorPlans().length?(l(),d("div",c$,[t[54]||(t[54]=n("h3",{id:"settings-plan-comparison",tabindex:"-1"},"Compare plans",-1)),n("table",p$,[t[51]||(t[51]=n("caption",{class:"sr-only"},"Free and Author hosting",-1)),t[52]||(t[52]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Included"),n("th",{scope:"col"},"Free"),n("th",{scope:"col"},"Author")])],-1)),n("tbody",null,[n("tr",null,[t[46]||(t[46]=n("th",{scope:"row"},"Active repositories",-1)),n("td",null,u(e.billing.allowance?.repositories),1),n("td",null,u(e.profileSelectedPlan()?.repositories),1)]),n("tr",null,[t[47]||(t[47]=n("th",{scope:"row"},"Source storage",-1)),n("td",null,u(e.billingBytes(e.billing.allowance?.storage)),1),n("td",null,u(e.billingBytes(e.profileSelectedPlan()?.storage)),1)]),t[48]||(t[48]=n("tr",null,[n("th",{scope:"row"},"Expiration"),n("td",null,"Scheduled"),n("td",null,"Scheduled or never")],-1)),t[49]||(t[49]=n("tr",null,[n("th",{scope:"row"},"Coauthors"),n("td",null,"Included"),n("td",null,"Included")],-1)),t[50]||(t[50]=n("tr",null,[n("th",{scope:"row"},"Reviewer access"),n("td",null,"Free"),n("td",null,"Free")],-1))])]),n("fieldset",f$,[t[53]||(t[53]=n("legend",{class:"sr-only"},"Billing frequency",-1)),(l(!0),d(W,null,oe(e.profileAuthorPlans(),r=>(l(),d("label",{class:O({selected:e.profileSelectedPlan()?.id===r.id})},[n("input",{type:"radio",name:"profile-plan",checked:e.profileSelectedPlan()?.id===r.id,onChange:a=>e.profilePlan=r.id},null,40,m$),h(u(e.billingPrice(r)),1)],2))),256))]),n("p",h$,"Renews "+u(e.profileSelectedPlan()?.interval==="year"?"annually":"monthly")+" until cancelled. Tax shown at checkout.",1),t[55]||(t[55]=n("p",{class:"settings-help"},"If paid access ends, never-expiring repositories expire after a 90-day grace period.",-1)),n("div",v$,[n("button",{type:"button",class:"btn btn-ink",disabled:e.billingBusy||e.billing.checkoutEnabled===!1,onClick:t[5]||(t[5]=r=>e.checkout(e.profileSelectedPlan().id))},u(e.billingBusy?"Please wait\u2026":"Continue to checkout"),9,g$),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[6]||(t[6]=r=>e.showAuthorPlans=!1)},"Keep current plan")])])):c("v-if",!0),e.billing&&(!e.billing.enabled||e.billing.checkoutEnabled===!1)?(l(),d("p",y$,"New purchases are not available. Existing billing can still be managed below.")):c("v-if",!0)])]),n("section",b$,[t[59]||(t[59]=n("h2",null,"Billing",-1)),n("div",null,[e.billing?.portal?(l(),d("div",w$,[t[58]||(t[58]=n("p",{class:"settings-help"},"Invoices, payment details, and renewal.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[7]||(t[7]=r=>e.billingPortal()),disabled:e.billingBusy},"Manage billing",8,k$)])):(l(),d("p",C$,"No billing account available.")),e.billing?.enabled&&!e.billingPending?(l(),d("button",{key:2,type:"button",class:"settings-text-button",onClick:t[8]||(t[8]=r=>e.refreshBilling()),disabled:e.billingBusy},"Refresh payment status",8,E$)):c("v-if",!0)])]),e.billing?.enabled?(l(),d("section",S$,[t[62]||(t[62]=n("h2",null,"Repository passes",-1)),n("div",null,[n("div",N$,[t[60]||(t[60]=n("p",{class:"settings-help"},[h("One repository for 180 days."),n("br"),h("No subscription or automatic renewal.")],-1)),e.profilePassPlan()?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[9]||(t[9]=r=>e.showRepositoryPass=!e.showRepositoryPass),disabled:e.billingPending},"Review a pass",8,R$)):c("v-if",!0)]),e.showRepositoryPass&&e.profilePassPlan()&&!e.billingPending?(l(),d("div",D$,[t[61]||(t[61]=n("label",{for:"billing-repository"},"Repository ID you own",-1)),T(n("input",{id:"billing-repository",class:"form-control","onUpdate:modelValue":t[10]||(t[10]=r=>e.billingRepository=r),placeholder:"Existing anonymized repository ID",autocomplete:"off"},null,512),[[ot,e.billingRepository]]),n("p",T$,u(e.billingPrice(e.profilePassPlan()))+" \xB7 "+u(e.billingBytes(e.profilePassPlan().storage))+" \xB7 Never expire is not included.",1),n("button",{type:"button",class:"btn btn-ink",disabled:e.billingBusy||!e.billingRepository.trim()||e.billing.checkoutEnabled===!1,onClick:t[11]||(t[11]=r=>e.checkout("author_pass",e.billingRepository.trim()))},"Continue to checkout",8,_$)])):c("v-if",!0)])])):c("v-if",!0),e.billing?.grants?.length?(l(),d("section",A$,[t[63]||(t[63]=n("h2",null,"Your purchases",-1)),n("div",null,[(l(!0),d(W,null,oe(e.billing.grants,r=>(l(),d("div",{class:"settings-purchase",key:r.scope+r.planId+r.until},[n("strong",null,u(e.profileGrantName(r)),1),n("span",null,u(r.scope),1),n("p",O$,[h(u(r.status),1),r.status!=="revoked"?(l(),d(W,{key:0},[h(" \xB7 Paid access through "+u(e.billingDate(r.until))+u(r.cancelAtPeriodEnd?" \xB7 Renewal cancelled":""),1)],64)):c("v-if",!0)])]))),128))])])):c("v-if",!0),t[65]||(t[65]=n("section",{class:"settings-row"},[n("h2",null,"Conference hosting"),n("div",{class:"settings-inline"},[n("p",{class:"settings-help"},"Shared hosting is managed per conference."),n("a",{href:"/conferences",class:"btn btn-outline-ink"},"My conferences")])],-1))],8,YL),[[Y,e.settingsTab==="billing"]]),T(n("section",P$,[t[75]||(t[75]=n("p",{class:"settings-scope"},"Your identity, repository access, and account.",-1)),n("div",I$,[e.user?.photo?(l(),d("img",{key:0,width:"40",height:"40",class:"rounded-circle",alt:"",src:e.safeUrl(e.user?.photo)},null,8,M$)):c("v-if",!0),n("div",V$,[n("div",q$,"@"+u(e.user?.username),1),t[66]||(t[66]=n("div",{class:"paper-account-meta"},"Signed in with GitHub. Anonymous GitHub only reads your repositories.",-1))]),t[67]||(t[67]=n("a",{class:"btn btn-outline-ink",href:"/api/user/logout",target:"_self"},"Sign out",-1))]),n("form",{class:"paper-account-email",onSubmit:t[15]||(t[15]=ae(r=>e.saveAccountEmail(),["prevent"]))},[t[68]||(t[68]=n("label",{class:"paper-field-label",for:"account-email"},"Email address",-1)),t[69]||(t[69]=n("p",{id:"account-email-help",class:"paper-section-copy"},"Used for account alerts. Your address is never shown on anonymous pages.",-1)),T(n("input",{id:"account-email",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[12]||(t[12]=r=>e.accountEmail=r),"aria-describedby":"account-email-help",disabled:e.emailLoading||e.emailSaving||!e.emailCSRFReady,onInput:t[13]||(t[13]=r=>e.emailSaved=!1)},null,40,L$),[[ot,e.accountEmail]]),e.emailLoading?(l(),d("p",$$,"Loading your email address\u2026")):c("v-if",!0),e.emailError?(l(),d("p",U$,u(e.emailError),1)):c("v-if",!0),!e.emailCSRFReady&&!e.emailLoading?(l(),d("button",{key:2,class:"btn btn-outline-ink mt-2",type:"button",onClick:t[14]||(t[14]=r=>e.loadAccountEmail())},"Try again")):c("v-if",!0),n("button",{class:"btn btn-ink mt-2",type:"submit",disabled:e.emailLoading||e.emailSaving||!e.emailCSRFReady},u(e.emailSaving?"Saving\u2026":"Save email address"),9,F$),e.emailSaved?(l(),d("p",B$,"Email address saved.")):c("v-if",!0)],32),t[76]||(t[76]=n("a",{class:"paper-settings-connection-link",href:"/connections"},[n("i",{class:"fab fa-github","aria-hidden":"true"}),n("span",null,[h("GitHub connections"),n("small",null,"Manage repository access and legacy OAuth.")]),n("span",{"aria-hidden":"true"},"\u2192")],-1)),n("div",z$,[t[73]||(t[73]=n("div",{class:"paper-danger-head"},"Delete account",-1)),t[74]||(t[74]=n("p",{class:"paper-danger-copy"}," Removes all your anonymized repositories, gists, and pull requests, revokes the application's access to your GitHub account, and erases your personal data (username, email, access tokens). This cannot be undone. ",-1)),e.deleteError?(l(),d("div",H$,[t[70]||(t[70]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1)),t[71]||(t[71]=h()),n("span",{textContent:u(e.deleteError)},null,8,j$)])):c("v-if",!0),n("button",{type:"button",class:"btn btn-outline-danger",onClick:t[16]||(t[16]=r=>e.confirmDeleteAccount=!0),disabled:e.deletingAccount},[t[72]||(t[72]=n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)),h(u(e.deletingAccount?"Deleting\u2026":"Delete my account"),1)],8,G$),e.confirmDeleteAccount?(l(),d("div",W$,[n("label",K$,"Type "+u(e.user?.username)+" to confirm",1),T(n("input",{id:"delete-username",class:"form-control","onUpdate:modelValue":t[17]||(t[17]=r=>e.deleteUsername=r),autocomplete:"off"},null,512),[[ot,e.deleteUsername]]),n("div",Y$,[n("button",{type:"button",class:"btn btn-outline-danger",onClick:t[18]||(t[18]=r=>e.deleteAccount()),disabled:e.deletingAccount||e.deleteUsername!==e.user?.username},u(e.deletingAccount?"Deleting\u2026":"Delete permanently"),9,J$),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[19]||(t[19]=r=>{e.confirmDeleteAccount=!1,e.deleteUsername=""}),disabled:e.deletingAccount},"Cancel",8,Q$)])])):c("v-if",!0)])],512),[[Y,e.settingsTab==="account"]])])}var X$={class:"pr-page"},Z$={class:"container paper-page pr-page-inner"},x$={class:"pr-header"},eU={class:"pr-title-row"},tU={class:"paper-page-title pr-title"},nU=["textContent"],oU={key:1,class:"text-muted"},sU=["href"],iU={class:"pr-header-meta"},rU={key:0,class:"pr-meta-item"},aU=["textContent"],lU={key:1,class:"pr-meta-item"},dU=["textContent"],uU={key:2,class:"pr-meta-item"},cU=["textContent"],pU={key:0,class:"pr-body-card"},fU={key:1,class:"paper-tabs",role:"tablist"},mU=["aria-selected","tabindex"],hU=["aria-selected","tabindex"],vU=["textContent"],gU={class:"paper-tab-content"},yU={key:0,role:"tabpanel",id:"pr-diff-panel","aria-labelledby":"pr-diff-tab"},bU=["innerHTML"],wU={key:1,role:"tabpanel",id:"pr-comments-panel","aria-labelledby":"pr-comments-tab"},kU={class:"pr-comments"},CU={class:"pr-comment"},EU={class:"pr-comment-head"},SU={key:0,class:"pr-comment-author"},NU=["textContent"],RU=["textContent"],DU={key:0,class:"pr-comment-body"},TU={key:0,class:"paper-table-empty"};function nd(e,t){let o=We("markdown");return l(),d("div",X$,[n("div",Z$,[t[17]||(t[17]=n("div",{class:"paper-crumbs"},[n("a",{href:"/dashboard"},"Reviewer"),h(" \xA0/\xA0 "),n("span",{class:"here"},"Pull request")],-1)),n("header",x$,[n("div",eU,[n("h1",tU,[e.details?.title?(l(),d("span",{key:0,textContent:u(e.details?.title)},null,8,nU)):c("v-if",!0),e.details?.title?c("v-if",!0):(l(),d("span",oU,"Untitled pull request"))]),e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/pull-request-anonymize/"+e.pullRequestId)},[...t[4]||(t[4]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),n("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,sU)):c("v-if",!0)]),n("div",iU,[n("span",{class:O(["paper-pill",{good:e.details?.merged,warn:e.details?.state=="open",bad:e.details?.state=="closed"&&!e.details?.merged}])},[n("span",{class:O(["status-dot",{"status-ready":e.details?.merged,"status-error":e.details?.state=="closed"&&!e.details?.merged}])},null,2),h(" "+u(e.details?.merged?"Merged":e.fmt.title(e.details?.state)),1)],2),e.details?.baseRepositoryFullName?(l(),d("span",rU,[t[5]||(t[5]=n("i",{class:"fab fa-github"},null,-1)),t[6]||(t[6]=h()),n("span",{textContent:u(e.details?.baseRepositoryFullName)},null,8,aU)])):c("v-if",!0),e.details?.updatedDate?(l(),d("span",lU,[t[7]||(t[7]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[8]||(t[8]=h()),n("span",{textContent:u(e.fmt?.date(e.details?.updatedDate))},null,8,dU)])):c("v-if",!0),e.details?.anonymizeDate?(l(),d("span",uU,[t[9]||(t[9]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),t[10]||(t[10]=h(" Anonymized ",-1)),n("span",{textContent:u(e.fmt?.date(e.details?.anonymizeDate))},null,8,cU)])):c("v-if",!0)])]),e.details?.body?(l(),d("section",pU,[t[11]||(t[11]=n("div",{class:"paper-section-eyebrow"},"Description",-1)),De(o,{content:e.details?.body},null,8,["content"])])):c("v-if",!0),e.details?.diff||e.details?.comments?(l(),d("nav",fU,[e.details?.diff?(l(),d("button",{key:0,class:O(["paper-tab",{active:e.tabState?.active=="diff"}]),type:"button",role:"tab",id:"pr-diff-tab","aria-selected":e.tabState?.active==="diff","aria-controls":"pr-diff-panel",tabindex:e.tabState?.active==="diff"?0:-1,onKeydown:t[0]||(t[0]=i=>e.previewTabKeydown(i)),onClick:t[1]||(t[1]=i=>e.tabState.active="diff")},[...t[12]||(t[12]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),h(" Diff ",-1)])],42,mU)):c("v-if",!0),e.details?.comments?(l(),d("button",{key:1,class:O(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",id:"pr-comments-tab","aria-selected":e.tabState?.active==="comments","aria-controls":"pr-comments-panel",tabindex:e.tabState?.active==="comments"?0:-1,onKeydown:t[2]||(t[2]=i=>e.previewTabKeydown(i)),onClick:t[3]||(t[3]=i=>e.tabState.active="comments")},[t[13]||(t[13]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1)),n("span",{textContent:u(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,vU)],42,hU)):c("v-if",!0)])):c("v-if",!0),n("div",gU,[e.details?.diff&&e.tabState?.active=="diff"?(l(),d("div",yU,[n("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.details?.diff))},null,8,bU)])):c("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(l(),d("div",wU,[n("ul",kU,[(l(!0),d(W,null,oe(e.details?.comments,(i,s)=>(l(),d("li",CU,[n("div",EU,[i?.author?(l(),d("span",SU,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[15]||(t[15]=h(" @",-1)),n("span",{textContent:u(i?.author)},null,8,NU)])):c("v-if",!0),i?.updatedDate?(l(),d("span",{key:1,class:"pr-comment-date",textContent:u(e.fmt?.date(i?.updatedDate))},null,8,RU)):c("v-if",!0)]),i?.body?(l(),d("div",DU,[De(o,{content:i?.body},null,8,["content"])])):c("v-if",!0)]))),256)),e.details?.comments?.length?c("v-if",!0):(l(),d("li",TU,[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1),n("span",null,"No comments on this pull request.",-1)])]))])])):c("v-if",!0)])])])}var _U={class:"repository-task status-page"},AU={class:"task-lede"},OU={class:"task-columns"},PU={class:"task-preparation","aria-label":"Repository preparation"},IU={key:0,class:"task-ready",role:"status"},MU={key:1},VU={key:2,class:"text-danger",role:"alert"},qU={key:3,class:"paper-section-copy"},LU={key:4,class:"paper-ratelimit-card",role:"status"},$U={class:"paper-error-msg"},UU=["aria-valuenow"],FU={class:"paper-progress-label"},BU=["textContent"],zU={key:0},HU=["textContent"],jU={class:"paper-progress-pct"},GU={key:6,class:"paper-error-card",role:"alert"},WU={key:0,class:"paper-error-msg"},KU={key:1,class:"paper-error-msg"},YU={key:2},JU=["href"],QU={class:"paper-error-actions"},XU=["href"],ZU={key:7,class:"share-link"},xU={class:"share-link-row"},eF=["value"],tF={class:"ui-icon","aria-hidden":"true"},nF=["href"],oF=["textContent"],sF={class:"share-link-actions"},iF=["href"],rF=["href"],aF={class:"task-summary","aria-label":"Repository summary"},lF={class:"task-summary-foot"};function od(e,t){return l(),d("div",_U,[t[23]||(t[23]=n("div",{class:"paper-crumbs"},[n("a",{href:"/dashboard"},"My work"),h(" / Repository")],-1)),t[24]||(t[24]=n("h1",null,"Prepare your anonymous review link",-1)),n("p",AU,u(e.repo?.status==="ready"?"Your repository is ready to share.":"Your settings are saved. Track preparation before sharing the link."),1),t[25]||(t[25]=n("ol",{class:"task-trail","aria-label":"Repository progress"},[n("li",null,"1. Repository"),n("li",null,"2. Review and hosting"),n("li",{"aria-current":"step"},"3. Review link")],-1)),n("div",OU,[n("section",PU,[e.repo?.status==="ready"?(l(),d("div",IU,[...t[3]||(t[3]=[n("strong",null,"Your review link is ready",-1)])])):c("v-if",!0),n("h2",null,u(e.repoId),1),e.repo?.status==="ready"?(l(),d("p",MU,"Share the link with reviewers. They do not need to sign in.")):c("v-if",!0),e.error?(l(),d("p",VU,[t[4]||(t[4]=h("Unable to load repository status. ",-1)),n("button",{type:"button",class:"task-text-button",onClick:t[0]||(t[0]=o=>e.getStatus())},"Try again")])):c("v-if",!0),e.repo?.status!=="ready"?(l(),d("p",qU,[...t[5]||(t[5]=[h(" The repository will take a few minutes to get ready, depending on its size. Visit the ",-1),n("a",{href:"/faq"},"FAQ",-1),h(" for more information. ",-1)])])):c("v-if",!0),e.rateLimitResetAt?(l(),d("div",LU,[t[8]||(t[8]=me('
Temporarily paused
GitHub API rate limit reached
',1)),n("p",$U,[t[6]||(t[6]=h("Anonymization will resume automatically in ",-1)),n("strong",null,u(e.rateLimitCountdown),1),t[7]||(t[7]=h(". No action needed \u2014 the job is queued and will continue where it left off.",-1))])])):c("v-if",!0),e.repo?.status!=="ready"&&e.repo?.status!="error"&&!e.rateLimitResetAt?(l(),d("div",{key:5,class:O(["paper-progress",{"paper-progress-ready":e.repo?.status=="ready"}]),role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":e.progress},[n("div",{class:"paper-progress-bar",style:Re("width: "+e.progress+"%;")},null,4),n("div",FU,[n("span",{textContent:u(e.fmt?.title(e.repo?.status))},null,8,BU),e.repo?.statusMessage?(l(),d("span",zU,[t[9]||(t[9]=h("\xA0\xB7\xA0",-1)),n("span",{textContent:u(e.repo?.statusMessage)},null,8,HU)])):c("v-if",!0),n("span",jU,u(e.progress||0)+"%",1)])],10,UU)):c("v-if",!0),e.repo?.status=="error"&&!e.rateLimitResetAt?(l(),d("div",GU,[t[13]||(t[13]=me('
Anonymization failed
Something went wrong while preparing this repository.
',1)),e.repo?.statusMessage?(l(),d("p",WU,u(e.fmt?.translate("ERRORS."+e.repo?.statusMessage)),1)):c("v-if",!0),e.repo?.statusMessage?c("v-if",!0):(l(),d("p",KU,"No additional details were reported. The most common causes are private repositories, missing branches, and rate limits.")),e.repo?.statusMessage==="quota_exceeded"?(l(),d("p",YU,[n("a",{href:e.safeUrl("/anonymize/"+e.repoId)},"Review this repository\u2019s hosting",8,JU),t[10]||(t[10]=h(", then retry preparation.",-1))])):c("v-if",!0),t[14]||(t[14]=n("ul",{class:"paper-error-hints"},[n("li",null,"Make sure the source URL points to a repository or pull request you can access."),n("li",null,"Check that the chosen branch and commit still exist on GitHub."),n("li",null,"If you just signed in, the access token may need a moment to propagate \u2014 try again.")],-1)),n("div",QU,[n("a",{class:"btn btn-ink",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[11]||(t[11]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),h(" Edit anonymization",-1)])],8,XU),t[12]||(t[12]=me(' Read the FAQ Report a bug in Anonymous GitHub',2))])])):c("v-if",!0),e.repo?.status=="ready"?(l(),d("div",ZU,[t[17]||(t[17]=n("p",{class:"paper-section-copy"},"Reviewers can browse the repository at this address without seeing who you are.",-1)),n("div",xU,[n("input",{id:"share-url",class:"form-control share-link-input",readonly:"","aria-label":"Anonymous link",value:e.shareUrl,onFocus:t[1]||(t[1]=o=>o.target.select())},null,40,eF),n("button",{type:"button",class:"btn btn-ink",onClick:t[2]||(t[2]=o=>e.copyShareUrl())},[(l(),d("svg",tF,[n("use",{href:e.copied?"#ui-icon-check":"#project-icon-copy"},null,8,nF)])),n("span",{"aria-live":"polite",textContent:u(e.copied?"Copied":"Copy link")},null,8,oF)])]),n("div",sF,[n("a",{class:"btn",target:"_self",href:e.safeUrl("/r/"+e.repoId+"/")},[...t[15]||(t[15]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),h(" Open repository ",-1)])],8,iF),e.repo?.options?.page?(l(),d("a",{key:0,class:"btn",target:"_self",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),h(" Open GitHub page ",-1)])],8,rF)):c("v-if",!0)])])):c("v-if",!0)]),n("aside",aF,[n("h3",null,u(e.repoId),1),n("dl",null,[t[18]||(t[18]=n("dt",null,"Source",-1)),n("dd",null,u(e.repo?.source?.fullName?"https://github.com/"+e.repo.source.fullName:"Loading\u2026"),1),t[19]||(t[19]=n("dt",null,"Lifetime",-1)),n("dd",null,u(e.repo?.options?.expirationMode==="never"?"Never expire while subscribed":e.repo?.options?.expirationDate?"Until "+e.fmt.date(e.repo.options.expirationDate):"Loading\u2026"),1),t[20]||(t[20]=n("dt",null,"Review access",-1)),t[21]||(t[21]=n("dd",null,"Anonymous and free",-1))]),n("div",lF,[n("strong",null,u(e.repo?.status==="ready"?"Ready to share":"Repository preparation"),1),t[22]||(t[22]=n("p",null,"Coauthors do not each need a subscription.",-1))])])])])}var fs={"partials/reviewConsent.htm":_l,"partials/connections.htm":Al,"partials/signin.htm":Ol,"partials/404.htm":Pl,"partials/admin/conferences.htm":Il,"partials/admin/errors.htm":Ml,"partials/admin/overview.htm":Vl,"partials/admin/queues.htm":ql,"partials/admin/repositories.htm":Ll,"partials/admin/user.htm":$l,"partials/admin/users.htm":Ul,"partials/anonymize.htm":Fl,"partials/anonymizePullRequest.htm":Bl,"partials/claim.htm":zl,"partials/conference.htm":Hl,"partials/conferences.htm":jl,"partials/dashboard.htm":Gl,"partials/explorer.htm":Wl,"partials/faq.htm":Kl,"partials/gist.htm":Yl,"partials/header.htm":Jl,"partials/home.htm":Ql,"partials/loading.htm":Xl,"partials/newConference.htm":Zl,"partials/pageView.htm":xl,"partials/pr-dashboard.htm":ed,"partials/profile.htm":td,"partials/pullRequest.htm":nd,"partials/status.htm":od};var dF={class:"ui-icon-definitions","aria-hidden":"true",focusable:"false"};function sd(e,t){return l(),d("svg",dF,[...t[0]||(t[0]=[me('',1)])])}function id(e,t){e==="partials/explorer.htm"&&(t.sidebarCollapsed=window.matchMedia?.("(max-width: 767px)").matches||!1,t.sidebarHidden=!1,t.dirExpanded=!1,t.moreOpen=!1,t.tocOpen=!1,t.gotoOpen=!1,t.gotoValue="",t.gotoError="",t.mdFindOpen=!1,t.mdFindQuery="",t.mdFindTotal=0,t.mdFindIndex=0,t.mdFindCase=!1,t.accountOpen=!1,t.helpOpen=!1,t.sidebarWidth=Math.min(520,Math.max(220,Number(localStorage.getItem("sidebarWidth"))||280)),document.documentElement.style.setProperty("--sidebar-w",t.sidebarWidth+"px"),t.startSidebarResize=s=>{s.preventDefault();let r=s.clientX,a=t.sidebarWidth,p=g=>{t.sidebarWidth=Math.min(520,Math.max(220,a+g.clientX-r)),document.documentElement.style.setProperty("--sidebar-w",t.sidebarWidth+"px")},f=()=>{window.removeEventListener("pointermove",p),window.removeEventListener("pointerup",f),document.body.classList.remove("is-resizing"),localStorage.setItem("sidebarWidth",String(t.sidebarWidth))};document.body.classList.add("is-resizing"),window.addEventListener("pointermove",p),window.addEventListener("pointerup",f)}),e==="partials/anonymize.htm"&&(t.prTabState={active:t.options.diff?"diff":"comments"},t.watchGroup(["options.diff","options.comments"],()=>{t.options[t.prTabState.active]||(t.prTabState.active=t.options.diff?"diff":t.options.comments?"comments":null)})),e==="partials/gist.htm"&&(t.tabState={active:t.details?.files?"files":"comments"}),["partials/conferences.htm","partials/conference.htm"].includes(e)&&(t.statusLabels={ready:"Ready",expired:"Expired",removed:"Removed"});let i={"partials/dashboard.htm":["filteredItems",()=>t.items,"itemFilter"],"partials/conferences.htm":["filteredConferences",()=>t.conferences,"conferenceFilter"],"partials/conference.htm":["filteredRepositories",()=>t.conference?.repositories,"repoFiler"],"partials/admin/repositories.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/user.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/users.htm":["filteredUsers",()=>t.users,"userFiler"],"partials/admin/conferences.htm":["filteredConferences",()=>t.conferences]}[e];if(i){let s=nt(()=>t.fmt.orderBy(t.fmt.filter(i[1](),t[i[2]]),t.orderBy));Object.defineProperty(t,i[0],{configurable:!0,get:()=>s.value})}}function rd(e=(...t)=>fetch(...t)){async function t(i,s,r,a={}){let p=new URL(s,window.location.href);for(let[y,b]of Object.entries(a.params||{}))if(b!=null)for(let m of Array.isArray(b)?b:[b])p.searchParams.append(y,typeof m=="object"?JSON.stringify(m):m);let f=new AbortController,g;a.timeout?.then?a.timeout.then(()=>f.abort()):a.timeout&&(g=setTimeout(()=>f.abort(),a.timeout));try{let y={Accept:"application/json, text/plain, */*",...a.headers},b=document.cookie.match(/(?:^|;\s*)XSRF-TOKEN=([^;]*)/);b&&p.origin===window.location.origin&&(y["X-XSRF-TOKEN"]=decodeURIComponent(b[1]));let m;r!==void 0&&(r instanceof FormData?m=r:(y["Content-Type"]||(y["Content-Type"]="application/json;charset=utf-8"),m=JSON.stringify(r)));let E=await e(p.href,{method:i,headers:y,body:m,credentials:"same-origin",signal:f.signal}),P;if(a.onDownloadProgress&&E.ok&&E.body?.getReader&&typeof TextDecoder<"u"){let S=E.body.getReader(),_=new TextDecoder,M=[],L=0;try{for(;;){let{value:q,done:G}=await S.read();if(G)break;M.push(_.decode(q,{stream:!0})),L+=q.byteLength,a.onDownloadProgress(L)}M.push(_.decode()),P=M.join("")}finally{S.releaseLock()}}else P=await E.text();let k=P;if(a.transformResponse)k=a.transformResponse(P);else if(P&&(/json/i.test(E.headers.get("content-type")||"")||/^[\[{]/.test(P.trim())))try{k=JSON.parse(P)}catch{}let v={data:k,status:E.status,headers:S=>E.headers.get(S)};if(!E.ok)throw v;return v}catch(y){throw y.name==="AbortError"?{status:-1,data:null}:y}finally{clearTimeout(g)}}let o={};for(let i of["get","delete","head"])o[i]=(s,r)=>t(i.toUpperCase(),s,void 0,r);for(let i of["post","put","patch"])o[i]=(s,r,a)=>t(i.toUpperCase(),s,r,a);return o}var ad={resolve:e=>Promise.resolve(e),reject:e=>Promise.reject(e),all:e=>Promise.all(e),defer(){let e,t;return{promise:new Promise((i,s)=>{e=i,t=s}),resolve:e,reject:t}}};var ld=function(e){function t(o){return o=o||{used:0,total:0},o.unlimited=!o.total,o.percent=o.unlimited?0:Math.min(100,o.used*100/o.total),o.level=o.unlimited?"unlimited":o.percent>=95?"danger":o.percent>=80?"warn":"ok",o}return{decorate:t,load:function(){return e.get("/api/user/quota").then(o=>{let i=o.data||{};return i.storage=t(i.storage),i.file=t(i.file),i.repository=t(i.repository),i})}}};var bi={};Dd(bi,{bigNum:()=>cF,date:()=>CF,diff:()=>vF,filter:()=>wF,humanFileSize:()=>uF,humanTime:()=>pF,limitTo:()=>bF,number:()=>gF,orderBy:()=>kF,plural:()=>EF,statusLabel:()=>mF,statusMsg:()=>hF,title:()=>fF,uppercase:()=>yF});var uF=e=>window.humanFileSize(e),cF=(function(){return function(t){let o=Number(t)||0,i=Math.abs(o);return i<1e3?String(o):i<1e4?(o/1e3).toFixed(1).replace(/\.0$/,"")+"k":i<1e6?Math.round(o/1e3)+"k":i<1e7?(o/1e6).toFixed(1).replace(/\.0$/,"")+"M":Math.round(o/1e6)+"M"}})(),pF=(function(){return function(t){if(!t)return"never";var o=null;t instanceof Date&&(o=t,t=Math.round((Date.now()-t)/1e3)),(typeof t=="string"||typeof t=="number")&&(o=new Date(t),t=Math.round((Date.now()-o)/1e3));var i=t<0?"from now":"ago";if(Math.abs(t)>7200*24)return(o&&!isNaN(o)?o:new Date(Date.now()-t*1e3)).toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"});t=Math.abs(t);for(var s=[t/60/60/24/365,t/60/60/24/30,t/60/60/24/7,t/60/60/24,t/60/60,t/60,t],r=["year","month","week","day","hour","minute","second"],a=0;a1&&(f+="s"),p>=1)return p+" "+f+" "+i}return"0 seconds "+i}})(),fF=(function(){return function(e){if(!e)return e;e=e.toLowerCase();var t=e.split(" "),o=t.map(function(i){return i.charAt(0).toUpperCase()+i.substring(1,i.length)});return o.join(" ")}})(),mF=(function(){var e={ready:"Ready",error:"Error",expired:"Expired",expiring:"Expiring",removed:"Removed",removing:"Removing",queue:"Queued",download:"Downloading",downloaded:"Downloaded",preparing:"Preparing",anonymizing:"Anonymizing"};return function(t){if(!t)return"";if(e[t])return e[t];var o=String(t).replace(/[_-]+/g," ").toLowerCase();return o.charAt(0).toUpperCase()+o.slice(1)}})(),hF=(function(){var e={branch_not_found:"Branch not found on GitHub",repo_not_found:"Repository not found on GitHub",repository_not_found:"Repository not found on GitHub",repo_not_accessible:"Repository is not accessible with your token",pr_not_found:"Pull request not found on GitHub",gist_not_found:"Gist not found on GitHub",commit_not_found:"Commit not found on GitHub",repo_too_big:"Repository exceeds the size limit",quota_exceeded:"Storage quota exceeded",incomplete_record:"Incomplete record: missing identifier"};return function(t){if(!t)return t;var o=t.match(/^rate_limited:(\d+)$/);if(o){var i=Math.max(0,Math.ceil((parseInt(o[1],10)-Date.now())/1e3));if(i<=0)return"Rate limited \u2014 resuming soon";var s=Math.floor(i/60),r=i%60;return"Rate limited \u2014 retrying in "+(s>0?s+"m "+r+"s":r+"s")}if(e[t])return e[t];if(/^[a-z0-9]+(_[a-z0-9]+)+$/.test(t)){var a=t.replace(/_/g," ");return a.charAt(0).toUpperCase()+a.slice(1)}return t}})(),vF=(function(e){let t=i=>i.replace(/&/g,"&").replace(//g,">");function o(i,s){if(!s)return;let r=s.newPath&&s.newPath!=="/dev/null"?s.newPath:s.oldPath||"",a=s.oldPath==="/dev/null"?"added":s.newPath==="/dev/null"?"deleted":s.oldPath&&s.newPath&&s.oldPath!==s.newPath?"renamed":"modified";if(i.push('
'),i.push('
'+t(r)+''+a+"
"),s.lines.length){i.push('');for(let p of s.lines)i.push('");i.push("
'+(p.oldNo||"")+''+(p.newNo||"")+''+(p.kind==="add"?"+":p.kind==="remove"?"-":p.kind==="hunk"?"@":"")+''+t(p.text)+"
")}i.push("
")}return function(i){if(!i)return i;let s=[],r=null,a=0,p=0,f=()=>(r||(r={oldPath:"",newPath:"",lines:[]}),r),g=()=>{r&&(r.lines.length||r.oldPath||r.newPath)&&(o(s,r),r=null)},y=i.split(` -`);for(let b=0;be});function gF(e,t){return e==null?"":Number(e).toLocaleString(void 0,t==null?{}:{minimumFractionDigits:t,maximumFractionDigits:t})}function yF(e){return String(e??"").toUpperCase()}function bF(e,t,o=0){return(e||[]).slice(o,o+t)}function wF(e,t){return Array.isArray(e)?typeof t=="function"?e.filter(t):e:[]}function kF(e,t){if(!t)return e||[];let o=Array.isArray(t)?t:[t];return[...e||[]].sort((i,s)=>{for(let r of o){let a=r[0]==="-"?-1:1;r=r.replace(/^[+-]/,"");let p=r.split(".").reduce((g,y)=>g?.[y],i),f=r.split(".").reduce((g,y)=>g?.[y],s);if(typeof p=="string"&&(p=p.toLowerCase()),typeof f=="string"&&(f=f.toLowerCase()),p!==f)return(p==null?-1:f==null?1:pi[s])}function EF(e,t){return(t?.[e]??t?.[e===1?"one":"other"]??"").replace(/\{\}/g,e??0)}var dd={name:"htmlDoc",props:["content","baseUrl","allowScripts"],setup(e){let t=et(null);return Ft(()=>{let i=[t.value][0];i.classList.add("html-doc");function s(){i.innerHTML="";let r=e.content;if(typeof r!="string")return;let a=document.createElement("iframe");a.className="html-doc-frame",a.setAttribute("title","Rendered HTML document");let p=["allow-popups","allow-popups-to-escape-sandbox"];e.allowScripts&&p.push("allow-scripts","allow-forms","allow-modals"),a.setAttribute("sandbox",p.join(" ")),a.setAttribute("referrerpolicy","no-referrer"),i.appendChild(a);let f="";e.baseUrl&&(f=''),a.srcdoc=f+r}Fe(()=>e.content,s,{immediate:!0}),Fe(()=>e.baseUrl,s,{immediate:!0}),Fe(()=>e.allowScripts,s,{immediate:!0})}),()=>Se("html-doc",{ref:t})}};var ud={name:"pdfviewer",props:["src"],setup(e){let t=et(null);return Ft(()=>{let o=[t.value],i=400,s=[.5,.75,1,1.25,1.5,2,3],r=1e3,a=o[0];a.classList.add("pdf-viewer");let p=null,f=[],g=!1,y=null,b=1,m=1,E=0,P=0,k=612/792,v=0,S=null,_=new Map,M=0;function L(C){let N=_.get(C);N&&(N.cancelled=!0,N.task?.cancel?.(),_.delete(C));let V=C.querySelector("canvas");V&&(V.width=0,V.height=0),C.innerHTML="",delete C.dataset.state}let q=document.createElement("div");q.className="pdf-toolbar";let G=document.createElement("div");G.className="pdf-pages",G.tabIndex=0,G.setAttribute("aria-label","PDF pages"),a.appendChild(q),a.appendChild(G);function se(C,N,V){let j=document.createElement("button");return j.type="button",j.className="pdf-toolbar-btn",j.title=N,j.setAttribute("aria-label",N),j.innerHTML='',j.addEventListener("click",V),j}let ee=se("fa-chevron-up","Previous page",function(){ze(m-1)}),R=se("fa-chevron-down","Next page",function(){ze(m+1)}),K=document.createElement("input");K.type="text",K.className="pdf-toolbar-page",K.setAttribute("aria-label","Page number"),K.title="Page number \u2014 type a page and press Enter",K.addEventListener("keydown",function(C){C.key==="Enter"&&(ze(parseInt(K.value,10)),K.blur())}),K.addEventListener("blur",function(){K.value=String(m)});let te=document.createElement("span");te.className="pdf-toolbar-count";let ve=se("fa-search-minus","Zoom out",function(){re(s[Math.max(0,ye()-1)])}),x=se("fa-search-plus","Zoom in",function(){re(s[Math.min(s.length-1,ye()+1)])}),ue=document.createElement("button");ue.type="button",ue.className="pdf-toolbar-btn pdf-toolbar-zoom",ue.title="Reset zoom to fit the width",ue.setAttribute("aria-label","Reset zoom to fit the width"),ue.addEventListener("click",function(){re(1)}),q.appendChild(ee),q.appendChild(R);let he=document.createElement("span");he.className="pdf-toolbar-group",he.appendChild(K),he.appendChild(te),q.appendChild(he);let Ee=document.createElement("span");Ee.className="pdf-toolbar-group pdf-toolbar-right",Ee.appendChild(ve),Ee.appendChild(ue),Ee.appendChild(x),q.appendChild(Ee);function ye(){let C=0;for(let N=0;N=C,ue.textContent=Math.round(b*100)+"%",ve.disabled=ye()===0,x.disabled=ye()===s.length-1}function Le(C){let N=f[C-1];N&&(G.scrollTop+=N.getBoundingClientRect().top-G.getBoundingClientRect().top)}function ze(C){if(!p||isNaN(C))return;let N=Math.min(Math.max(1,C),p.numPages);f[N-1]&&(Le(N),m=N,E=N,P=Date.now()+800,be(),ne())}function He(){if(!f.length||Date.now(){}),S=null),y&&(clearTimeout(y),y=null),p&&(p.destroy(),p=null),f=[],m=1,G.innerHTML="",be()}function F(){G.innerHTML="";let C=document.createElement("div");C.className="pdf-viewer-error",C.textContent="This PDF could not be displayed.",G.appendChild(C)}function X(){let C=Math.max(120,G.clientWidth-24);return Math.round(Math.min(C,r)*b)}function J(C,N,V){let j=window.devicePixelRatio||1,w=C.getViewport({scale:1}),A=parseFloat(N.style.width);if(!A)return;let D=C.getViewport({scale:A/w.width*j}),I=document.createElement("canvas");return I.width=Math.floor(D.width),I.height=Math.floor(D.height),I.style.width=A+"px",I.style.height=Math.floor(D.height/j)+"px",N.innerHTML="",N.appendChild(I),N.style.height=I.style.height,V.task=C.render({canvasContext:I.getContext("2d"),viewport:D}),V.task.promise}function ne(){if(!p)return;let C=v,N=G.getBoundingClientRect(),V=N.top-i,j=N.top+G.clientHeight+i,w=f.map((D,I)=>({slot:D,i:I,rect:D.getBoundingClientRect()})).filter(D=>D.rect.top<=j&&D.rect.bottom>=V).sort((D,I)=>Math.abs(D.rect.top-N.top)-Math.abs(I.rect.top-N.top)).slice(0,6),A=new Set(w.map(D=>D.slot));for(let D of _.keys())A.has(D)||L(D);for(let{slot:D,i:I}of w){if(D.dataset.state||M>=2)continue;let z={cancelled:!1,task:null};_.set(D,z),M++,D.dataset.state="rendering";let B;p.getPage(I+1).then(ie=>{if(B=ie,!(z.cancelled||C!==v))return J(B,D,z)}).then(()=>{z.cancelled||C!==v||(D.dataset.state="done",E&&Date.now(){!z.cancelled&&C===v&&(D.dataset.state="failed")}).finally(()=>{M--,B?.cleanup?.(),p&&ne()})}}function U(){g||(g=!0,window.requestAnimationFrame(function(){g=!1,He(),ne()}))}function Q(){let C=!1;function N(){C||(C=!0,ne())}window.requestAnimationFrame(N),window.setTimeout(N,50)}function H(){v++,f.forEach(L);let C=X();f.forEach(function(N){delete N.dataset.state,N.innerHTML="",N.style.width=C+"px",N.style.height=Math.round(C/k)+"px"}),ne()}function re(C){if(!p||!f.length||C===b)return;let N=m;b=C,be(),H(),ze(N)}function de(){p&&(y&&clearTimeout(y),y=setTimeout(function(){y=null,p&&f.length&&H()},250))}function Ne(C){if(Me(),!C)return;let N=v;S=pdfjsLib.getDocument({url:C,isEvalSupported:!1,standardFontDataUrl:"/script/external/pdf-standard-fonts/",cMapUrl:"/script/external/pdf-cmaps/",cMapPacked:!0}),S.promise.then(function(V){if(N!==v){V.destroy();return}return p=V,p.getPage(1).then(function(j){if(N!==v)return;let w=j.getViewport({scale:1});w.width&&w.height&&(k=w.width/w.height);let A=X();for(let D=1;D<=p.numPages;D++){let I=document.createElement("div");I.className="pdf-viewer-page",I.style.width=A+"px",I.style.height=Math.round(A/k)+"px",G.appendChild(I),f.push(I)}be(),Q()})}).catch(function(){N===v&&F()})}G.addEventListener("scroll",U,{passive:!0}),$(window).on("resize",de),be(),Fe(()=>e.src,Ne,{immediate:!0}),pn(function(){G.removeEventListener("scroll",U),$(window).off("resize",de),Me()})}),()=>Se("pdfviewer",{ref:t})}};var SF={key:0,class:"quota-row quota-usage"},NF={class:"quota-header"},RF={class:"quota-label"},DF={class:"project-type-svg","aria-hidden":"true"},TF=["href"],_F={key:0,class:"quota-percent"},AF={key:1,class:"quota-unlimited-tag"},OF={class:"quota-value"},PF={key:0},IF=["aria-label","aria-valuenow","aria-valuemax","aria-valuetext"],MF={key:1,class:"quota-remaining"},VF={key:2,class:"quota-remaining quota-limit"};function cd(e,t){return e.quota?(l(),d("div",SF,[(l(),d(W,null,oe([{key:"repository",label:"Repositories",kind:"count",icon:"project-type-repo"},{key:"storage",label:"Storage",kind:"bytes",icon:"project-icon-storage"},{key:"file",label:"Files",kind:"count",icon:"project-icon-file"}],o=>n("div",{class:O(["quota-item","quota-"+e.quota[o.key].level]),key:o.key},[n("div",NF,[n("span",RF,[(l(),d("svg",DF,[n("use",{href:"#"+o.icon},null,8,TF)])),h(u(o.label),1)]),e.quota[o.key].unlimited?c("v-if",!0):(l(),d("span",_F,u(e.quota[o.key].percent>0&&e.quota[o.key].percent<1?"<1":e.fmt.number(e.quota[o.key].percent,0))+"% used",1)),e.quota[o.key].unlimited?(l(),d("span",AF,"Unlimited")):c("v-if",!0)]),n("div",OF,[n("strong",null,u(e.formatAmount(e.quota[o.key].used,o.kind)),1),e.quota[o.key].unlimited?c("v-if",!0):(l(),d("span",PF," / "+u(e.formatAmount(e.quota[o.key].total,o.kind)),1))]),e.quota[o.key].unlimited?c("v-if",!0):(l(),d("div",{key:0,class:O(["quota-track","quota-"+e.quota[o.key].level]),role:"progressbar","aria-valuemin":"0","aria-label":o.label+" quota","aria-valuenow":Math.min(e.quota[o.key].used,e.quota[o.key].total),"aria-valuemax":e.quota[o.key].total,"aria-valuetext":e.fmt.number(e.quota[o.key].percent,0)+"% used"},[e.quota[o?.key].unlimited?c("v-if",!0):(l(),d("div",{key:0,class:"quota-fill",style:Re({width:e.quota[o.key].percent+"%"})},null,4))],10,IF)),!e.quota[o.key].unlimited&&e.quota[o.key].used=e.quota[o.key].total?(l(),d("p",VF,u(e.quota[o.key].used>e.quota[o.key].total?"Limit exceeded":"Limit reached"),1)):c("v-if",!0)],2)),64))])):c("v-if",!0)}var qF={props:["quota","fmt"],setup(e){return{formatAmount:(t,o)=>o==="bytes"?e.fmt.humanFileSize(e.quota?.storage?.unit==="bytes"?t*8:t).replace(/([a-zA-Z]+)$/," $1"):e.fmt.number(t)}},render:cd},LF=new Set(pe),fd={props:["content","terms","options"],setup(e){let t=et(null),o=()=>{t.value.innerHTML=renderMD(e.content||"",window.location.pathname+"/../")};return Ft(()=>{o(),Fe(()=>[e.content,e.terms,e.options],o,{deep:!0})}),()=>Se("markdown",{ref:t})}},$F={props:["file","terms","options"],setup(e){let t=et(null),o=()=>Ge(()=>t.value?.querySelectorAll("pre code").forEach(i=>window.Prism?.highlightElement(i)));return Ft(o),Fe(()=>[e.file?.content,e.terms,e.options],o,{deep:!0}),()=>{let i=e.file||{},s=(i.filename||"").split(".").pop().toLowerCase();if(["md","markdown"].includes(s)||i.language==="Markdown")return Se("gist-file",{ref:t},Se(fd,{content:i.content,terms:e.terms,options:e.options}));let r={js:"javascript",jsx:"javascript",ts:"javascript",typescript:"javascript",py:"python",html:"markup",xml:"markup",svg:"markup",sh:"bash"},a=(i.language||s||"none").toLowerCase();return Se("gist-file",{ref:t},Se("pre",{class:"line-numbers"},Se("code",{class:"language-"+(r[a]||a),key:i.content},i.content||"")))}}},UF={props:["file","content"],setup(e){let t=et(null),o=0,i,s=async()=>{let r=++o;i?.abort(),i=new AbortController;try{let a=e.content?JSON.parse(e.content):await fetch(e.file?.download_url||e.file,{signal:i.signal}).then(p=>{if(!p.ok)throw Error("Notebook request failed");return p.json()});if(await on("notebook"),r!==o)return;t.value.innerHTML=DOMPurify.sanitize(nb.parse(a).render()),t.value.querySelectorAll("pre code").forEach(p=>window.Prism?.highlightElement(p))}catch(a){r===o&&a.name!=="AbortError"&&(t.value.textContent="Unable to render the notebook.")}};return Ft(()=>{s(),Fe(()=>[e.file,e.content],s)}),pn(()=>{o++,i?.abort()}),()=>Se("notebook",{ref:t})}},FF={props:["stats"],setup(e){return()=>{let t=Object.entries(e.stats||{}).filter(([,i])=>i.code),o=t.reduce((i,[,s])=>i+s.code,0);return Se("loc",t.map(([i,s])=>Se("div",{class:"lang",title:`${i}: ${s.code.toLocaleString()} lines`,style:{width:s.code*100/o+"%",background:langColors[i]}})))}}},md={Markdown:fd,GistFile:$F,Notebook:UF,Loc:FF,HtmlDoc:dd,QuotaUsage:qF,Pdfviewer:Rr(async()=>(await on("pdf"),pdfjsLib.GlobalWorkerOptions.workerSrc="/script/external/pdf.worker.js",ud))},hd={async mounted(e,{value:t}){e._editorValue=t;try{if(await ko(),e._editorDisposed)return;let o=e._editorValue,i=ace.edit(e);e._editor=i,i.setValue(String(o.content??""),-1),pd(e,o.options),e._editorCleanup=o.options?.onLoad?.(i)}catch(o){e._editorDisposed||(e.textContent=o.message)}},updated(e,{value:t}){e._editorValue=t,e._editor&&(e._editor.getValue()!==String(t.content??"")&&e._editor.setValue(String(t.content??""),-1),pd(e,t.options))},beforeUnmount(e){e._editorDisposed=!0,e._editorCleanup?.(),e._editor?.destroy()}};function pd(e,t={}){let o=LF.has(t.mode)?t.mode:"text";e._editor.session.setMode("ace/mode/"+o),t.theme&&e._editor.setTheme("ace/theme/"+t.theme),e._editor.setReadOnly(t.readOnly!==!1)}var vd={mounted(e){if(!window.IntersectionObserver)return;let t=[...e.querySelectorAll('a[href^="#"]')],o=new Set,i=new IntersectionObserver(s=>{s.forEach(a=>a.isIntersecting?o.add(a.target.id):o.delete(a.target.id));let r=t.find(a=>o.has(a.hash.slice(1)));r&&t.forEach(a=>a.classList.toggle("active",a===r))},{rootMargin:"-20% 0px -60% 0px",threshold:0});Ge(()=>{t.forEach(s=>{let r=document.getElementById(s.hash.slice(1));r&&i.observe(r)}),t[0]&&!t.some(s=>s.classList.contains("active"))&&t[0].classList.add("active")}),e._observer=i},beforeUnmount(e){e._observer?.disconnect()}};function BF(e){let t=[],o=0,i=/\bXXXX-(\d+)\b/g,s;for(;s=i.exec(e);)s.index>o&&t.push(e.slice(o,s.index)),t.push(Se("span",{class:"redact-slot",role:"img","aria-label":"Redacted term "+s[1]},[Se("i",null,s[1])])),o=s.index+s[0].length;return t.length?(o=1024&&iHF(e.file)),a=()=>"/"+(Array.isArray(t.params.path)?t.params.path.join("/"):t.params.path||"");Fe(()=>[t.params.repoId,t.params.path],()=>{let m="";a().split("/").filter(Boolean).forEach(E=>{m+="/"+E,i[m]=!0})},{immediate:!0});let p=nt(()=>{if(!e.searchQuery||!e.searchResults)return null;let m=new Set,E=new Set;return e.searchResults.forEach(P=>{m.add(P.path?`${P.path}/${P.name}`:P.name);let k="";(P.path||"").split("/").filter(Boolean).forEach(v=>{k=k?k+"/"+v:v,E.add(k)})}),{files:m,folders:E}}),f=()=>[...o.value.querySelectorAll("li > a")],g=m=>{o.value.querySelector(".tree-focused")?.classList.remove("tree-focused"),m&&(s=m.dataset.path,m.classList.add("tree-focused"),m.scrollIntoView?.({block:"nearest"}),o.value.focus())};function y(m){let E=f(),P=o.value.querySelector(".tree-focused")||E[0],k=E.indexOf(P);if(!["ArrowDown","ArrowUp","ArrowRight","ArrowLeft","Enter"].includes(m.key)||(m.preventDefault(),m.key==="ArrowDown"&&g(E[(k+1)%E.length]),m.key==="ArrowUp"&&g(E[(k-1+E.length)%E.length]),!P))return;let v=P.closest("li");m.key==="ArrowRight"&&v.classList.contains("folder")&&(v.classList.contains("open")?g(v.querySelector(":scope > ul > li > a")):P.click()),m.key==="ArrowLeft"&&(v.classList.contains("folder")&&v.classList.contains("open")?P.click():g(v.parentElement.closest("li.folder")?.querySelector(":scope > a"))),m.key==="Enter"&&P.click()}function b(m,E=""){let P=[...m].sort((k,v)=>+!!v.children-+!!k.children||k.name.localeCompare(v.name));return Se("ul",P.flatMap(k=>{let v=k,S=v.name,_=(E+"/"+S).slice(1);if(p.value&&!p.value.files.has(_)&&!p.value.folders.has(_))return[];for(;v.children?.length===1;)v=v.children[0],S+="/"+v.name;let M=E+"/"+S,L=!!v.children,q=p.value?i[M]!==!1:!!i[M],G=L&&e.page?.options?.truncatedFolders?.includes(M.slice(1)),se=Se("span",{class:L?"tree-icon-folder":"far fa-file tree-icon-file","aria-hidden":"true"},L?Se("svg",{viewBox:"0 0 14 12",focusable:"false"},Se("path",{d:"M1.5 10.5v-9h4l1.5 2h5.5v7z"})):null),ee=Se("span",{class:"tree-name",title:S.replace(/\bXXXX-(\d+)\b/g,"[redacted term $1]")},BF(S)),R=te=>{g(te.currentTarget),L&&(te.preventDefault(),i[M]=!q,i[M]&&!v.children.length&&e.page.getFiles(M.slice(1)),Ge(()=>g(f().find(ve=>ve.dataset.path===s))))},K=Se("a",{"data-path":M,href:L?void 0:`/r/${encodeURIComponent(t.params.repoId)}${encodePathForUrl(M)}`,class:{"tree-focused":s===M},onClick:R},[L?Se("span",{class:"tree-toggle"}):Se("span",{class:"tree-spacer"}),se,ee,G?Se("span",{class:"truncated-warning",title:e.page.fmt.translate("WARNINGS.folder_truncated")},Se("i",{class:"fas fa-exclamation-triangle"})):null]);return Se("li",{key:M,class:{file:!0,folder:L,open:q,active:a()===M,truncated:G},title:L?"":`Size: ${zF(v.size||0)}`},[K,L&&q?b(v.children,M):null])}))}return()=>Se("tree",{ref:o,tabindex:0,onKeydown:y},e.file?.length?p.value?.files.size===0?Se("div",{class:"tree-search-empty"},"No files found"):b(r.value):"Empty repository")}};function bd(){return Ue({errors:{},dirty:!1,touched:!1,submitted:!1,get invalid(){return Object.values(this.errors).some(Boolean)},setValidity(e,t){this.errors[e]=!t},setDirty(){this.dirty=!0}})}function wd(e,t){if(!e[t]){let o=bd();Object.defineProperty(o,"invalid",{get(){return Object.values(o.errors).some(Boolean)||Object.keys(o).some(i=>i!=="invalid"&&o[i]&&typeof o[i]=="object"&&o[i].invalid)}}),e[t]=o}return e[t]}var kd={beforeMount(e,{value:t}){e._formState=wd(t,e.name),e.addEventListener("submit",o=>o.preventDefault())}};function jF(e){return e instanceof Date?isNaN(e)?"":`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`:e||""}function yd(e){let t=e._field.binding.value;e.type==="checkbox"?e.checked=!!t:e.type==="radio"?e.checked=t==(e._value??e.value):e._field.timer||(e.value=e.type==="date"?jF(t):t??""),wi(e)}function wi(e){let t=e._field.validation;if(!t)return;let o=e.validity;for(let[i,s]of Object.entries({required:o.valueMissing,pattern:o.patternMismatch,min:o.rangeUnderflow,max:o.rangeOverflow,date:o.badInput,email:o.typeMismatch&&e.type==="email",url:o.typeMismatch&&e.type==="url"}))t.setValidity(i,e.disabled||!s)}var Cd={beforeMount(e,{value:t}){var a;let o=t.form&&wd(t.state,t.form),i=o&&e.name?o[a=e.name]||(o[a]=bd()):null;e._field={binding:t,validation:i,timer:null};let s=()=>{clearTimeout(e._field.timer),e._field.timer=null;let p=e._field.binding,f=e.type==="checkbox"?e.checked:e._value??e.value;if(!(e.type==="radio"&&!e.checked)){if((e.type==="number"||e.type==="range")&&(f=e.value===""?null:Number(e.value)),e.type==="date"&&(f=e.value?new Date(e.value+"T00:00:00"):null),i){i.setDirty();for(let g of Object.keys(i.errors))i.setValidity(g,!0)}p.set(f),wi(e),p.change?.()}};e._field.commit=s;let r=p=>{let f=e._field.binding.options?.debounce||0,g=typeof f=="number"?f:f[p.type]??f.default??0;clearTimeout(e._field.timer),g?e._field.timer=setTimeout(s,g):s()};e.addEventListener(e.tagName==="SELECT"||["checkbox","radio","date"].includes(e.type)?"change":"input",r),e.addEventListener("blur",()=>{i&&(i.touched=!0),e._field.timer&&s()})},mounted:yd,updated(e,{value:t}){e._field.binding=t,yd(e)},beforeUnmount(e){clearTimeout(e._field.timer);let{binding:t,validation:o}=e._field,i=t.form&&t.state[t.form];i&&i[e.name]===o&&delete i[e.name]}};function Ed(e,t){let o=e.target.closest("form");if(o?._formState&&(o._formState.submitted=!0),o?.querySelectorAll("input, select, textarea").forEach(i=>{i._field?.timer&&i._field.commit(),i._field&&wi(i)}),o&&!o.checkValidity()){let i=o.querySelector("input:invalid, select:invalid, textarea:invalid");i?.scrollIntoView?.({block:"center"}),i?.focus(),o.reportValidity();return}return t()}var Sd=Symbol("session"),GF=/^\/(w|api|github)(\/|$)/;function Nd(e,t={}){let o=e?.split(".").reduce((i,s)=>i?.[s],yo);return o==null&&e?.startsWith("ERRORS.")&&(o=yo.ERRORS.unknown_error),String(o??e??"").replace(/{{\s*([^}]+?)\s*}}/g,(i,s)=>t[s]??"")}var WF={...bi,translate:Nd};function KF(e){if(e==null||e==="")return e;try{let t=new URL(e,window.location.href);return["http:","https:","mailto:","tel:","blob:"].includes(t.protocol)?e:void 0}catch{return}}function YF(e="#app",t={}){let o=!!document.querySelector('meta[name="review-consent-page"][content="1"]'),i=o&&window.location.pathname==="/review-link"?Si(window):null,s=()=>{let m=i;return i=null,m};!t.history&&window.location.pathname==="/"&&/^#!\/r\/[^/?#]+/.test(window.location.hash)&&window.history.replaceState(window.history.state,"",window.location.hash.slice(2));let r=new Map,a=rd(t.fetch),p,f;function g(){let m=pt(),E={url(k){return k===void 0?f.currentRoute.value.fullPath:(f.push(k),E)},replace(k){return f.replace(k)},path(){return f.currentRoute.value.path},search(){return f.currentRoute.value.query}},P=new Proxy({},{get(k,v){let S=f.currentRoute.value.params[v];return Array.isArray(S)?S.join("/"):S}});return{takeReviewHandoff:s,http:a,...m,location:E,params:P,window,promises:ad,html:{trustAsHtml:k=>k},translate:(k,v)=>Promise.resolve(Nd(k,v)),quotaService:ld(a)}}function y(m){return{name:m.template,setup(){let E=mi(ut(Sd),r);m.setup(E,g()),id(m.template,E);let P=[];return()=>fs[m.template](E,P)}}}f=el({history:t.history||Xa(),routes:Tl.map(m=>m.redirect?m:{path:m.path,component:y(m),meta:{title:m.title,preserveExplorer:m.preserveExplorer}})});let b=ya({setup(){p=mi(null,r),p.fmt=WF,p.window=window,p.Math=Math,p.sanitize=k=>DOMPurify.sanitize(k??""),p.highlightRedactions=k=>(p.site_options,rl(k)),p.submitForm=Ed,p.safeUrl=KF;let m=g();ll(p,m.http,m.location,m.timeout),cn(Sd,p),Fe(()=>p.title,k=>{document.title=k||"Anonymous GitHub"});let E=[],P=k=>{let v=k.target.closest?.("a[href]");if(k.defaultPrevented||k.button!==0||k.metaKey||k.ctrlKey||k.shiftKey||k.altKey||!v||v.hasAttribute("download")||v.target&&v.target!=="_self"||v.dataset.toggle||v.getAttribute("href").startsWith("#"))return;let _=new URL(v.href,window.location.href);o||/^\/review-link\/?$/i.test(_.pathname)||_.origin!==window.location.origin||GF.test(_.pathname)||(k.preventDefault(),f.push(_.pathname+_.search+_.hash),$("#navbarSupportedContent.show").collapse("hide"))};return document.addEventListener("click",P),pn(()=>document.removeEventListener("click",P)),()=>[sd(p,[]),o||/^\/(r|repository)\//.test(p.path||"")?null:Se("header",{class:["app-header",{"is-contained":p.path==="/"||p.path==="/faq"}]},fs["partials/header.htm"](p,E)),Se("main",{class:"app-view align-items-stretch w-100"},Se(pi,null,{default:({Component:k,route:v})=>k?Se(k,{key:v.meta.preserveExplorer?v.matched[0]?.path:v.path}):null})),Se("div",{class:"position-fixed p-3",style:{zIndex:999999999,right:0,bottom:0}},p.toasts.map((k,v)=>Se("div",{class:"toast show",role:"alert","aria-live":"assertive","aria-atomic":"true",key:v},[Se("div",{class:"toast-header"},[Se("strong",{class:"mr-auto"},k.title),Se("button",{type:"button",class:"ml-2 mb-1 close","aria-label":"Close",onClick:()=>p.removeToast(k)},"\xD7")]),Se("div",{class:"toast-body"},k.body)])))]}});for(let[m,E]of Object.entries(md))b.component(m,E);return b.component("Tree",gd),b.component("PartialView",{props:["name","state"],setup(m){let E=[];return()=>fs[m.name](m.state,E)}}),b.directive("field",Cd),b.directive("form",kd),b.directive("code-editor",hd),b.directive("paper-scrollspy",vd),b.use(f),f.beforeEach(async m=>{if(m.path==="/review-link"&&!o||o&&m.path!=="/review-link")return window.location.assign(m.fullPath),!1;p?.emit("routeLeave"),/^\/(r|repository|anonymize|pull-request-anonymize|gist-anonymize|pr|gist)(\/|$)/.test(m.path)&&await on("markdown"),/^\/(r|repository)\//.test(m.path)&&await on("org")}),f.afterEach(m=>{if(!p)return;p.title=m.meta.title,p.emit("routeChange",{title:m.meta.title}),p.emit("routeUpdate",{title:m.meta.title});let E=document.querySelector(".app-view");!m.meta.preserveExplorer&&E&&(E.scrollTop=0)}),b.mount(e),{app:b,router:f,state:p}}document.querySelector("#app")&&(window.anonymousApp=YF());})(); +jane.smith@example.org`},null,8,l7),[[i,{state:e.viewState,set:r=>{e.terms=r},value:e.terms,form:"defaultsForm",options:{debounce:250}}]]),n("details",d7,[t[25]||(t[25]=n("summary",null,"Regex & replacement syntax",-1)),n("p",null,[t[21]||(t[21]=y("Matches become ",-1)),n("code",null,p(e.site_options?.ANONYMIZATION_MASK||"XXX")+"-[N]",1),t[22]||(t[22]=y(". Use ",-1)),t[23]||(t[23]=n("code",null,"term=>replacement",-1)),t[24]||(t[24]=y(" for a custom replacement. Regex is supported.",-1))])]),T(n("div",u7,"Terms are in an invalid format.",512),[[J,e.defaultsForm?.terms?.errors?.format]])])]),n("section",c7,[t[35]||(t[35]=n("h2",null,"Reviewer display",-1)),n("div",null,[n("div",p7,[n("label",f7,[T(n("input",h7,null,512),[[i,{state:e.viewState,set:r=>{e.options.link=r},value:e.options?.link,form:"defaultsForm",options:{}}]]),t[27]||(t[27]=y("Keep links",-1))]),n("label",m7,[T(n("input",g7,null,512),[[i,{state:e.viewState,set:r=>{e.options.notebook=r},value:e.options?.notebook,form:"defaultsForm",options:{}}]]),t[28]||(t[28]=y("Render notebooks",-1))]),n("label",v7,[T(n("input",y7,null,512),[[i,{state:e.viewState,set:r=>{e.options.image=r},value:e.options?.image,form:"defaultsForm",options:{}}]]),t[29]||(t[29]=y("Show images",-1))]),n("label",b7,[T(n("input",w7,null,512),[[i,{state:e.viewState,set:r=>{e.options.pdf=r},value:e.options?.pdf,form:"defaultsForm",options:{}}]]),t[30]||(t[30]=y("Show PDFs",-1))]),n("label",k7,[T(n("input",C7,null,512),[[i,{state:e.viewState,set:r=>{e.options.loc=r},value:e.options?.loc,form:"defaultsForm",options:{}}]]),t[31]||(t[31]=y("Show line counts",-1))]),n("label",E7,[T(n("input",S7,null,512),[[i,{state:e.viewState,set:r=>{e.options.page=r},value:e.options?.page,form:"defaultsForm",options:{}}]]),t[32]||(t[32]=y("GitHub Pages",-1))])]),t[33]||(t[33]=n("p",{class:"settings-help"},"Images and PDFs are not anonymized.",-1)),t[34]||(t[34]=n("p",{class:"settings-help"},"GitHub Pages must use the anonymized branch.",-1))])]),n("section",N7,[t[38]||(t[38]=n("h2",null,"Source updates",-1)),n("div",null,[n("label",R7,[T(n("input",D7,null,512),[[i,{state:e.viewState,set:r=>{e.options.update=r},value:e.options?.update,form:"defaultsForm",options:{}}]]),t[36]||(t[36]=y("Auto-update from GitHub",-1))]),t[37]||(t[37]=n("p",{class:"settings-help"},"Latest commit, at most once an hour.",-1))])]),n("section",T7,[t[40]||(t[40]=n("label",{class:"settings-label",for:"expiration"},"On expiration",-1)),n("div",null,[T((l(),d("select",A7,[...t[39]||(t[39]=[n("option",{value:"redirect"},"Redirect visitors to the GitHub repository",-1),n("option",{value:"remove",selected:""},"Remove the anonymized repository",-1)])])),[[i,{state:e.viewState,set:r=>{e.options.expirationMode=r},value:e.options?.expirationMode,form:"defaultsForm",options:{}}]]),n("p",_7,p(e.options.expirationMode==="redirect"?"Redirecting reveals the original repository. Choose the date per anonymization.":"Set the expiration date for each repository."),1)])]),n("footer",O7,[n("div",P7,[e.draftRestored?(l(),d("span",I7,"Your unsaved draft was restored.")):e.unsavedChanges?(l(),d("span",M7,"Unsaved changes"+p(e.draftSaved?" \xB7 Draft saved in this tab":""),1)):(l(),d("span",V7,p(e.message?"Defaults saved":"All changes saved"),1))]),e.draftRestored||e.unsavedChanges?(l(),d("button",{key:0,type:"button",class:"draft-discard",onClick:t[0]||(t[0]=r=>e.discardDraft())},"Discard changes")):f("v-if",!0),n("button",{id:"save",type:"submit",class:"btn btn-ink",disabled:e.saving},p(e.saving?"Saving\u2026":"Save defaults"),9,q7),e.error?(l(),d("div",$7,p(e.error),1)):f("v-if",!0)])],32)),[[o,e.viewState]])],512),[[J,e.settingsTab==="defaults"]]),T(n("section",{id:"settings-billing","aria-busy":e.billingLoading||e.billingBusy},[t[64]||(t[64]=n("p",{class:"settings-scope"},"Your plan and usage. Reviewer access is always free.",-1)),e.billingLoading?(l(),d("p",U7,"Loading billing\u2026")):f("v-if",!0),e.billingError?(l(),d("div",F7,[y(p(e.billingError)+" ",1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[2]||(t[2]=r=>e.loadBilling()),disabled:e.billingBusy},"Try again",8,B7)])):f("v-if",!0),e.billingNotice?(l(),d("p",z7,p(e.billingNotice),1)):f("v-if",!0),e.billingPending?(l(),d("div",H7,[t[42]||(t[42]=n("strong",null,"Confirming your payment",-1)),t[43]||(t[43]=n("p",null,"Your allowance will update after confirmation. Please do not pay again.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[3]||(t[3]=r=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,j7)])):f("v-if",!0),n("section",G7,[t[57]||(t[57]=n("h2",null,"Current plan",-1)),n("div",null,[n("div",W7,[n("div",null,[n("strong",null,p(e.profileAuthorGrant()?"Author subscription":e.billing?.enabled?"Free":"Account allowance"),1),e.profileAuthorGrant()?(l(),d("p",K7,p(e.profileAuthorGrant().cancelAtPeriodEnd?"Renewal cancelled \xB7 Access until ":"Paid access through ")+p(e.billingDate(e.profileAuthorGrant().until)),1)):f("v-if",!0)]),e.billing?.enabled&&!e.profileAuthorGrant()&&!e.billingPending&&!e.showAuthorPlans&&e.profileAuthorPlans().length?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[4]||(t[4]=r=>e.openProfileUpgrade())},"View Author plan")):f("v-if",!0)]),e.billing?.allowance?(l(),d("p",Y7,p(e.billing.allowance.repositories)+" repositories \xB7 "+p(e.billingBytes(e.billing.allowance.storage)),1)):f("v-if",!0),n("div",X7,[e.quota?(l(),sn(s,{key:0,quota:e.quota,fmt:e.fmt},null,8,["quota","fmt"])):(l(),d("p",J7,"Loading usage\u2026"))]),t[56]||(t[56]=n("p",{class:"settings-help"},"Coauthored repositories use their owner's allowance. Conference hosting is separate.",-1)),e.quota?.repository&&!e.quota.repository.unlimited&&e.quota.repository.used>=e.quota.repository.total?(l(),d("p",Q7,[...t[44]||(t[44]=[y("Your repository allowance is full. ",-1),n("a",{href:"/dashboard"},"Review your repositories",-1),y(" to remove work you no longer need.",-1)])])):f("v-if",!0),e.profilePastSubscription()?(l(),d("p",Z7,[...t[45]||(t[45]=[y("Your previous subscription is no longer active. Never-expiring repositories receive a 90-day grace period after paid access ends. ",-1),n("a",{href:"/dashboard"},"Review repository expiration dates",-1),y(".",-1)])])):f("v-if",!0),e.profileAuthorGrant()?.status==="past_due"?(l(),d("p",x7,"A subscription payment is overdue. Use Manage billing to update your payment details.")):f("v-if",!0),e.profileAuthorGrant()?.cancelAtPeriodEnd?(l(),d("p",eB,"When paid access ends, never-expiring repositories enter a 90-day grace period. Dated repositories keep their expiration dates.")):f("v-if",!0),e.showAuthorPlans&&!e.profileAuthorGrant()&&!e.billingPending&&e.profileAuthorPlans().length?(l(),d("div",tB,[t[54]||(t[54]=n("h3",{id:"settings-plan-comparison",tabindex:"-1"},"Compare plans",-1)),n("table",nB,[t[51]||(t[51]=n("caption",{class:"sr-only"},"Free and Author hosting",-1)),t[52]||(t[52]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Included"),n("th",{scope:"col"},"Free"),n("th",{scope:"col"},"Author")])],-1)),n("tbody",null,[n("tr",null,[t[46]||(t[46]=n("th",{scope:"row"},"Active repositories",-1)),n("td",null,p(e.billing.allowance?.repositories),1),n("td",null,p(e.profileSelectedPlan()?.repositories),1)]),n("tr",null,[t[47]||(t[47]=n("th",{scope:"row"},"Source storage",-1)),n("td",null,p(e.billingBytes(e.billing.allowance?.storage)),1),n("td",null,p(e.billingBytes(e.profileSelectedPlan()?.storage)),1)]),t[48]||(t[48]=n("tr",null,[n("th",{scope:"row"},"Expiration"),n("td",null,"Scheduled"),n("td",null,"Scheduled or never")],-1)),t[49]||(t[49]=n("tr",null,[n("th",{scope:"row"},"Coauthors"),n("td",null,"Included"),n("td",null,"Included")],-1)),t[50]||(t[50]=n("tr",null,[n("th",{scope:"row"},"Reviewer access"),n("td",null,"Free"),n("td",null,"Free")],-1))])]),n("fieldset",sB,[t[53]||(t[53]=n("legend",{class:"sr-only"},"Billing frequency",-1)),(l(!0),d(W,null,ae(e.profileAuthorPlans(),r=>(l(),d("label",{class:_({selected:e.profileSelectedPlan()?.id===r.id})},[n("input",{type:"radio",name:"profile-plan",checked:e.profileSelectedPlan()?.id===r.id,onChange:a=>e.profilePlan=r.id},null,40,oB),y(p(e.billingPrice(r)),1)],2))),256))]),n("p",iB,"Renews "+p(e.profileSelectedPlan()?.interval==="year"?"annually":"monthly")+" until cancelled. Tax shown at checkout.",1),t[55]||(t[55]=n("p",{class:"settings-help"},"If paid access ends, never-expiring repositories expire after a 90-day grace period.",-1)),n("div",rB,[n("button",{type:"button",class:"btn btn-ink",disabled:e.billingBusy||e.billing.checkoutEnabled===!1,onClick:t[5]||(t[5]=r=>e.checkout(e.profileSelectedPlan().id))},p(e.billingBusy?"Please wait\u2026":"Continue to checkout"),9,aB),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[6]||(t[6]=r=>e.showAuthorPlans=!1)},"Keep current plan")])])):f("v-if",!0),e.billing&&(!e.billing.enabled||e.billing.checkoutEnabled===!1)?(l(),d("p",lB,"New purchases are not available. Existing billing can still be managed below.")):f("v-if",!0)])]),n("section",dB,[t[59]||(t[59]=n("h2",null,"Billing",-1)),n("div",null,[e.billing?.portal?(l(),d("div",uB,[t[58]||(t[58]=n("p",{class:"settings-help"},"Invoices, payment details, and renewal.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[7]||(t[7]=r=>e.billingPortal()),disabled:e.billingBusy},"Manage billing",8,cB)])):(l(),d("p",pB,"No billing account available.")),e.billing?.enabled&&!e.billingPending?(l(),d("button",{key:2,type:"button",class:"settings-text-button",onClick:t[8]||(t[8]=r=>e.refreshBilling()),disabled:e.billingBusy},"Refresh payment status",8,fB)):f("v-if",!0)])]),e.billing?.enabled?(l(),d("section",hB,[t[62]||(t[62]=n("h2",null,"Repository passes",-1)),n("div",null,[n("div",mB,[t[60]||(t[60]=n("p",{class:"settings-help"},[y("One repository for 180 days."),n("br"),y("No subscription or automatic renewal.")],-1)),e.profilePassPlan()?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[9]||(t[9]=r=>e.showRepositoryPass=!e.showRepositoryPass),disabled:e.billingPending},"Review a pass",8,gB)):f("v-if",!0)]),e.showRepositoryPass&&e.profilePassPlan()&&!e.billingPending?(l(),d("div",vB,[t[61]||(t[61]=n("label",{for:"billing-repository"},"Repository ID you own",-1)),T(n("input",{id:"billing-repository",class:"form-control","onUpdate:modelValue":t[10]||(t[10]=r=>e.billingRepository=r),placeholder:"Existing anonymized repository ID",autocomplete:"off"},null,512),[[dt,e.billingRepository]]),n("p",yB,p(e.billingPrice(e.profilePassPlan()))+" \xB7 "+p(e.billingBytes(e.profilePassPlan().storage))+" \xB7 Never expire is not included.",1),n("button",{type:"button",class:"btn btn-ink",disabled:e.billingBusy||!e.billingRepository.trim()||e.billing.checkoutEnabled===!1,onClick:t[11]||(t[11]=r=>e.checkout("author_pass",e.billingRepository.trim()))},"Continue to checkout",8,bB)])):f("v-if",!0)])])):f("v-if",!0),e.billing?.grants?.length?(l(),d("section",wB,[t[63]||(t[63]=n("h2",null,"Your purchases",-1)),n("div",null,[(l(!0),d(W,null,ae(e.billing.grants,r=>(l(),d("div",{class:"settings-purchase",key:r.scope+r.planId+r.until},[n("strong",null,p(e.profileGrantName(r)),1),n("span",null,p(r.scope),1),n("p",kB,[y(p(r.status),1),r.status!=="revoked"?(l(),d(W,{key:0},[y(" \xB7 Paid access through "+p(e.billingDate(r.until))+p(r.cancelAtPeriodEnd?" \xB7 Renewal cancelled":""),1)],64)):f("v-if",!0)])]))),128))])])):f("v-if",!0),t[65]||(t[65]=n("section",{class:"settings-row"},[n("h2",null,"Conference hosting"),n("div",{class:"settings-inline"},[n("p",{class:"settings-help"},"Shared hosting is managed per conference."),n("a",{href:"/conferences",class:"btn btn-outline-ink"},"My conferences")])],-1))],8,L7),[[J,e.settingsTab==="billing"]]),T(n("section",CB,[t[75]||(t[75]=n("p",{class:"settings-scope"},"Your identity, repository access, and account.",-1)),n("div",EB,[e.user?.photo?(l(),d("img",{key:0,width:"40",height:"40",class:"rounded-circle",alt:"",src:e.safeUrl(e.user?.photo)},null,8,SB)):f("v-if",!0),n("div",NB,[n("div",RB,"@"+p(e.user?.username),1),t[66]||(t[66]=n("div",{class:"paper-account-meta"},"Signed in with GitHub. Anonymous GitHub only reads your repositories.",-1))]),t[67]||(t[67]=n("a",{class:"btn btn-outline-ink",href:"/api/user/logout",target:"_self"},"Sign out",-1))]),n("form",{class:"paper-account-email",onSubmit:t[15]||(t[15]=ce(r=>e.saveAccountEmail(),["prevent"]))},[t[68]||(t[68]=n("label",{class:"paper-field-label",for:"account-email"},"Email address",-1)),t[69]||(t[69]=n("p",{id:"account-email-help",class:"paper-section-copy"},"Used for account alerts. Your address is never shown on anonymous pages.",-1)),T(n("input",{id:"account-email",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[12]||(t[12]=r=>e.accountEmail=r),"aria-describedby":"account-email-help",disabled:e.emailLoading||e.emailSaving||!e.emailCSRFReady,onInput:t[13]||(t[13]=r=>e.emailSaved=!1)},null,40,DB),[[dt,e.accountEmail]]),e.emailLoading?(l(),d("p",TB,"Loading your email address\u2026")):f("v-if",!0),e.emailError?(l(),d("p",AB,p(e.emailError),1)):f("v-if",!0),!e.emailCSRFReady&&!e.emailLoading?(l(),d("button",{key:2,class:"btn btn-outline-ink mt-2",type:"button",onClick:t[14]||(t[14]=r=>e.loadAccountEmail())},"Try again")):f("v-if",!0),n("button",{class:"btn btn-ink mt-2",type:"submit",disabled:e.emailLoading||e.emailSaving||!e.emailCSRFReady},p(e.emailSaving?"Saving\u2026":"Save email address"),9,_B),e.emailSaved?(l(),d("p",OB,"Email address saved.")):f("v-if",!0)],32),t[76]||(t[76]=n("a",{class:"paper-settings-connection-link",href:"/connections"},[n("i",{class:"fab fa-github","aria-hidden":"true"}),n("span",null,[y("GitHub connections"),n("small",null,"Manage repository access and legacy OAuth.")]),n("span",{"aria-hidden":"true"},"\u2192")],-1)),n("div",PB,[t[73]||(t[73]=n("div",{class:"paper-danger-head"},"Delete account",-1)),t[74]||(t[74]=n("p",{class:"paper-danger-copy"}," Removes all your anonymized repositories, gists, and pull requests, revokes the application's access to your GitHub account, and erases your personal data (username, email, access tokens). This cannot be undone. ",-1)),e.deleteError?(l(),d("div",IB,[t[70]||(t[70]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1)),t[71]||(t[71]=y()),n("span",{textContent:p(e.deleteError)},null,8,MB)])):f("v-if",!0),n("button",{type:"button",class:"btn btn-outline-danger",onClick:t[16]||(t[16]=r=>e.confirmDeleteAccount=!0),disabled:e.deletingAccount},[t[72]||(t[72]=n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)),y(p(e.deletingAccount?"Deleting\u2026":"Delete my account"),1)],8,VB),e.confirmDeleteAccount?(l(),d("div",qB,[n("label",$B,"Type "+p(e.user?.username)+" to confirm",1),T(n("input",{id:"delete-username",class:"form-control","onUpdate:modelValue":t[17]||(t[17]=r=>e.deleteUsername=r),autocomplete:"off"},null,512),[[dt,e.deleteUsername]]),n("div",LB,[n("button",{type:"button",class:"btn btn-outline-danger",onClick:t[18]||(t[18]=r=>e.deleteAccount()),disabled:e.deletingAccount||e.deleteUsername!==e.user?.username},p(e.deletingAccount?"Deleting\u2026":"Delete permanently"),9,UB),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[19]||(t[19]=r=>{e.confirmDeleteAccount=!1,e.deleteUsername=""}),disabled:e.deletingAccount},"Cancel",8,FB)])])):f("v-if",!0)])],512),[[J,e.settingsTab==="account"]])])}var BB={class:"pr-page"},zB={class:"container paper-page pr-page-inner"},HB={class:"pr-header"},jB={class:"pr-title-row"},GB={class:"paper-page-title pr-title"},WB=["textContent"],KB={key:1,class:"text-muted"},YB=["href"],XB={class:"pr-header-meta"},JB={key:0,class:"pr-meta-item"},QB=["textContent"],ZB={key:1,class:"pr-meta-item"},xB=["textContent"],ez={key:2,class:"pr-meta-item"},tz=["textContent"],nz={key:0,class:"pr-body-card"},sz={key:1,class:"paper-tabs",role:"tablist"},oz=["aria-selected","tabindex"],iz=["aria-selected","tabindex"],rz=["textContent"],az={class:"paper-tab-content"},lz={key:0,role:"tabpanel",id:"pr-diff-panel","aria-labelledby":"pr-diff-tab"},dz=["innerHTML"],uz={key:1,role:"tabpanel",id:"pr-comments-panel","aria-labelledby":"pr-comments-tab"},cz={class:"pr-comments"},pz={class:"pr-comment"},fz={class:"pr-comment-head"},hz={key:0,class:"pr-comment-author"},mz=["textContent"],gz=["textContent"],vz={key:0,class:"pr-comment-body"},yz={key:0,class:"paper-table-empty"};function Vc(e,t){let s=at("markdown");return l(),d("div",BB,[n("div",zB,[t[17]||(t[17]=n("div",{class:"paper-crumbs"},[n("a",{href:"/dashboard"},"Reviewer"),y(" \xA0/\xA0 "),n("span",{class:"here"},"Pull request")],-1)),n("header",HB,[n("div",jB,[n("h1",GB,[e.details?.title?(l(),d("span",{key:0,textContent:p(e.details?.title)},null,8,WB)):f("v-if",!0),e.details?.title?f("v-if",!0):(l(),d("span",KB,"Untitled pull request"))]),e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/pull-request-anonymize/"+e.pullRequestId)},[...t[4]||(t[4]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),n("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,YB)):f("v-if",!0)]),n("div",XB,[n("span",{class:_(["paper-pill",{good:e.details?.merged,warn:e.details?.state=="open",bad:e.details?.state=="closed"&&!e.details?.merged}])},[n("span",{class:_(["status-dot",{"status-ready":e.details?.merged,"status-error":e.details?.state=="closed"&&!e.details?.merged}])},null,2),y(" "+p(e.details?.merged?"Merged":e.fmt.title(e.details?.state)),1)],2),e.details?.baseRepositoryFullName?(l(),d("span",JB,[t[5]||(t[5]=n("i",{class:"fab fa-github"},null,-1)),t[6]||(t[6]=y()),n("span",{textContent:p(e.details?.baseRepositoryFullName)},null,8,QB)])):f("v-if",!0),e.details?.updatedDate?(l(),d("span",ZB,[t[7]||(t[7]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[8]||(t[8]=y()),n("span",{textContent:p(e.fmt?.date(e.details?.updatedDate))},null,8,xB)])):f("v-if",!0),e.details?.anonymizeDate?(l(),d("span",ez,[t[9]||(t[9]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),t[10]||(t[10]=y(" Anonymized ",-1)),n("span",{textContent:p(e.fmt?.date(e.details?.anonymizeDate))},null,8,tz)])):f("v-if",!0)])]),e.details?.body?(l(),d("section",nz,[t[11]||(t[11]=n("div",{class:"paper-section-eyebrow"},"Description",-1)),Ue(s,{content:e.details?.body},null,8,["content"])])):f("v-if",!0),e.details?.diff||e.details?.comments?(l(),d("nav",sz,[e.details?.diff?(l(),d("button",{key:0,class:_(["paper-tab",{active:e.tabState?.active=="diff"}]),type:"button",role:"tab",id:"pr-diff-tab","aria-selected":e.tabState?.active==="diff","aria-controls":"pr-diff-panel",tabindex:e.tabState?.active==="diff"?0:-1,onKeydown:t[0]||(t[0]=i=>e.previewTabKeydown(i)),onClick:t[1]||(t[1]=i=>e.tabState.active="diff")},[...t[12]||(t[12]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),y(" Diff ",-1)])],42,oz)):f("v-if",!0),e.details?.comments?(l(),d("button",{key:1,class:_(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",id:"pr-comments-tab","aria-selected":e.tabState?.active==="comments","aria-controls":"pr-comments-panel",tabindex:e.tabState?.active==="comments"?0:-1,onKeydown:t[2]||(t[2]=i=>e.previewTabKeydown(i)),onClick:t[3]||(t[3]=i=>e.tabState.active="comments")},[t[13]||(t[13]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1)),n("span",{textContent:p(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,rz)],42,iz)):f("v-if",!0)])):f("v-if",!0),n("div",az,[e.details?.diff&&e.tabState?.active=="diff"?(l(),d("div",lz,[n("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.details?.diff))},null,8,dz)])):f("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(l(),d("div",uz,[n("ul",cz,[(l(!0),d(W,null,ae(e.details?.comments,(i,o)=>(l(),d("li",pz,[n("div",fz,[i?.author?(l(),d("span",hz,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[15]||(t[15]=y(" @",-1)),n("span",{textContent:p(i?.author)},null,8,mz)])):f("v-if",!0),i?.updatedDate?(l(),d("span",{key:1,class:"pr-comment-date",textContent:p(e.fmt?.date(i?.updatedDate))},null,8,gz)):f("v-if",!0)]),i?.body?(l(),d("div",vz,[Ue(s,{content:i?.body},null,8,["content"])])):f("v-if",!0)]))),256)),e.details?.comments?.length?f("v-if",!0):(l(),d("li",yz,[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1),n("span",null,"No comments on this pull request.",-1)])]))])])):f("v-if",!0)])])])}var bz={class:"repository-task status-page"},wz={class:"task-lede"},kz={class:"task-columns"},Cz={class:"task-preparation","aria-label":"Repository preparation"},Ez={key:0,class:"task-ready",role:"status"},Sz={key:1},Nz={key:2,class:"text-danger",role:"alert"},Rz={key:3,class:"paper-section-copy"},Dz={key:4,class:"paper-ratelimit-card",role:"status"},Tz={class:"paper-error-msg"},Az=["aria-valuenow"],_z={class:"paper-progress-label"},Oz=["textContent"],Pz={key:0},Iz=["textContent"],Mz={class:"paper-progress-pct"},Vz={key:6,class:"paper-error-card",role:"alert"},qz={key:0,class:"paper-error-msg"},$z={key:1,class:"paper-error-msg"},Lz={key:2},Uz=["href"],Fz={class:"paper-error-actions"},Bz=["href"],zz={key:7,class:"share-link"},Hz={class:"share-link-row"},jz=["value"],Gz={class:"ui-icon","aria-hidden":"true"},Wz=["href"],Kz=["textContent"],Yz={class:"share-link-actions"},Xz=["href"],Jz=["href"],Qz={class:"task-summary","aria-label":"Repository summary"},Zz={class:"task-summary-foot"};function qc(e,t){return l(),d("div",bz,[t[23]||(t[23]=n("div",{class:"paper-crumbs"},[n("a",{href:"/dashboard"},"My work"),y(" / Repository")],-1)),t[24]||(t[24]=n("h1",null,"Prepare your anonymous review link",-1)),n("p",wz,p(e.repo?.status==="ready"?"Your repository is ready to share.":"Your settings are saved. Track preparation before sharing the link."),1),t[25]||(t[25]=n("ol",{class:"task-trail","aria-label":"Repository progress"},[n("li",null,"1. Repository"),n("li",null,"2. Review and hosting"),n("li",{"aria-current":"step"},"3. Review link")],-1)),n("div",kz,[n("section",Cz,[e.repo?.status==="ready"?(l(),d("div",Ez,[...t[3]||(t[3]=[n("strong",null,"Your review link is ready",-1)])])):f("v-if",!0),n("h2",null,p(e.repoId),1),e.repo?.status==="ready"?(l(),d("p",Sz,"Share the link with reviewers. They do not need to sign in.")):f("v-if",!0),e.error?(l(),d("p",Nz,[t[4]||(t[4]=y("Unable to load repository status. ",-1)),n("button",{type:"button",class:"task-text-button",onClick:t[0]||(t[0]=s=>e.getStatus())},"Try again")])):f("v-if",!0),e.repo?.status!=="ready"?(l(),d("p",Rz,[...t[5]||(t[5]=[y(" The repository will take a few minutes to get ready, depending on its size. Visit the ",-1),n("a",{href:"/faq"},"FAQ",-1),y(" for more information. ",-1)])])):f("v-if",!0),e.rateLimitResetAt?(l(),d("div",Dz,[t[8]||(t[8]=Ce('
Temporarily paused
GitHub API rate limit reached
',1)),n("p",Tz,[t[6]||(t[6]=y("Anonymization will resume automatically in ",-1)),n("strong",null,p(e.rateLimitCountdown),1),t[7]||(t[7]=y(". No action needed \u2014 the job is queued and will continue where it left off.",-1))])])):f("v-if",!0),e.repo?.status!=="ready"&&e.repo?.status!="error"&&!e.rateLimitResetAt?(l(),d("div",{key:5,class:_(["paper-progress",{"paper-progress-ready":e.repo?.status=="ready"}]),role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":e.progress},[n("div",{class:"paper-progress-bar",style:$e("width: "+e.progress+"%;")},null,4),n("div",_z,[n("span",{textContent:p(e.fmt?.title(e.repo?.status))},null,8,Oz),e.repo?.statusMessage?(l(),d("span",Pz,[t[9]||(t[9]=y("\xA0\xB7\xA0",-1)),n("span",{textContent:p(e.repo?.statusMessage)},null,8,Iz)])):f("v-if",!0),n("span",Mz,p(e.progress||0)+"%",1)])],10,Az)):f("v-if",!0),e.repo?.status=="error"&&!e.rateLimitResetAt?(l(),d("div",Vz,[t[13]||(t[13]=Ce('
Anonymization failed
Something went wrong while preparing this repository.
',1)),e.repo?.statusMessage?(l(),d("p",qz,p(e.fmt?.translate("ERRORS."+e.repo?.statusMessage)),1)):f("v-if",!0),e.repo?.statusMessage?f("v-if",!0):(l(),d("p",$z,"No additional details were reported. The most common causes are private repositories, missing branches, and rate limits.")),e.repo?.statusMessage==="quota_exceeded"?(l(),d("p",Lz,[n("a",{href:e.safeUrl("/anonymize/"+e.repoId)},"Review this repository\u2019s hosting",8,Uz),t[10]||(t[10]=y(", then retry preparation.",-1))])):f("v-if",!0),t[14]||(t[14]=n("ul",{class:"paper-error-hints"},[n("li",null,"Make sure the source URL points to a repository or pull request you can access."),n("li",null,"Check that the chosen branch and commit still exist on GitHub."),n("li",null,"If you just signed in, the access token may need a moment to propagate \u2014 try again.")],-1)),n("div",Fz,[n("a",{class:"btn btn-ink",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[11]||(t[11]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),y(" Edit anonymization",-1)])],8,Bz),t[12]||(t[12]=Ce(' Read the FAQ Report a bug in Anonymous GitHub',2))])])):f("v-if",!0),e.repo?.status=="ready"?(l(),d("div",zz,[t[17]||(t[17]=n("p",{class:"paper-section-copy"},"Reviewers can browse the repository at this address without seeing who you are.",-1)),n("div",Hz,[n("input",{id:"share-url",class:"form-control share-link-input",readonly:"","aria-label":"Anonymous link",value:e.shareUrl,onFocus:t[1]||(t[1]=s=>s.target.select())},null,40,jz),n("button",{type:"button",class:"btn btn-ink",onClick:t[2]||(t[2]=s=>e.copyShareUrl())},[(l(),d("svg",Gz,[n("use",{href:e.copied?"#ui-icon-check":"#project-icon-copy"},null,8,Wz)])),n("span",{"aria-live":"polite",textContent:p(e.copied?"Copied":"Copy link")},null,8,Kz)])]),n("div",Yz,[n("a",{class:"btn",target:"_self",href:e.safeUrl("/r/"+e.repoId+"/")},[...t[15]||(t[15]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),y(" Open repository ",-1)])],8,Xz),e.repo?.options?.page?(l(),d("a",{key:0,class:"btn",target:"_self",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),y(" Open GitHub page ",-1)])],8,Jz)):f("v-if",!0)])])):f("v-if",!0)]),n("aside",Qz,[n("h3",null,p(e.repoId),1),n("dl",null,[t[18]||(t[18]=n("dt",null,"Source",-1)),n("dd",null,p(e.repo?.source?.fullName?"https://github.com/"+e.repo.source.fullName:"Loading\u2026"),1),t[19]||(t[19]=n("dt",null,"Lifetime",-1)),n("dd",null,p(e.repo?.options?.expirationMode==="never"?"Never expire while subscribed":e.repo?.options?.expirationDate?"Until "+e.fmt.date(e.repo.options.expirationDate):"Loading\u2026"),1),t[20]||(t[20]=n("dt",null,"Review access",-1)),t[21]||(t[21]=n("dd",null,"Anonymous and free",-1))]),n("div",Zz,[n("strong",null,p(e.repo?.status==="ready"?"Ready to share":"Repository preparation"),1),t[22]||(t[22]=n("p",null,"Coauthors do not each need a subscription.",-1))])])])])}var qi={"partials/reviewConsent.htm":lc,"partials/connections.htm":dc,"partials/signin.htm":uc,"partials/404.htm":cc,"partials/admin/conferences.htm":pc,"partials/admin/errors.htm":fc,"partials/admin/overview.htm":hc,"partials/admin/queues.htm":mc,"partials/admin/repositories.htm":gc,"partials/admin/user.htm":vc,"partials/admin/users.htm":yc,"partials/anonymize.htm":bc,"partials/anonymizePullRequest.htm":wc,"partials/claim.htm":kc,"partials/conference.htm":Cc,"partials/conferences.htm":Ec,"partials/dashboard.htm":Sc,"partials/explorer.htm":Nc,"partials/faq.htm":Rc,"partials/gist.htm":Dc,"partials/header.htm":Tc,"partials/home.htm":Ac,"partials/loading.htm":_c,"partials/newConference.htm":Oc,"partials/pageView.htm":Pc,"partials/pr-dashboard.htm":Ic,"partials/profile.htm":Mc,"partials/pullRequest.htm":Vc,"partials/status.htm":qc};var xz={class:"ui-icon-definitions","aria-hidden":"true",focusable:"false"};function $c(e,t){return l(),d("svg",xz,[...t[0]||(t[0]=[Ce('',1)])])}function Lc(e,t){e==="partials/explorer.htm"&&(t.sidebarCollapsed=window.matchMedia?.("(max-width: 767px)").matches||!1,t.sidebarHidden=!1,t.dirExpanded=!1,t.moreOpen=!1,t.tocOpen=!1,t.gotoOpen=!1,t.gotoValue="",t.gotoError="",t.mdFindOpen=!1,t.mdFindQuery="",t.mdFindTotal=0,t.mdFindIndex=0,t.mdFindCase=!1,t.accountOpen=!1,t.helpOpen=!1,t.sidebarWidth=Math.min(520,Math.max(220,Number(localStorage.getItem("sidebarWidth"))||280)),document.documentElement.style.setProperty("--sidebar-w",t.sidebarWidth+"px"),t.startSidebarResize=o=>{o.preventDefault();let r=o.clientX,a=t.sidebarWidth,u=m=>{t.sidebarWidth=Math.min(520,Math.max(220,a+m.clientX-r)),document.documentElement.style.setProperty("--sidebar-w",t.sidebarWidth+"px")},c=()=>{window.removeEventListener("pointermove",u),window.removeEventListener("pointerup",c),document.body.classList.remove("is-resizing"),localStorage.setItem("sidebarWidth",String(t.sidebarWidth))};document.body.classList.add("is-resizing"),window.addEventListener("pointermove",u),window.addEventListener("pointerup",c)}),e==="partials/anonymize.htm"&&(t.prTabState={active:t.options.diff?"diff":"comments"},t.watchGroup(["options.diff","options.comments"],()=>{t.options[t.prTabState.active]||(t.prTabState.active=t.options.diff?"diff":t.options.comments?"comments":null)})),e==="partials/gist.htm"&&(t.tabState={active:t.details?.files?"files":"comments"}),["partials/conferences.htm","partials/conference.htm"].includes(e)&&(t.statusLabels={ready:"Ready",expired:"Expired",removed:"Removed"});let i={"partials/dashboard.htm":["filteredItems",()=>t.items,"itemFilter"],"partials/conferences.htm":["filteredConferences",()=>t.conferences,"conferenceFilter"],"partials/conference.htm":["filteredRepositories",()=>t.conference?.repositories,"repoFiler"],"partials/admin/repositories.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/user.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/users.htm":["filteredUsers",()=>t.users,"userFiler"],"partials/admin/conferences.htm":["filteredConferences",()=>t.conferences]}[e];if(i){let o=yt(()=>t.fmt.orderBy(t.fmt.filter(i[1](),t[i[2]]),t.orderBy));Object.defineProperty(t,i[0],{configurable:!0,get:()=>o.value})}}function Uc(e=(...t)=>fetch(...t)){async function t(i,o,r,a={}){let u=new URL(o,window.location.href);for(let[g,v]of Object.entries(a.params||{}))if(v!=null)for(let h of Array.isArray(v)?v:[v])u.searchParams.append(g,typeof h=="object"?JSON.stringify(h):h);let c=new AbortController,m;a.timeout?.then?a.timeout.then(()=>c.abort()):a.timeout&&(m=setTimeout(()=>c.abort(),a.timeout));try{let g={Accept:"application/json, text/plain, */*",...a.headers},v=document.cookie.match(/(?:^|;\s*)XSRF-TOKEN=([^;]*)/);v&&u.origin===window.location.origin&&(g["X-XSRF-TOKEN"]=decodeURIComponent(v[1]));let h;r!==void 0&&(r instanceof FormData?h=r:(g["Content-Type"]||(g["Content-Type"]="application/json;charset=utf-8"),h=JSON.stringify(r)));let k=await e(u.href,{method:i,headers:g,body:h,credentials:"same-origin",signal:c.signal}),A;if(a.onDownloadProgress&&k.ok&&k.body?.getReader&&typeof TextDecoder<"u"){let E=k.body.getReader(),N=new TextDecoder,O=[],q=0;try{for(;;){let{value:I,done:j}=await E.read();if(j)break;O.push(N.decode(I,{stream:!0})),q+=I.byteLength,a.onDownloadProgress(q)}O.push(N.decode()),A=O.join("")}finally{E.releaseLock()}}else A=await k.text();let w=A;if(a.transformResponse)w=a.transformResponse(A);else if(A&&(/json/i.test(k.headers.get("content-type")||"")||/^[\[{]/.test(A.trim())))try{w=JSON.parse(A)}catch{}let b={data:w,status:k.status,headers:E=>k.headers.get(E)};if(!k.ok)throw b;return b}catch(g){throw g.name==="AbortError"?{status:-1,data:null}:g}finally{clearTimeout(m)}}let s={};for(let i of["get","delete","head"])s[i]=(o,r)=>t(i.toUpperCase(),o,void 0,r);for(let i of["post","put","patch"])s[i]=(o,r,a)=>t(i.toUpperCase(),o,r,a);return s}var Fc={resolve:e=>Promise.resolve(e),reject:e=>Promise.reject(e),all:e=>Promise.all(e),defer(){let e,t;return{promise:new Promise((i,o)=>{e=i,t=o}),resolve:e,reject:t}}};var Bc=function(e){function t(s){return s=s||{used:0,total:0},s.unlimited=!s.total,s.percent=s.unlimited?0:Math.min(100,s.used*100/s.total),s.level=s.unlimited?"unlimited":s.percent>=95?"danger":s.percent>=80?"warn":"ok",s}return{decorate:t,load:function(){return e.get("/api/user/quota").then(s=>{let i=s.data||{};return i.storage=t(i.storage),i.file=t(i.file),i.repository=t(i.repository),i})}}};var ha={};rp(ha,{bigNum:()=>tH,date:()=>pH,diff:()=>rH,filter:()=>uH,humanFileSize:()=>eH,humanTime:()=>nH,limitTo:()=>dH,number:()=>aH,orderBy:()=>cH,plural:()=>fH,statusLabel:()=>oH,statusMsg:()=>iH,title:()=>sH,uppercase:()=>lH});var eH=e=>window.humanFileSize(e),tH=(function(){return function(t){let s=Number(t)||0,i=Math.abs(s);return i<1e3?String(s):i<1e4?(s/1e3).toFixed(1).replace(/\.0$/,"")+"k":i<1e6?Math.round(s/1e3)+"k":i<1e7?(s/1e6).toFixed(1).replace(/\.0$/,"")+"M":Math.round(s/1e6)+"M"}})(),nH=(function(){return function(t){if(!t)return"never";var s=null;t instanceof Date&&(s=t,t=Math.round((Date.now()-t)/1e3)),(typeof t=="string"||typeof t=="number")&&(s=new Date(t),t=Math.round((Date.now()-s)/1e3));var i=t<0?"from now":"ago";if(Math.abs(t)>7200*24)return(s&&!isNaN(s)?s:new Date(Date.now()-t*1e3)).toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"});t=Math.abs(t);for(var o=[t/60/60/24/365,t/60/60/24/30,t/60/60/24/7,t/60/60/24,t/60/60,t/60,t],r=["year","month","week","day","hour","minute","second"],a=0;a1&&(c+="s"),u>=1)return u+" "+c+" "+i}return"0 seconds "+i}})(),sH=(function(){return function(e){if(!e)return e;e=e.toLowerCase();var t=e.split(" "),s=t.map(function(i){return i.charAt(0).toUpperCase()+i.substring(1,i.length)});return s.join(" ")}})(),oH=(function(){var e={ready:"Ready",error:"Error",expired:"Expired",expiring:"Expiring",removed:"Removed",removing:"Removing",queue:"Queued",download:"Downloading",downloaded:"Downloaded",preparing:"Preparing",anonymizing:"Anonymizing"};return function(t){if(!t)return"";if(e[t])return e[t];var s=String(t).replace(/[_-]+/g," ").toLowerCase();return s.charAt(0).toUpperCase()+s.slice(1)}})(),iH=(function(){var e={branch_not_found:"Branch not found on GitHub",repo_not_found:"Repository not found on GitHub",repository_not_found:"Repository not found on GitHub",repo_not_accessible:"Repository is not accessible with your token",pr_not_found:"Pull request not found on GitHub",gist_not_found:"Gist not found on GitHub",commit_not_found:"Commit not found on GitHub",repo_too_big:"Repository exceeds the size limit",quota_exceeded:"Storage quota exceeded",incomplete_record:"Incomplete record: missing identifier"};return function(t){if(!t)return t;var s=t.match(/^rate_limited:(\d+)$/);if(s){var i=Math.max(0,Math.ceil((parseInt(s[1],10)-Date.now())/1e3));if(i<=0)return"Rate limited \u2014 resuming soon";var o=Math.floor(i/60),r=i%60;return"Rate limited \u2014 retrying in "+(o>0?o+"m "+r+"s":r+"s")}if(e[t])return e[t];if(/^[a-z0-9]+(_[a-z0-9]+)+$/.test(t)){var a=t.replace(/_/g," ");return a.charAt(0).toUpperCase()+a.slice(1)}return t}})(),rH=(function(e){let t=i=>i.replace(/&/g,"&").replace(//g,">");function s(i,o){if(!o)return;let r=o.newPath&&o.newPath!=="/dev/null"?o.newPath:o.oldPath||"",a=o.oldPath==="/dev/null"?"added":o.newPath==="/dev/null"?"deleted":o.oldPath&&o.newPath&&o.oldPath!==o.newPath?"renamed":"modified";if(i.push('
'),i.push('
'+t(r)+''+a+"
"),o.lines.length){i.push('');for(let u of o.lines)i.push('");i.push("
'+(u.oldNo||"")+''+(u.newNo||"")+''+(u.kind==="add"?"+":u.kind==="remove"?"-":u.kind==="hunk"?"@":"")+''+t(u.text)+"
")}i.push("
")}return function(i){if(!i)return i;let o=[],r=null,a=0,u=0,c=()=>(r||(r={oldPath:"",newPath:"",lines:[]}),r),m=()=>{r&&(r.lines.length||r.oldPath||r.newPath)&&(s(o,r),r=null)},g=i.split(` +`);for(let v=0;ve});function aH(e,t){return e==null?"":Number(e).toLocaleString(void 0,t==null?{}:{minimumFractionDigits:t,maximumFractionDigits:t})}function lH(e){return String(e??"").toUpperCase()}function dH(e,t,s=0){return(e||[]).slice(s,s+t)}function uH(e,t){return Array.isArray(e)?typeof t=="function"?e.filter(t):e:[]}function cH(e,t){if(!t)return e||[];let s=Array.isArray(t)?t:[t];return[...e||[]].sort((i,o)=>{for(let r of s){let a=r[0]==="-"?-1:1;r=r.replace(/^[+-]/,"");let u=r.split(".").reduce((m,g)=>m?.[g],i),c=r.split(".").reduce((m,g)=>m?.[g],o);if(typeof u=="string"&&(u=u.toLowerCase()),typeof c=="string"&&(c=c.toLowerCase()),u!==c)return(u==null?-1:c==null?1:ui[o])}function fH(e,t){return(t?.[e]??t?.[e===1?"one":"other"]??"").replace(/\{\}/g,e??0)}var zc={name:"htmlDoc",props:["content","baseUrl","allowScripts"],setup(e){let t=gt(null);return nn(()=>{let i=[t.value][0];i.classList.add("html-doc");function o(){i.innerHTML="";let r=e.content;if(typeof r!="string")return;let a=document.createElement("iframe");a.className="html-doc-frame",a.setAttribute("title","Rendered HTML document");let u=["allow-popups","allow-popups-to-escape-sandbox"];e.allowScripts&&u.push("allow-scripts","allow-forms","allow-modals"),a.setAttribute("sandbox",u.join(" ")),a.setAttribute("referrerpolicy","no-referrer"),i.appendChild(a);let c="";e.baseUrl&&(c=''),a.srcdoc=c+r}tt(()=>e.content,o,{immediate:!0}),tt(()=>e.baseUrl,o,{immediate:!0}),tt(()=>e.allowScripts,o,{immediate:!0})}),()=>Oe("html-doc",{ref:t})}};var Hc={name:"pdfviewer",props:["src"],setup(e){let t=gt(null);return nn(()=>{let s=[t.value],i=400,o=[.5,.75,1,1.25,1.5,2,3],r=1e3,a=s[0];a.classList.add("pdf-viewer");let u=null,c=[],m=!1,g=null,v=1,h=1,k=0,A=0,w=612/792,b=0,E=null,N=new Map,O=0;function q(C){let R=N.get(C);R&&(R.cancelled=!0,R.task?.cancel?.(),N.delete(C));let P=C.querySelector("canvas");P&&(P.width=0,P.height=0),C.innerHTML="",delete C.dataset.state}let I=document.createElement("div");I.className="pdf-toolbar";let j=document.createElement("div");j.className="pdf-pages",j.tabIndex=0,j.setAttribute("aria-label","PDF pages"),a.appendChild(I),a.appendChild(j);function de(C,R,P){let G=document.createElement("button");return G.type="button",G.className="pdf-toolbar-btn",G.title=R,G.setAttribute("aria-label",R),G.innerHTML='',G.addEventListener("click",P),G}let ie=de("fa-chevron-up","Previous page",function(){Ke(h-1)}),D=de("fa-chevron-down","Next page",function(){Ke(h+1)}),X=document.createElement("input");X.type="text",X.className="pdf-toolbar-page",X.setAttribute("aria-label","Page number"),X.title="Page number \u2014 type a page and press Enter",X.addEventListener("keydown",function(C){C.key==="Enter"&&(Ke(parseInt(X.value,10)),X.blur())}),X.addEventListener("blur",function(){X.value=String(h)});let le=document.createElement("span");le.className="pdf-toolbar-count";let Ee=de("fa-search-minus","Zoom out",function(){ue(o[Math.max(0,Ne()-1)])}),re=de("fa-search-plus","Zoom in",function(){ue(o[Math.min(o.length-1,Ne()+1)])}),me=document.createElement("button");me.type="button",me.className="pdf-toolbar-btn pdf-toolbar-zoom",me.title="Reset zoom to fit the width",me.setAttribute("aria-label","Reset zoom to fit the width"),me.addEventListener("click",function(){ue(1)}),I.appendChild(ie),I.appendChild(D);let ke=document.createElement("span");ke.className="pdf-toolbar-group",ke.appendChild(X),ke.appendChild(le),I.appendChild(ke);let _e=document.createElement("span");_e.className="pdf-toolbar-group pdf-toolbar-right",_e.appendChild(Ee),_e.appendChild(me),_e.appendChild(re),I.appendChild(_e);function Ne(){let C=0;for(let R=0;R=C,me.textContent=Math.round(v*100)+"%",Ee.disabled=Ne()===0,re.disabled=Ne()===o.length-1}function Je(C){let R=c[C-1];R&&(j.scrollTop+=R.getBoundingClientRect().top-j.getBoundingClientRect().top)}function Ke(C){if(!u||isNaN(C))return;let R=Math.min(Math.max(1,C),u.numPages);c[R-1]&&(Je(R),h=R,k=R,A=Date.now()+800,Re(),te())}function rt(){if(!c.length||Date.now(){}),E=null),g&&(clearTimeout(g),g=null),u&&(u.destroy(),u=null),c=[],h=1,j.innerHTML="",Re()}function U(){j.innerHTML="";let C=document.createElement("div");C.className="pdf-viewer-error",C.textContent="This PDF could not be displayed.",j.appendChild(C)}function se(){let C=Math.max(120,j.clientWidth-24);return Math.round(Math.min(C,r)*v)}function Q(C,R,P){let G=window.devicePixelRatio||1,F=C.getViewport({scale:1}),Y=parseFloat(R.style.width);if(!Y)return;let M=C.getViewport({scale:Y/F.width*G}),H=document.createElement("canvas");return H.width=Math.floor(M.width),H.height=Math.floor(M.height),H.style.width=Y+"px",H.style.height=Math.floor(M.height/G)+"px",R.innerHTML="",R.appendChild(H),R.style.height=H.style.height,P.task=C.render({canvasContext:H.getContext("2d"),viewport:M}),P.task.promise}function te(){if(!u)return;let C=b,R=j.getBoundingClientRect(),P=R.top-i,G=R.top+j.clientHeight+i,F=c.map((M,H)=>({slot:M,i:H,rect:M.getBoundingClientRect()})).filter(M=>M.rect.top<=G&&M.rect.bottom>=P).sort((M,H)=>Math.abs(M.rect.top-R.top)-Math.abs(H.rect.top-R.top)).slice(0,6),Y=new Set(F.map(M=>M.slot));for(let M of N.keys())Y.has(M)||q(M);for(let{slot:M,i:H}of F){if(M.dataset.state||O>=2)continue;let ee={cancelled:!1,task:null};N.set(M,ee),O++,M.dataset.state="rendering";let K;u.getPage(H+1).then(he=>{if(K=he,!(ee.cancelled||C!==b))return Q(K,M,ee)}).then(()=>{ee.cancelled||C!==b||(M.dataset.state="done",k&&Date.now(){!ee.cancelled&&C===b&&(M.dataset.state="failed")}).finally(()=>{O--,K?.cleanup?.(),u&&te()})}}function L(){m||(m=!0,window.requestAnimationFrame(function(){m=!1,rt(),te()}))}function x(){let C=!1;function R(){C||(C=!0,te())}window.requestAnimationFrame(R),window.setTimeout(R,50)}function B(){b++,c.forEach(q);let C=se();c.forEach(function(R){delete R.dataset.state,R.innerHTML="",R.style.width=C+"px",R.style.height=Math.round(C/w)+"px"}),te()}function ue(C){if(!u||!c.length||C===v)return;let R=h;v=C,Re(),B(),Ke(R)}function we(){u&&(g&&clearTimeout(g),g=setTimeout(function(){g=null,u&&c.length&&B()},250))}function Pe(C){if(Qe(),!C)return;let R=b;E=pdfjsLib.getDocument({url:C,isEvalSupported:!1,standardFontDataUrl:"/script/external/pdf-standard-fonts/",cMapUrl:"/script/external/pdf-cmaps/",cMapPacked:!0}),E.promise.then(function(P){if(R!==b){P.destroy();return}return u=P,u.getPage(1).then(function(G){if(R!==b)return;let F=G.getViewport({scale:1});F.width&&F.height&&(w=F.width/F.height);let Y=se();for(let M=1;M<=u.numPages;M++){let H=document.createElement("div");H.className="pdf-viewer-page",H.style.width=Y+"px",H.style.height=Math.round(Y/w)+"px",j.appendChild(H),c.push(H)}Re(),x()})}).catch(function(){R===b&&U()})}j.addEventListener("scroll",L,{passive:!0}),$(window).on("resize",we),Re(),tt(()=>e.src,Pe,{immediate:!0}),Gn(function(){j.removeEventListener("scroll",L),$(window).off("resize",we),Qe()})}),()=>Oe("pdfviewer",{ref:t})}};var hH={key:0,class:"quota-row quota-usage"},mH={class:"quota-header"},gH={class:"quota-label"},vH={class:"project-type-svg","aria-hidden":"true"},yH=["href"],bH={key:0,class:"quota-percent"},wH={key:1,class:"quota-unlimited-tag"},kH={class:"quota-value"},CH={key:0},EH=["aria-label","aria-valuenow","aria-valuemax","aria-valuetext"],SH={key:1,class:"quota-remaining"},NH={key:2,class:"quota-remaining quota-limit"};function jc(e,t){return e.quota?(l(),d("div",hH,[(l(),d(W,null,ae([{key:"repository",label:"Repositories",kind:"count",icon:"project-type-repo"},{key:"storage",label:"Storage",kind:"bytes",icon:"project-icon-storage"},{key:"file",label:"Files",kind:"count",icon:"project-icon-file"}],s=>n("div",{class:_(["quota-item","quota-"+e.quota[s.key].level]),key:s.key},[n("div",mH,[n("span",gH,[(l(),d("svg",vH,[n("use",{href:"#"+s.icon},null,8,yH)])),y(p(s.label),1)]),e.quota[s.key].unlimited?f("v-if",!0):(l(),d("span",bH,p(e.quota[s.key].percent>0&&e.quota[s.key].percent<1?"<1":e.fmt.number(e.quota[s.key].percent,0))+"% used",1)),e.quota[s.key].unlimited?(l(),d("span",wH,"Unlimited")):f("v-if",!0)]),n("div",kH,[n("strong",null,p(e.formatAmount(e.quota[s.key].used,s.kind)),1),e.quota[s.key].unlimited?f("v-if",!0):(l(),d("span",CH," / "+p(e.formatAmount(e.quota[s.key].total,s.kind)),1))]),e.quota[s.key].unlimited?f("v-if",!0):(l(),d("div",{key:0,class:_(["quota-track","quota-"+e.quota[s.key].level]),role:"progressbar","aria-valuemin":"0","aria-label":s.label+" quota","aria-valuenow":Math.min(e.quota[s.key].used,e.quota[s.key].total),"aria-valuemax":e.quota[s.key].total,"aria-valuetext":e.fmt.number(e.quota[s.key].percent,0)+"% used"},[e.quota[s?.key].unlimited?f("v-if",!0):(l(),d("div",{key:0,class:"quota-fill",style:$e({width:e.quota[s.key].percent+"%"})},null,4))],10,EH)),!e.quota[s.key].unlimited&&e.quota[s.key].used=e.quota[s.key].total?(l(),d("p",NH,p(e.quota[s.key].used>e.quota[s.key].total?"Limit exceeded":"Limit reached"),1)):f("v-if",!0)],2)),64))])):f("v-if",!0)}var RH={props:["quota","fmt"],setup(e){return{formatAmount:(t,s)=>s==="bytes"?e.fmt.humanFileSize(e.quota?.storage?.unit==="bytes"?t*8:t).replace(/([a-zA-Z]+)$/," $1"):e.fmt.number(t)}},render:jc},DH=new Set(ge),Wc={props:["content","terms","options"],setup(e){let t=gt(null),s=()=>{t.value.innerHTML=renderMD(e.content||"",window.location.pathname+"/../")};return nn(()=>{s(),tt(()=>[e.content,e.terms,e.options],s,{deep:!0})}),()=>Oe("markdown",{ref:t})}},TH={props:["file","terms","options"],setup(e){let t=gt(null),s=()=>it(()=>t.value?.querySelectorAll("pre code").forEach(i=>window.Prism?.highlightElement(i)));return nn(s),tt(()=>[e.file?.content,e.terms,e.options],s,{deep:!0}),()=>{let i=e.file||{},o=(i.filename||"").split(".").pop().toLowerCase();if(["md","markdown"].includes(o)||i.language==="Markdown")return Oe("gist-file",{ref:t},Oe(Wc,{content:i.content,terms:e.terms,options:e.options}));let r={js:"javascript",jsx:"javascript",ts:"javascript",typescript:"javascript",py:"python",html:"markup",xml:"markup",svg:"markup",sh:"bash"},a=(i.language||o||"none").toLowerCase();return Oe("gist-file",{ref:t},Oe("pre",{class:"line-numbers"},Oe("code",{class:"language-"+(r[a]||a),key:i.content},i.content||"")))}}},AH={props:["file","content"],setup(e){let t=gt(null),s=0,i,o=async()=>{let r=++s;i?.abort(),i=new AbortController;try{let a=e.content?JSON.parse(e.content):await fetch(e.file?.download_url||e.file,{signal:i.signal}).then(u=>{if(!u.ok)throw Error("Notebook request failed");return u.json()});if(await $n("notebook"),r!==s)return;t.value.innerHTML=DOMPurify.sanitize(nb.parse(a).render()),t.value.querySelectorAll("pre code").forEach(u=>window.Prism?.highlightElement(u))}catch(a){r===s&&a.name!=="AbortError"&&(t.value.textContent="Unable to render the notebook.")}};return nn(()=>{o(),tt(()=>[e.file,e.content],o)}),Gn(()=>{s++,i?.abort()}),()=>Oe("notebook",{ref:t})}},_H={props:["stats"],setup(e){return()=>{let t=Object.entries(e.stats||{}).filter(([,i])=>i.code),s=t.reduce((i,[,o])=>i+o.code,0);return Oe("loc",t.map(([i,o])=>Oe("div",{class:"lang",title:`${i}: ${o.code.toLocaleString()} lines`,style:{width:o.code*100/s+"%",background:langColors[i]}})))}}},Kc={Markdown:Wc,GistFile:TH,Notebook:AH,Loc:_H,HtmlDoc:zc,QuotaUsage:RH,Pdfviewer:Cl(async()=>(await $n("pdf"),pdfjsLib.GlobalWorkerOptions.workerSrc="/script/external/pdf.worker.js",Hc))},Yc={async mounted(e,{value:t}){e._editorValue=t;try{if(await Mo(),e._editorDisposed)return;let s=e._editorValue,i=ace.edit(e);e._editor=i,i.setValue(String(s.content??""),-1),Gc(e,s.options),e._editorCleanup=s.options?.onLoad?.(i)}catch(s){e._editorDisposed||(e.textContent=s.message)}},updated(e,{value:t}){e._editorValue=t,e._editor&&(e._editor.getValue()!==String(t.content??"")&&e._editor.setValue(String(t.content??""),-1),Gc(e,t.options))},beforeUnmount(e){e._editorDisposed=!0,e._editorCleanup?.(),e._editor?.destroy()}};function Gc(e,t={}){let s=DH.has(t.mode)?t.mode:"text";e._editor.session.setMode("ace/mode/"+s),t.theme&&e._editor.setTheme("ace/theme/"+t.theme),e._editor.setReadOnly(t.readOnly!==!1)}var Xc={mounted(e){if(!window.IntersectionObserver)return;let t=[...e.querySelectorAll('a[href^="#"]')],s=new Set,i=new IntersectionObserver(o=>{o.forEach(a=>a.isIntersecting?s.add(a.target.id):s.delete(a.target.id));let r=t.find(a=>s.has(a.hash.slice(1)));r&&t.forEach(a=>a.classList.toggle("active",a===r))},{rootMargin:"-20% 0px -60% 0px",threshold:0});it(()=>{t.forEach(o=>{let r=document.getElementById(o.hash.slice(1));r&&i.observe(r)}),t[0]&&!t.some(o=>o.classList.contains("active"))&&t[0].classList.add("active")}),e._observer=i},beforeUnmount(e){e._observer?.disconnect()}};function OH(e){let t=[],s=0,i=/\bXXXX-(\d+)\b/g,o;for(;o=i.exec(e);)o.index>s&&t.push(e.slice(s,o.index)),t.push(Oe("span",{class:"redact-slot",role:"img","aria-label":"Redacted term "+o[1]},[Oe("i",null,o[1])])),s=o.index+o[0].length;return t.length?(s=1024&&iIH(e.file)),a=()=>"/"+(Array.isArray(t.params.path)?t.params.path.join("/"):t.params.path||"");tt(()=>[t.params.repoId,t.params.path],()=>{let h="";a().split("/").filter(Boolean).forEach(k=>{h+="/"+k,i[h]=!0})},{immediate:!0});let u=yt(()=>{if(!e.searchQuery||!e.searchResults)return null;let h=new Set,k=new Set;return e.searchResults.forEach(A=>{h.add(A.path?`${A.path}/${A.name}`:A.name);let w="";(A.path||"").split("/").filter(Boolean).forEach(b=>{w=w?w+"/"+b:b,k.add(w)})}),{files:h,folders:k}}),c=()=>[...s.value.querySelectorAll("li > a")],m=h=>{s.value.querySelector(".tree-focused")?.classList.remove("tree-focused"),h&&(o=h.dataset.path,h.classList.add("tree-focused"),h.scrollIntoView?.({block:"nearest"}),s.value.focus())};function g(h){let k=c(),A=s.value.querySelector(".tree-focused")||k[0],w=k.indexOf(A);if(!["ArrowDown","ArrowUp","ArrowRight","ArrowLeft","Enter"].includes(h.key)||(h.preventDefault(),h.key==="ArrowDown"&&m(k[(w+1)%k.length]),h.key==="ArrowUp"&&m(k[(w-1+k.length)%k.length]),!A))return;let b=A.closest("li");h.key==="ArrowRight"&&b.classList.contains("folder")&&(b.classList.contains("open")?m(b.querySelector(":scope > ul > li > a")):A.click()),h.key==="ArrowLeft"&&(b.classList.contains("folder")&&b.classList.contains("open")?A.click():m(b.parentElement.closest("li.folder")?.querySelector(":scope > a"))),h.key==="Enter"&&A.click()}function v(h,k=""){let A=[...h].sort((w,b)=>+!!b.children-+!!w.children||w.name.localeCompare(b.name));return Oe("ul",A.flatMap(w=>{let b=w,E=b.name,N=(k+"/"+E).slice(1);if(u.value&&!u.value.files.has(N)&&!u.value.folders.has(N))return[];for(;b.children?.length===1;)b=b.children[0],E+="/"+b.name;let O=k+"/"+E,q=!!b.children,I=u.value?i[O]!==!1:!!i[O],j=q&&e.page?.options?.truncatedFolders?.includes(O.slice(1)),de=Oe("span",{class:q?"tree-icon-folder":"far fa-file tree-icon-file","aria-hidden":"true"},q?Oe("svg",{viewBox:"0 0 14 12",focusable:"false"},Oe("path",{d:"M1.5 10.5v-9h4l1.5 2h5.5v7z"})):null),ie=Oe("span",{class:"tree-name",title:E.replace(/\bXXXX-(\d+)\b/g,"[redacted term $1]")},OH(E)),D=le=>{m(le.currentTarget),q&&(le.preventDefault(),i[O]=!I,i[O]&&!b.children.length&&e.page.getFiles(O.slice(1)),it(()=>m(c().find(Ee=>Ee.dataset.path===o))))},X=Oe("a",{"data-path":O,href:q?void 0:`/r/${encodeURIComponent(t.params.repoId)}${encodePathForUrl(O)}`,class:{"tree-focused":o===O},onClick:D},[q?Oe("span",{class:"tree-toggle"}):Oe("span",{class:"tree-spacer"}),de,ie,j?Oe("span",{class:"truncated-warning",title:e.page.fmt.translate("WARNINGS.folder_truncated")},Oe("i",{class:"fas fa-exclamation-triangle"})):null]);return Oe("li",{key:O,class:{file:!0,folder:q,open:I,active:a()===O,truncated:j},title:q?"":`Size: ${PH(b.size||0)}`},[X,q&&I?v(b.children,O):null])}))}return()=>Oe("tree",{ref:s,tabindex:0,onKeydown:g},e.file?.length?u.value?.files.size===0?Oe("div",{class:"tree-search-empty"},"No files found"):v(r.value):"Empty repository")}};function Zc(){return et({errors:{},dirty:!1,touched:!1,submitted:!1,get invalid(){return Object.values(this.errors).some(Boolean)},setValidity(e,t){this.errors[e]=!t},setDirty(){this.dirty=!0}})}function xc(e,t){if(!e[t]){let s=Zc();Object.defineProperty(s,"invalid",{get(){return Object.values(s.errors).some(Boolean)||Object.keys(s).some(i=>i!=="invalid"&&s[i]&&typeof s[i]=="object"&&s[i].invalid)}}),e[t]=s}return e[t]}var ep={beforeMount(e,{value:t}){e._formState=xc(t,e.name),e.addEventListener("submit",s=>s.preventDefault())}};function MH(e){return e instanceof Date?isNaN(e)?"":`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`:e||""}function Qc(e){let t=e._field.binding.value;e.type==="checkbox"?e.checked=!!t:e.type==="radio"?e.checked=t==(e._value??e.value):e._field.timer||(e.value=e.type==="date"?MH(t):t??""),ma(e)}function ma(e){let t=e._field.validation;if(!t)return;let s=e.validity;for(let[i,o]of Object.entries({required:s.valueMissing,pattern:s.patternMismatch,min:s.rangeUnderflow,max:s.rangeOverflow,date:s.badInput,email:s.typeMismatch&&e.type==="email",url:s.typeMismatch&&e.type==="url"}))t.setValidity(i,e.disabled||!o)}var tp={beforeMount(e,{value:t}){var a;let s=t.form&&xc(t.state,t.form),i=s&&e.name?s[a=e.name]||(s[a]=Zc()):null;e._field={binding:t,validation:i,timer:null};let o=()=>{clearTimeout(e._field.timer),e._field.timer=null;let u=e._field.binding,c=e.type==="checkbox"?e.checked:e._value??e.value;if(!(e.type==="radio"&&!e.checked)){if((e.type==="number"||e.type==="range")&&(c=e.value===""?null:Number(e.value)),e.type==="date"&&(c=e.value?new Date(e.value+"T00:00:00"):null),i){i.setDirty();for(let m of Object.keys(i.errors))i.setValidity(m,!0)}u.set(c),ma(e),u.change?.()}};e._field.commit=o;let r=u=>{let c=e._field.binding.options?.debounce||0,m=typeof c=="number"?c:c[u.type]??c.default??0;clearTimeout(e._field.timer),m?e._field.timer=setTimeout(o,m):o()};e.addEventListener(e.tagName==="SELECT"||["checkbox","radio","date"].includes(e.type)?"change":"input",r),e.addEventListener("blur",()=>{i&&(i.touched=!0),e._field.timer&&o()})},mounted:Qc,updated(e,{value:t}){e._field.binding=t,Qc(e)},beforeUnmount(e){clearTimeout(e._field.timer);let{binding:t,validation:s}=e._field,i=t.form&&t.state[t.form];i&&i[e.name]===s&&delete i[e.name]}};function np(e,t){let s=e.target.closest("form");if(s?._formState&&(s._formState.submitted=!0),s?.querySelectorAll("input, select, textarea").forEach(i=>{i._field?.timer&&i._field.commit(),i._field&&ma(i)}),s&&!s.checkValidity()){let i=s.querySelector("input:invalid, select:invalid, textarea:invalid");i?.scrollIntoView?.({block:"center"}),i?.focus(),s.reportValidity();return}return t()}var sp=Symbol("session"),VH=/^\/(w|api|github)(\/|$)/;function op(e,t={}){let s=e?.split(".").reduce((i,o)=>i?.[o],Oo);return s==null&&e?.startsWith("ERRORS.")&&(s=Oo.ERRORS.unknown_error),String(s??e??"").replace(/{{\s*([^}]+?)\s*}}/g,(i,o)=>t[o]??"")}var qH={...ha,translate:op};function $H(e){if(e==null||e==="")return e;try{let t=new URL(e,window.location.href);return["http:","https:","mailto:","tel:","blob:"].includes(t.protocol)?e:void 0}catch{return}}function LH(e="#app",t={}){let s=!!document.querySelector('meta[name="review-consent-page"][content="1"]'),i=s&&window.location.pathname==="/review-link"?wa(window):null,o=()=>{let h=i;return i=null,h};!t.history&&window.location.pathname==="/"&&/^#!\/r\/[^/?#]+/.test(window.location.hash)&&window.history.replaceState(window.history.state,"",window.location.hash.slice(2));let r=new Map,a=Uc(t.fetch),u,c;function m(){let h=At(),k={url(w){return w===void 0?c.currentRoute.value.fullPath:(c.push(w),k)},replace(w){return c.replace(w)},path(){return c.currentRoute.value.path},search(){return c.currentRoute.value.query}},A=new Proxy({},{get(w,b){let E=c.currentRoute.value.params[b];return Array.isArray(E)?E.join("/"):E}});return{takeReviewHandoff:o,http:a,...h,location:k,params:A,window,promises:Fc,html:{trustAsHtml:w=>w},translate:(w,b)=>Promise.resolve(op(w,b)),quotaService:Bc(a)}}function g(h){return{name:h.template,setup(){let k=Lr(Dt(sp),r);h.setup(k,m()),Lc(h.template,k);let A=[];return()=>qi[h.template](k,A)}}}c=Jd({history:t.history||Kd(),routes:ac.map(h=>h.redirect?h:{path:h.path,component:g(h),meta:{title:h.title,preserveExplorer:h.preserveExplorer}})});let v=hd({setup(){u=Lr(null,r),u.fmt=qH,u.window=window,u.Math=Math,u.sanitize=w=>DOMPurify.sanitize(w??""),u.highlightRedactions=w=>(u.site_options,Uu(w)),u.submitForm=np,u.safeUrl=$H;let h=m();Bu(u,h.http,h.location,h.timeout),jn(sp,u),tt(()=>u.title,w=>{document.title=w||"Anonymous GitHub"});let k=[],A=w=>{let b=w.target.closest?.("a[href]");if(w.defaultPrevented||w.button!==0||w.metaKey||w.ctrlKey||w.shiftKey||w.altKey||!b||b.hasAttribute("download")||b.target&&b.target!=="_self"||b.dataset.toggle||b.getAttribute("href").startsWith("#"))return;let N=new URL(b.href,window.location.href);s||/^\/review-link\/?$/i.test(N.pathname)||N.origin!==window.location.origin||VH.test(N.pathname)||(w.preventDefault(),c.push(N.pathname+N.search+N.hash),$("#navbarSupportedContent.show").collapse("hide"))};return document.addEventListener("click",A),Gn(()=>document.removeEventListener("click",A)),()=>[$c(u,[]),s||/^\/(r|repository)\//.test(u.path||"")?null:Oe("header",{class:["app-header",{"is-contained":u.path==="/"||u.path==="/faq"}]},qi["partials/header.htm"](u,k)),Oe("main",{class:"app-view align-items-stretch w-100"},Oe(qr,null,{default:({Component:w,route:b})=>w?Oe(w,{key:b.meta.preserveExplorer?b.matched[0]?.path:b.path}):null})),Oe("div",{class:"position-fixed p-3",style:{zIndex:999999999,right:0,bottom:0}},u.toasts.map((w,b)=>Oe("div",{class:"toast show",role:"alert","aria-live":"assertive","aria-atomic":"true",key:b},[Oe("div",{class:"toast-header"},[Oe("strong",{class:"mr-auto"},w.title),Oe("button",{type:"button",class:"ml-2 mb-1 close","aria-label":"Close",onClick:()=>u.removeToast(w)},"\xD7")]),Oe("div",{class:"toast-body"},w.body)])))]}});for(let[h,k]of Object.entries(Kc))v.component(h,k);return v.component("Tree",Jc),v.component("PartialView",{props:["name","state"],setup(h){let k=[];return()=>qi[h.name](h.state,k)}}),v.directive("field",tp),v.directive("form",ep),v.directive("code-editor",Yc),v.directive("paper-scrollspy",Xc),v.use(c),c.beforeEach(async h=>{if(h.path==="/review-link"&&!s||s&&h.path!=="/review-link")return window.location.assign(h.fullPath),!1;u?.emit("routeLeave"),/^\/(r|repository|anonymize|pull-request-anonymize|gist-anonymize|pr|gist)(\/|$)/.test(h.path)&&await $n("markdown"),/^\/(r|repository)\//.test(h.path)&&await $n("org")}),c.afterEach(h=>{if(!u)return;u.title=h.meta.title,u.emit("routeChange",{title:h.meta.title}),u.emit("routeUpdate",{title:h.meta.title});let k=document.querySelector(".app-view");!h.meta.preserveExplorer&&k&&(k.scrollTop=0)}),v.mount(e),{app:v,router:c,state:u}}document.querySelector("#app")&&(window.anonymousApp=LH());})(); /*! Bundled license information: @vue/shared/dist/shared.esm-bundler.js: diff --git a/src/core/Repository.ts b/src/core/Repository.ts index e7aa8a5..0d891c4 100644 --- a/src/core/Repository.ts +++ b/src/core/Repository.ts @@ -610,6 +610,7 @@ export default class Repository { filePath: filePath, cacheGeneration: `${this.model.treeGeneration || "legacy"}:${this.model.anonymizeDate?.toISOString() || ""}`, terms: this.options.terms, + preserveFiles: this.options.preserveFiles || [], cacheRevision: this.model.contentCacheRevision, image: this.options.image, link: this.options.link, diff --git a/src/core/anonymize-utils.ts b/src/core/anonymize-utils.ts index 2fb789b..77bd3db 100644 --- a/src/core/anonymize-utils.ts +++ b/src/core/anonymize-utils.ts @@ -16,6 +16,7 @@ import { lookup as lookupMime } from "mime-types"; import config from "../config"; import { TermPresenceIndex } from "./term-presence"; +import { isPreservedPath } from "./preserve-files"; import { parseTermSpec, termVariants, @@ -154,6 +155,11 @@ export class AnonymizeTransformer extends Transform { private spoolOperation?: Promise; private readonly memoryThreshold = 256 * 1024; private readonly bufferWholeStream: boolean; + // Options actually applied to the content. Identical to `opt` except that + // files matching `preserveFiles` drop their terms (#941). `opt` keeps the + // full configuration because it is forwarded to the streamer and zip + // builder, which re-evaluate it per file. + private readonly contentOpt: ConstructorParameters[0]; constructor( readonly opt: { @@ -161,9 +167,11 @@ export class AnonymizeTransformer extends Transform { cacheGeneration?: string; cacheRevision?: string; decisionManaged?: boolean; + preserveFiles?: string[]; } & ConstructorParameters[0] ) { super(); + this.contentOpt = isPreservedPath(opt.filePath, opt.preserveFiles) ? { ...opt, terms: [] } : opt; // Tri-state: name-based check returns true (known text), false (known // binary), or null (name inconclusive). For null we defer to a content // sniff on the first chunk in _transform — known binary extensions @@ -171,14 +179,14 @@ export class AnonymizeTransformer extends Transform { // reach the sniff path (#493). this.nameVerdict = classifyByName(this.opt.filePath); if (this.nameVerdict !== null) this.isText = this.nameVerdict; - this.anonimizer = new ContentAnonimizer(this.opt); + this.anonimizer = new ContentAnonimizer(this.contentOpt); // Matching a prefix in isolation can split even a fixed-length name or // turn the split into a false word boundary. Preserve the complete text // whenever a rewrite is enabled, with MAX_FILE_SIZE as a hard limit. this.bufferWholeStream = opt.link === false || opt.image === false || - (opt.terms || []).length > 0 || !!(opt.repoName && opt.branchName); + (this.contentOpt.terms || []).length > 0 || !!(opt.repoName && opt.branchName); } get wasAnonimized() { @@ -247,8 +255,8 @@ export class AnonymizeTransformer extends Transform { const output = join(this.spool, "output"); const started = performance.now(); const produce = () => anonymizeOnWorker({ input: join(this.spool!, "input"), output, - options: this.opt, maxOutput: config.MAX_FILE_SIZE * 4, context: { mask: config.ANONYMIZATION_MASK, hostname: config.APP_HOSTNAME } }, this.wholeBytes, this.cancelled.signal); - void (this.opt.decisionManaged ? produce() : transformedFile(this.digest.digest("hex"), this.opt, output, produce)) + options: this.contentOpt, maxOutput: config.MAX_FILE_SIZE * 4, context: { mask: config.ANONYMIZATION_MASK, hostname: config.APP_HOSTNAME } }, this.wholeBytes, this.cancelled.signal); + void (this.opt.decisionManaged ? produce() : transformedFile(this.digest.digest("hex"), this.contentOpt, output, produce)) .then(changed => { if (this.destroyed) return; this.anonimizer.wasAnonymized = changed; diff --git a/src/core/model/anonymizedRepositories/anonymizedRepositories.schema.ts b/src/core/model/anonymizedRepositories/anonymizedRepositories.schema.ts index cb17663..ced4491 100644 --- a/src/core/model/anonymizedRepositories/anonymizedRepositories.schema.ts +++ b/src/core/model/anonymizedRepositories/anonymizedRepositories.schema.ts @@ -76,6 +76,7 @@ const AnonymizedRepositorySchema = new Schema({ }, options: { terms: [String], + preserveFiles: { type: [String], default: undefined }, expirationMode: { type: String }, expirationDate: Date, update: Boolean, diff --git a/src/core/model/anonymizedRepositories/anonymizedRepositories.types.ts b/src/core/model/anonymizedRepositories/anonymizedRepositories.types.ts index 951eb23..6e179ed 100644 --- a/src/core/model/anonymizedRepositories/anonymizedRepositories.types.ts +++ b/src/core/model/anonymizedRepositories/anonymizedRepositories.types.ts @@ -49,6 +49,8 @@ export interface IAnonymizedRepository { conference: string; options: { terms: string[]; + /** Glob patterns of files whose content skips term redaction (#941). */ + preserveFiles?: string[]; expirationMode: "never" | "redirect" | "remove"; expirationDate?: Date; update: boolean; diff --git a/src/core/preserve-files.ts b/src/core/preserve-files.ts new file mode 100644 index 0000000..3d345d9 --- /dev/null +++ b/src/core/preserve-files.ts @@ -0,0 +1,89 @@ +import { Minimatch } from "minimatch"; + +/** + * Patterns for files whose content is served without term redaction (#941), + * e.g. a bibliography where redacted self-citations would reveal the authors. + * Paths are still anonymized; only file content is left untouched. + * + * Same rules as .gitignore: a pattern without "/" matches the file name in any + * folder (`*.bib`); a pattern containing "/" matches from the repository root + * (`paper/refs.bib`, `/refs.bib`, `paper/**`); a pattern that matches a + * folder covers everything inside it, and a trailing "/" matches folders only + * (`private/`); `!pattern` excludes again, and the last matching pattern wins. Picked files are stored as root-anchored + * paths with glob characters escaped by a backslash (`/paper/\{a,b\}.bib`). + */ +export const MAX_PRESERVE_PATTERNS = 200; +export const MAX_PRESERVE_PATTERN_LENGTH = 512; + +function parsePattern(pattern: string) { + const negated = pattern.startsWith("!"); + const rest = negated ? pattern.slice(1) : pattern; + const anchored = rest.startsWith("/"); + const withSlash = anchored ? rest.slice(1) : rest; + const directoryOnly = withSlash.endsWith("/"); + const body = directoryOnly ? withSlash.slice(0, -1) : withSlash; + return { negated, anchored, directoryOnly, body }; +} + +/** + * Drops repeated patterns but keeps the last copy: rules apply in order and + * the last match wins, so an earlier copy can never decide the result. + */ +export function dedupePreservePatterns(patterns: string[]): string[] { + return patterns.filter((pattern, index) => patterns.lastIndexOf(pattern) === index); +} + +/** Returns the normalized patterns, or null when the input is invalid. */ +export function normalizePreserveFiles(value: unknown): string[] | null { + if (value === undefined || value === null) return []; + if (!Array.isArray(value)) return null; + const patterns: string[] = []; + for (const raw of value) { + if (typeof raw !== "string") return null; + const pattern = raw.trim(); + if (!pattern) continue; + if (pattern.length > MAX_PRESERVE_PATTERN_LENGTH) return null; + const { body } = parsePattern(pattern); + if (!body || body.split("/").some(segment => segment === ".." || segment === "")) return null; + patterns.push(pattern); + } + const unique = dedupePreservePatterns(patterns); + return unique.length > MAX_PRESERVE_PATTERNS ? null : unique; +} + +/** + * Compiles the patterns once. The returned function applies them in order to + * `initial` (whether the file is already preserved), so a later `!pattern` + * can exclude what an earlier pattern included. + */ +export function compilePreserveMatcher(patterns: string[] | undefined): (filePath: string, initial?: boolean) => boolean { + const rules = (patterns || []) + .filter((pattern): pattern is string => typeof pattern === "string" && pattern.length > 0) + .map(pattern => { + const { negated, anchored, directoryOnly, body } = parsePattern(pattern); + return { + negated, + directoryOnly, + matcher: new Minimatch(body, { dot: true, nonegate: true, nocomment: true, matchBase: !anchored && !body.includes("/") }), + }; + }); + return (filePath: string, initial = false) => { + const path = (filePath || "").replace(/^\/+/, ""); + if (!path) return false; + // A rule applies to a file when it matches the file or one of its folders. + const parts = path.split("/"); + const folders = parts.slice(0, -1).map((_, i) => parts.slice(0, i + 1).join("/")); + let preserved = initial; + for (const rule of rules) { + if (rule.negated ? !preserved : preserved) continue; + const candidates = rule.directoryOnly ? folders : [...folders, path]; + if (candidates.some(candidate => rule.matcher.match(candidate))) preserved = !rule.negated; + } + return preserved; + }; +} + +export function isPreservedPath(filePath: string | undefined, patterns: string[] | undefined): boolean { + if (!filePath || !patterns || patterns.length === 0) return false; + return compilePreserveMatcher(patterns)(filePath); +} diff --git a/src/core/source-file-list.ts b/src/core/source-file-list.ts new file mode 100644 index 0000000..c2aa7f0 --- /dev/null +++ b/src/core/source-file-list.ts @@ -0,0 +1,53 @@ +import { octokit } from "./GitHubUtils"; +import AnonymousError from "./AnonymousError"; +import { classifyByName } from "./anonymize-utils"; + +/** Enough for the picker; larger repositories fall back to patterns. */ +export const SOURCE_FILE_LIST_LIMIT = 20000; + +export interface SourceFileList { + files: string[]; + truncated: boolean; +} + +/** + * Text files of a commit, read from GitHub's recursive tree API. Used by the + * "Leave files unredacted" picker (#941) before the repository is downloaded. + * Known binary files are dropped: their content is never redacted anyway. + */ +export async function sourceFileList(opt: { + owner: string; + repo: string; + commit: string; + accessToken: string; +}): Promise { + const oct = octokit(opt.accessToken); + let data; + try { + // The commit field accepts abbreviated hashes; the tree API needs a full one. + let commit = opt.commit; + if (!/^[0-9a-f]{40}$/i.test(commit)) { + commit = (await oct.repos.getCommit({ owner: opt.owner, repo: opt.repo, ref: commit })).data.sha; + } + ({ data } = await oct.git.getTree({ + owner: opt.owner, + repo: opt.repo, + tree_sha: commit, + recursive: "true", + })); + } catch (error) { + const status = (error as { status?: number }).status; + if (status === 404 || status === 409 || status === 422) { + throw new AnonymousError("repo_not_found", { httpStatus: 404, cause: error as Error }); + } + throw error; + } + const files: string[] = []; + for (const entry of data.tree) { + if (entry.type !== "blob" || !entry.path) continue; + if (entry.path === ".gitmodules" || classifyByName(entry.path) === false) continue; + if (files.length === SOURCE_FILE_LIST_LIMIT) return { files: files.sort(), truncated: true }; + files.push(entry.path); + } + return { files: files.sort(), truncated: !!data.truncated }; +} diff --git a/src/core/term-hints.ts b/src/core/term-hints.ts new file mode 100644 index 0000000..15bc6ed --- /dev/null +++ b/src/core/term-hints.ts @@ -0,0 +1,48 @@ +import { parseTermSpec } from "./term-matching"; + +// Symbols that change what a term matches. "." is left out on purpose: it +// matches any character, which can only redact more (hartwell.edu also hides +// hartwell-edu), never less, so warning about every email and domain was +// noise. "-", "," and "#" are literal outside a character class. +const STRUCTURAL = new Set(["*", "+", "?", "(", ")", "[", "]", "{", "}", "|", "^", "$"]); + +export interface TermHint { + /** Zero-based line in the terms text. */ + line: number; + term: string; + symbols: string[]; +} + +/** Terms whose regex symbols probably were meant literally, e.g. "Smith (MIT)" or "C++". */ +export function termHints(text: string | undefined): TermHint[] { + const hints: TermHint[] = []; + String(text || "").split("\n").forEach((line, index) => { + const { term } = parseTermSpec(line.trim()); + if (!term) return; + const symbols: string[] = []; + for (let i = 0; i < term.length; i++) { + if (term[i] === "\\") { i++; continue; } + if (STRUCTURAL.has(term[i]) && !symbols.includes(term[i])) symbols.push(term[i]); + } + if (symbols.length) hints.push({ line: index, term, symbols }); + }); + return hints; +} + +/** Rewrites one line so its term matches the text as written; keeps any "=>" replacement. */ +export function escapeTermLine(text: string, line: number): string { + const lines = String(text || "").split("\n"); + const raw = lines[line]; + if (raw === undefined) return text; + const { term } = parseTermSpec(raw.trim()); + if (!term) return text; + let escaped = ""; + for (let i = 0; i < term.length; i++) { + if (term[i] === "\\") { escaped += term.slice(i, i + 2); i++; continue; } + escaped += STRUCTURAL.has(term[i]) || term[i] === "." ? "\\" + term[i] : term[i]; + } + // Splice by index: String.replace would expand "$&", "$'" and "$1" in the term. + const start = raw.indexOf(term); + lines[line] = raw.slice(0, start) + escaped + raw.slice(start + term.length); + return lines.join("\n"); +} diff --git a/src/server/routes/maintenance.ts b/src/server/routes/maintenance.ts index 89f047d..65ae8e0 100644 --- a/src/server/routes/maintenance.ts +++ b/src/server/routes/maintenance.ts @@ -1,6 +1,7 @@ import * as express from "express"; import { getRepo, getUser, handleError, isOwnerCoauthorOrAdmin } from "./route-utils"; import AnonymousError from "../../core/AnonymousError"; +import { normalizePreserveFiles } from "../../core/preserve-files"; import RepoModel from "../../core/model/anonymizedRepositories/anonymizedRepositories.model"; const router = express.Router(); @@ -17,6 +18,11 @@ export function maintenanceSettings(body: unknown): Record { if (key === "terms") { if (!Array.isArray(value) || value.length > 1000 || !value.every(t => typeof t === "string" && t.length > 0 && t.length <= 1000)) throw invalid(); + } else if (key === "preserveFiles") { + const patterns = normalizePreserveFiles(value); + if (!Array.isArray(value) || patterns === null) throw invalid(); + updates["options.preserveFiles"] = patterns; + continue; } else if (!toggles.includes(key) || typeof value !== "boolean") throw invalid(); updates[`options.${key}`] = value; } diff --git a/src/server/routes/repository-private.ts b/src/server/routes/repository-private.ts index 3d06d2f..dc9e476 100644 --- a/src/server/routes/repository-private.ts +++ b/src/server/routes/repository-private.ts @@ -30,6 +30,8 @@ import RepositoryModel from "../../core/model/repositories/repositories.model"; import { RepositoryStatus } from "../../core/types"; import { octokit, getRedisGateResetAt, getToken } from "../../core/GitHubUtils"; import { createLogger } from "../../core/logger"; +import { normalizePreserveFiles } from "../../core/preserve-files"; +import { sourceFileList } from "../../core/source-file-list"; const logger = createLogger("route:repo"); @@ -350,6 +352,27 @@ router.get( } ); +// Text files of a source commit, for the "Leave files unredacted" picker (#941). +router.get( + "/:owner/:repo/tree", + async (req, res) => { + try { + const commit = typeof req.query.commit === "string" ? req.query.commit : ""; + if (!/^[0-9a-f]{6,40}$/i.test(commit)) throw appError("invalid_commit_format", 400); + const token = await previewToken(req); + res.set("Cache-Control", "private, no-store"); + res.json(await sourceFileList({ + owner: req.params.owner, + repo: req.params.repo, + commit, + accessToken: token, + })); + } catch (error) { + handleError(error, res, req); + } + } +); + // get repository information router.get("/:repoId/", async (req, res) => { try { @@ -428,6 +451,14 @@ function validateNewRepo(repoUpdate: any): void { httpStatus: 400, }); } + const preserveFiles = normalizePreserveFiles(repoUpdate.options.preserveFiles); + if (preserveFiles === null) { + throw new AnonymousError("invalid_preserve_files_format", { + object: repoUpdate, + httpStatus: 400, + }); + } + repoUpdate.options.preserveFiles = preserveFiles; if (!/^[a-fA-F0-9]+$/.test(repoUpdate.source.commit)) { throw new AnonymousError("invalid_commit_format", { object: repoUpdate, @@ -446,6 +477,7 @@ function updateRepoModel( model.source.branch = repoUpdate.source.branch; model.options = { terms: repoUpdate.terms, + preserveFiles: normalizePreserveFiles(repoUpdate.options.preserveFiles) || [], expirationMode: repoUpdate.options.expirationMode, expirationDate: repoUpdate.options.expirationDate ? new Date(repoUpdate.options.expirationDate) diff --git a/test/frontend-regressions.test.js b/test/frontend-regressions.test.js index 534f807..feed4c6 100644 --- a/test/frontend-regressions.test.js +++ b/test/frontend-regressions.test.js @@ -5,6 +5,10 @@ const path = require("path"); const { setImmediate } = require("timers"); const { URLSearchParams } = require("node:url"); const source = fs.readFileSync(path.join(__dirname, "../public/script/app.js"), "utf8"); +require("ts-node/register/transpile-only"); +const minimatch = require("minimatch"); +const { compilePreserveMatcher, dedupePreservePatterns } = require("../src/core/preserve-files"); +const { termHints, escapeTermLine } = require("../src/core/term-hints"); function harness(date) { const defs = {}, routes = {}, timers = new Map(); @@ -18,6 +22,8 @@ function harness(date) { $: () => ({ on() {}, tooltip() {} }), setTimeout: fn => { timers.set(++timerId, fn); return timerId; }, clearTimeout: id => timers.delete(id), setInterval: () => 0, clearInterval() {}, + markRaw: value => value, globEscape: minimatch.escape, globUnescape: minimatch.unescape, + compilePreserveMatcher, dedupePreservePatterns, termHints, escapeTermLine, }; context.createTimers = () => ({ timeout: Object.assign(context.setTimeout, { cancel: context.clearTimeout }), interval: Object.assign(context.setInterval, { cancel: context.clearInterval }) }); context.createListeners = () => (target, name, callback) => target.addEventListener(name, callback); @@ -133,6 +139,100 @@ describe("frontend production regressions", function () { expect(h.routes[route].preserveExplorer).to.equal(false); } }); + it("saves picked files as anchored, escaped paths and folders as patterns (#941)", async function () { + const h = harness(); const timeout = () => 0; timeout.cancel = () => {}; + h.context.document.getElementById = () => null; + h.defs.anonymizeController(h.scope, h.http, {}, {}, {}, () => {}, timeout); + h.scope.options.preserveFiles = ["*.bib"]; + h.scope.source = { commit: "a".repeat(40) }; + h.scope.sourceUrl = "https://github.com/owner/repo"; + h.scope.openPreserveFiles(); + const request = h.requests.at(-1); + expect(request.url).to.equal("/api/repo/owner/repo/tree"); + expect(request.body.params.commit).to.equal("a".repeat(40)); + request.resolve({ data: { files: ["configs/a.yaml", "configs/b.yaml", "paper/[draft].tex", "paper/refs.bib"], truncated: false } }); + await h.flush(); + expect(h.scope.preserveCount()).to.equal(1); + h.scope.togglePreserveFile("paper/[draft].tex"); + h.scope.togglePreserveFolder("configs"); + expect(h.scope.preserveCount()).to.equal(4); + h.scope.savePreserveFiles(); + expect(Array.from(h.scope.options.preserveFiles)).to.deep.equal(["/paper/\\[draft\\].tex", "*.bib", "/configs/**"]); + expect(h.scope.preserveSummary()).to.equal("paper/[draft].tex, *.bib and 1 more"); + }); + it("lets a later !pattern exclude a picked file, and keeps braces literal (#941)", async function () { + const h = harness(); const timeout = () => 0; timeout.cancel = () => {}; + h.context.document.getElementById = () => null; + h.defs.anonymizeController(h.scope, h.http, {}, {}, {}, () => {}, timeout); + h.scope.options.preserveFiles = ["/paper/\\{a,b\\}.bib", "!a.bib"]; + h.scope.source = { commit: "a".repeat(40) }; + h.scope.sourceUrl = "https://github.com/owner/repo"; + h.scope.openPreserveFiles(); + expect(h.scope.preserve.picked["paper/{a,b}.bib"]).to.equal(true); + h.requests.at(-1).resolve({ data: { files: ["a.bib", "paper/a.bib", "paper/{a,b}.bib"], truncated: false } }); + await h.flush(); + expect(h.scope.preserveCount()).to.equal(1); + h.scope.togglePreserveFile("a.bib"); + expect(h.scope.preserveCount()).to.equal(1); + }); + it("keeps folder rules as patterns and counts them like the server (#941)", async function () { + const h = harness(); const timeout = () => 0; timeout.cancel = () => {}; + h.context.document.getElementById = () => null; + h.defs.anonymizeController(h.scope, h.http, {}, {}, {}, () => {}, timeout); + h.scope.options.preserveFiles = ["/paper/", "/refs.bib"]; + h.scope.source = { commit: "abc123" }; + h.scope.sourceUrl = "https://github.com/owner/repo"; + h.scope.openPreserveFiles(); + expect(Object.keys(h.scope.preserve.picked)).to.deep.equal([]); + expect(h.scope.preserve.patterns).to.equal("/paper/\n/refs.bib"); + h.requests.at(-1).resolve({ data: { files: ["paper/a.tex", "paper/b/c.tex", "refs.bib", "x.tex"], truncated: false } }); + await h.flush(); + expect(h.scope.preserveCount()).to.equal(3); + const paper = h.scope.preserveRows().find((row) => row.path === "paper"); + expect(paper.state).to.equal("all"); + }); + it("unchecking a folder overrides broader rules (#941)", async function () { + const h = harness(); const timeout = () => 0; timeout.cancel = () => {}; + h.context.document.getElementById = () => null; + h.defs.anonymizeController(h.scope, h.http, {}, {}, {}, () => {}, timeout); + h.scope.options.preserveFiles = ["*.bib"]; + h.scope.source = { commit: "abc123" }; + h.scope.sourceUrl = "https://github.com/owner/repo"; + h.scope.openPreserveFiles(); + h.requests.at(-1).resolve({ data: { files: ["paper/refs.bib", "refs.bib"], truncated: false } }); + await h.flush(); + expect(h.scope.preserveCount()).to.equal(2); + h.scope.togglePreserveFolder("paper"); + expect(h.scope.preserveCount()).to.equal(1); + h.scope.togglePreserveFolder("paper"); + expect(h.scope.preserveCount()).to.equal(2); + h.scope.togglePreserveFolder("paper"); + h.scope.savePreserveFiles(); + expect(Array.from(h.scope.options.preserveFiles)).to.deep.equal(["*.bib", "!/paper/"]); + }); + it("keeps the order of saved rules when the picker opens and saves (#941)", function () { + const h = harness(); const timeout = () => 0; timeout.cancel = () => {}; + h.context.document.getElementById = () => null; + h.defs.anonymizeController(h.scope, h.http, {}, {}, {}, () => {}, timeout); + h.scope.options.preserveFiles = ["/a.bib", "*.bib", "!/refs.bib", "/refs.bib"]; + h.scope.source = { commit: "a".repeat(40) }; + h.scope.sourceUrl = "https://github.com/owner/repo"; + h.scope.openPreserveFiles(); + expect(Object.keys(h.scope.preserve.picked)).to.deep.equal(["a.bib"]); + expect(h.scope.preserve.patterns).to.equal("*.bib\n!/refs.bib\n/refs.bib"); + h.scope.savePreserveFiles(); + expect(Array.from(h.scope.options.preserveFiles)).to.deep.equal(["/a.bib", "*.bib", "!/refs.bib", "/refs.bib"]); + }); + it("shows the README unredacted in the preview when it is an unredacted file (#941)", function () { + const h = harness(); const timeout = () => 0; timeout.cancel = () => {}; + h.defs.anonymizeController(h.scope, h.http, {}, {}, {}, () => {}, timeout); + h.scope.detectedType = "repo"; + h.scope.options.preserveFiles = ["*.bib"]; + expect(h.scope.readmePreserved()).to.equal(false); + h.scope.options.preserveFiles = ["/README.md"]; + expect(h.scope.readmePreserved()).to.equal(true); + expect(typeof h.watches["options.preserveFiles"]).to.equal("function"); + }); it("includes PR comment authors and bodies in the preview batch", async function () { const h = harness(); const pending = new Map(); let id = 0; const timeout = fn => { pending.set(++id, fn); return id; }; timeout.cancel = id => pending.delete(id); diff --git a/test/maintenance-api.test.js b/test/maintenance-api.test.js index e893607..b3b6248 100644 --- a/test/maintenance-api.test.js +++ b/test/maintenance-api.test.js @@ -114,6 +114,14 @@ describe("maintenance settings patch", () => { "options.terms": [], "options.update": false, }); }); + it("normalizes preserveFiles patterns (#941)", () => { + expect(maintenanceSettings({ preserveFiles: [" refs.bib ", ""] })).to.deep.equal({ + "options.preserveFiles": ["refs.bib"], + }); + for (const body of [{ preserveFiles: "refs.bib" }, { preserveFiles: null }, { preserveFiles: ["../x"] }]) { + expect(() => maintenanceSettings(body)).to.throw("invalid_settings"); + } + }); it("rejects source changes, arbitrary option paths, invalid types and oversized terms", () => { for (const body of [null, [], {}, { source: {} }, { "options.update": true }, { image: "false" }, { terms: [1] }, { terms: [""] }, { terms: ["a".repeat(1001)] }, diff --git a/test/preserve-files.test.js b/test/preserve-files.test.js new file mode 100644 index 0000000..e79e533 --- /dev/null +++ b/test/preserve-files.test.js @@ -0,0 +1,133 @@ +const { expect } = require("chai"); +require("ts-node/register/transpile-only"); +const { + isPreservedPath, + normalizePreserveFiles, +} = require("../src/core/preserve-files"); +const { AnonymizeTransformer } = require("../src/core/anonymize-utils"); +const { decisionKey } = require("../src/core/cached-response"); + +function run(options, input) { + const transformer = new AnonymizeTransformer(options); + const chunks = []; + return new Promise((resolve, reject) => { + transformer.on("data", (chunk) => chunks.push(Buffer.from(chunk))); + transformer.on("end", () => resolve(Buffer.concat(chunks).toString("utf8"))); + transformer.on("error", reject); + transformer.end(Buffer.from(input)); + }); +} + +describe("preserveFiles (#941)", function () { + describe("isPreservedPath", function () { + it("matches a bare name or glob in any folder", function () { + expect(isPreservedPath("refs.bib", ["refs.bib"])).to.equal(true); + expect(isPreservedPath("paper/refs.bib", ["refs.bib"])).to.equal(true); + expect(isPreservedPath("a/b/other.bib", ["*.bib"])).to.equal(true); + expect(isPreservedPath("paper/refs.tex", ["*.bib"])).to.equal(false); + }); + + it("anchors patterns containing a slash at the repository root", function () { + expect(isPreservedPath("paper/refs.bib", ["paper/refs.bib"])).to.equal(true); + expect(isPreservedPath("x/paper/refs.bib", ["paper/refs.bib"])).to.equal(false); + expect(isPreservedPath("paper/sub/a.bib", ["paper/**"])).to.equal(true); + }); + + it("anchors a leading slash at the root, like .gitignore", function () { + expect(isPreservedPath("refs.bib", ["/refs.bib"])).to.equal(true); + expect(isPreservedPath("paper/refs.bib", ["/refs.bib"])).to.equal(false); + expect(isPreservedPath("paper/refs.bib", ["/paper/refs.bib"])).to.equal(true); + }); + + it("matches picked paths escaped with backslashes, braces included", function () { + expect(isPreservedPath("paper/[draft].bib", ["/paper/\\[draft\\].bib"])).to.equal(true); + expect(isPreservedPath("paper/d.bib", ["/paper/\\[draft\\].bib"])).to.equal(false); + expect(isPreservedPath("paper/{draft,final}.bib", ["/paper/\\{draft,final\\}.bib"])).to.equal(true); + expect(isPreservedPath("paper/draft.bib", ["/paper/\\{draft,final\\}.bib"])).to.equal(false); + }); + + it("applies folder rules to everything inside, like .gitignore", function () { + expect(isPreservedPath("private/refs.bib", ["*.bib", "!private"])).to.equal(false); + expect(isPreservedPath("paper/private/refs.bib", ["*.bib", "!private/"])).to.equal(false); + expect(isPreservedPath("paper/refs.bib", ["*.bib", "!private"])).to.equal(true); + expect(isPreservedPath("paper/a/b.tex", ["paper"])).to.equal(true); + expect(isPreservedPath("x/paper/b.tex", ["/paper"])).to.equal(false); + expect(isPreservedPath("private.bib", ["*.bib", "!private/"])).to.equal(true); + expect(isPreservedPath("private/x.bib", ["/private/x.bib", "!/private/"])).to.equal(false); + }); + + it("applies !patterns as exclusions, last match wins", function () { + const patterns = ["*.bib", "!private.bib"]; + expect(isPreservedPath("paper/refs.bib", patterns)).to.equal(true); + expect(isPreservedPath("paper/private.bib", patterns)).to.equal(false); + expect(isPreservedPath("README.md", patterns)).to.equal(false); + expect(isPreservedPath("paper/private.bib", ["!private.bib", "*.bib"])).to.equal(true); + expect(isPreservedPath("a/x.bib", ["a/**", "!a/*.bib"])).to.equal(false); + expect(isPreservedPath("#notes.txt", ["#notes.txt"])).to.equal(true); + }); + + it("matches dotfiles and ignores empty input", function () { + expect(isPreservedPath(".zenodo.json", ["*.json"])).to.equal(true); + expect(isPreservedPath("refs.bib", [])).to.equal(false); + expect(isPreservedPath("", ["*"])).to.equal(false); + expect(isPreservedPath("refs.bib", undefined)).to.equal(false); + }); + }); + + describe("normalizePreserveFiles", function () { + it("trims, drops blanks and duplicates", function () { + expect(normalizePreserveFiles([" refs.bib ", "", "refs.bib", "*.bib"])) + .to.deep.equal(["refs.bib", "*.bib"]); + }); + + it("keeps the last copy of a repeated rule so the result does not change", function () { + const raw = ["!a.bib", "*.bib", "!a.bib"]; + const normalized = normalizePreserveFiles(raw); + expect(normalized).to.deep.equal(["*.bib", "!a.bib"]); + expect(isPreservedPath("a.bib", normalized)).to.equal(isPreservedPath("a.bib", raw)); + expect(isPreservedPath("a.bib", normalized)).to.equal(false); + expect(normalizePreserveFiles(undefined)).to.deep.equal([]); + expect(normalizePreserveFiles(["!private/", "paper/"])).to.deep.equal(["!private/", "paper/"]); + expect(normalizePreserveFiles(["/refs.bib", "!private.bib", "/a\\{b\\}"])).to.deep.equal(["/refs.bib", "!private.bib", "/a\\{b\\}"]); + }); + + it("rejects invalid input", function () { + expect(normalizePreserveFiles("refs.bib")).to.equal(null); + expect(normalizePreserveFiles([1])).to.equal(null); + expect(normalizePreserveFiles(["//x"])).to.equal(null); + expect(normalizePreserveFiles(["/"])).to.equal(null); + expect(normalizePreserveFiles(["../x"])).to.equal(null); + expect(normalizePreserveFiles(["!"])).to.equal(null); + expect(normalizePreserveFiles(["!/"])).to.equal(null); + expect(normalizePreserveFiles(["//"])).to.equal(null); + expect(normalizePreserveFiles(["!../x"])).to.equal(null); + expect(normalizePreserveFiles(["x".repeat(513)])).to.equal(null); + expect(normalizePreserveFiles(Array.from({ length: 201 }, (_, i) => `f${i}`))).to.equal(null); + }); + }); + + describe("AnonymizeTransformer", function () { + const bib = "@article{smith2024, author = {Jane Smith}}"; + + it("leaves matching files unredacted", async function () { + const out = await run({ filePath: "paper/refs.bib", terms: ["Smith"], preserveFiles: ["*.bib"] }, bib); + expect(out).to.equal(bib); + }); + + it("still redacts files that do not match", async function () { + const out = await run({ filePath: "paper/main.tex", terms: ["Smith"], preserveFiles: ["*.bib"] }, "by Jane Smith"); + expect(out).to.equal("by Jane XXXX-1"); + }); + + it("keeps the full options for re-evaluation downstream", function () { + const t = new AnonymizeTransformer({ filePath: "refs.bib", terms: ["Smith"], preserveFiles: ["refs.bib"] }); + expect(t.opt.terms).to.deep.equal(["Smith"]); + }); + }); + + it("changes cache keys when the pattern list changes", function () { + const base = { filePath: "refs.bib", terms: ["Smith"] }; + expect(decisionKey("d", { ...base, preserveFiles: [] })) + .to.not.equal(decisionKey("d", { ...base, preserveFiles: ["refs.bib"] })); + }); +}); diff --git a/test/source-file-list.test.js b/test/source-file-list.test.js new file mode 100644 index 0000000..64a0ca2 --- /dev/null +++ b/test/source-file-list.test.js @@ -0,0 +1,57 @@ +const { expect } = require("chai"); +require("ts-node/register/transpile-only"); +const GitHubUtils = require("../src/core/GitHubUtils"); +const { sourceFileList, SOURCE_FILE_LIST_LIMIT } = require("../src/core/source-file-list"); + +describe("sourceFileList (#941)", function () { + const original = GitHubUtils.octokit; + let response; + let request; + beforeEach(() => { + GitHubUtils.octokit = () => ({ + repos: { getCommit: async ({ ref }) => ({ data: { sha: ref.padEnd(40, "0") } }) }, + git: { getTree: async (params) => { + request = params; + if (response instanceof Error) throw response; + return { data: response }; + } }, + }); + }); + afterEach(() => { GitHubUtils.octokit = original; }); + + const opt = { owner: "o", repo: "r", commit: "a".repeat(40), accessToken: "t" }; + + it("lists text files of the commit, sorted, without folders, submodules or binaries", async function () { + response = { truncated: false, tree: [ + { type: "tree", path: "paper" }, + { type: "blob", path: "paper/refs.bib" }, + { type: "blob", path: "README.md" }, + { type: "blob", path: "fig.png" }, + { type: "blob", path: ".gitmodules" }, + { type: "commit", path: "vendor/lib" }, + ] }; + expect(await sourceFileList(opt)).to.deep.equal({ files: ["README.md", "paper/refs.bib"], truncated: false }); + expect(request).to.include({ owner: "o", repo: "r", tree_sha: "a".repeat(40), recursive: "true" }); + }); + + it("resolves an abbreviated commit hash before reading the tree", async function () { + response = { truncated: false, tree: [] }; + await sourceFileList({ ...opt, commit: "abc123" }); + expect(request.tree_sha).to.equal("abc123".padEnd(40, "0")); + }); + + it("reports GitHub truncation and caps the list", async function () { + response = { truncated: true, tree: [{ type: "blob", path: "a.txt" }] }; + expect((await sourceFileList(opt)).truncated).to.equal(true); + response = { truncated: false, tree: Array.from({ length: SOURCE_FILE_LIST_LIMIT + 1 }, (_, i) => ({ type: "blob", path: `f${i}.txt` })) }; + const capped = await sourceFileList(opt); + expect(capped.files).to.have.length(SOURCE_FILE_LIST_LIMIT); + expect(capped.truncated).to.equal(true); + }); + + it("maps a missing repository or commit to repo_not_found", async function () { + response = Object.assign(new Error("Not Found"), { status: 404 }); + try { await sourceFileList(opt); expect.fail("should throw"); } + catch (error) { expect(error.message).to.equal("repo_not_found"); } + }); +}); diff --git a/test/term-hints.test.js b/test/term-hints.test.js new file mode 100644 index 0000000..201d1eb --- /dev/null +++ b/test/term-hints.test.js @@ -0,0 +1,31 @@ +const { expect } = require("chai"); +require("ts-node/register/transpile-only"); +const { termHints, escapeTermLine } = require("../src/core/term-hints"); + +describe("term hints", function () { + it("ignores dots, hyphens and emails", function () { + expect(termHints("mchen-research\nhartwell.edu\nmaya.chen@cs.example.edu\nA, B #1")).to.deep.equal([]); + }); + + it("flags symbols that change what a term matches", function () { + expect(termHints("Maya Chen\nSmith (MIT)\nC++")).to.deep.equal([ + { line: 1, term: "Smith (MIT)", symbols: ["(", ")"] }, + { line: 2, term: "C++", symbols: ["+"] }, + ]); + }); + + it("skips escaped symbols and the replacement side", function () { + expect(termHints("Smith \\(MIT\\)\nAnon=>A (B)")).to.deep.equal([]); + }); + + it("escapes one line and keeps its replacement", function () { + expect(escapeTermLine("a\nSmith (MIT).x=>Anon (1)\nb", 1)).to.equal("a\nSmith \\(MIT\\)\\.x=>Anon (1)\nb"); + expect(escapeTermLine("C\\+\\+ +", 0)).to.equal("C\\+\\+ \\+"); + }); + + it("inserts terms containing $ sequences literally", function () { + expect(escapeTermLine("a$&b (x)", 0)).to.equal("a\\$&b \\(x\\)"); + expect(escapeTermLine(" $'(y)=>z", 0)).to.equal(" \\$'\\(y\\)=>z"); + expect(escapeTermLine("$1+", 0)).to.equal("\\$1\\+"); + }); +});