Repository: Clinical-Genomics/scout
Pull request #5343: dark docs
Author: login: dnil
Created: 2025-03-21T13:25:19Z | Merged: 2025-03-21T15:05:47Z

This PR adds a functionality:
- Fix #5340 

![Screenshot 2025-03-21 at 14 24 07](https://github.com/user-attachments/assets/de252474-6eba-42ca-bca4-7e26ad1d6921)
![Screenshot 2025-03-21 at 14 48 44](https://github.com/user-attachments/assets/6bd0edd5-b4a9-49c4-b0b0-8cbda115f419)


<details>
<summary>Testing on cg-vm1 server (Clinical Genomics Stockholm)</summary>

**Prepare for testing**
1. Make sure the PR is pushed and available on [Docker Hub](https://hub.docker.com/repository/docker/clinicalgenomics/scout-server-stage)
1. Fist book your testing time using the Pax software available at [https://pax.scilifelab.se/](https://pax.scilifelab.se). The resource you are going to call dibs on is `scout-stage` and the server is `cg-vm1`.
1. `ssh <USER.NAME>@cg-vm1.scilifelab.se`
1. `sudo -iu hiseq.clinical`
1. `ssh localhost`
1. (optional) Find out which scout branch is currently deployed on cg-vm1: `podman ps`
1. Stop the service with current deployed branch: `systemctl --user stop scout.target`
1. Start the scout service with the branch to test: `systemctl --user start scout@<this_branch>`
1. Make sure the branch is deployed: `systemctl --user status scout.target`
1. After testing is done, repeat procedure at [https://pax.scilifelab.se/](https://pax.scilifelab.se), which will release the allocated resource (`scout-stage`) to be used for testing by other users.
</details>

<details>
<summary>Testing on hasta server (Clinical Genomics Stockholm)</summary>

**Prepare for testing**
1. `ssh <USER.NAME>@hasta.scilifelab.se`
1. Book your testing time using the Pax software. `us; paxa -u <user> -s hasta -r scout-stage`. You can also use the WSGI Pax app available at [https://pax.scilifelab.se/](https://pax.scilifelab.se).
1. (optional) Find out which scout branch is currently deployed on cg-vm1: `conda activate S_scout; pip freeze | grep scout-browser`
1. Deploy the branch to test: `bash /home/proj/production/servers/resources/hasta.scilifelab.se/update-tool-stage.sh -e S_scout -t scout -b <this_branch>`
1. Make sure the branch is deployed: `us; scout --version`
1. After testing is done, repeat the `paxa` procedure, which will release the allocated resource (`scout-stage`) to be used for testing by other users.
</details>


**How to test**:
1. how to test it, possibly with real cases/data

**Expected outcome**:
The functionality should be working
Take a screenshot and attach or copy/paste the output.

**Review:**
- [ ] code approved by
- [ ] tests executed by


Linked issue #5340: Dark mode for documentation
Currently the documentation is only available in eye-irritating light mode. 😁 


Diff:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index abf29a15b6..2b237a42c2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -20,6 +20,7 @@ About changelog [here](https://keepachangelog.com/en/1.0.0/)
 - Mocked the Ensembl liftover service in igv tracks tests (#5319)
 - Refactored the login function into smaller functions, handling respectively: user consent, LDAP login, Google login, database login and user validation (#5331)
 - Allow loading of mixed analysis type cases where some individuals are fully WTS and do not appear in DNA VCFs (#5327)
+- Documentation available in dark mode, and expanded installation instructions (#5343)
 ### Fixed
 - Re-enable display of case and individual specific tracks (pre-computed coverage, UPD, zygosity) (#5300)
 - Disable 2-color mode in IGV.js by default, since it obscures variant proportion of reads. Can be manually enabled (#5311)
@@ -30,6 +31,7 @@ About changelog [here](https://keepachangelog.com/en/1.0.0/)
 - Refactored the liftover functionality to avoid using the old Ensembl REST API (#5326)
 
 
+
 ## [4.98]
 ### Added
 - Documentation on how to delete variants for one or more cases
diff --git a/README.md b/README.md
index 6cf555003d..aaa68643bc 100644
--- a/README.md
+++ b/README.md
@@ -50,29 +50,25 @@ Instructions on how to run a Scout image connected to your local database or a c
 
 ## Installation
 
-<!-- You can install the latest release of Scout using `pip`:
-
-```bash
-pip install scout-browser
-
-# ... to include optional coverage tools you would use:
-pip install scout-browser[coverage]
-```
-
-If you would like to install Scout for local development: -->
+Here is a quick start. Please see e.g. the [Installation instructions](docs/install.md) for more details.
 
 ```bash
 git clone https://github.com/Clinical-Genomics/scout
 cd scout
-pip install --editable .
 ```
 
-Scout is configured to use `uv` if you like; either run, install, install as a tool or
-```
+Scout is configured to use `uv`; either run, install, or install as a tool.
+
+```bash
 uv sync --frozen
 uv run scout
 ```
 
+You can also install using pip:
+
+```
+pip install --editable .
+```
 
 Scout PDF reports are created using [Flask-WeasyPrint](https://pythonhosted.org/Flask-WeasyPrint/). This library requires external dependencies which need be installed separately (namely Cairo and Pango). See platform-specific instructions for Linux, macOS and Windows available on the WeasyPrint installation [pages](https://doc.courtbouillon.org/weasyprint/stable/first_steps.html#installation).
 
diff --git a/docs/faq.md b/docs/faq.md
index a454b67a40..b590bf094a 100644
--- a/docs/faq.md
+++ b/docs/faq.md
@@ -8,4 +8,18 @@ one account, it will automatically be used when you click "Login with Google".
 Visit [Google][google] and click your avatar in the top right corner and "Add account" and log with your Scout connected account. Next time you access Scout you will be presented with an option of which Google account to use.
 
 
+## What should my VCF format look like in detail?
+
+Scout will work to some degree with many a generic (ideally VEP annotated) VCF as input, but, if you have a choice, for best results out of the box, use an already well integrated pipeline.
+The most well tested pipelines for Scout viewing currently are [MIP](https://github.com/Clinical-Genomics/MIP) (RD SR) or [Nextflow-wgs](https://github.com/Clinical-Genomics-Lund/nextflow_wgs) (RD SR),
+[Balsamic](https://github.com/Clinical-Genomics/BALSAMIC) (somatic), [nf-core/RNAfusion](https://github.com/nf-core/rnafusion) (RNA fusion) and [tomte](https://github.com/genomic-medicine-sweden/tomte) (RNA expression)
+We fully support [nf-core/raredisease](https://github.com/nf-core/raredisease) and [nf-core/Nallo](https://github.com/genomic-medicine-sweden/nallo) (RD LRS). We also
+have compatibility with at least earlier versions of other pipelines e.g. [sarek](https://github.com/nf-core/sarek) (somatic) and [poorpipe](https://github.com/J35P312/poorpipe) (RD LRS).
+
+To use the full features of Scout, try to load pre-ranked variants (see [genmod](https://github.com/Clinical-Genomics/genmod)).
+An important take home for variant triage, especially of SVs, is that you need to get good local database frequency annotation going. We use [SVDB](https://github.com/J35P312/SVDB) and/or [loqusdb](https://github.com/Clinical-Genomics/loqusdb).
+
+Say hi to the developers in a GitHub issue or discussion, describe your pipeline and situation and we may be able to direct you.
+
+
 [google]: https://www.google.com
diff --git a/docs/install.md b/docs/install.md
index 135622a10d..9b1edfc834 100644
--- a/docs/install.md
+++ b/docs/install.md
@@ -9,34 +9,53 @@ Make sure you have a `mongod` process running. First install [mongodb][mongodb]
 
 
 ## 1. Install
-Installation of Scout is possible via pip or GitHub.
+Installation of Scout is possible via PyPi, GitHub or Dockerhub.
 Let's start by pulling down the GitHub repository with the source code.
 
 ### GitHub
 
+Use `git` to clone from [GitHub](https://github.com/Clinical-Genomics/scout), either the `https` or `ssh` route.
+Scout is configured to use `uv`: either run, install, or install as a tool.
 
 ```bash
 git clone https://github.com/Clinical-Genomics/scout
 cd scout
-pip install --requirement requirements.txt --editable .
+
+uv sync --frozen
+uv run scout
+```
+Or if you rather, the project definition is compatible with pip, so instead of the `uv` statement above you can just
+
+```
+pip install --editable .
 ```
 
 ### Pip
 
-To get the latest version, use the above. When using pip the latest stable release will be installed.
+To get the latest development (`main`) version, use the above. When using pip the latest stable release will be installed.
 
 ```bash
 pip install scout-browser
 ```
 
 
-<!-- ## 2. Configure
-You need to sign up for access to a few web APIs like Google OAuth and
-OMIM to make full use of Scout. The keys and secrets should be added to
+## 2. Configure
+In order to make full use of Scout, you will want to integrate with both external resources and a number of available extensions,
+e.g. `chanjo` for coverage analysis and `gens` for seamless visualisation and triage of larger CNVs.
+
+You will want to sign up for access to a few web APIs like Google OAuth and
+OMIM. The keys and secrets should be added to
 the Flask instance config. To learn more about possible settings, take a
 look in the ``scout/settings.py`` module.
 
-### Google OAuth
+
+### Autentication
+If you intend to use authentication, which you should, there are several options!
+
+OAuth2 via an ODIC provider (we have good experience with Google) or a KeyCloak server of you own. Scout also supports LDAP.
+See the [admin-guide][admin-guide] for details.
+
+#### Google OAuth
 Create a new project in your [Google Developer console][google-console].
 Under your project, click "APIs & auth" > "Credentials". Here you will
 find your "CLIENT ID" and "CLIENT SECRET". You also need to add some
@@ -66,40 +85,45 @@ account should work so you don't need to sign up for any special access.
 If you are using a password protected Mongo database you also need to add
 the authentication details to the instance config.
 
+## 2. Setup
 
-## 3. Boostrap
-We use gulp.js to compile the statis assets (CSS, JS, etc.)
-
-```bash
-$ gulp build --production
-```
-
+### Demo setup
 
-## 4. Develop
-You are now ready to start the development server and complete the setup
-in the admin interface.
+This option is used to quickly get a operating instance with some example data
 
-```bash
-$ python manage.py -c "$(pwd)/configs/boilerplate.cfg" vagrant
 ```
-
-That's it! Go and explore Scout. -->
-
-## 2. Setup
+scout setup demo
+scout --demo serve
+```
+The previous command setup the database with a truncated collection of gene definitions with links to OMIM along with HPO phenotype terms.
 
 ### Full setup
 
-To initialize a working instance with all genes, diseases etc run
+For more info, run `scout --help`!
+
+To initialize a working instance - a database where you store genes, diseases, cases, variants etc run
 
 ```bash
 scout setup database
 ```
+You will want to make sure you have a full complement of these genes, diseases etc before you start working on cases.
 
-for more info, run `scout --help`
+```
+scout download everything --api-key YOUR_OMIM_API_KEY
+scout update hpo --hpoterms hpo.obo --hpo-to-genes phenotype_to_genes.txt
+scout update diseases -f .
+scout update genes -f .
+```
 
-> If you intent to use authentication, make sure you are using a Google email!
+A common task is to have a couple of broad screening panels for rare disease genomics set up. We provide automation for two such in silico panels
+out of the box, one with OMIM morbid genes, and one with all PanelApp ``Green`` genes. Here you provide the name of an institute you created that
+will serve as responsible for these panels (`cust002` below):
+```
+scout update omim --institute cust002 --genemap2 genemap2.txt --mim2genes mim2genes.txt
+scout update panelapp-green -i cust002 --force
+```
 
-The previous command setup the database with a curated collection of gene definitions with links to OMIM along with HPO phenotype terms. Now we will load some example data. Scout expects the analysis to be accomplished using various gene panels so let's load one and then our first analysis case:
+For more information about populating and updating the database, please see [admin-guide][admin-guide].
 
 ```
 scout load panel scout/demo/panel_1.txt
@@ -107,21 +131,9 @@ scout load case scout/demo/643594.config.yaml
 ```
 
 
-For more information about populating the database, please see [admin-guide][admin-guide].
-
-### Demo
-
-This option is used to quickly get a operating instance with some example data
-
-```
-scout setup demo
-scout --demo serve
-```
-
 
 [google-console]: https://console.developers.google.com/project
 [omim-register]: http://omim.org/api
-[vagrant]: https://www.vagrantup.com/
 [mongodb]: https://docs.mongodb.com/manual/installation/
 [admin-guide]: admin-guide/README.md
 [containers]: admin-guide/containers/container-deploy.md
diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css
new file mode 100644
index 0000000000..5f3b51b335
--- /dev/null
+++ b/docs/stylesheets/extra.css
@@ -0,0 +1,15 @@
+[data-md-color-scheme="slate"][data-md-color-primary="black"] {
+    --md-cg-color:       27;
+    --md-typeset-a-color: hsl(var(--md-cg-color), 92%, 64%);
+    --md-default-fg-color--light: hsla(var(--md-cg-color), 92%, 56%, 1);
+
+}
+
+[data-md-color-scheme="slate"] {
+    --md-typeset-table-color: hsla(var(--md-cg-color), 92%, 64%, 0.24);
+}
+
+[data-md-color-accent="cg-accent"] {
+    --md-accent-fg-color:              hsla(var(--md-cg-color), 92%, 56%, 1);
+    --md-accent-fg-color--transparent: hsla(var(--md-cg-color), 92%, 60%, 0.1);
+}
diff --git a/mkdocs.yml b/mkdocs.yml
index c3df81fb8a..bc2f7982f6 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -22,9 +22,25 @@ theme:
   name: 'material'
   logo: 'img/logo-only.png'
   palette:
-    primary: 'blue grey'
-    accent: 'cyan'
+    # Palette toggle for light mode
+    - media: "(prefers-color-scheme: light)"
+      primary: 'blue grey'
+      accent: 'cyan'
+      toggle:
+          icon: material/toggle-switch
+          name: Switch to dark mode
 
+    # Palette toggle for dark mode
+    - media: "(prefers-color-scheme: dark)"
+      scheme: "slate"
+      primary: "black"
+      accent: "cg-accent"
+      toggle:
+          icon: material/toggle-switch-off-outline
+          name: Switch to light mode
+
+extra_css:
+    - stylesheets/extra.css
 
 nav:
   - Introduction: 'README.md'


Reviews:
user: login: northwestwitch
body: Nice! I'd expand more in the changelog, see suggestion
state: APPROVED
author_association: MEMBER
submitted_at: 2025-03-21T13:49:44Z

Review comments:
diff_hunk: @@ -50,29 +50,25 @@ Instructions on how to run a Scout image connected to your local database or a c
 
 ## Installation
 
-<!-- You can install the latest release of Scout using `pip`:
-
-```bash
-pip install scout-browser
-
-# ... to include optional coverage tools you would use:
-pip install scout-browser[coverage]
-```
-
-If you would like to install Scout for local development: -->
+Here is a quick start Please see the [Installation instructions](./docs/install.md) for more details.
 
 ```bash
 git clone https://github.com/Clinical-Genomics/scout
 cd scout
-pip install --editable .
 ```
 
-Scout is configured to use `uv` if you like; either run, install, install as a tool or
-```
+Scout is configured to use `uv`; either run, install, or install as a tool.
+
+```bash
 uv sync --frozen
 uv run scout
 ```
 
+You can also install using pip:
path: README.md
user: login: northwestwitch
body: 👍🏻 
created_at: 2025-03-21T13:32:25Z
author_association: MEMBER
diff_hunk: @@ -28,6 +28,7 @@ About changelog [here](https://keepachangelog.com/en/1.0.0/)
 - Avoid page timeout by skipping HGVS validations in ClinVar multistep submission for non-MANE transcripts from variants in build 38 (#5302)
 - Sashimi view page displaying an error message when Ensembl REST API (LiftOver) is not available (#5322)
 - Refactored the liftover functionality to avoid using the old Ensembl REST API (#5326)
+- Documentation available in dark mode (#5343)
path: CHANGELOG.md
user: login: northwestwitch
body: This is not really a fix, more like something added? Also mention that you improved the software installation instructions (this is more like a change)
created_at: 2025-03-21T13:45:18Z
author_association: MEMBER
diff_hunk: @@ -9,34 +9,53 @@ Make sure you have a `mongod` process running. First install [mongodb][mongodb]
 
 
 ## 1. Install
-Installation of Scout is possible via pip or GitHub.
+Installation of Scout is possible via PyPi, GitHub or Dockerhub.
 Let's start by pulling down the GitHub repository with the source code.
 
 ### GitHub
 
+Use `git` to clone from [GitHub](https://github.com/Clinical-Genomics/scout), either the `https` or `ssh` route.
+Scout is configured to use `uv`: either run, install, or install as a tool.
 
 ```bash
 git clone https://github.com/Clinical-Genomics/scout
 cd scout
-pip install --requirement requirements.txt --editable .
+
+uv sync --frozen
+uv run scout
+```
+Or if you rather, the project definition is compatible with pip, so instead of the `uv` statement above you can just
+
+```
+pip install --editable .
 ```
 
 ### Pip
 
-To get the latest version, use the above. When using pip the latest stable release will be installed.
+To get the latest development (`main`) version, use the above. When using pip the latest stable release will be installed.
 
 ```bash
 pip install scout-browser
 ```
 
 
-<!-- ## 2. Configure
-You need to sign up for access to a few web APIs like Google OAuth and
-OMIM to make full use of Scout. The keys and secrets should be added to
+## 2. Configure
+In order to make full use of Scout, you will want to integrate with both external resources and a number of available extensions,
+e.g. `chanjo` for coverage analysis and `gens` for seamless visualisation and triage of larger CNVs.
+
+You will want to sign up for access to a few web APIs like Google OAuth and
+OMIM. The keys and secrets should be added to
 the Flask instance config. To learn more about possible settings, take a
 look in the ``scout/settings.py`` module.
 
-### Google OAuth
+
+### Autentication
+If you intend to use authentication, which you should, there are several options!
+
+OAuth2 via an ODIC provider (we have good experience with Google) or a KeyCloak server of you own. Scout also supports LDAP.
path: docs/install.md
user: login: northwestwitch
body: 👍🏻 
created_at: 2025-03-21T13:47:03Z
author_association: MEMBER
diff_hunk: @@ -66,62 +85,58 @@ account should work so you don't need to sign up for any special access.
 If you are using a password protected Mongo database you also need to add
 the authentication details to the instance config.
 
+## 2. Setup
 
-## 3. Boostrap
-We use gulp.js to compile the statis assets (CSS, JS, etc.)
-
-```bash
-$ gulp build --production
-```
-
+### Demo setup
 
-## 4. Develop
-You are now ready to start the development server and complete the setup
-in the admin interface.
+This option is used to quickly get a operating instance with some example data
 
-```bash
-$ python manage.py -c "$(pwd)/configs/boilerplate.cfg" vagrant
 ```
-
-That's it! Go and explore Scout. -->
-
-## 2. Setup
+scout setup demo
+scout --demo serve
+```
+The previous command setup the database with a truncated collection of gene definitions with links to OMIM along with HPO phenotype terms.
 
 ### Full setup
 
-To initialize a working instance with all genes, diseases etc run
+For more info, run `scout --help`!
+
+To initialize a working instance - a database where you store genes, diseases, cases, variants etc run
 
 ```bash
 scout setup database
 ```
+You will want to make sure you have a full complement of these genes, diseases etc before you start working on cases.
 
-for more info, run `scout --help`
+```
+scout download everything --api-key YOUR_OMIM_API_KEY
+scout update hpo --hpoterms hpo.obo --hpo-to-genes phenotype_to_genes.txt
+scout update diseases -f .
+scout update genes -f .
path: docs/install.md
user: login: northwestwitch
body: Nice!
created_at: 2025-03-21T13:47:45Z
author_association: MEMBER

PR comments:
user: login: northwestwitch
created_at: 2025-03-21T13:36:38Z
body: Assign me when you are done with this one!
author_association: MEMBER
user: login: dnil
created_at: 2025-03-21T13:42:22Z
body: Thank you; I think I'm good - just keeping fixing things I see while looking. Should probably stop. 😁 Merging changes now.. 
author_association: MEMBER
user: login: codecov[bot]
created_at: 2025-03-21T14:01:46Z
body: ## [Codecov](https://app.codecov.io/gh/Clinical-Genomics/scout/pull/5343?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Clinical-Genomics) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Project coverage is 84.53%. Comparing base [(`8df1793`)](https://app.codecov.io/gh/Clinical-Genomics/scout/commit/8df179316365d89a1518b78529fe9a8ca673e132?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Clinical-Genomics) to head [(`ce0f703`)](https://app.codecov.io/gh/Clinical-Genomics/scout/commit/ce0f703d7d633ce97d9aa95286b546a358fbed77?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Clinical-Genomics).
> Report is 1 commits behind head on main.

<details><summary>Additional details and impacted files</summary>


```diff
@@           Coverage Diff           @@
##             main    #5343   +/-   ##
=======================================
  Coverage   84.53%   84.53%           
=======================================
  Files         326      326           
  Lines       19999    19999           
=======================================
  Hits        16907    16907           
  Misses       3092     3092           
```

</details>

[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/Clinical-Genomics/scout/pull/5343?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Clinical-Genomics).   
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Clinical-Genomics).

<details><summary> :rocket: New features to boost your workflow: </summary>

- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
- :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
</details>
author_association: NONE
user: login: sonarqubecloud[bot]
created_at: 2025-03-21T14:15:35Z
body: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=Clinical-Genomics_scout&pullRequest=5343) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=Clinical-Genomics_scout&pullRequest=5343&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=Clinical-Genomics_scout&pullRequest=5343&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=Clinical-Genomics_scout&pullRequest=5343&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=Clinical-Genomics_scout&pullRequest=5343&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=Clinical-Genomics_scout&pullRequest=5343&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=Clinical-Genomics_scout&pullRequest=5343)


author_association: NONE