logo

Summary

This report was generated with RLSeq v1.0.3.

Sample information

Sample name: SH-SY5Y shCTR

Sample type: DRIP

Label: POS

Genome: hg38

Time: Thu Jul 7 20:26:41 2022

Results

1. RLFS analysis

Z-Score distribution

R-loop forming sequences (RLFS) were compared to the ranges in SH-SY5Y shCTR to measure enrichment. The resulting Z-score distribution is visualized below:

Note: for samples which map R-loop successfully, enrichment is expected. See representative examples for POS and NEG sample types here.

Details

Additional details

RLFS were derived across the genome using QmRLFS-finder.py. R-loop broad peaks were called with macs and then compared with RLFS using permTest from the regioneR R package. An empirical distribution of RLFS was generated using the circularRandomizeRegions method and compared to the peaks in order to calculate enrichment p value and zscore (effect size of enrichment). For additional detail, please refer to the RLSeq::analyzeRLFS documentation (link).

From this analysis, the empirically-determined p value was 0.009901 (with 100 permutations, the minimum possible p value was 0.009901). The enrichment z-score was 40.3393.


2. Sample classification

Predicted label for sample SH-SY5Y shCTR is “POS” (i.e., robust R-loop mapping).

Details

Additional Details

To evaluate sample quality, a binary classifier was developed via the online-learning approach described in the RLSuite manuscript. The classifier evaluates features engineered from the RLFS Z score distribution, specifically, the following features:

Abbreviations: Z, Z-score distribution; ACF, autocorrelation function; FT, Fourier Transform.
feature description raw_value processed_value
Z1 mean of Z 1.2186307 37.2195411
Z2 variance of Z 0.8306204 529.9093513
Zacf1 mean of Z ACF -0.8338110 0.0292045
Zacf2 variance of Z ACF -0.4505824 69.4893772
ReW1 mean of FT of Z (real part) 1.7594982 32.1432798
ReW2 variance of FT of Z (real part) 0.8288778 7512.6761798
ImW1 mean of FT of Z (imaginary part) -0.1184944 0.0000000
ImW2 variance of FT of Z (imaginary part) -1.3255137 35.8420653
ReWacf1 mean of FT of Z ACF (real part) -0.5486679 11.7401943
ReWacf2 variance of FT of Z ACF (real part) -0.3981260 835.4160391
ImWacf1 mean of FT of Z ACF (imaginary part) -0.5221044 0.0000000
ImWacf2 variance of FT of Z ACF (imaginary part) -0.5032904 522.1719304

From these features, classification was performed to derive a prediction (predicted label) regarding whether the sample mapped R-loops or not. In short, “POS” indicates any sample for which all the following are true:

  1. Criteria 1: The RLFS Permutation test P value is significant (p < .05)
  2. Criteria 2: The Z-score distribution middle is > 0.
  3. Criteria 3: The Z-score distribution middle is > the start and the end.
  4. Criteria 4: The model predicts a label of “POS”.

The criteria for SH-SY5Y shCTR are shown below:

Results from quality analysis of SH-SY5Y shCTR
Criteria Result
  1. PVal Significant
TRUE
  1. ZApex > 0
TRUE
  1. ZApex > ZEdges
TRUE
  1. Predicted ‘POS’
TRUE

These results led to the final prediction: “POS” (i.e., robust R-loop mapping).

For additional detail, please refer to the RLSeq::predictCondition documentation (link).


3. Noise analysis

Fingerprint plot

To visualize the results of noiseAnalyze we can use a “fingerprint plot” (named after the deepTools implementation by the same name).

This plot shows the proportion of signal contained in the corresponding proportion of coverage bins. In the plot above, we can observe that relatively few bins contain nearly all the signal. This is exactly what we would expect to see when our sample has good signal-to-noise ratio, a sign of good quality in R-loop mapping datasets.

Noise comparison plot

While a fingerprint plot is useful for getting a quick view of the dataset, it is also useful to compare the analyzed sample to publicly-available the datasets provided by RLBase. The noiseComparisonPlot enables this comparison.


4. Feature enrichment test

Enrichment plots

The results were then visualized with the plotEnrichment() function:

CpG_Islands

Encode_CREs

G4Qpred

knownGene_RNAs

PolyA

Repeat_Masker

skewr

snoRNA_miRNA_scaRNA

Transcript_Features

