R Notebook: Provides reproducible analysis for Thaw Duration Correlation data in the following manuscript:

Citation: Romanowicz KJ and Kling GW. (In Press) Summer thaw duration is a strong predictor of the soil microbiome and its response to permafrost thaw in arctic tundra. Environmental Microbiology. https://doi.org/10.1111/1462-2920.16218

GitHub Repository: https://github.com/kromanowicz/2022-Annual-Thaw-Microbes

NCBI BioProject: https://www.ncbi.nlm.nih.gov/bioproject/?term=PRJNA794857

Accepted for Publication: 22 September 2022 Environmental Microbiology

Experiment

This R Notebook provides complete reproducibility of the data analysis presented in “Summer thaw duration is a strong predictor of the soil microbiome and its response to permafrost thaw in arctic tundra” by Romanowicz and Kling.

This pipeline calculates correlations between the relative abundance of microbial taxa at the phylum-level with soil chemistry variables or annual thaw duration by soil depth.

# Make a vector of required packages
required.packages <- c("corrr","data.table","devtools","dplyr","forcats","ggalluvial","ggdendro","ggplot2","ggpubr","grid","gridExtra","knitr","magrittr","microeco","patchwork","pheatmap","pvclust","qiime2R","RColorBrewer","tidyr","UpSetR","vegan")

# Load required packages
lapply(required.packages, library, character.only = TRUE)

Correlations

Correlation analysis uses non-parametric Spearman Rank Correlations to overcome the lack of normally distributed data. Examples of normality (or lack thereof) within the data are provided in the “Normality Check” section of this workbook.

Toolik MAT

Thaw Days: Taxa

TTT Thaw Probability Correlations – Soil Chemistry and Taxonomy

ttt.data.corr<-read.csv("QIIME/SILVA/R_Data/ttt.data.corr.csv")

# Convert first column to row names
rownames(ttt.data.corr)<-ttt.data.corr[,1]
ttt.data.corr<-ttt.data.corr[,-1]

“Thaw Days” as well as many taxa have non-normal distributions. Use Spearman’s correlation as a non-parametric statistical analysis to overcome lack of normality.

