Content-Type: multipart/related; start=<op.mhtml.1266423821031.ee47650f251f0bea@172.16.2.245>; boundary=----------T1mVmGU26u1NLb7zPZBClG
Content-Location: http://www.newscientist.com/article/dn18534-child-psychiatric-diagnosis-on-trial.html?full=true&print=true
Subject: =?utf-8?Q?Child=20psychiatric=20diagnosis=20on=20trial=20-=20health=20-=2016=20February=202010=20-=20New=20Scientist?=
MIME-Version: 1.0

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=dn18534-child-psychiatric-diagnosis-on-trial.html
Content-Type: text/html; charset=UTF-8; name=dn18534-child-psychiatric-diagnosis-on-trial.html
Content-ID: <op.mhtml.1266423821031.ee47650f251f0bea@172.16.2.245>
Content-Location: http://www.newscientist.com/article/dn18534-child-psychiatric-diagnosis-on-trial.html?full=true&print=true
Content-Transfer-Encoding: 8bit





<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="imagetoolbar" content="no" />

	<title>Child psychiatric diagnosis on trial - health - 16 February 2010 - New Scientist</title>

	<link rel="stylesheet" type="text/css" href="/css/basics.css" />
	<link rel="search" type="application/opensearchdescription+xml" title="New Scientist" href="http://www.newscientist.com/opensearch.xml" />
	<script type="text/javascript" src="/script/tools.js"></script>

	
<script type="text/javascript" charset="utf-8" src="/script/commenting.js">
</script>
    
 
	<meta name="robots" content="noindex, follow" />
 
 

<!-- rss feeds -->

	
	<link rel="alternate" type="application/rss+xml" title="New Scientist - Health" href="http://www.newscientist.com/feed/view?id=2&type=channel" />
	



	
	<link rel="alternate" type="application/rss+xml" title="New Scientist - Mental Health" href="http://www.newscientist.com/feed/view?id=14&type=topic" />
	



<!-- page styles -->
	<style type="text/css">
	@import "/css/article.css";
	@import "/css/comlist.css";
	@import "/data/images/ns/haas/haas.css";
	</style>
	<style type="text/css">
/* specific to this article view */
#maincol {border-top:solid #A7A7A7 1px; padding-top:15px;}

/* Basic commenting CSS*/
.combx {margin:10px 0 0 0;padding:10px 20px 10px 10px;}
#compnl {border-top:solid #A7A7A7 1px;}


/* comment styles for article page only */
/* form styles */
#comform {margin:20px 50px 20px 10px;}
#comform label{width: 90px;text-align: right;}
#comform div.userhelp {margin:0 0 2px 115px;}
#comform input.textinput, #comform textarea {width:300px;}
#comform div.floatclear {margin-bottom:10px;}
#comform input#comcancel{margin:0 10px 0 0;}
#comform input#compreview{margin:0 10px 0 0;}
#comform textarea {height:95px;}
	
		#snv_health a {background: url('/img/bg/snv_health.jpg') no-repeat; color:#fff;}
	
	</style>


 
 	<style type="text/css">
	@import "/css/articleprint.css";
	</style>
 

  
  
    
    	
	        <!-- Haas -->
	        <!-- jQuery from CDN -->
	        <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
	        <!-- json support -->
	        <script src="http://haas.newscientist.com/json2.js" type="text/javascript"></script>
	        <!-- haas core -->
	        <script src="http://haas.newscientist.com/HaasCoreV0.1.js" type="text/javascript"></script>
	        <link rel="stylesheet" href="http://haas.newscientist.com/HaasCoreV0.1.css" type="text/css" />
	        <!-- /Haas -->
        
    
  
  <script src="/script/jquery.min.js" type="text/javascript"></script>
  <script src="/script/facebox.js" type="text/javascript"></script>
  <link href="/css/facebox.css" media="screen" rel="stylesheet" type="text/css"/>

  <script type="text/javascript">
  <!--
    jQuery(document).ready(function($) {
      $('a[rel*=facebox]').facebox()
    })
	// -->
  </script>


</head>

<body onload="comformErrorcheck(false)">

	




<div id="pgtop" class="hldpg">
		<!-- google_ad_section_start(weight=ignore) -->

<p><a href="/">Home</a>

	
		<span class="separator">&#124;</span><a href="/section/health">Health</a>
	


		<span class="separator">&#124;</span>
		<a href='
		    
		        /section/science-news
		    
		    
		'>
		News
		</a>


	<span class="separator">&#124;</span><a href="/article/dn18534-child-psychiatric-diagnosis-on-trial.html">Back to article</a>

</p>

<!-- google_ad_section_end -->


		<h1>
		
		
			Child psychiatric diagnosis on trial 
		
		</h1>
		<ul class="markerlist">
		<li>
		
		
			
				18:11 16 February 2010
			
			
		

		 by
			
				
					<a href="/search?rbauthors=Peter+Aldhous"><b>Peter Aldhous</b></a>
				
				
				
			
		
		</li>
		
		
			<li>
			For similar stories, visit the
				
					
						<a href="/topic/mental-health"><b>Mental Health</b></a>
					
					
					
					
						Topic Guide
					
				
			</li>
		

		</ul>
</div><!-- pgtop -->

<div id="hldmain" class="hldpg floatclearfix">

<div id="hldcontent" class="floatleft">

<div id="maincol" class="floatleft">

	

	





	


<div id="artImg">




	
		
			
			
				<img src="/data/images/ns/cms/dn18534/dn18534-1_300.jpg" alt="Carolyn Riley overdosed her daughter on psychotropic drugs (Image: Gary Higgins/AP/PA)" title="Carolyn Riley overdosed her daughter on psychotropic drugs (Image: Gary Higgins/AP/PA)" />
				<p class="lowlight">Carolyn Riley overdosed her daughter on psychotropic drugs (Image: Gary Higgins/AP/PA)</p>
				
			
		
	





</div>






		


	





    
    	
        
		
		

	
    	
        
            
            
                <p class="infuse">When Carolyn Riley was convicted of killing her 4-year-old daughter Rebecca by overdosing her with psychotropic drugs prescribed for the child, some jurors reportedly felt that the psychiatrist who wrote the prescriptions should also have been on trial.</p>
            
        
		
		

	
    	
        
            
            
                <p class="infuse">That will not happen: the doctor was granted immunity when agreeing to testify in the case. But the validity of the condition for which Rebecca was being treated is being questioned by psychiatrists. The American Psychiatric Association (APA) says it needs to be replaced by an entirely new diagnosis, while others argue that this move could create fresh problems.</p>
            
        
		
		

	
    	
        
            
                <p class="infuse">Rebecca was being treated for juvenile bipolar disorder. The number of <a href="/article/mg19426043.900-bipolar-children--is-the-us-overdiagnosing.html">children diagnosed with this condition has skyrocketed</a>: in 2003 it was diagnosed in 1 in 100 under-20s who visited US doctors, up from 1 in 4000 in 1995, <a href="http://archpsyc.ama-assn.org/cgi/content/full/64/9/1032" target="ns">according to one estimate</a>.</p>
            
            
        
		
		

	
    	
        
            
            
                <p class="infuse">But the day after Carolyn Riley's conviction for second-degree murder last week, the APA released proposals suggesting that a newly defined condition, to be called <a href="http://www.dsm5.org/ProposedRevisions/Pages/proposedrevision.aspx?rid=397" target="ns">temper dysregulation disorder with dysphoria</a>(TDD), would better reflect the problems of many children who swing between extreme outbursts of aggression and periods of irritability, anger and sadness, and who are now classed as bipolar.</p>
            
        
		
		

	
    	
        
            
            
                <p class="infuse">According to <a href="http://www.hsc.stonybrook.edu/som/psychiatry/carlson_g.cfm " target="ns">Gabrielle Carlson</a>, a child psychiatrist at Stony Brook University in New York, diagnoses of juvenile bipolar disorder rose partly as a knock-on from previous diagnostic shifts, including a narrowing of "conduct disorder" to focus on children who will go on to develop antisocial personality disorder.</p>
            
        
		
		

	
    	
        
            
            
                <p class="infuse">That left psychiatrists searching for a label to guide treatment for children who were prone to severe violent outbursts and persistent mood problems. The answer seemed to come in 1995, when <a href="http://www.mgh.harvard.edu/psychiatry/ContentModules/GenericTexts/Wozniak%20Bio.aspx" target="ns">Janet Wozniak</a> of Massachusetts General Hospital in Boston argued that the violent outbursts were equivalent to the manic episodes of adults with bipolar disorder. It has since emerged, however, that these children rarely go on to become bipolar adults.</p>
            
        
		
		

	
    	
        
            
            
                <p class="infuse">The big question is what effect a new diagnosis will have on treatment. Rebecca Riley was on an antipsychotic called quetiapine, the anticonvulsant valproate, and clonidine, which was being given as a sedative. The most severe cases of TDD might still be treated with antipsychotics, but probably only as a temporary measure. With bipolar disorder, drugs are often prescribed long-term.</p>
            
        
		
		

	
    	
        
            
            
                <p class="infuse">The psychiatrist Allen Frances, who led a 1994 revision of the APA's diagnostic manual, has already accused the association of creating a "new monster". Writing in the professional newspaper <a href="http://www.psychiatrictimes.com/home/content/article/10168/1522341 " target="ns">Psychiatric Times</a>, Frances argued that TDD "would be very common at every age in the general population and would promote a large expansion in the use of antipsychotic medications".</p>
            
        
		
		

	
    	
        
            
            
                <p class="infuse">That criticism is rejected by <a href="http://asp.cumc.columbia.edu/facdb/profile_list.asp?uni=ds18&DepAffil=Psychiatry" target="ns">David Shaffer</a> of Columbia University in New York, who chairs the APA working group that proposed the new TDD definition. He argues that it has been carefully defined to focus on children with especially severe outbursts. "It's not psychiatrising normal temper tantrums," he says.</p>
            
        
		
		

	


	


       


	

	
		
	



	

	



	


















	<!-- google_ad_section_start(weight=ignore) -->
<p class="infotext">If you would like <b>to reuse any content</b> from New Scientist, either in print or online, please <b><a href="/contact/syndication?titleOrURL=http://www.newscientist.com/article/dn18534">contact the syndication</a></b> department first for permission. New Scientist does not own rights to photos, but there are a <a href="/info/in216?full=true">variety of licensing options</a> available for use of articles and graphics we own the copyright to.</p>
<!-- google_ad_section_end -->




	<p class="marker"><a href="/article/dn18534-child-psychiatric-diagnosis-on-trial.html">Back to article</a></p>
	<div id="artTools" class="floatclear">
<div class="floatleft"><a href="/article/dn18534-child-psychiatric-diagnosis-on-trial.html?full=true&amp;print=true"><img src="/img/icon/art_print.gif" alt="print" title="print" class="floatleft"/>PRINT</a></div>
<div class="floatleft"><a href="/art/send!input?id=dn18534"><img src="/img/icon/art_send.gif" alt="send" title="send" class="floatleft"/>SEND</a></div>
<div class="floatleft">
<!-- AddThis Button BEGIN -->
	<script type="text/javascript">addthis_pub  = 'ns.html';</script>
	<a href="http://www.addthis.com/bookmark.php" onmouseover="return addthis_open(this, '', '[URL]', '[TITLE]')" onmouseout="addthis_close()" onclick="return addthis_sendto()"><img src="http://s9.addthis.com/button1-share.gif" width="125" height="16" alt="" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
<!-- AddThis Button END -->
</div>
</div>

	<!-- google_ad_section_start(weight=ignore) -->

<div class="adline"><p class="infotext">ADVERTISEMENT</p></div>
<div class="pnl">
<div class="mpMPU"><!-- SLOT: ns_section_health_mpu -->
<!-- AdtechUtils - JavaScript - $Revision: 1.2 $ - slotId="ns_section_health_mpu" -->
<script type="text/javascript"><!--
	var myDate = new Date();
	AT_MISC = myDate.getTime();
	document.write('<scr' + 'ipt src="http://adserver.adtech.de/?addyn|2.0|289|113593|1|170|ADTECH;key=health+dn18534+nosbscrbr;target=nsad;loc=100;misc=' + AT_MISC + ';grp=162311368;">');
	if (navigator.userAgent.indexOf("Mozilla/2.") >= 0 || navigator.userAgent.indexOf("MSIE") >= 0) {
		document.write('<a href="http://adserver.adtech.de/?adlink|2.0|289|113593|1|170|ADTECH;key=health+dn18534+nosbscrbr;grp=162311368;loc=200;" target="nsad"><img src="http://adserver.adtech.de/?adserv|2.0|289|113593|1|170|ADTECH;key=health+dn18534+nosbscrbr;grp=162311368;loc=200;" border="0" width="300" height="250"></a>');
	}
	document.write('</scr' + 'ipt>');// -->
</script>
<noscript><div><a href="http://adserver.adtech.de/?adlink|2.0|289|113593|1|170|ADTECH;key=health+dn18534+nosbscrbr;grp=162311368;loc=300;" target="nsad"><img src="http://adserver.adtech.de/?adserv|2.0|289|113593|1|170|ADTECH;key=health+dn18534+nosbscrbr;grp=162311368;loc=300;" width="300" height="250" alt="Advertising"/></a></div></noscript>
</div>
</div><!-- pnl -->


<!-- google_ad_section_end -->



</div><!-- maincol -->





</div><!-- hldcontent -->


	<div id="skycol" class="floatright">
		
			<!-- google_ad_section_start(weight=ignore) -->
<div id="skcolAdSky">
<div class="adline"><p class="infotext">ADVERTISEMENT</p></div><!-- SLOT: ns_section_health_sky -->
<!-- AdtechUtils - JavaScript - $Revision: 1.2 $ - slotId="ns_section_health_sky" -->
<script type="text/javascript"><!--
	var myDate = new Date();
	AT_MISC = myDate.getTime();
	document.write('<scr' + 'ipt src="http://adserver.adtech.de/?addyn|2.0|289|113592|1|154|ADTECH;key=health+dn18534+nosbscrbr;target=nsad;loc=100;misc=' + AT_MISC + ';grp=162311368;">');
	if (navigator.userAgent.indexOf("Mozilla/2.") >= 0 || navigator.userAgent.indexOf("MSIE") >= 0) {
		document.write('<a href="http://adserver.adtech.de/?adlink|2.0|289|113592|1|154|ADTECH;key=health+dn18534+nosbscrbr;grp=162311368;loc=200;" target="nsad"><img src="http://adserver.adtech.de/?adserv|2.0|289|113592|1|154|ADTECH;key=health+dn18534+nosbscrbr;grp=162311368;loc=200;" border="0" width="160" height="600"></a>');
	}
	document.write('</scr' + 'ipt>');// -->
</script>
<noscript><div><a href="http://adserver.adtech.de/?adlink|2.0|289|113592|1|154|ADTECH;key=health+dn18534+nosbscrbr;grp=162311368;loc=300;" target="nsad"><img src="http://adserver.adtech.de/?adserv|2.0|289|113592|1|154|ADTECH;key=health+dn18534+nosbscrbr;grp=162311368;loc=300;" width="160" height="600" alt="Advertising"/></a></div></noscript>

</div>
<!-- google_ad_section_end -->
		
		
	</div><!-- skycol -->

</div><!-- hldmain -->
<script type="text/javascript">
    var YMPParams =
    {
        autoadvance:false,
        volume:0.5
    }
</script>
<script type="text/javascript" src="http://mediaplayer.yahoo.com/js"></script>





<div><script type="text/javascript">

<!--OMNITURE CODE HBX2.5 (Universal)-->
<!-- Copyright 1997 - 2008. Omniture, Inc. All Rights Reserved.  Omniture is a registered trademark of Omniture, Inc. in the United States, Canada, Japan, and the European Community. -->

var _hbEC=0,_hbE=new Array;function _hbEvent(a,b){b=_hbE[_hbEC++]=new Object();b._N=a;b._C=0;return b;}
var hbx=_hbEvent("pv");hbx.vpc="HBX0250u";hbx.gn="ehg-newscientist.hitbox.com";

//BEGIN EDITABLE SECTION
//CONFIGURATION VARIABLES
hbx.acct="DM540714DIDE71EN3;DM541110CCZA";//ACCOUNT NUMBER(S)
hbx.pn="Child+psychiatric+diagnosis+on+trial+-+health+-+16+February+2010";//hbx.pn="PUT+PAGE+NAME+HERE";PAGE NAME(S)
hbx.mlc="/ns/health";//hbx.mlc="CONTENT+CATEGORY";MULTI-LEVEL CONTENT CATEGORY
hbx.pndef="title";//DEFAULT PAGE NAME
hbx.ctdef="full";//DEFAULT CONTENT CATEGORY

//OPTIONAL PAGE VARIABLES
//ACTION SETTINGS
hbx.fv="";//FORM VALIDATION MINIMUM ELEMENTS OR SUBMIT FUNCTION NAME
hbx.lt="auto";//LINK TRACKING
hbx.dlf="n";//DOWNLOAD FILTER
hbx.dft="n";//DOWNLOAD FILE NAMING
hbx.elf="n";//EXIT LINK FILTER

//SEGMENTS AND FUNNELS
hbx.seg="";//hbx.seg="";VISITOR SEGMENTATION
hbx.fnl="";//FUNNELS

//CAMPAIGNS
hbx.cmp="";//CAMPAIGN ID
hbx.cmpn="";//CAMPAIGN ID IN QUERY
hbx.dcmp="";//DYNAMIC CAMPAIGN ID
hbx.dcmpn="";//DYNAMIC CAMPAIGN ID IN QUERY
hbx.dcmpe="";//DYNAMIC CAMPAIGN EXPIRATION
hbx.dcmpre="";//DYNAMIC CAMPAIGN RESPONSE EXPIRATION
hbx.hra="";//RESPONSE ATTRIBUTE
hbx.hqsr="";//RESPONSE ATTRIBUTE IN REFERRAL QUERY
hbx.hqsp="nsref";//RESPONSE ATTRIBUTE IN QUERY
hbx.hlt="";//LEAD TRACKING
hbx.hla="";//LEAD ATTRIBUTE
hbx.gp="";//CAMPAIGN GOAL
hbx.gpn="";//CAMPAIGN GOAL IN QUERY
hbx.hcn="";//CONVERSION ATTRIBUTE
hbx.hcv="";//CONVERSION VALUE
hbx.cp="null";//LEGACY CAMPAIGN
hbx.cpd="";//CAMPAIGN DOMAIN

//CUSTOM VARIABLES
hbx.ci="";//CUSTOMER ID
hbx.hc1="Peter+Aldhous|dn18534";

hbx.hc2="dn18534|Child+psychiatric+diagnosis+on+trial+";

hbx.hc3="";

hbx.hc4="dn18534|print";


hbx.hrf="";//CUSTOM REFERRER
hbx.pec="";//ERROR CODES

//INSERT CUSTOM EVENTS
var ev1 = _hbEvent("search"); // required definition to create custom event
ev1.keywords="NONE_ENTERED_BY_USER";
 // required value
ev1.results="";
 // integer value required. Any number of results, or 0 to have the keyword displayed in the Failed Keywords report
ev1.attr1="datefalse";

ev1.attr2="sortrelevance";

ev1.attr3="none";

ev1.attr4="issue=none|subject=none|articletype=none";


//END EDITABLE SECTION

//REQUIRED SECTION. CHANGE "YOURSERVER" TO VALID LOCATION ON YOUR WEB SERVER (HTTPS IF FROM SECURE SERVER)
</script><script type="text/javascript" defer="defer" src="/script/hbx.js"></script>
<!--END WEBSIDESTORY CODE-->
</div>
<div><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-3467316-2");
pageTracker._trackPageview();
</script>

<!-- Start Quantcast tag -->
<script type="text/javascript">
_qoptions={
qacct:"p-7fezFs_KgDsdw"
};
</script>
<script type="text/javascript" src="http://edge.quantserve.com/quant.js"></script>
<noscript>
<img src="http://pixel.quantserve.com/pixel/p-7fezFs_KgDsdw.gif" style="display: none;" border="0" height="1" width="1" alt="Quantcast"/>
</noscript>
<!-- End Quantcast tag --></div>
</body>
</html>
------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://www.newscientist.com/img/icon/icon_arrow.gif
Content-Transfer-Encoding: Base64

R0lGODlhBQAJALMAAP///83u+7vo+rbm+a3j+aTg+ErA8UC+8Ty88QAAAAAAAAAA
AAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78i
IGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxu
czp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4x
LWMwMzQgNDYuMjcyOTc2LCBTYXQgSmFuIDI3IDIwMDcgMjI6Mzc6MzcgICAgICAg
ICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24g
cmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhhcD0iaHR0cDovL25zLmFk
b2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx4YXA6Q3JlYXRvclRvb2w+QWRv
YmUgRmlyZXdvcmtzIENTMzwveGFwOkNyZWF0b3JUb29sPgogICAgICAgICA8eGFw
OkNyZWF0ZURhdGU+MjAwNy0wMS0wNFQyMjoxMDozMVo8L3hhcDpDcmVhdGVEYXRl
PgogICAgICAgICA8eGFwOk1vZGlmeURhdGU+MjAwOS0wMy0wMlQxNTozNTo1OFo8
L3hhcDpNb2RpZnlEYXRlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAg
PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6
ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAg
PGRjOmZvcm1hdD5pbWFnZS9naWY8L2RjOmZvcm1hdD4KICAgICAgPC9yZGY6RGVz
Y3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBl
bmQ9InciPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ
2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qp
qKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5
eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJ
SEdGRURDQkFAPz49PAA6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZ
GBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBBwAAACwAAAAABQAJAAAEGNCg
AoBAqAJJLdZYABSIUR2HABDleQxVBAA7

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=basics.css
Content-Type: text/css; charset=UTF-8; name=basics.css
Content-Location: http://www.newscientist.com/css/basics.css
Content-Transfer-Encoding: 8bit

* {margin:0; padding:0; border:0;}
body {font-family:arial, sans-serif; font-size:80%;background:#fff;color:#000;}

/* Font sizes only */
h1 {font-size:1.5em;} /* article headlines */
h2 {font-size:1.3em;} /* Maincol teaser headlines */
h3 {font-size:1.1em;} /* Teaser headlines, article crossheads, comment headlines */
h4 {font-size:2.5em;} /* Header Channel name */
h5, p, li {font-size:1em;} /* h5: navigation elements */
h6 {font-size:1.2em;} /* box headings */
small {font-size:0.85em;} /* copyright info, "advertisement" notifiers */
.infotext {font-size:0.85em;} /* Datelines */
label {font-size:1em;font-weight:bold;}

/* List styles */
ul {list-style:square inside;}
ul.markerlist, ul.notlist {list-style:none outside;}
ul.spacedlist li {margin-top:8px;}
ol {margin-left:30px;list-style-type: decimal;}
ul.markerlist li, .marker {padding-left:10px; background: url('/img/icon/icon_arrow.gif') no-repeat 0 5px;}

/* Basic font colors */
.highlight {color:#00759A;} 
.lowlight {color:#A7A7A7;} /* copyright/advertisement heading/comment dateline */
.separator {color:#717171; padding:0 5px;} /* Pipes on paginators */
.userhelp {color:#c00;} /* error messages and other info */
.userhelp a {color:#900;text-decoration:underline;}
.userhelp a:visited, .userhelp a:hover {color:#F00;}

a {text-decoration:none; color:#00759A;}
a:hover, a:visited {color:#34A3D1;}

.asterisk {
	font-family: Verdana, sans-serif;
	font-size: 11px;
	color:#CC0000;
}
span.asterisk {margin-left:3px;}

.bxbg {background-color:#f2f2f2;} /* standard box bg colour */

/* form styles */
/* background has to be important because otherwise IE will ignore it */
.textinput {
	padding:2px;
	background:#f2f2f2 !important;
	font-family: arial, sans-serif;
	border:1px solid #ccc;
	font-size:1em;
	}

textarea {
	padding:3px;
	border:1px solid #ccc;
	background:#f2f2f2;
	font-family: arial, sans-serif;
	font-size:1em;
	resize:none;
	}

.invertbutton {
	padding:2px 5px;
	border:1px solid #34A3D1;
	background:#fff;
	font-size:1em;
	font-weight:bold;
	color:#34A3D1;
}
.formbutton {
	padding:2px 5px;
	border:1px solid #34A3D1;
	background:#34A3D1;
	font-size:1em;
	font-weight:bold;
	color:#fff;
}



/* html styles and hacks*/
.floatleft {float:left;}
.floatright {float:right;}
.block {display:block;}
.inline, form {display:inline;}
.centered {margin-left:auto; margin-right:auto; display:block;}
.centercopy  {text-align:center;}
/* to extend container div to height of floated boxes within */
.floatclear {width:100%; overflow:hidden;} /* width overcomes IE problems */
.floatclearfix:after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=tools.js
Content-Type: text/javascript; charset=UTF-8; name=tools.js
Content-Location: http://www.newscientist.com/script/tools.js
Content-Transfer-Encoding: 8bit



// header and footer login
function rollReveal(divid)
{
document.getElementById(divid).style.visibility = 'visible';
}

function rollRestore(divid)
{
document.getElementById(divid).style.visibility = 'hidden';
}




// Tabbed boxes
function switchTab(tabView,tabHide) {

if (document.getElementById)
{
	document.getElementById(tabView).style.display = "inline";
	document.getElementById(tabHide).style.display = "none";
	return false;
}
}



// Comment form preview window
var comPrevTargetName = "comPreviewWin";
var comPrevAction = "/commenting/preview";

function commentpreview() {
	var comForm = document.getElementById("commentForm");
	
	if (comForm != null) {
		// note original settings
	    var originalTarget = comForm.target;
	    var originalAction = comForm.action;

	    // make a new popup window
		var myWin = window.open("",comPrevTargetName,"width=500,height=350,scrollbars=yes,toolbar=0");

		// make form submit to whatever target and action 
	    comForm.target = comPrevTargetName;
	    comForm.action = comPrevAction;
	    comForm.submit();

	 	// revert to original settings
	    comForm.target = originalTarget;
	    comForm.action = originalAction;
	}
	return true;
}
------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=commenting.js
Content-Type: text/javascript; name=commenting.js
Content-Location: http://www.newscientist.com/script/commenting.js
Content-Transfer-Encoding: 8bit

function comformErrorcheck(errors) {
	if (errors && (document.getElementById("comform") != null)) {
		document.getElementById("comform").scrollIntoView(true);
	}
}

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline
Content-Type: text/css; charset=UTF-8
Content-Location: http://www.newscientist.com/css/article.css
Content-Transfer-Encoding: 8bit

h1 {margin:20px 0;}

#maincol p {line-height:140%;margin:0 20px 20px 0;}
#maincol ul {margin-bottom:20px;}

#maincol h3.crosshead {margin:0 20px 10px 10px;padding:0; border-bottom:solid #00759A 1px;color:#717171;line-height:140%;}

div.artVid {margin-bottom:10px;}
div.hldVid {padding-bottom:8px;}

.artpaginator {margin:0 0 25px 0; }
.artpaginator .floatleft {padding-left:10px;}

#artTools {margin:5px 0 15px 0;}
#artTools div.floatleft {margin-left:15px;}
#artTools div.floatleft img {margin-right:3px;}
#artTools a {color:#000;}

#artImg {margin-bottom:20px;}
#artImg img {margin-bottom:5px;}
#artImg p {margin-top:5px;}

.artbx {margin:10px 20px 10px 0; padding:10px 20px 10px 0;}
.bookbx {margin:10px 20px 10px 0; padding:10px;}
#maincol p, #maincol .infotext, #maincol .artbx h3, .quotebx, .artbx, #artIssueInfo, #compnl, #pgtop p, #pgtop h1, #pgtop ul, .artVid {margin-left:10px;} /* left margin tweak */
#hldartIssueInfo {margin-right:30px;}
#compnl p {margin-left:0;}

.quotebx {margin:10px 20px 10px 10px; padding:20px 0;} /* left margin tweak */
.quoteopen {margin-left:20px; background:url(/img/bg/quote_open.gif) top left no-repeat;}
.quoteclose {margin-right:20px; background:url(/img/bg/quote_close.gif) bottom right no-repeat;}
.quotebody {padding:40px; font-size:1.5em; letter-spacing:-1px;}

#artIssueInfo {margin-bottom:20px;}
#artIssueInfo img.cover {margin:10px;}
#artEndinfoTxt {width:280px;}
------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://www.newscientist.com/img/bg/quote_open.gif
Content-Transfer-Encoding: Base64

R0lGODlhKgAjAKIAANbW1t7e3vDw8Pf39+Xl5QAAAAAAAAAAACH5BAEHAAMALAAA
AAAqACMAAAO/OLrMAoG0OV+keATAucjN1gEfODxjZ56pChJtV2JwTGa1PU95vDMi
WyATjA0pxZYEk0wteTYPLnqjoHSZqy9DfVK6RCqoOcpSj9Yzl/pjUKuVt1nMlNfp
33db8YYzejZeC4AxggpkLUh9AHl9hosAj5ATkIwNlWh8kJlafQ6Vlgqdb2ijaqKg
oaZ4q1FLrYELqWizsqC0twuIQrq5qJUzsC07oJeVDcIun4tpdnHOz4UgrYYVQRcr
J9fV2d3eAwkAOw==

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://www.newscientist.com/img/bg/quote_close.gif
Content-Transfer-Encoding: Base64

R0lGODlhKgAjAKIAANbW1t7e3vDw8Pf39+Xl5f///wAAAAAAACH5BAEHAAUALAAA
AAAqACMAAAPWWLrc/jCyQQK4gQypqMWaRF1kKURjaUKD6gKn075rM9P1cuNX3PGu
zQ9YEhYExBwy2Vt8mAEnEyOdAoRPJtZ6VWSTQgI3JrbGdsnzuMr0fYE+NFxnZrxx
xsKdlpfjJ1N5BWVEDoRAMklRNooPhzQEjkSRDks8ggqWf4k8i5w4now8PqI4pAya
LxGpLhF7TRCvMCydKLUQjyqYC7lFEKw5laO/PJQPwCTGDb0kocu3NrLOOtLEOMoN
yBfYqNcS2twNNKcP4xxHKgG7wiXq5x0Vs+/wFuQQCQA7

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline
Content-Type: text/css; charset=UTF-8
Content-Location: http://www.newscientist.com/css/comlist.css
Content-Transfer-Encoding: 8bit

/* comment styles for article page only */
.compaginator {margin:15px 0 25px 0;}
.comlev1, .comlev3, .comlev5 {background:#f2f2f2 ;}
.comlev2, .comlev4 {background:#FFF;}
.comhead {min-height:35px;padding:0 0 0 50px;background:url(/img/bg/quote_open.gif) no-repeat;}
.comhead b {color:#000;}
.combody {margin:10px 0 0 0;}
.comfoot {padding:15px 50px 0 0;height:20px;background:url(/img/bg/quote_close.gif) bottom right no-repeat;text-align:right;}
.comfoot b.marker {margin:0 0 0 15px;}
.commore {text-align:right;margin-top:5px;}
.comview {margin-top:5px;}
------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline
Content-Type: text/css; charset=UTF-8
Content-Location: http://www.newscientist.com/data/images/ns/haas/haas.css
Content-Transfer-Encoding: 8bit

/* General overlay styles */
#hldIntMain {width:830px; margin:120px auto; padding:15px 10px 10px 0; border:1px solid #fff; background:#069; line-height:140%; color:#fff;}
#hldIntMain #intlogo {width:234px; margin-top:5px}

#hldIntMain .intContent {margin:30px 10px 30px 40px;}
#hldIntMain .intContent h1 {margin-bottom:20px; font-size:2.5em; line-height:100%; letter-spacing:-0.03em;}
#hldIntMain .intContent p {margin-bottom:20px; line-height:140%;}
#hldIntMain ul.markerlist li, #hldIntMain .marker {background: url('http://www.newscientist.com/data/ads/nssubs/offers/subsave0902/bulletPoint.jpg') no-repeat 0 5px;}

#hldIntMain a, #hldIntMain a:hover, #hldIntMain a:visited, #hldIntMain h1 {text-decoration:none; color:#fff;}



/* form styles */
#hldIntMain #regform {margin:0 300px 0 0;}
#hldIntMain #haasForm span.label {display:block;width:250px; margin:0 0 10px 0;font-weight:bold;text-align: left;float:left;}
#hldIntMain #haasForm span.mandatory {display:block;width:20px; margin:0 30px 0 10px;text-align: left;float:left;font-family: Verdana, sans-serif;font-size: 11px;color:#CC0000;}
#hldIntMain #haasForm span.value {display:block; float:right;}
#hldIntMain #haasForm div.formField {width:100%; overflow:hidden;} /* width overcomes IE problems */
#hldIntMain #haasForm div.formField input, #hldIntMain #haasForm select, #hldIntMain #haasForm textarea {width:200px;}
#hldIntMain #haasForm input.tickbx {margin-right:10px;}
#hldIntMain #haasForm .formbutton {margin-top:25px;}

#hldIntMain.error {display:block;}

/* Styles for the Registration benefits page */
#hldIntMain #hldIntSubsBtn {margin-top:20px; margin-bottom:20px; font-size:14px;}

#hldIntMain #bdLogin {margin:0 150px 10px 0;}

#hldIntMain #bdLogin div {margin:5px 0;}
#hldIntMain .hldrememberme label {font-weight:normal;}
#hldIntMain .rememberme {padding-left:100px;}
#hldIntMain #bdLogin label {width:100px; text-align: left;}
#hldIntMain #bdLogin input.textinput {width:150px;}
#hldIntMain #bdLogin div.floatclear {margin-bottom:10px;}
#hldIntMain #bdLogin .formbutton {margin-top:25px;}

#hldIntMain #regBenefit {border-spacing: 0; border-collapse: collapse;}
#hldIntMain #regBenefit thead {font-weight:bold;}
#hldIntMain #regBenefit td {padding:5px;}
#hldIntMain #regBenefit td.bordertop {border-top:solid #f2f2f2 1px;}
#hldIntMain #regBenefit td.borderright {border-right:solid #f2f2f2 1px;}
#hldIntMain #regBenefit td.item {font-weight:bold; text-align:center;}

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline
Content-Type: image/jpeg
Content-Location: http://www.newscientist.com/img/bg/snv_health.jpg
Content-Transfer-Encoding: Base64

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwK
CgsKCgwQDAwMDAwMEAwODxAPDgwTExQUExMcGxsbHCAgICAgICAgICD/2wBDAQcH
Bw0MDRgQEBgaFREVGiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICD/wAARCAAlAJwDAREAAhEBAxEB/8QAGAABAQEBAQAAAAAA
AAAAAAAAAAEDBAf/xAAXEAEBAQEAAAAAAAAAAAAAAAAAExIB/8QAGgEBAAIDAQAA
AAAAAAAAAAAAAAIFAwQGB//EAB8RAQEBAAICAgMAAAAAAAAAAAAREgECAwQFQRMx
Qv/aAAwDAQACEQMRAD8A9V1xR12UNFIa4UhopF1wpE1wpF1wpE0UhopDXCkNcKQ0
UhopDXCkNFIaKQ1wpDXCkNcKQ1wpGFEayQoUhQpChSFCkKFIUKQoUhQpChSFCkKF
IUKQoUhQpChSFCkKFIUKQoUjmohWXJQpkoUyUKZKFMlCmShTJQpkoUyUKZKFMlCm
ShTJQpkoUyUKZKFMlCmShTJQply6QrLDRSGikNFIaKQ0UhQpDRSGikNFIbKQ2Uho
pDRSGikNFIaKQ2UhspDRSMnSPP0a/tePjt15v03vQ9nv4/JxP1yNX0PHxzxr7WPz
Xs9+O34/5VZKAAAAAAAAAAAAAAAAB//Z

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline
Content-Type: text/css; charset=UTF-8
Content-Location: http://www.newscientist.com/css/articleprint.css
Content-Transfer-Encoding: 8bit

#pgtop {width:800px; margin:15px auto;}
#skycol {width:160px;}
#skycol .adline p {margin-bottom:5px;}
#hldmain {width:800px; margin:0 auto;}
#hldcontent {width:600px;}
#maincol {float:none; padding-bottom:50px;}
#artTools div.floatleft {margin:10px 10px 0 0;}

#artIssueInfo {padding:10px;}
#artIssueInfo img.cover {width:0px; height:0px;}

#artImg {width:310px; float:right; margin-bottom:20px; margin-left:10px; padding-left:10px; border-left:1px solid #717171;}
#artImg p {margin:5px 0 0 0;}
------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=jquery-1.3.2.min.js
Content-Type: application/x-javascript; name=jquery-1.3.2.min.js
Content-Location: http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js
Content-Transfer-Encoding: Base64

LyoNCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjEuMy4yDQogKg0KICog
Q29weXJpZ2h0IChjKSAyMDA5IEpvaG4gUmVzaWcsIGh0dHA6Ly9qcXVlcnkuY29t
Lw0KICoNCiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg
Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZw0KICogYSBjb3B5IG9mIHRo
aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo
dGhlDQogKiAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0
aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nDQogKiB3aXRob3V0IGxpbWl0YXRp
b24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp
c2gsDQogKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3Bp
ZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8NCiAqIHBlcm1pdCBwZXJzb25zIHRv
IHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj
dCB0bw0KICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOg0KICoNCiAqIFRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl
IHNoYWxsIGJlDQogKiBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50
aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4NCiAqDQogKiBUSEUgU09GVFdB
UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg
S0lORCwNCiAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg
TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRg0KICogTUVSQ0hBTlRBQklMSVRZ
LCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQNCiAqIE5PTklO
RlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09Q
WVJJR0hUIEhPTERFUlMgQkUNCiAqIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B
R0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04NCiAq
IE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBP
VVQgT0YgT1IgSU4gQ09OTkVDVElPTg0KICogV0lUSCBUSEUgU09GVFdBUkUgT1Ig
VEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuDQogKg0K
ICogRGF0ZTogMjAwOS0wMi0xOSAxNzozNDoyMSAtMDUwMCAoVGh1LCAxOSBGZWIg
MjAwOSkNCiAqIFJldmlzaW9uOiA2MjQ2DQogKi8NCihmdW5jdGlvbigpe3ZhciBs
PXRoaXMsZyx5PWwualF1ZXJ5LHA9bC4kLG89bC5qUXVlcnk9bC4kPWZ1bmN0aW9u
KEUsRil7cmV0dXJuIG5ldyBvLmZuLmluaXQoRSxGKX0sRD0vXltePF0qKDwoLnxc
cykrPilbXj5dKiR8XiMoW1x3LV0rKSQvLGY9L14uW146I1xbXC4sXSokLztvLmZu
PW8ucHJvdG90eXBlPXtpbml0OmZ1bmN0aW9uKEUsSCl7RT1FfHxkb2N1bWVudDtp
ZihFLm5vZGVUeXBlKXt0aGlzWzBdPUU7dGhpcy5sZW5ndGg9MTt0aGlzLmNvbnRl
eHQ9RTtyZXR1cm4gdGhpc31pZih0eXBlb2YgRT09PSJzdHJpbmciKXt2YXIgRz1E
LmV4ZWMoRSk7aWYoRyYmKEdbMV18fCFIKSl7aWYoR1sxXSl7RT1vLmNsZWFuKFtH
WzFdXSxIKX1lbHNle3ZhciBJPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKEdbM10p
O2lmKEkmJkkuaWQhPUdbM10pe3JldHVybiBvKCkuZmluZChFKX12YXIgRj1vKEl8
fFtdKTtGLmNvbnRleHQ9ZG9jdW1lbnQ7Ri5zZWxlY3Rvcj1FO3JldHVybiBGfX1l
bHNle3JldHVybiBvKEgpLmZpbmQoRSl9fWVsc2V7aWYoby5pc0Z1bmN0aW9uKEUp
KXtyZXR1cm4gbyhkb2N1bWVudCkucmVhZHkoRSl9fWlmKEUuc2VsZWN0b3ImJkUu
Y29udGV4dCl7dGhpcy5zZWxlY3Rvcj1FLnNlbGVjdG9yO3RoaXMuY29udGV4dD1F
LmNvbnRleHR9cmV0dXJuIHRoaXMuc2V0QXJyYXkoby5pc0FycmF5KEUpP0U6by5t
YWtlQXJyYXkoRSkpfSxzZWxlY3RvcjoiIixqcXVlcnk6IjEuMy4yIixzaXplOmZ1
bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RofSxnZXQ6ZnVuY3Rpb24oRSl7cmV0
dXJuIEU9PT1nP0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMpOnRoaXNb
RV19LHB1c2hTdGFjazpmdW5jdGlvbihGLEgsRSl7dmFyIEc9byhGKTtHLnByZXZP
YmplY3Q9dGhpcztHLmNvbnRleHQ9dGhpcy5jb250ZXh0O2lmKEg9PT0iZmluZCIp
e0cuc2VsZWN0b3I9dGhpcy5zZWxlY3RvcisodGhpcy5zZWxlY3Rvcj8iICI6IiIp
K0V9ZWxzZXtpZihIKXtHLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrIi4iK0grIigi
K0UrIikifX1yZXR1cm4gR30sc2V0QXJyYXk6ZnVuY3Rpb24oRSl7dGhpcy5sZW5n
dGg9MDtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh0aGlzLEUpO3JldHVybiB0
aGlzfSxlYWNoOmZ1bmN0aW9uKEYsRSl7cmV0dXJuIG8uZWFjaCh0aGlzLEYsRSl9
LGluZGV4OmZ1bmN0aW9uKEUpe3JldHVybiBvLmluQXJyYXkoRSYmRS5qcXVlcnk/
RVswXTpFLHRoaXMpfSxhdHRyOmZ1bmN0aW9uKEYsSCxHKXt2YXIgRT1GO2lmKHR5
cGVvZiBGPT09InN0cmluZyIpe2lmKEg9PT1nKXtyZXR1cm4gdGhpc1swXSYmb1tH
fHwiYXR0ciJdKHRoaXNbMF0sRil9ZWxzZXtFPXt9O0VbRl09SH19cmV0dXJuIHRo
aXMuZWFjaChmdW5jdGlvbihJKXtmb3IoRiBpbiBFKXtvLmF0dHIoRz90aGlzLnN0
eWxlOnRoaXMsRixvLnByb3AodGhpcyxFW0ZdLEcsSSxGKSl9fSl9LGNzczpmdW5j
dGlvbihFLEYpe2lmKChFPT0id2lkdGgifHxFPT0iaGVpZ2h0IikmJnBhcnNlRmxv
YXQoRik8MCl7Rj1nfXJldHVybiB0aGlzLmF0dHIoRSxGLCJjdXJDU1MiKX0sdGV4
dDpmdW5jdGlvbihGKXtpZih0eXBlb2YgRiE9PSJvYmplY3QiJiZGIT1udWxsKXty
ZXR1cm4gdGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25l
ckRvY3VtZW50fHxkb2N1bWVudCkuY3JlYXRlVGV4dE5vZGUoRikpfXZhciBFPSIi
O28uZWFjaChGfHx0aGlzLGZ1bmN0aW9uKCl7by5lYWNoKHRoaXMuY2hpbGROb2Rl
cyxmdW5jdGlvbigpe2lmKHRoaXMubm9kZVR5cGUhPTgpe0UrPXRoaXMubm9kZVR5
cGUhPTE/dGhpcy5ub2RlVmFsdWU6by5mbi50ZXh0KFt0aGlzXSl9fSl9KTtyZXR1
cm4gRX0sd3JhcEFsbDpmdW5jdGlvbihFKXtpZih0aGlzWzBdKXt2YXIgRj1vKEUs
dGhpc1swXS5vd25lckRvY3VtZW50KS5jbG9uZSgpO2lmKHRoaXNbMF0ucGFyZW50
Tm9kZSl7Ri5pbnNlcnRCZWZvcmUodGhpc1swXSl9Ri5tYXAoZnVuY3Rpb24oKXt2
YXIgRz10aGlzO3doaWxlKEcuZmlyc3RDaGlsZCl7Rz1HLmZpcnN0Q2hpbGR9cmV0
dXJuIEd9KS5hcHBlbmQodGhpcyl9cmV0dXJuIHRoaXN9LHdyYXBJbm5lcjpmdW5j
dGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7byh0aGlzKS5jb250
ZW50cygpLndyYXBBbGwoRSl9KX0sd3JhcDpmdW5jdGlvbihFKXtyZXR1cm4gdGhp
cy5lYWNoKGZ1bmN0aW9uKCl7byh0aGlzKS53cmFwQWxsKEUpfSl9LGFwcGVuZDpm
dW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyx0cnVlLGZ1
bmN0aW9uKEUpe2lmKHRoaXMubm9kZVR5cGU9PTEpe3RoaXMuYXBwZW5kQ2hpbGQo
RSl9fSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChh
cmd1bWVudHMsdHJ1ZSxmdW5jdGlvbihFKXtpZih0aGlzLm5vZGVUeXBlPT0xKXt0
aGlzLmluc2VydEJlZm9yZShFLHRoaXMuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpm
dW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmYWxzZSxm
dW5jdGlvbihFKXt0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKEUsdGhpcyl9
KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVu
dHMsZmFsc2UsZnVuY3Rpb24oRSl7dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9y
ZShFLHRoaXMubmV4dFNpYmxpbmcpfSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0
aGlzLnByZXZPYmplY3R8fG8oW10pfSxwdXNoOltdLnB1c2gsc29ydDpbXS5zb3J0
LHNwbGljZTpbXS5zcGxpY2UsZmluZDpmdW5jdGlvbihFKXtpZih0aGlzLmxlbmd0
aD09PTEpe3ZhciBGPXRoaXMucHVzaFN0YWNrKFtdLCJmaW5kIixFKTtGLmxlbmd0
aD0wO28uZmluZChFLHRoaXNbMF0sRik7cmV0dXJuIEZ9ZWxzZXtyZXR1cm4gdGhp
cy5wdXNoU3RhY2soby51bmlxdWUoby5tYXAodGhpcyxmdW5jdGlvbihHKXtyZXR1
cm4gby5maW5kKEUsRyl9KSksImZpbmQiLEUpfX0sY2xvbmU6ZnVuY3Rpb24oRyl7
dmFyIEU9dGhpcy5tYXAoZnVuY3Rpb24oKXtpZighby5zdXBwb3J0Lm5vQ2xvbmVF
dmVudCYmIW8uaXNYTUxEb2ModGhpcykpe3ZhciBJPXRoaXMub3V0ZXJIVE1MO2lm
KCFJKXt2YXIgSj10aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7Si5hcHBlbmRDaGlsZCh0aGlzLmNsb25lTm9kZSh0cnVlKSk7ST1KLmlubmVy
SFRNTH1yZXR1cm4gby5jbGVhbihbSS5yZXBsYWNlKC8galF1ZXJ5XGQrPSIoPzpc
ZCt8bnVsbCkiL2csIiIpLnJlcGxhY2UoL15ccyovLCIiKV0pWzBdfWVsc2V7cmV0
dXJuIHRoaXMuY2xvbmVOb2RlKHRydWUpfX0pO2lmKEc9PT10cnVlKXt2YXIgSD10
aGlzLmZpbmQoIioiKS5hbmRTZWxmKCksRj0wO0UuZmluZCgiKiIpLmFuZFNlbGYo
KS5lYWNoKGZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlTmFtZSE9PUhbRl0ubm9kZU5h
bWUpe3JldHVybn12YXIgST1vLmRhdGEoSFtGXSwiZXZlbnRzIik7Zm9yKHZhciBL
IGluIEkpe2Zvcih2YXIgSiBpbiBJW0tdKXtvLmV2ZW50LmFkZCh0aGlzLEssSVtL
XVtKXSxJW0tdW0pdLmRhdGEpfX1GKyt9KX1yZXR1cm4gRX0sZmlsdGVyOmZ1bmN0
aW9uKEUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhvLmlzRnVuY3Rpb24oRSkmJm8u
Z3JlcCh0aGlzLGZ1bmN0aW9uKEcsRil7cmV0dXJuIEUuY2FsbChHLEYpfSl8fG8u
bXVsdGlGaWx0ZXIoRSxvLmdyZXAodGhpcyxmdW5jdGlvbihGKXtyZXR1cm4gRi5u
b2RlVHlwZT09PTF9KSksImZpbHRlciIsRSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oRSl7
dmFyIEc9by5leHByLm1hdGNoLlBPUy50ZXN0KEUpP28oRSk6bnVsbCxGPTA7cmV0
dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIEg9dGhpczt3aGlsZShIJiZILm93
bmVyRG9jdW1lbnQpe2lmKEc/Ry5pbmRleChIKT4tMTpvKEgpLmlzKEUpKXtvLmRh
dGEoSCwiY2xvc2VzdCIsRik7cmV0dXJuIEh9SD1ILnBhcmVudE5vZGU7RisrfX0p
fSxub3Q6ZnVuY3Rpb24oRSl7aWYodHlwZW9mIEU9PT0ic3RyaW5nIil7aWYoZi50
ZXN0KEUpKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soby5tdWx0aUZpbHRlcihFLHRo
aXMsdHJ1ZSksIm5vdCIsRSl9ZWxzZXtFPW8ubXVsdGlGaWx0ZXIoRSx0aGlzKX19
dmFyIEY9RS5sZW5ndGgmJkVbRS5sZW5ndGgtMV0hPT1nJiYhRS5ub2RlVHlwZTty
ZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gRj9vLmluQXJyYXko
dGhpcyxFKTwwOnRoaXMhPUV9KX0sYWRkOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlz
LnB1c2hTdGFjayhvLnVuaXF1ZShvLm1lcmdlKHRoaXMuZ2V0KCksdHlwZW9mIEU9
PT0ic3RyaW5nIj9vKEUpOm8ubWFrZUFycmF5KEUpKSkpfSxpczpmdW5jdGlvbihF
KXtyZXR1cm4gISFFJiZvLm11bHRpRmlsdGVyKEUsdGhpcykubGVuZ3RoPjB9LGhh
c0NsYXNzOmZ1bmN0aW9uKEUpe3JldHVybiAhIUUmJnRoaXMuaXMoIi4iK0UpfSx2
YWw6ZnVuY3Rpb24oSyl7aWYoSz09PWcpe3ZhciBFPXRoaXNbMF07aWYoRSl7aWYo
by5ub2RlTmFtZShFLCJvcHRpb24iKSl7cmV0dXJuKEUuYXR0cmlidXRlcy52YWx1
ZXx8e30pLnNwZWNpZmllZD9FLnZhbHVlOkUudGV4dH1pZihvLm5vZGVOYW1lKEUs
InNlbGVjdCIpKXt2YXIgST1FLnNlbGVjdGVkSW5kZXgsTD1bXSxNPUUub3B0aW9u
cyxIPUUudHlwZT09InNlbGVjdC1vbmUiO2lmKEk8MCl7cmV0dXJuIG51bGx9Zm9y
KHZhciBGPUg/STowLEo9SD9JKzE6TS5sZW5ndGg7RjxKO0YrKyl7dmFyIEc9TVtG
XTtpZihHLnNlbGVjdGVkKXtLPW8oRykudmFsKCk7aWYoSCl7cmV0dXJuIEt9TC5w
dXNoKEspfX1yZXR1cm4gTH1yZXR1cm4oRS52YWx1ZXx8IiIpLnJlcGxhY2UoL1xy
L2csIiIpfXJldHVybiBnfWlmKHR5cGVvZiBLPT09Im51bWJlciIpe0srPSIifXJl
dHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZih0aGlzLm5vZGVUeXBlIT0xKXty
ZXR1cm59aWYoby5pc0FycmF5KEspJiYvcmFkaW98Y2hlY2tib3gvLnRlc3QodGhp
cy50eXBlKSl7dGhpcy5jaGVja2VkPShvLmluQXJyYXkodGhpcy52YWx1ZSxLKT49
MHx8by5pbkFycmF5KHRoaXMubmFtZSxLKT49MCl9ZWxzZXtpZihvLm5vZGVOYW1l
KHRoaXMsInNlbGVjdCIpKXt2YXIgTj1vLm1ha2VBcnJheShLKTtvKCJvcHRpb24i
LHRoaXMpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkPShvLmluQXJyYXko
dGhpcy52YWx1ZSxOKT49MHx8by5pbkFycmF5KHRoaXMudGV4dCxOKT49MCl9KTtp
ZighTi5sZW5ndGgpe3RoaXMuc2VsZWN0ZWRJbmRleD0tMX19ZWxzZXt0aGlzLnZh
bHVlPUt9fX0pfSxodG1sOmZ1bmN0aW9uKEUpe3JldHVybiBFPT09Zz8odGhpc1sw
XT90aGlzWzBdLmlubmVySFRNTC5yZXBsYWNlKC8galF1ZXJ5XGQrPSIoPzpcZCt8
bnVsbCkiL2csIiIpOm51bGwpOnRoaXMuZW1wdHkoKS5hcHBlbmQoRSl9LHJlcGxh
Y2VXaXRoOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmFmdGVyKEUpLnJlbW92ZSgp
fSxlcTpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5zbGljZShFLCtFKzEpfSxzbGlj
ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhBcnJheS5wcm90b3R5
cGUuc2xpY2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLCJzbGljZSIsQXJyYXkucHJv
dG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKS5qb2luKCIsIikpfSxtYXA6ZnVu
Y3Rpb24oRSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG8ubWFwKHRoaXMsZnVuY3Rp
b24oRyxGKXtyZXR1cm4gRS5jYWxsKEcsRixHKX0pKX0sYW5kU2VsZjpmdW5jdGlv
bigpe3JldHVybiB0aGlzLmFkZCh0aGlzLnByZXZPYmplY3QpfSxkb21NYW5pcDpm
dW5jdGlvbihKLE0sTCl7aWYodGhpc1swXSl7dmFyIEk9KHRoaXNbMF0ub3duZXJE
b2N1bWVudHx8dGhpc1swXSkuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLEY9by5j
bGVhbihKLCh0aGlzWzBdLm93bmVyRG9jdW1lbnR8fHRoaXNbMF0pLEkpLEg9SS5m
aXJzdENoaWxkO2lmKEgpe2Zvcih2YXIgRz0wLEU9dGhpcy5sZW5ndGg7RzxFO0cr
Kyl7TC5jYWxsKEsodGhpc1tHXSxIKSx0aGlzLmxlbmd0aD4xfHxHPjA/SS5jbG9u
ZU5vZGUodHJ1ZSk6SSl9fWlmKEYpe28uZWFjaChGLHopfX1yZXR1cm4gdGhpcztm
dW5jdGlvbiBLKE4sTyl7cmV0dXJuIE0mJm8ubm9kZU5hbWUoTiwidGFibGUiKSYm
by5ub2RlTmFtZShPLCJ0ciIpPyhOLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9k
eSIpWzBdfHxOLmFwcGVuZENoaWxkKE4ub3duZXJEb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJ0Ym9keSIpKSk6Tn19fTtvLmZuLmluaXQucHJvdG90eXBlPW8uZm47ZnVu
Y3Rpb24geihFLEYpe2lmKEYuc3JjKXtvLmFqYXgoe3VybDpGLnNyYyxhc3luYzpm
YWxzZSxkYXRhVHlwZToic2NyaXB0In0pfWVsc2V7by5nbG9iYWxFdmFsKEYudGV4
dHx8Ri50ZXh0Q29udGVudHx8Ri5pbm5lckhUTUx8fCIiKX1pZihGLnBhcmVudE5v
ZGUpe0YucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChGKX19ZnVuY3Rpb24gZSgpe3Jl
dHVybiArbmV3IERhdGV9by5leHRlbmQ9by5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2
YXIgSj1hcmd1bWVudHNbMF18fHt9LEg9MSxJPWFyZ3VtZW50cy5sZW5ndGgsRT1m
YWxzZSxHO2lmKHR5cGVvZiBKPT09ImJvb2xlYW4iKXtFPUo7Sj1hcmd1bWVudHNb
MV18fHt9O0g9Mn1pZih0eXBlb2YgSiE9PSJvYmplY3QiJiYhby5pc0Z1bmN0aW9u
KEopKXtKPXt9fWlmKEk9PUgpe0o9dGhpczstLUh9Zm9yKDtIPEk7SCsrKXtpZigo
Rz1hcmd1bWVudHNbSF0pIT1udWxsKXtmb3IodmFyIEYgaW4gRyl7dmFyIEs9SltG
XSxMPUdbRl07aWYoSj09PUwpe2NvbnRpbnVlfWlmKEUmJkwmJnR5cGVvZiBMPT09
Im9iamVjdCImJiFMLm5vZGVUeXBlKXtKW0ZdPW8uZXh0ZW5kKEUsS3x8KEwubGVu
Z3RoIT1udWxsP1tdOnt9KSxMKX1lbHNle2lmKEwhPT1nKXtKW0ZdPUx9fX19fXJl
dHVybiBKfTt2YXIgYj0vei0/aW5kZXh8Zm9udC0/d2VpZ2h0fG9wYWNpdHl8em9v
bXxsaW5lLT9oZWlnaHQvaSxxPWRvY3VtZW50LmRlZmF1bHRWaWV3fHx7fSxzPU9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmc7by5leHRlbmQoe25vQ29uZmxpY3Q6ZnVu
Y3Rpb24oRSl7bC4kPXA7aWYoRSl7bC5qUXVlcnk9eX1yZXR1cm4gb30saXNGdW5j
dGlvbjpmdW5jdGlvbihFKXtyZXR1cm4gcy5jYWxsKEUpPT09IltvYmplY3QgRnVu
Y3Rpb25dIn0saXNBcnJheTpmdW5jdGlvbihFKXtyZXR1cm4gcy5jYWxsKEUpPT09
IltvYmplY3QgQXJyYXldIn0saXNYTUxEb2M6ZnVuY3Rpb24oRSl7cmV0dXJuIEUu
bm9kZVR5cGU9PT05JiZFLmRvY3VtZW50RWxlbWVudC5ub2RlTmFtZSE9PSJIVE1M
Inx8ISFFLm93bmVyRG9jdW1lbnQmJm8uaXNYTUxEb2MoRS5vd25lckRvY3VtZW50
KX0sZ2xvYmFsRXZhbDpmdW5jdGlvbihHKXtpZihHJiYvXFMvLnRlc3QoRykpe3Zh
ciBGPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGRv
Y3VtZW50LmRvY3VtZW50RWxlbWVudCxFPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InNjcmlwdCIpO0UudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtpZihvLnN1cHBvcnQu
c2NyaXB0RXZhbCl7RS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZShHKSl9ZWxzZXtFLnRleHQ9R31GLmluc2VydEJlZm9yZShFLEYuZmlyc3RDaGls
ZCk7Ri5yZW1vdmVDaGlsZChFKX19LG5vZGVOYW1lOmZ1bmN0aW9uKEYsRSl7cmV0
dXJuIEYubm9kZU5hbWUmJkYubm9kZU5hbWUudG9VcHBlckNhc2UoKT09RS50b1Vw
cGVyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKEcsSyxGKXt2YXIgRSxIPTAsST1HLmxl
bmd0aDtpZihGKXtpZihJPT09Zyl7Zm9yKEUgaW4gRyl7aWYoSy5hcHBseShHW0Vd
LEYpPT09ZmFsc2Upe2JyZWFrfX19ZWxzZXtmb3IoO0g8STspe2lmKEsuYXBwbHko
R1tIKytdLEYpPT09ZmFsc2Upe2JyZWFrfX19fWVsc2V7aWYoST09PWcpe2ZvcihF
IGluIEcpe2lmKEsuY2FsbChHW0VdLEUsR1tFXSk9PT1mYWxzZSl7YnJlYWt9fX1l
bHNle2Zvcih2YXIgSj1HWzBdO0g8SSYmSy5jYWxsKEosSCxKKSE9PWZhbHNlO0o9
R1srK0hdKXt9fX1yZXR1cm4gR30scHJvcDpmdW5jdGlvbihILEksRyxGLEUpe2lm
KG8uaXNGdW5jdGlvbihJKSl7ST1JLmNhbGwoSCxGKX1yZXR1cm4gdHlwZW9mIEk9
PT0ibnVtYmVyIiYmRz09ImN1ckNTUyImJiFiLnRlc3QoRSk/SSsicHgiOkl9LGNs
YXNzTmFtZTp7YWRkOmZ1bmN0aW9uKEUsRil7by5lYWNoKChGfHwiIikuc3BsaXQo
L1xzKy8pLGZ1bmN0aW9uKEcsSCl7aWYoRS5ub2RlVHlwZT09MSYmIW8uY2xhc3NO
YW1lLmhhcyhFLmNsYXNzTmFtZSxIKSl7RS5jbGFzc05hbWUrPShFLmNsYXNzTmFt
ZT8iICI6IiIpK0h9fSl9LHJlbW92ZTpmdW5jdGlvbihFLEYpe2lmKEUubm9kZVR5
cGU9PTEpe0UuY2xhc3NOYW1lPUYhPT1nP28uZ3JlcChFLmNsYXNzTmFtZS5zcGxp
dCgvXHMrLyksZnVuY3Rpb24oRyl7cmV0dXJuICFvLmNsYXNzTmFtZS5oYXMoRixH
KX0pLmpvaW4oIiAiKToiIn19LGhhczpmdW5jdGlvbihGLEUpe3JldHVybiBGJiZv
LmluQXJyYXkoRSwoRi5jbGFzc05hbWV8fEYpLnRvU3RyaW5nKCkuc3BsaXQoL1xz
Ky8pKT4tMX19LHN3YXA6ZnVuY3Rpb24oSCxHLEkpe3ZhciBFPXt9O2Zvcih2YXIg
RiBpbiBHKXtFW0ZdPUguc3R5bGVbRl07SC5zdHlsZVtGXT1HW0ZdfUkuY2FsbChI
KTtmb3IodmFyIEYgaW4gRyl7SC5zdHlsZVtGXT1FW0ZdfX0sY3NzOmZ1bmN0aW9u
KEgsRixKLEUpe2lmKEY9PSJ3aWR0aCJ8fEY9PSJoZWlnaHQiKXt2YXIgTCxHPXtw
b3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToi
YmxvY2sifSxLPUY9PSJ3aWR0aCI/WyJMZWZ0IiwiUmlnaHQiXTpbIlRvcCIsIkJv
dHRvbSJdO2Z1bmN0aW9uIEkoKXtMPUY9PSJ3aWR0aCI/SC5vZmZzZXRXaWR0aDpI
Lm9mZnNldEhlaWdodDtpZihFPT09ImJvcmRlciIpe3JldHVybn1vLmVhY2goSyxm
dW5jdGlvbigpe2lmKCFFKXtMLT1wYXJzZUZsb2F0KG8uY3VyQ1NTKEgsInBhZGRp
bmciK3RoaXMsdHJ1ZSkpfHwwfWlmKEU9PT0ibWFyZ2luIil7TCs9cGFyc2VGbG9h
dChvLmN1ckNTUyhILCJtYXJnaW4iK3RoaXMsdHJ1ZSkpfHwwfWVsc2V7TC09cGFy
c2VGbG9hdChvLmN1ckNTUyhILCJib3JkZXIiK3RoaXMrIldpZHRoIix0cnVlKSl8
fDB9fSl9aWYoSC5vZmZzZXRXaWR0aCE9PTApe0koKX1lbHNle28uc3dhcChILEcs
SSl9cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5yb3VuZChMKSl9cmV0dXJuIG8uY3Vy
Q1NTKEgsRixKKX0sY3VyQ1NTOmZ1bmN0aW9uKEksRixHKXt2YXIgTCxFPUkuc3R5
bGU7aWYoRj09Im9wYWNpdHkiJiYhby5zdXBwb3J0Lm9wYWNpdHkpe0w9by5hdHRy
KEUsIm9wYWNpdHkiKTtyZXR1cm4gTD09IiI/IjEiOkx9aWYoRi5tYXRjaCgvZmxv
YXQvaSkpe0Y9d31pZighRyYmRSYmRVtGXSl7TD1FW0ZdfWVsc2V7aWYocS5nZXRD
b21wdXRlZFN0eWxlKXtpZihGLm1hdGNoKC9mbG9hdC9pKSl7Rj0iZmxvYXQifUY9
Ri5yZXBsYWNlKC8oW0EtWl0pL2csIi0kMSIpLnRvTG93ZXJDYXNlKCk7dmFyIE09
cS5nZXRDb21wdXRlZFN0eWxlKEksbnVsbCk7aWYoTSl7TD1NLmdldFByb3BlcnR5
VmFsdWUoRil9aWYoRj09Im9wYWNpdHkiJiZMPT0iIil7TD0iMSJ9fWVsc2V7aWYo
SS5jdXJyZW50U3R5bGUpe3ZhciBKPUYucmVwbGFjZSgvXC0oXHcpL2csZnVuY3Rp
b24oTixPKXtyZXR1cm4gTy50b1VwcGVyQ2FzZSgpfSk7TD1JLmN1cnJlbnRTdHls
ZVtGXXx8SS5jdXJyZW50U3R5bGVbSl07aWYoIS9eXGQrKHB4KT8kL2kudGVzdChM
KSYmL15cZC8udGVzdChMKSl7dmFyIEg9RS5sZWZ0LEs9SS5ydW50aW1lU3R5bGUu
bGVmdDtJLnJ1bnRpbWVTdHlsZS5sZWZ0PUkuY3VycmVudFN0eWxlLmxlZnQ7RS5s
ZWZ0PUx8fDA7TD1FLnBpeGVsTGVmdCsicHgiO0UubGVmdD1IO0kucnVudGltZVN0
eWxlLmxlZnQ9S319fX1yZXR1cm4gTH0sY2xlYW46ZnVuY3Rpb24oRixLLEkpe0s9
S3x8ZG9jdW1lbnQ7aWYodHlwZW9mIEsuY3JlYXRlRWxlbWVudD09PSJ1bmRlZmlu
ZWQiKXtLPUsub3duZXJEb2N1bWVudHx8S1swXSYmS1swXS5vd25lckRvY3VtZW50
fHxkb2N1bWVudH1pZighSSYmRi5sZW5ndGg9PT0xJiZ0eXBlb2YgRlswXT09PSJz
dHJpbmciKXt2YXIgSD0vXjwoXHcrKVxzKlwvPz4kLy5leGVjKEZbMF0pO2lmKEgp
e3JldHVybltLLmNyZWF0ZUVsZW1lbnQoSFsxXSldfX12YXIgRz1bXSxFPVtdLEw9
Sy5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLmVhY2goRixmdW5jdGlvbihQLFMpe2lm
KHR5cGVvZiBTPT09Im51bWJlciIpe1MrPSIifWlmKCFTKXtyZXR1cm59aWYodHlw
ZW9mIFM9PT0ic3RyaW5nIil7Uz1TLnJlcGxhY2UoLyg8KFx3KylbXj5dKj8pXC8+
L2csZnVuY3Rpb24oVSxWLFQpe3JldHVybiBULm1hdGNoKC9eKGFiYnJ8YnJ8Y29s
fGltZ3xpbnB1dHxsaW5rfG1ldGF8cGFyYW18aHJ8YXJlYXxlbWJlZCkkL2kpP1U6
VisiPjwvIitUKyI+In0pO3ZhciBPPVMucmVwbGFjZSgvXlxzKy8sIiIpLnN1YnN0
cmluZygwLDEwKS50b0xvd2VyQ2FzZSgpO3ZhciBRPSFPLmluZGV4T2YoIjxvcHQi
KSYmWzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4i
XXx8IU8uaW5kZXhPZigiPGxlZyIpJiZbMSwiPGZpZWxkc2V0PiIsIjwvZmllbGRz
ZXQ+Il18fE8ubWF0Y2goL148KHRoZWFkfHRib2R5fHRmb290fGNvbGd8Y2FwKS8p
JiZbMSwiPHRhYmxlPiIsIjwvdGFibGU+Il18fCFPLmluZGV4T2YoIjx0ciIpJiZb
MiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il18fCghTy5pbmRl
eE9mKCI8dGQiKXx8IU8uaW5kZXhPZigiPHRoIikpJiZbMywiPHRhYmxlPjx0Ym9k
eT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il18fCFPLmluZGV4T2YoIjxj
b2wiKSYmWzIsIjx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9j
b2xncm91cD48L3RhYmxlPiJdfHwhby5zdXBwb3J0Lmh0bWxTZXJpYWxpemUmJlsx
LCJkaXY8ZGl2PiIsIjwvZGl2PiJdfHxbMCwiIiwiIl07TC5pbm5lckhUTUw9UVsx
XStTK1FbMl07d2hpbGUoUVswXS0tKXtMPUwubGFzdENoaWxkfWlmKCFvLnN1cHBv
cnQudGJvZHkpe3ZhciBSPS88dGJvZHkvaS50ZXN0KFMpLE49IU8uaW5kZXhPZigi
PHRhYmxlIikmJiFSP0wuZmlyc3RDaGlsZCYmTC5maXJzdENoaWxkLmNoaWxkTm9k
ZXM6UVsxXT09Ijx0YWJsZT4iJiYhUj9MLmNoaWxkTm9kZXM6W107Zm9yKHZhciBN
PU4ubGVuZ3RoLTE7TT49MDstLU0pe2lmKG8ubm9kZU5hbWUoTltNXSwidGJvZHki
KSYmIU5bTV0uY2hpbGROb2Rlcy5sZW5ndGgpe05bTV0ucGFyZW50Tm9kZS5yZW1v
dmVDaGlsZChOW01dKX19fWlmKCFvLnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2Um
Ji9eXHMvLnRlc3QoUykpe0wuaW5zZXJ0QmVmb3JlKEsuY3JlYXRlVGV4dE5vZGUo
Uy5tYXRjaCgvXlxzKi8pWzBdKSxMLmZpcnN0Q2hpbGQpfVM9by5tYWtlQXJyYXko
TC5jaGlsZE5vZGVzKX1pZihTLm5vZGVUeXBlKXtHLnB1c2goUyl9ZWxzZXtHPW8u
bWVyZ2UoRyxTKX19KTtpZihJKXtmb3IodmFyIEo9MDtHW0pdO0orKyl7aWYoby5u
b2RlTmFtZShHW0pdLCJzY3JpcHQiKSYmKCFHW0pdLnR5cGV8fEdbSl0udHlwZS50
b0xvd2VyQ2FzZSgpPT09InRleHQvamF2YXNjcmlwdCIpKXtFLnB1c2goR1tKXS5w
YXJlbnROb2RlP0dbSl0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChHW0pdKTpHW0pd
KX1lbHNle2lmKEdbSl0ubm9kZVR5cGU9PT0xKXtHLnNwbGljZS5hcHBseShHLFtK
KzEsMF0uY29uY2F0KG8ubWFrZUFycmF5KEdbSl0uZ2V0RWxlbWVudHNCeVRhZ05h
bWUoInNjcmlwdCIpKSkpfUkuYXBwZW5kQ2hpbGQoR1tKXSl9fXJldHVybiBFfXJl
dHVybiBHfSxhdHRyOmZ1bmN0aW9uKEosRyxLKXtpZighSnx8Si5ub2RlVHlwZT09
M3x8Si5ub2RlVHlwZT09OCl7cmV0dXJuIGd9dmFyIEg9IW8uaXNYTUxEb2MoSiks
TD1LIT09ZztHPUgmJm8ucHJvcHNbR118fEc7aWYoSi50YWdOYW1lKXt2YXIgRj0v
aHJlZnxzcmN8c3R5bGUvLnRlc3QoRyk7aWYoRz09InNlbGVjdGVkIiYmSi5wYXJl
bnROb2RlKXtKLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleH1pZihHIGluIEomJkgm
JiFGKXtpZihMKXtpZihHPT0idHlwZSImJm8ubm9kZU5hbWUoSiwiaW5wdXQiKSYm
Si5wYXJlbnROb2RlKXt0aHJvdyJ0eXBlIHByb3BlcnR5IGNhbid0IGJlIGNoYW5n
ZWQifUpbR109S31pZihvLm5vZGVOYW1lKEosImZvcm0iKSYmSi5nZXRBdHRyaWJ1
dGVOb2RlKEcpKXtyZXR1cm4gSi5nZXRBdHRyaWJ1dGVOb2RlKEcpLm5vZGVWYWx1
ZX1pZihHPT0idGFiSW5kZXgiKXt2YXIgST1KLmdldEF0dHJpYnV0ZU5vZGUoInRh
YkluZGV4Iik7cmV0dXJuIEkmJkkuc3BlY2lmaWVkP0kudmFsdWU6Si5ub2RlTmFt
ZS5tYXRjaCgvKGJ1dHRvbnxpbnB1dHxvYmplY3R8c2VsZWN0fHRleHRhcmVhKS9p
KT8wOkoubm9kZU5hbWUubWF0Y2goL14oYXxhcmVhKSQvaSkmJkouaHJlZj8wOmd9
cmV0dXJuIEpbR119aWYoIW8uc3VwcG9ydC5zdHlsZSYmSCYmRz09InN0eWxlIil7
cmV0dXJuIG8uYXR0cihKLnN0eWxlLCJjc3NUZXh0IixLKX1pZihMKXtKLnNldEF0
dHJpYnV0ZShHLCIiK0spfXZhciBFPSFvLnN1cHBvcnQuaHJlZk5vcm1hbGl6ZWQm
JkgmJkY/Si5nZXRBdHRyaWJ1dGUoRywyKTpKLmdldEF0dHJpYnV0ZShHKTtyZXR1
cm4gRT09PW51bGw/ZzpFfWlmKCFvLnN1cHBvcnQub3BhY2l0eSYmRz09Im9wYWNp
dHkiKXtpZihMKXtKLnpvb209MTtKLmZpbHRlcj0oSi5maWx0ZXJ8fCIiKS5yZXBs
YWNlKC9hbHBoYVwoW14pXSpcKS8sIiIpKyhwYXJzZUludChLKSsiIj09Ik5hTiI/
IiI6ImFscGhhKG9wYWNpdHk9IitLKjEwMCsiKSIpfXJldHVybiBKLmZpbHRlciYm
Si5maWx0ZXIuaW5kZXhPZigib3BhY2l0eT0iKT49MD8ocGFyc2VGbG9hdChKLmZp
bHRlci5tYXRjaCgvb3BhY2l0eT0oW14pXSopLylbMV0pLzEwMCkrIiI6IiJ9Rz1H
LnJlcGxhY2UoLy0oW2Etel0pL2lnLGZ1bmN0aW9uKE0sTil7cmV0dXJuIE4udG9V
cHBlckNhc2UoKX0pO2lmKEwpe0pbR109S31yZXR1cm4gSltHXX0sdHJpbTpmdW5j
dGlvbihFKXtyZXR1cm4oRXx8IiIpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX0s
bWFrZUFycmF5OmZ1bmN0aW9uKEcpe3ZhciBFPVtdO2lmKEchPW51bGwpe3ZhciBG
PUcubGVuZ3RoO2lmKEY9PW51bGx8fHR5cGVvZiBHPT09InN0cmluZyJ8fG8uaXNG
dW5jdGlvbihHKXx8Ry5zZXRJbnRlcnZhbCl7RVswXT1HfWVsc2V7d2hpbGUoRil7
RVstLUZdPUdbRl19fX1yZXR1cm4gRX0saW5BcnJheTpmdW5jdGlvbihHLEgpe2Zv
cih2YXIgRT0wLEY9SC5sZW5ndGg7RTxGO0UrKyl7aWYoSFtFXT09PUcpe3JldHVy
biBFfX1yZXR1cm4gLTF9LG1lcmdlOmZ1bmN0aW9uKEgsRSl7dmFyIEY9MCxHLEk9
SC5sZW5ndGg7aWYoIW8uc3VwcG9ydC5nZXRBbGwpe3doaWxlKChHPUVbRisrXSkh
PW51bGwpe2lmKEcubm9kZVR5cGUhPTgpe0hbSSsrXT1HfX19ZWxzZXt3aGlsZSgo
Rz1FW0YrK10pIT1udWxsKXtIW0krK109R319cmV0dXJuIEh9LHVuaXF1ZTpmdW5j
dGlvbihLKXt2YXIgRj1bXSxFPXt9O3RyeXtmb3IodmFyIEc9MCxIPUsubGVuZ3Ro
O0c8SDtHKyspe3ZhciBKPW8uZGF0YShLW0ddKTtpZighRVtKXSl7RVtKXT10cnVl
O0YucHVzaChLW0ddKX19fWNhdGNoKEkpe0Y9S31yZXR1cm4gRn0sZ3JlcDpmdW5j
dGlvbihGLEosRSl7dmFyIEc9W107Zm9yKHZhciBIPTAsST1GLmxlbmd0aDtIPEk7
SCsrKXtpZighRSE9IUooRltIXSxIKSl7Ry5wdXNoKEZbSF0pfX1yZXR1cm4gR30s
bWFwOmZ1bmN0aW9uKEUsSil7dmFyIEY9W107Zm9yKHZhciBHPTAsSD1FLmxlbmd0
aDtHPEg7RysrKXt2YXIgST1KKEVbR10sRyk7aWYoSSE9bnVsbCl7RltGLmxlbmd0
aF09SX19cmV0dXJuIEYuY29uY2F0LmFwcGx5KFtdLEYpfX0pO3ZhciBDPW5hdmln
YXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtvLmJyb3dzZXI9e3ZlcnNpb246
KEMubWF0Y2goLy4rKD86cnZ8aXR8cmF8aWUpW1wvOiBdKFtcZC5dKykvKXx8WzAs
IjAiXSlbMV0sc2FmYXJpOi93ZWJraXQvLnRlc3QoQyksb3BlcmE6L29wZXJhLy50
ZXN0KEMpLG1zaWU6L21zaWUvLnRlc3QoQykmJiEvb3BlcmEvLnRlc3QoQyksbW96
aWxsYTovbW96aWxsYS8udGVzdChDKSYmIS8oY29tcGF0aWJsZXx3ZWJraXQpLy50
ZXN0KEMpfTtvLmVhY2goe3BhcmVudDpmdW5jdGlvbihFKXtyZXR1cm4gRS5wYXJl
bnROb2RlfSxwYXJlbnRzOmZ1bmN0aW9uKEUpe3JldHVybiBvLmRpcihFLCJwYXJl
bnROb2RlIil9LG5leHQ6ZnVuY3Rpb24oRSl7cmV0dXJuIG8ubnRoKEUsMiwibmV4
dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihFKXtyZXR1cm4gby5udGgoRSwyLCJw
cmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihFKXtyZXR1cm4gby5k
aXIoRSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihFKXtyZXR1cm4g
by5kaXIoRSwicHJldmlvdXNTaWJsaW5nIil9LHNpYmxpbmdzOmZ1bmN0aW9uKEUp
e3JldHVybiBvLnNpYmxpbmcoRS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQsRSl9LGNo
aWxkcmVuOmZ1bmN0aW9uKEUpe3JldHVybiBvLnNpYmxpbmcoRS5maXJzdENoaWxk
KX0sY29udGVudHM6ZnVuY3Rpb24oRSl7cmV0dXJuIG8ubm9kZU5hbWUoRSwiaWZy
YW1lIik/RS5jb250ZW50RG9jdW1lbnR8fEUuY29udGVudFdpbmRvdy5kb2N1bWVu
dDpvLm1ha2VBcnJheShFLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oRSxGKXtvLmZu
W0VdPWZ1bmN0aW9uKEcpe3ZhciBIPW8ubWFwKHRoaXMsRik7aWYoRyYmdHlwZW9m
IEc9PSJzdHJpbmciKXtIPW8ubXVsdGlGaWx0ZXIoRyxIKX1yZXR1cm4gdGhpcy5w
dXNoU3RhY2soby51bmlxdWUoSCksRSxHKX19KTtvLmVhY2goe2FwcGVuZFRvOiJh
cHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUi
LGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxm
dW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oRyl7dmFyIEo9W10sTD1vKEcp
O2Zvcih2YXIgSz0wLEg9TC5sZW5ndGg7SzxIO0srKyl7dmFyIEk9KEs+MD90aGlz
LmNsb25lKHRydWUpOnRoaXMpLmdldCgpO28uZm5bRl0uYXBwbHkobyhMW0tdKSxJ
KTtKPUouY29uY2F0KEkpfXJldHVybiB0aGlzLnB1c2hTdGFjayhKLEUsRyl9fSk7
by5lYWNoKHtyZW1vdmVBdHRyOmZ1bmN0aW9uKEUpe28uYXR0cih0aGlzLEUsIiIp
O2lmKHRoaXMubm9kZVR5cGU9PTEpe3RoaXMucmVtb3ZlQXR0cmlidXRlKEUpfX0s
YWRkQ2xhc3M6ZnVuY3Rpb24oRSl7by5jbGFzc05hbWUuYWRkKHRoaXMsRSl9LHJl
bW92ZUNsYXNzOmZ1bmN0aW9uKEUpe28uY2xhc3NOYW1lLnJlbW92ZSh0aGlzLEUp
fSx0b2dnbGVDbGFzczpmdW5jdGlvbihGLEUpe2lmKHR5cGVvZiBFIT09ImJvb2xl
YW4iKXtFPSFvLmNsYXNzTmFtZS5oYXModGhpcyxGKX1vLmNsYXNzTmFtZVtFPyJh
ZGQiOiJyZW1vdmUiXSh0aGlzLEYpfSxyZW1vdmU6ZnVuY3Rpb24oRSl7aWYoIUV8
fG8uZmlsdGVyKEUsW3RoaXNdKS5sZW5ndGgpe28oIioiLHRoaXMpLmFkZChbdGhp
c10pLmVhY2goZnVuY3Rpb24oKXtvLmV2ZW50LnJlbW92ZSh0aGlzKTtvLnJlbW92
ZURhdGEodGhpcyl9KTtpZih0aGlzLnBhcmVudE5vZGUpe3RoaXMucGFyZW50Tm9k
ZS5yZW1vdmVDaGlsZCh0aGlzKX19fSxlbXB0eTpmdW5jdGlvbigpe28odGhpcyku
Y2hpbGRyZW4oKS5yZW1vdmUoKTt3aGlsZSh0aGlzLmZpcnN0Q2hpbGQpe3RoaXMu
cmVtb3ZlQ2hpbGQodGhpcy5maXJzdENoaWxkKX19fSxmdW5jdGlvbihFLEYpe28u
Zm5bRV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKEYsYXJndW1lbnRzKX19
KTtmdW5jdGlvbiBqKEUsRil7cmV0dXJuIEVbMF0mJnBhcnNlSW50KG8uY3VyQ1NT
KEVbMF0sRix0cnVlKSwxMCl8fDB9dmFyIGg9ImpRdWVyeSIrZSgpLHY9MCxBPXt9
O28uZXh0ZW5kKHtjYWNoZTp7fSxkYXRhOmZ1bmN0aW9uKEYsRSxHKXtGPUY9PWw/
QTpGO3ZhciBIPUZbaF07aWYoIUgpe0g9RltoXT0rK3Z9aWYoRSYmIW8uY2FjaGVb
SF0pe28uY2FjaGVbSF09e319aWYoRyE9PWcpe28uY2FjaGVbSF1bRV09R31yZXR1
cm4gRT9vLmNhY2hlW0hdW0VdOkh9LHJlbW92ZURhdGE6ZnVuY3Rpb24oRixFKXtG
PUY9PWw/QTpGO3ZhciBIPUZbaF07aWYoRSl7aWYoby5jYWNoZVtIXSl7ZGVsZXRl
IG8uY2FjaGVbSF1bRV07RT0iIjtmb3IoRSBpbiBvLmNhY2hlW0hdKXticmVha31p
ZighRSl7by5yZW1vdmVEYXRhKEYpfX19ZWxzZXt0cnl7ZGVsZXRlIEZbaF19Y2F0
Y2goRyl7aWYoRi5yZW1vdmVBdHRyaWJ1dGUpe0YucmVtb3ZlQXR0cmlidXRlKGgp
fX1kZWxldGUgby5jYWNoZVtIXX19LHF1ZXVlOmZ1bmN0aW9uKEYsRSxIKXtpZihG
KXtFPShFfHwiZngiKSsicXVldWUiO3ZhciBHPW8uZGF0YShGLEUpO2lmKCFHfHxv
LmlzQXJyYXkoSCkpe0c9by5kYXRhKEYsRSxvLm1ha2VBcnJheShIKSl9ZWxzZXtp
ZihIKXtHLnB1c2goSCl9fX1yZXR1cm4gR30sZGVxdWV1ZTpmdW5jdGlvbihILEcp
e3ZhciBFPW8ucXVldWUoSCxHKSxGPUUuc2hpZnQoKTtpZighR3x8Rz09PSJmeCIp
e0Y9RVswXX1pZihGIT09Zyl7Ri5jYWxsKEgpfX19KTtvLmZuLmV4dGVuZCh7ZGF0
YTpmdW5jdGlvbihFLEcpe3ZhciBIPUUuc3BsaXQoIi4iKTtIWzFdPUhbMV0/Ii4i
K0hbMV06IiI7aWYoRz09PWcpe3ZhciBGPXRoaXMudHJpZ2dlckhhbmRsZXIoImdl
dERhdGEiK0hbMV0rIiEiLFtIWzBdXSk7aWYoRj09PWcmJnRoaXMubGVuZ3RoKXtG
PW8uZGF0YSh0aGlzWzBdLEUpfXJldHVybiBGPT09ZyYmSFsxXT90aGlzLmRhdGEo
SFswXSk6Rn1lbHNle3JldHVybiB0aGlzLnRyaWdnZXIoInNldERhdGEiK0hbMV0r
IiEiLFtIWzBdLEddKS5lYWNoKGZ1bmN0aW9uKCl7by5kYXRhKHRoaXMsRSxHKX0p
fX0scmVtb3ZlRGF0YTpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0
aW9uKCl7by5yZW1vdmVEYXRhKHRoaXMsRSl9KX0scXVldWU6ZnVuY3Rpb24oRSxG
KXtpZih0eXBlb2YgRSE9PSJzdHJpbmciKXtGPUU7RT0iZngifWlmKEY9PT1nKXty
ZXR1cm4gby5xdWV1ZSh0aGlzWzBdLEUpfXJldHVybiB0aGlzLmVhY2goZnVuY3Rp
b24oKXt2YXIgRz1vLnF1ZXVlKHRoaXMsRSxGKTtpZihFPT0iZngiJiZHLmxlbmd0
aD09MSl7R1swXS5jYWxsKHRoaXMpfX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKEUpe3Jl
dHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvLmRlcXVldWUodGhpcyxFKX0pfX0p
Ow0KLyoNCiAqIFNpenpsZSBDU1MgU2VsZWN0b3IgRW5naW5lIC0gdjAuOS4zDQog
KiAgQ29weXJpZ2h0IDIwMDksIFRoZSBEb2pvIEZvdW5kYXRpb24NCiAqICBNb3Jl
IGluZm9ybWF0aW9uOiBodHRwOi8vc2l6emxlanMuY29tLw0KICoNCiAqIFBlcm1p
c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhIGNvcHkNCiAqIG9mIHRoaXMgc29mdHdhcmUgYW5k
IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIp
LCB0byBkZWFsDQogKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlv
biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzDQogKiB0
byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs
IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsDQogKiBjb3BpZXMgb2YgdGhlIFNvZnR3
YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUg
aXMNCiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnM6DQogKg0KICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQg
aW4NCiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl
IFNvZnR3YXJlLg0KICoNCiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg
SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SDQog
KiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwNCiAqIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRQ0KICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBM
SUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUg0KICogTElBQklM
SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBP
VEhFUldJU0UsIEFSSVNJTkcgRlJPTSwNCiAqIE9VVCBPRiBPUiBJTiBDT05ORUNU
SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO
R1MgSU4NCiAqIFRIRSBTT0ZUV0FSRS4NCiAqDQogKi8NCihmdW5jdGlvbigpe3Zh
ciBSPS8oKD86XCgoPzpcKFteKCldK1wpfFteKCldKykrXCl8XFsoPzpcW1teW1xd
XSpcXXxbJyJdW14nIl0qWyciXXxbXltcXSciXSspK1xdfFxcLnxbXiA+K34sKFxb
XFxdKykrfFs+K35dKShccyosXHMqKT8vZyxMPTAsSD1PYmplY3QucHJvdG90eXBl
LnRvU3RyaW5nO3ZhciBGPWZ1bmN0aW9uKFksVSxhYixhYyl7YWI9YWJ8fFtdO1U9
VXx8ZG9jdW1lbnQ7aWYoVS5ub2RlVHlwZSE9PTEmJlUubm9kZVR5cGUhPT05KXty
ZXR1cm5bXX1pZighWXx8dHlwZW9mIFkhPT0ic3RyaW5nIil7cmV0dXJuIGFifXZh
ciBaPVtdLFcsYWYsYWksVCxhZCxWLFg9dHJ1ZTtSLmxhc3RJbmRleD0wO3doaWxl
KChXPVIuZXhlYyhZKSkhPT1udWxsKXtaLnB1c2goV1sxXSk7aWYoV1syXSl7Vj1S
ZWdFeHAucmlnaHRDb250ZXh0O2JyZWFrfX1pZihaLmxlbmd0aD4xJiZNLmV4ZWMo
WSkpe2lmKFoubGVuZ3RoPT09MiYmSS5yZWxhdGl2ZVtaWzBdXSl7YWY9SihaWzBd
K1pbMV0sVSl9ZWxzZXthZj1JLnJlbGF0aXZlW1pbMF1dP1tVXTpGKFouc2hpZnQo
KSxVKTt3aGlsZShaLmxlbmd0aCl7WT1aLnNoaWZ0KCk7aWYoSS5yZWxhdGl2ZVtZ
XSl7WSs9Wi5zaGlmdCgpfWFmPUooWSxhZil9fX1lbHNle3ZhciBhZT1hYz97ZXhw
cjpaLnBvcCgpLHNldDpFKGFjKX06Ri5maW5kKFoucG9wKCksWi5sZW5ndGg9PT0x
JiZVLnBhcmVudE5vZGU/VS5wYXJlbnROb2RlOlUsUShVKSk7YWY9Ri5maWx0ZXIo
YWUuZXhwcixhZS5zZXQpO2lmKFoubGVuZ3RoPjApe2FpPUUoYWYpfWVsc2V7WD1m
YWxzZX13aGlsZShaLmxlbmd0aCl7dmFyIGFoPVoucG9wKCksYWc9YWg7aWYoIUku
cmVsYXRpdmVbYWhdKXthaD0iIn1lbHNle2FnPVoucG9wKCl9aWYoYWc9PW51bGwp
e2FnPVV9SS5yZWxhdGl2ZVthaF0oYWksYWcsUShVKSl9fWlmKCFhaSl7YWk9YWZ9
aWYoIWFpKXt0aHJvdyJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNz
aW9uOiAiKyhhaHx8WSl9aWYoSC5jYWxsKGFpKT09PSJbb2JqZWN0IEFycmF5XSIp
e2lmKCFYKXthYi5wdXNoLmFwcGx5KGFiLGFpKX1lbHNle2lmKFUubm9kZVR5cGU9
PT0xKXtmb3IodmFyIGFhPTA7YWlbYWFdIT1udWxsO2FhKyspe2lmKGFpW2FhXSYm
KGFpW2FhXT09PXRydWV8fGFpW2FhXS5ub2RlVHlwZT09PTEmJksoVSxhaVthYV0p
KSl7YWIucHVzaChhZlthYV0pfX19ZWxzZXtmb3IodmFyIGFhPTA7YWlbYWFdIT1u
dWxsO2FhKyspe2lmKGFpW2FhXSYmYWlbYWFdLm5vZGVUeXBlPT09MSl7YWIucHVz
aChhZlthYV0pfX19fX1lbHNle0UoYWksYWIpfWlmKFYpe0YoVixVLGFiLGFjKTtp
ZihHKXtoYXNEdXBsaWNhdGU9ZmFsc2U7YWIuc29ydChHKTtpZihoYXNEdXBsaWNh
dGUpe2Zvcih2YXIgYWE9MTthYTxhYi5sZW5ndGg7YWErKyl7aWYoYWJbYWFdPT09
YWJbYWEtMV0pe2FiLnNwbGljZShhYS0tLDEpfX19fX1yZXR1cm4gYWJ9O0YubWF0
Y2hlcz1mdW5jdGlvbihULFUpe3JldHVybiBGKFQsbnVsbCxudWxsLFUpfTtGLmZp
bmQ9ZnVuY3Rpb24oYWEsVCxhYil7dmFyIFosWDtpZighYWEpe3JldHVybltdfWZv
cih2YXIgVz0wLFY9SS5vcmRlci5sZW5ndGg7VzxWO1crKyl7dmFyIFk9SS5vcmRl
cltXXSxYO2lmKChYPUkubWF0Y2hbWV0uZXhlYyhhYSkpKXt2YXIgVT1SZWdFeHAu
bGVmdENvbnRleHQ7aWYoVS5zdWJzdHIoVS5sZW5ndGgtMSkhPT0iXFwiKXtYWzFd
PShYWzFdfHwiIikucmVwbGFjZSgvXFwvZywiIik7Wj1JLmZpbmRbWV0oWCxULGFi
KTtpZihaIT1udWxsKXthYT1hYS5yZXBsYWNlKEkubWF0Y2hbWV0sIiIpO2JyZWFr
fX19fWlmKCFaKXtaPVQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKX1yZXR1cm57
c2V0OlosZXhwcjphYX19O0YuZmlsdGVyPWZ1bmN0aW9uKGFkLGFjLGFnLFcpe3Zh
ciBWPWFkLGFpPVtdLGFhPWFjLFksVCxaPWFjJiZhY1swXSYmUShhY1swXSk7d2hp
bGUoYWQmJmFjLmxlbmd0aCl7Zm9yKHZhciBhYiBpbiBJLmZpbHRlcil7aWYoKFk9
SS5tYXRjaFthYl0uZXhlYyhhZCkpIT1udWxsKXt2YXIgVT1JLmZpbHRlclthYl0s
YWgsYWY7VD1mYWxzZTtpZihhYT09YWkpe2FpPVtdfWlmKEkucHJlRmlsdGVyW2Fi
XSl7WT1JLnByZUZpbHRlclthYl0oWSxhYSxhZyxhaSxXLFopO2lmKCFZKXtUPWFo
PXRydWV9ZWxzZXtpZihZPT09dHJ1ZSl7Y29udGludWV9fX1pZihZKXtmb3IodmFy
IFg9MDsoYWY9YWFbWF0pIT1udWxsO1grKyl7aWYoYWYpe2FoPVUoYWYsWSxYLGFh
KTt2YXIgYWU9V14hIWFoO2lmKGFnJiZhaCE9bnVsbCl7aWYoYWUpe1Q9dHJ1ZX1l
bHNle2FhW1hdPWZhbHNlfX1lbHNle2lmKGFlKXthaS5wdXNoKGFmKTtUPXRydWV9
fX19fWlmKGFoIT09Zyl7aWYoIWFnKXthYT1haX1hZD1hZC5yZXBsYWNlKEkubWF0
Y2hbYWJdLCIiKTtpZighVCl7cmV0dXJuW119YnJlYWt9fX1pZihhZD09Vil7aWYo
VD09bnVsbCl7dGhyb3ciU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVz
c2lvbjogIithZH1lbHNle2JyZWFrfX1WPWFkfXJldHVybiBhYX07dmFyIEk9Ri5z
ZWxlY3RvcnM9e29yZGVyOlsiSUQiLCJOQU1FIiwiVEFHIl0sbWF0Y2g6e0lEOi8j
KCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspLyxDTEFTUzovXC4oKD86W1x3
XHUwMGMwLVx1RkZGRl8tXXxcXC4pKykvLE5BTUU6L1xbbmFtZT1bJyJdKigoPzpb
XHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKVsnIl0qXF0vLEFUVFI6L1xbXHMqKCg/
Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspXHMqKD86KFxTPz0pXHMqKFsnIl0q
KSguKj8pXDN8KVxzKlxdLyxUQUc6L14oKD86W1x3XHUwMGMwLVx1RkZGRlwqXy1d
fFxcLikrKS8sQ0hJTEQ6Lzoob25seXxudGh8bGFzdHxmaXJzdCktY2hpbGQoPzpc
KChldmVufG9kZHxbXGRuKy1dKilcKSk/LyxQT1M6LzoobnRofGVxfGd0fGx0fGZp
cnN0fGxhc3R8ZXZlbnxvZGQpKD86XCgoXGQqKVwpKT8oPz1bXi1dfCQpLyxQU0VV
RE86LzooKD86W1x3XHUwMGMwLVx1RkZGRl8tXXxcXC4pKykoPzpcKChbJyJdKiko
KD86XChbXlwpXStcKXxbXlwyXChcKV0qKSspXDJcKSk/L30sYXR0ck1hcDp7ImNs
YXNzIjoiY2xhc3NOYW1lIiwiZm9yIjoiaHRtbEZvciJ9LGF0dHJIYW5kbGU6e2hy
ZWY6ZnVuY3Rpb24oVCl7cmV0dXJuIFQuZ2V0QXR0cmlidXRlKCJocmVmIil9fSxy
ZWxhdGl2ZTp7IisiOmZ1bmN0aW9uKGFhLFQsWil7dmFyIFg9dHlwZW9mIFQ9PT0i
c3RyaW5nIixhYj1YJiYhL1xXLy50ZXN0KFQpLFk9WCYmIWFiO2lmKGFiJiYhWil7
VD1ULnRvVXBwZXJDYXNlKCl9Zm9yKHZhciBXPTAsVj1hYS5sZW5ndGgsVTtXPFY7
VysrKXtpZigoVT1hYVtXXSkpe3doaWxlKChVPVUucHJldmlvdXNTaWJsaW5nKSYm
VS5ub2RlVHlwZSE9PTEpe31hYVtXXT1ZfHxVJiZVLm5vZGVOYW1lPT09VD9VfHxm
YWxzZTpVPT09VH19aWYoWSl7Ri5maWx0ZXIoVCxhYSx0cnVlKX19LCI+IjpmdW5j
dGlvbihaLFUsYWEpe3ZhciBYPXR5cGVvZiBVPT09InN0cmluZyI7aWYoWCYmIS9c
Vy8udGVzdChVKSl7VT1hYT9VOlUudG9VcHBlckNhc2UoKTtmb3IodmFyIFY9MCxU
PVoubGVuZ3RoO1Y8VDtWKyspe3ZhciBZPVpbVl07aWYoWSl7dmFyIFc9WS5wYXJl
bnROb2RlO1pbVl09Vy5ub2RlTmFtZT09PVU/VzpmYWxzZX19fWVsc2V7Zm9yKHZh
ciBWPTAsVD1aLmxlbmd0aDtWPFQ7VisrKXt2YXIgWT1aW1ZdO2lmKFkpe1pbVl09
WD9ZLnBhcmVudE5vZGU6WS5wYXJlbnROb2RlPT09VX19aWYoWCl7Ri5maWx0ZXIo
VSxaLHRydWUpfX19LCIiOmZ1bmN0aW9uKFcsVSxZKXt2YXIgVj1MKyssVD1TO2lm
KCFVLm1hdGNoKC9cVy8pKXt2YXIgWD1VPVk/VTpVLnRvVXBwZXJDYXNlKCk7VD1Q
fVQoInBhcmVudE5vZGUiLFUsVixXLFgsWSl9LCJ+IjpmdW5jdGlvbihXLFUsWSl7
dmFyIFY9TCsrLFQ9UztpZih0eXBlb2YgVT09PSJzdHJpbmciJiYhVS5tYXRjaCgv
XFcvKSl7dmFyIFg9VT1ZP1U6VS50b1VwcGVyQ2FzZSgpO1Q9UH1UKCJwcmV2aW91
c1NpYmxpbmciLFUsVixXLFgsWSl9fSxmaW5kOntJRDpmdW5jdGlvbihVLFYsVyl7
aWYodHlwZW9mIFYuZ2V0RWxlbWVudEJ5SWQhPT0idW5kZWZpbmVkIiYmIVcpe3Zh
ciBUPVYuZ2V0RWxlbWVudEJ5SWQoVVsxXSk7cmV0dXJuIFQ/W1RdOltdfX0sTkFN
RTpmdW5jdGlvbihWLFksWil7aWYodHlwZW9mIFkuZ2V0RWxlbWVudHNCeU5hbWUh
PT0idW5kZWZpbmVkIil7dmFyIFU9W10sWD1ZLmdldEVsZW1lbnRzQnlOYW1lKFZb
MV0pO2Zvcih2YXIgVz0wLFQ9WC5sZW5ndGg7VzxUO1crKyl7aWYoWFtXXS5nZXRB
dHRyaWJ1dGUoIm5hbWUiKT09PVZbMV0pe1UucHVzaChYW1ddKX19cmV0dXJuIFUu
bGVuZ3RoPT09MD9udWxsOlV9fSxUQUc6ZnVuY3Rpb24oVCxVKXtyZXR1cm4gVS5n
ZXRFbGVtZW50c0J5VGFnTmFtZShUWzFdKX19LHByZUZpbHRlcjp7Q0xBU1M6ZnVu
Y3Rpb24oVyxVLFYsVCxaLGFhKXtXPSIgIitXWzFdLnJlcGxhY2UoL1xcL2csIiIp
KyIgIjtpZihhYSl7cmV0dXJuIFd9Zm9yKHZhciBYPTAsWTsoWT1VW1hdKSE9bnVs
bDtYKyspe2lmKFkpe2lmKFpeKFkuY2xhc3NOYW1lJiYoIiAiK1kuY2xhc3NOYW1l
KyIgIikuaW5kZXhPZihXKT49MCkpe2lmKCFWKXtULnB1c2goWSl9fWVsc2V7aWYo
Vil7VVtYXT1mYWxzZX19fX1yZXR1cm4gZmFsc2V9LElEOmZ1bmN0aW9uKFQpe3Jl
dHVybiBUWzFdLnJlcGxhY2UoL1xcL2csIiIpfSxUQUc6ZnVuY3Rpb24oVSxUKXtm
b3IodmFyIFY9MDtUW1ZdPT09ZmFsc2U7VisrKXt9cmV0dXJuIFRbVl0mJlEoVFtW
XSk/VVsxXTpVWzFdLnRvVXBwZXJDYXNlKCl9LENISUxEOmZ1bmN0aW9uKFQpe2lm
KFRbMV09PSJudGgiKXt2YXIgVT0vKC0/KShcZCopbigoPzpcK3wtKT9cZCopLy5l
eGVjKFRbMl09PSJldmVuIiYmIjJuInx8VFsyXT09Im9kZCImJiIybisxInx8IS9c
RC8udGVzdChUWzJdKSYmIjBuKyIrVFsyXXx8VFsyXSk7VFsyXT0oVVsxXSsoVVsy
XXx8MSkpLTA7VFszXT1VWzNdLTB9VFswXT1MKys7cmV0dXJuIFR9LEFUVFI6ZnVu
Y3Rpb24oWCxVLFYsVCxZLFope3ZhciBXPVhbMV0ucmVwbGFjZSgvXFwvZywiIik7
aWYoIVomJkkuYXR0ck1hcFtXXSl7WFsxXT1JLmF0dHJNYXBbV119aWYoWFsyXT09
PSJ+PSIpe1hbNF09IiAiK1hbNF0rIiAifXJldHVybiBYfSxQU0VVRE86ZnVuY3Rp
b24oWCxVLFYsVCxZKXtpZihYWzFdPT09Im5vdCIpe2lmKFhbM10ubWF0Y2goUiku
bGVuZ3RoPjF8fC9eXHcvLnRlc3QoWFszXSkpe1hbM109RihYWzNdLG51bGwsbnVs
bCxVKX1lbHNle3ZhciBXPUYuZmlsdGVyKFhbM10sVSxWLHRydWVeWSk7aWYoIVYp
e1QucHVzaC5hcHBseShULFcpfXJldHVybiBmYWxzZX19ZWxzZXtpZihJLm1hdGNo
LlBPUy50ZXN0KFhbMF0pfHxJLm1hdGNoLkNISUxELnRlc3QoWFswXSkpe3JldHVy
biB0cnVlfX1yZXR1cm4gWH0sUE9TOmZ1bmN0aW9uKFQpe1QudW5zaGlmdCh0cnVl
KTtyZXR1cm4gVH19LGZpbHRlcnM6e2VuYWJsZWQ6ZnVuY3Rpb24oVCl7cmV0dXJu
IFQuZGlzYWJsZWQ9PT1mYWxzZSYmVC50eXBlIT09ImhpZGRlbiJ9LGRpc2FibGVk
OmZ1bmN0aW9uKFQpe3JldHVybiBULmRpc2FibGVkPT09dHJ1ZX0sY2hlY2tlZDpm
dW5jdGlvbihUKXtyZXR1cm4gVC5jaGVja2VkPT09dHJ1ZX0sc2VsZWN0ZWQ6ZnVu
Y3Rpb24oVCl7VC5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXg7cmV0dXJuIFQuc2Vs
ZWN0ZWQ9PT10cnVlfSxwYXJlbnQ6ZnVuY3Rpb24oVCl7cmV0dXJuICEhVC5maXJz
dENoaWxkfSxlbXB0eTpmdW5jdGlvbihUKXtyZXR1cm4gIVQuZmlyc3RDaGlsZH0s
aGFzOmZ1bmN0aW9uKFYsVSxUKXtyZXR1cm4gISFGKFRbM10sVikubGVuZ3RofSxo
ZWFkZXI6ZnVuY3Rpb24oVCl7cmV0dXJuL2hcZC9pLnRlc3QoVC5ub2RlTmFtZSl9
LHRleHQ6ZnVuY3Rpb24oVCl7cmV0dXJuInRleHQiPT09VC50eXBlfSxyYWRpbzpm
dW5jdGlvbihUKXtyZXR1cm4icmFkaW8iPT09VC50eXBlfSxjaGVja2JveDpmdW5j
dGlvbihUKXtyZXR1cm4iY2hlY2tib3giPT09VC50eXBlfSxmaWxlOmZ1bmN0aW9u
KFQpe3JldHVybiJmaWxlIj09PVQudHlwZX0scGFzc3dvcmQ6ZnVuY3Rpb24oVCl7
cmV0dXJuInBhc3N3b3JkIj09PVQudHlwZX0sc3VibWl0OmZ1bmN0aW9uKFQpe3Jl
dHVybiJzdWJtaXQiPT09VC50eXBlfSxpbWFnZTpmdW5jdGlvbihUKXtyZXR1cm4i
aW1hZ2UiPT09VC50eXBlfSxyZXNldDpmdW5jdGlvbihUKXtyZXR1cm4icmVzZXQi
PT09VC50eXBlfSxidXR0b246ZnVuY3Rpb24oVCl7cmV0dXJuImJ1dHRvbiI9PT1U
LnR5cGV8fFQubm9kZU5hbWUudG9VcHBlckNhc2UoKT09PSJCVVRUT04ifSxpbnB1
dDpmdW5jdGlvbihUKXtyZXR1cm4vaW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRv
bi9pLnRlc3QoVC5ub2RlTmFtZSl9fSxzZXRGaWx0ZXJzOntmaXJzdDpmdW5jdGlv
bihVLFQpe3JldHVybiBUPT09MH0sbGFzdDpmdW5jdGlvbihWLFUsVCxXKXtyZXR1
cm4gVT09PVcubGVuZ3RoLTF9LGV2ZW46ZnVuY3Rpb24oVSxUKXtyZXR1cm4gVCUy
PT09MH0sb2RkOmZ1bmN0aW9uKFUsVCl7cmV0dXJuIFQlMj09PTF9LGx0OmZ1bmN0
aW9uKFYsVSxUKXtyZXR1cm4gVTxUWzNdLTB9LGd0OmZ1bmN0aW9uKFYsVSxUKXty
ZXR1cm4gVT5UWzNdLTB9LG50aDpmdW5jdGlvbihWLFUsVCl7cmV0dXJuIFRbM10t
MD09VX0sZXE6ZnVuY3Rpb24oVixVLFQpe3JldHVybiBUWzNdLTA9PVV9fSxmaWx0
ZXI6e1BTRVVETzpmdW5jdGlvbihaLFYsVyxhYSl7dmFyIFU9VlsxXSxYPUkuZmls
dGVyc1tVXTtpZihYKXtyZXR1cm4gWChaLFcsVixhYSl9ZWxzZXtpZihVPT09ImNv
bnRhaW5zIil7cmV0dXJuKFoudGV4dENvbnRlbnR8fFouaW5uZXJUZXh0fHwiIiku
aW5kZXhPZihWWzNdKT49MH1lbHNle2lmKFU9PT0ibm90Iil7dmFyIFk9VlszXTtm
b3IodmFyIFc9MCxUPVkubGVuZ3RoO1c8VDtXKyspe2lmKFlbV109PT1aKXtyZXR1
cm4gZmFsc2V9fXJldHVybiB0cnVlfX19fSxDSElMRDpmdW5jdGlvbihULFcpe3Zh
ciBaPVdbMV0sVT1UO3N3aXRjaChaKXtjYXNlIm9ubHkiOmNhc2UiZmlyc3QiOndo
aWxlKFU9VS5wcmV2aW91c1NpYmxpbmcpe2lmKFUubm9kZVR5cGU9PT0xKXtyZXR1
cm4gZmFsc2V9fWlmKFo9PSJmaXJzdCIpe3JldHVybiB0cnVlfVU9VDtjYXNlImxh
c3QiOndoaWxlKFU9VS5uZXh0U2libGluZyl7aWYoVS5ub2RlVHlwZT09PTEpe3Jl
dHVybiBmYWxzZX19cmV0dXJuIHRydWU7Y2FzZSJudGgiOnZhciBWPVdbMl0sYWM9
V1szXTtpZihWPT0xJiZhYz09MCl7cmV0dXJuIHRydWV9dmFyIFk9V1swXSxhYj1U
LnBhcmVudE5vZGU7aWYoYWImJihhYi5zaXpjYWNoZSE9PVl8fCFULm5vZGVJbmRl
eCkpe3ZhciBYPTA7Zm9yKFU9YWIuZmlyc3RDaGlsZDtVO1U9VS5uZXh0U2libGlu
Zyl7aWYoVS5ub2RlVHlwZT09PTEpe1Uubm9kZUluZGV4PSsrWH19YWIuc2l6Y2Fj
aGU9WX12YXIgYWE9VC5ub2RlSW5kZXgtYWM7aWYoVj09MCl7cmV0dXJuIGFhPT0w
fWVsc2V7cmV0dXJuKGFhJVY9PTAmJmFhL1Y+PTApfX19LElEOmZ1bmN0aW9uKFUs
VCl7cmV0dXJuIFUubm9kZVR5cGU9PT0xJiZVLmdldEF0dHJpYnV0ZSgiaWQiKT09
PVR9LFRBRzpmdW5jdGlvbihVLFQpe3JldHVybihUPT09IioiJiZVLm5vZGVUeXBl
PT09MSl8fFUubm9kZU5hbWU9PT1UfSxDTEFTUzpmdW5jdGlvbihVLFQpe3JldHVy
bigiICIrKFUuY2xhc3NOYW1lfHxVLmdldEF0dHJpYnV0ZSgiY2xhc3MiKSkrIiAi
KS5pbmRleE9mKFQpPi0xfSxBVFRSOmZ1bmN0aW9uKFksVyl7dmFyIFY9V1sxXSxU
PUkuYXR0ckhhbmRsZVtWXT9JLmF0dHJIYW5kbGVbVl0oWSk6WVtWXSE9bnVsbD9Z
W1ZdOlkuZ2V0QXR0cmlidXRlKFYpLFo9VCsiIixYPVdbMl0sVT1XWzRdO3JldHVy
biBUPT1udWxsP1g9PT0iIT0iOlg9PT0iPSI/Wj09PVU6WD09PSIqPSI/Wi5pbmRl
eE9mKFUpPj0wOlg9PT0ifj0iPygiICIrWisiICIpLmluZGV4T2YoVSk+PTA6IVU/
WiYmVCE9PWZhbHNlOlg9PT0iIT0iP1ohPVU6WD09PSJePSI/Wi5pbmRleE9mKFUp
PT09MDpYPT09IiQ9Ij9aLnN1YnN0cihaLmxlbmd0aC1VLmxlbmd0aCk9PT1VOlg9
PT0ifD0iP1o9PT1VfHxaLnN1YnN0cigwLFUubGVuZ3RoKzEpPT09VSsiLSI6ZmFs
c2V9LFBPUzpmdW5jdGlvbihYLFUsVixZKXt2YXIgVD1VWzJdLFc9SS5zZXRGaWx0
ZXJzW1RdO2lmKFcpe3JldHVybiBXKFgsVixVLFkpfX19fTt2YXIgTT1JLm1hdGNo
LlBPUztmb3IodmFyIE8gaW4gSS5tYXRjaCl7SS5tYXRjaFtPXT1SZWdFeHAoSS5t
YXRjaFtPXS5zb3VyY2UrLyg/IVteXFtdKlxdKSg/IVteXChdKlwpKS8uc291cmNl
KX12YXIgRT1mdW5jdGlvbihVLFQpe1U9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNh
bGwoVSk7aWYoVCl7VC5wdXNoLmFwcGx5KFQsVSk7cmV0dXJuIFR9cmV0dXJuIFV9
O3RyeXtBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQuY2hpbGROb2Rlcyl9Y2F0Y2goTil7RT1mdW5jdGlvbihYLFcpe3Zh
ciBVPVd8fFtdO2lmKEguY2FsbChYKT09PSJbb2JqZWN0IEFycmF5XSIpe0FycmF5
LnByb3RvdHlwZS5wdXNoLmFwcGx5KFUsWCl9ZWxzZXtpZih0eXBlb2YgWC5sZW5n
dGg9PT0ibnVtYmVyIil7Zm9yKHZhciBWPTAsVD1YLmxlbmd0aDtWPFQ7VisrKXtV
LnB1c2goWFtWXSl9fWVsc2V7Zm9yKHZhciBWPTA7WFtWXTtWKyspe1UucHVzaChY
W1ZdKX19fXJldHVybiBVfX12YXIgRztpZihkb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24pe0c9ZnVuY3Rpb24oVSxUKXt2YXIg
Vj1VLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKFQpJjQ/LTE6VT09PVQ/MDoxO2lm
KFY9PT0wKXtoYXNEdXBsaWNhdGU9dHJ1ZX1yZXR1cm4gVn19ZWxzZXtpZigic291
cmNlSW5kZXgiIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCl7Rz1mdW5jdGlv
bihVLFQpe3ZhciBWPVUuc291cmNlSW5kZXgtVC5zb3VyY2VJbmRleDtpZihWPT09
MCl7aGFzRHVwbGljYXRlPXRydWV9cmV0dXJuIFZ9fWVsc2V7aWYoZG9jdW1lbnQu
Y3JlYXRlUmFuZ2Upe0c9ZnVuY3Rpb24oVyxVKXt2YXIgVj1XLm93bmVyRG9jdW1l
bnQuY3JlYXRlUmFuZ2UoKSxUPVUub3duZXJEb2N1bWVudC5jcmVhdGVSYW5nZSgp
O1Yuc2VsZWN0Tm9kZShXKTtWLmNvbGxhcHNlKHRydWUpO1Quc2VsZWN0Tm9kZShV
KTtULmNvbGxhcHNlKHRydWUpO3ZhciBYPVYuY29tcGFyZUJvdW5kYXJ5UG9pbnRz
KFJhbmdlLlNUQVJUX1RPX0VORCxUKTtpZihYPT09MCl7aGFzRHVwbGljYXRlPXRy
dWV9cmV0dXJuIFh9fX19KGZ1bmN0aW9uKCl7dmFyIFU9ZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZm9ybSIpLFY9InNjcmlwdCIrKG5ldyBEYXRlKS5nZXRUaW1lKCk7
VS5pbm5lckhUTUw9IjxpbnB1dCBuYW1lPSciK1YrIicvPiI7dmFyIFQ9ZG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50O1QuaW5zZXJ0QmVmb3JlKFUsVC5maXJzdENoaWxk
KTtpZighIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFYpKXtJLmZpbmQuSUQ9ZnVu
Y3Rpb24oWCxZLFope2lmKHR5cGVvZiBZLmdldEVsZW1lbnRCeUlkIT09InVuZGVm
aW5lZCImJiFaKXt2YXIgVz1ZLmdldEVsZW1lbnRCeUlkKFhbMV0pO3JldHVybiBX
P1cuaWQ9PT1YWzFdfHx0eXBlb2YgVy5nZXRBdHRyaWJ1dGVOb2RlIT09InVuZGVm
aW5lZCImJlcuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKS5ub2RlVmFsdWU9PT1YWzFd
P1tXXTpnOltdfX07SS5maWx0ZXIuSUQ9ZnVuY3Rpb24oWSxXKXt2YXIgWD10eXBl
b2YgWS5nZXRBdHRyaWJ1dGVOb2RlIT09InVuZGVmaW5lZCImJlkuZ2V0QXR0cmli
dXRlTm9kZSgiaWQiKTtyZXR1cm4gWS5ub2RlVHlwZT09PTEmJlgmJlgubm9kZVZh
bHVlPT09V319VC5yZW1vdmVDaGlsZChVKX0pKCk7KGZ1bmN0aW9uKCl7dmFyIFQ9
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7VC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVDb21tZW50KCIiKSk7aWYoVC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgiKiIpLmxlbmd0aD4wKXtJLmZpbmQuVEFHPWZ1bmN0aW9uKFUsWSl7dmFyIFg9
WS5nZXRFbGVtZW50c0J5VGFnTmFtZShVWzFdKTtpZihVWzFdPT09IioiKXt2YXIg
Vz1bXTtmb3IodmFyIFY9MDtYW1ZdO1YrKyl7aWYoWFtWXS5ub2RlVHlwZT09PTEp
e1cucHVzaChYW1ZdKX19WD1XfXJldHVybiBYfX1ULmlubmVySFRNTD0iPGEgaHJl
Zj0nIyc+PC9hPiI7aWYoVC5maXJzdENoaWxkJiZ0eXBlb2YgVC5maXJzdENoaWxk
LmdldEF0dHJpYnV0ZSE9PSJ1bmRlZmluZWQiJiZULmZpcnN0Q2hpbGQuZ2V0QXR0
cmlidXRlKCJocmVmIikhPT0iIyIpe0kuYXR0ckhhbmRsZS5ocmVmPWZ1bmN0aW9u
KFUpe3JldHVybiBVLmdldEF0dHJpYnV0ZSgiaHJlZiIsMil9fX0pKCk7aWYoZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCl7KGZ1bmN0aW9uKCl7dmFyIFQ9RixVPWRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO1UuaW5uZXJIVE1MPSI8cCBjbGFz
cz0nVEVTVCc+PC9wPiI7aWYoVS5xdWVyeVNlbGVjdG9yQWxsJiZVLnF1ZXJ5U2Vs
ZWN0b3JBbGwoIi5URVNUIikubGVuZ3RoPT09MCl7cmV0dXJufUY9ZnVuY3Rpb24o
WSxYLFYsVyl7WD1YfHxkb2N1bWVudDtpZighVyYmWC5ub2RlVHlwZT09PTkmJiFR
KFgpKXt0cnl7cmV0dXJuIEUoWC5xdWVyeVNlbGVjdG9yQWxsKFkpLFYpfWNhdGNo
KFope319cmV0dXJuIFQoWSxYLFYsVyl9O0YuZmluZD1ULmZpbmQ7Ri5maWx0ZXI9
VC5maWx0ZXI7Ri5zZWxlY3RvcnM9VC5zZWxlY3RvcnM7Ri5tYXRjaGVzPVQubWF0
Y2hlc30pKCl9aWYoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUpeyhm
dW5jdGlvbigpe3ZhciBUPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO1Qu
aW5uZXJIVE1MPSI8ZGl2IGNsYXNzPSd0ZXN0IGUnPjwvZGl2PjxkaXYgY2xhc3M9
J3Rlc3QnPjwvZGl2PiI7aWYoVC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIiku
bGVuZ3RoPT09MCl7cmV0dXJufVQubGFzdENoaWxkLmNsYXNzTmFtZT0iZSI7aWYo
VC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVuZ3RoPT09MSl7cmV0dXJu
fUkub3JkZXIuc3BsaWNlKDEsMCwiQ0xBU1MiKTtJLmZpbmQuQ0xBU1M9ZnVuY3Rp
b24oVSxWLFcpe2lmKHR5cGVvZiBWLmdldEVsZW1lbnRzQnlDbGFzc05hbWUhPT0i
dW5kZWZpbmVkIiYmIVcpe3JldHVybiBWLmdldEVsZW1lbnRzQnlDbGFzc05hbWUo
VVsxXSl9fX0pKCl9ZnVuY3Rpb24gUChVLFosWSxhZCxhYSxhYyl7dmFyIGFiPVU9
PSJwcmV2aW91c1NpYmxpbmciJiYhYWM7Zm9yKHZhciBXPTAsVj1hZC5sZW5ndGg7
VzxWO1crKyl7dmFyIFQ9YWRbV107aWYoVCl7aWYoYWImJlQubm9kZVR5cGU9PT0x
KXtULnNpemNhY2hlPVk7VC5zaXpzZXQ9V31UPVRbVV07dmFyIFg9ZmFsc2U7d2hp
bGUoVCl7aWYoVC5zaXpjYWNoZT09PVkpe1g9YWRbVC5zaXpzZXRdO2JyZWFrfWlm
KFQubm9kZVR5cGU9PT0xJiYhYWMpe1Quc2l6Y2FjaGU9WTtULnNpenNldD1XfWlm
KFQubm9kZU5hbWU9PT1aKXtYPVQ7YnJlYWt9VD1UW1VdfWFkW1ddPVh9fX1mdW5j
dGlvbiBTKFUsWixZLGFkLGFhLGFjKXt2YXIgYWI9VT09InByZXZpb3VzU2libGlu
ZyImJiFhYztmb3IodmFyIFc9MCxWPWFkLmxlbmd0aDtXPFY7VysrKXt2YXIgVD1h
ZFtXXTtpZihUKXtpZihhYiYmVC5ub2RlVHlwZT09PTEpe1Quc2l6Y2FjaGU9WTtU
LnNpenNldD1XfVQ9VFtVXTt2YXIgWD1mYWxzZTt3aGlsZShUKXtpZihULnNpemNh
Y2hlPT09WSl7WD1hZFtULnNpenNldF07YnJlYWt9aWYoVC5ub2RlVHlwZT09PTEp
e2lmKCFhYyl7VC5zaXpjYWNoZT1ZO1Quc2l6c2V0PVd9aWYodHlwZW9mIFohPT0i
c3RyaW5nIil7aWYoVD09PVope1g9dHJ1ZTticmVha319ZWxzZXtpZihGLmZpbHRl
cihaLFtUXSkubGVuZ3RoPjApe1g9VDticmVha319fVQ9VFtVXX1hZFtXXT1YfX19
dmFyIEs9ZG9jdW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24/ZnVuY3Rpb24o
VSxUKXtyZXR1cm4gVS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihUKSYxNn06ZnVu
Y3Rpb24oVSxUKXtyZXR1cm4gVSE9PVQmJihVLmNvbnRhaW5zP1UuY29udGFpbnMo
VCk6dHJ1ZSl9O3ZhciBRPWZ1bmN0aW9uKFQpe3JldHVybiBULm5vZGVUeXBlPT09
OSYmVC5kb2N1bWVudEVsZW1lbnQubm9kZU5hbWUhPT0iSFRNTCJ8fCEhVC5vd25l
ckRvY3VtZW50JiZRKFQub3duZXJEb2N1bWVudCl9O3ZhciBKPWZ1bmN0aW9uKFQs
YWEpe3ZhciBXPVtdLFg9IiIsWSxWPWFhLm5vZGVUeXBlP1thYV06YWE7d2hpbGUo
KFk9SS5tYXRjaC5QU0VVRE8uZXhlYyhUKSkpe1grPVlbMF07VD1ULnJlcGxhY2Uo
SS5tYXRjaC5QU0VVRE8sIiIpfVQ9SS5yZWxhdGl2ZVtUXT9UKyIqIjpUO2Zvcih2
YXIgWj0wLFU9Vi5sZW5ndGg7WjxVO1orKyl7RihULFZbWl0sVyl9cmV0dXJuIEYu
ZmlsdGVyKFgsVyl9O28uZmluZD1GO28uZmlsdGVyPUYuZmlsdGVyO28uZXhwcj1G
LnNlbGVjdG9ycztvLmV4cHJbIjoiXT1vLmV4cHIuZmlsdGVycztGLnNlbGVjdG9y
cy5maWx0ZXJzLmhpZGRlbj1mdW5jdGlvbihUKXtyZXR1cm4gVC5vZmZzZXRXaWR0
aD09PTB8fFQub2Zmc2V0SGVpZ2h0PT09MH07Ri5zZWxlY3RvcnMuZmlsdGVycy52
aXNpYmxlPWZ1bmN0aW9uKFQpe3JldHVybiBULm9mZnNldFdpZHRoPjB8fFQub2Zm
c2V0SGVpZ2h0PjB9O0Yuc2VsZWN0b3JzLmZpbHRlcnMuYW5pbWF0ZWQ9ZnVuY3Rp
b24oVCl7cmV0dXJuIG8uZ3JlcChvLnRpbWVycyxmdW5jdGlvbihVKXtyZXR1cm4g
VD09PVUuZWxlbX0pLmxlbmd0aH07by5tdWx0aUZpbHRlcj1mdW5jdGlvbihWLFQs
VSl7aWYoVSl7Vj0iOm5vdCgiK1YrIikifXJldHVybiBGLm1hdGNoZXMoVixUKX07
by5kaXI9ZnVuY3Rpb24oVixVKXt2YXIgVD1bXSxXPVZbVV07d2hpbGUoVyYmVyE9
ZG9jdW1lbnQpe2lmKFcubm9kZVR5cGU9PTEpe1QucHVzaChXKX1XPVdbVV19cmV0
dXJuIFR9O28ubnRoPWZ1bmN0aW9uKFgsVCxWLFcpe1Q9VHx8MTt2YXIgVT0wO2Zv
cig7WDtYPVhbVl0pe2lmKFgubm9kZVR5cGU9PTEmJisrVT09VCl7YnJlYWt9fXJl
dHVybiBYfTtvLnNpYmxpbmc9ZnVuY3Rpb24oVixVKXt2YXIgVD1bXTtmb3IoO1Y7
Vj1WLm5leHRTaWJsaW5nKXtpZihWLm5vZGVUeXBlPT0xJiZWIT1VKXtULnB1c2go
Vil9fXJldHVybiBUfTtyZXR1cm47bC5TaXp6bGU9Rn0pKCk7by5ldmVudD17YWRk
OmZ1bmN0aW9uKEksRixILEspe2lmKEkubm9kZVR5cGU9PTN8fEkubm9kZVR5cGU9
PTgpe3JldHVybn1pZihJLnNldEludGVydmFsJiZJIT1sKXtJPWx9aWYoIUguZ3Vp
ZCl7SC5ndWlkPXRoaXMuZ3VpZCsrfWlmKEshPT1nKXt2YXIgRz1IO0g9dGhpcy5w
cm94eShHKTtILmRhdGE9S312YXIgRT1vLmRhdGEoSSwiZXZlbnRzIil8fG8uZGF0
YShJLCJldmVudHMiLHt9KSxKPW8uZGF0YShJLCJoYW5kbGUiKXx8by5kYXRhKEks
ImhhbmRsZSIsZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIG8hPT0idW5kZWZpbmVk
IiYmIW8uZXZlbnQudHJpZ2dlcmVkP28uZXZlbnQuaGFuZGxlLmFwcGx5KGFyZ3Vt
ZW50cy5jYWxsZWUuZWxlbSxhcmd1bWVudHMpOmd9KTtKLmVsZW09STtvLmVhY2go
Ri5zcGxpdCgvXHMrLyksZnVuY3Rpb24oTSxOKXt2YXIgTz1OLnNwbGl0KCIuIik7
Tj1PLnNoaWZ0KCk7SC50eXBlPU8uc2xpY2UoKS5zb3J0KCkuam9pbigiLiIpO3Zh
ciBMPUVbTl07aWYoby5ldmVudC5zcGVjaWFsQWxsW05dKXtvLmV2ZW50LnNwZWNp
YWxBbGxbTl0uc2V0dXAuY2FsbChJLEssTyl9aWYoIUwpe0w9RVtOXT17fTtpZigh
by5ldmVudC5zcGVjaWFsW05dfHxvLmV2ZW50LnNwZWNpYWxbTl0uc2V0dXAuY2Fs
bChJLEssTyk9PT1mYWxzZSl7aWYoSS5hZGRFdmVudExpc3RlbmVyKXtJLmFkZEV2
ZW50TGlzdGVuZXIoTixKLGZhbHNlKX1lbHNle2lmKEkuYXR0YWNoRXZlbnQpe0ku
YXR0YWNoRXZlbnQoIm9uIitOLEopfX19fUxbSC5ndWlkXT1IO28uZXZlbnQuZ2xv
YmFsW05dPXRydWV9KTtJPW51bGx9LGd1aWQ6MSxnbG9iYWw6e30scmVtb3ZlOmZ1
bmN0aW9uKEssSCxKKXtpZihLLm5vZGVUeXBlPT0zfHxLLm5vZGVUeXBlPT04KXty
ZXR1cm59dmFyIEc9by5kYXRhKEssImV2ZW50cyIpLEYsRTtpZihHKXtpZihIPT09
Z3x8KHR5cGVvZiBIPT09InN0cmluZyImJkguY2hhckF0KDApPT0iLiIpKXtmb3Io
dmFyIEkgaW4gRyl7dGhpcy5yZW1vdmUoSyxJKyhIfHwiIikpfX1lbHNle2lmKEgu
dHlwZSl7Sj1ILmhhbmRsZXI7SD1ILnR5cGV9by5lYWNoKEguc3BsaXQoL1xzKy8p
LGZ1bmN0aW9uKE0sTyl7dmFyIFE9Ty5zcGxpdCgiLiIpO089US5zaGlmdCgpO3Zh
ciBOPVJlZ0V4cCgiKF58XFwuKSIrUS5zbGljZSgpLnNvcnQoKS5qb2luKCIuKlxc
LiIpKyIoXFwufCQpIik7aWYoR1tPXSl7aWYoSil7ZGVsZXRlIEdbT11bSi5ndWlk
XX1lbHNle2Zvcih2YXIgUCBpbiBHW09dKXtpZihOLnRlc3QoR1tPXVtQXS50eXBl
KSl7ZGVsZXRlIEdbT11bUF19fX1pZihvLmV2ZW50LnNwZWNpYWxBbGxbT10pe28u
ZXZlbnQuc3BlY2lhbEFsbFtPXS50ZWFyZG93bi5jYWxsKEssUSl9Zm9yKEYgaW4g
R1tPXSl7YnJlYWt9aWYoIUYpe2lmKCFvLmV2ZW50LnNwZWNpYWxbT118fG8uZXZl
bnQuc3BlY2lhbFtPXS50ZWFyZG93bi5jYWxsKEssUSk9PT1mYWxzZSl7aWYoSy5y
ZW1vdmVFdmVudExpc3RlbmVyKXtLLnJlbW92ZUV2ZW50TGlzdGVuZXIoTyxvLmRh
dGEoSywiaGFuZGxlIiksZmFsc2UpfWVsc2V7aWYoSy5kZXRhY2hFdmVudCl7Sy5k
ZXRhY2hFdmVudCgib24iK08sby5kYXRhKEssImhhbmRsZSIpKX19fUY9bnVsbDtk
ZWxldGUgR1tPXX19fSl9Zm9yKEYgaW4gRyl7YnJlYWt9aWYoIUYpe3ZhciBMPW8u
ZGF0YShLLCJoYW5kbGUiKTtpZihMKXtMLmVsZW09bnVsbH1vLnJlbW92ZURhdGEo
SywiZXZlbnRzIik7by5yZW1vdmVEYXRhKEssImhhbmRsZSIpfX19LHRyaWdnZXI6
ZnVuY3Rpb24oSSxLLEgsRSl7dmFyIEc9SS50eXBlfHxJO2lmKCFFKXtJPXR5cGVv
ZiBJPT09Im9iamVjdCI/SVtoXT9JOm8uZXh0ZW5kKG8uRXZlbnQoRyksSSk6by5F
dmVudChHKTtpZihHLmluZGV4T2YoIiEiKT49MCl7SS50eXBlPUc9Ry5zbGljZSgw
LC0xKTtJLmV4Y2x1c2l2ZT10cnVlfWlmKCFIKXtJLnN0b3BQcm9wYWdhdGlvbigp
O2lmKHRoaXMuZ2xvYmFsW0ddKXtvLmVhY2goby5jYWNoZSxmdW5jdGlvbigpe2lm
KHRoaXMuZXZlbnRzJiZ0aGlzLmV2ZW50c1tHXSl7by5ldmVudC50cmlnZ2VyKEks
Syx0aGlzLmhhbmRsZS5lbGVtKX19KX19aWYoIUh8fEgubm9kZVR5cGU9PTN8fEgu
bm9kZVR5cGU9PTgpe3JldHVybiBnfUkucmVzdWx0PWc7SS50YXJnZXQ9SDtLPW8u
bWFrZUFycmF5KEspO0sudW5zaGlmdChJKX1JLmN1cnJlbnRUYXJnZXQ9SDt2YXIg
Sj1vLmRhdGEoSCwiaGFuZGxlIik7aWYoSil7Si5hcHBseShILEspfWlmKCghSFtH
XXx8KG8ubm9kZU5hbWUoSCwiYSIpJiZHPT0iY2xpY2siKSkmJkhbIm9uIitHXSYm
SFsib24iK0ddLmFwcGx5KEgsSyk9PT1mYWxzZSl7SS5yZXN1bHQ9ZmFsc2V9aWYo
IUUmJkhbR10mJiFJLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYhKG8ubm9kZU5hbWUo
SCwiYSIpJiZHPT0iY2xpY2siKSl7dGhpcy50cmlnZ2VyZWQ9dHJ1ZTt0cnl7SFtH
XSgpfWNhdGNoKEwpe319dGhpcy50cmlnZ2VyZWQ9ZmFsc2U7aWYoIUkuaXNQcm9w
YWdhdGlvblN0b3BwZWQoKSl7dmFyIEY9SC5wYXJlbnROb2RlfHxILm93bmVyRG9j
dW1lbnQ7aWYoRil7by5ldmVudC50cmlnZ2VyKEksSyxGLHRydWUpfX19LGhhbmRs
ZTpmdW5jdGlvbihLKXt2YXIgSixFO0s9YXJndW1lbnRzWzBdPW8uZXZlbnQuZml4
KEt8fGwuZXZlbnQpO0suY3VycmVudFRhcmdldD10aGlzO3ZhciBMPUsudHlwZS5z
cGxpdCgiLiIpO0sudHlwZT1MLnNoaWZ0KCk7Sj0hTC5sZW5ndGgmJiFLLmV4Y2x1
c2l2ZTt2YXIgST1SZWdFeHAoIihefFxcLikiK0wuc2xpY2UoKS5zb3J0KCkuam9p
bigiLipcXC4iKSsiKFxcLnwkKSIpO0U9KG8uZGF0YSh0aGlzLCJldmVudHMiKXx8
e30pW0sudHlwZV07Zm9yKHZhciBHIGluIEUpe3ZhciBIPUVbR107aWYoSnx8SS50
ZXN0KEgudHlwZSkpe0suaGFuZGxlcj1IO0suZGF0YT1ILmRhdGE7dmFyIEY9SC5h
cHBseSh0aGlzLGFyZ3VtZW50cyk7aWYoRiE9PWcpe0sucmVzdWx0PUY7aWYoRj09
PWZhbHNlKXtLLnByZXZlbnREZWZhdWx0KCk7Sy5zdG9wUHJvcGFnYXRpb24oKX19
aWYoSy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKXticmVha319fX0s
cHJvcHM6ImFsdEtleSBhdHRyQ2hhbmdlIGF0dHJOYW1lIGJ1YmJsZXMgYnV0dG9u
IGNhbmNlbGFibGUgY2hhckNvZGUgY2xpZW50WCBjbGllbnRZIGN0cmxLZXkgY3Vy
cmVudFRhcmdldCBkYXRhIGRldGFpbCBldmVudFBoYXNlIGZyb21FbGVtZW50IGhh
bmRsZXIga2V5Q29kZSBtZXRhS2V5IG5ld1ZhbHVlIG9yaWdpbmFsVGFyZ2V0IHBh
Z2VYIHBhZ2VZIHByZXZWYWx1ZSByZWxhdGVkTm9kZSByZWxhdGVkVGFyZ2V0IHNj
cmVlblggc2NyZWVuWSBzaGlmdEtleSBzcmNFbGVtZW50IHRhcmdldCB0b0VsZW1l
bnQgdmlldyB3aGVlbERlbHRhIHdoaWNoIi5zcGxpdCgiICIpLGZpeDpmdW5jdGlv
bihIKXtpZihIW2hdKXtyZXR1cm4gSH12YXIgRj1IO0g9by5FdmVudChGKTtmb3Io
dmFyIEc9dGhpcy5wcm9wcy5sZW5ndGgsSjtHOyl7Sj10aGlzLnByb3BzWy0tR107
SFtKXT1GW0pdfWlmKCFILnRhcmdldCl7SC50YXJnZXQ9SC5zcmNFbGVtZW50fHxk
b2N1bWVudH1pZihILnRhcmdldC5ub2RlVHlwZT09Myl7SC50YXJnZXQ9SC50YXJn
ZXQucGFyZW50Tm9kZX1pZighSC5yZWxhdGVkVGFyZ2V0JiZILmZyb21FbGVtZW50
KXtILnJlbGF0ZWRUYXJnZXQ9SC5mcm9tRWxlbWVudD09SC50YXJnZXQ/SC50b0Vs
ZW1lbnQ6SC5mcm9tRWxlbWVudH1pZihILnBhZ2VYPT1udWxsJiZILmNsaWVudFgh
PW51bGwpe3ZhciBJPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxFPWRvY3VtZW50
LmJvZHk7SC5wYWdlWD1ILmNsaWVudFgrKEkmJkkuc2Nyb2xsTGVmdHx8RSYmRS5z
Y3JvbGxMZWZ0fHwwKS0oSS5jbGllbnRMZWZ0fHwwKTtILnBhZ2VZPUguY2xpZW50
WSsoSSYmSS5zY3JvbGxUb3B8fEUmJkUuc2Nyb2xsVG9wfHwwKS0oSS5jbGllbnRU
b3B8fDApfWlmKCFILndoaWNoJiYoKEguY2hhckNvZGV8fEguY2hhckNvZGU9PT0w
KT9ILmNoYXJDb2RlOkgua2V5Q29kZSkpe0gud2hpY2g9SC5jaGFyQ29kZXx8SC5r
ZXlDb2RlfWlmKCFILm1ldGFLZXkmJkguY3RybEtleSl7SC5tZXRhS2V5PUguY3Ry
bEtleX1pZighSC53aGljaCYmSC5idXR0b24pe0gud2hpY2g9KEguYnV0dG9uJjE/
MTooSC5idXR0b24mMj8zOihILmJ1dHRvbiY0PzI6MCkpKX1yZXR1cm4gSH0scHJv
eHk6ZnVuY3Rpb24oRixFKXtFPUV8fGZ1bmN0aW9uKCl7cmV0dXJuIEYuYXBwbHko
dGhpcyxhcmd1bWVudHMpfTtFLmd1aWQ9Ri5ndWlkPUYuZ3VpZHx8RS5ndWlkfHx0
aGlzLmd1aWQrKztyZXR1cm4gRX0sc3BlY2lhbDp7cmVhZHk6e3NldHVwOkIsdGVh
cmRvd246ZnVuY3Rpb24oKXt9fX0sc3BlY2lhbEFsbDp7bGl2ZTp7c2V0dXA6ZnVu
Y3Rpb24oRSxGKXtvLmV2ZW50LmFkZCh0aGlzLEZbMF0sYyl9LHRlYXJkb3duOmZ1
bmN0aW9uKEcpe2lmKEcubGVuZ3RoKXt2YXIgRT0wLEY9UmVnRXhwKCIoXnxcXC4p
IitHWzBdKyIoXFwufCQpIik7by5lYWNoKChvLmRhdGEodGhpcywiZXZlbnRzIiku
bGl2ZXx8e30pLGZ1bmN0aW9uKCl7aWYoRi50ZXN0KHRoaXMudHlwZSkpe0UrK319
KTtpZihFPDEpe28uZXZlbnQucmVtb3ZlKHRoaXMsR1swXSxjKX19fX19fTtvLkV2
ZW50PWZ1bmN0aW9uKEUpe2lmKCF0aGlzLnByZXZlbnREZWZhdWx0KXtyZXR1cm4g
bmV3IG8uRXZlbnQoRSl9aWYoRSYmRS50eXBlKXt0aGlzLm9yaWdpbmFsRXZlbnQ9
RTt0aGlzLnR5cGU9RS50eXBlfWVsc2V7dGhpcy50eXBlPUV9dGhpcy50aW1lU3Rh
bXA9ZSgpO3RoaXNbaF09dHJ1ZX07ZnVuY3Rpb24gaygpe3JldHVybiBmYWxzZX1m
dW5jdGlvbiB1KCl7cmV0dXJuIHRydWV9by5FdmVudC5wcm90b3R5cGU9e3ByZXZl
bnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9dTt2
YXIgRT10aGlzLm9yaWdpbmFsRXZlbnQ7aWYoIUUpe3JldHVybn1pZihFLnByZXZl
bnREZWZhdWx0KXtFLnByZXZlbnREZWZhdWx0KCl9RS5yZXR1cm5WYWx1ZT1mYWxz
ZX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dGhpcy5pc1Byb3BhZ2F0aW9u
U3RvcHBlZD11O3ZhciBFPXRoaXMub3JpZ2luYWxFdmVudDtpZighRSl7cmV0dXJu
fWlmKEUuc3RvcFByb3BhZ2F0aW9uKXtFLnN0b3BQcm9wYWdhdGlvbigpfUUuY2Fu
Y2VsQnViYmxlPXRydWV9LHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbjpmdW5jdGlv
bigpe3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9dTt0aGlzLnN0
b3BQcm9wYWdhdGlvbigpfSxpc0RlZmF1bHRQcmV2ZW50ZWQ6ayxpc1Byb3BhZ2F0
aW9uU3RvcHBlZDprLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOmt9O3Zh
ciBhPWZ1bmN0aW9uKEYpe3ZhciBFPUYucmVsYXRlZFRhcmdldDt3aGlsZShFJiZF
IT10aGlzKXt0cnl7RT1FLnBhcmVudE5vZGV9Y2F0Y2goRyl7RT10aGlzfX1pZihF
IT10aGlzKXtGLnR5cGU9Ri5kYXRhO28uZXZlbnQuaGFuZGxlLmFwcGx5KHRoaXMs
YXJndW1lbnRzKX19O28uZWFjaCh7bW91c2VvdmVyOiJtb3VzZWVudGVyIixtb3Vz
ZW91dDoibW91c2VsZWF2ZSJ9LGZ1bmN0aW9uKEYsRSl7by5ldmVudC5zcGVjaWFs
W0VdPXtzZXR1cDpmdW5jdGlvbigpe28uZXZlbnQuYWRkKHRoaXMsRixhLEUpfSx0
ZWFyZG93bjpmdW5jdGlvbigpe28uZXZlbnQucmVtb3ZlKHRoaXMsRixhKX19fSk7
by5mbi5leHRlbmQoe2JpbmQ6ZnVuY3Rpb24oRixHLEUpe3JldHVybiBGPT0idW5s
b2FkIj90aGlzLm9uZShGLEcsRSk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5ldmVu
dC5hZGQodGhpcyxGLEV8fEcsRSYmRyl9KX0sb25lOmZ1bmN0aW9uKEcsSCxGKXt2
YXIgRT1vLmV2ZW50LnByb3h5KEZ8fEgsZnVuY3Rpb24oSSl7byh0aGlzKS51bmJp
bmQoSSxFKTtyZXR1cm4oRnx8SCkuYXBwbHkodGhpcyxhcmd1bWVudHMpfSk7cmV0
dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe28uZXZlbnQuYWRkKHRoaXMsRyxFLEYm
JkgpfSl9LHVuYmluZDpmdW5jdGlvbihGLEUpe3JldHVybiB0aGlzLmVhY2goZnVu
Y3Rpb24oKXtvLmV2ZW50LnJlbW92ZSh0aGlzLEYsRSl9KX0sdHJpZ2dlcjpmdW5j
dGlvbihFLEYpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvLmV2ZW50LnRy
aWdnZXIoRSxGLHRoaXMpfSl9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKEUsRyl7
aWYodGhpc1swXSl7dmFyIEY9by5FdmVudChFKTtGLnByZXZlbnREZWZhdWx0KCk7
Ri5zdG9wUHJvcGFnYXRpb24oKTtvLmV2ZW50LnRyaWdnZXIoRixHLHRoaXNbMF0p
O3JldHVybiBGLnJlc3VsdH19LHRvZ2dsZTpmdW5jdGlvbihHKXt2YXIgRT1hcmd1
bWVudHMsRj0xO3doaWxlKEY8RS5sZW5ndGgpe28uZXZlbnQucHJveHkoRyxFW0Yr
K10pfXJldHVybiB0aGlzLmNsaWNrKG8uZXZlbnQucHJveHkoRyxmdW5jdGlvbihI
KXt0aGlzLmxhc3RUb2dnbGU9KHRoaXMubGFzdFRvZ2dsZXx8MCklRjtILnByZXZl
bnREZWZhdWx0KCk7cmV0dXJuIEVbdGhpcy5sYXN0VG9nZ2xlKytdLmFwcGx5KHRo
aXMsYXJndW1lbnRzKXx8ZmFsc2V9KSl9LGhvdmVyOmZ1bmN0aW9uKEUsRil7cmV0
dXJuIHRoaXMubW91c2VlbnRlcihFKS5tb3VzZWxlYXZlKEYpfSxyZWFkeTpmdW5j
dGlvbihFKXtCKCk7aWYoby5pc1JlYWR5KXtFLmNhbGwoZG9jdW1lbnQsbyl9ZWxz
ZXtvLnJlYWR5TGlzdC5wdXNoKEUpfXJldHVybiB0aGlzfSxsaXZlOmZ1bmN0aW9u
KEcsRil7dmFyIEU9by5ldmVudC5wcm94eShGKTtFLmd1aWQrPXRoaXMuc2VsZWN0
b3IrRztvKGRvY3VtZW50KS5iaW5kKGkoRyx0aGlzLnNlbGVjdG9yKSx0aGlzLnNl
bGVjdG9yLEUpO3JldHVybiB0aGlzfSxkaWU6ZnVuY3Rpb24oRixFKXtvKGRvY3Vt
ZW50KS51bmJpbmQoaShGLHRoaXMuc2VsZWN0b3IpLEU/e2d1aWQ6RS5ndWlkK3Ro
aXMuc2VsZWN0b3IrRn06bnVsbCk7cmV0dXJuIHRoaXN9fSk7ZnVuY3Rpb24gYyhI
KXt2YXIgRT1SZWdFeHAoIihefFxcLikiK0gudHlwZSsiKFxcLnwkKSIpLEc9dHJ1
ZSxGPVtdO28uZWFjaChvLmRhdGEodGhpcywiZXZlbnRzIikubGl2ZXx8W10sZnVu
Y3Rpb24oSSxKKXtpZihFLnRlc3QoSi50eXBlKSl7dmFyIEs9byhILnRhcmdldCku
Y2xvc2VzdChKLmRhdGEpWzBdO2lmKEspe0YucHVzaCh7ZWxlbTpLLGZuOkp9KX19
fSk7Ri5zb3J0KGZ1bmN0aW9uKEosSSl7cmV0dXJuIG8uZGF0YShKLmVsZW0sImNs
b3Nlc3QiKS1vLmRhdGEoSS5lbGVtLCJjbG9zZXN0Iil9KTtvLmVhY2goRixmdW5j
dGlvbigpe2lmKHRoaXMuZm4uY2FsbCh0aGlzLmVsZW0sSCx0aGlzLmZuLmRhdGEp
PT09ZmFsc2Upe3JldHVybihHPWZhbHNlKX19KTtyZXR1cm4gR31mdW5jdGlvbiBp
KEYsRSl7cmV0dXJuWyJsaXZlIixGLEUucmVwbGFjZSgvXC4vZywiYCIpLnJlcGxh
Y2UoLyAvZywifCIpXS5qb2luKCIuIil9by5leHRlbmQoe2lzUmVhZHk6ZmFsc2Us
cmVhZHlMaXN0OltdLHJlYWR5OmZ1bmN0aW9uKCl7aWYoIW8uaXNSZWFkeSl7by5p
c1JlYWR5PXRydWU7aWYoby5yZWFkeUxpc3Qpe28uZWFjaChvLnJlYWR5TGlzdCxm
dW5jdGlvbigpe3RoaXMuY2FsbChkb2N1bWVudCxvKX0pO28ucmVhZHlMaXN0PW51
bGx9byhkb2N1bWVudCkudHJpZ2dlckhhbmRsZXIoInJlYWR5Iil9fX0pO3ZhciB4
PWZhbHNlO2Z1bmN0aW9uIEIoKXtpZih4KXtyZXR1cm59eD10cnVlO2lmKGRvY3Vt
ZW50LmFkZEV2ZW50TGlzdGVuZXIpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIo
IkRPTUNvbnRlbnRMb2FkZWQiLGZ1bmN0aW9uKCl7ZG9jdW1lbnQucmVtb3ZlRXZl
bnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsYXJndW1lbnRzLmNhbGxlZSxm
YWxzZSk7by5yZWFkeSgpfSxmYWxzZSl9ZWxzZXtpZihkb2N1bWVudC5hdHRhY2hF
dmVudCl7ZG9jdW1lbnQuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIs
ZnVuY3Rpb24oKXtpZihkb2N1bWVudC5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil7
ZG9jdW1lbnQuZGV0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsYXJndW1l
bnRzLmNhbGxlZSk7by5yZWFkeSgpfX0pO2lmKGRvY3VtZW50LmRvY3VtZW50RWxl
bWVudC5kb1Njcm9sbCYmbD09bC50b3ApeyhmdW5jdGlvbigpe2lmKG8uaXNSZWFk
eSl7cmV0dXJufXRyeXtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwo
ImxlZnQiKX1jYXRjaChFKXtzZXRUaW1lb3V0KGFyZ3VtZW50cy5jYWxsZWUsMCk7
cmV0dXJufW8ucmVhZHkoKX0pKCl9fX1vLmV2ZW50LmFkZChsLCJsb2FkIixvLnJl
YWR5KX1vLmVhY2goKCJibHVyLGZvY3VzLGxvYWQscmVzaXplLHNjcm9sbCx1bmxv
YWQsY2xpY2ssZGJsY2xpY2ssbW91c2Vkb3duLG1vdXNldXAsbW91c2Vtb3ZlLG1v
dXNlb3Zlcixtb3VzZW91dCxtb3VzZWVudGVyLG1vdXNlbGVhdmUsY2hhbmdlLHNl
bGVjdCxzdWJtaXQsa2V5ZG93bixrZXlwcmVzcyxrZXl1cCxlcnJvciIpLnNwbGl0
KCIsIiksZnVuY3Rpb24oRixFKXtvLmZuW0VdPWZ1bmN0aW9uKEcpe3JldHVybiBH
P3RoaXMuYmluZChFLEcpOnRoaXMudHJpZ2dlcihFKX19KTtvKGwpLmJpbmQoInVu
bG9hZCIsZnVuY3Rpb24oKXtmb3IodmFyIEUgaW4gby5jYWNoZSl7aWYoRSE9MSYm
by5jYWNoZVtFXS5oYW5kbGUpe28uZXZlbnQucmVtb3ZlKG8uY2FjaGVbRV0uaGFu
ZGxlLmVsZW0pfX19KTsoZnVuY3Rpb24oKXtvLnN1cHBvcnQ9e307dmFyIEY9ZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LEc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
c2NyaXB0IiksSz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxKPSJzY3Jp
cHQiKyhuZXcgRGF0ZSkuZ2V0VGltZSgpO0suc3R5bGUuZGlzcGxheT0ibm9uZSI7
Sy5pbm5lckhUTUw9JyAgIDxsaW5rLz48dGFibGU+PC90YWJsZT48YSBocmVmPSIv
YSIgc3R5bGU9ImNvbG9yOnJlZDtmbG9hdDpsZWZ0O29wYWNpdHk6LjU7Ij5hPC9h
PjxzZWxlY3Q+PG9wdGlvbj50ZXh0PC9vcHRpb24+PC9zZWxlY3Q+PG9iamVjdD48
cGFyYW0vPjwvb2JqZWN0Pic7dmFyIEg9Sy5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
KiIpLEU9Sy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdO2lmKCFIfHwhSC5s
ZW5ndGh8fCFFKXtyZXR1cm59by5zdXBwb3J0PXtsZWFkaW5nV2hpdGVzcGFjZTpL
LmZpcnN0Q2hpbGQubm9kZVR5cGU9PTMsdGJvZHk6IUsuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoInRib2R5IikubGVuZ3RoLG9iamVjdEFsbDohIUsuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoIm9iamVjdCIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIiku
bGVuZ3RoLGh0bWxTZXJpYWxpemU6ISFLLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJs
aW5rIikubGVuZ3RoLHN0eWxlOi9yZWQvLnRlc3QoRS5nZXRBdHRyaWJ1dGUoInN0
eWxlIikpLGhyZWZOb3JtYWxpemVkOkUuZ2V0QXR0cmlidXRlKCJocmVmIik9PT0i
L2EiLG9wYWNpdHk6RS5zdHlsZS5vcGFjaXR5PT09IjAuNSIsY3NzRmxvYXQ6ISFF
LnN0eWxlLmNzc0Zsb2F0LHNjcmlwdEV2YWw6ZmFsc2Usbm9DbG9uZUV2ZW50OnRy
dWUsYm94TW9kZWw6bnVsbH07Ry50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiO3RyeXtH
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ3aW5kb3cuIitK
KyI9MTsiKSl9Y2F0Y2goSSl7fUYuaW5zZXJ0QmVmb3JlKEcsRi5maXJzdENoaWxk
KTtpZihsW0pdKXtvLnN1cHBvcnQuc2NyaXB0RXZhbD10cnVlO2RlbGV0ZSBsW0pd
fUYucmVtb3ZlQ2hpbGQoRyk7aWYoSy5hdHRhY2hFdmVudCYmSy5maXJlRXZlbnQp
e0suYXR0YWNoRXZlbnQoIm9uY2xpY2siLGZ1bmN0aW9uKCl7by5zdXBwb3J0Lm5v
Q2xvbmVFdmVudD1mYWxzZTtLLmRldGFjaEV2ZW50KCJvbmNsaWNrIixhcmd1bWVu
dHMuY2FsbGVlKX0pO0suY2xvbmVOb2RlKHRydWUpLmZpcmVFdmVudCgib25jbGlj
ayIpfW8oZnVuY3Rpb24oKXt2YXIgTD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTtMLnN0eWxlLndpZHRoPUwuc3R5bGUucGFkZGluZ0xlZnQ9IjFweCI7ZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChMKTtvLmJveE1vZGVsPW8uc3VwcG9ydC5i
b3hNb2RlbD1MLm9mZnNldFdpZHRoPT09Mjtkb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKEwpLnN0eWxlLmRpc3BsYXk9Im5vbmUifSl9KSgpO3ZhciB3PW8uc3VwcG9y
dC5jc3NGbG9hdD8iY3NzRmxvYXQiOiJzdHlsZUZsb2F0IjtvLnByb3BzPXsiZm9y
IjoiaHRtbEZvciIsImNsYXNzIjoiY2xhc3NOYW1lIiwiZmxvYXQiOncsY3NzRmxv
YXQ6dyxzdHlsZUZsb2F0OncscmVhZG9ubHk6InJlYWRPbmx5IixtYXhsZW5ndGg6
Im1heExlbmd0aCIsY2VsbHNwYWNpbmc6ImNlbGxTcGFjaW5nIixyb3dzcGFuOiJy
b3dTcGFuIix0YWJpbmRleDoidGFiSW5kZXgifTtvLmZuLmV4dGVuZCh7X2xvYWQ6
by5mbi5sb2FkLGxvYWQ6ZnVuY3Rpb24oRyxKLEspe2lmKHR5cGVvZiBHIT09InN0
cmluZyIpe3JldHVybiB0aGlzLl9sb2FkKEcpfXZhciBJPUcuaW5kZXhPZigiICIp
O2lmKEk+PTApe3ZhciBFPUcuc2xpY2UoSSxHLmxlbmd0aCk7Rz1HLnNsaWNlKDAs
SSl9dmFyIEg9IkdFVCI7aWYoSil7aWYoby5pc0Z1bmN0aW9uKEopKXtLPUo7Sj1u
dWxsfWVsc2V7aWYodHlwZW9mIEo9PT0ib2JqZWN0Iil7Sj1vLnBhcmFtKEopO0g9
IlBPU1QifX19dmFyIEY9dGhpcztvLmFqYXgoe3VybDpHLHR5cGU6SCxkYXRhVHlw
ZToiaHRtbCIsZGF0YTpKLGNvbXBsZXRlOmZ1bmN0aW9uKE0sTCl7aWYoTD09InN1
Y2Nlc3MifHxMPT0ibm90bW9kaWZpZWQiKXtGLmh0bWwoRT9vKCI8ZGl2Lz4iKS5h
cHBlbmQoTS5yZXNwb25zZVRleHQucmVwbGFjZSgvPHNjcmlwdCgufFxzKSo/XC9z
Y3JpcHQ+L2csIiIpKS5maW5kKEUpOk0ucmVzcG9uc2VUZXh0KX1pZihLKXtGLmVh
Y2goSyxbTS5yZXNwb25zZVRleHQsTCxNXSl9fX0pO3JldHVybiB0aGlzfSxzZXJp
YWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gby5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFy
cmF5KCkpfSxzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1h
cChmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnRzP28ubWFrZUFycmF5KHRo
aXMuZWxlbWVudHMpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gdGhp
cy5uYW1lJiYhdGhpcy5kaXNhYmxlZCYmKHRoaXMuY2hlY2tlZHx8L3NlbGVjdHx0
ZXh0YXJlYS9pLnRlc3QodGhpcy5ub2RlTmFtZSl8fC90ZXh0fGhpZGRlbnxwYXNz
d29yZHxzZWFyY2gvaS50ZXN0KHRoaXMudHlwZSkpfSkubWFwKGZ1bmN0aW9uKEUs
Ril7dmFyIEc9byh0aGlzKS52YWwoKTtyZXR1cm4gRz09bnVsbD9udWxsOm8uaXNB
cnJheShHKT9vLm1hcChHLGZ1bmN0aW9uKEksSCl7cmV0dXJue25hbWU6Ri5uYW1l
LHZhbHVlOkl9fSk6e25hbWU6Ri5uYW1lLHZhbHVlOkd9fSkuZ2V0KCl9fSk7by5l
YWNoKCJhamF4U3RhcnQsYWpheFN0b3AsYWpheENvbXBsZXRlLGFqYXhFcnJvcixh
amF4U3VjY2VzcyxhamF4U2VuZCIuc3BsaXQoIiwiKSxmdW5jdGlvbihFLEYpe28u
Zm5bRl09ZnVuY3Rpb24oRyl7cmV0dXJuIHRoaXMuYmluZChGLEcpfX0pO3ZhciBy
PWUoKTtvLmV4dGVuZCh7Z2V0OmZ1bmN0aW9uKEUsRyxILEYpe2lmKG8uaXNGdW5j
dGlvbihHKSl7SD1HO0c9bnVsbH1yZXR1cm4gby5hamF4KHt0eXBlOiJHRVQiLHVy
bDpFLGRhdGE6RyxzdWNjZXNzOkgsZGF0YVR5cGU6Rn0pfSxnZXRTY3JpcHQ6ZnVu
Y3Rpb24oRSxGKXtyZXR1cm4gby5nZXQoRSxudWxsLEYsInNjcmlwdCIpfSxnZXRK
U09OOmZ1bmN0aW9uKEUsRixHKXtyZXR1cm4gby5nZXQoRSxGLEcsImpzb24iKX0s
cG9zdDpmdW5jdGlvbihFLEcsSCxGKXtpZihvLmlzRnVuY3Rpb24oRykpe0g9RztH
PXt9fXJldHVybiBvLmFqYXgoe3R5cGU6IlBPU1QiLHVybDpFLGRhdGE6RyxzdWNj
ZXNzOkgsZGF0YVR5cGU6Rn0pfSxhamF4U2V0dXA6ZnVuY3Rpb24oRSl7by5leHRl
bmQoby5hamF4U2V0dGluZ3MsRSl9LGFqYXhTZXR0aW5nczp7dXJsOmxvY2F0aW9u
LmhyZWYsZ2xvYmFsOnRydWUsdHlwZToiR0VUIixjb250ZW50VHlwZToiYXBwbGlj
YXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIixwcm9jZXNzRGF0YTp0cnVlLGFz
eW5jOnRydWUseGhyOmZ1bmN0aW9uKCl7cmV0dXJuIGwuQWN0aXZlWE9iamVjdD9u
ZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKTpuZXcgWE1MSHR0
cFJlcXVlc3QoKX0sYWNjZXB0czp7eG1sOiJhcHBsaWNhdGlvbi94bWwsIHRleHQv
eG1sIixodG1sOiJ0ZXh0L2h0bWwiLHNjcmlwdDoidGV4dC9qYXZhc2NyaXB0LCBh
cHBsaWNhdGlvbi9qYXZhc2NyaXB0Iixqc29uOiJhcHBsaWNhdGlvbi9qc29uLCB0
ZXh0L2phdmFzY3JpcHQiLHRleHQ6InRleHQvcGxhaW4iLF9kZWZhdWx0OiIqLyoi
fX0sbGFzdE1vZGlmaWVkOnt9LGFqYXg6ZnVuY3Rpb24oTSl7TT1vLmV4dGVuZCh0
cnVlLE0sby5leHRlbmQodHJ1ZSx7fSxvLmFqYXhTZXR0aW5ncyxNKSk7dmFyIFcs
Rj0vPVw/KCZ8JCkvZyxSLFYsRz1NLnR5cGUudG9VcHBlckNhc2UoKTtpZihNLmRh
dGEmJk0ucHJvY2Vzc0RhdGEmJnR5cGVvZiBNLmRhdGEhPT0ic3RyaW5nIil7TS5k
YXRhPW8ucGFyYW0oTS5kYXRhKX1pZihNLmRhdGFUeXBlPT0ianNvbnAiKXtpZihH
PT0iR0VUIil7aWYoIU0udXJsLm1hdGNoKEYpKXtNLnVybCs9KE0udXJsLm1hdGNo
KC9cPy8pPyImIjoiPyIpKyhNLmpzb25wfHwiY2FsbGJhY2siKSsiPT8ifX1lbHNl
e2lmKCFNLmRhdGF8fCFNLmRhdGEubWF0Y2goRikpe00uZGF0YT0oTS5kYXRhP00u
ZGF0YSsiJiI6IiIpKyhNLmpzb25wfHwiY2FsbGJhY2siKSsiPT8ifX1NLmRhdGFU
eXBlPSJqc29uIn1pZihNLmRhdGFUeXBlPT0ianNvbiImJihNLmRhdGEmJk0uZGF0
YS5tYXRjaChGKXx8TS51cmwubWF0Y2goRikpKXtXPSJqc29ucCIrcisrO2lmKE0u
ZGF0YSl7TS5kYXRhPShNLmRhdGErIiIpLnJlcGxhY2UoRiwiPSIrVysiJDEiKX1N
LnVybD1NLnVybC5yZXBsYWNlKEYsIj0iK1crIiQxIik7TS5kYXRhVHlwZT0ic2Ny
aXB0IjtsW1ddPWZ1bmN0aW9uKFgpe1Y9WDtJKCk7TCgpO2xbV109Zzt0cnl7ZGVs
ZXRlIGxbV119Y2F0Y2goWSl7fWlmKEgpe0gucmVtb3ZlQ2hpbGQoVCl9fX1pZihN
LmRhdGFUeXBlPT0ic2NyaXB0IiYmTS5jYWNoZT09bnVsbCl7TS5jYWNoZT1mYWxz
ZX1pZihNLmNhY2hlPT09ZmFsc2UmJkc9PSJHRVQiKXt2YXIgRT1lKCk7dmFyIFU9
TS51cmwucmVwbGFjZSgvKFw/fCYpXz0uKj8oJnwkKS8sIiQxXz0iK0UrIiQyIik7
TS51cmw9VSsoKFU9PU0udXJsKT8oTS51cmwubWF0Y2goL1w/Lyk/IiYiOiI/Iikr
Il89IitFOiIiKX1pZihNLmRhdGEmJkc9PSJHRVQiKXtNLnVybCs9KE0udXJsLm1h
dGNoKC9cPy8pPyImIjoiPyIpK00uZGF0YTtNLmRhdGE9bnVsbH1pZihNLmdsb2Jh
bCYmIW8uYWN0aXZlKyspe28uZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0Iil9dmFy
IFE9L14oXHcrOik/XC9cLyhbXlwvPyNdKykvLmV4ZWMoTS51cmwpO2lmKE0uZGF0
YVR5cGU9PSJzY3JpcHQiJiZHPT0iR0VUIiYmUSYmKFFbMV0mJlFbMV0hPWxvY2F0
aW9uLnByb3RvY29sfHxRWzJdIT1sb2NhdGlvbi5ob3N0KSl7dmFyIEg9ZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXTt2YXIgVD1kb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtULnNyYz1NLnVybDtpZihNLnNjcmlw
dENoYXJzZXQpe1QuY2hhcnNldD1NLnNjcmlwdENoYXJzZXR9aWYoIVcpe3ZhciBP
PWZhbHNlO1Qub25sb2FkPVQub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7
aWYoIU8mJighdGhpcy5yZWFkeVN0YXRlfHx0aGlzLnJlYWR5U3RhdGU9PSJsb2Fk
ZWQifHx0aGlzLnJlYWR5U3RhdGU9PSJjb21wbGV0ZSIpKXtPPXRydWU7SSgpO0wo
KTtULm9ubG9hZD1ULm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsO0gucmVtb3ZlQ2hp
bGQoVCl9fX1ILmFwcGVuZENoaWxkKFQpO3JldHVybiBnfXZhciBLPWZhbHNlO3Zh
ciBKPU0ueGhyKCk7aWYoTS51c2VybmFtZSl7Si5vcGVuKEcsTS51cmwsTS5hc3lu
YyxNLnVzZXJuYW1lLE0ucGFzc3dvcmQpfWVsc2V7Si5vcGVuKEcsTS51cmwsTS5h
c3luYyl9dHJ5e2lmKE0uZGF0YSl7Si5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50
LVR5cGUiLE0uY29udGVudFR5cGUpfWlmKE0uaWZNb2RpZmllZCl7Si5zZXRSZXF1
ZXN0SGVhZGVyKCJJZi1Nb2RpZmllZC1TaW5jZSIsby5sYXN0TW9kaWZpZWRbTS51
cmxdfHwiVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiKX1KLnNldFJlcXVl
c3RIZWFkZXIoIlgtUmVxdWVzdGVkLVdpdGgiLCJYTUxIdHRwUmVxdWVzdCIpO0ou
c2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IixNLmRhdGFUeXBlJiZNLmFjY2VwdHNb
TS5kYXRhVHlwZV0/TS5hY2NlcHRzW00uZGF0YVR5cGVdKyIsICovKiI6TS5hY2Nl
cHRzLl9kZWZhdWx0KX1jYXRjaChTKXt9aWYoTS5iZWZvcmVTZW5kJiZNLmJlZm9y
ZVNlbmQoSixNKT09PWZhbHNlKXtpZihNLmdsb2JhbCYmIS0tby5hY3RpdmUpe28u
ZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKX1KLmFib3J0KCk7cmV0dXJuIGZhbHNl
fWlmKE0uZ2xvYmFsKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTZW5kIixbSixNXSl9
dmFyIE49ZnVuY3Rpb24oWCl7aWYoSi5yZWFkeVN0YXRlPT0wKXtpZihQKXtjbGVh
ckludGVydmFsKFApO1A9bnVsbDtpZihNLmdsb2JhbCYmIS0tby5hY3RpdmUpe28u
ZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKX19fWVsc2V7aWYoIUsmJkomJihKLnJl
YWR5U3RhdGU9PTR8fFg9PSJ0aW1lb3V0Iikpe0s9dHJ1ZTtpZihQKXtjbGVhcklu
dGVydmFsKFApO1A9bnVsbH1SPVg9PSJ0aW1lb3V0Ij8idGltZW91dCI6IW8uaHR0
cFN1Y2Nlc3MoSik/ImVycm9yIjpNLmlmTW9kaWZpZWQmJm8uaHR0cE5vdE1vZGlm
aWVkKEosTS51cmwpPyJub3Rtb2RpZmllZCI6InN1Y2Nlc3MiO2lmKFI9PSJzdWNj
ZXNzIil7dHJ5e1Y9by5odHRwRGF0YShKLE0uZGF0YVR5cGUsTSl9Y2F0Y2goWil7
Uj0icGFyc2VyZXJyb3IifX1pZihSPT0ic3VjY2VzcyIpe3ZhciBZO3RyeXtZPUou
Z2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKX1jYXRjaChaKXt9aWYo
TS5pZk1vZGlmaWVkJiZZKXtvLmxhc3RNb2RpZmllZFtNLnVybF09WX1pZighVyl7
SSgpfX1lbHNle28uaGFuZGxlRXJyb3IoTSxKLFIpfUwoKTtpZihYKXtKLmFib3J0
KCl9aWYoTS5hc3luYyl7Sj1udWxsfX19fTtpZihNLmFzeW5jKXt2YXIgUD1zZXRJ
bnRlcnZhbChOLDEzKTtpZihNLnRpbWVvdXQ+MCl7c2V0VGltZW91dChmdW5jdGlv
bigpe2lmKEomJiFLKXtOKCJ0aW1lb3V0Iil9fSxNLnRpbWVvdXQpfX10cnl7Si5z
ZW5kKE0uZGF0YSl9Y2F0Y2goUyl7by5oYW5kbGVFcnJvcihNLEosbnVsbCxTKX1p
ZighTS5hc3luYyl7TigpfWZ1bmN0aW9uIEkoKXtpZihNLnN1Y2Nlc3Mpe00uc3Vj
Y2VzcyhWLFIpfWlmKE0uZ2xvYmFsKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdWNj
ZXNzIixbSixNXSl9fWZ1bmN0aW9uIEwoKXtpZihNLmNvbXBsZXRlKXtNLmNvbXBs
ZXRlKEosUil9aWYoTS5nbG9iYWwpe28uZXZlbnQudHJpZ2dlcigiYWpheENvbXBs
ZXRlIixbSixNXSl9aWYoTS5nbG9iYWwmJiEtLW8uYWN0aXZlKXtvLmV2ZW50LnRy
aWdnZXIoImFqYXhTdG9wIil9fXJldHVybiBKfSxoYW5kbGVFcnJvcjpmdW5jdGlv
bihGLEgsRSxHKXtpZihGLmVycm9yKXtGLmVycm9yKEgsRSxHKX1pZihGLmdsb2Jh
bCl7by5ldmVudC50cmlnZ2VyKCJhamF4RXJyb3IiLFtILEYsR10pfX0sYWN0aXZl
OjAsaHR0cFN1Y2Nlc3M6ZnVuY3Rpb24oRil7dHJ5e3JldHVybiAhRi5zdGF0dXMm
JmxvY2F0aW9uLnByb3RvY29sPT0iZmlsZToifHwoRi5zdGF0dXM+PTIwMCYmRi5z
dGF0dXM8MzAwKXx8Ri5zdGF0dXM9PTMwNHx8Ri5zdGF0dXM9PTEyMjN9Y2F0Y2go
RSl7fXJldHVybiBmYWxzZX0saHR0cE5vdE1vZGlmaWVkOmZ1bmN0aW9uKEcsRSl7
dHJ5e3ZhciBIPUcuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKTty
ZXR1cm4gRy5zdGF0dXM9PTMwNHx8SD09by5sYXN0TW9kaWZpZWRbRV19Y2F0Y2go
Ril7fXJldHVybiBmYWxzZX0saHR0cERhdGE6ZnVuY3Rpb24oSixILEcpe3ZhciBG
PUouZ2V0UmVzcG9uc2VIZWFkZXIoImNvbnRlbnQtdHlwZSIpLEU9SD09InhtbCJ8
fCFIJiZGJiZGLmluZGV4T2YoInhtbCIpPj0wLEk9RT9KLnJlc3BvbnNlWE1MOkou
cmVzcG9uc2VUZXh0O2lmKEUmJkkuZG9jdW1lbnRFbGVtZW50LnRhZ05hbWU9PSJw
YXJzZXJlcnJvciIpe3Rocm93InBhcnNlcmVycm9yIn1pZihHJiZHLmRhdGFGaWx0
ZXIpe0k9Ry5kYXRhRmlsdGVyKEksSCl9aWYodHlwZW9mIEk9PT0ic3RyaW5nIil7
aWYoSD09InNjcmlwdCIpe28uZ2xvYmFsRXZhbChJKX1pZihIPT0ianNvbiIpe0k9
bFsiZXZhbCJdKCIoIitJKyIpIil9fXJldHVybiBJfSxwYXJhbTpmdW5jdGlvbihF
KXt2YXIgRz1bXTtmdW5jdGlvbiBIKEksSil7R1tHLmxlbmd0aF09ZW5jb2RlVVJJ
Q29tcG9uZW50KEkpKyI9IitlbmNvZGVVUklDb21wb25lbnQoSil9aWYoby5pc0Fy
cmF5KEUpfHxFLmpxdWVyeSl7by5lYWNoKEUsZnVuY3Rpb24oKXtIKHRoaXMubmFt
ZSx0aGlzLnZhbHVlKX0pfWVsc2V7Zm9yKHZhciBGIGluIEUpe2lmKG8uaXNBcnJh
eShFW0ZdKSl7by5lYWNoKEVbRl0sZnVuY3Rpb24oKXtIKEYsdGhpcyl9KX1lbHNl
e0goRixvLmlzRnVuY3Rpb24oRVtGXSk/RVtGXSgpOkVbRl0pfX19cmV0dXJuIEcu
am9pbigiJiIpLnJlcGxhY2UoLyUyMC9nLCIrIil9fSk7dmFyIG09e30sbixkPVtb
ImhlaWdodCIsIm1hcmdpblRvcCIsIm1hcmdpbkJvdHRvbSIsInBhZGRpbmdUb3Ai
LCJwYWRkaW5nQm90dG9tIl0sWyJ3aWR0aCIsIm1hcmdpbkxlZnQiLCJtYXJnaW5S
aWdodCIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0Il0sWyJvcGFjaXR5Il1d
O2Z1bmN0aW9uIHQoRixFKXt2YXIgRz17fTtvLmVhY2goZC5jb25jYXQuYXBwbHko
W10sZC5zbGljZSgwLEUpKSxmdW5jdGlvbigpe0dbdGhpc109Rn0pO3JldHVybiBH
fW8uZm4uZXh0ZW5kKHtzaG93OmZ1bmN0aW9uKEosTCl7aWYoSil7cmV0dXJuIHRo
aXMuYW5pbWF0ZSh0KCJzaG93IiwzKSxKLEwpfWVsc2V7Zm9yKHZhciBIPTAsRj10
aGlzLmxlbmd0aDtIPEY7SCsrKXt2YXIgRT1vLmRhdGEodGhpc1tIXSwib2xkZGlz
cGxheSIpO3RoaXNbSF0uc3R5bGUuZGlzcGxheT1FfHwiIjtpZihvLmNzcyh0aGlz
W0hdLCJkaXNwbGF5Iik9PT0ibm9uZSIpe3ZhciBHPXRoaXNbSF0udGFnTmFtZSxL
O2lmKG1bR10pe0s9bVtHXX1lbHNle3ZhciBJPW8oIjwiK0crIiAvPiIpLmFwcGVu
ZFRvKCJib2R5Iik7Sz1JLmNzcygiZGlzcGxheSIpO2lmKEs9PT0ibm9uZSIpe0s9
ImJsb2NrIn1JLnJlbW92ZSgpO21bR109S31vLmRhdGEodGhpc1tIXSwib2xkZGlz
cGxheSIsSyl9fWZvcih2YXIgSD0wLEY9dGhpcy5sZW5ndGg7SDxGO0grKyl7dGhp
c1tIXS5zdHlsZS5kaXNwbGF5PW8uZGF0YSh0aGlzW0hdLCJvbGRkaXNwbGF5Iil8
fCIifXJldHVybiB0aGlzfX0saGlkZTpmdW5jdGlvbihILEkpe2lmKEgpe3JldHVy
biB0aGlzLmFuaW1hdGUodCgiaGlkZSIsMyksSCxJKX1lbHNle2Zvcih2YXIgRz0w
LEY9dGhpcy5sZW5ndGg7RzxGO0crKyl7dmFyIEU9by5kYXRhKHRoaXNbR10sIm9s
ZGRpc3BsYXkiKTtpZighRSYmRSE9PSJub25lIil7by5kYXRhKHRoaXNbR10sIm9s
ZGRpc3BsYXkiLG8uY3NzKHRoaXNbR10sImRpc3BsYXkiKSl9fWZvcih2YXIgRz0w
LEY9dGhpcy5sZW5ndGg7RzxGO0crKyl7dGhpc1tHXS5zdHlsZS5kaXNwbGF5PSJu
b25lIn1yZXR1cm4gdGhpc319LF90b2dnbGU6by5mbi50b2dnbGUsdG9nZ2xlOmZ1
bmN0aW9uKEcsRil7dmFyIEU9dHlwZW9mIEc9PT0iYm9vbGVhbiI7cmV0dXJuIG8u
aXNGdW5jdGlvbihHKSYmby5pc0Z1bmN0aW9uKEYpP3RoaXMuX3RvZ2dsZS5hcHBs
eSh0aGlzLGFyZ3VtZW50cyk6Rz09bnVsbHx8RT90aGlzLmVhY2goZnVuY3Rpb24o
KXt2YXIgSD1FP0c6byh0aGlzKS5pcygiOmhpZGRlbiIpO28odGhpcylbSD8ic2hv
dyI6ImhpZGUiXSgpfSk6dGhpcy5hbmltYXRlKHQoInRvZ2dsZSIsMyksRyxGKX0s
ZmFkZVRvOmZ1bmN0aW9uKEUsRyxGKXtyZXR1cm4gdGhpcy5hbmltYXRlKHtvcGFj
aXR5Okd9LEUsRil9LGFuaW1hdGU6ZnVuY3Rpb24oSSxGLEgsRyl7dmFyIEU9by5z
cGVlZChGLEgsRyk7cmV0dXJuIHRoaXNbRS5xdWV1ZT09PWZhbHNlPyJlYWNoIjoi
cXVldWUiXShmdW5jdGlvbigpe3ZhciBLPW8uZXh0ZW5kKHt9LEUpLE0sTD10aGlz
Lm5vZGVUeXBlPT0xJiZvKHRoaXMpLmlzKCI6aGlkZGVuIiksSj10aGlzO2ZvcihN
IGluIEkpe2lmKElbTV09PSJoaWRlIiYmTHx8SVtNXT09InNob3ciJiYhTCl7cmV0
dXJuIEsuY29tcGxldGUuY2FsbCh0aGlzKX1pZigoTT09ImhlaWdodCJ8fE09PSJ3
aWR0aCIpJiZ0aGlzLnN0eWxlKXtLLmRpc3BsYXk9by5jc3ModGhpcywiZGlzcGxh
eSIpO0sub3ZlcmZsb3c9dGhpcy5zdHlsZS5vdmVyZmxvd319aWYoSy5vdmVyZmxv
dyE9bnVsbCl7dGhpcy5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIn1LLmN1ckFuaW09
by5leHRlbmQoe30sSSk7by5lYWNoKEksZnVuY3Rpb24oTyxTKXt2YXIgUj1uZXcg
by5meChKLEssTyk7aWYoL3RvZ2dsZXxzaG93fGhpZGUvLnRlc3QoUykpe1JbUz09
InRvZ2dsZSI/TD8ic2hvdyI6ImhpZGUiOlNdKEkpfWVsc2V7dmFyIFE9Uy50b1N0
cmluZygpLm1hdGNoKC9eKFsrLV09KT8oW1xkKy0uXSspKC4qKSQvKSxUPVIuY3Vy
KHRydWUpfHwwO2lmKFEpe3ZhciBOPXBhcnNlRmxvYXQoUVsyXSksUD1RWzNdfHwi
cHgiO2lmKFAhPSJweCIpe0ouc3R5bGVbT109KE58fDEpK1A7VD0oKE58fDEpL1Iu
Y3VyKHRydWUpKSpUO0ouc3R5bGVbT109VCtQfWlmKFFbMV0pe049KChRWzFdPT0i
LT0iPy0xOjEpKk4pK1R9Ui5jdXN0b20oVCxOLFApfWVsc2V7Ui5jdXN0b20oVCxT
LCIiKX19fSk7cmV0dXJuIHRydWV9KX0sc3RvcDpmdW5jdGlvbihGLEUpe3ZhciBH
PW8udGltZXJzO2lmKEYpe3RoaXMucXVldWUoW10pfXRoaXMuZWFjaChmdW5jdGlv
bigpe2Zvcih2YXIgSD1HLmxlbmd0aC0xO0g+PTA7SC0tKXtpZihHW0hdLmVsZW09
PXRoaXMpe2lmKEUpe0dbSF0odHJ1ZSl9Ry5zcGxpY2UoSCwxKX19fSk7aWYoIUUp
e3RoaXMuZGVxdWV1ZSgpfXJldHVybiB0aGlzfX0pO28uZWFjaCh7c2xpZGVEb3du
OnQoInNob3ciLDEpLHNsaWRlVXA6dCgiaGlkZSIsMSksc2xpZGVUb2dnbGU6dCgi
dG9nZ2xlIiwxKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFj
aXR5OiJoaWRlIn19LGZ1bmN0aW9uKEUsRil7by5mbltFXT1mdW5jdGlvbihHLEgp
e3JldHVybiB0aGlzLmFuaW1hdGUoRixHLEgpfX0pO28uZXh0ZW5kKHtzcGVlZDpm
dW5jdGlvbihHLEgsRil7dmFyIEU9dHlwZW9mIEc9PT0ib2JqZWN0Ij9HOntjb21w
bGV0ZTpGfHwhRiYmSHx8by5pc0Z1bmN0aW9uKEcpJiZHLGR1cmF0aW9uOkcsZWFz
aW5nOkYmJkh8fEgmJiFvLmlzRnVuY3Rpb24oSCkmJkh9O0UuZHVyYXRpb249by5m
eC5vZmY/MDp0eXBlb2YgRS5kdXJhdGlvbj09PSJudW1iZXIiP0UuZHVyYXRpb246
by5meC5zcGVlZHNbRS5kdXJhdGlvbl18fG8uZnguc3BlZWRzLl9kZWZhdWx0O0Uu
b2xkPUUuY29tcGxldGU7RS5jb21wbGV0ZT1mdW5jdGlvbigpe2lmKEUucXVldWUh
PT1mYWxzZSl7byh0aGlzKS5kZXF1ZXVlKCl9aWYoby5pc0Z1bmN0aW9uKEUub2xk
KSl7RS5vbGQuY2FsbCh0aGlzKX19O3JldHVybiBFfSxlYXNpbmc6e2xpbmVhcjpm
dW5jdGlvbihHLEgsRSxGKXtyZXR1cm4gRStGKkd9LHN3aW5nOmZ1bmN0aW9uKEcs
SCxFLEYpe3JldHVybigoLU1hdGguY29zKEcqTWF0aC5QSSkvMikrMC41KSpGK0V9
fSx0aW1lcnM6W10sZng6ZnVuY3Rpb24oRixFLEcpe3RoaXMub3B0aW9ucz1FO3Ro
aXMuZWxlbT1GO3RoaXMucHJvcD1HO2lmKCFFLm9yaWcpe0Uub3JpZz17fX19fSk7
by5meC5wcm90b3R5cGU9e3VwZGF0ZTpmdW5jdGlvbigpe2lmKHRoaXMub3B0aW9u
cy5zdGVwKXt0aGlzLm9wdGlvbnMuc3RlcC5jYWxsKHRoaXMuZWxlbSx0aGlzLm5v
dyx0aGlzKX0oby5meC5zdGVwW3RoaXMucHJvcF18fG8uZnguc3RlcC5fZGVmYXVs
dCkodGhpcyk7aWYoKHRoaXMucHJvcD09ImhlaWdodCJ8fHRoaXMucHJvcD09Indp
ZHRoIikmJnRoaXMuZWxlbS5zdHlsZSl7dGhpcy5lbGVtLnN0eWxlLmRpc3BsYXk9
ImJsb2NrIn19LGN1cjpmdW5jdGlvbihGKXtpZih0aGlzLmVsZW1bdGhpcy5wcm9w
XSE9bnVsbCYmKCF0aGlzLmVsZW0uc3R5bGV8fHRoaXMuZWxlbS5zdHlsZVt0aGlz
LnByb3BdPT1udWxsKSl7cmV0dXJuIHRoaXMuZWxlbVt0aGlzLnByb3BdfXZhciBF
PXBhcnNlRmxvYXQoby5jc3ModGhpcy5lbGVtLHRoaXMucHJvcCxGKSk7cmV0dXJu
IEUmJkU+LTEwMDAwP0U6cGFyc2VGbG9hdChvLmN1ckNTUyh0aGlzLmVsZW0sdGhp
cy5wcm9wKSl8fDB9LGN1c3RvbTpmdW5jdGlvbihJLEgsRyl7dGhpcy5zdGFydFRp
bWU9ZSgpO3RoaXMuc3RhcnQ9STt0aGlzLmVuZD1IO3RoaXMudW5pdD1HfHx0aGlz
LnVuaXR8fCJweCI7dGhpcy5ub3c9dGhpcy5zdGFydDt0aGlzLnBvcz10aGlzLnN0
YXRlPTA7dmFyIEU9dGhpcztmdW5jdGlvbiBGKEope3JldHVybiBFLnN0ZXAoSil9
Ri5lbGVtPXRoaXMuZWxlbTtpZihGKCkmJm8udGltZXJzLnB1c2goRikmJiFuKXtu
PXNldEludGVydmFsKGZ1bmN0aW9uKCl7dmFyIEs9by50aW1lcnM7Zm9yKHZhciBK
PTA7SjxLLmxlbmd0aDtKKyspe2lmKCFLW0pdKCkpe0suc3BsaWNlKEotLSwxKX19
aWYoIUsubGVuZ3RoKXtjbGVhckludGVydmFsKG4pO249Z319LDEzKX19LHNob3c6
ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPW8uYXR0cih0
aGlzLmVsZW0uc3R5bGUsdGhpcy5wcm9wKTt0aGlzLm9wdGlvbnMuc2hvdz10cnVl
O3RoaXMuY3VzdG9tKHRoaXMucHJvcD09IndpZHRoInx8dGhpcy5wcm9wPT0iaGVp
Z2h0Ij8xOjAsdGhpcy5jdXIoKSk7byh0aGlzLmVsZW0pLnNob3coKX0saGlkZTpm
dW5jdGlvbigpe3RoaXMub3B0aW9ucy5vcmlnW3RoaXMucHJvcF09by5hdHRyKHRo
aXMuZWxlbS5zdHlsZSx0aGlzLnByb3ApO3RoaXMub3B0aW9ucy5oaWRlPXRydWU7
dGhpcy5jdXN0b20odGhpcy5jdXIoKSwwKX0sc3RlcDpmdW5jdGlvbihIKXt2YXIg
Rz1lKCk7aWYoSHx8Rz49dGhpcy5vcHRpb25zLmR1cmF0aW9uK3RoaXMuc3RhcnRU
aW1lKXt0aGlzLm5vdz10aGlzLmVuZDt0aGlzLnBvcz10aGlzLnN0YXRlPTE7dGhp
cy51cGRhdGUoKTt0aGlzLm9wdGlvbnMuY3VyQW5pbVt0aGlzLnByb3BdPXRydWU7
dmFyIEU9dHJ1ZTtmb3IodmFyIEYgaW4gdGhpcy5vcHRpb25zLmN1ckFuaW0pe2lm
KHRoaXMub3B0aW9ucy5jdXJBbmltW0ZdIT09dHJ1ZSl7RT1mYWxzZX19aWYoRSl7
aWYodGhpcy5vcHRpb25zLmRpc3BsYXkhPW51bGwpe3RoaXMuZWxlbS5zdHlsZS5v
dmVyZmxvdz10aGlzLm9wdGlvbnMub3ZlcmZsb3c7dGhpcy5lbGVtLnN0eWxlLmRp
c3BsYXk9dGhpcy5vcHRpb25zLmRpc3BsYXk7aWYoby5jc3ModGhpcy5lbGVtLCJk
aXNwbGF5Iik9PSJub25lIil7dGhpcy5lbGVtLnN0eWxlLmRpc3BsYXk9ImJsb2Nr
In19aWYodGhpcy5vcHRpb25zLmhpZGUpe28odGhpcy5lbGVtKS5oaWRlKCl9aWYo
dGhpcy5vcHRpb25zLmhpZGV8fHRoaXMub3B0aW9ucy5zaG93KXtmb3IodmFyIEkg
aW4gdGhpcy5vcHRpb25zLmN1ckFuaW0pe28uYXR0cih0aGlzLmVsZW0uc3R5bGUs
SSx0aGlzLm9wdGlvbnMub3JpZ1tJXSl9fXRoaXMub3B0aW9ucy5jb21wbGV0ZS5j
YWxsKHRoaXMuZWxlbSl9cmV0dXJuIGZhbHNlfWVsc2V7dmFyIEo9Ry10aGlzLnN0
YXJ0VGltZTt0aGlzLnN0YXRlPUovdGhpcy5vcHRpb25zLmR1cmF0aW9uO3RoaXMu
cG9zPW8uZWFzaW5nW3RoaXMub3B0aW9ucy5lYXNpbmd8fChvLmVhc2luZy5zd2lu
Zz8ic3dpbmciOiJsaW5lYXIiKV0odGhpcy5zdGF0ZSxKLDAsMSx0aGlzLm9wdGlv
bnMuZHVyYXRpb24pO3RoaXMubm93PXRoaXMuc3RhcnQrKCh0aGlzLmVuZC10aGlz
LnN0YXJ0KSp0aGlzLnBvcyk7dGhpcy51cGRhdGUoKX1yZXR1cm4gdHJ1ZX19O28u
ZXh0ZW5kKG8uZngse3NwZWVkczp7c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6
NDAwfSxzdGVwOntvcGFjaXR5OmZ1bmN0aW9uKEUpe28uYXR0cihFLmVsZW0uc3R5
bGUsIm9wYWNpdHkiLEUubm93KX0sX2RlZmF1bHQ6ZnVuY3Rpb24oRSl7aWYoRS5l
bGVtLnN0eWxlJiZFLmVsZW0uc3R5bGVbRS5wcm9wXSE9bnVsbCl7RS5lbGVtLnN0
eWxlW0UucHJvcF09RS5ub3crRS51bml0fWVsc2V7RS5lbGVtW0UucHJvcF09RS5u
b3d9fX19KTtpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KXtvLmZuLm9mZnNldD1mdW5jdGlvbigpe2lmKCF0aGlzWzBdKXty
ZXR1cm57dG9wOjAsbGVmdDowfX1pZih0aGlzWzBdPT09dGhpc1swXS5vd25lckRv
Y3VtZW50LmJvZHkpe3JldHVybiBvLm9mZnNldC5ib2R5T2Zmc2V0KHRoaXNbMF0p
fXZhciBHPXRoaXNbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksSj10aGlzWzBd
Lm93bmVyRG9jdW1lbnQsRj1KLmJvZHksRT1KLmRvY3VtZW50RWxlbWVudCxMPUUu
Y2xpZW50VG9wfHxGLmNsaWVudFRvcHx8MCxLPUUuY2xpZW50TGVmdHx8Ri5jbGll
bnRMZWZ0fHwwLEk9Ry50b3ArKHNlbGYucGFnZVlPZmZzZXR8fG8uYm94TW9kZWwm
JkUuc2Nyb2xsVG9wfHxGLnNjcm9sbFRvcCktTCxIPUcubGVmdCsoc2VsZi5wYWdl
WE9mZnNldHx8by5ib3hNb2RlbCYmRS5zY3JvbGxMZWZ0fHxGLnNjcm9sbExlZnQp
LUs7cmV0dXJue3RvcDpJLGxlZnQ6SH19fWVsc2V7by5mbi5vZmZzZXQ9ZnVuY3Rp
b24oKXtpZighdGhpc1swXSl7cmV0dXJue3RvcDowLGxlZnQ6MH19aWYodGhpc1sw
XT09PXRoaXNbMF0ub3duZXJEb2N1bWVudC5ib2R5KXtyZXR1cm4gby5vZmZzZXQu
Ym9keU9mZnNldCh0aGlzWzBdKX1vLm9mZnNldC5pbml0aWFsaXplZHx8by5vZmZz
ZXQuaW5pdGlhbGl6ZSgpO3ZhciBKPXRoaXNbMF0sRz1KLm9mZnNldFBhcmVudCxG
PUosTz1KLm93bmVyRG9jdW1lbnQsTSxIPU8uZG9jdW1lbnRFbGVtZW50LEs9Ty5i
b2R5LEw9Ty5kZWZhdWx0VmlldyxFPUwuZ2V0Q29tcHV0ZWRTdHlsZShKLG51bGwp
LE49Si5vZmZzZXRUb3AsST1KLm9mZnNldExlZnQ7d2hpbGUoKEo9Si5wYXJlbnRO
b2RlKSYmSiE9PUsmJkohPT1IKXtNPUwuZ2V0Q29tcHV0ZWRTdHlsZShKLG51bGwp
O04tPUouc2Nyb2xsVG9wLEktPUouc2Nyb2xsTGVmdDtpZihKPT09Ryl7Tis9Si5v
ZmZzZXRUb3AsSSs9Si5vZmZzZXRMZWZ0O2lmKG8ub2Zmc2V0LmRvZXNOb3RBZGRC
b3JkZXImJiEoby5vZmZzZXQuZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHMm
Ji9edChhYmxlfGR8aCkkL2kudGVzdChKLnRhZ05hbWUpKSl7Tis9cGFyc2VJbnQo
TS5ib3JkZXJUb3BXaWR0aCwxMCl8fDAsSSs9cGFyc2VJbnQoTS5ib3JkZXJMZWZ0
V2lkdGgsMTApfHwwfUY9RyxHPUoub2Zmc2V0UGFyZW50fWlmKG8ub2Zmc2V0LnN1
YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJsZSYmTS5vdmVyZmxvdyE9
PSJ2aXNpYmxlIil7Tis9cGFyc2VJbnQoTS5ib3JkZXJUb3BXaWR0aCwxMCl8fDAs
SSs9cGFyc2VJbnQoTS5ib3JkZXJMZWZ0V2lkdGgsMTApfHwwfUU9TX1pZihFLnBv
c2l0aW9uPT09InJlbGF0aXZlInx8RS5wb3NpdGlvbj09PSJzdGF0aWMiKXtOKz1L
Lm9mZnNldFRvcCxJKz1LLm9mZnNldExlZnR9aWYoRS5wb3NpdGlvbj09PSJmaXhl
ZCIpe04rPU1hdGgubWF4KEguc2Nyb2xsVG9wLEsuc2Nyb2xsVG9wKSxJKz1NYXRo
Lm1heChILnNjcm9sbExlZnQsSy5zY3JvbGxMZWZ0KX1yZXR1cm57dG9wOk4sbGVm
dDpJfX19by5vZmZzZXQ9e2luaXRpYWxpemU6ZnVuY3Rpb24oKXtpZih0aGlzLmlu
aXRpYWxpemVkKXtyZXR1cm59dmFyIEw9ZG9jdW1lbnQuYm9keSxGPWRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpLEgsRyxOLEksTSxFLEo9TC5zdHlsZS5tYXJn
aW5Ub3AsSz0nPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVm
dDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lk
dGg6MXB4O2hlaWdodDoxcHg7Ij48ZGl2PjwvZGl2PjwvZGl2Pjx0YWJsZSBzdHls
ZT0icG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRl
cjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7
IiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiPjx0cj48dGQ+PC90ZD48
L3RyPjwvdGFibGU+JztNPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGxlZnQ6
MCxtYXJnaW46MCxib3JkZXI6MCx3aWR0aDoiMXB4IixoZWlnaHQ6IjFweCIsdmlz
aWJpbGl0eToiaGlkZGVuIn07Zm9yKEUgaW4gTSl7Ri5zdHlsZVtFXT1NW0VdfUYu
aW5uZXJIVE1MPUs7TC5pbnNlcnRCZWZvcmUoRixMLmZpcnN0Q2hpbGQpO0g9Ri5m
aXJzdENoaWxkLEc9SC5maXJzdENoaWxkLEk9SC5uZXh0U2libGluZy5maXJzdENo
aWxkLmZpcnN0Q2hpbGQ7dGhpcy5kb2VzTm90QWRkQm9yZGVyPShHLm9mZnNldFRv
cCE9PTUpO3RoaXMuZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHM9KEkub2Zm
c2V0VG9wPT09NSk7SC5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIixILnN0eWxlLnBv
c2l0aW9uPSJyZWxhdGl2ZSI7dGhpcy5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxv
d05vdFZpc2libGU9KEcub2Zmc2V0VG9wPT09LTUpO0wuc3R5bGUubWFyZ2luVG9w
PSIxcHgiO3RoaXMuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQ9KEwu
b2Zmc2V0VG9wPT09MCk7TC5zdHlsZS5tYXJnaW5Ub3A9SjtMLnJlbW92ZUNoaWxk
KEYpO3RoaXMuaW5pdGlhbGl6ZWQ9dHJ1ZX0sYm9keU9mZnNldDpmdW5jdGlvbihF
KXtvLm9mZnNldC5pbml0aWFsaXplZHx8by5vZmZzZXQuaW5pdGlhbGl6ZSgpO3Zh
ciBHPUUub2Zmc2V0VG9wLEY9RS5vZmZzZXRMZWZ0O2lmKG8ub2Zmc2V0LmRvZXNO
b3RJbmNsdWRlTWFyZ2luSW5Cb2R5T2Zmc2V0KXtHKz1wYXJzZUludChvLmN1ckNT
UyhFLCJtYXJnaW5Ub3AiLHRydWUpLDEwKXx8MCxGKz1wYXJzZUludChvLmN1ckNT
UyhFLCJtYXJnaW5MZWZ0Iix0cnVlKSwxMCl8fDB9cmV0dXJue3RvcDpHLGxlZnQ6
Rn19fTtvLmZuLmV4dGVuZCh7cG9zaXRpb246ZnVuY3Rpb24oKXt2YXIgST0wLEg9
MCxGO2lmKHRoaXNbMF0pe3ZhciBHPXRoaXMub2Zmc2V0UGFyZW50KCksSj10aGlz
Lm9mZnNldCgpLEU9L15ib2R5fGh0bWwkL2kudGVzdChHWzBdLnRhZ05hbWUpP3t0
b3A6MCxsZWZ0OjB9Okcub2Zmc2V0KCk7Si50b3AtPWoodGhpcywibWFyZ2luVG9w
Iik7Si5sZWZ0LT1qKHRoaXMsIm1hcmdpbkxlZnQiKTtFLnRvcCs9aihHLCJib3Jk
ZXJUb3BXaWR0aCIpO0UubGVmdCs9aihHLCJib3JkZXJMZWZ0V2lkdGgiKTtGPXt0
b3A6Si50b3AtRS50b3AsbGVmdDpKLmxlZnQtRS5sZWZ0fX1yZXR1cm4gRn0sb2Zm
c2V0UGFyZW50OmZ1bmN0aW9uKCl7dmFyIEU9dGhpc1swXS5vZmZzZXRQYXJlbnR8
fGRvY3VtZW50LmJvZHk7d2hpbGUoRSYmKCEvXmJvZHl8aHRtbCQvaS50ZXN0KEUu
dGFnTmFtZSkmJm8uY3NzKEUsInBvc2l0aW9uIik9PSJzdGF0aWMiKSl7RT1FLm9m
ZnNldFBhcmVudH1yZXR1cm4gbyhFKX19KTtvLmVhY2goWyJMZWZ0IiwiVG9wIl0s
ZnVuY3Rpb24oRixFKXt2YXIgRz0ic2Nyb2xsIitFO28uZm5bR109ZnVuY3Rpb24o
SCl7aWYoIXRoaXNbMF0pe3JldHVybiBudWxsfXJldHVybiBIIT09Zz90aGlzLmVh
Y2goZnVuY3Rpb24oKXt0aGlzPT1sfHx0aGlzPT1kb2N1bWVudD9sLnNjcm9sbFRv
KCFGP0g6byhsKS5zY3JvbGxMZWZ0KCksRj9IOm8obCkuc2Nyb2xsVG9wKCkpOnRo
aXNbR109SH0pOnRoaXNbMF09PWx8fHRoaXNbMF09PWRvY3VtZW50P3NlbGZbRj8i
cGFnZVlPZmZzZXQiOiJwYWdlWE9mZnNldCJdfHxvLmJveE1vZGVsJiZkb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnRbR118fGRvY3VtZW50LmJvZHlbR106dGhpc1swXVtH
XX19KTtvLmVhY2goWyJIZWlnaHQiLCJXaWR0aCJdLGZ1bmN0aW9uKEksRyl7dmFy
IEU9ST8iTGVmdCI6IlRvcCIsSD1JPyJSaWdodCI6IkJvdHRvbSIsRj1HLnRvTG93
ZXJDYXNlKCk7by5mblsiaW5uZXIiK0ddPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNb
MF0/by5jc3ModGhpc1swXSxGLGZhbHNlLCJwYWRkaW5nIik6bnVsbH07by5mblsi
b3V0ZXIiK0ddPWZ1bmN0aW9uKEspe3JldHVybiB0aGlzWzBdP28uY3NzKHRoaXNb
MF0sRixmYWxzZSxLPyJtYXJnaW4iOiJib3JkZXIiKTpudWxsfTt2YXIgSj1HLnRv
TG93ZXJDYXNlKCk7by5mbltKXT1mdW5jdGlvbihLKXtyZXR1cm4gdGhpc1swXT09
bD9kb2N1bWVudC5jb21wYXRNb2RlPT0iQ1NTMUNvbXBhdCImJmRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudFsiY2xpZW50IitHXXx8ZG9jdW1lbnQuYm9keVsiY2xpZW50
IitHXTp0aGlzWzBdPT1kb2N1bWVudD9NYXRoLm1heChkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnRbImNsaWVudCIrR10sZG9jdW1lbnQuYm9keVsic2Nyb2xsIitHXSxk
b2N1bWVudC5kb2N1bWVudEVsZW1lbnRbInNjcm9sbCIrR10sZG9jdW1lbnQuYm9k
eVsib2Zmc2V0IitHXSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbIm9mZnNldCIr
R10pOks9PT1nPyh0aGlzLmxlbmd0aD9vLmNzcyh0aGlzWzBdLEopOm51bGwpOnRo
aXMuY3NzKEosdHlwZW9mIEs9PT0ic3RyaW5nIj9LOksrInB4Iil9fSl9KSgpOw==

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=json2.js
Content-Type: application/x-javascript; name=json2.js
Content-Location: http://haas.newscientist.com/json2.js
Content-Transfer-Encoding: Base64

LyoKICAgIGh0dHA6Ly93d3cuSlNPTi5vcmcvanNvbjIuanMKICAgIDIwMDktMDkt
MjkKCiAgICBQdWJsaWMgRG9tYWluLgoKICAgIE5PIFdBUlJBTlRZIEVYUFJFU1NF
RCBPUiBJTVBMSUVELiBVU0UgQVQgWU9VUiBPV04gUklTSy4KCiAgICBTZWUgaHR0
cDovL3d3dy5KU09OLm9yZy9qcy5odG1sCgoKICAgIFRoaXMgY29kZSBzaG91bGQg
YmUgbWluaWZpZWQgYmVmb3JlIGRlcGxveW1lbnQuCiAgICBTZWUgaHR0cDovL2ph
dmFzY3JpcHQuY3JvY2tmb3JkLmNvbS9qc21pbi5odG1sCgogICAgVVNFIFlPVVIg
T1dOIENPUFkuIElUIElTIEVYVFJFTUVMWSBVTldJU0UgVE8gTE9BRCBDT0RFIEZS
T00gU0VSVkVSUyBZT1UgRE8KICAgIE5PVCBDT05UUk9MLgoKCiAgICBUaGlzIGZp
bGUgY3JlYXRlcyBhIGdsb2JhbCBKU09OIG9iamVjdCBjb250YWluaW5nIHR3byBt
ZXRob2RzOiBzdHJpbmdpZnkKICAgIGFuZCBwYXJzZS4KCiAgICAgICAgSlNPTi5z
dHJpbmdpZnkodmFsdWUsIHJlcGxhY2VyLCBzcGFjZSkKICAgICAgICAgICAgdmFs
dWUgICAgICAgYW55IEphdmFTY3JpcHQgdmFsdWUsIHVzdWFsbHkgYW4gb2JqZWN0
IG9yIGFycmF5LgoKICAgICAgICAgICAgcmVwbGFjZXIgICAgYW4gb3B0aW9uYWwg
cGFyYW1ldGVyIHRoYXQgZGV0ZXJtaW5lcyBob3cgb2JqZWN0CiAgICAgICAgICAg
ICAgICAgICAgICAgIHZhbHVlcyBhcmUgc3RyaW5naWZpZWQgZm9yIG9iamVjdHMu
IEl0IGNhbiBiZSBhCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9y
IGFuIGFycmF5IG9mIHN0cmluZ3MuCgogICAgICAgICAgICBzcGFjZSAgICAgICBh
biBvcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBzcGVjaWZpZXMgdGhlIGluZGVudGF0
aW9uCiAgICAgICAgICAgICAgICAgICAgICAgIG9mIG5lc3RlZCBzdHJ1Y3R1cmVz
LiBJZiBpdCBpcyBvbWl0dGVkLCB0aGUgdGV4dCB3aWxsCiAgICAgICAgICAgICAg
ICAgICAgICAgIGJlIHBhY2tlZCB3aXRob3V0IGV4dHJhIHdoaXRlc3BhY2UuIElm
IGl0IGlzIGEgbnVtYmVyLAogICAgICAgICAgICAgICAgICAgICAgICBpdCB3aWxs
IHNwZWNpZnkgdGhlIG51bWJlciBvZiBzcGFjZXMgdG8gaW5kZW50IGF0IGVhY2gK
ICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWwuIElmIGl0IGlzIGEgc3RyaW5n
IChzdWNoIGFzICdcdCcgb3IgJyZuYnNwOycpLAogICAgICAgICAgICAgICAgICAg
ICAgICBpdCBjb250YWlucyB0aGUgY2hhcmFjdGVycyB1c2VkIHRvIGluZGVudCBh
dCBlYWNoIGxldmVsLgoKICAgICAgICAgICAgVGhpcyBtZXRob2QgcHJvZHVjZXMg
YSBKU09OIHRleHQgZnJvbSBhIEphdmFTY3JpcHQgdmFsdWUuCgogICAgICAgICAg
ICBXaGVuIGFuIG9iamVjdCB2YWx1ZSBpcyBmb3VuZCwgaWYgdGhlIG9iamVjdCBj
b250YWlucyBhIHRvSlNPTgogICAgICAgICAgICBtZXRob2QsIGl0cyB0b0pTT04g
bWV0aG9kIHdpbGwgYmUgY2FsbGVkIGFuZCB0aGUgcmVzdWx0IHdpbGwgYmUKICAg
ICAgICAgICAgc3RyaW5naWZpZWQuIEEgdG9KU09OIG1ldGhvZCBkb2VzIG5vdCBz
ZXJpYWxpemU6IGl0IHJldHVybnMgdGhlCiAgICAgICAgICAgIHZhbHVlIHJlcHJl
c2VudGVkIGJ5IHRoZSBuYW1lL3ZhbHVlIHBhaXIgdGhhdCBzaG91bGQgYmUgc2Vy
aWFsaXplZCwKICAgICAgICAgICAgb3IgdW5kZWZpbmVkIGlmIG5vdGhpbmcgc2hv
dWxkIGJlIHNlcmlhbGl6ZWQuIFRoZSB0b0pTT04gbWV0aG9kCiAgICAgICAgICAg
IHdpbGwgYmUgcGFzc2VkIHRoZSBrZXkgYXNzb2NpYXRlZCB3aXRoIHRoZSB2YWx1
ZSwgYW5kIHRoaXMgd2lsbCBiZQogICAgICAgICAgICBib3VuZCB0byB0aGUgdmFs
dWUKCiAgICAgICAgICAgIEZvciBleGFtcGxlLCB0aGlzIHdvdWxkIHNlcmlhbGl6
ZSBEYXRlcyBhcyBJU08gc3RyaW5ncy4KCiAgICAgICAgICAgICAgICBEYXRlLnBy
b3RvdHlwZS50b0pTT04gPSBmdW5jdGlvbiAoa2V5KSB7CiAgICAgICAgICAgICAg
ICAgICAgZnVuY3Rpb24gZihuKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZvcm1hdCBpbnRlZ2VycyB0byBoYXZlIGF0IGxlYXN0IHR3byBkaWdpdHMuCiAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuIDwgMTAgPyAnMCcgKyBuIDog
bjsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHJl
dHVybiB0aGlzLmdldFVUQ0Z1bGxZZWFyKCkgICArICctJyArCiAgICAgICAgICAg
ICAgICAgICAgICAgICBmKHRoaXMuZ2V0VVRDTW9udGgoKSArIDEpICsgJy0nICsK
ICAgICAgICAgICAgICAgICAgICAgICAgIGYodGhpcy5nZXRVVENEYXRlKCkpICAg
ICAgKyAnVCcgKwogICAgICAgICAgICAgICAgICAgICAgICAgZih0aGlzLmdldFVU
Q0hvdXJzKCkpICAgICArICc6JyArCiAgICAgICAgICAgICAgICAgICAgICAgICBm
KHRoaXMuZ2V0VVRDTWludXRlcygpKSAgICsgJzonICsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGYodGhpcy5nZXRVVENTZWNvbmRzKCkpICAgKyAnWic7CiAgICAg
ICAgICAgICAgICB9OwoKICAgICAgICAgICAgWW91IGNhbiBwcm92aWRlIGFuIG9w
dGlvbmFsIHJlcGxhY2VyIG1ldGhvZC4gSXQgd2lsbCBiZSBwYXNzZWQgdGhlCiAg
ICAgICAgICAgIGtleSBhbmQgdmFsdWUgb2YgZWFjaCBtZW1iZXIsIHdpdGggdGhp
cyBib3VuZCB0byB0aGUgY29udGFpbmluZwogICAgICAgICAgICBvYmplY3QuIFRo
ZSB2YWx1ZSB0aGF0IGlzIHJldHVybmVkIGZyb20geW91ciBtZXRob2Qgd2lsbCBi
ZQogICAgICAgICAgICBzZXJpYWxpemVkLiBJZiB5b3VyIG1ldGhvZCByZXR1cm5z
IHVuZGVmaW5lZCwgdGhlbiB0aGUgbWVtYmVyIHdpbGwKICAgICAgICAgICAgYmUg
ZXhjbHVkZWQgZnJvbSB0aGUgc2VyaWFsaXphdGlvbi4KCiAgICAgICAgICAgIElm
IHRoZSByZXBsYWNlciBwYXJhbWV0ZXIgaXMgYW4gYXJyYXkgb2Ygc3RyaW5ncywg
dGhlbiBpdCB3aWxsIGJlCiAgICAgICAgICAgIHVzZWQgdG8gc2VsZWN0IHRoZSBt
ZW1iZXJzIHRvIGJlIHNlcmlhbGl6ZWQuIEl0IGZpbHRlcnMgdGhlIHJlc3VsdHMK
ICAgICAgICAgICAgc3VjaCB0aGF0IG9ubHkgbWVtYmVycyB3aXRoIGtleXMgbGlz
dGVkIGluIHRoZSByZXBsYWNlciBhcnJheSBhcmUKICAgICAgICAgICAgc3RyaW5n
aWZpZWQuCgogICAgICAgICAgICBWYWx1ZXMgdGhhdCBkbyBub3QgaGF2ZSBKU09O
IHJlcHJlc2VudGF0aW9ucywgc3VjaCBhcyB1bmRlZmluZWQgb3IKICAgICAgICAg
ICAgZnVuY3Rpb25zLCB3aWxsIG5vdCBiZSBzZXJpYWxpemVkLiBTdWNoIHZhbHVl
cyBpbiBvYmplY3RzIHdpbGwgYmUKICAgICAgICAgICAgZHJvcHBlZDsgaW4gYXJy
YXlzIHRoZXkgd2lsbCBiZSByZXBsYWNlZCB3aXRoIG51bGwuIFlvdSBjYW4gdXNl
CiAgICAgICAgICAgIGEgcmVwbGFjZXIgZnVuY3Rpb24gdG8gcmVwbGFjZSB0aG9z
ZSB3aXRoIEpTT04gdmFsdWVzLgogICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh1
bmRlZmluZWQpIHJldHVybnMgdW5kZWZpbmVkLgoKICAgICAgICAgICAgVGhlIG9w
dGlvbmFsIHNwYWNlIHBhcmFtZXRlciBwcm9kdWNlcyBhIHN0cmluZ2lmaWNhdGlv
biBvZiB0aGUKICAgICAgICAgICAgdmFsdWUgdGhhdCBpcyBmaWxsZWQgd2l0aCBs
aW5lIGJyZWFrcyBhbmQgaW5kZW50YXRpb24gdG8gbWFrZSBpdAogICAgICAgICAg
ICBlYXNpZXIgdG8gcmVhZC4KCiAgICAgICAgICAgIElmIHRoZSBzcGFjZSBwYXJh
bWV0ZXIgaXMgYSBub24tZW1wdHkgc3RyaW5nLCB0aGVuIHRoYXQgc3RyaW5nIHdp
bGwKICAgICAgICAgICAgYmUgdXNlZCBmb3IgaW5kZW50YXRpb24uIElmIHRoZSBz
cGFjZSBwYXJhbWV0ZXIgaXMgYSBudW1iZXIsIHRoZW4KICAgICAgICAgICAgdGhl
IGluZGVudGF0aW9uIHdpbGwgYmUgdGhhdCBtYW55IHNwYWNlcy4KCiAgICAgICAg
ICAgIEV4YW1wbGU6CgogICAgICAgICAgICB0ZXh0ID0gSlNPTi5zdHJpbmdpZnko
WydlJywge3BsdXJpYnVzOiAndW51bSd9XSk7CiAgICAgICAgICAgIC8vIHRleHQg
aXMgJ1siZSIseyJwbHVyaWJ1cyI6InVudW0ifV0nCgoKICAgICAgICAgICAgdGV4
dCA9IEpTT04uc3RyaW5naWZ5KFsnZScsIHtwbHVyaWJ1czogJ3VudW0nfV0sIG51
bGwsICdcdCcpOwogICAgICAgICAgICAvLyB0ZXh0IGlzICdbXG5cdCJlIixcblx0
e1xuXHRcdCJwbHVyaWJ1cyI6ICJ1bnVtIlxuXHR9XG5dJwoKICAgICAgICAgICAg
dGV4dCA9IEpTT04uc3RyaW5naWZ5KFtuZXcgRGF0ZSgpXSwgZnVuY3Rpb24gKGtl
eSwgdmFsdWUpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzW2tleV0gaW5z
dGFuY2VvZiBEYXRlID8KICAgICAgICAgICAgICAgICAgICAnRGF0ZSgnICsgdGhp
c1trZXldICsgJyknIDogdmFsdWU7CiAgICAgICAgICAgIH0pOwogICAgICAgICAg
ICAvLyB0ZXh0IGlzICdbIkRhdGUoLS0tY3VycmVudCB0aW1lLS0tKSJdJwoKCiAg
ICAgICAgSlNPTi5wYXJzZSh0ZXh0LCByZXZpdmVyKQogICAgICAgICAgICBUaGlz
IG1ldGhvZCBwYXJzZXMgYSBKU09OIHRleHQgdG8gcHJvZHVjZSBhbiBvYmplY3Qg
b3IgYXJyYXkuCiAgICAgICAgICAgIEl0IGNhbiB0aHJvdyBhIFN5bnRheEVycm9y
IGV4Y2VwdGlvbi4KCiAgICAgICAgICAgIFRoZSBvcHRpb25hbCByZXZpdmVyIHBh
cmFtZXRlciBpcyBhIGZ1bmN0aW9uIHRoYXQgY2FuIGZpbHRlciBhbmQKICAgICAg
ICAgICAgdHJhbnNmb3JtIHRoZSByZXN1bHRzLiBJdCByZWNlaXZlcyBlYWNoIG9m
IHRoZSBrZXlzIGFuZCB2YWx1ZXMsCiAgICAgICAgICAgIGFuZCBpdHMgcmV0dXJu
IHZhbHVlIGlzIHVzZWQgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgdmFsdWUuCiAg
ICAgICAgICAgIElmIGl0IHJldHVybnMgd2hhdCBpdCByZWNlaXZlZCwgdGhlbiB0
aGUgc3RydWN0dXJlIGlzIG5vdCBtb2RpZmllZC4KICAgICAgICAgICAgSWYgaXQg
cmV0dXJucyB1bmRlZmluZWQgdGhlbiB0aGUgbWVtYmVyIGlzIGRlbGV0ZWQuCgog
ICAgICAgICAgICBFeGFtcGxlOgoKICAgICAgICAgICAgLy8gUGFyc2UgdGhlIHRl
eHQuIFZhbHVlcyB0aGF0IGxvb2sgbGlrZSBJU08gZGF0ZSBzdHJpbmdzIHdpbGwK
ICAgICAgICAgICAgLy8gYmUgY29udmVydGVkIHRvIERhdGUgb2JqZWN0cy4KCiAg
ICAgICAgICAgIG15RGF0YSA9IEpTT04ucGFyc2UodGV4dCwgZnVuY3Rpb24gKGtl
eSwgdmFsdWUpIHsKICAgICAgICAgICAgICAgIHZhciBhOwogICAgICAgICAgICAg
ICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHsKICAgICAgICAgICAg
ICAgICAgICBhID0KL14oXGR7NH0pLShcZHsyfSktKFxkezJ9KVQoXGR7Mn0pOihc
ZHsyfSk6KFxkezJ9KD86XC5cZCopPylaJC8uZXhlYyh2YWx1ZSk7CiAgICAgICAg
ICAgICAgICAgICAgaWYgKGEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIG5ldyBEYXRlKERhdGUuVVRDKCthWzFdLCArYVsyXSAtIDEsICthWzNdLCAr
YVs0XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICthWzVdLCArYVs2XSkp
OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgICAgfSk7CgogICAgICAg
ICAgICBteURhdGEgPSBKU09OLnBhcnNlKCdbIkRhdGUoMDkvMDkvMjAwMSkiXScs
IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7CiAgICAgICAgICAgICAgICB2YXIgZDsK
ICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYm
CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLnNsaWNlKDAsIDUpID09PSAn
RGF0ZSgnICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLnNsaWNlKC0x
KSA9PT0gJyknKSB7CiAgICAgICAgICAgICAgICAgICAgZCA9IG5ldyBEYXRlKHZh
bHVlLnNsaWNlKDUsIC0xKSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGQpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGQ7CiAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJu
IHZhbHVlOwogICAgICAgICAgICB9KTsKCgogICAgVGhpcyBpcyBhIHJlZmVyZW5j
ZSBpbXBsZW1lbnRhdGlvbi4gWW91IGFyZSBmcmVlIHRvIGNvcHksIG1vZGlmeSwg
b3IKICAgIHJlZGlzdHJpYnV0ZS4KKi8KCi8qanNsaW50IGV2aWw6IHRydWUsIHN0
cmljdDogZmFsc2UgKi8KCi8qbWVtYmVycyAiIiwgIlxiIiwgIlx0IiwgIlxuIiwg
IlxmIiwgIlxyIiwgIlwiIiwgSlNPTiwgIlxcIiwgYXBwbHksCiAgICBjYWxsLCBj
aGFyQ29kZUF0LCBnZXRVVENEYXRlLCBnZXRVVENGdWxsWWVhciwgZ2V0VVRDSG91
cnMsCiAgICBnZXRVVENNaW51dGVzLCBnZXRVVENNb250aCwgZ2V0VVRDU2Vjb25k
cywgaGFzT3duUHJvcGVydHksIGpvaW4sCiAgICBsYXN0SW5kZXgsIGxlbmd0aCwg
cGFyc2UsIHByb3RvdHlwZSwgcHVzaCwgcmVwbGFjZSwgc2xpY2UsIHN0cmluZ2lm
eSwKICAgIHRlc3QsIHRvSlNPTiwgdG9TdHJpbmcsIHZhbHVlT2YKKi8KCgovLyBD
cmVhdGUgYSBKU09OIG9iamVjdCBvbmx5IGlmIG9uZSBkb2VzIG5vdCBhbHJlYWR5
IGV4aXN0LiBXZSBjcmVhdGUgdGhlCi8vIG1ldGhvZHMgaW4gYSBjbG9zdXJlIHRv
IGF2b2lkIGNyZWF0aW5nIGdsb2JhbCB2YXJpYWJsZXMuCgppZiAoIXRoaXMuSlNP
TikgewogICAgdGhpcy5KU09OID0ge307Cn0KCihmdW5jdGlvbiAoKSB7CgogICAg
ZnVuY3Rpb24gZihuKSB7CiAgICAgICAgLy8gRm9ybWF0IGludGVnZXJzIHRvIGhh
dmUgYXQgbGVhc3QgdHdvIGRpZ2l0cy4KICAgICAgICByZXR1cm4gbiA8IDEwID8g
JzAnICsgbiA6IG47CiAgICB9CgogICAgaWYgKHR5cGVvZiBEYXRlLnByb3RvdHlw
ZS50b0pTT04gIT09ICdmdW5jdGlvbicpIHsKCiAgICAgICAgRGF0ZS5wcm90b3R5
cGUudG9KU09OID0gZnVuY3Rpb24gKGtleSkgewoKICAgICAgICAgICAgcmV0dXJu
IGlzRmluaXRlKHRoaXMudmFsdWVPZigpKSA/CiAgICAgICAgICAgICAgICAgICB0
aGlzLmdldFVUQ0Z1bGxZZWFyKCkgICArICctJyArCiAgICAgICAgICAgICAgICAg
Zih0aGlzLmdldFVUQ01vbnRoKCkgKyAxKSArICctJyArCiAgICAgICAgICAgICAg
ICAgZih0aGlzLmdldFVUQ0RhdGUoKSkgICAgICArICdUJyArCiAgICAgICAgICAg
ICAgICAgZih0aGlzLmdldFVUQ0hvdXJzKCkpICAgICArICc6JyArCiAgICAgICAg
ICAgICAgICAgZih0aGlzLmdldFVUQ01pbnV0ZXMoKSkgICArICc6JyArCiAgICAg
ICAgICAgICAgICAgZih0aGlzLmdldFVUQ1NlY29uZHMoKSkgICArICdaJyA6IG51
bGw7CiAgICAgICAgfTsKCiAgICAgICAgU3RyaW5nLnByb3RvdHlwZS50b0pTT04g
PQogICAgICAgIE51bWJlci5wcm90b3R5cGUudG9KU09OID0KICAgICAgICBCb29s
ZWFuLnByb3RvdHlwZS50b0pTT04gPSBmdW5jdGlvbiAoa2V5KSB7CiAgICAgICAg
ICAgIHJldHVybiB0aGlzLnZhbHVlT2YoKTsKICAgICAgICB9OwogICAgfQoKICAg
IHZhciBjeCA9IC9bXHUwMDAwXHUwMGFkXHUwNjAwLVx1MDYwNFx1MDcwZlx1MTdi
NFx1MTdiNVx1MjAwYy1cdTIwMGZcdTIwMjgtXHUyMDJmXHUyMDYwLVx1MjA2Zlx1
ZmVmZlx1ZmZmMC1cdWZmZmZdL2csCiAgICAgICAgZXNjYXBhYmxlID0gL1tcXFwi
XHgwMC1ceDFmXHg3Zi1ceDlmXHUwMGFkXHUwNjAwLVx1MDYwNFx1MDcwZlx1MTdi
NFx1MTdiNVx1MjAwYy1cdTIwMGZcdTIwMjgtXHUyMDJmXHUyMDYwLVx1MjA2Zlx1
ZmVmZlx1ZmZmMC1cdWZmZmZdL2csCiAgICAgICAgZ2FwLAogICAgICAgIGluZGVu
dCwKICAgICAgICBtZXRhID0geyAgICAvLyB0YWJsZSBvZiBjaGFyYWN0ZXIgc3Vi
c3RpdHV0aW9ucwogICAgICAgICAgICAnXGInOiAnXFxiJywKICAgICAgICAgICAg
J1x0JzogJ1xcdCcsCiAgICAgICAgICAgICdcbic6ICdcXG4nLAogICAgICAgICAg
ICAnXGYnOiAnXFxmJywKICAgICAgICAgICAgJ1xyJzogJ1xccicsCiAgICAgICAg
ICAgICciJyA6ICdcXCInLAogICAgICAgICAgICAnXFwnOiAnXFxcXCcKICAgICAg
ICB9LAogICAgICAgIHJlcDsKCgogICAgZnVuY3Rpb24gcXVvdGUoc3RyaW5nKSB7
CgovLyBJZiB0aGUgc3RyaW5nIGNvbnRhaW5zIG5vIGNvbnRyb2wgY2hhcmFjdGVy
cywgbm8gcXVvdGUgY2hhcmFjdGVycywgYW5kIG5vCi8vIGJhY2tzbGFzaCBjaGFy
YWN0ZXJzLCB0aGVuIHdlIGNhbiBzYWZlbHkgc2xhcCBzb21lIHF1b3RlcyBhcm91
bmQgaXQuCi8vIE90aGVyd2lzZSB3ZSBtdXN0IGFsc28gcmVwbGFjZSB0aGUgb2Zm
ZW5kaW5nIGNoYXJhY3RlcnMgd2l0aCBzYWZlIGVzY2FwZQovLyBzZXF1ZW5jZXMu
CgogICAgICAgIGVzY2FwYWJsZS5sYXN0SW5kZXggPSAwOwogICAgICAgIHJldHVy
biBlc2NhcGFibGUudGVzdChzdHJpbmcpID8KICAgICAgICAgICAgJyInICsgc3Ry
aW5nLnJlcGxhY2UoZXNjYXBhYmxlLCBmdW5jdGlvbiAoYSkgewogICAgICAgICAg
ICAgICAgdmFyIGMgPSBtZXRhW2FdOwogICAgICAgICAgICAgICAgcmV0dXJuIHR5
cGVvZiBjID09PSAnc3RyaW5nJyA/IGMgOgogICAgICAgICAgICAgICAgICAgICdc
XHUnICsgKCcwMDAwJyArIGEuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNs
aWNlKC00KTsKICAgICAgICAgICAgfSkgKyAnIicgOgogICAgICAgICAgICAnIicg
KyBzdHJpbmcgKyAnIic7CiAgICB9CgoKICAgIGZ1bmN0aW9uIHN0cihrZXksIGhv
bGRlcikgewoKLy8gUHJvZHVjZSBhIHN0cmluZyBmcm9tIGhvbGRlcltrZXldLgoK
ICAgICAgICB2YXIgaSwgICAgICAgICAgLy8gVGhlIGxvb3AgY291bnRlci4KICAg
ICAgICAgICAgaywgICAgICAgICAgLy8gVGhlIG1lbWJlciBrZXkuCiAgICAgICAg
ICAgIHYsICAgICAgICAgIC8vIFRoZSBtZW1iZXIgdmFsdWUuCiAgICAgICAgICAg
IGxlbmd0aCwKICAgICAgICAgICAgbWluZCA9IGdhcCwKICAgICAgICAgICAgcGFy
dGlhbCwKICAgICAgICAgICAgdmFsdWUgPSBob2xkZXJba2V5XTsKCi8vIElmIHRo
ZSB2YWx1ZSBoYXMgYSB0b0pTT04gbWV0aG9kLCBjYWxsIGl0IHRvIG9idGFpbiBh
IHJlcGxhY2VtZW50IHZhbHVlLgoKICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9m
IHZhbHVlID09PSAnb2JqZWN0JyAmJgogICAgICAgICAgICAgICAgdHlwZW9mIHZh
bHVlLnRvSlNPTiA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAgICB2YWx1ZSA9
IHZhbHVlLnRvSlNPTihrZXkpOwogICAgICAgIH0KCi8vIElmIHdlIHdlcmUgY2Fs
bGVkIHdpdGggYSByZXBsYWNlciBmdW5jdGlvbiwgdGhlbiBjYWxsIHRoZSByZXBs
YWNlciB0bwovLyBvYnRhaW4gYSByZXBsYWNlbWVudCB2YWx1ZS4KCiAgICAgICAg
aWYgKHR5cGVvZiByZXAgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgdmFs
dWUgPSByZXAuY2FsbChob2xkZXIsIGtleSwgdmFsdWUpOwogICAgICAgIH0KCi8v
IFdoYXQgaGFwcGVucyBuZXh0IGRlcGVuZHMgb24gdGhlIHZhbHVlJ3MgdHlwZS4K
CiAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHsKICAgICAgICBjYXNlICdz
dHJpbmcnOgogICAgICAgICAgICByZXR1cm4gcXVvdGUodmFsdWUpOwoKICAgICAg
ICBjYXNlICdudW1iZXInOgoKLy8gSlNPTiBudW1iZXJzIG11c3QgYmUgZmluaXRl
LiBFbmNvZGUgbm9uLWZpbml0ZSBudW1iZXJzIGFzIG51bGwuCgogICAgICAgICAg
ICByZXR1cm4gaXNGaW5pdGUodmFsdWUpID8gU3RyaW5nKHZhbHVlKSA6ICdudWxs
JzsKCiAgICAgICAgY2FzZSAnYm9vbGVhbic6CiAgICAgICAgY2FzZSAnbnVsbCc6
CgovLyBJZiB0aGUgdmFsdWUgaXMgYSBib29sZWFuIG9yIG51bGwsIGNvbnZlcnQg
aXQgdG8gYSBzdHJpbmcuIE5vdGU6Ci8vIHR5cGVvZiBudWxsIGRvZXMgbm90IHBy
b2R1Y2UgJ251bGwnLiBUaGUgY2FzZSBpcyBpbmNsdWRlZCBoZXJlIGluCi8vIHRo
ZSByZW1vdGUgY2hhbmNlIHRoYXQgdGhpcyBnZXRzIGZpeGVkIHNvbWVkYXkuCgog
ICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTsKCi8vIElmIHRoZSB0eXBl
IGlzICdvYmplY3QnLCB3ZSBtaWdodCBiZSBkZWFsaW5nIHdpdGggYW4gb2JqZWN0
IG9yIGFuIGFycmF5IG9yCi8vIG51bGwuCgogICAgICAgIGNhc2UgJ29iamVjdCc6
CgovLyBEdWUgdG8gYSBzcGVjaWZpY2F0aW9uIGJsdW5kZXIgaW4gRUNNQVNjcmlw
dCwgdHlwZW9mIG51bGwgaXMgJ29iamVjdCcsCi8vIHNvIHdhdGNoIG91dCBmb3Ig
dGhhdCBjYXNlLgoKICAgICAgICAgICAgaWYgKCF2YWx1ZSkgewogICAgICAgICAg
ICAgICAgcmV0dXJuICdudWxsJzsKICAgICAgICAgICAgfQoKLy8gTWFrZSBhbiBh
cnJheSB0byBob2xkIHRoZSBwYXJ0aWFsIHJlc3VsdHMgb2Ygc3RyaW5naWZ5aW5n
IHRoaXMgb2JqZWN0IHZhbHVlLgoKICAgICAgICAgICAgZ2FwICs9IGluZGVudDsK
ICAgICAgICAgICAgcGFydGlhbCA9IFtdOwoKLy8gSXMgdGhlIHZhbHVlIGFuIGFy
cmF5PwoKICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcu
YXBwbHkodmFsdWUpID09PSAnW29iamVjdCBBcnJheV0nKSB7CgovLyBUaGUgdmFs
dWUgaXMgYW4gYXJyYXkuIFN0cmluZ2lmeSBldmVyeSBlbGVtZW50LiBVc2UgbnVs
bCBhcyBhIHBsYWNlaG9sZGVyCi8vIGZvciBub24tSlNPTiB2YWx1ZXMuCgogICAg
ICAgICAgICAgICAgbGVuZ3RoID0gdmFsdWUubGVuZ3RoOwogICAgICAgICAgICAg
ICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7CiAgICAgICAgICAg
ICAgICAgICAgcGFydGlhbFtpXSA9IHN0cihpLCB2YWx1ZSkgfHwgJ251bGwnOwog
ICAgICAgICAgICAgICAgfQoKLy8gSm9pbiBhbGwgb2YgdGhlIGVsZW1lbnRzIHRv
Z2V0aGVyLCBzZXBhcmF0ZWQgd2l0aCBjb21tYXMsIGFuZCB3cmFwIHRoZW0gaW4K
Ly8gYnJhY2tldHMuCgogICAgICAgICAgICAgICAgdiA9IHBhcnRpYWwubGVuZ3Ro
ID09PSAwID8gJ1tdJyA6CiAgICAgICAgICAgICAgICAgICAgZ2FwID8gJ1tcbicg
KyBnYXAgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydGlhbC5qb2lu
KCcsXG4nICsgZ2FwKSArICdcbicgKwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1pbmQgKyAnXScgOgogICAgICAgICAgICAgICAgICAgICAgICAgICdb
JyArIHBhcnRpYWwuam9pbignLCcpICsgJ10nOwogICAgICAgICAgICAgICAgZ2Fw
ID0gbWluZDsKICAgICAgICAgICAgICAgIHJldHVybiB2OwogICAgICAgICAgICB9
CgovLyBJZiB0aGUgcmVwbGFjZXIgaXMgYW4gYXJyYXksIHVzZSBpdCB0byBzZWxl
Y3QgdGhlIG1lbWJlcnMgdG8gYmUgc3RyaW5naWZpZWQuCgogICAgICAgICAgICBp
ZiAocmVwICYmIHR5cGVvZiByZXAgPT09ICdvYmplY3QnKSB7CiAgICAgICAgICAg
ICAgICBsZW5ndGggPSByZXAubGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yIChp
ID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7CiAgICAgICAgICAgICAgICAgICAg
ayA9IHJlcFtpXTsKICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGsgPT09
ICdzdHJpbmcnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHYgPSBzdHIoaywg
dmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAodikgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFydGlhbC5wdXNoKHF1b3RlKGspICsgKGdh
cCA/ICc6ICcgOiAnOicpICsgdik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgIH0gZWxzZSB7CgovLyBPdGhlcndpc2UsIGl0ZXJhdGUgdGhyb3VnaCBhbGwg
b2YgdGhlIGtleXMgaW4gdGhlIG9iamVjdC4KCiAgICAgICAgICAgICAgICBmb3Ig
KGsgaW4gdmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoT2JqZWN0Lmhh
c093blByb3BlcnR5LmNhbGwodmFsdWUsIGspKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIHYgPSBzdHIoaywgdmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAg
ICBpZiAodikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydGlhbC5w
dXNoKHF1b3RlKGspICsgKGdhcCA/ICc6ICcgOiAnOicpICsgdik7CiAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgIH0KCi8vIEpvaW4gYWxsIG9mIHRoZSBtZW1i
ZXIgdGV4dHMgdG9nZXRoZXIsIHNlcGFyYXRlZCB3aXRoIGNvbW1hcywKLy8gYW5k
IHdyYXAgdGhlbSBpbiBicmFjZXMuCgogICAgICAgICAgICB2ID0gcGFydGlhbC5s
ZW5ndGggPT09IDAgPyAne30nIDoKICAgICAgICAgICAgICAgIGdhcCA/ICd7XG4n
ICsgZ2FwICsgcGFydGlhbC5qb2luKCcsXG4nICsgZ2FwKSArICdcbicgKwogICAg
ICAgICAgICAgICAgICAgICAgICBtaW5kICsgJ30nIDogJ3snICsgcGFydGlhbC5q
b2luKCcsJykgKyAnfSc7CiAgICAgICAgICAgIGdhcCA9IG1pbmQ7CiAgICAgICAg
ICAgIHJldHVybiB2OwogICAgICAgIH0KICAgIH0KCi8vIElmIHRoZSBKU09OIG9i
amVjdCBkb2VzIG5vdCB5ZXQgaGF2ZSBhIHN0cmluZ2lmeSBtZXRob2QsIGdpdmUg
aXQgb25lLgoKICAgIGlmICh0eXBlb2YgSlNPTi5zdHJpbmdpZnkgIT09ICdmdW5j
dGlvbicpIHsKICAgICAgICBKU09OLnN0cmluZ2lmeSA9IGZ1bmN0aW9uICh2YWx1
ZSwgcmVwbGFjZXIsIHNwYWNlKSB7CgovLyBUaGUgc3RyaW5naWZ5IG1ldGhvZCB0
YWtlcyBhIHZhbHVlIGFuZCBhbiBvcHRpb25hbCByZXBsYWNlciwgYW5kIGFuIG9w
dGlvbmFsCi8vIHNwYWNlIHBhcmFtZXRlciwgYW5kIHJldHVybnMgYSBKU09OIHRl
eHQuIFRoZSByZXBsYWNlciBjYW4gYmUgYSBmdW5jdGlvbgovLyB0aGF0IGNhbiBy
ZXBsYWNlIHZhbHVlcywgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncyB0aGF0IHdpbGwg
c2VsZWN0IHRoZSBrZXlzLgovLyBBIGRlZmF1bHQgcmVwbGFjZXIgbWV0aG9kIGNh
biBiZSBwcm92aWRlZC4gVXNlIG9mIHRoZSBzcGFjZSBwYXJhbWV0ZXIgY2FuCi8v
IHByb2R1Y2UgdGV4dCB0aGF0IGlzIG1vcmUgZWFzaWx5IHJlYWRhYmxlLgoKICAg
ICAgICAgICAgdmFyIGk7CiAgICAgICAgICAgIGdhcCA9ICcnOwogICAgICAgICAg
ICBpbmRlbnQgPSAnJzsKCi8vIElmIHRoZSBzcGFjZSBwYXJhbWV0ZXIgaXMgYSBu
dW1iZXIsIG1ha2UgYW4gaW5kZW50IHN0cmluZyBjb250YWluaW5nIHRoYXQKLy8g
bWFueSBzcGFjZXMuCgogICAgICAgICAgICBpZiAodHlwZW9mIHNwYWNlID09PSAn
bnVtYmVyJykgewogICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNwYWNl
OyBpICs9IDEpIHsKICAgICAgICAgICAgICAgICAgICBpbmRlbnQgKz0gJyAnOwog
ICAgICAgICAgICAgICAgfQoKLy8gSWYgdGhlIHNwYWNlIHBhcmFtZXRlciBpcyBh
IHN0cmluZywgaXQgd2lsbCBiZSB1c2VkIGFzIHRoZSBpbmRlbnQgc3RyaW5nLgoK
ICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc3BhY2UgPT09ICdzdHJpbmcn
KSB7CiAgICAgICAgICAgICAgICBpbmRlbnQgPSBzcGFjZTsKICAgICAgICAgICAg
fQoKLy8gSWYgdGhlcmUgaXMgYSByZXBsYWNlciwgaXQgbXVzdCBiZSBhIGZ1bmN0
aW9uIG9yIGFuIGFycmF5LgovLyBPdGhlcndpc2UsIHRocm93IGFuIGVycm9yLgoK
ICAgICAgICAgICAgcmVwID0gcmVwbGFjZXI7CiAgICAgICAgICAgIGlmIChyZXBs
YWNlciAmJiB0eXBlb2YgcmVwbGFjZXIgIT09ICdmdW5jdGlvbicgJiYKICAgICAg
ICAgICAgICAgICAgICAodHlwZW9mIHJlcGxhY2VyICE9PSAnb2JqZWN0JyB8fAog
ICAgICAgICAgICAgICAgICAgICB0eXBlb2YgcmVwbGFjZXIubGVuZ3RoICE9PSAn
bnVtYmVyJykpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSlNP
Ti5zdHJpbmdpZnknKTsKICAgICAgICAgICAgfQoKLy8gTWFrZSBhIGZha2Ugcm9v
dCBvYmplY3QgY29udGFpbmluZyBvdXIgdmFsdWUgdW5kZXIgdGhlIGtleSBvZiAn
Jy4KLy8gUmV0dXJuIHRoZSByZXN1bHQgb2Ygc3RyaW5naWZ5aW5nIHRoZSB2YWx1
ZS4KCiAgICAgICAgICAgIHJldHVybiBzdHIoJycsIHsnJzogdmFsdWV9KTsKICAg
ICAgICB9OwogICAgfQoKCi8vIElmIHRoZSBKU09OIG9iamVjdCBkb2VzIG5vdCB5
ZXQgaGF2ZSBhIHBhcnNlIG1ldGhvZCwgZ2l2ZSBpdCBvbmUuCgogICAgaWYgKHR5
cGVvZiBKU09OLnBhcnNlICE9PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgSlNPTi5w
YXJzZSA9IGZ1bmN0aW9uICh0ZXh0LCByZXZpdmVyKSB7CgovLyBUaGUgcGFyc2Ug
bWV0aG9kIHRha2VzIGEgdGV4dCBhbmQgYW4gb3B0aW9uYWwgcmV2aXZlciBmdW5j
dGlvbiwgYW5kIHJldHVybnMKLy8gYSBKYXZhU2NyaXB0IHZhbHVlIGlmIHRoZSB0
ZXh0IGlzIGEgdmFsaWQgSlNPTiB0ZXh0LgoKICAgICAgICAgICAgdmFyIGo7Cgog
ICAgICAgICAgICBmdW5jdGlvbiB3YWxrKGhvbGRlciwga2V5KSB7CgovLyBUaGUg
d2FsayBtZXRob2QgaXMgdXNlZCB0byByZWN1cnNpdmVseSB3YWxrIHRoZSByZXN1
bHRpbmcgc3RydWN0dXJlIHNvCi8vIHRoYXQgbW9kaWZpY2F0aW9ucyBjYW4gYmUg
bWFkZS4KCiAgICAgICAgICAgICAgICB2YXIgaywgdiwgdmFsdWUgPSBob2xkZXJb
a2V5XTsKICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUg
PT09ICdvYmplY3QnKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yIChrIGluIHZh
bHVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChPYmplY3QuaGFzT3du
UHJvcGVydHkuY2FsbCh2YWx1ZSwgaykpIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHYgPSB3YWxrKHZhbHVlLCBrKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh2ICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2YWx1ZVtrXSA9IHY7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlbGV0ZSB2YWx1ZVtrXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiByZXZpdmVy
LmNhbGwoaG9sZGVyLCBrZXksIHZhbHVlKTsKICAgICAgICAgICAgfQoKCi8vIFBh
cnNpbmcgaGFwcGVucyBpbiBmb3VyIHN0YWdlcy4gSW4gdGhlIGZpcnN0IHN0YWdl
LCB3ZSByZXBsYWNlIGNlcnRhaW4KLy8gVW5pY29kZSBjaGFyYWN0ZXJzIHdpdGgg
ZXNjYXBlIHNlcXVlbmNlcy4gSmF2YVNjcmlwdCBoYW5kbGVzIG1hbnkgY2hhcmFj
dGVycwovLyBpbmNvcnJlY3RseSwgZWl0aGVyIHNpbGVudGx5IGRlbGV0aW5nIHRo
ZW0sIG9yIHRyZWF0aW5nIHRoZW0gYXMgbGluZSBlbmRpbmdzLgoKICAgICAgICAg
ICAgY3gubGFzdEluZGV4ID0gMDsKICAgICAgICAgICAgaWYgKGN4LnRlc3QodGV4
dCkpIHsKICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoY3gsIGZ1
bmN0aW9uIChhKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdcXHUnICsK
ICAgICAgICAgICAgICAgICAgICAgICAgKCcwMDAwJyArIGEuY2hhckNvZGVBdCgw
KS50b1N0cmluZygxNikpLnNsaWNlKC00KTsKICAgICAgICAgICAgICAgIH0pOwog
ICAgICAgICAgICB9CgovLyBJbiB0aGUgc2Vjb25kIHN0YWdlLCB3ZSBydW4gdGhl
IHRleHQgYWdhaW5zdCByZWd1bGFyIGV4cHJlc3Npb25zIHRoYXQgbG9vawovLyBm
b3Igbm9uLUpTT04gcGF0dGVybnMuIFdlIGFyZSBlc3BlY2lhbGx5IGNvbmNlcm5l
ZCB3aXRoICcoKScgYW5kICduZXcnCi8vIGJlY2F1c2UgdGhleSBjYW4gY2F1c2Ug
aW52b2NhdGlvbiwgYW5kICc9JyBiZWNhdXNlIGl0IGNhbiBjYXVzZSBtdXRhdGlv
bi4KLy8gQnV0IGp1c3QgdG8gYmUgc2FmZSwgd2Ugd2FudCB0byByZWplY3QgYWxs
IHVuZXhwZWN0ZWQgZm9ybXMuCgovLyBXZSBzcGxpdCB0aGUgc2Vjb25kIHN0YWdl
IGludG8gNCByZWdleHAgb3BlcmF0aW9ucyBpbiBvcmRlciB0byB3b3JrIGFyb3Vu
ZAovLyBjcmlwcGxpbmcgaW5lZmZpY2llbmNpZXMgaW4gSUUncyBhbmQgU2FmYXJp
J3MgcmVnZXhwIGVuZ2luZXMuIEZpcnN0IHdlCi8vIHJlcGxhY2UgdGhlIEpTT04g
YmFja3NsYXNoIHBhaXJzIHdpdGggJ0AnIChhIG5vbi1KU09OIGNoYXJhY3Rlciku
IFNlY29uZCwgd2UKLy8gcmVwbGFjZSBhbGwgc2ltcGxlIHZhbHVlIHRva2VucyB3
aXRoICddJyBjaGFyYWN0ZXJzLiBUaGlyZCwgd2UgZGVsZXRlIGFsbAovLyBvcGVu
IGJyYWNrZXRzIHRoYXQgZm9sbG93IGEgY29sb24gb3IgY29tbWEgb3IgdGhhdCBi
ZWdpbiB0aGUgdGV4dC4gRmluYWxseSwKLy8gd2UgbG9vayB0byBzZWUgdGhhdCB0
aGUgcmVtYWluaW5nIGNoYXJhY3RlcnMgYXJlIG9ubHkgd2hpdGVzcGFjZSBvciAn
XScgb3IKLy8gJywnIG9yICc6JyBvciAneycgb3IgJ30nLiBJZiB0aGF0IGlzIHNv
LCB0aGVuIHRoZSB0ZXh0IGlzIHNhZmUgZm9yIGV2YWwuCgogICAgICAgICAgICBp
ZiAoL15bXF0sOnt9XHNdKiQvLgp0ZXN0KHRleHQucmVwbGFjZSgvXFwoPzpbIlxc
XC9iZm5ydF18dVswLTlhLWZBLUZdezR9KS9nLCAnQCcpLgpyZXBsYWNlKC8iW14i
XFxcblxyXSoifHRydWV8ZmFsc2V8bnVsbHwtP1xkKyg/OlwuXGQqKT8oPzpbZUVd
WytcLV0/XGQrKT8vZywgJ10nKS4KcmVwbGFjZSgvKD86Xnw6fCwpKD86XHMqXFsp
Ky9nLCAnJykpKSB7CgovLyBJbiB0aGUgdGhpcmQgc3RhZ2Ugd2UgdXNlIHRoZSBl
dmFsIGZ1bmN0aW9uIHRvIGNvbXBpbGUgdGhlIHRleHQgaW50byBhCi8vIEphdmFT
Y3JpcHQgc3RydWN0dXJlLiBUaGUgJ3snIG9wZXJhdG9yIGlzIHN1YmplY3QgdG8g
YSBzeW50YWN0aWMgYW1iaWd1aXR5Ci8vIGluIEphdmFTY3JpcHQ6IGl0IGNhbiBi
ZWdpbiBhIGJsb2NrIG9yIGFuIG9iamVjdCBsaXRlcmFsLiBXZSB3cmFwIHRoZSB0
ZXh0Ci8vIGluIHBhcmVucyB0byBlbGltaW5hdGUgdGhlIGFtYmlndWl0eS4KCiAg
ICAgICAgICAgICAgICBqID0gZXZhbCgnKCcgKyB0ZXh0ICsgJyknKTsKCi8vIElu
IHRoZSBvcHRpb25hbCBmb3VydGggc3RhZ2UsIHdlIHJlY3Vyc2l2ZWx5IHdhbGsg
dGhlIG5ldyBzdHJ1Y3R1cmUsIHBhc3NpbmcKLy8gZWFjaCBuYW1lL3ZhbHVlIHBh
aXIgdG8gYSByZXZpdmVyIGZ1bmN0aW9uIGZvciBwb3NzaWJsZSB0cmFuc2Zvcm1h
dGlvbi4KCiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHJldml2ZXIgPT09
ICdmdW5jdGlvbicgPwogICAgICAgICAgICAgICAgICAgIHdhbGsoeycnOiBqfSwg
JycpIDogajsKICAgICAgICAgICAgfQoKLy8gSWYgdGhlIHRleHQgaXMgbm90IEpT
T04gcGFyc2VhYmxlLCB0aGVuIGEgU3ludGF4RXJyb3IgaXMgdGhyb3duLgoKICAg
ICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKCdKU09OLnBhcnNlJyk7CiAg
ICAgICAgfTsKICAgIH0KfSgpKTsK

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=HaasCoreV0.1.js
Content-Type: application/x-javascript; name=HaasCoreV0.1.js
Content-Location: http://haas.newscientist.com/HaasCoreV0.1.js
Content-Transfer-Encoding: Base64

dmFyIGhhYXNKc0lkID0gInYwLjEgKHNwIDEwKSBidWlsZCAxMjEgcmMxIjsNCnZh
ciBoYWFzSXNEZWJ1ZyA9IGZhbHNlOw0KDQokKGRvY3VtZW50KS5yZWFkeShmdW5j
dGlvbigpDQp7DQoJSGFhc0hhbmRsZUxvYWQoKTsNCn0pOw0KDQpmdW5jdGlvbiBI
YWFzSGFuZGxlTG9hZCgpDQp7CQ0KCS8vIGNvbXBhdCBjaGVjaw0KCWlmDQoJCSgh
DQoJCQkoDQoJCQkJKCQuYnJvd3Nlci5tc2llICYmIHBhcnNlRmxvYXQoJC5icm93
c2VyLnZlcnNpb24pID49IDYpIHx8DQoJCQkJKCQuYnJvd3Nlci5tb3ppbGxhICYm
IHBhcnNlRmxvYXQoJC5icm93c2VyLnZlcnNpb24pID49IDEpIHx8DQoJCQkJKCQu
YnJvd3Nlci5zYWZhcmkgJiYgcGFyc2VGbG9hdCgkLmJyb3dzZXIudmVyc2lvbikg
Pj0gNTMwKSB8fA0KCQkJCSgkLmJyb3dzZXIub3BlcmEgJiYgcGFyc2VGbG9hdCgk
LmJyb3dzZXIudmVyc2lvbikgPj0gOSkNCgkJCSkNCgkJKQ0KCQlyZXR1cm47IC8v
IHNpbGVudCBleGl0DQoJCQ0KCS8vIHNldHVwIGhhbmRsZXJzIGV0Yw0KCUhhYXNJ
bml0KCk7DQoJDQoJdmFyIGhhYXNDb250ZXh0ID0gR2V0SGFhc0NvbnRleHQoKTsN
CgkNCgkvLyBhc2sgdGhlIHNlcnZlciB3aGF0IHRvIGRvDQoJSGFhc1JlcXVlc3RB
Y3Rpb24oaGFhc0NvbnRleHQpOw0KfQ0KDQpmdW5jdGlvbiBHZXRIYWFzQ29udGV4
dCgpDQp7DQoJLy8gZ2V0IGFydGljbGUgdGl0bGUgdXNpbmcgc3RhbmRhcmQgaHRt
bCB0YWdzDQoJdmFyIGFydGljbGVUaXRsZSA9ICQoImh0bWwgPiBoZWFkID4gdGl0
bGUiKVswXS50ZXh0Ow0KCQ0KCS8vIGdldCBhcnRpY2xlIG1ldGEgZGF0YQ0KCXZh
ciBhcnRpY2xlSWQgPSBHZXRNZXRhWlMoIm1ldGFbbmFtZT1yYnVuaXF1ZWlkMV0i
LCAiY29udGVudCIpOw0KCWlmIChhcnRpY2xlSWQgPT0gIiIpDQoJCWFydGljbGVJ
ZCA9IEdldE1ldGFaUygibWV0YVtuYW1lPXJidW5pcXVlSUQxXSIsICJjb250ZW50
Iik7DQoJdmFyIGFydGljbGVUYXhvbm9teSA9IEdldE1ldGFaUygibWV0YVtuYW1l
PXJidGF4b25vbXldIiwgImNvbnRlbnQiKTsNCgl2YXIgYXJ0aWNsZUluZHVzdHJ5
ID0gR2V0TWV0YVpTKCJtZXRhW25hbWU9cmJpbmR1c3RyeV0iLCAiY29udGVudCIp
Ow0KCXZhciBhcnRpY2xlQ29udGVudFR5cGUgPSBHZXRNZXRhWlMoIm1ldGFbbmFt
ZT1yYmNvbnRlbnR0eXBlXSIsICJjb250ZW50Iik7DQoJDQoJLy8gY3JlYXRlIGFu
IGNvbnRleHQgaW5zdGFuY2UgYmFzZWQgcmV0cmlldmVkIG1ldGFkYXRhDQoJdmFy
IGhhYXNDb250ZXh0ID0gSGFhc0NyZWF0ZUNvbnRleHQoYXJ0aWNsZUlkLCBhcnRp
Y2xlVGl0bGUsIGFydGljbGVUYXhvbm9teSwgYXJ0aWNsZUluZHVzdHJ5LCBhcnRp
Y2xlQ29udGVudFR5cGUpOw0KDQoJcmV0dXJuIGhhYXNDb250ZXh0Ow0KfQ0KDQpm
dW5jdGlvbiBHZXRNZXRhWlMobmFtZSwgYXR0cmlidXRlKQ0Kew0KCXZhciByZXN1
bHQgPSAiIjsNCgl2YXIgZWxlbWVudCA9ICQobmFtZSk7DQoJDQoJaWYgKGVsZW1l
bnQgIT0gbnVsbCAmJiBlbGVtZW50WzBdKQ0KCQlyZXN1bHQgPSBlbGVtZW50WzBd
LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpOw0KCQkNCglyZXR1cm4gcmVzdWx0Ow0K
fQ0KDQpmdW5jdGlvbiBIYWFzUmVxdWVzdEFjdGlvbihoYWFzQ29udGV4dCkNCnsN
Cgl2YXIgcmVxdWVzdFVybCA9IEdldFJlcXVlc3RBZGRyZXNzKCk7DQogDQoJdmFy
IGpzb25EdG8gPSBudWxsOw0KCQ0KCXRyeQ0KCXsNCgkJanNvbkR0byA9IEdldER0
b0pTT04oaGFhc0NvbnRleHQpOw0KCX0NCgljYXRjaCAoZSkNCgl7DQoJCWlmICho
YWFzSXNEZWJ1ZykNCgkJCWFsZXJ0KCJlOiAiICsgZSk7DQoJfQ0KCQ0KCWlmIChq
c29uRHRvID09IG51bGwpDQoJCXJldHVybjsNCg0KCXZhciBoYWFzQ29va2llID0g
ImhhYXNjb250ZXh0PSIgKyBlbmNvZGVVUklDb21wb25lbnQoanNvbkR0bykgKw0K
CQkiOyBwYXRoPS87IiArIC8vIG5vdCB0aGUgZG9jdW1lbnQgd2UgYXJlIGNhbGxl
ZCBmcm9tDQoJCSI7IGRvbWFpbj0uIiArIGRvY3VtZW50LmRvbWFpbiArIC8vIG1h
a2Ugc3VyZSBpdCBnZXRzIHNlbnQgdG8gc3ViZG9tYWluIHJlcXVlc3RzDQoJCSI7
IG1heC1hZ2U9MTAiICsgLy8gc2hvcnQgbGl2ZWQNCgkJIjsiOw0KCWRvY3VtZW50
LmNvb2tpZSA9IGhhYXNDb29raWU7DQoJDQoJJC5nZXRKU09OKHJlcXVlc3RVcmwg
KyAiP2NhbGxiYWNrPT8iLCBmdW5jdGlvbihkYXRhLCB0ZXh0U3RhdHVzKQ0KCXsN
CgkJaWYgKGRhdGEpDQoJCQlIYWFzUHJvY2Vzc0FjdGlvbnMoZGF0YSk7DQoJCWVs
c2UgaWYgKGhhYXNJc0RlYnVnKQ0KCQkJYWxlcnQodGV4dFN0YXR1cyk7DQoJfSk7
DQp9DQoNCmZ1bmN0aW9uIEdldFJlcXVlc3RBZGRyZXNzKCkNCnsJCQkNCgl2YXIg
cmVxdWVzdFVybCA9ICdodHRwOi8vJyArIEdldFJlcXVlc3REb21haW4oKSArICcv
UmVxdWVzdEFjdGlvbkNsaWVudC5hc3B4JzsNCgkNCglyZXR1cm4gcmVxdWVzdFVy
bDsNCn0NCg0KZnVuY3Rpb24gR2V0UmVxdWVzdERvbWFpbigpDQp7DQoJdmFyIGxv
Y2Fsc2l0ZSA9IGRvY3VtZW50LmRvbWFpbjsNCg0KCXZhciBkb21haW4gPSAnaGFh
cy4nICsgbG9jYWxzaXRlOw0KDQoJcmV0dXJuIGRvbWFpbjsNCn0NCg0KZnVuY3Rp
b24gR2V0RHRvSlNPTihoYWFzQ29udGV4dCkNCnsNCgkvLyBDcmVhdGUgYSBkYXRh
IHRyYW5zZmVyIG9iamVjdCAoRFRPKSB3aXRoIHRoZSBwcm9wZXIgc3RydWN0dXJl
Lg0KCXZhciBkdG8gPSB7ICdIYWFzQ29udGV4dCcgOiBoYWFzQ29udGV4dCB9Ow0K
DQoJLy8gc2VyaWFsaXplIHRoZSBkdG8gZm9yIHNlbmRpbmcgdG8gc2VydmVyDQoJ
dmFyIGpzb25EdG8gPSBudWxsOw0KCQ0KCWlmICh0eXBlb2YoSlNPTikgIT0gInVu
ZGVmaW5lZCIpDQoJCWpzb25EdG8gPSBKU09OLnN0cmluZ2lmeShkdG8pOw0KCQ0K
CXJldHVybiBqc29uRHRvOw0KfQ0KDQpmdW5jdGlvbiBIYWFzUHJvY2Vzc0FjdGlv
bnMoZHRvKQ0Kew0KCUhhYXNQcm9jZXNzQWN0aW9uUGFja2FnZShkdG8pOw0KfQ0K
DQpmdW5jdGlvbiBIYWFzUHJvY2Vzc0FjdGlvblBhY2thZ2UoaGFhc0FjdGlvblBh
Y2thZ2UpDQp7DQoJZm9yICh2YXIgYWN0aW9uT2Zmc2V0ID0gMDsgYWN0aW9uT2Zm
c2V0IDwgaGFhc0FjdGlvblBhY2thZ2UuSGFhc0FjdGlvbnMubGVuZ3RoOyBhY3Rp
b25PZmZzZXQrKykNCgl7CQ0KCQl2YXIgaGFhc0FjdGlvbiA9IGhhYXNBY3Rpb25Q
YWNrYWdlLkhhYXNBY3Rpb25zW2FjdGlvbk9mZnNldF07DQoJCQ0KCQlIYWFzUHJv
Y2Vzc0FjdGlvbihoYWFzQWN0aW9uKTsNCgl9DQp9DQoNCg0KdmFyIGhhYXNMYXN0
QWN0aW9uOw0KZnVuY3Rpb24gSGFhc1Byb2Nlc3NBY3Rpb24oaGFhc0FjdGlvbikN
CnsNCgl2YXIgYWN0aW9uVHlwZSA9IGhhYXNBY3Rpb24uVHlwZTsNCgkNCglzd2l0
Y2ggKGFjdGlvblR5cGUpDQoJew0KCQljYXNlICJTaG93RGlhZ25vc3RpY3MiOg0K
CQkJSGFhc0V4ZWN1dGVBY3Rpb25TaG93RGlhZ25vc3RpY3MoaGFhc0FjdGlvbik7
DQoJCQlicmVhazsNCgkJY2FzZSAiU2hvd092ZXJsYXkiOg0KCQkJSGFhc0V4ZWN1
dGVBY3Rpb25TaG93T3ZlcmxheShoYWFzQWN0aW9uKTsNCgkJCWJyZWFrOw0KCQlj
YXNlICJIaWRlT3ZlcmxheSI6DQoJCQlIYWFzRXhlY3V0ZUFjdGlvbkhpZGVPdmVy
bGF5KGhhYXNBY3Rpb24pOw0KCQkJYnJlYWs7DQoJCWNhc2UgIkVycm9yIjoNCgkJ
CWlmIChoYWFzSXNEZWJ1ZykNCgkJCQlIYWFzRXhlY3V0ZUFjdGlvblNob3dEaWFn
bm9zdGljcyhoYWFzQWN0aW9uKTsNCgkJCWJyZWFrOw0KCQljYXNlICJWYWxpZGF0
aW9uRXJyb3JzIjoNCgkJCUhhYXNFeGVjdXRlQWN0aW9uVmFsaWRhdGlvbkVycm9y
cyhoYWFzQWN0aW9uKTsNCgkJCWJyZWFrOw0KCQljYXNlICJSZWRpcmVjdCI6DQoJ
CQlIYWFzRXhlY3V0ZUFjdGlvblJlZGlyZWN0KGhhYXNBY3Rpb24pOw0KCQkJYnJl
YWs7DQoJCWNhc2UgIlBvc3RGb3JtIjoNCgkJCUhhYXNFeGVjdXRlQWN0aW9uUG9z
dEZvcm0oaGFhc0FjdGlvbik7DQoJCQlicmVhazsNCgkJZGVmYXVsdDoNCgkJCWlm
IChoYWFzSXNEZWJ1ZykNCgkJCQlIYWFzRXhlY3V0ZUFjdGlvblNob3dEaWFnbm9z
dGljcyhoYWFzQWN0aW9uLCAidW5rbm93biB0eXBlLCBibGFtZSA9PiBhc3NpZ24o
ZXJpaykiKTsNCgl9DQoJDQoJaGFhc0xhc3RBY3Rpb24gPSBoYWFzQWN0aW9uOwkN
Cn0NCg0KZnVuY3Rpb24gSGFhc0V4ZWN1dGVBY3Rpb25Qb3N0Rm9ybShoYWFzQWN0
aW9uKQ0Kew0KCUhhYXNFeGVjdXRlQWN0aW9uSGlkZU92ZXJsYXkoaGFhc0FjdGlv
bik7DQoJDQoJdmFyIHVybCA9IGhhYXNBY3Rpb24uQWN0aW9uRGF0YTsNCgl2YXIg
ZGF0YSA9IGhhYXNBY3Rpb24uRm9ybURhdGE7DQoJDQoJJC5wb3N0KHVybCwgZGF0
YSwgZnVuY3Rpb24oKQ0KCXsNCgkJLy8gcmVmcmVzaA0KCQloYWFzQWN0aW9uLkFj
dGlvbkRhdGEgPSBkb2N1bWVudC5sb2NhdGlvbjsNCgkJSGFhc0V4ZWN1dGVBY3Rp
b25SZWRpcmVjdChoYWFzQWN0aW9uKTsNCgl9KTsNCn0NCg0KZnVuY3Rpb24gSGFh
c0V4ZWN1dGVBY3Rpb25WYWxpZGF0aW9uRXJyb3JzKGhhYXNBY3Rpb24pDQp7DQoJ
Ly8gaGlkZSBwcmV2aW91cyBlcnJvcnMNCgkkKCIjaGFhc0Zvcm0gKiIpLnJlbW92
ZUNsYXNzKCJoYWFzVmFsaWRhdGlvbkVycm9yIik7DQoJJCgiI2hhYXNGb3JtICoi
KS5yZW1vdmVDbGFzcygiaGFhc1ZhbGlkYXRpb25FcnJvcklucHV0Iik7DQoJJCgi
I2hhYXNGb3JtIFNQQU5bQ0xBU1M9ZXJyb3JdIikuaHRtbCgiIik7DQoNCiAgICAv
LyBlbmFibGUgc3VibWl0IGJ1dHRvbnMNCgl2YXIgc3VibWl0QnV0dG9uID0gJCgk
KCIjaGFhc0Zvcm0gKiIpLCAiaW5wdXRbdHlwZT0nc3VibWl0J10iKTsNCgkkKHN1
Ym1pdEJ1dHRvbikucmVtb3ZlQXR0cigiZGlzYWJsZWQiKTsNCgkNCgl2YXIgZWxl
bWVudHMgPSBoYWFzQWN0aW9uLkFjdGlvbkRhdGE7DQoJDQoJdmFyIGl0ZW1zID0g
ZWxlbWVudHMubGVuZ3RoOw0KCQ0KCWZvciAodmFyIGVsZW1lbnRPZmZzZXQgPSAw
OyBlbGVtZW50T2Zmc2V0IDwgaXRlbXM7IGVsZW1lbnRPZmZzZXQrKykNCgl7DQoJ
CXZhciBlbGVtZW50ID0gZWxlbWVudHNbZWxlbWVudE9mZnNldF07DQoJCQ0KCQl2
YXIgbmFtZSA9IGVsZW1lbnRbMF07DQoJCXZhciB0ZXh0ID0gZWxlbWVudFsxXTsN
CgkJDQoJCXZhciBmaXJzdEVycm9yID0gdHJ1ZTsNCgkJdmFyIGVsZW1lbnRTZWxl
Y3RvciA9ICgiKltuYW1lPSIgKyBuYW1lICsgIl0iKTsNCgkJDQoJCS8qDQoJCSAq
CTxESVYgQ0xBU1M9ImZvcm1GaWVsZCI+DQoJCSAqCQk8U1BBTiBDTEFTUz0ibGFi
ZWwiPkZsYWcwPC9TUEFOPg0KCQkgKgkJPFNQQU4gQ0xBU1M9Im1hbmRhdG9yeSI+
KjwvU1BBTj4NCgkJICoJCTxTUEFOIENMQVNTPSJ2YWx1ZSI+PElOUFVUIFRZUEU9
IkNIRUNLQk9YIiBuYW1lPSIwMjc5YTE1ZC00NmZhLTRmMWMtOTBkZi02YTFlNmZh
NzVhOTkiIC8+PC9TUEFOPg0KCQkgKgkJPFNQQU4gQ0xBU1M9ImVycm9yIj48L1NQ
QU4+DQoJCSAqCTwvRElWPg0KCQkgKi8gDQoJCXZhciBmaWVsZElucHV0ID0gJChl
bGVtZW50U2VsZWN0b3IpOw0KCQl2YXIgZmllbGRWYWx1ZSA9IGZpZWxkSW5wdXQu
cGFyZW50KCk7DQoJCXZhciBmaWVsZERpdiA9IGZpZWxkVmFsdWUucGFyZW50KCk7
DQoJCQ0KCQkvLyBoYW5kbGUgbXVsdGktdmFsdWUgZmllbGRzDQoJCWlmIChmaWVs
ZERpdi5wYXJlbnQoKS5hdHRyKCJjbGFzcyIpID09ICJ2YWx1ZXMiKQ0KCQkJZmll
bGREaXYgPSBmaWVsZERpdi5wYXJlbnQoKS5wYXJlbnQoKTsNCgkJCQ0KCQl2YXIg
ZmllbGRFcnJvciA9IGZpZWxkRGl2LmNoaWxkcmVuKCJTUEFOW0NMQVNTPWVycm9y
XSIpDQoJCXZhciBmaWVsZExhYmVsID0gZmllbGREaXYuY2hpbGRyZW4oIlNQQU5b
Q0xBU1M9bGFiZWxdIikNCgkJDQoJCWZpZWxkTGFiZWwuYWRkQ2xhc3MoImhhYXNW
YWxpZGF0aW9uRXJyb3IiKTsNCgkJZmllbGRFcnJvci5hZGRDbGFzcygiaGFhc1Zh
bGlkYXRpb25FcnJvciIpOw0KCQlmaWVsZFZhbHVlLmFkZENsYXNzKCJoYWFzVmFs
aWRhdGlvbkVycm9ySW5wdXQiKTsNCgkJZmllbGRFcnJvci5odG1sKHRleHQpOw0K
CQkNCgkJLy8gc2V0IGZvY3VzIHRvIHRoZSBmaXJzdCBmaWVsZCB0aGF0IGhhcyBh
biBlcnJvcg0KCQlpZiAoZmlyc3RFcnJvcikNCgkJCWZpZWxkSW5wdXQuZm9jdXMo
KTsJDQoJCWZpcnN0RXJyb3IgPSBmYWxzZTsNCgl9DQp9DQoNCmZ1bmN0aW9uIENs
b3NlT3ZlcmxheSgpIHsNCiAgICBIYWFzRXhlY3V0ZUFjdGlvbkhpZGVPdmVybGF5
KCk7DQogICAgd2luZG93LmxvY2F0aW9uID0gZG9jdW1lbnQubG9jYXRpb247DQp9
DQoNCmZ1bmN0aW9uIEhhYXNFeGVjdXRlQWN0aW9uUmVkaXJlY3QoaGFhc0FjdGlv
bikNCnsNCgl3aW5kb3cubG9jYXRpb24gPSBoYWFzQWN0aW9uLkFjdGlvbkRhdGE7
DQp9DQoNCnZhciBrZXlzID0gbmV3IEFycmF5KCk7DQpmdW5jdGlvbiBIYWFzSW5p
dCgpDQp7DQoJaWYgKGhhYXNJc0RlYnVnKQ0KCXsNCgkJJCgiYm9keSIpLmtleXBy
ZXNzKGZ1bmN0aW9uIChlKQ0KCQl7DQoJCQlrZXlzLnB1c2goU3RyaW5nLmZyb21D
aGFyQ29kZShlLndoaWNoKSk7DQoJCQkNCgkJCXZhciB3b3JkID0ga2V5cy5qb2lu
KCIiKTsNCgkJCWlmICh3b3JkLm1hdGNoKCJoYWFzZGVidWciKSkNCgkJCXsNCgkJ
CQlIYWFzRXhlY3V0ZUFjdGlvblNob3dEaWFnbm9zdGljcygpOw0KCQkJCWtleXMu
bGVuZ3RoID0gMDsNCgkJCX0NCgkJfSk7DQoJfQ0KfQ0KDQpmdW5jdGlvbiBIYWFz
RXhlY3V0ZUFjdGlvbkhpZGVPdmVybGF5KGhhYXNBY3Rpb24pDQp7DQoJJCgiI2hh
YXNPdmVybGF5IikucmVtb3ZlKCk7DQoJJCgiI2hhYXNEaWFnbm9zdGljcyIpLnJl
bW92ZSgpOw0KCSQoIiNmYWRlQmFja2dyb3VuZCIpLnJlbW92ZSgpOw0KfQ0KDQp2
YXIgSEFBU19DT05TVF9CVVRUT05QUkVTU0VEID0gImJ1dHRvbiI7DQoNCmZ1bmN0
aW9uIEhhYXNTdWJtaXRBY3Rpb24oZG9tQnV0dG9uKSB7DQogICAgdmFyIGJ1dHRv
biA9IEhhYXNDcmVhdGVCdXR0b24oZG9tQnV0dG9uKTsNCiAgICAkKCIjaGFhc0Zv
cm0iKS5kYXRhKEhBQVNfQ09OU1RfQlVUVE9OUFJFU1NFRCwgYnV0dG9uKTsNCiAg
ICAkKCIjaGFhc0Zvcm0iKS5zdWJtaXQoKTsNCiAgICByZXR1cm4gZmFsc2U7DQp9
DQoNCmZ1bmN0aW9uIEhhYXNFeGVjdXRlQWN0aW9uU2hvd092ZXJsYXkoaGFhc0Fj
dGlvbikNCnsNCglIYWFzRXhlY3V0ZUFjdGlvbkhpZGVPdmVybGF5KGhhYXNBY3Rp
b24pOw0KCQ0KCXZhciBjb250ZW50ID0gIjxkaXYgaWQ9J2hhYXNPdmVybGF5Jz48
ZGl2IGlkPSdoYWFzQ2FudmFzJz4iOw0KCWNvbnRlbnQgKz0gaGFhc0FjdGlvbi5B
Y3Rpb25EYXRhOw0KCWNvbnRlbnQgKz0gIjwvZGl2PjwvZGl2PjxkaXYgaWQ9J2Zh
ZGVCYWNrZ3JvdW5kJz48L2Rpdj4iDQoJDQoJJCgiYm9keSIpLmFwcGVuZChjb250
ZW50KTsNCgkNCgkkKCIjaGFhc0Zvcm0gaW5wdXRbdHlwZT1zdWJtaXRdIikuY2xp
Y2soZnVuY3Rpb24oZXZlbnQpDQoJewkJCQ0KCQl2YXIgYnV0dG9uID0gSGFhc0Ny
ZWF0ZUJ1dHRvbih0aGlzKTsNCgkJDQoJCSQoIiNoYWFzRm9ybSIpLmRhdGEoSEFB
U19DT05TVF9CVVRUT05QUkVTU0VELCBidXR0b24pOw0KCX0pOw0KCQ0KCS8vIGZv
cm0gc3VibWlzc2lvbnMgc2hvdWxkIGJlIGNvbnZlcnRlZCBpbnRvDQoJLy8gcmVx
dWVzdHMgdG8gc2VydmVyIHdpdGggZGF0YSBpbiB0aGUgY29udGV4dA0KCSQoIiNo
YWFzRm9ybSIpLnN1Ym1pdChmdW5jdGlvbigpIHsNCg0KCSAgICAvLyBkaXNhYmxl
IHRoZSBzdWJtaXRidXR0b25zDQoJICAgIHZhciBzdWJtaXRCdXR0b24gPSAkKCQo
IiNoYWFzRm9ybSAqIiksICJpbnB1dFt0eXBlPSdzdWJtaXQnXSIpOw0KCSAgICAk
KHN1Ym1pdEJ1dHRvbikuYXR0cigiZGlzYWJsZWQiLCAiZGlzYWJsZWQiKTsNCg0K
CSAgICB2YXIgaXRlbXMgPSB0aGlzLmVsZW1lbnRzLmxlbmd0aDsNCgkgICAgdmFy
IGZvcm1EYXRhID0gbmV3IEFycmF5KGl0ZW1zKTsgLy8gaW5jIGJ1dHRvbg0KCSAg
ICB2YXIgb3V0cHV0TG9jYXRpb24gPSAwOw0KDQoJICAgIGZvciAodmFyIGVsZW1l
bnRPZmZzZXQgPSAwOyBlbGVtZW50T2Zmc2V0IDwgaXRlbXM7IGVsZW1lbnRPZmZz
ZXQrKykgew0KCSAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRzW2Vs
ZW1lbnRPZmZzZXRdOw0KDQoJICAgICAgICB2YXIga2V5ID0gZWxlbWVudC5uYW1l
Ow0KCSAgICAgICAgdmFyIHZhbHVlID0gZWxlbWVudC52YWx1ZTsNCg0KCSAgICAg
ICAgLyppZiAoJChlbGVtZW50KS5hdHRyKCJ0eXBlIikgPT0gImNoZWNrYm94IiB8
fCAkKGVsZW1lbnQpLmF0dHIoInR5cGUiKSA9PSAicmFkaW8iKQ0KCSAgICAgICAg
ew0KCSAgICAgICAgdmFsdWUgPSAib2ZmIjsNCgkgICAgICAgIGlmICgkKGVsZW1l
bnQpLmlzKCc6Y2hlY2tlZCcpKQ0KCSAgICAgICAgdmFsdWUgPSAib24iOw0KCSAg
ICAgICAgfSovDQoNCgkgICAgICAgIGlmICgkKGVsZW1lbnQpLmF0dHIoInR5cGUi
KSA9PSAiY2hlY2tib3giIHx8ICQoZWxlbWVudCkuYXR0cigidHlwZSIpID09ICJy
YWRpbyIpIHsNCgkgICAgICAgICAgICB2YWx1ZSA9ICJvZmYiOw0KDQoJICAgICAg
ICAgICAgaWYgKCQoZWxlbWVudCkucGFyZW50KCkucGFyZW50KCkucGFyZW50KCku
YXR0cigiY2xhc3MiKSA9PSAidmFsdWVzIikNCgkgICAgICAgICAgICAgICAgdmFs
dWUgPSBudWxsOw0KDQoJICAgICAgICAgICAgaWYgKCQoZWxlbWVudCkuaXMoJzpj
aGVja2VkJykpDQoJICAgICAgICAgICAgICAgIHZhbHVlID0gJChlbGVtZW50KS5h
dHRyKCJ2YWx1ZSIpOw0KCSAgICAgICAgfQ0KDQoJICAgICAgICB2YXIga3ZwID0g
TWFrZUtleVZhbHVlUGFpcihrZXksIHZhbHVlKTsNCgkgICAgICAgIGlmICghSXNO
dWxsT3JCbGFuayhrdnBbMV0pKQ0KCSAgICAgICAgICAgIGZvcm1EYXRhW291dHB1
dExvY2F0aW9uKytdID0ga3ZwOw0KCSAgICB9DQoNCgkgICAgLy8gcmVjb3JkIHRo
ZSBidXR0b24gdGhhdCBzdWJtaXR0ZWQgdGhlIGZvcm0NCgkgICAgdmFyIGt2cEJ1
dHRvbiA9IG51bGw7DQoJICAgIHZhciBidXR0b24gPSAkKCIjaGFhc0Zvcm0iKS5k
YXRhKEhBQVNfQ09OU1RfQlVUVE9OUFJFU1NFRCk7DQoJICAgIGlmIChidXR0b24g
IT0gbnVsbCkgew0KCSAgICAgICAga3ZwQnV0dG9uID0gTWFrZUtleVZhbHVlUGFp
cigiQnV0dG9uIiwgYnV0dG9uLklkKTsNCgkgICAgICAgIGZvcm1EYXRhW291dHB1
dExvY2F0aW9uXSA9IGt2cEJ1dHRvbjsNCgkgICAgfQ0KDQoJICAgIGZvcm1EYXRh
Lmxlbmd0aCA9IG91dHB1dExvY2F0aW9uICsgMTsNCgkgICAgdmFyIGhhYXNDb250
ZXh0ID0gR2V0SGFhc0NvbnRleHQoKTsNCgkgICAgLy8gcGFzcyB0aGUgZm9ybSBk
YXRhIGluIHRoZSBjb250ZXh0DQoJICAgIGhhYXNDb250ZXh0LkZvcm1EYXRhID0g
Zm9ybURhdGE7DQoJICAgIEhhYXNSZXF1ZXN0QWN0aW9uKGhhYXNDb250ZXh0KTsN
Cg0KCSAgICByZXR1cm4gZmFsc2U7IC8vIHN0b3AgdGhlIHN1Ym1pc3Npb24NCgl9
KTsNCn0NCg0KZnVuY3Rpb24gSXNOdWxsT3JCbGFuayh2YWx1ZSkNCnsNCglyZXR1
cm4gKHZhbHVlID09IG51bGwgfHwgdmFsdWUgPT0gIiIpOw0KfQ0KDQpmdW5jdGlv
biBNYWtlS2V5VmFsdWVQYWlyKGtleSwgdmFsdWUpDQp7DQoJdmFyIGt2cCA9IG5l
dyBBcnJheSgyKTsNCgkNCglrdnBbMF0gPSBrZXk7DQoJa3ZwWzFdID0gdmFsdWU7
DQoNCglyZXR1cm4ga3ZwOw0KfQ0KDQpmdW5jdGlvbiBIYWFzQ3JlYXRlQnV0dG9u
KGRvbUJ1dHRvbikNCnsNCgl2YXIgYnV0dG9uID0gbmV3IE9iamVjdCgpOw0KCQ0K
CWJ1dHRvbi5WYWx1ZSA9ICQoZG9tQnV0dG9uKS52YWwoKTsNCglidXR0b24uSWQg
PSAkKGRvbUJ1dHRvbikuYXR0cigiaWQiKTsNCgkNCglyZXR1cm4gYnV0dG9uOw0K
fQ0KCQ0KZnVuY3Rpb24gSGFhc0V4ZWN1dGVBY3Rpb25TaG93RGlhZ25vc3RpY3Mo
aGFhc0FjdGlvbiwgcmVhc29uKQ0Kew0KCUhhYXNFeGVjdXRlQWN0aW9uSGlkZU92
ZXJsYXkoaGFhc0FjdGlvbik7DQoJDQoJdmFyIGhhYXNDb250ZXh0ID0gR2V0SGFh
c0NvbnRleHQoKTsNCgl2YXIganNvbkR0byA9IEdldER0b0pTT04oaGFhc0NvbnRl
eHQpLnJlcGxhY2UoL3svZywgIjxici8+eyAiKS5yZXBsYWNlKC8sL2csICIsPGJy
Lz4iKTsNCgl2YXIgcmVxdWVzdFVybCA9IEdldFJlcXVlc3RBZGRyZXNzKCk7DQoJ
DQoJdmFyIGNvbnRlbnQgPSAiPGRpdiBpZD0naGFhc0RpYWdub3N0aWNzJz48ZGl2
IGlkPSdoYWFzQ2FudmFzJz48YnIvPjxoMT5IYWFzIERpYWdub3N0aWNzIjsNCglp
ZiAocmVhc29uICE9IG51bGwpDQoJCWNvbnRlbnQgKz0gIiAtICIgKyByZWFzb247
DQoJY29udGVudCArPSAiPC9oMT4iDQoJY29udGVudCArPSAiQ2xpZW50PC9icj4i
DQoJY29udGVudCArPSAiPHNwYW4gY2xhc3M9J2hhYXNEaWFnTGFiZWwnPlJlcXVl
c3QgVVJMPC9zcGFuPjogIiArIHJlcXVlc3RVcmwgKyAiPGJyLz4iOw0KCWNvbnRl
bnQgKz0gIjxzcGFuIGNsYXNzPSdoYWFzRGlhZ0xhYmVsJz5EVE88L3NwYW4+OiIg
KyBqc29uRHRvICsgIjxicj4iOw0KCWNvbnRlbnQgKz0gIjxzcGFuIGNsYXNzPSdo
YWFzRGlhZ0xhYmVsJz5Eb2N1bWVudCBEb21haW48L3NwYW4+OiAiICsgZG9jdW1l
bnQuZG9tYWluICsgIjxici8+IjsNCg0KCWNvbnRlbnQgKz0gIjxici8+U2VydmVy
PGJyLz4iOw0KCWlmIChoYWFzQWN0aW9uID09IG51bGwpDQoJCWhhYXNBY3Rpb24g
PSBoYWFzTGFzdEFjdGlvbjsNCg0KCWlmIChoYWFzQWN0aW9uICE9IG51bGwpDQoJ
CWNvbnRlbnQgKz0gIjxzcGFuIGNsYXNzPSdoYWFzRGlhZ0xhYmVsJz5UeXBlPC9z
cGFuPjogIiArIGhhYXNBY3Rpb24uVHlwZSArICI8YnIvPiI7DQoJCQ0KCWlmICho
YWFzQWN0aW9uICE9IG51bGwpDQoJew0KCQljb250ZW50ICs9ICI8c3BhbiBjbGFz
cz0naGFhc0RpYWdMYWJlbCc+RFRPPC9zcGFuPjogIjsNCgkJY29udGVudCArPSBK
U09OLnN0cmluZ2lmeShoYWFzQWN0aW9uKS5yZXBsYWNlKC9cbi9nLCAiPGJyLz4i
KTsNCgl9DQoJZWxzZQ0KCQljb250ZW50ICs9ICJObyBzZXJ2ZXIgZGF0YSEiOw0K
CWNvbnRlbnQgKz0gIjxici8+PGltZyBzcmM9J2h0dHA6Ly8iICsgR2V0UmVxdWVz
dERvbWFpbigpICsgIi9pbWFnZXMvN29mOS5qcGcnIGhlaWdodD0nMzQ0Jz4iOw0K
CS8vY29udGVudCArPSAiPGJyLz5EaWFnbm9zdGljcyBlbmQuIDxkaXYgaWQ9J2hh
YXNPdmVybGF5Q2xvc2UnIG9uY2xpY2s9JyQoXCIjaGFhc0RpYWdub3N0aWNzXCIp
LnJlbW92ZSgpJz5beF0gY2xvc2U8L2Rpdj4iOw0KCS8vY29udGVudCArPSAiPG9i
amVjdCB3aWR0aD0nNDI1JyBoZWlnaHQ9JzM0NCc+PHBhcmFtIG5hbWU9J21vdmll
JyB2YWx1ZT0naHR0cDovL3d3dy55b3V0dWJlLmNvbS92L1ZDR2NsanFPU1cwJmhs
PWVuJmZzPTEmJz48L3BhcmFtPjxwYXJhbSBuYW1lPSdhbGxvd0Z1bGxTY3JlZW4n
IHZhbHVlPSd0cnVlJz48L3BhcmFtPjxwYXJhbSBuYW1lPSdhbGxvd3NjcmlwdGFj
Y2VzcycgdmFsdWU9J2Fsd2F5cyc+PC9wYXJhbT48ZW1iZWQgc3JjPSdodHRwOi8v
d3d3LnlvdXR1YmUuY29tL3YvVkNHY2xqcU9TVzAmaGw9ZW4mZnM9MSYnIHR5cGU9
J2FwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoJyBhbGxvd3NjcmlwdGFjY2Vz
cz0nYWx3YXlzJyBhbGxvd2Z1bGxzY3JlZW49J3RydWUnIHdpZHRoPSc0MjUnIGhl
aWdodD0nMzQ0Jz48L2VtYmVkPjwvb2JqZWN0PjwvZGl2PiI7DQoJY29udGVudCAr
PSAiPC9kaXY+IjsNCgkvL2NvbnRlbnQgKz0gIjwvZGl2PjwvZGl2PiI7DQoJDQoJ
JCgiYm9keSIpLmFwcGVuZChjb250ZW50KTsNCn0NCg0KZnVuY3Rpb24gSGFhc0Ny
ZWF0ZUNvbnRleHQoYXJ0aWNsZUlkLCBhcnRpY2xlVGl0bGUsIGFydGljbGVUYXhv
bm9teSwgYXJ0aWNsZUluZHVzdHJ5LCBhcnRpY2xlQ29udGVudFR5cGUpDQp7DQoJ
dmFyIGhhYXNDb250ZXh0ID0gbmV3IE9iamVjdCgpOw0KCQ0KCWhhYXNDb250ZXh0
LkFydGljbGVJZCA9IGFydGljbGVJZDsNCgloYWFzQ29udGV4dC5BcnRpY2xlVGl0
bGUgPSBhcnRpY2xlVGl0bGU7DQoJaGFhc0NvbnRleHQuQXJ0aWNsZVRheG9ub215
ID0gYXJ0aWNsZVRheG9ub215Ow0KCWhhYXNDb250ZXh0LkFydGljbGVJbmR1c3Ry
eSA9IGFydGljbGVJbmR1c3RyeTsNCgloYWFzQ29udGV4dC5BcnRpY2xlQ29udGVu
dFR5cGUgPSBhcnRpY2xlQ29udGVudFR5cGU7DQoJaGFhc0NvbnRleHQuSmF2YVNj
cmlwdElkID0gaGFhc0pzSWQ7DQoJaGFhc0NvbnRleHQuUmVmZXJyZXIgPSBkb2N1
bWVudC5yZWZlcnJlcjsNCgloYWFzQ29udGV4dC5Gb3JtRGF0YSA9IG51bGw7DQoJ
DQoJcmV0dXJuIGhhYXNDb250ZXh0Ow0KfQ==

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=HaasCoreV0.1.css
Content-Type: text/css; charset=utf-8; name=HaasCoreV0.1.css
Content-Location: http://haas.newscientist.com/HaasCoreV0.1.css
Content-Transfer-Encoding: 8bit

﻿#haasOverlay, #haasDiagnostics
{
	background-color: Transparent;
	
	/*filter:alpha(opacity=50);
	-moz-opacity:.5;
	-khtml-opacity: .5;
	opacity: .5;*/
	
	position: absolute;	
	top: 0;
	left: 0;
	width: 100%;
	height: auto;

	text-align: center;
	z-index: 1000000 ; /* float above all content */
}

#haasOverlay, #haasDiagnostics
{
	text-align: -moz-center;
	text-align: -khtml-center;
}

#fadeBackground{
	display: block;
	position: absolute;
	top: 0%;
	left: 0%;
	width: 100%;
	height: 10000px;
	background-color: black;
	-moz-opacity: 0.95;
	opacity:.95;
	filter: alpha(opacity=95);
	z-index: 999999 ; /* float above all content */
}

/* prevent haas from cluttering print outs */
@media print
{
	#haasOverlay, #haasDiagnostics
	{
		display: none;
	}
}

#haasCanvas
{
	/*text-align: left;  stop local css center alignment */
	
	position: relative;
	height: auto;
	width: auto;
}

#haasCanvas > *
{
	text-align: left;
}

/*#haasCanvas > div
{
	background-color: white;
}*/

.haasDiagLabel
{
	color: Red;
}

#haasDiagnostics
{
	background-color: black;
	color: Lime;
	text-align: left;
}

.haasValidationError
{
	color: Red;
}

.haasValidationErrorInput
{
	border: solid 3px red;
}

#haasForm
{
}

#haasForm div
{
}

#haasForm div span.label
{
	border-right: solid 10px transparent;
}

#haasForm div span.value
{
}

.haasFieldNoWrap
{
	float: left;
	border-right: solid 10px transparent;
}


------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=jquery.min.js
Content-Type: text/javascript; charset=UTF-8; name=jquery.min.js
Content-Location: http://www.newscientist.com/script/jquery.min.js
Content-Transfer-Encoding: Quoted-Printable

/*
 * jQuery 1.2.6 - New Wave Javascript
 *
 * Copyright (c) 2008 John Resig (jquery.com)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * $Date: 2008-09-22 16:09:49 $
 * $Rev: 5685 $
 */
(function(){var _jQuery=3Dwindow.jQuery,_$=3Dwindow.$;var jQuery=3Dwindo=
w.jQuery=3Dwindow.$=3Dfunction(selector,context){return new jQuery.fn.in=
it(selector,context);};var quickExpr=3D/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$=
/,isSimple=3D/^.[^:#\[\.]*$/,undefined;jQuery.fn=3DjQuery.prototype=3D{i=
nit:function(selector,context){selector=3Dselector||document;if(selector=
.nodeType){this[0]=3Dselector;this.length=3D1;return this;}if(typeof sel=
ector=3D=3D"string"){var match=3DquickExpr.exec(selector);if(match&&(mat=
ch[1]||!context)){if(match[1])selector=3DjQuery.clean([match[1]],context=
);else{var elem=3Ddocument.getElementById(match[3]);if(elem){if(elem.id!=
=3Dmatch[3])return jQuery().find(selector);return jQuery(elem);}selector=
=3D[];}}else
return jQuery(context).find(selector);}else if(jQuery.isFunction(selecto=
r))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);ret=
urn this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:func=
tion(){return this.length;},length:0,get:function(num){return num=3D=3Du=
ndefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){va=
r ret=3DjQuery(elems);ret.prevObject=3Dthis;return ret;},setArray:functi=
on(elems){this.length=3D0;Array.prototype.push.apply(this,elems);return =
this;},each:function(callback,args){return jQuery.each(this,callback,arg=
s);},index:function(elem){var ret=3D-1;return jQuery.inArray(elem&&elem.=
jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=3D=
name;if(name.constructor=3D=3DString)if(value=3D=3D=3Dundefined)return t=
his[0]&&jQuery[type||"attr"](this[0],name);else{options=3D{};options[nam=
e]=3Dvalue;}return this.each(function(i){for(name in options)jQuery.attr=
(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));=
});},css:function(key,value){if((key=3D=3D'width'||key=3D=3D'height')&&p=
arseFloat(value)<0)value=3Dundefined;return this.attr(key,value,"curCSS"=
);},text:function(text){if(typeof text!=3D"object"&&text!=3Dnull)return =
this.empty().append((this[0]&&this[0].ownerDocument||document).createTex=
tNode(text));var ret=3D"";jQuery.each(text||this,function(){jQuery.each(=
this.childNodes,function(){if(this.nodeType!=3D8)ret+=3Dthis.nodeType!=3D=
1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:funct=
ion(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBe=
fore(this[0]).map(function(){var elem=3Dthis;while(elem.firstChild)elem=3D=
elem.firstChild;return elem;}).append(this);return this;},wrapInner:func=
tion(html){return this.each(function(){jQuery(this).contents().wrapAll(h=
tml);});},wrap:function(html){return this.each(function(){jQuery(this).w=
rapAll(html);});},append:function(){return this.domManip(arguments,true,=
false,function(elem){if(this.nodeType=3D=3D1)this.appendChild(elem);});}=
,prepend:function(){return this.domManip(arguments,true,true,function(el=
em){if(this.nodeType=3D=3D1)this.insertBefore(elem,this.firstChild);});}=
,before:function(){return this.domManip(arguments,false,false,function(e=
lem){this.parentNode.insertBefore(elem,this);});},after:function(){retur=
n this.domManip(arguments,false,true,function(elem){this.parentNode.inse=
rtBefore(elem,this.nextSibling);});},end:function(){return this.prevObje=
ct||jQuery([]);},find:function(selector){var elems=3DjQuery.map(this,fun=
ction(elem){return jQuery.find(selector,elem);});return this.pushStack(/=
[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(ele=
ms):elems);},clone:function(events){var ret=3Dthis.map(function(){if(jQu=
ery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=3Dthis.cloneNode(tru=
e),container=3Ddocument.createElement("div");container.appendChild(clone=
);return jQuery.clean([container.innerHTML])[0];}else
return this.cloneNode(true);});var clone=3Dret.find("*").andSelf().each(=
function(){if(this[expando]!=3Dundefined)this[expando]=3Dnull;});if(even=
ts=3D=3D=3Dtrue)this.find("*").andSelf().each(function(i){if(this.nodeTy=
pe=3D=3D3)return;var events=3DjQuery.data(this,"events");for(var type in=
 events)for(var handler in events[type])jQuery.event.add(clone[i],type,e=
vents[type][handler],events[type][handler].data);});return ret;},filter:=
function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQ=
uery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.=
multiFilter(selector,this));},not:function(selector){if(selector.constru=
ctor=3D=3DString)if(isSimple.test(selector))return this.pushStack(jQuery=
.multiFilter(selector,this,true));else
selector=3DjQuery.multiFilter(selector,this);var isArrayLike=3Dselector.=
length&&selector[selector.length-1]!=3D=3Dundefined&&!selector.nodeType;=
return this.filter(function(){return isArrayLike?jQuery.inArray(this,sel=
ector)<0:this!=3Dselector;});},add:function(selector){return this.pushSt=
ack(jQuery.unique(jQuery.merge(this.get(),typeof selector=3D=3D'string'?=
jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){r=
eturn!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:f=
unction(selector){return this.is("."+selector);},val:function(value){if(=
value=3D=3Dundefined){if(this.length){var elem=3Dthis[0];if(jQuery.nodeN=
ame(elem,"select")){var index=3Delem.selectedIndex,values=3D[],options=3D=
elem.options,one=3Delem.type=3D=3D"select-one";if(index<0)return null;fo=
r(var i=3Done?index:0,max=3Done?index+1:options.length;i<max;i++){var op=
tion=3Doptions[i];if(option.selected){value=3DjQuery.browser.msie&&!opti=
on.attributes.value.specified?option.text:option.value;if(one)return val=
ue;values.push(value);}}return values;}else
return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.=
constructor=3D=3DNumber)value+=3D'';return this.each(function(){if(this.=
nodeType!=3D1)return;if(value.constructor=3D=3DArray&&/radio|checkbox/.t=
est(this.type))this.checked=3D(jQuery.inArray(this.value,value)>=3D0||jQ=
uery.inArray(this.name,value)>=3D0);else if(jQuery.nodeName(this,"select=
")){var values=3DjQuery.makeArray(value);jQuery("option",this).each(func=
tion(){this.selected=3D(jQuery.inArray(this.value,values)>=3D0||jQuery.i=
nArray(this.text,values)>=3D0);});if(!values.length)this.selectedIndex=3D=
-1;}else
this.value=3Dvalue;});},html:function(value){return value=3D=3Dundefined=
?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWi=
th:function(value){return this.after(value).remove();},eq:function(i){re=
turn this.slice(i,i+1);},slice:function(){return this.pushStack(Array.pr=
ototype.slice.apply(this,arguments));},map:function(callback){return thi=
s.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i=
,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:=
function(key,value){var parts=3Dkey.split(".");parts[1]=3Dparts[1]?"."+p=
arts[1]:"";if(value=3D=3D=3Dundefined){var data=3Dthis.triggerHandler("g=
etData"+parts[1]+"!",[parts[0]]);if(data=3D=3D=3Dundefined&&this.length)=
data=3DjQuery.data(this[0],key);return data=3D=3D=3Dundefined&&parts[1]?=
this.data(parts[0]):data;}else
return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(functi=
on(){jQuery.data(this,key,value);});},removeData:function(key){return th=
is.each(function(){jQuery.removeData(this,key);});},domManip:function(ar=
gs,table,reverse,callback){var clone=3Dthis.length>1,elems;return this.e=
ach(function(){if(!elems){elems=3DjQuery.clean(args,this.ownerDocument);=
if(reverse)elems.reverse();}var obj=3Dthis;if(table&&jQuery.nodeName(thi=
s,"table")&&jQuery.nodeName(elems[0],"tr"))obj=3Dthis.getElementsByTagNa=
me("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody=
"));var scripts=3DjQuery([]);jQuery.each(elems,function(){var elem=3Dclo=
ne?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))sc=
ripts=3Dscripts.add(elem);else{if(elem.nodeType=3D=3D1)scripts=3Dscripts=
.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts=
.each(evalScript);});}};jQuery.fn.init.prototype=3DjQuery.fn;function ev=
alScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataT=
ype:"script"});else
jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(el=
em.parentNode)elem.parentNode.removeChild(elem);}function now(){return+n=
ew Date;}jQuery.extend=3DjQuery.fn.extend=3Dfunction(){var target=3Dargu=
ments[0]||{},i=3D1,length=3Darguments.length,deep=3Dfalse,options;if(tar=
get.constructor=3D=3DBoolean){deep=3Dtarget;target=3Darguments[1]||{};i=3D=
2;}if(typeof target!=3D"object"&&typeof target!=3D"function")target=3D{}=
;if(length=3D=3Di){target=3Dthis;--i;}for(;i<length;i++)if((options=3Dar=
guments[i])!=3Dnull)for(var name in options){var src=3Dtarget[name],copy=
=3Doptions[name];if(target=3D=3D=3Dcopy)continue;if(deep&&copy&&typeof c=
opy=3D=3D"object"&&!copy.nodeType)target[name]=3DjQuery.extend(deep,src|=
|(copy.length!=3Dnull?[]:{}),copy);else if(copy!=3D=3Dundefined)target[n=
ame]=3Dcopy;}return target;};var expando=3D"jQuery"+now(),uuid=3D0,windo=
wData=3D{},exclude=3D/z-?index|font-?weight|opacity|zoom|line-?height/i,=
defaultView=3Ddocument.defaultView||{};jQuery.extend({noConflict:functio=
n(deep){window.$=3D_$;if(deep)window.jQuery=3D_jQuery;return jQuery;},is=
Function:function(fn){return!!fn&&typeof fn!=3D"string"&&!fn.nodeName&&f=
n.constructor!=3DArray&&/^[\s[]?function/.test(fn+"");},isXMLDoc:functio=
n(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.owne=
rDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=3Dj=
Query.trim(data);if(data){var head=3Ddocument.getElementsByTagName("head=
")[0]||document.documentElement,script=3Ddocument.createElement("script"=
);script.type=3D"text/javascript";if(jQuery.browser.msie)script.text=3Dd=
ata;else
script.appendChild(document.createTextNode(data));head.insertBefore(scri=
pt,head.firstChild);head.removeChild(script);}},nodeName:function(elem,n=
ame){return elem.nodeName&&elem.nodeName.toUpperCase()=3D=3Dname.toUpper=
Case();},cache:{},data:function(elem,name,data){elem=3Delem=3D=3Dwindow?=
windowData:elem;var id=3Delem[expando];if(!id)id=3Delem[expando]=3D++uui=
d;if(name&&!jQuery.cache[id])jQuery.cache[id]=3D{};if(data!=3D=3Dundefin=
ed)jQuery.cache[id][name]=3Ddata;return name?jQuery.cache[id][name]:id;}=
,removeData:function(elem,name){elem=3Delem=3D=3Dwindow?windowData:elem;=
var id=3Delem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache=
[id][name];name=3D"";for(name in jQuery.cache[id])break;if(!name)jQuery.=
removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.remov=
eAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},eac=
h:function(object,callback,args){var name,i=3D0,length=3Dobject.length;i=
f(args){if(length=3D=3Dundefined){for(name in object)if(callback.apply(o=
bject[name],args)=3D=3D=3Dfalse)break;}else
for(;i<length;)if(callback.apply(object[i++],args)=3D=3D=3Dfalse)break;}=
else{if(length=3D=3Dundefined){for(name in object)if(callback.call(objec=
t[name],name,object[name])=3D=3D=3Dfalse)break;}else
for(var value=3Dobject[0];i<length&&callback.call(value,i,value)!=3D=3Df=
alse;value=3Dobject[++i]){}}return object;},prop:function(elem,value,typ=
e,i,name){if(jQuery.isFunction(value))value=3Dvalue.call(elem,i);return =
value&&value.constructor=3D=3DNumber&&type=3D=3D"curCSS"&&!exclude.test(=
name)?value+"px":value;},className:{add:function(elem,classNames){jQuery=
.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeTy=
pe=3D=3D1&&!jQuery.className.has(elem.className,className))elem.classNam=
e+=3D(elem.className?" ":"")+className;});},remove:function(elem,classNa=
mes){if(elem.nodeType=3D=3D1)elem.className=3DclassNames!=3Dundefined?jQ=
uery.grep(elem.className.split(/\s+/),function(className){return!jQuery.=
className.has(classNames,className);}).join(" "):"";},has:function(elem,=
className){return jQuery.inArray(className,(elem.className||elem).toStri=
ng().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old=3D=
{};for(var name in options){old[name]=3Delem.style[name];elem.style[name=
]=3Doptions[name];}callback.call(elem);for(var name in options)elem.styl=
e[name]=3Dold[name];},css:function(elem,name,force){if(name=3D=3D"width"=
||name=3D=3D"height"){var val,props=3D{position:"absolute",visibility:"h=
idden",display:"block"},which=3Dname=3D=3D"width"?["Left","Right"]:["Top=
","Bottom"];function getWH(){val=3Dname=3D=3D"width"?elem.offsetWidth:el=
em.offsetHeight;var padding=3D0,border=3D0;jQuery.each(which,function(){=
padding+=3DparseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border=
+=3DparseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val=
-=3DMath.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();e=
lse
jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curC=
SS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=3De=
lem.style;function color(elem){if(!jQuery.browser.safari)return false;va=
r ret=3DdefaultView.getComputedStyle(elem,null);return!ret||ret.getPrope=
rtyValue("color")=3D=3D"";}if(name=3D=3D"opacity"&&jQuery.browser.msie){=
ret=3DjQuery.attr(style,"opacity");return ret=3D=3D""?"1":ret;}if(jQuery=
.browser.opera&&name=3D=3D"display"){var save=3Dstyle.outline;style.outl=
ine=3D"0 solid black";style.outline=3Dsave;}if(name.match(/float/i))name=
=3DstyleFloat;if(!force&&style&&style[name])ret=3Dstyle[name];else if(de=
faultView.getComputedStyle){if(name.match(/float/i))name=3D"float";name=3D=
name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=3Ddefault=
View.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=3Dco=
mputedStyle.getPropertyValue(name);else{var swap=3D[],stack=3D[],a=3Dele=
m,i=3D0;for(;a&&color(a);a=3Da.parentNode)stack.unshift(a);for(;i<stack.=
length;i++)if(color(stack[i])){swap[i]=3Dstack[i].style.display;stack[i]=
.style.display=3D"block";}ret=3Dname=3D=3D"display"&&swap[stack.length-1=
]!=3Dnull?"none":(computedStyle&&computedStyle.getPropertyValue(name))||=
"";for(i=3D0;i<swap.length;i++)if(swap[i]!=3Dnull)stack[i].style.display=
=3Dswap[i];}if(name=3D=3D"opacity"&&ret=3D=3D"")ret=3D"1";}else if(elem.=
currentStyle){var camelCase=3Dname.replace(/\-(\w)/g,function(all,letter=
){return letter.toUpperCase();});ret=3Delem.currentStyle[name]||elem.cur=
rentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var l=
eft=3Dstyle.left,rsLeft=3Delem.runtimeStyle.left;elem.runtimeStyle.left=3D=
elem.currentStyle.left;style.left=3Dret||0;ret=3Dstyle.pixelLeft+"px";st=
yle.left=3Dleft;elem.runtimeStyle.left=3DrsLeft;}}return ret;},clean:fun=
ction(elems,context){var ret=3D[];context=3Dcontext||document;if(typeof =
context.createElement=3D=3D'undefined')context=3Dcontext.ownerDocument||=
context[0]&&context[0].ownerDocument||document;jQuery.each(elems,functio=
n(i,elem){if(!elem)return;if(elem.constructor=3D=3DNumber)elem+=3D'';if(=
typeof elem=3D=3D"string"){elem=3Delem.replace(/(<(\w+)[^>]*?)\/>/g,func=
tion(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|=
param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=3DjQuery.tr=
im(elem).toLowerCase(),div=3Dcontext.createElement("div");var wrap=3D!ta=
gs.indexOf("<opt")&&[1,"<select multiple=3D'multiple'>","</select>"]||!t=
ags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thea=
d|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr"=
)&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags=
.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tag=
s.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></t=
able>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.inn=
erHTML=3Dwrap[1]+elem+wrap[2];while(wrap[0]--)div=3Ddiv.lastChild;if(jQu=
ery.browser.msie){var tbody=3D!tags.indexOf("<table")&&tags.indexOf("<tb=
ody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=3D=3D"<table>"=
&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=3Dtbody.length-1;=
j>=3D0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.le=
ngth)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.i=
nsertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild=
);}elem=3DjQuery.makeArray(div.childNodes);}if(elem.length=3D=3D=3D0&&(!=
jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if=
(elem[0]=3D=3Dundefined||jQuery.nodeName(elem,"form")||elem.options)ret.=
push(elem);else
ret=3DjQuery.merge(ret,elem);});return ret;},attr:function(elem,name,val=
ue){if(!elem||elem.nodeType=3D=3D3||elem.nodeType=3D=3D8)return undefine=
d;var notxml=3D!jQuery.isXMLDoc(elem),set=3Dvalue!=3D=3Dundefined,msie=3D=
jQuery.browser.msie;name=3Dnotxml&&jQuery.props[name]||name;if(elem.tagN=
ame){var special=3D/href|src|style/.test(name);if(name=3D=3D"selected"&&=
jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&&not=
xml&&!special){if(set){if(name=3D=3D"type"&&jQuery.nodeName(elem,"input"=
)&&elem.parentNode)throw"type property can't be changed";elem[name]=3Dva=
lue;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return=
 elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&&notxm=
l&&name=3D=3D"style")return jQuery.attr(elem.style,"cssText",value);if(s=
et)elem.setAttribute(name,""+value);var attr=3Dmsie&&notxml&&special?ele=
m.getAttribute(name,2):elem.getAttribute(name);return attr=3D=3D=3Dnull?=
undefined:attr;}if(msie&&name=3D=3D"opacity"){if(set){elem.zoom=3D1;elem=
.filter=3D(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value=
)+''=3D=3D"NaN"?"":"alpha(opacity=3D"+value*100+")");}return elem.filter=
&&elem.filter.indexOf("opacity=3D")>=3D0?(parseFloat(elem.filter.match(/=
opacity=3D([^)]*)/)[1])/100)+'':"";}name=3Dname.replace(/-([a-z])/ig,fun=
ction(all,letter){return letter.toUpperCase();});if(set)elem[name]=3Dval=
ue;return elem[name];},trim:function(text){return(text||"").replace(/^\s=
+|\s+$/g,"");},makeArray:function(array){var ret=3D[];if(array!=3Dnull){=
var i=3Darray.length;if(i=3D=3Dnull||array.split||array.setInterval||arr=
ay.call)ret[0]=3Darray;else
while(i)ret[--i]=3Darray[i];}return ret;},inArray:function(elem,array){f=
or(var i=3D0,length=3Darray.length;i<length;i++)if(array[i]=3D=3D=3Delem=
)return i;return-1;},merge:function(first,second){var i=3D0,elem,pos=3Df=
irst.length;if(jQuery.browser.msie){while(elem=3Dsecond[i++])if(elem.nod=
eType!=3D8)first[pos++]=3Delem;}else
while(elem=3Dsecond[i++])first[pos++]=3Delem;return first;},unique:funct=
ion(array){var ret=3D[],done=3D{};try{for(var i=3D0,length=3Darray.lengt=
h;i<length;i++){var id=3DjQuery.data(array[i]);if(!done[id]){done[id]=3D=
true;ret.push(array[i]);}}}catch(e){ret=3Darray;}return ret;},grep:funct=
ion(elems,callback,inv){var ret=3D[];for(var i=3D0,length=3Delems.length=
;i<length;i++)if(!inv!=3D!callback(elems[i],i))ret.push(elems[i]);return=
 ret;},map:function(elems,callback){var ret=3D[];for(var i=3D0,length=3D=
elems.length;i<length;i++){var value=3Dcallback(elems[i],i);if(value!=3D=
null)ret[ret.length]=3Dvalue;}return ret.concat.apply([],ret);}});var us=
erAgent=3Dnavigator.userAgent.toLowerCase();jQuery.browser=3D{version:(u=
serAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit=
/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAge=
nt)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(comp=
atible|webkit)/.test(userAgent)};var styleFloat=3DjQuery.browser.msie?"s=
tyleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||docu=
ment.compatMode=3D=3D"CSS1Compat",props:{"for":"htmlFor","class":"classN=
ame","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readon=
ly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.=
each({parent:function(elem){return elem.parentNode;},parents:function(el=
em){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQ=
uery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(e=
lem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem=
,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previou=
sSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNo=
de.firstChild,elem);},children:function(elem){return jQuery.sibling(elem=
.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"ifra=
me")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(=
elem.childNodes);}},function(name,fn){jQuery.fn[name]=3Dfunction(selecto=
r){var ret=3DjQuery.map(this,fn);if(selector&&typeof selector=3D=3D"stri=
ng")ret=3DjQuery.multiFilter(selector,ret);return this.pushStack(jQuery.=
unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",ins=
ertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},functio=
n(name,original){jQuery.fn[name]=3Dfunction(){var args=3Darguments;retur=
n this.each(function(){for(var i=3D0,length=3Dargs.length;i<length;i++)j=
Query(args[i])[original](this);});};});jQuery.each({removeAttr:function(=
name){jQuery.attr(this,name,"");if(this.nodeType=3D=3D1)this.removeAttri=
bute(name);},addClass:function(classNames){jQuery.className.add(this,cla=
ssNames);},removeClass:function(classNames){jQuery.className.remove(this=
,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.=
className.has(this,classNames)?"remove":"add"](this,classNames);},remove=
:function(selector){if(!selector||jQuery.filter(selector,[this]).r.lengt=
h){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);=
jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChil=
d(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstC=
hild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[na=
me]=3Dfunction(){return this.each(fn,arguments);};});jQuery.each(["Heigh=
t","Width"],function(i,name){var type=3Dname.toLowerCase();jQuery.fn[typ=
e]=3Dfunction(size){return this[0]=3D=3Dwindow?jQuery.browser.opera&&doc=
ument.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||=
document.compatMode=3D=3D"CSS1Compat"&&document.documentElement["client"=
+name]||document.body["client"+name]:this[0]=3D=3Ddocument?Math.max(Math=
.max(document.body["scroll"+name],document.documentElement["scroll"+name=
]),Math.max(document.body["offset"+name],document.documentElement["offse=
t"+name])):size=3D=3Dundefined?(this.length?jQuery.css(this[0],type):nul=
l):this.css(type,size.constructor=3D=3DString?size:size+"px");};});funct=
ion num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,t=
rue),10)||0;}var chars=3DjQuery.browser.safari&&parseInt(jQuery.browser.=
version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quic=
kChild=3Dnew RegExp("^>\\s*("+chars+"+)"),quickID=3Dnew RegExp("^("+char=
s+"+)(#)("+chars+"+)"),quickClass=3Dnew RegExp("^([#.]?)("+chars+"*)");j=
Query.extend({expr:{"":function(a,i,m){return m[2]=3D=3D"*"||jQuery.node=
Name(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")=3D=3Dm[2]=
;},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i=
>m[3]-0;},nth:function(a,i,m){return m[3]-0=3D=3Di;},eq:function(a,i,m){=
return m[3]-0=3D=3Di;},first:function(a,i){return i=3D=3D0;},last:functi=
on(a,i,m,r){return i=3D=3Dr.length-1;},even:function(a,i){return i%2=3D=3D=
0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.pa=
rentNode.getElementsByTagName("*")[0]=3D=3Da;},"last-child":function(a){=
return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")=3D=3Da;},"=
only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"prev=
iousSibling");},parent:function(a){return a.firstChild;},empty:function(=
a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||=
a.innerText||jQuery(a).text()||"").indexOf(m[3])>=3D0;},visible:function=
(a){return"hidden"!=3Da.type&&jQuery.css(a,"display")!=3D"none"&&jQuery.=
css(a,"visibility")!=3D"hidden";},hidden:function(a){return"hidden"=3D=3D=
a.type||jQuery.css(a,"display")=3D=3D"none"||jQuery.css(a,"visibility")=3D=
=3D"hidden";},enabled:function(a){return!a.disabled;},disabled:function(=
a){return a.disabled;},checked:function(a){return a.checked;},selected:f=
unction(a){return a.selected||jQuery.attr(a,"selected");},text:function(=
a){return"text"=3D=3Da.type;},radio:function(a){return"radio"=3D=3Da.typ=
e;},checkbox:function(a){return"checkbox"=3D=3Da.type;},file:function(a)=
{return"file"=3D=3Da.type;},password:function(a){return"password"=3D=3Da=
.type;},submit:function(a){return"submit"=3D=3Da.type;},image:function(a=
){return"image"=3D=3Da.type;},reset:function(a){return"reset"=3D=3Da.typ=
e;},button:function(a){return"button"=3D=3Da.type||jQuery.nodeName(a,"bu=
tton");},input:function(a){return/input|select|textarea|button/i.test(a.=
nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},head=
er:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){retu=
rn jQuery.grep(jQuery.timers,function(fn){return a=3D=3Dfn.elem;}).lengt=
h;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=3D]*) *('?"?)(.*?)\4 *\]/,/^(:)=
([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars=
+"+)")],multiFilter:function(expr,elems,not){var old,cur=3D[];while(expr=
&&expr!=3Dold){old=3Dexpr;var f=3DjQuery.filter(expr,elems,not);expr=3Df=
.t.replace(/^\s*,\s*/,"");cur=3Dnot?elems=3Df.r:jQuery.merge(cur,f.r);}r=
eturn cur;},find:function(t,context){if(typeof t!=3D"string")return[t];i=
f(context&&context.nodeType!=3D1&&context.nodeType!=3D9)return[];context=
=3Dcontext||document;var ret=3D[context],done=3D[],last,nodeName;while(t=
&&last!=3Dt){var r=3D[];last=3Dt;t=3DjQuery.trim(t);var foundToken=3Dfal=
se,re=3DquickChild,m=3Dre.exec(t);if(m){nodeName=3Dm[1].toUpperCase();fo=
r(var i=3D0;ret[i];i++)for(var c=3Dret[i].firstChild;c;c=3Dc.nextSibling=
)if(c.nodeType=3D=3D1&&(nodeName=3D=3D"*"||c.nodeName.toUpperCase()=3D=3D=
nodeName))r.push(c);ret=3Dr;t=3Dt.replace(re,"");if(t.indexOf(" ")=3D=3D=
0)continue;foundToken=3Dtrue;}else{re=3D/^([>+~])\s*(\w*)/i;if((m=3Dre.e=
xec(t))!=3Dnull){r=3D[];var merge=3D{};nodeName=3Dm[2].toUpperCase();m=3D=
m[1];for(var j=3D0,rl=3Dret.length;j<rl;j++){var n=3Dm=3D=3D"~"||m=3D=3D=
"+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=3Dn.nextSibling)if(n.n=
odeType=3D=3D1){var id=3DjQuery.data(n);if(m=3D=3D"~"&&merge[id])break;i=
f(!nodeName||n.nodeName.toUpperCase()=3D=3DnodeName){if(m=3D=3D"~")merge=
[id]=3Dtrue;r.push(n);}if(m=3D=3D"+")break;}}ret=3Dr;t=3DjQuery.trim(t.r=
eplace(re,""));foundToken=3Dtrue;}}if(t&&!foundToken){if(!t.indexOf(",")=
){if(context=3D=3Dret[0])ret.shift();done=3DjQuery.merge(done,ret);r=3Dr=
et=3D[context];t=3D" "+t.substr(1,t.length);}else{var re2=3DquickID;var =
m=3Dre2.exec(t);if(m){m=3D[0,m[2],m[3],m[1]];}else{re2=3DquickClass;m=3D=
re2.exec(t);}m[2]=3Dm[2].replace(/\\/g,"");var elem=3Dret[ret.length-1];=
if(m[1]=3D=3D"#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var=
 oid=3Delem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser=
.opera)&&oid&&typeof oid.id=3D=3D"string"&&oid.id!=3Dm[2])oid=3DjQuery('=
[@id=3D"'+m[2]+'"]',elem)[0];ret=3Dr=3Doid&&(!m[3]||jQuery.nodeName(oid,=
m[3]))?[oid]:[];}else{for(var i=3D0;ret[i];i++){var tag=3Dm[1]=3D=3D"#"&=
&m[3]?m[3]:m[1]!=3D""||m[0]=3D=3D""?"*":m[2];if(tag=3D=3D"*"&&ret[i].nod=
eName.toLowerCase()=3D=3D"object")tag=3D"param";r=3DjQuery.merge(r,ret[i=
].getElementsByTagName(tag));}if(m[1]=3D=3D".")r=3DjQuery.classFilter(r,=
m[2]);if(m[1]=3D=3D"#"){var tmp=3D[];for(var i=3D0;r[i];i++)if(r[i].getA=
ttribute("id")=3D=3Dm[2]){tmp=3D[r[i]];break;}r=3Dtmp;}ret=3Dr;}t=3Dt.re=
place(re2,"");}}if(t){var val=3DjQuery.filter(t,r);ret=3Dr=3Dval.r;t=3Dj=
Query.trim(val.t);}}if(t)ret=3D[];if(ret&&context=3D=3Dret[0])ret.shift(=
);done=3DjQuery.merge(done,ret);return done;},classFilter:function(r,m,n=
ot){m=3D" "+m+" ";var tmp=3D[];for(var i=3D0;r[i];i++){var pass=3D(" "+r=
[i].className+" ").indexOf(m)>=3D0;if(!not&&pass||not&&!pass)tmp.push(r[=
i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=3Dlast){=
last=3Dt;var p=3DjQuery.parse,m;for(var i=3D0;p[i];i++){m=3Dp[i].exec(t)=
;if(m){t=3Dt.substring(m[0].length);m[2]=3Dm[2].replace(/\\/g,"");break;=
}}if(!m)break;if(m[1]=3D=3D":"&&m[2]=3D=3D"not")r=3DisSimple.test(m[3])?=
jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]=3D=3D".")r=
=3DjQuery.classFilter(r,m[2],not);else if(m[1]=3D=3D"["){var tmp=3D[],ty=
pe=3Dm[3];for(var i=3D0,rl=3Dr.length;i<rl;i++){var a=3Dr[i],z=3Da[jQuer=
y.props[m[2]]||m[2]];if(z=3D=3Dnull||/href|src|selected/.test(m[2]))z=3D=
jQuery.attr(a,m[2])||'';if((type=3D=3D""&&!!z||type=3D=3D"=3D"&&z=3D=3Dm=
[5]||type=3D=3D"!=3D"&&z!=3Dm[5]||type=3D=3D"^=3D"&&z&&!z.indexOf(m[5])|=
|type=3D=3D"$=3D"&&z.substr(z.length-m[5].length)=3D=3Dm[5]||(type=3D=3D=
"*=3D"||type=3D=3D"~=3D")&&z.indexOf(m[5])>=3D0)^not)tmp.push(a);}r=3Dtm=
p;}else if(m[1]=3D=3D":"&&m[2]=3D=3D"nth-child"){var merge=3D{},tmp=3D[]=
,test=3D/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=3D=3D"even"&&"2n"||m[3]=3D=3D=
"odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=3D(test[1]+(tes=
t[2]||1))-0,last=3Dtest[3]-0;for(var i=3D0,rl=3Dr.length;i<rl;i++){var n=
ode=3Dr[i],parentNode=3Dnode.parentNode,id=3DjQuery.data(parentNode);if(=
!merge[id]){var c=3D1;for(var n=3DparentNode.firstChild;n;n=3Dn.nextSibl=
ing)if(n.nodeType=3D=3D1)n.nodeIndex=3Dc++;merge[id]=3Dtrue;}var add=3Df=
alse;if(first=3D=3D0){if(node.nodeIndex=3D=3Dlast)add=3Dtrue;}else if((n=
ode.nodeIndex-last)%first=3D=3D0&&(node.nodeIndex-last)/first>=3D0)add=3D=
true;if(add^not)tmp.push(node);}r=3Dtmp;}else{var fn=3DjQuery.expr[m[1]]=
;if(typeof fn=3D=3D"object")fn=3Dfn[m[2]];if(typeof fn=3D=3D"string")fn=3D=
eval("false||function(a,i){return "+fn+";}");r=3DjQuery.grep(r,function(=
elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(el=
em,dir){var matched=3D[],cur=3Delem[dir];while(cur&&cur!=3Ddocument){if(=
cur.nodeType=3D=3D1)matched.push(cur);cur=3Dcur[dir];}return matched;},n=
th:function(cur,result,dir,elem){result=3Dresult||1;var num=3D0;for(;cur=
;cur=3Dcur[dir])if(cur.nodeType=3D=3D1&&++num=3D=3Dresult)break;return c=
ur;},sibling:function(n,elem){var r=3D[];for(;n;n=3Dn.nextSibling){if(n.=
nodeType=3D=3D1&&n!=3Delem)r.push(n);}return r;}});jQuery.event=3D{add:f=
unction(elem,types,handler,data){if(elem.nodeType=3D=3D3||elem.nodeType=3D=
=3D8)return;if(jQuery.browser.msie&&elem.setInterval)elem=3Dwindow;if(!h=
andler.guid)handler.guid=3Dthis.guid++;if(data!=3Dundefined){var fn=3Dha=
ndler;handler=3Dthis.proxy(fn,function(){return fn.apply(this,arguments)=
;});handler.data=3Ddata;}var events=3DjQuery.data(elem,"events")||jQuery=
.data(elem,"events",{}),handle=3DjQuery.data(elem,"handle")||jQuery.data=
(elem,"handle",function(){if(typeof jQuery!=3D"undefined"&&!jQuery.event=
.triggered)return jQuery.event.handle.apply(arguments.callee.elem,argume=
nts);});handle.elem=3Delem;jQuery.each(types.split(/\s+/),function(index=
,type){var parts=3Dtype.split(".");type=3Dparts[0];handler.type=3Dparts[=
1];var handlers=3Devents[type];if(!handlers){handlers=3Devents[type]=3D{=
};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(=
elem)=3D=3D=3Dfalse){if(elem.addEventListener)elem.addEventListener(type=
,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handl=
e);}}handlers[handler.guid]=3Dhandler;jQuery.event.global[type]=3Dtrue;}=
);elem=3Dnull;},guid:1,global:{},remove:function(elem,types,handler){if(=
elem.nodeType=3D=3D3||elem.nodeType=3D=3D8)return;var events=3DjQuery.da=
ta(elem,"events"),ret,index;if(events){if(types=3D=3Dundefined||(typeof =
types=3D=3D"string"&&types.charAt(0)=3D=3D"."))for(var type in events)th=
is.remove(elem,type+(types||""));else{if(types.type){handler=3Dtypes.han=
dler;types=3Dtypes.type;}jQuery.each(types.split(/\s+/),function(index,t=
ype){var parts=3Dtype.split(".");type=3Dparts[0];if(events[type]){if(han=
dler)delete events[type][handler.guid];else
for(handler in events[type])if(!parts[1]||events[type][handler].type=3D=3D=
parts[1])delete events[type][handler];for(ret in events[type])break;if(!=
ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown=
.call(elem)=3D=3D=3Dfalse){if(elem.removeEventListener)elem.removeEventL=
istener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)=
elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=3Dnull;delet=
e events[type];}}});}for(ret in events)break;if(!ret){var handle=3DjQuer=
y.data(elem,"handle");if(handle)handle.elem=3Dnull;jQuery.removeData(ele=
m,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,d=
ata,elem,donative,extra){data=3DjQuery.makeArray(data);if(type.indexOf("=
!")>=3D0){type=3Dtype.slice(0,-1);var exclusive=3Dtrue;}if(!elem){if(thi=
s.global[type])jQuery("*").add([window,document]).trigger(type,data);}el=
se{if(elem.nodeType=3D=3D3||elem.nodeType=3D=3D8)return undefined;var va=
l,ret,fn=3DjQuery.isFunction(elem[type]||null),event=3D!data[0]||!data[0=
].preventDefault;if(event){data.unshift({type:type,target:elem,preventDe=
fault:function(){},stopPropagation:function(){},timeStamp:now()});data[0=
][expando]=3Dtrue;}data[0].type=3Dtype;if(exclusive)data[0].exclusive=3D=
true;var handle=3DjQuery.data(elem,"handle");if(handle)val=3Dhandle.appl=
y(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=3D=3D"click"))&&e=
lem["on"+type]&&elem["on"+type].apply(elem,data)=3D=3D=3Dfalse)val=3Dfal=
se;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=3Dextra=
.apply(elem,val=3D=3Dnull?data:data.concat(val));if(ret!=3D=3Dundefined)=
val=3Dret;}if(fn&&donative!=3D=3Dfalse&&val!=3D=3Dfalse&&!(jQuery.nodeNa=
me(elem,'a')&&type=3D=3D"click")){this.triggered=3Dtrue;try{elem[type]()=
;}catch(e){}}this.triggered=3Dfalse;}return val;},handle:function(event)=
{var val,ret,namespace,all,handlers;event=3Darguments[0]=3DjQuery.event.=
fix(event||window.event);namespace=3Devent.type.split(".");event.type=3D=
namespace[0];namespace=3Dnamespace[1];all=3D!namespace&&!event.exclusive=
;handlers=3D(jQuery.data(this,"events")||{})[event.type];for(var j in ha=
ndlers){var handler=3Dhandlers[j];if(all||handler.type=3D=3Dnamespace){e=
vent.handler=3Dhandler;event.data=3Dhandler.data;ret=3Dhandler.apply(thi=
s,arguments);if(val!=3D=3Dfalse)val=3Dret;if(ret=3D=3D=3Dfalse){event.pr=
eventDefault();event.stopPropagation();}}}return val;},fix:function(even=
t){if(event[expando]=3D=3Dtrue)return event;var originalEvent=3Devent;ev=
ent=3D{originalEvent:originalEvent};var props=3D"altKey attrChange attrN=
ame bubbles button cancelable charCode clientX clientY ctrlKey currentTa=
rget data detail eventPhase fromElement handler keyCode metaKey newValue=
 originalTarget pageX pageY prevValue relatedNode relatedTarget screenX =
screenY shiftKey srcElement target timeStamp toElement type view wheelDe=
lta which".split(" ");for(var i=3Dprops.length;i;i--)event[props[i]]=3Do=
riginalEvent[props[i]];event[expando]=3Dtrue;event.preventDefault=3Dfunc=
tion(){if(originalEvent.preventDefault)originalEvent.preventDefault();or=
iginalEvent.returnValue=3Dfalse;};event.stopPropagation=3Dfunction(){if(=
originalEvent.stopPropagation)originalEvent.stopPropagation();originalEv=
ent.cancelBubble=3Dtrue;};event.timeStamp=3Devent.timeStamp||now();if(!e=
vent.target)event.target=3Devent.srcElement||document;if(event.target.no=
deType=3D=3D3)event.target=3Devent.target.parentNode;if(!event.relatedTa=
rget&&event.fromElement)event.relatedTarget=3Devent.fromElement=3D=3Deve=
nt.target?event.toElement:event.fromElement;if(event.pageX=3D=3Dnull&&ev=
ent.clientX!=3Dnull){var doc=3Ddocument.documentElement,body=3Ddocument.=
body;event.pageX=3Devent.clientX+(doc&&doc.scrollLeft||body&&body.scroll=
Left||0)-(doc.clientLeft||0);event.pageY=3Devent.clientY+(doc&&doc.scrol=
lTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((ev=
ent.charCode||event.charCode=3D=3D=3D0)?event.charCode:event.keyCode))ev=
ent.which=3Devent.charCode||event.keyCode;if(!event.metaKey&&event.ctrlK=
ey)event.metaKey=3Devent.ctrlKey;if(!event.which&&event.button)event.whi=
ch=3D(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return e=
vent;},proxy:function(fn,proxy){proxy.guid=3Dfn.guid=3Dfn.guid||proxy.gu=
id||this.guid++;return proxy;},special:{ready:{setup:function(){bindRead=
y();return;},teardown:function(){return;}},mouseenter:{setup:function(){=
if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery=
.event.special.mouseenter.handler);return true;},teardown:function(){if(=
jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.=
event.special.mouseenter.handler);return true;},handler:function(event){=
if(withinElement(event,this))return true;event.type=3D"mouseenter";retur=
n jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:functio=
n(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQu=
ery.event.special.mouseleave.handler);return true;},teardown:function(){=
if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuer=
y.event.special.mouseleave.handler);return true;},handler:function(event=
){if(withinElement(event,this))return true;event.type=3D"mouseleave";ret=
urn jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bin=
d:function(type,data,fn){return type=3D=3D"unload"?this.one(type,data,fn=
):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});=
},one:function(type,data,fn){var one=3DjQuery.event.proxy(fn||data,funct=
ion(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,ar=
guments);});return this.each(function(){jQuery.event.add(this,type,one,f=
n&&data);});},unbind:function(type,fn){return this.each(function(){jQuer=
y.event.remove(this,type,fn);});},trigger:function(type,data,fn){return =
this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},t=
riggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigge=
r(type,data,this[0],false,fn);},toggle:function(fn){var args=3Darguments=
,i=3D1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.=
click(jQuery.event.proxy(fn,function(event){this.lastToggle=3D(this.last=
Toggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply=
(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.b=
ind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){b=
indReady();if(jQuery.isReady)fn.call(document,jQuery);else
jQuery.readyList.push(function(){return fn.call(this,jQuery);});return t=
his;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!j=
Query.isReady){jQuery.isReady=3Dtrue;if(jQuery.readyList){jQuery.each(jQ=
uery.readyList,function(){this.call(document);});jQuery.readyList=3Dnull=
;}jQuery(document).triggerHandler("ready");}}});var readyBound=3Dfalse;f=
unction bindReady(){if(readyBound)return;readyBound=3Dtrue;if(document.a=
ddEventListener&&!jQuery.browser.opera)document.addEventListener("DOMCon=
tentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window=3D=3Dtop)=
(function(){if(jQuery.isReady)return;try{document.documentElement.doScro=
ll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.r=
eady();})();if(jQuery.browser.opera)document.addEventListener("DOMConten=
tLoaded",function(){if(jQuery.isReady)return;for(var i=3D0;i<document.st=
yleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arg=
uments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safar=
i){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyS=
tate!=3D"loaded"&&document.readyState!=3D"complete"){setTimeout(argument=
s.callee,0);return;}if(numStyles=3D=3D=3Dundefined)numStyles=3DjQuery("s=
tyle, link[rel=3Dstylesheet]").length;if(document.styleSheets.length!=3D=
numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}j=
Query.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,lo=
ad,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mo=
useover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").=
split(","),function(i,name){jQuery.fn[name]=3Dfunction(fn){return fn?thi=
s.bind(name,fn):this.trigger(name);};});var withinElement=3Dfunction(eve=
nt,elem){var parent=3Devent.relatedTarget;while(parent&&parent!=3Delem)t=
ry{parent=3Dparent.parentNode;}catch(error){parent=3Delem;}return parent=
=3D=3Delem;};jQuery(window).bind("unload",function(){jQuery("*").add(doc=
ument).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(=
url,params,callback){if(typeof url!=3D'string')return this._load(url);va=
r off=3Durl.indexOf(" ");if(off>=3D0){var selector=3Durl.slice(off,url.l=
ength);url=3Durl.slice(0,off);}callback=3Dcallback||function(){};var typ=
e=3D"GET";if(params)if(jQuery.isFunction(params)){callback=3Dparams;para=
ms=3Dnull;}else{params=3DjQuery.param(params);type=3D"POST";}var self=3D=
this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete=
:function(res,status){if(status=3D=3D"success"||status=3D=3D"notmodified=
")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<=
script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.eac=
h(callback,[res.responseText,status,res]);}});return this;},serialize:fu=
nction(){return jQuery.param(this.serializeArray());},serializeArray:fun=
ction(){return this.map(function(){return jQuery.nodeName(this,"form")?j=
Query.makeArray(this.elements):this;}).filter(function(){return this.nam=
e&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)=
||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var v=
al=3DjQuery(this).val();return val=3D=3Dnull?null:val.constructor=3D=3DA=
rray?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):=
{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,=
ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQ=
uery.fn[o]=3Dfunction(f){return this.bind(o,f);};});var jsc=3Dnow();jQue=
ry.extend({get:function(url,data,callback,type){if(jQuery.isFunction(dat=
a)){callback=3Ddata;data=3Dnull;}return jQuery.ajax({type:"GET",url:url,=
data:data,success:callback,dataType:type});},getScript:function(url,call=
back){return jQuery.get(url,null,callback,"script");},getJSON:function(u=
rl,data,callback){return jQuery.get(url,data,callback,"json");},post:fun=
ction(url,data,callback,type){if(jQuery.isFunction(data)){callback=3Ddat=
a;data=3D{};}return jQuery.ajax({type:"POST",url:url,data:data,success:c=
allback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQu=
ery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true=
,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",pr=
ocessData:true,async:true,data:null,username:null,password:null,accepts:=
{xml:"application/xml, text/xml",html:"text/html",script:"text/javascrip=
t, application/javascript",json:"application/json, text/javascript",text=
:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=3DjQue=
ry.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp=
,jsre=3D/=3D\?(&|$)/g,status,data,type=3Ds.type.toUpperCase();if(s.data&=
&s.processData&&typeof s.data!=3D"string")s.data=3DjQuery.param(s.data);=
if(s.dataType=3D=3D"jsonp"){if(type=3D=3D"GET"){if(!s.url.match(jsre))s.=
url+=3D(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=3D?";}else if=
(!s.data||!s.data.match(jsre))s.data=3D(s.data?s.data+"&":"")+(s.jsonp||=
"callback")+"=3D?";s.dataType=3D"json";}if(s.dataType=3D=3D"json"&&(s.da=
ta&&s.data.match(jsre)||s.url.match(jsre))){jsonp=3D"jsonp"+jsc++;if(s.d=
ata)s.data=3D(s.data+"").replace(jsre,"=3D"+jsonp+"$1");s.url=3Ds.url.re=
place(jsre,"=3D"+jsonp+"$1");s.dataType=3D"script";window[jsonp]=3Dfunct=
ion(tmp){data=3Dtmp;success();complete();window[jsonp]=3Dundefined;try{d=
elete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.=
dataType=3D=3D"script"&&s.cache=3D=3Dnull)s.cache=3Dfalse;if(s.cache=3D=3D=
=3Dfalse&&type=3D=3D"GET"){var ts=3Dnow();var ret=3Ds.url.replace(/(\?|&=
)_=3D.*?(&|$)/,"$1_=3D"+ts+"$2");s.url=3Dret+((ret=3D=3Ds.url)?(s.url.ma=
tch(/\?/)?"&":"?")+"_=3D"+ts:"");}if(s.data&&type=3D=3D"GET"){s.url+=3D(=
s.url.match(/\?/)?"&":"?")+s.data;s.data=3Dnull;}if(s.global&&!jQuery.ac=
tive++)jQuery.event.trigger("ajaxStart");var remote=3D/^(?:\w+:)?\/\/([^=
\/?#]+)/;if(s.dataType=3D=3D"script"&&type=3D=3D"GET"&&remote.test(s.url=
)&&remote.exec(s.url)[1]!=3Dlocation.host){var head=3Ddocument.getElemen=
tsByTagName("head")[0];var script=3Ddocument.createElement("script");scr=
ipt.src=3Ds.url;if(s.scriptCharset)script.charset=3Ds.scriptCharset;if(!=
jsonp){var done=3Dfalse;script.onload=3Dscript.onreadystatechange=3Dfunc=
tion(){if(!done&&(!this.readyState||this.readyState=3D=3D"loaded"||this.=
readyState=3D=3D"complete")){done=3Dtrue;success();complete();head.remov=
eChild(script);}};}head.appendChild(script);return undefined;}var reques=
tDone=3Dfalse;var xhr=3Dwindow.ActiveXObject?new ActiveXObject("Microsof=
t.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.asy=
nc,s.username,s.password);else
xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content=
-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-=
Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.=
setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHead=
er("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", *=
/*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)=3D=
=3D=3Dfalse){s.global&&jQuery.active--;xhr.abort();return false;}if(s.gl=
obal)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=3Df=
unction(isTimeout){if(!requestDone&&xhr&&(xhr.readyState=3D=3D4||isTimeo=
ut=3D=3D"timeout")){requestDone=3Dtrue;if(ival){clearInterval(ival);ival=
=3Dnull;}status=3DisTimeout=3D=3D"timeout"&&"timeout"||!jQuery.httpSucce=
ss(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notm=
odified"||"success";if(status=3D=3D"success"){try{data=3DjQuery.httpData=
(xhr,s.dataType,s.dataFilter);}catch(e){status=3D"parsererror";}}if(stat=
us=3D=3D"success"){var modRes;try{modRes=3Dxhr.getResponseHeader("Last-M=
odified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=3D=
modRes;if(!jsonp)success();}else
jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=3Dnull;}};if(=
s.async){var ival=3DsetInterval(onreadystatechange,13);if(s.timeout>0)se=
tTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechan=
ge("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handl=
eError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(=
){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("=
ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,=
status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.gl=
obal&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},ha=
ndleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s=
.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSucce=
ss:function(xhr){try{return!xhr.status&&location.protocol=3D=3D"file:"||=
(xhr.status>=3D200&&xhr.status<300)||xhr.status=3D=3D304||xhr.status=3D=3D=
1223||jQuery.browser.safari&&xhr.status=3D=3Dundefined;}catch(e){}return=
 false;},httpNotModified:function(xhr,url){try{var xhrRes=3Dxhr.getRespo=
nseHeader("Last-Modified");return xhr.status=3D=3D304||xhrRes=3D=3DjQuer=
y.lastModified[url]||jQuery.browser.safari&&xhr.status=3D=3Dundefined;}c=
atch(e){}return false;},httpData:function(xhr,type,filter){var ct=3Dxhr.=
getResponseHeader("content-type"),xml=3Dtype=3D=3D"xml"||!type&&ct&&ct.i=
ndexOf("xml")>=3D0,data=3Dxml?xhr.responseXML:xhr.responseText;if(xml&&d=
ata.documentElement.tagName=3D=3D"parsererror")throw"parsererror";if(fil=
ter)data=3Dfilter(data,type);if(type=3D=3D"script")jQuery.globalEval(dat=
a);if(type=3D=3D"json")data=3Deval("("+data+")");return data;},param:fun=
ction(a){var s=3D[];if(a.constructor=3D=3DArray||a.jquery)jQuery.each(a,=
function(){s.push(encodeURIComponent(this.name)+"=3D"+encodeURIComponent=
(this.value));});else
for(var j in a)if(a[j]&&a[j].constructor=3D=3DArray)jQuery.each(a[j],fun=
ction(){s.push(encodeURIComponent(j)+"=3D"+encodeURIComponent(this));});=
else
s.push(encodeURIComponent(j)+"=3D"+encodeURIComponent(jQuery.isFunction(=
a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn=
.extend({show:function(speed,callback){return speed?this.animate({height=
:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidde=
n").each(function(){this.style.display=3Dthis.oldblock||"";if(jQuery.css=
(this,"display")=3D=3D"none"){var elem=3DjQuery("<"+this.tagName+" />").=
appendTo("body");this.style.display=3Delem.css("display");if(this.style.=
display=3D=3D"none")this.style.display=3D"block";elem.remove();}}).end()=
;},hide:function(speed,callback){return speed?this.animate({height:"hide=
",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").e=
ach(function(){this.oldblock=3Dthis.oldblock||jQuery.css(this,"display")=
;this.style.display=3D"none";}).end();},_toggle:jQuery.fn.toggle,toggle:=
function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?th=
is._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:=
"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQu=
ery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,c=
allback){return this.animate({height:"show"},speed,callback);},slideUp:f=
unction(speed,callback){return this.animate({height:"hide"},speed,callba=
ck);},slideToggle:function(speed,callback){return this.animate({height:"=
toggle"},speed,callback);},fadeIn:function(speed,callback){return this.a=
nimate({opacity:"show"},speed,callback);},fadeOut:function(speed,callbac=
k){return this.animate({opacity:"hide"},speed,callback);},fadeTo:functio=
n(speed,to,callback){return this.animate({opacity:to},speed,callback);},=
animate:function(prop,speed,easing,callback){var optall=3DjQuery.speed(s=
peed,easing,callback);return this[optall.queue=3D=3D=3Dfalse?"each":"que=
ue"](function(){if(this.nodeType!=3D1)return false;var opt=3DjQuery.exte=
nd({},optall),p,hidden=3DjQuery(this).is(":hidden"),self=3Dthis;for(p in=
 prop){if(prop[p]=3D=3D"hide"&&hidden||prop[p]=3D=3D"show"&&!hidden)retu=
rn opt.complete.call(this);if(p=3D=3D"height"||p=3D=3D"width"){opt.displ=
ay=3DjQuery.css(this,"display");opt.overflow=3Dthis.style.overflow;}}if(=
opt.overflow!=3Dnull)this.style.overflow=3D"hidden";opt.curAnim=3DjQuery=
.extend({},prop);jQuery.each(prop,function(name,val){var e=3Dnew jQuery.=
fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=3D=3D"toggle"?hi=
dden?"show":"hide":val](prop);else{var parts=3Dval.toString().match(/^([=
+-]=3D)?([\d+-.]+)(.*)$/),start=3De.cur(true)||0;if(parts){var end=3Dpar=
seFloat(parts[2]),unit=3Dparts[3]||"px";if(unit!=3D"px"){self.style[name=
]=3D(end||1)+unit;start=3D((end||1)/e.cur(true))*start;self.style[name]=3D=
start+unit;}if(parts[1])end=3D((parts[1]=3D=3D"-=3D"?-1:1)*end)+start;e.=
custom(start,end,unit);}else
e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(j=
Query.isFunction(type)||(type&&type.constructor=3D=3DArray)){fn=3Dtype;t=
ype=3D"fx";}if(!type||(typeof type=3D=3D"string"&&!fn))return queue(this=
[0],type);return this.each(function(){if(fn.constructor=3D=3DArray)queue=
(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length=
=3D=3D1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=
=3DjQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(v=
ar i=3Dtimers.length-1;i>=3D0;i--)if(timers[i].elem=3D=3Dthis){if(gotoEn=
d)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();retu=
rn this;}});var queue=3Dfunction(elem,type,array){if(elem){type=3Dtype||=
"fx";var q=3DjQuery.data(elem,type+"queue");if(!q||array)q=3DjQuery.data=
(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeu=
e=3Dfunction(type){type=3Dtype||"fx";return this.each(function(){var q=3D=
queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.exten=
d({speed:function(speed,easing,fn){var opt=3Dspeed&&speed.constructor=3D=
=3DObject?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&spe=
ed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=3DFunct=
ion&&easing};opt.duration=3D(opt.duration&&opt.duration.constructor=3D=3D=
Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.de=
f;opt.old=3Dopt.complete;opt.complete=3Dfunction(){if(opt.queue!=3D=3Dfa=
lse)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(th=
is);};return opt;},easing:{linear:function(p,n,firstNum,diff){return fir=
stNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Mat=
h.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,o=
ptions,prop){this.options=3Doptions;this.elem=3Delem;this.prop=3Dprop;if=
(!options.orig)options.orig=3D{};}});jQuery.fx.prototype=3D{update:funct=
ion(){if(this.options.step)this.options.step.call(this.elem,this.now,thi=
s);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.pr=
op=3D=3D"height"||this.prop=3D=3D"width")this.elem.style.display=3D"bloc=
k";},cur:function(force){if(this.elem[this.prop]!=3Dnull&&this.elem.styl=
e[this.prop]=3D=3Dnull)return this.elem[this.prop];var r=3DparseFloat(jQ=
uery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQu=
ery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this=
.startTime=3Dnow();this.start=3Dfrom;this.end=3Dto;this.unit=3Dunit||thi=
s.unit||"px";this.now=3Dthis.start;this.pos=3Dthis.state=3D0;this.update=
();var self=3Dthis;function t(gotoEnd){return self.step(gotoEnd);}t.elem=
=3Dthis.elem;jQuery.timers.push(t);if(jQuery.timerId=3D=3Dnull){jQuery.t=
imerId=3DsetInterval(function(){var timers=3DjQuery.timers;for(var i=3D0=
;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.len=
gth){clearInterval(jQuery.timerId);jQuery.timerId=3Dnull;}},13);}},show:=
function(){this.options.orig[this.prop]=3DjQuery.attr(this.elem.style,th=
is.prop);this.options.show=3Dtrue;this.custom(0,this.cur());if(this.prop=
=3D=3D"width"||this.prop=3D=3D"height")this.elem.style[this.prop]=3D"1px=
";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop=
]=3DjQuery.attr(this.elem.style,this.prop);this.options.hide=3Dtrue;this=
.custom(this.cur(),0);},step:function(gotoEnd){var t=3Dnow();if(gotoEnd|=
|t>this.options.duration+this.startTime){this.now=3Dthis.end;this.pos=3D=
this.state=3D1;this.update();this.options.curAnim[this.prop]=3Dtrue;var =
done=3Dtrue;for(var i in this.options.curAnim)if(this.options.curAnim[i]=
!=3D=3Dtrue)done=3Dfalse;if(done){if(this.options.display!=3Dnull){this.=
elem.style.overflow=3Dthis.options.overflow;this.elem.style.display=3Dth=
is.options.display;if(jQuery.css(this.elem,"display")=3D=3D"none")this.e=
lem.style.display=3D"block";}if(this.options.hide)this.elem.style.displa=
y=3D"none";if(this.options.hide||this.options.show)for(var p in this.opt=
ions.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(don=
e)this.options.complete.call(this.elem);return false;}else{var n=3Dt-thi=
s.startTime;this.state=3Dn/this.options.duration;this.pos=3DjQuery.easin=
g[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.stat=
e,n,0,1,this.options.duration);this.now=3Dthis.start+((this.end-this.sta=
rt)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{spe=
eds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.sc=
rollLeft=3Dfx.now;},scrollTop:function(fx){fx.elem.scrollTop=3Dfx.now;},=
opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_defa=
ult:function(fx){fx.elem.style[fx.prop]=3Dfx.now+fx.unit;}}});jQuery.fn.=
offset=3Dfunction(){var left=3D0,top=3D0,elem=3Dthis[0],results;if(elem)=
with(jQuery.browser){var parent=3Delem.parentNode,offsetChild=3Delem,off=
setParent=3Delem.offsetParent,doc=3Delem.ownerDocument,safari2=3Dsafari&=
&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=3DjQuery.curCSS=
,fixed=3Dcss(elem,"position")=3D=3D"fixed";if(elem.getBoundingClientRect=
){var box=3Delem.getBoundingClientRect();add(box.left+Math.max(doc.docum=
entElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.document=
Element.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLe=
ft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offset=
Top);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offset=
Top);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!=
safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=3D=3D=
"fixed")fixed=3Dtrue;offsetChild=3D/^body$/i.test(offsetParent.tagName)?=
offsetChild:offsetParent;offsetParent=3DoffsetParent.offsetParent;}while=
(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inl=
ine|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-paren=
t.scrollTop);if(mozilla&&css(parent,"overflow")!=3D"visible")border(pare=
nt);parent=3Dparent.parentNode;}if((safari2&&(fixed||css(offsetChild,"po=
sition")=3D=3D"absolute"))||(mozilla&&css(offsetChild,"position")!=3D"ab=
solute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math=
.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.do=
cumentElement.scrollTop,doc.body.scrollTop));}results=3D{top:top,left:le=
ft};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true=
),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=3D=
parseInt(l,10)||0;top+=3DparseInt(t,10)||0;}return results;};jQuery.fn.e=
xtend({position:function(){var left=3D0,top=3D0,results;if(this[0]){var =
offsetParent=3Dthis.offsetParent(),offset=3Dthis.offset(),parentOffset=3D=
/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent=
.offset();offset.top-=3Dnum(this,'marginTop');offset.left-=3Dnum(this,'m=
arginLeft');parentOffset.top+=3Dnum(offsetParent,'borderTopWidth');paren=
tOffset.left+=3Dnum(offsetParent,'borderLeftWidth');results=3D{top:offse=
t.top-parentOffset.top,left:offset.left-parentOffset.left};}return resul=
ts;},offsetParent:function(){var offsetParent=3Dthis[0].offsetParent;whi=
le(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css=
(offsetParent,'position')=3D=3D'static'))offsetParent=3DoffsetParent.off=
setParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],fun=
ction(i,name){var method=3D'scroll'+name;jQuery.fn[method]=3Dfunction(va=
l){if(!this[0])return;return val!=3Dundefined?this.each(function(){this=3D=
=3Dwindow||this=3D=3Ddocument?window.scrollTo(!i?val:jQuery(window).scro=
llLeft(),i?val:jQuery(window).scrollTop()):this[method]=3Dval;}):this[0]=
=3D=3Dwindow||this[0]=3D=3Ddocument?self[i?'pageYOffset':'pageXOffset']|=
|jQuery.boxModel&&document.documentElement[method]||document.body[method=
]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){v=
ar tl=3Di?"Left":"Top",br=3Di?"Right":"Bottom";jQuery.fn["inner"+name]=3D=
function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(=
this,"padding"+br);};jQuery.fn["outer"+name]=3Dfunction(margin){return t=
his["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"=
Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})()=
;
------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=facebox.js
Content-Type: text/javascript; charset=UTF-8; name=facebox.js
Content-Location: http://www.newscientist.com/script/facebox.js
Content-Transfer-Encoding: 8bit

/*
 * Facebox (for jQuery)
 * version: 1.2 (05/05/2008)
 * @requires jQuery v1.2 or later
 *
 * Examples at http://famspam.com/facebox/
 *
 * Licensed under the MIT:
 *   http://www.opensource.org/licenses/mit-license.php
 *
 * Copyright 2007, 2008 Chris Wanstrath [ chris@ozmm.org ]
 *
 * Usage:
 *  
 *  jQuery(document).ready(function() {
 *    jQuery('a[rel*=facebox]').facebox() 
 *  })
 *
 *  <a href="#terms" rel="facebox">Terms</a>
 *    Loads the #terms div in the box
 *
 *  <a href="terms.html" rel="facebox">Terms</a>
 *    Loads the terms.html page in the box
 *
 *  <a href="terms.png" rel="facebox">Terms</a>
 *    Loads the terms.png image in the box
 *
 *
 *  You can also use it programmatically:
 * 
 *    jQuery.facebox('some html')
 *
 *  The above will open a facebox with "some html" as the content.
 *    
 *    jQuery.facebox(function($) { 
 *      $.get('blah.html', function(data) { $.facebox(data) })
 *    })
 *
 *  The above will show a loading screen before the passed function is called,
 *  allowing for a better ajaxy experience.
 *
 *  The facebox function can also display an ajax page or image:
 *  
 *    jQuery.facebox({ ajax: 'remote.html' })
 *    jQuery.facebox({ image: 'dude.jpg' })
 *
 *  Want to close the facebox?  Trigger the 'close.facebox' document event:
 *
 *    jQuery(document).trigger('close.facebox')
 *
 *  Facebox also has a bunch of other hooks:
 *
 *    loading.facebox
 *    beforeReveal.facebox
 *    reveal.facebox (aliased as 'afterReveal.facebox')
 *    init.facebox
 *
 *  Simply bind a function to any of these hooks:
 *
 *   $(document).bind('reveal.facebox', function() { ...stuff to do after the facebox and contents are revealed... })
 *
 */
(function($) {
  $.facebox = function(data, klass) {
    $.facebox.loading()

    if (data.ajax) fillFaceboxFromAjax(data.ajax)
    else if (data.image) fillFaceboxFromImage(data.image)
    else if (data.div) fillFaceboxFromHref(data.div)
    else if ($.isFunction(data)) data.call($)
    else $.facebox.reveal(data, klass)
  }

  /*
   * Public, $.facebox methods
   */

  $.extend($.facebox, {
    settings: {
      opacity      : 0.6,
      overlay      : true,
      loadingImage : '/img/facebox/loading.gif',
      closeImage   : '/img/facebox/closelabel.gif',
      imageTypes   : [ 'png', 'jpg', 'jpeg', 'gif' ],
      faceboxHtml  : '\
    <div id="facebox" style="display:none;"> \
      <div class="popup"> \
        <table> \
          <tbody> \
            <tr> \
              <td class="tl"/><td class="b"/><td class="tr"/> \
            </tr> \
            <tr> \
              <td class="b"/> \
              <td class="body"> \
                <div class="content"> \
                </div> \
                <div class="footer"> \
                  <a href="#" class="close"> \
                    <img src="/facebox/closelabel.gif" title="close" class="close_image" /> \
                  </a> \
                </div> \
              </td> \
              <td class="b"/> \
            </tr> \
            <tr> \
              <td class="bl"/><td class="b"/><td class="br"/> \
            </tr> \
          </tbody> \
        </table> \
      </div> \
    </div>'
    },

    loading: function() {
      init()
      if ($('#facebox .loading').length == 1) return true
      showOverlay()

      $('#facebox .content').empty()
      $('#facebox .body').children().hide().end().
        append('<div class="loading"><img src="'+$.facebox.settings.loadingImage+'"/></div>')

      $('#facebox').css({
        top:	getPageScroll()[1] + (getPageHeight() / 10),
        left:	385.5
      }).show()

      $(document).bind('keydown.facebox', function(e) {
        if (e.keyCode == 27) $.facebox.close()
        return true
      })
      $(document).trigger('loading.facebox')
    },

    reveal: function(data, klass) {
      $(document).trigger('beforeReveal.facebox')
      if (klass) $('#facebox .content').addClass(klass)
      $('#facebox .content').append(data)
      $('#facebox .loading').remove()
      $('#facebox .body').children().fadeIn('normal')
      $('#facebox').css('left', $(window).width() / 2 - ($('#facebox table').width() / 2))
      $(document).trigger('reveal.facebox').trigger('afterReveal.facebox')
    },

    close: function() {
      $(document).trigger('close.facebox')
      return false
    }
  })

  /*
   * Public, $.fn methods
   */

  $.fn.facebox = function(settings) {
    init(settings)

    function clickHandler() {
      $.facebox.loading(true)

      // support for rel="facebox.inline_popup" syntax, to add a class
      // also supports deprecated "facebox[.inline_popup]" syntax
      var klass = this.rel.match(/facebox\[?\.(\w+)\]?/)
      if (klass) klass = klass[1]

      fillFaceboxFromHref(this.href, klass)
      return false
    }

    return this.click(clickHandler)
  }

  /*
   * Private methods
   */

  // called one time to setup facebox on this page
  function init(settings) {
    if ($.facebox.settings.inited) return true
    else $.facebox.settings.inited = true

    $(document).trigger('init.facebox')
    makeCompatible()

    var imageTypes = $.facebox.settings.imageTypes.join('|')
    $.facebox.settings.imageTypesRegexp = new RegExp('\.' + imageTypes + '$', 'i')

    if (settings) $.extend($.facebox.settings, settings)
    $('body').append($.facebox.settings.faceboxHtml)

    var preload = [ new Image(), new Image() ]
    preload[0].src = $.facebox.settings.closeImage
    preload[1].src = $.facebox.settings.loadingImage

    $('#facebox').find('.b:first, .bl, .br, .tl, .tr').each(function() {
      preload.push(new Image())
      preload.slice(-1).src = $(this).css('background-image').replace(/url\((.+)\)/, '$1')
    })

    $('#facebox .close').click($.facebox.close)
    $('#facebox .close_image').attr('src', $.facebox.settings.closeImage)
  }
  
  // getPageScroll() by quirksmode.com
  function getPageScroll() {
    var xScroll, yScroll;
    if (self.pageYOffset) {
      yScroll = self.pageYOffset;
      xScroll = self.pageXOffset;
    } else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
      yScroll = document.documentElement.scrollTop;
      xScroll = document.documentElement.scrollLeft;
    } else if (document.body) {// all other Explorers
      yScroll = document.body.scrollTop;
      xScroll = document.body.scrollLeft;	
    }
    return new Array(xScroll,yScroll) 
  }

  // Adapted from getPageSize() by quirksmode.com
  function getPageHeight() {
    var windowHeight
    if (self.innerHeight) {	// all except Explorer
      windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
      windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
      windowHeight = document.body.clientHeight;
    }	
    return windowHeight
  }

  // Backwards compatibility
  function makeCompatible() {
    var $s = $.facebox.settings

    $s.loadingImage = $s.loading_image || $s.loadingImage
    $s.closeImage = $s.close_image || $s.closeImage
    $s.imageTypes = $s.image_types || $s.imageTypes
    $s.faceboxHtml = $s.facebox_html || $s.faceboxHtml
  }

  // Figures out what you want to display and displays it
  // formats are:
  //     div: #id
  //   image: blah.extension
  //    ajax: anything else
  function fillFaceboxFromHref(href, klass) {
    // div
    if (href.match(/#/)) {
      var url    = window.location.href.split('#')[0]
      var target = href.replace(url,'')
      $.facebox.reveal($(target).clone().show(), klass)

    // image
    } else if (href.match($.facebox.settings.imageTypesRegexp)) {
      fillFaceboxFromImage(href, klass)
    // ajax
    } else {
      fillFaceboxFromAjax(href, klass)
    }
  }

  function fillFaceboxFromImage(href, klass) {
    var image = new Image()
    image.onload = function() {
      $.facebox.reveal('<div class="image"><img src="' + image.src + '" /></div>', klass)
    }
    image.src = href
  }

  function fillFaceboxFromAjax(href, klass) {
    $.get(href, function(data) { $.facebox.reveal(data, klass) })
  }

  function skipOverlay() {
    return $.facebox.settings.overlay == false || $.facebox.settings.opacity === null 
  }

  function showOverlay() {
    if (skipOverlay()) return

    if ($('facebox_overlay').length == 0) 
      $("body").append('<div id="facebox_overlay" class="facebox_hide"></div>')

    $('#facebox_overlay').hide().addClass("facebox_overlayBG")
      .css('opacity', $.facebox.settings.opacity)
      .click(function() { $(document).trigger('close.facebox') })
      .fadeIn(200)
    return false
  }

  function hideOverlay() {
    if (skipOverlay()) return

    $('#facebox_overlay').fadeOut(200, function(){
      $("#facebox_overlay").removeClass("facebox_overlayBG")
      $("#facebox_overlay").addClass("facebox_hide") 
      $("#facebox_overlay").remove()
    })
    
    return false
  }

  /*
   * Bindings
   */

  $(document).bind('close.facebox', function() {
    $(document).unbind('keydown.facebox')
    $('#facebox').fadeOut(function() {
      $('#facebox .content').removeClass().addClass('content')
      hideOverlay()
      $('#facebox .loading').remove()
    })
  })

})(jQuery);

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=facebox.css
Content-Type: text/css; charset=UTF-8; name=facebox.css
Content-Location: http://www.newscientist.com/css/facebox.css
Content-Transfer-Encoding: 8bit

#facebox .b {
  background:url(/img/facebox/b.png);
}

#facebox .tl {
  background:url(/img/facebox/tl.png);
}

#facebox .tr {
  background:url(/img/facebox/tr.png);
}

#facebox .bl {
  background:url(/img/facebox/bl.png);
}

#facebox .br {
  background:url(/img/facebox/br.png);
}

#facebox {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 100;
  text-align: left;
}

#facebox .popup {
  position: relative;
}

#facebox table {
  border-collapse: collapse;
}

#facebox td {
  border-bottom: 0;
  padding: 0;
}

#facebox .body {
  padding: 10px;
  background: #fff;
  width: 450px;
}

#facebox .loading {
  text-align: center;
}

#facebox .image {
  text-align: center;
}

#facebox img {
  border: 0;
  margin: 0;
}

#facebox .footer {
  border-top: 1px solid #DDDDDD;
  padding-top: 5px;
  margin-top: 10px;
  text-align: right;
}

#facebox .tl, #facebox .tr, #facebox .bl, #facebox .br {
  height: 10px;
  width: 10px;
  overflow: hidden;
  padding: 0;
}

#facebox_overlay {
  position: fixed;
  top: 0px;
  left: 0px;
  height:100%;
  width:100%;
}

.facebox_hide {
  z-index:-100;
}

.facebox_overlayBG {
  background-color: #000;
  z-index: 99;
}

* html #facebox_overlay { /* ie6 hack */
  position: absolute;
  height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
}

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=dn18534-1_300.jpg
Content-Type: image/jpeg; name=dn18534-1_300.jpg
Content-Location: http://www.newscientist.com/data/images/ns/cms/dn18534/dn18534-1_300.jpg
Content-Transfer-Encoding: Base64

/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkS
Ew8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJ
CQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
MjIyMjIyMjIyMjIyMjL/wAARCADlASwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEA
AAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh
MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6
Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ
mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx
8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV
YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp
anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE
xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDG
XxDIpA5xU0mttIgJJrFEWZKvfZRsHFeb9Zmjv9hBs0LPWfLbJbFX5deEkWA1c+LQ
U77Nip+tPsV7CPcbcTfaJ8471rWcyQICCBWasFSrD7mmsXJCeGiza/tPPAIAp6am
CcA1jCD3pwjZehqvrsiPqsTda9Gz3rFvLgSEjOaYyyEcsTUDRsDQ8ZJgsLEoy2+8
kkVXa0I9a1xGT2p4t89qmOLki3h00YbWhI71Xh0vzLtS3SumFrx92k+y7WyBV/XW
R9VidBoFrBDGvAzXSiSFF4xXBxXM8IwuRU7alc7cEmsniDVUTb1S9VEYKRmuI1G5
mO7b3q/NcvJkuTgcmsuaVpVbYmF4Kk8HGeeDW1Gs3sjKrSS3ZjeXPPPg5wOtddpE
MMMIkZhgDtzWHaokL745jIxJ2k459j7VoW32x/kjiVSehxn+VdLrSOb2SOmW8hm/
dxk5xnkYpY1jkPLDrWXDZTbAZrx/NQ8oq4b8aRrpdrrHM42n7rAUe37i9ia1xbiJ
NynFJZ34ifk8Vz01/dBthlznhTnAPt9aqDVNkpWYMhHUkdPrTlVTQ407M7+TVkEe
d9UDffaCQGzWGG8yPcTkY9aLK5VZ8Dsa56VSEpWOirzxibYtAW3P1pLjAGAO1WkY
GIMTWfcTZkOPwrvR54+CIZ3Gi5bkDtT7YkxZNOZA5FIZStz85z60+dBJHTzDsxio
3baopMDkNbgKOWArHhucV0WtuGB+lcuv3ziuOtFXO2hJ2NNNRZRxS/2k2epqkq07
y+Olc2h1LUvjVmA5NMOpknJNUGSm7KNB2RtxsDL+NaycgVy8U5a6A7ZrpYpU8jrR
7FtXM+azsWFQUMgqk96F4zT4LreOTWcabZTlbcmIx2oGajkmAGc0xZxn60lTbdiu
dJalxTingiq3mYPWmPeLH3pcrvYd1a5ewCKjdATUUF2JR1qwzgDJpOLTBNMI4s1Z
SMVWS6XOOKlE4NS4tbjTTLQjBprRioPtsadTUiXKSdDSswuNMQ9Ka6KqknoKlaRV
61Rv7uNLR23cAUKLbHexmy3Qnv0toP3rudojC53Gurtvhxf3rK1w3lr1Az09qf8A
CrQ1uZZ/EN0i7VPlWinoP7zf0H416yHC49K9KEFFJHJLV3Z55B8L4oQP3gA74qeb
w22n2U8aDDEcOOp+ld21yorN1C4jkibnOO1OTXQIxvueM6gzWgIYlJU4B9axrq4k
3RXIGUkyGHpXR+MfLikDf3wQQfrXEtd7rMITgDP9aiI5ouwXoaGRX+Ycg5prXoli
xIQxAwG7iueiumVmyc80s9yY5MqflcZ/GteUyudFpWrfO1nKNjfwc8VpWUubjHvX
FfaMtFcKfnQjv19K6zTZVllWRcYYZqI01GpzIcpXhY6qW4ItgAappIzOM1YwrRAH
0pIoAWA9K70cROZSqgA9qYLhg30qQWzYGelMeIAfWkA83GQM9hVC5nwD9KkkYLms
u8nHzc0mNGNqs5YkZrJhGSTVu9Jd6rxLt61z1VdHRSlZlgcCrUVq0se4VQMnIrqN
M8t7YGuRQudMqnKc7Khjba1QFuelaOtbEnG3vWYmSuaFE059LlZbwBw3erf9rvtC
54rICUuytrI0u+xqnUt3U1LHqgReDWKE96XYexpKKWwNt7o3v7VDDBNPj1JBjJzX
PBTS4b1oUUtht33R041NSc5qN7pJD96udG4d6cGf+9U8qvcL6WsdTDdJEoG6pn1F
XUYauSEkg/ipwnkHek4Xdxrl2sdPHcZk3F6ti7G3G6uQF1KO9PF5N605R5lqJKK6
HQXDyyH5Wq5YyNGBuauXW/mHen/2lN6mpcLqwcsb3Ouubgsp2mue1ieSLTptzH5u
AKrLqktRT3IvNQsLeYny2mXeAO2aqnBJ2M61lG6PoPwfpw0vwnplocqVt0Z8/wB5
huP6mt0uChIYYXrXn0HxDMk8dpdWZtyW2Bx92tPVPFUOjSDzoGlifHStG0ZRTsdA
ZA7D5/mPRRVW5ckFFXn1Nc5D8TtJllMcVg6n+8eKvP4p068AEbFHYdGGKh6FLU4r
x3bnyHk64GSfSvL0uD5RRj71694lDXOmXCbOCjHP4V415bGzMg6o+DV09iKumw1X
OSR64pZmzGvHSoojkn2NSOQ/Fb2OYbH1ZDxXU+GpjPCFH3kODXLAZO4nkVt6BOLX
UPm+5KMH61LdtSkubQ9FhjZo1zVpNqHkc1hxaoigfP8ArUj6rGw+9VqtETwkzcku
VC1nT3Y556VR+3Rv/wAtBTS0T/8ALQc+9HtYi+qzGXF1gdaxLu5JJ5rcaKB+rCqU
umQSE/MKPaIPYT7HOmTfJipH+UZrYTRIkk3hgTU0mirLGcHBx2rOck1oXGlJPU5V
WLyhRySeK7TTraSGwGR2rMsvDzRXau5yAa7iCGNrUJgdKztoXNO55rrDn7Xg9qtW
NiZLVWx1q7q/h+5uL1njGV7cVr2GmzQ2ioQMios7FvZHnG004Ka0P7MnHbNH2Ccf
wUc6O32UjPwfSjB9KvGymH/LOkNrKP8AlmaOZB7ORS/CjNW/s0n/ADzNIbdh1Q/l
S5kPlkVQaXdVjyT/AHT+VHle1F0CjMr7qXNT+SPSjyRRdDtLsQ5FOBFS+QKXyhSu
h69iIkUlS+UKPJoD5DFzniur16E6Roukzi1URSp5glixuc8YyT/KuZ2gLitbRtfv
9XuNN8L3KQ3NgbkCMSAhohnJwR29q3o2V2zgxTbskb1v/aWryRWktogmknWOONQR
w3f2xXWeLooGu7bT7mPyX2BVO7IZuB/UfnXZadp1lZXT6nLOpbaRGu0KF7Z+uOKx
74RXuowyMvzhyY2dcg0SktGEYyszy2aK80u/8kwQNBkgs0fP+NSwpe31wY7WA78Z
2qcL1I7/AEr1O80ZL2QvOYkyOSIs/wBabYadpOk7nj3SzsclmGOf6VEqmlilB7o4
1dP1mC0P2qwVlx1+0DivLminzqNukAKhix5Hy17vqt2tyGiB/djr7143rji01/UA
gwki5GPpRCV3sTKNlqzloDjjHU5NNDHJGe9OiON2e44ppGSOMZ611HGPikIbGMit
CKUKiEZDKcj6VmqcyjH0q4uNufWs5ouDNF5XKhlY1H58v981DbvvjK+lKeK53o7H
oU/eV7kouJv75pReTjo5/OoM0m6i5pyvuWjfXP8AfNH9o3IH3zVbfSbuKLi5X3LY
1W6H8ZqVdduk/iNZ26jcKdxcrNdPEtytWI/FtwnY/nXPnFNOKpSJcGdWnjSTo0dP
/wCEyY87cVyFLTuLkNaPXDjDLS/23z93isbFKOKj2cDRVai6m2NcTbgpzT01iJ2A
IxWDj6UYpeyiP28zo21SBD2NKup2rckCubYZoxxS9jEpYifY6pbyyPXbUomsHGfk
rkefelBYDqaXsV3D6w+x2A+wn+5T/stg6kjbXHb2x940onlHRz+dHsX3H9Y8jsBp
9k3cCl/seyc8Pj8a5AXc6/8ALQ/nUn9o3K/8tTS9kyvrETp20K3Jwsv60Dw9G33Z
q5pdUuh0kNWYNUutw+c9fWl7OQe2iSa7p76asZ3ZVuKk8DhYvHeleZ3kK/iVNV9X
up72zwxJ2fMPwqpo16bfxDpt3nlLlD+ZAropr3Tzq0rzue4eLrC+eBZtOnZWchdg
7e4qlodj4kmaKPULpXt4mDbm+8cdAMVo3uo6o7yJbR2giX5YxNJhjjviqUOualbO
Fnso2I43QSA/pUuJ0JyUbnVz3AEWG4cDmsG5nOWIqM6h/aGZCCjDqp61n3k7DKLn
3qGJMpahe+VEwByTXnmvIWuXnfglP5V2k42lpJT9K4rXrkTlgvf5RVQ3IqPQ5qaP
y3204xtknHTipXAknz1wcfpU9tiWWWMkAsPlJrpucVjNUtHNz68irgIJAB4JyKW8
g3sZUHKDEi+hqqHOc+nIoeqBaMv2nyXKq3RgavtEueetZ1u4LKHyCD8rCvUvDHh7
w5reneZcXXl3CgeYhOMc9R+lYSi29Dqo1Ix+I878haQ249a9jb4aaA7gR6gCD33V
DN8KtOUjZfZB96XJM6Pa0mePm396YYD2Nest8MLYkhbtuDiq7/DBCwVL05pWn2Dn
p9zywwtSeU9elTfDKdFyt4p+oqlL8OtRX7k0bU/e7BeHc4Exv6UnlP2Wuyk8C6sg
ziM/jUDeEtVT/lgD9DSu+w9HszkzG/8AdNJtf+6a6g+G9TXraN+FN/sHUBx9jko5
vIVvM5fkdqOfSpsDPQ0YXHequidSLNFShY/WnEJjrRoPUgozU2xT/EKTyh/eFGga
kdKDTzD7ik8k0aBd9huaM0vlN6Gjy39DRYfMJ1pCBnpRsk9DRtcdQfyosLmQqrkg
etWYkyQDnHYVAmVIJXNW1IBGwHOOnpSdxXRLLIq27L3xWCZGinRk6xsGH4HNaN87
IuSMe1ZJOSc1rTWhx1Hqe2W1la+JrW31Vrh1WVAcKeh6EfnVoaHDbtsjunPqSa8u
8L+KZdLjbT5XxbyNlWJ+4T/Q12ou7uTD+YSO1Z1EonTSlzxNudre0UolwHcdSDWT
LqipuywPvWXcid3JLHn0rLuQ6ock1mrGjQ7WNaLjYrflXKXVw2SWOT2qzdht4B5Y
1nXSlZFDdcVvBI5asmLCexOGPSlbIKFMg/dP1qo0nOBWhaMiQF2G592B+X/161eh
zrXQhnlZbhyG4bCnHfjmq6t82z3qzGqzyszkKoGQKbFp808uY1OCeDRdLcLN7Gmu
nuYEZRnIzj2qe2aeFsh2VTx1q7ptvcoirKu3HatA24kBCojZbkVyyn0OqMepkvqN
/GfkuHA7YY0g8RaquALqXj/bNa8ml7lOI8Y9RWFfWLQy/IhIPt3ojNM2Wpej8Wa1
F926l65+9U6eNtbjJIuZOfWubMbryVYCmkn1arugt5HWp8QdZGA02QPVatJ8S9TT
gqjD3WuHDMP4jS+Y4/i/Sn8ybeR3w+J1yVAe1hb8DU8XxMjVcSafG30YivOjM567
T+FIZScHavHtR8xWXY9Oj+JWn7fn04j/AHZKsJ8RdH2jNnNn/fFeVeYpHMa03IP8
A/OgLLsLub1pdz+tJmlzUm1hQ7D0rQ0u1F9OUchVFZ2a1NF/4+QM4yaunFSlqZV5
uELo6WPwrbyoNvJqyvgaNgMkir1o08ABU5FaMepzgYK10+zj2PNdep3MqLwDZ5+e
RqsL4E08H7zfnWmL+U9RTxeyHqafJHsT7ap3KcXgbTAOSasDwXpa8cVL9pkP8VL9
ok6lsCnyR7C9rPuCeD9KH8IqQ+DtJIPyKaxLnxVFBP5MJMrDqVPAqm3iG+OT5xXP
Ydq2jh3LoaxhVl1N+fwtocCgy+XH6ZrIvdL0K3jl8qZd+Dt2881jzXskx3SSM5Pc
mqUsrYJJ69q0+qxtqbRpNbsw/EESGRWi6KB171zrA7jgV1t3AJYycc1h36RwRgD7
5rGdBQ2FOPUymOOD1rsfBV9fzXi2bSb7Yg4DckEDjBrk4YGuGVEQtITjivVPCeiG
009G8vEwOSTXHWaUbMKKaldF541yVddre9Z15Zq6HFdbcWa3MQYKN3eqI0xE+Yng
etcVux6HNdann93p7LdQsy4Unbn3rG1SzIkDKO5GK7vXbrT7eIo8qvJ2SPkiuKu5
5LskIGQ56461004zeqRzVLbGNJAYmGe4yKuW1u0KqZlby3+YFR0qytjK2DKwPuR0
qzMk0qCONxge1dPsqrWxioJalB4YthOGIPoMVNHcz2wAfhT04qwlkw2+dMzgH7va
rpSMnfIoJ7DFaQwja98pIqJcXJwxPyHpmrizXSPhEcEdx3pRHuO4qRSyzNGg2mtP
qVK2pd2Tw6q0c3kzMQ3qeDU738EhxMgIPUj+dYzg3WQy5J6MOoxRfP5Nsh2ZkyMk
frXPUwEbNxY1Nou3lmrgsjF0PIwetY0tuy5KocA8jvVq1uzCQj5aJuR6CrV0UYBl
yeOCK4XFwdpGsajexiEEHlT+VNJHofyq5KsZbIkcZqLavaY/iKu6L94r5Wj5anMY
I/1y/lSeWT/FGaegve7EGB6ijA9am8ls9Iz+NJ5LD/lmv50adxXfYo+f7UonFHlL
SeSKv3TL3x4mBNadlIYpVI61lpB+8XnvV6Fv39bUkrXRzV5S0TO8sNSzEu6r329c
9K5W0mwo5q0boIM5rU5bG+b/ANKT7aT3rm21NQetSQ33mMAOTQFjoTfFQSWwB1NY
era7NKnk25wpOCfWoLqdpRsBO0dh3rMkkVHLH72OAf4R611Qpcur3OmFLl1ZNG4t
1CjmQ9TVuCN5PnkyF7e9ZH9oQQ8j539TU0OuMzDK5WtlJGykjWeRRwBUTKSOarwa
jbTtwdrehp9xeGFRtiMmfSqumiroVkGDg59q5rUF+0TKkQJZAS5A6c1tJexvJiSO
SFvRhwa14tPt7S1EaoGmuByT6n19AK562sTOep2HgTwNY6N4cXXNXULK6byHGdq9
se5qpqXj/TredorPSZnAOA24LmpPGHjS2k0220uwYtDCPmc8BiBgY9hzXm0moxg/
NKij25NcdPDKS5qg720TO0l8ezvGRDpscbHuzFq5+81bUtTf99OwU/wrwBWSNXtV
43lvwqVNUhcYjwM+tdNOjRjsh81+osirCxyu/wB6RbqPpt2moH1BTMY5U2js1MlU
q2RyD0IrW/YV+xZWYySey1L5qRpxVRcxxjPU8moZpcKc0+ayC9iyLzc5OAFX9aqX
WuvGdsKKW9TVG5uNkYQdTyadaWQb95Lyx5xWTnJu0TNyb0RINZvm6t+lXbTUy7bZ
0OD3pFiReiimSBsEIq/WmlJatlK66mq00kQ3Rqjqe4qDeZpMv19KpwySxcZyKnDH
eG6e1Xe5Vx7RYBReMcr7VGZzC6xtxnkD1qZ3yoI61XvYjNH8vVRlT6VhiKSnG/Ud
7bD7hCPmHKn2qiXZSQQKu2F0LkiKYYVvlJ9DWpJ4UublPMtXV0Ht+leWou9jZVVa
7Zzvm5/hFIXU/wANaU3hzVIesG8f7JrOmtbiA4lgkT6rT5WUqiezE3J6H86Xevq1
Q5ozRYLjc0uaSlqySSHmX6U6Jv3pPvTYjjcfapLRdz10QVoI4q7vM1YHO2mXEzAV
ctYMpzSS2ZkJAFUYmEZJZZljjBZ2OABXQWtsbSDBOZGHzN/QVmyQ3VlJ5kLquO2O
tMbWJG4kGG9K6aUVDWW50Qio6s1ZzI0WICAT1Zj1rFuYp1G0qcHlm9aqSXcsl0HL
HCggCnJLPO3+sIUdSTwKtzUinJMns7M3UjO+RGvWrj2k0iFbePy4zwWI5NRJqRij
EVnEXx1dh1PrSG41SXrJgegprlsCsRyWckGCoYEe1WLe/dxsUqsg7NUJl1NOSxI9
6QGe4KqYVEhOAwHU0r22DbY2bS2eS0OqXioLOJzkA5MjKAcY9ORVa+1C9vHeeZj5
so+ZUHCgnOMfl+VWNTtv7Mt4LWV2WdgFZG42r94nHvWHObieYvFcHnsMVD11Yhht
hKf3jz596kTTLY/xtn3qMf2jGf8AWk/UU4XN2v8ArI0kH05oXL1QadUPbTIQOKrS
WDJ80ZNW0vYjxKjxn8xVjAddyMHX1FVyxew7RexmbvtEflSjEq/db19qltZiYzG2
dyHGD2qeaBJBkcMPSqc3mRjzo8GQcMD3HrUtOOottS5I2MDv3qpOcgAVDFeNKPn+
9RJcKr7SOPWk5poTkmiHyzJfKo//AFVsKqooCjpVKyQPI869Pug1cp01ZXHBW1FJ
AppamkU0n2qmyh+/BpQ9Qk0ZpXFctLJUqyA1RDnNSq36UXHcZn7Je5B2o/X6133h
HW/J1FoiAVfAZe2cda4C9+eDd3XmptMv5LeYTqcFcN+v/wBauGrHlndEy7HvWdPu
k/eRIPwqpP4e066B2MFz261xlt4oRyCxwK1odfhMe5X5+taaM5NUOvfh5aXGSqxH
3xg/pWFL8MHEh2lwPZhXRf227D925/OmnV70ngmk4RLVWa6ni9JS0lcx6RIn3Gqa
yB3ioF/1TVYsvviumPwo4KrvNnS2o+QUXdysCEDlj1pbdwkJY9AM1hXNyZHYk9TW
9JK92FJa3GXN5M5OEjx781nyszj5ox9VNTO49ahL+9VJ3NJESZYle/Tmr8EH2hQg
O2BOWP8AeNUslsIud8jba2HWOKIR7sIvX3p01cIoja7SFfLtYg5HG4jiq7vqEgJM
hUe3Ap7XD/dt4gP9pqrzI7fNc3JA/uinJjbGkzxtl50P+82a1tEfzLnzcjfFyhjB
4b1/DFYitCG/cwGQ+r1raPqF3YvPNbiJZzGyKxXITIIJHvg9ahSJTLes3nmXs0tx
K887IpLSDk5Jyf5VjmC3lxsnQMf4c4pssjh2aWQOeMkcmofLhkGQwz9MGi9wuWfL
uYOUmYD35FOF1IP9dEHH95eDVVHmg4jkyv8AdPIqUXMb8Opjb1HSmnbyHcsh4Zh8
pz/st1pgQxtmNip9O1RMufmGGHZloEh6E5FO47lvzi3UYNMfDc96r+ZS76fMO5Uu
ITG29RxVeTLYK8k8VosQwINV4Yv9LQEfLnP5VjKPYza7GjEogt0iH8I5+tIXJ4pH
Y5poPvW+2hoO3UEimZpDU3AUmm5pC1IWpCuO3U9XOagLUKxpXC5Yc7o2X1FQ2hJQ
hfTpUiniqcRKdGwawr9Ae5dDywrljjsBmrVtqTKfvYrKnnyiAkhh196iST0rODZj
JI7iz1vbwMGtFdSmkG4HAriNPYtKOeK05NUETbAelaENGBSg4ptFcp6VyQf6o/Wp
rQ4cVXz+6qS3bDCuvojz5fEzoGkxZPz1GKw5pY0bAO4+1SXlz8ojZjgfwjufeqJl
bHyKqj261rF8sbGkdEKzu33YvzqMiXHOBQJTn5mNRSyPuyfu1LYNlqxX/S9zHOwF
vx6VallBbJ6VSs3A80+wpzSfj7VcXaI07Ika5bBEQx/tGoMITukYuaesbP6mpfKR
B87Ae3eizYash804woCj0FOWRlGTmpQv9yI/Vqa0TtyRTswsRb+OAFP6UwshOHXY
3qO9Svbk1CY5VGMbh6EVDuhO4u7HHUUhYH3qPjoVZfpRsJ+6wPt0qbsVx6sUOUYi
n+dnqMH1FVyHXqppPMBPXFK9guWd/vS7z61Xye1G+nzBcsF6fbn97n0FVd9SwSYd
vpVKWo09S51NLkUxFYjP8hStuH8J/KtCwJGKYW9KQsfpTSxpCbDdTd3NITzTCahs
VyXdmhTUYNLmi4FgPgVl+d3HX0q6zfKfpWURtYj0rOpqTJkrSFjnNTxngCqgqxDy
agg1IJPKjJHpVWWYs5OaVnwuBVZj81AGl9kkppt5B2qZ9RhPRTVWS+B6VPIjX28h
pypZT1qxbKVUybdxHQf41QWQyzYHUnFanlhiLccov3z2JremrkRV3cjBkmztAz/0
zyf16VDMJogTIpAPdlrZjIRAqgAdgO1K6q4IYAg9jXR7O63NuU53KynH3W/SgK68
EBlq3eaeEO+HP0qkxyOTg96waaepk01uLa5MjRqOT0rRjstoywJPoKdp1msCefIP
3rDgf3RVt5BWtOFldlxjpqQfZ2IwWCL6L/jSrBGnQDPqaUyc0wyVehehIabxUZkp
pkpXFcm4703aKi3ik8ylcVx5RD1Appt4m6qPwpN+KA9LQNBDaqPuuajezVvvKD7j
g1Lvpd9KyFZFJrFgcxuR7Go2imUfvIt3uprQMnFNL5+tS4LoLlRmFcdD+DcGpbRW
a4ClGIxkgCtQWbyJl0OOwxkmlXS0SNi7MhPQKc4oVJ3uHI7jH87pukjHsmRSLHMT
gXLE1P5f2dMRTs47rJyD/hVWR/MzsOGHVG5/KtGrblDmWZesob2ZRVeSQr9+IH3Q
4/SlFyPuuMH1zTHfNQ2uhLY1Ssv+rcZ/utwaGR1OGUio5IwxyKVJJVG1jlfes79x
DhTs0wmkLUXASU/Kaz85+tWp3+Q4+lVRWcmQ2PWrEI5quKnjJpCJ3OB1quTzT3PH
WoutAHtz/B3wxeT3ENhrmpxNAcO0sKsvTPBwM1FZfAi0vJiE8SStGOv+ihSPzNd1
N4w0m2LeTYR4HB8yTp9evvVC5+JNtAN0b2aMR0Uhj+n4VzwVXmvOSsUmuW1tThp/
gL4msrvzLW6sbqENlMuUYjtkEYz+NUX+GXi+0cI+lbsn7yTIR/Ouzb4h3tydsUl3
IDx+7iIHp6VUn8RazdqdlrcEnkGaUKO56c98flXQq0YdSoqfRHMX3gPWtM0qW+uj
axiIbmiE4Z8eoxx3rmQe3evQJhqN1ZXCah5SwuhG2Llh07n6DtXOPoNi5AW8uEX+
6Y1P65FVHHU9pM6I05tXsc/IygYJ5/Os9rZXuUbBCk5YV1E/hreQIdVREPYwMD+Y
JqJ/CZjTdBe2zyerswJ/MVTxVGXUUqU+xkPNx7VC01acnhfVsEottJ/u3C/1Iqs/
hrW1/wCYfI/+4yt/I1X1im9pIlqXYoNJTDJVmTRdXjBL6ZeADv5LH+lUpIZ4jiSC
VD/tIRR7RPZkO47zKQyVAZAOpx9aN4PejmJuT+ZSb6g3UbqOYVyffRvqDdRvpcwX
LHme9G/3qvvqe2ge5bjhB95+wpptuyGncfGrSNhR9T2FaMFusKiRu3r3qSKKOFBx
wOQvr7mobifcDz2roUeVXZolYla5+YsG5z2qtJcEk81TWUg4z16Ux3OT2qHUFzEz
TnPWq8jbuc4I6EU0tTGNZSlchscz+YpJ+8OtRq+07WyV/lTd205oIz9DUNkXJiCn
Ibcp70bqiDFRjPFIXouO5IzU0ZbpTM5IqZeCB2pLUCGdMRfjVYVozJ5kLAdcVngU
SVhNDlqdOlQLUwPy1IhWqOnHmm0AexR6DpisWkj81jyTKxY/rV6K3sbcARQxL9FA
rNExbncc07e2OteU53PUVOxq/ao1PAFIb3nisgtzz+lKD7n86nnK5DQuLpniZexG
KzSCegqQkkdaaMdzU3uUlYZ5b9cU0qe/H4VKXA6c0m9j2qhjFU9ufwpxjwMmnBjT
icjvQgGKZF+7Iy/RqkF1djhbqXHpvNJuAHSmFs0AOaWVz86xSf8AXSJW/mKja3s5
P9bpdg/1tlH8gKeG55qQEHqaabE4p9Cg2kaNIfm0W05/uM6fyaq0nhzw/ISDp08f
/XK6P9Qa1mwaAg6k5p881s395LpwfQwX8JaC/wB19Rh/4Gj/ANBUD+CNNbPlavdL
/wBdLYH+TV02wHsKTbjvVKtUX2ifYU30OVHgNDIMa3blO4aF1P8AWr48JTqipBeW
DKOgEpX+YraOBwQc0hxjgVrDF1YbMSoQWxz1x4U11v8AVwwS46GO4Q5/Ws248M+I
FBzpF2fXam7+VdjhT2OaMsnKsyn2bFX9fqvdIToJ9TzifTb+AYmsLqPH96Fh/Sqj
FgMOGBHqMV6st/fIMLczAf8AXQ0pv7pz+9cS+zoG/nQsbLrEzeF7M8jMg9RTS4r1
tzbyA+bplhJn+9bL/QVUbS9EkyZNCs8n+7uX+Rqvra6oh4WXc8tLUBiK9Jk8OeHJ
Dk6bNF/1zuGH881AfBmgS/6uTUIj7Mr/ANBTWKh5kPDTR57uJppbFeg/8K4tpj/o
+o3Y/wCulsD/ACNVLr4azwAsNZslA7TAoaaxNJ9SHRmuhxcfXNTZ4q1qOkvpeC15
Z3Azj9xLuI+tUN/FbxkmrohprctBqoSDbKw96s7sYqq3zOT6mqk7ibHLUlRrTqkQ
uc0lHakoA9f+zH+/+lHkH+/+lFFeMewg+zH+/wDpTxbY/j/SiiiyHcU2/H3h+VKL
f/aH5UUUJCuBgOfvD8qBbn+/+lFFUK4ogOfv/pS+QQfv/pRRVWAd9mzzv/Sg2nA+
f9KKKVguN+zHH3/0oW2/2/0oooC7FNr/ALf6Un2b/b/SiiiwXY4WuRw+PwpRbdt/
6UUUWC4fZhj7w/KkNuCPvD8qKKdkFwNt/tj8qb9nyPvfpRRSsA37KP736Uot+fvf
pRRTsFzRsdIF04Bm2/8AAP8A69aFzoVrZReY7PL7Z20UVm9zOUmmc1eeILaxlKRa
RCxHeSQtTbTxFquoP5ds1lZj1jtQx/U0UVt7OPLexCbb1Nf/AIRu7vYPOvddvJAR
kpEBEP0rlNS07TbOZ8WfnsvO64lZ80UVlTk+awpIyF1ya3JWC1s416YWAf1rnr21
a4uml3qhfkhUwM/nRRXpwgou6OSUm1qR/YSV/wBaP++f/r1ANOb/AJ7D/vj/AOvR
RWzMx408/wDPYf8AfH/16PsDf89h/wB8f/XoopAL9gP/AD1H/fP/ANel+wH/AJ6j
/vn/AOvRRQB//9k=

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=art_print.gif
Content-Type: image/gif; name=art_print.gif
Content-Location: http://www.newscientist.com/img/icon/art_print.gif
Content-Transfer-Encoding: Base64

R0lGODlhEAAQAMQAAP////n39v7t7/Dv7uzn59/e3t7f0dLS08XDwa61urqzna2c
hJyenJOKcXuBiFpkbjtKVDExMh4mKBUZDwEBAv4BAgAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAUUABUALAAAAAAQABAAAAVsICAqJLkwyyKuosoGQ8Ou
LhvPYhO8hLw2DkeDMCgOCAUg8OAQPQrQ6OEhchx8QGFQW2XivtbmdxauZs/iMgDC
QCTeb0hX/BBIKPgJgAoIC2srAQtbBUhXABF4FBIACwcHBoGAP18LDSmXloAhADs=

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=art_send.gif
Content-Type: image/gif; name=art_send.gif
Content-Location: http://www.newscientist.com/img/icon/art_send.gif
Content-Transfer-Encoding: Base64

R0lGODlhEAAQAMQAAP///4aGhuvr6+zs7LKysrOzs9HR0YKCgoSEhIWFhc/Pz83N
zYmJidPT097e3oODg39/f9bW1oeHh8vLy+rq6u7u7oCAgOLi4tDQ0IqKin19fdTU
1Pf39wAAAAAAAAAAACH5BAAAAAAALAAAAAAQABAAAAVfICCOZGmeaEoGTOC+MJNE
QFYM6EBIExAIN5NOcGj4AEDcaAiQGI7IgkDEBBwW0KigCkA8AyQBQUo6fEucSkmz
8UESAcThgYDTIRYHgOJYLBQYCg0GEwoGERcqiouMIyEAOw==

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=button1-share.gif
Content-Type: image/gif; name=button1-share.gif
Content-Location: http://s9.addthis.com/button1-share.gif
Content-Transfer-Encoding: Base64

R0lGODlhfQAQAMQfAF+25dvZ12SsPeexZ5KSkh0g/7DP4/zIBOaymvrLUviSEba1
tairpurq6sPGyBqS0+BKCqDGX/DHnsbVqPz8/PPz8/9pOvb29vr6+u/v7+zs7Ojo
6MDAwAAAAP///////yH5BAEAAB8ALAAAAAB9ABAAAAX/4PdxZGmeaKqubOu+cMyJ
Y+DdeK7vfO//wKBwOAzMODaicslsOolGDs5CrVKf2OZluy14vb4FY7zgBRCSCpF0
s7ot2fiQ2/0WdIu8p3zj5wIQgQMbQ2weVm1VQB2MOB2Ojo03jJIelI9MdBd2dzgE
OGM3AQR+NwgQCgoIERECAkCGiIeKPpiWk5C3uLq6tlp0nDmfHhsEAQEOycNTqQoT
rK6wUrM7V7U7tpjZu71YmsGeHg0cBBfJDsU5FwsGDhLPrQzSFBTWOVT0+fr0lPmX
HfwuBWTkj+C+gwgp/Duxj4BDEhkqaBijz8ADAAACvHsWIGE+EhgwyLISsqTJkx1C
2qZUybJlypUtT8qcqfLSCZkEQnLIkCEAg5MALmZMQDQBTZMktoysoklTBy5PL0SV
umVq1KtQm2rdKtWmCU0cGHC4sHNBgAWaHqgFIIHogQFcuZCoUOGNFbp489KlhLdD
371/K/gFLJiv3sOIF5rQK4VDhbJn9ToIYMBAggMHFKRBnBciT7sWeIoeTbq06dOo
U59WXIK0QwIZXjtEHWCAbdIdMuTOzZNEANUaggsfTry48ePIkytfzrw5cSM1Nkif
Tr269evYs2vfzr27d+/QRcgYT768+fMsRIQAADs=

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=addthis_widget.js
Content-Type: application/x-javascript; name=addthis_widget.js
Content-Location: http://s7.addthis.com/js/152/addthis_widget.js
Content-Transfer-Encoding: Base64

LyogKGMpIDIwMDgsIDIwMDkgQWRkIFRoaXMsIExMQyAqLwp2YXIgYWRkdGhpc19j
b25mPXt2ZXI6MTUyfTtmdW5jdGlvbiBhZGR0aGlzX29ubW91c2VvdmVyKGIsZixk
LGMsaCxhLGcpe2lmKGgpe2FkZHRoaXNfY29uZmlnLnVzZXJuYW1lPWh9aWYoYSl7
YWRkdGhpc19sYW5ndWFnZT1hfWFkZHRoaXNfY29udGVudD1nfHwiIjtyZXR1cm4g
YWRkdGhpc19vcGVuKGIsInNoYXJlIixkLGMpfWZ1bmN0aW9uIGFkZHRoaXNfb25t
b3VzZW91dCgpe2FkZHRoaXNfY2xvc2UoKX1mdW5jdGlvbiBhZGR0aGlzX3RvKGEp
e3JldHVybiBhZGR0aGlzX3NlbmR0byhhKX1mdW5jdGlvbiBhZGR0aGlzX2ludm9r
ZShlLGMsZCxmKXthZGR0aGlzX2NvbmZpZy51c2VybmFtZT1mfHxfYXRlLnB1Yigp
O2FkZHRoaXNfc2hhcmUudXJsPShjfHxiLmFkZHRoaXNfdXJsKTthZGR0aGlzX3No
YXJlLnRpdGxlPShkfHxiLmFkZHRoaXNfdGl0bGUpO3ZhciBiPXdpbmRvdyxnPWFk
ZHRoaXNfc2hhcmUudXJsLnRvTG93ZXJDYXNlKCksYT1hZGR0aGlzX3NoYXJlLnRp
dGxlLnRvTG93ZXJDYXNlKCk7aWYoZz09PSIifHxnPT09Ilt1cmxdIil7YWRkdGhp
c19zaGFyZS51cmw9bG9jYXRpb24uaHJlZn1pZihhPT09IiJ8fGE9PT0iW3RpdGxl
XSIpe2FkZHRoaXNfc2hhcmUudGl0bGU9ZG9jdW1lbnQudGl0bGV9X2F0ZS5hcyhl
KTtyZXR1cm4gZmFsc2V9O2lmKCF3aW5kb3cuX2F0ZSl7dmFyIF9hdGQ9Ind3dy5h
ZGR0aGlzLmNvbS8iLF9hdHI9Ii8vczcuYWRkdGhpcy5jb20vIixfYXRuPSIvL2wu
YWRkdGhpc2Nkbi5jb20vIixfZXVjPWVuY29kZVVSSUNvbXBvbmVudCxfZHVjPWRl
Y29kZVVSSUNvbXBvbmVudCxfYXR1PSJ1bmRlZmluZWQiLF9hdGM9e2RyOjAsdmVy
OjI1MCxsb2M6MCxlbm90ZToiIixjd2FpdDo1MDAsdGFtcDotMSxzYW1wOjAuMDA1
LGNhbXA6MSx2YW1wOjEscGFtcDowLjcsYWRkcjotMSxhZGR0OjEseGZsOiEhd2lu
ZG93LmFkZHRoaXNfZGlzYWJsZV9mbGFzaCxhYmY6ISF3aW5kb3cuYWRkdGhpc19k
b19hYn07KGZ1bmN0aW9uKCl7dHJ5e3ZhciBJPXdpbmRvdy5sb2NhdGlvbjtpZihJ
LnByb3RvY29sLmluZGV4T2YoImZpbGUiKT09PTApe19hdHI9Imh0dHA6IitfYXRy
fWlmKEkuaG9zdG5hbWUuaW5kZXhPZigibG9jYWxob3N0IikhPS0xKXtfYXRjLmxv
Yz0xfX1jYXRjaChOKXt9dmFyIEw9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2Vy
Q2FzZSgpLE89ZG9jdW1lbnQsdT13aW5kb3csdD11LmFkZEV2ZW50TGlzdGVuZXIs
aD11LmF0dGFjaEV2ZW50LEo9Ty5sb2NhdGlvbixRPXt3aW46L3dpbmRvd3MvLnRl
c3QoTCkseHA6L3dpbmRvd3MgbnQgNS4xLy50ZXN0KEwpfHwvd2luZG93cyBudCA1
LjIvLnRlc3QoTCksY2hyOi9jaHJvbWUvLnRlc3QoTCksaXBoOi9pcGhvbmUvLnRl
c3QoTCksc2FmOi9zYWZhcmkvLnRlc3QoTCksd2ViOi93ZWJraXQvLnRlc3QoTCks
b3ByOi9vcGVyYS8udGVzdChMKSxtc2k6KC9tc2llLy50ZXN0KEwpKSYmISgvb3Bl
cmEvLnRlc3QoTCkpLGZmeDovZmlyZWZveC8udGVzdChMKSxmZjI6L2ZpcmVmb3hc
LzIvLnRlc3QoTCksaWU2Oi9tc2llIDYuMC8udGVzdChMKSxpZTc6L21zaWUgNy4w
Ly50ZXN0KEwpLG1vZDotMX0sbj17aXNCb3VuZDpmYWxzZSxpc1JlYWR5OmZhbHNl
LHJlYWR5TGlzdDp3aW5kb3cuYWRkdGhpc19vbmxvYWR8fFtdLG9uUmVhZHk6ZnVu
Y3Rpb24oKXtpZighbi5pc1JlYWR5KXtuLmlzUmVhZHk9dHJ1ZTt2YXIgYT1uLnJl
YWR5TGlzdDtmb3IodmFyIGI9MDtiPGEubGVuZ3RoO2IrKyl7YVtiXS5jYWxsKHdp
bmRvdyl9bi5yZWFkeUxpc3Q9W119fSxhZGRMb2FkOmZ1bmN0aW9uKGEpe3ZhciBi
PXUub25sb2FkO2lmKHR5cGVvZiB1Lm9ubG9hZCE9ImZ1bmN0aW9uIil7dS5vbmxv
YWQ9YX1lbHNle3Uub25sb2FkPWZ1bmN0aW9uKCl7aWYoYil7YigpfWEoKX19fSxi
aW5kUmVhZHk6ZnVuY3Rpb24oKXtpZihBLmlzQm91bmQpe3JldHVybn1BLmlzQm91
bmQ9dHJ1ZTtpZihPLmFkZEV2ZW50TGlzdGVuZXImJiFRLm9wcil7Ty5hZGRFdmVu
dExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixBLm9uUmVhZHksZmFsc2UpfXZh
ciBhPXdpbmRvdy5hZGR0aGlzX3Byb2R1Y3Q7aWYoYSYmYS5pbmRleE9mKCJmIik+
LTEpe0Eub25SZWFkeSgpO3JldHVybn1pZihRLm1zaSYmd2luZG93PT10b3Apeyhm
dW5jdGlvbigpe2lmKEEuaXNSZWFkeSl7cmV0dXJufXRyeXtPLmRvY3VtZW50RWxl
bWVudC5kb1Njcm9sbCgibGVmdCIpfWNhdGNoKGMpe3NldFRpbWVvdXQoYXJndW1l
bnRzLmNhbGxlZSwwKTtyZXR1cm59QS5vblJlYWR5KCl9KSgpfWlmKFEub3ByKXtP
LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGZ1bmN0aW9uKCl7
aWYoQS5pc1JlYWR5KXtyZXR1cm59Zm9yKHZhciBjPTA7YzxPLnN0eWxlU2hlZXRz
Lmxlbmd0aDtjKyspe2lmKE8uc3R5bGVTaGVldHNbY10uZGlzYWJsZWQpe3NldFRp
bWVvdXQoYXJndW1lbnRzLmNhbGxlZSwwKTtyZXR1cm59fUEub25SZWFkeSgpfSxm
YWxzZSl9aWYoUS5zYWYpe3ZhciBiOyhmdW5jdGlvbigpe2lmKEEuaXNSZWFkeSl7
cmV0dXJufWlmKE8ucmVhZHlTdGF0ZSE9ImxvYWRlZCImJk8ucmVhZHlTdGF0ZSE9
ImNvbXBsZXRlIil7c2V0VGltZW91dChhcmd1bWVudHMuY2FsbGVlLDApO3JldHVy
bn1pZihiPT09dW5kZWZpbmVkKXt2YXIgYz1PLmduKCJsaW5rIik7Zm9yKHZhciBk
PTA7ZDxjLmxlbmd0aDtkKyspe2lmKGNbZF0uZ2V0QXR0cmlidXRlKCJyZWwiKT09
InN0eWxlc2hlZXQiKXtiKyt9fXZhciBlPU8uZ24oInN0eWxlIik7Yis9ZS5sZW5n
dGh9aWYoTy5zdHlsZVNoZWV0cy5sZW5ndGghPWIpe3NldFRpbWVvdXQoYXJndW1l
bnRzLmNhbGxlZSwwKTtyZXR1cm59QS5vblJlYWR5KCl9KSgpfUEuYWRkTG9hZChB
Lm9uUmVhZHkpfSxhcHBlbmQ6ZnVuY3Rpb24oYixhKXtBLmJpbmRSZWFkeSgpO2lm
KEEuaXNSZWFkeSl7Yi5jYWxsKHdpbmRvdyxbXSl9ZWxzZXtBLnJlYWR5TGlzdC5w
dXNoKGZ1bmN0aW9uKCl7cmV0dXJuIGIuY2FsbCh3aW5kb3csW10pfSl9fX0sQT1u
LHY9ZnVuY3Rpb24ocSxsLHAsYyl7aWYoIXEpe3JldHVybiBwfWlmKHEgaW5zdGFu
Y2VvZiBBcnJheSl7Zm9yKHZhciBlPTAsYT1xLmxlbmd0aCxiPXFbMF07ZTxhO2I9
cVsrK2VdKXtwPWwuY2FsbChjfHxxLHAsYixlLHEpfX1lbHNle2Zvcih2YXIgZCBp
biBxKXtwPWwuY2FsbChjfHxxLHAscVtkXSxkLHEpfX1yZXR1cm4gcH0sRD1BcnJh
eS5wcm90b3R5cGUuc2xpY2UsRj1mdW5jdGlvbihiKXtyZXR1cm4gRC5hcHBseShi
LEQuY2FsbChhcmd1bWVudHMsMSkpfSxFPWZ1bmN0aW9uKGEpe3JldHVybiBhLnJl
cGxhY2UoLyheXHMrfFxzKyQpL2csIiIpfSxNPWZ1bmN0aW9uKGEsYil7cmV0dXJu
IHYoRihhcmd1bWVudHMsMSksZnVuY3Rpb24oZCxjKXtyZXR1cm4gdihjLGZ1bmN0
aW9uKGwsaSxlKXtsW2VdPWk7cmV0dXJuIGx9LGQpfSxhKX0saj1mdW5jdGlvbihi
LGEpe3JldHVybiB2KGIsZnVuY3Rpb24oZSxkLGMpe2M9RShjKTtpZihjKXtlLnB1
c2goX2V1YyhjKSsiPSIrX2V1YyhFKGQpKSl9cmV0dXJuIGV9LFtdKS5qb2luKGF8
fCImIil9LGc9ZnVuY3Rpb24oYixhKXtyZXR1cm4gdigoYnx8IiIpLnNwbGl0KGF8
fCImIiksZnVuY3Rpb24oaSxsKXt2YXIgZT1sLnNwbGl0KCI9IiksZD1FKF9kdWMo
ZVswXSkpLGM9RShfZHVjKGUuc2xpY2UoMSkuam9pbigiPSIpKSk7aWYoZCl7aVtk
XT1jfXJldHVybiBpfSx7fSl9LGY9e3ZzdDpbXSxyZXY6IiRSZXY6IDczOTM3ICQi
LF9ldWM6X2V1YyxfZHVjOl9kdWMscmVkdWNlOnYsc2xpY2U6RixzdHJpcDpFLGV4
dGVuZDpNLHRvS1Y6aixmcm9tS1Y6Zyxicm86USxjbGNrOjEsc2hvdzoxLGRsOkos
Y2FtcDpfYXRjLmNhbXAtTWF0aC5yYW5kb20oKSxzYW1wOl9hdGMuc2FtcC1NYXRo
LnJhbmRvbSgpLHZhbXA6X2F0Yy52YW1wLU1hdGgucmFuZG9tKCksdGFtcDpfYXRj
LnRhbXAtTWF0aC5yYW5kb20oKSxwYW1wOl9hdGMucGFtcC1NYXRoLnJhbmRvbSgp
LHhhbXA6X2F0Yy5zYW1wLU1hdGgucmFuZG9tKCksYWI6Ii0iLHNjbnQ6MSxzZXE6
MSxkY3A6MCxpbnN0OjEsd2FpdDo1MDAsdG1vOm51bGwsY3Z0OltdLHN2dDpbXSxz
dHRtOm5ldyBEYXRlKCkuZ2V0VGltZSgpLG1heDo0Mjk0OTY3Mjk1LHBpeDoidGV2
IixzaWQ6MCxzdWI6ISF3aW5kb3cuYXRfc3ViLGRibTowLHVpZDpudWxsLG9vdDpu
dWxsLHN3ZjoiLy9iaW4uY2xlYXJzcHJpbmcuY29tL2F0L3YvMS9idXR0b24xLjYu
c3dmIixldnU6Ii8vby5hZGR0aGlzLmNvbS9hdC8iLHNwdDoic3RhdGljL3IwNy93
aWRnZXQxMy5wbmciLGlmcHA6bnVsbCx0cmltOmZ1bmN0aW9uKGEsYil7dHJ5e2E9
YS5yZXBsYWNlKC9eW1xzXHUzMDAwXSt8W1xzXHUzMDAwXSskL2csIiIpO2lmKGIp
e2E9X2V1YyhhKX19Y2F0Y2goYil7fXJldHVybiBhfSxnYXQ6ZnVuY3Rpb24oKXt9
LGNvbTpmdW5jdGlvbihhKXtpZih3aW5kb3cucGFyZW50JiZ3aW5kb3cucG9zdE1l
c3NhZ2Upe3dpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoYSwiKiIpfWVsc2V7Zi5p
Zm0oYSl9fSxpZnduOmZ1bmN0aW9uKCl7dmFyIGI9Zjt0cnl7Yi5yZWMoYi5zaWZy
LmNvbnRlbnRXaW5kb3cubmFtZSl9Y2F0Y2goYyl7fX0saWZtOmZ1bmN0aW9uKGIp
e2lmKGFkZHRoaXNfd3BsKXt2YXIgYz0oYWRkdGhpc193cGwuc3BsaXQoIiMiKSlb
MF07d2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmPWMrIiNhdCIrYn1yZXR1cm4g
ZmFsc2V9LGhhc2g6d2luZG93LmxvY2F0aW9uLmhhc2gsaWZwOmZ1bmN0aW9uKCl7
dmFyIGM9ZixiPXdpbmRvdy5sb2NhdGlvbi5oYXNoLGk9MDtpZihiJiZiLmluZGV4
T2YoIiNhdCIpPi0xKXtiPWIuc3Vic3RyKDMpLnNwbGl0KCI7Iik7Zm9yKHZhciBl
IGluIGIpe3ZhciBkPWJbZV0ubGVuZ3RoPjM/YltlXS5zdWJzdHIoMCwzKTpudWxs
O3N3aXRjaChkKXtjYXNlInNzaCI6aT0xO2Muc3NoKGJbZV0uc3Vic3RyKDQpKTti
cmVhaztjYXNlInVpZCI6aT0xO2MuYXNldHVwKGJbZV0uc3Vic3RyKDQpKTticmVh
a319aWYoaSl7aWYoIWMuaGFzaC5sZW5ndGh8fGMuaGFzaD09IiIpe2MuaGFzaD0i
IyJ9d2luZG93LmxvY2F0aW9uLmhhc2g9Yy5oYXNofX1pZihjLmdzc2gmJmMuZ3Vp
ZCl7Y2xlYXJJbnRlcnZhbChjLmlmcHApfX0scG1oOmZ1bmN0aW9uKGEpe2lmKGEu
b3JpZ2luLnNsaWNlKC0xMik9PSIuYWRkdGhpcy5jb20iKXtmLnJlYyhhLmRhdGEp
fX0sX3JlYzpbXSxyZWM6ZnVuY3Rpb24oZCl7aWYoIWQpe3JldHVybn12YXIgbD1n
KGQpLGI9ZixjPWIuc2lmcixlPWIuX3JlYztpZihsLnNzaCl7Yi5zc2gobC5zc2gp
fWlmKGwudWlkKXtiLmFzZXR1cChsLnVpZCl9aWYobC5kYm0pe2IuZGJtPWwuZGJt
fWlmKGMmJmMucGFyZW50Tm9kZSl7Yy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGMp
O2Iuc2lmcj1udWxsfWZvcih2YXIgcD0wO3A8ZS5sZW5ndGg7cCsrKXtlW3BdKGwp
fX0sc3NoOmZ1bmN0aW9uKGIpe2YuZ3NzaD0xO3ZhciBhPXdpbmRvdy5hZGR0aGlz
X3NzaD1fZHVjKGIpO2YuX3NzaD1hLnNwbGl0KCIsIil9LG11bjpmdW5jdGlvbihj
KXt2YXIgYT0yOTE7aWYoYyl7Zm9yKHZhciBiPTA7YjxjLmxlbmd0aDtiKyspe2E9
KGEqKGMuY2hhckNvZGVBdChiKStiKSszKSYxMDQ4NTc1fX1yZXR1cm4oYSYxNjc3
NzIxNSkudG9TdHJpbmcoMzIpfSxqc2w6ZnVuY3Rpb24oKXtyZXR1cm4oKCgodS5q
UXVlcnl8fHt9KS5mbnx8e30pLmpxdWVyeSYmMSl8KCh1LlByb3RvdHlwZXx8e30p
LlZlcnNpb24mJjIpfCgodS5ZVUl8fHt9KS52ZXJzaW9ufHwodS5ZQUhPT3x8e30p
LlZFUlNJT04mJjQpfCgodS5FeHR8fHt9KS52ZXJzaW9uJiY4KXwoKHUuZG9qb3x8
e30pLnZlcnNpb24mJjE2KSl9LGlidDpmdW5jdGlvbigpe2lmKGYuYnRpKXtyZXR1
cm4gZi5idGl9dmFyIGE9KHdpbmRvdy5hZGR0aGlzX3Byb2R1Y3R8fCJtZW4iKS5z
dWJzdHIoMCwzKSxiPWE9PSJia20ifHxhPT0iZmN0Inx8YT09ImZ4ZSI7aWYoYil7
Zi5idGk9Yn1yZXR1cm4gYn0sb2ZmOmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguZmxv
b3IoKG5ldyBEYXRlKCkuZ2V0VGltZSgpLWYuc3R0bSkvMTAwKS50b1N0cmluZygx
Nil9LHJhbjpmdW5jdGlvbigpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9t
KCkqNDI5NDk2NzI5NSkudG9TdHJpbmcoMzYpfSxzcmQ6ZnVuY3Rpb24oKXtpZihm
LmRyKXtyZXR1cm4iJnByZT0iK19ldWMoZi5kcil9ZWxzZXtyZXR1cm4iIn19LGNz
dDpmdW5jdGlvbihhKXtyZXR1cm4iQ1hOSUQ9MjAwMDAwMS41MjE1NDU2MDgwNTQw
NDM5MDciKyhhfHwyKSsiTlhDIn0saW1nejpbXSxocnI6ZnVuY3Rpb24oYyl7aWYo
YyYmYy51cmxzJiZjLnVybHMgaW5zdGFuY2VvZiBBcnJheSl7Zm9yKHZhciBiPTA7
YjxjLnVybHMubGVuZ3RoO2IrKyl7dmFyIGE9bmV3IEltYWdlKCk7Zi5pbWd6LnB1
c2goYSk7YS5zcmM9Yy51cmxzW2JdfX19LG9tcDpmdW5jdGlvbigpe2YuaW1nKF9h
dGMudmVyKyJzaCIsIjMiKTtpZihmLmxuZygpLmluZGV4T2YoImVuIik9PTApe2lm
KGYucGFtcD49MCl7Zi54cmVkKDIwMCl9fX0saW1nOmZ1bmN0aW9uKHAscixiKXtp
Zighd2luZG93LmF0X3N1YiYmIV9hdGMueHRyKXt2YXIgZT1mLHE9ZS5kcixkPSgo
ZS5yZXZ8fCIiKS5zcGxpdCgiICIpKTtpZihxKXtxPXEuc3BsaXQoIj8iKS5zaGlm
dCgpLnNwbGl0KCJodHRwOi8vIikucG9wKCkuc3BsaXQoImh0dHBzOi8vIikucG9w
KCk7aWYocS5sZW5ndGg+MjUpe3E9cS5zdWJzdHIoMCwyNSl9fXZhciBsPW5ldyBJ
bWFnZSgpO2UuaW1nei5wdXNoKGwpO2wuc3JjPV9hdG4rImxpdmUvdDAwLyIrcCsi
LmdpZj8iKyhlLnVpZCE9PW51bGw/InVpZD0iK2UudWlkKyImIjoiIikrZS5yYW4o
KSsiJiIrZS5jc3QocikrKGUucHViKCk/IiZwdWI9IitlLnB1YigpOiIiKSsocT8i
JmRyPSIrX2V1YyhxKToiIikrKGQubGVuZ3RoPjE/IiZyZXY9IitkWzFdOiIiKSso
Yj8iJiIrYjoiIil9fSxjdWlkOmZ1bmN0aW9uKCl7cmV0dXJuKChmLnN0dG0vMTAw
MCkmZi5tYXgpLnRvU3RyaW5nKDE2KSsoIjAwMDAwMDAwIisoTWF0aC5mbG9vcihN
YXRoLnJhbmRvbSgpKihmLm1heCsxKSkpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTgp
fSxzc2lkOmZ1bmN0aW9uKCl7aWYoZi5zaWQ9PT0wKXtmLnNpZD1mLmN1aWQoKX1y
ZXR1cm4gZi5zaWR9LHNldjpmdW5jdGlvbihiLGEpe2YucGl4PSJzZXYtIisodHlw
ZW9mKGIpIT09Im51bWJlciI/X2V1YyhiKTpiKTtmLnN2dC5wdXNoKGIrIjsiK2Yu
b2ZmKCkpO2lmKGE9PT0xKXtmLnhtaSh0cnVlKX1lbHNle2Yuc3htKHRydWUpfX0s
Y2V2OmZ1bmN0aW9uKGIsYSl7Zi5waXg9ImNldi0iK19ldWMoYik7Zi5jdnQucHVz
aChfZXVjKGIpKyI9IitfZXVjKGEpKyI7IitmLm9mZigpKTtmLnN4bSh0cnVlKX0s
c3htOmZ1bmN0aW9uKGEpe2lmKGYudG1vIT09bnVsbCl7Y2xlYXJUaW1lb3V0KGYu
dG1vKX1pZihhKXtmLnRtbz1mLnN0bygiX2F0ZS54bWkoZmFsc2UpIixmLndhaXQp
fX0sc3RvOmZ1bmN0aW9uKGIsYSl7cmV0dXJuIHNldFRpbWVvdXQoYixhKX0sc3Rh
OmZ1bmN0aW9uKCl7dmFyIGI9ZjtyZXR1cm4iQVQtIisoYi5wdWIoKT9iLnB1Yigp
OiJ1bmtub3duIikrIi8tLyIrYi5hYisiLyIrYi5zc2lkKCkrIi8iKyhiLnNlcSsr
KSsoYi51aWQhPT1udWxsPyIvIitiLnVpZDoiIil9LHhyZWQ6ZnVuY3Rpb24oZCl7
dHJ5e3ZhciBzPXdpbmRvdyxhZT1mLGI9MCxXPU8ucmVmZXJlcnx8Ty5yZWZlcnJl
cnx8IiIsVD1KP0ouaHJlZjpudWxsLGFhPUo/Si5ob3N0bmFtZS5zcGxpdCgiLiIp
LnNsaWNlKC0yKS5qb2luKCIuIik6bnVsbCx5PTEwMCxxPTMwMCxhYz0wLHA9MSxs
PTIseD00LFY9YWMsYWQ9Ii5jb20vIixZPTA7aWYoVyl7dmFyIFU9Vy5zcGxpdCgi
Ly8iKS5wb3AoKS5zcGxpdCgiLyIpLnNoaWZ0KCkuc3BsaXQoIj8iKS5zaGlmdCgp
LnNwbGl0KCIuIikuc2xpY2UoLTIpLmpvaW4oIi4iKTtpZihVPT1hYSl7Vnw9bH1l
bHNle1Z8PXh9fWlmKCgoYWUuY2FtcD49MCYmKFcuaW5kZXhPZihhZCk+LTEpKXx8
ZCkmJihUJiZKJiZKLnByb3RvY29sJiYoSi5wcm90b2NvbC5pbmRleE9mKCJodHRw
cyIpPT0tMSkpKXtpZihXJiZXLm1hdGNoKC93c1wvcmVzdWx0c1wvKFdlYnxJbWFn
ZXN8VmlkZW98TmV3cykvKSl7WT0xO1Z8PXB9ZWxzZXtpZihXLmluZGV4T2YoYWQr
InNlYXJjaCIpPi0xfHxXLmluZGV4T2YoYWQrInVybCIpPi0xfHxXLmluZGV4T2Yo
YWQrIndlYiIpPi0xfHxXLmluZGV4T2YoYWQrImFvbCIpPi0xfHxXLmluZGV4T2Yo
YWQrInM/YnMiKT4tMXx8Vy5pbmRleE9mKCJob3Rib3QiK2FkKT4tMSl7dmFyIFM9
Vy5zcGxpdCgiPyIpLnBvcCgpLnNwbGl0KCImIik7Zm9yKHZhciBaPTA7WjxTLmxl
bmd0aDtaKyspe2lmKFNbWl0uaW5kZXhPZigicT0iKT09PTB8fFNbWl0uaW5kZXhP
ZigiYnM9Iik9PT0wfHxTW1pdLmluZGV4T2YoInA9Iik9PT0wfHxTW1pdLmluZGV4
T2YoInF1ZXJ5Iik9PT0wfHxTW1pdLmluZGV4T2YoInFyeSIpPT09MHx8U1taXS5p
bmRleE9mKCJ0ZXh0Iik9PT0wKXtZPTE7YnJlYWt9fVZ8PXB9fWlmKCFhZS5kY3Am
JiFfYXRjLnh0ciYmIV9hdGMueGNrJiYoWXx8ZCkmJmFlLm11bihhZS5wdWIoKSkh
PT0ibXUyciIpe2lmKCFkKXtkPXl9YWUuZGNwPWQ7dmFyIFg9Ty5jZSgic2NyaXB0
Iik7WC5zcmM9Ii8vY2YuYWRkdGhpcy5jb20vcmVkL3AuanNvbj9yYj0iK1YrIiZn
ZW49IitkKyImY2FsbGJhY2s9X2F0ZS5ocnIiKyhhZS5wdWIoKT8iJnB1Yj0iK2Fl
LnB1YigpOiIiKSsoYWUudWlkJiZhZS51aWQhPT0iYW5vbnltb3VzIj8iJnVpZD0i
K19ldWMoYWUudWlkKToiIikrIiZ1cmw9IitfZXVjKFQpKyhXPyImcmVmPSIrX2V1
YyhXKToiIik7Ty5nbigiaGVhZCIpWzBdLmFwcGVuZENoaWxkKFgpfX19Y2F0Y2go
YWIpe319LHhsZDpmdW5jdGlvbigpe3ZhciBiPWYsZT17IjZqYjQiOjEsc2lyYjox
LHE4ZmM6MSxtdjg2OjEscW1vMDoxfSxjPWIuanNsKCksZD1iLm11bihiLnB1Yigp
KTtpZighYi54bGRfcCl7Yi54bGRfcD0xO2lmKGVbZF0pe19hdGMuc2FtcC89NDti
LnNhbXA9X2F0Yy5zYW1wLU1hdGgucmFuZG9tKCl9aWYoYi5zYW1wPj0wJiYhYi5z
dWIpe2Iuc2V2KCIyMCIpO2IuY2V2KCJwbG8iLE1hdGgucm91bmQoMS9fYXRjLnNh
bXApKTtpZihiLmRyKXtiLmNldigicHJlIixiLmRyKX19aWYoYi54YW1wPj0wJiZi
LmxuZygpLmluZGV4T2YoImVuIik9PTApe2IueHJlZCgxMDApfWVsc2V7Yi54cmVk
KCl9Yi5pbWcoX2F0Yy52ZXIrImxvIiwiMiIsYz8ianNsPSIrYzoiIil9fSx4bWk6
ZnVuY3Rpb24ocil7dmFyIGI9ZixwPWIuZGw/Yi5kbC5ob3N0bmFtZToiIjtpZigh
Yi51aWQpe2IuZGNrKCJYIitiLmN1aWQoKSl9ZWxzZXtiLmNvbygpfWlmKGIuY3Z0
Lmxlbmd0aCtiLnN2dC5sZW5ndGg+MCl7Yi5zeG0oZmFsc2UpO2lmKGIuc2VxPT09
MSl7Yi5jZXYoInBpbiIsYi5pbnN0KX1pZihfYXRjLnh0cil7cmV0dXJufWlmKHAu
aW5kZXhPZigiLmdvdiIpPi0xfHxwLmluZGV4T2YoIi5taWwiKT4tMSl7X2F0Yy54
Y2s9MX12YXIgcz1iLnBpeCsiLSIrYi5yYW4oKSsiLnBuZz9ldj0iK2Yuc3RhKCkr
IiZzZT0iK2Iuc3Z0LmpvaW4oIiwiKSsiJmNlPSIrYi5jdnQuam9pbigiLCIpKyhf
YXRjLnhjaz8iJnhjaz0xIjoiIiksZT1iLmV2dStzO2IuY3Z0PVtdO2Iuc3Z0PVtd
O2lmKHIpe3ZhciBxPWRvY3VtZW50LGw9cS5jZSgiaWZyYW1lIik7bC5pZD0iX2F0
ZiI7bC5zcmM9ZTtmLm9wcChsLnN0eWxlKTtxLmJvZHkuYXBwZW5kQ2hpbGQobCk7
bD1xLmdldEVsZW1lbnRCeUlkKCJfYXRmIil9ZWxzZXt2YXIgYz1uZXcgSW1hZ2Uo
KTtiLmltZ3oucHVzaChjKTtjLnNyYz1lfX19LGxvYzpmdW5jdGlvbigpe3JldHVy
biBfYXRjLmxvY30sb3BwOmZ1bmN0aW9uKGEpe2Eud2lkdGg9YS5oZWlnaHQ9IjFw
eCI7YS5wb3NpdGlvbj0iYWJzb2x1dGUiO2EuekluZGV4PTEwMDAwMH0scHViOmZ1
bmN0aW9uKCl7cmV0dXJuIF9ldWMod2luZG93LmFkZHRoaXNfY29uZmlnJiZhZGR0
aGlzX2NvbmZpZy51c2VybmFtZT9hZGR0aGlzX2NvbmZpZy51c2VybmFtZTood2lu
ZG93LmFkZHRoaXNfcHVifHwiIikpfSxwbG86W10sbGFkOmZ1bmN0aW9uKGEpe2Yu
cGxvLnB1c2goYSl9LGxuZzpmdW5jdGlvbigpe3JldHVybiB3aW5kb3cuYWRkdGhp
c19sYW5ndWFnZXx8KHdpbmRvdy5hZGR0aGlzX2NvbmZpZ3x8e30pLnVpX2xhbmd1
YWdlfHwoZi5icm8ubXNpP25hdmlnYXRvci51c2VyTGFuZ3VhZ2U6bmF2aWdhdG9y
Lmxhbmd1YWdlKX0saXZsOmZ1bmN0aW9uKGEpe3ZhciBiPXthZjoxLGFmcjoiYWYi
LGFyOjEsYXJhOiJhciIsYXo6MSxhemU6ImF6IixiZToxLGJ5ZToiYmUiLGJnOjEs
YnVsOiJiZyIsYm46MSxiZW46ImJuIixiczoxLGJvczoiYnMiLGNhOjEsY2F0OiJj
YSIsY3M6MSxjZXM6ImNzIixjemU6ImNzIixjeToxLGN5bToiY3kiLGRhOjEsZGFu
OiJkYSIsZGU6MSxkZXU6ImRlIixnZXI6ImRlIixlbDoxLGdyZToiZWwiLGVsbDoi
ZWxsIixlczoxLGVzbDoiZXMiLHNwYToic3BhIixldDoxLGVzdDoiZXQiLGZhOjEs
ZmFzOiJmYSIscGVyOiJmYSIsZmk6MSxmaW46ImZpIixmbzoxLGZhbzoiZm8iLGZy
OjEsZnJhOiJmciIsZnJlOiJmciIsZ2E6MSxnYWU6ImdhIixnZGg6ImdhIixnbDox
LGdsZzoiZ2wiLGhlOjEsaGViOiJoZSIsaGk6MSxoaW46ImhpbiIsaHI6MSxjcm86
ImhyIixodToxLGh1bjoiaHUiLGlkOjEsaW5kOiJpZCIsaXM6MSxpY2U6ImlzIixp
dDoxLGl0YToiaXQiLGphOjEsanBuOiJqYSIsa286MSxrb3I6ImtvIixsYjoxLGx0
ejoibGIiLGx0OjEsbGl0OiJsdCIsbHY6MSxsYXY6Imx2IixtazoxLG1hYzoibWsi
LG1hazoibWsiLG1zOjEsbXNhOiJtcyIsbWF5OiJtcyIsbmI6MSxubDoxLG5sYToi
bmwiLGR1dDoibmwiLG5vOjEsbm5vOiJubyIsb2M6MSxvY2k6Im9jIixwbDoxLHBv
bDoicGwiLHB0OjEscG9yOiJwdCIscm86MSxyb246InJvIixydW06InJvIixydTox
LHJ1czoicnUiLHNrOjEsc2xrOiJzayIsc2xvOiJzayIsc2w6MSxzbHY6InNsIixz
cToxLGFsYjoic3EiLHNyOjEsc2VyOiJzciIsc3Y6MSxzdmU6InN2Iixzd2U6InN2
Iix0YToxLHRhbToidGEiLHRlOjEsdGVnOiJ0ZSIsdGg6MSx0aGE6InRoIix0bDox
LHRnbDoidGwiLHRyOjEsdHVyOiJ0ciIsdWs6MSx1a3I6InVrIix1cjoxLHVyZDoi
dXIiLHZpOjEsdmllOiJ2aSIsInpoLWhrIjoxLCJjaGktaGsiOiJ6aC1oayIsInpo
by1oayI6InpoLWhrIiwiemgtdHIiOjEsImNoaS10ciI6InpoLXRyIiwiemhvLXRy
IjoiemgtdHIiLCJ6aC10dyI6MSwiY2hpLXR3IjoiemgtdHciLCJ6aG8tdHciOiJ6
aC10dyIsemg6MSxjaGk6InpoIix6aG86InpoIn07aWYoYlthXSl7cmV0dXJuIGJb
YV19YT1hLnNwbGl0KCItIikuc2hpZnQoKTtpZihiW2FdKXtpZihiW2FdPT09MSl7
cmV0dXJuIGF9ZWxzZXtyZXR1cm4gYlthXX19cmV0dXJuIDB9LGFsZzpmdW5jdGlv
bihlLGMpe3ZhciBpPWRvY3VtZW50LGE9KGV8fGYubG5nKCl8fCJlbiIpLnRvTG93
ZXJDYXNlKCksYj1mLml2bChhKTtpZihhLmluZGV4T2YoImVuIikhPT0wJiYoIWYu
cGxsfHxjKSl7aWYoYil7aWYoYiE9PTEpe2E9Yn1mLnBsbD1mLmFqcygic3RhdGlj
L3IwNy9sYW5nMDAvIithKyIuanMiKX19fSxqbHI6e30sYWpzOmZ1bmN0aW9uKGEp
e2lmKCFmLmpsclthXSl7dmFyIGI9Ty5jZSgic2NyaXB0Iik7Yi5zcmM9X2F0cith
O08uZ24oImhlYWQiKVswXS5hcHBlbmRDaGlsZChiKTtmLmpsclthXT0xO3JldHVy
biBifXJldHVybiAxfSxqbG86ZnVuY3Rpb24oKXt0cnl7dmFyIHA9ZG9jdW1lbnQs
Yj1mLGw9Yi5sbmcoKTtiLmFsZyhsKTtpZighYi5wbGQpe2lmKGIuYnJvLmllNil7
dmFyIGM9bmV3IEltYWdlKCk7Yi5pbWd6LnB1c2goYyk7Yy5zcmM9X2F0citiLnNw
dDtpZih3aW5kb3cuYWRkdGhpc19mZWVkKXtjPW5ldyBJbWFnZSgpO2IuaW1nei5w
dXNoKGMpO2Muc3JjPV9hdHIrInN0YXRpYy9yMDUvZmVlZDAwLmdpZiJ9fWlmKGIu
cGxsJiYhd2luZG93LmFkZHRoaXNfdHJhbnNsYXRpb25zKXtiLnN0byhmdW5jdGlv
bigpe2IucGxkPWIuYWpzKCJzdGF0aWMvcjA3L21lbnU0Ni5qcyIpfSwxMCl9ZWxz
ZXtiLnBsZD1iLmFqcygic3RhdGljL3IwNy9tZW51NDYuanMiKX19fWNhdGNoKGkp
e319LGlndjpmdW5jdGlvbihhLGIpe2lmKCF1LmFkZHRoaXNfc2hhcmUpe3UuYWRk
dGhpc19zaGFyZT17fX1pZighYWRkdGhpc19zaGFyZS51cmwpe3UuYWRkdGhpc19z
aGFyZS51cmw9dS5hZGR0aGlzX3VybHx8YX1pZighYWRkdGhpc19zaGFyZS50aXRs
ZSl7dS5hZGR0aGlzX3NoYXJlLnRpdGxlPXUuYWRkdGhpc190aXRsZXx8Yn1pZigh
dS5hZGR0aGlzX2NvbmZpZyl7dS5hZGR0aGlzX2NvbmZpZz17dXNlcm5hbWU6dS5h
ZGR0aGlzX3B1Yn19ZWxzZXtpZihhZGR0aGlzX2NvbmZpZy5kYXRhX3VzZV9mbGFz
aD09PWZhbHNlKXtfYXRjLnhmbD0xfWlmKGFkZHRoaXNfY29uZmlnLmRhdGFfdXNl
X2Nvb2tpZXM9PT1mYWxzZSl7X2F0Yy54Y2s9MX19fSxsb2Q6ZnVuY3Rpb24oUyl7
dHJ5e3ZhciBVPXdpbmRvdyxhaz1mLHg9YWsuYnJvLm1zaSxkPTAsWj1PLnJlZmVy
ZXJ8fE8ucmVmZXJyZXJ8fCIiLFg9Sj9KLmhyZWY6bnVsbCxhZz1KLmhvc3RuYW1l
LGFqPVg/WC5pbmRleE9mKCJzbXNfc3MiKTotMSxhaD0oKFM9PT0xfHxVLmFkZHRo
aXNfbG9hZF9mbGFzaCkmJiFfYXRjLmFiZiksYWM9KChVLmFkZHRoaXNfbGFuZ3Vh
Z2V8fChVLmFkZHRoaXNfY29uZmlnP1UuYWRkdGhpc19jb25maWcudWlfbGFuZ3Vh
Z2U6bnVsbCl8fChhay5icm8ubXNpP25hdmlnYXRvci51c2VyTGFuZ3VhZ2U6bmF2
aWdhdG9yLmxhbmd1YWdlKSkuc3BsaXQoIi0iKSkuc2hpZnQoKSxzPShKLmhyZWYu
aW5kZXhPZihfYXRyKT09LTEpJiYhYWsuYnJvLmllNiYmIWFrLmJyby5pZTcsYWQ9
Ty5nbigibGluayIpLHE9X2F0cisic3RhdGljL3IwNy9zaDEwLmh0bWwiLHk9Il9h
dGUuaWZ3bigpIixyLFQ7aWYoIVUucG9zdE1lc3NhZ2Upe3ZhciBXPU8uZ24oImlt
ZyIpO2Zvcih2YXIgYWU9MDthZTxXLmxlbmd0aDthZSsrKXtpZihXW2FlXS5zcmMu
c3BsaXQoIi8vIikucG9wKCkuaW5kZXhPZihhZyk9PTApe3I9V1thZV0uc3JjO2Jy
ZWFrfX19aWYocyYmKCFfYXRjLnhpY3x8KFUucG9zdE1lc3NhZ2V8fGFrLmJyby5t
c2kpKSl7aWYoIXgpe1Q9Ty5jZSgiaWZyYW1lIil9ZWxzZXt2YXIgVj1PLmNlKCJk
aXYiKTtWLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7YWsub3BwKFYuc3R5bGUp
O08uYm9keS5pbnNlcnRCZWZvcmUoVixPLmJvZHkuZmlyc3RDaGlsZCk7Vi5pbm5l
ckhUTUw9JzxpZnJhbWUgaWQ9Il9hdHNzaCIgd2lkdGg9IjEiIGhlaWdodD0iMSIg
bmFtZT0iX2F0c3NoIiAnKyghVS5wb3N0TWVzc2FnZT8nb25sb2FkPSInK3krJyIg
JzoiIikrIj4iO1Q9Ty5nZXRFbGVtZW50QnlJZCgiX2F0c3NoIil9fWZvcih2YXIg
YWU9MDthZTxhZC5sZW5ndGg7YWUrKyl7dmFyIGFiPWFkW2FlXTtpZihhYi5yZWwm
JmFiLnJlbD09ImNhbm9uaWNhbCImJmFiLmhyZWYpe1g9YWIuaHJlZn19YWsuaWd2
KFgsTy50aXRsZXx8IiIpO2FrLmdvdigpO2FrLmRyPVo7dmFyIHA9KGFrLnN3ZiYm
IV9hdGMueGZsJiYhKGFrLmxvYygpKSYmIV9hdGMuYWJmJiYoYWh8fGFrLnVpZD09
PW51bGx8fChhay51aWQhPT0iYW5vbnltb3VzIiYmYWsub290JiYoKG5ldyBEYXRl
KCkpLmdldFRpbWUoKS1hay5vb3Q+NjA0ODAwMDApKSkpO3ErPSIjc3dmcD0iKyhw
JiZ4PzE6MCk7aWYoIXgmJnApe3ZhciBjPWZ1bmN0aW9uKGUsbCxhKXt2YXIgaT1P
LmNlKCJwYXJhbSIpO2kubmFtZT1sO2kudmFsdWU9YTtlLmFwcGVuZENoaWxkKGkp
fSxWPU8uY2UoImRpdiIpLFk9ImF0ZmYiLGI9WSsiYyIsYWE9Ty5jZSgib2JqZWN0
Iik7Vi5pZD1iO08uYm9keS5pbnNlcnRCZWZvcmUoVixPLmJvZHkuZmlyc3RDaGls
ZCk7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBhPU8uZ2V0RWxlbWVudEJ5SWQo
Yik7YWEuaWQ9WTthYS5kYXRhPWFrLnN3ZjthYS53aWR0aD1hYS5oZWlnaHQ9IjFw
eCI7YWEudHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giO2MoYWEs
Indtb2RlIiwidHJhbnNwYXJlbnQiKTtjKGFhLCJhbGxvd1NjcmlwdEFjY2VzcyIs
ImFsd2F5cyIpO2EuYXBwZW5kQ2hpbGQoYWEpfSwxMCl9aWYocyYmVCl7VC5pZD0i
X2F0c3NoIjthay5vcHAoVC5zdHlsZSk7VC5mcmFtZWJvcmRlcj1ULnN0eWxlLmJv
cmRlcj0wO1Quc3R5bGUudG9wPVQuc3R5bGUubGVmdD0wO2lmKFUucG9zdE1lc3Nh
Z2Upe1Quc3JjPXE7aWYoeCl7VS5hdHRhY2hFdmVudCgib25tZXNzYWdlIixhay5w
bWgpfWVsc2V7VS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixhay5wbWgsZmFs
c2UpfVQ9Ty5ib2R5LmFwcGVuZENoaWxkKFQpfWVsc2V7aWYociYmIV9hdGMueGlj
JiZhay5icm8ubXNpJiZ3aW5kb3c9PXRvcCl7VC5vbmxvYWQ9eTtULnNyYz1yO1Q9
Ty5ib2R5LmFwcGVuZENoaWxkKFQpO1Quc3JjPXErIiZ3cGw9IitfZXVjKHIpfX1h
ay5zaWZyPVR9aWYoIWFoKXtpZihwKXthay51b28oKTtpZihhay5icm8uaWU2fHxh
ay5icm8uaWU3KXthay5zdG8oImlmIChfYXRlLnhsZCkgX2F0ZS54bGQoKSIsNTAw
MCl9ZWxzZXthay5zdG8oIl9hdGUueGxkKCkiLDUwMDApfX1lbHNle2FrLmd1aWQ9
MTthay54bGQoKX1pZihhaj4tMSYmWC5pbmRleE9mKF9hdGQrImJvb2siKT09LTEp
e3ZhciBhZj1YLnN1YnN0cihhaik7YWY9YWYuc3BsaXQoIiYiKS5zaGlmdCgpLnNw
bGl0KCIjIikuc2hpZnQoKS5zcGxpdCgiPSIpLnBvcCgpO2lmKGFrLnZhbXA+PTAm
JiFhay5zdWImJmFmLmxlbmd0aCl7YWsuY2V2KCJwbHYiLE1hdGgucm91bmQoMS9f
YXRjLnZhbXApKTthay5jZXYoInJzYyIsYWYpfX19aWYod2luZG93LmFkZHRoaXNf
bGFuZ3VhZ2V8fCh3aW5kb3cuYWRkdGhpc19jb25maWd8fHt9KS51aV9sYW5ndWFn
ZSl7YWsuYWxnKCl9aWYoYWsucGxvLmxlbmd0aD4wKXthay5qbG8oKX19Y2F0Y2go
YWkpe319LGtjazpmdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudDtpZihiLmNvb2tp
ZSl7Yi5jb29raWU9YSsiPSA7IGV4cGlyZXM9VHVlLCAzMSBNYXIgMjAwOSAwNTo0
NzoxMSBVVEM7IHBhdGg9LyJ9fSxyY2s6ZnVuY3Rpb24oZSl7dmFyIHA9ZG9jdW1l
bnQ7aWYocC5jb29raWUpe3ZhciBiPXAuY29va2llLnNwbGl0KCI7Iik7Zm9yKHZh
ciBsPTA7bDxiLmxlbmd0aDtsKyspe3ZhciBxPWJbbF0sYT1xLmluZGV4T2YoZSsi
PSIpO2lmKGE+PTApe3JldHVybiBxLnN1YnN0cmluZyhhKyhlLmxlbmd0aCsxKSl9
fX1yZXR1cm59LHVvbzpmdW5jdGlvbigpe2Yuc2NrKCJfY3Nvb3QiLChuZXcgRGF0
ZSgpLmdldFRpbWUoKSkpfSxjb286ZnVuY3Rpb24oYSl7aWYoZi51aWQ9PSJhbm9u
eW1vdXMiJiYhZi5vb3Qpe19hdGMueGNrPTE7Zi51b28oKX19LGRjazpmdW5jdGlv
bihhKXtmLnVpZD1hO2Yuc2NrKCJfY3N1aWQiLGEpO2YuY29vKCl9LGdvdjpmdW5j
dGlvbigpe3ZhciBiPWYuZGw/Zi5kbC5ob3N0bmFtZToiIjtpZihiLmluZGV4T2Yo
Ii5nb3YiKT4tMXx8Yi5pbmRleE9mKCIubWlsIik+LTEpe19hdGMueGNrPTE7X2F0
Yy54Zmw9MX12YXIgYz1mLnB1YigpLGE9WyJ1c2FybXltZWRpYSIsImdvdmRlbGl2
ZXJ5Il07Zm9yKEsgaW4gYSl7aWYoYz09YVtLXSl7X2F0Yy54Y2s9MTtfYXRjLnhm
bD0xO2JyZWFrfX19LHNjazpmdW5jdGlvbihiLGEsYyl7Zi5nb3YoKTtpZighX2F0
Yy54Y2spe08uY29va2llPWIrIj0iK2ErKCFjPyI7IGV4cGlyZXM9V2VkLCAwNCBP
Y3QgMjAyOCAwMzoxOTo1MyBHTVQiOiIiKSsiOyBwYXRoPS8ifX0sYXNldHVwOmZ1
bmN0aW9uKGIpe3ZhciBjPWY7dHJ5e2lmKCFjLmd1aWQpe2MuZ3VpZD0xO2lmKGIh
PT1udWxsJiZiIT09X2F0dSl7Yy5kY2soYil9Yy54bGQoKX19Y2F0Y2goZCl7fXJl
dHVybiBifSxhbzpmdW5jdGlvbihiLGksZSxjLGQsYSl7Zi5sYWQoWyJvcGVuIixi
LGksZSxjLGQsYV0pO2YuamxvKCk7cmV0dXJuIGZhbHNlfSxhYzpmdW5jdGlvbigp
e30sYXM6ZnVuY3Rpb24oYixjLGEpe2YubGFkKFsic2VuZCIsYixjLGFdKTtmLmps
bygpfX0sUj1mO3UuX2F0ZT1SO3UuX2Fkcj1BO08uY2U9Ty5jcmVhdGVFbGVtZW50
O08uZ249Ty5nZXRFbGVtZW50c0J5VGFnTmFtZTtBLmJpbmRSZWFkeSgpO2lmKCFf
YXRjLm9zdCl7aWYoIXUuYWRkdGhpc19jb25mKXt1LmFkZHRoaXNfY29uZj17fX1m
b3IodmFyIEsgaW4gYWRkdGhpc19jb25mKXtfYXRjW0tdPWFkZHRoaXNfY29uZltL
XX1fYXRjLm9zdD0xfUEuYXBwZW5kKFIubG9kKTtpZihPLmNvb2tpZSl7dmFyIG09
Ty5jb29raWUuc3BsaXQoIjsiKTtmb3IodmFyIEs9MDtLPG0ubGVuZ3RoO0srKyl7
dmFyIFA9bVtLXSxvPVAuaW5kZXhPZigiX2NzdWlkPSIpLGs9UC5pbmRleE9mKCJf
Y3Nvb3Q9Iik7aWYobz49MCl7Zi51aWQ9UC5zdWJzdHJpbmcobys3KX1lbHNle2lm
KGs+PTApe2Yub290PVAuc3Vic3RyaW5nKGsrNyl9fX19dHJ5e2lmKCFfYXRjLnhj
cyl7dmFyIEk9Ty5jZSgibGluayIpO0kucmVsPSJzdHlsZXNoZWV0IjtJLnR5cGU9
InRleHQvY3NzIjtJLmhyZWY9X2F0cisic3RhdGljL3IwNy93aWRnZXQyOS5jc3Mi
O0kubWVkaWE9ImFsbCI7Ty5nbigiaGVhZCIpWzBdLmFwcGVuZENoaWxkKEkpfX1j
YXRjaChOKXt9dmFyIEg9Ty5nbigic2NyaXB0Iiksej1IW0gubGVuZ3RoLTFdLEI9
ei5zcmMuaW5kZXhPZigiIyIpPi0xP3ouc3JjLnJlcGxhY2UoL15bXlwjXStcIz8v
LCIiKTp6LnNyYy5yZXBsYWNlKC9eW15cP10rXD8/LywiIiksQz1nKEIpO2lmKEMu
cHViKXt1LmFkZHRoaXNfcHViPV9kdWMoQy5wdWIpfWVsc2V7aWYoQy51c2VybmFt
ZSl7dS5hZGR0aGlzX3B1Yj1fZHVjKEMudXNlcm5hbWUpfX1pZih1LmFkZHRoaXNf
cHViJiZ1LmFkZHRoaXNfY29uZmlnKXt1LmFkZHRoaXNfY29uZmlnLnVzZXJuYW1l
PXUuYWRkdGhpc19wdWJ9aWYoQy5kb21yZWFkeSl7X2F0Yy5kcj0xfXRyeXtpZihf
YXRjLnZlcj09PTEyMCl7dmFyIEc9ImF0YiIrdS5fYXRlLmN1aWQoKTtPLndyaXRl
KCc8c3BhbiBpZD0iJytHKyciPjwvc3Bhbj4nKTt1Ll9hdGUuaWd2KCk7dS5fYXRl
LmxhZChbInNwYW4iLEcsYWRkdGhpc19zaGFyZS51cmx8fCJbdXJsXSIsYWRkdGhp
c19zaGFyZS50aXRsZXx8Ilt0aXRsZV0iXSl9aWYodS5hZGR0aGlzX2NsaWNrb3V0
KXtmLmxhZChbImNvdXQiXSl9fWNhdGNoKE4pe319KSgpO2Z1bmN0aW9uIGFkZHRo
aXNfb3BlbihiLGYsZSxjLGQsYSl7aWYodHlwZW9mIGQ9PSJzdHJpbmciKXtkPW51
bGx9cmV0dXJuIF9hdGUuYW8oYixmLGUsYyxkLGEpfWZ1bmN0aW9uIGFkZHRoaXNf
Y2xvc2UoKXtfYXRlLmFjKCl9ZnVuY3Rpb24gYWRkdGhpc19zZW5kdG8oYixjLGEp
e19hdGUuYXMoYixjLGEpO3JldHVybiBmYWxzZX1pZihfYXRjLmRyKXtfYWRyLm9u
UmVhZHkoKX19ZWxzZXtfYXRlLmluc3QrK31pZihfYXRjLmFiZil7YWRkdGhpc19v
cGVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhYiIpLCJlbWFpbGFiIix3aW5k
b3cuYWRkdGhpc191cmx8fCJbVVJMXSIsd2luZG93LmFkZHRoaXNfdGl0bGV8fCJb
VElUTEVdIil9Ow==

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=js.js
Content-Type: application/x-javascript; name=js.js
Content-Location: http://mediaplayer.yahoo.com/js
Content-Transfer-Encoding: Base64

LyogWWFob28hIE1lZGlhIFBsYXllciBMb2FkZXIsIE1pbmlmaWVkIEJ1aWxkIDIu
MC4zMS4gIENvcHlyaWdodCAoYykgMjAwOCwgWWFob28hIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAqIFlvdXIgdXNlIG9mIHRoaXMgWWFob28hIE1lZGlhIFBs
YXllciBpcyBzdWJqZWN0IHRvIHRoZSBZYWhvbyEgVGVybXMgb2YgU2VydmljZQog
KiBsb2NhdGVkIGF0IGh0dHA6Ly9pbmZvLnlhaG9vLmNvbS9sZWdhbC91cy95YWhv
by91dG9zL3V0b3MtMTczLmh0bWwuCiAqLwoNCgpmdW5jdGlvbiB5dWlfTmFtZXNw
YWNlKCl7dmFyIGE9YXJndW1lbnRzLG89bnVsbCxpLGosZDtmb3IoaT0wO2k8YS5s
ZW5ndGg7KytpKXtkPWFbaV0uc3BsaXQoIi4iKTtvPVlBSE9PO2ZvcihqPShkWzBd
PT0iWUFIT08iKT8xOjA7ajxkLmxlbmd0aDsrK2ope29bZFtqXV09b1tkW2pdXXx8
e307bz1vW2Rbal1dO319cmV0dXJuIG87fWlmKHR5cGVvZiBZQUhPTz09InVuZGVm
aW5lZCIpe3ZhciBZQUhPTz17fX07aWYodHlwZW9mIFlBSE9PLm5hbWVzcGFjZT09
InVuZGVmaW5lZCIpWUFIT08ubmFtZXNwYWNlPXl1aV9OYW1lc3BhY2U7WUFIT08u
eW1weXVpPShmdW5jdGlvbigpe3ZhciBZQUhPTz17fTtpZih0eXBlb2YgWUFIT089
PSJ1bmRlZmluZWQifHwhWUFIT08pe3ZhciBZQUhPTz17fTt9WUFIT08ubmFtZXNw
YWNlPWZ1bmN0aW9uKCl7dmFyIEE9YXJndW1lbnRzLEU9bnVsbCxDLEIsRDtmb3Io
Qz0wO0M8QS5sZW5ndGg7Qz1DKzEpe0Q9QVtDXS5zcGxpdCgiLiIpO0U9WUFIT087
Zm9yKEI9KERbMF09PSJZQUhPTyIpPzE6MDtCPEQubGVuZ3RoO0I9QisxKXtFW0Rb
Ql1dPUVbRFtCXV18fHt9O0U9RVtEW0JdXTt9fXJldHVybiBFO307WUFIT08ubG9n
PWZ1bmN0aW9uKEQsQSxDKXt2YXIgQj1ZQUhPTy53aWRnZXQuTG9nZ2VyO2lmKEIm
JkIubG9nKXtyZXR1cm4gQi5sb2coRCxBLEMpO31lbHNle3JldHVybiBmYWxzZTt9
fTtZQUhPTy5yZWdpc3Rlcj1mdW5jdGlvbihBLEUsRCl7dmFyIEk9WUFIT08uZW52
Lm1vZHVsZXM7aWYoIUlbQV0pe0lbQV09e3ZlcnNpb25zOltdLGJ1aWxkczpbXX07
fXZhciBCPUlbQV0sSD1ELnZlcnNpb24sRz1ELmJ1aWxkLEY9WUFIT08uZW52Lmxp
c3RlbmVycztCLm5hbWU9QTtCLnZlcnNpb249SDtCLmJ1aWxkPUc7Qi52ZXJzaW9u
cy5wdXNoKEgpO0IuYnVpbGRzLnB1c2goRyk7Qi5tYWluQ2xhc3M9RTtmb3IodmFy
IEM9MDtDPEYubGVuZ3RoO0M9QysxKXtGW0NdKEIpO31pZihFKXtFLlZFUlNJT049
SDtFLkJVSUxEPUc7fWVsc2V7WUFIT08ubG9nKCJtYWluQ2xhc3MgaXMgdW5kZWZp
bmVkIGZvciBtb2R1bGUgIitBLCJ3YXJuIik7fX07WUFIT08uZW52PVlBSE9PLmVu
dnx8e21vZHVsZXM6W10sbGlzdGVuZXJzOltdfTtZQUhPTy5lbnYuZ2V0VmVyc2lv
bj1mdW5jdGlvbihBKXtyZXR1cm4gWUFIT08uZW52Lm1vZHVsZXNbQV18fG51bGw7
fTtZQUhPTy5lbnYudWE9ZnVuY3Rpb24oKXt2YXIgQz17aWU6MCxvcGVyYTowLGdl
Y2tvOjAsd2Via2l0OjAsbW9iaWxlOm51bGwsYWlyOjB9O3ZhciBCPW5hdmlnYXRv
ci51c2VyQWdlbnQsQTtpZigoL0tIVE1MLykudGVzdChCKSl7Qy53ZWJraXQ9MTt9
QT1CLm1hdGNoKC9BcHBsZVdlYktpdFwvKFteXHNdKikvKTtpZihBJiZBWzFdKXtD
LndlYmtpdD1wYXJzZUZsb2F0KEFbMV0pO2lmKC8gTW9iaWxlXC8vLnRlc3QoQikp
e0MubW9iaWxlPSJBcHBsZSI7fWVsc2V7QT1CLm1hdGNoKC9Ob2tpYU5bXlwvXSov
KTtpZihBKXtDLm1vYmlsZT1BWzBdO319QT1CLm1hdGNoKC9BZG9iZUFJUlwvKFte
XHNdKikvKTtpZihBKXtDLmFpcj1BWzBdO319aWYoIUMud2Via2l0KXtBPUIubWF0
Y2goL09wZXJhW1xzXC9dKFteXHNdKikvKTtpZihBJiZBWzFdKXtDLm9wZXJhPXBh
cnNlRmxvYXQoQVsxXSk7QT1CLm1hdGNoKC9PcGVyYSBNaW5pW147XSovKTtpZihB
KXtDLm1vYmlsZT1BWzBdO319ZWxzZXtBPUIubWF0Y2goL01TSUVccyhbXjtdKikv
KTtpZihBJiZBWzFdKXtDLmllPXBhcnNlRmxvYXQoQVsxXSk7fWVsc2V7QT1CLm1h
dGNoKC9HZWNrb1wvKFteXHNdKikvKTtpZihBKXtDLmdlY2tvPTE7QT1CLm1hdGNo
KC9ydjooW15cc1wpXSopLyk7aWYoQSYmQVsxXSl7Qy5nZWNrbz1wYXJzZUZsb2F0
KEFbMV0pO319fX19cmV0dXJuIEM7fSgpOyhmdW5jdGlvbigpe1lBSE9PLm5hbWVz
cGFjZSgidXRpbCIsIndpZGdldCIsImV4YW1wbGUiKTtpZigidW5kZWZpbmVkIiE9
PXR5cGVvZiBZQUhPT19jb25maWcpe3ZhciBCPVlBSE9PX2NvbmZpZy5saXN0ZW5l
cixBPVlBSE9PLmVudi5saXN0ZW5lcnMsRD10cnVlLEM7aWYoQil7Zm9yKEM9MDtD
PEEubGVuZ3RoO0M9QysxKXtpZihBW0NdPT1CKXtEPWZhbHNlO2JyZWFrO319aWYo
RCl7QS5wdXNoKEIpO319fX0pKCk7WUFIT08ubGFuZz1ZQUhPTy5sYW5nfHx7aXNB
cnJheTpmdW5jdGlvbihCKXtpZihCKXt2YXIgQT1ZQUhPTy5sYW5nO3JldHVybiBB
LmlzTnVtYmVyKEIubGVuZ3RoKSYmQS5pc0Z1bmN0aW9uKEIuc3BsaWNlKTt9cmV0
dXJuIGZhbHNlO30saXNCb29sZWFuOmZ1bmN0aW9uKEEpe3JldHVybiB0eXBlb2Yg
QT09PSJib29sZWFuIjt9LGlzRnVuY3Rpb246ZnVuY3Rpb24oQSl7cmV0dXJuIHR5
cGVvZiBBPT09ImZ1bmN0aW9uIjt9LGlzTnVsbDpmdW5jdGlvbihBKXtyZXR1cm4g
QT09PW51bGw7fSxpc051bWJlcjpmdW5jdGlvbihBKXtyZXR1cm4gdHlwZW9mIEE9
PT0ibnVtYmVyIiYmaXNGaW5pdGUoQSk7fSxpc09iamVjdDpmdW5jdGlvbihBKXty
ZXR1cm4oQSYmKHR5cGVvZiBBPT09Im9iamVjdCJ8fFlBSE9PLmxhbmcuaXNGdW5j
dGlvbihBKSkpfHxmYWxzZTt9LGlzU3RyaW5nOmZ1bmN0aW9uKEEpe3JldHVybiB0
eXBlb2YgQT09PSJzdHJpbmciO30saXNVbmRlZmluZWQ6ZnVuY3Rpb24oQSl7cmV0
dXJuIHR5cGVvZiBBPT09InVuZGVmaW5lZCI7fSxoYXNPd25Qcm9wZXJ0eTpmdW5j
dGlvbihBLEIpe2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpe3Jl
dHVybiBBLmhhc093blByb3BlcnR5KEIpO31yZXR1cm4hWUFIT08ubGFuZy5pc1Vu
ZGVmaW5lZChBW0JdKSYmQS5jb25zdHJ1Y3Rvci5wcm90b3R5cGVbQl0hPT1BW0Jd
O30sX0lFRW51bUZpeDpmdW5jdGlvbihDLEIpe2lmKFlBSE9PLmVudi51YS5pZSl7
dmFyIEU9WyJ0b1N0cmluZyIsInZhbHVlT2YiXSxBO2ZvcihBPTA7QTxFLmxlbmd0
aDtBPUErMSl7dmFyIEY9RVtBXSxEPUJbRl07aWYoWUFIT08ubGFuZy5pc0Z1bmN0
aW9uKEQpJiZEIT1PYmplY3QucHJvdG90eXBlW0ZdKXtDW0ZdPUQ7fX19fSxleHRl
bmQ6ZnVuY3Rpb24oRCxFLEMpe2lmKCFFfHwhRCl7dGhyb3cgbmV3IEVycm9yKCJZ
QUhPTy5sYW5nLmV4dGVuZCBmYWlsZWQsIHBsZWFzZSBjaGVjayB0aGF0ICIrImFs
bCBkZXBlbmRlbmNpZXMgYXJlIGluY2x1ZGVkLiIpO312YXIgQj1mdW5jdGlvbigp
e307Qi5wcm90b3R5cGU9RS5wcm90b3R5cGU7RC5wcm90b3R5cGU9bmV3IEIoKTtE
LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1EO0Quc3VwZXJjbGFzcz1FLnByb3RvdHlw
ZTtpZihFLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj09T2JqZWN0LnByb3RvdHlwZS5j
b25zdHJ1Y3Rvcil7RS5wcm90b3R5cGUuY29uc3RydWN0b3I9RTt9aWYoQyl7Zm9y
KHZhciBBIGluIEMpe0QucHJvdG90eXBlW0FdPUNbQV07fVlBSE9PLmxhbmcuX0lF
RW51bUZpeChELnByb3RvdHlwZSxDKTt9fSxhdWdtZW50T2JqZWN0OmZ1bmN0aW9u
KEUsRCl7aWYoIUR8fCFFKXt0aHJvdyBuZXcgRXJyb3IoIkFic29yYiBmYWlsZWQs
IHZlcmlmeSBkZXBlbmRlbmNpZXMuIik7fXZhciBBPWFyZ3VtZW50cyxDLEYsQj1B
WzJdO2lmKEImJkIhPT10cnVlKXtmb3IoQz0yO0M8QS5sZW5ndGg7Qz1DKzEpe0Vb
QVtDXV09RFtBW0NdXTt9fWVsc2V7Zm9yKEYgaW4gRCl7aWYoQnx8IUVbRl0pe0Vb
Rl09RFtGXTt9fVlBSE9PLmxhbmcuX0lFRW51bUZpeChFLEQpO319LGF1Z21lbnRQ
cm90bzpmdW5jdGlvbihELEMpe2lmKCFDfHwhRCl7dGhyb3cgbmV3IEVycm9yKCJB
dWdtZW50IGZhaWxlZCwgdmVyaWZ5IGRlcGVuZGVuY2llcy4iKTt9dmFyIEE9W0Qu
cHJvdG90eXBlLEMucHJvdG90eXBlXTtmb3IodmFyIEI9MjtCPGFyZ3VtZW50cy5s
ZW5ndGg7Qj1CKzEpe0EucHVzaChhcmd1bWVudHNbQl0pO31ZQUhPTy5sYW5nLmF1
Z21lbnRPYmplY3QuYXBwbHkodGhpcyxBKTt9LGR1bXA6ZnVuY3Rpb24oQSxHKXt2
YXIgQz1ZQUhPTy5sYW5nLEQsRixJPVtdLEo9InsuLi59IixCPSJmKCl7Li4ufSIs
SD0iLCAiLEU9IiA9PiAiO2lmKCFDLmlzT2JqZWN0KEEpKXtyZXR1cm4gQSsiIjt9
ZWxzZXtpZihBIGluc3RhbmNlb2YgRGF0ZXx8KCJub2RlVHlwZSJpbiBBJiYidGFn
TmFtZSJpbiBBKSl7cmV0dXJuIEE7fWVsc2V7aWYoQy5pc0Z1bmN0aW9uKEEpKXty
ZXR1cm4gQjt9fX1HPShDLmlzTnVtYmVyKEcpKT9HOjM7aWYoQy5pc0FycmF5KEEp
KXtJLnB1c2goIlsiKTtmb3IoRD0wLEY9QS5sZW5ndGg7RDxGO0Q9RCsxKXtpZihD
LmlzT2JqZWN0KEFbRF0pKXtJLnB1c2goKEc+MCk/Qy5kdW1wKEFbRF0sRy0xKTpK
KTt9ZWxzZXtJLnB1c2goQVtEXSk7fUkucHVzaChIKTt9aWYoSS5sZW5ndGg+MSl7
SS5wb3AoKTt9SS5wdXNoKCJdIik7fWVsc2V7SS5wdXNoKCJ7Iik7Zm9yKEQgaW4g
QSl7aWYoQy5oYXNPd25Qcm9wZXJ0eShBLEQpKXtJLnB1c2goRCtFKTtpZihDLmlz
T2JqZWN0KEFbRF0pKXtJLnB1c2goKEc+MCk/Qy5kdW1wKEFbRF0sRy0xKTpKKTt9
ZWxzZXtJLnB1c2goQVtEXSk7fUkucHVzaChIKTt9fWlmKEkubGVuZ3RoPjEpe0ku
cG9wKCk7fUkucHVzaCgifSIpO31yZXR1cm4gSS5qb2luKCIiKTt9LHN1YnN0aXR1
dGU6ZnVuY3Rpb24oUSxCLEope3ZhciBHLEYsRSxNLE4sUCxEPVlBSE9PLmxhbmcs
TD1bXSxDLEg9ImR1bXAiLEs9IiAiLEE9InsiLE89In0iO2Zvcig7Oyl7Rz1RLmxh
c3RJbmRleE9mKEEpO2lmKEc8MCl7YnJlYWs7fUY9US5pbmRleE9mKE8sRyk7aWYo
RysxPj1GKXticmVhazt9Qz1RLnN1YnN0cmluZyhHKzEsRik7TT1DO1A9bnVsbDtF
PU0uaW5kZXhPZihLKTtpZihFPi0xKXtQPU0uc3Vic3RyaW5nKEUrMSk7TT1NLnN1
YnN0cmluZygwLEUpO31OPUJbTV07aWYoSil7Tj1KKE0sTixQKTt9aWYoRC5pc09i
amVjdChOKSl7aWYoRC5pc0FycmF5KE4pKXtOPUQuZHVtcChOLHBhcnNlSW50KFAs
MTApKTt9ZWxzZXtQPVB8fCIiO3ZhciBJPVAuaW5kZXhPZihIKTtpZihJPi0xKXtQ
PVAuc3Vic3RyaW5nKDQpO31pZihOLnRvU3RyaW5nPT09T2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZ3x8ST4tMSl7Tj1ELmR1bXAoTixwYXJzZUludChQLDEwKSk7fWVs
c2V7Tj1OLnRvU3RyaW5nKCk7fX19ZWxzZXtpZighRC5pc1N0cmluZyhOKSYmIUQu
aXNOdW1iZXIoTikpe049In4tIitMLmxlbmd0aCsiLX4iO0xbTC5sZW5ndGhdPUM7
fX1RPVEuc3Vic3RyaW5nKDAsRykrTitRLnN1YnN0cmluZyhGKzEpO31mb3IoRz1M
Lmxlbmd0aC0xO0c+PTA7Rz1HLTEpe1E9US5yZXBsYWNlKG5ldyBSZWdFeHAoIn4t
IitHKyItfiIpLCJ7IitMW0ddKyJ9IiwiZyIpO31yZXR1cm4gUTt9LHRyaW06ZnVu
Y3Rpb24oQSl7dHJ5e3JldHVybiBBLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKTt9
Y2F0Y2goQil7cmV0dXJuIEE7fX0sbWVyZ2U6ZnVuY3Rpb24oKXt2YXIgRD17fSxC
PWFyZ3VtZW50cztmb3IodmFyIEM9MCxBPUIubGVuZ3RoO0M8QTtDPUMrMSl7WUFI
T08ubGFuZy5hdWdtZW50T2JqZWN0KEQsQltDXSx0cnVlKTt9cmV0dXJuIEQ7fSxs
YXRlcjpmdW5jdGlvbihILEIsSSxELEUpe0g9SHx8MDtCPUJ8fHt9O3ZhciBDPUks
Rz1ELEYsQTtpZihZQUhPTy5sYW5nLmlzU3RyaW5nKEkpKXtDPUJbSV07fWlmKCFD
KXt0aHJvdyBuZXcgVHlwZUVycm9yKCJtZXRob2QgdW5kZWZpbmVkIik7fWlmKCFZ
QUhPTy5sYW5nLmlzQXJyYXkoRykpe0c9W0RdO31GPWZ1bmN0aW9uKCl7Qy5hcHBs
eShCLEcpO307QT0oRSk/c2V0SW50ZXJ2YWwoRixIKTpzZXRUaW1lb3V0KEYsSCk7
cmV0dXJue2ludGVydmFsOkUsY2FuY2VsOmZ1bmN0aW9uKCl7aWYodGhpcy5pbnRl
cnZhbCl7Y2xlYXJJbnRlcnZhbChBKTt9ZWxzZXtjbGVhclRpbWVvdXQoQSk7fX19
O30saXNWYWx1ZTpmdW5jdGlvbihCKXt2YXIgQT1ZQUhPTy5sYW5nO3JldHVybihB
LmlzT2JqZWN0KEIpfHxBLmlzU3RyaW5nKEIpfHxBLmlzTnVtYmVyKEIpfHxBLmlz
Qm9vbGVhbihCKSk7fX07WUFIT08udXRpbC5MYW5nPVlBSE9PLmxhbmc7WUFIT08u
bGFuZy5hdWdtZW50PVlBSE9PLmxhbmcuYXVnbWVudFByb3RvO1lBSE9PLmF1Z21l
bnQ9WUFIT08ubGFuZy5hdWdtZW50UHJvdG87WUFIT08uZXh0ZW5kPVlBSE9PLmxh
bmcuZXh0ZW5kO1lBSE9PLnJlZ2lzdGVyKCJ5YWhvbyIsWUFIT08se3ZlcnNpb246
IjIuNS4xIixidWlsZDoiOTg0In0pOyhmdW5jdGlvbigpe3ZhciBCPVlBSE9PLnV0
aWwsSyxJLEo9e30sRj17fSxNPXdpbmRvdy5kb2N1bWVudDtZQUhPTy5lbnYuX2lk
X2NvdW50ZXI9WUFIT08uZW52Ll9pZF9jb3VudGVyfHwwO3ZhciBDPVlBSE9PLmVu
di51YS5vcGVyYSxMPVlBSE9PLmVudi51YS53ZWJraXQsQT1ZQUhPTy5lbnYudWEu
Z2Vja28sRz1ZQUhPTy5lbnYudWEuaWU7dmFyIEU9e0hZUEhFTjovKC1bYS16XSkv
aSxST09UX1RBRzovXmJvZHl8aHRtbCQvaSxPUF9TQ1JPTEw6L14oPzppbmxpbmV8
dGFibGUtcm93KSQvaX07dmFyIE49ZnVuY3Rpb24oUCl7aWYoIUUuSFlQSEVOLnRl
c3QoUCkpe3JldHVybiBQO31pZihKW1BdKXtyZXR1cm4gSltQXTt9dmFyIFE9UDt3
aGlsZShFLkhZUEhFTi5leGVjKFEpKXtRPVEucmVwbGFjZShSZWdFeHAuJDEsUmVn
RXhwLiQxLnN1YnN0cigxKS50b1VwcGVyQ2FzZSgpKTt9SltQXT1RO3JldHVybiBR
O307dmFyIE89ZnVuY3Rpb24oUSl7dmFyIFA9RltRXTtpZighUCl7UD1uZXcgUmVn
RXhwKCIoPzpefFxccyspIitRKyIoPzpcXHMrfCQpIik7RltRXT1QO31yZXR1cm4g
UDt9O2lmKE0uZGVmYXVsdFZpZXcmJk0uZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRT
dHlsZSl7Sz1mdW5jdGlvbihQLFMpe3ZhciBSPW51bGw7aWYoUz09ImZsb2F0Iil7
Uz0iY3NzRmxvYXQiO312YXIgUT1QLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcu
Z2V0Q29tcHV0ZWRTdHlsZShQLCIiKTtpZihRKXtSPVFbTihTKV07fXJldHVybiBQ
LnN0eWxlW1NdfHxSO307fWVsc2V7aWYoTS5kb2N1bWVudEVsZW1lbnQuY3VycmVu
dFN0eWxlJiZHKXtLPWZ1bmN0aW9uKFAsUil7c3dpdGNoKE4oUikpe2Nhc2Uib3Bh
Y2l0eSI6dmFyIFQ9MTAwO3RyeXtUPVAuZmlsdGVyc1siRFhJbWFnZVRyYW5zZm9y
bS5NaWNyb3NvZnQuQWxwaGEiXS5vcGFjaXR5O31jYXRjaChTKXt0cnl7VD1QLmZp
bHRlcnMoImFscGhhIikub3BhY2l0eTt9Y2F0Y2goUyl7fX1yZXR1cm4gVC8xMDA7
Y2FzZSJmbG9hdCI6Uj0ic3R5bGVGbG9hdCI7ZGVmYXVsdDp2YXIgUT1QLmN1cnJl
bnRTdHlsZT9QLmN1cnJlbnRTdHlsZVtSXTpudWxsO3JldHVybihQLnN0eWxlW1Jd
fHxRKTt9fTt9ZWxzZXtLPWZ1bmN0aW9uKFAsUSl7cmV0dXJuIFAuc3R5bGVbUV07
fTt9fWlmKEcpe0k9ZnVuY3Rpb24oUCxRLFIpe3N3aXRjaChRKXtjYXNlIm9wYWNp
dHkiOmlmKFlBSE9PLmxhbmcuaXNTdHJpbmcoUC5zdHlsZS5maWx0ZXIpKXtQLnN0
eWxlLmZpbHRlcj0iYWxwaGEob3BhY2l0eT0iK1IqMTAwKyIpIjtpZighUC5jdXJy
ZW50U3R5bGV8fCFQLmN1cnJlbnRTdHlsZS5oYXNMYXlvdXQpe1Auc3R5bGUuem9v
bT0xO319YnJlYWs7Y2FzZSJmbG9hdCI6UT0ic3R5bGVGbG9hdCI7ZGVmYXVsdDpQ
LnN0eWxlW1FdPVI7fX07fWVsc2V7ST1mdW5jdGlvbihQLFEsUil7aWYoUT09ImZs
b2F0Iil7UT0iY3NzRmxvYXQiO31QLnN0eWxlW1FdPVI7fTt9dmFyIEQ9ZnVuY3Rp
b24oUCxRKXtyZXR1cm4gUCYmUC5ub2RlVHlwZT09MSYmKCFRfHxRKFApKTt9O1lB
SE9PLnV0aWwuRG9tPXtnZXQ6ZnVuY3Rpb24oUil7aWYoUiYmKFIubm9kZVR5cGV8
fFIuaXRlbSkpe3JldHVybiBSO31pZihZQUhPTy5sYW5nLmlzU3RyaW5nKFIpfHwh
Uil7cmV0dXJuIE0uZ2V0RWxlbWVudEJ5SWQoUik7fWlmKFIubGVuZ3RoIT09dW5k
ZWZpbmVkKXt2YXIgUz1bXTtmb3IodmFyIFE9MCxQPVIubGVuZ3RoO1E8UDsrK1Ep
e1NbUy5sZW5ndGhdPUIuRG9tLmdldChSW1FdKTt9cmV0dXJuIFM7fXJldHVybiBS
O30sZ2V0U3R5bGU6ZnVuY3Rpb24oUCxSKXtSPU4oUik7dmFyIFE9ZnVuY3Rpb24o
Uyl7cmV0dXJuIEsoUyxSKTt9O3JldHVybiBCLkRvbS5iYXRjaChQLFEsQi5Eb20s
dHJ1ZSk7fSxzZXRTdHlsZTpmdW5jdGlvbihQLFIsUyl7Uj1OKFIpO3ZhciBRPWZ1
bmN0aW9uKFQpe0koVCxSLFMpO307Qi5Eb20uYmF0Y2goUCxRLEIuRG9tLHRydWUp
O30sZ2V0WFk6ZnVuY3Rpb24oUCl7dmFyIFE9ZnVuY3Rpb24oUil7aWYoKFIucGFy
ZW50Tm9kZT09PW51bGx8fFIub2Zmc2V0UGFyZW50PT09bnVsbHx8dGhpcy5nZXRT
dHlsZShSLCJkaXNwbGF5Iik9PSJub25lIikmJlIhPVIub3duZXJEb2N1bWVudC5i
b2R5KXtyZXR1cm4gZmFsc2U7fXJldHVybiBIKFIpO307cmV0dXJuIEIuRG9tLmJh
dGNoKFAsUSxCLkRvbSx0cnVlKTt9LGdldFg6ZnVuY3Rpb24oUCl7dmFyIFE9ZnVu
Y3Rpb24oUil7cmV0dXJuIEIuRG9tLmdldFhZKFIpWzBdO307cmV0dXJuIEIuRG9t
LmJhdGNoKFAsUSxCLkRvbSx0cnVlKTt9LGdldFk6ZnVuY3Rpb24oUCl7dmFyIFE9
ZnVuY3Rpb24oUil7cmV0dXJuIEIuRG9tLmdldFhZKFIpWzFdO307cmV0dXJuIEIu
RG9tLmJhdGNoKFAsUSxCLkRvbSx0cnVlKTt9LHNldFhZOmZ1bmN0aW9uKFAsUyxS
KXt2YXIgUT1mdW5jdGlvbihWKXt2YXIgVT10aGlzLmdldFN0eWxlKFYsInBvc2l0
aW9uIik7aWYoVT09InN0YXRpYyIpe3RoaXMuc2V0U3R5bGUoViwicG9zaXRpb24i
LCJyZWxhdGl2ZSIpO1U9InJlbGF0aXZlIjt9dmFyIFg9dGhpcy5nZXRYWShWKTtp
ZihYPT09ZmFsc2Upe3JldHVybiBmYWxzZTt9dmFyIFc9W3BhcnNlSW50KHRoaXMu
Z2V0U3R5bGUoViwibGVmdCIpLDEwKSxwYXJzZUludCh0aGlzLmdldFN0eWxlKFYs
InRvcCIpLDEwKV07aWYoaXNOYU4oV1swXSkpe1dbMF09KFU9PSJyZWxhdGl2ZSIp
PzA6Vi5vZmZzZXRMZWZ0O31pZihpc05hTihXWzFdKSl7V1sxXT0oVT09InJlbGF0
aXZlIik/MDpWLm9mZnNldFRvcDt9aWYoU1swXSE9PW51bGwpe1Yuc3R5bGUubGVm
dD1TWzBdLVhbMF0rV1swXSsicHgiO31pZihTWzFdIT09bnVsbCl7Vi5zdHlsZS50
b3A9U1sxXS1YWzFdK1dbMV0rInB4Ijt9aWYoIVIpe3ZhciBUPXRoaXMuZ2V0WFko
Vik7aWYoKFNbMF0hPT1udWxsJiZUWzBdIT1TWzBdKXx8KFNbMV0hPT1udWxsJiZU
WzFdIT1TWzFdKSl7dGhpcy5zZXRYWShWLFMsdHJ1ZSk7fX19O0IuRG9tLmJhdGNo
KFAsUSxCLkRvbSx0cnVlKTt9LHNldFg6ZnVuY3Rpb24oUSxQKXtCLkRvbS5zZXRY
WShRLFtQLG51bGxdKTt9LHNldFk6ZnVuY3Rpb24oUCxRKXtCLkRvbS5zZXRYWShQ
LFtudWxsLFFdKTt9LGdldFJlZ2lvbjpmdW5jdGlvbihQKXt2YXIgUT1mdW5jdGlv
bihSKXtpZigoUi5wYXJlbnROb2RlPT09bnVsbHx8Ui5vZmZzZXRQYXJlbnQ9PT1u
dWxsfHx0aGlzLmdldFN0eWxlKFIsImRpc3BsYXkiKT09Im5vbmUiKSYmUiE9Ui5v
d25lckRvY3VtZW50LmJvZHkpe3JldHVybiBmYWxzZTt9dmFyIFM9Qi5SZWdpb24u
Z2V0UmVnaW9uKFIpO3JldHVybiBTO307cmV0dXJuIEIuRG9tLmJhdGNoKFAsUSxC
LkRvbSx0cnVlKTt9LGdldENsaWVudFdpZHRoOmZ1bmN0aW9uKCl7cmV0dXJuIEIu
RG9tLmdldFZpZXdwb3J0V2lkdGgoKTt9LGdldENsaWVudEhlaWdodDpmdW5jdGlv
bigpe3JldHVybiBCLkRvbS5nZXRWaWV3cG9ydEhlaWdodCgpO30sZ2V0RWxlbWVu
dHNCeUNsYXNzTmFtZTpmdW5jdGlvbihULFgsVSxWKXtYPVh8fCIqIjtVPShVKT9C
LkRvbS5nZXQoVSk6bnVsbHx8TTtpZighVSl7cmV0dXJuW107fXZhciBRPVtdLFA9
VS5nZXRFbGVtZW50c0J5VGFnTmFtZShYKSxXPU8oVCk7Zm9yKHZhciBSPTAsUz1Q
Lmxlbmd0aDtSPFM7KytSKXtpZihXLnRlc3QoUFtSXS5jbGFzc05hbWUpKXtRW1Eu
bGVuZ3RoXT1QW1JdO2lmKFYpe1YuY2FsbChQW1JdLFBbUl0pO319fXJldHVybiBR
O30saGFzQ2xhc3M6ZnVuY3Rpb24oUixRKXt2YXIgUD1PKFEpO3ZhciBTPWZ1bmN0
aW9uKFQpe3JldHVybiBQLnRlc3QoVC5jbGFzc05hbWUpO307cmV0dXJuIEIuRG9t
LmJhdGNoKFIsUyxCLkRvbSx0cnVlKTt9LGFkZENsYXNzOmZ1bmN0aW9uKFEsUCl7
dmFyIFI9ZnVuY3Rpb24oUyl7aWYodGhpcy5oYXNDbGFzcyhTLFApKXtyZXR1cm4g
ZmFsc2U7fVMuY2xhc3NOYW1lPVlBSE9PLmxhbmcudHJpbShbUy5jbGFzc05hbWUs
UF0uam9pbigiICIpKTtyZXR1cm4gdHJ1ZTt9O3JldHVybiBCLkRvbS5iYXRjaChR
LFIsQi5Eb20sdHJ1ZSk7fSxyZW1vdmVDbGFzczpmdW5jdGlvbihSLFEpe3ZhciBQ
PU8oUSk7dmFyIFM9ZnVuY3Rpb24oVCl7aWYoIVF8fCF0aGlzLmhhc0NsYXNzKFQs
USkpe3JldHVybiBmYWxzZTt9dmFyIFU9VC5jbGFzc05hbWU7VC5jbGFzc05hbWU9
VS5yZXBsYWNlKFAsIiAiKTtpZih0aGlzLmhhc0NsYXNzKFQsUSkpe3RoaXMucmVt
b3ZlQ2xhc3MoVCxRKTt9VC5jbGFzc05hbWU9WUFIT08ubGFuZy50cmltKFQuY2xh
c3NOYW1lKTtyZXR1cm4gdHJ1ZTt9O3JldHVybiBCLkRvbS5iYXRjaChSLFMsQi5E
b20sdHJ1ZSk7fSxyZXBsYWNlQ2xhc3M6ZnVuY3Rpb24oUyxRLFApe2lmKCFQfHxR
PT09UCl7cmV0dXJuIGZhbHNlO312YXIgUj1PKFEpO3ZhciBUPWZ1bmN0aW9uKFUp
e2lmKCF0aGlzLmhhc0NsYXNzKFUsUSkpe3RoaXMuYWRkQ2xhc3MoVSxQKTtyZXR1
cm4gdHJ1ZTt9VS5jbGFzc05hbWU9VS5jbGFzc05hbWUucmVwbGFjZShSLCIgIitQ
KyIgIik7aWYodGhpcy5oYXNDbGFzcyhVLFEpKXt0aGlzLnJlcGxhY2VDbGFzcyhV
LFEsUCk7fVUuY2xhc3NOYW1lPVlBSE9PLmxhbmcudHJpbShVLmNsYXNzTmFtZSk7
cmV0dXJuIHRydWU7fTtyZXR1cm4gQi5Eb20uYmF0Y2goUyxULEIuRG9tLHRydWUp
O30sZ2VuZXJhdGVJZDpmdW5jdGlvbihQLFIpe1I9Unx8Inl1aS1nZW4iO3ZhciBR
PWZ1bmN0aW9uKFMpe2lmKFMmJlMuaWQpe3JldHVybiBTLmlkO312YXIgVD1SK1lB
SE9PLmVudi5faWRfY291bnRlcisrO2lmKFMpe1MuaWQ9VDt9cmV0dXJuIFQ7fTty
ZXR1cm4gQi5Eb20uYmF0Y2goUCxRLEIuRG9tLHRydWUpfHxRLmFwcGx5KEIuRG9t
LGFyZ3VtZW50cyk7fSxpc0FuY2VzdG9yOmZ1bmN0aW9uKFAsUSl7UD1CLkRvbS5n
ZXQoUCk7UT1CLkRvbS5nZXQoUSk7aWYoIVB8fCFRKXtyZXR1cm4gZmFsc2U7fWlm
KFAuY29udGFpbnMmJlEubm9kZVR5cGUmJiFMKXtyZXR1cm4gUC5jb250YWlucyhR
KTt9ZWxzZXtpZihQLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiZRLm5vZGVUeXBl
KXtyZXR1cm4hIShQLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKFEpJjE2KTt9ZWxz
ZXtpZihRLm5vZGVUeXBlKXtyZXR1cm4hIXRoaXMuZ2V0QW5jZXN0b3JCeShRLGZ1
bmN0aW9uKFIpe3JldHVybiBSPT1QO30pO319fXJldHVybiBmYWxzZTt9LGluRG9j
dW1lbnQ6ZnVuY3Rpb24oUCl7cmV0dXJuIHRoaXMuaXNBbmNlc3RvcihNLmRvY3Vt
ZW50RWxlbWVudCxQKTt9LGdldEVsZW1lbnRzQnk6ZnVuY3Rpb24oVyxRLFIsVCl7
UT1RfHwiKiI7Uj0oUik/Qi5Eb20uZ2V0KFIpOm51bGx8fE07aWYoIVIpe3JldHVy
bltdO312YXIgUz1bXSxWPVIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoUSk7Zm9yKHZh
ciBVPTAsUD1WLmxlbmd0aDtVPFA7KytVKXtpZihXKFZbVV0pKXtTW1MubGVuZ3Ro
XT1WW1VdO2lmKFQpe1QoVltVXSk7fX19cmV0dXJuIFM7fSxiYXRjaDpmdW5jdGlv
bihULFcsVixSKXtUPShUJiYoVC50YWdOYW1lfHxULml0ZW0pKT9UOkIuRG9tLmdl
dChUKTtpZighVHx8IVcpe3JldHVybiBmYWxzZTt9dmFyIFM9KFIpP1Y6d2luZG93
O2lmKFQudGFnTmFtZXx8VC5sZW5ndGg9PT11bmRlZmluZWQpe3JldHVybiBXLmNh
bGwoUyxULFYpO312YXIgVT1bXTtmb3IodmFyIFE9MCxQPVQubGVuZ3RoO1E8UDsr
K1Epe1VbVS5sZW5ndGhdPVcuY2FsbChTLFRbUV0sVik7fXJldHVybiBVO30sZ2V0
RG9jdW1lbnRIZWlnaHQ6ZnVuY3Rpb24oKXt2YXIgUT0oTS5jb21wYXRNb2RlIT0i
Q1NTMUNvbXBhdCIpP00uYm9keS5zY3JvbGxIZWlnaHQ6TS5kb2N1bWVudEVsZW1l
bnQuc2Nyb2xsSGVpZ2h0O3ZhciBQPU1hdGgubWF4KFEsQi5Eb20uZ2V0Vmlld3Bv
cnRIZWlnaHQoKSk7cmV0dXJuIFA7fSxnZXREb2N1bWVudFdpZHRoOmZ1bmN0aW9u
KCl7dmFyIFE9KE0uY29tcGF0TW9kZSE9IkNTUzFDb21wYXQiKT9NLmJvZHkuc2Ny
b2xsV2lkdGg6TS5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsV2lkdGg7dmFyIFA9TWF0
aC5tYXgoUSxCLkRvbS5nZXRWaWV3cG9ydFdpZHRoKCkpO3JldHVybiBQO30sZ2V0
Vmlld3BvcnRIZWlnaHQ6ZnVuY3Rpb24oKXt2YXIgUD1zZWxmLmlubmVySGVpZ2h0
O3ZhciBRPU0uY29tcGF0TW9kZTtpZigoUXx8RykmJiFDKXtQPShRPT0iQ1NTMUNv
bXBhdCIpP00uZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDpNLmJvZHkuY2xp
ZW50SGVpZ2h0O31yZXR1cm4gUDt9LGdldFZpZXdwb3J0V2lkdGg6ZnVuY3Rpb24o
KXt2YXIgUD1zZWxmLmlubmVyV2lkdGg7dmFyIFE9TS5jb21wYXRNb2RlO2lmKFF8
fEcpe1A9KFE9PSJDU1MxQ29tcGF0Iik/TS5kb2N1bWVudEVsZW1lbnQuY2xpZW50
V2lkdGg6TS5ib2R5LmNsaWVudFdpZHRoO31yZXR1cm4gUDt9LGdldEFuY2VzdG9y
Qnk6ZnVuY3Rpb24oUCxRKXt3aGlsZShQPVAucGFyZW50Tm9kZSl7aWYoRChQLFEp
KXtyZXR1cm4gUDt9fXJldHVybiBudWxsO30sZ2V0QW5jZXN0b3JCeUNsYXNzTmFt
ZTpmdW5jdGlvbihRLFApe1E9Qi5Eb20uZ2V0KFEpO2lmKCFRKXtyZXR1cm4gbnVs
bDt9dmFyIFI9ZnVuY3Rpb24oUyl7cmV0dXJuIEIuRG9tLmhhc0NsYXNzKFMsUCk7
fTtyZXR1cm4gQi5Eb20uZ2V0QW5jZXN0b3JCeShRLFIpO30sZ2V0QW5jZXN0b3JC
eVRhZ05hbWU6ZnVuY3Rpb24oUSxQKXtRPUIuRG9tLmdldChRKTtpZighUSl7cmV0
dXJuIG51bGw7fXZhciBSPWZ1bmN0aW9uKFMpe3JldHVybiBTLnRhZ05hbWUmJlMu
dGFnTmFtZS50b1VwcGVyQ2FzZSgpPT1QLnRvVXBwZXJDYXNlKCk7fTtyZXR1cm4g
Qi5Eb20uZ2V0QW5jZXN0b3JCeShRLFIpO30sZ2V0UHJldmlvdXNTaWJsaW5nQnk6
ZnVuY3Rpb24oUCxRKXt3aGlsZShQKXtQPVAucHJldmlvdXNTaWJsaW5nO2lmKEQo
UCxRKSl7cmV0dXJuIFA7fX1yZXR1cm4gbnVsbDt9LGdldFByZXZpb3VzU2libGlu
ZzpmdW5jdGlvbihQKXtQPUIuRG9tLmdldChQKTtpZighUCl7cmV0dXJuIG51bGw7
fXJldHVybiBCLkRvbS5nZXRQcmV2aW91c1NpYmxpbmdCeShQKTt9LGdldE5leHRT
aWJsaW5nQnk6ZnVuY3Rpb24oUCxRKXt3aGlsZShQKXtQPVAubmV4dFNpYmxpbmc7
aWYoRChQLFEpKXtyZXR1cm4gUDt9fXJldHVybiBudWxsO30sZ2V0TmV4dFNpYmxp
bmc6ZnVuY3Rpb24oUCl7UD1CLkRvbS5nZXQoUCk7aWYoIVApe3JldHVybiBudWxs
O31yZXR1cm4gQi5Eb20uZ2V0TmV4dFNpYmxpbmdCeShQKTt9LGdldEZpcnN0Q2hp
bGRCeTpmdW5jdGlvbihQLFIpe3ZhciBRPShEKFAuZmlyc3RDaGlsZCxSKSk/UC5m
aXJzdENoaWxkOm51bGw7cmV0dXJuIFF8fEIuRG9tLmdldE5leHRTaWJsaW5nQnko
UC5maXJzdENoaWxkLFIpO30sZ2V0Rmlyc3RDaGlsZDpmdW5jdGlvbihQLFEpe1A9
Qi5Eb20uZ2V0KFApO2lmKCFQKXtyZXR1cm4gbnVsbDt9cmV0dXJuIEIuRG9tLmdl
dEZpcnN0Q2hpbGRCeShQKTt9LGdldExhc3RDaGlsZEJ5OmZ1bmN0aW9uKFAsUil7
aWYoIVApe3JldHVybiBudWxsO312YXIgUT0oRChQLmxhc3RDaGlsZCxSKSk/UC5s
YXN0Q2hpbGQ6bnVsbDtyZXR1cm4gUXx8Qi5Eb20uZ2V0UHJldmlvdXNTaWJsaW5n
QnkoUC5sYXN0Q2hpbGQsUik7fSxnZXRMYXN0Q2hpbGQ6ZnVuY3Rpb24oUCl7UD1C
LkRvbS5nZXQoUCk7cmV0dXJuIEIuRG9tLmdldExhc3RDaGlsZEJ5KFApO30sZ2V0
Q2hpbGRyZW5CeTpmdW5jdGlvbihRLFMpe3ZhciBSPUIuRG9tLmdldEZpcnN0Q2hp
bGRCeShRLFMpO3ZhciBQPVI/W1JdOltdO0IuRG9tLmdldE5leHRTaWJsaW5nQnko
UixmdW5jdGlvbihUKXtpZighU3x8UyhUKSl7UFtQLmxlbmd0aF09VDt9cmV0dXJu
IGZhbHNlO30pO3JldHVybiBQO30sZ2V0Q2hpbGRyZW46ZnVuY3Rpb24oUCl7UD1C
LkRvbS5nZXQoUCk7aWYoIVApe31yZXR1cm4gQi5Eb20uZ2V0Q2hpbGRyZW5CeShQ
KTt9LGdldERvY3VtZW50U2Nyb2xsTGVmdDpmdW5jdGlvbihQKXtQPVB8fE07cmV0
dXJuIE1hdGgubWF4KFAuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQsUC5ib2R5
LnNjcm9sbExlZnQpO30sZ2V0RG9jdW1lbnRTY3JvbGxUb3A6ZnVuY3Rpb24oUCl7
UD1QfHxNO3JldHVybiBNYXRoLm1heChQLmRvY3VtZW50RWxlbWVudC5zY3JvbGxU
b3AsUC5ib2R5LnNjcm9sbFRvcCk7fSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24oUSxQ
KXtRPUIuRG9tLmdldChRKTtQPUIuRG9tLmdldChQKTtpZighUXx8IVB8fCFQLnBh
cmVudE5vZGUpe3JldHVybiBudWxsO31yZXR1cm4gUC5wYXJlbnROb2RlLmluc2Vy
dEJlZm9yZShRLFApO30saW5zZXJ0QWZ0ZXI6ZnVuY3Rpb24oUSxQKXtRPUIuRG9t
LmdldChRKTtQPUIuRG9tLmdldChQKTtpZighUXx8IVB8fCFQLnBhcmVudE5vZGUp
e3JldHVybiBudWxsO31pZihQLm5leHRTaWJsaW5nKXtyZXR1cm4gUC5wYXJlbnRO
b2RlLmluc2VydEJlZm9yZShRLFAubmV4dFNpYmxpbmcpO31lbHNle3JldHVybiBQ
LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoUSk7fX0sZ2V0Q2xpZW50UmVnaW9uOmZ1
bmN0aW9uKCl7dmFyIFI9Qi5Eb20uZ2V0RG9jdW1lbnRTY3JvbGxUb3AoKSxRPUIu
RG9tLmdldERvY3VtZW50U2Nyb2xsTGVmdCgpLFM9Qi5Eb20uZ2V0Vmlld3BvcnRX
aWR0aCgpK1EsUD1CLkRvbS5nZXRWaWV3cG9ydEhlaWdodCgpK1I7cmV0dXJuIG5l
dyBCLlJlZ2lvbihSLFMsUCxRKTt9fTt2YXIgSD1mdW5jdGlvbigpe2lmKE0uZG9j
dW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCl7cmV0dXJuIGZ1bmN0
aW9uKFEpe3ZhciBSPVEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIFA9US5v
d25lckRvY3VtZW50O3JldHVybltSLmxlZnQrQi5Eb20uZ2V0RG9jdW1lbnRTY3Jv
bGxMZWZ0KFApLFIudG9wK0IuRG9tLmdldERvY3VtZW50U2Nyb2xsVG9wKFApXTt9
O31lbHNle3JldHVybiBmdW5jdGlvbihSKXt2YXIgUz1bUi5vZmZzZXRMZWZ0LFIu
b2Zmc2V0VG9wXTt2YXIgUT1SLm9mZnNldFBhcmVudDt2YXIgUD0oTCYmQi5Eb20u
Z2V0U3R5bGUoUiwicG9zaXRpb24iKT09ImFic29sdXRlIiYmUi5vZmZzZXRQYXJl
bnQ9PVIub3duZXJEb2N1bWVudC5ib2R5KTtpZihRIT1SKXt3aGlsZShRKXtTWzBd
Kz1RLm9mZnNldExlZnQ7U1sxXSs9US5vZmZzZXRUb3A7aWYoIVAmJkwmJkIuRG9t
LmdldFN0eWxlKFEsInBvc2l0aW9uIik9PSJhYnNvbHV0ZSIpe1A9dHJ1ZTt9UT1R
Lm9mZnNldFBhcmVudDt9fWlmKFApe1NbMF0tPVIub3duZXJEb2N1bWVudC5ib2R5
Lm9mZnNldExlZnQ7U1sxXS09Ui5vd25lckRvY3VtZW50LmJvZHkub2Zmc2V0VG9w
O31RPVIucGFyZW50Tm9kZTt3aGlsZShRLnRhZ05hbWUmJiFFLlJPT1RfVEFHLnRl
c3QoUS50YWdOYW1lKSl7aWYoUS5zY3JvbGxUb3B8fFEuc2Nyb2xsTGVmdCl7aWYo
IUUuT1BfU0NST0xMLnRlc3QoQi5Eb20uZ2V0U3R5bGUoUSwiZGlzcGxheSIpKSl7
aWYoIUN8fEIuRG9tLmdldFN0eWxlKFEsIm92ZXJmbG93IikhPT0idmlzaWJsZSIp
e1NbMF0tPVEuc2Nyb2xsTGVmdDtTWzFdLT1RLnNjcm9sbFRvcDt9fX1RPVEucGFy
ZW50Tm9kZTt9cmV0dXJuIFM7fTt9fSgpO30pKCk7WUFIT08udXRpbC5SZWdpb249
ZnVuY3Rpb24oQyxELEEsQil7dGhpcy50b3A9Qzt0aGlzWzFdPUM7dGhpcy5yaWdo
dD1EO3RoaXMuYm90dG9tPUE7dGhpcy5sZWZ0PUI7dGhpc1swXT1CO307WUFIT08u
dXRpbC5SZWdpb24ucHJvdG90eXBlLmNvbnRhaW5zPWZ1bmN0aW9uKEEpe3JldHVy
bihBLmxlZnQ+PXRoaXMubGVmdCYmQS5yaWdodDw9dGhpcy5yaWdodCYmQS50b3A+
PXRoaXMudG9wJiZBLmJvdHRvbTw9dGhpcy5ib3R0b20pO307WUFIT08udXRpbC5S
ZWdpb24ucHJvdG90eXBlLmdldEFyZWE9ZnVuY3Rpb24oKXtyZXR1cm4oKHRoaXMu
Ym90dG9tLXRoaXMudG9wKSoodGhpcy5yaWdodC10aGlzLmxlZnQpKTt9O1lBSE9P
LnV0aWwuUmVnaW9uLnByb3RvdHlwZS5pbnRlcnNlY3Q9ZnVuY3Rpb24oRSl7dmFy
IEM9TWF0aC5tYXgodGhpcy50b3AsRS50b3ApO3ZhciBEPU1hdGgubWluKHRoaXMu
cmlnaHQsRS5yaWdodCk7dmFyIEE9TWF0aC5taW4odGhpcy5ib3R0b20sRS5ib3R0
b20pO3ZhciBCPU1hdGgubWF4KHRoaXMubGVmdCxFLmxlZnQpO2lmKEE+PUMmJkQ+
PUIpe3JldHVybiBuZXcgWUFIT08udXRpbC5SZWdpb24oQyxELEEsQik7fWVsc2V7
cmV0dXJuIG51bGw7fX07WUFIT08udXRpbC5SZWdpb24ucHJvdG90eXBlLnVuaW9u
PWZ1bmN0aW9uKEUpe3ZhciBDPU1hdGgubWluKHRoaXMudG9wLEUudG9wKTt2YXIg
RD1NYXRoLm1heCh0aGlzLnJpZ2h0LEUucmlnaHQpO3ZhciBBPU1hdGgubWF4KHRo
aXMuYm90dG9tLEUuYm90dG9tKTt2YXIgQj1NYXRoLm1pbih0aGlzLmxlZnQsRS5s
ZWZ0KTtyZXR1cm4gbmV3IFlBSE9PLnV0aWwuUmVnaW9uKEMsRCxBLEIpO307WUFI
T08udXRpbC5SZWdpb24ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0
dXJuKCJSZWdpb24geyIrInRvcDogIit0aGlzLnRvcCsiLCByaWdodDogIit0aGlz
LnJpZ2h0KyIsIGJvdHRvbTogIit0aGlzLmJvdHRvbSsiLCBsZWZ0OiAiK3RoaXMu
bGVmdCsifSIpO307WUFIT08udXRpbC5SZWdpb24uZ2V0UmVnaW9uPWZ1bmN0aW9u
KEQpe3ZhciBGPVlBSE9PLnV0aWwuRG9tLmdldFhZKEQpO3ZhciBDPUZbMV07dmFy
IEU9RlswXStELm9mZnNldFdpZHRoO3ZhciBBPUZbMV0rRC5vZmZzZXRIZWlnaHQ7
dmFyIEI9RlswXTtyZXR1cm4gbmV3IFlBSE9PLnV0aWwuUmVnaW9uKEMsRSxBLEIp
O307WUFIT08udXRpbC5Qb2ludD1mdW5jdGlvbihBLEIpe2lmKFlBSE9PLmxhbmcu
aXNBcnJheShBKSl7Qj1BWzFdO0E9QVswXTt9dGhpcy54PXRoaXMucmlnaHQ9dGhp
cy5sZWZ0PXRoaXNbMF09QTt0aGlzLnk9dGhpcy50b3A9dGhpcy5ib3R0b209dGhp
c1sxXT1CO307WUFIT08udXRpbC5Qb2ludC5wcm90b3R5cGU9bmV3IFlBSE9PLnV0
aWwuUmVnaW9uKCk7WUFIT08ucmVnaXN0ZXIoImRvbSIsWUFIT08udXRpbC5Eb20s
e3ZlcnNpb246IjIuNS4xIixidWlsZDoiOTg0In0pO1lBSE9PLnV0aWwuQ3VzdG9t
RXZlbnQ9ZnVuY3Rpb24oRCxCLEMsQSl7dGhpcy50eXBlPUQ7dGhpcy5zY29wZT1C
fHx3aW5kb3c7dGhpcy5zaWxlbnQ9Qzt0aGlzLnNpZ25hdHVyZT1BfHxZQUhPTy51
dGlsLkN1c3RvbUV2ZW50LkxJU1Q7dGhpcy5zdWJzY3JpYmVycz1bXTtpZighdGhp
cy5zaWxlbnQpe312YXIgRT0iX1lVSUNFT25TdWJzY3JpYmUiO2lmKEQhPT1FKXt0
aGlzLnN1YnNjcmliZUV2ZW50PW5ldyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50KEUs
dGhpcyx0cnVlKTt9dGhpcy5sYXN0RXJyb3I9bnVsbDt9O1lBSE9PLnV0aWwuQ3Vz
dG9tRXZlbnQuTElTVD0wO1lBSE9PLnV0aWwuQ3VzdG9tRXZlbnQuRkxBVD0xO1lB
SE9PLnV0aWwuQ3VzdG9tRXZlbnQucHJvdG90eXBlPXtzdWJzY3JpYmU6ZnVuY3Rp
b24oQixDLEEpe2lmKCFCKXt0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgY2FsbGJh
Y2sgZm9yIHN1YnNjcmliZXIgdG8gJyIrdGhpcy50eXBlKyInIik7fWlmKHRoaXMu
c3Vic2NyaWJlRXZlbnQpe3RoaXMuc3Vic2NyaWJlRXZlbnQuZmlyZShCLEMsQSk7
fXRoaXMuc3Vic2NyaWJlcnMucHVzaChuZXcgWUFIT08udXRpbC5TdWJzY3JpYmVy
KEIsQyxBKSk7fSx1bnN1YnNjcmliZTpmdW5jdGlvbihELEYpe2lmKCFEKXtyZXR1
cm4gdGhpcy51bnN1YnNjcmliZUFsbCgpO312YXIgRT1mYWxzZTtmb3IodmFyIEI9
MCxBPXRoaXMuc3Vic2NyaWJlcnMubGVuZ3RoO0I8QTsrK0Ipe3ZhciBDPXRoaXMu
c3Vic2NyaWJlcnNbQl07aWYoQyYmQy5jb250YWlucyhELEYpKXt0aGlzLl9kZWxl
dGUoQik7RT10cnVlO319cmV0dXJuIEU7fSxmaXJlOmZ1bmN0aW9uKCl7dmFyIEQ9
dGhpcy5zdWJzY3JpYmVycy5sZW5ndGg7aWYoIUQmJnRoaXMuc2lsZW50KXtyZXR1
cm4gdHJ1ZTt9dmFyIEg9W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMCksRj10cnVl
LEMsST1mYWxzZTtpZighdGhpcy5zaWxlbnQpe312YXIgQj10aGlzLnN1YnNjcmli
ZXJzLnNsaWNlKCk7Zm9yKEM9MDtDPEQ7KytDKXt2YXIgSz1CW0NdO2lmKCFLKXtJ
PXRydWU7fWVsc2V7aWYoIXRoaXMuc2lsZW50KXt9dmFyIEo9Sy5nZXRTY29wZSh0
aGlzLnNjb3BlKTtpZih0aGlzLnNpZ25hdHVyZT09WUFIT08udXRpbC5DdXN0b21F
dmVudC5GTEFUKXt2YXIgQT1udWxsO2lmKEgubGVuZ3RoPjApe0E9SFswXTt9dHJ5
e0Y9Sy5mbi5jYWxsKEosQSxLLm9iaik7fWNhdGNoKEUpe3RoaXMubGFzdEVycm9y
PUU7fX1lbHNle3RyeXtGPUsuZm4uY2FsbChKLHRoaXMudHlwZSxILEsub2JqKTt9
Y2F0Y2goRyl7dGhpcy5sYXN0RXJyb3I9Rzt9fWlmKGZhbHNlPT09Ril7aWYoIXRo
aXMuc2lsZW50KXt9cmV0dXJuIGZhbHNlO319fXJldHVybiB0cnVlO30sdW5zdWJz
Y3JpYmVBbGw6ZnVuY3Rpb24oKXtmb3IodmFyIEE9dGhpcy5zdWJzY3JpYmVycy5s
ZW5ndGgtMTtBPi0xO0EtLSl7dGhpcy5fZGVsZXRlKEEpO310aGlzLnN1YnNjcmli
ZXJzPVtdO3JldHVybiBBO30sX2RlbGV0ZTpmdW5jdGlvbihBKXt2YXIgQj10aGlz
LnN1YnNjcmliZXJzW0FdO2lmKEIpe2RlbGV0ZSBCLmZuO2RlbGV0ZSBCLm9iajt9
dGhpcy5zdWJzY3JpYmVycy5zcGxpY2UoQSwxKTt9LHRvU3RyaW5nOmZ1bmN0aW9u
KCl7cmV0dXJuIkN1c3RvbUV2ZW50OiAiKyInIit0aGlzLnR5cGUrIicsICIrInNj
b3BlOiAiK3RoaXMuc2NvcGU7fX07WUFIT08udXRpbC5TdWJzY3JpYmVyPWZ1bmN0
aW9uKEIsQyxBKXt0aGlzLmZuPUI7dGhpcy5vYmo9WUFIT08ubGFuZy5pc1VuZGVm
aW5lZChDKT9udWxsOkM7dGhpcy5vdmVycmlkZT1BO307WUFIT08udXRpbC5TdWJz
Y3JpYmVyLnByb3RvdHlwZS5nZXRTY29wZT1mdW5jdGlvbihBKXtpZih0aGlzLm92
ZXJyaWRlKXtpZih0aGlzLm92ZXJyaWRlPT09dHJ1ZSl7cmV0dXJuIHRoaXMub2Jq
O31lbHNle3JldHVybiB0aGlzLm92ZXJyaWRlO319cmV0dXJuIEE7fTtZQUhPTy51
dGlsLlN1YnNjcmliZXIucHJvdG90eXBlLmNvbnRhaW5zPWZ1bmN0aW9uKEEsQil7
aWYoQil7cmV0dXJuKHRoaXMuZm49PUEmJnRoaXMub2JqPT1CKTt9ZWxzZXtyZXR1
cm4odGhpcy5mbj09QSk7fX07WUFIT08udXRpbC5TdWJzY3JpYmVyLnByb3RvdHlw
ZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJTdWJzY3JpYmVyIHsgb2JqOiAi
K3RoaXMub2JqKyIsIG92ZXJyaWRlOiAiKyh0aGlzLm92ZXJyaWRlfHwibm8iKSsi
IH0iO307aWYoIVlBSE9PLnV0aWwuRXZlbnQpe1lBSE9PLnV0aWwuRXZlbnQ9ZnVu
Y3Rpb24oKXt2YXIgSD1mYWxzZTt2YXIgST1bXTt2YXIgSj1bXTt2YXIgRz1bXTt2
YXIgRT1bXTt2YXIgQz0wO3ZhciBGPVtdO3ZhciBCPVtdO3ZhciBBPTA7dmFyIEQ9
ezYzMjMyOjM4LDYzMjMzOjQwLDYzMjM0OjM3LDYzMjM1OjM5LDYzMjc2OjMzLDYz
Mjc3OjM0LDI1Ojl9O3JldHVybntQT0xMX1JFVFJZUzoyMDAwLFBPTExfSU5URVJW
QUw6MjAsRUw6MCxUWVBFOjEsRk46MixXRk46MyxVTkxPQURfT0JKOjMsQURKX1ND
T1BFOjQsT0JKOjUsT1ZFUlJJREU6NixsYXN0RXJyb3I6bnVsbCxpc1NhZmFyaTpZ
QUhPTy5lbnYudWEud2Via2l0LHdlYmtpdDpZQUhPTy5lbnYudWEud2Via2l0LGlz
SUU6WUFIT08uZW52LnVhLmllLF9pbnRlcnZhbDpudWxsLF9kcmk6bnVsbCxET01S
ZWFkeTpmYWxzZSxzdGFydEludGVydmFsOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX2lu
dGVydmFsKXt2YXIgSz10aGlzO3ZhciBMPWZ1bmN0aW9uKCl7Sy5fdHJ5UHJlbG9h
ZEF0dGFjaCgpO307dGhpcy5faW50ZXJ2YWw9c2V0SW50ZXJ2YWwoTCx0aGlzLlBP
TExfSU5URVJWQUwpO319LG9uQXZhaWxhYmxlOmZ1bmN0aW9uKFAsTSxRLE8sTil7
dmFyIEs9KFlBSE9PLmxhbmcuaXNTdHJpbmcoUCkpP1tQXTpQO2Zvcih2YXIgTD0w
O0w8Sy5sZW5ndGg7TD1MKzEpe0YucHVzaCh7aWQ6S1tMXSxmbjpNLG9iajpRLG92
ZXJyaWRlOk8sY2hlY2tSZWFkeTpOfSk7fUM9dGhpcy5QT0xMX1JFVFJZUzt0aGlz
LnN0YXJ0SW50ZXJ2YWwoKTt9LG9uQ29udGVudFJlYWR5OmZ1bmN0aW9uKE0sSyxO
LEwpe3RoaXMub25BdmFpbGFibGUoTSxLLE4sTCx0cnVlKTt9LG9uRE9NUmVhZHk6
ZnVuY3Rpb24oSyxNLEwpe2lmKHRoaXMuRE9NUmVhZHkpe3NldFRpbWVvdXQoZnVu
Y3Rpb24oKXt2YXIgTj13aW5kb3c7aWYoTCl7aWYoTD09PXRydWUpe049TTt9ZWxz
ZXtOPUw7fX1LLmNhbGwoTiwiRE9NUmVhZHkiLFtdLE0pO30sMCk7fWVsc2V7dGhp
cy5ET01SZWFkeUV2ZW50LnN1YnNjcmliZShLLE0sTCk7fX0sYWRkTGlzdGVuZXI6
ZnVuY3Rpb24oTSxLLFYsUSxMKXtpZighVnx8IVYuY2FsbCl7cmV0dXJuIGZhbHNl
O31pZih0aGlzLl9pc1ZhbGlkQ29sbGVjdGlvbihNKSl7dmFyIFc9dHJ1ZTtmb3Io
dmFyIFI9MCxUPU0ubGVuZ3RoO1I8VDsrK1Ipe1c9dGhpcy5vbihNW1JdLEssVixR
LEwpJiZXO31yZXR1cm4gVzt9ZWxzZXtpZihZQUhPTy5sYW5nLmlzU3RyaW5nKE0p
KXt2YXIgUD10aGlzLmdldEVsKE0pO2lmKFApe009UDt9ZWxzZXt0aGlzLm9uQXZh
aWxhYmxlKE0sZnVuY3Rpb24oKXtZQUhPTy51dGlsLkV2ZW50Lm9uKE0sSyxWLFEs
TCk7fSk7cmV0dXJuIHRydWU7fX19aWYoIU0pe3JldHVybiBmYWxzZTt9aWYoInVu
bG9hZCI9PUsmJlEhPT10aGlzKXtKW0oubGVuZ3RoXT1bTSxLLFYsUSxMXTtyZXR1
cm4gdHJ1ZTt9dmFyIFk9TTtpZihMKXtpZihMPT09dHJ1ZSl7WT1RO31lbHNle1k9
TDt9fXZhciBOPWZ1bmN0aW9uKFope3JldHVybiBWLmNhbGwoWSxZQUhPTy51dGls
LkV2ZW50LmdldEV2ZW50KFosTSksUSk7fTt2YXIgWD1bTSxLLFYsTixZLFEsTF07
dmFyIFM9SS5sZW5ndGg7SVtTXT1YO2lmKHRoaXMudXNlTGVnYWN5RXZlbnQoTSxL
KSl7dmFyIE89dGhpcy5nZXRMZWdhY3lJbmRleChNLEspO2lmKE89PS0xfHxNIT1H
W09dWzBdKXtPPUcubGVuZ3RoO0JbTS5pZCtLXT1PO0dbT109W00sSyxNWyJvbiIr
S11dO0VbT109W107TVsib24iK0tdPWZ1bmN0aW9uKFope1lBSE9PLnV0aWwuRXZl
bnQuZmlyZUxlZ2FjeUV2ZW50KFlBSE9PLnV0aWwuRXZlbnQuZ2V0RXZlbnQoWiks
Tyk7fTt9RVtPXS5wdXNoKFgpO31lbHNle3RyeXt0aGlzLl9zaW1wbGVBZGQoTSxL
LE4sZmFsc2UpO31jYXRjaChVKXt0aGlzLmxhc3RFcnJvcj1VO3RoaXMucmVtb3Zl
TGlzdGVuZXIoTSxLLFYpO3JldHVybiBmYWxzZTt9fXJldHVybiB0cnVlO30sZmly
ZUxlZ2FjeUV2ZW50OmZ1bmN0aW9uKE8sTSl7dmFyIFE9dHJ1ZSxLLFMsUixULFA7
Uz1FW01dLnNsaWNlKCk7Zm9yKHZhciBMPTAsTj1TLmxlbmd0aDtMPE47KytMKXtS
PVNbTF07aWYoUiYmUlt0aGlzLldGTl0pe1Q9Ult0aGlzLkFESl9TQ09QRV07UD1S
W3RoaXMuV0ZOXS5jYWxsKFQsTyk7UT0oUSYmUCk7fX1LPUdbTV07aWYoSyYmS1sy
XSl7S1syXShPKTt9cmV0dXJuIFE7fSxnZXRMZWdhY3lJbmRleDpmdW5jdGlvbihM
LE0pe3ZhciBLPXRoaXMuZ2VuZXJhdGVJZChMKStNO2lmKHR5cGVvZiBCW0tdPT0i
dW5kZWZpbmVkIil7cmV0dXJuLTE7fWVsc2V7cmV0dXJuIEJbS107fX0sdXNlTGVn
YWN5RXZlbnQ6ZnVuY3Rpb24oTCxNKXtpZih0aGlzLndlYmtpdCYmKCJjbGljayI9
PU18fCJkYmxjbGljayI9PU0pKXt2YXIgSz1wYXJzZUludCh0aGlzLndlYmtpdCwx
MCk7aWYoIWlzTmFOKEspJiZLPDQxOCl7cmV0dXJuIHRydWU7fX1yZXR1cm4gZmFs
c2U7fSxyZW1vdmVMaXN0ZW5lcjpmdW5jdGlvbihMLEssVCl7dmFyIE8sUixWO2lm
KHR5cGVvZiBMPT0ic3RyaW5nIil7TD10aGlzLmdldEVsKEwpO31lbHNle2lmKHRo
aXMuX2lzVmFsaWRDb2xsZWN0aW9uKEwpKXt2YXIgVT10cnVlO2ZvcihPPUwubGVu
Z3RoLTE7Tz4tMTtPLS0pe1U9KHRoaXMucmVtb3ZlTGlzdGVuZXIoTFtPXSxLLFQp
JiZVKTt9cmV0dXJuIFU7fX1pZighVHx8IVQuY2FsbCl7cmV0dXJuIHRoaXMucHVy
Z2VFbGVtZW50KEwsZmFsc2UsSyk7fWlmKCJ1bmxvYWQiPT1LKXtmb3IoTz1KLmxl
bmd0aC0xO08+LTE7Ty0tKXtWPUpbT107aWYoViYmVlswXT09TCYmVlsxXT09SyYm
VlsyXT09VCl7Si5zcGxpY2UoTywxKTtyZXR1cm4gdHJ1ZTt9fXJldHVybiBmYWxz
ZTt9dmFyIFA9bnVsbDt2YXIgUT1hcmd1bWVudHNbM107aWYoInVuZGVmaW5lZCI9
PT10eXBlb2YgUSl7UT10aGlzLl9nZXRDYWNoZUluZGV4KEwsSyxUKTt9aWYoUT49
MCl7UD1JW1FdO31pZighTHx8IVApe3JldHVybiBmYWxzZTt9aWYodGhpcy51c2VM
ZWdhY3lFdmVudChMLEspKXt2YXIgTj10aGlzLmdldExlZ2FjeUluZGV4KEwsSyk7
dmFyIE09RVtOXTtpZihNKXtmb3IoTz0wLFI9TS5sZW5ndGg7TzxSOysrTyl7Vj1N
W09dO2lmKFYmJlZbdGhpcy5FTF09PUwmJlZbdGhpcy5UWVBFXT09SyYmVlt0aGlz
LkZOXT09VCl7TS5zcGxpY2UoTywxKTticmVhazt9fX19ZWxzZXt0cnl7dGhpcy5f
c2ltcGxlUmVtb3ZlKEwsSyxQW3RoaXMuV0ZOXSxmYWxzZSk7fWNhdGNoKFMpe3Ro
aXMubGFzdEVycm9yPVM7cmV0dXJuIGZhbHNlO319ZGVsZXRlIElbUV1bdGhpcy5X
Rk5dO2RlbGV0ZSBJW1FdW3RoaXMuRk5dO0kuc3BsaWNlKFEsMSk7cmV0dXJuIHRy
dWU7fSxnZXRUYXJnZXQ6ZnVuY3Rpb24oTSxMKXt2YXIgSz1NLnRhcmdldHx8TS5z
cmNFbGVtZW50O3JldHVybiB0aGlzLnJlc29sdmVUZXh0Tm9kZShLKTt9LHJlc29s
dmVUZXh0Tm9kZTpmdW5jdGlvbihMKXt0cnl7aWYoTCYmMz09TC5ub2RlVHlwZSl7
cmV0dXJuIEwucGFyZW50Tm9kZTt9fWNhdGNoKEspe31yZXR1cm4gTDt9LGdldFBh
Z2VYOmZ1bmN0aW9uKEwpe3ZhciBLPUwucGFnZVg7aWYoIUsmJjAhPT1LKXtLPUwu
Y2xpZW50WHx8MDtpZih0aGlzLmlzSUUpe0srPXRoaXMuX2dldFNjcm9sbExlZnQo
KTt9fXJldHVybiBLO30sZ2V0UGFnZVk6ZnVuY3Rpb24oSyl7dmFyIEw9Sy5wYWdl
WTtpZighTCYmMCE9PUwpe0w9Sy5jbGllbnRZfHwwO2lmKHRoaXMuaXNJRSl7TCs9
dGhpcy5fZ2V0U2Nyb2xsVG9wKCk7fX1yZXR1cm4gTDt9LGdldFhZOmZ1bmN0aW9u
KEspe3JldHVyblt0aGlzLmdldFBhZ2VYKEspLHRoaXMuZ2V0UGFnZVkoSyldO30s
Z2V0UmVsYXRlZFRhcmdldDpmdW5jdGlvbihMKXt2YXIgSz1MLnJlbGF0ZWRUYXJn
ZXQ7aWYoIUspe2lmKEwudHlwZT09Im1vdXNlb3V0Iil7Sz1MLnRvRWxlbWVudDt9
ZWxzZXtpZihMLnR5cGU9PSJtb3VzZW92ZXIiKXtLPUwuZnJvbUVsZW1lbnQ7fX19
cmV0dXJuIHRoaXMucmVzb2x2ZVRleHROb2RlKEspO30sZ2V0VGltZTpmdW5jdGlv
bihNKXtpZighTS50aW1lKXt2YXIgTD1uZXcgRGF0ZSgpLmdldFRpbWUoKTt0cnl7
TS50aW1lPUw7fWNhdGNoKEspe3RoaXMubGFzdEVycm9yPUs7cmV0dXJuIEw7fX1y
ZXR1cm4gTS50aW1lO30sc3RvcEV2ZW50OmZ1bmN0aW9uKEspe3RoaXMuc3RvcFBy
b3BhZ2F0aW9uKEspO3RoaXMucHJldmVudERlZmF1bHQoSyk7fSxzdG9wUHJvcGFn
YXRpb246ZnVuY3Rpb24oSyl7aWYoSy5zdG9wUHJvcGFnYXRpb24pe0suc3RvcFBy
b3BhZ2F0aW9uKCk7fWVsc2V7Sy5jYW5jZWxCdWJibGU9dHJ1ZTt9fSxwcmV2ZW50
RGVmYXVsdDpmdW5jdGlvbihLKXtpZihLLnByZXZlbnREZWZhdWx0KXtLLnByZXZl
bnREZWZhdWx0KCk7fWVsc2V7Sy5yZXR1cm5WYWx1ZT1mYWxzZTt9fSxnZXRFdmVu
dDpmdW5jdGlvbihNLEspe3ZhciBMPU18fHdpbmRvdy5ldmVudDtpZighTCl7dmFy
IE49dGhpcy5nZXRFdmVudC5jYWxsZXI7d2hpbGUoTil7TD1OLmFyZ3VtZW50c1sw
XTtpZihMJiZFdmVudD09TC5jb25zdHJ1Y3Rvcil7YnJlYWs7fU49Ti5jYWxsZXI7
fX1yZXR1cm4gTDt9LGdldENoYXJDb2RlOmZ1bmN0aW9uKEwpe3ZhciBLPUwua2V5
Q29kZXx8TC5jaGFyQ29kZXx8MDtpZihZQUhPTy5lbnYudWEud2Via2l0JiYoSyBp
biBEKSl7Sz1EW0tdO31yZXR1cm4gSzt9LF9nZXRDYWNoZUluZGV4OmZ1bmN0aW9u
KE8sUCxOKXtmb3IodmFyIE09MCxMPUkubGVuZ3RoO008TDtNPU0rMSl7dmFyIEs9
SVtNXTtpZihLJiZLW3RoaXMuRk5dPT1OJiZLW3RoaXMuRUxdPT1PJiZLW3RoaXMu
VFlQRV09PVApe3JldHVybiBNO319cmV0dXJuLTE7fSxnZW5lcmF0ZUlkOmZ1bmN0
aW9uKEspe3ZhciBMPUsuaWQ7aWYoIUwpe0w9Inl1aWV2dGF1dG9pZC0iK0E7KytB
O0suaWQ9TDt9cmV0dXJuIEw7fSxfaXNWYWxpZENvbGxlY3Rpb246ZnVuY3Rpb24o
TCl7dHJ5e3JldHVybihMJiZ0eXBlb2YgTCE9PSJzdHJpbmciJiZMLmxlbmd0aCYm
IUwudGFnTmFtZSYmIUwuYWxlcnQmJnR5cGVvZiBMWzBdIT09InVuZGVmaW5lZCIp
O31jYXRjaChLKXtyZXR1cm4gZmFsc2U7fX0sZWxDYWNoZTp7fSxnZXRFbDpmdW5j
dGlvbihLKXtyZXR1cm4odHlwZW9mIEs9PT0ic3RyaW5nIik/ZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoSyk6Szt9LGNsZWFyQ2FjaGU6ZnVuY3Rpb24oKXt9LERPTVJl
YWR5RXZlbnQ6bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoIkRPTVJlYWR5Iix0
aGlzKSxfbG9hZDpmdW5jdGlvbihMKXtpZighSCl7SD10cnVlO3ZhciBLPVlBSE9P
LnV0aWwuRXZlbnQ7Sy5fcmVhZHkoKTtLLl90cnlQcmVsb2FkQXR0YWNoKCk7fX0s
X3JlYWR5OmZ1bmN0aW9uKEwpe3ZhciBLPVlBSE9PLnV0aWwuRXZlbnQ7aWYoIUsu
RE9NUmVhZHkpe0suRE9NUmVhZHk9dHJ1ZTtLLkRPTVJlYWR5RXZlbnQuZmlyZSgp
O0suX3NpbXBsZVJlbW92ZShkb2N1bWVudCwiRE9NQ29udGVudExvYWRlZCIsSy5f
cmVhZHkpO319LF90cnlQcmVsb2FkQXR0YWNoOmZ1bmN0aW9uKCl7aWYoRi5sZW5n
dGg9PT0wKXtDPTA7Y2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbCk7dGhpcy5f
aW50ZXJ2YWw9bnVsbDtyZXR1cm47fWlmKHRoaXMubG9ja2VkKXtyZXR1cm47fWlm
KHRoaXMuaXNJRSl7aWYoIXRoaXMuRE9NUmVhZHkpe3RoaXMuc3RhcnRJbnRlcnZh
bCgpO3JldHVybjt9fXRoaXMubG9ja2VkPXRydWU7dmFyIFE9IUg7aWYoIVEpe1E9
KEM+MCYmRi5sZW5ndGg+MCk7fXZhciBQPVtdO3ZhciBSPWZ1bmN0aW9uKFQsVSl7
dmFyIFM9VDtpZihVLm92ZXJyaWRlKXtpZihVLm92ZXJyaWRlPT09dHJ1ZSl7Uz1V
Lm9iajt9ZWxzZXtTPVUub3ZlcnJpZGU7fX1VLmZuLmNhbGwoUyxVLm9iaik7fTt2
YXIgTCxLLE8sTixNPVtdO2ZvcihMPTAsSz1GLmxlbmd0aDtMPEs7TD1MKzEpe089
RltMXTtpZihPKXtOPXRoaXMuZ2V0RWwoTy5pZCk7aWYoTil7aWYoTy5jaGVja1Jl
YWR5KXtpZihIfHxOLm5leHRTaWJsaW5nfHwhUSl7TS5wdXNoKE8pO0ZbTF09bnVs
bDt9fWVsc2V7UihOLE8pO0ZbTF09bnVsbDt9fWVsc2V7UC5wdXNoKE8pO319fWZv
cihMPTAsSz1NLmxlbmd0aDtMPEs7TD1MKzEpe089TVtMXTtSKHRoaXMuZ2V0RWwo
Ty5pZCksTyk7fUMtLTtpZihRKXtmb3IoTD1GLmxlbmd0aC0xO0w+LTE7TC0tKXtP
PUZbTF07aWYoIU98fCFPLmlkKXtGLnNwbGljZShMLDEpO319dGhpcy5zdGFydElu
dGVydmFsKCk7fWVsc2V7Y2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbCk7dGhp
cy5faW50ZXJ2YWw9bnVsbDt9dGhpcy5sb2NrZWQ9ZmFsc2U7fSxwdXJnZUVsZW1l
bnQ6ZnVuY3Rpb24oTyxQLFIpe3ZhciBNPShZQUhPTy5sYW5nLmlzU3RyaW5nKE8p
KT90aGlzLmdldEVsKE8pOk87dmFyIFE9dGhpcy5nZXRMaXN0ZW5lcnMoTSxSKSxO
LEs7aWYoUSl7Zm9yKE49US5sZW5ndGgtMTtOPi0xO04tLSl7dmFyIEw9UVtOXTt0
aGlzLnJlbW92ZUxpc3RlbmVyKE0sTC50eXBlLEwuZm4pO319aWYoUCYmTSYmTS5j
aGlsZE5vZGVzKXtmb3IoTj0wLEs9TS5jaGlsZE5vZGVzLmxlbmd0aDtOPEs7KytO
KXt0aGlzLnB1cmdlRWxlbWVudChNLmNoaWxkTm9kZXNbTl0sUCxSKTt9fX0sZ2V0
TGlzdGVuZXJzOmZ1bmN0aW9uKE0sSyl7dmFyIFA9W10sTDtpZighSyl7TD1bSSxK
XTt9ZWxzZXtpZihLPT09InVubG9hZCIpe0w9W0pdO31lbHNle0w9W0ldO319dmFy
IFI9KFlBSE9PLmxhbmcuaXNTdHJpbmcoTSkpP3RoaXMuZ2V0RWwoTSk6TTtmb3Io
dmFyIE89MDtPPEwubGVuZ3RoO089TysxKXt2YXIgVD1MW09dO2lmKFQpe2Zvcih2
YXIgUT0wLFM9VC5sZW5ndGg7UTxTOysrUSl7dmFyIE49VFtRXTtpZihOJiZOW3Ro
aXMuRUxdPT09UiYmKCFLfHxLPT09Tlt0aGlzLlRZUEVdKSl7UC5wdXNoKHt0eXBl
Ok5bdGhpcy5UWVBFXSxmbjpOW3RoaXMuRk5dLG9iajpOW3RoaXMuT0JKXSxhZGp1
c3Q6Tlt0aGlzLk9WRVJSSURFXSxzY29wZTpOW3RoaXMuQURKX1NDT1BFXSxpbmRl
eDpRfSk7fX19fXJldHVybihQLmxlbmd0aCk/UDpudWxsO30sX3VubG9hZDpmdW5j
dGlvbihRKXt2YXIgSz1ZQUhPTy51dGlsLkV2ZW50LE4sTSxMLFAsTyxSPUouc2xp
Y2UoKTtmb3IoTj0wLFA9Si5sZW5ndGg7TjxQOysrTil7TD1SW05dO2lmKEwpe3Zh
ciBTPXdpbmRvdztpZihMW0suQURKX1NDT1BFXSl7aWYoTFtLLkFESl9TQ09QRV09
PT10cnVlKXtTPUxbSy5VTkxPQURfT0JKXTt9ZWxzZXtTPUxbSy5BREpfU0NPUEVd
O319TFtLLkZOXS5jYWxsKFMsSy5nZXRFdmVudChRLExbSy5FTF0pLExbSy5VTkxP
QURfT0JKXSk7UltOXT1udWxsO0w9bnVsbDtTPW51bGw7fX1KPW51bGw7aWYoSSl7
Zm9yKE09SS5sZW5ndGgtMTtNPi0xO00tLSl7TD1JW01dO2lmKEwpe0sucmVtb3Zl
TGlzdGVuZXIoTFtLLkVMXSxMW0suVFlQRV0sTFtLLkZOXSxNKTt9fUw9bnVsbDt9
Rz1udWxsO0suX3NpbXBsZVJlbW92ZSh3aW5kb3csInVubG9hZCIsSy5fdW5sb2Fk
KTt9LF9nZXRTY3JvbGxMZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2dldFNj
cm9sbCgpWzFdO30sX2dldFNjcm9sbFRvcDpmdW5jdGlvbigpe3JldHVybiB0aGlz
Ll9nZXRTY3JvbGwoKVswXTt9LF9nZXRTY3JvbGw6ZnVuY3Rpb24oKXt2YXIgSz1k
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQsTD1kb2N1bWVudC5ib2R5O2lmKEsmJihL
LnNjcm9sbFRvcHx8Sy5zY3JvbGxMZWZ0KSl7cmV0dXJuW0suc2Nyb2xsVG9wLEsu
c2Nyb2xsTGVmdF07fWVsc2V7aWYoTCl7cmV0dXJuW0wuc2Nyb2xsVG9wLEwuc2Ny
b2xsTGVmdF07fWVsc2V7cmV0dXJuWzAsMF07fX19LHJlZ0NFOmZ1bmN0aW9uKCl7
fSxfc2ltcGxlQWRkOmZ1bmN0aW9uKCl7aWYod2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIpe3JldHVybiBmdW5jdGlvbihNLE4sTCxLKXtNLmFkZEV2ZW50TGlzdGVuZXIo
TixMLChLKSk7fTt9ZWxzZXtpZih3aW5kb3cuYXR0YWNoRXZlbnQpe3JldHVybiBm
dW5jdGlvbihNLE4sTCxLKXtNLmF0dGFjaEV2ZW50KCJvbiIrTixMKTt9O31lbHNl
e3JldHVybiBmdW5jdGlvbigpe307fX19KCksX3NpbXBsZVJlbW92ZTpmdW5jdGlv
bigpe2lmKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKXtyZXR1cm4gZnVuY3Rp
b24oTSxOLEwsSyl7TS5yZW1vdmVFdmVudExpc3RlbmVyKE4sTCwoSykpO307fWVs
c2V7aWYod2luZG93LmRldGFjaEV2ZW50KXtyZXR1cm4gZnVuY3Rpb24oTCxNLEsp
e0wuZGV0YWNoRXZlbnQoIm9uIitNLEspO307fWVsc2V7cmV0dXJuIGZ1bmN0aW9u
KCl7fTt9fX0oKX07fSgpOyhmdW5jdGlvbigpe3ZhciBFVT1ZQUhPTy51dGlsLkV2
ZW50O0VVLm9uPUVVLmFkZExpc3RlbmVyO2lmKEVVLmlzSUUpe1lBSE9PLnV0aWwu
RXZlbnQub25ET01SZWFkeShZQUhPTy51dGlsLkV2ZW50Ll90cnlQcmVsb2FkQXR0
YWNoLFlBSE9PLnV0aWwuRXZlbnQsdHJ1ZSk7dmFyIG49ZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgicCIpO0VVLl9kcmk9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt0cnl7
bi5kb1Njcm9sbCgibGVmdCIpO2NsZWFySW50ZXJ2YWwoRVUuX2RyaSk7RVUuX2Ry
aT1udWxsO0VVLl9yZWFkeSgpO249bnVsbDt9Y2F0Y2goZXgpe319LEVVLlBPTExf
SU5URVJWQUwpO31lbHNle2lmKEVVLndlYmtpdCYmRVUud2Via2l0PDUyNSl7RVUu
X2RyaT1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBycz1kb2N1bWVudC5yZWFk
eVN0YXRlO2lmKCJsb2FkZWQiPT1yc3x8ImNvbXBsZXRlIj09cnMpe2NsZWFySW50
ZXJ2YWwoRVUuX2RyaSk7RVUuX2RyaT1udWxsO0VVLl9yZWFkeSgpO319LEVVLlBP
TExfSU5URVJWQUwpO31lbHNle0VVLl9zaW1wbGVBZGQoZG9jdW1lbnQsIkRPTUNv
bnRlbnRMb2FkZWQiLEVVLl9yZWFkeSk7fX1FVS5fc2ltcGxlQWRkKHdpbmRvdywi
bG9hZCIsRVUuX2xvYWQpO0VVLl9zaW1wbGVBZGQod2luZG93LCJ1bmxvYWQiLEVV
Ll91bmxvYWQpO0VVLl90cnlQcmVsb2FkQXR0YWNoKCk7fSkoKTt9WUFIT08udXRp
bC5FdmVudFByb3ZpZGVyPWZ1bmN0aW9uKCl7fTtZQUhPTy51dGlsLkV2ZW50UHJv
dmlkZXIucHJvdG90eXBlPXtfX3l1aV9ldmVudHM6bnVsbCxfX3l1aV9zdWJzY3Jp
YmVyczpudWxsLHN1YnNjcmliZTpmdW5jdGlvbihBLEMsRixFKXt0aGlzLl9feXVp
X2V2ZW50cz10aGlzLl9feXVpX2V2ZW50c3x8e307dmFyIEQ9dGhpcy5fX3l1aV9l
dmVudHNbQV07aWYoRCl7RC5zdWJzY3JpYmUoQyxGLEUpO31lbHNle3RoaXMuX195
dWlfc3Vic2NyaWJlcnM9dGhpcy5fX3l1aV9zdWJzY3JpYmVyc3x8e307dmFyIEI9
dGhpcy5fX3l1aV9zdWJzY3JpYmVycztpZighQltBXSl7QltBXT1bXTt9QltBXS5w
dXNoKHtmbjpDLG9iajpGLG92ZXJyaWRlOkV9KTt9fSx1bnN1YnNjcmliZTpmdW5j
dGlvbihDLEUsRyl7dGhpcy5fX3l1aV9ldmVudHM9dGhpcy5fX3l1aV9ldmVudHN8
fHt9O3ZhciBBPXRoaXMuX195dWlfZXZlbnRzO2lmKEMpe3ZhciBGPUFbQ107aWYo
Ril7cmV0dXJuIEYudW5zdWJzY3JpYmUoRSxHKTt9fWVsc2V7dmFyIEI9dHJ1ZTtm
b3IodmFyIEQgaW4gQSl7aWYoWUFIT08ubGFuZy5oYXNPd25Qcm9wZXJ0eShBLEQp
KXtCPUImJkFbRF0udW5zdWJzY3JpYmUoRSxHKTt9fXJldHVybiBCO31yZXR1cm4g
ZmFsc2U7fSx1bnN1YnNjcmliZUFsbDpmdW5jdGlvbihBKXtyZXR1cm4gdGhpcy51
bnN1YnNjcmliZShBKTt9LGNyZWF0ZUV2ZW50OmZ1bmN0aW9uKEcsRCl7dGhpcy5f
X3l1aV9ldmVudHM9dGhpcy5fX3l1aV9ldmVudHN8fHt9O3ZhciBBPUR8fHt9O3Zh
ciBJPXRoaXMuX195dWlfZXZlbnRzO2lmKElbR10pe31lbHNle3ZhciBIPUEuc2Nv
cGV8fHRoaXM7dmFyIEU9KEEuc2lsZW50KTt2YXIgQj1uZXcgWUFIT08udXRpbC5D
dXN0b21FdmVudChHLEgsRSxZQUhPTy51dGlsLkN1c3RvbUV2ZW50LkZMQVQpO0lb
R109QjtpZihBLm9uU3Vic2NyaWJlQ2FsbGJhY2spe0Iuc3Vic2NyaWJlRXZlbnQu
c3Vic2NyaWJlKEEub25TdWJzY3JpYmVDYWxsYmFjayk7fXRoaXMuX195dWlfc3Vi
c2NyaWJlcnM9dGhpcy5fX3l1aV9zdWJzY3JpYmVyc3x8e307dmFyIEY9dGhpcy5f
X3l1aV9zdWJzY3JpYmVyc1tHXTtpZihGKXtmb3IodmFyIEM9MDtDPEYubGVuZ3Ro
OysrQyl7Qi5zdWJzY3JpYmUoRltDXS5mbixGW0NdLm9iaixGW0NdLm92ZXJyaWRl
KTt9fX1yZXR1cm4gSVtHXTt9LGZpcmVFdmVudDpmdW5jdGlvbihFLEQsQSxDKXt0
aGlzLl9feXVpX2V2ZW50cz10aGlzLl9feXVpX2V2ZW50c3x8e307dmFyIEc9dGhp
cy5fX3l1aV9ldmVudHNbRV07aWYoIUcpe3JldHVybiBudWxsO312YXIgQj1bXTtm
b3IodmFyIEY9MTtGPGFyZ3VtZW50cy5sZW5ndGg7KytGKXtCLnB1c2goYXJndW1l
bnRzW0ZdKTt9cmV0dXJuIEcuZmlyZS5hcHBseShHLEIpO30saGFzRXZlbnQ6ZnVu
Y3Rpb24oQSl7aWYodGhpcy5fX3l1aV9ldmVudHMpe2lmKHRoaXMuX195dWlfZXZl
bnRzW0FdKXtyZXR1cm4gdHJ1ZTt9fXJldHVybiBmYWxzZTt9fTtZQUhPTy51dGls
LktleUxpc3RlbmVyPWZ1bmN0aW9uKEEsRixCLEMpe2lmKCFBKXt9ZWxzZXtpZigh
Ril7fWVsc2V7aWYoIUIpe319fWlmKCFDKXtDPVlBSE9PLnV0aWwuS2V5TGlzdGVu
ZXIuS0VZRE9XTjt9dmFyIEQ9bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoImtl
eVByZXNzZWQiKTt0aGlzLmVuYWJsZWRFdmVudD1uZXcgWUFIT08udXRpbC5DdXN0
b21FdmVudCgiZW5hYmxlZCIpO3RoaXMuZGlzYWJsZWRFdmVudD1uZXcgWUFIT08u
dXRpbC5DdXN0b21FdmVudCgiZGlzYWJsZWQiKTtpZih0eXBlb2YgQT09InN0cmlu
ZyIpe0E9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoQSk7fWlmKHR5cGVvZiBCPT0i
ZnVuY3Rpb24iKXtELnN1YnNjcmliZShCKTt9ZWxzZXtELnN1YnNjcmliZShCLmZu
LEIuc2NvcGUsQi5jb3JyZWN0U2NvcGUpO31mdW5jdGlvbiBFKEosSSl7aWYoIUYu
c2hpZnQpe0Yuc2hpZnQ9ZmFsc2U7fWlmKCFGLmFsdCl7Ri5hbHQ9ZmFsc2U7fWlm
KCFGLmN0cmwpe0YuY3RybD1mYWxzZTt9aWYoSi5zaGlmdEtleT09Ri5zaGlmdCYm
Si5hbHRLZXk9PUYuYWx0JiZKLmN0cmxLZXk9PUYuY3RybCl7dmFyIEc7aWYoRi5r
ZXlzIGluc3RhbmNlb2YgQXJyYXkpe2Zvcih2YXIgSD0wO0g8Ri5rZXlzLmxlbmd0
aDtIKyspe0c9Ri5rZXlzW0hdO2lmKEc9PUouY2hhckNvZGUpe0QuZmlyZShKLmNo
YXJDb2RlLEopO2JyZWFrO31lbHNle2lmKEc9PUoua2V5Q29kZSl7RC5maXJlKEou
a2V5Q29kZSxKKTticmVhazt9fX19ZWxzZXtHPUYua2V5cztpZihHPT1KLmNoYXJD
b2RlKXtELmZpcmUoSi5jaGFyQ29kZSxKKTt9ZWxzZXtpZihHPT1KLmtleUNvZGUp
e0QuZmlyZShKLmtleUNvZGUsSik7fX19fX10aGlzLmVuYWJsZT1mdW5jdGlvbigp
e2lmKCF0aGlzLmVuYWJsZWQpe1lBSE9PLnV0aWwuRXZlbnQuYWRkTGlzdGVuZXIo
QSxDLEUpO3RoaXMuZW5hYmxlZEV2ZW50LmZpcmUoRik7fXRoaXMuZW5hYmxlZD10
cnVlO307dGhpcy5kaXNhYmxlPWZ1bmN0aW9uKCl7aWYodGhpcy5lbmFibGVkKXtZ
QUhPTy51dGlsLkV2ZW50LnJlbW92ZUxpc3RlbmVyKEEsQyxFKTt0aGlzLmRpc2Fi
bGVkRXZlbnQuZmlyZShGKTt9dGhpcy5lbmFibGVkPWZhbHNlO307dGhpcy50b1N0
cmluZz1mdW5jdGlvbigpe3JldHVybiJLZXlMaXN0ZW5lciBbIitGLmtleXMrIl0g
IitBLnRhZ05hbWUrKEEuaWQ/IlsiK0EuaWQrIl0iOiIiKTt9O307WUFIT08udXRp
bC5LZXlMaXN0ZW5lci5LRVlET1dOPSJrZXlkb3duIjtZQUhPTy51dGlsLktleUxp
c3RlbmVyLktFWVVQPSJrZXl1cCI7WUFIT08udXRpbC5LZXlMaXN0ZW5lci5LRVk9
e0FMVDoxOCxCQUNLX1NQQUNFOjgsQ0FQU19MT0NLOjIwLENPTlRST0w6MTcsREVM
RVRFOjQ2LERPV046NDAsRU5EOjM1LEVOVEVSOjEzLEVTQ0FQRToyNyxIT01FOjM2
LExFRlQ6MzcsTUVUQToyMjQsTlVNX0xPQ0s6MTQ0LFBBR0VfRE9XTjozNCxQQUdF
X1VQOjMzLFBBVVNFOjE5LFBSSU5UU0NSRUVOOjQ0LFJJR0hUOjM5LFNDUk9MTF9M
T0NLOjE0NSxTSElGVDoxNixTUEFDRTozMixUQUI6OSxVUDozOH07WUFIT08ucmVn
aXN0ZXIoImV2ZW50IixZQUhPTy51dGlsLkV2ZW50LHt2ZXJzaW9uOiIyLjUuMSIs
YnVpbGQ6Ijk4NCJ9KTtZQUhPTy5yZWdpc3RlcigieWFob28tZG9tLWV2ZW50IixZ
QUhPTyx7dmVyc2lvbjoiMi41LjEiLGJ1aWxkOiI5ODQifSk7WUFIT08udXRpbC5F
dmVudC5fbG9hZCgpO3JldHVybiBZQUhPTzt9KSgpO3ZhciBpc01XUFN1cHBvcnRl
ZD10cnVlO3ZhciBiYWRVc2VyQWdlbnRTdHJpbmdzPVsnTkVUU0NBUEU2JywnTkVU
U0NBUEUvNyddO2lmKG5hdmlnYXRvcil7dmFyIGxlbj1iYWRVc2VyQWdlbnRTdHJp
bmdzLmxlbmd0aDtmb3IodmFyIGk9MDtpPGxlbjtpKyspe2lmKG5hdmlnYXRvci51
c2VyQWdlbnQudG9VcHBlckNhc2UoKS5pbmRleE9mKGJhZFVzZXJBZ2VudFN0cmlu
Z3NbaV0pIT09LTEpe2lzTVdQU3VwcG9ydGVkPWZhbHNlO319fWlmKGlzTVdQU3Vw
cG9ydGVkPT09dHJ1ZSl7aWYodHlwZW9mIFlBSE9PLm1lZGlhcGxheWVyPT0idW5k
ZWZpbmVkIil7WUFIT08ubmFtZXNwYWNlKCJZQUhPTy5tZWRpYXBsYXllciIpO31Z
QUhPTy5tZWRpYXBsYXllci5wbGF5ZXJBbHJlYWR5TG9hZGVkPWZ1bmN0aW9uKCl7
aWYoWUFIT08ubWVkaWFwbGF5ZXIuQ29udHJvbGxlcil7cmV0dXJuIHRydWU7fXZh
ciBhU2NyaXB0cz1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0
Iik7aWYoYVNjcmlwdHMubGVuZ3RoPjApe3ZhciBjb3VudD1hU2NyaXB0cy5sZW5n
dGg7Zm9yKHZhciBpPTA7aTxjb3VudDtpKyspe3ZhciBlbG1TY3JpcHQ9YVNjcmlw
dHNbaV07dmFyIHNIcmVmPWVsbVNjcmlwdC5nZXRBdHRyaWJ1dGUoInNyYyIpO2lm
KHNIcmVmJiZzSHJlZi5sZW5ndGg+MCYmKHNIcmVmLmluZGV4T2YoImh0dHA6Ly9s
LnlpbWcuY29tL3VzLmpzLnlpbWcuY29tL2xpYi9tdXMvanMveW13cC9tZWRpYXBs
YXllci0iKT4tMXx8c0hyZWYuaW5kZXhPZigiaHR0cDovL2wueWltZy5jb20vdXMu
anMueWltZy5jb20vbGliL211cy9qcy95bXdwL3dlYnBsYXllci0iKT4tMSkpe3Jl
dHVybiB0cnVlO319fX07aWYoWUFIT08ubWVkaWFwbGF5ZXIucGxheWVyQWxyZWFk
eUxvYWRlZCgpIT09dHJ1ZSl7WUFIT08ubWVkaWFwbGF5ZXIucGFydG5lcklkPSI0
Mjg1ODQ4MyI7aWYodHlwZW9mIFlNUFBhcmFtcz09InVuZGVmaW5lZCIpe3ZhciBZ
TVBQYXJhbXM9e307fVlBSE9PLm1lZGlhcGxheWVyLmxvYWRQbGF5ZXJTY3JpcHQ9
ZnVuY3Rpb24oKXtpZihCb29sZWFuKGFyZ3VtZW50cy5jYWxsZWUuYkNhbGxlZCl8
fChZQUhPTy5tZWRpYXBsYXllci5wbGF5ZXJBbHJlYWR5TG9hZGVkKCk9PT10cnVl
KSl7cmV0dXJuO307YXJndW1lbnRzLmNhbGxlZS5iQ2FsbGVkPXRydWU7ZnVuY3Rp
b24gd2VicGxheWVyanMoKXt2YXIgc3VmZml4PSctbWluLTIuMC4zMS5qcyc7dmFy
IHBhdGg9Imh0dHA6Ly9sLnlpbWcuY29tL3VzLmpzLnlpbWcuY29tL2xpYi9tdXMv
anMveW13cC8iO3JldHVybiBwYXRoKydtZWRpYXBsYXllcicrc3VmZml4O307dmFy
IHBsYXllclNjcmlwdFNyYz13ZWJwbGF5ZXJqcygpO2lmKHBsYXllclNjcmlwdFNy
YyYmcGxheWVyU2NyaXB0U3JjLmxlbmd0aD4wKXtZQUhPTy5tZWRpYXBsYXllci5l
bFBsYXllclNvdXJjZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtZ
QUhPTy5tZWRpYXBsYXllci5lbFBsYXllclNvdXJjZS50eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiO1lBSE9PLm1lZGlhcGxheWVyLmVsUGxheWVyU291cmNlLnNyYz1wbGF5
ZXJTY3JpcHRTcmM7ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQi
KVswXS5hcHBlbmRDaGlsZChZQUhPTy5tZWRpYXBsYXllci5lbFBsYXllclNvdXJj
ZSk7fX07WUFIT08ueW1weXVpLnV0aWwuRXZlbnQuYWRkTGlzdGVuZXIod2luZG93
LCJsb2FkIixZQUhPTy5tZWRpYXBsYXllci5sb2FkUGxheWVyU2NyaXB0KTtZQUhP
Ty5uYW1lc3BhY2UoIllBSE9PLk1lZGlhUGxheWVyIik7WUFIT08uTWVkaWFQbGF5
ZXI9ZnVuY3Rpb24oKXt0aGlzLmNvbnRyb2xsZXI9bnVsbDt9O1lBSE9PLk1lZGlh
UGxheWVyLm9uQVBJUmVhZHk9bmV3IFlBSE9PLnltcHl1aS51dGlsLkN1c3RvbUV2
ZW50KCJvbkFQSVJlYWR5IixudWxsLGZhbHNlLFlBSE9PLnltcHl1aS51dGlsLkN1
c3RvbUV2ZW50LkZMQVQpO319

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=hbx.js
Content-Type: text/javascript; charset=UTF-8; name=hbx.js
Content-Location: http://www.newscientist.com/script/hbx.js
Content-Transfer-Encoding: 8bit

//hbx.js,HBX2.5,Copyright 1997 - 2008. Omniture, Inc. All Rights Reserved.  Omniture is a registered trademark of Omniture, Inc. in the United States, Canada, Japan, and the European Community.
/* INSERT CUSTOM EVENT CODE HERE */
// Send linkViews on page view.  Remove this code block to send linkViews as a separate request.
function _hbOnPrePV(req){
    for(var a=0;a<_IL(document.links);a++){
        if(_lvid.length+_lvpos.length<_lvm)
            _LV(document.links[a]);
        else break;
    }
    _ar += "&lv.id="+_lvid+"&lv.pos="+_lvpos;
    _lvl=-1; 
}

/* DO NOT CHANGE BELOW THIS LINE */
var _vjs="HBX0250.11u";
var _dl=".exe,.zip,.wav,.wmv,.mp3,.mov,.mpg,.avi,.doc,.pdf,.xls,.ppt,.gz,.bin,.hqx,.dmg";
function _NA(a){return new Array(a?a:0)}
var _mn=_hbq="",_hbA=_NA(),_hud="undefined",_huf="function",_ec=_if=_ll=_hec=_hfs=_hfc=_hfa=_ic=_pC=_fc=_pv=0,_hbi=_hbs=new Image(),_hbin=_NA(),_pA=_NA();
_lvid=_lvpos=_lvl="";_hbE=_D("hbE")?_hbE:"";_hbEC=_D("hbEC")?_hbEC:0;var _ex="expires=Wed, 1 Jan 2020 00:00:00 GMT",_lvm=300,_lidt="lid",_lpost="lpos",
_lida="name",_pum=_erf=_hif=_halt=_fbu=0,__r=".referrer";
function _D(v){return(typeof eval("window._"+v)!=_hud)?eval("window._"+v):""}function _DD(v){return(typeof v!=_hud)?1:0}
function _A(v,c){return escape((_D("lc")=="y"&&_DD(c))?_TL(v):v)}function __A(a){return unescape(a)}
function _B(){return 0}function _GP(){return (_IL(_D("protocol"))>0)?_protocol+"://":(location.protocol=="https:"?"https://":"http://")}
function _IC(a,b,c){return a.charAt(b)==c?1:0}function _II(a,b,c){return a.indexOf(b,c?c:0)}function _IL(a){return a!=_hud?a.length:0}
function _IF(a,b,c){return a.lastIndexOf(b,c?c:_IL(a))}function _IP(a,b){return a.split(b)}
function _IS(a,b,c){return b>_IL(a)?"":a.substring(b,c!=null?c:_IL(a))}
function _RP(a,b,c,d){d=_II(a,b);if(d>-1){a=_RP(_IS(a,0,d)+","+_IS(a,d+_IL(b),_IL(a)),b,c)}return a}
function _TL(a){return a.toLowerCase()}function _TS(a){return a.toString()}function _TV(){_hbSend()}function _SV(a,b,c){_hbSet(a,b,c)}
function _VN(a,b,c){b=['C','P','R','D'];for(c=0;c<_IL(b);c++){if(_II(""+a,"_"+b[c]+"::")==0)a=eval("_R"+b[c]+"V(_IS(a,4,_IL(a)))")}return a}
function _VS(a,b,c,d){eval("_"+a+"='"+_VN(b)+"'")}
function _VC(a,b,c,d){b=_IP(a,",");for(c=0;c<_IL(b);c++){d=_IP(b[c],"|");_VS(d[0],(_D(d[0]))?_D(d[0]):d[1]?d[1]:"")}}
function _VL(a,b,c,d,e,f,g,h,i){e=location.search;if(_IL(e)&&(_II(e,"&hbx.")+_II(e,"?hbx."))>-2){d=_NA();for(c=0;c<_hbEC;c++){d[_hbE[c]._N]=c}e=_IS(e,1,_IL(e));
f=_IP(e,'&');for(c=0;c<_IL(f);c++){if(f[c].indexOf('hbx.')==0){g=_IP(f[c],'=');h=_IS(g[0],_II(g[0],'.')+1,_IL(g[0]));if(_II(h,'.')>-1){ i=_IP(h,'.');
if(!_DD(d[i[0]])){_hbEvent(i[0]);d[i[0]]=_hbEC-1}_hbE[d[i[0]]][i[1]]=__A(g[1]);}else{_hbE[0][h]=__A(g[1])}}}}
for(a=0;a<_hbEC;a++){_pv=_hbE[a];if(_pv._N=="pv"){for(b in _pv){if(_EE(b)&&typeof _pv[b]!=_huf){_VS(b,_pv[b])}}}}
_VC("pn|PUT+PAGE+NAME+HERE,mlc|CONTENT+CATEGORY,elf|n,dlf|n,dft|n,pndef|title,ctdef|full,cp|null,hcn|")}_XT("Init");_VL();
function _ER(a,b,c){if(_erf++==0){var d=new Image();d.src=_GP()+_gn+"/HG?hc="+_mn+"&hb="+_A(_acct)+"&hec=1&vjs="+_vjs+"&vpc=ERR&ec=1&err="+
((typeof a=="string")?_A(a+"-"+c):"Unknown");_XT("Error",a)}}
function _EE(a){return(a!="_N"&&a!="_C")?1:0}_EV(window,"error",_ER);
function _hbSend(c,a,i){a="";_hec++;for(i in _hbA)if(typeof _hbA[i]!=_huf)a+="&"+i+"="+_hbA[i];var d=_hbq+"&hec="+_hec+a+_hbSendEV();if(!_halt)_Q(d);else _halt=0;_hbA=_NA()}
function _hbSet(a,b,c,d,e){d=_II(_hbq,"&"+a+"=");if(d>-1){e=_II(_hbq,"&",d+1);e=e>d?e:_IL(_hbq);if(a=="n"||a=="vcon"){_hbq=_IS(_hbq,0,d)+"&"+a+"="+b+
_IS(_hbq,e);_hec=-1;if(a=="n"){_pn=b}else{_mlc=b}}else{_hbq=_IS(_hbq,0,d)+_IS(_hbq,e)}}if((a!="n")&&(a!="vcon"))_hbA[a]=(c==0||a=="seg")?b:_A(b)}
function _hbRedirect(a,b,c,d,e,f,g){_SV("n",a);_SV("vcon",b);if(_DD(d)&&_IL(d)>0){d=_IC(d,0,"&")?_IS(d,1,_IL(d)):d;e=_IP(d,"&");for(f=0;f<_IL(e);
f++){g=_IP(e[f],"=");_SV(g[0],g[1])}}_TV();if(c!=""){_SV("hec",0);setTimeout("location.href='"+c+"'",500)}}
function _hbHalt(){_halt=1}	
function _hbSendEV(a,b,c,d,e,f,x,i){a='',c='',e=_IL(_hbE);for(b=0;b<e;b++){c=_hbE[b];for(var d in c){if(_EE(d)&&c._N!=""&&c._N!="pv"){
a+="&"+c._N+"."+d+"="+_A(_VN(c[d]))}}}_hbE=_NA();_hbEC=0;return a}
function _hbM(a,b,c,d){_SV('n',a);_SV('vcon',b);if(_IL(c)>0)_SV(c,d);_TV()}
function _hbPageView(p,m){_hec=-1;_hbM(p,m,"")}
function _hbExitLink(n){_SV("el",n);_TV()}
function _hbDownload(n){_SV("fn",n);_TV()}
function _hbVisitorSeg(n,p,m){_SV("n",p);_SV("vcon",m);_SV("seg",n);_TV()}function _hbCampaign(n,p,m){_hbM(p,m,"cmp",n)}
function _hbFunnel(n,p,m){_hbM(p,m,"fnl",n)}function _hbGoalPage(n,p,m){_hbM(p,m,"gp",n)}
function _hbLink(a,b,c){_SV("lid",a);if(_DD(b))_SV("lpos",b);_XT("Link","");_TV()}
function _hbForm(a,b,c,d,e,f){if(_DD(c))_hlf=c;_hfs=0,_fa=1,f='Complete',_hfa=0;if(a==0){f='Abandon';_hfa=1}_XT("Form"+f,b)}
function _hbCookie(a,b,c,d){document.cookie=a+"="+b+";path=/"+((_DD(c)==1)?"; expires="+c:"")+((_DD(d)==1)?"; domain="+d:"")}
function _LE(a,b,c,d,e,f,g,h,i,j,k,l){b="([0-9A-Za-z\\-]*\\.)",c=location.hostname,d=a.href,h='',i='';eval("__f=/"+b+"*"+b+"/");if(_DD(__f)){__f.exec(c);
j=(_DD(_elf))?_elf:"";if(j!="n"){if(_II(j,"!")>-1){h=_IS(j,0,_II(j,"!"));i=_IS(j,_II(j,"!")+1,_IL(j))}else{h=j}}k=0;if(_DD(_elf)&&_elf!="n"){
if(_IL(i)){l=_IP(i,",");for(g=0;g<_IL(l);g++)if(_II(d,l[g])>-1)return}if(_IL(h)){l=_IP(h,",");for(g=0;g<_IL(h);g++)if(_II(d,l[g])>-1)k=1}}
if(_II(a.hostname,RegExp.$2)<0||k){	e=_IL(d)-1;return _IC(d,e,'/')?_IS(d,0,e):d}}}
function _LD(a,b,c,d,e,f){b=a.pathname,d='',e='';b=_IS(b,_IF(b,"/")+1,_IL(b));c=(_DD(_dlf))?_dlf:"";if(c!="n"){if(_II(c,"!")>-1){d=","+
_IS(c,0,_II(c,"!"));e=","+_IS(c,_II(c,"!")+1,_IL(c))}else{d=","+c}}f=_II(b,"?");b=(f>-1)?_IS(b,0,f):b;if(_IF(b,".")>-1){f=_IS(b,_IF(b,"."),_IL(b));
if(_II(_dl+d,f)>-1&&_II(e,f)<0){var dl=b;if(_DD(_dft)){if(_dft=="y"&&a.name){dl=a.name}else if(_dft=="full"){dl=a.pathname;if(!_IC(dl,0,'/'))dl='/'+dl
}}return dl}}}
function _LP(a,b){for(b=0;b<_IL(a);b++){if(_IL(_lvl)<_lvm)_LV(a[b]);_EV(a[b],'mousedown',_LT)}}
function _LV(a,b,c){b=_LN(a);c=b[0]+b[1];if(_IL(b[0])){_lvid+=_A(b[0])+",";_lvpos+=_A(b[1])+",";_lvl+=c}}
function _LN(a,b,c,d){b=a.href;b+=eval("a."+_lida)?eval("a."+_lida):"";c=_LVP(b,_lidt);d=_LVP(b,_lpost);return[c,d]}
function _LT(e){if((e.which&&e.which==1)||(e.button&&e.button==1)){var a=document.all?window.event.srcElement:this;for(var i=0;i<4;i++){if(a.tagName&&
_TL(a.tagName)!="a"&&_TL(a.tagName)!="area"){a=a.parentElement}}var b=_LN(a),c='',d='';a.lid=b[0];a.lpos=b[1];if(_D("lt")&&_lt!="manual"){if((a.tagName&&
_TL(a.tagName)=="area")){if(!_IL(a.lid)){if(a.parentNode){if(a.parentNode.name)a.lid=a.parentNode.name;else a.lid=a.parentNode.id}}if(!_IL(a.lpos))
a.lpos=a.coords}else{if(_IL(a.lid)<1)a.lid=_LS(a.text?a.text:a.innerText?a.innerText:"");if(!_IL(a.lid)||_II(_TL(a.lid),"<img")>-1)a.lid=_LI(a)}}
if(!_IL(a.lpos)&&_D("lt")=="auto_pos"&&a.tagName&&_TL(a.tagName)!="area"){c=document.links;for(d=0;d<_IL(c);d++){if(a==c[d]){a.lpos=d+1;break}}}
var _f=0,j='',k='',l=(a.protocol)?_TL(a.protocol):"";
if(l&&l!="mailto:"&&l!="javascript:"){j=_LE(a),k=_LD(a);if(_DD(k))a.fn=k;else if(_DD(j))a.el=j}
if(_D("lt")&&_IC(_lt,0,"n")!=1&&_DD(a.lid)&&_IL(a.lid)>0){_SV("lid",a.lid);if(_DD(a.lpos))_SV("lpos",a.lpos);_f=1}if(_DD(a.fn)){_SV("fn",a.fn);_XT("Download",a);_f=2}
else if(_DD(a.el)){_SV("el",a.el);_XT("ExitLink",a);_f=1}if(_f>0){_XT("Link",a);_TV()}}}
function _LVP(a,b,c,d,e){c=_II(a,"&"+b+"=");c=c<0?_II(a,"?"+b+"="):c;if(c>-1){d=_II(a,'&',c+_IL(b)+2);e=_IS(a,c+_IL(b)+2,d>-1?d:_IL(a));
if(!_ec){if(!(_II(e,"//")==0))return e}else return e}return ""}
function _LI(a){var b=""+a.innerHTML,bu=_TL(b),i=_II(bu,"<img");if(bu&&i>-1){eval("__f=/ src\s*=\s*['\"]?([^'\" ]+)['\"]?/i");__f.exec(b);
if(RegExp.$1)b=RegExp.$1}return b}
function _LSP(a,b,c,d){d=_IP(a,b);return d.join(c)}
function _LS(a,b,c,d,e,f,g){c=_D("lim")?_lim:100;b=(_IL(a)>c)?_A(_IS(a,0,c)):_A(a);b=_LSP(b,"%0A","%20");b=_LSP(b,"%0D","%20");b=_LSP(b,"%09","%20");
c=_IP(b,"%20");d=_NA();e=0;for(f=0;f<_IL(c);f++){g=_RP(c[f],"%20","");if(_IL(g)>0){d[e++]=g}}b=d.join("%20");return __A(b)}
function _EM(a,b,c,d){a=_D("fv");b=_II(a,";"),c=parseInt(a);d=3;if(_TL(a)=="n"){d=999;_fv=""}else if(b>-1){d=_IS(a,0,b);_fv=_IS(a,b+1,_IL(a))}
else if(c>0){d=c;_fv=""}return d}
function _FF(e){var a=(_bnN)?this:_EVO(e);_hlf=(a.lf)?a.lf:""}
function _FU(e){if(_hfs==0&&_IL(_hlf)>0&&_fa==1){_hfs=1;if(_hfc&&!_hfa){_SV("sf","1");_XT("FormComplete",_hfc)}else if(_IL(_hlf)>0){_SV("lf",_hlf);_XT("FormAbandon",_hlf)}
_TV();_hlf="",_hfs=0,_hfc=0}}
function _FO(e){var a=true;if(_DD(this._FS))eval("try{a=this._FS()}catch(e){}");if(a!=false)_hfc=1;return a}
function _FA(a,b,c,d,e,f,g,h,i,ff,fv,s){b=a.forms;ff=new Object();f=_EM();for(c=0;c<_IL(b);c++){ff=b[c],d=0,s=0,e=ff.elements;
g=ff.name?ff.name:"forms["+c+"]";for(h=0;h<_IL(e);h++){if(e[h].type&&"hiddenbuttonsubmitimagereset".indexOf(e[h].type)<0&&d++>=f)break}if(d>=f){_fa=1;
for(h=0;h<_IL(e);h++){i=e[h];if(i.type&&"hiddenbuttonsubmitimagereset".indexOf(i.type)<0){i.lf=g+".";i.lf+=(i.name&&i.name!="")?i.name:"elements["+h+"]";
_EV(i,"focus",_FF)}}ff._FS=null;ff._FS=ff.onsubmit;if(_DD(ff._FS)&&ff._FS!=null){ff.onsubmit=_FO}else if(!(_bnN&&_bv<5)&&_hM&&!(_bnI&&!_I5)){if((!_bnI)||
(_II(navigator.userAgent,"Opera")>-1)){ff.onsubmit=_FO}else{_EV(ff,"submit",_FO);
eval("try{document.forms["+c+"]._FS=document.forms["+c+"].submit;document.forms["+c+"].submit=_FO;throw ''}catch(E){}")}}}}}
function _GR(a,b,c,d){if(!_D("hrf"))return a;if(_II(_hrf,"http",0)>-1)return _hrf;b=window.location.search;b=_IL(b)>1?_IS(b,1,_IL(b)):"";
c=_II(b,_hrf+"=");if(c>-1){ d=_II(b,"&",c+1);d=d>c?d:_IL(b);b=_IS(b,c+_IL(_hrf)+1,d)}return(b!=_hud&&_IL(b)>0)?b:a}
function _PO(a,b,c,d,e,f,g){d=location,e=d.pathname,f=_IS(e,_IF(e,"/")+1),g=document.title;if(a&&b==c){return(_pndef=="title"&&g!=""&&g!=d&&
!(_bnN&&_II(g,"http")>0))?g:f?f:_pndef}else{return b==c?(e==""||e=="/")?"/":_IS(e,(_ctdef!="full")?_IF(e,"/",_IF(e,"/")-2):_II(e,"/"),_IF(e,"/"))
:(b=="/")?b:((_II(b,"/")?"/":"")+(_IF(b,"/")==_IL(b)-1?_IS(b,0,_IL(b)-1):b))}}
function _PP(a,b,c,d){return ""+(c>-1?_PO(b,_IS(a,0,c),d)+";"+_PP(_IS(a,c+1),b,_II(_IS(a,c+1),";")):_PO(b,a,d))}
_mlc=_PP(_mlc,0,_II( _mlc,";"),"CONTENT+CATEGORY");_pn=_PP(_pn,1,_II(_pn,";"),"PUT+PAGE+NAME+HERE");
function _NN(a){return _D(a)!="none"}
function _E(a){var b="";var d=_IP(a,",");for(var c=0;c<_IL(d);c++)b+="&"+d[c]+"="+_A(_D(d[c]));return b}
function _F(a,b){return(!_II(a,"?"+b+"="))?0:_II(a,"&"+b+"=")}function _G(a,b,c,d){var e=_F(a,b);if(d&&e<0&&top&&window!=top){e=_F(_tls,b);
if(e>-1)a=_tls};return(e>-1)?_IS(a,e+2+_IL(b),(_II(a,"&",e+1)>-1)?_II(a,"&",e+1):_IL(a)):c}
function _H(a,b,c){if(!a)a=c;if(_I5||_N6){eval("try{_vv=_G(location.search,'"+a+"','"+b+"',1)}"+__c+"{}")}else{_vv=_G(location.search,a,b,1)}return __A(_vv)}
function _I(a,b,c,d){__f=_IS(a,_II(a,"?"));if(b){if(_I5||_N6){eval("try{_hra=_G(__f,_hqsr,_hra,0)}"+__c+"{}")}else{_hra=_G(__f,_hqsr,_hra,0)}};
if(c&&!_hra){if(_I5||_N6){eval("try{_hra=_G(location.search,_hqsp,_hra,1)}"+__c+"{}")}else{_hra=_G(location.search,_hqsp,_hra,1)}};
if(d&&!_hra)_hra=d;return _hra}function _J(a,b,c,d){c=_II(a,"CP=");d=_II(a,b,c+3);return(c<0)?"null":_IS(a,c+3,(d<0)?_IL(a):d)}
var _rf=_A(eval("document"+__r)),_et=0,_oe=0,_we=0,_ar="",_hM=(!(_II(navigator.userAgent,"Mac")>-1)),_tls="";
_bv=parseInt(navigator.appVersion);_bv=(_bv>99)?(_bv/100):_bv;var __f,_hrat=_D("hra"),_hra="",__c="catch(_e)",_fa=0,_hlfs=0,_hoc=0,
_hlf='',_ce='',_ln='',_pl='',_bn=navigator.appName,_bn=(_II(_bn,"Microsoft")?_bn:"MSIE"),_bnN=(_bn=="Netscape"),_bnI=(_bn=="MSIE"),
_hck="*; path=/; "+(_D("cpd")&&_D("cpd")!=""?(" domain=."+_D("cpd")+"; "):"")+_ex,_N6=(_bnN&&_bv>4),_I5=false,_ss="na",_sc="na",_sv=11,_cy="u",_hp="u",_nc="",_np="",
_tp=_D("ptc");if(_bn=="MSIE"){var _nua=navigator.userAgent,_is=_II(_nua,_bn),_if=_II(_nua,".",_is);if(_if>_is)_I5=_nua.substring(_is+5,_if)>=5}
if(_N6||_I5)eval("try{_tls=top.location.search}catch(_e){}")
function _PV(){_dcmpe=_H(_D("dcmpe"),_D("dcmpe"),"DCMPE");_dcmpre=_H(_D("dcmpre"),_D("dcmpre"),"DCMPRE");_vv="";_cmp=_H(_D("cmpn"),_D("cmp"),"CMP");
_gp=_H(_D("gpn"),_D("gp"),"GP");_dcmp=_H(_D("dcmpn"),_D("dcmp"),"DCMP");if(_II(_cmp,"SFS-")>-1){document.cookie="HBCMP="+_cmp+"; path=/;"+
(_D("cpd")&&_D("cpd")!=""?(" domain=."+_D("cpd")+"; "):"")+_ex}if(_bnI&&_bv>3)_ln=navigator.userLanguage;
if(_bnN){if(_bv>3)_ln=navigator.language;if(_bv>2)for(var i=0;i<_IL(navigator.plugins);i++)_pl+=navigator.plugins[i].name+":"};
_nc=(_DD(navigator.cpuClass))?navigator.cpuClass:((_DD(navigator.oscpu))?navigator.oscpu:"u");_np=(_DD(navigator.platform))?navigator.platform:"u";
_cp=_D("cp");if(location.search&&_TL(_cp)=="null")_cp=_J(location.search,"&");if(_II(document.cookie,"CP=")>-1){
_ce="y";_hd=_J(document.cookie,"*");if(_TL(_hd)!="null"&&_cp=="null"){_cp=_hd}else{document.cookie="CP="+_cp+_hck}}else{document.cookie="CP="+_cp+_hck;
_ce=(_II(document.cookie,"CP=")>-1)?"y":"n"};if(window.screen){_sv=12;_ss=screen.width+"*"+screen.height;_sc=_bnI?screen.colorDepth:screen.pixelDepth;
if(_sc==_hud)_sc="na"};_ra=_NA();if(_ra.toSource||(_bnI&&_ra.shift))_sv=13;if(!(_bnN&&_bv<5)&&!_bnI&&_hM)eval("try{throw _sv=14}catch(e){}");
if((new Date()).toDateString)_sv=15;if(_hbA.every)_sv=16;if(_I5&&_hM){if(_II(""+navigator.appMinorVersion,"Privacy")>-1)_ce="p";
if(document.body&&document.body.addBehavior){eval("try{document.body.addBehavior('#default#homePage');_hp=document.body.isHomePage(location.href)?'y':'n'}catch(e){}");
eval("try{document.body.addBehavior('#default#clientCaps');_cy=document.body.connectionType}catch(e){}")}};var _hcc=(_DD(_hcn))?_D("hcv"):"";if(!_D("gn"))_gn="ehg.hitbox.com";
if(_D("ct")&&!_D("mlc"))_mlc=_ct;_XT("PrePVR","");_ar=_GP()+_gn+"/HG?hc="+_mn+"&hb="+_A(_acct)+"&cd=1&hv=6&n="+_A(_pn,1)+"&con=&vcon="+_A(_mlc,1)+"&tt="
+_D("lt")+"&ja="+(navigator.javaEnabled()?"y":"n")+"&dt="+(new Date()).getHours()+"&zo="+(new Date()).getTimezoneOffset()+"&lm="+
eval("try{Date.parse(document.lastModified)}catch(E){}")+(_tp?("&pt="+_tp):"")+_E((_bnN?"bn,":"")+"ce,ss,sc,sv,cy,hp,ln,np,nc,vpc,vjs,hec,pec,cmp,gp,dcmp,dcmpe,dcmpre,cp,fnl")
+"&seg="+_D("seg")+"&epg="+_D("epg")+"&cv="+_A(_hcc)+"&gn="+_A(_D("hcn"))+"&ld="+_A(_D("hlt"))+"&la="+_A(_D("hla"))+"&c1="+_A(_D("hc1"))+"&c2="+
_A(_D("hc2"))+"&c3="+_A(_D("hc3"))+"&c4="+_A(_D("hc4"))+"&customerid="+_A(_D("ci")?_ci:_D("cid"))+"&ttt="+_lidt+","+_lpost+","+_lida;
if(_I5||_N6){eval("try{_rf=_A(top.document"+__r+")+''}"+__c+"{_rf=_A(document"+__r+")+''}")}
else{if(top.document&&_IL(parent.frames)>1){_rf=_A(eval("document"+__r))+""}else if(top.document){_rf=_A(eval("top.document"+__r))+""}}if((_rf==_hud)||
(_rf==""))_rf="bookmark";_rf=__A(_rf);_rf=_GR(_rf);_hra=_I(_rf,_D("hqsr"),_D("hqsp"),_hrat);_ar+="&ra="+_A(_hra)+_hbSendEV()+"&rf=";_ar+=(_IL(_ar)+_IL(_rf)<2048)?_A(_rf):"bookmark";
_ar+="&pu=";if(_pum>0&&_IL(_ar)+parseInt(_pum)>2048)_pum=2000-_IL(_ar);_ar+=_A(_IS(eval("document.URL")+"",0,_pum));if(_IL(_ar)+_IL(_pl)<2048)_ar+="&pl="+_A(_pl);
_XT("PrePV",_ar);if(_D("onlyMedia")!="y")_hbi.src=_ar+"&hid="+Math.random();_hbq=_IS(_ar,0,_II(_ar,"&hec"));_XT("PostPV",_ar);_hbE=_NA()}_PV();
function _Q(a){a+="&hid="+Math.random();if(_hif==0){_hif=1;_hbs="";_hbs=new Image();_hbs.src=a}else{_hif=0;_hbi="";_hbi=new Image();_hbi.src=a}}
function __X(a){if(_ec==0){_ec=1;a=document;if(_NN("lt")||_NN("dlf")||_NN("elf"))_LP(a.links);if(_NN("fv"))_FA(a);
if(_NN("lt")&&_IL(_lvl)>0&&_lvl!=-1){_SV('lv.id',_lvid,1);_SV('lv.pos',_lvpos,1);_TV()}}}
function _EV(a,b,c,d){if(a.addEventListener){a.addEventListener(b,c,false)}else if(a.attachEvent){a.attachEvent(((d==1)?"":"on")+b,c)}}
function _EVO(e){return document.all?window.event.srcElement:this} 
function _RCV(a,b,c,d){b=document.cookie;c=_II(b,a+"=");d="";if(c>-1){d=_II(b,";",c+1);d=(d>0)?d:_IL(b);d=(d>c)?_IS(b,c+_IL(a)+1,d):""}return d}
function _RDV(a,b,c,d){var e=_RCV(a,b,c,d);_hbCookie(a,"","Wed, 1 Jan 1900 00:00:00 GMT");return e}
function _RRV(a){return(__A(_LVP(eval("document"+__r),a)))}function _RPV(a){return(__A(_LVP(document.URL,a)))}
function _XT(a,b){if(typeof _D("hbOn"+a)==_huf)eval("_hbOn"+a+"(b)")}
setTimeout("__X()",3000);_EV(window,"load",__X);if(_fbu)_EV(window,(_bnI&&_DD(window.onbeforeunload))?"beforeunload":"unload",_FU);else _EV(window,"unload",_FU);

------------T1mVmGU26u1NLb7zPZBClG
Content-Disposition: inline; filename=quant.js
Content-Type: application/x-javascript; name=quant.js
Content-Location: http://edge.quantserve.com/quant.js
Content-Transfer-Encoding: Base64

Ly8KLy8gRm9yIGNvcnJlY3QgbWVhc3VyZW1lbnQsIERPIE5PVCBIT1NUIFRISVMg
RlJPTSBBTk9USEVSIFNFUlZFUgovLwpmdW5jdGlvbiBfcWNkc3QoKXtpZihfcWN0
em9mZigwKSE9X3FjdHpvZmYoNikpcmV0dXJuIDE7cmV0dXJuIDA7fQpmdW5jdGlv
biBfcWN0em9mZihtKXsKdmFyIGQxPW5ldyBEYXRlKDIwMDAsbSwxLDAsMCwwLDAp
Owp2YXIgdD1kMS50b0dNVFN0cmluZygpOwp2YXIgZDM9bmV3IERhdGUodC5zdWJz
dHJpbmcoMCx0Lmxhc3RJbmRleE9mKCIgIiktMSkpOwpyZXR1cm4gZDEtZDM7Cn0K
ZnVuY3Rpb24gX3FjZXVjKHMpewppZih0eXBlb2YoZW5jb2RlVVJJQ29tcG9uZW50
KT09J2Z1bmN0aW9uJyl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChzKTt9CmVs
c2V7cmV0dXJuIGVzY2FwZShzKTt9Cn0KZnVuY3Rpb24gX3Fjcm5kKCl7cmV0dXJu
IE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoyMTQ3NDgzNjQ3KTt9CmZ1bmN0aW9u
IF9xY2djKG4pewogdmFyIHY9Jyc7CiB2YXIgYz1kb2N1bWVudC5jb29raWU7aWYo
IWMpcmV0dXJuIHY7CiB2YXIgaT1jLmluZGV4T2YobisiPSIpOwogdmFyIGxlbj1p
K24ubGVuZ3RoKzE7CiBpZihpPi0xKXsKICB2YXIgZW5kPWMuaW5kZXhPZigiOyIs
IGxlbik7CiAgaWYoZW5kPDApZW5kPWMubGVuZ3RoOwogIHY9Yy5zdWJzdHJpbmco
bGVuLGVuZCk7CiB9CiByZXR1cm4gdjsKfQpmdW5jdGlvbiBfcWNkb21haW4oKXsK
IHZhciBkPWRvY3VtZW50LmRvbWFpbjsKIGlmKGQuc3Vic3RyaW5nKDAsNCk9PSJ3
d3cuIilkPWQuc3Vic3RyaW5nKDQsZC5sZW5ndGgpOwogdmFyIGE9ZC5zcGxpdCgi
LiIpO3ZhciBsZW49YS5sZW5ndGg7CiBpZihsZW48MylyZXR1cm4gZDsKIHZhciBl
PWFbbGVuLTFdOwogaWYoZS5sZW5ndGg8MylyZXR1cm4gZDsKIGQ9YVtsZW4tMl0r
Ii4iK2FbbGVuLTFdOwogcmV0dXJuIGQ7Cn0KZnVuY3Rpb24gX3Fjc2MobSl7CiB2
YXIgcz0iIjt2YXIgZD1fcWNkb21haW4oKTsKIGlmIChtPT0iYWQifHxkPT0iZG91
YmxlY2xpY2submV0Inx8ZD09ImF0ZG10LmNvbSJ8fGQ9PSJ5aWVsZG1hbmFnZXIu
Y29tInx8ZD09ImZpbXNlcnZlLmNvbSJ8fAogIGQ9PSJ0cmliYWxmdXNpb24uY29t
Inx8ZD09InRyYWZmaWNtcC5jb20iKXtzKz0iO2ZwYW49dTtmcGE9IjtyZXR1cm4g
czt9CiB2YXIgdT1kb2N1bWVudDt2YXIgYT1fcWNnYygiX19xY2EiKTsKIGlmKGEu
bGVuZ3RoPjApe3MrPSI7ZnBhbj0wO2ZwYT0iK2E7fQogZWxzZXsKICB2YXIgZGE9
bmV3IERhdGUoKTsKICBhPSdQMC0nK19xY3JuZCgpKyctJytkYS5nZXRUaW1lKCk7
CiAgdS5jb29raWU9Il9fcWNhPSIrYSsiOyBleHBpcmVzPVN1biwgMTggSmFuIDIw
MzggMDA6MDA6MDAgR01UOyBwYXRoPS87IGRvbWFpbj0iK2Q7CiAgYT1fcWNnYygi
X19xY2EiKTsKICBpZihhLmxlbmd0aD4wKXtzKz0iO2ZwYW49MTtmcGE9IithO30K
ICBlbHNle3MrPSI7ZnBhbj11O2ZwYT0iO30KIH0KIHJldHVybiBzOwp9CmZ1bmN0
aW9uIF9xY2RjKG4pewogZG9jdW1lbnQuY29va2llPW4rIj07IGV4cGlyZXM9VGh1
LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQ7IHBhdGg9LzsgZG9tYWluPSIrX3Fj
ZG9tYWluKCk7Cn0KZnVuY3Rpb24gX3FweGxvYWQoKXsKIGlmKChfcWltZykmJiB0
eXBlb2YgX3FpbWcud2lkdGggPT0ibnVtYmVyIil7CiAgaWYgKF9xaW1nLndpZHRo
PT0zKXtfcWNkYygiX19xY2EiKTt9Cn19CmZ1bmN0aW9uIHF1YW50c2VydmUoKXsK
IHZhciByPV9xY3JuZCgpOwogdmFyIHNyPScnLHFvPScnLHFtPScnLHVybD0nJyxy
ZWY9JycsamU9J3UnLG5zPScxJyxtZWRpYT0nd2VicGFnZScsZXZlbnQ9J2xvYWQn
OwogaWYodHlwZW9mIF9xb3B0aW9ucyAhPSJ1bmRlZmluZWQiICYmIF9xb3B0aW9u
cyE9bnVsbCl7CiAgZm9yKHZhciBrIGluIF9xb3B0aW9ucyl7CiAgIGlmKHR5cGVv
ZihfcW9wdGlvbnNba10pIT0nc3RyaW5nJyl7Y29udGludWU7fQogICBpZihrPT0n
cWFjY3QnKXtfcWFjY3Q9X3FvcHRpb25zW2tdO30KICAgZWxzZXtxbys9JzsnK2sr
Jz0nK19xY2V1YyhfcW9wdGlvbnNba10pO30KICAgaWYoaz09J21lZGlhJyl7bWVk
aWE9X3FvcHRpb25zW2tdO30KICAgaWYoaz09J2V2ZW50Jyl7ZXZlbnQ9X3FvcHRp
b25zW2tdO30KICB9CiAgX3FvcHRpb25zPW51bGw7CiB9CiBpZigodHlwZW9mIF9x
YWNjdCA9PSJ1bmRlZmluZWQiKXx8KF9xYWNjdC5sZW5ndGg9PTApKXJldHVybjsK
IGlmKG1lZGlhPT0nd2VicGFnZScgJiYgZXZlbnQ9PSdsb2FkJyl7CiAgaWYoKHR5
cGVvZiBfcXBpeGVsc2VudCAhPSJ1bmRlZmluZWQiKSYmKF9xcGl4ZWxzZW50PT1f
cWFjY3QpKXJldHVybjsKICBfcXBpeGVsc2VudD1fcWFjY3Q7fQogdmFyIGNlPShu
YXZpZ2F0b3IuY29va2llRW5hYmxlZCk/IjEiOiIwIjsKIGlmKHR5cGVvZiBuYXZp
Z2F0b3IuamF2YUVuYWJsZWQgIT0ndW5kZWZpbmVkJylqZT0obmF2aWdhdG9yLmph
dmFFbmFibGVkKCkpPyIxIjoiMCI7CiBpZih0eXBlb2YgX3FtZXRhICE9InVuZGVm
aW5lZCIgJiYgX3FtZXRhIT1udWxsKXtxbT0nO209JytfcWNldWMoX3FtZXRhKTtf
cW1ldGE9bnVsbDt9CiBpZihzZWxmLnNjcmVlbil7c3I9c2NyZWVuLndpZHRoKyJ4
IitzY3JlZW4uaGVpZ2h0KyJ4IitzY3JlZW4uY29sb3JEZXB0aDt9CiB2YXIgZD1u
ZXcgRGF0ZSgpOwogdmFyIGRzdD1fcWNkc3QoKTsKIHZhciBkZz0iUDk4NjItVy1P
cC11Ijt2YXIgcXM9Imh0dHA6Ly9waXhlbC5xdWFudHNlcnZlLmNvbSI7CiB2YXIg
ZnA9X3Fjc2MobWVkaWEpOwogaWYod2luZG93LmxvY2F0aW9uICYmIHdpbmRvdy5s
b2NhdGlvbi5ocmVmKXVybD1fcWNldWMod2luZG93LmxvY2F0aW9uLmhyZWYpOwog
aWYod2luZG93LmRvY3VtZW50ICYmIHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlcily
ZWY9X3FjZXVjKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlcik7CiBpZihzZWxmPT10
b3ApbnM9JzAnOwogX3FpbWc9bmV3IEltYWdlKCk7CiBfcWltZy5hbHQ9IiI7CiBf
cWltZy5zcmM9cXMrJy9waXhlbCcrJztyPScrcitmcCsnO25zPScrbnMrJzt1cmw9
Jyt1cmwrJztyZWY9JytyZWYrJztjZT0nK2NlKyc7amU9JytqZSsnO3NyPScrc3Ir
JztkZz0nK2RnKyc7ZHN0PScrZHN0Kyc7ZXQ9JytkLmdldFRpbWUoKSsnO3R6bz0n
K2QuZ2V0VGltZXpvbmVPZmZzZXQoKSsnO2E9JytfcWFjY3QrcW8rcW07CiBfcWlt
Zy5vbmxvYWQ9ZnVuY3Rpb24oKSB7X3FweGxvYWQoKTt9Cn0KcXVhbnRzZXJ2ZSgp
Owo=

------------T1mVmGU26u1NLb7zPZBClG--