tRNAs

Note: If < 200 peaks in user-supplied sample, ◇ will be missing from plots.

Summary table

Additional Details

Annotations were derived from a variety of sources and accessed using RLHub (unless custom annotations were supplied by the user). Detailed explanations of each database and type can be found here. The valr R package was implemented to test the enrichment of these features within the supplied ranges for SH-SY5Y shCTR. For additional detail, please refer to the RLSeq::featureEnrich documentation (link).



5. Transcript feature overlap

Transcript feature overlap plot

The results were then visualized with the plotTxFeatureOverlap() function:


6. Correlation analysis

Using the method described in Chedin et al. 2020, the inter-sample correlations between SH-SY5Y shCTR and the samples in RLBase were calculated. For additional detail, please refer to the RLSeq::corrAnalyze documentation (link).

In the resulting heatmap, SH-SY5Y shCTR is identified via the group annotation.

Note: In the plot legend (mode panel), misc includes the modes with < 12 samples: BisMapR, DREAM, DRIP-RNA-Seq, DRIPc-HBD, DRIVE, DRNA, m6A-DIP, RNH-CnR, RR-ChIP, S1-DRIP.


7. Gene annotations

hg38 Gene annotations were downloaded from AnnotationHub and overlapped with R-loop ranges in SH-SY5Y shCTR. For additional detail, please refer to the RLSeq::geneAnnotation documentation (link). The resulting gene table was then filtered for the top 2000 peaks (by p-adjusted value) and is observed here:


8. RL-Regions test

RL-Regions are consensus R-loop sites derived from a meta-analysis of all high-confidence R-loop mapping samples in RLBase (see the RLSuite manuscript for a full description). The ranges supplied for SH-SY5Y shCTR were compared to the RL-Regions to determine the degree and significance of overlap. For additional detail, please refer to the RLSeq::rlRegionTest documentation (link).



Other

For more information about RLSeq please visit the package homepage here.

Note: if you use RLSeq in published research, please reference:

Miller et al., RLSeq, (2021), GitHub repository, Bishop-Laboratory/RLSeq

Session info