# Spearman Correlation Tests between Thaw Days and Taxonomy
cor.test(ttt.data.corr$Thaw_Days, ttt.data.corr$Acidobacteriota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$Thaw_Days and ttt.data.corr$Acidobacteriota
S = 11.928, p-value = 0.0009239
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.9006029 
cor.test(ttt.data.corr$Thaw_Days, ttt.data.corr$Actinobacteriota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$Thaw_Days and ttt.data.corr$Actinobacteriota
S = 234.37, p-value = 7.043e-05
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.9530652 
cor.test(ttt.data.corr$Thaw_Days, ttt.data.corr$Bacteroidota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$Thaw_Days and ttt.data.corr$Bacteroidota
S = 223.88, p-value = 0.002561
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.8656281 
cor.test(ttt.data.corr$Thaw_Days, ttt.data.corr$Caldisericota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$Thaw_Days and ttt.data.corr$Caldisericota
S = 229.59, p-value = 0.0005811
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.9132515 
cor.test(ttt.data.corr$Thaw_Days, ttt.data.corr$Chloroflexi, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$Thaw_Days and ttt.data.corr$Chloroflexi
S = 135.74, p-value = 0.7366
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.1311558 
cor.test(ttt.data.corr$Thaw_Days, ttt.data.corr$Desulfobacterota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$Thaw_Days and ttt.data.corr$Desulfobacterota
S = 196.59, p-value = 0.06432
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.6382914 
cor.test(ttt.data.corr$Thaw_Days, ttt.data.corr$Firmicutes, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$Thaw_Days and ttt.data.corr$Firmicutes
S = 225.97, p-value = 0.001601
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.8831155 
cor.test(ttt.data.corr$Thaw_Days, ttt.data.corr$Gemmatimonadota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$Thaw_Days and ttt.data.corr$Gemmatimonadota
S = 114.75, p-value = 0.9111
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
0.04371859 
cor.test(ttt.data.corr$Thaw_Days, ttt.data.corr$Myxococcota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$Thaw_Days and ttt.data.corr$Myxococcota
S = 21.371, p-value = 0.006563
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.8219095 
cor.test(ttt.data.corr$Thaw_Days, ttt.data.corr$Patescibacteria, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$Thaw_Days and ttt.data.corr$Patescibacteria
S = 165.12, p-value = 0.3186
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.3759799 
cor.test(ttt.data.corr$Thaw_Days, ttt.data.corr$Planctomycetota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$Thaw_Days and ttt.data.corr$Planctomycetota
S = 7.7307, p-value = 0.0002097
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.9355778 
cor.test(ttt.data.corr$Thaw_Days, ttt.data.corr$Verrucomicrobiota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$Thaw_Days and ttt.data.corr$Verrucomicrobiota
S = 8.7799, p-value = 0.0003246
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.9268341 
cor.test(ttt.data.corr$Thaw_Days, ttt.data.corr$Alphaproteobacteria, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$Thaw_Days and ttt.data.corr$Alphaproteobacteria
S = 5.6322, p-value = 7.043e-05
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.9530652 
cor.test(ttt.data.corr$Thaw_Days, ttt.data.corr$Gammaproteobacteria, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$Thaw_Days and ttt.data.corr$Gammaproteobacteria
S = 43.405, p-value = 0.06432
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.6382914 
cor.test(ttt.data.corr$Thaw_Days, ttt.data.corr$Archaea, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$Thaw_Days and ttt.data.corr$Archaea
S = 231.22, p-value = 0.0003246
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.9268341 

Soil Chem: Taxa

Use Spearman’s correlation for soil chemistry variables and taxa.

# Correlation Tests between pH and Taxonomy
cor.test(ttt.data.corr$pH, ttt.data.corr$Acidobacteriota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$pH and ttt.data.corr$Acidobacteriota
S = 200.34, p-value = 0.04857
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.6694619 
cor.test(ttt.data.corr$pH, ttt.data.corr$Actinobacteriota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$pH and ttt.data.corr$Actinobacteriota
S = 25.606, p-value = 0.01191
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.7866178 
cor.test(ttt.data.corr$pH, ttt.data.corr$Bacteroidota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$pH and ttt.data.corr$Bacteroidota
S = 4.5178, p-value = 3.286e-05
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.9623515 
cor.test(ttt.data.corr$pH, ttt.data.corr$Caldisericota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$pH and ttt.data.corr$Caldisericota
S = 29.799, p-value = 0.01951
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.7516724 
cor.test(ttt.data.corr$pH, ttt.data.corr$Chloroflexi, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$pH and ttt.data.corr$Chloroflexi
S = 98.912, p-value = 0.6511
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.1757338 
cor.test(ttt.data.corr$pH, ttt.data.corr$Desulfobacterota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$pH and ttt.data.corr$Desulfobacterota
S = 33.639, p-value = 0.02882
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.7196716 
cor.test(ttt.data.corr$pH, ttt.data.corr$Firmicutes, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$pH and ttt.data.corr$Firmicutes
S = 37.656, p-value = 0.04124
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.6861985 
cor.test(ttt.data.corr$pH, ttt.data.corr$Gemmatimonadota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$pH and ttt.data.corr$Gemmatimonadota
S = 92.887, p-value = 0.5588
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.2259434 
cor.test(ttt.data.corr$pH, ttt.data.corr$Myxococcota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$pH and ttt.data.corr$Myxococcota
S = 200.34, p-value = 0.04857
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.6694619 
cor.test(ttt.data.corr$pH, ttt.data.corr$Patescibacteria, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$pH and ttt.data.corr$Patescibacteria
S = 58.744, p-value = 0.1603
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.5104647 
cor.test(ttt.data.corr$pH, ttt.data.corr$Planctomycetota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$pH and ttt.data.corr$Planctomycetota
S = 207.36, p-value = 0.02615
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.7280398 
cor.test(ttt.data.corr$pH, ttt.data.corr$Verrucomicrobiota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$pH and ttt.data.corr$Verrucomicrobiota
S = 201.34, p-value = 0.04481
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.6778302 
cor.test(ttt.data.corr$pH, ttt.data.corr$Alphaproteobacteria, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$pH and ttt.data.corr$Alphaproteobacteria
S = 205.36, p-value = 0.03166
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.7113033 
cor.test(ttt.data.corr$pH, ttt.data.corr$Gammaproteobacteria, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$pH and ttt.data.corr$Gammaproteobacteria
S = 181.26, p-value = 0.1603
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.5104647 
cor.test(ttt.data.corr$pH, ttt.data.corr$Archaea, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$pH and ttt.data.corr$Archaea
S = 22.593, p-value = 0.007889
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.8117226 
# Correlation Tests between EC and Taxonomy
cor.test(ttt.data.corr$EC, ttt.data.corr$Acidobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$EC and ttt.data.corr$Acidobacteriota
S = 114, p-value = 0.9116
alternative hypothesis: true rho is not equal to 0
sample estimates:
 rho 
0.05 
cor.test(ttt.data.corr$EC, ttt.data.corr$Actinobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$EC and ttt.data.corr$Actinobacteriota
S = 122, p-value = 0.9816
alternative hypothesis: true rho is not equal to 0
sample estimates:
        rho 
-0.01666667 
cor.test(ttt.data.corr$EC, ttt.data.corr$Bacteroidota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$EC and ttt.data.corr$Bacteroidota
S = 156, p-value = 0.4366
alternative hypothesis: true rho is not equal to 0
sample estimates:
 rho 
-0.3 
cor.test(ttt.data.corr$EC, ttt.data.corr$Caldisericota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$EC and ttt.data.corr$Caldisericota
S = 91.799, p-value = 0.5427
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.2350048 
cor.test(ttt.data.corr$EC, ttt.data.corr$Chloroflexi, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$EC and ttt.data.corr$Chloroflexi
S = 236, p-value = 0.0001653
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.9666667 
cor.test(ttt.data.corr$EC, ttt.data.corr$Desulfobacterota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$EC and ttt.data.corr$Desulfobacterota
S = 106, p-value = 0.7756
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.1166667 
cor.test(ttt.data.corr$EC, ttt.data.corr$Firmicutes, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$EC and ttt.data.corr$Firmicutes
S = 104, p-value = 0.7435
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.1333333 
cor.test(ttt.data.corr$EC, ttt.data.corr$Gemmatimonadota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$EC and ttt.data.corr$Gemmatimonadota
S = 210, p-value = 0.02549
alternative hypothesis: true rho is not equal to 0
sample estimates:
  rho 
-0.75 
cor.test(ttt.data.corr$EC, ttt.data.corr$Myxococcota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$EC and ttt.data.corr$Myxococcota
S = 100, p-value = 0.6777
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.1666667 
cor.test(ttt.data.corr$EC, ttt.data.corr$Patescibacteria, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$EC and ttt.data.corr$Patescibacteria
S = 190, p-value = 0.108
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.5833333 
cor.test(ttt.data.corr$EC, ttt.data.corr$Planctomycetota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$EC and ttt.data.corr$Planctomycetota
S = 120, p-value = 1
alternative hypothesis: true rho is not equal to 0
sample estimates:
rho 
  0 
cor.test(ttt.data.corr$EC, ttt.data.corr$Verrucomicrobiota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$EC and ttt.data.corr$Verrucomicrobiota
S = 110, p-value = 0.8432
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
0.08333333 
cor.test(ttt.data.corr$EC, ttt.data.corr$Alphaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$EC and ttt.data.corr$Alphaproteobacteria
S = 100, p-value = 0.6777
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.1666667 
cor.test(ttt.data.corr$EC, ttt.data.corr$Gammaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$EC and ttt.data.corr$Gammaproteobacteria
S = 148, p-value = 0.5517
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.2333333 
cor.test(ttt.data.corr$EC, ttt.data.corr$Archaea, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$EC and ttt.data.corr$Archaea
S = 124, p-value = 0.9484
alternative hypothesis: true rho is not equal to 0
sample estimates:
        rho 
-0.03333333 
# Correlation Tests between GWC and Taxonomy
cor.test(ttt.data.corr$GWC, ttt.data.corr$Acidobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$GWC and ttt.data.corr$Acidobacteriota
S = 142, p-value = 0.6436
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.1833333 
cor.test(ttt.data.corr$GWC, ttt.data.corr$Actinobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$GWC and ttt.data.corr$Actinobacteriota
S = 148, p-value = 0.5517
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.2333333 
cor.test(ttt.data.corr$GWC, ttt.data.corr$Bacteroidota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$GWC and ttt.data.corr$Bacteroidota
S = 150, p-value = 0.5206
alternative hypothesis: true rho is not equal to 0
sample estimates:
  rho 
-0.25 
cor.test(ttt.data.corr$GWC, ttt.data.corr$Caldisericota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$GWC and ttt.data.corr$Caldisericota
S = 122.09, p-value = 0.9645
alternative hypothesis: true rho is not equal to 0
sample estimates:
        rho 
-0.01740777 
cor.test(ttt.data.corr$GWC, ttt.data.corr$Chloroflexi, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$GWC and ttt.data.corr$Chloroflexi
S = 196, p-value = 0.07604
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.6333333 
cor.test(ttt.data.corr$GWC, ttt.data.corr$Desulfobacterota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$GWC and ttt.data.corr$Desulfobacterota
S = 88, p-value = 0.4933
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.2666667 
cor.test(ttt.data.corr$GWC, ttt.data.corr$Firmicutes, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$GWC and ttt.data.corr$Firmicutes
S = 116, p-value = 0.9484
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
0.03333333 
cor.test(ttt.data.corr$GWC, ttt.data.corr$Gemmatimonadota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$GWC and ttt.data.corr$Gemmatimonadota
S = 220, p-value = 0.008267
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.8333333 
cor.test(ttt.data.corr$GWC, ttt.data.corr$Myxococcota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$GWC and ttt.data.corr$Myxococcota
S = 104, p-value = 0.7435
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.1333333 
cor.test(ttt.data.corr$GWC, ttt.data.corr$Patescibacteria, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$GWC and ttt.data.corr$Patescibacteria
S = 202, p-value = 0.05032
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.6833333 
cor.test(ttt.data.corr$GWC, ttt.data.corr$Planctomycetota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$GWC and ttt.data.corr$Planctomycetota
S = 96, p-value = 0.6134
alternative hypothesis: true rho is not equal to 0
sample estimates:
rho 
0.2 
cor.test(ttt.data.corr$GWC, ttt.data.corr$Verrucomicrobiota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$GWC and ttt.data.corr$Verrucomicrobiota
S = 126, p-value = 0.9116
alternative hypothesis: true rho is not equal to 0
sample estimates:
  rho 
-0.05 
cor.test(ttt.data.corr$GWC, ttt.data.corr$Alphaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$GWC and ttt.data.corr$Alphaproteobacteria
S = 110, p-value = 0.8432
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
0.08333333 
cor.test(ttt.data.corr$GWC, ttt.data.corr$Gammaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$GWC and ttt.data.corr$Gammaproteobacteria
S = 120, p-value = 1
alternative hypothesis: true rho is not equal to 0
sample estimates:
rho 
  0 
cor.test(ttt.data.corr$GWC, ttt.data.corr$Archaea, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$GWC and ttt.data.corr$Archaea
S = 132, p-value = 0.81
alternative hypothesis: true rho is not equal to 0
sample estimates:
 rho 
-0.1 
# Correlation Tests between TOC and Taxonomy
cor.test(ttt.data.corr$OC, ttt.data.corr$Acidobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$OC and ttt.data.corr$Acidobacteriota
S = 134, p-value = 0.7756
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.1166667 
cor.test(ttt.data.corr$OC, ttt.data.corr$Actinobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$OC and ttt.data.corr$Actinobacteriota
S = 140, p-value = 0.6777
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.1666667 
cor.test(ttt.data.corr$OC, ttt.data.corr$Bacteroidota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$OC and ttt.data.corr$Bacteroidota
S = 162, p-value = 0.3586
alternative hypothesis: true rho is not equal to 0
sample estimates:
  rho 
-0.35 
cor.test(ttt.data.corr$OC, ttt.data.corr$Caldisericota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  ttt.data.corr$OC and ttt.data.corr$Caldisericota
S = 111.64, p-value = 0.8587
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
0.06963106 
cor.test(ttt.data.corr$OC, ttt.data.corr$Chloroflexi, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$OC and ttt.data.corr$Chloroflexi
S = 218, p-value = 0.01077
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.8166667 
cor.test(ttt.data.corr$OC, ttt.data.corr$Desulfobacterota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$OC and ttt.data.corr$Desulfobacterota
S = 100, p-value = 0.6777
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.1666667 
cor.test(ttt.data.corr$OC, ttt.data.corr$Firmicutes, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$OC and ttt.data.corr$Firmicutes
S = 112, p-value = 0.8801
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
0.06666667 
cor.test(ttt.data.corr$OC, ttt.data.corr$Gemmatimonadota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$OC and ttt.data.corr$Gemmatimonadota
S = 228, p-value = 0.002028
alternative hypothesis: true rho is not equal to 0
sample estimates:
 rho 
-0.9 
cor.test(ttt.data.corr$OC, ttt.data.corr$Myxococcota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$OC and ttt.data.corr$Myxococcota
S = 104, p-value = 0.7435
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.1333333 
cor.test(ttt.data.corr$OC, ttt.data.corr$Patescibacteria, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$OC and ttt.data.corr$Patescibacteria
S = 208, p-value = 0.03112
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.7333333 
cor.test(ttt.data.corr$OC, ttt.data.corr$Planctomycetota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$OC and ttt.data.corr$Planctomycetota
S = 106, p-value = 0.7756
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.1166667 
cor.test(ttt.data.corr$OC, ttt.data.corr$Verrucomicrobiota, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$OC and ttt.data.corr$Verrucomicrobiota
S = 122, p-value = 0.9816
alternative hypothesis: true rho is not equal to 0
sample estimates:
        rho 
-0.01666667 
cor.test(ttt.data.corr$OC, ttt.data.corr$Alphaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$OC and ttt.data.corr$Alphaproteobacteria
S = 108, p-value = 0.81
alternative hypothesis: true rho is not equal to 0
sample estimates:
rho 
0.1 
cor.test(ttt.data.corr$OC, ttt.data.corr$Gammaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$OC and ttt.data.corr$Gammaproteobacteria
S = 126, p-value = 0.9116
alternative hypothesis: true rho is not equal to 0
sample estimates:
  rho 
-0.05 
cor.test(ttt.data.corr$OC, ttt.data.corr$Archaea, method="spearman")

    Spearman's rank correlation rho

data:  ttt.data.corr$OC and ttt.data.corr$Archaea
S = 136, p-value = 0.7435
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.1333333 

TTT Plotting

Before plotting, need to remove columns from full dataset

# Remove thaw probability columns and soil chemistry for plotting
ttt.data.corr <- subset(ttt.data.corr, select = -c(Thaw_Prob_July_All, Thaw_Prob_Aug_All, Thaw_Prob_Aug_10, Thaw_Prob_Aug_5, pH, EC, GWC, OC))
# Correlation plot for annual thaw duration (thaw days) using Spearman's rho
ttt.thaw.day.corr.plot <- ttt.data.corr %>% correlate(method = "spearman") %>% focus(Thaw_Days) %>% mutate(term = factor(term, levels = term[order(Thaw_Days)])) %>% ggplot(aes(x = term, y = Thaw_Days)) + geom_bar(stat = "identity") + theme_classic() + theme(axis.text.x = element_text(angle = 45, hjust=1), axis.title.x = element_blank(), text = element_text(size=16)) + ylab(expression(atop("Annual Thaw Duration", paste("Spearman Correlation")))) + ylim(-1,1)
Correlation computed with
• Method: 'spearman'
• Missing treated using: 'pairwise.complete.obs'
ttt.thaw.day.corr.plot


# Save as .eps file (width = 600; height = 450; "ttt.thaw.day.corr.eps")

Imnavait MAT

Thaw Days: Taxa

ITT Thaw Probability Correlations – Soil Chemistry and Taxonomy

itt.data.corr<-read.csv("QIIME/SILVA/R_Data/itt.data.corr.csv")

# Convert first column to row names
rownames(itt.data.corr)<-itt.data.corr[,1]
itt.data.corr<-itt.data.corr[,-1]

“Thaw Days” as well as many taxa have non-normal distributions. Use Spearman’s correlation as a non-parametric statistical analysis to overcome lack of normality.

# Spearman Correlation Tests between Thaw Days and Taxonomy
cor.test(itt.data.corr$Thaw_Days, itt.data.corr$Acidobacteriota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$Thaw_Days and itt.data.corr$Acidobacteriota
S = 4.0641, p-value = 0.00262
alternative hypothesis: true rho is not equal to 0
sample estimates:
     rho 
0.927426 
cor.test(itt.data.corr$Thaw_Days, itt.data.corr$Actinobacteriota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$Thaw_Days and itt.data.corr$Actinobacteriota
S = 103.86, p-value = 0.01427
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.8546867 
cor.test(itt.data.corr$Thaw_Days, itt.data.corr$Bacteroidota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$Thaw_Days and itt.data.corr$Bacteroidota
S = 110.99, p-value = 8.291e-05
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.9819805 
cor.test(itt.data.corr$Thaw_Days, itt.data.corr$Caldisericota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$Thaw_Days and itt.data.corr$Caldisericota
S = 108.41, p-value = 0.001936
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.9358192 
cor.test(itt.data.corr$Thaw_Days, itt.data.corr$Chloroflexi, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$Thaw_Days and itt.data.corr$Chloroflexi
S = 67.202, p-value = 0.6672
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.2000331 
cor.test(itt.data.corr$Thaw_Days, itt.data.corr$Desulfobacterota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$Thaw_Days and itt.data.corr$Desulfobacterota
S = 72.294, p-value = 0.5267
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.2909572 
cor.test(itt.data.corr$Thaw_Days, itt.data.corr$Firmicutes, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$Thaw_Days and itt.data.corr$Firmicutes
S = 110.99, p-value = 8.291e-05
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.9819805 
cor.test(itt.data.corr$Thaw_Days, itt.data.corr$Gemmatimonadota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$Thaw_Days and itt.data.corr$Gemmatimonadota
S = 11.193, p-value = 0.0307
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.8001323 
cor.test(itt.data.corr$Thaw_Days, itt.data.corr$Myxococcota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$Thaw_Days and itt.data.corr$Myxococcota
S = 26.468, p-value = 0.2238
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.5273599 
cor.test(itt.data.corr$Thaw_Days, itt.data.corr$Patescibacteria, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$Thaw_Days and itt.data.corr$Patescibacteria
S = 74.33, p-value = 0.4736
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.3273268 
cor.test(itt.data.corr$Thaw_Days, itt.data.corr$Planctomycetota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$Thaw_Days and itt.data.corr$Planctomycetota
S = 39.706, p-value = 0.5267
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.2909572 
cor.test(itt.data.corr$Thaw_Days, itt.data.corr$Verrucomicrobiota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$Thaw_Days and itt.data.corr$Verrucomicrobiota
S = 4.0641, p-value = 0.00262
alternative hypothesis: true rho is not equal to 0
sample estimates:
     rho 
0.927426 
cor.test(itt.data.corr$Thaw_Days, itt.data.corr$Alphaproteobacteria, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$Thaw_Days and itt.data.corr$Alphaproteobacteria
S = 13.229, p-value = 0.04566
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.7637626 
cor.test(itt.data.corr$Thaw_Days, itt.data.corr$Gammaproteobacteria, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$Thaw_Days and itt.data.corr$Gammaproteobacteria
S = 31.56, p-value = 0.3276
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.4364358 
cor.test(itt.data.corr$Thaw_Days, itt.data.corr$Archaea, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$Thaw_Days and itt.data.corr$Archaea
S = 87.569, p-value = 0.1875
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.5637295 

Soil Chem: Taxa

Use Spearman’s correlation for soil chemistry variables and taxa.

# Correlation Tests between pH and Taxonomy
cor.test(itt.data.corr$pH, itt.data.corr$Acidobacteriota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$pH and itt.data.corr$Acidobacteriota
S = 107.46, p-value = 0.003437
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.9189562 
cor.test(itt.data.corr$pH, itt.data.corr$Actinobacteriota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$pH and itt.data.corr$Actinobacteriota
S = 14.629, p-value = 0.05786
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.7387687 
cor.test(itt.data.corr$pH, itt.data.corr$Bacteroidota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$pH and itt.data.corr$Bacteroidota
S = 2.5204, p-value = 0.0008055
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.9549937 
cor.test(itt.data.corr$pH, itt.data.corr$Caldisericota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$pH and itt.data.corr$Caldisericota
S = 3.0545, p-value = 0.001296
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.9454545 
cor.test(itt.data.corr$pH, itt.data.corr$Chloroflexi, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$pH and itt.data.corr$Chloroflexi
S = 40.864, p-value = 0.5577
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.2702812 
cor.test(itt.data.corr$pH, itt.data.corr$Desulfobacterota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$pH and itt.data.corr$Desulfobacterota
S = 36.828, p-value = 0.4523
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.3423562 
cor.test(itt.data.corr$pH, itt.data.corr$Firmicutes, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$pH and itt.data.corr$Firmicutes
S = 0.50225, p-value = 1.456e-05
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.9910312 
cor.test(itt.data.corr$pH, itt.data.corr$Gemmatimonadota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$pH and itt.data.corr$Gemmatimonadota
S = 99.389, p-value = 0.04077
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.7748062 
cor.test(itt.data.corr$pH, itt.data.corr$Myxococcota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$pH and itt.data.corr$Myxococcota
S = 91.317, p-value = 0.1289
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.6306562 
cor.test(itt.data.corr$pH, itt.data.corr$Patescibacteria, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$pH and itt.data.corr$Patescibacteria
S = 35.819, p-value = 0.4271
alternative hypothesis: true rho is not equal to 0
sample estimates:
     rho 
0.360375 
cor.test(itt.data.corr$pH, itt.data.corr$Planctomycetota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$pH and itt.data.corr$Planctomycetota
S = 75.172, p-value = 0.4523
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.3423562 
cor.test(itt.data.corr$pH, itt.data.corr$Verrucomicrobiota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$pH and itt.data.corr$Verrucomicrobiota
S = 108.47, p-value = 0.001851
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
-0.936975 
cor.test(itt.data.corr$pH, itt.data.corr$Alphaproteobacteria, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$pH and itt.data.corr$Alphaproteobacteria
S = 104.43, p-value = 0.01197
alternative hypothesis: true rho is not equal to 0
sample estimates:
    rho 
-0.8649 
cor.test(itt.data.corr$pH, itt.data.corr$Gammaproteobacteria, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$pH and itt.data.corr$Gammaproteobacteria
S = 79.208, p-value = 0.3553
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.4144312 
cor.test(itt.data.corr$pH, itt.data.corr$Archaea, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$pH and itt.data.corr$Archaea
S = 27.747, p-value = 0.2482
alternative hypothesis: true rho is not equal to 0
sample estimates:
     rho 
0.504525 
# Correlation Tests between EC and Taxonomy
cor.test(itt.data.corr$EC, itt.data.corr$Acidobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$EC and itt.data.corr$Acidobacteriota
S = 58, p-value = 0.9635
alternative hypothesis: true rho is not equal to 0
sample estimates:
        rho 
-0.03571429 
cor.test(itt.data.corr$EC, itt.data.corr$Actinobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$EC and itt.data.corr$Actinobacteriota
S = 38, p-value = 0.4976
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.3214286 
cor.test(itt.data.corr$EC, itt.data.corr$Bacteroidota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$EC and itt.data.corr$Bacteroidota
S = 52, p-value = 0.9063
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
0.07142857 
cor.test(itt.data.corr$EC, itt.data.corr$Caldisericota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$EC and itt.data.corr$Caldisericota
S = 59.027, p-value = 0.9084
alternative hypothesis: true rho is not equal to 0
sample estimates:
        rho 
-0.05405625 
cor.test(itt.data.corr$EC, itt.data.corr$Chloroflexi, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$EC and itt.data.corr$Chloroflexi
S = 76, p-value = 0.4444
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.3571429 
cor.test(itt.data.corr$EC, itt.data.corr$Desulfobacterota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$EC and itt.data.corr$Desulfobacterota
S = 78, p-value = 0.3956
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.3928571 
cor.test(itt.data.corr$EC, itt.data.corr$Firmicutes, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$EC and itt.data.corr$Firmicutes
S = 62, p-value = 0.8397
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.1071429 
cor.test(itt.data.corr$EC, itt.data.corr$Gemmatimonadota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$EC and itt.data.corr$Gemmatimonadota
S = 64, p-value = 0.7825
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.1428571 
cor.test(itt.data.corr$EC, itt.data.corr$Myxococcota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$EC and itt.data.corr$Myxococcota
S = 36, p-value = 0.4444
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.3571429 
cor.test(itt.data.corr$EC, itt.data.corr$Patescibacteria, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$EC and itt.data.corr$Patescibacteria
S = 72, p-value = 0.556
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.2857143 
cor.test(itt.data.corr$EC, itt.data.corr$Planctomycetota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$EC and itt.data.corr$Planctomycetota
S = 34, p-value = 0.3956
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.3928571 
cor.test(itt.data.corr$EC, itt.data.corr$Verrucomicrobiota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$EC and itt.data.corr$Verrucomicrobiota
S = 52, p-value = 0.9063
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
0.07142857 
cor.test(itt.data.corr$EC, itt.data.corr$Alphaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$EC and itt.data.corr$Alphaproteobacteria
S = 30, p-value = 0.3024
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.4642857 
cor.test(itt.data.corr$EC, itt.data.corr$Gammaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$EC and itt.data.corr$Gammaproteobacteria
S = 64, p-value = 0.7825
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.1428571 
cor.test(itt.data.corr$EC, itt.data.corr$Archaea, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$EC and itt.data.corr$Archaea
S = 56, p-value = 1
alternative hypothesis: true rho is not equal to 0
sample estimates:
rho 
  0 
# Correlation Tests between GWC and Taxonomy
cor.test(itt.data.corr$GWC, itt.data.corr$Acidobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$GWC and itt.data.corr$Acidobacteriota
S = 12, p-value = 0.04802
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.7857143 
cor.test(itt.data.corr$GWC, itt.data.corr$Actinobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$GWC and itt.data.corr$Actinobacteriota
S = 96, p-value = 0.0881
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.7142857 
cor.test(itt.data.corr$GWC, itt.data.corr$Bacteroidota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$GWC and itt.data.corr$Bacteroidota
S = 102, p-value = 0.03413
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.8214286 
cor.test(itt.data.corr$GWC, itt.data.corr$Caldisericota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$GWC and itt.data.corr$Caldisericota
S = 101.41, p-value = 0.02692
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.8108437 
cor.test(itt.data.corr$GWC, itt.data.corr$Chloroflexi, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$GWC and itt.data.corr$Chloroflexi
S = 62, p-value = 0.8397
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.1071429 
cor.test(itt.data.corr$GWC, itt.data.corr$Desulfobacterota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$GWC and itt.data.corr$Desulfobacterota
S = 76, p-value = 0.4444
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.3571429 
cor.test(itt.data.corr$GWC, itt.data.corr$Firmicutes, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$GWC and itt.data.corr$Firmicutes
S = 104, p-value = 0.02381
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.8571429 
cor.test(itt.data.corr$GWC, itt.data.corr$Gemmatimonadota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$GWC and itt.data.corr$Gemmatimonadota
S = 18, p-value = 0.1095
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.6785714 
cor.test(itt.data.corr$GWC, itt.data.corr$Myxococcota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$GWC and itt.data.corr$Myxococcota
S = 34, p-value = 0.3956
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.3928571 
cor.test(itt.data.corr$GWC, itt.data.corr$Patescibacteria, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$GWC and itt.data.corr$Patescibacteria
S = 80, p-value = 0.3536
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.4285714 
cor.test(itt.data.corr$GWC, itt.data.corr$Planctomycetota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$GWC and itt.data.corr$Planctomycetota
S = 36, p-value = 0.4444
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.3571429 
cor.test(itt.data.corr$GWC, itt.data.corr$Verrucomicrobiota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$GWC and itt.data.corr$Verrucomicrobiota
S = 12, p-value = 0.04802
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.7857143 
cor.test(itt.data.corr$GWC, itt.data.corr$Alphaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$GWC and itt.data.corr$Alphaproteobacteria
S = 14, p-value = 0.06627
alternative hypothesis: true rho is not equal to 0
sample estimates:
 rho 
0.75 
cor.test(itt.data.corr$GWC, itt.data.corr$Gammaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$GWC and itt.data.corr$Gammaproteobacteria
S = 38, p-value = 0.4976
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.3214286 
cor.test(itt.data.corr$GWC, itt.data.corr$Archaea, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$GWC and itt.data.corr$Archaea
S = 84, p-value = 0.2667
alternative hypothesis: true rho is not equal to 0
sample estimates:
 rho 
-0.5 
# Correlation Tests between TOC and Taxonomy
cor.test(itt.data.corr$OC, itt.data.corr$Acidobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$OC and itt.data.corr$Acidobacteriota
S = 10, p-value = 0.03413
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.8214286 
cor.test(itt.data.corr$OC, itt.data.corr$Actinobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$OC and itt.data.corr$Actinobacteriota
S = 98, p-value = 0.06627
alternative hypothesis: true rho is not equal to 0
sample estimates:
  rho 
-0.75 
cor.test(itt.data.corr$OC, itt.data.corr$Bacteroidota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$OC and itt.data.corr$Bacteroidota
S = 106, p-value = 0.0123
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.8928571 
cor.test(itt.data.corr$OC, itt.data.corr$Caldisericota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  itt.data.corr$OC and itt.data.corr$Caldisericota
S = 103.43, p-value = 0.0162
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.8468812 
cor.test(itt.data.corr$OC, itt.data.corr$Chloroflexi, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$OC and itt.data.corr$Chloroflexi
S = 64, p-value = 0.7825
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.1428571 
cor.test(itt.data.corr$OC, itt.data.corr$Desulfobacterota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$OC and itt.data.corr$Desulfobacterota
S = 74, p-value = 0.4976
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.3214286 
cor.test(itt.data.corr$OC, itt.data.corr$Firmicutes, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$OC and itt.data.corr$Firmicutes
S = 108, p-value = 0.006746
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.9285714 
cor.test(itt.data.corr$OC, itt.data.corr$Gemmatimonadota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$OC and itt.data.corr$Gemmatimonadota
S = 14, p-value = 0.06627
alternative hypothesis: true rho is not equal to 0
sample estimates:
 rho 
0.75 
cor.test(itt.data.corr$OC, itt.data.corr$Myxococcota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$OC and itt.data.corr$Myxococcota
S = 32, p-value = 0.3536
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.4285714 
cor.test(itt.data.corr$OC, itt.data.corr$Patescibacteria, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$OC and itt.data.corr$Patescibacteria
S = 76, p-value = 0.4444
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.3571429 
cor.test(itt.data.corr$OC, itt.data.corr$Planctomycetota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$OC and itt.data.corr$Planctomycetota
S = 38, p-value = 0.4976
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.3214286 
cor.test(itt.data.corr$OC, itt.data.corr$Verrucomicrobiota, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$OC and itt.data.corr$Verrucomicrobiota
S = 8, p-value = 0.02381
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.8571429 
cor.test(itt.data.corr$OC, itt.data.corr$Alphaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$OC and itt.data.corr$Alphaproteobacteria
S = 12, p-value = 0.04802
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.7857143 
cor.test(itt.data.corr$OC, itt.data.corr$Gammaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$OC and itt.data.corr$Gammaproteobacteria
S = 32, p-value = 0.3536
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.4285714 
cor.test(itt.data.corr$OC, itt.data.corr$Archaea, method="spearman")

    Spearman's rank correlation rho

data:  itt.data.corr$OC and itt.data.corr$Archaea
S = 86, p-value = 0.2357
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.5357143 

ITT Plotting

Before plotting, need to remove columns from full dataset

# Remove thaw probability columns and soil chemistry for plotting
itt.data.corr <- subset(itt.data.corr, select = -c(Thaw_Prob_July_All, Thaw_Prob_Aug_All, Thaw_Prob_Aug_10, Thaw_Prob_Aug_5, pH, EC, GWC, OC))
# Correlation plot for annual thaw duration (thaw days) using Spearman's rho
itt.thaw.day.corr.plot <- itt.data.corr %>% correlate(method = "spearman") %>% focus(Thaw_Days) %>% mutate(term = factor(term, levels = term[order(Thaw_Days)])) %>% ggplot(aes(x = term, y = Thaw_Days)) + geom_bar(stat = "identity") + theme_classic() + theme(axis.text.x = element_text(angle = 45, hjust=1), axis.title.x = element_blank(), text = element_text(size=16)) + ylab(expression(atop("Annual Thaw Duration", paste("Spearman Correlation")))) + ylim(-1,1)
Correlation computed with
• Method: 'spearman'
• Missing treated using: 'pairwise.complete.obs'
itt.thaw.day.corr.plot


# Save as .eps file (width = 600; height = 450; "itt.thaw.day.corr.eps")

Imnavait WS

Thaw Days: Taxa

IWS Thaw Probability Correlations – Soil Chemistry and Taxonomy

iws.data.corr<-read.csv("QIIME/SILVA/R_Data/iws.data.corr.csv")

# Convert first column to row names
rownames(iws.data.corr)<-iws.data.corr[,1]
iws.data.corr<-iws.data.corr[,-1]

“Thaw Days” as well as many taxa have non-normal distributions. Use Spearman’s correlation as a non-parametric statistical analysis to overcome lack of normality.

# Spearman Correlation Tests between Thaw Days and Taxonomy
cor.test(iws.data.corr$Thaw_Days, iws.data.corr$Acidobacteriota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  iws.data.corr$Thaw_Days and iws.data.corr$Acidobacteriota
S = 14.705, p-value = 0.0002476
alternative hypothesis: true rho is not equal to 0
sample estimates:
     rho 
0.910877 
cor.test(iws.data.corr$Thaw_Days, iws.data.corr$Actinobacteriota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  iws.data.corr$Thaw_Days and iws.data.corr$Actinobacteriota
S = 304.12, p-value = 0.00218
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.8431767 
cor.test(iws.data.corr$Thaw_Days, iws.data.corr$Bacteroidota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  iws.data.corr$Thaw_Days and iws.data.corr$Bacteroidota
S = 292.95, p-value = 0.008394
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.7754764 
cor.test(iws.data.corr$Thaw_Days, iws.data.corr$Caldisericota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  iws.data.corr$Thaw_Days and iws.data.corr$Caldisericota
S = 319.36, p-value = 7.004e-05
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.9354953 
cor.test(iws.data.corr$Thaw_Days, iws.data.corr$Chloroflexi, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  iws.data.corr$Thaw_Days and iws.data.corr$Chloroflexi
S = 70.558, p-value = 0.08378
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.5723754 
cor.test(iws.data.corr$Thaw_Days, iws.data.corr$Desulfobacterota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  iws.data.corr$Thaw_Days and iws.data.corr$Desulfobacterota
S = 73.605, p-value = 0.09665
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.5539117 
cor.test(iws.data.corr$Thaw_Days, iws.data.corr$Firmicutes, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  iws.data.corr$Thaw_Days and iws.data.corr$Firmicutes
S = 321.39, p-value = 3.048e-05
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.9478045 
cor.test(iws.data.corr$Thaw_Days, iws.data.corr$Gemmatimonadota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  iws.data.corr$Thaw_Days and iws.data.corr$Gemmatimonadota
S = 146.72, p-value = 0.7606
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.1107823 
cor.test(iws.data.corr$Thaw_Days, iws.data.corr$Myxococcota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  iws.data.corr$Thaw_Days and iws.data.corr$Myxococcota
S = 30.953, p-value = 0.004291
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.8124038 
cor.test(iws.data.corr$Thaw_Days, iws.data.corr$Patescibacteria, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  iws.data.corr$Thaw_Days and iws.data.corr$Patescibacteria
S = 191.4, p-value = 0.6588
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.1600189 
cor.test(iws.data.corr$Thaw_Days, iws.data.corr$Planctomycetota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  iws.data.corr$Thaw_Days and iws.data.corr$Planctomycetota
S = 130.47, p-value = 0.5618
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.2092555 
cor.test(iws.data.corr$Thaw_Days, iws.data.corr$Verrucomicrobiota, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  iws.data.corr$Thaw_Days and iws.data.corr$Verrucomicrobiota
S = 133.52, p-value = 0.5975
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.1907918 
cor.test(iws.data.corr$Thaw_Days, iws.data.corr$Alphaproteobacteria, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  iws.data.corr$Thaw_Days and iws.data.corr$Alphaproteobacteria
S = 59.388, p-value = 0.04622
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.6400758 
cor.test(iws.data.corr$Thaw_Days, iws.data.corr$Gammaproteobacteria, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  iws.data.corr$Thaw_Days and iws.data.corr$Gammaproteobacteria
S = 114.22, p-value = 0.387
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.3077287 
cor.test(iws.data.corr$Thaw_Days, iws.data.corr$Archaea, method="spearman")
Warning: Cannot compute exact p-value with ties

    Spearman's rank correlation rho

data:  iws.data.corr$Thaw_Days and iws.data.corr$Archaea
S = 98.992, p-value = 0.252
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.4000473 

Soil Chem: Taxa

Use Spearman’s correlation for soil chemistry variables and taxa.

# Correlation Tests between pH and Taxonomy
cor.test(iws.data.corr$pH, iws.data.corr$Acidobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$pH and iws.data.corr$Acidobacteriota
S = 116, p-value = 0.407
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.2969697 
cor.test(iws.data.corr$pH, iws.data.corr$Actinobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$pH and iws.data.corr$Actinobacteriota
S = 150, p-value = 0.8114
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
0.09090909 
cor.test(iws.data.corr$pH, iws.data.corr$Bacteroidota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$pH and iws.data.corr$Bacteroidota
S = 192, p-value = 0.6567
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.1636364 
cor.test(iws.data.corr$pH, iws.data.corr$Caldisericota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$pH and iws.data.corr$Caldisericota
S = 182, p-value = 0.785
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.1030303 
cor.test(iws.data.corr$pH, iws.data.corr$Chloroflexi, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$pH and iws.data.corr$Chloroflexi
S = 144, p-value = 0.7329
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.1272727 
cor.test(iws.data.corr$pH, iws.data.corr$Desulfobacterota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$pH and iws.data.corr$Desulfobacterota
S = 202, p-value = 0.5367
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.2242424 
cor.test(iws.data.corr$pH, iws.data.corr$Firmicutes, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$pH and iws.data.corr$Firmicutes
S = 162, p-value = 0.9728
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
0.01818182 
cor.test(iws.data.corr$pH, iws.data.corr$Gemmatimonadota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$pH and iws.data.corr$Gemmatimonadota
S = 184, p-value = 0.7588
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.1151515 
cor.test(iws.data.corr$pH, iws.data.corr$Myxococcota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$pH and iws.data.corr$Myxococcota
S = 92, p-value = 0.2042
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.4424242 
cor.test(iws.data.corr$pH, iws.data.corr$Patescibacteria, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$pH and iws.data.corr$Patescibacteria
S = 310, p-value = 0.001977
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.8787879 
cor.test(iws.data.corr$pH, iws.data.corr$Planctomycetota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$pH and iws.data.corr$Planctomycetota
S = 260, p-value = 0.08777
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.5757576 
cor.test(iws.data.corr$pH, iws.data.corr$Verrucomicrobiota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$pH and iws.data.corr$Verrucomicrobiota
S = 264, p-value = 0.07312
alternative hypothesis: true rho is not equal to 0
sample estimates:
 rho 
-0.6 
cor.test(iws.data.corr$pH, iws.data.corr$Alphaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$pH and iws.data.corr$Alphaproteobacteria
S = 84, p-value = 0.1544
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.4909091 
cor.test(iws.data.corr$pH, iws.data.corr$Gammaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$pH and iws.data.corr$Gammaproteobacteria
S = 144, p-value = 0.7329
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.1272727 
cor.test(iws.data.corr$pH, iws.data.corr$Archaea, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$pH and iws.data.corr$Archaea
S = 202, p-value = 0.5367
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.2242424 
# Correlation Tests between EC and Taxonomy
cor.test(iws.data.corr$EC, iws.data.corr$Acidobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$EC and iws.data.corr$Acidobacteriota
S = 190, p-value = 0.6818
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.1515152 
cor.test(iws.data.corr$EC, iws.data.corr$Actinobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$EC and iws.data.corr$Actinobacteriota
S = 94, p-value = 0.218
alternative hypothesis: true rho is not equal to 0
sample estimates:
     rho 
0.430303 
cor.test(iws.data.corr$EC, iws.data.corr$Bacteroidota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$EC and iws.data.corr$Bacteroidota
S = 128, p-value = 0.5367
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.2242424 
cor.test(iws.data.corr$EC, iws.data.corr$Caldisericota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$EC and iws.data.corr$Caldisericota
S = 124, p-value = 0.4916
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.2484848 
cor.test(iws.data.corr$EC, iws.data.corr$Chloroflexi, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$EC and iws.data.corr$Chloroflexi
S = 264, p-value = 0.07312
alternative hypothesis: true rho is not equal to 0
sample estimates:
 rho 
-0.6 
cor.test(iws.data.corr$EC, iws.data.corr$Desulfobacterota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$EC and iws.data.corr$Desulfobacterota
S = 290, p-value = 0.01592
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.7575758 
cor.test(iws.data.corr$EC, iws.data.corr$Firmicutes, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$EC and iws.data.corr$Firmicutes
S = 108, p-value = 0.3305
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.3454545 
cor.test(iws.data.corr$EC, iws.data.corr$Gemmatimonadota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$EC and iws.data.corr$Gemmatimonadota
S = 110, p-value = 0.3488
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.3333333 
cor.test(iws.data.corr$EC, iws.data.corr$Myxococcota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$EC and iws.data.corr$Myxococcota
S = 172, p-value = 0.9186
alternative hypothesis: true rho is not equal to 0
sample estimates:
        rho 
-0.04242424 
cor.test(iws.data.corr$EC, iws.data.corr$Patescibacteria, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$EC and iws.data.corr$Patescibacteria
S = 214, p-value = 0.407
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.2969697 
cor.test(iws.data.corr$EC, iws.data.corr$Planctomycetota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$EC and iws.data.corr$Planctomycetota
S = 124, p-value = 0.4916
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.2484848 
cor.test(iws.data.corr$EC, iws.data.corr$Verrucomicrobiota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$EC and iws.data.corr$Verrucomicrobiota
S = 290, p-value = 0.01592
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.7575758 
cor.test(iws.data.corr$EC, iws.data.corr$Alphaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$EC and iws.data.corr$Alphaproteobacteria
S = 174, p-value = 0.8916
alternative hypothesis: true rho is not equal to 0
sample estimates:
        rho 
-0.05454545 
cor.test(iws.data.corr$EC, iws.data.corr$Gammaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$EC and iws.data.corr$Gammaproteobacteria
S = 116, p-value = 0.407
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.2969697 
cor.test(iws.data.corr$EC, iws.data.corr$Archaea, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$EC and iws.data.corr$Archaea
S = 248, p-value = 0.1434
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.5030303 
# Correlation Tests between GWC and Taxonomy
cor.test(iws.data.corr$GWC, iws.data.corr$Acidobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$GWC and iws.data.corr$Acidobacteriota
S = 138, p-value = 0.6567
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.1636364 
cor.test(iws.data.corr$GWC, iws.data.corr$Actinobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$GWC and iws.data.corr$Actinobacteriota
S = 142, p-value = 0.7072
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.1393939 
cor.test(iws.data.corr$GWC, iws.data.corr$Bacteroidota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$GWC and iws.data.corr$Bacteroidota
S = 170, p-value = 0.9457
alternative hypothesis: true rho is not equal to 0
sample estimates:
        rho 
-0.03030303 
cor.test(iws.data.corr$GWC, iws.data.corr$Caldisericota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$GWC and iws.data.corr$Caldisericota
S = 152, p-value = 0.838
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
0.07878788 
cor.test(iws.data.corr$GWC, iws.data.corr$Chloroflexi, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$GWC and iws.data.corr$Chloroflexi
S = 222, p-value = 0.3305
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.3454545 
cor.test(iws.data.corr$GWC, iws.data.corr$Desulfobacterota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$GWC and iws.data.corr$Desulfobacterota
S = 254, p-value = 0.1133
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.5393939 
cor.test(iws.data.corr$GWC, iws.data.corr$Firmicutes, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$GWC and iws.data.corr$Firmicutes
S = 154, p-value = 0.8648
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
0.06666667 
cor.test(iws.data.corr$GWC, iws.data.corr$Gemmatimonadota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$GWC and iws.data.corr$Gemmatimonadota
S = 194, p-value = 0.632
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.1757576 
cor.test(iws.data.corr$GWC, iws.data.corr$Myxococcota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$GWC and iws.data.corr$Myxococcota
S = 132, p-value = 0.5835
alternative hypothesis: true rho is not equal to 0
sample estimates:
rho 
0.2 
cor.test(iws.data.corr$GWC, iws.data.corr$Patescibacteria, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$GWC and iws.data.corr$Patescibacteria
S = 262, p-value = 0.08022
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.5878788 
cor.test(iws.data.corr$GWC, iws.data.corr$Planctomycetota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$GWC and iws.data.corr$Planctomycetota
S = 160, p-value = 0.9457
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
0.03030303 
cor.test(iws.data.corr$GWC, iws.data.corr$Verrucomicrobiota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$GWC and iws.data.corr$Verrucomicrobiota
S = 284, p-value = 0.02419
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.7212121 
cor.test(iws.data.corr$GWC, iws.data.corr$Alphaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$GWC and iws.data.corr$Alphaproteobacteria
S = 126, p-value = 0.5139
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.2363636 
cor.test(iws.data.corr$GWC, iws.data.corr$Gammaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$GWC and iws.data.corr$Gammaproteobacteria
S = 116, p-value = 0.407
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.2969697 
cor.test(iws.data.corr$GWC, iws.data.corr$Archaea, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$GWC and iws.data.corr$Archaea
S = 208, p-value = 0.4697
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.2606061 
# Correlation Tests between TOC and Taxonomy
cor.test(iws.data.corr$OC, iws.data.corr$Acidobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$OC and iws.data.corr$Acidobacteriota
S = 36, p-value = 0.01165
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.7818182 
cor.test(iws.data.corr$OC, iws.data.corr$Actinobacteriota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$OC and iws.data.corr$Actinobacteriota
S = 258, p-value = 0.09579
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.5636364 
cor.test(iws.data.corr$OC, iws.data.corr$Bacteroidota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$OC and iws.data.corr$Bacteroidota
S = 246, p-value = 0.1544
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.4909091 
cor.test(iws.data.corr$OC, iws.data.corr$Caldisericota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$OC and iws.data.corr$Caldisericota
S = 270, p-value = 0.05445
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.6363636 
cor.test(iws.data.corr$OC, iws.data.corr$Chloroflexi, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$OC and iws.data.corr$Chloroflexi
S = 100, p-value = 0.2629
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.3939394 
cor.test(iws.data.corr$OC, iws.data.corr$Desulfobacterota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$OC and iws.data.corr$Desulfobacterota
S = 140, p-value = 0.6818
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.1515152 
cor.test(iws.data.corr$OC, iws.data.corr$Firmicutes, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$OC and iws.data.corr$Firmicutes
S = 250, p-value = 0.1328
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.5151515 
cor.test(iws.data.corr$OC, iws.data.corr$Gemmatimonadota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$OC and iws.data.corr$Gemmatimonadota
S = 158, p-value = 0.9186
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
0.04242424 
cor.test(iws.data.corr$OC, iws.data.corr$Myxococcota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$OC and iws.data.corr$Myxococcota
S = 34, p-value = 0.009844
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.7939394 
cor.test(iws.data.corr$OC, iws.data.corr$Patescibacteria, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$OC and iws.data.corr$Patescibacteria
S = 252, p-value = 0.1228
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.5272727 
cor.test(iws.data.corr$OC, iws.data.corr$Planctomycetota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$OC and iws.data.corr$Planctomycetota
S = 160, p-value = 0.9457
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
0.03030303 
cor.test(iws.data.corr$OC, iws.data.corr$Verrucomicrobiota, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$OC and iws.data.corr$Verrucomicrobiota
S = 228, p-value = 0.279
alternative hypothesis: true rho is not equal to 0
sample estimates:
       rho 
-0.3818182 
cor.test(iws.data.corr$OC, iws.data.corr$Alphaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$OC and iws.data.corr$Alphaproteobacteria
S = 68, p-value = 0.08022
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.5878788 
cor.test(iws.data.corr$OC, iws.data.corr$Gammaproteobacteria, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$OC and iws.data.corr$Gammaproteobacteria
S = 114, p-value = 0.3871
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.3090909 
cor.test(iws.data.corr$OC, iws.data.corr$Archaea, method="spearman")

    Spearman's rank correlation rho

data:  iws.data.corr$OC and iws.data.corr$Archaea
S = 128, p-value = 0.5367
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.2242424 

IWS Plotting

Before plotting, need to remove columns from full dataset

# Remove thaw probability columns and soil chemistry for plotting
iws.data.corr <- subset(iws.data.corr, select = -c(Thaw_Prob_July_All, Thaw_Prob_Aug_All, Thaw_Prob_Aug_10, Thaw_Prob_Aug_5, pH, EC, GWC, OC))
# Correlation plot for annual thaw duration (thaw days) using Spearman's rho
iws.thaw.day.corr.plot <- iws.data.corr %>% correlate(method = "spearman") %>% focus(Thaw_Days) %>% mutate(term = factor(term, levels = term[order(Thaw_Days)])) %>% ggplot(aes(x = term, y = Thaw_Days)) + geom_bar(stat = "identity") + theme_classic() + theme(axis.text.x = element_text(angle = 45, hjust=1), axis.title.x = element_blank(), text = element_text(size=16)) + ylab(expression(atop("Annual Thaw Duration", paste("Spearman Correlation")))) + ylim(-1,1)
Correlation computed with
• Method: 'spearman'
• Missing treated using: 'pairwise.complete.obs'
iws.thaw.day.corr.plot


# Save as .eps file (width = 600; height = 450; "iws.thaw.day.corr.eps")

Reproducibility

The session information is provided for full reproducibility.

devtools::session_info()
─ Session info ────────────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.2.1 (2022-06-23)
 os       macOS Monterey 12.6
 system   x86_64, darwin17.0
 ui       RStudio
 language (EN)
 collate  en_US.UTF-8
 ctype    en_US.UTF-8
 tz       America/Los_Angeles
 date     2022-09-22
 rstudio  2022.07.1+554 Spotted Wakerobin (desktop)
 pandoc   2.18 @ /Applications/RStudio.app/Contents/MacOS/quarto/bin/tools/ (via rmarkdown)

─ Packages ────────────────────────────────────────────────────────────────────────
 package          * version  date (UTC) lib source
 abind              1.4-5    2016-07-21 [1] CRAN (R 4.2.0)
 ade4               1.7-19   2022-04-19 [1] CRAN (R 4.2.0)
 agricolae        * 1.3-5    2021-06-06 [1] CRAN (R 4.2.0)
 AlgDesign          1.2.1    2022-05-25 [1] CRAN (R 4.2.0)
 ape                5.6-2    2022-03-02 [1] CRAN (R 4.2.0)
 backports          1.4.1    2021-12-13 [1] CRAN (R 4.2.0)
 base64enc          0.1-3    2015-07-28 [1] CRAN (R 4.2.0)
 Biobase            2.56.0   2022-04-26 [1] Bioconductor
 BiocGenerics       0.42.0   2022-04-26 [1] Bioconductor
 biomformat         1.24.0   2022-04-26 [1] Bioconductor
 Biostrings         2.64.1   2022-08-18 [1] Bioconductor
 bitops             1.0-7    2021-04-24 [1] CRAN (R 4.2.0)
 broom              1.0.0    2022-07-01 [1] CRAN (R 4.2.0)
 bslib              0.4.0    2022-07-16 [1] CRAN (R 4.2.0)
 cachem             1.0.6    2021-08-19 [1] CRAN (R 4.2.0)
 callr              3.7.2    2022-08-22 [1] CRAN (R 4.2.0)
 car                3.1-0    2022-06-15 [1] CRAN (R 4.2.0)
 carData            3.0-5    2022-01-06 [1] CRAN (R 4.2.0)
 checkmate          2.1.0    2022-04-21 [1] CRAN (R 4.2.0)
 cli                3.3.0    2022-04-25 [1] CRAN (R 4.2.0)
 cluster            2.1.3    2022-03-28 [1] CRAN (R 4.2.1)
 codetools          0.2-18   2020-11-04 [1] CRAN (R 4.2.1)
 colorspace         2.0-3    2022-02-21 [1] CRAN (R 4.2.0)
 combinat           0.0-8    2012-10-29 [1] CRAN (R 4.2.0)
 corrr            * 0.4.4    2022-08-16 [1] CRAN (R 4.2.0)
 crayon             1.5.1    2022-03-26 [1] CRAN (R 4.2.0)
 data.table       * 1.14.2   2021-09-27 [1] CRAN (R 4.2.0)
 deldir             1.0-6    2021-10-23 [1] CRAN (R 4.2.0)
 devtools         * 2.4.4    2022-07-20 [1] CRAN (R 4.2.0)
 digest             0.6.29   2021-12-01 [1] CRAN (R 4.2.0)
 dplyr            * 1.0.9    2022-04-28 [1] CRAN (R 4.2.0)
 DT                 0.24     2022-08-09 [1] CRAN (R 4.2.0)
 ellipsis           0.3.2    2021-04-29 [1] CRAN (R 4.2.0)
 evaluate           0.16     2022-08-09 [1] CRAN (R 4.2.0)
 fansi              1.0.3    2022-03-24 [1] CRAN (R 4.2.0)
 farver             2.1.1    2022-07-06 [1] CRAN (R 4.2.0)
 fastmap            1.1.0    2021-01-25 [1] CRAN (R 4.2.0)
 forcats          * 0.5.2    2022-08-19 [1] CRAN (R 4.2.0)
 foreach            1.5.2    2022-02-02 [1] CRAN (R 4.2.0)
 foreign            0.8-82   2022-01-16 [1] CRAN (R 4.2.1)
 Formula            1.2-4    2020-10-16 [1] CRAN (R 4.2.0)
 fs                 1.5.2    2021-12-08 [1] CRAN (R 4.2.0)
 generics           0.1.3    2022-07-05 [1] CRAN (R 4.2.0)
 GenomeInfoDb       1.32.3   2022-08-09 [1] Bioconductor
 GenomeInfoDbData   1.2.8    2022-08-29 [1] Bioconductor
 ggalluvial       * 0.12.3   2020-12-05 [1] CRAN (R 4.2.0)
 ggdendro         * 0.1.23   2022-02-16 [1] CRAN (R 4.2.0)
 ggplot2          * 3.3.6    2022-05-03 [1] CRAN (R 4.2.0)
 ggpubr           * 0.4.0    2020-06-27 [1] CRAN (R 4.2.0)
 ggsignif           0.6.3    2021-09-09 [1] CRAN (R 4.2.0)
 glue               1.6.2    2022-02-24 [1] CRAN (R 4.2.0)
 gridExtra        * 2.3      2017-09-09 [1] CRAN (R 4.2.0)
 gtable             0.3.0    2019-03-25 [1] CRAN (R 4.2.0)
 haven              2.5.1    2022-08-22 [1] CRAN (R 4.2.0)
 highr              0.9      2021-04-16 [1] CRAN (R 4.2.0)
 Hmisc              4.7-1    2022-08-15 [1] CRAN (R 4.2.0)
 hms                1.1.2    2022-08-19 [1] CRAN (R 4.2.0)
 htmlTable          2.4.1    2022-07-07 [1] CRAN (R 4.2.0)
 htmltools          0.5.3    2022-07-18 [1] CRAN (R 4.2.0)
 htmlwidgets        1.5.4    2021-09-08 [1] CRAN (R 4.2.0)
 httpuv             1.6.5    2022-01-05 [1] CRAN (R 4.2.0)
 igraph             1.3.4    2022-07-19 [1] CRAN (R 4.2.0)
 interp             1.1-3    2022-07-13 [1] CRAN (R 4.2.0)
 IRanges            2.30.1   2022-08-18 [1] Bioconductor
 iterators          1.0.14   2022-02-05 [1] CRAN (R 4.2.0)
 jpeg               0.1-9    2021-07-24 [1] CRAN (R 4.2.0)
 jquerylib          0.1.4    2021-04-26 [1] CRAN (R 4.2.0)
 jsonlite           1.8.0    2022-02-22 [1] CRAN (R 4.2.0)
 klaR               1.7-1    2022-06-27 [1] CRAN (R 4.2.0)
 knitr            * 1.40     2022-08-24 [1] CRAN (R 4.2.0)
 labeling           0.4.2    2020-10-20 [1] CRAN (R 4.2.0)
 labelled           2.9.1    2022-05-05 [1] CRAN (R 4.2.0)
 later              1.3.0    2021-08-18 [1] CRAN (R 4.2.0)
 lattice          * 0.20-45  2021-09-22 [1] CRAN (R 4.2.1)
 latticeExtra       0.6-30   2022-07-04 [1] CRAN (R 4.2.0)
 lifecycle          1.0.1    2021-09-24 [1] CRAN (R 4.2.0)
 magrittr         * 2.0.3    2022-03-30 [1] CRAN (R 4.2.0)
 MASS               7.3-57   2022-04-22 [1] CRAN (R 4.2.1)
 Matrix             1.4-1    2022-03-23 [1] CRAN (R 4.2.1)
 memoise            2.0.1    2021-11-26 [1] CRAN (R 4.2.0)
 mgcv               1.8-40   2022-03-29 [1] CRAN (R 4.2.1)
 microeco         * 0.11.0   2022-06-22 [1] CRAN (R 4.2.0)
 mime               0.12     2021-09-28 [1] CRAN (R 4.2.0)
 miniUI             0.1.1.1  2018-05-18 [1] CRAN (R 4.2.0)
 multtest           2.52.0   2022-04-26 [1] Bioconductor
 munsell            0.5.0    2018-06-12 [1] CRAN (R 4.2.0)
 NADA               1.6-1.1  2020-03-22 [1] CRAN (R 4.2.0)
 nlme               3.1-157  2022-03-25 [1] CRAN (R 4.2.1)
 nnet               7.3-17   2022-01-16 [1] CRAN (R 4.2.1)
 patchwork        * 1.1.2    2022-08-19 [1] CRAN (R 4.2.0)
 permute          * 0.9-7    2022-01-27 [1] CRAN (R 4.2.0)
 pheatmap         * 1.0.12   2019-01-04 [1] CRAN (R 4.2.0)
 phyloseq           1.40.0   2022-04-26 [1] Bioconductor
 pillar             1.8.1    2022-08-19 [1] CRAN (R 4.2.0)
 pkgbuild           1.3.1    2021-12-20 [1] CRAN (R 4.2.0)
 pkgconfig          2.0.3    2019-09-22 [1] CRAN (R 4.2.0)
 pkgload            1.3.0    2022-06-27 [1] CRAN (R 4.2.0)
 plyr               1.8.7    2022-03-24 [1] CRAN (R 4.2.0)
 png                0.1-7    2013-12-03 [1] CRAN (R 4.2.0)
 prettyunits        1.1.1    2020-01-24 [1] CRAN (R 4.2.0)
 processx           3.7.0    2022-07-07 [1] CRAN (R 4.2.0)
 profvis            0.3.7    2020-11-02 [1] CRAN (R 4.2.0)
 promises           1.2.0.1  2021-02-11 [1] CRAN (R 4.2.0)
 ps                 1.7.1    2022-06-18 [1] CRAN (R 4.2.0)
 purrr              0.3.4    2020-04-17 [1] CRAN (R 4.2.0)
 pvclust          * 2.2-0    2019-11-19 [1] CRAN (R 4.2.0)
 qiime2R          * 0.99.6   2022-08-29 [1] Github (jbisanz/qiime2R@2a3cee1)
 questionr          0.7.7    2022-01-31 [1] CRAN (R 4.2.0)
 R6                 2.5.1    2021-08-19 [1] CRAN (R 4.2.0)
 RColorBrewer     * 1.1-3    2022-04-03 [1] CRAN (R 4.2.0)
 Rcpp               1.0.9    2022-07-08 [1] CRAN (R 4.2.0)
 RCurl              1.98-1.8 2022-07-30 [1] CRAN (R 4.2.0)
 remotes            2.4.2    2021-11-30 [1] CRAN (R 4.2.0)
 reshape2           1.4.4    2020-04-09 [1] CRAN (R 4.2.0)
 rhdf5              2.40.0   2022-04-26 [1] Bioconductor
 rhdf5filters       1.8.0    2022-04-26 [1] Bioconductor
 Rhdf5lib           1.18.2   2022-05-17 [1] Bioconductor
 rlang              1.0.4    2022-07-12 [1] CRAN (R 4.2.0)
 rmarkdown          2.16     2022-08-24 [1] CRAN (R 4.2.0)
 rpart              4.1.16   2022-01-24 [1] CRAN (R 4.2.1)
 rsconnect          0.8.27   2022-07-12 [1] CRAN (R 4.2.1)
 rstatix            0.7.0    2021-02-13 [1] CRAN (R 4.2.0)
 rstudioapi         0.14     2022-08-22 [1] CRAN (R 4.2.0)
 S4Vectors          0.34.0   2022-04-26 [1] Bioconductor
 sass               0.4.2    2022-07-16 [1] CRAN (R 4.2.0)
 scales             1.2.1    2022-08-20 [1] CRAN (R 4.2.0)
 sessioninfo        1.2.2    2021-12-06 [1] CRAN (R 4.2.0)
 shiny              1.7.2    2022-07-19 [1] CRAN (R 4.2.0)
 stringi            1.7.8    2022-07-11 [1] CRAN (R 4.2.0)
 stringr            1.4.1    2022-08-20 [1] CRAN (R 4.2.0)
 survival           3.3-1    2022-03-03 [1] CRAN (R 4.2.1)
 tibble             3.1.8    2022-07-22 [1] CRAN (R 4.2.0)
 tidyr            * 1.2.0    2022-02-01 [1] CRAN (R 4.2.0)
 tidyselect         1.1.2    2022-02-21 [1] CRAN (R 4.2.0)
 truncnorm          1.0-8    2018-02-27 [1] CRAN (R 4.2.0)
 UpSetR           * 1.4.0    2019-05-22 [1] CRAN (R 4.2.0)
 urlchecker         1.0.1    2021-11-30 [1] CRAN (R 4.2.0)
 usethis          * 2.1.6    2022-05-25 [1] CRAN (R 4.2.0)
 utf8               1.2.2    2021-07-24 [1] CRAN (R 4.2.0)
 vctrs              0.4.1    2022-04-13 [1] CRAN (R 4.2.0)
 vegan            * 2.6-2    2022-04-17 [1] CRAN (R 4.2.0)
 withr              2.5.0    2022-03-03 [1] CRAN (R 4.2.0)
 xfun               0.32     2022-08-10 [1] CRAN (R 4.2.0)
 xtable             1.8-4    2019-04-21 [1] CRAN (R 4.2.0)
 XVector            0.36.0   2022-04-26 [1] Bioconductor
 yaml               2.3.5    2022-02-21 [1] CRAN (R 4.2.0)
 zCompositions      1.4.0-1  2022-03-26 [1] CRAN (R 4.2.0)
 zlibbioc           1.42.0   2022-04-26 [1] Bioconductor

 [1] /Library/Frameworks/R.framework/Versions/4.2/Resources/library

───────────────────────────────────────────────────────────────────────────────────
LS0tCnRpdGxlOiAiTWljcm9iaWFsIFJlc3BvbnNlIHRvIEludGVybWl0dGVudCBQZXJtYWZyb3N0IFRoYXcgLS0gQ29ycmVsYXRpb24iCmF1dGhvcjogJ0F1dGhvcnM6IFtLYXJsIEouIFJvbWFub3dpY3pdKGh0dHBzOi8va3JvbWFub3dpY3ouZ2l0aHViLmlvLykgYW5kIEdlb3JnZSBXLiBLbGluZycKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICB0aGVtZTogc3BhY2VsYWIKICAgIHRvYzogeWVzCiAgICB0b2NfZGVwdGg6IDUKICAgIHRvY19mbG9hdDoKICAgICAgY29sbGFwc2VkOiB5ZXMKICAgICAgc21vb3RoX3Njcm9sbDogeWVzCiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogeWVzCiAgICB0b2NfZGVwdGg6ICc1JwogICAgZGZfcHJpbnQ6IHBhZ2VkCiAgcGRmX2RvY3VtZW50OgogICAgdG9jOiB5ZXMKICAgIHRvY19kZXB0aDogJzUnCi0tLQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCioqUiBOb3RlYm9vazoqKiA8Zm9udCBjb2xvcj0iZ3JlZW4iPlByb3ZpZGVzIHJlcHJvZHVjaWJsZSBhbmFseXNpcyBmb3IgKipUaGF3IER1cmF0aW9uIENvcnJlbGF0aW9uKiogZGF0YSBpbiB0aGUgZm9sbG93aW5nIG1hbnVzY3JpcHQ6PC9mb250PgoKKipDaXRhdGlvbjoqKiBSb21hbm93aWN6IEtKIGFuZCBLbGluZyBHVy4gKCoqKkluIFByZXNzKioqKSBTdW1tZXIgdGhhdyBkdXJhdGlvbiBpcyBhIHN0cm9uZyBwcmVkaWN0b3Igb2YgdGhlIHNvaWwgbWljcm9iaW9tZSBhbmQgaXRzIHJlc3BvbnNlIHRvIHBlcm1hZnJvc3QgdGhhdyBpbiBhcmN0aWMgdHVuZHJhLiAqKipFbnZpcm9ubWVudGFsIE1pY3JvYmlvbG9neSoqKi4gW2h0dHBzOi8vZG9pLm9yZy8xMC4xMTExLzE0NjItMjkyMC4xNjIxOF0oaHR0cHM6Ly9kb2kub3JnLzEwLjExMTEvMTQ2Mi0yOTIwLjE2MjE4KQoKKipHaXRIdWIgUmVwb3NpdG9yeToqKiBbaHR0cHM6Ly9naXRodWIuY29tL2tyb21hbm93aWN6LzIwMjItQW5udWFsLVRoYXctTWljcm9iZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9rcm9tYW5vd2ljei8yMDIyLUFubnVhbC1UaGF3LU1pY3JvYmVzKQoKKipOQ0JJIEJpb1Byb2plY3Q6KiogW2h0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvYmlvcHJvamVjdC8/dGVybT1QUkpOQTc5NDg1N10oaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9iaW9wcm9qZWN0Lz90ZXJtPVBSSk5BNzk0ODU3KQoKKipBY2NlcHRlZCBmb3IgUHVibGljYXRpb246KiogPGZvbnQgY29sb3I9ImdyZWVuIj4yMiBTZXB0ZW1iZXIgMjAyMjwvZm9udD4gKkVudmlyb25tZW50YWwgTWljcm9iaW9sb2d5KgoKIyBFeHBlcmltZW50CgpUaGlzIFIgTm90ZWJvb2sgcHJvdmlkZXMgY29tcGxldGUgcmVwcm9kdWNpYmlsaXR5IG9mIHRoZSBkYXRhIGFuYWx5c2lzIHByZXNlbnRlZCBpbiAqKioiU3VtbWVyIHRoYXcgZHVyYXRpb24gaXMgYSBzdHJvbmcgcHJlZGljdG9yIG9mIHRoZSBzb2lsIG1pY3JvYmlvbWUgYW5kIGl0cyByZXNwb25zZSB0byBwZXJtYWZyb3N0IHRoYXcgaW4gYXJjdGljIHR1bmRyYSIqKiogYnkgUm9tYW5vd2ljeiBhbmQgS2xpbmcuCgo8Zm9udCBjb2xvcj0iZ3JlZW4iPlRoaXMgcGlwZWxpbmUgY2FsY3VsYXRlcyBjb3JyZWxhdGlvbnMgYmV0d2VlbiB0aGUgcmVsYXRpdmUgYWJ1bmRhbmNlIG9mIG1pY3JvYmlhbCB0YXhhIGF0IHRoZSBwaHlsdW0tbGV2ZWwgd2l0aCBzb2lsIGNoZW1pc3RyeSB2YXJpYWJsZXMgb3IgYW5udWFsIHRoYXcgZHVyYXRpb24gYnkgc29pbCBkZXB0aC48L2ZvbnQ+CgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0KIyBTZXQgZ2xvYmFsIG9wdGlvbnMgZm9yIG5vdGVib29rCmtuaXRyOjpvcHRzX2tuaXQkc2V0KHJvb3QuZGlyID0gbm9ybWFsaXplUGF0aCgifi9EZXNrdG9wL1R1bmRyYVBybzE4IikpCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkKYGBgCgpgYGB7ciBtZXNzYWdlPUZBTFNFLCByZXN1bHRzPSdoaWRlJywgd2FybmluZz1GQUxTRX0KIyBNYWtlIGEgdmVjdG9yIG9mIHJlcXVpcmVkIHBhY2thZ2VzCnJlcXVpcmVkLnBhY2thZ2VzIDwtIGMoImNvcnJyIiwiZGF0YS50YWJsZSIsImRldnRvb2xzIiwiZHBseXIiLCJmb3JjYXRzIiwiZ2dhbGx1dmlhbCIsImdnZGVuZHJvIiwiZ2dwbG90MiIsImdncHViciIsImdyaWQiLCJncmlkRXh0cmEiLCJrbml0ciIsIm1hZ3JpdHRyIiwibWljcm9lY28iLCJwYXRjaHdvcmsiLCJwaGVhdG1hcCIsInB2Y2x1c3QiLCJxaWltZTJSIiwiUkNvbG9yQnJld2VyIiwidGlkeXIiLCJVcFNldFIiLCJ2ZWdhbiIpCgojIExvYWQgcmVxdWlyZWQgcGFja2FnZXMKbGFwcGx5KHJlcXVpcmVkLnBhY2thZ2VzLCBsaWJyYXJ5LCBjaGFyYWN0ZXIub25seSA9IFRSVUUpCmBgYAoKYGBge3IgaW5jbHVkZT1GQUxTRX0KIyBzZXQuc2VlZCBpcyB1c2VkIHRvIGZpeCB0aGUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIHRvIG1ha2UgdGhlIHJlc3VsdHMgcmVwZWF0YWJsZQpzZXQuc2VlZCgxMjMpCmBgYAoKIyBDb3JyZWxhdGlvbnMKCkNvcnJlbGF0aW9uIGFuYWx5c2lzIHVzZXMgbm9uLXBhcmFtZXRyaWMgU3BlYXJtYW4gUmFuayBDb3JyZWxhdGlvbnMgdG8gb3ZlcmNvbWUgdGhlIGxhY2sgb2Ygbm9ybWFsbHkgZGlzdHJpYnV0ZWQgZGF0YS4gRXhhbXBsZXMgb2Ygbm9ybWFsaXR5IChvciBsYWNrIHRoZXJlb2YpIHdpdGhpbiB0aGUgZGF0YSBhcmUgcHJvdmlkZWQgaW4gdGhlICoqIk5vcm1hbGl0eSBDaGVjayIqKiBzZWN0aW9uIG9mIHRoaXMgd29ya2Jvb2suCgojIyBUb29saWsgTUFUCgojIyMgVGhhdyBEYXlzOiBUYXhhClRUVCBUaGF3IFByb2JhYmlsaXR5IENvcnJlbGF0aW9ucyAtLSBTb2lsIENoZW1pc3RyeSBhbmQgVGF4b25vbXkKYGBge3J9CnR0dC5kYXRhLmNvcnI8LXJlYWQuY3N2KCJRSUlNRS9TSUxWQS9SX0RhdGEvdHR0LmRhdGEuY29yci5jc3YiKQoKIyBDb252ZXJ0IGZpcnN0IGNvbHVtbiB0byByb3cgbmFtZXMKcm93bmFtZXModHR0LmRhdGEuY29ycik8LXR0dC5kYXRhLmNvcnJbLDFdCnR0dC5kYXRhLmNvcnI8LXR0dC5kYXRhLmNvcnJbLC0xXQpgYGAKCiJUaGF3IERheXMiIGFzIHdlbGwgYXMgbWFueSB0YXhhIGhhdmUgbm9uLW5vcm1hbCBkaXN0cmlidXRpb25zLiBVc2UgU3BlYXJtYW4ncyBjb3JyZWxhdGlvbiBhcyBhIG5vbi1wYXJhbWV0cmljIHN0YXRpc3RpY2FsIGFuYWx5c2lzIHRvIG92ZXJjb21lIGxhY2sgb2Ygbm9ybWFsaXR5LgpgYGB7cn0KIyBTcGVhcm1hbiBDb3JyZWxhdGlvbiBUZXN0cyBiZXR3ZWVuIFRoYXcgRGF5cyBhbmQgVGF4b25vbXkKY29yLnRlc3QodHR0LmRhdGEuY29yciRUaGF3X0RheXMsIHR0dC5kYXRhLmNvcnIkQWNpZG9iYWN0ZXJpb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRUaGF3X0RheXMsIHR0dC5kYXRhLmNvcnIkQWN0aW5vYmFjdGVyaW90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkVGhhd19EYXlzLCB0dHQuZGF0YS5jb3JyJEJhY3Rlcm9pZG90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkVGhhd19EYXlzLCB0dHQuZGF0YS5jb3JyJENhbGRpc2VyaWNvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJFRoYXdfRGF5cywgdHR0LmRhdGEuY29yciRDaGxvcm9mbGV4aSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkVGhhd19EYXlzLCB0dHQuZGF0YS5jb3JyJERlc3VsZm9iYWN0ZXJvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJFRoYXdfRGF5cywgdHR0LmRhdGEuY29yciRGaXJtaWN1dGVzLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRUaGF3X0RheXMsIHR0dC5kYXRhLmNvcnIkR2VtbWF0aW1vbmFkb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRUaGF3X0RheXMsIHR0dC5kYXRhLmNvcnIkTXl4b2NvY2NvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJFRoYXdfRGF5cywgdHR0LmRhdGEuY29yciRQYXRlc2NpYmFjdGVyaWEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJFRoYXdfRGF5cywgdHR0LmRhdGEuY29yciRQbGFuY3RvbXljZXRvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJFRoYXdfRGF5cywgdHR0LmRhdGEuY29yciRWZXJydWNvbWljcm9iaW90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkVGhhd19EYXlzLCB0dHQuZGF0YS5jb3JyJEFscGhhcHJvdGVvYmFjdGVyaWEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJFRoYXdfRGF5cywgdHR0LmRhdGEuY29yciRHYW1tYXByb3Rlb2JhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRUaGF3X0RheXMsIHR0dC5kYXRhLmNvcnIkQXJjaGFlYSwgbWV0aG9kPSJzcGVhcm1hbiIpCmBgYAoKIyMjIFNvaWwgQ2hlbTogVGF4YQoKVXNlIFNwZWFybWFuJ3MgY29ycmVsYXRpb24gZm9yIHNvaWwgY2hlbWlzdHJ5IHZhcmlhYmxlcyBhbmQgdGF4YS4KYGBge3J9CiMgQ29ycmVsYXRpb24gVGVzdHMgYmV0d2VlbiBwSCBhbmQgVGF4b25vbXkKY29yLnRlc3QodHR0LmRhdGEuY29yciRwSCwgdHR0LmRhdGEuY29yciRBY2lkb2JhY3RlcmlvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJHBILCB0dHQuZGF0YS5jb3JyJEFjdGlub2JhY3RlcmlvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJHBILCB0dHQuZGF0YS5jb3JyJEJhY3Rlcm9pZG90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkcEgsIHR0dC5kYXRhLmNvcnIkQ2FsZGlzZXJpY290YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkcEgsIHR0dC5kYXRhLmNvcnIkQ2hsb3JvZmxleGksIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJHBILCB0dHQuZGF0YS5jb3JyJERlc3VsZm9iYWN0ZXJvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJHBILCB0dHQuZGF0YS5jb3JyJEZpcm1pY3V0ZXMsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJHBILCB0dHQuZGF0YS5jb3JyJEdlbW1hdGltb25hZG90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkcEgsIHR0dC5kYXRhLmNvcnIkTXl4b2NvY2NvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJHBILCB0dHQuZGF0YS5jb3JyJFBhdGVzY2liYWN0ZXJpYSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkcEgsIHR0dC5kYXRhLmNvcnIkUGxhbmN0b215Y2V0b3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRwSCwgdHR0LmRhdGEuY29yciRWZXJydWNvbWljcm9iaW90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkcEgsIHR0dC5kYXRhLmNvcnIkQWxwaGFwcm90ZW9iYWN0ZXJpYSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkcEgsIHR0dC5kYXRhLmNvcnIkR2FtbWFwcm90ZW9iYWN0ZXJpYSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkcEgsIHR0dC5kYXRhLmNvcnIkQXJjaGFlYSwgbWV0aG9kPSJzcGVhcm1hbiIpCgojIENvcnJlbGF0aW9uIFRlc3RzIGJldHdlZW4gRUMgYW5kIFRheG9ub215CmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkRUMsIHR0dC5kYXRhLmNvcnIkQWNpZG9iYWN0ZXJpb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRFQywgdHR0LmRhdGEuY29yciRBY3Rpbm9iYWN0ZXJpb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRFQywgdHR0LmRhdGEuY29yciRCYWN0ZXJvaWRvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJEVDLCB0dHQuZGF0YS5jb3JyJENhbGRpc2VyaWNvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJEVDLCB0dHQuZGF0YS5jb3JyJENobG9yb2ZsZXhpLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRFQywgdHR0LmRhdGEuY29yciREZXN1bGZvYmFjdGVyb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRFQywgdHR0LmRhdGEuY29yciRGaXJtaWN1dGVzLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRFQywgdHR0LmRhdGEuY29yciRHZW1tYXRpbW9uYWRvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJEVDLCB0dHQuZGF0YS5jb3JyJE15eG9jb2Njb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRFQywgdHR0LmRhdGEuY29yciRQYXRlc2NpYmFjdGVyaWEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJEVDLCB0dHQuZGF0YS5jb3JyJFBsYW5jdG9teWNldG90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkRUMsIHR0dC5kYXRhLmNvcnIkVmVycnVjb21pY3JvYmlvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJEVDLCB0dHQuZGF0YS5jb3JyJEFscGhhcHJvdGVvYmFjdGVyaWEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJEVDLCB0dHQuZGF0YS5jb3JyJEdhbW1hcHJvdGVvYmFjdGVyaWEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJEVDLCB0dHQuZGF0YS5jb3JyJEFyY2hhZWEsIG1ldGhvZD0ic3BlYXJtYW4iKQoKIyBDb3JyZWxhdGlvbiBUZXN0cyBiZXR3ZWVuIEdXQyBhbmQgVGF4b25vbXkKY29yLnRlc3QodHR0LmRhdGEuY29yciRHV0MsIHR0dC5kYXRhLmNvcnIkQWNpZG9iYWN0ZXJpb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRHV0MsIHR0dC5kYXRhLmNvcnIkQWN0aW5vYmFjdGVyaW90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkR1dDLCB0dHQuZGF0YS5jb3JyJEJhY3Rlcm9pZG90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkR1dDLCB0dHQuZGF0YS5jb3JyJENhbGRpc2VyaWNvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJEdXQywgdHR0LmRhdGEuY29yciRDaGxvcm9mbGV4aSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkR1dDLCB0dHQuZGF0YS5jb3JyJERlc3VsZm9iYWN0ZXJvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJEdXQywgdHR0LmRhdGEuY29yciRGaXJtaWN1dGVzLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRHV0MsIHR0dC5kYXRhLmNvcnIkR2VtbWF0aW1vbmFkb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRHV0MsIHR0dC5kYXRhLmNvcnIkTXl4b2NvY2NvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJEdXQywgdHR0LmRhdGEuY29yciRQYXRlc2NpYmFjdGVyaWEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJEdXQywgdHR0LmRhdGEuY29yciRQbGFuY3RvbXljZXRvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJEdXQywgdHR0LmRhdGEuY29yciRWZXJydWNvbWljcm9iaW90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkR1dDLCB0dHQuZGF0YS5jb3JyJEFscGhhcHJvdGVvYmFjdGVyaWEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJEdXQywgdHR0LmRhdGEuY29yciRHYW1tYXByb3Rlb2JhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRHV0MsIHR0dC5kYXRhLmNvcnIkQXJjaGFlYSwgbWV0aG9kPSJzcGVhcm1hbiIpCgojIENvcnJlbGF0aW9uIFRlc3RzIGJldHdlZW4gVE9DIGFuZCBUYXhvbm9teQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJE9DLCB0dHQuZGF0YS5jb3JyJEFjaWRvYmFjdGVyaW90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkT0MsIHR0dC5kYXRhLmNvcnIkQWN0aW5vYmFjdGVyaW90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkT0MsIHR0dC5kYXRhLmNvcnIkQmFjdGVyb2lkb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRPQywgdHR0LmRhdGEuY29yciRDYWxkaXNlcmljb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRPQywgdHR0LmRhdGEuY29yciRDaGxvcm9mbGV4aSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkT0MsIHR0dC5kYXRhLmNvcnIkRGVzdWxmb2JhY3Rlcm90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkT0MsIHR0dC5kYXRhLmNvcnIkRmlybWljdXRlcywgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkT0MsIHR0dC5kYXRhLmNvcnIkR2VtbWF0aW1vbmFkb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRPQywgdHR0LmRhdGEuY29yciRNeXhvY29jY290YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KHR0dC5kYXRhLmNvcnIkT0MsIHR0dC5kYXRhLmNvcnIkUGF0ZXNjaWJhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRPQywgdHR0LmRhdGEuY29yciRQbGFuY3RvbXljZXRvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdCh0dHQuZGF0YS5jb3JyJE9DLCB0dHQuZGF0YS5jb3JyJFZlcnJ1Y29taWNyb2Jpb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRPQywgdHR0LmRhdGEuY29yciRBbHBoYXByb3Rlb2JhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRPQywgdHR0LmRhdGEuY29yciRHYW1tYXByb3Rlb2JhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QodHR0LmRhdGEuY29yciRPQywgdHR0LmRhdGEuY29yciRBcmNoYWVhLCBtZXRob2Q9InNwZWFybWFuIikKYGBgCgojIyMgVFRUIFBsb3R0aW5nCgpCZWZvcmUgcGxvdHRpbmcsIG5lZWQgdG8gcmVtb3ZlIGNvbHVtbnMgZnJvbSBmdWxsIGRhdGFzZXQKYGBge3J9CiMgUmVtb3ZlIHRoYXcgcHJvYmFiaWxpdHkgY29sdW1ucyBhbmQgc29pbCBjaGVtaXN0cnkgZm9yIHBsb3R0aW5nCnR0dC5kYXRhLmNvcnIgPC0gc3Vic2V0KHR0dC5kYXRhLmNvcnIsIHNlbGVjdCA9IC1jKFRoYXdfUHJvYl9KdWx5X0FsbCwgVGhhd19Qcm9iX0F1Z19BbGwsIFRoYXdfUHJvYl9BdWdfMTAsIFRoYXdfUHJvYl9BdWdfNSwgcEgsIEVDLCBHV0MsIE9DKSkKYGBgCgpgYGB7cn0KIyBDb3JyZWxhdGlvbiBwbG90IGZvciBhbm51YWwgdGhhdyBkdXJhdGlvbiAodGhhdyBkYXlzKSB1c2luZyBTcGVhcm1hbidzIHJobwp0dHQudGhhdy5kYXkuY29yci5wbG90IDwtIHR0dC5kYXRhLmNvcnIgJT4lIGNvcnJlbGF0ZShtZXRob2QgPSAic3BlYXJtYW4iKSAlPiUgZm9jdXMoVGhhd19EYXlzKSAlPiUgbXV0YXRlKHRlcm0gPSBmYWN0b3IodGVybSwgbGV2ZWxzID0gdGVybVtvcmRlcihUaGF3X0RheXMpXSkpICU+JSBnZ3Bsb3QoYWVzKHggPSB0ZXJtLCB5ID0gVGhhd19EYXlzKSkgKyBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKyB0aGVtZV9jbGFzc2ljKCkgKyB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdD0xKSwgYXhpcy50aXRsZS54ID0gZWxlbWVudF9ibGFuaygpLCB0ZXh0ID0gZWxlbWVudF90ZXh0KHNpemU9MTYpKSArIHlsYWIoZXhwcmVzc2lvbihhdG9wKCJBbm51YWwgVGhhdyBEdXJhdGlvbiIsIHBhc3RlKCJTcGVhcm1hbiBDb3JyZWxhdGlvbiIpKSkpICsgeWxpbSgtMSwxKQoKdHR0LnRoYXcuZGF5LmNvcnIucGxvdAoKIyBTYXZlIGFzIC5lcHMgZmlsZSAod2lkdGggPSA2MDA7IGhlaWdodCA9IDQ1MDsgInR0dC50aGF3LmRheS5jb3JyLmVwcyIpCmBgYAoKIyMgSW1uYXZhaXQgTUFUCgojIyMgVGhhdyBEYXlzOiBUYXhhCgpJVFQgVGhhdyBQcm9iYWJpbGl0eSBDb3JyZWxhdGlvbnMgLS0gU29pbCBDaGVtaXN0cnkgYW5kIFRheG9ub215CmBgYHtyfQppdHQuZGF0YS5jb3JyPC1yZWFkLmNzdigiUUlJTUUvU0lMVkEvUl9EYXRhL2l0dC5kYXRhLmNvcnIuY3N2IikKCiMgQ29udmVydCBmaXJzdCBjb2x1bW4gdG8gcm93IG5hbWVzCnJvd25hbWVzKGl0dC5kYXRhLmNvcnIpPC1pdHQuZGF0YS5jb3JyWywxXQppdHQuZGF0YS5jb3JyPC1pdHQuZGF0YS5jb3JyWywtMV0KYGBgCgoiVGhhdyBEYXlzIiBhcyB3ZWxsIGFzIG1hbnkgdGF4YSBoYXZlIG5vbi1ub3JtYWwgZGlzdHJpYnV0aW9ucy4gVXNlIFNwZWFybWFuJ3MgY29ycmVsYXRpb24gYXMgYSBub24tcGFyYW1ldHJpYyBzdGF0aXN0aWNhbCBhbmFseXNpcyB0byBvdmVyY29tZSBsYWNrIG9mIG5vcm1hbGl0eS4KYGBge3J9CiMgU3BlYXJtYW4gQ29ycmVsYXRpb24gVGVzdHMgYmV0d2VlbiBUaGF3IERheXMgYW5kIFRheG9ub215CmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkVGhhd19EYXlzLCBpdHQuZGF0YS5jb3JyJEFjaWRvYmFjdGVyaW90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkVGhhd19EYXlzLCBpdHQuZGF0YS5jb3JyJEFjdGlub2JhY3RlcmlvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJFRoYXdfRGF5cywgaXR0LmRhdGEuY29yciRCYWN0ZXJvaWRvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJFRoYXdfRGF5cywgaXR0LmRhdGEuY29yciRDYWxkaXNlcmljb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRUaGF3X0RheXMsIGl0dC5kYXRhLmNvcnIkQ2hsb3JvZmxleGksIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJFRoYXdfRGF5cywgaXR0LmRhdGEuY29yciREZXN1bGZvYmFjdGVyb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRUaGF3X0RheXMsIGl0dC5kYXRhLmNvcnIkRmlybWljdXRlcywgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkVGhhd19EYXlzLCBpdHQuZGF0YS5jb3JyJEdlbW1hdGltb25hZG90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkVGhhd19EYXlzLCBpdHQuZGF0YS5jb3JyJE15eG9jb2Njb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRUaGF3X0RheXMsIGl0dC5kYXRhLmNvcnIkUGF0ZXNjaWJhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRUaGF3X0RheXMsIGl0dC5kYXRhLmNvcnIkUGxhbmN0b215Y2V0b3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRUaGF3X0RheXMsIGl0dC5kYXRhLmNvcnIkVmVycnVjb21pY3JvYmlvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJFRoYXdfRGF5cywgaXR0LmRhdGEuY29yciRBbHBoYXByb3Rlb2JhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRUaGF3X0RheXMsIGl0dC5kYXRhLmNvcnIkR2FtbWFwcm90ZW9iYWN0ZXJpYSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkVGhhd19EYXlzLCBpdHQuZGF0YS5jb3JyJEFyY2hhZWEsIG1ldGhvZD0ic3BlYXJtYW4iKQpgYGAKCiMjIyBTb2lsIENoZW06IFRheGEKClVzZSBTcGVhcm1hbidzIGNvcnJlbGF0aW9uIGZvciBzb2lsIGNoZW1pc3RyeSB2YXJpYWJsZXMgYW5kIHRheGEuCmBgYHtyfQojIENvcnJlbGF0aW9uIFRlc3RzIGJldHdlZW4gcEggYW5kIFRheG9ub215CmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkcEgsIGl0dC5kYXRhLmNvcnIkQWNpZG9iYWN0ZXJpb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRwSCwgaXR0LmRhdGEuY29yciRBY3Rpbm9iYWN0ZXJpb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRwSCwgaXR0LmRhdGEuY29yciRCYWN0ZXJvaWRvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJHBILCBpdHQuZGF0YS5jb3JyJENhbGRpc2VyaWNvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJHBILCBpdHQuZGF0YS5jb3JyJENobG9yb2ZsZXhpLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRwSCwgaXR0LmRhdGEuY29yciREZXN1bGZvYmFjdGVyb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRwSCwgaXR0LmRhdGEuY29yciRGaXJtaWN1dGVzLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRwSCwgaXR0LmRhdGEuY29yciRHZW1tYXRpbW9uYWRvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJHBILCBpdHQuZGF0YS5jb3JyJE15eG9jb2Njb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRwSCwgaXR0LmRhdGEuY29yciRQYXRlc2NpYmFjdGVyaWEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJHBILCBpdHQuZGF0YS5jb3JyJFBsYW5jdG9teWNldG90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkcEgsIGl0dC5kYXRhLmNvcnIkVmVycnVjb21pY3JvYmlvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJHBILCBpdHQuZGF0YS5jb3JyJEFscGhhcHJvdGVvYmFjdGVyaWEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJHBILCBpdHQuZGF0YS5jb3JyJEdhbW1hcHJvdGVvYmFjdGVyaWEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJHBILCBpdHQuZGF0YS5jb3JyJEFyY2hhZWEsIG1ldGhvZD0ic3BlYXJtYW4iKQoKIyBDb3JyZWxhdGlvbiBUZXN0cyBiZXR3ZWVuIEVDIGFuZCBUYXhvbm9teQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJEVDLCBpdHQuZGF0YS5jb3JyJEFjaWRvYmFjdGVyaW90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkRUMsIGl0dC5kYXRhLmNvcnIkQWN0aW5vYmFjdGVyaW90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkRUMsIGl0dC5kYXRhLmNvcnIkQmFjdGVyb2lkb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRFQywgaXR0LmRhdGEuY29yciRDYWxkaXNlcmljb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRFQywgaXR0LmRhdGEuY29yciRDaGxvcm9mbGV4aSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkRUMsIGl0dC5kYXRhLmNvcnIkRGVzdWxmb2JhY3Rlcm90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkRUMsIGl0dC5kYXRhLmNvcnIkRmlybWljdXRlcywgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkRUMsIGl0dC5kYXRhLmNvcnIkR2VtbWF0aW1vbmFkb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRFQywgaXR0LmRhdGEuY29yciRNeXhvY29jY290YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkRUMsIGl0dC5kYXRhLmNvcnIkUGF0ZXNjaWJhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRFQywgaXR0LmRhdGEuY29yciRQbGFuY3RvbXljZXRvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJEVDLCBpdHQuZGF0YS5jb3JyJFZlcnJ1Y29taWNyb2Jpb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRFQywgaXR0LmRhdGEuY29yciRBbHBoYXByb3Rlb2JhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRFQywgaXR0LmRhdGEuY29yciRHYW1tYXByb3Rlb2JhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRFQywgaXR0LmRhdGEuY29yciRBcmNoYWVhLCBtZXRob2Q9InNwZWFybWFuIikKCiMgQ29ycmVsYXRpb24gVGVzdHMgYmV0d2VlbiBHV0MgYW5kIFRheG9ub215CmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkR1dDLCBpdHQuZGF0YS5jb3JyJEFjaWRvYmFjdGVyaW90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkR1dDLCBpdHQuZGF0YS5jb3JyJEFjdGlub2JhY3RlcmlvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJEdXQywgaXR0LmRhdGEuY29yciRCYWN0ZXJvaWRvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJEdXQywgaXR0LmRhdGEuY29yciRDYWxkaXNlcmljb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRHV0MsIGl0dC5kYXRhLmNvcnIkQ2hsb3JvZmxleGksIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJEdXQywgaXR0LmRhdGEuY29yciREZXN1bGZvYmFjdGVyb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRHV0MsIGl0dC5kYXRhLmNvcnIkRmlybWljdXRlcywgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkR1dDLCBpdHQuZGF0YS5jb3JyJEdlbW1hdGltb25hZG90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkR1dDLCBpdHQuZGF0YS5jb3JyJE15eG9jb2Njb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRHV0MsIGl0dC5kYXRhLmNvcnIkUGF0ZXNjaWJhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRHV0MsIGl0dC5kYXRhLmNvcnIkUGxhbmN0b215Y2V0b3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRHV0MsIGl0dC5kYXRhLmNvcnIkVmVycnVjb21pY3JvYmlvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJEdXQywgaXR0LmRhdGEuY29yciRBbHBoYXByb3Rlb2JhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRHV0MsIGl0dC5kYXRhLmNvcnIkR2FtbWFwcm90ZW9iYWN0ZXJpYSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkR1dDLCBpdHQuZGF0YS5jb3JyJEFyY2hhZWEsIG1ldGhvZD0ic3BlYXJtYW4iKQoKIyBDb3JyZWxhdGlvbiBUZXN0cyBiZXR3ZWVuIFRPQyBhbmQgVGF4b25vbXkKY29yLnRlc3QoaXR0LmRhdGEuY29yciRPQywgaXR0LmRhdGEuY29yciRBY2lkb2JhY3RlcmlvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJE9DLCBpdHQuZGF0YS5jb3JyJEFjdGlub2JhY3RlcmlvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJE9DLCBpdHQuZGF0YS5jb3JyJEJhY3Rlcm9pZG90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkT0MsIGl0dC5kYXRhLmNvcnIkQ2FsZGlzZXJpY290YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkT0MsIGl0dC5kYXRhLmNvcnIkQ2hsb3JvZmxleGksIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJE9DLCBpdHQuZGF0YS5jb3JyJERlc3VsZm9iYWN0ZXJvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJE9DLCBpdHQuZGF0YS5jb3JyJEZpcm1pY3V0ZXMsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJE9DLCBpdHQuZGF0YS5jb3JyJEdlbW1hdGltb25hZG90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkT0MsIGl0dC5kYXRhLmNvcnIkTXl4b2NvY2NvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpdHQuZGF0YS5jb3JyJE9DLCBpdHQuZGF0YS5jb3JyJFBhdGVzY2liYWN0ZXJpYSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkT0MsIGl0dC5kYXRhLmNvcnIkUGxhbmN0b215Y2V0b3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXR0LmRhdGEuY29yciRPQywgaXR0LmRhdGEuY29yciRWZXJydWNvbWljcm9iaW90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkT0MsIGl0dC5kYXRhLmNvcnIkQWxwaGFwcm90ZW9iYWN0ZXJpYSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkT0MsIGl0dC5kYXRhLmNvcnIkR2FtbWFwcm90ZW9iYWN0ZXJpYSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl0dC5kYXRhLmNvcnIkT0MsIGl0dC5kYXRhLmNvcnIkQXJjaGFlYSwgbWV0aG9kPSJzcGVhcm1hbiIpCmBgYAoKIyMjIElUVCBQbG90dGluZwoKQmVmb3JlIHBsb3R0aW5nLCBuZWVkIHRvIHJlbW92ZSBjb2x1bW5zIGZyb20gZnVsbCBkYXRhc2V0CmBgYHtyfQojIFJlbW92ZSB0aGF3IHByb2JhYmlsaXR5IGNvbHVtbnMgYW5kIHNvaWwgY2hlbWlzdHJ5IGZvciBwbG90dGluZwppdHQuZGF0YS5jb3JyIDwtIHN1YnNldChpdHQuZGF0YS5jb3JyLCBzZWxlY3QgPSAtYyhUaGF3X1Byb2JfSnVseV9BbGwsIFRoYXdfUHJvYl9BdWdfQWxsLCBUaGF3X1Byb2JfQXVnXzEwLCBUaGF3X1Byb2JfQXVnXzUsIHBILCBFQywgR1dDLCBPQykpCmBgYAoKYGBge3J9CiMgQ29ycmVsYXRpb24gcGxvdCBmb3IgYW5udWFsIHRoYXcgZHVyYXRpb24gKHRoYXcgZGF5cykgdXNpbmcgU3BlYXJtYW4ncyByaG8KaXR0LnRoYXcuZGF5LmNvcnIucGxvdCA8LSBpdHQuZGF0YS5jb3JyICU+JSBjb3JyZWxhdGUobWV0aG9kID0gInNwZWFybWFuIikgJT4lIGZvY3VzKFRoYXdfRGF5cykgJT4lIG11dGF0ZSh0ZXJtID0gZmFjdG9yKHRlcm0sIGxldmVscyA9IHRlcm1bb3JkZXIoVGhhd19EYXlzKV0pKSAlPiUgZ2dwbG90KGFlcyh4ID0gdGVybSwgeSA9IFRoYXdfRGF5cykpICsgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpICsgdGhlbWVfY2xhc3NpYygpICsgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgaGp1c3Q9MSksIGF4aXMudGl0bGUueCA9IGVsZW1lbnRfYmxhbmsoKSwgdGV4dCA9IGVsZW1lbnRfdGV4dChzaXplPTE2KSkgKyB5bGFiKGV4cHJlc3Npb24oYXRvcCgiQW5udWFsIFRoYXcgRHVyYXRpb24iLCBwYXN0ZSgiU3BlYXJtYW4gQ29ycmVsYXRpb24iKSkpKSArIHlsaW0oLTEsMSkKCml0dC50aGF3LmRheS5jb3JyLnBsb3QKCiMgU2F2ZSBhcyAuZXBzIGZpbGUgKHdpZHRoID0gNjAwOyBoZWlnaHQgPSA0NTA7ICJpdHQudGhhdy5kYXkuY29yci5lcHMiKQpgYGAKCiMjIEltbmF2YWl0IFdTCgojIyMgVGhhdyBEYXlzOiBUYXhhCgpJV1MgVGhhdyBQcm9iYWJpbGl0eSBDb3JyZWxhdGlvbnMgLS0gU29pbCBDaGVtaXN0cnkgYW5kIFRheG9ub215CmBgYHtyfQppd3MuZGF0YS5jb3JyPC1yZWFkLmNzdigiUUlJTUUvU0lMVkEvUl9EYXRhL2l3cy5kYXRhLmNvcnIuY3N2IikKCiMgQ29udmVydCBmaXJzdCBjb2x1bW4gdG8gcm93IG5hbWVzCnJvd25hbWVzKGl3cy5kYXRhLmNvcnIpPC1pd3MuZGF0YS5jb3JyWywxXQppd3MuZGF0YS5jb3JyPC1pd3MuZGF0YS5jb3JyWywtMV0KYGBgCgoiVGhhdyBEYXlzIiBhcyB3ZWxsIGFzIG1hbnkgdGF4YSBoYXZlIG5vbi1ub3JtYWwgZGlzdHJpYnV0aW9ucy4gVXNlIFNwZWFybWFuJ3MgY29ycmVsYXRpb24gYXMgYSBub24tcGFyYW1ldHJpYyBzdGF0aXN0aWNhbCBhbmFseXNpcyB0byBvdmVyY29tZSBsYWNrIG9mIG5vcm1hbGl0eS4KYGBge3J9CiMgU3BlYXJtYW4gQ29ycmVsYXRpb24gVGVzdHMgYmV0d2VlbiBUaGF3IERheXMgYW5kIFRheG9ub215CmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkVGhhd19EYXlzLCBpd3MuZGF0YS5jb3JyJEFjaWRvYmFjdGVyaW90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkVGhhd19EYXlzLCBpd3MuZGF0YS5jb3JyJEFjdGlub2JhY3RlcmlvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJFRoYXdfRGF5cywgaXdzLmRhdGEuY29yciRCYWN0ZXJvaWRvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJFRoYXdfRGF5cywgaXdzLmRhdGEuY29yciRDYWxkaXNlcmljb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRUaGF3X0RheXMsIGl3cy5kYXRhLmNvcnIkQ2hsb3JvZmxleGksIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJFRoYXdfRGF5cywgaXdzLmRhdGEuY29yciREZXN1bGZvYmFjdGVyb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRUaGF3X0RheXMsIGl3cy5kYXRhLmNvcnIkRmlybWljdXRlcywgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkVGhhd19EYXlzLCBpd3MuZGF0YS5jb3JyJEdlbW1hdGltb25hZG90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkVGhhd19EYXlzLCBpd3MuZGF0YS5jb3JyJE15eG9jb2Njb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRUaGF3X0RheXMsIGl3cy5kYXRhLmNvcnIkUGF0ZXNjaWJhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRUaGF3X0RheXMsIGl3cy5kYXRhLmNvcnIkUGxhbmN0b215Y2V0b3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRUaGF3X0RheXMsIGl3cy5kYXRhLmNvcnIkVmVycnVjb21pY3JvYmlvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJFRoYXdfRGF5cywgaXdzLmRhdGEuY29yciRBbHBoYXByb3Rlb2JhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRUaGF3X0RheXMsIGl3cy5kYXRhLmNvcnIkR2FtbWFwcm90ZW9iYWN0ZXJpYSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkVGhhd19EYXlzLCBpd3MuZGF0YS5jb3JyJEFyY2hhZWEsIG1ldGhvZD0ic3BlYXJtYW4iKQpgYGAKCiMjIyBTb2lsIENoZW06IFRheGEKClVzZSBTcGVhcm1hbidzIGNvcnJlbGF0aW9uIGZvciBzb2lsIGNoZW1pc3RyeSB2YXJpYWJsZXMgYW5kIHRheGEuCmBgYHtyfQojIENvcnJlbGF0aW9uIFRlc3RzIGJldHdlZW4gcEggYW5kIFRheG9ub215CmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkcEgsIGl3cy5kYXRhLmNvcnIkQWNpZG9iYWN0ZXJpb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRwSCwgaXdzLmRhdGEuY29yciRBY3Rpbm9iYWN0ZXJpb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRwSCwgaXdzLmRhdGEuY29yciRCYWN0ZXJvaWRvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJHBILCBpd3MuZGF0YS5jb3JyJENhbGRpc2VyaWNvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJHBILCBpd3MuZGF0YS5jb3JyJENobG9yb2ZsZXhpLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRwSCwgaXdzLmRhdGEuY29yciREZXN1bGZvYmFjdGVyb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRwSCwgaXdzLmRhdGEuY29yciRGaXJtaWN1dGVzLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRwSCwgaXdzLmRhdGEuY29yciRHZW1tYXRpbW9uYWRvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJHBILCBpd3MuZGF0YS5jb3JyJE15eG9jb2Njb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRwSCwgaXdzLmRhdGEuY29yciRQYXRlc2NpYmFjdGVyaWEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJHBILCBpd3MuZGF0YS5jb3JyJFBsYW5jdG9teWNldG90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkcEgsIGl3cy5kYXRhLmNvcnIkVmVycnVjb21pY3JvYmlvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJHBILCBpd3MuZGF0YS5jb3JyJEFscGhhcHJvdGVvYmFjdGVyaWEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJHBILCBpd3MuZGF0YS5jb3JyJEdhbW1hcHJvdGVvYmFjdGVyaWEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJHBILCBpd3MuZGF0YS5jb3JyJEFyY2hhZWEsIG1ldGhvZD0ic3BlYXJtYW4iKQoKIyBDb3JyZWxhdGlvbiBUZXN0cyBiZXR3ZWVuIEVDIGFuZCBUYXhvbm9teQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJEVDLCBpd3MuZGF0YS5jb3JyJEFjaWRvYmFjdGVyaW90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkRUMsIGl3cy5kYXRhLmNvcnIkQWN0aW5vYmFjdGVyaW90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkRUMsIGl3cy5kYXRhLmNvcnIkQmFjdGVyb2lkb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRFQywgaXdzLmRhdGEuY29yciRDYWxkaXNlcmljb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRFQywgaXdzLmRhdGEuY29yciRDaGxvcm9mbGV4aSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkRUMsIGl3cy5kYXRhLmNvcnIkRGVzdWxmb2JhY3Rlcm90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkRUMsIGl3cy5kYXRhLmNvcnIkRmlybWljdXRlcywgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkRUMsIGl3cy5kYXRhLmNvcnIkR2VtbWF0aW1vbmFkb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRFQywgaXdzLmRhdGEuY29yciRNeXhvY29jY290YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkRUMsIGl3cy5kYXRhLmNvcnIkUGF0ZXNjaWJhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRFQywgaXdzLmRhdGEuY29yciRQbGFuY3RvbXljZXRvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJEVDLCBpd3MuZGF0YS5jb3JyJFZlcnJ1Y29taWNyb2Jpb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRFQywgaXdzLmRhdGEuY29yciRBbHBoYXByb3Rlb2JhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRFQywgaXdzLmRhdGEuY29yciRHYW1tYXByb3Rlb2JhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRFQywgaXdzLmRhdGEuY29yciRBcmNoYWVhLCBtZXRob2Q9InNwZWFybWFuIikKCiMgQ29ycmVsYXRpb24gVGVzdHMgYmV0d2VlbiBHV0MgYW5kIFRheG9ub215CmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkR1dDLCBpd3MuZGF0YS5jb3JyJEFjaWRvYmFjdGVyaW90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkR1dDLCBpd3MuZGF0YS5jb3JyJEFjdGlub2JhY3RlcmlvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJEdXQywgaXdzLmRhdGEuY29yciRCYWN0ZXJvaWRvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJEdXQywgaXdzLmRhdGEuY29yciRDYWxkaXNlcmljb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRHV0MsIGl3cy5kYXRhLmNvcnIkQ2hsb3JvZmxleGksIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJEdXQywgaXdzLmRhdGEuY29yciREZXN1bGZvYmFjdGVyb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRHV0MsIGl3cy5kYXRhLmNvcnIkRmlybWljdXRlcywgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkR1dDLCBpd3MuZGF0YS5jb3JyJEdlbW1hdGltb25hZG90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkR1dDLCBpd3MuZGF0YS5jb3JyJE15eG9jb2Njb3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRHV0MsIGl3cy5kYXRhLmNvcnIkUGF0ZXNjaWJhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRHV0MsIGl3cy5kYXRhLmNvcnIkUGxhbmN0b215Y2V0b3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRHV0MsIGl3cy5kYXRhLmNvcnIkVmVycnVjb21pY3JvYmlvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJEdXQywgaXdzLmRhdGEuY29yciRBbHBoYXByb3Rlb2JhY3RlcmlhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRHV0MsIGl3cy5kYXRhLmNvcnIkR2FtbWFwcm90ZW9iYWN0ZXJpYSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkR1dDLCBpd3MuZGF0YS5jb3JyJEFyY2hhZWEsIG1ldGhvZD0ic3BlYXJtYW4iKQoKIyBDb3JyZWxhdGlvbiBUZXN0cyBiZXR3ZWVuIFRPQyBhbmQgVGF4b25vbXkKY29yLnRlc3QoaXdzLmRhdGEuY29yciRPQywgaXdzLmRhdGEuY29yciRBY2lkb2JhY3RlcmlvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJE9DLCBpd3MuZGF0YS5jb3JyJEFjdGlub2JhY3RlcmlvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJE9DLCBpd3MuZGF0YS5jb3JyJEJhY3Rlcm9pZG90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkT0MsIGl3cy5kYXRhLmNvcnIkQ2FsZGlzZXJpY290YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkT0MsIGl3cy5kYXRhLmNvcnIkQ2hsb3JvZmxleGksIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJE9DLCBpd3MuZGF0YS5jb3JyJERlc3VsZm9iYWN0ZXJvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJE9DLCBpd3MuZGF0YS5jb3JyJEZpcm1pY3V0ZXMsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJE9DLCBpd3MuZGF0YS5jb3JyJEdlbW1hdGltb25hZG90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkT0MsIGl3cy5kYXRhLmNvcnIkTXl4b2NvY2NvdGEsIG1ldGhvZD0ic3BlYXJtYW4iKQpjb3IudGVzdChpd3MuZGF0YS5jb3JyJE9DLCBpd3MuZGF0YS5jb3JyJFBhdGVzY2liYWN0ZXJpYSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkT0MsIGl3cy5kYXRhLmNvcnIkUGxhbmN0b215Y2V0b3RhLCBtZXRob2Q9InNwZWFybWFuIikKY29yLnRlc3QoaXdzLmRhdGEuY29yciRPQywgaXdzLmRhdGEuY29yciRWZXJydWNvbWljcm9iaW90YSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkT0MsIGl3cy5kYXRhLmNvcnIkQWxwaGFwcm90ZW9iYWN0ZXJpYSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkT0MsIGl3cy5kYXRhLmNvcnIkR2FtbWFwcm90ZW9iYWN0ZXJpYSwgbWV0aG9kPSJzcGVhcm1hbiIpCmNvci50ZXN0KGl3cy5kYXRhLmNvcnIkT0MsIGl3cy5kYXRhLmNvcnIkQXJjaGFlYSwgbWV0aG9kPSJzcGVhcm1hbiIpCmBgYAoKIyMjIElXUyBQbG90dGluZwoKQmVmb3JlIHBsb3R0aW5nLCBuZWVkIHRvIHJlbW92ZSBjb2x1bW5zIGZyb20gZnVsbCBkYXRhc2V0CmBgYHtyfQojIFJlbW92ZSB0aGF3IHByb2JhYmlsaXR5IGNvbHVtbnMgYW5kIHNvaWwgY2hlbWlzdHJ5IGZvciBwbG90dGluZwppd3MuZGF0YS5jb3JyIDwtIHN1YnNldChpd3MuZGF0YS5jb3JyLCBzZWxlY3QgPSAtYyhUaGF3X1Byb2JfSnVseV9BbGwsIFRoYXdfUHJvYl9BdWdfQWxsLCBUaGF3X1Byb2JfQXVnXzEwLCBUaGF3X1Byb2JfQXVnXzUsIHBILCBFQywgR1dDLCBPQykpCmBgYAoKYGBge3J9CiMgQ29ycmVsYXRpb24gcGxvdCBmb3IgYW5udWFsIHRoYXcgZHVyYXRpb24gKHRoYXcgZGF5cykgdXNpbmcgU3BlYXJtYW4ncyByaG8KaXdzLnRoYXcuZGF5LmNvcnIucGxvdCA8LSBpd3MuZGF0YS5jb3JyICU+JSBjb3JyZWxhdGUobWV0aG9kID0gInNwZWFybWFuIikgJT4lIGZvY3VzKFRoYXdfRGF5cykgJT4lIG11dGF0ZSh0ZXJtID0gZmFjdG9yKHRlcm0sIGxldmVscyA9IHRlcm1bb3JkZXIoVGhhd19EYXlzKV0pKSAlPiUgZ2dwbG90KGFlcyh4ID0gdGVybSwgeSA9IFRoYXdfRGF5cykpICsgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpICsgdGhlbWVfY2xhc3NpYygpICsgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgaGp1c3Q9MSksIGF4aXMudGl0bGUueCA9IGVsZW1lbnRfYmxhbmsoKSwgdGV4dCA9IGVsZW1lbnRfdGV4dChzaXplPTE2KSkgKyB5bGFiKGV4cHJlc3Npb24oYXRvcCgiQW5udWFsIFRoYXcgRHVyYXRpb24iLCBwYXN0ZSgiU3BlYXJtYW4gQ29ycmVsYXRpb24iKSkpKSArIHlsaW0oLTEsMSkKCml3cy50aGF3LmRheS5jb3JyLnBsb3QKCiMgU2F2ZSBhcyAuZXBzIGZpbGUgKHdpZHRoID0gNjAwOyBoZWlnaHQgPSA0NTA7ICJpd3MudGhhdy5kYXkuY29yci5lcHMiKQpgYGAKCiMgUmVwcm9kdWNpYmlsaXR5CgpUaGUgc2Vzc2lvbiBpbmZvcm1hdGlvbiBpcyBwcm92aWRlZCBmb3IgZnVsbCByZXByb2R1Y2liaWxpdHkuCmBgYHtyfQpkZXZ0b29sczo6c2Vzc2lvbl9pbmZvKCkKYGBgCg==