By Ed Silverman // March 25th, 2010 // 8:54 am
Two es= says published in separate periodicals this week raise troubling questio= ns about the extent to which psychiatrists may be unduly influenced by t= he pharmaceutical industry, and how this relationship may effect public = trust in psychiatry. The upshot? The concern about corruption, or at lea= st the appearance of corruption is palpable. Sigmund Freud (see photo) w= ould not be pleased. Interestingly, one of the authors is Tom Insel, the= director of the National Institute of Mental Health (click on read more= below).
For instance, Lisa Cosgrove and Harold Bursztajn write in Psychiatric Times that they looked at the two philanthropic arms = of the American Psychiatric Association - the American Psychiatric Found= ation and the American Psychiatric Institute for Research and Education = - and found that APF=E2=80=99s 15-member board includes= four high-level pharma execs that either make meds recommended by APA o= r are developing products targeted to treat mental disorders. Other boar= d members include two more with industry ties and a senior vp at Fleis= hman Hillard, the public relations firm whose clients include six dr= ugmakers.
APF=E2=80=99s corporate advisory council lis= ts drugmakers, they continue, that contribute “significant funding= ” to APF and that make meds recommended in the APA=E2=80=99s clini= cal practice guidelines. Although it was not possible to discern the tot= al amount of industry funding given to APF, in fiscal year 2008 APF list= s 11 pharmaceutical companies and 1 medical device manufacturer that con= tributed monies; 6 of the companies are listed as giving $40,000 =E2=80=9C= and above=E2=80=9D per year.
They go on to write that APIRE, like APF, doesn’t require discl= osure of financial conflicts of interests, and that nine of 16 APIRE bo= ard members have ties to drugmakers. They also note current disclosu= re policies don’t require reporting of pooled industry money to ac= ademic departments, units, hospitals, and med schools. And because there= is no independent monitoring of industry ties, they maintain “und= erreporting is very likely a problem. For example, one board member who = reported ‘no disclosure’ in an APA publication was found to = be on the speakers=E2=80=99 bureau of multiple pharmaceutical companies.= ”
Then they analyzed the DSM-IV, DSM-V work group panels, and the autho= rs of the DSM-based Practice Guidelines, and found what they call “= ;a striking lack of balance between industry-tied and industry-independe= nt work group members.” Approximately 68 percent of the members of= the DSM-V task force reported having industry ties, an increase of 2 pe= rcent over the proportion of DSM-IV task force members with such ties.= p>
And of the 137 DSM-V panel members who posted disclosure statements, = 56 percent reported industry ties, such as holding stock in drugmakers, = serving as consultants, or serving on company boards, which amounts to &= #8220;no improvement” over the 56 percent of DSM-IV members who ha= d industry relationships. Also, 90 percent of the authors of three major= clinical practice guidelines had financial ties to drugmakers explicitl= y or implicitly identified in the guidelines as recommended therapies fo= r the respective mental illnesses.
Meanwhile, Tom Insel, the director of the National Institute of Menta= l Health writes in this week’s Journal of the American Medical Asso= ciation that “as public trust in the pharmaceutical industry h= as plummeted, the close connection between leading psychiatrists and the= pharmaceutical industry, once a sign of progress for the profession, is= now cited as evidence of corrupt influence.” As do Cosgrove and B= ursztajn, he points to an ongoing investigation by US Senator Chuck Gras= sley into ties between drugmakers and academic researchers (see here , here and here= ).
He poses several questions. First, are psychiatrists in clini= cal practice receiving more industry money than other specialists? He notes that Lilly lists 25 faculty receiving more than $50 000 in = the first three quarters of 2009, and of these, 17 were psychiatrists, a= lthough Lilly’s investment in psychotropics “may skew this s= ample…Not surprisingly, companies are paying the specialists most = likely to promote or prescribe their products.”
What about academic thought leaders and researchers who may i= nfluence practice through publications and lectures? In a recen= t study of med school department chairs, 60 percent reported receiving p= ersonal income from industry, usually as a consultant or scientific advi= sory board member. And 80 percent of faculty reported a departmental rel= ationship with industry, most often for support of continuing medical ed= ucation. But, he concludes, “there is no published evidence that d= epartments of psychiatry or chairs of these departments receive more or = less industry funding than their colleagues in other specialties.”=
Are academic psychiatrists disclosing more financial interest= s in publications? “Relative to other professional journa= ls, the major psychiatric journals appear to have comparable standards f= or disclosing financial interests,” he writes. “Based on a r= eview of 397 published reports of clinical trials in four psychiatric jo= urnals, a study found 60 percent had industry funding and 47 percent had= at least one author reporting a financial relationship. The prevalence = of industry funding in general medical journals has been reported to ran= ge from 40 percent to 66 percent, with industry support between 34 perce= nt and 43 percent, slightly lower than reported in psychiatry journals.&= #8221; Insel notest the study found articles with reported industry supp= ort were nearly five times more likely to report positive results.
Do financial payments to academic leaders influence clinical = practice guidelines? He points to a study by Cosgrove and other= s who reviewed the folks who authored APA guidelines for treating schizo= phrenia, bipolar disorder, and major depressive disorder, and reported 9= 0 percent had financial ties to industry - and none were disclosed.
Last but not least, is psychiatric practice biased by industr= y? Insel worries that “aside from the evident success of = marketing of specific medications, what is perhaps most worrisome is the= relative neglect of effective nonpharmacological interventions such as = cognitive-behavioral therapy for mood and anxiety disorders or powerful = psychosocial interventions for schizophrenia. Numerous studies have demo= nstrated the effectiveness of such interventions, and their use has been= recommended in the practice guidelines mentioned above, yet they are wo= efully underused and frequently not reimbursed.”
His conclusion? “The greatest threat to an era of improved publ= ic health stemming from the productive and ethically sound relationship = among academia, industry, and practice is a defiant embrace of the statu= s quo, in which psychiatrists are seen as a leading source of the proble= m rather than as leaders in finding the solution for financial conflicts= of interest.”
Comments feed for this post only.
Clear
Clear
,. */ blockquote:before, blockquote:after, q:before, q:after { content: ""; } blockquote, q { quotes: "" ""; } ul>li {list-style-type: none;} /*END OF RESET*/ /* @end */ body { font-size: 12px; line-height: 18px; background: #fffff9 url(../images/body.png) repeat-x 0 80px; } /* @group fonts */ /* BEGIN FONTS */ /* Default fonts */ pre { font-family: Corbel, Verdana, "Bitstream Vera Sans", sans-serif; } code, { font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", Monaco, Courier, monospace; } /* serif */ h1,h5,.posthead, #blogcontent>.post>.entry>p, div#tagcloud_full, div.tagcloud,.newspost, .entry, .commenttext, #headlinesaccordian p, .job_desc p, #overline { font-family: Constantia, "Palatino Linotype", Palatino, Georgia, "Times New Roman", Times, serif; } /* san-serif */ body, #blogcontent .dateline, #blogcontent .postline, #singlepostmetadata , .wp-polls, .wp-polls p, .wp-polls input, #blogcontent p.newssubhead, .wp-polls, .display_headline, .display_headline h1, .commentmetadata, .datatable, .newsmetadata, .sans { font-family: Frutiger, Univers, "Helvetica Neue", "Lucida Grande", Calibri, Helvetica, Verdana, sans-serif; } h1, .posthead{ letter-spacing: 0px; font-size: 24px; line-height: 36px; } .posthead{ font-weight: normal; font-style: normal; } h2, h4{ letter-spacing: -1px; font-size: 24px; line-height: 36px; } h3, #sidebar label { color: #D88100; font-size: 18px; font-weight: bold; line-height: 18px; } h6{ font-weight: bold; } a{ padding: 1px; color: #3e7938; text-decoration: underline; } a:hover, .rsslink:hover, .navigation a:hover, #toptags a:hover, #monthly a:hover, #sociallinks li a:hover, #shareitems li a:hover { color: #1b5022; background-color: #d3eaf4; } h1 a, h2 a, h3 a, h4 a { text-decoration: none; } p { padding-bottom: 1em; } strong{ font-weight: bold; } /* END FONTS */ /* @end */ /* @group structure */ /* BEGIN STRUCTURE */ #maincontent { clear: both; } .clearthis { text-indent: -9000px; clear: both; line-height: 0; } .content { margin-right: auto; margin-left: auto; width: 980px; } #header, #footer{ min-width: 1000px; } /* END STRUCTURE */ /* @end */ /* @group header */ /* BEGIN HEADER */ #header_flag { float: left; margin: 24px 0 0; width: 210px; } #header_homebutton{ text-indent: -9000px; background: url(../images/logo2.png) no-repeat; height: 45px; width: 210px; text-decoration: none; display: block; } .catchphrase{ background-color: #d6e296; padding: 2px; float: left; } #header { height: 130px; margin: 0; padding: 2px 0 0; background: #8aaa83; } #header p a { text-decoration: none; color: #356630; font-weight: normal; } #header_content{ width: 980px; margin: 5px auto 0; padding: 0; height: 95px; } #header_subnav{ position: absolute; clear: both; top: 10px; } #header_subnav a{ text-decoration: none; color: #424242; background-color: #d9f4d6; padding: 2px 6px; } #header_subnav li{ display: inline; font-size: 11px; } #topsearch { float: right; margin-top: 2px; margin-right: 30px; } .searchfield, .searchsubmit { color: #356630; padding: 3px 5px; border: none; border-width: 1px; -moz-border-radius: 3px; -khtml-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; cursor: default; text-decoration: none; } .searchsubmit{ border: 1px solid #d9f4d6; background-color: #cce4c6; } .searchfield { width: 150px; } /* END HEADER */ /* @end */ /* @group ads */ /* BEGIN ADS */ #leaderboardad { position: relative; top: 4px; margin-left: 232px; } .rectanglead{ padding-left: 20px; } #sidebar_inset .rectanglead{ margin-bottom: 24px; } .skyscraper { float: left; display: block; } #skyscraper_nosidebar{ float: right; } /* END ADS */ /* @end */ /* @group colors */ /* BEGIN COLORS */ #header, .navigation a { background-color: #cce4c6; } #smallbotmenu, #navbar{ background-color: #8aaa83; } /* END COLORS */ /* @end */ /* @group display headline */ /* This could use a better name, display headlines are big marketing esque centered items */ /* BEGIN DISPLAY HEADLINES */ .display_headline{ text-align: center; font-size: 135%; } .display_headline p{ margin-top: 18px; line-height: 155%; font-weight: bold; } .display_headline h1{ font-size: 350%; } .display_headline h2{ font-size: 150%; } .display_headline a{ } .display_headline a:hover{ background-color: #fefd90; } /* END DISPLAY HEADLINES */ /* @end */ /* @group breadcrumbs */ #breadcrumbs{ font-size: 12px; letter-spacing: 0; color: #ccc; line-height: 24px; margin-bottom: 6px; } #breadcrumbs a{ color: #999; text-decoration: underline; } #overline{ font-size: 12px; line-height: 12px; letter-spacing: 0; text-align: center; color: #8aaa83; margin-top: 6px; margin-bottom: 12px; border-bottom: 1px solid #cce4c6; padding-bottom: 12px; } /* @end */ /* @group Blog Content */ /* BEGIN BLOG CONTENT */ #blogcontent .entry, #blogcontent .entry p, #blogcontent .comment, .job_desc p{ font-size: 15px; line-height: 18px; } #blogcontent .entry p.attachment img { float: none; } #blogcontent { width: 565px; float: left; padding-top: 15px; border-right: 1px solid #d9f4d6; border-left: 1px solid #d9f4d6; border-bottom: 1px solid #d9f4d6; padding-right: 15px; background-color: #fff; padding-left: 15px; padding: 12px; } #blogcontent p { color: #333; } #blogcontent p img, #blogcontent .gallery img { margin-bottom: 6px; margin-right: 6px; padding: 6px; border: dotted 1px #58ae51; } #blogcontent p>img, #blogcontent p>a>img { float: left; } #blogcontent p>img.alignright, #blogcontent p>a>img.alignright { float: right; } #blogcontent blockquote { color: #666; background-color: #e5f8bc; background-image: url(../images/quotes.png); background-repeat: no-repeat; background-position: left top; padding: 20px 20px 20px 100px; } #blogcontent .gallery { padding-left: 18px; padding-bottom: 12px; padding-right: 12px; padding-top: 12px; border-color: #58ae51; border-style: solid; border-width: 1px; margin: 6px; } .entry{ margin-bottom: 24px; } .imageframe { } .imgalignleft, .img.alignleft { float: left; } .imgalignright, .img.alignright, .alignright { float: right; } .imgaligncenter { margin-left: auto; margin-right: auto; } #blogcontent .dateline { color: #a2a2a2; border-top: 1px dotted #cce4c6; line-height: 18px; } .newsmetadata { clear: both; border-top: 1px solid #c7deef; padding-bottom: 6px; margin-top: 4px; } p.akst_link { float: left; } .datatable{ margin: 6px; width: 100%; color: #666; font-size: 12px; } .datatable th{ font-weight: bold; text-align: right; padding-right: 4px; padding-top: 3px; padding-bottom: 3px; border-bottom: 2px solid #cce4c6; } .datatable td{ text-align: right; border-bottom: 1px dotted #cce4c6; padding: 3px 8px 3px 2px; } .post{ clear: both; } /* END BLOG CONTENT */ .noborder {border: none; color: #ffffff; } .noborder img{border: none; color: #ffffff; } /* @end */ /* @group Next/previous */ /* BEGIN NEXT/PREVIOUS */ .small_navigation{ } .big_navigation{ padding: 4px; font-size: 18px; font-weight: bold; } .navigation { clear: both; margin: 18px 4px 40px; } .navigation .newer { float: left; text-align: left; } .navigation .older { float: right; text-align: right; margin-top: 18px; } .navigation a{ padding: 6px 18px 6px 12px; text-decoration: none; border: 1px solid #3e7938; -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; } /* END NEXT/PREVIOUS */ /* @end */ /* @group Share */ #shareitems li{ display: block; float: left; padding: 6px; } a.sharebutton{ display: block; width: 48px; padding: 50px 0 12px; text-align: center; text-decoration: none; height: 18px; line-height: 12px; font-size: 11px; } a.sharebutton:hover{ font-weight: bold; background-color: #fff; } #shareprin{ background: url(../images/share.png) no-repeat 0 0; } #sharemail{ background: url(../images/share.png) no-repeat -48px 0; } #sharedigg{ background: url(../images/share.png) no-repeat -96px 0; } #shareredd{ background: url(../images/share.png) no-repeat -144px 0; } #shareface{ background: url(../images/share.png) no-repeat -240px 0; } #sharetwit{ background: url(../images/share.png) no-repeat -288px 0; } #shareaddt{ background: url(../images/share.png) no-repeat -336px 0; } /* @end */ /* @group Comments */ /* BEGIN COMMENTS */ #comments{ margin-top: 48px; } textarea#comment{ width: 400px; } .commentcount { margin-right: 24px; float: right; } .commentcount a { font-weight: bold; } .comment, .indentblock { border-top: 1px dotted #cce4c6; margin-bottom: 12px; clear: both; padding-top: 12px; } #commentform{ margin-left: 120px; } .commenttext, .indented{ pading-left: 140px; } .commenttext{ overflow: hidden; width: 420px; } .comment_too_long { height: 300px; } .comment h3 a { color: #d28b21; } .commentmetadata, .indent_notch, #respond { width: 120px; float: left; margin-bottom: 24px; } .commentdate, .commentpermalink{ font-size: 9px; } .commentlist li{ list-style-type: none; } /* END COMMENTS */ /* @end */ /* @group Sidebar */ /* BEGIN SIDEBAR */ #featuredblogposts{ margin-bottom: 18px; } #featuredblogposts>li>a{ font-size: 16px; text-decoration: none; display: block; padding: 3px 0px 9px 0px; } .related_topics h3{ padding-bottom: 8px; } .related_topics{ height: 90px; } #sidebar{ background: #fffff9; } #sidebar, #sidebar_inset{ width: 340px; float: left; padding: 15px; } #sidebar, #sidebar_inset { color: #a1a1a1; } #sidebar p, #sidebar_inset p{ color: #356630; clear: both; } #sidebar a, #sidebar_inset a{ font-weight: bold; } .halfwidth { width: 160px; float: left; margin-left: 16px; } #sidebox_top{ width: 328px; margin-bottom: 15px; color: #000; background: #fff; padding: 6px 5px 10px; height: 36px; } .rsssubscribelink, .emailsignup{ text-decoration: none; font-weight: bold; margin: 0 8px 0 0; display: block; padding-right: 41px; text-align: right; height: 32px; -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; padding-top: 7px; float: left; } .emailsignup{ background: #e2f0ff url(../images/mail32.png) no-repeat right 4px; padding-left: 12px; color: #2681c5; font-size: 18px; line-height: 26px; width: 165px; } .rsssubscribelink{ color: #c65b27; width: 44px; background: #ffe9d6 url(../images/feed32.png) no-repeat right 4px; padding-right: 41px; line-height: 12px; } .rsssubscribelink:hover{ background-color: #ffc18c; } .teaserbox { float: left; margin-bottom: 6px; border-top: 1px solid #64c05a; width: 340px; padding-top: 6px; padding-bottom: 6px; } #skyscraper_teaserbox{ border-top-width: 0; padding-top: 0; } #next_to_skyscraper{ border-top: 1px solid #64c05a; padding-top: 6px; } #teaserboxes .teaserbox { width: 206px; height: 206px; padding: 16px; } .teaserbox li { margin-top: 6px; } #comments_teasers>ul>li{ clear: both; border-top: 1px solid #cce4c6; padding-top: 6px; } #comments_teasers{ } .comment_teaser_meta{ width: 110px; float: left; font-size: 9px; text-align: right; } .comment_teaser_meta a{ font-size: 12px; } .comment_teaser_text{ margin-left: 120px; } #relatedtags .relatedtaglist li { float: left; padding: 0 4px 4px; } #relatedtags a.relatedtagname { font-weight: normal; text-decoration: none; } #relatedtags a.relatedplus { color: #356630; font-weight: bold; text-decoration: none; } /* END SIDEBAR */ /* @end */ /* @group Footer */ /* BEGIN FOOTER */ #archivesearch { float: right; margin-top: 9px; } #footer { background: #cce4c6 url(../images/header.png) repeat-x center -112px; padding-bottom: 120px; padding-top: 60px; color: #999; } #privacystatement{ margin-top: 36px; text-align: center; } #footer h3{ border-bottom: 1px solid #8aaa83; margin-bottom: 6px; color: #8aaa83; font-size: 24px; line-height: 36px; } .emptymonth, #monthly a, #year_nav_archive a{ padding: 4px; } #toptags_box, #archives_box, #footer_nav_box{ float: left; height: 200px; } #toptags_box{ width: 190px; margin-right: 24px; } #archives_box{ width: 430px; margin-right: 24px; } #footer_nav_box{ width: 310px; text-align: right; } #sociallinks{ padding-bottom: 36px; } #sociallinks li{ list-style-type: none; float: left; } #sociallinks li a{ display: block; width: 144px; margin-right: 24px; height: 44px; text-indent: -9000px; padding: 0; border: 2px solid #cce4c6; } #sociallinks>li:last-child a{ margin-right: 0px; } #sociallinks li a{ border: 2px solid #cce4c6; } #sociallinks li a:hover{ border: 2px solid #8aaa83; } #twitter_button{background: url(../images/logos.png) no-repeat;} #facebook_button{background: url(../images/logos.png) no-repeat 0 -44px;} #rss_button{background: url(../images/logos.png) no-repeat 0 -88px;} #inbox_button{background: url(../images/logos.png) no-repeat 0 -132px;} #technorati_button{background: url(../images/logos.png) no-repeat 0 -176px;} /* END FOOTER */ /* @end */ /* @group Calendar */ /* BEGIN CALENDAR */ .archive_nav{ height: 160px; padding-right: 70px; margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid #8aaa83; } #year_nav_archive{ padding-bottom: 24px; padding-top: 12px; } #year_nav_archive li{ list-style-type: none; } table#wp-calendar { color: #599e59; margin-bottom: 4px; width: 200px; float: right; } #wp-calendar caption { color: #356630; font-weight: bold; text-align: center; padding: 1px; border-bottom: 1px solid #e5f8bc; } #wp-calendar #prev, #wp-calendar #next { text-align: center; } #wp-calendar a { font-weight: bold; text-decoration: none; padding: 2px; } #wp-calendar a:hover { background-color: #8ce483; } #wp-calendar td { text-align: center; background-color: #fff; padding: 2px; } #wp-calendar th { display: none; } /* END CALENDAR */ /* @end */ /* @group Tagcloud */ /* BEGIN TAG CLOUD */ ul#tagcloud_full { width: 532px; } div#tagcloud a, div#tagcloud_full a { padding: 4px; line-height: 24px; text-decoration:none; } div#tagcloud_full li a:hover { color: #3e7938; text-decoration:underline; } /* END TAG CLOUD */ /* @end */ /* @group formmail */ /* BEGIN FORMMAIL */ form.ddfm .required { color: #FF0000; } .ddfmerrors { color: #FF0000; } form.ddfm h1 { font-size: 140%; } form.ddfm h2 { font-size: 115%; } form.ddfm legend, form.ddfm label, form.ddfm label.fmtextlblwide { font-size: 100%; font-weight: bold; } .ddfmerrors { font-weight: bold; } .ddfmwrap{ margin: 15px auto 15px auto; width: 450px; } #betafeedback>.ddfmwrap{ width: 100%; } .ddfmwrap p.fieldwrap { padding: 1px; margin: 1px; } form.ddfm { text-align: left; width: 430px; padding-top: 15px; padding-left: 15px; } form.ddfm fieldset { padding: 0 10px 2px 10px; margin: 0 0 13px 0; display: block; } form.ddfm legend { padding: 0 6px 0 6px; margin: 0 0 0 10px; background-color:#3e7938; } form.ddfm label { display: block; float: left; width: 26%; text-align: right; margin: 0 10px 0 0; padding-bottom: 15px; clear: left; } form.ddfm label.fmtextlblwide { display: block; float: left; text-align: left; margin: 0 10px 0 1px; padding-bottom: 8px; } form.ddfm select.fmselect { float: left; display: block; width: 65%; margin-bottom: 15px; padding: 3px; } form.ddfm .fmcheck { width: 65%; float: left; display: block; margin-bottom: 15px; } form.ddfm .fmradio { width: 65%; float: left; display: block; margin-bottom: 15px; } form.ddfm .fmcheck p { padding: 0; margin: 0 0 5px 0; } form.ddfm .fmradio p { padding: 0; margin: 0 0 5px 0; } form.ddfm textarea { float: left; position: relative; width: 65%; margin-bottom: 15px; padding: 3px; } form.ddfm .fmfullblock { padding-left: 0px; float: left; width: 100%; margin-bottom: 13px; display: block; } form.ddfm .fmhalfblock { width: 65%; padding-left: 29%; margin-bottom: 13px; float: left; display: block; } form.ddfm input.fmverify { float: left; width: 22%; margin-bottom: 15px; padding: 3px; position: relative; display: block; } #blogcontent form.ddfm img { border-width: 0px; margin-left: 10px; margin-bottom: 0; margin-right: 0; margin-top: 0px; padding: 0px; float: left; } form.ddfm input.fmfile, form.ddfm input.fmtext { float: left; display: block; width: 65%; margin-bottom: 15px; padding: 3px; } form.ddfm textarea.fmtextwide { display: block; float: left; width: 93%; margin-right: 2px; margin-bottom: 15px; padding: 3px; } form.ddfm .credits { text-align: right; margin-top: 7px; margin-right: 10px; width: 95%; } form.ddfm .submit { margin-top: 15px; margin-right: 10px; text-align: right; clear:both; width: 95%; } .ddfmwrap .ddfmerrors { display: block; float: left; width: 27%; text-align: right; margin: 0 10px 0 0; padding-bottom: 15px; } .ddfmwrap .errorlist { float: left; display: block; width: 65%; margin-bottom: 15px; padding: 3px; } /* END FORMMAIL */ /* @end */ /* @group Polls */ /* BEGIN POLLS */ .wp-polls { padding-top: 10px; border: 1px solid #ebebeb; margin: 2px; } #wp-polls-sidebar{ padding: 8px; background-color: white; } #wp-polls-sidebar>.wp-polls,#wp-polls-sidebar .wp-polls-ans{ border: 0px solid #ffffff; background-color: white; background-position-y: 1000px; padding: 0; } .wp-polls p { text-align: left; font-size: 12px; } .wp-polls>p>strong{ font-size: 18px; } .wp-polls li { padding-top: 6px; } .wp-polls li label { padding-left: 6px; } .wp-polls-ul { width: 80%; margin-right: auto; margin-left: auto; } /* END POLLS */ /* @end */ /* @group NavBar */ /* BEGIN NAVBAR */ #navbar{ clear: both; padding-left: 0; padding-right: 0; height: 30px; font-size: 18px; margin-bottom: 0; padding-bottom: 0; font-weight: bold; line-height: 18px; } #navbar>li{ display: inline; } #navbar a{ color: #000; } .navitem{ float: left; margin-left: 6px; border-top: 4px solid #8aaa83; padding: 0; display: block; height: 26px; } .navitem.activeitem{ /*border-bottom: 6px solid #fff;*/ } .navitemlink{ float: left; text-decoration: none; padding: 4px 12px; } #navbar a:hover{ } #navbar>.activeitem>a{ color: #35692f; background-color: #fff; } #navbar>.activeitem>a:hover{ color: #35692f; background-color: #b5e5ad; } /* END NAVBAR */ /* @end */ /* @group News Page */ /* BEGIN NEWS */ .newspost h3{ font-weight: normal; } .topicbox { padding: 4px; float: left; text-align: center; font-weight: bold; } .topicbox a{ text-decoration: none; font-size: 14px; } #recentheadlines li{ clear: both; margin-bottom: 18px; } #recentheadlines{ clear: both; margin-bottom: 24px; } .recentmeta{ text-align: right; width: 130px; float: left; color: #666; } .recentheadline{ margin-left: 140px; display: block; text-decoration: none; } /*.newsmetadata { font-size: 10px; text-align: right; border-top: 1px solid #ccc; }*/ .powerbydaylife{ float: right; background: url(../images/daylife_rect.png) no-repeat right top; text-indent: -9000px; z-index: 2; display: block; width: 133px; height: 55px; } #newspagelink{ margin-top: 6px; margin-bottom: 6px; } #newspagelink li{ display: inline; } #newspagelink a{ padding: 4px; } #news_companies_list a, #news_companies_list_2 a{ text-decoration: none; } #news_companies_list, #news_companies_list_2{ font-size: 15px; line-height: 18px; } .companynewsitem{ margin-bottom: 36px; font-size: 12px; width: 263px; float: left; margin-right: 18px; } .companynewsitem h3{ padding-bottom: 6px; } #news_companies_list h3 a, #news_companies_list_2 h3 a{ color: #396099; display: block; padding-bottom: 6px; border-bottom-style: solid; border-bottom-width: 1px; } .companynewsitem li{ margin-bottom: 6px; border-bottom: 1px solid #cce4c6; } .companynewsitem li a{ display: block; padding: 2px; } #headlinesaccordian .newsmetadata{ width: 180px; float: left; text-align: right; } #headlinesaccordian h3 a{ text-decoration: none; color: #1a3c5f; display: block; margin-left: 200px; padding: 4px; font-weight: normal; font-style: normal; font-size: 18px; line-height: 24px; } #headlinesaccordian{ padding-bottom: 48px; } #headlinesaccordian li{ clear: both; margin-bottom: 18px; } #headlinesaccordian .newspost p{ line-height: 18px; clear: both; margin-left: 200px; } .indivheadline { top: 20px; width: 460px; height: 20px; padding-top: 4px; letter-spacing: 1px; overflow: hidden; display: none; } .indivheadline a{ text-decoration: none; color: #396099; padding-left: 10px; } .submenu { background-color: #396099; font-size: 10px; } #companymenulist li{ display: inline; list-style-type: disc; list-style-position: outside; padding: 3px; } .submenu li a{ display: inline; color: white; } /* END NEWS */ #blogcontent .extrabigheadline, #sidebar .extrabigheadline, .extrabigheadline{ color: #396099; font-size: 30px; padding: 18px 6px 6px 2px; clear: both; } /* @end */ /* @group Misc. */ /* BEGIN MISC */ .sitemappage li { padding: 4px; } .sitemapblock { width: 240px; float: left; margin-right: 6px; padding: 4px; border: dotted 1px #ccc; } #sidebaradvertise{ width: 220px; text-align: center; margin: 12px auto 18px; } #sidebaradvertise p{ margin-bottom: 0; padding-bottom: 0; } .more-link{ text-align: right; float: right; } .action, .jump{ line-height: 24px; font-size: 12px; text-decoration: none; display: block; padding: 0; font-weight: bold; height: 24px; } .action{background: url(../images/button1.png) no-repeat left top;} .jump{ background: url(../images/jump1.png) no-repeat left top; float: right; margin-bottom: 12px; } .action span, .jump span{ background: url(../images/button2.png) no-repeat right top; display: block; line-height: 14px; } .action span{ background: url(../images/button2.png) no-repeat right top; padding: 5px 18px 5px 18px; } .jump span{ background: url(../images/jump2.png) no-repeat right top; padding: 5px 24px 5px 18px; } .action:hover{ background: url(../images/button1.png) no-repeat left center; } .action span:hover{ background: url(../images/button2.png) no-repeat right center; } .action:active{ background: url(../images/button1.png) no-repeat left bottom; } .action span:active{ background: url(../images/button2.png) no-repeat right bottom; } #error404 h2{ font-size: 36px; padding-top: 24px; padding-bottom: 24px; } #error404 p{ font-size: 16px; padding-top: 24px; width: 600px; color: gray; } /* END MISC */ .txtright{ text-align: right; } #problems { background-color: #ffbdb5; padding: 15px; border: 1px solid #ff1b00; width: 800px; margin: 50px auto; } #problems_minor { background-color: #fffed1; padding: 15px; border: 1px solid #d8d78d; width: 800px; margin: 20px auto; } #fixedinfo{ bottom: 0px; font-size: 2em; font-weight: bold; position: fixed; background-color: #fffd88; padding: 4px; } .printonly{ display: none; } /* @end */ /* @group heavy things */ #header { background: url(../images/header.png) center center; } /* @end */ /* +----------------------------------------------------------------+ | | | WordPress 2.5 Plugin: WP-Polls 2.30 | | Copyright (c) 2008 Lester "GaMerZ" Chan | | | | File Written By: | | - Lester "GaMerZ" Chan | | - http://lesterchan.net | | | | File Information: | | - Polls CSS File | | - wp-content/plugins/wp-polls/polls-css.css | | | +----------------------------------------------------------------+ */ .wp-polls-archive { /* background-color: #ffffff; */ } .wp-polls, .wp-polls-form { /* background-color: #ffffff; */ } .wp-polls ul li, wp-polls-ul li, .wp-polls-ans ul li { text-align: left; background-image: none; display: block; } .wp-polls ul, .wp-polls-ul, .wp-polls-ans ul { text-align: left; list-style: none; } .wp-polls ul li:before, wp-polls-ul li, .wp-polls-ans ul li:before, #sidebar ul ul li:before { content: ''; } .wp-polls IMG, .wp-polls LABEL , .wp-polls INPUT, .wp-polls-loading IMG, .wp-polls-image IMG { display: inline; border: 0px; padding: 0px; margin: 0px; } .wp-polls-ul { padding: 0px; margin: 0px 0px 10px 10px; } .wp-polls-ans { width:100%; filter: alpha(opacity=100); -moz-opacity: 1; opacity: 1; /* background-color: #ffffff; */ } .wp-polls-loading { display: none; text-align: center; height: 16px; line-height: 16px; } .wp-polls-image { border: 0px; } .wp-polls .Buttons { border:1px solid #c8c8c8; background-color: #f3f6f8; } /* Polls Archive Paging */ .wp-polls-paging a, .wp-polls-paging a:link { padding: 2px 4px 2px 4px; margin: 2px; text-decoration: none; border: 1px solid #0066cc; color: #0066cc; background-color: #FFFFFF; } .wp-polls-paging a:visited { padding: 2px 4px 2px 4px; margin: 2px; text-decoration: none; border: 1px solid #0066cc; color: #0066cc; background-color: #FFFFFF; } .wp-polls-paging a:hover { border: 1px solid #000000; color: #000000; background-color: #FFFFFF; } .wp-polls-paging a:active { padding: 2px 4px 2px 4px; margin: 2px; text-decoration: none; border: 1px solid #0066cc; color: #0066cc; background-color: #FFFFFF; } .wp-polls-paging span.pages { padding: 2px 4px 2px 4px; margin: 2px 2px 2px 2px; color: #000000; border: 1px solid #000000; background-color: #FFFFFF; } .wp-polls-paging span.current { padding: 2px 4px 2px 4px; margin: 2px; font-weight: bold; border: 1px solid #000000; color: #000000; background-color: #FFFFFF; } .wp-polls-paging span.extend { padding: 2px 4px 2px 4px; margin: 2px; border: 1px solid #000000; color: #000000; background-color: #FFFFFF; } /* Styles Used In WP-Admin */ #wp-polls-pollbar-bg { width: 25px; height: 25px; border: 1px solid #000000; } #wp-polls-pollbar-border { width: 25px; height: 25px; border: 1px solid #000000; } .wp-polls .pollbar { margin: 1px; font-size: 6px; line-height: 8px; height: 8px; background-image: url('../images/wp-polls/default/pollbg.gif'); border: 1px solid #c8c8c8; } ------------VpNz6ZMvTX6js7qDgnscWw Content-Disposition: inline; filename=print.css Content-Type: text/css; charset=UTF-8; name=print.css Content-Location: http://www.pharmalot.com/static/css/print.css Content-Transfer-Encoding: 8bit #sidebar, #footer, #navbar, #leaderboardad, #header_subnav, #breadcrumbs, #shareitems, #relatedposts, #tagblock, #commentform, .catchphrase, .clearthis, .jump, .commentpermalink, #fixedinfo, .noprint{ display: none; } #blogcontent{ width: 100%; } .commentcount { margin-right: 24px; float: right; } .commentcount a { font-weight: bold; } #header_flag h3{ border-bottom: 2px solid #000; padding-bottom: 12px; } #blogcontent p>img { float: left; margin: 18px 18px 18px 0; } #printfooter{ border-top: 2px solid #000; } .imgalignleft { float: left; } .imgalignright { float: right; } .imgaligncenter { margin-left: auto; margin-right: auto; } #blogcontent .dateline { color: #a2a2a2; border-top: 1px dotted #cce4c6; line-height: 18px; font-size: 12px; } h1 a, #header_flag h3 a{ text-decoration: none; } #blogcontent p{ line-height: 24px; font-size: 18px; } .printonly{ margin-top: 24px; margin-bottom: 24px; } .comment, #commentform, .indentblock { border-top: 1px dotted #cce4c6; margin-bottom: 12px; clear: both; } .commenttext, .indented{ margin-left: 140px; } .commentmetadata, .indent_notch { width: 120px; float: left; } ul.commentmetadata_ul{ padding: 0; } .commentdate, .commenttime{ font-size: 9px; line-height: 15px; } .commentlist li{ list-style-type: none; } h3, #sidebar label { font-size: 18px; font-weight: bold; line-height: 18px; margin-top: 0; margin-bottom: 0; } pre { font-family: Corbel, Verdana, "Bitstream Vera Sans", sans-serif; } code, { font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", Monaco, Courier, monospace; } /* serif */ h1,h5,.posthead, #blogcontent>.post>.entry>p, div#tagcloud_full, div.tagcloud,.newspost, .entry, .commenttext, #headlinesaccordian p, .job_desc p, #overline { font-family: Constantia, "Palatino Linotype", Palatino, Georgia, "Times New Roman", Times, serif; } /* san-serif */ body, #blogcontent .dateline, #blogcontent .postline, #singlepostmetadata , .wp-polls, .wp-polls p, .wp-polls input, #blogcontent p.newssubhead, .wp-polls, .display_headline, .display_headline h1, .commentmetadata, .datatable, .newsmetadata, .sans { font-family: Frutiger, Univers, "Helvetica Neue", "Lucida Grande", Calibri, Helvetica, Verdana, sans-serif; } ------------VpNz6ZMvTX6js7qDgnscWw Content-Disposition: inline; filename=jquery.js Content-Type: application/x-javascript; charset=UTF-8; name=jquery.js Content-Location: http://www.pharmalot.com/static/js/jquery.js Content-Transfer-Encoding: Base64 LyoKICogalF1ZXJ5IDEuMi42IC0gTmV3IFdhdmUgSmF2YXNjcmlwdAogKgogKiBD b3B5cmlnaHQgKGMpIDIwMDggSm9obiBSZXNpZyAoanF1ZXJ5LmNvbSkKICogRHVh bCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIChNSVQtTElDRU5TRS50eHQpCiAqIGFu ZCBHUEwgKEdQTC1MSUNFTlNFLnR4dCkgbGljZW5zZXMuCiAqCiAqICREYXRlOiAy MDA4LTA1LTI0IDE0OjIyOjE3IC0wNDAwIChTYXQsIDI0IE1heSAyMDA4KSAkCiAq ICRSZXY6IDU2ODUgJAogKi8KKGZ1bmN0aW9uKCl7dmFyIF9qUXVlcnk9d2luZG93 LmpRdWVyeSxfJD13aW5kb3cuJDt2YXIgalF1ZXJ5PXdpbmRvdy5qUXVlcnk9d2lu ZG93LiQ9ZnVuY3Rpb24oc2VsZWN0b3IsY29udGV4dCl7cmV0dXJuIG5ldyBqUXVl cnkuZm4uaW5pdChzZWxlY3Rvcixjb250ZXh0KTt9O3ZhciBxdWlja0V4cHI9L15b XjxdKig8KC58XHMpKz4pW14+XSokfF4jKFx3KykkLyxpc1NpbXBsZT0vXi5bXjoj XFtcLl0qJC8sdW5kZWZpbmVkO2pRdWVyeS5mbj1qUXVlcnkucHJvdG90eXBlPXtp bml0OmZ1bmN0aW9uKHNlbGVjdG9yLGNvbnRleHQpe3NlbGVjdG9yPXNlbGVjdG9y fHxkb2N1bWVudDtpZihzZWxlY3Rvci5ub2RlVHlwZSl7dGhpc1swXT1zZWxlY3Rv cjt0aGlzLmxlbmd0aD0xO3JldHVybiB0aGlzO31pZih0eXBlb2Ygc2VsZWN0b3I9 PSJzdHJpbmciKXt2YXIgbWF0Y2g9cXVpY2tFeHByLmV4ZWMoc2VsZWN0b3IpO2lm KG1hdGNoJiYobWF0Y2hbMV18fCFjb250ZXh0KSl7aWYobWF0Y2hbMV0pc2VsZWN0 b3I9alF1ZXJ5LmNsZWFuKFttYXRjaFsxXV0sY29udGV4dCk7ZWxzZXt2YXIgZWxl bT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChtYXRjaFszXSk7aWYoZWxlbSl7aWYo ZWxlbS5pZCE9bWF0Y2hbM10pcmV0dXJuIGpRdWVyeSgpLmZpbmQoc2VsZWN0b3Ip O3JldHVybiBqUXVlcnkoZWxlbSk7fXNlbGVjdG9yPVtdO319ZWxzZQpyZXR1cm4g alF1ZXJ5KGNvbnRleHQpLmZpbmQoc2VsZWN0b3IpO31lbHNlIGlmKGpRdWVyeS5p c0Z1bmN0aW9uKHNlbGVjdG9yKSlyZXR1cm4galF1ZXJ5KGRvY3VtZW50KVtqUXVl cnkuZm4ucmVhZHk/InJlYWR5IjoibG9hZCJdKHNlbGVjdG9yKTtyZXR1cm4gdGhp cy5zZXRBcnJheShqUXVlcnkubWFrZUFycmF5KHNlbGVjdG9yKSk7fSxqcXVlcnk6 IjEuMi42IixzaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RoO30sbGVu Z3RoOjAsZ2V0OmZ1bmN0aW9uKG51bSl7cmV0dXJuIG51bT09dW5kZWZpbmVkP2pR dWVyeS5tYWtlQXJyYXkodGhpcyk6dGhpc1tudW1dO30scHVzaFN0YWNrOmZ1bmN0 aW9uKGVsZW1zKXt2YXIgcmV0PWpRdWVyeShlbGVtcyk7cmV0LnByZXZPYmplY3Q9 dGhpcztyZXR1cm4gcmV0O30sc2V0QXJyYXk6ZnVuY3Rpb24oZWxlbXMpe3RoaXMu bGVuZ3RoPTA7QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodGhpcyxlbGVtcyk7 cmV0dXJuIHRoaXM7fSxlYWNoOmZ1bmN0aW9uKGNhbGxiYWNrLGFyZ3Mpe3JldHVy biBqUXVlcnkuZWFjaCh0aGlzLGNhbGxiYWNrLGFyZ3MpO30saW5kZXg6ZnVuY3Rp b24oZWxlbSl7dmFyIHJldD0tMTtyZXR1cm4galF1ZXJ5LmluQXJyYXkoZWxlbSYm ZWxlbS5qcXVlcnk/ZWxlbVswXTplbGVtLHRoaXMpO30sYXR0cjpmdW5jdGlvbihu YW1lLHZhbHVlLHR5cGUpe3ZhciBvcHRpb25zPW5hbWU7aWYobmFtZS5jb25zdHJ1 Y3Rvcj09U3RyaW5nKWlmKHZhbHVlPT09dW5kZWZpbmVkKXJldHVybiB0aGlzWzBd JiZqUXVlcnlbdHlwZXx8ImF0dHIiXSh0aGlzWzBdLG5hbWUpO2Vsc2V7b3B0aW9u cz17fTtvcHRpb25zW25hbWVdPXZhbHVlO31yZXR1cm4gdGhpcy5lYWNoKGZ1bmN0 aW9uKGkpe2ZvcihuYW1lIGluIG9wdGlvbnMpalF1ZXJ5LmF0dHIodHlwZT90aGlz LnN0eWxlOnRoaXMsbmFtZSxqUXVlcnkucHJvcCh0aGlzLG9wdGlvbnNbbmFtZV0s dHlwZSxpLG5hbWUpKTt9KTt9LGNzczpmdW5jdGlvbihrZXksdmFsdWUpe2lmKChr ZXk9PSd3aWR0aCd8fGtleT09J2hlaWdodCcpJiZwYXJzZUZsb2F0KHZhbHVlKTww KXZhbHVlPXVuZGVmaW5lZDtyZXR1cm4gdGhpcy5hdHRyKGtleSx2YWx1ZSwiY3Vy Q1NTIik7fSx0ZXh0OmZ1bmN0aW9uKHRleHQpe2lmKHR5cGVvZiB0ZXh0IT0ib2Jq ZWN0IiYmdGV4dCE9bnVsbClyZXR1cm4gdGhpcy5lbXB0eSgpLmFwcGVuZCgodGhp c1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHxkb2N1bWVudCkuY3JlYXRlVGV4 dE5vZGUodGV4dCkpO3ZhciByZXQ9IiI7alF1ZXJ5LmVhY2godGV4dHx8dGhpcyxm dW5jdGlvbigpe2pRdWVyeS5lYWNoKHRoaXMuY2hpbGROb2RlcyxmdW5jdGlvbigp e2lmKHRoaXMubm9kZVR5cGUhPTgpcmV0Kz10aGlzLm5vZGVUeXBlIT0xP3RoaXMu bm9kZVZhbHVlOmpRdWVyeS5mbi50ZXh0KFt0aGlzXSk7fSk7fSk7cmV0dXJuIHJl dDt9LHdyYXBBbGw6ZnVuY3Rpb24oaHRtbCl7aWYodGhpc1swXSlqUXVlcnkoaHRt bCx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmNsb25lKCkuaW5zZXJ0QmVmb3JlKHRo aXNbMF0pLm1hcChmdW5jdGlvbigpe3ZhciBlbGVtPXRoaXM7d2hpbGUoZWxlbS5m aXJzdENoaWxkKWVsZW09ZWxlbS5maXJzdENoaWxkO3JldHVybiBlbGVtO30pLmFw cGVuZCh0aGlzKTtyZXR1cm4gdGhpczt9LHdyYXBJbm5lcjpmdW5jdGlvbihodG1s KXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7alF1ZXJ5KHRoaXMpLmNvbnRl bnRzKCkud3JhcEFsbChodG1sKTt9KTt9LHdyYXA6ZnVuY3Rpb24oaHRtbCl7cmV0 dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2pRdWVyeSh0aGlzKS53cmFwQWxsKGh0 bWwpO30pO30sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAo YXJndW1lbnRzLHRydWUsZmFsc2UsZnVuY3Rpb24oZWxlbSl7aWYodGhpcy5ub2Rl VHlwZT09MSl0aGlzLmFwcGVuZENoaWxkKGVsZW0pO30pO30scHJlcGVuZDpmdW5j dGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyx0cnVlLHRydWUs ZnVuY3Rpb24oZWxlbSl7aWYodGhpcy5ub2RlVHlwZT09MSl0aGlzLmluc2VydEJl Zm9yZShlbGVtLHRoaXMuZmlyc3RDaGlsZCk7fSk7fSxiZWZvcmU6ZnVuY3Rpb24o KXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZmFsc2UsZmFsc2UsZnVu Y3Rpb24oZWxlbSl7dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtLHRo aXMpO30pO30sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChh cmd1bWVudHMsZmFsc2UsdHJ1ZSxmdW5jdGlvbihlbGVtKXt0aGlzLnBhcmVudE5v ZGUuaW5zZXJ0QmVmb3JlKGVsZW0sdGhpcy5uZXh0U2libGluZyk7fSk7fSxlbmQ6 ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2JqZWN0fHxqUXVlcnkoW10pO30s ZmluZDpmdW5jdGlvbihzZWxlY3Rvcil7dmFyIGVsZW1zPWpRdWVyeS5tYXAodGhp cyxmdW5jdGlvbihlbGVtKXtyZXR1cm4galF1ZXJ5LmZpbmQoc2VsZWN0b3IsZWxl bSk7fSk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKC9bXis+XSBbXis+XS8udGVzdChz ZWxlY3Rvcil8fHNlbGVjdG9yLmluZGV4T2YoIi4uIik+LTE/alF1ZXJ5LnVuaXF1 ZShlbGVtcyk6ZWxlbXMpO30sY2xvbmU6ZnVuY3Rpb24oZXZlbnRzKXt2YXIgcmV0 PXRoaXMubWFwKGZ1bmN0aW9uKCl7aWYoalF1ZXJ5LmJyb3dzZXIubXNpZSYmIWpR dWVyeS5pc1hNTERvYyh0aGlzKSl7dmFyIGNsb25lPXRoaXMuY2xvbmVOb2RlKHRy dWUpLGNvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtjb250 YWluZXIuYXBwZW5kQ2hpbGQoY2xvbmUpO3JldHVybiBqUXVlcnkuY2xlYW4oW2Nv bnRhaW5lci5pbm5lckhUTUxdKVswXTt9ZWxzZQpyZXR1cm4gdGhpcy5jbG9uZU5v ZGUodHJ1ZSk7fSk7dmFyIGNsb25lPXJldC5maW5kKCIqIikuYW5kU2VsZigpLmVh Y2goZnVuY3Rpb24oKXtpZih0aGlzW2V4cGFuZG9dIT11bmRlZmluZWQpdGhpc1tl eHBhbmRvXT1udWxsO30pO2lmKGV2ZW50cz09PXRydWUpdGhpcy5maW5kKCIqIiku YW5kU2VsZigpLmVhY2goZnVuY3Rpb24oaSl7aWYodGhpcy5ub2RlVHlwZT09Myly ZXR1cm47dmFyIGV2ZW50cz1qUXVlcnkuZGF0YSh0aGlzLCJldmVudHMiKTtmb3Io dmFyIHR5cGUgaW4gZXZlbnRzKWZvcih2YXIgaGFuZGxlciBpbiBldmVudHNbdHlw ZV0palF1ZXJ5LmV2ZW50LmFkZChjbG9uZVtpXSx0eXBlLGV2ZW50c1t0eXBlXVto YW5kbGVyXSxldmVudHNbdHlwZV1baGFuZGxlcl0uZGF0YSk7fSk7cmV0dXJuIHJl dDt9LGZpbHRlcjpmdW5jdGlvbihzZWxlY3Rvcil7cmV0dXJuIHRoaXMucHVzaFN0 YWNrKGpRdWVyeS5pc0Z1bmN0aW9uKHNlbGVjdG9yKSYmalF1ZXJ5LmdyZXAodGhp cyxmdW5jdGlvbihlbGVtLGkpe3JldHVybiBzZWxlY3Rvci5jYWxsKGVsZW0saSk7 fSl8fGpRdWVyeS5tdWx0aUZpbHRlcihzZWxlY3Rvcix0aGlzKSk7fSxub3Q6ZnVu Y3Rpb24oc2VsZWN0b3Ipe2lmKHNlbGVjdG9yLmNvbnN0cnVjdG9yPT1TdHJpbmcp aWYoaXNTaW1wbGUudGVzdChzZWxlY3RvcikpcmV0dXJuIHRoaXMucHVzaFN0YWNr KGpRdWVyeS5tdWx0aUZpbHRlcihzZWxlY3Rvcix0aGlzLHRydWUpKTtlbHNlCnNl bGVjdG9yPWpRdWVyeS5tdWx0aUZpbHRlcihzZWxlY3Rvcix0aGlzKTt2YXIgaXNB cnJheUxpa2U9c2VsZWN0b3IubGVuZ3RoJiZzZWxlY3RvcltzZWxlY3Rvci5sZW5n dGgtMV0hPT11bmRlZmluZWQmJiFzZWxlY3Rvci5ub2RlVHlwZTtyZXR1cm4gdGhp cy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gaXNBcnJheUxpa2U/alF1ZXJ5Lmlu QXJyYXkodGhpcyxzZWxlY3Rvcik8MDp0aGlzIT1zZWxlY3Rvcjt9KTt9LGFkZDpm dW5jdGlvbihzZWxlY3Rvcil7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGpRdWVyeS51 bmlxdWUoalF1ZXJ5Lm1lcmdlKHRoaXMuZ2V0KCksdHlwZW9mIHNlbGVjdG9yPT0n c3RyaW5nJz9qUXVlcnkoc2VsZWN0b3IpOmpRdWVyeS5tYWtlQXJyYXkoc2VsZWN0 b3IpKSkpO30saXM6ZnVuY3Rpb24oc2VsZWN0b3Ipe3JldHVybiEhc2VsZWN0b3Im JmpRdWVyeS5tdWx0aUZpbHRlcihzZWxlY3Rvcix0aGlzKS5sZW5ndGg+MDt9LGhh c0NsYXNzOmZ1bmN0aW9uKHNlbGVjdG9yKXtyZXR1cm4gdGhpcy5pcygiLiIrc2Vs ZWN0b3IpO30sdmFsOmZ1bmN0aW9uKHZhbHVlKXtpZih2YWx1ZT09dW5kZWZpbmVk KXtpZih0aGlzLmxlbmd0aCl7dmFyIGVsZW09dGhpc1swXTtpZihqUXVlcnkubm9k ZU5hbWUoZWxlbSwic2VsZWN0Iikpe3ZhciBpbmRleD1lbGVtLnNlbGVjdGVkSW5k ZXgsdmFsdWVzPVtdLG9wdGlvbnM9ZWxlbS5vcHRpb25zLG9uZT1lbGVtLnR5cGU9 PSJzZWxlY3Qtb25lIjtpZihpbmRleDwwKXJldHVybiBudWxsO2Zvcih2YXIgaT1v bmU/aW5kZXg6MCxtYXg9b25lP2luZGV4KzE6b3B0aW9ucy5sZW5ndGg7aTxtYXg7 aSsrKXt2YXIgb3B0aW9uPW9wdGlvbnNbaV07aWYob3B0aW9uLnNlbGVjdGVkKXt2 YWx1ZT1qUXVlcnkuYnJvd3Nlci5tc2llJiYhb3B0aW9uLmF0dHJpYnV0ZXMudmFs dWUuc3BlY2lmaWVkP29wdGlvbi50ZXh0Om9wdGlvbi52YWx1ZTtpZihvbmUpcmV0 dXJuIHZhbHVlO3ZhbHVlcy5wdXNoKHZhbHVlKTt9fXJldHVybiB2YWx1ZXM7fWVs c2UKcmV0dXJuKHRoaXNbMF0udmFsdWV8fCIiKS5yZXBsYWNlKC9cci9nLCIiKTt9 cmV0dXJuIHVuZGVmaW5lZDt9aWYodmFsdWUuY29uc3RydWN0b3I9PU51bWJlcil2 YWx1ZSs9Jyc7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKHRoaXMubm9k ZVR5cGUhPTEpcmV0dXJuO2lmKHZhbHVlLmNvbnN0cnVjdG9yPT1BcnJheSYmL3Jh ZGlvfGNoZWNrYm94Ly50ZXN0KHRoaXMudHlwZSkpdGhpcy5jaGVja2VkPShqUXVl cnkuaW5BcnJheSh0aGlzLnZhbHVlLHZhbHVlKT49MHx8alF1ZXJ5LmluQXJyYXko dGhpcy5uYW1lLHZhbHVlKT49MCk7ZWxzZSBpZihqUXVlcnkubm9kZU5hbWUodGhp cywic2VsZWN0Iikpe3ZhciB2YWx1ZXM9alF1ZXJ5Lm1ha2VBcnJheSh2YWx1ZSk7 alF1ZXJ5KCJvcHRpb24iLHRoaXMpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnNlbGVj dGVkPShqUXVlcnkuaW5BcnJheSh0aGlzLnZhbHVlLHZhbHVlcyk+PTB8fGpRdWVy eS5pbkFycmF5KHRoaXMudGV4dCx2YWx1ZXMpPj0wKTt9KTtpZighdmFsdWVzLmxl bmd0aCl0aGlzLnNlbGVjdGVkSW5kZXg9LTE7fWVsc2UKdGhpcy52YWx1ZT12YWx1 ZTt9KTt9LGh0bWw6ZnVuY3Rpb24odmFsdWUpe3JldHVybiB2YWx1ZT09dW5kZWZp bmVkPyh0aGlzWzBdP3RoaXNbMF0uaW5uZXJIVE1MOm51bGwpOnRoaXMuZW1wdHko KS5hcHBlbmQodmFsdWUpO30scmVwbGFjZVdpdGg6ZnVuY3Rpb24odmFsdWUpe3Jl dHVybiB0aGlzLmFmdGVyKHZhbHVlKS5yZW1vdmUoKTt9LGVxOmZ1bmN0aW9uKGkp e3JldHVybiB0aGlzLnNsaWNlKGksaSsxKTt9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0 dXJuIHRoaXMucHVzaFN0YWNrKEFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseSh0 aGlzLGFyZ3VtZW50cykpO30sbWFwOmZ1bmN0aW9uKGNhbGxiYWNrKXtyZXR1cm4g dGhpcy5wdXNoU3RhY2soalF1ZXJ5Lm1hcCh0aGlzLGZ1bmN0aW9uKGVsZW0saSl7 cmV0dXJuIGNhbGxiYWNrLmNhbGwoZWxlbSxpLGVsZW0pO30pKTt9LGFuZFNlbGY6 ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hZGQodGhpcy5wcmV2T2JqZWN0KTt9LGRh dGE6ZnVuY3Rpb24oa2V5LHZhbHVlKXt2YXIgcGFydHM9a2V5LnNwbGl0KCIuIik7 cGFydHNbMV09cGFydHNbMV0/Ii4iK3BhcnRzWzFdOiIiO2lmKHZhbHVlPT09dW5k ZWZpbmVkKXt2YXIgZGF0YT10aGlzLnRyaWdnZXJIYW5kbGVyKCJnZXREYXRhIitw YXJ0c1sxXSsiISIsW3BhcnRzWzBdXSk7aWYoZGF0YT09PXVuZGVmaW5lZCYmdGhp cy5sZW5ndGgpZGF0YT1qUXVlcnkuZGF0YSh0aGlzWzBdLGtleSk7cmV0dXJuIGRh dGE9PT11bmRlZmluZWQmJnBhcnRzWzFdP3RoaXMuZGF0YShwYXJ0c1swXSk6ZGF0 YTt9ZWxzZQpyZXR1cm4gdGhpcy50cmlnZ2VyKCJzZXREYXRhIitwYXJ0c1sxXSsi ISIsW3BhcnRzWzBdLHZhbHVlXSkuZWFjaChmdW5jdGlvbigpe2pRdWVyeS5kYXRh KHRoaXMsa2V5LHZhbHVlKTt9KTt9LHJlbW92ZURhdGE6ZnVuY3Rpb24oa2V5KXty ZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7alF1ZXJ5LnJlbW92ZURhdGEodGhp cyxrZXkpO30pO30sZG9tTWFuaXA6ZnVuY3Rpb24oYXJncyx0YWJsZSxyZXZlcnNl LGNhbGxiYWNrKXt2YXIgY2xvbmU9dGhpcy5sZW5ndGg+MSxlbGVtcztyZXR1cm4g dGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoIWVsZW1zKXtlbGVtcz1qUXVlcnkuY2xl YW4oYXJncyx0aGlzLm93bmVyRG9jdW1lbnQpO2lmKHJldmVyc2UpZWxlbXMucmV2 ZXJzZSgpO312YXIgb2JqPXRoaXM7aWYodGFibGUmJmpRdWVyeS5ub2RlTmFtZSh0 aGlzLCJ0YWJsZSIpJiZqUXVlcnkubm9kZU5hbWUoZWxlbXNbMF0sInRyIikpb2Jq PXRoaXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRib2R5IilbMF18fHRoaXMuYXBw ZW5kQ2hpbGQodGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRib2R5 IikpO3ZhciBzY3JpcHRzPWpRdWVyeShbXSk7alF1ZXJ5LmVhY2goZWxlbXMsZnVu Y3Rpb24oKXt2YXIgZWxlbT1jbG9uZT9qUXVlcnkodGhpcykuY2xvbmUodHJ1ZSlb MF06dGhpcztpZihqUXVlcnkubm9kZU5hbWUoZWxlbSwic2NyaXB0Iikpc2NyaXB0 cz1zY3JpcHRzLmFkZChlbGVtKTtlbHNle2lmKGVsZW0ubm9kZVR5cGU9PTEpc2Ny aXB0cz1zY3JpcHRzLmFkZChqUXVlcnkoInNjcmlwdCIsZWxlbSkucmVtb3ZlKCkp O2NhbGxiYWNrLmNhbGwob2JqLGVsZW0pO319KTtzY3JpcHRzLmVhY2goZXZhbFNj cmlwdCk7fSk7fX07alF1ZXJ5LmZuLmluaXQucHJvdG90eXBlPWpRdWVyeS5mbjtm dW5jdGlvbiBldmFsU2NyaXB0KGksZWxlbSl7aWYoZWxlbS5zcmMpalF1ZXJ5LmFq YXgoe3VybDplbGVtLnNyYyxhc3luYzpmYWxzZSxkYXRhVHlwZToic2NyaXB0In0p O2Vsc2UKalF1ZXJ5Lmdsb2JhbEV2YWwoZWxlbS50ZXh0fHxlbGVtLnRleHRDb250 ZW50fHxlbGVtLmlubmVySFRNTHx8IiIpO2lmKGVsZW0ucGFyZW50Tm9kZSllbGVt LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxlbSk7fWZ1bmN0aW9uIG5vdygpe3Jl dHVybituZXcgRGF0ZTt9alF1ZXJ5LmV4dGVuZD1qUXVlcnkuZm4uZXh0ZW5kPWZ1 bmN0aW9uKCl7dmFyIHRhcmdldD1hcmd1bWVudHNbMF18fHt9LGk9MSxsZW5ndGg9 YXJndW1lbnRzLmxlbmd0aCxkZWVwPWZhbHNlLG9wdGlvbnM7aWYodGFyZ2V0LmNv bnN0cnVjdG9yPT1Cb29sZWFuKXtkZWVwPXRhcmdldDt0YXJnZXQ9YXJndW1lbnRz WzFdfHx7fTtpPTI7fWlmKHR5cGVvZiB0YXJnZXQhPSJvYmplY3QiJiZ0eXBlb2Yg dGFyZ2V0IT0iZnVuY3Rpb24iKXRhcmdldD17fTtpZihsZW5ndGg9PWkpe3Rhcmdl dD10aGlzOy0taTt9Zm9yKDtpPGxlbmd0aDtpKyspaWYoKG9wdGlvbnM9YXJndW1l bnRzW2ldKSE9bnVsbClmb3IodmFyIG5hbWUgaW4gb3B0aW9ucyl7dmFyIHNyYz10 YXJnZXRbbmFtZV0sY29weT1vcHRpb25zW25hbWVdO2lmKHRhcmdldD09PWNvcHkp Y29udGludWU7aWYoZGVlcCYmY29weSYmdHlwZW9mIGNvcHk9PSJvYmplY3QiJiYh Y29weS5ub2RlVHlwZSl0YXJnZXRbbmFtZV09alF1ZXJ5LmV4dGVuZChkZWVwLHNy Y3x8KGNvcHkubGVuZ3RoIT1udWxsP1tdOnt9KSxjb3B5KTtlbHNlIGlmKGNvcHkh PT11bmRlZmluZWQpdGFyZ2V0W25hbWVdPWNvcHk7fXJldHVybiB0YXJnZXQ7fTt2 YXIgZXhwYW5kbz0ialF1ZXJ5Iitub3coKSx1dWlkPTAsd2luZG93RGF0YT17fSxl eGNsdWRlPS96LT9pbmRleHxmb250LT93ZWlnaHR8b3BhY2l0eXx6b29tfGxpbmUt P2hlaWdodC9pLGRlZmF1bHRWaWV3PWRvY3VtZW50LmRlZmF1bHRWaWV3fHx7fTtq UXVlcnkuZXh0ZW5kKHtub0NvbmZsaWN0OmZ1bmN0aW9uKGRlZXApe3dpbmRvdy4k PV8kO2lmKGRlZXApd2luZG93LmpRdWVyeT1falF1ZXJ5O3JldHVybiBqUXVlcnk7 fSxpc0Z1bmN0aW9uOmZ1bmN0aW9uKGZuKXtyZXR1cm4hIWZuJiZ0eXBlb2YgZm4h PSJzdHJpbmciJiYhZm4ubm9kZU5hbWUmJmZuLmNvbnN0cnVjdG9yIT1BcnJheSYm L15bXHNbXT9mdW5jdGlvbi8udGVzdChmbisiIik7fSxpc1hNTERvYzpmdW5jdGlv bihlbGVtKXtyZXR1cm4gZWxlbS5kb2N1bWVudEVsZW1lbnQmJiFlbGVtLmJvZHl8 fGVsZW0udGFnTmFtZSYmZWxlbS5vd25lckRvY3VtZW50JiYhZWxlbS5vd25lckRv Y3VtZW50LmJvZHk7fSxnbG9iYWxFdmFsOmZ1bmN0aW9uKGRhdGEpe2RhdGE9alF1 ZXJ5LnRyaW0oZGF0YSk7aWYoZGF0YSl7dmFyIGhlYWQ9ZG9jdW1lbnQuZ2V0RWxl bWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVt ZW50LHNjcmlwdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtzY3Jp cHQudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtpZihqUXVlcnkuYnJvd3Nlci5tc2ll KXNjcmlwdC50ZXh0PWRhdGE7ZWxzZQpzY3JpcHQuYXBwZW5kQ2hpbGQoZG9jdW1l bnQuY3JlYXRlVGV4dE5vZGUoZGF0YSkpO2hlYWQuaW5zZXJ0QmVmb3JlKHNjcmlw dCxoZWFkLmZpcnN0Q2hpbGQpO2hlYWQucmVtb3ZlQ2hpbGQoc2NyaXB0KTt9fSxu b2RlTmFtZTpmdW5jdGlvbihlbGVtLG5hbWUpe3JldHVybiBlbGVtLm5vZGVOYW1l JiZlbGVtLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk9PW5hbWUudG9VcHBlckNhc2Uo KTt9LGNhY2hlOnt9LGRhdGE6ZnVuY3Rpb24oZWxlbSxuYW1lLGRhdGEpe2VsZW09 ZWxlbT09d2luZG93P3dpbmRvd0RhdGE6ZWxlbTt2YXIgaWQ9ZWxlbVtleHBhbmRv XTtpZighaWQpaWQ9ZWxlbVtleHBhbmRvXT0rK3V1aWQ7aWYobmFtZSYmIWpRdWVy eS5jYWNoZVtpZF0palF1ZXJ5LmNhY2hlW2lkXT17fTtpZihkYXRhIT09dW5kZWZp bmVkKWpRdWVyeS5jYWNoZVtpZF1bbmFtZV09ZGF0YTtyZXR1cm4gbmFtZT9qUXVl cnkuY2FjaGVbaWRdW25hbWVdOmlkO30scmVtb3ZlRGF0YTpmdW5jdGlvbihlbGVt LG5hbWUpe2VsZW09ZWxlbT09d2luZG93P3dpbmRvd0RhdGE6ZWxlbTt2YXIgaWQ9 ZWxlbVtleHBhbmRvXTtpZihuYW1lKXtpZihqUXVlcnkuY2FjaGVbaWRdKXtkZWxl dGUgalF1ZXJ5LmNhY2hlW2lkXVtuYW1lXTtuYW1lPSIiO2ZvcihuYW1lIGluIGpR dWVyeS5jYWNoZVtpZF0pYnJlYWs7aWYoIW5hbWUpalF1ZXJ5LnJlbW92ZURhdGEo ZWxlbSk7fX1lbHNle3RyeXtkZWxldGUgZWxlbVtleHBhbmRvXTt9Y2F0Y2goZSl7 aWYoZWxlbS5yZW1vdmVBdHRyaWJ1dGUpZWxlbS5yZW1vdmVBdHRyaWJ1dGUoZXhw YW5kbyk7fWRlbGV0ZSBqUXVlcnkuY2FjaGVbaWRdO319LGVhY2g6ZnVuY3Rpb24o b2JqZWN0LGNhbGxiYWNrLGFyZ3Mpe3ZhciBuYW1lLGk9MCxsZW5ndGg9b2JqZWN0 Lmxlbmd0aDtpZihhcmdzKXtpZihsZW5ndGg9PXVuZGVmaW5lZCl7Zm9yKG5hbWUg aW4gb2JqZWN0KWlmKGNhbGxiYWNrLmFwcGx5KG9iamVjdFtuYW1lXSxhcmdzKT09 PWZhbHNlKWJyZWFrO31lbHNlCmZvcig7aTxsZW5ndGg7KWlmKGNhbGxiYWNrLmFw cGx5KG9iamVjdFtpKytdLGFyZ3MpPT09ZmFsc2UpYnJlYWs7fWVsc2V7aWYobGVu Z3RoPT11bmRlZmluZWQpe2ZvcihuYW1lIGluIG9iamVjdClpZihjYWxsYmFjay5j YWxsKG9iamVjdFtuYW1lXSxuYW1lLG9iamVjdFtuYW1lXSk9PT1mYWxzZSlicmVh azt9ZWxzZQpmb3IodmFyIHZhbHVlPW9iamVjdFswXTtpPGxlbmd0aCYmY2FsbGJh Y2suY2FsbCh2YWx1ZSxpLHZhbHVlKSE9PWZhbHNlO3ZhbHVlPW9iamVjdFsrK2ld KXt9fXJldHVybiBvYmplY3Q7fSxwcm9wOmZ1bmN0aW9uKGVsZW0sdmFsdWUsdHlw ZSxpLG5hbWUpe2lmKGpRdWVyeS5pc0Z1bmN0aW9uKHZhbHVlKSl2YWx1ZT12YWx1 ZS5jYWxsKGVsZW0saSk7cmV0dXJuIHZhbHVlJiZ2YWx1ZS5jb25zdHJ1Y3Rvcj09 TnVtYmVyJiZ0eXBlPT0iY3VyQ1NTIiYmIWV4Y2x1ZGUudGVzdChuYW1lKT92YWx1 ZSsicHgiOnZhbHVlO30sY2xhc3NOYW1lOnthZGQ6ZnVuY3Rpb24oZWxlbSxjbGFz c05hbWVzKXtqUXVlcnkuZWFjaCgoY2xhc3NOYW1lc3x8IiIpLnNwbGl0KC9ccysv KSxmdW5jdGlvbihpLGNsYXNzTmFtZSl7aWYoZWxlbS5ub2RlVHlwZT09MSYmIWpR dWVyeS5jbGFzc05hbWUuaGFzKGVsZW0uY2xhc3NOYW1lLGNsYXNzTmFtZSkpZWxl bS5jbGFzc05hbWUrPShlbGVtLmNsYXNzTmFtZT8iICI6IiIpK2NsYXNzTmFtZTt9 KTt9LHJlbW92ZTpmdW5jdGlvbihlbGVtLGNsYXNzTmFtZXMpe2lmKGVsZW0ubm9k ZVR5cGU9PTEpZWxlbS5jbGFzc05hbWU9Y2xhc3NOYW1lcyE9dW5kZWZpbmVkP2pR dWVyeS5ncmVwKGVsZW0uY2xhc3NOYW1lLnNwbGl0KC9ccysvKSxmdW5jdGlvbihj bGFzc05hbWUpe3JldHVybiFqUXVlcnkuY2xhc3NOYW1lLmhhcyhjbGFzc05hbWVz LGNsYXNzTmFtZSk7fSkuam9pbigiICIpOiIiO30saGFzOmZ1bmN0aW9uKGVsZW0s Y2xhc3NOYW1lKXtyZXR1cm4galF1ZXJ5LmluQXJyYXkoY2xhc3NOYW1lLChlbGVt LmNsYXNzTmFtZXx8ZWxlbSkudG9TdHJpbmcoKS5zcGxpdCgvXHMrLykpPi0xO319 LHN3YXA6ZnVuY3Rpb24oZWxlbSxvcHRpb25zLGNhbGxiYWNrKXt2YXIgb2xkPXt9 O2Zvcih2YXIgbmFtZSBpbiBvcHRpb25zKXtvbGRbbmFtZV09ZWxlbS5zdHlsZVtu YW1lXTtlbGVtLnN0eWxlW25hbWVdPW9wdGlvbnNbbmFtZV07fWNhbGxiYWNrLmNh bGwoZWxlbSk7Zm9yKHZhciBuYW1lIGluIG9wdGlvbnMpZWxlbS5zdHlsZVtuYW1l XT1vbGRbbmFtZV07fSxjc3M6ZnVuY3Rpb24oZWxlbSxuYW1lLGZvcmNlKXtpZihu YW1lPT0id2lkdGgifHxuYW1lPT0iaGVpZ2h0Iil7dmFyIHZhbCxwcm9wcz17cG9z aXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJs b2NrIn0sd2hpY2g9bmFtZT09IndpZHRoIj9bIkxlZnQiLCJSaWdodCJdOlsiVG9w IiwiQm90dG9tIl07ZnVuY3Rpb24gZ2V0V0goKXt2YWw9bmFtZT09IndpZHRoIj9l bGVtLm9mZnNldFdpZHRoOmVsZW0ub2Zmc2V0SGVpZ2h0O3ZhciBwYWRkaW5nPTAs Ym9yZGVyPTA7alF1ZXJ5LmVhY2god2hpY2gsZnVuY3Rpb24oKXtwYWRkaW5nKz1w YXJzZUZsb2F0KGpRdWVyeS5jdXJDU1MoZWxlbSwicGFkZGluZyIrdGhpcyx0cnVl KSl8fDA7Ym9yZGVyKz1wYXJzZUZsb2F0KGpRdWVyeS5jdXJDU1MoZWxlbSwiYm9y ZGVyIit0aGlzKyJXaWR0aCIsdHJ1ZSkpfHwwO30pO3ZhbC09TWF0aC5yb3VuZChw YWRkaW5nK2JvcmRlcik7fWlmKGpRdWVyeShlbGVtKS5pcygiOnZpc2libGUiKSln ZXRXSCgpO2Vsc2UKalF1ZXJ5LnN3YXAoZWxlbSxwcm9wcyxnZXRXSCk7cmV0dXJu IE1hdGgubWF4KDAsdmFsKTt9cmV0dXJuIGpRdWVyeS5jdXJDU1MoZWxlbSxuYW1l LGZvcmNlKTt9LGN1ckNTUzpmdW5jdGlvbihlbGVtLG5hbWUsZm9yY2Upe3ZhciBy ZXQsc3R5bGU9ZWxlbS5zdHlsZTtmdW5jdGlvbiBjb2xvcihlbGVtKXtpZighalF1 ZXJ5LmJyb3dzZXIuc2FmYXJpKXJldHVybiBmYWxzZTt2YXIgcmV0PWRlZmF1bHRW aWV3LmdldENvbXB1dGVkU3R5bGUoZWxlbSxudWxsKTtyZXR1cm4hcmV0fHxyZXQu Z2V0UHJvcGVydHlWYWx1ZSgiY29sb3IiKT09IiI7fWlmKG5hbWU9PSJvcGFjaXR5 IiYmalF1ZXJ5LmJyb3dzZXIubXNpZSl7cmV0PWpRdWVyeS5hdHRyKHN0eWxlLCJv cGFjaXR5Iik7cmV0dXJuIHJldD09IiI/IjEiOnJldDt9aWYoalF1ZXJ5LmJyb3dz ZXIub3BlcmEmJm5hbWU9PSJkaXNwbGF5Iil7dmFyIHNhdmU9c3R5bGUub3V0bGlu ZTtzdHlsZS5vdXRsaW5lPSIwIHNvbGlkIGJsYWNrIjtzdHlsZS5vdXRsaW5lPXNh dmU7fWlmKG5hbWUubWF0Y2goL2Zsb2F0L2kpKW5hbWU9c3R5bGVGbG9hdDtpZigh Zm9yY2UmJnN0eWxlJiZzdHlsZVtuYW1lXSlyZXQ9c3R5bGVbbmFtZV07ZWxzZSBp ZihkZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKXtpZihuYW1lLm1hdGNoKC9m bG9hdC9pKSluYW1lPSJmbG9hdCI7bmFtZT1uYW1lLnJlcGxhY2UoLyhbQS1aXSkv ZywiLSQxIikudG9Mb3dlckNhc2UoKTt2YXIgY29tcHV0ZWRTdHlsZT1kZWZhdWx0 Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsZW0sbnVsbCk7aWYoY29tcHV0ZWRTdHls ZSYmIWNvbG9yKGVsZW0pKXJldD1jb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFs dWUobmFtZSk7ZWxzZXt2YXIgc3dhcD1bXSxzdGFjaz1bXSxhPWVsZW0saT0wO2Zv cig7YSYmY29sb3IoYSk7YT1hLnBhcmVudE5vZGUpc3RhY2sudW5zaGlmdChhKTtm b3IoO2k8c3RhY2subGVuZ3RoO2krKylpZihjb2xvcihzdGFja1tpXSkpe3N3YXBb aV09c3RhY2tbaV0uc3R5bGUuZGlzcGxheTtzdGFja1tpXS5zdHlsZS5kaXNwbGF5 PSJibG9jayI7fXJldD1uYW1lPT0iZGlzcGxheSImJnN3YXBbc3RhY2subGVuZ3Ro LTFdIT1udWxsPyJub25lIjooY29tcHV0ZWRTdHlsZSYmY29tcHV0ZWRTdHlsZS5n ZXRQcm9wZXJ0eVZhbHVlKG5hbWUpKXx8IiI7Zm9yKGk9MDtpPHN3YXAubGVuZ3Ro O2krKylpZihzd2FwW2ldIT1udWxsKXN0YWNrW2ldLnN0eWxlLmRpc3BsYXk9c3dh cFtpXTt9aWYobmFtZT09Im9wYWNpdHkiJiZyZXQ9PSIiKXJldD0iMSI7fWVsc2Ug aWYoZWxlbS5jdXJyZW50U3R5bGUpe3ZhciBjYW1lbENhc2U9bmFtZS5yZXBsYWNl KC9cLShcdykvZyxmdW5jdGlvbihhbGwsbGV0dGVyKXtyZXR1cm4gbGV0dGVyLnRv VXBwZXJDYXNlKCk7fSk7cmV0PWVsZW0uY3VycmVudFN0eWxlW25hbWVdfHxlbGVt LmN1cnJlbnRTdHlsZVtjYW1lbENhc2VdO2lmKCEvXlxkKyhweCk/JC9pLnRlc3Qo cmV0KSYmL15cZC8udGVzdChyZXQpKXt2YXIgbGVmdD1zdHlsZS5sZWZ0LHJzTGVm dD1lbGVtLnJ1bnRpbWVTdHlsZS5sZWZ0O2VsZW0ucnVudGltZVN0eWxlLmxlZnQ9 ZWxlbS5jdXJyZW50U3R5bGUubGVmdDtzdHlsZS5sZWZ0PXJldHx8MDtyZXQ9c3R5 bGUucGl4ZWxMZWZ0KyJweCI7c3R5bGUubGVmdD1sZWZ0O2VsZW0ucnVudGltZVN0 eWxlLmxlZnQ9cnNMZWZ0O319cmV0dXJuIHJldDt9LGNsZWFuOmZ1bmN0aW9uKGVs ZW1zLGNvbnRleHQpe3ZhciByZXQ9W107Y29udGV4dD1jb250ZXh0fHxkb2N1bWVu dDtpZih0eXBlb2YgY29udGV4dC5jcmVhdGVFbGVtZW50PT0ndW5kZWZpbmVkJylj b250ZXh0PWNvbnRleHQub3duZXJEb2N1bWVudHx8Y29udGV4dFswXSYmY29udGV4 dFswXS5vd25lckRvY3VtZW50fHxkb2N1bWVudDtqUXVlcnkuZWFjaChlbGVtcyxm dW5jdGlvbihpLGVsZW0pe2lmKCFlbGVtKXJldHVybjtpZihlbGVtLmNvbnN0cnVj dG9yPT1OdW1iZXIpZWxlbSs9Jyc7aWYodHlwZW9mIGVsZW09PSJzdHJpbmciKXtl bGVtPWVsZW0ucmVwbGFjZSgvKDwoXHcrKVtePl0qPylcLz4vZyxmdW5jdGlvbihh bGwsZnJvbnQsdGFnKXtyZXR1cm4gdGFnLm1hdGNoKC9eKGFiYnJ8YnJ8Y29sfGlt Z3xpbnB1dHxsaW5rfG1ldGF8cGFyYW18aHJ8YXJlYXxlbWJlZCkkL2kpP2FsbDpm cm9udCsiPjwvIit0YWcrIj4iO30pO3ZhciB0YWdzPWpRdWVyeS50cmltKGVsZW0p LnRvTG93ZXJDYXNlKCksZGl2PWNvbnRleHQuY3JlYXRlRWxlbWVudCgiZGl2Iik7 dmFyIHdyYXA9IXRhZ3MuaW5kZXhPZigiPG9wdCIpJiZbMSwiPHNlbGVjdCBtdWx0 aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdfHwhdGFncy5pbmRleE9mKCI8 bGVnIikmJlsxLCI8ZmllbGRzZXQ+IiwiPC9maWVsZHNldD4iXXx8dGFncy5tYXRj aCgvXjwodGhlYWR8dGJvZHl8dGZvb3R8Y29sZ3xjYXApLykmJlsxLCI8dGFibGU+ IiwiPC90YWJsZT4iXXx8IXRhZ3MuaW5kZXhPZigiPHRyIikmJlsyLCI8dGFibGU+ PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXXx8KCF0YWdzLmluZGV4T2YoIjx0 ZCIpfHwhdGFncy5pbmRleE9mKCI8dGgiKSkmJlszLCI8dGFibGU+PHRib2R5Pjx0 cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXXx8IXRhZ3MuaW5kZXhPZigiPGNv bCIpJiZbMiwiPHRhYmxlPjx0Ym9keT48L3Rib2R5Pjxjb2xncm91cD4iLCI8L2Nv bGdyb3VwPjwvdGFibGU+Il18fGpRdWVyeS5icm93c2VyLm1zaWUmJlsxLCJkaXY8 ZGl2PiIsIjwvZGl2PiJdfHxbMCwiIiwiIl07ZGl2LmlubmVySFRNTD13cmFwWzFd K2VsZW0rd3JhcFsyXTt3aGlsZSh3cmFwWzBdLS0pZGl2PWRpdi5sYXN0Q2hpbGQ7 aWYoalF1ZXJ5LmJyb3dzZXIubXNpZSl7dmFyIHRib2R5PSF0YWdzLmluZGV4T2Yo Ijx0YWJsZSIpJiZ0YWdzLmluZGV4T2YoIjx0Ym9keSIpPDA/ZGl2LmZpcnN0Q2hp bGQmJmRpdi5maXJzdENoaWxkLmNoaWxkTm9kZXM6d3JhcFsxXT09Ijx0YWJsZT4i JiZ0YWdzLmluZGV4T2YoIjx0Ym9keSIpPDA/ZGl2LmNoaWxkTm9kZXM6W107Zm9y KHZhciBqPXRib2R5Lmxlbmd0aC0xO2o+PTA7LS1qKWlmKGpRdWVyeS5ub2RlTmFt ZSh0Ym9keVtqXSwidGJvZHkiKSYmIXRib2R5W2pdLmNoaWxkTm9kZXMubGVuZ3Ro KXRib2R5W2pdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGJvZHlbal0pO2lmKC9e XHMvLnRlc3QoZWxlbSkpZGl2Lmluc2VydEJlZm9yZShjb250ZXh0LmNyZWF0ZVRl eHROb2RlKGVsZW0ubWF0Y2goL15ccyovKVswXSksZGl2LmZpcnN0Q2hpbGQpO31l bGVtPWpRdWVyeS5tYWtlQXJyYXkoZGl2LmNoaWxkTm9kZXMpO31pZihlbGVtLmxl bmd0aD09PTAmJighalF1ZXJ5Lm5vZGVOYW1lKGVsZW0sImZvcm0iKSYmIWpRdWVy eS5ub2RlTmFtZShlbGVtLCJzZWxlY3QiKSkpcmV0dXJuO2lmKGVsZW1bMF09PXVu ZGVmaW5lZHx8alF1ZXJ5Lm5vZGVOYW1lKGVsZW0sImZvcm0iKXx8ZWxlbS5vcHRp b25zKXJldC5wdXNoKGVsZW0pO2Vsc2UKcmV0PWpRdWVyeS5tZXJnZShyZXQsZWxl bSk7fSk7cmV0dXJuIHJldDt9LGF0dHI6ZnVuY3Rpb24oZWxlbSxuYW1lLHZhbHVl KXtpZighZWxlbXx8ZWxlbS5ub2RlVHlwZT09M3x8ZWxlbS5ub2RlVHlwZT09OCly ZXR1cm4gdW5kZWZpbmVkO3ZhciBub3R4bWw9IWpRdWVyeS5pc1hNTERvYyhlbGVt KSxzZXQ9dmFsdWUhPT11bmRlZmluZWQsbXNpZT1qUXVlcnkuYnJvd3Nlci5tc2ll O25hbWU9bm90eG1sJiZqUXVlcnkucHJvcHNbbmFtZV18fG5hbWU7aWYoZWxlbS50 YWdOYW1lKXt2YXIgc3BlY2lhbD0vaHJlZnxzcmN8c3R5bGUvLnRlc3QobmFtZSk7 aWYobmFtZT09InNlbGVjdGVkIiYmalF1ZXJ5LmJyb3dzZXIuc2FmYXJpKWVsZW0u cGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O2lmKG5hbWUgaW4gZWxlbSYmbm90eG1s JiYhc3BlY2lhbCl7aWYoc2V0KXtpZihuYW1lPT0idHlwZSImJmpRdWVyeS5ub2Rl TmFtZShlbGVtLCJpbnB1dCIpJiZlbGVtLnBhcmVudE5vZGUpdGhyb3cidHlwZSBw cm9wZXJ0eSBjYW4ndCBiZSBjaGFuZ2VkIjtlbGVtW25hbWVdPXZhbHVlO31pZihq UXVlcnkubm9kZU5hbWUoZWxlbSwiZm9ybSIpJiZlbGVtLmdldEF0dHJpYnV0ZU5v ZGUobmFtZSkpcmV0dXJuIGVsZW0uZ2V0QXR0cmlidXRlTm9kZShuYW1lKS5ub2Rl VmFsdWU7cmV0dXJuIGVsZW1bbmFtZV07fWlmKG1zaWUmJm5vdHhtbCYmbmFtZT09 InN0eWxlIilyZXR1cm4galF1ZXJ5LmF0dHIoZWxlbS5zdHlsZSwiY3NzVGV4dCIs dmFsdWUpO2lmKHNldCllbGVtLnNldEF0dHJpYnV0ZShuYW1lLCIiK3ZhbHVlKTt2 YXIgYXR0cj1tc2llJiZub3R4bWwmJnNwZWNpYWw/ZWxlbS5nZXRBdHRyaWJ1dGUo bmFtZSwyKTplbGVtLmdldEF0dHJpYnV0ZShuYW1lKTtyZXR1cm4gYXR0cj09PW51 bGw/dW5kZWZpbmVkOmF0dHI7fWlmKG1zaWUmJm5hbWU9PSJvcGFjaXR5Iil7aWYo c2V0KXtlbGVtLnpvb209MTtlbGVtLmZpbHRlcj0oZWxlbS5maWx0ZXJ8fCIiKS5y ZXBsYWNlKC9hbHBoYVwoW14pXSpcKS8sIiIpKyhwYXJzZUludCh2YWx1ZSkrJyc9 PSJOYU4iPyIiOiJhbHBoYShvcGFjaXR5PSIrdmFsdWUqMTAwKyIpIik7fXJldHVy biBlbGVtLmZpbHRlciYmZWxlbS5maWx0ZXIuaW5kZXhPZigib3BhY2l0eT0iKT49 MD8ocGFyc2VGbG9hdChlbGVtLmZpbHRlci5tYXRjaCgvb3BhY2l0eT0oW14pXSop LylbMV0pLzEwMCkrJyc6IiI7fW5hbWU9bmFtZS5yZXBsYWNlKC8tKFthLXpdKS9p ZyxmdW5jdGlvbihhbGwsbGV0dGVyKXtyZXR1cm4gbGV0dGVyLnRvVXBwZXJDYXNl KCk7fSk7aWYoc2V0KWVsZW1bbmFtZV09dmFsdWU7cmV0dXJuIGVsZW1bbmFtZV07 fSx0cmltOmZ1bmN0aW9uKHRleHQpe3JldHVybih0ZXh0fHwiIikucmVwbGFjZSgv XlxzK3xccyskL2csIiIpO30sbWFrZUFycmF5OmZ1bmN0aW9uKGFycmF5KXt2YXIg cmV0PVtdO2lmKGFycmF5IT1udWxsKXt2YXIgaT1hcnJheS5sZW5ndGg7aWYoaT09 bnVsbHx8YXJyYXkuc3BsaXR8fGFycmF5LnNldEludGVydmFsfHxhcnJheS5jYWxs KXJldFswXT1hcnJheTtlbHNlCndoaWxlKGkpcmV0Wy0taV09YXJyYXlbaV07fXJl dHVybiByZXQ7fSxpbkFycmF5OmZ1bmN0aW9uKGVsZW0sYXJyYXkpe2Zvcih2YXIg aT0wLGxlbmd0aD1hcnJheS5sZW5ndGg7aTxsZW5ndGg7aSsrKWlmKGFycmF5W2ld PT09ZWxlbSlyZXR1cm4gaTtyZXR1cm4tMTt9LG1lcmdlOmZ1bmN0aW9uKGZpcnN0 LHNlY29uZCl7dmFyIGk9MCxlbGVtLHBvcz1maXJzdC5sZW5ndGg7aWYoalF1ZXJ5 LmJyb3dzZXIubXNpZSl7d2hpbGUoZWxlbT1zZWNvbmRbaSsrXSlpZihlbGVtLm5v ZGVUeXBlIT04KWZpcnN0W3BvcysrXT1lbGVtO31lbHNlCndoaWxlKGVsZW09c2Vj b25kW2krK10pZmlyc3RbcG9zKytdPWVsZW07cmV0dXJuIGZpcnN0O30sdW5pcXVl OmZ1bmN0aW9uKGFycmF5KXt2YXIgcmV0PVtdLGRvbmU9e307dHJ5e2Zvcih2YXIg aT0wLGxlbmd0aD1hcnJheS5sZW5ndGg7aTxsZW5ndGg7aSsrKXt2YXIgaWQ9alF1 ZXJ5LmRhdGEoYXJyYXlbaV0pO2lmKCFkb25lW2lkXSl7ZG9uZVtpZF09dHJ1ZTty ZXQucHVzaChhcnJheVtpXSk7fX19Y2F0Y2goZSl7cmV0PWFycmF5O31yZXR1cm4g cmV0O30sZ3JlcDpmdW5jdGlvbihlbGVtcyxjYWxsYmFjayxpbnYpe3ZhciByZXQ9 W107Zm9yKHZhciBpPTAsbGVuZ3RoPWVsZW1zLmxlbmd0aDtpPGxlbmd0aDtpKysp aWYoIWludiE9IWNhbGxiYWNrKGVsZW1zW2ldLGkpKXJldC5wdXNoKGVsZW1zW2ld KTtyZXR1cm4gcmV0O30sbWFwOmZ1bmN0aW9uKGVsZW1zLGNhbGxiYWNrKXt2YXIg cmV0PVtdO2Zvcih2YXIgaT0wLGxlbmd0aD1lbGVtcy5sZW5ndGg7aTxsZW5ndGg7 aSsrKXt2YXIgdmFsdWU9Y2FsbGJhY2soZWxlbXNbaV0saSk7aWYodmFsdWUhPW51 bGwpcmV0W3JldC5sZW5ndGhdPXZhbHVlO31yZXR1cm4gcmV0LmNvbmNhdC5hcHBs eShbXSxyZXQpO319KTt2YXIgdXNlckFnZW50PW5hdmlnYXRvci51c2VyQWdlbnQu dG9Mb3dlckNhc2UoKTtqUXVlcnkuYnJvd3Nlcj17dmVyc2lvbjoodXNlckFnZW50 Lm1hdGNoKC8uKyg/OnJ2fGl0fHJhfGllKVtcLzogXShbXGQuXSspLyl8fFtdKVsx XSxzYWZhcmk6L3dlYmtpdC8udGVzdCh1c2VyQWdlbnQpLG9wZXJhOi9vcGVyYS8u dGVzdCh1c2VyQWdlbnQpLG1zaWU6L21zaWUvLnRlc3QodXNlckFnZW50KSYmIS9v cGVyYS8udGVzdCh1c2VyQWdlbnQpLG1vemlsbGE6L21vemlsbGEvLnRlc3QodXNl ckFnZW50KSYmIS8oY29tcGF0aWJsZXx3ZWJraXQpLy50ZXN0KHVzZXJBZ2VudCl9 O3ZhciBzdHlsZUZsb2F0PWpRdWVyeS5icm93c2VyLm1zaWU/InN0eWxlRmxvYXQi OiJjc3NGbG9hdCI7alF1ZXJ5LmV4dGVuZCh7Ym94TW9kZWw6IWpRdWVyeS5icm93 c2VyLm1zaWV8fGRvY3VtZW50LmNvbXBhdE1vZGU9PSJDU1MxQ29tcGF0Iixwcm9w czp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSIsImZsb2F0Ijpz dHlsZUZsb2F0LGNzc0Zsb2F0OnN0eWxlRmxvYXQsc3R5bGVGbG9hdDpzdHlsZUZs b2F0LHJlYWRvbmx5OiJyZWFkT25seSIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLGNl bGxzcGFjaW5nOiJjZWxsU3BhY2luZyJ9fSk7alF1ZXJ5LmVhY2goe3BhcmVudDpm dW5jdGlvbihlbGVtKXtyZXR1cm4gZWxlbS5wYXJlbnROb2RlO30scGFyZW50czpm dW5jdGlvbihlbGVtKXtyZXR1cm4galF1ZXJ5LmRpcihlbGVtLCJwYXJlbnROb2Rl Iik7fSxuZXh0OmZ1bmN0aW9uKGVsZW0pe3JldHVybiBqUXVlcnkubnRoKGVsZW0s MiwibmV4dFNpYmxpbmciKTt9LHByZXY6ZnVuY3Rpb24oZWxlbSl7cmV0dXJuIGpR dWVyeS5udGgoZWxlbSwyLCJwcmV2aW91c1NpYmxpbmciKTt9LG5leHRBbGw6ZnVu Y3Rpb24oZWxlbSl7cmV0dXJuIGpRdWVyeS5kaXIoZWxlbSwibmV4dFNpYmxpbmci KTt9LHByZXZBbGw6ZnVuY3Rpb24oZWxlbSl7cmV0dXJuIGpRdWVyeS5kaXIoZWxl bSwicHJldmlvdXNTaWJsaW5nIik7fSxzaWJsaW5nczpmdW5jdGlvbihlbGVtKXty ZXR1cm4galF1ZXJ5LnNpYmxpbmcoZWxlbS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQs ZWxlbSk7fSxjaGlsZHJlbjpmdW5jdGlvbihlbGVtKXtyZXR1cm4galF1ZXJ5LnNp YmxpbmcoZWxlbS5maXJzdENoaWxkKTt9LGNvbnRlbnRzOmZ1bmN0aW9uKGVsZW0p e3JldHVybiBqUXVlcnkubm9kZU5hbWUoZWxlbSwiaWZyYW1lIik/ZWxlbS5jb250 ZW50RG9jdW1lbnR8fGVsZW0uY29udGVudFdpbmRvdy5kb2N1bWVudDpqUXVlcnku bWFrZUFycmF5KGVsZW0uY2hpbGROb2Rlcyk7fX0sZnVuY3Rpb24obmFtZSxmbil7 alF1ZXJ5LmZuW25hbWVdPWZ1bmN0aW9uKHNlbGVjdG9yKXt2YXIgcmV0PWpRdWVy eS5tYXAodGhpcyxmbik7aWYoc2VsZWN0b3ImJnR5cGVvZiBzZWxlY3Rvcj09InN0 cmluZyIpcmV0PWpRdWVyeS5tdWx0aUZpbHRlcihzZWxlY3RvcixyZXQpO3JldHVy biB0aGlzLnB1c2hTdGFjayhqUXVlcnkudW5pcXVlKHJldCkpO307fSk7alF1ZXJ5 LmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5z ZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFs bDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihuYW1lLG9yaWdpbmFsKXtqUXVlcnku Zm5bbmFtZV09ZnVuY3Rpb24oKXt2YXIgYXJncz1hcmd1bWVudHM7cmV0dXJuIHRo aXMuZWFjaChmdW5jdGlvbigpe2Zvcih2YXIgaT0wLGxlbmd0aD1hcmdzLmxlbmd0 aDtpPGxlbmd0aDtpKyspalF1ZXJ5KGFyZ3NbaV0pW29yaWdpbmFsXSh0aGlzKTt9 KTt9O30pO2pRdWVyeS5lYWNoKHtyZW1vdmVBdHRyOmZ1bmN0aW9uKG5hbWUpe2pR dWVyeS5hdHRyKHRoaXMsbmFtZSwiIik7aWYodGhpcy5ub2RlVHlwZT09MSl0aGlz LnJlbW92ZUF0dHJpYnV0ZShuYW1lKTt9LGFkZENsYXNzOmZ1bmN0aW9uKGNsYXNz TmFtZXMpe2pRdWVyeS5jbGFzc05hbWUuYWRkKHRoaXMsY2xhc3NOYW1lcyk7fSxy ZW1vdmVDbGFzczpmdW5jdGlvbihjbGFzc05hbWVzKXtqUXVlcnkuY2xhc3NOYW1l LnJlbW92ZSh0aGlzLGNsYXNzTmFtZXMpO30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24o Y2xhc3NOYW1lcyl7alF1ZXJ5LmNsYXNzTmFtZVtqUXVlcnkuY2xhc3NOYW1lLmhh cyh0aGlzLGNsYXNzTmFtZXMpPyJyZW1vdmUiOiJhZGQiXSh0aGlzLGNsYXNzTmFt ZXMpO30scmVtb3ZlOmZ1bmN0aW9uKHNlbGVjdG9yKXtpZighc2VsZWN0b3J8fGpR dWVyeS5maWx0ZXIoc2VsZWN0b3IsW3RoaXNdKS5yLmxlbmd0aCl7alF1ZXJ5KCIq Iix0aGlzKS5hZGQodGhpcykuZWFjaChmdW5jdGlvbigpe2pRdWVyeS5ldmVudC5y ZW1vdmUodGhpcyk7alF1ZXJ5LnJlbW92ZURhdGEodGhpcyk7fSk7aWYodGhpcy5w YXJlbnROb2RlKXRoaXMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzKTt9fSxl bXB0eTpmdW5jdGlvbigpe2pRdWVyeSgiPioiLHRoaXMpLnJlbW92ZSgpO3doaWxl KHRoaXMuZmlyc3RDaGlsZCl0aGlzLnJlbW92ZUNoaWxkKHRoaXMuZmlyc3RDaGls ZCk7fX0sZnVuY3Rpb24obmFtZSxmbil7alF1ZXJ5LmZuW25hbWVdPWZ1bmN0aW9u KCl7cmV0dXJuIHRoaXMuZWFjaChmbixhcmd1bWVudHMpO307fSk7alF1ZXJ5LmVh Y2goWyJIZWlnaHQiLCJXaWR0aCJdLGZ1bmN0aW9uKGksbmFtZSl7dmFyIHR5cGU9 bmFtZS50b0xvd2VyQ2FzZSgpO2pRdWVyeS5mblt0eXBlXT1mdW5jdGlvbihzaXpl KXtyZXR1cm4gdGhpc1swXT09d2luZG93P2pRdWVyeS5icm93c2VyLm9wZXJhJiZk b2N1bWVudC5ib2R5WyJjbGllbnQiK25hbWVdfHxqUXVlcnkuYnJvd3Nlci5zYWZh cmkmJndpbmRvd1siaW5uZXIiK25hbWVdfHxkb2N1bWVudC5jb21wYXRNb2RlPT0i Q1NTMUNvbXBhdCImJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsiY2xpZW50Iitu YW1lXXx8ZG9jdW1lbnQuYm9keVsiY2xpZW50IituYW1lXTp0aGlzWzBdPT1kb2N1 bWVudD9NYXRoLm1heChNYXRoLm1heChkb2N1bWVudC5ib2R5WyJzY3JvbGwiK25h bWVdLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsic2Nyb2xsIituYW1lXSksTWF0 aC5tYXgoZG9jdW1lbnQuYm9keVsib2Zmc2V0IituYW1lXSxkb2N1bWVudC5kb2N1 bWVudEVsZW1lbnRbIm9mZnNldCIrbmFtZV0pKTpzaXplPT11bmRlZmluZWQ/KHRo aXMubGVuZ3RoP2pRdWVyeS5jc3ModGhpc1swXSx0eXBlKTpudWxsKTp0aGlzLmNz cyh0eXBlLHNpemUuY29uc3RydWN0b3I9PVN0cmluZz9zaXplOnNpemUrInB4Iik7 fTt9KTtmdW5jdGlvbiBudW0oZWxlbSxwcm9wKXtyZXR1cm4gZWxlbVswXSYmcGFy c2VJbnQoalF1ZXJ5LmN1ckNTUyhlbGVtWzBdLHByb3AsdHJ1ZSksMTApfHwwO312 YXIgY2hhcnM9alF1ZXJ5LmJyb3dzZXIuc2FmYXJpJiZwYXJzZUludChqUXVlcnku YnJvd3Nlci52ZXJzaW9uKTw0MTc/Iig/OltcXHcqXy1dfFxcXFwuKSI6Iig/Oltc XHdcdTAxMjgtXHVGRkZGKl8tXXxcXFxcLikiLHF1aWNrQ2hpbGQ9bmV3IFJlZ0V4 cCgiXj5cXHMqKCIrY2hhcnMrIispIikscXVpY2tJRD1uZXcgUmVnRXhwKCJeKCIr Y2hhcnMrIispKCMpKCIrY2hhcnMrIispIikscXVpY2tDbGFzcz1uZXcgUmVnRXhw KCJeKFsjLl0/KSgiK2NoYXJzKyIqKSIpO2pRdWVyeS5leHRlbmQoe2V4cHI6eyIi OmZ1bmN0aW9uKGEsaSxtKXtyZXR1cm4gbVsyXT09IioifHxqUXVlcnkubm9kZU5h bWUoYSxtWzJdKTt9LCIjIjpmdW5jdGlvbihhLGksbSl7cmV0dXJuIGEuZ2V0QXR0 cmlidXRlKCJpZCIpPT1tWzJdO30sIjoiOntsdDpmdW5jdGlvbihhLGksbSl7cmV0 dXJuIGk8bVszXS0wO30sZ3Q6ZnVuY3Rpb24oYSxpLG0pe3JldHVybiBpPm1bM10t MDt9LG50aDpmdW5jdGlvbihhLGksbSl7cmV0dXJuIG1bM10tMD09aTt9LGVxOmZ1 bmN0aW9uKGEsaSxtKXtyZXR1cm4gbVszXS0wPT1pO30sZmlyc3Q6ZnVuY3Rpb24o YSxpKXtyZXR1cm4gaT09MDt9LGxhc3Q6ZnVuY3Rpb24oYSxpLG0scil7cmV0dXJu IGk9PXIubGVuZ3RoLTE7fSxldmVuOmZ1bmN0aW9uKGEsaSl7cmV0dXJuIGklMj09 MDt9LG9kZDpmdW5jdGlvbihhLGkpe3JldHVybiBpJTI7fSwiZmlyc3QtY2hpbGQi OmZ1bmN0aW9uKGEpe3JldHVybiBhLnBhcmVudE5vZGUuZ2V0RWxlbWVudHNCeVRh Z05hbWUoIioiKVswXT09YTt9LCJsYXN0LWNoaWxkIjpmdW5jdGlvbihhKXtyZXR1 cm4galF1ZXJ5Lm50aChhLnBhcmVudE5vZGUubGFzdENoaWxkLDEsInByZXZpb3Vz U2libGluZyIpPT1hO30sIm9ubHktY2hpbGQiOmZ1bmN0aW9uKGEpe3JldHVybiFq UXVlcnkubnRoKGEucGFyZW50Tm9kZS5sYXN0Q2hpbGQsMiwicHJldmlvdXNTaWJs aW5nIik7fSxwYXJlbnQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZmlyc3RDaGlsZDt9 LGVtcHR5OmZ1bmN0aW9uKGEpe3JldHVybiFhLmZpcnN0Q2hpbGQ7fSxjb250YWlu czpmdW5jdGlvbihhLGksbSl7cmV0dXJuKGEudGV4dENvbnRlbnR8fGEuaW5uZXJU ZXh0fHxqUXVlcnkoYSkudGV4dCgpfHwiIikuaW5kZXhPZihtWzNdKT49MDt9LHZp c2libGU6ZnVuY3Rpb24oYSl7cmV0dXJuImhpZGRlbiIhPWEudHlwZSYmalF1ZXJ5 LmNzcyhhLCJkaXNwbGF5IikhPSJub25lIiYmalF1ZXJ5LmNzcyhhLCJ2aXNpYmls aXR5IikhPSJoaWRkZW4iO30saGlkZGVuOmZ1bmN0aW9uKGEpe3JldHVybiJoaWRk ZW4iPT1hLnR5cGV8fGpRdWVyeS5jc3MoYSwiZGlzcGxheSIpPT0ibm9uZSJ8fGpR dWVyeS5jc3MoYSwidmlzaWJpbGl0eSIpPT0iaGlkZGVuIjt9LGVuYWJsZWQ6ZnVu Y3Rpb24oYSl7cmV0dXJuIWEuZGlzYWJsZWQ7fSxkaXNhYmxlZDpmdW5jdGlvbihh KXtyZXR1cm4gYS5kaXNhYmxlZDt9LGNoZWNrZWQ6ZnVuY3Rpb24oYSl7cmV0dXJu IGEuY2hlY2tlZDt9LHNlbGVjdGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLnNlbGVj dGVkfHxqUXVlcnkuYXR0cihhLCJzZWxlY3RlZCIpO30sdGV4dDpmdW5jdGlvbihh KXtyZXR1cm4idGV4dCI9PWEudHlwZTt9LHJhZGlvOmZ1bmN0aW9uKGEpe3JldHVy biJyYWRpbyI9PWEudHlwZTt9LGNoZWNrYm94OmZ1bmN0aW9uKGEpe3JldHVybiJj aGVja2JveCI9PWEudHlwZTt9LGZpbGU6ZnVuY3Rpb24oYSl7cmV0dXJuImZpbGUi PT1hLnR5cGU7fSxwYXNzd29yZDpmdW5jdGlvbihhKXtyZXR1cm4icGFzc3dvcmQi PT1hLnR5cGU7fSxzdWJtaXQ6ZnVuY3Rpb24oYSl7cmV0dXJuInN1Ym1pdCI9PWEu dHlwZTt9LGltYWdlOmZ1bmN0aW9uKGEpe3JldHVybiJpbWFnZSI9PWEudHlwZTt9 LHJlc2V0OmZ1bmN0aW9uKGEpe3JldHVybiJyZXNldCI9PWEudHlwZTt9LGJ1dHRv bjpmdW5jdGlvbihhKXtyZXR1cm4iYnV0dG9uIj09YS50eXBlfHxqUXVlcnkubm9k ZU5hbWUoYSwiYnV0dG9uIik7fSxpbnB1dDpmdW5jdGlvbihhKXtyZXR1cm4vaW5w dXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbi9pLnRlc3QoYS5ub2RlTmFtZSk7fSxo YXM6ZnVuY3Rpb24oYSxpLG0pe3JldHVybiBqUXVlcnkuZmluZChtWzNdLGEpLmxl bmd0aDt9LGhlYWRlcjpmdW5jdGlvbihhKXtyZXR1cm4vaFxkL2kudGVzdChhLm5v ZGVOYW1lKTt9LGFuaW1hdGVkOmZ1bmN0aW9uKGEpe3JldHVybiBqUXVlcnkuZ3Jl cChqUXVlcnkudGltZXJzLGZ1bmN0aW9uKGZuKXtyZXR1cm4gYT09Zm4uZWxlbTt9 KS5sZW5ndGg7fX19LHBhcnNlOlsvXihcWykgKkA/KFtcdy1dKykgKihbISokXn49 XSopICooJz8iPykoLio/KVw0ICpcXS8sL14oOikoW1x3LV0rKVwoIj8nPyguKj8o XCguKj9cKSk/W14oXSo/KSI/Jz9cKS8sbmV3IFJlZ0V4cCgiXihbOi4jXSopKCIr Y2hhcnMrIispIildLG11bHRpRmlsdGVyOmZ1bmN0aW9uKGV4cHIsZWxlbXMsbm90 KXt2YXIgb2xkLGN1cj1bXTt3aGlsZShleHByJiZleHByIT1vbGQpe29sZD1leHBy O3ZhciBmPWpRdWVyeS5maWx0ZXIoZXhwcixlbGVtcyxub3QpO2V4cHI9Zi50LnJl cGxhY2UoL15ccyosXHMqLywiIik7Y3VyPW5vdD9lbGVtcz1mLnI6alF1ZXJ5Lm1l cmdlKGN1cixmLnIpO31yZXR1cm4gY3VyO30sZmluZDpmdW5jdGlvbih0LGNvbnRl eHQpe2lmKHR5cGVvZiB0IT0ic3RyaW5nIilyZXR1cm5bdF07aWYoY29udGV4dCYm Y29udGV4dC5ub2RlVHlwZSE9MSYmY29udGV4dC5ub2RlVHlwZSE9OSlyZXR1cm5b XTtjb250ZXh0PWNvbnRleHR8fGRvY3VtZW50O3ZhciByZXQ9W2NvbnRleHRdLGRv bmU9W10sbGFzdCxub2RlTmFtZTt3aGlsZSh0JiZsYXN0IT10KXt2YXIgcj1bXTts YXN0PXQ7dD1qUXVlcnkudHJpbSh0KTt2YXIgZm91bmRUb2tlbj1mYWxzZSxyZT1x dWlja0NoaWxkLG09cmUuZXhlYyh0KTtpZihtKXtub2RlTmFtZT1tWzFdLnRvVXBw ZXJDYXNlKCk7Zm9yKHZhciBpPTA7cmV0W2ldO2krKylmb3IodmFyIGM9cmV0W2ld LmZpcnN0Q2hpbGQ7YztjPWMubmV4dFNpYmxpbmcpaWYoYy5ub2RlVHlwZT09MSYm KG5vZGVOYW1lPT0iKiJ8fGMubm9kZU5hbWUudG9VcHBlckNhc2UoKT09bm9kZU5h bWUpKXIucHVzaChjKTtyZXQ9cjt0PXQucmVwbGFjZShyZSwiIik7aWYodC5pbmRl eE9mKCIgIik9PTApY29udGludWU7Zm91bmRUb2tlbj10cnVlO31lbHNle3JlPS9e KFs+K35dKVxzKihcdyopL2k7aWYoKG09cmUuZXhlYyh0KSkhPW51bGwpe3I9W107 dmFyIG1lcmdlPXt9O25vZGVOYW1lPW1bMl0udG9VcHBlckNhc2UoKTttPW1bMV07 Zm9yKHZhciBqPTAscmw9cmV0Lmxlbmd0aDtqPHJsO2orKyl7dmFyIG49bT09In4i fHxtPT0iKyI/cmV0W2pdLm5leHRTaWJsaW5nOnJldFtqXS5maXJzdENoaWxkO2Zv cig7bjtuPW4ubmV4dFNpYmxpbmcpaWYobi5ub2RlVHlwZT09MSl7dmFyIGlkPWpR dWVyeS5kYXRhKG4pO2lmKG09PSJ+IiYmbWVyZ2VbaWRdKWJyZWFrO2lmKCFub2Rl TmFtZXx8bi5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpPT1ub2RlTmFtZSl7aWYobT09 In4iKW1lcmdlW2lkXT10cnVlO3IucHVzaChuKTt9aWYobT09IisiKWJyZWFrO319 cmV0PXI7dD1qUXVlcnkudHJpbSh0LnJlcGxhY2UocmUsIiIpKTtmb3VuZFRva2Vu PXRydWU7fX1pZih0JiYhZm91bmRUb2tlbil7aWYoIXQuaW5kZXhPZigiLCIpKXtp Zihjb250ZXh0PT1yZXRbMF0pcmV0LnNoaWZ0KCk7ZG9uZT1qUXVlcnkubWVyZ2Uo ZG9uZSxyZXQpO3I9cmV0PVtjb250ZXh0XTt0PSIgIit0LnN1YnN0cigxLHQubGVu Z3RoKTt9ZWxzZXt2YXIgcmUyPXF1aWNrSUQ7dmFyIG09cmUyLmV4ZWModCk7aWYo bSl7bT1bMCxtWzJdLG1bM10sbVsxXV07fWVsc2V7cmUyPXF1aWNrQ2xhc3M7bT1y ZTIuZXhlYyh0KTt9bVsyXT1tWzJdLnJlcGxhY2UoL1xcL2csIiIpO3ZhciBlbGVt PXJldFtyZXQubGVuZ3RoLTFdO2lmKG1bMV09PSIjIiYmZWxlbSYmZWxlbS5nZXRF bGVtZW50QnlJZCYmIWpRdWVyeS5pc1hNTERvYyhlbGVtKSl7dmFyIG9pZD1lbGVt LmdldEVsZW1lbnRCeUlkKG1bMl0pO2lmKChqUXVlcnkuYnJvd3Nlci5tc2llfHxq UXVlcnkuYnJvd3Nlci5vcGVyYSkmJm9pZCYmdHlwZW9mIG9pZC5pZD09InN0cmlu ZyImJm9pZC5pZCE9bVsyXSlvaWQ9alF1ZXJ5KCdbQGlkPSInK21bMl0rJyJdJyxl bGVtKVswXTtyZXQ9cj1vaWQmJighbVszXXx8alF1ZXJ5Lm5vZGVOYW1lKG9pZCxt WzNdKSk/W29pZF06W107fWVsc2V7Zm9yKHZhciBpPTA7cmV0W2ldO2krKyl7dmFy IHRhZz1tWzFdPT0iIyImJm1bM10/bVszXTptWzFdIT0iInx8bVswXT09IiI/Iioi Om1bMl07aWYodGFnPT0iKiImJnJldFtpXS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgp PT0ib2JqZWN0Iil0YWc9InBhcmFtIjtyPWpRdWVyeS5tZXJnZShyLHJldFtpXS5n ZXRFbGVtZW50c0J5VGFnTmFtZSh0YWcpKTt9aWYobVsxXT09Ii4iKXI9alF1ZXJ5 LmNsYXNzRmlsdGVyKHIsbVsyXSk7aWYobVsxXT09IiMiKXt2YXIgdG1wPVtdO2Zv cih2YXIgaT0wO3JbaV07aSsrKWlmKHJbaV0uZ2V0QXR0cmlidXRlKCJpZCIpPT1t WzJdKXt0bXA9W3JbaV1dO2JyZWFrO31yPXRtcDt9cmV0PXI7fXQ9dC5yZXBsYWNl KHJlMiwiIik7fX1pZih0KXt2YXIgdmFsPWpRdWVyeS5maWx0ZXIodCxyKTtyZXQ9 cj12YWwucjt0PWpRdWVyeS50cmltKHZhbC50KTt9fWlmKHQpcmV0PVtdO2lmKHJl dCYmY29udGV4dD09cmV0WzBdKXJldC5zaGlmdCgpO2RvbmU9alF1ZXJ5Lm1lcmdl KGRvbmUscmV0KTtyZXR1cm4gZG9uZTt9LGNsYXNzRmlsdGVyOmZ1bmN0aW9uKHIs bSxub3Qpe209IiAiK20rIiAiO3ZhciB0bXA9W107Zm9yKHZhciBpPTA7cltpXTtp Kyspe3ZhciBwYXNzPSgiICIrcltpXS5jbGFzc05hbWUrIiAiKS5pbmRleE9mKG0p Pj0wO2lmKCFub3QmJnBhc3N8fG5vdCYmIXBhc3MpdG1wLnB1c2gocltpXSk7fXJl dHVybiB0bXA7fSxmaWx0ZXI6ZnVuY3Rpb24odCxyLG5vdCl7dmFyIGxhc3Q7d2hp bGUodCYmdCE9bGFzdCl7bGFzdD10O3ZhciBwPWpRdWVyeS5wYXJzZSxtO2Zvcih2 YXIgaT0wO3BbaV07aSsrKXttPXBbaV0uZXhlYyh0KTtpZihtKXt0PXQuc3Vic3Ry aW5nKG1bMF0ubGVuZ3RoKTttWzJdPW1bMl0ucmVwbGFjZSgvXFwvZywiIik7YnJl YWs7fX1pZighbSlicmVhaztpZihtWzFdPT0iOiImJm1bMl09PSJub3QiKXI9aXNT aW1wbGUudGVzdChtWzNdKT9qUXVlcnkuZmlsdGVyKG1bM10scix0cnVlKS5yOmpR dWVyeShyKS5ub3QobVszXSk7ZWxzZSBpZihtWzFdPT0iLiIpcj1qUXVlcnkuY2xh c3NGaWx0ZXIocixtWzJdLG5vdCk7ZWxzZSBpZihtWzFdPT0iWyIpe3ZhciB0bXA9 W10sdHlwZT1tWzNdO2Zvcih2YXIgaT0wLHJsPXIubGVuZ3RoO2k8cmw7aSsrKXt2 YXIgYT1yW2ldLHo9YVtqUXVlcnkucHJvcHNbbVsyXV18fG1bMl1dO2lmKHo9PW51 bGx8fC9ocmVmfHNyY3xzZWxlY3RlZC8udGVzdChtWzJdKSl6PWpRdWVyeS5hdHRy KGEsbVsyXSl8fCcnO2lmKCh0eXBlPT0iIiYmISF6fHx0eXBlPT0iPSImJno9PW1b NV18fHR5cGU9PSIhPSImJnohPW1bNV18fHR5cGU9PSJePSImJnomJiF6LmluZGV4 T2YobVs1XSl8fHR5cGU9PSIkPSImJnouc3Vic3RyKHoubGVuZ3RoLW1bNV0ubGVu Z3RoKT09bVs1XXx8KHR5cGU9PSIqPSJ8fHR5cGU9PSJ+PSIpJiZ6LmluZGV4T2Yo bVs1XSk+PTApXm5vdCl0bXAucHVzaChhKTt9cj10bXA7fWVsc2UgaWYobVsxXT09 IjoiJiZtWzJdPT0ibnRoLWNoaWxkIil7dmFyIG1lcmdlPXt9LHRtcD1bXSx0ZXN0 PS8oLT8pKFxkKiluKCg/OlwrfC0pP1xkKikvLmV4ZWMobVszXT09ImV2ZW4iJiYi Mm4ifHxtWzNdPT0ib2RkIiYmIjJuKzEifHwhL1xELy50ZXN0KG1bM10pJiYiMG4r IittWzNdfHxtWzNdKSxmaXJzdD0odGVzdFsxXSsodGVzdFsyXXx8MSkpLTAsbGFz dD10ZXN0WzNdLTA7Zm9yKHZhciBpPTAscmw9ci5sZW5ndGg7aTxybDtpKyspe3Zh ciBub2RlPXJbaV0scGFyZW50Tm9kZT1ub2RlLnBhcmVudE5vZGUsaWQ9alF1ZXJ5 LmRhdGEocGFyZW50Tm9kZSk7aWYoIW1lcmdlW2lkXSl7dmFyIGM9MTtmb3IodmFy IG49cGFyZW50Tm9kZS5maXJzdENoaWxkO247bj1uLm5leHRTaWJsaW5nKWlmKG4u bm9kZVR5cGU9PTEpbi5ub2RlSW5kZXg9YysrO21lcmdlW2lkXT10cnVlO312YXIg YWRkPWZhbHNlO2lmKGZpcnN0PT0wKXtpZihub2RlLm5vZGVJbmRleD09bGFzdClh ZGQ9dHJ1ZTt9ZWxzZSBpZigobm9kZS5ub2RlSW5kZXgtbGFzdCklZmlyc3Q9PTAm Jihub2RlLm5vZGVJbmRleC1sYXN0KS9maXJzdD49MClhZGQ9dHJ1ZTtpZihhZGRe bm90KXRtcC5wdXNoKG5vZGUpO31yPXRtcDt9ZWxzZXt2YXIgZm49alF1ZXJ5LmV4 cHJbbVsxXV07aWYodHlwZW9mIGZuPT0ib2JqZWN0Iilmbj1mblttWzJdXTtpZih0 eXBlb2YgZm49PSJzdHJpbmciKWZuPWV2YWwoImZhbHNlfHxmdW5jdGlvbihhLGkp e3JldHVybiAiK2ZuKyI7fSIpO3I9alF1ZXJ5LmdyZXAocixmdW5jdGlvbihlbGVt LGkpe3JldHVybiBmbihlbGVtLGksbSxyKTt9LG5vdCk7fX1yZXR1cm57cjpyLHQ6 dH07fSxkaXI6ZnVuY3Rpb24oZWxlbSxkaXIpe3ZhciBtYXRjaGVkPVtdLGN1cj1l bGVtW2Rpcl07d2hpbGUoY3VyJiZjdXIhPWRvY3VtZW50KXtpZihjdXIubm9kZVR5 cGU9PTEpbWF0Y2hlZC5wdXNoKGN1cik7Y3VyPWN1cltkaXJdO31yZXR1cm4gbWF0 Y2hlZDt9LG50aDpmdW5jdGlvbihjdXIscmVzdWx0LGRpcixlbGVtKXtyZXN1bHQ9 cmVzdWx0fHwxO3ZhciBudW09MDtmb3IoO2N1cjtjdXI9Y3VyW2Rpcl0paWYoY3Vy Lm5vZGVUeXBlPT0xJiYrK251bT09cmVzdWx0KWJyZWFrO3JldHVybiBjdXI7fSxz aWJsaW5nOmZ1bmN0aW9uKG4sZWxlbSl7dmFyIHI9W107Zm9yKDtuO249bi5uZXh0 U2libGluZyl7aWYobi5ub2RlVHlwZT09MSYmbiE9ZWxlbSlyLnB1c2gobik7fXJl dHVybiByO319KTtqUXVlcnkuZXZlbnQ9e2FkZDpmdW5jdGlvbihlbGVtLHR5cGVz LGhhbmRsZXIsZGF0YSl7aWYoZWxlbS5ub2RlVHlwZT09M3x8ZWxlbS5ub2RlVHlw ZT09OClyZXR1cm47aWYoalF1ZXJ5LmJyb3dzZXIubXNpZSYmZWxlbS5zZXRJbnRl cnZhbCllbGVtPXdpbmRvdztpZighaGFuZGxlci5ndWlkKWhhbmRsZXIuZ3VpZD10 aGlzLmd1aWQrKztpZihkYXRhIT11bmRlZmluZWQpe3ZhciBmbj1oYW5kbGVyO2hh bmRsZXI9dGhpcy5wcm94eShmbixmdW5jdGlvbigpe3JldHVybiBmbi5hcHBseSh0 aGlzLGFyZ3VtZW50cyk7fSk7aGFuZGxlci5kYXRhPWRhdGE7fXZhciBldmVudHM9 alF1ZXJ5LmRhdGEoZWxlbSwiZXZlbnRzIil8fGpRdWVyeS5kYXRhKGVsZW0sImV2 ZW50cyIse30pLGhhbmRsZT1qUXVlcnkuZGF0YShlbGVtLCJoYW5kbGUiKXx8alF1 ZXJ5LmRhdGEoZWxlbSwiaGFuZGxlIixmdW5jdGlvbigpe2lmKHR5cGVvZiBqUXVl cnkhPSJ1bmRlZmluZWQiJiYhalF1ZXJ5LmV2ZW50LnRyaWdnZXJlZClyZXR1cm4g alF1ZXJ5LmV2ZW50LmhhbmRsZS5hcHBseShhcmd1bWVudHMuY2FsbGVlLmVsZW0s YXJndW1lbnRzKTt9KTtoYW5kbGUuZWxlbT1lbGVtO2pRdWVyeS5lYWNoKHR5cGVz LnNwbGl0KC9ccysvKSxmdW5jdGlvbihpbmRleCx0eXBlKXt2YXIgcGFydHM9dHlw ZS5zcGxpdCgiLiIpO3R5cGU9cGFydHNbMF07aGFuZGxlci50eXBlPXBhcnRzWzFd O3ZhciBoYW5kbGVycz1ldmVudHNbdHlwZV07aWYoIWhhbmRsZXJzKXtoYW5kbGVy cz1ldmVudHNbdHlwZV09e307aWYoIWpRdWVyeS5ldmVudC5zcGVjaWFsW3R5cGVd fHxqUXVlcnkuZXZlbnQuc3BlY2lhbFt0eXBlXS5zZXR1cC5jYWxsKGVsZW0pPT09 ZmFsc2Upe2lmKGVsZW0uYWRkRXZlbnRMaXN0ZW5lcillbGVtLmFkZEV2ZW50TGlz dGVuZXIodHlwZSxoYW5kbGUsZmFsc2UpO2Vsc2UgaWYoZWxlbS5hdHRhY2hFdmVu dCllbGVtLmF0dGFjaEV2ZW50KCJvbiIrdHlwZSxoYW5kbGUpO319aGFuZGxlcnNb aGFuZGxlci5ndWlkXT1oYW5kbGVyO2pRdWVyeS5ldmVudC5nbG9iYWxbdHlwZV09 dHJ1ZTt9KTtlbGVtPW51bGw7fSxndWlkOjEsZ2xvYmFsOnt9LHJlbW92ZTpmdW5j dGlvbihlbGVtLHR5cGVzLGhhbmRsZXIpe2lmKGVsZW0ubm9kZVR5cGU9PTN8fGVs ZW0ubm9kZVR5cGU9PTgpcmV0dXJuO3ZhciBldmVudHM9alF1ZXJ5LmRhdGEoZWxl bSwiZXZlbnRzIikscmV0LGluZGV4O2lmKGV2ZW50cyl7aWYodHlwZXM9PXVuZGVm aW5lZHx8KHR5cGVvZiB0eXBlcz09InN0cmluZyImJnR5cGVzLmNoYXJBdCgwKT09 Ii4iKSlmb3IodmFyIHR5cGUgaW4gZXZlbnRzKXRoaXMucmVtb3ZlKGVsZW0sdHlw ZSsodHlwZXN8fCIiKSk7ZWxzZXtpZih0eXBlcy50eXBlKXtoYW5kbGVyPXR5cGVz LmhhbmRsZXI7dHlwZXM9dHlwZXMudHlwZTt9alF1ZXJ5LmVhY2godHlwZXMuc3Bs aXQoL1xzKy8pLGZ1bmN0aW9uKGluZGV4LHR5cGUpe3ZhciBwYXJ0cz10eXBlLnNw bGl0KCIuIik7dHlwZT1wYXJ0c1swXTtpZihldmVudHNbdHlwZV0pe2lmKGhhbmRs ZXIpZGVsZXRlIGV2ZW50c1t0eXBlXVtoYW5kbGVyLmd1aWRdO2Vsc2UKZm9yKGhh bmRsZXIgaW4gZXZlbnRzW3R5cGVdKWlmKCFwYXJ0c1sxXXx8ZXZlbnRzW3R5cGVd W2hhbmRsZXJdLnR5cGU9PXBhcnRzWzFdKWRlbGV0ZSBldmVudHNbdHlwZV1baGFu ZGxlcl07Zm9yKHJldCBpbiBldmVudHNbdHlwZV0pYnJlYWs7aWYoIXJldCl7aWYo IWpRdWVyeS5ldmVudC5zcGVjaWFsW3R5cGVdfHxqUXVlcnkuZXZlbnQuc3BlY2lh bFt0eXBlXS50ZWFyZG93bi5jYWxsKGVsZW0pPT09ZmFsc2Upe2lmKGVsZW0ucmVt b3ZlRXZlbnRMaXN0ZW5lcillbGVtLnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSxq UXVlcnkuZGF0YShlbGVtLCJoYW5kbGUiKSxmYWxzZSk7ZWxzZSBpZihlbGVtLmRl dGFjaEV2ZW50KWVsZW0uZGV0YWNoRXZlbnQoIm9uIit0eXBlLGpRdWVyeS5kYXRh KGVsZW0sImhhbmRsZSIpKTt9cmV0PW51bGw7ZGVsZXRlIGV2ZW50c1t0eXBlXTt9 fX0pO31mb3IocmV0IGluIGV2ZW50cylicmVhaztpZighcmV0KXt2YXIgaGFuZGxl PWpRdWVyeS5kYXRhKGVsZW0sImhhbmRsZSIpO2lmKGhhbmRsZSloYW5kbGUuZWxl bT1udWxsO2pRdWVyeS5yZW1vdmVEYXRhKGVsZW0sImV2ZW50cyIpO2pRdWVyeS5y ZW1vdmVEYXRhKGVsZW0sImhhbmRsZSIpO319fSx0cmlnZ2VyOmZ1bmN0aW9uKHR5 cGUsZGF0YSxlbGVtLGRvbmF0aXZlLGV4dHJhKXtkYXRhPWpRdWVyeS5tYWtlQXJy YXkoZGF0YSk7aWYodHlwZS5pbmRleE9mKCIhIik+PTApe3R5cGU9dHlwZS5zbGlj ZSgwLC0xKTt2YXIgZXhjbHVzaXZlPXRydWU7fWlmKCFlbGVtKXtpZih0aGlzLmds b2JhbFt0eXBlXSlqUXVlcnkoIioiKS5hZGQoW3dpbmRvdyxkb2N1bWVudF0pLnRy aWdnZXIodHlwZSxkYXRhKTt9ZWxzZXtpZihlbGVtLm5vZGVUeXBlPT0zfHxlbGVt Lm5vZGVUeXBlPT04KXJldHVybiB1bmRlZmluZWQ7dmFyIHZhbCxyZXQsZm49alF1 ZXJ5LmlzRnVuY3Rpb24oZWxlbVt0eXBlXXx8bnVsbCksZXZlbnQ9IWRhdGFbMF18 fCFkYXRhWzBdLnByZXZlbnREZWZhdWx0O2lmKGV2ZW50KXtkYXRhLnVuc2hpZnQo e3R5cGU6dHlwZSx0YXJnZXQ6ZWxlbSxwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigp e30sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7fSx0aW1lU3RhbXA6bm93KCl9 KTtkYXRhWzBdW2V4cGFuZG9dPXRydWU7fWRhdGFbMF0udHlwZT10eXBlO2lmKGV4 Y2x1c2l2ZSlkYXRhWzBdLmV4Y2x1c2l2ZT10cnVlO3ZhciBoYW5kbGU9alF1ZXJ5 LmRhdGEoZWxlbSwiaGFuZGxlIik7aWYoaGFuZGxlKXZhbD1oYW5kbGUuYXBwbHko ZWxlbSxkYXRhKTtpZigoIWZufHwoalF1ZXJ5Lm5vZGVOYW1lKGVsZW0sJ2EnKSYm dHlwZT09ImNsaWNrIikpJiZlbGVtWyJvbiIrdHlwZV0mJmVsZW1bIm9uIit0eXBl XS5hcHBseShlbGVtLGRhdGEpPT09ZmFsc2UpdmFsPWZhbHNlO2lmKGV2ZW50KWRh dGEuc2hpZnQoKTtpZihleHRyYSYmalF1ZXJ5LmlzRnVuY3Rpb24oZXh0cmEpKXty ZXQ9ZXh0cmEuYXBwbHkoZWxlbSx2YWw9PW51bGw/ZGF0YTpkYXRhLmNvbmNhdCh2 YWwpKTtpZihyZXQhPT11bmRlZmluZWQpdmFsPXJldDt9aWYoZm4mJmRvbmF0aXZl IT09ZmFsc2UmJnZhbCE9PWZhbHNlJiYhKGpRdWVyeS5ub2RlTmFtZShlbGVtLCdh JykmJnR5cGU9PSJjbGljayIpKXt0aGlzLnRyaWdnZXJlZD10cnVlO3RyeXtlbGVt W3R5cGVdKCk7fWNhdGNoKGUpe319dGhpcy50cmlnZ2VyZWQ9ZmFsc2U7fXJldHVy biB2YWw7fSxoYW5kbGU6ZnVuY3Rpb24oZXZlbnQpe3ZhciB2YWwscmV0LG5hbWVz cGFjZSxhbGwsaGFuZGxlcnM7ZXZlbnQ9YXJndW1lbnRzWzBdPWpRdWVyeS5ldmVu dC5maXgoZXZlbnR8fHdpbmRvdy5ldmVudCk7bmFtZXNwYWNlPWV2ZW50LnR5cGUu c3BsaXQoIi4iKTtldmVudC50eXBlPW5hbWVzcGFjZVswXTtuYW1lc3BhY2U9bmFt ZXNwYWNlWzFdO2FsbD0hbmFtZXNwYWNlJiYhZXZlbnQuZXhjbHVzaXZlO2hhbmRs ZXJzPShqUXVlcnkuZGF0YSh0aGlzLCJldmVudHMiKXx8e30pW2V2ZW50LnR5cGVd O2Zvcih2YXIgaiBpbiBoYW5kbGVycyl7dmFyIGhhbmRsZXI9aGFuZGxlcnNbal07 aWYoYWxsfHxoYW5kbGVyLnR5cGU9PW5hbWVzcGFjZSl7ZXZlbnQuaGFuZGxlcj1o YW5kbGVyO2V2ZW50LmRhdGE9aGFuZGxlci5kYXRhO3JldD1oYW5kbGVyLmFwcGx5 KHRoaXMsYXJndW1lbnRzKTtpZih2YWwhPT1mYWxzZSl2YWw9cmV0O2lmKHJldD09 PWZhbHNlKXtldmVudC5wcmV2ZW50RGVmYXVsdCgpO2V2ZW50LnN0b3BQcm9wYWdh dGlvbigpO319fXJldHVybiB2YWw7fSxmaXg6ZnVuY3Rpb24oZXZlbnQpe2lmKGV2 ZW50W2V4cGFuZG9dPT10cnVlKXJldHVybiBldmVudDt2YXIgb3JpZ2luYWxFdmVu dD1ldmVudDtldmVudD17b3JpZ2luYWxFdmVudDpvcmlnaW5hbEV2ZW50fTt2YXIg cHJvcHM9ImFsdEtleSBhdHRyQ2hhbmdlIGF0dHJOYW1lIGJ1YmJsZXMgYnV0dG9u IGNhbmNlbGFibGUgY2hhckNvZGUgY2xpZW50WCBjbGllbnRZIGN0cmxLZXkgY3Vy cmVudFRhcmdldCBkYXRhIGRldGFpbCBldmVudFBoYXNlIGZyb21FbGVtZW50IGhh bmRsZXIga2V5Q29kZSBtZXRhS2V5IG5ld1ZhbHVlIG9yaWdpbmFsVGFyZ2V0IHBh Z2VYIHBhZ2VZIHByZXZWYWx1ZSByZWxhdGVkTm9kZSByZWxhdGVkVGFyZ2V0IHNj cmVlblggc2NyZWVuWSBzaGlmdEtleSBzcmNFbGVtZW50IHRhcmdldCB0aW1lU3Rh bXAgdG9FbGVtZW50IHR5cGUgdmlldyB3aGVlbERlbHRhIHdoaWNoIi5zcGxpdCgi ICIpO2Zvcih2YXIgaT1wcm9wcy5sZW5ndGg7aTtpLS0pZXZlbnRbcHJvcHNbaV1d PW9yaWdpbmFsRXZlbnRbcHJvcHNbaV1dO2V2ZW50W2V4cGFuZG9dPXRydWU7ZXZl bnQucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXtpZihvcmlnaW5hbEV2ZW50LnBy ZXZlbnREZWZhdWx0KW9yaWdpbmFsRXZlbnQucHJldmVudERlZmF1bHQoKTtvcmln aW5hbEV2ZW50LnJldHVyblZhbHVlPWZhbHNlO307ZXZlbnQuc3RvcFByb3BhZ2F0 aW9uPWZ1bmN0aW9uKCl7aWYob3JpZ2luYWxFdmVudC5zdG9wUHJvcGFnYXRpb24p b3JpZ2luYWxFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtvcmlnaW5hbEV2ZW50LmNh bmNlbEJ1YmJsZT10cnVlO307ZXZlbnQudGltZVN0YW1wPWV2ZW50LnRpbWVTdGFt cHx8bm93KCk7aWYoIWV2ZW50LnRhcmdldClldmVudC50YXJnZXQ9ZXZlbnQuc3Jj RWxlbWVudHx8ZG9jdW1lbnQ7aWYoZXZlbnQudGFyZ2V0Lm5vZGVUeXBlPT0zKWV2 ZW50LnRhcmdldD1ldmVudC50YXJnZXQucGFyZW50Tm9kZTtpZighZXZlbnQucmVs YXRlZFRhcmdldCYmZXZlbnQuZnJvbUVsZW1lbnQpZXZlbnQucmVsYXRlZFRhcmdl dD1ldmVudC5mcm9tRWxlbWVudD09ZXZlbnQudGFyZ2V0P2V2ZW50LnRvRWxlbWVu dDpldmVudC5mcm9tRWxlbWVudDtpZihldmVudC5wYWdlWD09bnVsbCYmZXZlbnQu Y2xpZW50WCE9bnVsbCl7dmFyIGRvYz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQs Ym9keT1kb2N1bWVudC5ib2R5O2V2ZW50LnBhZ2VYPWV2ZW50LmNsaWVudFgrKGRv YyYmZG9jLnNjcm9sbExlZnR8fGJvZHkmJmJvZHkuc2Nyb2xsTGVmdHx8MCktKGRv Yy5jbGllbnRMZWZ0fHwwKTtldmVudC5wYWdlWT1ldmVudC5jbGllbnRZKyhkb2Mm JmRvYy5zY3JvbGxUb3B8fGJvZHkmJmJvZHkuc2Nyb2xsVG9wfHwwKS0oZG9jLmNs aWVudFRvcHx8MCk7fWlmKCFldmVudC53aGljaCYmKChldmVudC5jaGFyQ29kZXx8 ZXZlbnQuY2hhckNvZGU9PT0wKT9ldmVudC5jaGFyQ29kZTpldmVudC5rZXlDb2Rl KSlldmVudC53aGljaD1ldmVudC5jaGFyQ29kZXx8ZXZlbnQua2V5Q29kZTtpZigh ZXZlbnQubWV0YUtleSYmZXZlbnQuY3RybEtleSlldmVudC5tZXRhS2V5PWV2ZW50 LmN0cmxLZXk7aWYoIWV2ZW50LndoaWNoJiZldmVudC5idXR0b24pZXZlbnQud2hp Y2g9KGV2ZW50LmJ1dHRvbiYxPzE6KGV2ZW50LmJ1dHRvbiYyPzM6KGV2ZW50LmJ1 dHRvbiY0PzI6MCkpKTtyZXR1cm4gZXZlbnQ7fSxwcm94eTpmdW5jdGlvbihmbixw cm94eSl7cHJveHkuZ3VpZD1mbi5ndWlkPWZuLmd1aWR8fHByb3h5Lmd1aWR8fHRo aXMuZ3VpZCsrO3JldHVybiBwcm94eTt9LHNwZWNpYWw6e3JlYWR5OntzZXR1cDpm dW5jdGlvbigpe2JpbmRSZWFkeSgpO3JldHVybjt9LHRlYXJkb3duOmZ1bmN0aW9u KCl7cmV0dXJuO319LG1vdXNlZW50ZXI6e3NldHVwOmZ1bmN0aW9uKCl7aWYoalF1 ZXJ5LmJyb3dzZXIubXNpZSlyZXR1cm4gZmFsc2U7alF1ZXJ5KHRoaXMpLmJpbmQo Im1vdXNlb3ZlciIsalF1ZXJ5LmV2ZW50LnNwZWNpYWwubW91c2VlbnRlci5oYW5k bGVyKTtyZXR1cm4gdHJ1ZTt9LHRlYXJkb3duOmZ1bmN0aW9uKCl7aWYoalF1ZXJ5 LmJyb3dzZXIubXNpZSlyZXR1cm4gZmFsc2U7alF1ZXJ5KHRoaXMpLnVuYmluZCgi bW91c2VvdmVyIixqUXVlcnkuZXZlbnQuc3BlY2lhbC5tb3VzZWVudGVyLmhhbmRs ZXIpO3JldHVybiB0cnVlO30saGFuZGxlcjpmdW5jdGlvbihldmVudCl7aWYod2l0 aGluRWxlbWVudChldmVudCx0aGlzKSlyZXR1cm4gdHJ1ZTtldmVudC50eXBlPSJt b3VzZWVudGVyIjtyZXR1cm4galF1ZXJ5LmV2ZW50LmhhbmRsZS5hcHBseSh0aGlz LGFyZ3VtZW50cyk7fX0sbW91c2VsZWF2ZTp7c2V0dXA6ZnVuY3Rpb24oKXtpZihq UXVlcnkuYnJvd3Nlci5tc2llKXJldHVybiBmYWxzZTtqUXVlcnkodGhpcykuYmlu ZCgibW91c2VvdXQiLGpRdWVyeS5ldmVudC5zcGVjaWFsLm1vdXNlbGVhdmUuaGFu ZGxlcik7cmV0dXJuIHRydWU7fSx0ZWFyZG93bjpmdW5jdGlvbigpe2lmKGpRdWVy eS5icm93c2VyLm1zaWUpcmV0dXJuIGZhbHNlO2pRdWVyeSh0aGlzKS51bmJpbmQo Im1vdXNlb3V0IixqUXVlcnkuZXZlbnQuc3BlY2lhbC5tb3VzZWxlYXZlLmhhbmRs ZXIpO3JldHVybiB0cnVlO30saGFuZGxlcjpmdW5jdGlvbihldmVudCl7aWYod2l0 aGluRWxlbWVudChldmVudCx0aGlzKSlyZXR1cm4gdHJ1ZTtldmVudC50eXBlPSJt b3VzZWxlYXZlIjtyZXR1cm4galF1ZXJ5LmV2ZW50LmhhbmRsZS5hcHBseSh0aGlz LGFyZ3VtZW50cyk7fX19fTtqUXVlcnkuZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9u KHR5cGUsZGF0YSxmbil7cmV0dXJuIHR5cGU9PSJ1bmxvYWQiP3RoaXMub25lKHR5 cGUsZGF0YSxmbik6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7alF1ZXJ5LmV2ZW50LmFk ZCh0aGlzLHR5cGUsZm58fGRhdGEsZm4mJmRhdGEpO30pO30sb25lOmZ1bmN0aW9u KHR5cGUsZGF0YSxmbil7dmFyIG9uZT1qUXVlcnkuZXZlbnQucHJveHkoZm58fGRh dGEsZnVuY3Rpb24oZXZlbnQpe2pRdWVyeSh0aGlzKS51bmJpbmQoZXZlbnQsb25l KTtyZXR1cm4oZm58fGRhdGEpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt9KTtyZXR1 cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7alF1ZXJ5LmV2ZW50LmFkZCh0aGlzLHR5 cGUsb25lLGZuJiZkYXRhKTt9KTt9LHVuYmluZDpmdW5jdGlvbih0eXBlLGZuKXty ZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7alF1ZXJ5LmV2ZW50LnJlbW92ZSh0 aGlzLHR5cGUsZm4pO30pO30sdHJpZ2dlcjpmdW5jdGlvbih0eXBlLGRhdGEsZm4p e3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtqUXVlcnkuZXZlbnQudHJpZ2dl cih0eXBlLGRhdGEsdGhpcyx0cnVlLGZuKTt9KTt9LHRyaWdnZXJIYW5kbGVyOmZ1 bmN0aW9uKHR5cGUsZGF0YSxmbil7cmV0dXJuIHRoaXNbMF0mJmpRdWVyeS5ldmVu dC50cmlnZ2VyKHR5cGUsZGF0YSx0aGlzWzBdLGZhbHNlLGZuKTt9LHRvZ2dsZTpm dW5jdGlvbihmbil7dmFyIGFyZ3M9YXJndW1lbnRzLGk9MTt3aGlsZShpPGFyZ3Mu bGVuZ3RoKWpRdWVyeS5ldmVudC5wcm94eShmbixhcmdzW2krK10pO3JldHVybiB0 aGlzLmNsaWNrKGpRdWVyeS5ldmVudC5wcm94eShmbixmdW5jdGlvbihldmVudCl7 dGhpcy5sYXN0VG9nZ2xlPSh0aGlzLmxhc3RUb2dnbGV8fDApJWk7ZXZlbnQucHJl dmVudERlZmF1bHQoKTtyZXR1cm4gYXJnc1t0aGlzLmxhc3RUb2dnbGUrK10uYXBw bHkodGhpcyxhcmd1bWVudHMpfHxmYWxzZTt9KSk7fSxob3ZlcjpmdW5jdGlvbihm bk92ZXIsZm5PdXQpe3JldHVybiB0aGlzLmJpbmQoJ21vdXNlZW50ZXInLGZuT3Zl cikuYmluZCgnbW91c2VsZWF2ZScsZm5PdXQpO30scmVhZHk6ZnVuY3Rpb24oZm4p e2JpbmRSZWFkeSgpO2lmKGpRdWVyeS5pc1JlYWR5KWZuLmNhbGwoZG9jdW1lbnQs alF1ZXJ5KTtlbHNlCmpRdWVyeS5yZWFkeUxpc3QucHVzaChmdW5jdGlvbigpe3Jl dHVybiBmbi5jYWxsKHRoaXMsalF1ZXJ5KTt9KTtyZXR1cm4gdGhpczt9fSk7alF1 ZXJ5LmV4dGVuZCh7aXNSZWFkeTpmYWxzZSxyZWFkeUxpc3Q6W10scmVhZHk6ZnVu Y3Rpb24oKXtpZighalF1ZXJ5LmlzUmVhZHkpe2pRdWVyeS5pc1JlYWR5PXRydWU7 aWYoalF1ZXJ5LnJlYWR5TGlzdCl7alF1ZXJ5LmVhY2goalF1ZXJ5LnJlYWR5TGlz dCxmdW5jdGlvbigpe3RoaXMuY2FsbChkb2N1bWVudCk7fSk7alF1ZXJ5LnJlYWR5 TGlzdD1udWxsO31qUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXJIYW5kbGVyKCJyZWFk eSIpO319fSk7dmFyIHJlYWR5Qm91bmQ9ZmFsc2U7ZnVuY3Rpb24gYmluZFJlYWR5 KCl7aWYocmVhZHlCb3VuZClyZXR1cm47cmVhZHlCb3VuZD10cnVlO2lmKGRvY3Vt ZW50LmFkZEV2ZW50TGlzdGVuZXImJiFqUXVlcnkuYnJvd3Nlci5vcGVyYSlkb2N1 bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixqUXVlcnku cmVhZHksZmFsc2UpO2lmKGpRdWVyeS5icm93c2VyLm1zaWUmJndpbmRvdz09dG9w KShmdW5jdGlvbigpe2lmKGpRdWVyeS5pc1JlYWR5KXJldHVybjt0cnl7ZG9jdW1l bnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iik7fWNhdGNoKGVycm9y KXtzZXRUaW1lb3V0KGFyZ3VtZW50cy5jYWxsZWUsMCk7cmV0dXJuO31qUXVlcnku cmVhZHkoKTt9KSgpO2lmKGpRdWVyeS5icm93c2VyLm9wZXJhKWRvY3VtZW50LmFk ZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGZ1bmN0aW9uKCl7aWYo alF1ZXJ5LmlzUmVhZHkpcmV0dXJuO2Zvcih2YXIgaT0wO2k8ZG9jdW1lbnQuc3R5 bGVTaGVldHMubGVuZ3RoO2krKylpZihkb2N1bWVudC5zdHlsZVNoZWV0c1tpXS5k aXNhYmxlZCl7c2V0VGltZW91dChhcmd1bWVudHMuY2FsbGVlLDApO3JldHVybjt9 alF1ZXJ5LnJlYWR5KCk7fSxmYWxzZSk7aWYoalF1ZXJ5LmJyb3dzZXIuc2FmYXJp KXt2YXIgbnVtU3R5bGVzOyhmdW5jdGlvbigpe2lmKGpRdWVyeS5pc1JlYWR5KXJl dHVybjtpZihkb2N1bWVudC5yZWFkeVN0YXRlIT0ibG9hZGVkIiYmZG9jdW1lbnQu cmVhZHlTdGF0ZSE9ImNvbXBsZXRlIil7c2V0VGltZW91dChhcmd1bWVudHMuY2Fs bGVlLDApO3JldHVybjt9aWYobnVtU3R5bGVzPT09dW5kZWZpbmVkKW51bVN0eWxl cz1qUXVlcnkoInN0eWxlLCBsaW5rW3JlbD1zdHlsZXNoZWV0XSIpLmxlbmd0aDtp Zihkb2N1bWVudC5zdHlsZVNoZWV0cy5sZW5ndGghPW51bVN0eWxlcyl7c2V0VGlt ZW91dChhcmd1bWVudHMuY2FsbGVlLDApO3JldHVybjt9alF1ZXJ5LnJlYWR5KCk7 fSkoKTt9alF1ZXJ5LmV2ZW50LmFkZCh3aW5kb3csImxvYWQiLGpRdWVyeS5yZWFk eSk7fWpRdWVyeS5lYWNoKCgiYmx1cixmb2N1cyxsb2FkLHJlc2l6ZSxzY3JvbGws dW5sb2FkLGNsaWNrLGRibGNsaWNrLCIrIm1vdXNlZG93bixtb3VzZXVwLG1vdXNl bW92ZSxtb3VzZW92ZXIsbW91c2VvdXQsY2hhbmdlLHNlbGVjdCwiKyJzdWJtaXQs a2V5ZG93bixrZXlwcmVzcyxrZXl1cCxlcnJvciIpLnNwbGl0KCIsIiksZnVuY3Rp b24oaSxuYW1lKXtqUXVlcnkuZm5bbmFtZV09ZnVuY3Rpb24oZm4pe3JldHVybiBm bj90aGlzLmJpbmQobmFtZSxmbik6dGhpcy50cmlnZ2VyKG5hbWUpO307fSk7dmFy IHdpdGhpbkVsZW1lbnQ9ZnVuY3Rpb24oZXZlbnQsZWxlbSl7dmFyIHBhcmVudD1l dmVudC5yZWxhdGVkVGFyZ2V0O3doaWxlKHBhcmVudCYmcGFyZW50IT1lbGVtKXRy eXtwYXJlbnQ9cGFyZW50LnBhcmVudE5vZGU7fWNhdGNoKGVycm9yKXtwYXJlbnQ9 ZWxlbTt9cmV0dXJuIHBhcmVudD09ZWxlbTt9O2pRdWVyeSh3aW5kb3cpLmJpbmQo InVubG9hZCIsZnVuY3Rpb24oKXtqUXVlcnkoIioiKS5hZGQoZG9jdW1lbnQpLnVu YmluZCgpO30pO2pRdWVyeS5mbi5leHRlbmQoe19sb2FkOmpRdWVyeS5mbi5sb2Fk LGxvYWQ6ZnVuY3Rpb24odXJsLHBhcmFtcyxjYWxsYmFjayl7aWYodHlwZW9mIHVy bCE9J3N0cmluZycpcmV0dXJuIHRoaXMuX2xvYWQodXJsKTt2YXIgb2ZmPXVybC5p bmRleE9mKCIgIik7aWYob2ZmPj0wKXt2YXIgc2VsZWN0b3I9dXJsLnNsaWNlKG9m Zix1cmwubGVuZ3RoKTt1cmw9dXJsLnNsaWNlKDAsb2ZmKTt9Y2FsbGJhY2s9Y2Fs bGJhY2t8fGZ1bmN0aW9uKCl7fTt2YXIgdHlwZT0iR0VUIjtpZihwYXJhbXMpaWYo alF1ZXJ5LmlzRnVuY3Rpb24ocGFyYW1zKSl7Y2FsbGJhY2s9cGFyYW1zO3BhcmFt cz1udWxsO31lbHNle3BhcmFtcz1qUXVlcnkucGFyYW0ocGFyYW1zKTt0eXBlPSJQ T1NUIjt9dmFyIHNlbGY9dGhpcztqUXVlcnkuYWpheCh7dXJsOnVybCx0eXBlOnR5 cGUsZGF0YVR5cGU6Imh0bWwiLGRhdGE6cGFyYW1zLGNvbXBsZXRlOmZ1bmN0aW9u KHJlcyxzdGF0dXMpe2lmKHN0YXR1cz09InN1Y2Nlc3MifHxzdGF0dXM9PSJub3Rt b2RpZmllZCIpc2VsZi5odG1sKHNlbGVjdG9yP2pRdWVyeSgiPGRpdi8+IikuYXBw ZW5kKHJlcy5yZXNwb25zZVRleHQucmVwbGFjZSgvPHNjcmlwdCgufFxzKSo/XC9z Y3JpcHQ+L2csIiIpKS5maW5kKHNlbGVjdG9yKTpyZXMucmVzcG9uc2VUZXh0KTtz ZWxmLmVhY2goY2FsbGJhY2ssW3Jlcy5yZXNwb25zZVRleHQsc3RhdHVzLHJlc10p O319KTtyZXR1cm4gdGhpczt9LHNlcmlhbGl6ZTpmdW5jdGlvbigpe3JldHVybiBq UXVlcnkucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKTt9LHNlcmlhbGl6ZUFy cmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJu IGpRdWVyeS5ub2RlTmFtZSh0aGlzLCJmb3JtIik/alF1ZXJ5Lm1ha2VBcnJheSh0 aGlzLmVsZW1lbnRzKTp0aGlzO30pLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiB0 aGlzLm5hbWUmJiF0aGlzLmRpc2FibGVkJiYodGhpcy5jaGVja2VkfHwvc2VsZWN0 fHRleHRhcmVhL2kudGVzdCh0aGlzLm5vZGVOYW1lKXx8L3RleHR8aGlkZGVufHBh c3N3b3JkL2kudGVzdCh0aGlzLnR5cGUpKTt9KS5tYXAoZnVuY3Rpb24oaSxlbGVt KXt2YXIgdmFsPWpRdWVyeSh0aGlzKS52YWwoKTtyZXR1cm4gdmFsPT1udWxsP251 bGw6dmFsLmNvbnN0cnVjdG9yPT1BcnJheT9qUXVlcnkubWFwKHZhbCxmdW5jdGlv bih2YWwsaSl7cmV0dXJue25hbWU6ZWxlbS5uYW1lLHZhbHVlOnZhbH07fSk6e25h bWU6ZWxlbS5uYW1lLHZhbHVlOnZhbH07fSkuZ2V0KCk7fX0pO2pRdWVyeS5lYWNo KCJhamF4U3RhcnQsYWpheFN0b3AsYWpheENvbXBsZXRlLGFqYXhFcnJvcixhamF4 U3VjY2VzcyxhamF4U2VuZCIuc3BsaXQoIiwiKSxmdW5jdGlvbihpLG8pe2pRdWVy eS5mbltvXT1mdW5jdGlvbihmKXtyZXR1cm4gdGhpcy5iaW5kKG8sZik7fTt9KTt2 YXIganNjPW5vdygpO2pRdWVyeS5leHRlbmQoe2dldDpmdW5jdGlvbih1cmwsZGF0 YSxjYWxsYmFjayx0eXBlKXtpZihqUXVlcnkuaXNGdW5jdGlvbihkYXRhKSl7Y2Fs bGJhY2s9ZGF0YTtkYXRhPW51bGw7fXJldHVybiBqUXVlcnkuYWpheCh7dHlwZToi R0VUIix1cmw6dXJsLGRhdGE6ZGF0YSxzdWNjZXNzOmNhbGxiYWNrLGRhdGFUeXBl OnR5cGV9KTt9LGdldFNjcmlwdDpmdW5jdGlvbih1cmwsY2FsbGJhY2spe3JldHVy biBqUXVlcnkuZ2V0KHVybCxudWxsLGNhbGxiYWNrLCJzY3JpcHQiKTt9LGdldEpT T046ZnVuY3Rpb24odXJsLGRhdGEsY2FsbGJhY2spe3JldHVybiBqUXVlcnkuZ2V0 KHVybCxkYXRhLGNhbGxiYWNrLCJqc29uIik7fSxwb3N0OmZ1bmN0aW9uKHVybCxk YXRhLGNhbGxiYWNrLHR5cGUpe2lmKGpRdWVyeS5pc0Z1bmN0aW9uKGRhdGEpKXtj YWxsYmFjaz1kYXRhO2RhdGE9e307fXJldHVybiBqUXVlcnkuYWpheCh7dHlwZToi UE9TVCIsdXJsOnVybCxkYXRhOmRhdGEsc3VjY2VzczpjYWxsYmFjayxkYXRhVHlw ZTp0eXBlfSk7fSxhamF4U2V0dXA6ZnVuY3Rpb24oc2V0dGluZ3Mpe2pRdWVyeS5l eHRlbmQoalF1ZXJ5LmFqYXhTZXR0aW5ncyxzZXR0aW5ncyk7fSxhamF4U2V0dGlu Z3M6e3VybDpsb2NhdGlvbi5ocmVmLGdsb2JhbDp0cnVlLHR5cGU6IkdFVCIsdGlt ZW91dDowLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVu Y29kZWQiLHByb2Nlc3NEYXRhOnRydWUsYXN5bmM6dHJ1ZSxkYXRhOm51bGwsdXNl cm5hbWU6bnVsbCxwYXNzd29yZDpudWxsLGFjY2VwdHM6e3htbDoiYXBwbGljYXRp b24veG1sLCB0ZXh0L3htbCIsaHRtbDoidGV4dC9odG1sIixzY3JpcHQ6InRleHQv amF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCIsanNvbjoiYXBwbGlj YXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0Iix0ZXh0OiJ0ZXh0L3BsYWluIixf ZGVmYXVsdDoiKi8qIn19LGxhc3RNb2RpZmllZDp7fSxhamF4OmZ1bmN0aW9uKHMp e3M9alF1ZXJ5LmV4dGVuZCh0cnVlLHMsalF1ZXJ5LmV4dGVuZCh0cnVlLHt9LGpR dWVyeS5hamF4U2V0dGluZ3MscykpO3ZhciBqc29ucCxqc3JlPS89XD8oJnwkKS9n LHN0YXR1cyxkYXRhLHR5cGU9cy50eXBlLnRvVXBwZXJDYXNlKCk7aWYocy5kYXRh JiZzLnByb2Nlc3NEYXRhJiZ0eXBlb2Ygcy5kYXRhIT0ic3RyaW5nIilzLmRhdGE9 alF1ZXJ5LnBhcmFtKHMuZGF0YSk7aWYocy5kYXRhVHlwZT09Impzb25wIil7aWYo dHlwZT09IkdFVCIpe2lmKCFzLnVybC5tYXRjaChqc3JlKSlzLnVybCs9KHMudXJs Lm1hdGNoKC9cPy8pPyImIjoiPyIpKyhzLmpzb25wfHwiY2FsbGJhY2siKSsiPT8i O31lbHNlIGlmKCFzLmRhdGF8fCFzLmRhdGEubWF0Y2goanNyZSkpcy5kYXRhPShz LmRhdGE/cy5kYXRhKyImIjoiIikrKHMuanNvbnB8fCJjYWxsYmFjayIpKyI9PyI7 cy5kYXRhVHlwZT0ianNvbiI7fWlmKHMuZGF0YVR5cGU9PSJqc29uIiYmKHMuZGF0 YSYmcy5kYXRhLm1hdGNoKGpzcmUpfHxzLnVybC5tYXRjaChqc3JlKSkpe2pzb25w PSJqc29ucCIranNjKys7aWYocy5kYXRhKXMuZGF0YT0ocy5kYXRhKyIiKS5yZXBs YWNlKGpzcmUsIj0iK2pzb25wKyIkMSIpO3MudXJsPXMudXJsLnJlcGxhY2UoanNy ZSwiPSIranNvbnArIiQxIik7cy5kYXRhVHlwZT0ic2NyaXB0Ijt3aW5kb3dbanNv bnBdPWZ1bmN0aW9uKHRtcCl7ZGF0YT10bXA7c3VjY2VzcygpO2NvbXBsZXRlKCk7 d2luZG93W2pzb25wXT11bmRlZmluZWQ7dHJ5e2RlbGV0ZSB3aW5kb3dbanNvbnBd O31jYXRjaChlKXt9aWYoaGVhZCloZWFkLnJlbW92ZUNoaWxkKHNjcmlwdCk7fTt9 aWYocy5kYXRhVHlwZT09InNjcmlwdCImJnMuY2FjaGU9PW51bGwpcy5jYWNoZT1m YWxzZTtpZihzLmNhY2hlPT09ZmFsc2UmJnR5cGU9PSJHRVQiKXt2YXIgdHM9bm93 KCk7dmFyIHJldD1zLnVybC5yZXBsYWNlKC8oXD98JilfPS4qPygmfCQpLywiJDFf PSIrdHMrIiQyIik7cy51cmw9cmV0KygocmV0PT1zLnVybCk/KHMudXJsLm1hdGNo KC9cPy8pPyImIjoiPyIpKyJfPSIrdHM6IiIpO31pZihzLmRhdGEmJnR5cGU9PSJH RVQiKXtzLnVybCs9KHMudXJsLm1hdGNoKC9cPy8pPyImIjoiPyIpK3MuZGF0YTtz LmRhdGE9bnVsbDt9aWYocy5nbG9iYWwmJiFqUXVlcnkuYWN0aXZlKyspalF1ZXJ5 LmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpO3ZhciByZW1vdGU9L14oPzpcdys6 KT9cL1wvKFteXC8/I10rKS87aWYocy5kYXRhVHlwZT09InNjcmlwdCImJnR5cGU9 PSJHRVQiJiZyZW1vdGUudGVzdChzLnVybCkmJnJlbW90ZS5leGVjKHMudXJsKVsx XSE9bG9jYXRpb24uaG9zdCl7dmFyIGhlYWQ9ZG9jdW1lbnQuZ2V0RWxlbWVudHNC eVRhZ05hbWUoImhlYWQiKVswXTt2YXIgc2NyaXB0PWRvY3VtZW50LmNyZWF0ZUVs ZW1lbnQoInNjcmlwdCIpO3NjcmlwdC5zcmM9cy51cmw7aWYocy5zY3JpcHRDaGFy c2V0KXNjcmlwdC5jaGFyc2V0PXMuc2NyaXB0Q2hhcnNldDtpZighanNvbnApe3Zh ciBkb25lPWZhbHNlO3NjcmlwdC5vbmxvYWQ9c2NyaXB0Lm9ucmVhZHlzdGF0ZWNo YW5nZT1mdW5jdGlvbigpe2lmKCFkb25lJiYoIXRoaXMucmVhZHlTdGF0ZXx8dGhp cy5yZWFkeVN0YXRlPT0ibG9hZGVkInx8dGhpcy5yZWFkeVN0YXRlPT0iY29tcGxl dGUiKSl7ZG9uZT10cnVlO3N1Y2Nlc3MoKTtjb21wbGV0ZSgpO2hlYWQucmVtb3Zl Q2hpbGQoc2NyaXB0KTt9fTt9aGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO3JldHVy biB1bmRlZmluZWQ7fXZhciByZXF1ZXN0RG9uZT1mYWxzZTt2YXIgeGhyPXdpbmRv dy5BY3RpdmVYT2JqZWN0P25ldyBBY3RpdmVYT2JqZWN0KCJNaWNyb3NvZnQuWE1M SFRUUCIpOm5ldyBYTUxIdHRwUmVxdWVzdCgpO2lmKHMudXNlcm5hbWUpeGhyLm9w ZW4odHlwZSxzLnVybCxzLmFzeW5jLHMudXNlcm5hbWUscy5wYXNzd29yZCk7ZWxz ZQp4aHIub3Blbih0eXBlLHMudXJsLHMuYXN5bmMpO3RyeXtpZihzLmRhdGEpeGhy LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIscy5jb250ZW50VHlwZSk7 aWYocy5pZk1vZGlmaWVkKXhoci5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Nb2RpZmll ZC1TaW5jZSIsalF1ZXJ5Lmxhc3RNb2RpZmllZFtzLnVybF18fCJUaHUsIDAxIEph biAxOTcwIDAwOjAwOjAwIEdNVCIpO3hoci5zZXRSZXF1ZXN0SGVhZGVyKCJYLVJl cXVlc3RlZC1XaXRoIiwiWE1MSHR0cFJlcXVlc3QiKTt4aHIuc2V0UmVxdWVzdEhl YWRlcigiQWNjZXB0IixzLmRhdGFUeXBlJiZzLmFjY2VwdHNbcy5kYXRhVHlwZV0/ cy5hY2NlcHRzW3MuZGF0YVR5cGVdKyIsICovKiI6cy5hY2NlcHRzLl9kZWZhdWx0 KTt9Y2F0Y2goZSl7fWlmKHMuYmVmb3JlU2VuZCYmcy5iZWZvcmVTZW5kKHhocixz KT09PWZhbHNlKXtzLmdsb2JhbCYmalF1ZXJ5LmFjdGl2ZS0tO3hoci5hYm9ydCgp O3JldHVybiBmYWxzZTt9aWYocy5nbG9iYWwpalF1ZXJ5LmV2ZW50LnRyaWdnZXIo ImFqYXhTZW5kIixbeGhyLHNdKTt2YXIgb25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0 aW9uKGlzVGltZW91dCl7aWYoIXJlcXVlc3REb25lJiZ4aHImJih4aHIucmVhZHlT dGF0ZT09NHx8aXNUaW1lb3V0PT0idGltZW91dCIpKXtyZXF1ZXN0RG9uZT10cnVl O2lmKGl2YWwpe2NsZWFySW50ZXJ2YWwoaXZhbCk7aXZhbD1udWxsO31zdGF0dXM9 aXNUaW1lb3V0PT0idGltZW91dCImJiJ0aW1lb3V0Inx8IWpRdWVyeS5odHRwU3Vj Y2Vzcyh4aHIpJiYiZXJyb3IifHxzLmlmTW9kaWZpZWQmJmpRdWVyeS5odHRwTm90 TW9kaWZpZWQoeGhyLHMudXJsKSYmIm5vdG1vZGlmaWVkInx8InN1Y2Nlc3MiO2lm KHN0YXR1cz09InN1Y2Nlc3MiKXt0cnl7ZGF0YT1qUXVlcnkuaHR0cERhdGEoeGhy LHMuZGF0YVR5cGUscy5kYXRhRmlsdGVyKTt9Y2F0Y2goZSl7c3RhdHVzPSJwYXJz ZXJlcnJvciI7fX1pZihzdGF0dXM9PSJzdWNjZXNzIil7dmFyIG1vZFJlczt0cnl7 bW9kUmVzPXhoci5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpO31j YXRjaChlKXt9aWYocy5pZk1vZGlmaWVkJiZtb2RSZXMpalF1ZXJ5Lmxhc3RNb2Rp ZmllZFtzLnVybF09bW9kUmVzO2lmKCFqc29ucClzdWNjZXNzKCk7fWVsc2UKalF1 ZXJ5LmhhbmRsZUVycm9yKHMseGhyLHN0YXR1cyk7Y29tcGxldGUoKTtpZihzLmFz eW5jKXhocj1udWxsO319O2lmKHMuYXN5bmMpe3ZhciBpdmFsPXNldEludGVydmFs KG9ucmVhZHlzdGF0ZWNoYW5nZSwxMyk7aWYocy50aW1lb3V0PjApc2V0VGltZW91 dChmdW5jdGlvbigpe2lmKHhocil7eGhyLmFib3J0KCk7aWYoIXJlcXVlc3REb25l KW9ucmVhZHlzdGF0ZWNoYW5nZSgidGltZW91dCIpO319LHMudGltZW91dCk7fXRy eXt4aHIuc2VuZChzLmRhdGEpO31jYXRjaChlKXtqUXVlcnkuaGFuZGxlRXJyb3Io cyx4aHIsbnVsbCxlKTt9aWYoIXMuYXN5bmMpb25yZWFkeXN0YXRlY2hhbmdlKCk7 ZnVuY3Rpb24gc3VjY2Vzcygpe2lmKHMuc3VjY2VzcylzLnN1Y2Nlc3MoZGF0YSxz dGF0dXMpO2lmKHMuZ2xvYmFsKWpRdWVyeS5ldmVudC50cmlnZ2VyKCJhamF4U3Vj Y2VzcyIsW3hocixzXSk7fWZ1bmN0aW9uIGNvbXBsZXRlKCl7aWYocy5jb21wbGV0 ZSlzLmNvbXBsZXRlKHhocixzdGF0dXMpO2lmKHMuZ2xvYmFsKWpRdWVyeS5ldmVu dC50cmlnZ2VyKCJhamF4Q29tcGxldGUiLFt4aHIsc10pO2lmKHMuZ2xvYmFsJiYh LS1qUXVlcnkuYWN0aXZlKWpRdWVyeS5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIp O31yZXR1cm4geGhyO30saGFuZGxlRXJyb3I6ZnVuY3Rpb24ocyx4aHIsc3RhdHVz LGUpe2lmKHMuZXJyb3Ipcy5lcnJvcih4aHIsc3RhdHVzLGUpO2lmKHMuZ2xvYmFs KWpRdWVyeS5ldmVudC50cmlnZ2VyKCJhamF4RXJyb3IiLFt4aHIscyxlXSk7fSxh Y3RpdmU6MCxodHRwU3VjY2VzczpmdW5jdGlvbih4aHIpe3RyeXtyZXR1cm4heGhy LnN0YXR1cyYmbG9jYXRpb24ucHJvdG9jb2w9PSJmaWxlOiJ8fCh4aHIuc3RhdHVz Pj0yMDAmJnhoci5zdGF0dXM8MzAwKXx8eGhyLnN0YXR1cz09MzA0fHx4aHIuc3Rh dHVzPT0xMjIzfHxqUXVlcnkuYnJvd3Nlci5zYWZhcmkmJnhoci5zdGF0dXM9PXVu ZGVmaW5lZDt9Y2F0Y2goZSl7fXJldHVybiBmYWxzZTt9LGh0dHBOb3RNb2RpZmll ZDpmdW5jdGlvbih4aHIsdXJsKXt0cnl7dmFyIHhoclJlcz14aHIuZ2V0UmVzcG9u c2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKTtyZXR1cm4geGhyLnN0YXR1cz09MzA0 fHx4aHJSZXM9PWpRdWVyeS5sYXN0TW9kaWZpZWRbdXJsXXx8alF1ZXJ5LmJyb3dz ZXIuc2FmYXJpJiZ4aHIuc3RhdHVzPT11bmRlZmluZWQ7fWNhdGNoKGUpe31yZXR1 cm4gZmFsc2U7fSxodHRwRGF0YTpmdW5jdGlvbih4aHIsdHlwZSxmaWx0ZXIpe3Zh ciBjdD14aHIuZ2V0UmVzcG9uc2VIZWFkZXIoImNvbnRlbnQtdHlwZSIpLHhtbD10 eXBlPT0ieG1sInx8IXR5cGUmJmN0JiZjdC5pbmRleE9mKCJ4bWwiKT49MCxkYXRh PXhtbD94aHIucmVzcG9uc2VYTUw6eGhyLnJlc3BvbnNlVGV4dDtpZih4bWwmJmRh dGEuZG9jdW1lbnRFbGVtZW50LnRhZ05hbWU9PSJwYXJzZXJlcnJvciIpdGhyb3ci cGFyc2VyZXJyb3IiO2lmKGZpbHRlcilkYXRhPWZpbHRlcihkYXRhLHR5cGUpO2lm KHR5cGU9PSJzY3JpcHQiKWpRdWVyeS5nbG9iYWxFdmFsKGRhdGEpO2lmKHR5cGU9 PSJqc29uIilkYXRhPWV2YWwoIigiK2RhdGErIikiKTtyZXR1cm4gZGF0YTt9LHBh cmFtOmZ1bmN0aW9uKGEpe3ZhciBzPVtdO2lmKGEuY29uc3RydWN0b3I9PUFycmF5 fHxhLmpxdWVyeSlqUXVlcnkuZWFjaChhLGZ1bmN0aW9uKCl7cy5wdXNoKGVuY29k ZVVSSUNvbXBvbmVudCh0aGlzLm5hbWUpKyI9IitlbmNvZGVVUklDb21wb25lbnQo dGhpcy52YWx1ZSkpO30pO2Vsc2UKZm9yKHZhciBqIGluIGEpaWYoYVtqXSYmYVtq XS5jb25zdHJ1Y3Rvcj09QXJyYXkpalF1ZXJ5LmVhY2goYVtqXSxmdW5jdGlvbigp e3MucHVzaChlbmNvZGVVUklDb21wb25lbnQoaikrIj0iK2VuY29kZVVSSUNvbXBv bmVudCh0aGlzKSk7fSk7ZWxzZQpzLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGop KyI9IitlbmNvZGVVUklDb21wb25lbnQoalF1ZXJ5LmlzRnVuY3Rpb24oYVtqXSk/ YVtqXSgpOmFbal0pKTtyZXR1cm4gcy5qb2luKCImIikucmVwbGFjZSgvJTIwL2cs IisiKTt9fSk7alF1ZXJ5LmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbihzcGVlZCxj YWxsYmFjayl7cmV0dXJuIHNwZWVkP3RoaXMuYW5pbWF0ZSh7aGVpZ2h0OiJzaG93 Iix3aWR0aDoic2hvdyIsb3BhY2l0eToic2hvdyJ9LHNwZWVkLGNhbGxiYWNrKTp0 aGlzLmZpbHRlcigiOmhpZGRlbiIpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnN0eWxl LmRpc3BsYXk9dGhpcy5vbGRibG9ja3x8IiI7aWYoalF1ZXJ5LmNzcyh0aGlzLCJk aXNwbGF5Iik9PSJub25lIil7dmFyIGVsZW09alF1ZXJ5KCI8Iit0aGlzLnRhZ05h bWUrIiAvPiIpLmFwcGVuZFRvKCJib2R5Iik7dGhpcy5zdHlsZS5kaXNwbGF5PWVs ZW0uY3NzKCJkaXNwbGF5Iik7aWYodGhpcy5zdHlsZS5kaXNwbGF5PT0ibm9uZSIp dGhpcy5zdHlsZS5kaXNwbGF5PSJibG9jayI7ZWxlbS5yZW1vdmUoKTt9fSkuZW5k KCk7fSxoaWRlOmZ1bmN0aW9uKHNwZWVkLGNhbGxiYWNrKXtyZXR1cm4gc3BlZWQ/ dGhpcy5hbmltYXRlKHtoZWlnaHQ6ImhpZGUiLHdpZHRoOiJoaWRlIixvcGFjaXR5 OiJoaWRlIn0sc3BlZWQsY2FsbGJhY2spOnRoaXMuZmlsdGVyKCI6dmlzaWJsZSIp LmVhY2goZnVuY3Rpb24oKXt0aGlzLm9sZGJsb2NrPXRoaXMub2xkYmxvY2t8fGpR dWVyeS5jc3ModGhpcywiZGlzcGxheSIpO3RoaXMuc3R5bGUuZGlzcGxheT0ibm9u ZSI7fSkuZW5kKCk7fSxfdG9nZ2xlOmpRdWVyeS5mbi50b2dnbGUsdG9nZ2xlOmZ1 bmN0aW9uKGZuLGZuMil7cmV0dXJuIGpRdWVyeS5pc0Z1bmN0aW9uKGZuKSYmalF1 ZXJ5LmlzRnVuY3Rpb24oZm4yKT90aGlzLl90b2dnbGUuYXBwbHkodGhpcyxhcmd1 bWVudHMpOmZuP3RoaXMuYW5pbWF0ZSh7aGVpZ2h0OiJ0b2dnbGUiLHdpZHRoOiJ0 b2dnbGUiLG9wYWNpdHk6InRvZ2dsZSJ9LGZuLGZuMik6dGhpcy5lYWNoKGZ1bmN0 aW9uKCl7alF1ZXJ5KHRoaXMpW2pRdWVyeSh0aGlzKS5pcygiOmhpZGRlbiIpPyJz aG93IjoiaGlkZSJdKCk7fSk7fSxzbGlkZURvd246ZnVuY3Rpb24oc3BlZWQsY2Fs bGJhY2spe3JldHVybiB0aGlzLmFuaW1hdGUoe2hlaWdodDoic2hvdyJ9LHNwZWVk LGNhbGxiYWNrKTt9LHNsaWRlVXA6ZnVuY3Rpb24oc3BlZWQsY2FsbGJhY2spe3Jl dHVybiB0aGlzLmFuaW1hdGUoe2hlaWdodDoiaGlkZSJ9LHNwZWVkLGNhbGxiYWNr KTt9LHNsaWRlVG9nZ2xlOmZ1bmN0aW9uKHNwZWVkLGNhbGxiYWNrKXtyZXR1cm4g dGhpcy5hbmltYXRlKHtoZWlnaHQ6InRvZ2dsZSJ9LHNwZWVkLGNhbGxiYWNrKTt9 LGZhZGVJbjpmdW5jdGlvbihzcGVlZCxjYWxsYmFjayl7cmV0dXJuIHRoaXMuYW5p bWF0ZSh7b3BhY2l0eToic2hvdyJ9LHNwZWVkLGNhbGxiYWNrKTt9LGZhZGVPdXQ6 ZnVuY3Rpb24oc3BlZWQsY2FsbGJhY2spe3JldHVybiB0aGlzLmFuaW1hdGUoe29w YWNpdHk6ImhpZGUifSxzcGVlZCxjYWxsYmFjayk7fSxmYWRlVG86ZnVuY3Rpb24o c3BlZWQsdG8sY2FsbGJhY2spe3JldHVybiB0aGlzLmFuaW1hdGUoe29wYWNpdHk6 dG99LHNwZWVkLGNhbGxiYWNrKTt9LGFuaW1hdGU6ZnVuY3Rpb24ocHJvcCxzcGVl ZCxlYXNpbmcsY2FsbGJhY2spe3ZhciBvcHRhbGw9alF1ZXJ5LnNwZWVkKHNwZWVk LGVhc2luZyxjYWxsYmFjayk7cmV0dXJuIHRoaXNbb3B0YWxsLnF1ZXVlPT09ZmFs c2U/ImVhY2giOiJxdWV1ZSJdKGZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlVHlwZSE9 MSlyZXR1cm4gZmFsc2U7dmFyIG9wdD1qUXVlcnkuZXh0ZW5kKHt9LG9wdGFsbCks cCxoaWRkZW49alF1ZXJ5KHRoaXMpLmlzKCI6aGlkZGVuIiksc2VsZj10aGlzO2Zv cihwIGluIHByb3Ape2lmKHByb3BbcF09PSJoaWRlIiYmaGlkZGVufHxwcm9wW3Bd PT0ic2hvdyImJiFoaWRkZW4pcmV0dXJuIG9wdC5jb21wbGV0ZS5jYWxsKHRoaXMp O2lmKHA9PSJoZWlnaHQifHxwPT0id2lkdGgiKXtvcHQuZGlzcGxheT1qUXVlcnku Y3NzKHRoaXMsImRpc3BsYXkiKTtvcHQub3ZlcmZsb3c9dGhpcy5zdHlsZS5vdmVy Zmxvdzt9fWlmKG9wdC5vdmVyZmxvdyE9bnVsbCl0aGlzLnN0eWxlLm92ZXJmbG93 PSJoaWRkZW4iO29wdC5jdXJBbmltPWpRdWVyeS5leHRlbmQoe30scHJvcCk7alF1 ZXJ5LmVhY2gocHJvcCxmdW5jdGlvbihuYW1lLHZhbCl7dmFyIGU9bmV3IGpRdWVy eS5meChzZWxmLG9wdCxuYW1lKTtpZigvdG9nZ2xlfHNob3d8aGlkZS8udGVzdCh2 YWwpKWVbdmFsPT0idG9nZ2xlIj9oaWRkZW4/InNob3ciOiJoaWRlIjp2YWxdKHBy b3ApO2Vsc2V7dmFyIHBhcnRzPXZhbC50b1N0cmluZygpLm1hdGNoKC9eKFsrLV09 KT8oW1xkKy0uXSspKC4qKSQvKSxzdGFydD1lLmN1cih0cnVlKXx8MDtpZihwYXJ0 cyl7dmFyIGVuZD1wYXJzZUZsb2F0KHBhcnRzWzJdKSx1bml0PXBhcnRzWzNdfHwi cHgiO2lmKHVuaXQhPSJweCIpe3NlbGYuc3R5bGVbbmFtZV09KGVuZHx8MSkrdW5p dDtzdGFydD0oKGVuZHx8MSkvZS5jdXIodHJ1ZSkpKnN0YXJ0O3NlbGYuc3R5bGVb bmFtZV09c3RhcnQrdW5pdDt9aWYocGFydHNbMV0pZW5kPSgocGFydHNbMV09PSIt PSI/LTE6MSkqZW5kKStzdGFydDtlLmN1c3RvbShzdGFydCxlbmQsdW5pdCk7fWVs c2UKZS5jdXN0b20oc3RhcnQsdmFsLCIiKTt9fSk7cmV0dXJuIHRydWU7fSk7fSxx dWV1ZTpmdW5jdGlvbih0eXBlLGZuKXtpZihqUXVlcnkuaXNGdW5jdGlvbih0eXBl KXx8KHR5cGUmJnR5cGUuY29uc3RydWN0b3I9PUFycmF5KSl7Zm49dHlwZTt0eXBl PSJmeCI7fWlmKCF0eXBlfHwodHlwZW9mIHR5cGU9PSJzdHJpbmciJiYhZm4pKXJl dHVybiBxdWV1ZSh0aGlzWzBdLHR5cGUpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rp b24oKXtpZihmbi5jb25zdHJ1Y3Rvcj09QXJyYXkpcXVldWUodGhpcyx0eXBlLGZu KTtlbHNle3F1ZXVlKHRoaXMsdHlwZSkucHVzaChmbik7aWYocXVldWUodGhpcyx0 eXBlKS5sZW5ndGg9PTEpZm4uY2FsbCh0aGlzKTt9fSk7fSxzdG9wOmZ1bmN0aW9u KGNsZWFyUXVldWUsZ290b0VuZCl7dmFyIHRpbWVycz1qUXVlcnkudGltZXJzO2lm KGNsZWFyUXVldWUpdGhpcy5xdWV1ZShbXSk7dGhpcy5lYWNoKGZ1bmN0aW9uKCl7 Zm9yKHZhciBpPXRpbWVycy5sZW5ndGgtMTtpPj0wO2ktLSlpZih0aW1lcnNbaV0u ZWxlbT09dGhpcyl7aWYoZ290b0VuZCl0aW1lcnNbaV0odHJ1ZSk7dGltZXJzLnNw bGljZShpLDEpO319KTtpZighZ290b0VuZCl0aGlzLmRlcXVldWUoKTtyZXR1cm4g dGhpczt9fSk7dmFyIHF1ZXVlPWZ1bmN0aW9uKGVsZW0sdHlwZSxhcnJheSl7aWYo ZWxlbSl7dHlwZT10eXBlfHwiZngiO3ZhciBxPWpRdWVyeS5kYXRhKGVsZW0sdHlw ZSsicXVldWUiKTtpZighcXx8YXJyYXkpcT1qUXVlcnkuZGF0YShlbGVtLHR5cGUr InF1ZXVlIixqUXVlcnkubWFrZUFycmF5KGFycmF5KSk7fXJldHVybiBxO307alF1 ZXJ5LmZuLmRlcXVldWU9ZnVuY3Rpb24odHlwZSl7dHlwZT10eXBlfHwiZngiO3Jl dHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgcT1xdWV1ZSh0aGlzLHR5cGUp O3Euc2hpZnQoKTtpZihxLmxlbmd0aClxWzBdLmNhbGwodGhpcyk7fSk7fTtqUXVl cnkuZXh0ZW5kKHtzcGVlZDpmdW5jdGlvbihzcGVlZCxlYXNpbmcsZm4pe3ZhciBv cHQ9c3BlZWQmJnNwZWVkLmNvbnN0cnVjdG9yPT1PYmplY3Q/c3BlZWQ6e2NvbXBs ZXRlOmZufHwhZm4mJmVhc2luZ3x8alF1ZXJ5LmlzRnVuY3Rpb24oc3BlZWQpJiZz cGVlZCxkdXJhdGlvbjpzcGVlZCxlYXNpbmc6Zm4mJmVhc2luZ3x8ZWFzaW5nJiZl YXNpbmcuY29uc3RydWN0b3IhPUZ1bmN0aW9uJiZlYXNpbmd9O29wdC5kdXJhdGlv bj0ob3B0LmR1cmF0aW9uJiZvcHQuZHVyYXRpb24uY29uc3RydWN0b3I9PU51bWJl cj9vcHQuZHVyYXRpb246alF1ZXJ5LmZ4LnNwZWVkc1tvcHQuZHVyYXRpb25dKXx8 alF1ZXJ5LmZ4LnNwZWVkcy5kZWY7b3B0Lm9sZD1vcHQuY29tcGxldGU7b3B0LmNv bXBsZXRlPWZ1bmN0aW9uKCl7aWYob3B0LnF1ZXVlIT09ZmFsc2UpalF1ZXJ5KHRo aXMpLmRlcXVldWUoKTtpZihqUXVlcnkuaXNGdW5jdGlvbihvcHQub2xkKSlvcHQu b2xkLmNhbGwodGhpcyk7fTtyZXR1cm4gb3B0O30sZWFzaW5nOntsaW5lYXI6ZnVu Y3Rpb24ocCxuLGZpcnN0TnVtLGRpZmYpe3JldHVybiBmaXJzdE51bStkaWZmKnA7 fSxzd2luZzpmdW5jdGlvbihwLG4sZmlyc3ROdW0sZGlmZil7cmV0dXJuKCgtTWF0 aC5jb3MocCpNYXRoLlBJKS8yKSswLjUpKmRpZmYrZmlyc3ROdW07fX0sdGltZXJz OltdLHRpbWVySWQ6bnVsbCxmeDpmdW5jdGlvbihlbGVtLG9wdGlvbnMscHJvcCl7 dGhpcy5vcHRpb25zPW9wdGlvbnM7dGhpcy5lbGVtPWVsZW07dGhpcy5wcm9wPXBy b3A7aWYoIW9wdGlvbnMub3JpZylvcHRpb25zLm9yaWc9e307fX0pO2pRdWVyeS5m eC5wcm90b3R5cGU9e3VwZGF0ZTpmdW5jdGlvbigpe2lmKHRoaXMub3B0aW9ucy5z dGVwKXRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRo aXMpOyhqUXVlcnkuZnguc3RlcFt0aGlzLnByb3BdfHxqUXVlcnkuZnguc3RlcC5f ZGVmYXVsdCkodGhpcyk7aWYodGhpcy5wcm9wPT0iaGVpZ2h0Inx8dGhpcy5wcm9w PT0id2lkdGgiKXRoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PSJibG9jayI7fSxjdXI6 ZnVuY3Rpb24oZm9yY2Upe2lmKHRoaXMuZWxlbVt0aGlzLnByb3BdIT1udWxsJiZ0 aGlzLmVsZW0uc3R5bGVbdGhpcy5wcm9wXT09bnVsbClyZXR1cm4gdGhpcy5lbGVt W3RoaXMucHJvcF07dmFyIHI9cGFyc2VGbG9hdChqUXVlcnkuY3NzKHRoaXMuZWxl bSx0aGlzLnByb3AsZm9yY2UpKTtyZXR1cm4gciYmcj4tMTAwMDA/cjpwYXJzZUZs b2F0KGpRdWVyeS5jdXJDU1ModGhpcy5lbGVtLHRoaXMucHJvcCkpfHwwO30sY3Vz dG9tOmZ1bmN0aW9uKGZyb20sdG8sdW5pdCl7dGhpcy5zdGFydFRpbWU9bm93KCk7 dGhpcy5zdGFydD1mcm9tO3RoaXMuZW5kPXRvO3RoaXMudW5pdD11bml0fHx0aGlz LnVuaXR8fCJweCI7dGhpcy5ub3c9dGhpcy5zdGFydDt0aGlzLnBvcz10aGlzLnN0 YXRlPTA7dGhpcy51cGRhdGUoKTt2YXIgc2VsZj10aGlzO2Z1bmN0aW9uIHQoZ290 b0VuZCl7cmV0dXJuIHNlbGYuc3RlcChnb3RvRW5kKTt9dC5lbGVtPXRoaXMuZWxl bTtqUXVlcnkudGltZXJzLnB1c2godCk7aWYoalF1ZXJ5LnRpbWVySWQ9PW51bGwp e2pRdWVyeS50aW1lcklkPXNldEludGVydmFsKGZ1bmN0aW9uKCl7dmFyIHRpbWVy cz1qUXVlcnkudGltZXJzO2Zvcih2YXIgaT0wO2k8dGltZXJzLmxlbmd0aDtpKysp aWYoIXRpbWVyc1tpXSgpKXRpbWVycy5zcGxpY2UoaS0tLDEpO2lmKCF0aW1lcnMu bGVuZ3RoKXtjbGVhckludGVydmFsKGpRdWVyeS50aW1lcklkKTtqUXVlcnkudGlt ZXJJZD1udWxsO319LDEzKTt9fSxzaG93OmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25z Lm9yaWdbdGhpcy5wcm9wXT1qUXVlcnkuYXR0cih0aGlzLmVsZW0uc3R5bGUsdGhp cy5wcm9wKTt0aGlzLm9wdGlvbnMuc2hvdz10cnVlO3RoaXMuY3VzdG9tKDAsdGhp cy5jdXIoKSk7aWYodGhpcy5wcm9wPT0id2lkdGgifHx0aGlzLnByb3A9PSJoZWln aHQiKXRoaXMuZWxlbS5zdHlsZVt0aGlzLnByb3BdPSIxcHgiO2pRdWVyeSh0aGlz LmVsZW0pLnNob3coKTt9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3Jp Z1t0aGlzLnByb3BdPWpRdWVyeS5hdHRyKHRoaXMuZWxlbS5zdHlsZSx0aGlzLnBy b3ApO3RoaXMub3B0aW9ucy5oaWRlPXRydWU7dGhpcy5jdXN0b20odGhpcy5jdXIo KSwwKTt9LHN0ZXA6ZnVuY3Rpb24oZ290b0VuZCl7dmFyIHQ9bm93KCk7aWYoZ290 b0VuZHx8dD50aGlzLm9wdGlvbnMuZHVyYXRpb24rdGhpcy5zdGFydFRpbWUpe3Ro aXMubm93PXRoaXMuZW5kO3RoaXMucG9zPXRoaXMuc3RhdGU9MTt0aGlzLnVwZGF0 ZSgpO3RoaXMub3B0aW9ucy5jdXJBbmltW3RoaXMucHJvcF09dHJ1ZTt2YXIgZG9u ZT10cnVlO2Zvcih2YXIgaSBpbiB0aGlzLm9wdGlvbnMuY3VyQW5pbSlpZih0aGlz Lm9wdGlvbnMuY3VyQW5pbVtpXSE9PXRydWUpZG9uZT1mYWxzZTtpZihkb25lKXtp Zih0aGlzLm9wdGlvbnMuZGlzcGxheSE9bnVsbCl7dGhpcy5lbGVtLnN0eWxlLm92 ZXJmbG93PXRoaXMub3B0aW9ucy5vdmVyZmxvdzt0aGlzLmVsZW0uc3R5bGUuZGlz cGxheT10aGlzLm9wdGlvbnMuZGlzcGxheTtpZihqUXVlcnkuY3NzKHRoaXMuZWxl bSwiZGlzcGxheSIpPT0ibm9uZSIpdGhpcy5lbGVtLnN0eWxlLmRpc3BsYXk9ImJs b2NrIjt9aWYodGhpcy5vcHRpb25zLmhpZGUpdGhpcy5lbGVtLnN0eWxlLmRpc3Bs YXk9Im5vbmUiO2lmKHRoaXMub3B0aW9ucy5oaWRlfHx0aGlzLm9wdGlvbnMuc2hv dylmb3IodmFyIHAgaW4gdGhpcy5vcHRpb25zLmN1ckFuaW0palF1ZXJ5LmF0dHIo dGhpcy5lbGVtLnN0eWxlLHAsdGhpcy5vcHRpb25zLm9yaWdbcF0pO31pZihkb25l KXRoaXMub3B0aW9ucy5jb21wbGV0ZS5jYWxsKHRoaXMuZWxlbSk7cmV0dXJuIGZh bHNlO31lbHNle3ZhciBuPXQtdGhpcy5zdGFydFRpbWU7dGhpcy5zdGF0ZT1uL3Ro aXMub3B0aW9ucy5kdXJhdGlvbjt0aGlzLnBvcz1qUXVlcnkuZWFzaW5nW3RoaXMu b3B0aW9ucy5lYXNpbmd8fChqUXVlcnkuZWFzaW5nLnN3aW5nPyJzd2luZyI6Imxp bmVhciIpXSh0aGlzLnN0YXRlLG4sMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik7 dGhpcy5ub3c9dGhpcy5zdGFydCsoKHRoaXMuZW5kLXRoaXMuc3RhcnQpKnRoaXMu cG9zKTt0aGlzLnVwZGF0ZSgpO31yZXR1cm4gdHJ1ZTt9fTtqUXVlcnkuZXh0ZW5k KGpRdWVyeS5meCx7c3BlZWRzOntzbG93OjYwMCxmYXN0OjIwMCxkZWY6NDAwfSxz dGVwOntzY3JvbGxMZWZ0OmZ1bmN0aW9uKGZ4KXtmeC5lbGVtLnNjcm9sbExlZnQ9 Zngubm93O30sc2Nyb2xsVG9wOmZ1bmN0aW9uKGZ4KXtmeC5lbGVtLnNjcm9sbFRv cD1meC5ub3c7fSxvcGFjaXR5OmZ1bmN0aW9uKGZ4KXtqUXVlcnkuYXR0cihmeC5l bGVtLnN0eWxlLCJvcGFjaXR5IixmeC5ub3cpO30sX2RlZmF1bHQ6ZnVuY3Rpb24o Zngpe2Z4LmVsZW0uc3R5bGVbZngucHJvcF09Zngubm93K2Z4LnVuaXQ7fX19KTtq UXVlcnkuZm4ub2Zmc2V0PWZ1bmN0aW9uKCl7dmFyIGxlZnQ9MCx0b3A9MCxlbGVt PXRoaXNbMF0scmVzdWx0cztpZihlbGVtKXdpdGgoalF1ZXJ5LmJyb3dzZXIpe3Zh ciBwYXJlbnQ9ZWxlbS5wYXJlbnROb2RlLG9mZnNldENoaWxkPWVsZW0sb2Zmc2V0 UGFyZW50PWVsZW0ub2Zmc2V0UGFyZW50LGRvYz1lbGVtLm93bmVyRG9jdW1lbnQs c2FmYXJpMj1zYWZhcmkmJnBhcnNlSW50KHZlcnNpb24pPDUyMiYmIS9hZG9iZWFp ci9pLnRlc3QodXNlckFnZW50KSxjc3M9alF1ZXJ5LmN1ckNTUyxmaXhlZD1jc3Mo ZWxlbSwicG9zaXRpb24iKT09ImZpeGVkIjtpZihlbGVtLmdldEJvdW5kaW5nQ2xp ZW50UmVjdCl7dmFyIGJveD1lbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2Fk ZChib3gubGVmdCtNYXRoLm1heChkb2MuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExl ZnQsZG9jLmJvZHkuc2Nyb2xsTGVmdCksYm94LnRvcCtNYXRoLm1heChkb2MuZG9j dW1lbnRFbGVtZW50LnNjcm9sbFRvcCxkb2MuYm9keS5zY3JvbGxUb3ApKTthZGQo LWRvYy5kb2N1bWVudEVsZW1lbnQuY2xpZW50TGVmdCwtZG9jLmRvY3VtZW50RWxl bWVudC5jbGllbnRUb3ApO31lbHNle2FkZChlbGVtLm9mZnNldExlZnQsZWxlbS5v ZmZzZXRUb3ApO3doaWxlKG9mZnNldFBhcmVudCl7YWRkKG9mZnNldFBhcmVudC5v ZmZzZXRMZWZ0LG9mZnNldFBhcmVudC5vZmZzZXRUb3ApO2lmKG1vemlsbGEmJiEv XnQoYWJsZXxkfGgpJC9pLnRlc3Qob2Zmc2V0UGFyZW50LnRhZ05hbWUpfHxzYWZh cmkmJiFzYWZhcmkyKWJvcmRlcihvZmZzZXRQYXJlbnQpO2lmKCFmaXhlZCYmY3Nz KG9mZnNldFBhcmVudCwicG9zaXRpb24iKT09ImZpeGVkIilmaXhlZD10cnVlO29m ZnNldENoaWxkPS9eYm9keSQvaS50ZXN0KG9mZnNldFBhcmVudC50YWdOYW1lKT9v ZmZzZXRDaGlsZDpvZmZzZXRQYXJlbnQ7b2Zmc2V0UGFyZW50PW9mZnNldFBhcmVu dC5vZmZzZXRQYXJlbnQ7fXdoaWxlKHBhcmVudCYmcGFyZW50LnRhZ05hbWUmJiEv XmJvZHl8aHRtbCQvaS50ZXN0KHBhcmVudC50YWdOYW1lKSl7aWYoIS9eaW5saW5l fHRhYmxlLiokL2kudGVzdChjc3MocGFyZW50LCJkaXNwbGF5IikpKWFkZCgtcGFy ZW50LnNjcm9sbExlZnQsLXBhcmVudC5zY3JvbGxUb3ApO2lmKG1vemlsbGEmJmNz cyhwYXJlbnQsIm92ZXJmbG93IikhPSJ2aXNpYmxlIilib3JkZXIocGFyZW50KTtw YXJlbnQ9cGFyZW50LnBhcmVudE5vZGU7fWlmKChzYWZhcmkyJiYoZml4ZWR8fGNz cyhvZmZzZXRDaGlsZCwicG9zaXRpb24iKT09ImFic29sdXRlIikpfHwobW96aWxs YSYmY3NzKG9mZnNldENoaWxkLCJwb3NpdGlvbiIpIT0iYWJzb2x1dGUiKSlhZGQo LWRvYy5ib2R5Lm9mZnNldExlZnQsLWRvYy5ib2R5Lm9mZnNldFRvcCk7aWYoZml4 ZWQpYWRkKE1hdGgubWF4KGRvYy5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCxk b2MuYm9keS5zY3JvbGxMZWZ0KSxNYXRoLm1heChkb2MuZG9jdW1lbnRFbGVtZW50 LnNjcm9sbFRvcCxkb2MuYm9keS5zY3JvbGxUb3ApKTt9cmVzdWx0cz17dG9wOnRv cCxsZWZ0OmxlZnR9O31mdW5jdGlvbiBib3JkZXIoZWxlbSl7YWRkKGpRdWVyeS5j dXJDU1MoZWxlbSwiYm9yZGVyTGVmdFdpZHRoIix0cnVlKSxqUXVlcnkuY3VyQ1NT KGVsZW0sImJvcmRlclRvcFdpZHRoIix0cnVlKSk7fWZ1bmN0aW9uIGFkZChsLHQp e2xlZnQrPXBhcnNlSW50KGwsMTApfHwwO3RvcCs9cGFyc2VJbnQodCwxMCl8fDA7 fXJldHVybiByZXN1bHRzO307alF1ZXJ5LmZuLmV4dGVuZCh7cG9zaXRpb246ZnVu Y3Rpb24oKXt2YXIgbGVmdD0wLHRvcD0wLHJlc3VsdHM7aWYodGhpc1swXSl7dmFy IG9mZnNldFBhcmVudD10aGlzLm9mZnNldFBhcmVudCgpLG9mZnNldD10aGlzLm9m ZnNldCgpLHBhcmVudE9mZnNldD0vXmJvZHl8aHRtbCQvaS50ZXN0KG9mZnNldFBh cmVudFswXS50YWdOYW1lKT97dG9wOjAsbGVmdDowfTpvZmZzZXRQYXJlbnQub2Zm c2V0KCk7b2Zmc2V0LnRvcC09bnVtKHRoaXMsJ21hcmdpblRvcCcpO29mZnNldC5s ZWZ0LT1udW0odGhpcywnbWFyZ2luTGVmdCcpO3BhcmVudE9mZnNldC50b3ArPW51 bShvZmZzZXRQYXJlbnQsJ2JvcmRlclRvcFdpZHRoJyk7cGFyZW50T2Zmc2V0Lmxl ZnQrPW51bShvZmZzZXRQYXJlbnQsJ2JvcmRlckxlZnRXaWR0aCcpO3Jlc3VsdHM9 e3RvcDpvZmZzZXQudG9wLXBhcmVudE9mZnNldC50b3AsbGVmdDpvZmZzZXQubGVm dC1wYXJlbnRPZmZzZXQubGVmdH07fXJldHVybiByZXN1bHRzO30sb2Zmc2V0UGFy ZW50OmZ1bmN0aW9uKCl7dmFyIG9mZnNldFBhcmVudD10aGlzWzBdLm9mZnNldFBh cmVudDt3aGlsZShvZmZzZXRQYXJlbnQmJighL15ib2R5fGh0bWwkL2kudGVzdChv ZmZzZXRQYXJlbnQudGFnTmFtZSkmJmpRdWVyeS5jc3Mob2Zmc2V0UGFyZW50LCdw b3NpdGlvbicpPT0nc3RhdGljJykpb2Zmc2V0UGFyZW50PW9mZnNldFBhcmVudC5v ZmZzZXRQYXJlbnQ7cmV0dXJuIGpRdWVyeShvZmZzZXRQYXJlbnQpO319KTtqUXVl cnkuZWFjaChbJ0xlZnQnLCdUb3AnXSxmdW5jdGlvbihpLG5hbWUpe3ZhciBtZXRo b2Q9J3Njcm9sbCcrbmFtZTtqUXVlcnkuZm5bbWV0aG9kXT1mdW5jdGlvbih2YWwp e2lmKCF0aGlzWzBdKXJldHVybjtyZXR1cm4gdmFsIT11bmRlZmluZWQ/dGhpcy5l YWNoKGZ1bmN0aW9uKCl7dGhpcz09d2luZG93fHx0aGlzPT1kb2N1bWVudD93aW5k b3cuc2Nyb2xsVG8oIWk/dmFsOmpRdWVyeSh3aW5kb3cpLnNjcm9sbExlZnQoKSxp P3ZhbDpqUXVlcnkod2luZG93KS5zY3JvbGxUb3AoKSk6dGhpc1ttZXRob2RdPXZh bDt9KTp0aGlzWzBdPT13aW5kb3d8fHRoaXNbMF09PWRvY3VtZW50P3NlbGZbaT8n cGFnZVlPZmZzZXQnOidwYWdlWE9mZnNldCddfHxqUXVlcnkuYm94TW9kZWwmJmRv Y3VtZW50LmRvY3VtZW50RWxlbWVudFttZXRob2RdfHxkb2N1bWVudC5ib2R5W21l dGhvZF06dGhpc1swXVttZXRob2RdO307fSk7alF1ZXJ5LmVhY2goWyJIZWlnaHQi LCJXaWR0aCJdLGZ1bmN0aW9uKGksbmFtZSl7dmFyIHRsPWk/IkxlZnQiOiJUb3Ai LGJyPWk/IlJpZ2h0IjoiQm90dG9tIjtqUXVlcnkuZm5bImlubmVyIituYW1lXT1m dW5jdGlvbigpe3JldHVybiB0aGlzW25hbWUudG9Mb3dlckNhc2UoKV0oKStudW0o dGhpcywicGFkZGluZyIrdGwpK251bSh0aGlzLCJwYWRkaW5nIiticik7fTtqUXVl cnkuZm5bIm91dGVyIituYW1lXT1mdW5jdGlvbihtYXJnaW4pe3JldHVybiB0aGlz WyJpbm5lciIrbmFtZV0oKStudW0odGhpcywiYm9yZGVyIit0bCsiV2lkdGgiKStu dW0odGhpcywiYm9yZGVyIiticisiV2lkdGgiKSsobWFyZ2luP251bSh0aGlzLCJt YXJnaW4iK3RsKStudW0odGhpcywibWFyZ2luIiticik6MCk7fTt9KTt9KSgpOw== ------------VpNz6ZMvTX6js7qDgnscWw Content-Disposition: inline; filename=google_service.js Content-Type: text/javascript; charset=UTF-8; name=google_service.js Content-Location: http://partner.googleadservices.com/gampad/google_service.js Content-Transfer-Encoding: Quoted-Printable (function(){var d=3Dnull,f=3Dfalse,g=3Dwindow,h=3D"GA_jstiming",j=3D"ind= exOf",l=3D"length",m=3D"prototype",n=3D"join",o=3Dthis,p=3Dfunction(a,b,= c){a=3Da.split(".");c=3Dc||o;!(a[0]in c)&&c.execScript&&c.execScript("va= r "+a[0]);for(var e;a[l]&&(e=3Da.shift());)if(!a[l]&&b!=3D=3Dundefined)c= [e]=3Db;else c=3Dc[e]?c[e]:(c[e]=3D{})},q=3Dfunction(a,b,c){p(a,b,c)},r=3D= function(a,b){function c(){}c.prototype=3Db[m];a.h=3Db[m];a.prototype=3D= new c};var s=3Dfunction(a,b){a=3DparseFloat(a);return isNaN(a)||a>1||a<0= ?b:a},t=3Dfunction(a,b){if(a=3D=3D"true")return true;if(a=3D=3D"false")r= eturn f;return b},u=3D/^([\w-]+\.)*([\w-]{2,})(\:[0-9]+)?$/,v=3Dfunction= (a,b){if(!a)return b;return(a=3Da.match(u))?a[0]:b};var w=3Dfunction(){r= eturn v("","pubads.g.doubleclick.net")},x=3Dfunction(a){return a=3D=3D"p= ubads.g.doubleclick.net"};var A,B,C,D,E,F,G,H,I,M=3Dfunction(){return o.= navigator?o.navigator.userAgent:d},N=3Dfunction(){return o.navigator},O=3D= function(){E=3DD=3DC=3DB=3DA=3Df;var a;if(a=3DM()){var b=3DN();A=3Da[j](= "Opera")=3D=3D0;B=3D!A&&a[j]("MSIE")!=3D-1;D=3D(C=3D!A&&a[j]("WebKit")!=3D= -1)&&a[j]("Mobile")!=3D-1;E=3D!A&&!C&&b.product=3D=3D"Gecko"}};O();var P= =3DA,Q=3DB,R=3DE,S=3DC,T=3Dfunction(){var a=3DN();return a&&a.platform||= ""},U=3DT(),aa=3Dfunction(){F=3DU[j]("Mac")!=3D-1;G=3DU[j]("Win")!=3D-1;= H=3DU[j]("Linux")!=3D-1;I=3D!!N()&&(N().appVersion||"")[j]("X11")!=3D-1}= ;aa(); var ba=3Dfunction(){var a=3D"",b;if(P&&o.opera){a=3Do.opera.version;a=3D= typeof a=3D=3D"function"?a():a}else{if(R)b=3D/rv\:([^\);]+)(\)|;)/;else = if(Q)b=3D/MSIE\s+([^\);]+)(\)|;)/;else if(S)b=3D/WebKit\/(\S+)/;if(b)a=3D= (a=3Db.exec(M()))?a[1]:""}return a};ba();v("","pagead2.googlesyndication= .com");var V=3Dfunction(a){return!!a&&(a[j]("?google_debug")>0||a[j]("&g= oogle_debug")>0)};function W(a){this.t=3D{};this.tick=3Dfunction(b,c,e){= e=3De?e:(new Date).getTime();this.t[b]=3D[e,c]};this.tick("start",d,a)}v= ar ca=3Dnew W;g.GA_jstiming=3D{Timer:W,load:ca};if(g[h]){g[h].c=3D{};g[h= ].f=3D1;var X=3Dfunction(a,b,c){var e=3Da.t[b],i=3Da.t.start;if(e&&(i||c= )){e=3Da.t[b][0];i=3Dc!=3Dundefined?c:i[0];return e-i}};g[h].report=3Dfu= nction(a,b,c){var e=3D"";if(a.e)e+=3D"&"+a.e;var i=3Da.t,da=3Di.start,J=3D= [],y=3D[];for(var k in i)if(k!=3D"start")if(k[j]("_")!=3D0){var z=3Di[k]= [1];if(z)i[z]&&y.push(k+"."+X(a,k,i[z][0]));else da&&J.push(k+"."+X(a,k)= )}delete i.start;if(b)for(var K in b)e+=3D"&"+K+"=3D"+b[K];a=3D[c?c:"htt= p://csi.gstatic.com/csi","?v=3D3","&s=3D"+(g[h].sn||"gam")+"&action=3D",= a.name,y[l]?"&it=3D"+ y[n](","):"","",e,"&rt=3D",J[n](",")][n]("");b=3Dnew Image;var L=3Dg[h].= f++;g[h].c[L]=3Db;b.onload=3Db.onerror=3Dfunction(){delete g[h].c[L]};b.= src=3Da;b=3Dd;return a}};var ea=3Ds("0.01",0);var fa=3Dt("false",f);func= tion ga(a){return ha("adsense",a)}q("GS_googleAddAdSenseService",ga);fun= ction ia(){ja()}q("GS_googleEnableAllServices",ia);function ka(){g.a=3D{= }}q("GS_googleResetAllServices",ka);function la(){var a=3D"adsense";retu= rn ma(a)}q("GS_googleGetIdsForAdSenseService",la);function na(a){return = oa(a)}q("GS_googleFindService",na);function Y(a){this.g=3Da;this.b=3D[]}= Y[m].toString=3Dfunction(){for(var a=3D"["+this.g+" ids: ",b=3D0;b0)a+=3D",";a+=3Dthis.b[b]}a+=3D"]";return a}; var pa=3Dfunction(a){if(a=3D=3D"adsense")return new Z;return new $},ha=3D= function(a,b){if(!(b&&typeof b=3D=3D"string"&&b[l]>0))return d;if(a=3D=3D= d)return d;var c=3Dg.a[a];if(c=3D=3Dd){c=3Dpa(a);g.a[a]=3Dc}qa(c,b);retu= rn c},qa=3Dfunction(a,b){for(var c=3D0;c 0||a[j]("&use_google_ads2")>0))return true;return f},sa=3Dfunc= tion(a,b){if(ra(a,b)){if(V(a))return"google_ads_dbg2.js";return"google_a= ds2.js"}else{if(V(a))return"google_ads_dbg.js";return"google_ads.js"}},t= a=3Dfunction(a){var b=3D"http://"+v("","partner.googleadservices.com");i= f(fa)b=3D"https://"+v("","securepubads.g.doubleclick.net");var c=3D"";x(= w())||(c=3D"?prodhost=3D"+w());return b+ "/gampad/"+a+c};Z[m].enable=3Dfunction(){if(!this.d){var a=3Dta(sa(docum= ent.URL,ea)),b=3D"script";document.write("<"+b+' src=3D"'+a+'"><\/script= >');this.d=3Dtrue;if(g[h]&&g[h].Timer){g[h].load.name=3D"load";g[h].load= .tick("start")}}};g.a||(g.a=3D{});})() ------------VpNz6ZMvTX6js7qDgnscWw Content-Disposition: inline; filename=sigmund-freud.jpg Content-Type: image/jpeg; name=sigmund-freud.jpg Content-Location: http://www.pharmalot.com/wp-content/uploads/2010/03/sigmund-freud.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsU FRAWIB0iIiAdHx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RD84QzQ5Ojf/2wBDAQoK Cg0MDRoPDxo3JR8lNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3 Nzc3Nzc3Nzc3Nzc3Nzf/wAARCAB+AGADASIAAhEBAxEB/8QAGwAAAgMBAQEAAAAA AAAAAAAABAUDBgcCAQD/xAA5EAACAQMCAwYEBAUDBQAAAAABAgMABBEFIRIxQQYT IlFhcTKBkbEUM0LRIyRSocEHFeFiZHLw8f/EABUBAQEAAAAAAAAAAAAAAAAAAAAB /8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8A0FDvzzvzNFpJtuBQ aOCM1Lx9QOdAUH5AedcyyhSN6Ee44R5VBNdBhuaIC1vX7lbz/bNHhSW8ADSyy/lw g7gYz4mxvjyIPpXVnpE90oe/v7i4kzk5wqj2UDAqsdk706pezySYWSaVpW+Z2+gw PlWg2zJGijrjl5UVGtiltAe5G4HnvQk19FDwLJIuWPDjPXlTd3BQ7jGKzTt3O0Wp i1XKEjvEYHHLf5/8Ggeak3iLKc1VNUn+LPOrBNKZYwx5EZ5Uh1BCzEjliiK805BO frQ0k5J3Jr68yszDNDk7c96K3FHJOa9acquDt5ZriNTw/alGr3iw5B50BV1dqoPG 2PY0quL4Zyp/vVd1HV2bIB3zSebUHJPiPsDQSdnL9bbUO+PeLGWOy74BPIitOGq2 iospukMZQSBzIoGMnfJI8iPlWLTRd/NI6nAJyQDvV27N9m7fVeyai82fv5DFKx/L GMbHyyMke9Be11uzuLeN7efjVz4WCsA2/Qkb0o7Sadb6hc21xcyBY18JZ8YHpv5+ VKdG7O2lgrDUA0MyvuFlfGR5eLcH1qwWypdcYZVeINwgSqCp2PQ8+lAlmIjdohCY lUhUzOJOJcDByAP8+hNBXIA686Nvkjgl7iBQIogEQDkoHQfal9x4hyIoip6kP5qT /FBnajtRwLlwM4oJxtRW8yqEjJqg9pLkiclSc1dbtwY96zvXzm7bLZ+dEI7p9s0v kejLgbHFASdfOiuYleW5RIyA0hCgk4Az1NXfsfe6qtuNLhNmIVl2kfxMF3ztkDrt 9qpVkiSXSxSNwq/hz5E8q0TQuxGmPbQySAvKxBZWIbG3tRFgaFVZbeYiS2YfwJOf DjmhPXHT026V7qdtFLZSWjKGRgGYdMAjH2qSy0KDS4D3SiNNvCGJB3yOfI79KOt4 4re0m1bURw20S8Sox/Mxy5+Z2HnmgqEsRgd7SXAuIVXjTPQqCD9CPY0vuSUU5I9j QWoXb3OoS3RZhcSOzswO4JOTUL6i0h7qWPxnIDL1x6UCq/8AFcOaCI8zRd1xCQ5U jPmKDflkGitpvi5jbGPpVA7QRst2T9q0a6UCM8zVL7RRBo2YDBFEU2fkQaBkG+9H yA5OBQcq4O60UMfiHSrfo3bHULGPukh/FGKMt8XDgDG526AVT3+I0do+rS6S0sts sZllXu2aRQwCH4hg/wBQ2PpnG+4I2HsdLrXaMDUtWWO2sCf5e3jTeb1Yk/D5cs+g 2Na7f9pjqV/FZWkn8jA5I4T+aQMcXtvt7E9aZ9oe3NlP2btYNDbunu48TIvxWyDY p7nkD/SCeorN2dpLh9/hQAH3JoO3uDxlgdzv71KZf46kc9nB8z1pazkNjG/tRfE0 bxHiYxOCozyVxsR6edAykuP4SgkF2OFqK5tYDGGMb5P6l3I96BR2bUI038IO3vTe O1jlkLbll6hjgem1FarcspibPIHc1UNX7m4017nvVjXvHiw2MkqcEjf5+1G9oYI7 m3S6nvJreO3Qhu4RCWBI3OQd+mfU1VuzGnadNd/g7+eeC9eTZHm4YpR1HEpH1BO4 5HlQSfgo9VspbqGDuruBR3yRqBHJgbsoHpg7bH3qq3YUOxGCK1vQrLTbJ7hra0e0 uOIrJEknErYyMgZP3rJdbQW+q3cABASd1A8gGOKADhz5ZrRP9N9C002Goa5qjKYb dCnCRsgA4mb1JG3186z7YKpOd2+1Ootfmh7O3OiwqBFc3CyyODuQAPD7ZCn5UQIq xpxdypSPiJRWOSB0BPWvovFcTb8kX7VyGLDbNd2rcN4wJPii6+9ALIAXyQcA8/Ki EfgtVWVOKFm+IHdHGcZ9x9qimj8bDf51JFK8QVpE4rZ14H+v/wAoBrlmS4WWN8N0 bPWioby9J4hKCF3O396Hvou7PCdxzU+YNRW0pBAJxQazqdg2o6RcWieGSRPATy4g Qwz6EgCs5gtLt7xbJ7crLGw4rSYgN8gxzy8jWp28vEoZT5Uk7RQPqr29pZhFv2Zz byEeIFEZ+FTzGeED50DsD8NZQskm7jhVBDwEY/6QxwPc/tWUdqLKSw167glkMp4+ PjI3PEA2/r4qufZe5WPQbvWtQkmlt49j3jHMj9IlPmScHy51RdWu57+9e5uW4ppn aRyBgZJzt6UUHMeFYhj9OeXrXUb7kkb9RXl1jv1XoqgV2sSOvErYPPHKgnifPln2 qdXEdxbSkDHEUOR0I2oNVI2znbzoif8ALjCrxc22J5425UHV0hEpxsPapLSVoogj IGjbOxryVleMSDkRnai7CITWxUj9Wd6Di5gS7syIh/ETdQP7j/3ypBnBq0iFrd88 BKciQdqRapB3N4+BgN4hQXu27RxQw4bnilUPaZIe0umalKGMFnMWcKMnBBBP0qvu G4RknlQj8QOVYg0Rb/8AULX4728TS9PECabZMRELdvBIT+vYY64+p61UY276ceXK oCxCEHnREKmO24xzxmiuEi7+5lbiQKvMscYz4c7A5wSOQr4Rum65x5ZzU9plNLuG C5Mk0a/IBj/nn+9dxsQuGBGeVAMhJO+R60VFI+3h3FeBR05dRUka56/SghtJCySQ Ntw5xXdrdSW7AqOXpUFwr2913mCFY7kdfOiGh4cFh4W3U4wKBpFefi4yUk7uTHIb ClmrrJ4HK44dj+9RjhSTiU70bHdLcL3Uyk/3oIZkPCNulCyLjbanN/CI155pPMcG gEfyxU87AW0SgdBUTCpboYji/wDEfagnil4NFcf9yvvujftXEV0hwGwfRhRungf7 XcRNyEsTe+zj/NdfgkaIMyRsD6YPWghCW7rxDjX1B615GhjyUlDAdGFSJaRRJPM6 cUKKPDxHOScD9+dc21sZkLIQVH9W1EQ3cks8RVVUp6czXMF2Gs2s7gYxuj9QaaKv cxhpGAXGQEXO1DyWKahA91DhAnxMx3b5f80UsNrKHCkgg9QcimMKJAnCp8Wckk86 N03QnGji/kmB/EBhEg/Tw5OSfXhIwPPO/KhGypA23oP/2Q== ------------VpNz6ZMvTX6js7qDgnscWw Content-Disposition: inline; filename=tw-sack.js Content-Type: application/x-javascript; charset=UTF-8; name=tw-sack.js Content-Location: http://www.pharmalot.com/wp-includes/js/tw-sack.js?ver=1.6.1 Content-Transfer-Encoding: Base64 LyogU2ltcGxlIEFKQVggQ29kZS1LaXQgKFNBQ0spIHYxLjYuMSAqLwovKiCpMjAw NSBHcmVnb3J5IFdpbGQtU21pdGggKi8KLyogd3d3LnR3aWxpZ2h0dW5pdmVyc2Uu Y29tICovCi8qIFNvZnR3YXJlIGxpY2VuY2VkIHVuZGVyIGEgbW9kaWZpZWQgWDEx IGxpY2VuY2UsCiAgIHNlZSBkb2N1bWVudGF0aW9uIG9yIGF1dGhvcnMgd2Vic2l0 ZSBmb3IgbW9yZSBkZXRhaWxzICovCgpmdW5jdGlvbiBzYWNrKGZpbGUpIHsKCXRo aXMueG1saHR0cCA9IG51bGw7CgoJdGhpcy5yZXNldERhdGEgPSBmdW5jdGlvbigp IHsKCQl0aGlzLm1ldGhvZCA9ICJQT1NUIjsKICAJCXRoaXMucXVlcnlTdHJpbmdT ZXBhcmF0b3IgPSAiPyI7CgkJdGhpcy5hcmd1bWVudFNlcGFyYXRvciA9ICImIjsK CQl0aGlzLlVSTFN0cmluZyA9ICIiOwoJCXRoaXMuZW5jb2RlVVJJU3RyaW5nID0g dHJ1ZTsKICAJCXRoaXMuZXhlY3V0ZSA9IGZhbHNlOwogIAkJdGhpcy5lbGVtZW50 ID0gbnVsbDsKCQl0aGlzLmVsZW1lbnRPYmogPSBudWxsOwoJCXRoaXMucmVxdWVz dEZpbGUgPSBmaWxlOwoJCXRoaXMudmFycyA9IG5ldyBPYmplY3QoKTsKCQl0aGlz LnJlc3BvbnNlU3RhdHVzID0gbmV3IEFycmF5KDIpOwogIAl9OwoKCXRoaXMucmVz ZXRGdW5jdGlvbnMgPSBmdW5jdGlvbigpIHsKICAJCXRoaXMub25Mb2FkaW5nID0g ZnVuY3Rpb24oKSB7IH07CiAgCQl0aGlzLm9uTG9hZGVkID0gZnVuY3Rpb24oKSB7 IH07CiAgCQl0aGlzLm9uSW50ZXJhY3RpdmUgPSBmdW5jdGlvbigpIHsgfTsKICAJ CXRoaXMub25Db21wbGV0aW9uID0gZnVuY3Rpb24oKSB7IH07CiAgCQl0aGlzLm9u RXJyb3IgPSBmdW5jdGlvbigpIHsgfTsKCQl0aGlzLm9uRmFpbCA9IGZ1bmN0aW9u KCkgeyB9OwoJfTsKCgl0aGlzLnJlc2V0ID0gZnVuY3Rpb24oKSB7CgkJdGhpcy5y ZXNldEZ1bmN0aW9ucygpOwoJCXRoaXMucmVzZXREYXRhKCk7Cgl9OwoKCXRoaXMu Y3JlYXRlQUpBWCA9IGZ1bmN0aW9uKCkgewoJCXRyeSB7CgkJCXRoaXMueG1saHR0 cCA9IG5ldyBBY3RpdmVYT2JqZWN0KCJNc3htbDIuWE1MSFRUUCIpOwoJCX0gY2F0 Y2ggKGUxKSB7CgkJCXRyeSB7CgkJCQl0aGlzLnhtbGh0dHAgPSBuZXcgQWN0aXZl WE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKTsKCQkJfSBjYXRjaCAoZTIpIHsK CQkJCXRoaXMueG1saHR0cCA9IG51bGw7CgkJCX0KCQl9CgoJCWlmICghIHRoaXMu eG1saHR0cCkgewoJCQlpZiAodHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICE9ICJ1bmRl ZmluZWQiKSB7CgkJCQl0aGlzLnhtbGh0dHAgPSBuZXcgWE1MSHR0cFJlcXVlc3Qo KTsKCQkJfSBlbHNlIHsKCQkJCXRoaXMuZmFpbGVkID0gdHJ1ZTsKCQkJfQoJCX0K CX07CgoJdGhpcy5zZXRWYXIgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSl7CgkJdGhp cy52YXJzW25hbWVdID0gQXJyYXkodmFsdWUsIGZhbHNlKTsKCX07CgoJdGhpcy5l bmNWYXIgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSwgcmV0dXJudmFycykgewoJCWlm ICh0cnVlID09IHJldHVybnZhcnMpIHsKCQkJcmV0dXJuIEFycmF5KGVuY29kZVVS SUNvbXBvbmVudChuYW1lKSwgZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKSk7CgkJ fSBlbHNlIHsKCQkJdGhpcy52YXJzW2VuY29kZVVSSUNvbXBvbmVudChuYW1lKV0g PSBBcnJheShlbmNvZGVVUklDb21wb25lbnQodmFsdWUpLCB0cnVlKTsKCQl9Cgl9 CgoJdGhpcy5wcm9jZXNzVVJMU3RyaW5nID0gZnVuY3Rpb24oc3RyaW5nLCBlbmNv ZGUpIHsKCQllbmNvZGVkID0gZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuYXJndW1l bnRTZXBhcmF0b3IpOwoJCXJlZ2V4cCA9IG5ldyBSZWdFeHAodGhpcy5hcmd1bWVu dFNlcGFyYXRvciArICJ8IiArIGVuY29kZWQpOwoJCXZhckFycmF5ID0gc3RyaW5n LnNwbGl0KHJlZ2V4cCk7CgkJZm9yIChpID0gMDsgaSA8IHZhckFycmF5Lmxlbmd0 aDsgaSsrKXsKCQkJdXJsVmFycyA9IHZhckFycmF5W2ldLnNwbGl0KCI9Iik7CgkJ CWlmICh0cnVlID09IGVuY29kZSl7CgkJCQl0aGlzLmVuY1Zhcih1cmxWYXJzWzBd LCB1cmxWYXJzWzFdKTsKCQkJfSBlbHNlIHsKCQkJCXRoaXMuc2V0VmFyKHVybFZh cnNbMF0sIHVybFZhcnNbMV0pOwoJCQl9CgkJfQoJfQoKCXRoaXMuY3JlYXRlVVJM U3RyaW5nID0gZnVuY3Rpb24odXJsc3RyaW5nKSB7CgkJaWYgKHRoaXMuZW5jb2Rl VVJJU3RyaW5nICYmIHRoaXMuVVJMU3RyaW5nLmxlbmd0aCkgewoJCQl0aGlzLnBy b2Nlc3NVUkxTdHJpbmcodGhpcy5VUkxTdHJpbmcsIHRydWUpOwoJCX0KCgkJaWYg KHVybHN0cmluZykgewoJCQlpZiAodGhpcy5VUkxTdHJpbmcubGVuZ3RoKSB7CgkJ CQl0aGlzLlVSTFN0cmluZyArPSB0aGlzLmFyZ3VtZW50U2VwYXJhdG9yICsgdXJs c3RyaW5nOwoJCQl9IGVsc2UgewoJCQkJdGhpcy5VUkxTdHJpbmcgPSB1cmxzdHJp bmc7CgkJCX0KCQl9CgoJCS8vIHByZXZlbnRzIGNhY2hpbmcgb2YgVVJMU3RyaW5n CgkJdGhpcy5zZXRWYXIoInJuZHZhbCIsIG5ldyBEYXRlKCkuZ2V0VGltZSgpKTsK CgkJdXJsc3RyaW5ndGVtcCA9IG5ldyBBcnJheSgpOwoJCWZvciAoa2V5IGluIHRo aXMudmFycykgewoJCQlpZiAoZmFsc2UgPT0gdGhpcy52YXJzW2tleV1bMV0gJiYg dHJ1ZSA9PSB0aGlzLmVuY29kZVVSSVN0cmluZykgewoJCQkJZW5jb2RlZCA9IHRo aXMuZW5jVmFyKGtleSwgdGhpcy52YXJzW2tleV1bMF0sIHRydWUpOwoJCQkJZGVs ZXRlIHRoaXMudmFyc1trZXldOwoJCQkJdGhpcy52YXJzW2VuY29kZWRbMF1dID0g QXJyYXkoZW5jb2RlZFsxXSwgdHJ1ZSk7CgkJCQlrZXkgPSBlbmNvZGVkWzBdOwoJ CQl9CgoJCQl1cmxzdHJpbmd0ZW1wW3VybHN0cmluZ3RlbXAubGVuZ3RoXSA9IGtl eSArICI9IiArIHRoaXMudmFyc1trZXldWzBdOwoJCX0KCQlpZiAodXJsc3RyaW5n KXsKCQkJdGhpcy5VUkxTdHJpbmcgKz0gdGhpcy5hcmd1bWVudFNlcGFyYXRvciAr IHVybHN0cmluZ3RlbXAuam9pbih0aGlzLmFyZ3VtZW50U2VwYXJhdG9yKTsKCQl9 IGVsc2UgewoJCQl0aGlzLlVSTFN0cmluZyArPSB1cmxzdHJpbmd0ZW1wLmpvaW4o dGhpcy5hcmd1bWVudFNlcGFyYXRvcik7CgkJfQoJfQoKCXRoaXMucnVuUmVzcG9u c2UgPSBmdW5jdGlvbigpIHsKCQlldmFsKHRoaXMucmVzcG9uc2UpOwoJfQoKCXRo aXMucnVuQUpBWCA9IGZ1bmN0aW9uKHVybHN0cmluZykgewoJCWlmICh0aGlzLmZh aWxlZCkgewoJCQl0aGlzLm9uRmFpbCgpOwoJCX0gZWxzZSB7CgkJCXRoaXMuY3Jl YXRlVVJMU3RyaW5nKHVybHN0cmluZyk7CgkJCWlmICh0aGlzLmVsZW1lbnQpIHsK CQkJCXRoaXMuZWxlbWVudE9iaiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRo aXMuZWxlbWVudCk7CgkJCX0KCQkJaWYgKHRoaXMueG1saHR0cCkgewoJCQkJdmFy IHNlbGYgPSB0aGlzOwoJCQkJaWYgKHRoaXMubWV0aG9kID09ICJHRVQiKSB7CgkJ CQkJdG90YWx1cmxzdHJpbmcgPSB0aGlzLnJlcXVlc3RGaWxlICsgdGhpcy5xdWVy eVN0cmluZ1NlcGFyYXRvciArIHRoaXMuVVJMU3RyaW5nOwoJCQkJCXRoaXMueG1s aHR0cC5vcGVuKHRoaXMubWV0aG9kLCB0b3RhbHVybHN0cmluZywgdHJ1ZSk7CgkJ CQl9IGVsc2UgewoJCQkJCXRoaXMueG1saHR0cC5vcGVuKHRoaXMubWV0aG9kLCB0 aGlzLnJlcXVlc3RGaWxlLCB0cnVlKTsKCQkJCQl0cnkgewoJCQkJCQl0aGlzLnht bGh0dHAuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0 aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpCgkJCQkJfSBjYXRjaCAoZSkgeyB9 CgkJCQl9CgoJCQkJdGhpcy54bWxodHRwLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1 bmN0aW9uKCkgewoJCQkJCXN3aXRjaCAoc2VsZi54bWxodHRwLnJlYWR5U3RhdGUp IHsKCQkJCQkJY2FzZSAxOgoJCQkJCQkJc2VsZi5vbkxvYWRpbmcoKTsKCQkJCQkJ CWJyZWFrOwoJCQkJCQljYXNlIDI6CgkJCQkJCQlzZWxmLm9uTG9hZGVkKCk7CgkJ CQkJCQlicmVhazsKCQkJCQkJY2FzZSAzOgoJCQkJCQkJc2VsZi5vbkludGVyYWN0 aXZlKCk7CgkJCQkJCQlicmVhazsKCQkJCQkJY2FzZSA0OgoJCQkJCQkJc2VsZi5y ZXNwb25zZSA9IHNlbGYueG1saHR0cC5yZXNwb25zZVRleHQ7CgkJCQkJCQlzZWxm LnJlc3BvbnNlWE1MID0gc2VsZi54bWxodHRwLnJlc3BvbnNlWE1MOwoJCQkJCQkJ c2VsZi5yZXNwb25zZVN0YXR1c1swXSA9IHNlbGYueG1saHR0cC5zdGF0dXM7CgkJ CQkJCQlzZWxmLnJlc3BvbnNlU3RhdHVzWzFdID0gc2VsZi54bWxodHRwLnN0YXR1 c1RleHQ7CgoJCQkJCQkJaWYgKHNlbGYuZXhlY3V0ZSkgewoJCQkJCQkJCXNlbGYu cnVuUmVzcG9uc2UoKTsKCQkJCQkJCX0KCgkJCQkJCQlpZiAoc2VsZi5lbGVtZW50 T2JqKSB7CgkJCQkJCQkJZWxlbU5vZGVOYW1lID0gc2VsZi5lbGVtZW50T2JqLm5v ZGVOYW1lOwoJCQkJCQkJCWVsZW1Ob2RlTmFtZS50b0xvd2VyQ2FzZSgpOwoJCQkJ CQkJCWlmIChlbGVtTm9kZU5hbWUgPT0gImlucHV0IgoJCQkJCQkJCXx8IGVsZW1O b2RlTmFtZSA9PSAic2VsZWN0IgoJCQkJCQkJCXx8IGVsZW1Ob2RlTmFtZSA9PSAi b3B0aW9uIgoJCQkJCQkJCXx8IGVsZW1Ob2RlTmFtZSA9PSAidGV4dGFyZWEiKSB7 CgkJCQkJCQkJCXNlbGYuZWxlbWVudE9iai52YWx1ZSA9IHNlbGYucmVzcG9uc2U7 CgkJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQkJc2VsZi5lbGVtZW50T2JqLmlubmVy SFRNTCA9IHNlbGYucmVzcG9uc2U7CgkJCQkJCQkJfQoJCQkJCQkJfQoJCQkJCQkJ aWYgKHNlbGYucmVzcG9uc2VTdGF0dXNbMF0gPT0gIjIwMCIpIHsKCQkJCQkJCQlz ZWxmLm9uQ29tcGxldGlvbigpOwoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQlzZWxm Lm9uRXJyb3IoKTsKCQkJCQkJCX0KCgkJCQkJCQlzZWxmLlVSTFN0cmluZyA9ICIi OwoJCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJfTsKCgkJCQl0aGlzLnhtbGh0dHAu c2VuZCh0aGlzLlVSTFN0cmluZyk7CgkJCX0KCQl9Cgl9OwoKCXRoaXMucmVzZXQo KTsKCXRoaXMuY3JlYXRlQUpBWCgpOwp9Cg== ------------VpNz6ZMvTX6js7qDgnscWw Content-Disposition: inline; filename=polls-js-packed.js Content-Type: application/x-javascript; charset=UTF-8; name=polls-js-packed.js Content-Location: http://www.pharmalot.com/wp-content/plugins/wp-polls/polls-js-packed.js?ver=2.30 Content-Transfer-Encoding: Base64 ZXZhbChmdW5jdGlvbihwLGEsYyxrLGUscil7ZT1mdW5jdGlvbihjKXtyZXR1cm4o YzxhPycnOmUocGFyc2VJbnQoYy9hKSkpKygoYz1jJWEpPjM1P1N0cmluZy5mcm9t Q2hhckNvZGUoYysyOSk6Yy50b1N0cmluZygzNikpfTtpZighJycucmVwbGFjZSgv Xi8sU3RyaW5nKSl7d2hpbGUoYy0tKXJbZShjKV09a1tjXXx8ZShjKTtrPVtmdW5j dGlvbihlKXtyZXR1cm4gcltlXX1dO2U9ZnVuY3Rpb24oKXtyZXR1cm4nXFx3Kyd9 O2M9MX07d2hpbGUoYy0tKWlmKGtbY10pcD1wLnJlcGxhY2UobmV3IFJlZ0V4cCgn XFxiJytlKGMpKydcXGInLCdnJyksa1tjXSk7cmV0dXJuIHB9KCdoIDM9WiAxMSgx Mik7aCA2PTA7aCBjPSIiO2ggYj0wO2ggNT04O2ggbj0oNy5PJiY3LjkpO2ggbz0o ITcuTyYmNy45KTtoIHA9KDEzLjE0LjE1KCIxNiIpPi0xKTtoIGQ9cTtmIDE3KGEp ezIoIWQpe2Q9cjs2PWE7cz03LjkoXCdQXCcrNik7az0xOCgicy5RIis2KTtjPSIi OzIoNy45KFwnUlwnKzYpKXtsPVMoNy45KFwnUlwnKzYpLnkpfTR7bD0wfXQ9MDsy KGsueiE9MTkpe1QoaT0wO2k8ay56O2krKyl7MihrW2ldLjFhKXsyKGw+MCl7Yz1r W2ldLnkrIiwiK2M7dCsrfTR7Yz1TKGtbaV0ueSl9fX19NHtjPWsueX0yKGw+MCl7 Mih0PjAmJnQ8PWwpe2M9Yy4xYigwLChjLnotMSkpO3UoKTtBKCl9NCAyKHQ9PTAp e2Q9cTttKFUpfTR7ZD1xO20oMWMrIiAiK2wrIi4iKX19NHsyKGM+MCl7dSgpO0Eo KX00e2Q9cTttKFUpfX19NHttKEcpfX1mIDFkKGEpezIoIWQpe2Q9cjs2PWE7dSgp O0goKX00e20oRyl9fWYgMWUoYSl7MighZCl7ZD1yOzY9YTt1KCk7SSgpfTR7bShH KX19ZiB2KCl7MihiPT0xZil7dygpfTIoYjw4KXtiKz0xMDsyKHApe2I9ODt3KCl9 NCAyKG4pezIoail7Ny45KFwnMy1cJys2K1wnLWVcJykuZy5CPVwnQyhEPVwnK2Ir XCcpXCd9NHtiPTg7dygpfX00IDIobyl7MihqKXs3LjkoXCczLVwnKzYrXCctZVwn KS5nLkU9KGIvOCl9NHtiPTg7dygpfX1GKCJ2KCkiLDgpfTR7Yj04O2Q9cX19ZiB1 KCl7MihWKXs3LjkoXCczLVwnKzYrXCctV1wnKS5nLlg9XCcxZ1wnfX1mIHcoKXsy KFYpezcuOShcJzMtXCcrNitcJy1XXCcpLmcuWD1cJzFoXCd9fWYgQSgpezIoNT4w KXs1LT0xMDsyKHApezU9MH00IDIobil7MihqKXs3LjkoXCczLVwnKzYrXCctZVwn KS5nLkI9XCdDKEQ9XCcrNStcJylcJ300ezU9MH19NCAyKG8pezIoail7Ny45KFwn My1cJys2K1wnLWVcJykuZy5FPSg1LzgpfTR7NT0wfX1GKCJBKCkiLDgpfTR7NT0w OzMuSigpOzMueCgiMWkiLHIpOzMueCgiNiIsNik7My54KCJRIis2LGMpOzMuSz1c JzFqXCc7My5MPVwnMy1cJys2K1wnLWVcJzszLk09djszLk4oKTtiPTA7NT04fX1m IEgoKXsyKDU+MCl7NS09MTA7MihwKXs1PTB9NCAyKG4pezIoail7Ny45KFwnMy1c Jys2K1wnLWVcJykuZy5CPVwnQyhEPVwnKzUrXCcpXCd9NHs1PTB9fTQgMihvKXsy KGopezcuOShcJzMtXCcrNitcJy1lXCcpLmcuRT0oNS84KX00ezU9MH19RigiSCgp Iiw4KX00ezU9MDszLkooKTszLngoIjFrIiw2KTszLks9XCdZXCc7My5MPVwnMy1c Jys2K1wnLWVcJzszLk09djszLk4oKTtiPTA7NT04fX1mIEkoKXsyKDU+MCl7NS09 MTA7MihwKXs1PTB9NCAyKG4pezIoail7Ny45KFwnMy1cJys2K1wnLWVcJykuZy5C PVwnQyhEPVwnKzUrXCcpXCd9NHs1PTB9fTQgMihvKXsyKGopezcuOShcJzMtXCcr NitcJy1lXCcpLmcuRT0oNS84KX00ezU9MH19RigiSSgpIiw4KX00ezU9MDszLkoo KTszLngoIjFsIiw2KTszLks9XCdZXCc7My5MPVwnMy1cJys2K1wnLWVcJzszLk09 djszLk4oKTtiPTA7NT04fX1mIDFtKGEpe3M9Ny45KFwnUFwnK2EpO1QoaT0wO2k8 cy56O2krKyl7c1tpXS4xbj1yfX0nLDYyLDg2LCd8fGlmfHBvbGxzfGVsc2V8cG9s bF9mYWRlb3V0X29wYWNpdHl8cG9sbF9pZHxkb2N1bWVudHwxMDB8Z2V0RWxlbWVu dEJ5SWR8fHBvbGxfZmFkZWluX29wYWNpdHl8cG9sbF9hbnN3ZXJfaWR8aXNfYmVp bmdfdm90ZWR8YW5zfGZ1bmN0aW9ufHN0eWxlfHZhcnx8cG9sbF9zaG93X2ZhZGlu Z3xwb2xsX2Fuc3dlcnxwb2xsX211bHRpcGxlX2Fuc3xhbGVydHxpc19pZXxpc19t b3p8aXNfb3BlcmF8ZmFsc2V8dHJ1ZXxwb2xsX2Zvcm18cG9sbF9tdWx0aXBsZV9h bnNfY291bnR8cG9sbF9sb2FkaW5nX3RleHR8cG9sbF9mYWRlaW5fdGV4dHxwb2xs X3VubG9hZGluZ190ZXh0fHNldFZhcnx2YWx1ZXxsZW5ndGh8cG9sbF9wcm9jZXNz fGZpbHRlcnxhbHBoYXxvcGFjaXR5fE1vek9wYWNpdHl8c2V0VGltZW91dHxwb2xs c190ZXh0X3dhaXR8cG9sbF9wcm9jZXNzX3Jlc3VsdHxwb2xsX3Byb2Nlc3NfYm9v dGh8cmVzZXR8bWV0aG9kfGVsZW1lbnR8b25Db21wbGV0aW9ufHJ1bkFKQVh8YWxs fHBvbGxzX2Zvcm1ffHBvbGxffHBvbGxfbXVsdGlwbGVfYW5zX3xwYXJzZUludHxm b3J8cG9sbHNfdGV4dF92YWxpZHxwb2xsX3Nob3dfbG9hZGluZ3xsb2FkaW5nfGRp c3BsYXl8R0VUfG5ld3x8c2Fja3xwb2xsc19hamF4X3VybHxuYXZpZ2F0b3J8dXNl ckFnZW50fGluZGV4T2Z8T3BlcmF8cG9sbF92b3RlfGV2YWx8bnVsbHxjaGVja2Vk fHN1YnN0cmluZ3xwb2xsc190ZXh0X211bHRpcGxlfHBvbGxfcmVzdWx0fHBvbGxf Ym9vdGh8OTB8YmxvY2t8bm9uZXx2b3RlfFBPU1R8cG9sbHJlc3VsdHxwb2xsYm9v dGh8cG9sbF9kaXNhYmxlX3ZvdGluZ3xkaXNhYmxlZCcuc3BsaXQoJ3wnKSwwLHt9 KSk= ------------VpNz6ZMvTX6js7qDgnscWw Content-Disposition: inline; filename=default.js Content-Type: application/x-javascript; charset=UTF-8; name=default.js Content-Location: http://w.sharethis.com/widget/?tabs=email%2Cweb%2Cpost&charset=utf-8&style=default&publisher=6a410163-725c-4343-ae39-69b06477e404&headerbg=%238aaa83&inactivebg=%23cce4c6&linkfg=%233e7938&embeds=true&button=false Content-Transfer-Encoding: Base64 U1RfSlNPTj1uZXcgZnVuY3Rpb24oKXt0aGlzLmVuY29kZT1mdW5jdGlvbigpe3Zh ciBzZWxmPWFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnRoaXMscmVzdWx0 LHRtcDtpZihzZWxmPT09bnVsbCl7cmVzdWx0PSJudWxsIn1lbHNle2lmKHNlbGYh PT11bmRlZmluZWQmJih0bXA9JFt0eXBlb2Ygc2VsZl0oc2VsZikpKXtzd2l0Y2go dG1wKXtjYXNlIEFycmF5OnJlc3VsdD1bXTtmb3IodmFyIGk9MCxqPTAsaz1zZWxm Lmxlbmd0aDtqPGs7aisrKXtpZihzZWxmW2pdIT09dW5kZWZpbmVkJiYodG1wPVNU X0pTT04uZW5jb2RlKHNlbGZbal0pKSl7cmVzdWx0W2krK109dG1wfX1yZXN1bHQ9 IlsiLmNvbmNhdChyZXN1bHQuam9pbigiLCIpLCJdIik7YnJlYWs7Y2FzZSBCb29s ZWFuOnJlc3VsdD1TdHJpbmcoc2VsZik7YnJlYWs7Y2FzZSBEYXRlOnJlc3VsdD0n IicuY29uY2F0KHNlbGYuZ2V0RnVsbFllYXIoKSwiLSIsZChzZWxmLmdldE1vbnRo KCkrMSksIi0iLGQoc2VsZi5nZXREYXRlKCkpLCJUIixkKHNlbGYuZ2V0SG91cnMo KSksIjoiLGQoc2VsZi5nZXRNaW51dGVzKCkpLCI6IixkKHNlbGYuZ2V0U2Vjb25k cygpKSwnIicpO2JyZWFrO2Nhc2UgRnVuY3Rpb246YnJlYWs7Y2FzZSBOdW1iZXI6 cmVzdWx0PWlzRmluaXRlKHNlbGYpP1N0cmluZyhzZWxmKToibnVsbCI7YnJlYWs7 Y2FzZSBTdHJpbmc6cmVzdWx0PSciJy5jb25jYXQoc2VsZi5yZXBsYWNlKHJzLHMp LnJlcGxhY2UocnUsdSksJyInKTticmVhaztkZWZhdWx0OnZhciBpPTAsa2V5O3Jl c3VsdD1bXTtmb3Ioa2V5IGluIHNlbGYpe2lmKHNlbGZba2V5XSE9PXVuZGVmaW5l ZCYmKHRtcD1TVF9KU09OLmVuY29kZShzZWxmW2tleV0pKSl7cmVzdWx0W2krK109 JyInLmNvbmNhdChrZXkucmVwbGFjZShycyxzKS5yZXBsYWNlKHJ1LHUpLCciOics dG1wKX19cmVzdWx0PSJ7Ii5jb25jYXQocmVzdWx0LmpvaW4oIiwiKSwifSIpO2Jy ZWFrfX19cmV0dXJuIHJlc3VsdH07dGhpcy50b0RhdGU9ZnVuY3Rpb24oKXt2YXIg c2VsZj1hcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp0aGlzLHJlc3VsdDtp ZihyZC50ZXN0KHNlbGYpKXtyZXN1bHQ9bmV3IERhdGU7cmVzdWx0LnNldEhvdXJz KGkoc2VsZiwxMSwyKSk7cmVzdWx0LnNldE1pbnV0ZXMoaShzZWxmLDE0LDIpKTty ZXN1bHQuc2V0U2Vjb25kcyhpKHNlbGYsMTcsMikpO3Jlc3VsdC5zZXRNb250aChp KHNlbGYsNSwyKS0xKTtyZXN1bHQuc2V0RGF0ZShpKHNlbGYsOCwyKSk7cmVzdWx0 LnNldEZ1bGxZZWFyKGkoc2VsZiwwLDQpKX1lbHNle2lmKHJ0LnRlc3Qoc2VsZikp e3Jlc3VsdD1uZXcgRGF0ZShzZWxmKjEwMDApfX1yZXR1cm4gcmVzdWx0fTt2YXIg Yz17IlxiIjoiYiIsIlx0IjoidCIsIlxuIjoibiIsIlxmIjoiZiIsIlxyIjoiciIs JyInOiciJywiXFwiOiJcXCIsIi8iOiIvIn0sZD1mdW5jdGlvbihuKXtyZXR1cm4g bjwxMD8iMCIuY29uY2F0KG4pOm59LGU9ZnVuY3Rpb24oYyxmLGUpe2U9ZXZhbDtk ZWxldGUgZXZhbDtpZih0eXBlb2YgZXZhbD09PSJ1bmRlZmluZWQiKXtldmFsPWV9 Zj1ldmFsKCIiK2MpO2V2YWw9ZTtyZXR1cm4gZn0saT1mdW5jdGlvbihlLHAsbCl7 cmV0dXJuIDEqZS5zdWJzdHIocCxsKX0scD1bIiIsIjAwMCIsIjAwIiwiMCIsIiJd LHJjPW51bGwscmQ9L15bMC05XXs0fVwtWzAtOV17Mn1cLVswLTldezJ9VFswLTld ezJ9OlswLTldezJ9OlswLTldezJ9JC8scnM9LyhceDVjfFx4MkZ8XHgyMnxbXHgw Yy1ceDBkXXxbXHgwOC1ceDBhXSkvZyxydD0vXihbMC05XSt8WzAtOV0rWyxcLl1b MC05XXsxLDN9KSQvLHJ1PS8oW1x4MDAtXHgwN118XHgwYnxbXHgwZS1ceDFmXSkv ZyxzPWZ1bmN0aW9uKGksZCl7cmV0dXJuIlxcIi5jb25jYXQoY1tkXSl9LHU9ZnVu Y3Rpb24oaSxkKXt2YXIgbj1kLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpO3Jl dHVybiJcXHUiLmNvbmNhdChwW24ubGVuZ3RoXSxuKX0sdj1mdW5jdGlvbihrLHYp e3JldHVybiAkW3R5cGVvZiByZXN1bHRdKHJlc3VsdCkhPT1GdW5jdGlvbiYmKHYu aGFzT3duUHJvcGVydHk/di5oYXNPd25Qcm9wZXJ0eShrKTp2LmNvbnN0cnVjdG9y LnByb3RvdHlwZVtrXSE9PXZba10pfSwkPXsiYm9vbGVhbiI6ZnVuY3Rpb24oKXty ZXR1cm4gQm9vbGVhbn0sImZ1bmN0aW9uIjpmdW5jdGlvbigpe3JldHVybiBGdW5j dGlvbn0sbnVtYmVyOmZ1bmN0aW9uKCl7cmV0dXJuIE51bWJlcn0sb2JqZWN0OmZ1 bmN0aW9uKG8pe3JldHVybiBvIGluc3RhbmNlb2Ygby5jb25zdHJ1Y3Rvcj9vLmNv bnN0cnVjdG9yOm51bGx9LHN0cmluZzpmdW5jdGlvbigpe3JldHVybiBTdHJpbmd9 LCJ1bmRlZmluZWQiOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9fSwkJD1mdW5jdGlv bihtKXtmdW5jdGlvbiAkKGMsdCl7dD1jW21dO2RlbGV0ZSBjW21dO3RyeXtlKGMp fWNhdGNoKHope2NbbV09dDtyZXR1cm4gMX19cmV0dXJuICQoQXJyYXkpJiYkKE9i amVjdCl9O3RyeXtyYz1uZXcgUmVnRXhwKCdeKCIoXFxcXC58W14iXFxcXFxcblxc cl0pKj8ifFssOnt9XFxbXFxdMC05LlxcLStFYWVmbG5yLXUgXFxuXFxyXFx0XSkr PyQnKX1jYXRjaCh6KXtyYz0vXih0cnVlfGZhbHNlfG51bGx8XFsuKlxdfFx7Lipc fXwiLioifFxkK3xcZCtcLlxkKykkL319O3RyeXtpZighU0hBUkVUSElTKXtpZigh U0hBUkVUSElTX1RPT0xCQVIpe3ZhciBTSEFSRVRISVNfVE9PTEJBUj1mYWxzZX12 YXIgU0hBUkVUSElTPW51bGw7ZnVuY3Rpb24gcGFyc2VRdWVyeVN0cmluZyhiKXt2 YXIgZD17fTtpZihiPT11bmRlZmluZWQpe2I9bG9jYXRpb24uc2VhcmNoP2xvY2F0 aW9uLnNlYXJjaDoiIn1pZihiLmNoYXJBdCgwKT09Ij8iKXtiPWIuc3Vic3RyaW5n KDEpfXZhciBmPWIuaW5kZXhPZigiPyIpO2lmKGYpe2I9Yi5zdWJzdHJpbmcoZisx KX1mPWIuaW5kZXhPZigiIyIpO2lmKGYpe2I9Yi5zdWJzdHJpbmcoZisxKX1iPWIu cmVwbGFjZSgiKyIsIiAiKTt2YXIgZz1iLnNwbGl0KC9bJjtdL2cpO2Zvcih2YXIg Zj0wO2Y8Zy5sZW5ndGg7ZisrKXt2YXIgYz1nW2ZdLnNwbGl0KCI9Iik7dmFyIGE9 ZGVjb2RlVVJJQ29tcG9uZW50KGNbMF0pO3ZhciBlPWRlY29kZVVSSUNvbXBvbmVu dChjWzFdKTtpZighZFthXSl7ZFthXT1bXX1kW2FdLnB1c2goKGMubGVuZ3RoPT0x KT8iIjplKX1yZXR1cm4gZH12YXIgaGV4Y2FzZT0wO3ZhciBiNjRwYWQ9IiI7dmFy IGNocnN6PTg7ZnVuY3Rpb24gaGV4X3NoYTEoYSl7cmV0dXJuIGJpbmIyaGV4KGNv cmVfc2hhMShzdHIyYmluYihhKSxhLmxlbmd0aCpjaHJzeikpfWZ1bmN0aW9uIGNv cmVfc2hhMShoLG0pe2hbbT4+NV18PTEyODw8KDI0LW0lMzIpO2hbKChtKzY0Pj45 KTw8NCkrMTVdPW07dmFyIGY9QXJyYXkoODApO3ZhciBnPTE3MzI1ODQxOTM7dmFy IGk9LTI3MTczMzg3OTt2YXIgaj0tMTczMjU4NDE5NDt2YXIgaz0yNzE3MzM4Nzg7 dmFyIGw9LTEwMDk1ODk3NzY7Zm9yKHZhciBxPTA7cTxoLmxlbmd0aDtxKz0xNil7 dmFyIG49Zzt2YXIgbz1pO3ZhciBhPWo7dmFyIGI9azt2YXIgZD1sO2Zvcih2YXIg Yz0wO2M8ODA7YysrKXtpZihjPDE2KXtmW2NdPWhbcStjXX1lbHNle2ZbY109cm9s KGZbYy0zXV5mW2MtOF1eZltjLTE0XV5mW2MtMTZdLDEpfXZhciBlPXNhZmVfYWRk KHNhZmVfYWRkKHJvbChnLDUpLHNoYTFfZnQoYyxpLGosaykpLHNhZmVfYWRkKHNh ZmVfYWRkKGwsZltjXSksc2hhMV9rdChjKSkpO2w9aztrPWo7aj1yb2woaSwzMCk7 aT1nO2c9ZX1nPXNhZmVfYWRkKGcsbik7aT1zYWZlX2FkZChpLG8pO2o9c2FmZV9h ZGQoaixhKTtrPXNhZmVfYWRkKGssYik7bD1zYWZlX2FkZChsLGQpfXJldHVybiBB cnJheShnLGksaixrLGwpfWZ1bmN0aW9uIHNoYTFfZnQoZCxhLGIsYyl7aWYoZDwy MCl7cmV0dXJuKGEmYil8KCh+YSkmYyl9aWYoZDw0MCl7cmV0dXJuIGFeYl5jfWlm KGQ8NjApe3JldHVybihhJmIpfChhJmMpfChiJmMpfXJldHVybiBhXmJeY31mdW5j dGlvbiBzaGExX2t0KGEpe3JldHVybihhPDIwKT8xNTE4NTAwMjQ5OihhPDQwKT8x ODU5Nzc1MzkzOihhPDYwKT8tMTg5NDAwNzU4ODotODk5NDk3NTE0fWZ1bmN0aW9u IHNhZmVfYWRkKGEsYil7dmFyIGM9KGEmNjU1MzUpKyhiJjY1NTM1KTt2YXIgZD0o YT4+MTYpKyhiPj4xNikrKGM+PjE2KTtyZXR1cm4oZDw8MTYpfChjJjY1NTM1KX1m dW5jdGlvbiByb2woYSxiKXtyZXR1cm4oYTw8Yil8KGE+Pj4oMzItYikpfWZ1bmN0 aW9uIHN0cjJiaW5iKGIpe3ZhciBjPUFycmF5KCk7dmFyIGE9KDE8PGNocnN6KS0x O2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGgqY2hyc3o7ZCs9Y2hyc3ope2NbZD4+NV18 PShiLmNoYXJDb2RlQXQoZC9jaHJzeikmYSk8PCgzMi1jaHJzei1kJTMyKX1yZXR1 cm4gY31mdW5jdGlvbiBiaW5iMmhleChjKXt2YXIgZD1oZXhjYXNlPyIwMTIzNDU2 Nzg5QUJDREVGIjoiMDEyMzQ1Njc4OWFiY2RlZiI7dmFyIGI9IiI7Zm9yKHZhciBh PTA7YTxjLmxlbmd0aCo0O2ErKyl7Yis9ZC5jaGFyQXQoKGNbYT4+Ml0+PigoMy1h JTQpKjgrNCkpJjE1KStkLmNoYXJBdCgoY1thPj4yXT4+KCgzLWElNCkqOCkpJjE1 KX1yZXR1cm4gYn1mdW5jdGlvbiBoYXNoX3BhZ2UoYSl7cmV0dXJuIGhleF9zaGEx KGEpfXZhciBzdFZpc2libGVJbnRlcnZhbD1udWxsO3ZhciByZWFkeVRlc3RJbnRl cnZhbD1udWxsO3ZhciBzdF9zaG93aW5nPWZhbHNlO3ZhciBzdGF1dG9jbG9zZT10 cnVlO2Z1bmN0aW9uIFNIQVJFVEhJU19tZXJnZSgpe3ZhciBlPXt9O2Zvcih2YXIg ZD0wLGE9YXJndW1lbnRzLmxlbmd0aDtkPGE7ZCsrKXt2YXIgYj1hcmd1bWVudHNb ZF07aWYoU0hBUkVUSElTX3R5cGVvZihiKSE9Im9iamVjdCIpe2NvbnRpbnVlfWZv cih2YXIgYyBpbiBiKXt2YXIgZz1iW2NdLGY9ZVtjXTtlW2NdPShmJiZTSEFSRVRI SVNfdHlwZW9mKGcpPT0ib2JqZWN0IiYmU0hBUkVUSElTX3R5cGVvZihmKT09Im9i amVjdCIpP1NIQVJFVEhJU19tZXJnZShmLGcpOlNIQVJFVEhJU191bmxpbmsoZyl9 fXJldHVybiBlfWZ1bmN0aW9uIFNIQVJFVEhJU191bmxpbmsoYyl7dmFyIGE7c3dp dGNoKFNIQVJFVEhJU190eXBlb2YoYykpe2Nhc2Uib2JqZWN0IjphPXt9O2Zvcih2 YXIgZSBpbiBjKXthW2VdPVNIQVJFVEhJU191bmxpbmsoY1tlXSl9YnJlYWs7Y2Fz ZSJoYXNoIjphPVNIQVJFVEhJU191bmxpbmsoYy5nZXRDbGVhbigpKTticmVhaztj YXNlImFycmF5IjphPVtdO2Zvcih2YXIgZD0wLGI9Yy5sZW5ndGg7ZDxiO2QrKyl7 YVtkXT1TSEFSRVRISVNfdW5saW5rKGNbZF0pfWJyZWFrO2RlZmF1bHQ6cmV0dXJu IGN9cmV0dXJuIGF9ZnVuY3Rpb24gU0hBUkVUSElTX3R5cGVvZihhKXtpZihTSEFS RVRISVNfaXNBcnJheShhKSl7cmV0dXJuImFycmF5In1lbHNle3JldHVybiB0eXBl b2YgYX19ZnVuY3Rpb24gU0hBUkVUSElTX2lzQXJyYXkoYyl7dmFyIGI9YyE9bnVs bCYmdHlwZW9mIGM9PSJvYmplY3QiJiYic3BsaWNlIiBpbiBjJiYiam9pbiIgaW4g YztyZXR1cm4gYn1mdW5jdGlvbiBTaGFyZWFibGUoYixhKXt0aGlzLmlkeD0tMTt0 aGlzLmZyYW1lVXJsPSIiO3RoaXMuZWxlbWVudD1udWxsO3RoaXMudHJpZ2dlcj1u dWxsO3RoaXMucGFnZT0iIjt0aGlzLnByb3BlcnRpZXM9e3R5cGU6IiIsdGl0bGU6 ZW5jb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LnRpdGxlKSxzdW1tYXJ5OiIiLGNv bnRlbnQ6IiIsdXJsOmRvY3VtZW50LlVSTCxpY29uOiIiLGNhdGVnb3J5OiIiLHVw ZGF0ZWQ6ZG9jdW1lbnQubGFzdE1vZGlmaWVkLHB1Ymxpc2hlZDoiIixhdXRob3I6 IiJ9O3RoaXMub3B0aW9ucz17YnV0dG9uOnRydWUsb25tb3VzZW92ZXI6dHJ1ZSxi dXR0b25UZXh0OiJTaGFyZVRoaXMiLHBvcHVwOmZhbHNlLG9mZnNldExlZnQ6MCxv ZmZzZXRUb3A6MCxlbWJlZHM6ZmFsc2UsYXV0b2Nsb3NlOmZhbHNlfTt0aGlzLmlu aXRpYWxpemU9ZnVuY3Rpb24oZCxjKXt0aGlzLm9wdGlvbnM9U0hBUkVUSElTX21l cmdlKHRoaXMub3B0aW9ucyxjKTt0aGlzLnByb3BlcnRpZXM9U0hBUkVUSElTX21l cmdlKHRoaXMucHJvcGVydGllcyxkKTtpZihjLnRhcmdldCl7dmFyIGU9dGhpcztj LnRhcmdldC5vbmNsaWNrPWZ1bmN0aW9uKCl7ZS5zaGFyZSgpfTtpZihjLm1vdXNl b3Zlcil7Yy50YXJnZXQub25tb3VzZW92ZXI9ZnVuY3Rpb24oKXtlLnNoYXJlKCl9 fX19O3RoaXMuaW5pdGlhbGl6ZShiLGEpO3RoaXMuc2hhcmU9ZnVuY3Rpb24oKXtm cmFtZXMuc3RmcmFtZS5sb2NhdGlvbj10aGlzLmZyYW1lVXJsKyIjZ2V0T2JqZWN0 LyIrU0hBUkVUSElTLmd1aWQrIi8iK3RoaXMuaWR4fTt0aGlzLmF0dGFjaEJ1dHRv bj1mdW5jdGlvbihjKXt0aGlzLmVsZW1lbnQ9YztjLnNldEF0dHJpYnV0ZSgic3Rf cGFnZSIsImhvbWUiKTtpZih0aGlzLm9wdGlvbnMub25tb3VzZW92ZXIpe2Mub25t b3VzZW92ZXI9dGhpcy5wb3B1cH1lbHNle2Mub25jbGljaz10aGlzLnBvcHVwfX07 dGhpcy5hdHRhY2hDaGlja2xldD1mdW5jdGlvbihmLGMpe3N3aXRjaChmKXtjYXNl ImZhY2Vib29rIjpjLnNldEF0dHJpYnV0ZSgic3RfZGVzdCIsImZhY2Vib29rLmNv bSIpO3ZhciBlPWMuY2hpbGROb2Rlcztmb3IodmFyIGQ9MDtkPGUubGVuZ3RoO2Qr Kyl7dmFyIGg9ZVtkXTt0cnl7aC5zZXRBdHRyaWJ1dGUoInN0X2Rlc3QiLCJmYWNl Ym9vay5jb20iKX1jYXRjaChnKXt9fWMub25jbGljaz10aGlzLmNoaWNrbGV0O2Jy ZWFrO2Nhc2UiZGlnZyI6Yy5zZXRBdHRyaWJ1dGUoInN0X2Rlc3QiLCJkaWdnLmNv bSIpO3ZhciBlPWMuY2hpbGROb2Rlcztmb3IodmFyIGQ9MDtkPGUubGVuZ3RoO2Qr Kyl7dmFyIGg9ZVtkXTt0cnl7aC5zZXRBdHRyaWJ1dGUoInN0X2Rlc3QiLCJkaWdn LmNvbSIpfWNhdGNoKGcpe319Yy5vbmNsaWNrPXRoaXMuY2hpY2tsZXQ7YnJlYWs7 Y2FzZSJ5YWhvb19idXp6IjpjLnNldEF0dHJpYnV0ZSgic3RfZGVzdCIsImJ1enou eWFob28uY29tIik7dmFyIGU9Yy5jaGlsZE5vZGVzO2Zvcih2YXIgZD0wO2Q8ZS5s ZW5ndGg7ZCsrKXt2YXIgaD1lW2RdO3RyeXtoLnNldEF0dHJpYnV0ZSgic3RfZGVz dCIsImJ1enoueWFob28uY29tIil9Y2F0Y2goZyl7fX1jLm9uY2xpY2s9dGhpcy5j aGlja2xldDticmVhaztjYXNlImVtYWlsIjpjLnNldEF0dHJpYnV0ZSgic3RfcGFn ZSIsInNlbmQiKTt2YXIgZT1jLmNoaWxkTm9kZXM7Zm9yKHZhciBkPTA7ZDxlLmxl bmd0aDtkKyspe3ZhciBoPWVbZF07dHJ5e2guc2V0QXR0cmlidXRlKCJzdF9wYWdl Iiwic2VuZCIpfWNhdGNoKGcpe319Yy5vbmNsaWNrPXRoaXMucG9wdXA7YnJlYWs7 Y2FzZSJ0d2l0dGVyIjpjLnNldEF0dHJpYnV0ZSgic3RfZGVzdCIsInR3aXR0ZXIu Y29tIik7dmFyIGU9Yy5jaGlsZE5vZGVzO2Zvcih2YXIgZD0wO2Q8ZS5sZW5ndGg7 ZCsrKXt2YXIgaD1lW2RdO3RyeXtoLnNldEF0dHJpYnV0ZSgic3RfZGVzdCIsInR3 aXR0ZXIuY29tIil9Y2F0Y2goZyl7fX1jLm9uY2xpY2s9dGhpcy5jaGlja2xldDti cmVhaztjYXNlIm15c3BhY2UiOmMuc2V0QXR0cmlidXRlKCJzdF9kZXN0IiwibXlz cGFjZS5jb20iKTt2YXIgZT1jLmNoaWxkTm9kZXM7Zm9yKHZhciBkPTA7ZDxlLmxl bmd0aDtkKyspe3ZhciBoPWVbZF07dHJ5e2guc2V0QXR0cmlidXRlKCJzdF9kZXN0 IiwibXlzcGFjZS5jb20iKX1jYXRjaChnKXt9fWMub25jbGljaz10aGlzLmNoaWNr bGV0O2JyZWFrO2Nhc2UiYWltIjpjLnNldEF0dHJpYnV0ZSgic3RfZGVzdCIsImFp bS5jb20iKTt2YXIgZT1jLmNoaWxkTm9kZXM7Zm9yKHZhciBkPTA7ZDxlLmxlbmd0 aDtkKyspe3ZhciBoPWVbZF07dHJ5e2guc2V0QXR0cmlidXRlKCJzdF9kZXN0Iiwi YWltLmNvbSIpfWNhdGNoKGcpe319Yy5vbmNsaWNrPXRoaXMuY2hpY2tsZXQ7YnJl YWs7Y2FzZSJtaXh4IjpjLnNldEF0dHJpYnV0ZSgic3RfZGVzdCIsIm1peHguY29t Iik7dmFyIGU9Yy5jaGlsZE5vZGVzO2Zvcih2YXIgZD0wO2Q8ZS5sZW5ndGg7ZCsr KXt2YXIgaD1lW2RdO3RyeXtoLnNldEF0dHJpYnV0ZSgic3RfZGVzdCIsIm1peHgu Y29tIil9Y2F0Y2goZyl7fX1jLm9uY2xpY2s9dGhpcy5jaGlja2xldDticmVha319 fWZ1bmN0aW9uIFNoYXJlVGhpcyhvcHRpb25zKXt0aGlzLnZlcnNpb249Mi4wMzt0 aGlzLnRtcFNlbmREYXRhPSIiO3RoaXMuc2VuZEFycmF5PVtdO3RoaXMuc2VuZElu aXQ9W107dGhpcy5zZW5kTnVtPTA7dGhpcy5ndWlkPW51bGw7dGhpcy5wb3BFeGlz dHM9ZmFsc2U7dGhpcy5wb3B1cF93aW49bnVsbDt0aGlzLm5ld3dpbmZyYWc9IiI7 dGhpcy5wYWdlPW51bGw7dGhpcy5zaGFyZWFibGVzPVtdO3RoaXMucmVhZHlMaXN0 PVtdO3RoaXMucG9zdFVybD0iIjt0aGlzLmZyYW1lVXJsPSIiO3RoaXMuY291bnRl cj0wO3RoaXMud3JhcHBlcj1udWxsO3RoaXMucmVhZHk9ZmFsc2U7dGhpcy5wb3B1 cENhbGxlZD1mYWxzZTt0aGlzLnJlZmVycmVyX3N0cz0iIjt0aGlzLnNocl9mbGFn PSIiO3RoaXMucHVibGlzaGVySUQ9bnVsbDt0aGlzLmJvZHlMb2FkZWQ9ZmFsc2U7 aWYob3B0aW9ucy5wdWJsaXNoZXIpe3RoaXMucHVibGlzaGVySUQ9b3B0aW9ucy5w dWJsaXNoZXJbMF19dGhpcy5zZXNzaW9uSURfdGltZT0obmV3IERhdGUoKSkuZ2V0 VGltZSgpLnRvU3RyaW5nKCk7dGhpcy5zZXNzaW9uSURfcmFuZD1OdW1iZXIoTWF0 aC5yYW5kb20oKS50b1ByZWNpc2lvbig1KS50b1N0cmluZygpLnN1YnN0cigyKSku dG9TdHJpbmcoKTt0aGlzLnNlc3Npb25JRD10aGlzLnNlc3Npb25JRF90aW1lKyIu Iit0aGlzLnNlc3Npb25JRF9yYW5kO29wdGlvbnMuc2Vzc2lvbklEPXRoaXMuc2Vz c2lvbklEO3RoaXMuZnBjPV9zdEZwYygpO29wdGlvbnMuZnBjPXRoaXMuZnBjO29w dGlvbnMucFVybD1lbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQubG9jYXRpb24u aHJlZik7dGhpcy53aWRnZXRDYWxsZWQ9ZmFsc2U7dGhpcy5sYXN0VXJsPSJibGFu ayI7dGhpcy5sb2dGbGFnPXRydWU7dGhpcy5jbG9zZWJ1dHRvbj1udWxsO3RoaXMu d2lkZ2V0RXhpc3RzPWZhbHNlO3RoaXMub2xkU2Nyb2xsPTA7dGhpcy5mcD1udWxs O3RoaXMuY3VycmVudElkPW51bGw7dGhpcy50b29sYmFyPWZhbHNlO3RoaXMuc3Rf Y2xpY2tlZD1mYWxzZTt0aGlzLnN0X2NsaWNrZWRfbz1udWxsO3RoaXMuY3Vycl9v ZmZzZXRUb3A9MDt0aGlzLmN1cnJfb2Zmc2V0TGVmdD0wO3RoaXMuZnJhbWVSZWFk eT1mYWxzZTt0aGlzLmRlbGF5U2hvdz1mYWxzZTt0aGlzLm51bUlmcmFtZT0wO3Ro aXMuZnJhbWVMb2FkZWQ9ZmFsc2U7dGhpcy5jdXJyX2lkPW51bGw7dGhpcy5jdXJy ZW50X2VsZW1lbnQ9bnVsbDt0aGlzLm9wdF9hcnI9W107dGhpcy5tb3VzZXRpbWVy PW51bGw7dGhpcy5hdXRvUG9zaXRpb249dHJ1ZTt0aGlzLm9wZW5EdXJhdGlvbj0w O3RoaXMuc3RvcENsb3Npbmc9ZmFsc2U7dGhpcy5pblRpbWU9MDt0aGlzLm91dFRp bWU9MDt0aGlzLmJ1dHRvbkNvdW50PTA7dGhpcy5idXR0b25DbGlja2VkPWZhbHNl O3RoaXMubWV0YT17cHVibGlzaGVyOiIiLGhvc3RuYW1lOmxvY2F0aW9uLmhvc3Qs bG9jYXRpb246bG9jYXRpb24ucGF0aG5hbWV9O3RoaXMucG9zaXRpb25XaWRnZXQ9 ZnVuY3Rpb24oKXt2YXIgaWQ9U0hBUkVUSElTLmN1cnJfaWQ7dmFyIHNoYXJlZWw9 U0hBUkVUSElTLmN1cnJlbnRfZWxlbWVudDtpZihzaGFyZWVsPT1udWxsKXtzaGFy ZWVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKX12YXIgY3VybGVmdD1jdXJ0 b3A9MDtpZihzaGFyZWVsLm9mZnNldFBhcmVudCl7Y3VybGVmdD1zaGFyZWVsLm9m ZnNldExlZnQ7Y3VydG9wPXNoYXJlZWwub2Zmc2V0VG9wO3doaWxlKHNoYXJlZWw9 c2hhcmVlbC5vZmZzZXRQYXJlbnQpe2N1cmxlZnQrPXNoYXJlZWwub2Zmc2V0TGVm dDtjdXJ0b3ArPXNoYXJlZWwub2Zmc2V0VG9wfX1zaGFyZWVsPVNIQVJFVEhJUy5j dXJyZW50X2VsZW1lbnQ7aWYoc2hhcmVlbD09bnVsbCl7c2hhcmVlbD1kb2N1bWVu dC5nZXRFbGVtZW50QnlJZChpZCl9dmFyIGVsdG9wPTA7dmFyIGVsbGVmdD0wO3Zh ciB0b3BWYWw9MDt2YXIgbGVmdFZhbD0wO3ZhciBlbGVtSD0wO3ZhciBlbGVtVz0w O2VsdG9wPWN1cnRvcCtzaGFyZWVsLm9mZnNldEhlaWdodCs1O2VsbGVmdD1jdXJs ZWZ0KzU7dG9wVmFsPShlbHRvcCtTSEFSRVRISVMuY3Vycl9vZmZzZXRUb3ApO3Rv cFZhbD1ldmFsKHRvcFZhbCk7ZWxlbUg9dG9wVmFsO3RvcFZhbCs9InB4IjtsZWZ0 VmFsPShlbGxlZnQrU0hBUkVUSElTLmN1cnJfb2Zmc2V0TGVmdCk7bGVmdFZhbD1l dmFsKGxlZnRWYWwpO2VsZW1XPWxlZnRWYWw7bGVmdFZhbCs9InB4IjtTSEFSRVRI SVMud3JhcHBlci5zdHlsZS50b3A9dG9wVmFsO1NIQVJFVEhJUy53cmFwcGVyLnN0 eWxlLmxlZnQ9bGVmdFZhbDtpZihTSEFSRVRISVMuYXV0b1Bvc2l0aW9uPT10cnVl KXtTSEFSRVRISVMub2xkU2Nyb2xsPWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wO3Zh ciBwZ2luZm89dGhpcy5wYWdlU2l6ZSgpO3ZhciBlZmZlY3RpdmVIPXBnaW5mby5o ZWlnaHQrcGdpbmZvLnNjclk7dmFyIGVmZmVjdGl2ZVc9cGdpbmZvLndpZHRoK3Bn aW5mby5zY3JYO3ZhciB3aWRnZXRIPTI4MDt2YXIgd2lkZ2V0Vz0zNTU7dmFyIG5l ZWRIPXdpZGdldEgrZWxlbUg7dmFyIG5lZWRXPXdpZGdldFcrZWxlbVc7dmFyIGRp ZmZIPW5lZWRILWVmZmVjdGl2ZUg7dmFyIGRpZmZXPW5lZWRXLWVmZmVjdGl2ZVc7 dmFyIG5ld0g9ZWxlbUgtZGlmZkg7dmFyIG5ld1c9ZWxlbVctZGlmZlc7ZnVuY3Rp b24gZ2V0SFcoZWxlbSl7dmFyIHJldEg9MDt2YXIgcmV0Vz0wO3doaWxlKGVsZW0h PW51bGwpe3JldEgrPWVsZW0ub2Zmc2V0VG9wO3JldFcrPWVsZW0ub2Zmc2V0TGVm dDtlbGVtPWVsZW0ub2Zmc2V0UGFyZW50fXJldHVybntoZWlnaHQ6cmV0SCx3aWR0 aDpyZXRXfX12YXIgYnV0dG9uUG9zPWdldEhXKHNoYXJlZWwpO3ZhciBsZWZ0QSxy aWdodEEsdG9wQSxib3R0b21BPWZhbHNlO2lmKGRpZmZIPjApe2JvdHRvbUE9ZmFs c2U7dG9wQT10cnVlO2lmKChidXR0b25Qb3MuaGVpZ2h0LXdpZGdldEgpPjApe25l d0g9YnV0dG9uUG9zLmhlaWdodC13aWRnZXRIfVNIQVJFVEhJUy53cmFwcGVyLnN0 eWxlLnRvcD1uZXdIKyJweCJ9aWYoZGlmZlc+MCl7bGVmdEE9ZmFsc2U7cmlnaHRB PXRydWU7aWYoKGJ1dHRvblBvcy53aWR0aC13aWRnZXRXKT4wKXtuZXdXPWJ1dHRv blBvcy53aWR0aC13aWRnZXRXfVNIQVJFVEhJUy53cmFwcGVyLnN0eWxlLmxlZnQ9 bmV3VysicHgifX1TSEFSRVRISVMud3JhcHBlci5zdHlsZS52aXNpYmlsaXR5PSJ2 aXNpYmxlIjtTSEFSRVRISVMubWFpbnN0ZnJhbWUuc3R5bGUudmlzaWJpbGl0eT0i dmlzaWJsZSJ9LHRoaXMuaGlkZVdpZGdldD1mdW5jdGlvbigpe2lmKFNIQVJFVEhJ Uy53cmFwcGVyLnN0eWxlLnZpc2liaWxpdHkhPT0iaGlkZGVuIil7U0hBUkVUSElT LndyYXBwZXIuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIn1pZihTSEFSRVRISVMu bWFpbnN0ZnJhbWUuc3R5bGUudmlzaWJpbGl0eSE9PSJoaWRkZW4iKXtTSEFSRVRI SVMubWFpbnN0ZnJhbWUuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIn19LHRoaXMu cGFnZVNpemU9ZnVuY3Rpb24oKXt2YXIgcFNjcm9sbD1bMCwwLDAsMF07dmFyIHNj WD0wO3ZhciBzY1k9MDt2YXIgd2luWD0wO3ZhciB3aW5ZPTA7aWYodHlwZW9mKHdp bmRvdy5wYWdlWU9mZnNldCk9PSJudW1iZXIiKXtzY1g9d2luZG93LnBhZ2VYT2Zm c2V0O3NjWT13aW5kb3cucGFnZVlPZmZzZXR9ZWxzZXtpZihkb2N1bWVudC5ib2R5 JiYoZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0fHxkb2N1bWVudC5ib2R5LnNjcm9s bFRvcCkpe3NjWD1kb2N1bWVudC5ib2R5LnNjcm9sbExlZnQ7c2NZPWRvY3VtZW50 LmJvZHkuc2Nyb2xsVG9wfWVsc2V7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50 JiYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnR8fGRvY3VtZW50 LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3ApKXtzY1g9ZG9jdW1lbnQuZG9jdW1l bnRFbGVtZW50LnNjcm9sbExlZnQ7c2NZPWRvY3VtZW50LmRvY3VtZW50RWxlbWVu dC5zY3JvbGxUb3B9fX1pZih3aW5kb3cuaW5uZXJXaWR0aCl7d2luWD13aW5kb3cu aW5uZXJXaWR0aDt3aW5ZPXdpbmRvdy5pbm5lckhlaWdodH1lbHNle2lmKGRvY3Vt ZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRXaWR0aCl7d2luWD1kb2N1bWVudC5k b2N1bWVudEVsZW1lbnQub2Zmc2V0V2lkdGg7d2luWT1kb2N1bWVudC5kb2N1bWVu dEVsZW1lbnQub2Zmc2V0SGVpZ2h0fX1wU2Nyb2xsPXtzY3JYOnNjWCxzY3JZOnNj WSx3aWR0aDp3aW5YLGhlaWdodDp3aW5ZfTtyZXR1cm4gcFNjcm9sbH07dGhpcy5w b3N0UG9wdXA9ZnVuY3Rpb24oKXtmaWVsZD1mdW5jdGlvbihrLHYpe3ZhciBmPWRv Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Zi50eXBlPSJoaWRkZW4iO2Yu bmFtZT1rO2YudmFsdWU9djtyZXR1cm4gZn07bm9ybWFsaXplPWZ1bmN0aW9uKHMp e2lmKHM9PW51bGwpe3JldHVybiIifXJldHVybiBlbmNvZGVVUklDb21wb25lbnQo cyl9O3ZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImZvcm0iKTtmLm1ldGhv ZD0icG9zdCI7Zi5hY3Rpb249U0hBUkVUSElTLnBvc3RVcmw7Zi50YXJnZXQ9InN0 cG9zdGZyYW1lIjt2YXIgdXJscz0iIjt2YXIgcHJvcGVydHlsaXN0PVtdO2Zvcih2 YXIgaT0wO2k8dGhpcy5zaGFyZWFibGVzLmxlbmd0aDtpKyspe3ZhciB0bXBfcHJv cD17fTt2YXIgbz10aGlzLnNoYXJlYWJsZXNbaV07dXJscz11cmxzK28ucHJvcGVy dGllcy51cmw7Zm9yKHAgaW4gby5wcm9wZXJ0aWVzKXtpZihTSEFSRVRISVNfdHN0 T3B0aW9ucyhwKT09dHJ1ZSl7dG1wX3Byb3BbcF09by5wcm9wZXJ0aWVzW3BdfX1w cm9wZXJ0eWxpc3QucHVzaCh0bXBfcHJvcCl9dmFyIGpzb25zdHI9U1RfSlNPTi5l bmNvZGUocHJvcGVydHlsaXN0KTt0aGlzLmd1aWQ9aGFzaF9wYWdlKHVybHMpO2Yu YXBwZW5kQ2hpbGQoZmllbGQoImtleSIsdGhpcy5ndWlkKSk7Zi5hcHBlbmRDaGls ZChmaWVsZCgiZGF0YSIsbm9ybWFsaXplKGpzb25zdHIpKSk7ZG9jdW1lbnQuYm9k eS5hcHBlbmRDaGlsZChmKTtmLnN1Ym1pdCgpfTt0aGlzLmFkZEVudHJ5PWZ1bmN0 aW9uKHByb3BlcnRpZXMsb3B0aW9ucyl7aWYoX3RoaXNTY3JpcHQ9PT1udWxsKXt2 YXIgdG1wU2NyPWdldFNoYXJlVGhpc1NjcmlwdCgpO1NIQVJFVEhJUy5vcHRpb25z PXBhcnNlUXVlcnlTdHJpbmcodG1wU2NyLnNyYyk7dGhpcy5mcmFtZVVybD0iaHR0 cDovL3dkLnNoYXJldGhpcy5jb20vc2hhcmUzeC9saWdodGJveC5hNjAyMTFlZTAw YjVjNTA0MmE4OGM1MjFhNDJhNDE1Yi5odG1sIjt0aGlzLnBvc3RVcmw9Imh0dHA6 Ly93ZC5zaGFyZXRoaXMuY29tL2FwaS9zZXRDYWNoZV93cy5waHAiO2lmKFNIQVJF VEhJUy5vcHRpb25zLmJ1dHRvbil7U0hBUkVUSElTLm9wdGlvbnMuYnV0dG9uPVNI QVJFVEhJUy5nZXRCb29sKFNIQVJFVEhJUy5vcHRpb25zLmJ1dHRvbi50b1N0cmlu ZygpKX1pZihTSEFSRVRISVMub3B0aW9ucy5wb3B1cCl7U0hBUkVUSElTLm9wdGlv bnMucG9wdXA9U0hBUkVUSElTLmdldEJvb2woU0hBUkVUSElTLm9wdGlvbnMucG9w dXAudG9TdHJpbmcoKSl9aWYoU0hBUkVUSElTLm9wdGlvbnMuZW1iZWRzKXtTSEFS RVRISVMub3B0aW9ucy5lbWJlZHM9U0hBUkVUSElTLmdldEJvb2woU0hBUkVUSElT Lm9wdGlvbnMuZW1iZWRzLnRvU3RyaW5nKCkpfXZhciBpbml0PSIjaW5pdCI7U0hB UkVUSElTLm5ld3dpbmZyYWc9IiNwb3B1cCI7Zm9yKHZhciBvIGluIFNIQVJFVEhJ Uy5vcHRpb25zKXtpZihTSEFSRVRISVNfdHN0T3B0aW9ucyhvKT09dHJ1ZSl7aW5p dD1pbml0KyIvIitvKyI9IitlbmNvZGVVUklDb21wb25lbnQob3B0aW9uc1tvXSk7 dGhpcy5uZXd3aW5mcmFnPXRoaXMubmV3d2luZnJhZysiLyIrbysiPSIrZW5jb2Rl VVJJQ29tcG9uZW50KG9wdGlvbnNbb10pfX1TSEFSRVRISVMuaW5pdHN0cj1pbml0 O1NIQVJFVEhJUy5tYWluc3RmcmFtZS5zcmM9U0hBUkVUSElTLmZyYW1lVXJsK1NI QVJFVEhJUy5pbml0c3RyfXZhciBvPW5ldyBTaGFyZWFibGUocHJvcGVydGllcyxT SEFSRVRISVNfbWVyZ2UoU0hBUkVUSElTLm9wdGlvbnMsb3B0aW9ucykpO2lmKHR5 cGVvZihvLnByb3BlcnRpZXMudXJsKT09PSJvYmplY3QiKXt0cnl7by5wcm9wZXJ0 aWVzLnVybD1vLnByb3BlcnRpZXMudXJsLmhyZWZ9Y2F0Y2goZXJyKXt9fWZvcih2 YXIgcHJvcCBpbiBvLnByb3BlcnRpZXMpe3RyeXtvLnByb3BlcnRpZXNbcHJvcF09 by5wcm9wZXJ0aWVzW3Byb3BdLnRvU3RyaW5nKCl9Y2F0Y2goZXJyKXt9fXZhciB4 SW50PSIiO3ZhciB4SW50Mj0iIjt2YXIgc2VuZERhdGFJbnQ9IiI7dmFyIHNlbmRQ b3B1cERhdGFJbnQ9IiI7aWYodGhpcy5tZXRhLnB1Ymxpc2hlcj09IjVhZmVhOTgz LWU0NDktNGE3NS1hNDY0LTNjOWE3ZjZjNmUzNyJ8fHRoaXMubWV0YS5wdWJsaXNo ZXI9PSJlMWUwZWE1YS1hMzI2LTQ3MzEtYjFkMS1mMjE2MjMwNDM1MTEifHx0aGlz Lm1ldGEucHVibGlzaGVyPT0iY2NkMmExNTgtNmNjZS00YmJjLWFmYTgtMWQyZGM2 MmZlODRjInx8dGhpcy5tZXRhLnB1Ymxpc2hlcj09IjFlNTQyZDZmLTU0NmYtNGQ4 NS1hNzkwLWJiYWYzMzMxNTViNyJ8fHRoaXMubWV0YS5wdWJsaXNoZXI9PSI5ZDFh NjVhZC00NWYxLTQyNTktYTZlNC00MWE5YjQyZDgzN2MifHx0aGlzLm1ldGEucHVi bGlzaGVyPT0iNWFmZWE5ODMtZTQ0OS00YTc1LWE0NjQtM2M5YTdmNmM2ZTM3Inx8 dGhpcy5tZXRhLnB1Ymxpc2hlcj09Ijg5ODc5MTc3LTUxYmYtNGNmMC05MWM5LTYz MjZkMDYyZDVlNiJ8fHRoaXMubWV0YS5wdWJsaXNoZXI9PSI0NGI2YjhhNC1jOGRm LTRiZDAtOGQ4ZC1lNmFkMjdlYzYzZjQiKXtvLm9wdGlvbnMub25tb3VzZW92ZXI9 ZmFsc2V9aWYoU0hBUkVUSElTLm9wdGlvbnMub25tb3VzZW92ZXIpe2lmKFNIQVJF VEhJUy5vcHRpb25zLm9ubW91c2VvdmVyPT0idHJ1ZSIpe28ub3B0aW9ucy5vbm1v dXNlb3Zlcj10cnVlfWVsc2V7aWYoU0hBUkVUSElTLm9wdGlvbnMub25tb3VzZW92 ZXI9PSJmYWxzZSIpe28ub3B0aW9ucy5vbm1vdXNlb3Zlcj1mYWxzZX19fWlmKG8u b3B0aW9ucy5wb3B1cCl7by5vcHRpb25zLm9ubW91c2VvdmVyPWZhbHNlO1NIQVJF VEhJUy5wb3B1cEV4aXN0cz10cnVlfWVsc2V7aWYoU0hBUkVUSElTX1RPT0xCQVIh PT10cnVlKXtTSEFSRVRISVMud2lkZ2V0RXhpc3RzPXRydWV9fW8uaWR4PXRoaXMu c2hhcmVhYmxlcy5wdXNoKG8pLTE7dmFyIGlkPSJzaGFyZXRoaXNfIitvLmlkeDt2 YXIgb2lkeD1vLmlkeDtpZihvLnByb3BlcnRpZXMudXJsIT09dGhpcy5sYXN0VXJs KXt0aGlzLmxhc3RVcmw9by5wcm9wZXJ0aWVzLnVybH1lbHNle1NIQVJFVEhJUy5s b2dGbGFnPWZhbHNlfW8uY2hpY2tsZXQ9ZnVuY3Rpb24oZSl7aWYoIWUpe3ZhciBl PXdpbmRvdy5ldmVudH1pZihlLnRhcmdldCl7by50cmlnZ2VyPWUudGFyZ2V0fWVs c2V7aWYoZS5zcmNFbGVtZW50KXtvLnRyaWdnZXI9ZS5zcmNFbGVtZW50fX12YXIg ZGVzdD1vLnRyaWdnZXIuZ2V0QXR0cmlidXRlKCJzdF9kZXN0Iik7dmFyIGxvZ2dl clVybD0iaHR0cDovL2wuc2hhcmV0aGlzLmNvbS9sb2c/ZXZlbnQ9Y2xpY2smc291 cmNlPWNoaWNrbGV0JnB1Ymxpc2hlcj0iK2VuY29kZVVSSUNvbXBvbmVudChTSEFS RVRISVMub3B0aW9ucy5wdWJsaXNoZXIpKyImaG9zdG5hbWU9IitlbmNvZGVVUklD b21wb25lbnQoU0hBUkVUSElTLm1ldGEuaG9zdG5hbWUpKyImbG9jYXRpb249Iitl bmNvZGVVUklDb21wb25lbnQoU0hBUkVUSElTLm1ldGEubG9jYXRpb24pKyImZGVz dGluYXRpb25zPSIrZGVzdCsiJnRzIisobmV3IERhdGUoKSkuZ2V0VGltZSgpKyIm dGl0bGU9IitlbmNvZGVVUklDb21wb25lbnQoby5wcm9wZXJ0aWVzLnRpdGxlKSsi JnVybD0iK2VuY29kZVVSSUNvbXBvbmVudChvLnByb3BlcnRpZXMudXJsKSsiJnNl c3Npb25JRD0iK1NIQVJFVEhJUy5vcHRpb25zLnNlc3Npb25JRCsiJmZwYz0iK1NI QVJFVEhJUy5vcHRpb25zLmZwYzt2YXIgbG9nZ2VyPW5ldyBJbWFnZSgxLDEpO2xv Z2dlci5zcmM9bG9nZ2VyVXJsO2xvZ2dlci5vbmxvYWQ9ZnVuY3Rpb24oKXtyZXR1 cm59O3ZhciB1cmw9Imh0dHA6Ly93ZC5zaGFyZXRoaXMuY29tL2J1dHRvbi9yZWRp cmVjdC5waHAiO3VybCs9Ij9kPSIrZGVzdDt1cmwrPSImcGs9IitTSEFSRVRISVMu b3B0aW9ucy5wdWJsaXNoZXI7dXJsKz0iJnM9IitTSEFSRVRISVMub3B0aW9ucy5z ZXNzaW9uSUQ7dXJsKz0iJnA9IitlbmNvZGVVUklDb21wb25lbnQoU1RfSlNPTi5l bmNvZGUoby5wcm9wZXJ0aWVzKSk7d2luZG93Lm9wZW4odXJsLCJzdHBvcHVwIiwi d2lkdGg9OTcwLGhlaWdodD03MDAsbG9jYXRpb249MSx0b29sYmFyPTEsc2Nyb2xs YmFycz0xLG1lbnViYXI9MSxyZXNpemFibGU9MSIpfTtvLnBvcHVwPWZ1bmN0aW9u KGUpe3N0Q2FuY2VsQ2xvc2UoKTtvLm9wdGlvbnMuYXV0b2Nsb3NlPXRydWU7U0hB UkVUSElTLnBvc3RFbnRyaWVzKG8pO2lmKFNIQVJFVEhJU19UT09MQkFSPT09dHJ1 ZSl7aWYoc3Rfc2hvd2luZz09PWZhbHNlKXtTSEFSRVRISVMubG9nKCJ3aWRnZXQi LG8sInRvb2xiYXIiKX1zdF9zaG93aW5nPXRydWU7Y2xlYXJJbnRlcnZhbChzdFZp c2libGVJbnRlcnZhbCk7YWRkZWRfdG9vbD0iL2dsb190b29sYmFyPXRydWUiO1NI QVJFVEhJUy5oaWRlRW1iZWRzKCk7dmFyIHBndmFsPSIiO2lmKFNIQVJFVEhJUy5w YWdlIT1udWxsKXtwZ3ZhbD0iL3BhZ2U9IitTSEFSRVRISVMucGFnZX1TSEFSRVRI SVMubWFpbnN0ZnJhbWUuc3JjPVNIQVJFVEhJUy5mcmFtZVVybCtTSEFSRVRISVMu bmV3d2luZnJhZysiL2d1aWRfaW5kZXg9MC9ndWlkPSIrU0hBUkVUSElTLmd1aWQr YWRkZWRfdG9vbCtwZ3ZhbDtTSEFSRVRISVMud3JhcHBlci5zdHlsZS52aXNpYmls aXR5PSJ2aXNpYmxlIjtTSEFSRVRISVMubWFpbnN0ZnJhbWUuc3R5bGUudmlzaWJp bGl0eT0idmlzaWJsZSJ9ZWxzZXtpZigoU0hBUkVUSElTLnJlYWR5PT09dHJ1ZSYm U0hBUkVUSElTLmZyYW1lUmVhZHk9PT10cnVlKXx8KFNIQVJFVEhJUy5wb3B1cEV4 aXN0cz09PXRydWUmJlNIQVJFVEhJUy5yZWFkeT09dHJ1ZSYmU0hBUkVUSElTLndp ZGdldEV4aXN0cz09PWZhbHNlKXx8KFNIQVJFVEhJUy5wb3B1cEV4aXN0cz09PXRy dWUmJlNIQVJFVEhJUy5yZWFkeT09dHJ1ZSYmU0hBUkVUSElTLmZyYW1lUmVhZHk9 PT10cnVlKSl7Y2xlYXJJbnRlcnZhbChzdFZpc2libGVJbnRlcnZhbCk7aWYoKHR5 cGVvZihlKSE9InVuZGVmaW5lZCImJnR5cGVvZihlKSE9InVua25vd24iJiZlKXx8 KHR5cGVvZihldmVudCkhPSJ1bmRlZmluZWQiJiZ0eXBlb2YoZXZlbnQpIT0idW5r bm93biImJmV2ZW50KSl7aWYodHlwZW9mKGUpIT0idW5kZWZpbmVkIiYmdHlwZW9m KGUpIT0idW5rbm93biImJmUpe28udHJpZ2dlcj1lLnRhcmdldH1lbHNle2lmKHR5 cGVvZihldmVudCkhPSJ1bmRlZmluZWQiJiZ0eXBlb2YoZXZlbnQpIT0idW5rbm93 biImJmV2ZW50KXtvLnRyaWdnZXI9ZXZlbnQuc3JjRWxlbWVudH19aWYoby50cmln Z2VyIT09bnVsbCYmby50cmlnZ2VyKXtpZD1vLnRyaWdnZXIuaWQ7U0hBUkVUSElT LmN1cnJlbnRfZWxlbWVudD1vLnRyaWdnZXI7by5wYWdlPW8udHJpZ2dlci5nZXRB dHRyaWJ1dGUoInN0X3BhZ2UiKTtpZihzdF9zaG93aW5nPT09ZmFsc2Upe2lmKG8u cGFnZT09ImhvbWUiKXtTSEFSRVRISVMubG9nKCJ3aWRnZXQiLG8sImJ1dHRvbiIp fWVsc2V7U0hBUkVUSElTLmxvZygid2lkZ2V0IixvLCJjaGlja2xldCIpfX19ZWxz ZXtvLnBhZ2U9ImhvbWUiO2lmKHN0X3Nob3dpbmc9PT1mYWxzZSl7U0hBUkVUSElT LmxvZygid2lkZ2V0IixvLCJidXR0b24iKX19fWVsc2V7aWYoby5lbGVtZW50IT1u dWxsKXtpZD1vLmVsZW1lbnQuaWQ7U0hBUkVUSElTLmN1cnJlbnRfZWxlbWVudD1v LmVsZW1lbnR9by5wYWdlPSJob21lIjtpZihzdF9zaG93aW5nPT09ZmFsc2Upe1NI QVJFVEhJUy5sb2coIndpZGdldCIsbywiYnV0dG9uIil9fXZhciBwYWdlRnJhZz0i L3BhZ2U9IitvLnBhZ2U7U0hBUkVUSElTLmN1cnJfb2Zmc2V0VG9wPU51bWJlcihv Lm9wdGlvbnMub2Zmc2V0VG9wKTtTSEFSRVRISVMuY3Vycl9vZmZzZXRMZWZ0PU51 bWJlcihvLm9wdGlvbnMub2Zmc2V0TGVmdCk7aWYoU0hBUkVUSElTLmN1cnJfb2Zm c2V0VG9wPjB8fFNIQVJFVEhJUy5jdXJyX29mZnNldFRvcD4wKXtTSEFSRVRISVMu YXV0b1Bvc2l0aW9uPWZhbHNlfVNIQVJFVEhJUy5jdXJyX2lkPWlkO2lmKG8ub3B0 aW9ucy5vbmNsaWNrKXt2YXIgcmVzPW8ub3B0aW9ucy5vbmNsaWNrLmFwcGx5KGRv Y3VtZW50LFtvXSk7aWYocmVzPT1mYWxzZSl7cmV0dXJuIGZhbHNlfX1pZihvLm9w dGlvbnMucG9wdXApe3ZhciBuZXd3aW51cmw9U0hBUkVUSElTLmZyYW1lVXJsK1NI QVJFVEhJUy5uZXd3aW5mcmFnKyIvZ3VpZF9pbmRleD0wL2d1aWQ9IitTSEFSRVRI SVMuZ3VpZCtwYWdlRnJhZzt3aW5kb3cub3BlbihuZXd3aW51cmwsIm5ld3N0ZnJh bWUiLCJzdGF0dXM9MSx0b29sYmFyPTAsd2lkdGg9MzUzLGhlaWdodD01OTgiKX1l bHNle2lmKHN0X3Nob3dpbmc9PWZhbHNlKXtpZihvLm9wdGlvbnMuZW1iZWRzPT1m YWxzZSl7U0hBUkVUSElTLmhpZGVFbWJlZHMoKX1zdGF1dG9jbG9zZT1vLm9wdGlv bnMuYXV0b2Nsb3NlO2lmKFNIQVJFVEhJUy5zZW5kTnVtPFNIQVJFVEhJUy5zZW5k QXJyYXkubGVuZ3RoKXt2YXIgdGVtcGFycj1bXTtTSEFSRVRISVMuc2VuZEFycmF5 LnB1c2goIiNzaG93L2d1aWRfaW5kZXg9MCIrcGFnZUZyYWcpO2lmKFNIQVJFVEhJ Uy5kZWxheVNob3c9PT10cnVlKXtzZW5kRGF0YUludD1zZXRUaW1lb3V0KFNIQVJF VEhJUy5zZW5kRGF0YSwxMDAwKX1lbHNle3NlbmREYXRhSW50PXNldFRpbWVvdXQo U0hBUkVUSElTLnNlbmREYXRhLDIwKX19ZWxzZXt3aW5kb3cuZnJhbWVzLnN0ZnJh bWUubG9jYXRpb24ucmVwbGFjZShTSEFSRVRISVMuZnJhbWVVcmwrIiNzaG93L2d1 aWRfaW5kZXg9MCIrcGFnZUZyYWcpO2lmKFNIQVJFVEhJUy5kZWxheVNob3c9PT10 cnVlKXtzZW5kRGF0YUludD1zZXRUaW1lb3V0KFNIQVJFVEhJUy5zZW5kRGF0YSwx MDAwKX1lbHNle3NlbmREYXRhSW50PXNldFRpbWVvdXQoU0hBUkVUSElTLnNlbmRE YXRhLDIwKX19U0hBUkVUSElTLnBvc2l0aW9uV2lkZ2V0KCk7c3Rfc2hvd2luZz10 cnVlfWVsc2V7aWYoby5vcHRpb25zLm9ubW91c2VvdmVyPT1mYWxzZXx8by5vcHRp b25zLm9ubW91c2VvdmVyPT0iZmFsc2UiKXtzdGNsb3NlV2lkZ2V0KCl9fX19ZWxz ZXtTSEFSRVRISVMuc3RfY2xpY2tlZD10cnVlO1NIQVJFVEhJUy5kZWxheVNob3c9 dHJ1ZTtTSEFSRVRISVMuc3RfY2xpY2tlZF9vPW99fX07dmFyIHN0eWxlPW8ub3B0 aW9ucy5zdHlsZT9vLm9wdGlvbnMuc3R5bGU6KFNIQVJFVEhJUy5vcHRpb25zLnN0 eWxlP1NIQVJFVEhJUy5vcHRpb25zLnN0eWxlOiJkZWZhdWx0Iik7c3dpdGNoKHN0 eWxlKXtjYXNlInZlcnRpY2FsIjp2YXIgb3ZyPWRvY3VtZW50LmNyZWF0ZUVsZW1l bnQoImRpdiIpO292ci5jbGFzc05hbWU9InN0b3ZlcmxheSI7by5idXR0b249b3Zy O3ZhciBpbWc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7aW1nLnNldEF0 dHJpYnV0ZSgic3JjIiwiaHR0cDovL3cuc2hhcmV0aGlzLmNvbS9pbWFnZXMvdmJ1 dHRvbi5naWYiKTtpZihvLm9wdGlvbnMub25tb3VzZW92ZXI9PWZhbHNlfHxvLm9w dGlvbnMub25tb3VzZW92ZXI9PSJmYWxzZSIpe292ci5vbmNsaWNrPW8ucG9wdXB9 aWYoby5vcHRpb25zLm9ubW91c2VvdmVyPT10cnVlfHxvLm9wdGlvbnMub25tb3Vz ZW92ZXI9PSJ0cnVlIil7b3ZyLm9uY2xpY2s9ZnVuY3Rpb24oKXtzdENhbmNlbENs b3NlKCl9O292ci5vbm1vdXNlb3Zlcj1mdW5jdGlvbigpe3N0Q2FuY2VsQ2xvc2Uo KTtTSEFSRVRISVMubW91c2V0aW1lcj1zZXRUaW1lb3V0KG8ucG9wdXAsMTUwKX07 b3ZyLm9ubW91c2VvdXQ9ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKFNIQVJFVEhJ Uy5tb3VzZXRpbWVyKTtzdENsb3NlKCl9fXRyeXtpZihvLm9wdGlvbnMuYnV0dG9u PT10cnVlJiZTSEFSRVRISVMuYm9keUxvYWRlZD09ZmFsc2Upe2RvY3VtZW50Lndy aXRlKCc8ZGl2IGNsYXNzPSJzdGJ1dHRvbiB2ZXJ0aWNhbCIgaWQ9IicraWQrJyI+ PC9kaXY+Jyl9fWNhdGNoKGVycil7fXZhciB4PWRvY3VtZW50LmdldEVsZW1lbnRC eUlkKGlkKTtpZih4KXtpZihvLm9wdGlvbnMuYnV0dG9uKXt4LmFwcGVuZENoaWxk KG92cik7eC5hcHBlbmRDaGlsZChpbWcpfX1icmVhaztjYXNlImhvcml6b250YWwi OmNhc2UidmVydGljYWwiOnZhciBvdnI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi ZGl2Iik7b3ZyLmNsYXNzTmFtZT0ic3RvdmVybGF5IjtvLmJ1dHRvbj1vdnI7dmFy IGltZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtpbWcuc2V0QXR0cmli dXRlKCJzcmMiLCJodHRwOi8vdy5zaGFyZXRoaXMuY29tL2ltYWdlcy9oYnV0dG9u LmdpZiIpO2lmKG8ub3B0aW9ucy5vbm1vdXNlb3Zlcj09ZmFsc2V8fG8ub3B0aW9u cy5vbm1vdXNlb3Zlcj09ImZhbHNlIil7b3ZyLm9uY2xpY2s9by5wb3B1cH1pZihv Lm9wdGlvbnMub25tb3VzZW92ZXI9PXRydWV8fG8ub3B0aW9ucy5vbm1vdXNlb3Zl cj09InRydWUiKXtvdnIub25jbGljaz1mdW5jdGlvbigpe3N0Q2FuY2VsQ2xvc2Uo KX07b3ZyLm9ubW91c2VvdmVyPWZ1bmN0aW9uKCl7c3RDYW5jZWxDbG9zZSgpO1NI QVJFVEhJUy5tb3VzZXRpbWVyPXNldFRpbWVvdXQoby5wb3B1cCwxNTApfTtvdnIu b25tb3VzZW91dD1mdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwoU0hBUkVUSElTLm1v dXNldGltZXIpO3N0Q2xvc2UoKX19dHJ5e2lmKG8ub3B0aW9ucy5idXR0b249PXRy dWUmJlNIQVJFVEhJUy5ib2R5TG9hZGVkPT1mYWxzZSl7ZG9jdW1lbnQud3JpdGUo JzxkaXYgY2xhc3M9InN0YnV0dG9uIGhvcml6b250YWwiIGlkPSInK2lkKyciPjwv ZGl2PicpfX1jYXRjaChlcnIpe312YXIgeD1kb2N1bWVudC5nZXRFbGVtZW50QnlJ ZChpZCk7aWYoeCl7aWYoby5vcHRpb25zLmJ1dHRvbil7eC5hcHBlbmRDaGlsZChv dnIpO3guYXBwZW5kQ2hpbGQoaW1nKX19YnJlYWs7ZGVmYXVsdDp2YXIgYT1kb2N1 bWVudC5jcmVhdGVFbGVtZW50KCJhIik7YS5jbGFzc05hbWU9InN0YnV0dG9uIHN0 aWNvXyIrKG8ub3B0aW9ucy5zdHlsZT9vLm9wdGlvbnMuc3R5bGU6KFNIQVJFVEhJ Uy5vcHRpb25zLnN0eWxlP1NIQVJFVEhJUy5vcHRpb25zLnN0eWxlOiJkZWZhdWx0 IikpO2EudGl0bGU9IlNoYXJlVGhpcyB2aWEgZW1haWwsIEFJTSwgc29jaWFsIGJv b2ttYXJraW5nIGFuZCBuZXR3b3JraW5nIHNpdGVzLCBldGMuIjthLmhyZWY9Imph dmFzY3JpcHQ6dm9pZCgwKSI7YS5zZXRBdHRyaWJ1dGUoInN0X3BhZ2UiLCJob21l Iik7aWYoby5vcHRpb25zLm9ubW91c2VvdmVyPT1mYWxzZXx8by5vcHRpb25zLm9u bW91c2VvdmVyPT0iZmFsc2UiKXthLm9uY2xpY2s9by5wb3B1cH1pZihvLm9wdGlv bnMub25tb3VzZW92ZXI9PXRydWV8fG8ub3B0aW9ucy5vbm1vdXNlb3Zlcj09InRy dWUiKXthLm9uY2xpY2s9ZnVuY3Rpb24oKXtzdENhbmNlbENsb3NlKCl9O2Eub25t b3VzZW92ZXI9ZnVuY3Rpb24oKXtzdENhbmNlbENsb3NlKCk7U0hBUkVUSElTLm1v dXNldGltZXI9c2V0VGltZW91dChvLnBvcHVwLDE1MCl9O2Eub25tb3VzZW91dD1m dW5jdGlvbigpe2NsZWFySW50ZXJ2YWwoU0hBUkVUSElTLm1vdXNldGltZXIpO3N0 Q2xvc2UoKX19dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3Qu Y2xhc3NOYW1lPSJzdGJ1dHRvbnRleHQiO3Quc2V0QXR0cmlidXRlKCJzdF9wYWdl IiwiaG9tZSIpO3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo by5vcHRpb25zLmJ1dHRvblRleHQpKTthLmFwcGVuZENoaWxkKHQpO28uYnV0dG9u PWE7dHJ5e2lmKG8ub3B0aW9ucy5idXR0b249PXRydWUmJlNIQVJFVEhJUy5ib2R5 TG9hZGVkPT1mYWxzZSl7ZG9jdW1lbnQud3JpdGUoJzxzcGFuIGlkPSInK2lkKyci Pjwvc3Bhbj4nKX19Y2F0Y2goZXJyKXt9dmFyIHg9ZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQoaWQpO2lmKHgpe2lmKG8ub3B0aW9ucy5idXR0b24pe3guYXBwZW5kQ2hp bGQoYSl9fX1pZihTSEFSRVRISVMubG9nRmxhZyl7U0hBUkVUSElTLmJ1dHRvbkNv dW50Kyt9cmV0dXJuIG99LHRoaXMucG9zdEVudHJpZXM9ZnVuY3Rpb24obyl7U0hB UkVUSElTLnNlbmROdW09MDt2YXIgdXJscz0iIjt2YXIgcHJvcGVydHlsaXN0PVtd O3ZhciB0bXBfcHJvcD17fTt1cmxzPXVybHMrby5wcm9wZXJ0aWVzLnVybDtmb3Io cCBpbiBvLnByb3BlcnRpZXMpe2lmKFNIQVJFVEhJU190c3RPcHRpb25zKHApPT10 cnVlKXt0bXBfcHJvcFtwXT1udWxsO3RtcF9wcm9wW3BdPW8ucHJvcGVydGllc1tw XX19cHJvcGVydHlsaXN0LnB1c2godG1wX3Byb3ApO3ZhciB0bXA9Ii9wYWdlVGl0 bGU9IitlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KGRvY3Vt ZW50LnRpdGxlKSkrIi9wYWdlVVJMPSIrZW5jb2RlVVJJQ29tcG9uZW50KGVuY29k ZVVSSUNvbXBvbmVudChkb2N1bWVudC5VUkwpKSsiL3BhZ2VIb3N0PSIrZW5jb2Rl VVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5sb2NhdGlv bi5ob3N0KSkrIi9wYWdlUGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudChlbmNvZGVV UklDb21wb25lbnQoZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUpKTtTSEFSRVRI SVMuc2VuZEFycmF5LnB1c2goIiNkYXRhIit0bXApO3ZhciBqc29uc3RyPVNUX0pT T04uZW5jb2RlKHByb3BlcnR5bGlzdCk7dmFyIHRtcD1lbmNvZGVVUklDb21wb25l bnQoanNvbnN0cik7dmFyIGI9dG1wLmxlbmd0aDt2YXIgYT0xNzAwO3ZhciBjPXBh cnNlSW50KGIvYSk7Yz1jKzE7dmFyIGQ9YiVhO3ZhciBzZW5kQXJyPVtdO3ZhciB0 bXBTZW5kPSIiO2Zvcih2YXIgaT0wO2k8YztpKyspe3NlbmRBcnIucHVzaCh0bXAu c3Vic3RyaW5nKGkqYSwoaSphKSthKSl9Zm9yKHZhciBpPTA7aTxzZW5kQXJyLmxl bmd0aDtpKyspe3RtcFNlbmQ9IiNkYXRhL2pzb25EYXRhPSIrZW5jb2RlVVJJQ29t cG9uZW50KHNlbmRBcnJbaV0pO1NIQVJFVEhJUy5zZW5kQXJyYXkucHVzaCh0bXBT ZW5kKX1TSEFSRVRISVMuc2VuZEFycmF5LnB1c2goIiNkYXRhL2pzb25EYXRhPWRv bmUiKX0sdGhpcy5zZW5kRGF0YT1mdW5jdGlvbigpe3hJbnQ9c2V0SW50ZXJ2YWwo U0hBUkVUSElTLnNlbmRKU09OLDUwKX0sdGhpcy5zZW5kSlNPTj1mdW5jdGlvbigp e2lmKFNIQVJFVEhJUy5zZW5kTnVtPFNIQVJFVEhJUy5zZW5kQXJyYXkubGVuZ3Ro KXt3aW5kb3cuZnJhbWVzLnN0ZnJhbWUubG9jYXRpb24ucmVwbGFjZShTSEFSRVRI SVMuZnJhbWVVcmwrU0hBUkVUSElTLnNlbmRBcnJheVtTSEFSRVRISVMuc2VuZE51 bV0pfWVsc2V7Y2xlYXJJbnRlcnZhbCh4SW50KX1TSEFSRVRISVMuc2VuZE51bSsr fSx0aGlzLmRlZmVyPWZ1bmN0aW9uKGYpe2lmKHRoaXMucmVhZHkpe2YuYXBwbHko ZG9jdW1lbnQsW1NIQVJFVEhJU10pfWVsc2V7dGhpcy5yZWFkeUxpc3QucHVzaChm dW5jdGlvbigpe3JldHVybiBmLmFwcGx5KHRoaXMsW1NIQVJFVEhJU10pfSl9fSx0 aGlzLm9uUmVhZHk9ZnVuY3Rpb24oKXtTSEFSRVRISVMucmVhZHk9dHJ1ZTtmb3Io dmFyIGk9MDtpPFNIQVJFVEhJUy5yZWFkeUxpc3QubGVuZ3RoOysraSl7U0hBUkVU SElTLnJlYWR5TGlzdFtpXS5hcHBseShkb2N1bWVudCxbU0hBUkVUSElTXSl9fSx0 aGlzLmxvYWQ9ZnVuY3Rpb24odCxvcHRzKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVF bGVtZW50KHQpO2Zvcih2YXIgaSBpbiBvcHRzKXtlLnNldEF0dHJpYnV0ZShpLG9w dHNbaV0pfXRyeXtkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIp WzBdLmFwcGVuZENoaWxkKGUpfWNhdGNoKGVycil7ZG9jdW1lbnQuYm9keS5hcHBl bmRDaGlsZChlKX19LHRoaXMuaGlkZUVtYmVkcz1mdW5jdGlvbigpe3ZhciBlbWJl ZHM9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImVtYmVkIik7Zm9yKHZh ciBpPTA7aTxlbWJlZHMubGVuZ3RoO2krKyl7ZW1iZWRzW2ldLnN0eWxlLnZpc2li aWxpdHk9ImhpZGRlbiJ9fSx0aGlzLnNob3dFbWJlZHM9ZnVuY3Rpb24oKXt2YXIg ZW1iZWRzPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJlbWJlZCIpO2Zv cih2YXIgaT0wO2k8ZW1iZWRzLmxlbmd0aDtpKyspe2VtYmVkc1tpXS5zdHlsZS52 aXNpYmlsaXR5PSJ2aXNpYmxlIn19LHRoaXMubG9nPWZ1bmN0aW9uKGV2ZW50LG9i aixzb3VyY2Upe3ZhciBsdXJsPSJodHRwOi8vbC5zaGFyZXRoaXMuY29tL2xvZz9l dmVudD0iO2lmKGV2ZW50PT0icHZpZXciKXtsdXJsPSJodHRwOi8vbC5zaGFyZXRo aXMuY29tL3B2aWV3P2V2ZW50PSJ9dmFyIGFkZGl0aW9uYWw9ZGJySW5mbygpO2lm KGFkZGl0aW9uYWw9PWZhbHNlKXthZGRpdGlvbmFsPSIifWx1cmwrPWV2ZW50O2lm KHNvdXJjZSE9bnVsbCl7bHVybCs9IiZzb3VyY2U9Iitzb3VyY2V9bHVybCs9IiZw dWJsaXNoZXI9IitlbmNvZGVVUklDb21wb25lbnQoU0hBUkVUSElTLm1ldGEucHVi bGlzaGVyKSsiJmhvc3RuYW1lPSIrZW5jb2RlVVJJQ29tcG9uZW50KFNIQVJFVEhJ Uy5tZXRhLmhvc3RuYW1lKSsiJmxvY2F0aW9uPSIrZW5jb2RlVVJJQ29tcG9uZW50 KFNIQVJFVEhJUy5tZXRhLmxvY2F0aW9uKSsiJnVybD0iK2VuY29kZVVSSUNvbXBv bmVudChkb2N1bWVudC5sb2NhdGlvbi5ocmVmKSsiJnNlc3Npb25JRD0iK1NIQVJF VEhJUy5zZXNzaW9uSUQrIiZmcGM9IitTSEFSRVRISVMuZnBjKyImdHMiKyhuZXcg RGF0ZSgpKS5nZXRUaW1lKCkrIi4iK1NIQVJFVEhJUy5jb3VudGVyKysrIiZyX3Nl c3Npb25JRD0maGFzaF9mbGFnPSZzaHI9JmNvdW50PSIrU0hBUkVUSElTLmJ1dHRv bkNvdW50K2FkZGl0aW9uYWw7dmFyIGxvZ2dlcjI9bmV3IEltYWdlKDEsMSk7bG9n Z2VyMi5zcmM9bHVybDtsb2dnZXIyLm9ubG9hZD1mdW5jdGlvbigpe3JldHVybn19 LHRoaXMuZ2V0Qm9vbD1mdW5jdGlvbih2YXJpYWJsZSl7dmFyIHZ0eXBlO3ZhciB0 b1JldHVybjtpZih2YXJpYWJsZSE9bnVsbCl7c3dpdGNoKHR5cGVvZih2YXJpYWJs ZSkpe2Nhc2UiYm9vbGVhbiI6dnR5cGU9ImJvb2xlYW4iO3JldHVybiB2YXJpYWJs ZTticmVhaztjYXNlIm51bWJlciI6dnR5cGU9Im51bWJlciI7aWYodmFyaWFibGU9 PTApe3RvUmV0dXJuPWZhbHNlfWVsc2V7dG9SZXR1cm49dHJ1ZX1icmVhaztjYXNl InN0cmluZyI6dnR5cGU9InN0cmluZyI7aWYodmFyaWFibGU9PSJ0cnVlInx8dmFy aWFibGU9PSIxIil7dG9SZXR1cm49dHJ1ZX1lbHNle2lmKHZhcmlhYmxlPT0iZmFs c2UifHx2YXJpYWJsZT09IjAiKXt0b1JldHVybj1mYWxzZX1lbHNle2lmKHZhcmlh YmxlLmxlbmd0aD4wKXt0b1JldHVybj10cnVlfWVsc2V7aWYodmFyaWFibGUubGVu Z3RoPT0wKXt0b1JldHVybj1mYWxzZX19fX1icmVha31yZXR1cm4gdG9SZXR1cm59 fSx0aGlzLm9uU3RGcmFtZUxvYWQ9ZnVuY3Rpb24oKXtpZihTSEFSRVRISVMuZnJh bWVMb2FkZWQ9PT1mYWxzZSl7U0hBUkVUSElTLndpZGdldENhbGxlZD10cnVlO1NI QVJFVEhJUy5mcmFtZUxvYWRlZD10cnVlO2lmKFNIQVJFVEhJUy5zdF9jbGlja2Vk PT10cnVlKXtzZXRUaW1lb3V0KCJTSEFSRVRISVMuc3RfY2xpY2tlZF9vLnBvcHVw KCkiLDEwMDApfX19O3RoaXMucmVhZHlUZXN0PWZ1bmN0aW9uKCl7aWYoU0hBUkVU SElTLmZyYW1lUmVhZHk9PT10cnVlJiZTSEFSRVRISVMucmVhZHk9PT10cnVlKXtj bGVhckludGVydmFsKFNIQVJFVEhJUy5yZWFkeVRlc3RJbnRlcnZhbCk7U0hBUkVU SElTLm9uU3RGcmFtZUxvYWQoKX19O3RoaXMuc2VuZEV2ZW50PWZ1bmN0aW9uKG5h bWUsdmFsdWUpe3ZhciB0bXBTZW5kPSIjd2lkZ2V0LyIrbmFtZSsiPSIrdmFsdWU7 d2luZG93LmZyYW1lcy5zdGZyYW1lLmxvY2F0aW9uLnJlcGxhY2UoU0hBUkVUSElT LmZyYW1lVXJsK3RtcFNlbmQpfTt0aGlzLmluaXRpYWxpemU9ZnVuY3Rpb24ob3B0 aW9ucyl7Zm9yKG8gaW4gb3B0aW9ucyl7b3B0aW9uc1tvXT1vcHRpb25zW29dLnRv U3RyaW5nKCl9aWYoX3RoaXNTY3JpcHQ9PW51bGwpe3ZhciBfc2xpc3Q9ZG9jdW1l bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpO3ZhciBfdGhpc1Njcmlw dDM9X3NsaXN0W19zbGlzdC5sZW5ndGgtMV07dmFyIFNUX3NjcmlwdF9zcmM9X3Ro aXNTY3JpcHQzLnNyY31lbHNle3ZhciBTVF9zY3JpcHRfc3JjPV90aGlzU2NyaXB0 LnNyY310aGlzLmZyYW1lVXJsPSJodHRwOi8vd2Quc2hhcmV0aGlzLmNvbS9zaGFy ZTN4L2xpZ2h0Ym94LmE2MDIxMWVlMDBiNWM1MDQyYTg4YzUyMWE0MmE0MTViLmh0 bWwiO3RoaXMucG9zdFVybD0iaHR0cDovL3dkLnNoYXJldGhpcy5jb20vYXBpL3Nl dENhY2hlX3dzLnBocCI7dGhpcy5vcHRpb25zPW9wdGlvbnN8fHt9O2lmKHRoaXMu b3B0aW9ucy5idXR0b24pe3RoaXMub3B0aW9ucy5idXR0b249dGhpcy5nZXRCb29s KHRoaXMub3B0aW9ucy5idXR0b24udG9TdHJpbmcoKSl9aWYodGhpcy5vcHRpb25z LnBvcHVwKXt0aGlzLm9wdGlvbnMucG9wdXA9dGhpcy5nZXRCb29sKHRoaXMub3B0 aW9ucy5wb3B1cC50b1N0cmluZygpKX1pZih0aGlzLm9wdGlvbnMuZW1iZWRzKXt0 aGlzLm9wdGlvbnMuZW1iZWRzPXRoaXMuZ2V0Qm9vbCh0aGlzLm9wdGlvbnMuZW1i ZWRzLnRvU3RyaW5nKCkpfWlmKHRoaXMub3B0aW9ucy5wdWJsaXNoZXIpe3RoaXMu bWV0YS5wdWJsaXNoZXI9dGhpcy5vcHRpb25zLnB1Ymxpc2hlcn12YXIgdG1wX2Nz cz0iaHR0cDovL3cuc2hhcmV0aGlzLmNvbS9idXR0b24vY3NzL3NoYXJldGhpcy5m NjQxNDRkZWEwYWM5OWY3YmNmYjMxZmMyYWExZmUzNy5jc3MiO3RyeXtpZih0aGlz Lm9wdGlvbnMuY3NzKXt0bXBfY3NzPXRoaXMub3B0aW9ucy5jc3MudG9TdHJpbmco KX19Y2F0Y2goZXJyKXt9dmFyIGNzcz10bXBfY3NzO3RoaXMubG9hZCgibGluayIs e2hyZWY6KHRoaXMub3B0aW9ucy5jc3M/dGhpcy5vcHRpb25zLmNzczpjc3MpLHJl bDoic3R5bGVzaGVldCIsdHlwZToidGV4dC9jc3MifSk7dHJ5e3RoaXMubWFpbnN0 ZnJhbWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnPGlmcmFtZSBuYW1lPSJzdGZy YW1lIiBhbGxvd1RyYW5zcGFyZW5jeT0idHJ1ZSIgc3R5bGU9ImJvZHl7YmFja2dy b3VuZDp0cmFuc3BhcmVudDt9IiA+PC9pZnJhbWU+Jyk7dGhpcy5tYWluc3RmcmFt ZS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZihTSEFSRVRISVMubWFp bnN0ZnJhbWUucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpe1NIQVJFVEhJUy5mcmFt ZVJlYWR5PXRydWV9fX1jYXRjaChlcnIpe3RoaXMubWFpbnN0ZnJhbWU9ZG9jdW1l bnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7dGhpcy5tYWluc3RmcmFtZS5hbGxv d1RyYW5zcGFyZW5jeT0idHJ1ZSI7dGhpcy5tYWluc3RmcmFtZS5zZXRBdHRyaWJ1 dGUoImFsbG93VHJhbnNwYXJlbmN5IiwidHJ1ZSIpO3RoaXMubWFpbnN0ZnJhbWUu b25sb2FkPWZ1bmN0aW9uKCl7U0hBUkVUSElTLmZyYW1lUmVhZHk9dHJ1ZX19dGhp cy5tYWluc3RmcmFtZS5pZD0ic3RmcmFtZSI7dGhpcy5tYWluc3RmcmFtZS5jbGFz c05hbWU9InN0ZnJhbWUiO3RoaXMubWFpbnN0ZnJhbWUubmFtZT0ic3RmcmFtZSI7 dGhpcy5tYWluc3RmcmFtZS5mcmFtZUJvcmRlcj0iMCI7dGhpcy5tYWluc3RmcmFt ZS5zY3JvbGxpbmc9Im5vIjt0aGlzLm1haW5zdGZyYW1lLndpZHRoPSIzNTNweCI7 dGhpcy5tYWluc3RmcmFtZS5oZWlnaHQ9IjU5OHB4Ijt0aGlzLm1haW5zdGZyYW1l LnN0eWxlLnRvcD0iMHB4Ijt0aGlzLm1haW5zdGZyYW1lLnN0eWxlLmxlZnQ9IjBw eCI7dHJ5e3RoaXMuZnA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnPGlmcmFtZSBu YW1lPSJzdHBvc3RmcmFtZSIgc3R5bGU9InZpc2liaWxpdHk6aGlkZGVuIj48L2lm cmFtZT4nKX1jYXRjaChlcnIpe3RoaXMuZnA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVu dCgiaWZyYW1lIik7dGhpcy5mcC5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4ifXRo aXMuZnAubmFtZT0ic3Rwb3N0ZnJhbWUiO3RoaXMuZnAud2lkdGg9IjBweCI7dGhp cy5mcC5oZWlnaHQ9IjBweCI7dGhpcy5mcC5zcmM9IiI7dmFyIGluaXQ9IiNpbml0 Ijt0aGlzLm5ld3dpbmZyYWc9IiNwb3B1cCI7Zm9yKHZhciBvIGluIG9wdGlvbnMp e2lmKFNIQVJFVEhJU190c3RPcHRpb25zKG8pPT10cnVlKXtpbml0PWluaXQrIi8i K28rIj0iK2VuY29kZVVSSUNvbXBvbmVudChvcHRpb25zW29dKTt0aGlzLm5ld3dp bmZyYWc9dGhpcy5uZXd3aW5mcmFnKyIvIitvKyI9IitlbmNvZGVVUklDb21wb25l bnQob3B0aW9uc1tvXSl9fXRoaXMuaW5pdHN0cj1pbml0O3RoaXMuc2VuZEluaXQu cHVzaCh0aGlzLmluaXRzdHIpO3RoaXMubWFpbnN0ZnJhbWUuc3JjPXRoaXMuZnJh bWVVcmwrdGhpcy5zZW5kSW5pdFswXTt0aGlzLndyYXBwZXI9ZG9jdW1lbnQuY3Jl YXRlRWxlbWVudCgiZGl2Iik7dGhpcy53cmFwcGVyLmlkPSJzdHdyYXBwZXIiO3Ro aXMud3JhcHBlci5jbGFzc05hbWU9InN0d3JhcHBlciI7dGhpcy53cmFwcGVyLnN0 eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7dGhpcy53cmFwcGVyLnN0eWxlLnRvcD0i LTk5OXB4Ijt0aGlzLndyYXBwZXIuc3R5bGUubGVmdD0iLTk5OXB4Ijt0aGlzLmNs b3Nld3JhcHBlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0aGlzLmNs b3Nld3JhcHBlci5jbGFzc05hbWU9InN0Y2xvc2UiO3RoaXMuY2xvc2V3cmFwcGVy Lm9uY2xpY2s9c3RjbG9zZVdpZGdldDt0aGlzLndyYXBwZXIuYXBwZW5kQ2hpbGQo dGhpcy5jbG9zZXdyYXBwZXIpO3RoaXMud3JhcHBlci5hcHBlbmRDaGlsZCh0aGlz Lm1haW5zdGZyYW1lKTt0aGlzLmRlZmVyKGZ1bmN0aW9uKCl7U0hBUkVUSElTLmJv ZHlMb2FkZWQ9dHJ1ZTtTSEFSRVRISVMubG9nKCJwdmlldyIsbnVsbCxudWxsKTtp ZihTSEFSRVRISVNfVE9PTEJBUj09PXRydWUpe2RvY3VtZW50LmJvZHkuYXBwZW5k Q2hpbGQoU0hBUkVUSElTLmZwKTtTSEFSRVRISVMucG9zdFBvcHVwKCk7U0hBUkVU SElTX1RPT0xCQVJfRElWLmFwcGVuZENoaWxkKFNIQVJFVEhJUy53cmFwcGVyKX1p ZihTSEFSRVRISVMucG9wdXBFeGlzdHM9PT10cnVlJiZTSEFSRVRISVMucG9wdXBD YWxsZWQ9PT1mYWxzZSl7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChTSEFSRVRI SVMuZnApO1NIQVJFVEhJUy5wb3N0UG9wdXAoKTtTSEFSRVRISVMucG9wdXBDYWxs ZWQ9dHJ1ZX1pZihTSEFSRVRISVMud2lkZ2V0Q2FsbGVkPT09ZmFsc2UmJlNIQVJF VEhJUy53aWRnZXRFeGlzdHM9PT10cnVlKXtkb2N1bWVudC5ib2R5LmFwcGVuZENo aWxkKFNIQVJFVEhJUy53cmFwcGVyKTt0cnl7d2luZG93LmZyYW1lcy5zdGZyYW1l LmxvY2F0aW9uLnJlcGxhY2UoU0hBUkVUSElTLm1haW5zdGZyYW1lLnNyYyl9Y2F0 Y2goZXJyKXt9U0hBUkVUSElTLnJlYWR5VGVzdEludGVydmFsPXNldEludGVydmFs KFNIQVJFVEhJUy5yZWFkeVRlc3QsMjUwKX10cnl7dmFyIHN0ZnJtPWRvY3VtZW50 LmdldEVsZW1lbnRCeUlkKCJzdGZyYW1lIik7c3Rmcm0ub25tb3VzZW92ZXI9ZnVu Y3Rpb24oKXtzdENhbmNlbENsb3NlKCk7U0hBUkVUSElTLmluVGltZT0obmV3IERh dGUoKSkuZ2V0VGltZSgpfTtzdGZybS5vbm1vdXNlb3V0PWZ1bmN0aW9uKCl7U0hB UkVUSElTLm91dFRpbWU9KG5ldyBEYXRlKCkpLmdldFRpbWUoKTtTSEFSRVRISVMu b3BlbkR1cmF0aW9uPShTSEFSRVRISVMub3V0VGltZS1TSEFSRVRISVMuaW5UaW1l KS8xMDAwO3N0Q2xvc2UoKX07ZG9jdW1lbnQuYm9keS5vbmNsaWNrPWZ1bmN0aW9u KCl7aWYoU0hBUkVUSElTLmJ1dHRvbkNsaWNrZWQ9PWZhbHNlKXtTSEFSRVRISVMu c3RvcENsb3Npbmc9ZmFsc2U7U0hBUkVUSElTLm9wZW5EdXJhdGlvbj0wO3N0Q2xv c2UoMTAwKX19fWNhdGNoKGVycil7fX0pO2lmKHR5cGVvZih3aW5kb3cuYWRkRXZl bnRMaXN0ZW5lcikhPSJ1bmRlZmluZWQiKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l cigibG9hZCIsdGhpcy5vblJlYWR5LGZhbHNlKX1lbHNle2lmKHR5cGVvZihkb2N1 bWVudC5hZGRFdmVudExpc3RlbmVyKSE9InVuZGVmaW5lZCIpe2RvY3VtZW50LmFk ZEV2ZW50TGlzdGVuZXIoImxvYWQiLHRoaXMub25SZWFkeSxmYWxzZSl9ZWxzZXtp Zih0eXBlb2Ygd2luZG93LmF0dGFjaEV2ZW50IT0idW5kZWZpbmVkIil7d2luZG93 LmF0dGFjaEV2ZW50KCJvbmxvYWQiLHRoaXMub25SZWFkeSl9fX1zZXRUaW1lb3V0 KGZ1bmN0aW9uKCl7Zm9yKHZhciBzIGluIFNIQVJFVEhJUy5zaGFyZWFibGVzKXtp ZihTSEFSRVRISVMuc2hhcmVhYmxlc1tzXS5vcHRpb25zIT11bmRlZmluZWQpe3N3 aXRjaChTSEFSRVRISVMuc2hhcmVhYmxlc1tzXS5vcHRpb25zLnN0eWxlKXtjYXNl InZlcnRpY2FsIjp2YXIgaWZyO3RyeXtpZnI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVu dCgnPGlmcmFtZSBhbGxvd1RyYW5zcGFyZW5jeT0idHJ1ZSI+PC9pZnJhbWU+Jyl9 Y2F0Y2goZXJyKXtpZnI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7 aWZyLmFsbG93VHJhbnNwYXJlbmN5PSJ0cnVlIjtpZnIuc2V0QXR0cmlidXRlKCJh bGxvd1RyYW5zcGFyZW5jeSIsInRydWUiKX1pZnIuY2xhc3NOYW1lPSJzdGNvdW50 ZXIiO2lmci5mcmFtZUJvcmRlcj0iMCI7aWZyLnNjcm9sbGluZz0ibm8iO2lmci53 aWR0aD0iNTdweCI7aWZyLmhlaWdodD0iMzlweCI7aWZyLnNyYz0iaHR0cDovL3dk LnNoYXJldGhpcy5jb20vYnV0dG9uL3Zjb3VudGVyLnBocD91cmw9IitlbmNvZGVV UklDb21wb25lbnQoU0hBUkVUSElTLnNoYXJlYWJsZXNbc10ucHJvcGVydGllcy51 cmwpO1NIQVJFVEhJUy5zaGFyZWFibGVzW3NdLmJ1dHRvbi5wYXJlbnROb2RlLmFw cGVuZENoaWxkKGlmcik7YnJlYWs7Y2FzZSJob3Jpem9udGFsIjp2YXIgaWZyO3Ry eXtpZnI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnPGlmcmFtZSBhbGxvd1RyYW5z cGFyZW5jeT0idHJ1ZSI+PC9pZnJhbWU+Jyl9Y2F0Y2goZXJyKXtpZnI9ZG9jdW1l bnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7aWZyLmFsbG93VHJhbnNwYXJlbmN5 PSJ0cnVlIjtpZnIuc2V0QXR0cmlidXRlKCJhbGxvd1RyYW5zcGFyZW5jeSIsInRy dWUiKX1pZnIuY2xhc3NOYW1lPSJzdGNvdW50ZXIiO2lmci5mcmFtZUJvcmRlcj0i MCI7aWZyLnNjcm9sbGluZz0ibm8iO2lmci53aWR0aD0iMzdweCI7aWZyLmhlaWdo dD0iMThweCI7aWZyLnNyYz0iaHR0cDovL3dkLnNoYXJldGhpcy5jb20vYnV0dG9u L2hjb3VudGVyLnBocD91cmw9IitlbmNvZGVVUklDb21wb25lbnQoU0hBUkVUSElT LnNoYXJlYWJsZXNbc10ucHJvcGVydGllcy51cmwpO1NIQVJFVEhJUy5zaGFyZWFi bGVzW3NdLmJ1dHRvbi5wYXJlbnROb2RlLmFwcGVuZENoaWxkKGlmcik7YnJlYWt9 fX19LDEwMDApfTt0aGlzLmluaXRpYWxpemUob3B0aW9ucyl9dmFyIGNsb3NldGlt ZW91dDtmdW5jdGlvbiBzdENsb3NlKGEpe2lmKCFhKXthPTEwMDB9aWYoc3RhdXRv Y2xvc2U9PXRydWUmJlNIQVJFVEhJU19UT09MQkFSPT1mYWxzZSl7aWYoU0hBUkVU SElTLm9wZW5EdXJhdGlvbjwyJiZTSEFSRVRISVMuc3RvcENsb3Npbmc9PWZhbHNl KXtjbG9zZXRpbWVvdXQ9c2V0VGltZW91dCgic3RjbG9zZVdpZGdldCgpIixhKX1l bHNle1NIQVJFVEhJUy5zdG9wQ2xvc2luZz10cnVlfX19ZnVuY3Rpb24gc3RDYW5j ZWxDbG9zZSgpe2NsZWFyVGltZW91dChjbG9zZXRpbWVvdXQpO1NIQVJFVEhJUy5i dXR0b25DbGlja2VkPXRydWU7c2V0VGltZW91dChmdW5jdGlvbigpe1NIQVJFVEhJ Uy5idXR0b25DbGlja2VkPWZhbHNlfSwxMDApfWZ1bmN0aW9uIHN0Y2xvc2VXaWRn ZXQoKXtzdF9zaG93aW5nPWZhbHNlO1NIQVJFVEhJUy53cmFwcGVyLnN0eWxlLnZp c2liaWxpdHk9ImhpZGRlbiI7U0hBUkVUSElTLm1haW5zdGZyYW1lLnN0eWxlLnZp c2liaWxpdHk9ImhpZGRlbiI7U0hBUkVUSElTLndyYXBwZXIuc3R5bGUudG9wPSIt OTk5cHgiO1NIQVJFVEhJUy53cmFwcGVyLnN0eWxlLmxlZnQ9Ii05OTlweCI7U0hB UkVUSElTLnNob3dFbWJlZHMoKTtTSEFSRVRISVMuc2VuZEV2ZW50KCJzY3JlZW4i LCJob21lIik7U0hBUkVUSElTLnNlbmRBcnJheT1bXX1mdW5jdGlvbiBTSEFSRVRI SVNfdHN0T3B0aW9ucyhhKXt2YXIgZD1bInR5cGUiLCJ0aXRsZSIsInN1bW1hcnki LCJjb250ZW50IiwidXJsIiwiaWNvbiIsImNhdGVnb3J5IiwidXBkYXRlZCIsInB1 Ymxpc2hlZCIsImF1dGhvciIsImJ1dHRvbiIsIm9ubW91c2VvdmVyIiwiYnV0dG9u VGV4dCIsInBvcHVwIiwib2Zmc2V0TGVmdCIsIm9mZnNldFRvcCIsImVtYmVkcyIs ImF1dG9jbG9zZSIsInB1Ymxpc2hlciIsInRhYnMiLCJzZXJ2aWNlcyIsImNoYXJz ZXQiLCJoZWFkZXJiZyIsImluYWN0aXZlYmciLCJpbmFjdGl2ZWZnIiwibGlua2Zn Iiwic3R5bGUiLCJzZW5kX3NlcnZpY2VzIiwiZXhjbHVzaXZlX3NlcnZpY2VzIiwi cG9zdF9zZXJ2aWNlcyIsImhlYWRlcmZnIiwiaGVhZGVyVHlwZSIsImhlYWRlclRp dGxlIiwic2Vzc2lvbklEIiwidHJhY2tpbmciLCJmcGMiLCJhZHMiLCJwVXJsIiwi aGFzaF9mbGFnIl07dmFyIGM9ZmFsc2U7Zm9yKHZhciBiPTA7YjxkLmxlbmd0aDti Kyspe2lmKGE9PT1kW2JdKXtjPXRydWV9fXJldHVybiBjfWZ1bmN0aW9uIFNIQVJF VEhJU19URVNUKCl7U0hBUkVUSElTLm1haW5zdGZyYW1lLnNyYz1TSEFSRVRISVMu ZnJhbWVVcmwrIiN0ZXN0In1mdW5jdGlvbiBfc3RGcGMoKXtpZighZG9jdW1lbnQu ZG9tYWlufHxkb2N1bWVudC5kb21haW4uc2VhcmNoKC9cLmdvdi8pPjApe3JldHVy biBmYWxzZX12YXIgZz1fc3RHZXRGcGMoIl9fdW5hbSIpO2lmKGc9PWZhbHNlKXt2 YXIgYz1NYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMjE0NzQ4MzY0Nyk7Yz1jLnRv U3RyaW5nKDE2KTt2YXIgaD0obmV3IERhdGUoKSkuZ2V0VGltZSgpO2g9aC50b1N0 cmluZygxNik7dmFyIGU9IiI7dmFyIGE9X3N0R2V0RCgpO2E9YS5zcGxpdCgvXC4v KVsxXTtpZighYSl7cmV0dXJuIGZhbHNlfWU9X3N0ZEhhc2goYSkrIi0iK2grIi0i K2MrIi0xIjtnPWU7X3N0U2V0RnBjKGcpfWVsc2V7dmFyIGI9Zzt2YXIgZj1iLnNw bGl0KC9cLS8pO2lmKGYubGVuZ3RoPT00KXt2YXIgZD1OdW1iZXIoZlszXSk7ZCsr O2I9ZlswXSsiLSIrZlsxXSsiLSIrZlsyXSsiLSIrZDtnPWI7X3N0U2V0RnBjKGcp fX1yZXR1cm4gZ31mdW5jdGlvbiBfc3RTZXRGcGMoZyl7dmFyIGE9Il9fdW5hbSI7 dmFyIGM9bmV3IERhdGU7dmFyIGk9Yy5nZXRGdWxsWWVhcigpO3ZhciBmPWMuZ2V0 TW9udGgoKSs5O3ZhciBoPWMuZ2V0RGF0ZSgpO3ZhciBkPWErIj0iK2VzY2FwZShn KTtpZihpKXt2YXIgYj1uZXcgRGF0ZShpLGYsaCk7ZCs9IjsgZXhwaXJlcz0iK2Iu dG9HTVRTdHJpbmcoKX12YXIgZT1fc3RHZXREKCk7ZCs9IjsgZG9tYWluPSIrZXNj YXBlKGUpKyI7cGF0aD0vIjtkb2N1bWVudC5jb29raWU9ZH1mdW5jdGlvbiBfc3RH ZXREKCl7dmFyIGI9ZG9jdW1lbnQuZG9tYWluLnNwbGl0KC9cLi8pO3ZhciBhPSIi O2lmKGIubGVuZ3RoPjEpe2E9Ii4iK2JbYi5sZW5ndGgtMl0rIi4iK2JbYi5sZW5n dGgtMV19cmV0dXJuIGF9ZnVuY3Rpb24gX3N0R2V0RnBjKGIpe3ZhciBhPWRvY3Vt ZW50LmNvb2tpZS5tYXRjaCgiKF58OykgPyIrYisiPShbXjtdKikoO3wkKSIpO2lm KGEpe3JldHVybih1bmVzY2FwZShhWzJdKSl9ZWxzZXtyZXR1cm4gZmFsc2V9fWZ1 bmN0aW9uIF9zdGRIYXNoKGEpe3ZhciBlPTAsZD0wO2Zvcih2YXIgYz1hLmxlbmd0 aC0xO2M+PTA7Yy0tKXt2YXIgYj1wYXJzZUludChhLmNoYXJDb2RlQXQoYykpO2U9 KChlPDw4KSYyNjg0MzU0NTUpK2IrKGI8PDEyKTtpZigoZD1lJjE2MTExOTg1MCkh PTApe2U9KGVeKGQ+PjIwKSl9fXJldHVybiBlLnRvU3RyaW5nKDE2KX12YXIgX3Ro aXNTY3JpcHQ9bnVsbDtmdW5jdGlvbiBnZXRTaGFyZVRoaXNTY3JpcHQoKXt2YXIg ZD1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0Iik7dmFyIGM9 bnVsbDtmb3IodmFyIGI9MDtiPGQubGVuZ3RoO2IrKyl7dmFyIGE9ZFtiXS5zcmM7 aWYoYS5zZWFyY2goLy4qc2hhcmV0aGlzLipcL2J1dHRvbi8pPj0wKXtjPWRbYl19 ZWxzZXtpZihhLnNlYXJjaCgvLipzaGFyZXRoaXMuKlwvd2lkZ2V0XC9cPy8pPj0w fHxhLnNlYXJjaCgvLipzaGFyZXRoaXMuKlwvd2lkZ2V0XC9pbmRleC8pPj0wfHxh LnNlYXJjaCgvLipzaGFyZXRoaXMuKlwvd2lkZ2V0XC9cPyYvKT49MCl7Yz1kW2Jd fX19cmV0dXJuIGN9ZnVuY3Rpb24gZGJySW5mbygpe3ZhciBhPWRvY3VtZW50LnJl ZmVycmVyO2lmKGEmJmEubGVuZ3RoPjApe3ZhciBjPS8oaHR0cDpcL1wvKSguKj8p XC8uKi9pO3ZhciBiPS8oXi4qXD8pKC4qKS9pZzt2YXIgZj0iIjt2YXIgZT1hLnJl cGxhY2UoYywiJDIiKTtpZihlLmxlbmd0aD4wKXtmKz0iJnJlZkRvbWFpbj0iK2V9 ZWxzZXtyZXR1cm4gZmFsc2V9dmFyIGQ9YS5yZXBsYWNlKGIsIiQyIik7aWYoZC5s ZW5ndGg+MCl7Zis9IiZyZWZRdWVyeT0iK2VuY29kZVVSSUNvbXBvbmVudChkKX1y ZXR1cm4gZn1lbHNle3JldHVybiBmYWxzZX19X3RoaXNTY3JpcHQ9Z2V0U2hhcmVU aGlzU2NyaXB0KCk7aWYoX3RoaXNTY3JpcHQpe1NIQVJFVEhJUz1uZXcgU2hhcmVU aGlzKHBhcnNlUXVlcnlTdHJpbmcoX3RoaXNTY3JpcHQuc3JjKSl9ZWxzZXtTSEFS RVRISVM9bmV3IFNoYXJlVGhpcygpfX12YXIgX3NsaXN0PWRvY3VtZW50LmdldEVs ZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKTt2YXIgX3RoaXNTY3JpcHQyPV9zbGlz dFtfc2xpc3QubGVuZ3RoLTFdO2lmKF90aGlzU2NyaXB0MiYmX3RoaXNTY3JpcHQy LnBhcmVudE5vZGUudGFnTmFtZSE9IkhFQUQiJiZ0eXBlb2YoX3N0dG9vbGJhcik9 PSJ1bmRlZmluZWQiKXt2YXIgb2JqPVNIQVJFVEhJUy5hZGRFbnRyeSgpfX1jYXRj aChlcnIpe307 ------------VpNz6ZMvTX6js7qDgnscWw Content-Disposition: inline; filename=urchin.js Content-Type: text/javascript; charset=UTF-8; name=urchin.js Content-Location: http://www.google-analytics.com/urchin.js Content-Transfer-Encoding: 8bit //-- Google Analytics Urchin Module //-- Copyright 2007 Google, All Rights Reserved. //-- Urchin On Demand Settings ONLY var _uacct=""; // set up the Urchin Account var _userv=1; // service mode (0=local,1=remote,2=both) //-- UTM User Settings var _ufsc=1; // set client info flag (1=on|0=off) var _udn="auto"; // (auto|none|domain) set the domain name for cookies var _uhash="on"; // (on|off) unique domain hash for cookies var _utimeout="1800"; // set the inactive session timeout in seconds var _ugifpath="/__utm.gif"; // set the web path to the __utm.gif file var _utsp="|"; // transaction field separator var _uflash=1; // set flash version detect option (1=on|0=off) var _utitle=1; // set the document title detect option (1=on|0=off) var _ulink=0; // enable linker functionality (1=on|0=off) var _uanchor=0; // enable use of anchors for campaign (1=on|0=off) var _utcp="/"; // the cookie path for tracking var _usample=100; // The sampling % of visitors to track (1-100). //-- UTM Campaign Tracking Settings var _uctm=1; // set campaign tracking module (1=on|0=off) var _ucto="15768000"; // set timeout in seconds (6 month default) var _uccn="utm_campaign"; // name var _ucmd="utm_medium"; // medium (cpc|cpm|link|email|organic) var _ucsr="utm_source"; // source var _uctr="utm_term"; // term/keyword var _ucct="utm_content"; // content var _ucid="utm_id"; // id number var _ucno="utm_nooverride"; // don't override //-- Auto/Organic Sources and Keywords var _uOsr=new Array(); var _uOkw=new Array(); _uOsr[0]="google"; _uOkw[0]="q"; _uOsr[1]="yahoo"; _uOkw[1]="p"; _uOsr[2]="msn"; _uOkw[2]="q"; _uOsr[3]="aol"; _uOkw[3]="query"; _uOsr[4]="aol"; _uOkw[4]="encquery"; _uOsr[5]="lycos"; _uOkw[5]="query"; _uOsr[6]="ask"; _uOkw[6]="q"; _uOsr[7]="altavista"; _uOkw[7]="q"; _uOsr[8]="netscape"; _uOkw[8]="query"; _uOsr[9]="cnn"; _uOkw[9]="query"; _uOsr[10]="looksmart"; _uOkw[10]="qt"; _uOsr[11]="about"; _uOkw[11]="terms"; _uOsr[12]="mamma"; _uOkw[12]="query"; _uOsr[13]="alltheweb"; _uOkw[13]="q"; _uOsr[14]="gigablast"; _uOkw[14]="q"; _uOsr[15]="voila"; _uOkw[15]="rdata"; _uOsr[16]="virgilio"; _uOkw[16]="qs"; _uOsr[17]="live"; _uOkw[17]="q"; _uOsr[18]="baidu"; _uOkw[18]="wd"; _uOsr[19]="alice"; _uOkw[19]="qs"; _uOsr[20]="yandex"; _uOkw[20]="text"; _uOsr[21]="najdi"; _uOkw[21]="q"; _uOsr[22]="aol"; _uOkw[22]="q"; _uOsr[23]="club-internet"; _uOkw[23]="query"; _uOsr[24]="mama"; _uOkw[24]="query"; _uOsr[25]="seznam"; _uOkw[25]="q"; _uOsr[26]="search"; _uOkw[26]="q"; _uOsr[27]="wp"; _uOkw[27]="szukaj"; _uOsr[28]="onet"; _uOkw[28]="qt"; _uOsr[29]="netsprint"; _uOkw[29]="q"; _uOsr[30]="google.interia"; _uOkw[30]="q"; _uOsr[31]="szukacz"; _uOkw[31]="q"; _uOsr[32]="yam"; _uOkw[32]="k"; _uOsr[33]="pchome"; _uOkw[33]="q"; _uOsr[34]="kvasir"; _uOkw[34]="searchExpr"; _uOsr[35]="sesam"; _uOkw[35]="q"; _uOsr[36]="ozu"; _uOkw[36]="q"; _uOsr[37]="terra"; _uOkw[37]="query"; _uOsr[38]="nostrum"; _uOkw[38]="query"; _uOsr[39]="mynet"; _uOkw[39]="q"; _uOsr[40]="ekolay"; _uOkw[40]="q"; _uOsr[41]="search.ilse"; _uOkw[41]="search_for"; _uOsr[42]="bing"; _uOkw[42]="q"; //-- Auto/Organic Keywords to Ignore var _uOno=new Array(); //_uOno[0]="urchin"; //_uOno[1]="urchin.com"; //_uOno[2]="www.urchin.com"; //-- Referral domains to Ignore var _uRno=new Array(); //_uRno[0]=".urchin.com"; //-- **** Don't modify below this point *** var _uff,_udh,_udt,_ubl=0,_udo="",_uu,_ufns=0,_uns=0,_ur="-",_ufno=0,_ust=0,_ubd=document,_udl=_ubd.location,_udlh="",_uwv="1.3"; var _ugifpath2="http://www.google-analytics.com/__utm.gif"; if (_udl.hash) _udlh=_udl.href.substring(_udl.href.indexOf('#')); if (_udl.protocol=="https:") _ugifpath2="https://ssl.google-analytics.com/__utm.gif"; if (!_utcp || _utcp=="") _utcp="/"; function urchinTracker(page) { if (_udl.protocol=="file:") return; if (_uff && (!page || page=="")) return; var a,b,c,xx,v,z,k,x="",s="",f=0,nv=0; var nx=" expires="+_uNx()+";"; var dc=_ubd.cookie; _udh=_uDomain(); if (!_uVG()) return; _uu=Math.round(Math.random()*2147483647); _udt=new Date(); _ust=Math.round(_udt.getTime()/1000); a=dc.indexOf("__utma="+_udh+"."); b=dc.indexOf("__utmb="+_udh); c=dc.indexOf("__utmc="+_udh); if (_udn && _udn!="") { _udo=" domain="+_udn+";"; } if (_utimeout && _utimeout!="") { x=new Date(_udt.getTime()+(_utimeout*1000)); x=" expires="+x.toGMTString()+";"; } if (_ulink) { if (_uanchor && _udlh && _udlh!="") s=_udlh+"&"; s+=_udl.search; if(s && s!="" && s.indexOf("__utma=")>=0) { if (!(_uIN(a=_uGC(s,"__utma=","&")))) a="-"; if (!(_uIN(b=_uGC(s,"__utmb=","&")))) b="-"; if (!(_uIN(c=_uGC(s,"__utmc=","&")))) c="-"; v=_uGC(s,"__utmv=","&"); z=_uGC(s,"__utmz=","&"); k=_uGC(s,"__utmk=","&"); xx=_uGC(s,"__utmx=","&"); if ((k*1) != ((_uHash(a+b+c+xx+z+v)*1)+(_udh*1))) {_ubl=1;a="-";b="-";c="-";xx="-";z="-";v="-";} if (a!="-" && b!="-" && c!="-") f=1; else if(a!="-") f=2; } } if(f==1) { _ubd.cookie="__utma="+a+"; path="+_utcp+";"+nx+_udo; _ubd.cookie="__utmb="+b+"; path="+_utcp+";"+x+_udo; _ubd.cookie="__utmc="+c+"; path="+_utcp+";"+_udo; } else if (f==2) { a=_uFixA(s,"&",_ust); _ubd.cookie="__utma="+a+"; path="+_utcp+";"+nx+_udo; _ubd.cookie="__utmb="+_udh+"; path="+_utcp+";"+x+_udo; _ubd.cookie="__utmc="+_udh+"; path="+_utcp+";"+_udo; _ufns=1; } else if (a>=0 && b>=0 && c>=0) { b = _uGC(dc,"__utmb="+_udh,";"); b = ("-" == b) ? _udh : b; _ubd.cookie="__utmb="+b+"; path="+_utcp+";"+x+_udo; } else { if (a>=0) a=_uFixA(_ubd.cookie,";",_ust); else { a=_udh+"."+_uu+"."+_ust+"."+_ust+"."+_ust+".1"; nv=1; } _ubd.cookie="__utma="+a+"; path="+_utcp+";"+nx+_udo; _ubd.cookie="__utmb="+_udh+"; path="+_utcp+";"+x+_udo; _ubd.cookie="__utmc="+_udh+"; path="+_utcp+";"+_udo; _ufns=1; } if (_ulink && xx && xx!="" && xx!="-") { xx=_uUES(xx); if (xx.indexOf(";")==-1) _ubd.cookie="__utmx="+xx+"; path="+_utcp+";"+nx+_udo; } if (_ulink && v && v!="" && v!="-") { v=_uUES(v); if (v.indexOf(";")==-1) _ubd.cookie="__utmv="+v+"; path="+_utcp+";"+nx+_udo; } var wc=window; var c=_ubd.cookie; if(wc && wc.gaGlobal && wc.gaGlobal.dh==_udh){ var g=wc.gaGlobal; var ua=c.split("__utma="+_udh+".")[1].split(";")[0].split("."); if(g.sid)ua[3]=g.sid; if(nv>0){ ua[2]=ua[3]; if(g.vid){ var v=g.vid.split("."); ua[0]=v[0]; ua[1]=v[1]; } } _ubd.cookie="__utma="+_udh+"."+ua.join(".")+"; path="+_utcp+";"+nx+_udo; } _uInfo(page); _ufns=0; _ufno=0; if (!page || page=="") _uff=1; } function _uGH() { var hid; var wc=window; if (wc && wc.gaGlobal && wc.gaGlobal.hid) { hid=wc.gaGlobal.hid; } else { hid=Math.round(Math.random()*0x7fffffff); if (!wc.gaGlobal) wc.gaGlobal={}; wc.gaGlobal.hid=hid; } return hid; } function _uInfo(page) { var p,s="",dm="",pg=_udl.pathname+_udl.search; if (page && page!="") pg=_uES(page,1); _ur=_ubd.referrer; if (!_ur || _ur=="") { _ur="-"; } else { dm=_ubd.domain; if(_utcp && _utcp!="/") dm+=_utcp; p=_ur.indexOf(dm); if ((p>=0) && (p<=8)) { _ur="0"; } if (_ur.indexOf("[")==0 && _ur.lastIndexOf("]")==(_ur.length-1)) { _ur="-"; } } s+="&utmn="+_uu; if (_ufsc) s+=_uBInfo(); if (_uctm) s+=_uCInfo(); if (_utitle && _ubd.title && _ubd.title!="") s+="&utmdt="+_uES(_ubd.title); if (_udl.hostname && _udl.hostname!="") s+="&utmhn="+_uES(_udl.hostname); if (_usample && _usample != 100) s+="&utmsp="+_uES(_usample); s+="&utmhid="+_uGH(); s+="&utmr="+_ur; s+="&utmp="+pg; if ((_userv==0 || _userv==2) && _uSP()) { var i=new Image(1,1); i.src=_ugifpath+"?"+"utmwv="+_uwv+s; i.onload=function() { _uVoid(); } } if ((_userv==1 || _userv==2) && _uSP()) { var i2=new Image(1,1); i2.src=_ugifpath2+"?"+"utmwv="+_uwv+s+"&utmac="+_uacct+"&utmcc="+_uGCS(); i2.onload=function() { _uVoid(); } } return; } function _uVoid() { return; } function _uCInfo() { if (!_ucto || _ucto=="") { _ucto="15768000"; } if (!_uVG()) return; var c="",t="-",t2="-",t3="-",o=0,cs=0,cn=0,i=0,z="-",s=""; if (_uanchor && _udlh && _udlh!="") s=_udlh+"&"; s+=_udl.search; var x=new Date(_udt.getTime()+(_ucto*1000)); var dc=_ubd.cookie; x=" expires="+x.toGMTString()+";"; if (_ulink && !_ubl) { z=_uUES(_uGC(s,"__utmz=","&")); if (z!="-" && z.indexOf(";")==-1) { _ubd.cookie="__utmz="+z+"; path="+_utcp+";"+x+_udo; return ""; } } z=dc.indexOf("__utmz="+_udh+"."); if (z>-1) { z=_uGC(dc,"__utmz="+_udh+".",";"); } else { z="-"; } t=_uGC(s,_ucid+"=","&"); t2=_uGC(s,_ucsr+"=","&"); t3=_uGC(s,"gclid=","&"); if ((t!="-" && t!="") || (t2!="-" && t2!="") || (t3!="-" && t3!="")) { if (t!="-" && t!="") c+="utmcid="+_uEC(t); if (t2!="-" && t2!="") { if (c != "") c+="|"; c+="utmcsr="+_uEC(t2); } if (t3!="-" && t3!="") { if (c != "") c+="|"; c+="utmgclid="+_uEC(t3); } t=_uGC(s,_uccn+"=","&"); if (t!="-" && t!="") c+="|utmccn="+_uEC(t); else c+="|utmccn=(not+set)"; t=_uGC(s,_ucmd+"=","&"); if (t!="-" && t!="") c+="|utmcmd="+_uEC(t); else c+="|utmcmd=(not+set)"; t=_uGC(s,_uctr+"=","&"); if (t!="-" && t!="") c+="|utmctr="+_uEC(t); else { t=_uOrg(1); if (t!="-" && t!="") c+="|utmctr="+_uEC(t); } t=_uGC(s,_ucct+"=","&"); if (t!="-" && t!="") c+="|utmcct="+_uEC(t); t=_uGC(s,_ucno+"=","&"); if (t=="1") o=1; if (z!="-" && o==1) return ""; } if (c=="-" || c=="") { c=_uOrg(); if (z!="-" && _ufno==1) return ""; } if (c=="-" || c=="") { if (_ufns==1) c=_uRef(); if (z!="-" && _ufno==1) return ""; } if (c=="-" || c=="") { if (z=="-" && _ufns==1) { c="utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"; } if (c=="-" || c=="") return ""; } if (z!="-") { i=z.indexOf("."); if (i>-1) i=z.indexOf(".",i+1); if (i>-1) i=z.indexOf(".",i+1); if (i>-1) i=z.indexOf(".",i+1); t=z.substring(i+1,z.length); if (t.toLowerCase()==c.toLowerCase()) cs=1; t=z.substring(0,i); if ((i=t.lastIndexOf(".")) > -1) { t=t.substring(i+1,t.length); cn=(t*1); } } if (cs==0 || _ufns==1) { t=_uGC(dc,"__utma="+_udh+".",";"); if ((i=t.lastIndexOf(".")) > 9) { _uns=t.substring(i+1,t.length); _uns=(_uns*1); } cn++; if (_uns==0) _uns=1; _ubd.cookie="__utmz="+_udh+"."+_ust+"."+_uns+"."+cn+"."+c+"; path="+_utcp+"; "+x+_udo; } if (cs==0 || _ufns==1) return "&utmcn=1"; else return "&utmcr=1"; } function _uRef() { if (_ur=="0" || _ur=="" || _ur=="-") return ""; var i=0,h,k,n; if ((i=_ur.indexOf("://"))<0 || _uGCse()) return ""; h=_ur.substring(i+3,_ur.length); if (h.indexOf("/") > -1) { k=h.substring(h.indexOf("/"),h.length); if (k.indexOf("?") > -1) k=k.substring(0,k.indexOf("?")); h=h.substring(0,h.indexOf("/")); } h=h.toLowerCase(); n=h; if ((i=n.indexOf(":")) > -1) n=n.substring(0,i); for (var ii=0;ii<_uRno.length;ii++) { if ((i=n.indexOf(_uRno[ii].toLowerCase())) > -1 && n.length==(i+_uRno[ii].length)) { _ufno=1; break; } } if (h.indexOf("www.")==0) h=h.substring(4,h.length); return "utmccn=(referral)|utmcsr="+_uEC(h)+"|"+"utmcct="+_uEC(k)+"|utmcmd=referral"; } function _uOrg(t) { if (_ur=="0" || _ur=="" || _ur=="-") return ""; var i=0,h,k; if ((i=_ur.indexOf("://"))<0 || _uGCse()) return ""; h=_ur.substring(i+3,_ur.length); if (h.indexOf("/") > -1) { h=h.substring(0,h.indexOf("/")); } for (var ii=0;ii<_uOsr.length;ii++) { if (h.toLowerCase().indexOf(_uOsr[ii].toLowerCase()) > -1) { if ((i=_ur.indexOf("?"+_uOkw[ii]+"=")) > -1 || (i=_ur.indexOf("&"+_uOkw[ii]+"=")) > -1) { k=_ur.substring(i+_uOkw[ii].length+2,_ur.length); if ((i=k.indexOf("&")) > -1) k=k.substring(0,i); for (var yy=0;yy<_uOno.length;yy++) { if (_uOno[yy].toLowerCase()==k.toLowerCase()) { _ufno=1; break; } } if (t) return _uEC(k); else return "utmccn=(organic)|utmcsr="+_uEC(_uOsr[ii])+"|"+"utmctr="+_uEC(k)+"|utmcmd=organic"; } } } return ""; } function _uGCse() { var h,p; h=p=_ur.split("://")[1]; if(h.indexOf("/")>-1) { h=h.split("/")[0]; p=p.substring(p.indexOf("/")+1,p.length); } if(p.indexOf("?")>-1) { p=p.split("?")[0]; } if(h.toLowerCase().indexOf("google")>-1) { if(_ur.indexOf("?q=")>-1 || _ur.indexOf("&q=")>-1) { if (p.toLowerCase().indexOf("cse")>-1) { return true; } } } } function _uBInfo() { var sr="-",sc="-",ul="-",fl="-",cs="-",je=1; var n=navigator; if (self.screen) { sr=screen.width+"x"+screen.height; sc=screen.colorDepth+"-bit"; } else if (self.java) { var j=java.awt.Toolkit.getDefaultToolkit(); var s=j.getScreenSize(); sr=s.width+"x"+s.height; } if (n.language) { ul=n.language.toLowerCase(); } else if (n.browserLanguage) { ul=n.browserLanguage.toLowerCase(); } je=n.javaEnabled()?1:0; if (_uflash) fl=_uFlash(); if (_ubd.characterSet) cs=_uES(_ubd.characterSet); else if (_ubd.charset) cs=_uES(_ubd.charset); return "&utmcs="+cs+"&utmsr="+sr+"&utmsc="+sc+"&utmul="+ul+"&utmje="+je+"&utmfl="+fl; } function __utmSetTrans() { var e; if (_ubd.getElementById) e=_ubd.getElementById("utmtrans"); else if (_ubd.utmform && _ubd.utmform.utmtrans) e=_ubd.utmform.utmtrans; if (!e) return; var l=e.value.split("UTM:"); var i,i2,c; if (_userv==0 || _userv==2) i=new Array(); if (_userv==1 || _userv==2) { i2=new Array(); c=_uGCS(); } for (var ii=0;ii -1) return; if (h) { url=l+"#"+p; } else { if (iq==-1 && ih==-1) url=l+"?"+p; else if (ih==-1) url=l+"&"+p; else if (iq==-1) url=l.substring(0,ih-1)+"?"+p+l.substring(ih); else url=l.substring(0,ih-1)+"&"+p+l.substring(ih); } } return url; } function __utmLinker(l,h) { if (!_ulink || !l || l=="") return; _udl.href=__utmLinkerUrl(l,h); } function __utmLinkPost(f,h) { if (!_ulink || !f || !f.action) return; f.action=__utmLinkerUrl(f.action, h); return; } function __utmSetVar(v) { if (!v || v=="") return; if (!_udo || _udo == "") { _udh=_uDomain(); if (_udn && _udn!="") { _udo=" domain="+_udn+";"; } } if (!_uVG()) return; var r=Math.round(Math.random() * 2147483647); _ubd.cookie="__utmv="+_udh+"."+_uES(v)+"; path="+_utcp+"; expires="+_uNx()+";"+_udo; var s="&utmt=var&utmn="+r; if (_usample && _usample != 100) s+="&utmsp="+_uES(_usample); if ((_userv==0 || _userv==2) && _uSP()) { var i=new Image(1,1); i.src=_ugifpath+"?"+"utmwv="+_uwv+s; i.onload=function() { _uVoid(); } } if ((_userv==1 || _userv==2) && _uSP()) { var i2=new Image(1,1); i2.src=_ugifpath2+"?"+"utmwv="+_uwv+s+"&utmac="+_uacct+"&utmcc="+_uGCS(); i2.onload=function() { _uVoid(); } } } function _uGCS() { var t,c="",dc=_ubd.cookie; if ((t=_uGC(dc,"__utma="+_udh+".",";"))!="-") c+=_uES("__utma="+t+";+"); if ((t=_uGC(dc,"__utmx="+_udh,";"))!="-") c+=_uES("__utmx="+t+";+"); if ((t=_uGC(dc,"__utmz="+_udh+".",";"))!="-") c+=_uES("__utmz="+t+";+"); if ((t=_uGC(dc,"__utmv="+_udh+".",";"))!="-") c+=_uES("__utmv="+t+";"); if (c.charAt(c.length-1)=="+") c=c.substring(0,c.length-1); return c; } function _uGC(l,n,s) { if (!l || l=="" || !n || n=="" || !s || s=="") return "-"; var i,i2,i3,c="-"; i=l.indexOf(n); i3=n.indexOf("=")+1; if (i > -1) { i2=l.indexOf(s,i); if (i2 < 0) { i2=l.length; } c=l.substring((i+i3),i2); } return c; } function _uDomain() { if (!_udn || _udn=="" || _udn=="none") { _udn=""; return 1; } if (_udn=="auto") { var d=_ubd.domain; if (d.substring(0,4)=="www.") { d=d.substring(4,d.length); } _udn=d; } _udn = _udn.toLowerCase(); if (_uhash=="off") return 1; return _uHash(_udn); } function _uHash(d) { if (!d || d=="") return 1; var h=0,g=0; for (var i=d.length-1;i>=0;i--) { var c=parseInt(d.charCodeAt(i)); h=((h << 6) & 0xfffffff) + c + (c << 14); if ((g=h & 0xfe00000)!=0) h=(h ^ (g >> 21)); } return h; } function _uFixA(c,s,t) { if (!c || c=="" || !s || s=="" || !t || t=="") return "-"; var a=_uGC(c,"__utma="+_udh+".",s); var lt=0,i=0; if ((i=a.lastIndexOf(".")) > 9) { _uns=a.substring(i+1,a.length); _uns=(_uns*1)+1; a=a.substring(0,i); if ((i=a.lastIndexOf(".")) > 7) { lt=a.substring(i+1,a.length); a=a.substring(0,i); } if ((i=a.lastIndexOf(".")) > 5) { a=a.substring(0,i); } a+="."+lt+"."+t+"."+_uns; } return a; } function _uTrim(s) { if (!s || s=="") return ""; while ((s.charAt(0)==' ') || (s.charAt(0)=='\n') || (s.charAt(0,1)=='\r')) s=s.substring(1,s.length); while ((s.charAt(s.length-1)==' ') || (s.charAt(s.length-1)=='\n') || (s.charAt(s.length-1)=='\r')) s=s.substring(0,s.length-1); return s; } function _uEC(s) { var n=""; if (!s || s=="") return ""; for (var i=0;i 0) r=a.substring(i+1,i2); else return ""; if ((i=a.indexOf(".",i2+1))>0) t=a.substring(i2+1,i); else return ""; if (f) { return r; } else { var c=new Array('A','B','C','D','E','F','G','H','J','K','L','M','N','P','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9'); return c[r>>28&m]+c[r>>23&m]+c[r>>18&m]+c[r>>13&m]+"-"+c[r>>8&m]+c[r>>3&m]+c[((r&7)<<2)+(t>>30&3)]+c[t>>25&m]+c[t>>20&m]+"-"+c[t>>15&m]+c[t>>10&m]+c[t>>5&m]+c[t&m]; } } function _uIN(n) { if (!n) return false; for (var i=0;i "9") && (c!=".")) return false; } return true; } function _uES(s,u) { if (typeof(encodeURIComponent) == 'function') { if (u) return encodeURI(s); else return encodeURIComponent(s); } else { return escape(s); } } function _uUES(s) { if (typeof(decodeURIComponent) == 'function') { return decodeURIComponent(s); } else { return unescape(s); } } function _uVG() { if((_udn.indexOf("www.google.") == 0 || _udn.indexOf(".google.") == 0 || _udn.indexOf("google.") == 0) && _utcp=='/' && _udn.indexOf("google.org")==-1) { return false; } return true; } function _uSP() { var s=100; if (_usample) s=_usample; if(s>=100 || s<=0) return true; return ((__utmVisitorCode(1)%10000)<(s*100)); } function urchinPathCopy(p){ var d=document,nx,tx,sx,i,c,cs,t,h,o; cs=new Array("a","b","c","v","x","z"); h=_uDomain(); if (_udn && _udn!="") o=" domain="+_udn+";"; nx=_uNx()+";"; tx=new Date(); tx.setTime(tx.getTime()+(_utimeout*1000)); tx=tx.toGMTString()+";"; sx=new Date(); sx.setTime(sx.getTime()+(_ucto*1000)); sx=sx.toGMTString()+";"; for (i=0;i<6;i++){ t=" expires="; if (i==1) t+=tx; else if (i==2) t=""; else if (i==5) t+=sx; else t+=nx; c=_uGC(d.cookie,"__utm"+cs[i]+"="+h,";"); if (c!="-") d.cookie="__utm"+cs[i]+"="+c+"; path="+p+";"+t+o; } } function _uCO() { if (!_utk || _utk=="" || _utk.length<10) return; var d='www.google.com'; if (_utk.charAt(0)=='!') d='analytics.corp.google.com'; _ubd.cookie="GASO="+_utk+"; path="+_utcp+";"+_udo; var sc=document.createElement('script'); sc.type='text/javascript'; sc.id="_gasojs"; sc.src='https://'+d+'/analytics/reporting/overlay_js?gaso='+_utk+'&'+Math.random(); document.getElementsByTagName('head')[0].appendChild(sc); } function _uGT() { var h=location.hash, a; if (h && h!="" && h.indexOf("#gaso=")==0) { a=_uGC(h,"gaso=","&"); } else { a=_uGC(_ubd.cookie,"GASO=",";"); } return a; } var _utk=_uGT(); if (_utk && _utk!="" && _utk.length>10 && _utk.indexOf("=")==-1) { if (window.addEventListener) { window.addEventListener('load', _uCO, false); } else if (window.attachEvent) { window.attachEvent('onload', _uCO); } } function _uNx() { return (new Date((new Date()).getTime()+63072000000)).toGMTString(); } ------------VpNz6ZMvTX6js7qDgnscWw--
Qui veritatem cognoscit
We also need to ask to what extent have these companies infiltrate= d the regulatory agencies and corrupted the approval process.
LF Velez
We should probably be looking at the funding sources for patient a= dvocacy groups as well — NAMI, for instance may be doing some grea= t work for families, but may also be doing some phenomenal PR work for p= harmaceutical companies…
Justice in MI
A brief historical footnote–
Freud was never a psychiatrist but a neurologist by training. Mainst= ream psychiatry, as it existed during Freud’s life, was mostly dis= trustful and rejecting of psychoanalytic (Freudian) approaches, with a f= ew significant exceptions, particularly in the U.S.
In those days, the majority of psychoanalysts were also neither psych= iatrists nor M.D.s. That changed once psychoanlysis became institutiona= lized, again especially in the U.S., with non-psychiatrists mostly exclu= ded.
In more recent years, that has changed again, particularly as psychia= try and pharma have become so intertwined.
To that degree, psychoanalysis has remained a center of challenge to = the pharma-centric model of psychiatry as it has “evolved.”<= /p>
Justice in MI
Part of the relevance of the above–not clear that Freud woul= d _not_ be pleased by the “corruption of psychiatry,” or at = least it would not have particularly surprised him.
smallz
LF Velez…
NAMI has been looked at hard:
http://www.nytimes.com/2009/10/22/health/22nami.html
elmore
This is just a morphing of T-MAP. Pharma will pay to influence, an= d others will accept the pay. And the groups will become more closed, mo= re self-referential, to lower the risk of whistle blowers.
smallz
but i agree. many out there that need to be looked at.
NAMI is a mess.
Betsy
Addressing the influence of the pharma industry on the psychiatric= community, do not forget the major practise of disease mongering wherei= n the DSM, once a small manual in the early 50’s is now a huge com= pendium of diseases invented by big Pharma in order to sell drugs.
pharmavet
I run into a lot of people in Pharma whom I would have no other wa= y to describe other than neurotic or narcissistic. They could benefit f= rom intensive psychoanalysis. On the other hand there are some pharmace= utical executives, as referred to on these boards that could not be clas= sified as neurotic. Since neurosis pertains to conflicts between desire= s and conscience, and since many of these individuals have no conscience= , they could not be considered as neurotic; psychotic perhaps, but not n= eurotic.
Truthseeker
NAMI is an organization that needs to be throughly investigated. = Their undue influence, in the provision of treatment and services to men= tal health clients, by Public Mental Health System of Care, has been the= major factor, as to why the ‘first line to treatment’ is wi= th toxic, brain disabling chemicals.
While it is obvious that they would promote these chemicals, on beha= lf of their Pharmaceutical Company Sponsor(s) it is also questionable as= to why the Government has allowed them to be the primary voice to influ= ence mental health policy and to continuously refer parents, of mental h= ealth clients to this corrupt organization.
The indoctrination, by NAMI, in their “Family to Family”= program agenda, also sponsored by the government and Big Pharma also ra= ises concern.
NAMI has organized themselves not unlike the NAZI’s had done an= d gained the undeserved and corrupt influence that they have been allowe= d, for so many years,imo. Why parent’s are so ignorant as to keep = supporting this activity, in light of the obviousness of the expose̵= 7;s, adverse effects and deaths caused by these chemicals and corrupt in= fluence is unconscionable.
Wake up NAMI membership!!! Your activities have harmed and killed e= nough innocent Children, Adults and Seniors.
Evelyn Pringle
NAMI certainly deserves every criticism mentioned above but by now= there are several other front groups that are equally guilty of accepti= ng Pharma’s money to do PR work.
For instance Mental Health America, the Depression and Bipolar Suppor= t Alliance, and Children and Adults with Attention Deficit Disorder.
=I’ve got the research that shows theses groups get just as much= of their funding from Pharma as NAMI does and yet NAMI is the only fron= t group singled whenever this topic comes up.
tiller
saw somewhere Evelyn that Senator Grassley has inquires into a bun= ch of them.
SteveM
Psychiatrists And Pharma: Undue Influence?
That question is OBE. The train has left the station. Normative psy= chiatry has morphed into a drug culture.
Money no longer influences psychiatrists to prescribe drugs. A scrip= t is the product of almost every patient engagement even without monetar= y inducements. Money only influences what drugs the psychiatrists presc= ribe.
Laurie
Pharma and psychiatry have created this mess…but the public = perpetuates the fraud with the belief that life should be puppies and bu= tterflies at all times.
Lose a loved one…take a pill, lose a job…take a pill, tired = one day….take a pill.
People have bought into the hype and until we stop the demand side, the = supply side will continue.
Life isn’t perfect, never was never will be, but if society contin= ues to search for Nirvana in a pill box, the cycle will continue.
pharmavet
There are so many stories of the now well accepted corruption of t= he psychiatric profession by pharmaceutical influence that I wonder whet= her anyone on these boards has ceased to be amazed by them, like me.
=I believe that the ultimate influence has filtered down to the Americ= an Board of Psychiatry, which certifies psychiatrists in the practice of= psychiatry. Board certification is an ever-increasing necessity to hav= e for many reasons. Like most students, psychiatry residents will study= hardest for what they anticipate will be on the Board Exams. The feedb= ack thet I get from newly Board-certified psychiatrists is the exam is a= t least 50% psychopharmacology, with increasingly less emphasis on the o= ther aspects of training.
This naturally has a trickle-down effect on the psychiatric residency= curriculum. Not only is there heavy emphasis on psychopharmacology, bu= t residents are encouraged (or in academia required) to spend time in th= e resrarch lab on a psychopharmacology project.
sadnessaddiction
Antidepressant advertising is directly targeted at manipulating no= rmal healthy women to want to be medicated. Women must stand up to big = pharma=E2=80=99s bullying them to over-medicate with antidepressants wa= shing out their emotions & personalities and interfering being mothe= rs, sisters, brothers, daughters, partners and lovers.. Women are target= ed for antidepressants by big Pharma in the same way that tobacco compan= ies targeted us 70 years ago. Drug companies are so effective at selling= unhappiness to women that women take more than twice as many antidepres= sants as men. Like effexor Wyeth/Pfizer plans on using modern marketing = techniques and direct payments to doctors to have Pristiq over prescribe= d instead of used based on evidence based diagnosis. http://sadnessaddiction.= blogspot.com/