Session info
## R version 4.2.0 (2022-04-22)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.4 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats     graphics  grDevices datasets  utils     methods   base     
## 
## other attached packages:
## [1] RLHub_1.2.0    RLSeq_1.0.3    dplyr_1.0.9    magrittr_2.0.3
## 
## loaded via a namespace (and not attached):
##   [1] utf8_1.2.2                    tidyselect_1.1.2             
##   [3] RSQLite_2.2.14                AnnotationDbi_1.58.0         
##   [5] htmlwidgets_1.5.4             grid_4.2.0                   
##   [7] BiocParallel_1.30.3           pROC_1.18.0                  
##   [9] aws.signature_0.6.0           munsell_0.5.0                
##  [11] codetools_0.2-18              DT_0.23                      
##  [13] future_1.26.1                 withr_2.5.0                  
##  [15] colorspace_2.0-3              Biobase_2.56.0               
##  [17] filelock_1.0.2                highr_0.9                    
##  [19] knitr_1.39                    rstudioapi_0.13              
##  [21] stats4_4.2.0                  listenv_0.8.0                
##  [23] MatrixGenerics_1.8.1          labeling_0.4.2               
##  [25] GenomeInfoDbData_1.2.8        bit64_4.0.5                  
##  [27] farver_2.1.0                  parallelly_1.32.0            
##  [29] vctrs_0.4.1                   generics_0.1.3               
##  [31] lambda.r_1.2.4                ipred_0.9-13                 
##  [33] xfun_0.31                     BiocFileCache_2.4.0          
##  [35] doParallel_1.0.17             regioneR_1.28.0              
##  [37] R6_2.5.1                      GenomeInfoDb_1.32.2          
##  [39] clue_0.3-61                   gridGraphics_0.5-1           
##  [41] bitops_1.0-7                  cachem_1.0.6                 
##  [43] DelayedArray_0.22.0           assertthat_0.2.1             
##  [45] promises_1.2.0.1              BiocIO_1.6.0                 
##  [47] scales_1.2.0                  nnet_7.3-17                  
##  [49] gtable_0.3.0                  valr_0.6.4                   
##  [51] globals_0.15.1                processx_3.6.1               
##  [53] timeDate_3043.102             rlang_1.0.3                  
##  [55] systemfonts_1.0.4             GlobalOptions_0.1.2          
##  [57] splines_4.2.0                 rtracklayer_1.56.1           
##  [59] ModelMetrics_1.2.2.2          broom_1.0.0                  
##  [61] BiocManager_1.30.18           yaml_2.3.5                   
##  [63] reshape2_1.4.4                GenomicFeatures_1.48.3       
##  [65] crosstalk_1.2.0               backports_1.4.1              
##  [67] httpuv_1.6.5                  caret_6.0-92                 
##  [69] tools_4.2.0                   lava_1.6.10                  
##  [71] ggplotify_0.1.0               ggplot2_3.3.6                
##  [73] ellipsis_0.3.2                kableExtra_1.3.4             
##  [75] jquerylib_0.1.4               RColorBrewer_1.1-3           
##  [77] BiocGenerics_0.42.0           Rcpp_1.0.8.3                 
##  [79] plyr_1.8.7                    base64enc_0.1-3              
##  [81] progress_1.2.2                zlibbioc_1.42.0              
##  [83] purrr_0.3.4                   RCurl_1.98-1.7               
##  [85] ps_1.7.1                      prettyunits_1.1.1            
##  [87] rpart_4.1.16                  GetoptLong_1.0.5             
##  [89] pbapply_1.5-0                 S4Vectors_0.34.0             
##  [91] cluster_2.1.3                 SummarizedExperiment_1.26.1  
##  [93] futile.options_1.0.1          data.table_1.14.2            
##  [95] caretEnsemble_2.0.1           circlize_0.4.15              
##  [97] matrixStats_0.62.0            hms_1.1.1                    
##  [99] mime_0.12                     evaluate_0.15                
## [101] xtable_1.8-4                  XML_3.99-0.10                
## [103] VennDiagram_1.7.3             shape_1.4.6                  
## [105] IRanges_2.30.0                gridExtra_2.3                
## [107] compiler_4.2.0                biomaRt_2.52.0               
## [109] tibble_3.1.7                  crayon_1.5.1                 
## [111] htmltools_0.5.2               later_1.3.0                  
## [113] tzdb_0.3.0                    ggprism_1.0.3                
## [115] tidyr_1.2.0                   lubridate_1.8.0              
## [117] aws.s3_0.3.21                 DBI_1.1.3                    
## [119] formatR_1.12                  ExperimentHub_2.4.0          
## [121] ComplexHeatmap_2.12.0         dbplyr_2.2.1                 
## [123] MASS_7.3-57                   rappdirs_0.3.3               
## [125] Matrix_1.4-1                  readr_2.1.2                  
## [127] cli_3.3.0                     parallel_4.2.0               
## [129] gower_1.0.0                   GenomicRanges_1.48.0         
## [131] pkgconfig_2.0.3               GenomicAlignments_1.32.0     
## [133] recipes_1.0.0                 xml2_1.3.3                   
## [135] foreach_1.5.2                 svglite_2.1.0                
## [137] bslib_0.3.1                   hardhat_1.2.0                
## [139] webshot_0.5.3                 XVector_0.36.0               
## [141] prodlim_2019.11.13            rvest_1.0.2                  
## [143] yulab.utils_0.0.5             stringr_1.4.0                
## [145] callr_3.7.0                   digest_0.6.29                
## [147] Biostrings_2.64.0             rmarkdown_2.14               
## [149] restfulr_0.0.15               curl_4.3.2                   
## [151] shiny_1.7.1                   Rsamtools_2.12.0             
## [153] rjson_0.2.21                  lifecycle_1.0.1              
## [155] nlme_3.1-157                  jsonlite_1.8.0               
## [157] futile.logger_1.4.3           viridisLite_0.4.0            
## [159] BSgenome_1.64.0               fansi_1.0.3                  
## [161] pillar_1.7.0                  lattice_0.20-45              
## [163] KEGGREST_1.36.2               fastmap_1.1.0                
## [165] httr_1.4.3                    survival_3.2-13              
## [167] interactiveDisplayBase_1.34.0 glue_1.6.2                   
## [169] png_0.1-7                     iterators_1.0.14             
## [171] BiocVersion_3.15.2            bit_4.0.4                    
## [173] class_7.3-20                  stringi_1.7.6                
## [175] sass_0.4.1                    blob_1.2.3                   
## [177] AnnotationHub_3.4.0           memoise_2.0.1                
## [179] renv_0.15.5                   future.apply_1.9.0
 

