diff --git a/SchedulePubMedAnalysis-old.log b/SchedulePubMedAnalysis-old.log new file mode 100644 index 0000000..bf6b283 --- /dev/null +++ b/SchedulePubMedAnalysis-old.log @@ -0,0 +1,158 @@ +Loading required package: tidyverse +-- Attaching packages ---------------------------------- tidyverse 1.2.1 -- + ggplot2 2.2.1 purrr 0.2.5 + tibble 1.4.2 dplyr 0.7.5 + tidyr 0.8.1 stringr 1.3.1 + readr 1.1.1 forcats 0.3.0 +-- Conflicts ------------------------------------- tidyverse_conflicts() -- +x dplyr::filter() masks stats::filter() +x dplyr::lag() masks stats::lag() +Warning: 776 parsing failures. +row # A tibble: 5 x 5 col row col expected actual file expected actual 1 4 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ file 2 6 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ row 3 8 2 columns 4 columns '/Users/serdarbalciold/RepTemplates/pub~ col 4 15 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ expected 5 18 2 columns 5 columns '/Users/serdarbalciold/RepTemplates/pub~ +... ................. ... .......................................................................... ........ .......................................................................... ...... .......................................................................... .... .......................................................................... ... ...................................... [... truncated] +Warning: 1537 parsing failures. +row # A tibble: 5 x 5 col row col expected actual file expected actual 1 1 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ file 2 3 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ row 3 4 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ col 4 6 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ expected 5 9 2 columns 5 columns '/Users/serdarbalciold/RepTemplates/pub~ +... ................. ... .......................................................................... ........ .......................................................................... ...... .......................................................................... .... .......................................................................... ... ..................................... [... truncated] +Warning messages: +1: In rbind(names(probs), probs_f) : + number of columns of result is not a multiple of vector length (arg 1) +2: In rbind(names(probs), probs_f) : + number of columns of result is not a multiple of vector length (arg 1) +Hata: RStudio not running +Calistirma durduruldu +Loading required package: tidyverse +-- Attaching packages ---------------------------------- tidyverse 1.2.1 -- + ggplot2 2.2.1 purrr 0.2.5 + tibble 1.4.2 dplyr 0.7.5 + tidyr 0.8.1 stringr 1.3.1 + readr 1.1.1 forcats 0.3.0 +-- Conflicts ------------------------------------- tidyverse_conflicts() -- +x dplyr::filter() masks stats::filter() +x dplyr::lag() masks stats::lag() +Warning: 776 parsing failures. +row # A tibble: 5 x 5 col row col expected actual file expected actual 1 4 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ file 2 6 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ row 3 8 2 columns 4 columns '/Users/serdarbalciold/RepTemplates/pub~ col 4 15 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ expected 5 18 2 columns 5 columns '/Users/serdarbalciold/RepTemplates/pub~ +... ................. ... .......................................................................... ........ .......................................................................... ...... .......................................................................... .... .......................................................................... ... ...................................... [... truncated] +Warning: 1537 parsing failures. +row # A tibble: 5 x 5 col row col expected actual file expected actual 1 1 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ file 2 3 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ row 3 4 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ col 4 6 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ expected 5 9 2 columns 5 columns '/Users/serdarbalciold/RepTemplates/pub~ +... ................. ... .......................................................................... ........ .......................................................................... ...... .......................................................................... .... .......................................................................... ... ..................................... [... truncated] +Warning messages: +1: In rbind(names(probs), probs_f) : + number of columns of result is not a multiple of vector length (arg 1) +2: In rbind(names(probs), probs_f) : + number of columns of result is not a multiple of vector length (arg 1) +Hata: RStudio not running +Calistirma durduruldu +Loading required package: tidyverse +-- Attaching packages ---------------------------------- tidyverse 1.2.1 -- + ggplot2 2.2.1 purrr 0.2.5 + tibble 1.4.2 dplyr 0.7.5 + tidyr 0.8.1 stringr 1.3.1 + readr 1.1.1 forcats 0.3.0 +-- Conflicts ------------------------------------- tidyverse_conflicts() -- +x dplyr::filter() masks stats::filter() +x dplyr::lag() masks stats::lag() +Warning: 776 parsing failures. +row # A tibble: 5 x 5 col row col expected actual file expected actual 1 4 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ file 2 6 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ row 3 8 2 columns 4 columns '/Users/serdarbalciold/RepTemplates/pub~ col 4 15 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ expected 5 18 2 columns 5 columns '/Users/serdarbalciold/RepTemplates/pub~ +... ................. ... .......................................................................... ........ .......................................................................... ...... .......................................................................... .... .......................................................................... ... ...................................... [... truncated] +Warning: 1537 parsing failures. +row # A tibble: 5 x 5 col row col expected actual file expected actual 1 1 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ file 2 3 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ row 3 4 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ col 4 6 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ expected 5 9 2 columns 5 columns '/Users/serdarbalciold/RepTemplates/pub~ +... ................. ... .......................................................................... ........ .......................................................................... ...... .......................................................................... .... .......................................................................... ... ..................................... [... truncated] +Warning messages: +1: In rbind(names(probs), probs_f) : + number of columns of result is not a multiple of vector length (arg 1) +2: In rbind(names(probs), probs_f) : + number of columns of result is not a multiple of vector length (arg 1) +Hata: RStudio not running +Calistirma durduruldu +Loading required package: tidyverse +-- Attaching packages ---------------------------------- tidyverse 1.2.1 -- + ggplot2 2.2.1 purrr 0.2.5 + tibble 1.4.2 dplyr 0.7.6 + tidyr 0.8.1 stringr 1.3.1 + readr 1.1.1 forcats 0.3.0 +-- Conflicts ------------------------------------- tidyverse_conflicts() -- +x dplyr::filter() masks stats::filter() +x dplyr::lag() masks stats::lag() +Warning: 776 parsing failures. +row # A tibble: 5 x 5 col row col expected actual file expected actual 1 4 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ file 2 6 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ row 3 8 2 columns 4 columns '/Users/serdarbalciold/RepTemplates/pub~ col 4 15 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ expected 5 18 2 columns 5 columns '/Users/serdarbalciold/RepTemplates/pub~ +... ................. ... .......................................................................... ........ .......................................................................... ...... .......................................................................... .... .......................................................................... ... ...................................... [... truncated] +Warning: 1537 parsing failures. +row # A tibble: 5 x 5 col row col expected actual file expected actual 1 1 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ file 2 3 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ row 3 4 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ col 4 6 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ expected 5 9 2 columns 5 columns '/Users/serdarbalciold/RepTemplates/pub~ +... ................. ... .......................................................................... ........ .......................................................................... ...... .......................................................................... .... .......................................................................... ... ..................................... [... truncated] +Warning messages: +1: package 'dplyr' was built under R version 3.5.1 +2: In rbind(names(probs), probs_f) : + number of columns of result is not a multiple of vector length (arg 1) +3: In rbind(names(probs), probs_f) : + number of columns of result is not a multiple of vector length (arg 1) +Hata: RStudio not running +Calistirma durduruldu +Loading required package: tidyverse +-- Attaching packages ---------------------------------- tidyverse 1.2.1 -- + ggplot2 2.2.1 purrr 0.2.5 + tibble 1.4.2 dplyr 0.7.6 + tidyr 0.8.1 stringr 1.3.1 + readr 1.1.1 forcats 0.3.0 +-- Conflicts ------------------------------------- tidyverse_conflicts() -- +x dplyr::filter() masks stats::filter() +x dplyr::lag() masks stats::lag() +Warning: 776 parsing failures. +row # A tibble: 5 x 5 col row col expected actual file expected actual 1 4 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ file 2 6 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ row 3 8 2 columns 4 columns '/Users/serdarbalciold/RepTemplates/pub~ col 4 15 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ expected 5 18 2 columns 5 columns '/Users/serdarbalciold/RepTemplates/pub~ +... ................. ... .......................................................................... ........ .......................................................................... ...... .......................................................................... .... .......................................................................... ... ...................................... [... truncated] +Warning: 1537 parsing failures. +row # A tibble: 5 x 5 col row col expected actual file expected actual 1 1 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ file 2 3 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ row 3 4 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ col 4 6 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ expected 5 9 2 columns 5 columns '/Users/serdarbalciold/RepTemplates/pub~ +... ................. ... .......................................................................... ........ .......................................................................... ...... .......................................................................... .... .......................................................................... ... ..................................... [... truncated] +Warning messages: +1: package 'dplyr' was built under R version 3.5.1 +2: In rbind(names(probs), probs_f) : + number of columns of result is not a multiple of vector length (arg 1) +3: In rbind(names(probs), probs_f) : + number of columns of result is not a multiple of vector length (arg 1) +Hata: RStudio not running +Calistirma durduruldu +Loading required package: tidyverse +-- Attaching packages ---------------------------------- tidyverse 1.2.1 -- + ggplot2 2.2.1 purrr 0.2.5 + tibble 1.4.2 dplyr 0.7.6 + tidyr 0.8.1 stringr 1.3.1 + readr 1.1.1 forcats 0.3.0 +-- Conflicts ------------------------------------- tidyverse_conflicts() -- +x dplyr::filter() masks stats::filter() +x dplyr::lag() masks stats::lag() +Warning: 776 parsing failures. +row # A tibble: 5 x 5 col row col expected actual file expected actual 1 4 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ file 2 6 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ row 3 8 2 columns 4 columns '/Users/serdarbalciold/RepTemplates/pub~ col 4 15 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ expected 5 18 2 columns 5 columns '/Users/serdarbalciold/RepTemplates/pub~ +... ................. ... .......................................................................... ........ .......................................................................... ...... .......................................................................... .... .......................................................................... ... ...................................... [... truncated] +Warning: 1537 parsing failures. +row # A tibble: 5 x 5 col row col expected actual file expected actual 1 1 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ file 2 3 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ row 3 4 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ col 4 6 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ expected 5 9 2 columns 5 columns '/Users/serdarbalciold/RepTemplates/pub~ +... ................. ... .......................................................................... ........ .......................................................................... ...... .......................................................................... .... .......................................................................... ... ..................................... [... truncated] +Warning messages: +1: package 'dplyr' was built under R version 3.5.1 +2: In rbind(names(probs), probs_f) : + number of columns of result is not a multiple of vector length (arg 1) +3: In rbind(names(probs), probs_f) : + number of columns of result is not a multiple of vector length (arg 1) +Hata: RStudio not running +Calistirma durduruldu +Loading required package: tidyverse +-- Attaching packages ---------------------------------- tidyverse 1.2.1 -- + ggplot2 2.2.1 purrr 0.2.5 + tibble 1.4.2 dplyr 0.7.6 + tidyr 0.8.1 stringr 1.3.1 + readr 1.1.1 forcats 0.3.0 +-- Conflicts ------------------------------------- tidyverse_conflicts() -- +x dplyr::filter() masks stats::filter() +x dplyr::lag() masks stats::lag() +Warning: 776 parsing failures. +row # A tibble: 5 x 5 col row col expected actual file expected actual 1 4 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ file 2 6 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ row 3 8 2 columns 4 columns '/Users/serdarbalciold/RepTemplates/pub~ col 4 15 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ expected 5 18 2 columns 5 columns '/Users/serdarbalciold/RepTemplates/pub~ +... ................. ... .......................................................................... ........ .......................................................................... ...... .......................................................................... .... .......................................................................... ... ...................................... [... truncated] +Warning: 1537 parsing failures. +row # A tibble: 5 x 5 col row col expected actual file expected actual 1 1 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ file 2 3 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ row 3 4 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ col 4 6 2 columns 3 columns '/Users/serdarbalciold/RepTemplates/pub~ expected 5 9 2 columns 5 columns '/Users/serdarbalciold/RepTemplates/pub~ +... ................. ... .......................................................................... ........ .......................................................................... ...... .......................................................................... .... .......................................................................... ... ..................................... [... truncated] +Warning messages: +1: package 'dplyr' was built under R version 3.5.1 +2: In rbind(names(probs), probs_f) : + number of columns of result is not a multiple of vector length (arg 1) +3: In rbind(names(probs), probs_f) : + number of columns of result is not a multiple of vector length (arg 1) +Hata: RStudio not running +Calistirma durduruldu diff --git a/SchedulePubMedAnalysis.R b/SchedulePubMedAnalysis.R index 633aaac..5f7088b 100644 --- a/SchedulePubMedAnalysis.R +++ b/SchedulePubMedAnalysis.R @@ -1,6 +1,6 @@ -library(rmarkdown) -library(pander) -library(rstudioapi) +require(rmarkdown) +# require(pander) +require(rstudioapi) # # rmarkdown::render(input = "SchedulePubMedAnalysis.Rmd", output_format = "html_notebook", output_file = "docs/SchedulePubMedAnalysis.html" # , quiet = TRUE diff --git a/SchedulePubMedAnalysis.log b/SchedulePubMedAnalysis.log deleted file mode 100644 index e69de29..0000000 diff --git a/SchedulePubMedAnalysis2.Rmd b/SchedulePubMedAnalysis2.Rmd index 2e746c4..492cc0e 100644 --- a/SchedulePubMedAnalysis2.Rmd +++ b/SchedulePubMedAnalysis2.Rmd @@ -111,37 +111,37 @@ Articles are downloaded as `xml`. MeSH terms are extracted from xml. [Common terms](https://www.nlm.nih.gov/bsd/indexing/training/CHK_010.html) are excluded and [major topics](https://www.nlm.nih.gov/bsd/disted/meshtutorial/principlesofmedlinesubjectindexing/majortopics/) are selected. ```{r extract major MeSH topics -excluding common tags- from xml, message=FALSE, warning=FALSE} -myTerm <- rstudioapi::terminalCreate(show = FALSE) -rstudioapi::terminalSend( -myTerm, -"xtract -input /Users/serdarbalciold/RepTemplates/pubmed/data/PathologyTurkey.xml -pattern MeshHeading -if DescriptorName@MajorTopicYN -equals Y -or QualifierName@MajorTopicYN -equals Y -element DescriptorName| grep -vxf /Users/serdarbalciold/RepTemplates/pubmed/data/checktags.txt | sort-uniq-count-rank > /Users/serdarbalciold/RepTemplates/pubmed/data/PathologyTurkeyMeSH.csv \n" -) -Sys.sleep(1) -repeat { -Sys.sleep(0.1) -if (rstudioapi::terminalBusy(myTerm) == FALSE) { -print("Code Executed") -break -} -} +# myTerm <- rstudioapi::terminalCreate(show = FALSE) +# rstudioapi::terminalSend( +# myTerm, +# "xtract -input /Users/serdarbalciold/RepTemplates/pubmed/data/PathologyTurkey.xml -pattern MeshHeading -if DescriptorName@MajorTopicYN -equals Y -or QualifierName@MajorTopicYN -equals Y -element DescriptorName| grep -vxf /Users/serdarbalciold/RepTemplates/pubmed/data/checktags.txt | sort-uniq-count-rank > /Users/serdarbalciold/RepTemplates/pubmed/data/PathologyTurkeyMeSH.csv \n" +# ) +# Sys.sleep(1) +# repeat { +# Sys.sleep(0.1) +# if (rstudioapi::terminalBusy(myTerm) == FALSE) { +# print("Code Executed") +# break +# } +# } ``` Keywords are extracted from `xml`. ```{r extract author keywords from xml, message=FALSE, warning=FALSE, results='asis'} -myTerm <- rstudioapi::terminalCreate(show = FALSE) -rstudioapi::terminalSend( -myTerm, -"xtract -input /Users/serdarbalciold/RepTemplates/pubmed/data/PathologyTurkey.xml -pattern Keyword -element Keyword | sort-uniq-count-rank > /Users/serdarbalciold/RepTemplates/pubmed/data/authorkeywords.csv \n" -) -Sys.sleep(1) -repeat { -Sys.sleep(0.1) -if (rstudioapi::terminalBusy(myTerm) == FALSE) { -print("Code Executed") -break -} -} +# myTerm <- rstudioapi::terminalCreate(show = FALSE) +# rstudioapi::terminalSend( +# myTerm, +# "xtract -input /Users/serdarbalciold/RepTemplates/pubmed/data/PathologyTurkey.xml -pattern Keyword -element Keyword | sort-uniq-count-rank > /Users/serdarbalciold/RepTemplates/pubmed/data/authorkeywords.csv \n" +# ) +# Sys.sleep(1) +# repeat { +# Sys.sleep(0.1) +# if (rstudioapi::terminalBusy(myTerm) == FALSE) { +# print("Code Executed") +# break +# } +# } ``` diff --git a/SchedulePubMedAnalysis2.nb.html b/SchedulePubMedAnalysis2.nb.html index 98ca6f0..d0ef21c 100644 --- a/SchedulePubMedAnalysis2.nb.html +++ b/SchedulePubMedAnalysis2.nb.html @@ -2900,7 +2900,7 @@

