From 49265b11640c0346efd60672cddb11d1e78b0af8 Mon Sep 17 00:00:00 2001 From: David Norris Date: Tue, 12 Jan 2021 15:05:12 -0500 Subject: [PATCH] Candidate v0.2-1 --- .Rbuildignore | 1 - DESCRIPTION | 11 ++-- LICENSE | 2 +- NEWS.md | 7 +++ R/data.R | 29 +++++++++++ data/viola_dtp.rda | Bin 0 -> 18498 bytes vignettes/Safety-Schematic-via-DTP.Rmd | 21 +++----- vignettes/precautionary-package.bib | 69 ++++++++++++++++++++++++- 8 files changed, 117 insertions(+), 23 deletions(-) create mode 100644 R/data.R create mode 100644 data/viola_dtp.rda diff --git a/.Rbuildignore b/.Rbuildignore index 5acdf95..ac6cbb1 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -5,6 +5,5 @@ ^publicity ^inst/shiny-apps/.*/rsconnect ^vignettes/DTP-vs-Korn94.Rmd -^vignettes/Safety-Schematic-via-DTP.Rmd ^exec/prolog/.* ^exec/T[5-9].tab diff --git a/DESCRIPTION b/DESCRIPTION index 0b8b15e..912d25f 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: precautionary Type: Package Title: Safety Diagnostics for Dose-Escalation Trial Designs -Version: 0.2-0 -Date: 2020-12-14 +Version: 0.2-1 +Date: 2021-01-12 Authors@R: c(person("David C.", "Norris" , role = c("aut", "cre", "cph") , email = "david@precisionmethods.guru" @@ -18,7 +18,7 @@ Depends: magrittr, escalation, data.table, - R (>= 2.10) + R (>= 3.5.0) Imports: methods, dplyr, rlang, stringr, knitr, kableExtra Suggests: rmarkdown, @@ -26,7 +26,8 @@ Suggests: tufte, testthat, lattice, - latticeExtra + latticeExtra, + dtpcrm Description: Enhances various R packages that support the design and simulation of phase 1 dose-escalation trials, adding diagnostics to examine the safety characteristics of these designs in light of expected @@ -43,8 +44,10 @@ Encoding: UTF-8 NeedsCompilation: no RoxygenNote: 7.1.1 Collate: + 'data.R' 'enhance.R' 'exact.R' 'precautionary-package.R' 'toxicity_generators.R' 'simulate_trials.R' +LazyData: true diff --git a/LICENSE b/LICENSE index d0caddd..b2585de 100644 --- a/LICENSE +++ b/LICENSE @@ -1,2 +1,2 @@ -YEAR: 2020 +YEAR: 2020,2021 COPYRIGHT HOLDER: David C. Norris diff --git a/NEWS.md b/NEWS.md index 1a12cc5..bb55d3d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,10 @@ +# precautionary 0.2-1 + +## Changes + +* Added vignette 'Generalized dose-escalation safety schematics via DTP' +* Corrected a few typos + # precautionary 0.2 ## Changes diff --git a/R/data.R b/R/data.R new file mode 100644 index 0000000..f6cc88d --- /dev/null +++ b/R/data.R @@ -0,0 +1,29 @@ +#' Complete dose transition pathways (DTP) table for the VIOLA trial. +#' +#' This data set caches a long computation (17 minutes on a 2.6GHz i7) +#' needed to build one package vignette. +#' +#' @format A data frame with 4^7 = 16384 rows and 15 columns, each row +#' representing one possible path the trial could take: +#' \describe{ +#' \item{D0}{Initial dose level} +#' \item{T1}{Number of toxicities observed in first cohort} +#' \item{D1}{Dose recommendation after the first cohort} +#' \item{T2}{Number of toxicities observed in second cohort} +#' \item{D2}{Dose recommendation after the second cohort} +#' \item{T3}{Number of toxicities observed in third cohort} +#' \item{D3}{Dose recommendation after the third cohort} +#' \item{T4}{Number of toxicities observed in fourth cohort} +#' \item{D4}{Dose recommendation after the fourth cohort} +#' \item{T5}{Number of toxicities observed in fifth cohort} +#' \item{D5}{Dose recommendation after the fifth cohort} +#' \item{T6}{Number of toxicities observed in sixth cohort} +#' \item{D6}{Dose recommendation after the sixth cohort} +#' \item{T7}{Number of toxicities observed in seventh cohort} +#' \item{D7}{Dose recommendation after the seventh cohort} +#' } +#' +#' @seealso +#' Documentation of the \code{\link[dtpcrm]{calculate_dtps}} function. +#' +"viola_dtp" diff --git a/data/viola_dtp.rda b/data/viola_dtp.rda new file mode 100644 index 0000000000000000000000000000000000000000..fc522fe43d3a9bd04d424c974814bec6fe32280d GIT binary patch literal 18498 zcmeG@4P1=b`e&v@=tk?aSgoCktWcWW6tZh0eW04ih)^S$*H@WAWUSS7mlmaz=}VNF zOl&o8G)k;el!T^c#>ib(NE4DsANRa7Q%y5dCUp1y@Bf~6e!n^AywCeQ=lOolnRmWl z=4&-=j)$?U$HlRQyR-(qYdhTfve<427y_<>A-1Oo`S`=YcEBQy-0k?#1+1_3I_axkLTz<|f$ zKcsEK-%b&hGM2H#)=>y5L|)u4a7zm(xJ?N@ zGU0UWLX)H*&o3?AemYr`vUuR;jW;b_R!ntqIphQ%KKu9aM}E9xw3V%Gm8fTG?R{im zfF>@^F%EraVOgm;Wz@hi)(wA>NK1s#U}OdulQ*!I_WB8n<+&{0;W*nr;@rL^`go#X zL730ez=l9BjbV3f*Z3m^lMYfA*k|fR3m3c^naBw)&kjIvMv23++#mC(cl8APIqt%! z!T}T(E6EFA08$6*x%w=1AMO^gWT5HOU(*@cc{qPCXcQyWBk>ngb6$ql(67?_@fbuf zZ`ldEyvcjGtwBL;rS%OD|M|~{58u{2pKr3d_aek*$Mmfi2$9YX3Tb1DZe! z-}V9k4Ka|m{`c|#7zZAJJX?Ur8_H&7Ut{Ekc^Y=X2fsGnYj<4ZZztOtNTwn0cQ+-m zTyG~At~U4jDhZdkAh4~R^h4vb@YxM+*n^shPOU7~4=ru1#D(zAykxK%04*2eb3d(3g2YumuOI8@0My9w}2b6n+Q%e@P>r;$$*7%rC zPd^^D;LJ1&BA1Z5N)(Xgc8N%~%YQuYcq)_bPfprqe zfiFuqSv#t8s}lq3f~Kr^o3r}jk~3fXzJ8pu%_RKfYtWlV=~jH->?iD?ZZY67V{65ASl8?OXAAs7}c}LPZN^&znXv6 z)aFt0Bl_H2-L!pTJ%V2*VfDc4+TWbo+YkA1@zBg8D=NwwFOu9`nr82Q(HwV2G=7dI z-uCVC#a{UNnuq74IFM)Wc8?(YjUR8=VFtLS=6ChgrEyc@uonAH+UoN<0RDoG7TEL` zP*qKGlLkZejXs&hk)&-&&8%}`vGuPH_lj9xte%hoOe~4OPwxHb`ahy@=6G+-LhZv}7#iC;GT?CQ{a`4Bm)FK@h93+L zf@PR2ikk7WJQUu$jLYRp5url*X`AO=??RMeb`Xz*k_-t(AqMaLEaghaRj@J#75ZT; zr|x+7>u_hq%e)p9N`ynMDBi?Uyfz<0P=Q2V_jA|mb5*4LZQyBzD|goYS#2vvo?Vf%qoJmz<~~HFAnwkgvSP-q z9Ea)f9sncnRFt0R6i0inz_UlG%v@U{xu5f1YPfYPr(H?8mgsErvWo!!Q-ybWG);&| zB+ssS{2fW@x&iG)BKeINUy9eYiq}oKrxCQNsS(04I_2DL57*!+5{dEvXnNmRaVYB$ z*2b+;(73X`05&|6PH>>Bz(g*V-FE*>H*-@F zv})zbkgmSoEvvd)A*ax;zI-oT2diB2ph32D$R;Cb9>8(`oj1>JMTHxK+6)l1vfE|L z-T1Nw#+CB`%xsjH0Eq+z03ZBzt8}2#QV z13$Mde7uR}1ipRSP*VZJRbVq*9Jaa-xBoysE)7@H4?usGG?nXmmP<{=PZFYaMADHv z8x?v1Ao_RST*B%pOUUa(qa0HbEE3Y5Nj>%BHUAl&Ooa|9Yq@}md%u+Ra5x!R{9WNO zOP>AM5R{LWFE&7&k9(#}GUFB99ZC0yD2ccd!S$r<<4rB`?r%v6JK#VcmQ-#e_;HNT zap#{qPflL7#<+|#<=Wi_CUvjR;*EjH)~3!h|BT3Aig|3*EZ?u3mcntaJvPiTkydny zNXp!rVz+)e--3ulG0pBUi8n~ro(VchcT=;8r~!99ff&p=nDw3eW$$92X+BYwQODM; z_gEdKPj;mgTn_NCNE^hNkK(MN*dAZK{Q7-*)Ng+4_C+2{XF4oP653ti6SZH8U!8Sw zN?7qKm5pf92+;)*?u7#W*QwLXX>+2GD2FwEl_I8D2%i!a%+aqfUb+Y|M*K2J$BSda z9VgGojy}NUI60UEjGbC*S8&_OV_kZN{*8gUhs3 z){1&dvs(7~8P`28meCTopUgBnEPj^mcT>PWNcnyL)xs-}(*zU;1Qpj>-8fUpL`Lum zZvVQu?4(}J>2Ejl^11(rL;g|nnHMTXqe9}Y^7~G)0| zzGWpUSXwiNh7#GV(`MDvgsBPjn@#nMkJpaL&FAz}plQxLS)1CM(l=V)BLsH0dE6J4AmhQ#tzoGK@h#TTo zxXQvOBql6`LOLg4TIexd*UcysxMs$LXCA#ST*_xIstjQ#B$a1+o)G99uo%qau-OR8 zUwqCdGCv~XGRN`8h2MPzhXu$F*2&I1&IqCL^;B!@kcm3dQ# z2Ke!(C6D*nmz0u;V^1*C9RP)&y&Z%%sABt{Ie) zgd=3a5QATHg1R>-jJYa zJAVKi!wzHrP@H6}je`@K9pnAlI734?!#F$?Z#Zwiq`~3Pjs^$#@$C(RoZH^!?T^3p zy1|igwP3<m8l#txg+CYLENevg$!Zx2TTU=7ys#uYB$Gs*% z6u2*1NThMCZmhW0W>$(V&^UeVLa@-_U2UtlsU^2HDDKe8g)6@MI(841yO%?x+gjlb3 zO^ie?n9M#D9Tw{B9~~AaoV^=syP8{C)EA=qkb|LD6w8D6fAGoK4;Qzqv1(Vn467Ce zHfbMsON+AnQC(ovp*{X#IZt*DijJxK;Q^f4F%DmC5_s$FNGt36f6u#6bpQ3Nem9*P zPrNYOLeJ6N;~y#(=gBV;>-YRbH|Wj8&lT|i8I5k9_}_xS|0JYjqDn^e*(Wf+%==WV zv!W%g_@W(;oG*fvt!4uy)M0KV=L<&fjdP zMTL!3%ik<7r3BL9k#la-y>=0G%0VPVvg&d#rb8jgq*Xx^BJbX^nwUVQp^o3z<%-2m+Km9K%cf!j93j-6 z5bAtEs(HCp@!=0y4e9^QH?SXy*k}@-QDF?+Y@v@zjfg}@dXdR;Wg8TWQNDLrTBirM>yb_;Q`7A$lx@YD%SJs2 zVvi29a;&S%eb42_%lHQ!p$7+WfmSw37W>&3DU9d{Hm=gu)hNcA-)F{%c*1W~g`u0` z8YIGAh5UOV=2%SETed%XR9{pCg#pjX88T^fT81{}EuTn77HRo?s?OTaC@Jg*Rq_U9 zVQ7MW&oNt6d+V7@Zn{0J|41Y)e60SzW3}N*tr!6(RH@N3I@n9Pe3@xliom7D6>|5EXo!l2Wc3l${(Ifp$SzjP$y4^h;`Hr=lkp!(2Gi<$t;)mb%! zV=n*>=Cey4gi8$YH<*l@ij0~8kjC*T4}b=&7lP95cLOjMCZ>i^hqnNSC zQZ>6xcViyCWln{yjh2@97;EwjLm7wKOStYk(%q;R=s@r6ku&%%Nixi~)2+a4QzN0>1D=gBx@EZSWlpp#sQYh_l_54$JdOD8lr55x$dEi+K`s zQ@F1SN_WVEuVo3Lmren|fQvv6?j=ZbwWxV(4qT0)JT(B?^K94IPaSEzQ2R#>`Qr^m zvVpLyuZvfhwbdrHo>w7KHKg7H2)2chh+fh3%rWEpSgCifJ8YlBCv;W4#Ka|z-Ailg zfvzXTk9`--H^7OE)P7BEdx+s`8;6g4H(31Jw$o>}}T2lo`o z9SX@& zmC!3!1I=q75EY`{qY!%uk{=ct`LD6Hs8?AuQ(*KxTjdGB?6}7tu0NpBbeubNiZrNQ zg-TjbE{u8sqETw|N_9L`RdMwKv5LA)t~}_Pw9PTK_EmYH6bnP``=~q^B&sUmUWk{s z&Yt@pdF+HCRXD)vnU3naGhrNTyrpo@5i{$BHEPx0y|D&qlD8+wlhejrw~sQD7M?ek>iiG9YDA!|o9mq=We+XsPSpmuX4|ePG=WZZ zOl{9D(6NYPbh?Vu8LgY@xB-MgyD>qW3J*|Wfwnr)su!Rh`?m!K(E6}2UM2l;ziU1j zqJ#G62^(!*=*G=5aoB*lBOC5AGvM1sjh(Lv$izAa{?SUonN_g@VKDm%Q0>)Uz(2*Q zhXraMwvgy35;;rBGrMY9?U7=bQh4w)y!oYiR{{Dzf-ik>PpInJc5f9evpyLZTG8DUwwuP9>xIQ4=Gy0;ta0S0QuZs!jJL^lqyZS!@>UM1CE>98RUpjj9 z@OA}D!ZL=XfwZCSb2(L4CmId6Ns;nXedSbe6J=r&2&0v{PF0ts6yX6N!q+QBDhri% znRQ0+z*-gc5|(7@l&T!%hb1$r3N8%6r?@2m)JGqv)7q1m>W~b&t<@B{Aa3zgvCRiK z^|C^yPB;D}tpY#nmM5Sy8L1K>PCe_NL3YA?dKR|bq5IoPja1$tp+Bls_bxnJItGBz dk>6-Xxu%+bBX~D5|1CFk;+3Bn{<$~z{|i4lRTBUJ literal 0 HcmV?d00001 diff --git a/vignettes/Safety-Schematic-via-DTP.Rmd b/vignettes/Safety-Schematic-via-DTP.Rmd index c468401..397cd84 100644 --- a/vignettes/Safety-Schematic-via-DTP.Rmd +++ b/vignettes/Safety-Schematic-via-DTP.Rmd @@ -123,14 +123,6 @@ prior.DLT <- c(0.03, 0.07, 0.12, 0.20, 0.30, 0.40, 0.52) prior.var <- 0.75 ``` -### Practical considerations - -```{r practicalities} -no_skip_esc <- TRUE -no_skip_deesc <- FALSE -global_coherent_esc <- TRUE -``` - ### Early stopping ```{r early-stopping} @@ -159,17 +151,16 @@ viola_dtp <- calculate_dtps(next_dose = start.dose.level, target = target.DLT, stop_func = stop_func, scale = sqrt(prior.var), - no_skip_esc = no_skip_esc, - no_skip_deesc = no_skip_deesc, - global_coherent_esc = global_coherent_esc + no_skip_esc = TRUE, + no_skip_deesc = FALSE, + global_coherent_esc = TRUE ) -saveRDS(viola_dtp, file="viola_dtp.rds") -proc.time() - t0 # NB: For C=7, this took 17 minutes to compute +save(viola_dtp, file="../data/viola_dtp.rda") +proc.time() - t0 # ~17 minutes on a 2.6GHz i7 ``` ```{r load-cached-dtp, echo=FALSE} -# Read cached viola_dtp from disk -viola_dtp <- readRDS("../viola_dtp.rds") +data(viola_dtp) # Read cached viola_dtp from disk ``` With each of (up to) 7 cohorts having 4 possible outcomes (0, 1, 2 or 3 toxicities), the DTP tabulation lists a total of $4^7 = 16384$ paths. These are not all distinct paths, however, since early stopping results in path degeneracy. For example, we can see that paths 1005--1008 all terminate at the 6th cohort, resulting in a $4\times$ degeneracy: diff --git a/vignettes/precautionary-package.bib b/vignettes/precautionary-package.bib index ae6968c..05fc7eb 100644 --- a/vignettes/precautionary-package.bib +++ b/vignettes/precautionary-package.bib @@ -118,6 +118,56 @@ @article{norris_one-size-fits-all_2018 file = {Norris - 2018 - One-size-fits-all dosing in oncology wastes money,.pdf:/Users/david/zotero/storage/TL5Y5R7C/Norris - 2018 - One-size-fits-all dosing in oncology wastes money,.pdf:application/pdf} } +@article{zhou_accuracy_2018, + title = {Accuracy, {Safety}, and {Reliability} of {Novel} {Phase} {I} {Trial} {Designs}}, + volume = {24}, + issn = {1078-0432}, + doi = {10.1158/1078-0432.CCR-18-0168}, + abstract = {A number of novel model-based and model-assisted designs have been proposed to find the MTD in phase I clinical trials, but their differences and relative pros and cons are not clear to many practitioners. We review three model-based designs, including the continual reassessment method (CRM), dose escalation with overdose control (EWOC), and Bayesian logistic regression model (BLRM), and three model-assisted designs, including the modified toxicity probability interval (mTPI), Bayesian optimal interval (BOIN), and keyboard (equivalently mTPI-2) designs. We conduct numerical studies to assess their accuracy, safety, and reliability and the practical implications of various empirical rules used in some designs, such as skipping a dose and imposing overdose control. Our results show that the CRM outperforms EWOC and BLRM with higher accuracy of identifying the MTD. For the CRM, skipping a dose is not recommended, as it substantially increases the chance of overdosing patients while providing limited gain for identifying the MTD. EWOC and BLRM appear excessively conservative. They are safe but have relatively poor accuracy of finding the MTD. The BOIN and keyboard (equivalently mTPI-2) designs have similar operating characteristics, outperforming the mTPI, but the BOIN is more intuitive and transparent. The BOIN yields competitive performance comparable with the CRM but is simpler to implement and free of the issue of irrational dose assignment caused by model misspecification, thereby providing an attractive approach for designing phase I trials. Clin Cancer Res; 24(18); 4357-64. ©2018 AACR.}, + language = {eng}, + number = {18}, + journal = {Clinical Cancer Research: An Official Journal of the American Association for Cancer Research}, + author = {Zhou, Heng and Yuan, Ying and Nie, Lei}, + month = sep, + year = {2018}, + pmid = {29661774}, + keywords = {READ\$\$\$}, + pages = {4357--4364}, + file = {Zhou et al. - 2018 - Accuracy, Safety, and Reliability of Novel Phase I.pdf:/Users/david/zotero/storage/5GRNKXFC/Zhou et al. - 2018 - Accuracy, Safety, and Reliability of Novel Phase I.pdf:application/pdf} +} + +@article{zhou_accuracy_2018-1, + title = {Accuracy, {Safety}, and {Reliability} of {Novel} {Phase} {I} {Designs}-{Response}}, + volume = {24}, + issn = {1078-0432}, + doi = {10.1158/1078-0432.CCR-18-2677}, + language = {eng}, + number = {21}, + journal = {Clinical Cancer Research: An Official Journal of the American Association for Cancer Research}, + author = {Zhou, Heng and Yuan, Ying and Nie, Lei}, + month = nov, + year = {2018}, + pmid = {30385656}, + pages = {5483--5484}, + file = {Zhou et al. - 2018 - Accuracy, Safety, and Reliability of Novel Phase I.pdf:/Users/david/zotero/storage/Z6WNSRSB/Zhou et al. - 2018 - Accuracy, Safety, and Reliability of Novel Phase I.pdf:application/pdf} +} + +@article{wages_accuracy_2018, + title = {Accuracy, {Safety}, and {Reliability} of {Novel} {Phase} {I} {Designs}-{Letter}}, + volume = {24}, + issn = {1078-0432}, + doi = {10.1158/1078-0432.CCR-18-2090}, + language = {eng}, + number = {21}, + journal = {Clinical Cancer Research: An Official Journal of the American Association for Cancer Research}, + author = {Wages, Nolan A. and Braun, Thomas M.}, + month = nov, + year = {2018}, + pmid = {30385655}, + pages = {5482}, + file = {Wages and Braun - 2018 - Accuracy, Safety, and Reliability of Novel Phase I.pdf:/Users/david/zotero/storage/JKP5IX7S/Wages and Braun - 2018 - Accuracy, Safety, and Reliability of Novel Phase I.pdf:application/pdf} +} + @article{craddock_combination_2019, title = {Combination {Lenalidomide} and {Azacitidine}: {A} {Novel} {Salvage} {Therapy} in {Patients} {Who} {Relapse} {After} {Allogeneic} {Stem}-{Cell} {Transplantation} for {Acute} {Myeloid} {Leukemia}}, issn = {1527-7755}, @@ -274,6 +324,21 @@ @article{sabanes_bove_model-based_2019 file = {example.pdf:/Users/david/zotero/storage/CS33X84W/example.pdf:application/pdf;Sabanés Bové et al. - 2019 - Model-Based Dose Escalation Designs in R wi.pdf:/Users/david/zotero/storage/MDBUV6VC/Sabanés Bové et al. - 2019 - Model-Based Dose Escalation Designs in R wi.pdf:application/pdf} } +@article{braun_simulationfree_2020, + title = {A simulation‐free approach to assessing the performance of the continual reassessment method}, + issn = {0277-6715, 1097-0258}, + url = {https://onlinelibrary.wiley.com/doi/10.1002/sim.8746}, + doi = {10.1002/sim.8746}, + language = {en}, + urldate = {2020-09-23}, + journal = {Statistics in Medicine}, + author = {Braun, Thomas M.}, + month = sep, + year = {2020}, + pages = {sim.8746}, + file = {Braun - 2020 - A simulation‐free approach to assessing the perfor.pdf:/Users/david/zotero/storage/N8KKHBKJ/Braun - 2020 - A simulation‐free approach to assessing the perfor.pdf:application/pdf} +} + @article{korn_comparison_1994, title = {A comparison of two phase {I} trial designs}, volume = {13}, @@ -318,7 +383,7 @@ @techreport{fda_cder_good_2013 @article{norris_what_2020, title = {What {Were} {They} {Thinking}? {Pharmacologic} priors implicit in a choice of 3+3 dose-escalation design}, shorttitle = {What {Were} {They} {Thinking}?}, - url = {http://arxiv.org/abs/2012.05301}, + url = {https://arxiv.org/abs/2012.05301}, abstract = {If explicit, formal consideration of clinical pharmacology at all informs the design and conduct of modern oncology dose-finding trials, the designs themselves hardly attest to this. Yet in conducting a trial, investigators affirm that they hold reasonable expectations of participant safety - expectations that necessarily depend on beliefs about how certain pharmacologic parameters are distributed in the study population. Thus, these beliefs are implicit in a trial's presumed conformance to a community standard of safety, and may therefore to some extent be reverse-engineered from trial designs. For one popular form of dose-escalation trial design, I demonstrate here how this may be done.}, urldate = {2020-12-25}, journal = {arXiv:2012.05301 [stat.ME]}, @@ -326,6 +391,6 @@ @article{norris_what_2020 month = dec, year = {2020}, note = {arXiv: 2012.05301}, - keywords = {Quantitative Biology - Quantitative Methods, Statistics - Applications, Statistics - Methodology}, + keywords = {Statistics - Methodology, Statistics - Applications, Quantitative Biology - Quantitative Methods}, file = {arXiv Fulltext PDF:/Users/david/zotero/storage/TTMKDVAD/Norris - 2020 - What Were They Thinking Pharmacologic priors impl.pdf:application/pdf;arXiv.org Snapshot:/Users/david/zotero/storage/36V5MGM3/2012.html:text/html} }