RLSeq © 2022, Bishop Lab, UT Health San Antonio

RLSeq maintainer: Henry Miller

 

LS0tCnRpdGxlOiAiUkxTZXEgUmVwb3J0IgpzdWJ0aXRsZTogIjxzdHJvbmc+YHIgb2JqZWN0QG1ldGFkYXRhJHNhbXBsZU5hbWVgPC9zdHJvbmc+IgpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiCm91dHB1dDogCiAgaHRtbF9kb2N1bWVudDoKICAgIGNzczogInJlcG9ydF9zdHlsZS5jc3MiCiAgICB0aGVtZTogImZsYXRseSIKICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OgogICAgICBjb2xsYXBzZWQ6IGZhbHNlCiAgICAgIHNtb290aF9zY3JvbGw6IGZhbHNlIAogICAgdG9jX2RlcHRoOiAyCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlCiAgICBpbmNsdWRlczoKICAgICAgaW5faGVhZGVyOiAiaGVhZGVyLmh0bWwiCnBhcmFtczoKICBvYmplY3Q6ICJwbGFjZWhvbGRlciIKLS0tCgo8aW1nIHNyYz0iaHR0cHM6Ly9ybGJhc2UtZGF0YS5zMy5hbWF6b25hd3MuY29tL21pc2MvYXNzZXRzL3doaXRlYmdSTFNlcStMb2dvLnBuZyIgYWxpZ249InJpZ2h0IiBhbHQ9ImxvZ28iIHdpZHRoPSIyMjAiIHN0eWxlID0gImJvcmRlcjogbm9uZTsgZmxvYXQ6IHJpZ2h0OyI+CgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRSwgZWNobz1GQUxTRX0KCiMgU2V0dXAgY2h1bmsgb3B0aW9ucwprbml0cjo6b3B0c19jaHVuayRzZXQoCiAgd2FybmluZyA9IEZBTFNFLAogIG1lc3NhZ2UgPSBGQUxTRSwKICBjYWNoZSA9IEZBTFNFLAogIGVjaG8gPSBGQUxTRQopCgojIExpYnJhcmllcwpsaWJyYXJ5KG1hZ3JpdHRyKQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KFJMU2VxKQoKIyBFbmFibGUKRFQ6OmRhdGF0YWJsZShtYXRyaXgoKSwgZXh0ZW5zaW9ucz0iQnV0dG9ucyIpCgojIFdyYW5nbGUgcmVzdWx0cyBhbmQgdHJpZ2dlciBjb25kaXRpb25hbCB0ZW1wbGF0ZXMKb2JqZWN0IDwtIHBhcmFtcyRvYmplY3QKcmxyZXMgPC0gb2JqZWN0QG1ldGFkYXRhJHJlc3VsdHMKcmxyZXNsc3QgPC0gbGFwcGx5KHNsb3ROYW1lcyhybHJlcyksIGZ1bmN0aW9uKHNuKSB7CiAgdHJ5Q2F0Y2gocmxyZXN1bHQob2JqZWN0LCBzbiksIGVycm9yID0gZnVuY3Rpb24oZSkge05VTEx9KQp9KQpuYW1lcyhybHJlc2xzdCkgPC0gc2xvdE5hbWVzKHJscmVzKQpyZXNfb3JkZXIgPC0gYygKICAicmxmc1JlcyIsICJwcmVkaWN0UmVzIiwgCiAgIm5vaXNlQW5hbHlzaXMiLAogICJmZWF0dXJlRW5yaWNobWVudCIsIAogICJ0eEZlYXR1cmVPdmVybGFwIiwKICAiY29ycmVsYXRpb25NYXQiLCAiZ2VuZUFubm9SZXMiLCAicmxSZWdpb25SZXMiCikKZnVuY3MgPC0gYygKICAiYW5hbHl6ZVJMRlMiLCAicHJlZGljdENvbmRpdGlvbiIsIAogICJub2lzZUFuYWx5emUiLAogICJmZWF0dXJlRW5yaWNoIiwgCiAgInR4RmVhdHVyZU92ZXJsYXAiLAogICJjb3JyQW5hbHl6ZSIsICJnZW5lQW5ub3RhdGlvbiIsICJybFJlZ2lvblRlc3QiCikKbmFtZXMocmVzX29yZGVyKSA8LSBjKAogICJSTEZTIGFuYWx5c2lzIiwgCiAgIlNhbXBsZSBjbGFzc2lmaWNhdGlvbiIsCiAgIk5vaXNlIGFuYWx5c2lzIiwKICAiRmVhdHVyZSBlbnJpY2htZW50IHRlc3QiLAogICJUcmFuc2NyaXB0IGZlYXR1cmUgb3ZlcmxhcCIsCiAgIkNvcnJlbGF0aW9uIGFuYWx5c2lzIiwKICAiR2VuZSBhbm5vdGF0aW9ucyIsCiAgIlJMLVJlZ2lvbnMgdGVzdCIKKQpybHJlc2xzdCA8LSBybHJlc2xzdFtyZXNfb3JkZXJdCmlzbnVsbCA8LSB2YXBwbHkocmxyZXNsc3QsIGlzLm51bGwsIEZVTi5WQUxVRSA9IGxvZ2ljYWwoMSkpCmBgYAoKIyBTdW1tYXJ5CgpUaGlzIHJlcG9ydCB3YXMgZ2VuZXJhdGVkIHdpdGggKipSTFNlcSB2YHIgcGFja2FnZVZlcnNpb24oIlJMU2VxIilgKiouCgojIyMgU2FtcGxlIGluZm9ybWF0aW9uCgpTYW1wbGUgbmFtZTogPHN0cm9uZz5gciBvYmplY3RAbWV0YWRhdGEkc2FtcGxlTmFtZWA8L3N0cm9uZz4KClNhbXBsZSB0eXBlOiA8c3Ryb25nPmByIG9iamVjdEBtZXRhZGF0YSRtb2RlYDwvc3Ryb25nPgoKTGFiZWw6IDxzdHJvbmc+YHIgb2JqZWN0QG1ldGFkYXRhJGxhYmVsYDwvc3Ryb25nPgoKR2Vub21lOiA8c3Ryb25nPmByIEdlbm9tZUluZm9EYjo6Z2Vub21lKG9iamVjdClbMV1gPC9zdHJvbmc+CgpUaW1lOiA8c3Ryb25nPmByIGRhdGUoKWA8L3N0cm9uZz4KCiMjIyBSZXN1bHRzIHN1bW1hcnkKCmBgYHtyfQpkcGx5cjo6dGliYmxlKAogIFJlc3VsdCA9IHBhc3RlMCgiPGEgaHJlZj1cIiMiLCByZXNfb3JkZXIsIlwiPiIsIG5hbWVzKHJlc19vcmRlciksICI8L2E+IiksCiAgQXZhaWxhYmxlID0gISBpc251bGwKKSAlPiUKICBrYWJsZUV4dHJhOjprYmwoZXNjYXBlID0gRkFMU0UpICU+JQogIGthYmxlRXh0cmE6OmthYmxlX21hdGVyaWFsKGMoInN0cmlwZWQiLCAiaG92ZXIiKSkgJT4lCiAga2FibGVFeHRyYTo6Y29sdW1uX3NwZWMoCiAgICBjb2x1bW4gPSAxLAogICAgYm9sZCA9IFRSVUUKICApICU+JQogIGthYmxlRXh0cmE6OmNvbHVtbl9zcGVjKAogICAgY29sdW1uID0gMiwKICAgIGNvbG9yID0gaWZlbHNlKCEgaXNudWxsLCAiYmxhY2siLCAiZ3JleSIpLAogICAgYm9sZCA9ICEgaXNudWxsCiAgKSAKYGBgCgojIFJlc3VsdHMKCmBgYHtyIGNoaWxkUk1ELCByZXN1bHRzPSdhc2lzJ30Kcm1kbHN0IDwtIGxhcHBseSgKICAgIHNlcShyZXNfb3JkZXIpLAogICAgZnVuY3Rpb24oaSkgewogICAgICAgIHJlc0FuY2hvciA8LSByZXNfb3JkZXJbaV0KICAgICAgICBmdW5jIDwtIGZ1bmNzW2ldCiAgICAgICAgaWYgKGlzbnVsbFtpXSkgewogICAgICAgICAgICBrbml0cjo6a25pdF9jaGlsZCgKICAgICAgICAgICAgICAgIHRleHQ9YygKICAgICAgICAgICAgICAgICAgICAnIyMgYHIgaWAuIGByIG5hbWVzKHJlc0FuY2hvcilgIHsjYHIgcmVzQW5jaG9yYH0nLAogICAgICAgICAgICAgICAgICAgICcnLAogICAgICAgICAgICAgICAgICAgIHBhc3RlMCgnKlVuYXZhaWxhYmxlKi4gUnVuIGAnLCBmdW5jLAogICAgICAgICAgICAgICAgICAgICAgICAgICAnKClgIGFuZCB0aGVuIGByZXBvcnQoKWAgYWdhaW4gdG8gdmlldyB0aGlzIHJlc3VsdC4nKSwKICAgICAgICAgICAgICAgICAgICAnJywKICAgICAgICAgICAgICAgICAgICAnKioqJywKICAgICAgICAgICAgICAgICAgICAnJwogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIGVudmlyID0gZW52aXJvbm1lbnQoKSwgCiAgICAgICAgICAgICAgICBxdWlldCA9IFRSVUUKICAgICAgICAgICAgKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGtuaXRyOjprbml0X2NoaWxkKAogICAgICAgICAgICAgICAgc3lzdGVtLmZpbGUoCiAgICAgICAgICAgICAgICAgICAgIlJtZCIsCiAgICAgICAgICAgICAgICAgICAgcGFzdGUwKHJlc0FuY2hvciwgIi5SbWQiKSwKICAgICAgICAgICAgICAgICAgICBwYWNrYWdlID0gIlJMU2VxIgogICAgICAgICAgICAgICAgKSwgCiAgICAgICAgICAgICAgICBlbnZpciA9IGVudmlyb25tZW50KCksIAogICAgICAgICAgICAgICAgcXVpZXQgPSBUUlVFCiAgICAgICAgICAgICkKICAgICAgICB9CiAgICB9CikKY2F0KHVubGlzdChybWRsc3QpLCBzZXAgPSAiXG4iKQpgYGAKCiMgT3RoZXIKCj4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgKlJMU2VxKiBwbGVhc2UgdmlzaXQgdGhlIHBhY2thZ2UgaG9tZXBhZ2UgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9CaXNob3AtTGFib3JhdG9yeS9STFNlcSl7dGFyZ2V0PSJfYmxhbmsifS4KCioqTm90ZSoqOiBpZiB5b3UgdXNlICpSTFNlcSogaW4gcHVibGlzaGVkIHJlc2VhcmNoLCBwbGVhc2UgcmVmZXJlbmNlOgoKPiBNaWxsZXIgZXQgYWwuLCBSTFNlcSwgKDIwMjEpLCBHaXRIdWIgcmVwb3NpdG9yeSwgW0Jpc2hvcC1MYWJvcmF0b3J5L1JMU2VxXShodHRwczovL2dpdGh1Yi5jb20vQmlzaG9wLUxhYm9yYXRvcnkvUkxTZXEpe3RhcmdldD0iX2JsYW5rIn0KCiMjIFNlc3Npb24gaW5mbwoKPGRldGFpbHM+Cgo8c3VtbWFyeT5TZXNzaW9uIGluZm88L3N1bW1hcnk+CgpgYGB7cn0Kc2Vzc2lvbkluZm8oKQpgYGAKCjwvZGV0YWlscz4KCiZuYnNwOwo8aHIgLz4KPHAgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPlJMU2VxIMKpIGByIGZvcm1hdChTeXMuRGF0ZSgpLCAiJVkiKWAsIDxhIGhyZWY9Imh0dHBzOi8vZ2NjcmkuYmlzaG9wLWxhYi51dGhzY3NhLmVkdS8iICB0YXJnZXQ9Il9ibGFuayI+QmlzaG9wIExhYjwvYT4sIFVUIEhlYWx0aCBTYW4gQW50b25pbzwvcD4KPHAgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPlJMU2VxIG1haW50YWluZXI6IDxzcGFuIHN0eWxlPSJjb2xvcjogIzgwODA4MDsiPjxlbT48YSBocmVmPSJtYWlsdG86bWlsbGVyaDFAdXRoc2NzYS5lZHUiPkhlbnJ5IE1pbGxlcjwvYT48L2VtPjwvc3Bhbj48L3A+CgombmJzcDsK