Bibliographic Studies

Serdar Balci, MD, Pathologist

-

2018-07-01 12:17:10

+

2018-07-02 10:40:01

@@ -3101,7 +3101,7 @@

5 Comments

6 Feedback

Serdar Balcı, MD, Pathologist would like to hear your feedback: https://goo.gl/forms/YjGZ5DHgtPlR1RnB3

-

This document will be continiously updated and the last update was on 2018-07-01 12:17:10.

+

This document will be continiously updated and the last update was on 2018-07-02 10:40:02.


@@ -3110,7 +3110,7 @@

7 Back to Main Menu

-
LS0tCnRpdGxlOiAiQmlibGlvZ3JhcGhpYyBTdHVkaWVzIgphdXRob3I6ICJTZXJkYXIgQmFsY2ksIE1ELCBQYXRob2xvZ2lzdCIKZGF0ZTogJ2ByIGZvcm1hdChTeXMudGltZSgpKWAnCm91dHB1dDogCiAgaHRtbF9ub3RlYm9vazogCiAgICBjb2RlX2ZvbGRpbmc6IG5vbmUKICAgIGZpZ19jYXB0aW9uOiB5ZXMKICAgIGhpZ2hsaWdodDoga2F0ZQogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMKICAgIHRoZW1lOiBjZXJ1bGVhbgogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCi0tLQoKKioiTWVTSCBUZXJtcyBhbmQgQXV0aG9yIEtleSBXb3JkcyBJbiBQYXRob2xvZ3kgQXJ0aWNsZXMgRnJvbSBUdXJrZXkiKioKCgoKYGBge3J9CmtuaXRyOjpvcHRzX2NodW5rJHNldChtZXNzYWdlID0gRkFMU0UsIHdhcm5pbmc9RkFMU0UsIHRpZHkgPSBUUlVFLCBlcnJvciA9IFRSVUUpCmBgYAoKYGBge3J9CmxpYnJhcnkocm1hcmtkb3duKQpgYGAKCgojIEJhY2tncm91bmQKClB1Yk1lZCBjb2xsZWN0aW9uIGZyb20gW05hdGlvbmFsIExpYnJhcnkgb2YgTWVkaWNpbmVdKGh0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLyksIGhhcyB0aGUgbW9zdCBjb21wcmVoZW5zaXZlIGluZm9ybWF0aW9uIGFib3V0IHBlZXIgcmV2aWV3ZWQgYXJ0aWNsZXMgaW4gbWVkaWNpbmUuCgpbTWVTSCBUZXJtc10oaHR0cHM6Ly93d3cubmxtLm5paC5nb3YvcHVicy9mYWN0c2hlZXRzL21lc2guaHRtbCkgaXMgYSBjb250cm9sbGVkIHZvY2FidWxhcnkgdGhhdCBpcyB1c2VkIHRvIGxhYmVsIFB1Yk1lZCBhcnRpY2xlcyBhY2NvcmRpbmcgdG8gdGhlaXIgY29udGVudC4gSXQgaXMgZG9uZSBieSBleHBlcnRzIGluIE5hdGlvbmFsIExpYnJhcnkgb2YgTWVkaWNpbmUuIEtleXdvcmRzIGFyZSBsYWJsZXMgdGhhdCBhcmUgZ2l2ZW4gYnkgYXV0aG9ycyBvZiB0aGUgYXJ0aWNsZS4gQm90aCBhcmUgaW5jbHVkZWQgaW4gYSBQdWJNZWQgcmVjb3JkIG9mIGFuIGFydGljbGUuCgpbRURpcmVjdF0oaHR0cHM6Ly9kYXRhZ3VpZGUubmxtLm5paC5nb3YvZWRpcmVjdC9pbnN0YWxsLmh0bWwpIGlzIGEgdmFsdWFibGUgdG9vbCB0byBpZGVudGlmeSB2YXJpb3VzIGZlYXR1cmVzIG9mIHB1Ymxpc2hlZCBhcnRpY2xlcyB0aGF0IGFyZSBpbmRleGVkIGluIFB1Yk1lZC4KCiMgQWltCgpJbiB0aGlzIGFuYWx5c2lzIHdlIGFpbWVkIHRvIGlkZW50aWZ5IHRoZSBtb3N0IGNvbW1vbiB0b3BpY3MgaW52ZXN0aWdhdGVkIGluIFR1cmtleSBhbmQgcHVibGlzaGVkIGluIHBhdGhvbG9neSBqb3VybmFscy4gVGhpcyBtYXkgcmV2ZWFsIHRoZSBjb21tb24gcmVzZWFyY2ggdG9waWNzIFR1cmtpc2ggcGF0aG9sb2dpc3RzIGFyZSBpbnRlcmVzdGVkLiBXZSBleHRyYWN0ZWQgbW9zdCBjb21tb24gTWVTSCB0ZXJtcyBhbmQga2V5d29yZHMgZnJvbSBQdWJNZWQgYXJ0aWNsZXMgdXNpbmcgW0VEaXJlY3RdKGh0dHBzOi8vZGF0YWd1aWRlLm5sbS5uaWguZ292L2VkaXJlY3Qvb3ZlcnZpZXcuaHRtbCk6CltNZVNIIFRlcm1zIFBhdGhvbG9neSBBcnRpY2xlcyBGcm9tIFR1cmtleV0oaHR0cHM6Ly9zYmFsY2kuZ2l0aHViLmlvL3B1Ym1lZC9NZVNIX1Rlcm1zX1BhdGhvbG9neV9BcnRpY2xlc19Gcm9tX1R1cmtleS5odG1sKQoKCiMgTWF0ZXJpYWxzIGFuZCBNZXRob2RzCgoqKk1ldGhvZHM6KioKClBhY2thZ2VzIHVzZWQgZm9yIGFuYWx5c2lzIGFyZSBnaXZlbi4gYFRpZHl2ZXJzZWAgaXMgdXNlZCBmb3IgZGF0YSBtYW5pcHVsYXRpb24sIGFuZCBbcnN0dWRpb2FwaV0oaHR0cHM6Ly9naXRodWIuY29tL3JzdHVkaW8vcnN0dWRpby9pc3N1ZXMvMjE5MykgdG8gcnVuIGUtdXRpbGl0aWVzIGNvbW1hbmRzIGZyb20gUlN0dWRpby4KCgpgYGB7ciBsb2FkIC1pZiBub3QgcHJlc2VudCBpbnN0YWxsLSByZXF1aXJlZCBwYWNrYWdlc30KdXNlUGFja2FnZSA8LSBmdW5jdGlvbihwKQp7CmlmICghaXMuZWxlbWVudChwLCBpbnN0YWxsZWQucGFja2FnZXMoKVssIDFdKSkKaW5zdGFsbC5wYWNrYWdlcyhwLCBkZXAgPSBUUlVFKQpyZXF1aXJlKHAsIGNoYXJhY3Rlci5vbmx5ID0gVFJVRSkKfQoKdXNlUGFja2FnZSgidGlkeXZlcnNlIikKdXNlUGFja2FnZSgicnN0dWRpb2FwaSIpCnVzZVBhY2thZ2UoInBhbmRlciIpCmBgYAoKClBhdGhvbG9neSBKb3VybmFsIElTU04gTGlzdCB3YXMgcmV0cmlldmVkIGZyb20gW0luIENpdGVzIENsYXJpdmF0ZV0oaHR0cHM6Ly9qY3IuaW5jaXRlcy50aG9tc29ucmV1dGVycy5jb20vKSwgYW5kIEpvdXJuYWwgRGF0YSBGaWx0ZXJlZCBhcyBmb2xsb3dzOiAKCmBKQ1IgWWVhcjogMjAxNiBTZWxlY3RlZCBFZGl0aW9uczogU0NJRSxTU0NJIFNlbGVjdGVkIENhdGVnb3JpZXM6ICdQQVRIT0xPR1knIFNlbGVjdGVkIENhdGVnb3J5IFNjaGVtZTogV29TYAoKCmBgYHtyIEdldCBJU1NOIExpc3QgZnJvbSBkYXRhIGRvd25sb2FkZWQgZnJvbSBXb1N9CiMgIyBHZXQgSVNTTiBMaXN0IGZyb20gZGF0YSBkb3dubG9hZGVkIGZyb20gV29TCiMgSVNTTkxpc3QgPC0gSm91cm5hbEhvbWVHcmlkIDwtIHJlYWRfY3N2KCIvVXNlcnMvc2VyZGFyYmFsY2lvbGQvUmVwVGVtcGxhdGVzL3B1Ym1lZC9kYXRhL0pvdXJuYWxIb21lR3JpZC5jc3YiLCBza2lwID0gMSkgJT4lCiMgc2VsZWN0KElTU04pICU+JQojIGZpbHRlcighaXMubmEoSVNTTikpICU+JQojIHQoKSAlPiUKIyBwYXN0ZSgiT1IgIiwgY29sbGFwc2UgPSAiIikgIyBhZGQgT1IgYmV0d2VlbiBJU1NOIExpc3QKIyAKIyBJU1NOTGlzdCA8LSBnc3ViKCIgT1IgJCIsICIiICwgSVNTTkxpc3QpICMgdG8gcmVtb3ZlIGxhc3QgT1IKYGBgCgoKRGF0YSBpcyByZXRyaWV2ZWQgZnJvbSBQdWJNZWQgdmlhIFtlLVV0aWxpdGllc10oaHR0cHM6Ly9kYXRhZ3VpZGUubmxtLm5paC5nb3YvKS4KClRoZSBzZWFyY2ggZm9ybXVsYSBmb3IgUHViTWVkIGlzIGdlbmVyYXRlZCBhcyAiSVNTTiBMaXN0IEFORCBDb3VudHJ5W0FmZmlsaWF0aW9uXSIgYXMgZGVzY3JpYmVkIGluIFthZHZhbmNlZCBzZWFyY2ggb2YgUHViTWVkXShodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC9hZHZhbmNlZCkuCgpgYGB7ciBHZW5lcmF0ZSBTZWFyY2ggRm9ybXVsYSBGb3IgUGF0aG9sb2d5IEpvdXJuYWxzIEFORCBDb3VudHJpZXN9CiMgIyBHZW5lcmF0ZSBTZWFyY2ggRm9ybXVsYSBGb3IgUGF0aG9sb2d5IEpvdXJuYWxzIEFORCBDb3VudHJpZXMKIyBzZWFyY2hmb3JtdWxhIDwtCiMgcGFzdGUoIiciLCBJU1NOTGlzdCwgIiciLCAiIEFORCAiLCAiVHVya2V5W0FmZmlsaWF0aW9uXSIpCiMgd3JpdGUoc2VhcmNoZm9ybXVsYSwgIi9Vc2Vycy9zZXJkYXJiYWxjaW9sZC9SZXBUZW1wbGF0ZXMvcHVibWVkL2RhdGEvc2VhcmNoZm9ybXVsYS50eHQiKQpgYGAKCkFydGljbGVzIGFyZSBkb3dubG9hZGVkIGFzIGB4bWxgLgoKYGBge3IgU2VhcmNoIFB1Yk1lZCwgd3JpdGUgZGF0YSBhcyB4bWx9CiMgbXlUZXJtIDwtIHJzdHVkaW9hcGk6OnRlcm1pbmFsQ3JlYXRlKHNob3cgPSBGQUxTRSkKIyByc3R1ZGlvYXBpOjp0ZXJtaW5hbFNlbmQoCiMgICAgIG15VGVybSwKIyAgICAgImVzZWFyY2ggLWRiIHB1Ym1lZCAtcXVlcnkgXCIkKGNhdCAvVXNlcnMvc2VyZGFyYmFsY2lvbGQvUmVwVGVtcGxhdGVzL3B1Ym1lZC9kYXRhL3NlYXJjaGZvcm11bGEudHh0KVwiIC1kYXRldHlwZSBQREFUIC1taW5kYXRlIDE5MDAgLW1heGRhdGUgMzAwMCB8IGVmZXRjaCAtZm9ybWF0IHhtbCA+IC9Vc2Vycy9zZXJkYXJiYWxjaW9sZC9SZXBUZW1wbGF0ZXMvcHVibWVkL2RhdGEvUGF0aG9sb2d5VHVya2V5LnhtbCBcbiIKIyApCiMgU3lzLnNsZWVwKDEpCiMgcmVwZWF0IHsKIyAgICAgU3lzLnNsZWVwKDAuMSkKIyAgICAgaWYgKHJzdHVkaW9hcGk6OnRlcm1pbmFsQnVzeShteVRlcm0pID09IEZBTFNFKSB7CiMgICAgICAgICBwcmludCgiQ29kZSBFeGVjdXRlZCIpCiMgICAgICAgICBicmVhawojICAgICB9CiMgfQpgYGAKCgpNZVNIIHRlcm1zIGFyZSBleHRyYWN0ZWQgZnJvbSB4bWwuIFtDb21tb24gdGVybXNdKGh0dHBzOi8vd3d3Lm5sbS5uaWguZ292L2JzZC9pbmRleGluZy90cmFpbmluZy9DSEtfMDEwLmh0bWwpIGFyZSBleGNsdWRlZCBhbmQgW21ham9yIHRvcGljc10oaHR0cHM6Ly93d3cubmxtLm5paC5nb3YvYnNkL2Rpc3RlZC9tZXNodHV0b3JpYWwvcHJpbmNpcGxlc29mbWVkbGluZXN1YmplY3RpbmRleGluZy9tYWpvcnRvcGljcy8pIGFyZSBzZWxlY3RlZC4KCmBgYHtyIGV4dHJhY3QgbWFqb3IgTWVTSCB0b3BpY3MgLWV4Y2x1ZGluZyBjb21tb24gdGFncy0gZnJvbSB4bWwsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9Cm15VGVybSA8LSByc3R1ZGlvYXBpOjp0ZXJtaW5hbENyZWF0ZShzaG93ID0gRkFMU0UpCnJzdHVkaW9hcGk6OnRlcm1pbmFsU2VuZCgKbXlUZXJtLAoieHRyYWN0IC1pbnB1dCAvVXNlcnMvc2VyZGFyYmFsY2lvbGQvUmVwVGVtcGxhdGVzL3B1Ym1lZC9kYXRhL1BhdGhvbG9neVR1cmtleS54bWwgLXBhdHRlcm4gTWVzaEhlYWRpbmcgLWlmIERlc2NyaXB0b3JOYW1lQE1ham9yVG9waWNZTiAtZXF1YWxzIFkgLW9yIFF1YWxpZmllck5hbWVATWFqb3JUb3BpY1lOIC1lcXVhbHMgWSAtZWxlbWVudCBEZXNjcmlwdG9yTmFtZXwgZ3JlcCAtdnhmIC9Vc2Vycy9zZXJkYXJiYWxjaW9sZC9SZXBUZW1wbGF0ZXMvcHVibWVkL2RhdGEvY2hlY2t0YWdzLnR4dCB8IHNvcnQtdW5pcS1jb3VudC1yYW5rID4gL1VzZXJzL3NlcmRhcmJhbGNpb2xkL1JlcFRlbXBsYXRlcy9wdWJtZWQvZGF0YS9QYXRob2xvZ3lUdXJrZXlNZVNILmNzdiBcbiIKKQpTeXMuc2xlZXAoMSkKcmVwZWF0IHsKU3lzLnNsZWVwKDAuMSkKaWYgKHJzdHVkaW9hcGk6OnRlcm1pbmFsQnVzeShteVRlcm0pID09IEZBTFNFKSB7CnByaW50KCJDb2RlIEV4ZWN1dGVkIikKYnJlYWsKfQp9CmBgYAoKS2V5d29yZHMgYXJlIGV4dHJhY3RlZCBmcm9tIGB4bWxgLgoKYGBge3IgZXh0cmFjdCBhdXRob3Iga2V5d29yZHMgZnJvbSB4bWwsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIHJlc3VsdHM9J2FzaXMnfQpteVRlcm0gPC0gcnN0dWRpb2FwaTo6dGVybWluYWxDcmVhdGUoc2hvdyA9IEZBTFNFKQpyc3R1ZGlvYXBpOjp0ZXJtaW5hbFNlbmQoCm15VGVybSwKInh0cmFjdCAtaW5wdXQgL1VzZXJzL3NlcmRhcmJhbGNpb2xkL1JlcFRlbXBsYXRlcy9wdWJtZWQvZGF0YS9QYXRob2xvZ3lUdXJrZXkueG1sIC1wYXR0ZXJuIEtleXdvcmQgLWVsZW1lbnQgS2V5d29yZCB8IHNvcnQtdW5pcS1jb3VudC1yYW5rID4gL1VzZXJzL3NlcmRhcmJhbGNpb2xkL1JlcFRlbXBsYXRlcy9wdWJtZWQvZGF0YS9hdXRob3JrZXl3b3Jkcy5jc3YgXG4iCikKU3lzLnNsZWVwKDEpCnJlcGVhdCB7ClN5cy5zbGVlcCgwLjEpCmlmIChyc3R1ZGlvYXBpOjp0ZXJtaW5hbEJ1c3kobXlUZXJtKSA9PSBGQUxTRSkgewpwcmludCgiQ29kZSBFeGVjdXRlZCIpCmJyZWFrCn0KfQpgYGAKCgpUaGUgcmV0cmlldmVkIGluZm9ybWF0aW9uIHdhcyBjb21waWxlZCBpbiBhIHRhYmxlLgoKYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbGlicmFyeShyZWFkcikKCmF1dGhvcmtleXdvcmRzIDwtIHJlYWRfdGFibGUyKCIvVXNlcnMvc2VyZGFyYmFsY2lvbGQvUmVwVGVtcGxhdGVzL3B1Ym1lZC9kYXRhL2F1dGhvcmtleXdvcmRzLmNzdiIsIGNvbF9uYW1lcyA9IGMoImZyZXF1ZW5jeSIsICJhdXRob3Iga2V5IHdvcmQiKSwgY29scygKICBmcmVxdWVuY3kgPSBjb2xfaW50ZWdlcigpLAogIGBhdXRob3Iga2V5IHdvcmRgID0gY29sX2NoYXJhY3RlcigpCiksIGd1ZXNzX21heCA9IDEwMCkKCmF1dGhvcmtleXdvcmRzIDwtIGF1dGhvcmtleXdvcmRzICU+JSAKICAgIGhlYWQobj0yMCkKClBhdGhvbG9neVR1cmtleU1lU0ggPC0gcmVhZF90YWJsZTIoIi9Vc2Vycy9zZXJkYXJiYWxjaW9sZC9SZXBUZW1wbGF0ZXMvcHVibWVkL2RhdGEvUGF0aG9sb2d5VHVya2V5TWVTSC5jc3YiLCBjb2xfbmFtZXMgPSBjKCJmcmVxdWVuY3kiLCAiTWVTSCB0ZXJtIiksIGNvbHMoCiAgZnJlcXVlbmN5ID0gY29sX2ludGVnZXIoKSwKICBgTWVTSCB0ZXJtYCA9IGNvbF9jaGFyYWN0ZXIoKQopLCBndWVzc19tYXggPSAxMDApCgpQYXRob2xvZ3lUdXJrZXlNZVNIIDwtUGF0aG9sb2d5VHVya2V5TWVTSCAlPiUgCiAgICBoZWFkKG4gPSAyMCkKYGBgCgojIFJlc3VsdHMKCl8qKk1vc3QgY29tbW9uIDIwIGF1dGhvciBzdXBwbGllZCBrZXl3b3JkcyBhcmUgZ2l2ZW4gYmVsb3cuKipfCgpgYGB7ciByZXN1bHRzID0gJ2FzaXMnfQpwcmludChhdXRob3JrZXl3b3JkcykKIyBwYW5kZXI6OnBhbmRlcihhdXRob3JrZXl3b3JkcywganVzdGlmeSA9ICJsZWZ0IiwgY2FwdGlvbiA9ICJNb3N0IGNvbW1vbiAyMCBhdXRob3Igc3VwcGxpZWQga2V5d29yZHMiKQpgYGAKCl8qKk1vc3QgY29tbW9uIDIwIE1lU0ggdGVybXMgYXJlIGdpdmVuIGJlbG93KipfCgpgYGB7ciByZXN1bHRzID0gJ2FzaXMnfQoKIyBwYW5kZXI6OnBhbmRlcihQYXRob2xvZ3lUdXJrZXlNZVNILCBqdXN0aWZ5ID0gImxlZnQiLCBjYXB0aW9uID0gIk1vc3QgY29tbW9uIDIwIE1lU0ggdGVybXMiKQoKcHJpbnQoUGF0aG9sb2d5VHVya2V5TWVTSCkKCmBgYAoKCgojIENvbW1lbnRzCgoqKkNvbW1lbnQ6KioKV2UgbWF5IGNvbmNsdWRlIHRoYXQgYWRlbm9jYXJjaW5vbWFzLCBicmVhc3QgYW5kIHRoeXJvaWQgdHVtb3JzLCBhbmQgaW1tdW5vaGlzdG9jaGVtaXN0cnkgYXJlIHRoZSBtb3N0IGNvbW1vbiByZXNlYXJjaCB0b3BpY3MuIEx1bmcsIGtpZG5leSBhbmQgb3ZhcnkgYXJlIGFsc28gY29tbW9uIHJlc2VhcmNoIHRvcGljcy4KCgoqKkZ1dHVyZSBXb3JrOioqCiogVGhlIGNoYW5nZXMgaW4gZnJlcXVlbmNpZXMgb2YgdG9waWNzIHRocm91Z2hvdXQgdGltZQoqIFRoZSBkaXN0cmlidXRpb24gb2YgdG9waWNzIGFtb25nIGluc3RpdHV0aW9ucwoKCgoKLS0tCgoKIyBGZWVkYmFjawoKW1NlcmRhciBCYWxjxLEsIE1ELCBQYXRob2xvZ2lzdF0oaHR0cHM6Ly9naXRodWIuY29tL3NiYWxjaSkgd291bGQgbGlrZSB0byBoZWFyIHlvdXIgZmVlZGJhY2s6IGh0dHBzOi8vZ29vLmdsL2Zvcm1zL1lqR1o1REhndFBsUjFSbkIzCgpUaGlzIGRvY3VtZW50IHdpbGwgYmUgY29udGluaW91c2x5IHVwZGF0ZWQgYW5kIHRoZSBsYXN0IHVwZGF0ZSB3YXMgb24gYHIgU3lzLnRpbWUoKWAuCgotLS0KCiMgQmFjayB0byBNYWluIE1lbnUKCltNYWluIFBhZ2UgZm9yIEJpYmxpb2dyYXBoaWMgQW5hbHlzaXNdKGh0dHBzOi8vc2JhbGNpLmdpdGh1Yi5pby9wdWJtZWQvQmlibGlvZ3JhcGhpY1N0dWRpZXMuaHRtbCk=
+
LS0tCnRpdGxlOiAiQmlibGlvZ3JhcGhpYyBTdHVkaWVzIgphdXRob3I6ICJTZXJkYXIgQmFsY2ksIE1ELCBQYXRob2xvZ2lzdCIKZGF0ZTogJ2ByIGZvcm1hdChTeXMudGltZSgpKWAnCm91dHB1dDogCiAgaHRtbF9ub3RlYm9vazogCiAgICBjb2RlX2ZvbGRpbmc6IG5vbmUKICAgIGZpZ19jYXB0aW9uOiB5ZXMKICAgIGhpZ2hsaWdodDoga2F0ZQogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMKICAgIHRoZW1lOiBjZXJ1bGVhbgogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCi0tLQoKKioiTWVTSCBUZXJtcyBhbmQgQXV0aG9yIEtleSBXb3JkcyBJbiBQYXRob2xvZ3kgQXJ0aWNsZXMgRnJvbSBUdXJrZXkiKioKCgoKYGBge3J9CmtuaXRyOjpvcHRzX2NodW5rJHNldChtZXNzYWdlID0gRkFMU0UsIHdhcm5pbmc9RkFMU0UsIHRpZHkgPSBUUlVFLCBlcnJvciA9IFRSVUUpCmBgYAoKYGBge3J9CmxpYnJhcnkocm1hcmtkb3duKQpgYGAKCgojIEJhY2tncm91bmQKClB1Yk1lZCBjb2xsZWN0aW9uIGZyb20gW05hdGlvbmFsIExpYnJhcnkgb2YgTWVkaWNpbmVdKGh0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLyksIGhhcyB0aGUgbW9zdCBjb21wcmVoZW5zaXZlIGluZm9ybWF0aW9uIGFib3V0IHBlZXIgcmV2aWV3ZWQgYXJ0aWNsZXMgaW4gbWVkaWNpbmUuCgpbTWVTSCBUZXJtc10oaHR0cHM6Ly93d3cubmxtLm5paC5nb3YvcHVicy9mYWN0c2hlZXRzL21lc2guaHRtbCkgaXMgYSBjb250cm9sbGVkIHZvY2FidWxhcnkgdGhhdCBpcyB1c2VkIHRvIGxhYmVsIFB1Yk1lZCBhcnRpY2xlcyBhY2NvcmRpbmcgdG8gdGhlaXIgY29udGVudC4gSXQgaXMgZG9uZSBieSBleHBlcnRzIGluIE5hdGlvbmFsIExpYnJhcnkgb2YgTWVkaWNpbmUuIEtleXdvcmRzIGFyZSBsYWJsZXMgdGhhdCBhcmUgZ2l2ZW4gYnkgYXV0aG9ycyBvZiB0aGUgYXJ0aWNsZS4gQm90aCBhcmUgaW5jbHVkZWQgaW4gYSBQdWJNZWQgcmVjb3JkIG9mIGFuIGFydGljbGUuCgpbRURpcmVjdF0oaHR0cHM6Ly9kYXRhZ3VpZGUubmxtLm5paC5nb3YvZWRpcmVjdC9pbnN0YWxsLmh0bWwpIGlzIGEgdmFsdWFibGUgdG9vbCB0byBpZGVudGlmeSB2YXJpb3VzIGZlYXR1cmVzIG9mIHB1Ymxpc2hlZCBhcnRpY2xlcyB0aGF0IGFyZSBpbmRleGVkIGluIFB1Yk1lZC4KCiMgQWltCgpJbiB0aGlzIGFuYWx5c2lzIHdlIGFpbWVkIHRvIGlkZW50aWZ5IHRoZSBtb3N0IGNvbW1vbiB0b3BpY3MgaW52ZXN0aWdhdGVkIGluIFR1cmtleSBhbmQgcHVibGlzaGVkIGluIHBhdGhvbG9neSBqb3VybmFscy4gVGhpcyBtYXkgcmV2ZWFsIHRoZSBjb21tb24gcmVzZWFyY2ggdG9waWNzIFR1cmtpc2ggcGF0aG9sb2dpc3RzIGFyZSBpbnRlcmVzdGVkLiBXZSBleHRyYWN0ZWQgbW9zdCBjb21tb24gTWVTSCB0ZXJtcyBhbmQga2V5d29yZHMgZnJvbSBQdWJNZWQgYXJ0aWNsZXMgdXNpbmcgW0VEaXJlY3RdKGh0dHBzOi8vZGF0YWd1aWRlLm5sbS5uaWguZ292L2VkaXJlY3Qvb3ZlcnZpZXcuaHRtbCk6CltNZVNIIFRlcm1zIFBhdGhvbG9neSBBcnRpY2xlcyBGcm9tIFR1cmtleV0oaHR0cHM6Ly9zYmFsY2kuZ2l0aHViLmlvL3B1Ym1lZC9NZVNIX1Rlcm1zX1BhdGhvbG9neV9BcnRpY2xlc19Gcm9tX1R1cmtleS5odG1sKQoKCiMgTWF0ZXJpYWxzIGFuZCBNZXRob2RzCgoqKk1ldGhvZHM6KioKClBhY2thZ2VzIHVzZWQgZm9yIGFuYWx5c2lzIGFyZSBnaXZlbi4gYFRpZHl2ZXJzZWAgaXMgdXNlZCBmb3IgZGF0YSBtYW5pcHVsYXRpb24sIGFuZCBbcnN0dWRpb2FwaV0oaHR0cHM6Ly9naXRodWIuY29tL3JzdHVkaW8vcnN0dWRpby9pc3N1ZXMvMjE5MykgdG8gcnVuIGUtdXRpbGl0aWVzIGNvbW1hbmRzIGZyb20gUlN0dWRpby4KCgpgYGB7ciBsb2FkIC1pZiBub3QgcHJlc2VudCBpbnN0YWxsLSByZXF1aXJlZCBwYWNrYWdlc30KdXNlUGFja2FnZSA8LSBmdW5jdGlvbihwKQp7CmlmICghaXMuZWxlbWVudChwLCBpbnN0YWxsZWQucGFja2FnZXMoKVssIDFdKSkKaW5zdGFsbC5wYWNrYWdlcyhwLCBkZXAgPSBUUlVFKQpyZXF1aXJlKHAsIGNoYXJhY3Rlci5vbmx5ID0gVFJVRSkKfQoKdXNlUGFja2FnZSgidGlkeXZlcnNlIikKdXNlUGFja2FnZSgicnN0dWRpb2FwaSIpCnVzZVBhY2thZ2UoInBhbmRlciIpCmBgYAoKClBhdGhvbG9neSBKb3VybmFsIElTU04gTGlzdCB3YXMgcmV0cmlldmVkIGZyb20gW0luIENpdGVzIENsYXJpdmF0ZV0oaHR0cHM6Ly9qY3IuaW5jaXRlcy50aG9tc29ucmV1dGVycy5jb20vKSwgYW5kIEpvdXJuYWwgRGF0YSBGaWx0ZXJlZCBhcyBmb2xsb3dzOiAKCmBKQ1IgWWVhcjogMjAxNiBTZWxlY3RlZCBFZGl0aW9uczogU0NJRSxTU0NJIFNlbGVjdGVkIENhdGVnb3JpZXM6ICdQQVRIT0xPR1knIFNlbGVjdGVkIENhdGVnb3J5IFNjaGVtZTogV29TYAoKCmBgYHtyIEdldCBJU1NOIExpc3QgZnJvbSBkYXRhIGRvd25sb2FkZWQgZnJvbSBXb1N9CiMgIyBHZXQgSVNTTiBMaXN0IGZyb20gZGF0YSBkb3dubG9hZGVkIGZyb20gV29TCiMgSVNTTkxpc3QgPC0gSm91cm5hbEhvbWVHcmlkIDwtIHJlYWRfY3N2KCIvVXNlcnMvc2VyZGFyYmFsY2lvbGQvUmVwVGVtcGxhdGVzL3B1Ym1lZC9kYXRhL0pvdXJuYWxIb21lR3JpZC5jc3YiLCBza2lwID0gMSkgJT4lCiMgc2VsZWN0KElTU04pICU+JQojIGZpbHRlcighaXMubmEoSVNTTikpICU+JQojIHQoKSAlPiUKIyBwYXN0ZSgiT1IgIiwgY29sbGFwc2UgPSAiIikgIyBhZGQgT1IgYmV0d2VlbiBJU1NOIExpc3QKIyAKIyBJU1NOTGlzdCA8LSBnc3ViKCIgT1IgJCIsICIiICwgSVNTTkxpc3QpICMgdG8gcmVtb3ZlIGxhc3QgT1IKYGBgCgoKRGF0YSBpcyByZXRyaWV2ZWQgZnJvbSBQdWJNZWQgdmlhIFtlLVV0aWxpdGllc10oaHR0cHM6Ly9kYXRhZ3VpZGUubmxtLm5paC5nb3YvKS4KClRoZSBzZWFyY2ggZm9ybXVsYSBmb3IgUHViTWVkIGlzIGdlbmVyYXRlZCBhcyAiSVNTTiBMaXN0IEFORCBDb3VudHJ5W0FmZmlsaWF0aW9uXSIgYXMgZGVzY3JpYmVkIGluIFthZHZhbmNlZCBzZWFyY2ggb2YgUHViTWVkXShodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC9hZHZhbmNlZCkuCgpgYGB7ciBHZW5lcmF0ZSBTZWFyY2ggRm9ybXVsYSBGb3IgUGF0aG9sb2d5IEpvdXJuYWxzIEFORCBDb3VudHJpZXN9CiMgIyBHZW5lcmF0ZSBTZWFyY2ggRm9ybXVsYSBGb3IgUGF0aG9sb2d5IEpvdXJuYWxzIEFORCBDb3VudHJpZXMKIyBzZWFyY2hmb3JtdWxhIDwtCiMgcGFzdGUoIiciLCBJU1NOTGlzdCwgIiciLCAiIEFORCAiLCAiVHVya2V5W0FmZmlsaWF0aW9uXSIpCiMgd3JpdGUoc2VhcmNoZm9ybXVsYSwgIi9Vc2Vycy9zZXJkYXJiYWxjaW9sZC9SZXBUZW1wbGF0ZXMvcHVibWVkL2RhdGEvc2VhcmNoZm9ybXVsYS50eHQiKQpgYGAKCkFydGljbGVzIGFyZSBkb3dubG9hZGVkIGFzIGB4bWxgLgoKYGBge3IgU2VhcmNoIFB1Yk1lZCwgd3JpdGUgZGF0YSBhcyB4bWx9CiMgbXlUZXJtIDwtIHJzdHVkaW9hcGk6OnRlcm1pbmFsQ3JlYXRlKHNob3cgPSBGQUxTRSkKIyByc3R1ZGlvYXBpOjp0ZXJtaW5hbFNlbmQoCiMgICAgIG15VGVybSwKIyAgICAgImVzZWFyY2ggLWRiIHB1Ym1lZCAtcXVlcnkgXCIkKGNhdCAvVXNlcnMvc2VyZGFyYmFsY2lvbGQvUmVwVGVtcGxhdGVzL3B1Ym1lZC9kYXRhL3NlYXJjaGZvcm11bGEudHh0KVwiIC1kYXRldHlwZSBQREFUIC1taW5kYXRlIDE5MDAgLW1heGRhdGUgMzAwMCB8IGVmZXRjaCAtZm9ybWF0IHhtbCA+IC9Vc2Vycy9zZXJkYXJiYWxjaW9sZC9SZXBUZW1wbGF0ZXMvcHVibWVkL2RhdGEvUGF0aG9sb2d5VHVya2V5LnhtbCBcbiIKIyApCiMgU3lzLnNsZWVwKDEpCiMgcmVwZWF0IHsKIyAgICAgU3lzLnNsZWVwKDAuMSkKIyAgICAgaWYgKHJzdHVkaW9hcGk6OnRlcm1pbmFsQnVzeShteVRlcm0pID09IEZBTFNFKSB7CiMgICAgICAgICBwcmludCgiQ29kZSBFeGVjdXRlZCIpCiMgICAgICAgICBicmVhawojICAgICB9CiMgfQpgYGAKCgpNZVNIIHRlcm1zIGFyZSBleHRyYWN0ZWQgZnJvbSB4bWwuIFtDb21tb24gdGVybXNdKGh0dHBzOi8vd3d3Lm5sbS5uaWguZ292L2JzZC9pbmRleGluZy90cmFpbmluZy9DSEtfMDEwLmh0bWwpIGFyZSBleGNsdWRlZCBhbmQgW21ham9yIHRvcGljc10oaHR0cHM6Ly93d3cubmxtLm5paC5nb3YvYnNkL2Rpc3RlZC9tZXNodHV0b3JpYWwvcHJpbmNpcGxlc29mbWVkbGluZXN1YmplY3RpbmRleGluZy9tYWpvcnRvcGljcy8pIGFyZSBzZWxlY3RlZC4KCmBgYHtyIGV4dHJhY3QgbWFqb3IgTWVTSCB0b3BpY3MgLWV4Y2x1ZGluZyBjb21tb24gdGFncy0gZnJvbSB4bWwsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CiMgbXlUZXJtIDwtIHJzdHVkaW9hcGk6OnRlcm1pbmFsQ3JlYXRlKHNob3cgPSBGQUxTRSkKIyByc3R1ZGlvYXBpOjp0ZXJtaW5hbFNlbmQoCiMgbXlUZXJtLAojICJ4dHJhY3QgLWlucHV0IC9Vc2Vycy9zZXJkYXJiYWxjaW9sZC9SZXBUZW1wbGF0ZXMvcHVibWVkL2RhdGEvUGF0aG9sb2d5VHVya2V5LnhtbCAtcGF0dGVybiBNZXNoSGVhZGluZyAtaWYgRGVzY3JpcHRvck5hbWVATWFqb3JUb3BpY1lOIC1lcXVhbHMgWSAtb3IgUXVhbGlmaWVyTmFtZUBNYWpvclRvcGljWU4gLWVxdWFscyBZIC1lbGVtZW50IERlc2NyaXB0b3JOYW1lfCBncmVwIC12eGYgL1VzZXJzL3NlcmRhcmJhbGNpb2xkL1JlcFRlbXBsYXRlcy9wdWJtZWQvZGF0YS9jaGVja3RhZ3MudHh0IHwgc29ydC11bmlxLWNvdW50LXJhbmsgPiAvVXNlcnMvc2VyZGFyYmFsY2lvbGQvUmVwVGVtcGxhdGVzL3B1Ym1lZC9kYXRhL1BhdGhvbG9neVR1cmtleU1lU0guY3N2IFxuIgojICkKIyBTeXMuc2xlZXAoMSkKIyByZXBlYXQgewojIFN5cy5zbGVlcCgwLjEpCiMgaWYgKHJzdHVkaW9hcGk6OnRlcm1pbmFsQnVzeShteVRlcm0pID09IEZBTFNFKSB7CiMgcHJpbnQoIkNvZGUgRXhlY3V0ZWQiKQojIGJyZWFrCiMgfQojIH0KYGBgCgpLZXl3b3JkcyBhcmUgZXh0cmFjdGVkIGZyb20gYHhtbGAuCgpgYGB7ciBleHRyYWN0IGF1dGhvciBrZXl3b3JkcyBmcm9tIHhtbCwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgcmVzdWx0cz0nYXNpcyd9CiMgbXlUZXJtIDwtIHJzdHVkaW9hcGk6OnRlcm1pbmFsQ3JlYXRlKHNob3cgPSBGQUxTRSkKIyByc3R1ZGlvYXBpOjp0ZXJtaW5hbFNlbmQoCiMgbXlUZXJtLAojICJ4dHJhY3QgLWlucHV0IC9Vc2Vycy9zZXJkYXJiYWxjaW9sZC9SZXBUZW1wbGF0ZXMvcHVibWVkL2RhdGEvUGF0aG9sb2d5VHVya2V5LnhtbCAtcGF0dGVybiBLZXl3b3JkIC1lbGVtZW50IEtleXdvcmQgfCBzb3J0LXVuaXEtY291bnQtcmFuayA+IC9Vc2Vycy9zZXJkYXJiYWxjaW9sZC9SZXBUZW1wbGF0ZXMvcHVibWVkL2RhdGEvYXV0aG9ya2V5d29yZHMuY3N2IFxuIgojICkKIyBTeXMuc2xlZXAoMSkKIyByZXBlYXQgewojIFN5cy5zbGVlcCgwLjEpCiMgaWYgKHJzdHVkaW9hcGk6OnRlcm1pbmFsQnVzeShteVRlcm0pID09IEZBTFNFKSB7CiMgcHJpbnQoIkNvZGUgRXhlY3V0ZWQiKQojIGJyZWFrCiMgfQojIH0KYGBgCgoKVGhlIHJldHJpZXZlZCBpbmZvcm1hdGlvbiB3YXMgY29tcGlsZWQgaW4gYSB0YWJsZS4KCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CmxpYnJhcnkocmVhZHIpCgphdXRob3JrZXl3b3JkcyA8LSByZWFkX3RhYmxlMigiL1VzZXJzL3NlcmRhcmJhbGNpb2xkL1JlcFRlbXBsYXRlcy9wdWJtZWQvZGF0YS9hdXRob3JrZXl3b3Jkcy5jc3YiLCBjb2xfbmFtZXMgPSBjKCJmcmVxdWVuY3kiLCAiYXV0aG9yIGtleSB3b3JkIiksIGNvbHMoCiAgZnJlcXVlbmN5ID0gY29sX2ludGVnZXIoKSwKICBgYXV0aG9yIGtleSB3b3JkYCA9IGNvbF9jaGFyYWN0ZXIoKQopLCBndWVzc19tYXggPSAxMDApCgphdXRob3JrZXl3b3JkcyA8LSBhdXRob3JrZXl3b3JkcyAlPiUgCiAgICBoZWFkKG49MjApCgpQYXRob2xvZ3lUdXJrZXlNZVNIIDwtIHJlYWRfdGFibGUyKCIvVXNlcnMvc2VyZGFyYmFsY2lvbGQvUmVwVGVtcGxhdGVzL3B1Ym1lZC9kYXRhL1BhdGhvbG9neVR1cmtleU1lU0guY3N2IiwgY29sX25hbWVzID0gYygiZnJlcXVlbmN5IiwgIk1lU0ggdGVybSIpLCBjb2xzKAogIGZyZXF1ZW5jeSA9IGNvbF9pbnRlZ2VyKCksCiAgYE1lU0ggdGVybWAgPSBjb2xfY2hhcmFjdGVyKCkKKSwgZ3Vlc3NfbWF4ID0gMTAwKQoKUGF0aG9sb2d5VHVya2V5TWVTSCA8LVBhdGhvbG9neVR1cmtleU1lU0ggJT4lIAogICAgaGVhZChuID0gMjApCmBgYAoKIyBSZXN1bHRzCgpfKipNb3N0IGNvbW1vbiAyMCBhdXRob3Igc3VwcGxpZWQga2V5d29yZHMgYXJlIGdpdmVuIGJlbG93LioqXwoKYGBge3IgcmVzdWx0cyA9ICdhc2lzJ30KcHJpbnQoYXV0aG9ya2V5d29yZHMpCiMgcGFuZGVyOjpwYW5kZXIoYXV0aG9ya2V5d29yZHMsIGp1c3RpZnkgPSAibGVmdCIsIGNhcHRpb24gPSAiTW9zdCBjb21tb24gMjAgYXV0aG9yIHN1cHBsaWVkIGtleXdvcmRzIikKYGBgCgpfKipNb3N0IGNvbW1vbiAyMCBNZVNIIHRlcm1zIGFyZSBnaXZlbiBiZWxvdyoqXwoKYGBge3IgcmVzdWx0cyA9ICdhc2lzJ30KCiMgcGFuZGVyOjpwYW5kZXIoUGF0aG9sb2d5VHVya2V5TWVTSCwganVzdGlmeSA9ICJsZWZ0IiwgY2FwdGlvbiA9ICJNb3N0IGNvbW1vbiAyMCBNZVNIIHRlcm1zIikKCnByaW50KFBhdGhvbG9neVR1cmtleU1lU0gpCgpgYGAKCgoKIyBDb21tZW50cwoKKipDb21tZW50OioqCldlIG1heSBjb25jbHVkZSB0aGF0IGFkZW5vY2FyY2lub21hcywgYnJlYXN0IGFuZCB0aHlyb2lkIHR1bW9ycywgYW5kIGltbXVub2hpc3RvY2hlbWlzdHJ5IGFyZSB0aGUgbW9zdCBjb21tb24gcmVzZWFyY2ggdG9waWNzLiBMdW5nLCBraWRuZXkgYW5kIG92YXJ5IGFyZSBhbHNvIGNvbW1vbiByZXNlYXJjaCB0b3BpY3MuCgoKKipGdXR1cmUgV29yazoqKgoqIFRoZSBjaGFuZ2VzIGluIGZyZXF1ZW5jaWVzIG9mIHRvcGljcyB0aHJvdWdob3V0IHRpbWUKKiBUaGUgZGlzdHJpYnV0aW9uIG9mIHRvcGljcyBhbW9uZyBpbnN0aXR1dGlvbnMKCgoKCi0tLQoKCiMgRmVlZGJhY2sKCltTZXJkYXIgQmFsY8SxLCBNRCwgUGF0aG9sb2dpc3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9zYmFsY2kpIHdvdWxkIGxpa2UgdG8gaGVhciB5b3VyIGZlZWRiYWNrOiBodHRwczovL2dvby5nbC9mb3Jtcy9ZakdaNURIZ3RQbFIxUm5CMwoKVGhpcyBkb2N1bWVudCB3aWxsIGJlIGNvbnRpbmlvdXNseSB1cGRhdGVkIGFuZCB0aGUgbGFzdCB1cGRhdGUgd2FzIG9uIGByIFN5cy50aW1lKClgLgoKLS0tCgojIEJhY2sgdG8gTWFpbiBNZW51CgpbTWFpbiBQYWdlIGZvciBCaWJsaW9ncmFwaGljIEFuYWx5c2lzXShodHRwczovL3NiYWxjaS5naXRodWIuaW8vcHVibWVkL0JpYmxpb2dyYXBoaWNTdHVkaWVzLmh0bWwp
diff --git a/docs/SchedulePubMedAnalysis.nb.html b/docs/SchedulePubMedAnalysis.nb.html index e37ab24..0648445 100644 --- a/docs/SchedulePubMedAnalysis.nb.html +++ b/docs/SchedulePubMedAnalysis.nb.html @@ -14,2666 +14,62 @@ Bibliographic Studies - - - - - - - - - - - - - - + + + + + + + + + + + + + +