1 Introduction

This document is intended to provide an overview of TMRC3 samples which have been sequenced. It includes some plots and analyses showing the relationships among the samples as well as some differential analyses when possible.

2 Annotation

We take the annotation data from ensembl’s biomart instance. The genome which was used to map the data was hg38 revision 100. My default when using biomart is to load the data from 1 year before the current date.

hs_annot <- sm(load_biomart_annotations(year = "2020"))
hs_annot <- hs_annot[["annotation"]]
hs_annot[["transcript"]] <- paste0(rownames(hs_annot), ".", hs_annot[["version"]])
rownames(hs_annot) <- make.names(hs_annot[["ensembl_gene_id"]], unique = TRUE)
tx_gene_map <- hs_annot[, c("transcript", "ensembl_gene_id")]
hs_go <- sm(load_biomart_go()[["go"]])
hs_length <- hs_annot[, c("ensembl_gene_id", "cds_length")]
colnames(hs_length) <- c("ID", "length")

3 Sample Estimation

3.1 Generate expressionsets

The sample sheet is copied from our shared online sheet and updated with each release of sequencing data.

samplesheet <- "sample_sheets/tmrc3_samples_202103.xlsx"

3.1.1 Hisat2 expressionsets

The first thing to note is the large range in coverage. There are multiple samples with coverage which is too low to use. These will be removed shortly.

In the following block I immediately exclude any non-coding reads as well.

## Create the expressionset and immediately pass it to a filter
## removing the non protein coding genes.
hs_expt <- sm(create_expt(samplesheet,
                          file_column = "hg38100hisatfile",
                          savefile = glue::glue("hs_expt_all-v{ver}.rda"),
                          gene_info = hs_annot)) %>%
  exclude_genes_expt(column = "gene_biotype", method = "keep", pattern = "protein_coding")
## Before removal, there were 21481 genes, now there are 19928.
## There are 11 samples which kept less than 90 percent counts.
## TMRC30015 TMRC30017 TMRC30019 TMRC30044 TMRC30045 TMRC30097 TMRC30075 TMRC30087 
##     79.23     85.71     89.74     80.33     73.32     89.88     86.95     83.62 
## TMRC30101 TMRC30104 TMRC30073 
##     88.38     80.27     89.23

3.1.1.1 Initial metrics

Once the data was loaded, there are a couple of metrics which may be plotted immediately.

nonzero <- plot_nonzero(hs_expt)
nonzero$plot
## Warning: ggrepel: 80 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps

3.2 Minimum coverage sample filtering

I arbitrarily chose 11,000 non-zero genes as a minimum. We may want this to be higher.

hs_valid <- subset_expt(hs_expt, nonzero = 11000)
## The samples (and read coverage) removed when filtering 11000 non-zero genes are:
## TMRC30010 TMRC30050 TMRC30052 
##     52453    807962   3086807
## There were 108, now there are 105 samples.
## valid_write <- write_expt(hs_valid, excel = glue("excel/hs_valid-v{ver}.xlsx"))

4 Project Aims

The project seeks to determine the relationship of the innate immune response and inflammatory signaling to the clinical outcome of antileishmanial drug treatment. We will test the hypothesis that the profile of innate immune cell activation and their dynamics through the course of treatment differ between CL patients with prospectively determined therapeutic cure or failure.

This will be achieved through the characterization of the in vivo dynamics of blood-derived monocyte, neutrophil and eosinophil transcriptome before, during and at the end of treatment in CL patients. Cell-type specific transcriptomes, composite signatures and time-response expression profiles will be contrasted among patients with therapeutic cure or failure.

4.1 Preparation

To address these, I added to the end of the sample sheet columns named ‘condition’, ‘batch’, ‘donor’, and ‘time’. These are filled in with shorthand values according to the above.

4.2 Global view

Before addressing the questions explicitly by subsetting the data, I want to get a look at the samples as they are.

hs_valid <- hs_valid %>%
  set_expt_batches(fact = "cellssource") %>%
  set_expt_conditions(fact = "typeofcells") %>%
  set_expt_samplenames(newnames = pData(hs_valid)[["samplename"]])

all_norm <- sm(normalize_expt(hs_valid, transform = "log2", norm = "quant",
                              convert = "cpm", filter = TRUE))

all_pca <- plot_pca(all_norm, plot_labels = FALSE, plot_title = "PCA - Cell type")
pp(file = glue("images/tmrc3_pca_nolabels-v{ver}.png"), image = all_pca$plot)

write.csv(all_pca$table, file = "coords/hs_donor_pca_coords.csv")
plot_corheat(all_norm, plot_title = "Heirarchical clustering - cell types")$plot

4.3 Examine samples relevant to clinical outcome

Now let us consider only the samples for which we have a clinical outcome. These fall primarily into either ‘cured’ or ‘failed’, but some people have not yet returned to the clinic after the first or second visit. These are deemed ‘lost’.

chosen_colors <- c("#D95F02", "#7570B3", "#1B9E77", "#FF0000")
names(chosen_colors) <- c("cure", "failure", "lost", "null")
newnames <- pData(hs_valid)[["samplename"]]

hs_clinical <- hs_valid %>%
  set_expt_conditions(fact = "clinicaloutcome") %>%
  set_expt_batches(fact = "typeofcells") %>%
  set_expt_colors(colors = chosen_colors) %>%
  set_expt_samplenames(newnames = newnames) %>%
  subset_expt(subset = "typeofcells!='PBMCs'&typeofcells!='Macrophages'")
## There were 105, now there are 87 samples.
hs_clinical_norm <- sm(normalize_expt(hs_clinical, filter = TRUE, transform = "log2",
                                      convert = "cpm", norm = "quant"))
clinical_pca <- plot_pca(hs_clinical_norm, plot_labels = FALSE, cis = NULL,
                         plot_title = "PCA - clinical samples")
pp(file = glue("images/all_clinical_nobatch_pca-v{ver}.png"), image = clinical_pca$plot,
   height = 8, width = 20)

4.3.1 Repeat without the biopsy samples

hs_clinical_nobiop <- hs_clinical %>%
  subset_expt(subset = "typeofcells!='Biopsy'")
## There were 87, now there are 55 samples.
hs_clinical_nobiop_norm <- sm(normalize_expt(hs_clinical_nobiop, filter = TRUE, transform = "log2",
                                             convert = "cpm", norm = "quant"))
clinical_nobiop_pca <- plot_pca(hs_clinical_nobiop_norm, plot_labels = FALSE, cis = NULL,
                                plot_title = "PCA - clinical samples without biopsies")
pp(file = glue("images/all_clinical_nobiop_nobatch_pca-v{ver}.png"),
   image = clinical_nobiop_pca$plot)

4.3.2 Attempt to correct for the surrogate variables

At this time we have two primary data structures of interest: hs_clinical and hs_clinical_nobiop

hs_clinical_nb <- normalize_expt(hs_clinical, filter = TRUE, batch = "svaseq",
                                 transform = "log2", convert = "cpm")
## Removing 5447 low-count genes (14481 remaining).
## batch_counts: Before batch/surrogate estimation, 72754 entries are x==0: 6%.
## batch_counts: Before batch/surrogate estimation, 220852 entries are 0<x<1: 18%.
## Setting 14879 low elements to zero.
## transform_counts: Found 14879 values equal to 0, adding 1 to the matrix.
clinical_batch_pca <- plot_pca(hs_clinical_nb, plot_labels = FALSE, cis = NULL,
                               plot_title = "PCA - clinical samples")
clinical_batch_pca$plot

hs_clinical_nobiop_nb <- sm(normalize_expt(hs_clinical_nobiop, filter = TRUE, batch = "svaseq",
                                           transform = "log2", convert = "cpm"))
clinical_nobiop_batch_pca <- plot_pca(hs_clinical_nobiop_nb,
                                      plot_title = "PCA - clinical samples without biopsies",
                                      plot_labels = FALSE)
pp(file = "images/clinical_batch.png", image = clinical_nobiop_batch_pca$plot)

clinical_nobiop_batch_tsne <- plot_tsne(hs_clinical_nobiop_nb,
                                        plot_title = "tSNE - clinical samples without biopsies",
                                        plot_labels = FALSE)
clinical_nobiop_batch_tsne$plot

test <- simple_varpart(hs_clinical_nobiop)
## Loading required package: Matrix
## 
## Total:114 s
test$partition_plot

4.4 Perform DE of the clinical samples cure vs. fail

individual_celltypes <- subset_expt(hs_clinical_nobiop, subset="condition!='lost'")
## There were 55, now there are 40 samples.
hs_clinic_de <- sm(all_pairwise(individual_celltypes, model_batch = "svaseq", filter = TRUE))
hs_clinic_table <- sm(combine_de_tables(
    hs_clinic_de,
    excel = glue::glue("excel/individual_celltypes_table-v{ver}.xlsx")))
hs_clinic_sig <- sm(extract_significant_genes(
    hs_clinic_table,
    excel = glue::glue("excel/individual_celltypes_sig-v{ver}.xlsx")))

hs_clinic_sig[["summary_df"]]
##                 limma_change_counts_up limma_change_counts_down
## failure_vs_cure                    230                      367
##                 edger_change_counts_up edger_change_counts_down
## failure_vs_cure                    346                      322
##                 deseq_change_counts_up deseq_change_counts_down
## failure_vs_cure                    289                      371
##                 ebseq_change_counts_up ebseq_change_counts_down
## failure_vs_cure                     84                      268
##                 basic_change_counts_up basic_change_counts_down
## failure_vs_cure                     55                       69

4.4.1 Look at only the differential genes

A good suggestion from Theresa was to examine only the most variant genes from failure vs. cure and see how they change the clustering/etc results. This is my attempt to address this query.

hs_clinic_topn <- sm(extract_significant_genes(hs_clinic_table, n = 100))
table <- "failure_vs_cure"
wanted <- rbind(hs_clinic_topn[["deseq"]][["ups"]][[table]],
                hs_clinic_topn[["deseq"]][["downs"]][[table]])

small_expt <- exclude_genes_expt(hs_clinical_nobiop, ids = rownames(wanted), method = "keep")
## Before removal, there were 19928 genes, now there are 200.
## There are 55 samples which kept less than 90 percent counts.
##  1017n1  1017m1  1034n1  1034n2  1034m2 1034m2-  2052e1  2052m2  2052n2  2052m3 
##  0.1411  0.2528  1.1255  1.3803  0.8180  0.8136  0.4077  0.4144  0.3048  0.5204 
##  2052n3  2065m1  2065n1  2066m1  2066n1  2065m2  2065n2  2066m2  2068m1  2068n1 
##  0.3257  0.8297  1.1489  0.3543  0.2048  0.6134  0.5543  0.5484  0.5715  0.5106 
##  2068e1  2072m1  2072n1  2072e1  2073m1  2073n1  2073e1  2068m2  2068n2  2068e2 
##  1.0353  0.5207  0.3949  0.6709  0.5844  0.7569  0.5832  0.2641  0.2736  0.3494 
##  2072m2  2072n2  2072e2  2073m2  2073n2  2073e2  2068m3  2068n3  2068e3  2072m3 
##  0.2883  0.2470  0.3758  0.7658  1.3503  0.4847  0.3717  0.3557  0.4353  0.5428 
##  2072n3  2072e3  2073m3  2073n3  2073e3  2162m1  2162n1  2162e1  2168e1  2168m2 
##  0.8865  0.5135  0.4432  0.3773  0.3162  0.4534  0.3588  0.6663  0.7561  0.7861 
##  2168n2  2168e2  2168m3  2168n3  2168e3 
##  1.2428  0.6528  0.8916  1.4268  0.7240
small_norm <- sm(normalize_expt(small_expt, transform = "log2", convert = "cpm",
                                norm = "quant", filter = TRUE))
plot_pca(small_norm)$plot

small_nb <- normalize_expt(small_expt, transform = "log2", convert = "cpm",
                           batch = "svaseq", norm = "quant", filter = TRUE)
## Warning in normalize_expt(small_expt, transform = "log2", convert = "cpm", :
## Quantile normalization and sva do not always play well together.
## Removing 0 low-count genes (200 remaining).
## batch_counts: Before batch/surrogate estimation, 0 entries are x==0: 0%.
## batch_counts: Before batch/surrogate estimation, 131 entries are 0<x<1: 1%.
## Setting 9 low elements to zero.
## transform_counts: Found 9 values equal to 0, adding 1 to the matrix.
plot_pca(small_nb)$plot

## DESeq2 MA plot of failure / cure
hs_clinic_table[["plots"]][["failure_vs_cure"]][["deseq_ma_plots"]]$plot

## DESeq2 Volcano plot of failure / cure
hs_clinic_table[["plots"]][["failure_vs_cure"]][["deseq_vol_plots"]]$plot

4.4.2 g:Profiler results using the significant up and down genes

ups <- hs_clinic_sig[["deseq"]][["ups"]][[1]]
downs <- hs_clinic_sig[["deseq"]][["downs"]][[1]]

hs_clinic_gprofiler_ups <- simple_gprofiler(ups)
## Performing gProfiler GO search of 289 genes against hsapiens.
## GO search found 22 hits.
## Performing gProfiler KEGG search of 289 genes against hsapiens.
## KEGG search found 2 hits.
## Performing gProfiler REAC search of 289 genes against hsapiens.
## REAC search found 6 hits.
## Performing gProfiler MI search of 289 genes against hsapiens.
## MI search found 0 hits.
## Performing gProfiler TF search of 289 genes against hsapiens.
## TF search found 28 hits.
## Performing gProfiler CORUM search of 289 genes against hsapiens.
## CORUM search found 0 hits.
## Performing gProfiler HP search of 289 genes against hsapiens.
## HP search found 0 hits.
hs_clinic_gprofiler_ups[["pvalue_plots"]][["bpp_plot_over"]]

hs_clinic_gprofiler_ups[["pvalue_plots"]][["mfp_plot_over"]]

hs_clinic_gprofiler_ups[["pvalue_plots"]][["reactome_plot_over"]]

##hs_try2 <- simple_gprofiler2(ups)

hs_clinic_gprofiler_downs <- simple_gprofiler(downs)
## Performing gProfiler GO search of 371 genes against hsapiens.
## GO search found 62 hits.
## Performing gProfiler KEGG search of 371 genes against hsapiens.
## KEGG search found 4 hits.
## Performing gProfiler REAC search of 371 genes against hsapiens.
## REAC search found 4 hits.
## Performing gProfiler MI search of 371 genes against hsapiens.
## MI search found 0 hits.
## Performing gProfiler TF search of 371 genes against hsapiens.
## TF search found 21 hits.
## Performing gProfiler CORUM search of 371 genes against hsapiens.
## CORUM search found 3 hits.
## Performing gProfiler HP search of 371 genes against hsapiens.
## HP search found 6 hits.
hs_clinic_gprofiler_downs[["pvalue_plots"]][["bpp_plot_over"]]

hs_clinic_gprofiler_downs[["pvalue_plots"]][["mfp_plot_over"]]

hs_clinic_gprofiler_downs[["pvalue_plots"]][["reactome_plot_over"]]

4.5 Perform GSVA on the clinical samples

hs_celltype_gsva_c2 <- sm(simple_gsva(individual_celltypes))
hs_celltype_gsva_c2_sig <- sm(get_sig_gsva_categories(
    hs_celltype_gsva_c2,
    excel = "excel/individual_celltypes_gsva_c2.xlsx"))
broad_c7 <- GSEABase::getGmt("reference/msigdb/c7.all.v7.2.entrez.gmt",
                             collectionType = GSEABase::BroadCollection(category = "c7"),
                             geneIdType = GSEABase::EntrezIdentifier())
hs_celltype_gsva_c7 <- sm(simple_gsva(individual_celltypes, signatures = broad_c7,
                                      msig_xml = "reference/msigdb_v7.2.xml", cores = 10))
hs_celltype_gsva_c7_sig <- sm(get_sig_gsva_categories(
    hs_celltype_gsva_c7,
    excel = "excel/individual_celltypes_gsva_c7.xlsx"))

5 Individual Cell types

The following blocks split the samples into a few groups by sample type and look at the distributions between them.

5.1 Implementation details

Get top/bottom n genes for each cell type, using clinical outcome as the factor of interest. For the moment, use sva for the DE analysis. Provide cpms for the top/bottom n genes.

Start with top/bottom 200. Perform default logFC and p-value as well.

5.1.1 Shared contrasts

Here is the contrast we will use throughput, I am leaving open the option to add more.

keepers <- list(
  "fail_vs_cure" = c("failure", "cure"))

5.2 Monocytes

5.2.1 Evaluate Monocyte samples

mono <- subset_expt(hs_valid, subset = "typeofcells=='Monocytes'") %>%
  set_expt_conditions(fact = "clinicaloutcome") %>%
  set_expt_batches(fact = "donor") %>%
  set_expt_colors(colors = chosen_colors)
## There were 105, now there are 21 samples.
## FIXME set_expt_colors should speak up if there are mismatches here!!!

save_result <- save(mono, file = "rda/monocyte_expt.rda")
mono_norm <- normalize_expt(mono, convert = "cpm", filter = TRUE,
                            transform = "log2", norm = "quant")
## Removing 8957 low-count genes (10971 remaining).
## transform_counts: Found 9 values equal to 0, adding 1 to the matrix.
plt <- plot_pca(mono_norm, plot_labels = FALSE)$plot
pp(file = glue("images/mono_pca_normalized-v{ver}.pdf"), image = plt)

mono_nb <- normalize_expt(mono, convert = "cpm", filter = TRUE,
                          transform = "log2", batch = "svaseq")
## Removing 8957 low-count genes (10971 remaining).
## batch_counts: Before batch/surrogate estimation, 1144 entries are x==0: 0%.
## batch_counts: Before batch/surrogate estimation, 12712 entries are 0<x<1: 6%.
## Setting 368 low elements to zero.
## transform_counts: Found 368 values equal to 0, adding 1 to the matrix.
plt <- plot_pca(mono_nb, plot_labels = FALSE)$plot
pp(file = glue("images/mono_pca_normalized_batch-v{ver}.pdf"), image = plt)

5.2.2 DE of Monocyte samples

5.2.2.1 Without sva

mono_de <- sm(all_pairwise(mono, model_batch = FALSE, filter = TRUE))
mono_tables <- sm(combine_de_tables(
    mono_de, keepers = keepers,
    excel = glue::glue("excel/monocyte_clinical_all_tables-v{ver}.xlsx")))
written <- write_xlsx(data = mono_tables[["data"]][[1]],
                      excel = glue::glue("excel/monocyte_clinical_table-v{ver}.xlsx"))
## Saving to: excel/monocyte_clinical_table-v202103.xlsx
mono_sig <- sm(extract_significant_genes(mono_tables, according_to = "deseq"))
written <- write_xlsx(data = mono_sig[["deseq"]][["ups"]][[1]],
                      excel = glue::glue("excel/monocyte_clinical_sigup-v{ver}.xlsx"))
## Saving to: excel/monocyte_clinical_sigup-v202103.xlsx
written <- write_xlsx(data = mono_sig[["deseq"]][["downs"]][[1]],
                      excel = glue::glue("excel/monocyte_clinical_sigdown-v{ver}.xlsx"))
## Saving to: excel/monocyte_clinical_sigdown-v202103.xlsx
mono_pct_sig <- sm(extract_significant_genes(mono_tables, n = 200,
                                             lfc = NULL, p = NULL, according_to = "deseq"))
written <- write_xlsx(data = mono_pct_sig[["deseq"]][["ups"]][[1]],
                      excel = glue::glue("excel/monocyte_clinical_sigup_pct-v{ver}.xlsx"))
## Saving to: excel/monocyte_clinical_sigup_pct-v202103.xlsx
written <- write_xlsx(data = mono_pct_sig[["deseq"]][["downs"]][[1]],
                      excel = glue::glue("excel/monocyte_clinical_sigdown_pct-v{ver}.xlsx"))
## Saving to: excel/monocyte_clinical_sigdown_pct-v202103.xlsx
mono_sig$summary_df
## data frame with 0 columns and 1 row
## Print out a table of the cpm values for other explorations.
mono_cpm <- sm(normalize_expt(mono, convert = "cpm"))
written <- write_xlsx(data = exprs(mono_cpm),
                      excel = glue::glue("excel/monocyte_cpm_before_batch-v{ver}.xlsx"))
## Saving to: excel/monocyte_cpm_before_batch-v202103.xlsx
mono_bcpm <- sm(normalize_expt(mono, filter = TRUE, convert = "cpm", batch = "svaseq"))
written <- write_xlsx(data = exprs(mono_bcpm),
                      excel = glue::glue("excel/monocyte_cpm_after_batch-v{ver}.xlsx"))
## Saving to: excel/monocyte_cpm_after_batch-v202103.xlsx

5.2.2.2 With sva

mono_de_sva <- sm(all_pairwise(mono, model_batch = "svaseq", filter = TRUE))
mono_tables_sva <- sm(combine_de_tables(
    mono_de_sva, keepers = keepers,
    excel = glue::glue("excel/monocyte_clinical_all_tables_sva-v{ver}.xlsx")))
mono_sig_sva <- sm(extract_significant_genes(
    mono_tables_sva,
    excel = glue::glue("excel/monocyte_clinical_sig_tables_sva-v{ver}.xlsx"),
    according_to = "deseq"))

5.2.2.3 Monocyte DE plots

First print out the DE plots without and then with sva estimates.

## DESeq2 MA plot of failure / cure
mono_tables[["plots"]][["fail_vs_cure"]][["deseq_ma_plots"]]$plot

## DESeq2 Volcano plot of failure / cure
mono_tables[["plots"]][["fail_vs_cure"]][["deseq_vol_plots"]]$plot

## DESeq2 MA plot of failure / cure with svaseq
mono_tables_sva[["plots"]][["fail_vs_cure"]][["deseq_ma_plots"]]$plot

## DESeq2 Volcano plot of failure / cure with svaseq
mono_tables_sva[["plots"]][["fail_vs_cure"]][["deseq_vol_plots"]]$plot

5.2.2.5 Monocyte MSigDB query

broad_c7 <- GSEABase::getGmt("reference/msigdb/c7.all.v7.2.entrez.gmt",
                             collectionType = GSEABase::BroadCollection(category = "c7"),
                             geneIdType = GSEABase::EntrezIdentifier())

mono_up_goseq_msig <- goseq_msigdb(sig_genes = ups, signatures = broad_c7,
                                   signature_category = "c7", length_db = hs_length)
## Before conversion, the expressionset has 148 entries.
## After conversion, the expressionset has 146 entries.
## Before conversion, the expressionset has 227334 entries.
## After conversion, the expressionset has 35326 entries.
## Using the row names of your table.
## Found 132 genes out of 146 from the sig_genes in the go_db.
## Found 146 genes out of 146 from the sig_genes in the length_db.
## Using manually entered categories.
## Calculating the p-values...
## simple_goseq(): Calculating q-values
## simple_goseq(): Making pvalue plots for the ontologies.

mono_up_goseq_msig[["pvalue_plots"]][["mfp_plot_over"]]

mono_down_goseq_msig <- goseq_msigdb(sig_genes = downs, signatures = broad_c7,
                                     signature_category = "c7", length_db = hs_length)
## Before conversion, the expressionset has 262 entries.
## After conversion, the expressionset has 258 entries.
## Before conversion, the expressionset has 227334 entries.
## After conversion, the expressionset has 35326 entries.
## Using the row names of your table.
## Found 249 genes out of 258 from the sig_genes in the go_db.
## Found 258 genes out of 258 from the sig_genes in the length_db.
## Using manually entered categories.
## Calculating the p-values...
## simple_goseq(): Calculating q-values
## simple_goseq(): Making pvalue plots for the ontologies.

mono_down_goseq_msig[["pvalue_plots"]][["mfp_plot_over"]]

5.2.3 Evaluate Neutrophil samples

neut <- subset_expt(hs_valid, subset = "typeofcells=='Neutrophils'") %>%
  set_expt_conditions(fact = "clinicaloutcome") %>%
  set_expt_batches(fact = "donor") %>%
  set_expt_colors(colors = chosen_colors)
## There were 105, now there are 20 samples.
save_result <- save(neut, file = "rda/neutrophil_expt.rda")
neut_norm <- sm(normalize_expt(neut, convert = "cpm", filter = TRUE, transform = "log2"))
plt <- plot_pca(neut_norm, plot_labels = FALSE)$plot
pp(file = glue("images/neut_pca_normalized-v{ver}.pdf"), image = plt)

neut_nb <- sm(normalize_expt(neut, convert = "cpm", filter = TRUE,
                             transform = "log2", batch = "svaseq"))
plt <- plot_pca(neut_nb, plot_labels = FALSE)$plot
pp(file = glue("images/neut_pca_normalized_svaseq-v{ver}.pdf"), image = plt)

5.2.4 DE of Netrophil samples

5.2.4.1 Without sva

neut_de <- sm(all_pairwise(neut, model_batch = FALSE, filter = TRUE))
neut_tables <- sm(combine_de_tables(
    neut_de, keepers = keepers,
    excel = glue::glue("excel/neutrophil_clinical_all_tables-v{ver}.xlsx")))
written <- write_xlsx(data = neut_tables[["data"]][[1]],
                      excel = glue::glue("excel/neutrophil_clinical_table-v{ver}.xlsx"))
## Saving to: excel/neutrophil_clinical_table-v202103.xlsx
neut_sig <- sm(extract_significant_genes(neut_tables, according_to = "deseq"))
written <- write_xlsx(data = neut_sig[["deseq"]][["ups"]][[1]],
                      excel = glue::glue("excel/neutrophil_clinical_sigup-v{ver}.xlsx"))
## Saving to: excel/neutrophil_clinical_sigup-v202103.xlsx
written <- write_xlsx(data = neut_sig[["deseq"]][["downs"]][[1]],
                      excel = glue::glue("excel/neutrophil_clinical_sigdown-v{ver}.xlsx"))
## Saving to: excel/neutrophil_clinical_sigdown-v202103.xlsx
neut_pct_sig <- sm(extract_significant_genes(neut_tables, n = 200, lfc = NULL,
                                             p = NULL, according_to = "deseq"))
written <- write_xlsx(data = neut_sig[["deseq"]][["ups"]][[1]],
                      excel = glue::glue("excel/neutrophil_clinical_sigup_pct-v{ver}.xlsx"))
## Saving to: excel/neutrophil_clinical_sigup_pct-v202103.xlsx
written <- write_xlsx(data = neut_sig[["deseq"]][["downs"]][[1]],
                      excel = glue::glue("excel/neutrophil_clinical_sigdown_pct-v{ver}.xlsx"))
## Saving to: excel/neutrophil_clinical_sigdown_pct-v202103.xlsx
neut_cpm <- sm(normalize_expt(neut, convert = "cpm"))
written <- write_xlsx(data = exprs(neut_cpm),
                      excel = glue::glue("excel/neutrophil_cpm_before_batch-v{ver}.xlsx"))
## Saving to: excel/neutrophil_cpm_before_batch-v202103.xlsx
neut_bcpm <- sm(normalize_expt(neut, filter = TRUE, batch = "svaseq", convert = "cpm"))
written <- write_xlsx(data = exprs(neut_bcpm),
                      excel = glue::glue("excel/neutrophil_cpm_after_batch-v{ver}.xlsx"))
## Saving to: excel/neutrophil_cpm_after_batch-v202103.xlsx

5.2.4.2 With sva

neut_de_sva <- sm(all_pairwise(neut, model_batch = "svaseq", filter = TRUE))
neut_tables_sva <- sm(combine_de_tables(
    neut_de_sva, keepers = keepers,
    excel = glue::glue("excel/neutrophil_clinical_all_tables_sva-v{ver}.xlsx")))
neut_sig_sva <- sm(extract_significant_genes(
    neut_tables_sva,
    excel = glue::glue("excel/neutrophil_clinical_sig_tables_sva-v{ver}.xlsx"),
    according_to = "deseq"))

5.2.4.3 Neutrophil DE plots

## DESeq2 MA plot of failure / cure
neut_tables[["plots"]][["fail_vs_cure"]][["deseq_ma_plots"]]$plot

## DESeq2 Volcano plot of failure / cure
neut_tables[["plots"]][["fail_vs_cure"]][["deseq_vol_plots"]]$plot

## DESeq2 MA plot of failure / cure with sva
neut_tables_sva[["plots"]][["fail_vs_cure"]][["deseq_ma_plots"]]$plot

## DESeq2 Volcano plot of failure / cure with sva
neut_tables_sva[["plots"]][["fail_vs_cure"]][["deseq_vol_plots"]]$plot

5.2.4.5 Neutrophil GSVA query

neut_up_goseq_msig <- goseq_msigdb(sig_genes = ups, signatures = broad_c7,
                                   signature_category = "c7", length_db = hs_length)
## Before conversion, the expressionset has 270 entries.
## After conversion, the expressionset has 266 entries.
## Before conversion, the expressionset has 227334 entries.
## After conversion, the expressionset has 35326 entries.
## Using the row names of your table.
## Found 251 genes out of 266 from the sig_genes in the go_db.
## Found 266 genes out of 266 from the sig_genes in the length_db.
## Using manually entered categories.
## Calculating the p-values...
## simple_goseq(): Calculating q-values
## simple_goseq(): Making pvalue plots for the ontologies.

neut_up_goseq_msig[["pvalue_plots"]][["mfp_plot_over"]]

neut_down_goseq_msig <- goseq_msigdb(sig_genes = downs, signatures = broad_c7,
                                     signature_category = "c7", length_db = hs_length)
## Before conversion, the expressionset has 260 entries.
## After conversion, the expressionset has 255 entries.
## Before conversion, the expressionset has 227334 entries.
## After conversion, the expressionset has 35326 entries.
## Using the row names of your table.
## Found 247 genes out of 255 from the sig_genes in the go_db.
## Found 255 genes out of 255 from the sig_genes in the length_db.
## Using manually entered categories.
## Calculating the p-values...
## simple_goseq(): Calculating q-values
## simple_goseq(): Making pvalue plots for the ontologies.

neut_down_goseq_msig[["pvalue_plots"]][["mfp_plot_over"]]

5.3 Eosinophils

5.3.1 Evaluate Eosinophil samples

eo <- subset_expt(hs_valid, subset = "typeofcells=='Eosinophils'") %>%
  set_expt_conditions(fact = "clinicaloutcome") %>%
  set_expt_batches(fact = "donor") %>%
  set_expt_colors(colors = chosen_colors)
## There were 105, now there are 14 samples.
save_result <- save(eo, file = "rda/eosinophil_expt.rda")
eo_norm <- sm(normalize_expt(eo, convert = "cpm", transform = "log2",
                             norm = "quant", filter = TRUE))
plt <- plot_pca(eo_norm, plot_labels = FALSE)$plot
pp(file = glue("images/eo_pca_normalized-v{ver}.pdf"), image = plt)

eo_nb <- sm(normalize_expt(eo, convert = "cpm", transform = "log2",
                           filter = TRUE, batch = "svaseq"))
plot_pca(eo_nb)$plot

5.3.2 DE of Eosinophil samples

5.3.2.1 Withouth sva

eo_de <- sm(all_pairwise(eo, model_batch = FALSE, filter = TRUE))
eo_tables <- sm(combine_de_tables(
    eo_de, keepers = keepers,
    excel = glue::glue("excel/eosinophil_clinical_all_tables-v{ver}.xlsx")))
written <- write_xlsx(data = eo_tables[["data"]][[1]],
                      excel = glue::glue("excel/eosinophil_clinical_table-v{ver}.xlsx"))
## Saving to: excel/eosinophil_clinical_table-v202103.xlsx
eo_sig <- sm(extract_significant_genes(eo_tables, according_to = "deseq"))
written <- write_xlsx(data = eo_sig[["deseq"]][["ups"]][[1]],
                      excel = glue::glue("excel/eosinophil_clinical_sigup-v{ver}.xlsx"))
## Saving to: excel/eosinophil_clinical_sigup-v202103.xlsx
written <- write_xlsx(data = eo_sig[["deseq"]][["downs"]][[1]],
                      excel = glue::glue("excel/eosinophil_clinical_sigdown-v{ver}.xlsx"))
## Saving to: excel/eosinophil_clinical_sigdown-v202103.xlsx
eo_pct_sig <- sm(extract_significant_genes(eo_tables, n = 200,
                                           lfc = NULL, p = NULL, according_to = "deseq"))
written <- write_xlsx(data = eo_pct_sig[["deseq"]][["ups"]][[1]],
                      excel = glue::glue("excel/eosinophil_clinical_sigup_pct-v{ver}.xlsx"))
## Saving to: excel/eosinophil_clinical_sigup_pct-v202103.xlsx
written <- write_xlsx(data = eo_pct_sig[["deseq"]][["downs"]][[1]],
                      excel = glue::glue("excel/eosinophil_clinical_sigdown_pct-v{ver}.xlsx"))
## Saving to: excel/eosinophil_clinical_sigdown_pct-v202103.xlsx
eo_cpm <- sm(normalize_expt(eo, convert = "cpm"))
written <- write_xlsx(data = exprs(eo_cpm),
                      excel = glue::glue("excel/eosinophil_cpm_before_batch-v{ver}.xlsx"))
## Saving to: excel/eosinophil_cpm_before_batch-v202103.xlsx
eo_bcpm <- sm(normalize_expt(eo, filter = TRUE, batch = "svaseq", convert = "cpm"))
written <- write_xlsx(data = exprs(eo_bcpm),
                      excel = glue::glue("excel/eosinophil_cpm_after_batch-v{ver}.xlsx"))
## Saving to: excel/eosinophil_cpm_after_batch-v202103.xlsx

5.3.2.2 With sva

eo_de_sva <- sm(all_pairwise(eo, model_batch = "svaseq", filter = TRUE))
eo_tables_sva <- sm(combine_de_tables(
    eo_de_sva, keepers = keepers,
    excel = glue::glue("excel/eosinophil_clinical_all_tables_sva-v{ver}.xlsx")))
eo_sig_sva <- sm(extract_significant_genes(
    eo_tables_sva,
    excel = glue::glue("excel/eosinophil_clinical_sig_tables_sva-v{ver}.xlsx"),
    according_to = "deseq"))

5.3.2.3 Eosinophil DE plots

## DESeq2 MA plot of failure / cure
eo_tables[["plots"]][["fail_vs_cure"]][["deseq_ma_plots"]]$plot

## DESeq2 Volcano plot of failure / cure
eo_tables[["plots"]][["fail_vs_cure"]][["deseq_vol_plots"]]$plot

## DESeq2 MA plot of failure / cure with sva
eo_tables_sva[["plots"]][["fail_vs_cure"]][["deseq_ma_plots"]]$plot

## DESeq2 Volcano plot of failure / cure with sva
eo_tables_sva[["plots"]][["fail_vs_cure"]][["deseq_vol_plots"]]$plot

5.3.2.5 Eosinophil MSigDB query

eo_up_goseq_msig <- goseq_msigdb(sig_genes = ups, signatures = broad_c7,
                                 signature_category = "c7", length_db = hs_length)
## Before conversion, the expressionset has 211 entries.
## After conversion, the expressionset has 210 entries.
## Before conversion, the expressionset has 227334 entries.
## After conversion, the expressionset has 35326 entries.
## Using the row names of your table.
## Found 183 genes out of 210 from the sig_genes in the go_db.
## Found 210 genes out of 210 from the sig_genes in the length_db.
## Using manually entered categories.
## Calculating the p-values...
## simple_goseq(): Calculating q-values
## simple_goseq(): Making pvalue plots for the ontologies.

eo_up_goseq_msig[["pvalue_plots"]][["mfp_plot_over"]]

eo_down_goseq_msig <- goseq_msigdb(sig_genes = downs, signatures = broad_c7,
                                   signature_category = "c7", length_db = hs_length)
## Before conversion, the expressionset has 154 entries.
## After conversion, the expressionset has 152 entries.
## Before conversion, the expressionset has 227334 entries.
## After conversion, the expressionset has 35326 entries.
## Using the row names of your table.
## Found 139 genes out of 152 from the sig_genes in the go_db.
## Found 152 genes out of 152 from the sig_genes in the length_db.
## Using manually entered categories.
## Calculating the p-values...
## simple_goseq(): Calculating q-values
## simple_goseq(): Making pvalue plots for the ontologies.

eo_down_goseq_msig[["pvalue_plots"]][["mfp_plot_over"]]

5.4 Biopsies

5.4.1 Evaluate Biopsy samples

biop <- subset_expt(hs_valid, subset = "typeofcells=='Biopsy'") %>%
  set_expt_conditions(fact = "clinicaloutcome") %>%
  set_expt_batches(fact = "donor") %>%
  set_expt_colors(colors = chosen_colors)
## There were 105, now there are 32 samples.
save_result <- save(biop, file = "rda/biopsy_expt.rda")
biop_norm <- normalize_expt(biop, filter = TRUE, convert = "cpm",
                            transform = "log2", norm = "quant")
## Removing 5940 low-count genes (13988 remaining).
## transform_counts: Found 5 values equal to 0, adding 1 to the matrix.
plt <- plot_pca(biop_norm, plot_labels = FALSE)$plot
pp(file = glue("images/biop_pca_normalized-v{ver}.pdf"), image = plt)

biop_nb <- sm(normalize_expt(biop, convert = "cpm", filter = TRUE,
                             transform = "log2", batch = "svaseq"))
plt <- plot_pca(biop_nb, plot_labels = FALSE)$plot
pp(file = glue("images/biop_pca_normalized_svaseq-v{ver}.pdf"), image = plt)

5.4.2 DE of Biopsy samples

5.4.2.1 Without sva

biop_de <- sm(all_pairwise(biop, model_batch = FALSE, filter = TRUE))
biop_tables <- combine_de_tables(biop_de, keepers = keepers,
                                 excel = glue::glue("excel/biopsy_clinical_all_tables-v{ver}.xlsx"))
## Deleting the file excel/biopsy_clinical_all_tables-v202103.xlsx before writing the tables.
written <- write_xlsx(data = biop_tables[["data"]][[1]],
                      excel = glue::glue("excel/biopsy_clinical_table-v{ver}.xlsx"))
## Saving to: excel/biopsy_clinical_table-v202103.xlsx
biop_sig <- extract_significant_genes(biop_tables, according_to = "deseq")
##written <- write_xlsx(data = biop_sig[["deseq"]][["ups"]][[1]],
##                      excel = glue::glue("excel/biopsy_clinical_sigup-v{ver}.xlsx"))
written <- write_xlsx(data = biop_sig[["deseq"]][["downs"]][[1]],
                      excel = glue::glue("excel/biopsy_clinical_sigdown-v{ver}.xlsx"))
## Saving to: excel/biopsy_clinical_sigdown-v202103.xlsx
biop_pct_sig <- extract_significant_genes(biop_tables, n = 200, lfc = NULL, p = NULL, according_to = "deseq")
## Getting the top and bottom 200 genes.
written <- write_xlsx(data = biop_pct_sig[["deseq"]][["ups"]][[1]],
                      excel = glue::glue("excel/biopsy_clinical_sigup_pct-v{ver}.xlsx"))
## Saving to: excel/biopsy_clinical_sigup_pct-v202103.xlsx
written <- write_xlsx(data = biop_pct_sig[["deseq"]][["downs"]][[1]],
                      excel = glue::glue("excel/biopsy_clinical_sigdown_pct-v{ver}.xlsx"))
## Saving to: excel/biopsy_clinical_sigdown_pct-v202103.xlsx
biop_cpm <- sm(normalize_expt(biop, convert = "cpm"))
written <- write_xlsx(data = exprs(biop_cpm),
                      excel = glue::glue("excel/biopsy_cpm_before_batch-v{ver}.xlsx"))
## Saving to: excel/biopsy_cpm_before_batch-v202103.xlsx
biop_bcpm <- sm(normalize_expt(biop, filter = TRUE, batch = "svaseq", convert = "cpm"))
written <- write_xlsx(data = exprs(biop_bcpm),
                      excel = glue::glue("excel/biopsy_cpm_after_batch-v{ver}.xlsx"))
## Saving to: excel/biopsy_cpm_after_batch-v202103.xlsx

5.4.2.2 with sva

biop_de_sva <- sm(all_pairwise(biop, model_batch = "svaseq", filter = TRUE))
biop_tables_sva <- sm(combine_de_tables(
    biop_de_sva, keepers = keepers,
    excel = glue::glue("excel/biopsy_clinical_all_tables_sva-v{ver}.xlsx")))
biop_sig_sva <- sm(extract_significant_genes(
    biop_tables_sva,
    excel = glue::glue("excel/biopsy_clinical_sig_tables_sva-v{ver}.xlsx"),
    according_to = "deseq"))

5.4.2.3 Biopsy DE plots

## DESeq2 MA plot of failure / cure
biopsy_tables[["plots"]][["fail_vs_cure"]][["deseq_ma_plots"]]$plot
## Error in eval(expr, envir, enclos): object 'biopsy_tables' not found
## DESeq2 Volcano plot of failure / cure
biopsy_tables[["plots"]][["fail_vs_cure"]][["deseq_vol_plots"]]$plot
## Error in eval(expr, envir, enclos): object 'biopsy_tables' not found
## DESeq2 MA plot of failure / cure
biopsy_tables_sva[["plots"]][["fail_vs_cure"]][["deseq_ma_plots"]]$plot
## Error in eval(expr, envir, enclos): object 'biopsy_tables_sva' not found
## DESeq2 Volcano plot of failure / cure
biopsy_tables_sva[["plots"]][["fail_vs_cure"]][["deseq_vol_plots"]]$plot
## Error in eval(expr, envir, enclos): object 'biopsy_tables_sva' not found

5.5 Separate macrophage experiment

These samples are rather different from all of the others. The following section is therefore written primarily in response to a separate set of emails from Olga and Maria Adelaida; here is a snippet:

Dear all, about the samples corresponding to infected macrophages with three sensitive (2.2) and three resistant (2.3) clinical strains of L. (V.) panamensis, I send you the results of parasite burden by detection of 7SLRNA. I think these results are interesting, but the sample size is very small. Doctor Najib or Trey could you please send me the quality data and PCA analysis of these samples?

and

Hi Doctor, thank you. These samples corresponding to primary macrophages infected with clinical strains 2.2 (n = 3) and 2.3 (n = 3). These information is in the file: TMRC project 3: excel Host TMRC3 v1.1, rows 137 to 150.

Thus I added 3 columns to the end of the sample sheet which seek to include this information. The first is ‘drug’ and encodes both the infection state (no for the two controls and yes for everything else), the second is zymodeme which I took from the tmrc2 sample sheet, the last is drug, which is either no or sb.

macr <- subset_expt(hs_valid, subset = "typeofcells=='Macrophages'")
## There were 105, now there are 12 samples.
macr <- set_expt_conditions(macr, fact = "zymodeme")
macr <- set_expt_batches(macr, fact = "macrdrug")

macr_norm <- normalize_expt(macr, norm = "quant", convert = "cpm", filter = TRUE)
## Removing 8899 low-count genes (11029 remaining).
macr_norm <- normalize_expt(macr_norm, transform = "log2")
plt <- plot_pca(macr_norm, plot_labels = FALSE)$plot
pp(file = glue("images/macrophage_side_experiment_norm_pca-v{ver}.pdf"), image = plt)

plt

macr_nb <- normalize_expt(macr, filter = TRUE)
## Removing 8899 low-count genes (11029 remaining).
macr_nb <- normalize_expt(macr_nb, norm = "quant", convert = "cpm", transform = "log2")
plt <- plot_pca(macr_nb)$plot
pp(file = glue("images/macrophage_side_experiment-v{ver}/normbatch_pca.pdf"), image = plt)
## Warning in cairo_pdf(filename = file, ...): cairo error 'error while writing to
## output stream'
## Error in cairo_pdf(filename = file, ...): unable to start device 'cairo_pdf'
plt

macr_written <- write_expt(macr, excel = "excel/macrophage_side_experiment/macrophage_expt.xlsx")
## Deleting the file excel/macrophage_side_experiment/macrophage_expt.xlsx before writing the tables.
## Writing the first sheet, containing a legend and some summary data.

## Writing the raw reads.
## Graphing the raw reads.
## `geom_smooth()` using formula 'y ~ x'
## `geom_smooth()` using formula 'y ~ x'

## Warning in doTryCatch(return(expr), name, parentenv, handler): display list
## redraw incomplete
## Warning in doTryCatch(return(expr), name, parentenv, handler): display list
## redraw incomplete
## 
## Total:114 s
## Writing the normalized reads.
## Graphing the normalized reads.

## `geom_smooth()` using formula 'y ~ x'
## `geom_smooth()` using formula 'y ~ x'

## Warning in doTryCatch(return(expr), name, parentenv, handler): display list
## redraw incomplete

## Warning in doTryCatch(return(expr), name, parentenv, handler): display list
## redraw incomplete
## 
## Total:71 s
## Writing the median reads by factor.

zymo_de <- all_pairwise(macr, model_batch = FALSE, filter = TRUE)
## Plotting a PCA before surrogate/batch inclusion.
## Assuming no batch in model for testing pca.
## Finished running DE analyses, collecting outputs.
## Comparing analyses.

zymo_table <- combine_de_tables(zymo_de, excel = "images/macrophage_side_experiment/macrophage_de.xlsx")
## Deleting the file images/macrophage_side_experiment/macrophage_de.xlsx before writing the tables.

5.5.1 Followup email from Olga

  • Macrophages infected with 2.3 vs macrophagues infected with 2.3 + SbV
  • Macrophages uninfected (M0) vs macrophages uninfected + SbV
  • Macrophages uninfected vs macrophages infected with 2.3
  • Macrophages uninfected + SbV vs Macrophagues infected with 2.3 + SbV

With this comparisons we can define the effect of infection with 2.3 and the drug effect with and without infection. In this moment we can’t evaluate the conditions with 2.2 because the samples are incomplete. Mariana will complete the samples in the next shipment.

new_factor <- paste0(pData(macr)[["macrdrug"]], "_", pData(macr)[["zymodeme"]])
new_factor <- gsub(x = new_factor, pattern = "undef", replacement = "uninf")
macr_v2 <- set_expt_conditions(macr, fact = new_factor)
macr_v2$conditions
##  [1] "no_uninf" "sb_uninf" "no_z2.3"  "sb_z2.3"  "no_z2.3"  "sb_z2.3" 
##  [7] "no_z2.2"  "sb_z2.2"  "sb_z2.2"  "no_z2.2"  "no_z2.3"  "sb_z2.3"
macr_v2_norm <- normalize_expt(macr_v2, onvert = "cpm", filter = TRUE, norm = "quant")
## Removing 8899 low-count genes (11029 remaining).
macr_v2_norm <- normalize_expt(macr_v2_norm, transform = "log2")
plot_pca(macr_v2_norm)$plot

keepers <- list(
  "zymo_sbv" = c("sb_z22", "sb_z23"),
  "uninf_drug" = c("no_uninf", "sb_uninf"),
  "uninfnodrug_z23" = c("no_uninf", "no_z23"),
  "uninfdrug_z23" = c("sb_uninf", "sb_z23"),
  "z23_drug_nodrug" = c("sb_z23", "no_z23"),
  "z22_drug_nodrug" = c("sb_z22", "no_z22")
)
olga_pairwise <- all_pairwise(macr_v2, do_deseq = FALSE, do_edger = FALSE, do_ebseq = FALSE)
## Plotting a PCA before surrogate/batch inclusion.
## Using limma's removeBatchEffect to visualize with(out) batch inclusion.
## Finished running DE analyses, collecting outputs.
## Comparing analyses.
olga_zymo_sb <- olga_pairwise[["limma"]][["all_tables"]][["sb_z23_vs_sb_z22"]]
olga_zymo_sb <- merge(olga_zymo_sb, fData(macr_v2), by = "row.names")
rownames(olga_zymo_sb) <- olga_zymo_sb[["Row.names"]]
olga_zymo_sb[["Row.names"]] <- NULL
olga_zymo_sb[["transcript"]] <- NULL
written <- write_xlsx(data = olga_zymo_sb,
                      excel = glue::glue("excel/sb_23_vs22-v{ver}.xlsx"))
## Saving to: excel/sb_23_vs22-v202103.xlsx
olga_uninf_drug <- olga_pairwise[["limma"]][["all_tables"]][["sb_uninf_vs_no_uninf"]]
olga_uninf_drug <- merge(olga_uninf_drug, fData(macr_v2), by = "row.names")
rownames(olga_uninf_drug) <- olga_uninf_drug[["Row.names"]]
olga_uninf_drug[["Row.names"]] <- NULL
written <- write_xlsx(data = olga_uninf_drug,
                      excel = glue::glue("excel/uninf_sb_vs_nosb-v{ver}.xlsx"))
## Saving to: excel/uninf_sb_vs_nosb-v202103.xlsx
olga_uninfnodrug_z23 <- olga_pairwise[["limma"]][["all_tables"]][["no_z23_vs_no_uninf"]]
olga_uninfnodrug_z23 <- merge(olga_uninfnodrug_z23, fData(macr_v2), by = "row.names")
rownames(olga_uninfnodrug_z23) <- olga_uninfnodrug_z23[["Row.names"]]
olga_uninfnodrug_z23[["Row.names"]] <- NULL
written <- write_xlsx(data = olga_uninfnodrug_z23,
                      excel = glue::glue("excel/no_z23_vs_nosb_uninf-v{ver}.xlsx"))
## Saving to: excel/no_z23_vs_nosb_uninf-v202103.xlsx
olga_uninfdrug_z23 <- olga_pairwise[["limma"]][["all_tables"]][["sb_z23_vs_sb_uninf"]]
olga_uninfdrug_z23 <- merge(olga_uninfdrug_z23, fData(macr_v2), by = "row.names")
rownames(olga_uninfdrug_z23) <- olga_uninfdrug_z23[["Row.names"]]
olga_uninfdrug_z23[["Row.names"]] <- NULL
written <- write_xlsx(data = olga_uninfdrug_z23,
                      excel = glue::glue("excel/sb_z23_vs_sb_uninf-v{ver}.xlsx"))
## Saving to: excel/sb_z23_vs_sb_uninf-v202103.xlsx
olga_z23_drugnodrug <- olga_pairwise[["limma"]][["all_tables"]][["sb_z23_vs_no_z23"]]
olga_z23_drugnodrug <- merge(olga_z23_drugnodrug, fData(macr_v2), by = "row.names")
rownames(olga_z23_drugnodrug) <- olga_z23_drugnodrug[["Row.names"]]
olga_z23_drugnodrug[["Row.names"]] <- NULL
olga_z23_drugnodrug[["transcript"]] <- NULL
written <- write_xlsx(data = olga_z23_drugnodrug,
                      excel = glue::glue("excel/z23_drug_vs_nodrug-v{ver}.xlsx"))
## Saving to: excel/z23_drug_vs_nodrug-v202103.xlsx
olga_z22_drugnodrug <- olga_pairwise[["limma"]][["all_tables"]][["sb_z22_vs_no_z22"]]
olga_z22_drugnodrug <- merge(olga_z22_drugnodrug, fData(macr_v2), by = "row.names")
rownames(olga_z22_drugnodrug) <- olga_z22_drugnodrug[["Row.names"]]
olga_z22_drugnodrug[["Row.names"]] <- NULL
olga_z22_drugnodrug[["transcript"]] <- NULL
written <- write_xlsx(data = olga_z22_drugnodrug,
                      excel = glue::glue("excel/z22_drug_vs_nodrug-v{ver}.xlsx"))
## Saving to: excel/z22_drug_vs_nodrug-v202103.xlsx

5.6 Donor effect

donor <- set_expt_conditions(hs_expt, fact = "donor")
donor <- set_expt_batches(donor, fact = "time")
save_result <- save(donor, file = "rda/donor_expt.rda")
test <- normalize_expt(donor, filter = TRUE, transform = "log2", convert = "cpm", norm = "quant")
## Removing 4889 low-count genes (15039 remaining).
## transform_counts: Found 82 values equal to 0, adding 1 to the matrix.
plot_pca(test)$plot
## plot labels was not set and there are more than 100 samples, disabling it.
## Warning in MASS::cov.trob(data[, vars]): Probable convergence failure

## Warning in MASS::cov.trob(data[, vars]): Probable convergence failure

## Warning in MASS::cov.trob(data[, vars]): Probable convergence failure

## Warning in MASS::cov.trob(data[, vars]): Probable convergence failure

## Warning in MASS::cov.trob(data[, vars]): Probable convergence failure

## Warning in MASS::cov.trob(data[, vars]): Probable convergence failure

## Warning in MASS::cov.trob(data[, vars]): Probable convergence failure

## Warning in MASS::cov.trob(data[, vars]): Probable convergence failure

5.7 Question 1

I interpreted question 1 as: pull out tmrc3000[1-6] and look at them.

I am not entirely certain what is meant by the heirarchical clustering request. I can see a couple of possibilities for what this means. The most similar thing I recall in the cruzi context was a post-DE visualization of some fairly specific genes.

hs_q1 <- subset_expt(hs_valid, subset = "donor=='d1010'|donor=='d1011'")
## There were 105, now there are 6 samples.
q1_norm <- sm(normalize_expt(hs_q1, norm = "quant", transform = "log2", convert = "cpm", batch = FALSE,
                           filter = TRUE))
q1_pca <- plot_pca(q1_norm)
q1_pca$plot

knitr::kable(q1_pca$table)
sampleid condition batch batch_int colors labels PC1 PC2 pc_1 pc_2 pc_3 pc_4 pc_5
1010-2 1010-2 PBMCs H. sapiens 1 #1B9E77 1010-2 -0.5218 0.3678 -0.5218 0.3678 0.3820 -0.1944 0.4920
1010-7 1010-7 PBMCs H. sapiens 1 #1B9E77 1010-7 0.1079 0.4854 0.1079 0.4854 -0.5377 0.5431 0.0449
1010-12 1010-12 PBMCs H. sapiens 1 #1B9E77 1010-12 0.4706 0.3590 0.4706 0.3590 0.3162 -0.3669 -0.4984
1011-2 1011-2 PBMCs H. sapiens 1 #1B9E77 1011-2 -0.5452 -0.3253 -0.5452 -0.3253 -0.3798 -0.2445 -0.4756
1011-7 1011-7 PBMCs H. sapiens 1 #1B9E77 1011-7 0.0469 -0.4685 0.0469 -0.4685 0.4948 0.5995 -0.0862
1011-12 1011-12 PBMCs H. sapiens 1 #1B9E77 1011-12 0.4417 -0.4183 0.4417 -0.4183 -0.2755 -0.3368 0.5233
write.csv(q1_pca$table, file = "coords/q1_pca_coords.csv")

## Looks like PC1 == Time and PC2 is donor, and they have pretty much the same amount of variance

hs_time <- set_expt_conditions(hs_q1, fact = "time")
time_norm <- sm(normalize_expt(hs_time, filter = TRUE))
time_norm <- normalize_expt(time_norm, transform = "log2")
## transform_counts: Found 21 values equal to 0, adding 1 to the matrix.
## Get a set of genes with high PC loads for PC1(time), and PC2(donor):
high_scores <- pca_highscores(time_norm, n = 40)

time_stuff <- high_scores$highest[, c(1, 2)]
time_stuff
##       Comp.1                  Comp.2                 
##  [1,] "34.47:ENSG00000129824" "11.18:ENSG00000073756"
##  [2,] "34.4:ENSG00000012817"  "8.806:ENSG00000125538"
##  [3,] "30.72:ENSG00000067048" "8.515:ENSG00000093134"
##  [4,] "27.17:ENSG00000114374" "7.41:ENSG00000112299" 
##  [5,] "26.06:ENSG00000198692" "6.848:ENSG00000168329"
##  [6,] "24.77:ENSG00000067646" "6.815:ENSG00000012817"
##  [7,] "22.01:ENSG00000099725" "6.657:ENSG00000143365"
##  [8,] "15.41:ENSG00000241945" "6.231:ENSG00000123700"
##  [9,] "14.24:ENSG00000112139" "6.224:ENSG00000140092"
## [10,] "13.89:ENSG00000160201" "6.114:ENSG00000143450"
## [11,] "13.56:ENSG00000183878" "5.851:ENSG00000081041"
## [12,] "12.46:ENSG00000144115" "5.806:ENSG00000126243"
## [13,] "12.22:ENSG00000080007" "5.584:ENSG00000263002"
## [14,] "12.14:ENSG00000049247" "5.563:ENSG00000123975"
## [15,] "11.95:ENSG00000204001" "5.462:ENSG00000171860"
## [16,] "11.66:ENSG00000248905" "5.447:ENSG00000163568"
## [17,] "10.98:ENSG00000075391" "5.423:ENSG00000180626"
## [18,] "10.58:ENSG00000198848" "5.399:ENSG00000198435"
## [19,] "9.471:ENSG00000154620" "5.389:ENSG00000125703"
## [20,] "8.654:ENSG00000129422" "5.375:ENSG00000171115"
## [21,] "8.03:ENSG00000131459"  "5.291:ENSG00000162739"
## [22,] "7.825:ENSG00000168874" "5.288:ENSG00000133574"
## [23,] "7.498:ENSG00000196436" "5.282:ENSG00000129824"
## [24,] "7.219:ENSG00000109321" "5.19:ENSG00000188886" 
## [25,] "7.147:ENSG00000107731" "5.141:ENSG00000250510"
## [26,] "7.112:ENSG00000186193" "5.092:ENSG00000185220"
## [27,] "6.866:ENSG00000214102" "4.987:ENSG00000106351"
## [28,] "6.857:ENSG00000134531" "4.962:ENSG00000282804"
## [29,] "6.73:ENSG00000177990"  "4.956:ENSG00000163563"
## [30,] "6.699:ENSG00000179915" "4.916:ENSG00000164011"
## [31,] "6.585:ENSG00000136848" "4.908:ENSG00000164530"
## [32,] "6.567:ENSG00000276085" "4.889:ENSG00000121797"
## [33,] "6.317:ENSG00000004809" "4.84:ENSG00000163508" 
## [34,] "6.215:ENSG00000144130" "4.826:ENSG00000165181"
## [35,] "6.215:ENSG00000171451" "4.706:ENSG00000168310"
## [36,] "6.207:ENSG00000169507" "4.665:ENSG00000138061"
## [37,] "6.116:ENSG00000168765" "4.663:ENSG00000091106"
## [38,] "6.097:ENSG00000160307" "4.648:ENSG00000213694"
## [39,] "6.041:ENSG00000169071" "4.641:ENSG00000161298"
## [40,] "5.927:ENSG00000197134" "4.633:ENSG00000197044"
## Column 1 should be winners vs. time and column 2 by donor.
time_genes <- gsub(x = time_stuff[, "Comp.1"], pattern = "^.*:(.*)$", replacement = "\\1")
head(time_genes)
## [1] "ENSG00000129824" "ENSG00000012817" "ENSG00000067048" "ENSG00000114374"
## [5] "ENSG00000198692" "ENSG00000067646"
time_subset <- exprs(time_norm)[time_genes, ]
plot_sample_heatmap(time_norm, row_label = rownames(time_norm))

hs_donor <- set_expt_conditions(hs_q1, fact = "donor")
donor_norm <- sm(normalize_expt(hs_donor, convert = "cpm", filter = TRUE))
donor_norm <- normalize_expt(donor_norm, transform = "log2")
## transform_counts: Found 21 values equal to 0, adding 1 to the matrix.
## Get a set of genes with high PC loads for PC1(donor), and PC2(donor):
high_scores <- pca_highscores(donor_norm, n = 40)

donor_stuff <- high_scores$highest[, c(1, 2)]
donor_stuff
##       Comp.1                  Comp.2                 
##  [1,] "11.76:ENSG00000073756" "27.69:ENSG00000129824"
##  [2,] "9.371:ENSG00000125538" "25.06:ENSG00000012817"
##  [3,] "9.104:ENSG00000106565" "24.87:ENSG00000067048"
##  [4,] "8.987:ENSG00000176092" "21.81:ENSG00000114374"
##  [5,] "8.124:ENSG00000093134" "19.73:ENSG00000099725"
##  [6,] "7.922:ENSG00000168329" "16.12:ENSG00000198692"
##  [7,] "7.225:ENSG00000185736" "15.76:ENSG00000067646"
##  [8,] "6.558:ENSG00000111728" "13.52:ENSG00000183878"
##  [9,] "6.204:ENSG00000125618" "11.32:ENSG00000112139"
## [10,] "6.166:ENSG00000106351" "10.31:ENSG00000248905"
## [11,] "6.018:ENSG00000002933" "10.19:ENSG00000075391"
## [12,] "6.014:ENSG00000111863" "9.597:ENSG00000198848"
## [13,] "5.993:ENSG00000112299" "9.343:ENSG00000049247"
## [14,] "5.96:ENSG00000127954"  "8.426:ENSG00000109321"
## [15,] "5.87:ENSG00000160185"  "8.374:ENSG00000276085"
## [16,] "5.85:ENSG00000008517"  "8.101:ENSG00000129422"
## [17,] "5.746:ENSG00000165617" "7.123:ENSG00000241945"
## [18,] "5.674:ENSG00000133574" "7.107:ENSG00000144115"
## [19,] "5.666:ENSG00000127585" "6.5:ENSG00000137959"  
## [20,] "5.611:ENSG00000171051" "6.134:ENSG00000171860"
## [21,] "5.599:ENSG00000165272" "6.029:ENSG00000171451"
## [22,] "5.59:ENSG00000164530"  "5.863:ENSG00000101916"
## [23,] "5.486:ENSG00000131747" "5.748:ENSG00000196209"
## [24,] "5.385:ENSG00000126243" "5.703:ENSG00000093217"
## [25,] "5.299:ENSG00000162739" "5.693:ENSG00000112299"
## [26,] "5.209:ENSG00000143167" "5.673:ENSG00000073756"
## [27,] "5.191:ENSG00000123358" "5.668:ENSG00000090382"
## [28,] "5.178:ENSG00000113070" "5.607:ENSG00000088827"
## [29,] "5.163:ENSG00000168280" "5.499:ENSG00000138829"
## [30,] "5.152:ENSG00000124216" "5.458:ENSG00000131459"
## [31,] "5.106:ENSG00000196329" "5.458:ENSG00000004799"
## [32,] "5.085:ENSG00000165899" "5.42:ENSG00000168765" 
## [33,] "5.069:ENSG00000261150" "5.419:ENSG00000179344"
## [34,] "5.048:ENSG00000100721" "5.41:ENSG00000154620" 
## [35,] "5.041:ENSG00000203972" "5.385:ENSG00000122025"
## [36,] "5.027:ENSG00000171848" "5.321:ENSG00000123700"
## [37,] "4.998:ENSG00000119640" "5.258:ENSG00000163563"
## [38,] "4.995:ENSG00000107317" "5.18:ENSG00000204001" 
## [39,] "4.989:ENSG00000177301" "5.123:ENSG00000160307"
## [40,] "4.985:ENSG00000036448" "5.115:ENSG00000080007"
## Column 1 should be winners vs. donor and column 2 by donor.
donor_genes <- gsub(x = donor_stuff[, "Comp.1"], pattern = "^.*:(.*)$", replacement = "\\1")
head(donor_genes)
## [1] "ENSG00000073756" "ENSG00000125538" "ENSG00000106565" "ENSG00000176092"
## [5] "ENSG00000093134" "ENSG00000168329"
donor_subset <- exprs(donor_norm)[donor_genes, ]
plot_sample_heatmap(donor_norm, row_label = rownames(donor_norm))

time_keepers <- list(
  "2hr_vs_7hr" = c("t2hr", "t7hr"),
  "2hr_vs_12hr" = c("t2hr", "t12hr"),
  "7hr_vs_12hr" = c("t7hr", "t12hr"))

q1_time <- set_expt_conditions(hs_q1, fact = "time")
time_de <- sm(all_pairwise(q1_time, model_batch = FALSE, parallel = FALSE))
time_all_tables <- sm(combine_de_tables(time_de,
                                        excel = glue::glue("excel/time_de_tables-v{ver}.xlsx")))
save_result <- save(time_all_tables, file = "rda/time_all_tables.rda")

time_all_tables_all <- sm(combine_de_tables(
  time_de,
  keepers = "all",
  excel = glue::glue("excel/time_de_all_tables-v{ver}.xlsx")))
time_all_tables <- sm(combine_de_tables(
  time_de,
  keepers = time_keepers,
  excel = glue::glue("excel/{rundate}-time_de_tables-v{ver}.xlsx")))
q1_donor <- set_expt_conditions(hs_q1, fact = "donor")
donor_de <- sm(all_pairwise(q1_donor, model_batch = FALSE))
donor_tables <- sm(combine_de_tables(
                     donor_de, excel = glue::glue("excel/donor_de_tables-v{ver}.xlsx")))
save_result <- save(donor_tables, file = "rda/donor_tables.rda")
hs_q2 <- subset_expt(hs_valid, subset = "donor!='d1010'&donor!='d1011'")
## There were 105, now there are 99 samples.
q2_norm <- sm(normalize_expt(hs_q2, transform = "log2", convert = "cpm", norm = "quant", filter = TRUE))

q2_pca <- plot_pca(q2_norm)
knitr::kable(q2_pca$table)
sampleid condition batch batch_int colors labels PC1 PC2 pc_1 pc_2 pc_3 pc_4 pc_5 pc_6 pc_7 pc_8 pc_9 pc_10 pc_11 pc_12 pc_13 pc_14 pc_15 pc_16 pc_17 pc_18 pc_19 pc_20 pc_21 pc_22 pc_23 pc_24 pc_25 pc_26 pc_27 pc_28 pc_29 pc_30 pc_31 pc_32 pc_33 pc_34 pc_35 pc_36 pc_37 pc_38 pc_39 pc_40 pc_41 pc_42 pc_43 pc_44 pc_45 pc_46 pc_47 pc_48 pc_49 pc_50 pc_51 pc_52 pc_53 pc_54 pc_55 pc_56 pc_57 pc_58 pc_59 pc_60 pc_61 pc_62 pc_63 pc_64 pc_65 pc_66 pc_67 pc_68 pc_69 pc_70 pc_71 pc_72 pc_73 pc_74 pc_75 pc_76 pc_77 pc_78 pc_79 pc_80 pc_81 pc_82 pc_83 pc_84 pc_85 pc_86 pc_87 pc_88 pc_89 pc_90 pc_91 pc_92 pc_93 pc_94 pc_95 pc_96 pc_97 pc_98
1017n1 1017n1 Neutrophils H. sapiens 1 #D95F02 1017n1 -0.1213 0.1155 -0.1213 0.1155 -0.1163 0.0357 0.0776 0.0084 0.0934 -0.0171 0.2541 -0.0118 0.0587 -0.0229 0.1149 -0.2953 0.1485 -0.0642 0.1430 -0.1376 0.0654 0.0765 0.3095 -0.2626 -0.2468 0.3550 0.2141 -0.0342 0.1772 -0.2559 0.1078 -0.0579 0.2849 -0.0556 0.1770 -0.0783 0.0343 -0.0286 0.0387 0.0017 -0.0934 0.0906 0.0105 -0.0465 -0.0017 -0.0721 0.0425 0.0118 0.0659 -0.0596 -0.0267 -0.0448 0.0048 0.0047 0.0088 0.0781 -0.0298 -0.0155 -0.0341 -0.0383 0.0195 0.0033 0.0275 0.0011 0.0091 0.0224 -0.0150 -0.0095 -0.0155 -0.0243 -0.0001 -0.0013 0.0069 0.0031 0.0118 0.0093 0.0027 0.0140 0.0139 0.0034 -0.0062 -0.0084 -0.0184 -0.0011 -0.0029 -0.0122 0.0046 0.0113 0.0025 0.0002 0.0011 0.0039 0.0037 0.0020 -0.0008 -0.0020 -0.0009 -0.0016 -0.0021 -0.0012
1017m1 1017m1 Monocytes H. sapiens 1 #7570B3 1017m1 -0.0351 -0.0998 -0.0351 -0.0998 0.0003 -0.1342 0.1015 0.0322 0.1487 -0.1394 0.2204 -0.0015 0.1398 -0.0651 0.0108 -0.0402 0.0545 -0.0257 0.0251 -0.0231 -0.0428 -0.0722 -0.1981 0.0471 0.0311 0.1162 -0.0275 -0.0564 -0.1236 0.0262 0.0666 0.0652 0.0816 -0.0047 -0.0707 -0.1349 0.0959 0.0080 0.1115 0.0205 0.0870 -0.0295 0.0037 -0.0068 0.0488 0.0127 0.0046 0.0959 -0.0164 0.0760 -0.0612 0.0717 -0.3394 -0.3702 -0.1643 -0.1934 0.0047 0.2842 0.0271 0.2178 -0.0729 -0.0266 -0.2485 -0.1588 0.0109 -0.1773 0.0331 -0.0474 0.0416 0.0337 0.0211 -0.0720 -0.0210 -0.0269 -0.0253 -0.1213 -0.0037 -0.0522 -0.0256 0.0226 0.1096 0.0542 0.0232 -0.0791 -0.0086 0.0403 -0.0539 0.0893 0.0563 0.0031 -0.0261 -0.0472 -0.0763 0.0040 0.0069 -0.0020 0.0300 0.0085 0.0209 0.0091
1034n1 1034n1 Neutrophils H. sapiens 1 #D95F02 1034n1 -0.1232 0.1104 -0.1232 0.1104 -0.1115 0.0387 0.0176 0.0298 0.0866 -0.1827 0.1153 0.0306 -0.1799 -0.1048 0.2052 -0.0717 0.0069 -0.1485 0.0331 -0.0527 0.0137 -0.0674 0.1684 0.0647 -0.0817 -0.1984 -0.0719 0.0398 0.1062 -0.1465 -0.0864 -0.1136 -0.2148 0.1555 -0.0917 0.1943 -0.1676 -0.1233 -0.0479 -0.0995 0.1932 0.0697 0.0445 0.2551 0.2021 0.3906 0.0877 0.1354 -0.1531 0.2265 0.0002 0.0153 -0.0192 -0.1428 0.0924 0.0437 -0.0192 -0.0825 -0.0595 0.0132 -0.0199 -0.0241 -0.0617 0.0429 0.0131 0.0254 0.0241 -0.0297 -0.0188 0.0028 0.0000 -0.0539 0.0289 -0.0090 -0.0053 0.0034 0.0041 0.0204 -0.0226 -0.0022 0.0072 0.0146 -0.0058 -0.0036 -0.0052 -0.0079 -0.0068 -0.0073 -0.0017 0.0027 0.0042 -0.0005 0.0010 -0.0085 -0.0042 0.0040 -0.0032 -0.0004 -0.0030 -0.0035
1034bp1 1034bp1 Biopsy H. sapiens 1 #E7298A 1034bp1 0.1241 0.0430 0.1241 0.0430 0.0048 -0.0384 -0.2183 -0.0121 -0.0599 -0.1022 0.1448 0.1276 0.0142 -0.0197 -0.0815 0.0504 0.0385 -0.1111 -0.1208 -0.0878 -0.0534 0.0394 -0.0368 -0.0722 -0.0094 -0.0281 -0.0274 -0.0389 0.0307 0.0722 0.1371 0.0516 -0.0318 -0.0219 0.0528 0.1038 0.0098 -0.0532 -0.0741 0.0944 -0.1465 0.0237 -0.0645 0.1186 -0.1084 -0.0240 0.0905 -0.0147 -0.0446 0.0371 0.0387 -0.1223 0.2883 -0.1104 0.0585 0.1039 0.0926 0.2529 -0.2447 0.0149 0.0395 0.2673 -0.1620 0.0419 -0.2972 -0.0226 -0.1740 -0.0105 0.2090 0.1147 0.3267 0.0934 0.0578 0.0484 0.0770 0.0035 -0.0888 0.0416 -0.0417 0.0393 0.0474 -0.0411 0.0192 0.0123 0.0216 -0.0260 -0.0417 -0.0166 0.0374 -0.0096 0.0028 0.0016 -0.0328 0.0223 -0.0147 0.0162 0.0125 0.0185 -0.0146 0.0132
1034n2 1034n2 Neutrophils H. sapiens 1 #D95F02 1034n2 -0.1223 0.1167 -0.1223 0.1167 -0.1332 0.0404 -0.0121 0.0144 0.1042 -0.1893 0.1124 0.0656 -0.2298 -0.0643 0.2584 0.0548 -0.1354 -0.2260 0.0685 0.0509 0.0248 -0.0647 0.1426 0.2479 -0.0757 -0.2101 -0.2118 0.1187 -0.1589 0.0910 -0.0317 -0.1742 0.0599 -0.0377 0.3211 0.0236 0.0532 0.1637 0.1132 0.2654 -0.0317 -0.1032 -0.1248 -0.1342 -0.0891 -0.2632 -0.1241 -0.0497 -0.0215 -0.0949 0.0492 -0.0267 -0.0141 0.0635 -0.0578 -0.0801 0.0360 0.0680 0.1068 -0.0372 -0.0268 0.0097 -0.0056 -0.0075 -0.0155 -0.0023 -0.0205 0.0058 -0.0308 0.0273 -0.0091 0.0304 0.0102 -0.0126 -0.0043 0.0117 -0.0040 -0.0129 0.0222 -0.0101 -0.0074 -0.0133 0.0227 -0.0079 0.0083 -0.0179 0.0062 -0.0059 -0.0044 -0.0058 0.0033 -0.0105 0.0049 -0.0062 0.0029 0.0001 -0.0025 0.0071 -0.0025 -0.0015
1034m2 1034m2 Monocytes H. sapiens 1 #7570B3 1034m2 -0.0346 -0.1033 -0.0346 -0.1033 -0.0231 -0.1164 0.1186 0.0694 0.1264 -0.2644 0.1695 -0.0193 0.0196 -0.1442 0.0776 -0.0097 0.0664 -0.0240 0.0061 -0.0674 -0.0011 -0.0036 -0.2886 0.0742 0.0081 -0.0069 -0.0362 -0.0543 -0.0024 0.0478 -0.0093 -0.0357 0.0714 -0.0792 -0.1627 0.0245 0.0747 -0.0843 -0.0987 -0.1665 -0.0435 -0.0072 0.0236 0.0002 -0.1094 -0.0509 0.0334 0.0098 0.0485 -0.0306 0.0486 -0.0687 0.0998 0.2260 -0.0107 0.0506 -0.0487 -0.1410 -0.0521 -0.0207 0.0385 -0.0895 0.0933 0.0962 0.0585 -0.0328 -0.0175 0.0449 0.0567 -0.0507 -0.0074 -0.0491 -0.0425 -0.0339 0.0572 0.1264 -0.1260 0.0010 0.2422 -0.1687 0.3037 0.0982 0.2400 0.2479 0.1893 -0.0384 0.1658 -0.0204 0.1070 0.1369 0.0535 0.0218 0.0157 0.0296 0.0320 0.0027 -0.0133 -0.0125 0.0037 0.0061
1034m2- 1034m2- Monocytes H. sapiens 1 #7570B3 1034m2- -0.0376 -0.0962 -0.0376 -0.0962 -0.0139 -0.1112 0.1222 0.0700 0.1293 -0.2606 0.1913 -0.0239 0.0008 -0.1736 0.0780 0.0317 -0.0082 0.0363 0.0064 -0.0890 0.0297 -0.0020 -0.2792 0.0711 -0.0468 0.0111 -0.0246 -0.0735 0.0061 0.0918 -0.0251 -0.0030 0.0985 -0.0065 -0.1934 -0.0138 0.0323 0.0212 -0.1076 -0.0789 0.0182 0.0296 0.0669 0.0032 -0.0812 -0.0455 -0.0066 -0.0498 0.0789 -0.0523 -0.0125 -0.0163 0.1084 0.1684 0.0395 0.0747 -0.0794 -0.1235 -0.0399 -0.0066 0.0140 0.0173 0.0830 -0.0198 -0.0562 0.0993 0.0093 -0.0085 -0.0458 0.0409 0.0261 0.0552 0.0342 0.0559 -0.0738 -0.0532 0.1492 -0.0266 -0.2472 0.2080 -0.3865 -0.1179 -0.2403 -0.1779 -0.1748 0.0267 -0.0762 -0.0095 -0.1590 -0.1420 -0.0673 -0.0469 0.0063 -0.0457 -0.0216 -0.0147 -0.0134 0.0086 0.0155 -0.0135
2050bp1 2050bp1 Biopsy H. sapiens 1 #E7298A 2050bp1 0.1072 0.0141 0.1072 0.0141 0.0092 -0.0343 -0.2307 0.0661 0.2748 0.1167 -0.0016 -0.1658 -0.0329 -0.1069 -0.0142 0.0207 0.0262 0.0508 0.3048 0.0441 -0.0606 -0.0670 -0.0711 0.1026 0.0555 0.0546 -0.0274 -0.2106 -0.0406 -0.0559 -0.0841 0.1119 -0.1014 0.2304 0.2126 -0.0766 0.0462 -0.1670 0.0464 -0.0951 -0.0763 -0.0423 0.2249 -0.0073 0.2751 -0.0814 -0.0744 -0.1012 -0.0648 -0.1342 0.1386 -0.1197 0.1568 -0.0572 0.0386 0.0099 0.0587 0.1172 -0.0731 0.0109 -0.0321 -0.0377 0.0262 -0.0304 0.0945 0.1300 0.0426 0.1911 -0.0056 -0.0771 0.0286 0.0218 0.0697 -0.1917 -0.1555 0.0522 -0.0675 0.0292 0.0060 0.0574 -0.0338 0.0366 0.0054 -0.0127 0.0818 -0.0270 -0.0726 -0.0101 0.0115 -0.0065 -0.0352 0.0131 0.0035 -0.0035 0.0037 0.0046 -0.0479 0.0146 -0.0040 -0.0012
2052bp1 2052bp1 Biopsy H. sapiens 1 #E7298A 2052bp1 0.1244 0.0549 0.1244 0.0549 0.0131 -0.0409 -0.2266 -0.0282 -0.1348 -0.0864 0.1578 0.1031 0.0393 0.0717 -0.0865 0.0877 0.0171 -0.0400 0.0119 -0.0044 -0.0703 -0.0691 0.0216 -0.0290 0.0722 -0.0367 0.0072 -0.1925 0.1353 0.1810 0.1933 -0.0395 0.0866 0.0223 0.1194 0.2161 -0.0628 -0.0095 0.0291 -0.0998 0.0325 0.2017 0.0988 -0.0197 -0.0863 0.0092 -0.0120 -0.0233 -0.1228 -0.1138 0.2031 0.1566 -0.1487 -0.0755 -0.1857 -0.1103 -0.1257 -0.0847 -0.0630 -0.2806 -0.0256 -0.2252 0.1054 0.0634 0.1050 0.0020 -0.1692 -0.1310 0.1218 0.0620 -0.1896 -0.0274 0.0400 -0.1348 -0.0810 -0.1552 0.0740 -0.0171 -0.0287 -0.0686 0.0179 -0.1302 -0.0232 -0.0250 -0.0662 -0.0118 0.0451 -0.0439 0.0214 0.0259 -0.0004 0.0008 -0.0141 0.0037 -0.0220 0.0097 -0.0144 -0.0143 -0.0086 -0.0039
2052e1 2052e1 Eosinophils H. sapiens 1 #66A61E 2052e1 -0.0947 0.0195 -0.0947 0.0195 0.2188 0.0673 0.0024 0.0143 -0.0479 0.0271 -0.1098 -0.0588 0.1240 0.1046 -0.1355 -0.0882 0.1485 -0.2547 0.1292 -0.0181 -0.1109 0.0010 -0.0189 0.0596 0.0488 -0.0084 -0.1208 0.1100 -0.2076 -0.1791 0.1356 -0.0885 -0.0396 0.1121 0.0082 0.2637 0.0976 -0.1751 -0.0803 -0.0152 0.2904 0.1513 0.0734 -0.3135 -0.1401 -0.1670 0.0464 0.0689 0.0688 0.0662 -0.0657 -0.2001 0.0160 -0.0081 0.1422 -0.0003 -0.1928 -0.0609 0.0066 0.0810 0.1213 0.0297 -0.0023 -0.0818 -0.0639 -0.0101 0.0791 -0.0346 0.1088 -0.0221 0.0187 -0.0972 0.0511 -0.0251 -0.0698 -0.0226 0.0363 -0.0613 0.0233 -0.0078 -0.0689 -0.0269 -0.0170 -0.0440 0.0016 0.0234 -0.0004 -0.0059 0.0314 0.0385 0.0071 0.0631 0.0085 0.0327 0.0306 0.0085 0.0060 0.0307 0.0204 -0.0103
2052m2 2052m2 Monocytes H. sapiens 1 #7570B3 2052m2 -0.0364 -0.0890 -0.0364 -0.0890 -0.0138 -0.1538 0.1073 0.0502 -0.0327 -0.0530 -0.0841 -0.1269 0.1485 0.0902 -0.2823 0.0424 -0.0365 -0.0456 0.1148 -0.0215 0.0470 -0.0406 0.3966 0.0974 -0.2790 -0.0827 -0.4901 -0.2440 0.2536 0.0714 0.0097 0.1184 -0.0506 -0.0992 -0.1919 -0.1157 0.2283 -0.0217 -0.0117 0.0000 -0.0387 -0.0671 -0.0151 0.0274 -0.0410 -0.0466 0.0068 0.0370 -0.0137 0.0427 0.0042 0.0185 0.0056 -0.0007 0.0118 0.0527 0.0338 -0.0172 0.0353 -0.0305 -0.0238 0.0359 -0.0245 0.0145 0.0382 -0.0023 -0.0189 0.0111 0.0256 -0.0429 -0.0055 -0.0210 0.0004 -0.0441 0.0085 -0.0262 -0.0089 0.0119 -0.0098 0.0019 -0.0153 0.0167 0.0039 -0.0085 -0.0033 -0.0117 0.0056 0.0032 -0.0118 0.0119 -0.0050 -0.0009 -0.0108 0.0027 0.0034 -0.0024 0.0066 -0.0024 0.0035 0.0017
2052n2 2052n2 Neutrophils H. sapiens 1 #D95F02 2052n2 -0.1194 0.1166 -0.1194 0.1166 -0.1281 0.0308 0.0170 0.0127 -0.0354 -0.0239 -0.1141 -0.0762 0.0320 0.1382 -0.2335 0.0418 -0.3463 -0.2653 0.2236 -0.3326 0.3883 -0.1383 -0.2701 -0.3073 0.1834 0.0201 0.0422 -0.0645 0.0477 -0.0583 -0.1712 -0.1360 -0.0534 -0.0203 -0.0030 0.0621 0.0749 0.0176 0.0905 0.0580 -0.0376 -0.0332 -0.0910 0.0931 0.0149 -0.0204 -0.0479 -0.0401 -0.0213 0.0057 -0.0285 0.0133 0.0212 -0.0333 -0.0153 -0.0694 -0.0401 -0.0145 -0.0319 -0.0080 -0.0043 -0.0245 -0.0237 0.0093 0.0017 -0.0220 0.0012 0.0126 0.0028 0.0018 -0.0219 0.0210 0.0232 0.0253 -0.0247 0.0214 -0.0064 0.0008 0.0030 0.0098 0.0049 0.0002 -0.0023 0.0067 -0.0060 -0.0133 0.0097 -0.0078 -0.0079 0.0028 0.0050 -0.0031 0.0025 -0.0075 0.0067 0.0046 0.0039 -0.0032 -0.0010 -0.0001
2052m3 2052m3 Monocytes H. sapiens 1 #7570B3 2052m3 -0.0364 -0.0906 -0.0364 -0.0906 -0.0213 -0.1565 0.0363 0.0078 -0.0392 -0.0486 -0.1001 -0.1014 0.1037 0.0660 -0.1463 0.0337 -0.0648 -0.0533 0.0365 -0.0072 -0.0097 -0.0095 0.0820 0.1178 -0.1626 0.0109 -0.0024 0.0974 0.0022 0.0387 0.0454 -0.0049 0.0901 0.0401 0.1181 -0.0028 -0.3498 0.0658 -0.1597 -0.0465 0.0337 0.0870 0.0926 0.0329 0.0514 0.1391 -0.1575 -0.0640 0.1460 -0.1410 0.0450 -0.0109 -0.0547 -0.0037 -0.1331 -0.1692 -0.1015 0.1172 -0.1255 0.1764 0.1491 -0.0655 0.0889 0.0085 -0.0874 -0.0230 -0.0045 -0.0386 -0.1119 0.1662 0.0461 0.1212 0.1072 0.2437 -0.1548 0.3983 0.0405 -0.0159 0.0299 0.0470 0.1079 0.0220 -0.0134 0.1215 -0.0228 0.0009 -0.0344 -0.0406 -0.0003 -0.0775 -0.0231 -0.0208 0.0282 -0.1092 0.0334 0.0128 0.0240 -0.0040 -0.0273 -0.0045
2052n3 2052n3 Neutrophils H. sapiens 1 #D95F02 2052n3 -0.1165 0.1233 -0.1165 0.1233 -0.1221 0.0210 -0.0223 -0.0146 -0.0220 -0.0223 -0.1036 -0.0266 0.0705 0.0674 -0.0754 0.0846 -0.2189 -0.1420 0.0524 -0.0457 0.0325 -0.0108 -0.0837 0.1018 -0.0581 0.0151 0.0667 0.1161 -0.0750 0.0649 0.1877 0.1438 0.1880 0.0370 0.0626 -0.1678 -0.1598 -0.0066 -0.2186 -0.0946 0.0251 0.0621 0.1586 -0.2162 -0.0368 0.1795 0.1089 0.1220 -0.0715 0.0876 0.2434 0.0175 -0.0733 0.1111 -0.0631 0.1826 0.2439 0.0598 0.0915 0.0862 -0.0331 0.1165 0.0245 0.1052 0.0489 0.1011 0.0605 -0.0274 -0.1168 -0.0081 0.0907 -0.0097 -0.1942 -0.1979 0.2072 -0.1833 -0.0842 0.0141 0.0189 -0.0218 -0.0659 0.0067 0.0112 -0.0059 0.0054 0.0174 -0.0216 0.0564 0.0154 -0.0195 0.0006 -0.0120 -0.0083 0.0196 -0.0193 -0.0148 -0.0154 -0.0078 -0.0020 0.0032
2065m1 2065m1 Monocytes H. sapiens 1 #7570B3 2065m1 -0.0302 -0.1172 -0.0302 -0.1172 -0.0084 -0.1596 -0.0460 -0.0504 -0.1318 0.1495 -0.1746 0.0874 -0.1274 -0.1232 0.1965 0.0000 0.0051 -0.1287 0.0510 -0.0149 -0.0570 0.0253 -0.0029 -0.1076 -0.0019 0.0681 -0.0821 -0.0690 0.0702 0.0467 -0.1227 -0.0923 0.0192 -0.0774 0.0571 0.0416 0.0252 -0.0762 -0.2658 -0.1495 -0.0398 -0.0579 0.0174 -0.0437 0.0013 -0.0246 0.0843 -0.0093 0.0935 -0.0239 -0.1074 0.0411 -0.0144 -0.0366 -0.0265 -0.0196 -0.0636 0.0850 0.0798 -0.0508 -0.0788 -0.0296 -0.0036 -0.1493 -0.2213 0.0599 0.0135 0.0578 -0.1546 0.1101 0.0015 0.0459 -0.1975 -0.0687 -0.1202 -0.2661 -0.0265 -0.1394 -0.1992 0.0042 0.2728 0.1528 -0.1234 0.0491 0.0697 0.0021 0.0461 -0.2092 -0.1115 -0.0479 0.0948 0.0640 0.1618 -0.0841 -0.0064 0.0662 -0.0115 -0.0002 -0.0090 -0.0083
2065n1 2065n1 Neutrophils H. sapiens 1 #D95F02 2065n1 -0.1049 0.0967 -0.1049 0.0967 -0.1079 -0.0089 -0.0478 -0.0200 -0.1182 0.0835 -0.1877 0.0399 0.0291 -0.1761 -0.0011 0.0610 0.1115 0.0581 -0.0934 -0.1013 -0.0998 -0.0303 -0.2288 0.0942 -0.1498 -0.1784 -0.0273 0.0082 0.2896 -0.1042 0.0069 -0.0764 0.0759 0.0443 0.0138 -0.1124 -0.0222 -0.1276 0.1807 0.0111 0.0410 0.1466 -0.0232 -0.0071 -0.0130 -0.0487 0.0604 0.0078 0.0185 -0.1886 -0.2163 -0.0838 -0.1009 -0.0801 0.1310 -0.0481 0.0880 0.0018 -0.0066 -0.0331 -0.0308 -0.0236 -0.0113 -0.0325 0.0020 -0.0255 -0.1021 -0.0010 -0.1091 0.0897 -0.0347 0.1842 -0.0791 0.0259 -0.0427 -0.0678 -0.2501 -0.0529 0.3023 0.0681 -0.1799 -0.1201 0.1007 0.0096 -0.0784 0.1792 -0.0564 -0.0741 0.0214 0.0957 -0.0418 -0.0431 -0.0466 -0.0257 -0.0106 -0.0032 -0.0215 0.0011 -0.0135 -0.0053
2065bp1 2065bp1 Biopsy H. sapiens 1 #E7298A 2065bp1 0.1274 0.0516 0.1274 0.0516 -0.0089 -0.0448 -0.2479 -0.1405 -0.1878 -0.0997 0.1640 0.1102 -0.1481 0.0432 -0.1252 0.0160 -0.0421 0.0926 0.2066 -0.0970 -0.1721 0.1143 0.0085 -0.0346 -0.0485 -0.1060 0.0428 0.0328 0.0449 -0.1457 -0.1665 0.1326 0.1974 -0.0571 -0.1055 0.0902 0.0473 0.0206 0.1138 -0.0506 0.1911 -0.3920 0.1821 -0.1151 0.1147 -0.0335 0.0219 0.0401 -0.1782 -0.0828 -0.1592 0.1028 0.0297 0.1237 0.0002 -0.0555 -0.0261 0.0488 0.0585 0.1847 0.1247 -0.0223 0.0067 0.0414 -0.0275 0.0246 -0.0041 -0.0131 -0.0420 -0.0117 0.0208 -0.0572 -0.1136 0.1590 0.1335 0.0419 0.0634 -0.0181 0.0118 -0.1045 -0.0112 -0.0119 -0.0181 -0.0130 -0.0512 0.0072 0.0403 -0.0221 0.0290 -0.0227 0.0030 -0.0032 -0.0006 -0.0050 0.0003 -0.0089 -0.0052 0.0069 -0.0084 -0.0036
2066m1 2066m1 Monocytes H. sapiens 1 #7570B3 2066m1 -0.0302 -0.1134 -0.0302 -0.1134 -0.0033 -0.1613 0.0057 -0.0476 0.0042 -0.0185 -0.0360 0.0049 0.0784 0.0723 0.0305 -0.0751 -0.0142 0.0038 -0.0856 -0.0548 0.0647 -0.0191 0.0163 0.0277 -0.0757 0.0664 0.0320 0.1518 -0.1066 0.0072 0.2099 0.0096 -0.2350 0.1009 0.0344 -0.0937 -0.0487 -0.0153 0.2495 -0.0334 0.0105 -0.1989 0.0187 0.0336 -0.0538 -0.0399 -0.0023 0.0025 -0.0822 -0.0451 -0.1053 -0.0205 0.0390 -0.0565 -0.0134 0.0485 -0.1171 -0.0417 -0.1535 0.0098 0.1088 -0.0926 -0.0319 0.0992 0.1158 0.1338 -0.0150 -0.0237 -0.1207 0.0341 0.0112 0.1897 -0.0383 0.0552 -0.0509 -0.2822 0.0121 -0.0792 -0.1896 -0.1172 -0.1857 -0.0001 0.1530 0.3701 0.0260 -0.2598 -0.0223 0.0132 -0.0424 -0.0544 0.1431 0.0573 -0.0225 0.1272 -0.0358 -0.0153 -0.0008 0.0093 0.0032 0.0052
2066n1 2066n1 Neutrophils H. sapiens 1 #D95F02 2066n1 -0.1217 0.1039 -0.1217 0.1039 -0.1040 0.0167 -0.0039 -0.0134 0.0013 0.0095 -0.0144 -0.0047 0.0953 -0.0020 0.0360 -0.1171 0.0281 0.0024 -0.0275 -0.1475 0.0150 -0.1069 0.0263 0.0353 -0.0581 0.0636 0.1080 0.0625 -0.0532 0.0553 0.1425 0.1417 -0.2892 0.1729 -0.1316 -0.0781 -0.1175 0.0410 0.0217 -0.0909 0.0965 -0.2826 0.0352 -0.0558 -0.0765 -0.0551 0.0744 -0.0859 -0.0198 -0.0118 0.0149 0.1265 0.0233 0.1963 0.0407 0.0841 0.0689 0.2104 0.1352 -0.3294 -0.0731 -0.0910 0.0386 -0.3375 -0.1503 -0.1149 -0.1014 0.0158 0.1416 0.0967 -0.1167 -0.1348 0.0727 0.0132 -0.0095 0.1461 0.0081 0.0732 0.0227 0.0392 0.0306 0.0144 0.0456 -0.0112 -0.0717 0.1225 -0.0387 -0.0826 -0.0089 0.0155 0.0026 0.0034 0.0140 -0.0249 0.0357 0.0056 0.0095 0.0034 0.0116 0.0054
2066bp1 2066bp1 Biopsy H. sapiens 1 #E7298A 2066bp1 0.1240 0.0553 0.1240 0.0553 -0.0039 -0.0393 -0.1856 0.0601 -0.1070 -0.0488 0.1499 0.0659 -0.0362 0.0813 -0.0776 0.0214 0.0374 -0.0991 -0.2052 -0.1169 -0.0811 -0.1136 -0.0191 -0.0817 -0.0741 0.1478 -0.1051 0.1392 0.0031 0.0893 0.0775 0.0676 -0.0294 0.0748 -0.0069 0.1714 -0.0427 0.1188 0.1543 -0.1121 -0.0603 -0.0510 -0.0490 0.1171 -0.0585 -0.0310 -0.1608 -0.0312 0.2858 0.0688 0.0672 -0.0574 -0.0913 -0.0677 0.2350 0.0447 0.0920 -0.1026 0.0333 0.1314 -0.2488 0.0882 0.0366 -0.0704 0.0831 0.0618 0.0736 0.1519 -0.1770 -0.2076 -0.0265 -0.0426 -0.2757 -0.0965 -0.1662 0.1363 0.1413 -0.0103 0.0964 -0.0157 -0.0105 0.0735 -0.0259 -0.0017 -0.0119 0.0424 -0.0021 -0.0056 -0.0065 -0.0249 -0.0022 0.0095 -0.0096 -0.0327 0.0024 -0.0020 -0.0070 -0.0031 0.0052 -0.0051
2065m2 2065m2 Monocytes H. sapiens 1 #7570B3 2065m2 -0.0350 -0.1227 -0.0350 -0.1227 0.0002 -0.1505 -0.0202 -0.0869 -0.0920 0.1995 -0.0764 0.0772 -0.0548 -0.0745 0.2488 -0.0187 -0.0612 -0.1018 0.0844 -0.0169 -0.0874 0.0550 -0.0457 -0.1600 -0.0087 0.0935 -0.1063 -0.0190 -0.0385 0.1844 -0.0528 -0.0132 0.0973 -0.0644 0.0040 -0.0188 0.0666 -0.0290 -0.1576 -0.0901 0.0941 -0.0042 -0.0323 -0.0081 0.0995 0.0342 0.0175 -0.0524 0.0474 0.1428 -0.0312 0.1229 0.0219 -0.1271 -0.0500 -0.0809 -0.0664 0.1039 0.1204 -0.1276 -0.0921 0.2051 0.1138 0.0729 -0.0669 0.0539 0.0233 -0.0148 0.0717 -0.1151 -0.0441 -0.0759 0.1167 0.0153 -0.0283 0.1928 0.0640 0.0843 0.1598 -0.0973 -0.3306 -0.1555 0.2047 0.1600 -0.0514 -0.1409 -0.0805 0.1622 0.0788 0.0152 -0.0200 -0.0236 -0.1774 0.0852 -0.0321 -0.0386 0.0044 0.0091 0.0083 0.0220
2065n2 2065n2 Neutrophils H. sapiens 1 #D95F02 2065n2 -0.1143 0.1052 -0.1143 0.1052 -0.1065 0.0086 -0.0462 -0.0649 -0.0872 0.1812 -0.0824 0.0238 0.1015 -0.0841 -0.0020 0.0420 0.0257 0.0561 -0.0664 -0.0122 -0.0898 0.1285 -0.2621 0.0405 -0.1768 -0.0065 -0.1449 0.1218 0.0908 0.0577 0.0550 -0.1538 0.1848 -0.0611 0.1308 -0.2156 0.0514 -0.0957 0.1712 0.0422 0.1396 0.0446 0.0479 0.0930 0.0309 0.0332 -0.1989 -0.1510 -0.1771 0.2718 0.0829 -0.0088 0.0499 0.0332 0.1046 0.0710 0.0224 -0.0879 -0.0871 -0.0382 0.0968 -0.0452 0.0167 -0.1178 0.0485 -0.1077 -0.0117 0.0426 0.1521 -0.1071 -0.0178 -0.0506 0.0669 0.0202 0.0287 0.0790 0.1946 0.0321 -0.2561 -0.0449 0.1830 0.0991 -0.1297 -0.0309 0.0720 -0.0886 0.0468 0.0599 0.0032 -0.0360 0.0209 0.0403 0.0266 0.0179 0.0101 0.0072 0.0155 -0.0032 0.0104 0.0019
2066m2 2066m2 Monocytes H. sapiens 1 #7570B3 2066m2 -0.0329 -0.1082 -0.0329 -0.1082 -0.0027 -0.1528 0.0036 -0.0472 -0.1063 0.1605 -0.0923 0.0947 0.0164 -0.1098 0.1698 0.0004 -0.0041 -0.1558 0.0414 -0.0567 -0.0445 -0.0363 0.0116 -0.0519 -0.0485 0.1421 -0.0593 0.0504 -0.1202 0.0680 0.1523 0.0274 -0.1011 0.1101 -0.0718 -0.0444 -0.0964 0.0030 0.0684 -0.0325 -0.0570 -0.2451 -0.0646 0.0200 -0.0330 -0.0207 -0.0185 0.0117 0.0072 -0.0748 -0.0634 -0.0023 0.1050 -0.0500 -0.0603 -0.0560 -0.0990 -0.1447 -0.1448 0.0184 0.0302 -0.0074 -0.0074 0.3056 0.2253 0.0204 0.0865 -0.1220 0.0146 -0.0393 0.0390 0.0384 0.1373 -0.0557 0.1700 0.0200 -0.1212 0.0641 0.1018 0.0522 0.1735 -0.0508 -0.1829 -0.4190 0.0113 0.1682 0.0521 0.0120 0.0324 0.0579 -0.1024 -0.0572 0.0594 -0.0335 0.0120 -0.0041 0.0142 -0.0123 -0.0140 -0.0016
2068m1 2068m1 Monocytes H. sapiens 1 #7570B3 2068m1 -0.0307 -0.1182 -0.0307 -0.1182 0.0017 -0.1719 -0.0362 -0.0590 -0.0539 0.1989 0.0458 0.1321 -0.1873 0.0554 0.1134 -0.0245 -0.0131 -0.1078 -0.0128 0.0583 0.1010 0.0176 0.0148 -0.0276 0.0667 -0.0549 0.0566 -0.0613 0.0808 -0.0723 -0.0178 0.1120 -0.0732 0.0614 -0.0465 -0.0364 0.0469 0.0315 -0.0943 0.0570 0.0119 0.1172 0.1589 -0.0379 -0.1432 -0.2005 0.0395 0.1477 0.0768 0.1058 0.1633 0.0440 0.0179 0.0171 -0.0466 -0.0099 0.2625 -0.2035 -0.1595 0.1878 0.1312 -0.2006 -0.2328 -0.0839 0.0063 -0.2062 -0.2097 0.2185 -0.1493 -0.0118 -0.1371 0.0052 0.1400 0.0483 0.0776 0.0677 0.0772 0.0942 0.0244 0.0624 -0.0836 0.0523 0.0907 -0.0023 -0.0949 0.0033 -0.0390 0.0419 0.0223 -0.0285 0.0640 0.0078 0.0720 0.0112 -0.0277 -0.0108 -0.0269 0.0121 -0.0107 -0.0008
2068n1 2068n1 Neutrophils H. sapiens 1 #D95F02 2068n1 -0.1172 0.0941 -0.1172 0.0941 -0.0881 0.0003 -0.0407 -0.0381 -0.0338 0.1894 0.0743 0.0516 0.0278 -0.0065 -0.0518 -0.0605 0.1837 0.0784 -0.0576 0.0225 0.1196 0.0617 -0.1317 0.1437 -0.0661 0.0093 -0.0265 -0.1004 0.1229 -0.0789 -0.1283 -0.0526 -0.1506 0.0666 -0.0539 0.0896 -0.1024 0.0679 0.0660 0.1175 0.0083 -0.0087 -0.0533 0.0489 0.0137 -0.1207 0.1480 0.2607 0.1680 0.0248 0.2513 0.0093 -0.0199 0.0984 -0.1985 -0.0588 -0.2207 0.2079 0.1189 0.1362 0.0139 0.1118 0.1631 0.1816 -0.0609 0.0405 0.1352 0.0873 0.2163 -0.1084 -0.1372 0.2472 -0.1112 -0.0423 0.0818 -0.0106 0.0716 0.0677 -0.1163 -0.0237 0.0130 0.0399 0.0005 0.0333 -0.0337 0.0517 -0.0299 0.0303 -0.0103 0.0227 0.0000 -0.0004 0.0353 0.0028 -0.0181 0.0016 -0.0040 0.0068 0.0041 -0.0059
2068e1 2068e1 Eosinophils H. sapiens 1 #66A61E 2068e1 -0.0910 0.0208 -0.0910 0.0208 0.2186 0.0475 -0.0095 0.0047 -0.0617 0.1630 0.0751 0.0800 -0.0897 -0.0731 0.0200 0.0517 -0.0236 0.0448 -0.0565 -0.0122 0.1746 0.0418 -0.0730 0.1249 -0.0983 -0.0392 -0.0169 -0.0926 0.0437 -0.2168 0.0834 -0.0314 -0.0373 0.0775 0.0149 0.0431 0.1607 0.1856 -0.0416 -0.1133 -0.0946 -0.0637 -0.1105 -0.0071 -0.0331 0.1590 -0.1237 -0.1310 -0.0131 -0.1194 0.0848 0.0818 -0.1131 -0.0043 -0.2138 0.0765 0.1131 -0.0664 -0.1803 0.0753 0.1291 0.1058 0.0102 -0.2002 -0.0845 0.2069 0.1440 -0.1821 0.1050 -0.1818 0.0047 -0.1953 0.0538 0.0391 -0.0227 0.0043 -0.1218 -0.2049 0.1097 -0.0223 0.0151 -0.0145 0.0646 -0.0001 -0.0658 0.0230 -0.0350 -0.0915 -0.0899 -0.1576 0.0048 0.1151 -0.0040 0.1585 0.0257 0.0089 0.0097 -0.0060 -0.0044 0.0058
2068bp1 2068bp1 Biopsy H. sapiens 1 #E7298A 2068bp1 0.1163 0.0352 0.1163 0.0352 0.0003 -0.0277 -0.0909 0.2590 0.2338 0.1573 -0.0269 0.0036 -0.0872 0.1318 0.0211 0.0316 0.0139 0.0607 0.0697 0.0289 -0.0780 -0.1853 -0.0352 0.0202 0.0150 0.0840 -0.0541 -0.0712 0.0102 -0.0146 -0.0145 -0.1086 0.0512 0.0569 -0.0008 0.0136 0.0234 0.0908 -0.0973 0.0692 0.0421 -0.0239 -0.0443 0.0464 -0.0550 0.0146 0.0964 -0.0222 0.1433 0.1848 -0.1566 -0.0278 -0.0367 0.1525 0.1733 -0.0128 0.2040 0.2606 -0.1787 -0.0639 0.1710 -0.1032 0.1068 0.1679 0.0236 -0.1526 -0.0310 -0.4159 -0.1054 -0.1448 -0.1628 -0.0168 -0.1284 0.1022 0.0169 -0.0370 -0.0134 -0.0154 -0.0997 -0.0021 0.0188 -0.0687 0.0179 0.0124 -0.0164 -0.0168 0.0193 -0.0175 0.0257 0.0073 -0.0115 -0.0187 -0.0157 -0.0003 -0.0095 -0.0120 0.0154 0.0027 0.0012 -0.0248
2072m1 2072m1 Monocytes H. sapiens 1 #7570B3 2072m1 -0.0387 -0.0955 -0.0387 -0.0955 -0.0045 -0.1485 0.1497 0.0469 -0.0894 0.1765 0.0805 0.0369 -0.0745 -0.1631 -0.0067 0.1026 0.0074 -0.1225 0.1213 0.0623 -0.1603 0.0111 0.0585 -0.1806 0.1518 -0.0264 -0.0166 -0.0967 -0.0514 -0.0222 -0.0241 0.1139 0.0515 0.0609 -0.1129 0.0192 -0.0584 0.0614 0.2212 0.1830 0.0167 0.1379 -0.2420 -0.1237 0.0044 0.2172 0.0326 -0.0267 -0.0502 -0.1179 0.1982 -0.0477 0.0795 0.1050 0.1128 0.2509 0.0173 0.0677 0.1611 0.1178 -0.0581 -0.2057 -0.0331 -0.1117 0.1715 0.0402 -0.0089 -0.1621 0.1499 0.1280 0.1035 0.0694 -0.1367 0.0947 -0.1381 0.0913 -0.0187 -0.0189 -0.0744 -0.0017 -0.0256 -0.0137 0.0032 0.0815 0.0470 0.0290 0.0208 0.0234 0.0273 -0.0183 0.0541 -0.0184 0.0181 0.0340 -0.0121 -0.0182 0.0022 0.0154 0.0079 0.0006
2072n1 2072n1 Neutrophils H. sapiens 1 #D95F02 2072n1 -0.1203 0.1065 -0.1203 0.1065 -0.0981 0.0186 0.0827 0.0316 -0.0354 0.1658 0.1107 -0.0073 0.0960 -0.1283 -0.1119 -0.0224 0.1453 0.0857 0.0430 0.0026 -0.0957 0.0118 -0.0154 -0.0367 0.0468 -0.0379 0.0696 0.0921 0.1232 0.1459 -0.1115 -0.0823 -0.1974 -0.0110 0.0198 0.0600 0.1731 0.0755 0.0373 0.0677 0.0243 -0.0051 0.0727 -0.0334 -0.1569 0.1289 0.0482 -0.0270 0.0662 -0.1321 0.0333 -0.0743 0.0025 0.0447 -0.0188 -0.2781 0.0685 0.0015 0.0376 0.0386 -0.0187 0.0817 0.0433 0.1295 0.0756 0.0482 -0.0641 -0.1069 -0.3058 0.1272 0.3036 -0.3437 0.1651 -0.1927 0.0480 0.0158 0.1054 0.1049 -0.1351 -0.0280 -0.0038 0.0561 0.0581 0.0937 -0.0176 0.0245 -0.0285 -0.0641 0.0063 -0.0188 0.0147 0.0378 0.0094 0.0010 0.0009 -0.0084 -0.0131 0.0014 0.0051 0.0082
2072e1 2072e1 Eosinophils H. sapiens 1 #66A61E 2072e1 -0.0803 0.0239 -0.0803 0.0239 0.1847 0.0380 0.0701 0.0829 -0.0876 0.1536 0.1659 0.0439 -0.0057 -0.3131 -0.0251 0.2762 -0.4093 0.3792 -0.1016 -0.1484 0.1078 -0.1373 0.1809 0.0305 -0.1358 0.1382 0.0824 -0.0488 -0.1296 0.0044 0.0044 -0.0295 -0.0211 0.0148 0.0233 0.1703 0.0042 -0.1497 -0.0331 0.0370 0.1301 0.0726 0.0692 -0.0812 -0.0398 -0.1060 -0.0372 0.0449 -0.0194 0.0897 -0.0875 -0.0557 -0.0046 -0.0436 0.0373 0.0615 -0.0789 0.0551 0.0477 -0.0203 0.0004 -0.0044 -0.0051 0.1064 0.0559 -0.1279 -0.0348 0.0968 0.0180 0.0243 0.0351 0.0177 -0.0270 -0.0082 -0.0160 -0.0174 -0.0056 0.0633 0.0720 0.0312 0.0738 0.0508 0.0033 0.0637 -0.0186 -0.0300 -0.0161 -0.0252 -0.0428 -0.0833 -0.0322 -0.0575 -0.0036 -0.0234 -0.0210 -0.0124 0.0136 0.0132 0.0063 -0.0123
2072bp1 2072bp1 Biopsy H. sapiens 1 #E7298A 2072bp1 0.1203 0.0402 0.1203 0.0402 -0.0118 -0.0191 -0.0060 0.2236 0.2122 0.1224 -0.0475 -0.0007 -0.0878 0.0219 -0.0143 0.0198 0.0218 0.0280 0.0077 0.0605 -0.0027 -0.0961 -0.0470 -0.0325 -0.0092 -0.0151 -0.0358 0.2094 0.0871 -0.1939 -0.1052 0.1423 -0.0374 -0.1040 -0.0383 -0.1256 -0.0647 -0.1219 -0.0455 0.1217 0.0366 -0.1198 -0.0344 -0.2018 -0.0414 0.0854 -0.1168 0.0021 -0.0013 0.0103 0.0942 0.0180 -0.0422 -0.0478 -0.2254 -0.0010 -0.3154 -0.2091 -0.1434 -0.2145 -0.0948 0.1289 -0.1597 0.0272 -0.0599 -0.0365 -0.2805 -0.0465 0.0288 -0.0195 0.1222 -0.0179 -0.2965 -0.0390 -0.0078 0.0754 0.1356 -0.0257 0.0567 0.0762 -0.0023 -0.0481 0.0549 -0.0068 0.0111 0.0380 -0.0309 0.0441 -0.0529 -0.0139 0.0164 0.0149 0.0040 -0.0341 0.0042 0.0119 0.0276 -0.0118 0.0036 0.0178
2071bp1 2071bp1 Biopsy H. sapiens 1 #E7298A 2071bp1 0.1156 0.0497 0.1156 0.0497 -0.0047 -0.0248 0.0226 0.3226 0.0719 0.0706 -0.0280 0.2108 0.0109 0.1571 -0.0149 0.0722 0.0448 -0.0231 -0.1120 0.0951 -0.0347 -0.2254 0.0118 -0.0982 -0.0102 -0.0326 0.0527 -0.0381 0.0732 -0.0166 0.1193 -0.1602 0.0979 -0.1219 0.0059 -0.0235 -0.0498 -0.0480 -0.1355 0.0916 0.1155 -0.1456 -0.0517 0.0891 -0.1409 0.0350 0.1459 -0.0436 -0.1589 0.0319 -0.1531 0.0028 -0.0765 0.0884 -0.0828 -0.0501 -0.0332 0.0383 0.0778 0.1559 -0.0160 -0.1776 0.0798 -0.1383 0.1222 0.3096 0.0974 0.3541 0.0971 -0.0235 0.1282 0.0186 0.1582 -0.0501 0.0529 0.0534 -0.0523 0.0414 0.0084 0.1108 -0.0323 -0.0429 0.0145 -0.0093 0.0496 -0.0454 -0.0543 -0.0170 0.0238 0.0079 0.0013 -0.0061 0.0058 0.0018 0.0023 0.0454 0.0334 -0.0073 -0.0072 0.0077
2073m1 2073m1 Monocytes H. sapiens 1 #7570B3 2073m1 -0.0364 -0.1172 -0.0364 -0.1172 0.0013 -0.1555 0.0352 -0.0207 -0.0211 -0.0064 -0.0822 0.0064 0.0151 0.0101 0.0572 -0.0455 0.0438 0.1055 -0.0441 -0.0343 0.0355 -0.0144 0.0415 -0.0712 0.1166 -0.0674 -0.0145 -0.0117 -0.0685 -0.1137 -0.0118 -0.0576 -0.0452 -0.0062 0.0911 0.0472 0.0531 0.0277 0.0605 0.0135 -0.0756 -0.0672 0.0085 -0.0458 -0.0375 0.0183 0.1029 0.0931 -0.1234 -0.0225 0.1156 -0.0229 -0.1707 0.0178 0.0147 0.1111 0.1383 -0.0774 -0.0792 -0.0466 0.0973 0.0419 0.1704 0.0303 -0.0817 -0.0701 0.0199 0.1210 -0.0310 0.0619 0.0596 0.0017 -0.0768 0.0200 -0.0531 0.0126 0.1087 -0.0534 -0.0377 -0.0283 0.0361 -0.0084 -0.1062 0.0015 0.0804 -0.0737 -0.0370 -0.0887 0.0119 0.1308 -0.4173 0.0410 -0.5092 -0.2099 0.2601 0.0399 0.0549 -0.0825 0.0414 0.0134
2073n1 2073n1 Neutrophils H. sapiens 1 #D95F02 2073n1 -0.1211 0.0914 -0.1211 0.0914 -0.1012 0.0140 -0.0217 -0.0122 -0.0114 -0.0048 -0.1014 -0.0053 0.0736 -0.0289 0.0438 -0.0607 0.1484 0.1629 -0.0545 -0.1267 -0.0451 -0.1134 0.0302 -0.0479 0.1047 -0.1565 -0.0108 -0.0686 0.0230 -0.0526 -0.0145 0.0587 -0.0370 0.0635 -0.0752 0.0606 -0.0609 0.0138 -0.0901 0.0090 0.0073 0.0486 0.0008 -0.0050 -0.0527 -0.0984 -0.0865 -0.0278 0.0539 -0.1142 -0.0298 0.0313 -0.0530 0.0043 -0.0778 0.0324 0.0602 0.0789 0.0199 0.0234 -0.0753 -0.0272 -0.0615 0.0184 -0.0414 -0.0238 0.0081 -0.0175 -0.0521 0.0407 0.0132 -0.0325 -0.0613 0.0341 0.0164 0.0353 -0.0293 0.0149 0.1514 -0.0250 -0.0332 -0.0773 -0.2341 -0.1864 0.2632 -0.5356 0.2365 0.2837 0.0083 -0.2276 0.0381 0.0942 0.0568 0.0846 -0.0059 0.0149 -0.0026 -0.0083 -0.0082 0.0033
2073e1 2073e1 Eosinophils H. sapiens 1 #66A61E 2073e1 -0.0901 0.0116 -0.0901 0.0116 0.2212 0.0516 -0.0583 -0.0213 -0.0039 0.0036 -0.0623 0.0369 0.0166 0.0106 0.0880 -0.0317 -0.0252 0.1662 -0.0401 -0.1234 0.0928 -0.0512 0.0424 -0.0417 0.0142 -0.0988 -0.0971 -0.0073 -0.0515 0.0268 0.0149 0.0137 0.0880 -0.0194 0.0684 -0.0644 -0.0482 0.0267 0.0914 0.0512 -0.1235 -0.0605 0.1027 0.0348 -0.0025 0.1269 0.1398 0.0508 0.1294 -0.0152 0.1036 -0.0135 0.0798 0.0665 0.0082 -0.1023 -0.0692 -0.0364 -0.0816 0.0520 0.0528 -0.0143 -0.0634 -0.1857 -0.0618 0.0793 0.0422 -0.0700 0.0387 -0.0466 0.0252 -0.1676 0.0035 0.0018 -0.0691 -0.0805 0.0135 -0.0435 0.0130 -0.0326 -0.0892 -0.0309 -0.0749 0.0331 0.0460 -0.0858 0.0394 0.1559 0.0817 0.4097 0.1336 -0.3588 0.1318 -0.3772 -0.1308 -0.0826 -0.0331 0.0415 -0.0187 -0.0001
2073bp1 2073bp1 Biopsy H. sapiens 1 #E7298A 2073bp1 0.1095 0.0297 0.1095 0.0297 -0.0168 -0.0312 -0.1127 0.2157 0.0716 0.0090 0.0036 0.1076 -0.0606 0.0459 -0.0421 -0.0085 -0.0061 0.0979 0.0347 -0.0811 -0.0709 -0.0008 -0.0488 -0.0190 -0.0059 -0.0105 -0.0246 0.0168 0.0229 -0.1365 -0.0169 0.0913 0.0169 -0.2231 0.0142 0.0000 -0.0816 0.0967 0.0472 -0.0566 0.0913 -0.1129 -0.0352 -0.1145 -0.0046 0.0720 -0.1198 0.0760 0.1667 0.0520 0.1245 -0.0996 0.0233 -0.1242 0.0103 0.0581 0.0899 -0.2126 0.1165 -0.0348 -0.1492 0.1367 0.1117 0.0098 -0.0406 -0.2125 0.1929 -0.0697 0.0329 0.2863 -0.1368 0.0863 0.4124 0.0174 -0.0302 -0.1109 -0.2548 -0.0038 -0.0956 -0.0973 -0.0550 0.1536 -0.0232 0.0464 0.0391 -0.0517 -0.0201 0.0099 -0.0658 0.0398 0.0046 0.0012 0.0420 0.0284 0.0094 0.0035 0.0277 -0.0034 0.0050 0.0092
2068m2 2068m2 Monocytes H. sapiens 1 #7570B3 2068m2 -0.0372 -0.1164 -0.0372 -0.1164 -0.0032 -0.1618 -0.0432 -0.0614 0.0801 -0.0283 0.1108 0.0254 -0.0951 0.2321 -0.0197 -0.0397 -0.0439 0.1090 -0.1118 0.0545 0.1946 0.0594 -0.0420 0.0341 -0.0074 -0.0852 0.1147 0.0595 0.1115 -0.0066 -0.0132 0.0537 -0.0687 0.0788 0.0693 -0.1115 0.0917 0.0134 0.0501 0.0309 0.1821 0.1854 0.1367 -0.0883 -0.0084 -0.1632 0.0826 -0.0551 0.0800 0.2099 -0.1260 0.1902 0.1922 -0.1091 -0.0013 -0.0304 0.0855 -0.0669 0.2232 -0.0625 -0.0699 -0.0020 -0.0250 0.0246 0.0804 0.2980 0.0498 -0.2796 0.0749 0.0717 0.1819 0.0959 -0.0410 -0.0187 -0.1493 0.1510 -0.0715 -0.0116 0.0594 -0.0399 0.1482 0.0558 -0.0841 -0.0866 0.0113 -0.0371 -0.0121 -0.0495 -0.0619 0.0869 -0.0459 0.0452 -0.0232 -0.0579 0.0137 0.0117 -0.0061 -0.0146 -0.0113 0.0065
2068n2 2068n2 Neutrophils H. sapiens 1 #D95F02 2068n2 -0.1230 0.1080 -0.1230 0.1080 -0.1112 0.0141 -0.0723 -0.0685 0.0761 0.0463 0.1141 0.0549 -0.0682 0.1902 -0.0142 -0.0351 -0.0295 0.0701 -0.0801 0.2719 0.2124 0.2619 -0.0366 -0.0459 -0.0140 0.1867 -0.2691 -0.1963 -0.2437 0.0122 -0.1071 -0.0754 -0.0117 -0.1223 -0.1667 0.0891 -0.3276 -0.3446 0.1175 -0.0227 -0.0032 -0.0034 0.0043 -0.0953 -0.1058 0.0901 0.0044 -0.1204 0.0218 -0.1903 -0.1213 -0.0142 -0.0770 0.0032 0.0327 -0.0561 0.1933 -0.0254 -0.0109 -0.0344 0.0041 0.0450 -0.0002 -0.0436 0.0036 0.0043 -0.0617 -0.0114 -0.0229 -0.0147 0.0451 -0.0079 0.0233 -0.0203 0.0074 -0.0078 0.0065 0.0068 0.0048 -0.0100 -0.0151 0.0000 0.0098 -0.0196 0.0048 -0.0041 0.0054 0.0142 -0.0015 -0.0021 -0.0044 -0.0015 -0.0007 0.0065 -0.0020 0.0031 -0.0047 -0.0026 0.0012 -0.0005
2068e2 2068e2 Eosinophils H. sapiens 1 #66A61E 2068e2 -0.0918 0.0136 -0.0918 0.0136 0.2277 0.0469 -0.1109 -0.0544 0.0648 0.0014 0.0847 0.0888 -0.1436 0.2267 0.0506 -0.0818 -0.0221 0.0088 -0.0466 0.0831 0.1871 0.1166 -0.0778 -0.0070 -0.0664 -0.0514 -0.0074 -0.0160 0.1653 0.0816 0.0602 0.0714 -0.0544 0.1304 0.0102 -0.1805 0.0942 0.1623 -0.0951 -0.1449 0.0411 0.0619 -0.2104 -0.1390 0.0433 0.1479 -0.0181 -0.1624 -0.1038 -0.0661 -0.0476 -0.1306 -0.0092 -0.0142 0.1377 0.0742 -0.2418 0.1729 0.0736 0.0924 -0.0262 -0.0641 0.1124 0.1926 0.0656 -0.3281 -0.0392 0.2196 -0.0747 0.1031 0.0637 -0.0813 -0.0086 -0.0291 -0.0098 -0.0163 0.0399 -0.0512 0.0301 0.0305 -0.0077 -0.0687 -0.0159 -0.0801 0.0420 -0.0600 0.0533 -0.0566 -0.0717 0.0811 0.0424 -0.0869 0.0071 0.0353 0.0408 0.0274 0.0024 -0.0017 0.0018 0.0035
2072m2 2072m2 Monocytes H. sapiens 1 #7570B3 2072m2 -0.0414 -0.1047 -0.0414 -0.1047 -0.0052 -0.1535 0.0756 0.0170 0.0579 -0.0476 0.1043 -0.0269 0.0147 0.0294 -0.1235 0.0638 -0.0329 0.0726 0.0037 0.0843 -0.0365 0.0162 0.0100 -0.0602 0.0557 -0.0663 0.0490 0.0653 0.0124 0.0117 0.0309 0.0434 -0.0068 0.0325 0.0687 -0.0239 -0.0474 -0.0475 0.1501 0.0695 0.0852 0.0947 -0.1634 -0.0946 0.0344 0.0567 0.0255 -0.0631 0.0224 0.0687 0.0308 0.0825 0.0723 -0.0366 -0.0205 0.0234 -0.0648 0.0837 -0.0544 -0.0462 0.0025 0.0707 -0.0605 0.0094 -0.2587 0.1383 0.0021 0.1157 -0.2269 -0.2192 -0.2633 -0.0884 0.1594 0.0444 0.1412 -0.0875 -0.0308 0.1360 0.0933 -0.0562 -0.0667 -0.1100 -0.2801 0.1048 0.3484 0.2464 0.1464 -0.2040 0.0558 -0.0724 0.0524 -0.0011 -0.0153 -0.0015 -0.0331 -0.0392 0.0244 0.0188 0.0233 -0.0131
2072n2 2072n2 Neutrophils H. sapiens 1 #D95F02 2072n2 -0.1259 0.1220 -0.1259 0.1220 -0.1220 0.0333 0.0763 0.0300 0.0336 0.0443 0.1322 -0.0224 0.0280 -0.0049 -0.0841 0.0203 -0.0052 0.0507 0.0234 0.1602 -0.1016 0.1103 0.1018 -0.1362 0.0939 0.0276 0.0003 0.1355 -0.0403 0.1755 -0.0224 -0.0329 -0.1424 -0.0736 0.0899 -0.0536 0.2344 0.0491 -0.0550 -0.0756 0.0145 -0.0667 0.1687 -0.0045 -0.1249 0.1750 -0.0341 -0.1479 -0.0210 0.0327 0.0173 -0.0033 0.0509 0.0116 0.0337 -0.1337 0.0366 -0.0913 -0.1632 0.0549 0.0499 -0.1334 -0.1115 0.1178 -0.2108 -0.0112 0.3027 0.0969 0.2138 0.1623 -0.2209 0.1423 -0.2767 0.0378 -0.1181 -0.0342 -0.1361 0.0799 0.1593 0.0719 -0.0521 -0.0402 -0.0113 -0.0410 -0.0758 0.0148 -0.0131 0.0446 -0.0100 -0.0002 0.0048 -0.0223 -0.0031 0.0064 0.0046 0.0039 0.0032 -0.0102 -0.0039 0.0019
2072e2 2072e2 Eosinophils H. sapiens 1 #66A61E 2072e2 -0.0976 0.0396 -0.0976 0.0396 0.2171 0.0694 0.0591 0.0724 0.0156 -0.0219 0.0861 -0.0119 -0.0076 -0.0769 -0.0809 0.0630 -0.0542 0.0331 0.0253 0.0708 -0.0721 0.0584 0.0513 -0.1584 0.0110 -0.0309 0.0355 0.0741 0.0789 0.0835 -0.0288 0.0031 -0.0715 0.0381 0.0008 -0.0391 -0.0609 -0.1038 -0.0231 -0.1626 -0.0543 -0.0230 -0.1430 0.0260 0.0831 -0.1803 -0.0466 0.0552 -0.0394 0.0610 0.0389 -0.0660 -0.0782 0.0320 0.0563 -0.1258 0.0862 0.0067 -0.0241 -0.0282 -0.0612 -0.0750 -0.0739 -0.0538 -0.0926 0.1056 0.0214 -0.0954 -0.0732 0.1123 -0.0879 0.2371 0.0354 -0.1967 0.3473 0.2600 0.0866 -0.4664 -0.1553 -0.0701 -0.0699 -0.0545 0.0742 -0.0838 0.0672 -0.0075 0.0139 0.0589 0.0505 0.1114 0.0338 0.0482 -0.0333 0.0015 0.0289 0.0062 -0.0101 0.0008 0.0162 0.0065
2073m2 2073m2 Monocytes H. sapiens 1 #7570B3 2073m2 -0.0380 -0.1164 -0.0380 -0.1164 -0.0058 -0.1531 -0.0255 -0.0293 0.0210 -0.1136 -0.1060 -0.0405 0.0255 0.0784 -0.0246 -0.0294 0.0592 0.1692 -0.0981 -0.0109 0.0500 -0.0132 0.0172 -0.0600 0.0479 -0.0518 -0.0242 0.0408 -0.0116 -0.0739 -0.0659 -0.1298 -0.0250 -0.0237 0.1829 0.0777 0.0615 -0.0195 0.0193 -0.0641 -0.0589 -0.0588 -0.0345 -0.0689 0.0505 -0.0199 0.0947 0.0465 -0.0433 0.0311 0.0225 0.0240 -0.0327 -0.0580 0.0153 0.1282 0.0480 -0.0653 -0.0040 -0.0619 0.0249 -0.0014 0.1944 -0.0034 -0.0293 -0.0170 0.0461 0.0181 -0.0183 0.1034 0.0680 -0.0217 -0.0380 -0.0281 -0.0537 0.0400 0.0416 -0.0195 -0.0945 0.0866 0.0597 -0.0212 0.2376 -0.1780 -0.0008 0.2503 0.0743 0.1696 0.3194 -0.3947 0.1792 -0.3427 0.0256 0.1319 -0.0734 -0.0785 -0.0665 0.0731 -0.0451 -0.0097
2073n2 2073n2 Neutrophils H. sapiens 1 #D95F02 2073n2 -0.1247 0.1030 -0.1247 0.1030 -0.1292 0.0299 -0.0469 -0.0191 0.0195 -0.0879 -0.1339 -0.0066 -0.0363 0.0319 0.0709 0.0436 0.0201 0.1298 -0.0846 0.0261 -0.0623 -0.0531 0.0585 -0.1307 0.1723 -0.1359 -0.1088 -0.0608 -0.0713 -0.0995 0.0561 0.0706 0.0713 0.0131 -0.0278 -0.0235 -0.0001 0.0309 -0.0475 -0.0882 -0.0521 0.0989 0.0072 0.0538 0.0547 -0.1813 -0.1922 -0.0767 0.1355 -0.0747 -0.1833 0.0818 0.0047 -0.1569 -0.1013 0.2921 -0.1345 0.0242 -0.1164 0.1480 -0.0061 -0.1502 0.0151 0.0097 -0.0193 -0.0031 0.1593 -0.1216 0.0590 0.0866 0.0308 -0.1160 -0.0454 -0.2012 0.2692 0.0852 0.1053 0.2716 -0.1174 -0.0212 -0.0369 0.0271 0.0606 0.1722 -0.0861 0.1258 -0.1089 -0.1343 -0.0818 0.1104 -0.0184 -0.0168 0.0049 -0.0086 0.0146 0.0070 0.0094 -0.0041 0.0035 -0.0065
2073e2 2073e2 Eosinophils H. sapiens 1 #66A61E 2073e2 -0.0920 0.0159 -0.0920 0.0159 0.2199 0.0608 -0.0580 -0.0088 0.0360 -0.1028 -0.0562 0.0226 -0.0058 0.0317 0.0985 -0.0303 -0.0448 0.1505 -0.0222 -0.0790 0.0651 -0.0372 0.0434 -0.1165 0.0313 -0.0819 -0.0980 -0.0011 -0.0029 0.1343 -0.0383 0.0463 0.1099 -0.0402 0.0522 -0.1448 -0.1321 0.0219 0.0445 0.0718 -0.0854 -0.0236 0.0890 0.0398 0.0205 0.0675 0.1369 0.0743 0.1072 0.0113 0.0448 -0.0319 0.0981 0.0344 0.0903 -0.1070 -0.1487 -0.0244 0.0021 0.0435 0.0062 -0.0582 -0.0150 -0.0774 0.0383 -0.0551 0.0205 -0.0219 0.0167 -0.0032 0.0179 -0.0278 -0.0180 0.0055 -0.0654 -0.0781 -0.0365 0.0723 -0.0203 -0.0063 -0.0324 -0.0174 0.0902 -0.0666 -0.0266 0.1666 -0.0072 0.0139 0.2749 -0.1442 -0.1093 0.6576 0.0113 0.0659 -0.0311 0.0326 0.0542 -0.0371 0.0063 -0.0028
2068m3 2068m3 Monocytes H. sapiens 1 #7570B3 2068m3 -0.0422 -0.0995 -0.0422 -0.0995 -0.0097 -0.1570 0.0909 0.0220 -0.0335 0.0712 0.0829 -0.0194 -0.0163 0.0153 -0.1021 0.0541 0.0068 -0.0474 0.0609 0.0768 0.0146 0.0527 0.0100 0.0447 0.0208 -0.0550 0.0511 0.0273 -0.0273 -0.1391 0.0775 0.0551 0.1301 0.1361 -0.0697 0.0238 -0.2130 0.2169 -0.1016 0.2376 -0.0068 0.0550 0.0781 0.2067 0.1315 -0.0550 -0.0495 -0.0088 0.0509 -0.0593 -0.1898 0.0077 0.1560 -0.0468 0.0593 -0.2506 0.1152 -0.1103 -0.0100 -0.2601 0.0420 0.0982 0.0921 -0.0558 0.0844 -0.2084 0.1678 0.1868 0.2094 0.0433 0.0851 -0.1577 -0.1737 -0.1599 0.1072 -0.1254 0.0150 -0.1676 -0.0116 -0.0297 -0.0760 -0.0440 -0.0093 0.0890 0.0695 0.0303 0.0577 -0.0221 -0.0011 -0.0544 0.0583 -0.0200 0.0061 0.0137 0.0461 -0.0046 -0.0054 0.0021 0.0143 -0.0042
2068n3 2068n3 Neutrophils H. sapiens 1 #D95F02 2068n3 -0.1273 0.1136 -0.1273 0.1136 -0.1133 0.0238 -0.0158 -0.0272 -0.0171 0.1159 0.0533 -0.0240 0.0345 0.0583 -0.1495 0.0649 0.0340 0.0677 -0.0281 0.2036 -0.0167 0.1517 -0.1247 0.0496 0.0353 0.1454 -0.1124 -0.0290 -0.1309 -0.0275 0.0961 -0.0873 0.0949 -0.0263 0.0182 0.0784 0.0351 0.1838 -0.1267 0.0732 -0.1224 -0.1387 0.0690 0.2261 0.1513 -0.1233 0.0376 0.2838 -0.0996 0.1535 0.0536 -0.0442 0.0534 0.0068 0.0209 0.2149 -0.2342 -0.0164 0.0486 -0.1060 -0.1383 -0.1550 -0.1567 0.0043 0.0048 0.0690 -0.0695 -0.0546 -0.2522 0.1497 0.0133 -0.1595 0.0725 0.1288 -0.1154 0.0366 -0.1147 -0.1334 0.1543 0.0403 -0.0363 -0.0813 0.0010 -0.0203 0.0065 -0.0137 -0.0164 -0.0567 -0.0135 0.0115 -0.0150 0.0106 -0.0260 0.0028 0.0146 -0.0161 0.0149 0.0002 -0.0042 0.0089
2068e3 2068e3 Eosinophils H. sapiens 1 #66A61E 2068e3 -0.0983 0.0304 -0.0983 0.0304 0.2289 0.0695 0.0363 0.0281 -0.0196 0.0554 0.0691 -0.0130 -0.0068 -0.0051 -0.0675 0.0080 0.0574 -0.0377 0.0548 0.0483 0.0419 0.0805 -0.0825 0.0651 -0.0073 -0.0218 -0.0122 -0.0058 -0.0488 -0.1507 0.1278 -0.0227 0.0568 0.1090 -0.0514 0.0637 0.1179 0.1800 -0.2243 -0.0576 -0.0220 -0.0732 -0.0676 0.0417 0.0358 0.0493 -0.0695 -0.0595 -0.1430 -0.1356 -0.1235 -0.0468 -0.0638 -0.0497 0.0501 -0.0767 0.0991 -0.0914 0.0723 -0.1174 -0.1583 0.0793 -0.0648 -0.0425 0.0324 0.1179 -0.1553 -0.0554 -0.0596 0.0184 -0.0973 0.3225 -0.0268 0.0539 0.0192 -0.0155 0.0656 0.4560 -0.1436 -0.0419 0.0542 0.1043 -0.0008 0.0707 0.0665 0.0326 0.0191 0.1521 0.1993 -0.0076 -0.0501 0.0216 -0.0219 -0.2094 -0.0832 -0.0553 -0.0025 -0.0023 0.0039 0.0064
2072m3 2072m3 Monocytes H. sapiens 1 #7570B3 2072m3 -0.0456 -0.1013 -0.0456 -0.1013 -0.0172 -0.1496 0.0746 0.0301 0.0029 -0.0521 0.0512 -0.0635 -0.0271 -0.0198 -0.1669 0.0920 0.0050 0.0360 0.0309 0.0831 -0.0864 0.0266 0.0032 -0.0512 0.0441 -0.0730 0.0496 0.1071 0.0433 -0.0285 0.0043 -0.0330 0.0358 0.0528 0.0371 0.0520 -0.1315 0.0129 0.0641 0.0617 -0.0231 0.0643 -0.1230 -0.0359 0.0569 0.0679 -0.0099 -0.0907 0.0586 -0.0411 -0.0647 0.0247 0.1369 0.0416 0.0364 0.0952 -0.0972 0.0669 0.0178 -0.0538 0.0499 0.0353 0.0373 -0.0651 -0.1509 0.0890 -0.0345 0.0925 -0.1620 -0.1291 -0.1570 -0.0604 0.0796 -0.0552 0.0592 -0.2040 -0.0055 0.0457 0.0439 0.0401 0.2207 0.1736 0.2497 -0.2476 -0.3911 -0.2631 -0.1102 0.2403 -0.0531 0.1619 -0.1292 0.0335 0.0043 0.0529 0.0029 0.0264 -0.0032 -0.0364 -0.0158 0.0139
2072n3 2072n3 Neutrophils H. sapiens 1 #D95F02 2072n3 -0.1289 0.1251 -0.1289 0.1251 -0.1331 0.0361 0.0313 0.0342 0.0174 -0.0397 0.0220 -0.0253 -0.0810 -0.0339 -0.0783 0.1147 -0.1037 -0.0085 0.0414 0.1646 -0.1182 0.0301 0.0368 -0.0759 0.1218 -0.0645 0.0426 0.1548 0.0370 0.1113 -0.0030 0.0206 -0.0999 -0.0041 0.0655 -0.0577 0.1024 0.0870 -0.0631 -0.1064 -0.0971 0.0013 0.2236 -0.0161 -0.0443 0.0705 0.2069 0.1225 0.2005 -0.1943 -0.2061 0.0250 -0.0747 -0.1339 -0.0156 0.1977 -0.0557 -0.0092 -0.0003 0.0155 0.0074 0.1737 0.0888 -0.1155 0.2324 -0.1060 -0.1910 0.0263 0.1888 -0.3116 -0.0040 0.1427 0.1826 0.1611 -0.0290 0.0066 0.0598 -0.1789 -0.0588 -0.0325 0.0458 0.0080 -0.0629 -0.0043 0.0807 -0.0019 0.0382 -0.0011 0.0060 -0.0030 0.0114 -0.0191 0.0200 -0.0047 0.0150 0.0179 -0.0096 0.0090 -0.0043 -0.0068
2072e3 2072e3 Eosinophils H. sapiens 1 #66A61E 2072e3 -0.0944 0.0314 -0.0944 0.0314 0.2219 0.0674 0.0446 0.0659 0.0119 -0.0539 0.0525 -0.0055 -0.0422 -0.0444 -0.0826 0.0270 0.0068 -0.0841 0.0611 0.1123 -0.0994 0.0968 0.0104 -0.1438 0.0610 -0.0791 0.0247 0.1956 0.1618 0.0597 -0.0337 -0.0011 -0.0781 -0.0450 -0.0229 -0.0977 -0.2128 -0.1712 -0.0083 -0.2027 -0.1301 -0.0395 -0.1945 0.0558 0.1173 -0.3529 -0.0773 0.1464 -0.0748 0.1170 0.0511 0.0394 -0.1125 0.0837 -0.1088 -0.0522 0.1570 0.0348 -0.0194 0.0002 0.1124 0.0324 0.1117 0.0205 0.1099 -0.0314 0.0384 -0.0526 0.0789 -0.0251 0.1410 -0.1621 -0.0324 0.1474 -0.2510 -0.1658 -0.0690 0.2444 0.0729 0.0581 -0.0194 0.0158 -0.1171 0.0687 -0.0502 -0.0147 -0.0370 -0.0129 -0.0606 -0.0197 0.0189 -0.0604 0.0195 0.0174 0.0096 0.0097 -0.0155 -0.0159 -0.0214 0.0041
2159bp1 2159bp1 Biopsy H. sapiens 1 #E7298A 2159bp1 0.1303 0.0404 0.1303 0.0404 0.0096 -0.0337 -0.2011 -0.0046 0.0344 0.0326 0.1112 -0.1519 -0.0010 -0.0757 0.0263 0.0228 0.0099 -0.0483 -0.0514 -0.0019 0.0225 -0.0897 -0.0056 0.0121 0.0988 0.0485 -0.0354 0.0831 0.1342 0.0119 0.1920 -0.1015 -0.0849 0.1218 -0.1084 -0.0348 0.0456 -0.2809 -0.1106 0.2458 -0.3781 0.0008 0.0911 -0.0191 -0.0064 0.0535 -0.0022 -0.1320 -0.0928 0.0194 -0.0088 0.0468 -0.0474 -0.0542 -0.0414 0.0180 -0.0717 -0.1471 0.4179 0.0698 0.1922 0.0354 0.0148 -0.0673 -0.0688 -0.1483 0.2216 -0.0806 -0.1278 0.0105 -0.0219 0.0374 0.0141 0.1561 0.0978 0.0380 0.0403 0.0054 0.0017 -0.0728 -0.0072 -0.0610 -0.0076 0.0421 -0.0512 0.0218 0.0680 0.0119 -0.0130 0.0005 0.0052 0.0007 0.0008 -0.0060 0.0046 -0.0128 -0.0069 0.0000 -0.0015 -0.0095
2073m3 2073m3 Monocytes H. sapiens 1 #7570B3 2073m3 -0.0409 -0.1194 -0.0409 -0.1194 0.0077 -0.1531 0.0270 -0.0486 0.0423 -0.0619 -0.0327 -0.0351 0.0920 0.0419 0.0239 -0.0494 0.0545 0.1474 0.0024 -0.0502 -0.0121 -0.0363 0.0083 -0.0611 0.1238 -0.0576 -0.0130 -0.0052 -0.1513 -0.0313 0.0361 -0.0323 0.0720 0.0069 0.0587 0.0520 0.1042 0.0158 0.0305 0.0611 -0.0436 -0.0337 -0.0312 -0.0182 0.0286 0.0572 0.0623 0.1106 -0.2291 0.0006 0.0436 -0.0564 -0.2484 -0.0649 0.0772 0.0049 0.1628 -0.0050 -0.0271 -0.1339 -0.0028 0.1612 0.1400 0.1260 -0.0139 -0.0181 -0.0217 0.0842 0.0133 -0.0229 0.0197 0.0578 -0.0325 0.0409 0.0061 0.2207 0.0568 0.0071 0.0741 0.0853 0.0134 -0.0180 -0.1144 0.0284 -0.1441 -0.0069 -0.0720 -0.1039 -0.2282 0.2329 0.1400 0.2258 0.4242 0.1233 -0.2377 -0.0024 0.0051 0.0243 -0.0064 -0.0225
2073n3 2073n3 Neutrophils H. sapiens 1 #D95F02 2073n3 -0.1226 0.0905 -0.1226 0.0905 -0.1036 0.0335 -0.0183 -0.0363 0.0322 0.0104 -0.0155 -0.0086 0.1204 0.0426 0.0707 -0.1303 0.1524 0.1777 -0.0153 -0.1246 -0.0459 -0.0678 0.1042 -0.1459 0.1310 -0.1121 -0.0170 -0.0490 -0.0881 0.0505 -0.0074 0.0806 0.0531 0.0646 -0.1034 0.0580 -0.0502 0.0265 -0.2083 0.0388 0.1060 0.0416 -0.0516 0.0182 -0.0360 -0.0529 -0.3298 -0.1880 -0.1161 0.0963 0.0524 0.0322 0.0930 0.1014 -0.1112 -0.0239 0.0686 0.0101 0.1136 0.0683 0.0049 0.1243 -0.1290 0.1735 0.1114 0.0246 -0.0917 0.0990 -0.0385 -0.1850 0.0191 0.1056 0.0767 0.1558 -0.1826 -0.1830 -0.0627 -0.3053 -0.0676 -0.0204 0.0446 0.0347 0.1103 0.0194 -0.0579 0.2315 -0.0505 -0.0546 0.0816 0.0833 -0.0067 -0.0493 -0.0456 -0.0632 -0.0187 -0.0060 0.0133 0.0043 0.0046 0.0046
2073e3 2073e3 Eosinophils H. sapiens 1 #66A61E 2073e3 -0.0973 0.0174 -0.0973 0.0174 0.2228 0.0721 -0.0334 -0.0177 0.0134 -0.0404 -0.0544 -0.0189 0.0688 0.0478 0.0407 -0.0886 0.0896 0.0694 0.0181 -0.0944 -0.0354 -0.0304 0.0111 -0.0836 0.0903 -0.0918 -0.1221 0.0286 -0.1074 0.0207 0.0238 0.0138 0.1522 -0.0158 0.0440 -0.0424 -0.0244 -0.0152 0.0260 0.0404 -0.0812 -0.0218 0.0565 0.0375 0.0309 0.1190 0.1366 0.0654 0.0585 0.0102 0.0729 -0.0163 0.1167 0.0528 0.0803 -0.2371 -0.0067 -0.0543 0.0922 -0.0005 -0.0949 -0.0363 -0.1244 -0.0367 0.0664 0.0177 -0.1286 -0.0397 0.0168 -0.0954 -0.0820 0.1343 0.0083 -0.0192 0.1178 0.0464 -0.0293 0.1057 0.0429 0.0317 0.1202 0.0305 0.0274 0.0472 -0.0554 -0.0698 -0.0462 -0.2203 -0.4000 -0.2550 -0.0361 -0.3006 -0.1412 0.2839 0.1720 0.0731 -0.0376 -0.0081 0.0015 -0.0008
2162m1 2162m1 Monocytes H. sapiens 1 #7570B3 2162m1 -0.0284 -0.1179 -0.0284 -0.1179 -0.0041 -0.1603 0.0149 -0.0292 -0.0414 0.1456 0.0432 0.0388 -0.1434 0.1355 0.0381 -0.0147 0.0098 -0.0994 -0.0296 -0.0325 0.0928 -0.0637 0.1296 0.1210 0.1240 -0.0813 0.1884 0.0627 -0.0338 0.0237 -0.0535 0.0947 0.0045 -0.2176 -0.0862 -0.0882 0.0284 -0.0900 0.0892 -0.0362 -0.0726 0.1478 0.2875 0.2449 -0.0508 -0.0454 -0.2339 0.0008 -0.1535 -0.0466 -0.0074 -0.3100 -0.2547 0.2262 0.1639 0.0057 -0.2011 0.1384 -0.0041 -0.0086 -0.1346 0.1262 0.0293 -0.0396 -0.0819 0.0664 0.0208 -0.1519 0.0634 -0.0460 -0.0362 -0.0254 0.0618 -0.0227 0.0524 -0.0551 -0.0728 0.0374 0.0043 0.0016 0.0020 0.0333 0.0338 -0.0711 0.0113 0.0440 0.0371 0.0054 0.0148 -0.0667 0.0157 -0.0504 -0.0374 0.0016 0.0098 -0.0090 -0.0162 -0.0047 0.0063 0.0057
2162n1 2162n1 Neutrophils H. sapiens 1 #D95F02 2162n1 -0.1125 0.0869 -0.1125 0.0869 -0.0818 -0.0115 -0.0448 -0.0265 -0.0074 0.1673 0.0967 0.0369 0.1050 0.0655 -0.0750 -0.0607 0.1638 -0.0238 0.0399 -0.1213 0.0640 -0.1741 0.0588 0.3548 0.0129 -0.0039 0.2319 -0.0364 -0.0566 0.3481 -0.2343 0.1456 0.0717 -0.1790 0.0023 0.0638 -0.0850 -0.0028 -0.1189 -0.0082 -0.1293 -0.0246 -0.2737 -0.1731 0.1743 -0.0317 0.0958 0.0057 -0.0901 0.0289 -0.1136 0.0070 0.0305 -0.2025 0.1558 0.0616 -0.0225 -0.2382 -0.1141 0.0409 0.1050 -0.0732 -0.0078 -0.1077 -0.0093 0.0237 0.0457 -0.0291 0.0369 -0.0570 0.0040 0.0184 -0.0168 0.0032 0.0023 0.0031 0.0310 0.0231 -0.0118 -0.0250 0.0017 -0.0187 0.0187 0.0180 -0.0005 -0.0289 0.0000 -0.0317 -0.0220 0.0054 -0.0221 -0.0022 -0.0297 -0.0109 -0.0088 -0.0019 0.0046 -0.0035 -0.0023 -0.0049
2162e1 2162e1 Eosinophils H. sapiens 1 #66A61E 2162e1 -0.0902 0.0266 -0.0902 0.0266 0.2179 0.0541 0.0340 0.0503 -0.0498 0.1085 0.0453 -0.0050 0.0075 0.0117 -0.0703 -0.0093 0.1304 -0.1878 -0.0109 -0.0344 0.0013 -0.0969 0.0372 0.2427 0.0898 -0.0693 0.0503 0.0817 -0.1761 -0.1610 0.0323 -0.0015 0.0644 -0.2905 0.0196 0.0366 0.1387 -0.1789 0.2115 -0.1629 -0.1101 0.0474 0.0380 0.1629 0.0475 0.1164 0.0525 -0.1475 0.1551 0.0558 -0.0703 0.3086 0.1802 0.0551 -0.1999 0.1022 0.1019 0.1407 0.0681 -0.0622 -0.0654 -0.0528 0.0378 0.1928 0.0591 -0.1239 -0.0702 0.1455 -0.0933 0.1072 -0.0031 0.0307 -0.0310 0.0081 0.0021 0.0486 0.0319 -0.1050 -0.0259 0.0458 -0.0568 -0.0102 -0.0720 -0.0100 -0.0356 0.0236 -0.0240 0.0392 0.0501 0.0093 0.0010 0.0757 0.0375 -0.0419 -0.0065 0.0180 0.0169 -0.0070 0.0064 0.0013
2162bp1 2162bp1 Biopsy H. sapiens 1 #E7298A 2162bp1 0.1352 0.0833 0.1352 0.0833 0.0123 -0.0267 -0.0437 -0.0334 0.0387 0.0873 0.0722 -0.4254 -0.2411 -0.0319 -0.1498 0.0891 0.1209 -0.1957 -0.4305 -0.1985 -0.0859 0.0611 0.0925 -0.1240 -0.0918 -0.0941 0.0935 -0.2184 -0.2483 0.0367 -0.1419 -0.1781 0.0458 0.1023 0.0155 -0.2716 0.0222 0.0238 -0.0445 -0.0637 0.1128 -0.0185 -0.0448 -0.0682 0.0016 0.0152 0.0047 0.1400 -0.0077 -0.0483 -0.0130 0.0896 -0.0169 0.0732 -0.0140 -0.0464 -0.0445 -0.0472 -0.0404 -0.0304 -0.0027 0.0464 -0.0283 0.0090 0.0363 -0.0142 0.0283 0.0127 0.0144 0.0411 -0.0058 -0.0227 0.0593 0.0099 0.0079 -0.0360 -0.0106 0.0087 -0.0003 -0.0073 0.0152 -0.0181 -0.0171 0.0264 0.0021 -0.0112 -0.0080 0.0205 0.0014 0.0174 -0.0119 0.0059 0.0053 0.0089 -0.0102 0.0021 0.0002 0.0046 -0.0006 -0.0033
macrofagos Macrofagos Macrophages H. sapiens 1 #E6AB02 Macrofagos 0.0274 -0.1938 0.0274 -0.1938 -0.0536 0.1677 -0.0672 -0.0705 0.0548 0.0554 0.0555 0.0590 0.0301 0.0448 -0.0239 -0.2661 -0.2134 0.0089 -0.0727 0.0298 -0.0924 -0.0663 -0.0338 0.0185 0.0043 -0.0750 0.0114 0.0126 0.0422 0.0657 0.0181 -0.0161 0.0189 -0.0117 -0.0043 0.0032 0.0987 -0.1409 -0.0641 0.0429 0.0503 0.0325 -0.1196 0.0866 -0.0197 0.0291 -0.0494 0.1260 0.0907 -0.1276 -0.0145 -0.0295 0.0284 0.0200 -0.0025 0.0495 -0.0171 0.0575 -0.0260 -0.0569 0.1856 0.2008 -0.1065 -0.0765 0.2266 0.1307 -0.0167 0.0924 -0.0140 0.2414 -0.2476 -0.1413 -0.1413 0.0380 -0.0092 0.0747 -0.0580 -0.0143 -0.1090 -0.1470 0.0250 -0.0327 -0.0246 -0.0049 0.0819 0.0105 -0.1602 0.0205 0.0502 -0.0401 -0.3027 -0.0890 0.2165 0.0892 0.0401 -0.1358 -0.0661 -0.1316 -0.0169 0.1368
macrofagos+sbv Macrofagos+SbV Macrophages H. sapiens 1 #E6AB02 Mcrfgs+SbV 0.0228 -0.1888 0.0228 -0.1888 -0.0563 0.1925 -0.0213 -0.0821 0.0604 0.0791 0.0906 -0.0124 0.1504 0.1752 0.1155 0.1094 -0.0805 -0.0224 -0.0129 -0.0476 -0.0818 0.0729 -0.0045 0.0066 -0.0281 -0.0295 0.0176 0.0444 0.0198 -0.0130 -0.0092 0.0338 -0.0273 0.0246 0.0466 0.0059 0.0906 -0.1086 -0.0528 0.0478 0.0922 -0.0355 -0.0708 0.1009 0.0653 0.0005 -0.0180 0.0760 0.0658 -0.1385 0.0488 0.0521 -0.0165 0.0267 0.0142 0.0185 0.0204 -0.0296 -0.0036 -0.0098 -0.0263 -0.0568 -0.0015 -0.0220 -0.0529 -0.0079 0.0033 -0.0234 -0.0015 -0.0356 0.0741 0.0053 0.0201 -0.0395 -0.0116 -0.0085 -0.0390 -0.0195 -0.0296 0.1045 -0.0662 0.0863 0.0314 0.0859 -0.0739 0.0570 0.3197 0.0802 -0.0153 0.0195 -0.1656 -0.0745 0.0200 0.0436 -0.1227 0.2714 0.3228 -0.1416 -0.0494 -0.5171
macrofagos+10772 Macrofagos+10772 Macrophages H. sapiens 1 #E6AB02 Mcrf+10772 0.0263 -0.1828 0.0263 -0.1828 -0.0713 0.1785 -0.0299 0.0011 -0.0201 -0.0169 -0.0189 0.0248 -0.0719 -0.0996 -0.1212 -0.2046 -0.0545 0.0339 -0.0099 0.0572 0.0294 -0.0470 -0.0118 0.0116 0.0094 0.0057 0.0049 0.0384 -0.0378 0.0562 0.0479 0.0100 0.0418 0.0037 -0.0199 -0.0278 0.0712 -0.0982 -0.0493 0.0886 0.0947 -0.0030 -0.0741 0.0774 0.0170 0.0204 -0.0500 0.0871 0.0462 -0.1114 0.0427 0.0294 0.0245 0.0143 0.0055 0.0386 0.0258 -0.0057 -0.0336 0.0035 0.0403 0.0608 0.0573 -0.0142 0.0879 -0.0005 0.0298 0.0006 -0.0178 0.0538 -0.0923 -0.0280 -0.0165 0.0091 0.0184 0.0261 -0.0290 0.0474 0.0100 -0.0386 0.0782 -0.0603 0.0077 -0.1422 -0.0093 -0.0420 -0.1338 -0.0641 -0.0628 -0.0189 0.4305 0.1155 -0.3754 -0.1903 -0.1883 0.3832 -0.1121 0.2603 -0.0607 -0.0908
macrofagos+10772+sbv Macrofagos+10772+SbV Macrophages H. sapiens 1 #E6AB02 M+10772+SV 0.0205 -0.1862 0.0205 -0.1862 -0.0624 0.1964 -0.0429 -0.0700 0.0450 0.0223 0.0455 -0.0210 0.1084 0.1253 0.1071 0.1835 0.0049 0.0002 0.0106 -0.0590 -0.0486 0.0468 0.0113 0.0000 -0.0245 -0.0101 0.0167 0.0254 0.0233 -0.0122 -0.0528 -0.0054 -0.0029 0.0260 0.0175 0.0193 0.0341 -0.0635 -0.0320 0.0229 0.0083 0.0001 -0.0281 0.0314 0.0151 0.0092 -0.0023 0.0571 0.0278 -0.0708 0.0116 0.0286 0.0004 0.0038 0.0074 0.0142 0.0291 0.0055 -0.0208 0.0035 0.0016 0.0077 0.0306 -0.0109 0.0434 0.0215 0.0006 0.0045 -0.0122 0.0048 -0.0170 0.0197 0.0089 -0.0226 -0.0050 0.0009 -0.0432 0.0313 -0.0034 0.1024 0.0174 0.0124 0.0021 -0.0200 -0.1097 0.0111 0.1435 0.0142 -0.0581 0.0093 0.2570 0.0587 -0.0730 -0.0709 0.1943 -0.2029 0.4104 0.1549 0.3864 0.4864
macrofagos+2169 Macrofagos+2169 Macrophages H. sapiens 1 #E6AB02 Mcrfg+2169 0.0229 -0.1720 0.0229 -0.1720 -0.0837 0.1714 -0.0836 0.0242 -0.0721 -0.0811 -0.1143 0.0286 -0.2320 -0.1554 -0.1742 -0.0910 0.1444 0.0684 0.0723 0.0567 0.1567 -0.0646 0.0198 -0.0152 -0.0188 0.0859 0.0036 0.0838 -0.0844 0.1020 0.0821 0.0061 0.0534 0.0259 -0.0133 -0.0277 0.0832 -0.0751 -0.0317 0.0657 0.1050 0.0107 -0.0587 0.0383 0.0365 0.0273 -0.0197 0.0487 0.0270 -0.0369 0.0297 0.0500 -0.0312 0.0006 0.0047 -0.0108 0.0278 0.0142 -0.0080 0.0090 -0.0468 -0.0650 0.0233 0.0208 -0.0527 -0.0239 0.0028 -0.0113 0.0471 -0.0624 0.0672 0.0425 0.0580 -0.0321 0.0135 -0.0132 -0.0098 -0.0148 0.0130 0.1104 -0.0180 0.0486 -0.0121 0.0208 -0.0641 -0.0148 0.1058 -0.0279 -0.0269 0.0081 0.1745 0.0635 -0.0629 -0.0427 0.1511 -0.4658 -0.0068 -0.4677 -0.2261 -0.0960
macrofagos+2169+sbv Macrofagos+2169+SbV Macrophages H. sapiens 1 #E6AB02 Mc+2169+SV 0.0199 -0.1679 0.0199 -0.1679 -0.0763 0.2015 -0.0033 0.0205 -0.0248 -0.0453 -0.0379 -0.0078 -0.0255 0.0442 0.0847 0.3010 0.2085 0.0121 0.0623 -0.0657 0.0809 0.0364 0.0191 -0.0330 -0.0112 0.0337 0.0127 -0.0062 0.0294 0.0109 -0.0217 -0.0083 -0.0038 -0.0282 -0.0357 0.0037 -0.0806 0.0869 0.0576 -0.0614 -0.1140 0.0182 0.0323 -0.1039 -0.0788 0.0313 0.0112 -0.0318 -0.0542 0.1408 -0.0630 -0.0727 0.0033 -0.0512 -0.0515 -0.0064 -0.0210 0.0881 0.0076 -0.0421 0.1110 0.1450 -0.1052 -0.0002 0.1532 0.0970 -0.0237 0.0684 0.0056 0.1345 -0.1497 -0.0611 -0.0345 0.0093 -0.0060 0.0643 -0.0047 0.0104 -0.0087 0.0086 -0.0093 0.0582 -0.0209 0.0014 -0.0235 -0.0276 0.0029 -0.0123 0.0135 0.0154 0.0200 0.0637 0.0099 -0.0136 0.2512 -0.2109 -0.2158 0.3475 0.0798 -0.4662
macrofagos+12309 Macrofagos+12309 Macrophages H. sapiens 1 #E6AB02 Mcrf+12309 0.0263 -0.1805 0.0263 -0.1805 -0.0611 0.1837 0.0038 -0.0197 -0.0217 0.0602 0.0259 -0.0089 0.0323 -0.0975 -0.0987 -0.2823 -0.1908 -0.0515 -0.1201 0.0921 -0.1440 -0.0995 -0.0252 0.0158 0.0168 -0.0540 -0.0459 -0.1193 0.0291 -0.0889 -0.0496 -0.0528 0.0021 -0.0182 0.0114 0.0158 -0.1494 0.1797 0.0689 -0.0844 -0.1529 0.0020 0.0884 -0.1433 -0.0335 -0.0246 0.0611 -0.1087 -0.0923 0.1469 -0.0625 -0.0224 -0.0070 -0.0214 -0.0128 -0.0238 -0.0468 0.0080 -0.0105 -0.0007 -0.0316 -0.0190 -0.0248 0.0568 -0.0378 0.0012 0.0005 -0.0152 0.0210 -0.0530 0.0650 0.0214 0.0432 -0.0065 0.0015 0.0291 -0.0181 -0.0028 0.0161 0.1017 -0.0507 0.0980 -0.0052 0.0376 -0.0561 0.0301 0.1620 0.0281 -0.0013 -0.0003 0.0542 0.0075 -0.0305 -0.0166 -0.0652 0.0809 -0.2765 -0.2809 0.5156 -0.0562
macrofagos+12309+sbv Macrofagos+12309+SbV Macrophages H. sapiens 1 #E6AB02 M+12309+SV 0.0250 -0.1800 0.0250 -0.1800 -0.0597 0.2019 0.0318 -0.0300 0.0374 0.0644 0.0858 -0.0098 0.1539 0.1574 0.1006 0.1502 -0.0435 -0.0260 -0.0248 -0.0525 -0.0788 0.0352 0.0169 0.0059 -0.0005 0.0089 -0.0068 0.0146 0.0046 -0.0447 -0.0040 -0.0017 -0.0231 -0.0015 0.0186 -0.0215 0.0204 -0.0258 -0.0196 0.0398 0.0737 -0.0432 -0.0494 0.0452 0.0528 0.0201 -0.0147 0.0227 0.0278 -0.0551 0.0152 0.0459 -0.0317 0.0163 -0.0008 0.0064 0.0001 -0.0373 0.0035 0.0112 -0.0618 -0.1123 0.0351 0.0194 -0.1339 -0.0775 0.0041 -0.0375 0.0182 -0.0993 0.1229 0.0547 0.0431 -0.0212 0.0040 -0.0365 0.0092 -0.0237 0.0236 0.0688 -0.0539 0.0909 -0.0256 0.0512 -0.0509 0.0105 0.1826 -0.0327 0.0073 0.0261 -0.1407 0.0645 -0.0063 0.0026 -0.0098 -0.0130 -0.6115 0.1635 -0.3243 0.3281
macrofagos+12367+sbv Macrofagos+12367+SbV Macrophages H. sapiens 1 #E6AB02 M+12367+SV 0.0256 -0.1693 0.0256 -0.1693 -0.0668 0.2112 0.0976 0.0217 0.0074 0.0368 0.0735 -0.0347 0.1405 0.1143 0.1082 0.1784 -0.0114 -0.0470 -0.0212 -0.0630 -0.0459 0.0732 0.0148 0.0149 0.0028 -0.0187 0.0045 -0.0307 0.0322 -0.0649 -0.0412 0.0193 -0.0385 0.0000 0.0020 0.0034 -0.0133 0.0111 0.0100 -0.0111 0.0189 -0.0218 0.0477 0.0367 0.0225 -0.0268 0.0095 -0.0398 0.0042 -0.0460 0.0375 0.0182 0.0154 0.0341 0.0334 -0.0078 0.0182 -0.0836 0.0284 0.0419 -0.0866 -0.1095 0.1016 -0.0139 -0.1528 -0.1133 0.0202 -0.0410 -0.0426 -0.0847 0.1277 0.0878 0.0178 0.0501 -0.0057 -0.1157 0.1162 0.0221 0.0899 -0.2345 0.1174 -0.2299 0.0273 -0.1373 0.1982 -0.0599 -0.5782 -0.0512 0.0468 -0.0328 0.0975 -0.0282 0.0912 0.0143 -0.0179 -0.1027 -0.0131 -0.2108 0.1071 -0.1362
macrofagos+11126 Macrofagos+11126 Macrophages H. sapiens 1 #E6AB02 Mcrf+11126 0.0268 -0.1750 0.0268 -0.1750 -0.0626 0.1890 0.0538 0.0075 -0.0244 0.0554 0.0386 -0.0179 0.0430 -0.1023 -0.0724 -0.2508 -0.1709 -0.0667 -0.1206 0.0789 -0.1199 -0.0715 -0.0311 0.0233 0.0309 -0.0631 -0.0354 -0.1270 0.0355 -0.0941 -0.0702 -0.0313 -0.0076 -0.0154 -0.0043 0.0142 -0.1407 0.1683 0.0735 -0.1106 -0.1527 0.0090 0.1282 -0.1253 -0.0225 -0.0457 0.0628 -0.1428 -0.0806 0.1314 -0.0332 -0.0513 -0.0071 -0.0093 0.0137 -0.0368 -0.0232 -0.0206 0.0290 0.0059 -0.0470 -0.0178 -0.0063 0.0405 -0.0404 -0.0035 -0.0166 -0.0069 0.0043 -0.0516 0.0342 0.0264 0.0063 -0.0151 0.0116 -0.0233 0.0378 0.0054 0.0093 0.0062 -0.0002 -0.0233 -0.0150 0.0104 0.0086 -0.0124 -0.0250 -0.0093 0.0086 0.0267 -0.0019 0.0051 0.0115 0.0431 0.0631 -0.1156 0.3947 0.2668 -0.5232 0.0228
macrofagos+12251 Macrofagos+12251 Macrophages H. sapiens 1 #E6AB02 Mcrf+12251 0.0261 -0.1634 0.0261 -0.1634 -0.0899 0.1789 -0.0281 0.0707 -0.1118 -0.0777 -0.1197 0.0136 -0.2705 -0.1747 -0.1863 -0.1097 0.1466 0.0568 0.0586 0.0675 0.2072 -0.0439 0.0283 -0.0158 -0.0174 0.0809 0.0104 0.0710 -0.0606 0.1026 0.1105 0.0374 0.0231 -0.0004 -0.0078 -0.0437 0.0432 -0.0195 -0.0099 0.0425 0.0855 0.0127 0.0004 0.0553 0.0430 -0.0039 -0.0084 -0.0038 -0.0195 -0.0081 0.0367 0.0530 -0.0257 -0.0009 0.0055 -0.0339 0.0384 -0.0378 -0.0047 0.0288 -0.0786 -0.1399 0.0682 0.0167 -0.1512 -0.0449 -0.0107 -0.0529 -0.0020 -0.1030 0.1280 0.0515 0.0195 -0.0004 -0.0234 -0.0619 0.0363 -0.0212 0.0236 -0.0817 -0.0341 -0.0438 0.0211 0.0620 0.0610 0.0152 -0.0219 0.0574 0.0529 0.0146 -0.3538 -0.1014 0.2660 0.1086 0.0474 0.1762 0.0727 0.3656 0.2651 0.0695
macrofagos+12251+sbv Macrofagos+12251+SbV Macrophages H. sapiens 1 #E6AB02 M+12251+SV 0.0209 -0.1597 0.0209 -0.1597 -0.0856 0.2045 0.0180 0.0598 -0.0699 -0.0775 -0.0783 -0.0384 -0.0974 -0.0250 0.0374 0.2959 0.2732 0.0100 0.0943 -0.0505 0.1536 0.0606 0.0243 -0.0230 -0.0234 0.0477 0.0124 0.0040 -0.0058 -0.0022 -0.0028 0.0161 -0.0197 0.0008 -0.0312 0.0278 -0.0783 0.1001 0.0761 -0.0742 -0.1029 0.0293 0.0865 -0.1208 -0.0819 -0.0225 0.0429 -0.0641 -0.0599 0.1432 -0.0312 -0.0705 0.0170 -0.0568 0.0032 -0.0316 -0.0210 0.0715 0.0197 -0.0242 0.0826 0.0758 -0.0769 -0.0114 0.1116 0.0295 0.0149 0.0401 -0.0117 0.0634 -0.1112 -0.0765 -0.0347 0.0298 0.0138 0.0738 -0.0108 -0.0217 -0.0513 -0.0099 -0.0168 0.0075 0.0010 0.0264 0.0564 0.0188 -0.0087 0.0015 -0.0079 -0.0260 -0.0720 -0.0797 -0.0508 0.0266 -0.3377 0.3310 0.1046 -0.3335 -0.1632 0.3135
2168e1 2168e1 Eosinophils H. sapiens 1 #66A61E 2168e1 -0.0921 0.0247 -0.0921 0.0247 0.2214 0.0628 0.0016 0.0262 -0.0179 -0.0832 -0.0979 -0.0664 0.0133 -0.0560 0.0131 0.0121 -0.0288 -0.0615 -0.0111 0.0306 -0.0761 -0.0168 -0.0038 0.0478 -0.0673 0.1568 0.1174 -0.0786 0.0472 0.0534 -0.1366 0.0040 -0.0191 -0.0486 -0.0503 0.0156 -0.0720 0.0776 0.0166 0.2171 0.0796 -0.0218 0.1828 0.0737 -0.0373 0.0029 -0.0951 -0.0231 0.0285 -0.0077 0.0012 0.0813 -0.0453 -0.0844 -0.0702 0.1327 0.0982 -0.0189 -0.0342 0.0206 0.0010 0.0814 0.0309 -0.0070 -0.0530 0.0782 0.0098 0.0520 -0.0682 0.0693 -0.0023 0.0363 -0.0509 0.0908 -0.1285 -0.0216 0.0720 0.1591 -0.1519 -0.0401 -0.0376 -0.1771 0.2499 -0.2518 0.1809 0.0195 0.2384 -0.1448 -0.0326 0.3382 0.0838 -0.0394 0.0065 0.3061 0.1681 0.0882 -0.0444 -0.0668 -0.0283 0.0145
2168m2 2168m2 Monocytes H. sapiens 1 #7570B3 2168m2 -0.0405 -0.1172 -0.0405 -0.1172 -0.0096 -0.1532 -0.0183 -0.0502 0.0186 -0.1287 -0.1268 -0.0855 0.0204 0.0478 -0.0386 -0.0038 -0.0014 0.0766 -0.0777 0.0562 -0.0762 0.0481 -0.0065 0.0372 -0.0608 0.1395 0.1313 -0.0007 0.0330 -0.0202 -0.0908 -0.1449 -0.0501 -0.0302 0.1251 0.1738 0.0542 -0.0139 -0.0013 -0.0323 -0.0352 -0.0543 -0.0909 -0.0099 0.0287 0.0562 -0.0579 -0.0639 -0.0519 0.0721 0.0614 -0.0176 0.0343 0.0568 -0.0146 -0.0010 0.0316 0.0256 0.0877 0.1068 -0.0737 0.0314 -0.1469 -0.0428 0.1470 -0.1094 -0.0781 -0.0859 0.1407 -0.0903 -0.0223 -0.0194 0.0052 -0.0681 0.1267 -0.0531 -0.0731 0.0664 0.0436 -0.0311 -0.1874 -0.1489 0.1029 -0.0007 -0.0172 -0.0414 -0.0109 -0.0441 -0.0320 -0.1070 0.0358 0.0702 0.2806 -0.3692 0.3795 0.2869 -0.0171 -0.1078 -0.0824 0.0244
2168n2 2168n2 Neutrophils H. sapiens 1 #D95F02 2168n2 -0.1272 0.1169 -0.1272 0.1169 -0.1256 0.0309 -0.0353 -0.0217 0.0171 -0.1066 -0.1346 -0.0272 -0.0790 0.0379 0.0791 0.0650 -0.1040 -0.0046 -0.0980 0.1408 -0.1361 -0.0170 0.0781 0.0229 0.0566 0.1547 0.1065 -0.1541 -0.0635 -0.0851 0.0783 0.1668 -0.0121 -0.0387 -0.1490 0.0717 0.2148 0.0301 0.0829 -0.0268 0.0045 0.0350 -0.1026 0.0399 0.0552 0.0119 -0.0480 -0.0461 -0.0161 0.2067 0.1254 0.0554 0.0898 0.0250 0.0079 -0.2794 -0.1568 -0.0213 -0.0756 0.0729 0.2194 0.1296 0.3370 -0.3001 0.0694 -0.0288 -0.1503 -0.0278 -0.1588 0.0928 0.1007 0.1842 -0.0461 -0.0716 0.0372 -0.0556 -0.0774 0.0171 0.1108 0.0542 0.0086 0.0368 -0.0945 0.0046 0.0182 0.0016 0.0176 0.0576 0.0211 0.0312 -0.0011 -0.0076 -0.0151 0.0705 -0.0222 -0.0116 -0.0057 -0.0051 -0.0066 -0.0044
2168e2 2168e2 Eosinophils H. sapiens 1 #66A61E 2168e2 -0.0981 0.0237 -0.0981 0.0237 0.2236 0.0686 -0.0271 -0.0059 0.0185 -0.1282 -0.1141 -0.0623 0.0000 0.0437 0.0320 -0.0494 0.0502 -0.1188 0.0045 0.0829 -0.1487 0.0334 -0.0449 -0.0333 -0.0018 0.1515 0.0789 -0.0676 0.0880 0.0906 -0.1176 0.0066 -0.0753 -0.0444 -0.0542 -0.0204 -0.0307 0.0538 0.0929 0.2053 0.0946 -0.0025 0.0768 0.0307 -0.0628 -0.0048 -0.0596 -0.0179 -0.0433 0.0185 0.0190 0.0502 -0.0228 -0.0690 -0.0234 0.1389 0.0333 -0.0128 -0.0106 -0.0123 0.0136 0.0039 0.0489 0.0461 0.0067 -0.0153 0.0358 0.0389 0.0254 -0.0188 -0.0033 -0.0023 0.0128 -0.0509 0.1021 0.0110 -0.0711 -0.0746 0.0773 -0.0029 0.0557 -0.0017 0.1620 0.0138 -0.0198 -0.1331 0.0437 -0.1839 -0.1351 -0.2801 -0.2142 -0.0201 0.0094 -0.3534 -0.4076 -0.2767 0.0467 0.1036 0.0603 -0.0371
2168m3 2168m3 Monocytes H. sapiens 1 #7570B3 2168m3 -0.0380 -0.1127 -0.0380 -0.1127 -0.0204 -0.1522 -0.0420 -0.0233 -0.0129 -0.1307 -0.1734 -0.0625 -0.0265 0.0388 -0.0543 0.0141 -0.0203 0.0608 -0.0774 0.0333 -0.0208 0.0284 0.0236 0.1003 -0.0870 0.1207 0.1519 0.0452 0.0913 -0.0742 -0.1024 -0.1676 -0.0691 -0.0591 0.1531 0.1669 -0.0135 -0.0431 -0.1497 -0.0550 -0.0589 -0.0984 -0.0522 0.0367 0.0202 0.0476 -0.0427 -0.1009 0.0627 -0.0699 0.0455 -0.0501 0.0475 0.1280 -0.0177 -0.0459 0.0171 0.0035 0.1136 0.1018 -0.0875 -0.1053 -0.2307 -0.0529 0.1117 -0.1322 -0.0912 -0.0546 0.1553 -0.0387 0.0082 -0.0713 -0.0441 -0.0417 0.0470 -0.0326 -0.0204 0.0216 -0.0273 -0.0260 -0.0751 0.0305 -0.2004 -0.0025 0.0443 0.0559 -0.0695 0.0410 -0.0254 0.2161 -0.0565 0.0454 -0.2484 0.3046 -0.3284 -0.2147 0.0067 0.1035 0.0829 -0.0263
2168n3 2168n3 Neutrophils H. sapiens 1 #D95F02 2168n3 -0.1131 0.1104 -0.1131 0.1104 -0.1234 0.0100 -0.0680 -0.0098 -0.0114 -0.1227 -0.2112 0.0083 -0.0753 0.0103 0.0560 0.1387 -0.1578 -0.0231 -0.1198 0.1048 -0.1155 -0.0459 0.0010 0.1040 -0.0019 0.0649 0.1628 -0.0923 0.0269 -0.1791 0.1627 0.2111 0.0842 0.0030 -0.1175 -0.0582 0.1075 -0.0956 0.0673 -0.0438 -0.0916 0.0468 -0.1724 -0.0423 0.0492 -0.0234 0.1693 0.0454 0.0359 -0.0830 0.0044 -0.1205 -0.0155 0.0363 0.0570 -0.2344 0.0505 -0.0572 0.0304 -0.0759 -0.0922 -0.0417 -0.1915 0.2844 -0.1302 0.0881 0.1517 0.0565 0.1034 -0.0674 -0.0551 -0.1785 0.0924 0.1394 -0.2055 0.0703 0.1843 -0.0319 -0.1880 -0.0363 0.0739 0.0045 0.1344 -0.0342 -0.0133 -0.0531 0.0203 -0.0486 0.0038 -0.0629 0.0056 0.0112 -0.0014 -0.0630 0.0013 -0.0024 0.0014 0.0161 0.0088 0.0041
2168e3 2168e3 Eosinophils H. sapiens 1 #66A61E 2168e3 -0.0958 0.0205 -0.0958 0.0205 0.2182 0.0568 -0.0840 -0.0243 0.0243 -0.1320 -0.1292 -0.0183 -0.0275 0.0424 0.0750 -0.0118 0.0008 -0.0581 -0.0007 0.0356 -0.0999 -0.0117 -0.0337 0.0295 -0.0197 0.1415 0.0971 -0.1200 0.1072 0.1158 -0.1192 0.0245 -0.0343 -0.0030 -0.0676 -0.0059 -0.0112 0.0523 0.0313 0.2422 0.0644 -0.0046 0.0635 0.0224 -0.0926 0.0071 0.0001 0.0057 -0.0681 -0.0868 -0.0509 -0.0191 -0.0349 -0.0528 -0.0035 0.1331 0.0202 -0.0423 -0.0205 -0.1070 -0.0237 -0.0454 -0.0135 0.1342 -0.0766 0.0609 0.0402 0.0055 -0.0358 -0.0378 -0.0279 -0.0497 0.0213 -0.0244 0.0385 0.0477 -0.0160 -0.1130 0.0937 0.0271 0.0813 0.2113 -0.3614 0.2678 -0.1356 0.1133 -0.2499 0.3141 0.1467 -0.0405 0.1220 -0.0670 -0.0274 0.1085 0.2101 0.1606 -0.0030 -0.0432 -0.0507 0.0209
2008-1 2008-1 Biopsy H. sapiens 1 #E7298A 2008-1 0.1120 0.0218 0.1120 0.0218 -0.0110 -0.0242 -0.1623 0.1705 0.0576 0.0562 -0.0686 -0.1607 0.0700 -0.0734 0.0760 -0.0572 -0.0558 0.0742 0.2071 -0.0009 -0.0004 0.0785 -0.0072 0.0269 -0.0446 0.0158 -0.0147 -0.0513 -0.1466 -0.0021 0.0008 0.0498 -0.1418 -0.1209 0.1123 -0.0886 -0.0636 0.1653 0.0371 -0.1400 0.1410 0.1620 -0.1420 0.2887 -0.0750 -0.0847 0.1804 -0.1216 0.0324 -0.0091 0.0004 -0.0704 -0.0942 0.0163 0.0160 0.0513 0.0170 -0.1153 0.1461 0.0926 0.1028 0.0546 -0.0778 -0.0034 -0.0387 0.1211 -0.0970 0.0544 0.0673 0.1743 0.0564 -0.0254 -0.0131 0.1153 0.1225 -0.1485 0.2795 -0.0191 0.2151 -0.2027 0.0748 -0.0687 -0.0362 -0.0141 -0.1426 0.1331 0.1519 0.0849 -0.0992 -0.0462 0.0326 0.0184 -0.0076 -0.0195 -0.0046 -0.0072 -0.0139 -0.0161 -0.0003 0.0130
2008-2 2008-2 Biopsy H. sapiens 1 #E7298A 2008-2 0.1388 0.0606 0.1388 0.0606 0.0160 -0.0238 -0.1304 -0.1356 0.0216 0.0693 0.0136 -0.3167 0.0720 -0.0473 0.1078 -0.0240 -0.0712 0.0408 0.0213 0.0654 0.0816 -0.0294 0.0495 0.0048 -0.0501 0.0174 -0.0459 0.2939 -0.0144 -0.0256 -0.0808 -0.0112 0.0850 -0.0259 -0.1961 0.0603 0.0126 0.0618 -0.0103 -0.0373 0.0397 0.1182 -0.0682 0.0671 -0.1694 -0.1008 0.1487 -0.0815 -0.1245 -0.0685 0.1128 -0.0590 0.0991 -0.2211 -0.0679 -0.0759 0.0338 0.0104 -0.0545 0.0720 -0.2179 -0.1393 0.2375 -0.0042 0.0067 0.0628 -0.0855 0.0018 0.0618 -0.0201 -0.0990 -0.1628 -0.0834 0.2278 0.1588 -0.0128 -0.1826 -0.0480 -0.1126 0.1623 -0.0816 0.1861 0.0472 -0.0577 0.1276 -0.0581 -0.1055 -0.0631 0.0540 0.0503 -0.0186 0.0058 0.0101 -0.0019 0.0224 0.0007 -0.0081 0.0075 -0.0047 -0.0179
2008-3 2008-3 Biopsy H. sapiens 1 #E7298A 2008-3 0.1519 0.0836 0.1519 0.0836 0.0277 -0.0063 0.0001 -0.3180 0.0207 -0.0316 0.0114 0.0070 -0.0169 -0.0261 -0.0393 0.0511 -0.0017 0.0593 0.0642 0.0770 -0.0166 -0.1423 0.0193 -0.0350 -0.0518 0.0216 -0.0279 0.1847 -0.0419 -0.1230 -0.1188 -0.0221 0.0471 -0.1350 -0.1460 -0.0340 -0.0377 0.1195 -0.0582 -0.0482 0.1140 0.0722 -0.0824 0.1317 -0.1117 -0.0878 0.2532 -0.1624 -0.0655 -0.0726 0.1306 0.0094 -0.0641 0.0472 -0.0287 0.0827 -0.0660 0.0523 -0.0555 -0.1592 0.1513 0.0611 -0.2365 -0.0770 0.0886 -0.1564 0.2625 -0.0183 -0.1687 -0.1196 0.0807 0.1960 0.1013 -0.2913 -0.2013 0.0915 -0.0706 0.0567 -0.0329 -0.0620 0.0245 -0.0998 -0.0222 0.0142 -0.0326 -0.0358 -0.0117 -0.0313 0.0282 -0.0056 -0.0005 -0.0362 0.0107 0.0181 0.0017 0.0043 -0.0089 0.0121 -0.0070 -0.0011
1029-1 1029-1 Biopsy H. sapiens 1 #E7298A 1029-1 0.1231 0.0247 0.1231 0.0247 0.0058 -0.0207 -0.0942 -0.0405 0.1782 -0.0057 -0.1123 0.1099 0.1450 -0.1493 -0.0268 -0.0240 -0.0289 -0.0230 0.0676 0.0340 0.0591 0.1551 0.0130 0.0100 -0.0866 -0.0649 0.0825 0.0346 -0.0746 -0.0750 -0.0903 0.0552 -0.0365 -0.0184 -0.0168 -0.0370 0.0025 0.0192 -0.0203 -0.0057 -0.1358 0.0608 -0.0635 -0.0094 -0.2341 0.1091 -0.2131 0.2474 -0.0604 0.0282 -0.1024 0.1357 0.1004 0.0165 0.0883 -0.0269 0.0106 0.0461 0.0606 0.0515 -0.0814 -0.0017 0.0182 -0.0416 0.0416 0.0133 0.0747 -0.0628 0.0327 0.0065 -0.0861 0.0464 0.0615 -0.0911 -0.0199 -0.0569 0.2594 -0.0337 0.1500 0.1807 0.0497 -0.0597 -0.0797 0.0489 -0.1271 -0.2100 0.0088 -0.3335 0.3821 0.0256 -0.0175 -0.0820 0.0230 0.0848 -0.0285 0.0388 0.0150 -0.0042 0.0097 0.0022
1029-2 1029-2 Biopsy H. sapiens 1 #E7298A 1029-2 0.1329 0.0430 0.1329 0.0430 0.0255 -0.0118 -0.1123 -0.2496 0.1383 -0.0023 -0.0633 0.0876 0.1422 -0.1327 -0.0290 0.0282 0.0007 -0.0565 0.0969 0.1198 0.1018 0.0346 0.0563 -0.0400 -0.0791 -0.1346 0.1205 -0.0468 -0.0279 0.0256 -0.0055 0.0229 0.0228 0.0368 -0.0049 0.0667 0.0183 0.0336 0.0795 -0.0484 -0.0322 -0.0146 -0.0192 -0.0201 -0.1272 0.0640 -0.1095 0.1195 0.0907 0.1361 -0.1532 -0.0085 -0.0170 0.0821 -0.0069 0.0018 0.0173 -0.0511 0.0376 0.0225 -0.0817 -0.0425 0.0618 -0.0240 -0.0337 -0.0110 0.0231 0.0233 -0.0269 -0.0076 -0.0052 -0.0387 0.0280 0.0056 -0.0195 -0.0172 -0.0639 0.0041 -0.1102 0.2259 0.1947 -0.3299 0.1035 0.1488 0.1836 0.1643 -0.0412 0.3891 -0.3302 0.0085 -0.0675 0.0898 -0.0400 -0.0453 -0.0128 -0.0303 -0.0606 0.0226 -0.0223 -0.0088
1029-3 1029-3 Biopsy H. sapiens 1 #E7298A 1029-3 0.1388 0.0641 0.1388 0.0641 0.0340 -0.0002 0.0379 -0.1903 0.2389 0.0163 -0.0922 0.1052 0.1339 -0.1313 -0.0477 0.0814 0.0368 -0.0601 0.0403 0.1162 0.0769 -0.0353 0.0401 -0.0341 -0.0160 -0.0376 0.0559 -0.0580 -0.0462 0.0361 -0.0018 -0.0148 0.0494 0.1103 0.0333 0.0165 0.0085 0.0384 0.0563 -0.0259 -0.0690 0.0198 -0.0294 0.0129 -0.0581 0.0713 -0.0975 0.0779 0.1072 0.1018 -0.0951 0.1048 -0.1626 0.0703 0.0670 -0.0139 -0.0752 -0.0547 0.0400 -0.0431 0.0792 -0.0967 0.0143 0.0711 -0.1419 0.0158 -0.1641 0.1325 0.0607 -0.0264 0.1543 -0.0253 -0.0693 0.0334 0.0018 0.1002 -0.2686 0.0458 -0.0986 -0.4712 -0.2173 0.2815 -0.0514 -0.1890 -0.0831 0.0010 0.0006 -0.0759 0.0065 -0.0481 0.0572 -0.0450 -0.0082 -0.0075 0.0025 0.0049 0.0372 0.0007 -0.0078 0.0019
1036-1 1036-1 Biopsy H. sapiens 1 #E7298A 1036-1 0.1249 0.0543 0.1249 0.0543 -0.0013 -0.0321 -0.1305 0.0863 -0.2131 -0.0645 0.0402 -0.0565 0.0956 0.0057 0.1091 -0.0639 -0.0437 0.0327 0.0235 0.0184 0.0469 0.0361 0.0832 0.1466 0.2859 0.1514 -0.0640 -0.0126 0.1075 0.0754 -0.0416 -0.1190 0.0578 0.0531 0.0007 -0.0609 0.0298 0.1104 0.1219 -0.1662 0.1089 0.0760 -0.0825 -0.0316 0.0233 0.1276 -0.1498 0.1994 0.1056 -0.0081 -0.0874 -0.0612 -0.0091 0.1095 -0.0871 0.0169 0.0108 0.0116 0.0974 -0.2559 0.2508 -0.0492 -0.1849 -0.0165 -0.0322 0.0103 0.1016 0.0295 -0.0096 -0.0714 0.1772 0.0929 0.0032 0.0532 0.0952 -0.0139 0.0608 0.0421 0.0701 0.2490 -0.1079 0.2207 0.1201 -0.0789 0.2396 -0.0161 -0.1199 -0.0203 -0.0105 0.0289 0.0138 0.0071 0.0140 -0.0024 0.0006 0.0280 0.0498 0.0202 0.0094 0.0173
1036-2 1036-2 Biopsy H. sapiens 1 #E7298A 1036-2 0.1376 0.0767 0.1376 0.0767 0.0048 0.0057 0.0959 0.0254 -0.2327 -0.0185 0.0351 -0.2082 0.0980 0.0185 0.1560 -0.0212 -0.0266 0.0343 -0.0043 0.1759 0.1465 -0.0856 0.0747 0.1350 0.2563 0.0613 0.0141 0.0451 0.1539 -0.0136 -0.0237 -0.1111 0.1679 0.1482 -0.0548 -0.1106 -0.0222 -0.0682 0.0232 0.0077 0.0383 -0.1517 -0.0558 -0.0411 -0.0848 0.0449 -0.0296 0.1298 -0.0717 0.0607 -0.1382 -0.1205 0.1987 0.0237 -0.1057 0.0401 0.0841 0.0518 -0.1503 0.1852 -0.1820 0.0781 0.0755 -0.0400 -0.0616 -0.0412 -0.0923 -0.0237 0.0307 0.0844 -0.1032 0.0249 0.0705 -0.2206 -0.2196 0.0268 0.0909 -0.0263 0.0613 -0.2830 0.0132 -0.0792 -0.0792 0.0212 -0.1445 0.0614 0.1189 0.0361 -0.0675 -0.0499 -0.0087 -0.0015 -0.0005 0.0061 -0.0255 -0.0162 0.0087 -0.0311 -0.0067 -0.0033
1036-3 1036-3 Biopsy H. sapiens 1 #E7298A 1036-3 0.1380 0.0933 0.1380 0.0933 0.0176 0.0273 0.2652 -0.0207 -0.0207 -0.0294 -0.0509 0.1998 0.1039 -0.0292 -0.0264 0.0641 0.0673 -0.0783 -0.0859 0.1776 0.1351 -0.1378 0.0671 0.0599 0.1494 0.0751 -0.0067 -0.0783 0.0541 -0.0083 -0.1556 -0.0042 0.1649 0.2604 0.1278 -0.0704 -0.0125 -0.0715 0.0384 -0.1422 0.1413 -0.1573 0.0692 0.1154 0.0217 -0.1305 0.0572 -0.1941 0.0704 -0.0879 0.2165 0.1372 -0.0515 -0.0665 0.2490 0.0267 -0.0667 -0.1168 0.1033 0.0710 0.0386 0.2289 -0.0551 0.0867 -0.0210 -0.0156 -0.0557 -0.0748 0.0315 0.1140 -0.0480 -0.0847 -0.0044 0.1465 0.1378 -0.0650 -0.0324 -0.0271 -0.0109 0.2015 0.0726 -0.0503 0.0006 0.1163 -0.0300 -0.0922 0.0043 -0.0344 0.0900 0.0200 -0.0021 0.0000 0.0204 0.0195 0.0071 0.0029 -0.0180 0.0044 0.0332 -0.0018
1037-1 1037-1 Biopsy H. sapiens 1 #E7298A 1037-1 0.1273 0.0702 0.1273 0.0702 0.0021 -0.0067 0.1337 0.1629 -0.0407 -0.0566 -0.0771 0.0685 0.0983 -0.0749 0.0436 -0.0486 0.0327 -0.0905 -0.2350 0.0480 0.1302 0.0642 -0.0553 -0.0419 -0.0247 0.0131 -0.0718 0.0370 0.0311 -0.0782 -0.1675 0.2460 -0.0342 -0.0778 0.1659 0.1121 0.0601 -0.0486 -0.1120 -0.0120 -0.0213 0.0605 0.0758 -0.0617 -0.0718 -0.0063 -0.0609 0.1069 -0.1854 -0.1329 0.0891 0.1069 0.1622 -0.0974 0.1454 -0.0768 -0.0185 0.2595 -0.0892 -0.1612 -0.0008 -0.1231 0.0104 -0.0756 0.1832 -0.0098 0.2390 -0.0143 -0.1218 -0.0790 0.0308 0.0238 0.0318 0.2002 0.0811 -0.0389 0.1038 0.0065 0.0509 -0.2150 -0.0481 0.0727 0.0189 -0.0408 -0.0420 0.1509 0.0823 0.1558 -0.2057 0.0097 -0.0161 0.0288 0.0048 -0.0387 0.0309 -0.0480 -0.0281 0.0006 -0.0127 -0.0073
1037-2 1037-2 Biopsy H. sapiens 1 #E7298A 1037-2 0.1414 0.0912 0.1414 0.0912 0.0125 0.0071 0.1034 -0.0051 -0.1552 0.0295 0.0540 -0.3636 0.0437 -0.0396 0.1925 -0.0572 0.0291 -0.0417 -0.0856 0.1708 0.1674 -0.0590 -0.1799 -0.1739 -0.1572 -0.1031 -0.0571 0.0290 0.0526 0.0568 0.0895 0.3656 -0.0297 -0.1456 0.1545 0.2711 0.0238 0.0121 0.0063 0.1317 0.0151 -0.0563 0.0238 -0.0428 0.2257 0.0290 0.0074 -0.0347 0.0864 0.0502 -0.1400 0.0424 -0.1899 0.1953 0.0518 0.0297 0.0201 -0.0144 0.0100 0.0461 0.1220 0.0063 -0.0649 0.0817 0.0028 0.0295 -0.0631 -0.0130 0.0793 0.0613 -0.0449 0.0136 0.0915 -0.1296 -0.0284 -0.0279 -0.0554 -0.0001 -0.0183 0.1267 0.0297 0.0089 -0.0308 0.0090 0.0295 -0.0758 -0.0534 -0.0770 0.1005 0.0028 0.0225 -0.0139 -0.0004 0.0196 0.0054 0.0030 -0.0074 0.0015 0.0118 0.0134
1031-1 1031-1 Biopsy H. sapiens 1 #E7298A 1031-1 0.1336 0.0678 0.1336 0.0678 -0.0022 -0.0104 0.0048 0.0818 -0.1219 -0.1205 0.0168 0.1744 0.1128 -0.0871 -0.0104 0.0075 -0.0140 -0.0267 -0.1090 -0.1288 -0.0060 0.1035 0.0290 0.0273 0.1017 0.1606 -0.1106 0.0848 -0.1124 -0.1691 -0.0229 -0.0261 -0.2364 -0.1959 -0.0043 -0.2406 -0.0411 0.1285 -0.1249 0.0748 -0.0135 0.1481 0.0112 -0.0090 0.1655 -0.0309 -0.0228 0.0488 -0.1369 -0.1342 -0.0537 0.1025 0.0479 -0.0323 0.1336 -0.0489 0.0197 -0.0282 0.1519 0.1641 0.1969 -0.0494 0.0892 0.1122 -0.1042 0.0636 -0.2593 -0.0445 0.0448 -0.1076 -0.1972 -0.1261 -0.0352 -0.2450 -0.1436 0.1022 -0.1639 -0.0245 -0.1089 0.0531 -0.0113 -0.0528 0.0028 -0.0057 0.0770 0.0120 -0.0241 0.0830 -0.0523 -0.0006 0.0093 0.0164 0.0166 -0.0294 0.0156 -0.0105 -0.0004 -0.0193 0.0050 -0.0101
1031-3 1031-3 Biopsy H. sapiens 1 #E7298A 1031-3 0.1368 0.0601 0.1368 0.0601 0.0233 -0.0028 0.0008 -0.1942 0.1407 -0.0432 -0.0404 0.2655 0.0866 -0.0477 -0.0768 0.0474 0.0361 -0.0708 -0.1493 -0.0621 0.0206 -0.0699 0.0619 -0.0445 0.0105 0.1650 -0.1421 0.1383 -0.0151 0.0547 -0.0934 -0.0375 -0.0750 0.0609 -0.0802 -0.0116 0.1069 0.0596 -0.0004 0.1104 0.0080 0.1823 0.0638 -0.1386 0.4369 0.0062 0.1000 -0.1073 0.0317 0.0342 -0.1041 -0.2098 -0.0258 0.2450 -0.2663 0.0163 0.1154 -0.0252 -0.1405 0.0009 -0.1608 0.0080 0.0482 -0.0626 0.0782 0.0450 0.0219 -0.0033 0.0298 0.1566 -0.0584 0.0177 0.0629 0.1326 0.0812 -0.1152 0.1585 -0.0142 0.1175 -0.0300 0.0202 0.0423 -0.0079 0.0057 -0.0231 -0.0011 0.0228 -0.0413 0.0203 -0.0029 -0.0191 0.0060 0.0030 0.0101 -0.0270 0.0282 0.0144 -0.0132 0.0025 0.0042
2002-1 2002-1 Biopsy H. sapiens 1 #E7298A 2002-1 0.1218 0.0478 0.1218 0.0478 -0.0087 -0.0011 0.0224 0.2010 -0.0974 -0.0413 -0.0656 0.1014 0.1217 0.0107 0.0470 -0.0414 -0.0094 -0.0021 0.1053 0.0528 0.0240 0.1566 0.0094 -0.0371 -0.0789 -0.1438 0.1449 -0.2342 -0.0945 0.1481 0.1480 -0.0343 -0.1142 0.0142 0.1264 -0.0007 -0.0209 -0.0452 0.0788 0.0165 0.0807 0.1232 -0.0227 0.0574 0.0455 -0.0853 0.1728 -0.0149 -0.1862 -0.0501 -0.1169 0.0515 0.0867 0.1625 -0.1943 0.0125 -0.0875 -0.1506 -0.0790 0.1044 -0.2210 0.2339 -0.0449 -0.0985 0.0019 -0.2612 0.1473 -0.1115 -0.1857 -0.1255 -0.0656 -0.0432 -0.1878 0.0558 -0.0403 0.1694 -0.1008 0.0076 -0.0993 0.0616 -0.0587 0.1838 0.0453 -0.0358 0.0144 -0.0350 -0.0330 -0.0315 0.0154 0.0158 0.0056 -0.0224 -0.0040 0.0109 0.0190 -0.0419 0.0075 0.0091 0.0022 -0.0027
1019-2 1019-2 Biopsy H. sapiens 1 #E7298A 1019-2 0.1255 0.0542 0.1255 0.0542 -0.0156 -0.0147 -0.0255 0.1560 -0.1733 -0.0557 -0.0136 -0.0593 0.0422 0.0131 0.1048 -0.0939 -0.0667 0.0676 0.1015 -0.0565 0.0214 0.2320 0.0441 0.1286 0.0958 -0.0264 0.0333 0.0157 -0.0103 -0.0232 0.0081 -0.1335 -0.0999 -0.0220 -0.1471 -0.0473 0.0486 0.0145 -0.0097 0.0653 -0.0329 0.0787 0.0141 -0.1826 0.1291 -0.0258 -0.0472 -0.0683 0.2093 0.0867 0.1044 0.0846 -0.1667 0.0110 0.1288 -0.0321 -0.0457 0.0496 -0.1744 -0.1104 -0.1632 -0.0530 -0.0661 -0.0447 0.1102 0.0822 0.0491 0.1935 -0.0310 -0.0535 0.1554 0.0065 -0.0132 0.1321 0.1364 0.0308 -0.2588 0.0361 -0.1734 -0.0618 0.1549 -0.3155 -0.0930 0.0860 -0.2508 -0.0670 0.0470 -0.0253 0.1371 0.0033 -0.0075 -0.0312 -0.0184 0.0222 0.0058 -0.0033 -0.0306 0.0044 0.0061 -0.0176
1019-3 1019-3 Biopsy H. sapiens 1 #E7298A 1019-3 0.1372 0.0618 0.1372 0.0618 -0.0096 -0.0095 0.0325 -0.0086 -0.1208 -0.0736 -0.0255 0.0641 0.0569 -0.0266 -0.0201 -0.0490 -0.0500 0.0134 0.0735 -0.0293 0.0029 0.2731 0.0475 0.0316 -0.0414 -0.2382 0.1946 -0.0341 -0.0817 -0.0334 0.0291 -0.1385 0.0335 0.0295 -0.1582 -0.0625 0.0228 -0.1218 -0.1390 0.2134 -0.1190 -0.1648 -0.0115 0.0008 0.0187 -0.0251 0.0839 -0.2386 0.1876 0.1268 0.1204 0.0364 -0.1575 -0.0922 0.1273 0.0559 -0.0507 0.1104 -0.1283 -0.0125 0.0061 -0.0589 0.0352 0.0781 0.1184 0.0645 -0.0348 -0.0718 0.0276 0.0761 -0.0734 0.0322 0.0781 -0.1137 -0.1199 -0.0720 0.2058 -0.0369 0.1926 0.0493 -0.1182 0.2920 0.0864 -0.0606 0.2118 0.0764 -0.0561 0.0311 -0.1205 -0.0360 -0.0010 0.0128 0.0319 -0.0229 0.0191 0.0092 0.0095 0.0003 -0.0013 0.0145
2004-1 2004-1 Biopsy H. sapiens 1 #E7298A 2004-1 0.1342 0.0826 0.1342 0.0826 -0.0185 0.0070 0.2031 0.2553 -0.0614 0.0423 -0.1219 0.0848 -0.0936 0.2636 0.0588 -0.1226 -0.0603 0.0865 0.0329 -0.0305 -0.1085 0.0253 -0.0553 -0.0427 -0.3249 -0.0193 0.0329 0.1726 -0.1826 0.1539 -0.2083 -0.0259 0.1449 0.3160 -0.1985 0.1350 0.1429 0.0074 0.1512 -0.0950 -0.2436 0.1494 0.0662 0.0420 0.0417 -0.0118 -0.0296 0.0668 -0.0722 -0.0733 0.0249 0.0034 0.0309 -0.0611 -0.1303 0.0401 0.0282 -0.0016 0.1218 -0.0146 0.1371 -0.0357 -0.0516 0.0196 -0.1419 -0.0184 -0.0633 0.0304 0.0558 0.0374 0.0135 0.0113 0.0686 -0.1136 -0.0482 -0.0370 -0.0423 0.0248 -0.0133 -0.0104 0.0444 -0.0577 -0.0237 0.0124 0.0230 0.0266 0.0262 0.0290 -0.0265 -0.0095 0.0064 0.0297 -0.0223 0.0018 -0.0220 -0.0042 -0.0185 0.0111 0.0034 -0.0007
2004-2 2004-2 Biopsy H. sapiens 1 #E7298A 2004-2 0.1494 0.1174 0.1494 0.1174 0.0274 0.0325 0.2515 -0.2907 -0.2754 -0.0951 0.1167 0.0148 -0.1493 0.2064 0.0166 0.0045 0.0559 0.1626 0.2477 0.0774 -0.1647 -0.3433 -0.1687 -0.0106 -0.1623 0.0409 -0.0113 -0.1523 -0.1155 -0.1014 0.0152 -0.0680 -0.2498 -0.0641 0.1409 -0.2069 -0.0385 -0.0796 -0.1054 0.0203 -0.1152 0.1015 -0.0527 -0.0306 -0.0703 0.0644 -0.1290 0.1023 0.0494 0.0547 -0.0104 -0.0075 0.0684 -0.0200 0.0421 -0.0384 0.0192 -0.0161 -0.0127 -0.0321 -0.0914 -0.0102 0.0626 -0.0140 0.0169 0.0440 0.0160 0.0114 0.0258 0.0180 0.0346 -0.0275 -0.0309 0.1517 0.0933 -0.0457 0.0575 -0.0138 0.0245 0.0220 -0.0222 0.0440 0.0218 -0.0155 0.0175 0.0111 -0.0125 0.0038 -0.0001 0.0190 -0.0001 0.0002 -0.0045 -0.0032 -0.0004 0.0129 0.0208 0.0005 -0.0061 -0.0015
2001-2 2001-2 Biopsy H. sapiens 1 #E7298A 2001-2 0.1488 0.0865 0.1488 0.0865 0.0015 0.0333 0.2558 -0.1083 0.0031 -0.0279 -0.0293 0.0423 -0.1350 -0.0212 -0.0937 -0.0694 -0.0223 -0.0050 -0.0674 -0.2115 -0.0523 0.2853 0.0053 0.1056 0.1353 -0.0082 -0.0214 -0.0749 0.0017 0.0124 -0.0323 0.2712 0.0109 0.0485 0.2031 0.0068 -0.0123 -0.1113 -0.0434 0.0394 0.0583 -0.1162 -0.0672 0.1628 -0.1467 0.0535 0.0512 -0.0907 0.0891 0.1420 -0.0649 -0.4091 -0.0151 -0.1564 -0.2780 0.0211 0.0432 -0.0206 0.1475 -0.0954 0.0833 -0.1713 0.1085 -0.0294 0.0277 0.0149 -0.0242 -0.0104 -0.0600 -0.1240 -0.0354 -0.0154 -0.0665 -0.0122 0.0102 0.0569 -0.0720 0.0243 -0.0600 0.0493 -0.0051 -0.1000 -0.0351 -0.0157 -0.0908 -0.0488 0.0296 -0.0570 0.0757 0.0125 0.0092 -0.0111 0.0021 -0.0008 0.0101 -0.0139 -0.0064 -0.0132 0.0181 0.0029
2001-3 2001-3 Biopsy H. sapiens 1 #E7298A 2001-3 0.1537 0.0835 0.1537 0.0835 0.0206 0.0362 0.2625 -0.1469 0.2480 0.1213 -0.1183 -0.0818 -0.2787 0.0596 -0.0151 -0.0568 -0.0589 0.1188 0.0676 -0.2844 -0.1173 0.1713 -0.0082 0.1763 0.1942 0.1747 -0.1342 0.0496 0.2080 0.0941 0.2166 -0.0023 0.0151 -0.0252 0.0279 0.1811 -0.0901 0.0337 0.0507 0.0049 -0.0493 0.0716 -0.0229 -0.0199 -0.0684 -0.0371 0.0357 0.0406 -0.1245 -0.0415 -0.0699 0.3239 -0.0431 0.1034 0.1289 -0.0307 -0.0397 0.0008 -0.1028 0.1327 -0.0927 0.0921 -0.0555 0.0017 -0.0043 0.0199 0.0407 0.0569 0.0551 0.0865 0.0179 0.0086 0.0586 -0.0219 -0.0177 -0.0079 0.0469 -0.0232 0.0169 0.0404 0.0140 0.0559 0.0585 -0.0036 0.0915 0.0511 -0.0156 0.0552 -0.0520 -0.0005 0.0098 0.0136 -0.0137 0.0022 0.0005 -0.0055 0.0023 0.0090 -0.0127 0.0034
2003-3 2003-3 Biopsy H. sapiens 1 #E7298A 2003-3 0.1451 0.0771 0.1451 0.0771 0.0270 0.0163 0.1930 -0.0855 0.1820 0.0830 -0.1111 -0.0136 -0.0264 0.0070 0.0607 -0.0002 0.0007 -0.0125 -0.0380 0.0574 0.0897 -0.0321 0.0100 -0.0733 -0.0364 -0.1586 0.1527 -0.0972 0.0738 0.1269 0.3114 -0.2635 -0.0368 -0.3121 -0.1957 0.0872 -0.0227 0.0920 0.0847 -0.1004 0.1331 -0.1096 0.1206 -0.1017 0.2271 -0.0412 -0.1158 0.0825 0.0491 -0.1509 0.1606 -0.1926 0.2099 -0.2283 0.0194 0.0113 0.1069 0.0722 0.1226 -0.0137 0.1207 -0.0236 -0.0385 -0.0058 -0.0548 -0.0021 -0.0275 -0.0201 -0.0333 -0.1037 0.0081 -0.0014 -0.1207 0.0169 0.0197 0.0139 0.1030 -0.0070 0.0532 0.0058 0.0319 -0.0226 -0.0453 -0.0078 -0.0820 0.0185 0.0541 -0.0265 0.0271 -0.0154 0.0168 0.0030 -0.0067 -0.0068 0.0110 -0.0073 0.0089 -0.0154 0.0156 0.0045
write.csv(q2_pca$table, file = "coords/q2_pca_coords.csv")

6 Request on 202101

Maria Adelaida sent an email which said: “I have been working on the gene lists and the easiest and cleanest way I found was to get the GSEA hallmark gene sets that may be of interest to us. The idea is that we use some of these gene lists (to star the xenobiotic list) to map the changes in gene expression over the course of treatment and in the different cell populations.”

Upon speaking with her, I think the goal is to have a plot with one line per MSigDB Hallmark category gene. The x-axis will therefore be the three time points for those patients for whom we have 3 visits; the y-axis will be normalized cpm. Each dot will be a single Hallmark gene.

With that in mind, the most difficult challenge is picking out the samples for which we have the three time points.

meta <- hpgltools::extract_metadata(samplesheet)
## Dropped 103 rows from the sample metadata because they were blank.
na_idx <- is.na(meta)
meta[na_idx] <- ""

visit_3_samples <- meta[["visitnumber"]] == 3
threes <- meta[visit_3_samples, ]
visit_2_samples <- meta[["visitnumber"]] == 2
twos <- meta[visit_2_samples, ]
visit_1_samples <- meta[["visitnumber"]] == 1
ones <- meta[visit_1_samples, ]

ones[["tubelabelorigin"]] %in% twos[["tubelabelorigin"]]
##  [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE
## [13]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [25]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE
## [37] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE
## [49] FALSE FALSE FALSE FALSE FALSE FALSE FALSE
ones_twos <- ones[["tubelabelorigin"]] %in% twos[["tubelabelorigin"]]
one_two <- meta[ones_twos, ]
all_three_idx <- threes[["tubelabelorigin"]] %in% one_two[["tubelabelorigin"]]
all_three <- threes[all_three_idx, ]
wanted_patients <- levels(as.factor(all_three[["tubelabelorigin"]]))

## So, it appears we have 3 visits for patients: su2068, su2072, and su2073.
plot_expt <- subset_expt(expt = all_norm, subset = "tubelabelorigin=='su2068'|tubelabelorigin=='su2072'|tubelabelorigin=='su2073'")
## There were 105, now there are 30 samples.
plot_pca(plot_expt)$plot

plot_monocyte <- subset_expt(plot_expt, subset = "typeofcells=='Monocytes'&tubelabelorigin!='su2072'")
## There were 30, now there are 6 samples.
up_monocyte_genes <- rownames(mono_sig[["deseq"]][["ups"]][["fail_vs_cure"]])
down_monocyte_genes <- rownames(mono_sig[["deseq"]][["downs"]][["fail_vs_cure"]])
plot_monocyte <- exclude_genes_expt(plot_monocyte, ids = down_monocyte_genes, method = "keep")
## Before removal, there were 14672 genes, now there are 262.
## There are 6 samples which kept less than 90 percent counts.
## 2068m1 2073m1 2068m2 2073m2 2068m3 2073m3 
##  2.212  1.574  1.828  1.465  1.824  1.505
hallmark_table <- openxlsx::read.xlsx(xlsxFile = "reference/geneset_selection_GSEA_Hallmark_modified.xlsx")
first_category <- hallmark_table[[1]]

hallmark_genes_idx <- fData(plot_monocyte)[["hgnc_symbol"]] %in% first_category
hallmark_genes <- fData(plot_monocyte)[hallmark_genes_idx, ]
wanted <- rownames(hallmark_genes)

plotted <- exprs(plot_monocyte)[wanted, ]
plot_long <- reshape2::melt(plotted)
colnames(plot_long) <- c("gene", "samplename", "exprs")
dim(plot_long)
## [1] 30  3
plot_long <- merge(plot_long, fData(plot_monocyte), by.x = "gene", by.y = "row.names")
dim(plot_long)
## [1] 30 16
plot_long <- merge(plot_long, pData(plot_monocyte), by = "samplename")
dim(plot_long)
## [1] 30 97
library(ggplot2)

plot_2068_idx <- plot_long[["tubelabelorigin"]] == "su2068"
plot_2068 <- plot_long[plot_2068_idx, ]
plt <- ggplot(data = plot_2068, mapping = aes_string(x = "visitnumber", y = "exprs",
                                                 colour = "gene")) +
  geom_line() +
  theme(legend.position = "none")
plt

probably_not <- ggplotly_url(plt, "probably_terrible_su2068.html")
## Warning in ggplotly_url(plt, "probably_terrible_su2068.html"): No url df was
## provided, nor is there a column: url, not much to do.
plot_2073_idx <- plot_long[["tubelabelorigin"]] == "su2073"
plot_2073 <- plot_long[plot_2073_idx, ]
plt <- ggplot(data = plot_2073, mapping = aes_string(x = "visitnumber", y = "exprs",
                                                 colour = "gene")) +
  geom_line() +
  theme(legend.position = "none")
plt

probably_not <- ggplotly_url(plt, "images/probably_terrible_su2073.html")
## Warning in ggplotly_url(plt, "images/probably_terrible_su2073.html"): No url df
## was provided, nor is there a column: url, not much to do.
if (!isTRUE(get0("skip_load"))) {
  pander::pander(sessionInfo())
  message(paste0("This is hpgltools commit: ", get_git_commit()))
  message(paste0("Saving to ", savefile))
  tmp <- sm(saveme(filename = savefile))
}
## If you wish to reproduce this exact build of hpgltools, invoke the following:
## > git clone http://github.com/abelew/hpgltools.git
## > git reset 75c439759cfc03b66dda979814171e43e69506ca
## This is hpgltools commit: Thu Apr 22 12:37:06 2021 -0400: 75c439759cfc03b66dda979814171e43e69506ca
## Saving to tmrc3_02sample_estimation_v202103.rda.xz
tmp <- loadme(filename = savefile)
LS0tCnRpdGxlOiAiVE1SQzMgQ29tcHJlaGVuc2l2ZSBEYXRhIEFuYWx5c2lzOiAyMDIxMDMiCmF1dGhvcjogImF0YiBhYmVsZXdAZ21haWwuY29tIgpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiCm91dHB1dDoKIGh0bWxfZG9jdW1lbnQ6CiAgY29kZV9kb3dubG9hZDogdHJ1ZQogIGNvZGVfZm9sZGluZzogc2hvdwogIGZpZ19jYXB0aW9uOiB0cnVlCiAgZmlnX2hlaWdodDogNwogIGZpZ193aWR0aDogNwogIGhpZ2hsaWdodDogZGVmYXVsdAogIGtlZXBfbWQ6IGZhbHNlCiAgbW9kZTogc2VsZmNvbnRhaW5lZAogIG51bWJlcl9zZWN0aW9uczogdHJ1ZQogIHNlbGZfY29udGFpbmVkOiB0cnVlCiAgdGhlbWU6IHJlYWRhYmxlCiAgdG9jOiB0cnVlCiAgdG9jX2Zsb2F0OgogICBjb2xsYXBzZWQ6IGZhbHNlCiAgIHNtb290aF9zY3JvbGw6IGZhbHNlCi0tLQoKPHN0eWxlPgogIGJvZHkgLm1haW4tY29udGFpbmVyIHsKICAgIG1heC13aWR0aDogMTYwMHB4OwogIH0KPC9zdHlsZT4KCmBgYHtyIG9wdGlvbnMsIGluY2x1ZGUgPSBGQUxTRX0KbGlicmFyeShocGdsdG9vbHMpCnR0IDwtIHNtKGRldnRvb2xzOjpsb2FkX2FsbCgifi9ocGdsdG9vbHMiKSkKa25pdHI6Om9wdHNfa25pdCRzZXQocHJvZ3Jlc3MgPSBUUlVFLAogICAgICAgICAgICAgICAgICAgICB2ZXJib3NlID0gVFJVRSwKICAgICAgICAgICAgICAgICAgICAgd2lkdGggPSAxMjAsCiAgICAgICAgICAgICAgICAgICAgIGVjaG8gPSBUUlVFKQprbml0cjo6b3B0c19jaHVuayRzZXQoZXJyb3IgPSBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgZmlnLndpZHRoID0gMTIsCiAgICAgICAgICAgICAgICAgICAgICBmaWcuaGVpZ2h0ID0gMTIsCiAgICAgICAgICAgICAgICAgICAgICBkcGkgPSA5NikKb2xkX29wdGlvbnMgPC0gb3B0aW9ucyhkaWdpdHMgPSA0LAogICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ3NBc0ZhY3RvcnMgPSBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICBrbml0ci5kdXBsaWNhdGUubGFiZWwgPSAiYWxsb3ciKQpnZ3Bsb3QyOjp0aGVtZV9zZXQoZ2dwbG90Mjo6dGhlbWVfYncoYmFzZV9zaXplID0gMTIpKQp2ZXIgPC0gIjIwMjEwMyIKcnVuZGF0ZSA8LSBmb3JtYXQoU3lzLkRhdGUoKSwgZm9ybWF0ID0gIiVZJW0lZCIpCgpybWRfZmlsZSA8LSAidG1yYzNfMDJzYW1wbGVfZXN0aW1hdGlvbl92MjAyMTAzLlJtZCIKc2F2ZWZpbGUgPC0gZ3N1YihwYXR0ZXJuID0gIlxcLlJtZCIsIHJlcGxhY2UgPSAiXFwucmRhXFwueHoiLCB4ID0gcm1kX2ZpbGUpCmBgYAoKIyBJbnRyb2R1Y3Rpb24KClRoaXMgZG9jdW1lbnQgaXMgaW50ZW5kZWQgdG8gcHJvdmlkZSBhbiBvdmVydmlldyBvZiBUTVJDMyBzYW1wbGVzIHdoaWNoIGhhdmUKYmVlbiBzZXF1ZW5jZWQuICBJdCBpbmNsdWRlcyBzb21lIHBsb3RzIGFuZCBhbmFseXNlcyBzaG93aW5nIHRoZSByZWxhdGlvbnNoaXBzCmFtb25nIHRoZSBzYW1wbGVzIGFzIHdlbGwgYXMgc29tZSBkaWZmZXJlbnRpYWwgYW5hbHlzZXMgd2hlbiBwb3NzaWJsZS4KCiMgQW5ub3RhdGlvbgoKV2UgdGFrZSB0aGUgYW5ub3RhdGlvbiBkYXRhIGZyb20gZW5zZW1ibCdzIGJpb21hcnQgaW5zdGFuY2UuICBUaGUgZ2Vub21lIHdoaWNoCndhcyB1c2VkIHRvIG1hcCB0aGUgZGF0YSB3YXMgaGczOCByZXZpc2lvbiAxMDAuICBNeSBkZWZhdWx0IHdoZW4gdXNpbmcgYmlvbWFydCBpcwp0byBsb2FkIHRoZSBkYXRhIGZyb20gMSB5ZWFyIGJlZm9yZSB0aGUgY3VycmVudCBkYXRlLgoKYGBge3IgaHNfYW5ub3R9CmhzX2Fubm90IDwtIHNtKGxvYWRfYmlvbWFydF9hbm5vdGF0aW9ucyh5ZWFyID0gIjIwMjAiKSkKaHNfYW5ub3QgPC0gaHNfYW5ub3RbWyJhbm5vdGF0aW9uIl1dCmhzX2Fubm90W1sidHJhbnNjcmlwdCJdXSA8LSBwYXN0ZTAocm93bmFtZXMoaHNfYW5ub3QpLCAiLiIsIGhzX2Fubm90W1sidmVyc2lvbiJdXSkKcm93bmFtZXMoaHNfYW5ub3QpIDwtIG1ha2UubmFtZXMoaHNfYW5ub3RbWyJlbnNlbWJsX2dlbmVfaWQiXV0sIHVuaXF1ZSA9IFRSVUUpCnR4X2dlbmVfbWFwIDwtIGhzX2Fubm90WywgYygidHJhbnNjcmlwdCIsICJlbnNlbWJsX2dlbmVfaWQiKV0KYGBgCgpgYGB7ciBoc19nb30KaHNfZ28gPC0gc20obG9hZF9iaW9tYXJ0X2dvKClbWyJnbyJdXSkKaHNfbGVuZ3RoIDwtIGhzX2Fubm90WywgYygiZW5zZW1ibF9nZW5lX2lkIiwgImNkc19sZW5ndGgiKV0KY29sbmFtZXMoaHNfbGVuZ3RoKSA8LSBjKCJJRCIsICJsZW5ndGgiKQpgYGAKCiMgU2FtcGxlIEVzdGltYXRpb24KCiMjIEdlbmVyYXRlIGV4cHJlc3Npb25zZXRzCgpUaGUgc2FtcGxlIHNoZWV0IGlzIGNvcGllZCBmcm9tIG91ciBzaGFyZWQgb25saW5lIHNoZWV0IGFuZCB1cGRhdGVkIHdpdGggZWFjaCByZWxlYXNlCm9mIHNlcXVlbmNpbmcgZGF0YS4KCmBgYHtyIHNhbXBsZXNoZWV0fQpzYW1wbGVzaGVldCA8LSAic2FtcGxlX3NoZWV0cy90bXJjM19zYW1wbGVzXzIwMjEwMy54bHN4IgpgYGAKCiMjIyBIaXNhdDIgZXhwcmVzc2lvbnNldHMKClRoZSBmaXJzdCB0aGluZyB0byBub3RlIGlzIHRoZSBsYXJnZSByYW5nZSBpbiBjb3ZlcmFnZS4gIFRoZXJlIGFyZSBtdWx0aXBsZQpzYW1wbGVzIHdpdGggY292ZXJhZ2Ugd2hpY2ggaXMgdG9vIGxvdyB0byB1c2UuICBUaGVzZSB3aWxsIGJlIHJlbW92ZWQgc2hvcnRseS4KCkluIHRoZSBmb2xsb3dpbmcgYmxvY2sgSSBpbW1lZGlhdGVseSBleGNsdWRlIGFueSBub24tY29kaW5nIHJlYWRzIGFzIHdlbGwuCgpgYGB7ciBhbGxfbmV3X2hpc2F0Mn0KIyMgQ3JlYXRlIHRoZSBleHByZXNzaW9uc2V0IGFuZCBpbW1lZGlhdGVseSBwYXNzIGl0IHRvIGEgZmlsdGVyCiMjIHJlbW92aW5nIHRoZSBub24gcHJvdGVpbiBjb2RpbmcgZ2VuZXMuCmhzX2V4cHQgPC0gc20oY3JlYXRlX2V4cHQoc2FtcGxlc2hlZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZV9jb2x1bW4gPSAiaGczODEwMGhpc2F0ZmlsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2F2ZWZpbGUgPSBnbHVlOjpnbHVlKCJoc19leHB0X2FsbC12e3Zlcn0ucmRhIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZV9pbmZvID0gaHNfYW5ub3QpKSAlPiUKICBleGNsdWRlX2dlbmVzX2V4cHQoY29sdW1uID0gImdlbmVfYmlvdHlwZSIsIG1ldGhvZCA9ICJrZWVwIiwgcGF0dGVybiA9ICJwcm90ZWluX2NvZGluZyIpCmBgYAoKIyMjIyBJbml0aWFsIG1ldHJpY3MKCk9uY2UgdGhlIGRhdGEgd2FzIGxvYWRlZCwgdGhlcmUgYXJlIGEgY291cGxlIG9mIG1ldHJpY3Mgd2hpY2ggbWF5IGJlIHBsb3R0ZWQgaW1tZWRpYXRlbHkuCgpgYGB7ciBpbml0aWFsX21ldHJpY3N9Cm5vbnplcm8gPC0gcGxvdF9ub256ZXJvKGhzX2V4cHQpCm5vbnplcm8kcGxvdApgYGAKCiMjIE1pbmltdW0gY292ZXJhZ2Ugc2FtcGxlIGZpbHRlcmluZwoKSSBhcmJpdHJhcmlseSBjaG9zZSAxMSwwMDAgbm9uLXplcm8gZ2VuZXMgYXMgYSBtaW5pbXVtLiAgV2UgbWF5CndhbnQgdGhpcyB0byBiZSBoaWdoZXIuCgpgYGB7ciBoaXNhdDJfd3JpdGUsIGZpZy5zaG93ID0gImhpZGUifQpoc192YWxpZCA8LSBzdWJzZXRfZXhwdChoc19leHB0LCBub256ZXJvID0gMTEwMDApCgojIyB2YWxpZF93cml0ZSA8LSB3cml0ZV9leHB0KGhzX3ZhbGlkLCBleGNlbCA9IGdsdWUoImV4Y2VsL2hzX3ZhbGlkLXZ7dmVyfS54bHN4IikpCmBgYAoKIyBQcm9qZWN0IEFpbXMKClRoZSBwcm9qZWN0IHNlZWtzIHRvIGRldGVybWluZSB0aGUgcmVsYXRpb25zaGlwIG9mIHRoZSBpbm5hdGUgaW1tdW5lIHJlc3BvbnNlCmFuZCBpbmZsYW1tYXRvcnkgc2lnbmFsaW5nIHRvIHRoZSBjbGluaWNhbCBvdXRjb21lIG9mIGFudGlsZWlzaG1hbmlhbCBkcnVnCnRyZWF0bWVudC4gV2Ugd2lsbCB0ZXN0IHRoZSBoeXBvdGhlc2lzIHRoYXQgdGhlIHByb2ZpbGUgb2YgaW5uYXRlIGltbXVuZSBjZWxsCmFjdGl2YXRpb24gYW5kIHRoZWlyIGR5bmFtaWNzIHRocm91Z2ggdGhlIGNvdXJzZSBvZiB0cmVhdG1lbnQgZGlmZmVyIGJldHdlZW4gQ0wKcGF0aWVudHMgd2l0aCBwcm9zcGVjdGl2ZWx5IGRldGVybWluZWQgdGhlcmFwZXV0aWMgY3VyZSBvciBmYWlsdXJlLgoKVGhpcyB3aWxsIGJlIGFjaGlldmVkIHRocm91Z2ggdGhlIGNoYXJhY3Rlcml6YXRpb24gb2YgdGhlIGluIHZpdm8gZHluYW1pY3Mgb2YKYmxvb2QtZGVyaXZlZCBtb25vY3l0ZSwgbmV1dHJvcGhpbCBhbmQgZW9zaW5vcGhpbCB0cmFuc2NyaXB0b21lIGJlZm9yZSwgZHVyaW5nCmFuZCBhdCB0aGUgZW5kIG9mIHRyZWF0bWVudCBpbiBDTCBwYXRpZW50cy4gQ2VsbC10eXBlIHNwZWNpZmljIHRyYW5zY3JpcHRvbWVzLApjb21wb3NpdGUgc2lnbmF0dXJlcyBhbmQgdGltZS1yZXNwb25zZSBleHByZXNzaW9uIHByb2ZpbGVzIHdpbGwgYmUgY29udHJhc3RlZAphbW9uZyBwYXRpZW50cyB3aXRoIHRoZXJhcGV1dGljIGN1cmUgb3IgZmFpbHVyZS4KCiMjIFByZXBhcmF0aW9uCgpUbyBhZGRyZXNzIHRoZXNlLCBJIGFkZGVkIHRvIHRoZSBlbmQgb2YgdGhlIHNhbXBsZSBzaGVldCBjb2x1bW5zIG5hbWVkCidjb25kaXRpb24nLCAnYmF0Y2gnLCAnZG9ub3InLCBhbmQgJ3RpbWUnLiAgVGhlc2UgYXJlIGZpbGxlZCBpbiB3aXRoIHNob3J0aGFuZAp2YWx1ZXMgYWNjb3JkaW5nIHRvIHRoZSBhYm92ZS4KCiMjIEdsb2JhbCB2aWV3CgpCZWZvcmUgYWRkcmVzc2luZyB0aGUgcXVlc3Rpb25zIGV4cGxpY2l0bHkgYnkgc3Vic2V0dGluZyB0aGUgZGF0YSwgSSB3YW50IHRvIGdldAphIGxvb2sgYXQgdGhlIHNhbXBsZXMgYXMgdGhleSBhcmUuCgpgYGB7ciBwcmVfcXVlc3Rpb25zfQpoc192YWxpZCA8LSBoc192YWxpZCAlPiUKICBzZXRfZXhwdF9iYXRjaGVzKGZhY3QgPSAiY2VsbHNzb3VyY2UiKSAlPiUKICBzZXRfZXhwdF9jb25kaXRpb25zKGZhY3QgPSAidHlwZW9mY2VsbHMiKSAlPiUKICBzZXRfZXhwdF9zYW1wbGVuYW1lcyhuZXduYW1lcyA9IHBEYXRhKGhzX3ZhbGlkKVtbInNhbXBsZW5hbWUiXV0pCgphbGxfbm9ybSA8LSBzbShub3JtYWxpemVfZXhwdChoc192YWxpZCwgdHJhbnNmb3JtID0gImxvZzIiLCBub3JtID0gInF1YW50IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydCA9ICJjcG0iLCBmaWx0ZXIgPSBUUlVFKSkKCmFsbF9wY2EgPC0gcGxvdF9wY2EoYWxsX25vcm0sIHBsb3RfbGFiZWxzID0gRkFMU0UsIHBsb3RfdGl0bGUgPSAiUENBIC0gQ2VsbCB0eXBlIikKcHAoZmlsZSA9IGdsdWUoImltYWdlcy90bXJjM19wY2Ffbm9sYWJlbHMtdnt2ZXJ9LnBuZyIpLCBpbWFnZSA9IGFsbF9wY2EkcGxvdCkKCndyaXRlLmNzdihhbGxfcGNhJHRhYmxlLCBmaWxlID0gImNvb3Jkcy9oc19kb25vcl9wY2FfY29vcmRzLmNzdiIpCnBsb3RfY29yaGVhdChhbGxfbm9ybSwgcGxvdF90aXRsZSA9ICJIZWlyYXJjaGljYWwgY2x1c3RlcmluZyAtIGNlbGwgdHlwZXMiKSRwbG90CmBgYAoKIyMgRXhhbWluZSBzYW1wbGVzIHJlbGV2YW50IHRvIGNsaW5pY2FsIG91dGNvbWUKCk5vdyBsZXQgdXMgY29uc2lkZXIgb25seSB0aGUgc2FtcGxlcyBmb3Igd2hpY2ggd2UgaGF2ZSBhIGNsaW5pY2FsIG91dGNvbWUuClRoZXNlIGZhbGwgcHJpbWFyaWx5IGludG8gZWl0aGVyICdjdXJlZCcgb3IgJ2ZhaWxlZCcsIGJ1dCBzb21lIHBlb3BsZSBoYXZlIG5vdAp5ZXQgcmV0dXJuZWQgdG8gdGhlIGNsaW5pYyBhZnRlciB0aGUgZmlyc3Qgb3Igc2Vjb25kIHZpc2l0LiAgVGhlc2UgYXJlIGRlZW1lZAonbG9zdCcuCgpgYGB7ciBhbGxfY2xpbmljYWx9CmNob3Nlbl9jb2xvcnMgPC0gYygiI0Q5NUYwMiIsICIjNzU3MEIzIiwgIiMxQjlFNzciLCAiI0ZGMDAwMCIpCm5hbWVzKGNob3Nlbl9jb2xvcnMpIDwtIGMoImN1cmUiLCAiZmFpbHVyZSIsICJsb3N0IiwgIm51bGwiKQpuZXduYW1lcyA8LSBwRGF0YShoc192YWxpZClbWyJzYW1wbGVuYW1lIl1dCgpoc19jbGluaWNhbCA8LSBoc192YWxpZCAlPiUKICBzZXRfZXhwdF9jb25kaXRpb25zKGZhY3QgPSAiY2xpbmljYWxvdXRjb21lIikgJT4lCiAgc2V0X2V4cHRfYmF0Y2hlcyhmYWN0ID0gInR5cGVvZmNlbGxzIikgJT4lCiAgc2V0X2V4cHRfY29sb3JzKGNvbG9ycyA9IGNob3Nlbl9jb2xvcnMpICU+JQogIHNldF9leHB0X3NhbXBsZW5hbWVzKG5ld25hbWVzID0gbmV3bmFtZXMpICU+JQogIHN1YnNldF9leHB0KHN1YnNldCA9ICJ0eXBlb2ZjZWxscyE9J1BCTUNzJyZ0eXBlb2ZjZWxscyE9J01hY3JvcGhhZ2VzJyIpCgpoc19jbGluaWNhbF9ub3JtIDwtIHNtKG5vcm1hbGl6ZV9leHB0KGhzX2NsaW5pY2FsLCBmaWx0ZXIgPSBUUlVFLCB0cmFuc2Zvcm0gPSAibG9nMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydCA9ICJjcG0iLCBub3JtID0gInF1YW50IikpCmNsaW5pY2FsX3BjYSA8LSBwbG90X3BjYShoc19jbGluaWNhbF9ub3JtLCBwbG90X2xhYmVscyA9IEZBTFNFLCBjaXMgPSBOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgcGxvdF90aXRsZSA9ICJQQ0EgLSBjbGluaWNhbCBzYW1wbGVzIikKcHAoZmlsZSA9IGdsdWUoImltYWdlcy9hbGxfY2xpbmljYWxfbm9iYXRjaF9wY2Etdnt2ZXJ9LnBuZyIpLCBpbWFnZSA9IGNsaW5pY2FsX3BjYSRwbG90LAogICBoZWlnaHQgPSA4LCB3aWR0aCA9IDIwKQpgYGAKCiMjIyBSZXBlYXQgd2l0aG91dCB0aGUgYmlvcHN5IHNhbXBsZXMKCmBgYHtyIGliaWRfbm9iaW9wc3l9CmhzX2NsaW5pY2FsX25vYmlvcCA8LSBoc19jbGluaWNhbCAlPiUKICBzdWJzZXRfZXhwdChzdWJzZXQgPSAidHlwZW9mY2VsbHMhPSdCaW9wc3knIikKCmhzX2NsaW5pY2FsX25vYmlvcF9ub3JtIDwtIHNtKG5vcm1hbGl6ZV9leHB0KGhzX2NsaW5pY2FsX25vYmlvcCwgZmlsdGVyID0gVFJVRSwgdHJhbnNmb3JtID0gImxvZzIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ID0gImNwbSIsIG5vcm0gPSAicXVhbnQiKSkKY2xpbmljYWxfbm9iaW9wX3BjYSA8LSBwbG90X3BjYShoc19jbGluaWNhbF9ub2Jpb3Bfbm9ybSwgcGxvdF9sYWJlbHMgPSBGQUxTRSwgY2lzID0gTlVMTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbG90X3RpdGxlID0gIlBDQSAtIGNsaW5pY2FsIHNhbXBsZXMgd2l0aG91dCBiaW9wc2llcyIpCnBwKGZpbGUgPSBnbHVlKCJpbWFnZXMvYWxsX2NsaW5pY2FsX25vYmlvcF9ub2JhdGNoX3BjYS12e3Zlcn0ucG5nIiksCiAgIGltYWdlID0gY2xpbmljYWxfbm9iaW9wX3BjYSRwbG90KQpgYGAKCiMjIyBBdHRlbXB0IHRvIGNvcnJlY3QgZm9yIHRoZSBzdXJyb2dhdGUgdmFyaWFibGVzCgpBdCB0aGlzIHRpbWUgd2UgaGF2ZSB0d28gcHJpbWFyeSBkYXRhIHN0cnVjdHVyZXMgb2YgaW50ZXJlc3Q6IGhzX2NsaW5pY2FsIGFuZCBoc19jbGluaWNhbF9ub2Jpb3AKCmBgYHtyIGNsaW5pY2FsX3N2YX0KaHNfY2xpbmljYWxfbmIgPC0gbm9ybWFsaXplX2V4cHQoaHNfY2xpbmljYWwsIGZpbHRlciA9IFRSVUUsIGJhdGNoID0gInN2YXNlcSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSA9ICJsb2cyIiwgY29udmVydCA9ICJjcG0iKQpjbGluaWNhbF9iYXRjaF9wY2EgPC0gcGxvdF9wY2EoaHNfY2xpbmljYWxfbmIsIHBsb3RfbGFiZWxzID0gRkFMU0UsIGNpcyA9IE5VTEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbG90X3RpdGxlID0gIlBDQSAtIGNsaW5pY2FsIHNhbXBsZXMiKQpjbGluaWNhbF9iYXRjaF9wY2EkcGxvdAoKaHNfY2xpbmljYWxfbm9iaW9wX25iIDwtIHNtKG5vcm1hbGl6ZV9leHB0KGhzX2NsaW5pY2FsX25vYmlvcCwgZmlsdGVyID0gVFJVRSwgYmF0Y2ggPSAic3Zhc2VxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSA9ICJsb2cyIiwgY29udmVydCA9ICJjcG0iKSkKY2xpbmljYWxfbm9iaW9wX2JhdGNoX3BjYSA8LSBwbG90X3BjYShoc19jbGluaWNhbF9ub2Jpb3BfbmIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxvdF90aXRsZSA9ICJQQ0EgLSBjbGluaWNhbCBzYW1wbGVzIHdpdGhvdXQgYmlvcHNpZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsb3RfbGFiZWxzID0gRkFMU0UpCnBwKGZpbGUgPSAiaW1hZ2VzL2NsaW5pY2FsX2JhdGNoLnBuZyIsIGltYWdlID0gY2xpbmljYWxfbm9iaW9wX2JhdGNoX3BjYSRwbG90KQoKY2xpbmljYWxfbm9iaW9wX2JhdGNoX3RzbmUgPC0gcGxvdF90c25lKGhzX2NsaW5pY2FsX25vYmlvcF9uYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsb3RfdGl0bGUgPSAidFNORSAtIGNsaW5pY2FsIHNhbXBsZXMgd2l0aG91dCBiaW9wc2llcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbG90X2xhYmVscyA9IEZBTFNFKQpjbGluaWNhbF9ub2Jpb3BfYmF0Y2hfdHNuZSRwbG90Cgp0ZXN0IDwtIHNpbXBsZV92YXJwYXJ0KGhzX2NsaW5pY2FsX25vYmlvcCkKdGVzdCRwYXJ0aXRpb25fcGxvdApgYGAKCiMjIFBlcmZvcm0gREUgb2YgdGhlIGNsaW5pY2FsIHNhbXBsZXMgY3VyZSB2cy4gZmFpbAoKYGBge3IgY2xpbmljYWxfZGUsIGZpZy5zaG93PSJoaWRlIn0KaW5kaXZpZHVhbF9jZWxsdHlwZXMgPC0gc3Vic2V0X2V4cHQoaHNfY2xpbmljYWxfbm9iaW9wLCBzdWJzZXQ9ImNvbmRpdGlvbiE9J2xvc3QnIikKaHNfY2xpbmljX2RlIDwtIHNtKGFsbF9wYWlyd2lzZShpbmRpdmlkdWFsX2NlbGx0eXBlcywgbW9kZWxfYmF0Y2ggPSAic3Zhc2VxIiwgZmlsdGVyID0gVFJVRSkpCmhzX2NsaW5pY190YWJsZSA8LSBzbShjb21iaW5lX2RlX3RhYmxlcygKICAgIGhzX2NsaW5pY19kZSwKICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvaW5kaXZpZHVhbF9jZWxsdHlwZXNfdGFibGUtdnt2ZXJ9Lnhsc3giKSkpCmhzX2NsaW5pY19zaWcgPC0gc20oZXh0cmFjdF9zaWduaWZpY2FudF9nZW5lcygKICAgIGhzX2NsaW5pY190YWJsZSwKICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvaW5kaXZpZHVhbF9jZWxsdHlwZXNfc2lnLXZ7dmVyfS54bHN4IikpKQoKaHNfY2xpbmljX3NpZ1tbInN1bW1hcnlfZGYiXV0KYGBgCgojIyMgTG9vayBhdCBvbmx5IHRoZSBkaWZmZXJlbnRpYWwgZ2VuZXMKCkEgZ29vZCBzdWdnZXN0aW9uIGZyb20gVGhlcmVzYSB3YXMgdG8gZXhhbWluZSBvbmx5IHRoZSBtb3N0IHZhcmlhbnQKZ2VuZXMgZnJvbSBmYWlsdXJlIHZzLiBjdXJlIGFuZCBzZWUgaG93IHRoZXkgY2hhbmdlIHRoZSBjbHVzdGVyaW5nL2V0YwpyZXN1bHRzLiAgVGhpcyBpcyBteSBhdHRlbXB0IHRvIGFkZHJlc3MgdGhpcyBxdWVyeS4KCmBgYHtyIHNtYWxsX2V4cGxvcmV9CmhzX2NsaW5pY190b3BuIDwtIHNtKGV4dHJhY3Rfc2lnbmlmaWNhbnRfZ2VuZXMoaHNfY2xpbmljX3RhYmxlLCBuID0gMTAwKSkKdGFibGUgPC0gImZhaWx1cmVfdnNfY3VyZSIKd2FudGVkIDwtIHJiaW5kKGhzX2NsaW5pY190b3BuW1siZGVzZXEiXV1bWyJ1cHMiXV1bW3RhYmxlXV0sCiAgICAgICAgICAgICAgICBoc19jbGluaWNfdG9wbltbImRlc2VxIl1dW1siZG93bnMiXV1bW3RhYmxlXV0pCgpzbWFsbF9leHB0IDwtIGV4Y2x1ZGVfZ2VuZXNfZXhwdChoc19jbGluaWNhbF9ub2Jpb3AsIGlkcyA9IHJvd25hbWVzKHdhbnRlZCksIG1ldGhvZCA9ICJrZWVwIikKc21hbGxfbm9ybSA8LSBzbShub3JtYWxpemVfZXhwdChzbWFsbF9leHB0LCB0cmFuc2Zvcm0gPSAibG9nMiIsIGNvbnZlcnQgPSAiY3BtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtID0gInF1YW50IiwgZmlsdGVyID0gVFJVRSkpCnBsb3RfcGNhKHNtYWxsX25vcm0pJHBsb3QKCnNtYWxsX25iIDwtIG5vcm1hbGl6ZV9leHB0KHNtYWxsX2V4cHQsIHRyYW5zZm9ybSA9ICJsb2cyIiwgY29udmVydCA9ICJjcG0iLAogICAgICAgICAgICAgICAgICAgICAgICAgICBiYXRjaCA9ICJzdmFzZXEiLCBub3JtID0gInF1YW50IiwgZmlsdGVyID0gVFJVRSkKcGxvdF9wY2Eoc21hbGxfbmIpJHBsb3QKYGBgCgpgYGB7ciBjbGluaWNhbF9wbG90fQojIyBERVNlcTIgTUEgcGxvdCBvZiBmYWlsdXJlIC8gY3VyZQpoc19jbGluaWNfdGFibGVbWyJwbG90cyJdXVtbImZhaWx1cmVfdnNfY3VyZSJdXVtbImRlc2VxX21hX3Bsb3RzIl1dJHBsb3QKCiMjIERFU2VxMiBWb2xjYW5vIHBsb3Qgb2YgZmFpbHVyZSAvIGN1cmUKaHNfY2xpbmljX3RhYmxlW1sicGxvdHMiXV1bWyJmYWlsdXJlX3ZzX2N1cmUiXV1bWyJkZXNlcV92b2xfcGxvdHMiXV0kcGxvdApgYGAKCiMjIyBnOlByb2ZpbGVyIHJlc3VsdHMgdXNpbmcgdGhlIHNpZ25pZmljYW50IHVwIGFuZCBkb3duIGdlbmVzCgpgYGB7ciBwZXJmb3JtX2dwcm9maWxlcn0KdXBzIDwtIGhzX2NsaW5pY19zaWdbWyJkZXNlcSJdXVtbInVwcyJdXVtbMV1dCmRvd25zIDwtIGhzX2NsaW5pY19zaWdbWyJkZXNlcSJdXVtbImRvd25zIl1dW1sxXV0KCmhzX2NsaW5pY19ncHJvZmlsZXJfdXBzIDwtIHNpbXBsZV9ncHJvZmlsZXIodXBzKQpoc19jbGluaWNfZ3Byb2ZpbGVyX3Vwc1tbInB2YWx1ZV9wbG90cyJdXVtbImJwcF9wbG90X292ZXIiXV0KaHNfY2xpbmljX2dwcm9maWxlcl91cHNbWyJwdmFsdWVfcGxvdHMiXV1bWyJtZnBfcGxvdF9vdmVyIl1dCmhzX2NsaW5pY19ncHJvZmlsZXJfdXBzW1sicHZhbHVlX3Bsb3RzIl1dW1sicmVhY3RvbWVfcGxvdF9vdmVyIl1dCgojI2hzX3RyeTIgPC0gc2ltcGxlX2dwcm9maWxlcjIodXBzKQoKaHNfY2xpbmljX2dwcm9maWxlcl9kb3ducyA8LSBzaW1wbGVfZ3Byb2ZpbGVyKGRvd25zKQpoc19jbGluaWNfZ3Byb2ZpbGVyX2Rvd25zW1sicHZhbHVlX3Bsb3RzIl1dW1siYnBwX3Bsb3Rfb3ZlciJdXQpoc19jbGluaWNfZ3Byb2ZpbGVyX2Rvd25zW1sicHZhbHVlX3Bsb3RzIl1dW1sibWZwX3Bsb3Rfb3ZlciJdXQpoc19jbGluaWNfZ3Byb2ZpbGVyX2Rvd25zW1sicHZhbHVlX3Bsb3RzIl1dW1sicmVhY3RvbWVfcGxvdF9vdmVyIl1dCmBgYAoKIyMgUGVyZm9ybSBHU1ZBIG9uIHRoZSBjbGluaWNhbCBzYW1wbGVzCgpgYGB7ciBnc3ZhLCBmaWcuc2hvdyA9ICJoaWRlIn0KaHNfY2VsbHR5cGVfZ3N2YV9jMiA8LSBzbShzaW1wbGVfZ3N2YShpbmRpdmlkdWFsX2NlbGx0eXBlcykpCmhzX2NlbGx0eXBlX2dzdmFfYzJfc2lnIDwtIHNtKGdldF9zaWdfZ3N2YV9jYXRlZ29yaWVzKAogICAgaHNfY2VsbHR5cGVfZ3N2YV9jMiwKICAgIGV4Y2VsID0gImV4Y2VsL2luZGl2aWR1YWxfY2VsbHR5cGVzX2dzdmFfYzIueGxzeCIpKQoKYnJvYWRfYzcgPC0gR1NFQUJhc2U6OmdldEdtdCgicmVmZXJlbmNlL21zaWdkYi9jNy5hbGwudjcuMi5lbnRyZXouZ210IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uVHlwZSA9IEdTRUFCYXNlOjpCcm9hZENvbGxlY3Rpb24oY2F0ZWdvcnkgPSAiYzciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lSWRUeXBlID0gR1NFQUJhc2U6OkVudHJleklkZW50aWZpZXIoKSkKaHNfY2VsbHR5cGVfZ3N2YV9jNyA8LSBzbShzaW1wbGVfZ3N2YShpbmRpdmlkdWFsX2NlbGx0eXBlcywgc2lnbmF0dXJlcyA9IGJyb2FkX2M3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zaWdfeG1sID0gInJlZmVyZW5jZS9tc2lnZGJfdjcuMi54bWwiLCBjb3JlcyA9IDEwKSkKaHNfY2VsbHR5cGVfZ3N2YV9jN19zaWcgPC0gc20oZ2V0X3NpZ19nc3ZhX2NhdGVnb3JpZXMoCiAgICBoc19jZWxsdHlwZV9nc3ZhX2M3LAogICAgZXhjZWwgPSAiZXhjZWwvaW5kaXZpZHVhbF9jZWxsdHlwZXNfZ3N2YV9jNy54bHN4IikpCmBgYAoKIyMjIFByaW50IHNvbWUgcGxvdHMgb2YgdGhlIEdTVkEgb3V0cHV0cwoKYGBge3IgZ3N2YV9wbG90c30KIyMgVGhlIHJhdyBoZWF0bWFwIG9mIHRoZSBDMiB2YWx1ZXMKaHNfY2VsbHR5cGVfZ3N2YV9jMl9zaWdbWyJyYXdfcGxvdCJdXQojIyBUaGUgJ3NpZ25pZmljYW5jZScgc2NvcmVzIG9mIHRoZSBDMiB2YWx1ZXMKaHNfY2VsbHR5cGVfZ3N2YV9jMl9zaWdbWyJzY29yZV9wbG90Il1dCiMjIFRoZSBzdWJzZXQgb2Ygc2NvcmVzIGZvciBjYXRlZ29yaWVzIGRlZW1lZCBzaWduaWZpY2FudGx5IGRpZmZlcmVudC4KaHNfY2VsbHR5cGVfZ3N2YV9jMl9zaWdbWyJzdWJzZXRfcGxvdCJdXQoKIyMgVGhlIHJhdyBoZWF0bWFwIG9mIHRoZSBDNyB2YWx1ZXMKaHNfY2VsbHR5cGVfZ3N2YV9jN19zaWdbWyJyYXdfcGxvdCJdXQojIyBUaGUgJ3NpZ25pZmljYW5jZScgc2NvcmVzIG9mIHRoZSBDNyB2YWx1ZXMKaHNfY2VsbHR5cGVfZ3N2YV9jN19zaWdbWyJzY29yZV9wbG90Il1dCiMjIFRoZSBzdWJzZXQgb2Ygc2NvcmVzIGZvciBjYXRlZ29yaWVzIGRlZW1lZCBzaWduaWZpY2FudGx5IGRpZmZlcmVudC4KaHNfY2VsbHR5cGVfZ3N2YV9jN19zaWdbWyJzdWJzZXRfcGxvdCJdXQpgYGAKCiMgSW5kaXZpZHVhbCBDZWxsIHR5cGVzCgpUaGUgZm9sbG93aW5nIGJsb2NrcyBzcGxpdCB0aGUgc2FtcGxlcyBpbnRvIGEgZmV3IGdyb3VwcyBieSBzYW1wbGUgdHlwZSBhbmQgbG9vawphdCB0aGUgZGlzdHJpYnV0aW9ucyBiZXR3ZWVuIHRoZW0uCgojIyBJbXBsZW1lbnRhdGlvbiBkZXRhaWxzCgpHZXQgdG9wL2JvdHRvbSBuIGdlbmVzIGZvciBlYWNoIGNlbGwgdHlwZSwgdXNpbmcgY2xpbmljYWwgb3V0Y29tZSBhcyB0aGUgZmFjdG9yIG9mIGludGVyZXN0LgpGb3IgdGhlIG1vbWVudCwgdXNlIHN2YSBmb3IgdGhlIERFIGFuYWx5c2lzLgpQcm92aWRlIGNwbXMgZm9yIHRoZSB0b3AvYm90dG9tIG4gZ2VuZXMuCgpTdGFydCB3aXRoIHRvcC9ib3R0b20gMjAwLgpQZXJmb3JtIGRlZmF1bHQgbG9nRkMgYW5kIHAtdmFsdWUgYXMgd2VsbC4KCiMjIyBTaGFyZWQgY29udHJhc3RzCgpIZXJlIGlzIHRoZSBjb250cmFzdCB3ZSB3aWxsIHVzZSB0aHJvdWdocHV0LCBJIGFtIGxlYXZpbmcgb3BlbiB0aGUgb3B0aW9uIHRvIGFkZCBtb3JlLgoKYGBge3Iga2VlcGVyc30Ka2VlcGVycyA8LSBsaXN0KAogICJmYWlsX3ZzX2N1cmUiID0gYygiZmFpbHVyZSIsICJjdXJlIikpCmBgYAoKIyMgTW9ub2N5dGVzCgojIyMgRXZhbHVhdGUgTW9ub2N5dGUgc2FtcGxlcwoKYGBge3IgbW9ub2N5dGVzfQptb25vIDwtIHN1YnNldF9leHB0KGhzX3ZhbGlkLCBzdWJzZXQgPSAidHlwZW9mY2VsbHM9PSdNb25vY3l0ZXMnIikgJT4lCiAgc2V0X2V4cHRfY29uZGl0aW9ucyhmYWN0ID0gImNsaW5pY2Fsb3V0Y29tZSIpICU+JQogIHNldF9leHB0X2JhdGNoZXMoZmFjdCA9ICJkb25vciIpICU+JQogIHNldF9leHB0X2NvbG9ycyhjb2xvcnMgPSBjaG9zZW5fY29sb3JzKQojIyBGSVhNRSBzZXRfZXhwdF9jb2xvcnMgc2hvdWxkIHNwZWFrIHVwIGlmIHRoZXJlIGFyZSBtaXNtYXRjaGVzIGhlcmUhISEKCnNhdmVfcmVzdWx0IDwtIHNhdmUobW9ubywgZmlsZSA9ICJyZGEvbW9ub2N5dGVfZXhwdC5yZGEiKQptb25vX25vcm0gPC0gbm9ybWFsaXplX2V4cHQobW9ubywgY29udmVydCA9ICJjcG0iLCBmaWx0ZXIgPSBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtID0gImxvZzIiLCBub3JtID0gInF1YW50IikKcGx0IDwtIHBsb3RfcGNhKG1vbm9fbm9ybSwgcGxvdF9sYWJlbHMgPSBGQUxTRSkkcGxvdApwcChmaWxlID0gZ2x1ZSgiaW1hZ2VzL21vbm9fcGNhX25vcm1hbGl6ZWQtdnt2ZXJ9LnBkZiIpLCBpbWFnZSA9IHBsdCkKCm1vbm9fbmIgPC0gbm9ybWFsaXplX2V4cHQobW9ubywgY29udmVydCA9ICJjcG0iLCBmaWx0ZXIgPSBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSA9ICJsb2cyIiwgYmF0Y2ggPSAic3Zhc2VxIikKcGx0IDwtIHBsb3RfcGNhKG1vbm9fbmIsIHBsb3RfbGFiZWxzID0gRkFMU0UpJHBsb3QKcHAoZmlsZSA9IGdsdWUoImltYWdlcy9tb25vX3BjYV9ub3JtYWxpemVkX2JhdGNoLXZ7dmVyfS5wZGYiKSwgaW1hZ2UgPSBwbHQpCmBgYAoKIyMjIERFIG9mIE1vbm9jeXRlIHNhbXBsZXMKCiMjIyMgV2l0aG91dCBzdmEKCmBgYHtyIGRlX21vbm9jeXRlLCBmaWcuc2hvdyA9ICJoaWRlIn0KbW9ub19kZSA8LSBzbShhbGxfcGFpcndpc2UobW9ubywgbW9kZWxfYmF0Y2ggPSBGQUxTRSwgZmlsdGVyID0gVFJVRSkpCm1vbm9fdGFibGVzIDwtIHNtKGNvbWJpbmVfZGVfdGFibGVzKAogICAgbW9ub19kZSwga2VlcGVycyA9IGtlZXBlcnMsCiAgICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL21vbm9jeXRlX2NsaW5pY2FsX2FsbF90YWJsZXMtdnt2ZXJ9Lnhsc3giKSkpCndyaXR0ZW4gPC0gd3JpdGVfeGxzeChkYXRhID0gbW9ub190YWJsZXNbWyJkYXRhIl1dW1sxXV0sCiAgICAgICAgICAgICAgICAgICAgICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL21vbm9jeXRlX2NsaW5pY2FsX3RhYmxlLXZ7dmVyfS54bHN4IikpCm1vbm9fc2lnIDwtIHNtKGV4dHJhY3Rfc2lnbmlmaWNhbnRfZ2VuZXMobW9ub190YWJsZXMsIGFjY29yZGluZ190byA9ICJkZXNlcSIpKQp3cml0dGVuIDwtIHdyaXRlX3hsc3goZGF0YSA9IG1vbm9fc2lnW1siZGVzZXEiXV1bWyJ1cHMiXV1bWzFdXSwKICAgICAgICAgICAgICAgICAgICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvbW9ub2N5dGVfY2xpbmljYWxfc2lndXAtdnt2ZXJ9Lnhsc3giKSkKd3JpdHRlbiA8LSB3cml0ZV94bHN4KGRhdGEgPSBtb25vX3NpZ1tbImRlc2VxIl1dW1siZG93bnMiXV1bWzFdXSwKICAgICAgICAgICAgICAgICAgICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvbW9ub2N5dGVfY2xpbmljYWxfc2lnZG93bi12e3Zlcn0ueGxzeCIpKQoKbW9ub19wY3Rfc2lnIDwtIHNtKGV4dHJhY3Rfc2lnbmlmaWNhbnRfZ2VuZXMobW9ub190YWJsZXMsIG4gPSAyMDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxmYyA9IE5VTEwsIHAgPSBOVUxMLCBhY2NvcmRpbmdfdG8gPSAiZGVzZXEiKSkKd3JpdHRlbiA8LSB3cml0ZV94bHN4KGRhdGEgPSBtb25vX3BjdF9zaWdbWyJkZXNlcSJdXVtbInVwcyJdXVtbMV1dLAogICAgICAgICAgICAgICAgICAgICAgZXhjZWwgPSBnbHVlOjpnbHVlKCJleGNlbC9tb25vY3l0ZV9jbGluaWNhbF9zaWd1cF9wY3Qtdnt2ZXJ9Lnhsc3giKSkKd3JpdHRlbiA8LSB3cml0ZV94bHN4KGRhdGEgPSBtb25vX3BjdF9zaWdbWyJkZXNlcSJdXVtbImRvd25zIl1dW1sxXV0sCiAgICAgICAgICAgICAgICAgICAgICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL21vbm9jeXRlX2NsaW5pY2FsX3NpZ2Rvd25fcGN0LXZ7dmVyfS54bHN4IikpCm1vbm9fc2lnJHN1bW1hcnlfZGYKCiMjIFByaW50IG91dCBhIHRhYmxlIG9mIHRoZSBjcG0gdmFsdWVzIGZvciBvdGhlciBleHBsb3JhdGlvbnMuCm1vbm9fY3BtIDwtIHNtKG5vcm1hbGl6ZV9leHB0KG1vbm8sIGNvbnZlcnQgPSAiY3BtIikpCndyaXR0ZW4gPC0gd3JpdGVfeGxzeChkYXRhID0gZXhwcnMobW9ub19jcG0pLAogICAgICAgICAgICAgICAgICAgICAgZXhjZWwgPSBnbHVlOjpnbHVlKCJleGNlbC9tb25vY3l0ZV9jcG1fYmVmb3JlX2JhdGNoLXZ7dmVyfS54bHN4IikpCm1vbm9fYmNwbSA8LSBzbShub3JtYWxpemVfZXhwdChtb25vLCBmaWx0ZXIgPSBUUlVFLCBjb252ZXJ0ID0gImNwbSIsIGJhdGNoID0gInN2YXNlcSIpKQp3cml0dGVuIDwtIHdyaXRlX3hsc3goZGF0YSA9IGV4cHJzKG1vbm9fYmNwbSksCiAgICAgICAgICAgICAgICAgICAgICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL21vbm9jeXRlX2NwbV9hZnRlcl9iYXRjaC12e3Zlcn0ueGxzeCIpKQpgYGAKCiMjIyMgV2l0aCBzdmEKCmBgYHtyIGRlX21vbm9fc3ZhLCBmaWcuc2hvdyA9ICJoaWRlIn0KbW9ub19kZV9zdmEgPC0gc20oYWxsX3BhaXJ3aXNlKG1vbm8sIG1vZGVsX2JhdGNoID0gInN2YXNlcSIsIGZpbHRlciA9IFRSVUUpKQptb25vX3RhYmxlc19zdmEgPC0gc20oY29tYmluZV9kZV90YWJsZXMoCiAgICBtb25vX2RlX3N2YSwga2VlcGVycyA9IGtlZXBlcnMsCiAgICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL21vbm9jeXRlX2NsaW5pY2FsX2FsbF90YWJsZXNfc3ZhLXZ7dmVyfS54bHN4IikpKQptb25vX3NpZ19zdmEgPC0gc20oZXh0cmFjdF9zaWduaWZpY2FudF9nZW5lcygKICAgIG1vbm9fdGFibGVzX3N2YSwKICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvbW9ub2N5dGVfY2xpbmljYWxfc2lnX3RhYmxlc19zdmEtdnt2ZXJ9Lnhsc3giKSwKICAgIGFjY29yZGluZ190byA9ICJkZXNlcSIpKQpgYGAKCiMjIyMgTW9ub2N5dGUgREUgcGxvdHMKCkZpcnN0IHByaW50IG91dCB0aGUgREUgcGxvdHMgd2l0aG91dCBhbmQgdGhlbiB3aXRoIHN2YSBlc3RpbWF0ZXMuCgpgYGB7ciBtb25vX2RlX3Bsb3RzfQojIyBERVNlcTIgTUEgcGxvdCBvZiBmYWlsdXJlIC8gY3VyZQptb25vX3RhYmxlc1tbInBsb3RzIl1dW1siZmFpbF92c19jdXJlIl1dW1siZGVzZXFfbWFfcGxvdHMiXV0kcGxvdAoKIyMgREVTZXEyIFZvbGNhbm8gcGxvdCBvZiBmYWlsdXJlIC8gY3VyZQptb25vX3RhYmxlc1tbInBsb3RzIl1dW1siZmFpbF92c19jdXJlIl1dW1siZGVzZXFfdm9sX3Bsb3RzIl1dJHBsb3QKCiMjIERFU2VxMiBNQSBwbG90IG9mIGZhaWx1cmUgLyBjdXJlIHdpdGggc3Zhc2VxCm1vbm9fdGFibGVzX3N2YVtbInBsb3RzIl1dW1siZmFpbF92c19jdXJlIl1dW1siZGVzZXFfbWFfcGxvdHMiXV0kcGxvdAoKIyMgREVTZXEyIFZvbGNhbm8gcGxvdCBvZiBmYWlsdXJlIC8gY3VyZSB3aXRoIHN2YXNlcQptb25vX3RhYmxlc19zdmFbWyJwbG90cyJdXVtbImZhaWxfdnNfY3VyZSJdXVtbImRlc2VxX3ZvbF9wbG90cyJdXSRwbG90CmBgYAoKIyMjIyBNb25vY3l0ZSBvbnRvbG9neSBzZWFyY2gKCmBgYHtyIG1vbm9fZ3Byb2ZpbGVyfQp1cHMgPC0gbW9ub19zaWdbWyJkZXNlcSJdXVtbInVwcyJdXVtbImZhaWxfdnNfY3VyZSJdXQpkb3ducyA8LSBtb25vX3NpZ1tbImRlc2VxIl1dW1siZG93bnMiXV1bWyJmYWlsX3ZzX2N1cmUiXV0KCm1vbm9fdXBfZ3AgPC0gc2ltcGxlX2dwcm9maWxlcihzaWdfZ2VuZXMgPSB1cHMpCm1vbm9fdXBfZ3BbWyJwdmFsdWVfcGxvdHMiXV1bWyJicHBfcGxvdF9vdmVyIl1dCm1vbm9fdXBfZ3BbWyJwdmFsdWVfcGxvdHMiXV1bWyJtZnBfcGxvdF9vdmVyIl1dCm1vbm9fdXBfZ3BbWyJwdmFsdWVfcGxvdHMiXV1bWyJyZWFjdG9tZV9wbG90X292ZXIiXV0KCm1vbm9fZG93bl9ncCA8LSBzaW1wbGVfZ3Byb2ZpbGVyKHNpZ19nZW5lcyA9IGRvd25zKQptb25vX2Rvd25fZ3BbWyJwdmFsdWVfcGxvdHMiXV1bWyJicHBfcGxvdF9vdmVyIl1dCm1vbm9fZG93bl9ncFtbInB2YWx1ZV9wbG90cyJdXVtbIm1mcF9wbG90X292ZXIiXV0KbW9ub19kb3duX2dwW1sicHZhbHVlX3Bsb3RzIl1dW1sicmVhY3RvbWVfcGxvdF9vdmVyIl1dCmBgYAoKIyMjIyBNb25vY3l0ZSBNU2lnREIgcXVlcnkKCmBgYHtyIG1zaWdfbW9ub19nb3NlcX0KYnJvYWRfYzcgPC0gR1NFQUJhc2U6OmdldEdtdCgicmVmZXJlbmNlL21zaWdkYi9jNy5hbGwudjcuMi5lbnRyZXouZ210IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uVHlwZSA9IEdTRUFCYXNlOjpCcm9hZENvbGxlY3Rpb24oY2F0ZWdvcnkgPSAiYzciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lSWRUeXBlID0gR1NFQUJhc2U6OkVudHJleklkZW50aWZpZXIoKSkKCm1vbm9fdXBfZ29zZXFfbXNpZyA8LSBnb3NlcV9tc2lnZGIoc2lnX2dlbmVzID0gdXBzLCBzaWduYXR1cmVzID0gYnJvYWRfYzcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmF0dXJlX2NhdGVnb3J5ID0gImM3IiwgbGVuZ3RoX2RiID0gaHNfbGVuZ3RoKQptb25vX3VwX2dvc2VxX21zaWdbWyJwdmFsdWVfcGxvdHMiXV1bWyJtZnBfcGxvdF9vdmVyIl1dCgptb25vX2Rvd25fZ29zZXFfbXNpZyA8LSBnb3NlcV9tc2lnZGIoc2lnX2dlbmVzID0gZG93bnMsIHNpZ25hdHVyZXMgPSBicm9hZF9jNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZV9jYXRlZ29yeSA9ICJjNyIsIGxlbmd0aF9kYiA9IGhzX2xlbmd0aCkKbW9ub19kb3duX2dvc2VxX21zaWdbWyJwdmFsdWVfcGxvdHMiXV1bWyJtZnBfcGxvdF9vdmVyIl1dCmBgYAoKIyMjIEV2YWx1YXRlIE5ldXRyb3BoaWwgc2FtcGxlcwoKYGBge3IgbmV1dHJvcGhpbHN9Cm5ldXQgPC0gc3Vic2V0X2V4cHQoaHNfdmFsaWQsIHN1YnNldCA9ICJ0eXBlb2ZjZWxscz09J05ldXRyb3BoaWxzJyIpICU+JQogIHNldF9leHB0X2NvbmRpdGlvbnMoZmFjdCA9ICJjbGluaWNhbG91dGNvbWUiKSAlPiUKICBzZXRfZXhwdF9iYXRjaGVzKGZhY3QgPSAiZG9ub3IiKSAlPiUKICBzZXRfZXhwdF9jb2xvcnMoY29sb3JzID0gY2hvc2VuX2NvbG9ycykKCnNhdmVfcmVzdWx0IDwtIHNhdmUobmV1dCwgZmlsZSA9ICJyZGEvbmV1dHJvcGhpbF9leHB0LnJkYSIpCm5ldXRfbm9ybSA8LSBzbShub3JtYWxpemVfZXhwdChuZXV0LCBjb252ZXJ0ID0gImNwbSIsIGZpbHRlciA9IFRSVUUsIHRyYW5zZm9ybSA9ICJsb2cyIikpCnBsdCA8LSBwbG90X3BjYShuZXV0X25vcm0sIHBsb3RfbGFiZWxzID0gRkFMU0UpJHBsb3QKcHAoZmlsZSA9IGdsdWUoImltYWdlcy9uZXV0X3BjYV9ub3JtYWxpemVkLXZ7dmVyfS5wZGYiKSwgaW1hZ2UgPSBwbHQpCgpuZXV0X25iIDwtIHNtKG5vcm1hbGl6ZV9leHB0KG5ldXQsIGNvbnZlcnQgPSAiY3BtIiwgZmlsdGVyID0gVFJVRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gPSAibG9nMiIsIGJhdGNoID0gInN2YXNlcSIpKQpwbHQgPC0gcGxvdF9wY2EobmV1dF9uYiwgcGxvdF9sYWJlbHMgPSBGQUxTRSkkcGxvdApwcChmaWxlID0gZ2x1ZSgiaW1hZ2VzL25ldXRfcGNhX25vcm1hbGl6ZWRfc3Zhc2VxLXZ7dmVyfS5wZGYiKSwgaW1hZ2UgPSBwbHQpCmBgYAoKIyMjIERFIG9mIE5ldHJvcGhpbCBzYW1wbGVzCgojIyMjIFdpdGhvdXQgc3ZhCgpgYGB7ciBuZXV0cm9waGlsX2RlLCBmaWcuc2hvdyA9ICJoaWRlIn0KbmV1dF9kZSA8LSBzbShhbGxfcGFpcndpc2UobmV1dCwgbW9kZWxfYmF0Y2ggPSBGQUxTRSwgZmlsdGVyID0gVFJVRSkpCm5ldXRfdGFibGVzIDwtIHNtKGNvbWJpbmVfZGVfdGFibGVzKAogICAgbmV1dF9kZSwga2VlcGVycyA9IGtlZXBlcnMsCiAgICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL25ldXRyb3BoaWxfY2xpbmljYWxfYWxsX3RhYmxlcy12e3Zlcn0ueGxzeCIpKSkKd3JpdHRlbiA8LSB3cml0ZV94bHN4KGRhdGEgPSBuZXV0X3RhYmxlc1tbImRhdGEiXV1bWzFdXSwKICAgICAgICAgICAgICAgICAgICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvbmV1dHJvcGhpbF9jbGluaWNhbF90YWJsZS12e3Zlcn0ueGxzeCIpKQpuZXV0X3NpZyA8LSBzbShleHRyYWN0X3NpZ25pZmljYW50X2dlbmVzKG5ldXRfdGFibGVzLCBhY2NvcmRpbmdfdG8gPSAiZGVzZXEiKSkKd3JpdHRlbiA8LSB3cml0ZV94bHN4KGRhdGEgPSBuZXV0X3NpZ1tbImRlc2VxIl1dW1sidXBzIl1dW1sxXV0sCiAgICAgICAgICAgICAgICAgICAgICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL25ldXRyb3BoaWxfY2xpbmljYWxfc2lndXAtdnt2ZXJ9Lnhsc3giKSkKd3JpdHRlbiA8LSB3cml0ZV94bHN4KGRhdGEgPSBuZXV0X3NpZ1tbImRlc2VxIl1dW1siZG93bnMiXV1bWzFdXSwKICAgICAgICAgICAgICAgICAgICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvbmV1dHJvcGhpbF9jbGluaWNhbF9zaWdkb3duLXZ7dmVyfS54bHN4IikpCgpuZXV0X3BjdF9zaWcgPC0gc20oZXh0cmFjdF9zaWduaWZpY2FudF9nZW5lcyhuZXV0X3RhYmxlcywgbiA9IDIwMCwgbGZjID0gTlVMTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCA9IE5VTEwsIGFjY29yZGluZ190byA9ICJkZXNlcSIpKQp3cml0dGVuIDwtIHdyaXRlX3hsc3goZGF0YSA9IG5ldXRfc2lnW1siZGVzZXEiXV1bWyJ1cHMiXV1bWzFdXSwKICAgICAgICAgICAgICAgICAgICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvbmV1dHJvcGhpbF9jbGluaWNhbF9zaWd1cF9wY3Qtdnt2ZXJ9Lnhsc3giKSkKd3JpdHRlbiA8LSB3cml0ZV94bHN4KGRhdGEgPSBuZXV0X3NpZ1tbImRlc2VxIl1dW1siZG93bnMiXV1bWzFdXSwKICAgICAgICAgICAgICAgICAgICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvbmV1dHJvcGhpbF9jbGluaWNhbF9zaWdkb3duX3BjdC12e3Zlcn0ueGxzeCIpKQpuZXV0X2NwbSA8LSBzbShub3JtYWxpemVfZXhwdChuZXV0LCBjb252ZXJ0ID0gImNwbSIpKQp3cml0dGVuIDwtIHdyaXRlX3hsc3goZGF0YSA9IGV4cHJzKG5ldXRfY3BtKSwKICAgICAgICAgICAgICAgICAgICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvbmV1dHJvcGhpbF9jcG1fYmVmb3JlX2JhdGNoLXZ7dmVyfS54bHN4IikpCm5ldXRfYmNwbSA8LSBzbShub3JtYWxpemVfZXhwdChuZXV0LCBmaWx0ZXIgPSBUUlVFLCBiYXRjaCA9ICJzdmFzZXEiLCBjb252ZXJ0ID0gImNwbSIpKQp3cml0dGVuIDwtIHdyaXRlX3hsc3goZGF0YSA9IGV4cHJzKG5ldXRfYmNwbSksCiAgICAgICAgICAgICAgICAgICAgICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL25ldXRyb3BoaWxfY3BtX2FmdGVyX2JhdGNoLXZ7dmVyfS54bHN4IikpCmBgYAoKIyMjIyBXaXRoIHN2YQoKYGBge3IgZGVfbmV1dF9zdmEsIGZpZy5zaG93ID0gImhpZGUifQpuZXV0X2RlX3N2YSA8LSBzbShhbGxfcGFpcndpc2UobmV1dCwgbW9kZWxfYmF0Y2ggPSAic3Zhc2VxIiwgZmlsdGVyID0gVFJVRSkpCm5ldXRfdGFibGVzX3N2YSA8LSBzbShjb21iaW5lX2RlX3RhYmxlcygKICAgIG5ldXRfZGVfc3ZhLCBrZWVwZXJzID0ga2VlcGVycywKICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvbmV1dHJvcGhpbF9jbGluaWNhbF9hbGxfdGFibGVzX3N2YS12e3Zlcn0ueGxzeCIpKSkKbmV1dF9zaWdfc3ZhIDwtIHNtKGV4dHJhY3Rfc2lnbmlmaWNhbnRfZ2VuZXMoCiAgICBuZXV0X3RhYmxlc19zdmEsCiAgICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL25ldXRyb3BoaWxfY2xpbmljYWxfc2lnX3RhYmxlc19zdmEtdnt2ZXJ9Lnhsc3giKSwKICAgIGFjY29yZGluZ190byA9ICJkZXNlcSIpKQpgYGAKCiMjIyMgTmV1dHJvcGhpbCBERSBwbG90cwoKYGBge3IgbmV1dF9kZV9wbG90c30KIyMgREVTZXEyIE1BIHBsb3Qgb2YgZmFpbHVyZSAvIGN1cmUKbmV1dF90YWJsZXNbWyJwbG90cyJdXVtbImZhaWxfdnNfY3VyZSJdXVtbImRlc2VxX21hX3Bsb3RzIl1dJHBsb3QKCiMjIERFU2VxMiBWb2xjYW5vIHBsb3Qgb2YgZmFpbHVyZSAvIGN1cmUKbmV1dF90YWJsZXNbWyJwbG90cyJdXVtbImZhaWxfdnNfY3VyZSJdXVtbImRlc2VxX3ZvbF9wbG90cyJdXSRwbG90CgojIyBERVNlcTIgTUEgcGxvdCBvZiBmYWlsdXJlIC8gY3VyZSB3aXRoIHN2YQpuZXV0X3RhYmxlc19zdmFbWyJwbG90cyJdXVtbImZhaWxfdnNfY3VyZSJdXVtbImRlc2VxX21hX3Bsb3RzIl1dJHBsb3QKCiMjIERFU2VxMiBWb2xjYW5vIHBsb3Qgb2YgZmFpbHVyZSAvIGN1cmUgd2l0aCBzdmEKbmV1dF90YWJsZXNfc3ZhW1sicGxvdHMiXV1bWyJmYWlsX3ZzX2N1cmUiXV1bWyJkZXNlcV92b2xfcGxvdHMiXV0kcGxvdApgYGAKCiMjIyMgTmV1dHJvcGhpbCBvbnRvbG9neSBzZWFyY2gKCmBgYHtyIG5ldXRfZ3B9CnVwcyA8LSBuZXV0X3NpZ1tbImRlc2VxIl1dW1sidXBzIl1dW1siZmFpbF92c19jdXJlIl1dCmRvd25zIDwtIG5ldXRfc2lnW1siZGVzZXEiXV1bWyJkb3ducyJdXVtbImZhaWxfdnNfY3VyZSJdXQoKbmV1dF91cF9ncCA8LSBzaW1wbGVfZ3Byb2ZpbGVyKHNpZ19nZW5lcyA9IHVwcykKbmV1dF91cF9ncFtbInB2YWx1ZV9wbG90cyJdXVtbImJwcF9wbG90X292ZXIiXV0KbmV1dF91cF9ncFtbInB2YWx1ZV9wbG90cyJdXVtbIm1mcF9wbG90X292ZXIiXV0KbmV1dF91cF9ncFtbInB2YWx1ZV9wbG90cyJdXVtbInJlYWN0b21lX3Bsb3Rfb3ZlciJdXQoKbmV1dF9kb3duX2dwIDwtIHNpbXBsZV9ncHJvZmlsZXIoZG93bnMpCm5ldXRfZG93bl9ncFtbInB2YWx1ZV9wbG90cyJdXVtbImJwcF9wbG90X292ZXIiXV0KbmV1dF9kb3duX2dwW1sicHZhbHVlX3Bsb3RzIl1dW1sibWZwX3Bsb3Rfb3ZlciJdXQpuZXV0X2Rvd25fZ3BbWyJwdmFsdWVfcGxvdHMiXV1bWyJyZWFjdG9tZV9wbG90X292ZXIiXV0KYGBgCgojIyMjIE5ldXRyb3BoaWwgR1NWQSBxdWVyeQoKYGBge3IgbXNpZ19uZXV0X2dvc2VxfQpuZXV0X3VwX2dvc2VxX21zaWcgPC0gZ29zZXFfbXNpZ2RiKHNpZ19nZW5lcyA9IHVwcywgc2lnbmF0dXJlcyA9IGJyb2FkX2M3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZV9jYXRlZ29yeSA9ICJjNyIsIGxlbmd0aF9kYiA9IGhzX2xlbmd0aCkKbmV1dF91cF9nb3NlcV9tc2lnW1sicHZhbHVlX3Bsb3RzIl1dW1sibWZwX3Bsb3Rfb3ZlciJdXQoKbmV1dF9kb3duX2dvc2VxX21zaWcgPC0gZ29zZXFfbXNpZ2RiKHNpZ19nZW5lcyA9IGRvd25zLCBzaWduYXR1cmVzID0gYnJvYWRfYzcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmVfY2F0ZWdvcnkgPSAiYzciLCBsZW5ndGhfZGIgPSBoc19sZW5ndGgpCm5ldXRfZG93bl9nb3NlcV9tc2lnW1sicHZhbHVlX3Bsb3RzIl1dW1sibWZwX3Bsb3Rfb3ZlciJdXQpgYGAKCiMjIEVvc2lub3BoaWxzCgojIyMgRXZhbHVhdGUgRW9zaW5vcGhpbCBzYW1wbGVzCgpgYGB7ciBlb3Npbm9waGlsc30KZW8gPC0gc3Vic2V0X2V4cHQoaHNfdmFsaWQsIHN1YnNldCA9ICJ0eXBlb2ZjZWxscz09J0Vvc2lub3BoaWxzJyIpICU+JQogIHNldF9leHB0X2NvbmRpdGlvbnMoZmFjdCA9ICJjbGluaWNhbG91dGNvbWUiKSAlPiUKICBzZXRfZXhwdF9iYXRjaGVzKGZhY3QgPSAiZG9ub3IiKSAlPiUKICBzZXRfZXhwdF9jb2xvcnMoY29sb3JzID0gY2hvc2VuX2NvbG9ycykKCnNhdmVfcmVzdWx0IDwtIHNhdmUoZW8sIGZpbGUgPSAicmRhL2Vvc2lub3BoaWxfZXhwdC5yZGEiKQplb19ub3JtIDwtIHNtKG5vcm1hbGl6ZV9leHB0KGVvLCBjb252ZXJ0ID0gImNwbSIsIHRyYW5zZm9ybSA9ICJsb2cyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtID0gInF1YW50IiwgZmlsdGVyID0gVFJVRSkpCnBsdCA8LSBwbG90X3BjYShlb19ub3JtLCBwbG90X2xhYmVscyA9IEZBTFNFKSRwbG90CnBwKGZpbGUgPSBnbHVlKCJpbWFnZXMvZW9fcGNhX25vcm1hbGl6ZWQtdnt2ZXJ9LnBkZiIpLCBpbWFnZSA9IHBsdCkKCmVvX25iIDwtIHNtKG5vcm1hbGl6ZV9leHB0KGVvLCBjb252ZXJ0ID0gImNwbSIsIHRyYW5zZm9ybSA9ICJsb2cyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyID0gVFJVRSwgYmF0Y2ggPSAic3Zhc2VxIikpCnBsb3RfcGNhKGVvX25iKSRwbG90CmBgYAoKIyMjIERFIG9mIEVvc2lub3BoaWwgc2FtcGxlcwoKIyMjIyBXaXRob3V0aCBzdmEKCmBgYHtyIGVvc2lub3BoaWxfZGUsIGZpZy5zaG93ID0gImhpZGUifQplb19kZSA8LSBzbShhbGxfcGFpcndpc2UoZW8sIG1vZGVsX2JhdGNoID0gRkFMU0UsIGZpbHRlciA9IFRSVUUpKQplb190YWJsZXMgPC0gc20oY29tYmluZV9kZV90YWJsZXMoCiAgICBlb19kZSwga2VlcGVycyA9IGtlZXBlcnMsCiAgICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL2Vvc2lub3BoaWxfY2xpbmljYWxfYWxsX3RhYmxlcy12e3Zlcn0ueGxzeCIpKSkKd3JpdHRlbiA8LSB3cml0ZV94bHN4KGRhdGEgPSBlb190YWJsZXNbWyJkYXRhIl1dW1sxXV0sCiAgICAgICAgICAgICAgICAgICAgICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL2Vvc2lub3BoaWxfY2xpbmljYWxfdGFibGUtdnt2ZXJ9Lnhsc3giKSkKZW9fc2lnIDwtIHNtKGV4dHJhY3Rfc2lnbmlmaWNhbnRfZ2VuZXMoZW9fdGFibGVzLCBhY2NvcmRpbmdfdG8gPSAiZGVzZXEiKSkKd3JpdHRlbiA8LSB3cml0ZV94bHN4KGRhdGEgPSBlb19zaWdbWyJkZXNlcSJdXVtbInVwcyJdXVtbMV1dLAogICAgICAgICAgICAgICAgICAgICAgZXhjZWwgPSBnbHVlOjpnbHVlKCJleGNlbC9lb3Npbm9waGlsX2NsaW5pY2FsX3NpZ3VwLXZ7dmVyfS54bHN4IikpCndyaXR0ZW4gPC0gd3JpdGVfeGxzeChkYXRhID0gZW9fc2lnW1siZGVzZXEiXV1bWyJkb3ducyJdXVtbMV1dLAogICAgICAgICAgICAgICAgICAgICAgZXhjZWwgPSBnbHVlOjpnbHVlKCJleGNlbC9lb3Npbm9waGlsX2NsaW5pY2FsX3NpZ2Rvd24tdnt2ZXJ9Lnhsc3giKSkKCmVvX3BjdF9zaWcgPC0gc20oZXh0cmFjdF9zaWduaWZpY2FudF9nZW5lcyhlb190YWJsZXMsIG4gPSAyMDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZmMgPSBOVUxMLCBwID0gTlVMTCwgYWNjb3JkaW5nX3RvID0gImRlc2VxIikpCndyaXR0ZW4gPC0gd3JpdGVfeGxzeChkYXRhID0gZW9fcGN0X3NpZ1tbImRlc2VxIl1dW1sidXBzIl1dW1sxXV0sCiAgICAgICAgICAgICAgICAgICAgICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL2Vvc2lub3BoaWxfY2xpbmljYWxfc2lndXBfcGN0LXZ7dmVyfS54bHN4IikpCndyaXR0ZW4gPC0gd3JpdGVfeGxzeChkYXRhID0gZW9fcGN0X3NpZ1tbImRlc2VxIl1dW1siZG93bnMiXV1bWzFdXSwKICAgICAgICAgICAgICAgICAgICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvZW9zaW5vcGhpbF9jbGluaWNhbF9zaWdkb3duX3BjdC12e3Zlcn0ueGxzeCIpKQoKZW9fY3BtIDwtIHNtKG5vcm1hbGl6ZV9leHB0KGVvLCBjb252ZXJ0ID0gImNwbSIpKQp3cml0dGVuIDwtIHdyaXRlX3hsc3goZGF0YSA9IGV4cHJzKGVvX2NwbSksCiAgICAgICAgICAgICAgICAgICAgICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL2Vvc2lub3BoaWxfY3BtX2JlZm9yZV9iYXRjaC12e3Zlcn0ueGxzeCIpKQplb19iY3BtIDwtIHNtKG5vcm1hbGl6ZV9leHB0KGVvLCBmaWx0ZXIgPSBUUlVFLCBiYXRjaCA9ICJzdmFzZXEiLCBjb252ZXJ0ID0gImNwbSIpKQp3cml0dGVuIDwtIHdyaXRlX3hsc3goZGF0YSA9IGV4cHJzKGVvX2JjcG0pLAogICAgICAgICAgICAgICAgICAgICAgZXhjZWwgPSBnbHVlOjpnbHVlKCJleGNlbC9lb3Npbm9waGlsX2NwbV9hZnRlcl9iYXRjaC12e3Zlcn0ueGxzeCIpKQpgYGAKCiMjIyMgV2l0aCBzdmEKCmBgYHtyIGRlX2VvX3N2YSwgZmlnLnNob3cgPSAiaGlkZSJ9CmVvX2RlX3N2YSA8LSBzbShhbGxfcGFpcndpc2UoZW8sIG1vZGVsX2JhdGNoID0gInN2YXNlcSIsIGZpbHRlciA9IFRSVUUpKQplb190YWJsZXNfc3ZhIDwtIHNtKGNvbWJpbmVfZGVfdGFibGVzKAogICAgZW9fZGVfc3ZhLCBrZWVwZXJzID0ga2VlcGVycywKICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvZW9zaW5vcGhpbF9jbGluaWNhbF9hbGxfdGFibGVzX3N2YS12e3Zlcn0ueGxzeCIpKSkKZW9fc2lnX3N2YSA8LSBzbShleHRyYWN0X3NpZ25pZmljYW50X2dlbmVzKAogICAgZW9fdGFibGVzX3N2YSwKICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvZW9zaW5vcGhpbF9jbGluaWNhbF9zaWdfdGFibGVzX3N2YS12e3Zlcn0ueGxzeCIpLAogICAgYWNjb3JkaW5nX3RvID0gImRlc2VxIikpCmBgYAoKIyMjIyBFb3Npbm9waGlsIERFIHBsb3RzCgpgYGB7ciBlb19kZV9wbG90c30KIyMgREVTZXEyIE1BIHBsb3Qgb2YgZmFpbHVyZSAvIGN1cmUKZW9fdGFibGVzW1sicGxvdHMiXV1bWyJmYWlsX3ZzX2N1cmUiXV1bWyJkZXNlcV9tYV9wbG90cyJdXSRwbG90CgojIyBERVNlcTIgVm9sY2FubyBwbG90IG9mIGZhaWx1cmUgLyBjdXJlCmVvX3RhYmxlc1tbInBsb3RzIl1dW1siZmFpbF92c19jdXJlIl1dW1siZGVzZXFfdm9sX3Bsb3RzIl1dJHBsb3QKCiMjIERFU2VxMiBNQSBwbG90IG9mIGZhaWx1cmUgLyBjdXJlIHdpdGggc3ZhCmVvX3RhYmxlc19zdmFbWyJwbG90cyJdXVtbImZhaWxfdnNfY3VyZSJdXVtbImRlc2VxX21hX3Bsb3RzIl1dJHBsb3QKCiMjIERFU2VxMiBWb2xjYW5vIHBsb3Qgb2YgZmFpbHVyZSAvIGN1cmUgd2l0aCBzdmEKZW9fdGFibGVzX3N2YVtbInBsb3RzIl1dW1siZmFpbF92c19jdXJlIl1dW1siZGVzZXFfdm9sX3Bsb3RzIl1dJHBsb3QKYGBgCgojIyMjIEVvc2lub3BoaWwgb250b2xvZ3kgc2VhcmNoCgpgYGB7ciBlb19ncHJvZmlsZXJ9CnVwcyA8LSBlb19zaWdbWyJkZXNlcSJdXVtbInVwcyJdXVtbImZhaWxfdnNfY3VyZSJdXQpkb3ducyA8LSBlb19zaWdbWyJkZXNlcSJdXVtbImRvd25zIl1dW1siZmFpbF92c19jdXJlIl1dCgplb191cF9ncCA8LSBzaW1wbGVfZ3Byb2ZpbGVyKHNpZ19nZW5lcyA9IHVwcykKZW9fdXBfZ3BbWyJwdmFsdWVfcGxvdHMiXV1bWyJicHBfcGxvdF9vdmVyIl1dCmVvX3VwX2dwW1sicHZhbHVlX3Bsb3RzIl1dW1sibWZwX3Bsb3Rfb3ZlciJdXQplb191cF9ncFtbInB2YWx1ZV9wbG90cyJdXVtbInJlYWN0b21lX3Bsb3Rfb3ZlciJdXQoKZW9fZG93bl9ncCA8LSBzaW1wbGVfZ3Byb2ZpbGVyKGRvd25zKQplb19kb3duX2dwW1sicHZhbHVlX3Bsb3RzIl1dW1siYnBwX3Bsb3Rfb3ZlciJdXQplb19kb3duX2dwW1sicHZhbHVlX3Bsb3RzIl1dW1sibWZwX3Bsb3Rfb3ZlciJdXQplb19kb3duX2dwW1sicHZhbHVlX3Bsb3RzIl1dW1sicmVhY3RvbWVfcGxvdF9vdmVyIl1dCmBgYAoKIyMjIyBFb3Npbm9waGlsIE1TaWdEQiBxdWVyeQoKYGBge3IgbXNpZ19lb19nb3NlcX0KZW9fdXBfZ29zZXFfbXNpZyA8LSBnb3NlcV9tc2lnZGIoc2lnX2dlbmVzID0gdXBzLCBzaWduYXR1cmVzID0gYnJvYWRfYzcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZV9jYXRlZ29yeSA9ICJjNyIsIGxlbmd0aF9kYiA9IGhzX2xlbmd0aCkKZW9fdXBfZ29zZXFfbXNpZ1tbInB2YWx1ZV9wbG90cyJdXVtbIm1mcF9wbG90X292ZXIiXV0KCmVvX2Rvd25fZ29zZXFfbXNpZyA8LSBnb3NlcV9tc2lnZGIoc2lnX2dlbmVzID0gZG93bnMsIHNpZ25hdHVyZXMgPSBicm9hZF9jNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmVfY2F0ZWdvcnkgPSAiYzciLCBsZW5ndGhfZGIgPSBoc19sZW5ndGgpCmVvX2Rvd25fZ29zZXFfbXNpZ1tbInB2YWx1ZV9wbG90cyJdXVtbIm1mcF9wbG90X292ZXIiXV0KYGBgCgojIyBCaW9wc2llcwoKIyMjIEV2YWx1YXRlIEJpb3BzeSBzYW1wbGVzCgpgYGB7ciBiaW9wc2llc30KYmlvcCA8LSBzdWJzZXRfZXhwdChoc192YWxpZCwgc3Vic2V0ID0gInR5cGVvZmNlbGxzPT0nQmlvcHN5JyIpICU+JQogIHNldF9leHB0X2NvbmRpdGlvbnMoZmFjdCA9ICJjbGluaWNhbG91dGNvbWUiKSAlPiUKICBzZXRfZXhwdF9iYXRjaGVzKGZhY3QgPSAiZG9ub3IiKSAlPiUKICBzZXRfZXhwdF9jb2xvcnMoY29sb3JzID0gY2hvc2VuX2NvbG9ycykKCnNhdmVfcmVzdWx0IDwtIHNhdmUoYmlvcCwgZmlsZSA9ICJyZGEvYmlvcHN5X2V4cHQucmRhIikKYmlvcF9ub3JtIDwtIG5vcm1hbGl6ZV9leHB0KGJpb3AsIGZpbHRlciA9IFRSVUUsIGNvbnZlcnQgPSAiY3BtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSA9ICJsb2cyIiwgbm9ybSA9ICJxdWFudCIpCnBsdCA8LSBwbG90X3BjYShiaW9wX25vcm0sIHBsb3RfbGFiZWxzID0gRkFMU0UpJHBsb3QKcHAoZmlsZSA9IGdsdWUoImltYWdlcy9iaW9wX3BjYV9ub3JtYWxpemVkLXZ7dmVyfS5wZGYiKSwgaW1hZ2UgPSBwbHQpCgpiaW9wX25iIDwtIHNtKG5vcm1hbGl6ZV9leHB0KGJpb3AsIGNvbnZlcnQgPSAiY3BtIiwgZmlsdGVyID0gVFJVRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gPSAibG9nMiIsIGJhdGNoID0gInN2YXNlcSIpKQpwbHQgPC0gcGxvdF9wY2EoYmlvcF9uYiwgcGxvdF9sYWJlbHMgPSBGQUxTRSkkcGxvdApwcChmaWxlID0gZ2x1ZSgiaW1hZ2VzL2Jpb3BfcGNhX25vcm1hbGl6ZWRfc3Zhc2VxLXZ7dmVyfS5wZGYiKSwgaW1hZ2UgPSBwbHQpCmBgYAoKIyMjIERFIG9mIEJpb3BzeSBzYW1wbGVzCgojIyMjIFdpdGhvdXQgc3ZhCgpgYGB7ciBkZV9iaW9wc3ksIGZpZy5zaG93ID0gImhpZGUifQpiaW9wX2RlIDwtIHNtKGFsbF9wYWlyd2lzZShiaW9wLCBtb2RlbF9iYXRjaCA9IEZBTFNFLCBmaWx0ZXIgPSBUUlVFKSkKYmlvcF90YWJsZXMgPC0gY29tYmluZV9kZV90YWJsZXMoYmlvcF9kZSwga2VlcGVycyA9IGtlZXBlcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvYmlvcHN5X2NsaW5pY2FsX2FsbF90YWJsZXMtdnt2ZXJ9Lnhsc3giKSkKd3JpdHRlbiA8LSB3cml0ZV94bHN4KGRhdGEgPSBiaW9wX3RhYmxlc1tbImRhdGEiXV1bWzFdXSwKICAgICAgICAgICAgICAgICAgICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvYmlvcHN5X2NsaW5pY2FsX3RhYmxlLXZ7dmVyfS54bHN4IikpCmJpb3Bfc2lnIDwtIGV4dHJhY3Rfc2lnbmlmaWNhbnRfZ2VuZXMoYmlvcF90YWJsZXMsIGFjY29yZGluZ190byA9ICJkZXNlcSIpCiMjd3JpdHRlbiA8LSB3cml0ZV94bHN4KGRhdGEgPSBiaW9wX3NpZ1tbImRlc2VxIl1dW1sidXBzIl1dW1sxXV0sCiMjICAgICAgICAgICAgICAgICAgICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvYmlvcHN5X2NsaW5pY2FsX3NpZ3VwLXZ7dmVyfS54bHN4IikpCndyaXR0ZW4gPC0gd3JpdGVfeGxzeChkYXRhID0gYmlvcF9zaWdbWyJkZXNlcSJdXVtbImRvd25zIl1dW1sxXV0sCiAgICAgICAgICAgICAgICAgICAgICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL2Jpb3BzeV9jbGluaWNhbF9zaWdkb3duLXZ7dmVyfS54bHN4IikpCmJpb3BfcGN0X3NpZyA8LSBleHRyYWN0X3NpZ25pZmljYW50X2dlbmVzKGJpb3BfdGFibGVzLCBuID0gMjAwLCBsZmMgPSBOVUxMLCBwID0gTlVMTCwgYWNjb3JkaW5nX3RvID0gImRlc2VxIikKd3JpdHRlbiA8LSB3cml0ZV94bHN4KGRhdGEgPSBiaW9wX3BjdF9zaWdbWyJkZXNlcSJdXVtbInVwcyJdXVtbMV1dLAogICAgICAgICAgICAgICAgICAgICAgZXhjZWwgPSBnbHVlOjpnbHVlKCJleGNlbC9iaW9wc3lfY2xpbmljYWxfc2lndXBfcGN0LXZ7dmVyfS54bHN4IikpCndyaXR0ZW4gPC0gd3JpdGVfeGxzeChkYXRhID0gYmlvcF9wY3Rfc2lnW1siZGVzZXEiXV1bWyJkb3ducyJdXVtbMV1dLAogICAgICAgICAgICAgICAgICAgICAgZXhjZWwgPSBnbHVlOjpnbHVlKCJleGNlbC9iaW9wc3lfY2xpbmljYWxfc2lnZG93bl9wY3Qtdnt2ZXJ9Lnhsc3giKSkKCmJpb3BfY3BtIDwtIHNtKG5vcm1hbGl6ZV9leHB0KGJpb3AsIGNvbnZlcnQgPSAiY3BtIikpCndyaXR0ZW4gPC0gd3JpdGVfeGxzeChkYXRhID0gZXhwcnMoYmlvcF9jcG0pLAogICAgICAgICAgICAgICAgICAgICAgZXhjZWwgPSBnbHVlOjpnbHVlKCJleGNlbC9iaW9wc3lfY3BtX2JlZm9yZV9iYXRjaC12e3Zlcn0ueGxzeCIpKQpiaW9wX2JjcG0gPC0gc20obm9ybWFsaXplX2V4cHQoYmlvcCwgZmlsdGVyID0gVFJVRSwgYmF0Y2ggPSAic3Zhc2VxIiwgY29udmVydCA9ICJjcG0iKSkKd3JpdHRlbiA8LSB3cml0ZV94bHN4KGRhdGEgPSBleHBycyhiaW9wX2JjcG0pLAogICAgICAgICAgICAgICAgICAgICAgZXhjZWwgPSBnbHVlOjpnbHVlKCJleGNlbC9iaW9wc3lfY3BtX2FmdGVyX2JhdGNoLXZ7dmVyfS54bHN4IikpCmBgYAoKIyMjIyB3aXRoIHN2YQoKYGBge3IgZGVfYmlvcHN5X3N2YSwgZmlnLnNob3cgPSAiaGlkZSJ9CmJpb3BfZGVfc3ZhIDwtIHNtKGFsbF9wYWlyd2lzZShiaW9wLCBtb2RlbF9iYXRjaCA9ICJzdmFzZXEiLCBmaWx0ZXIgPSBUUlVFKSkKYmlvcF90YWJsZXNfc3ZhIDwtIHNtKGNvbWJpbmVfZGVfdGFibGVzKAogICAgYmlvcF9kZV9zdmEsIGtlZXBlcnMgPSBrZWVwZXJzLAogICAgZXhjZWwgPSBnbHVlOjpnbHVlKCJleGNlbC9iaW9wc3lfY2xpbmljYWxfYWxsX3RhYmxlc19zdmEtdnt2ZXJ9Lnhsc3giKSkpCmJpb3Bfc2lnX3N2YSA8LSBzbShleHRyYWN0X3NpZ25pZmljYW50X2dlbmVzKAogICAgYmlvcF90YWJsZXNfc3ZhLAogICAgZXhjZWwgPSBnbHVlOjpnbHVlKCJleGNlbC9iaW9wc3lfY2xpbmljYWxfc2lnX3RhYmxlc19zdmEtdnt2ZXJ9Lnhsc3giKSwKICAgIGFjY29yZGluZ190byA9ICJkZXNlcSIpKQpgYGAKCiMjIyMgQmlvcHN5IERFIHBsb3RzCgpgYGB7ciBiaW9wX2RlX3Bsb3RzfQojIyBERVNlcTIgTUEgcGxvdCBvZiBmYWlsdXJlIC8gY3VyZQpiaW9wc3lfdGFibGVzW1sicGxvdHMiXV1bWyJmYWlsX3ZzX2N1cmUiXV1bWyJkZXNlcV9tYV9wbG90cyJdXSRwbG90CgojIyBERVNlcTIgVm9sY2FubyBwbG90IG9mIGZhaWx1cmUgLyBjdXJlCmJpb3BzeV90YWJsZXNbWyJwbG90cyJdXVtbImZhaWxfdnNfY3VyZSJdXVtbImRlc2VxX3ZvbF9wbG90cyJdXSRwbG90CgojIyBERVNlcTIgTUEgcGxvdCBvZiBmYWlsdXJlIC8gY3VyZQpiaW9wc3lfdGFibGVzX3N2YVtbInBsb3RzIl1dW1siZmFpbF92c19jdXJlIl1dW1siZGVzZXFfbWFfcGxvdHMiXV0kcGxvdAoKIyMgREVTZXEyIFZvbGNhbm8gcGxvdCBvZiBmYWlsdXJlIC8gY3VyZQpiaW9wc3lfdGFibGVzX3N2YVtbInBsb3RzIl1dW1siZmFpbF92c19jdXJlIl1dW1siZGVzZXFfdm9sX3Bsb3RzIl1dJHBsb3QKYGBgCgojIyBTZXBhcmF0ZSBtYWNyb3BoYWdlIGV4cGVyaW1lbnQKClRoZXNlIHNhbXBsZXMgYXJlIHJhdGhlciBkaWZmZXJlbnQgZnJvbSBhbGwgb2YgdGhlIG90aGVycy4gIFRoZSBmb2xsb3dpbmcKc2VjdGlvbiBpcyB0aGVyZWZvcmUgd3JpdHRlbiBwcmltYXJpbHkgaW4gcmVzcG9uc2UgdG8gYSBzZXBhcmF0ZSBzZXQgb2YgZW1haWxzCmZyb20gT2xnYSBhbmQgTWFyaWEgQWRlbGFpZGE7IGhlcmUgaXMgYSBzbmlwcGV0OgoKIERlYXIgYWxsLCBhYm91dCB0aGUgc2FtcGxlcyBjb3JyZXNwb25kaW5nIHRvIGluZmVjdGVkIG1hY3JvcGhhZ2VzIHdpdGggdGhyZWUKIHNlbnNpdGl2ZSAoMi4yKSBhbmQgdGhyZWUgcmVzaXN0YW50ICgyLjMpIGNsaW5pY2FsIHN0cmFpbnMgb2YgTC4gKFYuKQogcGFuYW1lbnNpcywgSSBzZW5kIHlvdSB0aGUgcmVzdWx0cyBvZiBwYXJhc2l0ZSBidXJkZW4gYnkgZGV0ZWN0aW9uIG9mIDdTTFJOQS4gSQogdGhpbmsgdGhlc2UgcmVzdWx0cyBhcmUgaW50ZXJlc3RpbmcsIGJ1dCB0aGUgc2FtcGxlIHNpemUgaXMgdmVyeSBzbWFsbC4KRG9jdG9yIE5hamliIG9yIFRyZXkgY291bGQgeW91IHBsZWFzZSBzZW5kIG1lIHRoZSBxdWFsaXR5IGRhdGEgYW5kIFBDQSBhbmFseXNpcwogb2YgdGhlc2Ugc2FtcGxlcz8KCmFuZAoKIEhpIERvY3RvciwgdGhhbmsgeW91LiAgVGhlc2Ugc2FtcGxlcyBjb3JyZXNwb25kaW5nIHRvIHByaW1hcnkgbWFjcm9waGFnZXMKIGluZmVjdGVkIHdpdGggY2xpbmljYWwgc3RyYWlucyAyLjIgKG4gPSAzKSBhbmQgMi4zIChuID0gMykuIFRoZXNlIGluZm9ybWF0aW9uIGlzCiBpbiB0aGUgZmlsZTogVE1SQyBwcm9qZWN0IDM6IGV4Y2VsIEhvc3QgVE1SQzMgdjEuMSwgcm93cyAxMzcgdG8gMTUwLgoKVGh1cyBJIGFkZGVkIDMgY29sdW1ucyB0byB0aGUgZW5kIG9mIHRoZSBzYW1wbGUgc2hlZXQgd2hpY2ggc2VlayB0bwppbmNsdWRlIHRoaXMgaW5mb3JtYXRpb24uICBUaGUgZmlyc3QgaXMgJ2RydWcnIGFuZCBlbmNvZGVzIGJvdGggdGhlIGluZmVjdGlvbgpzdGF0ZSAobm8gZm9yIHRoZSB0d28gY29udHJvbHMgYW5kIHllcyBmb3IgZXZlcnl0aGluZyBlbHNlKSwgdGhlIHNlY29uZCBpcwp6eW1vZGVtZSB3aGljaCBJIHRvb2sgZnJvbSB0aGUgdG1yYzIgc2FtcGxlIHNoZWV0LCB0aGUgbGFzdCBpcyBkcnVnLCB3aGljaCBpcwplaXRoZXIgbm8gb3Igc2IuCgpgYGB7ciBtYWNyb3BoYWdlX3p5bW9kZW1lX2V4cGVyaW1lbnR9Cm1hY3IgPC0gc3Vic2V0X2V4cHQoaHNfdmFsaWQsIHN1YnNldCA9ICJ0eXBlb2ZjZWxscz09J01hY3JvcGhhZ2VzJyIpCm1hY3IgPC0gc2V0X2V4cHRfY29uZGl0aW9ucyhtYWNyLCBmYWN0ID0gInp5bW9kZW1lIikKbWFjciA8LSBzZXRfZXhwdF9iYXRjaGVzKG1hY3IsIGZhY3QgPSAibWFjcmRydWciKQoKbWFjcl9ub3JtIDwtIG5vcm1hbGl6ZV9leHB0KG1hY3IsIG5vcm0gPSAicXVhbnQiLCBjb252ZXJ0ID0gImNwbSIsIGZpbHRlciA9IFRSVUUpCm1hY3Jfbm9ybSA8LSBub3JtYWxpemVfZXhwdChtYWNyX25vcm0sIHRyYW5zZm9ybSA9ICJsb2cyIikKcGx0IDwtIHBsb3RfcGNhKG1hY3Jfbm9ybSwgcGxvdF9sYWJlbHMgPSBGQUxTRSkkcGxvdApwcChmaWxlID0gZ2x1ZSgiaW1hZ2VzL21hY3JvcGhhZ2Vfc2lkZV9leHBlcmltZW50X25vcm1fcGNhLXZ7dmVyfS5wZGYiKSwgaW1hZ2UgPSBwbHQpCnBsdAoKbWFjcl9uYiA8LSBub3JtYWxpemVfZXhwdChtYWNyLCBmaWx0ZXIgPSBUUlVFKQptYWNyX25iIDwtIG5vcm1hbGl6ZV9leHB0KG1hY3JfbmIsIG5vcm0gPSAicXVhbnQiLCBjb252ZXJ0ID0gImNwbSIsIHRyYW5zZm9ybSA9ICJsb2cyIikKcGx0IDwtIHBsb3RfcGNhKG1hY3JfbmIpJHBsb3QKcHAoZmlsZSA9IGdsdWUoImltYWdlcy9tYWNyb3BoYWdlX3NpZGVfZXhwZXJpbWVudC12e3Zlcn0vbm9ybWJhdGNoX3BjYS5wZGYiKSwgaW1hZ2UgPSBwbHQpCnBsdAptYWNyX3dyaXR0ZW4gPC0gd3JpdGVfZXhwdChtYWNyLCBleGNlbCA9ICJleGNlbC9tYWNyb3BoYWdlX3NpZGVfZXhwZXJpbWVudC9tYWNyb3BoYWdlX2V4cHQueGxzeCIpCgp6eW1vX2RlIDwtIGFsbF9wYWlyd2lzZShtYWNyLCBtb2RlbF9iYXRjaCA9IEZBTFNFLCBmaWx0ZXIgPSBUUlVFKQp6eW1vX3RhYmxlIDwtIGNvbWJpbmVfZGVfdGFibGVzKHp5bW9fZGUsIGV4Y2VsID0gImltYWdlcy9tYWNyb3BoYWdlX3NpZGVfZXhwZXJpbWVudC9tYWNyb3BoYWdlX2RlLnhsc3giKQpgYGAKCiMjIyBGb2xsb3d1cCBlbWFpbCBmcm9tIE9sZ2EKCi0gTWFjcm9waGFnZXMgaW5mZWN0ZWQgd2l0aCAyLjMgdnMgbWFjcm9waGFndWVzIGluZmVjdGVkIHdpdGggMi4zICsgU2JWCi0gTWFjcm9waGFnZXMgdW5pbmZlY3RlZCAoTTApIHZzIG1hY3JvcGhhZ2VzIHVuaW5mZWN0ZWQgKyBTYlYKLSBNYWNyb3BoYWdlcyB1bmluZmVjdGVkIHZzIG1hY3JvcGhhZ2VzIGluZmVjdGVkIHdpdGggMi4zCi0gTWFjcm9waGFnZXMgdW5pbmZlY3RlZCArIFNiViB2cyBNYWNyb3BoYWd1ZXMgaW5mZWN0ZWQgd2l0aCAyLjMgKyBTYlYKCldpdGggdGhpcyBjb21wYXJpc29ucyB3ZSBjYW4gZGVmaW5lIHRoZSBlZmZlY3Qgb2YgaW5mZWN0aW9uIHdpdGggMi4zIGFuZCB0aGUKZHJ1ZyBlZmZlY3Qgd2l0aCBhbmQgd2l0aG91dCBpbmZlY3Rpb24uIEluIHRoaXMgbW9tZW50IHdlIGNhbid0IGV2YWx1YXRlIHRoZQpjb25kaXRpb25zIHdpdGggMi4yIGJlY2F1c2UgdGhlIHNhbXBsZXMgYXJlIGluY29tcGxldGUuIE1hcmlhbmEgd2lsbCBjb21wbGV0ZSB0aGUKc2FtcGxlcyBpbiB0aGUgbmV4dCBzaGlwbWVudC4KCmBgYHtyIG9sZ2FfZm9sbG93dXB9Cm5ld19mYWN0b3IgPC0gcGFzdGUwKHBEYXRhKG1hY3IpW1sibWFjcmRydWciXV0sICJfIiwgcERhdGEobWFjcilbWyJ6eW1vZGVtZSJdXSkKbmV3X2ZhY3RvciA8LSBnc3ViKHggPSBuZXdfZmFjdG9yLCBwYXR0ZXJuID0gInVuZGVmIiwgcmVwbGFjZW1lbnQgPSAidW5pbmYiKQptYWNyX3YyIDwtIHNldF9leHB0X2NvbmRpdGlvbnMobWFjciwgZmFjdCA9IG5ld19mYWN0b3IpCm1hY3JfdjIkY29uZGl0aW9ucwptYWNyX3YyX25vcm0gPC0gbm9ybWFsaXplX2V4cHQobWFjcl92Miwgb252ZXJ0ID0gImNwbSIsIGZpbHRlciA9IFRSVUUsIG5vcm0gPSAicXVhbnQiKQptYWNyX3YyX25vcm0gPC0gbm9ybWFsaXplX2V4cHQobWFjcl92Ml9ub3JtLCB0cmFuc2Zvcm0gPSAibG9nMiIpCnBsb3RfcGNhKG1hY3JfdjJfbm9ybSkkcGxvdAprZWVwZXJzIDwtIGxpc3QoCiAgInp5bW9fc2J2IiA9IGMoInNiX3oyMiIsICJzYl96MjMiKSwKICAidW5pbmZfZHJ1ZyIgPSBjKCJub191bmluZiIsICJzYl91bmluZiIpLAogICJ1bmluZm5vZHJ1Z196MjMiID0gYygibm9fdW5pbmYiLCAibm9fejIzIiksCiAgInVuaW5mZHJ1Z196MjMiID0gYygic2JfdW5pbmYiLCAic2JfejIzIiksCiAgInoyM19kcnVnX25vZHJ1ZyIgPSBjKCJzYl96MjMiLCAibm9fejIzIiksCiAgInoyMl9kcnVnX25vZHJ1ZyIgPSBjKCJzYl96MjIiLCAibm9fejIyIikKKQpvbGdhX3BhaXJ3aXNlIDwtIGFsbF9wYWlyd2lzZShtYWNyX3YyLCBkb19kZXNlcSA9IEZBTFNFLCBkb19lZGdlciA9IEZBTFNFLCBkb19lYnNlcSA9IEZBTFNFKQoKb2xnYV96eW1vX3NiIDwtIG9sZ2FfcGFpcndpc2VbWyJsaW1tYSJdXVtbImFsbF90YWJsZXMiXV1bWyJzYl96MjNfdnNfc2JfejIyIl1dCm9sZ2Ffenltb19zYiA8LSBtZXJnZShvbGdhX3p5bW9fc2IsIGZEYXRhKG1hY3JfdjIpLCBieSA9ICJyb3cubmFtZXMiKQpyb3duYW1lcyhvbGdhX3p5bW9fc2IpIDwtIG9sZ2Ffenltb19zYltbIlJvdy5uYW1lcyJdXQpvbGdhX3p5bW9fc2JbWyJSb3cubmFtZXMiXV0gPC0gTlVMTApvbGdhX3p5bW9fc2JbWyJ0cmFuc2NyaXB0Il1dIDwtIE5VTEwKd3JpdHRlbiA8LSB3cml0ZV94bHN4KGRhdGEgPSBvbGdhX3p5bW9fc2IsCiAgICAgICAgICAgICAgICAgICAgICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL3NiXzIzX3ZzMjItdnt2ZXJ9Lnhsc3giKSkKCm9sZ2FfdW5pbmZfZHJ1ZyA8LSBvbGdhX3BhaXJ3aXNlW1sibGltbWEiXV1bWyJhbGxfdGFibGVzIl1dW1sic2JfdW5pbmZfdnNfbm9fdW5pbmYiXV0Kb2xnYV91bmluZl9kcnVnIDwtIG1lcmdlKG9sZ2FfdW5pbmZfZHJ1ZywgZkRhdGEobWFjcl92MiksIGJ5ID0gInJvdy5uYW1lcyIpCnJvd25hbWVzKG9sZ2FfdW5pbmZfZHJ1ZykgPC0gb2xnYV91bmluZl9kcnVnW1siUm93Lm5hbWVzIl1dCm9sZ2FfdW5pbmZfZHJ1Z1tbIlJvdy5uYW1lcyJdXSA8LSBOVUxMCndyaXR0ZW4gPC0gd3JpdGVfeGxzeChkYXRhID0gb2xnYV91bmluZl9kcnVnLAogICAgICAgICAgICAgICAgICAgICAgZXhjZWwgPSBnbHVlOjpnbHVlKCJleGNlbC91bmluZl9zYl92c19ub3NiLXZ7dmVyfS54bHN4IikpCgpvbGdhX3VuaW5mbm9kcnVnX3oyMyA8LSBvbGdhX3BhaXJ3aXNlW1sibGltbWEiXV1bWyJhbGxfdGFibGVzIl1dW1sibm9fejIzX3ZzX25vX3VuaW5mIl1dCm9sZ2FfdW5pbmZub2RydWdfejIzIDwtIG1lcmdlKG9sZ2FfdW5pbmZub2RydWdfejIzLCBmRGF0YShtYWNyX3YyKSwgYnkgPSAicm93Lm5hbWVzIikKcm93bmFtZXMob2xnYV91bmluZm5vZHJ1Z196MjMpIDwtIG9sZ2FfdW5pbmZub2RydWdfejIzW1siUm93Lm5hbWVzIl1dCm9sZ2FfdW5pbmZub2RydWdfejIzW1siUm93Lm5hbWVzIl1dIDwtIE5VTEwKd3JpdHRlbiA8LSB3cml0ZV94bHN4KGRhdGEgPSBvbGdhX3VuaW5mbm9kcnVnX3oyMywKICAgICAgICAgICAgICAgICAgICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvbm9fejIzX3ZzX25vc2JfdW5pbmYtdnt2ZXJ9Lnhsc3giKSkKCm9sZ2FfdW5pbmZkcnVnX3oyMyA8LSBvbGdhX3BhaXJ3aXNlW1sibGltbWEiXV1bWyJhbGxfdGFibGVzIl1dW1sic2JfejIzX3ZzX3NiX3VuaW5mIl1dCm9sZ2FfdW5pbmZkcnVnX3oyMyA8LSBtZXJnZShvbGdhX3VuaW5mZHJ1Z196MjMsIGZEYXRhKG1hY3JfdjIpLCBieSA9ICJyb3cubmFtZXMiKQpyb3duYW1lcyhvbGdhX3VuaW5mZHJ1Z196MjMpIDwtIG9sZ2FfdW5pbmZkcnVnX3oyM1tbIlJvdy5uYW1lcyJdXQpvbGdhX3VuaW5mZHJ1Z196MjNbWyJSb3cubmFtZXMiXV0gPC0gTlVMTAp3cml0dGVuIDwtIHdyaXRlX3hsc3goZGF0YSA9IG9sZ2FfdW5pbmZkcnVnX3oyMywKICAgICAgICAgICAgICAgICAgICAgIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvc2JfejIzX3ZzX3NiX3VuaW5mLXZ7dmVyfS54bHN4IikpCgpvbGdhX3oyM19kcnVnbm9kcnVnIDwtIG9sZ2FfcGFpcndpc2VbWyJsaW1tYSJdXVtbImFsbF90YWJsZXMiXV1bWyJzYl96MjNfdnNfbm9fejIzIl1dCm9sZ2FfejIzX2RydWdub2RydWcgPC0gbWVyZ2Uob2xnYV96MjNfZHJ1Z25vZHJ1ZywgZkRhdGEobWFjcl92MiksIGJ5ID0gInJvdy5uYW1lcyIpCnJvd25hbWVzKG9sZ2FfejIzX2RydWdub2RydWcpIDwtIG9sZ2FfejIzX2RydWdub2RydWdbWyJSb3cubmFtZXMiXV0Kb2xnYV96MjNfZHJ1Z25vZHJ1Z1tbIlJvdy5uYW1lcyJdXSA8LSBOVUxMCm9sZ2FfejIzX2RydWdub2RydWdbWyJ0cmFuc2NyaXB0Il1dIDwtIE5VTEwKd3JpdHRlbiA8LSB3cml0ZV94bHN4KGRhdGEgPSBvbGdhX3oyM19kcnVnbm9kcnVnLAogICAgICAgICAgICAgICAgICAgICAgZXhjZWwgPSBnbHVlOjpnbHVlKCJleGNlbC96MjNfZHJ1Z192c19ub2RydWctdnt2ZXJ9Lnhsc3giKSkKCm9sZ2FfejIyX2RydWdub2RydWcgPC0gb2xnYV9wYWlyd2lzZVtbImxpbW1hIl1dW1siYWxsX3RhYmxlcyJdXVtbInNiX3oyMl92c19ub196MjIiXV0Kb2xnYV96MjJfZHJ1Z25vZHJ1ZyA8LSBtZXJnZShvbGdhX3oyMl9kcnVnbm9kcnVnLCBmRGF0YShtYWNyX3YyKSwgYnkgPSAicm93Lm5hbWVzIikKcm93bmFtZXMob2xnYV96MjJfZHJ1Z25vZHJ1ZykgPC0gb2xnYV96MjJfZHJ1Z25vZHJ1Z1tbIlJvdy5uYW1lcyJdXQpvbGdhX3oyMl9kcnVnbm9kcnVnW1siUm93Lm5hbWVzIl1dIDwtIE5VTEwKb2xnYV96MjJfZHJ1Z25vZHJ1Z1tbInRyYW5zY3JpcHQiXV0gPC0gTlVMTAp3cml0dGVuIDwtIHdyaXRlX3hsc3goZGF0YSA9IG9sZ2FfejIyX2RydWdub2RydWcsCiAgICAgICAgICAgICAgICAgICAgICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL3oyMl9kcnVnX3ZzX25vZHJ1Zy12e3Zlcn0ueGxzeCIpKQpgYGAKCiMjIERvbm9yIGVmZmVjdAoKYGBge3IgZG9ub3J9CmRvbm9yIDwtIHNldF9leHB0X2NvbmRpdGlvbnMoaHNfZXhwdCwgZmFjdCA9ICJkb25vciIpCmRvbm9yIDwtIHNldF9leHB0X2JhdGNoZXMoZG9ub3IsIGZhY3QgPSAidGltZSIpCnNhdmVfcmVzdWx0IDwtIHNhdmUoZG9ub3IsIGZpbGUgPSAicmRhL2Rvbm9yX2V4cHQucmRhIikKdGVzdCA8LSBub3JtYWxpemVfZXhwdChkb25vciwgZmlsdGVyID0gVFJVRSwgdHJhbnNmb3JtID0gImxvZzIiLCBjb252ZXJ0ID0gImNwbSIsIG5vcm0gPSAicXVhbnQiKQpwbG90X3BjYSh0ZXN0KSRwbG90CmBgYAoKIyMgUXVlc3Rpb24gMQoKSSBpbnRlcnByZXRlZCBxdWVzdGlvbiAxIGFzOiBwdWxsIG91dCB0bXJjMzAwMFsxLTZdIGFuZCBsb29rIGF0IHRoZW0uCgpJIGFtIG5vdCBlbnRpcmVseSBjZXJ0YWluIHdoYXQgaXMgbWVhbnQgYnkgdGhlIGhlaXJhcmNoaWNhbCBjbHVzdGVyaW5nIHJlcXVlc3QuCkkgY2FuIHNlZSBhIGNvdXBsZSBvZiBwb3NzaWJpbGl0aWVzIGZvciB3aGF0IHRoaXMgbWVhbnMuICBUaGUgbW9zdCBzaW1pbGFyIHRoaW5nCkkgcmVjYWxsIGluIHRoZSBjcnV6aSBjb250ZXh0IHdhcyBhIHBvc3QtREUgdmlzdWFsaXphdGlvbiBvZiBzb21lIGZhaXJseQpzcGVjaWZpYyBnZW5lcy4KCmBgYHtyIHF1ZXN0aW9uMX0KaHNfcTEgPC0gc3Vic2V0X2V4cHQoaHNfdmFsaWQsIHN1YnNldCA9ICJkb25vcj09J2QxMDEwJ3xkb25vcj09J2QxMDExJyIpCnExX25vcm0gPC0gc20obm9ybWFsaXplX2V4cHQoaHNfcTEsIG5vcm0gPSAicXVhbnQiLCB0cmFuc2Zvcm0gPSAibG9nMiIsIGNvbnZlcnQgPSAiY3BtIiwgYmF0Y2ggPSBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyID0gVFJVRSkpCnExX3BjYSA8LSBwbG90X3BjYShxMV9ub3JtKQpxMV9wY2EkcGxvdAoKa25pdHI6OmthYmxlKHExX3BjYSR0YWJsZSkKd3JpdGUuY3N2KHExX3BjYSR0YWJsZSwgZmlsZSA9ICJjb29yZHMvcTFfcGNhX2Nvb3Jkcy5jc3YiKQoKIyMgTG9va3MgbGlrZSBQQzEgPT0gVGltZSBhbmQgUEMyIGlzIGRvbm9yLCBhbmQgdGhleSBoYXZlIHByZXR0eSBtdWNoIHRoZSBzYW1lIGFtb3VudCBvZiB2YXJpYW5jZQoKaHNfdGltZSA8LSBzZXRfZXhwdF9jb25kaXRpb25zKGhzX3ExLCBmYWN0ID0gInRpbWUiKQp0aW1lX25vcm0gPC0gc20obm9ybWFsaXplX2V4cHQoaHNfdGltZSwgZmlsdGVyID0gVFJVRSkpCnRpbWVfbm9ybSA8LSBub3JtYWxpemVfZXhwdCh0aW1lX25vcm0sIHRyYW5zZm9ybSA9ICJsb2cyIikKIyMgR2V0IGEgc2V0IG9mIGdlbmVzIHdpdGggaGlnaCBQQyBsb2FkcyBmb3IgUEMxKHRpbWUpLCBhbmQgUEMyKGRvbm9yKToKaGlnaF9zY29yZXMgPC0gcGNhX2hpZ2hzY29yZXModGltZV9ub3JtLCBuID0gNDApCnRpbWVfc3R1ZmYgPC0gaGlnaF9zY29yZXMkaGlnaGVzdFssIGMoMSwgMildCnRpbWVfc3R1ZmYKIyMgQ29sdW1uIDEgc2hvdWxkIGJlIHdpbm5lcnMgdnMuIHRpbWUgYW5kIGNvbHVtbiAyIGJ5IGRvbm9yLgp0aW1lX2dlbmVzIDwtIGdzdWIoeCA9IHRpbWVfc3R1ZmZbLCAiQ29tcC4xIl0sIHBhdHRlcm4gPSAiXi4qOiguKikkIiwgcmVwbGFjZW1lbnQgPSAiXFwxIikKaGVhZCh0aW1lX2dlbmVzKQp0aW1lX3N1YnNldCA8LSBleHBycyh0aW1lX25vcm0pW3RpbWVfZ2VuZXMsIF0KcGxvdF9zYW1wbGVfaGVhdG1hcCh0aW1lX25vcm0sIHJvd19sYWJlbCA9IHJvd25hbWVzKHRpbWVfbm9ybSkpCgpoc19kb25vciA8LSBzZXRfZXhwdF9jb25kaXRpb25zKGhzX3ExLCBmYWN0ID0gImRvbm9yIikKZG9ub3Jfbm9ybSA8LSBzbShub3JtYWxpemVfZXhwdChoc19kb25vciwgY29udmVydCA9ICJjcG0iLCBmaWx0ZXIgPSBUUlVFKSkKZG9ub3Jfbm9ybSA8LSBub3JtYWxpemVfZXhwdChkb25vcl9ub3JtLCB0cmFuc2Zvcm0gPSAibG9nMiIpCiMjIEdldCBhIHNldCBvZiBnZW5lcyB3aXRoIGhpZ2ggUEMgbG9hZHMgZm9yIFBDMShkb25vciksIGFuZCBQQzIoZG9ub3IpOgpoaWdoX3Njb3JlcyA8LSBwY2FfaGlnaHNjb3Jlcyhkb25vcl9ub3JtLCBuID0gNDApCmRvbm9yX3N0dWZmIDwtIGhpZ2hfc2NvcmVzJGhpZ2hlc3RbLCBjKDEsIDIpXQpkb25vcl9zdHVmZgojIyBDb2x1bW4gMSBzaG91bGQgYmUgd2lubmVycyB2cy4gZG9ub3IgYW5kIGNvbHVtbiAyIGJ5IGRvbm9yLgpkb25vcl9nZW5lcyA8LSBnc3ViKHggPSBkb25vcl9zdHVmZlssICJDb21wLjEiXSwgcGF0dGVybiA9ICJeLio6KC4qKSQiLCByZXBsYWNlbWVudCA9ICJcXDEiKQpoZWFkKGRvbm9yX2dlbmVzKQpkb25vcl9zdWJzZXQgPC0gZXhwcnMoZG9ub3Jfbm9ybSlbZG9ub3JfZ2VuZXMsIF0KcGxvdF9zYW1wbGVfaGVhdG1hcChkb25vcl9ub3JtLCByb3dfbGFiZWwgPSByb3duYW1lcyhkb25vcl9ub3JtKSkKYGBgCgpgYGB7ciB0aW1lX2Rvbm9yX2RlLCBmaWcuc2hvdyA9ICJoaWRlIn0KdGltZV9rZWVwZXJzIDwtIGxpc3QoCiAgIjJocl92c183aHIiID0gYygidDJociIsICJ0N2hyIiksCiAgIjJocl92c18xMmhyIiA9IGMoInQyaHIiLCAidDEyaHIiKSwKICAiN2hyX3ZzXzEyaHIiID0gYygidDdociIsICJ0MTJociIpKQoKcTFfdGltZSA8LSBzZXRfZXhwdF9jb25kaXRpb25zKGhzX3ExLCBmYWN0ID0gInRpbWUiKQp0aW1lX2RlIDwtIHNtKGFsbF9wYWlyd2lzZShxMV90aW1lLCBtb2RlbF9iYXRjaCA9IEZBTFNFLCBwYXJhbGxlbCA9IEZBTFNFKSkKdGltZV9hbGxfdGFibGVzIDwtIHNtKGNvbWJpbmVfZGVfdGFibGVzKHRpbWVfZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL3RpbWVfZGVfdGFibGVzLXZ7dmVyfS54bHN4IikpKQpzYXZlX3Jlc3VsdCA8LSBzYXZlKHRpbWVfYWxsX3RhYmxlcywgZmlsZSA9ICJyZGEvdGltZV9hbGxfdGFibGVzLnJkYSIpCgp0aW1lX2FsbF90YWJsZXNfYWxsIDwtIHNtKGNvbWJpbmVfZGVfdGFibGVzKAogIHRpbWVfZGUsCiAga2VlcGVycyA9ICJhbGwiLAogIGV4Y2VsID0gZ2x1ZTo6Z2x1ZSgiZXhjZWwvdGltZV9kZV9hbGxfdGFibGVzLXZ7dmVyfS54bHN4IikpKQoKdGltZV9hbGxfdGFibGVzIDwtIHNtKGNvbWJpbmVfZGVfdGFibGVzKAogIHRpbWVfZGUsCiAga2VlcGVycyA9IHRpbWVfa2VlcGVycywKICBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL3tydW5kYXRlfS10aW1lX2RlX3RhYmxlcy12e3Zlcn0ueGxzeCIpKSkKCnExX2Rvbm9yIDwtIHNldF9leHB0X2NvbmRpdGlvbnMoaHNfcTEsIGZhY3QgPSAiZG9ub3IiKQpkb25vcl9kZSA8LSBzbShhbGxfcGFpcndpc2UocTFfZG9ub3IsIG1vZGVsX2JhdGNoID0gRkFMU0UpKQpkb25vcl90YWJsZXMgPC0gc20oY29tYmluZV9kZV90YWJsZXMoCiAgICAgICAgICAgICAgICAgICAgIGRvbm9yX2RlLCBleGNlbCA9IGdsdWU6OmdsdWUoImV4Y2VsL2Rvbm9yX2RlX3RhYmxlcy12e3Zlcn0ueGxzeCIpKSkKc2F2ZV9yZXN1bHQgPC0gc2F2ZShkb25vcl90YWJsZXMsIGZpbGUgPSAicmRhL2Rvbm9yX3RhYmxlcy5yZGEiKQpgYGAKCmBgYHtyIHF1ZXN0aW9uMn0KaHNfcTIgPC0gc3Vic2V0X2V4cHQoaHNfdmFsaWQsIHN1YnNldCA9ICJkb25vciE9J2QxMDEwJyZkb25vciE9J2QxMDExJyIpCnEyX25vcm0gPC0gc20obm9ybWFsaXplX2V4cHQoaHNfcTIsIHRyYW5zZm9ybSA9ICJsb2cyIiwgY29udmVydCA9ICJjcG0iLCBub3JtID0gInF1YW50IiwgZmlsdGVyID0gVFJVRSkpCgpxMl9wY2EgPC0gcGxvdF9wY2EocTJfbm9ybSkKa25pdHI6OmthYmxlKHEyX3BjYSR0YWJsZSkKd3JpdGUuY3N2KHEyX3BjYSR0YWJsZSwgZmlsZSA9ICJjb29yZHMvcTJfcGNhX2Nvb3Jkcy5jc3YiKQpgYGAKCiMgUmVxdWVzdCBvbiAyMDIxMDEKCk1hcmlhIEFkZWxhaWRhIHNlbnQgYW4gZW1haWwgd2hpY2ggc2FpZDogIkkgaGF2ZSBiZWVuIHdvcmtpbmcgb24gdGhlIGdlbmUgbGlzdHMKYW5kIHRoZSBlYXNpZXN0IGFuZCBjbGVhbmVzdCB3YXkgSSBmb3VuZCB3YXMgdG8gZ2V0IHRoZSBHU0VBIGhhbGxtYXJrIGdlbmUgc2V0cwp0aGF0IG1heSBiZSBvZiBpbnRlcmVzdCB0byB1cy4gIFRoZSBpZGVhIGlzIHRoYXQgd2UgdXNlIHNvbWUgb2YgdGhlc2UgZ2VuZSBsaXN0cwoodG8gc3RhciB0aGUgeGVub2Jpb3RpYyBsaXN0KSB0byBtYXAgdGhlIGNoYW5nZXMgaW4gZ2VuZSBleHByZXNzaW9uIG92ZXIgdGhlCmNvdXJzZSBvZiB0cmVhdG1lbnQgYW5kIGluIHRoZSBkaWZmZXJlbnQgY2VsbCBwb3B1bGF0aW9ucy4iCgpVcG9uIHNwZWFraW5nIHdpdGggaGVyLCBJIHRoaW5rIHRoZSBnb2FsIGlzIHRvIGhhdmUgYSBwbG90IHdpdGggb25lIGxpbmUgcGVyCk1TaWdEQiBIYWxsbWFyayBjYXRlZ29yeSBnZW5lLiAgVGhlIHgtYXhpcyB3aWxsIHRoZXJlZm9yZSBiZSB0aGUgdGhyZWUgdGltZQpwb2ludHMgZm9yIHRob3NlIHBhdGllbnRzIGZvciB3aG9tIHdlIGhhdmUgMyB2aXNpdHM7IHRoZSB5LWF4aXMgd2lsbCBiZQpub3JtYWxpemVkIGNwbS4gIEVhY2ggZG90IHdpbGwgYmUgYSBzaW5nbGUgSGFsbG1hcmsgZ2VuZS4KCldpdGggdGhhdCBpbiBtaW5kLCB0aGUgbW9zdCBkaWZmaWN1bHQgY2hhbGxlbmdlIGlzIHBpY2tpbmcgb3V0IHRoZSBzYW1wbGVzIGZvcgp3aGljaCB3ZSBoYXZlIHRoZSB0aHJlZSB0aW1lIHBvaW50cy4KCmBgYHtyIHRocmVlX3RpbWVwb2ludF9saW5lfQptZXRhIDwtIGhwZ2x0b29sczo6ZXh0cmFjdF9tZXRhZGF0YShzYW1wbGVzaGVldCkKbmFfaWR4IDwtIGlzLm5hKG1ldGEpCm1ldGFbbmFfaWR4XSA8LSAiIgoKdmlzaXRfM19zYW1wbGVzIDwtIG1ldGFbWyJ2aXNpdG51bWJlciJdXSA9PSAzCnRocmVlcyA8LSBtZXRhW3Zpc2l0XzNfc2FtcGxlcywgXQp2aXNpdF8yX3NhbXBsZXMgPC0gbWV0YVtbInZpc2l0bnVtYmVyIl1dID09IDIKdHdvcyA8LSBtZXRhW3Zpc2l0XzJfc2FtcGxlcywgXQp2aXNpdF8xX3NhbXBsZXMgPC0gbWV0YVtbInZpc2l0bnVtYmVyIl1dID09IDEKb25lcyA8LSBtZXRhW3Zpc2l0XzFfc2FtcGxlcywgXQoKb25lc1tbInR1YmVsYWJlbG9yaWdpbiJdXSAlaW4lIHR3b3NbWyJ0dWJlbGFiZWxvcmlnaW4iXV0Kb25lc190d29zIDwtIG9uZXNbWyJ0dWJlbGFiZWxvcmlnaW4iXV0gJWluJSB0d29zW1sidHViZWxhYmVsb3JpZ2luIl1dCm9uZV90d28gPC0gbWV0YVtvbmVzX3R3b3MsIF0KYWxsX3RocmVlX2lkeCA8LSB0aHJlZXNbWyJ0dWJlbGFiZWxvcmlnaW4iXV0gJWluJSBvbmVfdHdvW1sidHViZWxhYmVsb3JpZ2luIl1dCmFsbF90aHJlZSA8LSB0aHJlZXNbYWxsX3RocmVlX2lkeCwgXQp3YW50ZWRfcGF0aWVudHMgPC0gbGV2ZWxzKGFzLmZhY3RvcihhbGxfdGhyZWVbWyJ0dWJlbGFiZWxvcmlnaW4iXV0pKQoKIyMgU28sIGl0IGFwcGVhcnMgd2UgaGF2ZSAzIHZpc2l0cyBmb3IgcGF0aWVudHM6IHN1MjA2OCwgc3UyMDcyLCBhbmQgc3UyMDczLgpwbG90X2V4cHQgPC0gc3Vic2V0X2V4cHQoZXhwdCA9IGFsbF9ub3JtLCBzdWJzZXQgPSAidHViZWxhYmVsb3JpZ2luPT0nc3UyMDY4J3x0dWJlbGFiZWxvcmlnaW49PSdzdTIwNzInfHR1YmVsYWJlbG9yaWdpbj09J3N1MjA3MyciKQpwbG90X3BjYShwbG90X2V4cHQpJHBsb3QKCnBsb3RfbW9ub2N5dGUgPC0gc3Vic2V0X2V4cHQocGxvdF9leHB0LCBzdWJzZXQgPSAidHlwZW9mY2VsbHM9PSdNb25vY3l0ZXMnJnR1YmVsYWJlbG9yaWdpbiE9J3N1MjA3MiciKQp1cF9tb25vY3l0ZV9nZW5lcyA8LSByb3duYW1lcyhtb25vX3NpZ1tbImRlc2VxIl1dW1sidXBzIl1dW1siZmFpbF92c19jdXJlIl1dKQpkb3duX21vbm9jeXRlX2dlbmVzIDwtIHJvd25hbWVzKG1vbm9fc2lnW1siZGVzZXEiXV1bWyJkb3ducyJdXVtbImZhaWxfdnNfY3VyZSJdXSkKcGxvdF9tb25vY3l0ZSA8LSBleGNsdWRlX2dlbmVzX2V4cHQocGxvdF9tb25vY3l0ZSwgaWRzID0gZG93bl9tb25vY3l0ZV9nZW5lcywgbWV0aG9kID0gImtlZXAiKQoKaGFsbG1hcmtfdGFibGUgPC0gb3Blbnhsc3g6OnJlYWQueGxzeCh4bHN4RmlsZSA9ICJyZWZlcmVuY2UvZ2VuZXNldF9zZWxlY3Rpb25fR1NFQV9IYWxsbWFya19tb2RpZmllZC54bHN4IikKZmlyc3RfY2F0ZWdvcnkgPC0gaGFsbG1hcmtfdGFibGVbWzFdXQoKaGFsbG1hcmtfZ2VuZXNfaWR4IDwtIGZEYXRhKHBsb3RfbW9ub2N5dGUpW1siaGduY19zeW1ib2wiXV0gJWluJSBmaXJzdF9jYXRlZ29yeQpoYWxsbWFya19nZW5lcyA8LSBmRGF0YShwbG90X21vbm9jeXRlKVtoYWxsbWFya19nZW5lc19pZHgsIF0Kd2FudGVkIDwtIHJvd25hbWVzKGhhbGxtYXJrX2dlbmVzKQoKcGxvdHRlZCA8LSBleHBycyhwbG90X21vbm9jeXRlKVt3YW50ZWQsIF0KcGxvdF9sb25nIDwtIHJlc2hhcGUyOjptZWx0KHBsb3R0ZWQpCmNvbG5hbWVzKHBsb3RfbG9uZykgPC0gYygiZ2VuZSIsICJzYW1wbGVuYW1lIiwgImV4cHJzIikKZGltKHBsb3RfbG9uZykKcGxvdF9sb25nIDwtIG1lcmdlKHBsb3RfbG9uZywgZkRhdGEocGxvdF9tb25vY3l0ZSksIGJ5LnggPSAiZ2VuZSIsIGJ5LnkgPSAicm93Lm5hbWVzIikKZGltKHBsb3RfbG9uZykKcGxvdF9sb25nIDwtIG1lcmdlKHBsb3RfbG9uZywgcERhdGEocGxvdF9tb25vY3l0ZSksIGJ5ID0gInNhbXBsZW5hbWUiKQpkaW0ocGxvdF9sb25nKQpsaWJyYXJ5KGdncGxvdDIpCgpwbG90XzIwNjhfaWR4IDwtIHBsb3RfbG9uZ1tbInR1YmVsYWJlbG9yaWdpbiJdXSA9PSAic3UyMDY4IgpwbG90XzIwNjggPC0gcGxvdF9sb25nW3Bsb3RfMjA2OF9pZHgsIF0KcGx0IDwtIGdncGxvdChkYXRhID0gcGxvdF8yMDY4LCBtYXBwaW5nID0gYWVzX3N0cmluZyh4ID0gInZpc2l0bnVtYmVyIiwgeSA9ICJleHBycyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvdXIgPSAiZ2VuZSIpKSArCiAgZ2VvbV9saW5lKCkgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKcGx0CnByb2JhYmx5X25vdCA8LSBnZ3Bsb3RseV91cmwocGx0LCAicHJvYmFibHlfdGVycmlibGVfc3UyMDY4Lmh0bWwiKQoKcGxvdF8yMDczX2lkeCA8LSBwbG90X2xvbmdbWyJ0dWJlbGFiZWxvcmlnaW4iXV0gPT0gInN1MjA3MyIKcGxvdF8yMDczIDwtIHBsb3RfbG9uZ1twbG90XzIwNzNfaWR4LCBdCnBsdCA8LSBnZ3Bsb3QoZGF0YSA9IHBsb3RfMjA3MywgbWFwcGluZyA9IGFlc19zdHJpbmcoeCA9ICJ2aXNpdG51bWJlciIsIHkgPSAiZXhwcnMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3VyID0gImdlbmUiKSkgKwogIGdlb21fbGluZSgpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCnBsdApwcm9iYWJseV9ub3QgPC0gZ2dwbG90bHlfdXJsKHBsdCwgImltYWdlcy9wcm9iYWJseV90ZXJyaWJsZV9zdTIwNzMuaHRtbCIpCmBgYAoKYGBge3Igc2F2ZW1lfQppZiAoIWlzVFJVRShnZXQwKCJza2lwX2xvYWQiKSkpIHsKICBwYW5kZXI6OnBhbmRlcihzZXNzaW9uSW5mbygpKQogIG1lc3NhZ2UocGFzdGUwKCJUaGlzIGlzIGhwZ2x0b29scyBjb21taXQ6ICIsIGdldF9naXRfY29tbWl0KCkpKQogIG1lc3NhZ2UocGFzdGUwKCJTYXZpbmcgdG8gIiwgc2F2ZWZpbGUpKQogIHRtcCA8LSBzbShzYXZlbWUoZmlsZW5hbWUgPSBzYXZlZmlsZSkpCn0KYGBgCgpgYGB7ciBsb2FkbWVfYWZ0ZXIsIGV2YWwgPSBGQUxTRX0KdG1wIDwtIGxvYWRtZShmaWxlbmFtZSA9IHNhdmVmaWxlKQpgYGAK